@compilr-dev/cli 0.4.0 → 0.5.1
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 +254 -68
- package/dist/.tsbuildinfo.app +1 -0
- package/dist/.tsbuildinfo.data +1 -0
- package/dist/.tsbuildinfo.domain +1 -0
- package/dist/.tsbuildinfo.foundation +1 -0
- package/dist/agent.d.ts +134 -4
- package/dist/agent.js +345 -166
- package/dist/anchors/index.d.ts +9 -0
- package/dist/anchors/index.js +9 -0
- package/dist/anchors/project-anchors.d.ts +79 -0
- package/dist/anchors/project-anchors.js +202 -0
- package/dist/auth/api-client.d.ts +124 -0
- package/dist/auth/api-client.js +261 -0
- package/dist/auth/index.d.ts +172 -0
- package/dist/auth/index.js +545 -0
- package/dist/auth/storage.d.ts +52 -0
- package/dist/auth/storage.js +118 -0
- package/dist/changelog/index.d.ts +16 -0
- package/dist/changelog/index.js +24 -0
- package/dist/changelog/releases.d.ts +17 -0
- package/dist/changelog/releases.js +63 -0
- package/dist/commands/index.d.ts +2 -1
- package/dist/commands-v2/handlers/auth.d.ts +10 -0
- package/dist/commands-v2/handlers/auth.js +118 -0
- package/dist/commands-v2/handlers/background.d.ts +14 -0
- package/dist/commands-v2/handlers/background.js +276 -0
- package/dist/commands-v2/handlers/context.d.ts +13 -0
- package/dist/commands-v2/handlers/context.js +533 -0
- package/dist/commands-v2/handlers/core.d.ts +14 -0
- package/dist/commands-v2/handlers/core.js +290 -0
- package/dist/commands-v2/handlers/debug.d.ts +11 -0
- package/dist/commands-v2/handlers/debug.js +177 -0
- package/dist/commands-v2/handlers/delegations.d.ts +8 -0
- package/dist/commands-v2/handlers/delegations.js +29 -0
- package/dist/commands-v2/handlers/files.d.ts +8 -0
- package/dist/commands-v2/handlers/files.js +162 -0
- package/dist/commands-v2/handlers/filter.d.ts +9 -0
- package/dist/commands-v2/handlers/filter.js +130 -0
- package/dist/commands-v2/handlers/games.d.ts +7 -0
- package/dist/commands-v2/handlers/games.js +57 -0
- package/dist/commands-v2/handlers/index.d.ts +25 -0
- package/dist/commands-v2/handlers/index.js +63 -0
- package/dist/commands-v2/handlers/mcp.d.ts +8 -0
- package/dist/commands-v2/handlers/mcp.js +39 -0
- package/dist/commands-v2/handlers/notifications.d.ts +9 -0
- package/dist/commands-v2/handlers/notifications.js +34 -0
- package/dist/commands-v2/handlers/project.d.ts +22 -0
- package/dist/commands-v2/handlers/project.js +1035 -0
- package/dist/commands-v2/handlers/reset.d.ts +11 -0
- package/dist/commands-v2/handlers/reset.js +118 -0
- package/dist/commands-v2/handlers/session.d.ts +161 -0
- package/dist/commands-v2/handlers/session.js +805 -0
- package/dist/commands-v2/handlers/settings.d.ts +17 -0
- package/dist/commands-v2/handlers/settings.js +417 -0
- package/dist/commands-v2/handlers/tasks.d.ts +5 -0
- package/dist/commands-v2/handlers/tasks.js +36 -0
- package/dist/commands-v2/handlers/team.d.ts +9 -0
- package/dist/commands-v2/handlers/team.js +549 -0
- package/dist/commands-v2/handlers/terminals.d.ts +9 -0
- package/dist/commands-v2/handlers/terminals.js +34 -0
- package/dist/commands-v2/index.d.ts +14 -0
- package/dist/commands-v2/index.js +18 -0
- package/dist/commands-v2/registry.d.ts +52 -0
- package/dist/commands-v2/registry.js +114 -0
- package/dist/commands-v2/types.d.ts +153 -0
- package/dist/commands-v2/types.js +7 -0
- package/dist/commands.js +123 -7
- package/dist/compilr-diff-companion.vsix +0 -0
- package/dist/db/index.js +98 -4
- package/dist/db/repositories/document-repository.d.ts +2 -0
- package/dist/db/repositories/document-repository.js +5 -1
- package/dist/db/repositories/index.d.ts +2 -0
- package/dist/db/repositories/index.js +1 -0
- package/dist/db/repositories/plan-repository.d.ts +101 -0
- package/dist/db/repositories/plan-repository.js +275 -0
- package/dist/db/repositories/project-repository.d.ts +6 -0
- package/dist/db/repositories/project-repository.js +41 -0
- package/dist/db/repositories/work-item-repository.d.ts +15 -0
- package/dist/db/repositories/work-item-repository.js +69 -4
- package/dist/db/schema.d.ts +40 -3
- package/dist/db/schema.js +66 -3
- package/dist/episodes/index.d.ts +20 -0
- package/dist/episodes/index.js +27 -0
- package/dist/episodes/recorder.d.ts +51 -0
- package/dist/episodes/recorder.js +195 -0
- package/dist/episodes/significant-work.d.ts +21 -0
- package/dist/episodes/significant-work.js +56 -0
- package/dist/episodes/store.d.ts +38 -0
- package/dist/episodes/store.js +199 -0
- package/dist/episodes/types.d.ts +35 -0
- package/dist/episodes/types.js +6 -0
- package/dist/episodes/work-at-risk.d.ts +12 -0
- package/dist/episodes/work-at-risk.js +38 -0
- package/dist/episodes/work-summary-anchor.d.ts +23 -0
- package/dist/episodes/work-summary-anchor.js +73 -0
- package/dist/games/coins.d.ts +66 -0
- package/dist/games/coins.js +165 -0
- package/dist/games/game-base.d.ts +84 -0
- package/dist/games/game-base.js +204 -0
- package/dist/games/index.d.ts +16 -0
- package/dist/games/index.js +49 -0
- package/dist/games/scores.d.ts +69 -0
- package/dist/games/scores.js +191 -0
- package/dist/games/tetris/board.d.ts +59 -0
- package/dist/games/tetris/board.js +170 -0
- package/dist/games/tetris/index.d.ts +109 -0
- package/dist/games/tetris/index.js +610 -0
- package/dist/games/tetris/pieces.d.ts +44 -0
- package/dist/games/tetris/pieces.js +271 -0
- package/dist/games/tetris/renderer.d.ts +26 -0
- package/dist/games/tetris/renderer.js +77 -0
- package/dist/guide/guide-content.d.ts +23 -0
- package/dist/guide/guide-content.js +196 -0
- package/dist/guide/index.d.ts +8 -0
- package/dist/guide/index.js +7 -0
- package/dist/guide/shared-content.d.ts +37 -0
- package/dist/guide/shared-content.js +1272 -0
- package/dist/guide/tutorial-helpers.d.ts +57 -0
- package/dist/guide/tutorial-helpers.js +147 -0
- package/dist/handlers/ask-user-handlers.d.ts +32 -0
- package/dist/handlers/ask-user-handlers.js +104 -0
- package/dist/handlers/delegation-handlers.d.ts +34 -0
- package/dist/handlers/delegation-handlers.js +291 -0
- package/dist/handlers/permission-handler.d.ts +30 -0
- package/dist/handlers/permission-handler.js +205 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.js +615 -179
- package/dist/input-handlers/index.d.ts +7 -0
- package/dist/input-handlers/index.js +7 -0
- package/dist/input-handlers/memory-handler.d.ts +26 -0
- package/dist/input-handlers/memory-handler.js +69 -0
- package/dist/models/index.d.ts +10 -0
- package/dist/models/index.js +12 -0
- package/dist/models/model-registry.d.ts +38 -0
- package/dist/models/model-registry.js +69 -0
- package/dist/models/model-tiers.d.ts +28 -0
- package/dist/models/model-tiers.js +71 -0
- package/dist/models/model-validation.d.ts +25 -0
- package/dist/models/model-validation.js +291 -0
- package/dist/models/ollama-models.d.ts +73 -0
- package/dist/models/ollama-models.js +178 -0
- package/dist/models/provider-types.d.ts +6 -0
- package/dist/models/provider-types.js +1 -0
- package/dist/models/providers.d.ts +35 -0
- package/dist/models/providers.js +58 -0
- package/dist/models/types.d.ts +4 -0
- package/dist/models/types.js +4 -0
- package/dist/multi-agent/activity.d.ts +21 -0
- package/dist/multi-agent/activity.js +34 -0
- package/dist/multi-agent/agent-selection.d.ts +55 -0
- package/dist/multi-agent/agent-selection.js +90 -0
- package/dist/multi-agent/artifacts.d.ts +197 -0
- package/dist/multi-agent/artifacts.js +379 -0
- package/dist/multi-agent/checkpointer.d.ts +138 -0
- package/dist/multi-agent/checkpointer.js +471 -0
- package/dist/multi-agent/collision-utils.d.ts +16 -0
- package/dist/multi-agent/collision-utils.js +28 -0
- package/dist/multi-agent/context-resolver.d.ts +97 -0
- package/dist/multi-agent/context-resolver.js +316 -0
- package/dist/multi-agent/custom-agents.d.ts +83 -0
- package/dist/multi-agent/custom-agents.js +227 -0
- package/dist/multi-agent/delegation-tracker.d.ts +157 -0
- package/dist/multi-agent/delegation-tracker.js +243 -0
- package/dist/multi-agent/file-lock-hook.d.ts +29 -0
- package/dist/multi-agent/file-lock-hook.js +97 -0
- package/dist/multi-agent/file-locks.d.ts +58 -0
- package/dist/multi-agent/file-locks.js +194 -0
- package/dist/multi-agent/index.d.ts +24 -0
- package/dist/multi-agent/index.js +30 -0
- package/dist/multi-agent/mention-parser.d.ts +64 -0
- package/dist/multi-agent/mention-parser.js +146 -0
- package/dist/multi-agent/notification-manager.d.ts +84 -0
- package/dist/multi-agent/notification-manager.js +224 -0
- package/dist/multi-agent/pending-requests.d.ts +122 -0
- package/dist/multi-agent/pending-requests.js +155 -0
- package/dist/multi-agent/session-registry.d.ts +139 -0
- package/dist/multi-agent/session-registry.js +514 -0
- package/dist/multi-agent/shared-context.d.ts +293 -0
- package/dist/multi-agent/shared-context.js +671 -0
- package/dist/multi-agent/skill-requirements.d.ts +66 -0
- package/dist/multi-agent/skill-requirements.js +178 -0
- package/dist/multi-agent/task-assignment.d.ts +69 -0
- package/dist/multi-agent/task-assignment.js +123 -0
- package/dist/multi-agent/task-suggestion.d.ts +31 -0
- package/dist/multi-agent/task-suggestion.js +72 -0
- package/dist/multi-agent/team-agent.d.ts +201 -0
- package/dist/multi-agent/team-agent.js +488 -0
- package/dist/multi-agent/team.d.ts +286 -0
- package/dist/multi-agent/team.js +610 -0
- package/dist/multi-agent/tool-config.d.ts +110 -0
- package/dist/multi-agent/tool-config.js +661 -0
- package/dist/multi-agent/types.d.ts +211 -0
- package/dist/multi-agent/types.js +617 -0
- package/dist/prompts/plan-mode-prompt.d.ts +11 -0
- package/dist/prompts/plan-mode-prompt.js +95 -0
- package/dist/repl-helpers.d.ts +63 -0
- package/dist/repl-helpers.js +319 -0
- package/dist/repl-v2.d.ts +554 -0
- package/dist/repl-v2.js +3286 -0
- package/dist/session/index.d.ts +6 -0
- package/dist/session/index.js +6 -0
- package/dist/session/project-session-manager.d.ts +158 -0
- package/dist/session/project-session-manager.js +650 -0
- package/dist/settings/index.d.ts +156 -13
- package/dist/settings/index.js +377 -24
- package/dist/settings/mcp-config.d.ts +76 -0
- package/dist/settings/mcp-config.js +143 -0
- package/dist/settings/paths.d.ts +114 -0
- package/dist/settings/paths.js +270 -0
- package/dist/shared-handlers.d.ts +62 -0
- package/dist/shared-handlers.js +48 -0
- package/dist/system-prompt/builder.d.ts +5 -0
- package/dist/system-prompt/builder.js +4 -0
- package/dist/system-prompt/index.d.ts +18 -0
- package/dist/system-prompt/index.js +18 -0
- package/dist/system-prompt/modules.d.ts +5 -0
- package/dist/system-prompt/modules.js +4 -0
- package/dist/tabbed-menu.js +2 -1
- package/dist/templates/compilr-md-import.d.ts +16 -0
- package/dist/templates/compilr-md-import.js +241 -0
- package/dist/templates/compilr-md.js +10 -58
- package/dist/templates/config-json.d.ts +1 -25
- package/dist/templates/index.d.ts +2 -0
- package/dist/templates/index.js +35 -75
- package/dist/themes/colors.js +3 -1
- package/dist/themes/registry.d.ts +5 -36
- package/dist/themes/registry.js +11 -95
- package/dist/themes/types.d.ts +3 -38
- package/dist/themes/types.js +2 -2
- package/dist/tool-names.d.ts +108 -0
- package/dist/tool-names.js +227 -0
- package/dist/tools/anchor-tools.d.ts +31 -0
- package/dist/tools/anchor-tools.js +255 -0
- package/dist/tools/artifact-tools.d.ts +42 -0
- package/dist/tools/artifact-tools.js +328 -0
- package/dist/tools/ask-user-simple.d.ts +1 -1
- package/dist/tools/ask-user-simple.js +2 -1
- package/dist/tools/ask-user.d.ts +1 -1
- package/dist/tools/ask-user.js +2 -1
- package/dist/tools/backlog-wrappers.d.ts +56 -0
- package/dist/tools/backlog-wrappers.js +353 -0
- package/dist/tools/backlog.d.ts +2 -2
- package/dist/tools/backlog.js +2 -2
- package/dist/tools/db-tools.d.ts +12 -0
- package/dist/tools/db-tools.js +14 -0
- package/dist/tools/delegate-background.d.ts +27 -0
- package/dist/tools/delegate-background.js +115 -0
- package/dist/tools/delegate.d.ts +22 -0
- package/dist/tools/delegate.js +97 -0
- package/dist/tools/delegation-status.d.ts +16 -0
- package/dist/tools/delegation-status.js +128 -0
- package/dist/tools/document-db.d.ts +43 -0
- package/dist/tools/document-db.js +220 -0
- package/dist/tools/guide-tool.d.ts +12 -0
- package/dist/tools/guide-tool.js +59 -0
- package/dist/tools/handoff.d.ts +25 -0
- package/dist/tools/handoff.js +99 -0
- package/dist/tools/meta-tools.d.ts +26 -0
- package/dist/tools/meta-tools.js +47 -0
- package/dist/tools/plan-tools.d.ts +54 -0
- package/dist/tools/plan-tools.js +338 -0
- package/dist/tools/platform-adapter.d.ts +29 -0
- package/dist/tools/platform-adapter.js +394 -0
- package/dist/tools/project-db.d.ts +34 -0
- package/dist/tools/project-db.js +39 -0
- package/dist/tools/recall-work-tool.d.ts +18 -0
- package/dist/tools/recall-work-tool.js +82 -0
- package/dist/tools/workitem-db.d.ts +135 -0
- package/dist/tools/workitem-db.js +730 -0
- package/dist/tools.d.ts +67 -2
- package/dist/tools.js +238 -38
- package/dist/ui/ask-user-overlay.d.ts +2 -2
- package/dist/ui/ask-user-overlay.js +443 -535
- package/dist/ui/ask-user-simple-overlay.d.ts +2 -2
- package/dist/ui/ask-user-simple-overlay.js +182 -209
- package/dist/ui/autocomplete-controller.d.ts +42 -0
- package/dist/ui/autocomplete-controller.js +384 -0
- package/dist/ui/base/index.d.ts +26 -0
- package/dist/ui/base/index.js +33 -0
- package/dist/ui/base/inline-overlay-utils.d.ts +217 -0
- package/dist/ui/base/inline-overlay-utils.js +320 -0
- package/dist/ui/base/inline-overlay.d.ts +159 -0
- package/dist/ui/base/inline-overlay.js +257 -0
- package/dist/ui/base/key-utils.d.ts +15 -0
- package/dist/ui/base/key-utils.js +30 -0
- package/dist/ui/base/overlay-base-v2.d.ts +203 -0
- package/dist/ui/base/overlay-base-v2.js +260 -0
- package/dist/ui/base/overlay-base.d.ts +156 -0
- package/dist/ui/base/overlay-base.js +238 -0
- package/dist/ui/base/overlay-lifecycle.d.ts +65 -0
- package/dist/ui/base/overlay-lifecycle.js +159 -0
- package/dist/ui/base/overlay-types.d.ts +185 -0
- package/dist/ui/base/overlay-types.js +7 -0
- package/dist/ui/base/render-utils.d.ts +27 -0
- package/dist/ui/base/render-utils.js +36 -0
- package/dist/ui/base/screen-stack.d.ts +148 -0
- package/dist/ui/base/screen-stack.js +184 -0
- package/dist/ui/base/tabbed-list-overlay-v2.d.ts +118 -0
- package/dist/ui/base/tabbed-list-overlay-v2.js +335 -0
- package/dist/ui/base/tabbed-list-overlay.d.ts +153 -0
- package/dist/ui/base/tabbed-list-overlay.js +369 -0
- package/dist/ui/constants/labels.d.ts +14 -0
- package/dist/ui/constants/labels.js +51 -0
- package/dist/ui/conversation-store.d.ts +55 -0
- package/dist/ui/conversation-store.js +107 -0
- package/dist/ui/conversation.d.ts +75 -4
- package/dist/ui/conversation.js +376 -165
- package/dist/ui/diff.d.ts +7 -1
- package/dist/ui/diff.js +85 -48
- package/dist/ui/ephemeral.d.ts +1 -1
- package/dist/ui/ephemeral.js +4 -10
- package/dist/ui/features/index.d.ts +34 -0
- package/dist/ui/features/index.js +34 -0
- package/dist/ui/features/input-feature.d.ts +85 -0
- package/dist/ui/features/input-feature.js +238 -0
- package/dist/ui/features/list-feature.d.ts +155 -0
- package/dist/ui/features/list-feature.js +244 -0
- package/dist/ui/features/pagination-feature.d.ts +154 -0
- package/dist/ui/features/pagination-feature.js +238 -0
- package/dist/ui/features/search-feature.d.ts +148 -0
- package/dist/ui/features/search-feature.js +185 -0
- package/dist/ui/features/tab-feature.d.ts +194 -0
- package/dist/ui/features/tab-feature.js +307 -0
- package/dist/ui/file-autocomplete.d.ts +24 -0
- package/dist/ui/file-autocomplete.js +56 -0
- package/dist/ui/footer-renderer.d.ts +69 -0
- package/dist/ui/footer-renderer.js +431 -0
- package/dist/ui/footer.d.ts +181 -7
- package/dist/ui/footer.js +523 -74
- package/dist/ui/guardrail-overlay.d.ts +29 -0
- package/dist/ui/guardrail-overlay.js +145 -0
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +1 -3
- package/dist/ui/input-controller.d.ts +51 -0
- package/dist/ui/input-controller.js +176 -0
- package/dist/ui/input-prompt.d.ts +135 -33
- package/dist/ui/input-prompt.js +728 -337
- package/dist/ui/iteration-limit-overlay.d.ts +2 -2
- package/dist/ui/iteration-limit-overlay.js +92 -128
- package/dist/ui/keyboard-handler.d.ts +57 -0
- package/dist/ui/keyboard-handler.js +557 -0
- package/dist/ui/keys-overlay.d.ts +1 -0
- package/dist/ui/keys-overlay.js +203 -141
- package/dist/ui/line-utils.d.ts +88 -0
- package/dist/ui/line-utils.js +150 -0
- package/dist/ui/live-region-facade.d.ts +42 -0
- package/dist/ui/live-region-facade.js +205 -0
- package/dist/ui/live-region.d.ts +157 -0
- package/dist/ui/live-region.js +379 -0
- package/dist/ui/mascot/expressions.d.ts +32 -0
- package/dist/ui/mascot/expressions.js +213 -0
- package/dist/ui/mascot/index.d.ts +8 -0
- package/dist/ui/mascot/index.js +8 -0
- package/dist/ui/mascot/renderer.d.ts +19 -0
- package/dist/ui/mascot/renderer.js +132 -0
- package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
- package/dist/ui/overlay/data/tutorial-content.js +9 -0
- package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
- package/dist/ui/overlay/data/tutorial-registry.js +116 -0
- package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
- package/dist/ui/overlay/data/tutorial-types.js +6 -0
- package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
- package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
- package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
- package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
- package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
- package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
- package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
- package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
- package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
- package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
- package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
- package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
- package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
- package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
- package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
- package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
- package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
- package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
- package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
- package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
- package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
- package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
- package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
- package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
- package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
- package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
- package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
- package/dist/ui/overlay/impl/agents-overlay-v2.d.ts +45 -0
- package/dist/ui/overlay/impl/agents-overlay-v2.js +814 -0
- package/dist/ui/overlay/impl/anchors-overlay-v2.d.ts +47 -0
- package/dist/ui/overlay/impl/anchors-overlay-v2.js +749 -0
- package/dist/ui/overlay/impl/arch-type-overlay-v2.d.ts +37 -0
- package/dist/ui/overlay/impl/arch-type-overlay-v2.js +240 -0
- package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
- package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
- package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
- package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
- package/dist/ui/overlay/impl/ask-user-overlay-v2.d.ts +72 -0
- package/dist/ui/overlay/impl/ask-user-overlay-v2.js +581 -0
- package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.d.ts +46 -0
- package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.js +204 -0
- package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
- package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
- package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +52 -0
- package/dist/ui/overlay/impl/backlog-overlay-v2.js +681 -0
- package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
- package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
- package/dist/ui/overlay/impl/commands-overlay-v2.d.ts +33 -0
- package/dist/ui/overlay/impl/commands-overlay-v2.js +439 -0
- package/dist/ui/overlay/impl/config-overlay-v2.d.ts +111 -0
- package/dist/ui/overlay/impl/config-overlay-v2.js +718 -0
- package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
- package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
- package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +57 -0
- package/dist/ui/overlay/impl/dashboard-overlay-v2.js +382 -0
- package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
- package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
- package/dist/ui/overlay/impl/docs-overlay-v2.d.ts +45 -0
- package/dist/ui/overlay/impl/docs-overlay-v2.js +117 -0
- package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +84 -0
- package/dist/ui/overlay/impl/document-detail-overlay-v2.js +1112 -0
- package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
- package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
- package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
- package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
- package/dist/ui/overlay/impl/guardrail-overlay-v2.d.ts +43 -0
- package/dist/ui/overlay/impl/guardrail-overlay-v2.js +114 -0
- package/dist/ui/overlay/impl/help-overlay-v2.d.ts +57 -0
- package/dist/ui/overlay/impl/help-overlay-v2.js +287 -0
- package/dist/ui/overlay/impl/init-setup-overlay-v2.d.ts +25 -0
- package/dist/ui/overlay/impl/init-setup-overlay-v2.js +97 -0
- package/dist/ui/overlay/impl/iteration-limit-overlay-v2.d.ts +35 -0
- package/dist/ui/overlay/impl/iteration-limit-overlay-v2.js +105 -0
- package/dist/ui/overlay/impl/keys-overlay-v2.d.ts +41 -0
- package/dist/ui/overlay/impl/keys-overlay-v2.js +248 -0
- package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
- package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
- package/dist/ui/overlay/impl/mascot-overlay-v2.d.ts +41 -0
- package/dist/ui/overlay/impl/mascot-overlay-v2.js +138 -0
- package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
- package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
- package/dist/ui/overlay/impl/model-overlay-v2.d.ts +93 -0
- package/dist/ui/overlay/impl/model-overlay-v2.js +1143 -0
- package/dist/ui/overlay/impl/model-warning-overlay-v2.d.ts +46 -0
- package/dist/ui/overlay/impl/model-warning-overlay-v2.js +132 -0
- package/dist/ui/overlay/impl/new-overlay-v2.d.ts +108 -0
- package/dist/ui/overlay/impl/new-overlay-v2.js +1243 -0
- package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
- package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
- package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
- package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
- package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
- package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
- package/dist/ui/overlay/impl/permission-overlay-v2.d.ts +36 -0
- package/dist/ui/overlay/impl/permission-overlay-v2.js +380 -0
- package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
- package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
- package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
- package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
- package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
- package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
- package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +37 -0
- package/dist/ui/overlay/impl/projects-overlay-v2.js +733 -0
- package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
- package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
- package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
- package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
- package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
- package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
- package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
- package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
- package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
- package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
- package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
- package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
- package/dist/ui/overlay/impl/theme-overlay-v2.d.ts +42 -0
- package/dist/ui/overlay/impl/theme-overlay-v2.js +135 -0
- package/dist/ui/overlay/impl/tools-overlay-v2.d.ts +47 -0
- package/dist/ui/overlay/impl/tools-overlay-v2.js +214 -0
- package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +45 -0
- package/dist/ui/overlay/impl/tutorial-overlay-v2.js +212 -0
- package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +80 -0
- package/dist/ui/overlay/impl/workflow-overlay-v2.js +641 -0
- package/dist/ui/overlay/index.d.ts +52 -0
- package/dist/ui/overlay/index.js +54 -0
- package/dist/ui/overlay/key-utils.d.ts +6 -0
- package/dist/ui/overlay/key-utils.js +6 -0
- package/dist/ui/overlay/types.d.ts +140 -0
- package/dist/ui/overlay/types.js +22 -0
- package/dist/ui/overlay-manager.d.ts +43 -0
- package/dist/ui/overlay-manager.js +238 -0
- package/dist/ui/overlays.d.ts +0 -4
- package/dist/ui/overlays.js +4 -460
- package/dist/ui/permission-overlay.d.ts +1 -1
- package/dist/ui/permission-overlay.js +189 -300
- package/dist/ui/providers/types.d.ts +178 -0
- package/dist/ui/providers/types.js +9 -0
- package/dist/ui/render-modes.d.ts +36 -0
- package/dist/ui/render-modes.js +44 -0
- package/dist/ui/startup-menu.d.ts +36 -0
- package/dist/ui/startup-menu.js +236 -0
- package/dist/ui/status-bar-controller.d.ts +33 -0
- package/dist/ui/status-bar-controller.js +99 -0
- package/dist/ui/subagent-renderer.d.ts +117 -0
- package/dist/ui/subagent-renderer.js +318 -0
- package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
- package/dist/ui/terminal-autocomplete-utils.js +83 -0
- package/dist/ui/terminal-codes.d.ts +94 -0
- package/dist/ui/terminal-codes.js +124 -0
- package/dist/ui/terminal-line-builders.d.ts +17 -0
- package/dist/ui/terminal-line-builders.js +42 -0
- package/dist/ui/terminal-render-item.d.ts +16 -0
- package/dist/ui/terminal-render-item.js +267 -0
- package/dist/ui/terminal-renderer.d.ts +220 -0
- package/dist/ui/terminal-renderer.js +750 -0
- package/dist/ui/terminal-types.d.ts +179 -0
- package/dist/ui/terminal-types.js +34 -0
- package/dist/ui/terminal-ui.d.ts +331 -0
- package/dist/ui/terminal-ui.js +819 -0
- package/dist/ui/terminal.d.ts +20 -0
- package/dist/ui/terminal.js +72 -0
- package/dist/ui/todo-zone.d.ts +19 -1
- package/dist/ui/todo-zone.js +124 -38
- package/dist/ui/tool-formatters.d.ts +16 -0
- package/dist/ui/tool-formatters.js +1027 -0
- package/dist/ui/turn-metrics.d.ts +56 -0
- package/dist/ui/turn-metrics.js +75 -0
- package/dist/ui/types.d.ts +28 -0
- package/dist/ui/types.js +1 -0
- package/dist/ui/vscode-diff-ipc.d.ts +102 -0
- package/dist/ui/vscode-diff-ipc.js +385 -0
- package/dist/utils/credentials.d.ts +24 -5
- package/dist/utils/credentials.js +123 -9
- package/dist/utils/debug-log.d.ts +28 -0
- package/dist/utils/debug-log.js +57 -0
- package/dist/utils/format-tokens.d.ts +13 -0
- package/dist/utils/format-tokens.js +18 -0
- package/dist/utils/git-config.d.ts +26 -0
- package/dist/utils/git-config.js +54 -0
- package/dist/utils/message-utils.d.ts +61 -0
- package/dist/utils/message-utils.js +72 -0
- package/dist/utils/model-tiers.d.ts +8 -1
- package/dist/utils/model-tiers.js +39 -17
- package/dist/utils/open-browser.d.ts +5 -0
- package/dist/utils/open-browser.js +32 -0
- package/dist/utils/path-safety.d.ts +56 -0
- package/dist/utils/path-safety.js +240 -0
- package/dist/utils/project-detection.d.ts +58 -0
- package/dist/utils/project-detection.js +424 -0
- package/dist/utils/project-memory.js +2 -1
- package/dist/utils/project-status.d.ts +2 -2
- package/dist/utils/startup-perf.d.ts +18 -0
- package/dist/utils/startup-perf.js +60 -0
- package/dist/utils/token-tracker.d.ts +62 -0
- package/dist/utils/token-tracker.js +150 -0
- package/dist/utils/token-types.d.ts +23 -0
- package/dist/utils/token-types.js +18 -0
- package/dist/utils/types/config-types.d.ts +32 -0
- package/dist/utils/types/config-types.js +8 -0
- package/dist/utils/update-checker.d.ts +28 -0
- package/dist/utils/update-checker.js +106 -0
- package/dist/utils/version.d.ts +7 -0
- package/dist/utils/version.js +10 -0
- package/dist/utils/vscode-detect.d.ts +39 -0
- package/dist/utils/vscode-detect.js +137 -0
- package/dist/workflow/guided-mode-injector.d.ts +42 -0
- package/dist/workflow/guided-mode-injector.js +191 -0
- package/dist/workflow/index.d.ts +8 -0
- package/dist/workflow/index.js +8 -0
- package/dist/workflow/step-criteria.d.ts +62 -0
- package/dist/workflow/step-criteria.js +150 -0
- package/dist/workflow/step-tracker.d.ts +92 -0
- package/dist/workflow/step-tracker.js +141 -0
- package/package.json +32 -12
- package/dist/index.old.d.ts +0 -7
- package/dist/index.old.js +0 -1014
- package/dist/repl.d.ts +0 -121
- package/dist/repl.js +0 -1878
- package/dist/templates/claude-md.d.ts +0 -7
- package/dist/templates/claude-md.js +0 -189
- package/dist/test-autocomplete.d.ts +0 -7
- package/dist/test-autocomplete.js +0 -85
- package/dist/test-tabbed-menu.d.ts +0 -7
- package/dist/test-tabbed-menu.js +0 -25
- package/dist/tool-selector.d.ts +0 -71
- package/dist/tool-selector.js +0 -184
- package/dist/ui/agents-overlay.d.ts +0 -12
- package/dist/ui/agents-overlay.js +0 -501
- package/dist/ui/arch-type-overlay.d.ts +0 -20
- package/dist/ui/arch-type-overlay.js +0 -229
- package/dist/ui/backlog-overlay.d.ts +0 -17
- package/dist/ui/backlog-overlay.js +0 -786
- package/dist/ui/commands-overlay.d.ts +0 -11
- package/dist/ui/commands-overlay.js +0 -410
- package/dist/ui/config-overlay.d.ts +0 -34
- package/dist/ui/config-overlay.js +0 -977
- package/dist/ui/init-overlay.d.ts +0 -24
- package/dist/ui/init-overlay.js +0 -525
- package/dist/ui/input-prompt-v2.d.ts +0 -179
- package/dist/ui/input-prompt-v2.js +0 -991
- package/dist/ui/model-warning-overlay.d.ts +0 -30
- package/dist/ui/model-warning-overlay.js +0 -171
- package/dist/ui/tools-overlay.d.ts +0 -26
- package/dist/ui/tools-overlay.js +0 -278
- package/dist/ui/tutorial-overlay.d.ts +0 -10
- package/dist/ui/tutorial-overlay.js +0 -936
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backlog Tool Wrappers
|
|
3
|
+
*
|
|
4
|
+
* These wrappers provide `backlog_read` and `backlog_write` tools that skills expect,
|
|
5
|
+
* but internally delegate to the `workitem_*` database tools.
|
|
6
|
+
*
|
|
7
|
+
* This allows library skills (which reference backlog_*) to work seamlessly
|
|
8
|
+
* with the CLI's database-backed workitem system.
|
|
9
|
+
*/
|
|
10
|
+
import { defineTool, createSuccessResult, createErrorResult } from '@compilr-dev/sdk';
|
|
11
|
+
import { workItemRepository } from '../db/repositories/index.js';
|
|
12
|
+
import { getActiveProject } from './project-db.js';
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Type Mappings (Library ↔ CLI)
|
|
15
|
+
// =============================================================================
|
|
16
|
+
// Library status → CLI status
|
|
17
|
+
const STATUS_TO_CLI = {
|
|
18
|
+
'backlog': 'backlog',
|
|
19
|
+
'in-progress': 'in_progress',
|
|
20
|
+
'done': 'completed',
|
|
21
|
+
'blocked': 'skipped', // closest match
|
|
22
|
+
};
|
|
23
|
+
// CLI status → Library status
|
|
24
|
+
const STATUS_TO_LIBRARY = {
|
|
25
|
+
'backlog': 'backlog',
|
|
26
|
+
'in_progress': 'in-progress',
|
|
27
|
+
'completed': 'done',
|
|
28
|
+
'skipped': 'blocked',
|
|
29
|
+
};
|
|
30
|
+
// Library type → CLI type
|
|
31
|
+
const TYPE_TO_CLI = {
|
|
32
|
+
'feature': 'feature',
|
|
33
|
+
'bug': 'bug',
|
|
34
|
+
'chore': 'chore',
|
|
35
|
+
'spike': 'tech-debt', // closest match
|
|
36
|
+
};
|
|
37
|
+
// CLI type → Library type
|
|
38
|
+
const TYPE_TO_LIBRARY = {
|
|
39
|
+
'feature': 'feature',
|
|
40
|
+
'bug': 'bug',
|
|
41
|
+
'chore': 'chore',
|
|
42
|
+
'tech-debt': 'spike',
|
|
43
|
+
};
|
|
44
|
+
export const backlogReadTool = defineTool({
|
|
45
|
+
name: 'backlog_read',
|
|
46
|
+
description: 'Read backlog items from the project. ' +
|
|
47
|
+
'Use filters to narrow results. Use id parameter to get a specific item. ' +
|
|
48
|
+
'Returns items sorted by priority (critical first) then by creation date.',
|
|
49
|
+
inputSchema: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
properties: {
|
|
52
|
+
id: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
description: 'Get a specific item by ID (e.g., "FEAT-001")',
|
|
55
|
+
},
|
|
56
|
+
status: {
|
|
57
|
+
type: 'string',
|
|
58
|
+
enum: ['backlog', 'in-progress', 'done', 'blocked'],
|
|
59
|
+
description: 'Filter by status',
|
|
60
|
+
},
|
|
61
|
+
type: {
|
|
62
|
+
type: 'string',
|
|
63
|
+
enum: ['feature', 'bug', 'chore', 'spike'],
|
|
64
|
+
description: 'Filter by item type',
|
|
65
|
+
},
|
|
66
|
+
search: {
|
|
67
|
+
type: 'string',
|
|
68
|
+
description: 'Search in title and description',
|
|
69
|
+
},
|
|
70
|
+
priority: {
|
|
71
|
+
type: 'string',
|
|
72
|
+
enum: ['critical', 'high', 'medium', 'low'],
|
|
73
|
+
description: 'Filter by priority',
|
|
74
|
+
},
|
|
75
|
+
limit: {
|
|
76
|
+
type: 'number',
|
|
77
|
+
description: 'Maximum items to return (default: 20)',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
execute: async (input) => {
|
|
82
|
+
try {
|
|
83
|
+
// Note: workItemRepository methods are synchronous, but we keep async for interface consistency
|
|
84
|
+
await Promise.resolve();
|
|
85
|
+
const projectId = getActiveProject()?.id;
|
|
86
|
+
if (!projectId) {
|
|
87
|
+
return createSuccessResult({
|
|
88
|
+
items: [],
|
|
89
|
+
total: 0,
|
|
90
|
+
filtered: 0,
|
|
91
|
+
message: 'No active project. Use /projects to select a project first.',
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
// If specific ID requested, look it up directly
|
|
95
|
+
if (input.id) {
|
|
96
|
+
const item = workItemRepository.getByItemId(projectId, input.id);
|
|
97
|
+
if (!item) {
|
|
98
|
+
return createErrorResult(`Item not found: ${input.id}`);
|
|
99
|
+
}
|
|
100
|
+
return createSuccessResult({
|
|
101
|
+
items: [{
|
|
102
|
+
id: item.itemId,
|
|
103
|
+
type: TYPE_TO_LIBRARY[item.type],
|
|
104
|
+
title: item.title,
|
|
105
|
+
description: item.description || '',
|
|
106
|
+
status: STATUS_TO_LIBRARY[item.status],
|
|
107
|
+
priority: item.priority,
|
|
108
|
+
}],
|
|
109
|
+
total: 1,
|
|
110
|
+
filtered: 1,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
// Build query
|
|
114
|
+
const queryInput = {
|
|
115
|
+
project_id: projectId,
|
|
116
|
+
status: input.status ? STATUS_TO_CLI[input.status] : 'all',
|
|
117
|
+
type: input.type ? TYPE_TO_CLI[input.type] : 'all',
|
|
118
|
+
priority: input.priority || 'all',
|
|
119
|
+
search: input.search,
|
|
120
|
+
limit: input.limit || 20,
|
|
121
|
+
offset: 0,
|
|
122
|
+
};
|
|
123
|
+
const result = workItemRepository.query(queryInput);
|
|
124
|
+
// Map items to library format
|
|
125
|
+
const items = result.items.map((item) => ({
|
|
126
|
+
id: item.itemId,
|
|
127
|
+
type: TYPE_TO_LIBRARY[item.type],
|
|
128
|
+
title: item.title,
|
|
129
|
+
description: item.description || '',
|
|
130
|
+
status: STATUS_TO_LIBRARY[item.status],
|
|
131
|
+
priority: item.priority,
|
|
132
|
+
createdAt: item.createdAt.toISOString(),
|
|
133
|
+
updatedAt: item.createdAt.toISOString(), // DB doesn't track updatedAt separately
|
|
134
|
+
}));
|
|
135
|
+
return createSuccessResult({
|
|
136
|
+
items,
|
|
137
|
+
total: result.total,
|
|
138
|
+
filtered: items.length,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
return createErrorResult(error instanceof Error ? error.message : String(error));
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
export const backlogWriteTool = defineTool({
|
|
147
|
+
name: 'backlog_write',
|
|
148
|
+
description: 'Create, update, or delete backlog items. ' +
|
|
149
|
+
'Actions: add (new item), update (modify existing), delete (remove), replace (full list). ' +
|
|
150
|
+
'IDs are auto-generated for new items based on type (e.g., FEAT-001, BUG-002).',
|
|
151
|
+
inputSchema: {
|
|
152
|
+
type: 'object',
|
|
153
|
+
properties: {
|
|
154
|
+
action: {
|
|
155
|
+
type: 'string',
|
|
156
|
+
enum: ['add', 'update', 'delete', 'replace'],
|
|
157
|
+
description: 'Action to perform',
|
|
158
|
+
},
|
|
159
|
+
item: {
|
|
160
|
+
type: 'object',
|
|
161
|
+
description: 'Item to add or update (for add/update actions)',
|
|
162
|
+
properties: {
|
|
163
|
+
id: { type: 'string', description: 'Item ID (required for update)' },
|
|
164
|
+
type: {
|
|
165
|
+
type: 'string',
|
|
166
|
+
enum: ['feature', 'bug', 'chore', 'spike'],
|
|
167
|
+
description: 'Item type (required for add)',
|
|
168
|
+
},
|
|
169
|
+
title: { type: 'string', description: 'Item title' },
|
|
170
|
+
description: { type: 'string', description: 'Detailed description' },
|
|
171
|
+
status: {
|
|
172
|
+
type: 'string',
|
|
173
|
+
enum: ['backlog', 'in-progress', 'done', 'blocked'],
|
|
174
|
+
description: 'Item status',
|
|
175
|
+
},
|
|
176
|
+
priority: {
|
|
177
|
+
type: 'string',
|
|
178
|
+
enum: ['critical', 'high', 'medium', 'low'],
|
|
179
|
+
description: 'Priority level',
|
|
180
|
+
},
|
|
181
|
+
owner: {
|
|
182
|
+
type: 'string',
|
|
183
|
+
description: 'Owner/assignee of the item',
|
|
184
|
+
},
|
|
185
|
+
commit_hash: {
|
|
186
|
+
type: 'string',
|
|
187
|
+
description: 'Git commit hash associated with the item (for update)',
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
deleteId: {
|
|
192
|
+
type: 'string',
|
|
193
|
+
description: 'Item ID to delete (for delete action)',
|
|
194
|
+
},
|
|
195
|
+
items: {
|
|
196
|
+
type: 'array',
|
|
197
|
+
description: 'Full list of items (for replace action)',
|
|
198
|
+
items: {
|
|
199
|
+
type: 'object',
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
required: ['action'],
|
|
204
|
+
},
|
|
205
|
+
execute: async (input) => {
|
|
206
|
+
try {
|
|
207
|
+
// Note: workItemRepository methods are synchronous, but we keep async for interface consistency
|
|
208
|
+
await Promise.resolve();
|
|
209
|
+
const projectId = getActiveProject()?.id;
|
|
210
|
+
if (!projectId) {
|
|
211
|
+
return createErrorResult('No active project. Use /projects to select a project first.');
|
|
212
|
+
}
|
|
213
|
+
switch (input.action) {
|
|
214
|
+
case 'add': {
|
|
215
|
+
if (!input.item) {
|
|
216
|
+
return createErrorResult('Item is required for add action');
|
|
217
|
+
}
|
|
218
|
+
if (!input.item.type) {
|
|
219
|
+
return createErrorResult('Item type is required for add action');
|
|
220
|
+
}
|
|
221
|
+
if (!input.item.title) {
|
|
222
|
+
return createErrorResult('Item title is required for add action');
|
|
223
|
+
}
|
|
224
|
+
const createInput = {
|
|
225
|
+
project_id: projectId,
|
|
226
|
+
type: TYPE_TO_CLI[input.item.type],
|
|
227
|
+
title: input.item.title,
|
|
228
|
+
description: input.item.description,
|
|
229
|
+
priority: input.item.priority,
|
|
230
|
+
owner: input.item.owner,
|
|
231
|
+
};
|
|
232
|
+
const item = workItemRepository.create(createInput);
|
|
233
|
+
return createSuccessResult({
|
|
234
|
+
success: true,
|
|
235
|
+
action: 'add',
|
|
236
|
+
itemId: item.itemId,
|
|
237
|
+
message: `Created ${item.itemId}: "${item.title}"`,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
case 'update': {
|
|
241
|
+
if (!input.item?.id) {
|
|
242
|
+
return createErrorResult('Item ID is required for update action');
|
|
243
|
+
}
|
|
244
|
+
const existingItem = workItemRepository.getByItemId(projectId, input.item.id);
|
|
245
|
+
if (!existingItem) {
|
|
246
|
+
return createErrorResult(`Item not found: ${input.item.id}`);
|
|
247
|
+
}
|
|
248
|
+
const updateInput = {};
|
|
249
|
+
if (input.item.status) {
|
|
250
|
+
updateInput.status = STATUS_TO_CLI[input.item.status];
|
|
251
|
+
}
|
|
252
|
+
if (input.item.priority) {
|
|
253
|
+
updateInput.priority = input.item.priority;
|
|
254
|
+
}
|
|
255
|
+
if (input.item.title) {
|
|
256
|
+
updateInput.title = input.item.title;
|
|
257
|
+
}
|
|
258
|
+
if (input.item.description !== undefined) {
|
|
259
|
+
updateInput.description = input.item.description;
|
|
260
|
+
}
|
|
261
|
+
if (input.item.owner !== undefined) {
|
|
262
|
+
updateInput.owner = input.item.owner;
|
|
263
|
+
}
|
|
264
|
+
if (input.item.commit_hash) {
|
|
265
|
+
updateInput.commit_hash = input.item.commit_hash;
|
|
266
|
+
}
|
|
267
|
+
const updated = workItemRepository.update(existingItem.id, updateInput);
|
|
268
|
+
if (!updated) {
|
|
269
|
+
return createErrorResult(`Failed to update item: ${input.item.id}`);
|
|
270
|
+
}
|
|
271
|
+
return createSuccessResult({
|
|
272
|
+
success: true,
|
|
273
|
+
action: 'update',
|
|
274
|
+
itemId: input.item.id,
|
|
275
|
+
message: `Updated ${input.item.id}`,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
case 'delete': {
|
|
279
|
+
const deleteId = input.deleteId || input.item?.id;
|
|
280
|
+
if (!deleteId) {
|
|
281
|
+
return createErrorResult('deleteId or item.id is required for delete action');
|
|
282
|
+
}
|
|
283
|
+
const existingItem = workItemRepository.getByItemId(projectId, deleteId);
|
|
284
|
+
if (!existingItem) {
|
|
285
|
+
return createErrorResult(`Item not found: ${deleteId}`);
|
|
286
|
+
}
|
|
287
|
+
const deleted = workItemRepository.delete(existingItem.id);
|
|
288
|
+
if (!deleted) {
|
|
289
|
+
return createErrorResult(`Failed to delete item: ${deleteId}`);
|
|
290
|
+
}
|
|
291
|
+
return createSuccessResult({
|
|
292
|
+
success: true,
|
|
293
|
+
action: 'delete',
|
|
294
|
+
itemId: deleteId,
|
|
295
|
+
message: `Deleted ${deleteId}`,
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
case 'replace': {
|
|
299
|
+
if (!input.items) {
|
|
300
|
+
return createErrorResult('Items array is required for replace action');
|
|
301
|
+
}
|
|
302
|
+
// Delete all existing items
|
|
303
|
+
const existing = workItemRepository.query({
|
|
304
|
+
project_id: projectId,
|
|
305
|
+
limit: 1000,
|
|
306
|
+
offset: 0,
|
|
307
|
+
});
|
|
308
|
+
for (const item of existing.items) {
|
|
309
|
+
workItemRepository.delete(item.id);
|
|
310
|
+
}
|
|
311
|
+
// Add all new items
|
|
312
|
+
const newIds = [];
|
|
313
|
+
for (const newItem of input.items) {
|
|
314
|
+
const createInput = {
|
|
315
|
+
project_id: projectId,
|
|
316
|
+
type: TYPE_TO_CLI[newItem.type],
|
|
317
|
+
title: newItem.title,
|
|
318
|
+
description: newItem.description,
|
|
319
|
+
priority: newItem.priority,
|
|
320
|
+
};
|
|
321
|
+
const created = workItemRepository.create(createInput);
|
|
322
|
+
newIds.push(created.itemId);
|
|
323
|
+
// Update status if not backlog
|
|
324
|
+
if (newItem.status && newItem.status !== 'backlog') {
|
|
325
|
+
workItemRepository.update(created.id, {
|
|
326
|
+
status: STATUS_TO_CLI[newItem.status],
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
return createSuccessResult({
|
|
331
|
+
success: true,
|
|
332
|
+
action: 'replace',
|
|
333
|
+
itemCount: input.items.length,
|
|
334
|
+
newIds,
|
|
335
|
+
message: `Replaced backlog with ${String(input.items.length)} items`,
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
default:
|
|
339
|
+
return createErrorResult(`Unknown action: ${input.action}`);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
catch (error) {
|
|
343
|
+
return createErrorResult(error instanceof Error ? error.message : String(error));
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
});
|
|
347
|
+
/**
|
|
348
|
+
* All backlog wrapper tools
|
|
349
|
+
*/
|
|
350
|
+
export const backlogWrapperTools = [
|
|
351
|
+
backlogReadTool,
|
|
352
|
+
backlogWriteTool,
|
|
353
|
+
];
|
package/dist/tools/backlog.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ interface BacklogReadInput {
|
|
|
34
34
|
search?: string;
|
|
35
35
|
id?: string;
|
|
36
36
|
}
|
|
37
|
-
export declare const backlogReadTool: import("@compilr-dev/
|
|
37
|
+
export declare const backlogReadTool: import("@compilr-dev/sdk").Tool<BacklogReadInput>;
|
|
38
38
|
interface BacklogWriteInput {
|
|
39
39
|
action: 'add' | 'update' | 'remove' | 'reorder';
|
|
40
40
|
items?: Array<{
|
|
@@ -49,5 +49,5 @@ interface BacklogWriteInput {
|
|
|
49
49
|
ids?: string[];
|
|
50
50
|
order?: string[];
|
|
51
51
|
}
|
|
52
|
-
export declare const backlogWriteTool: import("@compilr-dev/
|
|
52
|
+
export declare const backlogWriteTool: import("@compilr-dev/sdk").Tool<BacklogWriteInput>;
|
|
53
53
|
export {};
|
package/dist/tools/backlog.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import * as fs from 'fs';
|
|
8
8
|
import * as path from 'path';
|
|
9
|
-
import { defineTool } from '@compilr-dev/
|
|
9
|
+
import { defineTool } from '@compilr-dev/sdk';
|
|
10
10
|
// =============================================================================
|
|
11
11
|
// Backlog File Detection
|
|
12
12
|
// =============================================================================
|
|
@@ -357,7 +357,7 @@ export const backlogReadTool = defineTool({
|
|
|
357
357
|
if (!backlogPath) {
|
|
358
358
|
return Promise.resolve({
|
|
359
359
|
success: false,
|
|
360
|
-
error: 'No backlog file found. Run /
|
|
360
|
+
error: 'No backlog file found. Run /new to create a project first, or /design to create the backlog.',
|
|
361
361
|
});
|
|
362
362
|
}
|
|
363
363
|
try {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Tools Index
|
|
3
|
+
*
|
|
4
|
+
* All 24 platform tools (project, workitem, document, plan, backlog) are now
|
|
5
|
+
* provided by the SDK via platform-adapter.ts. This file re-exports them
|
|
6
|
+
* along with state management functions still needed by ~15+ CLI files.
|
|
7
|
+
*/
|
|
8
|
+
export { getActiveProject, setActiveProject } from './project-db.js';
|
|
9
|
+
/**
|
|
10
|
+
* All database tools combined (24 tools from SDK)
|
|
11
|
+
*/
|
|
12
|
+
export declare const allDbTools: import("@compilr-dev/agents").Tool<never>[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Tools Index
|
|
3
|
+
*
|
|
4
|
+
* All 24 platform tools (project, workitem, document, plan, backlog) are now
|
|
5
|
+
* provided by the SDK via platform-adapter.ts. This file re-exports them
|
|
6
|
+
* along with state management functions still needed by ~15+ CLI files.
|
|
7
|
+
*/
|
|
8
|
+
import { allPlatformTools } from './platform-adapter.js';
|
|
9
|
+
// Re-export state management functions (still needed by many CLI files)
|
|
10
|
+
export { getActiveProject, setActiveProject } from './project-db.js';
|
|
11
|
+
/**
|
|
12
|
+
* All database tools combined (24 tools from SDK)
|
|
13
|
+
*/
|
|
14
|
+
export const allDbTools = allPlatformTools;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegate Background Tool - Coordinator Mode
|
|
3
|
+
*
|
|
4
|
+
* Allows the coordinator to delegate tasks to specialists running in background.
|
|
5
|
+
* Unlike the foreground `delegate` tool (which switches the active agent),
|
|
6
|
+
* this tool keeps the coordinator in the foreground while the specialist
|
|
7
|
+
* works independently in the background.
|
|
8
|
+
*
|
|
9
|
+
* Flow:
|
|
10
|
+
* 1. Coordinator calls delegate_background(agentId, task)
|
|
11
|
+
* 2. DelegationTracker registers the delegation
|
|
12
|
+
* 3. Specialist starts as background agent (or queued if busy)
|
|
13
|
+
* 4. Coordinator continues working
|
|
14
|
+
* 5. On completion, coordinator is notified via completion events (Phase 2)
|
|
15
|
+
*/
|
|
16
|
+
interface DelegateBackgroundInput {
|
|
17
|
+
/** Target specialist agent ID (e.g., 'arch', 'dev', 'qa') */
|
|
18
|
+
agentId: string;
|
|
19
|
+
/** Detailed task description for the specialist */
|
|
20
|
+
task: string;
|
|
21
|
+
/** Optional todo index to associate with this delegation */
|
|
22
|
+
todoIndex?: number;
|
|
23
|
+
/** What the specialist should produce (e.g., "architecture document") */
|
|
24
|
+
expectedOutput?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare const delegateBackgroundTool: import("@compilr-dev/sdk").Tool<DelegateBackgroundInput>;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegate Background Tool - Coordinator Mode
|
|
3
|
+
*
|
|
4
|
+
* Allows the coordinator to delegate tasks to specialists running in background.
|
|
5
|
+
* Unlike the foreground `delegate` tool (which switches the active agent),
|
|
6
|
+
* this tool keeps the coordinator in the foreground while the specialist
|
|
7
|
+
* works independently in the background.
|
|
8
|
+
*
|
|
9
|
+
* Flow:
|
|
10
|
+
* 1. Coordinator calls delegate_background(agentId, task)
|
|
11
|
+
* 2. DelegationTracker registers the delegation
|
|
12
|
+
* 3. Specialist starts as background agent (or queued if busy)
|
|
13
|
+
* 4. Coordinator continues working
|
|
14
|
+
* 5. On completion, coordinator is notified via completion events (Phase 2)
|
|
15
|
+
*/
|
|
16
|
+
import { defineTool } from '@compilr-dev/sdk';
|
|
17
|
+
import { getDelegateBackgroundHandler } from '../shared-handlers.js';
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// Tool Definition
|
|
20
|
+
// =============================================================================
|
|
21
|
+
export const delegateBackgroundTool = defineTool({
|
|
22
|
+
name: 'delegate_background',
|
|
23
|
+
description: 'Delegate a task to a specialist running in background. ' +
|
|
24
|
+
'The specialist executes independently while you continue working. ' +
|
|
25
|
+
'You will be notified when the specialist completes. ' +
|
|
26
|
+
'Use delegation_status to check progress. ' +
|
|
27
|
+
'Prefer this over delegate — it keeps you in control and tracks status. ' +
|
|
28
|
+
'Only available to the coordinator.',
|
|
29
|
+
inputSchema: {
|
|
30
|
+
type: 'object',
|
|
31
|
+
properties: {
|
|
32
|
+
agentId: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
description: 'Target specialist agent ID (e.g., "arch", "dev", "qa")',
|
|
35
|
+
},
|
|
36
|
+
task: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Detailed task description for the specialist',
|
|
39
|
+
},
|
|
40
|
+
todoIndex: {
|
|
41
|
+
type: 'number',
|
|
42
|
+
description: 'Optional todo index to associate with this delegation',
|
|
43
|
+
},
|
|
44
|
+
expectedOutput: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
description: 'What the specialist should produce (e.g., "architecture document", "implementation")',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
required: ['agentId', 'task'],
|
|
50
|
+
},
|
|
51
|
+
execute: async (input) => {
|
|
52
|
+
try {
|
|
53
|
+
// Validate input
|
|
54
|
+
if (!input.agentId || input.agentId.trim().length === 0) {
|
|
55
|
+
return {
|
|
56
|
+
success: false,
|
|
57
|
+
error: 'Agent ID is required',
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (!input.task || input.task.trim().length === 0) {
|
|
61
|
+
return {
|
|
62
|
+
success: false,
|
|
63
|
+
error: 'Task description is required',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
// Prevent self-delegation
|
|
67
|
+
if (input.agentId.trim() === 'default') {
|
|
68
|
+
return {
|
|
69
|
+
success: false,
|
|
70
|
+
error: 'Cannot delegate to yourself (the coordinator). Delegate to a specialist agent.',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
// Get the delegate background handler from shared-handlers
|
|
74
|
+
const handler = getDelegateBackgroundHandler();
|
|
75
|
+
if (!handler) {
|
|
76
|
+
return {
|
|
77
|
+
success: false,
|
|
78
|
+
error: 'Delegate background handler not initialized. ' +
|
|
79
|
+
'This tool requires multi-agent mode with coordinator role.',
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
// Execute background delegation
|
|
83
|
+
const result = await handler({
|
|
84
|
+
agentId: input.agentId.trim(),
|
|
85
|
+
task: input.task.trim(),
|
|
86
|
+
todoIndex: input.todoIndex,
|
|
87
|
+
expectedOutput: input.expectedOutput?.trim(),
|
|
88
|
+
});
|
|
89
|
+
if (result.error) {
|
|
90
|
+
return {
|
|
91
|
+
success: false,
|
|
92
|
+
error: result.error,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const output = {
|
|
96
|
+
delegated: true,
|
|
97
|
+
delegationId: result.delegationId,
|
|
98
|
+
status: result.status,
|
|
99
|
+
message: result.status === 'queued'
|
|
100
|
+
? `Task queued for $${input.agentId} (currently busy). It will start when they're free.`
|
|
101
|
+
: `Task delegated to $${input.agentId} running in background. You'll be notified on completion.`,
|
|
102
|
+
};
|
|
103
|
+
return {
|
|
104
|
+
success: true,
|
|
105
|
+
result: output,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
return {
|
|
110
|
+
success: false,
|
|
111
|
+
error: `Background delegation failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegate Tool - Multi-Agent Task Delegation
|
|
3
|
+
*
|
|
4
|
+
* Allows the coordinator to delegate tasks to specialist agents.
|
|
5
|
+
* Only available to the coordinator (default agent).
|
|
6
|
+
*
|
|
7
|
+
* Flow:
|
|
8
|
+
* 1. Coordinator calls delegate(agentId, task, reason?)
|
|
9
|
+
* 2. CLI shows approval prompt
|
|
10
|
+
* 3. If approved: auto-switch to specialist, inject task
|
|
11
|
+
* 4. If denied: return "User declined" to coordinator
|
|
12
|
+
*/
|
|
13
|
+
interface DelegateInput {
|
|
14
|
+
/** Target agent ID (e.g., 'arch', 'dev', 'qa') */
|
|
15
|
+
agentId: string;
|
|
16
|
+
/** Task description for the specialist */
|
|
17
|
+
task: string;
|
|
18
|
+
/** Optional reason for delegation (shown to user for context) */
|
|
19
|
+
reason?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const delegateTool: import("@compilr-dev/sdk").Tool<DelegateInput>;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegate Tool - Multi-Agent Task Delegation
|
|
3
|
+
*
|
|
4
|
+
* Allows the coordinator to delegate tasks to specialist agents.
|
|
5
|
+
* Only available to the coordinator (default agent).
|
|
6
|
+
*
|
|
7
|
+
* Flow:
|
|
8
|
+
* 1. Coordinator calls delegate(agentId, task, reason?)
|
|
9
|
+
* 2. CLI shows approval prompt
|
|
10
|
+
* 3. If approved: auto-switch to specialist, inject task
|
|
11
|
+
* 4. If denied: return "User declined" to coordinator
|
|
12
|
+
*/
|
|
13
|
+
import { defineTool } from '@compilr-dev/sdk';
|
|
14
|
+
import { getDelegateHandler } from '../shared-handlers.js';
|
|
15
|
+
// =============================================================================
|
|
16
|
+
// Tool Definition
|
|
17
|
+
// =============================================================================
|
|
18
|
+
export const delegateTool = defineTool({
|
|
19
|
+
name: 'delegate',
|
|
20
|
+
description: 'Hand off the conversation to a specialist (foreground switch). ' +
|
|
21
|
+
'You stop working and the specialist takes over. No status tracking. ' +
|
|
22
|
+
'Use delegate_background instead if you want to continue working while ' +
|
|
23
|
+
'the specialist runs in the background (with delegation tracking). ' +
|
|
24
|
+
'Only available to the coordinator.',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
type: 'object',
|
|
27
|
+
properties: {
|
|
28
|
+
agentId: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
description: 'Target agent ID (e.g., "arch", "dev", "qa")',
|
|
31
|
+
},
|
|
32
|
+
task: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
description: 'Task description for the specialist - be specific and clear',
|
|
35
|
+
},
|
|
36
|
+
reason: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Why this specialist is suited for the task (shown to user)',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
required: ['agentId', 'task'],
|
|
42
|
+
},
|
|
43
|
+
execute: async (input) => {
|
|
44
|
+
try {
|
|
45
|
+
// Validate input
|
|
46
|
+
if (!input.agentId || input.agentId.trim().length === 0) {
|
|
47
|
+
return {
|
|
48
|
+
success: false,
|
|
49
|
+
error: 'Agent ID is required',
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (!input.task || input.task.trim().length === 0) {
|
|
53
|
+
return {
|
|
54
|
+
success: false,
|
|
55
|
+
error: 'Task description is required',
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
// Get the delegate handler from shared-handlers
|
|
59
|
+
const delegateHandler = getDelegateHandler();
|
|
60
|
+
if (!delegateHandler) {
|
|
61
|
+
return {
|
|
62
|
+
success: false,
|
|
63
|
+
error: 'Delegate handler not initialized. ' +
|
|
64
|
+
'This tool requires multi-agent mode with coordinator role.',
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// Execute delegation (shows approval prompt, switches if approved)
|
|
68
|
+
const result = await delegateHandler({
|
|
69
|
+
agentId: input.agentId.trim(),
|
|
70
|
+
task: input.task.trim(),
|
|
71
|
+
reason: input.reason?.trim(),
|
|
72
|
+
});
|
|
73
|
+
if (result.error) {
|
|
74
|
+
return {
|
|
75
|
+
success: false,
|
|
76
|
+
error: result.error,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
const output = {
|
|
80
|
+
delegated: result.success,
|
|
81
|
+
message: result.declined
|
|
82
|
+
? 'User declined the delegation. Continue handling the task yourself.'
|
|
83
|
+
: `Task delegated to $${input.agentId}. They will handle it from here.`,
|
|
84
|
+
};
|
|
85
|
+
return {
|
|
86
|
+
success: true,
|
|
87
|
+
result: output,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
return {
|
|
92
|
+
success: false,
|
|
93
|
+
error: `Delegation failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
});
|