apex-code 0.0.1-alpha.9 → 0.0.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 (513) hide show
  1. package/CHANGELOG.md +150 -2
  2. package/README.md +9 -8
  3. package/dist/cli/args.d.ts +25 -1
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +43 -1
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/mcp-command.d.ts +9 -0
  8. package/dist/cli/mcp-command.d.ts.map +1 -0
  9. package/dist/cli/mcp-command.js +53 -0
  10. package/dist/cli/mcp-command.js.map +1 -0
  11. package/dist/cli/project-trust.d.ts.map +1 -1
  12. package/dist/cli/project-trust.js +3 -1
  13. package/dist/cli/project-trust.js.map +1 -1
  14. package/dist/cli/startup-ui.d.ts.map +1 -1
  15. package/dist/cli/startup-ui.js +2 -1
  16. package/dist/cli/startup-ui.js.map +1 -1
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +94 -5
  19. package/dist/cli.js.map +1 -1
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +24 -5
  22. package/dist/config.js.map +1 -1
  23. package/dist/core/agent-session-services.d.ts +3 -0
  24. package/dist/core/agent-session-services.d.ts.map +1 -1
  25. package/dist/core/agent-session-services.js +1 -0
  26. package/dist/core/agent-session-services.js.map +1 -1
  27. package/dist/core/agent-session.d.ts +157 -8
  28. package/dist/core/agent-session.d.ts.map +1 -1
  29. package/dist/core/agent-session.js +565 -22
  30. package/dist/core/agent-session.js.map +1 -1
  31. package/dist/core/bash-executor.d.ts.map +1 -1
  32. package/dist/core/bash-executor.js +7 -0
  33. package/dist/core/bash-executor.js.map +1 -1
  34. package/dist/core/checkpoints/git-checkpoints.d.ts +39 -0
  35. package/dist/core/checkpoints/git-checkpoints.d.ts.map +1 -0
  36. package/dist/core/checkpoints/git-checkpoints.js +251 -0
  37. package/dist/core/checkpoints/git-checkpoints.js.map +1 -0
  38. package/dist/core/checkpoints/session-checkpoints.d.ts +23 -0
  39. package/dist/core/checkpoints/session-checkpoints.d.ts.map +1 -0
  40. package/dist/core/checkpoints/session-checkpoints.js +36 -0
  41. package/dist/core/checkpoints/session-checkpoints.js.map +1 -0
  42. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  43. package/dist/core/compaction/branch-summarization.js +4 -3
  44. package/dist/core/compaction/branch-summarization.js.map +1 -1
  45. package/dist/core/compaction/compaction.d.ts +5 -0
  46. package/dist/core/compaction/compaction.d.ts.map +1 -1
  47. package/dist/core/compaction/compaction.js +19 -5
  48. package/dist/core/compaction/compaction.js.map +1 -1
  49. package/dist/core/delegation/runtime.d.ts +6 -5
  50. package/dist/core/delegation/runtime.d.ts.map +1 -1
  51. package/dist/core/delegation/runtime.js +4 -3
  52. package/dist/core/delegation/runtime.js.map +1 -1
  53. package/dist/core/exec.d.ts.map +1 -1
  54. package/dist/core/exec.js +5 -2
  55. package/dist/core/exec.js.map +1 -1
  56. package/dist/core/extensions/index.d.ts +1 -1
  57. package/dist/core/extensions/index.d.ts.map +1 -1
  58. package/dist/core/extensions/index.js.map +1 -1
  59. package/dist/core/extensions/loader.d.ts.map +1 -1
  60. package/dist/core/extensions/loader.js +8 -2
  61. package/dist/core/extensions/loader.js.map +1 -1
  62. package/dist/core/extensions/runner.d.ts +5 -0
  63. package/dist/core/extensions/runner.d.ts.map +1 -1
  64. package/dist/core/extensions/runner.js +45 -1
  65. package/dist/core/extensions/runner.js.map +1 -1
  66. package/dist/core/extensions/source-runtime.d.ts +14 -0
  67. package/dist/core/extensions/source-runtime.d.ts.map +1 -0
  68. package/dist/core/extensions/source-runtime.js +56 -0
  69. package/dist/core/extensions/source-runtime.js.map +1 -0
  70. package/dist/core/extensions/types.d.ts +22 -2
  71. package/dist/core/extensions/types.d.ts.map +1 -1
  72. package/dist/core/extensions/types.js.map +1 -1
  73. package/dist/core/formatter-lifecycle.d.ts +69 -0
  74. package/dist/core/formatter-lifecycle.d.ts.map +1 -0
  75. package/dist/core/formatter-lifecycle.js +360 -0
  76. package/dist/core/formatter-lifecycle.js.map +1 -0
  77. package/dist/core/hooks/command-handler.d.ts +19 -0
  78. package/dist/core/hooks/command-handler.d.ts.map +1 -0
  79. package/dist/core/hooks/command-handler.js +112 -0
  80. package/dist/core/hooks/command-handler.js.map +1 -0
  81. package/dist/core/hooks/http-handler.d.ts +10 -0
  82. package/dist/core/hooks/http-handler.d.ts.map +1 -0
  83. package/dist/core/hooks/http-handler.js +36 -0
  84. package/dist/core/hooks/http-handler.js.map +1 -0
  85. package/dist/core/hooks/loader.d.ts +29 -0
  86. package/dist/core/hooks/loader.d.ts.map +1 -0
  87. package/dist/core/hooks/loader.js +139 -0
  88. package/dist/core/hooks/loader.js.map +1 -0
  89. package/dist/core/hooks/runtime.d.ts +13 -0
  90. package/dist/core/hooks/runtime.d.ts.map +1 -0
  91. package/dist/core/hooks/runtime.js +63 -0
  92. package/dist/core/hooks/runtime.js.map +1 -0
  93. package/dist/core/hooks/types.d.ts +83 -0
  94. package/dist/core/hooks/types.d.ts.map +1 -0
  95. package/dist/core/hooks/types.js +24 -0
  96. package/dist/core/hooks/types.js.map +1 -0
  97. package/dist/core/mcp/config.d.ts +16 -0
  98. package/dist/core/mcp/config.d.ts.map +1 -0
  99. package/dist/core/mcp/config.js +166 -0
  100. package/dist/core/mcp/config.js.map +1 -0
  101. package/dist/core/mcp/connector.d.ts +35 -0
  102. package/dist/core/mcp/connector.d.ts.map +1 -0
  103. package/dist/core/mcp/connector.js +105 -0
  104. package/dist/core/mcp/connector.js.map +1 -0
  105. package/dist/core/mcp/contract.d.ts +19 -0
  106. package/dist/core/mcp/contract.d.ts.map +1 -0
  107. package/dist/core/mcp/contract.js +89 -0
  108. package/dist/core/mcp/contract.js.map +1 -0
  109. package/dist/core/mcp/mcp-tool.d.ts +32 -0
  110. package/dist/core/mcp/mcp-tool.d.ts.map +1 -0
  111. package/dist/core/mcp/mcp-tool.js +171 -0
  112. package/dist/core/mcp/mcp-tool.js.map +1 -0
  113. package/dist/core/mcp/metadata-cache.d.ts +29 -0
  114. package/dist/core/mcp/metadata-cache.d.ts.map +1 -0
  115. package/dist/core/mcp/metadata-cache.js +99 -0
  116. package/dist/core/mcp/metadata-cache.js.map +1 -0
  117. package/dist/core/mcp/oauth/authorize.d.ts +21 -0
  118. package/dist/core/mcp/oauth/authorize.d.ts.map +1 -0
  119. package/dist/core/mcp/oauth/authorize.js +32 -0
  120. package/dist/core/mcp/oauth/authorize.js.map +1 -0
  121. package/dist/core/mcp/oauth/discover.d.ts +27 -0
  122. package/dist/core/mcp/oauth/discover.d.ts.map +1 -0
  123. package/dist/core/mcp/oauth/discover.js +116 -0
  124. package/dist/core/mcp/oauth/discover.js.map +1 -0
  125. package/dist/core/mcp/oauth/flow.d.ts +31 -0
  126. package/dist/core/mcp/oauth/flow.d.ts.map +1 -0
  127. package/dist/core/mcp/oauth/flow.js +175 -0
  128. package/dist/core/mcp/oauth/flow.js.map +1 -0
  129. package/dist/core/mcp/oauth/mcp-token.d.ts +51 -0
  130. package/dist/core/mcp/oauth/mcp-token.d.ts.map +1 -0
  131. package/dist/core/mcp/oauth/mcp-token.js +129 -0
  132. package/dist/core/mcp/oauth/mcp-token.js.map +1 -0
  133. package/dist/core/mcp/oauth/pkce.d.ts +12 -0
  134. package/dist/core/mcp/oauth/pkce.d.ts.map +1 -0
  135. package/dist/core/mcp/oauth/pkce.js +11 -0
  136. package/dist/core/mcp/oauth/pkce.js.map +1 -0
  137. package/dist/core/mcp/oauth/register.d.ts +16 -0
  138. package/dist/core/mcp/oauth/register.d.ts.map +1 -0
  139. package/dist/core/mcp/oauth/register.js +42 -0
  140. package/dist/core/mcp/oauth/register.js.map +1 -0
  141. package/dist/core/mcp/oauth/token-client.d.ts +33 -0
  142. package/dist/core/mcp/oauth/token-client.d.ts.map +1 -0
  143. package/dist/core/mcp/oauth/token-client.js +65 -0
  144. package/dist/core/mcp/oauth/token-client.js.map +1 -0
  145. package/dist/core/mcp/runtime.d.ts +20 -0
  146. package/dist/core/mcp/runtime.d.ts.map +1 -0
  147. package/dist/core/mcp/runtime.js +37 -0
  148. package/dist/core/mcp/runtime.js.map +1 -0
  149. package/dist/core/mcp/schema.d.ts +22 -0
  150. package/dist/core/mcp/schema.d.ts.map +1 -0
  151. package/dist/core/mcp/schema.js +20 -0
  152. package/dist/core/mcp/schema.js.map +1 -0
  153. package/dist/core/mcp/server-manager.d.ts +43 -0
  154. package/dist/core/mcp/server-manager.d.ts.map +1 -0
  155. package/dist/core/mcp/server-manager.js +142 -0
  156. package/dist/core/mcp/server-manager.js.map +1 -0
  157. package/dist/core/mcp/types.d.ts +100 -0
  158. package/dist/core/mcp/types.d.ts.map +1 -0
  159. package/dist/core/mcp/types.js +8 -0
  160. package/dist/core/mcp/types.js.map +1 -0
  161. package/dist/core/permissions/gate.d.ts.map +1 -1
  162. package/dist/core/permissions/gate.js +45 -4
  163. package/dist/core/permissions/gate.js.map +1 -1
  164. package/dist/core/permissions/operations.d.ts +20 -0
  165. package/dist/core/permissions/operations.d.ts.map +1 -0
  166. package/dist/core/permissions/operations.js +9 -0
  167. package/dist/core/permissions/operations.js.map +1 -0
  168. package/dist/core/permissions/policy-command.d.ts +42 -0
  169. package/dist/core/permissions/policy-command.d.ts.map +1 -0
  170. package/dist/core/permissions/policy-command.js +44 -0
  171. package/dist/core/permissions/policy-command.js.map +1 -0
  172. package/dist/core/permissions/responder.d.ts +49 -2
  173. package/dist/core/permissions/responder.d.ts.map +1 -1
  174. package/dist/core/permissions/responder.js +20 -8
  175. package/dist/core/permissions/responder.js.map +1 -1
  176. package/dist/core/permissions/rules.d.ts.map +1 -1
  177. package/dist/core/permissions/rules.js +11 -1
  178. package/dist/core/permissions/rules.js.map +1 -1
  179. package/dist/core/permissions/store.d.ts +18 -0
  180. package/dist/core/permissions/store.d.ts.map +1 -1
  181. package/dist/core/permissions/store.js +89 -8
  182. package/dist/core/permissions/store.js.map +1 -1
  183. package/dist/core/policy-executor.d.ts +47 -0
  184. package/dist/core/policy-executor.d.ts.map +1 -0
  185. package/dist/core/policy-executor.js +228 -0
  186. package/dist/core/policy-executor.js.map +1 -0
  187. package/dist/core/policy-loader.d.ts +72 -0
  188. package/dist/core/policy-loader.d.ts.map +1 -0
  189. package/dist/core/policy-loader.js +195 -0
  190. package/dist/core/policy-loader.js.map +1 -0
  191. package/dist/core/project-trust.d.ts +1 -1
  192. package/dist/core/project-trust.d.ts.map +1 -1
  193. package/dist/core/project-trust.js.map +1 -1
  194. package/dist/core/sandbox/bwrap-arguments.d.ts +41 -0
  195. package/dist/core/sandbox/bwrap-arguments.d.ts.map +1 -0
  196. package/dist/core/sandbox/bwrap-arguments.js +136 -0
  197. package/dist/core/sandbox/bwrap-arguments.js.map +1 -0
  198. package/dist/core/sandbox/child-entry.d.ts.map +1 -1
  199. package/dist/core/sandbox/child-entry.js +3 -1
  200. package/dist/core/sandbox/child-entry.js.map +1 -1
  201. package/dist/core/sandbox/cli-launch.d.ts +84 -4
  202. package/dist/core/sandbox/cli-launch.d.ts.map +1 -1
  203. package/dist/core/sandbox/cli-launch.js +115 -16
  204. package/dist/core/sandbox/cli-launch.js.map +1 -1
  205. package/dist/core/sandbox/cli-supervisor.d.ts +2 -0
  206. package/dist/core/sandbox/cli-supervisor.d.ts.map +1 -1
  207. package/dist/core/sandbox/cli-supervisor.js +50 -2
  208. package/dist/core/sandbox/cli-supervisor.js.map +1 -1
  209. package/dist/core/sandbox/full-access.d.ts +28 -0
  210. package/dist/core/sandbox/full-access.d.ts.map +1 -0
  211. package/dist/core/sandbox/full-access.js +63 -0
  212. package/dist/core/sandbox/full-access.js.map +1 -0
  213. package/dist/core/sandbox/git-identity.d.ts +57 -0
  214. package/dist/core/sandbox/git-identity.d.ts.map +1 -0
  215. package/dist/core/sandbox/git-identity.js +78 -0
  216. package/dist/core/sandbox/git-identity.js.map +1 -0
  217. package/dist/core/sandbox/host-approval.d.ts +42 -0
  218. package/dist/core/sandbox/host-approval.d.ts.map +1 -0
  219. package/dist/core/sandbox/host-approval.js +99 -0
  220. package/dist/core/sandbox/host-approval.js.map +1 -0
  221. package/dist/core/sandbox/linux-backend.d.ts +14 -0
  222. package/dist/core/sandbox/linux-backend.d.ts.map +1 -1
  223. package/dist/core/sandbox/linux-backend.js +158 -80
  224. package/dist/core/sandbox/linux-backend.js.map +1 -1
  225. package/dist/core/sandbox/macos-backend.d.ts +5 -0
  226. package/dist/core/sandbox/macos-backend.d.ts.map +1 -1
  227. package/dist/core/sandbox/macos-backend.js +164 -5
  228. package/dist/core/sandbox/macos-backend.js.map +1 -1
  229. package/dist/core/sandbox/network-proxy.d.ts +19 -0
  230. package/dist/core/sandbox/network-proxy.d.ts.map +1 -1
  231. package/dist/core/sandbox/network-proxy.js +93 -19
  232. package/dist/core/sandbox/network-proxy.js.map +1 -1
  233. package/dist/core/sandbox/policy.d.ts +8 -0
  234. package/dist/core/sandbox/policy.d.ts.map +1 -1
  235. package/dist/core/sandbox/policy.js +29 -12
  236. package/dist/core/sandbox/policy.js.map +1 -1
  237. package/dist/core/sandbox/profiles.d.ts +25 -0
  238. package/dist/core/sandbox/profiles.d.ts.map +1 -0
  239. package/dist/core/sandbox/profiles.js +23 -0
  240. package/dist/core/sandbox/profiles.js.map +1 -0
  241. package/dist/core/sandbox/rpc/command-client.d.ts +28 -0
  242. package/dist/core/sandbox/rpc/command-client.d.ts.map +1 -0
  243. package/dist/core/sandbox/rpc/command-client.js +86 -0
  244. package/dist/core/sandbox/rpc/command-client.js.map +1 -0
  245. package/dist/core/sandbox/rpc/command-proxy.d.ts +48 -0
  246. package/dist/core/sandbox/rpc/command-proxy.d.ts.map +1 -0
  247. package/dist/core/sandbox/rpc/command-proxy.js +120 -0
  248. package/dist/core/sandbox/rpc/command-proxy.js.map +1 -0
  249. package/dist/core/sandbox/rpc/credential-proxy.d.ts.map +1 -1
  250. package/dist/core/sandbox/rpc/credential-proxy.js +2 -96
  251. package/dist/core/sandbox/rpc/credential-proxy.js.map +1 -1
  252. package/dist/core/sandbox/rpc/framing.d.ts +35 -0
  253. package/dist/core/sandbox/rpc/framing.d.ts.map +1 -0
  254. package/dist/core/sandbox/rpc/framing.js +114 -0
  255. package/dist/core/sandbox/rpc/framing.js.map +1 -0
  256. package/dist/core/sandbox/rpc/git-credential-helper.d.ts +47 -0
  257. package/dist/core/sandbox/rpc/git-credential-helper.d.ts.map +1 -0
  258. package/dist/core/sandbox/rpc/git-credential-helper.js +222 -0
  259. package/dist/core/sandbox/rpc/git-credential-helper.js.map +1 -0
  260. package/dist/core/sandbox/rpc/git-credential-proxy.d.ts +66 -0
  261. package/dist/core/sandbox/rpc/git-credential-proxy.d.ts.map +1 -0
  262. package/dist/core/sandbox/rpc/git-credential-proxy.js +209 -0
  263. package/dist/core/sandbox/rpc/git-credential-proxy.js.map +1 -0
  264. package/dist/core/sandbox/supervisor-temp.d.ts +18 -0
  265. package/dist/core/sandbox/supervisor-temp.d.ts.map +1 -0
  266. package/dist/core/sandbox/supervisor-temp.js +21 -0
  267. package/dist/core/sandbox/supervisor-temp.js.map +1 -0
  268. package/dist/core/sandbox/supervisor.d.ts +12 -1
  269. package/dist/core/sandbox/supervisor.d.ts.map +1 -1
  270. package/dist/core/sandbox/supervisor.js +15 -1
  271. package/dist/core/sandbox/supervisor.js.map +1 -1
  272. package/dist/core/sandbox/terminal-handoff.d.ts +68 -0
  273. package/dist/core/sandbox/terminal-handoff.d.ts.map +1 -0
  274. package/dist/core/sandbox/terminal-handoff.js +221 -0
  275. package/dist/core/sandbox/terminal-handoff.js.map +1 -0
  276. package/dist/core/sandbox/terminal-size.d.ts +13 -0
  277. package/dist/core/sandbox/terminal-size.d.ts.map +1 -1
  278. package/dist/core/sandbox/terminal-size.js +23 -2
  279. package/dist/core/sandbox/terminal-size.js.map +1 -1
  280. package/dist/core/sdk.d.ts +22 -0
  281. package/dist/core/sdk.d.ts.map +1 -1
  282. package/dist/core/sdk.js +53 -1
  283. package/dist/core/sdk.js.map +1 -1
  284. package/dist/core/session-manager.d.ts +13 -1
  285. package/dist/core/session-manager.d.ts.map +1 -1
  286. package/dist/core/session-manager.js +32 -5
  287. package/dist/core/session-manager.js.map +1 -1
  288. package/dist/core/settings-manager.d.ts +163 -1
  289. package/dist/core/settings-manager.d.ts.map +1 -1
  290. package/dist/core/settings-manager.js +107 -0
  291. package/dist/core/settings-manager.js.map +1 -1
  292. package/dist/core/slash-commands.d.ts.map +1 -1
  293. package/dist/core/slash-commands.js +2 -0
  294. package/dist/core/slash-commands.js.map +1 -1
  295. package/dist/core/tools/background-shell.d.ts +39 -0
  296. package/dist/core/tools/background-shell.d.ts.map +1 -0
  297. package/dist/core/tools/background-shell.js +81 -0
  298. package/dist/core/tools/background-shell.js.map +1 -0
  299. package/dist/core/tools/bash-command-segments.d.ts.map +1 -1
  300. package/dist/core/tools/bash-command-segments.js +2 -0
  301. package/dist/core/tools/bash-command-segments.js.map +1 -1
  302. package/dist/core/tools/bash.d.ts +30 -15
  303. package/dist/core/tools/bash.d.ts.map +1 -1
  304. package/dist/core/tools/bash.js +228 -12
  305. package/dist/core/tools/bash.js.map +1 -1
  306. package/dist/core/tools/contract-snapshot.d.ts +58 -0
  307. package/dist/core/tools/contract-snapshot.d.ts.map +1 -0
  308. package/dist/core/tools/contract-snapshot.js +51 -0
  309. package/dist/core/tools/contract-snapshot.js.map +1 -0
  310. package/dist/core/tools/contract.d.ts +53 -5
  311. package/dist/core/tools/contract.d.ts.map +1 -1
  312. package/dist/core/tools/contract.js +22 -2
  313. package/dist/core/tools/contract.js.map +1 -1
  314. package/dist/core/tools/delegate.d.ts +6 -4
  315. package/dist/core/tools/delegate.d.ts.map +1 -1
  316. package/dist/core/tools/delegate.js +21 -11
  317. package/dist/core/tools/delegate.js.map +1 -1
  318. package/dist/core/tools/edit-diff.d.ts +48 -0
  319. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  320. package/dist/core/tools/edit-diff.js +215 -3
  321. package/dist/core/tools/edit-diff.js.map +1 -1
  322. package/dist/core/tools/edit.d.ts +8 -0
  323. package/dist/core/tools/edit.d.ts.map +1 -1
  324. package/dist/core/tools/edit.js +53 -7
  325. package/dist/core/tools/edit.js.map +1 -1
  326. package/dist/core/tools/find.d.ts.map +1 -1
  327. package/dist/core/tools/find.js +5 -2
  328. package/dist/core/tools/find.js.map +1 -1
  329. package/dist/core/tools/grep.d.ts.map +1 -1
  330. package/dist/core/tools/grep.js +5 -2
  331. package/dist/core/tools/grep.js.map +1 -1
  332. package/dist/core/tools/index.d.ts +10 -1
  333. package/dist/core/tools/index.d.ts.map +1 -1
  334. package/dist/core/tools/index.js +3 -0
  335. package/dist/core/tools/index.js.map +1 -1
  336. package/dist/core/tools/ls.d.ts.map +1 -1
  337. package/dist/core/tools/ls.js +5 -2
  338. package/dist/core/tools/ls.js.map +1 -1
  339. package/dist/core/tools/lsp.d.ts +19 -1
  340. package/dist/core/tools/lsp.d.ts.map +1 -1
  341. package/dist/core/tools/lsp.js +163 -10
  342. package/dist/core/tools/lsp.js.map +1 -1
  343. package/dist/core/tools/path-permission.d.ts +3 -0
  344. package/dist/core/tools/path-permission.d.ts.map +1 -1
  345. package/dist/core/tools/path-permission.js +16 -4
  346. package/dist/core/tools/path-permission.js.map +1 -1
  347. package/dist/core/tools/path-utils.d.ts +27 -2
  348. package/dist/core/tools/path-utils.d.ts.map +1 -1
  349. package/dist/core/tools/path-utils.js +221 -4
  350. package/dist/core/tools/path-utils.js.map +1 -1
  351. package/dist/core/tools/read.d.ts.map +1 -1
  352. package/dist/core/tools/read.js +20 -11
  353. package/dist/core/tools/read.js.map +1 -1
  354. package/dist/core/tools/test.d.ts +54 -9
  355. package/dist/core/tools/test.d.ts.map +1 -1
  356. package/dist/core/tools/test.js +239 -19
  357. package/dist/core/tools/test.js.map +1 -1
  358. package/dist/core/tools/write.d.ts +7 -0
  359. package/dist/core/tools/write.d.ts.map +1 -1
  360. package/dist/core/tools/write.js +64 -9
  361. package/dist/core/tools/write.js.map +1 -1
  362. package/dist/core/verification-lifecycle.d.ts +77 -0
  363. package/dist/core/verification-lifecycle.d.ts.map +1 -0
  364. package/dist/core/verification-lifecycle.js +146 -0
  365. package/dist/core/verification-lifecycle.js.map +1 -0
  366. package/dist/core/workspace/artifacts.d.ts +45 -0
  367. package/dist/core/workspace/artifacts.d.ts.map +1 -0
  368. package/dist/core/workspace/artifacts.js +165 -0
  369. package/dist/core/workspace/artifacts.js.map +1 -0
  370. package/dist/core/workspace/comparison.d.ts +27 -0
  371. package/dist/core/workspace/comparison.d.ts.map +1 -0
  372. package/dist/core/workspace/comparison.js +94 -0
  373. package/dist/core/workspace/comparison.js.map +1 -0
  374. package/dist/core/workspace/git-observer.d.ts +48 -0
  375. package/dist/core/workspace/git-observer.d.ts.map +1 -0
  376. package/dist/core/workspace/git-observer.js +346 -0
  377. package/dist/core/workspace/git-observer.js.map +1 -0
  378. package/dist/core/workspace/projection.d.ts +3 -0
  379. package/dist/core/workspace/projection.d.ts.map +1 -0
  380. package/dist/core/workspace/projection.js +56 -0
  381. package/dist/core/workspace/projection.js.map +1 -0
  382. package/dist/core/workspace/state.d.ts +133 -0
  383. package/dist/core/workspace/state.d.ts.map +1 -0
  384. package/dist/core/workspace/state.js +96 -0
  385. package/dist/core/workspace/state.js.map +1 -0
  386. package/dist/extensions/llama/client.d.ts +6 -0
  387. package/dist/extensions/llama/client.d.ts.map +1 -1
  388. package/dist/extensions/llama/client.js +7 -0
  389. package/dist/extensions/llama/client.js.map +1 -1
  390. package/dist/extensions/llama/provider.d.ts +3 -1
  391. package/dist/extensions/llama/provider.d.ts.map +1 -1
  392. package/dist/extensions/llama/provider.js +27 -6
  393. package/dist/extensions/llama/provider.js.map +1 -1
  394. package/dist/index.d.ts +4 -1
  395. package/dist/index.d.ts.map +1 -1
  396. package/dist/index.js +3 -0
  397. package/dist/index.js.map +1 -1
  398. package/dist/main.d.ts +3 -1
  399. package/dist/main.d.ts.map +1 -1
  400. package/dist/main.js +41 -9
  401. package/dist/main.js.map +1 -1
  402. package/dist/modes/acp/server.d.ts +55 -0
  403. package/dist/modes/acp/server.d.ts.map +1 -0
  404. package/dist/modes/acp/server.js +244 -0
  405. package/dist/modes/acp/server.js.map +1 -0
  406. package/dist/modes/acp/translate.d.ts +37 -0
  407. package/dist/modes/acp/translate.d.ts.map +1 -0
  408. package/dist/modes/acp/translate.js +50 -0
  409. package/dist/modes/acp/translate.js.map +1 -0
  410. package/dist/modes/index.d.ts +1 -0
  411. package/dist/modes/index.d.ts.map +1 -1
  412. package/dist/modes/index.js +1 -0
  413. package/dist/modes/index.js.map +1 -1
  414. package/dist/modes/interactive/components/assistant-message.d.ts +29 -0
  415. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  416. package/dist/modes/interactive/components/assistant-message.js +182 -23
  417. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  418. package/dist/modes/interactive/components/bash-execution.d.ts +7 -0
  419. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  420. package/dist/modes/interactive/components/bash-execution.js +20 -0
  421. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  422. package/dist/modes/interactive/components/custom-editor.d.ts +9 -4
  423. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  424. package/dist/modes/interactive/components/custom-editor.js +20 -9
  425. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  426. package/dist/modes/interactive/components/extension-selector.d.ts +7 -1
  427. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  428. package/dist/modes/interactive/components/extension-selector.js +7 -3
  429. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  430. package/dist/modes/interactive/components/footer.d.ts +19 -0
  431. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  432. package/dist/modes/interactive/components/footer.js +70 -10
  433. package/dist/modes/interactive/components/footer.js.map +1 -1
  434. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  435. package/dist/modes/interactive/components/model-selector.js +6 -6
  436. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  437. package/dist/modes/interactive/components/permission-preview.d.ts +15 -0
  438. package/dist/modes/interactive/components/permission-preview.d.ts.map +1 -0
  439. package/dist/modes/interactive/components/permission-preview.js +33 -0
  440. package/dist/modes/interactive/components/permission-preview.js.map +1 -0
  441. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  442. package/dist/modes/interactive/components/session-selector.js +2 -2
  443. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  444. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  445. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  446. package/dist/modes/interactive/components/settings-selector.js +10 -0
  447. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  448. package/dist/modes/interactive/components/tool-execution.d.ts +23 -1
  449. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  450. package/dist/modes/interactive/components/tool-execution.js +64 -10
  451. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  452. package/dist/modes/interactive/interactive-mode.d.ts +34 -0
  453. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  454. package/dist/modes/interactive/interactive-mode.js +231 -26
  455. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  456. package/dist/modes/interactive/theme/theme.d.ts +12 -0
  457. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  458. package/dist/modes/interactive/theme/theme.js +15 -5
  459. package/dist/modes/interactive/theme/theme.js.map +1 -1
  460. package/dist/modes/print-mode.d.ts.map +1 -1
  461. package/dist/modes/print-mode.js +27 -12
  462. package/dist/modes/print-mode.js.map +1 -1
  463. package/dist/modes/rpc/rpc-client.d.ts +7 -0
  464. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  465. package/dist/modes/rpc/rpc-client.js +7 -0
  466. package/dist/modes/rpc/rpc-client.js.map +1 -1
  467. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  468. package/dist/modes/rpc/rpc-mode.js +3 -0
  469. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  470. package/dist/modes/rpc/rpc-types.d.ts +12 -0
  471. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  472. package/dist/modes/rpc/rpc-types.js.map +1 -1
  473. package/dist/package-manager-cli.d.ts.map +1 -1
  474. package/dist/package-manager-cli.js +0 -6
  475. package/dist/package-manager-cli.js.map +1 -1
  476. package/dist/utils/shell.d.ts.map +1 -1
  477. package/dist/utils/shell.js +6 -4
  478. package/dist/utils/shell.js.map +1 -1
  479. package/dist/utils/version-check.d.ts.map +1 -1
  480. package/dist/utils/version-check.js +6 -4
  481. package/dist/utils/version-check.js.map +1 -1
  482. package/docs/compaction.md +4 -0
  483. package/docs/custom-provider.md +7 -7
  484. package/docs/environment-variables.md +1 -1
  485. package/docs/extensions.md +18 -0
  486. package/docs/keybindings.md +1 -1
  487. package/docs/quickstart.md +1 -1
  488. package/docs/rpc.md +23 -0
  489. package/docs/sdk.md +25 -0
  490. package/docs/settings.md +12 -4
  491. package/docs/terminal-setup.md +12 -0
  492. package/docs/usage.md +4 -3
  493. package/examples/extensions/built-in-tool-renderer.ts +8 -4
  494. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  495. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  496. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  497. package/examples/extensions/git-checkpoint.ts +24 -36
  498. package/examples/extensions/gondolin/package-lock.json +2 -2
  499. package/examples/extensions/gondolin/package.json +1 -1
  500. package/examples/extensions/minimal-mode.ts +2 -2
  501. package/examples/extensions/permission-gate.ts +1 -1
  502. package/examples/extensions/plan-mode/index.ts +1 -1
  503. package/examples/extensions/rpc-demo.ts +1 -1
  504. package/examples/extensions/sandbox/package-lock.json +2 -2
  505. package/examples/extensions/sandbox/package.json +1 -1
  506. package/examples/extensions/with-deps/package-lock.json +2 -2
  507. package/examples/extensions/with-deps/package.json +1 -1
  508. package/npm-shrinkwrap.json +194 -46
  509. package/package.json +14 -12
  510. package/dist/server/create-harness.d.ts +0 -26
  511. package/dist/server/create-harness.d.ts.map +0 -1
  512. package/dist/server/create-harness.js +0 -107
  513. package/dist/server/create-harness.js.map +0 -1
@@ -1,53 +1,41 @@
1
1
  /**
2
2
  * Git Checkpoint Extension
3
3
  *
4
- * Creates git stash checkpoints at each turn so /fork can restore code state.
5
- * When forking, offers to restore code to that point in history.
4
+ * Offers to restore code state when /fork rewinds the conversation to an earlier entry.
5
+ *
6
+ * Capture is not here. Setting `"checkpoints": { "enabled": true }` makes the harness
7
+ * snapshot the worktree at every turn, keyed to the session entry, into
8
+ * `refs/apex-code/checkpoints/<sessionId>/<entryId>`. This extension only asks the
9
+ * question, because whether to prompt is a UI decision and the harness stays headless.
10
+ *
11
+ * The engine is resolved from the workspace rather than handed over, because the
12
+ * registry is git itself. That is also why a checkpoint survives a restart.
6
13
  */
7
14
 
8
- import type { ExtensionAPI } from "apex-code";
15
+ import { createGitCheckpoints, type ExtensionAPI, type GitCheckpoints } from "apex-code";
9
16
 
10
17
  export default function (pi: ExtensionAPI) {
11
- const checkpoints = new Map<string, string>();
12
- let currentEntryId: string | undefined;
13
-
14
- // Track the current entry ID when user messages are saved
15
- pi.on("tool_result", async (_event, ctx) => {
16
- const leaf = ctx.sessionManager.getLeafEntry();
17
- if (leaf) currentEntryId = leaf.id;
18
- });
19
-
20
- pi.on("turn_start", async () => {
21
- // Create a git stash entry before LLM makes changes
22
- const { stdout } = await pi.exec("git", ["stash", "create"]);
23
- const ref = stdout.trim();
24
- if (ref && currentEntryId) {
25
- checkpoints.set(currentEntryId, ref);
26
- }
27
- });
18
+ let engine: Promise<GitCheckpoints | undefined> | undefined;
28
19
 
29
20
  pi.on("session_before_fork", async (event, ctx) => {
30
- const ref = checkpoints.get(event.entryId);
31
- if (!ref) return;
21
+ if (!ctx.hasUI) return;
32
22
 
33
- if (!ctx.hasUI) {
34
- // In non-interactive mode, don't restore automatically
35
- return;
36
- }
23
+ engine ??= createGitCheckpoints(ctx.cwd, ctx.sessionManager.getSessionId());
24
+ const checkpoint = await (await engine)?.lookup(event.entryId);
25
+ if (!checkpoint) return;
37
26
 
38
27
  const choice = await ctx.ui.select("Restore code state?", [
39
28
  "Yes, restore code to that point",
40
29
  "No, keep current code",
41
30
  ]);
42
-
43
- if (choice?.startsWith("Yes")) {
44
- await pi.exec("git", ["stash", "apply", ref]);
45
- ctx.ui.notify("Code restored to checkpoint", "info");
46
- }
47
- });
48
-
49
- pi.on("agent_settled", async () => {
50
- // Clear checkpoints after the full agent run completes
51
- checkpoints.clear();
31
+ if (!choice?.startsWith("Yes")) return;
32
+
33
+ const previous = await (await engine)?.restore(checkpoint);
34
+ ctx.ui.notify(
35
+ previous
36
+ ? `Code restored. Previous state kept at ${previous.commit.slice(0, 8)}.`
37
+ : "Checkpoint restore failed; code is unchanged.",
38
+ previous ? "info" : "error",
39
+ );
52
40
  });
53
41
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-gondolin",
3
- "version": "0.84.3",
3
+ "version": "0.84.4",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-gondolin",
9
- "version": "0.84.3",
9
+ "version": "0.84.4",
10
10
  "dependencies": {
11
11
  "@earendil-works/gondolin": "0.12.0"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-gondolin",
3
3
  "private": true,
4
- "version": "0.84.3",
4
+ "version": "0.84.4",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -128,8 +128,8 @@ export default function (pi: ExtensionAPI) {
128
128
  },
129
129
 
130
130
  renderCall(args, theme, _context) {
131
- const command = args.command || "...";
132
- const timeout = args.timeout as number | undefined;
131
+ const command = "command" in args ? args.command : "";
132
+ const timeout = "command" in args ? (args.timeout as number | undefined) : undefined;
133
133
  const timeoutSuffix = timeout ? theme.fg("muted", ` (timeout ${timeout}s)`) : "";
134
134
 
135
135
  return new Text(theme.fg("toolTitle", theme.bold(`$ ${command}`)) + timeoutSuffix, 0, 0);
@@ -13,7 +13,7 @@ export default function (pi: ExtensionAPI) {
13
13
  pi.on("tool_call", async (event, ctx) => {
14
14
  if (event.toolName !== "bash") return undefined;
15
15
 
16
- const command = event.input.command as string;
16
+ const command = (event.input as Record<string, unknown>).command as string;
17
17
  const isDangerous = dangerousPatterns.some((p) => p.test(command));
18
18
 
19
19
  if (isDangerous) {
@@ -164,7 +164,7 @@ export default function planModeExtension(pi: ExtensionAPI): void {
164
164
  pi.on("tool_call", async (event) => {
165
165
  if (!planModeEnabled || event.toolName !== "bash") return;
166
166
 
167
- const command = event.input.command as string;
167
+ const command = (event.input as Record<string, unknown>).command as string;
168
168
  if (!isSafeCommand(command)) {
169
169
  return {
170
170
  block: true,
@@ -46,7 +46,7 @@ export default function (pi: ExtensionAPI) {
46
46
  pi.on("tool_call", async (event, ctx) => {
47
47
  if (event.toolName !== "bash") return undefined;
48
48
 
49
- const command = event.input.command as string;
49
+ const command = (event.input as Record<string, unknown>).command as string;
50
50
  const isDangerous = /\brm\s+(-rf?|--recursive)/i.test(command) || /\bsudo\b/i.test(command);
51
51
 
52
52
  if (isDangerous) {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-sandbox",
3
- "version": "1.14.3",
3
+ "version": "1.14.4",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-sandbox",
9
- "version": "1.14.3",
9
+ "version": "1.14.4",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sandbox-runtime": "^0.0.26"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-sandbox",
3
3
  "private": true,
4
- "version": "1.14.3",
4
+ "version": "1.14.4",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-with-deps",
3
- "version": "0.84.3",
3
+ "version": "0.84.4",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-with-deps",
9
- "version": "0.84.3",
9
+ "version": "0.84.4",
10
10
  "dependencies": {
11
11
  "ms": "^2.1.3"
12
12
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-with-deps",
3
3
  "private": true,
4
- "version": "0.84.3",
4
+ "version": "0.84.4",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,33 +1,35 @@
1
1
  {
2
2
  "name": "apex-code",
3
- "version": "0.0.1-alpha.9",
3
+ "version": "0.0.4",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "apex-code",
9
- "version": "0.0.1-alpha.9",
9
+ "version": "0.0.4",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "apex-code-agent-core": "0.0.1-alpha.9",
13
- "@earendil-works/pi-ai": "^0.84.3",
14
- "@earendil-works/pi-client": "^0.84.3",
15
- "@earendil-works/pi-protocol": "^0.84.3",
16
- "@earendil-works/pi-tui": "^0.84.3",
12
+ "@earendil-works/pi-ai": "^0.84.4",
13
+ "@earendil-works/pi-client": "^0.84.4",
14
+ "@earendil-works/pi-protocol": "^0.84.4",
15
+ "@earendil-works/pi-tui": "^0.84.4",
16
+ "@modelcontextprotocol/client": "2.0.0",
17
+ "@modelcontextprotocol/core": "2.0.0",
17
18
  "@silvia-odwyer/photon-node": "0.3.4",
19
+ "apex-code-agent-core": "0.0.4",
18
20
  "chalk": "5.6.2",
19
21
  "cross-spawn": "7.0.6",
20
- "diff": "8.0.4",
22
+ "diff": "9.0.0",
21
23
  "grok-mermaid": "0.2.2",
22
24
  "highlight.js": "10.7.3",
23
- "hosted-git-info": "9.0.3",
25
+ "hosted-git-info": "10.1.1",
24
26
  "ignore": "7.0.5",
25
27
  "jiti": "2.7.0",
26
- "minimatch": "10.2.5",
28
+ "minimatch": "10.2.6",
27
29
  "proper-lockfile": "4.1.2",
28
- "semver": "7.8.0",
30
+ "semver": "7.8.5",
29
31
  "typebox": "1.3.7",
30
- "undici": "8.9.0",
32
+ "undici": "8.10.0",
31
33
  "yaml": "2.9.0"
32
34
  },
33
35
  "optionalDependencies": {
@@ -502,13 +504,13 @@
502
504
  }
503
505
  },
504
506
  "node_modules/@earendil-works/pi-ai": {
505
- "version": "0.84.3",
506
- "resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.84.3.tgz",
507
+ "version": "0.84.4",
508
+ "resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.84.4.tgz",
507
509
  "license": "MIT",
508
510
  "dependencies": {
509
511
  "@anthropic-ai/sdk": "0.91.1",
510
512
  "@aws-sdk/client-bedrock-runtime": "3.1048.0",
511
- "@earendil-works/pi-telemetry": "^0.84.3",
513
+ "@earendil-works/pi-telemetry": "^0.84.4",
512
514
  "@google/genai": "1.52.0",
513
515
  "@smithy/node-http-handler": "4.7.3",
514
516
  "http-proxy-agent": "7.0.2",
@@ -525,19 +527,19 @@
525
527
  }
526
528
  },
527
529
  "node_modules/@earendil-works/pi-client": {
528
- "version": "0.84.3",
529
- "resolved": "https://registry.npmjs.org/@earendil-works/pi-client/-/pi-client-0.84.3.tgz",
530
+ "version": "0.84.4",
531
+ "resolved": "https://registry.npmjs.org/@earendil-works/pi-client/-/pi-client-0.84.4.tgz",
530
532
  "license": "MIT",
531
533
  "dependencies": {
532
- "@earendil-works/pi-protocol": "^0.84.3"
534
+ "@earendil-works/pi-protocol": "^0.84.4"
533
535
  },
534
536
  "engines": {
535
537
  "node": ">=22.19.0"
536
538
  }
537
539
  },
538
540
  "node_modules/@earendil-works/pi-protocol": {
539
- "version": "0.84.3",
540
- "resolved": "https://registry.npmjs.org/@earendil-works/pi-protocol/-/pi-protocol-0.84.3.tgz",
541
+ "version": "0.84.4",
542
+ "resolved": "https://registry.npmjs.org/@earendil-works/pi-protocol/-/pi-protocol-0.84.4.tgz",
541
543
  "license": "MIT",
542
544
  "dependencies": {
543
545
  "typebox": "1.3.7"
@@ -547,16 +549,16 @@
547
549
  }
548
550
  },
549
551
  "node_modules/@earendil-works/pi-telemetry": {
550
- "version": "0.84.3",
551
- "resolved": "https://registry.npmjs.org/@earendil-works/pi-telemetry/-/pi-telemetry-0.84.3.tgz",
552
+ "version": "0.84.4",
553
+ "resolved": "https://registry.npmjs.org/@earendil-works/pi-telemetry/-/pi-telemetry-0.84.4.tgz",
552
554
  "license": "MIT",
553
555
  "engines": {
554
556
  "node": ">=22.19.0"
555
557
  }
556
558
  },
557
559
  "node_modules/@earendil-works/pi-tui": {
558
- "version": "0.84.3",
559
- "resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.84.3.tgz",
560
+ "version": "0.84.4",
561
+ "resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.84.4.tgz",
560
562
  "license": "MIT",
561
563
  "dependencies": {
562
564
  "get-east-asian-width": "1.6.0",
@@ -784,6 +786,113 @@
784
786
  ],
785
787
  "optional": true
786
788
  },
789
+ "node_modules/@modelcontextprotocol/client": {
790
+ "version": "2.0.0",
791
+ "resolved": "https://registry.npmjs.org/@modelcontextprotocol/client/-/client-2.0.0.tgz",
792
+ "integrity": "sha512-8f1OghQ2rjzIOfqgUCP+8GiUWqRs89njoWLNqAe8kWmDePv3s1fZXseej+QXemssEuuOvLLmLO/kqM3IQHtISw==",
793
+ "license": "MIT",
794
+ "dependencies": {
795
+ "@modelcontextprotocol/core": "2.0.0",
796
+ "cross-spawn": "^7.0.5",
797
+ "eventsource": "^3.0.2",
798
+ "eventsource-parser": "^3.0.0",
799
+ "jose": "^6.1.3",
800
+ "pkce-challenge": "^5.0.0",
801
+ "zod": "^4.2.0"
802
+ },
803
+ "engines": {
804
+ "node": ">=20"
805
+ }
806
+ },
807
+ "node_modules/@modelcontextprotocol/client/node_modules/cross-spawn": {
808
+ "version": "7.0.6",
809
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
810
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
811
+ "license": "MIT",
812
+ "dependencies": {
813
+ "path-key": "^3.1.0",
814
+ "shebang-command": "^2.0.0",
815
+ "which": "^2.0.1"
816
+ },
817
+ "engines": {
818
+ "node": ">= 8"
819
+ }
820
+ },
821
+ "node_modules/@modelcontextprotocol/client/node_modules/path-key": {
822
+ "version": "3.1.1",
823
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
824
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
825
+ "license": "MIT",
826
+ "engines": {
827
+ "node": ">=8"
828
+ }
829
+ },
830
+ "node_modules/@modelcontextprotocol/client/node_modules/shebang-command": {
831
+ "version": "2.0.0",
832
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
833
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
834
+ "license": "MIT",
835
+ "dependencies": {
836
+ "shebang-regex": "^3.0.0"
837
+ },
838
+ "engines": {
839
+ "node": ">=8"
840
+ }
841
+ },
842
+ "node_modules/@modelcontextprotocol/client/node_modules/shebang-regex": {
843
+ "version": "3.0.0",
844
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
845
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
846
+ "license": "MIT",
847
+ "engines": {
848
+ "node": ">=8"
849
+ }
850
+ },
851
+ "node_modules/@modelcontextprotocol/client/node_modules/which": {
852
+ "version": "2.0.2",
853
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
854
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
855
+ "license": "ISC",
856
+ "dependencies": {
857
+ "isexe": "^2.0.0"
858
+ },
859
+ "bin": {
860
+ "node-which": "bin/node-which"
861
+ },
862
+ "engines": {
863
+ "node": ">= 8"
864
+ }
865
+ },
866
+ "node_modules/@modelcontextprotocol/client/node_modules/zod": {
867
+ "version": "4.4.3",
868
+ "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
869
+ "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
870
+ "license": "MIT",
871
+ "funding": {
872
+ "url": "https://github.com/sponsors/colinhacks"
873
+ }
874
+ },
875
+ "node_modules/@modelcontextprotocol/core": {
876
+ "version": "2.0.0",
877
+ "resolved": "https://registry.npmjs.org/@modelcontextprotocol/core/-/core-2.0.0.tgz",
878
+ "integrity": "sha512-pJCEwGG7Lfr/+PQp9ZTwKXNeO5wzbfKL7H3MYpCorM4oFBoQrdjnBgEoqG+RjhsvS1FKrDbKux+M1HhlnGWqcA==",
879
+ "license": "MIT",
880
+ "dependencies": {
881
+ "zod": "^4.2.0"
882
+ },
883
+ "engines": {
884
+ "node": ">=20"
885
+ }
886
+ },
887
+ "node_modules/@modelcontextprotocol/core/node_modules/zod": {
888
+ "version": "4.4.3",
889
+ "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
890
+ "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
891
+ "license": "MIT",
892
+ "funding": {
893
+ "url": "https://github.com/sponsors/colinhacks"
894
+ }
895
+ },
787
896
  "node_modules/@protobufjs/aspromise": {
788
897
  "version": "1.1.2",
789
898
  "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
@@ -991,13 +1100,13 @@
991
1100
  }
992
1101
  },
993
1102
  "node_modules/apex-code-agent-core": {
994
- "version": "0.0.1-alpha.9",
995
- "resolved": "https://registry.npmjs.org/apex-code-agent-core/-/apex-code-agent-core-0.0.1-alpha.9.tgz",
1103
+ "version": "0.0.4",
1104
+ "resolved": "https://registry.npmjs.org/apex-code-agent-core/-/apex-code-agent-core-0.0.4.tgz",
996
1105
  "license": "MIT",
997
1106
  "dependencies": {
998
- "@earendil-works/pi-ai": "^0.84.3",
999
- "@earendil-works/pi-telemetry": "^0.84.3",
1000
- "diff": "8.0.4",
1107
+ "@earendil-works/pi-ai": "^0.84.4",
1108
+ "@earendil-works/pi-telemetry": "^0.84.4",
1109
+ "diff": "9.0.0",
1001
1110
  "ignore": "7.0.5",
1002
1111
  "typebox": "1.3.7",
1003
1112
  "yaml": "2.9.0"
@@ -1119,9 +1228,9 @@
1119
1228
  }
1120
1229
  },
1121
1230
  "node_modules/diff": {
1122
- "version": "8.0.4",
1123
- "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz",
1124
- "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==",
1231
+ "version": "9.0.0",
1232
+ "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz",
1233
+ "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==",
1125
1234
  "license": "BSD-3-Clause",
1126
1235
  "engines": {
1127
1236
  "node": ">=0.3.1"
@@ -1136,6 +1245,27 @@
1136
1245
  "safe-buffer": "^5.0.1"
1137
1246
  }
1138
1247
  },
1248
+ "node_modules/eventsource": {
1249
+ "version": "3.0.7",
1250
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz",
1251
+ "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==",
1252
+ "license": "MIT",
1253
+ "dependencies": {
1254
+ "eventsource-parser": "^3.0.1"
1255
+ },
1256
+ "engines": {
1257
+ "node": ">=18.0.0"
1258
+ }
1259
+ },
1260
+ "node_modules/eventsource-parser": {
1261
+ "version": "3.1.1",
1262
+ "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz",
1263
+ "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==",
1264
+ "license": "MIT",
1265
+ "engines": {
1266
+ "node": ">=18.0.0"
1267
+ }
1268
+ },
1139
1269
  "node_modules/extend": {
1140
1270
  "version": "3.0.2",
1141
1271
  "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
@@ -1268,15 +1398,15 @@
1268
1398
  }
1269
1399
  },
1270
1400
  "node_modules/hosted-git-info": {
1271
- "version": "9.0.3",
1272
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz",
1273
- "integrity": "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==",
1401
+ "version": "10.1.1",
1402
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-10.1.1.tgz",
1403
+ "integrity": "sha512-DeOnSPAvOndYKfw075gt8yZzQ7S2hNztw34zBTfhIzLhmBTswIBg5/y+pqu/VD5cYWm5goAFTusDmUEmKZ0PEQ==",
1274
1404
  "license": "ISC",
1275
1405
  "dependencies": {
1276
1406
  "lru-cache": "^11.1.0"
1277
1407
  },
1278
1408
  "engines": {
1279
- "node": "^20.17.0 || >=22.9.0"
1409
+ "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
1280
1410
  }
1281
1411
  },
1282
1412
  "node_modules/http-proxy-agent": {
@@ -1329,6 +1459,15 @@
1329
1459
  "jiti": "lib/jiti-cli.mjs"
1330
1460
  }
1331
1461
  },
1462
+ "node_modules/jose": {
1463
+ "version": "6.2.10",
1464
+ "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.10.tgz",
1465
+ "integrity": "sha512-iiW7J9qRFlGxvCOIBDBDxFePQSn7ZMAnrYGhrrOo6siO/MIqwfyilLR27pkfDgUk+raLuzADS8A3S/KLBisc0g==",
1466
+ "license": "MIT",
1467
+ "funding": {
1468
+ "url": "https://github.com/sponsors/panva"
1469
+ }
1470
+ },
1332
1471
  "node_modules/json-bigint": {
1333
1472
  "version": "1.0.0",
1334
1473
  "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
@@ -1400,12 +1539,12 @@
1400
1539
  }
1401
1540
  },
1402
1541
  "node_modules/minimatch": {
1403
- "version": "10.2.5",
1404
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
1405
- "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
1542
+ "version": "10.2.6",
1543
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz",
1544
+ "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==",
1406
1545
  "license": "BlueOak-1.0.0",
1407
1546
  "dependencies": {
1408
- "brace-expansion": "^5.0.5"
1547
+ "brace-expansion": "^5.0.8"
1409
1548
  },
1410
1549
  "engines": {
1411
1550
  "node": "18 || 20 || >=22"
@@ -1511,6 +1650,15 @@
1511
1650
  "node": ">=8"
1512
1651
  }
1513
1652
  },
1653
+ "node_modules/pkce-challenge": {
1654
+ "version": "5.0.1",
1655
+ "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz",
1656
+ "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==",
1657
+ "license": "MIT",
1658
+ "engines": {
1659
+ "node": ">=16.20.0"
1660
+ }
1661
+ },
1514
1662
  "node_modules/proper-lockfile": {
1515
1663
  "version": "4.1.2",
1516
1664
  "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
@@ -1575,9 +1723,9 @@
1575
1723
  ]
1576
1724
  },
1577
1725
  "node_modules/semver": {
1578
- "version": "7.8.0",
1579
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
1580
- "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
1726
+ "version": "7.8.5",
1727
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
1728
+ "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
1581
1729
  "license": "ISC",
1582
1730
  "bin": {
1583
1731
  "semver": "bin/semver.js"
@@ -1628,9 +1776,9 @@
1628
1776
  "license": "MIT"
1629
1777
  },
1630
1778
  "node_modules/undici": {
1631
- "version": "8.9.0",
1632
- "resolved": "https://registry.npmjs.org/undici/-/undici-8.9.0.tgz",
1633
- "integrity": "sha512-aWZpUj7XoGonMClx4gdDRfgBjqeA+F473aDmROQQbM9n6PRfK/u1q/a0X4wMTgcHfT8H6fpbt98PFuDUwFg2YA==",
1779
+ "version": "8.10.0",
1780
+ "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz",
1781
+ "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==",
1634
1782
  "license": "MIT",
1635
1783
  "engines": {
1636
1784
  "node": ">=22.19.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apex-code",
3
- "version": "0.0.1-alpha.9",
3
+ "version": "0.0.4",
4
4
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "piConfig": {
@@ -43,25 +43,27 @@
43
43
  "prepublishOnly": "npm run clean && npm run build && npm run shrinkwrap"
44
44
  },
45
45
  "dependencies": {
46
- "apex-code-agent-core": "0.0.1-alpha.9",
47
- "@earendil-works/pi-ai": "^0.84.3",
48
- "@earendil-works/pi-client": "^0.84.3",
49
- "@earendil-works/pi-protocol": "^0.84.3",
50
- "@earendil-works/pi-tui": "^0.84.3",
46
+ "@earendil-works/pi-ai": "^0.84.4",
47
+ "@earendil-works/pi-client": "^0.84.4",
48
+ "@earendil-works/pi-protocol": "^0.84.4",
49
+ "@earendil-works/pi-tui": "^0.84.4",
50
+ "@modelcontextprotocol/client": "2.0.0",
51
+ "@modelcontextprotocol/core": "2.0.0",
51
52
  "@silvia-odwyer/photon-node": "0.3.4",
53
+ "apex-code-agent-core": "0.0.4",
52
54
  "chalk": "5.6.2",
53
55
  "cross-spawn": "7.0.6",
54
- "diff": "8.0.4",
56
+ "diff": "9.0.0",
55
57
  "grok-mermaid": "0.2.2",
56
58
  "highlight.js": "10.7.3",
57
- "hosted-git-info": "9.0.3",
59
+ "hosted-git-info": "10.1.1",
58
60
  "ignore": "7.0.5",
59
61
  "jiti": "2.7.0",
60
- "minimatch": "10.2.5",
62
+ "minimatch": "10.2.6",
61
63
  "proper-lockfile": "4.1.2",
62
- "semver": "7.8.0",
64
+ "semver": "7.8.5",
63
65
  "typebox": "1.3.7",
64
- "undici": "8.9.0",
66
+ "undici": "8.10.0",
65
67
  "yaml": "2.9.0"
66
68
  },
67
69
  "overrides": {
@@ -79,7 +81,7 @@
79
81
  "@types/hosted-git-info": "3.0.5",
80
82
  "@types/node": "22.19.19",
81
83
  "@types/proper-lockfile": "4.1.4",
82
- "@types/semver": "7.7.1",
84
+ "@types/semver": "7.8.0",
83
85
  "glob": "13.0.6",
84
86
  "shx": "0.4.0",
85
87
  "typescript": "5.9.3",