@soederpop/luca 0.1.2 → 0.1.3

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 (366) hide show
  1. package/CLAUDE.md +2 -0
  2. package/assistants/codingAssistant/hooks.ts +1 -5
  3. package/assistants/inkbot/CORE.md +69 -0
  4. package/assistants/inkbot/hooks.ts +14 -0
  5. package/assistants/inkbot/tools.ts +47 -0
  6. package/commands/inkbot.ts +353 -0
  7. package/dist/agi/container.server.d.ts +63 -0
  8. package/dist/agi/container.server.d.ts.map +1 -0
  9. package/dist/agi/endpoints/ask.d.ts +20 -0
  10. package/dist/agi/endpoints/ask.d.ts.map +1 -0
  11. package/dist/agi/endpoints/conversations/[id].d.ts +27 -0
  12. package/dist/agi/endpoints/conversations/[id].d.ts.map +1 -0
  13. package/dist/agi/endpoints/conversations.d.ts +18 -0
  14. package/dist/agi/endpoints/conversations.d.ts.map +1 -0
  15. package/dist/agi/endpoints/experts.d.ts +8 -0
  16. package/dist/agi/endpoints/experts.d.ts.map +1 -0
  17. package/dist/agi/feature.d.ts +9 -0
  18. package/dist/agi/feature.d.ts.map +1 -0
  19. package/dist/agi/features/assistant.d.ts +509 -0
  20. package/dist/agi/features/assistant.d.ts.map +1 -0
  21. package/dist/agi/features/assistants-manager.d.ts +236 -0
  22. package/dist/agi/features/assistants-manager.d.ts.map +1 -0
  23. package/dist/agi/features/autonomous-assistant.d.ts +281 -0
  24. package/dist/agi/features/autonomous-assistant.d.ts.map +1 -0
  25. package/dist/agi/features/browser-use.d.ts +479 -0
  26. package/dist/agi/features/browser-use.d.ts.map +1 -0
  27. package/dist/agi/features/claude-code.d.ts +824 -0
  28. package/dist/agi/features/claude-code.d.ts.map +1 -0
  29. package/dist/agi/features/conversation-history.d.ts +245 -0
  30. package/dist/agi/features/conversation-history.d.ts.map +1 -0
  31. package/dist/agi/features/conversation.d.ts +464 -0
  32. package/dist/agi/features/conversation.d.ts.map +1 -0
  33. package/dist/agi/features/docs-reader.d.ts +72 -0
  34. package/dist/agi/features/docs-reader.d.ts.map +1 -0
  35. package/dist/agi/features/file-tools.d.ts +110 -0
  36. package/dist/agi/features/file-tools.d.ts.map +1 -0
  37. package/dist/agi/features/luca-coder.d.ts +323 -0
  38. package/dist/agi/features/luca-coder.d.ts.map +1 -0
  39. package/dist/agi/features/openai-codex.d.ts +381 -0
  40. package/dist/agi/features/openai-codex.d.ts.map +1 -0
  41. package/dist/agi/features/openapi.d.ts +200 -0
  42. package/dist/agi/features/openapi.d.ts.map +1 -0
  43. package/dist/agi/features/skills-library.d.ts +167 -0
  44. package/dist/agi/features/skills-library.d.ts.map +1 -0
  45. package/dist/agi/index.d.ts +5 -0
  46. package/dist/agi/index.d.ts.map +1 -0
  47. package/dist/agi/lib/interceptor-chain.d.ts +44 -0
  48. package/dist/agi/lib/interceptor-chain.d.ts.map +1 -0
  49. package/dist/agi/lib/token-counter.d.ts +13 -0
  50. package/dist/agi/lib/token-counter.d.ts.map +1 -0
  51. package/dist/bootstrap/generated.d.ts +5 -0
  52. package/dist/bootstrap/generated.d.ts.map +1 -0
  53. package/dist/browser.d.ts +12 -0
  54. package/dist/browser.d.ts.map +1 -0
  55. package/dist/bus.d.ts +29 -0
  56. package/dist/bus.d.ts.map +1 -0
  57. package/dist/cli/build-info.d.ts +4 -0
  58. package/dist/cli/build-info.d.ts.map +1 -0
  59. package/dist/cli/cli.d.ts +3 -0
  60. package/dist/cli/cli.d.ts.map +1 -0
  61. package/dist/client.d.ts +60 -0
  62. package/dist/client.d.ts.map +1 -0
  63. package/dist/clients/civitai/index.d.ts +472 -0
  64. package/dist/clients/civitai/index.d.ts.map +1 -0
  65. package/dist/clients/client-template.d.ts +30 -0
  66. package/dist/clients/client-template.d.ts.map +1 -0
  67. package/dist/clients/comfyui/index.d.ts +281 -0
  68. package/dist/clients/comfyui/index.d.ts.map +1 -0
  69. package/dist/clients/elevenlabs/index.d.ts +197 -0
  70. package/dist/clients/elevenlabs/index.d.ts.map +1 -0
  71. package/dist/clients/graph.d.ts +64 -0
  72. package/dist/clients/graph.d.ts.map +1 -0
  73. package/dist/clients/openai/index.d.ts +247 -0
  74. package/dist/clients/openai/index.d.ts.map +1 -0
  75. package/dist/clients/rest.d.ts +92 -0
  76. package/dist/clients/rest.d.ts.map +1 -0
  77. package/dist/clients/supabase/index.d.ts +176 -0
  78. package/dist/clients/supabase/index.d.ts.map +1 -0
  79. package/dist/clients/websocket.d.ts +127 -0
  80. package/dist/clients/websocket.d.ts.map +1 -0
  81. package/dist/command.d.ts +163 -0
  82. package/dist/command.d.ts.map +1 -0
  83. package/dist/commands/bootstrap.d.ts +20 -0
  84. package/dist/commands/bootstrap.d.ts.map +1 -0
  85. package/dist/commands/chat.d.ts +37 -0
  86. package/dist/commands/chat.d.ts.map +1 -0
  87. package/dist/commands/code.d.ts +28 -0
  88. package/dist/commands/code.d.ts.map +1 -0
  89. package/dist/commands/console.d.ts +22 -0
  90. package/dist/commands/console.d.ts.map +1 -0
  91. package/dist/commands/describe.d.ts +50 -0
  92. package/dist/commands/describe.d.ts.map +1 -0
  93. package/dist/commands/eval.d.ts +23 -0
  94. package/dist/commands/eval.d.ts.map +1 -0
  95. package/dist/commands/help.d.ts +25 -0
  96. package/dist/commands/help.d.ts.map +1 -0
  97. package/dist/commands/index.d.ts +18 -0
  98. package/dist/commands/index.d.ts.map +1 -0
  99. package/dist/commands/introspect.d.ts +24 -0
  100. package/dist/commands/introspect.d.ts.map +1 -0
  101. package/dist/commands/mcp.d.ts +35 -0
  102. package/dist/commands/mcp.d.ts.map +1 -0
  103. package/dist/commands/prompt.d.ts +38 -0
  104. package/dist/commands/prompt.d.ts.map +1 -0
  105. package/dist/commands/run.d.ts +24 -0
  106. package/dist/commands/run.d.ts.map +1 -0
  107. package/dist/commands/sandbox-mcp.d.ts +34 -0
  108. package/dist/commands/sandbox-mcp.d.ts.map +1 -0
  109. package/dist/commands/save-api-docs.d.ts +21 -0
  110. package/dist/commands/save-api-docs.d.ts.map +1 -0
  111. package/dist/commands/scaffold.d.ts +24 -0
  112. package/dist/commands/scaffold.d.ts.map +1 -0
  113. package/dist/commands/select.d.ts +22 -0
  114. package/dist/commands/select.d.ts.map +1 -0
  115. package/dist/commands/serve.d.ts +29 -0
  116. package/dist/commands/serve.d.ts.map +1 -0
  117. package/dist/container-describer.d.ts +144 -0
  118. package/dist/container-describer.d.ts.map +1 -0
  119. package/dist/container.d.ts +451 -0
  120. package/dist/container.d.ts.map +1 -0
  121. package/dist/endpoint.d.ts +113 -0
  122. package/dist/endpoint.d.ts.map +1 -0
  123. package/dist/feature.d.ts +47 -0
  124. package/dist/feature.d.ts.map +1 -0
  125. package/dist/graft.d.ts +29 -0
  126. package/dist/graft.d.ts.map +1 -0
  127. package/dist/hash-object.d.ts +8 -0
  128. package/dist/hash-object.d.ts.map +1 -0
  129. package/dist/helper.d.ts +209 -0
  130. package/dist/helper.d.ts.map +1 -0
  131. package/dist/introspection/generated.node.d.ts +44623 -0
  132. package/dist/introspection/generated.node.d.ts.map +1 -0
  133. package/dist/introspection/generated.web.d.ts +1412 -0
  134. package/dist/introspection/generated.web.d.ts.map +1 -0
  135. package/dist/introspection/index.d.ts +156 -0
  136. package/dist/introspection/index.d.ts.map +1 -0
  137. package/dist/introspection/scan.d.ts +147 -0
  138. package/dist/introspection/scan.d.ts.map +1 -0
  139. package/dist/node/container.d.ts +256 -0
  140. package/dist/node/container.d.ts.map +1 -0
  141. package/dist/node/feature.d.ts +9 -0
  142. package/dist/node/feature.d.ts.map +1 -0
  143. package/dist/node/features/container-link.d.ts +213 -0
  144. package/dist/node/features/container-link.d.ts.map +1 -0
  145. package/dist/node/features/content-db.d.ts +354 -0
  146. package/dist/node/features/content-db.d.ts.map +1 -0
  147. package/dist/node/features/disk-cache.d.ts +236 -0
  148. package/dist/node/features/disk-cache.d.ts.map +1 -0
  149. package/dist/node/features/dns.d.ts +511 -0
  150. package/dist/node/features/dns.d.ts.map +1 -0
  151. package/dist/node/features/docker.d.ts +485 -0
  152. package/dist/node/features/docker.d.ts.map +1 -0
  153. package/dist/node/features/downloader.d.ts +73 -0
  154. package/dist/node/features/downloader.d.ts.map +1 -0
  155. package/dist/node/features/figlet-fonts.d.ts +4 -0
  156. package/dist/node/features/figlet-fonts.d.ts.map +1 -0
  157. package/dist/node/features/file-manager.d.ts +177 -0
  158. package/dist/node/features/file-manager.d.ts.map +1 -0
  159. package/dist/node/features/fs.d.ts +635 -0
  160. package/dist/node/features/fs.d.ts.map +1 -0
  161. package/dist/node/features/git.d.ts +329 -0
  162. package/dist/node/features/git.d.ts.map +1 -0
  163. package/dist/node/features/google-auth.d.ts +200 -0
  164. package/dist/node/features/google-auth.d.ts.map +1 -0
  165. package/dist/node/features/google-calendar.d.ts +194 -0
  166. package/dist/node/features/google-calendar.d.ts.map +1 -0
  167. package/dist/node/features/google-docs.d.ts +138 -0
  168. package/dist/node/features/google-docs.d.ts.map +1 -0
  169. package/dist/node/features/google-drive.d.ts +202 -0
  170. package/dist/node/features/google-drive.d.ts.map +1 -0
  171. package/dist/node/features/google-mail.d.ts +221 -0
  172. package/dist/node/features/google-mail.d.ts.map +1 -0
  173. package/dist/node/features/google-sheets.d.ts +157 -0
  174. package/dist/node/features/google-sheets.d.ts.map +1 -0
  175. package/dist/node/features/grep.d.ts +207 -0
  176. package/dist/node/features/grep.d.ts.map +1 -0
  177. package/dist/node/features/helpers.d.ts +236 -0
  178. package/dist/node/features/helpers.d.ts.map +1 -0
  179. package/dist/node/features/ink.d.ts +332 -0
  180. package/dist/node/features/ink.d.ts.map +1 -0
  181. package/dist/node/features/ipc-socket.d.ts +298 -0
  182. package/dist/node/features/ipc-socket.d.ts.map +1 -0
  183. package/dist/node/features/json-tree.d.ts +140 -0
  184. package/dist/node/features/json-tree.d.ts.map +1 -0
  185. package/dist/node/features/networking.d.ts +373 -0
  186. package/dist/node/features/networking.d.ts.map +1 -0
  187. package/dist/node/features/nlp.d.ts +125 -0
  188. package/dist/node/features/nlp.d.ts.map +1 -0
  189. package/dist/node/features/opener.d.ts +93 -0
  190. package/dist/node/features/opener.d.ts.map +1 -0
  191. package/dist/node/features/os.d.ts +168 -0
  192. package/dist/node/features/os.d.ts.map +1 -0
  193. package/dist/node/features/package-finder.d.ts +419 -0
  194. package/dist/node/features/package-finder.d.ts.map +1 -0
  195. package/dist/node/features/postgres.d.ts +173 -0
  196. package/dist/node/features/postgres.d.ts.map +1 -0
  197. package/dist/node/features/proc.d.ts +285 -0
  198. package/dist/node/features/proc.d.ts.map +1 -0
  199. package/dist/node/features/process-manager.d.ts +427 -0
  200. package/dist/node/features/process-manager.d.ts.map +1 -0
  201. package/dist/node/features/python.d.ts +477 -0
  202. package/dist/node/features/python.d.ts.map +1 -0
  203. package/dist/node/features/redis.d.ts +247 -0
  204. package/dist/node/features/redis.d.ts.map +1 -0
  205. package/dist/node/features/repl.d.ts +84 -0
  206. package/dist/node/features/repl.d.ts.map +1 -0
  207. package/dist/node/features/runpod.d.ts +527 -0
  208. package/dist/node/features/runpod.d.ts.map +1 -0
  209. package/dist/node/features/secure-shell.d.ts +145 -0
  210. package/dist/node/features/secure-shell.d.ts.map +1 -0
  211. package/dist/node/features/semantic-search.d.ts +207 -0
  212. package/dist/node/features/semantic-search.d.ts.map +1 -0
  213. package/dist/node/features/sqlite.d.ts +180 -0
  214. package/dist/node/features/sqlite.d.ts.map +1 -0
  215. package/dist/node/features/telegram.d.ts +173 -0
  216. package/dist/node/features/telegram.d.ts.map +1 -0
  217. package/dist/node/features/transpiler.d.ts +51 -0
  218. package/dist/node/features/transpiler.d.ts.map +1 -0
  219. package/dist/node/features/tts.d.ts +108 -0
  220. package/dist/node/features/tts.d.ts.map +1 -0
  221. package/dist/node/features/ui.d.ts +562 -0
  222. package/dist/node/features/ui.d.ts.map +1 -0
  223. package/dist/node/features/vault.d.ts +90 -0
  224. package/dist/node/features/vault.d.ts.map +1 -0
  225. package/dist/node/features/vm.d.ts +285 -0
  226. package/dist/node/features/vm.d.ts.map +1 -0
  227. package/dist/node/features/yaml-tree.d.ts +118 -0
  228. package/dist/node/features/yaml-tree.d.ts.map +1 -0
  229. package/dist/node/features/yaml.d.ts +127 -0
  230. package/dist/node/features/yaml.d.ts.map +1 -0
  231. package/dist/node.d.ts +67 -0
  232. package/dist/node.d.ts.map +1 -0
  233. package/dist/python/generated.d.ts +2 -0
  234. package/dist/python/generated.d.ts.map +1 -0
  235. package/dist/react/index.d.ts +36 -0
  236. package/dist/react/index.d.ts.map +1 -0
  237. package/dist/registry.d.ts +97 -0
  238. package/dist/registry.d.ts.map +1 -0
  239. package/dist/scaffolds/generated.d.ts +13 -0
  240. package/dist/scaffolds/generated.d.ts.map +1 -0
  241. package/dist/scaffolds/template.d.ts +11 -0
  242. package/dist/scaffolds/template.d.ts.map +1 -0
  243. package/dist/schemas/base.d.ts +254 -0
  244. package/dist/schemas/base.d.ts.map +1 -0
  245. package/dist/selector.d.ts +130 -0
  246. package/dist/selector.d.ts.map +1 -0
  247. package/dist/server.d.ts +89 -0
  248. package/dist/server.d.ts.map +1 -0
  249. package/dist/servers/express.d.ts +104 -0
  250. package/dist/servers/express.d.ts.map +1 -0
  251. package/dist/servers/mcp.d.ts +201 -0
  252. package/dist/servers/mcp.d.ts.map +1 -0
  253. package/dist/servers/socket.d.ts +121 -0
  254. package/dist/servers/socket.d.ts.map +1 -0
  255. package/dist/state.d.ts +24 -0
  256. package/dist/state.d.ts.map +1 -0
  257. package/dist/web/clients/socket.d.ts +37 -0
  258. package/dist/web/clients/socket.d.ts.map +1 -0
  259. package/dist/web/container.d.ts +55 -0
  260. package/dist/web/container.d.ts.map +1 -0
  261. package/dist/web/extension.d.ts +4 -0
  262. package/dist/web/extension.d.ts.map +1 -0
  263. package/dist/web/feature.d.ts +8 -0
  264. package/dist/web/feature.d.ts.map +1 -0
  265. package/dist/web/features/asset-loader.d.ts +35 -0
  266. package/dist/web/features/asset-loader.d.ts.map +1 -0
  267. package/dist/web/features/container-link.d.ts +167 -0
  268. package/dist/web/features/container-link.d.ts.map +1 -0
  269. package/dist/web/features/esbuild.d.ts +51 -0
  270. package/dist/web/features/esbuild.d.ts.map +1 -0
  271. package/dist/web/features/helpers.d.ts +140 -0
  272. package/dist/web/features/helpers.d.ts.map +1 -0
  273. package/dist/web/features/network.d.ts +69 -0
  274. package/dist/web/features/network.d.ts.map +1 -0
  275. package/dist/web/features/speech.d.ts +71 -0
  276. package/dist/web/features/speech.d.ts.map +1 -0
  277. package/dist/web/features/vault.d.ts +62 -0
  278. package/dist/web/features/vault.d.ts.map +1 -0
  279. package/dist/web/features/vm.d.ts +48 -0
  280. package/dist/web/features/vm.d.ts.map +1 -0
  281. package/dist/web/features/voice-recognition.d.ts +96 -0
  282. package/dist/web/features/voice-recognition.d.ts.map +1 -0
  283. package/dist/web/shims/isomorphic-vm.d.ts +22 -0
  284. package/dist/web/shims/isomorphic-vm.d.ts.map +1 -0
  285. package/docs/apis/features/agi/assistant.md +1 -0
  286. package/docs/apis/features/agi/assistants-manager.md +62 -2
  287. package/docs/apis/features/agi/auto-assistant.md +11 -109
  288. package/docs/apis/features/agi/claude-code.md +138 -0
  289. package/docs/apis/features/agi/conversation.md +60 -31
  290. package/docs/apis/features/agi/luca-coder.md +407 -0
  291. package/docs/apis/features/agi/openapi.md +2 -2
  292. package/docs/apis/features/agi/skills-library.md +12 -0
  293. package/docs/apis/features/node/python.md +81 -11
  294. package/docs/apis/features/node/transpiler.md +74 -0
  295. package/docs/apis/features/web/esbuild.md +0 -6
  296. package/docs/apis/servers/mcp.md +2 -2
  297. package/docs/examples/entity.md +124 -0
  298. package/package.json +73 -21
  299. package/src/agi/feature.ts +13 -0
  300. package/src/agi/features/assistant.ts +36 -25
  301. package/src/agi/features/assistants-manager.ts +70 -5
  302. package/src/agi/features/autonomous-assistant.ts +1 -5
  303. package/src/agi/features/browser-use.ts +2 -2
  304. package/src/agi/features/claude-code.ts +165 -1
  305. package/src/agi/features/conversation-history.ts +2 -6
  306. package/src/agi/features/conversation.ts +95 -3
  307. package/src/agi/features/docs-reader.ts +2 -1
  308. package/src/agi/features/file-tools.ts +2 -2
  309. package/src/agi/features/luca-coder.ts +1 -5
  310. package/src/agi/features/openai-codex.ts +1 -1
  311. package/src/agi/features/openapi.ts +3 -3
  312. package/src/agi/features/skills-library.ts +87 -6
  313. package/src/agi/lib/interceptor-chain.ts +10 -0
  314. package/src/agi/lib/token-counter.ts +1 -1
  315. package/src/bootstrap/generated.ts +126 -1
  316. package/src/bus.ts +27 -5
  317. package/src/cli/build-info.ts +2 -2
  318. package/src/client.ts +2 -2
  319. package/src/clients/elevenlabs/index.ts +5 -0
  320. package/src/commands/bootstrap.ts +2 -1
  321. package/src/commands/chat.ts +1 -0
  322. package/src/commands/code.ts +4 -2
  323. package/src/commands/prompt.ts +34 -34
  324. package/src/commands/sandbox-mcp.ts +69 -163
  325. package/src/commands/save-api-docs.ts +10 -8
  326. package/src/commands/select.ts +8 -3
  327. package/src/container-describer.ts +70 -84
  328. package/src/container.ts +93 -3
  329. package/src/endpoint.ts +1 -1
  330. package/src/entity.ts +173 -0
  331. package/src/feature.ts +3 -3
  332. package/src/helper.ts +8 -4
  333. package/src/introspection/generated.agi.ts +1246 -798
  334. package/src/introspection/generated.node.ts +892 -798
  335. package/src/introspection/generated.web.ts +95 -3
  336. package/src/introspection/scan.ts +1 -1
  337. package/src/node/container.ts +1 -1
  338. package/src/node/features/content-db.ts +3 -3
  339. package/src/node/features/file-manager.ts +10 -9
  340. package/src/node/features/git.ts +5 -5
  341. package/src/node/features/helpers.ts +1 -1
  342. package/src/node/features/json-tree.ts +1 -1
  343. package/src/node/features/os.ts +3 -3
  344. package/src/node/features/package-finder.ts +1 -1
  345. package/src/node/features/process-manager.ts +1 -1
  346. package/src/node/features/python.ts +3 -3
  347. package/src/node/features/redis.ts +1 -1
  348. package/src/node/features/repl.ts +2 -2
  349. package/src/node/features/transpiler.ts +2 -2
  350. package/src/node/features/ui.ts +1 -1
  351. package/src/node/features/vm.ts +3 -3
  352. package/src/node/features/yaml-tree.ts +1 -1
  353. package/src/node.ts +1 -0
  354. package/src/python/generated.ts +1 -1
  355. package/src/scaffolds/generated.ts +1 -1
  356. package/src/selector.ts +74 -4
  357. package/src/server.ts +2 -2
  358. package/src/servers/mcp.ts +6 -6
  359. package/src/web/features/helpers.ts +1 -1
  360. package/src/web/features/network.ts +1 -0
  361. package/test/conversation.test.ts +220 -0
  362. package/tsconfig.build.json +12 -0
  363. package/tsconfig.json +1 -1
  364. package/scripts/examples/telegram-ink-ui.ts +0 -302
  365. package/scripts/examples/using-openai-codex.ts +0 -23
  366. package/scripts/examples/vm-loading-esm-modules.ts +0 -16
@@ -0,0 +1,427 @@
1
+ import { z } from 'zod';
2
+ import { Feature } from '../feature.js';
3
+ import { State } from '../../state.js';
4
+ import { Bus, type EventMap } from '../../bus.js';
5
+ /**
6
+ * A memory-efficient output buffer that keeps the first N lines (head)
7
+ * and the last M lines (tail), discarding everything in between.
8
+ */
9
+ declare class OutputBuffer {
10
+ private _headLimit;
11
+ private _tailLimit;
12
+ private _head;
13
+ private _tail;
14
+ private _totalLines;
15
+ private _partial;
16
+ private _headFull;
17
+ constructor(_headLimit?: number, _tailLimit?: number);
18
+ /** Append a chunk of output (may contain partial lines) */
19
+ append(chunk: string): void;
20
+ /** Flush any remaining partial line */
21
+ flush(): void;
22
+ get totalLines(): number;
23
+ /** Get the head lines (first N lines of output) */
24
+ get head(): string[];
25
+ /** Get the tail lines (last M lines of output) */
26
+ get tail(): string[];
27
+ /** Number of lines dropped between head and tail */
28
+ get droppedLines(): number;
29
+ /** Format the buffer for display */
30
+ toString(): string;
31
+ private _pushLine;
32
+ }
33
+ export declare const ProcessManagerStateSchema: z.ZodObject<{
34
+ enabled: z.ZodDefault<z.ZodBoolean>;
35
+ processes: z.ZodRecord<z.ZodString, z.ZodObject<{
36
+ id: z.ZodString;
37
+ tag: z.ZodOptional<z.ZodString>;
38
+ command: z.ZodString;
39
+ args: z.ZodArray<z.ZodString>;
40
+ pid: z.ZodOptional<z.ZodNumber>;
41
+ status: z.ZodEnum<{
42
+ running: "running";
43
+ exited: "exited";
44
+ crashed: "crashed";
45
+ killed: "killed";
46
+ }>;
47
+ exitCode: z.ZodOptional<z.ZodNumber>;
48
+ startedAt: z.ZodNumber;
49
+ endedAt: z.ZodOptional<z.ZodNumber>;
50
+ }, z.core.$strip>>;
51
+ totalSpawned: z.ZodDefault<z.ZodNumber>;
52
+ }, z.core.$loose>;
53
+ export type ProcessManagerState = z.infer<typeof ProcessManagerStateSchema>;
54
+ export declare const ProcessManagerOptionsSchema: z.ZodObject<{
55
+ name: z.ZodOptional<z.ZodString>;
56
+ _cacheKey: z.ZodOptional<z.ZodString>;
57
+ cached: z.ZodOptional<z.ZodBoolean>;
58
+ enable: z.ZodOptional<z.ZodBoolean>;
59
+ autoCleanup: z.ZodDefault<z.ZodBoolean>;
60
+ }, z.core.$strip>;
61
+ export type ProcessManagerOptions = z.infer<typeof ProcessManagerOptionsSchema>;
62
+ export declare const ProcessManagerEventsSchema: z.ZodObject<{
63
+ stateChange: z.ZodTuple<[z.ZodAny], null>;
64
+ enabled: z.ZodTuple<[], null>;
65
+ spawned: z.ZodTuple<[z.ZodString, z.ZodString], null>;
66
+ exited: z.ZodTuple<[z.ZodString, z.ZodNumber], null>;
67
+ crashed: z.ZodTuple<[z.ZodString, z.ZodNumber, z.ZodString], null>;
68
+ killed: z.ZodTuple<[z.ZodString], null>;
69
+ allStopped: z.ZodTuple<[], null>;
70
+ }, z.core.$strip>;
71
+ interface SpawnHandlerState {
72
+ id: string;
73
+ tag?: string;
74
+ command: string;
75
+ args: string[];
76
+ pid?: number;
77
+ status: 'running' | 'exited' | 'crashed' | 'killed';
78
+ exitCode?: number;
79
+ startedAt: number;
80
+ endedAt?: number;
81
+ }
82
+ interface SpawnHandlerEvents extends EventMap {
83
+ stdout: [data: string];
84
+ stderr: [data: string];
85
+ exit: [code: number];
86
+ crash: [code: number];
87
+ killed: [];
88
+ }
89
+ export interface SpawnOptions {
90
+ /** User-defined tag for later lookups via getByTag() */
91
+ tag?: string;
92
+ /** Working directory for the spawned process (defaults to container cwd) */
93
+ cwd?: string;
94
+ /** Additional environment variables merged with process.env */
95
+ env?: Record<string, string>;
96
+ /** stdin mode: 'pipe' to write to the process, 'inherit', or 'ignore' (default: 'ignore') */
97
+ stdin?: 'pipe' | 'inherit' | 'ignore' | null;
98
+ /** stdout mode: 'pipe' to capture output, 'inherit', or 'ignore' (default: 'pipe') */
99
+ stdout?: 'pipe' | 'inherit' | 'ignore' | null;
100
+ /** stderr mode: 'pipe' to capture errors, 'inherit', or 'ignore' (default: 'pipe') */
101
+ stderr?: 'pipe' | 'inherit' | 'ignore' | null;
102
+ }
103
+ /**
104
+ * A handle to a spawned long-running process.
105
+ *
106
+ * Provides observable state, events, and methods to interact with
107
+ * the running process. Returned immediately from `ProcessManager.spawn()`
108
+ * without blocking. Maintains a memory-efficient output buffer that keeps
109
+ * the first 20 lines and last 50 lines of stdout/stderr.
110
+ *
111
+ * @example
112
+ * ```ts
113
+ * const handler = pm.spawn('node', ['server.js'], { tag: 'api' })
114
+ * handler.on('stdout', (data) => console.log(data))
115
+ * handler.on('crash', (code) => console.error('crashed:', code))
116
+ * const exitCode = await handler.await()
117
+ * ```
118
+ */
119
+ export declare class SpawnHandler {
120
+ readonly state: State<SpawnHandlerState>;
121
+ readonly events: Bus<SpawnHandlerEvents>;
122
+ readonly stdout: OutputBuffer;
123
+ readonly stderr: OutputBuffer;
124
+ private _childProcess;
125
+ private _manager;
126
+ private _exitPromise;
127
+ private _exitResolve;
128
+ constructor(id: string, command: string, args: string[], manager: ProcessManager, options?: SpawnOptions);
129
+ /** The unique process identifier */
130
+ get id(): string;
131
+ /** The user-defined tag, if any */
132
+ get tag(): string | undefined;
133
+ /** The OS process ID */
134
+ get pid(): number | undefined;
135
+ /** Whether the process is still running */
136
+ get isRunning(): boolean;
137
+ /** Whether the process has finished (exited, crashed, or killed) */
138
+ get isDone(): boolean;
139
+ /** Current process lifecycle status */
140
+ get status(): "running" | "exited" | "crashed" | "killed";
141
+ /** Exit code after process ends */
142
+ get exitCode(): number | undefined;
143
+ /**
144
+ * Start the process using proc.spawnAndCapture. Called internally by `ProcessManager.spawn()`.
145
+ */
146
+ _start(spawnOptions?: SpawnOptions): void;
147
+ /**
148
+ * Kill the process.
149
+ *
150
+ * @param signal - Signal to send (default: SIGTERM)
151
+ */
152
+ kill(signal?: NodeJS.Signals | number): void;
153
+ /**
154
+ * Returns a promise that resolves with the exit code when the process finishes.
155
+ */
156
+ await(): Promise<number>;
157
+ /**
158
+ * Write data to the process's stdin (requires `stdin: 'pipe'` in spawn options).
159
+ *
160
+ * @param data - String or Uint8Array to write
161
+ */
162
+ write(data: string | Uint8Array): void;
163
+ /**
164
+ * Peek at the buffered output. Returns head (first 20 lines), tail (last 50 lines),
165
+ * and metadata about how much was dropped.
166
+ */
167
+ peek(stream?: 'stdout' | 'stderr'): {
168
+ head: string[];
169
+ tail: string[];
170
+ totalLines: number;
171
+ droppedLines: number;
172
+ };
173
+ /** Subscribe to handler events */
174
+ on<E extends string & keyof SpawnHandlerEvents>(event: E, listener: (...args: SpawnHandlerEvents[E]) => void): this;
175
+ /** Subscribe to a handler event once */
176
+ once<E extends string & keyof SpawnHandlerEvents>(event: E, listener: (...args: SpawnHandlerEvents[E]) => void): this;
177
+ /** Unsubscribe from a handler event */
178
+ off<E extends string & keyof SpawnHandlerEvents>(event: E, listener: (...args: SpawnHandlerEvents[E]) => void): this;
179
+ private _onExit;
180
+ }
181
+ /**
182
+ * Manages long-running child processes with tracking, events, and automatic cleanup.
183
+ *
184
+ * Unlike the `proc` feature whose spawn methods block until the child exits,
185
+ * ProcessManager returns a SpawnHandler immediately — a handle object with its own
186
+ * state, events, and lifecycle methods. The feature tracks all spawned processes,
187
+ * maintains observable state, and can automatically kill them on parent exit.
188
+ *
189
+ * Each handler maintains a memory-efficient output buffer: the first 20 lines (head)
190
+ * and last 50 lines (tail) of stdout/stderr are kept, everything in between is discarded.
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * const pm = container.feature('processManager', { enable: true })
195
+ *
196
+ * const server = pm.spawn('node', ['server.js'], { tag: 'api', cwd: '/app' })
197
+ * server.on('stdout', (data) => console.log('[api]', data))
198
+ * server.on('crash', (code) => console.error('API crashed:', code))
199
+ *
200
+ * // Peek at buffered output
201
+ * const { head, tail } = server.peek()
202
+ *
203
+ * // Kill one
204
+ * server.kill()
205
+ *
206
+ * // Kill all tracked processes
207
+ * pm.killAll()
208
+ *
209
+ * // List and lookup
210
+ * pm.list() // SpawnHandler[]
211
+ * pm.getByTag('api') // SpawnHandler | undefined
212
+ * ```
213
+ *
214
+ * @extends Feature
215
+ */
216
+ export declare class ProcessManager extends Feature {
217
+ static shortcut: "features.processManager";
218
+ static stateSchema: z.ZodObject<{
219
+ enabled: z.ZodDefault<z.ZodBoolean>;
220
+ processes: z.ZodRecord<z.ZodString, z.ZodObject<{
221
+ id: z.ZodString;
222
+ tag: z.ZodOptional<z.ZodString>;
223
+ command: z.ZodString;
224
+ args: z.ZodArray<z.ZodString>;
225
+ pid: z.ZodOptional<z.ZodNumber>;
226
+ status: z.ZodEnum<{
227
+ running: "running";
228
+ exited: "exited";
229
+ crashed: "crashed";
230
+ killed: "killed";
231
+ }>;
232
+ exitCode: z.ZodOptional<z.ZodNumber>;
233
+ startedAt: z.ZodNumber;
234
+ endedAt: z.ZodOptional<z.ZodNumber>;
235
+ }, z.core.$strip>>;
236
+ totalSpawned: z.ZodDefault<z.ZodNumber>;
237
+ }, z.core.$loose>;
238
+ static optionsSchema: z.ZodObject<{
239
+ name: z.ZodOptional<z.ZodString>;
240
+ _cacheKey: z.ZodOptional<z.ZodString>;
241
+ cached: z.ZodOptional<z.ZodBoolean>;
242
+ enable: z.ZodOptional<z.ZodBoolean>;
243
+ autoCleanup: z.ZodDefault<z.ZodBoolean>;
244
+ }, z.core.$strip>;
245
+ static eventsSchema: z.ZodObject<{
246
+ stateChange: z.ZodTuple<[z.ZodAny], null>;
247
+ enabled: z.ZodTuple<[], null>;
248
+ spawned: z.ZodTuple<[z.ZodString, z.ZodString], null>;
249
+ exited: z.ZodTuple<[z.ZodString, z.ZodNumber], null>;
250
+ crashed: z.ZodTuple<[z.ZodString, z.ZodNumber, z.ZodString], null>;
251
+ killed: z.ZodTuple<[z.ZodString], null>;
252
+ allStopped: z.ZodTuple<[], null>;
253
+ }, z.core.$strip>;
254
+ /** Tools that an assistant can use to spawn and manage processes. */
255
+ static tools: Record<string, {
256
+ schema: z.ZodType;
257
+ handler?: Function;
258
+ }>;
259
+ private _handlers;
260
+ private _cleanupRegistered;
261
+ private _cleanupHandlers;
262
+ /**
263
+ * Tool handler: spawn a long-running background process.
264
+ */
265
+ spawnProcess(args: {
266
+ command: string;
267
+ args?: string;
268
+ tag?: string;
269
+ cwd?: string;
270
+ }): Promise<{
271
+ id: string;
272
+ pid: number | undefined;
273
+ tag: string | undefined;
274
+ command: string;
275
+ status: string;
276
+ }>;
277
+ /**
278
+ * Tool handler: run a command to completion and return its output.
279
+ */
280
+ runCommand(args: {
281
+ command: string;
282
+ cwd?: string;
283
+ }): Promise<{
284
+ exitCode: number;
285
+ stdout: string;
286
+ stderr: string;
287
+ success: boolean;
288
+ }>;
289
+ /**
290
+ * Tool handler: list all tracked processes.
291
+ */
292
+ listProcesses(): Promise<{
293
+ processes: never[];
294
+ message: string;
295
+ } | {
296
+ processes: {
297
+ id: string;
298
+ tag: string | undefined;
299
+ pid: number | undefined;
300
+ command: string;
301
+ status: "running" | "exited" | "crashed" | "killed";
302
+ exitCode: number | undefined;
303
+ uptimeMs: number;
304
+ uptime: string;
305
+ outputLines: number;
306
+ errorLines: number;
307
+ recentOutput: string[];
308
+ }[];
309
+ message?: undefined;
310
+ }>;
311
+ /**
312
+ * Tool handler: peek at a process's buffered output.
313
+ */
314
+ getProcessOutput(args: {
315
+ id?: string;
316
+ tag?: string;
317
+ stream?: string;
318
+ }): Promise<{
319
+ error: string;
320
+ id?: undefined;
321
+ tag?: undefined;
322
+ status?: undefined;
323
+ stream?: undefined;
324
+ totalLines?: undefined;
325
+ droppedLines?: undefined;
326
+ head?: undefined;
327
+ tail?: undefined;
328
+ } | {
329
+ id: string;
330
+ tag: string | undefined;
331
+ status: "running" | "exited" | "crashed" | "killed";
332
+ stream: "stdout" | "stderr";
333
+ totalLines: number;
334
+ droppedLines: number;
335
+ head: string[];
336
+ tail: string[];
337
+ error?: undefined;
338
+ }>;
339
+ /**
340
+ * Tool handler: kill a process by ID or tag.
341
+ */
342
+ killProcess(args: {
343
+ id?: string;
344
+ tag?: string;
345
+ signal?: string;
346
+ }): Promise<{
347
+ error: string;
348
+ id?: undefined;
349
+ status?: undefined;
350
+ message?: undefined;
351
+ signal?: undefined;
352
+ } | {
353
+ id: string;
354
+ status: "running" | "exited" | "crashed" | "killed";
355
+ message: string;
356
+ error?: undefined;
357
+ signal?: undefined;
358
+ } | {
359
+ id: string;
360
+ status: "running" | "exited" | "crashed" | "killed";
361
+ signal: NodeJS.Signals;
362
+ message: string;
363
+ error?: undefined;
364
+ }>;
365
+ /**
366
+ * Spawn a long-running process and return a handle immediately.
367
+ *
368
+ * The returned SpawnHandler provides events for stdout/stderr streaming,
369
+ * exit/crash notifications, and methods to kill or await the process.
370
+ *
371
+ * @param command - The command to execute (e.g. 'node', 'bun', 'python')
372
+ * @param args - Arguments to pass to the command
373
+ * @param options - Spawn configuration
374
+ * @param options.tag - User-defined tag for later lookups via getByTag()
375
+ * @param options.cwd - Working directory (defaults to container cwd)
376
+ * @param options.env - Additional environment variables
377
+ * @param options.stdin - stdin mode: 'pipe', 'inherit', 'ignore' (default: 'ignore')
378
+ * @param options.stdout - stdout mode: 'pipe', 'inherit', 'ignore' (default: 'pipe')
379
+ * @param options.stderr - stderr mode: 'pipe', 'inherit', 'ignore' (default: 'pipe')
380
+ * @returns SpawnHandler — a non-blocking handle to the process
381
+ */
382
+ spawn(command: string, args?: string[], options?: SpawnOptions): SpawnHandler;
383
+ /**
384
+ * Get a SpawnHandler by its unique ID.
385
+ *
386
+ * @param id - The process ID returned by spawn
387
+ * @returns The SpawnHandler, or undefined if not found
388
+ */
389
+ get(id: string): SpawnHandler | undefined;
390
+ /**
391
+ * Find a SpawnHandler by its user-defined tag.
392
+ *
393
+ * @param tag - The tag passed to spawn()
394
+ * @returns The first matching SpawnHandler, or undefined
395
+ */
396
+ getByTag(tag: string): SpawnHandler | undefined;
397
+ /**
398
+ * List all tracked SpawnHandlers (running and finished).
399
+ *
400
+ * @returns Array of all SpawnHandlers
401
+ */
402
+ list(): SpawnHandler[];
403
+ /**
404
+ * Kill all running processes.
405
+ *
406
+ * @param signal - Signal to send (default: SIGTERM)
407
+ */
408
+ killAll(signal?: NodeJS.Signals | number): void;
409
+ /**
410
+ * Stop the process manager: kill all running processes and remove cleanup handlers.
411
+ */
412
+ stop(): Promise<void>;
413
+ /**
414
+ * Remove a finished handler from tracking.
415
+ *
416
+ * @param id - The process ID to remove
417
+ * @returns True if the handler was found and removed
418
+ */
419
+ remove(id: string): boolean;
420
+ enable(options?: any): Promise<this>;
421
+ /** Called by SpawnHandler when a process finishes. Updates feature-level state. */
422
+ _onHandlerDone(handler: SpawnHandler, status: 'exited' | 'crashed' | 'killed', exitCode?: number): void;
423
+ private _registerCleanup;
424
+ private _removeCleanup;
425
+ }
426
+ export default ProcessManager;
427
+ //# sourceMappingURL=process-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../../../src/node/features/process-manager.ts"],"names":[],"mappings":"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"}