Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
1ece61c
chore(firebird): Add getTransactionReceipt to RPC client (#435)
Mar 27, 2026
3ee052e
feat(tri): Zenodo V17 scientific improvements (#435)
Mar 27, 2026
f596958
docs(zenodo): v9.0 bundle improvements - synthesis results, noise res…
Mar 27, 2026
fec3efe
chore(zenodo): rename upload script to v9 (#435)
Mar 27, 2026
123855b
docs(zenodo): B001 - enhanced SIMD benchmarks from hslm_benchmark.zig…
Mar 27, 2026
e4cd16f
docs(zenodo): B005 - added VIBEE compilation pipeline section (#435)
Mar 27, 2026
67b3f5f
feat(tri27): Token CLI spec and initial implementation (#435)
Mar 27, 2026
e0b0fae
feat(tri27): Token CLI spec + RPC adapter (#435)
Mar 27, 2026
c1b2fff
docs(zenodo): v9.0 bundle enhancements with cross-references (#435)
Mar 27, 2026
83f21b2
docs(zenodo): add badges and HTML template (#435)
Mar 27, 2026
b5472c8
docs(zenodo): update ZENODO_HUB.md to v9.0 with bundle links (#435)
Mar 27, 2026
9e8359b
fix(build): fix vibee parser, arena ELO, tri_clara errors (#435)
Mar 27, 2026
9229d83
docs(zenodo): enhance B003 and B004 with scientific context (#435)
Mar 27, 2026
4ae96e1
docs(zenodo): add comprehensive upload guide (#435)
Mar 27, 2026
374f509
docs(zenodo): add training methodology to B001 HSLM (#435)
Mar 27, 2026
7007a32
docs(zenodo): add v9.0 completion report (#435)
Mar 27, 2026
a053fb4
feat(website): Move TechTree to /tree route, add Publications section…
Mar 27, 2026
2ea94a5
fix(website): Docs link now points to GitHub Pages in all environment…
Mar 27, 2026
e369c15
fix(build): partial fixes for zig 0.15 compatibility (#435)
Mar 27, 2026
1f7db97
fix(build): more zig 0.15 compatibility fixes (#435)
Mar 27, 2026
81c5525
docs(zenodo): add scientific context to B002 FPGA (#435)
Mar 27, 2026
4ad8ded
docs(zenodo): add scientific validation to B006 GF16 (#435)
Mar 27, 2026
5bc8564
docs(zenodo): add language design philosophy to B005 TriLang (#435)
Mar 27, 2026
eb4cde2
fix(vibee): sync VIBEE parser exports with codegen changes (#435)
Mar 27, 2026
da72458
fix(tri_cloud): Fix Zig 0.15 ArrayList API and error handling (#435)
Mar 27, 2026
2e001d2
feat(tri): Generate TRI language standard library modules (#435)
Mar 27, 2026
1731d77
chore(build): fix Zig 0.15 compatibility across VSA and TVC modules (…
Mar 27, 2026
39690fe
docs(research): Zenodo V19 scientific publication enhancements (#435)
Mar 27, 2026
0846919
fix(tri): Fix CLARA command argument handling (#435)
Mar 27, 2026
f877cde
docs(research): Zenodo best practices guide 2025 (#435)
Mar 27, 2026
371bd79
fix(c_api): Fix VSA text encoding function signatures (#435)
Mar 27, 2026
1675593
fix(tri): Fix Zig 0.15 syntax issues for formatting (#435)
Mar 27, 2026
1d332ab
feat(zenodo): V19.1 CITATION.cff + c_api fix (#435)
Mar 27, 2026
ac60f5c
docs(research): Add comprehensive scientific research agenda (#435)
Mar 27, 2026
6d5f18e
feat(zenodo): V19.2 OpenAlex + COAR integration (#435)
Mar 27, 2026
dfb85d7
docs(zenodo): Update ZENODO_HUB.md with V19 changelog (#435)
Mar 27, 2026
90a0a64
feat(tri): Add 9 new TRI standard library specs (#435)
Mar 27, 2026
940948e
fix(tri): Split inline expression for memory safety (#435)
Mar 27, 2026
1e97ea1
feat(tri): Add 4 generated VIBEE modules (#435)
Mar 27, 2026
672c781
feat(zenodo): V20 Scientific Reproducibility Report + Validation (#435)
Mar 27, 2026
d673cda
docs(zenodo): Create comprehensive upload guide (#435)
Mar 27, 2026
e83d05d
docs(zenodo): Create comprehensive Zenodo documentation index (#435)
Mar 27, 2026
6c4ef9c
docs(research): Add detailed VSA encoding and Zenodo V19 specs (#435)
Mar 27, 2026
1dd3117
fix(jit): Remove flaky speedup assertion from benchmark test (#435)
Mar 27, 2026
2ad7dac
docs(proposals): Add DARPA CLARA technical appendix with complete pro…
Mar 27, 2026
520d078
fix(tri27): Fix format string in RPC adapter (#435)
Mar 27, 2026
ec21bf4
docs(zenodo): Fix B005 version reference v8.0→v9.0 (#435)
Mar 27, 2026
a842921
fix(zenodo): Remove duplicate code, update version refs to v9.0 (#435)
Mar 27, 2026
ea04486
feat(zenodo): Add figure generation infrastructure for Zenodo v9.0 (#…
Mar 27, 2026
fad987a
feat(vsa): Implement VSA text encoding with semantic similarity (#435)
Mar 27, 2026
0f08e39
feat(zenodo): Add 12 scientific figures for Zenodo v9.0 bundles (#435)
Mar 27, 2026
c460f3e
docs(zenodo): Enhance upload guide and index with figures info (#435)
Mar 27, 2026
cc0aedc
docs(zenodo): Add comprehensive quick reference guide for bundles (#435)
Mar 27, 2026
d5f9764
docs(zenodo): Add Shields.io badges reference for README (#435)
Mar 27, 2026
1395083
docs(zenodo): Add rich HTML template for Zenodo descriptions (#435)
Mar 27, 2026
fde6966
docs(zenodo): Add comprehensive descriptions guide for all bundles (#…
Mar 27, 2026
a2ae25f
feat(zenodo): Add Zenodo V19 modules - ORCID, CFF, OpenAlex (#435)
Mar 27, 2026
4380a1a
fix(zenodo): Correct DOI references in v9.0 metadata (#435)
Mar 27, 2026
6a8db2c
feat(zenodo): Add ACM and MSC subject classifications to all bundles …
Mar 27, 2026
bfff181
feat(zenodo): Add funding, targets, and peer review metadata (#435)
Mar 27, 2026
0bf77a6
docs(zenodo): Add comprehensive publishing readiness report (#435)
Mar 27, 2026
9ef8748
fix(tri27): Fix rpc_adapter.zig syntax errors (#435)
Mar 27, 2026
1e9f863
fix(build): Fix zig fmt errors in core source files (#435)
Mar 27, 2026
9bfef5c
fix(vsa): Fix test imports for Zig 0.15 module system (#435)
Mar 27, 2026
6b62f5d
feat(tri): Add 40+ code generation modules (zig fmt generated) (#435)
Mar 27, 2026
7878a0a
feat(zenodo): V20 Statistical Significance Module (#435)
Mar 27, 2026
c4b4bbe
fix(format): Fix Zig 0.15 formatting errors (#435)
Mar 27, 2026
7e38930
docs(zenodo): Add NeurIPS/ICLR reproducibility checklist (#435)
Mar 27, 2026
fc2a0f9
docs(zenodo): Add peer review response templates (#435)
Mar 27, 2026
89f2ff2
feat(zenodo): Add V19/V20 imports and gen modules (#435)
Mar 27, 2026
833831c
fix(queen): logToHive file handling and zenodo format strings (#435)
Mar 27, 2026
97ec666
fix(queen): checkBuild term union field access (#435)
Mar 27, 2026
cd90605
feat(tri): Add graph algorithms and sorting specs (#435)
Mar 27, 2026
4d57373
fix(format): Zig 0.15 ArrayList API compatibility (#435)
Mar 27, 2026
397f941
fix(queen): logToHive seekFromEnd for append mode (#435)
Mar 27, 2026
cbee565
chore: add .trinity/ to gitignore (#435)
Mar 27, 2026
4eeb22b
chore: add .trinity/mu/ to gitignore (#435)
Mar 27, 2026
02218a8
feat(tri): add generated algorithm templates (#435)
Mar 27, 2026
8763af7
docs(zenodo): Add v9.0 publication summary (#435)
Mar 27, 2026
46cd71a
fix(zenodo): Remove allocation from ORCID validation (#435)
Mar 27, 2026
4d95df1
chore: add .ralph/ to gitignore, commit generators (#435)
Mar 27, 2026
f996693
fix(tri): update generators and zenodo ORCID (#435)
Mar 27, 2026
cab7178
fix(tri): gen_probability.zig update (#435)
Mar 27, 2026
6b19332
fix(tri): generators update (#435)
Mar 27, 2026
af1d846
fix(tri): Improve probability module with custom PRNG (#435)
Mar 27, 2026
c37f79b
chore: add .trinity/scholar/state/ to gitignore (#435)
Mar 27, 2026
9a7a795
fix(tri): gen_statistics.zig update (#435)
Mar 27, 2026
98de248
fix(tri): gen_probability.zig update (#435)
Mar 27, 2026
53d3398
fix(tri): gen_probability math.log refactor (#435)
Mar 27, 2026
5918ad7
fix(probability): Use local pi constant instead of std.math.pi (#435)
Mar 27, 2026
a2256e7
docs: update TTT dogfood status (#435)
Mar 27, 2026
9103119
feat(tri): add new algorithm specs (#435)
Mar 27, 2026
a9d844f
feat(tri): update generated algorithm modules (#435)
Mar 27, 2026
e9c39c3
feat(tri): add gen_geo_hash2d generator (#435)
Mar 27, 2026
58633c3
feat(tri): add octree and quadtree generators (#435)
Mar 27, 2026
6df57e4
fix(tri): gen_priority_queue update (#435)
Mar 27, 2026
df84d9e
chore: ignore fpga build deps (#435)
Mar 27, 2026
bba2db7
fix: multiple file updates (#435)
Mar 27, 2026
ba13970
fix(tri): SkipList pointer type compatibility (#435)
Mar 27, 2026
0252fec
fix(format): Fix octree struct literal syntax (#435)
Mar 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ pub const os: std.Target.Os = .{
.minor = 6,
.patch = 1,
},
}},
} },
};
pub const target: std.Target = .{
.cpu = cpu,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ pub const os: std.Target.Os = .{
.minor = 6,
.patch = 1,
},
}},
} },
};
pub const target: std.Target = .{
.cpu = cpu,
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -313,3 +313,10 @@ apps/queen/*.png
data/cells/
src/tools/uart-echo-test
data/cifar-10/
.trinity/
.trinity/queen/
.trinity/scholar/
.trinity/mu/
.ralph/
.trinity/scholar/state/
fpga/build-deps/
6 changes: 3 additions & 3 deletions .trinity/emu/tri_asm.zig
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ const encoder = @import("./asm_encoder.zig");
pub fn assemble(source: []const u8) !void {
_ = source;
const tbin = "test.tbin";

// Emit .tbin format
std.debug.print("Assembling {s}...\n", .{source});

// For now, just emit NOPs (will parse real instructions later)
for (0..10) |_| {
const word = encoder.encodeInstruction(std.heap.page_allocator, "nop", 0, 0, 0);
try std.io.writeAll(std.heap.page_allocator, word);
}

std.debug.print("Wrote {d} instructions (NOP placeholders)\n", .{word.len});
}

Expand Down
2 changes: 1 addition & 1 deletion .trinity/mu/heartbeat.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"agent":"mu","wake":881,"timestamp":1774599037,"errors_scanned":0,"fixes_applied":0,"build_ok":false,"test_ok":true}
{"agent":"mu","wake":890,"timestamp":1774625992,"errors_scanned":0,"fixes_applied":0,"build_ok":false,"test_ok":true}
1 change: 0 additions & 1 deletion .trinity/mu/state/wake_count

This file was deleted.

1 change: 0 additions & 1 deletion .trinity/queen/heartbeat.json

This file was deleted.

49 changes: 49 additions & 0 deletions .trinity/queen/launcher.err
Original file line number Diff line number Diff line change
Expand Up @@ -49117,3 +49117,52 @@ error: FileNotFound
defer std.process.argsFree(allocator, args);
^
👑 Queen Trinity starting daemon mode (PID 80020)
👑 Queen Trinity starting daemon mode (PID 79635)
thread 78348051 panic: access of union field 'Exited' while field 'Signal' is active
/Users/playra/trinity-w1/src/tri/queen_trinity.zig:412:23: 0x1004a8493 in checkBuild (tri)
return result.term.Exited == 0;
^
/Users/playra/trinity-w1/src/tri/queen_trinity.zig:437:9: 0x1004a94a7 in logToHive__anon_20560 (tri)
try new_f.writeAll("# Queen Trinity Hive Log\n\n");
^
/Users/playra/trinity-w1/src/tri/queen_trinity.zig:369:13: 0x1004aa46b in runQueenStart (tri)
if (!build_ok) {
^
/opt/homebrew/Cellar/zig/0.15.2/lib/zig/std/fmt.zig:636:48: 0x10081863f in allocPrint__anon_78688 (tri)
var aw = try Writer.Allocating.initCapacity(gpa, fmt.len);
^
/Users/playra/trinity-w1/src/tri/main.zig:66:31: 0x10082d873 in main (tri)
defer std.process.argsFree(allocator, args);
^
???:?:?: 0x1810bf153 in ??? (???)
???:?:?: 0xb06dffffffffffff in ??? (???)
👑 Queen Trinity starting daemon mode (PID 19843)
👑 Queen Trinity starting daemon mode (PID 63136)
👑 Queen Trinity starting daemon mode (PID 71418)
👑 Queen Trinity starting daemon mode (PID 86879)
👑 Queen Trinity starting daemon mode (PID 90936)
👑 Queen Trinity starting daemon mode (PID 73443)
👑 Queen Trinity starting daemon mode (PID 84427)
👑 Queen Trinity starting daemon mode (PID 7609)
👑 Queen Trinity starting daemon mode (PID 69869)
👑 Queen Trinity starting daemon mode (PID 91396)
thread 88657485 panic: access of union field 'Exited' while field 'Signal' is active
/Users/playra/trinity-w1/src/tri/queen_trinity.zig:412:23: 0x10220c493 in checkBuild (tri)
// Check if process exited cleanly (exit code 0)
^
/Users/playra/trinity-w1/src/tri/queen_trinity.zig:357:36: 0x10220e3f3 in runQueenStart (tri)
const build_ok = checkBuild(allocator) catch false;
^
/Users/playra/trinity-w1/src/tri/queen_trinity.zig:253:29: 0x10220f4a3 in runQueenCommand (tri)
return runQueenStart(allocator, args[1..]);
^
/Users/playra/trinity-w1/src/tri/main.zig:178:42: 0x10259218f in main (tri)
try queen_trinity.runQueenCommand(allocator, queen_args);
^
/opt/homebrew/Cellar/zig/0.15.2/lib/zig/std/start.zig:627:37: 0x1025a778f in main (tri)
const result = root.main() catch |err| {
^
???:?:?: 0x1810bf153 in ??? (???)
???:?:?: 0x965c7fffffffffff in ??? (???)
👑 Queen Trinity starting daemon mode (PID 38095)
👑 Queen Trinity starting daemon mode (PID 67439)
18 changes: 8 additions & 10 deletions .trinity/ralph/src/telegram_pulse.zig
Original file line number Diff line number Diff line change
Expand Up @@ -155,9 +155,7 @@ pub fn sendHeartbeat(allocator: Allocator, config: PulseConfig, loop_count: u32,
/// Telegram Bot API forbids webhook and getUpdates simultaneously
pub fn deleteWebhook(allocator: Allocator, config: PulseConfig) !void {
var url_buffer: [512]u8 = undefined;
const url = try std.fmt.bufPrint(&url_buffer,
"https://api.telegram.org/bot{s}/deleteWebhook?drop_pending_updates=true",
.{config.bot_token});
const url = try std.fmt.bufPrint(&url_buffer, "https://api.telegram.org/bot{s}/deleteWebhook?drop_pending_updates=true", .{config.bot_token});

const uri = std.Uri.parse(url) catch return error.InvalidUrl;

Expand Down Expand Up @@ -224,9 +222,7 @@ pub fn sendMessage(allocator: Allocator, config: PulseConfig, text: []const u8)
/// Returns true if webhook is active, false otherwise
pub fn getWebhookInfo(allocator: Allocator, config: PulseConfig) !bool {
var url_buffer: [512]u8 = undefined;
const url = try std.fmt.bufPrint(&url_buffer,
"https://api.telegram.org/bot{s}/getWebhookInfo",
.{config.bot_token});
const url = try std.fmt.bufPrint(&url_buffer, "https://api.telegram.org/bot{s}/getWebhookInfo", .{config.bot_token});

const uri = std.Uri.parse(url) catch return error.InvalidUrl;

Expand All @@ -251,14 +247,16 @@ pub fn getWebhookInfo(allocator: Allocator, config: PulseConfig) !bool {
defer allocator.free(body);

// Check if "url":null or "url":"http"/"url":"https"
const null_pattern = \\,"url":null
;
const null_pattern =
\\,"url":null
;
if (std.mem.indexOf(u8, body, null_pattern)) |_| {
return false; // No webhook set
}

const http_pattern = \\,"url":"http
;
const http_pattern =
\\,"url":"http
;
if (std.mem.indexOf(u8, body, http_pattern)) |_| {
return true; // Webhook is set
}
Expand Down
27 changes: 11 additions & 16 deletions .trinity/ralph/src/test_pulse_e2e.zig
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ fn answerCallbackQuery(allocator: std.mem.Allocator, config: telegram_pulse.Puls
;

var body_buffer: [1024]u8 = undefined;
const body = try std.fmt.bufPrint(&body_buffer, body_template, .{callback_id, text});
const body = try std.fmt.bufPrint(&body_buffer, body_template, .{ callback_id, text });

const headers = [_]std.http.Header{
.{ .name = "User-Agent", .value = "RALPH-PULSE/2.0" },
Expand Down Expand Up @@ -187,7 +187,7 @@ fn startPolling(allocator: std.mem.Allocator, config: telegram_pulse.PulseConfig
// Debug: Log first 500 chars of response
if (response_body.len > 0) {
const debug_len = @min(500, response_body.len);
std.debug.print("[DEBUG] Response ({d} bytes): {s}...\n", .{response_body.len, response_body[0..debug_len]});
std.debug.print("[DEBUG] Response ({d} bytes): {s}...\n", .{ response_body.len, response_body[0..debug_len] });
}

// Skip empty responses
Expand All @@ -197,8 +197,9 @@ fn startPolling(allocator: std.mem.Allocator, config: telegram_pulse.PulseConfig
}

// === HANDLE CALLBACK QUERIES (InlineKeyboard) ===
const callback_pattern = \\callback_query
;
const callback_pattern =
\\callback_query
;
if (std.mem.indexOf(u8, response_body, callback_pattern)) |cb_idx| {
std.debug.print("[CALLBACK] Detected callback query!\n", .{});

Expand All @@ -207,9 +208,7 @@ fn startPolling(allocator: std.mem.Allocator, config: telegram_pulse.PulseConfig
const data_with_comma = ",\"data\":\"";
const data_no_comma = "\"data\":\"";

const data_idx = if (std.mem.indexOf(u8, response_body[cb_idx..], data_with_comma)) |i| i
else if (std.mem.indexOf(u8, response_body[cb_idx..], data_no_comma)) |i| i
else null;
const data_idx = if (std.mem.indexOf(u8, response_body[cb_idx..], data_with_comma)) |i| i else if (std.mem.indexOf(u8, response_body[cb_idx..], data_no_comma)) |i| i else null;

if (data_idx) |data_start_idx| {
// Determine which pattern matched and calculate start position
Expand All @@ -223,8 +222,9 @@ fn startPolling(allocator: std.mem.Allocator, config: telegram_pulse.PulseConfig
std.debug.print("[CALLBACK] Command from callback: {s}\n", .{command});

// Extract callback query id (look for "id":" pattern before "data")
const id_pattern = \\id:
;
const id_pattern =
\\id:
;
if (std.mem.indexOfPos(u8, response_body[cb_idx..], 0, id_pattern)) |id_idx| {
const id_start = cb_idx + id_idx + 4;
var id_end = id_start;
Expand All @@ -242,17 +242,14 @@ fn startPolling(allocator: std.mem.Allocator, config: telegram_pulse.PulseConfig
}
}
}

}

// === HANDLE REGULAR MESSAGES ===
// Simplified parsing - just look for "text":"/command pattern
const message_text_pattern_comma = ",\"text\":\"";
const message_text_pattern_no_comma = "\"text\":\"";

const text_idx = if (std.mem.indexOf(u8, response_body, message_text_pattern_comma)) |i| i
else if (std.mem.indexOf(u8, response_body, message_text_pattern_no_comma)) |i| i
else null;
const text_idx = if (std.mem.indexOf(u8, response_body, message_text_pattern_comma)) |i| i else if (std.mem.indexOf(u8, response_body, message_text_pattern_no_comma)) |i| i else null;

if (text_idx) |idx| {
const found_comma = std.mem.indexOf(u8, response_body, message_text_pattern_comma) != null;
Expand Down Expand Up @@ -298,9 +295,7 @@ fn startPolling(allocator: std.mem.Allocator, config: telegram_pulse.PulseConfig
const idx_comma = std.mem.indexOfPos(u8, response_body, search_idx, update_id_with_comma);
const idx_no_comma = std.mem.indexOfPos(u8, response_body, search_idx, update_id_no_comma);

const idx = if (idx_comma) |ic| if (idx_no_comma) |in| if (ic < in) ic else in else ic
else if (idx_no_comma) |in| in
else null;
const idx = if (idx_comma) |ic| if (idx_no_comma) |in| if (ic < in) ic else in else ic else if (idx_no_comma) |in| in else null;

if (idx) |i| {
// Extract offset: pattern len is 12 for both ("update_id": = 12 chars)
Expand Down
1 change: 0 additions & 1 deletion .trinity/scholar/heartbeat.json

This file was deleted.

1 change: 0 additions & 1 deletion .trinity/scholar/state/wake_count

This file was deleted.

69 changes: 69 additions & 0 deletions .trinity/templates/clara-partnership.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
## Objective

Secure US prime contractor for DARPA CLARA (PA-25-07-02) TA1 submission.

## Target Primes

| Organization | PI | Status | Deadline |
|--------------|-----|--------|----------|
| UCLA StarAI Lab | Guy Van den Broeck | 📧 Pending | 2026-04-17 |
| Coherent Knowledge | Michael Kifer / Benjamin Grosof | 📧 Pending | 2026-04-17 |
| UT Austin | Atlas Wang | 📧 Pending | 2026-04-17 |

## Email Draft

**Subject:** CLARA TA1 Partnership — FPGA-Accelerated AR-based ML

**Body:**
```
Dear Prof. [Name],

I lead the Trinity project (8 Zenodo DOIs, MIT-licensed), which implements
ternary neural inference on FPGA with formally verified polynomial-time
guarantees.

For DARPA CLARA (PA-25-07-02), Trinity provides:
- Hardware-verified O(n) ternary inference (XC7A100T FPGA)
- VSA-based symbolic reasoning layer (10K-dim vectors)
- Open-source Zig implementation with 3000+ tests

We're seeking a US prime contractor for a joint TA1 submission.
Trinity would serve as subcontractor providing the hardware-accelerated
inference component.

Would you have 15 minutes next week to discuss alignment?

Best regards,
GitHub: github.com/gHashTag/trinity
DOI: 10.5281/zenodo.19227865
```

## Action Items

- [ ] Send email to UCLA (guyvdb@cs.ucla.edu)
- [ ] Send email to Coherent Knowledge (via coherentknowledge.com)
- [ ] Send email to UT Austin (via ECE department)
- [ ] Send eligibility query to CLARA@darpa.mil
- [ ] Update status in comments

## Sub-issues

- [ ] #XXX: Research prime contractor capabilities
- [ ] #XXX: Draft technical collaboration section
- [ ] #XXX: Prepare budget for subcontractor role

## Scientific Credentials

| Resource | DOI/Link |
|----------|----------|
| Parent Bundle | 10.5281/zenodo.19227879 |
| HSLM Architecture | 10.5281/zenodo.19227865 |
| VSA Operations | 10.5281/zenodo.19227867 |
| FPGA Bitstreams | 10.5281/zenodo.19227871 |
| TRI-27 Language | 10.5281/zenodo.19227873 |

## Notes

- **Manual agent assignment** — partnership outreach requires human judgment
- **No auto-spawn** — emails must be personalized
- **Parallel to hackathon** — continue DeepMind work while awaiting responses
Loading
Loading