hammoc 1.5.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -4
- package/package.json +2 -2
- package/packages/client/dist/assets/{agentExampleHighlight-BgwTm15v.js → agentExampleHighlight-7Olvqdpf.js} +1 -1
- package/packages/client/dist/assets/{commandTokenHighlight-BljHwnrK.js → commandTokenHighlight-DtKwh4lx.js} +1 -1
- package/packages/client/dist/assets/index-B09doO8H.js +139 -0
- package/packages/client/dist/assets/index-Bee52CKG.js +1569 -0
- package/packages/client/dist/assets/index-CVy582lU.css +32 -0
- package/packages/client/dist/assets/{index-D3LxqW3f.js → index-DLHBUw8c.js} +1 -1
- package/packages/client/dist/assets/{snippetTokenHighlight-DWsaQXX0.js → snippetTokenHighlight-C8O688f4.js} +1 -1
- package/packages/client/dist/index.html +2 -2
- package/packages/client/dist/sw.js +2 -2
- package/packages/server/dist/_dbg_agent_rows.d.ts +2 -0
- package/packages/server/dist/_dbg_agent_rows.d.ts.map +1 -0
- package/packages/server/dist/_dbg_agent_rows.js +60 -0
- package/packages/server/dist/_dbg_agent_rows.js.map +1 -0
- package/packages/server/dist/_dbg_flicker.d.ts +2 -0
- package/packages/server/dist/_dbg_flicker.d.ts.map +1 -0
- package/packages/server/dist/_dbg_flicker.js +38 -0
- package/packages/server/dist/_dbg_flicker.js.map +1 -0
- package/packages/server/dist/_harness_cli.d.ts +2 -0
- package/packages/server/dist/_harness_cli.d.ts.map +1 -0
- package/packages/server/dist/_harness_cli.js +81 -0
- package/packages/server/dist/_harness_cli.js.map +1 -0
- package/packages/server/dist/_harness_provcard.d.ts +2 -0
- package/packages/server/dist/_harness_provcard.d.ts.map +1 -0
- package/packages/server/dist/_harness_provcard.js +67 -0
- package/packages/server/dist/_harness_provcard.js.map +1 -0
- package/packages/server/dist/_replay_dump.d.ts +2 -0
- package/packages/server/dist/_replay_dump.d.ts.map +1 -0
- package/packages/server/dist/_replay_dump.js +62 -0
- package/packages/server/dist/_replay_dump.js.map +1 -0
- package/packages/server/dist/app.d.ts.map +1 -1
- package/packages/server/dist/app.js +6 -0
- package/packages/server/dist/app.js.map +1 -1
- package/packages/server/dist/config/index.d.ts.map +1 -1
- package/packages/server/dist/config/index.js.map +1 -1
- package/packages/server/dist/controllers/bmadCoreConfigController.d.ts +41 -0
- package/packages/server/dist/controllers/bmadCoreConfigController.d.ts.map +1 -0
- package/packages/server/dist/controllers/bmadCoreConfigController.js +172 -0
- package/packages/server/dist/controllers/bmadCoreConfigController.js.map +1 -0
- package/packages/server/dist/controllers/contextBuilderController.d.ts +43 -0
- package/packages/server/dist/controllers/contextBuilderController.d.ts.map +1 -0
- package/packages/server/dist/controllers/contextBuilderController.js +159 -0
- package/packages/server/dist/controllers/contextBuilderController.js.map +1 -0
- package/packages/server/dist/controllers/harnessAgentController.d.ts +7 -0
- package/packages/server/dist/controllers/harnessAgentController.d.ts.map +1 -1
- package/packages/server/dist/controllers/harnessAgentController.js +33 -0
- package/packages/server/dist/controllers/harnessAgentController.js.map +1 -1
- package/packages/server/dist/controllers/harnessBundleController.d.ts +37 -0
- package/packages/server/dist/controllers/harnessBundleController.d.ts.map +1 -0
- package/packages/server/dist/controllers/harnessBundleController.js +312 -0
- package/packages/server/dist/controllers/harnessBundleController.js.map +1 -0
- package/packages/server/dist/controllers/harnessCommandController.d.ts +7 -0
- package/packages/server/dist/controllers/harnessCommandController.d.ts.map +1 -1
- package/packages/server/dist/controllers/harnessCommandController.js +33 -0
- package/packages/server/dist/controllers/harnessCommandController.js.map +1 -1
- package/packages/server/dist/controllers/harnessHookController.d.ts.map +1 -1
- package/packages/server/dist/controllers/harnessHookController.js +44 -1
- package/packages/server/dist/controllers/harnessHookController.js.map +1 -1
- package/packages/server/dist/controllers/harnessMcpController.d.ts.map +1 -1
- package/packages/server/dist/controllers/harnessMcpController.js +62 -1
- package/packages/server/dist/controllers/harnessMcpController.js.map +1 -1
- package/packages/server/dist/controllers/harnessShareScopeController.d.ts +9 -0
- package/packages/server/dist/controllers/harnessShareScopeController.d.ts.map +1 -1
- package/packages/server/dist/controllers/harnessShareScopeController.js +48 -1
- package/packages/server/dist/controllers/harnessShareScopeController.js.map +1 -1
- package/packages/server/dist/controllers/marketplaceController.d.ts +19 -0
- package/packages/server/dist/controllers/marketplaceController.d.ts.map +1 -0
- package/packages/server/dist/controllers/marketplaceController.js +74 -0
- package/packages/server/dist/controllers/marketplaceController.js.map +1 -0
- package/packages/server/dist/controllers/observabilityController.d.ts +32 -0
- package/packages/server/dist/controllers/observabilityController.d.ts.map +1 -0
- package/packages/server/dist/controllers/observabilityController.js +148 -0
- package/packages/server/dist/controllers/observabilityController.js.map +1 -0
- package/packages/server/dist/controllers/projectController.d.ts.map +1 -1
- package/packages/server/dist/controllers/projectController.js +7 -1
- package/packages/server/dist/controllers/projectController.js.map +1 -1
- package/packages/server/dist/controllers/sessionController.d.ts.map +1 -1
- package/packages/server/dist/controllers/sessionController.js +16 -4
- package/packages/server/dist/controllers/sessionController.js.map +1 -1
- package/packages/server/dist/controllers/systemBrowseController.d.ts +33 -0
- package/packages/server/dist/controllers/systemBrowseController.d.ts.map +1 -0
- package/packages/server/dist/controllers/systemBrowseController.js +105 -0
- package/packages/server/dist/controllers/systemBrowseController.js.map +1 -0
- package/packages/server/dist/handlers/streamCallbacks.d.ts +10 -0
- package/packages/server/dist/handlers/streamCallbacks.d.ts.map +1 -1
- package/packages/server/dist/handlers/streamCallbacks.js +25 -4
- package/packages/server/dist/handlers/streamCallbacks.js.map +1 -1
- package/packages/server/dist/handlers/websocket.d.ts +43 -3
- package/packages/server/dist/handlers/websocket.d.ts.map +1 -1
- package/packages/server/dist/handlers/websocket.js +385 -93
- package/packages/server/dist/handlers/websocket.js.map +1 -1
- package/packages/server/dist/index.js +2 -0
- package/packages/server/dist/index.js.map +1 -1
- package/packages/server/dist/locales/en/server.json +17 -0
- package/packages/server/dist/locales/es/server.json +17 -0
- package/packages/server/dist/locales/ja/server.json +17 -0
- package/packages/server/dist/locales/ko/server.json +17 -0
- package/packages/server/dist/locales/pt/server.json +17 -0
- package/packages/server/dist/locales/zh-CN/server.json +17 -0
- package/packages/server/dist/routes/harness.d.ts.map +1 -1
- package/packages/server/dist/routes/harness.js +58 -0
- package/packages/server/dist/routes/harness.js.map +1 -1
- package/packages/server/dist/routes/preferences.d.ts.map +1 -1
- package/packages/server/dist/routes/preferences.js +12 -2
- package/packages/server/dist/routes/preferences.js.map +1 -1
- package/packages/server/dist/routes/systemBrowse.d.ts +17 -0
- package/packages/server/dist/routes/systemBrowse.d.ts.map +1 -0
- package/packages/server/dist/routes/systemBrowse.js +22 -0
- package/packages/server/dist/routes/systemBrowse.js.map +1 -0
- package/packages/server/dist/services/bmadCoreConfigService.d.ts +86 -0
- package/packages/server/dist/services/bmadCoreConfigService.d.ts.map +1 -0
- package/packages/server/dist/services/bmadCoreConfigService.js +175 -0
- package/packages/server/dist/services/bmadCoreConfigService.js.map +1 -0
- package/packages/server/dist/services/bmadStatusService.d.ts +9 -0
- package/packages/server/dist/services/bmadStatusService.d.ts.map +1 -1
- package/packages/server/dist/services/bmadStatusService.js +77 -13
- package/packages/server/dist/services/bmadStatusService.js.map +1 -1
- package/packages/server/dist/services/chatEngine.d.ts +81 -0
- package/packages/server/dist/services/chatEngine.d.ts.map +1 -0
- package/packages/server/dist/services/chatEngine.js +2 -0
- package/packages/server/dist/services/chatEngine.js.map +1 -0
- package/packages/server/dist/services/chatEngineFactory.d.ts +15 -0
- package/packages/server/dist/services/chatEngineFactory.d.ts.map +1 -0
- package/packages/server/dist/services/chatEngineFactory.js +28 -0
- package/packages/server/dist/services/chatEngineFactory.js.map +1 -0
- package/packages/server/dist/services/chatService.d.ts +34 -26
- package/packages/server/dist/services/chatService.d.ts.map +1 -1
- package/packages/server/dist/services/chatService.js +44 -104
- package/packages/server/dist/services/chatService.js.map +1 -1
- package/packages/server/dist/services/cliChatEngine.d.ts +198 -0
- package/packages/server/dist/services/cliChatEngine.d.ts.map +1 -0
- package/packages/server/dist/services/cliChatEngine.js +2977 -0
- package/packages/server/dist/services/cliChatEngine.js.map +1 -0
- package/packages/server/dist/services/cliGridCards.d.ts +87 -0
- package/packages/server/dist/services/cliGridCards.d.ts.map +1 -0
- package/packages/server/dist/services/cliGridCards.js +298 -0
- package/packages/server/dist/services/cliGridCards.js.map +1 -0
- package/packages/server/dist/services/cliGridRegion.d.ts +44 -0
- package/packages/server/dist/services/cliGridRegion.d.ts.map +1 -0
- package/packages/server/dist/services/cliGridRegion.js +94 -0
- package/packages/server/dist/services/cliGridRegion.js.map +1 -0
- package/packages/server/dist/services/cliModalDetect.d.ts +299 -0
- package/packages/server/dist/services/cliModalDetect.d.ts.map +1 -0
- package/packages/server/dist/services/cliModalDetect.js +583 -0
- package/packages/server/dist/services/cliModalDetect.js.map +1 -0
- package/packages/server/dist/services/cliScreenCache.d.ts +33 -0
- package/packages/server/dist/services/cliScreenCache.d.ts.map +1 -0
- package/packages/server/dist/services/cliScreenCache.js +48 -0
- package/packages/server/dist/services/cliScreenCache.js.map +1 -0
- package/packages/server/dist/services/cliScreenModel.d.ts +141 -0
- package/packages/server/dist/services/cliScreenModel.d.ts.map +1 -0
- package/packages/server/dist/services/cliScreenModel.js +196 -0
- package/packages/server/dist/services/cliScreenModel.js.map +1 -0
- package/packages/server/dist/services/cliScreenStallWatchdog.d.ts +41 -0
- package/packages/server/dist/services/cliScreenStallWatchdog.d.ts.map +1 -0
- package/packages/server/dist/services/cliScreenStallWatchdog.js +45 -0
- package/packages/server/dist/services/cliScreenStallWatchdog.js.map +1 -0
- package/packages/server/dist/services/cliSessionPool.d.ts +97 -0
- package/packages/server/dist/services/cliSessionPool.d.ts.map +1 -0
- package/packages/server/dist/services/cliSessionPool.js +278 -0
- package/packages/server/dist/services/cliSessionPool.js.map +1 -0
- package/packages/server/dist/services/cliSpinnerProgress.d.ts +41 -0
- package/packages/server/dist/services/cliSpinnerProgress.d.ts.map +1 -0
- package/packages/server/dist/services/cliSpinnerProgress.js +131 -0
- package/packages/server/dist/services/cliSpinnerProgress.js.map +1 -0
- package/packages/server/dist/services/contextBuilderScriptTemplate.d.ts +24 -0
- package/packages/server/dist/services/contextBuilderScriptTemplate.d.ts.map +1 -0
- package/packages/server/dist/services/contextBuilderScriptTemplate.js +181 -0
- package/packages/server/dist/services/contextBuilderScriptTemplate.js.map +1 -0
- package/packages/server/dist/services/contextBuilderService.d.ts +68 -0
- package/packages/server/dist/services/contextBuilderService.d.ts.map +1 -0
- package/packages/server/dist/services/contextBuilderService.js +345 -0
- package/packages/server/dist/services/contextBuilderService.js.map +1 -0
- package/packages/server/dist/services/fileRewind.d.ts +46 -0
- package/packages/server/dist/services/fileRewind.d.ts.map +1 -0
- package/packages/server/dist/services/fileRewind.js +77 -0
- package/packages/server/dist/services/fileRewind.js.map +1 -0
- package/packages/server/dist/services/fileWatcherService.d.ts.map +1 -1
- package/packages/server/dist/services/fileWatcherService.js +40 -0
- package/packages/server/dist/services/fileWatcherService.js.map +1 -1
- package/packages/server/dist/services/harnessAgentService.d.ts +18 -0
- package/packages/server/dist/services/harnessAgentService.d.ts.map +1 -1
- package/packages/server/dist/services/harnessAgentService.js +55 -0
- package/packages/server/dist/services/harnessAgentService.js.map +1 -1
- package/packages/server/dist/services/harnessBundleService.d.ts +145 -0
- package/packages/server/dist/services/harnessBundleService.d.ts.map +1 -0
- package/packages/server/dist/services/harnessBundleService.js +1318 -0
- package/packages/server/dist/services/harnessBundleService.js.map +1 -0
- package/packages/server/dist/services/harnessCommandService.d.ts +21 -0
- package/packages/server/dist/services/harnessCommandService.d.ts.map +1 -1
- package/packages/server/dist/services/harnessCommandService.js +64 -0
- package/packages/server/dist/services/harnessCommandService.js.map +1 -1
- package/packages/server/dist/services/harnessHookService.d.ts +27 -0
- package/packages/server/dist/services/harnessHookService.d.ts.map +1 -1
- package/packages/server/dist/services/harnessHookService.js +52 -0
- package/packages/server/dist/services/harnessHookService.js.map +1 -1
- package/packages/server/dist/services/harnessMcpService.d.ts +24 -1
- package/packages/server/dist/services/harnessMcpService.d.ts.map +1 -1
- package/packages/server/dist/services/harnessMcpService.js +70 -0
- package/packages/server/dist/services/harnessMcpService.js.map +1 -1
- package/packages/server/dist/services/harnessShareScopeService.d.ts +19 -0
- package/packages/server/dist/services/harnessShareScopeService.d.ts.map +1 -1
- package/packages/server/dist/services/harnessShareScopeService.js +65 -0
- package/packages/server/dist/services/harnessShareScopeService.js.map +1 -1
- package/packages/server/dist/services/historyParser.d.ts +11 -0
- package/packages/server/dist/services/historyParser.d.ts.map +1 -1
- package/packages/server/dist/services/historyParser.js +10 -8
- package/packages/server/dist/services/historyParser.js.map +1 -1
- package/packages/server/dist/services/imageStorageService.d.ts +12 -0
- package/packages/server/dist/services/imageStorageService.d.ts.map +1 -1
- package/packages/server/dist/services/imageStorageService.js +22 -0
- package/packages/server/dist/services/imageStorageService.js.map +1 -1
- package/packages/server/dist/services/issueService.d.ts.map +1 -1
- package/packages/server/dist/services/issueService.js +1 -0
- package/packages/server/dist/services/issueService.js.map +1 -1
- package/packages/server/dist/services/marketplaceService.d.ts +50 -0
- package/packages/server/dist/services/marketplaceService.d.ts.map +1 -0
- package/packages/server/dist/services/marketplaceService.js +326 -0
- package/packages/server/dist/services/marketplaceService.js.map +1 -0
- package/packages/server/dist/services/observabilityService.d.ts +87 -0
- package/packages/server/dist/services/observabilityService.d.ts.map +1 -0
- package/packages/server/dist/services/observabilityService.js +0 -0
- package/packages/server/dist/services/observabilityService.js.map +1 -0
- package/packages/server/dist/services/projectService.d.ts +13 -1
- package/packages/server/dist/services/projectService.d.ts.map +1 -1
- package/packages/server/dist/services/projectService.js +32 -0
- package/packages/server/dist/services/projectService.js.map +1 -1
- package/packages/server/dist/services/queueService.d.ts.map +1 -1
- package/packages/server/dist/services/queueService.js +12 -3
- package/packages/server/dist/services/queueService.js.map +1 -1
- package/packages/server/dist/services/rateLimitProbeService.d.ts +15 -0
- package/packages/server/dist/services/rateLimitProbeService.d.ts.map +1 -1
- package/packages/server/dist/services/rateLimitProbeService.js +48 -19
- package/packages/server/dist/services/rateLimitProbeService.js.map +1 -1
- package/packages/server/dist/services/sessionService.d.ts +16 -0
- package/packages/server/dist/services/sessionService.d.ts.map +1 -1
- package/packages/server/dist/services/sessionService.js +125 -0
- package/packages/server/dist/services/sessionService.js.map +1 -1
- package/packages/server/dist/services/streamHandler.d.ts +8 -1
- package/packages/server/dist/services/streamHandler.d.ts.map +1 -1
- package/packages/server/dist/services/streamHandler.js +12 -5
- package/packages/server/dist/services/streamHandler.js.map +1 -1
- package/packages/server/dist/services/systemBrowseService.d.ts +91 -0
- package/packages/server/dist/services/systemBrowseService.d.ts.map +1 -0
- package/packages/server/dist/services/systemBrowseService.js +372 -0
- package/packages/server/dist/services/systemBrowseService.js.map +1 -0
- package/packages/server/dist/services/tokenCountService.d.ts +71 -0
- package/packages/server/dist/services/tokenCountService.d.ts.map +1 -0
- package/packages/server/dist/services/tokenCountService.js +313 -0
- package/packages/server/dist/services/tokenCountService.js.map +1 -0
- package/packages/server/dist/services/workspaceContext.d.ts +24 -0
- package/packages/server/dist/services/workspaceContext.d.ts.map +1 -0
- package/packages/server/dist/services/workspaceContext.js +109 -0
- package/packages/server/dist/services/workspaceContext.js.map +1 -0
- package/packages/server/dist/snippets/apply-qa-fixes +7 -5
- package/packages/server/dist/snippets/qa-review +7 -1
- package/packages/server/dist/utils/assertSafeBundlePath.d.ts +29 -0
- package/packages/server/dist/utils/assertSafeBundlePath.d.ts.map +1 -0
- package/packages/server/dist/utils/assertSafeBundlePath.js +53 -0
- package/packages/server/dist/utils/assertSafeBundlePath.js.map +1 -0
- package/packages/server/dist/utils/backgroundBlock.d.ts +29 -0
- package/packages/server/dist/utils/backgroundBlock.d.ts.map +1 -0
- package/packages/server/dist/utils/backgroundBlock.js +33 -0
- package/packages/server/dist/utils/backgroundBlock.js.map +1 -0
- package/packages/server/dist/utils/backgroundTaskTracker.d.ts +20 -0
- package/packages/server/dist/utils/backgroundTaskTracker.d.ts.map +1 -0
- package/packages/server/dist/utils/backgroundTaskTracker.js +40 -0
- package/packages/server/dist/utils/backgroundTaskTracker.js.map +1 -0
- package/packages/server/dist/utils/bundledBinaryModelSupport.d.ts +14 -0
- package/packages/server/dist/utils/bundledBinaryModelSupport.d.ts.map +1 -0
- package/packages/server/dist/utils/bundledBinaryModelSupport.js +112 -0
- package/packages/server/dist/utils/bundledBinaryModelSupport.js.map +1 -0
- package/packages/server/dist/utils/cliDebugLog.d.ts +38 -0
- package/packages/server/dist/utils/cliDebugLog.d.ts.map +1 -0
- package/packages/server/dist/utils/cliDebugLog.js +65 -0
- package/packages/server/dist/utils/cliDebugLog.js.map +1 -0
- package/packages/server/dist/utils/cliEngineUtils.d.ts +35 -0
- package/packages/server/dist/utils/cliEngineUtils.d.ts.map +1 -0
- package/packages/server/dist/utils/cliEngineUtils.js +38 -0
- package/packages/server/dist/utils/cliEngineUtils.js.map +1 -0
- package/packages/server/dist/utils/effortUtils.d.ts +2 -2
- package/packages/server/dist/utils/effortUtils.d.ts.map +1 -1
- package/packages/server/dist/utils/effortUtils.js +7 -5
- package/packages/server/dist/utils/effortUtils.js.map +1 -1
- package/packages/server/dist/utils/errors.d.ts +1 -0
- package/packages/server/dist/utils/errors.d.ts.map +1 -1
- package/packages/server/dist/utils/errors.js +17 -0
- package/packages/server/dist/utils/errors.js.map +1 -1
- package/packages/server/dist/utils/harnessBundleSchema.d.ts +14 -12
- package/packages/server/dist/utils/harnessBundleSchema.d.ts.map +1 -1
- package/packages/server/dist/utils/harnessBundleSchema.js +11 -1
- package/packages/server/dist/utils/harnessBundleSchema.js.map +1 -1
- package/packages/server/dist/utils/harnessPaths.d.ts +40 -0
- package/packages/server/dist/utils/harnessPaths.d.ts.map +1 -1
- package/packages/server/dist/utils/harnessPaths.js +123 -0
- package/packages/server/dist/utils/harnessPaths.js.map +1 -1
- package/packages/server/dist/utils/trailingThrottle.d.ts +21 -0
- package/packages/server/dist/utils/trailingThrottle.d.ts.map +1 -0
- package/packages/server/dist/utils/trailingThrottle.js +36 -0
- package/packages/server/dist/utils/trailingThrottle.js.map +1 -0
- package/packages/server/package.json +61 -58
- package/packages/server/resources/internals/INDEX.md +3 -1
- package/packages/server/resources/internals/bmad-qa-fix-marker.md +32 -0
- package/packages/server/resources/internals/harness-files.md +22 -0
- package/packages/server/resources/internals/image-storage.md +9 -0
- package/packages/server/resources/internals/observability-storage.md +23 -0
- package/packages/server/resources/manual/02-chat.md +23 -4
- package/packages/server/resources/manual/03-sessions.md +1 -0
- package/packages/server/resources/manual/05-projects.md +15 -2
- package/packages/server/resources/manual/10-project-board.md +4 -3
- package/packages/server/resources/manual/11-bmad-method-integration.md +12 -8
- package/packages/server/resources/manual/12-harness-workbench.md +82 -1
- package/packages/server/resources/manual/13-settings.md +61 -9
- package/packages/shared/dist/index.d.ts +7 -0
- package/packages/shared/dist/index.d.ts.map +1 -1
- package/packages/shared/dist/index.js +14 -0
- package/packages/shared/dist/index.js.map +1 -1
- package/packages/shared/dist/types/bmadCoreConfig.d.ts +71 -0
- package/packages/shared/dist/types/bmadCoreConfig.d.ts.map +1 -0
- package/packages/shared/dist/types/bmadCoreConfig.js +30 -0
- package/packages/shared/dist/types/bmadCoreConfig.js.map +1 -0
- package/packages/shared/dist/types/bmadStatus.d.ts +26 -0
- package/packages/shared/dist/types/bmadStatus.d.ts.map +1 -1
- package/packages/shared/dist/types/bmadStatus.js.map +1 -1
- package/packages/shared/dist/types/board.d.ts +6 -0
- package/packages/shared/dist/types/board.d.ts.map +1 -1
- package/packages/shared/dist/types/contextBuilder.d.ts +102 -0
- package/packages/shared/dist/types/contextBuilder.d.ts.map +1 -0
- package/packages/shared/dist/types/contextBuilder.js +55 -0
- package/packages/shared/dist/types/contextBuilder.js.map +1 -0
- package/packages/shared/dist/types/harnessBundle.d.ts +35 -0
- package/packages/shared/dist/types/harnessBundle.d.ts.map +1 -1
- package/packages/shared/dist/types/marketplace.d.ts +83 -0
- package/packages/shared/dist/types/marketplace.d.ts.map +1 -0
- package/packages/shared/dist/types/marketplace.js +18 -0
- package/packages/shared/dist/types/marketplace.js.map +1 -0
- package/packages/shared/dist/types/observability.d.ts +148 -0
- package/packages/shared/dist/types/observability.d.ts.map +1 -0
- package/packages/shared/dist/types/observability.js +24 -0
- package/packages/shared/dist/types/observability.js.map +1 -0
- package/packages/shared/dist/types/preferences.d.ts +16 -2
- package/packages/shared/dist/types/preferences.d.ts.map +1 -1
- package/packages/shared/dist/types/preferences.js +1 -0
- package/packages/shared/dist/types/preferences.js.map +1 -1
- package/packages/shared/dist/types/project.d.ts +7 -1
- package/packages/shared/dist/types/project.d.ts.map +1 -1
- package/packages/shared/dist/types/project.js.map +1 -1
- package/packages/shared/dist/types/sdk.d.ts +124 -12
- package/packages/shared/dist/types/sdk.d.ts.map +1 -1
- package/packages/shared/dist/types/sdk.js +64 -19
- package/packages/shared/dist/types/sdk.js.map +1 -1
- package/packages/shared/dist/types/streaming.d.ts +2 -2
- package/packages/shared/dist/types/streaming.d.ts.map +1 -1
- package/packages/shared/dist/types/streaming.js.map +1 -1
- package/packages/shared/dist/types/systemBrowse.d.ts +120 -0
- package/packages/shared/dist/types/systemBrowse.d.ts.map +1 -0
- package/packages/shared/dist/types/systemBrowse.js +57 -0
- package/packages/shared/dist/types/systemBrowse.js.map +1 -0
- package/packages/shared/dist/types/websocket.d.ts +38 -0
- package/packages/shared/dist/types/websocket.d.ts.map +1 -1
- package/packages/shared/dist/utils/interruptFiller.d.ts +30 -0
- package/packages/shared/dist/utils/interruptFiller.d.ts.map +1 -0
- package/packages/shared/dist/utils/interruptFiller.js +38 -0
- package/packages/shared/dist/utils/interruptFiller.js.map +1 -0
- package/packages/shared/dist/utils/toolResultContent.d.ts +22 -0
- package/packages/shared/dist/utils/toolResultContent.d.ts.map +1 -0
- package/packages/shared/dist/utils/toolResultContent.js +29 -0
- package/packages/shared/dist/utils/toolResultContent.js.map +1 -0
- package/scripts/run-integration-test.mjs +362 -362
- package/packages/client/dist/assets/index-CjyjnXB8.css +0 -32
- package/packages/client/dist/assets/index-NqJdhlek.js +0 -1498
|
@@ -52,6 +52,16 @@ export interface BmadStoryStatus {
|
|
|
52
52
|
title?: string;
|
|
53
53
|
/** Latest QA gate decision: 'PASS' | 'CONCERNS' | 'FAIL' | 'WAIVED' */
|
|
54
54
|
gateResult?: string;
|
|
55
|
+
/**
|
|
56
|
+
* The story's qa-fix marker state relative to the CURRENT gate:
|
|
57
|
+
* - 'applied': Dev ran apply-qa-fixes against this gate → QA re-review is next
|
|
58
|
+
* - 'needed': QA flagged this gate (CONCERNS/FAIL) and it is not yet
|
|
59
|
+
* addressed → apply-qa-fixes is next
|
|
60
|
+
* - undefined: no marker matches the current gate (legacy story or external
|
|
61
|
+
* BMad project) → the UI shows BOTH actions and lets the user pick
|
|
62
|
+
* Derived from explicit marker comments in the story, never from file mtime.
|
|
63
|
+
*/
|
|
64
|
+
gateFixState?: 'needed' | 'applied';
|
|
55
65
|
}
|
|
56
66
|
/** Epic with its stories */
|
|
57
67
|
export interface BmadEpicStatus {
|
|
@@ -77,11 +87,27 @@ export interface BmadAuxDocument {
|
|
|
77
87
|
files?: DirEntry[];
|
|
78
88
|
}
|
|
79
89
|
/** Response for GET /api/projects/:projectSlug/bmad-status */
|
|
90
|
+
/**
|
|
91
|
+
* A QA gate file that failed to parse as YAML. Surfaced to the UI so it can warn
|
|
92
|
+
* that next-step recommendations may be inaccurate until the file is fixed —
|
|
93
|
+
* an unparseable gate is treated as "no gate", which silently misroutes the
|
|
94
|
+
* recommendation (e.g. a PASS gate that won't parse looks like "needs review").
|
|
95
|
+
*/
|
|
96
|
+
export interface GateParseError {
|
|
97
|
+
/** Gate file name, e.g. "1.7-rule-firing-pool-entry-accrual.yml" */
|
|
98
|
+
file: string;
|
|
99
|
+
/** Story id parsed from the file name, e.g. "1.7" */
|
|
100
|
+
storyId: string;
|
|
101
|
+
/** Parser error message */
|
|
102
|
+
message: string;
|
|
103
|
+
}
|
|
80
104
|
export interface BmadStatusResponse {
|
|
81
105
|
config: BmadConfig;
|
|
82
106
|
documents: BmadDocuments;
|
|
83
107
|
auxiliaryDocuments: BmadAuxDocument[];
|
|
84
108
|
epics: BmadEpicStatus[];
|
|
109
|
+
/** QA gate files that failed to parse. Omitted/empty when all gates parsed. */
|
|
110
|
+
gateParseErrors?: GateParseError[];
|
|
85
111
|
}
|
|
86
112
|
export declare const BMAD_STATUS_ERRORS: {
|
|
87
113
|
readonly NOT_BMAD_PROJECT: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bmadStatus.d.ts","sourceRoot":"","sources":["../../src/types/bmadStatus.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,4FAA4F;AAC5F,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,gCAAgC;AAChC,UAAU,kBAAkB;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC3B;AAED,qFAAqF;AACrF,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,kBAAkB,CAAC;IACxB,YAAY,EAAE,kBAAkB,CAAC;IACjC,6DAA6D;IAC7D,aAAa,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAED,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"bmadStatus.d.ts","sourceRoot":"","sources":["../../src/types/bmadStatus.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,4FAA4F;AAC5F,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,gCAAgC;AAChC,UAAU,kBAAkB;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC3B;AAED,qFAAqF;AACrF,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,kBAAkB,CAAC;IACxB,YAAY,EAAE,kBAAkB,CAAC;IACjC,6DAA6D;IAC7D,aAAa,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAED,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACrC;AAED,4BAA4B;AAC5B,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,8DAA8D;AAC9D;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;IACzB,kBAAkB,EAAE,eAAe,EAAE,CAAC;IACtC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;CACpC;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;CAgBrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bmadStatus.js","sourceRoot":"","sources":["../../src/types/bmadStatus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bmadStatus.js","sourceRoot":"","sources":["../../src/types/bmadStatus.ts"],"names":[],"mappings":"AAyHA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,gBAAgB,EAAE;QAChB,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,mDAAmD;QAC5D,UAAU,EAAE,GAAG;KAChB;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,mCAAmC;QAC5C,UAAU,EAAE,GAAG;KAChB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,GAAG;KAChB;CACO,CAAC"}
|
|
@@ -40,6 +40,12 @@ export interface BoardItem {
|
|
|
40
40
|
externalRef?: string;
|
|
41
41
|
/** Latest QA gate decision: 'PASS' | 'CONCERNS' | 'FAIL' | 'WAIVED' */
|
|
42
42
|
gateResult?: string;
|
|
43
|
+
/**
|
|
44
|
+
* qa-fix marker state vs the CURRENT gate: 'applied' (Dev addressed this gate
|
|
45
|
+
* → re-review), 'needed' (QA flagged it, not yet addressed → apply fixes), or
|
|
46
|
+
* undefined (no matching marker → show both actions). Marker-based, not mtime.
|
|
47
|
+
*/
|
|
48
|
+
gateFixState?: 'needed' | 'applied';
|
|
43
49
|
/** Project-relative path to the source file (story/epic markdown) */
|
|
44
50
|
filePath?: string;
|
|
45
51
|
attachments?: IssueAttachment[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/types/board.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAGD,eAAO,MAAM,oBAAoB,uOAWvB,CAAC;AA8BX,eAAO,MAAM,oBAAoB,EAAE,WAGlC,CAAC;AAGF,eAAO,MAAM,mBAAmB,4BAA6B,CAAC;AAE9D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAkD7D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,SAAS,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,SAAS,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,SAAS,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/types/board.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAGD,eAAO,MAAM,oBAAoB,uOAWvB,CAAC;AA8BX,eAAO,MAAM,oBAAoB,EAAE,WAGlC,CAAC;AAGF,eAAO,MAAM,mBAAmB,4BAA6B,CAAC;AAE9D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAkD7D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,SAAS,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACpC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,SAAS,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,SAAS,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The 5 built-in dynamic variable identifiers, mirroring Epic 31 § Story 31.2
|
|
3
|
+
* Scope examples (*"현재 브랜치 / 활성 BMad 스토리 / 최근 커밋 N개 / 오늘 날짜 /
|
|
4
|
+
* 미커밋 파일 개수"*). Each is recomputed at script runtime on every session
|
|
5
|
+
* start (AC2.b) — never snapshotted at generation time.
|
|
6
|
+
*/
|
|
7
|
+
export type ContextBuilderVariableId = 'gitBranch' | 'activeBmadStory' | 'recentCommits' | 'today' | 'uncommittedCount';
|
|
8
|
+
/**
|
|
9
|
+
* Ordered list of the built-in variable IDs — single source of truth shared by
|
|
10
|
+
* the server (zod validation + script generation) and the client
|
|
11
|
+
* (`CONTEXT_BUILDER_VARIABLES` widget definitions). Order is the canonical
|
|
12
|
+
* display order in the toggle list.
|
|
13
|
+
*/
|
|
14
|
+
export declare const CONTEXT_BUILDER_VARIABLE_IDS: readonly ContextBuilderVariableId[];
|
|
15
|
+
/** One user-defined shell command block (AC5). */
|
|
16
|
+
export interface ContextBuilderCustomCommand {
|
|
17
|
+
/** The shell command whose stdout is appended as a context block. */
|
|
18
|
+
command: string;
|
|
19
|
+
/**
|
|
20
|
+
* AC5.b — only `acknowledged: true` commands are written into the generated
|
|
21
|
+
* script. The acknowledgement is the explicit "I understand this runs every
|
|
22
|
+
* session" confirmation captured by the security checkbox.
|
|
23
|
+
*/
|
|
24
|
+
acknowledged: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The declarative manifest — single source of truth for one project's context
|
|
28
|
+
* builder. Persisted at `<projectRoot>/.hammoc/context-builder.json`.
|
|
29
|
+
*/
|
|
30
|
+
export interface ContextBuilderManifest {
|
|
31
|
+
/** Schema version — bump only on a breaking shape change. */
|
|
32
|
+
version: 1;
|
|
33
|
+
/**
|
|
34
|
+
* AC1.f — when false the generated script + settings entry are removed and
|
|
35
|
+
* NOT regenerated (the declaration is retained so re-enabling restores it).
|
|
36
|
+
*/
|
|
37
|
+
enabled: boolean;
|
|
38
|
+
/** Reference files, as project-root-relative POSIX paths (e.g. `docs/architecture.md`). */
|
|
39
|
+
files: string[];
|
|
40
|
+
/** Built-in dynamic variables, on/off. A full record of all 5 IDs. */
|
|
41
|
+
variables: Record<ContextBuilderVariableId, boolean>;
|
|
42
|
+
/** N for the `recentCommits` variable (default 5). Ignored when that variable is off. */
|
|
43
|
+
recentCommitsCount?: number;
|
|
44
|
+
/** User-defined shell command blocks (AC5). */
|
|
45
|
+
customCommands: ContextBuilderCustomCommand[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* GET /api/harness/context-builder/:projectSlug response.
|
|
49
|
+
*
|
|
50
|
+
* When the manifest file does not yet exist the server returns a default
|
|
51
|
+
* (disabled, empty) manifest with `mtime: ''` so the panel opens in an
|
|
52
|
+
* empty-state instead of erroring (API table — *"매니페스트 없음 → 빈 기본
|
|
53
|
+
* 매니페스트 반환도 허용"*).
|
|
54
|
+
*/
|
|
55
|
+
export interface ContextBuilderReadResponse {
|
|
56
|
+
manifest: ContextBuilderManifest;
|
|
57
|
+
/** ISO 8601 mtime of the manifest — STALE_WRITE ETag. Empty string when the file is absent. */
|
|
58
|
+
mtime: string;
|
|
59
|
+
/** True when the generated `.hammoc/hooks/context-builder.mjs` exists on disk. */
|
|
60
|
+
scriptExists: boolean;
|
|
61
|
+
/** True when a Hammoc-managed `hooks.SessionStart` entry currently points at the script. */
|
|
62
|
+
entryRegistered: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* PUT /api/harness/context-builder/:projectSlug response (save + generate).
|
|
66
|
+
* Extends the write ETag with the generated artifact locations.
|
|
67
|
+
*/
|
|
68
|
+
export interface ContextBuilderGenerateResponse {
|
|
69
|
+
/** ISO 8601 mtime of the manifest after the write — next STALE_WRITE ETag. */
|
|
70
|
+
mtime: string;
|
|
71
|
+
/** Absolute path of the generated script (empty string when manifest.enabled === false). */
|
|
72
|
+
scriptPath: string;
|
|
73
|
+
/** ISO 8601 mtime of `.claude/settings.json` after the entry registration. */
|
|
74
|
+
settingsMtime: string;
|
|
75
|
+
/**
|
|
76
|
+
* AC5.c — indices (into `manifest.customCommands`) whose command string the
|
|
77
|
+
* secret heuristic flagged. NON-BLOCKING: the save still succeeds; the client
|
|
78
|
+
* surfaces these as a notice ("고지"), never a hard block. Empty/omitted when
|
|
79
|
+
* nothing matched.
|
|
80
|
+
*/
|
|
81
|
+
secretWarningCommandIndices?: number[];
|
|
82
|
+
}
|
|
83
|
+
/** POST /api/harness/context-builder/:projectSlug/disable response. */
|
|
84
|
+
export interface ContextBuilderDisableResponse {
|
|
85
|
+
success: true;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Canonical command-path marker that identifies a Hammoc-managed SessionStart
|
|
89
|
+
* entry. AC1.e / AC3.a identify ownership purely by the command string
|
|
90
|
+
* containing this fragment — no extra metadata key is written into
|
|
91
|
+
* settings.json (the path IS the ownership identifier). The generated entry's
|
|
92
|
+
* command is `node "<abs>/.hammoc/hooks/context-builder.mjs"`, so a substring
|
|
93
|
+
* match on this marker is the ownership test on both server and client.
|
|
94
|
+
*/
|
|
95
|
+
export declare const CONTEXT_BUILDER_SCRIPT_MARKER = ".hammoc/hooks/context-builder.";
|
|
96
|
+
/**
|
|
97
|
+
* Build the default empty manifest (disabled, no files, all variables off, no
|
|
98
|
+
* custom commands). Shared by the server empty-state GET and the client store's
|
|
99
|
+
* initial state so the two never drift.
|
|
100
|
+
*/
|
|
101
|
+
export declare function createDefaultContextBuilderManifest(): ContextBuilderManifest;
|
|
102
|
+
//# sourceMappingURL=contextBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextBuilder.d.ts","sourceRoot":"","sources":["../../src/types/contextBuilder.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,iBAAiB,GACjB,eAAe,GACf,OAAO,GACP,kBAAkB,CAAC;AAEvB;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,wBAAwB,EAMlE,CAAC;AAEX,kDAAkD;AAClD,MAAM,WAAW,2BAA2B;IAC1C,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,OAAO,EAAE,CAAC,CAAC;IACX;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,2FAA2F;IAC3F,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IACrD,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,cAAc,EAAE,2BAA2B,EAAE,CAAC;CAC/C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,+FAA+F;IAC/F,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,YAAY,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC;CACxC;AAED,uEAAuE;AACvE,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,IAAI,CAAC;CACf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,mCAAmC,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,mCAAmC,IAAI,sBAAsB,CAe5E"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Story 31.2: SessionStart context-builder shared types (Epic 31)
|
|
2
|
+
//
|
|
3
|
+
// Single source of truth for the declarative "context builder" manifest that
|
|
4
|
+
// drives the generated `.hammoc/hooks/context-builder.mjs` SessionStart hook
|
|
5
|
+
// script and the `.claude/settings.json` `hooks.SessionStart` entry.
|
|
6
|
+
//
|
|
7
|
+
// The manifest at `<projectRoot>/.hammoc/context-builder.json` is the SSoT;
|
|
8
|
+
// the script + settings entry are GENERATED artifacts derived from it. Server
|
|
9
|
+
// (`contextBuilderService`) and client (`contextBuilderStore`) both import
|
|
10
|
+
// these types, so they live in `packages/shared` (one-way dependency
|
|
11
|
+
// `shared → server/client`).
|
|
12
|
+
/**
|
|
13
|
+
* Ordered list of the built-in variable IDs — single source of truth shared by
|
|
14
|
+
* the server (zod validation + script generation) and the client
|
|
15
|
+
* (`CONTEXT_BUILDER_VARIABLES` widget definitions). Order is the canonical
|
|
16
|
+
* display order in the toggle list.
|
|
17
|
+
*/
|
|
18
|
+
export const CONTEXT_BUILDER_VARIABLE_IDS = [
|
|
19
|
+
'gitBranch',
|
|
20
|
+
'activeBmadStory',
|
|
21
|
+
'recentCommits',
|
|
22
|
+
'today',
|
|
23
|
+
'uncommittedCount',
|
|
24
|
+
];
|
|
25
|
+
/**
|
|
26
|
+
* Canonical command-path marker that identifies a Hammoc-managed SessionStart
|
|
27
|
+
* entry. AC1.e / AC3.a identify ownership purely by the command string
|
|
28
|
+
* containing this fragment — no extra metadata key is written into
|
|
29
|
+
* settings.json (the path IS the ownership identifier). The generated entry's
|
|
30
|
+
* command is `node "<abs>/.hammoc/hooks/context-builder.mjs"`, so a substring
|
|
31
|
+
* match on this marker is the ownership test on both server and client.
|
|
32
|
+
*/
|
|
33
|
+
export const CONTEXT_BUILDER_SCRIPT_MARKER = '.hammoc/hooks/context-builder.';
|
|
34
|
+
/**
|
|
35
|
+
* Build the default empty manifest (disabled, no files, all variables off, no
|
|
36
|
+
* custom commands). Shared by the server empty-state GET and the client store's
|
|
37
|
+
* initial state so the two never drift.
|
|
38
|
+
*/
|
|
39
|
+
export function createDefaultContextBuilderManifest() {
|
|
40
|
+
return {
|
|
41
|
+
version: 1,
|
|
42
|
+
enabled: false,
|
|
43
|
+
files: [],
|
|
44
|
+
variables: {
|
|
45
|
+
gitBranch: false,
|
|
46
|
+
activeBmadStory: false,
|
|
47
|
+
recentCommits: false,
|
|
48
|
+
today: false,
|
|
49
|
+
uncommittedCount: false,
|
|
50
|
+
},
|
|
51
|
+
recentCommitsCount: 5,
|
|
52
|
+
customCommands: [],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=contextBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextBuilder.js","sourceRoot":"","sources":["../../src/types/contextBuilder.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,2EAA2E;AAC3E,qEAAqE;AACrE,6BAA6B;AAe7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAwC;IAC/E,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,OAAO;IACP,kBAAkB;CACV,CAAC;AA+EX;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,gCAAgC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,UAAU,mCAAmC;IACjD,OAAO;QACL,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,EAAE;QACT,SAAS,EAAE;YACT,SAAS,EAAE,KAAK;YAChB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;YACpB,KAAK,EAAE,KAAK;YACZ,gBAAgB,EAAE,KAAK;SACxB;QACD,kBAAkB,EAAE,CAAC;QACrB,cAAc,EAAE,EAAE;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -154,15 +154,50 @@ export interface ExportBundleRequest {
|
|
|
154
154
|
includes: BundleSection[];
|
|
155
155
|
secretsPolicy: SecretsPolicy;
|
|
156
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Compatibility verdict of an import preview — see AC5 of Story 30.5.
|
|
159
|
+
* - 'compatible' : bundleVersion === 1, manifest Zod-valid, apply allowed
|
|
160
|
+
* - 'future' : bundleVersion > 1 (later Hammoc release wrote this bundle)
|
|
161
|
+
* - 'invalid' : bundleVersion missing or < 1 (theoretical, since the
|
|
162
|
+
* first published version is 1)
|
|
163
|
+
* - 'malformed' : manifest.json missing, JSON parse failed, or Zod refused
|
|
164
|
+
* the strict schema
|
|
165
|
+
*/
|
|
166
|
+
export type ImportCompatibility = 'compatible' | 'future' | 'invalid' | 'malformed';
|
|
167
|
+
/**
|
|
168
|
+
* Diagnostic payload accompanying a non-'compatible' compatibility verdict.
|
|
169
|
+
* Surfaced verbatim to the UI so the user can understand the rejection.
|
|
170
|
+
*/
|
|
171
|
+
export interface ImportCompatibilityDetail {
|
|
172
|
+
/** Set when the manifest had a parseable `bundleVersion` field. */
|
|
173
|
+
bundleVersion?: number;
|
|
174
|
+
/** JSON.parse error message for malformed manifests. */
|
|
175
|
+
jsonError?: string;
|
|
176
|
+
/** Zod refine issues for schema-mismatch manifests. */
|
|
177
|
+
issues?: Array<{
|
|
178
|
+
path: (string | number)[];
|
|
179
|
+
message: string;
|
|
180
|
+
}>;
|
|
181
|
+
}
|
|
157
182
|
/**
|
|
158
183
|
* Server response of `POST /api/harness/bundle/import/preview`. The
|
|
159
184
|
* `bundleToken` is the handle the apply call must echo (the server stashes
|
|
160
185
|
* the parsed ZIP in a temp directory keyed by this token until apply or TTL).
|
|
186
|
+
*
|
|
187
|
+
* `manifest` and `preview` are best-effort:
|
|
188
|
+
* - compatibility === 'compatible' → manifest is fully Zod-validated; preview
|
|
189
|
+
* has per-item rows + missing-plugin diff + unknown-section list.
|
|
190
|
+
* - compatibility === 'future' → manifest carries the loosely-parsed
|
|
191
|
+
* fields (bundleVersion + raw passthrough); preview is empty.
|
|
192
|
+
* - compatibility === 'invalid'/'malformed' → manifest may be a stub with
|
|
193
|
+
* placeholder fields; preview is empty. Detail carries the rejection cause.
|
|
161
194
|
*/
|
|
162
195
|
export interface ImportPreviewResponse {
|
|
163
196
|
bundleToken: string;
|
|
164
197
|
manifest: BundleManifest;
|
|
165
198
|
preview: ImportPreview;
|
|
199
|
+
compatibility: ImportCompatibility;
|
|
200
|
+
compatibilityDetail?: ImportCompatibilityDetail;
|
|
166
201
|
}
|
|
167
202
|
export interface PluginDependenciesResponse {
|
|
168
203
|
pluginDependencies: BundlePluginRef[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harnessBundle.d.ts","sourceRoot":"","sources":["../../src/types/harnessBundle.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAC;AACjD,MAAM,MAAM,oBAAoB,GAAG,OAAO,sBAAsB,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,OAAO,GACP,KAAK,GACL,MAAM,CAAC;AAEX,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAQ1C,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,aAAa,GAAG,mBAAmB,CAAC;AAE7E;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,OAAO,GACP,KAAK,GACL,MAAM,GACN,SAAS,GACT,OAAO,GACP,MAAM,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,CAAC;AAEzE,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,gBAAgB,EAAE,sBAAsB,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,oBAAoB,CAAC;IACpC,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,+CAA+C;IAC/C,aAAa,EAAE,aAAa,CAAC;IAC7B,6EAA6E;IAC7E,kBAAkB,EAAE,eAAe,EAAE,CAAC;IACtC,oDAAoD;IACpD,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC;AAEzE;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,MAAM,EAAE,gBAAgB,CAAC;IACzB,4DAA4D;IAC5D,aAAa,EAAE,gBAAgB,CAAC;IAChC,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;CAAG;AAE/D,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,6EAA6E;IAC7E,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,8EAA8E;IAC9E,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC/C;AAED,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,2BAA2B;AAC3B,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED
|
|
1
|
+
{"version":3,"file":"harnessBundle.d.ts","sourceRoot":"","sources":["../../src/types/harnessBundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Story 31.4: Plugin marketplace catalog DTOs (Epic 31).
|
|
3
|
+
*
|
|
4
|
+
* Read-only view models for the marketplace browse experience. The server
|
|
5
|
+
* `marketplaceService` parses `~/.claude/plugins/known_marketplaces.json` and
|
|
6
|
+
* each market's `.claude-plugin/marketplace.json` into a unified catalog, joins
|
|
7
|
+
* it with `installed_plugins.json` for the "installed" flag, and reports
|
|
8
|
+
* per-market parse failures + an `installed_plugins.json` format warning
|
|
9
|
+
* (without aborting the whole catalog).
|
|
10
|
+
*
|
|
11
|
+
* Reuses `HarnessPluginType` and `HarnessPluginComponentCounts` from
|
|
12
|
+
* `harness.ts` — no duplicate definitions. The existing
|
|
13
|
+
* `HarnessMarketplacePluginMeta` (harness.ts) is the raw marketplace.json
|
|
14
|
+
* entry shape; the catalog entry below is that shape *enriched* with plugin
|
|
15
|
+
* type, installed flag, and best-effort component counts.
|
|
16
|
+
*/
|
|
17
|
+
import type { HarnessPluginType, HarnessPluginComponentCounts } from './harness.js';
|
|
18
|
+
/**
|
|
19
|
+
* One installable plugin surfaced from a market's `marketplace.json` `plugins[]`
|
|
20
|
+
* array, enriched for the browse UI.
|
|
21
|
+
*/
|
|
22
|
+
export interface HarnessMarketplaceCatalogEntry {
|
|
23
|
+
/** "<name>@<marketplace>" — same key space as installed_plugins.json. */
|
|
24
|
+
key: string;
|
|
25
|
+
name: string;
|
|
26
|
+
/** known_marketplaces.json market name this entry belongs to. */
|
|
27
|
+
marketplace: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
version?: string;
|
|
30
|
+
author?: {
|
|
31
|
+
name?: string;
|
|
32
|
+
email?: string;
|
|
33
|
+
} | string;
|
|
34
|
+
category?: string;
|
|
35
|
+
/**
|
|
36
|
+
* 'standard' | 'external-mcp' — decided by the `source` path prefix
|
|
37
|
+
* (`./plugins/...` → standard, `./external_plugins/...` → external-mcp).
|
|
38
|
+
* Distinct from installed cards' count-based `decideType`, since unbuilt
|
|
39
|
+
* catalog entries have no installPath. (AC1.c)
|
|
40
|
+
*/
|
|
41
|
+
pluginType: HarnessPluginType;
|
|
42
|
+
/** marketplace.json plugins[].source — the type-decision signal. */
|
|
43
|
+
source?: string;
|
|
44
|
+
/** True when `key` exists in installed_plugins.json. (AC1.d) */
|
|
45
|
+
installed: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Best-effort component tally read from the cloned market repo source dir
|
|
48
|
+
* (`plugins/marketplaces/<name>/<source>/`). Omitted when unreadable —
|
|
49
|
+
* the type badge still renders. (AC1.c)
|
|
50
|
+
*/
|
|
51
|
+
componentCounts?: HarnessPluginComponentCounts;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Per-market parse failure. A single bad `marketplace.json` is isolated here
|
|
55
|
+
* instead of aborting the whole catalog (AC5). `code` reuses a `HARNESS_ERRORS`
|
|
56
|
+
* code (e.g. `HARNESS_PARSE_ERROR`).
|
|
57
|
+
*/
|
|
58
|
+
export interface HarnessMarketplaceCatalogError {
|
|
59
|
+
marketplace: string;
|
|
60
|
+
code: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Warning emitted when `installed_plugins.json` does not match the known shape
|
|
64
|
+
* (e.g. an unrecognized `version`, possibly from the
|
|
65
|
+
* `tengu_enable_versioned_plugins` feature flag). The catalog still renders;
|
|
66
|
+
* the "installed" join degrades gracefully. (AC6)
|
|
67
|
+
*/
|
|
68
|
+
export interface HarnessMarketplaceFormatWarning {
|
|
69
|
+
detectedVersion?: number;
|
|
70
|
+
reason: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* GET /api/harness/marketplace/:projectSlug/catalog response. Partial success
|
|
74
|
+
* is expressed via `errors[]` (per-market) and `formatWarning`.
|
|
75
|
+
*/
|
|
76
|
+
export interface HarnessMarketplaceCatalogResponse {
|
|
77
|
+
/** Market names discovered in known_marketplaces.json. */
|
|
78
|
+
marketplaces: string[];
|
|
79
|
+
entries: HarnessMarketplaceCatalogEntry[];
|
|
80
|
+
errors: HarnessMarketplaceCatalogError[];
|
|
81
|
+
formatWarning?: HarnessMarketplaceFormatWarning;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=marketplace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/types/marketplace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAEpF;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,UAAU,EAAE,iBAAiB,CAAC;IAC9B,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,4BAA4B,CAAC;CAChD;AAED;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,+BAA+B;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,iCAAiC;IAChD,0DAA0D;IAC1D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,8BAA8B,EAAE,CAAC;IAC1C,MAAM,EAAE,8BAA8B,EAAE,CAAC;IACzC,aAAa,CAAC,EAAE,+BAA+B,CAAC;CACjD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Story 31.4: Plugin marketplace catalog DTOs (Epic 31).
|
|
3
|
+
*
|
|
4
|
+
* Read-only view models for the marketplace browse experience. The server
|
|
5
|
+
* `marketplaceService` parses `~/.claude/plugins/known_marketplaces.json` and
|
|
6
|
+
* each market's `.claude-plugin/marketplace.json` into a unified catalog, joins
|
|
7
|
+
* it with `installed_plugins.json` for the "installed" flag, and reports
|
|
8
|
+
* per-market parse failures + an `installed_plugins.json` format warning
|
|
9
|
+
* (without aborting the whole catalog).
|
|
10
|
+
*
|
|
11
|
+
* Reuses `HarnessPluginType` and `HarnessPluginComponentCounts` from
|
|
12
|
+
* `harness.ts` — no duplicate definitions. The existing
|
|
13
|
+
* `HarnessMarketplacePluginMeta` (harness.ts) is the raw marketplace.json
|
|
14
|
+
* entry shape; the catalog entry below is that shape *enriched* with plugin
|
|
15
|
+
* type, installed flag, and best-effort component counts.
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=marketplace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../src/types/marketplace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One persisted tool-call record (AC-A1.c). Collected read-only from the shared
|
|
3
|
+
* stream callback builder (`buildStreamCallbacks`) on the browser + queue paths.
|
|
4
|
+
*
|
|
5
|
+
* **append lifecycle (S-A)** — a record is appended EXACTLY ONCE per call, at
|
|
6
|
+
* `onToolResult` time (complete record with `durationMs`/`success` filled). An
|
|
7
|
+
* orphan (onToolUse fired but onToolResult never arrived — session abort / tool
|
|
8
|
+
* hang) is flushed ONCE at turn end with the nullable fields set to `null`.
|
|
9
|
+
* Because the log is append-only JSONL, a `null` in `durationMs`/`resultBytes`/
|
|
10
|
+
* `success` therefore unambiguously means "started-never-returned", and a single
|
|
11
|
+
* call never produces two records.
|
|
12
|
+
*
|
|
13
|
+
* **secret policy** — argument/result BODIES are never stored; only their UTF-8
|
|
14
|
+
* byte sizes (`argBytes`/`resultBytes`). File contents / secrets cannot leak.
|
|
15
|
+
*/
|
|
16
|
+
export interface McpCallRecord {
|
|
17
|
+
/** toolUseId — also the orphan-flush key. */
|
|
18
|
+
id: string;
|
|
19
|
+
projectSlug: string;
|
|
20
|
+
sessionId: string;
|
|
21
|
+
/** `mcp__<server>__<tool>` → `<server>`; built-in tools (Read/Edit/Bash/…) → null. */
|
|
22
|
+
serverName: string | null;
|
|
23
|
+
/** Full tool name (`mcp__server__tool` or `Read`/`Edit`/…). */
|
|
24
|
+
toolName: string;
|
|
25
|
+
/** epoch ms — stamped at onToolUse. */
|
|
26
|
+
startedAt: number;
|
|
27
|
+
/** onToolResult − onToolUse, in ms. `null` ⟺ orphan (turn-end flush). */
|
|
28
|
+
durationMs: number | null;
|
|
29
|
+
/** `Buffer.byteLength(JSON.stringify(input), 'utf8')` — body discarded (UTF-8 bytes). */
|
|
30
|
+
argBytes: number;
|
|
31
|
+
/** Result size in UTF-8 bytes. `null` ⟺ orphan (result never arrived). */
|
|
32
|
+
resultBytes: number | null;
|
|
33
|
+
/** Tool success. `null` ⟺ orphan (result never arrived, turn-end flush). */
|
|
34
|
+
success: boolean | null;
|
|
35
|
+
}
|
|
36
|
+
/** One aggregation row (grouped by serverName + toolName). */
|
|
37
|
+
export interface McpCallAggregate {
|
|
38
|
+
serverName: string | null;
|
|
39
|
+
toolName: string;
|
|
40
|
+
count: number;
|
|
41
|
+
/** Mean of non-null durationMs across the group (0 when all orphans). */
|
|
42
|
+
avgDurationMs: number;
|
|
43
|
+
/** Count of records whose `success === false`. */
|
|
44
|
+
errorCount: number;
|
|
45
|
+
}
|
|
46
|
+
/** Filter/query for the MCP call log (AC-A2). */
|
|
47
|
+
export interface ObservabilityQuery {
|
|
48
|
+
/** Filter by server name (`null` selects built-ins via the literal string "null"? — no: omitted = all). */
|
|
49
|
+
server?: string;
|
|
50
|
+
/** Filter by full tool name. */
|
|
51
|
+
tool?: string;
|
|
52
|
+
/** Filter to a single session. */
|
|
53
|
+
sessionId?: string;
|
|
54
|
+
/** Only records within the last N days (defaults to the retention window). */
|
|
55
|
+
sinceDays?: number;
|
|
56
|
+
}
|
|
57
|
+
/** GET …/mcp-calls response — aggregates (for the chart) + a recent timeline. */
|
|
58
|
+
export interface ObservabilityMcpCallsResponse {
|
|
59
|
+
aggregates: McpCallAggregate[];
|
|
60
|
+
/** Most-recent-first slice of raw records (capped by the server). */
|
|
61
|
+
timeline: McpCallRecord[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Measured harness element kinds (AC-B1.a). `'hook'` is intentionally absent
|
|
65
|
+
* (S-2): arbitrary SessionStart hook runtime output is NOT measured (requires
|
|
66
|
+
* executing the hook, out of scope). The Hammoc-managed context-builder
|
|
67
|
+
* injection is represented by `'contextBuilder'` and estimated from the Story
|
|
68
|
+
* 31.2 manifest WITHOUT execution.
|
|
69
|
+
*/
|
|
70
|
+
export type TokenAttributionKind = 'claudeMd-project' | 'claudeMd-global' | 'skill' | 'contextBuilder';
|
|
71
|
+
/**
|
|
72
|
+
* One harness element's token weight (AC-B1). `bytes` is UTF-8 bytes
|
|
73
|
+
* (`Buffer.byteLength`); `approxTokens = ceil(bytes/4)` (the size-based
|
|
74
|
+
* heuristic — see spike #1, §14). `exactTokens` is filled in lazily by the
|
|
75
|
+
* "exact count" button (AC-B3). File-based kinds (`claudeMd-*`/`skill`) carry a
|
|
76
|
+
* `path`; `contextBuilder` has none (assembled from the manifest, N-1).
|
|
77
|
+
*/
|
|
78
|
+
export interface TokenAttributionItem {
|
|
79
|
+
kind: TokenAttributionKind;
|
|
80
|
+
/** Human label (file name / skill name / "Context builder"). */
|
|
81
|
+
label: string;
|
|
82
|
+
/** Present for file-based kinds; absent for `contextBuilder`. */
|
|
83
|
+
path?: string;
|
|
84
|
+
/** UTF-8 byte size of the element's text. */
|
|
85
|
+
bytes: number;
|
|
86
|
+
/** ceil(bytes / 4) — always `~`-prefixed in the UI (heuristic). */
|
|
87
|
+
approxTokens: number;
|
|
88
|
+
/** Filled by the exact-count proxy (count_tokens); absent until requested. */
|
|
89
|
+
exactTokens?: number;
|
|
90
|
+
/** sha256 of the element's text — exact-count cache key + change detection. */
|
|
91
|
+
contentHash: string;
|
|
92
|
+
}
|
|
93
|
+
/** GET …/token-attribution response. */
|
|
94
|
+
export interface TokenAttributionResponse {
|
|
95
|
+
items: TokenAttributionItem[];
|
|
96
|
+
}
|
|
97
|
+
/** POST …/exact-count request (AC-B3). */
|
|
98
|
+
export interface ExactTokenCountRequest {
|
|
99
|
+
kind: TokenAttributionKind;
|
|
100
|
+
/** Required for file-based kinds; omitted for `contextBuilder`. */
|
|
101
|
+
path?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Optimistic cache-key hint echoed from the last token-attribution response.
|
|
104
|
+
* The server RE-COMPUTES the sha from the real input before trusting it
|
|
105
|
+
* (N-B), so a stale/forged value just forces a cache miss + recompute.
|
|
106
|
+
*/
|
|
107
|
+
contentHash: string;
|
|
108
|
+
}
|
|
109
|
+
/** POST …/exact-count response (AC-B3). */
|
|
110
|
+
export interface ExactTokenCountResponse {
|
|
111
|
+
/** Official token count (count_tokens input_tokens). 0 when `failed`. */
|
|
112
|
+
tokens: number;
|
|
113
|
+
/** True when served from the file-hash cache (no API call made). */
|
|
114
|
+
cached: boolean;
|
|
115
|
+
/** True when the count_tokens proxy failed — client keeps the approximation (AC-B3.c). */
|
|
116
|
+
failed?: boolean;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Approximation tokenizer tier for the SERVER-side approximation (AC-B4). The
|
|
120
|
+
* client inline hint is always byte `size/4` (AC-B2.b) and is NOT switched by
|
|
121
|
+
* this preference.
|
|
122
|
+
*
|
|
123
|
+
* spike #1 (§14, 2026-06-02) measured `@anthropic-ai/tokenizer` at −25%~−45%
|
|
124
|
+
* vs `count_tokens` for Latin text — it does not beat `size/4`, so the
|
|
125
|
+
* `'anthropic-tokenizer'` tier is NOT adopted (Task A.4 skipped). The toggle
|
|
126
|
+
* still renders (AC-B4.b) with `'size/4'` as the single active option; the
|
|
127
|
+
* second option remains reserved should a future accurate tokenizer land.
|
|
128
|
+
*/
|
|
129
|
+
export type ObservabilityTokenizer = 'size/4' | 'anthropic-tokenizer';
|
|
130
|
+
export declare const OBSERVABILITY_TOKENIZER_DEFAULT: ObservabilityTokenizer;
|
|
131
|
+
/**
|
|
132
|
+
* Tokenizer options the server reports as selectable. Per spike #1 only
|
|
133
|
+
* `'size/4'` is active; the panel renders the rest disabled with a rationale
|
|
134
|
+
* notice (AC-B4.b). This list is the single source of truth for "which tiers
|
|
135
|
+
* exist" so the client never hard-codes the degrade branch.
|
|
136
|
+
*/
|
|
137
|
+
export declare const OBSERVABILITY_TOKENIZER_OPTIONS: readonly ObservabilityTokenizer[];
|
|
138
|
+
/** GET/PUT …/tokenizer-pref response (AC-B4). */
|
|
139
|
+
export interface ObservabilityTokenizerPrefResponse {
|
|
140
|
+
tokenizer: ObservabilityTokenizer;
|
|
141
|
+
/** The selectable tiers (mirrors OBSERVABILITY_TOKENIZER_OPTIONS). */
|
|
142
|
+
options: ObservabilityTokenizer[];
|
|
143
|
+
}
|
|
144
|
+
/** Default MCP-log retention window in days (AC-A3.b). */
|
|
145
|
+
export declare const OBSERVABILITY_RETENTION_DAYS = 30;
|
|
146
|
+
/** Max timeline records returned by …/mcp-calls (server-side cap). */
|
|
147
|
+
export declare const OBSERVABILITY_TIMELINE_CAP = 500;
|
|
148
|
+
//# sourceMappingURL=observability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/types/observability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Story 31.3: Observability — MCP call log + token attribution (Epic 31).
|
|
2
|
+
//
|
|
3
|
+
// Single source of truth for the observability domain shared between the
|
|
4
|
+
// server (persistence + collection hook + count_tokens proxy + attribution)
|
|
5
|
+
// and the client (api → store → panel). Mirrors the type-locality convention
|
|
6
|
+
// of `harness.ts` / `contextBuilder` types.
|
|
7
|
+
export const OBSERVABILITY_TOKENIZER_DEFAULT = 'size/4';
|
|
8
|
+
/**
|
|
9
|
+
* Tokenizer options the server reports as selectable. Per spike #1 only
|
|
10
|
+
* `'size/4'` is active; the panel renders the rest disabled with a rationale
|
|
11
|
+
* notice (AC-B4.b). This list is the single source of truth for "which tiers
|
|
12
|
+
* exist" so the client never hard-codes the degrade branch.
|
|
13
|
+
*/
|
|
14
|
+
export const OBSERVABILITY_TOKENIZER_OPTIONS = [
|
|
15
|
+
'size/4',
|
|
16
|
+
];
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Retention
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
/** Default MCP-log retention window in days (AC-A3.b). */
|
|
21
|
+
export const OBSERVABILITY_RETENTION_DAYS = 30;
|
|
22
|
+
/** Max timeline records returned by …/mcp-calls (server-side cap). */
|
|
23
|
+
export const OBSERVABILITY_TIMELINE_CAP = 500;
|
|
24
|
+
//# sourceMappingURL=observability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability.js","sourceRoot":"","sources":["../../src/types/observability.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,6EAA6E;AAC7E,4CAA4C;AA6J5C,MAAM,CAAC,MAAM,+BAA+B,GAA2B,QAAQ,CAAC;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAsC;IAChF,QAAQ;CACA,CAAC;AASX,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C,sEAAsE;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC"}
|