aicodeman 1.28.2 → 1.29.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 (202) hide show
  1. package/README.md +58 -31
  2. package/README.zh-CN.md +207 -51
  3. package/dist/attachment-registry.d.ts +20 -0
  4. package/dist/attachment-registry.d.ts.map +1 -1
  5. package/dist/attachment-registry.js +75 -10
  6. package/dist/attachment-registry.js.map +1 -1
  7. package/dist/config/cli-registry/schema.d.ts +25 -0
  8. package/dist/config/cli-registry/schema.d.ts.map +1 -1
  9. package/dist/config/cli-registry/schema.js +43 -0
  10. package/dist/config/cli-registry/schema.js.map +1 -1
  11. package/dist/config/cli-registry/stock.d.ts.map +1 -1
  12. package/dist/config/cli-registry/stock.js +157 -2
  13. package/dist/config/cli-registry/stock.js.map +1 -1
  14. package/dist/config/cli-registry/types.d.ts +60 -0
  15. package/dist/config/cli-registry/types.d.ts.map +1 -1
  16. package/dist/custom-model-hosts.d.ts +39 -0
  17. package/dist/custom-model-hosts.d.ts.map +1 -0
  18. package/dist/custom-model-hosts.js +35 -0
  19. package/dist/custom-model-hosts.js.map +1 -0
  20. package/dist/custom-model-injection-apply.d.ts +49 -0
  21. package/dist/custom-model-injection-apply.d.ts.map +1 -0
  22. package/dist/custom-model-injection-apply.js +77 -0
  23. package/dist/custom-model-injection-apply.js.map +1 -0
  24. package/dist/custom-model-injection.d.ts +79 -0
  25. package/dist/custom-model-injection.d.ts.map +1 -0
  26. package/dist/custom-model-injection.js +169 -0
  27. package/dist/custom-model-injection.js.map +1 -0
  28. package/dist/docker-hosts.d.ts +42 -0
  29. package/dist/docker-hosts.d.ts.map +1 -1
  30. package/dist/docker-hosts.js +18 -0
  31. package/dist/docker-hosts.js.map +1 -1
  32. package/dist/generated-artifact-attachments.d.ts +3 -0
  33. package/dist/generated-artifact-attachments.d.ts.map +1 -1
  34. package/dist/generated-artifact-attachments.js +18 -8
  35. package/dist/generated-artifact-attachments.js.map +1 -1
  36. package/dist/mux-interface.d.ts +7 -0
  37. package/dist/mux-interface.d.ts.map +1 -1
  38. package/dist/remote-files.d.ts +145 -0
  39. package/dist/remote-files.d.ts.map +1 -0
  40. package/dist/remote-files.js +347 -0
  41. package/dist/remote-files.js.map +1 -0
  42. package/dist/remote-hosts.d.ts +12 -0
  43. package/dist/remote-hosts.d.ts.map +1 -1
  44. package/dist/remote-hosts.js +7 -1
  45. package/dist/remote-hosts.js.map +1 -1
  46. package/dist/remote-ssh-limiter.d.ts +42 -0
  47. package/dist/remote-ssh-limiter.d.ts.map +1 -0
  48. package/dist/remote-ssh-limiter.js +84 -0
  49. package/dist/remote-ssh-limiter.js.map +1 -0
  50. package/dist/session-auto-name.d.ts +74 -0
  51. package/dist/session-auto-name.d.ts.map +1 -0
  52. package/dist/session-auto-name.js +339 -0
  53. package/dist/session-auto-name.js.map +1 -0
  54. package/dist/session-manager.d.ts.map +1 -1
  55. package/dist/session-manager.js +8 -1
  56. package/dist/session-manager.js.map +1 -1
  57. package/dist/session.d.ts +123 -5
  58. package/dist/session.d.ts.map +1 -1
  59. package/dist/session.js +237 -9
  60. package/dist/session.js.map +1 -1
  61. package/dist/tmux-manager.d.ts.map +1 -1
  62. package/dist/tmux-manager.js +27 -13
  63. package/dist/tmux-manager.js.map +1 -1
  64. package/dist/types/api.d.ts +6 -0
  65. package/dist/types/api.d.ts.map +1 -1
  66. package/dist/types/api.js.map +1 -1
  67. package/dist/types/session.d.ts +48 -0
  68. package/dist/types/session.d.ts.map +1 -1
  69. package/dist/types/session.js.map +1 -1
  70. package/dist/web/middleware/auth.d.ts +11 -1
  71. package/dist/web/middleware/auth.d.ts.map +1 -1
  72. package/dist/web/middleware/auth.js +69 -1
  73. package/dist/web/middleware/auth.js.map +1 -1
  74. package/dist/web/public/admin-ui.js.gz +0 -0
  75. package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
  76. package/dist/web/public/{app.78bf0bf8.js → app.556be563.js} +7 -7
  77. package/dist/web/public/app.556be563.js.br +0 -0
  78. package/dist/web/public/app.556be563.js.gz +0 -0
  79. package/dist/web/public/approvals-ui.js.gz +0 -0
  80. package/dist/web/public/constants.258b140f.js.gz +0 -0
  81. package/dist/web/public/cron-ui.js.gz +0 -0
  82. package/dist/web/public/entrance-animations.js.gz +0 -0
  83. package/dist/web/public/home-sessions.js.gz +0 -0
  84. package/dist/web/public/i18n.5f897ed5.js +1 -0
  85. package/dist/web/public/i18n.5f897ed5.js.br +0 -0
  86. package/dist/web/public/i18n.5f897ed5.js.gz +0 -0
  87. package/dist/web/public/image-input.cd4b97c4.js.gz +0 -0
  88. package/dist/web/public/index.html +23 -9
  89. package/dist/web/public/index.html.br +0 -0
  90. package/dist/web/public/index.html.gz +0 -0
  91. package/dist/web/public/input-cjk.8bc46081.js +1 -0
  92. package/dist/web/public/input-cjk.8bc46081.js.br +0 -0
  93. package/dist/web/public/input-cjk.8bc46081.js.gz +0 -0
  94. package/dist/web/public/{keyboard-accessory.1d0dda9b.js → keyboard-accessory.2cf04f17.js} +38 -3
  95. package/dist/web/public/keyboard-accessory.2cf04f17.js.br +0 -0
  96. package/dist/web/public/keyboard-accessory.2cf04f17.js.gz +0 -0
  97. package/dist/web/public/mobile-handlers.6f354a87.js.gz +0 -0
  98. package/dist/web/public/mobile-overview.js.gz +0 -0
  99. package/dist/web/public/mobile.e9d0b53e.css.gz +0 -0
  100. package/dist/web/public/notification-manager.36ea4624.js.gz +0 -0
  101. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  102. package/dist/web/public/panels-ui.5b07ad14.js.gz +0 -0
  103. package/dist/web/public/ralph-panel.6de2d0f8.js.gz +0 -0
  104. package/dist/web/public/ralph-wizard.13a1831e.js.gz +0 -0
  105. package/dist/web/public/readmymind-ui.js.gz +0 -0
  106. package/dist/web/public/respawn-ui.ff0dae4c.js.gz +0 -0
  107. package/dist/web/public/sanitize-html.bc7078d6.js.gz +0 -0
  108. package/dist/web/public/session-lineage.js.gz +0 -0
  109. package/dist/web/public/{session-ui.5d0a7b15.js → session-ui.42b81477.js} +13 -13
  110. package/dist/web/public/session-ui.42b81477.js.br +0 -0
  111. package/dist/web/public/session-ui.42b81477.js.gz +0 -0
  112. package/dist/web/public/settings-ui.58f1d756.js +67 -0
  113. package/dist/web/public/settings-ui.58f1d756.js.br +0 -0
  114. package/dist/web/public/settings-ui.58f1d756.js.gz +0 -0
  115. package/dist/web/public/{styles.5d36726d.css → styles.6add175d.css} +1 -1
  116. package/dist/web/public/styles.6add175d.css.br +0 -0
  117. package/dist/web/public/{styles.5d36726d.css.gz → styles.6add175d.css.gz} +0 -0
  118. package/dist/web/public/subagent-windows.e6ca799f.js.gz +0 -0
  119. package/dist/web/public/sw.js.gz +0 -0
  120. package/dist/web/public/tab-rail-resize.42c24949.js.gz +0 -0
  121. package/dist/web/public/terminal-keycode229-recovery.6ea8fe37.js.gz +0 -0
  122. package/dist/web/public/terminal-ui.38c49244.js +2 -0
  123. package/dist/web/public/terminal-ui.38c49244.js.br +0 -0
  124. package/dist/web/public/terminal-ui.38c49244.js.gz +0 -0
  125. package/dist/web/public/ultracode-panel.js.gz +0 -0
  126. package/dist/web/public/ultracode-windows.js.gz +0 -0
  127. package/dist/web/public/upload.html.gz +0 -0
  128. package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
  129. package/dist/web/public/vendor/marked.min.js.gz +0 -0
  130. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  131. package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
  132. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  133. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  134. package/dist/web/public/vendor/xterm-predictive-echo.bd6882b8.js.gz +0 -0
  135. package/dist/web/public/vendor/xterm-zerolag-input.6fee72f2.js.gz +0 -0
  136. package/dist/web/public/vendor/xterm.css.gz +0 -0
  137. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  138. package/dist/web/public/voice-input.c4b51eb6.js.gz +0 -0
  139. package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
  140. package/dist/web/public/webview-tabs.js +56 -4
  141. package/dist/web/public/webview-tabs.js.br +0 -0
  142. package/dist/web/public/webview-tabs.js.gz +0 -0
  143. package/dist/web/route-helpers.d.ts +20 -0
  144. package/dist/web/route-helpers.d.ts.map +1 -1
  145. package/dist/web/route-helpers.js +29 -2
  146. package/dist/web/route-helpers.js.map +1 -1
  147. package/dist/web/routes/case-routes.d.ts.map +1 -1
  148. package/dist/web/routes/case-routes.js +23 -6
  149. package/dist/web/routes/case-routes.js.map +1 -1
  150. package/dist/web/routes/custom-model-routes.d.ts +18 -0
  151. package/dist/web/routes/custom-model-routes.d.ts.map +1 -0
  152. package/dist/web/routes/custom-model-routes.js +136 -0
  153. package/dist/web/routes/custom-model-routes.js.map +1 -0
  154. package/dist/web/routes/file-routes.d.ts.map +1 -1
  155. package/dist/web/routes/file-routes.js +484 -100
  156. package/dist/web/routes/file-routes.js.map +1 -1
  157. package/dist/web/routes/index.d.ts +1 -0
  158. package/dist/web/routes/index.d.ts.map +1 -1
  159. package/dist/web/routes/index.js +1 -0
  160. package/dist/web/routes/index.js.map +1 -1
  161. package/dist/web/routes/session-routes.d.ts.map +1 -1
  162. package/dist/web/routes/session-routes.js +93 -7
  163. package/dist/web/routes/session-routes.js.map +1 -1
  164. package/dist/web/routes/ws-routes.d.ts.map +1 -1
  165. package/dist/web/routes/ws-routes.js +28 -3
  166. package/dist/web/routes/ws-routes.js.map +1 -1
  167. package/dist/web/schemas.d.ts +21 -0
  168. package/dist/web/schemas.d.ts.map +1 -1
  169. package/dist/web/schemas.js +38 -0
  170. package/dist/web/schemas.js.map +1 -1
  171. package/dist/web/server.d.ts +8 -0
  172. package/dist/web/server.d.ts.map +1 -1
  173. package/dist/web/server.js +70 -3
  174. package/dist/web/server.js.map +1 -1
  175. package/dist/web/session-listener-wiring.d.ts +6 -2
  176. package/dist/web/session-listener-wiring.d.ts.map +1 -1
  177. package/dist/web/session-listener-wiring.js +33 -2
  178. package/dist/web/session-listener-wiring.js.map +1 -1
  179. package/dist/web/webview-proxy.d.ts +41 -0
  180. package/dist/web/webview-proxy.d.ts.map +1 -1
  181. package/dist/web/webview-proxy.js +102 -1
  182. package/dist/web/webview-proxy.js.map +1 -1
  183. package/package.json +2 -2
  184. package/dist/web/public/app.78bf0bf8.js.br +0 -0
  185. package/dist/web/public/app.78bf0bf8.js.gz +0 -0
  186. package/dist/web/public/i18n.561ca09c.js +0 -1
  187. package/dist/web/public/i18n.561ca09c.js.br +0 -0
  188. package/dist/web/public/i18n.561ca09c.js.gz +0 -0
  189. package/dist/web/public/input-cjk.87f14251.js +0 -1
  190. package/dist/web/public/input-cjk.87f14251.js.br +0 -0
  191. package/dist/web/public/input-cjk.87f14251.js.gz +0 -0
  192. package/dist/web/public/keyboard-accessory.1d0dda9b.js.br +0 -0
  193. package/dist/web/public/keyboard-accessory.1d0dda9b.js.gz +0 -0
  194. package/dist/web/public/session-ui.5d0a7b15.js.br +0 -0
  195. package/dist/web/public/session-ui.5d0a7b15.js.gz +0 -0
  196. package/dist/web/public/settings-ui.e0c7f6b4.js +0 -67
  197. package/dist/web/public/settings-ui.e0c7f6b4.js.br +0 -0
  198. package/dist/web/public/settings-ui.e0c7f6b4.js.gz +0 -0
  199. package/dist/web/public/styles.5d36726d.css.br +0 -0
  200. package/dist/web/public/terminal-ui.0cbe8637.js +0 -2
  201. package/dist/web/public/terminal-ui.0cbe8637.js.br +0 -0
  202. package/dist/web/public/terminal-ui.0cbe8637.js.gz +0 -0
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"attachment-registry.d.ts","sourceRoot":"","sources":["../src/attachment-registry.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,10 @@ import { randomUUID } from 'node:crypto';
9
9
  import { realpathSync } from 'node:fs';
10
10
  import fs from 'node:fs/promises';
11
11
  import { basename, extname, isAbsolute } from 'node:path';
12
- import { isBlockedAttachmentPath, loadAttachmentGuardConfig } from './config/attachment-guard.js';
12
+ import { isBlockedAttachmentPath, isUnderTree, loadAttachmentGuardConfig } from './config/attachment-guard.js';
13
13
  import { EDITABLE_EXTENSIONS } from './config/file-editing.js';
14
14
  import { validateSessionFilePath } from './web/route-helpers.js';
15
+ import { remoteProbePaths, RemoteFileAccessError } from './remote-files.js';
15
16
  /**
16
17
  * Playable media extensions, single-sourced here because the WORKSPACE preview
17
18
  * (`file-content`'s media classification) and the out-of-workspace attachment
@@ -156,10 +157,12 @@ export function attachmentRecordToEvent(record) {
156
157
  ...routes,
157
158
  };
158
159
  }
159
- export async function registerExternalAttachment(sessionId, requestedPath, options = {}) {
160
- if (!requestedPath || !isAbsolute(requestedPath)) {
161
- throw new AttachmentRegistrationError('Attachment path must be an absolute local path');
162
- }
160
+ /** `extension` the way the attachment registry defines it (no dot, lowercased). */
161
+ function attachmentExtensionOf(path) {
162
+ return extname(path).toLowerCase().replace(/^\./, '');
163
+ }
164
+ /** Local resolution: the historical realpath + stat. */
165
+ async function resolveLocalAttachment(requestedPath) {
163
166
  let resolvedPath;
164
167
  try {
165
168
  resolvedPath = realpathSync(requestedPath);
@@ -167,6 +170,56 @@ export async function registerExternalAttachment(sessionId, requestedPath, optio
167
170
  catch {
168
171
  throw new AttachmentRegistrationError('Attachment file not found', 404);
169
172
  }
173
+ const stat = await fs.stat(resolvedPath);
174
+ return {
175
+ resolvedPath,
176
+ size: stat.size,
177
+ mtimeMs: stat.mtimeMs ?? 0,
178
+ isFile: typeof stat.isFile === 'function' ? stat.isFile() : true,
179
+ extension: attachmentExtensionOf(resolvedPath),
180
+ };
181
+ }
182
+ /**
183
+ * Remote resolution for a remote-SSH case: ONE ssh round trip returns the
184
+ * symlink-resolved path, the size/mtime and the kind, for the file AND (when a
185
+ * workspace is known) its root, which the confinement check compares against.
186
+ */
187
+ async function resolveRemoteAttachment(requestedPath, remote, sessionWorkingDir, preResolved) {
188
+ const paths = sessionWorkingDir ? [requestedPath, sessionWorkingDir] : [requestedPath];
189
+ let probes;
190
+ if (preResolved) {
191
+ probes = preResolved;
192
+ }
193
+ else {
194
+ try {
195
+ probes = await remoteProbePaths(remote, paths);
196
+ }
197
+ catch (err) {
198
+ // 502 marks the TRANSPORT as the failure, distinct from the file's own 404/403,
199
+ // so a history listing can report the entry as unknown rather than missing.
200
+ throw new AttachmentRegistrationError(err instanceof RemoteFileAccessError ? err.message : 'remote host unreachable', 502);
201
+ }
202
+ }
203
+ const [probe, rootProbe] = probes;
204
+ if (!probe) {
205
+ throw new AttachmentRegistrationError('Attachment file not found', 404);
206
+ }
207
+ return {
208
+ resolvedPath: probe.realPath,
209
+ size: probe.size,
210
+ mtimeMs: probe.mtimeMs,
211
+ isFile: probe.kind === 'file',
212
+ extension: attachmentExtensionOf(probe.realPath),
213
+ workspaceRoot: rootProbe?.realPath,
214
+ };
215
+ }
216
+ export async function registerExternalAttachment(sessionId, requestedPath, options = {}) {
217
+ if (!requestedPath || !isAbsolute(requestedPath)) {
218
+ throw new AttachmentRegistrationError('Attachment path must be an absolute local path');
219
+ }
220
+ const resolved = await (options.remote
221
+ ? resolveRemoteAttachment(requestedPath, options.remote, options.sessionWorkingDir, options.remoteProbes)
222
+ : resolveLocalAttachment(requestedPath));
170
223
  // COD-53: enforce the active attachment-guard policy on the symlink-resolved
171
224
  // path before doing anything else.
172
225
  const guard = await loadAttachmentGuardConfig();
@@ -176,7 +229,10 @@ export async function registerExternalAttachment(sessionId, requestedPath, optio
176
229
  // the caller forces it for this registration (the magic-link scanner — see
177
230
  // forceWorkspaceConfinement). Strictly more restrictive than the blocklist.
178
231
  const workingDir = options.sessionWorkingDir;
179
- if (!workingDir || !validateSessionFilePath(workingDir, resolvedPath)) {
232
+ const confined = options.remote
233
+ ? !!workingDir && isUnderTree(resolved.resolvedPath, resolved.workspaceRoot ?? workingDir)
234
+ : !!workingDir && !!validateSessionFilePath(workingDir, resolved.resolvedPath);
235
+ if (!confined) {
180
236
  throw new AttachmentRegistrationError('Access to this file is blocked', 403);
181
237
  }
182
238
  }
@@ -185,17 +241,26 @@ export async function registerExternalAttachment(sessionId, requestedPath, optio
185
241
  // operator-configured extra trees. Symlinks are already resolved above.
186
242
  // Cross-workspace attachment of non-blocked files stays allowed, so
187
243
  // codeman-publish and the ~/.codeman review loop keep working.
188
- if (isBlockedAttachmentPath(resolvedPath, guard.blockedTrees)) {
244
+ //
245
+ // The list is a pattern list over ABSOLUTE paths, so it is host-agnostic and holds
246
+ // for a remote path exactly as it does for a local one, with ONE exception worth
247
+ // knowing: `isSensitivePath`'s three home-anchored members (`~/.claude.json`,
248
+ // `~/.claude/settings.json`, `~/.claude/settings.local.json`) resolve against THIS
249
+ // host's `homedir()`, so on a remote host with a different home they do not match.
250
+ // Everything else in that list is depth-anchored (`/.ssh/`, `/.aws/credentials`,
251
+ // `/.claude/.credentials.json`, ...) and applies unchanged.
252
+ if (isBlockedAttachmentPath(resolved.resolvedPath, guard.blockedTrees)) {
189
253
  throw new AttachmentRegistrationError('Access to this file is blocked', 403);
190
254
  }
191
- const extension = extname(resolvedPath).toLowerCase().replace(/^\./, '');
255
+ const resolvedPath = resolved.resolvedPath;
256
+ const extension = resolved.extension;
192
257
  if (!isSupportedAttachmentExtension(extension)) {
193
258
  throw new AttachmentRegistrationError('Unsupported attachment type');
194
259
  }
195
- const stat = await fs.stat(resolvedPath);
196
- if (typeof stat.isFile === 'function' && !stat.isFile()) {
260
+ if (!resolved.isFile) {
197
261
  throw new AttachmentRegistrationError('Attachment path is not a file');
198
262
  }
263
+ const stat = { size: resolved.size, mtimeMs: resolved.mtimeMs };
199
264
  const existing = attachmentRegistry.findByFilePath(sessionId, resolvedPath);
200
265
  if (existing) {
201
266
  existing.size = stat.size;
@@ -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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"}
@@ -242,6 +242,31 @@ export declare const CliEntrySchema: z.ZodObject<{
242
242
  failClosed: z.ZodBoolean;
243
243
  }, z.core.$strict>>;
244
244
  maxFrameBytes: z.ZodOptional<z.ZodNumber>;
245
+ customModelInjection: z.ZodDiscriminatedUnion<[z.ZodObject<{
246
+ kind: z.ZodLiteral<"env">;
247
+ baseUrlVar: z.ZodString;
248
+ apiKeyVar: z.ZodString;
249
+ modelVars: z.ZodArray<z.ZodString>;
250
+ launchModel: z.ZodOptional<z.ZodString>;
251
+ }, z.core.$strict>, z.ZodObject<{
252
+ kind: z.ZodLiteral<"configContentEnv">;
253
+ envVar: z.ZodString;
254
+ template: z.ZodLiteral<"opencode-json">;
255
+ launchModel: z.ZodOptional<z.ZodString>;
256
+ }, z.core.$strict>, z.ZodObject<{
257
+ kind: z.ZodLiteral<"configDir">;
258
+ dirEnvVar: z.ZodString;
259
+ fileName: z.ZodString;
260
+ template: z.ZodEnum<{
261
+ "codex-toml": "codex-toml";
262
+ "pi-models-json": "pi-models-json";
263
+ "omp-models-yml": "omp-models-yml";
264
+ "grok-toml": "grok-toml";
265
+ }>;
266
+ launchModel: z.ZodOptional<z.ZodString>;
267
+ }, z.core.$strict>, z.ZodObject<{
268
+ kind: z.ZodLiteral<"unsupported">;
269
+ }, z.core.$strict>], "kind">;
245
270
  }, z.core.$strict>;
246
271
  overlays: z.ZodObject<{
247
272
  remote: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/config/cli-registry/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0VxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAyFvB,CAAC;AAEL,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/config/cli-registry/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsYxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAyFvB,CAAC;AAEL,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -240,6 +240,18 @@ const echoSchema = z
240
240
  predictProfile: z.string().max(40).optional(),
241
241
  })
242
242
  .strict();
243
+ /**
244
+ * `capabilities.customModelInjection.launchModel`: the `model` launch-param value that
245
+ * selects the injected provider, with `{modelId}` standing for the chosen id. Bounded to
246
+ * the characters the `model`/`model-pi` token patterns accept plus the placeholder braces,
247
+ * so a template can never smuggle a token the argv engine would have to quote.
248
+ */
249
+ const launchModelTemplate = z
250
+ .string()
251
+ .min(1)
252
+ .max(120)
253
+ .regex(/^[a-zA-Z0-9._\-/:{}]+$/)
254
+ .optional();
243
255
  const capabilitiesSchema = z
244
256
  .object({
245
257
  external: z.boolean(),
@@ -291,6 +303,37 @@ const capabilitiesSchema = z
291
303
  privilegedEnvKeys: z.array(envName).max(8),
292
304
  gates: z.record(z.string(), z.object({ minVersion: z.string().max(20), failClosed: z.boolean() }).strict()),
293
305
  maxFrameBytes: z.number().int().positive().optional(),
306
+ customModelInjection: z.discriminatedUnion('kind', [
307
+ z
308
+ .object({
309
+ kind: z.literal('env'),
310
+ baseUrlVar: envName,
311
+ apiKeyVar: envName,
312
+ // Empty is valid: deepseek's model routing is a profile-composition concern, not
313
+ // an env var, so it declares baseUrl/apiKey injection with no model var at all.
314
+ modelVars: z.array(envName).max(8),
315
+ launchModel: launchModelTemplate,
316
+ })
317
+ .strict(),
318
+ z
319
+ .object({
320
+ kind: z.literal('configContentEnv'),
321
+ envVar: envName,
322
+ template: z.literal('opencode-json'),
323
+ launchModel: launchModelTemplate,
324
+ })
325
+ .strict(),
326
+ z
327
+ .object({
328
+ kind: z.literal('configDir'),
329
+ dirEnvVar: envName,
330
+ fileName: z.string().min(1).max(80),
331
+ template: z.enum(['codex-toml', 'pi-models-json', 'omp-models-yml', 'grok-toml']),
332
+ launchModel: launchModelTemplate,
333
+ })
334
+ .strict(),
335
+ z.object({ kind: z.literal('unsupported') }).strict(),
336
+ ]),
294
337
  })
295
338
  .strict();
296
339
  const credStoreSchema = z
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/config/cli-registry/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/config/cli-registry/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stock.d.ts","sourceRoot":"","sources":["../../../src/config/cli-registry/stock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA4hC3C,0EAA0E;AAC1E,eAAO,MAAM,UAAU,EAAE,QAAQ,EAAmF,CAAC"}
1
+ {"version":3,"file":"stock.d.ts","sourceRoot":"","sources":["../../../src/config/cli-registry/stock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAurC3C,0EAA0E;AAC1E,eAAO,MAAM,UAAU,EAAE,QAAQ,EAAmF,CAAC"}
@@ -162,6 +162,12 @@ const CLAUDE = {
162
162
  unset: ['CLAUDECODE'],
163
163
  tmuxSetenvKeys: [],
164
164
  dockerExecEnvNames: [],
165
+ // Deliberately excludes ANTHROPIC_* (base URL / API key / default-model overrides):
166
+ // custom-model-injection.ts's claude recipe uses those names, but they must reach a
167
+ // session ONLY through the admin-configured, SSRF-guarded custom-model route, never
168
+ // through a plain client-supplied envOverrides field. Widening this prefix would let
169
+ // any session-create caller redirect a session's Anthropic traffic and credentials to
170
+ // an arbitrary, unvalidated URL.
165
171
  allowedPrefixes: ['CLAUDE_CODE_'],
166
172
  allowedKeys: ['CLAUDE_CONFIG_DIR'],
167
173
  },
@@ -193,8 +199,28 @@ const CLAUDE = {
193
199
  statusLineTelemetry: true,
194
200
  model: { source: 'claude-settings-file' },
195
201
  privilegedParams: [],
196
- privilegedEnvKeys: [],
202
+ // ANTHROPIC_* is NOT in allowedPrefixes/allowedKeys above (deliberately — see the
203
+ // allowedPrefixes comment nearby), so these are unreachable via plain envOverrides
204
+ // today; listed here only so the dedicated custom-model route (docs/custom-model-endpoints-plan.md
205
+ // chunk 5) clamps them for a non-granted multi-user owner the same way every other
206
+ // CLI's injection vars are clamped, the day that route widens who can set them.
207
+ privilegedEnvKeys: [
208
+ 'ANTHROPIC_BASE_URL',
209
+ 'ANTHROPIC_API_KEY',
210
+ 'ANTHROPIC_DEFAULT_SONNET_MODEL',
211
+ 'ANTHROPIC_DEFAULT_HAIKU_MODEL',
212
+ 'ANTHROPIC_DEFAULT_OPUS_MODEL',
213
+ ],
197
214
  gates: { nameFlag: { minVersion: '2.1.224', failClosed: true } },
215
+ // Custom Model Endpoint Profiles (docs/custom-model-endpoints-plan.md) — verified by hand against a real
216
+ // llama.cpp server. Claude reads these at process start only, so switching requires a
217
+ // respawn, never a live hot-swap.
218
+ customModelInjection: {
219
+ kind: 'env',
220
+ baseUrlVar: 'ANTHROPIC_BASE_URL',
221
+ apiKeyVar: 'ANTHROPIC_API_KEY',
222
+ modelVars: ['ANTHROPIC_DEFAULT_SONNET_MODEL', 'ANTHROPIC_DEFAULT_HAIKU_MODEL', 'ANTHROPIC_DEFAULT_OPUS_MODEL'],
223
+ },
198
224
  },
199
225
  overlays: {
200
226
  // Mirrors the local default so the remote/in-container agent runs non-interactively
@@ -259,6 +285,7 @@ const SHELL = {
259
285
  privilegedParams: [],
260
286
  privilegedEnvKeys: [],
261
287
  gates: {},
288
+ customModelInjection: { kind: 'unsupported' }, // a raw shell has no "model" concept
262
289
  },
263
290
  overlays: {
264
291
  // No `remote` entry: defaultRemoteCommandForMode special-cases kind==='shell' directly
@@ -337,6 +364,15 @@ const OPENCODE = {
337
364
  ...agentDefaults(),
338
365
  altScreen: 'strip-mux-only',
339
366
  echo: { policy: 'buffer', anchor: { kind: 'cursor' }, predictProfile: undefined },
367
+ // Verified by hand against a real llama.cpp server. Reuses the SAME env var opencode's
368
+ // own `env.configContentVar` already declares — the builder in custom-model-injection.ts
369
+ // must merge into whatever opencode config Codeman would otherwise send, not clobber it.
370
+ customModelInjection: { kind: 'configContentEnv', envVar: 'OPENCODE_CONFIG_CONTENT', template: 'opencode-json' },
371
+ // OPENCODE_CONFIG_CONTENT already matches the OPENCODE_ allowedPrefix above, so it was
372
+ // ALREADY reachable via plain envOverrides before this feature existed — it replaces
373
+ // opencode's whole config, provider api keys included, so a non-granted multi-user owner
374
+ // sending it is a pre-existing credential-redirection gap, not one this feature opens.
375
+ privilegedEnvKeys: ['OPENCODE_CONFIG_CONTENT'],
340
376
  },
341
377
  overlays: {
342
378
  credStore: { rel: '.config/opencode', seedWhole: true },
@@ -425,6 +461,23 @@ const CODEX = {
425
461
  // `dangerouslyBypassApprovals` on the wire), so it is the one that would have caught a
426
462
  // regression; `schema.ts` now rejects a name that is not a declared param.
427
463
  privilegedParams: [{ param: 'bypassApprovals', clampTo: false }],
464
+ // Verified by hand against a real llama.cpp server. Written to an isolated CODEX_HOME
465
+ // so the user's real ~/.codex/config.toml is never touched.
466
+ customModelInjection: {
467
+ kind: 'configDir',
468
+ dirEnvVar: 'CODEX_HOME',
469
+ fileName: 'config.toml',
470
+ template: 'codex-toml',
471
+ },
472
+ // CODEX_HOME already matches the CODEX_ allowedPrefix above, so it was ALREADY
473
+ // reachable via plain envOverrides before this feature existed. It is arguably
474
+ // MORE sensitive than a bare base-url var: a redirected CODEX_HOME points codex at a
475
+ // config.toml a non-granted owner fully controls, which can restate sandbox/approval
476
+ // policy INSIDE that file — a path the argv-level `bypassApprovals` clamp above
477
+ // cannot see or stop.
478
+ // CODEMAN_CUSTOM_MODEL_API_KEY: the credential config.toml's env_key references
479
+ // (see custom-model-injection.ts) — same reasoning as CODEX_HOME above.
480
+ privilegedEnvKeys: ['CODEX_HOME', 'CODEMAN_CUSTOM_MODEL_API_KEY'],
428
481
  },
429
482
  overlays: {
430
483
  credStore: {
@@ -507,6 +560,20 @@ const GEMINI = {
507
560
  // MATERIALIZE a config (not just touch an already-sent one) or a non-granted owner who
508
561
  // sends no geminiConfig at all would still get yolo for free.
509
562
  privilegedParams: [{ param: 'approvalMode', clampTo: 'auto_edit', materializeWhenAbsent: true }],
563
+ // Web-researched, unverified — needs a restart to pick up (CLI reads these at process
564
+ // start). Confirm the exact model-override env var name against the installed
565
+ // gemini-cli version before shipping.
566
+ customModelInjection: {
567
+ kind: 'env',
568
+ baseUrlVar: 'GOOGLE_GEMINI_BASE_URL',
569
+ apiKeyVar: 'GEMINI_API_KEY',
570
+ modelVars: ['GEMINI_MODEL'],
571
+ },
572
+ // All three already match the GEMINI_/GOOGLE_ allowedPrefixes above, so they were
573
+ // ALREADY reachable via plain envOverrides before this feature existed — a non-granted
574
+ // multi-user owner redirecting a gemini session's endpoint/credentials is a
575
+ // pre-existing gap this feature's analysis surfaced, not one it opens.
576
+ privilegedEnvKeys: ['GOOGLE_GEMINI_BASE_URL', 'GEMINI_API_KEY', 'GEMINI_MODEL'],
510
577
  },
511
578
  overlays: {
512
579
  credStore: { rel: '.gemini', seedWhole: true }, // also covers antigravity — see its own entry
@@ -571,6 +638,10 @@ const ANTIGRAVITY = {
571
638
  // Like codex: an ABSENT config already defaults safe (no bypass flag), so only a
572
639
  // SENT config needs the flag forced off — nothing is materialized.
573
640
  privilegedParams: [{ param: 'dangerouslySkipPermissions', clampTo: false }],
641
+ // No known CLI/env/config mechanism — Antigravity's own docs describe a GUI-only
642
+ // custom-endpoint setting and explicitly say it "cannot currently" become the core
643
+ // reasoning model. Toolbar entry stays disabled for this mode.
644
+ customModelInjection: { kind: 'unsupported' },
574
645
  },
575
646
  overlays: {
576
647
  // No credStore of its own: agy nests its whole state under ~/.gemini/antigravity-cli/,
@@ -660,6 +731,34 @@ const PI = {
660
731
  // just answer "yes" to, so omitting --approve is not itself a clamp — MATERIALIZE
661
732
  // approveProjectTrust:false so buildPiCommand emits --no-approve outright.
662
733
  privilegedParams: [{ param: 'approveProjectTrust', clampTo: false, materializeWhenAbsent: true }],
734
+ // CORRECTED after live-testing: `PI_CONFIG_DIR` does NOT exist anywhere in pi's own
735
+ // bundled source (grepped the installed package directly) — it does nothing for pi
736
+ // itself, despite being a real Codeman env var that OTHER things (omp) read. The
737
+ // confirmed working redirect is `HOME` itself: pi hardcodes `~/.pi/agent/models.json`
738
+ // with no dedicated override, so redirecting the CHILD PROCESS's HOME is what
739
+ // actually relocates it (verified: a model written under an isolated HOME's
740
+ // `.pi/agent/models.json` shows up in `pi --list-models` and answers a real prompt
741
+ // against a real llama-swap server; PI_CONFIG_DIR alone left it silently unable to
742
+ // see any provider). ⚠️ This is a bigger blast radius than a dedicated config-dir
743
+ // var: it also redirects pi's real sessions/auth/extensions for the DURATION of a
744
+ // custom-model session, not just its provider config — document this trade-off
745
+ // wherever this capability is surfaced.
746
+ customModelInjection: {
747
+ kind: 'configDir',
748
+ dirEnvVar: 'HOME',
749
+ fileName: '.pi/agent/models.json',
750
+ template: 'pi-models-json',
751
+ // Writing models.json is not enough: without `--model custom/<id>` pi stays on its
752
+ // own default provider and fails with "No API key found for the selected model"
753
+ // (confirmed live). `custom` is the provider name pi-models-json declares.
754
+ launchModel: 'custom/{modelId}',
755
+ },
756
+ // HOME is not `PI_`-prefixed, so unlike the old (wrong) PI_CONFIG_DIR guess this was
757
+ // never reachable via the generic envOverrides allowlist at all — listed here anyway,
758
+ // matching the documented pattern for every other CLI's dir-redirect var, since a
759
+ // redirected HOME is at least as sensitive as CODEX_HOME/GROK_HOME (pi executes
760
+ // repo-local .pi/extensions TypeScript — see the External CLI modes note in CLAUDE.md).
761
+ privilegedEnvKeys: ['HOME'],
663
762
  },
664
763
  overlays: {
665
764
  credStore: {
@@ -754,6 +853,28 @@ const GROK = {
754
853
  // already its safe interactive ask-mode, so the multi-user clamp only needs to force an
755
854
  // EXPLICITLY-SENT bypass flag back off — nothing is materialized when config is absent.
756
855
  privilegedParams: [{ param: 'alwaysApprove', clampTo: false }],
856
+ // CORRECTED after live-testing against a real grok binary: the original `env` kind
857
+ // (GROK_BASE_URL/GROK_MODEL/XAI_API_KEY) produced "Not signed in" — those env vars
858
+ // are NOT grok's real custom-endpoint mechanism. The real one (verified against
859
+ // xAI's own docs) is a `[model.<name>]` block in a config.toml under GROK_HOME,
860
+ // the same configDir shape as codex/pi/omp. `api_backend = "chat_completions"` is
861
+ // explicitly supported (unlike codex, which dropped it) — grok CAN talk to a plain
862
+ // OpenAI Chat-Completions server directly.
863
+ customModelInjection: {
864
+ kind: 'configDir',
865
+ dirEnvVar: 'GROK_HOME',
866
+ fileName: 'config.toml',
867
+ template: 'grok-toml',
868
+ // The `[model.<name>]` block the grok-toml template writes; `--model <name>` is what
869
+ // selects it (GROK_CUSTOM_MODEL_NAME in custom-model-injection.ts, pinned equal by
870
+ // test/custom-model-injection.test.ts so the two cannot drift).
871
+ launchModel: 'codeman-custom',
872
+ },
873
+ // GROK_HOME already matches the GROK_ allowedPrefix above, so it was ALREADY
874
+ // reachable via plain envOverrides before this feature existed — same reasoning
875
+ // as CODEX_HOME: a redirected config dir can restate policy the argv-level
876
+ // `alwaysApprove` clamp above cannot see.
877
+ privilegedEnvKeys: ['GROK_HOME'],
757
878
  },
758
879
  overlays: {
759
880
  // ~/.grok also holds sessions/, memory/, downloads/ (the ~160MB binary), completions/,
@@ -908,7 +1029,23 @@ const DEEPSEEK = {
908
1029
  // The half no other CLI needs. `DSH_*` is an allowlisted envOverrides prefix and
909
1030
  // applyEnvOverrides() runs LAST, so without this a non-granted owner could send
910
1031
  // DSH_PERMISSION_MODE on the same request and land after the config clamp.
1032
+ // ⚠️ DEEPSEEK_API_KEY deliberately stays OUT of this list (see the docstring on
1033
+ // clampEnvOverridesForOwner() in session-routes.ts): _configureCliEnv() forwards the
1034
+ // SERVER's own key into every dsh pane, so DEEPSEEK_BASE_URL is the exfiltration
1035
+ // vector, not the key itself — a non-granted owner supplying THEIR OWN key removes
1036
+ // privilege rather than granting it, and clamping it here was a real regression
1037
+ // (test/deepseek-mode.test.ts) fixed before this shipped.
911
1038
  privilegedEnvKeys: ['DSH_PERMISSION_MODE', 'DSH_HOME', 'DEEPSEEK_BASE_URL'],
1039
+ // Web-researched, unverified, partial: reuses the already-existing DEEPSEEK_BASE_URL/
1040
+ // DEEPSEEK_API_KEY keys above. No modelVars — dsh's model is a profile-composition
1041
+ // entry (see `model: { source: 'none' }` above), not an env var, so forcing a specific
1042
+ // model name may not fully work; verify against a real profile before shipping.
1043
+ customModelInjection: {
1044
+ kind: 'env',
1045
+ baseUrlVar: 'DEEPSEEK_BASE_URL',
1046
+ apiKeyVar: 'DEEPSEEK_API_KEY',
1047
+ modelVars: [],
1048
+ },
912
1049
  },
913
1050
  overlays: {
914
1051
  // No credStore: dsh keeps everything under $DSH_HOME (default ~/.dsh), which is
@@ -1009,7 +1146,25 @@ const OMP = {
1009
1146
  // Where omp resolves its auth from. No known concrete exfiltration path today (omp
1010
1147
  // forwards no operator-held key into a pane), but a non-granted owner redirecting where
1011
1148
  // a shared multi-tenant deployment resolves auth is not something to allow silently.
1012
- privilegedEnvKeys: ['OMP_AUTH_BROKER_URL', 'OMP_AUTH_BROKER_TOKEN'],
1149
+ // HOME added for custom-model-injection.ts's omp recipe (see below). Unlike pi,
1150
+ // PI_CONFIG_DIR genuinely IS one of the env vars omp reads (per the DeepSeek/OMP
1151
+ // note in CLAUDE.md) — but live-testing this feature found it did NOT relocate
1152
+ // omp's model config the way expected, while redirecting HOME itself (like pi)
1153
+ // worked immediately (verified end-to-end: a real "hello world" reply came back).
1154
+ privilegedEnvKeys: ['OMP_AUTH_BROKER_URL', 'OMP_AUTH_BROKER_TOKEN', 'HOME'],
1155
+ // Verified end-to-end against a real llama-swap server (live-tested, not just
1156
+ // researched — a real "hello world" reply came back). Same HOME-redirect mechanism
1157
+ // as pi (see its customModelInjection comment for the full reasoning) — omp hardcodes
1158
+ // `~/.omp/agent/models.yml` with no dedicated config-dir override either.
1159
+ customModelInjection: {
1160
+ kind: 'configDir',
1161
+ dirEnvVar: 'HOME',
1162
+ fileName: '.omp/agent/models.yml',
1163
+ template: 'omp-models-yml',
1164
+ // Same as pi: omp's own default model has no credential, so without an explicit
1165
+ // `--model custom/<id>` it never reaches the injected provider at all.
1166
+ launchModel: 'custom/{modelId}',
1167
+ },
1013
1168
  },
1014
1169
  overlays: {
1015
1170
  // `~/.omp/agent` also holds agent.db/history.db/models.db (SQLite caches) and