hammoc 1.7.1 → 1.8.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 +8 -4
- package/package.json +1 -1
- package/packages/client/dist/assets/{agentExampleHighlight-Du5I7v6o.js → agentExampleHighlight-B2IJxYzN.js} +1 -1
- package/packages/client/dist/assets/{commandTokenHighlight-Dfo51Aof.js → commandTokenHighlight-BdGXkDR5.js} +1 -1
- package/packages/client/dist/assets/{index-4l4YwxEs.js → index-BFWGN51V.js} +1 -1
- package/packages/client/dist/assets/index-BX7y_Qt3.css +32 -0
- package/packages/client/dist/assets/{index-CqAHxPRw.js → index-lmx-m-iP.js} +587 -499
- package/packages/client/dist/assets/{snippetTokenHighlight-26DWljQA.js → snippetTokenHighlight-B9bH9Npx.js} +1 -1
- 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 +25 -1
- package/packages/server/dist/app.js.map +1 -1
- package/packages/server/dist/config/index.d.ts +10 -0
- package/packages/server/dist/config/index.d.ts.map +1 -1
- package/packages/server/dist/config/index.js +10 -0
- package/packages/server/dist/config/index.js.map +1 -1
- package/packages/server/dist/controllers/accountController.d.ts +19 -0
- package/packages/server/dist/controllers/accountController.d.ts.map +1 -0
- package/packages/server/dist/controllers/accountController.js +92 -0
- package/packages/server/dist/controllers/accountController.js.map +1 -0
- package/packages/server/dist/controllers/gitController.d.ts.map +1 -1
- package/packages/server/dist/controllers/gitController.js +37 -0
- package/packages/server/dist/controllers/gitController.js.map +1 -1
- package/packages/server/dist/controllers/projectController.d.ts +1 -1
- package/packages/server/dist/controllers/projectController.d.ts.map +1 -1
- package/packages/server/dist/controllers/projectController.js +20 -4
- package/packages/server/dist/controllers/projectController.js.map +1 -1
- package/packages/server/dist/controllers/serverController.d.ts.map +1 -1
- package/packages/server/dist/controllers/serverController.js +8 -1
- package/packages/server/dist/controllers/serverController.js.map +1 -1
- package/packages/server/dist/controllers/sessionController.d.ts.map +1 -1
- package/packages/server/dist/controllers/sessionController.js +3 -1
- package/packages/server/dist/controllers/sessionController.js.map +1 -1
- package/packages/server/dist/handlers/websocket.d.ts +4 -0
- package/packages/server/dist/handlers/websocket.d.ts.map +1 -1
- package/packages/server/dist/handlers/websocket.js +146 -8
- package/packages/server/dist/handlers/websocket.js.map +1 -1
- package/packages/server/dist/index.js +8 -0
- package/packages/server/dist/index.js.map +1 -1
- package/packages/server/dist/locales/en/server.json +2 -0
- package/packages/server/dist/locales/es/server.json +2 -0
- package/packages/server/dist/locales/ja/server.json +2 -0
- package/packages/server/dist/locales/ko/server.json +2 -0
- package/packages/server/dist/locales/pt/server.json +2 -0
- package/packages/server/dist/locales/zh-CN/server.json +2 -0
- package/packages/server/dist/middleware/session.d.ts.map +1 -1
- package/packages/server/dist/middleware/session.js +7 -5
- package/packages/server/dist/middleware/session.js.map +1 -1
- package/packages/server/dist/routes/accounts.d.ts +13 -0
- package/packages/server/dist/routes/accounts.d.ts.map +1 -0
- package/packages/server/dist/routes/accounts.js +18 -0
- package/packages/server/dist/routes/accounts.js.map +1 -0
- package/packages/server/dist/routes/config.d.ts +3 -0
- package/packages/server/dist/routes/config.d.ts.map +1 -0
- package/packages/server/dist/routes/config.js +59 -0
- package/packages/server/dist/routes/config.js.map +1 -0
- package/packages/server/dist/routes/preferences.d.ts.map +1 -1
- package/packages/server/dist/routes/preferences.js +22 -4
- package/packages/server/dist/routes/preferences.js.map +1 -1
- package/packages/server/dist/services/accountInfoService.js +6 -6
- package/packages/server/dist/services/accountInfoService.js.map +1 -1
- package/packages/server/dist/services/accountStorageService.d.ts +119 -0
- package/packages/server/dist/services/accountStorageService.d.ts.map +1 -0
- package/packages/server/dist/services/accountStorageService.js +285 -0
- package/packages/server/dist/services/accountStorageService.js.map +1 -0
- package/packages/server/dist/services/chatService.d.ts.map +1 -1
- package/packages/server/dist/services/chatService.js +4 -8
- package/packages/server/dist/services/chatService.js.map +1 -1
- package/packages/server/dist/services/claudeLoginService.d.ts +124 -0
- package/packages/server/dist/services/claudeLoginService.d.ts.map +1 -0
- package/packages/server/dist/services/claudeLoginService.js +417 -0
- package/packages/server/dist/services/claudeLoginService.js.map +1 -0
- package/packages/server/dist/services/cliChatEngine.d.ts.map +1 -1
- package/packages/server/dist/services/cliChatEngine.js +85 -33
- package/packages/server/dist/services/cliChatEngine.js.map +1 -1
- package/packages/server/dist/services/cliGridCards.d.ts +30 -10
- package/packages/server/dist/services/cliGridCards.d.ts.map +1 -1
- package/packages/server/dist/services/cliGridCards.js +80 -34
- package/packages/server/dist/services/cliGridCards.js.map +1 -1
- package/packages/server/dist/services/cliModalDetect.d.ts +15 -7
- package/packages/server/dist/services/cliModalDetect.d.ts.map +1 -1
- package/packages/server/dist/services/cliModalDetect.js +16 -12
- package/packages/server/dist/services/cliModalDetect.js.map +1 -1
- package/packages/server/dist/services/cliScreenModel.d.ts +3 -2
- package/packages/server/dist/services/cliScreenModel.d.ts.map +1 -1
- package/packages/server/dist/services/cliScreenModel.js +2 -0
- package/packages/server/dist/services/cliScreenModel.js.map +1 -1
- package/packages/server/dist/services/cliService.d.ts.map +1 -1
- package/packages/server/dist/services/cliService.js +2 -7
- package/packages/server/dist/services/cliService.js.map +1 -1
- package/packages/server/dist/services/cliSessionPool.d.ts +13 -1
- package/packages/server/dist/services/cliSessionPool.d.ts.map +1 -1
- package/packages/server/dist/services/cliSessionPool.js +14 -4
- package/packages/server/dist/services/cliSessionPool.js.map +1 -1
- package/packages/server/dist/services/dashboardService.d.ts.map +1 -1
- package/packages/server/dist/services/dashboardService.js +6 -1
- package/packages/server/dist/services/dashboardService.js.map +1 -1
- package/packages/server/dist/services/gitService.d.ts +2 -0
- package/packages/server/dist/services/gitService.d.ts.map +1 -1
- package/packages/server/dist/services/gitService.js +41 -3
- package/packages/server/dist/services/gitService.js.map +1 -1
- package/packages/server/dist/services/preferencesService.d.ts +1 -0
- package/packages/server/dist/services/preferencesService.d.ts.map +1 -1
- package/packages/server/dist/services/preferencesService.js +25 -2
- package/packages/server/dist/services/preferencesService.js.map +1 -1
- package/packages/server/dist/services/queueService.d.ts +1 -0
- package/packages/server/dist/services/queueService.d.ts.map +1 -1
- package/packages/server/dist/services/queueService.js +14 -3
- package/packages/server/dist/services/queueService.js.map +1 -1
- package/packages/server/dist/services/rateLimitProbeService.d.ts +7 -0
- package/packages/server/dist/services/rateLimitProbeService.d.ts.map +1 -1
- package/packages/server/dist/services/rateLimitProbeService.js +10 -0
- package/packages/server/dist/services/rateLimitProbeService.js.map +1 -1
- package/packages/server/dist/services/workspaceContext.d.ts +31 -4
- package/packages/server/dist/services/workspaceContext.d.ts.map +1 -1
- package/packages/server/dist/services/workspaceContext.js +110 -10
- package/packages/server/dist/services/workspaceContext.js.map +1 -1
- package/packages/server/dist/snippets/promote-to-story +86 -9
- package/packages/server/dist/utils/cliDebugLog.d.ts +6 -5
- package/packages/server/dist/utils/cliDebugLog.d.ts.map +1 -1
- package/packages/server/dist/utils/cliDebugLog.js +11 -8
- package/packages/server/dist/utils/cliDebugLog.js.map +1 -1
- package/packages/server/dist/utils/logger.d.ts +7 -0
- package/packages/server/dist/utils/logger.d.ts.map +1 -1
- package/packages/server/dist/utils/logger.js +13 -1
- package/packages/server/dist/utils/logger.js.map +1 -1
- package/packages/server/resources/bmad-method/4.44.3/LICENSE +30 -0
- package/packages/server/resources/manual/01-getting-started.md +11 -5
- package/packages/server/resources/manual/02-chat.md +2 -2
- package/packages/server/resources/manual/03-sessions.md +2 -0
- package/packages/server/resources/manual/04-slash-commands-favorites.md +1 -0
- package/packages/server/resources/manual/05-projects.md +2 -2
- package/packages/server/resources/manual/07-git.md +23 -2
- package/packages/server/resources/manual/08-terminal.md +24 -1
- package/packages/server/resources/manual/11-bmad-method-integration.md +1 -0
- package/packages/server/resources/manual/13-settings.md +52 -20
- package/packages/server/resources/manual/16-troubleshooting.md +4 -7
- package/packages/shared/dist/index.d.ts +2 -1
- package/packages/shared/dist/index.d.ts.map +1 -1
- package/packages/shared/dist/index.js +2 -0
- package/packages/shared/dist/index.js.map +1 -1
- package/packages/shared/dist/types/accounts.d.ts +104 -0
- package/packages/shared/dist/types/accounts.d.ts.map +1 -0
- package/packages/shared/dist/types/accounts.js +14 -0
- package/packages/shared/dist/types/accounts.js.map +1 -0
- package/packages/shared/dist/types/dashboard.d.ts +1 -0
- package/packages/shared/dist/types/dashboard.d.ts.map +1 -1
- package/packages/shared/dist/types/git.d.ts +12 -0
- package/packages/shared/dist/types/git.d.ts.map +1 -1
- package/packages/shared/dist/types/git.js +10 -0
- package/packages/shared/dist/types/git.js.map +1 -1
- package/packages/shared/dist/types/preferences.d.ts +40 -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/sdk.d.ts +5 -1
- package/packages/shared/dist/types/sdk.d.ts.map +1 -1
- package/packages/shared/dist/types/sdk.js.map +1 -1
- package/packages/shared/dist/types/session.d.ts +1 -0
- package/packages/shared/dist/types/session.d.ts.map +1 -1
- package/packages/shared/dist/types/session.js.map +1 -1
- package/packages/shared/dist/types/websocket.d.ts +28 -1
- package/packages/shared/dist/types/websocket.d.ts.map +1 -1
- package/packages/client/dist/assets/index-CVy582lU.css +0 -32
- package/packages/server/dist/snippets/promote-issue +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimitProbeService.js","sourceRoot":"","sources":["../../src/services/rateLimitProbeService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAE3C,MAAM,aAAa,GAAG,2CAA2C,CAAC;AAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;AACjF,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,wBAAwB;AAC1D,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,2BAA2B;AAC7D,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,wBAAwB;AAC5D,wFAAwF;AACxF,MAAM,0BAA0B,GAAG,OAAO,CAAC,CAAC,6CAA6C;AACzF,MAAM,6BAA6B,GAAG,GAAG,CAAC,CAAC,6DAA6D;AAExG,MAAM,qBAAqB;IACjB,WAAW,GAAkB,IAAI,CAAC;IAClC,aAAa,GAAG,CAAC,CAAC;IAClB,eAAe,GAAiC,IAAI,CAAC;IACrD,WAAW,GAAG,CAAC,CAAC,CAAC,gFAAgF;IACjG,SAAS,GAA0C,IAAI,CAAC;IACxD,WAAW,GAAmD,IAAI,CAAC;IACnE,iBAAiB,GAA6C,IAAI,CAAC;IACnE,UAAU,GAAG,IAAI,CAAC;IAClB,mBAAmB,GAAG,CAAC,CAAC;IACxB,eAAe,GAAkB,IAAI,CAAC;IACtC,oBAAoB,GAAG,CAAC,CAAC;IAEjC;;;OAGG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,kBAAkB,EAAE,CAAC;YACxE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACrC,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE,gBAAgB,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC;YAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;gBACzB,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC3D,OAAO,KAAK,CAAC;YACf,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;gBAC1C,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,eAAe,EAAE,UAAU,KAAK,EAAE;oBAClC,gBAAgB,EAAE,kBAAkB;oBACpC,YAAY,EAAE,YAAY;iBAC3B;gBACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;oBACvB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;oBAC9B,GAAG,CAAC,KAAK,CAAC,6DAA6D,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC1F,sEAAsE;oBACtE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnC,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC5B,GAAG,CAAC,KAAK,CAAC,+CAA+C,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBACtF,iDAAiD;oBACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;oBAC9B,GAAG,CAAC,KAAK,CAAC,8BAA8B,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC3D,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAChD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,EAClD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CACnD,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;YAC9B,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,YAAY,CACV,SAAgD,EAChD,eAAiD;QAEjD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,eAAe;YAAE,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;QAC9D,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,kBAAkB;QAE9C,GAAG,CAAC,KAAK,CAAC,8CAA8C,EAAE,gBAAgB,CAAC,CAAC;QAE5E,wBAAwB;QACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,mBAAmB;QACjB,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/B,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;QACvF,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,mEAAmE;QAClG,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,CAAC,CAAC,QAAQ,EAAE,WAAW,IAAI,CAAC,EAC5B,CAAC,CAAC,QAAQ,EAAE,WAAW,IAAI,CAAC,EAC5B,CAAC,CAAC,YAAY,EAAE,WAAW,IAAI,CAAC,EAChC,CAAC,CAAC,cAAc,EAAE,WAAW,IAAI,CAAC,CACnC,CAAC;QACF,OAAO,OAAO,IAAI,6BAA6B,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,IAAI,IAAI,CAAC,mBAAmB,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAChD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,aAAa,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE;YAC/D,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,OAAgB,EAAE,KAAc;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,KAAK,IAAI,IAAI,CAAC;QAErC,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,0BAA0B,EACjC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EACjC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAG,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAEO,QAAQ;QACd,6EAA6E;QAC7E,iEAAiE;QACjE,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,EACzD,cAAc,CACf,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACtD,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;gBACxB,GAAG,CAAC,KAAK,CAAC,yCAAyC,EACjD,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3B,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAc,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAAa;QAEtC,MAAM,IAAI,GAAG,IAKZ,CAAC;QAEF,uFAAuF;QACvF,gFAAgF;QAChF,MAAM,QAAQ,GAAG,CAAC,CAAY,EAA8D,EAAE;YAC5F,IAAI,CAAC,CAAC;gBAAE,OAAO,SAAS,CAAC;YACzB,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;YACjC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACjF,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEvD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAE5E,MAAM,MAAM,GAA0B,EAAE,CAAC;QACzC,IAAI,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzC,IAAI,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzC,IAAI,YAAY;YAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;QACrD,IAAI,cAAc;YAAE,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;QAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,QAAQ,EAAE,WAAW,IAAI,CAAC,EAC1B,QAAQ,EAAE,WAAW,IAAI,CAAC,EAC1B,YAAY,EAAE,WAAW,IAAI,CAAC,EAC9B,cAAc,EAAE,WAAW,IAAI,CAAC,CACjC,CAAC;QACF,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,SAAS,CAAC,WAAmB;QACnC,IAAI,WAAW,IAAI,GAAG;YAAE,OAAO,UAAU,CAAC;QAC1C,IAAI,WAAW,IAAI,GAAG;YAAE,OAAO,SAAS,CAAC;QACzC,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"rateLimitProbeService.js","sourceRoot":"","sources":["../../src/services/rateLimitProbeService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Frozen copy of the original DEFAULT_WORKSPACE_TEMPLATE before the section split.
|
|
3
|
+
* Used by the migration logic (Task 7) to detect legacy customSystemPrompt values.
|
|
4
4
|
*/
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const LEGACY_DEFAULT_TEMPLATE: string;
|
|
6
|
+
/** Common section — Hammoc identity, code-reference conventions, feature pointers, manual/internals paths */
|
|
7
|
+
export declare const SECTION_COMMON: string;
|
|
8
|
+
/** SDK engine section — Agent SDK runtime characteristics */
|
|
9
|
+
export declare const SECTION_SDK: string;
|
|
10
|
+
/** CLI engine section — interactive binary runtime characteristics */
|
|
11
|
+
export declare const SECTION_CLI: string;
|
|
12
|
+
/** BMad project section — included only when .bmad-core exists */
|
|
13
|
+
export declare const SECTION_BMAD: string;
|
|
14
|
+
/**
|
|
15
|
+
* Assemble the full system prompt from fixed sections + optional user area.
|
|
16
|
+
*
|
|
17
|
+
* @param engineType - Which chat engine is active
|
|
18
|
+
* @param isBmadProject - Whether .bmad-core exists in the project
|
|
19
|
+
* @param userArea - User's custom additions (stored as customSystemPrompt preference)
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildSystemPrompt(engineType: 'sdk' | 'cli', isBmadProject: boolean, userArea?: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Migrate a legacy customSystemPrompt (full-template-replacement semantics) to
|
|
24
|
+
* user-area-only semantics. Returns the transformed preferences fields, or null
|
|
25
|
+
* if no migration is needed.
|
|
26
|
+
*/
|
|
27
|
+
export declare function migrateSystemPrompt(customSystemPrompt: string | undefined): {
|
|
28
|
+
customSystemPrompt: string | undefined;
|
|
29
|
+
_systemPromptMigrated?: boolean;
|
|
30
|
+
outcome: 'none' | 'exact-match' | 'prefix-match' | 'no-match';
|
|
31
|
+
};
|
|
6
32
|
/** Available template variables and their descriptions */
|
|
7
33
|
export declare const TEMPLATE_VARIABLES: readonly [{
|
|
8
34
|
readonly name: "gitBranch";
|
|
@@ -19,6 +45,7 @@ export declare const TEMPLATE_VARIABLES: readonly [{
|
|
|
19
45
|
}];
|
|
20
46
|
/**
|
|
21
47
|
* Resolve template variables like {gitBranch} using the project CWD.
|
|
48
|
+
* @param displayName - User's preferred form of address (from preferences). Empty/absent = no name.
|
|
22
49
|
*/
|
|
23
|
-
export declare function resolveTemplateVariables(template: string, cwd: string): string;
|
|
50
|
+
export declare function resolveTemplateVariables(template: string, cwd: string, displayName?: string): string;
|
|
24
51
|
//# sourceMappingURL=workspaceContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceContext.d.ts","sourceRoot":"","sources":["../../src/services/workspaceContext.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"workspaceContext.d.ts","sourceRoot":"","sources":["../../src/services/workspaceContext.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAqCxB,CAAC;AAEb,6GAA6G;AAC7G,eAAO,MAAM,cAAc,QAoCf,CAAC;AAEb,6DAA6D;AAC7D,eAAO,MAAM,WAAW,QAIZ,CAAC;AAEb,sEAAsE;AACtE,eAAO,MAAM,WAAW,QAIZ,CAAC;AAEb,kEAAkE;AAClE,eAAO,MAAM,YAAY,QAIb,CAAC;AAEb;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,KAAK,GAAG,KAAK,EACzB,aAAa,EAAE,OAAO,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAYR;AAGD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,MAAM,GAAG,SAAS,GACrC;IAAE,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,CAAA;CAAE,CAY5I;AAED,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAKrB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAmDpG"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Workspace Context — the Hammoc system-prompt augmentation shared by BOTH chat engines.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* The system prompt is assembled from fixed sections (common, engine-specific, project-type)
|
|
5
|
+
* plus an optional user-editable area. `buildSystemPrompt()` is the single assembly point.
|
|
6
|
+
*
|
|
7
|
+
* SDK mode (`chatService`) appends the assembled prompt to the `claude_code` system-prompt
|
|
8
|
+
* preset; CLI mode (`cliChatEngine`) delivers the same assembled prompt via `--append-system-prompt`.
|
|
9
9
|
*
|
|
10
10
|
* Extracted out of `chatService` on purpose: that module pulls in the Agent SDK, so anything that
|
|
11
11
|
* only needs the template (the CLI engine, the preferences/project routes that surface the default)
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
import os from 'os';
|
|
15
15
|
import { execSync } from 'child_process';
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* Frozen copy of the original DEFAULT_WORKSPACE_TEMPLATE before the section split.
|
|
18
|
+
* Used by the migration logic (Task 7) to detect legacy customSystemPrompt values.
|
|
19
19
|
*/
|
|
20
|
-
export const
|
|
20
|
+
export const LEGACY_DEFAULT_TEMPLATE = [
|
|
21
21
|
'',
|
|
22
22
|
'# Hammoc Context',
|
|
23
23
|
'',
|
|
@@ -55,6 +55,98 @@ export const DEFAULT_WORKSPACE_TEMPLATE = [
|
|
|
55
55
|
' {homeDir}/.hammoc/docs/internals/INDEX.md',
|
|
56
56
|
'Read individual files only when the user request requires the underlying mechanism. Do not pre-load.',
|
|
57
57
|
].join('\n');
|
|
58
|
+
/** Common section — Hammoc identity, code-reference conventions, feature pointers, manual/internals paths */
|
|
59
|
+
export const SECTION_COMMON = [
|
|
60
|
+
'',
|
|
61
|
+
'# Hammoc Context',
|
|
62
|
+
'',
|
|
63
|
+
'You are running inside Hammoc, a web-based IDE for AI-driven development workflows. Hammoc is built on Claude Code, fully responsive (the user may instruct from a phone with very short messages), and delegates implementation work to you while the user reviews via the UI.',
|
|
64
|
+
'',
|
|
65
|
+
'## Code References in Text',
|
|
66
|
+
'IMPORTANT: When referencing files or code locations, use markdown link syntax to make them clickable:',
|
|
67
|
+
'- For files: [filename.ts](src/filename.ts)',
|
|
68
|
+
'- For specific lines: [filename.ts:42](src/filename.ts#L42)',
|
|
69
|
+
'- For a range of lines: [filename.ts:42-51](src/filename.ts#L42-L51)',
|
|
70
|
+
'- For folders: [src/utils/](src/utils/)',
|
|
71
|
+
'Unless explicitly asked for by the user, DO NOT USE backticks ` or HTML tags like code for file references - always use markdown [text](link) format.',
|
|
72
|
+
"The URL links should be relative paths from the root of the user's workspace.",
|
|
73
|
+
'',
|
|
74
|
+
'## Hammoc-Specific Features the User May Invoke',
|
|
75
|
+
'When the user mentions any of these Hammoc concepts and you are unsure how the feature behaves, read the matching manual chapter (see Manual Reference below) before guessing:',
|
|
76
|
+
'- **Snippets** (`%name`) — reusable prompt templates with arguments. Files in <project-root>/.hammoc/snippets/ and {homeDir}/.hammoc/snippets/',
|
|
77
|
+
'- **Queue Runner** — batch script of prompts with `@`-prefixed commands (@new, @save, @load, @pause, @model, @delay, @pauseword, @loop/@end, @(/@), # comments)',
|
|
78
|
+
'- **Project Board** — Kanban with Bug/Improvement issues, severity Low/Medium/High/Critical, status workflow Open → Draft → Approved → In Progress → Blocked → Review → Done → Closed',
|
|
79
|
+
'- **Permission Modes** — Plan / Ask (default) / Auto / Bypass, per-project overridable',
|
|
80
|
+
'- **Sessions** — fork, rewind, summarize & continue, conversation branching',
|
|
81
|
+
'',
|
|
82
|
+
'## Manual Reference',
|
|
83
|
+
'The full Hammoc user manual is sharded by chapter and synced to:',
|
|
84
|
+
' {homeDir}/.hammoc/docs/manual/',
|
|
85
|
+
'Always start by reading the index — it maps each chapter to its trigger keywords and tags chapters as [agent] (worth reading) or [user-setup] (skip):',
|
|
86
|
+
' {homeDir}/.hammoc/docs/manual/INDEX.md',
|
|
87
|
+
'Read only the chapters you actually need. Do not load the full manual at once. The Read tool does not expand `~` so always use the absolute path above.',
|
|
88
|
+
'',
|
|
89
|
+
'## Internals Reference',
|
|
90
|
+
'Hammoc internal mechanisms that the user does not need to see but the agent may need to read or correlate (e.g. on-disk location of attached images) live separately at:',
|
|
91
|
+
' {homeDir}/.hammoc/docs/internals/',
|
|
92
|
+
'Index:',
|
|
93
|
+
' {homeDir}/.hammoc/docs/internals/INDEX.md',
|
|
94
|
+
'Read individual files only when the user request requires the underlying mechanism. Do not pre-load.',
|
|
95
|
+
].join('\n');
|
|
96
|
+
/** SDK engine section — Agent SDK runtime characteristics */
|
|
97
|
+
export const SECTION_SDK = [
|
|
98
|
+
'',
|
|
99
|
+
'## Engine: SDK',
|
|
100
|
+
'You are connected via the Hammoc SDK engine (Agent SDK `query()` integration). The system prompt is delivered through the `claude_code` preset with an `append` block. Extended thinking blocks are visible in tool results. Model selection is preset-based (user chooses in settings; the SDK receives the resolved model ID).',
|
|
101
|
+
].join('\n');
|
|
102
|
+
/** CLI engine section — interactive binary runtime characteristics */
|
|
103
|
+
export const SECTION_CLI = [
|
|
104
|
+
'',
|
|
105
|
+
'## Engine: CLI',
|
|
106
|
+
'You are connected via the Hammoc CLI engine (interactive `claude` binary running in a PTY). The system prompt is delivered via `--append-system-prompt`. Thinking output appears as summaries controlled by `--settings { showThinkingSummaries }`. Progress indicators and TUI chrome are managed by the PTY layer.',
|
|
107
|
+
].join('\n');
|
|
108
|
+
/** BMad project section — included only when .bmad-core exists */
|
|
109
|
+
export const SECTION_BMAD = [
|
|
110
|
+
'',
|
|
111
|
+
'## BMad Project',
|
|
112
|
+
'This project uses BMAD-METHOD V4 — an agile workflow with agents (SM, PM, Architect, Dev, QA, PO, etc.). The `.bmad-core` directory holds the methodology files.',
|
|
113
|
+
].join('\n');
|
|
114
|
+
/**
|
|
115
|
+
* Assemble the full system prompt from fixed sections + optional user area.
|
|
116
|
+
*
|
|
117
|
+
* @param engineType - Which chat engine is active
|
|
118
|
+
* @param isBmadProject - Whether .bmad-core exists in the project
|
|
119
|
+
* @param userArea - User's custom additions (stored as customSystemPrompt preference)
|
|
120
|
+
*/
|
|
121
|
+
export function buildSystemPrompt(engineType, isBmadProject, userArea) {
|
|
122
|
+
const parts = [SECTION_COMMON];
|
|
123
|
+
parts.push(engineType === 'sdk' ? SECTION_SDK : SECTION_CLI);
|
|
124
|
+
if (isBmadProject)
|
|
125
|
+
parts.push(SECTION_BMAD);
|
|
126
|
+
let result = parts.join('\n');
|
|
127
|
+
if (userArea?.trim()) {
|
|
128
|
+
result += '\n\n# Custom Instructions\n\n' + userArea;
|
|
129
|
+
}
|
|
130
|
+
return result;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Migrate a legacy customSystemPrompt (full-template-replacement semantics) to
|
|
134
|
+
* user-area-only semantics. Returns the transformed preferences fields, or null
|
|
135
|
+
* if no migration is needed.
|
|
136
|
+
*/
|
|
137
|
+
export function migrateSystemPrompt(customSystemPrompt) {
|
|
138
|
+
if (customSystemPrompt === undefined) {
|
|
139
|
+
return { customSystemPrompt: undefined, outcome: 'none' };
|
|
140
|
+
}
|
|
141
|
+
if (customSystemPrompt === LEGACY_DEFAULT_TEMPLATE) {
|
|
142
|
+
return { customSystemPrompt: undefined, outcome: 'exact-match' };
|
|
143
|
+
}
|
|
144
|
+
if (customSystemPrompt.startsWith(LEGACY_DEFAULT_TEMPLATE)) {
|
|
145
|
+
const trailing = customSystemPrompt.slice(LEGACY_DEFAULT_TEMPLATE.length).replace(/^\n+/, '');
|
|
146
|
+
return { customSystemPrompt: trailing || undefined, outcome: 'prefix-match' };
|
|
147
|
+
}
|
|
148
|
+
return { customSystemPrompt, _systemPromptMigrated: true, outcome: 'no-match' };
|
|
149
|
+
}
|
|
58
150
|
/** Available template variables and their descriptions */
|
|
59
151
|
export const TEMPLATE_VARIABLES = [
|
|
60
152
|
{ name: 'gitBranch', description: 'Current git branch name' },
|
|
@@ -64,8 +156,9 @@ export const TEMPLATE_VARIABLES = [
|
|
|
64
156
|
];
|
|
65
157
|
/**
|
|
66
158
|
* Resolve template variables like {gitBranch} using the project CWD.
|
|
159
|
+
* @param displayName - User's preferred form of address (from preferences). Empty/absent = no name.
|
|
67
160
|
*/
|
|
68
|
-
export function resolveTemplateVariables(template, cwd) {
|
|
161
|
+
export function resolveTemplateVariables(template, cwd, displayName) {
|
|
69
162
|
const vars = {};
|
|
70
163
|
// Home directory is OS-level and always resolvable, independent of git state.
|
|
71
164
|
// The agent needs the absolute path to read ~/.hammoc/docs/manual/INDEX.md
|
|
@@ -102,8 +195,15 @@ export function resolveTemplateVariables(template, cwd) {
|
|
|
102
195
|
vars.gitMainBranch = 'main';
|
|
103
196
|
vars.gitStatus = '(not a git repo)';
|
|
104
197
|
}
|
|
105
|
-
|
|
198
|
+
let result = template.replace(/\{(\w+)\}/g, (match, varName) => {
|
|
106
199
|
return vars[varName] ?? match;
|
|
107
200
|
});
|
|
201
|
+
if (displayName) {
|
|
202
|
+
result += `\n\nAddress the user as "${displayName}". Do not guess or infer a different name from system context (email, account name, etc.).`;
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
result += '\n\nDo not guess or infer the user\'s name from system context (email, account name, etc.). Converse naturally without a specific form of address.';
|
|
206
|
+
}
|
|
207
|
+
return result;
|
|
108
208
|
}
|
|
109
209
|
//# sourceMappingURL=workspaceContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceContext.js","sourceRoot":"","sources":["../../src/services/workspaceContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"workspaceContext.js","sourceRoot":"","sources":["../../src/services/workspaceContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,86 @@
|
|
|
1
|
-
/BMad:agents:pm
|
|
2
|
-
---
|
|
3
|
-
*create-brownfield-story
|
|
4
|
-
|
|
5
|
-
Read the issue file {arg1} and use it as context.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
/BMad:agents:pm
|
|
2
|
+
---
|
|
3
|
+
*create-brownfield-story
|
|
4
|
+
|
|
5
|
+
Read the issue file {arg1} and use it as context.
|
|
6
|
+
|
|
7
|
+
Write the story document using this template structure:
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# Story: {title derived from issue}
|
|
11
|
+
|
|
12
|
+
## Status
|
|
13
|
+
|
|
14
|
+
Draft
|
|
15
|
+
|
|
16
|
+
## Story
|
|
17
|
+
|
|
18
|
+
**As a** {user role},
|
|
19
|
+
**I want** {desired feature/change},
|
|
20
|
+
**So that** {benefit/value}.
|
|
21
|
+
|
|
22
|
+
## Story Context
|
|
23
|
+
|
|
24
|
+
| Item | Detail |
|
|
25
|
+
|------|--------|
|
|
26
|
+
| **Integrates with** | {existing modules/services affected} |
|
|
27
|
+
| **Technology** | {tech stack involved} |
|
|
28
|
+
| **Follows pattern** | {existing patterns to follow} |
|
|
29
|
+
| **Touch points** | {data flow: module → module → module} |
|
|
30
|
+
|
|
31
|
+
## Acceptance Criteria
|
|
32
|
+
|
|
33
|
+
### {Requirement Group 1}
|
|
34
|
+
|
|
35
|
+
1. {Specific, testable criterion}
|
|
36
|
+
2. ...
|
|
37
|
+
|
|
38
|
+
### {Requirement Group 2}
|
|
39
|
+
|
|
40
|
+
3. ...
|
|
41
|
+
|
|
42
|
+
## Tasks / Subtasks
|
|
43
|
+
|
|
44
|
+
- [ ] Task 1: {title} (AC: {linked AC numbers})
|
|
45
|
+
- {implementation detail with file paths}
|
|
46
|
+
|
|
47
|
+
## Dev Notes
|
|
48
|
+
|
|
49
|
+
### Relevant Source Tree
|
|
50
|
+
|
|
51
|
+
{ASCII tree of affected files}
|
|
52
|
+
|
|
53
|
+
### {Implementation Section Title}
|
|
54
|
+
|
|
55
|
+
{Key constraints, current code snippets, migration notes}
|
|
56
|
+
|
|
57
|
+
## Risk Assessment
|
|
58
|
+
|
|
59
|
+
| Item | Detail |
|
|
60
|
+
|------|--------|
|
|
61
|
+
| **Primary risk** | {what could go wrong} |
|
|
62
|
+
| **Mitigation** | {how to prevent it} |
|
|
63
|
+
| **Rollback** | {how to undo if needed} |
|
|
64
|
+
|
|
65
|
+
## Definition of Done
|
|
66
|
+
|
|
67
|
+
- [ ] {criterion matching each AC group}
|
|
68
|
+
- [ ] All tests pass
|
|
69
|
+
- [ ] No regression in existing functionality
|
|
70
|
+
|
|
71
|
+
## File List
|
|
72
|
+
|
|
73
|
+
| File | Action | Description |
|
|
74
|
+
|------|--------|-------------|
|
|
75
|
+
| {path} | {Created/Modified/Deleted} | {what changed} |
|
|
76
|
+
|
|
77
|
+
## Change Log
|
|
78
|
+
|
|
79
|
+
| Date | Version | Description | Author |
|
|
80
|
+
|------|---------|-------------|--------|
|
|
81
|
+
| {today} | 0.1 | Initial draft | {agent} |
|
|
82
|
+
```
|
|
83
|
+
---
|
|
84
|
+
*doc-out
|
|
85
|
+
|
|
86
|
+
Save the story document to `docs/stories/` with the filename pattern `BS-{N}.{kebab-case-title}.story.md`, where {N} is one greater than the highest existing BS- number in that directory.
|
|
@@ -7,10 +7,11 @@
|
|
|
7
7
|
* land in ONE chronological file so a post-mortem can diff server-emitted vs
|
|
8
8
|
* client-received at each timestamp.
|
|
9
9
|
*
|
|
10
|
-
* Activation: opt-in via the
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* Activation: opt-in via the `enabled` constructor flag (off by default), which the caller
|
|
11
|
+
* resolves from the debugCliTrace preference with a HAMMOC_CLI_DEBUG env var fallback
|
|
12
|
+
* (Story BS-6). When disabled the logger is a no-op — no directory, no file, no writes — so
|
|
13
|
+
* a released install never accumulates per-turn JSONL files on the user's disk. When enabled,
|
|
14
|
+
* one WriteStream per turn (best-effort) writes under `logs/cli-debug/` (gitignored).
|
|
14
15
|
*
|
|
15
16
|
* Format (one JSON line per entry):
|
|
16
17
|
* {"ts":"2026-06-20T10:15:32.123Z","src":"S","ev":"grid-card-emit","d":{...}}
|
|
@@ -27,7 +28,7 @@ export interface CliDebugLogEntry {
|
|
|
27
28
|
export declare class CliDebugLog {
|
|
28
29
|
private stream;
|
|
29
30
|
readonly filePath: string;
|
|
30
|
-
constructor(sessionId: string);
|
|
31
|
+
constructor(sessionId: string, enabled: boolean);
|
|
31
32
|
/** Server-side decision log. */
|
|
32
33
|
server(event: string, data?: Record<string, unknown>): void;
|
|
33
34
|
/** Client-side decision log (relayed from browser via socket). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliDebugLog.d.ts","sourceRoot":"","sources":["../../src/utils/cliDebugLog.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cliDebugLog.d.ts","sourceRoot":"","sources":["../../src/utils/cliDebugLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B;AAID,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAA4B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAiB/C,gCAAgC;IAChC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,kEAAkE;IAClE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,yEAAyE;IACzE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI7E,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,KAAK;CAMd"}
|
|
@@ -7,10 +7,11 @@
|
|
|
7
7
|
* land in ONE chronological file so a post-mortem can diff server-emitted vs
|
|
8
8
|
* client-received at each timestamp.
|
|
9
9
|
*
|
|
10
|
-
* Activation: opt-in via the
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* Activation: opt-in via the `enabled` constructor flag (off by default), which the caller
|
|
11
|
+
* resolves from the debugCliTrace preference with a HAMMOC_CLI_DEBUG env var fallback
|
|
12
|
+
* (Story BS-6). When disabled the logger is a no-op — no directory, no file, no writes — so
|
|
13
|
+
* a released install never accumulates per-turn JSONL files on the user's disk. When enabled,
|
|
14
|
+
* one WriteStream per turn (best-effort) writes under `logs/cli-debug/` (gitignored).
|
|
14
15
|
*
|
|
15
16
|
* Format (one JSON line per entry):
|
|
16
17
|
* {"ts":"2026-06-20T10:15:32.123Z","src":"S","ev":"grid-card-emit","d":{...}}
|
|
@@ -24,13 +25,15 @@ const LOG_DIR = path.join(process.cwd(), 'logs', 'cli-debug');
|
|
|
24
25
|
export class CliDebugLog {
|
|
25
26
|
stream = null;
|
|
26
27
|
filePath;
|
|
27
|
-
constructor(sessionId) {
|
|
28
|
+
constructor(sessionId, enabled) {
|
|
28
29
|
const sid = sessionId || 'unknown';
|
|
29
30
|
const fname = `${sid}-${Date.now()}.jsonl`;
|
|
30
31
|
this.filePath = path.join(LOG_DIR, fname);
|
|
31
|
-
// Opt-in: only open the trace file when
|
|
32
|
-
//
|
|
33
|
-
|
|
32
|
+
// Opt-in: only open the trace file when enabled (resolved by the caller from the
|
|
33
|
+
// debugCliTrace preference, falling back to the HAMMOC_CLI_DEBUG env var — Story BS-6).
|
|
34
|
+
// Off by default → the stream stays null and every write() below is a no-op (no
|
|
35
|
+
// directory, no file created).
|
|
36
|
+
if (!enabled)
|
|
34
37
|
return;
|
|
35
38
|
try {
|
|
36
39
|
mkdirSync(LOG_DIR, { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliDebugLog.js","sourceRoot":"","sources":["../../src/utils/cliDebugLog.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cliDebugLog.js","sourceRoot":"","sources":["../../src/utils/cliDebugLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAoB,MAAM,IAAI,CAAC;AACpE,OAAO,IAAI,MAAM,MAAM,CAAC;AASxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAE9D,MAAM,OAAO,WAAW;IACd,MAAM,GAAuB,IAAI,CAAC;IACjC,QAAQ,CAAS;IAE1B,YAAY,SAAiB,EAAE,OAAgB;QAC7C,MAAM,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1C,iFAAiF;QACjF,wFAAwF;QACxF,gFAAgF;QAChF,+BAA+B;QAC/B,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,MAAM,CAAC,KAAa,EAAE,IAA8B;QAClD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,kEAAkE;IAClE,MAAM,CAAC,KAAa,EAAE,IAA8B;QAClD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,yEAAyE;IACzE,YAAY,CAAC,EAAU,EAAE,KAAa,EAAE,IAA8B;QACpE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK;QACH,IAAI,CAAC;YAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,KAAuB;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -25,4 +25,11 @@ export interface Logger {
|
|
|
25
25
|
export declare function createLogger(module: string): Logger;
|
|
26
26
|
/** Get current effective log level (for display/diagnostics) */
|
|
27
27
|
export declare function getEffectiveLogLevel(): LogLevel;
|
|
28
|
+
/**
|
|
29
|
+
* Change the active log level at runtime (Story BS-6 debug settings panel).
|
|
30
|
+
* Takes effect immediately for all loggers (they share this module-level `currentLevel`),
|
|
31
|
+
* with no server restart. Does not persist — the caller (preferences route) persists the
|
|
32
|
+
* preference separately, and the level re-initializes from env on the next boot.
|
|
33
|
+
*/
|
|
34
|
+
export declare function setLogLevel(level: LogLevel): void;
|
|
28
35
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;AAiEzD,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQnD;AAED,gEAAgE;AAChE,wBAAgB,oBAAoB,IAAI,QAAQ,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD"}
|
|
@@ -18,7 +18,10 @@ import { LogLevel, parseLogLevel } from '@hammoc/shared';
|
|
|
18
18
|
// Reads process.env directly (not from config/index.ts) to avoid circular dependency
|
|
19
19
|
const envLevel = parseLogLevel(process.env.LOG_LEVEL);
|
|
20
20
|
const isProduction = process.env.NODE_ENV === 'production';
|
|
21
|
-
const
|
|
21
|
+
// `let` (not `const`) so the debug settings panel can change the active level at runtime
|
|
22
|
+
// via setLogLevel() — see Story BS-6. Initialized from process.env.LOG_LEVEL at module
|
|
23
|
+
// load (config is intentionally NOT imported here to avoid a circular dependency).
|
|
24
|
+
let currentLevel = envLevel ?? (isProduction ? LogLevel.INFO : LogLevel.DEBUG);
|
|
22
25
|
// Ensure logs directory exists
|
|
23
26
|
const logsDir = path.join(process.cwd(), 'logs');
|
|
24
27
|
if (!existsSync(logsDir)) {
|
|
@@ -84,4 +87,13 @@ export function createLogger(module) {
|
|
|
84
87
|
export function getEffectiveLogLevel() {
|
|
85
88
|
return currentLevel;
|
|
86
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Change the active log level at runtime (Story BS-6 debug settings panel).
|
|
92
|
+
* Takes effect immediately for all loggers (they share this module-level `currentLevel`),
|
|
93
|
+
* with no server restart. Does not persist — the caller (preferences route) persists the
|
|
94
|
+
* preference separately, and the level re-initializes from env on the next boot.
|
|
95
|
+
*/
|
|
96
|
+
export function setLogLevel(level) {
|
|
97
|
+
currentLevel = level;
|
|
98
|
+
}
|
|
87
99
|
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEzD,+CAA+C;AAC/C,qFAAqF;AACrF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACtD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AAC3D,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 BMad Code, LLC
|
|
4
|
+
|
|
5
|
+
This project incorporates contributions from the open source community.
|
|
6
|
+
See CONTRIBUTORS.md for contributor attribution.
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
10
|
+
in the Software without restriction, including without limitation the rights
|
|
11
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
13
|
+
furnished to do so, subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be included in all
|
|
16
|
+
copies or substantial portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
24
|
+
SOFTWARE.
|
|
25
|
+
|
|
26
|
+
TRADEMARK NOTICE:
|
|
27
|
+
BMad™, BMad Method™, and BMad Core™ are trademarks of BMad Code, LLC, covering all
|
|
28
|
+
casings and variations (including BMAD, bmad, BMadMethod, BMAD-METHOD, etc.). The use of
|
|
29
|
+
these trademarks in this software does not grant any rights to use the trademarks
|
|
30
|
+
for any other purpose.
|
|
@@ -32,11 +32,17 @@ npm run dev
|
|
|
32
32
|
|
|
33
33
|
### 1.3 First Launch
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
Open http://localhost:3000 in your browser. A multi-step onboarding wizard walks you through initial setup. Steps that are already configured are automatically skipped — returning users go straight to the login screen.
|
|
36
|
+
|
|
37
|
+
1. **Display Name** — Optionally set a name for the AI to use when addressing you (can also be changed later in Settings, see §13.12). Click **Next** or **Skip**
|
|
38
|
+
2. **Password** — Set an admin password (minimum 4 characters) to protect your instance. On return visits this step becomes a login screen instead. After too many failed attempts, login is temporarily locked with a countdown timer
|
|
39
|
+
3. **Auth Method** — Choose how to connect to Claude:
|
|
40
|
+
- **Claude subscription** — Sign in with a Pro, Max, Team, or Enterprise account. An OAuth flow opens the authorization page in a new tab; copy the authorization code back into the wizard to complete sign-in
|
|
41
|
+
- **API key** — Enter an Anthropic API key directly (format: `sk-ant-...`)
|
|
42
|
+
4. **First Project** — Enter a project directory path or click **Browse** to pick a folder visually (see §5.2 for the directory picker). Click **Skip** to add a project later
|
|
43
|
+
5. **All Set** — Confirmation screen with auto-redirect to the home page
|
|
44
|
+
|
|
45
|
+
Use the **Back** button or `Escape` to return to a previous step at any time.
|
|
40
46
|
|
|
41
47
|
### 1.4 Mobile Access
|
|
42
48
|
|
|
@@ -128,7 +128,7 @@ Monitor token usage in real-time:
|
|
|
128
128
|
- **Rate limit dots** — 5h/7d utilization indicators in the input area
|
|
129
129
|
- **Color thresholds** — Green (normal), Yellow (moderate), Red (high usage)
|
|
130
130
|
- **Context compaction** — Click the usage donut to trigger compaction, which summarizes the conversation to free up context space. At critical usage levels, clicking instead creates a new session
|
|
131
|
-
- **Auto-compact on overflow** — When message history hits the context window limit, Hammoc automatically compacts the context and retries the message instead of losing the session. A master switch in Advanced Settings (see §13.
|
|
131
|
+
- **Auto-compact on overflow** — When message history hits the context window limit, Hammoc automatically compacts the context and retries the message instead of losing the session. A master switch in Advanced Settings (see §13.18) lets you disable auto-compaction entirely and manage compaction manually instead
|
|
132
132
|
|
|
133
133
|
### 2.11 Aborting Responses
|
|
134
134
|
|
|
@@ -283,7 +283,7 @@ Browse all conversation branches in a read-only mode:
|
|
|
283
283
|
|
|
284
284
|
### 2.24 Max Budget Warning Banner
|
|
285
285
|
|
|
286
|
-
When the **Max Budget (USD)** advanced setting (see §13.
|
|
286
|
+
When the **Max Budget (USD)** advanced setting (see §13.18) is configured, a sticky banner appears at the top of the chat area once the session cost approaches the limit:
|
|
287
287
|
|
|
288
288
|
- **Yellow warning** (80% threshold) — "Budget warning: $X.XXXX / $Y.YYYY used (ZZ%) — approaching Max Budget limit."
|
|
289
289
|
- **Red critical warning** (95% threshold) — "Budget critical: $X.XXXX / $Y.YYYY used (ZZ%) — stream will auto-stop when limit is exceeded."
|
|
@@ -12,8 +12,10 @@ Access the session list via the sidebar or quick panel:
|
|
|
12
12
|
- **Date** — When the session was last active
|
|
13
13
|
- **Streaming indicator** — Green dot with animation when streaming
|
|
14
14
|
- **Waiting indicator** — Amber pulsing dot with "Waiting" badge when a session is connected but not yet streaming
|
|
15
|
+
- **Pending question indicator** — Cyan pulsing dot with "Awaiting selection" badge when a session has an active `AskUserQuestion` waiting for user input. Appears alongside the session entry so you can spot sessions that need attention without opening each one
|
|
15
16
|
- **Queue badge** — Shown when queue runner is active on the session
|
|
16
17
|
- **Early visibility** — New sessions appear in the list as soon as a message is sent, with no brief delay
|
|
18
|
+
- **Active session promotion** — When a session starts streaming, it jumps to the top of the list so the session you're actively using stays the most visible
|
|
17
19
|
- Empty sessions are hidden by default (toggle with the eye icon)
|
|
18
20
|
|
|
19
21
|
### 3.2 Creating a New Session
|
|
@@ -82,6 +82,7 @@ Type `%` in the chat input to open the snippet autocomplete popup:
|
|
|
82
82
|
|
|
83
83
|
- **Grouped by source** — Sections labeled "Project", "Global", and "Bundled"
|
|
84
84
|
- **Preview** — Shows the first line of each snippet's content (up to 80 characters)
|
|
85
|
+
- **Expand full content** — Each row has a chevron (▸) toggle on the right; click it to reveal an inline, scrollable preview of the snippet's entire body in monospace, so you can confirm what you're inserting before committing to it. Only one snippet stays expanded at a time, and arrow-key navigation does not auto-expand — you expand on demand. Content is cached after the first load for instant reopen
|
|
85
86
|
- **Real-time filtering** — Type after `%` to filter by name or preview text (case-insensitive)
|
|
86
87
|
- **Keyboard navigation** — ArrowUp/Down to navigate, Enter or Tab to select, Escape to close
|
|
87
88
|
- **Click** to select a snippet
|