@phamvuhoang/otto-core 0.17.0 → 0.19.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/cli-help.d.ts +23 -0
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +38 -1
- package/dist/cli-help.js.map +1 -1
- package/dist/console-ui.d.ts +32 -0
- package/dist/console-ui.d.ts.map +1 -0
- package/dist/console-ui.js +154 -0
- package/dist/console-ui.js.map +1 -0
- package/dist/fanout.d.ts +56 -0
- package/dist/fanout.d.ts.map +1 -0
- package/dist/fanout.js +119 -0
- package/dist/fanout.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/loop.d.ts +19 -1
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +125 -32
- package/dist/loop.js.map +1 -1
- package/dist/model-tier.d.ts +69 -0
- package/dist/model-tier.d.ts.map +1 -0
- package/dist/model-tier.js +101 -0
- package/dist/model-tier.js.map +1 -0
- package/dist/next-action.d.ts +2 -0
- package/dist/next-action.d.ts.map +1 -0
- package/dist/next-action.js +23 -0
- package/dist/next-action.js.map +1 -0
- package/dist/plan-progress.d.ts +36 -0
- package/dist/plan-progress.d.ts.map +1 -0
- package/dist/plan-progress.js +43 -0
- package/dist/plan-progress.js.map +1 -0
- package/dist/plan-tasks.d.ts +44 -0
- package/dist/plan-tasks.d.ts.map +1 -0
- package/dist/plan-tasks.js +167 -0
- package/dist/plan-tasks.js.map +1 -0
- package/dist/run-bin.d.ts.map +1 -1
- package/dist/run-bin.js +22 -0
- package/dist/run-bin.js.map +1 -1
- package/dist/run-view.d.ts +71 -0
- package/dist/run-view.d.ts.map +1 -0
- package/dist/run-view.js +190 -0
- package/dist/run-view.js.map +1 -0
- package/dist/runner.d.ts +22 -14
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +18 -26
- package/dist/runner.js.map +1 -1
- package/dist/stage-exec.d.ts +16 -0
- package/dist/stage-exec.d.ts.map +1 -1
- package/dist/stage-exec.js +32 -1
- package/dist/stage-exec.js.map +1 -1
- package/dist/stages.d.ts +18 -0
- package/dist/stages.d.ts.map +1 -1
- package/dist/stages.js +17 -0
- package/dist/stages.js.map +1 -1
- package/dist/stream-render.d.ts +1 -0
- package/dist/stream-render.d.ts.map +1 -1
- package/dist/stream-render.js +1 -1
- package/dist/stream-render.js.map +1 -1
- package/dist/tail.d.ts +25 -0
- package/dist/tail.d.ts.map +1 -0
- package/dist/tail.js +75 -0
- package/dist/tail.js.map +1 -0
- package/dist/worktree.d.ts +24 -0
- package/dist/worktree.d.ts.map +1 -0
- package/dist/worktree.js +43 -0
- package/dist/worktree.js.map +1 -0
- package/package.json +1 -1
- package/templates/plan.md +26 -4
- package/templates/subtask.md +32 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model-tier routing substrate (issue #66 P11). Pure: a stage's difficulty
|
|
3
|
+
* `ModelTier` resolves to a concrete model spec via a config-overridable ladder,
|
|
4
|
+
* and `routeModel` modulates the tier by change-risk + failure escalation. No
|
|
5
|
+
* I/O, no model calls — so routing is reproducible and the eval suite can A/B it.
|
|
6
|
+
*/
|
|
7
|
+
/** Claude CLI aliases; overridable per tier via OTTO_TIER_*. */
|
|
8
|
+
export const DEFAULT_LADDER = {
|
|
9
|
+
cheap: "haiku",
|
|
10
|
+
mid: "sonnet",
|
|
11
|
+
strong: "opus",
|
|
12
|
+
};
|
|
13
|
+
const ENV_OF = {
|
|
14
|
+
cheap: "OTTO_TIER_CHEAP",
|
|
15
|
+
mid: "OTTO_TIER_MID",
|
|
16
|
+
strong: "OTTO_TIER_STRONG",
|
|
17
|
+
};
|
|
18
|
+
/** Overlay OTTO_TIER_CHEAP/MID/STRONG onto {@link DEFAULT_LADDER}; blank ⇒ default. */
|
|
19
|
+
export function resolveTierLadder(env = process.env) {
|
|
20
|
+
const ladder = { ...DEFAULT_LADDER };
|
|
21
|
+
for (const tier of ["cheap", "mid", "strong"]) {
|
|
22
|
+
const v = env[ENV_OF[tier]]?.trim();
|
|
23
|
+
if (v)
|
|
24
|
+
ladder[tier] = v;
|
|
25
|
+
}
|
|
26
|
+
return ladder;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the model spec for the active runtime (issue #24 P3). A
|
|
30
|
+
* provider-specific override (`OTTO_CLAUDE_MODEL` / `OTTO_CODEX_MODEL`) wins
|
|
31
|
+
* over the provider-neutral `OTTO_MODEL`, so a user who keeps both runtimes
|
|
32
|
+
* configured can pin a model per runtime. Returns the resolved spec plus the
|
|
33
|
+
* env var it came from (for `--print-config`), or `undefined` when nothing is
|
|
34
|
+
* set (the runtime's CLI default applies). Empty/whitespace overrides are
|
|
35
|
+
* ignored so they fall through to the generic value.
|
|
36
|
+
*
|
|
37
|
+
* Lives here (not in runner.ts) so the pin check stays decoupled from the
|
|
38
|
+
* heavily-mocked runner module (issue #66 P11).
|
|
39
|
+
*/
|
|
40
|
+
export function resolveModelSelection(runtimeId, env = process.env) {
|
|
41
|
+
const specificVar = `OTTO_${runtimeId.toUpperCase()}_MODEL`;
|
|
42
|
+
const specific = env[specificVar]?.trim();
|
|
43
|
+
if (specific)
|
|
44
|
+
return { spec: specific, source: specificVar };
|
|
45
|
+
const generic = env.OTTO_MODEL?.trim();
|
|
46
|
+
if (generic)
|
|
47
|
+
return { spec: generic, source: "OTTO_MODEL" };
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
/** Tier ordering, low → high; bumps clamp to this range. */
|
|
51
|
+
const ORDER = ["cheap", "mid", "strong"];
|
|
52
|
+
function bump(tier, by) {
|
|
53
|
+
const i = Math.min(ORDER.length - 1, Math.max(0, ORDER.indexOf(tier) + by));
|
|
54
|
+
return ORDER[i];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Modulate a base tier by change-risk and failure escalation (issue #66 P11).
|
|
58
|
+
* Pure. Rules: docs-only / test-only → one tier cheaper (floor cheap);
|
|
59
|
+
* security-sensitive / cross-module → strong; each prior escalation → one tier
|
|
60
|
+
* stronger. All bumps clamp to [cheap, strong].
|
|
61
|
+
*/
|
|
62
|
+
export function routeModel(opts) {
|
|
63
|
+
const reasons = [`base tier ${opts.baseTier}`];
|
|
64
|
+
let tier = opts.baseTier;
|
|
65
|
+
const cls = opts.assessment?.class;
|
|
66
|
+
if (cls === "docs-only" || cls === "test-only") {
|
|
67
|
+
tier = bump(tier, -1);
|
|
68
|
+
reasons.push(`risk-down (${cls}) → ${tier}`);
|
|
69
|
+
}
|
|
70
|
+
else if (cls === "security-sensitive" || cls === "cross-module") {
|
|
71
|
+
tier = "strong";
|
|
72
|
+
reasons.push(`risk-up (${cls}) → strong`);
|
|
73
|
+
}
|
|
74
|
+
const esc = opts.escalations ?? 0;
|
|
75
|
+
if (esc > 0) {
|
|
76
|
+
tier = bump(tier, esc);
|
|
77
|
+
reasons.push(`escalated ×${esc} → ${tier}`);
|
|
78
|
+
}
|
|
79
|
+
return { tier, reasons };
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Resolve the model spec for one stage. Precedence (back-compat invariant):
|
|
83
|
+
* an explicit pin (OTTO_${RUNTIME}_MODEL / OTTO_MODEL) wins and disables
|
|
84
|
+
* routing; else routing on + a declared tier ⇒ ladder[routeModel(...)]; else
|
|
85
|
+
* the runtime default (undefined).
|
|
86
|
+
*/
|
|
87
|
+
export function resolveStageModel(opts) {
|
|
88
|
+
const pin = resolveModelSelection(opts.runtimeId, opts.env ?? process.env);
|
|
89
|
+
if (pin)
|
|
90
|
+
return { spec: pin.spec, source: "pin" };
|
|
91
|
+
if (!opts.routing || !opts.stage.tier) {
|
|
92
|
+
return { spec: undefined, source: "default" };
|
|
93
|
+
}
|
|
94
|
+
const { tier } = routeModel({
|
|
95
|
+
baseTier: opts.stage.tier,
|
|
96
|
+
assessment: opts.assessment,
|
|
97
|
+
escalations: opts.escalations,
|
|
98
|
+
});
|
|
99
|
+
return { spec: opts.ladder[tier], tier, source: "route" };
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=model-tier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-tier.js","sourceRoot":"","sources":["../src/model-tier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-action.d.ts","sourceRoot":"","sources":["../src/next-action.ts"],"names":[],"mappings":"AAuBA,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps each end-of-run exit reason to a terse imperative hint telling the
|
|
3
|
+
* maintainer what to do next. Extracted from loop.ts so `run-view.ts` can
|
|
4
|
+
* import it without creating a loop ↔ run-view circular dependency.
|
|
5
|
+
*
|
|
6
|
+
* Pure and exported so it is unit-testable; unknown reasons fall back to a
|
|
7
|
+
* generic hint rather than throwing.
|
|
8
|
+
*/
|
|
9
|
+
const NEXT_ACTION = {
|
|
10
|
+
complete: "review the diff, then open a PR",
|
|
11
|
+
done: "review the diff, then open a PR",
|
|
12
|
+
"done with failures": "inspect the failed stage logs under `.otto-tmp/logs`, then re-run",
|
|
13
|
+
"stopped (budget)": "raise `--budget` and re-run to resume",
|
|
14
|
+
"halted (rate limit)": "re-run after the limit resets to resume",
|
|
15
|
+
aborted: "re-run to resume from the saved iteration",
|
|
16
|
+
"stopped (error)": "inspect the error above, then re-run",
|
|
17
|
+
"stopped (low progress)": "the run stopped making changes — refine the plan/prompt, then re-run",
|
|
18
|
+
"paused (needs human)": "a repeated failure needs a decision — inspect the logs, then re-run",
|
|
19
|
+
};
|
|
20
|
+
export function nextActionFor(reason) {
|
|
21
|
+
return NEXT_ACTION[reason] ?? "re-run to resume";
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=next-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-action.js","sourceRoot":"","sources":["../src/next-action.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,GAA2B;IAC1C,QAAQ,EAAE,iCAAiC;IAC3C,IAAI,EAAE,iCAAiC;IACvC,oBAAoB,EAClB,mEAAmE;IACrE,kBAAkB,EAAE,uCAAuC;IAC3D,qBAAqB,EAAE,yCAAyC;IAChE,OAAO,EAAE,2CAA2C;IACpD,iBAAiB,EAAE,sCAAsC;IACzD,wBAAwB,EACtB,sEAAsE;IACxE,sBAAsB,EACpB,qEAAqE;CACxE,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan-checklist progress parser (P10, slice 1).
|
|
3
|
+
*
|
|
4
|
+
* A pure, deterministic parser over a markdown document: it counts GitHub
|
|
5
|
+
* task-list checkboxes and reports how many are checked vs total. Used by later
|
|
6
|
+
* P10 slices to render a live plan progress indicator.
|
|
7
|
+
*
|
|
8
|
+
* Sibling to `plan-rubric.ts` (a pure scorer over plan structure) — same
|
|
9
|
+
* discipline: no I/O, no mutation, never throws, absent/malformed input yields
|
|
10
|
+
* a safe zero-state result.
|
|
11
|
+
*
|
|
12
|
+
* Lines matched: `^\s*[-*]\s+\[( |x|X)\]\s+(.*)$` (multiline). The leading
|
|
13
|
+
* `\s*[-*]\s+` anchor means a `[ ]` appearing mid-sentence is never counted.
|
|
14
|
+
*/
|
|
15
|
+
/** A single task-list item extracted from the plan markdown. */
|
|
16
|
+
export type PlanProgressItem = {
|
|
17
|
+
text: string;
|
|
18
|
+
done: boolean;
|
|
19
|
+
};
|
|
20
|
+
/** Parsed result of a GitHub task-list checklist in a plan markdown. */
|
|
21
|
+
export type PlanProgress = {
|
|
22
|
+
/** Number of checked items (`[x]` or `[X]`). */
|
|
23
|
+
checked: number;
|
|
24
|
+
/** Total number of checkbox items (checked + unchecked). */
|
|
25
|
+
total: number;
|
|
26
|
+
/** Individual items in document order. */
|
|
27
|
+
items: PlanProgressItem[];
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Parse GitHub task-list checkboxes from a plan markdown document.
|
|
31
|
+
*
|
|
32
|
+
* Pure and deterministic — pass any string (including empty or garbage); the
|
|
33
|
+
* result is always a valid {@link PlanProgress}. Never throws.
|
|
34
|
+
*/
|
|
35
|
+
export declare function parsePlanProgress(md: string): PlanProgress;
|
|
36
|
+
//# sourceMappingURL=plan-progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-progress.d.ts","sourceRoot":"","sources":["../src/plan-progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG;IACzB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAsB1D"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan-checklist progress parser (P10, slice 1).
|
|
3
|
+
*
|
|
4
|
+
* A pure, deterministic parser over a markdown document: it counts GitHub
|
|
5
|
+
* task-list checkboxes and reports how many are checked vs total. Used by later
|
|
6
|
+
* P10 slices to render a live plan progress indicator.
|
|
7
|
+
*
|
|
8
|
+
* Sibling to `plan-rubric.ts` (a pure scorer over plan structure) — same
|
|
9
|
+
* discipline: no I/O, no mutation, never throws, absent/malformed input yields
|
|
10
|
+
* a safe zero-state result.
|
|
11
|
+
*
|
|
12
|
+
* Lines matched: `^\s*[-*]\s+\[( |x|X)\]\s+(.*)$` (multiline). The leading
|
|
13
|
+
* `\s*[-*]\s+` anchor means a `[ ]` appearing mid-sentence is never counted.
|
|
14
|
+
*/
|
|
15
|
+
const CHECKBOX_LINE_RE = /^\s*[-*]\s+\[( |x|X)\]\s+(.*)$/gm;
|
|
16
|
+
/**
|
|
17
|
+
* Parse GitHub task-list checkboxes from a plan markdown document.
|
|
18
|
+
*
|
|
19
|
+
* Pure and deterministic — pass any string (including empty or garbage); the
|
|
20
|
+
* result is always a valid {@link PlanProgress}. Never throws.
|
|
21
|
+
*/
|
|
22
|
+
export function parsePlanProgress(md) {
|
|
23
|
+
if (typeof md !== "string" || md.length === 0)
|
|
24
|
+
return { checked: 0, total: 0, items: [] };
|
|
25
|
+
const items = [];
|
|
26
|
+
let checked = 0;
|
|
27
|
+
// Reset lastIndex in case the module-level regex was left in a mid-match
|
|
28
|
+
// state (defensive; shouldn't happen with /gm exec pattern below).
|
|
29
|
+
CHECKBOX_LINE_RE.lastIndex = 0;
|
|
30
|
+
let match;
|
|
31
|
+
while ((match = CHECKBOX_LINE_RE.exec(md)) !== null) {
|
|
32
|
+
const boxChar = match[1]; // " ", "x", or "X"
|
|
33
|
+
const text = match[2].trimEnd();
|
|
34
|
+
const done = boxChar === "x" || boxChar === "X";
|
|
35
|
+
if (done)
|
|
36
|
+
checked++;
|
|
37
|
+
items.push({ text, done });
|
|
38
|
+
}
|
|
39
|
+
if (items.length === 0)
|
|
40
|
+
return { checked: 0, total: 0, items: [] };
|
|
41
|
+
return { checked, total: items.length, items };
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=plan-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-progress.js","sourceRoot":"","sources":["../src/plan-progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAkBH,MAAM,gBAAgB,GAAG,kCAAkC,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAE7C,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,yEAAyE;IACzE,mEAAmE;IACnE,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC;IAE/B,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,CAAC;QAChD,IAAI,IAAI;YAAE,OAAO,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACnE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Machine-readable plan task graph for sub-agent fan-out (issue #66 P11). The
|
|
3
|
+
* plan stage (P8) writes `.otto/tasks/<task-key>/tasks.json` describing its tasks
|
|
4
|
+
* as a dependency graph; the fan-out executor groups independent tasks into waves
|
|
5
|
+
* and runs each in an isolated worktree. Parsing is throws-free: ANY invalid
|
|
6
|
+
* input yields `[]`, so a bad/absent artifact silently disables fan-out and the
|
|
7
|
+
* normal sequential loop runs (graceful degradation is mandatory).
|
|
8
|
+
*/
|
|
9
|
+
/** One decomposed plan task. */
|
|
10
|
+
export type PlanTask = {
|
|
11
|
+
id: string;
|
|
12
|
+
title: string;
|
|
13
|
+
/** Files this task is expected to touch — disjoint scopes can run in parallel. */
|
|
14
|
+
fileScope: string[];
|
|
15
|
+
/** Ids of tasks that must land before this one. */
|
|
16
|
+
dependsOn: string[];
|
|
17
|
+
/** False whenever the planner is unsure — forces a singleton (sequential) wave. */
|
|
18
|
+
parallelSafe: boolean;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Parse + validate a tasks.json string. Returns `[]` on ANY problem (bad JSON,
|
|
22
|
+
* shape, duplicate id, dangling dep, cycle) so fan-out degrades to the normal
|
|
23
|
+
* loop — a bad plan artifact never aborts a run.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parsePlanTasks(json: string): PlanTask[];
|
|
26
|
+
/** Read + parse `.otto/tasks/<taskKey>/tasks.json`; `[]` when absent/invalid. */
|
|
27
|
+
export declare function readPlanTasks(workspaceDir: string, taskKey: string): PlanTask[];
|
|
28
|
+
/**
|
|
29
|
+
* Discover a plan task graph without knowing the task-key (the plan agent picks
|
|
30
|
+
* the slug itself). Scans `.otto/tasks/<key>/tasks.json`, parses each, and
|
|
31
|
+
* returns the tasks from the most-recently-modified valid, non-empty file — the
|
|
32
|
+
* one most likely to belong to the current work. `[]` when none qualify, so
|
|
33
|
+
* fan-out simply disables.
|
|
34
|
+
*/
|
|
35
|
+
export declare function discoverPlanTasks(workspaceDir: string): PlanTask[];
|
|
36
|
+
/**
|
|
37
|
+
* Group tasks into execution waves. A task joins the current wave iff all its
|
|
38
|
+
* deps are in earlier waves, it is `parallelSafe`, and its `fileScope` is
|
|
39
|
+
* disjoint from every task already in the wave. A non-`parallelSafe` task (or
|
|
40
|
+
* one whose scope overlaps the wave) runs alone in its own wave, preserving
|
|
41
|
+
* correctness. Assumes a validated (acyclic) graph from {@link parsePlanTasks}.
|
|
42
|
+
*/
|
|
43
|
+
export declare function planParallelGroups(tasks: PlanTask[]): PlanTask[][];
|
|
44
|
+
//# sourceMappingURL=plan-tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-tasks.d.ts","sourceRoot":"","sources":["../src/plan-tasks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mDAAmD;IACnD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mFAAmF;IACnF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAmCF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAoBvD;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAU/E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,EAAE,CA0BlE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAAE,CAiClE"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Machine-readable plan task graph for sub-agent fan-out (issue #66 P11). The
|
|
3
|
+
* plan stage (P8) writes `.otto/tasks/<task-key>/tasks.json` describing its tasks
|
|
4
|
+
* as a dependency graph; the fan-out executor groups independent tasks into waves
|
|
5
|
+
* and runs each in an isolated worktree. Parsing is throws-free: ANY invalid
|
|
6
|
+
* input yields `[]`, so a bad/absent artifact silently disables fan-out and the
|
|
7
|
+
* normal sequential loop runs (graceful degradation is mandatory).
|
|
8
|
+
*/
|
|
9
|
+
import { readFileSync, readdirSync, statSync } from "node:fs";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
function isStringArray(v) {
|
|
12
|
+
return Array.isArray(v) && v.every((x) => typeof x === "string");
|
|
13
|
+
}
|
|
14
|
+
function validShape(t) {
|
|
15
|
+
const o = t;
|
|
16
|
+
return (!!o &&
|
|
17
|
+
typeof o.id === "string" &&
|
|
18
|
+
o.id.length > 0 &&
|
|
19
|
+
typeof o.title === "string" &&
|
|
20
|
+
isStringArray(o.fileScope) &&
|
|
21
|
+
isStringArray(o.dependsOn) &&
|
|
22
|
+
typeof o.parallelSafe === "boolean");
|
|
23
|
+
}
|
|
24
|
+
/** True if the dependsOn graph has a cycle. */
|
|
25
|
+
function hasCycle(tasks) {
|
|
26
|
+
const byId = new Map(tasks.map((t) => [t.id, t]));
|
|
27
|
+
const state = new Map(); // 0=unseen 1=on-stack 2=done
|
|
28
|
+
const visit = (id) => {
|
|
29
|
+
const s = state.get(id) ?? 0;
|
|
30
|
+
if (s === 1)
|
|
31
|
+
return true;
|
|
32
|
+
if (s === 2)
|
|
33
|
+
return false;
|
|
34
|
+
state.set(id, 1);
|
|
35
|
+
for (const d of byId.get(id).dependsOn)
|
|
36
|
+
if (visit(d))
|
|
37
|
+
return true;
|
|
38
|
+
state.set(id, 2);
|
|
39
|
+
return false;
|
|
40
|
+
};
|
|
41
|
+
return tasks.some((t) => visit(t.id));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Parse + validate a tasks.json string. Returns `[]` on ANY problem (bad JSON,
|
|
45
|
+
* shape, duplicate id, dangling dep, cycle) so fan-out degrades to the normal
|
|
46
|
+
* loop — a bad plan artifact never aborts a run.
|
|
47
|
+
*/
|
|
48
|
+
export function parsePlanTasks(json) {
|
|
49
|
+
let parsed;
|
|
50
|
+
try {
|
|
51
|
+
parsed = JSON.parse(json);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
const raw = parsed?.tasks;
|
|
57
|
+
if (!Array.isArray(raw) || !raw.every(validShape))
|
|
58
|
+
return [];
|
|
59
|
+
const tasks = raw;
|
|
60
|
+
const ids = new Set();
|
|
61
|
+
for (const t of tasks) {
|
|
62
|
+
if (ids.has(t.id))
|
|
63
|
+
return [];
|
|
64
|
+
ids.add(t.id);
|
|
65
|
+
}
|
|
66
|
+
for (const t of tasks) {
|
|
67
|
+
if (t.dependsOn.some((d) => !ids.has(d)))
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
if (hasCycle(tasks))
|
|
71
|
+
return [];
|
|
72
|
+
return tasks;
|
|
73
|
+
}
|
|
74
|
+
/** Read + parse `.otto/tasks/<taskKey>/tasks.json`; `[]` when absent/invalid. */
|
|
75
|
+
export function readPlanTasks(workspaceDir, taskKey) {
|
|
76
|
+
try {
|
|
77
|
+
const txt = readFileSync(join(workspaceDir, ".otto", "tasks", taskKey, "tasks.json"), "utf8");
|
|
78
|
+
return parsePlanTasks(txt);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Discover a plan task graph without knowing the task-key (the plan agent picks
|
|
86
|
+
* the slug itself). Scans `.otto/tasks/<key>/tasks.json`, parses each, and
|
|
87
|
+
* returns the tasks from the most-recently-modified valid, non-empty file — the
|
|
88
|
+
* one most likely to belong to the current work. `[]` when none qualify, so
|
|
89
|
+
* fan-out simply disables.
|
|
90
|
+
*/
|
|
91
|
+
export function discoverPlanTasks(workspaceDir) {
|
|
92
|
+
const tasksDir = join(workspaceDir, ".otto", "tasks");
|
|
93
|
+
let dirs;
|
|
94
|
+
try {
|
|
95
|
+
dirs = readdirSync(tasksDir, { withFileTypes: true })
|
|
96
|
+
.filter((e) => e.isDirectory())
|
|
97
|
+
.map((e) => e.name);
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
let best;
|
|
103
|
+
for (const key of dirs) {
|
|
104
|
+
const file = join(tasksDir, key, "tasks.json");
|
|
105
|
+
let txt;
|
|
106
|
+
let mtimeMs;
|
|
107
|
+
try {
|
|
108
|
+
txt = readFileSync(file, "utf8");
|
|
109
|
+
mtimeMs = statSync(file).mtimeMs;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const tasks = parsePlanTasks(txt);
|
|
115
|
+
if (tasks.length === 0)
|
|
116
|
+
continue;
|
|
117
|
+
if (!best || mtimeMs > best.mtimeMs)
|
|
118
|
+
best = { tasks, mtimeMs };
|
|
119
|
+
}
|
|
120
|
+
return best?.tasks ?? [];
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Group tasks into execution waves. A task joins the current wave iff all its
|
|
124
|
+
* deps are in earlier waves, it is `parallelSafe`, and its `fileScope` is
|
|
125
|
+
* disjoint from every task already in the wave. A non-`parallelSafe` task (or
|
|
126
|
+
* one whose scope overlaps the wave) runs alone in its own wave, preserving
|
|
127
|
+
* correctness. Assumes a validated (acyclic) graph from {@link parsePlanTasks}.
|
|
128
|
+
*/
|
|
129
|
+
export function planParallelGroups(tasks) {
|
|
130
|
+
const waves = [];
|
|
131
|
+
const done = new Set();
|
|
132
|
+
let remaining = [...tasks];
|
|
133
|
+
while (remaining.length > 0) {
|
|
134
|
+
const wave = [];
|
|
135
|
+
const usedScope = new Set();
|
|
136
|
+
for (const t of remaining) {
|
|
137
|
+
const depsReady = t.dependsOn.every((d) => done.has(d));
|
|
138
|
+
if (!depsReady)
|
|
139
|
+
continue;
|
|
140
|
+
const disjoint = t.fileScope.every((f) => !usedScope.has(f));
|
|
141
|
+
if (wave.length === 0) {
|
|
142
|
+
// First task in the wave always admitted (deps ready). A non-parallel
|
|
143
|
+
// task seals the wave as a singleton.
|
|
144
|
+
wave.push(t);
|
|
145
|
+
t.fileScope.forEach((f) => usedScope.add(f));
|
|
146
|
+
if (!t.parallelSafe)
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
else if (t.parallelSafe && disjoint) {
|
|
150
|
+
wave.push(t);
|
|
151
|
+
t.fileScope.forEach((f) => usedScope.add(f));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (wave.length === 0) {
|
|
155
|
+
// Deadlock guard (unreachable on a validated graph): drop the head as a
|
|
156
|
+
// singleton so the loop always terminates.
|
|
157
|
+
wave.push(remaining[0]);
|
|
158
|
+
}
|
|
159
|
+
for (const t of wave)
|
|
160
|
+
done.add(t.id);
|
|
161
|
+
const ids = new Set(wave.map((t) => t.id));
|
|
162
|
+
remaining = remaining.filter((t) => !ids.has(t.id));
|
|
163
|
+
waves.push(wave);
|
|
164
|
+
}
|
|
165
|
+
return waves;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=plan-tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-tasks.js","sourceRoot":"","sources":["../src/plan-tasks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAcjC,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,OAAO,CACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;QACxB,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;QACf,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QAC3B,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1B,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1B,OAAO,CAAC,CAAC,YAAY,KAAK,SAAS,CACpC,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,SAAS,QAAQ,CAAC,KAAiB;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC,CAAC,6BAA6B;IACzE,MAAM,KAAK,GAAG,CAAC,EAAU,EAAW,EAAE;QACpC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,SAAS;YAAE,IAAI,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACnE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAI,MAAkC,EAAE,KAAK,CAAC;IACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,GAAiB,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,YAAoB,EAAE,OAAe;IACjE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CACtB,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAC3D,MAAM,CACP,CAAC;QACF,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,IAAc,CAAC;IACnB,IAAI,CAAC;QACH,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,IAAwD,CAAC;IAC7D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QAC/C,IAAI,GAAW,CAAC;QAChB,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACjC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,IAAI,CAAC,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO;YAAE,IAAI,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IAClD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC3B,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS;gBAAE,SAAS;YACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,sEAAsE;gBACtE,sCAAsC;gBACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,CAAC,CAAC,YAAY;oBAAE,MAAM;YAC7B,CAAC;iBAAM,IAAI,CAAC,CAAC,YAAY,IAAI,QAAQ,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,wEAAwE;YACxE,2CAA2C;YAC3C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/run-bin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-bin.d.ts","sourceRoot":"","sources":["../src/run-bin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-bin.d.ts","sourceRoot":"","sources":["../src/run-bin.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG;IACzB,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAC5B;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7E,iEAAiE;IACjE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;IACjC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gFAAgF;IAChF,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,sFAAsF;IACtF,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC;CAC/C,CAAC;AA2BF;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmmB7E"}
|
package/dist/run-bin.js
CHANGED
|
@@ -7,6 +7,7 @@ import { parseFlags, parseDurationMs, printConfig, printHelp, printVersion, } fr
|
|
|
7
7
|
import { detachAndExit } from "./detach.js";
|
|
8
8
|
import { runLoop } from "./loop.js";
|
|
9
9
|
import { getAgentRuntime } from "./runner.js";
|
|
10
|
+
import { resolveTierLadder } from "./model-tier.js";
|
|
10
11
|
import { parseGithubRepo, describeScope } from "./task-key.js";
|
|
11
12
|
import { parseTokenMode } from "./tokens.js";
|
|
12
13
|
/**
|
|
@@ -150,6 +151,17 @@ export async function runBin(argv, cfg) {
|
|
|
150
151
|
// Same flag/env shape as the router; only meaningful with the router on.
|
|
151
152
|
const explainRouting = flags.explainRouting ||
|
|
152
153
|
["1", "true", "yes", "on"].includes((process.env.OTTO_EXPLAIN_ROUTING ?? "").trim().toLowerCase());
|
|
154
|
+
// Model routing (issue #66 P11): route each stage to a model tier by
|
|
155
|
+
// difficulty + change risk, escalating on repeated failure. Opt-in via
|
|
156
|
+
// --model-routing or OTTO_MODEL_ROUTING; a pinned --model/OTTO_MODEL wins.
|
|
157
|
+
const modelRouting = flags.modelRouting ||
|
|
158
|
+
["1", "true", "yes", "on"].includes((process.env.OTTO_MODEL_ROUTING ?? "").trim().toLowerCase());
|
|
159
|
+
const tierLadder = resolveTierLadder(process.env);
|
|
160
|
+
// Sub-agent fan-out (issue #66 P11): run independent plan tasks as isolated
|
|
161
|
+
// worktree sub-agents before the sequential loop. Opt-in; needs a tasks.json.
|
|
162
|
+
const fanOut = flags.fanOut ||
|
|
163
|
+
["1", "true", "yes", "on"].includes((process.env.OTTO_FAN_OUT ?? "").trim().toLowerCase());
|
|
164
|
+
const fanOutConcurrency = flags.fanOutConcurrency;
|
|
153
165
|
const DEFAULT_LENSES = ["correctness", "security", "tests"];
|
|
154
166
|
const envLenses = (process.env.OTTO_REVIEW_LENSES ?? "")
|
|
155
167
|
.split(",")
|
|
@@ -299,9 +311,14 @@ export async function runBin(argv, cfg) {
|
|
|
299
311
|
fallbackSource: fallback.agent?.source,
|
|
300
312
|
autoSwitchOnLimit: fallback.autoSwitch,
|
|
301
313
|
fallbackError,
|
|
314
|
+
verbose: flags.verbose,
|
|
302
315
|
reviewLenses: reviewLenses ?? [],
|
|
303
316
|
adaptiveRouter,
|
|
304
317
|
explainRouting,
|
|
318
|
+
modelRouting,
|
|
319
|
+
tierLadder: modelRouting ? tierLadder : undefined,
|
|
320
|
+
fanOut,
|
|
321
|
+
fanOutConcurrency,
|
|
305
322
|
watch: flags.watch,
|
|
306
323
|
watchIntervalSec: flags.watchIntervalSec,
|
|
307
324
|
watchLabel,
|
|
@@ -525,6 +542,11 @@ export async function runBin(argv, cfg) {
|
|
|
525
542
|
reviewLenses,
|
|
526
543
|
adaptiveRouter,
|
|
527
544
|
explainRouting,
|
|
545
|
+
modelRouting,
|
|
546
|
+
tierLadder,
|
|
547
|
+
fanOut,
|
|
548
|
+
fanOutConcurrency,
|
|
549
|
+
verbose: flags.verbose,
|
|
528
550
|
mode: runMode,
|
|
529
551
|
branchStrategy: resolved.strategy,
|
|
530
552
|
maxWaitMs,
|
package/dist/run-bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-bin.js","sourceRoot":"","sources":["../src/run-bin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-bin.js","sourceRoot":"","sources":["../src/run-bin.ts"],"names":[],"mappings":"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"}
|