cueline 0.1.6 → 0.2.0

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 (188) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +50 -0
  4. package/README.ja.md +77 -30
  5. package/README.ko.md +77 -30
  6. package/README.md +71 -29
  7. package/README.zh-CN.md +77 -30
  8. package/README.zh-TW.md +74 -29
  9. package/config/routing.schema.json +3 -0
  10. package/dist/src/api-caller-work.js +58 -14
  11. package/dist/src/api-caller-work.js.map +1 -1
  12. package/dist/src/api-contracts.d.ts +56 -0
  13. package/dist/src/api-controller-handoff.d.ts +5 -1
  14. package/dist/src/api-controller-handoff.js +178 -38
  15. package/dist/src/api-controller-handoff.js.map +1 -1
  16. package/dist/src/api-run-verification.d.ts +3 -0
  17. package/dist/src/api-run-verification.js +174 -0
  18. package/dist/src/api-run-verification.js.map +1 -0
  19. package/dist/src/api-runtime-lifecycle.d.ts +6 -1
  20. package/dist/src/api-runtime-lifecycle.js +97 -8
  21. package/dist/src/api-runtime-lifecycle.js.map +1 -1
  22. package/dist/src/api.d.ts +26 -4
  23. package/dist/src/api.js +111 -40
  24. package/dist/src/api.js.map +1 -1
  25. package/dist/src/browser/browser-adapter.d.ts +41 -0
  26. package/dist/src/browser/codex-iab/bootstrap.d.ts +21 -0
  27. package/dist/src/browser/codex-iab/bootstrap.js +174 -9
  28. package/dist/src/browser/codex-iab/bootstrap.js.map +1 -1
  29. package/dist/src/browser/codex-iab/chatgpt-client.d.ts +3 -0
  30. package/dist/src/browser/codex-iab/chatgpt-client.js +216 -70
  31. package/dist/src/browser/codex-iab/chatgpt-client.js.map +1 -1
  32. package/dist/src/browser/codex-iab/probe.d.ts +36 -0
  33. package/dist/src/browser/codex-iab/probe.js +217 -0
  34. package/dist/src/browser/codex-iab/probe.js.map +1 -0
  35. package/dist/src/browser/codex-iab/recovery-evidence.d.ts +1 -1
  36. package/dist/src/browser/codex-iab/recovery-evidence.js +7 -10
  37. package/dist/src/browser/codex-iab/recovery-evidence.js.map +1 -1
  38. package/dist/src/browser/codex-iab/selectors.d.ts +1 -0
  39. package/dist/src/browser/codex-iab/selectors.js +1 -0
  40. package/dist/src/browser/codex-iab/selectors.js.map +1 -1
  41. package/dist/src/browser/codex-iab/send-button.d.ts +5 -0
  42. package/dist/src/browser/codex-iab/send-button.js +62 -0
  43. package/dist/src/browser/codex-iab/send-button.js.map +1 -0
  44. package/dist/src/browser/codex-iab/submission-url.js +6 -15
  45. package/dist/src/browser/codex-iab/submission-url.js.map +1 -1
  46. package/dist/src/browser/codex-iab/tab-discovery.js +45 -12
  47. package/dist/src/browser/codex-iab/tab-discovery.js.map +1 -1
  48. package/dist/src/browser/codex-iab/timing-options.d.ts +1 -0
  49. package/dist/src/browser/codex-iab/timing-options.js +5 -0
  50. package/dist/src/browser/codex-iab/timing-options.js.map +1 -0
  51. package/dist/src/cli/health-commands.d.ts +2 -0
  52. package/dist/src/cli/health-commands.js +265 -0
  53. package/dist/src/cli/health-commands.js.map +1 -0
  54. package/dist/src/cli/io.d.ts +4 -0
  55. package/dist/src/cli/io.js +2 -0
  56. package/dist/src/cli/io.js.map +1 -0
  57. package/dist/src/cli/main.d.ts +1 -5
  58. package/dist/src/cli/main.js +187 -84
  59. package/dist/src/cli/main.js.map +1 -1
  60. package/dist/src/cli/observation-commands.d.ts +2 -0
  61. package/dist/src/cli/observation-commands.js +350 -0
  62. package/dist/src/cli/observation-commands.js.map +1 -0
  63. package/dist/src/cli/run-status-view.d.ts +87 -0
  64. package/dist/src/cli/run-status-view.js +121 -0
  65. package/dist/src/cli/run-status-view.js.map +1 -0
  66. package/dist/src/core/controller-command-execution.d.ts +2 -2
  67. package/dist/src/core/controller-command-execution.js +82 -16
  68. package/dist/src/core/controller-command-execution.js.map +1 -1
  69. package/dist/src/core/controller-conversation-archive.d.ts +11 -0
  70. package/dist/src/core/controller-conversation-archive.js +109 -0
  71. package/dist/src/core/controller-conversation-archive.js.map +1 -0
  72. package/dist/src/core/controller-loop.d.ts +7 -1
  73. package/dist/src/core/controller-loop.js +136 -23
  74. package/dist/src/core/controller-loop.js.map +1 -1
  75. package/dist/src/core/controller-turn.d.ts +21 -3
  76. package/dist/src/core/controller-turn.js +182 -41
  77. package/dist/src/core/controller-turn.js.map +1 -1
  78. package/dist/src/core/controller-types.d.ts +2 -0
  79. package/dist/src/core/conversation-url.d.ts +3 -0
  80. package/dist/src/core/conversation-url.js +34 -0
  81. package/dist/src/core/conversation-url.js.map +1 -0
  82. package/dist/src/core/run-status.d.ts +17 -2
  83. package/dist/src/core/run-status.js +64 -25
  84. package/dist/src/core/run-status.js.map +1 -1
  85. package/dist/src/core/state-machine.d.ts +36 -1
  86. package/dist/src/core/state-machine.js +242 -13
  87. package/dist/src/core/state-machine.js.map +1 -1
  88. package/dist/src/core/timing.d.ts +9 -0
  89. package/dist/src/core/timing.js +22 -0
  90. package/dist/src/core/timing.js.map +1 -0
  91. package/dist/src/diagnostics/run-doctor.d.ts +22 -0
  92. package/dist/src/diagnostics/run-doctor.js +197 -0
  93. package/dist/src/diagnostics/run-doctor.js.map +1 -0
  94. package/dist/src/jobs/status.d.ts +5 -2
  95. package/dist/src/jobs/status.js +172 -12
  96. package/dist/src/jobs/status.js.map +1 -1
  97. package/dist/src/jobs/supervisor.js +57 -8
  98. package/dist/src/jobs/supervisor.js.map +1 -1
  99. package/dist/src/observation/run-diff.d.ts +39 -0
  100. package/dist/src/observation/run-diff.js +67 -0
  101. package/dist/src/observation/run-diff.js.map +1 -0
  102. package/dist/src/observation/run-graph.d.ts +17 -0
  103. package/dist/src/observation/run-graph.js +77 -0
  104. package/dist/src/observation/run-graph.js.map +1 -0
  105. package/dist/src/observation/run-handoff.d.ts +86 -0
  106. package/dist/src/observation/run-handoff.js +309 -0
  107. package/dist/src/observation/run-handoff.js.map +1 -0
  108. package/dist/src/observation/run-status-at.d.ts +41 -0
  109. package/dist/src/observation/run-status-at.js +65 -0
  110. package/dist/src/observation/run-status-at.js.map +1 -0
  111. package/dist/src/observation/run-timeline.d.ts +32 -0
  112. package/dist/src/observation/run-timeline.js +279 -0
  113. package/dist/src/observation/run-timeline.js.map +1 -0
  114. package/dist/src/observation/run-watch.d.ts +15 -0
  115. package/dist/src/observation/run-watch.js +82 -0
  116. package/dist/src/observation/run-watch.js.map +1 -0
  117. package/dist/src/protocol/limits.d.ts +3 -0
  118. package/dist/src/protocol/limits.js +4 -0
  119. package/dist/src/protocol/limits.js.map +1 -0
  120. package/dist/src/protocol/lint-command.d.ts +24 -0
  121. package/dist/src/protocol/lint-command.js +210 -0
  122. package/dist/src/protocol/lint-command.js.map +1 -0
  123. package/dist/src/protocol/parse-command.js +4 -0
  124. package/dist/src/protocol/parse-command.js.map +1 -1
  125. package/dist/src/protocol/types.d.ts +12 -0
  126. package/dist/src/protocol/validate-command.js +76 -3
  127. package/dist/src/protocol/validate-command.js.map +1 -1
  128. package/dist/src/router/config-loader.js +23 -2
  129. package/dist/src/router/config-loader.js.map +1 -1
  130. package/dist/src/router/explain.d.ts +28 -0
  131. package/dist/src/router/explain.js +86 -0
  132. package/dist/src/router/explain.js.map +1 -0
  133. package/dist/src/router/resolver.d.ts +2 -1
  134. package/dist/src/router/resolver.js +11 -6
  135. package/dist/src/router/resolver.js.map +1 -1
  136. package/dist/src/runners/process-runner.js +55 -12
  137. package/dist/src/runners/process-runner.js.map +1 -1
  138. package/dist/src/runners/runner-adapter.d.ts +2 -0
  139. package/dist/src/runners/runner-adapter.js.map +1 -1
  140. package/dist/src/state/atomic-write.d.ts +6 -0
  141. package/dist/src/state/atomic-write.js +43 -2
  142. package/dist/src/state/atomic-write.js.map +1 -1
  143. package/dist/src/state/cancellation.js +38 -4
  144. package/dist/src/state/cancellation.js.map +1 -1
  145. package/dist/src/state/event-log.js +5 -4
  146. package/dist/src/state/event-log.js.map +1 -1
  147. package/dist/src/state/private-directory.d.ts +5 -0
  148. package/dist/src/state/private-directory.js +37 -0
  149. package/dist/src/state/private-directory.js.map +1 -0
  150. package/dist/src/state/runtime-lease.js +19 -39
  151. package/dist/src/state/runtime-lease.js.map +1 -1
  152. package/dist/src/state/runtime-record-validation.d.ts +6 -0
  153. package/dist/src/state/runtime-record-validation.js +44 -0
  154. package/dist/src/state/runtime-record-validation.js.map +1 -0
  155. package/dist/src/state/runtime-retirement.js +58 -18
  156. package/dist/src/state/runtime-retirement.js.map +1 -1
  157. package/dist/src/state/runtime-takeover-intent.js +2 -2
  158. package/dist/src/state/runtime-takeover-intent.js.map +1 -1
  159. package/dist/src/state/store.d.ts +1 -0
  160. package/dist/src/state/store.js +12 -6
  161. package/dist/src/state/store.js.map +1 -1
  162. package/dist/src/version.d.ts +1 -1
  163. package/dist/src/version.js +1 -1
  164. package/docs/architecture.md +4 -4
  165. package/docs/assets/README.md +3 -1
  166. package/docs/assets/cueline-architecture-en.svg +63 -0
  167. package/docs/assets/cueline-architecture-ja.svg +63 -0
  168. package/docs/assets/cueline-architecture-ko.svg +63 -0
  169. package/docs/assets/cueline-architecture-zh-CN.svg +63 -0
  170. package/docs/assets/cueline-architecture-zh-TW.svg +63 -0
  171. package/docs/assets/cueline-states-en.svg +50 -0
  172. package/docs/assets/cueline-states-ja.svg +48 -0
  173. package/docs/assets/cueline-states-ko.svg +48 -0
  174. package/docs/assets/cueline-states-zh-CN.svg +48 -0
  175. package/docs/assets/cueline-states-zh-TW.svg +48 -0
  176. package/docs/compatibility.md +1 -1
  177. package/docs/controller-protocol.md +44 -7
  178. package/docs/experiments/protocol-lint.md +40 -0
  179. package/docs/experiments/run-doctor.md +39 -0
  180. package/docs/experiments/run-handoff.md +39 -0
  181. package/docs/experiments/run-timeline.md +35 -0
  182. package/docs/experiments/run-watch.md +31 -0
  183. package/docs/multi-model-routing.md +256 -0
  184. package/docs/runner-contract.md +4 -3
  185. package/docs/state-and-recovery.md +45 -5
  186. package/package.json +1 -1
  187. package/schemas/controller-command.schema.json +89 -4
  188. package/skills/cueline/SKILL.md +13 -7
@@ -0,0 +1,350 @@
1
+ import { compareCueLineRuns, createCueLineRunHandoff, diagnoseCueLineRun, listCueLineRuns, loadCueLineRunGraph, loadCueLineRunTimeline, loadCueLineRunStatusAt, verifyCueLineRun, waitForCueLineRunChange, } from "../api.js";
2
+ import { CueLineError } from "../core/errors.js";
3
+ import { renderCueLineRunHandoffMarkdown } from "../observation/run-handoff.js";
4
+ import { CUELINE_VERSION } from "../version.js";
5
+ async function runsCommand(json, environment, io) {
6
+ const runs = await listCueLineRuns({ environment });
7
+ if (json) {
8
+ io.stdout(JSON.stringify(runs, null, 2));
9
+ }
10
+ else if (runs.length === 0) {
11
+ io.stdout("No runs.");
12
+ }
13
+ else {
14
+ for (const run of runs) {
15
+ if (!run.readable) {
16
+ io.stdout(`${run.runId}\tunreadable\t${run.errorCode}`);
17
+ continue;
18
+ }
19
+ io.stdout(`${run.runId}\t${run.status}\t${run.executor}\t${run.phase}\t${run.safeNextAction}\tround=${run.round}\tpending=${run.pendingTurns}\tactive_jobs=${run.activeJobs}\truntime=${run.runtimeOwnership}\tsequence=${run.lastEventSequence}\tupdated=${run.lastEventAt}`);
20
+ }
21
+ }
22
+ return runs.some((run) => !run.readable) ? 1 : 0;
23
+ }
24
+ async function runVerifyCommand(runId, json, environment, io) {
25
+ const report = await verifyCueLineRun(runId, { environment });
26
+ if (json) {
27
+ io.stdout(JSON.stringify(report, null, 2));
28
+ }
29
+ else {
30
+ io.stdout(`run\t${report.runId}`);
31
+ io.stdout(`outcome\t${report.outcome}`);
32
+ io.stdout(`marker\t${report.marker}`);
33
+ io.stdout(report.eventLog.readable
34
+ ? `events\treadable\ttotal=${report.eventLog.totalEvents}\tauthoritative=${report.eventLog.authoritativeEvents}\tlast_sequence=${report.eventLog.lastSequence}`
35
+ : "events\tunreadable");
36
+ io.stdout(`snapshot\t${report.snapshot}`);
37
+ io.stdout(`runtime\t${report.runtimeOwnership}`);
38
+ for (const item of report.findings) {
39
+ io.stdout(`finding\t${item.severity}\t${item.code}\t${item.surface}\t${item.message}`);
40
+ }
41
+ }
42
+ return report.outcome === "verified" ? 0 : 1;
43
+ }
44
+ async function runDoctorCommand(runId, json, environment, io) {
45
+ const diagnosis = await diagnoseCueLineRun(runId, { environment });
46
+ if (json) {
47
+ io.stdout(JSON.stringify({ version: CUELINE_VERSION, ...diagnosis }, null, 2));
48
+ }
49
+ else {
50
+ io.stdout(`run\t${diagnosis.runId}`);
51
+ io.stdout(`version\t${CUELINE_VERSION}`);
52
+ io.stdout(`outcome\t${diagnosis.outcome}`);
53
+ io.stdout(`phase\t${diagnosis.phase}`);
54
+ io.stdout(`sequence\t${diagnosis.eventSequence}`);
55
+ io.stdout(`summary\t${diagnosis.summary}`);
56
+ io.stdout(`next\t${diagnosis.nextAction}`);
57
+ for (const finding of diagnosis.findings) {
58
+ io.stdout(`finding\t${finding.severity}\t${finding.code}\t${finding.message}\taction=${finding.action}\tevidence=${JSON.stringify(finding.evidence)}`);
59
+ }
60
+ }
61
+ return diagnosis.outcome === "blocked" ? 1 : 0;
62
+ }
63
+ async function runWatchCommand(runId, afterSequence, timeoutMs, json, environment, io) {
64
+ const observation = await waitForCueLineRunChange(runId, {
65
+ environment,
66
+ afterSequence,
67
+ ...(timeoutMs === undefined ? {} : { timeoutMs }),
68
+ });
69
+ if (json) {
70
+ io.stdout(JSON.stringify({ version: CUELINE_VERSION, ...observation }, null, 2));
71
+ }
72
+ else {
73
+ io.stdout(`run\t${observation.status.runId}`);
74
+ io.stdout(`version\t${CUELINE_VERSION}`);
75
+ io.stdout(`outcome\t${observation.outcome}`);
76
+ io.stdout(`sequence\t${observation.previousSequence}->${observation.currentSequence}`);
77
+ io.stdout(`elapsed_ms\t${observation.elapsedMs}`);
78
+ io.stdout(`phase\t${observation.status.phase}`);
79
+ io.stdout(`next\t${observation.status.safeNextAction}`);
80
+ }
81
+ return 0;
82
+ }
83
+ async function runHandoffCommand(runId, includeContent, maxContentChars, jsonOutput, environment, io) {
84
+ const packet = await createCueLineRunHandoff(runId, {
85
+ environment,
86
+ ...(includeContent ? { includeContent: true } : {}),
87
+ ...(maxContentChars === undefined ? {} : { maxContentChars }),
88
+ });
89
+ io.stdout(jsonOutput ? JSON.stringify(packet, null, 2) : renderCueLineRunHandoffMarkdown(packet));
90
+ return 0;
91
+ }
92
+ async function runTimelineCommand(runId, afterSequence, limit, json, environment, io) {
93
+ const timeline = await loadCueLineRunTimeline(runId, {
94
+ environment,
95
+ afterSequence,
96
+ limit,
97
+ });
98
+ if (json) {
99
+ io.stdout(JSON.stringify({ version: CUELINE_VERSION, ...timeline }, null, 2));
100
+ }
101
+ else {
102
+ io.stdout(`run\t${timeline.runId}`);
103
+ io.stdout(`version\t${CUELINE_VERSION}`);
104
+ io.stdout(`events\treturned=${timeline.returnedEvents}\ttotal=${timeline.totalEvents}\tlatest=${timeline.latestSequence}\thas_more=${timeline.hasMore ? "yes" : "no"}\tnext_after=${timeline.nextAfterSequence}`);
105
+ for (const entry of timeline.entries) {
106
+ io.stdout(`event\t${entry.sequence}\t${entry.timestamp ?? "invalid_timestamp"}\t${entry.category}\t${entry.type}\t${entry.summary}\tattributes=${JSON.stringify(entry.attributes)}\tpayload_sha256=${entry.payloadHash}\towner=${entry.ownerFingerprint ?? "-"}`);
107
+ }
108
+ }
109
+ return 0;
110
+ }
111
+ async function runGraphCommand(runId, afterSequence, limit, json, environment, io) {
112
+ const graph = await loadCueLineRunGraph(runId, {
113
+ environment,
114
+ afterSequence,
115
+ limit,
116
+ });
117
+ io.stdout(json ? JSON.stringify({ version: CUELINE_VERSION, ...graph }, null, 2) : graph.mermaid);
118
+ return 0;
119
+ }
120
+ async function runStatusAtCommand(runId, sequence, json, environment, io) {
121
+ const historical = await loadCueLineRunStatusAt(runId, { environment, sequence });
122
+ if (json) {
123
+ io.stdout(JSON.stringify({ version: CUELINE_VERSION, ...historical }, null, 2));
124
+ }
125
+ else {
126
+ io.stdout(`run\t${historical.runId}`);
127
+ io.stdout(`version\t${CUELINE_VERSION}`);
128
+ io.stdout(`sequence\t${historical.requestedSequence}/${historical.latestSequence}\tauthoritative_applied=${historical.authoritativeEventsApplied}`);
129
+ io.stdout(`event\t${historical.asOf.type}\t${historical.asOf.timestamp}`);
130
+ io.stdout(`state\t${historical.state.status}\texecutor=${historical.state.executor}\tround=${historical.state.round}/${historical.state.maxRounds}`);
131
+ io.stdout(`controller\tpending=${historical.state.pendingControllerTurns}\tabandoned=${historical.state.abandonedControllerTurns}\taccepted=${historical.state.acceptedCommands}`);
132
+ io.stdout(`jobs\ttotal=${historical.state.jobs.total}\tcounts=${JSON.stringify(historical.state.jobs.counts)}`);
133
+ }
134
+ return 0;
135
+ }
136
+ async function runDiffCommand(leftRunId, rightRunId, json, environment, io) {
137
+ const comparison = await compareCueLineRuns(leftRunId, rightRunId, { environment });
138
+ if (json) {
139
+ io.stdout(JSON.stringify({ version: CUELINE_VERSION, ...comparison }, null, 2));
140
+ }
141
+ else {
142
+ io.stdout(`left\t${comparison.left.runId}`);
143
+ io.stdout(`right\t${comparison.right.runId}`);
144
+ io.stdout(`equivalent\t${comparison.equivalent ? "yes" : "no"}`);
145
+ for (const change of comparison.changes) {
146
+ io.stdout(`change\t${change.field}\t${JSON.stringify(change.left)}\t${JSON.stringify(change.right)}`);
147
+ }
148
+ }
149
+ return 0;
150
+ }
151
+ export async function handleObservationCommand(args, environment, io) {
152
+ if (args[0] === "runs" &&
153
+ (args.length === 1 || (args.length === 2 && args[1] === "--json"))) {
154
+ return runsCommand(args[1] === "--json", environment, io);
155
+ }
156
+ if (args[0] === "run" &&
157
+ args[1] === "verify" &&
158
+ typeof args[2] === "string" &&
159
+ (args.length === 3 || (args.length === 4 && args[3] === "--json"))) {
160
+ return runVerifyCommand(args[2], args[3] === "--json", environment, io);
161
+ }
162
+ if (args[0] === "run" &&
163
+ args[1] === "doctor" &&
164
+ typeof args[2] === "string" &&
165
+ (args.length === 3 || (args.length === 4 && args[3] === "--json"))) {
166
+ return runDoctorCommand(args[2], args[3] === "--json", environment, io);
167
+ }
168
+ if (args[0] === "run" && args[1] === "status-at" && typeof args[2] === "string") {
169
+ let sequence;
170
+ let json = false;
171
+ let valid = true;
172
+ for (let index = 3; index < args.length; index += 1) {
173
+ const argument = args[index];
174
+ if (argument === "--sequence" &&
175
+ sequence === undefined &&
176
+ typeof args[index + 1] === "string") {
177
+ sequence = Number(args[index + 1]);
178
+ index += 1;
179
+ }
180
+ else if (argument === "--json" && !json) {
181
+ json = true;
182
+ }
183
+ else {
184
+ valid = false;
185
+ }
186
+ }
187
+ if (!valid || sequence === undefined || !Number.isSafeInteger(sequence) || sequence < 1) {
188
+ throw new CueLineError("CLI_ARGUMENTS_INVALID", "usage: cueline run status-at <run-id> --sequence <positive-integer> [--json]");
189
+ }
190
+ return runStatusAtCommand(args[2], sequence, json, environment, io);
191
+ }
192
+ if (args[0] === "run" &&
193
+ args[1] === "diff" &&
194
+ typeof args[2] === "string" &&
195
+ typeof args[3] === "string" &&
196
+ (args.length === 4 || (args.length === 5 && args[4] === "--json"))) {
197
+ return runDiffCommand(args[2], args[3], args[4] === "--json", environment, io);
198
+ }
199
+ if (args[0] === "run" && args[1] === "watch" && typeof args[2] === "string") {
200
+ let afterSequence;
201
+ let timeoutMs;
202
+ let json = false;
203
+ let valid = true;
204
+ for (let index = 3; index < args.length; index += 1) {
205
+ const argument = args[index];
206
+ if (argument === "--after" &&
207
+ afterSequence === undefined &&
208
+ typeof args[index + 1] === "string") {
209
+ afterSequence = Number(args[index + 1]);
210
+ index += 1;
211
+ }
212
+ else if (argument === "--timeout-ms" &&
213
+ timeoutMs === undefined &&
214
+ typeof args[index + 1] === "string") {
215
+ timeoutMs = Number(args[index + 1]);
216
+ index += 1;
217
+ }
218
+ else if (argument === "--json" && !json) {
219
+ json = true;
220
+ }
221
+ else {
222
+ valid = false;
223
+ }
224
+ }
225
+ if (!valid ||
226
+ afterSequence === undefined ||
227
+ !Number.isSafeInteger(afterSequence) ||
228
+ afterSequence < 0 ||
229
+ (timeoutMs !== undefined &&
230
+ (!Number.isSafeInteger(timeoutMs) || timeoutMs < 0 || timeoutMs > 30_000))) {
231
+ throw new CueLineError("CLI_ARGUMENTS_INVALID", "usage: cueline run watch <run-id> --after <sequence> [--timeout-ms <0..30000>] [--json]");
232
+ }
233
+ return runWatchCommand(args[2], afterSequence, timeoutMs, json, environment, io);
234
+ }
235
+ if (args[0] === "run" && args[1] === "handoff" && typeof args[2] === "string") {
236
+ let includeContent = false;
237
+ let maxContentChars;
238
+ let json = false;
239
+ let valid = true;
240
+ for (let index = 3; index < args.length; index += 1) {
241
+ const argument = args[index];
242
+ if (argument === "--include-content" && !includeContent) {
243
+ includeContent = true;
244
+ }
245
+ else if (argument === "--max-content-chars" &&
246
+ maxContentChars === undefined &&
247
+ typeof args[index + 1] === "string") {
248
+ maxContentChars = Number(args[index + 1]);
249
+ index += 1;
250
+ }
251
+ else if (argument === "--json" && !json) {
252
+ json = true;
253
+ }
254
+ else {
255
+ valid = false;
256
+ }
257
+ }
258
+ if (!valid ||
259
+ (maxContentChars !== undefined && !includeContent) ||
260
+ (maxContentChars !== undefined &&
261
+ (!Number.isSafeInteger(maxContentChars) ||
262
+ maxContentChars < 16 ||
263
+ maxContentChars > 10_000))) {
264
+ throw new CueLineError("CLI_ARGUMENTS_INVALID", "usage: cueline run handoff <run-id> [--include-content] [--max-content-chars <16..10000>] [--json]");
265
+ }
266
+ return runHandoffCommand(args[2], includeContent, maxContentChars, json, environment, io);
267
+ }
268
+ if (args[0] === "run" && args[1] === "timeline" && typeof args[2] === "string") {
269
+ let afterSequence = 0;
270
+ let limit = 100;
271
+ let afterProvided = false;
272
+ let limitProvided = false;
273
+ let json = false;
274
+ let valid = true;
275
+ for (let index = 3; index < args.length; index += 1) {
276
+ const argument = args[index];
277
+ if (argument === "--after" &&
278
+ !afterProvided &&
279
+ typeof args[index + 1] === "string") {
280
+ afterSequence = Number(args[index + 1]);
281
+ afterProvided = true;
282
+ index += 1;
283
+ }
284
+ else if (argument === "--limit" &&
285
+ !limitProvided &&
286
+ typeof args[index + 1] === "string") {
287
+ limit = Number(args[index + 1]);
288
+ limitProvided = true;
289
+ index += 1;
290
+ }
291
+ else if (argument === "--json" && !json) {
292
+ json = true;
293
+ }
294
+ else {
295
+ valid = false;
296
+ }
297
+ }
298
+ if (!valid ||
299
+ !Number.isSafeInteger(afterSequence) ||
300
+ afterSequence < 0 ||
301
+ !Number.isSafeInteger(limit) ||
302
+ limit < 1 ||
303
+ limit > 1_000) {
304
+ throw new CueLineError("CLI_ARGUMENTS_INVALID", "usage: cueline run timeline <run-id> [--after <sequence>] [--limit <1..1000>] [--json]");
305
+ }
306
+ return runTimelineCommand(args[2], afterSequence, limit, json, environment, io);
307
+ }
308
+ if (args[0] === "run" && args[1] === "graph" && typeof args[2] === "string") {
309
+ let afterSequence = 0;
310
+ let limit = 100;
311
+ let afterProvided = false;
312
+ let limitProvided = false;
313
+ let json = false;
314
+ let valid = true;
315
+ for (let index = 3; index < args.length; index += 1) {
316
+ const argument = args[index];
317
+ if (argument === "--after" &&
318
+ !afterProvided &&
319
+ typeof args[index + 1] === "string") {
320
+ afterSequence = Number(args[index + 1]);
321
+ afterProvided = true;
322
+ index += 1;
323
+ }
324
+ else if (argument === "--limit" &&
325
+ !limitProvided &&
326
+ typeof args[index + 1] === "string") {
327
+ limit = Number(args[index + 1]);
328
+ limitProvided = true;
329
+ index += 1;
330
+ }
331
+ else if (argument === "--json" && !json) {
332
+ json = true;
333
+ }
334
+ else {
335
+ valid = false;
336
+ }
337
+ }
338
+ if (!valid ||
339
+ !Number.isSafeInteger(afterSequence) ||
340
+ afterSequence < 0 ||
341
+ !Number.isSafeInteger(limit) ||
342
+ limit < 1 ||
343
+ limit > 200) {
344
+ throw new CueLineError("CLI_ARGUMENTS_INVALID", "usage: cueline run graph <run-id> [--after <sequence>] [--limit <1..200>] [--json]");
345
+ }
346
+ return runGraphCommand(args[2], afterSequence, limit, json, environment, io);
347
+ }
348
+ return undefined;
349
+ }
350
+ //# sourceMappingURL=observation-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observation-commands.js","sourceRoot":"","sources":["../../../src/cli/observation-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import type { CueLineRunStatusSummary } from "../core/run-status.js";
2
+ /**
3
+ * Build the metadata-only CLI view explicitly instead of deleting known
4
+ * sensitive fields. New fields added to the internal status summary therefore
5
+ * remain private until they are deliberately reviewed for CLI exposure.
6
+ */
7
+ export declare function safeCueLineRunStatus(status: CueLineRunStatusSummary): {
8
+ runId: string;
9
+ status: import("../core/state-machine.js").CueLineRunStatus;
10
+ executor: import("../core/state-machine.js").CueLineExecutor;
11
+ allowProcessExecution: boolean;
12
+ phase: import("../core/run-status.js").CueLineRunPhase;
13
+ round: number;
14
+ maxRounds: number;
15
+ lastEventSequence: number;
16
+ runtime: {
17
+ ownership: import("../state/runtime-lease.js").RuntimeOwnership;
18
+ heartbeatAt?: string;
19
+ ageMs?: number;
20
+ pid?: string;
21
+ };
22
+ cancellation: {
23
+ runRequested: boolean;
24
+ jobRequests: string[];
25
+ };
26
+ controller: {
27
+ pendingTurns: number;
28
+ acceptedCommands: number;
29
+ responseAccepted: boolean;
30
+ lastAcceptedAction: "blocked" | "complete" | "dispatch" | "inspect" | "wait" | null;
31
+ lastAcceptedRequestId: string | null;
32
+ lastAcceptedJobKeys: string[];
33
+ reconciliation?: {
34
+ requiredReason: string | null;
35
+ operatorConfirmation: "not_sent_confirmed" | "manual_send_confirmed" | null;
36
+ abandonedRequestId: string | null;
37
+ retryRequestId: string | null;
38
+ promptHash: string | null;
39
+ resendBlockedReason: string | null;
40
+ };
41
+ archive?: {
42
+ enabled: boolean;
43
+ status: import("../core/state-machine.js").ControllerConversationArchiveStatus;
44
+ code: string | null;
45
+ proof: "conversation_url_changed" | null;
46
+ };
47
+ };
48
+ jobs: {
49
+ total: number;
50
+ counts: {
51
+ pending: number;
52
+ running: number;
53
+ succeeded: number;
54
+ failed: number;
55
+ timed_out: number;
56
+ cancelled: number;
57
+ ambiguous: number;
58
+ orphaned: number;
59
+ };
60
+ items: {
61
+ jobId: string;
62
+ jobKey: string;
63
+ required: boolean;
64
+ lane: string;
65
+ mode: string;
66
+ status: "ambiguous" | "cancelled" | "failed" | "orphaned" | "pending" | "running" | "succeeded" | "timed_out";
67
+ persistedStatus: "ambiguous" | "cancelled" | "failed" | "pending" | "running" | "succeeded" | "timed_out";
68
+ workClaim?: {
69
+ claimed: boolean;
70
+ claimedAt?: string;
71
+ heartbeatAt?: string;
72
+ expiresAt?: string;
73
+ startedAt?: string | null;
74
+ };
75
+ execution?: {
76
+ runnerId?: string;
77
+ pid?: number;
78
+ model?: string;
79
+ provider?: string;
80
+ phase?: string;
81
+ lastProgressAt?: string;
82
+ };
83
+ }[];
84
+ };
85
+ continueAllowed: boolean;
86
+ safeNextAction: import("../core/run-status.js").CueLineSafeNextAction;
87
+ };
@@ -0,0 +1,121 @@
1
+ function present(value) {
2
+ return value !== undefined;
3
+ }
4
+ /**
5
+ * Build the metadata-only CLI view explicitly instead of deleting known
6
+ * sensitive fields. New fields added to the internal status summary therefore
7
+ * remain private until they are deliberately reviewed for CLI exposure.
8
+ */
9
+ export function safeCueLineRunStatus(status) {
10
+ return {
11
+ runId: status.runId,
12
+ status: status.status,
13
+ executor: status.executor,
14
+ allowProcessExecution: status.allowProcessExecution,
15
+ phase: status.phase,
16
+ round: status.round,
17
+ maxRounds: status.maxRounds,
18
+ lastEventSequence: status.lastEventSequence,
19
+ runtime: {
20
+ ownership: status.runtime.ownership,
21
+ ...(present(status.runtime.heartbeatAt)
22
+ ? { heartbeatAt: status.runtime.heartbeatAt }
23
+ : {}),
24
+ ...(present(status.runtime.ageMs) ? { ageMs: status.runtime.ageMs } : {}),
25
+ ...(present(status.runtime.pid) ? { pid: status.runtime.pid } : {}),
26
+ },
27
+ cancellation: {
28
+ runRequested: status.cancellation.runRequested,
29
+ jobRequests: [...status.cancellation.jobRequests],
30
+ },
31
+ controller: {
32
+ pendingTurns: status.controller.pendingTurns,
33
+ acceptedCommands: status.controller.acceptedCommands,
34
+ responseAccepted: status.controller.responseAccepted,
35
+ lastAcceptedAction: status.controller.lastAcceptedAction,
36
+ lastAcceptedRequestId: status.controller.lastAcceptedRequestId,
37
+ lastAcceptedJobKeys: [...status.controller.lastAcceptedJobKeys],
38
+ ...(status.controller.reconciliation === undefined ||
39
+ (status.controller.reconciliation.requiredReason === null &&
40
+ status.controller.reconciliation.operatorConfirmation === null &&
41
+ status.controller.reconciliation.abandonedRequestId === null &&
42
+ status.controller.reconciliation.retryRequestId === null &&
43
+ status.controller.reconciliation.promptHash === null &&
44
+ status.controller.reconciliation.resendBlockedReason === null)
45
+ ? {}
46
+ : { reconciliation: { ...status.controller.reconciliation } }),
47
+ ...(status.controller.archive.enabled
48
+ ? {
49
+ archive: {
50
+ enabled: true,
51
+ status: status.controller.archive.status,
52
+ code: status.controller.archive.code,
53
+ proof: status.controller.archive.proof,
54
+ },
55
+ }
56
+ : {}),
57
+ },
58
+ jobs: {
59
+ total: status.jobs.total,
60
+ counts: {
61
+ pending: status.jobs.counts.pending,
62
+ running: status.jobs.counts.running,
63
+ succeeded: status.jobs.counts.succeeded,
64
+ failed: status.jobs.counts.failed,
65
+ timed_out: status.jobs.counts.timed_out,
66
+ cancelled: status.jobs.counts.cancelled,
67
+ ambiguous: status.jobs.counts.ambiguous,
68
+ orphaned: status.jobs.counts.orphaned,
69
+ },
70
+ items: status.jobs.items.map((job) => ({
71
+ jobId: job.jobId,
72
+ jobKey: job.jobKey,
73
+ required: job.required,
74
+ lane: job.lane,
75
+ mode: job.mode,
76
+ status: job.status,
77
+ persistedStatus: job.persistedStatus,
78
+ ...(job.workClaim === undefined
79
+ ? {}
80
+ : {
81
+ workClaim: {
82
+ claimed: job.workClaim.claimed,
83
+ ...(present(job.workClaim.claimedAt)
84
+ ? { claimedAt: job.workClaim.claimedAt }
85
+ : {}),
86
+ ...(present(job.workClaim.heartbeatAt)
87
+ ? { heartbeatAt: job.workClaim.heartbeatAt }
88
+ : {}),
89
+ ...(present(job.workClaim.expiresAt)
90
+ ? { expiresAt: job.workClaim.expiresAt }
91
+ : {}),
92
+ ...(present(job.workClaim.startedAt)
93
+ ? { startedAt: job.workClaim.startedAt }
94
+ : {}),
95
+ },
96
+ }),
97
+ ...(job.execution === undefined
98
+ ? {}
99
+ : {
100
+ execution: {
101
+ ...(present(job.execution.runnerId)
102
+ ? { runnerId: job.execution.runnerId }
103
+ : {}),
104
+ ...(present(job.execution.pid) ? { pid: job.execution.pid } : {}),
105
+ ...(present(job.execution.model) ? { model: job.execution.model } : {}),
106
+ ...(present(job.execution.provider)
107
+ ? { provider: job.execution.provider }
108
+ : {}),
109
+ ...(present(job.execution.phase) ? { phase: job.execution.phase } : {}),
110
+ ...(present(job.execution.lastProgressAt)
111
+ ? { lastProgressAt: job.execution.lastProgressAt }
112
+ : {}),
113
+ },
114
+ }),
115
+ })),
116
+ },
117
+ continueAllowed: status.continueAllowed,
118
+ safeNextAction: status.safeNextAction,
119
+ };
120
+ }
121
+ //# sourceMappingURL=run-status-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-status-view.js","sourceRoot":"","sources":["../../../src/cli/run-status-view.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import { type JobStatus } from "../jobs/status.js";
2
2
  import type { ControllerCommand } from "../protocol/types.js";
3
3
  import { RunStore } from "../state/store.js";
4
4
  import type { ControllerRuntimeOptions } from "./controller-types.js";
5
- import type { CueLineRunState } from "./state-machine.js";
5
+ import { type CueLineRunState } from "./state-machine.js";
6
6
  export declare function statusPayload(status: JobStatus): Record<string, unknown>;
7
- export declare function validateCommandBeforeAcceptance(store: RunStore<CueLineRunState>, command: ControllerCommand, options: ControllerRuntimeOptions): void;
7
+ export declare function validateCommandBeforeAcceptance(store: RunStore<CueLineRunState>, command: ControllerCommand, options: ControllerRuntimeOptions, evidenceJobs?: import("../protocol/types.js").JobObservation[]): void;
8
8
  export type CommandExecutionOutcome = "continue" | "terminal" | "awaiting_controller" | "awaiting_caller";
9
9
  export declare function executeAcceptedCommand(store: RunStore<CueLineRunState>, command: ControllerCommand, commandDigest: string, options: ControllerRuntimeOptions, resumePendingExecution?: boolean): Promise<CommandExecutionOutcome>;