@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,360 @@
1
+ import { createHash } from "node:crypto";
2
+ import {
3
+ PUBLIC_COMMANDS,
4
+ PUBLIC_HELP_SECTIONS,
5
+ type PublicCommandDescriptor,
6
+ type PublicHelpSection,
7
+ } from "./public-command-registry";
8
+
9
+ export const PUBLIC_HELP_MAX_BYTES = 8192;
10
+ const FRAGMENT_BYTES = 1024;
11
+
12
+ export interface PublicHelpOptions {
13
+ json?: boolean;
14
+ section?: string;
15
+ page?: string | number;
16
+ revision?: string;
17
+ }
18
+ export type PublicHelpErrorCode =
19
+ | "unknown_command"
20
+ | "invalid_section"
21
+ | "invalid_page"
22
+ | "invalid_revision"
23
+ | "revision_mismatch"
24
+ | "static_metadata_too_large"
25
+ | "invalid_registry";
26
+ export class PublicHelpError extends Error {
27
+ readonly exitCode: 2 | 1;
28
+ constructor(readonly code: PublicHelpErrorCode) {
29
+ super(
30
+ {
31
+ unknown_command: "Unknown public command. Request help at the nearest known command.",
32
+ invalid_section: "Select a documented help section.",
33
+ invalid_page: "Select an available positive decimal safe-integer help page.",
34
+ invalid_revision: "Help revision must be a lowercase SHA256 digest.",
35
+ revision_mismatch: "Help metadata changed. Begin a new help traversal without the old revision.",
36
+ static_metadata_too_large: "Static help metadata cannot fit the output budget.",
37
+ invalid_registry: "Static help registry contains an invalid command relationship or value.",
38
+ }[code],
39
+ );
40
+ this.name = "PublicHelpError";
41
+ this.exitCode = code === "static_metadata_too_large" || code === "invalid_registry" ? 1 : 2;
42
+ }
43
+ }
44
+ export interface PublicHelpEntry {
45
+ id: string;
46
+ kind: "overview" | "usage" | "child" | "argument" | "option" | "example" | "recovery";
47
+ complete: true;
48
+ value: unknown;
49
+ }
50
+ export interface PublicHelpFragment {
51
+ id: string;
52
+ kind: "fragment";
53
+ complete: false;
54
+ encoding: "base64";
55
+ offsetBytes: number;
56
+ totalBytes: number;
57
+ sha256: string;
58
+ data: string;
59
+ }
60
+ export interface PublicHelpNext {
61
+ section: PublicHelpSection;
62
+ page: number;
63
+ executable: "gjc";
64
+ argv: string[];
65
+ }
66
+ export interface PublicHelpDocument {
67
+ schema: "gjc.command-help";
68
+ version: 1;
69
+ ok: true;
70
+ command: readonly string[];
71
+ canonicalCommand: readonly string[];
72
+ revision: string;
73
+ section: PublicHelpSection;
74
+ page: number;
75
+ sections: readonly PublicHelpSection[];
76
+ entries: readonly (PublicHelpEntry | PublicHelpFragment)[];
77
+ sectionComplete: boolean;
78
+ documentComplete: boolean;
79
+ next: PublicHelpNext | null;
80
+ }
81
+ export interface PublicHelpRenderResult {
82
+ /** Complete serialization including its single trailing newline. No output is written. */
83
+ output: string;
84
+ bytes: number;
85
+ document: PublicHelpDocument;
86
+ }
87
+
88
+ /** Sorted object keys; array ordering is semantic. JSON escaping preserves lone surrogates. */
89
+ function canonicalJson(value: unknown): string {
90
+ const normalize = (item: unknown): unknown => {
91
+ if (item === null || typeof item === "string" || typeof item === "boolean") return item;
92
+ if (typeof item === "number" && Number.isFinite(item)) return item;
93
+ if (Array.isArray(item)) return item.map(value => (value === undefined ? null : normalize(value)));
94
+ if (item && typeof item === "object") {
95
+ const result: Record<string, unknown> = {};
96
+ for (const key of Object.keys(item).sort()) {
97
+ const value = (item as Record<string, unknown>)[key];
98
+ if (value !== undefined) Object.defineProperty(result, key, { value: normalize(value), enumerable: true });
99
+ }
100
+ return result;
101
+ }
102
+ throw new PublicHelpError("invalid_registry");
103
+ };
104
+ return JSON.stringify(normalize(value));
105
+ }
106
+ function sha256(value: string | Uint8Array): string {
107
+ return createHash("sha256").update(value).digest("hex");
108
+ }
109
+
110
+ /** The digest covers every descriptor and this renderer's paging/schema policy. */
111
+ export function getPublicHelpRevision(registry: readonly PublicCommandDescriptor[] = PUBLIC_COMMANDS): string {
112
+ return sha256(
113
+ canonicalJson({
114
+ schema: "gjc.command-help",
115
+ version: 1,
116
+ pagingVersion: 1,
117
+ maxBytes: PUBLIC_HELP_MAX_BYTES,
118
+ fragmentBytes: FRAGMENT_BYTES,
119
+ sections: PUBLIC_HELP_SECTIONS,
120
+ registry,
121
+ entryOrder: registry.map(row => ({ arguments: Object.keys(row.args), options: Object.keys(row.flags) })),
122
+ }),
123
+ );
124
+ }
125
+
126
+ function entriesFor(
127
+ descriptor: PublicCommandDescriptor,
128
+ registry: readonly PublicCommandDescriptor[],
129
+ ): Record<PublicHelpSection, PublicHelpEntry[]> {
130
+ const prefix = descriptor.command.join("/");
131
+ const entry = (
132
+ section: PublicHelpSection,
133
+ key: string,
134
+ kind: PublicHelpEntry["kind"],
135
+ value: unknown,
136
+ ): PublicHelpEntry => ({ id: `${prefix}/${section}/${key}`, kind, complete: true, value });
137
+ const sections: Record<PublicHelpSection, PublicHelpEntry[]> = {
138
+ overview: [],
139
+ usage: descriptor.usage.map((value, index) => entry("usage", String(index + 1), "usage", value)),
140
+ children: descriptor.children.map(token => {
141
+ const path = [...descriptor.command, token];
142
+ const child = registry.find(
143
+ row => row.command.length === path.length && row.command.every((part, index) => part === path[index]),
144
+ );
145
+ if (!child) throw new PublicHelpError("invalid_registry");
146
+ return entry("children", token, "child", {
147
+ command: child.command,
148
+ canonicalCommand: child.canonicalCommand,
149
+ description: child.description,
150
+ help: { executable: "gjc", argv: [...child.command, "--help"] },
151
+ });
152
+ }),
153
+ arguments: Object.entries(descriptor.args).map(([name, arg]) =>
154
+ entry("arguments", name, "argument", {
155
+ name,
156
+ required: arg.required ?? false,
157
+ multiple: arg.multiple ?? false,
158
+ description: arg.description,
159
+ ...(arg.options ? { choices: arg.options } : {}),
160
+ }),
161
+ ),
162
+ options: Object.entries(descriptor.flags).map(([name, flag]) =>
163
+ entry("options", name, "option", {
164
+ name: `--${name}`,
165
+ type: flag.kind,
166
+ ...(flag.char ? { short: `-${flag.char}` } : {}),
167
+ required: flag.required ?? false,
168
+ multiple: flag.multiple ?? false,
169
+ ...(flag.default !== undefined ? { default: flag.default } : {}),
170
+ ...(flag.options ? { choices: flag.options } : {}),
171
+ description: flag.description,
172
+ ...(flag.conflicts ? { conflicts: flag.conflicts.map(name => `--${name}`) } : {}),
173
+ ...(flag.requires ? { requires: flag.requires.map(name => `--${name}`) } : {}),
174
+ ...(flag.risk ? { risk: flag.risk } : {}),
175
+ }),
176
+ ),
177
+ examples: descriptor.examples.map((value, index) => entry("examples", String(index + 1), "example", value)),
178
+ recovery: descriptor.recovery.map((value, index) => entry("recovery", String(index + 1), "recovery", value)),
179
+ };
180
+ // Constraints belong to recovery, so overview can reference rather than duplicate them.
181
+ for (const [index, description] of descriptor.constraints.entries())
182
+ sections.recovery.push(
183
+ entry("recovery", `constraint-${index + 1}`, "recovery", {
184
+ description,
185
+ disruption: "none",
186
+ requiresConfirmation: false,
187
+ }),
188
+ );
189
+ if (descriptor.risk)
190
+ sections.recovery.push(
191
+ entry("recovery", "risk", "recovery", {
192
+ description: descriptor.risk,
193
+ disruption: "interrupts-work",
194
+ requiresConfirmation: true,
195
+ }),
196
+ );
197
+ if (descriptor.exactlyOneOf?.length)
198
+ sections.usage.push(
199
+ entry("usage", "exclusive-options", "usage", {
200
+ syntax: `Exactly one option is required in each group: ${descriptor.exactlyOneOf.map(group => group.map(name => `--${name}`).join(" | ")).join("; ")}`,
201
+ executable: false,
202
+ }),
203
+ );
204
+ sections.overview.push(
205
+ entry("overview", "summary", "overview", {
206
+ description: descriptor.description,
207
+ ...(descriptor.defaultChild ? { defaultCommand: [...descriptor.command, descriptor.defaultChild] } : {}),
208
+ entries: PUBLIC_HELP_SECTIONS.filter(section => section !== "overview").map(section => ({
209
+ section,
210
+ ids: sections[section].map(value => value.id),
211
+ })),
212
+ }),
213
+ );
214
+ return sections;
215
+ }
216
+
217
+ /** JSON literals are display values, not shell commands; escape terminal controls explicitly. */
218
+ function display(value: unknown): string {
219
+ return JSON.stringify(value).replace(
220
+ /[\u007f-\u009f\u2028\u2029]/g,
221
+ character => `\\u${character.charCodeAt(0).toString(16).padStart(4, "0")}`,
222
+ );
223
+ }
224
+ function serialize(document: PublicHelpDocument, json: boolean): string {
225
+ if (json) return `${JSON.stringify(document)}\n`;
226
+ return `${[
227
+ `COMMAND ${display(document.command)}`,
228
+ `CANONICAL COMMAND ${display(document.canonicalCommand)}`,
229
+ `REVISION ${document.revision}`,
230
+ `SECTION ${document.section} PAGE ${document.page}`,
231
+ `SECTIONS ${display(document.sections)}`,
232
+ "ENTRIES (JSON display literals; do not paste escaped strings as shell argv)",
233
+ ...document.entries.map(entry => display(entry)),
234
+ `SECTION COMPLETE ${document.sectionComplete}`,
235
+ `DOCUMENT COMPLETE ${document.documentComplete}`,
236
+ `CONTINUATION ${display(document.next)}`,
237
+ ].join("\n")}\n`;
238
+ }
239
+ function pageNumber(value: PublicHelpOptions["page"]): number {
240
+ if (value === undefined) return 1;
241
+ if (typeof value === "string" && !/^[0-9]+$/.test(value)) throw new PublicHelpError("invalid_page");
242
+ const page = Number(value);
243
+ if (!Number.isSafeInteger(page) || page < 1) throw new PublicHelpError("invalid_page");
244
+ return page;
245
+ }
246
+
247
+ /**
248
+ * Pure command-local rendering. Each page holds one complete entry or one byte fragment;
249
+ * empty sections still have page 1. This keeps traversal stable and independently bounded.
250
+ * The optional registry supports isolated static fixtures without replacing global state.
251
+ */
252
+ export function renderPublicCommandHelp(
253
+ command: readonly string[],
254
+ options: PublicHelpOptions = {},
255
+ registry: readonly PublicCommandDescriptor[] = PUBLIC_COMMANDS,
256
+ ): PublicHelpRenderResult {
257
+ const descriptor = registry.find(
258
+ row => row.command.length === command.length && row.command.every((part, index) => part === command[index]),
259
+ );
260
+ if (!descriptor) throw new PublicHelpError("unknown_command");
261
+ const section = options.section ?? "overview";
262
+ if (!(PUBLIC_HELP_SECTIONS as readonly string[]).includes(section)) throw new PublicHelpError("invalid_section");
263
+ const selectedSection = section as PublicHelpSection;
264
+ const page = pageNumber(options.page);
265
+ if (options.revision !== undefined && !/^[0-9a-f]{64}$/.test(options.revision))
266
+ throw new PublicHelpError("invalid_revision");
267
+ const revision = getPublicHelpRevision(registry);
268
+ if (options.revision !== undefined && options.revision !== revision) throw new PublicHelpError("revision_mismatch");
269
+ const json = options.json === true;
270
+ const next = (section: PublicHelpSection, page: number): PublicHelpNext => ({
271
+ section,
272
+ page,
273
+ executable: "gjc",
274
+ argv: [
275
+ ...descriptor.command,
276
+ "--help",
277
+ "--help-revision",
278
+ revision,
279
+ "--help-section",
280
+ section,
281
+ "--help-page",
282
+ String(page),
283
+ ...(json ? ["--json"] : []),
284
+ ],
285
+ });
286
+ const document = (
287
+ section: PublicHelpSection,
288
+ page: number,
289
+ entries: PublicHelpDocument["entries"],
290
+ sectionComplete: boolean,
291
+ continuation: PublicHelpNext | null,
292
+ ): PublicHelpDocument => ({
293
+ schema: "gjc.command-help",
294
+ version: 1,
295
+ ok: true,
296
+ command: descriptor.command,
297
+ canonicalCommand: descriptor.canonicalCommand,
298
+ revision,
299
+ section,
300
+ page,
301
+ sections: PUBLIC_HELP_SECTIONS,
302
+ entries,
303
+ sectionComplete,
304
+ documentComplete: continuation === null,
305
+ next: continuation,
306
+ });
307
+ // Reserve the longest section name and largest safe page number in both metadata and argv.
308
+ // false is one byte longer than true; a continuation is always larger than null.
309
+ const reservedBytes = (entries: PublicHelpDocument["entries"]): number =>
310
+ Buffer.byteLength(
311
+ serialize(
312
+ document("arguments", Number.MAX_SAFE_INTEGER, entries, false, next("arguments", Number.MAX_SAFE_INTEGER)),
313
+ json,
314
+ ),
315
+ );
316
+ if (reservedBytes([]) > PUBLIC_HELP_MAX_BYTES) throw new PublicHelpError("static_metadata_too_large");
317
+ const pages: (PublicHelpEntry | PublicHelpFragment)[] = [];
318
+ for (const entry of entriesFor(descriptor, registry)[selectedSection]) {
319
+ if (reservedBytes([entry]) <= PUBLIC_HELP_MAX_BYTES) {
320
+ pages.push(entry);
321
+ continue;
322
+ }
323
+ const bytes = Buffer.from(canonicalJson(entry.value), "utf8");
324
+ const digest = sha256(bytes);
325
+ for (let offset = 0; offset < bytes.length; offset += FRAGMENT_BYTES) {
326
+ const fragment: PublicHelpFragment = {
327
+ id: entry.id,
328
+ kind: "fragment",
329
+ complete: false,
330
+ encoding: "base64",
331
+ offsetBytes: offset,
332
+ totalBytes: bytes.length,
333
+ sha256: digest,
334
+ data: bytes.subarray(offset, offset + FRAGMENT_BYTES).toString("base64"),
335
+ };
336
+ if (reservedBytes([fragment]) > PUBLIC_HELP_MAX_BYTES) throw new PublicHelpError("static_metadata_too_large");
337
+ pages.push(fragment);
338
+ }
339
+ }
340
+ const pageCount = Math.max(1, pages.length);
341
+ if (page > pageCount) throw new PublicHelpError("invalid_page");
342
+ const sectionComplete = page === pageCount;
343
+ const followingSection = PUBLIC_HELP_SECTIONS[PUBLIC_HELP_SECTIONS.indexOf(selectedSection) + 1];
344
+ const continuation = !sectionComplete
345
+ ? next(selectedSection, page + 1)
346
+ : followingSection
347
+ ? next(followingSection, 1)
348
+ : null;
349
+ const result = document(
350
+ selectedSection,
351
+ page,
352
+ pages.length ? [pages[page - 1]!] : [],
353
+ sectionComplete,
354
+ continuation,
355
+ );
356
+ const output = serialize(result, json);
357
+ const bytes = Buffer.byteLength(output);
358
+ if (bytes > PUBLIC_HELP_MAX_BYTES) throw new PublicHelpError("static_metadata_too_large");
359
+ return { output, bytes, document: result };
360
+ }