@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,381 @@
1
+ import { z } from 'zod';
2
+ import { Feature } from '../feature.js';
3
+ declare module '@soederpop/luca/feature' {
4
+ interface AvailableFeatures {
5
+ openaiCodex: typeof OpenAICodex;
6
+ }
7
+ }
8
+ export interface CodexItem {
9
+ id: string;
10
+ type: 'agent_message' | 'reasoning' | 'command_execution' | string;
11
+ text?: string;
12
+ command?: string;
13
+ aggregated_output?: string;
14
+ exit_code?: number | null;
15
+ status?: 'in_progress' | 'completed' | string;
16
+ }
17
+ export interface CodexItemEvent {
18
+ type: 'item.completed' | 'item.started';
19
+ item: CodexItem;
20
+ }
21
+ export interface CodexTurnEvent {
22
+ type: 'turn.completed' | 'turn.started';
23
+ usage?: {
24
+ input_tokens?: number;
25
+ cached_input_tokens?: number;
26
+ output_tokens?: number;
27
+ };
28
+ }
29
+ export interface CodexThreadEvent {
30
+ type: 'thread.started';
31
+ thread_id: string;
32
+ }
33
+ /** Normalized message emitted via session:message for downstream consumers. */
34
+ export interface CodexMessageEvent {
35
+ type: 'message';
36
+ role: 'assistant' | 'system';
37
+ content: Array<{
38
+ type: 'text';
39
+ text: string;
40
+ } | {
41
+ type: string;
42
+ [key: string]: any;
43
+ }>;
44
+ }
45
+ export interface CodexExecEvent {
46
+ type: 'exec';
47
+ command: string;
48
+ cwd?: string;
49
+ exit_code?: number | null;
50
+ stdout?: string;
51
+ stderr?: string;
52
+ }
53
+ export type CodexEvent = CodexItemEvent | CodexTurnEvent | CodexThreadEvent | {
54
+ type: string;
55
+ [key: string]: any;
56
+ };
57
+ export interface CodexSession {
58
+ id: string;
59
+ status: 'idle' | 'running' | 'completed' | 'error';
60
+ prompt: string;
61
+ result?: string;
62
+ error?: string;
63
+ turns: number;
64
+ messages: CodexMessageEvent[];
65
+ executions: CodexExecEvent[];
66
+ items: CodexItem[];
67
+ process?: any;
68
+ threadId?: string;
69
+ usage?: {
70
+ input_tokens?: number;
71
+ output_tokens?: number;
72
+ };
73
+ }
74
+ export declare const OpenAICodexStateSchema: z.ZodObject<{
75
+ enabled: z.ZodDefault<z.ZodBoolean>;
76
+ sessions: z.ZodRecord<z.ZodString, z.ZodAny>;
77
+ activeSessions: z.ZodArray<z.ZodString>;
78
+ codexAvailable: z.ZodBoolean;
79
+ codexVersion: z.ZodOptional<z.ZodString>;
80
+ }, z.core.$loose>;
81
+ export declare const OpenAICodexOptionsSchema: z.ZodObject<{
82
+ name: z.ZodOptional<z.ZodString>;
83
+ _cacheKey: z.ZodOptional<z.ZodString>;
84
+ cached: z.ZodOptional<z.ZodBoolean>;
85
+ enable: z.ZodOptional<z.ZodBoolean>;
86
+ codexPath: z.ZodOptional<z.ZodString>;
87
+ model: z.ZodOptional<z.ZodString>;
88
+ cwd: z.ZodOptional<z.ZodString>;
89
+ sandbox: z.ZodOptional<z.ZodEnum<{
90
+ "read-only": "read-only";
91
+ "workspace-write": "workspace-write";
92
+ "danger-full-access": "danger-full-access";
93
+ }>>;
94
+ approvalMode: z.ZodOptional<z.ZodEnum<{
95
+ suggest: "suggest";
96
+ "auto-edit": "auto-edit";
97
+ "full-auto": "full-auto";
98
+ }>>;
99
+ projectDoc: z.ZodOptional<z.ZodString>;
100
+ noProjectDoc: z.ZodOptional<z.ZodBoolean>;
101
+ fullStdout: z.ZodOptional<z.ZodBoolean>;
102
+ }, z.core.$strip>;
103
+ export declare const OpenAICodexEventsSchema: z.ZodObject<{
104
+ stateChange: z.ZodTuple<[z.ZodAny], null>;
105
+ enabled: z.ZodTuple<[], null>;
106
+ 'session:start': z.ZodTuple<[z.ZodObject<{
107
+ sessionId: z.ZodString;
108
+ prompt: z.ZodString;
109
+ }, z.core.$strip>], null>;
110
+ 'session:event': z.ZodTuple<[z.ZodObject<{
111
+ sessionId: z.ZodString;
112
+ event: z.ZodAny;
113
+ }, z.core.$strip>], null>;
114
+ 'session:delta': z.ZodTuple<[z.ZodObject<{
115
+ sessionId: z.ZodString;
116
+ text: z.ZodString;
117
+ role: z.ZodString;
118
+ }, z.core.$strip>], null>;
119
+ 'session:message': z.ZodTuple<[z.ZodObject<{
120
+ sessionId: z.ZodString;
121
+ message: z.ZodAny;
122
+ }, z.core.$strip>], null>;
123
+ 'session:exec': z.ZodTuple<[z.ZodObject<{
124
+ sessionId: z.ZodString;
125
+ exec: z.ZodAny;
126
+ }, z.core.$strip>], null>;
127
+ 'session:exec-start': z.ZodTuple<[z.ZodObject<{
128
+ sessionId: z.ZodString;
129
+ command: z.ZodString;
130
+ }, z.core.$strip>], null>;
131
+ 'session:reasoning': z.ZodTuple<[z.ZodObject<{
132
+ sessionId: z.ZodString;
133
+ text: z.ZodString;
134
+ }, z.core.$strip>], null>;
135
+ 'session:result': z.ZodTuple<[z.ZodObject<{
136
+ sessionId: z.ZodString;
137
+ result: z.ZodString;
138
+ }, z.core.$strip>], null>;
139
+ 'session:error': z.ZodTuple<[z.ZodObject<{
140
+ sessionId: z.ZodString;
141
+ error: z.ZodAny;
142
+ exitCode: z.ZodOptional<z.ZodNumber>;
143
+ }, z.core.$strip>], null>;
144
+ 'session:abort': z.ZodTuple<[z.ZodObject<{
145
+ sessionId: z.ZodString;
146
+ }, z.core.$strip>], null>;
147
+ 'session:parse-error': z.ZodTuple<[z.ZodObject<{
148
+ sessionId: z.ZodString;
149
+ line: z.ZodString;
150
+ }, z.core.$strip>], null>;
151
+ }, z.core.$strip>;
152
+ export type OpenAICodexState = z.infer<typeof OpenAICodexStateSchema>;
153
+ export type OpenAICodexOptions = z.infer<typeof OpenAICodexOptionsSchema>;
154
+ export interface CodexRunOptions {
155
+ model?: string;
156
+ cwd?: string;
157
+ sandbox?: 'read-only' | 'workspace-write' | 'danger-full-access';
158
+ approvalMode?: 'suggest' | 'auto-edit' | 'full-auto';
159
+ projectDoc?: string;
160
+ noProjectDoc?: boolean;
161
+ fullStdout?: boolean;
162
+ images?: string[];
163
+ fullAuto?: boolean;
164
+ /** Resume a previous session by ID. */
165
+ resumeSessionId?: string;
166
+ /** Resume the most recent session. */
167
+ resumeLast?: boolean;
168
+ /** Skip all approvals and sandboxing. */
169
+ dangerouslyAutoApproveEverything?: boolean;
170
+ /** Additional CLI flags. */
171
+ extraArgs?: string[];
172
+ }
173
+ /**
174
+ * OpenAI Codex CLI wrapper feature. Spawns and manages Codex sessions
175
+ * as subprocesses, streaming structured JSON events back through the
176
+ * container's event system.
177
+ *
178
+ * Mirrors the ClaudeCode feature pattern: each call to `run()` spawns a
179
+ * `codex exec --json` process, parses NDJSON from stdout line-by-line,
180
+ * and emits typed events on the feature's event bus.
181
+ *
182
+ * @extends Feature
183
+ *
184
+ * @example
185
+ * ```typescript
186
+ * const codex = container.feature('openaiCodex')
187
+ *
188
+ * // Listen for events
189
+ * codex.on('session:message', ({ sessionId, message }) => console.log(message))
190
+ * codex.on('session:patch', ({ sessionId, patch }) => console.log('File changed:', patch.path))
191
+ *
192
+ * // Run a prompt
193
+ * const session = await codex.run('Fix the failing tests in src/')
194
+ * console.log(session.result)
195
+ * ```
196
+ */
197
+ export declare class OpenAICodex extends Feature<OpenAICodexState, OpenAICodexOptions> {
198
+ static stateSchema: z.ZodObject<{
199
+ enabled: z.ZodDefault<z.ZodBoolean>;
200
+ sessions: z.ZodRecord<z.ZodString, z.ZodAny>;
201
+ activeSessions: z.ZodArray<z.ZodString>;
202
+ codexAvailable: z.ZodBoolean;
203
+ codexVersion: z.ZodOptional<z.ZodString>;
204
+ }, z.core.$loose>;
205
+ static optionsSchema: z.ZodObject<{
206
+ name: z.ZodOptional<z.ZodString>;
207
+ _cacheKey: z.ZodOptional<z.ZodString>;
208
+ cached: z.ZodOptional<z.ZodBoolean>;
209
+ enable: z.ZodOptional<z.ZodBoolean>;
210
+ codexPath: z.ZodOptional<z.ZodString>;
211
+ model: z.ZodOptional<z.ZodString>;
212
+ cwd: z.ZodOptional<z.ZodString>;
213
+ sandbox: z.ZodOptional<z.ZodEnum<{
214
+ "read-only": "read-only";
215
+ "workspace-write": "workspace-write";
216
+ "danger-full-access": "danger-full-access";
217
+ }>>;
218
+ approvalMode: z.ZodOptional<z.ZodEnum<{
219
+ suggest: "suggest";
220
+ "auto-edit": "auto-edit";
221
+ "full-auto": "full-auto";
222
+ }>>;
223
+ projectDoc: z.ZodOptional<z.ZodString>;
224
+ noProjectDoc: z.ZodOptional<z.ZodBoolean>;
225
+ fullStdout: z.ZodOptional<z.ZodBoolean>;
226
+ }, z.core.$strip>;
227
+ static eventsSchema: z.ZodObject<{
228
+ stateChange: z.ZodTuple<[z.ZodAny], null>;
229
+ enabled: z.ZodTuple<[], null>;
230
+ 'session:start': z.ZodTuple<[z.ZodObject<{
231
+ sessionId: z.ZodString;
232
+ prompt: z.ZodString;
233
+ }, z.core.$strip>], null>;
234
+ 'session:event': z.ZodTuple<[z.ZodObject<{
235
+ sessionId: z.ZodString;
236
+ event: z.ZodAny;
237
+ }, z.core.$strip>], null>;
238
+ 'session:delta': z.ZodTuple<[z.ZodObject<{
239
+ sessionId: z.ZodString;
240
+ text: z.ZodString;
241
+ role: z.ZodString;
242
+ }, z.core.$strip>], null>;
243
+ 'session:message': z.ZodTuple<[z.ZodObject<{
244
+ sessionId: z.ZodString;
245
+ message: z.ZodAny;
246
+ }, z.core.$strip>], null>;
247
+ 'session:exec': z.ZodTuple<[z.ZodObject<{
248
+ sessionId: z.ZodString;
249
+ exec: z.ZodAny;
250
+ }, z.core.$strip>], null>;
251
+ 'session:exec-start': z.ZodTuple<[z.ZodObject<{
252
+ sessionId: z.ZodString;
253
+ command: z.ZodString;
254
+ }, z.core.$strip>], null>;
255
+ 'session:reasoning': z.ZodTuple<[z.ZodObject<{
256
+ sessionId: z.ZodString;
257
+ text: z.ZodString;
258
+ }, z.core.$strip>], null>;
259
+ 'session:result': z.ZodTuple<[z.ZodObject<{
260
+ sessionId: z.ZodString;
261
+ result: z.ZodString;
262
+ }, z.core.$strip>], null>;
263
+ 'session:error': z.ZodTuple<[z.ZodObject<{
264
+ sessionId: z.ZodString;
265
+ error: z.ZodAny;
266
+ exitCode: z.ZodOptional<z.ZodNumber>;
267
+ }, z.core.$strip>], null>;
268
+ 'session:abort': z.ZodTuple<[z.ZodObject<{
269
+ sessionId: z.ZodString;
270
+ }, z.core.$strip>], null>;
271
+ 'session:parse-error': z.ZodTuple<[z.ZodObject<{
272
+ sessionId: z.ZodString;
273
+ line: z.ZodString;
274
+ }, z.core.$strip>], null>;
275
+ }, z.core.$strip>;
276
+ static shortcut: "features.openaiCodex";
277
+ get initialState(): OpenAICodexState;
278
+ private _resolvedCodexPath;
279
+ /** @returns The path to the codex CLI binary, falling back to 'codex' on the PATH. */
280
+ get codexPath(): string;
281
+ /**
282
+ * Check if the Codex CLI is available and capture its version.
283
+ *
284
+ * @returns {Promise<boolean>} True if the codex binary was found and responded to --version
285
+ */
286
+ checkAvailability(): Promise<boolean>;
287
+ /**
288
+ * Build the argument array for a codex CLI invocation.
289
+ */
290
+ private buildArgs;
291
+ private createSessionId;
292
+ private updateSession;
293
+ /**
294
+ * Process a parsed JSON event from the Codex CLI stream.
295
+ *
296
+ * The codex CLI (codex exec --json) emits NDJSON with these event types:
297
+ * thread.started — { thread_id }
298
+ * turn.started — (no payload)
299
+ * item.started — { item: { id, type, ... } }
300
+ * item.completed — { item: { id, type, text?, command?, exit_code?, ... } }
301
+ * turn.completed — { usage: { input_tokens, output_tokens } }
302
+ *
303
+ * Item types within item.completed:
304
+ * agent_message — assistant text response
305
+ * reasoning — model thinking/reasoning
306
+ * command_execution — shell command with output
307
+ */
308
+ private handleEvent;
309
+ /**
310
+ * Run a prompt in a new Codex session. Spawns a subprocess,
311
+ * streams NDJSON events, and resolves when the session completes.
312
+ *
313
+ * @param {string} prompt - The natural language instruction for the Codex agent
314
+ * @param {CodexRunOptions} [options] - Optional overrides for model, cwd, sandbox policy, etc.
315
+ * @returns {Promise<CodexSession>} The completed session with result, messages, patches, and executions
316
+ *
317
+ * @example
318
+ * ```typescript
319
+ * const session = await codex.run('Fix the failing tests')
320
+ * console.log(session.result)
321
+ *
322
+ * const session = await codex.run('Refactor the auth module', {
323
+ * model: 'o4-mini',
324
+ * fullAuto: true,
325
+ * cwd: '/path/to/project'
326
+ * })
327
+ * ```
328
+ */
329
+ run(prompt: string, options?: CodexRunOptions): Promise<CodexSession>;
330
+ /**
331
+ * Run a prompt without waiting for completion. Returns the session ID
332
+ * immediately so you can subscribe to events.
333
+ *
334
+ * @param {string} prompt - The natural language instruction for the Codex agent
335
+ * @param {CodexRunOptions} [options] - Optional overrides for model, cwd, sandbox policy, etc.
336
+ * @returns {string} The session ID, which can be used with getSession() or waitForSession()
337
+ *
338
+ * @example
339
+ * ```typescript
340
+ * const sessionId = codex.start('Build a REST API for users')
341
+ *
342
+ * codex.on('session:delta', ({ sessionId: sid, text }) => {
343
+ * if (sid === sessionId) process.stdout.write(text)
344
+ * })
345
+ * ```
346
+ */
347
+ start(prompt: string, options?: CodexRunOptions): string;
348
+ private consumeStream;
349
+ /**
350
+ * Kill a running session's subprocess.
351
+ *
352
+ * @param {string} sessionId - The session ID to abort
353
+ * @returns {void}
354
+ */
355
+ abort(sessionId: string): void;
356
+ /**
357
+ * Retrieve the current state of a session by its ID.
358
+ *
359
+ * @param {string} sessionId - The session ID to look up
360
+ * @returns {CodexSession | undefined} The session object, or undefined if not found
361
+ */
362
+ getSession(sessionId: string): CodexSession | undefined;
363
+ /**
364
+ * Wait for a running session to complete or error. Resolves immediately
365
+ * if the session is already in a terminal state.
366
+ *
367
+ * @param {string} sessionId - The session ID to wait for
368
+ * @returns {Promise<CodexSession>} The completed or errored session
369
+ * @throws {Error} If the session ID is not found
370
+ */
371
+ waitForSession(sessionId: string): Promise<CodexSession>;
372
+ /**
373
+ * Enable the feature. Delegates to the base Feature enable() lifecycle.
374
+ *
375
+ * @param {object} [options] - Options to merge into the feature configuration
376
+ * @returns {Promise<this>} This instance, for chaining
377
+ */
378
+ enable(options?: any): Promise<this>;
379
+ }
380
+ export default OpenAICodex;
381
+ //# sourceMappingURL=openai-codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-codex.d.ts","sourceRoot":"","sources":["../../../src/agi/features/openai-codex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ import { Feature } from '../feature.js';
2
+ import { z } from 'zod';
3
+ declare module '../../feature.js' {
4
+ interface AvailableFeatures {
5
+ openapi: typeof OpenAPI;
6
+ }
7
+ }
8
+ export declare const OpenAPIStateSchema: z.ZodObject<{
9
+ enabled: z.ZodDefault<z.ZodBoolean>;
10
+ loaded: z.ZodDefault<z.ZodBoolean>;
11
+ title: z.ZodDefault<z.ZodString>;
12
+ version: z.ZodDefault<z.ZodString>;
13
+ endpointCount: z.ZodDefault<z.ZodNumber>;
14
+ }, z.core.$loose>;
15
+ export declare const OpenAPIOptionsSchema: z.ZodObject<{
16
+ name: z.ZodOptional<z.ZodString>;
17
+ _cacheKey: z.ZodOptional<z.ZodString>;
18
+ cached: z.ZodOptional<z.ZodBoolean>;
19
+ enable: z.ZodOptional<z.ZodBoolean>;
20
+ url: z.ZodOptional<z.ZodString>;
21
+ }, z.core.$strip>;
22
+ export declare const OpenAPIEventsSchema: z.ZodObject<{
23
+ stateChange: z.ZodTuple<[z.ZodAny], null>;
24
+ enabled: z.ZodTuple<[], null>;
25
+ loaded: z.ZodTuple<[z.ZodAny], null>;
26
+ }, z.core.$strip>;
27
+ export type OpenAPIOptions = z.infer<typeof OpenAPIOptionsSchema>;
28
+ export type OpenAPIState = z.infer<typeof OpenAPIStateSchema>;
29
+ export interface EndpointInfo {
30
+ /** Human-friendly camelCase name derived from operationId */
31
+ name: string;
32
+ /** Original operationId from the spec */
33
+ operationId: string;
34
+ /** HTTP method (get, post, put, delete, patch, etc.) */
35
+ method: string;
36
+ /** URL path template, e.g. /pets/{petId} */
37
+ path: string;
38
+ /** Summary from the spec */
39
+ summary: string;
40
+ /** Longer description from the spec */
41
+ description: string;
42
+ /** Tags for grouping */
43
+ tags: string[];
44
+ /** Parameter definitions from the spec */
45
+ parameters: OpenAPIParameter[];
46
+ /** Request body schema if present */
47
+ requestBody: any;
48
+ /** Response definitions keyed by status code */
49
+ responses: Record<string, any>;
50
+ /** Whether the endpoint is deprecated */
51
+ deprecated: boolean;
52
+ }
53
+ export interface OpenAPIParameter {
54
+ name: string;
55
+ in: 'query' | 'path' | 'header' | 'cookie';
56
+ description: string;
57
+ required: boolean;
58
+ schema: any;
59
+ }
60
+ export interface OpenAIFunctionDef {
61
+ name: string;
62
+ description: string;
63
+ parameters: {
64
+ type: 'object';
65
+ properties: Record<string, any>;
66
+ required: string[];
67
+ };
68
+ }
69
+ export interface OpenAIToolDef {
70
+ type: 'function';
71
+ function: OpenAIFunctionDef;
72
+ }
73
+ /**
74
+ * The OpenAPI feature loads an OpenAPI/Swagger spec from a URL and provides
75
+ * inspection and conversion utilities.
76
+ *
77
+ * Works in both browser and node environments since it uses fetch.
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * const api = container.feature('openapi', { url: 'https://petstore.swagger.io/v2' })
82
+ * await api.load()
83
+ *
84
+ * // Inspect all endpoints
85
+ * api.endpoints
86
+ *
87
+ * // Get a single endpoint by its friendly name
88
+ * api.endpoint('getPetById')
89
+ *
90
+ * // Convert to OpenAI tool definitions
91
+ * api.toTools()
92
+ *
93
+ * // Convert a single endpoint to a function definition
94
+ * api.toFunction('getPetById')
95
+ * ```
96
+ */
97
+ export declare class OpenAPI extends Feature<OpenAPIState, OpenAPIOptions> {
98
+ static shortcut: "features.openapi";
99
+ static description: string;
100
+ static stateSchema: z.ZodObject<{
101
+ enabled: z.ZodDefault<z.ZodBoolean>;
102
+ loaded: z.ZodDefault<z.ZodBoolean>;
103
+ title: z.ZodDefault<z.ZodString>;
104
+ version: z.ZodDefault<z.ZodString>;
105
+ endpointCount: z.ZodDefault<z.ZodNumber>;
106
+ }, z.core.$loose>;
107
+ static optionsSchema: z.ZodObject<{
108
+ name: z.ZodOptional<z.ZodString>;
109
+ _cacheKey: z.ZodOptional<z.ZodString>;
110
+ cached: z.ZodOptional<z.ZodBoolean>;
111
+ enable: z.ZodOptional<z.ZodBoolean>;
112
+ url: z.ZodOptional<z.ZodString>;
113
+ }, z.core.$strip>;
114
+ static eventsSchema: z.ZodObject<{
115
+ stateChange: z.ZodTuple<[z.ZodAny], null>;
116
+ enabled: z.ZodTuple<[], null>;
117
+ loaded: z.ZodTuple<[z.ZodAny], null>;
118
+ }, z.core.$strip>;
119
+ /** Raw parsed spec document */
120
+ private _spec;
121
+ /** Parsed endpoint map keyed by friendly name */
122
+ private _endpoints;
123
+ /** @returns Default state with loaded=false and empty metadata fields. */
124
+ get initialState(): OpenAPIState;
125
+ /** The base server URL derived from options, normalizing the openapi.json suffix */
126
+ get serverUrl(): string;
127
+ /** The URL that will be fetched for the spec document */
128
+ get specUrl(): string;
129
+ /** The raw spec object. Null before load() is called. */
130
+ get spec(): any;
131
+ /**
132
+ * Fetches and parses the OpenAPI spec from the configured URL.
133
+ * Populates `endpoints`, updates state with spec metadata.
134
+ *
135
+ * @returns {Promise<this>} This instance, for chaining
136
+ */
137
+ load(): Promise<this>;
138
+ /** All parsed endpoints as an array */
139
+ get endpoints(): EndpointInfo[];
140
+ /** All endpoint friendly names */
141
+ get endpointNames(): string[];
142
+ /** Map of endpoints grouped by tag */
143
+ get endpointsByTag(): Record<string, EndpointInfo[]>;
144
+ /**
145
+ * Get a single endpoint by its friendly name or operationId.
146
+ *
147
+ * @param {string} name - The friendly name or operationId to look up
148
+ * @returns {EndpointInfo | undefined} The endpoint info, or undefined if not found
149
+ */
150
+ endpoint(name: string): EndpointInfo | undefined;
151
+ /**
152
+ * Convert all endpoints into OpenAI-compatible tool definitions.
153
+ *
154
+ * @param {Function} [filter] - Optional predicate to select which endpoints to include
155
+ * @returns {OpenAIToolDef[]} Array of tool definitions ready for the OpenAI tools parameter
156
+ */
157
+ toTools(filter?: (ep: EndpointInfo) => boolean): OpenAIToolDef[];
158
+ /**
159
+ * Convert a single endpoint (by name) to an OpenAI-compatible tool definition.
160
+ *
161
+ * @param {string} name - The endpoint friendly name or operationId
162
+ * @returns {OpenAIToolDef | undefined} The tool definition, or undefined if not found
163
+ */
164
+ toTool(name: string): OpenAIToolDef | undefined;
165
+ /**
166
+ * Convert all endpoints into OpenAI-compatible function definitions.
167
+ *
168
+ * @param {Function} [filter] - Optional predicate to select which endpoints to include
169
+ * @returns {OpenAIFunctionDef[]} Array of function definitions
170
+ */
171
+ toFunctions(filter?: (ep: EndpointInfo) => boolean): OpenAIFunctionDef[];
172
+ /**
173
+ * Convert a single endpoint (by name) to an OpenAI function definition.
174
+ *
175
+ * @param {string} name - The endpoint friendly name or operationId
176
+ * @returns {OpenAIFunctionDef | undefined} The function definition, or undefined if not found
177
+ */
178
+ toFunction(name: string): OpenAIFunctionDef | undefined;
179
+ /**
180
+ * Return a compact JSON summary of all endpoints, useful for logging or REPL inspection.
181
+ *
182
+ * @returns {{ title: string, version: string, serverUrl: string, endpointCount: number, endpoints: object[] }} Serializable summary
183
+ */
184
+ toJSON(): {
185
+ title: string | undefined;
186
+ version: string | undefined;
187
+ serverUrl: string;
188
+ endpointCount: number;
189
+ endpoints: {
190
+ name: string;
191
+ method: string;
192
+ path: string;
193
+ summary: string;
194
+ tags: string[];
195
+ deprecated: boolean;
196
+ }[];
197
+ };
198
+ }
199
+ export default OpenAPI;
200
+ //# sourceMappingURL=openapi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../../src/agi/features/openapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,iBAAiB;QACzB,OAAO,EAAE,OAAO,OAAO,CAAA;KACxB;CACF;AAED,eAAO,MAAM,kBAAkB;;;;;;iBAK7B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;iBAE/B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;iBAEH,CAAA;AAE7B,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACjE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAI7D,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;IACd,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,wBAAwB;IACxB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,0CAA0C;IAC1C,UAAU,EAAE,gBAAgB,EAAE,CAAA;IAC9B,qCAAqC;IACrC,WAAW,EAAE,GAAG,CAAA;IAChB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC1C,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,GAAG,CAAA;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAA;QACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,iBAAiB,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,OAAQ,SAAQ,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC;IAChE,OAAgB,QAAQ,EAAG,kBAAkB,CAAS;IACtD,OAAgB,WAAW,SAA0F;IACrH,OAAgB,WAAW;;;;;;sBAAqB;IAChD,OAAgB,aAAa;;;;;;sBAAuB;IACpD,OAAgB,YAAY;;;;sBAAsB;IAIlD,+BAA+B;IAC/B,OAAO,CAAC,KAAK,CAAY;IAEzB,iDAAiD;IACjD,OAAO,CAAC,UAAU,CAAuC;IAEzD,0EAA0E;IAC1E,IAAa,YAAY,IAAI,YAAY,CAExC;IAED,oFAAoF;IACpF,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,yDAAyD;IACzD,IAAI,OAAO,IAAI,MAAM,CAIpB;IAED,yDAAyD;IACzD,IAAI,IAAI,QAEP;IAED;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B,uCAAuC;IACvC,IAAI,SAAS,IAAI,YAAY,EAAE,CAE9B;IAED,kCAAkC;IAClC,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,sCAAsC;IACtC,IAAI,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAUnD;IAED;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAKhD;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,aAAa,EAAE;IAQhE;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAM/C;;;;;OAKG;IACH,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,GAAG,iBAAiB,EAAE;IAKxE;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMvD;;;;OAIG;IACH,MAAM;;;;;;;;;;;;;;CAgBP;AA6KD,eAAe,OAAO,CAAA"}