@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,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ArtifactStore - Storage for team artifacts
|
|
3
|
+
*
|
|
4
|
+
* Artifacts are named pieces of work that agents can publish and reference:
|
|
5
|
+
* - design: Architecture, API specs, data models
|
|
6
|
+
* - plan: Sprint plans, task breakdowns, timelines
|
|
7
|
+
* - review: Code reviews, security audits, feedback
|
|
8
|
+
* - decision: Architectural decisions, trade-off analysis
|
|
9
|
+
* - note: General notes, meeting summaries
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Artifact types
|
|
13
|
+
*/
|
|
14
|
+
export type ArtifactType = 'design' | 'plan' | 'review' | 'decision' | 'note';
|
|
15
|
+
/**
|
|
16
|
+
* Full artifact structure
|
|
17
|
+
*/
|
|
18
|
+
export interface Artifact {
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
agent: string;
|
|
22
|
+
type: ArtifactType;
|
|
23
|
+
content: string;
|
|
24
|
+
summary: string;
|
|
25
|
+
version: number;
|
|
26
|
+
createdAt: Date;
|
|
27
|
+
updatedAt: Date;
|
|
28
|
+
mentions: string[];
|
|
29
|
+
referencedBy: string[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Artifact summary for the shared context index
|
|
33
|
+
*/
|
|
34
|
+
export interface ArtifactSummary {
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
agent: string;
|
|
38
|
+
type: ArtifactType;
|
|
39
|
+
summary: string;
|
|
40
|
+
updatedAt: Date;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Options for creating an artifact
|
|
44
|
+
*/
|
|
45
|
+
export interface CreateArtifactOptions {
|
|
46
|
+
name: string;
|
|
47
|
+
agent: string;
|
|
48
|
+
type: ArtifactType;
|
|
49
|
+
content: string;
|
|
50
|
+
summary?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Options for updating an artifact
|
|
54
|
+
*/
|
|
55
|
+
export interface UpdateArtifactOptions {
|
|
56
|
+
content?: string;
|
|
57
|
+
summary?: string;
|
|
58
|
+
type?: ArtifactType;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Serialized artifact for persistence
|
|
62
|
+
*/
|
|
63
|
+
export interface SerializedArtifact {
|
|
64
|
+
id: string;
|
|
65
|
+
name: string;
|
|
66
|
+
agent: string;
|
|
67
|
+
type: ArtifactType;
|
|
68
|
+
content: string;
|
|
69
|
+
summary: string;
|
|
70
|
+
version: number;
|
|
71
|
+
createdAt: string;
|
|
72
|
+
updatedAt: string;
|
|
73
|
+
mentions?: string[];
|
|
74
|
+
referencedBy?: string[];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Artifact index for persistence
|
|
78
|
+
*/
|
|
79
|
+
export interface ArtifactIndex {
|
|
80
|
+
version: number;
|
|
81
|
+
artifacts: Array<{
|
|
82
|
+
id: string;
|
|
83
|
+
name: string;
|
|
84
|
+
agent: string;
|
|
85
|
+
type: ArtifactType;
|
|
86
|
+
summary: string;
|
|
87
|
+
updatedAt: string;
|
|
88
|
+
}>;
|
|
89
|
+
updatedAt: string;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Manages artifact storage and retrieval
|
|
93
|
+
*/
|
|
94
|
+
export declare class ArtifactStore {
|
|
95
|
+
private readonly basePath;
|
|
96
|
+
private readonly artifacts;
|
|
97
|
+
private readonly nameToId;
|
|
98
|
+
private updatedAt;
|
|
99
|
+
constructor(basePath: string);
|
|
100
|
+
/**
|
|
101
|
+
* Get the artifacts directory path
|
|
102
|
+
*/
|
|
103
|
+
private getArtifactsDir;
|
|
104
|
+
/**
|
|
105
|
+
* Get the index file path
|
|
106
|
+
*/
|
|
107
|
+
private getIndexPath;
|
|
108
|
+
/**
|
|
109
|
+
* Get the path for an artifact file
|
|
110
|
+
*/
|
|
111
|
+
private getArtifactPath;
|
|
112
|
+
/**
|
|
113
|
+
* Ensure artifacts directory exists
|
|
114
|
+
*/
|
|
115
|
+
private ensureDir;
|
|
116
|
+
/**
|
|
117
|
+
* Create a new artifact
|
|
118
|
+
*/
|
|
119
|
+
create(options: CreateArtifactOptions): Artifact;
|
|
120
|
+
/**
|
|
121
|
+
* Get an artifact by ID
|
|
122
|
+
*/
|
|
123
|
+
get(id: string): Artifact | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* Get an artifact by name (case-insensitive)
|
|
126
|
+
*/
|
|
127
|
+
getByName(name: string): Artifact | undefined;
|
|
128
|
+
/**
|
|
129
|
+
* Update an artifact
|
|
130
|
+
*/
|
|
131
|
+
update(id: string, options: UpdateArtifactOptions): Artifact | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* Delete an artifact
|
|
134
|
+
*/
|
|
135
|
+
delete(id: string): boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Rename an artifact
|
|
138
|
+
*/
|
|
139
|
+
rename(id: string, newName: string): Artifact | undefined;
|
|
140
|
+
/**
|
|
141
|
+
* List all artifacts
|
|
142
|
+
*/
|
|
143
|
+
list(): Artifact[];
|
|
144
|
+
/**
|
|
145
|
+
* List artifacts by agent
|
|
146
|
+
*/
|
|
147
|
+
listByAgent(agent: string): Artifact[];
|
|
148
|
+
/**
|
|
149
|
+
* List artifacts by type
|
|
150
|
+
*/
|
|
151
|
+
listByType(type: ArtifactType): Artifact[];
|
|
152
|
+
/**
|
|
153
|
+
* Search artifacts by name or content
|
|
154
|
+
*/
|
|
155
|
+
search(query: string): Artifact[];
|
|
156
|
+
/**
|
|
157
|
+
* Get artifact count
|
|
158
|
+
*/
|
|
159
|
+
get size(): number;
|
|
160
|
+
/**
|
|
161
|
+
* Check if an artifact exists by name
|
|
162
|
+
*/
|
|
163
|
+
has(name: string): boolean;
|
|
164
|
+
/**
|
|
165
|
+
* Check if an artifact exists by ID
|
|
166
|
+
*/
|
|
167
|
+
hasId(id: string): boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Generate a summary from content
|
|
170
|
+
* Simple extraction of first meaningful lines
|
|
171
|
+
*/
|
|
172
|
+
private generateSummary;
|
|
173
|
+
/**
|
|
174
|
+
* Get summaries for shared context injection
|
|
175
|
+
*/
|
|
176
|
+
getSummaries(): ArtifactSummary[];
|
|
177
|
+
/**
|
|
178
|
+
* Save all artifacts to disk
|
|
179
|
+
*/
|
|
180
|
+
save(): void;
|
|
181
|
+
/**
|
|
182
|
+
* Save just the index file
|
|
183
|
+
*/
|
|
184
|
+
private saveIndex;
|
|
185
|
+
/**
|
|
186
|
+
* Load artifacts from disk
|
|
187
|
+
*/
|
|
188
|
+
load(): void;
|
|
189
|
+
/**
|
|
190
|
+
* Clear all artifacts (including from disk)
|
|
191
|
+
*/
|
|
192
|
+
clear(): void;
|
|
193
|
+
/**
|
|
194
|
+
* Get the last update timestamp
|
|
195
|
+
*/
|
|
196
|
+
getLastUpdated(): Date;
|
|
197
|
+
}
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ArtifactStore - Storage for team artifacts
|
|
3
|
+
*
|
|
4
|
+
* Artifacts are named pieces of work that agents can publish and reference:
|
|
5
|
+
* - design: Architecture, API specs, data models
|
|
6
|
+
* - plan: Sprint plans, task breakdowns, timelines
|
|
7
|
+
* - review: Code reviews, security audits, feedback
|
|
8
|
+
* - decision: Architectural decisions, trade-off analysis
|
|
9
|
+
* - note: General notes, meeting summaries
|
|
10
|
+
*/
|
|
11
|
+
import * as fs from 'node:fs';
|
|
12
|
+
import * as path from 'node:path';
|
|
13
|
+
import { truncatePlain as truncate } from '@compilr-dev/ui-core/utils';
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Constants
|
|
16
|
+
// =============================================================================
|
|
17
|
+
const MAX_SUMMARY_LENGTH = 200;
|
|
18
|
+
const ARTIFACTS_DIR = 'artifacts';
|
|
19
|
+
const INDEX_FILE = 'index.json';
|
|
20
|
+
// =============================================================================
|
|
21
|
+
// ArtifactStore
|
|
22
|
+
// =============================================================================
|
|
23
|
+
/**
|
|
24
|
+
* Manages artifact storage and retrieval
|
|
25
|
+
*/
|
|
26
|
+
export class ArtifactStore {
|
|
27
|
+
basePath;
|
|
28
|
+
artifacts = new Map();
|
|
29
|
+
nameToId = new Map(); // name -> id lookup
|
|
30
|
+
updatedAt = new Date();
|
|
31
|
+
constructor(basePath) {
|
|
32
|
+
this.basePath = basePath;
|
|
33
|
+
}
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
// Path Helpers
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
/**
|
|
38
|
+
* Get the artifacts directory path
|
|
39
|
+
*/
|
|
40
|
+
getArtifactsDir() {
|
|
41
|
+
return path.join(this.basePath, ARTIFACTS_DIR);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get the index file path
|
|
45
|
+
*/
|
|
46
|
+
getIndexPath() {
|
|
47
|
+
return path.join(this.getArtifactsDir(), INDEX_FILE);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get the path for an artifact file
|
|
51
|
+
*/
|
|
52
|
+
getArtifactPath(id) {
|
|
53
|
+
return path.join(this.getArtifactsDir(), `${id}.json`);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Ensure artifacts directory exists
|
|
57
|
+
*/
|
|
58
|
+
ensureDir() {
|
|
59
|
+
const dir = this.getArtifactsDir();
|
|
60
|
+
if (!fs.existsSync(dir)) {
|
|
61
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
// CRUD Operations
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
/**
|
|
68
|
+
* Create a new artifact
|
|
69
|
+
*/
|
|
70
|
+
create(options) {
|
|
71
|
+
const id = `art-${String(Date.now())}-${Math.random().toString(36).slice(2, 8)}`;
|
|
72
|
+
// Generate summary if not provided
|
|
73
|
+
const summary = options.summary ?? this.generateSummary(options.content);
|
|
74
|
+
const artifact = {
|
|
75
|
+
id,
|
|
76
|
+
name: options.name,
|
|
77
|
+
agent: options.agent,
|
|
78
|
+
type: options.type,
|
|
79
|
+
content: options.content,
|
|
80
|
+
summary,
|
|
81
|
+
version: 1,
|
|
82
|
+
createdAt: new Date(),
|
|
83
|
+
updatedAt: new Date(),
|
|
84
|
+
mentions: [],
|
|
85
|
+
referencedBy: [],
|
|
86
|
+
};
|
|
87
|
+
this.artifacts.set(id, artifact);
|
|
88
|
+
this.nameToId.set(options.name.toLowerCase(), id);
|
|
89
|
+
this.updatedAt = new Date();
|
|
90
|
+
return artifact;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get an artifact by ID
|
|
94
|
+
*/
|
|
95
|
+
get(id) {
|
|
96
|
+
return this.artifacts.get(id);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get an artifact by name (case-insensitive)
|
|
100
|
+
*/
|
|
101
|
+
getByName(name) {
|
|
102
|
+
const id = this.nameToId.get(name.toLowerCase());
|
|
103
|
+
if (id) {
|
|
104
|
+
return this.artifacts.get(id);
|
|
105
|
+
}
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Update an artifact
|
|
110
|
+
*/
|
|
111
|
+
update(id, options) {
|
|
112
|
+
const artifact = this.artifacts.get(id);
|
|
113
|
+
if (!artifact) {
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
if (options.content !== undefined) {
|
|
117
|
+
artifact.content = options.content;
|
|
118
|
+
// Regenerate summary if content changed and no new summary provided
|
|
119
|
+
if (options.summary === undefined) {
|
|
120
|
+
artifact.summary = this.generateSummary(options.content);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (options.summary !== undefined) {
|
|
124
|
+
artifact.summary = options.summary;
|
|
125
|
+
}
|
|
126
|
+
if (options.type !== undefined) {
|
|
127
|
+
artifact.type = options.type;
|
|
128
|
+
}
|
|
129
|
+
artifact.version++;
|
|
130
|
+
artifact.updatedAt = new Date();
|
|
131
|
+
this.updatedAt = new Date();
|
|
132
|
+
return artifact;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Delete an artifact
|
|
136
|
+
*/
|
|
137
|
+
delete(id) {
|
|
138
|
+
const artifact = this.artifacts.get(id);
|
|
139
|
+
if (!artifact) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
this.nameToId.delete(artifact.name.toLowerCase());
|
|
143
|
+
this.artifacts.delete(id);
|
|
144
|
+
this.updatedAt = new Date();
|
|
145
|
+
// Remove file if persisted
|
|
146
|
+
const filePath = this.getArtifactPath(id);
|
|
147
|
+
if (fs.existsSync(filePath)) {
|
|
148
|
+
fs.unlinkSync(filePath);
|
|
149
|
+
}
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Rename an artifact
|
|
154
|
+
*/
|
|
155
|
+
rename(id, newName) {
|
|
156
|
+
const artifact = this.artifacts.get(id);
|
|
157
|
+
if (!artifact) {
|
|
158
|
+
return undefined;
|
|
159
|
+
}
|
|
160
|
+
// Update name lookup
|
|
161
|
+
this.nameToId.delete(artifact.name.toLowerCase());
|
|
162
|
+
artifact.name = newName;
|
|
163
|
+
this.nameToId.set(newName.toLowerCase(), id);
|
|
164
|
+
artifact.updatedAt = new Date();
|
|
165
|
+
this.updatedAt = new Date();
|
|
166
|
+
return artifact;
|
|
167
|
+
}
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
// Query Operations
|
|
170
|
+
// ---------------------------------------------------------------------------
|
|
171
|
+
/**
|
|
172
|
+
* List all artifacts
|
|
173
|
+
*/
|
|
174
|
+
list() {
|
|
175
|
+
return Array.from(this.artifacts.values());
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* List artifacts by agent
|
|
179
|
+
*/
|
|
180
|
+
listByAgent(agent) {
|
|
181
|
+
return this.list().filter(a => a.agent === agent);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* List artifacts by type
|
|
185
|
+
*/
|
|
186
|
+
listByType(type) {
|
|
187
|
+
return this.list().filter(a => a.type === type);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Search artifacts by name or content
|
|
191
|
+
*/
|
|
192
|
+
search(query) {
|
|
193
|
+
const lowerQuery = query.toLowerCase();
|
|
194
|
+
return this.list().filter(a => a.name.toLowerCase().includes(lowerQuery) ||
|
|
195
|
+
a.content.toLowerCase().includes(lowerQuery) ||
|
|
196
|
+
a.summary.toLowerCase().includes(lowerQuery));
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get artifact count
|
|
200
|
+
*/
|
|
201
|
+
get size() {
|
|
202
|
+
return this.artifacts.size;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Check if an artifact exists by name
|
|
206
|
+
*/
|
|
207
|
+
has(name) {
|
|
208
|
+
return this.nameToId.has(name.toLowerCase());
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Check if an artifact exists by ID
|
|
212
|
+
*/
|
|
213
|
+
hasId(id) {
|
|
214
|
+
return this.artifacts.has(id);
|
|
215
|
+
}
|
|
216
|
+
// ---------------------------------------------------------------------------
|
|
217
|
+
// Summary Generation
|
|
218
|
+
// ---------------------------------------------------------------------------
|
|
219
|
+
/**
|
|
220
|
+
* Generate a summary from content
|
|
221
|
+
* Simple extraction of first meaningful lines
|
|
222
|
+
*/
|
|
223
|
+
generateSummary(content) {
|
|
224
|
+
// Remove markdown headers and get first meaningful content
|
|
225
|
+
const lines = content
|
|
226
|
+
.split('\n')
|
|
227
|
+
.map(line => line.trim())
|
|
228
|
+
.filter(line => line.length > 0 && !line.startsWith('#'));
|
|
229
|
+
const summary = lines.slice(0, 3).join(' ');
|
|
230
|
+
if (summary.length > MAX_SUMMARY_LENGTH) {
|
|
231
|
+
return truncate(summary, MAX_SUMMARY_LENGTH);
|
|
232
|
+
}
|
|
233
|
+
return summary || 'No summary available';
|
|
234
|
+
}
|
|
235
|
+
// ---------------------------------------------------------------------------
|
|
236
|
+
// Index for Shared Context
|
|
237
|
+
// ---------------------------------------------------------------------------
|
|
238
|
+
/**
|
|
239
|
+
* Get summaries for shared context injection
|
|
240
|
+
*/
|
|
241
|
+
getSummaries() {
|
|
242
|
+
return this.list()
|
|
243
|
+
.sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime())
|
|
244
|
+
.map(a => ({
|
|
245
|
+
id: a.id,
|
|
246
|
+
name: a.name,
|
|
247
|
+
agent: a.agent,
|
|
248
|
+
type: a.type,
|
|
249
|
+
summary: a.summary,
|
|
250
|
+
updatedAt: a.updatedAt,
|
|
251
|
+
}));
|
|
252
|
+
}
|
|
253
|
+
// ---------------------------------------------------------------------------
|
|
254
|
+
// Persistence
|
|
255
|
+
// ---------------------------------------------------------------------------
|
|
256
|
+
/**
|
|
257
|
+
* Save all artifacts to disk
|
|
258
|
+
*/
|
|
259
|
+
save() {
|
|
260
|
+
this.ensureDir();
|
|
261
|
+
// Save each artifact
|
|
262
|
+
for (const artifact of this.artifacts.values()) {
|
|
263
|
+
const filePath = this.getArtifactPath(artifact.id);
|
|
264
|
+
const serialized = {
|
|
265
|
+
id: artifact.id,
|
|
266
|
+
name: artifact.name,
|
|
267
|
+
agent: artifact.agent,
|
|
268
|
+
type: artifact.type,
|
|
269
|
+
content: artifact.content,
|
|
270
|
+
summary: artifact.summary,
|
|
271
|
+
version: artifact.version,
|
|
272
|
+
createdAt: artifact.createdAt.toISOString(),
|
|
273
|
+
updatedAt: artifact.updatedAt.toISOString(),
|
|
274
|
+
mentions: artifact.mentions,
|
|
275
|
+
referencedBy: artifact.referencedBy,
|
|
276
|
+
};
|
|
277
|
+
fs.writeFileSync(filePath, JSON.stringify(serialized, null, 2), 'utf-8');
|
|
278
|
+
}
|
|
279
|
+
// Save index
|
|
280
|
+
this.saveIndex();
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Save just the index file
|
|
284
|
+
*/
|
|
285
|
+
saveIndex() {
|
|
286
|
+
this.ensureDir();
|
|
287
|
+
const index = {
|
|
288
|
+
version: 1,
|
|
289
|
+
artifacts: this.getSummaries().map(a => ({
|
|
290
|
+
id: a.id,
|
|
291
|
+
name: a.name,
|
|
292
|
+
agent: a.agent,
|
|
293
|
+
type: a.type,
|
|
294
|
+
summary: a.summary,
|
|
295
|
+
updatedAt: a.updatedAt.toISOString(),
|
|
296
|
+
})),
|
|
297
|
+
updatedAt: this.updatedAt.toISOString(),
|
|
298
|
+
};
|
|
299
|
+
fs.writeFileSync(this.getIndexPath(), JSON.stringify(index, null, 2), 'utf-8');
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Load artifacts from disk
|
|
303
|
+
*/
|
|
304
|
+
load() {
|
|
305
|
+
const dir = this.getArtifactsDir();
|
|
306
|
+
if (!fs.existsSync(dir)) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
// Load index first to get list of artifacts
|
|
310
|
+
const indexPath = this.getIndexPath();
|
|
311
|
+
if (!fs.existsSync(indexPath)) {
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
try {
|
|
315
|
+
const indexContent = fs.readFileSync(indexPath, 'utf-8');
|
|
316
|
+
const index = JSON.parse(indexContent);
|
|
317
|
+
// Load each artifact file
|
|
318
|
+
for (const entry of index.artifacts) {
|
|
319
|
+
const filePath = this.getArtifactPath(entry.id);
|
|
320
|
+
if (fs.existsSync(filePath)) {
|
|
321
|
+
try {
|
|
322
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
323
|
+
const serialized = JSON.parse(content);
|
|
324
|
+
const artifact = {
|
|
325
|
+
id: serialized.id,
|
|
326
|
+
name: serialized.name,
|
|
327
|
+
agent: serialized.agent,
|
|
328
|
+
type: serialized.type,
|
|
329
|
+
content: serialized.content,
|
|
330
|
+
summary: serialized.summary,
|
|
331
|
+
version: serialized.version,
|
|
332
|
+
createdAt: new Date(serialized.createdAt),
|
|
333
|
+
updatedAt: new Date(serialized.updatedAt),
|
|
334
|
+
mentions: serialized.mentions ?? [],
|
|
335
|
+
referencedBy: serialized.referencedBy ?? [],
|
|
336
|
+
};
|
|
337
|
+
this.artifacts.set(artifact.id, artifact);
|
|
338
|
+
this.nameToId.set(artifact.name.toLowerCase(), artifact.id);
|
|
339
|
+
}
|
|
340
|
+
catch {
|
|
341
|
+
// Skip invalid artifact files
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
this.updatedAt = new Date(index.updatedAt);
|
|
346
|
+
}
|
|
347
|
+
catch {
|
|
348
|
+
// Index corrupted, start fresh
|
|
349
|
+
this.artifacts.clear();
|
|
350
|
+
this.nameToId.clear();
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Clear all artifacts (including from disk)
|
|
355
|
+
*/
|
|
356
|
+
clear() {
|
|
357
|
+
// Delete all artifact files
|
|
358
|
+
for (const id of this.artifacts.keys()) {
|
|
359
|
+
const filePath = this.getArtifactPath(id);
|
|
360
|
+
if (fs.existsSync(filePath)) {
|
|
361
|
+
fs.unlinkSync(filePath);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
// Delete index
|
|
365
|
+
const indexPath = this.getIndexPath();
|
|
366
|
+
if (fs.existsSync(indexPath)) {
|
|
367
|
+
fs.unlinkSync(indexPath);
|
|
368
|
+
}
|
|
369
|
+
this.artifacts.clear();
|
|
370
|
+
this.nameToId.clear();
|
|
371
|
+
this.updatedAt = new Date();
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Get the last update timestamp
|
|
375
|
+
*/
|
|
376
|
+
getLastUpdated() {
|
|
377
|
+
return this.updatedAt;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TeamCheckpointer - Persistence for multi-agent teams
|
|
3
|
+
*
|
|
4
|
+
* Stores team state alongside project sessions:
|
|
5
|
+
* ~/.compilr-dev/sessions/{project-id}/
|
|
6
|
+
* ├── current.json # Single-agent session (existing)
|
|
7
|
+
* ├── team.json # Team metadata
|
|
8
|
+
* ├── agent-default.json # Per-agent state
|
|
9
|
+
* ├── agent-pm.json
|
|
10
|
+
* ├── agent-arch.json
|
|
11
|
+
* ├── shared-context.json # Shared context (Phase 2)
|
|
12
|
+
* └── artifacts/ # Team artifacts (Phase 2)
|
|
13
|
+
* ├── index.json
|
|
14
|
+
* └── {id}.json
|
|
15
|
+
*/
|
|
16
|
+
import type { SerializedTeamAgent, TeamMetadata } from './types.js';
|
|
17
|
+
import { AgentTeam, type AgentTeamConfig } from './team.js';
|
|
18
|
+
import { SharedContextManager } from './shared-context.js';
|
|
19
|
+
import { ArtifactStore } from './artifacts.js';
|
|
20
|
+
/**
|
|
21
|
+
* TeamCheckpointer handles persistence for multi-agent teams
|
|
22
|
+
*/
|
|
23
|
+
export declare class TeamCheckpointer {
|
|
24
|
+
private readonly sessionsPath;
|
|
25
|
+
constructor(sessionsPath: string);
|
|
26
|
+
/**
|
|
27
|
+
* Get the session directory for a project
|
|
28
|
+
*/
|
|
29
|
+
private getProjectDir;
|
|
30
|
+
/**
|
|
31
|
+
* Get the team metadata file path (terminal-scoped when multi-terminal active)
|
|
32
|
+
*/
|
|
33
|
+
private getTeamFilePath;
|
|
34
|
+
/**
|
|
35
|
+
* Get the agent state file path (terminal-scoped when multi-terminal active)
|
|
36
|
+
*/
|
|
37
|
+
private getAgentFilePath;
|
|
38
|
+
/**
|
|
39
|
+
* Get the shared context file path (terminal-scoped when multi-terminal active)
|
|
40
|
+
*/
|
|
41
|
+
private getSharedContextPath;
|
|
42
|
+
/**
|
|
43
|
+
* Get the artifacts directory path
|
|
44
|
+
*/
|
|
45
|
+
private getArtifactsPath;
|
|
46
|
+
/**
|
|
47
|
+
* Check if a team exists for THIS terminal's project.
|
|
48
|
+
* Only checks this terminal's scoped file — never cross-terminal.
|
|
49
|
+
*/
|
|
50
|
+
hasTeam(projectId: number | null): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Save team state
|
|
53
|
+
*/
|
|
54
|
+
saveTeam(projectId: number | null, team: AgentTeam): void;
|
|
55
|
+
/**
|
|
56
|
+
* Load team state for THIS terminal.
|
|
57
|
+
* Only loads this terminal's scoped files. Never cross-terminal.
|
|
58
|
+
* For cross-terminal loading, use loadTeamByPrefix().
|
|
59
|
+
*/
|
|
60
|
+
loadTeam(projectId: number | null, agentFactory: AgentTeamConfig['agentFactory'], onEvent?: AgentTeamConfig['onEvent']): AgentTeam | null;
|
|
61
|
+
/**
|
|
62
|
+
* Load team state for a SPECIFIC terminal prefix (cross-terminal resume).
|
|
63
|
+
* Used when the user explicitly picks another terminal's session to resume.
|
|
64
|
+
*/
|
|
65
|
+
loadTeamByPrefix(projectId: number | null, terminalPrefix: string, agentFactory: AgentTeamConfig['agentFactory'], onEvent?: AgentTeamConfig['onEvent']): AgentTeam | null;
|
|
66
|
+
/**
|
|
67
|
+
* Get the agent count from a team file for a specific terminal prefix.
|
|
68
|
+
* Lightweight — reads only metadata, doesn't load agents.
|
|
69
|
+
* Returns 0 if no team file exists (default agent only).
|
|
70
|
+
*/
|
|
71
|
+
getTeamAgentCountByPrefix(projectId: number | null, terminalPrefix: string): number;
|
|
72
|
+
/**
|
|
73
|
+
* Internal: load team from a specific file path with optional terminal prefix for agent files.
|
|
74
|
+
*/
|
|
75
|
+
private loadTeamFromPath;
|
|
76
|
+
/**
|
|
77
|
+
* Save a single agent's state (for incremental updates)
|
|
78
|
+
*/
|
|
79
|
+
saveAgent(projectId: number | null, agentId: string, agent: SerializedTeamAgent): void;
|
|
80
|
+
/**
|
|
81
|
+
* Delete team data for a project
|
|
82
|
+
*/
|
|
83
|
+
deleteTeam(projectId: number | null): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Claim team files from another terminal by renaming them to this terminal's prefix.
|
|
86
|
+
* Renames: team-{from}.json, agent-{from}-*.json, shared-context-{from}.json
|
|
87
|
+
*/
|
|
88
|
+
claimTeamFiles(projectId: number | null, fromPrefix: string, toPrefix: string): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Check if shared context exists for this project
|
|
91
|
+
*/
|
|
92
|
+
hasSharedContext(projectId: number | null): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Save shared context
|
|
95
|
+
*/
|
|
96
|
+
saveSharedContext(projectId: number | null, context: SharedContextManager): void;
|
|
97
|
+
/**
|
|
98
|
+
* Load shared context
|
|
99
|
+
*/
|
|
100
|
+
loadSharedContext(projectId: number | null): SharedContextManager | null;
|
|
101
|
+
/**
|
|
102
|
+
* Delete shared context
|
|
103
|
+
*/
|
|
104
|
+
deleteSharedContext(projectId: number | null): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Get artifact store for a project
|
|
107
|
+
* The ArtifactStore handles its own persistence
|
|
108
|
+
*/
|
|
109
|
+
getArtifactStore(projectId: number | null): ArtifactStore;
|
|
110
|
+
/**
|
|
111
|
+
* Check if artifacts exist for this project
|
|
112
|
+
*/
|
|
113
|
+
hasArtifacts(projectId: number | null): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Delete all artifacts for a project
|
|
116
|
+
*/
|
|
117
|
+
deleteArtifacts(projectId: number | null): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Clean up agent files that are no longer in the team
|
|
120
|
+
*/
|
|
121
|
+
private cleanupOldAgentFiles;
|
|
122
|
+
/**
|
|
123
|
+
* List all projects that have team data.
|
|
124
|
+
*/
|
|
125
|
+
listProjectsWithTeams(): number[];
|
|
126
|
+
/**
|
|
127
|
+
* Get team metadata without loading the full team.
|
|
128
|
+
*/
|
|
129
|
+
getTeamMetadata(projectId: number | null): TeamMetadata | null;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Get the default sessions path
|
|
133
|
+
*/
|
|
134
|
+
export declare function getSessionsPath(): string;
|
|
135
|
+
/**
|
|
136
|
+
* Get the shared TeamCheckpointer instance
|
|
137
|
+
*/
|
|
138
|
+
export declare function getTeamCheckpointer(): TeamCheckpointer;
|