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.
Files changed (353) hide show
  1. package/README.md +428 -405
  2. package/bin/hammoc.js +0 -6
  3. package/package.json +100 -94
  4. package/packages/client/dist/assets/agentExampleHighlight-ltj9ce0U.js +1 -0
  5. package/packages/client/dist/assets/commandTokenHighlight-ji_ViMb4.js +1 -0
  6. package/packages/client/dist/assets/index-B-DiRGuz.js +2 -0
  7. package/packages/client/dist/assets/index-B09doO8H.js +139 -0
  8. package/packages/client/dist/assets/index-BT4RIi0U.js +1523 -0
  9. package/packages/client/dist/assets/index-DyNJ5jEW.css +32 -0
  10. package/packages/client/dist/assets/snippetTokenHighlight-CP3v4o2g.js +1 -0
  11. package/packages/client/dist/index.html +2 -2
  12. package/packages/client/dist/sw.js +1 -1
  13. package/packages/server/dist/app.d.ts.map +1 -1
  14. package/packages/server/dist/app.js +13 -21
  15. package/packages/server/dist/app.js.map +1 -1
  16. package/packages/server/dist/controllers/bmadCoreConfigController.d.ts +41 -0
  17. package/packages/server/dist/controllers/bmadCoreConfigController.d.ts.map +1 -0
  18. package/packages/server/dist/controllers/bmadCoreConfigController.js +172 -0
  19. package/packages/server/dist/controllers/bmadCoreConfigController.js.map +1 -0
  20. package/packages/server/dist/controllers/claudeMdController.d.ts +26 -0
  21. package/packages/server/dist/controllers/claudeMdController.d.ts.map +1 -0
  22. package/packages/server/dist/controllers/claudeMdController.js +158 -0
  23. package/packages/server/dist/controllers/claudeMdController.js.map +1 -0
  24. package/packages/server/dist/controllers/contextBuilderController.d.ts +43 -0
  25. package/packages/server/dist/controllers/contextBuilderController.d.ts.map +1 -0
  26. package/packages/server/dist/controllers/contextBuilderController.js +159 -0
  27. package/packages/server/dist/controllers/contextBuilderController.js.map +1 -0
  28. package/packages/server/dist/controllers/harnessAgentController.d.ts +35 -0
  29. package/packages/server/dist/controllers/harnessAgentController.d.ts.map +1 -0
  30. package/packages/server/dist/controllers/harnessAgentController.js +372 -0
  31. package/packages/server/dist/controllers/harnessAgentController.js.map +1 -0
  32. package/packages/server/dist/controllers/harnessBundleController.d.ts +37 -0
  33. package/packages/server/dist/controllers/harnessBundleController.d.ts.map +1 -0
  34. package/packages/server/dist/controllers/harnessBundleController.js +312 -0
  35. package/packages/server/dist/controllers/harnessBundleController.js.map +1 -0
  36. package/packages/server/dist/controllers/harnessCommandController.d.ts +35 -0
  37. package/packages/server/dist/controllers/harnessCommandController.d.ts.map +1 -0
  38. package/packages/server/dist/controllers/harnessCommandController.js +415 -0
  39. package/packages/server/dist/controllers/harnessCommandController.js.map +1 -0
  40. package/packages/server/dist/controllers/harnessController.d.ts +21 -0
  41. package/packages/server/dist/controllers/harnessController.d.ts.map +1 -0
  42. package/packages/server/dist/controllers/harnessController.js +176 -0
  43. package/packages/server/dist/controllers/harnessController.js.map +1 -0
  44. package/packages/server/dist/controllers/harnessHookController.d.ts +32 -0
  45. package/packages/server/dist/controllers/harnessHookController.d.ts.map +1 -0
  46. package/packages/server/dist/controllers/harnessHookController.js +406 -0
  47. package/packages/server/dist/controllers/harnessHookController.js.map +1 -0
  48. package/packages/server/dist/controllers/harnessLintController.d.ts +18 -0
  49. package/packages/server/dist/controllers/harnessLintController.d.ts.map +1 -0
  50. package/packages/server/dist/controllers/harnessLintController.js +72 -0
  51. package/packages/server/dist/controllers/harnessLintController.js.map +1 -0
  52. package/packages/server/dist/controllers/harnessMcpController.d.ts +28 -0
  53. package/packages/server/dist/controllers/harnessMcpController.d.ts.map +1 -0
  54. package/packages/server/dist/controllers/harnessMcpController.js +371 -0
  55. package/packages/server/dist/controllers/harnessMcpController.js.map +1 -0
  56. package/packages/server/dist/controllers/harnessPluginController.d.ts +17 -0
  57. package/packages/server/dist/controllers/harnessPluginController.d.ts.map +1 -0
  58. package/packages/server/dist/controllers/harnessPluginController.js +115 -0
  59. package/packages/server/dist/controllers/harnessPluginController.js.map +1 -0
  60. package/packages/server/dist/controllers/harnessShareScopeController.d.ts +24 -0
  61. package/packages/server/dist/controllers/harnessShareScopeController.d.ts.map +1 -0
  62. package/packages/server/dist/controllers/harnessShareScopeController.js +120 -0
  63. package/packages/server/dist/controllers/harnessShareScopeController.js.map +1 -0
  64. package/packages/server/dist/controllers/harnessSkillController.d.ts +32 -0
  65. package/packages/server/dist/controllers/harnessSkillController.d.ts.map +1 -0
  66. package/packages/server/dist/controllers/harnessSkillController.js +453 -0
  67. package/packages/server/dist/controllers/harnessSkillController.js.map +1 -0
  68. package/packages/server/dist/controllers/marketplaceController.d.ts +19 -0
  69. package/packages/server/dist/controllers/marketplaceController.d.ts.map +1 -0
  70. package/packages/server/dist/controllers/marketplaceController.js +74 -0
  71. package/packages/server/dist/controllers/marketplaceController.js.map +1 -0
  72. package/packages/server/dist/controllers/observabilityController.d.ts +32 -0
  73. package/packages/server/dist/controllers/observabilityController.d.ts.map +1 -0
  74. package/packages/server/dist/controllers/observabilityController.js +148 -0
  75. package/packages/server/dist/controllers/observabilityController.js.map +1 -0
  76. package/packages/server/dist/controllers/projectController.d.ts.map +1 -1
  77. package/packages/server/dist/controllers/projectController.js +11 -0
  78. package/packages/server/dist/controllers/projectController.js.map +1 -1
  79. package/packages/server/dist/controllers/snippetController.d.ts +35 -0
  80. package/packages/server/dist/controllers/snippetController.d.ts.map +1 -0
  81. package/packages/server/dist/controllers/snippetController.js +294 -0
  82. package/packages/server/dist/controllers/snippetController.js.map +1 -0
  83. package/packages/server/dist/handlers/streamCallbacks.d.ts +8 -0
  84. package/packages/server/dist/handlers/streamCallbacks.d.ts.map +1 -1
  85. package/packages/server/dist/handlers/streamCallbacks.js +8 -0
  86. package/packages/server/dist/handlers/streamCallbacks.js.map +1 -1
  87. package/packages/server/dist/handlers/websocket.d.ts +15 -0
  88. package/packages/server/dist/handlers/websocket.d.ts.map +1 -1
  89. package/packages/server/dist/handlers/websocket.js +103 -2
  90. package/packages/server/dist/handlers/websocket.js.map +1 -1
  91. package/packages/server/dist/index.js +5 -0
  92. package/packages/server/dist/index.js.map +1 -1
  93. package/packages/server/dist/locales/en/server.json +37 -4
  94. package/packages/server/dist/locales/es/server.json +0 -4
  95. package/packages/server/dist/locales/ja/server.json +0 -4
  96. package/packages/server/dist/locales/ko/server.json +0 -4
  97. package/packages/server/dist/locales/pt/server.json +0 -4
  98. package/packages/server/dist/locales/zh-CN/server.json +0 -4
  99. package/packages/server/dist/routes/harness.d.ts +8 -0
  100. package/packages/server/dist/routes/harness.d.ts.map +1 -0
  101. package/packages/server/dist/routes/harness.js +150 -0
  102. package/packages/server/dist/routes/harness.js.map +1 -0
  103. package/packages/server/dist/routes/projects.d.ts.map +1 -1
  104. package/packages/server/dist/routes/projects.js +5 -60
  105. package/packages/server/dist/routes/projects.js.map +1 -1
  106. package/packages/server/dist/routes/snippets.d.ts +14 -0
  107. package/packages/server/dist/routes/snippets.d.ts.map +1 -0
  108. package/packages/server/dist/routes/snippets.js +27 -0
  109. package/packages/server/dist/routes/snippets.js.map +1 -0
  110. package/packages/server/dist/services/bmadCoreConfigService.d.ts +86 -0
  111. package/packages/server/dist/services/bmadCoreConfigService.d.ts.map +1 -0
  112. package/packages/server/dist/services/bmadCoreConfigService.js +175 -0
  113. package/packages/server/dist/services/bmadCoreConfigService.js.map +1 -0
  114. package/packages/server/dist/services/bmadStatusService.d.ts +15 -2
  115. package/packages/server/dist/services/bmadStatusService.d.ts.map +1 -1
  116. package/packages/server/dist/services/bmadStatusService.js +146 -37
  117. package/packages/server/dist/services/bmadStatusService.js.map +1 -1
  118. package/packages/server/dist/services/chatService.d.ts +3 -0
  119. package/packages/server/dist/services/chatService.d.ts.map +1 -1
  120. package/packages/server/dist/services/chatService.js +28 -7
  121. package/packages/server/dist/services/chatService.js.map +1 -1
  122. package/packages/server/dist/services/claudeMdService.d.ts +48 -0
  123. package/packages/server/dist/services/claudeMdService.d.ts.map +1 -0
  124. package/packages/server/dist/services/claudeMdService.js +240 -0
  125. package/packages/server/dist/services/claudeMdService.js.map +1 -0
  126. package/packages/server/dist/services/commandService.d.ts +10 -0
  127. package/packages/server/dist/services/commandService.d.ts.map +1 -1
  128. package/packages/server/dist/services/commandService.js +129 -4
  129. package/packages/server/dist/services/commandService.js.map +1 -1
  130. package/packages/server/dist/services/contextBuilderScriptTemplate.d.ts +24 -0
  131. package/packages/server/dist/services/contextBuilderScriptTemplate.d.ts.map +1 -0
  132. package/packages/server/dist/services/contextBuilderScriptTemplate.js +181 -0
  133. package/packages/server/dist/services/contextBuilderScriptTemplate.js.map +1 -0
  134. package/packages/server/dist/services/contextBuilderService.d.ts +68 -0
  135. package/packages/server/dist/services/contextBuilderService.d.ts.map +1 -0
  136. package/packages/server/dist/services/contextBuilderService.js +345 -0
  137. package/packages/server/dist/services/contextBuilderService.js.map +1 -0
  138. package/packages/server/dist/services/fileWatcherService.d.ts +24 -0
  139. package/packages/server/dist/services/fileWatcherService.d.ts.map +1 -1
  140. package/packages/server/dist/services/fileWatcherService.js +232 -1
  141. package/packages/server/dist/services/fileWatcherService.js.map +1 -1
  142. package/packages/server/dist/services/harnessAgentService.d.ts +97 -0
  143. package/packages/server/dist/services/harnessAgentService.d.ts.map +1 -0
  144. package/packages/server/dist/services/harnessAgentService.js +988 -0
  145. package/packages/server/dist/services/harnessAgentService.js.map +1 -0
  146. package/packages/server/dist/services/harnessBundleService.d.ts +145 -0
  147. package/packages/server/dist/services/harnessBundleService.d.ts.map +1 -0
  148. package/packages/server/dist/services/harnessBundleService.js +1318 -0
  149. package/packages/server/dist/services/harnessBundleService.js.map +1 -0
  150. package/packages/server/dist/services/harnessCommandService.d.ts +81 -0
  151. package/packages/server/dist/services/harnessCommandService.d.ts.map +1 -0
  152. package/packages/server/dist/services/harnessCommandService.js +917 -0
  153. package/packages/server/dist/services/harnessCommandService.js.map +1 -0
  154. package/packages/server/dist/services/harnessHookService.d.ts +82 -0
  155. package/packages/server/dist/services/harnessHookService.d.ts.map +1 -0
  156. package/packages/server/dist/services/harnessHookService.js +1112 -0
  157. package/packages/server/dist/services/harnessHookService.js.map +1 -0
  158. package/packages/server/dist/services/harnessLintService.d.ts +49 -0
  159. package/packages/server/dist/services/harnessLintService.d.ts.map +1 -0
  160. package/packages/server/dist/services/harnessLintService.js +628 -0
  161. package/packages/server/dist/services/harnessLintService.js.map +1 -0
  162. package/packages/server/dist/services/harnessMcpService.d.ts +100 -0
  163. package/packages/server/dist/services/harnessMcpService.d.ts.map +1 -0
  164. package/packages/server/dist/services/harnessMcpService.js +884 -0
  165. package/packages/server/dist/services/harnessMcpService.js.map +1 -0
  166. package/packages/server/dist/services/harnessPluginService.d.ts +66 -0
  167. package/packages/server/dist/services/harnessPluginService.d.ts.map +1 -0
  168. package/packages/server/dist/services/harnessPluginService.js +559 -0
  169. package/packages/server/dist/services/harnessPluginService.js.map +1 -0
  170. package/packages/server/dist/services/harnessService.d.ts +40 -0
  171. package/packages/server/dist/services/harnessService.d.ts.map +1 -0
  172. package/packages/server/dist/services/harnessService.js +222 -0
  173. package/packages/server/dist/services/harnessService.js.map +1 -0
  174. package/packages/server/dist/services/harnessShareScopeService.d.ts +50 -0
  175. package/packages/server/dist/services/harnessShareScopeService.d.ts.map +1 -0
  176. package/packages/server/dist/services/harnessShareScopeService.js +158 -0
  177. package/packages/server/dist/services/harnessShareScopeService.js.map +1 -0
  178. package/packages/server/dist/services/harnessSkillService.d.ts +70 -0
  179. package/packages/server/dist/services/harnessSkillService.d.ts.map +1 -0
  180. package/packages/server/dist/services/harnessSkillService.js +636 -0
  181. package/packages/server/dist/services/harnessSkillService.js.map +1 -0
  182. package/packages/server/dist/services/issueService.d.ts.map +1 -1
  183. package/packages/server/dist/services/issueService.js +3 -1
  184. package/packages/server/dist/services/issueService.js.map +1 -1
  185. package/packages/server/dist/services/manualSyncService.d.ts +19 -0
  186. package/packages/server/dist/services/manualSyncService.d.ts.map +1 -0
  187. package/packages/server/dist/services/manualSyncService.js +110 -0
  188. package/packages/server/dist/services/manualSyncService.js.map +1 -0
  189. package/packages/server/dist/services/marketplaceService.d.ts +50 -0
  190. package/packages/server/dist/services/marketplaceService.d.ts.map +1 -0
  191. package/packages/server/dist/services/marketplaceService.js +326 -0
  192. package/packages/server/dist/services/marketplaceService.js.map +1 -0
  193. package/packages/server/dist/services/observabilityService.d.ts +87 -0
  194. package/packages/server/dist/services/observabilityService.d.ts.map +1 -0
  195. package/packages/server/dist/services/observabilityService.js +0 -0
  196. package/packages/server/dist/services/observabilityService.js.map +1 -0
  197. package/packages/server/dist/services/queueService.d.ts.map +1 -1
  198. package/packages/server/dist/services/queueService.js +48 -2
  199. package/packages/server/dist/services/queueService.js.map +1 -1
  200. package/packages/server/dist/services/sessionService.d.ts +16 -0
  201. package/packages/server/dist/services/sessionService.d.ts.map +1 -1
  202. package/packages/server/dist/services/sessionService.js +125 -0
  203. package/packages/server/dist/services/sessionService.js.map +1 -1
  204. package/packages/server/dist/services/snippetService.d.ts +54 -0
  205. package/packages/server/dist/services/snippetService.d.ts.map +1 -0
  206. package/packages/server/dist/services/snippetService.js +371 -0
  207. package/packages/server/dist/services/snippetService.js.map +1 -0
  208. package/packages/server/dist/services/tokenCountService.d.ts +71 -0
  209. package/packages/server/dist/services/tokenCountService.d.ts.map +1 -0
  210. package/packages/server/dist/services/tokenCountService.js +313 -0
  211. package/packages/server/dist/services/tokenCountService.js.map +1 -0
  212. package/packages/server/dist/services/utils/applyYamlFrontmatterPatch.d.ts +46 -0
  213. package/packages/server/dist/services/utils/applyYamlFrontmatterPatch.d.ts.map +1 -0
  214. package/packages/server/dist/services/utils/applyYamlFrontmatterPatch.js +125 -0
  215. package/packages/server/dist/services/utils/applyYamlFrontmatterPatch.js.map +1 -0
  216. package/packages/server/dist/snippets/apply-qa-fixes +7 -5
  217. package/packages/server/dist/snippets/qa-review +5 -1
  218. package/packages/server/dist/snippets/split-commit +9 -0
  219. package/packages/server/dist/utils/applySecretsPolicy.d.ts +53 -0
  220. package/packages/server/dist/utils/applySecretsPolicy.d.ts.map +1 -0
  221. package/packages/server/dist/utils/applySecretsPolicy.js +204 -0
  222. package/packages/server/dist/utils/applySecretsPolicy.js.map +1 -0
  223. package/packages/server/dist/utils/assertNoSecretOnShared.d.ts +40 -0
  224. package/packages/server/dist/utils/assertNoSecretOnShared.d.ts.map +1 -0
  225. package/packages/server/dist/utils/assertNoSecretOnShared.js +47 -0
  226. package/packages/server/dist/utils/assertNoSecretOnShared.js.map +1 -0
  227. package/packages/server/dist/utils/assertSafeBundlePath.d.ts +29 -0
  228. package/packages/server/dist/utils/assertSafeBundlePath.d.ts.map +1 -0
  229. package/packages/server/dist/utils/assertSafeBundlePath.js +53 -0
  230. package/packages/server/dist/utils/assertSafeBundlePath.js.map +1 -0
  231. package/packages/server/dist/utils/bundledBinaryModelSupport.d.ts +7 -0
  232. package/packages/server/dist/utils/bundledBinaryModelSupport.d.ts.map +1 -0
  233. package/packages/server/dist/utils/bundledBinaryModelSupport.js +107 -0
  234. package/packages/server/dist/utils/bundledBinaryModelSupport.js.map +1 -0
  235. package/packages/server/dist/utils/effortUtils.d.ts +2 -2
  236. package/packages/server/dist/utils/effortUtils.js +5 -5
  237. package/packages/server/dist/utils/effortUtils.js.map +1 -1
  238. package/packages/server/dist/utils/errors.d.ts +1 -0
  239. package/packages/server/dist/utils/errors.d.ts.map +1 -1
  240. package/packages/server/dist/utils/errors.js +17 -0
  241. package/packages/server/dist/utils/errors.js.map +1 -1
  242. package/packages/server/dist/utils/gitignoreFilter.d.ts +23 -0
  243. package/packages/server/dist/utils/gitignoreFilter.d.ts.map +1 -0
  244. package/packages/server/dist/utils/gitignoreFilter.js +42 -0
  245. package/packages/server/dist/utils/gitignoreFilter.js.map +1 -0
  246. package/packages/server/dist/utils/harnessBundleSchema.d.ts +107 -0
  247. package/packages/server/dist/utils/harnessBundleSchema.d.ts.map +1 -0
  248. package/packages/server/dist/utils/harnessBundleSchema.js +89 -0
  249. package/packages/server/dist/utils/harnessBundleSchema.js.map +1 -0
  250. package/packages/server/dist/utils/harnessPaths.d.ts +74 -0
  251. package/packages/server/dist/utils/harnessPaths.d.ts.map +1 -0
  252. package/packages/server/dist/utils/harnessPaths.js +247 -0
  253. package/packages/server/dist/utils/harnessPaths.js.map +1 -0
  254. package/packages/server/dist/utils/secretHeuristic.d.ts +72 -0
  255. package/packages/server/dist/utils/secretHeuristic.d.ts.map +1 -0
  256. package/packages/server/dist/utils/secretHeuristic.js +163 -0
  257. package/packages/server/dist/utils/secretHeuristic.js.map +1 -0
  258. package/packages/server/dist/utils/secretPlaceholderNamer.d.ts +41 -0
  259. package/packages/server/dist/utils/secretPlaceholderNamer.d.ts.map +1 -0
  260. package/packages/server/dist/utils/secretPlaceholderNamer.js +81 -0
  261. package/packages/server/dist/utils/secretPlaceholderNamer.js.map +1 -0
  262. package/packages/server/dist/utils/serverPathResolver.d.ts +29 -0
  263. package/packages/server/dist/utils/serverPathResolver.d.ts.map +1 -0
  264. package/packages/server/dist/utils/serverPathResolver.js +59 -0
  265. package/packages/server/dist/utils/serverPathResolver.js.map +1 -0
  266. package/packages/server/dist/utils/snippetPaths.d.ts +61 -0
  267. package/packages/server/dist/utils/snippetPaths.d.ts.map +1 -0
  268. package/packages/server/dist/utils/snippetPaths.js +123 -0
  269. package/packages/server/dist/utils/snippetPaths.js.map +1 -0
  270. package/packages/server/dist/utils/structuredEditor.d.ts +34 -0
  271. package/packages/server/dist/utils/structuredEditor.d.ts.map +1 -0
  272. package/packages/server/dist/utils/structuredEditor.js +111 -0
  273. package/packages/server/dist/utils/structuredEditor.js.map +1 -0
  274. package/packages/server/package.json +6 -2
  275. package/packages/server/resources/internals/INDEX.md +25 -0
  276. package/packages/server/resources/internals/bmad-qa-fix-marker.md +32 -0
  277. package/packages/server/resources/internals/harness-files.md +85 -0
  278. package/packages/server/resources/internals/image-storage.md +43 -0
  279. package/packages/server/resources/internals/observability-storage.md +23 -0
  280. package/packages/server/resources/manual/01-getting-started.md +104 -0
  281. package/packages/server/resources/manual/02-chat.md +285 -0
  282. package/packages/server/resources/manual/03-sessions.md +48 -0
  283. package/packages/server/resources/manual/04-slash-commands-favorites.md +152 -0
  284. package/packages/server/resources/manual/05-projects.md +76 -0
  285. package/packages/server/resources/manual/06-file-explorer-editor.md +90 -0
  286. package/packages/server/resources/manual/07-git.md +94 -0
  287. package/packages/server/resources/manual/08-terminal.md +59 -0
  288. package/packages/server/resources/manual/09-queue-runner.md +262 -0
  289. package/packages/server/resources/manual/10-project-board.md +194 -0
  290. package/packages/server/resources/manual/11-bmad-method-integration.md +130 -0
  291. package/packages/server/resources/manual/12-harness-workbench.md +256 -0
  292. package/packages/server/resources/manual/13-settings.md +241 -0
  293. package/packages/server/resources/manual/14-keyboard-shortcuts.md +68 -0
  294. package/packages/server/resources/manual/15-environment-variables.md +28 -0
  295. package/packages/server/resources/manual/16-troubleshooting.md +110 -0
  296. package/packages/server/resources/manual/INDEX.md +60 -0
  297. package/packages/shared/dist/index.d.ts +7 -0
  298. package/packages/shared/dist/index.d.ts.map +1 -1
  299. package/packages/shared/dist/index.js +14 -0
  300. package/packages/shared/dist/index.js.map +1 -1
  301. package/packages/shared/dist/types/bmadCoreConfig.d.ts +71 -0
  302. package/packages/shared/dist/types/bmadCoreConfig.d.ts.map +1 -0
  303. package/packages/shared/dist/types/bmadCoreConfig.js +30 -0
  304. package/packages/shared/dist/types/bmadCoreConfig.js.map +1 -0
  305. package/packages/shared/dist/types/bmadStatus.d.ts +10 -0
  306. package/packages/shared/dist/types/bmadStatus.d.ts.map +1 -1
  307. package/packages/shared/dist/types/bmadStatus.js.map +1 -1
  308. package/packages/shared/dist/types/board.d.ts +6 -0
  309. package/packages/shared/dist/types/board.d.ts.map +1 -1
  310. package/packages/shared/dist/types/command.d.ts +3 -3
  311. package/packages/shared/dist/types/command.d.ts.map +1 -1
  312. package/packages/shared/dist/types/contextBuilder.d.ts +102 -0
  313. package/packages/shared/dist/types/contextBuilder.d.ts.map +1 -0
  314. package/packages/shared/dist/types/contextBuilder.js +55 -0
  315. package/packages/shared/dist/types/contextBuilder.js.map +1 -0
  316. package/packages/shared/dist/types/harness.d.ts +1211 -0
  317. package/packages/shared/dist/types/harness.d.ts.map +1 -0
  318. package/packages/shared/dist/types/harness.js +107 -0
  319. package/packages/shared/dist/types/harness.js.map +1 -0
  320. package/packages/shared/dist/types/harnessBundle.d.ts +205 -0
  321. package/packages/shared/dist/types/harnessBundle.d.ts.map +1 -0
  322. package/packages/shared/dist/types/harnessBundle.js +18 -0
  323. package/packages/shared/dist/types/harnessBundle.js.map +1 -0
  324. package/packages/shared/dist/types/marketplace.d.ts +83 -0
  325. package/packages/shared/dist/types/marketplace.d.ts.map +1 -0
  326. package/packages/shared/dist/types/marketplace.js +18 -0
  327. package/packages/shared/dist/types/marketplace.js.map +1 -0
  328. package/packages/shared/dist/types/observability.d.ts +148 -0
  329. package/packages/shared/dist/types/observability.d.ts.map +1 -0
  330. package/packages/shared/dist/types/observability.js +24 -0
  331. package/packages/shared/dist/types/observability.js.map +1 -0
  332. package/packages/shared/dist/types/preferences.d.ts +4 -0
  333. package/packages/shared/dist/types/preferences.d.ts.map +1 -1
  334. package/packages/shared/dist/types/preferences.js.map +1 -1
  335. package/packages/shared/dist/types/queue.d.ts +9 -0
  336. package/packages/shared/dist/types/queue.d.ts.map +1 -1
  337. package/packages/shared/dist/types/sdk.d.ts +1 -1
  338. package/packages/shared/dist/types/sdk.d.ts.map +1 -1
  339. package/packages/shared/dist/types/sdk.js +1 -1
  340. package/packages/shared/dist/types/sdk.js.map +1 -1
  341. package/packages/shared/dist/types/websocket.d.ts +10 -0
  342. package/packages/shared/dist/types/websocket.d.ts.map +1 -1
  343. package/packages/shared/dist/utils/markdownSections.d.ts +50 -0
  344. package/packages/shared/dist/utils/markdownSections.d.ts.map +1 -0
  345. package/packages/shared/dist/utils/markdownSections.js +111 -0
  346. package/packages/shared/dist/utils/markdownSections.js.map +1 -0
  347. package/packages/shared/dist/utils/queueParser.d.ts.map +1 -1
  348. package/packages/shared/dist/utils/queueParser.js +104 -0
  349. package/packages/shared/dist/utils/queueParser.js.map +1 -1
  350. package/scripts/build-manual-shards.mjs +100 -0
  351. package/packages/client/dist/assets/index-6jREnVYd.js +0 -2
  352. package/packages/client/dist/assets/index-BFF0iqyW.css +0 -32
  353. 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"}