luca 2.0.0 → 3.0.2

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 (532) hide show
  1. package/.github/workflows/release.yaml +170 -0
  2. package/AGENTS.md +99 -0
  3. package/CLAUDE.md +123 -0
  4. package/CNAME +1 -0
  5. package/README.md +275 -9
  6. package/RUNME.md +56 -0
  7. package/assistants/codingAssistant/ABOUT.md +5 -0
  8. package/assistants/codingAssistant/CORE.md +33 -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 +2667 -0
  20. package/bunfig.toml +3 -0
  21. package/commands/audit-docs.ts +740 -0
  22. package/commands/build-bootstrap.ts +117 -0
  23. package/commands/build-python-bridge.ts +42 -0
  24. package/commands/build-scaffolds.ts +175 -0
  25. package/commands/bundle-consumer-project.ts +521 -0
  26. package/commands/generate-api-docs.ts +114 -0
  27. package/commands/inkbot.ts +874 -0
  28. package/commands/release.ts +80 -0
  29. package/commands/try-all-challenges.ts +543 -0
  30. package/commands/try-challenge.ts +100 -0
  31. package/dist/agi/container.server.d.ts +63 -0
  32. package/dist/agi/container.server.d.ts.map +1 -0
  33. package/dist/agi/endpoints/ask.d.ts +20 -0
  34. package/dist/agi/endpoints/ask.d.ts.map +1 -0
  35. package/dist/agi/endpoints/conversations/[id].d.ts +27 -0
  36. package/dist/agi/endpoints/conversations/[id].d.ts.map +1 -0
  37. package/dist/agi/endpoints/conversations.d.ts +18 -0
  38. package/dist/agi/endpoints/conversations.d.ts.map +1 -0
  39. package/dist/agi/endpoints/experts.d.ts +8 -0
  40. package/dist/agi/endpoints/experts.d.ts.map +1 -0
  41. package/dist/agi/feature.d.ts +9 -0
  42. package/dist/agi/feature.d.ts.map +1 -0
  43. package/dist/agi/features/assistant.d.ts +509 -0
  44. package/dist/agi/features/assistant.d.ts.map +1 -0
  45. package/dist/agi/features/assistants-manager.d.ts +236 -0
  46. package/dist/agi/features/assistants-manager.d.ts.map +1 -0
  47. package/dist/agi/features/autonomous-assistant.d.ts +281 -0
  48. package/dist/agi/features/autonomous-assistant.d.ts.map +1 -0
  49. package/dist/agi/features/browser-use.d.ts +479 -0
  50. package/dist/agi/features/browser-use.d.ts.map +1 -0
  51. package/dist/agi/features/claude-code.d.ts +824 -0
  52. package/dist/agi/features/claude-code.d.ts.map +1 -0
  53. package/dist/agi/features/conversation-history.d.ts +245 -0
  54. package/dist/agi/features/conversation-history.d.ts.map +1 -0
  55. package/dist/agi/features/conversation.d.ts +464 -0
  56. package/dist/agi/features/conversation.d.ts.map +1 -0
  57. package/dist/agi/features/docs-reader.d.ts +72 -0
  58. package/dist/agi/features/docs-reader.d.ts.map +1 -0
  59. package/dist/agi/features/file-tools.d.ts +110 -0
  60. package/dist/agi/features/file-tools.d.ts.map +1 -0
  61. package/dist/agi/features/luca-coder.d.ts +323 -0
  62. package/dist/agi/features/luca-coder.d.ts.map +1 -0
  63. package/dist/agi/features/openai-codex.d.ts +381 -0
  64. package/dist/agi/features/openai-codex.d.ts.map +1 -0
  65. package/dist/agi/features/openapi.d.ts +200 -0
  66. package/dist/agi/features/openapi.d.ts.map +1 -0
  67. package/dist/agi/features/skills-library.d.ts +167 -0
  68. package/dist/agi/features/skills-library.d.ts.map +1 -0
  69. package/dist/agi/index.d.ts +5 -0
  70. package/dist/agi/index.d.ts.map +1 -0
  71. package/dist/agi/lib/interceptor-chain.d.ts +44 -0
  72. package/dist/agi/lib/interceptor-chain.d.ts.map +1 -0
  73. package/dist/agi/lib/token-counter.d.ts +13 -0
  74. package/dist/agi/lib/token-counter.d.ts.map +1 -0
  75. package/dist/bootstrap/generated.d.ts +5 -0
  76. package/dist/bootstrap/generated.d.ts.map +1 -0
  77. package/dist/browser.d.ts +12 -0
  78. package/dist/browser.d.ts.map +1 -0
  79. package/dist/bus.d.ts +29 -0
  80. package/dist/bus.d.ts.map +1 -0
  81. package/dist/cli/build-info.d.ts +4 -0
  82. package/dist/cli/build-info.d.ts.map +1 -0
  83. package/dist/cli/cli.d.ts +3 -12
  84. package/dist/cli/cli.d.ts.map +1 -0
  85. package/dist/client.d.ts +60 -0
  86. package/dist/client.d.ts.map +1 -0
  87. package/dist/clients/civitai/index.d.ts +472 -0
  88. package/dist/clients/civitai/index.d.ts.map +1 -0
  89. package/dist/clients/client-template.d.ts +30 -0
  90. package/dist/clients/client-template.d.ts.map +1 -0
  91. package/dist/clients/comfyui/index.d.ts +281 -0
  92. package/dist/clients/comfyui/index.d.ts.map +1 -0
  93. package/dist/clients/elevenlabs/index.d.ts +197 -0
  94. package/dist/clients/elevenlabs/index.d.ts.map +1 -0
  95. package/dist/clients/graph.d.ts +64 -0
  96. package/dist/clients/graph.d.ts.map +1 -0
  97. package/dist/clients/openai/index.d.ts +247 -0
  98. package/dist/clients/openai/index.d.ts.map +1 -0
  99. package/dist/clients/rest.d.ts +92 -0
  100. package/dist/clients/rest.d.ts.map +1 -0
  101. package/dist/clients/supabase/index.d.ts +176 -0
  102. package/dist/clients/supabase/index.d.ts.map +1 -0
  103. package/dist/clients/websocket.d.ts +127 -0
  104. package/dist/clients/websocket.d.ts.map +1 -0
  105. package/dist/command.d.ts +163 -0
  106. package/dist/command.d.ts.map +1 -0
  107. package/dist/commands/bootstrap.d.ts +20 -0
  108. package/dist/commands/bootstrap.d.ts.map +1 -0
  109. package/dist/commands/chat.d.ts +37 -0
  110. package/dist/commands/chat.d.ts.map +1 -0
  111. package/dist/commands/code.d.ts +28 -0
  112. package/dist/commands/code.d.ts.map +1 -0
  113. package/dist/commands/console.d.ts +22 -0
  114. package/dist/commands/console.d.ts.map +1 -0
  115. package/dist/commands/describe.d.ts +50 -0
  116. package/dist/commands/describe.d.ts.map +1 -0
  117. package/dist/commands/eval.d.ts +23 -0
  118. package/dist/commands/eval.d.ts.map +1 -0
  119. package/dist/commands/help.d.ts +25 -0
  120. package/dist/commands/help.d.ts.map +1 -0
  121. package/dist/commands/index.d.ts +18 -0
  122. package/dist/commands/index.d.ts.map +1 -0
  123. package/dist/commands/introspect.d.ts +24 -0
  124. package/dist/commands/introspect.d.ts.map +1 -0
  125. package/dist/commands/mcp.d.ts +35 -0
  126. package/dist/commands/mcp.d.ts.map +1 -0
  127. package/dist/commands/prompt.d.ts +38 -0
  128. package/dist/commands/prompt.d.ts.map +1 -0
  129. package/dist/commands/run.d.ts +24 -0
  130. package/dist/commands/run.d.ts.map +1 -0
  131. package/dist/commands/sandbox-mcp.d.ts +34 -0
  132. package/dist/commands/sandbox-mcp.d.ts.map +1 -0
  133. package/dist/commands/save-api-docs.d.ts +21 -0
  134. package/dist/commands/save-api-docs.d.ts.map +1 -0
  135. package/dist/commands/scaffold.d.ts +24 -0
  136. package/dist/commands/scaffold.d.ts.map +1 -0
  137. package/dist/commands/select.d.ts +22 -0
  138. package/dist/commands/select.d.ts.map +1 -0
  139. package/dist/commands/serve.d.ts +29 -0
  140. package/dist/commands/serve.d.ts.map +1 -0
  141. package/dist/container-describer.d.ts +144 -0
  142. package/dist/container-describer.d.ts.map +1 -0
  143. package/dist/container.d.ts +451 -0
  144. package/dist/container.d.ts.map +1 -0
  145. package/dist/endpoint.d.ts +113 -0
  146. package/dist/endpoint.d.ts.map +1 -0
  147. package/dist/feature.d.ts +47 -0
  148. package/dist/feature.d.ts.map +1 -0
  149. package/dist/graft.d.ts +29 -0
  150. package/dist/graft.d.ts.map +1 -0
  151. package/dist/hash-object.d.ts +8 -0
  152. package/dist/hash-object.d.ts.map +1 -0
  153. package/dist/helper.d.ts +209 -0
  154. package/dist/helper.d.ts.map +1 -0
  155. package/dist/introspection/generated.node.d.ts +44623 -0
  156. package/dist/introspection/generated.node.d.ts.map +1 -0
  157. package/dist/introspection/generated.web.d.ts +1412 -0
  158. package/dist/introspection/generated.web.d.ts.map +1 -0
  159. package/dist/introspection/index.d.ts +156 -0
  160. package/dist/introspection/index.d.ts.map +1 -0
  161. package/dist/introspection/scan.d.ts +147 -0
  162. package/dist/introspection/scan.d.ts.map +1 -0
  163. package/dist/node/container.d.ts +256 -0
  164. package/dist/node/container.d.ts.map +1 -0
  165. package/dist/node/feature.d.ts +9 -0
  166. package/dist/node/feature.d.ts.map +1 -0
  167. package/dist/node/features/container-link.d.ts +213 -0
  168. package/dist/node/features/container-link.d.ts.map +1 -0
  169. package/dist/node/features/content-db.d.ts +354 -0
  170. package/dist/node/features/content-db.d.ts.map +1 -0
  171. package/dist/node/features/disk-cache.d.ts +236 -0
  172. package/dist/node/features/disk-cache.d.ts.map +1 -0
  173. package/dist/node/features/dns.d.ts +511 -0
  174. package/dist/node/features/dns.d.ts.map +1 -0
  175. package/dist/node/features/docker.d.ts +485 -0
  176. package/dist/node/features/docker.d.ts.map +1 -0
  177. package/dist/node/features/downloader.d.ts +73 -0
  178. package/dist/node/features/downloader.d.ts.map +1 -0
  179. package/dist/node/features/figlet-fonts.d.ts +4 -0
  180. package/dist/node/features/figlet-fonts.d.ts.map +1 -0
  181. package/dist/node/features/file-manager.d.ts +177 -0
  182. package/dist/node/features/file-manager.d.ts.map +1 -0
  183. package/dist/node/features/fs.d.ts +635 -0
  184. package/dist/node/features/fs.d.ts.map +1 -0
  185. package/dist/node/features/git.d.ts +329 -0
  186. package/dist/node/features/git.d.ts.map +1 -0
  187. package/dist/node/features/google-auth.d.ts +200 -0
  188. package/dist/node/features/google-auth.d.ts.map +1 -0
  189. package/dist/node/features/google-calendar.d.ts +194 -0
  190. package/dist/node/features/google-calendar.d.ts.map +1 -0
  191. package/dist/node/features/google-docs.d.ts +138 -0
  192. package/dist/node/features/google-docs.d.ts.map +1 -0
  193. package/dist/node/features/google-drive.d.ts +202 -0
  194. package/dist/node/features/google-drive.d.ts.map +1 -0
  195. package/dist/node/features/google-mail.d.ts +221 -0
  196. package/dist/node/features/google-mail.d.ts.map +1 -0
  197. package/dist/node/features/google-sheets.d.ts +157 -0
  198. package/dist/node/features/google-sheets.d.ts.map +1 -0
  199. package/dist/node/features/grep.d.ts +207 -0
  200. package/dist/node/features/grep.d.ts.map +1 -0
  201. package/dist/node/features/helpers.d.ts +236 -0
  202. package/dist/node/features/helpers.d.ts.map +1 -0
  203. package/dist/node/features/ink.d.ts +332 -0
  204. package/dist/node/features/ink.d.ts.map +1 -0
  205. package/dist/node/features/ipc-socket.d.ts +298 -0
  206. package/dist/node/features/ipc-socket.d.ts.map +1 -0
  207. package/dist/node/features/json-tree.d.ts +140 -0
  208. package/dist/node/features/json-tree.d.ts.map +1 -0
  209. package/dist/node/features/networking.d.ts +373 -0
  210. package/dist/node/features/networking.d.ts.map +1 -0
  211. package/dist/node/features/nlp.d.ts +125 -0
  212. package/dist/node/features/nlp.d.ts.map +1 -0
  213. package/dist/node/features/opener.d.ts +93 -0
  214. package/dist/node/features/opener.d.ts.map +1 -0
  215. package/dist/node/features/os.d.ts +168 -0
  216. package/dist/node/features/os.d.ts.map +1 -0
  217. package/dist/node/features/package-finder.d.ts +419 -0
  218. package/dist/node/features/package-finder.d.ts.map +1 -0
  219. package/dist/node/features/postgres.d.ts +173 -0
  220. package/dist/node/features/postgres.d.ts.map +1 -0
  221. package/dist/node/features/proc.d.ts +285 -0
  222. package/dist/node/features/proc.d.ts.map +1 -0
  223. package/dist/node/features/process-manager.d.ts +427 -0
  224. package/dist/node/features/process-manager.d.ts.map +1 -0
  225. package/dist/node/features/python.d.ts +477 -0
  226. package/dist/node/features/python.d.ts.map +1 -0
  227. package/dist/node/features/redis.d.ts +247 -0
  228. package/dist/node/features/redis.d.ts.map +1 -0
  229. package/dist/node/features/repl.d.ts +84 -0
  230. package/dist/node/features/repl.d.ts.map +1 -0
  231. package/dist/node/features/runpod.d.ts +527 -0
  232. package/dist/node/features/runpod.d.ts.map +1 -0
  233. package/dist/node/features/secure-shell.d.ts +145 -0
  234. package/dist/node/features/secure-shell.d.ts.map +1 -0
  235. package/dist/node/features/semantic-search.d.ts +207 -0
  236. package/dist/node/features/semantic-search.d.ts.map +1 -0
  237. package/dist/node/features/sqlite.d.ts +180 -0
  238. package/dist/node/features/sqlite.d.ts.map +1 -0
  239. package/dist/node/features/telegram.d.ts +173 -0
  240. package/dist/node/features/telegram.d.ts.map +1 -0
  241. package/dist/node/features/transpiler.d.ts +51 -0
  242. package/dist/node/features/transpiler.d.ts.map +1 -0
  243. package/dist/node/features/tts.d.ts +108 -0
  244. package/dist/node/features/tts.d.ts.map +1 -0
  245. package/dist/node/features/ui.d.ts +562 -0
  246. package/dist/node/features/ui.d.ts.map +1 -0
  247. package/dist/node/features/vault.d.ts +90 -0
  248. package/dist/node/features/vault.d.ts.map +1 -0
  249. package/dist/node/features/vm.d.ts +285 -0
  250. package/dist/node/features/vm.d.ts.map +1 -0
  251. package/dist/node/features/yaml-tree.d.ts +118 -0
  252. package/dist/node/features/yaml-tree.d.ts.map +1 -0
  253. package/dist/node/features/yaml.d.ts +127 -0
  254. package/dist/node/features/yaml.d.ts.map +1 -0
  255. package/dist/node.d.ts +67 -0
  256. package/dist/node.d.ts.map +1 -0
  257. package/dist/python/generated.d.ts +2 -0
  258. package/dist/python/generated.d.ts.map +1 -0
  259. package/dist/react/index.d.ts +36 -0
  260. package/dist/react/index.d.ts.map +1 -0
  261. package/dist/registry.d.ts +97 -0
  262. package/dist/registry.d.ts.map +1 -0
  263. package/dist/scaffolds/generated.d.ts +13 -0
  264. package/dist/scaffolds/generated.d.ts.map +1 -0
  265. package/dist/scaffolds/template.d.ts +11 -0
  266. package/dist/scaffolds/template.d.ts.map +1 -0
  267. package/dist/schemas/base.d.ts +254 -0
  268. package/dist/schemas/base.d.ts.map +1 -0
  269. package/dist/selector.d.ts +130 -0
  270. package/dist/selector.d.ts.map +1 -0
  271. package/dist/server.d.ts +89 -0
  272. package/dist/server.d.ts.map +1 -0
  273. package/dist/servers/express.d.ts +104 -0
  274. package/dist/servers/express.d.ts.map +1 -0
  275. package/dist/servers/mcp.d.ts +201 -0
  276. package/dist/servers/mcp.d.ts.map +1 -0
  277. package/dist/servers/socket.d.ts +121 -0
  278. package/dist/servers/socket.d.ts.map +1 -0
  279. package/dist/state.d.ts +24 -0
  280. package/dist/state.d.ts.map +1 -0
  281. package/dist/web/clients/socket.d.ts +37 -0
  282. package/dist/web/clients/socket.d.ts.map +1 -0
  283. package/dist/web/container.d.ts +55 -0
  284. package/dist/web/container.d.ts.map +1 -0
  285. package/dist/web/extension.d.ts +4 -0
  286. package/dist/web/extension.d.ts.map +1 -0
  287. package/dist/web/feature.d.ts +8 -0
  288. package/dist/web/feature.d.ts.map +1 -0
  289. package/dist/web/features/asset-loader.d.ts +35 -0
  290. package/dist/web/features/asset-loader.d.ts.map +1 -0
  291. package/dist/web/features/container-link.d.ts +167 -0
  292. package/dist/web/features/container-link.d.ts.map +1 -0
  293. package/dist/web/features/esbuild.d.ts +51 -0
  294. package/dist/web/features/esbuild.d.ts.map +1 -0
  295. package/dist/web/features/helpers.d.ts +140 -0
  296. package/dist/web/features/helpers.d.ts.map +1 -0
  297. package/dist/web/features/network.d.ts +69 -0
  298. package/dist/web/features/network.d.ts.map +1 -0
  299. package/dist/web/features/speech.d.ts +71 -0
  300. package/dist/web/features/speech.d.ts.map +1 -0
  301. package/dist/web/features/vault.d.ts +62 -0
  302. package/dist/web/features/vault.d.ts.map +1 -0
  303. package/dist/web/features/vm.d.ts +48 -0
  304. package/dist/web/features/vm.d.ts.map +1 -0
  305. package/dist/web/features/voice-recognition.d.ts +96 -0
  306. package/dist/web/features/voice-recognition.d.ts.map +1 -0
  307. package/dist/web/shims/isomorphic-vm.d.ts +22 -0
  308. package/dist/web/shims/isomorphic-vm.d.ts.map +1 -0
  309. package/index.html +1457 -0
  310. package/index.ts +1 -0
  311. package/install.sh +84 -0
  312. package/luca.cli.ts +16 -0
  313. package/luca.console.ts +9 -0
  314. package/main.py +6 -0
  315. package/package.json +219 -58
  316. package/public/index.html +1457 -0
  317. package/public/slides-ai-native.html +902 -0
  318. package/public/slides-intro.html +974 -0
  319. package/pyproject.toml +7 -0
  320. package/scripts/build-web.ts +28 -0
  321. package/scripts/examples/ask-luca-expert.ts +42 -0
  322. package/scripts/examples/assistant-questions.ts +12 -0
  323. package/scripts/examples/excalidraw-expert.ts +75 -0
  324. package/scripts/examples/expert-chat.ts +0 -0
  325. package/scripts/examples/file-manager.ts +14 -0
  326. package/scripts/examples/ideas.ts +12 -0
  327. package/scripts/examples/interactive-chat.ts +20 -0
  328. package/scripts/examples/openai-tool-calls.ts +113 -0
  329. package/scripts/examples/opening-a-web-browser.ts +5 -0
  330. package/scripts/examples/telegram-bot.ts +79 -0
  331. package/scripts/examples/using-assistant-with-mcp.ts +555 -0
  332. package/scripts/examples/using-claude-code.ts +10 -0
  333. package/scripts/examples/using-contentdb.ts +35 -0
  334. package/scripts/examples/using-conversations.ts +35 -0
  335. package/scripts/examples/using-disk-cache.ts +10 -0
  336. package/scripts/examples/using-docker-shell.ts +75 -0
  337. package/scripts/examples/using-elevenlabs.ts +25 -0
  338. package/scripts/examples/using-google-calendar.ts +57 -0
  339. package/scripts/examples/using-google-docs.ts +74 -0
  340. package/scripts/examples/using-google-drive.ts +74 -0
  341. package/scripts/examples/using-google-sheets.ts +89 -0
  342. package/scripts/examples/using-nlp.ts +55 -0
  343. package/scripts/examples/using-ollama.ts +11 -0
  344. package/scripts/examples/using-postgres.ts +55 -0
  345. package/scripts/examples/using-runpod.ts +32 -0
  346. package/scripts/examples/using-tts.ts +40 -0
  347. package/scripts/scaffold.ts +391 -0
  348. package/scripts/scratch.ts +15 -0
  349. package/scripts/stamp-build.sh +12 -0
  350. package/scripts/test-assistant-hooks.ts +13 -0
  351. package/scripts/test-docs-reader.ts +10 -0
  352. package/scripts/test-linux-binary.sh +80 -0
  353. package/scripts/update-introspection-data.ts +58 -0
  354. package/src/agi/README.md +14 -0
  355. package/src/agi/container.server.ts +156 -0
  356. package/src/agi/feature.ts +13 -0
  357. package/src/agi/features/agent-memory.ts +694 -0
  358. package/src/agi/features/assistant.ts +1653 -0
  359. package/src/agi/features/assistants-manager.ts +534 -0
  360. package/src/agi/features/autonomous-assistant.ts +431 -0
  361. package/src/agi/features/browser-use.ts +672 -0
  362. package/src/agi/features/claude-code.ts +1584 -0
  363. package/src/agi/features/coding-tools.ts +175 -0
  364. package/src/agi/features/conversation-history.ts +672 -0
  365. package/src/agi/features/conversation.ts +1494 -0
  366. package/src/agi/features/docs-reader.ts +167 -0
  367. package/src/agi/features/file-tools.ts +340 -0
  368. package/src/agi/features/luca-coder.ts +641 -0
  369. package/src/agi/features/mcp-bridge.ts +532 -0
  370. package/src/agi/features/openai-codex.ts +651 -0
  371. package/src/agi/features/openapi.ts +445 -0
  372. package/src/agi/features/skills-library.ts +557 -0
  373. package/src/agi/index.ts +6 -0
  374. package/src/agi/lib/interceptor-chain.ts +89 -0
  375. package/src/agi/lib/token-counter.ts +202 -0
  376. package/src/bootstrap/generated.ts +9791 -0
  377. package/src/browser.ts +25 -0
  378. package/src/bus.ts +122 -0
  379. package/src/cli/build-info.ts +4 -0
  380. package/src/cli/cli.ts +355 -0
  381. package/src/client.ts +170 -0
  382. package/src/clients/civitai/index.ts +537 -0
  383. package/src/clients/client-template.ts +41 -0
  384. package/src/clients/comfyui/index.ts +604 -0
  385. package/src/clients/elevenlabs/index.ts +317 -0
  386. package/src/clients/graph.ts +87 -0
  387. package/src/clients/openai/index.ts +456 -0
  388. package/src/clients/rest.ts +207 -0
  389. package/src/clients/supabase/index.ts +357 -0
  390. package/src/clients/voicebox/index.ts +300 -0
  391. package/src/clients/websocket.ts +251 -0
  392. package/src/command.ts +506 -0
  393. package/src/commands/bootstrap.ts +244 -0
  394. package/src/commands/chat.ts +309 -0
  395. package/src/commands/code.ts +371 -0
  396. package/src/commands/console.ts +189 -0
  397. package/src/commands/describe.ts +243 -0
  398. package/src/commands/eval.ts +67 -0
  399. package/src/commands/help.ts +240 -0
  400. package/src/commands/index.ts +19 -0
  401. package/src/commands/introspect.ts +218 -0
  402. package/src/commands/mcp.ts +64 -0
  403. package/src/commands/prompt.ts +1014 -0
  404. package/src/commands/run.ts +278 -0
  405. package/src/commands/sandbox-mcp.ts +343 -0
  406. package/src/commands/save-api-docs.ts +51 -0
  407. package/src/commands/scaffold.ts +225 -0
  408. package/src/commands/select.ts +99 -0
  409. package/src/commands/serve.ts +208 -0
  410. package/src/container-describer.ts +1091 -0
  411. package/src/container.ts +1199 -0
  412. package/src/endpoint.ts +365 -0
  413. package/src/entity.ts +173 -0
  414. package/src/feature.ts +118 -0
  415. package/src/graft.ts +181 -0
  416. package/src/hash-object.ts +97 -0
  417. package/src/helper.ts +849 -0
  418. package/src/introspection/generated.agi.ts +41200 -0
  419. package/src/introspection/generated.node.ts +28773 -0
  420. package/src/introspection/generated.web.ts +2272 -0
  421. package/src/introspection/index.ts +296 -0
  422. package/src/introspection/scan.ts +1136 -0
  423. package/src/node/container.ts +409 -0
  424. package/src/node/feature.ts +13 -0
  425. package/src/node/features/container-link.ts +559 -0
  426. package/src/node/features/content-db.ts +849 -0
  427. package/src/node/features/disk-cache.ts +388 -0
  428. package/src/node/features/display-result.ts +57 -0
  429. package/src/node/features/dns.ts +669 -0
  430. package/src/node/features/docker.ts +921 -0
  431. package/src/node/features/downloader.ts +79 -0
  432. package/src/node/features/figlet-fonts.ts +600 -0
  433. package/src/node/features/file-manager.ts +535 -0
  434. package/src/node/features/fs.ts +1050 -0
  435. package/src/node/features/git.ts +592 -0
  436. package/src/node/features/google-auth.ts +504 -0
  437. package/src/node/features/google-calendar.ts +306 -0
  438. package/src/node/features/google-docs.ts +412 -0
  439. package/src/node/features/google-drive.ts +346 -0
  440. package/src/node/features/google-mail.ts +540 -0
  441. package/src/node/features/google-sheets.ts +286 -0
  442. package/src/node/features/grep.ts +427 -0
  443. package/src/node/features/helpers.ts +762 -0
  444. package/src/node/features/ink.ts +490 -0
  445. package/src/node/features/ipc-socket.ts +649 -0
  446. package/src/node/features/json-tree.ts +170 -0
  447. package/src/node/features/networking.ts +961 -0
  448. package/src/node/features/nlp.ts +212 -0
  449. package/src/node/features/opener.ts +180 -0
  450. package/src/node/features/os.ts +403 -0
  451. package/src/node/features/package-finder.ts +540 -0
  452. package/src/node/features/postgres.ts +289 -0
  453. package/src/node/features/proc.ts +503 -0
  454. package/src/node/features/process-manager.ts +844 -0
  455. package/src/node/features/python.ts +912 -0
  456. package/src/node/features/redis.ts +446 -0
  457. package/src/node/features/repl.ts +212 -0
  458. package/src/node/features/runpod.ts +811 -0
  459. package/src/node/features/secure-shell.ts +261 -0
  460. package/src/node/features/semantic-search.ts +935 -0
  461. package/src/node/features/sqlite.ts +289 -0
  462. package/src/node/features/telegram.ts +343 -0
  463. package/src/node/features/transpiler.ts +160 -0
  464. package/src/node/features/tts.ts +185 -0
  465. package/src/node/features/ui.ts +791 -0
  466. package/src/node/features/vault.ts +153 -0
  467. package/src/node/features/vm.ts +462 -0
  468. package/src/node/features/yaml-tree.ts +148 -0
  469. package/src/node/features/yaml.ts +133 -0
  470. package/src/node.ts +76 -0
  471. package/src/python/bridge.py +220 -0
  472. package/src/python/generated.ts +226 -0
  473. package/src/react/index.ts +175 -0
  474. package/src/registry.ts +210 -0
  475. package/src/scaffolds/generated.ts +1814 -0
  476. package/src/scaffolds/template.ts +46 -0
  477. package/src/schemas/base.ts +296 -0
  478. package/src/selector.ts +352 -0
  479. package/src/server.ts +229 -0
  480. package/src/servers/express.ts +283 -0
  481. package/src/servers/mcp.ts +802 -0
  482. package/src/servers/socket.ts +258 -0
  483. package/src/state.ts +101 -0
  484. package/src/web/clients/socket.ts +99 -0
  485. package/src/web/container.ts +75 -0
  486. package/src/web/extension.ts +30 -0
  487. package/src/web/feature.ts +12 -0
  488. package/src/web/features/asset-loader.ts +72 -0
  489. package/src/web/features/container-link.ts +382 -0
  490. package/src/web/features/esbuild.ts +93 -0
  491. package/src/web/features/helpers.ts +291 -0
  492. package/src/web/features/network.ts +85 -0
  493. package/src/web/features/speech.ts +104 -0
  494. package/src/web/features/vault.ts +207 -0
  495. package/src/web/features/vm.ts +85 -0
  496. package/src/web/features/voice-recognition.ts +161 -0
  497. package/src/web/shims/isomorphic-vm.ts +149 -0
  498. package/tsconfig.build.json +12 -0
  499. package/tsconfig.json +58 -0
  500. package/uv.lock +8 -0
  501. package/LICENSE +0 -21
  502. package/dist/cli/cli.js +0 -48
  503. package/dist/cli/common.d.ts +0 -2
  504. package/dist/cli/common.js +0 -6
  505. package/dist/cli/index.d.ts +0 -2
  506. package/dist/cli/index.js +0 -5
  507. package/dist/cli/run.d.ts +0 -1
  508. package/dist/cli/run.js +0 -38
  509. package/dist/core/index.d.ts +0 -4
  510. package/dist/core/index.js +0 -32
  511. package/dist/core/read.d.ts +0 -2
  512. package/dist/core/read.js +0 -29
  513. package/dist/core/request.d.ts +0 -1
  514. package/dist/core/request.js +0 -2
  515. package/dist/core/write.d.ts +0 -2
  516. package/dist/core/write.js +0 -21
  517. package/dist/index.d.ts +0 -1
  518. package/dist/index.js +0 -5
  519. package/dist/utils/common.d.ts +0 -9
  520. package/dist/utils/common.js +0 -57
  521. package/dist/utils/consts.d.ts +0 -3
  522. package/dist/utils/consts.js +0 -11
  523. package/dist/utils/dict.d.ts +0 -1
  524. package/dist/utils/dict.js +0 -7
  525. package/dist/utils/index.d.ts +0 -5
  526. package/dist/utils/index.js +0 -21
  527. package/dist/utils/log.d.ts +0 -1
  528. package/dist/utils/log.js +0 -5
  529. package/dist/utils/types.d.ts +0 -1
  530. package/dist/utils/types.js +0 -2
  531. package/dist/utils/utils.test.d.ts +0 -1
  532. package/dist/utils/utils.test.js +0 -7
@@ -0,0 +1,409 @@
1
+ import url from 'node:url'
2
+
3
+ import { Container, type ContainerState } from "../container";
4
+ import { State } from "../state";
5
+ import type { FeatureOptions } from "./feature";
6
+ import { features, Feature } from "./feature";
7
+ import type { AvailableFeatures } from "../feature";
8
+ import { Client, type ClientsInterface } from "../client";
9
+ import "../clients/rest";
10
+ import "../clients/graph";
11
+ import "../clients/websocket";
12
+ import { Server, type ServersInterface } from "../server";
13
+ import "../servers/express";
14
+ import "../servers/socket";
15
+ import "../servers/mcp";
16
+ import { Command, type CommandsInterface } from "../command";
17
+ import { Endpoint, type EndpointsInterface } from "../endpoint";
18
+ import { Selector, type SelectorsInterface } from "../selector";
19
+
20
+ import minimist from "minimist";
21
+ import { omit, kebabCase, camelCase, mapKeys, castArray } from "lodash-es";
22
+ import { basename, parse, relative, resolve, join } from "path";
23
+
24
+ import "./features/disk-cache";
25
+ import "./features/content-db";
26
+ import "./features/downloader";
27
+ import "./features/transpiler";
28
+ import "./features/file-manager";
29
+ import "./features/fs";
30
+ import "./features/git";
31
+ import "./features/grep";
32
+ import "./features/ipc-socket";
33
+ import "./features/json-tree";
34
+ import "./features/networking";
35
+ import "./features/os";
36
+ import "./features/package-finder";
37
+ import "./features/python";
38
+ import "./features/proc";
39
+ import "./features/repl";
40
+ import "./features/ui";
41
+ import "./features/vault";
42
+ import "./features/vm";
43
+ import "./features/yaml-tree";
44
+ import "./features/yaml";
45
+ import "./features/docker";
46
+ import "./features/runpod";
47
+ import "./features/secure-shell";
48
+ import "./features/ink";
49
+ import "./features/telegram";
50
+ import "./features/opener";
51
+ import "./features/postgres";
52
+ import "./features/sqlite";
53
+ import "./features/google-auth";
54
+ import "./features/google-drive";
55
+ import "./features/google-sheets";
56
+ import "./features/google-calendar";
57
+ import "./features/google-docs";
58
+ import "./features/google-mail";
59
+ import "./features/nlp";
60
+ import "./features/process-manager"
61
+ import "./features/tts";
62
+ import "./features/helpers";
63
+ import "./features/container-link";
64
+ import "./features/semantic-search";
65
+ import "./features/dns";
66
+ import "./features/redis";
67
+
68
+ import type { ChildProcess } from "./features/proc";
69
+ import type { DiskCache } from "./features/disk-cache";
70
+ import type { ContentDb } from "./features/content-db";
71
+ import type { Downloader } from "./features/downloader";
72
+ import type { Transpiler } from "./features/transpiler";
73
+ import type { FileManager } from "./features/file-manager";
74
+ import type { FS } from "./features/fs";
75
+ import type { Git } from "./features/git";
76
+ import type { Grep } from "./features/grep";
77
+ import type { IpcSocket } from "./features/ipc-socket";
78
+ import type { JsonTree } from "./features/json-tree";
79
+ import type { Networking } from "./features/networking";
80
+ import type { OS } from "./features/os";
81
+ import type { PackageFinder } from "./features/package-finder";
82
+ import type { Python } from "./features/python";
83
+ import type { Repl } from "./features/repl";
84
+ import type { UI } from "./features/ui";
85
+ import type { Vault } from "./features/vault";
86
+ import type { VM } from "./features/vm";
87
+ import type { YAML } from "./features/yaml";
88
+ import type { YamlTree } from "./features/yaml-tree";
89
+ import type { Docker } from './features/docker';
90
+ import type { Runpod } from './features/runpod';
91
+ import type { SecureShell } from './features/secure-shell';
92
+ import type { Ink } from './features/ink';
93
+ import type { Telegram } from './features/telegram';
94
+ import type { Opener } from './features/opener';
95
+ import type { Postgres } from './features/postgres';
96
+ import type { Sqlite } from './features/sqlite';
97
+ import type { GoogleAuth } from './features/google-auth';
98
+ import type { GoogleDrive } from './features/google-drive';
99
+ import type { GoogleSheets } from './features/google-sheets';
100
+ import type { GoogleCalendar } from './features/google-calendar';
101
+ import type { GoogleDocs } from './features/google-docs';
102
+ import type { GoogleMail } from './features/google-mail';
103
+ import type { NLP } from './features/nlp';
104
+ import type { ProcessManager } from './features/process-manager'
105
+ import type { TTS } from './features/tts';
106
+ import type { Helpers } from './features/helpers';
107
+ import type { ContainerLink } from './features/container-link';
108
+ import type { SemanticSearch } from './features/semantic-search';
109
+ import type { Dns } from './features/dns';
110
+ import type { Redis } from './features/redis';
111
+ export { State };
112
+
113
+ export {
114
+ features,
115
+ Feature,
116
+ type FS,
117
+ type ContentDb,
118
+ type ChildProcess,
119
+ type Git,
120
+ type Grep,
121
+ type OS,
122
+ type Networking,
123
+ type UI,
124
+ type FileManager,
125
+ type DiskCache,
126
+ type Vault,
127
+ type Downloader,
128
+ type Docker,
129
+ type Runpod,
130
+ type SecureShell,
131
+ type Ink,
132
+ type Telegram,
133
+ type Opener,
134
+ type Postgres,
135
+ type Sqlite,
136
+ type GoogleAuth,
137
+ type GoogleDrive,
138
+ type GoogleSheets,
139
+ type GoogleCalendar,
140
+ type GoogleDocs,
141
+ type GoogleMail,
142
+ type NLP,
143
+ type ProcessManager,
144
+ type TTS,
145
+ type Helpers,
146
+ type ContainerLink,
147
+ type SemanticSearch,
148
+ type Dns,
149
+ type Redis,
150
+ type Transpiler,
151
+ };
152
+
153
+ export type { FeatureOptions };
154
+
155
+ const baseArgv = minimist(process.argv.slice(2)) as Record<string, any> & {
156
+ _: string[];
157
+ cwd?: string;
158
+ };
159
+ const argv = {
160
+ ...baseArgv,
161
+ ...mapKeys(omit(baseArgv, "_"), (_, key) => camelCase(kebabCase(key))),
162
+ };
163
+
164
+ declare module "../container" {
165
+ interface ContainerArgv {
166
+ cwd?: string;
167
+ _?: string[];
168
+ enable?: string | string[];
169
+ }
170
+ }
171
+
172
+ export interface NodeFeatures extends AvailableFeatures {
173
+ fs: typeof FS;
174
+ proc: typeof ChildProcess;
175
+ git: typeof Git;
176
+ grep: typeof Grep;
177
+ os: typeof OS;
178
+ docker: typeof Docker;
179
+ networking: typeof Networking;
180
+ ui: typeof UI;
181
+ vm: typeof VM;
182
+ fileManager: typeof FileManager;
183
+ ipcSocket: typeof IpcSocket;
184
+ yamlTree: typeof YamlTree;
185
+ packageFinder: typeof PackageFinder;
186
+ repl: typeof Repl;
187
+ yaml: typeof YAML;
188
+ transpiler: typeof Transpiler;
189
+ diskCache: typeof DiskCache;
190
+ vault: typeof Vault;
191
+ jsonTree: typeof JsonTree;
192
+ downloader: typeof Downloader;
193
+ python: typeof Python;
194
+ runpod: typeof Runpod;
195
+ secureShell: typeof SecureShell;
196
+ ink: typeof Ink;
197
+ telegram: typeof Telegram;
198
+ opener: typeof Opener;
199
+ postgres: typeof Postgres;
200
+ sqlite: typeof Sqlite;
201
+ contentDb: typeof ContentDb;
202
+ googleAuth: typeof GoogleAuth;
203
+ googleDrive: typeof GoogleDrive;
204
+ googleSheets: typeof GoogleSheets;
205
+ googleCalendar: typeof GoogleCalendar;
206
+ googleDocs: typeof GoogleDocs;
207
+ googleMail: typeof GoogleMail;
208
+ nlp: typeof NLP;
209
+ processManager: typeof ProcessManager;
210
+ tts: typeof TTS;
211
+ helpers: typeof Helpers;
212
+ containerLink: typeof ContainerLink;
213
+ semanticSearch: typeof SemanticSearch;
214
+ dns: typeof Dns;
215
+ redis: typeof Redis;
216
+ }
217
+
218
+ export type ClientsAndServersInterface = ClientsInterface & ServersInterface & CommandsInterface & EndpointsInterface & SelectorsInterface;
219
+
220
+ export interface NodeContainer extends ClientsAndServersInterface {}
221
+
222
+ /*
223
+ export interface NodeContainerState extends ContainerState {
224
+ // in luca.cli.ts you can set this to true and instead of displaying the help screen
225
+ // it will emit a 'commandMissing' event with the command name and args
226
+ // so that you can handle it however you want. This allows for a CLI dx like
227
+ // luca literally type whatever you want and if your project wants to try and do
228
+ // something with it, it will try and do it.
229
+ captureMissingCommands?: boolean;
230
+ }
231
+ */
232
+
233
+ /**
234
+ * Server-side container for Node.js and Bun environments. Extends the base Container with
235
+ * file system access, process management, git integration, and other server-side capabilities.
236
+ *
237
+ * Auto-enables core features on construction: fs, proc, git, grep, os, networking, ui, vm, transpiler, helpers.
238
+ * Also attaches Client, Server, Command, Endpoint, and Selector helper types, providing
239
+ * `container.client()`, `container.server()`, `container.command()`, etc. factory methods.
240
+ *
241
+ * @example
242
+ * ```ts
243
+ * import container from 'luca/node'
244
+ *
245
+ * // File operations
246
+ * const content = container.fs.readFile('README.md')
247
+ *
248
+ * // Path utilities (scoped to cwd)
249
+ * const full = container.paths.resolve('src/index.ts')
250
+ *
251
+ * // Create a REST client
252
+ * const api = container.client('rest', { baseURL: 'https://api.example.com' })
253
+ *
254
+ * // Start an Express server
255
+ * const app = container.server('express', { port: 3000 })
256
+ * await app.start()
257
+ * ```
258
+ */
259
+ export class NodeContainer<
260
+ Features extends NodeFeatures = NodeFeatures,
261
+ K extends ContainerState = ContainerState
262
+ > extends Container<Features, K> {
263
+ fs!: FS;
264
+ git!: Git;
265
+ grep!: Grep;
266
+ proc!: ChildProcess;
267
+ os!: OS;
268
+ networking!: Networking;
269
+ ui!: UI;
270
+
271
+ vm!: VM;
272
+
273
+ fileManager?: FileManager;
274
+ ipcSocket?: IpcSocket;
275
+ yamlTree?: YamlTree;
276
+ packageFinder?: PackageFinder;
277
+ repl?: Repl;
278
+ transpiler?: Transpiler;
279
+ diskCache?: DiskCache;
280
+ vault?: Vault;
281
+ python?: Python;
282
+ ink?: Ink;
283
+ telegram?: Telegram;
284
+ opener?: Opener;
285
+ postgres?: Postgres;
286
+ sqlite?: Sqlite;
287
+ googleAuth?: GoogleAuth;
288
+ googleDrive?: GoogleDrive;
289
+ googleSheets?: GoogleSheets;
290
+ googleCalendar?: GoogleCalendar;
291
+ googleDocs?: GoogleDocs;
292
+ googleMail?: GoogleMail;
293
+ nlp?: NLP;
294
+ processManager?: ProcessManager;
295
+ tts?: TTS;
296
+ helpers!: Helpers;
297
+ containerLink?: ContainerLink;
298
+ redis?: Redis;
299
+
300
+ constructor(options: any = {}) {
301
+ super({ cwd: process.cwd(), ...argv, ...options });
302
+
303
+ // Bun loads .env from cwd automatically; no dotenv needed.
304
+
305
+ this.feature("fs", { enable: true });
306
+ this.feature("proc", { enable: true });
307
+ this.feature("git", { enable: true });
308
+ this.feature("grep", { enable: true });
309
+ this.feature("os", { enable: true });
310
+ this.feature("networking", { enable: true });
311
+ this.feature("ui", { enable: true });
312
+ this.feature("vm", { enable: true, context: {} });
313
+ this.feature("transpiler", { enable: true });
314
+ this.feature("helpers", { enable: true });
315
+
316
+ const enable = castArray(this.options.enable)
317
+ .filter((v) => v && v?.length)
318
+ .map((v) => v as keyof AvailableFeatures);
319
+
320
+ enable.forEach((feature) => {
321
+ if (this.features.has(feature)) {
322
+ this.feature(feature, { enable: true });
323
+ }
324
+ });
325
+
326
+ if (this.isBun) {
327
+ this.addContext('Bun', Bun)
328
+ }
329
+
330
+ this.use(Client).use(Server).use(Command).use(Endpoint).use(Selector);
331
+ }
332
+
333
+ override get Feature() {
334
+ return Feature;
335
+ }
336
+
337
+ /** Returns the current working directory, from options or process.cwd(). */
338
+ get cwd(): string {
339
+ return this.options.cwd || process.cwd();
340
+ }
341
+
342
+ /** Returns the parsed package.json manifest for the current working directory. */
343
+ get manifest(): Record<string, any> {
344
+ try {
345
+ const packageJson = this.fs.findUp("packageon");
346
+
347
+ if (!packageJson) {
348
+ throw new Error("No packageon found");
349
+ }
350
+
351
+ const manifest = this.fs.readJson(packageJson);
352
+
353
+ return manifest;
354
+ } catch (error) {
355
+ return {
356
+ name: basename(this.cwd),
357
+ version: "0.0.0",
358
+ type: "module",
359
+ };
360
+ }
361
+ }
362
+
363
+ /** Returns the parsed command-line arguments (from minimist). */
364
+ get argv(): Record<string, any> & { _: string[] } {
365
+ return this.options as any;
366
+ }
367
+
368
+ /** Returns URL utility functions for parsing URIs. */
369
+ get urlUtils(): { parse: (uri: string) => url.UrlWithStringQuery } {
370
+ return {
371
+ parse: (uri: string) => url.parse(uri)
372
+ }
373
+ }
374
+
375
+ /** Returns path utility functions scoped to the current working directory (join, resolve, relative, dirname, parse). */
376
+ get paths(): { dirname: (path: string) => string; join: (...paths: string[]) => string; resolve: (...paths: string[]) => string; relative: (...paths: string[]) => string; basename: typeof basename; parse: typeof parse } {
377
+ const { cwd } = this;
378
+ return {
379
+ dirname(path: string) {
380
+ return parse(path).dir
381
+ },
382
+ join(...paths: string[]) {
383
+ return resolve(cwd, ...paths)
384
+ },
385
+ resolve(...paths: string[]) {
386
+ return resolve(cwd, ...paths);
387
+ },
388
+ relative(...paths: string[]) {
389
+ return relative(cwd, resolve(cwd, ...paths));
390
+ },
391
+ basename,
392
+ parse
393
+ };
394
+ }
395
+
396
+ /**
397
+ * In your project's luca.cli.ts you can call this method and pass it a function
398
+ * and when you call an invalid command, the function will be called with the command name and args
399
+ * this allows you to define your own DX behavior for handling unknown commands in your project
400
+ *
401
+ * This is a special luca cli hook. The function will be called with { words: string[], phrase: string, argv: any }
402
+ */
403
+ private onMissingCommand(handler: any) {
404
+ // @ts-ignore
405
+ this.state.set('missingCommandHandler', handler)
406
+
407
+ return this
408
+ }
409
+ }
@@ -0,0 +1,13 @@
1
+ import type { NodeFeatures, NodeContainer } from './container.js'
2
+ import type { FeatureOptions, FeatureState } from '../feature.ts'
3
+ import { features, Feature as UniversalFeature } from '../feature.ts'
4
+
5
+ export { features }
6
+
7
+ export type { FeatureState, FeatureOptions }
8
+
9
+ export class Feature<T extends FeatureState = FeatureState, K extends FeatureOptions = FeatureOptions> extends UniversalFeature<T, K> {
10
+ override get container() : NodeContainer<NodeFeatures> {
11
+ return super.container as NodeContainer<NodeFeatures>
12
+ }
13
+ }