@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,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Configuration Loader
|
|
3
|
+
*
|
|
4
|
+
* Loads MCP server configs from:
|
|
5
|
+
* 1. Global: ~/.compilr-dev/mcp.json
|
|
6
|
+
* 2. Per-project: <projectRoot>/.compilr-dev/mcp.json
|
|
7
|
+
*
|
|
8
|
+
* Project config overrides global config (by server name).
|
|
9
|
+
* Format is compatible with Claude Desktop / Gemini CLI.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Single MCP server entry in the config file.
|
|
13
|
+
* If `command` is present → stdio transport.
|
|
14
|
+
* If `url` is present → HTTP transport.
|
|
15
|
+
*/
|
|
16
|
+
export interface MCPServerEntry {
|
|
17
|
+
command?: string;
|
|
18
|
+
args?: string[];
|
|
19
|
+
env?: Record<string, string>;
|
|
20
|
+
cwd?: string;
|
|
21
|
+
url?: string;
|
|
22
|
+
headers?: Record<string, string>;
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
timeout?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Shape of the mcp.json config file.
|
|
28
|
+
*/
|
|
29
|
+
export interface MCPConfigFile {
|
|
30
|
+
mcpServers: Record<string, MCPServerEntry>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Resolved MCP server config ready for MCPManager.
|
|
34
|
+
* Uses the MCPServerConfig shape from @compilr-dev/agents.
|
|
35
|
+
*/
|
|
36
|
+
export interface ResolvedMCPServer {
|
|
37
|
+
name: string;
|
|
38
|
+
transport: 'stdio' | 'http';
|
|
39
|
+
command?: string;
|
|
40
|
+
args?: string[];
|
|
41
|
+
env?: Record<string, string>;
|
|
42
|
+
cwd?: string;
|
|
43
|
+
url?: string;
|
|
44
|
+
headers?: Record<string, string>;
|
|
45
|
+
timeout?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the global MCP config file path.
|
|
49
|
+
*/
|
|
50
|
+
export declare function getMCPConfigPath(): string;
|
|
51
|
+
/**
|
|
52
|
+
* Get the per-project MCP config file path.
|
|
53
|
+
*/
|
|
54
|
+
export declare function getProjectMCPConfigPath(projectRoot: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Load MCP server configs from global and project-level config files.
|
|
57
|
+
* Project configs override global by server name.
|
|
58
|
+
*
|
|
59
|
+
* @param projectRoot - Optional project root for per-project config
|
|
60
|
+
* @returns Array of resolved MCP server configs
|
|
61
|
+
*/
|
|
62
|
+
export declare function loadMCPConfig(projectRoot?: string): ResolvedMCPServer[];
|
|
63
|
+
/**
|
|
64
|
+
* Get existing server names from all config files.
|
|
65
|
+
* Useful for validating uniqueness when adding a new server.
|
|
66
|
+
*/
|
|
67
|
+
export declare function getExistingServerNames(projectRoot?: string): Set<string>;
|
|
68
|
+
/**
|
|
69
|
+
* Save a new MCP server entry to the config file.
|
|
70
|
+
*
|
|
71
|
+
* @param name - Server name (unique identifier)
|
|
72
|
+
* @param entry - Server configuration entry
|
|
73
|
+
* @param scope - 'global' or 'project'
|
|
74
|
+
* @param projectRoot - Required when scope is 'project'
|
|
75
|
+
*/
|
|
76
|
+
export declare function saveMCPServer(name: string, entry: MCPServerEntry, scope: 'global' | 'project', projectRoot?: string): void;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Configuration Loader
|
|
3
|
+
*
|
|
4
|
+
* Loads MCP server configs from:
|
|
5
|
+
* 1. Global: ~/.compilr-dev/mcp.json
|
|
6
|
+
* 2. Per-project: <projectRoot>/.compilr-dev/mcp.json
|
|
7
|
+
*
|
|
8
|
+
* Project config overrides global config (by server name).
|
|
9
|
+
* Format is compatible with Claude Desktop / Gemini CLI.
|
|
10
|
+
*/
|
|
11
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
|
|
12
|
+
import * as path from 'path';
|
|
13
|
+
import { getDataPath } from './paths.js';
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Config Loading
|
|
16
|
+
// =============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Get the global MCP config file path.
|
|
19
|
+
*/
|
|
20
|
+
export function getMCPConfigPath() {
|
|
21
|
+
return path.join(getDataPath(), 'mcp.json');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the per-project MCP config file path.
|
|
25
|
+
*/
|
|
26
|
+
export function getProjectMCPConfigPath(projectRoot) {
|
|
27
|
+
return path.join(projectRoot, '.compilr-dev', 'mcp.json');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Read and parse an mcp.json file. Returns empty servers on any error.
|
|
31
|
+
*/
|
|
32
|
+
function readMCPConfigFile(filePath) {
|
|
33
|
+
try {
|
|
34
|
+
if (!existsSync(filePath)) {
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
const data = readFileSync(filePath, 'utf-8');
|
|
38
|
+
const parsed = JSON.parse(data);
|
|
39
|
+
if (parsed.mcpServers && typeof parsed.mcpServers === 'object') {
|
|
40
|
+
return parsed.mcpServers;
|
|
41
|
+
}
|
|
42
|
+
return {};
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return {};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Convert an MCPServerEntry to a ResolvedMCPServer.
|
|
50
|
+
* Returns null if the entry is invalid (neither command nor url).
|
|
51
|
+
*/
|
|
52
|
+
function resolveEntry(name, entry) {
|
|
53
|
+
if (entry.disabled) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
if (entry.command) {
|
|
57
|
+
return {
|
|
58
|
+
name,
|
|
59
|
+
transport: 'stdio',
|
|
60
|
+
command: entry.command,
|
|
61
|
+
args: entry.args,
|
|
62
|
+
env: entry.env,
|
|
63
|
+
cwd: entry.cwd,
|
|
64
|
+
timeout: entry.timeout,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (entry.url) {
|
|
68
|
+
return {
|
|
69
|
+
name,
|
|
70
|
+
transport: 'http',
|
|
71
|
+
url: entry.url,
|
|
72
|
+
headers: entry.headers,
|
|
73
|
+
timeout: entry.timeout,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
// Neither command nor url — invalid entry
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Load MCP server configs from global and project-level config files.
|
|
81
|
+
* Project configs override global by server name.
|
|
82
|
+
*
|
|
83
|
+
* @param projectRoot - Optional project root for per-project config
|
|
84
|
+
* @returns Array of resolved MCP server configs
|
|
85
|
+
*/
|
|
86
|
+
export function loadMCPConfig(projectRoot) {
|
|
87
|
+
// 1. Load global config
|
|
88
|
+
const globalServers = readMCPConfigFile(getMCPConfigPath());
|
|
89
|
+
// 2. Load project config (overrides global by name)
|
|
90
|
+
const projectServers = projectRoot
|
|
91
|
+
? readMCPConfigFile(getProjectMCPConfigPath(projectRoot))
|
|
92
|
+
: {};
|
|
93
|
+
// 3. Merge: project overrides global
|
|
94
|
+
const merged = { ...globalServers, ...projectServers };
|
|
95
|
+
// 4. Resolve each entry
|
|
96
|
+
const resolved = [];
|
|
97
|
+
for (const [name, entry] of Object.entries(merged)) {
|
|
98
|
+
const server = resolveEntry(name, entry);
|
|
99
|
+
if (server) {
|
|
100
|
+
resolved.push(server);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return resolved;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get existing server names from all config files.
|
|
107
|
+
* Useful for validating uniqueness when adding a new server.
|
|
108
|
+
*/
|
|
109
|
+
export function getExistingServerNames(projectRoot) {
|
|
110
|
+
const globalServers = readMCPConfigFile(getMCPConfigPath());
|
|
111
|
+
const projectServers = projectRoot
|
|
112
|
+
? readMCPConfigFile(getProjectMCPConfigPath(projectRoot))
|
|
113
|
+
: {};
|
|
114
|
+
return new Set([...Object.keys(globalServers), ...Object.keys(projectServers)]);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Save a new MCP server entry to the config file.
|
|
118
|
+
*
|
|
119
|
+
* @param name - Server name (unique identifier)
|
|
120
|
+
* @param entry - Server configuration entry
|
|
121
|
+
* @param scope - 'global' or 'project'
|
|
122
|
+
* @param projectRoot - Required when scope is 'project'
|
|
123
|
+
*/
|
|
124
|
+
export function saveMCPServer(name, entry, scope, projectRoot) {
|
|
125
|
+
const configPath = scope === 'project' && projectRoot
|
|
126
|
+
? getProjectMCPConfigPath(projectRoot)
|
|
127
|
+
: getMCPConfigPath();
|
|
128
|
+
// Read existing config (or empty)
|
|
129
|
+
let config = { mcpServers: {} };
|
|
130
|
+
try {
|
|
131
|
+
const raw = readFileSync(configPath, 'utf-8');
|
|
132
|
+
const parsed = JSON.parse(raw);
|
|
133
|
+
config = { mcpServers: parsed.mcpServers ?? {} };
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// File doesn't exist or invalid — start fresh
|
|
137
|
+
}
|
|
138
|
+
// Add/overwrite server entry
|
|
139
|
+
config.mcpServers[name] = entry;
|
|
140
|
+
// Ensure directory exists, write file
|
|
141
|
+
mkdirSync(path.dirname(configPath), { recursive: true });
|
|
142
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
143
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path Configuration Module
|
|
3
|
+
*
|
|
4
|
+
* Centralized path configuration with safety guards.
|
|
5
|
+
* Inspired by ATLAS CLI config/index.ts
|
|
6
|
+
*
|
|
7
|
+
* Priority order:
|
|
8
|
+
* 1. Environment variable (COMPILR_*)
|
|
9
|
+
* 2. Config file (~/.compilr-dev/settings.json)
|
|
10
|
+
* 3. Default/derived value
|
|
11
|
+
*/
|
|
12
|
+
export interface PathConfig {
|
|
13
|
+
workspacePath?: string;
|
|
14
|
+
projectsPath?: string;
|
|
15
|
+
dataPath?: string;
|
|
16
|
+
allowedPaths?: string[];
|
|
17
|
+
requireProjectMatch?: boolean;
|
|
18
|
+
deleteProtection?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface ResolvedPathConfig {
|
|
21
|
+
workspacePath: string;
|
|
22
|
+
projectsPath: string;
|
|
23
|
+
dataPath: string;
|
|
24
|
+
allowedPaths: string[];
|
|
25
|
+
requireProjectMatch: boolean;
|
|
26
|
+
deleteProtection: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get the data directory (where config, DB, credentials live)
|
|
30
|
+
* Priority: ENV > config > default
|
|
31
|
+
*/
|
|
32
|
+
export declare function getDataPath(): string;
|
|
33
|
+
/**
|
|
34
|
+
* Get the workspace root directory
|
|
35
|
+
* Priority: ENV > config > default
|
|
36
|
+
*/
|
|
37
|
+
export declare function getWorkspacePath(): string;
|
|
38
|
+
/**
|
|
39
|
+
* Get the projects directory
|
|
40
|
+
* Priority: ENV > config > derived from workspace
|
|
41
|
+
*/
|
|
42
|
+
export declare function getProjectsPath(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Get all allowed paths for delete operations
|
|
45
|
+
*/
|
|
46
|
+
export declare function getAllowedDeletePaths(): string[];
|
|
47
|
+
/**
|
|
48
|
+
* Check if delete protection is enabled (default: true)
|
|
49
|
+
*/
|
|
50
|
+
export declare function isDeleteProtectionEnabled(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Check if project match warning is enabled (default: true)
|
|
53
|
+
*/
|
|
54
|
+
export declare function isProjectMatchRequired(): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Get resolved configuration for display
|
|
57
|
+
*/
|
|
58
|
+
export declare function getResolvedPathConfig(): ResolvedPathConfig;
|
|
59
|
+
/**
|
|
60
|
+
* Set workspace path
|
|
61
|
+
*/
|
|
62
|
+
export declare function setWorkspacePath(p: string): void;
|
|
63
|
+
/**
|
|
64
|
+
* Set projects path
|
|
65
|
+
*/
|
|
66
|
+
export declare function setProjectsPath(p: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* Set data path
|
|
69
|
+
*/
|
|
70
|
+
export declare function setDataPath(p: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* Enable/disable delete protection
|
|
73
|
+
*/
|
|
74
|
+
export declare function setDeleteProtection(enabled: boolean): void;
|
|
75
|
+
/**
|
|
76
|
+
* Enable/disable project match warning
|
|
77
|
+
*/
|
|
78
|
+
export declare function setProjectMatchRequired(enabled: boolean): void;
|
|
79
|
+
/**
|
|
80
|
+
* Add an allowed path for delete operations
|
|
81
|
+
*/
|
|
82
|
+
export declare function addAllowedPath(p: string): void;
|
|
83
|
+
/**
|
|
84
|
+
* Remove an allowed path
|
|
85
|
+
*/
|
|
86
|
+
export declare function removeAllowedPath(p: string): void;
|
|
87
|
+
/**
|
|
88
|
+
* Clear all custom allowed paths
|
|
89
|
+
*/
|
|
90
|
+
export declare function clearAllowedPaths(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Get the database file path
|
|
93
|
+
*/
|
|
94
|
+
export declare function getDatabasePath(): string;
|
|
95
|
+
/**
|
|
96
|
+
* Get the credentials file path
|
|
97
|
+
*/
|
|
98
|
+
export declare function getCredentialsPath(): string;
|
|
99
|
+
/**
|
|
100
|
+
* Get the settings file path
|
|
101
|
+
*/
|
|
102
|
+
export declare function getSettingsPath(): string;
|
|
103
|
+
/**
|
|
104
|
+
* Get the sessions directory path (for session checkpointing)
|
|
105
|
+
*/
|
|
106
|
+
export declare function getSessionsPath(): string;
|
|
107
|
+
/**
|
|
108
|
+
* Ensure data directory exists
|
|
109
|
+
*/
|
|
110
|
+
export declare function ensureDataDirectory(): void;
|
|
111
|
+
/**
|
|
112
|
+
* Ensure projects directory exists
|
|
113
|
+
*/
|
|
114
|
+
export declare function ensureProjectsDirectory(): void;
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path Configuration Module
|
|
3
|
+
*
|
|
4
|
+
* Centralized path configuration with safety guards.
|
|
5
|
+
* Inspired by ATLAS CLI config/index.ts
|
|
6
|
+
*
|
|
7
|
+
* Priority order:
|
|
8
|
+
* 1. Environment variable (COMPILR_*)
|
|
9
|
+
* 2. Config file (~/.compilr-dev/settings.json)
|
|
10
|
+
* 3. Default/derived value
|
|
11
|
+
*/
|
|
12
|
+
import * as fs from 'fs';
|
|
13
|
+
import * as path from 'path';
|
|
14
|
+
import * as os from 'os';
|
|
15
|
+
// =============================================================================
|
|
16
|
+
// Constants
|
|
17
|
+
// =============================================================================
|
|
18
|
+
const CONFIG_DIR = path.join(os.homedir(), '.compilr-dev');
|
|
19
|
+
const CONFIG_FILE = path.join(CONFIG_DIR, 'settings.json');
|
|
20
|
+
const DEFAULT_DATA_PATH = CONFIG_DIR;
|
|
21
|
+
const DEFAULT_WORKSPACE_PATH = os.homedir();
|
|
22
|
+
// =============================================================================
|
|
23
|
+
// Helpers
|
|
24
|
+
// =============================================================================
|
|
25
|
+
/**
|
|
26
|
+
* Load path config from disk
|
|
27
|
+
*/
|
|
28
|
+
function loadPathConfig() {
|
|
29
|
+
try {
|
|
30
|
+
if (fs.existsSync(CONFIG_FILE)) {
|
|
31
|
+
const data = fs.readFileSync(CONFIG_FILE, 'utf-8');
|
|
32
|
+
const settings = JSON.parse(data);
|
|
33
|
+
return {
|
|
34
|
+
workspacePath: settings.workspacePath,
|
|
35
|
+
projectsPath: settings.projectsPath,
|
|
36
|
+
dataPath: settings.dataPath,
|
|
37
|
+
allowedPaths: settings.allowedPaths,
|
|
38
|
+
requireProjectMatch: settings.requireProjectMatch,
|
|
39
|
+
deleteProtection: settings.deleteProtection,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// Ignore errors, return empty config
|
|
45
|
+
}
|
|
46
|
+
return {};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Save path config to disk (merges with existing settings)
|
|
50
|
+
*/
|
|
51
|
+
function savePathConfig(pathConfig) {
|
|
52
|
+
try {
|
|
53
|
+
let existingSettings = {};
|
|
54
|
+
if (fs.existsSync(CONFIG_FILE)) {
|
|
55
|
+
const data = fs.readFileSync(CONFIG_FILE, 'utf-8');
|
|
56
|
+
existingSettings = JSON.parse(data);
|
|
57
|
+
}
|
|
58
|
+
const merged = { ...existingSettings, ...pathConfig };
|
|
59
|
+
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
60
|
+
fs.writeFileSync(CONFIG_FILE, JSON.stringify(merged, null, 2), 'utf-8');
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
console.error('Failed to save path config:', error);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Expand ~ to home directory and resolve path
|
|
68
|
+
*/
|
|
69
|
+
function expandPath(p) {
|
|
70
|
+
if (p.startsWith('~/')) {
|
|
71
|
+
return path.join(os.homedir(), p.slice(2));
|
|
72
|
+
}
|
|
73
|
+
return path.resolve(p);
|
|
74
|
+
}
|
|
75
|
+
// =============================================================================
|
|
76
|
+
// Public API - Getters
|
|
77
|
+
// =============================================================================
|
|
78
|
+
/**
|
|
79
|
+
* Get the data directory (where config, DB, credentials live)
|
|
80
|
+
* Priority: ENV > config > default
|
|
81
|
+
*/
|
|
82
|
+
export function getDataPath() {
|
|
83
|
+
if (process.env.COMPILR_DATA_PATH) {
|
|
84
|
+
return expandPath(process.env.COMPILR_DATA_PATH);
|
|
85
|
+
}
|
|
86
|
+
const config = loadPathConfig();
|
|
87
|
+
return config.dataPath ? expandPath(config.dataPath) : DEFAULT_DATA_PATH;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get the workspace root directory
|
|
91
|
+
* Priority: ENV > config > default
|
|
92
|
+
*/
|
|
93
|
+
export function getWorkspacePath() {
|
|
94
|
+
if (process.env.COMPILR_WORKSPACE_PATH) {
|
|
95
|
+
return expandPath(process.env.COMPILR_WORKSPACE_PATH);
|
|
96
|
+
}
|
|
97
|
+
const config = loadPathConfig();
|
|
98
|
+
return config.workspacePath ? expandPath(config.workspacePath) : DEFAULT_WORKSPACE_PATH;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Get the projects directory
|
|
102
|
+
* Priority: ENV > config > derived from workspace
|
|
103
|
+
*/
|
|
104
|
+
export function getProjectsPath() {
|
|
105
|
+
if (process.env.COMPILR_PROJECTS_PATH) {
|
|
106
|
+
return expandPath(process.env.COMPILR_PROJECTS_PATH);
|
|
107
|
+
}
|
|
108
|
+
const config = loadPathConfig();
|
|
109
|
+
return config.projectsPath ? expandPath(config.projectsPath) : path.join(getWorkspacePath(), 'projects');
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get all allowed paths for delete operations
|
|
113
|
+
*/
|
|
114
|
+
export function getAllowedDeletePaths() {
|
|
115
|
+
const config = loadPathConfig();
|
|
116
|
+
const paths = [getProjectsPath()];
|
|
117
|
+
if (config.allowedPaths) {
|
|
118
|
+
paths.push(...config.allowedPaths.map(expandPath));
|
|
119
|
+
}
|
|
120
|
+
return paths.map((p) => path.resolve(p));
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Check if delete protection is enabled (default: true)
|
|
124
|
+
*/
|
|
125
|
+
export function isDeleteProtectionEnabled() {
|
|
126
|
+
const config = loadPathConfig();
|
|
127
|
+
return config.deleteProtection ?? true;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Check if project match warning is enabled (default: true)
|
|
131
|
+
*/
|
|
132
|
+
export function isProjectMatchRequired() {
|
|
133
|
+
const config = loadPathConfig();
|
|
134
|
+
return config.requireProjectMatch ?? true;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get resolved configuration for display
|
|
138
|
+
*/
|
|
139
|
+
export function getResolvedPathConfig() {
|
|
140
|
+
const config = loadPathConfig();
|
|
141
|
+
return {
|
|
142
|
+
workspacePath: getWorkspacePath(),
|
|
143
|
+
projectsPath: getProjectsPath(),
|
|
144
|
+
dataPath: getDataPath(),
|
|
145
|
+
allowedPaths: config.allowedPaths?.map(expandPath) || [],
|
|
146
|
+
requireProjectMatch: config.requireProjectMatch ?? true,
|
|
147
|
+
deleteProtection: config.deleteProtection ?? true,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// =============================================================================
|
|
151
|
+
// Public API - Setters
|
|
152
|
+
// =============================================================================
|
|
153
|
+
/**
|
|
154
|
+
* Set workspace path
|
|
155
|
+
*/
|
|
156
|
+
export function setWorkspacePath(p) {
|
|
157
|
+
const config = loadPathConfig();
|
|
158
|
+
config.workspacePath = expandPath(p);
|
|
159
|
+
savePathConfig(config);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Set projects path
|
|
163
|
+
*/
|
|
164
|
+
export function setProjectsPath(p) {
|
|
165
|
+
const config = loadPathConfig();
|
|
166
|
+
config.projectsPath = expandPath(p);
|
|
167
|
+
savePathConfig(config);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Set data path
|
|
171
|
+
*/
|
|
172
|
+
export function setDataPath(p) {
|
|
173
|
+
const config = loadPathConfig();
|
|
174
|
+
config.dataPath = expandPath(p);
|
|
175
|
+
savePathConfig(config);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Enable/disable delete protection
|
|
179
|
+
*/
|
|
180
|
+
export function setDeleteProtection(enabled) {
|
|
181
|
+
const config = loadPathConfig();
|
|
182
|
+
config.deleteProtection = enabled;
|
|
183
|
+
savePathConfig(config);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Enable/disable project match warning
|
|
187
|
+
*/
|
|
188
|
+
export function setProjectMatchRequired(enabled) {
|
|
189
|
+
const config = loadPathConfig();
|
|
190
|
+
config.requireProjectMatch = enabled;
|
|
191
|
+
savePathConfig(config);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Add an allowed path for delete operations
|
|
195
|
+
*/
|
|
196
|
+
export function addAllowedPath(p) {
|
|
197
|
+
const config = loadPathConfig();
|
|
198
|
+
const normalized = expandPath(p);
|
|
199
|
+
if (!config.allowedPaths) {
|
|
200
|
+
config.allowedPaths = [];
|
|
201
|
+
}
|
|
202
|
+
if (!config.allowedPaths.includes(normalized)) {
|
|
203
|
+
config.allowedPaths.push(normalized);
|
|
204
|
+
savePathConfig(config);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Remove an allowed path
|
|
209
|
+
*/
|
|
210
|
+
export function removeAllowedPath(p) {
|
|
211
|
+
const config = loadPathConfig();
|
|
212
|
+
const normalized = expandPath(p);
|
|
213
|
+
if (config.allowedPaths) {
|
|
214
|
+
config.allowedPaths = config.allowedPaths.filter((existing) => expandPath(existing) !== normalized);
|
|
215
|
+
savePathConfig(config);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Clear all custom allowed paths
|
|
220
|
+
*/
|
|
221
|
+
export function clearAllowedPaths() {
|
|
222
|
+
const config = loadPathConfig();
|
|
223
|
+
config.allowedPaths = [];
|
|
224
|
+
savePathConfig(config);
|
|
225
|
+
}
|
|
226
|
+
// =============================================================================
|
|
227
|
+
// Utility Functions
|
|
228
|
+
// =============================================================================
|
|
229
|
+
/**
|
|
230
|
+
* Get the database file path
|
|
231
|
+
*/
|
|
232
|
+
export function getDatabasePath() {
|
|
233
|
+
return path.join(getDataPath(), 'projects.db');
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Get the credentials file path
|
|
237
|
+
*/
|
|
238
|
+
export function getCredentialsPath() {
|
|
239
|
+
return path.join(getDataPath(), 'credentials.enc');
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Get the settings file path
|
|
243
|
+
*/
|
|
244
|
+
export function getSettingsPath() {
|
|
245
|
+
return path.join(getDataPath(), 'settings.json');
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Get the sessions directory path (for session checkpointing)
|
|
249
|
+
*/
|
|
250
|
+
export function getSessionsPath() {
|
|
251
|
+
return path.join(getDataPath(), 'sessions');
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Ensure data directory exists
|
|
255
|
+
*/
|
|
256
|
+
export function ensureDataDirectory() {
|
|
257
|
+
const dataPath = getDataPath();
|
|
258
|
+
if (!fs.existsSync(dataPath)) {
|
|
259
|
+
fs.mkdirSync(dataPath, { recursive: true });
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Ensure projects directory exists
|
|
264
|
+
*/
|
|
265
|
+
export function ensureProjectsDirectory() {
|
|
266
|
+
const projectsPath = getProjectsPath();
|
|
267
|
+
if (!fs.existsSync(projectsPath)) {
|
|
268
|
+
fs.mkdirSync(projectsPath, { recursive: true });
|
|
269
|
+
}
|
|
270
|
+
}
|
|
@@ -61,3 +61,65 @@ export declare function setOverlayActive(active: boolean): void;
|
|
|
61
61
|
* Check if an overlay is currently active.
|
|
62
62
|
*/
|
|
63
63
|
export declare function isOverlayActive(): boolean;
|
|
64
|
+
export interface DelegateInput {
|
|
65
|
+
/** Target agent ID (e.g., 'arch', 'dev-1') */
|
|
66
|
+
agentId: string;
|
|
67
|
+
/** Task description for the specialist */
|
|
68
|
+
task: string;
|
|
69
|
+
/** Optional reason for delegation (shown to user) */
|
|
70
|
+
reason?: string;
|
|
71
|
+
}
|
|
72
|
+
export interface DelegateResult {
|
|
73
|
+
/** True if delegation was approved and switch occurred */
|
|
74
|
+
success: boolean;
|
|
75
|
+
/** True if user declined the delegation */
|
|
76
|
+
declined: boolean;
|
|
77
|
+
/** Error message if delegation failed */
|
|
78
|
+
error?: string;
|
|
79
|
+
}
|
|
80
|
+
export type DelegateHandler = (input: DelegateInput) => Promise<DelegateResult>;
|
|
81
|
+
/**
|
|
82
|
+
* Register the delegate handler. Called during app initialization.
|
|
83
|
+
*/
|
|
84
|
+
export declare function registerDelegateHandler(handler: DelegateHandler): void;
|
|
85
|
+
/**
|
|
86
|
+
* Get the registered delegate handler. Called by the delegate tool.
|
|
87
|
+
*/
|
|
88
|
+
export declare function getDelegateHandler(): DelegateHandler | undefined;
|
|
89
|
+
export interface DelegateBackgroundInput {
|
|
90
|
+
/** Target specialist agent ID */
|
|
91
|
+
agentId: string;
|
|
92
|
+
/** Task description for the specialist */
|
|
93
|
+
task: string;
|
|
94
|
+
/** Optional todo index to associate with this delegation */
|
|
95
|
+
todoIndex?: number;
|
|
96
|
+
/** What the specialist should produce */
|
|
97
|
+
expectedOutput?: string;
|
|
98
|
+
}
|
|
99
|
+
export interface DelegateBackgroundResult {
|
|
100
|
+
/** Unique delegation ID for tracking */
|
|
101
|
+
delegationId: string;
|
|
102
|
+
/** Current status: running or queued */
|
|
103
|
+
status: 'running' | 'queued';
|
|
104
|
+
/** Error message if delegation failed */
|
|
105
|
+
error?: string;
|
|
106
|
+
}
|
|
107
|
+
export type DelegateBackgroundHandler = (input: DelegateBackgroundInput) => Promise<DelegateBackgroundResult>;
|
|
108
|
+
/**
|
|
109
|
+
* Register the delegate_background handler. Called during app initialization.
|
|
110
|
+
*/
|
|
111
|
+
export declare function registerDelegateBackgroundHandler(handler: DelegateBackgroundHandler): void;
|
|
112
|
+
/**
|
|
113
|
+
* Get the registered delegate_background handler.
|
|
114
|
+
*/
|
|
115
|
+
export declare function getDelegateBackgroundHandler(): DelegateBackgroundHandler | undefined;
|
|
116
|
+
/** Handoff uses the same shape as delegation */
|
|
117
|
+
export type HandoffHandler = (input: DelegateInput) => Promise<DelegateResult>;
|
|
118
|
+
/**
|
|
119
|
+
* Register the handoff handler. Called during app initialization.
|
|
120
|
+
*/
|
|
121
|
+
export declare function registerHandoffHandler(handler: HandoffHandler): void;
|
|
122
|
+
/**
|
|
123
|
+
* Get the registered handoff handler. Called by the handoff tool.
|
|
124
|
+
*/
|
|
125
|
+
export declare function getHandoffHandler(): HandoffHandler | undefined;
|