@ag-eco/agentplate-cli 0.13.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/LICENSE +21 -0
- package/README.md +462 -0
- package/agents/ap-co-creation.md +90 -0
- package/agents/builder.md +144 -0
- package/agents/coordinator.md +377 -0
- package/agents/lead.md +435 -0
- package/agents/merger.md +164 -0
- package/agents/monitor.md +214 -0
- package/agents/orchestrator.md +239 -0
- package/agents/reviewer.md +140 -0
- package/agents/scout.md +125 -0
- package/agents/supervisor.md +427 -0
- package/package.json +66 -0
- package/src/agents/capabilities.test.ts +85 -0
- package/src/agents/capabilities.ts +125 -0
- package/src/agents/checkpoint.test.ts +88 -0
- package/src/agents/checkpoint.ts +101 -0
- package/src/agents/copilot-hooks-deployer.test.ts +162 -0
- package/src/agents/copilot-hooks-deployer.ts +93 -0
- package/src/agents/guard-rules.test.ts +372 -0
- package/src/agents/guard-rules.ts +97 -0
- package/src/agents/headless-mail-injector.test.ts +709 -0
- package/src/agents/headless-mail-injector.ts +377 -0
- package/src/agents/headless-prompt.test.ts +102 -0
- package/src/agents/headless-prompt.ts +68 -0
- package/src/agents/hooks-deployer.test.ts +3119 -0
- package/src/agents/hooks-deployer.ts +804 -0
- package/src/agents/identity.test.ts +604 -0
- package/src/agents/identity.ts +384 -0
- package/src/agents/lifecycle.test.ts +196 -0
- package/src/agents/lifecycle.ts +183 -0
- package/src/agents/mail-poll-detect.test.ts +153 -0
- package/src/agents/mail-poll-detect.ts +73 -0
- package/src/agents/manifest.test.ts +1026 -0
- package/src/agents/manifest.ts +376 -0
- package/src/agents/overlay.test.ts +1058 -0
- package/src/agents/overlay.ts +490 -0
- package/src/agents/scope-detect.test.ts +190 -0
- package/src/agents/scope-detect.ts +146 -0
- package/src/agents/turn-lock.test.ts +181 -0
- package/src/agents/turn-lock.ts +235 -0
- package/src/agents/turn-runner-dispatch.test.ts +182 -0
- package/src/agents/turn-runner-dispatch.ts +105 -0
- package/src/agents/turn-runner.test.ts +2312 -0
- package/src/agents/turn-runner.ts +1383 -0
- package/src/beads/client.test.ts +217 -0
- package/src/beads/client.ts +230 -0
- package/src/beads/molecules.test.ts +338 -0
- package/src/beads/molecules.ts +198 -0
- package/src/commands/agents.test.ts +328 -0
- package/src/commands/agents.ts +299 -0
- package/src/commands/clean.test.ts +797 -0
- package/src/commands/clean.ts +791 -0
- package/src/commands/completions.test.ts +348 -0
- package/src/commands/completions.ts +981 -0
- package/src/commands/coordinator.test.ts +2975 -0
- package/src/commands/coordinator.ts +1841 -0
- package/src/commands/costs.test.ts +1183 -0
- package/src/commands/costs.ts +599 -0
- package/src/commands/dashboard.test.ts +954 -0
- package/src/commands/dashboard.ts +1212 -0
- package/src/commands/discover.test.ts +288 -0
- package/src/commands/discover.ts +202 -0
- package/src/commands/doctor.test.ts +303 -0
- package/src/commands/doctor.ts +311 -0
- package/src/commands/ecosystem.test.ts +226 -0
- package/src/commands/ecosystem.ts +248 -0
- package/src/commands/errors.test.ts +654 -0
- package/src/commands/errors.ts +197 -0
- package/src/commands/feed.test.ts +709 -0
- package/src/commands/feed.ts +260 -0
- package/src/commands/group.test.ts +475 -0
- package/src/commands/group.ts +546 -0
- package/src/commands/hooks.test.ts +458 -0
- package/src/commands/hooks.ts +263 -0
- package/src/commands/init.test.ts +1011 -0
- package/src/commands/init.ts +967 -0
- package/src/commands/inspect.test.ts +1239 -0
- package/src/commands/inspect.ts +648 -0
- package/src/commands/log.test.ts +1913 -0
- package/src/commands/log.ts +958 -0
- package/src/commands/logs.test.ts +801 -0
- package/src/commands/logs.ts +483 -0
- package/src/commands/mail.test.ts +1501 -0
- package/src/commands/mail.ts +848 -0
- package/src/commands/merge.test.ts +864 -0
- package/src/commands/merge.ts +381 -0
- package/src/commands/metrics.test.ts +458 -0
- package/src/commands/metrics.ts +129 -0
- package/src/commands/monitor.test.ts +191 -0
- package/src/commands/monitor.ts +409 -0
- package/src/commands/nudge.test.ts +579 -0
- package/src/commands/nudge.ts +646 -0
- package/src/commands/orchestrator.ts +42 -0
- package/src/commands/prime.test.ts +612 -0
- package/src/commands/prime.ts +359 -0
- package/src/commands/replay.test.ts +757 -0
- package/src/commands/replay.ts +231 -0
- package/src/commands/run.test.ts +469 -0
- package/src/commands/run.ts +353 -0
- package/src/commands/serve/agent-actions.test.ts +210 -0
- package/src/commands/serve/agent-actions.ts +192 -0
- package/src/commands/serve/build.test.ts +202 -0
- package/src/commands/serve/build.ts +206 -0
- package/src/commands/serve/coordinator-actions.test.ts +339 -0
- package/src/commands/serve/coordinator-actions.ts +410 -0
- package/src/commands/serve/dev.test.ts +168 -0
- package/src/commands/serve/dev.ts +117 -0
- package/src/commands/serve/mail-actions.test.ts +312 -0
- package/src/commands/serve/mail-actions.ts +167 -0
- package/src/commands/serve/rest.test.ts +1680 -0
- package/src/commands/serve/rest.ts +1130 -0
- package/src/commands/serve/static.ts +51 -0
- package/src/commands/serve/ws.test.ts +361 -0
- package/src/commands/serve/ws.ts +332 -0
- package/src/commands/serve.test.ts +459 -0
- package/src/commands/serve.ts +654 -0
- package/src/commands/sling.test.ts +1583 -0
- package/src/commands/sling.ts +1351 -0
- package/src/commands/spec.test.ts +179 -0
- package/src/commands/spec.ts +105 -0
- package/src/commands/status.test.ts +614 -0
- package/src/commands/status.ts +403 -0
- package/src/commands/stop.test.ts +964 -0
- package/src/commands/stop.ts +319 -0
- package/src/commands/supervisor.test.ts +185 -0
- package/src/commands/supervisor.ts +537 -0
- package/src/commands/trace.test.ts +762 -0
- package/src/commands/trace.ts +205 -0
- package/src/commands/update.test.ts +466 -0
- package/src/commands/update.ts +263 -0
- package/src/commands/upgrade.test.ts +48 -0
- package/src/commands/upgrade.ts +240 -0
- package/src/commands/watch.test.ts +257 -0
- package/src/commands/watch.ts +308 -0
- package/src/commands/worktree.test.ts +1297 -0
- package/src/commands/worktree.ts +451 -0
- package/src/config.test.ts +1535 -0
- package/src/config.ts +1064 -0
- package/src/doctor/agents.test.ts +523 -0
- package/src/doctor/agents.ts +399 -0
- package/src/doctor/config-check.test.ts +191 -0
- package/src/doctor/config-check.ts +183 -0
- package/src/doctor/consistency.test.ts +807 -0
- package/src/doctor/consistency.ts +347 -0
- package/src/doctor/databases.test.ts +350 -0
- package/src/doctor/databases.ts +243 -0
- package/src/doctor/dependencies.test.ts +296 -0
- package/src/doctor/dependencies.ts +272 -0
- package/src/doctor/ecosystem.test.ts +308 -0
- package/src/doctor/ecosystem.ts +156 -0
- package/src/doctor/logs.test.ts +253 -0
- package/src/doctor/logs.ts +295 -0
- package/src/doctor/merge-queue.test.ts +315 -0
- package/src/doctor/merge-queue.ts +167 -0
- package/src/doctor/providers.test.ts +409 -0
- package/src/doctor/providers.ts +250 -0
- package/src/doctor/serve.test.ts +95 -0
- package/src/doctor/serve.ts +86 -0
- package/src/doctor/structure.test.ts +423 -0
- package/src/doctor/structure.ts +285 -0
- package/src/doctor/types.ts +43 -0
- package/src/doctor/version.test.ts +241 -0
- package/src/doctor/version.ts +132 -0
- package/src/doctor/watchdog.test.ts +167 -0
- package/src/doctor/watchdog.ts +214 -0
- package/src/e2e/init-sling-lifecycle.test.ts +283 -0
- package/src/errors.test.ts +350 -0
- package/src/errors.ts +217 -0
- package/src/events/store.test.ts +660 -0
- package/src/events/store.ts +369 -0
- package/src/events/tailer.test.ts +719 -0
- package/src/events/tailer.ts +332 -0
- package/src/events/tool-filter.test.ts +330 -0
- package/src/events/tool-filter.ts +126 -0
- package/src/index.ts +533 -0
- package/src/insights/analyzer.test.ts +466 -0
- package/src/insights/analyzer.ts +203 -0
- package/src/insights/quality-gates.test.ts +141 -0
- package/src/insights/quality-gates.ts +156 -0
- package/src/json.test.ts +72 -0
- package/src/json.ts +53 -0
- package/src/loam/client.test.ts +752 -0
- package/src/loam/client.ts +664 -0
- package/src/logging/color.test.ts +252 -0
- package/src/logging/color.ts +105 -0
- package/src/logging/format.test.ts +110 -0
- package/src/logging/format.ts +255 -0
- package/src/logging/logger.test.ts +814 -0
- package/src/logging/logger.ts +266 -0
- package/src/logging/reporter.test.ts +259 -0
- package/src/logging/reporter.ts +110 -0
- package/src/logging/sanitizer.test.ts +190 -0
- package/src/logging/sanitizer.ts +57 -0
- package/src/logging/theme.ts +140 -0
- package/src/mail/broadcast.test.ts +204 -0
- package/src/mail/broadcast.ts +92 -0
- package/src/mail/client.test.ts +774 -0
- package/src/mail/client.ts +236 -0
- package/src/mail/store.test.ts +898 -0
- package/src/mail/store.ts +425 -0
- package/src/merge/lock.test.ts +149 -0
- package/src/merge/lock.ts +140 -0
- package/src/merge/predict.test.ts +387 -0
- package/src/merge/predict.ts +249 -0
- package/src/merge/queue.test.ts +426 -0
- package/src/merge/queue.ts +246 -0
- package/src/merge/resolver.test.ts +1993 -0
- package/src/merge/resolver.ts +926 -0
- package/src/metrics/pricing.test.ts +258 -0
- package/src/metrics/pricing.ts +135 -0
- package/src/metrics/store.test.ts +978 -0
- package/src/metrics/store.ts +501 -0
- package/src/metrics/summary.test.ts +398 -0
- package/src/metrics/summary.ts +178 -0
- package/src/metrics/transcript.test.ts +483 -0
- package/src/metrics/transcript.ts +114 -0
- package/src/runtimes/__fixtures__/claude-stream-fixture.ts +22 -0
- package/src/runtimes/aider.test.ts +124 -0
- package/src/runtimes/aider.ts +147 -0
- package/src/runtimes/amp.test.ts +164 -0
- package/src/runtimes/amp.ts +154 -0
- package/src/runtimes/claude.test.ts +1474 -0
- package/src/runtimes/claude.ts +579 -0
- package/src/runtimes/codex.test.ts +805 -0
- package/src/runtimes/codex.ts +273 -0
- package/src/runtimes/connections.test.ts +214 -0
- package/src/runtimes/connections.ts +103 -0
- package/src/runtimes/copilot.test.ts +707 -0
- package/src/runtimes/copilot.ts +316 -0
- package/src/runtimes/cursor.test.ts +497 -0
- package/src/runtimes/cursor.ts +205 -0
- package/src/runtimes/gemini.test.ts +537 -0
- package/src/runtimes/gemini.ts +243 -0
- package/src/runtimes/goose.test.ts +133 -0
- package/src/runtimes/goose.ts +157 -0
- package/src/runtimes/headless-connection.test.ts +264 -0
- package/src/runtimes/headless-connection.ts +158 -0
- package/src/runtimes/opencode.test.ts +325 -0
- package/src/runtimes/opencode.ts +188 -0
- package/src/runtimes/pi-guards.test.ts +486 -0
- package/src/runtimes/pi-guards.ts +367 -0
- package/src/runtimes/pi.test.ts +789 -0
- package/src/runtimes/pi.ts +305 -0
- package/src/runtimes/registry.test.ts +196 -0
- package/src/runtimes/registry.ts +99 -0
- package/src/runtimes/sapling.test.ts +1267 -0
- package/src/runtimes/sapling.ts +710 -0
- package/src/runtimes/types.ts +266 -0
- package/src/schema-consistency.test.ts +246 -0
- package/src/sessions/compat.test.ts +281 -0
- package/src/sessions/compat.ts +105 -0
- package/src/sessions/store.test.ts +1748 -0
- package/src/sessions/store.ts +858 -0
- package/src/test-helpers.test.ts +124 -0
- package/src/test-helpers.ts +145 -0
- package/src/test-setup.test.ts +31 -0
- package/src/test-setup.ts +28 -0
- package/src/tools/loam/api.ts +368 -0
- package/src/tools/loam/cli.ts +278 -0
- package/src/tools/loam/commands/add.ts +52 -0
- package/src/tools/loam/commands/archive.ts +214 -0
- package/src/tools/loam/commands/audit.ts +276 -0
- package/src/tools/loam/commands/compact.ts +1062 -0
- package/src/tools/loam/commands/completions.ts +79 -0
- package/src/tools/loam/commands/config.ts +381 -0
- package/src/tools/loam/commands/delete-domain.ts +121 -0
- package/src/tools/loam/commands/delete.ts +316 -0
- package/src/tools/loam/commands/diff.ts +200 -0
- package/src/tools/loam/commands/doctor.ts +1113 -0
- package/src/tools/loam/commands/edit.ts +226 -0
- package/src/tools/loam/commands/init.ts +31 -0
- package/src/tools/loam/commands/learn.ts +179 -0
- package/src/tools/loam/commands/move.ts +323 -0
- package/src/tools/loam/commands/onboard.ts +374 -0
- package/src/tools/loam/commands/outcome.ts +185 -0
- package/src/tools/loam/commands/prime.ts +688 -0
- package/src/tools/loam/commands/prune.ts +614 -0
- package/src/tools/loam/commands/query.ts +218 -0
- package/src/tools/loam/commands/rank.ts +180 -0
- package/src/tools/loam/commands/ready.ts +189 -0
- package/src/tools/loam/commands/record.ts +1210 -0
- package/src/tools/loam/commands/restore.ts +166 -0
- package/src/tools/loam/commands/search.ts +327 -0
- package/src/tools/loam/commands/setup.ts +887 -0
- package/src/tools/loam/commands/status.ts +103 -0
- package/src/tools/loam/commands/sync.ts +298 -0
- package/src/tools/loam/commands/update.ts +19 -0
- package/src/tools/loam/commands/upgrade.ts +93 -0
- package/src/tools/loam/commands/validate.ts +190 -0
- package/src/tools/loam/index.ts +62 -0
- package/src/tools/loam/log.ts +127 -0
- package/src/tools/loam/registry/builtins.ts +409 -0
- package/src/tools/loam/registry/custom.ts +431 -0
- package/src/tools/loam/registry/init.ts +55 -0
- package/src/tools/loam/registry/template.ts +40 -0
- package/src/tools/loam/registry/type-registry.ts +113 -0
- package/src/tools/loam/schemas/config-schema.ts +489 -0
- package/src/tools/loam/schemas/config.ts +245 -0
- package/src/tools/loam/schemas/index.ts +18 -0
- package/src/tools/loam/schemas/record-schema.ts +191 -0
- package/src/tools/loam/schemas/record.ts +115 -0
- package/src/tools/loam/utils/active-work.ts +205 -0
- package/src/tools/loam/utils/anchor-validity.ts +80 -0
- package/src/tools/loam/utils/archive.ts +146 -0
- package/src/tools/loam/utils/audit.ts +667 -0
- package/src/tools/loam/utils/bm25.ts +238 -0
- package/src/tools/loam/utils/budget.ts +142 -0
- package/src/tools/loam/utils/config.ts +344 -0
- package/src/tools/loam/utils/dir-anchors.ts +62 -0
- package/src/tools/loam/utils/domain-rules.ts +114 -0
- package/src/tools/loam/utils/expertise.ts +393 -0
- package/src/tools/loam/utils/format-helpers.ts +96 -0
- package/src/tools/loam/utils/format.ts +1234 -0
- package/src/tools/loam/utils/git-context.ts +50 -0
- package/src/tools/loam/utils/git.ts +183 -0
- package/src/tools/loam/utils/hooks.ts +299 -0
- package/src/tools/loam/utils/index.ts +52 -0
- package/src/tools/loam/utils/json-output.ts +13 -0
- package/src/tools/loam/utils/lock.ts +76 -0
- package/src/tools/loam/utils/markers.ts +48 -0
- package/src/tools/loam/utils/numeric-flags.ts +20 -0
- package/src/tools/loam/utils/palette.ts +44 -0
- package/src/tools/loam/utils/prime-ranking.ts +135 -0
- package/src/tools/loam/utils/recipe-discovery.ts +195 -0
- package/src/tools/loam/utils/runtime-flags.ts +28 -0
- package/src/tools/loam/utils/scoring.ts +94 -0
- package/src/tools/loam/utils/version.ts +116 -0
- package/src/tools/sprout/commands/block.ts +64 -0
- package/src/tools/sprout/commands/blocked.ts +86 -0
- package/src/tools/sprout/commands/close.ts +129 -0
- package/src/tools/sprout/commands/completions.ts +198 -0
- package/src/tools/sprout/commands/config.ts +238 -0
- package/src/tools/sprout/commands/create.ts +164 -0
- package/src/tools/sprout/commands/dep.ts +148 -0
- package/src/tools/sprout/commands/doctor.ts +979 -0
- package/src/tools/sprout/commands/init.ts +83 -0
- package/src/tools/sprout/commands/label.ts +178 -0
- package/src/tools/sprout/commands/list.ts +210 -0
- package/src/tools/sprout/commands/migrate.ts +133 -0
- package/src/tools/sprout/commands/onboard.ts +207 -0
- package/src/tools/sprout/commands/plan-show.ts +278 -0
- package/src/tools/sprout/commands/plan.ts +2526 -0
- package/src/tools/sprout/commands/prime.ts +399 -0
- package/src/tools/sprout/commands/ready.ts +245 -0
- package/src/tools/sprout/commands/search.ts +221 -0
- package/src/tools/sprout/commands/show.ts +277 -0
- package/src/tools/sprout/commands/stats.ts +146 -0
- package/src/tools/sprout/commands/sync.ts +134 -0
- package/src/tools/sprout/commands/tpl.ts +364 -0
- package/src/tools/sprout/commands/unblock.ts +115 -0
- package/src/tools/sprout/commands/update.ts +257 -0
- package/src/tools/sprout/commands/upgrade.ts +91 -0
- package/src/tools/sprout/config-schema.ts +152 -0
- package/src/tools/sprout/config.ts +355 -0
- package/src/tools/sprout/filter.ts +107 -0
- package/src/tools/sprout/format.ts +43 -0
- package/src/tools/sprout/id.ts +22 -0
- package/src/tools/sprout/index.ts +204 -0
- package/src/tools/sprout/log.ts +76 -0
- package/src/tools/sprout/markers.ts +22 -0
- package/src/tools/sprout/output.ts +121 -0
- package/src/tools/sprout/plan-backref.ts +93 -0
- package/src/tools/sprout/plan-context.ts +81 -0
- package/src/tools/sprout/plan-domain.ts +139 -0
- package/src/tools/sprout/plan-lifecycle.ts +65 -0
- package/src/tools/sprout/plan-loam.ts +207 -0
- package/src/tools/sprout/plan-schema.ts +209 -0
- package/src/tools/sprout/sort.ts +31 -0
- package/src/tools/sprout/store.ts +172 -0
- package/src/tools/sprout/types.ts +118 -0
- package/src/tools/sprout/validation.ts +119 -0
- package/src/tools/sprout/version.ts +1 -0
- package/src/tools/sprout/yaml.ts +387 -0
- package/src/tools/trellis/commands/archive.ts +87 -0
- package/src/tools/trellis/commands/completions.ts +610 -0
- package/src/tools/trellis/commands/config.ts +382 -0
- package/src/tools/trellis/commands/create.ts +252 -0
- package/src/tools/trellis/commands/diff.ts +150 -0
- package/src/tools/trellis/commands/doctor.ts +771 -0
- package/src/tools/trellis/commands/emit.ts +365 -0
- package/src/tools/trellis/commands/history.ts +83 -0
- package/src/tools/trellis/commands/import.ts +198 -0
- package/src/tools/trellis/commands/init.ts +81 -0
- package/src/tools/trellis/commands/list.ts +103 -0
- package/src/tools/trellis/commands/onboard.ts +156 -0
- package/src/tools/trellis/commands/pin.ts +172 -0
- package/src/tools/trellis/commands/prime.ts +193 -0
- package/src/tools/trellis/commands/render.ts +122 -0
- package/src/tools/trellis/commands/schema.ts +353 -0
- package/src/tools/trellis/commands/show.ts +115 -0
- package/src/tools/trellis/commands/stats.ts +65 -0
- package/src/tools/trellis/commands/sync.ts +112 -0
- package/src/tools/trellis/commands/tree.ts +123 -0
- package/src/tools/trellis/commands/update.ts +330 -0
- package/src/tools/trellis/commands/upgrade.ts +95 -0
- package/src/tools/trellis/commands/validate.ts +166 -0
- package/src/tools/trellis/config-schema.ts +81 -0
- package/src/tools/trellis/config.ts +108 -0
- package/src/tools/trellis/frontmatter.ts +348 -0
- package/src/tools/trellis/id.ts +24 -0
- package/src/tools/trellis/index.ts +209 -0
- package/src/tools/trellis/markers.ts +28 -0
- package/src/tools/trellis/output.ts +84 -0
- package/src/tools/trellis/render.ts +212 -0
- package/src/tools/trellis/store.ts +144 -0
- package/src/tools/trellis/types.ts +82 -0
- package/src/tools/trellis/validate.ts +199 -0
- package/src/tools/trellis/yaml.ts +309 -0
- package/src/tracker/beads.test.ts +454 -0
- package/src/tracker/beads.ts +56 -0
- package/src/tracker/factory.test.ts +90 -0
- package/src/tracker/factory.ts +65 -0
- package/src/tracker/sprout.test.ts +461 -0
- package/src/tracker/sprout.ts +182 -0
- package/src/tracker/types.ts +52 -0
- package/src/trellis/client.test.ts +107 -0
- package/src/trellis/client.ts +179 -0
- package/src/types.ts +970 -0
- package/src/utils/bin.test.ts +10 -0
- package/src/utils/bin.ts +37 -0
- package/src/utils/browser.test.ts +49 -0
- package/src/utils/browser.ts +48 -0
- package/src/utils/fs.test.ts +119 -0
- package/src/utils/fs.ts +62 -0
- package/src/utils/pid.test.ts +152 -0
- package/src/utils/pid.ts +130 -0
- package/src/utils/process-scan.test.ts +53 -0
- package/src/utils/process-scan.ts +76 -0
- package/src/utils/time.test.ts +43 -0
- package/src/utils/time.ts +37 -0
- package/src/utils/version.test.ts +33 -0
- package/src/utils/version.ts +70 -0
- package/src/version.ts +5 -0
- package/src/watchdog/daemon.test.ts +3721 -0
- package/src/watchdog/daemon.ts +1257 -0
- package/src/watchdog/health.test.ts +830 -0
- package/src/watchdog/health.ts +434 -0
- package/src/watchdog/triage.test.ts +205 -0
- package/src/watchdog/triage.ts +205 -0
- package/src/worktree/manager.test.ts +720 -0
- package/src/worktree/manager.ts +405 -0
- package/src/worktree/process.test.ts +172 -0
- package/src/worktree/process.ts +131 -0
- package/src/worktree/tmux.test.ts +1616 -0
- package/src/worktree/tmux.ts +721 -0
- package/templates/CLAUDE.md.tmpl +100 -0
- package/templates/copilot-hooks.json.tmpl +13 -0
- package/templates/hooks.json.tmpl +109 -0
- package/templates/overlay.md.tmpl +88 -0
- package/ui/dist/apple-touch-icon-bdy6teep.png +0 -0
- package/ui/dist/chunk-8s31f05k.css +1 -0
- package/ui/dist/chunk-vm5rz679.js +300 -0
- package/ui/dist/favicon-nzb39vza.svg +4 -0
- package/ui/dist/index.html +17 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for all Agentplate error classes.
|
|
3
|
+
*
|
|
4
|
+
* Validates constructor fields, instanceof chains, name, code, and cause chaining.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { describe, expect, test } from "bun:test";
|
|
8
|
+
import {
|
|
9
|
+
AgentError,
|
|
10
|
+
AgentplateError,
|
|
11
|
+
ConfigError,
|
|
12
|
+
GroupError,
|
|
13
|
+
HierarchyError,
|
|
14
|
+
LifecycleError,
|
|
15
|
+
MailError,
|
|
16
|
+
MergeError,
|
|
17
|
+
ValidationError,
|
|
18
|
+
WorktreeError,
|
|
19
|
+
} from "./errors.ts";
|
|
20
|
+
|
|
21
|
+
describe("AgentplateError", () => {
|
|
22
|
+
test("sets message, code, and name", () => {
|
|
23
|
+
const err = new AgentplateError("something broke", "TEST_CODE");
|
|
24
|
+
expect(err.message).toBe("something broke");
|
|
25
|
+
expect(err.code).toBe("TEST_CODE");
|
|
26
|
+
expect(err.name).toBe("AgentplateError");
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test("is instanceof Error", () => {
|
|
30
|
+
const err = new AgentplateError("msg", "CODE");
|
|
31
|
+
expect(err).toBeInstanceOf(Error);
|
|
32
|
+
expect(err).toBeInstanceOf(AgentplateError);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
test("supports cause chaining", () => {
|
|
36
|
+
const cause = new Error("root cause");
|
|
37
|
+
const err = new AgentplateError("wrapper", "CODE", { cause });
|
|
38
|
+
expect(err.cause).toBe(cause);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
describe("ConfigError", () => {
|
|
43
|
+
test("sets code and name", () => {
|
|
44
|
+
const err = new ConfigError("bad config");
|
|
45
|
+
expect(err.code).toBe("CONFIG_ERROR");
|
|
46
|
+
expect(err.name).toBe("ConfigError");
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
test("defaults context fields to null", () => {
|
|
50
|
+
const err = new ConfigError("missing");
|
|
51
|
+
expect(err.configPath).toBeNull();
|
|
52
|
+
expect(err.field).toBeNull();
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
test("stores context fields", () => {
|
|
56
|
+
const err = new ConfigError("invalid", {
|
|
57
|
+
configPath: "/path/to/config.yaml",
|
|
58
|
+
field: "agents.maxConcurrent",
|
|
59
|
+
});
|
|
60
|
+
expect(err.configPath).toBe("/path/to/config.yaml");
|
|
61
|
+
expect(err.field).toBe("agents.maxConcurrent");
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
test("is instanceof AgentplateError and Error", () => {
|
|
65
|
+
const err = new ConfigError("msg");
|
|
66
|
+
expect(err).toBeInstanceOf(AgentplateError);
|
|
67
|
+
expect(err).toBeInstanceOf(Error);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test("supports cause chaining", () => {
|
|
71
|
+
const cause = new Error("parse failed");
|
|
72
|
+
const err = new ConfigError("bad yaml", { cause });
|
|
73
|
+
expect(err.cause).toBe(cause);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
describe("AgentError", () => {
|
|
78
|
+
test("sets code and name", () => {
|
|
79
|
+
const err = new AgentError("spawn failed");
|
|
80
|
+
expect(err.code).toBe("AGENT_ERROR");
|
|
81
|
+
expect(err.name).toBe("AgentError");
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
test("defaults context fields to null", () => {
|
|
85
|
+
const err = new AgentError("msg");
|
|
86
|
+
expect(err.agentName).toBeNull();
|
|
87
|
+
expect(err.capability).toBeNull();
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
test("stores context fields", () => {
|
|
91
|
+
const err = new AgentError("failed", {
|
|
92
|
+
agentName: "builder-1",
|
|
93
|
+
capability: "builder",
|
|
94
|
+
});
|
|
95
|
+
expect(err.agentName).toBe("builder-1");
|
|
96
|
+
expect(err.capability).toBe("builder");
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
test("is instanceof AgentplateError and Error", () => {
|
|
100
|
+
const err = new AgentError("msg");
|
|
101
|
+
expect(err).toBeInstanceOf(AgentplateError);
|
|
102
|
+
expect(err).toBeInstanceOf(Error);
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
test("supports cause chaining", () => {
|
|
106
|
+
const cause = new Error("tmux failed");
|
|
107
|
+
const err = new AgentError("spawn failed", { cause });
|
|
108
|
+
expect(err.cause).toBe(cause);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
describe("HierarchyError", () => {
|
|
113
|
+
test("sets code and name", () => {
|
|
114
|
+
const err = new HierarchyError("depth exceeded");
|
|
115
|
+
expect(err.code).toBe("HIERARCHY_VIOLATION");
|
|
116
|
+
expect(err.name).toBe("HierarchyError");
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
test("defaults context fields to null", () => {
|
|
120
|
+
const err = new HierarchyError("msg");
|
|
121
|
+
expect(err.agentName).toBeNull();
|
|
122
|
+
expect(err.requestedCapability).toBeNull();
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
test("stores context fields", () => {
|
|
126
|
+
const err = new HierarchyError("violation", {
|
|
127
|
+
agentName: "coordinator",
|
|
128
|
+
requestedCapability: "builder",
|
|
129
|
+
});
|
|
130
|
+
expect(err.agentName).toBe("coordinator");
|
|
131
|
+
expect(err.requestedCapability).toBe("builder");
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
test("is instanceof AgentplateError and Error", () => {
|
|
135
|
+
const err = new HierarchyError("msg");
|
|
136
|
+
expect(err).toBeInstanceOf(AgentplateError);
|
|
137
|
+
expect(err).toBeInstanceOf(Error);
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
test("supports cause chaining", () => {
|
|
141
|
+
const cause = new Error("inner");
|
|
142
|
+
const err = new HierarchyError("violation", { cause });
|
|
143
|
+
expect(err.cause).toBe(cause);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
describe("WorktreeError", () => {
|
|
148
|
+
test("sets code and name", () => {
|
|
149
|
+
const err = new WorktreeError("creation failed");
|
|
150
|
+
expect(err.code).toBe("WORKTREE_ERROR");
|
|
151
|
+
expect(err.name).toBe("WorktreeError");
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
test("defaults context fields to null", () => {
|
|
155
|
+
const err = new WorktreeError("msg");
|
|
156
|
+
expect(err.worktreePath).toBeNull();
|
|
157
|
+
expect(err.branchName).toBeNull();
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
test("stores context fields", () => {
|
|
161
|
+
const err = new WorktreeError("conflict", {
|
|
162
|
+
worktreePath: "/tmp/wt",
|
|
163
|
+
branchName: "agent/builder-1",
|
|
164
|
+
});
|
|
165
|
+
expect(err.worktreePath).toBe("/tmp/wt");
|
|
166
|
+
expect(err.branchName).toBe("agent/builder-1");
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
test("is instanceof AgentplateError and Error", () => {
|
|
170
|
+
const err = new WorktreeError("msg");
|
|
171
|
+
expect(err).toBeInstanceOf(AgentplateError);
|
|
172
|
+
expect(err).toBeInstanceOf(Error);
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
test("supports cause chaining", () => {
|
|
176
|
+
const cause = new Error("git error");
|
|
177
|
+
const err = new WorktreeError("failed", { cause });
|
|
178
|
+
expect(err.cause).toBe(cause);
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
describe("MailError", () => {
|
|
183
|
+
test("sets code and name", () => {
|
|
184
|
+
const err = new MailError("db locked");
|
|
185
|
+
expect(err.code).toBe("MAIL_ERROR");
|
|
186
|
+
expect(err.name).toBe("MailError");
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
test("defaults context fields to null", () => {
|
|
190
|
+
const err = new MailError("msg");
|
|
191
|
+
expect(err.agentName).toBeNull();
|
|
192
|
+
expect(err.messageId).toBeNull();
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
test("stores context fields", () => {
|
|
196
|
+
const err = new MailError("delivery failed", {
|
|
197
|
+
agentName: "scout-1",
|
|
198
|
+
messageId: "msg-abc",
|
|
199
|
+
});
|
|
200
|
+
expect(err.agentName).toBe("scout-1");
|
|
201
|
+
expect(err.messageId).toBe("msg-abc");
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
test("is instanceof AgentplateError and Error", () => {
|
|
205
|
+
const err = new MailError("msg");
|
|
206
|
+
expect(err).toBeInstanceOf(AgentplateError);
|
|
207
|
+
expect(err).toBeInstanceOf(Error);
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
test("supports cause chaining", () => {
|
|
211
|
+
const cause = new Error("sqlite busy");
|
|
212
|
+
const err = new MailError("failed", { cause });
|
|
213
|
+
expect(err.cause).toBe(cause);
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
describe("MergeError", () => {
|
|
218
|
+
test("sets code and name", () => {
|
|
219
|
+
const err = new MergeError("conflict");
|
|
220
|
+
expect(err.code).toBe("MERGE_ERROR");
|
|
221
|
+
expect(err.name).toBe("MergeError");
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
test("defaults context fields to null/empty", () => {
|
|
225
|
+
const err = new MergeError("msg");
|
|
226
|
+
expect(err.branchName).toBeNull();
|
|
227
|
+
expect(err.conflictFiles).toEqual([]);
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
test("stores context fields including conflictFiles array", () => {
|
|
231
|
+
const err = new MergeError("unresolvable", {
|
|
232
|
+
branchName: "agent/builder-1",
|
|
233
|
+
conflictFiles: ["src/index.ts", "src/types.ts"],
|
|
234
|
+
});
|
|
235
|
+
expect(err.branchName).toBe("agent/builder-1");
|
|
236
|
+
expect(err.conflictFiles).toEqual(["src/index.ts", "src/types.ts"]);
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
test("is instanceof AgentplateError and Error", () => {
|
|
240
|
+
const err = new MergeError("msg");
|
|
241
|
+
expect(err).toBeInstanceOf(AgentplateError);
|
|
242
|
+
expect(err).toBeInstanceOf(Error);
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
test("supports cause chaining", () => {
|
|
246
|
+
const cause = new Error("git merge failed");
|
|
247
|
+
const err = new MergeError("conflict", { cause });
|
|
248
|
+
expect(err.cause).toBe(cause);
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
|
|
252
|
+
describe("ValidationError", () => {
|
|
253
|
+
test("sets code and name", () => {
|
|
254
|
+
const err = new ValidationError("invalid input");
|
|
255
|
+
expect(err.code).toBe("VALIDATION_ERROR");
|
|
256
|
+
expect(err.name).toBe("ValidationError");
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
test("defaults context fields to null", () => {
|
|
260
|
+
const err = new ValidationError("msg");
|
|
261
|
+
expect(err.field).toBeNull();
|
|
262
|
+
expect(err.value).toBeNull();
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
test("stores context fields", () => {
|
|
266
|
+
const err = new ValidationError("bad name", {
|
|
267
|
+
field: "agentName",
|
|
268
|
+
value: "",
|
|
269
|
+
});
|
|
270
|
+
expect(err.field).toBe("agentName");
|
|
271
|
+
expect(err.value).toBe("");
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
test("is instanceof AgentplateError and Error", () => {
|
|
275
|
+
const err = new ValidationError("msg");
|
|
276
|
+
expect(err).toBeInstanceOf(AgentplateError);
|
|
277
|
+
expect(err).toBeInstanceOf(Error);
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
test("supports cause chaining", () => {
|
|
281
|
+
const cause = new Error("schema violation");
|
|
282
|
+
const err = new ValidationError("failed", { cause });
|
|
283
|
+
expect(err.cause).toBe(cause);
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
describe("GroupError", () => {
|
|
288
|
+
test("sets code and name", () => {
|
|
289
|
+
const err = new GroupError("not found");
|
|
290
|
+
expect(err.code).toBe("GROUP_ERROR");
|
|
291
|
+
expect(err.name).toBe("GroupError");
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
test("defaults groupId to null", () => {
|
|
295
|
+
const err = new GroupError("msg");
|
|
296
|
+
expect(err.groupId).toBeNull();
|
|
297
|
+
});
|
|
298
|
+
|
|
299
|
+
test("stores groupId", () => {
|
|
300
|
+
const err = new GroupError("not found", { groupId: "group-abc12345" });
|
|
301
|
+
expect(err.groupId).toBe("group-abc12345");
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
test("is instanceof AgentplateError and Error", () => {
|
|
305
|
+
const err = new GroupError("msg");
|
|
306
|
+
expect(err).toBeInstanceOf(AgentplateError);
|
|
307
|
+
expect(err).toBeInstanceOf(Error);
|
|
308
|
+
});
|
|
309
|
+
|
|
310
|
+
test("supports cause chaining", () => {
|
|
311
|
+
const cause = new Error("disk error");
|
|
312
|
+
const err = new GroupError("failed", { cause });
|
|
313
|
+
expect(err.cause).toBe(cause);
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
describe("LifecycleError", () => {
|
|
318
|
+
test("sets code and name", () => {
|
|
319
|
+
const err = new LifecycleError("checkpoint failed");
|
|
320
|
+
expect(err.code).toBe("LIFECYCLE_ERROR");
|
|
321
|
+
expect(err.name).toBe("LifecycleError");
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
test("defaults context fields to null", () => {
|
|
325
|
+
const err = new LifecycleError("msg");
|
|
326
|
+
expect(err.agentName).toBeNull();
|
|
327
|
+
expect(err.sessionId).toBeNull();
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
test("stores context fields", () => {
|
|
331
|
+
const err = new LifecycleError("handoff failed", {
|
|
332
|
+
agentName: "lead-1",
|
|
333
|
+
sessionId: "sess-xyz",
|
|
334
|
+
});
|
|
335
|
+
expect(err.agentName).toBe("lead-1");
|
|
336
|
+
expect(err.sessionId).toBe("sess-xyz");
|
|
337
|
+
});
|
|
338
|
+
|
|
339
|
+
test("is instanceof AgentplateError and Error", () => {
|
|
340
|
+
const err = new LifecycleError("msg");
|
|
341
|
+
expect(err).toBeInstanceOf(AgentplateError);
|
|
342
|
+
expect(err).toBeInstanceOf(Error);
|
|
343
|
+
});
|
|
344
|
+
|
|
345
|
+
test("supports cause chaining", () => {
|
|
346
|
+
const cause = new Error("save failed");
|
|
347
|
+
const err = new LifecycleError("checkpoint", { cause });
|
|
348
|
+
expect(err.cause).toBe(cause);
|
|
349
|
+
});
|
|
350
|
+
});
|
package/src/errors.ts
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error class for all Agentplate errors.
|
|
3
|
+
* Includes a machine-readable `code` field for programmatic handling.
|
|
4
|
+
*/
|
|
5
|
+
export class AgentplateError extends Error {
|
|
6
|
+
readonly code: string;
|
|
7
|
+
|
|
8
|
+
constructor(message: string, code: string, options?: ErrorOptions) {
|
|
9
|
+
super(message, options);
|
|
10
|
+
this.name = "AgentplateError";
|
|
11
|
+
this.code = code;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Raised when config loading or validation fails.
|
|
17
|
+
* Examples: missing config file, invalid YAML, schema violations.
|
|
18
|
+
*/
|
|
19
|
+
export class ConfigError extends AgentplateError {
|
|
20
|
+
readonly configPath: string | null;
|
|
21
|
+
readonly field: string | null;
|
|
22
|
+
|
|
23
|
+
constructor(
|
|
24
|
+
message: string,
|
|
25
|
+
context?: {
|
|
26
|
+
configPath?: string;
|
|
27
|
+
field?: string;
|
|
28
|
+
cause?: Error;
|
|
29
|
+
},
|
|
30
|
+
) {
|
|
31
|
+
super(message, "CONFIG_ERROR", { cause: context?.cause });
|
|
32
|
+
this.name = "ConfigError";
|
|
33
|
+
this.configPath = context?.configPath ?? null;
|
|
34
|
+
this.field = context?.field ?? null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Raised for agent lifecycle issues.
|
|
40
|
+
* Examples: spawn failure, agent not found, depth limit exceeded.
|
|
41
|
+
*/
|
|
42
|
+
export class AgentError extends AgentplateError {
|
|
43
|
+
readonly agentName: string | null;
|
|
44
|
+
readonly capability: string | null;
|
|
45
|
+
|
|
46
|
+
constructor(
|
|
47
|
+
message: string,
|
|
48
|
+
context?: {
|
|
49
|
+
agentName?: string;
|
|
50
|
+
capability?: string;
|
|
51
|
+
cause?: Error;
|
|
52
|
+
},
|
|
53
|
+
) {
|
|
54
|
+
super(message, "AGENT_ERROR", { cause: context?.cause });
|
|
55
|
+
this.name = "AgentError";
|
|
56
|
+
this.agentName = context?.agentName ?? null;
|
|
57
|
+
this.capability = context?.capability ?? null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Raised when hierarchy constraints are violated.
|
|
63
|
+
* Examples: coordinator spawning a builder directly instead of through a lead.
|
|
64
|
+
*/
|
|
65
|
+
export class HierarchyError extends AgentplateError {
|
|
66
|
+
readonly agentName: string | null;
|
|
67
|
+
readonly requestedCapability: string | null;
|
|
68
|
+
|
|
69
|
+
constructor(
|
|
70
|
+
message: string,
|
|
71
|
+
context?: {
|
|
72
|
+
agentName?: string;
|
|
73
|
+
requestedCapability?: string;
|
|
74
|
+
cause?: Error;
|
|
75
|
+
},
|
|
76
|
+
) {
|
|
77
|
+
super(message, "HIERARCHY_VIOLATION", { cause: context?.cause });
|
|
78
|
+
this.name = "HierarchyError";
|
|
79
|
+
this.agentName = context?.agentName ?? null;
|
|
80
|
+
this.requestedCapability = context?.requestedCapability ?? null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Raised when git worktree operations fail.
|
|
86
|
+
* Examples: worktree creation, branch conflicts, cleanup failures.
|
|
87
|
+
*/
|
|
88
|
+
export class WorktreeError extends AgentplateError {
|
|
89
|
+
readonly worktreePath: string | null;
|
|
90
|
+
readonly branchName: string | null;
|
|
91
|
+
|
|
92
|
+
constructor(
|
|
93
|
+
message: string,
|
|
94
|
+
context?: {
|
|
95
|
+
worktreePath?: string;
|
|
96
|
+
branchName?: string;
|
|
97
|
+
cause?: Error;
|
|
98
|
+
},
|
|
99
|
+
) {
|
|
100
|
+
super(message, "WORKTREE_ERROR", { cause: context?.cause });
|
|
101
|
+
this.name = "WorktreeError";
|
|
102
|
+
this.worktreePath = context?.worktreePath ?? null;
|
|
103
|
+
this.branchName = context?.branchName ?? null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Raised when mail system operations fail.
|
|
109
|
+
* Examples: DB access errors, invalid message format, delivery failures.
|
|
110
|
+
*/
|
|
111
|
+
export class MailError extends AgentplateError {
|
|
112
|
+
readonly agentName: string | null;
|
|
113
|
+
readonly messageId: string | null;
|
|
114
|
+
|
|
115
|
+
constructor(
|
|
116
|
+
message: string,
|
|
117
|
+
context?: {
|
|
118
|
+
agentName?: string;
|
|
119
|
+
messageId?: string;
|
|
120
|
+
cause?: Error;
|
|
121
|
+
},
|
|
122
|
+
) {
|
|
123
|
+
super(message, "MAIL_ERROR", { cause: context?.cause });
|
|
124
|
+
this.name = "MailError";
|
|
125
|
+
this.agentName = context?.agentName ?? null;
|
|
126
|
+
this.messageId = context?.messageId ?? null;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Raised when merge or conflict resolution fails.
|
|
132
|
+
* Examples: unresolvable conflicts, merge queue errors, tier escalation failures.
|
|
133
|
+
*/
|
|
134
|
+
export class MergeError extends AgentplateError {
|
|
135
|
+
readonly branchName: string | null;
|
|
136
|
+
readonly conflictFiles: string[];
|
|
137
|
+
|
|
138
|
+
constructor(
|
|
139
|
+
message: string,
|
|
140
|
+
context?: {
|
|
141
|
+
branchName?: string;
|
|
142
|
+
conflictFiles?: string[];
|
|
143
|
+
cause?: Error;
|
|
144
|
+
},
|
|
145
|
+
) {
|
|
146
|
+
super(message, "MERGE_ERROR", { cause: context?.cause });
|
|
147
|
+
this.name = "MergeError";
|
|
148
|
+
this.branchName = context?.branchName ?? null;
|
|
149
|
+
this.conflictFiles = context?.conflictFiles ?? [];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Raised when input validation fails.
|
|
155
|
+
* Examples: invalid agent names, malformed taskIds, bad CLI arguments.
|
|
156
|
+
*/
|
|
157
|
+
export class ValidationError extends AgentplateError {
|
|
158
|
+
readonly field: string | null;
|
|
159
|
+
readonly value: unknown;
|
|
160
|
+
|
|
161
|
+
constructor(
|
|
162
|
+
message: string,
|
|
163
|
+
context?: {
|
|
164
|
+
field?: string;
|
|
165
|
+
value?: unknown;
|
|
166
|
+
cause?: Error;
|
|
167
|
+
},
|
|
168
|
+
) {
|
|
169
|
+
super(message, "VALIDATION_ERROR", { cause: context?.cause });
|
|
170
|
+
this.name = "ValidationError";
|
|
171
|
+
this.field = context?.field ?? null;
|
|
172
|
+
this.value = context?.value ?? null;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Raised when task group operations fail.
|
|
178
|
+
* Examples: group not found, duplicate member, auto-close failures.
|
|
179
|
+
*/
|
|
180
|
+
export class GroupError extends AgentplateError {
|
|
181
|
+
readonly groupId: string | null;
|
|
182
|
+
|
|
183
|
+
constructor(
|
|
184
|
+
message: string,
|
|
185
|
+
context?: {
|
|
186
|
+
groupId?: string;
|
|
187
|
+
cause?: Error;
|
|
188
|
+
},
|
|
189
|
+
) {
|
|
190
|
+
super(message, "GROUP_ERROR", { cause: context?.cause });
|
|
191
|
+
this.name = "GroupError";
|
|
192
|
+
this.groupId = context?.groupId ?? null;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Raised when session lifecycle operations fail.
|
|
198
|
+
* Examples: checkpoint save/restore failures, handoff failures.
|
|
199
|
+
*/
|
|
200
|
+
export class LifecycleError extends AgentplateError {
|
|
201
|
+
readonly agentName: string | null;
|
|
202
|
+
readonly sessionId: string | null;
|
|
203
|
+
|
|
204
|
+
constructor(
|
|
205
|
+
message: string,
|
|
206
|
+
context?: {
|
|
207
|
+
agentName?: string;
|
|
208
|
+
sessionId?: string;
|
|
209
|
+
cause?: Error;
|
|
210
|
+
},
|
|
211
|
+
) {
|
|
212
|
+
super(message, "LIFECYCLE_ERROR", { cause: context?.cause });
|
|
213
|
+
this.name = "LifecycleError";
|
|
214
|
+
this.agentName = context?.agentName ?? null;
|
|
215
|
+
this.sessionId = context?.sessionId ?? null;
|
|
216
|
+
}
|
|
217
|
+
}
|