optimus-tool-call 0.2.2 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/capture-prompt.d.ts +14 -0
  2. package/dist/capture-prompt.d.ts.map +1 -0
  3. package/dist/capture-prompt.js +173 -0
  4. package/dist/capture-prompt.js.map +1 -0
  5. package/dist/index.js +47 -91
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/endpoint-config.d.ts +1 -1
  8. package/dist/lib/endpoint-config.d.ts.map +1 -1
  9. package/dist/lib/endpoint-config.js +1 -1
  10. package/dist/lib/endpoint-config.js.map +1 -1
  11. package/dist/lib/machine-auth.d.ts +1 -1
  12. package/dist/lib/machine-auth.d.ts.map +1 -1
  13. package/dist/lib/machine-auth.js +1 -1
  14. package/dist/lib/machine-auth.js.map +1 -1
  15. package/dist/lib/startup-sync.js +1 -1
  16. package/dist/lib/startup-sync.js.map +1 -1
  17. package/dist/lib/streaming.d.ts.map +1 -1
  18. package/dist/lib/streaming.js +34 -7
  19. package/dist/lib/streaming.js.map +1 -1
  20. package/dist/lib/telemetry/canonical.d.ts +26 -0
  21. package/dist/lib/telemetry/canonical.d.ts.map +1 -0
  22. package/dist/lib/telemetry/canonical.js +153 -0
  23. package/dist/lib/telemetry/canonical.js.map +1 -0
  24. package/dist/lib/telemetry/index.d.ts +1 -0
  25. package/dist/lib/telemetry/index.d.ts.map +1 -1
  26. package/dist/lib/telemetry/index.js +1 -0
  27. package/dist/lib/telemetry/index.js.map +1 -1
  28. package/dist/lib/tofu.d.ts +14 -0
  29. package/dist/lib/tofu.d.ts.map +1 -0
  30. package/dist/lib/tofu.js +39 -0
  31. package/dist/lib/tofu.js.map +1 -0
  32. package/dist/test/canonical.test.d.ts +2 -0
  33. package/dist/test/canonical.test.d.ts.map +1 -0
  34. package/dist/test/canonical.test.js +117 -0
  35. package/dist/test/canonical.test.js.map +1 -0
  36. package/dist/test/endpoint-config.test.js +4 -4
  37. package/dist/test/endpoint-config.test.js.map +1 -1
  38. package/dist/test/integration-canonical.test.d.ts +2 -0
  39. package/dist/test/integration-canonical.test.d.ts.map +1 -0
  40. package/dist/test/integration-canonical.test.js +157 -0
  41. package/dist/test/integration-canonical.test.js.map +1 -0
  42. package/package.json +6 -5
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * optimus-capture-prompt — Cursor hook to capture and store prompt text
4
+ *
5
+ * Runs on beforeSubmitPrompt hook. Reads the prompt from stdin (if available),
6
+ * stores it in a temp file keyed by session ID, so that the tool-call hook
7
+ * can retrieve it when processing tool invocations.
8
+ *
9
+ * Cursor hook protocol for beforeSubmitPrompt:
10
+ * - stdin: JSON with prompt text (format varies by Cursor version)
11
+ * - stdout: {"continue": true|false} JSON
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=capture-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-prompt.d.ts","sourceRoot":"","sources":["../src/capture-prompt.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG"}
@@ -0,0 +1,173 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * optimus-capture-prompt — Cursor hook to capture and store prompt text
4
+ *
5
+ * Runs on beforeSubmitPrompt hook. Reads the prompt from stdin (if available),
6
+ * stores it in a temp file keyed by session ID, so that the tool-call hook
7
+ * can retrieve it when processing tool invocations.
8
+ *
9
+ * Cursor hook protocol for beforeSubmitPrompt:
10
+ * - stdin: JSON with prompt text (format varies by Cursor version)
11
+ * - stdout: {"continue": true|false} JSON
12
+ */
13
+ import fs from "fs";
14
+ import os from "os";
15
+ import path from "path";
16
+ const dbg = (...args) => { if (process.env.OPTIMUS_DEBUG)
17
+ console.error(...args); };
18
+ async function main() {
19
+ const stdinData = await readStdin();
20
+ dbg("[optimus-capture-prompt] ===== HOOK STARTED =====");
21
+ dbg("[optimus-capture-prompt] stdin length:", stdinData.length);
22
+ dbg("[optimus-capture-prompt] stdin preview:", stdinData.slice(0, 200));
23
+ let promptText = null;
24
+ let payloadSessionId = null;
25
+ try {
26
+ const raw = JSON.parse(stdinData);
27
+ dbg("[optimus-capture-prompt] Parsed JSON successfully");
28
+ dbg("[optimus-capture-prompt] Raw keys:", Object.keys(raw));
29
+ dbg("[optimus-capture-prompt] Raw payload:", JSON.stringify(raw, null, 2).slice(0, 500));
30
+ // Extract session ID for Cursor (from conversation_id or session_id in payload)
31
+ payloadSessionId =
32
+ (typeof raw.conversation_id === "string" && raw.conversation_id) ||
33
+ (typeof raw.session_id === "string" && raw.session_id) ||
34
+ null;
35
+ // Extract prompt from various possible locations in the hook payload
36
+ promptText =
37
+ extractValue(raw, ["prompt"]) ||
38
+ extractValue(raw, ["text"]) ||
39
+ extractValue(raw, ["message"]) ||
40
+ extractValue(raw, ["input"]) ||
41
+ null;
42
+ // Try to extract from nested message structure
43
+ if (!promptText) {
44
+ const msg = raw.message;
45
+ if (msg && typeof msg === "object") {
46
+ promptText =
47
+ extractValue(msg, ["content"]) ||
48
+ extractValue(msg, ["text"]) ||
49
+ extractValue(msg, ["prompt"]) ||
50
+ null;
51
+ }
52
+ }
53
+ dbg("[optimus-capture-prompt] Extracted prompt text:", promptText ? `"${promptText.slice(0, 100)}..."` : "null");
54
+ }
55
+ catch (error) {
56
+ // Not valid JSON — might not have prompt in this hook payload
57
+ console.error("[optimus-capture-prompt] Failed to parse JSON:", error);
58
+ }
59
+ // If we have a prompt, store it in a temp file keyed by session ID
60
+ if (promptText) {
61
+ dbg("[optimus-capture-prompt] Storing prompt...");
62
+ try {
63
+ const sessionId = payloadSessionId ||
64
+ process.env.CURSOR_SESSION_ID ||
65
+ process.env.CURSOR_CODE_SESSION_ID ||
66
+ process.env.CLAUDE_CODE_SESSION_ID ||
67
+ "unknown";
68
+ const promptCacheDir = path.join(os.tmpdir(), "optimus-prompt-cache");
69
+ dbg("[optimus-capture-prompt] Session ID:", sessionId);
70
+ dbg("[optimus-capture-prompt] Cache dir:", promptCacheDir);
71
+ // Create cache directory if it doesn't exist
72
+ if (!fs.existsSync(promptCacheDir)) {
73
+ dbg("[optimus-capture-prompt] Creating cache directory...");
74
+ fs.mkdirSync(promptCacheDir, { recursive: true });
75
+ }
76
+ // Write prompt to temp file (with short TTL via filename timestamp)
77
+ const timestamp = Date.now();
78
+ const promptFile = path.join(promptCacheDir, `prompt-${sessionId}-${timestamp}.txt`);
79
+ fs.writeFileSync(promptFile, promptText, "utf-8");
80
+ dbg(`[optimus-capture-prompt] Wrote prompt file: ${promptFile}`);
81
+ // Also write a "latest" symlink for easy access
82
+ const latestFile = path.join(promptCacheDir, `prompt-${sessionId}.txt`);
83
+ try {
84
+ fs.unlinkSync(latestFile);
85
+ }
86
+ catch {
87
+ // File might not exist
88
+ }
89
+ try {
90
+ fs.symlinkSync(promptFile, latestFile);
91
+ dbg(`[optimus-capture-prompt] Created symlink: ${latestFile}`);
92
+ }
93
+ catch (e) {
94
+ dbg(`[optimus-capture-prompt] Symlink creation failed (non-fatal):`, e);
95
+ }
96
+ dbg(`[optimus-capture-prompt] SUCCESS: Stored prompt at ${promptFile}`);
97
+ // Clean up old prompt files (older than 5 minutes)
98
+ cleanupOldPromptFiles(promptCacheDir, sessionId);
99
+ }
100
+ catch (error) {
101
+ // Non-fatal — if we can't cache the prompt, the tool-call hook just won't have it
102
+ console.error("[optimus-capture-prompt] ERROR: Failed to store prompt:", error);
103
+ }
104
+ }
105
+ else {
106
+ dbg("[optimus-capture-prompt] No prompt text found in hook payload");
107
+ }
108
+ // Always allow — never block on prompt capture
109
+ const response = { continue: true };
110
+ dbg("[optimus-capture-prompt] Returning response:", JSON.stringify(response));
111
+ console.log(JSON.stringify(response));
112
+ }
113
+ async function readStdin() {
114
+ return new Promise((resolve) => {
115
+ let data = "";
116
+ process.stdin.setEncoding("utf8");
117
+ process.stdin.on("readable", () => {
118
+ let chunk;
119
+ while ((chunk = process.stdin.read()) !== null) {
120
+ data += chunk;
121
+ }
122
+ });
123
+ process.stdin.on("end", () => {
124
+ resolve(data);
125
+ });
126
+ process.stdin.on("error", () => {
127
+ resolve("");
128
+ });
129
+ });
130
+ }
131
+ function extractValue(obj, keys) {
132
+ for (const key of keys) {
133
+ const value = obj[key];
134
+ if (value !== undefined && value !== null && typeof value === "string") {
135
+ return value;
136
+ }
137
+ }
138
+ return null;
139
+ }
140
+ function cleanupOldPromptFiles(dir, sessionId) {
141
+ try {
142
+ const files = fs.readdirSync(dir);
143
+ const now = Date.now();
144
+ const maxAge = 5 * 60 * 1000; // 5 minutes
145
+ for (const file of files) {
146
+ // Only clean up files for this session
147
+ if (!file.startsWith(`prompt-${sessionId}-`))
148
+ continue;
149
+ const filePath = path.join(dir, file);
150
+ try {
151
+ const stat = fs.statSync(filePath);
152
+ if (now - stat.mtimeMs > maxAge) {
153
+ fs.unlinkSync(filePath);
154
+ }
155
+ }
156
+ catch {
157
+ // Ignore errors during cleanup
158
+ }
159
+ }
160
+ }
161
+ catch {
162
+ // Ignore errors during cleanup
163
+ }
164
+ }
165
+ main().catch((err) => {
166
+ if (process.env.OPTIMUS_DEBUG) {
167
+ console.error("[optimus-capture-prompt] Fatal error:", err);
168
+ }
169
+ const response = { continue: true };
170
+ console.log(JSON.stringify(response));
171
+ process.exit(0);
172
+ });
173
+ //# sourceMappingURL=capture-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-prompt.js","sourceRoot":"","sources":["../src/capture-prompt.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,43 +8,70 @@
8
8
  import fs from "fs";
9
9
  import { buildTelemetryEvent, eventToDict } from "./lib/telemetry.js";
10
10
  import { queueEvent, ensureShutdown } from "./lib/streaming.js";
11
+ import { normalizeToCanonical } from "./lib/telemetry/canonical.js";
12
+ const dbg = (...args) => { if (process.env.OPTIMUS_DEBUG)
13
+ console.error(...args); };
11
14
  async function main() {
15
+ dbg("[optimus-tool-call] ===== HOOK STARTED =====");
16
+ dbg("[optimus-tool-call] NODE_ENV:", process.env.NODE_ENV);
17
+ dbg("[optimus-tool-call] CURSOR:", process.env.CURSOR);
18
+ dbg("[optimus-tool-call] CURSOR_SESSION_ID:", process.env.CURSOR_SESSION_ID);
19
+ dbg("[optimus-tool-call] CLAUDE_CODE_SESSION_ID:", process.env.CLAUDE_CODE_SESSION_ID);
12
20
  // Setup shutdown handling
13
21
  ensureShutdown();
14
22
  // Read stdin
15
23
  const stdinData = await readStdin();
16
- // Parse JSON hook payload
17
- let invocation;
24
+ dbg("[optimus-tool-call] stdin length:", stdinData.length);
25
+ dbg("[optimus-tool-call] stdin preview:", stdinData.slice(0, 300));
26
+ // Parse and normalize to canonical format
27
+ let canonical;
18
28
  try {
19
29
  const raw = JSON.parse(stdinData);
20
- // DEBUG: Log raw hook payload to see actual tool_name and structure
21
- if (process.env.OPTIMUS_DEBUG) {
22
- console.error("[optimus-tool-call] Raw hook payload:", JSON.stringify(raw, null, 2));
23
- }
24
- invocation = parseHookPayload(raw);
25
- // Extract the user's original prompt from the session transcript
26
- const transcriptPath = typeof raw.transcript_path === "string" ? raw.transcript_path : null;
27
- if (transcriptPath) {
28
- const userPrompt = readLastUserPrompt(transcriptPath);
29
- if (userPrompt) {
30
- invocation = { ...invocation, user_prompt: userPrompt };
30
+ dbg("[optimus-tool-call] Parsed JSON successfully");
31
+ dbg("[optimus-tool-call] Raw keys:", Object.keys(raw));
32
+ // Normalize to canonical format (works for both Claude and Cursor)
33
+ canonical = normalizeToCanonical(raw);
34
+ dbg("[optimus-tool-call] Detected agent:", canonical.agent);
35
+ dbg("[optimus-tool-call] Hook event name:", canonical.hook_event_name);
36
+ dbg("[optimus-tool-call] Tool name:", canonical.tool_name);
37
+ // Try to extract user prompt from transcript file (works for both Claude and Cursor)
38
+ if (!canonical.user_prompt) {
39
+ const transcriptPath = typeof raw.transcript_path === "string" ? raw.transcript_path : null;
40
+ if (transcriptPath) {
41
+ const userPrompt = readLastUserPrompt(transcriptPath);
42
+ if (userPrompt) {
43
+ canonical = { ...canonical, user_prompt: userPrompt };
44
+ }
31
45
  }
32
46
  }
33
- // DEBUG: Log parsed invocation
34
- if (process.env.OPTIMUS_DEBUG) {
35
- console.error("[optimus-tool-call] Parsed invocation tool_name:", invocation.tool_name);
36
- console.error("[optimus-tool-call] User prompt:", invocation.user_prompt?.slice(0, 100));
37
- }
47
+ dbg("[optimus-tool-call] Canonical event:", {
48
+ agent: canonical.agent,
49
+ hook_event_name: canonical.hook_event_name,
50
+ tool_name: canonical.tool_name,
51
+ user_prompt_preview: canonical.user_prompt?.slice(0, 100),
52
+ });
38
53
  }
39
54
  catch (error) {
40
55
  // Invalid JSON or parse error — allow and return
56
+ console.error("[optimus-tool-call] ERROR: Failed to parse:", error);
41
57
  const response = { continue: true, permission: "allow" };
42
58
  console.log(JSON.stringify(response));
43
59
  return;
44
60
  }
61
+ // Convert canonical to ToolInvocation (for backward compatibility with existing code)
62
+ const invocation = {
63
+ tool_name: canonical.tool_name,
64
+ tool_input: canonical.tool_input,
65
+ tool_use_id: canonical.tool_use_id,
66
+ session_id: canonical.session_id,
67
+ cwd: canonical.cwd,
68
+ hook_event_name: canonical.hook_event_name,
69
+ model: canonical.model,
70
+ user_prompt: canonical.user_prompt,
71
+ raw_event: canonical.raw_event,
72
+ };
45
73
  // Build telemetry event
46
- const agentIdentity = detectAgent();
47
- const event = buildTelemetryEvent(invocation, agentIdentity, invocation.session_id);
74
+ const event = buildTelemetryEvent(invocation, canonical.agent, canonical.session_id);
48
75
  if (event) {
49
76
  // Server classifies `action_type`; queue raw invocation for all non-null events.
50
77
  await queueEvent(event);
@@ -78,59 +105,6 @@ async function readStdin() {
78
105
  });
79
106
  });
80
107
  }
81
- function parseHookPayload(raw) {
82
- /**
83
- * Normalize raw hook payload to ToolInvocation.
84
- * Handles different hook formats (preToolUse, beforeShellExecution, etc.).
85
- */
86
- const getObj = (value) => value && typeof value === "object" && !Array.isArray(value)
87
- ? value
88
- : null;
89
- const getStr = (value) => typeof value === "string" && value.length > 0 ? value : null;
90
- const toolUse = getObj(raw.toolUse);
91
- const tool = getObj(raw.tool);
92
- const toolInput = getObj(raw.tool_input) ??
93
- getObj(raw.toolInput) ??
94
- getObj(toolUse?.input) ??
95
- getObj(tool?.input) ??
96
- {};
97
- const hookEventName = getStr(raw.hook_event_name) ?? getStr(raw.hookEventName) ?? getStr(raw.hook_event);
98
- const commandFromTop = getStr(raw.command);
99
- const commandFromInput = getStr(toolInput.command) ?? getStr(toolInput.cmd);
100
- const inferredShellCommand = commandFromTop ?? commandFromInput;
101
- const toolName = getStr(raw.tool_name) ??
102
- getStr(raw.toolName) ??
103
- getStr(toolUse?.name) ??
104
- getStr(tool?.name) ??
105
- (hookEventName === "beforeShellExecution" || inferredShellCommand ? "Bash" : "Unknown");
106
- // DEBUG: Log tool name resolution
107
- if (process.env.OPTIMUS_DEBUG) {
108
- console.error("[optimus-tool-call] Tool name resolution:");
109
- console.error(" raw.tool_name:", raw.tool_name);
110
- console.error(" raw.toolName:", raw.toolName);
111
- console.error(" toolUse?.name:", toolUse?.name);
112
- console.error(" tool?.name:", tool?.name);
113
- console.error(" Final toolName:", toolName);
114
- }
115
- const normalizedToolInput = inferredShellCommand && !("command" in toolInput)
116
- ? { ...toolInput, command: inferredShellCommand }
117
- : toolInput;
118
- const sessionId = getStr(raw.session_id) ??
119
- getStr(raw.sessionId) ??
120
- getStr(process.env.CLAUDE_CODE_SESSION_ID ?? null) ??
121
- null;
122
- return {
123
- tool_name: toolName,
124
- tool_input: normalizedToolInput,
125
- tool_use_id: getStr(raw.tool_use_id) ?? getStr(raw.toolUseId),
126
- session_id: sessionId,
127
- cwd: getStr(raw.cwd),
128
- hook_event_name: hookEventName,
129
- model: getStr(raw.model),
130
- agent_message: getStr(raw.agent_message) ?? getStr(raw.agentMessage),
131
- raw_event: raw,
132
- };
133
- }
134
108
  /**
135
109
  * Read the Claude Code session transcript (JSONL) and return the text of the
136
110
  * last user-typed message. Each line is a JSON object; user turns look like:
@@ -180,24 +154,6 @@ function readLastUserPrompt(transcriptPath) {
180
154
  }
181
155
  return null;
182
156
  }
183
- function detectAgent() {
184
- /**
185
- * Detect which agent is running this hook.
186
- * Can be extended with environment variables or other signals.
187
- */
188
- // Check environment variables for agent identification
189
- if (process.env.CLAUDE_CODE_SESSION_ID) {
190
- return "claude";
191
- }
192
- if (process.env.CURSOR_SESSION_ID || process.env.CURSOR) {
193
- return "cursor";
194
- }
195
- if (process.env.GITHUB_COPILOT) {
196
- return "copilot";
197
- }
198
- // Default to claude for Claude Code CLI
199
- return "claude";
200
- }
201
157
  // Run
202
158
  main().catch((err) => {
203
159
  console.error("[optimus-tool-call] Fatal error:", err);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { loadEndpointBase } from "optimus-tofu";
1
+ export { loadEndpointBase } from "./tofu.js";
2
2
  //# sourceMappingURL=endpoint-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-config.d.ts","sourceRoot":"","sources":["../../src/lib/endpoint-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"endpoint-config.d.ts","sourceRoot":"","sources":["../../src/lib/endpoint-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,2 +1,2 @@
1
- export { loadEndpointBase } from "optimus-tofu";
1
+ export { loadEndpointBase } from "./tofu.js";
2
2
  //# sourceMappingURL=endpoint-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-config.js","sourceRoot":"","sources":["../../src/lib/endpoint-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"endpoint-config.js","sourceRoot":"","sources":["../../src/lib/endpoint-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type StoredAuthKey } from "optimus-tofu";
1
+ import { type StoredAuthKey } from "./tofu.js";
2
2
  /** Same path as log-llm-config: `~/opt-ai-sec/management/auth_key.txt` under `$HOME`. */
3
3
  export declare const OPTIMUS_AUTH_KEY_RELATIVE_PATH: string;
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"machine-auth.d.ts","sourceRoot":"","sources":["../../src/lib/machine-auth.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAEtB,yFAAyF;AACzF,eAAO,MAAM,8BAA8B,QAI1C,CAAC;AAuBF;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
1
+ {"version":3,"file":"machine-auth.d.ts","sourceRoot":"","sources":["../../src/lib/machine-auth.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AAEnB,yFAAyF;AACzF,eAAO,MAAM,8BAA8B,QAI1C,CAAC;AAuBF;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- import { ensureAuthentication, loadEndpointBase, readStoredAuthKey, } from "optimus-tofu";
2
+ import { ensureAuthentication, loadEndpointBase, readStoredAuthKey, } from "./tofu.js";
3
3
  /** Same path as log-llm-config: `~/opt-ai-sec/management/auth_key.txt` under `$HOME`. */
4
4
  export const OPTIMUS_AUTH_KEY_RELATIVE_PATH = path.join("opt-ai-sec", "management", "auth_key.txt");
5
5
  let cached = null;
@@ -1 +1 @@
1
- {"version":3,"file":"machine-auth.js","sourceRoot":"","sources":["../../src/lib/machine-auth.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,GAGlB,MAAM,cAAc,CAAC;AAEtB,yFAAyF;AACzF,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAC,IAAI,CACrD,YAAY,EACZ,YAAY,EACZ,cAAc,CACf,CAAC;AAEF,IAAI,MAAM,GAAwD,IAAI,CAAC;AAEvE,KAAK,UAAU,eAAe,CAC5B,WAAmB,EACnB,IAA6B;IAE7B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;QACnC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CACpE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAAoB;IAEpB,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QACjC,gBAAgB,EAAE,8BAA8B;KACjD,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,MAAM,EAAE,YAAY,KAAK,YAAY,EAAE,CAAC;QAC5D,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,MAAM,EAAE,YAAY,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IAC7D,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC;QACrC,YAAY;QACZ,YAAY,EAAE,gBAAgB,EAAE;QAChC,gBAAgB,EAAE,8BAA8B;QAChD,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IACH,MAAM,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"machine-auth.js","sourceRoot":"","sources":["../../src/lib/machine-auth.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,GAGlB,MAAM,WAAW,CAAC;AAEnB,yFAAyF;AACzF,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAC,IAAI,CACrD,YAAY,EACZ,YAAY,EACZ,cAAc,CACf,CAAC;AAEF,IAAI,MAAM,GAAwD,IAAI,CAAC;AAEvE,KAAK,UAAU,eAAe,CAC5B,WAAmB,EACnB,IAA6B;IAE7B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;QACnC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CACpE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAAoB;IAEpB,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QACjC,gBAAgB,EAAE,8BAA8B;KACjD,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,MAAM,EAAE,YAAY,KAAK,YAAY,EAAE,CAAC;QAC5D,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,MAAM,EAAE,YAAY,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IAC7D,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC;QACrC,YAAY;QACZ,YAAY,EAAE,gBAAgB,EAAE;QAChC,gBAAgB,EAAE,8BAA8B;QAChD,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IACH,MAAM,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC"}
@@ -9,7 +9,7 @@
9
9
  * not blocked on every batch. Override interval with `OPTIMUS_STARTUP_SYNC_INTERVAL_MS` (set to
10
10
  * `0` to sync on every batch when healthy). Skip entirely with `OPTIMUS_SKIP_STARTUP_SYNC=1`.
11
11
  */
12
- import { buildStartupEndpointUrl, createSignature, loadEndpointBase, persistAuthKey, readStoredAuthKey, } from "optimus-tofu";
12
+ import { buildStartupEndpointUrl, createSignature, loadEndpointBase, persistAuthKey, readStoredAuthKey, } from "./tofu.js";
13
13
  import { OPTIMUS_AUTH_KEY_RELATIVE_PATH, resetToolCallAuthCache } from "./machine-auth.js";
14
14
  import { resolveUserProfile } from "./user-profile.js";
15
15
  const emptyUserProfile = () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"startup-sync.js","sourceRoot":"","sources":["../../src/lib/startup-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup-sync.js","sourceRoot":"","sources":["../../src/lib/startup-sync.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/lib/streaming.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAchD;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBrE;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAyBjD;AAwJD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CA0BrC"}
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/lib/streaming.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAiBhD;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBrE;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAyBjD;AAiLD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CA0BrC"}
@@ -1,12 +1,15 @@
1
1
  /**
2
2
  * Telemetry streaming — batch and send events to Optimus backend.
3
3
  */
4
- import { createSignature } from "optimus-tofu";
4
+ import { createSignature } from "./tofu.js";
5
5
  import { ensureToolCallAuth } from "./machine-auth.js";
6
6
  import { ensureStartupMetadataSynced } from "./startup-sync.js";
7
7
  import { cloneToolCallMetadataForWire } from "./telemetry/wire-metadata.js";
8
8
  import { loadEndpointBase } from "./endpoint-config.js";
9
9
  import { tryResolveHardwareUuid } from "./hardware-uuid.js";
10
+ const DEBUG = !!process.env.OPTIMUS_DEBUG;
11
+ const dbg = (...args) => { if (DEBUG)
12
+ console.error(...args); };
10
13
  // Backend configuration
11
14
  const OPTIMUS_API_BASE = loadEndpointBase();
12
15
  const BATCH_SIZE = parseInt(process.env.OPTIMUS_BATCH_SIZE || "1", 10); // Default to 1 for testing
@@ -82,17 +85,32 @@ async function sendBatch(events) {
82
85
  if (events.length === 0) {
83
86
  return;
84
87
  }
88
+ dbg(`[optimus-tool-call] Sending ${events.length} events to backend...`);
89
+ dbg(`[optimus-tool-call] Event agents:`, events.map(e => e.agent_identity).join(", "));
85
90
  const hardwareUuid = tryResolveHardwareUuid();
86
91
  if (!hardwareUuid) {
87
- throw new Error("Cannot send tool-call telemetry: set OPTIMUS_HARDWARE_UUID or run on a host with a hardware UUID.");
92
+ const err = "Cannot send tool-call telemetry: set OPTIMUS_HARDWARE_UUID or run on a host with a hardware UUID.";
93
+ console.error(`[optimus-tool-call] ERROR: ${err}`);
94
+ throw new Error(err);
95
+ }
96
+ dbg(`[optimus-tool-call] Hardware UUID: ${hardwareUuid}`);
97
+ try {
98
+ await ensureStartupMetadataSynced(hardwareUuid);
99
+ dbg(`[optimus-tool-call] Startup metadata synced`);
100
+ }
101
+ catch (err) {
102
+ console.error(`[optimus-tool-call] ERROR syncing startup metadata:`, err);
103
+ throw err;
88
104
  }
89
- await ensureStartupMetadataSynced(hardwareUuid);
90
- const auth = await ensureToolCallAuth(hardwareUuid);
91
105
  const eventsWire = eventsWireFromTelemetry(events);
106
+ dbg(`[optimus-tool-call] Events wire:`, JSON.stringify(eventsWire, null, 2).slice(0, 500));
92
107
  const signingPayload = {
93
108
  hardware_uuid: hardwareUuid,
94
109
  events: eventsWire,
95
110
  };
111
+ dbg(`[optimus-tool-call] Payload ready, signing...`);
112
+ const auth = await ensureToolCallAuth(hardwareUuid);
113
+ dbg(`[optimus-tool-call] Auth obtained, key_id: ${auth.key_id}`);
96
114
  const signature = createSignature(signingPayload, auth.key);
97
115
  const payload = {
98
116
  ...signingPayload,
@@ -100,12 +118,15 @@ async function sendBatch(events) {
100
118
  key_id: auth.key_id || "",
101
119
  };
102
120
  const endpoint = new URL("api/tool-calls/events/batch_create/", OPTIMUS_API_BASE).toString();
121
+ dbg(`[optimus-tool-call] Endpoint: ${endpoint}`);
122
+ dbg(`[optimus-tool-call] Payload size: ${JSON.stringify(payload).length} bytes`);
103
123
  const headers = {
104
124
  "Content-Type": "application/json",
105
125
  };
106
126
  try {
107
127
  // Use fetch if available (Node 18+), fall back to node:http
108
128
  if (typeof fetch !== "undefined") {
129
+ dbg(`[optimus-tool-call] Using fetch to send...`);
109
130
  const controller = new AbortController();
110
131
  const timeoutId = setTimeout(() => controller.abort(), 5000);
111
132
  try {
@@ -115,10 +136,13 @@ async function sendBatch(events) {
115
136
  body: JSON.stringify(payload),
116
137
  signal: controller.signal,
117
138
  });
139
+ dbg(`[optimus-tool-call] Response status: ${response.status} ${response.statusText}`);
118
140
  if (!response.ok) {
119
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
141
+ const responseText = await response.text();
142
+ dbg(`[optimus-tool-call] Response body: ${responseText}`);
143
+ throw new Error(`HTTP ${response.status}: ${response.statusText} - ${responseText}`);
120
144
  }
121
- // Successfully sent
145
+ dbg(`[optimus-tool-call] ✅ Successfully sent ${events.length} events`);
122
146
  }
123
147
  finally {
124
148
  clearTimeout(timeoutId);
@@ -126,11 +150,14 @@ async function sendBatch(events) {
126
150
  }
127
151
  else {
128
152
  // Fallback for older Node versions
153
+ dbg(`[optimus-tool-call] Using http fallback...`);
129
154
  await sendViaHttp(endpoint, headers, payload);
130
155
  }
131
156
  }
132
157
  catch (err) {
133
- throw new Error(`Failed to send events to ${endpoint}: ${err instanceof Error ? err.message : String(err)}`);
158
+ const errorMsg = `Failed to send events to ${endpoint}: ${err instanceof Error ? err.message : String(err)}`;
159
+ console.error(`[optimus-tool-call] ❌ ${errorMsg}`);
160
+ throw new Error(errorMsg);
134
161
  }
135
162
  }
136
163
  /**