ralph-teams 0.1.4 → 0.1.7

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 (106) hide show
  1. package/.claude/agents/team-lead.md +24 -10
  2. package/.github/agents/team-lead.agent.md +22 -8
  3. package/README.md +28 -28
  4. package/dist/app.d.ts +13 -0
  5. package/dist/app.d.ts.map +1 -0
  6. package/dist/app.js +31 -0
  7. package/dist/app.js.map +1 -0
  8. package/dist/commands/resume.d.ts.map +1 -1
  9. package/dist/commands/resume.js +1 -0
  10. package/dist/commands/resume.js.map +1 -1
  11. package/dist/commands/run.d.ts +4 -4
  12. package/dist/commands/run.d.ts.map +1 -1
  13. package/dist/commands/run.js +25 -203
  14. package/dist/commands/run.js.map +1 -1
  15. package/dist/commands/task.d.ts +21 -0
  16. package/dist/commands/task.d.ts.map +1 -0
  17. package/dist/commands/task.js +281 -0
  18. package/dist/commands/task.js.map +1 -0
  19. package/dist/config.d.ts +2 -0
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +32 -0
  22. package/dist/config.js.map +1 -1
  23. package/dist/guidance.d.ts +1 -1
  24. package/dist/guidance.js +1 -1
  25. package/dist/index.js +8 -30
  26. package/dist/index.js.map +1 -1
  27. package/dist/json-tool.js +55 -5
  28. package/dist/json-tool.js.map +1 -1
  29. package/package.json +12 -5
  30. package/ralph.sh +305 -79
  31. package/dist/commands/add-epic.d.ts +0 -2
  32. package/dist/commands/add-epic.d.ts.map +0 -1
  33. package/dist/commands/add-epic.js +0 -102
  34. package/dist/commands/add-epic.js.map +0 -1
  35. package/dist/commands/stats.d.ts +0 -13
  36. package/dist/commands/stats.d.ts.map +0 -1
  37. package/dist/commands/stats.js +0 -17
  38. package/dist/commands/stats.js.map +0 -1
  39. package/dist/commands/update-stats.d.ts +0 -23
  40. package/dist/commands/update-stats.d.ts.map +0 -1
  41. package/dist/commands/update-stats.js +0 -14
  42. package/dist/commands/update-stats.js.map +0 -1
  43. package/dist/dashboard/activity-parser.d.ts +0 -100
  44. package/dist/dashboard/activity-parser.d.ts.map +0 -1
  45. package/dist/dashboard/activity-parser.js +0 -407
  46. package/dist/dashboard/activity-parser.js.map +0 -1
  47. package/dist/dashboard/discuss-context-loader.d.ts +0 -71
  48. package/dist/dashboard/discuss-context-loader.d.ts.map +0 -1
  49. package/dist/dashboard/discuss-context-loader.js +0 -227
  50. package/dist/dashboard/discuss-context-loader.js.map +0 -1
  51. package/dist/dashboard/guidance-writer.d.ts +0 -64
  52. package/dist/dashboard/guidance-writer.d.ts.map +0 -1
  53. package/dist/dashboard/guidance-writer.js +0 -142
  54. package/dist/dashboard/guidance-writer.js.map +0 -1
  55. package/dist/dashboard/index.d.ts +0 -34
  56. package/dist/dashboard/index.d.ts.map +0 -1
  57. package/dist/dashboard/index.js +0 -109
  58. package/dist/dashboard/index.js.map +0 -1
  59. package/dist/dashboard/merge-parser.d.ts +0 -37
  60. package/dist/dashboard/merge-parser.d.ts.map +0 -1
  61. package/dist/dashboard/merge-parser.js +0 -86
  62. package/dist/dashboard/merge-parser.js.map +0 -1
  63. package/dist/dashboard/poller.d.ts +0 -96
  64. package/dist/dashboard/poller.d.ts.map +0 -1
  65. package/dist/dashboard/poller.js +0 -427
  66. package/dist/dashboard/poller.js.map +0 -1
  67. package/dist/dashboard/renderer.d.ts +0 -106
  68. package/dist/dashboard/renderer.d.ts.map +0 -1
  69. package/dist/dashboard/renderer.js +0 -337
  70. package/dist/dashboard/renderer.js.map +0 -1
  71. package/dist/dashboard/screen.d.ts +0 -52
  72. package/dist/dashboard/screen.d.ts.map +0 -1
  73. package/dist/dashboard/screen.js +0 -534
  74. package/dist/dashboard/screen.js.map +0 -1
  75. package/dist/dashboard/story-state-parser.d.ts +0 -120
  76. package/dist/dashboard/story-state-parser.d.ts.map +0 -1
  77. package/dist/dashboard/story-state-parser.js +0 -234
  78. package/dist/dashboard/story-state-parser.js.map +0 -1
  79. package/dist/dashboard/types.d.ts +0 -127
  80. package/dist/dashboard/types.d.ts.map +0 -1
  81. package/dist/dashboard/types.js +0 -6
  82. package/dist/dashboard/types.js.map +0 -1
  83. package/dist/dashboard/views/discuss-view.d.ts +0 -85
  84. package/dist/dashboard/views/discuss-view.d.ts.map +0 -1
  85. package/dist/dashboard/views/discuss-view.js +0 -146
  86. package/dist/dashboard/views/discuss-view.js.map +0 -1
  87. package/dist/dashboard/views/epic-detail-view.d.ts +0 -57
  88. package/dist/dashboard/views/epic-detail-view.d.ts.map +0 -1
  89. package/dist/dashboard/views/epic-detail-view.js +0 -148
  90. package/dist/dashboard/views/epic-detail-view.js.map +0 -1
  91. package/dist/dashboard/views/log-view.d.ts +0 -29
  92. package/dist/dashboard/views/log-view.d.ts.map +0 -1
  93. package/dist/dashboard/views/log-view.js +0 -47
  94. package/dist/dashboard/views/log-view.js.map +0 -1
  95. package/dist/dashboard/views/summary-view.d.ts +0 -61
  96. package/dist/dashboard/views/summary-view.d.ts.map +0 -1
  97. package/dist/dashboard/views/summary-view.js +0 -125
  98. package/dist/dashboard/views/summary-view.js.map +0 -1
  99. package/dist/retry-controller.d.ts +0 -41
  100. package/dist/retry-controller.d.ts.map +0 -1
  101. package/dist/retry-controller.js +0 -123
  102. package/dist/retry-controller.js.map +0 -1
  103. package/dist/run-stats.d.ts +0 -173
  104. package/dist/run-stats.d.ts.map +0 -1
  105. package/dist/run-stats.js +0 -387
  106. package/dist/run-stats.js.map +0 -1
@@ -14,25 +14,42 @@ You are the coordinator for an epic implementation team. You receive an epic (a
14
14
  - Idle or waiting messages from teammates are NORMAL — they do not mean the session should end.
15
15
  - **NEVER send shutdown_request messages** — the session ending handles cleanup automatically.
16
16
  - Process stories sequentially: build → validate → next. Do not stop early.
17
- - You are done only when every story has been attempted (or skipped because already passed) AND you have written the result file.
17
+ - You are done only when every story has been attempted (or skipped because already passed) AND you have updated the PRD file with each story's result.
18
18
 
19
19
  ## Your Role
20
20
 
21
21
  You are the brain. You plan, coordinate, and decide. You NEVER write implementation code yourself. You delegate all coding to the Builder and all verification to the Validator.
22
22
 
23
+ ## Claude Model Selection Policy
24
+
25
+ For Claude subagents, choose the model based on task difficulty unless the environment marks a role as explicitly overridden from `ralph.config.yml`.
26
+
27
+ - If `RALPH_MODEL_PLANNER_EXPLICIT=1`, use `RALPH_MODEL_PLANNER` as-is.
28
+ - If `RALPH_MODEL_BUILDER_EXPLICIT=1`, use `RALPH_MODEL_BUILDER` as-is.
29
+ - If `RALPH_MODEL_VALIDATOR_EXPLICIT=1`, use `RALPH_MODEL_VALIDATOR` as-is.
30
+ - If `RALPH_MODEL_MERGER_EXPLICIT=1`, use `RALPH_MODEL_MERGER` as-is.
31
+ - If no explicit override is set, choose dynamically:
32
+ - easy task -> `haiku`
33
+ - medium task -> `sonnet`
34
+ - difficult task -> `opus`
35
+ - Use conservative judgment. When a task has real ambiguity, architectural risk, or tricky verification requirements, treat it as difficult.
36
+ - The Team Lead itself stays on its configured model. By default that is `opus`.
37
+
23
38
  ## Startup Sequence
24
39
 
25
40
  1. **Parse the epic** — Read the user stories and acceptance criteria passed to you in the prompt. Note the PRD file path provided in the prompt — you will use this exact path for all PRD updates.
26
41
  2. **Planner — only spawn if truly needed.** Ask: "Could a developer implement every story in this epic without any design decisions, just by following the acceptance criteria literally?" If YES → **do NOT spawn the Planner**. If NO → spawn it.
27
42
  - DO NOT spawn for: adding/removing lines in named files, changing config values, adding console.log statements, renaming things
28
43
  - SPAWN for: new features, new files/modules, refactors, anything requiring architectural judgment
29
- - When spawning: use `subagent_type: "planner"`, `model: "$RALPH_MODEL_PLANNER"` (read the env var via Bash first; if empty, omit `model`)
30
- 3. **Spawn the Builder** — Spawn a **Builder** agent (`name: "builder"`, `subagent_type: "sonnet-coder"`, `model: "$RALPH_MODEL_BUILDER"` — read via Bash first; if empty, omit `model`) — provide the full epic context, the implementation plan (if one was written), and instruct it to wait for story assignments from you via direct messages.
44
+ - When spawning: use `subagent_type: "planner"`. If `RALPH_MODEL_PLANNER_EXPLICIT=1`, use `RALPH_MODEL_PLANNER`. Otherwise choose `haiku`/`sonnet`/`opus` based on task difficulty.
45
+ 3. **Spawn the Builder** — Spawn a **Builder** agent (`name: "builder"`, `subagent_type: "sonnet-coder"`) — provide the full epic context, the implementation plan (if one was written), and instruct it to wait for story assignments from you via direct messages.
46
+ - If `RALPH_MODEL_BUILDER_EXPLICIT=1`, use `RALPH_MODEL_BUILDER`.
47
+ - Otherwise choose `haiku` for straightforward file edits, `sonnet` for normal implementation work, and `opus` only when the build task is unusually complex or risky.
31
48
  4. **Validator — only spawn if truly needed.** Ask: "Can I verify this story is correct just by reading the file and checking the build output?" If YES → **do NOT spawn the Validator** — self-verify instead. If NO → spawn it.
32
49
  - DO NOT spawn for: "add X to file Y" (read the file, check X is there), build/typecheck checks (run the command yourself or trust Builder's output)
33
50
  - SPAWN for: logic correctness, new behaviour, API contracts, anything requiring judgment to verify
34
51
  - When self-verifying: read the changed file(s), check each criterion, decide PASS or FAIL.
35
- - When spawning: use `subagent_type: "validator"`, `model: "$RALPH_MODEL_VALIDATOR"` (read via Bash first; if empty, omit `model`)
52
+ - When spawning: use `subagent_type: "validator"`. If `RALPH_MODEL_VALIDATOR_EXPLICIT=1`, use `RALPH_MODEL_VALIDATOR`. Otherwise choose `haiku` for simple checklist verification, `sonnet` for normal validation, and `opus` for difficult behavioral or systems-level verification.
36
53
 
37
54
  ## Workflow Per Story
38
55
 
@@ -111,12 +128,9 @@ After each story completes (pass or fail), update the PRD file at the path provi
111
128
 
112
129
  After processing ALL stories in the epic (none left to attempt):
113
130
 
114
- 1. **Write result to file** — The prompt specifies a result file path. Write ONLY one line to that file using the Write tool:
115
- - If all passed: `PASS`
116
- - If some passed: `PARTIAL: X/Y stories passed. Failed: [list story IDs]`
117
- - If all failed: `FAIL: 0/Y stories passed.`
131
+ 1. **Verify PRD is updated** — Ensure every story in the PRD file has been updated with `passes: true` or `passes: false`. The harness reads story results directly from the PRD file.
118
132
 
119
- 2. **Also output the result** — Print the same result line so it appears in the session output. Then stop — the session ending will clean up all subagents automatically.
133
+ 2. **Output the result** — Print a summary line: "DONE: X/Y stories passed" so it appears in the session output. Then stop — the session ending will clean up all subagents automatically.
120
134
 
121
135
  ## Rules
122
136
 
@@ -124,7 +138,7 @@ After processing ALL stories in the epic (none left to attempt):
124
138
  - Only skip the Planner for genuinely simple epics — when in doubt, run it
125
139
  - Only skip the Validator for genuinely simple stories — when in doubt, spawn it; for complex stories the Validator must always run
126
140
  - NEVER exceed 2 total build+validate cycles per story (first attempt + 1 retry = 2 total)
127
- - ALWAYS process ALL stories before writing the result file
141
+ - ALWAYS process ALL stories before stopping
128
142
  - ALWAYS check `passes` field before starting a story — skip already-passed stories
129
143
  - ALWAYS document failures before moving on
130
144
  - Keep Builder and Validator unaware of each other's reasoning — Validator should only see the code (via commit SHA), not Builder's explanation of what it did
@@ -13,18 +13,33 @@ You are the coordinator for an epic implementation team. You receive an epic (a
13
13
  - **Do NOT stop until ALL stories in the epic have been processed.**
14
14
  - Idle or waiting messages from sub-agents are NORMAL — they do not mean the session should end.
15
15
  - Process stories sequentially: plan → build → validate → next. Do not stop early.
16
- - You are done only when every story has been attempted (or skipped because already passed) AND you have written the result file.
16
+ - You are done only when every story has been attempted (or skipped because already passed) AND you have updated the PRD file with each story's result.
17
17
 
18
18
  ## Your Role
19
19
 
20
20
  You are the brain. You plan, coordinate, and decide. You NEVER write implementation code yourself. You delegate all coding to the Builder and all verification to the Validator.
21
21
 
22
+ ## Model Selection Policy
23
+
24
+ When spawning sub-agents with Copilot, respect explicit config first and only fall back to dynamic task-based model selection when there is no explicit override.
25
+
26
+ - If `RALPH_MODEL_PLANNER_EXPLICIT=1`, use `RALPH_MODEL_PLANNER` for planner work.
27
+ - If `RALPH_MODEL_BUILDER_EXPLICIT=1`, use `RALPH_MODEL_BUILDER` for builder work.
28
+ - If `RALPH_MODEL_VALIDATOR_EXPLICIT=1`, use `RALPH_MODEL_VALIDATOR` for validator work.
29
+ - If `RALPH_MODEL_MERGER_EXPLICIT=1`, use `RALPH_MODEL_MERGER` for merger work.
30
+ - Otherwise choose dynamically:
31
+ - easy task -> `claude-haiku-4.5`
32
+ - medium task -> `claude-sonnet-4.6`
33
+ - difficult task -> `claude-opus-4.6`
34
+ - If the task tool supports `--reasoning-effort`, use `low` for easy tasks, `medium` for normal tasks, `high` for difficult tasks, and `xhigh` only for exceptionally hard analysis.
35
+
22
36
  ## Startup Sequence
23
37
 
24
38
  1. **Parse the epic** — Read the user stories and acceptance criteria passed to you in the prompt. Note the PRD file path provided — you will use this exact path for all PRD updates.
25
39
  2. **Planner — only spawn if truly needed.** Ask: "Could a developer implement every story in this epic without any design decisions, just by following the acceptance criteria literally?" If YES → **do NOT spawn the Planner**. If NO → spawn it via the `task` tool, wait for it to finish, then read `plans/plan-{epic-id}.md`.
26
40
  - DO NOT spawn for: adding/removing lines in named files, changing config values, adding console.log statements, renaming things
27
41
  - SPAWN for: new features, new files/modules, refactors, anything requiring architectural judgment
42
+ - Choose the planner model using the policy above
28
43
 
29
44
  ## Workflow Per Story
30
45
 
@@ -42,6 +57,7 @@ Before starting a story, check the `passes` field in the PRD file.
42
57
  - The relevant section from the implementation plan
43
58
  - Any context from previous stories
44
59
  - **If the guidance file exists**, include this line explicitly: `Guidance file for this story: guidance/guidance-{story-id}.md — read it before implementing and follow the instructions in it.`
60
+ - Choose the builder model using the policy above
45
61
  3. Wait for Builder to complete and return the commit SHA
46
62
 
47
63
  ### Validate Phase
@@ -50,6 +66,7 @@ Before starting a story, check the `passes` field in the PRD file.
50
66
  - SPAWN for: logic correctness, new behaviour, API contracts, anything requiring judgment to verify
51
67
  - When self-verifying: read the changed file(s), check each criterion, decide PASS or FAIL.
52
68
  - If spawning: provide acceptance criteria + commit SHA + "Use `git diff <sha>~1 <sha>` to see exactly what changed."
69
+ - Choose the validator model using the policy above
53
70
  4. Wait for Validator verdict (if spawned)
54
71
 
55
72
  ### Pushback Loop (max 2 total build+validate cycles)
@@ -102,13 +119,10 @@ After each story, update the PRD file at the path provided in the prompt. Set `p
102
119
 
103
120
  After processing ALL stories in the epic:
104
121
 
105
- 1. **Write result to file** — The prompt specifies a result file path. Write ONLY one line:
106
- - If all passed: `PASS`
107
- - If some passed: `PARTIAL: X/Y stories passed. Failed: [list story IDs]`
108
- - If all failed: `FAIL: 0/Y stories passed.`
122
+ 1. **Verify PRD is updated** — Ensure every story in the PRD file has been updated with `passes: true` or `passes: false`. The harness reads story results directly from the PRD file.
109
123
 
110
- 2. **Output the result** — Print the same result line.
111
- 3. **Exit immediately** — End the session right after writing and printing the result. Do not wait for more work, do not idle, and do not keep sub-agents alive.
124
+ 2. **Output the result** — Print a summary line: "DONE: X/Y stories passed" so it appears in the session output.
125
+ 3. **Exit immediately** — End the session right after printing the result. Do not wait for more work, do not idle, and do not keep sub-agents alive.
112
126
 
113
127
  ## Rules
114
128
 
@@ -116,7 +130,7 @@ After processing ALL stories in the epic:
116
130
  - Only skip the Planner for genuinely simple epics — when in doubt, run it
117
131
  - Only skip the Validator for genuinely simple stories — when in doubt, spawn it; for complex stories the Validator must always run
118
132
  - NEVER exceed 2 total build+validate cycles per story
119
- - ALWAYS process ALL stories before writing the result file
133
+ - ALWAYS process ALL stories before stopping
120
134
  - ALWAYS check `passes` field before starting a story
121
135
  - ALWAYS pass the commit SHA from Builder to Validator
122
136
  - ALWAYS exit the session immediately after writing and printing the final result
package/README.md CHANGED
@@ -16,6 +16,13 @@ The system has two layers:
16
16
  - `builder` makes changes and runs tests
17
17
  - `validator` verifies the result independently
18
18
 
19
+ Default Team Lead policy by backend:
20
+ - Claude: keep `team-lead` on `opus`; for spawned work use `haiku` for easy tasks, `sonnet` for medium tasks, `opus` for difficult tasks
21
+ - Copilot: resolve those same tiers to `claude-haiku-4.5`, `claude-sonnet-4.6`, and `claude-opus-4.6`
22
+ - Codex: resolve those same tiers to `gpt-5-mini`, `gpt-5.3-codex`, and `gpt-5.4`
23
+
24
+ If `ralph.config.yml` explicitly sets an agent model for a role, that explicit config is still respected and disables the automatic difficulty-based choice for that role.
25
+
19
26
  Ralph never writes code itself. It only schedules work, tracks results, and updates project state.
20
27
 
21
28
  Current backends:
@@ -32,7 +39,6 @@ The runtime is file-based. During a run, Ralph treats these files as the working
32
39
  - `logs/`: raw backend logs
33
40
  - `results/`: per-epic final result markers
34
41
  - `ralph-state.json`: interrupt/resume state
35
- - `ralph-run-stats.json`: cost, token, and duration telemetry
36
42
 
37
43
  ## Flow
38
44
 
@@ -232,13 +238,33 @@ Notes:
232
238
  - `--backend` is forwarded to `ralph.sh`
233
239
  - runs sequentially by default
234
240
  - `--parallel <n>` enables the experimental parallel wave runner
235
- - `--dashboard` is temporarily disabled
236
241
 
237
242
  Planning behavior:
238
243
 
239
244
  - if an epic has `planned: true`, the Team Lead is expected to read `plans/plan-EPIC-xxx.md` and follow it
240
245
  - if an epic is still unplanned, the Team Lead may still decide to spawn a planner during execution
241
246
 
247
+ ### `ralph-teams task <prompt>`
248
+
249
+ Runs an ad hoc task in the current repository without creating a PRD, epic, or story structure.
250
+
251
+ ```bash
252
+ ralph-teams task "fix the flaky auth test"
253
+ ralph-teams task "add rate limiting to login" --backend codex
254
+ ```
255
+
256
+ Behavior:
257
+
258
+ - requires a checked out git branch and runs on that same branch
259
+ - asks once whether you want to plan the task first
260
+ - if you choose planning, starts a guided planning session with the agent
261
+ - otherwise starts direct Team Lead execution for the task
262
+
263
+ Notes:
264
+
265
+ - this mode does not create `prd.json` entries or worktrees
266
+ - `--backend` controls whether the task uses `claude`, `copilot`, or `codex`
267
+
242
268
  ### `ralph-teams plan [path]`
243
269
 
244
270
  Starts a guided planning discussion for epics that are not yet marked as planned. Default path is `./prd.json`.
@@ -328,20 +354,6 @@ Resets one epic to `pending` and sets all of its stories back to `passes: false`
328
354
  ralph-teams reset EPIC-002
329
355
  ```
330
356
 
331
- ### `ralph-teams add-epic [path]`
332
-
333
- Interactively appends a new epic to an existing PRD.
334
-
335
- ```bash
336
- ralph-teams add-epic
337
- ```
338
-
339
- This command:
340
-
341
- - creates the next `EPIC-###` id
342
- - creates globally unique `US-###` ids across the PRD
343
- - lets you choose dependencies from existing epics
344
-
345
357
  ### `ralph-teams validate [path]`
346
358
 
347
359
  Validates PRD structure and dependency integrity.
@@ -375,17 +387,6 @@ Shows:
375
387
  - story pass counts
376
388
  - blocked epics
377
389
 
378
- ### `ralph-teams stats [path]`
379
-
380
- Shows the current stats feature status.
381
-
382
- ```bash
383
- ralph-teams stats
384
- ralph-teams stats ./ralph-run-stats.json
385
- ```
386
-
387
- This command is temporarily disabled while the telemetry model is being corrected.
388
-
389
390
  ## Backends
390
391
 
391
392
  ### Claude Backend
@@ -501,7 +502,6 @@ During a run, Ralph writes:
501
502
  - `results/result-EPIC-xxx.txt`: final pass/partial/fail result per epic
502
503
  - `logs/epic-EPIC-xxx-<timestamp>.log`: raw backend session log
503
504
  - `ralph-state.json`: saved interrupt/resume state
504
- - `ralph-run-stats.json`: token, cost, duration, and estimate data
505
505
  - `guidance/guidance-US-xxx.md`: retry guidance captured from discuss flows
506
506
 
507
507
  Ralph also updates the original `prd.json` in place as story and epic state changes.
package/dist/app.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Application-level error class with a numeric error code.
3
+ */
4
+ export declare class AppError extends Error {
5
+ code: number;
6
+ constructor(message: string, code: number);
7
+ }
8
+ /**
9
+ * Initializes the application. Any unhandled errors are caught and
10
+ * wrapped in an AppError before being logged.
11
+ */
12
+ export declare function init(): void;
13
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,EAAE,MAAM,CAAC;gBAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAO1C;AAED;;;GAGG;AACH,wBAAgB,IAAI,IAAI,IAAI,CAU3B"}
package/dist/app.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppError = void 0;
4
+ exports.init = init;
5
+ /**
6
+ * Application-level error class with a numeric error code.
7
+ */
8
+ class AppError extends Error {
9
+ constructor(message, code) {
10
+ super(message);
11
+ this.name = "AppError";
12
+ this.code = code;
13
+ // Restore prototype chain (required when extending built-ins in TypeScript)
14
+ Object.setPrototypeOf(this, new.target.prototype);
15
+ }
16
+ }
17
+ exports.AppError = AppError;
18
+ /**
19
+ * Initializes the application. Any unhandled errors are caught and
20
+ * wrapped in an AppError before being logged.
21
+ */
22
+ function init() {
23
+ try {
24
+ // Application initialization logic goes here
25
+ }
26
+ catch (err) {
27
+ const appError = new AppError(err instanceof Error ? err.message : String(err), 1);
28
+ console.error(appError);
29
+ }
30
+ }
31
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";;;AAmBA,oBAUC;AA7BD;;GAEG;AACH,MAAa,QAAS,SAAQ,KAAK;IAGjC,YAAY,OAAe,EAAE,IAAY;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,4EAA4E;QAC5E,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAVD,4BAUC;AAED;;;GAGG;AACH,SAAgB,IAAI;IAClB,IAAI,CAAC;QACH,6CAA6C;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAC3B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAChD,CAAC,CACF,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAevC,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACjC,YAAY,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC;IACrC,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACjC,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IAC/B,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;CAChC;AA8BD,wBAAgB,aAAa,CAAC,IAAI,GAAE,UAAwB,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAgH5F"}
1
+ {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAevC,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACjC,YAAY,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC;IACrC,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACjC,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IAC/B,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;CAChC;AA8BD,wBAAgB,aAAa,CAAC,IAAI,GAAE,UAAwB,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAiH5F"}
@@ -144,6 +144,7 @@ function resumeCommand(deps = defaultDeps, backendOverride) {
144
144
  // Pass config values to ralph.sh via environment variables
145
145
  const spawnEnv = {
146
146
  ...process.env,
147
+ RALPH_RESUME: '1',
147
148
  RALPH_EPIC_TIMEOUT: String(resolvedConfig.timeouts.epicTimeout),
148
149
  RALPH_IDLE_TIMEOUT: String(resolvedConfig.timeouts.idleTimeout),
149
150
  RALPH_VALIDATOR_MAX_PUSHBACKS: String(resolvedConfig.execution.validatorMaxPushbacks),
@@ -1 +1 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,20 @@
1
1
  import * as fs from 'fs';
2
- import { spawnSync, spawn } from 'child_process';
3
- import { loadConfig } from '../config';
2
+ import { spawnSync } from 'child_process';
3
+ import { loadConfig, loadExplicitAgentModelOverrides } from '../config';
4
4
  interface RunDeps {
5
5
  existsSync: typeof fs.existsSync;
6
6
  chmodSync: typeof fs.chmodSync;
7
+ unlinkSync: typeof fs.unlinkSync;
7
8
  spawnSync: typeof spawnSync;
8
- spawn: typeof spawn;
9
9
  exit: (code?: number) => never;
10
10
  cwd: () => string;
11
11
  /** Override for config loading — used in tests to inject a mock loader. */
12
12
  loadConfig?: typeof loadConfig;
13
+ loadExplicitAgentModelOverrides?: typeof loadExplicitAgentModelOverrides;
13
14
  }
14
15
  export declare function runCommand(prdPath: string, options: {
15
16
  backend?: string;
16
17
  parallel?: string;
17
- dashboard?: boolean;
18
18
  }, deps?: RunDeps): Promise<void>;
19
19
  export {};
20
20
  //# sourceMappingURL=run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAkC,MAAM,eAAe,CAAC;AAGjF,OAAO,EAAE,UAAU,EAAqB,MAAM,WAAW,CAAC;AAK1D,UAAU,OAAO;IACf,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACjC,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IAC/B,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;CAChC;AA+HD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,EACrE,IAAI,GAAE,OAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAwQf"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,+BAA+B,EAAqB,MAAM,WAAW,CAAC;AAE3F,UAAU,OAAO;IACf,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACjC,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC;IAC/B,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACjC,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IAC/B,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IAC/B,+BAA+B,CAAC,EAAE,OAAO,+BAA+B,CAAC;CAC1E;AA2CD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAChD,IAAI,GAAE,OAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAsIf"}