@ttfw/envoi 1.0.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/README.md +238 -0
- package/dist/commands/app.d.ts +2 -0
- package/dist/commands/app.d.ts.map +1 -0
- package/dist/commands/app.js +31 -0
- package/dist/commands/app.js.map +1 -0
- package/dist/commands/autonomy.d.ts +6 -0
- package/dist/commands/autonomy.d.ts.map +1 -0
- package/dist/commands/autonomy.js +89 -0
- package/dist/commands/autonomy.js.map +1 -0
- package/dist/commands/builder.d.ts +13 -0
- package/dist/commands/builder.d.ts.map +1 -0
- package/dist/commands/builder.js +142 -0
- package/dist/commands/builder.js.map +1 -0
- package/dist/commands/idea.d.ts +12 -0
- package/dist/commands/idea.d.ts.map +1 -0
- package/dist/commands/idea.js +79 -0
- package/dist/commands/idea.js.map +1 -0
- package/dist/commands/init.d.ts +18 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +423 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/mode.d.ts +13 -0
- package/dist/commands/mode.d.ts.map +1 -0
- package/dist/commands/mode.js +96 -0
- package/dist/commands/mode.js.map +1 -0
- package/dist/commands/onboard.d.ts +37 -0
- package/dist/commands/onboard.d.ts.map +1 -0
- package/dist/commands/onboard.js +743 -0
- package/dist/commands/onboard.js.map +1 -0
- package/dist/commands/pr-note.d.ts +8 -0
- package/dist/commands/pr-note.d.ts.map +1 -0
- package/dist/commands/pr-note.js +27 -0
- package/dist/commands/pr-note.js.map +1 -0
- package/dist/commands/undo.d.ts +7 -0
- package/dist/commands/undo.d.ts.map +1 -0
- package/dist/commands/undo.js +59 -0
- package/dist/commands/undo.js.map +1 -0
- package/dist/commands/update.d.ts +24 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +248 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/constants/report_codes.d.ts +29 -0
- package/dist/constants/report_codes.d.ts.map +1 -0
- package/dist/constants/report_codes.js +69 -0
- package/dist/constants/report_codes.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +675 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/autonomy.d.ts +16 -0
- package/dist/lib/autonomy.d.ts.map +1 -0
- package/dist/lib/autonomy.js +38 -0
- package/dist/lib/autonomy.js.map +1 -0
- package/dist/lib/blocked.d.ts +87 -0
- package/dist/lib/blocked.d.ts.map +1 -0
- package/dist/lib/blocked.js +134 -0
- package/dist/lib/blocked.js.map +1 -0
- package/dist/lib/branding.d.ts +13 -0
- package/dist/lib/branding.d.ts.map +1 -0
- package/dist/lib/branding.js +19 -0
- package/dist/lib/branding.js.map +1 -0
- package/dist/lib/claude.d.ts +42 -0
- package/dist/lib/claude.d.ts.map +1 -0
- package/dist/lib/claude.js +291 -0
- package/dist/lib/claude.js.map +1 -0
- package/dist/lib/config.d.ts +71 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +410 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/diff.d.ts +150 -0
- package/dist/lib/diff.d.ts.map +1 -0
- package/dist/lib/diff.js +257 -0
- package/dist/lib/diff.js.map +1 -0
- package/dist/lib/doctor.d.ts +67 -0
- package/dist/lib/doctor.d.ts.map +1 -0
- package/dist/lib/doctor.js +211 -0
- package/dist/lib/doctor.js.map +1 -0
- package/dist/lib/fingerprint.d.ts +27 -0
- package/dist/lib/fingerprint.d.ts.map +1 -0
- package/dist/lib/fingerprint.js +116 -0
- package/dist/lib/fingerprint.js.map +1 -0
- package/dist/lib/fs.d.ts +93 -0
- package/dist/lib/fs.d.ts.map +1 -0
- package/dist/lib/fs.js +179 -0
- package/dist/lib/fs.js.map +1 -0
- package/dist/lib/git.d.ts +177 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +355 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/git_branching.d.ts +84 -0
- package/dist/lib/git_branching.d.ts.map +1 -0
- package/dist/lib/git_branching.js +327 -0
- package/dist/lib/git_branching.js.map +1 -0
- package/dist/lib/gitignore.d.ts +26 -0
- package/dist/lib/gitignore.d.ts.map +1 -0
- package/dist/lib/gitignore.js +119 -0
- package/dist/lib/gitignore.js.map +1 -0
- package/dist/lib/guardrails.d.ts +232 -0
- package/dist/lib/guardrails.d.ts.map +1 -0
- package/dist/lib/guardrails.js +323 -0
- package/dist/lib/guardrails.js.map +1 -0
- package/dist/lib/history.d.ts +110 -0
- package/dist/lib/history.d.ts.map +1 -0
- package/dist/lib/history.js +236 -0
- package/dist/lib/history.js.map +1 -0
- package/dist/lib/index.d.ts +29 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +29 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/json-extract.d.ts +42 -0
- package/dist/lib/json-extract.d.ts.map +1 -0
- package/dist/lib/json-extract.js +201 -0
- package/dist/lib/json-extract.js.map +1 -0
- package/dist/lib/judge.d.ts +237 -0
- package/dist/lib/judge.d.ts.map +1 -0
- package/dist/lib/judge.js +501 -0
- package/dist/lib/judge.js.map +1 -0
- package/dist/lib/lock.d.ts +79 -0
- package/dist/lib/lock.d.ts.map +1 -0
- package/dist/lib/lock.js +254 -0
- package/dist/lib/lock.js.map +1 -0
- package/dist/lib/migration.d.ts +9 -0
- package/dist/lib/migration.d.ts.map +1 -0
- package/dist/lib/migration.js +74 -0
- package/dist/lib/migration.js.map +1 -0
- package/dist/lib/paths.d.ts +18 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +27 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/preflight.d.ts +33 -0
- package/dist/lib/preflight.d.ts.map +1 -0
- package/dist/lib/preflight.js +177 -0
- package/dist/lib/preflight.js.map +1 -0
- package/dist/lib/prompt_budget.d.ts +18 -0
- package/dist/lib/prompt_budget.d.ts.map +1 -0
- package/dist/lib/prompt_budget.js +36 -0
- package/dist/lib/prompt_budget.js.map +1 -0
- package/dist/lib/report.d.ts +102 -0
- package/dist/lib/report.d.ts.map +1 -0
- package/dist/lib/report.js +347 -0
- package/dist/lib/report.js.map +1 -0
- package/dist/lib/reviewer-flow.d.ts +80 -0
- package/dist/lib/reviewer-flow.d.ts.map +1 -0
- package/dist/lib/reviewer-flow.js +138 -0
- package/dist/lib/reviewer-flow.js.map +1 -0
- package/dist/lib/reviewer.d.ts +53 -0
- package/dist/lib/reviewer.d.ts.map +1 -0
- package/dist/lib/reviewer.js +199 -0
- package/dist/lib/reviewer.js.map +1 -0
- package/dist/lib/risk.d.ts +127 -0
- package/dist/lib/risk.d.ts.map +1 -0
- package/dist/lib/risk.js +192 -0
- package/dist/lib/risk.js.map +1 -0
- package/dist/lib/rollback.d.ts +143 -0
- package/dist/lib/rollback.d.ts.map +1 -0
- package/dist/lib/rollback.js +244 -0
- package/dist/lib/rollback.js.map +1 -0
- package/dist/lib/schema.d.ts +47 -0
- package/dist/lib/schema.d.ts.map +1 -0
- package/dist/lib/schema.js +91 -0
- package/dist/lib/schema.js.map +1 -0
- package/dist/lib/scope.d.ts +89 -0
- package/dist/lib/scope.d.ts.map +1 -0
- package/dist/lib/scope.js +135 -0
- package/dist/lib/scope.js.map +1 -0
- package/dist/lib/self_update.d.ts +13 -0
- package/dist/lib/self_update.d.ts.map +1 -0
- package/dist/lib/self_update.js +172 -0
- package/dist/lib/self_update.js.map +1 -0
- package/dist/lib/state.d.ts +143 -0
- package/dist/lib/state.d.ts.map +1 -0
- package/dist/lib/state.js +258 -0
- package/dist/lib/state.js.map +1 -0
- package/dist/lib/tick.d.ts +310 -0
- package/dist/lib/tick.d.ts.map +1 -0
- package/dist/lib/tick.js +424 -0
- package/dist/lib/tick.js.map +1 -0
- package/dist/lib/transport.d.ts +145 -0
- package/dist/lib/transport.d.ts.map +1 -0
- package/dist/lib/transport.js +237 -0
- package/dist/lib/transport.js.map +1 -0
- package/dist/lib/verdict_labels.d.ts +5 -0
- package/dist/lib/verdict_labels.d.ts.map +1 -0
- package/dist/lib/verdict_labels.js +25 -0
- package/dist/lib/verdict_labels.js.map +1 -0
- package/dist/lib/verify-safety.d.ts +63 -0
- package/dist/lib/verify-safety.d.ts.map +1 -0
- package/dist/lib/verify-safety.js +123 -0
- package/dist/lib/verify-safety.js.map +1 -0
- package/dist/lib/verify.d.ts +139 -0
- package/dist/lib/verify.d.ts.map +1 -0
- package/dist/lib/verify.js +311 -0
- package/dist/lib/verify.js.map +1 -0
- package/dist/lib/workspace_state.d.ts +79 -0
- package/dist/lib/workspace_state.d.ts.map +1 -0
- package/dist/lib/workspace_state.js +283 -0
- package/dist/lib/workspace_state.js.map +1 -0
- package/dist/runner/builder.d.ts +58 -0
- package/dist/runner/builder.d.ts.map +1 -0
- package/dist/runner/builder.js +775 -0
- package/dist/runner/builder.js.map +1 -0
- package/dist/runner/builder_parse.d.ts +37 -0
- package/dist/runner/builder_parse.d.ts.map +1 -0
- package/dist/runner/builder_parse.js +76 -0
- package/dist/runner/builder_parse.js.map +1 -0
- package/dist/runner/index.d.ts +9 -0
- package/dist/runner/index.d.ts.map +1 -0
- package/dist/runner/index.js +7 -0
- package/dist/runner/index.js.map +1 -0
- package/dist/runner/loop.d.ts +51 -0
- package/dist/runner/loop.d.ts.map +1 -0
- package/dist/runner/loop.js +221 -0
- package/dist/runner/loop.js.map +1 -0
- package/dist/runner/orchestrator.d.ts +67 -0
- package/dist/runner/orchestrator.d.ts.map +1 -0
- package/dist/runner/orchestrator.js +376 -0
- package/dist/runner/orchestrator.js.map +1 -0
- package/dist/runner/tick.d.ts +10 -0
- package/dist/runner/tick.d.ts.map +1 -0
- package/dist/runner/tick.js +1639 -0
- package/dist/runner/tick.js.map +1 -0
- package/dist/types/blocked.d.ts +52 -0
- package/dist/types/blocked.d.ts.map +1 -0
- package/dist/types/blocked.js +8 -0
- package/dist/types/blocked.js.map +1 -0
- package/dist/types/builder.d.ts +25 -0
- package/dist/types/builder.d.ts.map +1 -0
- package/dist/types/builder.js +7 -0
- package/dist/types/builder.js.map +1 -0
- package/dist/types/claude.d.ts +86 -0
- package/dist/types/claude.d.ts.map +1 -0
- package/dist/types/claude.js +48 -0
- package/dist/types/claude.js.map +1 -0
- package/dist/types/config.d.ts +384 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +7 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lock.d.ts +21 -0
- package/dist/types/lock.d.ts.map +1 -0
- package/dist/types/lock.js +8 -0
- package/dist/types/lock.js.map +1 -0
- package/dist/types/preflight.d.ts +49 -0
- package/dist/types/preflight.d.ts.map +1 -0
- package/dist/types/preflight.js +8 -0
- package/dist/types/preflight.js.map +1 -0
- package/dist/types/report.d.ts +161 -0
- package/dist/types/report.d.ts.map +1 -0
- package/dist/types/report.js +8 -0
- package/dist/types/report.js.map +1 -0
- package/dist/types/reviewer.d.ts +66 -0
- package/dist/types/reviewer.d.ts.map +1 -0
- package/dist/types/reviewer.js +5 -0
- package/dist/types/reviewer.js.map +1 -0
- package/dist/types/state.d.ts +124 -0
- package/dist/types/state.d.ts.map +1 -0
- package/dist/types/state.js +20 -0
- package/dist/types/state.js.map +1 -0
- package/dist/types/task.d.ts +117 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +7 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/workspace_state.d.ts +125 -0
- package/dist/types/workspace_state.d.ts.map +1 -0
- package/dist/types/workspace_state.js +10 -0
- package/dist/types/workspace_state.js.map +1 -0
- package/envoi.config.json +191 -0
- package/package.json +52 -0
- package/relais/prompts/.gitkeep +0 -0
- package/relais/prompts/builder.system.txt +13 -0
- package/relais/prompts/builder.user.txt +15 -0
- package/relais/prompts/orchestrator.system.txt +37 -0
- package/relais/prompts/orchestrator.user.txt +34 -0
- package/relais/prompts/reviewer.system.txt +33 -0
- package/relais/prompts/reviewer.user.txt +35 -0
- package/relais/schemas/.gitkeep +0 -0
- package/relais/schemas/builder_result.schema.json +29 -0
- package/relais/schemas/report.schema.json +195 -0
- package/relais/schemas/reviewer_result.schema.json +70 -0
- package/relais/schemas/task.schema.json +155 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/runner/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure parser module for builder output validation.
|
|
3
|
+
*
|
|
4
|
+
* Provides typed error discrimination for builder output parsing failures,
|
|
5
|
+
* separating JSON parse errors, schema validation errors, and shape errors.
|
|
6
|
+
*/
|
|
7
|
+
import type { BuilderResult } from '../types/builder.js';
|
|
8
|
+
/**
|
|
9
|
+
* Error kind for builder parse failures.
|
|
10
|
+
*/
|
|
11
|
+
export type BuilderParseErrorKind = 'json_parse' | 'schema' | 'shape';
|
|
12
|
+
/**
|
|
13
|
+
* Result of parsing builder output.
|
|
14
|
+
*/
|
|
15
|
+
export type BuilderParseResult = {
|
|
16
|
+
ok: true;
|
|
17
|
+
value: BuilderResult;
|
|
18
|
+
} | {
|
|
19
|
+
ok: false;
|
|
20
|
+
kind: BuilderParseErrorKind;
|
|
21
|
+
message: string;
|
|
22
|
+
details?: unknown;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Parses raw builder output into a typed BuilderResult.
|
|
26
|
+
*
|
|
27
|
+
* Performs three-step validation:
|
|
28
|
+
* 1. JSON.parse() → json_parse error on failure
|
|
29
|
+
* 2. Schema validation (if schema provided) → schema error on failure
|
|
30
|
+
* 3. Shape check (fallback) → shape error on failure
|
|
31
|
+
*
|
|
32
|
+
* @param raw - Raw string output from builder
|
|
33
|
+
* @param schema - Optional JSON schema object for validation
|
|
34
|
+
* @returns BuilderParseResult with typed error discrimination
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseBuilderResultRaw(raw: string, schema?: object): BuilderParseResult;
|
|
37
|
+
//# sourceMappingURL=builder_parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder_parse.d.ts","sourceRoot":"","sources":["../../src/runner/builder_parse.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAsBnF;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,GACd,kBAAkB,CAwCpB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure parser module for builder output validation.
|
|
3
|
+
*
|
|
4
|
+
* Provides typed error discrimination for builder output parsing failures,
|
|
5
|
+
* separating JSON parse errors, schema validation errors, and shape errors.
|
|
6
|
+
*/
|
|
7
|
+
import { validateWithSchema } from '../lib/schema.js';
|
|
8
|
+
/**
|
|
9
|
+
* Checks if parsed JSON has the expected BuilderResult shape.
|
|
10
|
+
*
|
|
11
|
+
* This is a fallback validation when schema is not available.
|
|
12
|
+
*/
|
|
13
|
+
function hasBuilderResultShape(data) {
|
|
14
|
+
return (typeof data === 'object' &&
|
|
15
|
+
data !== null &&
|
|
16
|
+
'summary' in data &&
|
|
17
|
+
typeof data.summary === 'string' &&
|
|
18
|
+
'files_intended' in data &&
|
|
19
|
+
Array.isArray(data.files_intended) &&
|
|
20
|
+
'commands_ran' in data &&
|
|
21
|
+
Array.isArray(data.commands_ran) &&
|
|
22
|
+
'notes' in data &&
|
|
23
|
+
Array.isArray(data.notes));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Parses raw builder output into a typed BuilderResult.
|
|
27
|
+
*
|
|
28
|
+
* Performs three-step validation:
|
|
29
|
+
* 1. JSON.parse() → json_parse error on failure
|
|
30
|
+
* 2. Schema validation (if schema provided) → schema error on failure
|
|
31
|
+
* 3. Shape check (fallback) → shape error on failure
|
|
32
|
+
*
|
|
33
|
+
* @param raw - Raw string output from builder
|
|
34
|
+
* @param schema - Optional JSON schema object for validation
|
|
35
|
+
* @returns BuilderParseResult with typed error discrimination
|
|
36
|
+
*/
|
|
37
|
+
export function parseBuilderResultRaw(raw, schema) {
|
|
38
|
+
// Step 1: JSON.parse
|
|
39
|
+
let parsed;
|
|
40
|
+
try {
|
|
41
|
+
parsed = JSON.parse(raw);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
45
|
+
return {
|
|
46
|
+
ok: false,
|
|
47
|
+
kind: 'json_parse',
|
|
48
|
+
message: `JSON parse error: ${message}`,
|
|
49
|
+
details: { rawPreview: raw.substring(0, 200) },
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// Step 2: Schema validation (if schema provided)
|
|
53
|
+
if (schema) {
|
|
54
|
+
const validationResult = validateWithSchema(parsed, schema);
|
|
55
|
+
if (!validationResult.valid) {
|
|
56
|
+
return {
|
|
57
|
+
ok: false,
|
|
58
|
+
kind: 'schema',
|
|
59
|
+
message: `Schema validation failed: ${validationResult.errors.join(', ')}`,
|
|
60
|
+
details: { errors: validationResult.errors, rawErrors: validationResult.rawErrors },
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return { ok: true, value: validationResult.data };
|
|
64
|
+
}
|
|
65
|
+
// Step 3: Fallback shape check (no schema available)
|
|
66
|
+
if (!hasBuilderResultShape(parsed)) {
|
|
67
|
+
return {
|
|
68
|
+
ok: false,
|
|
69
|
+
kind: 'shape',
|
|
70
|
+
message: 'Parsed JSON does not match expected BuilderResult shape',
|
|
71
|
+
details: { keys: typeof parsed === 'object' && parsed !== null ? Object.keys(parsed) : [] },
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return { ok: true, value: parsed };
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=builder_parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder_parse.js","sourceRoot":"","sources":["../../src/runner/builder_parse.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAetD;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,IAAa;IAC1C,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,SAAS,IAAI,IAAI;QACjB,OAAQ,IAAgC,CAAC,OAAO,KAAK,QAAQ;QAC7D,gBAAgB,IAAI,IAAI;QACxB,KAAK,CAAC,OAAO,CAAE,IAAgC,CAAC,cAAc,CAAC;QAC/D,cAAc,IAAI,IAAI;QACtB,KAAK,CAAC,OAAO,CAAE,IAAgC,CAAC,YAAY,CAAC;QAC7D,OAAO,IAAI,IAAI;QACf,KAAK,CAAC,OAAO,CAAE,IAAgC,CAAC,KAAK,CAAC,CACvD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAW,EACX,MAAe;IAEf,qBAAqB;IACrB,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,qBAAqB,OAAO,EAAE;YACvC,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;SAC/C,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,gBAAgB,GAAG,kBAAkB,CAAgB,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC5B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,6BAA6B,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC1E,OAAO,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE;aACpF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,IAAK,EAAE,CAAC;IACrD,CAAC;IAED,qDAAqD;IACrD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,yDAAyD;YAClE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runner module exports.
|
|
3
|
+
*/
|
|
4
|
+
export { runTick } from './tick.js';
|
|
5
|
+
export { runOrchestrator, buildOrchestratorPrompt } from './orchestrator.js';
|
|
6
|
+
export type { OrchestratorResult } from './orchestrator.js';
|
|
7
|
+
export { runBuilder, buildBuilderPrompt } from './builder.js';
|
|
8
|
+
export type { BuilderInvocationResult } from './builder.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loop runner for executing multiple ticks.
|
|
3
|
+
*
|
|
4
|
+
* Supports two modes:
|
|
5
|
+
* - milestone: Stop when milestone completes or changes
|
|
6
|
+
* - autonomous: Allow milestone changes, archive and reset budgets
|
|
7
|
+
*
|
|
8
|
+
* @see docs/NEW-PLAN.md PR2
|
|
9
|
+
*/
|
|
10
|
+
import type { EnvoiConfig } from '../types/config.js';
|
|
11
|
+
import type { ReportData } from '../types/report.js';
|
|
12
|
+
/** Check if stop was requested (for testing) */
|
|
13
|
+
export declare function isStopRequested(): boolean;
|
|
14
|
+
/** Reset stop flag (for testing) */
|
|
15
|
+
export declare function resetStopFlag(): void;
|
|
16
|
+
/** Request the loop to stop after the current tick completes */
|
|
17
|
+
export declare function requestStop(): void;
|
|
18
|
+
/** Mode for the loop: task-bound, milestone-bound, or autonomous. */
|
|
19
|
+
export type LoopMode = 'task' | 'milestone' | 'autonomous';
|
|
20
|
+
/** Options for running the loop. */
|
|
21
|
+
export interface LoopOptions {
|
|
22
|
+
/** Loop mode (task, milestone, or autonomous). */
|
|
23
|
+
mode: LoopMode;
|
|
24
|
+
/** Optional extra cap on number of ticks (on top of budgets). */
|
|
25
|
+
max_ticks?: number;
|
|
26
|
+
}
|
|
27
|
+
/** Result of running the loop. */
|
|
28
|
+
export interface LoopResult {
|
|
29
|
+
/** How many ticks ran. */
|
|
30
|
+
ticks_executed: number;
|
|
31
|
+
/** Last tick verdict or stop reason. */
|
|
32
|
+
final_verdict: string;
|
|
33
|
+
/** Why loop stopped: 'blocked' | 'budget_warning' | 'sigint' | 'verdict' | 'max_ticks' | 'milestone_change' | 'orchestrator_stop' | 'self_update' */
|
|
34
|
+
stop_reason: string;
|
|
35
|
+
/** Optional orchestrator completion reason when stop_reason is orchestrator_stop */
|
|
36
|
+
orchestrator_stop_reason?: string;
|
|
37
|
+
/** All tick reports. */
|
|
38
|
+
reports: ReportData[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Runs the envoi loop: one or more ticks.
|
|
42
|
+
*
|
|
43
|
+
* Preflight is performed by runTick() exactly once per tick, so we don't
|
|
44
|
+
* need to call it at the loop level.
|
|
45
|
+
*
|
|
46
|
+
* @param config - Envoi configuration
|
|
47
|
+
* @param opts - Loop options (mode, optional max_ticks)
|
|
48
|
+
* @returns Loop execution summary
|
|
49
|
+
*/
|
|
50
|
+
export declare function runLoop(config: EnvoiConfig, opts: LoopOptions): Promise<LoopResult>;
|
|
51
|
+
//# sourceMappingURL=loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/runner/loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAiErD,gDAAgD;AAChD,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,oCAAoC;AACpC,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,gEAAgE;AAChE,wBAAgB,WAAW,IAAI,IAAI,CAElC;AA0BD,qEAAqE;AACrE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,YAAY,CAAC;AAE3D,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,IAAI,EAAE,QAAQ,CAAC;IACf,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,kCAAkC;AAClC,MAAM,WAAW,UAAU;IACzB,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,qJAAqJ;IACrJ,WAAW,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,wBAAwB;IACxB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAgBD;;;;;;;;;GASG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,UAAU,CAAC,CA6IrB"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loop runner for executing multiple ticks.
|
|
3
|
+
*
|
|
4
|
+
* Supports two modes:
|
|
5
|
+
* - milestone: Stop when milestone completes or changes
|
|
6
|
+
* - autonomous: Allow milestone changes, archive and reset budgets
|
|
7
|
+
*
|
|
8
|
+
* @see docs/NEW-PLAN.md PR2
|
|
9
|
+
*/
|
|
10
|
+
import { runTick } from './tick.js';
|
|
11
|
+
import { readWorkspaceState, writeWorkspaceState, ensureMilestone } from '../lib/workspace_state.js';
|
|
12
|
+
import { refreshLinkedInstallIfStale } from '../lib/self_update.js';
|
|
13
|
+
const TOKEN_WARNING_ORCHESTRATOR_PREFIX = '[tokens] orchestrator';
|
|
14
|
+
const TOKEN_WARNING_BUILDER_PREFIX = '[tokens] builder';
|
|
15
|
+
const TOKEN_WARNING_TOTAL_PREFIX = '[tokens] tick_total';
|
|
16
|
+
function parseWarningTotal(warning) {
|
|
17
|
+
const match = warning.match(/total=(\d+|n\/a)$/);
|
|
18
|
+
if (!match)
|
|
19
|
+
return null;
|
|
20
|
+
if (match[1] === 'n/a')
|
|
21
|
+
return null;
|
|
22
|
+
return Number.parseInt(match[1], 10);
|
|
23
|
+
}
|
|
24
|
+
function parseTickTokenTotals(report) {
|
|
25
|
+
const parsed = { orchestrator: null, builder: null, total: null };
|
|
26
|
+
for (const warning of report.budgets.warnings) {
|
|
27
|
+
if (warning.startsWith(TOKEN_WARNING_ORCHESTRATOR_PREFIX)) {
|
|
28
|
+
parsed.orchestrator = parseWarningTotal(warning);
|
|
29
|
+
}
|
|
30
|
+
else if (warning.startsWith(TOKEN_WARNING_BUILDER_PREFIX)) {
|
|
31
|
+
parsed.builder = parseWarningTotal(warning);
|
|
32
|
+
}
|
|
33
|
+
else if (warning.startsWith(TOKEN_WARNING_TOTAL_PREFIX)) {
|
|
34
|
+
parsed.total = parseWarningTotal(warning);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return parsed;
|
|
38
|
+
}
|
|
39
|
+
function formatTotal(value, known) {
|
|
40
|
+
return known ? String(value) : 'n/a';
|
|
41
|
+
}
|
|
42
|
+
function extractOrchestratorStopReason(report) {
|
|
43
|
+
const warning = report.budgets.warnings.find((entry) => entry.startsWith('Orchestrator signaled stop:'));
|
|
44
|
+
if (!warning)
|
|
45
|
+
return null;
|
|
46
|
+
const reason = warning.replace('Orchestrator signaled stop:', '').trim();
|
|
47
|
+
return reason.length > 0 ? reason : 'no reason provided';
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Loop-level stop flag.
|
|
51
|
+
* Signal handlers set this flag so the loop breaks after the current tick.
|
|
52
|
+
*/
|
|
53
|
+
let stopRequested = false;
|
|
54
|
+
/** Check if stop was requested (for testing) */
|
|
55
|
+
export function isStopRequested() {
|
|
56
|
+
return stopRequested;
|
|
57
|
+
}
|
|
58
|
+
/** Reset stop flag (for testing) */
|
|
59
|
+
export function resetStopFlag() {
|
|
60
|
+
stopRequested = false;
|
|
61
|
+
}
|
|
62
|
+
/** Request the loop to stop after the current tick completes */
|
|
63
|
+
export function requestStop() {
|
|
64
|
+
stopRequested = true;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Minimal signal handler setup for loop-level stop semantics.
|
|
68
|
+
* Only sets the stop flag - no cleanup needed.
|
|
69
|
+
* Note: tick.ts also installs handlers after lock acquisition for cleanup purposes.
|
|
70
|
+
*/
|
|
71
|
+
function installLoopSignalHandlers() {
|
|
72
|
+
const sigintHandler = () => {
|
|
73
|
+
console.log('\n[LOOP] SIGINT received, will stop after current tick');
|
|
74
|
+
requestStop();
|
|
75
|
+
};
|
|
76
|
+
const sigtermHandler = () => {
|
|
77
|
+
console.log('\n[LOOP] SIGTERM received, will stop after current tick');
|
|
78
|
+
requestStop();
|
|
79
|
+
};
|
|
80
|
+
process.on('SIGINT', sigintHandler);
|
|
81
|
+
process.on('SIGTERM', sigtermHandler);
|
|
82
|
+
return () => {
|
|
83
|
+
process.off('SIGINT', sigintHandler);
|
|
84
|
+
process.off('SIGTERM', sigtermHandler);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Archives the current milestone's budget data.
|
|
89
|
+
* For now logs the archive action; full persistence is optional future work.
|
|
90
|
+
*/
|
|
91
|
+
async function archiveMilestoneLedger(workspaceDir, milestoneId, budgets) {
|
|
92
|
+
console.log(`Archiving milestone '${milestoneId}' ledger: ticks=${budgets.ticks}, orchestrator=${budgets.orchestrator_calls}, builder=${budgets.builder_calls}, verify=${budgets.verify_runs}`);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Runs the envoi loop: one or more ticks.
|
|
96
|
+
*
|
|
97
|
+
* Preflight is performed by runTick() exactly once per tick, so we don't
|
|
98
|
+
* need to call it at the loop level.
|
|
99
|
+
*
|
|
100
|
+
* @param config - Envoi configuration
|
|
101
|
+
* @param opts - Loop options (mode, optional max_ticks)
|
|
102
|
+
* @returns Loop execution summary
|
|
103
|
+
*/
|
|
104
|
+
export async function runLoop(config, opts) {
|
|
105
|
+
// Install loop-level signal handlers to set stop flag
|
|
106
|
+
const cleanupSignalHandlers = installLoopSignalHandlers();
|
|
107
|
+
resetStopFlag();
|
|
108
|
+
const reports = [];
|
|
109
|
+
let ticks_executed = 0;
|
|
110
|
+
let final_verdict = 'blocked';
|
|
111
|
+
let stop_reason = 'blocked';
|
|
112
|
+
let orchestratorStopReason;
|
|
113
|
+
const cumulativeTokens = {
|
|
114
|
+
orchestrator: 0,
|
|
115
|
+
builder: 0,
|
|
116
|
+
total: 0,
|
|
117
|
+
orchestratorKnown: true,
|
|
118
|
+
builderKnown: true,
|
|
119
|
+
totalKnown: true,
|
|
120
|
+
};
|
|
121
|
+
const initialState = await readWorkspaceState(config.workspace_dir);
|
|
122
|
+
let currentMilestoneId = initialState.milestone_id;
|
|
123
|
+
let previousBudgets = initialState.budgets;
|
|
124
|
+
try {
|
|
125
|
+
while (true) {
|
|
126
|
+
if (stopRequested) {
|
|
127
|
+
stop_reason = 'sigint';
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
if (ticks_executed > 0) {
|
|
131
|
+
const refresh = refreshLinkedInstallIfStale();
|
|
132
|
+
if (refresh.error) {
|
|
133
|
+
console.warn(`[LOOP] Linked install refresh failed: ${refresh.error}`);
|
|
134
|
+
}
|
|
135
|
+
else if (refresh.refreshed) {
|
|
136
|
+
console.log(`[LOOP] Linked install refreshed from ${refresh.linkedRoot}. Stopping loop to reload fresh code.`);
|
|
137
|
+
stop_reason = 'self_update';
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (opts.max_ticks !== undefined && ticks_executed >= opts.max_ticks) {
|
|
142
|
+
stop_reason = 'max_ticks';
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
const report = await runTick(config);
|
|
146
|
+
ticks_executed++;
|
|
147
|
+
reports.push(report);
|
|
148
|
+
final_verdict = report.verdict;
|
|
149
|
+
const tickTokens = parseTickTokenTotals(report);
|
|
150
|
+
if (tickTokens.orchestrator === null) {
|
|
151
|
+
cumulativeTokens.orchestratorKnown = false;
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
cumulativeTokens.orchestrator += tickTokens.orchestrator;
|
|
155
|
+
}
|
|
156
|
+
if (tickTokens.builder === null) {
|
|
157
|
+
cumulativeTokens.builderKnown = false;
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
cumulativeTokens.builder += tickTokens.builder;
|
|
161
|
+
}
|
|
162
|
+
if (tickTokens.total === null) {
|
|
163
|
+
cumulativeTokens.totalKnown = false;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
cumulativeTokens.total += tickTokens.total;
|
|
167
|
+
}
|
|
168
|
+
console.log(`[LOOP] Tokens after tick ${ticks_executed}: orchestrator=${formatTotal(cumulativeTokens.orchestrator, cumulativeTokens.orchestratorKnown)} builder=${formatTotal(cumulativeTokens.builder, cumulativeTokens.builderKnown)} loop_total=${formatTotal(cumulativeTokens.total, cumulativeTokens.totalKnown)}`);
|
|
169
|
+
const wsState = await readWorkspaceState(config.workspace_dir);
|
|
170
|
+
if (wsState.budget_warning) {
|
|
171
|
+
stop_reason = 'budget_warning';
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
// Check for orchestrator stop signal (control.action='stop')
|
|
175
|
+
// This is encoded in report.budgets.warnings when tick detects it.
|
|
176
|
+
const completionReason = extractOrchestratorStopReason(report);
|
|
177
|
+
if (completionReason) {
|
|
178
|
+
if (opts.mode === 'autonomous') {
|
|
179
|
+
console.log(`Autonomous mode: orchestrator signaled completion (${completionReason}); continuing automatically.`);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
const modeLabel = opts.mode === 'milestone' ? 'Milestone mode' : 'Task mode';
|
|
183
|
+
console.log(`${modeLabel}: orchestrator signaled completion (${completionReason}); stopping loop.`);
|
|
184
|
+
orchestratorStopReason = completionReason;
|
|
185
|
+
stop_reason = 'orchestrator_stop';
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (opts.mode === 'milestone' && wsState.milestone_id !== currentMilestoneId) {
|
|
190
|
+
console.log(`Milestone mode: milestone changed from '${currentMilestoneId}' to '${wsState.milestone_id}', stopping loop`);
|
|
191
|
+
stop_reason = 'milestone_change';
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
if (opts.mode === 'autonomous' && wsState.milestone_id !== currentMilestoneId) {
|
|
195
|
+
if (currentMilestoneId) {
|
|
196
|
+
await archiveMilestoneLedger(config.workspace_dir, currentMilestoneId, previousBudgets);
|
|
197
|
+
}
|
|
198
|
+
const stateWithOldMilestone = { ...wsState, milestone_id: currentMilestoneId };
|
|
199
|
+
const { state: resetState } = ensureMilestone(stateWithOldMilestone, wsState.milestone_id);
|
|
200
|
+
await writeWorkspaceState(config.workspace_dir, resetState);
|
|
201
|
+
currentMilestoneId = wsState.milestone_id;
|
|
202
|
+
console.log(`Autonomous mode: switched to milestone '${currentMilestoneId}', budgets reset`);
|
|
203
|
+
}
|
|
204
|
+
previousBudgets = wsState.budgets;
|
|
205
|
+
if (report.verdict === 'stop' || report.verdict === 'blocked') {
|
|
206
|
+
stop_reason = 'verdict';
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Set exit code for interrupt case
|
|
211
|
+
if (stop_reason === 'sigint') {
|
|
212
|
+
process.exitCode = 130;
|
|
213
|
+
}
|
|
214
|
+
console.log(`[LOOP] Token summary: orchestrator=${formatTotal(cumulativeTokens.orchestrator, cumulativeTokens.orchestratorKnown)} builder=${formatTotal(cumulativeTokens.builder, cumulativeTokens.builderKnown)} loop_total=${formatTotal(cumulativeTokens.total, cumulativeTokens.totalKnown)}`);
|
|
215
|
+
return { ticks_executed, final_verdict, stop_reason, orchestrator_stop_reason: orchestratorStopReason, reports };
|
|
216
|
+
}
|
|
217
|
+
finally {
|
|
218
|
+
cleanupSignalHandlers();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/runner/loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator (Brain) implementation.
|
|
3
|
+
*
|
|
4
|
+
* Invokes Claude Code in plan mode to propose the next task.
|
|
5
|
+
*/
|
|
6
|
+
import { type RawAjvError } from '../lib/schema.js';
|
|
7
|
+
import type { EnvoiConfig } from '../types/config.js';
|
|
8
|
+
import type { TickState } from '../types/state.js';
|
|
9
|
+
import type { Task } from '../types/task.js';
|
|
10
|
+
import type { ClaudeTokenUsage } from '../types/claude.js';
|
|
11
|
+
/**
|
|
12
|
+
* Diagnostics for orchestrator failures.
|
|
13
|
+
*/
|
|
14
|
+
export interface OrchestratorDiagnosticsResult {
|
|
15
|
+
/** Raw AJV schema errors */
|
|
16
|
+
schemaErrors?: RawAjvError[];
|
|
17
|
+
/** How JSON was extracted */
|
|
18
|
+
extractMethod?: string;
|
|
19
|
+
/** Extracted JSON candidate before validation */
|
|
20
|
+
extractedJson?: unknown;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Result of orchestrator invocation.
|
|
24
|
+
*/
|
|
25
|
+
export interface OrchestratorResult {
|
|
26
|
+
/** Whether the invocation was successful */
|
|
27
|
+
success: boolean;
|
|
28
|
+
/** The parsed task (null if unsuccessful) */
|
|
29
|
+
task: Task | null;
|
|
30
|
+
/** Error message (null if successful) */
|
|
31
|
+
error: string | null;
|
|
32
|
+
/** Raw model output from Claude Code (the CLI wrapper's `.result` field). */
|
|
33
|
+
rawResponse: string;
|
|
34
|
+
/** Raw stderr from Claude Code */
|
|
35
|
+
rawStderr: string;
|
|
36
|
+
/** Raw CLI wrapper JSON (stringified) for debugging when `.result` is missing/empty. */
|
|
37
|
+
rawCliStdout?: string;
|
|
38
|
+
/** Number of orchestrator calls made (1 or 2) */
|
|
39
|
+
attempts: number;
|
|
40
|
+
/** The error that triggered retry (null if no retry or successful) */
|
|
41
|
+
retryReason: string | null;
|
|
42
|
+
/** Diagnostics for debugging failures */
|
|
43
|
+
diagnostics?: OrchestratorDiagnosticsResult;
|
|
44
|
+
/** Optional token usage telemetry from CLI output */
|
|
45
|
+
tokenUsage?: ClaudeTokenUsage | null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Builds the orchestrator user prompt by loading the template and interpolating placeholders.
|
|
49
|
+
*
|
|
50
|
+
* @param config - Envoi configuration
|
|
51
|
+
* @param state - Current tick state
|
|
52
|
+
* @param retryReason - Optional error reason for retry attempts
|
|
53
|
+
* @returns The interpolated user prompt
|
|
54
|
+
*/
|
|
55
|
+
export declare function buildOrchestratorPrompt(config: EnvoiConfig, state: TickState, retryReason?: string | null): Promise<string>;
|
|
56
|
+
/**
|
|
57
|
+
* Runs the orchestrator to propose the next task.
|
|
58
|
+
*
|
|
59
|
+
* Implements retry logic: if the first attempt fails due to invalid JSON or schema
|
|
60
|
+
* validation, retries once with the error reason appended to the prompt.
|
|
61
|
+
*
|
|
62
|
+
* @param state - Current tick state
|
|
63
|
+
* @param signal - Optional AbortSignal for cancellation
|
|
64
|
+
* @returns OrchestratorResult with task or error
|
|
65
|
+
*/
|
|
66
|
+
export declare function runOrchestrator(state: TickState, signal?: AbortSignal): Promise<OrchestratorResult>;
|
|
67
|
+
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/runner/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,4BAA4B;IAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,yCAAyC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,yCAAyC;IACzC,WAAW,CAAC,EAAE,6BAA6B,CAAC;IAC5C,qDAAqD;IACrD,UAAU,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtC;AAqBD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,SAAS,EAChB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,MAAM,CAAC,CAsHjB;AAKD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,SAAS,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,kBAAkB,CAAC,CA+O7B"}
|