@stoneforge/smithy 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +114 -0
  3. package/dist/api/index.d.ts +7 -0
  4. package/dist/api/index.d.ts.map +1 -0
  5. package/dist/api/index.js +7 -0
  6. package/dist/api/index.js.map +1 -0
  7. package/dist/api/orchestrator-api.d.ts +153 -0
  8. package/dist/api/orchestrator-api.d.ts.map +1 -0
  9. package/dist/api/orchestrator-api.js +374 -0
  10. package/dist/api/orchestrator-api.js.map +1 -0
  11. package/dist/bin/sf.d.ts +3 -0
  12. package/dist/bin/sf.d.ts.map +1 -0
  13. package/dist/bin/sf.js +10 -0
  14. package/dist/bin/sf.js.map +1 -0
  15. package/dist/cli/commands/agent.d.ts +20 -0
  16. package/dist/cli/commands/agent.d.ts.map +1 -0
  17. package/dist/cli/commands/agent.js +861 -0
  18. package/dist/cli/commands/agent.js.map +1 -0
  19. package/dist/cli/commands/daemon.d.ts +14 -0
  20. package/dist/cli/commands/daemon.d.ts.map +1 -0
  21. package/dist/cli/commands/daemon.js +272 -0
  22. package/dist/cli/commands/daemon.js.map +1 -0
  23. package/dist/cli/commands/dispatch.d.ts +9 -0
  24. package/dist/cli/commands/dispatch.d.ts.map +1 -0
  25. package/dist/cli/commands/dispatch.js +128 -0
  26. package/dist/cli/commands/dispatch.js.map +1 -0
  27. package/dist/cli/commands/merge.d.ts +11 -0
  28. package/dist/cli/commands/merge.d.ts.map +1 -0
  29. package/dist/cli/commands/merge.js +246 -0
  30. package/dist/cli/commands/merge.js.map +1 -0
  31. package/dist/cli/commands/pool.d.ts +21 -0
  32. package/dist/cli/commands/pool.d.ts.map +1 -0
  33. package/dist/cli/commands/pool.js +762 -0
  34. package/dist/cli/commands/pool.js.map +1 -0
  35. package/dist/cli/commands/serve.d.ts +54 -0
  36. package/dist/cli/commands/serve.d.ts.map +1 -0
  37. package/dist/cli/commands/serve.js +57 -0
  38. package/dist/cli/commands/serve.js.map +1 -0
  39. package/dist/cli/commands/task.d.ts +36 -0
  40. package/dist/cli/commands/task.d.ts.map +1 -0
  41. package/dist/cli/commands/task.js +889 -0
  42. package/dist/cli/commands/task.js.map +1 -0
  43. package/dist/cli/commands/test-orchestration.d.ts +32 -0
  44. package/dist/cli/commands/test-orchestration.d.ts.map +1 -0
  45. package/dist/cli/commands/test-orchestration.js +392 -0
  46. package/dist/cli/commands/test-orchestration.js.map +1 -0
  47. package/dist/cli/index.d.ts +13 -0
  48. package/dist/cli/index.d.ts.map +1 -0
  49. package/dist/cli/index.js +15 -0
  50. package/dist/cli/index.js.map +1 -0
  51. package/dist/cli/plugin.d.ts +23 -0
  52. package/dist/cli/plugin.d.ts.map +1 -0
  53. package/dist/cli/plugin.js +36 -0
  54. package/dist/cli/plugin.js.map +1 -0
  55. package/dist/git/index.d.ts +10 -0
  56. package/dist/git/index.d.ts.map +1 -0
  57. package/dist/git/index.js +12 -0
  58. package/dist/git/index.js.map +1 -0
  59. package/dist/git/merge.d.ts +79 -0
  60. package/dist/git/merge.d.ts.map +1 -0
  61. package/dist/git/merge.js +254 -0
  62. package/dist/git/merge.js.map +1 -0
  63. package/dist/git/worktree-manager.d.ts +299 -0
  64. package/dist/git/worktree-manager.d.ts.map +1 -0
  65. package/dist/git/worktree-manager.js +744 -0
  66. package/dist/git/worktree-manager.js.map +1 -0
  67. package/dist/index.d.ts +24 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +31 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/prompts/director.md +272 -0
  72. package/dist/prompts/index.d.ts +100 -0
  73. package/dist/prompts/index.d.ts.map +1 -0
  74. package/dist/prompts/index.js +294 -0
  75. package/dist/prompts/index.js.map +1 -0
  76. package/dist/prompts/message-triage.md +50 -0
  77. package/dist/prompts/persistent-worker.md +240 -0
  78. package/dist/prompts/steward-base.md +64 -0
  79. package/dist/prompts/steward-docs.md +118 -0
  80. package/dist/prompts/steward-health.md +39 -0
  81. package/dist/prompts/steward-merge.md +168 -0
  82. package/dist/prompts/steward-ops.md +28 -0
  83. package/dist/prompts/steward-reminder.md +26 -0
  84. package/dist/prompts/worker.md +282 -0
  85. package/dist/providers/claude/headless.d.ts +18 -0
  86. package/dist/providers/claude/headless.d.ts.map +1 -0
  87. package/dist/providers/claude/headless.js +307 -0
  88. package/dist/providers/claude/headless.js.map +1 -0
  89. package/dist/providers/claude/index.d.ts +24 -0
  90. package/dist/providers/claude/index.d.ts.map +1 -0
  91. package/dist/providers/claude/index.js +80 -0
  92. package/dist/providers/claude/index.js.map +1 -0
  93. package/dist/providers/claude/interactive.d.ts +21 -0
  94. package/dist/providers/claude/interactive.d.ts.map +1 -0
  95. package/dist/providers/claude/interactive.js +142 -0
  96. package/dist/providers/claude/interactive.js.map +1 -0
  97. package/dist/providers/codex/event-mapper.d.ts +91 -0
  98. package/dist/providers/codex/event-mapper.d.ts.map +1 -0
  99. package/dist/providers/codex/event-mapper.js +299 -0
  100. package/dist/providers/codex/event-mapper.js.map +1 -0
  101. package/dist/providers/codex/headless.d.ts +20 -0
  102. package/dist/providers/codex/headless.d.ts.map +1 -0
  103. package/dist/providers/codex/headless.js +174 -0
  104. package/dist/providers/codex/headless.js.map +1 -0
  105. package/dist/providers/codex/index.d.ts +30 -0
  106. package/dist/providers/codex/index.d.ts.map +1 -0
  107. package/dist/providers/codex/index.js +55 -0
  108. package/dist/providers/codex/index.js.map +1 -0
  109. package/dist/providers/codex/interactive.d.ts +21 -0
  110. package/dist/providers/codex/interactive.d.ts.map +1 -0
  111. package/dist/providers/codex/interactive.js +141 -0
  112. package/dist/providers/codex/interactive.js.map +1 -0
  113. package/dist/providers/codex/jsonrpc-client.d.ts +52 -0
  114. package/dist/providers/codex/jsonrpc-client.d.ts.map +1 -0
  115. package/dist/providers/codex/jsonrpc-client.js +141 -0
  116. package/dist/providers/codex/jsonrpc-client.js.map +1 -0
  117. package/dist/providers/codex/server-manager.d.ts +100 -0
  118. package/dist/providers/codex/server-manager.d.ts.map +1 -0
  119. package/dist/providers/codex/server-manager.js +153 -0
  120. package/dist/providers/codex/server-manager.js.map +1 -0
  121. package/dist/providers/index.d.ts +15 -0
  122. package/dist/providers/index.d.ts.map +1 -0
  123. package/dist/providers/index.js +19 -0
  124. package/dist/providers/index.js.map +1 -0
  125. package/dist/providers/opencode/async-queue.d.ts +21 -0
  126. package/dist/providers/opencode/async-queue.d.ts.map +1 -0
  127. package/dist/providers/opencode/async-queue.js +51 -0
  128. package/dist/providers/opencode/async-queue.js.map +1 -0
  129. package/dist/providers/opencode/event-mapper.d.ts +132 -0
  130. package/dist/providers/opencode/event-mapper.d.ts.map +1 -0
  131. package/dist/providers/opencode/event-mapper.js +204 -0
  132. package/dist/providers/opencode/event-mapper.js.map +1 -0
  133. package/dist/providers/opencode/headless.d.ts +25 -0
  134. package/dist/providers/opencode/headless.d.ts.map +1 -0
  135. package/dist/providers/opencode/headless.js +190 -0
  136. package/dist/providers/opencode/headless.js.map +1 -0
  137. package/dist/providers/opencode/index.d.ts +33 -0
  138. package/dist/providers/opencode/index.d.ts.map +1 -0
  139. package/dist/providers/opencode/index.js +42 -0
  140. package/dist/providers/opencode/index.js.map +1 -0
  141. package/dist/providers/opencode/interactive.d.ts +21 -0
  142. package/dist/providers/opencode/interactive.d.ts.map +1 -0
  143. package/dist/providers/opencode/interactive.js +135 -0
  144. package/dist/providers/opencode/interactive.js.map +1 -0
  145. package/dist/providers/opencode/server-manager.d.ts +145 -0
  146. package/dist/providers/opencode/server-manager.d.ts.map +1 -0
  147. package/dist/providers/opencode/server-manager.js +163 -0
  148. package/dist/providers/opencode/server-manager.js.map +1 -0
  149. package/dist/providers/registry.d.ts +38 -0
  150. package/dist/providers/registry.d.ts.map +1 -0
  151. package/dist/providers/registry.js +82 -0
  152. package/dist/providers/registry.js.map +1 -0
  153. package/dist/providers/types.d.ts +144 -0
  154. package/dist/providers/types.d.ts.map +1 -0
  155. package/dist/providers/types.js +25 -0
  156. package/dist/providers/types.js.map +1 -0
  157. package/dist/runtime/event-utils.d.ts +8 -0
  158. package/dist/runtime/event-utils.d.ts.map +1 -0
  159. package/dist/runtime/event-utils.js +23 -0
  160. package/dist/runtime/event-utils.js.map +1 -0
  161. package/dist/runtime/handoff.d.ts +195 -0
  162. package/dist/runtime/handoff.d.ts.map +1 -0
  163. package/dist/runtime/handoff.js +332 -0
  164. package/dist/runtime/handoff.js.map +1 -0
  165. package/dist/runtime/index.d.ts +17 -0
  166. package/dist/runtime/index.d.ts.map +1 -0
  167. package/dist/runtime/index.js +60 -0
  168. package/dist/runtime/index.js.map +1 -0
  169. package/dist/runtime/message-mapper.d.ts +99 -0
  170. package/dist/runtime/message-mapper.d.ts.map +1 -0
  171. package/dist/runtime/message-mapper.js +202 -0
  172. package/dist/runtime/message-mapper.js.map +1 -0
  173. package/dist/runtime/predecessor-query.d.ts +212 -0
  174. package/dist/runtime/predecessor-query.d.ts.map +1 -0
  175. package/dist/runtime/predecessor-query.js +283 -0
  176. package/dist/runtime/predecessor-query.js.map +1 -0
  177. package/dist/runtime/session-manager.d.ts +466 -0
  178. package/dist/runtime/session-manager.d.ts.map +1 -0
  179. package/dist/runtime/session-manager.js +986 -0
  180. package/dist/runtime/session-manager.js.map +1 -0
  181. package/dist/runtime/spawner.d.ts +407 -0
  182. package/dist/runtime/spawner.d.ts.map +1 -0
  183. package/dist/runtime/spawner.js +781 -0
  184. package/dist/runtime/spawner.js.map +1 -0
  185. package/dist/server/config.d.ts +22 -0
  186. package/dist/server/config.d.ts.map +1 -0
  187. package/dist/server/config.js +59 -0
  188. package/dist/server/config.js.map +1 -0
  189. package/dist/server/daemon-state.d.ts +50 -0
  190. package/dist/server/daemon-state.d.ts.map +1 -0
  191. package/dist/server/daemon-state.js +100 -0
  192. package/dist/server/daemon-state.js.map +1 -0
  193. package/dist/server/events-websocket.d.ts +32 -0
  194. package/dist/server/events-websocket.d.ts.map +1 -0
  195. package/dist/server/events-websocket.js +96 -0
  196. package/dist/server/events-websocket.js.map +1 -0
  197. package/dist/server/formatters.d.ts +94 -0
  198. package/dist/server/formatters.d.ts.map +1 -0
  199. package/dist/server/formatters.js +142 -0
  200. package/dist/server/formatters.js.map +1 -0
  201. package/dist/server/index.d.ts +17 -0
  202. package/dist/server/index.d.ts.map +1 -0
  203. package/dist/server/index.js +153 -0
  204. package/dist/server/index.js.map +1 -0
  205. package/dist/server/lsp-websocket.d.ts +33 -0
  206. package/dist/server/lsp-websocket.d.ts.map +1 -0
  207. package/dist/server/lsp-websocket.js +161 -0
  208. package/dist/server/lsp-websocket.js.map +1 -0
  209. package/dist/server/routes/agents.d.ts +9 -0
  210. package/dist/server/routes/agents.d.ts.map +1 -0
  211. package/dist/server/routes/agents.js +369 -0
  212. package/dist/server/routes/agents.js.map +1 -0
  213. package/dist/server/routes/daemon.d.ts +13 -0
  214. package/dist/server/routes/daemon.d.ts.map +1 -0
  215. package/dist/server/routes/daemon.js +187 -0
  216. package/dist/server/routes/daemon.js.map +1 -0
  217. package/dist/server/routes/events.d.ts +23 -0
  218. package/dist/server/routes/events.d.ts.map +1 -0
  219. package/dist/server/routes/events.js +282 -0
  220. package/dist/server/routes/events.js.map +1 -0
  221. package/dist/server/routes/extensions.d.ts +9 -0
  222. package/dist/server/routes/extensions.d.ts.map +1 -0
  223. package/dist/server/routes/extensions.js +202 -0
  224. package/dist/server/routes/extensions.js.map +1 -0
  225. package/dist/server/routes/health.d.ts +7 -0
  226. package/dist/server/routes/health.d.ts.map +1 -0
  227. package/dist/server/routes/health.js +33 -0
  228. package/dist/server/routes/health.js.map +1 -0
  229. package/dist/server/routes/index.d.ts +21 -0
  230. package/dist/server/routes/index.d.ts.map +1 -0
  231. package/dist/server/routes/index.js +21 -0
  232. package/dist/server/routes/index.js.map +1 -0
  233. package/dist/server/routes/lsp.d.ts +9 -0
  234. package/dist/server/routes/lsp.d.ts.map +1 -0
  235. package/dist/server/routes/lsp.js +50 -0
  236. package/dist/server/routes/lsp.js.map +1 -0
  237. package/dist/server/routes/plugins.d.ts +9 -0
  238. package/dist/server/routes/plugins.d.ts.map +1 -0
  239. package/dist/server/routes/plugins.js +109 -0
  240. package/dist/server/routes/plugins.js.map +1 -0
  241. package/dist/server/routes/pools.d.ts +9 -0
  242. package/dist/server/routes/pools.d.ts.map +1 -0
  243. package/dist/server/routes/pools.js +189 -0
  244. package/dist/server/routes/pools.js.map +1 -0
  245. package/dist/server/routes/scheduler.d.ts +9 -0
  246. package/dist/server/routes/scheduler.d.ts.map +1 -0
  247. package/dist/server/routes/scheduler.js +162 -0
  248. package/dist/server/routes/scheduler.js.map +1 -0
  249. package/dist/server/routes/sessions.d.ts +27 -0
  250. package/dist/server/routes/sessions.d.ts.map +1 -0
  251. package/dist/server/routes/sessions.js +773 -0
  252. package/dist/server/routes/sessions.js.map +1 -0
  253. package/dist/server/routes/tasks.d.ts +9 -0
  254. package/dist/server/routes/tasks.d.ts.map +1 -0
  255. package/dist/server/routes/tasks.js +954 -0
  256. package/dist/server/routes/tasks.js.map +1 -0
  257. package/dist/server/routes/upload.d.ts +8 -0
  258. package/dist/server/routes/upload.d.ts.map +1 -0
  259. package/dist/server/routes/upload.js +40 -0
  260. package/dist/server/routes/upload.js.map +1 -0
  261. package/dist/server/routes/workflows.d.ts +9 -0
  262. package/dist/server/routes/workflows.d.ts.map +1 -0
  263. package/dist/server/routes/workflows.js +532 -0
  264. package/dist/server/routes/workflows.js.map +1 -0
  265. package/dist/server/routes/workspace-files.d.ts +12 -0
  266. package/dist/server/routes/workspace-files.d.ts.map +1 -0
  267. package/dist/server/routes/workspace-files.js +520 -0
  268. package/dist/server/routes/workspace-files.js.map +1 -0
  269. package/dist/server/routes/worktrees.d.ts +9 -0
  270. package/dist/server/routes/worktrees.d.ts.map +1 -0
  271. package/dist/server/routes/worktrees.js +94 -0
  272. package/dist/server/routes/worktrees.js.map +1 -0
  273. package/dist/server/server.d.ts +14 -0
  274. package/dist/server/server.d.ts.map +1 -0
  275. package/dist/server/server.js +258 -0
  276. package/dist/server/server.js.map +1 -0
  277. package/dist/server/services/lsp-manager.d.ts +93 -0
  278. package/dist/server/services/lsp-manager.d.ts.map +1 -0
  279. package/dist/server/services/lsp-manager.js +291 -0
  280. package/dist/server/services/lsp-manager.js.map +1 -0
  281. package/dist/server/services/session-messages.d.ts +61 -0
  282. package/dist/server/services/session-messages.d.ts.map +1 -0
  283. package/dist/server/services/session-messages.js +101 -0
  284. package/dist/server/services/session-messages.js.map +1 -0
  285. package/dist/server/services.d.ts +35 -0
  286. package/dist/server/services.d.ts.map +1 -0
  287. package/dist/server/services.js +159 -0
  288. package/dist/server/services.js.map +1 -0
  289. package/dist/server/static.d.ts +18 -0
  290. package/dist/server/static.d.ts.map +1 -0
  291. package/dist/server/static.js +71 -0
  292. package/dist/server/static.js.map +1 -0
  293. package/dist/server/types.d.ts +20 -0
  294. package/dist/server/types.d.ts.map +1 -0
  295. package/dist/server/types.js +7 -0
  296. package/dist/server/types.js.map +1 -0
  297. package/dist/server/websocket.d.ts +16 -0
  298. package/dist/server/websocket.d.ts.map +1 -0
  299. package/dist/server/websocket.js +143 -0
  300. package/dist/server/websocket.js.map +1 -0
  301. package/dist/services/agent-pool-service.d.ts +181 -0
  302. package/dist/services/agent-pool-service.d.ts.map +1 -0
  303. package/dist/services/agent-pool-service.js +590 -0
  304. package/dist/services/agent-pool-service.js.map +1 -0
  305. package/dist/services/agent-registry.d.ts +185 -0
  306. package/dist/services/agent-registry.d.ts.map +1 -0
  307. package/dist/services/agent-registry.js +432 -0
  308. package/dist/services/agent-registry.js.map +1 -0
  309. package/dist/services/dispatch-daemon.d.ts +429 -0
  310. package/dist/services/dispatch-daemon.d.ts.map +1 -0
  311. package/dist/services/dispatch-daemon.js +1833 -0
  312. package/dist/services/dispatch-daemon.js.map +1 -0
  313. package/dist/services/dispatch-service.d.ts +148 -0
  314. package/dist/services/dispatch-service.d.ts.map +1 -0
  315. package/dist/services/dispatch-service.js +170 -0
  316. package/dist/services/dispatch-service.js.map +1 -0
  317. package/dist/services/docs-steward-service.d.ts +199 -0
  318. package/dist/services/docs-steward-service.d.ts.map +1 -0
  319. package/dist/services/docs-steward-service.js +599 -0
  320. package/dist/services/docs-steward-service.js.map +1 -0
  321. package/dist/services/health-steward-service.d.ts +446 -0
  322. package/dist/services/health-steward-service.d.ts.map +1 -0
  323. package/dist/services/health-steward-service.js +866 -0
  324. package/dist/services/health-steward-service.js.map +1 -0
  325. package/dist/services/index.d.ts +26 -0
  326. package/dist/services/index.d.ts.map +1 -0
  327. package/dist/services/index.js +111 -0
  328. package/dist/services/index.js.map +1 -0
  329. package/dist/services/merge-request-provider.d.ts +59 -0
  330. package/dist/services/merge-request-provider.d.ts.map +1 -0
  331. package/dist/services/merge-request-provider.js +89 -0
  332. package/dist/services/merge-request-provider.js.map +1 -0
  333. package/dist/services/merge-steward-service.d.ts +268 -0
  334. package/dist/services/merge-steward-service.d.ts.map +1 -0
  335. package/dist/services/merge-steward-service.js +568 -0
  336. package/dist/services/merge-steward-service.js.map +1 -0
  337. package/dist/services/plugin-executor.d.ts +247 -0
  338. package/dist/services/plugin-executor.d.ts.map +1 -0
  339. package/dist/services/plugin-executor.js +451 -0
  340. package/dist/services/plugin-executor.js.map +1 -0
  341. package/dist/services/role-definition-service.d.ts +117 -0
  342. package/dist/services/role-definition-service.d.ts.map +1 -0
  343. package/dist/services/role-definition-service.js +289 -0
  344. package/dist/services/role-definition-service.js.map +1 -0
  345. package/dist/services/steward-scheduler.d.ts +336 -0
  346. package/dist/services/steward-scheduler.d.ts.map +1 -0
  347. package/dist/services/steward-scheduler.js +732 -0
  348. package/dist/services/steward-scheduler.js.map +1 -0
  349. package/dist/services/task-assignment-service.d.ts +291 -0
  350. package/dist/services/task-assignment-service.d.ts.map +1 -0
  351. package/dist/services/task-assignment-service.js +454 -0
  352. package/dist/services/task-assignment-service.js.map +1 -0
  353. package/dist/services/worker-task-service.d.ts +202 -0
  354. package/dist/services/worker-task-service.d.ts.map +1 -0
  355. package/dist/services/worker-task-service.js +228 -0
  356. package/dist/services/worker-task-service.js.map +1 -0
  357. package/dist/testing/index.d.ts +13 -0
  358. package/dist/testing/index.d.ts.map +1 -0
  359. package/dist/testing/index.js +17 -0
  360. package/dist/testing/index.js.map +1 -0
  361. package/dist/testing/orchestration-tests.d.ts +62 -0
  362. package/dist/testing/orchestration-tests.d.ts.map +1 -0
  363. package/dist/testing/orchestration-tests.js +1115 -0
  364. package/dist/testing/orchestration-tests.js.map +1 -0
  365. package/dist/testing/test-context.d.ts +171 -0
  366. package/dist/testing/test-context.d.ts.map +1 -0
  367. package/dist/testing/test-context.js +665 -0
  368. package/dist/testing/test-context.js.map +1 -0
  369. package/dist/testing/test-prompts.d.ts +46 -0
  370. package/dist/testing/test-prompts.d.ts.map +1 -0
  371. package/dist/testing/test-prompts.js +140 -0
  372. package/dist/testing/test-prompts.js.map +1 -0
  373. package/dist/testing/test-utils.d.ts +200 -0
  374. package/dist/testing/test-utils.d.ts.map +1 -0
  375. package/dist/testing/test-utils.js +378 -0
  376. package/dist/testing/test-utils.js.map +1 -0
  377. package/dist/types/agent-pool.d.ts +215 -0
  378. package/dist/types/agent-pool.d.ts.map +1 -0
  379. package/dist/types/agent-pool.js +143 -0
  380. package/dist/types/agent-pool.js.map +1 -0
  381. package/dist/types/agent.d.ts +265 -0
  382. package/dist/types/agent.d.ts.map +1 -0
  383. package/dist/types/agent.js +127 -0
  384. package/dist/types/agent.js.map +1 -0
  385. package/dist/types/index.d.ts +11 -0
  386. package/dist/types/index.d.ts.map +1 -0
  387. package/dist/types/index.js +40 -0
  388. package/dist/types/index.js.map +1 -0
  389. package/dist/types/message-types.d.ts +294 -0
  390. package/dist/types/message-types.d.ts.map +1 -0
  391. package/dist/types/message-types.js +354 -0
  392. package/dist/types/message-types.js.map +1 -0
  393. package/dist/types/role-definition.d.ts +272 -0
  394. package/dist/types/role-definition.d.ts.map +1 -0
  395. package/dist/types/role-definition.js +144 -0
  396. package/dist/types/role-definition.js.map +1 -0
  397. package/dist/types/task-meta.d.ts +248 -0
  398. package/dist/types/task-meta.d.ts.map +1 -0
  399. package/dist/types/task-meta.js +213 -0
  400. package/dist/types/task-meta.js.map +1 -0
  401. package/package.json +120 -0
  402. package/web/assets/abap-BrgZPUOV.js +6 -0
  403. package/web/assets/apex-DyP6w7ZV.js +6 -0
  404. package/web/assets/azcli-BaLxmfj-.js +6 -0
  405. package/web/assets/bat-CFOPXBzS.js +6 -0
  406. package/web/assets/bicep-BfEKNvv3.js +7 -0
  407. package/web/assets/cameligo-BFG1Mk7z.js +6 -0
  408. package/web/assets/clojure-DTECt2xU.js +6 -0
  409. package/web/assets/codicon-DCmgc-ay.ttf +0 -0
  410. package/web/assets/coffee-CDGzqUPQ.js +6 -0
  411. package/web/assets/cpp-CLLBncYj.js +6 -0
  412. package/web/assets/csharp-dUCx_-0o.js +6 -0
  413. package/web/assets/csp-5Rap-vPy.js +6 -0
  414. package/web/assets/css-D3h14YRZ.js +8 -0
  415. package/web/assets/cssMode-DMo-5YLA.js +9 -0
  416. package/web/assets/cypher-DrQuvNYM.js +6 -0
  417. package/web/assets/dart-CFKIUWau.js +6 -0
  418. package/web/assets/dockerfile-Zznr-cwX.js +6 -0
  419. package/web/assets/ecl-Ce3n6wWz.js +6 -0
  420. package/web/assets/elixir-deUWdS0T.js +6 -0
  421. package/web/assets/flow9-i9-g7ZhI.js +6 -0
  422. package/web/assets/freemarker2-D4qgkQzN.js +8 -0
  423. package/web/assets/fsharp-CzKuDChf.js +6 -0
  424. package/web/assets/go-Cphgjts3.js +6 -0
  425. package/web/assets/graphql-Cg7bfA9N.js +6 -0
  426. package/web/assets/handlebars-CXFvNjQC.js +6 -0
  427. package/web/assets/hcl-0cvrggvQ.js +6 -0
  428. package/web/assets/html-oyuB_D-B.js +6 -0
  429. package/web/assets/htmlMode-iWuZ24-r.js +9 -0
  430. package/web/assets/index-DqP-_E4F.css +32 -0
  431. package/web/assets/index-R1cylSgw.js +1665 -0
  432. package/web/assets/ini-Drc7WvVn.js +6 -0
  433. package/web/assets/java-B_fMsGYe.js +6 -0
  434. package/web/assets/javascript-CRIkN2Pg.js +6 -0
  435. package/web/assets/jsonMode-DVDkDgex.js +15 -0
  436. package/web/assets/julia-Bqgm2twL.js +6 -0
  437. package/web/assets/kotlin-BSkB5QuD.js +6 -0
  438. package/web/assets/less-BsTHnhdd.js +7 -0
  439. package/web/assets/lexon-YWi4-JPR.js +6 -0
  440. package/web/assets/liquid-CSfldbB5.js +6 -0
  441. package/web/assets/lua-nf6ki56Z.js +6 -0
  442. package/web/assets/m3-Cpb6xl2v.js +6 -0
  443. package/web/assets/markdown-DSZPf7rp.js +6 -0
  444. package/web/assets/mdx-Dd58iymR.js +6 -0
  445. package/web/assets/mips-B_c3zf-v.js +6 -0
  446. package/web/assets/monaco-editor-B4lwqA13.js +751 -0
  447. package/web/assets/monaco-editor-CQpyCxOA.css +1 -0
  448. package/web/assets/msdax-rUNN04Wq.js +6 -0
  449. package/web/assets/mysql-DDwshQtU.js +6 -0
  450. package/web/assets/objective-c-B5zXfXm9.js +6 -0
  451. package/web/assets/pascal-CXOwvkN_.js +6 -0
  452. package/web/assets/pascaligo-Bc-ZgV77.js +6 -0
  453. package/web/assets/perl-CwNk8-XU.js +6 -0
  454. package/web/assets/pgsql-tGk8EFnU.js +6 -0
  455. package/web/assets/php-CpIb_Oan.js +6 -0
  456. package/web/assets/pla-B03wrqEc.js +6 -0
  457. package/web/assets/postiats-BKlk5iyT.js +6 -0
  458. package/web/assets/powerquery-Bhzvs7bI.js +6 -0
  459. package/web/assets/powershell-Dd3NCNK9.js +6 -0
  460. package/web/assets/protobuf-COyEY5Pt.js +7 -0
  461. package/web/assets/pug-BaJupSGV.js +6 -0
  462. package/web/assets/python-XWrMqdhO.js +6 -0
  463. package/web/assets/qsharp-DXyYeYxl.js +6 -0
  464. package/web/assets/r-CdQndTaG.js +6 -0
  465. package/web/assets/razor-DPlhCpIs.js +6 -0
  466. package/web/assets/redis-CVwtpugi.js +6 -0
  467. package/web/assets/redshift-25W9uPmb.js +6 -0
  468. package/web/assets/restructuredtext-DfzH4Xui.js +6 -0
  469. package/web/assets/router-vendor-DHlGizSU.js +41 -0
  470. package/web/assets/ruby-Cp1zYvxS.js +6 -0
  471. package/web/assets/rust-D5C2fndG.js +6 -0
  472. package/web/assets/sb-CDntyWJ8.js +6 -0
  473. package/web/assets/scala-BoFRg7Ot.js +6 -0
  474. package/web/assets/scheme-Bio4gycK.js +6 -0
  475. package/web/assets/scss-4Ik7cdeQ.js +8 -0
  476. package/web/assets/shell-CX-rkNHf.js +6 -0
  477. package/web/assets/solidity-Tw7wswEv.js +6 -0
  478. package/web/assets/sophia-C5WLch3f.js +6 -0
  479. package/web/assets/sparql-DHaeiCBh.js +6 -0
  480. package/web/assets/sql-CCSDG5nI.js +6 -0
  481. package/web/assets/st-pnP8ivHi.js +6 -0
  482. package/web/assets/swift-DwJ7jVG9.js +8 -0
  483. package/web/assets/systemverilog-B9Xyijhd.js +6 -0
  484. package/web/assets/tcl-DnHyzjbg.js +6 -0
  485. package/web/assets/tsMode-BbA1Jbf3.js +16 -0
  486. package/web/assets/twig-CPajHgWi.js +6 -0
  487. package/web/assets/typescript-DcLHYzvH.js +6 -0
  488. package/web/assets/typespec-D-MeaMDU.js +6 -0
  489. package/web/assets/ui-vendor-BSco96uv.js +51 -0
  490. package/web/assets/utils-vendor-DaJ2Dubl.js +911 -0
  491. package/web/assets/vb-DgyLZaXg.js +6 -0
  492. package/web/assets/wgsl-DYQUnd45.js +303 -0
  493. package/web/assets/xml-xKYS3dO6.js +6 -0
  494. package/web/assets/yaml-CNmlXqzH.js +6 -0
  495. package/web/favicon.ico +0 -0
  496. package/web/index.html +22 -0
  497. package/web/logo.png +0 -0
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Codex Agent Provider
3
+ *
4
+ * Combines the Codex headless and interactive providers
5
+ * into a single AgentProvider implementation.
6
+ *
7
+ * @module
8
+ */
9
+ import { CodexHeadlessProvider } from './headless.js';
10
+ import { CodexInteractiveProvider } from './interactive.js';
11
+ import { serverManager } from './server-manager.js';
12
+ export { CodexHeadlessProvider } from './headless.js';
13
+ export { CodexInteractiveProvider } from './interactive.js';
14
+ export { CodexEventMapper } from './event-mapper.js';
15
+ export { serverManager as codexServerManager } from './server-manager.js';
16
+ /**
17
+ * Codex Agent Provider - provider using OpenAI Codex CLI and app-server.
18
+ */
19
+ export class CodexAgentProvider {
20
+ name = 'codex';
21
+ headless;
22
+ interactive;
23
+ constructor(config) {
24
+ this.headless = new CodexHeadlessProvider();
25
+ this.interactive = new CodexInteractiveProvider(config?.executablePath);
26
+ }
27
+ async isAvailable() {
28
+ const headlessAvailable = await this.headless.isAvailable();
29
+ const interactiveAvailable = await this.interactive.isAvailable();
30
+ return headlessAvailable || interactiveAvailable;
31
+ }
32
+ getInstallInstructions() {
33
+ return 'Install Codex CLI: npm install -g @openai/codex';
34
+ }
35
+ async listModels() {
36
+ // Acquire a temporary server client
37
+ const client = await serverManager.acquire();
38
+ try {
39
+ const response = await client.model.list({ limit: 50 });
40
+ // Handle both { models: [...] } and { data: [...] } response formats
41
+ const rawModels = response.models ?? response.data ?? [];
42
+ // Map Codex model info to our ModelInfo type; mark the first model as default
43
+ return rawModels.map((model, index) => ({
44
+ id: model.id,
45
+ displayName: model.name ?? model.id,
46
+ description: model.description,
47
+ ...(index === 0 ? { isDefault: true } : {}),
48
+ }));
49
+ }
50
+ finally {
51
+ serverManager.release();
52
+ }
53
+ }
54
+ }
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/codex/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAM1E;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACpB,IAAI,GAAG,OAAO,CAAC;IACf,QAAQ,CAAmB;IAC3B,WAAW,CAAsB;IAE1C,YAAY,MAA4B;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAClE,OAAO,iBAAiB,IAAI,oBAAoB,CAAC;IACnD,CAAC;IAED,sBAAsB;QACpB,OAAO,iDAAiD,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,UAAU;QACd,oCAAoC;QACpC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACxD,qEAAqE;YACrE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAK,QAA8C,CAAC,IAAI,IAAI,EAAE,CAAC;YAChG,8EAA8E;YAC9E,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtC,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,WAAW,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;gBACnC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5C,CAAC,CAAC,CAAC;QACN,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Codex Interactive Provider
3
+ *
4
+ * Implements the InteractiveProvider interface by spawning the `codex` CLI
5
+ * in a PTY. Mirrors the OpenCode interactive provider pattern.
6
+ *
7
+ * @module
8
+ */
9
+ import type { InteractiveProvider, InteractiveSession, InteractiveSpawnOptions } from '../types.js';
10
+ /**
11
+ * Codex interactive provider that spawns the `codex` CLI in a PTY.
12
+ */
13
+ export declare class CodexInteractiveProvider implements InteractiveProvider {
14
+ readonly name = "codex-interactive";
15
+ private readonly executablePath;
16
+ constructor(executablePath?: string);
17
+ spawn(options: InteractiveSpawnOptions): Promise<InteractiveSession>;
18
+ isAvailable(): Promise<boolean>;
19
+ private buildArgs;
20
+ }
21
+ //# sourceMappingURL=interactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/interactive.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EAExB,MAAM,aAAa,CAAC;AAwErB;;GAEG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAClE,QAAQ,CAAC,IAAI,uBAAuB;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,cAAc,SAAU;IAI9B,KAAK,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoDpE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC,OAAO,CAAC,SAAS;CAgBlB"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Codex Interactive Provider
3
+ *
4
+ * Implements the InteractiveProvider interface by spawning the `codex` CLI
5
+ * in a PTY. Mirrors the OpenCode interactive provider pattern.
6
+ *
7
+ * @module
8
+ */
9
+ import * as pty from 'node-pty';
10
+ // ============================================================================
11
+ // Helpers
12
+ // ============================================================================
13
+ function shellQuote(s) {
14
+ return "'" + s.replace(/'/g, "'\\''") + "'";
15
+ }
16
+ // ============================================================================
17
+ // Codex Interactive Session
18
+ // ============================================================================
19
+ class CodexInteractiveSession {
20
+ ptyProcess;
21
+ sessionId;
22
+ pid;
23
+ constructor(ptyProcess) {
24
+ this.ptyProcess = ptyProcess;
25
+ this.pid = ptyProcess.pid;
26
+ // Listen for thread/session ID in output and auto-respond to terminal queries.
27
+ // Codex sends DSR (Device Status Report) \x1b[6n on startup to query cursor
28
+ // position. When no terminal emulator (e.g. xterm.js) is connected to respond,
29
+ // codex times out and exits. We auto-respond with a default cursor position
30
+ // so codex can start regardless of whether a terminal client is attached.
31
+ this.ptyProcess.onData((data) => {
32
+ if (data.includes('\x1b[6n')) {
33
+ this.ptyProcess.write('\x1b[1;1R');
34
+ }
35
+ if (!this.sessionId) {
36
+ const match = data.match(/(?:Thread|Session|thr_)[:=\s]*([a-z0-9_-]+)/i);
37
+ if (match) {
38
+ this.sessionId = match[1];
39
+ }
40
+ }
41
+ });
42
+ }
43
+ write(data) {
44
+ this.ptyProcess.write(data);
45
+ }
46
+ resize(cols, rows) {
47
+ this.ptyProcess.resize(cols, rows);
48
+ }
49
+ kill() {
50
+ this.ptyProcess.kill();
51
+ }
52
+ onData(callback) {
53
+ this.ptyProcess.onData(callback);
54
+ }
55
+ onExit(callback) {
56
+ this.ptyProcess.onExit((e) => callback(e.exitCode, e.signal));
57
+ }
58
+ getSessionId() {
59
+ return this.sessionId;
60
+ }
61
+ }
62
+ // ============================================================================
63
+ // Codex Interactive Provider
64
+ // ============================================================================
65
+ /**
66
+ * Codex interactive provider that spawns the `codex` CLI in a PTY.
67
+ */
68
+ export class CodexInteractiveProvider {
69
+ name = 'codex-interactive';
70
+ executablePath;
71
+ constructor(executablePath = 'codex') {
72
+ this.executablePath = executablePath;
73
+ }
74
+ async spawn(options) {
75
+ const args = this.buildArgs(options);
76
+ const env = {
77
+ ...process.env,
78
+ ...options.environmentVariables,
79
+ };
80
+ if (options.stoneforgeRoot) {
81
+ env.STONEFORGE_ROOT = options.stoneforgeRoot;
82
+ }
83
+ const cols = options.cols ?? 120;
84
+ const rows = options.rows ?? 30;
85
+ const shell = process.platform === 'win32' ? 'cmd.exe' : '/bin/bash';
86
+ // Build the CLI command string (simple args only — not the prompt).
87
+ // Use `exec` so the CLI replaces the shell process.
88
+ const codexCommand = 'exec ' + [shellQuote(this.executablePath), ...args].join(' ');
89
+ // Spawn PTY using bash -l -c to run the command in a login shell.
90
+ // When an initial prompt is provided, it's passed as a bash positional
91
+ // parameter ($1) via the process argv — bypasses shell parsing entirely.
92
+ const shellArgs = process.platform === 'win32'
93
+ ? []
94
+ : options.initialPrompt
95
+ ? ['-l', '-c', codexCommand + ' "$1"', '_', options.initialPrompt]
96
+ : ['-l', '-c', codexCommand];
97
+ const ptyProcess = pty.spawn(shell, shellArgs, {
98
+ name: 'xterm-256color',
99
+ cols,
100
+ rows,
101
+ cwd: options.workingDirectory,
102
+ env,
103
+ });
104
+ const session = new CodexInteractiveSession(ptyProcess);
105
+ // On Windows, write the command to cmd.exe stdin (bash -c handles this on Unix)
106
+ if (process.platform === 'win32') {
107
+ await new Promise((resolve) => {
108
+ setTimeout(() => {
109
+ ptyProcess.write(codexCommand + '\r');
110
+ resolve();
111
+ }, 100);
112
+ });
113
+ }
114
+ return session;
115
+ }
116
+ async isAvailable() {
117
+ try {
118
+ const { execSync } = await import('node:child_process');
119
+ execSync(`${this.executablePath} --version`, { stdio: 'ignore' });
120
+ return true;
121
+ }
122
+ catch {
123
+ return false;
124
+ }
125
+ }
126
+ buildArgs(options) {
127
+ const args = [];
128
+ if (options.resumeSessionId) {
129
+ args.push('resume', shellQuote(options.resumeSessionId), '--full-auto');
130
+ }
131
+ else {
132
+ args.push('--full-auto', '--cd', shellQuote(options.workingDirectory));
133
+ }
134
+ // Add model flag if provided
135
+ if (options.model) {
136
+ args.push('--model', shellQuote(options.model));
137
+ }
138
+ return args;
139
+ }
140
+ }
141
+ //# sourceMappingURL=interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/providers/codex/interactive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Codex JSON-RPC Client
3
+ *
4
+ * JSON-RPC 2.0 over JSONL stdio protocol layer for communicating
5
+ * with the Codex app-server. Handles request/response multiplexing,
6
+ * server-initiated requests, and notification dispatch.
7
+ *
8
+ * Note: Codex app-server omits the "jsonrpc":"2.0" header —
9
+ * we do not require or emit it.
10
+ *
11
+ * @module
12
+ */
13
+ import type { Writable, Readable } from 'node:stream';
14
+ /** Handler for server-initiated notifications (no id, has method) */
15
+ export type NotificationHandler = (method: string, params: unknown) => void;
16
+ /** Handler for server-initiated requests (has both id and method) */
17
+ export type ServerRequestHandler = (id: number, method: string, params: unknown) => void;
18
+ /**
19
+ * JSON-RPC 2.0 client over JSONL stdio.
20
+ *
21
+ * Multiplexes incoming messages by inspecting `id` and `method` fields:
22
+ * - Has `id` + no `method` → response → resolve/reject pending promise
23
+ * - Has `method` + no `id` → notification → dispatch to notification handler
24
+ * - Has both `method` + `id` → server-initiated request → dispatch to request handler
25
+ */
26
+ export declare class CodexJsonRpcClient {
27
+ private stdin;
28
+ private nextId;
29
+ private pending;
30
+ private notificationHandler;
31
+ private serverRequestHandler;
32
+ private lineBuffer;
33
+ private closed;
34
+ constructor(stdin: Writable, stdout: Readable);
35
+ /** Send a request and await the response */
36
+ request(method: string, params?: unknown): Promise<unknown>;
37
+ /** Send a notification (no response expected) */
38
+ notify(method: string, params?: unknown): void;
39
+ /** Reply to a server-initiated request */
40
+ respond(id: number, result: unknown): void;
41
+ /** Register a handler for server notifications */
42
+ onNotification(handler: NotificationHandler): void;
43
+ /** Register a handler for server-initiated requests */
44
+ onServerRequest(handler: ServerRequestHandler): void;
45
+ /** Close the client, rejecting all pending requests */
46
+ close(): void;
47
+ /** Feed stdout data for JSONL line-buffered parsing */
48
+ private onData;
49
+ private dispatch;
50
+ private writeLine;
51
+ }
52
+ //# sourceMappingURL=jsonrpc-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonrpc-client.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/jsonrpc-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAqBtD,qEAAqE;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAE5E,qEAAqE;AACrE,MAAM,MAAM,oBAAoB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAMzF;;;;;;;GAOG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;IAO7C,4CAA4C;IAC5C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB3D,iDAAiD;IACjD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAU9C,0CAA0C;IAC1C,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAK1C,kDAAkD;IAClD,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAIlD,uDAAuD;IACvD,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAIpD,uDAAuD;IACvD,KAAK,IAAI,IAAI;IAgBb,uDAAuD;IACvD,OAAO,CAAC,MAAM;IAsBd,OAAO,CAAC,QAAQ;IAwBhB,OAAO,CAAC,SAAS;CAGlB"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Codex JSON-RPC Client
3
+ *
4
+ * JSON-RPC 2.0 over JSONL stdio protocol layer for communicating
5
+ * with the Codex app-server. Handles request/response multiplexing,
6
+ * server-initiated requests, and notification dispatch.
7
+ *
8
+ * Note: Codex app-server omits the "jsonrpc":"2.0" header —
9
+ * we do not require or emit it.
10
+ *
11
+ * @module
12
+ */
13
+ // ============================================================================
14
+ // JSON-RPC Client
15
+ // ============================================================================
16
+ /**
17
+ * JSON-RPC 2.0 client over JSONL stdio.
18
+ *
19
+ * Multiplexes incoming messages by inspecting `id` and `method` fields:
20
+ * - Has `id` + no `method` → response → resolve/reject pending promise
21
+ * - Has `method` + no `id` → notification → dispatch to notification handler
22
+ * - Has both `method` + `id` → server-initiated request → dispatch to request handler
23
+ */
24
+ export class CodexJsonRpcClient {
25
+ stdin;
26
+ nextId = 1;
27
+ pending = new Map();
28
+ notificationHandler = null;
29
+ serverRequestHandler = null;
30
+ lineBuffer = '';
31
+ closed = false;
32
+ constructor(stdin, stdout) {
33
+ this.stdin = stdin;
34
+ stdout.on('data', (chunk) => {
35
+ this.onData(chunk.toString());
36
+ });
37
+ }
38
+ /** Send a request and await the response */
39
+ request(method, params) {
40
+ if (this.closed) {
41
+ return Promise.reject(new Error('Client is closed'));
42
+ }
43
+ const id = this.nextId++;
44
+ const message = { method, id };
45
+ if (params !== undefined) {
46
+ message.params = params;
47
+ }
48
+ return new Promise((resolve, reject) => {
49
+ this.pending.set(id, { resolve, reject });
50
+ this.writeLine(message);
51
+ });
52
+ }
53
+ /** Send a notification (no response expected) */
54
+ notify(method, params) {
55
+ if (this.closed)
56
+ return;
57
+ const message = { method };
58
+ if (params !== undefined) {
59
+ message.params = params;
60
+ }
61
+ this.writeLine(message);
62
+ }
63
+ /** Reply to a server-initiated request */
64
+ respond(id, result) {
65
+ if (this.closed)
66
+ return;
67
+ this.writeLine({ id, result });
68
+ }
69
+ /** Register a handler for server notifications */
70
+ onNotification(handler) {
71
+ this.notificationHandler = handler;
72
+ }
73
+ /** Register a handler for server-initiated requests */
74
+ onServerRequest(handler) {
75
+ this.serverRequestHandler = handler;
76
+ }
77
+ /** Close the client, rejecting all pending requests */
78
+ close() {
79
+ if (this.closed)
80
+ return;
81
+ this.closed = true;
82
+ for (const [, pending] of this.pending) {
83
+ pending.reject(new Error('Client closed'));
84
+ }
85
+ this.pending.clear();
86
+ this.notificationHandler = null;
87
+ this.serverRequestHandler = null;
88
+ }
89
+ // ----------------------------------------
90
+ // Private
91
+ // ----------------------------------------
92
+ /** Feed stdout data for JSONL line-buffered parsing */
93
+ onData(chunk) {
94
+ this.lineBuffer += chunk;
95
+ let newlineIndex;
96
+ while ((newlineIndex = this.lineBuffer.indexOf('\n')) !== -1) {
97
+ const line = this.lineBuffer.slice(0, newlineIndex).trim();
98
+ this.lineBuffer = this.lineBuffer.slice(newlineIndex + 1);
99
+ if (line.length === 0)
100
+ continue;
101
+ let message;
102
+ try {
103
+ message = JSON.parse(line);
104
+ }
105
+ catch {
106
+ // Skip malformed lines
107
+ continue;
108
+ }
109
+ this.dispatch(message);
110
+ }
111
+ }
112
+ dispatch(message) {
113
+ const hasId = message.id !== undefined;
114
+ const hasMethod = message.method !== undefined;
115
+ if (hasId && hasMethod) {
116
+ // Server-initiated request — has both id and method
117
+ this.serverRequestHandler?.(message.id, message.method, message.params);
118
+ }
119
+ else if (hasId && !hasMethod) {
120
+ // Response to our request
121
+ const pending = this.pending.get(message.id);
122
+ if (pending) {
123
+ this.pending.delete(message.id);
124
+ if (message.error) {
125
+ pending.reject(new Error(message.error.message ?? 'RPC error'));
126
+ }
127
+ else {
128
+ pending.resolve(message.result);
129
+ }
130
+ }
131
+ }
132
+ else if (hasMethod && !hasId) {
133
+ // Server notification
134
+ this.notificationHandler?.(message.method, message.params);
135
+ }
136
+ }
137
+ writeLine(message) {
138
+ this.stdin.write(JSON.stringify(message) + '\n');
139
+ }
140
+ }
141
+ //# sourceMappingURL=jsonrpc-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonrpc-client.js","sourceRoot":"","sources":["../../../src/providers/codex/jsonrpc-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Codex Server Manager (Singleton)
3
+ *
4
+ * Manages the lifecycle of a single shared Codex app-server process.
5
+ * Multiple sessions share one server; ref counting shuts it down
6
+ * when the last session releases.
7
+ *
8
+ * Communicates via JSON-RPC 2.0 over JSONL stdio.
9
+ *
10
+ * @module
11
+ */
12
+ import type { NotificationHandler } from './jsonrpc-client.js';
13
+ /** Model information returned by the Codex app-server */
14
+ export interface CodexModelInfo {
15
+ id: string;
16
+ name?: string;
17
+ description?: string;
18
+ }
19
+ /** Typed facade over the JSON-RPC client for Codex app-server operations */
20
+ export interface CodexClient {
21
+ model: {
22
+ list(params?: {
23
+ limit?: number;
24
+ }): Promise<{
25
+ models?: CodexModelInfo[];
26
+ data?: CodexModelInfo[];
27
+ }>;
28
+ };
29
+ thread: {
30
+ start(params: {
31
+ model?: string;
32
+ cwd?: string;
33
+ approvalPolicy?: string;
34
+ sandbox?: string;
35
+ }): Promise<{
36
+ thread: {
37
+ id: string;
38
+ };
39
+ }>;
40
+ resume(params: {
41
+ threadId: string;
42
+ model?: string;
43
+ cwd?: string;
44
+ approvalPolicy?: string;
45
+ sandbox?: string;
46
+ }): Promise<{
47
+ thread: {
48
+ id: string;
49
+ };
50
+ }>;
51
+ read(params: {
52
+ threadId: string;
53
+ }): Promise<{
54
+ thread: {
55
+ id: string;
56
+ };
57
+ }>;
58
+ };
59
+ turn: {
60
+ start(params: {
61
+ threadId: string;
62
+ input: Array<{
63
+ type: 'text';
64
+ text: string;
65
+ }>;
66
+ }): Promise<void>;
67
+ interrupt(params: {
68
+ threadId: string;
69
+ }): Promise<void>;
70
+ };
71
+ onNotification(handler: NotificationHandler): () => void;
72
+ respondToServer(id: number, result: unknown): void;
73
+ close(): void;
74
+ }
75
+ export interface ServerManagerConfig {
76
+ cwd?: string;
77
+ stoneforgeRoot?: string;
78
+ }
79
+ /**
80
+ * Manages a single shared Codex app-server instance.
81
+ *
82
+ * - `acquire()` starts or reuses the server, increments ref count
83
+ * - `release()` decrements ref count, stops server at zero
84
+ * - Concurrent acquire() calls are coalesced into a single startup
85
+ */
86
+ declare class CodexServerManager {
87
+ private client;
88
+ private process;
89
+ private rpcClient;
90
+ private refCount;
91
+ private startPromise;
92
+ acquire(config?: ServerManagerConfig): Promise<CodexClient>;
93
+ release(): void;
94
+ shutdown(): void;
95
+ private startServer;
96
+ }
97
+ /** Singleton instance */
98
+ export declare const serverManager: CodexServerManager;
99
+ export {};
100
+ //# sourceMappingURL=server-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/server-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM/D,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE;QACL,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;YAAC,IAAI,CAAC,EAAE,cAAc,EAAE,CAAA;SAAE,CAAC,CAAC;KACpG,CAAC;IACF,MAAM,EAAE;QACN,KAAK,CAAC,MAAM,EAAE;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC,CAAC;KACzE,CAAC;IACF,IAAI,EAAE;QACJ,KAAK,CAAC,MAAM,EAAE;YACZ,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SAC9C,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,SAAS,CAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACxD,CAAC;IACF,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,IAAI,CAAC;IACzD,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACnD,KAAK,IAAI,IAAI,CAAC;CACf;AAMD,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,cAAM,kBAAkB;IACtB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,YAAY,CAAqC;IAEnD,OAAO,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAwBjE,OAAO,IAAI,IAAI;IAOf,QAAQ,IAAI,IAAI;YAcF,WAAW;CAmG1B;AAED,yBAAyB;AACzB,eAAO,MAAM,aAAa,oBAA2B,CAAC"}