@gajae-code/coding-agent 0.17.1 → 0.17.4

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 (375) hide show
  1. package/CHANGELOG.md +266 -0
  2. package/dist/types/async/job-manager.d.ts +7 -6
  3. package/dist/types/cli/daemon-cli.d.ts +3 -1
  4. package/dist/types/cli/github-release.d.ts +17 -0
  5. package/dist/types/cli/public-command-entry.d.ts +56 -0
  6. package/dist/types/cli/public-command-errors.d.ts +126 -0
  7. package/dist/types/cli/public-command-evidence.d.ts +99 -0
  8. package/dist/types/cli/public-command-help.d.ts +65 -0
  9. package/dist/types/cli/public-command-registry.d.ts +69 -0
  10. package/dist/types/cli/session-picker.d.ts +1 -1
  11. package/dist/types/cli/setup-cli.d.ts +1 -0
  12. package/dist/types/cli/skills-cli.d.ts +5 -0
  13. package/dist/types/cli.d.ts +3 -0
  14. package/dist/types/commands/daemon.d.ts +4 -50
  15. package/dist/types/commands/sdk.d.ts +20 -37
  16. package/dist/types/commands/setup.d.ts +3 -0
  17. package/dist/types/commands/skills.d.ts +9 -0
  18. package/dist/types/config/autorouting-tier-map.d.ts +24 -0
  19. package/dist/types/config/file-lock.d.ts +10 -1
  20. package/dist/types/config/model-profile-activation.d.ts +63 -4
  21. package/dist/types/config/model-registry.d.ts +20 -2
  22. package/dist/types/config/settings-schema.d.ts +11 -0
  23. package/dist/types/coordinator-mcp/question-state.d.ts +6 -1
  24. package/dist/types/coordinator-mcp/server.d.ts +3 -0
  25. package/dist/types/daemon/operator-contract.d.ts +5 -1
  26. package/dist/types/eval/js/worker-protocol.d.ts +2 -0
  27. package/dist/types/extensibility/extensions/types.d.ts +12 -0
  28. package/dist/types/extensibility/gjc-plugins/registry.d.ts +4 -0
  29. package/dist/types/extensibility/runtime-skill-discovery.d.ts +18 -0
  30. package/dist/types/extensibility/shared-events.d.ts +3 -1
  31. package/dist/types/gjc-runtime/session-state-lock.d.ts +61 -0
  32. package/dist/types/internal-urls/embedded-protocol.d.ts +9 -0
  33. package/dist/types/internal-urls/index.d.ts +1 -0
  34. package/dist/types/internal-urls/parse.d.ts +9 -1
  35. package/dist/types/main.d.ts +22 -0
  36. package/dist/types/modes/acp/acp-agent.d.ts +94 -1
  37. package/dist/types/modes/acp/startup-provenance.d.ts +16 -0
  38. package/dist/types/modes/components/custom-provider-wizard.d.ts +19 -1
  39. package/dist/types/modes/components/session-selector.d.ts +5 -2
  40. package/dist/types/modes/components/thinking-selector.d.ts +2 -1
  41. package/dist/types/modes/components/user-message-selector.d.ts +5 -2
  42. package/dist/types/modes/controllers/command-controller.d.ts +1 -1
  43. package/dist/types/modes/controllers/selector-controller.d.ts +1 -1
  44. package/dist/types/modes/interactive-mode.d.ts +1 -1
  45. package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +11 -1
  46. package/dist/types/modes/shared/agent-wire/workflow-gate-types.d.ts +14 -1
  47. package/dist/types/modes/types.d.ts +2 -2
  48. package/dist/types/runtime/process-lifecycle.d.ts +2 -0
  49. package/dist/types/runtime-mcp/manager.d.ts +56 -0
  50. package/dist/types/runtime-mcp/pool.d.ts +17 -0
  51. package/dist/types/runtime-mcp/redaction.d.ts +20 -0
  52. package/dist/types/runtime-mcp/startup-policy.d.ts +6 -0
  53. package/dist/types/runtime-mcp/tool-bridge.d.ts +9 -0
  54. package/dist/types/runtime-mcp/transports/http.d.ts +11 -0
  55. package/dist/types/sdk/acp/adapter.d.ts +27 -0
  56. package/dist/types/sdk/acp/final-text.d.ts +8 -0
  57. package/dist/types/sdk/broker/broker.d.ts +13 -2
  58. package/dist/types/sdk/broker/ensure.d.ts +46 -1
  59. package/dist/types/sdk/broker/identity.d.ts +3 -1
  60. package/dist/types/sdk/broker/lifecycle-ledger.d.ts +23 -3
  61. package/dist/types/sdk/broker/lifecycle.d.ts +15 -8
  62. package/dist/types/sdk/broker/runtime.d.ts +1 -1
  63. package/dist/types/sdk/broker/session-index.d.ts +22 -3
  64. package/dist/types/sdk/broker/spawn-authority.d.ts +4 -0
  65. package/dist/types/sdk/broker/stderr-drainer.d.ts +13 -0
  66. package/dist/types/sdk/bus/index.d.ts +19 -0
  67. package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +3 -1
  68. package/dist/types/sdk/bus/telegram-daemon.d.ts +5 -0
  69. package/dist/types/sdk/cli/master-cli.d.ts +6 -10
  70. package/dist/types/sdk/cli/rows.d.ts +19 -1
  71. package/dist/types/sdk/cli/session-cli.d.ts +22 -5
  72. package/dist/types/sdk/client/client.d.ts +2 -0
  73. package/dist/types/sdk/guides/cli.d.ts +3 -4
  74. package/dist/types/sdk/guides/verify.d.ts +2 -0
  75. package/dist/types/sdk/host/host.d.ts +9 -0
  76. package/dist/types/sdk/host/session-runtime.d.ts +31 -0
  77. package/dist/types/sdk/host/types.d.ts +10 -0
  78. package/dist/types/sdk/index.d.ts +1 -0
  79. package/dist/types/sdk/prompt-deadline-flush.d.ts +83 -0
  80. package/dist/types/sdk/prompt-deadline-manager.d.ts +38 -1
  81. package/dist/types/sdk/prompt-failure.d.ts +30 -1
  82. package/dist/types/sdk/prompt-status.d.ts +8 -0
  83. package/dist/types/sdk/prompt-tool-boundary.d.ts +73 -0
  84. package/dist/types/sdk/router/replay-retention-gap-cache.d.ts +13 -0
  85. package/dist/types/sdk/router/session-router.d.ts +2 -0
  86. package/dist/types/sdk/startup-capability.d.ts +2 -0
  87. package/dist/types/sdk/transport/relay.d.ts +1 -0
  88. package/dist/types/sdk/transport/serve-cli.d.ts +73 -2
  89. package/dist/types/sdk/transport/stdio.d.ts +5 -1
  90. package/dist/types/session/agent-session.d.ts +168 -21
  91. package/dist/types/session/fallback-chain-controller.d.ts +6 -6
  92. package/dist/types/session/fold-coordinator.d.ts +17 -3
  93. package/dist/types/session/internal/managed-session-storage.d.ts +7 -1
  94. package/dist/types/session/session-manager.d.ts +64 -1
  95. package/dist/types/session/session-work-lease.d.ts +14 -0
  96. package/dist/types/setup/model-onboarding-guidance.d.ts +1 -1
  97. package/dist/types/setup/provider-onboarding.d.ts +81 -1
  98. package/dist/types/thinking.d.ts +3 -1
  99. package/dist/types/tools/bash.d.ts +37 -11
  100. package/dist/types/tools/job.d.ts +1 -1
  101. package/dist/types/tools/steer-fold.d.ts +31 -0
  102. package/dist/types/utils/git.d.ts +28 -2
  103. package/dist/types/utils/mupdf-embedded.d.ts +2 -0
  104. package/dist/types/utils/mupdf-wasm-embedded.d.ts +2 -0
  105. package/dist/types/utils/mupdf.d.ts +4 -0
  106. package/dist/types/utils/session-title-generation.d.ts +6 -0
  107. package/dist/types/utils/title-generator.d.ts +11 -2
  108. package/dist/types/web/scrapers/types.d.ts +3 -0
  109. package/package.json +18 -10
  110. package/scripts/build-binary.ts +9 -3
  111. package/scripts/compile-args.ts +0 -9
  112. package/scripts/embed-mupdf.ts +52 -0
  113. package/scripts/generate-sdk-operation-inventory.ts +31 -1
  114. package/scripts/vendor-markit.ts +196 -0
  115. package/src/async/job-manager.ts +60 -9
  116. package/src/cli/daemon-cli.ts +53 -18
  117. package/src/cli/github-release.ts +87 -5
  118. package/src/cli/mcp-cli.ts +38 -4
  119. package/src/cli/public-command-entry.ts +450 -0
  120. package/src/cli/public-command-errors.ts +581 -0
  121. package/src/cli/public-command-evidence.ts +717 -0
  122. package/src/cli/public-command-help.ts +360 -0
  123. package/src/cli/public-command-registry.ts +535 -0
  124. package/src/cli/session-picker.ts +2 -1
  125. package/src/cli/setup-cli.ts +9 -1
  126. package/src/cli/skills-cli.ts +46 -2
  127. package/src/cli.ts +61 -1
  128. package/src/commands/daemon.ts +65 -69
  129. package/src/commands/sdk.ts +232 -100
  130. package/src/commands/setup.ts +2 -0
  131. package/src/commands/skills.ts +11 -0
  132. package/src/config/autorouting-tier-map.ts +16 -0
  133. package/src/config/file-lock.ts +199 -68
  134. package/src/config/model-profile-activation.ts +406 -53
  135. package/src/config/model-registry.ts +204 -25
  136. package/src/config/settings-schema.ts +26 -2
  137. package/src/coordinator-mcp/policy.ts +10 -5
  138. package/src/coordinator-mcp/question-gate-codec.ts +17 -0
  139. package/src/coordinator-mcp/question-state.ts +175 -8
  140. package/src/coordinator-mcp/server.ts +528 -87
  141. package/src/coordinator-mcp/session-reaper.ts +6 -4
  142. package/src/crash/record-loader.ts +6 -2
  143. package/src/daemon/operator-contract.ts +26 -12
  144. package/src/debug/report-bundle.ts +114 -24
  145. package/src/defaults/gjc/skills/ultragoal/SKILL.md +1 -1
  146. package/src/eval/js/context-manager.ts +8 -8
  147. package/src/eval/js/worker-core.ts +9 -4
  148. package/src/eval/js/worker-protocol.ts +2 -0
  149. package/src/extensibility/extensions/runner.ts +52 -4
  150. package/src/extensibility/extensions/types.ts +10 -0
  151. package/src/extensibility/gjc-plugins/registry.ts +196 -37
  152. package/src/extensibility/runtime-skill-discovery.ts +61 -3
  153. package/src/extensibility/shared-events.ts +3 -1
  154. package/src/gjc-runtime/managed-owner-admission.ts +67 -50
  155. package/src/gjc-runtime/session-state-lock.ts +165 -24
  156. package/src/gjc-runtime/ultragoal-succession.ts +31 -3
  157. package/src/internal-urls/docs-index.generated.ts +21 -19
  158. package/src/internal-urls/embedded-protocol.ts +83 -0
  159. package/src/internal-urls/index.ts +1 -0
  160. package/src/internal-urls/parse.ts +21 -1
  161. package/src/internal-urls/router.ts +4 -2
  162. package/src/main.ts +123 -55
  163. package/src/modes/acp/acp-agent.ts +593 -47
  164. package/src/modes/acp/acp-event-mapper.ts +9 -0
  165. package/src/modes/acp/startup-provenance.ts +59 -0
  166. package/src/modes/components/custom-provider-wizard.ts +308 -7
  167. package/src/modes/components/model-selector.ts +31 -15
  168. package/src/modes/components/oauth-selector.ts +9 -0
  169. package/src/modes/components/session-selector.ts +47 -4
  170. package/src/modes/components/status-line/segments.ts +6 -1
  171. package/src/modes/components/thinking-selector.ts +7 -3
  172. package/src/modes/components/user-message-selector.ts +57 -15
  173. package/src/modes/controllers/command-controller.ts +58 -32
  174. package/src/modes/controllers/extension-ui-controller.ts +33 -7
  175. package/src/modes/controllers/input-controller.ts +4 -0
  176. package/src/modes/controllers/selector-controller.ts +177 -18
  177. package/src/modes/interactive-mode.ts +21 -7
  178. package/src/modes/runtime-init.ts +1 -0
  179. package/src/modes/shared/agent-wire/workflow-gate-broker.ts +124 -7
  180. package/src/modes/shared/agent-wire/workflow-gate-types.ts +16 -2
  181. package/src/modes/types.ts +2 -2
  182. package/src/prompts/agent-fragments/browser-aside.md +1 -0
  183. package/src/prompts/system/title-system.md +1 -1
  184. package/src/prompts/tools/bash.md +1 -1
  185. package/src/prompts/tools/job.md +1 -1
  186. package/src/prompts/tools/read.md +2 -0
  187. package/src/runtime/network-prewarm-service.test.ts +36 -1
  188. package/src/runtime/network-prewarm-service.ts +28 -3
  189. package/src/runtime/process-lifecycle.ts +22 -11
  190. package/src/runtime-mcp/config.ts +16 -1
  191. package/src/runtime-mcp/manager.ts +689 -55
  192. package/src/runtime-mcp/pool.test.ts +31 -0
  193. package/src/runtime-mcp/pool.ts +304 -28
  194. package/src/runtime-mcp/redaction.ts +42 -0
  195. package/src/runtime-mcp/startup-policy.ts +7 -0
  196. package/src/runtime-mcp/tool-bridge.ts +71 -0
  197. package/src/runtime-mcp/transports/http.ts +108 -25
  198. package/src/sdk/acp/adapter.ts +90 -9
  199. package/src/sdk/acp/final-text.ts +19 -2
  200. package/src/sdk/broker/broker.ts +378 -52
  201. package/src/sdk/broker/ensure.ts +97 -19
  202. package/src/sdk/broker/identity.ts +9 -1
  203. package/src/sdk/broker/lifecycle-ledger.ts +95 -31
  204. package/src/sdk/broker/lifecycle.ts +690 -141
  205. package/src/sdk/broker/runtime.ts +1 -1
  206. package/src/sdk/broker/session-index.ts +97 -4
  207. package/src/sdk/broker/spawn-authority.ts +35 -7
  208. package/src/sdk/broker/stderr-drainer.ts +59 -0
  209. package/src/sdk/bus/chat-daemon-control.ts +2 -2
  210. package/src/sdk/bus/chat-daemon-runtime.ts +1 -0
  211. package/src/sdk/bus/index.ts +721 -84
  212. package/src/sdk/bus/telegram-daemon-cli.ts +31 -2
  213. package/src/sdk/bus/telegram-daemon-contract.ts +3 -1
  214. package/src/sdk/bus/telegram-daemon.ts +10 -3
  215. package/src/sdk/cli/master-cli.ts +47 -36
  216. package/src/sdk/cli/rows.ts +30 -7
  217. package/src/sdk/cli/session-cli.ts +687 -184
  218. package/src/sdk/client/client.ts +18 -0
  219. package/src/sdk/guides/catalog.ts +2 -2
  220. package/src/sdk/guides/cli.ts +20 -62
  221. package/src/sdk/guides/verify.ts +14 -0
  222. package/src/sdk/host/host.ts +49 -5
  223. package/src/sdk/host/session-runtime.test.ts +636 -9
  224. package/src/sdk/host/session-runtime.ts +499 -118
  225. package/src/sdk/host/types.ts +12 -1
  226. package/src/sdk/host/websocket-transport.lifecycle.test.ts +84 -0
  227. package/src/sdk/host/websocket-transport.ts +40 -6
  228. package/src/sdk/index.ts +11 -0
  229. package/src/sdk/prompt-deadline-flush.ts +334 -0
  230. package/src/sdk/prompt-deadline-manager.ts +136 -4
  231. package/src/sdk/prompt-failure.ts +43 -1
  232. package/src/sdk/prompt-status.ts +8 -0
  233. package/src/sdk/prompt-tool-boundary.ts +121 -0
  234. package/src/sdk/protocol/operation-inventory.generated.json +106 -0
  235. package/src/sdk/router/replay-retention-gap-cache.ts +27 -0
  236. package/src/sdk/router/session-router.ts +31 -4
  237. package/src/sdk/session.ts +194 -16
  238. package/src/sdk/startup-capability.ts +1 -1
  239. package/src/sdk/transport/relay.ts +71 -6
  240. package/src/sdk/transport/serve-cli.ts +494 -49
  241. package/src/sdk/transport/socket.ts +12 -11
  242. package/src/sdk/transport/stdio.ts +7 -3
  243. package/src/session/agent-session.ts +2437 -400
  244. package/src/session/fallback-chain-controller.ts +6 -7
  245. package/src/session/fold-coordinator.ts +24 -5
  246. package/src/session/internal/managed-session-scope.ts +58 -18
  247. package/src/session/internal/managed-session-storage.ts +304 -11
  248. package/src/session/session-manager.ts +382 -44
  249. package/src/session/session-work-lease.ts +34 -0
  250. package/src/session-import/codex.ts +12 -3
  251. package/src/setup/model-onboarding-guidance.ts +1 -1
  252. package/src/setup/provider-onboarding.ts +397 -24
  253. package/src/slash-commands/builtin-registry.ts +258 -14
  254. package/src/task/index.ts +14 -2
  255. package/src/thinking.ts +21 -2
  256. package/src/tools/bash.ts +98 -78
  257. package/src/tools/fetch.ts +119 -20
  258. package/src/tools/job.ts +151 -25
  259. package/src/tools/output-meta.ts +15 -2
  260. package/src/tools/path-utils.ts +27 -3
  261. package/src/tools/read.ts +3 -3
  262. package/src/tools/steer-fold.ts +107 -0
  263. package/src/tools/tool-catalog.generated.ts +29 -2
  264. package/src/tools/tool-errors.ts +4 -0
  265. package/src/utils/git.ts +53 -3
  266. package/src/utils/markit.ts +55 -41
  267. package/src/utils/mupdf-assets.d.ts +4 -0
  268. package/src/utils/mupdf-embedded.ts +4 -0
  269. package/src/utils/mupdf-wasm-embedded.ts +3 -0
  270. package/src/utils/mupdf-wasm.ts +24 -2
  271. package/src/utils/mupdf.ts +129 -0
  272. package/src/utils/session-title-generation.ts +29 -0
  273. package/src/utils/title-generator.ts +46 -2
  274. package/src/web/scrapers/types.ts +24 -3
  275. package/vendor/markit-ai/LICENSE +21 -0
  276. package/vendor/markit-ai/MANIFEST.json +412 -0
  277. package/vendor/markit-ai/dist/commands/config.d.ts +4 -0
  278. package/vendor/markit-ai/dist/commands/config.js +139 -0
  279. package/vendor/markit-ai/dist/commands/convert.d.ts +6 -0
  280. package/vendor/markit-ai/dist/commands/convert.js +113 -0
  281. package/vendor/markit-ai/dist/commands/formats.d.ts +2 -0
  282. package/vendor/markit-ai/dist/commands/formats.js +92 -0
  283. package/vendor/markit-ai/dist/commands/init.d.ts +2 -0
  284. package/vendor/markit-ai/dist/commands/init.js +29 -0
  285. package/vendor/markit-ai/dist/commands/onboard.d.ts +2 -0
  286. package/vendor/markit-ai/dist/commands/onboard.js +61 -0
  287. package/vendor/markit-ai/dist/commands/plugin.d.ts +4 -0
  288. package/vendor/markit-ai/dist/commands/plugin.js +58 -0
  289. package/vendor/markit-ai/dist/config.d.ts +26 -0
  290. package/vendor/markit-ai/dist/config.js +42 -0
  291. package/vendor/markit-ai/dist/converters/audio.d.ts +7 -0
  292. package/vendor/markit-ai/dist/converters/audio.js +104 -0
  293. package/vendor/markit-ai/dist/converters/csv.d.ts +7 -0
  294. package/vendor/markit-ai/dist/converters/csv.js +83 -0
  295. package/vendor/markit-ai/dist/converters/docx.d.ts +6 -0
  296. package/vendor/markit-ai/dist/converters/docx.js +57 -0
  297. package/vendor/markit-ai/dist/converters/epub.d.ts +8 -0
  298. package/vendor/markit-ai/dist/converters/epub.js +128 -0
  299. package/vendor/markit-ai/dist/converters/github.d.ts +18 -0
  300. package/vendor/markit-ai/dist/converters/github.js +148 -0
  301. package/vendor/markit-ai/dist/converters/html.d.ts +6 -0
  302. package/vendor/markit-ai/dist/converters/html.js +30 -0
  303. package/vendor/markit-ai/dist/converters/image.d.ts +6 -0
  304. package/vendor/markit-ai/dist/converters/image.js +124 -0
  305. package/vendor/markit-ai/dist/converters/ipynb.d.ts +6 -0
  306. package/vendor/markit-ai/dist/converters/ipynb.js +75 -0
  307. package/vendor/markit-ai/dist/converters/iwork.d.ts +20 -0
  308. package/vendor/markit-ai/dist/converters/iwork.js +391 -0
  309. package/vendor/markit-ai/dist/converters/json.d.ts +6 -0
  310. package/vendor/markit-ai/dist/converters/json.js +21 -0
  311. package/vendor/markit-ai/dist/converters/pdf/columns.d.ts +35 -0
  312. package/vendor/markit-ai/dist/converters/pdf/columns.js +93 -0
  313. package/vendor/markit-ai/dist/converters/pdf/extract.d.ts +19 -0
  314. package/vendor/markit-ai/dist/converters/pdf/extract.js +514 -0
  315. package/vendor/markit-ai/dist/converters/pdf/grid.d.ts +25 -0
  316. package/vendor/markit-ai/dist/converters/pdf/grid.js +795 -0
  317. package/vendor/markit-ai/dist/converters/pdf/headers.d.ts +24 -0
  318. package/vendor/markit-ai/dist/converters/pdf/headers.js +108 -0
  319. package/vendor/markit-ai/dist/converters/pdf/index.d.ts +19 -0
  320. package/vendor/markit-ai/dist/converters/pdf/index.js +136 -0
  321. package/vendor/markit-ai/dist/converters/pdf/mupdf-loader.js +9 -0
  322. package/vendor/markit-ai/dist/converters/pdf/render.d.ts +24 -0
  323. package/vendor/markit-ai/dist/converters/pdf/render.js +513 -0
  324. package/vendor/markit-ai/dist/converters/pdf/types.d.ts +75 -0
  325. package/vendor/markit-ai/dist/converters/pdf/types.js +1 -0
  326. package/vendor/markit-ai/dist/converters/plain-text.d.ts +6 -0
  327. package/vendor/markit-ai/dist/converters/plain-text.js +87 -0
  328. package/vendor/markit-ai/dist/converters/pptx.d.ts +8 -0
  329. package/vendor/markit-ai/dist/converters/pptx.js +289 -0
  330. package/vendor/markit-ai/dist/converters/rss.d.ts +11 -0
  331. package/vendor/markit-ai/dist/converters/rss.js +138 -0
  332. package/vendor/markit-ai/dist/converters/wikipedia.d.ts +6 -0
  333. package/vendor/markit-ai/dist/converters/wikipedia.js +33 -0
  334. package/vendor/markit-ai/dist/converters/xlsx.d.ts +8 -0
  335. package/vendor/markit-ai/dist/converters/xlsx.js +147 -0
  336. package/vendor/markit-ai/dist/converters/xml.d.ts +6 -0
  337. package/vendor/markit-ai/dist/converters/xml.js +18 -0
  338. package/vendor/markit-ai/dist/converters/yaml.d.ts +6 -0
  339. package/vendor/markit-ai/dist/converters/yaml.js +17 -0
  340. package/vendor/markit-ai/dist/converters/zip.d.ts +8 -0
  341. package/vendor/markit-ai/dist/converters/zip.js +57 -0
  342. package/vendor/markit-ai/dist/index.d.ts +30 -0
  343. package/vendor/markit-ai/dist/index.js +26 -0
  344. package/vendor/markit-ai/dist/main.d.ts +2 -0
  345. package/vendor/markit-ai/dist/main.js +191 -0
  346. package/vendor/markit-ai/dist/markit.d.ts +45 -0
  347. package/vendor/markit-ai/dist/markit.js +267 -0
  348. package/vendor/markit-ai/dist/plugins/api.d.ts +7 -0
  349. package/vendor/markit-ai/dist/plugins/api.js +42 -0
  350. package/vendor/markit-ai/dist/plugins/index.d.ts +4 -0
  351. package/vendor/markit-ai/dist/plugins/index.js +3 -0
  352. package/vendor/markit-ai/dist/plugins/installer.d.ts +25 -0
  353. package/vendor/markit-ai/dist/plugins/installer.js +176 -0
  354. package/vendor/markit-ai/dist/plugins/loader.d.ts +6 -0
  355. package/vendor/markit-ai/dist/plugins/loader.js +61 -0
  356. package/vendor/markit-ai/dist/plugins/types.d.ts +25 -0
  357. package/vendor/markit-ai/dist/plugins/types.js +1 -0
  358. package/vendor/markit-ai/dist/providers/anthropic.d.ts +2 -0
  359. package/vendor/markit-ai/dist/providers/anthropic.js +47 -0
  360. package/vendor/markit-ai/dist/providers/index.d.ts +21 -0
  361. package/vendor/markit-ai/dist/providers/index.js +56 -0
  362. package/vendor/markit-ai/dist/providers/openai.d.ts +2 -0
  363. package/vendor/markit-ai/dist/providers/openai.js +76 -0
  364. package/vendor/markit-ai/dist/providers/types.d.ts +26 -0
  365. package/vendor/markit-ai/dist/providers/types.js +1 -0
  366. package/vendor/markit-ai/dist/types.d.ts +36 -0
  367. package/vendor/markit-ai/dist/types.js +1 -0
  368. package/vendor/markit-ai/dist/utils/exit-codes.d.ts +4 -0
  369. package/vendor/markit-ai/dist/utils/exit-codes.js +4 -0
  370. package/vendor/markit-ai/dist/utils/output.d.ts +22 -0
  371. package/vendor/markit-ai/dist/utils/output.js +31 -0
  372. package/vendor/markit-ai/dist/utils/turndown.d.ts +8 -0
  373. package/vendor/markit-ai/dist/utils/turndown.js +70 -0
  374. package/vendor/markit-ai/package.json +74 -0
  375. package/vendor/markit-ai.patch +49 -0
@@ -0,0 +1,99 @@
1
+ export declare const EVIDENCE_LIMITS: Readonly<{
2
+ slots: 64;
3
+ recordBytes: 1048576;
4
+ totalBytes: 16777216;
5
+ ttlMs: 86400000;
6
+ fragmentBytes: 1024;
7
+ responseBytes: 8192;
8
+ }>;
9
+ export type EvidenceReferenceKind = "sessionId" | "operationRef" | "idempotencyKey" | "claimId" | "commandId" | "turnId";
10
+ export interface EvidenceReference {
11
+ kind: EvidenceReferenceKind;
12
+ value: string;
13
+ }
14
+ export interface EvidenceClassification {
15
+ code: string;
16
+ category: "usage" | "unavailable" | "authorization" | "timeout" | "uncertain" | "operation" | "internal";
17
+ retryability: "yes" | "no" | "unknown";
18
+ outcomeCertainty: "not-applied" | "applied" | "unknown";
19
+ }
20
+ export type EvidenceUnavailableReason = "record_too_large" | "quota_exceeded" | "store_busy" | "permission_denied" | "permission_unsupported" | "unsafe_path" | "store_corrupt" | "io_error" | "verification_failed" | "locator_too_large" | "evidence_unavailable" | "evidence_changed" | "evidence_corrupt" | "evidence_unsafe" | "evidence_clock_invalid" | "invalid_request";
21
+ export interface EvidenceUnavailable {
22
+ status: "unavailable";
23
+ reason: EvidenceUnavailableReason;
24
+ requiredBytes: number | null;
25
+ continuation: null;
26
+ }
27
+ export interface EvidenceContinuation {
28
+ kind: "local-store";
29
+ id: string;
30
+ sha256: string;
31
+ expiresAt: string;
32
+ page: number;
33
+ executable: "gjc";
34
+ argv: string[];
35
+ }
36
+ export interface EvidenceLocatorOptions {
37
+ family: "sdk" | "daemon";
38
+ scopeAgentDir?: string;
39
+ json?: boolean;
40
+ }
41
+ export interface PublishCommandEvidenceInput {
42
+ agentDir: string;
43
+ command: string[];
44
+ error: EvidenceClassification;
45
+ references: readonly EvidenceReference[];
46
+ }
47
+ export interface EvidenceRetained {
48
+ status: "retained";
49
+ id: string;
50
+ sha256: string;
51
+ bytes: number;
52
+ expiresAt: string;
53
+ continuation: EvidenceContinuation;
54
+ }
55
+ export interface EvidenceRecord {
56
+ schema: "gjc.command-error-record";
57
+ version: 1;
58
+ pagingVersion: 1;
59
+ id: string;
60
+ command: string[];
61
+ error: EvidenceClassification;
62
+ createdAt: string;
63
+ expiresAt: string;
64
+ references: EvidenceReference[];
65
+ }
66
+ export interface EvidencePage {
67
+ schema: "gjc.command-error-evidence";
68
+ version: 1;
69
+ ok: true;
70
+ id: string;
71
+ sha256: string;
72
+ expiresAt: string;
73
+ page: number;
74
+ complete: boolean;
75
+ fragments: {
76
+ entryId: string;
77
+ encoding: "base64";
78
+ offsetBytes: number;
79
+ totalBytes: number;
80
+ data: string;
81
+ }[];
82
+ next: EvidenceContinuation | null;
83
+ }
84
+ export interface ReadCommandEvidenceInput extends EvidenceLocatorOptions {
85
+ agentDir: string;
86
+ id: string;
87
+ sha256: string;
88
+ page?: number;
89
+ }
90
+ /** Narrow per-call fault instrumentation; production callers omit this argument. */
91
+ export interface EvidencePublicationTestHooks {
92
+ id?: string;
93
+ before?: (phase: "write" | "file-sync" | "link" | "directory-sync" | "readback" | "cleanup") => void | Promise<void>;
94
+ }
95
+ export declare function publishCommandEvidence(input: PublishCommandEvidenceInput, options: EvidenceLocatorOptions, testHooks?: EvidencePublicationTestHooks): Promise<EvidenceRetained | EvidenceUnavailable>;
96
+ export declare function readCommandEvidence(input: ReadCommandEvidenceInput): Promise<{
97
+ status: "available";
98
+ page: EvidencePage;
99
+ } | EvidenceUnavailable>;
@@ -0,0 +1,65 @@
1
+ import { type PublicCommandDescriptor, type PublicHelpSection } from "./public-command-registry";
2
+ export declare const PUBLIC_HELP_MAX_BYTES = 8192;
3
+ export interface PublicHelpOptions {
4
+ json?: boolean;
5
+ section?: string;
6
+ page?: string | number;
7
+ revision?: string;
8
+ }
9
+ export type PublicHelpErrorCode = "unknown_command" | "invalid_section" | "invalid_page" | "invalid_revision" | "revision_mismatch" | "static_metadata_too_large" | "invalid_registry";
10
+ export declare class PublicHelpError extends Error {
11
+ readonly code: PublicHelpErrorCode;
12
+ readonly exitCode: 2 | 1;
13
+ constructor(code: PublicHelpErrorCode);
14
+ }
15
+ export interface PublicHelpEntry {
16
+ id: string;
17
+ kind: "overview" | "usage" | "child" | "argument" | "option" | "example" | "recovery";
18
+ complete: true;
19
+ value: unknown;
20
+ }
21
+ export interface PublicHelpFragment {
22
+ id: string;
23
+ kind: "fragment";
24
+ complete: false;
25
+ encoding: "base64";
26
+ offsetBytes: number;
27
+ totalBytes: number;
28
+ sha256: string;
29
+ data: string;
30
+ }
31
+ export interface PublicHelpNext {
32
+ section: PublicHelpSection;
33
+ page: number;
34
+ executable: "gjc";
35
+ argv: string[];
36
+ }
37
+ export interface PublicHelpDocument {
38
+ schema: "gjc.command-help";
39
+ version: 1;
40
+ ok: true;
41
+ command: readonly string[];
42
+ canonicalCommand: readonly string[];
43
+ revision: string;
44
+ section: PublicHelpSection;
45
+ page: number;
46
+ sections: readonly PublicHelpSection[];
47
+ entries: readonly (PublicHelpEntry | PublicHelpFragment)[];
48
+ sectionComplete: boolean;
49
+ documentComplete: boolean;
50
+ next: PublicHelpNext | null;
51
+ }
52
+ export interface PublicHelpRenderResult {
53
+ /** Complete serialization including its single trailing newline. No output is written. */
54
+ output: string;
55
+ bytes: number;
56
+ document: PublicHelpDocument;
57
+ }
58
+ /** The digest covers every descriptor and this renderer's paging/schema policy. */
59
+ export declare function getPublicHelpRevision(registry?: readonly PublicCommandDescriptor[]): string;
60
+ /**
61
+ * Pure command-local rendering. Each page holds one complete entry or one byte fragment;
62
+ * empty sections still have page 1. This keeps traversal stable and independently bounded.
63
+ * The optional registry supports isolated static fixtures without replacing global state.
64
+ */
65
+ export declare function renderPublicCommandHelp(command: readonly string[], options?: PublicHelpOptions, registry?: readonly PublicCommandDescriptor[]): PublicHelpRenderResult;
@@ -0,0 +1,69 @@
1
+ import type { ArgDescriptor, FlagDescriptor } from "@gajae-code/utils/cli";
2
+ import { type Operation, type OperationKind } from "../sdk/protocol/operation-registry";
3
+ export declare const PUBLIC_HELP_SECTIONS: readonly ["overview", "usage", "children", "arguments", "options", "examples", "recovery"];
4
+ export type PublicHelpSection = (typeof PUBLIC_HELP_SECTIONS)[number];
5
+ export type PublicCommandFamily = "sdk" | "daemon";
6
+ export type PublicDisruption = "none" | "interrupts-work" | "force-kill";
7
+ export interface PublicRecovery {
8
+ description: string;
9
+ disruption: PublicDisruption;
10
+ requiresConfirmation: boolean;
11
+ }
12
+ export interface PublicFlagDescriptor extends FlagDescriptor {
13
+ description: string;
14
+ /** Boundary options are stripped before operation parsing. */
15
+ boundary?: "help" | "mode" | "retrieval";
16
+ conflicts?: readonly string[];
17
+ requires?: readonly string[];
18
+ risk?: string;
19
+ validation?: "positive-safe-integer" | "sha256" | "error-id" | "search-limit" | "pending-ceiling";
20
+ /** Serve's existing operation parser accepts separate operands only. */
21
+ valueSyntax?: "separate" | "separate-or-equals";
22
+ }
23
+ export interface PublicArgumentDescriptor extends ArgDescriptor {
24
+ description: string;
25
+ }
26
+ export interface PublicCommandDescriptor {
27
+ command: readonly string[];
28
+ canonicalCommand: readonly string[];
29
+ parent: readonly string[] | null;
30
+ description: string;
31
+ /** Effective local grammar, not a union of sibling options. Keys have no leading --. */
32
+ flags: Readonly<Record<string, PublicFlagDescriptor>>;
33
+ /** Insertion order is positional order; child tokens are not arguments. */
34
+ args: Readonly<Record<string, PublicArgumentDescriptor>>;
35
+ children: readonly string[];
36
+ usage: readonly {
37
+ syntax: string;
38
+ executable: false;
39
+ }[];
40
+ examples: readonly {
41
+ syntax: string;
42
+ executable: false;
43
+ }[];
44
+ recovery: readonly PublicRecovery[];
45
+ risk?: string;
46
+ defaultChild?: string;
47
+ exactlyOneOf?: readonly (readonly string[])[];
48
+ /** Semantic conditions remain runtime-owned (e.g. proof-bound retirement). */
49
+ constraints: readonly string[];
50
+ operationKind?: Exclude<OperationKind, "reverse">;
51
+ }
52
+ export interface PublicCommandResolution {
53
+ descriptor: PublicCommandDescriptor;
54
+ /** Number of path tokens consumed, including the family. No argv scanning is performed. */
55
+ consumed: number;
56
+ remaining: readonly string[];
57
+ exact: boolean;
58
+ }
59
+ export declare const PUBLIC_BOUNDARY_FLAGS: Readonly<Record<string, PublicFlagDescriptor>>;
60
+ export declare const PUBLIC_RETRIEVAL_FLAGS: Readonly<Record<string, PublicFlagDescriptor>>;
61
+ /** Static descriptors only: no settings, theme, broker, transport, filesystem or process initialization. */
62
+ export declare const PUBLIC_COMMANDS: readonly PublicCommandDescriptor[];
63
+ /** Exact full public path lookup; private workers and function-only verbs are absent. */
64
+ export declare function getPublicCommand(command: readonly string[]): PublicCommandDescriptor | undefined;
65
+ export declare function getPublicCommandChildren(descriptor: PublicCommandDescriptor): readonly PublicCommandDescriptor[];
66
+ /** Resolve path tokens only. The entry scanner must first respect flag operands and --. */
67
+ export declare function resolvePublicCommand(tokens: readonly string[]): PublicCommandResolution | undefined;
68
+ /** Operation metadata is reused, not promoted to command paths or usage-level enum rejection. */
69
+ export declare function getPublicRawOperations(kind: Exclude<OperationKind, "reverse">): readonly Operation[];
@@ -1,5 +1,5 @@
1
1
  import { type SessionSelectionResult } from "../modes/components/session-selector";
2
2
  import { type SessionInfo } from "../session/session-manager";
3
3
  export declare function deleteSessionPickerCandidate(sessionPath: string, explicitSessionDir?: string): Promise<void>;
4
- /** Show the read-only TUI session picker and return the user's consent intent. */
4
+ /** Show the session picker and return the user's resume consent intent. */
5
5
  export declare function selectSession(sessions: SessionInfo[], explicitSessionDir?: string): Promise<SessionSelectionResult>;
@@ -18,6 +18,7 @@ export interface SetupCommandArgs {
18
18
  baseUrl?: string;
19
19
  apiKeyEnv?: string;
20
20
  model?: string[];
21
+ discover?: boolean;
21
22
  modelsPath?: string;
22
23
  smoke?: boolean;
23
24
  install?: boolean;
@@ -5,6 +5,11 @@ export interface SkillsCommandArgs {
5
5
  flags?: {
6
6
  json?: boolean;
7
7
  source?: "all" | "project" | "user";
8
+ /** Max discover results; clamped to [1, SKILL_DISCOVERY_MAX_LIMIT] by the library. */
9
+ limit?: number;
10
+ /** Zero-based start of the discover page; normalized by the library. */
11
+ offset?: number;
12
+ query?: string;
8
13
  };
9
14
  }
10
15
  export declare function runSkillsCommand(cmd: SkillsCommandArgs): Promise<void>;
@@ -1,3 +1,6 @@
1
1
  #!/usr/bin/env bun
2
+ import type { CommandEntry } from "@gajae-code/utils/cli";
3
+ /** Public-family hooks kept available for private-worker tests without loading the full registry. */
4
+ export declare const commands: CommandEntry[];
2
5
  /** Run the CLI with argv excluding process.argv prefix. */
3
6
  export declare function runCli(argv: string[]): Promise<void>;
@@ -1,54 +1,8 @@
1
- /**
2
- * Manage GJC background daemons (status/list/stop/restart).
3
- */
4
- import { Command } from "@gajae-code/utils/cli";
1
+ /** Manage public daemon operations while keeping worker grammar private. */
2
+ import { type ArgDescriptor, Command, type FlagDescriptor } from "@gajae-code/utils/cli";
5
3
  export default class Daemon extends Command {
6
4
  static description: string;
7
- static examples: string[];
8
- static args: {
9
- action: import("@gajae-code/utils/cli").ArgDescriptor & {
10
- description: string;
11
- required: false;
12
- options: string[];
13
- };
14
- kind: import("@gajae-code/utils/cli").ArgDescriptor & {
15
- description: string;
16
- required: false;
17
- multiple: true;
18
- };
19
- };
20
- static flags: {
21
- verbose: import("@gajae-code/utils/cli").FlagDescriptor<"boolean"> & {
22
- char: string;
23
- description: string;
24
- };
25
- all: import("@gajae-code/utils/cli").FlagDescriptor<"boolean"> & {
26
- description: string;
27
- };
28
- json: import("@gajae-code/utils/cli").FlagDescriptor<"boolean"> & {
29
- description: string;
30
- };
31
- force: import("@gajae-code/utils/cli").FlagDescriptor<"boolean"> & {
32
- description: string;
33
- };
34
- "graceful-timeout-ms": import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
35
- description: string;
36
- };
37
- "kill-timeout-ms": import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
38
- description: string;
39
- };
40
- "spawn-if-stopped": import("@gajae-code/utils/cli").FlagDescriptor<"boolean"> & {
41
- description: string;
42
- };
43
- smoke: import("@gajae-code/utils/cli").FlagDescriptor<"boolean"> & {
44
- description: string;
45
- };
46
- "owner-id": import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
47
- description: string;
48
- };
49
- "agent-dir": import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
50
- description: string;
51
- };
52
- };
5
+ static args: Record<string, ArgDescriptor>;
6
+ static flags: Record<string, FlagDescriptor>;
53
7
  run(): Promise<void>;
54
8
  }
@@ -41,10 +41,10 @@ export declare function watchSessionHostBrokerLiveness(deps: {
41
41
  * no client attached before treating itself as abandoned.
42
42
  *
43
43
  * This cannot fire during healthy work. "Attached" is the host's own live
44
- * socket-subscription count, so a client that is merely idle — an editor
45
- * sitting on an open ACP session, a long agent turn with nobody typing — still
46
- * holds a socket and resets the window on every poll. Only a client that is
47
- * actually gone opens it, and 30 minutes is far longer than any client
44
+ * demand count: observer-only sockets (such as an idle chat daemon) do not
45
+ * reset the window, while an in-flight turn is reported separately. Only a
46
+ * client that is actually demanding the host opens it, and 30 minutes is far
47
+ * longer than any client
48
48
  * reconnect budget (ACP's is seconds), so a crashed-and-restarted client
49
49
  * reattaches long before the window closes.
50
50
  */
@@ -66,8 +66,8 @@ export declare const SESSION_HOST_FIRST_ATTACH_GRACE_MS: number;
66
66
  * from every client for a full idle grace, or nobody has come for it at all
67
67
  * for a full first-attach grace.
68
68
  *
69
- * `readAttachedClients` reports the host's own live client/socket subscription
70
- * count; `undefined` means the SDK endpoint publishes no such evidence — before
69
+ * `readAttachedClients` reports the host's own live demanding-client count;
70
+ * `undefined` means the SDK endpoint publishes no such evidence — before
71
71
  * startup, after teardown, or when every reader itself fails. That ambiguity is
72
72
  * never instant detachment: it cannot reap on the poll that first sees it, it
73
73
  * can only open a window. Which window depends on what was already observed. A
@@ -78,25 +78,24 @@ export declare const SESSION_HOST_FIRST_ATTACH_GRACE_MS: number;
78
78
  * an observed count of zero. Every reachable state therefore carries a finite
79
79
  * bound.
80
80
  *
81
- * `readWorkInFlight` reports whether the host is running agent work right now.
82
- * Work is positive proof a client did come for this host: a prompt can only
83
- * arrive over an endpoint a client dialed. Live work therefore restarts both
84
- * windows, which is what keeps a mid-prompt host alive whether its count reads
85
- * zero or stops being readable at all. That still bounds a host whose SDK
86
- * runtime never came up: with no transport it can never receive a prompt, so it
87
- * never reports work and its window keeps running from process start. And any
88
- * real turn ends, after which the window resumes; live work defers a bound, it
89
- * never removes it.
81
+ * `readWorkLease` reports whether the host's authoritative session-work lease
82
+ * is held. A lease is positive proof a client did come for this host: a prompt
83
+ * can only arrive over an endpoint a client dialed. Live work therefore
84
+ * restarts both windows, which is what keeps a mid-prompt host alive whether
85
+ * its count reads zero or stops being readable at all. That still bounds a
86
+ * host whose SDK runtime never came up: with no transport it can never receive
87
+ * a prompt, so it never acquires work and its window keeps running from process
88
+ * start. Releasing the lease resumes the applicable bound.
90
89
  */
91
90
  export declare function watchSessionHostClientAttachment(deps: {
92
91
  readAttachedClients: () => number | undefined;
93
- readWorkInFlight?: () => boolean;
92
+ readWorkLease?: () => boolean;
94
93
  now?: () => number;
95
94
  sleep?: (ms: number) => Promise<void>;
96
95
  idleGraceMs?: number;
97
96
  firstAttachGraceMs?: number;
98
97
  pollMs?: number;
99
- }): Promise<void>;
98
+ }): Promise<"detached_idle">;
100
99
  /** Opens lifecycle-authorized history without letting replacement content reach readiness. */
101
100
  export declare function openLifecycleSessionManager(request: SessionLifecycleLaunchRequest, cwd: string, agentDir: string): Promise<{
102
101
  parsed: ParsedArgs;
@@ -126,6 +125,10 @@ export type SdkInternalArgv = {
126
125
  agentDir: string;
127
126
  } | {
128
127
  action: "session-host-internal";
128
+ } | {
129
+ action: "stderr-drain-internal";
130
+ logPath: string;
131
+ maxBytes: number;
129
132
  };
130
133
  /** Parses the exact private argv contracts used by SDK child-process spawns. */
131
134
  export declare function parseSdkInternalArgv(argv: readonly string[]): SdkInternalArgv;
@@ -133,25 +136,5 @@ export default class Sdk extends Command {
133
136
  static description: string;
134
137
  static hidden: boolean;
135
138
  static delegateHelp: boolean;
136
- static args: {
137
- action: import("@gajae-code/utils/cli").ArgDescriptor & {
138
- required: false;
139
- options: string[];
140
- };
141
- };
142
- static flags: {
143
- stdio: import("@gajae-code/utils/cli").FlagDescriptor<"boolean"> & {
144
- description: string;
145
- };
146
- socket: import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
147
- description: string;
148
- };
149
- session: import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
150
- description: string;
151
- };
152
- "pending-ceiling": import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
153
- description: string;
154
- };
155
- };
156
139
  run(): Promise<void>;
157
140
  }
@@ -102,6 +102,9 @@ export default class Setup extends Command {
102
102
  description: string;
103
103
  multiple: true;
104
104
  };
105
+ discover: import("@gajae-code/utils/cli").FlagDescriptor<"boolean"> & {
106
+ description: string;
107
+ };
105
108
  "models-path": import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
106
109
  description: string;
107
110
  };
@@ -25,6 +25,15 @@ export default class Skills extends Command {
25
25
  options: string[];
26
26
  default: string;
27
27
  };
28
+ limit: import("@gajae-code/utils/cli").FlagDescriptor<"integer"> & {
29
+ description: string;
30
+ };
31
+ offset: import("@gajae-code/utils/cli").FlagDescriptor<"integer"> & {
32
+ description: string;
33
+ };
34
+ query: import("@gajae-code/utils/cli").FlagDescriptor<"string"> & {
35
+ description: string;
36
+ };
28
37
  };
29
38
  static examples: string[];
30
39
  run(): Promise<void>;
@@ -784,6 +784,12 @@ export declare const TIER_MAP_SKIP_LIST: {
784
784
  readonly "openai-codex/gpt-6-astra": {
785
785
  readonly rationale: "GPT-6 Astra catalog addition (2026-09-03 release); not yet curated";
786
786
  };
787
+ readonly "openai-codex/gpt-6-luna": {
788
+ readonly rationale: "GPT-6 Luna catalog addition (2026-09-22 release); not yet curated";
789
+ };
790
+ readonly "openai-codex/gpt-6-sol": {
791
+ readonly rationale: "GPT-6 Sol catalog addition (2026-09-22 release); not yet curated";
792
+ };
787
793
  readonly "openai-codex/gpt-daybreak-blue-latest": {
788
794
  readonly rationale: "post-rebase catalog addition from dev; not yet curated";
789
795
  };
@@ -820,6 +826,9 @@ export declare const TIER_MAP_SKIP_LIST: {
820
826
  readonly "opencode-go/qwen3.8-max": {
821
827
  readonly rationale: "post-rebase catalog addition from dev; not yet curated";
822
828
  };
829
+ readonly "opencode-go/union-alpha": {
830
+ readonly rationale: "stealth model; capability tier not yet independently reviewed";
831
+ };
823
832
  readonly "opencode-zen/grok-4.6": {
824
833
  readonly rationale: "post-rebase catalog addition from dev; not yet curated";
825
834
  };
@@ -835,6 +844,9 @@ export declare const TIER_MAP_SKIP_LIST: {
835
844
  readonly "opencode-zen/nemotron-3.5-lightning-free": {
836
845
  readonly rationale: "post-rebase catalog addition from dev; not yet curated";
837
846
  };
847
+ readonly "opencode-zen/union-alpha": {
848
+ readonly rationale: "stealth model; capability tier not yet independently reviewed";
849
+ };
838
850
  readonly "openrouter/anthropic/claude-fable-5:batch": {
839
851
  readonly rationale: "post-rebase catalog addition from dev; not yet curated";
840
852
  };
@@ -1149,6 +1161,18 @@ export declare const TIER_MAP_SKIP_LIST: {
1149
1161
  readonly baseline: true;
1150
1162
  readonly rationale: "pre-feature baseline; not yet curated";
1151
1163
  };
1164
+ readonly "alibaba-token-plan/deepseek-v4-pro-0813": {
1165
+ readonly baseline: true;
1166
+ readonly rationale: "post-feature catalog addition; not yet curated";
1167
+ };
1168
+ readonly "alibaba-token-plan/deepseek-v4.1-flash": {
1169
+ readonly baseline: true;
1170
+ readonly rationale: "post-feature catalog addition; not yet curated";
1171
+ };
1172
+ readonly "alibaba-token-plan/glm-5.3": {
1173
+ readonly baseline: true;
1174
+ readonly rationale: "post-feature catalog addition; not yet curated";
1175
+ };
1152
1176
  readonly "amazon-bedrock/anthropic.claude-3-5-haiku-20241022-v1:0": {
1153
1177
  readonly baseline: true;
1154
1178
  readonly rationale: "pre-feature baseline; not yet curated";
@@ -6,6 +6,7 @@ export interface FileLockOptions {
6
6
  retryDelayMs?: number;
7
7
  signal?: AbortSignal;
8
8
  onAcquired?: () => void;
9
+ onContended?: () => void;
9
10
  /** Stable host identity required to safely reclaim locks on a shared volume. */
10
11
  ownerHostId?: string;
11
12
  /** Previous local host identities accepted only when deciding stale-owner reclamation. */
@@ -88,7 +89,14 @@ export interface FileLockOwnerToken {
88
89
  }
89
90
  /** Outcome of a guarded lock-dir removal attempt (`removeFileLockDirForGc`). */
90
91
  export type FileLockGcRemoval = "removed" | "owner_changed" | "missing" | "cleanup_failed";
91
- /** Identity evidence carried by the generic stale verdict into a later removal. */
92
+ /**
93
+ * Identity evidence carried by the generic stale verdict into a later removal.
94
+ *
95
+ * `ctimeNs` is a mutable metadata-change time on every supported filesystem, so
96
+ * it is retained for diagnostics/legacy consumers but is not part of the lock
97
+ * identity predicate. `infoBirthtimeNs` is the creation time that stays bound
98
+ * to the file object.
99
+ */
92
100
  export interface GenericFileLockDirIdentity {
93
101
  rootDev: string;
94
102
  rootIno: string;
@@ -98,6 +106,7 @@ export interface GenericFileLockDirIdentity {
98
106
  infoSize: string;
99
107
  infoMtimeNs: string;
100
108
  infoCtimeNs: string;
109
+ infoBirthtimeNs: string;
101
110
  infoSha256: string;
102
111
  }
103
112
  export type GenericFileLockDirStaleVerdict = {
@@ -1,5 +1,5 @@
1
1
  import { ThinkingLevel } from "@gajae-code/agent-core";
2
- import type { Api, Model } from "@gajae-code/ai/core";
2
+ import { type Api, type Model } from "@gajae-code/ai/core";
3
3
  import type { AgentSession, DefaultFallbackRuntimeState } from "../session/agent-session";
4
4
  import { type ModelProfileDefinition } from "./model-profiles";
5
5
  export { resolveModelProfileName } from "./model-profile-contract";
@@ -31,7 +31,7 @@ type ModelProfileActivationSession = Pick<AgentSession, "model" | "thinkingLevel
31
31
  getDefaultFallbackRuntimeState?: () => DefaultFallbackRuntimeState;
32
32
  restoreDefaultFallbackRuntimeState?: (state: DefaultFallbackRuntimeState) => void;
33
33
  restoreModelSelectionForRollback?: AgentSession["restoreModelSelectionForRollback"];
34
- modelRegistry?: Pick<ModelRegistry, "getSessionCanonicalVariant" | "restoreSessionCanonicalVariant" | "clearCanonicalVariant" | "getAvailable" | "lookupAliasExists" | "resolveModelByLookupAlias" | "authStorage" | "isCredentiallessProvider">;
34
+ modelRegistry?: Pick<ModelRegistry, "getSessionCanonicalVariant" | "restoreSessionCanonicalVariant" | "clearCanonicalVariant" | "getAvailable" | "lookupAliasExists" | "resolveModelByLookupAlias" | "authStorage" | "isCredentiallessProvider"> & Partial<Pick<ModelRegistry, "getAvailableForProfileActivation">>;
35
35
  getConfiguredModelChainState?: (role: string) => ConfiguredModelChainState | undefined;
36
36
  };
37
37
  type ConfiguredModelChainState = {
@@ -42,7 +42,7 @@ type ConfiguredModelChainState = {
42
42
  };
43
43
  export interface PrepareModelProfileActivationOptions {
44
44
  session: ModelProfileActivationSession;
45
- modelRegistry: Pick<ModelRegistry, "getModelProfile" | "getModelProfiles" | "getAvailableModelProfileNames" | "getApiKeyForProvider" | "getAll" | "resolveCanonicalModel" | "getCanonicalVariants" | "getCanonicalId"> & Partial<Pick<ModelRegistry, "getAvailable" | "getAvailableForProfileActivation" | "resolveModelByLookupAlias" | "lookupAliasExists" | "clearCanonicalVariant" | "seedCanonicalVariant" | "getSessionCanonicalVariant" | "restoreSessionCanonicalVariant" | "getConfiguredProviderIds">> & {
45
+ modelRegistry: Pick<ModelRegistry, "getModelProfile" | "getModelProfiles" | "getAvailableModelProfileNames" | "getApiKeyForProvider" | "getAll" | "resolveCanonicalModel" | "getCanonicalVariants" | "getCanonicalId"> & Partial<Pick<ModelRegistry, "getAvailable" | "getAvailableForProfileActivation" | "resolveModelByLookupAlias" | "lookupAliasExists" | "clearCanonicalVariant" | "seedCanonicalVariant" | "getSessionCanonicalVariant" | "restoreSessionCanonicalVariant" | "getConfiguredProviderIds" | "isKnownProvider">> & {
46
46
  getError?: ModelRegistry["getError"];
47
47
  };
48
48
  settings: Pick<Settings, "get" | "getGlobal" | "getOverride">;
@@ -123,13 +123,28 @@ export interface MaterializeModelProfileAssignmentsOptions {
123
123
  export declare function materializeActiveModelProfileAssignment(options: MaterializeModelProfileAssignmentOptions): boolean;
124
124
  export declare function materializeActiveModelProfileAssignments(options: MaterializeModelProfileAssignmentsOptions): boolean;
125
125
  export declare class ModelProfileCredentialError extends Error {
126
- readonly code = "authentication_failed";
126
+ readonly code: string;
127
127
  readonly profileLabel: string;
128
128
  readonly providers: readonly string[];
129
129
  readonly role: string | undefined;
130
130
  constructor(profileLabel: string, providers: readonly string[], role?: string);
131
131
  }
132
132
  export declare function formatModelProfileCredentialError(profileLabel: string, providers: readonly string[]): string;
133
+ export declare function formatModelProfileUnknownProviderError(profileLabel: string, providers: readonly string[]): string;
134
+ /**
135
+ * A required profile provider that this build cannot know: it is neither a
136
+ * built-in provider id nor declared in models.yml. That is a build/config
137
+ * mismatch (for example a profile authored on a newer or custom build), not a
138
+ * credential gap, so the diagnosis must not send the user to /login.
139
+ *
140
+ * Extends {@link ModelProfileCredentialError} so existing startup recovery
141
+ * (interactive toast-and-continue) keeps working with the sharper message.
142
+ */
143
+ export declare class ModelProfileUnknownProviderError extends ModelProfileCredentialError {
144
+ readonly code = "unknown_provider";
145
+ constructor(profileLabel: string, providers: readonly string[], role?: string);
146
+ }
147
+ export declare function isModelProfileProxyConfigured(provider: string, configuredProviders: readonly string[] | undefined, credentialless: boolean): boolean;
133
148
  /**
134
149
  * Resolve the explicitly configured OpenAI-compatible proxy provider id for a
135
150
  * preset. Returns undefined when unset or empty. Passwords/labels are never
@@ -167,6 +182,48 @@ export declare function getProxyRoutableProviders(profile: ModelProfileDefinitio
167
182
  * retain their legacy tolerance for stale qualified role tails.
168
183
  */
169
184
  export declare function requiresQualifiedModelProfileRoleResolution(profile: Pick<ModelProfileDefinition, "source">): boolean;
185
+ /** Resolve a removed saved-session default through the durable profile without mutating persistent state. */
186
+ export declare function resolveMissingSessionModelRecovery(options: {
187
+ modelRegistry: PrepareModelProfileActivationOptions["modelRegistry"];
188
+ settings: Pick<Settings, "get" | "getModelRole">;
189
+ defaultEntries: readonly string[];
190
+ skips: Array<{
191
+ selector: string;
192
+ reason: string;
193
+ }>;
194
+ savedDefault: string | undefined;
195
+ credentialSessionId: string;
196
+ aliasIntent?: "preset-equivalent";
197
+ }): Promise<{
198
+ profileName: string;
199
+ entries: string[];
200
+ model?: Model<Api>;
201
+ thinkingLevel?: ThinkingLevel;
202
+ explicitThinkingLevel: boolean;
203
+ activeIndex: number;
204
+ skips: Array<{
205
+ selector: string;
206
+ reason: string;
207
+ }>;
208
+ } | undefined>;
209
+ /** Resolve a durable profile's effective default chain without mutating session or settings state. */
210
+ export declare function resolveModelProfileDefaultChain(options: {
211
+ modelRegistry: PrepareModelProfileActivationOptions["modelRegistry"];
212
+ settings: Pick<Settings, "get">;
213
+ profileName: string;
214
+ credentialSessionId: string;
215
+ }): Promise<{
216
+ profileName: string;
217
+ entries: string[];
218
+ model?: Model<Api>;
219
+ thinkingLevel?: ThinkingLevel;
220
+ explicitThinkingLevel: boolean;
221
+ activeIndex: number;
222
+ skips: Array<{
223
+ selector: string;
224
+ reason: string;
225
+ }>;
226
+ }>;
170
227
  export declare function rewriteSelectorForProxy(selector: string, proxyProvider: string, proxyMode: ModelProfileProxyMode, allModels: Model<Api>[], directlyAuthenticated: ReadonlySet<string>, routableProviders: ReadonlySet<string>): string;
171
228
  export declare function prepareModelProfileActivation(options: PrepareModelProfileActivationOptions): Promise<PreparedModelProfileActivation>;
172
229
  export declare function applyPreparedModelProfileActivation(prepared: PreparedModelProfileActivation, options?: ApplyModelProfileActivationOptions): Promise<void>;
@@ -203,3 +260,5 @@ export declare function restoreMaterializedModelProfileForDeletion(options: {
203
260
  snapshot: MaterializeModelProfileForDeletionResult;
204
261
  }): Promise<void>;
205
262
  export declare function activateModelProfile(options: PrepareModelProfileActivationOptions, applyOptions?: ApplyModelProfileActivationOptions): Promise<void>;
263
+ /** Install only a profile's runtime role layer, preserving session model and configured-chain intent. */
264
+ export declare function applyModelProfileRuntimeBindings(options: PrepareModelProfileActivationOptions): Promise<void>;