@corenel/harness 0.12.0 → 0.14.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 (119) hide show
  1. package/dist/audit/recorder.d.ts +6 -1
  2. package/dist/audit/recorder.d.ts.map +1 -1
  3. package/dist/audit/recorder.js +9 -2
  4. package/dist/audit/recorder.js.map +1 -1
  5. package/dist/audit/runAudit.d.ts.map +1 -1
  6. package/dist/audit/runAudit.js +2 -0
  7. package/dist/audit/runAudit.js.map +1 -1
  8. package/dist/conversation.d.ts +33 -0
  9. package/dist/conversation.d.ts.map +1 -1
  10. package/dist/conversation.js +44 -1
  11. package/dist/conversation.js.map +1 -1
  12. package/dist/core/compactHistory.d.ts +27 -18
  13. package/dist/core/compactHistory.d.ts.map +1 -1
  14. package/dist/core/compactHistory.js +106 -40
  15. package/dist/core/compactHistory.js.map +1 -1
  16. package/dist/core/fileChanges.d.ts +18 -0
  17. package/dist/core/fileChanges.d.ts.map +1 -0
  18. package/dist/core/fileChanges.js +85 -0
  19. package/dist/core/fileChanges.js.map +1 -0
  20. package/dist/core/foldBlocks.d.ts +43 -0
  21. package/dist/core/foldBlocks.d.ts.map +1 -0
  22. package/dist/core/foldBlocks.js +114 -0
  23. package/dist/core/foldBlocks.js.map +1 -0
  24. package/dist/core/foldTypes.d.ts +25 -0
  25. package/dist/core/foldTypes.d.ts.map +1 -0
  26. package/dist/core/foldTypes.js +2 -0
  27. package/dist/core/foldTypes.js.map +1 -0
  28. package/dist/core/loop.d.ts +29 -5
  29. package/dist/core/loop.d.ts.map +1 -1
  30. package/dist/core/loop.js +166 -70
  31. package/dist/core/loop.js.map +1 -1
  32. package/dist/core/recovery.d.ts +1 -0
  33. package/dist/core/recovery.d.ts.map +1 -1
  34. package/dist/core/recovery.js +12 -0
  35. package/dist/core/recovery.js.map +1 -1
  36. package/dist/core/spawn.d.ts +4 -0
  37. package/dist/core/spawn.d.ts.map +1 -1
  38. package/dist/core/spawn.js +11 -4
  39. package/dist/core/spawn.js.map +1 -1
  40. package/dist/core/summarize.d.ts +9 -3
  41. package/dist/core/summarize.d.ts.map +1 -1
  42. package/dist/core/summarize.js +97 -42
  43. package/dist/core/summarize.js.map +1 -1
  44. package/dist/dag/executeNode.d.ts +5 -0
  45. package/dist/dag/executeNode.d.ts.map +1 -1
  46. package/dist/dag/executeNode.js +5 -1
  47. package/dist/dag/executeNode.js.map +1 -1
  48. package/dist/guardrail/permission-service.d.ts.map +1 -1
  49. package/dist/guardrail/permission-service.js +11 -2
  50. package/dist/guardrail/permission-service.js.map +1 -1
  51. package/dist/guardrail/serialize.d.ts.map +1 -1
  52. package/dist/guardrail/serialize.js +4 -0
  53. package/dist/guardrail/serialize.js.map +1 -1
  54. package/dist/guardrail/validate.d.ts.map +1 -1
  55. package/dist/guardrail/validate.js +3 -1
  56. package/dist/guardrail/validate.js.map +1 -1
  57. package/dist/orchestrator/record.d.ts +94 -5
  58. package/dist/orchestrator/record.d.ts.map +1 -1
  59. package/dist/orchestrator/record.js +186 -5
  60. package/dist/orchestrator/record.js.map +1 -1
  61. package/dist/orchestrator/sidecarTools.d.ts +5 -0
  62. package/dist/orchestrator/sidecarTools.d.ts.map +1 -1
  63. package/dist/orchestrator/sidecarTools.js +53 -15
  64. package/dist/orchestrator/sidecarTools.js.map +1 -1
  65. package/dist/prompts/library/defaults.generated.js +2 -2
  66. package/dist/prompts/library/defaults.generated.js.map +1 -1
  67. package/dist/sessions/directivesStore.d.ts +9 -0
  68. package/dist/sessions/directivesStore.d.ts.map +1 -0
  69. package/dist/sessions/directivesStore.js +54 -0
  70. package/dist/sessions/directivesStore.js.map +1 -0
  71. package/dist/sessions/fileSessionStore.d.ts +2 -2
  72. package/dist/sessions/fileSessionStore.d.ts.map +1 -1
  73. package/dist/sessions/fileSessionStore.js +19 -8
  74. package/dist/sessions/fileSessionStore.js.map +1 -1
  75. package/dist/sessions/foldStorage.d.ts +15 -0
  76. package/dist/sessions/foldStorage.d.ts.map +1 -0
  77. package/dist/sessions/foldStorage.js +121 -0
  78. package/dist/sessions/foldStorage.js.map +1 -0
  79. package/dist/sessions/jsonl.d.ts +6 -0
  80. package/dist/sessions/jsonl.d.ts.map +1 -1
  81. package/dist/sessions/jsonl.js +15 -1
  82. package/dist/sessions/jsonl.js.map +1 -1
  83. package/dist/sidecar/deviceKeys.d.ts +75 -0
  84. package/dist/sidecar/deviceKeys.d.ts.map +1 -0
  85. package/dist/sidecar/deviceKeys.js +142 -0
  86. package/dist/sidecar/deviceKeys.js.map +1 -0
  87. package/dist/sidecar/host.d.ts +144 -24
  88. package/dist/sidecar/host.d.ts.map +1 -1
  89. package/dist/sidecar/host.js +306 -16
  90. package/dist/sidecar/host.js.map +1 -1
  91. package/dist/sidecar/identity.d.ts +41 -17
  92. package/dist/sidecar/identity.d.ts.map +1 -1
  93. package/dist/sidecar/identity.js +10 -21
  94. package/dist/sidecar/identity.js.map +1 -1
  95. package/dist/sidecar/server.d.ts +197 -28
  96. package/dist/sidecar/server.d.ts.map +1 -1
  97. package/dist/sidecar/server.js +701 -110
  98. package/dist/sidecar/server.js.map +1 -1
  99. package/dist/sidecar/testing.d.ts +97 -0
  100. package/dist/sidecar/testing.d.ts.map +1 -0
  101. package/dist/sidecar/testing.js +259 -0
  102. package/dist/sidecar/testing.js.map +1 -0
  103. package/dist/sidecar/wsChannel.d.ts +8 -1
  104. package/dist/sidecar/wsChannel.d.ts.map +1 -1
  105. package/dist/sidecar/wsChannel.js +17 -1
  106. package/dist/sidecar/wsChannel.js.map +1 -1
  107. package/dist/tools/callAgent.d.ts.map +1 -1
  108. package/dist/tools/callAgent.js +33 -13
  109. package/dist/tools/callAgent.js.map +1 -1
  110. package/dist/tools/foldTools.d.ts +5 -0
  111. package/dist/tools/foldTools.d.ts.map +1 -0
  112. package/dist/tools/foldTools.js +123 -0
  113. package/dist/tools/foldTools.js.map +1 -0
  114. package/dist/tools/orchestration.js +1 -1
  115. package/dist/tools/orchestration.js.map +1 -1
  116. package/dist/tools/skillTool.d.ts.map +1 -1
  117. package/dist/tools/skillTool.js +7 -2
  118. package/dist/tools/skillTool.js.map +1 -1
  119. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import { type ToolContext, type TaskSpec, type TaskStage, type RunTaskSummary, type RunPlanView } from '@corenel/protocol';
1
+ import { type ToolContext, type TaskSpec, type TaskStage, type RunTaskSummary, type RunPlanView, type FileChange, type RunOutputFile } from '@corenel/protocol';
2
2
  import type { PlanTask } from './planDoc';
3
3
  export type OrchestratorOutcome = 'in-progress' | 'needs-info' | 'stopped-max-rounds' | 'stopped-budget' | 'denied' | 'failed' | 'pr-opened';
4
4
  export interface OrchestratorTask {
@@ -11,6 +11,8 @@ export interface OrchestratorTask {
11
11
  url?: string;
12
12
  };
13
13
  }
14
+ /** `task`: the plan task the call named. `report`: the head of what the
15
+ * callee answered; `reportChars` its full length when it was cut. */
14
16
  export interface DelegationEntry {
15
17
  agent: string;
16
18
  at: number;
@@ -18,14 +20,23 @@ export interface DelegationEntry {
18
20
  stopReason: string;
19
21
  sessionId?: string;
20
22
  error?: string;
23
+ task?: number;
24
+ report?: string;
25
+ reportChars?: number;
21
26
  }
27
+ /** `outputTail`: the end of what the check printed; `outputChars` its full
28
+ * length when it was cut. */
22
29
  export interface CheckEntry {
23
30
  name: string;
24
31
  exitCode: number | null;
25
32
  durationMs: number;
26
33
  timedOut: boolean;
27
34
  at: number;
35
+ outputTail?: string;
36
+ outputChars?: number;
28
37
  }
38
+ /** One file the run changed (RunOutputFile), as the record keeps it. */
39
+ export type OutputEntry = RunOutputFile;
29
40
  export interface OrchestratorRecord {
30
41
  id: string;
31
42
  startedAt: number;
@@ -55,9 +66,68 @@ export interface OrchestratorRecord {
55
66
  planTasks?: Array<PlanTask & {
56
67
  status: 'pending' | 'running' | 'done' | 'error';
57
68
  }>;
58
- /** When the host wrote the plan file (after the branch was created). */
69
+ /** When the host wrote the plan file (after the branch was created, or into
70
+ * the folder as it is when the run works without git). */
59
71
  planWrittenAt?: number;
72
+ /** The root the plan file was written under. Older records have only `lock`. */
73
+ planRoot?: string;
74
+ /** Set when sidecar_git_branch reported no git repository (or no git): the
75
+ * run works in the folder as it is and ends with a report, not a PR. */
76
+ workInPlace?: {
77
+ root: string;
78
+ reason: string;
79
+ };
80
+ /** Every file the run and its callees changed, one entry per root and path,
81
+ * at most MAX_OUTPUTS. */
82
+ outputs?: OutputEntry[];
83
+ /** Changes to files beyond MAX_OUTPUTS that were not kept. */
84
+ outputsOverflow?: number;
85
+ /** The orchestrator's last message, set when the run ended. */
86
+ summary?: string;
87
+ summaryChars?: number;
88
+ endedAt?: number;
60
89
  }
90
+ /** How many files a record lists. */
91
+ export declare const MAX_OUTPUTS = 500;
92
+ /** How much of a callee's report the record keeps (its head). */
93
+ export declare const MAX_REPORT_CHARS = 16000;
94
+ /** How much of the closing message the record keeps (its head). */
95
+ export declare const MAX_SUMMARY_CHARS = 32000;
96
+ /** How much of a check's output the record keeps (its tail: where the failure is). */
97
+ export declare const MAX_CHECK_TAIL_CHARS = 4000;
98
+ /** The first `max` characters, with the full length only when it was cut. */
99
+ export declare function headOf(text: string, max: number): {
100
+ text: string;
101
+ chars?: number;
102
+ };
103
+ /** The last `max` characters, with the full length only when it was cut. */
104
+ export declare function tailOf(text: string, max: number): {
105
+ text: string;
106
+ chars?: number;
107
+ };
108
+ /** Log one file change in the record. One entry per root and path: the last
109
+ * change wins, except that a file this run created stays `created` through
110
+ * later edits, and a file deleted and written again reads `modified` (it was
111
+ * there before the run). Past MAX_OUTPUTS a new file is only counted. */
112
+ export declare function noteOutput(rec: OrchestratorRecord, c: FileChange & {
113
+ agent: string;
114
+ task?: number;
115
+ }, at?: number): void;
116
+ /** An observer (ToolContext.onFileChange) that logs each change in this run's
117
+ * record under `agent` and `task`, then flushes. A change that named no root
118
+ * gets the run's default root, when the host set one. */
119
+ export declare function outputRecorder(ctx: ToolContext, who: {
120
+ agent: string;
121
+ task?: number;
122
+ }): (c: FileChange) => Promise<void>;
123
+ /** Log the files an orchestrator run changes itself. Its callees' changes are
124
+ * attributed by call_agent, which hands each spawn its own recorder.
125
+ * `defaultRoot`: where a tool that names no root writes (the daemon's work
126
+ * root); absent when the host cannot say. Needs the run's `runState`. */
127
+ export declare function captureOrchestratorOutputs(ctx: ToolContext, who: {
128
+ agent: string;
129
+ defaultRoot?: string;
130
+ }): void;
61
131
  /** runState key a host may set to a `(rec: OrchestratorRecord) => void`
62
132
  * observer; flushRecord calls it after every save. An observer only: a
63
133
  * throwing hook never fails the tool that caused the flush. */
@@ -88,6 +158,22 @@ export declare function numberedCriteria(criteria: readonly string[]): string;
88
158
  export declare function taskBriefing(task: TaskSpec): string;
89
159
  /** Where the run is, derived from what the record already holds. */
90
160
  export declare function stageOf(rec: OrchestratorRecord): TaskStage;
161
+ /**
162
+ * Whether an orchestrator run may end now, for the loop's `beforeStop` hook:
163
+ * null lets it end, a string is the next user turn that keeps it going.
164
+ *
165
+ * Decided from the RECORD, never from what the model said: found live
166
+ * 2026-09-29, a model answered "Ready to proceed with Task 1" in text right
167
+ * after its plan was approved, and a text-only turn is the loop's normal end,
168
+ * so the run finished with 0 of 4 tasks started.
169
+ *
170
+ * It keeps going only when there is unambiguous work left: the plan is
171
+ * approved, nothing has stopped the run, and either a planned task was never
172
+ * started, or every task is settled but the run (on a branch) has no pull
173
+ * request yet. A run that works in place ends with a report, so settled tasks
174
+ * are enough for it. The loop bounds how many times this can fire in a row.
175
+ */
176
+ export declare function continuationNudge(rec: OrchestratorRecord | null): string | null;
91
177
  /** The compact task view a host shows for a run; null without a task. `round`
92
178
  * is the most calls made to any one agent (the review loop's round count). */
93
179
  export declare function taskSummaryOf(rec: OrchestratorRecord): RunTaskSummary | null;
@@ -97,7 +183,9 @@ export declare const MAX_PLAN_VIEW_CHARS = 200000;
97
183
  * The file lives in the work tree, where a callee with write tools can reach
98
184
  * it, so every field is checked and capped rather than trusted: a
99
185
  * wrong-typed field is dropped, never passed on. Null for a non-object. */
100
- export declare function planViewOf(raw: unknown): RunPlanView | null;
186
+ export declare function planViewOf(raw: unknown, opts?: {
187
+ output?: boolean;
188
+ }): RunPlanView | null;
101
189
  /** The run's record if one exists, WITHOUT creating it. For code that must not
102
190
  * turn an ordinary run (a callee's, a plain agent's) into an orchestrator run
103
191
  * just by looking. */
@@ -105,6 +193,7 @@ export declare function peekRecord(ctx: ToolContext): OrchestratorRecord | null;
105
193
  export type RunEnd = 'done' | 'budget' | 'error';
106
194
  /** Close the record when the run ends. An in-progress record becomes
107
195
  * `stopped-budget` or `failed`; a normal end and any outcome a tool already set
108
- * are left alone. The caller flushes and releases `rec.lock`. */
109
- export declare function settleRecord(ctx: ToolContext, end: RunEnd): OrchestratorRecord | null;
196
+ * are left alone. `summary` is the orchestrator's last message, kept (its
197
+ * head) when it says anything. The caller flushes and releases `rec.lock`. */
198
+ export declare function settleRecord(ctx: ToolContext, end: RunEnd, summary?: string): OrchestratorRecord | null;
110
199
  //# sourceMappingURL=record.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../orchestrator/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../orchestrator/record.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,80 @@
3
3
  * callee -- spawn gives every child a fresh runState) and is flushed best-effort
4
4
  * to `<runsRoot>/<id>/orchestrator.json` after each change. A failed write never
5
5
  * fails the tool that caused it. */
6
- import { runsRoot } from '@corenel/protocol';
6
+ import { runsRoot, } from '@corenel/protocol';
7
7
  const KEY = 'orchestrator.record';
8
+ /** How many files a record lists. */
9
+ export const MAX_OUTPUTS = 500;
10
+ /** How much of a callee's report the record keeps (its head). */
11
+ export const MAX_REPORT_CHARS = 16000;
12
+ /** How much of the closing message the record keeps (its head). */
13
+ export const MAX_SUMMARY_CHARS = 32000;
14
+ /** How much of a check's output the record keeps (its tail: where the failure is). */
15
+ export const MAX_CHECK_TAIL_CHARS = 4000;
16
+ /** The first `max` characters, with the full length only when it was cut. */
17
+ export function headOf(text, max) {
18
+ return text.length > max ? { text: text.slice(0, max), chars: text.length } : { text };
19
+ }
20
+ /** The last `max` characters, with the full length only when it was cut. */
21
+ export function tailOf(text, max) {
22
+ return text.length > max ? { text: text.slice(text.length - max), chars: text.length } : { text };
23
+ }
24
+ /** Log one file change in the record. One entry per root and path: the last
25
+ * change wins, except that a file this run created stays `created` through
26
+ * later edits, and a file deleted and written again reads `modified` (it was
27
+ * there before the run). Past MAX_OUTPUTS a new file is only counted. */
28
+ export function noteOutput(rec, c, at = Date.now()) {
29
+ const list = (rec.outputs ?? (rec.outputs = []));
30
+ const i = list.findIndex((o) => o.path === c.path && (o.root ?? '') === (c.root ?? ''));
31
+ const prev = i >= 0 ? list[i] : undefined;
32
+ let change = c.change;
33
+ if (prev?.change === 'created' && change === 'modified')
34
+ change = 'created';
35
+ else if (prev?.change === 'deleted' && change === 'created')
36
+ change = 'modified';
37
+ const entry = {
38
+ path: c.path, ...(c.root ? { root: c.root } : {}), change, agent: c.agent,
39
+ ...(c.task !== undefined ? { task: c.task } : {}), ...(c.bytes !== undefined ? { bytes: c.bytes } : {}), at,
40
+ };
41
+ if (i >= 0) {
42
+ list[i] = entry;
43
+ return;
44
+ }
45
+ if (list.length >= MAX_OUTPUTS) {
46
+ rec.outputsOverflow = (rec.outputsOverflow ?? 0) + 1;
47
+ return;
48
+ }
49
+ list.push(entry);
50
+ }
51
+ /** runState key: the root a change that names none is under (see
52
+ * captureOrchestratorOutputs). Shared by every recorder of the run, so the
53
+ * orchestrator's and its callees' writes to one file are one entry. */
54
+ const OUTPUT_ROOT_KEY = 'orchestrator.outputRoot';
55
+ /** An observer (ToolContext.onFileChange) that logs each change in this run's
56
+ * record under `agent` and `task`, then flushes. A change that named no root
57
+ * gets the run's default root, when the host set one. */
58
+ export function outputRecorder(ctx, who) {
59
+ return async (c) => {
60
+ const rec = recordOf(ctx);
61
+ if (!rec)
62
+ return;
63
+ const fallback = ctx.runState?.[OUTPUT_ROOT_KEY];
64
+ const root = c.root ?? (typeof fallback === 'string' && fallback ? fallback : undefined);
65
+ noteOutput(rec, { ...c, ...(root ? { root } : {}), agent: who.agent, ...(who.task !== undefined ? { task: who.task } : {}) });
66
+ await flushRecord(ctx);
67
+ };
68
+ }
69
+ /** Log the files an orchestrator run changes itself. Its callees' changes are
70
+ * attributed by call_agent, which hands each spawn its own recorder.
71
+ * `defaultRoot`: where a tool that names no root writes (the daemon's work
72
+ * root); absent when the host cannot say. Needs the run's `runState`. */
73
+ export function captureOrchestratorOutputs(ctx, who) {
74
+ if (!ctx.runState)
75
+ return;
76
+ if (who.defaultRoot)
77
+ ctx.runState[OUTPUT_ROOT_KEY] = who.defaultRoot;
78
+ ctx.onFileChange = outputRecorder(ctx, { agent: who.agent });
79
+ }
8
80
  /** runState key a host may set to a `(rec: OrchestratorRecord) => void`
9
81
  * observer; flushRecord calls it after every save. An observer only: a
10
82
  * throwing hook never fails the tool that caused the flush. */
@@ -121,12 +193,45 @@ export function stageOf(rec) {
121
193
  return 'pr';
122
194
  if (rec.checks?.length)
123
195
  return 'checks';
124
- if (rec.branch)
196
+ if (rec.branch || rec.workInPlace)
125
197
  return 'build';
126
198
  if (rec.planApprovedAt)
127
199
  return 'branch';
128
200
  return 'plan';
129
201
  }
202
+ /**
203
+ * Whether an orchestrator run may end now, for the loop's `beforeStop` hook:
204
+ * null lets it end, a string is the next user turn that keeps it going.
205
+ *
206
+ * Decided from the RECORD, never from what the model said: found live
207
+ * 2026-09-29, a model answered "Ready to proceed with Task 1" in text right
208
+ * after its plan was approved, and a text-only turn is the loop's normal end,
209
+ * so the run finished with 0 of 4 tasks started.
210
+ *
211
+ * It keeps going only when there is unambiguous work left: the plan is
212
+ * approved, nothing has stopped the run, and either a planned task was never
213
+ * started, or every task is settled but the run (on a branch) has no pull
214
+ * request yet. A run that works in place ends with a report, so settled tasks
215
+ * are enough for it. The loop bounds how many times this can fire in a row.
216
+ */
217
+ export function continuationNudge(rec) {
218
+ if (!rec || !rec.planApprovedAt || !rec.planTasks?.length)
219
+ return null;
220
+ const stage = stageOf(rec);
221
+ if (stage === 'done' || stage === 'stopped')
222
+ return null;
223
+ const next = rec.planTasks.find((t) => t.status === 'pending');
224
+ if (next) {
225
+ return `The plan is approved and Task ${next.n} ("${next.title}") has not been started. `
226
+ + `Continue now: delegate it to ${next.agent} with call_agent, passing task: ${next.n}. `
227
+ + 'If something prevents you, say exactly what is blocking you instead.';
228
+ }
229
+ if (rec.workInPlace)
230
+ return null;
231
+ return 'Every task in the plan is settled but there is no pull request yet. '
232
+ + 'Continue now: run the confirmed checks, then commit, push and open the pull request. '
233
+ + 'If something prevents you, say exactly what is blocking you instead.';
234
+ }
130
235
  /** The compact task view a host shows for a run; null without a task. `round`
131
236
  * is the most calls made to any one agent (the review loop's round count). */
132
237
  export function taskSummaryOf(rec) {
@@ -151,7 +256,7 @@ const textOf = (v, max) => (typeof v === 'string' && v.trim() ? v.slice(0, max)
151
256
  * The file lives in the work tree, where a callee with write tools can reach
152
257
  * it, so every field is checked and capped rather than trusted: a
153
258
  * wrong-typed field is dropped, never passed on. Null for a non-object. */
154
- export function planViewOf(raw) {
259
+ export function planViewOf(raw, opts = {}) {
155
260
  if (!raw || typeof raw !== 'object' || Array.isArray(raw))
156
261
  return null;
157
262
  const r = raw;
@@ -194,8 +299,75 @@ export function planViewOf(raw) {
194
299
  if (tasks.length)
195
300
  out.planTasks = tasks;
196
301
  }
302
+ if (opts.output)
303
+ out.output = outputViewOf(r);
197
304
  return out;
198
305
  }
306
+ const CHANGES = new Set(['created', 'modified', 'deleted']);
307
+ const finite = (v) => typeof v === 'number' && Number.isFinite(v);
308
+ const count = (v) => (finite(v) && v >= 0 ? Math.floor(v) : undefined);
309
+ /** What the run produced, read from a record off disk: checked and capped
310
+ * like the rest of planViewOf, a malformed entry dropped. */
311
+ function outputViewOf(r) {
312
+ const outputs = [];
313
+ for (const v of Array.isArray(r.outputs) ? r.outputs.slice(0, MAX_OUTPUTS) : []) {
314
+ if (!v || typeof v !== 'object')
315
+ continue;
316
+ const o = v;
317
+ const path = textOf(o.path, 1000);
318
+ if (!path || typeof o.change !== 'string' || !CHANGES.has(o.change) || !finite(o.at))
319
+ continue;
320
+ const root = textOf(o.root, 1000);
321
+ const bytes = count(o.bytes);
322
+ outputs.push({
323
+ path, ...(root ? { root } : {}), change: o.change,
324
+ agent: typeof o.agent === 'string' ? o.agent.slice(0, 100) : '',
325
+ ...(finite(o.task) ? { task: o.task } : {}), ...(bytes !== undefined ? { bytes } : {}), at: o.at,
326
+ });
327
+ }
328
+ const delegations = [];
329
+ for (const v of Array.isArray(r.delegations) ? r.delegations.slice(0, 200) : []) {
330
+ if (!v || typeof v !== 'object')
331
+ continue;
332
+ const d = v;
333
+ if (typeof d.agent !== 'string' || !finite(d.at))
334
+ continue;
335
+ const report = textOf(d.report, MAX_REPORT_CHARS);
336
+ const reportChars = count(d.reportChars);
337
+ const error = textOf(d.error, 2000);
338
+ delegations.push({
339
+ agent: d.agent.slice(0, 100), ...(finite(d.task) ? { task: d.task } : {}), at: d.at,
340
+ stopReason: typeof d.stopReason === 'string' ? d.stopReason.slice(0, 100) : '',
341
+ ...(report ? { report } : {}), ...(reportChars !== undefined ? { reportChars } : {}), ...(error ? { error } : {}),
342
+ });
343
+ }
344
+ const checks = [];
345
+ for (const v of Array.isArray(r.checks) ? r.checks.slice(0, 100) : []) {
346
+ if (!v || typeof v !== 'object')
347
+ continue;
348
+ const k = v;
349
+ const name = textOf(k.name, 100);
350
+ if (!name || !finite(k.at))
351
+ continue;
352
+ const outputTail = typeof k.outputTail === 'string' ? tailOf(k.outputTail, MAX_CHECK_TAIL_CHARS).text : '';
353
+ const outputChars = count(k.outputChars);
354
+ checks.push({
355
+ name, exitCode: finite(k.exitCode) ? k.exitCode : null, timedOut: k.timedOut === true,
356
+ durationMs: count(k.durationMs) ?? 0, at: k.at,
357
+ ...(outputTail ? { outputTail } : {}), ...(outputChars !== undefined ? { outputChars } : {}),
358
+ });
359
+ }
360
+ const summary = textOf(r.summary, MAX_SUMMARY_CHARS);
361
+ const summaryChars = count(r.summaryChars);
362
+ const overflow = count(r.outputsOverflow);
363
+ return {
364
+ ...(summary ? { summary } : {}), ...(summaryChars !== undefined ? { summaryChars } : {}),
365
+ outputs, ...(overflow ? { outputsOverflow: overflow } : {}),
366
+ delegations, checks,
367
+ ...(finite(r.endedAt) ? { endedAt: r.endedAt } : {}),
368
+ ...(r.workInPlace && typeof r.workInPlace === 'object' ? { workInPlace: true } : {}),
369
+ };
370
+ }
199
371
  /** The run's record if one exists, WITHOUT creating it. For code that must not
200
372
  * turn an ordinary run (a callee's, a plain agent's) into an orchestrator run
201
373
  * just by looking. */
@@ -205,8 +377,9 @@ export function peekRecord(ctx) {
205
377
  }
206
378
  /** Close the record when the run ends. An in-progress record becomes
207
379
  * `stopped-budget` or `failed`; a normal end and any outcome a tool already set
208
- * are left alone. The caller flushes and releases `rec.lock`. */
209
- export function settleRecord(ctx, end) {
380
+ * are left alone. `summary` is the orchestrator's last message, kept (its
381
+ * head) when it says anything. The caller flushes and releases `rec.lock`. */
382
+ export function settleRecord(ctx, end, summary) {
210
383
  const rec = peekRecord(ctx);
211
384
  if (!rec)
212
385
  return null;
@@ -216,6 +389,14 @@ export function settleRecord(ctx, end) {
216
389
  else if (end === 'error')
217
390
  rec.outcome = 'failed';
218
391
  }
392
+ const said = summary?.trim();
393
+ if (said) {
394
+ const h = headOf(said, MAX_SUMMARY_CHARS);
395
+ rec.summary = h.text;
396
+ if (h.chars !== undefined)
397
+ rec.summaryChars = h.chars;
398
+ }
399
+ rec.endedAt = Date.now();
219
400
  return rec;
220
401
  }
221
402
  //# sourceMappingURL=record.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../orchestrator/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../orchestrator/record.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  import type { AgentTool } from '@corenel/protocol';
2
+ /** Appended to sidecar_git_branch's answer when the folder is not a git
3
+ * repository or git is not installed: not a stop, the run goes on in place. */
4
+ export declare const CONTINUE_WITHOUT_GIT: string;
5
+ /** What commit, push and open_pr answer in a run that works without git. */
6
+ export declare const NO_GIT_TO_FINISH: string;
2
7
  /** Wrap a host's tool list. Tools that are not orchestrator sidecar tools pass
3
8
  * through unchanged. */
4
9
  export declare function withOrchestratorSidecarTools(tools: AgentTool[], opts: {
@@ -1 +1 @@
1
- {"version":3,"file":"sidecarTools.d.ts","sourceRoot":"","sources":["../../orchestrator/sidecarTools.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAA6E,MAAM,mBAAmB,CAAC;AAqH9H;wBACwB;AACxB,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE;IAAE,YAAY,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,EAAE,CAS7G"}
1
+ {"version":3,"file":"sidecarTools.d.ts","sourceRoot":"","sources":["../../orchestrator/sidecarTools.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAA6E,MAAM,mBAAmB,CAAC;AA6C9H;+EAC+E;AAC/E,eAAO,MAAM,oBAAoB,QAC8G,CAAC;AAEhJ,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,QAC0D,CAAC;AAwGxF;wBACwB;AACxB,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE;IAAE,YAAY,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,EAAE,CAS7G"}
@@ -1,5 +1,6 @@
1
1
  import { ORCHESTRATOR_GIT_TOOLS, PREVIEWABLE_GIT_TOOLS, PREVIEW_PARAM, SIDECAR_GIT_BRANCH, SIDECAR_GIT_PUSH, SIDECAR_OPEN_PR, SIDECAR_RUN_CHECK, hostFilledParams, parseToolResult, stateDirName, } from '@corenel/protocol';
2
- import { recordOf, peekRecord, flushRecord, NO_RUN_STATE } from './record.js';
2
+ import { recordOf, peekRecord, flushRecord, tailOf, NO_RUN_STATE, MAX_CHECK_TAIL_CHARS } from './record.js';
3
+ import { reportFileChanges } from '../core/fileChanges.js';
3
4
  function modelFacing(parameters, hostFilled) {
4
5
  const props = parameters.properties;
5
6
  if (!props || typeof props !== 'object')
@@ -23,17 +24,31 @@ function wrapRunCheck(tool) {
23
24
  const raw = await tool.run({ ...withoutHostParams(args, hostFilled), state_dir: stateDirName(), ...(rec ? { run_id: rec.id } : {}) }, ctx);
24
25
  const r = parseToolResult(raw);
25
26
  if (rec && r?.ok) {
26
- (rec.checks ?? (rec.checks = [])).push({ name: r.name, exitCode: r.exitCode, durationMs: r.durationMs, timedOut: r.timedOut, at: Date.now() });
27
+ // The END of what it printed: where a failing check says why.
28
+ const tail = typeof r.output === 'string' ? tailOf(r.output, MAX_CHECK_TAIL_CHARS) : { text: '' };
29
+ (rec.checks ?? (rec.checks = [])).push({
30
+ name: r.name, exitCode: r.exitCode, durationMs: r.durationMs, timedOut: r.timedOut, at: Date.now(),
31
+ ...(tail.text ? { outputTail: tail.text } : {}), ...(tail.chars !== undefined ? { outputChars: tail.chars } : {}),
32
+ });
27
33
  await flushRecord(ctx);
28
34
  }
29
35
  return raw;
30
36
  },
31
37
  };
32
38
  }
39
+ /** Appended to sidecar_git_branch's answer when the folder is not a git
40
+ * repository or git is not installed: not a stop, the run goes on in place. */
41
+ export const CONTINUE_WITHOUT_GIT = 'Continue without git: the work happens in this folder as it is. Delegate the plan, run the confirmed checks, '
42
+ + 'and finish with a report of what changed (files touched, check results, anything left undone) instead of a commit, push and pull request.';
43
+ /** What commit, push and open_pr answer in a run that works without git. */
44
+ export const NO_GIT_TO_FINISH = 'This run works in a folder that is not a git repository, so there is nothing to commit, push or open. '
45
+ + 'Finish with a report of what changed, the check results and anything left undone.';
33
46
  /** Why the host refuses this git step before the sidecar sees it, or null. */
34
47
  function gitStepRefusal(toolName, rec) {
35
48
  if (!rec.planApprovedAt)
36
49
  return 'No approved plan. Call set_task, then submit_plan, before any git step.';
50
+ if (toolName !== SIDECAR_GIT_BRANCH && rec.workInPlace && !rec.branch)
51
+ return NO_GIT_TO_FINISH;
37
52
  if (toolName !== SIDECAR_GIT_BRANCH && !rec.branch)
38
53
  return 'This run has no branch yet. Call sidecar_git_branch first.';
39
54
  if (toolName === SIDECAR_OPEN_PR && !rec.pushedAt)
@@ -58,6 +73,29 @@ function previewOf(tool, hostFilled) {
58
73
  return parseToolResult(raw);
59
74
  };
60
75
  }
76
+ /** Write the approved structured plan to `rec.planPath` under `root`, through
77
+ * the sidecar's own confined write tool. Returns the note for the model, or
78
+ * null when there is no structured plan to write. A failed write never fails
79
+ * the step: the plan is still in the run record. */
80
+ async function writePlan(rec, root, writer, ctx) {
81
+ if (!rec.plan || !rec.planPath)
82
+ return null;
83
+ try {
84
+ if (!writer)
85
+ throw new Error('no file-writing tool on this host');
86
+ const args = { root, path: rec.planPath, content: `${rec.plan}\n` };
87
+ const result = await writer.run(args, ctx);
88
+ // The host wrote it, not a model, so the loop never saw the call: log it
89
+ // as one of the run's files here.
90
+ await reportFileChanges(ctx, writer.name, args, String(result), null);
91
+ rec.planWrittenAt = Date.now();
92
+ rec.planRoot = root;
93
+ return `Plan written to ${rec.planPath}.`;
94
+ }
95
+ catch (e) {
96
+ return `The plan could not be written (${e instanceof Error ? e.message : String(e)}); continue.`;
97
+ }
98
+ }
61
99
  function wrapGit(tool, writer) {
62
100
  const hostFilled = hostFilledParams(tool.name);
63
101
  const approvalDetail = previewOf(tool, hostFilled);
@@ -81,24 +119,24 @@ function wrapGit(tool, writer) {
81
119
  }, ctx);
82
120
  if (tool.name === SIDECAR_GIT_BRANCH) {
83
121
  const r = parseToolResult(raw);
122
+ if (r && !r.ok && 'noRepo' in r && r.noRepo === true && typeof r.root === 'string' && !rec.branch) {
123
+ // No repository (or no git): the run works in the folder as it is.
124
+ // The plan is written there once, at the same planPath, by the host.
125
+ rec.workInPlace = { root: r.root, reason: r.error };
126
+ const note = rec.planWrittenAt ? null : await writePlan(rec, r.root, writer, ctx);
127
+ await flushRecord(ctx);
128
+ return [raw, CONTINUE_WITHOUT_GIT, ...(note ? [note] : [])].join('\n');
129
+ }
84
130
  if (!r?.ok)
85
131
  return raw;
86
132
  rec.branch = r.branch;
87
133
  rec.lock = { root: r.root, stateDir };
88
- if (rec.plan && rec.planPath && r.created) {
89
- let note;
90
- try {
91
- if (!writer)
92
- throw new Error('no file-writing tool on this host');
93
- await writer.run({ root: r.root, path: rec.planPath, content: `${rec.plan}\n` }, ctx);
94
- rec.planWrittenAt = Date.now();
95
- note = `Plan written to ${rec.planPath}.`;
96
- }
97
- catch (e) {
98
- note = `The plan could not be written (${e instanceof Error ? e.message : String(e)}); continue.`;
134
+ if (r.created) {
135
+ const note = await writePlan(rec, r.root, writer, ctx);
136
+ if (note) {
137
+ await flushRecord(ctx);
138
+ return `${raw}\n${note}`;
99
139
  }
100
- await flushRecord(ctx);
101
- return `${raw}\n${note}`;
102
140
  }
103
141
  }
104
142
  else if (tool.name === SIDECAR_GIT_PUSH) {
@@ -1 +1 @@
1
- {"version":3,"file":"sidecarTools.js","sourceRoot":"","sources":["../../orchestrator/sidecarTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidecarTools.js","sourceRoot":"","sources":["../../orchestrator/sidecarTools.ts"],"names":[],"mappings":"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"}