@kynetic-ai/spec 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -455
- package/dist/agent-runtime/bootstrap.d.ts +31 -0
- package/dist/agent-runtime/bootstrap.d.ts.map +1 -0
- package/dist/agent-runtime/bootstrap.js +302 -0
- package/dist/agent-runtime/bootstrap.js.map +1 -0
- package/dist/agent-runtime/dispatch.d.ts +119 -10
- package/dist/agent-runtime/dispatch.d.ts.map +1 -1
- package/dist/agent-runtime/dispatch.js +1154 -219
- package/dist/agent-runtime/dispatch.js.map +1 -1
- package/dist/agent-runtime/invocation.d.ts +28 -1
- package/dist/agent-runtime/invocation.d.ts.map +1 -1
- package/dist/agent-runtime/invocation.js +171 -59
- package/dist/agent-runtime/invocation.js.map +1 -1
- package/dist/agent-runtime/prompts.d.ts +9 -0
- package/dist/agent-runtime/prompts.d.ts.map +1 -1
- package/dist/agent-runtime/prompts.js +42 -7
- package/dist/agent-runtime/prompts.js.map +1 -1
- package/dist/agent-runtime/session-event-accumulator.d.ts +83 -0
- package/dist/agent-runtime/session-event-accumulator.d.ts.map +1 -0
- package/dist/agent-runtime/session-event-accumulator.js +203 -0
- package/dist/agent-runtime/session-event-accumulator.js.map +1 -0
- package/dist/agent-runtime/session-event-types.d.ts +67 -0
- package/dist/agent-runtime/session-event-types.d.ts.map +1 -0
- package/dist/agent-runtime/session-event-types.js +13 -0
- package/dist/agent-runtime/session-event-types.js.map +1 -0
- package/dist/agent-runtime/workspace.d.ts +244 -0
- package/dist/agent-runtime/workspace.d.ts.map +1 -0
- package/dist/agent-runtime/workspace.js +2025 -0
- package/dist/agent-runtime/workspace.js.map +1 -0
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/adapters.js +58 -13
- package/dist/agents/adapters.js.map +1 -1
- package/dist/agents/spawner.d.ts +8 -0
- package/dist/agents/spawner.d.ts.map +1 -1
- package/dist/agents/spawner.js +25 -3
- package/dist/agents/spawner.js.map +1 -1
- package/dist/cli/batch-exec.js +1 -1
- package/dist/cli/batch-exec.js.map +1 -1
- package/dist/cli/command-annotations.d.ts +15 -3
- package/dist/cli/command-annotations.d.ts.map +1 -1
- package/dist/cli/command-annotations.js +23 -3
- package/dist/cli/command-annotations.js.map +1 -1
- package/dist/cli/commands/agent.d.ts +2 -0
- package/dist/cli/commands/agent.d.ts.map +1 -1
- package/dist/cli/commands/agent.js +144 -27
- package/dist/cli/commands/agent.js.map +1 -1
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +5 -5
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +118 -3
- package/dist/cli/commands/derive.js.map +1 -1
- package/dist/cli/commands/guard.d.ts.map +1 -1
- package/dist/cli/commands/guard.js +8 -6
- package/dist/cli/commands/guard.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +20 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/item.d.ts.map +1 -1
- package/dist/cli/commands/item.js +205 -47
- package/dist/cli/commands/item.js.map +1 -1
- package/dist/cli/commands/log.d.ts.map +1 -1
- package/dist/cli/commands/log.js +24 -10
- package/dist/cli/commands/log.js.map +1 -1
- package/dist/cli/commands/plan-import.d.ts +3 -3
- package/dist/cli/commands/plan-import.d.ts.map +1 -1
- package/dist/cli/commands/plan-import.js +213 -528
- package/dist/cli/commands/plan-import.js.map +1 -1
- package/dist/cli/commands/plan.d.ts.map +1 -1
- package/dist/cli/commands/plan.js +533 -83
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/review.d.ts +14 -0
- package/dist/cli/commands/review.d.ts.map +1 -0
- package/dist/cli/commands/review.js +1142 -0
- package/dist/cli/commands/review.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +1 -0
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +33 -10
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/session/checkpoint.d.ts +2 -4
- package/dist/cli/commands/session/checkpoint.d.ts.map +1 -1
- package/dist/cli/commands/session/checkpoint.js +6 -107
- package/dist/cli/commands/session/checkpoint.js.map +1 -1
- package/dist/cli/commands/session/commands.d.ts.map +1 -1
- package/dist/cli/commands/session/commands.js +33 -23
- package/dist/cli/commands/session/commands.js.map +1 -1
- package/dist/cli/commands/session/compact.js +4 -4
- package/dist/cli/commands/session/compact.js.map +1 -1
- package/dist/cli/commands/session/create.js +2 -2
- package/dist/cli/commands/session/create.js.map +1 -1
- package/dist/cli/commands/session/format.d.ts.map +1 -1
- package/dist/cli/commands/session/format.js +1 -6
- package/dist/cli/commands/session/format.js.map +1 -1
- package/dist/cli/commands/session/log.d.ts +32 -7
- package/dist/cli/commands/session/log.d.ts.map +1 -1
- package/dist/cli/commands/session/log.js +166 -60
- package/dist/cli/commands/session/log.js.map +1 -1
- package/dist/cli/commands/session/migrate.d.ts +9 -0
- package/dist/cli/commands/session/migrate.d.ts.map +1 -0
- package/dist/cli/commands/session/migrate.js +46 -0
- package/dist/cli/commands/session/migrate.js.map +1 -0
- package/dist/cli/commands/session/stale-close.d.ts.map +1 -1
- package/dist/cli/commands/session/stale-close.js +5 -8
- package/dist/cli/commands/session/stale-close.js.map +1 -1
- package/dist/cli/commands/session/types.d.ts +1 -1
- package/dist/cli/commands/session/types.d.ts.map +1 -1
- package/dist/cli/commands/setup.d.ts +2 -2
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +287 -257
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/shadow.d.ts.map +1 -1
- package/dist/cli/commands/shadow.js +147 -31
- package/dist/cli/commands/shadow.js.map +1 -1
- package/dist/cli/commands/skill-crud.d.ts +7 -0
- package/dist/cli/commands/skill-crud.d.ts.map +1 -1
- package/dist/cli/commands/skill-crud.js +41 -18
- package/dist/cli/commands/skill-crud.js.map +1 -1
- package/dist/cli/commands/skill-diff.d.ts.map +1 -1
- package/dist/cli/commands/skill-diff.js +29 -3
- package/dist/cli/commands/skill-diff.js.map +1 -1
- package/dist/cli/commands/skill-install.d.ts.map +1 -1
- package/dist/cli/commands/skill-install.js +5 -4
- package/dist/cli/commands/skill-install.js.map +1 -1
- package/dist/cli/commands/task.d.ts.map +1 -1
- package/dist/cli/commands/task.js +359 -49
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/commands/trait.d.ts.map +1 -1
- package/dist/cli/commands/trait.js +5 -27
- package/dist/cli/commands/trait.js.map +1 -1
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +113 -52
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +69 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +26 -0
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +108 -1
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/sync-mode.d.ts +44 -0
- package/dist/cli/sync-mode.d.ts.map +1 -0
- package/dist/cli/sync-mode.js +64 -0
- package/dist/cli/sync-mode.js.map +1 -0
- package/dist/daemon/middleware/project-context.ts +25 -7
- package/dist/daemon/project-context.ts +18 -0
- package/dist/daemon/routes/agent-dispatch.ts +99 -22
- package/dist/daemon/routes/aggregation.ts +184 -0
- package/dist/daemon/routes/inbox.ts +5 -0
- package/dist/daemon/routes/items.ts +145 -0
- package/dist/daemon/routes/meta.ts +1 -1
- package/dist/daemon/routes/projects.ts +28 -6
- package/dist/daemon/routes/ref-resolution.ts +119 -0
- package/dist/daemon/routes/refs.ts +42 -0
- package/dist/daemon/routes/session-related.ts +140 -0
- package/dist/daemon/routes/sessions.ts +420 -19
- package/dist/daemon/routes/tasks.ts +62 -5
- package/dist/daemon/routes/triage.ts +40 -1
- package/dist/daemon/server.ts +143 -49
- package/dist/daemon/session-sync.ts +11 -0
- package/dist/daemon/shadow-sync.ts +11 -0
- package/dist/daemon/watcher.ts +56 -5
- package/dist/daemon/websocket/project-resolution.ts +77 -0
- package/dist/export/json.d.ts.map +1 -1
- package/dist/export/json.js +104 -1
- package/dist/export/json.js.map +1 -1
- package/dist/export/types.d.ts +52 -1
- package/dist/export/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/parser/agent-detection.d.ts +1 -1
- package/dist/parser/agent-detection.d.ts.map +1 -1
- package/dist/parser/agent-detection.js +10 -0
- package/dist/parser/agent-detection.js.map +1 -1
- package/dist/parser/config.d.ts +397 -2
- package/dist/parser/config.d.ts.map +1 -1
- package/dist/parser/config.js +125 -3
- package/dist/parser/config.js.map +1 -1
- package/dist/parser/dispatch-workspaces.d.ts +18 -0
- package/dist/parser/dispatch-workspaces.d.ts.map +1 -0
- package/dist/parser/dispatch-workspaces.js +209 -0
- package/dist/parser/dispatch-workspaces.js.map +1 -0
- package/dist/parser/doctor.d.ts.map +1 -1
- package/dist/parser/doctor.js +27 -8
- package/dist/parser/doctor.js.map +1 -1
- package/dist/parser/file-lock.d.ts.map +1 -1
- package/dist/parser/file-lock.js +9 -2
- package/dist/parser/file-lock.js.map +1 -1
- package/dist/parser/index.d.ts +6 -0
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +6 -0
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/plans.d.ts.map +1 -1
- package/dist/parser/plans.js +1 -0
- package/dist/parser/plans.js.map +1 -1
- package/dist/parser/refs.d.ts +8 -1
- package/dist/parser/refs.d.ts.map +1 -1
- package/dist/parser/refs.js +27 -1
- package/dist/parser/refs.js.map +1 -1
- package/dist/parser/review-operations.d.ts +72 -0
- package/dist/parser/review-operations.d.ts.map +1 -0
- package/dist/parser/review-operations.js +185 -0
- package/dist/parser/review-operations.js.map +1 -0
- package/dist/parser/review-task-integration.d.ts +78 -0
- package/dist/parser/review-task-integration.d.ts.map +1 -0
- package/dist/parser/review-task-integration.js +173 -0
- package/dist/parser/review-task-integration.js.map +1 -0
- package/dist/parser/review-threads.d.ts +101 -0
- package/dist/parser/review-threads.d.ts.map +1 -0
- package/dist/parser/review-threads.js +222 -0
- package/dist/parser/review-threads.js.map +1 -0
- package/dist/parser/review-validation.d.ts +69 -0
- package/dist/parser/review-validation.d.ts.map +1 -0
- package/dist/parser/review-validation.js +207 -0
- package/dist/parser/review-validation.js.map +1 -0
- package/dist/parser/reviews.d.ts +58 -0
- package/dist/parser/reviews.d.ts.map +1 -0
- package/dist/parser/reviews.js +230 -0
- package/dist/parser/reviews.js.map +1 -0
- package/dist/parser/session-branch.d.ts +91 -0
- package/dist/parser/session-branch.d.ts.map +1 -0
- package/dist/parser/session-branch.js +565 -0
- package/dist/parser/session-branch.js.map +1 -0
- package/dist/parser/session-sync-scheduler.d.ts +53 -0
- package/dist/parser/session-sync-scheduler.d.ts.map +1 -0
- package/dist/parser/session-sync-scheduler.js +100 -0
- package/dist/parser/session-sync-scheduler.js.map +1 -0
- package/dist/parser/setup-status.d.ts +7 -1
- package/dist/parser/setup-status.d.ts.map +1 -1
- package/dist/parser/setup-status.js +104 -39
- package/dist/parser/setup-status.js.map +1 -1
- package/dist/parser/shadow-sync-scheduler.d.ts +71 -0
- package/dist/parser/shadow-sync-scheduler.d.ts.map +1 -0
- package/dist/parser/shadow-sync-scheduler.js +139 -0
- package/dist/parser/shadow-sync-scheduler.js.map +1 -0
- package/dist/parser/shadow.d.ts +121 -14
- package/dist/parser/shadow.d.ts.map +1 -1
- package/dist/parser/shadow.js +752 -27
- package/dist/parser/shadow.js.map +1 -1
- package/dist/parser/skill-render.d.ts +24 -0
- package/dist/parser/skill-render.d.ts.map +1 -1
- package/dist/parser/skill-render.js +98 -26
- package/dist/parser/skill-render.js.map +1 -1
- package/dist/parser/validate.d.ts +43 -3
- package/dist/parser/validate.d.ts.map +1 -1
- package/dist/parser/validate.js +204 -30
- package/dist/parser/validate.js.map +1 -1
- package/dist/parser/yaml.d.ts +47 -11
- package/dist/parser/yaml.d.ts.map +1 -1
- package/dist/parser/yaml.js +329 -149
- package/dist/parser/yaml.js.map +1 -1
- package/dist/review/checks.d.ts +97 -0
- package/dist/review/checks.d.ts.map +1 -0
- package/dist/review/checks.js +175 -0
- package/dist/review/checks.js.map +1 -0
- package/dist/review/index.d.ts +3 -0
- package/dist/review/index.d.ts.map +1 -0
- package/dist/review/index.js +3 -0
- package/dist/review/index.js.map +1 -0
- package/dist/review/subject-bindings.d.ts +83 -0
- package/dist/review/subject-bindings.d.ts.map +1 -0
- package/dist/review/subject-bindings.js +175 -0
- package/dist/review/subject-bindings.js.map +1 -0
- package/dist/schema/common.d.ts +26 -0
- package/dist/schema/common.d.ts.map +1 -1
- package/dist/schema/common.js +13 -0
- package/dist/schema/common.js.map +1 -1
- package/dist/schema/dispatch-workspace.d.ts +2643 -0
- package/dist/schema/dispatch-workspace.d.ts.map +1 -0
- package/dist/schema/dispatch-workspace.js +187 -0
- package/dist/schema/dispatch-workspace.js.map +1 -0
- package/dist/schema/inbox.d.ts +8 -8
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +2 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/meta.d.ts +648 -116
- package/dist/schema/meta.d.ts.map +1 -1
- package/dist/schema/meta.js +27 -0
- package/dist/schema/meta.js.map +1 -1
- package/dist/schema/plan.d.ts +30 -19
- package/dist/schema/plan.d.ts.map +1 -1
- package/dist/schema/plan.js +3 -1
- package/dist/schema/plan.js.map +1 -1
- package/dist/schema/review-records.d.ts +2676 -0
- package/dist/schema/review-records.d.ts.map +1 -0
- package/dist/schema/review-records.js +232 -0
- package/dist/schema/review-records.js.map +1 -0
- package/dist/schema/spec.d.ts +32 -14
- package/dist/schema/spec.d.ts.map +1 -1
- package/dist/schema/spec.js +5 -0
- package/dist/schema/spec.js.map +1 -1
- package/dist/schema/task.d.ts +187 -29
- package/dist/schema/task.d.ts.map +1 -1
- package/dist/schema/task.js +12 -2
- package/dist/schema/task.js.map +1 -1
- package/dist/schema/triage.d.ts +22 -22
- package/dist/sessions/cache.d.ts +119 -0
- package/dist/sessions/cache.d.ts.map +1 -0
- package/dist/sessions/cache.js +284 -0
- package/dist/sessions/cache.js.map +1 -0
- package/dist/sessions/index.d.ts +1 -0
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +2 -0
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/legacy.d.ts +77 -0
- package/dist/sessions/legacy.d.ts.map +1 -0
- package/dist/sessions/legacy.js +146 -0
- package/dist/sessions/legacy.js.map +1 -0
- package/dist/sessions/store.d.ts +103 -73
- package/dist/sessions/store.d.ts.map +1 -1
- package/dist/sessions/store.js +335 -186
- package/dist/sessions/store.js.map +1 -1
- package/dist/sessions/types.d.ts +44 -16
- package/dist/sessions/types.d.ts.map +1 -1
- package/dist/sessions/types.js +11 -2
- package/dist/sessions/types.js.map +1 -1
- package/dist/strings/errors.d.ts +32 -0
- package/dist/strings/errors.d.ts.map +1 -1
- package/dist/strings/errors.js +17 -0
- package/dist/strings/errors.js.map +1 -1
- package/dist/strings/labels.d.ts +1 -0
- package/dist/strings/labels.d.ts.map +1 -1
- package/dist/strings/labels.js +1 -0
- package/dist/strings/labels.js.map +1 -1
- package/dist/utils/activity.d.ts +101 -0
- package/dist/utils/activity.d.ts.map +1 -0
- package/dist/utils/activity.js +408 -0
- package/dist/utils/activity.js.map +1 -0
- package/dist/utils/git.d.ts +31 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +87 -0
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/web-ui/_app/immutable/assets/0.tmlwn-Ih.css +1 -0
- package/dist/web-ui/_app/immutable/assets/9.BwwJybWx.css +1 -0
- package/dist/web-ui/_app/immutable/chunks/2KqE8gtn.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/70-t_QvE.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/AiWQj974.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{CPPfDSei.js → B25nWFyA.js} +4 -4
- package/dist/web-ui/_app/immutable/chunks/{DBYE9jOd.js → B2bcA_Q_.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/B5e5HYyB.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/B7-5z6eA.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/B7bGmhK0.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{DzO4hlg9.js → B8tYZKAE.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/{B5LJFxqa.js → BFGAyJjD.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/BG0850zf.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{DAMmvwn4.js → BG8eSzAd.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/BIMxXS8I.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BSzL1fpU.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BYtjHfeq.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{DxCk-KHc.js → Bp5pFYXL.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/{B8a0xDxR.js → BsJFsuAT.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/BvpNHcD6.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BypqA25-.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{BVA9Exy-.js → C0w6WDm5.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/C5_PAZ0y.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CDRO15Iv.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CF1CoqD5.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CS2sa4_m.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{BJ0JX3ea.js → CWUQwB9H.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/CY5FDdSU.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/C_7MTDoj.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{D3vxvonu.js → CaAJD3dl.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/{BP352uRn.js → ChB5iyEL.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/{pE6cYWlS.js → ChQD-6N8.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/{Eo4gF7ih.js → CqbsoCwA.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/DCeJW50p.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{Cncwi6fQ.js → DJtZNgcs.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/DKIeaprD.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DLd2uVIA.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{DjcCz-PU.js → DW_subyT.js} +2 -2
- package/dist/web-ui/_app/immutable/chunks/DbU6lVn0.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/Dc7ZCC5m.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/Dd5umPsk.js +2 -0
- package/dist/web-ui/_app/immutable/chunks/{BysXJlZb.js → Dg_zDpDS.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/Dgqu8Yuc.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DmxsPZTB.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DphTaFUB.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DqK4iHp0.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{D9QNBZM2.js → DqT6OH_u.js} +2 -2
- package/dist/web-ui/_app/immutable/chunks/Ds9I9wQb.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/Du5ng3u4.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DxJw79Wi.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/GFTX8GgV.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{C076q4JN.js → HNjs76Zz.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/HVMjDi4_.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{BkOJ8DkV.js → P0A_fJvS.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/T3vGWjIL.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/VTmrX9Qu.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{k_Qegko0.js → Xvwhx_F1.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/Yyz1XMQA.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{62JVKtnb.js → dh5HeqUr.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/fZMteyca.js +62 -0
- package/dist/web-ui/_app/immutable/chunks/{D82RulSH.js → gPrj-hqC.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/htcWMiYN.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{CwELQvbx.js → oTsvd9y4.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/qJfLUwU4.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/xCtiO_JE.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{DvA-KON-.js → y4GeEH6k.js} +1 -1
- package/dist/web-ui/_app/immutable/entry/app.C4h_eOn6.js +2 -0
- package/dist/web-ui/_app/immutable/entry/start.CQFTf9ep.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/0.Dh1xO970.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/1.l75D3Opx.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/10.DBidBPc-.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/11.Ab0gUKWe.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/12.CMsnoxfs.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/13.D8YKuknB.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/14.DZ0aan7y.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/15.CUIKreDL.js +2 -0
- package/dist/web-ui/_app/immutable/nodes/16.BWc8--BO.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/2.CDUonbuh.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/3.Ctg3M00i.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/4.Ci-JDwbA.js +2 -0
- package/dist/web-ui/_app/immutable/nodes/5.CTyEDAq0.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/6.BTZZqsAb.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/7.BI52g_Jo.js +137 -0
- package/dist/web-ui/_app/immutable/nodes/8.3hZPaB9x.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/9.DS49kvwl.js +29 -0
- package/dist/web-ui/_app/version.json +1 -1
- package/dist/web-ui/favicon-192.png +0 -0
- package/dist/web-ui/favicon-32.png +0 -0
- package/dist/web-ui/favicon.ico +0 -0
- package/dist/web-ui/index.html +14 -14
- package/package.json +12 -6
- package/plugin/.claude-plugin/marketplace.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/plugins/kspec/skills/merge/SKILL.md +127 -0
- package/plugin/plugins/kspec/skills/plan/SKILL.md +55 -26
- package/plugin/plugins/kspec/skills/review/SKILL.md +350 -133
- package/plugin/plugins/kspec/skills/task-work/SKILL.md +96 -106
- package/templates/agents-sections/04-pr-workflow.md +15 -12
- package/templates/agents-sections/06-ralph-loop.md +15 -10
- package/templates/skills/manifest.yaml +25 -7
- package/templates/skills/merge/SKILL.md +120 -0
- package/templates/skills/plan/SKILL.md +55 -26
- package/templates/skills/review/SKILL.md +346 -130
- package/templates/skills/task-work/SKILL.md +93 -103
- package/dist/web-ui/_app/immutable/assets/0.BJaYkGW2.css +0 -1
- package/dist/web-ui/_app/immutable/assets/9.SzGLxi4x.css +0 -1
- package/dist/web-ui/_app/immutable/chunks/-lc0BifF.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/8RBjHMN1.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/B5wTVqxm.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/B6VSmczZ.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BEOQc37C.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BHtYorjv.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BMuCqDX8.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BUZujXJ2.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BWET-efb.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BXkNecpt.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BYzrIfX8.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BpuwufMc.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BwMO4RrG.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/C33JaVbg.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/CGtqifKp.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/CHDZZ7OG.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/CUir3f4J.js +0 -60
- package/dist/web-ui/_app/immutable/chunks/CrCIbn0C.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/D6TVmR9T.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/D7LTux4W.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DAh4Wfku.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DAx07bEQ.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DOno4cA2.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DQA8NZIH.js +0 -2
- package/dist/web-ui/_app/immutable/chunks/DRfPm2bo.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DhQhksaB.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DjG7s6hm.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DkltRNvh.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DlaTnPKL.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/ExCq5swK.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/T3zZGv51.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/XZumBYeP.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/_ySfNjkF.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/iEtR5cV6.js +0 -1
- package/dist/web-ui/_app/immutable/entry/app.Cgu6uKeS.js +0 -2
- package/dist/web-ui/_app/immutable/entry/start.9XifnLoB.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/0.DISwcKSK.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/1.Cx2Ufqp1.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/10.C3z8ijXL.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/11.DZdIjZmM.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/12.FsIGfAOa.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/13.DZoFwagf.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/14.DaIzDKbQ.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/15.BYyt4XWF.js +0 -2
- package/dist/web-ui/_app/immutable/nodes/16.CQkSqpOe.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/2.Bkf_j2UJ.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/3.kaMCurJG.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/4.BSsFPTHG.js +0 -2
- package/dist/web-ui/_app/immutable/nodes/5.CpPlcCEZ.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/6.BN4FqQmY.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/7.9kBYIZik.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/8.BuijtZ6B.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/9.C-Weba8R.js +0 -1
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { loadProjectConfig } from "../parser/config.js";
|
|
4
|
+
import { normalizeDispatchBootstrapState, persistDispatchWorkspaceMetadata, } from "./workspace.js";
|
|
5
|
+
export class DispatchBootstrapError extends Error {
|
|
6
|
+
suggestion;
|
|
7
|
+
constructor(message, suggestion) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = "DispatchBootstrapError";
|
|
10
|
+
this.suggestion = suggestion;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function runShell(cwd, command, env) {
|
|
14
|
+
const result = spawnSync("bash", ["-lc", command], {
|
|
15
|
+
cwd,
|
|
16
|
+
env: {
|
|
17
|
+
...process.env,
|
|
18
|
+
...env,
|
|
19
|
+
},
|
|
20
|
+
encoding: "utf-8",
|
|
21
|
+
stdio: "pipe",
|
|
22
|
+
});
|
|
23
|
+
return {
|
|
24
|
+
status: result.status,
|
|
25
|
+
stdout: result.stdout ?? "",
|
|
26
|
+
stderr: result.stderr ?? "",
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function trackedStatus(cwd) {
|
|
30
|
+
const result = spawnSync("git", ["status", "--porcelain", "--untracked-files=no"], {
|
|
31
|
+
cwd,
|
|
32
|
+
encoding: "utf-8",
|
|
33
|
+
stdio: "pipe",
|
|
34
|
+
});
|
|
35
|
+
return result.status === 0 ? (result.stdout ?? "").trim() : "";
|
|
36
|
+
}
|
|
37
|
+
function summarizeOutput(stdout, stderr) {
|
|
38
|
+
const combined = [stdout.trim(), stderr.trim()].filter(Boolean).join("\n");
|
|
39
|
+
if (!combined)
|
|
40
|
+
return null;
|
|
41
|
+
return combined.slice(0, 4000);
|
|
42
|
+
}
|
|
43
|
+
function hashConfig(steps) {
|
|
44
|
+
return createHash("sha256")
|
|
45
|
+
.update(JSON.stringify(steps.map((step) => ({
|
|
46
|
+
source: step.source,
|
|
47
|
+
name: step.name,
|
|
48
|
+
run: step.run,
|
|
49
|
+
roles: step.roles ?? null,
|
|
50
|
+
idempotent: step.idempotent,
|
|
51
|
+
allowTrackedChanges: step.allowTrackedChanges,
|
|
52
|
+
reviewerRerunAllowed: step.reviewerRerunAllowed,
|
|
53
|
+
}))))
|
|
54
|
+
.digest("hex");
|
|
55
|
+
}
|
|
56
|
+
function resolveBootstrapSteps(agent, dispatchSteps) {
|
|
57
|
+
const projectSteps = dispatchSteps.map((step, index) => ({
|
|
58
|
+
source: "dispatch",
|
|
59
|
+
name: step.name ?? `dispatch-step-${index + 1}`,
|
|
60
|
+
run: step.run,
|
|
61
|
+
...(step.roles ? { roles: step.roles } : {}),
|
|
62
|
+
idempotent: step.idempotent,
|
|
63
|
+
allowTrackedChanges: step.allow_tracked_changes,
|
|
64
|
+
reviewerRerunAllowed: step.reviewer_rerun_allowed,
|
|
65
|
+
}));
|
|
66
|
+
const agentSteps = (agent.bootstrap?.steps ?? []).map((step, index) => ({
|
|
67
|
+
source: "agent",
|
|
68
|
+
name: step.name ?? `agent-step-${index + 1}`,
|
|
69
|
+
run: step.run,
|
|
70
|
+
...(step.roles ? { roles: step.roles } : {}),
|
|
71
|
+
idempotent: step.idempotent ?? false,
|
|
72
|
+
allowTrackedChanges: step.allow_tracked_changes ?? false,
|
|
73
|
+
reviewerRerunAllowed: step.reviewer_rerun_allowed ?? false,
|
|
74
|
+
}));
|
|
75
|
+
return [...projectSteps, ...agentSteps];
|
|
76
|
+
}
|
|
77
|
+
function stepAppliesToRole(step, role) {
|
|
78
|
+
return !step.roles || step.roles.includes(role);
|
|
79
|
+
}
|
|
80
|
+
function computeInvalidationReasons(state, canonicalBranchHead, configHash) {
|
|
81
|
+
const reasons = [];
|
|
82
|
+
if (state.status === "failed") {
|
|
83
|
+
reasons.push("prior-bootstrap-failed");
|
|
84
|
+
}
|
|
85
|
+
if (state.configHash && state.configHash !== configHash) {
|
|
86
|
+
reasons.push("bootstrap-config-changed");
|
|
87
|
+
}
|
|
88
|
+
if (state.canonicalBranchHead && state.canonicalBranchHead !== canonicalBranchHead) {
|
|
89
|
+
reasons.push("canonical-branch-head-changed");
|
|
90
|
+
}
|
|
91
|
+
return reasons;
|
|
92
|
+
}
|
|
93
|
+
async function persistMetadata(projectDir, metadataPath, metadata) {
|
|
94
|
+
await persistDispatchWorkspaceMetadata(projectDir, metadata);
|
|
95
|
+
}
|
|
96
|
+
function describeTrackedChangeFailure(step) {
|
|
97
|
+
return [
|
|
98
|
+
`Bootstrap step "${step.name}" modified tracked files but allow_tracked_changes is false.`,
|
|
99
|
+
"Mark the step with allow_tracked_changes: true only if tracked source mutations are intentional.",
|
|
100
|
+
].join(" ");
|
|
101
|
+
}
|
|
102
|
+
function updateBootstrapState(metadata, role, state) {
|
|
103
|
+
metadata.bootstrap = {
|
|
104
|
+
...state,
|
|
105
|
+
lastRole: role,
|
|
106
|
+
roleStates: {
|
|
107
|
+
...metadata.bootstrap.roleStates,
|
|
108
|
+
[role]: state,
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
metadata.bootstrapState = metadata.bootstrap;
|
|
112
|
+
}
|
|
113
|
+
export async function ensureWorkspaceBootstrap(options) {
|
|
114
|
+
const { projectDir, workspaceDir, metadataPath, role, agent, env, } = options;
|
|
115
|
+
const { config } = await loadProjectConfig(projectDir, projectDir);
|
|
116
|
+
const steps = resolveBootstrapSteps(agent, config.dispatch.bootstrap.steps);
|
|
117
|
+
const roleSteps = steps.filter((step) => stepAppliesToRole(step, role));
|
|
118
|
+
const configHash = hashConfig(steps);
|
|
119
|
+
const metadata = structuredClone(options.metadata);
|
|
120
|
+
metadata.bootstrap = normalizeDispatchBootstrapState(metadata.bootstrap);
|
|
121
|
+
metadata.bootstrapState = metadata.bootstrap;
|
|
122
|
+
const workerState = metadata.bootstrap.roleStates.worker;
|
|
123
|
+
const reviewerState = metadata.bootstrap.roleStates.reviewer;
|
|
124
|
+
const workerInvalidationReasons = computeInvalidationReasons(workerState, metadata.canonicalBranchHead, configHash);
|
|
125
|
+
const reviewerInvalidationReasons = computeInvalidationReasons(reviewerState, metadata.canonicalBranchHead, configHash);
|
|
126
|
+
const workerBootstrapSucceeded = workerState.status === "succeeded" &&
|
|
127
|
+
workerInvalidationReasons.length === 0;
|
|
128
|
+
const reviewerBootstrapSucceeded = reviewerState.status === "succeeded" &&
|
|
129
|
+
reviewerInvalidationReasons.length === 0;
|
|
130
|
+
const canReuseWorkerStateForReviewer = role === "reviewer" &&
|
|
131
|
+
roleSteps.length === 0 &&
|
|
132
|
+
workerBootstrapSucceeded;
|
|
133
|
+
const invalidationReasons = role === "reviewer" && !reviewerBootstrapSucceeded && canReuseWorkerStateForReviewer
|
|
134
|
+
? workerInvalidationReasons
|
|
135
|
+
: role === "reviewer"
|
|
136
|
+
? reviewerInvalidationReasons
|
|
137
|
+
: workerInvalidationReasons;
|
|
138
|
+
const bootstrapSucceeded = role === "worker" ? workerBootstrapSucceeded : reviewerBootstrapSucceeded;
|
|
139
|
+
if (bootstrapSucceeded) {
|
|
140
|
+
const state = role === "worker"
|
|
141
|
+
? {
|
|
142
|
+
...workerState,
|
|
143
|
+
invalidationReasons: [],
|
|
144
|
+
failureMessage: null,
|
|
145
|
+
}
|
|
146
|
+
: {
|
|
147
|
+
...reviewerState,
|
|
148
|
+
invalidationReasons: [],
|
|
149
|
+
failureMessage: null,
|
|
150
|
+
};
|
|
151
|
+
updateBootstrapState(metadata, role, state);
|
|
152
|
+
metadata.healthStatus = "healthy";
|
|
153
|
+
metadata.healthReason = null;
|
|
154
|
+
metadata.updatedAt = new Date().toISOString();
|
|
155
|
+
await persistMetadata(projectDir, metadataPath, metadata);
|
|
156
|
+
return { metadata, reused: true, ranSteps: false };
|
|
157
|
+
}
|
|
158
|
+
if (canReuseWorkerStateForReviewer) {
|
|
159
|
+
const reusedReviewerState = {
|
|
160
|
+
status: "succeeded",
|
|
161
|
+
configHash,
|
|
162
|
+
canonicalBranchHead: metadata.canonicalBranchHead,
|
|
163
|
+
lastRunAt: new Date().toISOString(),
|
|
164
|
+
invalidationReasons: [],
|
|
165
|
+
steps: [],
|
|
166
|
+
failureMessage: null,
|
|
167
|
+
};
|
|
168
|
+
updateBootstrapState(metadata, role, reusedReviewerState);
|
|
169
|
+
metadata.healthStatus = "healthy";
|
|
170
|
+
metadata.healthReason = null;
|
|
171
|
+
metadata.updatedAt = new Date().toISOString();
|
|
172
|
+
await persistMetadata(projectDir, metadataPath, metadata);
|
|
173
|
+
return { metadata, reused: true, ranSteps: false };
|
|
174
|
+
}
|
|
175
|
+
const rerunnableSteps = role === "reviewer"
|
|
176
|
+
? roleSteps.filter((step) => step.idempotent || step.reviewerRerunAllowed)
|
|
177
|
+
: roleSteps;
|
|
178
|
+
if (role === "reviewer" && !bootstrapSucceeded && rerunnableSteps.length !== roleSteps.length) {
|
|
179
|
+
const blockedSteps = roleSteps
|
|
180
|
+
.filter((step) => !rerunnableSteps.includes(step))
|
|
181
|
+
.map((step) => step.name)
|
|
182
|
+
.join(", ");
|
|
183
|
+
updateBootstrapState(metadata, role, {
|
|
184
|
+
status: "failed",
|
|
185
|
+
configHash,
|
|
186
|
+
canonicalBranchHead: metadata.canonicalBranchHead,
|
|
187
|
+
lastRunAt: new Date().toISOString(),
|
|
188
|
+
invalidationReasons,
|
|
189
|
+
steps: [],
|
|
190
|
+
failureMessage: `Reviewer bootstrap cannot safely rerun non-idempotent steps: ${blockedSteps}`,
|
|
191
|
+
});
|
|
192
|
+
metadata.healthStatus = "unhealthy";
|
|
193
|
+
metadata.healthReason = metadata.bootstrap.failureMessage ?? null;
|
|
194
|
+
metadata.updatedAt = new Date().toISOString();
|
|
195
|
+
await persistMetadata(projectDir, metadataPath, metadata);
|
|
196
|
+
const failureMessage = metadata.bootstrap.failureMessage ?? "Reviewer bootstrap rerun was rejected.";
|
|
197
|
+
throw new DispatchBootstrapError(failureMessage, "Run or repair bootstrap from the worker workspace, or mark the affected reviewer-safe steps as idempotent/reviewer_rerun_allowed.");
|
|
198
|
+
}
|
|
199
|
+
const executedSteps = [];
|
|
200
|
+
for (const step of rerunnableSteps) {
|
|
201
|
+
const beforeStatus = trackedStatus(workspaceDir);
|
|
202
|
+
const result = runShell(workspaceDir, step.run, {
|
|
203
|
+
...env,
|
|
204
|
+
KSPEC_DISPATCH_BOOTSTRAP_ROLE: role,
|
|
205
|
+
KSPEC_DISPATCH_BOOTSTRAP_SOURCE: step.source,
|
|
206
|
+
KSPEC_DISPATCH_BOOTSTRAP_STEP: step.name,
|
|
207
|
+
});
|
|
208
|
+
const afterStatus = trackedStatus(workspaceDir);
|
|
209
|
+
const output = summarizeOutput(result.stdout, result.stderr);
|
|
210
|
+
if (result.status !== 0) {
|
|
211
|
+
const failureMessage = `Bootstrap step "${step.name}" failed with exit code ${result.status ?? "unknown"}.`;
|
|
212
|
+
updateBootstrapState(metadata, role, {
|
|
213
|
+
status: "failed",
|
|
214
|
+
configHash,
|
|
215
|
+
canonicalBranchHead: metadata.canonicalBranchHead,
|
|
216
|
+
lastRunAt: new Date().toISOString(),
|
|
217
|
+
invalidationReasons,
|
|
218
|
+
steps: [
|
|
219
|
+
...executedSteps,
|
|
220
|
+
{
|
|
221
|
+
source: step.source,
|
|
222
|
+
name: step.name,
|
|
223
|
+
run: step.run,
|
|
224
|
+
idempotent: step.idempotent,
|
|
225
|
+
allowTrackedChanges: step.allowTrackedChanges,
|
|
226
|
+
reviewerRerunAllowed: step.reviewerRerunAllowed,
|
|
227
|
+
status: "failed",
|
|
228
|
+
role,
|
|
229
|
+
output,
|
|
230
|
+
},
|
|
231
|
+
],
|
|
232
|
+
failureMessage: `${failureMessage}${output ? ` Output: ${output}` : ""}`,
|
|
233
|
+
});
|
|
234
|
+
metadata.healthStatus = "unhealthy";
|
|
235
|
+
metadata.healthReason = failureMessage;
|
|
236
|
+
metadata.updatedAt = new Date().toISOString();
|
|
237
|
+
await persistMetadata(projectDir, metadataPath, metadata);
|
|
238
|
+
const failureMessageWithOutput = metadata.bootstrap.failureMessage ?? failureMessage;
|
|
239
|
+
throw new DispatchBootstrapError(failureMessageWithOutput, "Inspect the failing bootstrap command, dependency prerequisites, and workspace health before retrying dispatch.");
|
|
240
|
+
}
|
|
241
|
+
if (!step.allowTrackedChanges && beforeStatus !== afterStatus) {
|
|
242
|
+
const failureMessage = describeTrackedChangeFailure(step);
|
|
243
|
+
updateBootstrapState(metadata, role, {
|
|
244
|
+
status: "failed",
|
|
245
|
+
configHash,
|
|
246
|
+
canonicalBranchHead: metadata.canonicalBranchHead,
|
|
247
|
+
lastRunAt: new Date().toISOString(),
|
|
248
|
+
invalidationReasons,
|
|
249
|
+
steps: [
|
|
250
|
+
...executedSteps,
|
|
251
|
+
{
|
|
252
|
+
source: step.source,
|
|
253
|
+
name: step.name,
|
|
254
|
+
run: step.run,
|
|
255
|
+
idempotent: step.idempotent,
|
|
256
|
+
allowTrackedChanges: step.allowTrackedChanges,
|
|
257
|
+
reviewerRerunAllowed: step.reviewerRerunAllowed,
|
|
258
|
+
status: "failed",
|
|
259
|
+
role,
|
|
260
|
+
output: summarizeOutput(output ?? "", `Tracked status before:\n${beforeStatus}\nTracked status after:\n${afterStatus}`),
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
failureMessage,
|
|
264
|
+
});
|
|
265
|
+
metadata.healthStatus = "unhealthy";
|
|
266
|
+
metadata.healthReason = failureMessage;
|
|
267
|
+
metadata.updatedAt = new Date().toISOString();
|
|
268
|
+
await persistMetadata(projectDir, metadataPath, metadata);
|
|
269
|
+
throw new DispatchBootstrapError(failureMessage, "Update bootstrap configuration to opt in to tracked changes explicitly, or make the bootstrap step avoid tracked source mutations.");
|
|
270
|
+
}
|
|
271
|
+
executedSteps.push({
|
|
272
|
+
source: step.source,
|
|
273
|
+
name: step.name,
|
|
274
|
+
run: step.run,
|
|
275
|
+
idempotent: step.idempotent,
|
|
276
|
+
allowTrackedChanges: step.allowTrackedChanges,
|
|
277
|
+
reviewerRerunAllowed: step.reviewerRerunAllowed,
|
|
278
|
+
status: "succeeded",
|
|
279
|
+
role,
|
|
280
|
+
output,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
updateBootstrapState(metadata, role, {
|
|
284
|
+
status: "succeeded",
|
|
285
|
+
configHash,
|
|
286
|
+
canonicalBranchHead: metadata.canonicalBranchHead,
|
|
287
|
+
lastRunAt: new Date().toISOString(),
|
|
288
|
+
invalidationReasons,
|
|
289
|
+
steps: executedSteps,
|
|
290
|
+
failureMessage: null,
|
|
291
|
+
});
|
|
292
|
+
metadata.healthStatus = "healthy";
|
|
293
|
+
metadata.healthReason = null;
|
|
294
|
+
metadata.updatedAt = new Date().toISOString();
|
|
295
|
+
await persistMetadata(projectDir, metadataPath, metadata);
|
|
296
|
+
return {
|
|
297
|
+
metadata,
|
|
298
|
+
reused: false,
|
|
299
|
+
ranSteps: rerunnableSteps.length > 0,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/agent-runtime/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,9 @@
|
|
|
10
10
|
* AC: @agent-dispatch-engine ac-1 through ac-12
|
|
11
11
|
*/
|
|
12
12
|
import { type LoadedTask } from "../parser/index.js";
|
|
13
|
+
import type { SessionEventData } from "./session-event-types.js";
|
|
14
|
+
import { interpolateTemplate } from "./prompts.js";
|
|
15
|
+
import { type DispatchWorkspaceMetadata, type DispatchWorkspaceRole, type ProvisionedDispatchWorkspace } from "./workspace.js";
|
|
13
16
|
/**
|
|
14
17
|
* A minimal promise-based mutex for serializing async operations.
|
|
15
18
|
* AC: @agent-dispatch-engine ac-12
|
|
@@ -25,20 +28,53 @@ declare class Mutex {
|
|
|
25
28
|
* Task state as used for dispatch tracking.
|
|
26
29
|
*/
|
|
27
30
|
export type TaskStatus = "pending" | "in_progress" | "pending_review" | "needs_work" | "blocked" | "completed" | "cancelled";
|
|
31
|
+
export { interpolateTemplate };
|
|
28
32
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
33
|
+
* Find the examined commit from the most recent closed review for a task.
|
|
34
|
+
* Returns null when no prior examined commit exists.
|
|
31
35
|
*
|
|
32
|
-
* AC: @
|
|
36
|
+
* AC: @review-fix-cycle-diff ac-2 — find prior review's examined commit
|
|
33
37
|
*/
|
|
34
|
-
export declare function
|
|
38
|
+
export declare function findPriorExaminedCommit(reviews: Array<{
|
|
39
|
+
lifecycle_state: string;
|
|
40
|
+
examined_commit: string | null;
|
|
41
|
+
subject: {
|
|
42
|
+
type: string;
|
|
43
|
+
ref?: string;
|
|
44
|
+
};
|
|
45
|
+
related_refs: string[];
|
|
46
|
+
created_at: string | null;
|
|
47
|
+
}>, taskRef: string): string | null;
|
|
48
|
+
/**
|
|
49
|
+
* Compute a git diff --stat between two commits. Returns null on any error.
|
|
50
|
+
*
|
|
51
|
+
* AC: @review-fix-cycle-diff ac-3 — graceful omission on unreachable commits
|
|
52
|
+
*/
|
|
53
|
+
export declare function computeDiffStat(fromCommit: string, toCommit: string, cwd: string): string | null;
|
|
54
|
+
/**
|
|
55
|
+
* Compute a diff summary between the prior review's examined commit and the
|
|
56
|
+
* current canonical branch head. Returns null when no prior examined commit
|
|
57
|
+
* exists or when the diff cannot be computed (unreachable commits, etc.).
|
|
58
|
+
*
|
|
59
|
+
* AC: @review-fix-cycle-diff ac-2 — diff summary for reviewer orientation
|
|
60
|
+
* AC: @review-fix-cycle-diff ac-3 — graceful omission on unreachable commits
|
|
61
|
+
*/
|
|
62
|
+
export declare function getFixCycleDiffSummary(projectDir: string, taskRef: string, canonicalBranchHead: string | undefined, workspaceCwd?: string): Promise<string | null>;
|
|
35
63
|
/**
|
|
36
64
|
* Build orientation context block for a dispatch prompt.
|
|
37
65
|
* Provides the agent with task title, trigger meaning, and relevant context.
|
|
38
66
|
*
|
|
39
67
|
* AC: @agent-dispatch-engine ac-13, ac-14, ac-15
|
|
40
68
|
*/
|
|
41
|
-
export declare function buildOrientationContext(taskRef: string, trigger: string,
|
|
69
|
+
export declare function buildOrientationContext(taskRef: string, trigger: string, workspaceOrTask: ProvisionedDispatchWorkspace | {
|
|
70
|
+
title: string;
|
|
71
|
+
notes?: Array<{
|
|
72
|
+
created_at: string;
|
|
73
|
+
author?: string;
|
|
74
|
+
content: string;
|
|
75
|
+
}>;
|
|
76
|
+
review_url?: string;
|
|
77
|
+
}, taskOrMetadata?: {
|
|
42
78
|
title: string;
|
|
43
79
|
notes?: Array<{
|
|
44
80
|
created_at: string;
|
|
@@ -46,6 +82,8 @@ export declare function buildOrientationContext(taskRef: string, trigger: string
|
|
|
46
82
|
content: string;
|
|
47
83
|
}>;
|
|
48
84
|
review_url?: string;
|
|
85
|
+
} | DispatchWorkspaceMetadata, metadataOrRole?: DispatchWorkspaceMetadata | DispatchWorkspaceRole, explicitRole?: DispatchWorkspaceRole, options?: {
|
|
86
|
+
fixCycleDiffSummary?: string | null;
|
|
49
87
|
}): string;
|
|
50
88
|
/**
|
|
51
89
|
* A state change event for a single task.
|
|
@@ -68,6 +106,7 @@ export interface InvocationEvent {
|
|
|
68
106
|
session_id: string;
|
|
69
107
|
agent_id: string;
|
|
70
108
|
task_id: string | undefined;
|
|
109
|
+
task_title: string | null;
|
|
71
110
|
status: "started" | "completed" | "failed";
|
|
72
111
|
timestamp: number;
|
|
73
112
|
}
|
|
@@ -93,6 +132,14 @@ export interface DispatchEngineOptions {
|
|
|
93
132
|
* AC: @agent-dispatch-engine ac-20
|
|
94
133
|
*/
|
|
95
134
|
reconcileIntervalMs?: number | null;
|
|
135
|
+
/**
|
|
136
|
+
* Per-task coalescing window in milliseconds (default 5000).
|
|
137
|
+
* When a state change event triggers a drain, the drain is deferred by this
|
|
138
|
+
* window. If another event arrives for the same task within the window, the
|
|
139
|
+
* timer resets. Set to 0 to disable coalescing (immediate drain behavior).
|
|
140
|
+
* AC: @per-task-dispatch-drain-coalescing ac-4
|
|
141
|
+
*/
|
|
142
|
+
coalesceWindowMs?: number;
|
|
96
143
|
/** Path to kspec CLI binary (for task notes) */
|
|
97
144
|
kspecCliPath?: string;
|
|
98
145
|
/**
|
|
@@ -101,11 +148,13 @@ export interface DispatchEngineOptions {
|
|
|
101
148
|
*/
|
|
102
149
|
onInvocationEvent?: (event: InvocationEvent) => void;
|
|
103
150
|
/**
|
|
104
|
-
* Optional callback invoked for
|
|
151
|
+
* Optional callback invoked for typed session lifecycle events.
|
|
152
|
+
* Replaces the old onTextChunk callback with structured event emission.
|
|
153
|
+
* AC: @session-event-broadcast ac-replaces-text-chunks
|
|
105
154
|
* AC: @cli-agent-commands ac-13 (broadcast to watch subscribers)
|
|
106
155
|
* AC: @daemon-agent-dispatch ac-8
|
|
107
156
|
*/
|
|
108
|
-
|
|
157
|
+
onSessionEvent?: (event: SessionEventData) => void;
|
|
109
158
|
}
|
|
110
159
|
/**
|
|
111
160
|
* The core dispatch runtime.
|
|
@@ -124,9 +173,13 @@ export declare class DispatchEngine {
|
|
|
124
173
|
private cwd;
|
|
125
174
|
private dedupWindowMs;
|
|
126
175
|
private reconcileIntervalMs;
|
|
176
|
+
/** AC: @per-task-dispatch-drain-coalescing ac-4 */
|
|
177
|
+
private coalesceWindowMs;
|
|
127
178
|
private kspecCliPath?;
|
|
128
179
|
private onInvocationEvent?;
|
|
129
|
-
private
|
|
180
|
+
private onSessionEvent?;
|
|
181
|
+
/** Per-session text accumulator for newline-boundary streaming. */
|
|
182
|
+
private accumulator;
|
|
130
183
|
/** Queue of pending dispatch entries, per agent id */
|
|
131
184
|
private queues;
|
|
132
185
|
/** Count of active (running) invocations per agent id */
|
|
@@ -145,10 +198,22 @@ export declare class DispatchEngine {
|
|
|
145
198
|
private invocationAbortControllers;
|
|
146
199
|
/** Per-invocation tracking records for status display */
|
|
147
200
|
private activeInvocationDetails;
|
|
201
|
+
/** Task refs currently between queue removal and active tracking registration */
|
|
202
|
+
private inFlightTaskKeys;
|
|
148
203
|
/** Monotonic enqueue sequence for deterministic queue ordering */
|
|
149
204
|
private nextQueueSequence;
|
|
205
|
+
/** Last task selected/completed, used as continuity affinity signal. */
|
|
206
|
+
private recentTaskAffinityRef;
|
|
150
207
|
/** Timer handle for periodic reconciliation. AC: @agent-dispatch-engine ac-20 */
|
|
151
208
|
private reconcileTimer;
|
|
209
|
+
/** All in-flight reconciliation promises so stop() can await every one. */
|
|
210
|
+
private inFlightReconciles;
|
|
211
|
+
/** Per-task coalescing timers. AC: @per-task-dispatch-drain-coalescing ac-1 */
|
|
212
|
+
private coalesceTimers;
|
|
213
|
+
/** Whether a drain is currently in progress. AC: @per-task-dispatch-drain-coalescing ac-8 */
|
|
214
|
+
private drainInProgress;
|
|
215
|
+
/** Whether another drain was requested while one is already running. AC: @per-task-dispatch-drain-coalescing ac-8 */
|
|
216
|
+
private drainPending;
|
|
152
217
|
constructor(options: DispatchEngineOptions);
|
|
153
218
|
/**
|
|
154
219
|
* Start the dispatch engine.
|
|
@@ -181,6 +246,7 @@ export declare class DispatchEngine {
|
|
|
181
246
|
* AC: @agent-dispatch-engine ac-12
|
|
182
247
|
*/
|
|
183
248
|
getShadowMutex(): Mutex;
|
|
249
|
+
getCwd(): string;
|
|
184
250
|
/**
|
|
185
251
|
* Returns current engine status info including per-invocation details.
|
|
186
252
|
* AC: @cli-agent-commands ac-6
|
|
@@ -230,13 +296,30 @@ export declare class DispatchEngine {
|
|
|
230
296
|
* AC: @agent-dispatch-engine ac-19
|
|
231
297
|
*/
|
|
232
298
|
private _hasActiveOrQueuedInvocation;
|
|
299
|
+
private _activeRoleByTaskRef;
|
|
300
|
+
private _activeTaskRefs;
|
|
301
|
+
/**
|
|
302
|
+
* Check whether any agent has an active or in-flight invocation for a task.
|
|
303
|
+
* Considers both registered active invocations (activeInvocationDetails) and
|
|
304
|
+
* tasks that are between queue removal and active registration (inFlightTaskKeys).
|
|
305
|
+
*
|
|
306
|
+
* AC: @agent-dispatch-engine ac-26
|
|
307
|
+
*/
|
|
308
|
+
private _hasActiveInvocationForTask;
|
|
233
309
|
/**
|
|
234
310
|
* Load agent definitions from meta context.
|
|
235
311
|
*/
|
|
236
312
|
private _loadAgents;
|
|
237
313
|
/**
|
|
238
314
|
* Check if a state change matches a dispatch rule's filters.
|
|
315
|
+
* Base readiness (deps, blocked_by) is checked before consumer filters
|
|
316
|
+
* per @trait-task-readiness ac-composable.
|
|
317
|
+
*
|
|
239
318
|
* AC: @agent-dispatch-engine ac-6
|
|
319
|
+
* AC: @agent-dispatch-engine ac-21
|
|
320
|
+
* AC: @trait-task-readiness ac-deps
|
|
321
|
+
* AC: @trait-task-readiness ac-not-blocked
|
|
322
|
+
* AC: @trait-task-readiness ac-composable
|
|
240
323
|
*/
|
|
241
324
|
private _matchesFilter;
|
|
242
325
|
/**
|
|
@@ -265,10 +348,33 @@ export declare class DispatchEngine {
|
|
|
265
348
|
*/
|
|
266
349
|
private _insertQueueEntry;
|
|
267
350
|
/**
|
|
268
|
-
* Compare queue entries by dispatch precedence,
|
|
351
|
+
* Compare queue entries by dispatch precedence, numeric task priority, then FIFO.
|
|
269
352
|
* AC: @dispatch-in-progress-priority ac-1
|
|
270
353
|
*/
|
|
271
354
|
private _compareQueueEntries;
|
|
355
|
+
private _taskPriorityForEntry;
|
|
356
|
+
private _hasContinuityAffinity;
|
|
357
|
+
private _compareSchedulerCandidates;
|
|
358
|
+
private _recordContinuityDeferrals;
|
|
359
|
+
private _workspaceCandidateHealth;
|
|
360
|
+
private _pruneIneligibleQueueEntries;
|
|
361
|
+
private _selectNextCandidate;
|
|
362
|
+
/**
|
|
363
|
+
* Schedule a per-task coalesced drain. If a timer already exists for this
|
|
364
|
+
* task, it is cleared and reset to the full coalescing window.
|
|
365
|
+
*
|
|
366
|
+
* AC: @per-task-dispatch-drain-coalescing ac-1, ac-3
|
|
367
|
+
*/
|
|
368
|
+
private _scheduleCoalescedDrain;
|
|
369
|
+
/**
|
|
370
|
+
* Serialize drain execution: if a drain is already running, mark that another
|
|
371
|
+
* drain is pending and return. When the current drain finishes, it runs the
|
|
372
|
+
* follow-up drain. This prevents concurrent _drainQueues() calls from
|
|
373
|
+
* racing on queue state.
|
|
374
|
+
*
|
|
375
|
+
* AC: @per-task-dispatch-drain-coalescing ac-8
|
|
376
|
+
*/
|
|
377
|
+
private _serializedDrain;
|
|
272
378
|
/**
|
|
273
379
|
* Drain queues, spawning invocations up to each agent's max_concurrent limit.
|
|
274
380
|
* AC: @agent-dispatch-engine ac-3, ac-17
|
|
@@ -281,6 +387,10 @@ export declare class DispatchEngine {
|
|
|
281
387
|
* AC: @agent-dispatch-engine ac-13, ac-14, ac-15, ac-16
|
|
282
388
|
*/
|
|
283
389
|
private _buildDispatchPrompt;
|
|
390
|
+
private _runKspecCommand;
|
|
391
|
+
private _taskCommandError;
|
|
392
|
+
private _addTaskNote;
|
|
393
|
+
private _blockTask;
|
|
284
394
|
/**
|
|
285
395
|
* Spawn a single invocation for a queue entry.
|
|
286
396
|
* Returns true if an invocation was actually started, false if skipped.
|
|
@@ -288,5 +398,4 @@ export declare class DispatchEngine {
|
|
|
288
398
|
*/
|
|
289
399
|
private _spawnInvocation;
|
|
290
400
|
}
|
|
291
|
-
export {};
|
|
292
401
|
//# sourceMappingURL=dispatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/dispatch.ts"],"names":[],"mappings":"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"}
|