aicodeman 1.18.4 → 1.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/README.md +1 -0
  2. package/dist/attachment-registry.d.ts +25 -0
  3. package/dist/attachment-registry.d.ts.map +1 -1
  4. package/dist/attachment-registry.js +45 -1
  5. package/dist/attachment-registry.js.map +1 -1
  6. package/dist/cron/cron-service.d.ts.map +1 -1
  7. package/dist/cron/cron-service.js +10 -0
  8. package/dist/cron/cron-service.js.map +1 -1
  9. package/dist/hooks-config.d.ts +54 -15
  10. package/dist/hooks-config.d.ts.map +1 -1
  11. package/dist/hooks-config.js +82 -15
  12. package/dist/hooks-config.js.map +1 -1
  13. package/dist/plan-orchestrator.d.ts.map +1 -1
  14. package/dist/plan-orchestrator.js +8 -0
  15. package/dist/plan-orchestrator.js.map +1 -1
  16. package/dist/session.d.ts +11 -0
  17. package/dist/session.d.ts.map +1 -1
  18. package/dist/session.js +47 -10
  19. package/dist/session.js.map +1 -1
  20. package/dist/types/tools.d.ts +1 -1
  21. package/dist/types/tools.d.ts.map +1 -1
  22. package/dist/web/ports/config-port.d.ts +2 -0
  23. package/dist/web/ports/config-port.d.ts.map +1 -1
  24. package/dist/web/public/admin-ui.js.gz +0 -0
  25. package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
  26. package/dist/web/public/app.8a9a705e.js +34 -0
  27. package/dist/web/public/app.8a9a705e.js.br +0 -0
  28. package/dist/web/public/app.8a9a705e.js.gz +0 -0
  29. package/dist/web/public/approvals-ui.js.gz +0 -0
  30. package/dist/web/public/{constants.04b7b284.js → constants.d474d7d9.js} +141 -0
  31. package/dist/web/public/constants.d474d7d9.js.br +0 -0
  32. package/dist/web/public/constants.d474d7d9.js.gz +0 -0
  33. package/dist/web/public/cron-ui.js.gz +0 -0
  34. package/dist/web/public/entrance-animations.js.gz +0 -0
  35. package/dist/web/public/home-sessions.js +79 -35
  36. package/dist/web/public/home-sessions.js.br +0 -0
  37. package/dist/web/public/home-sessions.js.gz +0 -0
  38. package/dist/web/public/i18n.bb8949de.js +1 -0
  39. package/dist/web/public/i18n.bb8949de.js.br +0 -0
  40. package/dist/web/public/i18n.bb8949de.js.gz +0 -0
  41. package/dist/web/public/image-input.ee16ad88.js.gz +0 -0
  42. package/dist/web/public/index.html +102 -18
  43. package/dist/web/public/index.html.br +0 -0
  44. package/dist/web/public/index.html.gz +0 -0
  45. package/dist/web/public/input-cjk.63794d0b.js.gz +0 -0
  46. package/dist/web/public/keyboard-accessory.0454a3e9.js.gz +0 -0
  47. package/dist/web/public/{mobile-handlers.bc45f976.js → mobile-handlers.05b89237.js} +16 -0
  48. package/dist/web/public/mobile-handlers.05b89237.js.br +0 -0
  49. package/dist/web/public/mobile-handlers.05b89237.js.gz +0 -0
  50. package/dist/web/public/mobile-overview.js +23 -19
  51. package/dist/web/public/mobile-overview.js.br +0 -0
  52. package/dist/web/public/mobile-overview.js.gz +0 -0
  53. package/dist/web/public/mobile.c40d28a6.css +1 -0
  54. package/dist/web/public/mobile.c40d28a6.css.br +0 -0
  55. package/dist/web/public/mobile.c40d28a6.css.gz +0 -0
  56. package/dist/web/public/notification-manager.5d229063.js.gz +0 -0
  57. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  58. package/dist/web/public/{panels-ui.1e4cb4b2.js → panels-ui.c5a82b6e.js} +48 -46
  59. package/dist/web/public/panels-ui.c5a82b6e.js.br +0 -0
  60. package/dist/web/public/panels-ui.c5a82b6e.js.gz +0 -0
  61. package/dist/web/public/ralph-panel.6de2d0f8.js.gz +0 -0
  62. package/dist/web/public/ralph-wizard.13a1831e.js.gz +0 -0
  63. package/dist/web/public/readmymind-ui.js.gz +0 -0
  64. package/dist/web/public/respawn-ui.ff0dae4c.js.gz +0 -0
  65. package/dist/web/public/sanitize-html.bc7078d6.js.gz +0 -0
  66. package/dist/web/public/session-lineage.js +12 -1
  67. package/dist/web/public/session-lineage.js.br +0 -0
  68. package/dist/web/public/session-lineage.js.gz +0 -0
  69. package/dist/web/public/{session-ui.c67565f2.js → session-ui.71a0ce9a.js} +3 -3
  70. package/dist/web/public/session-ui.71a0ce9a.js.br +0 -0
  71. package/dist/web/public/session-ui.71a0ce9a.js.gz +0 -0
  72. package/dist/web/public/{settings-ui.eacb4f92.js → settings-ui.6cb12d4b.js} +2 -2
  73. package/dist/web/public/settings-ui.6cb12d4b.js.br +0 -0
  74. package/dist/web/public/settings-ui.6cb12d4b.js.gz +0 -0
  75. package/dist/web/public/styles.325eb4f3.css +1 -0
  76. package/dist/web/public/styles.325eb4f3.css.br +0 -0
  77. package/dist/web/public/styles.325eb4f3.css.gz +0 -0
  78. package/dist/web/public/{subagent-windows.2a192c3e.js → subagent-windows.e6ca799f.js} +24 -12
  79. package/dist/web/public/subagent-windows.e6ca799f.js.br +0 -0
  80. package/dist/web/public/subagent-windows.e6ca799f.js.gz +0 -0
  81. package/dist/web/public/sw.js.gz +0 -0
  82. package/dist/web/public/terminal-ui.02b89e2c.js +4 -0
  83. package/dist/web/public/terminal-ui.02b89e2c.js.br +0 -0
  84. package/dist/web/public/terminal-ui.02b89e2c.js.gz +0 -0
  85. package/dist/web/public/ultracode-panel.js.gz +0 -0
  86. package/dist/web/public/ultracode-windows.js +15 -19
  87. package/dist/web/public/ultracode-windows.js.br +0 -0
  88. package/dist/web/public/ultracode-windows.js.gz +0 -0
  89. package/dist/web/public/upload.html.gz +0 -0
  90. package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
  91. package/dist/web/public/vendor/marked.min.js.gz +0 -0
  92. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  93. package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
  94. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  95. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  96. package/dist/web/public/vendor/xterm-predictive-echo.6cec0fba.js.gz +0 -0
  97. package/dist/web/public/vendor/xterm-zerolag-input.137ad9f0.js.gz +0 -0
  98. package/dist/web/public/vendor/xterm.css.gz +0 -0
  99. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  100. package/dist/web/public/voice-input.4ec670b0.js.gz +0 -0
  101. package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
  102. package/dist/web/public/webview-tabs.js +3 -0
  103. package/dist/web/public/webview-tabs.js.br +0 -0
  104. package/dist/web/public/webview-tabs.js.gz +0 -0
  105. package/dist/web/routes/file-routes.d.ts.map +1 -1
  106. package/dist/web/routes/file-routes.js +48 -6
  107. package/dist/web/routes/file-routes.js.map +1 -1
  108. package/dist/web/routes/hook-event-routes.d.ts.map +1 -1
  109. package/dist/web/routes/hook-event-routes.js +5 -0
  110. package/dist/web/routes/hook-event-routes.js.map +1 -1
  111. package/dist/web/routes/session-routes.d.ts.map +1 -1
  112. package/dist/web/routes/session-routes.js +44 -21
  113. package/dist/web/routes/session-routes.js.map +1 -1
  114. package/dist/web/schemas.d.ts +5 -0
  115. package/dist/web/schemas.d.ts.map +1 -1
  116. package/dist/web/schemas.js +13 -0
  117. package/dist/web/schemas.js.map +1 -1
  118. package/dist/web/sensitive-path.d.ts.map +1 -1
  119. package/dist/web/sensitive-path.js +36 -1
  120. package/dist/web/sensitive-path.js.map +1 -1
  121. package/dist/web/server.d.ts +25 -0
  122. package/dist/web/server.d.ts.map +1 -1
  123. package/dist/web/server.js +70 -0
  124. package/dist/web/server.js.map +1 -1
  125. package/dist/web/session-listener-wiring.d.ts.map +1 -1
  126. package/dist/web/session-listener-wiring.js +5 -0
  127. package/dist/web/session-listener-wiring.js.map +1 -1
  128. package/package.json +1 -1
  129. package/skills/codeman/SKILL.md +16 -15
  130. package/skills/codeman/preamble.sh +8 -8
  131. package/skills/codeman/reference/endpoints.md +28 -34
  132. package/skills/codeman/reference/messaging.md +8 -6
  133. package/skills/codeman/reference/recipes.md +3 -3
  134. package/skills/codeman/reference/verbs.md +39 -24
  135. package/dist/web/public/app.e2cb9065.js +0 -34
  136. package/dist/web/public/app.e2cb9065.js.br +0 -0
  137. package/dist/web/public/app.e2cb9065.js.gz +0 -0
  138. package/dist/web/public/constants.04b7b284.js.br +0 -0
  139. package/dist/web/public/constants.04b7b284.js.gz +0 -0
  140. package/dist/web/public/i18n.86757605.js +0 -1
  141. package/dist/web/public/i18n.86757605.js.br +0 -0
  142. package/dist/web/public/i18n.86757605.js.gz +0 -0
  143. package/dist/web/public/mobile-handlers.bc45f976.js.br +0 -0
  144. package/dist/web/public/mobile-handlers.bc45f976.js.gz +0 -0
  145. package/dist/web/public/mobile.1eef31fe.css +0 -1
  146. package/dist/web/public/mobile.1eef31fe.css.br +0 -0
  147. package/dist/web/public/mobile.1eef31fe.css.gz +0 -0
  148. package/dist/web/public/panels-ui.1e4cb4b2.js.br +0 -0
  149. package/dist/web/public/panels-ui.1e4cb4b2.js.gz +0 -0
  150. package/dist/web/public/session-ui.c67565f2.js.br +0 -0
  151. package/dist/web/public/session-ui.c67565f2.js.gz +0 -0
  152. package/dist/web/public/settings-ui.eacb4f92.js.br +0 -0
  153. package/dist/web/public/settings-ui.eacb4f92.js.gz +0 -0
  154. package/dist/web/public/styles.d2fa3a17.css +0 -1
  155. package/dist/web/public/styles.d2fa3a17.css.br +0 -0
  156. package/dist/web/public/styles.d2fa3a17.css.gz +0 -0
  157. package/dist/web/public/subagent-windows.2a192c3e.js.br +0 -0
  158. package/dist/web/public/subagent-windows.2a192c3e.js.gz +0 -0
  159. package/dist/web/public/terminal-ui.c182a68d.js +0 -4
  160. package/dist/web/public/terminal-ui.c182a68d.js.br +0 -0
  161. package/dist/web/public/terminal-ui.c182a68d.js.gz +0 -0
package/README.md CHANGED
@@ -683,6 +683,7 @@ Single-digit selection (1-9), color-coded status, token counts, auto-refresh. De
683
683
  | `Ctrl/Cmd+Tab` | Next session |
684
684
  | `Alt/Option+[` / `Alt/Option+]` | Previous / next session |
685
685
  | `Alt/Option+1`-`Alt/Option+9` | Switch to tab N (physical keys, so macOS Option layouts work) |
686
+ | `Alt/Option+B` | Collapse / expand the session sidebar (sidebar layout only) |
686
687
  | `Ctrl+Shift+{` / `Ctrl+Shift+}` | Move active tab left / right |
687
688
  | `Ctrl/Cmd+C` | Copy selection, or interrupt when nothing is selected |
688
689
  | `Ctrl+Shift+C` | Copy selection (never interrupts) |
@@ -6,6 +6,31 @@
6
6
  * so browser requests never contain arbitrary absolute paths.
7
7
  */
8
8
  import type { AttachmentDetectedEvent, AttachmentDetectedType } from './types.js';
9
+ /**
10
+ * Playable media extensions, single-sourced here because the WORKSPACE preview
11
+ * (`file-content`'s media classification) and the out-of-workspace attachment
12
+ * path must agree on what plays. They diverged once: a video an agent wrote
13
+ * inside the workspace played with a working scrub bar, while the same file in
14
+ * `/tmp` was refused as an unsupported type, which reads as a bug rather than a
15
+ * boundary. Serving is range-aware in both, which is what makes seeking work.
16
+ */
17
+ export declare const VIDEO_ATTACHMENT_EXTENSIONS: ReadonlySet<string>;
18
+ export declare const AUDIO_ATTACHMENT_EXTENSIONS: ReadonlySet<string>;
19
+ /**
20
+ * Plain-text extensions, REUSING the File Viewer's edit-mode allowlist rather
21
+ * than curating a second list that would drift from it. The rule reads: if the
22
+ * viewer would open that file for editing inside the workspace, the same file
23
+ * outside it can be read here. `svg` and `env` are absent from that list by
24
+ * design and stay absent here.
25
+ *
26
+ * Why widen at all: the agent in the session can already `cat` any of these,
27
+ * and every path-shaped surface (the picker, the workspace viewer) can already
28
+ * show them. Refusing a `.log` an agent just wrote to `/tmp` bought no
29
+ * confidentiality, it only made the click fail. The confidentiality gate is the
30
+ * path guard that still runs on every registration (sensitive-file blocklist,
31
+ * `/root` and `/etc` trees, realpath before the check), not the file's suffix.
32
+ */
33
+ export declare const TEXT_ATTACHMENT_EXTENSIONS: ReadonlySet<string>;
9
34
  export type AttachmentSource = 'detected' | 'external';
10
35
  export interface AttachmentRecord {
11
36
  attachmentId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-registry.d.ts","sourceRoot":"","sources":["../src/attachment-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAelF,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,UAAU,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,sBAAsB,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA6B,SAAQ,uBAAuB;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IAGlD,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAD3B,OAAO,EAAE,MAAM,EACN,UAAU,GAAE,MAAY;CAIpC;AAMD,cAAM,kBAAkB;IACtB,OAAO,CAAC,gBAAgB,CAAoD;IAE5E,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAexC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI1E,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IASjF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAGtC;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC;AAE3D,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB,CAQ3E;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB;IACD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAOA;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,4BAA4B,CAe9F;AAED,sDAAsD;AACtD,MAAM,WAAW,iCAAiC;IAChD;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;OAQG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,4BAA4B,CAAC,CAoEvC"}
1
+ {"version":3,"file":"attachment-registry.d.ts","sourceRoot":"","sources":["../src/attachment-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAElF;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,WAAW,CAAC,MAAM,CAAiD,CAAC;AAC9G,eAAO,MAAM,2BAA2B,EAAE,WAAW,CAAC,MAAM,CAS1D,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAAuB,CAAC;AAkBnF,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,UAAU,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,sBAAsB,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA6B,SAAQ,uBAAuB;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IAGlD,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAD3B,OAAO,EAAE,MAAM,EACN,UAAU,GAAE,MAAY;CAIpC;AAMD,cAAM,kBAAkB;IACtB,OAAO,CAAC,gBAAgB,CAAoD;IAE5E,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAexC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI1E,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IASjF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAGtC;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC;AAE3D,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB,CAY3E;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB;IACD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAOA;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,4BAA4B,CAe9F;AAED,sDAAsD;AACtD,MAAM,WAAW,iCAAiC;IAChD;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;OAQG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,4BAA4B,CAAC,CAoEvC"}
@@ -10,7 +10,42 @@ import { realpathSync } from 'node:fs';
10
10
  import fs from 'node:fs/promises';
11
11
  import { basename, extname, isAbsolute } from 'node:path';
12
12
  import { isBlockedAttachmentPath, loadAttachmentGuardConfig } from './config/attachment-guard.js';
13
+ import { EDITABLE_EXTENSIONS } from './config/file-editing.js';
13
14
  import { validateSessionFilePath } from './web/route-helpers.js';
15
+ /**
16
+ * Playable media extensions, single-sourced here because the WORKSPACE preview
17
+ * (`file-content`'s media classification) and the out-of-workspace attachment
18
+ * path must agree on what plays. They diverged once: a video an agent wrote
19
+ * inside the workspace played with a working scrub bar, while the same file in
20
+ * `/tmp` was refused as an unsupported type, which reads as a bug rather than a
21
+ * boundary. Serving is range-aware in both, which is what makes seeking work.
22
+ */
23
+ export const VIDEO_ATTACHMENT_EXTENSIONS = new Set(['mp4', 'webm', 'mov', 'm4v', 'ogv']);
24
+ export const AUDIO_ATTACHMENT_EXTENSIONS = new Set([
25
+ 'mp3',
26
+ 'wav',
27
+ 'ogg',
28
+ 'oga',
29
+ 'm4a',
30
+ 'aac',
31
+ 'flac',
32
+ 'opus',
33
+ ]);
34
+ /**
35
+ * Plain-text extensions, REUSING the File Viewer's edit-mode allowlist rather
36
+ * than curating a second list that would drift from it. The rule reads: if the
37
+ * viewer would open that file for editing inside the workspace, the same file
38
+ * outside it can be read here. `svg` and `env` are absent from that list by
39
+ * design and stay absent here.
40
+ *
41
+ * Why widen at all: the agent in the session can already `cat` any of these,
42
+ * and every path-shaped surface (the picker, the workspace viewer) can already
43
+ * show them. Refusing a `.log` an agent just wrote to `/tmp` bought no
44
+ * confidentiality, it only made the click fail. The confidentiality gate is the
45
+ * path guard that still runs on every registration (sensitive-file blocklist,
46
+ * `/root` and `/etc` trees, realpath before the check), not the file's suffix.
47
+ */
48
+ export const TEXT_ATTACHMENT_EXTENSIONS = EDITABLE_EXTENSIONS;
14
49
  const SUPPORTED_ATTACHMENT_EXTENSIONS = new Set([
15
50
  'png',
16
51
  'jpg',
@@ -22,6 +57,9 @@ const SUPPORTED_ATTACHMENT_EXTENSIONS = new Set([
22
57
  'pptx',
23
58
  'md',
24
59
  'txt',
60
+ ...VIDEO_ATTACHMENT_EXTENSIONS,
61
+ ...AUDIO_ATTACHMENT_EXTENSIONS,
62
+ ...TEXT_ATTACHMENT_EXTENSIONS,
25
63
  ]);
26
64
  export class AttachmentRegistrationError extends Error {
27
65
  statusCode;
@@ -75,13 +113,19 @@ export function getAttachmentType(extension) {
75
113
  const normalized = extension.toLowerCase().replace(/^\./, '');
76
114
  if (['png', 'jpg', 'jpeg', 'gif', 'webp'].includes(normalized))
77
115
  return 'image';
116
+ if (VIDEO_ATTACHMENT_EXTENSIONS.has(normalized))
117
+ return 'video';
118
+ if (AUDIO_ATTACHMENT_EXTENSIONS.has(normalized))
119
+ return 'audio';
78
120
  if (normalized === 'pdf')
79
121
  return 'pdf';
80
122
  if (normalized === 'pptx')
81
123
  return 'presentation';
82
124
  if (normalized === 'md')
83
125
  return 'markdown';
84
- if (normalized === 'txt')
126
+ // Everything else in the text family reads as text, including code and
127
+ // config: the card and the preview both treat it as a plain-text file.
128
+ if (normalized === 'txt' || TEXT_ATTACHMENT_EXTENSIONS.has(normalized))
85
129
  return 'text';
86
130
  return 'document';
87
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-registry.js","sourceRoot":"","sources":["../src/attachment-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment-registry.js","sourceRoot":"","sources":["../src/attachment-registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cron-service.d.ts","sourceRoot":"","sources":["../../src/cron/cron-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoBH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAiC,MAAM,kBAAkB,CAAC;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,2DAA2D;AAC3D,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAIxE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,OAAO,GACpB;IAAE,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAA;CAAE,CAM5E;AA0BD,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,QAAQ;IAE3C,OAAO,KAAK,KAAK,GAEhB;IAID,QAAQ,IAAI,OAAO,EAAE;IAIrB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAIlC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE;IAMtC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAoBnE,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAwCvD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,GAAG,IAAI;IA+CnE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAYxD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAW9B,6EAA6E;IACvE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAMpD;;;OAGG;IACG,WAAW,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC1D,0EAA0E;IAC1E,IAAI,IAAI,IAAI;IAaZ,OAAO,CAAC,gBAAgB;YAaV,MAAM;IAsHpB;;;;;;;;OAQG;YACW,aAAa;IAkB3B;;;;;;;;;;;;;;;OAeG;YACW,qBAAqB;IA+CnC,OAAO,CAAC,mBAAmB;IAuD3B,gFAAgF;IAChF,OAAO,CAAC,UAAU;IAOlB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAa7B,2FAA2F;YAC7E,wBAAwB;IAYtC,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,gBAAgB;IA2BxB,mFAAmF;IACnF,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,oBAAoB;CAG7B"}
1
+ {"version":3,"file":"cron-service.d.ts","sourceRoot":"","sources":["../../src/cron/cron-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqBH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAiC,MAAM,kBAAkB,CAAC;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,2DAA2D;AAC3D,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAIxE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,OAAO,GACpB;IAAE,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAA;CAAE,CAM5E;AA0BD,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,QAAQ;IAE3C,OAAO,KAAK,KAAK,GAEhB;IAID,QAAQ,IAAI,OAAO,EAAE;IAIrB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAIlC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE;IAMtC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAoBnE,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAwCvD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,GAAG,IAAI;IA+CnE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAYxD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAW9B,6EAA6E;IACvE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAMpD;;;OAGG;IACG,WAAW,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC1D,0EAA0E;IAC1E,IAAI,IAAI,IAAI;IAaZ,OAAO,CAAC,gBAAgB;YAaV,MAAM;IA+HpB;;;;;;;;OAQG;YACW,aAAa;IAkB3B;;;;;;;;;;;;;;;OAeG;YACW,qBAAqB;IA+CnC,OAAO,CAAC,mBAAmB;IAuD3B,gFAAgF;IAChF,OAAO,CAAC,UAAU;IAOlB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAa7B,2FAA2F;YAC7E,wBAAwB;IAYtC,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,gBAAgB;IA2BxB,mFAAmF;IACnF,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,oBAAoB;CAG7B"}
@@ -10,6 +10,7 @@ import { v4 as uuidv4 } from 'uuid';
10
10
  import { readFile } from 'node:fs/promises';
11
11
  import { statSync, realpathSync } from 'node:fs';
12
12
  import { Session } from '../session.js';
13
+ import { applyWorkspaceHooks } from '../hooks-config.js';
13
14
  import { SseEvent } from '../web/sse-events.js';
14
15
  import { CronJobSchema } from '../web/schemas.js';
15
16
  import { getErrorMessage, createErrorResponse, ApiErrorCode } from '../types/api.js';
@@ -358,6 +359,15 @@ export class CronService {
358
359
  // clampCronExternalCliConfigs — cron sends no per-CLI config, so the CLI's own
359
360
  // spawn default is what would otherwise apply).
360
361
  const { geminiConfig, piConfig } = clampCronExternalCliConfigs(mode, ownerGranted);
362
+ // Workspace hooks (see applyWorkspaceHooks in hooks-config): cron jobs are
363
+ // always local (workingDir was stat-validated above) but used to bypass the
364
+ // shared install-vs-refresh decision, so a job firing in a linked case that
365
+ // never had an interactive session ran hook-blind — no `stop` for the
366
+ // completion detection, no tab alert on a blocking dialog. Claude mode only
367
+ // (nothing else reads `.claude` hooks); best-effort inside the helper.
368
+ if (mode === 'claude') {
369
+ await applyWorkspaceHooks(job.workingDir);
370
+ }
361
371
  session = new Session({
362
372
  workingDir: job.workingDir,
363
373
  mode,
@@ -1 +1 @@
1
- {"version":3,"file":"cron-service.js","sourceRoot":"","sources":["../../src/cron/cron-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cron-service.js","sourceRoot":"","sources":["../../src/cron/cron-service.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,9 @@
10
10
  * Key exports:
11
11
  * - `generateHooksConfig()` — returns hooks object for settings.local.json
12
12
  * - `writeHooksConfig(casePath)` — writes hooks + env config to disk
13
+ * - `applyWorkspaceHooks(workspace, install?)` — the ONE install-vs-refresh decision
14
+ * point every claude-session create path routes through (see its doc comment)
13
15
  * - `ensureCodemanHooks(casePath)` — safely installs/updates hooks for a managed case
14
- * (no production call site yet; see its doc comment before wiring one)
15
16
  * - `updateCaseEnvVars(casePath, envVars)` — merges env vars into settings
16
17
  *
17
18
  * Hook events generated: `idle_prompt`, `permission_prompt`, `elicitation_dialog`,
@@ -100,22 +101,28 @@ export declare function updateCaseModel(casePath: string, model: string | null):
100
101
  */
101
102
  export declare function writeHooksConfig(casePath: string): Promise<void>;
102
103
  /**
103
- * Ensures an explicitly managed case has the current Codeman hooks.
104
+ * Ensures a workspace Codeman is about to run Claude in has the current Codeman hooks.
104
105
  *
105
- * Unlike `refreshStaleCodemanHooks`, this may add Codeman handlers to a valid
106
- * user-owned settings file. It is therefore reserved for case quick-starts,
107
- * where the user has explicitly asked Codeman to manage that workspace. A
108
- * malformed existing file is left untouched rather than replaced.
106
+ * Unlike `refreshStaleCodemanHooks`, this may ADD Codeman handlers to a settings
107
+ * file that has none (a linked case, a cloned repo, any directory Codeman did not
108
+ * scaffold). It merges rather than replaces, so a user's own hook entries survive,
109
+ * and a malformed existing file is left untouched rather than replaced.
109
110
  *
110
- * ⚠️ It has NO production call site: PR #233 landed it with the hook scripts and never
111
- * wired it up, and knip can't flag it (`test/**` are entry points, so its tests count as
112
- * a use). Kept anyway, because it is redundant with neither sibling: `writeHooksConfig`
113
- * REPLACES a malformed settings file and rewrites unconditionally, and
114
- * `refreshStaleCodemanHooks` deliberately never adds hooks to a case that has none. The
115
- * one place it fits is quick-start's existing-case branch in session-routes.ts, and
116
- * moving that branch onto this function is a POLICY change (hooks would come back for a
117
- * user who deleted them from their case, and linked cases would start getting a hooks
118
- * block they have never had), so that call is left to the owner rather than made here.
111
+ * ⚠️ That "may add" is a deliberate POLICY, adopted 2026-08-15 after the symptom it
112
+ * causes was reported: hooks were only ever written when Codeman CREATED a case
113
+ * directory, so every session in a linked case ran with no hooks at all and each
114
+ * hook-driven surface was silently dead there an AskUserQuestion dialog blocking
115
+ * the pane while the tab and the phone overview both read a calm `idle`, no
116
+ * Approvals Inbox item, no push, no definitive `stop`/`idle_prompt` for respawn, and
117
+ * no `stop`/`blocked` for the agent wait endpoints. The cost of the policy is the
118
+ * other direction: a user who DELETES Codeman's hooks from a workspace gets them
119
+ * back on the next session create there, because nothing on disk distinguishes
120
+ * "removed on purpose" from "never had any".
121
+ *
122
+ * Called from both session-create paths (`POST /api/sessions`, `POST /api/quick-start`)
123
+ * for claude mode, and from `restoreMuxSessions()` so sessions that predate this heal
124
+ * on the next server start. Claude Code re-reads the file, so a session ALREADY running
125
+ * in the workspace picks the hooks up without a restart (verified live, 2026-08-15).
119
126
  */
120
127
  export declare function ensureCodemanHooks(casePath: string): Promise<void>;
121
128
  /**
@@ -137,6 +144,38 @@ export declare function ensureCodemanHooks(casePath: string): Promise<void>;
137
144
  * when the hooks aren't ours, so it is cheap enough to call on every Claude spawn.
138
145
  */
139
146
  export declare function refreshStaleCodemanHooks(casePath: string): Promise<void>;
147
+ /**
148
+ * Hooks for the workspace a Claude session is about to run in. ONE decision point,
149
+ * shared by every claude-session create path — the interactive routes, quick-start,
150
+ * cron fires, legacy scheduled runs, the plan-orchestrator one-shots, and the boot
151
+ * recovery sweep — so the `workspaceHooksEnabled` setting cannot apply to some of
152
+ * them only.
153
+ *
154
+ * ON (the default): INSTALL Codeman's hooks block (`ensureCodemanHooks`), merging so
155
+ * a user's own hook entries and every other settings key survive. Hooks used to be
156
+ * written only when Codeman CREATED the case DIRECTORY, so a linked case or any
157
+ * pre-existing repo — where most sessions actually run — had none, and every
158
+ * hook-driven surface was silently dead there (full history on `ensureCodemanHooks`).
159
+ *
160
+ * OFF: the older, narrower behavior. A Codeman block that is already there is still
161
+ * refreshed when stale (COD-91: a pre-secret block 401s once the hook-secret gate
162
+ * went unconditional), but one is never added, so Codeman leaves the repo alone.
163
+ *
164
+ * `install` overrides the setting read: route handlers resolve it through their
165
+ * ConfigPort (`ctx.getWorkspaceHooksEnabled()`, which tests stub), and the boot sweep
166
+ * passes `true` after checking the setting once for its whole batch. Every other
167
+ * caller omits it and the synced setting is read from settings.json here — default ON
168
+ * when the key is absent or the file unreadable, matching the server's resolver.
169
+ *
170
+ * Callers gate on their own context (claude mode only; local — never a remote
171
+ * workingDir, which is a path on ANOTHER host, and never a docker case that opted
172
+ * out of hooks). The guards EVERY caller needs live here instead:
173
+ * - a workspace that does not exist is skipped — `ensureCodemanHooks` mkdir -p's,
174
+ * so a deleted repo whose tmux session survived would otherwise be resurrected
175
+ * as an empty directory tree holding only `.claude/settings.local.json`;
176
+ * - errors are swallowed — a session create must never fail on hooks.
177
+ */
178
+ export declare function applyWorkspaceHooks(workspace: string, install?: boolean): Promise<void>;
140
179
  /**
141
180
  * The plan-usage statusLine exporter command. Mirrors the hook `curlCmd` pattern:
142
181
  * reads Claude Code's statusline stdin JSON, POSTs `{sessionId,data}` to Codeman,
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-config.d.ts","sourceRoot":"","sources":["../src/hooks-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAyCH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CA4GrD;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,CA0ExD;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAenF;AA+BD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CA2F1E;AA0ED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BvG;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBxG;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB3F;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBtE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBxE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC9E;AAKD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAalD;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B7F;AAsFD,8EAA8E;AAC9E,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,WAAW,GACX,WAAW,GACX,SAAS,GACT,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA8B5F;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,qBAAqB,GAAG,QAAQ,CAAC,CASvF;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAuB3F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAGxG"}
1
+ {"version":3,"file":"hooks-config.d.ts","sourceRoot":"","sources":["../src/hooks-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AA0CH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CA4GrD;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,CA0ExD;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAenF;AA+BD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CA2F1E;AA0ED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BvG;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBxG;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB3F;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBtE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBxE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC9E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7F;AAqBD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAalD;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B7F;AAsFD,8EAA8E;AAC9E,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,WAAW,GACX,WAAW,GACX,SAAS,GACT,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA8B5F;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,qBAAqB,GAAG,QAAQ,CAAC,CASvF;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAuB3F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAGxG"}
@@ -10,8 +10,9 @@
10
10
  * Key exports:
11
11
  * - `generateHooksConfig()` — returns hooks object for settings.local.json
12
12
  * - `writeHooksConfig(casePath)` — writes hooks + env config to disk
13
+ * - `applyWorkspaceHooks(workspace, install?)` — the ONE install-vs-refresh decision
14
+ * point every claude-session create path routes through (see its doc comment)
13
15
  * - `ensureCodemanHooks(casePath)` — safely installs/updates hooks for a managed case
14
- * (no production call site yet; see its doc comment before wiring one)
15
16
  * - `updateCaseEnvVars(casePath, envVars)` — merges env vars into settings
16
17
  *
17
18
  * Hook events generated: `idle_prompt`, `permission_prompt`, `elicitation_dialog`,
@@ -34,6 +35,7 @@ import { homedir } from 'node:os';
34
35
  import { join, dirname } from 'node:path';
35
36
  import { fileURLToPath } from 'node:url';
36
37
  import { HOOK_TIMEOUT_SECONDS } from './config/auth-config.js';
38
+ import { dataPath } from './config/instance.js';
37
39
  /**
38
40
  * Serializes read-modify-write access to a `settings.local.json` path. Every
39
41
  * writer in this module (hooks, env, model, statusLine) shares this map, so
@@ -616,22 +618,28 @@ export async function writeHooksConfig(casePath) {
616
618
  });
617
619
  }
618
620
  /**
619
- * Ensures an explicitly managed case has the current Codeman hooks.
621
+ * Ensures a workspace Codeman is about to run Claude in has the current Codeman hooks.
620
622
  *
621
- * Unlike `refreshStaleCodemanHooks`, this may add Codeman handlers to a valid
622
- * user-owned settings file. It is therefore reserved for case quick-starts,
623
- * where the user has explicitly asked Codeman to manage that workspace. A
624
- * malformed existing file is left untouched rather than replaced.
623
+ * Unlike `refreshStaleCodemanHooks`, this may ADD Codeman handlers to a settings
624
+ * file that has none (a linked case, a cloned repo, any directory Codeman did not
625
+ * scaffold). It merges rather than replaces, so a user's own hook entries survive,
626
+ * and a malformed existing file is left untouched rather than replaced.
625
627
  *
626
- * ⚠️ It has NO production call site: PR #233 landed it with the hook scripts and never
627
- * wired it up, and knip can't flag it (`test/**` are entry points, so its tests count as
628
- * a use). Kept anyway, because it is redundant with neither sibling: `writeHooksConfig`
629
- * REPLACES a malformed settings file and rewrites unconditionally, and
630
- * `refreshStaleCodemanHooks` deliberately never adds hooks to a case that has none. The
631
- * one place it fits is quick-start's existing-case branch in session-routes.ts, and
632
- * moving that branch onto this function is a POLICY change (hooks would come back for a
633
- * user who deleted them from their case, and linked cases would start getting a hooks
634
- * block they have never had), so that call is left to the owner rather than made here.
628
+ * ⚠️ That "may add" is a deliberate POLICY, adopted 2026-08-15 after the symptom it
629
+ * causes was reported: hooks were only ever written when Codeman CREATED a case
630
+ * directory, so every session in a linked case ran with no hooks at all and each
631
+ * hook-driven surface was silently dead there an AskUserQuestion dialog blocking
632
+ * the pane while the tab and the phone overview both read a calm `idle`, no
633
+ * Approvals Inbox item, no push, no definitive `stop`/`idle_prompt` for respawn, and
634
+ * no `stop`/`blocked` for the agent wait endpoints. The cost of the policy is the
635
+ * other direction: a user who DELETES Codeman's hooks from a workspace gets them
636
+ * back on the next session create there, because nothing on disk distinguishes
637
+ * "removed on purpose" from "never had any".
638
+ *
639
+ * Called from both session-create paths (`POST /api/sessions`, `POST /api/quick-start`)
640
+ * for claude mode, and from `restoreMuxSessions()` so sessions that predate this heal
641
+ * on the next server start. Claude Code re-reads the file, so a session ALREADY running
642
+ * in the workspace picks the hooks up without a restart (verified live, 2026-08-15).
635
643
  */
636
644
  export async function ensureCodemanHooks(casePath) {
637
645
  await withSafeSettingsWrite(casePath, 'hooks (ensure)', async (claudeDir, settingsPath) => {
@@ -710,6 +718,65 @@ export async function refreshStaleCodemanHooks(casePath) {
710
718
  await writeFile(settingsPath, JSON.stringify(merged, null, 2) + '\n');
711
719
  });
712
720
  }
721
+ /**
722
+ * Hooks for the workspace a Claude session is about to run in. ONE decision point,
723
+ * shared by every claude-session create path — the interactive routes, quick-start,
724
+ * cron fires, legacy scheduled runs, the plan-orchestrator one-shots, and the boot
725
+ * recovery sweep — so the `workspaceHooksEnabled` setting cannot apply to some of
726
+ * them only.
727
+ *
728
+ * ON (the default): INSTALL Codeman's hooks block (`ensureCodemanHooks`), merging so
729
+ * a user's own hook entries and every other settings key survive. Hooks used to be
730
+ * written only when Codeman CREATED the case DIRECTORY, so a linked case or any
731
+ * pre-existing repo — where most sessions actually run — had none, and every
732
+ * hook-driven surface was silently dead there (full history on `ensureCodemanHooks`).
733
+ *
734
+ * OFF: the older, narrower behavior. A Codeman block that is already there is still
735
+ * refreshed when stale (COD-91: a pre-secret block 401s once the hook-secret gate
736
+ * went unconditional), but one is never added, so Codeman leaves the repo alone.
737
+ *
738
+ * `install` overrides the setting read: route handlers resolve it through their
739
+ * ConfigPort (`ctx.getWorkspaceHooksEnabled()`, which tests stub), and the boot sweep
740
+ * passes `true` after checking the setting once for its whole batch. Every other
741
+ * caller omits it and the synced setting is read from settings.json here — default ON
742
+ * when the key is absent or the file unreadable, matching the server's resolver.
743
+ *
744
+ * Callers gate on their own context (claude mode only; local — never a remote
745
+ * workingDir, which is a path on ANOTHER host, and never a docker case that opted
746
+ * out of hooks). The guards EVERY caller needs live here instead:
747
+ * - a workspace that does not exist is skipped — `ensureCodemanHooks` mkdir -p's,
748
+ * so a deleted repo whose tmux session survived would otherwise be resurrected
749
+ * as an empty directory tree holding only `.claude/settings.local.json`;
750
+ * - errors are swallowed — a session create must never fail on hooks.
751
+ */
752
+ export async function applyWorkspaceHooks(workspace, install) {
753
+ try {
754
+ if (!existsSync(workspace))
755
+ return;
756
+ const shouldInstall = install ?? (await readWorkspaceHooksEnabled());
757
+ await (shouldInstall ? ensureCodemanHooks(workspace) : refreshStaleCodemanHooks(workspace));
758
+ }
759
+ catch {
760
+ // Best-effort by contract (see doc comment): hooks degrade to output-based
761
+ // idle detection; the create goes ahead.
762
+ }
763
+ }
764
+ /**
765
+ * The synced `workspaceHooksEnabled` app setting, read straight from settings.json
766
+ * for callers that live outside the web layer (cron, scheduled runs, the plan
767
+ * orchestrator). Default ON: an absent key means a user who has never seen the
768
+ * setting, and OFF for them would mean no tab alerts, no Approvals Inbox and no
769
+ * respawn idle signals in every workspace Codeman did not scaffold itself.
770
+ */
771
+ async function readWorkspaceHooksEnabled() {
772
+ try {
773
+ const parsed = JSON.parse(await readFile(dataPath('settings.json'), 'utf-8'));
774
+ return parsed.workspaceHooksEnabled !== false;
775
+ }
776
+ catch {
777
+ return true;
778
+ }
779
+ }
713
780
  /** Unique marker identifying Codeman's own statusLine command (vs a user's). */
714
781
  const STATUSLINE_MARKER = '/api/status-telemetry';
715
782
  /**