naiad-cli 0.2.40 → 0.2.41

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 (36) hide show
  1. package/dist/api/client.js +13 -3
  2. package/dist/api/client.js.map +1 -1
  3. package/dist/callback/server.d.ts +2 -0
  4. package/dist/callback/server.js +38 -21
  5. package/dist/callback/server.js.map +1 -1
  6. package/dist/checkpoint/resume-session.d.ts +3 -0
  7. package/dist/checkpoint/resume-session.js +8 -6
  8. package/dist/checkpoint/resume-session.js.map +1 -1
  9. package/dist/commands/continue.js +57 -43
  10. package/dist/commands/continue.js.map +1 -1
  11. package/dist/commands/exec.js +14 -6
  12. package/dist/commands/exec.js.map +1 -1
  13. package/dist/commands/interactive.js +23 -13
  14. package/dist/commands/interactive.js.map +1 -1
  15. package/dist/lifecycle/setup.d.ts +2 -0
  16. package/dist/lifecycle/setup.js +14 -13
  17. package/dist/lifecycle/setup.js.map +1 -1
  18. package/dist/lifecycle/teardown.js +3 -6
  19. package/dist/lifecycle/teardown.js.map +1 -1
  20. package/dist/lifecycle/types.d.ts +2 -0
  21. package/dist/lifecycle/workers.js +2 -2
  22. package/dist/lifecycle/workers.js.map +1 -1
  23. package/dist/reporting/reporter.d.ts +38 -0
  24. package/dist/reporting/reporter.js +89 -0
  25. package/dist/reporting/reporter.js.map +1 -0
  26. package/dist/sync/checkpoint.d.ts +4 -1
  27. package/dist/sync/checkpoint.js +15 -4
  28. package/dist/sync/checkpoint.js.map +1 -1
  29. package/dist/sync/command-listener.d.ts +3 -0
  30. package/dist/sync/command-listener.js +10 -5
  31. package/dist/sync/command-listener.js.map +1 -1
  32. package/dist/sync/events.d.ts +4 -1
  33. package/dist/sync/events.js +11 -3
  34. package/dist/sync/events.js.map +1 -1
  35. package/extensions/naiad-extension.ts +51 -3
  36. package/package.json +1 -1
@@ -1,11 +1,14 @@
1
1
  import { writeFileSync } from "fs";
2
+ import { join } from "path";
2
3
  import { launchPi } from "../pi/launcher.js";
3
4
  import { setupLifecycle } from "../lifecycle/setup.js";
4
5
  import { startWorkers } from "../lifecycle/workers.js";
5
6
  import { teardownLifecycle } from "../lifecycle/teardown.js";
6
7
  import { CommandListener } from "../sync/command-listener.js";
7
8
  import { prepareResumeSessionFile } from "../checkpoint/resume-session.js";
9
+ import { StderrReporter } from "../reporting/reporter.js";
8
10
  export async function execCommand(config, prompt, opts = {}) {
11
+ const reporter = new StderrReporter();
9
12
  const ctx = await setupLifecycle({
10
13
  config,
11
14
  modelFlag: opts.model,
@@ -15,7 +18,9 @@ export async function execCommand(config, prompt, opts = {}) {
15
18
  context: opts.context,
16
19
  replyTarget: opts.replyTarget,
17
20
  threadId: opts.thread,
21
+ reporter,
18
22
  });
23
+ reporter.setLogPath(join(ctx.sessionDir, "diagnostics.jsonl"));
19
24
  // Phase 1 output: write partial result immediately after thread creation
20
25
  if (opts.output) {
21
26
  const partial = {
@@ -37,16 +42,18 @@ export async function execCommand(config, prompt, opts = {}) {
37
42
  currentSessionId: ctx.sessionId,
38
43
  currentAttempt: ctx.attempt ?? 1,
39
44
  destDir: ctx.sessionDir,
45
+ reporter,
40
46
  });
41
47
  if (resumeSessionFile) {
42
- console.error("[naiad] Resuming conversation context from prior session");
48
+ reporter.progress("[naiad] Resuming conversation context from prior session");
43
49
  }
44
50
  else {
45
- console.error("[naiad] No prior session context found; starting fresh");
51
+ reporter.progress("[naiad] No prior session context found; starting fresh");
46
52
  }
47
53
  }
48
54
  catch (err) {
49
- console.error("[naiad] Resume context fetch failed; starting fresh:", err);
55
+ reporter.capture("resume_context_fetch_failed", err);
56
+ reporter.progress("[naiad] Resume context fetch failed; starting fresh");
50
57
  }
51
58
  }
52
59
  // Launch pi in RPC mode
@@ -91,9 +98,10 @@ export async function execCommand(config, prompt, opts = {}) {
91
98
  sessionId: ctx.sessionId,
92
99
  sessionDir: ctx.sessionDir,
93
100
  piProcess: pi.process,
101
+ reporter: ctx.reporter,
94
102
  });
95
103
  commandListener.start();
96
- console.error("[naiad] Command listener started (remote control enabled)");
104
+ reporter.progress("[naiad] Command listener started (remote control enabled)");
97
105
  }
98
106
  // Process pi events
99
107
  let agentEnded = false;
@@ -102,7 +110,7 @@ export async function execCommand(config, prompt, opts = {}) {
102
110
  if (event.type === "checkpoint") {
103
111
  const data = event.data ?? event;
104
112
  workers.checkpoint.handleCheckpoint(data).catch((err) => {
105
- console.error("[naiad] Checkpoint handling failed:", err);
113
+ ctx.reporter.capture("checkpoint_handling_failed", err);
106
114
  });
107
115
  return;
108
116
  }
@@ -139,7 +147,7 @@ export async function execCommand(config, prompt, opts = {}) {
139
147
  });
140
148
  // Flush and finalize
141
149
  process.stdout.write("\n");
142
- console.error("[naiad] Agent finished, flushing...");
150
+ reporter.progress("[naiad] Agent finished, flushing...");
143
151
  commandListener?.stop();
144
152
  await workers.stop();
145
153
  await teardownLifecycle({ ctx, exitCode });
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/commands/exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/commands/exec.ts"],"names":[],"mappings":"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"}
@@ -9,52 +9,56 @@ import { startCallbackServer } from "../callback/server.js";
9
9
  import { startWorkers } from "../lifecycle/workers.js";
10
10
  import { teardownLifecycle } from "../lifecycle/teardown.js";
11
11
  import { findPackageRoot } from "../utils/package-root.js";
12
+ import { StderrReporter, InteractiveReporter } from "../reporting/reporter.js";
12
13
  export async function interactiveCommand(config, options) {
13
14
  const client = new APIClient(config);
14
15
  // Validate API key by listing models
15
- console.error("[naiad] Validating API key...");
16
+ const stderrReporter = new StderrReporter();
17
+ stderrReporter.progress("[naiad] Validating API key...");
16
18
  const { models, seer_model_id: seerModelId, seer_reasoning_effort: seerReasoningEffort } = await client.listModels();
17
19
  if (models.length === 0) {
18
- console.error("[naiad] No models available");
20
+ stderrReporter.progress("[naiad] No models available");
19
21
  process.exit(1);
20
22
  }
21
23
  const model = options.modelFlag || models[0].id;
22
- console.error(`[naiad] Using model: ${model}`);
24
+ stderrReporter.progress(`[naiad] Using model: ${model}`);
23
25
  const sessionDir = mkdtempSync(join(tmpdir(), "naiad-session-"));
26
+ stderrReporter.setLogPath(join(sessionDir, "diagnostics.jsonl"));
24
27
  const pkgRoot = findPackageRoot();
25
28
  const extensionPath = join(pkgRoot, "extensions", "naiad-extension.ts");
26
29
  const agentId = randomUUID();
27
30
  let threadId;
28
31
  let sessionId;
32
+ let attempt = 1;
29
33
  let resumeSessionFile;
30
34
  if (options.sessionId || options.continueRecent) {
31
35
  // Resume flow
32
36
  const resolved = await resolveResumeSession(client, options);
33
37
  threadId = resolved.threadId;
34
38
  // Download previous session JSONL
35
- console.error(`[naiad] Downloading session ${resolved.previousSessionId}...`);
39
+ stderrReporter.progress(`[naiad] Downloading session ${resolved.previousSessionId}...`);
36
40
  const jsonlData = await client.downloadSession(resolved.previousSessionId);
37
41
  const jsonlFilename = `${new Date().toISOString().replace(/[:.]/g, "-")}_${randomUUID()}.jsonl`;
38
42
  resumeSessionFile = join(sessionDir, jsonlFilename);
39
43
  writeFileSync(resumeSessionFile, jsonlData);
40
- console.error(`[naiad] Session data written to ${resumeSessionFile}`);
44
+ stderrReporter.progress(`[naiad] Session data written to ${resumeSessionFile}`);
41
45
  // Create new session on existing thread
42
46
  const session = await client.createSession(threadId, agentId);
43
47
  sessionId = session.id;
44
- console.error(`[naiad] Created session: ${sessionId} (resuming thread ${threadId})`);
48
+ stderrReporter.progress(`[naiad] Created session: ${sessionId} (resuming thread ${threadId})`);
45
49
  // Transition thread back to RUNNING
46
50
  const resumedThread = await client.getThread(threadId);
47
- const attempt = resumedThread.current_attempt;
51
+ attempt = resumedThread.current_attempt;
48
52
  await client.updateThread(threadId, { status: "RUNNING", attempt });
49
53
  }
50
54
  else {
51
55
  // New session flow
52
56
  const thread = await client.createThread("[interactive session]");
53
57
  threadId = thread.id;
54
- console.error(`[naiad] Created thread: ${threadId}`);
58
+ stderrReporter.progress(`[naiad] Created thread: ${threadId}`);
55
59
  const session = await client.createSession(threadId, agentId);
56
60
  sessionId = session.id;
57
- console.error(`[naiad] Created session: ${sessionId}`);
61
+ stderrReporter.progress(`[naiad] Created session: ${sessionId}`);
58
62
  await client.updateThread(threadId, { status: "RUNNING", attempt: 1 });
59
63
  }
60
64
  // Capture base SHA
@@ -69,7 +73,9 @@ export async function interactiveCommand(config, options) {
69
73
  try {
70
74
  await client.patchSession(sessionId, { base_sha: baseSha });
71
75
  }
72
- catch { }
76
+ catch (err) {
77
+ stderrReporter.capture("base_sha_store_failed", err);
78
+ }
73
79
  }
74
80
  const ctx = {
75
81
  config,
@@ -83,11 +89,15 @@ export async function interactiveCommand(config, options) {
83
89
  extensionPath,
84
90
  externalThread: false,
85
91
  baseSha,
86
- attempt: 1,
92
+ attempt,
93
+ reporter: stderrReporter,
87
94
  };
88
95
  // Start callback server
89
96
  const callbackServer = await startCallbackServer();
90
- console.error(`[naiad] Callback server listening at ${callbackServer.url}`);
97
+ stderrReporter.progress(`[naiad] Callback server listening at ${callbackServer.url}`);
98
+ // Switch to interactive reporter now that TUI is about to launch
99
+ const interactiveReporter = new InteractiveReporter(callbackServer.uiCommands, join(sessionDir, "diagnostics.jsonl"));
100
+ ctx.reporter = interactiveReporter;
91
101
  // Guard against EIO on inherited stdin after pi exits and releases the PTY
92
102
  process.stdin.on("error", () => { });
93
103
  // Launch pi in interactive mode
@@ -128,7 +138,7 @@ export async function interactiveCommand(config, options) {
128
138
  for (const ev of events) {
129
139
  if (ev.type === "checkpoint") {
130
140
  workers.checkpoint.handleCheckpoint(ev.data).catch((err) => {
131
- console.error("[naiad] Checkpoint handling failed:", err);
141
+ ctx.reporter.capture("checkpoint_handling_failed", err);
132
142
  });
133
143
  }
134
144
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import type { NaiadConfig } from "../config/config.js";
2
2
  import type { LifecycleContext } from "./types.js";
3
+ import type { Reporter } from "../reporting/reporter.js";
3
4
  export declare function setupLifecycle(params: {
4
5
  config: NaiadConfig;
6
+ reporter: Reporter;
5
7
  modelFlag?: string;
6
8
  threadPrompt: string;
7
9
  source?: string;
@@ -47,31 +47,31 @@ async function bootstrapOIDC(config, threadId, attempt) {
47
47
  return { token, sessionId };
48
48
  }
49
49
  export async function setupLifecycle(params) {
50
- const { config, modelFlag, threadPrompt } = params;
50
+ const { config, reporter, modelFlag, threadPrompt } = params;
51
51
  // If running in GHA with an existing thread, bootstrap auth via OIDC
52
52
  let oidcSessionId;
53
53
  if (config.isGHA && !config.apiKey && params.threadId) {
54
- console.error("[naiad] Bootstrapping auth via GitHub OIDC...");
54
+ reporter.progress("[naiad] Bootstrapping auth via GitHub OIDC...");
55
55
  const attempt = parseInt(process.env.NAIAD_ATTEMPT || "1", 10);
56
56
  const result = await bootstrapOIDC(config, params.threadId, attempt);
57
57
  config.apiKey = result.token;
58
58
  oidcSessionId = result.sessionId;
59
- console.error("[naiad] OIDC auth successful");
59
+ reporter.progress("[naiad] OIDC auth successful");
60
60
  }
61
61
  const client = new APIClient(config);
62
62
  // Validate API key by listing models
63
- console.error("[naiad] Validating API key...");
63
+ reporter.progress("[naiad] Validating API key...");
64
64
  const { models, seer_model_id: seerModelId, seer_reasoning_effort: seerReasoningEffort, default_model_id: defaultModelId } = await client.listModels();
65
65
  if (models.length === 0) {
66
66
  throw new Error("No models available");
67
67
  }
68
68
  const model = modelFlag || (defaultModelId && models.some(m => m.id === defaultModelId) ? defaultModelId : models[0].id);
69
- console.error(`[naiad] Using model: ${model}`);
69
+ reporter.progress(`[naiad] Using model: ${model}`);
70
70
  let threadId;
71
71
  if (params.threadId) {
72
72
  // Attach to existing thread (platform already created it)
73
73
  threadId = params.threadId;
74
- console.error(`[naiad] Attaching to existing thread: ${threadId}`);
74
+ reporter.progress(`[naiad] Attaching to existing thread: ${threadId}`);
75
75
  }
76
76
  else {
77
77
  // Create thread with metadata
@@ -82,16 +82,16 @@ export async function setupLifecycle(params) {
82
82
  replyTarget: params.replyTarget ? JSON.parse(params.replyTarget) : undefined,
83
83
  });
84
84
  threadId = thread.id;
85
- console.error(`[naiad] Created thread: ${threadId}`);
85
+ reporter.progress(`[naiad] Created thread: ${threadId}`);
86
86
  }
87
87
  // Capture base SHA from git before session creation
88
88
  let baseSha;
89
89
  try {
90
90
  baseSha = execSync("git rev-parse HEAD", { encoding: "utf8" }).trim();
91
- console.error(`[naiad] Captured base SHA: ${baseSha}`);
91
+ reporter.progress(`[naiad] Captured base SHA: ${baseSha}`);
92
92
  }
93
93
  catch {
94
- console.error("[naiad] Not in a git repo or git not available, skipping base SHA capture");
94
+ reporter.progress("[naiad] Not in a git repo or git not available, skipping base SHA capture");
95
95
  }
96
96
  // Session setup: reuse existing session for attached threads, create new for fresh
97
97
  const agentId = randomUUID();
@@ -106,7 +106,7 @@ export async function setupLifecycle(params) {
106
106
  attempt = thread.current_attempt;
107
107
  const sessionInfo = await client.getSession(oidcSessionId);
108
108
  session = { id: sessionInfo.id, remote_control_enabled: sessionInfo.remote_control_enabled };
109
- console.error(`[naiad] Reusing session from OIDC auth: ${session.id} (attempt ${attempt})`);
109
+ reporter.progress(`[naiad] Reusing session from OIDC auth: ${session.id} (attempt ${attempt})`);
110
110
  }
111
111
  else if (params.threadId) {
112
112
  // Attach mode without OIDC: fall back to listing sessions
@@ -119,19 +119,19 @@ export async function setupLifecycle(params) {
119
119
  }
120
120
  session = active;
121
121
  attempt = currentAttempt;
122
- console.error(`[naiad] Reusing existing session: ${session.id} (attempt ${attempt})`);
122
+ reporter.progress(`[naiad] Reusing existing session: ${session.id} (attempt ${attempt})`);
123
123
  }
124
124
  else {
125
125
  session = await client.createSession(threadId, agentId, runtime);
126
126
  attempt = 1;
127
- console.error(`[naiad] Created session: ${session.id}`);
127
+ reporter.progress(`[naiad] Created session: ${session.id}`);
128
128
  // Store base_sha in session record (only for fresh sessions we created)
129
129
  if (baseSha) {
130
130
  try {
131
131
  await client.patchSession(session.id, { base_sha: baseSha });
132
132
  }
133
133
  catch (err) {
134
- console.error("[naiad] Failed to store base SHA in session:", err);
134
+ reporter.capture("base_sha_store_failed", err);
135
135
  }
136
136
  }
137
137
  }
@@ -144,6 +144,7 @@ export async function setupLifecycle(params) {
144
144
  const extensionPath = join(pkgRoot, "extensions", "naiad-extension.ts");
145
145
  return {
146
146
  config,
147
+ reporter,
147
148
  client,
148
149
  model,
149
150
  allModels: models,
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lifecycle/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lifecycle/setup.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export async function teardownLifecycle(params) {
16
16
  }
17
17
  const promises = [
18
18
  ctx.client.updateSession(ctx.sessionId, finalStatus).catch((err) => {
19
- console.error("[naiad] Failed to update session:", err);
19
+ ctx.reporter.capture("session_update_failed", err);
20
20
  }),
21
21
  ];
22
22
  // Skip thread status update for external threads (--thread flag).
@@ -32,11 +32,8 @@ export async function teardownLifecycle(params) {
32
32
  : ctx.client.updateThread(ctx.threadId, { status: "COMPLETED", attempt: ctx.attempt });
33
33
  promises.push(threadUpdate.then(() => { }).catch((err) => {
34
34
  const msg = err instanceof Error ? err.message : String(err);
35
- if (msg.includes("409")) {
36
- console.error("[naiad] Thread status already set (409), continuing");
37
- }
38
- else {
39
- console.error("[naiad] Failed to update thread:", err);
35
+ if (!msg.includes("409")) {
36
+ ctx.reporter.capture("thread_update_failed", err);
40
37
  }
41
38
  }));
42
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"teardown.js","sourceRoot":"","sources":["../../src/lifecycle/teardown.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAIvC;IACC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,WAAW,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE5D,gEAAgE;IAChE,qEAAqE;IACrE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnE,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjE,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC,CAAC;KACH,CAAC;IAEF,kEAAkE;IAClE,oEAAoE;IACpE,wDAAwD;IACxD,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,WAAW,KAAK,QAAQ;YAC3C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACpC,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,YAAY,IAAI,uBAAuB,QAAQ,EAAE;gBACxD,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC;YACJ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAEzF,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YAC/D,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5B,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"teardown.js","sourceRoot":"","sources":["../../src/lifecycle/teardown.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAIvC;IACC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,WAAW,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE5D,gEAAgE;IAChE,qEAAqE;IACrE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnE,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC,CAAC;KACH,CAAC;IAEF,kEAAkE;IAClE,oEAAoE;IACpE,wDAAwD;IACxD,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,WAAW,KAAK,QAAQ;YAC3C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACpC,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,YAAY,IAAI,uBAAuB,QAAQ,EAAE;gBACxD,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC;YACJ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAEzF,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YAC/D,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5B,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -4,6 +4,7 @@ import type { EventSpool } from "../sync/events.js";
4
4
  import type { SessionUploader } from "../sync/session-upload.js";
5
5
  import type { HeartbeatReporter } from "../sync/heartbeat.js";
6
6
  import type { CheckpointUploader } from "../sync/checkpoint.js";
7
+ import type { Reporter } from "../reporting/reporter.js";
7
8
  export interface LifecycleContext {
8
9
  config: NaiadConfig;
9
10
  client: APIClient;
@@ -27,6 +28,7 @@ export interface LifecycleContext {
27
28
  seerReasoningEffort?: string;
28
29
  remoteControlEnabled?: boolean;
29
30
  attempt?: number;
31
+ reporter: Reporter;
30
32
  }
31
33
  export interface Workers {
32
34
  eventSpool: EventSpool;
@@ -3,13 +3,13 @@ import { SessionUploader } from "../sync/session-upload.js";
3
3
  import { HeartbeatReporter } from "../sync/heartbeat.js";
4
4
  import { CheckpointUploader } from "../sync/checkpoint.js";
5
5
  export function startWorkers(ctx) {
6
- const eventSpool = new EventSpool(ctx.client, ctx.threadId, ctx.sessionId, ctx.attempt ?? 1);
6
+ const eventSpool = new EventSpool(ctx.client, ctx.threadId, ctx.sessionId, ctx.attempt ?? 1, ctx.reporter);
7
7
  eventSpool.start();
8
8
  const uploader = new SessionUploader(ctx.client, ctx.sessionId, ctx.sessionDir);
9
9
  uploader.start();
10
10
  const heartbeat = new HeartbeatReporter(ctx.client, ctx.agentId, ctx.threadId, ctx.sessionId, ctx.attempt ?? 1);
11
11
  heartbeat.start();
12
- const checkpoint = new CheckpointUploader(ctx.client, ctx.sessionId, ctx.sessionDir, ctx.attempt ?? 1);
12
+ const checkpoint = new CheckpointUploader(ctx.client, ctx.sessionId, ctx.sessionDir, ctx.attempt ?? 1, ctx.reporter);
13
13
  return {
14
14
  eventSpool,
15
15
  uploader,
@@ -1 +1 @@
1
- {"version":3,"file":"workers.js","sourceRoot":"","sources":["../../src/lifecycle/workers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,MAAM,UAAU,YAAY,CAAC,GAAqB;IAChD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAC7F,UAAU,CAAC,KAAK,EAAE,CAAC;IAEnB,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAChF,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEjB,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAChH,SAAS,CAAC,KAAK,EAAE,CAAC;IAElB,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAEvG,OAAO;QACL,UAAU;QACV,QAAQ;QACR,SAAS;QACT,UAAU;QACV,KAAK,CAAC,IAAI;YACR,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,UAAU,CAAC,WAAW,EAAE;gBACxB,UAAU,CAAC,IAAI,EAAE;gBACjB,QAAQ,CAAC,IAAI,EAAE;aAChB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"workers.js","sourceRoot":"","sources":["../../src/lifecycle/workers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,MAAM,UAAU,YAAY,CAAC,GAAqB;IAChD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3G,UAAU,CAAC,KAAK,EAAE,CAAC;IAEnB,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAChF,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEjB,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAChH,SAAS,CAAC,KAAK,EAAE,CAAC;IAElB,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAErH,OAAO;QACL,UAAU;QACV,QAAQ;QACR,SAAS;QACT,UAAU;QACV,KAAK,CAAC,IAAI;YACR,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,UAAU,CAAC,WAAW,EAAE;gBACxB,UAAU,CAAC,IAAI,EAAE;gBACjB,QAAQ,CAAC,IAAI,EAAE;aAChB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ export type UiLevel = "info" | "warning" | "error";
2
+ export interface Reporter {
3
+ progress(msg: string): void;
4
+ notify(level: UiLevel, message: string): void;
5
+ setStatus(key: string, text: string | undefined): void;
6
+ capture(code: string, err: unknown, meta?: Record<string, unknown>): void;
7
+ }
8
+ export interface UiCommand {
9
+ id: number;
10
+ type: "notify" | "status";
11
+ level?: UiLevel;
12
+ message?: string;
13
+ key?: string;
14
+ text?: string;
15
+ }
16
+ export interface UiCommandQueue {
17
+ enqueue(cmd: Omit<UiCommand, "id">): void;
18
+ drain(cursor: number): UiCommand[];
19
+ }
20
+ export declare function createUiCommandQueue(): UiCommandQueue;
21
+ export declare class StderrReporter implements Reporter {
22
+ private logPath;
23
+ constructor(logPath?: string);
24
+ setLogPath(path: string): void;
25
+ progress(msg: string): void;
26
+ notify(_level: UiLevel, message: string): void;
27
+ setStatus(_key: string, _text: string | undefined): void;
28
+ capture(code: string, err: unknown, meta?: Record<string, unknown>): void;
29
+ }
30
+ export declare class InteractiveReporter implements Reporter {
31
+ private logPath;
32
+ private queue;
33
+ constructor(queue: UiCommandQueue, logPath?: string);
34
+ progress(_msg: string): void;
35
+ notify(level: UiLevel, message: string): void;
36
+ setStatus(key: string, text: string | undefined): void;
37
+ capture(code: string, err: unknown, meta?: Record<string, unknown>): void;
38
+ }
@@ -0,0 +1,89 @@
1
+ import { appendFileSync } from "fs";
2
+ export function createUiCommandQueue() {
3
+ let commands = [];
4
+ let nextId = 1;
5
+ return {
6
+ enqueue(cmd) {
7
+ if (cmd.type === "status" && cmd.key) {
8
+ // Coalesce: replace existing status for the same key
9
+ commands = commands.filter((c) => !(c.type === "status" && c.key === cmd.key));
10
+ }
11
+ commands.push({ id: nextId++, ...cmd });
12
+ },
13
+ drain(cursor) {
14
+ const result = commands.filter((c) => c.id > cursor);
15
+ // Prune consumed commands
16
+ commands = commands.filter((c) => c.id > cursor);
17
+ return result;
18
+ },
19
+ };
20
+ }
21
+ function extractError(err) {
22
+ if (err instanceof Error) {
23
+ return { message: err.message, stack: err.stack };
24
+ }
25
+ if (typeof err === "string") {
26
+ return { message: err };
27
+ }
28
+ return { message: String(err) };
29
+ }
30
+ function writeDiagnostic(logPath, code, err, meta) {
31
+ if (!logPath)
32
+ return;
33
+ const { message, stack } = extractError(err);
34
+ const entry = JSON.stringify({
35
+ ts: new Date().toISOString(),
36
+ code,
37
+ message,
38
+ stack,
39
+ meta,
40
+ });
41
+ try {
42
+ appendFileSync(logPath, entry + "\n");
43
+ }
44
+ catch {
45
+ // Best effort — don't crash if diagnostics log is unwritable
46
+ }
47
+ }
48
+ export class StderrReporter {
49
+ logPath;
50
+ constructor(logPath) {
51
+ this.logPath = logPath;
52
+ }
53
+ setLogPath(path) {
54
+ this.logPath = path;
55
+ }
56
+ progress(msg) {
57
+ console.error(msg);
58
+ }
59
+ notify(_level, message) {
60
+ console.error(message);
61
+ }
62
+ setStatus(_key, _text) {
63
+ // no-op in headless mode
64
+ }
65
+ capture(code, err, meta) {
66
+ writeDiagnostic(this.logPath, code, err, meta);
67
+ }
68
+ }
69
+ export class InteractiveReporter {
70
+ logPath;
71
+ queue;
72
+ constructor(queue, logPath) {
73
+ this.queue = queue;
74
+ this.logPath = logPath;
75
+ }
76
+ progress(_msg) {
77
+ // no-op — TUI shows its own progress
78
+ }
79
+ notify(level, message) {
80
+ this.queue.enqueue({ type: "notify", level, message });
81
+ }
82
+ setStatus(key, text) {
83
+ this.queue.enqueue({ type: "status", key, text });
84
+ }
85
+ capture(code, err, meta) {
86
+ writeDiagnostic(this.logPath, code, err, meta);
87
+ }
88
+ }
89
+ //# sourceMappingURL=reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/reporting/reporter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { APIClient } from "../api/client.js";
2
+ import type { Reporter } from "../reporting/reporter.js";
2
3
  export interface CheckpointMessage {
3
4
  base_sha: string;
4
5
  head_sha: string;
@@ -17,7 +18,9 @@ export declare class CheckpointUploader {
17
18
  private attempt;
18
19
  private lastUploadAt;
19
20
  private pendingCheckpoint;
20
- constructor(client: APIClient, sessionId: string, sessionDir: string, attempt: number);
21
+ private reporter;
22
+ private firstFailureNotified;
23
+ constructor(client: APIClient, sessionId: string, sessionDir: string, attempt: number, reporter: Reporter);
21
24
  handleCheckpoint(msg: CheckpointMessage, forceUpload?: boolean): Promise<void>;
22
25
  flushOnExit(): Promise<void>;
23
26
  private uploadCheckpoint;