@soederpop/luca 0.1.2 → 0.2.1

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 (381) hide show
  1. package/.github/workflows/release.yaml +167 -0
  2. package/CLAUDE.md +2 -0
  3. package/README.md +3 -0
  4. package/assistants/codingAssistant/ABOUT.md +3 -0
  5. package/assistants/codingAssistant/CORE.md +22 -17
  6. package/assistants/codingAssistant/hooks.ts +17 -4
  7. package/assistants/codingAssistant/tools.ts +1 -106
  8. package/assistants/inkbot/ABOUT.md +5 -0
  9. package/assistants/inkbot/CORE.md +71 -0
  10. package/assistants/inkbot/hooks.ts +14 -0
  11. package/assistants/inkbot/tools.ts +47 -0
  12. package/bun.lock +20 -4
  13. package/commands/inkbot.ts +353 -0
  14. package/commands/release.ts +75 -181
  15. package/dist/agi/container.server.d.ts +63 -0
  16. package/dist/agi/container.server.d.ts.map +1 -0
  17. package/dist/agi/endpoints/ask.d.ts +20 -0
  18. package/dist/agi/endpoints/ask.d.ts.map +1 -0
  19. package/dist/agi/endpoints/conversations/[id].d.ts +27 -0
  20. package/dist/agi/endpoints/conversations/[id].d.ts.map +1 -0
  21. package/dist/agi/endpoints/conversations.d.ts +18 -0
  22. package/dist/agi/endpoints/conversations.d.ts.map +1 -0
  23. package/dist/agi/endpoints/experts.d.ts +8 -0
  24. package/dist/agi/endpoints/experts.d.ts.map +1 -0
  25. package/dist/agi/feature.d.ts +9 -0
  26. package/dist/agi/feature.d.ts.map +1 -0
  27. package/dist/agi/features/assistant.d.ts +509 -0
  28. package/dist/agi/features/assistant.d.ts.map +1 -0
  29. package/dist/agi/features/assistants-manager.d.ts +236 -0
  30. package/dist/agi/features/assistants-manager.d.ts.map +1 -0
  31. package/dist/agi/features/autonomous-assistant.d.ts +281 -0
  32. package/dist/agi/features/autonomous-assistant.d.ts.map +1 -0
  33. package/dist/agi/features/browser-use.d.ts +479 -0
  34. package/dist/agi/features/browser-use.d.ts.map +1 -0
  35. package/dist/agi/features/claude-code.d.ts +824 -0
  36. package/dist/agi/features/claude-code.d.ts.map +1 -0
  37. package/dist/agi/features/conversation-history.d.ts +245 -0
  38. package/dist/agi/features/conversation-history.d.ts.map +1 -0
  39. package/dist/agi/features/conversation.d.ts +464 -0
  40. package/dist/agi/features/conversation.d.ts.map +1 -0
  41. package/dist/agi/features/docs-reader.d.ts +72 -0
  42. package/dist/agi/features/docs-reader.d.ts.map +1 -0
  43. package/dist/agi/features/file-tools.d.ts +110 -0
  44. package/dist/agi/features/file-tools.d.ts.map +1 -0
  45. package/dist/agi/features/luca-coder.d.ts +323 -0
  46. package/dist/agi/features/luca-coder.d.ts.map +1 -0
  47. package/dist/agi/features/openai-codex.d.ts +381 -0
  48. package/dist/agi/features/openai-codex.d.ts.map +1 -0
  49. package/dist/agi/features/openapi.d.ts +200 -0
  50. package/dist/agi/features/openapi.d.ts.map +1 -0
  51. package/dist/agi/features/skills-library.d.ts +167 -0
  52. package/dist/agi/features/skills-library.d.ts.map +1 -0
  53. package/dist/agi/index.d.ts +5 -0
  54. package/dist/agi/index.d.ts.map +1 -0
  55. package/dist/agi/lib/interceptor-chain.d.ts +44 -0
  56. package/dist/agi/lib/interceptor-chain.d.ts.map +1 -0
  57. package/dist/agi/lib/token-counter.d.ts +13 -0
  58. package/dist/agi/lib/token-counter.d.ts.map +1 -0
  59. package/dist/bootstrap/generated.d.ts +5 -0
  60. package/dist/bootstrap/generated.d.ts.map +1 -0
  61. package/dist/browser.d.ts +12 -0
  62. package/dist/browser.d.ts.map +1 -0
  63. package/dist/bus.d.ts +29 -0
  64. package/dist/bus.d.ts.map +1 -0
  65. package/dist/cli/build-info.d.ts +4 -0
  66. package/dist/cli/build-info.d.ts.map +1 -0
  67. package/dist/cli/cli.d.ts +3 -0
  68. package/dist/cli/cli.d.ts.map +1 -0
  69. package/dist/client.d.ts +60 -0
  70. package/dist/client.d.ts.map +1 -0
  71. package/dist/clients/civitai/index.d.ts +472 -0
  72. package/dist/clients/civitai/index.d.ts.map +1 -0
  73. package/dist/clients/client-template.d.ts +30 -0
  74. package/dist/clients/client-template.d.ts.map +1 -0
  75. package/dist/clients/comfyui/index.d.ts +281 -0
  76. package/dist/clients/comfyui/index.d.ts.map +1 -0
  77. package/dist/clients/elevenlabs/index.d.ts +197 -0
  78. package/dist/clients/elevenlabs/index.d.ts.map +1 -0
  79. package/dist/clients/graph.d.ts +64 -0
  80. package/dist/clients/graph.d.ts.map +1 -0
  81. package/dist/clients/openai/index.d.ts +247 -0
  82. package/dist/clients/openai/index.d.ts.map +1 -0
  83. package/dist/clients/rest.d.ts +92 -0
  84. package/dist/clients/rest.d.ts.map +1 -0
  85. package/dist/clients/supabase/index.d.ts +176 -0
  86. package/dist/clients/supabase/index.d.ts.map +1 -0
  87. package/dist/clients/websocket.d.ts +127 -0
  88. package/dist/clients/websocket.d.ts.map +1 -0
  89. package/dist/command.d.ts +163 -0
  90. package/dist/command.d.ts.map +1 -0
  91. package/dist/commands/bootstrap.d.ts +20 -0
  92. package/dist/commands/bootstrap.d.ts.map +1 -0
  93. package/dist/commands/chat.d.ts +37 -0
  94. package/dist/commands/chat.d.ts.map +1 -0
  95. package/dist/commands/code.d.ts +28 -0
  96. package/dist/commands/code.d.ts.map +1 -0
  97. package/dist/commands/console.d.ts +22 -0
  98. package/dist/commands/console.d.ts.map +1 -0
  99. package/dist/commands/describe.d.ts +50 -0
  100. package/dist/commands/describe.d.ts.map +1 -0
  101. package/dist/commands/eval.d.ts +23 -0
  102. package/dist/commands/eval.d.ts.map +1 -0
  103. package/dist/commands/help.d.ts +25 -0
  104. package/dist/commands/help.d.ts.map +1 -0
  105. package/dist/commands/index.d.ts +18 -0
  106. package/dist/commands/index.d.ts.map +1 -0
  107. package/dist/commands/introspect.d.ts +24 -0
  108. package/dist/commands/introspect.d.ts.map +1 -0
  109. package/dist/commands/mcp.d.ts +35 -0
  110. package/dist/commands/mcp.d.ts.map +1 -0
  111. package/dist/commands/prompt.d.ts +38 -0
  112. package/dist/commands/prompt.d.ts.map +1 -0
  113. package/dist/commands/run.d.ts +24 -0
  114. package/dist/commands/run.d.ts.map +1 -0
  115. package/dist/commands/sandbox-mcp.d.ts +34 -0
  116. package/dist/commands/sandbox-mcp.d.ts.map +1 -0
  117. package/dist/commands/save-api-docs.d.ts +21 -0
  118. package/dist/commands/save-api-docs.d.ts.map +1 -0
  119. package/dist/commands/scaffold.d.ts +24 -0
  120. package/dist/commands/scaffold.d.ts.map +1 -0
  121. package/dist/commands/select.d.ts +22 -0
  122. package/dist/commands/select.d.ts.map +1 -0
  123. package/dist/commands/serve.d.ts +29 -0
  124. package/dist/commands/serve.d.ts.map +1 -0
  125. package/dist/container-describer.d.ts +144 -0
  126. package/dist/container-describer.d.ts.map +1 -0
  127. package/dist/container.d.ts +451 -0
  128. package/dist/container.d.ts.map +1 -0
  129. package/dist/endpoint.d.ts +113 -0
  130. package/dist/endpoint.d.ts.map +1 -0
  131. package/dist/feature.d.ts +47 -0
  132. package/dist/feature.d.ts.map +1 -0
  133. package/dist/graft.d.ts +29 -0
  134. package/dist/graft.d.ts.map +1 -0
  135. package/dist/hash-object.d.ts +8 -0
  136. package/dist/hash-object.d.ts.map +1 -0
  137. package/dist/helper.d.ts +209 -0
  138. package/dist/helper.d.ts.map +1 -0
  139. package/dist/introspection/generated.node.d.ts +44623 -0
  140. package/dist/introspection/generated.node.d.ts.map +1 -0
  141. package/dist/introspection/generated.web.d.ts +1412 -0
  142. package/dist/introspection/generated.web.d.ts.map +1 -0
  143. package/dist/introspection/index.d.ts +156 -0
  144. package/dist/introspection/index.d.ts.map +1 -0
  145. package/dist/introspection/scan.d.ts +147 -0
  146. package/dist/introspection/scan.d.ts.map +1 -0
  147. package/dist/node/container.d.ts +256 -0
  148. package/dist/node/container.d.ts.map +1 -0
  149. package/dist/node/feature.d.ts +9 -0
  150. package/dist/node/feature.d.ts.map +1 -0
  151. package/dist/node/features/container-link.d.ts +213 -0
  152. package/dist/node/features/container-link.d.ts.map +1 -0
  153. package/dist/node/features/content-db.d.ts +354 -0
  154. package/dist/node/features/content-db.d.ts.map +1 -0
  155. package/dist/node/features/disk-cache.d.ts +236 -0
  156. package/dist/node/features/disk-cache.d.ts.map +1 -0
  157. package/dist/node/features/dns.d.ts +511 -0
  158. package/dist/node/features/dns.d.ts.map +1 -0
  159. package/dist/node/features/docker.d.ts +485 -0
  160. package/dist/node/features/docker.d.ts.map +1 -0
  161. package/dist/node/features/downloader.d.ts +73 -0
  162. package/dist/node/features/downloader.d.ts.map +1 -0
  163. package/dist/node/features/figlet-fonts.d.ts +4 -0
  164. package/dist/node/features/figlet-fonts.d.ts.map +1 -0
  165. package/dist/node/features/file-manager.d.ts +177 -0
  166. package/dist/node/features/file-manager.d.ts.map +1 -0
  167. package/dist/node/features/fs.d.ts +635 -0
  168. package/dist/node/features/fs.d.ts.map +1 -0
  169. package/dist/node/features/git.d.ts +329 -0
  170. package/dist/node/features/git.d.ts.map +1 -0
  171. package/dist/node/features/google-auth.d.ts +200 -0
  172. package/dist/node/features/google-auth.d.ts.map +1 -0
  173. package/dist/node/features/google-calendar.d.ts +194 -0
  174. package/dist/node/features/google-calendar.d.ts.map +1 -0
  175. package/dist/node/features/google-docs.d.ts +138 -0
  176. package/dist/node/features/google-docs.d.ts.map +1 -0
  177. package/dist/node/features/google-drive.d.ts +202 -0
  178. package/dist/node/features/google-drive.d.ts.map +1 -0
  179. package/dist/node/features/google-mail.d.ts +221 -0
  180. package/dist/node/features/google-mail.d.ts.map +1 -0
  181. package/dist/node/features/google-sheets.d.ts +157 -0
  182. package/dist/node/features/google-sheets.d.ts.map +1 -0
  183. package/dist/node/features/grep.d.ts +207 -0
  184. package/dist/node/features/grep.d.ts.map +1 -0
  185. package/dist/node/features/helpers.d.ts +236 -0
  186. package/dist/node/features/helpers.d.ts.map +1 -0
  187. package/dist/node/features/ink.d.ts +332 -0
  188. package/dist/node/features/ink.d.ts.map +1 -0
  189. package/dist/node/features/ipc-socket.d.ts +298 -0
  190. package/dist/node/features/ipc-socket.d.ts.map +1 -0
  191. package/dist/node/features/json-tree.d.ts +140 -0
  192. package/dist/node/features/json-tree.d.ts.map +1 -0
  193. package/dist/node/features/networking.d.ts +373 -0
  194. package/dist/node/features/networking.d.ts.map +1 -0
  195. package/dist/node/features/nlp.d.ts +125 -0
  196. package/dist/node/features/nlp.d.ts.map +1 -0
  197. package/dist/node/features/opener.d.ts +93 -0
  198. package/dist/node/features/opener.d.ts.map +1 -0
  199. package/dist/node/features/os.d.ts +168 -0
  200. package/dist/node/features/os.d.ts.map +1 -0
  201. package/dist/node/features/package-finder.d.ts +419 -0
  202. package/dist/node/features/package-finder.d.ts.map +1 -0
  203. package/dist/node/features/postgres.d.ts +173 -0
  204. package/dist/node/features/postgres.d.ts.map +1 -0
  205. package/dist/node/features/proc.d.ts +285 -0
  206. package/dist/node/features/proc.d.ts.map +1 -0
  207. package/dist/node/features/process-manager.d.ts +427 -0
  208. package/dist/node/features/process-manager.d.ts.map +1 -0
  209. package/dist/node/features/python.d.ts +477 -0
  210. package/dist/node/features/python.d.ts.map +1 -0
  211. package/dist/node/features/redis.d.ts +247 -0
  212. package/dist/node/features/redis.d.ts.map +1 -0
  213. package/dist/node/features/repl.d.ts +84 -0
  214. package/dist/node/features/repl.d.ts.map +1 -0
  215. package/dist/node/features/runpod.d.ts +527 -0
  216. package/dist/node/features/runpod.d.ts.map +1 -0
  217. package/dist/node/features/secure-shell.d.ts +145 -0
  218. package/dist/node/features/secure-shell.d.ts.map +1 -0
  219. package/dist/node/features/semantic-search.d.ts +207 -0
  220. package/dist/node/features/semantic-search.d.ts.map +1 -0
  221. package/dist/node/features/sqlite.d.ts +180 -0
  222. package/dist/node/features/sqlite.d.ts.map +1 -0
  223. package/dist/node/features/telegram.d.ts +173 -0
  224. package/dist/node/features/telegram.d.ts.map +1 -0
  225. package/dist/node/features/transpiler.d.ts +51 -0
  226. package/dist/node/features/transpiler.d.ts.map +1 -0
  227. package/dist/node/features/tts.d.ts +108 -0
  228. package/dist/node/features/tts.d.ts.map +1 -0
  229. package/dist/node/features/ui.d.ts +562 -0
  230. package/dist/node/features/ui.d.ts.map +1 -0
  231. package/dist/node/features/vault.d.ts +90 -0
  232. package/dist/node/features/vault.d.ts.map +1 -0
  233. package/dist/node/features/vm.d.ts +285 -0
  234. package/dist/node/features/vm.d.ts.map +1 -0
  235. package/dist/node/features/yaml-tree.d.ts +118 -0
  236. package/dist/node/features/yaml-tree.d.ts.map +1 -0
  237. package/dist/node/features/yaml.d.ts +127 -0
  238. package/dist/node/features/yaml.d.ts.map +1 -0
  239. package/dist/node.d.ts +67 -0
  240. package/dist/node.d.ts.map +1 -0
  241. package/dist/python/generated.d.ts +2 -0
  242. package/dist/python/generated.d.ts.map +1 -0
  243. package/dist/react/index.d.ts +36 -0
  244. package/dist/react/index.d.ts.map +1 -0
  245. package/dist/registry.d.ts +97 -0
  246. package/dist/registry.d.ts.map +1 -0
  247. package/dist/scaffolds/generated.d.ts +13 -0
  248. package/dist/scaffolds/generated.d.ts.map +1 -0
  249. package/dist/scaffolds/template.d.ts +11 -0
  250. package/dist/scaffolds/template.d.ts.map +1 -0
  251. package/dist/schemas/base.d.ts +254 -0
  252. package/dist/schemas/base.d.ts.map +1 -0
  253. package/dist/selector.d.ts +130 -0
  254. package/dist/selector.d.ts.map +1 -0
  255. package/dist/server.d.ts +89 -0
  256. package/dist/server.d.ts.map +1 -0
  257. package/dist/servers/express.d.ts +104 -0
  258. package/dist/servers/express.d.ts.map +1 -0
  259. package/dist/servers/mcp.d.ts +201 -0
  260. package/dist/servers/mcp.d.ts.map +1 -0
  261. package/dist/servers/socket.d.ts +121 -0
  262. package/dist/servers/socket.d.ts.map +1 -0
  263. package/dist/state.d.ts +24 -0
  264. package/dist/state.d.ts.map +1 -0
  265. package/dist/web/clients/socket.d.ts +37 -0
  266. package/dist/web/clients/socket.d.ts.map +1 -0
  267. package/dist/web/container.d.ts +55 -0
  268. package/dist/web/container.d.ts.map +1 -0
  269. package/dist/web/extension.d.ts +4 -0
  270. package/dist/web/extension.d.ts.map +1 -0
  271. package/dist/web/feature.d.ts +8 -0
  272. package/dist/web/feature.d.ts.map +1 -0
  273. package/dist/web/features/asset-loader.d.ts +35 -0
  274. package/dist/web/features/asset-loader.d.ts.map +1 -0
  275. package/dist/web/features/container-link.d.ts +167 -0
  276. package/dist/web/features/container-link.d.ts.map +1 -0
  277. package/dist/web/features/esbuild.d.ts +51 -0
  278. package/dist/web/features/esbuild.d.ts.map +1 -0
  279. package/dist/web/features/helpers.d.ts +140 -0
  280. package/dist/web/features/helpers.d.ts.map +1 -0
  281. package/dist/web/features/network.d.ts +69 -0
  282. package/dist/web/features/network.d.ts.map +1 -0
  283. package/dist/web/features/speech.d.ts +71 -0
  284. package/dist/web/features/speech.d.ts.map +1 -0
  285. package/dist/web/features/vault.d.ts +62 -0
  286. package/dist/web/features/vault.d.ts.map +1 -0
  287. package/dist/web/features/vm.d.ts +48 -0
  288. package/dist/web/features/vm.d.ts.map +1 -0
  289. package/dist/web/features/voice-recognition.d.ts +96 -0
  290. package/dist/web/features/voice-recognition.d.ts.map +1 -0
  291. package/dist/web/shims/isomorphic-vm.d.ts +22 -0
  292. package/dist/web/shims/isomorphic-vm.d.ts.map +1 -0
  293. package/docs/apis/features/agi/assistant.md +1 -0
  294. package/docs/apis/features/agi/assistants-manager.md +62 -2
  295. package/docs/apis/features/agi/auto-assistant.md +11 -109
  296. package/docs/apis/features/agi/claude-code.md +138 -0
  297. package/docs/apis/features/agi/conversation.md +60 -31
  298. package/docs/apis/features/agi/luca-coder.md +407 -0
  299. package/docs/apis/features/agi/openapi.md +2 -2
  300. package/docs/apis/features/agi/skills-library.md +12 -0
  301. package/docs/apis/features/node/python.md +81 -11
  302. package/docs/apis/features/node/transpiler.md +74 -0
  303. package/docs/apis/features/web/esbuild.md +0 -6
  304. package/docs/apis/servers/mcp.md +2 -2
  305. package/docs/examples/entity.md +124 -0
  306. package/docs/ideas/assistant-factory-pattern.md +142 -0
  307. package/package.json +74 -21
  308. package/src/agi/container.server.ts +10 -0
  309. package/src/agi/feature.ts +13 -0
  310. package/src/agi/features/agent-memory.ts +694 -0
  311. package/src/agi/features/assistant.ts +37 -26
  312. package/src/agi/features/assistants-manager.ts +95 -5
  313. package/src/agi/features/autonomous-assistant.ts +1 -5
  314. package/src/agi/features/browser-use.ts +32 -2
  315. package/src/agi/features/claude-code.ts +165 -1
  316. package/src/agi/features/coding-tools.ts +175 -0
  317. package/src/agi/features/conversation-history.ts +2 -6
  318. package/src/agi/features/conversation.ts +95 -3
  319. package/src/agi/features/docs-reader.ts +2 -1
  320. package/src/agi/features/file-tools.ts +35 -28
  321. package/src/agi/features/luca-coder.ts +1 -5
  322. package/src/agi/features/openai-codex.ts +1 -1
  323. package/src/agi/features/openapi.ts +3 -3
  324. package/src/agi/features/skills-library.ts +111 -13
  325. package/src/agi/lib/interceptor-chain.ts +10 -0
  326. package/src/agi/lib/token-counter.ts +1 -1
  327. package/src/bootstrap/generated.ts +126 -1
  328. package/src/bus.ts +27 -5
  329. package/src/cli/build-info.ts +2 -2
  330. package/src/client.ts +2 -2
  331. package/src/clients/elevenlabs/index.ts +5 -0
  332. package/src/clients/voicebox/index.ts +300 -0
  333. package/src/commands/bootstrap.ts +2 -1
  334. package/src/commands/chat.ts +1 -0
  335. package/src/commands/code.ts +4 -2
  336. package/src/commands/prompt.ts +34 -34
  337. package/src/commands/sandbox-mcp.ts +69 -163
  338. package/src/commands/save-api-docs.ts +10 -8
  339. package/src/commands/select.ts +8 -3
  340. package/src/container-describer.ts +70 -84
  341. package/src/container.ts +93 -3
  342. package/src/endpoint.ts +1 -1
  343. package/src/entity.ts +173 -0
  344. package/src/feature.ts +3 -3
  345. package/src/helper.ts +8 -4
  346. package/src/introspection/generated.agi.ts +3012 -1356
  347. package/src/introspection/generated.node.ts +179 -33
  348. package/src/introspection/generated.web.ts +95 -3
  349. package/src/introspection/scan.ts +1 -1
  350. package/src/node/container.ts +1 -1
  351. package/src/node/features/content-db.ts +57 -30
  352. package/src/node/features/file-manager.ts +10 -9
  353. package/src/node/features/git.ts +5 -5
  354. package/src/node/features/helpers.ts +1 -1
  355. package/src/node/features/json-tree.ts +1 -1
  356. package/src/node/features/os.ts +3 -3
  357. package/src/node/features/package-finder.ts +1 -1
  358. package/src/node/features/process-manager.ts +51 -18
  359. package/src/node/features/python.ts +3 -3
  360. package/src/node/features/redis.ts +1 -1
  361. package/src/node/features/repl.ts +2 -2
  362. package/src/node/features/transpiler.ts +2 -2
  363. package/src/node/features/ui.ts +1 -1
  364. package/src/node/features/vm.ts +3 -3
  365. package/src/node/features/yaml-tree.ts +1 -1
  366. package/src/node.ts +1 -0
  367. package/src/python/generated.ts +1 -1
  368. package/src/scaffolds/generated.ts +1 -1
  369. package/src/selector.ts +74 -4
  370. package/src/server.ts +2 -2
  371. package/src/servers/mcp.ts +6 -6
  372. package/src/web/features/helpers.ts +1 -1
  373. package/src/web/features/network.ts +1 -0
  374. package/test/assistant.test.ts +14 -5
  375. package/test/conversation.test.ts +220 -0
  376. package/test-integration/memory.test.ts +204 -0
  377. package/tsconfig.build.json +12 -0
  378. package/tsconfig.json +1 -1
  379. package/scripts/examples/telegram-ink-ui.ts +0 -302
  380. package/scripts/examples/using-openai-codex.ts +0 -23
  381. package/scripts/examples/vm-loading-esm-modules.ts +0 -16
@@ -0,0 +1,236 @@
1
+ import { z } from 'zod';
2
+ import { Feature } from '../feature.js';
3
+ import type { Assistant } from './assistant.js';
4
+ import type { InterceptorFn, InterceptorPoint, InterceptorPoints } from '../lib/interceptor-chain.js';
5
+ declare module '@soederpop/luca/feature' {
6
+ interface AvailableFeatures {
7
+ assistantsManager: typeof AssistantsManager;
8
+ }
9
+ }
10
+ /**
11
+ * Metadata for a discovered assistant subdirectory.
12
+ */
13
+ export interface AssistantEntry {
14
+ /** The subdirectory name, used as the assistant identifier. */
15
+ name: string;
16
+ /** Absolute path to the assistant folder. */
17
+ folder: string;
18
+ /** Whether a CORE.md system prompt file exists. */
19
+ hasCorePrompt: boolean;
20
+ /** Whether a tools.ts file exists. */
21
+ hasTools: boolean;
22
+ /** Whether a hooks.ts file exists. */
23
+ hasHooks: boolean;
24
+ /** Whether a voice.yaml configuration file exists. */
25
+ hasVoice: boolean;
26
+ }
27
+ export declare const AssistantsManagerEventsSchema: z.ZodObject<{
28
+ stateChange: z.ZodTuple<[z.ZodAny], null>;
29
+ enabled: z.ZodTuple<[], null>;
30
+ discovered: z.ZodTuple<[], null>;
31
+ assistantCreated: z.ZodTuple<[z.ZodString, z.ZodAny], null>;
32
+ assistantRegistered: z.ZodTuple<[z.ZodString], null>;
33
+ }, z.core.$strip>;
34
+ export declare const AssistantsManagerStateSchema: z.ZodObject<{
35
+ enabled: z.ZodDefault<z.ZodBoolean>;
36
+ discovered: z.ZodBoolean;
37
+ assistantCount: z.ZodNumber;
38
+ activeCount: z.ZodNumber;
39
+ entries: z.ZodRecord<z.ZodString, z.ZodAny>;
40
+ instances: z.ZodRecord<z.ZodString, z.ZodAny>;
41
+ factories: z.ZodRecord<z.ZodString, z.ZodAny>;
42
+ extraFolders: z.ZodArray<z.ZodString>;
43
+ }, z.core.$loose>;
44
+ export declare const AssistantsManagerOptionsSchema: z.ZodObject<{
45
+ name: z.ZodOptional<z.ZodString>;
46
+ _cacheKey: z.ZodOptional<z.ZodString>;
47
+ cached: z.ZodOptional<z.ZodBoolean>;
48
+ enable: z.ZodOptional<z.ZodBoolean>;
49
+ }, z.core.$strip>;
50
+ export type AssistantsManagerState = z.infer<typeof AssistantsManagerStateSchema>;
51
+ export type AssistantsManagerOptions = z.infer<typeof AssistantsManagerOptionsSchema>;
52
+ /**
53
+ * Discovers and manages assistant definitions by looking for subdirectories
54
+ * in two locations: ~/.luca/assistants/ and cwd/assistants/. Each subdirectory
55
+ * containing a CORE.md is treated as an assistant definition.
56
+ *
57
+ * Use `discover()` to scan for available assistants, `list()` to enumerate them,
58
+ * and `create(name)` to instantiate one as a running Assistant feature.
59
+ *
60
+ * @extends Feature
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const manager = container.feature('assistantsManager')
65
+ * manager.discover()
66
+ * console.log(manager.list()) // [{ name: 'chief-of-staff', folder: '...', ... }]
67
+ * const assistant = manager.create('chief-of-staff')
68
+ * const answer = await assistant.ask('Hello!')
69
+ * ```
70
+ */
71
+ export declare class AssistantsManager extends Feature<AssistantsManagerState, AssistantsManagerOptions> {
72
+ static stateSchema: z.ZodObject<{
73
+ enabled: z.ZodDefault<z.ZodBoolean>;
74
+ discovered: z.ZodBoolean;
75
+ assistantCount: z.ZodNumber;
76
+ activeCount: z.ZodNumber;
77
+ entries: z.ZodRecord<z.ZodString, z.ZodAny>;
78
+ instances: z.ZodRecord<z.ZodString, z.ZodAny>;
79
+ factories: z.ZodRecord<z.ZodString, z.ZodAny>;
80
+ extraFolders: z.ZodArray<z.ZodString>;
81
+ }, z.core.$loose>;
82
+ static optionsSchema: z.ZodObject<{
83
+ name: z.ZodOptional<z.ZodString>;
84
+ _cacheKey: z.ZodOptional<z.ZodString>;
85
+ cached: z.ZodOptional<z.ZodBoolean>;
86
+ enable: z.ZodOptional<z.ZodBoolean>;
87
+ }, z.core.$strip>;
88
+ static eventsSchema: z.ZodObject<{
89
+ stateChange: z.ZodTuple<[z.ZodAny], null>;
90
+ enabled: z.ZodTuple<[], null>;
91
+ discovered: z.ZodTuple<[], null>;
92
+ assistantCreated: z.ZodTuple<[z.ZodString, z.ZodAny], null>;
93
+ assistantRegistered: z.ZodTuple<[z.ZodString], null>;
94
+ }, z.core.$strip>;
95
+ static shortcut: "features.assistantsManager";
96
+ /** @returns Default state with discovery not yet run and zero counts. */
97
+ get initialState(): AssistantsManagerState;
98
+ /** Discovered assistant entries keyed by name. */
99
+ get entries(): Record<string, AssistantEntry>;
100
+ /** Active assistant instances keyed by name. */
101
+ get instances(): Record<string, Assistant>;
102
+ /** Registered factory functions keyed by name. */
103
+ get factories(): Record<string, (options: Record<string, any>) => Assistant>;
104
+ /** Interceptor registrations to be applied to every assistant this manager creates. */
105
+ private _interceptors;
106
+ /**
107
+ * Registers a pipeline interceptor that is applied to every assistant created by this manager.
108
+ * Interceptors are applied at the given interception point on each assistant at creation time.
109
+ * This mirrors the per-assistant `assistant.intercept(point, fn)` API, but scopes it globally
110
+ * across all assistants managed here — useful for cross-cutting concerns like logging, tracing,
111
+ * or policy enforcement.
112
+ *
113
+ * @param {InterceptorPoint} point - The interception point (beforeAsk, beforeTurn, beforeToolCall, afterToolCall, beforeResponse)
114
+ * @param {InterceptorFn<InterceptorPoints[K]>} fn - Middleware function receiving (ctx, next)
115
+ * @returns {this} This instance, for chaining
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * manager.intercept('beforeAsk', async (ctx, next) => {
120
+ * console.log(`[${ctx.assistant.name}] asking: ${ctx.message}`)
121
+ * await next()
122
+ * })
123
+ * ```
124
+ */
125
+ intercept<K extends InterceptorPoint>(point: K, fn: InterceptorFn<InterceptorPoints[K]>): this;
126
+ /**
127
+ * Discovers assistants by listing subdirectories in ~/.luca/assistants/
128
+ * and cwd/assistants/. Each subdirectory containing a CORE.md is an assistant.
129
+ *
130
+ * @returns {Promise<this>} This instance, for chaining
131
+ */
132
+ /**
133
+ * Registers an additional folder to scan during assistant discovery and
134
+ * immediately triggers a new discovery pass.
135
+ *
136
+ * @param {string} folderPath - Absolute path to a folder containing assistant subdirectories
137
+ * @returns {Promise<this>} This instance, for chaining
138
+ *
139
+ * @example
140
+ * ```typescript
141
+ * await manager.addDiscoveryFolder('/path/to/more/assistants')
142
+ * console.log(manager.available) // includes assistants from the new folder
143
+ * ```
144
+ */
145
+ addDiscoveryFolder(folderPath: string): Promise<this>;
146
+ discover(): Promise<this>;
147
+ /**
148
+ * Downloads the core assistants that ship with luca from GitHub
149
+ * into ~/.luca/assistants.
150
+ *
151
+ * @returns {Promise<{ files: string[] }>} The files extracted
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const manager = container.feature('assistantsManager')
156
+ * await manager.downloadLucaCoreAssistants()
157
+ * await manager.discover()
158
+ * console.log(manager.available)
159
+ * ```
160
+ */
161
+ downloadLucaCoreAssistants(): Promise<any>;
162
+ get available(): string[];
163
+ /**
164
+ * Returns all discovered assistant entries as an array.
165
+ *
166
+ * @returns {AssistantEntry[]} All discovered entries
167
+ */
168
+ list(): AssistantEntry[];
169
+ /**
170
+ * Looks up a single assistant entry by name.
171
+ *
172
+ * @param {string} name - The assistant name (e.g. 'chief-of-staff')
173
+ * @returns {AssistantEntry | undefined} The entry, or undefined if not found
174
+ */
175
+ get(name: string): AssistantEntry | undefined;
176
+ /**
177
+ * Registers a factory function that creates an assistant at runtime.
178
+ * Registered factories take precedence over discovered entries when
179
+ * calling `create()`.
180
+ *
181
+ * @param {string} id - The assistant identifier
182
+ * @param {(options: Record<string, any>) => Assistant} factory - Factory function that receives create options and returns an Assistant
183
+ * @returns {this} This instance, for chaining
184
+ *
185
+ * @example
186
+ * ```typescript
187
+ * manager.register('custom-bot', (options) => {
188
+ * return container.feature('assistant', {
189
+ * systemPrompt: 'You are a custom bot.',
190
+ * ...options,
191
+ * })
192
+ * })
193
+ * const bot = manager.create('custom-bot')
194
+ * ```
195
+ */
196
+ register(id: string, factory: (options: Record<string, any>) => Assistant): this;
197
+ /**
198
+ * Creates and returns a new Assistant feature instance for the given name.
199
+ * Checks runtime-registered factories first, then falls back to discovered entries.
200
+ * The assistant is configured with the discovered folder path. Any additional
201
+ * options are merged in.
202
+ *
203
+ * @param {string} name - The assistant name (must match a registered factory or discovered entry)
204
+ * @param {Record<string, any>} options - Additional options to pass to the Assistant constructor
205
+ * @returns {Assistant} The created assistant instance
206
+ * @throws {Error} If the name is not found among registered factories or discovered assistants
207
+ *
208
+ * @example
209
+ * ```typescript
210
+ * const assistant = manager.create('chief-of-staff', { model: 'gpt-4.1' })
211
+ * ```
212
+ */
213
+ create(name: string, options?: Record<string, any>): Assistant;
214
+ /**
215
+ * Wires an assistant into the manager: bridges all assistant events up to the manager
216
+ * as `assistantEvent:<eventName>` with (assistant, ...originalArgs), and applies any
217
+ * globally registered interceptors.
218
+ */
219
+ private _bindAssistant;
220
+ /**
221
+ * Returns a previously created assistant instance by name.
222
+ *
223
+ * @param {string} name - The assistant name
224
+ * @returns {Assistant | undefined} The instance, or undefined if not yet created
225
+ */
226
+ getInstance(name: string): Assistant | undefined;
227
+ /**
228
+ * Generates a markdown summary of all discovered assistants,
229
+ * listing their names and which definition files are present.
230
+ *
231
+ * @returns {string} Markdown-formatted summary
232
+ */
233
+ toSummary(): string;
234
+ }
235
+ export default AssistantsManager;
236
+ //# sourceMappingURL=assistants-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistants-manager.d.ts","sourceRoot":"","sources":["../../../src/agi/features/assistants-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,281 @@
1
+ import { z } from 'zod';
2
+ import { Feature } from '../feature.js';
3
+ import type { Assistant } from './assistant.js';
4
+ declare module '@soederpop/luca/feature' {
5
+ interface AvailableFeatures {
6
+ autoAssistant: typeof AutonomousAssistant;
7
+ }
8
+ }
9
+ /** Permission level for a tool. 'allow' runs immediately, 'ask' blocks for user approval, 'deny' rejects. */
10
+ export type PermissionLevel = 'allow' | 'ask' | 'deny';
11
+ /** A pending approval awaiting user decision. */
12
+ export interface PendingApproval {
13
+ id: string;
14
+ toolName: string;
15
+ args: Record<string, any>;
16
+ timestamp: number;
17
+ resolve: (decision: 'approve' | 'deny') => void;
18
+ }
19
+ /** Tool bundle spec — either a feature name string, or an object with filtering. */
20
+ export type ToolBundleSpec = string | {
21
+ feature: string;
22
+ only?: string[];
23
+ except?: string[];
24
+ };
25
+ export declare const AutonomousAssistantEventsSchema: z.ZodObject<{
26
+ stateChange: z.ZodTuple<[z.ZodAny], null>;
27
+ enabled: z.ZodTuple<[], null>;
28
+ started: z.ZodTuple<[], null>;
29
+ permissionRequest: z.ZodTuple<[z.ZodObject<{
30
+ id: z.ZodString;
31
+ toolName: z.ZodString;
32
+ args: z.ZodRecord<z.ZodString, z.ZodAny>;
33
+ }, z.core.$strip>], null>;
34
+ permissionGranted: z.ZodTuple<[z.ZodString], null>;
35
+ permissionDenied: z.ZodTuple<[z.ZodString], null>;
36
+ toolBlocked: z.ZodTuple<[z.ZodString, z.ZodString], null>;
37
+ chunk: z.ZodTuple<[z.ZodString], null>;
38
+ response: z.ZodTuple<[z.ZodString], null>;
39
+ toolCall: z.ZodTuple<[z.ZodString, z.ZodAny], null>;
40
+ toolResult: z.ZodTuple<[z.ZodString, z.ZodAny], null>;
41
+ toolError: z.ZodTuple<[z.ZodString, z.ZodAny], null>;
42
+ }, z.core.$strip>;
43
+ export declare const AutonomousAssistantStateSchema: z.ZodObject<{
44
+ enabled: z.ZodDefault<z.ZodBoolean>;
45
+ started: z.ZodBoolean;
46
+ permissions: z.ZodRecord<z.ZodString, z.ZodEnum<{
47
+ allow: "allow";
48
+ ask: "ask";
49
+ deny: "deny";
50
+ }>>;
51
+ defaultPermission: z.ZodEnum<{
52
+ allow: "allow";
53
+ ask: "ask";
54
+ deny: "deny";
55
+ }>;
56
+ pendingApprovals: z.ZodArray<z.ZodObject<{
57
+ id: z.ZodString;
58
+ toolName: z.ZodString;
59
+ args: z.ZodRecord<z.ZodString, z.ZodAny>;
60
+ timestamp: z.ZodNumber;
61
+ }, z.core.$strip>>;
62
+ approvalHistory: z.ZodArray<z.ZodObject<{
63
+ id: z.ZodString;
64
+ toolName: z.ZodString;
65
+ decision: z.ZodEnum<{
66
+ deny: "deny";
67
+ approve: "approve";
68
+ }>;
69
+ timestamp: z.ZodNumber;
70
+ }, z.core.$strip>>;
71
+ }, z.core.$loose>;
72
+ export declare const AutonomousAssistantOptionsSchema: z.ZodObject<{
73
+ name: z.ZodOptional<z.ZodString>;
74
+ _cacheKey: z.ZodOptional<z.ZodString>;
75
+ cached: z.ZodOptional<z.ZodBoolean>;
76
+ enable: z.ZodOptional<z.ZodBoolean>;
77
+ tools: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
78
+ feature: z.ZodString;
79
+ only: z.ZodOptional<z.ZodArray<z.ZodString>>;
80
+ except: z.ZodOptional<z.ZodArray<z.ZodString>>;
81
+ }, z.core.$strip>]>>>;
82
+ permissions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<{
83
+ allow: "allow";
84
+ ask: "ask";
85
+ deny: "deny";
86
+ }>>>;
87
+ defaultPermission: z.ZodDefault<z.ZodEnum<{
88
+ allow: "allow";
89
+ ask: "ask";
90
+ deny: "deny";
91
+ }>>;
92
+ systemPrompt: z.ZodOptional<z.ZodString>;
93
+ model: z.ZodOptional<z.ZodString>;
94
+ historyMode: z.ZodOptional<z.ZodEnum<{
95
+ session: "session";
96
+ lifecycle: "lifecycle";
97
+ daily: "daily";
98
+ persistent: "persistent";
99
+ }>>;
100
+ folder: z.ZodOptional<z.ZodString>;
101
+ }, z.core.$strip>;
102
+ export type AutonomousAssistantState = z.infer<typeof AutonomousAssistantStateSchema>;
103
+ export type AutonomousAssistantOptions = z.infer<typeof AutonomousAssistantOptionsSchema>;
104
+ /**
105
+ * An autonomous assistant that owns a lower-level Assistant instance and
106
+ * gates all tool calls through a permission system.
107
+ *
108
+ * Tools are stacked from feature bundles (fileTools, processManager, etc.)
109
+ * and each tool can be set to 'allow' (runs immediately), 'ask' (blocks
110
+ * until user approves/denies), or 'deny' (always rejected).
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * const auto = container.feature('autoAssistant', {
115
+ * tools: ['fileTools', { feature: 'processManager', except: ['killAllProcesses'] }],
116
+ * permissions: {
117
+ * readFile: 'allow',
118
+ * searchFiles: 'allow',
119
+ * writeFile: 'ask',
120
+ * editFile: 'ask',
121
+ * deleteFile: 'deny',
122
+ * },
123
+ * defaultPermission: 'ask',
124
+ * systemPrompt: 'You are a coding assistant.',
125
+ * })
126
+ *
127
+ * auto.on('permissionRequest', ({ id, toolName, args }) => {
128
+ * console.log(`Tool "${toolName}" wants to run with`, args)
129
+ * // Show UI, then:
130
+ * auto.approve(id) // or auto.deny(id)
131
+ * })
132
+ *
133
+ * await auto.ask('Refactor the auth module to use async/await')
134
+ * ```
135
+ *
136
+ * @extends Feature
137
+ */
138
+ export declare class AutonomousAssistant extends Feature<AutonomousAssistantState, AutonomousAssistantOptions> {
139
+ static shortcut: "features.autoAssistant";
140
+ static stateSchema: z.ZodObject<{
141
+ enabled: z.ZodDefault<z.ZodBoolean>;
142
+ started: z.ZodBoolean;
143
+ permissions: z.ZodRecord<z.ZodString, z.ZodEnum<{
144
+ allow: "allow";
145
+ ask: "ask";
146
+ deny: "deny";
147
+ }>>;
148
+ defaultPermission: z.ZodEnum<{
149
+ allow: "allow";
150
+ ask: "ask";
151
+ deny: "deny";
152
+ }>;
153
+ pendingApprovals: z.ZodArray<z.ZodObject<{
154
+ id: z.ZodString;
155
+ toolName: z.ZodString;
156
+ args: z.ZodRecord<z.ZodString, z.ZodAny>;
157
+ timestamp: z.ZodNumber;
158
+ }, z.core.$strip>>;
159
+ approvalHistory: z.ZodArray<z.ZodObject<{
160
+ id: z.ZodString;
161
+ toolName: z.ZodString;
162
+ decision: z.ZodEnum<{
163
+ deny: "deny";
164
+ approve: "approve";
165
+ }>;
166
+ timestamp: z.ZodNumber;
167
+ }, z.core.$strip>>;
168
+ }, z.core.$loose>;
169
+ static optionsSchema: z.ZodObject<{
170
+ name: z.ZodOptional<z.ZodString>;
171
+ _cacheKey: z.ZodOptional<z.ZodString>;
172
+ cached: z.ZodOptional<z.ZodBoolean>;
173
+ enable: z.ZodOptional<z.ZodBoolean>;
174
+ tools: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
175
+ feature: z.ZodString;
176
+ only: z.ZodOptional<z.ZodArray<z.ZodString>>;
177
+ except: z.ZodOptional<z.ZodArray<z.ZodString>>;
178
+ }, z.core.$strip>]>>>;
179
+ permissions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<{
180
+ allow: "allow";
181
+ ask: "ask";
182
+ deny: "deny";
183
+ }>>>;
184
+ defaultPermission: z.ZodDefault<z.ZodEnum<{
185
+ allow: "allow";
186
+ ask: "ask";
187
+ deny: "deny";
188
+ }>>;
189
+ systemPrompt: z.ZodOptional<z.ZodString>;
190
+ model: z.ZodOptional<z.ZodString>;
191
+ historyMode: z.ZodOptional<z.ZodEnum<{
192
+ session: "session";
193
+ lifecycle: "lifecycle";
194
+ daily: "daily";
195
+ persistent: "persistent";
196
+ }>>;
197
+ folder: z.ZodOptional<z.ZodString>;
198
+ }, z.core.$strip>;
199
+ static eventsSchema: z.ZodObject<{
200
+ stateChange: z.ZodTuple<[z.ZodAny], null>;
201
+ enabled: z.ZodTuple<[], null>;
202
+ started: z.ZodTuple<[], null>;
203
+ permissionRequest: z.ZodTuple<[z.ZodObject<{
204
+ id: z.ZodString;
205
+ toolName: z.ZodString;
206
+ args: z.ZodRecord<z.ZodString, z.ZodAny>;
207
+ }, z.core.$strip>], null>;
208
+ permissionGranted: z.ZodTuple<[z.ZodString], null>;
209
+ permissionDenied: z.ZodTuple<[z.ZodString], null>;
210
+ toolBlocked: z.ZodTuple<[z.ZodString, z.ZodString], null>;
211
+ chunk: z.ZodTuple<[z.ZodString], null>;
212
+ response: z.ZodTuple<[z.ZodString], null>;
213
+ toolCall: z.ZodTuple<[z.ZodString, z.ZodAny], null>;
214
+ toolResult: z.ZodTuple<[z.ZodString, z.ZodAny], null>;
215
+ toolError: z.ZodTuple<[z.ZodString, z.ZodAny], null>;
216
+ }, z.core.$strip>;
217
+ /** The inner assistant instance. Created during start(). */
218
+ private _assistant;
219
+ /** Map of pending approval promises keyed by ID. */
220
+ private _pendingResolvers;
221
+ get initialState(): AutonomousAssistantState;
222
+ /** The inner assistant. Throws if not started. */
223
+ get assistant(): Assistant;
224
+ /** Current permission map from state. */
225
+ get permissions(): Record<string, PermissionLevel>;
226
+ /** Current pending approvals. */
227
+ get pendingApprovals(): PendingApproval[];
228
+ /** Whether the assistant is started and ready. */
229
+ get isStarted(): boolean;
230
+ /** The tools registered on the inner assistant. */
231
+ get tools(): Record<string, any>;
232
+ /** The conversation on the inner assistant (if started). */
233
+ get conversation(): import("./conversation.js").Conversation | undefined;
234
+ /** Messages from the inner assistant's conversation. */
235
+ get messages(): import("openai/resources/index.mjs").ChatCompletionMessageParam[];
236
+ /** Get the effective permission level for a tool. */
237
+ getPermission(toolName: string): PermissionLevel;
238
+ /** Set permission level for one or more tools. */
239
+ setPermission(toolName: string | string[], level: PermissionLevel): this;
240
+ /** Set the default permission level for unconfigured tools. */
241
+ setDefaultPermission(level: PermissionLevel): this;
242
+ /** Allow a tool (or tools) to run without approval. */
243
+ permitTool(...toolNames: string[]): this;
244
+ /** Require approval before a tool (or tools) can run. */
245
+ gateTool(...toolNames: string[]): this;
246
+ /** Block a tool (or tools) from ever running. */
247
+ blockTool(...toolNames: string[]): this;
248
+ /** Approve a pending tool call by ID. The tool will execute. */
249
+ approve(id: string): this;
250
+ /** Deny a pending tool call by ID. The tool call will be skipped. */
251
+ deny(id: string): this;
252
+ /** Approve all pending tool calls. */
253
+ approveAll(): this;
254
+ /** Deny all pending tool calls. */
255
+ denyAll(): this;
256
+ /**
257
+ * Initialize the inner assistant, stack tool bundles, and wire up
258
+ * the permission interceptor.
259
+ */
260
+ start(): Promise<this>;
261
+ /**
262
+ * Ask the autonomous assistant a question. Auto-starts if needed.
263
+ * Tool calls will be gated by the permission system.
264
+ */
265
+ ask(question: string, options?: Record<string, any>): Promise<string>;
266
+ /**
267
+ * Add a tool bundle after initialization. Useful for dynamically
268
+ * extending the assistant's capabilities.
269
+ */
270
+ use(spec: ToolBundleSpec): this;
271
+ /** Resolve a tool bundle spec and register its tools on the inner assistant. */
272
+ private _stackToolBundle;
273
+ /** Create a pending approval, emit the event, and return a promise that resolves with the decision. */
274
+ private _requestApproval;
275
+ /** Remove a pending approval from state. */
276
+ private _removePending;
277
+ /** Record a decision in the approval history. */
278
+ private _recordDecision;
279
+ }
280
+ export default AutonomousAssistant;
281
+ //# sourceMappingURL=autonomous-assistant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autonomous-assistant.d.ts","sourceRoot":"","sources":["../../../src/agi/features/autonomous-assistant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG/C,OAAO,QAAQ,yBAAyB,CAAC;IACxC,UAAU,iBAAiB;QAC1B,aAAa,EAAE,OAAO,mBAAmB,CAAA;KACzC;CACD;AAED,6GAA6G;AAC7G,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;AAEtD,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED,oFAAoF;AACpF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;iBAgB1C,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBzC,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4B3C,CAAA;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACrF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAEzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,mBAAoB,SAAQ,OAAO,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;IACrG,OAAgB,QAAQ,EAAG,wBAAwB,CAAS;IAC5D,OAAgB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAiC;IAC5D,OAAgB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAmC;IAChE,OAAgB,YAAY;;;;;;;;;;;;;;;;;sBAAkC;IAI9D,4DAA4D;IAC5D,OAAO,CAAC,UAAU,CAAyB;IAE3C,oDAAoD;IACpD,OAAO,CAAC,iBAAiB,CAA4D;IAErF,IAAa,YAAY,IAAI,wBAAwB,CASpD;IAGD,kDAAkD;IAClD,IAAI,SAAS,IAAI,SAAS,CAGzB;IAED,yCAAyC;IACzC,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAEjD;IAED,iCAAiC;IACjC,IAAI,gBAAgB,IAAI,eAAe,EAAE,CAMxC;IAED,kDAAkD;IAClD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,mDAAmD;IACnD,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAE/B;IAED,4DAA4D;IAC5D,IAAI,YAAY,yDAEf;IAED,wDAAwD;IACxD,IAAI,QAAQ,sEAEX;IAMD,qDAAqD;IACrD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAMhD,kDAAkD;IAClD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IAUxE,+DAA+D;IAC/D,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAKlD,uDAAuD;IACvD,UAAU,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAIxC,yDAAyD;IACzD,QAAQ,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAItC,iDAAiD;IACjD,SAAS,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAQvC,gEAAgE;IAChE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAWzB,qEAAqE;IACrE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAWtB,sCAAsC;IACtC,UAAU,IAAI,IAAI;IAOlB,mCAAmC;IACnC,OAAO,IAAI,IAAI;IAWf;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4D5B;;;OAGG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3E;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAS/B,gFAAgF;IAChF,OAAO,CAAC,gBAAgB;IAcxB,uGAAuG;IACvG,OAAO,CAAC,gBAAgB;IAcxB,4CAA4C;IAC5C,OAAO,CAAC,cAAc;IAMtB,iDAAiD;IACjD,OAAO,CAAC,eAAe;CAavB;AAED,eAAe,mBAAmB,CAAA"}