@soederpop/luca 0.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 (358) hide show
  1. package/CLAUDE.md +71 -0
  2. package/README.md +78 -0
  3. package/bun.lock +2928 -0
  4. package/bunfig.toml +3 -0
  5. package/commands/audit-docs.ts +740 -0
  6. package/commands/build-scaffolds.ts +154 -0
  7. package/commands/generate-api-docs.ts +114 -0
  8. package/commands/update-introspection.ts +67 -0
  9. package/docs/CLI.md +335 -0
  10. package/docs/README.md +88 -0
  11. package/docs/TABLE-OF-CONTENTS.md +157 -0
  12. package/docs/apis/clients/elevenlabs.md +84 -0
  13. package/docs/apis/clients/graph.md +56 -0
  14. package/docs/apis/clients/openai.md +69 -0
  15. package/docs/apis/clients/rest.md +41 -0
  16. package/docs/apis/clients/websocket.md +107 -0
  17. package/docs/apis/features/agi/assistant.md +471 -0
  18. package/docs/apis/features/agi/assistants-manager.md +154 -0
  19. package/docs/apis/features/agi/claude-code.md +602 -0
  20. package/docs/apis/features/agi/conversation-history.md +352 -0
  21. package/docs/apis/features/agi/conversation.md +333 -0
  22. package/docs/apis/features/agi/docs-reader.md +121 -0
  23. package/docs/apis/features/agi/openai-codex.md +318 -0
  24. package/docs/apis/features/agi/openapi.md +138 -0
  25. package/docs/apis/features/agi/semantic-search.md +387 -0
  26. package/docs/apis/features/agi/skills-library.md +216 -0
  27. package/docs/apis/features/node/container-link.md +133 -0
  28. package/docs/apis/features/node/content-db.md +313 -0
  29. package/docs/apis/features/node/disk-cache.md +379 -0
  30. package/docs/apis/features/node/dns.md +651 -0
  31. package/docs/apis/features/node/docker.md +705 -0
  32. package/docs/apis/features/node/downloader.md +81 -0
  33. package/docs/apis/features/node/esbuild.md +59 -0
  34. package/docs/apis/features/node/file-manager.md +182 -0
  35. package/docs/apis/features/node/fs.md +581 -0
  36. package/docs/apis/features/node/git.md +330 -0
  37. package/docs/apis/features/node/google-auth.md +174 -0
  38. package/docs/apis/features/node/google-calendar.md +187 -0
  39. package/docs/apis/features/node/google-docs.md +151 -0
  40. package/docs/apis/features/node/google-drive.md +225 -0
  41. package/docs/apis/features/node/google-sheets.md +179 -0
  42. package/docs/apis/features/node/grep.md +290 -0
  43. package/docs/apis/features/node/helpers.md +135 -0
  44. package/docs/apis/features/node/ink.md +334 -0
  45. package/docs/apis/features/node/ipc-socket.md +260 -0
  46. package/docs/apis/features/node/json-tree.md +86 -0
  47. package/docs/apis/features/node/launcher-app-command-listener.md +145 -0
  48. package/docs/apis/features/node/networking.md +281 -0
  49. package/docs/apis/features/node/nlp.md +133 -0
  50. package/docs/apis/features/node/opener.md +97 -0
  51. package/docs/apis/features/node/os.md +118 -0
  52. package/docs/apis/features/node/package-finder.md +402 -0
  53. package/docs/apis/features/node/postgres.md +212 -0
  54. package/docs/apis/features/node/proc.md +430 -0
  55. package/docs/apis/features/node/process-manager.md +210 -0
  56. package/docs/apis/features/node/python.md +278 -0
  57. package/docs/apis/features/node/repl.md +88 -0
  58. package/docs/apis/features/node/runpod.md +673 -0
  59. package/docs/apis/features/node/secure-shell.md +169 -0
  60. package/docs/apis/features/node/semantic-search.md +401 -0
  61. package/docs/apis/features/node/sqlite.md +211 -0
  62. package/docs/apis/features/node/telegram.md +254 -0
  63. package/docs/apis/features/node/tts.md +118 -0
  64. package/docs/apis/features/node/ui.md +703 -0
  65. package/docs/apis/features/node/vault.md +64 -0
  66. package/docs/apis/features/node/vm.md +84 -0
  67. package/docs/apis/features/node/window-manager.md +337 -0
  68. package/docs/apis/features/node/yaml-tree.md +85 -0
  69. package/docs/apis/features/node/yaml.md +176 -0
  70. package/docs/apis/features/web/asset-loader.md +47 -0
  71. package/docs/apis/features/web/container-link.md +133 -0
  72. package/docs/apis/features/web/esbuild.md +59 -0
  73. package/docs/apis/features/web/helpers.md +135 -0
  74. package/docs/apis/features/web/network.md +30 -0
  75. package/docs/apis/features/web/speech.md +55 -0
  76. package/docs/apis/features/web/vault.md +64 -0
  77. package/docs/apis/features/web/vm.md +84 -0
  78. package/docs/apis/features/web/voice.md +67 -0
  79. package/docs/apis/servers/express.md +127 -0
  80. package/docs/apis/servers/mcp.md +213 -0
  81. package/docs/apis/servers/websocket.md +99 -0
  82. package/docs/documentation-audit.md +134 -0
  83. package/docs/examples/content-db.md +77 -0
  84. package/docs/examples/disk-cache.md +83 -0
  85. package/docs/examples/docker.md +101 -0
  86. package/docs/examples/downloader.md +70 -0
  87. package/docs/examples/esbuild.md +80 -0
  88. package/docs/examples/file-manager.md +82 -0
  89. package/docs/examples/fs.md +83 -0
  90. package/docs/examples/git.md +85 -0
  91. package/docs/examples/google-auth.md +88 -0
  92. package/docs/examples/google-calendar.md +94 -0
  93. package/docs/examples/google-docs.md +82 -0
  94. package/docs/examples/google-drive.md +96 -0
  95. package/docs/examples/google-sheets.md +95 -0
  96. package/docs/examples/grep.md +85 -0
  97. package/docs/examples/ink-blocks.md +75 -0
  98. package/docs/examples/ink-renderer.md +41 -0
  99. package/docs/examples/ink.md +103 -0
  100. package/docs/examples/ipc-socket.md +103 -0
  101. package/docs/examples/json-tree.md +91 -0
  102. package/docs/examples/launcher-app-command-listener.md +120 -0
  103. package/docs/examples/networking.md +58 -0
  104. package/docs/examples/nlp.md +91 -0
  105. package/docs/examples/opener.md +78 -0
  106. package/docs/examples/os.md +72 -0
  107. package/docs/examples/package-finder.md +89 -0
  108. package/docs/examples/port-exposer.md +89 -0
  109. package/docs/examples/postgres.md +91 -0
  110. package/docs/examples/proc.md +81 -0
  111. package/docs/examples/process-manager.md +79 -0
  112. package/docs/examples/python.md +91 -0
  113. package/docs/examples/repl.md +93 -0
  114. package/docs/examples/runpod.md +119 -0
  115. package/docs/examples/secure-shell.md +92 -0
  116. package/docs/examples/sqlite.md +86 -0
  117. package/docs/examples/telegram.md +77 -0
  118. package/docs/examples/tts.md +86 -0
  119. package/docs/examples/ui.md +80 -0
  120. package/docs/examples/vault.md +70 -0
  121. package/docs/examples/vm.md +86 -0
  122. package/docs/examples/window-manager.md +125 -0
  123. package/docs/examples/yaml-tree.md +93 -0
  124. package/docs/examples/yaml.md +104 -0
  125. package/docs/ideas/class-registration-refactor-possibilities.md +197 -0
  126. package/docs/ideas/container-use-api.md +9 -0
  127. package/docs/ideas/easy-auth-for-express-servers-and-luca-serve.md +0 -0
  128. package/docs/ideas/feature-stacks.md +22 -0
  129. package/docs/ideas/luca-cli-self-sufficiency-demo.md +23 -0
  130. package/docs/ideas/mcp-design.md +9 -0
  131. package/docs/ideas/web-container-debugging-feature.md +13 -0
  132. package/docs/introspection-audit.md +49 -0
  133. package/docs/introspection.md +154 -0
  134. package/docs/mcp/readme.md +162 -0
  135. package/docs/models.ts +38 -0
  136. package/docs/philosophy.md +85 -0
  137. package/docs/principles.md +7 -0
  138. package/docs/prompts/audit-codebase-for-failures-to-use-the-container.md +34 -0
  139. package/docs/prompts/mcp-test-easy-command.md +27 -0
  140. package/docs/reports/assistant-bugs.md +38 -0
  141. package/docs/reports/attach-pattern-usage.md +18 -0
  142. package/docs/reports/code-audit-results.md +391 -0
  143. package/docs/reports/introspection-audit-tasks.md +378 -0
  144. package/docs/reports/luca-mcp-improvements.md +128 -0
  145. package/docs/scaffolds/client.md +140 -0
  146. package/docs/scaffolds/command.md +106 -0
  147. package/docs/scaffolds/endpoint.md +176 -0
  148. package/docs/scaffolds/feature.md +148 -0
  149. package/docs/scaffolds/server.md +187 -0
  150. package/docs/tasks/web-container-helper-discovery.md +71 -0
  151. package/docs/todos.md +1 -0
  152. package/docs/tutorials/01-getting-started.md +106 -0
  153. package/docs/tutorials/02-container.md +210 -0
  154. package/docs/tutorials/03-scripts.md +194 -0
  155. package/docs/tutorials/04-features-overview.md +196 -0
  156. package/docs/tutorials/05-state-and-events.md +171 -0
  157. package/docs/tutorials/06-servers.md +157 -0
  158. package/docs/tutorials/07-endpoints.md +198 -0
  159. package/docs/tutorials/08-commands.md +171 -0
  160. package/docs/tutorials/09-clients.md +162 -0
  161. package/docs/tutorials/10-creating-features.md +198 -0
  162. package/docs/tutorials/11-contentbase.md +191 -0
  163. package/docs/tutorials/12-assistants.md +215 -0
  164. package/docs/tutorials/13-introspection.md +147 -0
  165. package/docs/tutorials/14-type-system.md +174 -0
  166. package/docs/tutorials/15-project-patterns.md +222 -0
  167. package/docs/tutorials/16-google-features.md +534 -0
  168. package/docs/tutorials/17-tui-blocks.md +530 -0
  169. package/docs/tutorials/18-semantic-search.md +334 -0
  170. package/index.ts +1 -0
  171. package/luca.console.ts +9 -0
  172. package/main.py +6 -0
  173. package/package.json +154 -0
  174. package/pyproject.toml +7 -0
  175. package/scripts/animations/chrome-glitch.ts +55 -0
  176. package/scripts/animations/index.ts +16 -0
  177. package/scripts/animations/neon-pulse.ts +64 -0
  178. package/scripts/animations/types.ts +6 -0
  179. package/scripts/build-web.ts +28 -0
  180. package/scripts/examples/ask-luca-expert.ts +42 -0
  181. package/scripts/examples/assistant-questions.ts +12 -0
  182. package/scripts/examples/excalidraw-expert.ts +75 -0
  183. package/scripts/examples/expert-chat.ts +0 -0
  184. package/scripts/examples/file-manager.ts +14 -0
  185. package/scripts/examples/ideas.ts +12 -0
  186. package/scripts/examples/interactive-chat.ts +20 -0
  187. package/scripts/examples/openai-tool-calls.ts +113 -0
  188. package/scripts/examples/opening-a-web-browser.ts +5 -0
  189. package/scripts/examples/telegram-bot.ts +79 -0
  190. package/scripts/examples/telegram-ink-ui.ts +302 -0
  191. package/scripts/examples/using-assistant-with-mcp.ts +560 -0
  192. package/scripts/examples/using-claude-code.ts +10 -0
  193. package/scripts/examples/using-contentdb.ts +35 -0
  194. package/scripts/examples/using-conversations.ts +35 -0
  195. package/scripts/examples/using-disk-cache.ts +10 -0
  196. package/scripts/examples/using-docker-shell.ts +75 -0
  197. package/scripts/examples/using-elevenlabs.ts +25 -0
  198. package/scripts/examples/using-google-calendar.ts +57 -0
  199. package/scripts/examples/using-google-docs.ts +74 -0
  200. package/scripts/examples/using-google-drive.ts +74 -0
  201. package/scripts/examples/using-google-sheets.ts +89 -0
  202. package/scripts/examples/using-nlp.ts +55 -0
  203. package/scripts/examples/using-ollama.ts +10 -0
  204. package/scripts/examples/using-openai-codex.ts +23 -0
  205. package/scripts/examples/using-postgres.ts +55 -0
  206. package/scripts/examples/using-runpod.ts +32 -0
  207. package/scripts/examples/using-tts.ts +40 -0
  208. package/scripts/examples/vm-loading-esm-modules.ts +16 -0
  209. package/scripts/scaffold.ts +391 -0
  210. package/scripts/scratch.ts +15 -0
  211. package/scripts/test-command-listener.ts +123 -0
  212. package/scripts/test-window-manager-lifecycle.ts +86 -0
  213. package/scripts/test-window-manager.ts +43 -0
  214. package/scripts/update-introspection-data.ts +58 -0
  215. package/src/agi/README.md +14 -0
  216. package/src/agi/container.server.ts +114 -0
  217. package/src/agi/endpoints/ask.ts +60 -0
  218. package/src/agi/endpoints/conversations/[id].ts +45 -0
  219. package/src/agi/endpoints/conversations.ts +31 -0
  220. package/src/agi/endpoints/experts.ts +37 -0
  221. package/src/agi/features/assistant.ts +767 -0
  222. package/src/agi/features/assistants-manager.ts +260 -0
  223. package/src/agi/features/claude-code.ts +1111 -0
  224. package/src/agi/features/conversation-history.ts +497 -0
  225. package/src/agi/features/conversation.ts +799 -0
  226. package/src/agi/features/openai-codex.ts +631 -0
  227. package/src/agi/features/openapi.ts +438 -0
  228. package/src/agi/features/skills-library.ts +425 -0
  229. package/src/agi/index.ts +6 -0
  230. package/src/agi/lib/token-counter.ts +122 -0
  231. package/src/browser.ts +25 -0
  232. package/src/bus.ts +100 -0
  233. package/src/cli/cli.ts +70 -0
  234. package/src/client.ts +461 -0
  235. package/src/clients/civitai/index.ts +541 -0
  236. package/src/clients/client-template.ts +41 -0
  237. package/src/clients/comfyui/index.ts +597 -0
  238. package/src/clients/elevenlabs/index.ts +291 -0
  239. package/src/clients/openai/index.ts +451 -0
  240. package/src/clients/supabase/index.ts +366 -0
  241. package/src/command.ts +164 -0
  242. package/src/commands/chat.ts +182 -0
  243. package/src/commands/console.ts +192 -0
  244. package/src/commands/describe.ts +433 -0
  245. package/src/commands/eval.ts +116 -0
  246. package/src/commands/help.ts +214 -0
  247. package/src/commands/index.ts +14 -0
  248. package/src/commands/mcp.ts +64 -0
  249. package/src/commands/prompt.ts +807 -0
  250. package/src/commands/run.ts +257 -0
  251. package/src/commands/sandbox-mcp.ts +439 -0
  252. package/src/commands/scaffold.ts +79 -0
  253. package/src/commands/serve.ts +172 -0
  254. package/src/container.ts +781 -0
  255. package/src/endpoint.ts +340 -0
  256. package/src/feature.ts +75 -0
  257. package/src/hash-object.ts +97 -0
  258. package/src/helper.ts +543 -0
  259. package/src/introspection/generated.agi.ts +23388 -0
  260. package/src/introspection/generated.node.ts +18899 -0
  261. package/src/introspection/generated.web.ts +2021 -0
  262. package/src/introspection/index.ts +256 -0
  263. package/src/introspection/scan.ts +912 -0
  264. package/src/node/container.ts +354 -0
  265. package/src/node/feature.ts +13 -0
  266. package/src/node/features/container-link.ts +558 -0
  267. package/src/node/features/content-db.ts +475 -0
  268. package/src/node/features/disk-cache.ts +382 -0
  269. package/src/node/features/dns.ts +655 -0
  270. package/src/node/features/docker.ts +912 -0
  271. package/src/node/features/downloader.ts +92 -0
  272. package/src/node/features/esbuild.ts +68 -0
  273. package/src/node/features/file-manager.ts +357 -0
  274. package/src/node/features/fs.ts +534 -0
  275. package/src/node/features/git.ts +492 -0
  276. package/src/node/features/google-auth.ts +502 -0
  277. package/src/node/features/google-calendar.ts +300 -0
  278. package/src/node/features/google-docs.ts +404 -0
  279. package/src/node/features/google-drive.ts +339 -0
  280. package/src/node/features/google-sheets.ts +279 -0
  281. package/src/node/features/grep.ts +406 -0
  282. package/src/node/features/helpers.ts +374 -0
  283. package/src/node/features/ink.ts +490 -0
  284. package/src/node/features/ipc-socket.ts +459 -0
  285. package/src/node/features/json-tree.ts +188 -0
  286. package/src/node/features/launcher-app-command-listener.ts +388 -0
  287. package/src/node/features/networking.ts +925 -0
  288. package/src/node/features/nlp.ts +211 -0
  289. package/src/node/features/opener.ts +166 -0
  290. package/src/node/features/os.ts +157 -0
  291. package/src/node/features/package-finder.ts +539 -0
  292. package/src/node/features/port-exposer.ts +342 -0
  293. package/src/node/features/postgres.ts +273 -0
  294. package/src/node/features/proc.ts +502 -0
  295. package/src/node/features/process-manager.ts +542 -0
  296. package/src/node/features/python.ts +444 -0
  297. package/src/node/features/repl.ts +194 -0
  298. package/src/node/features/runpod.ts +802 -0
  299. package/src/node/features/secure-shell.ts +248 -0
  300. package/src/node/features/semantic-search.ts +924 -0
  301. package/src/node/features/sqlite.ts +289 -0
  302. package/src/node/features/telegram.ts +342 -0
  303. package/src/node/features/tts.ts +184 -0
  304. package/src/node/features/ui.ts +857 -0
  305. package/src/node/features/vault.ts +164 -0
  306. package/src/node/features/vm.ts +312 -0
  307. package/src/node/features/window-manager.ts +804 -0
  308. package/src/node/features/yaml-tree.ts +149 -0
  309. package/src/node/features/yaml.ts +132 -0
  310. package/src/node.ts +70 -0
  311. package/src/react/index.ts +175 -0
  312. package/src/registry.ts +199 -0
  313. package/src/scaffolds/generated.ts +1613 -0
  314. package/src/scaffolds/template.ts +37 -0
  315. package/src/schemas/base.ts +255 -0
  316. package/src/server.ts +135 -0
  317. package/src/servers/express.ts +209 -0
  318. package/src/servers/mcp.ts +805 -0
  319. package/src/servers/socket.ts +120 -0
  320. package/src/state.ts +101 -0
  321. package/src/web/clients/socket.ts +82 -0
  322. package/src/web/container.ts +74 -0
  323. package/src/web/extension.ts +30 -0
  324. package/src/web/feature.ts +12 -0
  325. package/src/web/features/asset-loader.ts +64 -0
  326. package/src/web/features/container-link.ts +385 -0
  327. package/src/web/features/esbuild.ts +79 -0
  328. package/src/web/features/helpers.ts +267 -0
  329. package/src/web/features/network.ts +61 -0
  330. package/src/web/features/speech.ts +87 -0
  331. package/src/web/features/vault.ts +189 -0
  332. package/src/web/features/vm.ts +78 -0
  333. package/src/web/features/voice-recognition.ts +129 -0
  334. package/src/web/shims/isomorphic-vm.ts +149 -0
  335. package/test/bus.test.ts +134 -0
  336. package/test/clients-servers.test.ts +216 -0
  337. package/test/container-link.test.ts +274 -0
  338. package/test/features.test.ts +160 -0
  339. package/test/integration.test.ts +787 -0
  340. package/test/node-container.test.ts +121 -0
  341. package/test/rate-limit.test.ts +272 -0
  342. package/test/semantic-search.test.ts +550 -0
  343. package/test/state.test.ts +121 -0
  344. package/test-integration/assistant.test.ts +138 -0
  345. package/test-integration/assistants-manager.test.ts +123 -0
  346. package/test-integration/claude-code.test.ts +98 -0
  347. package/test-integration/conversation-history.test.ts +205 -0
  348. package/test-integration/conversation.test.ts +137 -0
  349. package/test-integration/elevenlabs.test.ts +55 -0
  350. package/test-integration/google-services.test.ts +80 -0
  351. package/test-integration/helpers.ts +89 -0
  352. package/test-integration/openai-codex.test.ts +93 -0
  353. package/test-integration/runpod.test.ts +58 -0
  354. package/test-integration/server-endpoints.test.ts +97 -0
  355. package/test-integration/skills-library.test.ts +157 -0
  356. package/test-integration/telegram.test.ts +46 -0
  357. package/tsconfig.json +58 -0
  358. package/uv.lock +8 -0
@@ -0,0 +1,84 @@
1
+ # VM (features.vm)
2
+
3
+ The VM features providers a virtual machine for executing JavaScript code in a sandboxed environment. The Vm feature automatically injects the container.context object into the global scope, so these things can be referenced in the code and the code can use anything provided by the container.
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ container.feature('vm', {
9
+ // Default context object to inject into the VM execution environment
10
+ context,
11
+ })
12
+ ```
13
+
14
+ ## Options (Zod v4 schema)
15
+
16
+ | Property | Type | Description |
17
+ |----------|------|-------------|
18
+ | `context` | `any` | Default context object to inject into the VM execution environment |
19
+
20
+ ## Methods
21
+
22
+ ### createScript
23
+
24
+ **Parameters:**
25
+
26
+ | Name | Type | Required | Description |
27
+ |------|------|----------|-------------|
28
+ | `code` | `string` | ✓ | Parameter code |
29
+
30
+ **Returns:** `void`
31
+
32
+
33
+
34
+ ### createContext
35
+
36
+ **Parameters:**
37
+
38
+ | Name | Type | Required | Description |
39
+ |------|------|----------|-------------|
40
+ | `ctx` | `any` | | Parameter ctx |
41
+
42
+ **Returns:** `void`
43
+
44
+
45
+
46
+ ### run
47
+
48
+ **Parameters:**
49
+
50
+ | Name | Type | Required | Description |
51
+ |------|------|----------|-------------|
52
+ | `code` | `string` | ✓ | Parameter code |
53
+ | `ctx` | `any` | | Parameter ctx |
54
+ | `options` | `any` | | Parameter options |
55
+
56
+ **Returns:** `void`
57
+
58
+
59
+
60
+ ## State (Zod v4 schema)
61
+
62
+ | Property | Type | Description |
63
+ |----------|------|-------------|
64
+ | `enabled` | `boolean` | Whether this feature is currently enabled |
65
+
66
+ ## Examples
67
+
68
+ **features.vm**
69
+
70
+ ```ts
71
+ const vm = container.feature('vm')
72
+
73
+ // Execute simple code
74
+ const result = vm.run('1 + 2 + 3')
75
+ console.log(result) // 6
76
+
77
+ // Execute code with custom context
78
+ const result2 = vm.run('greeting + " " + name', {
79
+ greeting: 'Hello',
80
+ name: 'World'
81
+ })
82
+ console.log(result2) // 'Hello World'
83
+ ```
84
+
@@ -0,0 +1,67 @@
1
+ # VoiceRecognition (features.voice)
2
+
3
+ VoiceRecognition helper
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ container.feature('voice')
9
+ ```
10
+
11
+ ## Methods
12
+
13
+ ### whenFinished
14
+
15
+ **Returns:** `void`
16
+
17
+
18
+
19
+ ### start
20
+
21
+ **Returns:** `void`
22
+
23
+
24
+
25
+ ### stop
26
+
27
+ **Returns:** `void`
28
+
29
+
30
+
31
+ ### abort
32
+
33
+ **Returns:** `void`
34
+
35
+
36
+
37
+ ### clearTranscript
38
+
39
+ **Returns:** `void`
40
+
41
+
42
+
43
+ ## Getters
44
+
45
+ | Property | Type | Description |
46
+ |----------|------|-------------|
47
+ | `listening` | `any` | Whether the speech recognizer is currently listening for audio input. |
48
+ | `transcript` | `any` | Returns the accumulated final transcript text from recognition results. |
49
+
50
+ ## Events (Zod v4 schema)
51
+
52
+ ### start
53
+
54
+ Event emitted by VoiceRecognition
55
+
56
+
57
+
58
+ ### stop
59
+
60
+ Event emitted by VoiceRecognition
61
+
62
+
63
+
64
+ ### abort
65
+
66
+ Event emitted by VoiceRecognition
67
+
@@ -0,0 +1,127 @@
1
+ # ExpressServer (servers.express)
2
+
3
+ ExpressServer helper
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ container.server('express', {
9
+ // Port number to listen on
10
+ port,
11
+ // Hostname or IP address to bind to
12
+ host,
13
+ // Whether to enable CORS middleware
14
+ cors,
15
+ // Path to serve static files from
16
+ static,
17
+ // Serve index.html for unmatched routes (SPA history fallback)
18
+ historyFallback,
19
+ // (app: Express, server: Server) => Express
20
+ create,
21
+ // (options: StartOptions, server: Server) => Promise<any>
22
+ beforeStart,
23
+ })
24
+ ```
25
+
26
+ ## Options (Zod v4 schema)
27
+
28
+ | Property | Type | Description |
29
+ |----------|------|-------------|
30
+ | `port` | `number` | Port number to listen on |
31
+ | `host` | `string` | Hostname or IP address to bind to |
32
+ | `cors` | `boolean` | Whether to enable CORS middleware |
33
+ | `static` | `string` | Path to serve static files from |
34
+ | `historyFallback` | `boolean` | Serve index.html for unmatched routes (SPA history fallback) |
35
+ | `create` | `any` | (app: Express, server: Server) => Express |
36
+ | `beforeStart` | `any` | (options: StartOptions, server: Server) => Promise<any> |
37
+
38
+ ## Methods
39
+
40
+ ### start
41
+
42
+ **Parameters:**
43
+
44
+ | Name | Type | Required | Description |
45
+ |------|------|----------|-------------|
46
+ | `options` | `StartOptions` | | Parameter options |
47
+
48
+ **Returns:** `void`
49
+
50
+
51
+
52
+ ### stop
53
+
54
+ **Returns:** `void`
55
+
56
+
57
+
58
+ ### configure
59
+
60
+ **Returns:** `void`
61
+
62
+
63
+
64
+ ### useEndpoint
65
+
66
+ **Parameters:**
67
+
68
+ | Name | Type | Required | Description |
69
+ |------|------|----------|-------------|
70
+ | `endpoint` | `Endpoint` | ✓ | Parameter endpoint |
71
+
72
+ **Returns:** `this`
73
+
74
+
75
+
76
+ ### useEndpoints
77
+
78
+ **Parameters:**
79
+
80
+ | Name | Type | Required | Description |
81
+ |------|------|----------|-------------|
82
+ | `dir` | `string` | ✓ | Parameter dir |
83
+
84
+ **Returns:** `Promise<this>`
85
+
86
+
87
+
88
+ ### serveOpenAPISpec
89
+
90
+ **Parameters:**
91
+
92
+ | Name | Type | Required | Description |
93
+ |------|------|----------|-------------|
94
+ | `options` | `{ title?: string; version?: string; description?: string }` | | Parameter options |
95
+
96
+ **Returns:** `this`
97
+
98
+
99
+
100
+ ### generateOpenAPISpec
101
+
102
+ **Parameters:**
103
+
104
+ | Name | Type | Required | Description |
105
+ |------|------|----------|-------------|
106
+ | `options` | `{ title?: string; version?: string; description?: string }` | | Parameter options |
107
+
108
+ **Returns:** `Record<string, any>`
109
+
110
+
111
+
112
+ ## Getters
113
+
114
+ | Property | Type | Description |
115
+ |----------|------|-------------|
116
+ | `express` | `any` | |
117
+ | `hooks` | `any` | |
118
+ | `app` | `any` | |
119
+
120
+ ## State (Zod v4 schema)
121
+
122
+ | Property | Type | Description |
123
+ |----------|------|-------------|
124
+ | `port` | `number` | The port the server is bound to |
125
+ | `listening` | `boolean` | Whether the server is actively listening for connections |
126
+ | `configured` | `boolean` | Whether the server has been configured |
127
+ | `stopped` | `boolean` | Whether the server has been stopped |
@@ -0,0 +1,213 @@
1
+ # MCPServer (servers.mcp)
2
+
3
+ MCP (Model Context Protocol) server for exposing tools, resources, and prompts to AI clients like Claude Code. Uses the low-level MCP SDK Server class directly with Zod 4 native JSON Schema conversion. Register tools, resources, and prompts programmatically, then start the server over stdio (for CLI integration) or HTTP (for remote access).
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ container.server('mcp', {
9
+ // Port number to listen on
10
+ port,
11
+ // Hostname or IP address to bind to
12
+ host,
13
+ // Transport type for MCP communication
14
+ transport,
15
+ // Server name reported to MCP clients
16
+ serverName,
17
+ // Server version reported to MCP clients
18
+ serverVersion,
19
+ // HTTP compatibility profile for MCP clients
20
+ mcpCompat,
21
+ // Stdio framing compatibility profile for MCP clients
22
+ stdioCompat,
23
+ })
24
+ ```
25
+
26
+ ## Options (Zod v4 schema)
27
+
28
+ | Property | Type | Description |
29
+ |----------|------|-------------|
30
+ | `port` | `number` | Port number to listen on |
31
+ | `host` | `string` | Hostname or IP address to bind to |
32
+ | `transport` | `string` | Transport type for MCP communication |
33
+ | `serverName` | `string` | Server name reported to MCP clients |
34
+ | `serverVersion` | `string` | Server version reported to MCP clients |
35
+ | `mcpCompat` | `string` | HTTP compatibility profile for MCP clients |
36
+ | `stdioCompat` | `string` | Stdio framing compatibility profile for MCP clients |
37
+
38
+ ## Methods
39
+
40
+ ### tool
41
+
42
+ Register an MCP tool. The tool's Zod schema is converted to JSON Schema for the protocol listing, and used for runtime argument validation. Tool handlers can return a string (auto-wrapped as text content) or a full CallToolResult object for advanced responses (images, errors, etc).
43
+
44
+ **Parameters:**
45
+
46
+ | Name | Type | Required | Description |
47
+ |------|------|----------|-------------|
48
+ | `name` | `string` | ✓ | Unique tool name |
49
+ | `options` | `ToolRegistrationOptions` | ✓ | Tool schema, description, and handler |
50
+
51
+ `ToolRegistrationOptions` properties:
52
+
53
+ | Property | Type | Description |
54
+ |----------|------|-------------|
55
+ | `schema` | `z.ZodObject<any>` | |
56
+ | `description` | `string` | |
57
+ | `handler` | `(args: any, ctx: MCPContext) => any` | |
58
+
59
+ **Returns:** `this`
60
+
61
+
62
+
63
+ ### resource
64
+
65
+ Register an MCP resource. Resources expose data (files, configs, etc) that AI clients can read by URI. Accepts either a handler function directly or an options object with additional metadata (name, description, mimeType).
66
+
67
+ **Parameters:**
68
+
69
+ | Name | Type | Required | Description |
70
+ |------|------|----------|-------------|
71
+ | `uri` | `string` | ✓ | Unique resource URI (e.g. "project://readme") |
72
+ | `handlerOrOptions` | `ResourceRegistrationOptions['handler'] | ResourceRegistrationOptions` | ✓ | Handler function or options object with handler |
73
+
74
+ **Returns:** `this`
75
+
76
+
77
+
78
+ ### prompt
79
+
80
+ Register an MCP prompt. Prompts are reusable message templates that AI clients can invoke with optional string arguments.
81
+
82
+ **Parameters:**
83
+
84
+ | Name | Type | Required | Description |
85
+ |------|------|----------|-------------|
86
+ | `name` | `string` | ✓ | Unique prompt name |
87
+ | `options` | `PromptRegistrationOptions` | ✓ | Prompt handler, optional args schema, and description |
88
+
89
+ `PromptRegistrationOptions` properties:
90
+
91
+ | Property | Type | Description |
92
+ |----------|------|-------------|
93
+ | `description` | `string` | |
94
+ | `args` | `Record<string, z.ZodType>` | |
95
+ | `handler` | `(args: Record<string, string | undefined>, ctx: MCPContext) => Promise<PromptMessage[]> | PromptMessage[]` | |
96
+
97
+ **Returns:** `this`
98
+
99
+
100
+
101
+ ### configure
102
+
103
+ Configure the MCP protocol server and register all protocol handlers. Called automatically before start() if not already configured.
104
+
105
+ **Returns:** `void`
106
+
107
+
108
+
109
+ ### start
110
+
111
+ Start the MCP server with the specified transport.
112
+
113
+ **Parameters:**
114
+
115
+ | Name | Type | Required | Description |
116
+ |------|------|----------|-------------|
117
+ | `options` | `{
118
+ transport?: 'stdio' | 'http'
119
+ port?: number
120
+ host?: string
121
+ mcpCompat?: MCPCompatMode
122
+ stdioCompat?: StdioCompatMode
123
+ }` | | Transport configuration. Defaults to stdio. |
124
+
125
+ `{
126
+ transport?: 'stdio' | 'http'
127
+ port?: number
128
+ host?: string
129
+ mcpCompat?: MCPCompatMode
130
+ stdioCompat?: StdioCompatMode
131
+ }` properties:
132
+
133
+ | Property | Type | Description |
134
+ |----------|------|-------------|
135
+ | `transport` | `any` | 'stdio' for CLI integration, 'http' for remote access |
136
+ | `port` | `any` | Port for HTTP transport (default 3001) |
137
+
138
+ **Returns:** `void`
139
+
140
+
141
+
142
+ ### stop
143
+
144
+ Stop the MCP server and close all connections.
145
+
146
+ **Returns:** `void`
147
+
148
+
149
+
150
+ ## Getters
151
+
152
+ | Property | Type | Description |
153
+ |----------|------|-------------|
154
+ | `mcpServer` | `MCPProtocolServer` | The underlying MCP protocol server instance. Created during configure(). |
155
+ | `handlerContext` | `MCPContext` | The handler context passed to all tool, resource, and prompt handlers. |
156
+
157
+ ## Events (Zod v4 schema)
158
+
159
+ ### toolRegistered
160
+
161
+ Event emitted by MCPServer
162
+
163
+
164
+
165
+ ### resourceRegistered
166
+
167
+ Event emitted by MCPServer
168
+
169
+
170
+
171
+ ### promptRegistered
172
+
173
+ Event emitted by MCPServer
174
+
175
+
176
+
177
+ ### toolCalled
178
+
179
+ Event emitted by MCPServer
180
+
181
+
182
+
183
+ ## State (Zod v4 schema)
184
+
185
+ | Property | Type | Description |
186
+ |----------|------|-------------|
187
+ | `port` | `number` | The port the server is bound to |
188
+ | `listening` | `boolean` | Whether the server is actively listening for connections |
189
+ | `configured` | `boolean` | Whether the server has been configured |
190
+ | `stopped` | `boolean` | Whether the server has been stopped |
191
+ | `transport` | `string` | Active transport type |
192
+ | `toolCount` | `number` | Number of registered tools |
193
+ | `resourceCount` | `number` | Number of registered resources |
194
+ | `promptCount` | `number` | Number of registered prompts |
195
+
196
+ ## Examples
197
+
198
+ **servers.mcp**
199
+
200
+ ```ts
201
+ const mcp = container.server('mcp', { serverName: 'my-server', serverVersion: '1.0.0' })
202
+
203
+ mcp.tool('search_files', {
204
+ schema: z.object({ pattern: z.string() }),
205
+ description: 'Search for files',
206
+ handler: async (args, ctx) => {
207
+ return ctx.container.feature('fs').walk('.', { include: [args.pattern] }).files.join('\n')
208
+ }
209
+ })
210
+
211
+ await mcp.start()
212
+ ```
213
+
@@ -0,0 +1,99 @@
1
+ # WebsocketServer (servers.websocket)
2
+
3
+ WebsocketServer helper
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ container.server('websocket', {
9
+ // Port number to listen on
10
+ port,
11
+ // Hostname or IP address to bind to
12
+ host,
13
+ // Whether to automatically JSON parse/stringify messages
14
+ json,
15
+ })
16
+ ```
17
+
18
+ ## Options (Zod v4 schema)
19
+
20
+ | Property | Type | Description |
21
+ |----------|------|-------------|
22
+ | `port` | `number` | Port number to listen on |
23
+ | `host` | `string` | Hostname or IP address to bind to |
24
+ | `json` | `boolean` | Whether to automatically JSON parse/stringify messages |
25
+
26
+ ## Methods
27
+
28
+ ### broadcast
29
+
30
+ **Parameters:**
31
+
32
+ | Name | Type | Required | Description |
33
+ |------|------|----------|-------------|
34
+ | `message` | `any` | ✓ | Parameter message |
35
+
36
+ **Returns:** `void`
37
+
38
+
39
+
40
+ ### send
41
+
42
+ **Parameters:**
43
+
44
+ | Name | Type | Required | Description |
45
+ |------|------|----------|-------------|
46
+ | `ws` | `any` | ✓ | Parameter ws |
47
+ | `message` | `any` | ✓ | Parameter message |
48
+
49
+ **Returns:** `void`
50
+
51
+
52
+
53
+ ### start
54
+
55
+ **Parameters:**
56
+
57
+ | Name | Type | Required | Description |
58
+ |------|------|----------|-------------|
59
+ | `options` | `StartOptions` | | Parameter options |
60
+
61
+ **Returns:** `void`
62
+
63
+
64
+
65
+ ### stop
66
+
67
+ **Returns:** `void`
68
+
69
+
70
+
71
+ ## Getters
72
+
73
+ | Property | Type | Description |
74
+ |----------|------|-------------|
75
+ | `wss` | `any` | |
76
+ | `port` | `any` | |
77
+
78
+ ## Events (Zod v4 schema)
79
+
80
+ ### connection
81
+
82
+ Event emitted by WebsocketServer
83
+
84
+
85
+
86
+ ### message
87
+
88
+ Event emitted by WebsocketServer
89
+
90
+
91
+
92
+ ## State (Zod v4 schema)
93
+
94
+ | Property | Type | Description |
95
+ |----------|------|-------------|
96
+ | `port` | `number` | The port the server is bound to |
97
+ | `listening` | `boolean` | Whether the server is actively listening for connections |
98
+ | `configured` | `boolean` | Whether the server has been configured |
99
+ | `stopped` | `boolean` | Whether the server has been stopped |