@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.
Files changed (70) hide show
  1. package/dist/cli-help.d.ts +23 -0
  2. package/dist/cli-help.d.ts.map +1 -1
  3. package/dist/cli-help.js +38 -1
  4. package/dist/cli-help.js.map +1 -1
  5. package/dist/console-ui.d.ts +32 -0
  6. package/dist/console-ui.d.ts.map +1 -0
  7. package/dist/console-ui.js +154 -0
  8. package/dist/console-ui.js.map +1 -0
  9. package/dist/fanout.d.ts +56 -0
  10. package/dist/fanout.d.ts.map +1 -0
  11. package/dist/fanout.js +119 -0
  12. package/dist/fanout.js.map +1 -0
  13. package/dist/index.d.ts +7 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +7 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/loop.d.ts +19 -1
  18. package/dist/loop.d.ts.map +1 -1
  19. package/dist/loop.js +125 -32
  20. package/dist/loop.js.map +1 -1
  21. package/dist/model-tier.d.ts +69 -0
  22. package/dist/model-tier.d.ts.map +1 -0
  23. package/dist/model-tier.js +101 -0
  24. package/dist/model-tier.js.map +1 -0
  25. package/dist/next-action.d.ts +2 -0
  26. package/dist/next-action.d.ts.map +1 -0
  27. package/dist/next-action.js +23 -0
  28. package/dist/next-action.js.map +1 -0
  29. package/dist/plan-progress.d.ts +36 -0
  30. package/dist/plan-progress.d.ts.map +1 -0
  31. package/dist/plan-progress.js +43 -0
  32. package/dist/plan-progress.js.map +1 -0
  33. package/dist/plan-tasks.d.ts +44 -0
  34. package/dist/plan-tasks.d.ts.map +1 -0
  35. package/dist/plan-tasks.js +167 -0
  36. package/dist/plan-tasks.js.map +1 -0
  37. package/dist/run-bin.d.ts.map +1 -1
  38. package/dist/run-bin.js +22 -0
  39. package/dist/run-bin.js.map +1 -1
  40. package/dist/run-view.d.ts +71 -0
  41. package/dist/run-view.d.ts.map +1 -0
  42. package/dist/run-view.js +190 -0
  43. package/dist/run-view.js.map +1 -0
  44. package/dist/runner.d.ts +22 -14
  45. package/dist/runner.d.ts.map +1 -1
  46. package/dist/runner.js +18 -26
  47. package/dist/runner.js.map +1 -1
  48. package/dist/stage-exec.d.ts +16 -0
  49. package/dist/stage-exec.d.ts.map +1 -1
  50. package/dist/stage-exec.js +32 -1
  51. package/dist/stage-exec.js.map +1 -1
  52. package/dist/stages.d.ts +18 -0
  53. package/dist/stages.d.ts.map +1 -1
  54. package/dist/stages.js +17 -0
  55. package/dist/stages.js.map +1 -1
  56. package/dist/stream-render.d.ts +1 -0
  57. package/dist/stream-render.d.ts.map +1 -1
  58. package/dist/stream-render.js +1 -1
  59. package/dist/stream-render.js.map +1 -1
  60. package/dist/tail.d.ts +25 -0
  61. package/dist/tail.d.ts.map +1 -0
  62. package/dist/tail.js +75 -0
  63. package/dist/tail.js.map +1 -0
  64. package/dist/worktree.d.ts +24 -0
  65. package/dist/worktree.d.ts.map +1 -0
  66. package/dist/worktree.js +43 -0
  67. package/dist/worktree.js.map +1 -0
  68. package/package.json +1 -1
  69. package/templates/plan.md +26 -4
  70. 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,2 @@
1
+ export declare function nextActionFor(reason: string): string;
2
+ //# sourceMappingURL=next-action.d.ts.map
@@ -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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-bin.d.ts","sourceRoot":"","sources":["../src/run-bin.ts"],"names":[],"mappings":"AAuBA,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,CAskB7E"}
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,
@@ -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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"}