@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.
- package/CLAUDE.md +71 -0
- package/README.md +78 -0
- package/bun.lock +2928 -0
- package/bunfig.toml +3 -0
- package/commands/audit-docs.ts +740 -0
- package/commands/build-scaffolds.ts +154 -0
- package/commands/generate-api-docs.ts +114 -0
- package/commands/update-introspection.ts +67 -0
- package/docs/CLI.md +335 -0
- package/docs/README.md +88 -0
- package/docs/TABLE-OF-CONTENTS.md +157 -0
- package/docs/apis/clients/elevenlabs.md +84 -0
- package/docs/apis/clients/graph.md +56 -0
- package/docs/apis/clients/openai.md +69 -0
- package/docs/apis/clients/rest.md +41 -0
- package/docs/apis/clients/websocket.md +107 -0
- package/docs/apis/features/agi/assistant.md +471 -0
- package/docs/apis/features/agi/assistants-manager.md +154 -0
- package/docs/apis/features/agi/claude-code.md +602 -0
- package/docs/apis/features/agi/conversation-history.md +352 -0
- package/docs/apis/features/agi/conversation.md +333 -0
- package/docs/apis/features/agi/docs-reader.md +121 -0
- package/docs/apis/features/agi/openai-codex.md +318 -0
- package/docs/apis/features/agi/openapi.md +138 -0
- package/docs/apis/features/agi/semantic-search.md +387 -0
- package/docs/apis/features/agi/skills-library.md +216 -0
- package/docs/apis/features/node/container-link.md +133 -0
- package/docs/apis/features/node/content-db.md +313 -0
- package/docs/apis/features/node/disk-cache.md +379 -0
- package/docs/apis/features/node/dns.md +651 -0
- package/docs/apis/features/node/docker.md +705 -0
- package/docs/apis/features/node/downloader.md +81 -0
- package/docs/apis/features/node/esbuild.md +59 -0
- package/docs/apis/features/node/file-manager.md +182 -0
- package/docs/apis/features/node/fs.md +581 -0
- package/docs/apis/features/node/git.md +330 -0
- package/docs/apis/features/node/google-auth.md +174 -0
- package/docs/apis/features/node/google-calendar.md +187 -0
- package/docs/apis/features/node/google-docs.md +151 -0
- package/docs/apis/features/node/google-drive.md +225 -0
- package/docs/apis/features/node/google-sheets.md +179 -0
- package/docs/apis/features/node/grep.md +290 -0
- package/docs/apis/features/node/helpers.md +135 -0
- package/docs/apis/features/node/ink.md +334 -0
- package/docs/apis/features/node/ipc-socket.md +260 -0
- package/docs/apis/features/node/json-tree.md +86 -0
- package/docs/apis/features/node/launcher-app-command-listener.md +145 -0
- package/docs/apis/features/node/networking.md +281 -0
- package/docs/apis/features/node/nlp.md +133 -0
- package/docs/apis/features/node/opener.md +97 -0
- package/docs/apis/features/node/os.md +118 -0
- package/docs/apis/features/node/package-finder.md +402 -0
- package/docs/apis/features/node/postgres.md +212 -0
- package/docs/apis/features/node/proc.md +430 -0
- package/docs/apis/features/node/process-manager.md +210 -0
- package/docs/apis/features/node/python.md +278 -0
- package/docs/apis/features/node/repl.md +88 -0
- package/docs/apis/features/node/runpod.md +673 -0
- package/docs/apis/features/node/secure-shell.md +169 -0
- package/docs/apis/features/node/semantic-search.md +401 -0
- package/docs/apis/features/node/sqlite.md +211 -0
- package/docs/apis/features/node/telegram.md +254 -0
- package/docs/apis/features/node/tts.md +118 -0
- package/docs/apis/features/node/ui.md +703 -0
- package/docs/apis/features/node/vault.md +64 -0
- package/docs/apis/features/node/vm.md +84 -0
- package/docs/apis/features/node/window-manager.md +337 -0
- package/docs/apis/features/node/yaml-tree.md +85 -0
- package/docs/apis/features/node/yaml.md +176 -0
- package/docs/apis/features/web/asset-loader.md +47 -0
- package/docs/apis/features/web/container-link.md +133 -0
- package/docs/apis/features/web/esbuild.md +59 -0
- package/docs/apis/features/web/helpers.md +135 -0
- package/docs/apis/features/web/network.md +30 -0
- package/docs/apis/features/web/speech.md +55 -0
- package/docs/apis/features/web/vault.md +64 -0
- package/docs/apis/features/web/vm.md +84 -0
- package/docs/apis/features/web/voice.md +67 -0
- package/docs/apis/servers/express.md +127 -0
- package/docs/apis/servers/mcp.md +213 -0
- package/docs/apis/servers/websocket.md +99 -0
- package/docs/documentation-audit.md +134 -0
- package/docs/examples/content-db.md +77 -0
- package/docs/examples/disk-cache.md +83 -0
- package/docs/examples/docker.md +101 -0
- package/docs/examples/downloader.md +70 -0
- package/docs/examples/esbuild.md +80 -0
- package/docs/examples/file-manager.md +82 -0
- package/docs/examples/fs.md +83 -0
- package/docs/examples/git.md +85 -0
- package/docs/examples/google-auth.md +88 -0
- package/docs/examples/google-calendar.md +94 -0
- package/docs/examples/google-docs.md +82 -0
- package/docs/examples/google-drive.md +96 -0
- package/docs/examples/google-sheets.md +95 -0
- package/docs/examples/grep.md +85 -0
- package/docs/examples/ink-blocks.md +75 -0
- package/docs/examples/ink-renderer.md +41 -0
- package/docs/examples/ink.md +103 -0
- package/docs/examples/ipc-socket.md +103 -0
- package/docs/examples/json-tree.md +91 -0
- package/docs/examples/launcher-app-command-listener.md +120 -0
- package/docs/examples/networking.md +58 -0
- package/docs/examples/nlp.md +91 -0
- package/docs/examples/opener.md +78 -0
- package/docs/examples/os.md +72 -0
- package/docs/examples/package-finder.md +89 -0
- package/docs/examples/port-exposer.md +89 -0
- package/docs/examples/postgres.md +91 -0
- package/docs/examples/proc.md +81 -0
- package/docs/examples/process-manager.md +79 -0
- package/docs/examples/python.md +91 -0
- package/docs/examples/repl.md +93 -0
- package/docs/examples/runpod.md +119 -0
- package/docs/examples/secure-shell.md +92 -0
- package/docs/examples/sqlite.md +86 -0
- package/docs/examples/telegram.md +77 -0
- package/docs/examples/tts.md +86 -0
- package/docs/examples/ui.md +80 -0
- package/docs/examples/vault.md +70 -0
- package/docs/examples/vm.md +86 -0
- package/docs/examples/window-manager.md +125 -0
- package/docs/examples/yaml-tree.md +93 -0
- package/docs/examples/yaml.md +104 -0
- package/docs/ideas/class-registration-refactor-possibilities.md +197 -0
- package/docs/ideas/container-use-api.md +9 -0
- package/docs/ideas/easy-auth-for-express-servers-and-luca-serve.md +0 -0
- package/docs/ideas/feature-stacks.md +22 -0
- package/docs/ideas/luca-cli-self-sufficiency-demo.md +23 -0
- package/docs/ideas/mcp-design.md +9 -0
- package/docs/ideas/web-container-debugging-feature.md +13 -0
- package/docs/introspection-audit.md +49 -0
- package/docs/introspection.md +154 -0
- package/docs/mcp/readme.md +162 -0
- package/docs/models.ts +38 -0
- package/docs/philosophy.md +85 -0
- package/docs/principles.md +7 -0
- package/docs/prompts/audit-codebase-for-failures-to-use-the-container.md +34 -0
- package/docs/prompts/mcp-test-easy-command.md +27 -0
- package/docs/reports/assistant-bugs.md +38 -0
- package/docs/reports/attach-pattern-usage.md +18 -0
- package/docs/reports/code-audit-results.md +391 -0
- package/docs/reports/introspection-audit-tasks.md +378 -0
- package/docs/reports/luca-mcp-improvements.md +128 -0
- package/docs/scaffolds/client.md +140 -0
- package/docs/scaffolds/command.md +106 -0
- package/docs/scaffolds/endpoint.md +176 -0
- package/docs/scaffolds/feature.md +148 -0
- package/docs/scaffolds/server.md +187 -0
- package/docs/tasks/web-container-helper-discovery.md +71 -0
- package/docs/todos.md +1 -0
- package/docs/tutorials/01-getting-started.md +106 -0
- package/docs/tutorials/02-container.md +210 -0
- package/docs/tutorials/03-scripts.md +194 -0
- package/docs/tutorials/04-features-overview.md +196 -0
- package/docs/tutorials/05-state-and-events.md +171 -0
- package/docs/tutorials/06-servers.md +157 -0
- package/docs/tutorials/07-endpoints.md +198 -0
- package/docs/tutorials/08-commands.md +171 -0
- package/docs/tutorials/09-clients.md +162 -0
- package/docs/tutorials/10-creating-features.md +198 -0
- package/docs/tutorials/11-contentbase.md +191 -0
- package/docs/tutorials/12-assistants.md +215 -0
- package/docs/tutorials/13-introspection.md +147 -0
- package/docs/tutorials/14-type-system.md +174 -0
- package/docs/tutorials/15-project-patterns.md +222 -0
- package/docs/tutorials/16-google-features.md +534 -0
- package/docs/tutorials/17-tui-blocks.md +530 -0
- package/docs/tutorials/18-semantic-search.md +334 -0
- package/index.ts +1 -0
- package/luca.console.ts +9 -0
- package/main.py +6 -0
- package/package.json +154 -0
- package/pyproject.toml +7 -0
- package/scripts/animations/chrome-glitch.ts +55 -0
- package/scripts/animations/index.ts +16 -0
- package/scripts/animations/neon-pulse.ts +64 -0
- package/scripts/animations/types.ts +6 -0
- package/scripts/build-web.ts +28 -0
- package/scripts/examples/ask-luca-expert.ts +42 -0
- package/scripts/examples/assistant-questions.ts +12 -0
- package/scripts/examples/excalidraw-expert.ts +75 -0
- package/scripts/examples/expert-chat.ts +0 -0
- package/scripts/examples/file-manager.ts +14 -0
- package/scripts/examples/ideas.ts +12 -0
- package/scripts/examples/interactive-chat.ts +20 -0
- package/scripts/examples/openai-tool-calls.ts +113 -0
- package/scripts/examples/opening-a-web-browser.ts +5 -0
- package/scripts/examples/telegram-bot.ts +79 -0
- package/scripts/examples/telegram-ink-ui.ts +302 -0
- package/scripts/examples/using-assistant-with-mcp.ts +560 -0
- package/scripts/examples/using-claude-code.ts +10 -0
- package/scripts/examples/using-contentdb.ts +35 -0
- package/scripts/examples/using-conversations.ts +35 -0
- package/scripts/examples/using-disk-cache.ts +10 -0
- package/scripts/examples/using-docker-shell.ts +75 -0
- package/scripts/examples/using-elevenlabs.ts +25 -0
- package/scripts/examples/using-google-calendar.ts +57 -0
- package/scripts/examples/using-google-docs.ts +74 -0
- package/scripts/examples/using-google-drive.ts +74 -0
- package/scripts/examples/using-google-sheets.ts +89 -0
- package/scripts/examples/using-nlp.ts +55 -0
- package/scripts/examples/using-ollama.ts +10 -0
- package/scripts/examples/using-openai-codex.ts +23 -0
- package/scripts/examples/using-postgres.ts +55 -0
- package/scripts/examples/using-runpod.ts +32 -0
- package/scripts/examples/using-tts.ts +40 -0
- package/scripts/examples/vm-loading-esm-modules.ts +16 -0
- package/scripts/scaffold.ts +391 -0
- package/scripts/scratch.ts +15 -0
- package/scripts/test-command-listener.ts +123 -0
- package/scripts/test-window-manager-lifecycle.ts +86 -0
- package/scripts/test-window-manager.ts +43 -0
- package/scripts/update-introspection-data.ts +58 -0
- package/src/agi/README.md +14 -0
- package/src/agi/container.server.ts +114 -0
- package/src/agi/endpoints/ask.ts +60 -0
- package/src/agi/endpoints/conversations/[id].ts +45 -0
- package/src/agi/endpoints/conversations.ts +31 -0
- package/src/agi/endpoints/experts.ts +37 -0
- package/src/agi/features/assistant.ts +767 -0
- package/src/agi/features/assistants-manager.ts +260 -0
- package/src/agi/features/claude-code.ts +1111 -0
- package/src/agi/features/conversation-history.ts +497 -0
- package/src/agi/features/conversation.ts +799 -0
- package/src/agi/features/openai-codex.ts +631 -0
- package/src/agi/features/openapi.ts +438 -0
- package/src/agi/features/skills-library.ts +425 -0
- package/src/agi/index.ts +6 -0
- package/src/agi/lib/token-counter.ts +122 -0
- package/src/browser.ts +25 -0
- package/src/bus.ts +100 -0
- package/src/cli/cli.ts +70 -0
- package/src/client.ts +461 -0
- package/src/clients/civitai/index.ts +541 -0
- package/src/clients/client-template.ts +41 -0
- package/src/clients/comfyui/index.ts +597 -0
- package/src/clients/elevenlabs/index.ts +291 -0
- package/src/clients/openai/index.ts +451 -0
- package/src/clients/supabase/index.ts +366 -0
- package/src/command.ts +164 -0
- package/src/commands/chat.ts +182 -0
- package/src/commands/console.ts +192 -0
- package/src/commands/describe.ts +433 -0
- package/src/commands/eval.ts +116 -0
- package/src/commands/help.ts +214 -0
- package/src/commands/index.ts +14 -0
- package/src/commands/mcp.ts +64 -0
- package/src/commands/prompt.ts +807 -0
- package/src/commands/run.ts +257 -0
- package/src/commands/sandbox-mcp.ts +439 -0
- package/src/commands/scaffold.ts +79 -0
- package/src/commands/serve.ts +172 -0
- package/src/container.ts +781 -0
- package/src/endpoint.ts +340 -0
- package/src/feature.ts +75 -0
- package/src/hash-object.ts +97 -0
- package/src/helper.ts +543 -0
- package/src/introspection/generated.agi.ts +23388 -0
- package/src/introspection/generated.node.ts +18899 -0
- package/src/introspection/generated.web.ts +2021 -0
- package/src/introspection/index.ts +256 -0
- package/src/introspection/scan.ts +912 -0
- package/src/node/container.ts +354 -0
- package/src/node/feature.ts +13 -0
- package/src/node/features/container-link.ts +558 -0
- package/src/node/features/content-db.ts +475 -0
- package/src/node/features/disk-cache.ts +382 -0
- package/src/node/features/dns.ts +655 -0
- package/src/node/features/docker.ts +912 -0
- package/src/node/features/downloader.ts +92 -0
- package/src/node/features/esbuild.ts +68 -0
- package/src/node/features/file-manager.ts +357 -0
- package/src/node/features/fs.ts +534 -0
- package/src/node/features/git.ts +492 -0
- package/src/node/features/google-auth.ts +502 -0
- package/src/node/features/google-calendar.ts +300 -0
- package/src/node/features/google-docs.ts +404 -0
- package/src/node/features/google-drive.ts +339 -0
- package/src/node/features/google-sheets.ts +279 -0
- package/src/node/features/grep.ts +406 -0
- package/src/node/features/helpers.ts +374 -0
- package/src/node/features/ink.ts +490 -0
- package/src/node/features/ipc-socket.ts +459 -0
- package/src/node/features/json-tree.ts +188 -0
- package/src/node/features/launcher-app-command-listener.ts +388 -0
- package/src/node/features/networking.ts +925 -0
- package/src/node/features/nlp.ts +211 -0
- package/src/node/features/opener.ts +166 -0
- package/src/node/features/os.ts +157 -0
- package/src/node/features/package-finder.ts +539 -0
- package/src/node/features/port-exposer.ts +342 -0
- package/src/node/features/postgres.ts +273 -0
- package/src/node/features/proc.ts +502 -0
- package/src/node/features/process-manager.ts +542 -0
- package/src/node/features/python.ts +444 -0
- package/src/node/features/repl.ts +194 -0
- package/src/node/features/runpod.ts +802 -0
- package/src/node/features/secure-shell.ts +248 -0
- package/src/node/features/semantic-search.ts +924 -0
- package/src/node/features/sqlite.ts +289 -0
- package/src/node/features/telegram.ts +342 -0
- package/src/node/features/tts.ts +184 -0
- package/src/node/features/ui.ts +857 -0
- package/src/node/features/vault.ts +164 -0
- package/src/node/features/vm.ts +312 -0
- package/src/node/features/window-manager.ts +804 -0
- package/src/node/features/yaml-tree.ts +149 -0
- package/src/node/features/yaml.ts +132 -0
- package/src/node.ts +70 -0
- package/src/react/index.ts +175 -0
- package/src/registry.ts +199 -0
- package/src/scaffolds/generated.ts +1613 -0
- package/src/scaffolds/template.ts +37 -0
- package/src/schemas/base.ts +255 -0
- package/src/server.ts +135 -0
- package/src/servers/express.ts +209 -0
- package/src/servers/mcp.ts +805 -0
- package/src/servers/socket.ts +120 -0
- package/src/state.ts +101 -0
- package/src/web/clients/socket.ts +82 -0
- package/src/web/container.ts +74 -0
- package/src/web/extension.ts +30 -0
- package/src/web/feature.ts +12 -0
- package/src/web/features/asset-loader.ts +64 -0
- package/src/web/features/container-link.ts +385 -0
- package/src/web/features/esbuild.ts +79 -0
- package/src/web/features/helpers.ts +267 -0
- package/src/web/features/network.ts +61 -0
- package/src/web/features/speech.ts +87 -0
- package/src/web/features/vault.ts +189 -0
- package/src/web/features/vm.ts +78 -0
- package/src/web/features/voice-recognition.ts +129 -0
- package/src/web/shims/isomorphic-vm.ts +149 -0
- package/test/bus.test.ts +134 -0
- package/test/clients-servers.test.ts +216 -0
- package/test/container-link.test.ts +274 -0
- package/test/features.test.ts +160 -0
- package/test/integration.test.ts +787 -0
- package/test/node-container.test.ts +121 -0
- package/test/rate-limit.test.ts +272 -0
- package/test/semantic-search.test.ts +550 -0
- package/test/state.test.ts +121 -0
- package/test-integration/assistant.test.ts +138 -0
- package/test-integration/assistants-manager.test.ts +123 -0
- package/test-integration/claude-code.test.ts +98 -0
- package/test-integration/conversation-history.test.ts +205 -0
- package/test-integration/conversation.test.ts +137 -0
- package/test-integration/elevenlabs.test.ts +55 -0
- package/test-integration/google-services.test.ts +80 -0
- package/test-integration/helpers.ts +89 -0
- package/test-integration/openai-codex.test.ts +93 -0
- package/test-integration/runpod.test.ts +58 -0
- package/test-integration/server-endpoints.test.ts +97 -0
- package/test-integration/skills-library.test.ts +157 -0
- package/test-integration/telegram.test.ts +46 -0
- package/tsconfig.json +58 -0
- 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 |
|