luca 1.1.2 → 3.0.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 (754) hide show
  1. package/.github/workflows/release.yaml +169 -0
  2. package/AGENTS.md +99 -0
  3. package/CLAUDE.md +115 -0
  4. package/CNAME +1 -0
  5. package/README.md +257 -8
  6. package/RUNME.md +56 -0
  7. package/assistants/codingAssistant/ABOUT.md +5 -0
  8. package/assistants/codingAssistant/CORE.md +28 -0
  9. package/assistants/codingAssistant/hooks.ts +21 -0
  10. package/assistants/codingAssistant/tools.ts +12 -0
  11. package/assistants/inkbot/ABOUT.md +16 -0
  12. package/assistants/inkbot/CORE.md +330 -0
  13. package/assistants/inkbot/hooks.ts +6 -0
  14. package/assistants/inkbot/tools.ts +53 -0
  15. package/assistants/researcher/ABOUT.md +5 -0
  16. package/assistants/researcher/CORE.md +46 -0
  17. package/assistants/researcher/hooks.ts +16 -0
  18. package/assistants/researcher/tools.ts +237 -0
  19. package/bun.lock +2769 -0
  20. package/bunfig.toml +3 -0
  21. package/commands/audit-docs.ts +740 -0
  22. package/commands/build-bootstrap.ts +118 -0
  23. package/commands/build-python-bridge.ts +43 -0
  24. package/commands/build-scaffolds.ts +176 -0
  25. package/commands/generate-api-docs.ts +114 -0
  26. package/commands/inkbot.ts +874 -0
  27. package/commands/release.ts +80 -0
  28. package/commands/try-all-challenges.ts +543 -0
  29. package/commands/try-challenge.ts +100 -0
  30. package/dist/agi/container.server.d.ts +63 -0
  31. package/dist/agi/container.server.d.ts.map +1 -0
  32. package/dist/agi/endpoints/ask.d.ts +20 -0
  33. package/dist/agi/endpoints/ask.d.ts.map +1 -0
  34. package/dist/agi/endpoints/conversations/[id].d.ts +27 -0
  35. package/dist/agi/endpoints/conversations/[id].d.ts.map +1 -0
  36. package/dist/agi/endpoints/conversations.d.ts +18 -0
  37. package/dist/agi/endpoints/conversations.d.ts.map +1 -0
  38. package/dist/agi/endpoints/experts.d.ts +8 -0
  39. package/dist/agi/endpoints/experts.d.ts.map +1 -0
  40. package/dist/agi/feature.d.ts +9 -0
  41. package/dist/agi/feature.d.ts.map +1 -0
  42. package/dist/agi/features/assistant.d.ts +509 -0
  43. package/dist/agi/features/assistant.d.ts.map +1 -0
  44. package/dist/agi/features/assistants-manager.d.ts +236 -0
  45. package/dist/agi/features/assistants-manager.d.ts.map +1 -0
  46. package/dist/agi/features/autonomous-assistant.d.ts +281 -0
  47. package/dist/agi/features/autonomous-assistant.d.ts.map +1 -0
  48. package/dist/agi/features/browser-use.d.ts +479 -0
  49. package/dist/agi/features/browser-use.d.ts.map +1 -0
  50. package/dist/agi/features/claude-code.d.ts +824 -0
  51. package/dist/agi/features/claude-code.d.ts.map +1 -0
  52. package/dist/agi/features/conversation-history.d.ts +245 -0
  53. package/dist/agi/features/conversation-history.d.ts.map +1 -0
  54. package/dist/agi/features/conversation.d.ts +464 -0
  55. package/dist/agi/features/conversation.d.ts.map +1 -0
  56. package/dist/agi/features/docs-reader.d.ts +72 -0
  57. package/dist/agi/features/docs-reader.d.ts.map +1 -0
  58. package/dist/agi/features/file-tools.d.ts +110 -0
  59. package/dist/agi/features/file-tools.d.ts.map +1 -0
  60. package/dist/agi/features/luca-coder.d.ts +323 -0
  61. package/dist/agi/features/luca-coder.d.ts.map +1 -0
  62. package/dist/agi/features/openai-codex.d.ts +381 -0
  63. package/dist/agi/features/openai-codex.d.ts.map +1 -0
  64. package/dist/agi/features/openapi.d.ts +200 -0
  65. package/dist/agi/features/openapi.d.ts.map +1 -0
  66. package/dist/agi/features/skills-library.d.ts +167 -0
  67. package/dist/agi/features/skills-library.d.ts.map +1 -0
  68. package/dist/agi/index.d.ts +5 -0
  69. package/dist/agi/index.d.ts.map +1 -0
  70. package/dist/agi/lib/interceptor-chain.d.ts +44 -0
  71. package/dist/agi/lib/interceptor-chain.d.ts.map +1 -0
  72. package/dist/agi/lib/token-counter.d.ts +13 -0
  73. package/dist/agi/lib/token-counter.d.ts.map +1 -0
  74. package/dist/bootstrap/generated.d.ts +5 -0
  75. package/dist/bootstrap/generated.d.ts.map +1 -0
  76. package/dist/browser.d.ts +12 -0
  77. package/dist/browser.d.ts.map +1 -0
  78. package/dist/bus.d.ts +29 -0
  79. package/dist/bus.d.ts.map +1 -0
  80. package/dist/cli/build-info.d.ts +4 -0
  81. package/dist/cli/build-info.d.ts.map +1 -0
  82. package/dist/cli/cli.d.ts +3 -0
  83. package/dist/cli/cli.d.ts.map +1 -0
  84. package/dist/client.d.ts +60 -0
  85. package/dist/client.d.ts.map +1 -0
  86. package/dist/clients/civitai/index.d.ts +472 -0
  87. package/dist/clients/civitai/index.d.ts.map +1 -0
  88. package/dist/clients/client-template.d.ts +30 -0
  89. package/dist/clients/client-template.d.ts.map +1 -0
  90. package/dist/clients/comfyui/index.d.ts +281 -0
  91. package/dist/clients/comfyui/index.d.ts.map +1 -0
  92. package/dist/clients/elevenlabs/index.d.ts +197 -0
  93. package/dist/clients/elevenlabs/index.d.ts.map +1 -0
  94. package/dist/clients/graph.d.ts +64 -0
  95. package/dist/clients/graph.d.ts.map +1 -0
  96. package/dist/clients/openai/index.d.ts +247 -0
  97. package/dist/clients/openai/index.d.ts.map +1 -0
  98. package/dist/clients/rest.d.ts +92 -0
  99. package/dist/clients/rest.d.ts.map +1 -0
  100. package/dist/clients/supabase/index.d.ts +176 -0
  101. package/dist/clients/supabase/index.d.ts.map +1 -0
  102. package/dist/clients/websocket.d.ts +127 -0
  103. package/dist/clients/websocket.d.ts.map +1 -0
  104. package/dist/command.d.ts +163 -0
  105. package/dist/command.d.ts.map +1 -0
  106. package/dist/commands/bootstrap.d.ts +20 -0
  107. package/dist/commands/bootstrap.d.ts.map +1 -0
  108. package/dist/commands/chat.d.ts +37 -0
  109. package/dist/commands/chat.d.ts.map +1 -0
  110. package/dist/commands/code.d.ts +28 -0
  111. package/dist/commands/code.d.ts.map +1 -0
  112. package/dist/commands/console.d.ts +22 -0
  113. package/dist/commands/console.d.ts.map +1 -0
  114. package/dist/commands/describe.d.ts +50 -0
  115. package/dist/commands/describe.d.ts.map +1 -0
  116. package/dist/commands/eval.d.ts +23 -0
  117. package/dist/commands/eval.d.ts.map +1 -0
  118. package/dist/commands/help.d.ts +25 -0
  119. package/dist/commands/help.d.ts.map +1 -0
  120. package/dist/commands/index.d.ts +18 -0
  121. package/dist/commands/index.d.ts.map +1 -0
  122. package/dist/commands/introspect.d.ts +24 -0
  123. package/dist/commands/introspect.d.ts.map +1 -0
  124. package/dist/commands/mcp.d.ts +35 -0
  125. package/dist/commands/mcp.d.ts.map +1 -0
  126. package/dist/commands/prompt.d.ts +38 -0
  127. package/dist/commands/prompt.d.ts.map +1 -0
  128. package/dist/commands/run.d.ts +24 -0
  129. package/dist/commands/run.d.ts.map +1 -0
  130. package/dist/commands/sandbox-mcp.d.ts +34 -0
  131. package/dist/commands/sandbox-mcp.d.ts.map +1 -0
  132. package/dist/commands/save-api-docs.d.ts +21 -0
  133. package/dist/commands/save-api-docs.d.ts.map +1 -0
  134. package/dist/commands/scaffold.d.ts +24 -0
  135. package/dist/commands/scaffold.d.ts.map +1 -0
  136. package/dist/commands/select.d.ts +22 -0
  137. package/dist/commands/select.d.ts.map +1 -0
  138. package/dist/commands/serve.d.ts +29 -0
  139. package/dist/commands/serve.d.ts.map +1 -0
  140. package/dist/container-describer.d.ts +144 -0
  141. package/dist/container-describer.d.ts.map +1 -0
  142. package/dist/container.d.ts +451 -0
  143. package/dist/container.d.ts.map +1 -0
  144. package/dist/endpoint.d.ts +113 -0
  145. package/dist/endpoint.d.ts.map +1 -0
  146. package/dist/feature.d.ts +47 -0
  147. package/dist/feature.d.ts.map +1 -0
  148. package/dist/graft.d.ts +29 -0
  149. package/dist/graft.d.ts.map +1 -0
  150. package/dist/hash-object.d.ts +8 -0
  151. package/dist/hash-object.d.ts.map +1 -0
  152. package/dist/helper.d.ts +209 -0
  153. package/dist/helper.d.ts.map +1 -0
  154. package/dist/introspection/generated.node.d.ts +44623 -0
  155. package/dist/introspection/generated.node.d.ts.map +1 -0
  156. package/dist/introspection/generated.web.d.ts +1412 -0
  157. package/dist/introspection/generated.web.d.ts.map +1 -0
  158. package/dist/introspection/index.d.ts +156 -0
  159. package/dist/introspection/index.d.ts.map +1 -0
  160. package/dist/introspection/scan.d.ts +147 -0
  161. package/dist/introspection/scan.d.ts.map +1 -0
  162. package/dist/node/container.d.ts +256 -0
  163. package/dist/node/container.d.ts.map +1 -0
  164. package/dist/node/feature.d.ts +9 -0
  165. package/dist/node/feature.d.ts.map +1 -0
  166. package/dist/node/features/container-link.d.ts +213 -0
  167. package/dist/node/features/container-link.d.ts.map +1 -0
  168. package/dist/node/features/content-db.d.ts +354 -0
  169. package/dist/node/features/content-db.d.ts.map +1 -0
  170. package/dist/node/features/disk-cache.d.ts +236 -0
  171. package/dist/node/features/disk-cache.d.ts.map +1 -0
  172. package/dist/node/features/dns.d.ts +511 -0
  173. package/dist/node/features/dns.d.ts.map +1 -0
  174. package/dist/node/features/docker.d.ts +485 -0
  175. package/dist/node/features/docker.d.ts.map +1 -0
  176. package/dist/node/features/downloader.d.ts +73 -0
  177. package/dist/node/features/downloader.d.ts.map +1 -0
  178. package/dist/node/features/figlet-fonts.d.ts +4 -0
  179. package/dist/node/features/figlet-fonts.d.ts.map +1 -0
  180. package/dist/node/features/file-manager.d.ts +177 -0
  181. package/dist/node/features/file-manager.d.ts.map +1 -0
  182. package/dist/node/features/fs.d.ts +635 -0
  183. package/dist/node/features/fs.d.ts.map +1 -0
  184. package/dist/node/features/git.d.ts +329 -0
  185. package/dist/node/features/git.d.ts.map +1 -0
  186. package/dist/node/features/google-auth.d.ts +200 -0
  187. package/dist/node/features/google-auth.d.ts.map +1 -0
  188. package/dist/node/features/google-calendar.d.ts +194 -0
  189. package/dist/node/features/google-calendar.d.ts.map +1 -0
  190. package/dist/node/features/google-docs.d.ts +138 -0
  191. package/dist/node/features/google-docs.d.ts.map +1 -0
  192. package/dist/node/features/google-drive.d.ts +202 -0
  193. package/dist/node/features/google-drive.d.ts.map +1 -0
  194. package/dist/node/features/google-mail.d.ts +221 -0
  195. package/dist/node/features/google-mail.d.ts.map +1 -0
  196. package/dist/node/features/google-sheets.d.ts +157 -0
  197. package/dist/node/features/google-sheets.d.ts.map +1 -0
  198. package/dist/node/features/grep.d.ts +207 -0
  199. package/dist/node/features/grep.d.ts.map +1 -0
  200. package/dist/node/features/helpers.d.ts +236 -0
  201. package/dist/node/features/helpers.d.ts.map +1 -0
  202. package/dist/node/features/ink.d.ts +332 -0
  203. package/dist/node/features/ink.d.ts.map +1 -0
  204. package/dist/node/features/ipc-socket.d.ts +298 -0
  205. package/dist/node/features/ipc-socket.d.ts.map +1 -0
  206. package/dist/node/features/json-tree.d.ts +140 -0
  207. package/dist/node/features/json-tree.d.ts.map +1 -0
  208. package/dist/node/features/networking.d.ts +373 -0
  209. package/dist/node/features/networking.d.ts.map +1 -0
  210. package/dist/node/features/nlp.d.ts +125 -0
  211. package/dist/node/features/nlp.d.ts.map +1 -0
  212. package/dist/node/features/opener.d.ts +93 -0
  213. package/dist/node/features/opener.d.ts.map +1 -0
  214. package/dist/node/features/os.d.ts +168 -0
  215. package/dist/node/features/os.d.ts.map +1 -0
  216. package/dist/node/features/package-finder.d.ts +419 -0
  217. package/dist/node/features/package-finder.d.ts.map +1 -0
  218. package/dist/node/features/postgres.d.ts +173 -0
  219. package/dist/node/features/postgres.d.ts.map +1 -0
  220. package/dist/node/features/proc.d.ts +285 -0
  221. package/dist/node/features/proc.d.ts.map +1 -0
  222. package/dist/node/features/process-manager.d.ts +427 -0
  223. package/dist/node/features/process-manager.d.ts.map +1 -0
  224. package/dist/node/features/python.d.ts +477 -0
  225. package/dist/node/features/python.d.ts.map +1 -0
  226. package/dist/node/features/redis.d.ts +247 -0
  227. package/dist/node/features/redis.d.ts.map +1 -0
  228. package/dist/node/features/repl.d.ts +84 -0
  229. package/dist/node/features/repl.d.ts.map +1 -0
  230. package/dist/node/features/runpod.d.ts +527 -0
  231. package/dist/node/features/runpod.d.ts.map +1 -0
  232. package/dist/node/features/secure-shell.d.ts +145 -0
  233. package/dist/node/features/secure-shell.d.ts.map +1 -0
  234. package/dist/node/features/semantic-search.d.ts +207 -0
  235. package/dist/node/features/semantic-search.d.ts.map +1 -0
  236. package/dist/node/features/sqlite.d.ts +180 -0
  237. package/dist/node/features/sqlite.d.ts.map +1 -0
  238. package/dist/node/features/telegram.d.ts +173 -0
  239. package/dist/node/features/telegram.d.ts.map +1 -0
  240. package/dist/node/features/transpiler.d.ts +51 -0
  241. package/dist/node/features/transpiler.d.ts.map +1 -0
  242. package/dist/node/features/tts.d.ts +108 -0
  243. package/dist/node/features/tts.d.ts.map +1 -0
  244. package/dist/node/features/ui.d.ts +562 -0
  245. package/dist/node/features/ui.d.ts.map +1 -0
  246. package/dist/node/features/vault.d.ts +90 -0
  247. package/dist/node/features/vault.d.ts.map +1 -0
  248. package/dist/node/features/vm.d.ts +285 -0
  249. package/dist/node/features/vm.d.ts.map +1 -0
  250. package/dist/node/features/yaml-tree.d.ts +118 -0
  251. package/dist/node/features/yaml-tree.d.ts.map +1 -0
  252. package/dist/node/features/yaml.d.ts +127 -0
  253. package/dist/node/features/yaml.d.ts.map +1 -0
  254. package/dist/node.d.ts +67 -0
  255. package/dist/node.d.ts.map +1 -0
  256. package/dist/python/generated.d.ts +2 -0
  257. package/dist/python/generated.d.ts.map +1 -0
  258. package/dist/react/index.d.ts +36 -0
  259. package/dist/react/index.d.ts.map +1 -0
  260. package/dist/registry.d.ts +97 -0
  261. package/dist/registry.d.ts.map +1 -0
  262. package/dist/scaffolds/generated.d.ts +13 -0
  263. package/dist/scaffolds/generated.d.ts.map +1 -0
  264. package/dist/scaffolds/template.d.ts +11 -0
  265. package/dist/scaffolds/template.d.ts.map +1 -0
  266. package/dist/schemas/base.d.ts +254 -0
  267. package/dist/schemas/base.d.ts.map +1 -0
  268. package/dist/selector.d.ts +130 -0
  269. package/dist/selector.d.ts.map +1 -0
  270. package/dist/server.d.ts +89 -0
  271. package/dist/server.d.ts.map +1 -0
  272. package/dist/servers/express.d.ts +104 -0
  273. package/dist/servers/express.d.ts.map +1 -0
  274. package/dist/servers/mcp.d.ts +201 -0
  275. package/dist/servers/mcp.d.ts.map +1 -0
  276. package/dist/servers/socket.d.ts +121 -0
  277. package/dist/servers/socket.d.ts.map +1 -0
  278. package/dist/state.d.ts +24 -0
  279. package/dist/state.d.ts.map +1 -0
  280. package/dist/web/clients/socket.d.ts +37 -0
  281. package/dist/web/clients/socket.d.ts.map +1 -0
  282. package/dist/web/container.d.ts +55 -0
  283. package/dist/web/container.d.ts.map +1 -0
  284. package/dist/web/extension.d.ts +4 -0
  285. package/dist/web/extension.d.ts.map +1 -0
  286. package/dist/web/feature.d.ts +8 -0
  287. package/dist/web/feature.d.ts.map +1 -0
  288. package/dist/web/features/asset-loader.d.ts +35 -0
  289. package/dist/web/features/asset-loader.d.ts.map +1 -0
  290. package/dist/web/features/container-link.d.ts +167 -0
  291. package/dist/web/features/container-link.d.ts.map +1 -0
  292. package/dist/web/features/esbuild.d.ts +51 -0
  293. package/dist/web/features/esbuild.d.ts.map +1 -0
  294. package/dist/web/features/helpers.d.ts +140 -0
  295. package/dist/web/features/helpers.d.ts.map +1 -0
  296. package/dist/web/features/network.d.ts +69 -0
  297. package/dist/web/features/network.d.ts.map +1 -0
  298. package/dist/web/features/speech.d.ts +71 -0
  299. package/dist/web/features/speech.d.ts.map +1 -0
  300. package/dist/web/features/vault.d.ts +62 -0
  301. package/dist/web/features/vault.d.ts.map +1 -0
  302. package/dist/web/features/vm.d.ts +48 -0
  303. package/dist/web/features/vm.d.ts.map +1 -0
  304. package/dist/web/features/voice-recognition.d.ts +96 -0
  305. package/dist/web/features/voice-recognition.d.ts.map +1 -0
  306. package/dist/web/shims/isomorphic-vm.d.ts +22 -0
  307. package/dist/web/shims/isomorphic-vm.d.ts.map +1 -0
  308. package/docs/CLI.md +335 -0
  309. package/docs/CNAME +1 -0
  310. package/docs/README.md +60 -0
  311. package/docs/TABLE-OF-CONTENTS.md +183 -0
  312. package/docs/apis/clients/elevenlabs.md +308 -0
  313. package/docs/apis/clients/graph.md +107 -0
  314. package/docs/apis/clients/openai.md +429 -0
  315. package/docs/apis/clients/rest.md +161 -0
  316. package/docs/apis/clients/websocket.md +174 -0
  317. package/docs/apis/features/agi/assistant.md +625 -0
  318. package/docs/apis/features/agi/assistants-manager.md +282 -0
  319. package/docs/apis/features/agi/auto-assistant.md +279 -0
  320. package/docs/apis/features/agi/browser-use.md +802 -0
  321. package/docs/apis/features/agi/claude-code.md +884 -0
  322. package/docs/apis/features/agi/conversation-history.md +364 -0
  323. package/docs/apis/features/agi/conversation.md +548 -0
  324. package/docs/apis/features/agi/docs-reader.md +99 -0
  325. package/docs/apis/features/agi/file-tools.md +163 -0
  326. package/docs/apis/features/agi/luca-coder.md +407 -0
  327. package/docs/apis/features/agi/openai-codex.md +396 -0
  328. package/docs/apis/features/agi/openapi.md +138 -0
  329. package/docs/apis/features/agi/semantic-search.md +387 -0
  330. package/docs/apis/features/agi/skills-library.md +239 -0
  331. package/docs/apis/features/node/container-link.md +192 -0
  332. package/docs/apis/features/node/content-db.md +450 -0
  333. package/docs/apis/features/node/disk-cache.md +379 -0
  334. package/docs/apis/features/node/dns.md +652 -0
  335. package/docs/apis/features/node/docker.md +706 -0
  336. package/docs/apis/features/node/downloader.md +81 -0
  337. package/docs/apis/features/node/esbuild.md +60 -0
  338. package/docs/apis/features/node/file-manager.md +191 -0
  339. package/docs/apis/features/node/fs.md +1217 -0
  340. package/docs/apis/features/node/git.md +371 -0
  341. package/docs/apis/features/node/google-auth.md +193 -0
  342. package/docs/apis/features/node/google-calendar.md +202 -0
  343. package/docs/apis/features/node/google-docs.md +173 -0
  344. package/docs/apis/features/node/google-drive.md +246 -0
  345. package/docs/apis/features/node/google-mail.md +214 -0
  346. package/docs/apis/features/node/google-sheets.md +194 -0
  347. package/docs/apis/features/node/grep.md +292 -0
  348. package/docs/apis/features/node/helpers.md +164 -0
  349. package/docs/apis/features/node/ink.md +334 -0
  350. package/docs/apis/features/node/ipc-socket.md +249 -0
  351. package/docs/apis/features/node/json-tree.md +86 -0
  352. package/docs/apis/features/node/networking.md +316 -0
  353. package/docs/apis/features/node/nlp.md +133 -0
  354. package/docs/apis/features/node/opener.md +97 -0
  355. package/docs/apis/features/node/os.md +146 -0
  356. package/docs/apis/features/node/package-finder.md +392 -0
  357. package/docs/apis/features/node/postgres.md +234 -0
  358. package/docs/apis/features/node/proc.md +399 -0
  359. package/docs/apis/features/node/process-manager.md +305 -0
  360. package/docs/apis/features/node/python.md +604 -0
  361. package/docs/apis/features/node/redis.md +380 -0
  362. package/docs/apis/features/node/repl.md +88 -0
  363. package/docs/apis/features/node/runpod.md +674 -0
  364. package/docs/apis/features/node/secure-shell.md +176 -0
  365. package/docs/apis/features/node/semantic-search.md +408 -0
  366. package/docs/apis/features/node/sqlite.md +233 -0
  367. package/docs/apis/features/node/telegram.md +279 -0
  368. package/docs/apis/features/node/transpiler.md +74 -0
  369. package/docs/apis/features/node/tts.md +133 -0
  370. package/docs/apis/features/node/ui.md +701 -0
  371. package/docs/apis/features/node/vault.md +59 -0
  372. package/docs/apis/features/node/vm.md +75 -0
  373. package/docs/apis/features/node/yaml-tree.md +85 -0
  374. package/docs/apis/features/node/yaml.md +176 -0
  375. package/docs/apis/features/web/asset-loader.md +59 -0
  376. package/docs/apis/features/web/container-link.md +192 -0
  377. package/docs/apis/features/web/esbuild.md +54 -0
  378. package/docs/apis/features/web/helpers.md +164 -0
  379. package/docs/apis/features/web/network.md +44 -0
  380. package/docs/apis/features/web/speech.md +69 -0
  381. package/docs/apis/features/web/vault.md +59 -0
  382. package/docs/apis/features/web/vm.md +75 -0
  383. package/docs/apis/features/web/voice.md +84 -0
  384. package/docs/apis/servers/express.md +171 -0
  385. package/docs/apis/servers/mcp.md +238 -0
  386. package/docs/apis/servers/websocket.md +170 -0
  387. package/docs/bootstrap/CLAUDE.md +101 -0
  388. package/docs/bootstrap/SKILL.md +341 -0
  389. package/docs/bootstrap/templates/about-command.ts +41 -0
  390. package/docs/bootstrap/templates/docs-models.ts +22 -0
  391. package/docs/bootstrap/templates/docs-readme.md +43 -0
  392. package/docs/bootstrap/templates/example-feature.ts +53 -0
  393. package/docs/bootstrap/templates/health-endpoint.ts +15 -0
  394. package/docs/bootstrap/templates/luca-cli.ts +30 -0
  395. package/docs/bootstrap/templates/runme.md +54 -0
  396. package/docs/challenges/caching-proxy.md +16 -0
  397. package/docs/challenges/content-db-round-trip.md +14 -0
  398. package/docs/challenges/custom-command.md +9 -0
  399. package/docs/challenges/file-watcher-pipeline.md +11 -0
  400. package/docs/challenges/grep-audit-report.md +15 -0
  401. package/docs/challenges/multi-feature-dashboard.md +14 -0
  402. package/docs/challenges/process-orchestrator.md +17 -0
  403. package/docs/challenges/rest-api-server-with-client.md +12 -0
  404. package/docs/challenges/script-runner-with-vm.md +11 -0
  405. package/docs/challenges/simple-rest-api.md +15 -0
  406. package/docs/challenges/websocket-serve-and-client.md +11 -0
  407. package/docs/challenges/yaml-config-system.md +14 -0
  408. package/docs/command-system-overhaul.md +94 -0
  409. package/docs/documentation-audit.md +134 -0
  410. package/docs/examples/assistant/CORE.md +18 -0
  411. package/docs/examples/assistant/hooks.ts +3 -0
  412. package/docs/examples/assistant/tools.ts +10 -0
  413. package/docs/examples/assistant-hooks-reference.ts +171 -0
  414. package/docs/examples/assistant-with-process-manager.md +84 -0
  415. package/docs/examples/content-db.md +77 -0
  416. package/docs/examples/disk-cache.md +83 -0
  417. package/docs/examples/docker.md +101 -0
  418. package/docs/examples/downloader.md +70 -0
  419. package/docs/examples/entity.md +124 -0
  420. package/docs/examples/esbuild.md +80 -0
  421. package/docs/examples/feature-as-tool-provider.md +143 -0
  422. package/docs/examples/file-manager.md +82 -0
  423. package/docs/examples/fs.md +83 -0
  424. package/docs/examples/git.md +85 -0
  425. package/docs/examples/google-auth.md +88 -0
  426. package/docs/examples/google-calendar.md +94 -0
  427. package/docs/examples/google-docs.md +82 -0
  428. package/docs/examples/google-drive.md +96 -0
  429. package/docs/examples/google-sheets.md +95 -0
  430. package/docs/examples/grep.md +85 -0
  431. package/docs/examples/ink-blocks.md +75 -0
  432. package/docs/examples/ink-renderer.md +41 -0
  433. package/docs/examples/ink.md +103 -0
  434. package/docs/examples/ipc-socket.md +103 -0
  435. package/docs/examples/json-tree.md +91 -0
  436. package/docs/examples/networking.md +58 -0
  437. package/docs/examples/nlp.md +91 -0
  438. package/docs/examples/opener.md +78 -0
  439. package/docs/examples/os.md +72 -0
  440. package/docs/examples/package-finder.md +89 -0
  441. package/docs/examples/postgres.md +91 -0
  442. package/docs/examples/proc.md +81 -0
  443. package/docs/examples/process-manager.md +79 -0
  444. package/docs/examples/python.md +132 -0
  445. package/docs/examples/repl.md +93 -0
  446. package/docs/examples/runpod.md +119 -0
  447. package/docs/examples/secure-shell.md +92 -0
  448. package/docs/examples/sqlite.md +86 -0
  449. package/docs/examples/structured-output-with-assistants.md +144 -0
  450. package/docs/examples/telegram.md +77 -0
  451. package/docs/examples/tts.md +86 -0
  452. package/docs/examples/ui.md +80 -0
  453. package/docs/examples/vault.md +70 -0
  454. package/docs/examples/vm.md +86 -0
  455. package/docs/examples/websocket-ask-and-reply-example.md +128 -0
  456. package/docs/examples/yaml-tree.md +93 -0
  457. package/docs/examples/yaml.md +104 -0
  458. package/docs/ideas/assistant-factory-pattern.md +142 -0
  459. package/docs/in-memory-fs.md +4 -0
  460. package/docs/introspection-audit.md +49 -0
  461. package/docs/introspection.md +164 -0
  462. package/docs/mcp/readme.md +162 -0
  463. package/docs/models.ts +41 -0
  464. package/docs/philosophy.md +86 -0
  465. package/docs/principles.md +7 -0
  466. package/docs/prompts/audit-codebase-for-failures-to-use-the-container.md +34 -0
  467. package/docs/prompts/check-for-undocumented-features.md +27 -0
  468. package/docs/prompts/mcp-test-easy-command.md +27 -0
  469. package/docs/scaffolds/client.md +149 -0
  470. package/docs/scaffolds/command.md +120 -0
  471. package/docs/scaffolds/endpoint.md +171 -0
  472. package/docs/scaffolds/feature.md +158 -0
  473. package/docs/scaffolds/selector.md +91 -0
  474. package/docs/scaffolds/server.md +196 -0
  475. package/docs/selectors.md +115 -0
  476. package/docs/sessions/custom-command/attempt-log-2.md +195 -0
  477. package/docs/sessions/file-watcher-pipeline/attempt-log-1.md +728 -0
  478. package/docs/sessions/file-watcher-pipeline/attempt-log-2.md +555 -0
  479. package/docs/sessions/grep-audit-report/attempt-log-1.md +289 -0
  480. package/docs/sessions/multi-feature-dashboard/attempt-log-2.md +679 -0
  481. package/docs/sessions/rest-api-server-with-client/attempt-log-1.md +1 -0
  482. package/docs/sessions/rest-api-server-with-client/attempt-log-3.md +920 -0
  483. package/docs/sessions/simple-rest-api/attempt-log-1.md +593 -0
  484. package/docs/sessions/websocket-serve-and-client/attempt-log-2.md +995 -0
  485. package/docs/tutorials/00-bootstrap.md +166 -0
  486. package/docs/tutorials/01-getting-started.md +106 -0
  487. package/docs/tutorials/02-container.md +210 -0
  488. package/docs/tutorials/03-scripts.md +194 -0
  489. package/docs/tutorials/04-features-overview.md +196 -0
  490. package/docs/tutorials/05-state-and-events.md +171 -0
  491. package/docs/tutorials/06-servers.md +157 -0
  492. package/docs/tutorials/07-endpoints.md +198 -0
  493. package/docs/tutorials/08-commands.md +252 -0
  494. package/docs/tutorials/09-clients.md +162 -0
  495. package/docs/tutorials/10-creating-features.md +203 -0
  496. package/docs/tutorials/11-contentbase.md +191 -0
  497. package/docs/tutorials/12-assistants.md +215 -0
  498. package/docs/tutorials/13-introspection.md +157 -0
  499. package/docs/tutorials/14-type-system.md +174 -0
  500. package/docs/tutorials/15-project-patterns.md +222 -0
  501. package/docs/tutorials/16-google-features.md +534 -0
  502. package/docs/tutorials/17-tui-blocks.md +530 -0
  503. package/docs/tutorials/18-semantic-search.md +334 -0
  504. package/docs/tutorials/19-python-sessions.md +401 -0
  505. package/docs/tutorials/20-browser-esm.md +234 -0
  506. package/index.html +1430 -0
  507. package/index.ts +1 -0
  508. package/install.sh +84 -0
  509. package/luca.cli.ts +16 -0
  510. package/luca.console.ts +9 -0
  511. package/main.py +6 -0
  512. package/package.json +219 -66
  513. package/public/index.html +1430 -0
  514. package/public/slides-ai-native.html +902 -0
  515. package/public/slides-intro.html +974 -0
  516. package/pyproject.toml +7 -0
  517. package/scripts/build-web.ts +28 -0
  518. package/scripts/examples/ask-luca-expert.ts +42 -0
  519. package/scripts/examples/assistant-questions.ts +12 -0
  520. package/scripts/examples/excalidraw-expert.ts +75 -0
  521. package/scripts/examples/expert-chat.ts +0 -0
  522. package/scripts/examples/file-manager.ts +14 -0
  523. package/scripts/examples/ideas.ts +12 -0
  524. package/scripts/examples/interactive-chat.ts +20 -0
  525. package/scripts/examples/openai-tool-calls.ts +113 -0
  526. package/scripts/examples/opening-a-web-browser.ts +5 -0
  527. package/scripts/examples/telegram-bot.ts +79 -0
  528. package/scripts/examples/using-assistant-with-mcp.ts +555 -0
  529. package/scripts/examples/using-claude-code.ts +10 -0
  530. package/scripts/examples/using-contentdb.ts +35 -0
  531. package/scripts/examples/using-conversations.ts +35 -0
  532. package/scripts/examples/using-disk-cache.ts +10 -0
  533. package/scripts/examples/using-docker-shell.ts +75 -0
  534. package/scripts/examples/using-elevenlabs.ts +25 -0
  535. package/scripts/examples/using-google-calendar.ts +57 -0
  536. package/scripts/examples/using-google-docs.ts +74 -0
  537. package/scripts/examples/using-google-drive.ts +74 -0
  538. package/scripts/examples/using-google-sheets.ts +89 -0
  539. package/scripts/examples/using-nlp.ts +55 -0
  540. package/scripts/examples/using-ollama.ts +11 -0
  541. package/scripts/examples/using-postgres.ts +55 -0
  542. package/scripts/examples/using-runpod.ts +32 -0
  543. package/scripts/examples/using-tts.ts +40 -0
  544. package/scripts/scaffold.ts +391 -0
  545. package/scripts/scratch.ts +15 -0
  546. package/scripts/stamp-build.sh +12 -0
  547. package/scripts/test-assistant-hooks.ts +13 -0
  548. package/scripts/test-docs-reader.ts +10 -0
  549. package/scripts/test-linux-binary.sh +80 -0
  550. package/scripts/update-introspection-data.ts +58 -0
  551. package/src/agi/README.md +14 -0
  552. package/src/agi/container.server.ts +152 -0
  553. package/src/agi/endpoints/ask.ts +60 -0
  554. package/src/agi/endpoints/conversations/[id].ts +45 -0
  555. package/src/agi/endpoints/conversations.ts +31 -0
  556. package/src/agi/endpoints/experts.ts +37 -0
  557. package/src/agi/feature.ts +13 -0
  558. package/src/agi/features/agent-memory.ts +694 -0
  559. package/src/agi/features/assistant.ts +1624 -0
  560. package/src/agi/features/assistants-manager.ts +418 -0
  561. package/src/agi/features/autonomous-assistant.ts +431 -0
  562. package/src/agi/features/browser-use.ts +653 -0
  563. package/src/agi/features/claude-code.ts +1538 -0
  564. package/src/agi/features/coding-tools.ts +175 -0
  565. package/src/agi/features/conversation-history.ts +495 -0
  566. package/src/agi/features/conversation.ts +1323 -0
  567. package/src/agi/features/docs-reader.ts +167 -0
  568. package/src/agi/features/file-tools.ts +293 -0
  569. package/src/agi/features/luca-coder.ts +639 -0
  570. package/src/agi/features/openai-codex.ts +651 -0
  571. package/src/agi/features/openapi.ts +445 -0
  572. package/src/agi/features/skills-library.ts +478 -0
  573. package/src/agi/index.ts +6 -0
  574. package/src/agi/lib/interceptor-chain.ts +89 -0
  575. package/src/agi/lib/token-counter.ts +122 -0
  576. package/src/bootstrap/generated.ts +9792 -0
  577. package/src/browser.ts +25 -0
  578. package/src/bus.ts +122 -0
  579. package/src/cli/build-info.ts +4 -0
  580. package/src/cli/cli.ts +355 -0
  581. package/src/client.ts +170 -0
  582. package/src/clients/civitai/index.ts +537 -0
  583. package/src/clients/client-template.ts +41 -0
  584. package/src/clients/comfyui/index.ts +604 -0
  585. package/src/clients/elevenlabs/index.ts +317 -0
  586. package/src/clients/graph.ts +87 -0
  587. package/src/clients/openai/index.ts +456 -0
  588. package/src/clients/rest.ts +207 -0
  589. package/src/clients/supabase/index.ts +357 -0
  590. package/src/clients/voicebox/index.ts +300 -0
  591. package/src/clients/websocket.ts +251 -0
  592. package/src/command.ts +505 -0
  593. package/src/commands/bootstrap.ts +244 -0
  594. package/src/commands/chat.ts +308 -0
  595. package/src/commands/code.ts +371 -0
  596. package/src/commands/console.ts +189 -0
  597. package/src/commands/describe.ts +243 -0
  598. package/src/commands/eval.ts +121 -0
  599. package/src/commands/help.ts +240 -0
  600. package/src/commands/index.ts +19 -0
  601. package/src/commands/introspect.ts +218 -0
  602. package/src/commands/mcp.ts +64 -0
  603. package/src/commands/prompt.ts +982 -0
  604. package/src/commands/run.ts +278 -0
  605. package/src/commands/sandbox-mcp.ts +343 -0
  606. package/src/commands/save-api-docs.ts +51 -0
  607. package/src/commands/scaffold.ts +225 -0
  608. package/src/commands/select.ts +99 -0
  609. package/src/commands/serve.ts +208 -0
  610. package/src/container-describer.ts +1084 -0
  611. package/src/container.ts +1186 -0
  612. package/src/endpoint.ts +365 -0
  613. package/src/entity.ts +173 -0
  614. package/src/feature.ts +118 -0
  615. package/src/graft.ts +181 -0
  616. package/src/hash-object.ts +97 -0
  617. package/src/helper.ts +849 -0
  618. package/src/introspection/generated.agi.ts +40208 -0
  619. package/src/introspection/generated.node.ts +28686 -0
  620. package/src/introspection/generated.web.ts +2251 -0
  621. package/src/introspection/index.ts +296 -0
  622. package/src/introspection/scan.ts +1131 -0
  623. package/src/node/container.ts +409 -0
  624. package/src/node/feature.ts +13 -0
  625. package/src/node/features/container-link.ts +559 -0
  626. package/src/node/features/content-db.ts +812 -0
  627. package/src/node/features/disk-cache.ts +388 -0
  628. package/src/node/features/dns.ts +669 -0
  629. package/src/node/features/docker.ts +921 -0
  630. package/src/node/features/downloader.ts +79 -0
  631. package/src/node/features/figlet-fonts.ts +600 -0
  632. package/src/node/features/file-manager.ts +535 -0
  633. package/src/node/features/fs.ts +1050 -0
  634. package/src/node/features/git.ts +592 -0
  635. package/src/node/features/google-auth.ts +504 -0
  636. package/src/node/features/google-calendar.ts +306 -0
  637. package/src/node/features/google-docs.ts +412 -0
  638. package/src/node/features/google-drive.ts +346 -0
  639. package/src/node/features/google-mail.ts +540 -0
  640. package/src/node/features/google-sheets.ts +286 -0
  641. package/src/node/features/grep.ts +427 -0
  642. package/src/node/features/helpers.ts +735 -0
  643. package/src/node/features/ink.ts +490 -0
  644. package/src/node/features/ipc-socket.ts +649 -0
  645. package/src/node/features/json-tree.ts +170 -0
  646. package/src/node/features/networking.ts +961 -0
  647. package/src/node/features/nlp.ts +212 -0
  648. package/src/node/features/opener.ts +180 -0
  649. package/src/node/features/os.ts +403 -0
  650. package/src/node/features/package-finder.ts +540 -0
  651. package/src/node/features/postgres.ts +289 -0
  652. package/src/node/features/proc.ts +503 -0
  653. package/src/node/features/process-manager.ts +844 -0
  654. package/src/node/features/python.ts +906 -0
  655. package/src/node/features/redis.ts +446 -0
  656. package/src/node/features/repl.ts +212 -0
  657. package/src/node/features/runpod.ts +811 -0
  658. package/src/node/features/secure-shell.ts +267 -0
  659. package/src/node/features/semantic-search.ts +935 -0
  660. package/src/node/features/sqlite.ts +289 -0
  661. package/src/node/features/telegram.ts +343 -0
  662. package/src/node/features/transpiler.ts +161 -0
  663. package/src/node/features/tts.ts +185 -0
  664. package/src/node/features/ui.ts +786 -0
  665. package/src/node/features/vault.ts +153 -0
  666. package/src/node/features/vm.ts +462 -0
  667. package/src/node/features/yaml-tree.ts +148 -0
  668. package/src/node/features/yaml.ts +133 -0
  669. package/src/node.ts +76 -0
  670. package/src/python/bridge.py +220 -0
  671. package/src/python/generated.ts +227 -0
  672. package/src/react/index.ts +175 -0
  673. package/src/registry.ts +210 -0
  674. package/src/scaffolds/generated.ts +1815 -0
  675. package/src/scaffolds/template.ts +46 -0
  676. package/src/schemas/base.ts +296 -0
  677. package/src/selector.ts +352 -0
  678. package/src/server.ts +229 -0
  679. package/src/servers/express.ts +283 -0
  680. package/src/servers/mcp.ts +802 -0
  681. package/src/servers/socket.ts +258 -0
  682. package/src/state.ts +101 -0
  683. package/src/web/clients/socket.ts +99 -0
  684. package/src/web/container.ts +75 -0
  685. package/src/web/extension.ts +30 -0
  686. package/src/web/feature.ts +12 -0
  687. package/src/web/features/asset-loader.ts +72 -0
  688. package/src/web/features/container-link.ts +382 -0
  689. package/src/web/features/esbuild.ts +93 -0
  690. package/src/web/features/helpers.ts +269 -0
  691. package/src/web/features/network.ts +85 -0
  692. package/src/web/features/speech.ts +104 -0
  693. package/src/web/features/vault.ts +207 -0
  694. package/src/web/features/vm.ts +85 -0
  695. package/src/web/features/voice-recognition.ts +161 -0
  696. package/src/web/shims/isomorphic-vm.ts +149 -0
  697. package/test/assistant-hooks.test.ts +306 -0
  698. package/test/assistant.test.ts +81 -0
  699. package/test/bus.test.ts +134 -0
  700. package/test/clients-servers.test.ts +217 -0
  701. package/test/command.test.ts +267 -0
  702. package/test/container-link.test.ts +274 -0
  703. package/test/conversation.test.ts +220 -0
  704. package/test/features.test.ts +160 -0
  705. package/test/fork-and-research.test.ts +450 -0
  706. package/test/integration.test.ts +787 -0
  707. package/test/interceptor-chain.test.ts +61 -0
  708. package/test/node-container.test.ts +121 -0
  709. package/test/python-session.test.ts +105 -0
  710. package/test/rate-limit.test.ts +272 -0
  711. package/test/semantic-search.test.ts +550 -0
  712. package/test/state.test.ts +121 -0
  713. package/test/vm-context.test.ts +146 -0
  714. package/test/vm-loadmodule.test.ts +213 -0
  715. package/test/websocket-ask.test.ts +101 -0
  716. package/test-integration/assistant.test.ts +138 -0
  717. package/test-integration/assistants-manager.test.ts +113 -0
  718. package/test-integration/claude-code.test.ts +98 -0
  719. package/test-integration/conversation-history.test.ts +205 -0
  720. package/test-integration/conversation.test.ts +137 -0
  721. package/test-integration/elevenlabs.test.ts +55 -0
  722. package/test-integration/google-services.test.ts +80 -0
  723. package/test-integration/helpers.ts +89 -0
  724. package/test-integration/memory.test.ts +204 -0
  725. package/test-integration/openai-codex.test.ts +93 -0
  726. package/test-integration/runpod.test.ts +58 -0
  727. package/test-integration/server-endpoints.test.ts +97 -0
  728. package/test-integration/telegram.test.ts +46 -0
  729. package/tsconfig.build.json +12 -0
  730. package/tsconfig.json +58 -0
  731. package/uv.lock +8 -0
  732. package/LICENSE +0 -21
  733. package/dist/cli/index.d.ts +0 -2
  734. package/dist/cli/index.js +0 -5
  735. package/dist/cli/run.d.ts +0 -12
  736. package/dist/cli/run.js +0 -42
  737. package/dist/config/consts.d.ts +0 -2
  738. package/dist/config/consts.js +0 -29
  739. package/dist/config/default.d.ts +0 -8
  740. package/dist/config/default.js +0 -15
  741. package/dist/config/initConfig.d.ts +0 -1
  742. package/dist/config/initConfig.js +0 -52
  743. package/dist/config/openConfig.d.ts +0 -2
  744. package/dist/config/openConfig.js +0 -24
  745. package/dist/config/runConfig.d.ts +0 -3
  746. package/dist/config/runConfig.js +0 -117
  747. package/dist/config/types.d.ts +0 -13
  748. package/dist/config/types.js +0 -2
  749. package/dist/index.d.ts +0 -1
  750. package/dist/index.js +0 -5
  751. package/dist/utils/common.d.ts +0 -2
  752. package/dist/utils/common.js +0 -52
  753. package/dist/utils/index.d.ts +0 -1
  754. package/dist/utils/index.js +0 -17
@@ -0,0 +1,884 @@
1
+ # ClaudeCode (features.claudeCode)
2
+
3
+ Claude Code CLI wrapper feature. Spawns and manages Claude Code sessions as subprocesses, streaming structured JSON events back through the container's event system. Sessions are long-lived: each call to `run()` spawns a `claude -p` process with `--output-format stream-json`, parses NDJSON from stdout line-by-line, and emits typed events on the feature's event bus.
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ container.feature('claudeCode', {
9
+ // Claude CLI session ID to resume by default
10
+ session,
11
+ // Path to the claude CLI binary
12
+ claudePath,
13
+ // Default model to use for sessions
14
+ model,
15
+ // Default working directory for sessions
16
+ cwd,
17
+ // Default system prompt prepended to all sessions
18
+ systemPrompt,
19
+ // Default append system prompt for all sessions
20
+ appendSystemPrompt,
21
+ // Default permission mode for Claude CLI sessions
22
+ permissionMode,
23
+ // Default allowed tools for sessions
24
+ allowedTools,
25
+ // Default disallowed tools for sessions
26
+ disallowedTools,
27
+ // Whether to stream partial messages token-by-token
28
+ streaming,
29
+ // MCP config file paths to pass to sessions
30
+ mcpConfig,
31
+ // MCP server configs keyed by name, injected into sessions via temp config file
32
+ mcpServers,
33
+ // Path to write a parseable NDJSON session log file
34
+ fileLogPath,
35
+ // Verbosity level for file logging. Defaults to "normal"
36
+ fileLogLevel,
37
+ // Default effort level for Claude reasoning
38
+ effort,
39
+ // Maximum cost budget in USD per session
40
+ maxBudgetUsd,
41
+ // Fallback model when the primary model is unavailable
42
+ fallbackModel,
43
+ // Default agent to use
44
+ agent,
45
+ // Disable session persistence across runs
46
+ noSessionPersistence,
47
+ // Default tools to make available
48
+ tools,
49
+ // Require strict MCP config validation
50
+ strictMcpConfig,
51
+ // Path to a custom settings file
52
+ settingsFile,
53
+ // Directories containing Claude Code skills to load into sessions
54
+ skillsFolders,
55
+ // Launch Claude Code with a Chrome browser tool
56
+ chrome,
57
+ })
58
+ ```
59
+
60
+ ## Options (Zod v4 schema)
61
+
62
+ | Property | Type | Description |
63
+ |----------|------|-------------|
64
+ | `session` | `string` | Claude CLI session ID to resume by default |
65
+ | `claudePath` | `string` | Path to the claude CLI binary |
66
+ | `model` | `string` | Default model to use for sessions |
67
+ | `cwd` | `string` | Default working directory for sessions |
68
+ | `systemPrompt` | `string` | Default system prompt prepended to all sessions |
69
+ | `appendSystemPrompt` | `string` | Default append system prompt for all sessions |
70
+ | `permissionMode` | `string` | Default permission mode for Claude CLI sessions |
71
+ | `allowedTools` | `array` | Default allowed tools for sessions |
72
+ | `disallowedTools` | `array` | Default disallowed tools for sessions |
73
+ | `streaming` | `boolean` | Whether to stream partial messages token-by-token |
74
+ | `mcpConfig` | `array` | MCP config file paths to pass to sessions |
75
+ | `mcpServers` | `object` | MCP server configs keyed by name, injected into sessions via temp config file |
76
+ | `fileLogPath` | `string` | Path to write a parseable NDJSON session log file |
77
+ | `fileLogLevel` | `string` | Verbosity level for file logging. Defaults to "normal" |
78
+ | `effort` | `string` | Default effort level for Claude reasoning |
79
+ | `maxBudgetUsd` | `number` | Maximum cost budget in USD per session |
80
+ | `fallbackModel` | `string` | Fallback model when the primary model is unavailable |
81
+ | `agent` | `string` | Default agent to use |
82
+ | `noSessionPersistence` | `boolean` | Disable session persistence across runs |
83
+ | `tools` | `array` | Default tools to make available |
84
+ | `strictMcpConfig` | `boolean` | Require strict MCP config validation |
85
+ | `settingsFile` | `string` | Path to a custom settings file |
86
+ | `skillsFolders` | `array` | Directories containing Claude Code skills to load into sessions |
87
+ | `chrome` | `boolean` | Launch Claude Code with a Chrome browser tool |
88
+
89
+ ## Methods
90
+
91
+ ### assertMinVersion
92
+
93
+ Assert that the detected CLI version meets a minimum major.minor requirement. Throws if the CLI version is below the specified minimum.
94
+
95
+ **Parameters:**
96
+
97
+ | Name | Type | Required | Description |
98
+ |------|------|----------|-------------|
99
+ | `major` | `number` | ✓ | Minimum major version |
100
+ | `minor` | `number` | ✓ | Minimum minor version |
101
+
102
+ **Returns:** `void`
103
+
104
+
105
+
106
+ ### checkAvailability
107
+
108
+ Check if the Claude CLI is available and capture its version.
109
+
110
+ **Returns:** `Promise<boolean>`
111
+
112
+ ```ts
113
+ const available = await cc.checkAvailability()
114
+ if (!available) throw new Error('Claude CLI not found')
115
+ ```
116
+
117
+
118
+
119
+ ### writeMcpConfig
120
+
121
+ Write an MCP server config map to a temp file suitable for `--mcp-config`.
122
+
123
+ **Parameters:**
124
+
125
+ | Name | Type | Required | Description |
126
+ |------|------|----------|-------------|
127
+ | `servers` | `Record<string, McpServerConfig>` | ✓ | Server configs keyed by name |
128
+
129
+ **Returns:** `Promise<string>`
130
+
131
+ ```ts
132
+ const configPath = await cc.writeMcpConfig({
133
+ 'my-api': { type: 'http', url: 'https://api.example.com/mcp' },
134
+ 'local-tool': { type: 'stdio', command: 'bun', args: ['run', 'server.ts'] }
135
+ })
136
+ ```
137
+
138
+
139
+
140
+ ### run
141
+
142
+ Run a prompt in a new Claude Code session. Spawns a subprocess, streams NDJSON events, and resolves when the session completes.
143
+
144
+ **Parameters:**
145
+
146
+ | Name | Type | Required | Description |
147
+ |------|------|----------|-------------|
148
+ | `prompt` | `string` | ✓ | The instruction/prompt to send |
149
+ | `options` | `RunOptions` | | Session configuration overrides |
150
+
151
+ `RunOptions` properties:
152
+
153
+ | Property | Type | Description |
154
+ |----------|------|-------------|
155
+ | `model` | `string` | Override model for this session. |
156
+ | `cwd` | `string` | Override working directory. |
157
+ | `systemPrompt` | `string` | System prompt for this session. |
158
+ | `appendSystemPrompt` | `string` | Append system prompt for this session. |
159
+ | `permissionMode` | `'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'dontAsk'` | Permission mode override. |
160
+ | `allowedTools` | `string[]` | Allowed tools override. |
161
+ | `disallowedTools` | `string[]` | Disallowed tools override. |
162
+ | `streaming` | `boolean` | Whether to stream partial messages. |
163
+ | `resumeSessionId` | `string` | Resume a previous session by ID. |
164
+ | `continue` | `boolean` | Continue the most recent conversation. |
165
+ | `addDirs` | `string[]` | Additional directories to allow tool access to. |
166
+ | `skillsFolders` | `string[]` | Directories containing Claude Code skills (SKILL.md files) to load into sessions. Merged with addDirs as --add-dir. |
167
+ | `mcpConfig` | `string[]` | MCP config file paths. |
168
+ | `mcpServers` | `Record<string, McpServerConfig>` | MCP servers to inject, keyed by server name. |
169
+ | `dangerouslySkipPermissions` | `boolean` | Skip all permission checks (only for sandboxed environments). |
170
+ | `extraArgs` | `string[]` | Additional arbitrary CLI flags. |
171
+ | `fileLogPath` | `string` | Path to write a parseable NDJSON session log file. Overrides feature-level fileLogPath. |
172
+ | `fileLogLevel` | `FileLogLevel` | Verbosity level for file logging. Overrides feature-level fileLogLevel. |
173
+ | `effort` | `'low' | 'medium' | 'high'` | Effort level for Claude reasoning. |
174
+ | `maxBudgetUsd` | `number` | Maximum cost budget in USD. |
175
+ | `fallbackModel` | `string` | Fallback model when the primary is unavailable. |
176
+ | `jsonSchema` | `string | object` | JSON schema for structured output validation. |
177
+ | `agent` | `string` | Agent to use for this session. |
178
+ | `sessionId` | `string` | Resume or fork a specific Claude session by ID. |
179
+ | `noSessionPersistence` | `boolean` | Disable session persistence for this run. |
180
+ | `forkSession` | `boolean` | Fork from an existing session instead of resuming. |
181
+ | `tools` | `string[]` | Tools to make available. |
182
+ | `strictMcpConfig` | `boolean` | Require strict MCP config validation. |
183
+ | `debug` | `string | boolean` | Enable debug output. Pass a string for specific debug channels, or true for all. |
184
+ | `debugFile` | `string` | Path to write debug output to a file. |
185
+ | `settingsFile` | `string` | Path to a custom settings file. |
186
+ | `chrome` | `boolean` | Launch Claude Code with a Chrome browser tool. |
187
+
188
+ **Returns:** `Promise<ClaudeSession>`
189
+
190
+ ```ts
191
+ // Simple one-shot
192
+ const session = await cc.run('What files are in this project?')
193
+ console.log(session.result)
194
+
195
+ // With options
196
+ const session = await cc.run('Refactor the auth module', {
197
+ model: 'opus',
198
+ cwd: '/path/to/project',
199
+ permissionMode: 'acceptEdits',
200
+ streaming: true
201
+ })
202
+
203
+ // With injected MCP servers
204
+ const session = await cc.run('Use the database tools to list tables', {
205
+ mcpServers: {
206
+ 'db-tools': { type: 'stdio', command: 'bun', args: ['run', 'db-mcp.ts'] },
207
+ 'api': { type: 'http', url: 'https://api.example.com/mcp' }
208
+ }
209
+ })
210
+
211
+ // Resume a previous session
212
+ const session = await cc.run('Now add tests for that', {
213
+ resumeSessionId: previousSession.sessionId
214
+ })
215
+ ```
216
+
217
+
218
+
219
+ ### start
220
+
221
+ Run a prompt without waiting for completion. Returns the session ID immediately so you can subscribe to events.
222
+
223
+ **Parameters:**
224
+
225
+ | Name | Type | Required | Description |
226
+ |------|------|----------|-------------|
227
+ | `prompt` | `string` | ✓ | The instruction/prompt to send |
228
+ | `options` | `RunOptions` | | Session configuration overrides |
229
+
230
+ `RunOptions` properties:
231
+
232
+ | Property | Type | Description |
233
+ |----------|------|-------------|
234
+ | `model` | `string` | Override model for this session. |
235
+ | `cwd` | `string` | Override working directory. |
236
+ | `systemPrompt` | `string` | System prompt for this session. |
237
+ | `appendSystemPrompt` | `string` | Append system prompt for this session. |
238
+ | `permissionMode` | `'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'dontAsk'` | Permission mode override. |
239
+ | `allowedTools` | `string[]` | Allowed tools override. |
240
+ | `disallowedTools` | `string[]` | Disallowed tools override. |
241
+ | `streaming` | `boolean` | Whether to stream partial messages. |
242
+ | `resumeSessionId` | `string` | Resume a previous session by ID. |
243
+ | `continue` | `boolean` | Continue the most recent conversation. |
244
+ | `addDirs` | `string[]` | Additional directories to allow tool access to. |
245
+ | `skillsFolders` | `string[]` | Directories containing Claude Code skills (SKILL.md files) to load into sessions. Merged with addDirs as --add-dir. |
246
+ | `mcpConfig` | `string[]` | MCP config file paths. |
247
+ | `mcpServers` | `Record<string, McpServerConfig>` | MCP servers to inject, keyed by server name. |
248
+ | `dangerouslySkipPermissions` | `boolean` | Skip all permission checks (only for sandboxed environments). |
249
+ | `extraArgs` | `string[]` | Additional arbitrary CLI flags. |
250
+ | `fileLogPath` | `string` | Path to write a parseable NDJSON session log file. Overrides feature-level fileLogPath. |
251
+ | `fileLogLevel` | `FileLogLevel` | Verbosity level for file logging. Overrides feature-level fileLogLevel. |
252
+ | `effort` | `'low' | 'medium' | 'high'` | Effort level for Claude reasoning. |
253
+ | `maxBudgetUsd` | `number` | Maximum cost budget in USD. |
254
+ | `fallbackModel` | `string` | Fallback model when the primary is unavailable. |
255
+ | `jsonSchema` | `string | object` | JSON schema for structured output validation. |
256
+ | `agent` | `string` | Agent to use for this session. |
257
+ | `sessionId` | `string` | Resume or fork a specific Claude session by ID. |
258
+ | `noSessionPersistence` | `boolean` | Disable session persistence for this run. |
259
+ | `forkSession` | `boolean` | Fork from an existing session instead of resuming. |
260
+ | `tools` | `string[]` | Tools to make available. |
261
+ | `strictMcpConfig` | `boolean` | Require strict MCP config validation. |
262
+ | `debug` | `string | boolean` | Enable debug output. Pass a string for specific debug channels, or true for all. |
263
+ | `debugFile` | `string` | Path to write debug output to a file. |
264
+ | `settingsFile` | `string` | Path to a custom settings file. |
265
+ | `chrome` | `boolean` | Launch Claude Code with a Chrome browser tool. |
266
+
267
+ **Returns:** `Promise<string>`
268
+
269
+ ```ts
270
+ const sessionId = cc.start('Build a REST API for users')
271
+
272
+ cc.on('session:delta', ({ sessionId: sid, text }) => {
273
+ if (sid === sessionId) process.stdout.write(text)
274
+ })
275
+
276
+ cc.on('session:result', ({ sessionId: sid, result }) => {
277
+ if (sid === sessionId) console.log('\nDone:', result)
278
+ })
279
+ ```
280
+
281
+
282
+
283
+ ### abort
284
+
285
+ Kill a running session's subprocess.
286
+
287
+ **Parameters:**
288
+
289
+ | Name | Type | Required | Description |
290
+ |------|------|----------|-------------|
291
+ | `sessionId` | `string` | ✓ | The local session ID to abort |
292
+
293
+ **Returns:** `void`
294
+
295
+ ```ts
296
+ const sessionId = cc.start('Do something long')
297
+ // ... later
298
+ cc.abort(sessionId)
299
+ ```
300
+
301
+
302
+
303
+ ### getSession
304
+
305
+ Get a session by its local ID.
306
+
307
+ **Parameters:**
308
+
309
+ | Name | Type | Required | Description |
310
+ |------|------|----------|-------------|
311
+ | `sessionId` | `string` | ✓ | The local session ID |
312
+
313
+ **Returns:** `ClaudeSession | undefined`
314
+
315
+ ```ts
316
+ const session = cc.getSession(sessionId)
317
+ if (session?.status === 'completed') {
318
+ console.log(session.result)
319
+ }
320
+ ```
321
+
322
+
323
+
324
+ ### waitForSession
325
+
326
+ Wait for a running session to complete.
327
+
328
+ **Parameters:**
329
+
330
+ | Name | Type | Required | Description |
331
+ |------|------|----------|-------------|
332
+ | `sessionId` | `string` | ✓ | The local session ID |
333
+
334
+ **Returns:** `Promise<ClaudeSession>`
335
+
336
+ ```ts
337
+ const id = cc.start('Build something cool')
338
+ const session = await cc.waitForSession(id)
339
+ console.log(session.result)
340
+ ```
341
+
342
+
343
+
344
+ ### usage
345
+
346
+ Get aggregated usage statistics across all sessions, or for a specific session.
347
+
348
+ **Parameters:**
349
+
350
+ | Name | Type | Required | Description |
351
+ |------|------|----------|-------------|
352
+ | `sessionId` | `string` | | Optional session ID to get usage for a single session |
353
+
354
+ **Returns:** `{ totalCostUsd: number; totalInputTokens: number; totalOutputTokens: number; totalCacheReadTokens: number; totalCacheCreationTokens: number; totalTurns: number; sessionCount: number; sessions: Array<{ id: string; costUsd: number; turns: number; inputTokens: number; outputTokens: number; status: string`
355
+
356
+ ```ts
357
+ const stats = cc.usage()
358
+ console.log(`Total cost: $${stats.totalCostUsd.toFixed(4)}`)
359
+ console.log(`Tokens: ${stats.totalInputTokens} in / ${stats.totalOutputTokens} out`)
360
+
361
+ // Single session
362
+ const sessionStats = cc.usage(sessionId)
363
+ ```
364
+
365
+
366
+
367
+ ### sessionHistoryToMarkdown
368
+
369
+ Export session history as a readable markdown document. Reads from a raw JSONL file (Claude CLI session log or this feature's NDJSON log) so it works independently of in-memory state. Can also accept a local session ID to export from in-memory state as a fallback.
370
+
371
+ **Parameters:**
372
+
373
+ | Name | Type | Required | Description |
374
+ |------|------|----------|-------------|
375
+ | `source` | `string` | | Path to a JSONL file, a local session ID, or omit for the most recent session |
376
+
377
+ **Returns:** `Promise<string>`
378
+
379
+ ```ts
380
+ // From a JSONL file (works without any prior state)
381
+ const md = await cc.sessionHistoryToMarkdown('/path/to/session.jsonl')
382
+
383
+ // From the most recent in-memory session
384
+ const md = await cc.sessionHistoryToMarkdown()
385
+
386
+ // From a specific local session ID
387
+ const md = await cc.sessionHistoryToMarkdown(localSessionId)
388
+ ```
389
+
390
+
391
+
392
+ ### listProcessSessions
393
+
394
+ List all Claude Code processes currently registered in ~/.claude/sessions/. Returns each session's metadata along with whether the process is still alive.
395
+
396
+ **Returns:** `Promise<Array<{
397
+ pid: number
398
+ sessionId: string
399
+ cwd: string
400
+ startedAt: number
401
+ kind: string
402
+ entrypoint: string
403
+ alive: boolean
404
+ }>>`
405
+
406
+ ```ts
407
+ const sessions = await cc.listProcessSessions()
408
+ for (const s of sessions) {
409
+ console.log(`[${s.alive ? 'LIVE' : 'dead'}] PID ${s.pid} in ${s.cwd}`)
410
+ }
411
+ ```
412
+
413
+
414
+
415
+ ### getProcessSession
416
+
417
+ Read a single process session by PID from ~/.claude/sessions/<pid>.json.
418
+
419
+ **Parameters:**
420
+
421
+ | Name | Type | Required | Description |
422
+ |------|------|----------|-------------|
423
+ | `pid` | `number` | ✓ | The process ID |
424
+
425
+ **Returns:** `Promise<{
426
+ pid: number
427
+ sessionId: string
428
+ cwd: string
429
+ startedAt: number
430
+ kind: string
431
+ entrypoint: string
432
+ } | null>`
433
+
434
+ ```ts
435
+ const session = await cc.getProcessSession(12345)
436
+ console.log(session?.cwd)
437
+ ```
438
+
439
+
440
+
441
+ ### getConversationHistory
442
+
443
+ Read the conversation history for a Claude Code session from its JSONL file in ~/.claude/projects/<encoded-cwd>/<sessionId>.jsonl. Returns an array of parsed message objects (user, assistant, tool_use, tool_result).
444
+
445
+ **Parameters:**
446
+
447
+ | Name | Type | Required | Description |
448
+ |------|------|----------|-------------|
449
+ | `sessionId` | `string` | ✓ | The Claude CLI session ID (from listProcessSessions or getProcessSession) |
450
+ | `cwd` | `string` | | The working directory of the session (used to locate the project folder) |
451
+
452
+ **Returns:** `Promise<any[]>`
453
+
454
+ ```ts
455
+ const sessions = await cc.listProcessSessions()
456
+ const s = sessions[0]
457
+ const history = await cc.getConversationHistory(s.sessionId, s.cwd)
458
+ console.log(history.length, 'turns')
459
+ ```
460
+
461
+
462
+
463
+ ### listSessionsForCwd
464
+
465
+ List all conversation sessions stored for a given working directory. Reads ~/.claude/projects/<encoded-cwd>/ and returns metadata for each .jsonl file.
466
+
467
+ **Parameters:**
468
+
469
+ | Name | Type | Required | Description |
470
+ |------|------|----------|-------------|
471
+ | `cwd` | `string` | | The working directory path to look up |
472
+
473
+ **Returns:** `Promise<Array<{
474
+ sessionId: string
475
+ filePath: string
476
+ messageCount: number
477
+ }>>`
478
+
479
+ ```ts
480
+ const sessions = await cc.listSessionsForCwd('/Users/me/my-project')
481
+ for (const s of sessions) {
482
+ console.log(s.sessionId, s.messageCount, 'messages')
483
+ }
484
+ ```
485
+
486
+
487
+
488
+ ### cleanupMcpTempFiles
489
+
490
+ Clean up any temp MCP config files created during sessions.
491
+
492
+ **Returns:** `Promise<void>`
493
+
494
+
495
+
496
+ ### enable
497
+
498
+ Initialize the feature.
499
+
500
+ **Parameters:**
501
+
502
+ | Name | Type | Required | Description |
503
+ |------|------|----------|-------------|
504
+ | `options` | `any` | | Enable options |
505
+
506
+ **Returns:** `Promise<this>`
507
+
508
+
509
+
510
+ ## Getters
511
+
512
+ | Property | Type | Description |
513
+ |----------|------|-------------|
514
+ | `claudePath` | `string` | |
515
+ | `parsedVersion` | `{ major: number; minor: number; patch: number } | undefined` | Parsed semver components from the detected CLI version, or undefined if not yet checked. |
516
+ | `sessionId` | `string | undefined` | The Claude CLI session ID of the most recently initialized session, or the session set via the `session` option. Useful for resuming later. |
517
+
518
+ ## Events (Zod v4 schema)
519
+
520
+ ### session:warning
521
+
522
+ Fired when the log reader encounters a warning
523
+
524
+ **Event Arguments:**
525
+
526
+ | Name | Type | Description |
527
+ |------|------|-------------|
528
+ | `sessionId` | `string` | |
529
+ | `message` | `string` | |
530
+
531
+
532
+
533
+ ### session:log-error
534
+
535
+ Fired when the log reader encounters an error
536
+
537
+ **Event Arguments:**
538
+
539
+ | Name | Type | Description |
540
+ |------|------|-------------|
541
+ | `sessionId` | `string` | |
542
+ | `error` | `any` | |
543
+
544
+
545
+
546
+ ### session:event
547
+
548
+ Fired for every parsed JSON event from the CLI stream
549
+
550
+ **Event Arguments:**
551
+
552
+ | Name | Type | Description |
553
+ |------|------|-------------|
554
+ | `sessionId` | `string` | |
555
+ | `event` | `any` | |
556
+
557
+
558
+
559
+ ### session:init
560
+
561
+ Fired when the CLI emits its init system event
562
+
563
+ **Event Arguments:**
564
+
565
+ | Name | Type | Description |
566
+ |------|------|-------------|
567
+ | `sessionId` | `string` | |
568
+ | `init` | `any` | |
569
+
570
+
571
+
572
+ ### session:delta
573
+
574
+ Fired for each text delta from an assistant message
575
+
576
+ **Event Arguments:**
577
+
578
+ | Name | Type | Description |
579
+ |------|------|-------------|
580
+ | `sessionId` | `string` | |
581
+ | `text` | `string` | |
582
+ | `role` | `string` | |
583
+
584
+
585
+
586
+ ### session:stream
587
+
588
+ Fired for stream_event type events from the CLI
589
+
590
+ **Event Arguments:**
591
+
592
+ | Name | Type | Description |
593
+ |------|------|-------------|
594
+ | `sessionId` | `string` | |
595
+ | `streamEvent` | `any` | |
596
+
597
+
598
+
599
+ ### session:message
600
+
601
+ Fired when a complete assistant message is received
602
+
603
+ **Event Arguments:**
604
+
605
+ | Name | Type | Description |
606
+ |------|------|-------------|
607
+ | `sessionId` | `string` | |
608
+ | `message` | `any` | |
609
+
610
+
611
+
612
+ ### session:result
613
+
614
+ Fired when a session completes with a final result
615
+
616
+ **Event Arguments:**
617
+
618
+ | Name | Type | Description |
619
+ |------|------|-------------|
620
+ | `sessionId` | `string` | |
621
+ | `result` | `string` | |
622
+
623
+
624
+
625
+ ### session:start
626
+
627
+ Fired when a new Claude Code session is spawned
628
+
629
+ **Event Arguments:**
630
+
631
+ | Name | Type | Description |
632
+ |------|------|-------------|
633
+ | `sessionId` | `string` | |
634
+ | `prompt` | `string` | |
635
+
636
+
637
+
638
+ ### session:error
639
+
640
+ Fired when a session encounters an error
641
+
642
+ **Event Arguments:**
643
+
644
+ | Name | Type | Description |
645
+ |------|------|-------------|
646
+ | `sessionId` | `string` | |
647
+ | `error` | `any` | |
648
+ | `exitCode` | `number` | |
649
+
650
+
651
+
652
+ ### session:parse-error
653
+
654
+ Fired when a JSON line from the CLI cannot be parsed
655
+
656
+ **Event Arguments:**
657
+
658
+ | Name | Type | Description |
659
+ |------|------|-------------|
660
+ | `sessionId` | `string` | |
661
+ | `line` | `string` | |
662
+
663
+
664
+
665
+ ### session:abort
666
+
667
+ Fired when a session is aborted by the user
668
+
669
+ **Event Arguments:**
670
+
671
+ | Name | Type | Description |
672
+ |------|------|-------------|
673
+ | `sessionId` | `string` | |
674
+
675
+
676
+
677
+ ## State (Zod v4 schema)
678
+
679
+ | Property | Type | Description |
680
+ |----------|------|-------------|
681
+ | `enabled` | `boolean` | Whether this feature is currently enabled |
682
+ | `sessions` | `object` | Map of session IDs to ClaudeSession objects |
683
+ | `activeSessions` | `array` | List of currently running session IDs |
684
+ | `claudeAvailable` | `boolean` | Whether the Claude CLI binary is available |
685
+ | `claudeVersion` | `string` | Detected Claude CLI version string |
686
+
687
+ ## Environment Variables
688
+
689
+ - `TMPDIR`
690
+
691
+ ## Examples
692
+
693
+ **features.claudeCode**
694
+
695
+ ```ts
696
+ const cc = container.feature('claudeCode')
697
+
698
+ // Listen for events
699
+ cc.on('session:delta', ({ sessionId, text }) => process.stdout.write(text))
700
+ cc.on('session:result', ({ sessionId, result }) => console.log('Done:', result))
701
+
702
+ // Run a prompt
703
+ const session = await cc.run('Explain the architecture of this project')
704
+ console.log(session.result)
705
+ ```
706
+
707
+
708
+
709
+ **checkAvailability**
710
+
711
+ ```ts
712
+ const available = await cc.checkAvailability()
713
+ if (!available) throw new Error('Claude CLI not found')
714
+ ```
715
+
716
+
717
+
718
+ **writeMcpConfig**
719
+
720
+ ```ts
721
+ const configPath = await cc.writeMcpConfig({
722
+ 'my-api': { type: 'http', url: 'https://api.example.com/mcp' },
723
+ 'local-tool': { type: 'stdio', command: 'bun', args: ['run', 'server.ts'] }
724
+ })
725
+ ```
726
+
727
+
728
+
729
+ **run**
730
+
731
+ ```ts
732
+ // Simple one-shot
733
+ const session = await cc.run('What files are in this project?')
734
+ console.log(session.result)
735
+
736
+ // With options
737
+ const session = await cc.run('Refactor the auth module', {
738
+ model: 'opus',
739
+ cwd: '/path/to/project',
740
+ permissionMode: 'acceptEdits',
741
+ streaming: true
742
+ })
743
+
744
+ // With injected MCP servers
745
+ const session = await cc.run('Use the database tools to list tables', {
746
+ mcpServers: {
747
+ 'db-tools': { type: 'stdio', command: 'bun', args: ['run', 'db-mcp.ts'] },
748
+ 'api': { type: 'http', url: 'https://api.example.com/mcp' }
749
+ }
750
+ })
751
+
752
+ // Resume a previous session
753
+ const session = await cc.run('Now add tests for that', {
754
+ resumeSessionId: previousSession.sessionId
755
+ })
756
+ ```
757
+
758
+
759
+
760
+ **start**
761
+
762
+ ```ts
763
+ const sessionId = cc.start('Build a REST API for users')
764
+
765
+ cc.on('session:delta', ({ sessionId: sid, text }) => {
766
+ if (sid === sessionId) process.stdout.write(text)
767
+ })
768
+
769
+ cc.on('session:result', ({ sessionId: sid, result }) => {
770
+ if (sid === sessionId) console.log('\nDone:', result)
771
+ })
772
+ ```
773
+
774
+
775
+
776
+ **abort**
777
+
778
+ ```ts
779
+ const sessionId = cc.start('Do something long')
780
+ // ... later
781
+ cc.abort(sessionId)
782
+ ```
783
+
784
+
785
+
786
+ **getSession**
787
+
788
+ ```ts
789
+ const session = cc.getSession(sessionId)
790
+ if (session?.status === 'completed') {
791
+ console.log(session.result)
792
+ }
793
+ ```
794
+
795
+
796
+
797
+ **waitForSession**
798
+
799
+ ```ts
800
+ const id = cc.start('Build something cool')
801
+ const session = await cc.waitForSession(id)
802
+ console.log(session.result)
803
+ ```
804
+
805
+
806
+
807
+ **usage**
808
+
809
+ ```ts
810
+ const stats = cc.usage()
811
+ console.log(`Total cost: $${stats.totalCostUsd.toFixed(4)}`)
812
+ console.log(`Tokens: ${stats.totalInputTokens} in / ${stats.totalOutputTokens} out`)
813
+
814
+ // Single session
815
+ const sessionStats = cc.usage(sessionId)
816
+ ```
817
+
818
+
819
+
820
+ **sessionHistoryToMarkdown**
821
+
822
+ ```ts
823
+ // From a JSONL file (works without any prior state)
824
+ const md = await cc.sessionHistoryToMarkdown('/path/to/session.jsonl')
825
+
826
+ // From the most recent in-memory session
827
+ const md = await cc.sessionHistoryToMarkdown()
828
+
829
+ // From a specific local session ID
830
+ const md = await cc.sessionHistoryToMarkdown(localSessionId)
831
+ ```
832
+
833
+
834
+
835
+ **listProcessSessions**
836
+
837
+ ```ts
838
+ const sessions = await cc.listProcessSessions()
839
+ for (const s of sessions) {
840
+ console.log(`[${s.alive ? 'LIVE' : 'dead'}] PID ${s.pid} in ${s.cwd}`)
841
+ }
842
+ ```
843
+
844
+
845
+
846
+ **getProcessSession**
847
+
848
+ ```ts
849
+ const session = await cc.getProcessSession(12345)
850
+ console.log(session?.cwd)
851
+ ```
852
+
853
+
854
+
855
+ **getConversationHistory**
856
+
857
+ ```ts
858
+ const sessions = await cc.listProcessSessions()
859
+ const s = sessions[0]
860
+ const history = await cc.getConversationHistory(s.sessionId, s.cwd)
861
+ console.log(history.length, 'turns')
862
+ ```
863
+
864
+
865
+
866
+ **listSessionsForCwd**
867
+
868
+ ```ts
869
+ const sessions = await cc.listSessionsForCwd('/Users/me/my-project')
870
+ for (const s of sessions) {
871
+ console.log(s.sessionId, s.messageCount, 'messages')
872
+ }
873
+ ```
874
+
875
+
876
+
877
+ **sessionId**
878
+
879
+ ```ts
880
+ const cc = container.feature('claudeCode')
881
+ await cc.run('Do something')
882
+ console.log(cc.sessionId) // the Claude CLI session ID
883
+ ```
884
+