@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.
- package/dist/audit/recorder.d.ts +6 -1
- package/dist/audit/recorder.d.ts.map +1 -1
- package/dist/audit/recorder.js +9 -2
- package/dist/audit/recorder.js.map +1 -1
- package/dist/audit/runAudit.d.ts.map +1 -1
- package/dist/audit/runAudit.js +2 -0
- package/dist/audit/runAudit.js.map +1 -1
- package/dist/conversation.d.ts +33 -0
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +44 -1
- package/dist/conversation.js.map +1 -1
- package/dist/core/compactHistory.d.ts +27 -18
- package/dist/core/compactHistory.d.ts.map +1 -1
- package/dist/core/compactHistory.js +106 -40
- package/dist/core/compactHistory.js.map +1 -1
- package/dist/core/fileChanges.d.ts +18 -0
- package/dist/core/fileChanges.d.ts.map +1 -0
- package/dist/core/fileChanges.js +85 -0
- package/dist/core/fileChanges.js.map +1 -0
- package/dist/core/foldBlocks.d.ts +43 -0
- package/dist/core/foldBlocks.d.ts.map +1 -0
- package/dist/core/foldBlocks.js +114 -0
- package/dist/core/foldBlocks.js.map +1 -0
- package/dist/core/foldTypes.d.ts +25 -0
- package/dist/core/foldTypes.d.ts.map +1 -0
- package/dist/core/foldTypes.js +2 -0
- package/dist/core/foldTypes.js.map +1 -0
- package/dist/core/loop.d.ts +29 -5
- package/dist/core/loop.d.ts.map +1 -1
- package/dist/core/loop.js +166 -70
- package/dist/core/loop.js.map +1 -1
- package/dist/core/recovery.d.ts +1 -0
- package/dist/core/recovery.d.ts.map +1 -1
- package/dist/core/recovery.js +12 -0
- package/dist/core/recovery.js.map +1 -1
- package/dist/core/spawn.d.ts +4 -0
- package/dist/core/spawn.d.ts.map +1 -1
- package/dist/core/spawn.js +11 -4
- package/dist/core/spawn.js.map +1 -1
- package/dist/core/summarize.d.ts +9 -3
- package/dist/core/summarize.d.ts.map +1 -1
- package/dist/core/summarize.js +97 -42
- package/dist/core/summarize.js.map +1 -1
- package/dist/dag/executeNode.d.ts +5 -0
- package/dist/dag/executeNode.d.ts.map +1 -1
- package/dist/dag/executeNode.js +5 -1
- package/dist/dag/executeNode.js.map +1 -1
- package/dist/guardrail/permission-service.d.ts.map +1 -1
- package/dist/guardrail/permission-service.js +11 -2
- package/dist/guardrail/permission-service.js.map +1 -1
- package/dist/guardrail/serialize.d.ts.map +1 -1
- package/dist/guardrail/serialize.js +4 -0
- package/dist/guardrail/serialize.js.map +1 -1
- package/dist/guardrail/validate.d.ts.map +1 -1
- package/dist/guardrail/validate.js +3 -1
- package/dist/guardrail/validate.js.map +1 -1
- package/dist/orchestrator/record.d.ts +94 -5
- package/dist/orchestrator/record.d.ts.map +1 -1
- package/dist/orchestrator/record.js +186 -5
- package/dist/orchestrator/record.js.map +1 -1
- package/dist/orchestrator/sidecarTools.d.ts +5 -0
- package/dist/orchestrator/sidecarTools.d.ts.map +1 -1
- package/dist/orchestrator/sidecarTools.js +53 -15
- package/dist/orchestrator/sidecarTools.js.map +1 -1
- package/dist/prompts/library/defaults.generated.js +2 -2
- package/dist/prompts/library/defaults.generated.js.map +1 -1
- package/dist/sessions/directivesStore.d.ts +9 -0
- package/dist/sessions/directivesStore.d.ts.map +1 -0
- package/dist/sessions/directivesStore.js +54 -0
- package/dist/sessions/directivesStore.js.map +1 -0
- package/dist/sessions/fileSessionStore.d.ts +2 -2
- package/dist/sessions/fileSessionStore.d.ts.map +1 -1
- package/dist/sessions/fileSessionStore.js +19 -8
- package/dist/sessions/fileSessionStore.js.map +1 -1
- package/dist/sessions/foldStorage.d.ts +15 -0
- package/dist/sessions/foldStorage.d.ts.map +1 -0
- package/dist/sessions/foldStorage.js +121 -0
- package/dist/sessions/foldStorage.js.map +1 -0
- package/dist/sessions/jsonl.d.ts +6 -0
- package/dist/sessions/jsonl.d.ts.map +1 -1
- package/dist/sessions/jsonl.js +15 -1
- package/dist/sessions/jsonl.js.map +1 -1
- package/dist/sidecar/deviceKeys.d.ts +75 -0
- package/dist/sidecar/deviceKeys.d.ts.map +1 -0
- package/dist/sidecar/deviceKeys.js +142 -0
- package/dist/sidecar/deviceKeys.js.map +1 -0
- package/dist/sidecar/host.d.ts +144 -24
- package/dist/sidecar/host.d.ts.map +1 -1
- package/dist/sidecar/host.js +306 -16
- package/dist/sidecar/host.js.map +1 -1
- package/dist/sidecar/identity.d.ts +41 -17
- package/dist/sidecar/identity.d.ts.map +1 -1
- package/dist/sidecar/identity.js +10 -21
- package/dist/sidecar/identity.js.map +1 -1
- package/dist/sidecar/server.d.ts +197 -28
- package/dist/sidecar/server.d.ts.map +1 -1
- package/dist/sidecar/server.js +701 -110
- package/dist/sidecar/server.js.map +1 -1
- package/dist/sidecar/testing.d.ts +97 -0
- package/dist/sidecar/testing.d.ts.map +1 -0
- package/dist/sidecar/testing.js +259 -0
- package/dist/sidecar/testing.js.map +1 -0
- package/dist/sidecar/wsChannel.d.ts +8 -1
- package/dist/sidecar/wsChannel.d.ts.map +1 -1
- package/dist/sidecar/wsChannel.js +17 -1
- package/dist/sidecar/wsChannel.js.map +1 -1
- package/dist/tools/callAgent.d.ts.map +1 -1
- package/dist/tools/callAgent.js +33 -13
- package/dist/tools/callAgent.js.map +1 -1
- package/dist/tools/foldTools.d.ts +5 -0
- package/dist/tools/foldTools.d.ts.map +1 -0
- package/dist/tools/foldTools.js +123 -0
- package/dist/tools/foldTools.js.map +1 -0
- package/dist/tools/orchestration.js +1 -1
- package/dist/tools/orchestration.js.map +1 -1
- package/dist/tools/skillTool.d.ts.map +1 -1
- package/dist/tools/skillTool.js +7 -2
- package/dist/tools/skillTool.js.map +1 -1
- 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
|
|
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.
|
|
109
|
-
|
|
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":"AAKA,OAAO,
|
|
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.
|
|
209
|
-
|
|
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;
|
|
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
|
-
|
|
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 (
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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":"AA0BA,OAAO,EACL,sBAAsB,EAAE,qBAAqB,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EACtI,gBAAgB,EAAE,eAAe,EAAE,YAAY,GAChD,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAA2B,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"sidecarTools.js","sourceRoot":"","sources":["../../orchestrator/sidecarTools.ts"],"names":[],"mappings":"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"}
|