hammoc 1.4.0 → 1.6.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 +428 -405
- package/bin/hammoc.js +0 -6
- package/package.json +100 -94
- package/packages/client/dist/assets/agentExampleHighlight-ltj9ce0U.js +1 -0
- package/packages/client/dist/assets/commandTokenHighlight-ji_ViMb4.js +1 -0
- package/packages/client/dist/assets/index-B-DiRGuz.js +2 -0
- package/packages/client/dist/assets/index-B09doO8H.js +139 -0
- package/packages/client/dist/assets/index-BT4RIi0U.js +1523 -0
- package/packages/client/dist/assets/index-DyNJ5jEW.css +32 -0
- package/packages/client/dist/assets/snippetTokenHighlight-CP3v4o2g.js +1 -0
- package/packages/client/dist/index.html +2 -2
- package/packages/client/dist/sw.js +1 -1
- package/packages/server/dist/app.d.ts.map +1 -1
- package/packages/server/dist/app.js +13 -21
- package/packages/server/dist/app.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/claudeMdController.d.ts +26 -0
- package/packages/server/dist/controllers/claudeMdController.d.ts.map +1 -0
- package/packages/server/dist/controllers/claudeMdController.js +158 -0
- package/packages/server/dist/controllers/claudeMdController.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 +35 -0
- package/packages/server/dist/controllers/harnessAgentController.d.ts.map +1 -0
- package/packages/server/dist/controllers/harnessAgentController.js +372 -0
- package/packages/server/dist/controllers/harnessAgentController.js.map +1 -0
- 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 +35 -0
- package/packages/server/dist/controllers/harnessCommandController.d.ts.map +1 -0
- package/packages/server/dist/controllers/harnessCommandController.js +415 -0
- package/packages/server/dist/controllers/harnessCommandController.js.map +1 -0
- package/packages/server/dist/controllers/harnessController.d.ts +21 -0
- package/packages/server/dist/controllers/harnessController.d.ts.map +1 -0
- package/packages/server/dist/controllers/harnessController.js +176 -0
- package/packages/server/dist/controllers/harnessController.js.map +1 -0
- package/packages/server/dist/controllers/harnessHookController.d.ts +32 -0
- package/packages/server/dist/controllers/harnessHookController.d.ts.map +1 -0
- package/packages/server/dist/controllers/harnessHookController.js +406 -0
- package/packages/server/dist/controllers/harnessHookController.js.map +1 -0
- package/packages/server/dist/controllers/harnessLintController.d.ts +18 -0
- package/packages/server/dist/controllers/harnessLintController.d.ts.map +1 -0
- package/packages/server/dist/controllers/harnessLintController.js +72 -0
- package/packages/server/dist/controllers/harnessLintController.js.map +1 -0
- package/packages/server/dist/controllers/harnessMcpController.d.ts +28 -0
- package/packages/server/dist/controllers/harnessMcpController.d.ts.map +1 -0
- package/packages/server/dist/controllers/harnessMcpController.js +371 -0
- package/packages/server/dist/controllers/harnessMcpController.js.map +1 -0
- package/packages/server/dist/controllers/harnessPluginController.d.ts +17 -0
- package/packages/server/dist/controllers/harnessPluginController.d.ts.map +1 -0
- package/packages/server/dist/controllers/harnessPluginController.js +115 -0
- package/packages/server/dist/controllers/harnessPluginController.js.map +1 -0
- package/packages/server/dist/controllers/harnessShareScopeController.d.ts +24 -0
- package/packages/server/dist/controllers/harnessShareScopeController.d.ts.map +1 -0
- package/packages/server/dist/controllers/harnessShareScopeController.js +120 -0
- package/packages/server/dist/controllers/harnessShareScopeController.js.map +1 -0
- package/packages/server/dist/controllers/harnessSkillController.d.ts +32 -0
- package/packages/server/dist/controllers/harnessSkillController.d.ts.map +1 -0
- package/packages/server/dist/controllers/harnessSkillController.js +453 -0
- package/packages/server/dist/controllers/harnessSkillController.js.map +1 -0
- 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 +11 -0
- package/packages/server/dist/controllers/projectController.js.map +1 -1
- package/packages/server/dist/controllers/snippetController.d.ts +35 -0
- package/packages/server/dist/controllers/snippetController.d.ts.map +1 -0
- package/packages/server/dist/controllers/snippetController.js +294 -0
- package/packages/server/dist/controllers/snippetController.js.map +1 -0
- package/packages/server/dist/handlers/streamCallbacks.d.ts +8 -0
- package/packages/server/dist/handlers/streamCallbacks.d.ts.map +1 -1
- package/packages/server/dist/handlers/streamCallbacks.js +8 -0
- package/packages/server/dist/handlers/streamCallbacks.js.map +1 -1
- package/packages/server/dist/handlers/websocket.d.ts +15 -0
- package/packages/server/dist/handlers/websocket.d.ts.map +1 -1
- package/packages/server/dist/handlers/websocket.js +103 -2
- package/packages/server/dist/handlers/websocket.js.map +1 -1
- package/packages/server/dist/index.js +5 -0
- package/packages/server/dist/index.js.map +1 -1
- package/packages/server/dist/locales/en/server.json +37 -4
- package/packages/server/dist/locales/es/server.json +0 -4
- package/packages/server/dist/locales/ja/server.json +0 -4
- package/packages/server/dist/locales/ko/server.json +0 -4
- package/packages/server/dist/locales/pt/server.json +0 -4
- package/packages/server/dist/locales/zh-CN/server.json +0 -4
- package/packages/server/dist/routes/harness.d.ts +8 -0
- package/packages/server/dist/routes/harness.d.ts.map +1 -0
- package/packages/server/dist/routes/harness.js +150 -0
- package/packages/server/dist/routes/harness.js.map +1 -0
- package/packages/server/dist/routes/projects.d.ts.map +1 -1
- package/packages/server/dist/routes/projects.js +5 -60
- package/packages/server/dist/routes/projects.js.map +1 -1
- package/packages/server/dist/routes/snippets.d.ts +14 -0
- package/packages/server/dist/routes/snippets.d.ts.map +1 -0
- package/packages/server/dist/routes/snippets.js +27 -0
- package/packages/server/dist/routes/snippets.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 +15 -2
- package/packages/server/dist/services/bmadStatusService.d.ts.map +1 -1
- package/packages/server/dist/services/bmadStatusService.js +146 -37
- package/packages/server/dist/services/bmadStatusService.js.map +1 -1
- package/packages/server/dist/services/chatService.d.ts +3 -0
- package/packages/server/dist/services/chatService.d.ts.map +1 -1
- package/packages/server/dist/services/chatService.js +28 -7
- package/packages/server/dist/services/chatService.js.map +1 -1
- package/packages/server/dist/services/claudeMdService.d.ts +48 -0
- package/packages/server/dist/services/claudeMdService.d.ts.map +1 -0
- package/packages/server/dist/services/claudeMdService.js +240 -0
- package/packages/server/dist/services/claudeMdService.js.map +1 -0
- package/packages/server/dist/services/commandService.d.ts +10 -0
- package/packages/server/dist/services/commandService.d.ts.map +1 -1
- package/packages/server/dist/services/commandService.js +129 -4
- package/packages/server/dist/services/commandService.js.map +1 -1
- 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/fileWatcherService.d.ts +24 -0
- package/packages/server/dist/services/fileWatcherService.d.ts.map +1 -1
- package/packages/server/dist/services/fileWatcherService.js +232 -1
- package/packages/server/dist/services/fileWatcherService.js.map +1 -1
- package/packages/server/dist/services/harnessAgentService.d.ts +97 -0
- package/packages/server/dist/services/harnessAgentService.d.ts.map +1 -0
- package/packages/server/dist/services/harnessAgentService.js +988 -0
- package/packages/server/dist/services/harnessAgentService.js.map +1 -0
- 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 +81 -0
- package/packages/server/dist/services/harnessCommandService.d.ts.map +1 -0
- package/packages/server/dist/services/harnessCommandService.js +917 -0
- package/packages/server/dist/services/harnessCommandService.js.map +1 -0
- package/packages/server/dist/services/harnessHookService.d.ts +82 -0
- package/packages/server/dist/services/harnessHookService.d.ts.map +1 -0
- package/packages/server/dist/services/harnessHookService.js +1112 -0
- package/packages/server/dist/services/harnessHookService.js.map +1 -0
- package/packages/server/dist/services/harnessLintService.d.ts +49 -0
- package/packages/server/dist/services/harnessLintService.d.ts.map +1 -0
- package/packages/server/dist/services/harnessLintService.js +628 -0
- package/packages/server/dist/services/harnessLintService.js.map +1 -0
- package/packages/server/dist/services/harnessMcpService.d.ts +100 -0
- package/packages/server/dist/services/harnessMcpService.d.ts.map +1 -0
- package/packages/server/dist/services/harnessMcpService.js +884 -0
- package/packages/server/dist/services/harnessMcpService.js.map +1 -0
- package/packages/server/dist/services/harnessPluginService.d.ts +66 -0
- package/packages/server/dist/services/harnessPluginService.d.ts.map +1 -0
- package/packages/server/dist/services/harnessPluginService.js +559 -0
- package/packages/server/dist/services/harnessPluginService.js.map +1 -0
- package/packages/server/dist/services/harnessService.d.ts +40 -0
- package/packages/server/dist/services/harnessService.d.ts.map +1 -0
- package/packages/server/dist/services/harnessService.js +222 -0
- package/packages/server/dist/services/harnessService.js.map +1 -0
- package/packages/server/dist/services/harnessShareScopeService.d.ts +50 -0
- package/packages/server/dist/services/harnessShareScopeService.d.ts.map +1 -0
- package/packages/server/dist/services/harnessShareScopeService.js +158 -0
- package/packages/server/dist/services/harnessShareScopeService.js.map +1 -0
- package/packages/server/dist/services/harnessSkillService.d.ts +70 -0
- package/packages/server/dist/services/harnessSkillService.d.ts.map +1 -0
- package/packages/server/dist/services/harnessSkillService.js +636 -0
- package/packages/server/dist/services/harnessSkillService.js.map +1 -0
- package/packages/server/dist/services/issueService.d.ts.map +1 -1
- package/packages/server/dist/services/issueService.js +3 -1
- package/packages/server/dist/services/issueService.js.map +1 -1
- package/packages/server/dist/services/manualSyncService.d.ts +19 -0
- package/packages/server/dist/services/manualSyncService.d.ts.map +1 -0
- package/packages/server/dist/services/manualSyncService.js +110 -0
- package/packages/server/dist/services/manualSyncService.js.map +1 -0
- 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/queueService.d.ts.map +1 -1
- package/packages/server/dist/services/queueService.js +48 -2
- package/packages/server/dist/services/queueService.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/snippetService.d.ts +54 -0
- package/packages/server/dist/services/snippetService.d.ts.map +1 -0
- package/packages/server/dist/services/snippetService.js +371 -0
- package/packages/server/dist/services/snippetService.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/utils/applyYamlFrontmatterPatch.d.ts +46 -0
- package/packages/server/dist/services/utils/applyYamlFrontmatterPatch.d.ts.map +1 -0
- package/packages/server/dist/services/utils/applyYamlFrontmatterPatch.js +125 -0
- package/packages/server/dist/services/utils/applyYamlFrontmatterPatch.js.map +1 -0
- package/packages/server/dist/snippets/apply-qa-fixes +7 -5
- package/packages/server/dist/snippets/qa-review +5 -1
- package/packages/server/dist/snippets/split-commit +9 -0
- package/packages/server/dist/utils/applySecretsPolicy.d.ts +53 -0
- package/packages/server/dist/utils/applySecretsPolicy.d.ts.map +1 -0
- package/packages/server/dist/utils/applySecretsPolicy.js +204 -0
- package/packages/server/dist/utils/applySecretsPolicy.js.map +1 -0
- package/packages/server/dist/utils/assertNoSecretOnShared.d.ts +40 -0
- package/packages/server/dist/utils/assertNoSecretOnShared.d.ts.map +1 -0
- package/packages/server/dist/utils/assertNoSecretOnShared.js +47 -0
- package/packages/server/dist/utils/assertNoSecretOnShared.js.map +1 -0
- 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/bundledBinaryModelSupport.d.ts +7 -0
- package/packages/server/dist/utils/bundledBinaryModelSupport.d.ts.map +1 -0
- package/packages/server/dist/utils/bundledBinaryModelSupport.js +107 -0
- package/packages/server/dist/utils/bundledBinaryModelSupport.js.map +1 -0
- package/packages/server/dist/utils/effortUtils.d.ts +2 -2
- package/packages/server/dist/utils/effortUtils.js +5 -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/gitignoreFilter.d.ts +23 -0
- package/packages/server/dist/utils/gitignoreFilter.d.ts.map +1 -0
- package/packages/server/dist/utils/gitignoreFilter.js +42 -0
- package/packages/server/dist/utils/gitignoreFilter.js.map +1 -0
- package/packages/server/dist/utils/harnessBundleSchema.d.ts +107 -0
- package/packages/server/dist/utils/harnessBundleSchema.d.ts.map +1 -0
- package/packages/server/dist/utils/harnessBundleSchema.js +89 -0
- package/packages/server/dist/utils/harnessBundleSchema.js.map +1 -0
- package/packages/server/dist/utils/harnessPaths.d.ts +74 -0
- package/packages/server/dist/utils/harnessPaths.d.ts.map +1 -0
- package/packages/server/dist/utils/harnessPaths.js +247 -0
- package/packages/server/dist/utils/harnessPaths.js.map +1 -0
- package/packages/server/dist/utils/secretHeuristic.d.ts +72 -0
- package/packages/server/dist/utils/secretHeuristic.d.ts.map +1 -0
- package/packages/server/dist/utils/secretHeuristic.js +163 -0
- package/packages/server/dist/utils/secretHeuristic.js.map +1 -0
- package/packages/server/dist/utils/secretPlaceholderNamer.d.ts +41 -0
- package/packages/server/dist/utils/secretPlaceholderNamer.d.ts.map +1 -0
- package/packages/server/dist/utils/secretPlaceholderNamer.js +81 -0
- package/packages/server/dist/utils/secretPlaceholderNamer.js.map +1 -0
- package/packages/server/dist/utils/serverPathResolver.d.ts +29 -0
- package/packages/server/dist/utils/serverPathResolver.d.ts.map +1 -0
- package/packages/server/dist/utils/serverPathResolver.js +59 -0
- package/packages/server/dist/utils/serverPathResolver.js.map +1 -0
- package/packages/server/dist/utils/snippetPaths.d.ts +61 -0
- package/packages/server/dist/utils/snippetPaths.d.ts.map +1 -0
- package/packages/server/dist/utils/snippetPaths.js +123 -0
- package/packages/server/dist/utils/snippetPaths.js.map +1 -0
- package/packages/server/dist/utils/structuredEditor.d.ts +34 -0
- package/packages/server/dist/utils/structuredEditor.d.ts.map +1 -0
- package/packages/server/dist/utils/structuredEditor.js +111 -0
- package/packages/server/dist/utils/structuredEditor.js.map +1 -0
- package/packages/server/package.json +6 -2
- package/packages/server/resources/internals/INDEX.md +25 -0
- package/packages/server/resources/internals/bmad-qa-fix-marker.md +32 -0
- package/packages/server/resources/internals/harness-files.md +85 -0
- package/packages/server/resources/internals/image-storage.md +43 -0
- package/packages/server/resources/internals/observability-storage.md +23 -0
- package/packages/server/resources/manual/01-getting-started.md +104 -0
- package/packages/server/resources/manual/02-chat.md +285 -0
- package/packages/server/resources/manual/03-sessions.md +48 -0
- package/packages/server/resources/manual/04-slash-commands-favorites.md +152 -0
- package/packages/server/resources/manual/05-projects.md +76 -0
- package/packages/server/resources/manual/06-file-explorer-editor.md +90 -0
- package/packages/server/resources/manual/07-git.md +94 -0
- package/packages/server/resources/manual/08-terminal.md +59 -0
- package/packages/server/resources/manual/09-queue-runner.md +262 -0
- package/packages/server/resources/manual/10-project-board.md +194 -0
- package/packages/server/resources/manual/11-bmad-method-integration.md +130 -0
- package/packages/server/resources/manual/12-harness-workbench.md +256 -0
- package/packages/server/resources/manual/13-settings.md +241 -0
- package/packages/server/resources/manual/14-keyboard-shortcuts.md +68 -0
- package/packages/server/resources/manual/15-environment-variables.md +28 -0
- package/packages/server/resources/manual/16-troubleshooting.md +110 -0
- package/packages/server/resources/manual/INDEX.md +60 -0
- 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 +10 -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/command.d.ts +3 -3
- package/packages/shared/dist/types/command.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/harness.d.ts +1211 -0
- package/packages/shared/dist/types/harness.d.ts.map +1 -0
- package/packages/shared/dist/types/harness.js +107 -0
- package/packages/shared/dist/types/harness.js.map +1 -0
- package/packages/shared/dist/types/harnessBundle.d.ts +205 -0
- package/packages/shared/dist/types/harnessBundle.d.ts.map +1 -0
- package/packages/shared/dist/types/harnessBundle.js +18 -0
- package/packages/shared/dist/types/harnessBundle.js.map +1 -0
- 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 +4 -0
- package/packages/shared/dist/types/preferences.d.ts.map +1 -1
- package/packages/shared/dist/types/preferences.js.map +1 -1
- package/packages/shared/dist/types/queue.d.ts +9 -0
- package/packages/shared/dist/types/queue.d.ts.map +1 -1
- package/packages/shared/dist/types/sdk.d.ts +1 -1
- package/packages/shared/dist/types/sdk.d.ts.map +1 -1
- package/packages/shared/dist/types/sdk.js +1 -1
- package/packages/shared/dist/types/sdk.js.map +1 -1
- package/packages/shared/dist/types/websocket.d.ts +10 -0
- package/packages/shared/dist/types/websocket.d.ts.map +1 -1
- package/packages/shared/dist/utils/markdownSections.d.ts +50 -0
- package/packages/shared/dist/utils/markdownSections.d.ts.map +1 -0
- package/packages/shared/dist/utils/markdownSections.js +111 -0
- package/packages/shared/dist/utils/markdownSections.js.map +1 -0
- package/packages/shared/dist/utils/queueParser.d.ts.map +1 -1
- package/packages/shared/dist/utils/queueParser.js +104 -0
- package/packages/shared/dist/utils/queueParser.js.map +1 -1
- package/scripts/build-manual-shards.mjs +100 -0
- package/packages/client/dist/assets/index-6jREnVYd.js +0 -2
- package/packages/client/dist/assets/index-BFF0iqyW.css +0 -32
- package/packages/client/dist/assets/index-BcI4y-fU.js +0 -1454
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
## 13. Settings
|
|
2
|
+
|
|
3
|
+
Access settings via the gear icon or the Settings page. The page has **8 tabs**: Global, Project, Notifications, Claude Account, Hammoc User, Advanced, Help, and About. On desktop, tabs appear as a sidebar; on mobile, they use an accordion layout.
|
|
4
|
+
|
|
5
|
+
> Per-project overrides have moved out of this page. See §5.3 — they now live in each project's own Settings tab (the workbench-level General section).
|
|
6
|
+
|
|
7
|
+
### 13.1 Theme
|
|
8
|
+
|
|
9
|
+
- **Dark** — Dark background, light text (default)
|
|
10
|
+
- **Light** — Warm gray background, dark text
|
|
11
|
+
- **System** — Follows your OS/browser preference
|
|
12
|
+
|
|
13
|
+
### 13.2 Language
|
|
14
|
+
|
|
15
|
+
Hammoc supports 6 languages:
|
|
16
|
+
|
|
17
|
+
- English
|
|
18
|
+
- 中文(简体) (Chinese Simplified)
|
|
19
|
+
- 日本語 (Japanese)
|
|
20
|
+
- 한국어 (Korean)
|
|
21
|
+
- Español (Spanish)
|
|
22
|
+
- Português (Portuguese)
|
|
23
|
+
|
|
24
|
+
Language is auto-detected from your browser settings. Override it manually in settings.
|
|
25
|
+
|
|
26
|
+
### 13.3 Default Model
|
|
27
|
+
|
|
28
|
+
Choose the default Claude model:
|
|
29
|
+
|
|
30
|
+
**Default:**
|
|
31
|
+
- **Default** — Uses the SDK/system default model
|
|
32
|
+
|
|
33
|
+
**Aliases (always latest version):**
|
|
34
|
+
- **Sonnet** — Latest Sonnet
|
|
35
|
+
- **Opus** — Latest Opus
|
|
36
|
+
- **Haiku** — Latest Haiku
|
|
37
|
+
|
|
38
|
+
**Claude 4.x:**
|
|
39
|
+
- Opus 4.8 (most capable, 1M context), 4.7, 4.6, 4.5, 4.1, 4
|
|
40
|
+
- Sonnet 4.6 (1M context), 4.5, 4
|
|
41
|
+
- Haiku 4.5
|
|
42
|
+
|
|
43
|
+
**Claude 3.x:**
|
|
44
|
+
- Sonnet 3.7, 3.5
|
|
45
|
+
- Haiku 3.5
|
|
46
|
+
- Opus 3, Sonnet 3, Haiku 3
|
|
47
|
+
|
|
48
|
+
Can be overridden per-project (see §5.3).
|
|
49
|
+
|
|
50
|
+
### 13.4 Default Permission Mode
|
|
51
|
+
|
|
52
|
+
Set how Claude handles file modifications:
|
|
53
|
+
|
|
54
|
+
| Mode | Behavior |
|
|
55
|
+
|------|----------|
|
|
56
|
+
| **Last Used** | Keeps the permission mode from the previous session |
|
|
57
|
+
| **Plan** | Claude plans but doesn't make changes |
|
|
58
|
+
| **Ask before edits** | Claude asks for approval before each change (default) |
|
|
59
|
+
| **Edit automatically** | Claude edits files automatically |
|
|
60
|
+
| **Bypass permissions** | Full autonomy, no restrictions |
|
|
61
|
+
|
|
62
|
+
**Auto-approve safety checks** — When Bypass mode is selected, a checkbox option appears to automatically approve CLI safety check prompts without user confirmation. Enabled by default.
|
|
63
|
+
|
|
64
|
+
Can be overridden per-project (see §5.3). Quick-cycle with `Shift+Tab` when the chat input is focused.
|
|
65
|
+
|
|
66
|
+
### 13.5 Markdown File Open Mode
|
|
67
|
+
|
|
68
|
+
Choose how `.md` files open by default:
|
|
69
|
+
|
|
70
|
+
- **Edit** — Opens in text editing mode
|
|
71
|
+
- **Preview** — Opens in rendered preview mode
|
|
72
|
+
|
|
73
|
+
### 13.6 File Explorer View
|
|
74
|
+
|
|
75
|
+
Default view for the file explorer:
|
|
76
|
+
|
|
77
|
+
- **Grid** — Icon-based Finder-style layout (default)
|
|
78
|
+
- **List** — Traditional file list
|
|
79
|
+
|
|
80
|
+
### 13.7 Layout Mode
|
|
81
|
+
|
|
82
|
+
Control the overall page width:
|
|
83
|
+
|
|
84
|
+
- **Narrow** — Content centered with a max width
|
|
85
|
+
- **Wide** — Full-width layout using all available screen space
|
|
86
|
+
|
|
87
|
+
Toggle via the layout button in the header.
|
|
88
|
+
|
|
89
|
+
### 13.8 Project Settings
|
|
90
|
+
|
|
91
|
+
Per-project overrides have moved out of the global Settings page. They now live inside each project under **Project → Settings → General** (see §5.3). The Harness Workbench group on the same tab covers plugin / skill / hook / MCP / command / agent / CLAUDE.md / snippet management for that project (see §12).
|
|
92
|
+
|
|
93
|
+
### 13.9 Chat Timeout
|
|
94
|
+
|
|
95
|
+
How long to wait for Claude's response:
|
|
96
|
+
|
|
97
|
+
- 1 minute
|
|
98
|
+
- 3 minutes
|
|
99
|
+
- **5 minutes** (default)
|
|
100
|
+
- 10 minutes
|
|
101
|
+
- 30 minutes
|
|
102
|
+
|
|
103
|
+
The timeout resets on every activity. If overridden by an environment variable, the field is disabled with an amber warning.
|
|
104
|
+
|
|
105
|
+
### 13.10 Default Thinking Effort
|
|
106
|
+
|
|
107
|
+
Set the default thinking effort for new sessions:
|
|
108
|
+
|
|
109
|
+
- **SDK Default** / Low / Medium / High / XHigh / Max
|
|
110
|
+
- Max is available on Opus 4.6, Sonnet 4.6, Opus 4.7, and Opus 4.8
|
|
111
|
+
- XHigh is available on Opus 4.7 and Opus 4.8 (and is the SDK default for those models)
|
|
112
|
+
- If the active model does not support the configured level, it falls back to High automatically — the saved preference is kept, only the request to the SDK is clamped
|
|
113
|
+
- The chosen level is preserved while the active model is still resolving (no flicker back to Default during project switches)
|
|
114
|
+
|
|
115
|
+
### 13.11 Quick Panel Defaults
|
|
116
|
+
|
|
117
|
+
- **Default Open** — Whether the quick panel opens automatically when entering a chat page (default: On)
|
|
118
|
+
- **Default Side** — Which side the quick panel appears on:
|
|
119
|
+
- **Left** — Always opens on the left
|
|
120
|
+
- **Right** — Always opens on the right (default)
|
|
121
|
+
- **Last Used** — Remembers the last side you used and restores it
|
|
122
|
+
|
|
123
|
+
### 13.12 Notifications
|
|
124
|
+
|
|
125
|
+
The Notifications tab contains two sections: Web Push and Telegram.
|
|
126
|
+
|
|
127
|
+
#### 13.12.1 Web Push Notifications
|
|
128
|
+
|
|
129
|
+
Receive browser push notifications when Claude needs attention. Requires HTTPS and a browser that supports the Push API (Chrome, Firefox, Edge, Safari 16+).
|
|
130
|
+
|
|
131
|
+
- **Subscribe** — Register the current browser to receive push notifications (requests browser notification permission)
|
|
132
|
+
- **Unsubscribe** — Remove the current browser's push subscription
|
|
133
|
+
- **Enable toggle** — Master switch to enable or disable web push delivery
|
|
134
|
+
- **Subscribed devices** — Shows the number of browsers currently registered
|
|
135
|
+
- **Test** — Send a test push notification to verify setup
|
|
136
|
+
|
|
137
|
+
> iOS: Add Hammoc to Home Screen first, then subscribe from within the PWA.
|
|
138
|
+
|
|
139
|
+
#### 13.12.2 Telegram Notifications
|
|
140
|
+
|
|
141
|
+
Get notified on your phone when Claude needs attention:
|
|
142
|
+
|
|
143
|
+
**Setup:**
|
|
144
|
+
1. Create a Telegram bot via [@BotFather](https://t.me/BotFather) — enter the Bot Token
|
|
145
|
+
2. Get your Chat ID via [@userinfobot](https://t.me/userinfobot) — enter the Chat ID
|
|
146
|
+
3. Both fields support **change** and **delete** operations; bot tokens are shown **masked** for security
|
|
147
|
+
|
|
148
|
+
**Enable/Disable:**
|
|
149
|
+
- Master **enable checkbox** — requires both Bot Token and Chat ID to be configured before it can be toggled on
|
|
150
|
+
|
|
151
|
+
**Chat Notification Types:**
|
|
152
|
+
- **Permission requests** — Claude needs approval for file changes
|
|
153
|
+
- **Completion** — Chat task finished
|
|
154
|
+
- **Error** — Something went wrong during chat
|
|
155
|
+
|
|
156
|
+
**Queue Notification Types:**
|
|
157
|
+
- **Queue start** — Queue execution began
|
|
158
|
+
- **Queue complete** — Queue finished all items
|
|
159
|
+
- **Queue error** — Queue encountered an error
|
|
160
|
+
- **Queue input needed** — Queue paused, waiting for user input
|
|
161
|
+
|
|
162
|
+
**Other Options:**
|
|
163
|
+
- **Always notify** — Get notified for every message (suppressed when the session is visible in the browser)
|
|
164
|
+
|
|
165
|
+
**Test:** Click "Send Test" to verify your configuration.
|
|
166
|
+
|
|
167
|
+
**Access URL:** Set your Hammoc base URL (e.g., `http://192.168.1.100:3000`) so notification links open directly in your browser.
|
|
168
|
+
|
|
169
|
+
**Environment Variables:** Bot Token and Chat ID can be set via environment variables, which take priority over saved values (shown with an amber "Env" indicator).
|
|
170
|
+
|
|
171
|
+
### 13.13 Claude Account
|
|
172
|
+
|
|
173
|
+
Shows the Claude Code account that Hammoc is using, plus live subscription usage:
|
|
174
|
+
|
|
175
|
+
- **Account info** — Email, Subscription plan, Provider (e.g., Claude API / Claude.ai), Organization (if applicable), and the timestamp of the last fetch
|
|
176
|
+
- **Usage bars** — Two progress bars showing consumption of the **5-hour window** and **7-day window** quotas, with color thresholds (green / yellow / red at 50% / 80%) and reset times
|
|
177
|
+
- **Refresh** — Manually fetch the latest account info and usage from the API (spinner shown while refreshing). Toast confirms success or failure
|
|
178
|
+
- If no data has been fetched yet, a helper line explains that account info fills in automatically after the first chat or after clicking Refresh
|
|
179
|
+
|
|
180
|
+
### 13.14 Hammoc User
|
|
181
|
+
|
|
182
|
+
Local Hammoc authentication (independent of your Claude Code account):
|
|
183
|
+
|
|
184
|
+
- **Change password** — Enter your current password, new password, and confirm. Minimum 4 characters. After changing, you'll be signed out and redirected to the login page.
|
|
185
|
+
- **Logout** — Sign out immediately.
|
|
186
|
+
|
|
187
|
+
### 13.15 System Prompt
|
|
188
|
+
|
|
189
|
+
Customize Claude's behavior with a fully editable system prompt template:
|
|
190
|
+
|
|
191
|
+
- **Warning banner** — Displayed at the top, cautioning about the impact of modifications
|
|
192
|
+
- **Editable textarea** — Edit the system prompt with **auto-save**
|
|
193
|
+
- **Character count** — Shown below the editor
|
|
194
|
+
- **"Customized" indicator** — Blue banner when a custom prompt is active
|
|
195
|
+
- **Restore to Default** button — Appears when the prompt has been modified
|
|
196
|
+
- **Template variables** — Listed below the editor with descriptions (e.g., `{gitBranch}`, `{gitMainBranch}`, `{gitStatus}`); variables are resolved at runtime
|
|
197
|
+
- **Resolved preview** — Toggle to see the fully rendered prompt with variables replaced for the current project
|
|
198
|
+
|
|
199
|
+
> The default template focuses Claude on Hammoc-specific features (snippets, queue runner, board, BMAD, permission modes, sessions) and points at the manual + internals docs that Hammoc syncs to `~/.hammoc/docs/` on every server boot, so agents always have current docs even when run from a fresh install. The `{gitStatus}` block is no longer baked into the default — re-add it via this editor if you want it pre-included.
|
|
200
|
+
|
|
201
|
+
### 13.16 Advanced Settings
|
|
202
|
+
|
|
203
|
+
**Server Management (mode-dependent):**
|
|
204
|
+
|
|
205
|
+
- **Development mode:** "Server Rebuild" button — rebuilds and restarts the server. Shows elapsed time during the build process
|
|
206
|
+
- **Production mode:** Shows current version number, "Check for Updates" button, and "Install Update" button (appears only when an update is available). Includes build progress with elapsed timer
|
|
207
|
+
|
|
208
|
+
**File Checkpointing:**
|
|
209
|
+
- **Chat sessions** — Save file snapshots during chat for rewind/restore (default: on). Disabling this prevents the Code Rewind feature (see §2.20) from working
|
|
210
|
+
- **Queue runner** — Save file snapshots during queue execution (default: off). Enabling increases JSONL session file size
|
|
211
|
+
|
|
212
|
+
**SDK Parameters:**
|
|
213
|
+
- **Max Thinking Tokens** — Limit Claude's extended thinking tokens (1,024–128,000)
|
|
214
|
+
- **Max Turns** — Limit conversation turns per query (1–100)
|
|
215
|
+
- **Max Budget (USD)** — Set cost limit per query ($0.01–$100)
|
|
216
|
+
|
|
217
|
+
> **Scope (as of v1.3.0)**: these SDK parameters now apply to **both** direct chat sends and Queue Runner executions. Earlier releases silently dropped them in the queue path — if your queue runs started honoring Max Turns or Max Thinking Tokens after upgrading, this is why. Adjust the values if the new behavior surprises you.
|
|
218
|
+
|
|
219
|
+
### 13.17 Help
|
|
220
|
+
|
|
221
|
+
In-app usage guide within the Settings page:
|
|
222
|
+
|
|
223
|
+
- **Basic chat usage** — How to use the chat interface
|
|
224
|
+
- **Slash commands** — Available command reference
|
|
225
|
+
- **Permission mode guide** — Plan, Ask Before Edits, Edit Automatically explained
|
|
226
|
+
- **BMad Method** — Quick guide to the BMad workflow
|
|
227
|
+
- **Keyboard shortcuts** — Key bindings table (Enter, Shift+Enter, Escape, Ctrl+C, F7/Shift+F7, /)
|
|
228
|
+
|
|
229
|
+
### 13.18 About
|
|
230
|
+
|
|
231
|
+
Displays app information:
|
|
232
|
+
|
|
233
|
+
- App name and version number
|
|
234
|
+
- Project description
|
|
235
|
+
- Author with link
|
|
236
|
+
- License type
|
|
237
|
+
- **GitHub Issues** link
|
|
238
|
+
- **Server status** — Healthy/unhealthy with color indicator dot
|
|
239
|
+
- **Server version**
|
|
240
|
+
- **Server time** — Localized timestamp
|
|
241
|
+
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
## 14. Keyboard Shortcuts
|
|
2
|
+
|
|
3
|
+
### Chat
|
|
4
|
+
|
|
5
|
+
| Shortcut | Action |
|
|
6
|
+
|----------|--------|
|
|
7
|
+
| `Enter` | Send message (desktop only) |
|
|
8
|
+
| `Shift+Enter` | New line in message |
|
|
9
|
+
| `ESC` | Abort generation / close command palette |
|
|
10
|
+
| `Ctrl+C` | Abort generation (only when no text is selected; otherwise copies) |
|
|
11
|
+
| `↑` / `↓` | Navigate prompt history (when cursor is at start/end of input) |
|
|
12
|
+
| `/` | Open slash command palette (auto-triggered when input starts with `/`) |
|
|
13
|
+
| `*` | Open star command palette (auto-triggered when input starts with `*`, requires active agent) |
|
|
14
|
+
| `%` | Open snippet autocomplete palette (auto-triggered when input starts with `%`) |
|
|
15
|
+
| `Tab` | Select highlighted command from palette |
|
|
16
|
+
| `Shift+Tab` | Cycle permission mode (Plan → Ask before edits → Edit automatically → Bypass) |
|
|
17
|
+
| `Ctrl` (hold) | Temporary chain mode while held |
|
|
18
|
+
|
|
19
|
+
### Message Actions
|
|
20
|
+
|
|
21
|
+
| Shortcut | Action |
|
|
22
|
+
|----------|--------|
|
|
23
|
+
| `Ctrl+Enter` / `Cmd+Enter` | Accept edited message |
|
|
24
|
+
| `ESC` | Cancel message edit |
|
|
25
|
+
|
|
26
|
+
### Quick Panel
|
|
27
|
+
|
|
28
|
+
| Shortcut | Action |
|
|
29
|
+
|----------|--------|
|
|
30
|
+
| `Alt+1` | Toggle Sessions panel |
|
|
31
|
+
| `Alt+2` | Toggle Files panel |
|
|
32
|
+
| `Alt+3` | Toggle Git panel |
|
|
33
|
+
| `Alt+4` | Toggle Terminal panel |
|
|
34
|
+
|
|
35
|
+
Note: Quick panel shortcuts are disabled when an input or textarea is focused.
|
|
36
|
+
|
|
37
|
+
### Editor
|
|
38
|
+
|
|
39
|
+
| Shortcut | Action |
|
|
40
|
+
|----------|--------|
|
|
41
|
+
| `Ctrl+S` / `Cmd+S` | Save file |
|
|
42
|
+
| `ESC` | Close editor |
|
|
43
|
+
|
|
44
|
+
### Diff Viewer
|
|
45
|
+
|
|
46
|
+
| Shortcut | Action |
|
|
47
|
+
|----------|--------|
|
|
48
|
+
| `F7` | Next change |
|
|
49
|
+
| `Shift+F7` | Previous change |
|
|
50
|
+
| `ESC` | Close diff viewer (fullscreen mode) |
|
|
51
|
+
|
|
52
|
+
### Image Viewer
|
|
53
|
+
|
|
54
|
+
| Shortcut | Action |
|
|
55
|
+
|----------|--------|
|
|
56
|
+
| `←` / `→` | Previous / next image (when multiple images form a set) |
|
|
57
|
+
| `ESC` | Close image viewer |
|
|
58
|
+
|
|
59
|
+
### Terminal
|
|
60
|
+
|
|
61
|
+
| Shortcut | Action |
|
|
62
|
+
|----------|--------|
|
|
63
|
+
| `Ctrl++` or `Ctrl+=` | Increase font size |
|
|
64
|
+
| `Ctrl+-` | Decrease font size |
|
|
65
|
+
| `Ctrl+0` | Reset font size |
|
|
66
|
+
| `←` / `→` | Switch between terminal tabs |
|
|
67
|
+
| `Delete` | Close active terminal tab |
|
|
68
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
## 15. Environment Variables
|
|
2
|
+
|
|
3
|
+
### Server
|
|
4
|
+
|
|
5
|
+
| Variable | Default | Description |
|
|
6
|
+
|----------|---------|-------------|
|
|
7
|
+
| `PORT` | `3000` | Server port |
|
|
8
|
+
| `HOST` | `0.0.0.0` | Bind address (all interfaces) |
|
|
9
|
+
| `NODE_ENV` | — | Set to `production` for optimized mode |
|
|
10
|
+
| `TRUST_PROXY` | `false` | Enable reverse proxy support. Set to `true` when behind Cloudflare Tunnel, nginx, etc. |
|
|
11
|
+
| `CORS_ORIGIN` | `true` | CORS origin policy. `true` allows any origin (local/VPN use). Set a specific URL (e.g., `https://hammoc.example.com`) to restrict |
|
|
12
|
+
| `ANTHROPIC_API_KEY` | — | Anthropic API key (required for Claude Code to function) |
|
|
13
|
+
| `CHAT_TIMEOUT_MS` | `300000` | Chat response timeout in milliseconds (5 minutes). Overrides the Settings UI value |
|
|
14
|
+
| `LOG_LEVEL` | `INFO` (prod) / `DEBUG` (dev) | Logging level: ERROR, WARN, INFO, DEBUG, VERBOSE |
|
|
15
|
+
| `TERMINAL_ENABLED` | `true` | Enable/disable terminal feature (set `false` to disable). Overrides the Settings UI value |
|
|
16
|
+
| `SHELL_TIMEOUT` | `30000` | Time (in ms) before an idle terminal session is cleaned up |
|
|
17
|
+
| `MAX_TERMINAL_SESSIONS` | `10` | Maximum concurrent terminal sessions |
|
|
18
|
+
| `TELEGRAM_BOT_TOKEN` | — | Telegram bot token (takes priority over Settings UI value) |
|
|
19
|
+
| `TELEGRAM_CHAT_ID` | — | Telegram chat ID (takes priority over Settings UI value) |
|
|
20
|
+
| `BASE_URL` | — | Fallback base URL for Telegram notification links (e.g., `http://192.168.1.100:3000`) |
|
|
21
|
+
|
|
22
|
+
### Client (Vite)
|
|
23
|
+
|
|
24
|
+
| Variable | Default | Description |
|
|
25
|
+
|----------|---------|-------------|
|
|
26
|
+
| `VITE_SERVER_PORT` | `3000` | Server port the client connects to (useful for multi-instance setups) |
|
|
27
|
+
| `VITE_LOG_LEVEL` | — | Client-side debug log level: ERROR, WARN, INFO, DEBUG, VERBOSE |
|
|
28
|
+
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
## 16. Troubleshooting
|
|
2
|
+
|
|
3
|
+
### 16.1 "Claude Code CLI not found"
|
|
4
|
+
|
|
5
|
+
Claude Code CLI must be installed and in your PATH:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
claude --version
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
If not installed, follow the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code). The Onboarding page shows CLI installation, authentication, and API key status at a glance.
|
|
12
|
+
|
|
13
|
+
### 16.2 "Authentication required" / `claude login`
|
|
14
|
+
|
|
15
|
+
If the chat displays an authentication error, Claude Code CLI needs to be logged in:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
claude login
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The Onboarding page (shown when CLI is not authenticated) displays the current auth status and provides setup commands.
|
|
22
|
+
|
|
23
|
+
### 16.3 API rate limit exceeded
|
|
24
|
+
|
|
25
|
+
When Anthropic API rate limits are reached, the chat shows a rate limit error with a retry delay. Solutions:
|
|
26
|
+
|
|
27
|
+
1. Wait for the indicated retry period and try again
|
|
28
|
+
2. Reduce concurrent sessions or shorten prompts
|
|
29
|
+
3. Check your API usage / plan limits on the Anthropic console
|
|
30
|
+
4. The header status indicator shows API health (yellow triangle = API unavailable)
|
|
31
|
+
|
|
32
|
+
### 16.4 "Connection lost" / Reconnecting
|
|
33
|
+
|
|
34
|
+
Hammoc automatically reconnects when the connection is lost. The header shows a status indicator: green (connected), yellow spinning (reconnecting), or red (disconnected with manual Reconnect button).
|
|
35
|
+
|
|
36
|
+
On mobile, the app automatically recovers when returning from background.
|
|
37
|
+
|
|
38
|
+
If the connection doesn't recover:
|
|
39
|
+
|
|
40
|
+
1. Check that the server is still running
|
|
41
|
+
2. Click the Reconnect button in the header (appears when disconnected)
|
|
42
|
+
3. Refresh the browser
|
|
43
|
+
4. Restart the server: `hammoc` or `npm start`
|
|
44
|
+
|
|
45
|
+
### 16.5 Port already in use
|
|
46
|
+
|
|
47
|
+
The server automatically retries when the port is in use. If it still fails:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
hammoc --port 3001
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Or set the environment variable: `PORT=3001 hammoc`
|
|
54
|
+
|
|
55
|
+
### 16.6 Terminal not available
|
|
56
|
+
|
|
57
|
+
Terminal may be disabled when:
|
|
58
|
+
|
|
59
|
+
- Accessing from an external network (security restriction — only local IPs are allowed)
|
|
60
|
+
- `TERMINAL_ENABLED=false` is set in environment
|
|
61
|
+
- Maximum terminal sessions reached (default 10, configurable via `MAX_TERMINAL_SESSIONS`)
|
|
62
|
+
|
|
63
|
+
### 16.7 Reset password
|
|
64
|
+
|
|
65
|
+
If you forgot your password:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
hammoc --reset-password
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
This prompts you to set a new password. Alternatively, delete `~/.hammoc/config.json` and restart the server to re-trigger the password setup flow in the browser.
|
|
72
|
+
|
|
73
|
+
### 16.8 Chat timeout
|
|
74
|
+
|
|
75
|
+
If Claude's responses are timing out:
|
|
76
|
+
|
|
77
|
+
1. Go to **Settings > Global** and adjust the **Chat Timeout** dropdown
|
|
78
|
+
2. Available values: 1 min, 3 min, 5 min (default), 10 min, 30 min
|
|
79
|
+
3. Complex tasks (large codebases, multi-file edits) may need longer timeouts
|
|
80
|
+
4. If the `CHAT_TIMEOUT_MS` environment variable is set, it overrides the UI setting (shown with an indicator)
|
|
81
|
+
|
|
82
|
+
### 16.9 Large file warning
|
|
83
|
+
|
|
84
|
+
Files over 1 MB display a truncation warning. Consider:
|
|
85
|
+
|
|
86
|
+
- Using the terminal to view large files
|
|
87
|
+
- Opening in an external editor
|
|
88
|
+
- Breaking large files into smaller ones
|
|
89
|
+
|
|
90
|
+
### 16.10 Data locations
|
|
91
|
+
|
|
92
|
+
If you need to find or back up your data:
|
|
93
|
+
|
|
94
|
+
| Data | Path |
|
|
95
|
+
|------|------|
|
|
96
|
+
| App config & password | `~/.hammoc/config.json` |
|
|
97
|
+
| User preferences | `~/.hammoc/preferences.json` |
|
|
98
|
+
| Queue templates | `<project-root>/.hammoc/queue-templates.json` (per project) |
|
|
99
|
+
| Chain failures | `~/.hammoc/chain-failures/<sessionId>.json` (per session) |
|
|
100
|
+
| Global snippets | `~/.hammoc/snippets/` (shared across all projects) |
|
|
101
|
+
| Project snippets | `<project-root>/.hammoc/snippets/` (per project) |
|
|
102
|
+
| Global harness items | `~/.claude/` (skills, agents, commands, hooks, `CLAUDE.md`, `.mcp.json`, `settings.json`) |
|
|
103
|
+
| Project harness items | `<project-root>/.claude/` (same layout as global; project takes precedence) |
|
|
104
|
+
| Session data | `~/.claude/projects/` |
|
|
105
|
+
| Web Push VAPID keys | `~/.hammoc/vapid-keys.json` |
|
|
106
|
+
| Web Push subscriptions | `~/.hammoc/push-subscriptions.json` |
|
|
107
|
+
| TLS certificates | `~/.hammoc/key.pem`, `~/.hammoc/cert.pem` |
|
|
108
|
+
| Manual shards (synced) | `~/.hammoc/docs/manual/` and `~/.hammoc/docs/.manual-version` (auto-synced from the npm package on server boot; agents read these via the absolute path embedded in the system prompt) |
|
|
109
|
+
| Internals docs (synced) | `~/.hammoc/docs/internals/` (agent-only mechanism reference; also re-synced when the package version changes) |
|
|
110
|
+
| Server logs | `./logs/server-YYYY-MM-DD.log` (daily log files in working directory) |
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Hammoc Manual Index (Sharded)
|
|
2
|
+
|
|
3
|
+
This is a sharded mirror of `docs/MANUAL.md`, generated by `npm run build:manual-shards`.
|
|
4
|
+
Each chapter lives in its own file so an agent can load only the part it needs instead of the full ~31k-token manual.
|
|
5
|
+
|
|
6
|
+
## How to use this index
|
|
7
|
+
|
|
8
|
+
1. Skim the chapter list below to find the topic that matches the current task.
|
|
9
|
+
2. Check the audience tag — `[agent]` chapters are the ones written for an automated assistant to act on; `[user-setup]` chapters are reference material for the human operator and rarely help an agent.
|
|
10
|
+
3. Read the chapter file you need with the file Read tool. Don't load the whole manual at once.
|
|
11
|
+
|
|
12
|
+
When the user mentions a Hammoc-specific concept (queue, snippet, board, BMad agent, project, session, etc.) and you are not sure how the feature behaves, the matching chapter below is the source of truth — read it before guessing or improvising.
|
|
13
|
+
|
|
14
|
+
## Chapters
|
|
15
|
+
|
|
16
|
+
<!-- chapter-list:start -->
|
|
17
|
+
- 1. [Getting Started](./01-getting-started.md)
|
|
18
|
+
- 2. [Chat](./02-chat.md)
|
|
19
|
+
- 3. [Sessions](./03-sessions.md)
|
|
20
|
+
- 4. [Slash Commands & Favorites](./04-slash-commands-favorites.md)
|
|
21
|
+
- 5. [Projects](./05-projects.md)
|
|
22
|
+
- 6. [File Explorer & Editor](./06-file-explorer-editor.md)
|
|
23
|
+
- 7. [Git](./07-git.md)
|
|
24
|
+
- 8. [Terminal](./08-terminal.md)
|
|
25
|
+
- 9. [Queue Runner](./09-queue-runner.md)
|
|
26
|
+
- 10. [Project Board](./10-project-board.md)
|
|
27
|
+
- 11. [BMAD-METHOD Integration](./11-bmad-method-integration.md)
|
|
28
|
+
- 12. [Harness Workbench](./12-harness-workbench.md)
|
|
29
|
+
- 13. [Settings](./13-settings.md)
|
|
30
|
+
- 14. [Keyboard Shortcuts](./14-keyboard-shortcuts.md)
|
|
31
|
+
- 15. [Environment Variables](./15-environment-variables.md)
|
|
32
|
+
- 16. [Troubleshooting](./16-troubleshooting.md)
|
|
33
|
+
<!-- chapter-list:end -->
|
|
34
|
+
|
|
35
|
+
## Audience and trigger keywords
|
|
36
|
+
|
|
37
|
+
| # | Chapter | Audience | Read when the user mentions / asks about |
|
|
38
|
+
|---|---|---|---|
|
|
39
|
+
| 1 | Getting Started | `[user-setup]` | Hammoc install, CLI flags, HTTPS / TLS, mobile access, reverse proxy. (Operator setup; rarely useful to an agent.) |
|
|
40
|
+
| 2 | Chat | `[agent]` | streaming, message edit, conversation fork / branching, summarize & continue, code rewind, prompt chaining, extended thinking, model selector, thinking effort, context usage, abort behaviour |
|
|
41
|
+
| 3 | Sessions | `[agent]` | session list, session search, rename / delete, quick session panel, active streaming indicator |
|
|
42
|
+
| 4 | Slash Commands & Favorites | `[agent]` **(important)** | `/` slash commands, `%` snippets, snippet arguments and context blocks, multi-prompt snippets, snippet hierarchy (project / global / bundled), star palette, favorites |
|
|
43
|
+
| 5 | Projects | `[agent]` | project list, project creation (with optional BMad init), per-project settings, project overview page, hide / delete projects |
|
|
44
|
+
| 6 | File Explorer & Editor | `[user-setup]` | UI panel that the user operates by hand. The agent uses Read / Write / Edit tools directly instead. |
|
|
45
|
+
| 7 | Git | `[user-setup]` | UI panel for staging / committing / branching. The agent uses git via Bash directly. |
|
|
46
|
+
| 8 | Terminal | `[user-setup]` | UI terminal panel. The agent uses Bash / PowerShell tools directly. |
|
|
47
|
+
| 9 | Queue Runner | `[agent]` **(important)** | queue editor, special commands (`@new`, `@save`, `@load`, `@pause`, `@model`, `@delay`, `@pauseword`, `@loop` / `@end`, `@(` / `@)`, `#` comments), multiline prompts, pauseword, loop blocks, templates, session locking, story-based generation, variable substitution |
|
|
48
|
+
| 10 | Project Board | `[agent]` | Kanban / list view, issue types (Bug / Improvement), severity (Low / Medium / High / Critical), status workflow (Open → Draft → Approved → In Progress → Blocked → Review → Done → Closed), card context menu, attachments |
|
|
49
|
+
| 11 | BMAD-METHOD Integration | `[agent]` **(important)** | BMad agents (SM, PM, Architect, Dev, QA, PO, etc.), agent switching, `.bmad-core` setup, PRD → Queue automation, project overview dashboard, workflow phases, story workflows |
|
|
50
|
+
| 12 | Harness Workbench | `[agent]` **(important)** | Editing `.claude/` items (skills, MCP, hooks, slash commands, sub-agents, `CLAUDE.md`), Hammoc `%snippets` and command favorites, share badges / mode banner, static lint, secret-on-shared guard. Also see the on-disk layout in `~/.hammoc/docs/internals/harness-files.md`. |
|
|
51
|
+
| 13 | Settings | `[mixed]` | Read individual subsections only. `[agent]`-relevant: System Prompt (13.15), Default Permission Mode (13.4), Default Model (13.3), Default Thinking Effort (13.10), Advanced Settings (13.16). Per-project overrides now live with the project (see chapter 5.3 / chapter 12). The rest is `[user-setup]`. |
|
|
52
|
+
| 14 | Keyboard Shortcuts | `[user-setup]` | Reference table for the human operator. The agent does not press keys. |
|
|
53
|
+
| 15 | Environment Variables | `[user-setup]` | Server / Vite env vars for operator configuration. |
|
|
54
|
+
| 16 | Troubleshooting | `[user-setup]` | Operator-facing diagnosis recipes (CLI not found, auth, port in use, etc.). |
|
|
55
|
+
|
|
56
|
+
## Notes for maintainers
|
|
57
|
+
|
|
58
|
+
- `docs/MANUAL.md` is the single source of truth. Edit it, then run `npm run build:manual-shards` to regenerate the chapter files. The chapter-list block above is auto-updated; everything else in this file is hand-maintained.
|
|
59
|
+
- The audience table above is **manually curated**. When you add a new chapter, decide whether it is `[agent]`, `[user-setup]`, or `[mixed]` and add a row.
|
|
60
|
+
- Shards are packaged into the npm tarball under `packages/server/resources/manual/` and synced to `~/.hammoc/docs/manual/` on Hammoc server boot, so any user environment running Hammoc can read this index.
|
|
@@ -24,4 +24,11 @@ export * from './types/terminal.js';
|
|
|
24
24
|
export * from './types/dashboard.js';
|
|
25
25
|
export * from './types/board.js';
|
|
26
26
|
export { LogLevel, parseLogLevel } from './types/logger.js';
|
|
27
|
+
export * from './types/harness.js';
|
|
28
|
+
export * from './types/observability.js';
|
|
29
|
+
export { splitMarkdownByH2, appendMarkdownSections, MarkdownH2Section, } from './utils/markdownSections.js';
|
|
30
|
+
export * from './types/harnessBundle.js';
|
|
31
|
+
export * from './types/bmadCoreConfig.js';
|
|
32
|
+
export * from './types/contextBuilder.js';
|
|
33
|
+
export * from './types/marketplace.js';
|
|
27
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAG/B,cAAc,sBAAsB,CAAC;AAGrC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAIrC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAIrF,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG9F,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,2BAA2B,EAC3B,6BAA6B,EAC7B,eAAe,EACf,0BAA0B,EAC1B,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG/E,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAG/F,cAAc,gBAAgB,CAAC;AAG/B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAG/B,cAAc,sBAAsB,CAAC;AAGrC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAIrC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAIrF,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG9F,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,2BAA2B,EAC3B,6BAA6B,EAC7B,eAAe,EACf,0BAA0B,EAC1B,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG/E,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAG/F,cAAc,gBAAgB,CAAC;AAG/B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG5D,cAAc,oBAAoB,CAAC;AAGnC,cAAc,0BAA0B,CAAC;AAGzC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAGrC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,2BAA2B,CAAC;AAG1C,cAAc,wBAAwB,CAAC"}
|
|
@@ -45,4 +45,18 @@ export * from './types/dashboard.js';
|
|
|
45
45
|
export * from './types/board.js';
|
|
46
46
|
// Logger types (shared between server and client)
|
|
47
47
|
export { LogLevel, parseLogLevel } from './types/logger.js';
|
|
48
|
+
// Story 28.0.5: Harness workbench shared types (Epic 28 common infra)
|
|
49
|
+
export * from './types/harness.js';
|
|
50
|
+
// Story 31.3: Observability — MCP call log + token attribution (Epic 31)
|
|
51
|
+
export * from './types/observability.js';
|
|
52
|
+
// Story 29.1: Markdown H2 split/append helpers (shared by server & client)
|
|
53
|
+
export { splitMarkdownByH2, appendMarkdownSections, } from './utils/markdownSections.js';
|
|
54
|
+
// Story 30.3: Harness Export/Import bundle DTOs
|
|
55
|
+
export * from './types/harnessBundle.js';
|
|
56
|
+
// Story 31.1: BMad core-config.yaml editor DTOs (Epic 31)
|
|
57
|
+
export * from './types/bmadCoreConfig.js';
|
|
58
|
+
// Story 31.2: SessionStart context-builder DTOs (Epic 31)
|
|
59
|
+
export * from './types/contextBuilder.js';
|
|
60
|
+
// Story 31.4: Plugin marketplace catalog DTOs (Epic 31)
|
|
61
|
+
export * from './types/marketplace.js';
|
|
48
62
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,cAAc,gBAAgB,CAAC;AAE/B,+CAA+C;AAC/C,cAAc,sBAAsB,CAAC;AAErC,2CAA2C;AAC3C,cAAc,sBAAsB,CAAC;AAErC,4DAA4D;AAC5D,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC,kDAAkD;AAClD,2FAA2F;AAC3F,cAAc,oBAAoB,CAAC;AAEnC,iDAAiD;AACjD,cAAc,gBAAgB,CAAC;AAE/B,mDAAmD;AACnD,OAAO,EAGL,mBAAmB,EACnB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,yBAAyB;AACzB,OAAO,EAKL,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,0CAA0C;AAC1C,OAAO,EAGL,gBAAgB,GAGjB,MAAM,iBAAiB,CAAC;AAEzB,iCAAiC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAKtD,gDAAgD;AAChD,kDAAkD;AAClD,OAAO,EAGL,cAAc,GAYf,MAAM,oBAAoB,CAAC;AAM5B,gDAAgD;AAChD,OAAO,EAIL,mBAAmB,EASnB,mBAAmB,GAEpB,MAAM,wBAAwB,CAAC;AAiBhC,qEAAqE;AACrE,cAAc,uBAAuB,CAAC;AAEtC,uDAAuD;AACvD,cAAc,uBAAuB,CAAC;AAEtC,iCAAiC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,kCAAkC;AAClC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE/E,uCAAuC;AACvC,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/F,kCAAkC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,2CAA2C;AAC3C,cAAc,qBAAqB,CAAC;AAEpC,8BAA8B;AAC9B,cAAc,sBAAsB,CAAC;AAErC,oCAAoC;AACpC,cAAc,kBAAkB,CAAC;AAEjC,kDAAkD;AAClD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,cAAc,gBAAgB,CAAC;AAE/B,+CAA+C;AAC/C,cAAc,sBAAsB,CAAC;AAErC,2CAA2C;AAC3C,cAAc,sBAAsB,CAAC;AAErC,4DAA4D;AAC5D,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC,kDAAkD;AAClD,2FAA2F;AAC3F,cAAc,oBAAoB,CAAC;AAEnC,iDAAiD;AACjD,cAAc,gBAAgB,CAAC;AAE/B,mDAAmD;AACnD,OAAO,EAGL,mBAAmB,EACnB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,yBAAyB;AACzB,OAAO,EAKL,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,0CAA0C;AAC1C,OAAO,EAGL,gBAAgB,GAGjB,MAAM,iBAAiB,CAAC;AAEzB,iCAAiC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAKtD,gDAAgD;AAChD,kDAAkD;AAClD,OAAO,EAGL,cAAc,GAYf,MAAM,oBAAoB,CAAC;AAM5B,gDAAgD;AAChD,OAAO,EAIL,mBAAmB,EASnB,mBAAmB,GAEpB,MAAM,wBAAwB,CAAC;AAiBhC,qEAAqE;AACrE,cAAc,uBAAuB,CAAC;AAEtC,uDAAuD;AACvD,cAAc,uBAAuB,CAAC;AAEtC,iCAAiC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,kCAAkC;AAClC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE/E,uCAAuC;AACvC,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/F,kCAAkC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,2CAA2C;AAC3C,cAAc,qBAAqB,CAAC;AAEpC,8BAA8B;AAC9B,cAAc,sBAAsB,CAAC;AAErC,oCAAoC;AACpC,cAAc,kBAAkB,CAAC;AAEjC,kDAAkD;AAClD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5D,sEAAsE;AACtE,cAAc,oBAAoB,CAAC;AAEnC,yEAAyE;AACzE,cAAc,0BAA0B,CAAC;AAEzC,2EAA2E;AAC3E,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GAEvB,MAAM,6BAA6B,CAAC;AAErC,gDAAgD;AAChD,cAAc,0BAA0B,CAAC;AAEzC,0DAA0D;AAC1D,cAAc,2BAA2B,CAAC;AAE1C,0DAA0D;AAC1D,cAAc,2BAA2B,CAAC;AAE1C,wDAAwD;AACxD,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed shape of the 18 known keys of `.bmad-core/core-config.yaml`.
|
|
3
|
+
*
|
|
4
|
+
* Every key is optional: a config that omits a key is valid, and the form
|
|
5
|
+
* renders an empty widget for it. The nested groups (`qa`, `prd`,
|
|
6
|
+
* `architecture`, `brownfieldEpic`) mirror the on-disk YAML nesting so the
|
|
7
|
+
* value of a leaf such as `prd.epicFilePattern` is reachable at the same path
|
|
8
|
+
* the AST patch op uses (`['prd', 'epicFilePattern']`).
|
|
9
|
+
*
|
|
10
|
+
* `customTechnicalDocuments` is `string[] | null` because the canonical
|
|
11
|
+
* default on disk is the literal `null` (an explicit "no extra docs" marker)
|
|
12
|
+
* that the form promotes to an array on first item add.
|
|
13
|
+
*/
|
|
14
|
+
export interface BmadCoreConfigKnownKeys {
|
|
15
|
+
markdownExploder?: boolean;
|
|
16
|
+
qa?: {
|
|
17
|
+
qaLocation?: string;
|
|
18
|
+
};
|
|
19
|
+
prd?: {
|
|
20
|
+
prdFile?: string;
|
|
21
|
+
prdVersion?: string;
|
|
22
|
+
prdSharded?: boolean;
|
|
23
|
+
prdShardedLocation?: string;
|
|
24
|
+
epicFilePattern?: string;
|
|
25
|
+
};
|
|
26
|
+
architecture?: {
|
|
27
|
+
architectureFile?: string;
|
|
28
|
+
architectureVersion?: string;
|
|
29
|
+
architectureSharded?: boolean;
|
|
30
|
+
architectureShardedLocation?: string;
|
|
31
|
+
};
|
|
32
|
+
customTechnicalDocuments?: string[] | null;
|
|
33
|
+
devLoadAlwaysFiles?: string[];
|
|
34
|
+
brownfieldEpic?: {
|
|
35
|
+
updateOnCreate?: string[];
|
|
36
|
+
doNotUpdate?: string[];
|
|
37
|
+
};
|
|
38
|
+
devDebugLog?: string;
|
|
39
|
+
devStoryLocation?: string;
|
|
40
|
+
slashPrefix?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The 10 known TOP-LEVEL keys of `.bmad-core/core-config.yaml`. Any other
|
|
44
|
+
* top-level key in the parsed YAML is treated as "unknown" and round-trips
|
|
45
|
+
* untouched (AC4). Nested groups (`qa`/`prd`/`architecture`/`brownfieldEpic`)
|
|
46
|
+
* count as one top-level key each; their leaves are the 18-key matrix.
|
|
47
|
+
*
|
|
48
|
+
* Single source of truth shared by the server partition logic and any client
|
|
49
|
+
* consumer that needs to reason about top-level membership.
|
|
50
|
+
*/
|
|
51
|
+
export declare const BMAD_CORE_CONFIG_KNOWN_TOP_LEVEL_KEYS: readonly ["markdownExploder", "qa", "prd", "architecture", "customTechnicalDocuments", "devLoadAlwaysFiles", "brownfieldEpic", "devDebugLog", "devStoryLocation", "slashPrefix"];
|
|
52
|
+
/** GET /api/harness/bmad-config/:projectSlug response. */
|
|
53
|
+
export interface BmadCoreConfigReadResponse {
|
|
54
|
+
/** Full raw text of `.bmad-core/core-config.yaml` — feeds the Raw editor toggle. */
|
|
55
|
+
content: string;
|
|
56
|
+
/** ISO 8601 mtime — STALE_WRITE ETag echoed back on the next patch/raw write. */
|
|
57
|
+
mtime: string;
|
|
58
|
+
/** Known top-level keys, typed. Drives the 18-key form widgets. */
|
|
59
|
+
knownKeys: BmadCoreConfigKnownKeys;
|
|
60
|
+
/**
|
|
61
|
+
* Unknown top-level keys (BMad schema extensions or user-defined keys) shown
|
|
62
|
+
* read-only in the "unknown keys" section with a JS-type hint each (AC4.a).
|
|
63
|
+
*/
|
|
64
|
+
unknownKeys: Record<string, unknown>;
|
|
65
|
+
}
|
|
66
|
+
/** PATCH / PUT(raw) write response. */
|
|
67
|
+
export interface BmadCoreConfigWriteResponse {
|
|
68
|
+
/** ISO 8601 mtime after the write — the client persists this as the next ETag. */
|
|
69
|
+
mtime: string;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=bmadCoreConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bmadCoreConfig.d.ts","sourceRoot":"","sources":["../../src/types/bmadCoreConfig.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,EAAE,CAAC,EAAE;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,YAAY,CAAC,EAAE;QACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,2BAA2B,CAAC,EAAE,MAAM,CAAC;KACtC,CAAC;IACF,wBAAwB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE;QACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,qCAAqC,kLAWxC,CAAC;AAEX,0DAA0D;AAC1D,MAAM,WAAW,0BAA0B;IACzC,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,SAAS,EAAE,uBAAuB,CAAC;IACnC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,uCAAuC;AACvC,MAAM,WAAW,2BAA2B;IAC1C,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;CACf"}
|