@kynetic-ai/spec 0.10.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 +150 -10
- package/dist/agent-runtime/dispatch.d.ts.map +1 -1
- package/dist/agent-runtime/dispatch.js +1248 -244
- 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 +172 -60
- 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/meta.d.ts.map +1 -1
- package/dist/cli/commands/meta.js +10 -1
- package/dist/cli/commands/meta.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 +107 -23
- package/dist/daemon/routes/aggregation.ts +184 -0
- package/dist/daemon/routes/inbox.ts +5 -0
- package/dist/daemon/routes/items.ts +167 -0
- package/dist/daemon/routes/meta.ts +141 -1
- package/dist/daemon/routes/plans.ts +147 -0
- 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 +581 -0
- package/dist/daemon/routes/tasks.ts +257 -2
- package/dist/daemon/routes/triage.ts +40 -1
- package/dist/daemon/routes/validation.ts +1 -1
- package/dist/daemon/server.ts +165 -50
- 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/alignment.d.ts.map +1 -1
- package/dist/parser/alignment.js +4 -2
- package/dist/parser/alignment.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 +663 -116
- package/dist/schema/meta.d.ts.map +1 -1
- package/dist/schema/meta.js +28 -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 +115 -71
- package/dist/sessions/store.d.ts.map +1 -1
- package/dist/sessions/store.js +357 -182
- 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/B25nWFyA.js +5 -0
- package/dist/web-ui/_app/immutable/chunks/B2bcA_Q_.js +1 -0
- 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/B8tYZKAE.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BFGAyJjD.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BG0850zf.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BG8eSzAd.js +1 -0
- 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/{D1ArdqNb.js → Bp5pFYXL.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/BsJFsuAT.js +1 -0
- 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/C0w6WDm5.js +1 -0
- 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/CWUQwB9H.js +1 -0
- 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/CaAJD3dl.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{i-XnOIX0.js → ChB5iyEL.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/ChQD-6N8.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{BCkp8Hs8.js → CqbsoCwA.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/DCeJW50p.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DJtZNgcs.js +1 -0
- 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/DW_subyT.js +2 -0
- 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/Dg_zDpDS.js +1 -0
- 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/DqT6OH_u.js +2 -0
- 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/HNjs76Zz.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/HVMjDi4_.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/P0A_fJvS.js +1 -0
- 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/Xvwhx_F1.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/Yyz1XMQA.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/dh5HeqUr.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/fZMteyca.js +62 -0
- package/dist/web-ui/_app/immutable/chunks/{D28BF5MJ.js → gPrj-hqC.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/htcWMiYN.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/oTsvd9y4.js +1 -0
- 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/y4GeEH6k.js +1 -0
- 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 -11
- package/package.json +14 -7
- 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.BxCxvrZR.css +0 -1
- package/dist/web-ui/_app/immutable/chunks/B-CZR0q8.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/B1IR5Su5.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/B_Cvvtc4.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BtFaGGII.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/Bu8JVsCH.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/C87u-CNA.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/CrFkBTYp.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/D6RtLpzL.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/D7FHSgx2.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DBXrsxZQ.js +0 -2
- package/dist/web-ui/_app/immutable/chunks/Da_hHMuA.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/Do6LchSF.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DoNPtcAw.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DtUbXRZz.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DyFPRlLl.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DzAP8lRM.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DzVXElzN.js +0 -2
- package/dist/web-ui/_app/immutable/chunks/aoPBFken.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/laxtrUO3.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/q1nIWgqB.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/sTLbk5Nm.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/vwKgQu5P.js +0 -5
- package/dist/web-ui/_app/immutable/entry/app.BCwMcqnT.js +0 -2
- package/dist/web-ui/_app/immutable/entry/start.wKCQH-tt.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/0.CjGVMG74.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/1.B6_AIPan.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/2.q4oCS7Ws.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/3.rTKZf9o2.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/4.DVIDRu1d.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/5.8PtPXIOd.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/6.ZZrTemy_.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/7.IP-gxCxi.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
|
}
|
|
@@ -86,6 +125,21 @@ export interface DispatchEngineOptions {
|
|
|
86
125
|
cwd?: string;
|
|
87
126
|
/** Deduplication window in milliseconds (default 2000) */
|
|
88
127
|
dedupWindowMs?: number;
|
|
128
|
+
/**
|
|
129
|
+
* Periodic reconciliation interval in milliseconds (default 60000).
|
|
130
|
+
* Re-evaluates all task states against dispatch rules, enqueuing any that
|
|
131
|
+
* match but have no active or queued invocation. Set to 0 or null to disable.
|
|
132
|
+
* AC: @agent-dispatch-engine ac-20
|
|
133
|
+
*/
|
|
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;
|
|
89
143
|
/** Path to kspec CLI binary (for task notes) */
|
|
90
144
|
kspecCliPath?: string;
|
|
91
145
|
/**
|
|
@@ -94,11 +148,13 @@ export interface DispatchEngineOptions {
|
|
|
94
148
|
*/
|
|
95
149
|
onInvocationEvent?: (event: InvocationEvent) => void;
|
|
96
150
|
/**
|
|
97
|
-
* 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
|
|
98
154
|
* AC: @cli-agent-commands ac-13 (broadcast to watch subscribers)
|
|
99
155
|
* AC: @daemon-agent-dispatch ac-8
|
|
100
156
|
*/
|
|
101
|
-
|
|
157
|
+
onSessionEvent?: (event: SessionEventData) => void;
|
|
102
158
|
}
|
|
103
159
|
/**
|
|
104
160
|
* The core dispatch runtime.
|
|
@@ -116,9 +172,14 @@ export declare class DispatchEngine {
|
|
|
116
172
|
private specDir;
|
|
117
173
|
private cwd;
|
|
118
174
|
private dedupWindowMs;
|
|
175
|
+
private reconcileIntervalMs;
|
|
176
|
+
/** AC: @per-task-dispatch-drain-coalescing ac-4 */
|
|
177
|
+
private coalesceWindowMs;
|
|
119
178
|
private kspecCliPath?;
|
|
120
179
|
private onInvocationEvent?;
|
|
121
|
-
private
|
|
180
|
+
private onSessionEvent?;
|
|
181
|
+
/** Per-session text accumulator for newline-boundary streaming. */
|
|
182
|
+
private accumulator;
|
|
122
183
|
/** Queue of pending dispatch entries, per agent id */
|
|
123
184
|
private queues;
|
|
124
185
|
/** Count of active (running) invocations per agent id */
|
|
@@ -137,8 +198,22 @@ export declare class DispatchEngine {
|
|
|
137
198
|
private invocationAbortControllers;
|
|
138
199
|
/** Per-invocation tracking records for status display */
|
|
139
200
|
private activeInvocationDetails;
|
|
201
|
+
/** Task refs currently between queue removal and active tracking registration */
|
|
202
|
+
private inFlightTaskKeys;
|
|
140
203
|
/** Monotonic enqueue sequence for deterministic queue ordering */
|
|
141
204
|
private nextQueueSequence;
|
|
205
|
+
/** Last task selected/completed, used as continuity affinity signal. */
|
|
206
|
+
private recentTaskAffinityRef;
|
|
207
|
+
/** Timer handle for periodic reconciliation. AC: @agent-dispatch-engine ac-20 */
|
|
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;
|
|
142
217
|
constructor(options: DispatchEngineOptions);
|
|
143
218
|
/**
|
|
144
219
|
* Start the dispatch engine.
|
|
@@ -171,6 +246,7 @@ export declare class DispatchEngine {
|
|
|
171
246
|
* AC: @agent-dispatch-engine ac-12
|
|
172
247
|
*/
|
|
173
248
|
getShadowMutex(): Mutex;
|
|
249
|
+
getCwd(): string;
|
|
174
250
|
/**
|
|
175
251
|
* Returns current engine status info including per-invocation details.
|
|
176
252
|
* AC: @cli-agent-commands ac-6
|
|
@@ -199,13 +275,51 @@ export declare class DispatchEngine {
|
|
|
199
275
|
* AC: @agent-dispatch-engine ac-8
|
|
200
276
|
*/
|
|
201
277
|
private _bootstrap;
|
|
278
|
+
/**
|
|
279
|
+
* Periodic reconciliation: re-evaluate all task states against dispatch rules.
|
|
280
|
+
* Enqueues tasks that match but have no active or queued invocation.
|
|
281
|
+
* AC: @agent-dispatch-engine ac-19
|
|
282
|
+
*/
|
|
283
|
+
private _reconcile;
|
|
284
|
+
/**
|
|
285
|
+
* Shared logic for bootstrap and reconciliation: load all tasks, seed
|
|
286
|
+
* prevTaskStates, and enqueue tasks matching agent dispatch rules.
|
|
287
|
+
*
|
|
288
|
+
* When skipIfActive is true (reconciliation), tasks with an existing
|
|
289
|
+
* active or queued invocation are skipped.
|
|
290
|
+
*
|
|
291
|
+
* AC: @agent-dispatch-engine ac-8, ac-19
|
|
292
|
+
*/
|
|
293
|
+
private _evaluateAllTasks;
|
|
294
|
+
/**
|
|
295
|
+
* Check if an agent already has an active or queued invocation for a task.
|
|
296
|
+
* AC: @agent-dispatch-engine ac-19
|
|
297
|
+
*/
|
|
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;
|
|
202
309
|
/**
|
|
203
310
|
* Load agent definitions from meta context.
|
|
204
311
|
*/
|
|
205
312
|
private _loadAgents;
|
|
206
313
|
/**
|
|
207
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
|
+
*
|
|
208
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
|
|
209
323
|
*/
|
|
210
324
|
private _matchesFilter;
|
|
211
325
|
/**
|
|
@@ -234,10 +348,33 @@ export declare class DispatchEngine {
|
|
|
234
348
|
*/
|
|
235
349
|
private _insertQueueEntry;
|
|
236
350
|
/**
|
|
237
|
-
* Compare queue entries by dispatch precedence,
|
|
351
|
+
* Compare queue entries by dispatch precedence, numeric task priority, then FIFO.
|
|
238
352
|
* AC: @dispatch-in-progress-priority ac-1
|
|
239
353
|
*/
|
|
240
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;
|
|
241
378
|
/**
|
|
242
379
|
* Drain queues, spawning invocations up to each agent's max_concurrent limit.
|
|
243
380
|
* AC: @agent-dispatch-engine ac-3, ac-17
|
|
@@ -250,6 +387,10 @@ export declare class DispatchEngine {
|
|
|
250
387
|
* AC: @agent-dispatch-engine ac-13, ac-14, ac-15, ac-16
|
|
251
388
|
*/
|
|
252
389
|
private _buildDispatchPrompt;
|
|
390
|
+
private _runKspecCommand;
|
|
391
|
+
private _taskCommandError;
|
|
392
|
+
private _addTaskNote;
|
|
393
|
+
private _blockTask;
|
|
253
394
|
/**
|
|
254
395
|
* Spawn a single invocation for a queue entry.
|
|
255
396
|
* Returns true if an invocation was actually started, false if skipped.
|
|
@@ -257,5 +398,4 @@ export declare class DispatchEngine {
|
|
|
257
398
|
*/
|
|
258
399
|
private _spawnInvocation;
|
|
259
400
|
}
|
|
260
|
-
export {};
|
|
261
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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"}
|