luca 3.0.0 → 3.1.0
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/.github/workflows/release.yaml +1 -0
- package/CLAUDE.md +10 -2
- package/README.md +130 -112
- package/assistants/codingAssistant/CORE.md +6 -1
- package/assistants/codingAssistant/hooks.ts +1 -1
- package/assistants/inkbot/hooks.ts +1 -1
- package/assistants/inkbot/tools.ts +1 -1
- package/bun.lock +264 -321
- package/commands/audit-docs.ts +2 -2
- package/commands/build-bootstrap.ts +2 -3
- package/commands/build-python-bridge.ts +2 -3
- package/commands/build-scaffolds.ts +2 -3
- package/commands/bundle-consumer-project.ts +521 -0
- package/commands/generate-api-docs.ts +2 -2
- package/commands/inkbot.ts +2 -2
- package/commands/release.ts +2 -2
- package/commands/social.ts +137 -0
- package/commands/try-all-challenges.ts +3 -3
- package/commands/try-challenge.ts +3 -3
- package/datasets/lora/agentic-loop-session-candidates.jsonl +91 -0
- package/datasets/lora/agentic-loop-session-curation-summary.json +123 -0
- package/datasets/lora/luca-session-candidates.jsonl +29 -0
- package/datasets/lora/luca-session-curation-summary.json +121 -0
- package/datasets/lora/review-batch-1.jsonl +30 -0
- package/datasets/lora/review-manifest.json +41 -0
- package/datasets/lora/review-queue.jsonl +120 -0
- package/datasets/lora/review-schema.json +134 -0
- package/datasets/lora/review-template.jsonl +2 -0
- package/datasets/lora/review-ui.html +725 -0
- package/dist/agi/container.server.d.ts +2 -2
- package/dist/agi/features/assistant.d.ts +2 -2
- package/dist/agi/features/assistants-manager.d.ts +1 -1
- package/dist/agi/features/autonomous-assistant.d.ts +1 -1
- package/dist/agi/features/browser-use.d.ts +1 -1
- package/dist/agi/features/claude-code.d.ts +1 -1
- package/dist/agi/features/conversation-history.d.ts +2 -2
- package/dist/agi/features/conversation.d.ts +1 -1
- package/dist/agi/features/docs-reader.d.ts +1 -1
- package/dist/agi/features/file-tools.d.ts +1 -1
- package/dist/agi/features/luca-coder.d.ts +1 -1
- package/dist/agi/features/openai-codex.d.ts +1 -1
- package/dist/agi/features/skills-library.d.ts +1 -1
- package/dist/clients/civitai/index.d.ts +4 -4
- package/dist/clients/client-template.d.ts +4 -4
- package/dist/clients/comfyui/index.d.ts +2 -2
- package/dist/clients/elevenlabs/index.d.ts +2 -2
- package/dist/clients/openai/index.d.ts +2 -2
- package/dist/clients/supabase/index.d.ts +3 -3
- package/dist/command.d.ts +1 -1
- package/dist/node/container.d.ts +1 -1
- package/dist/node/features/helpers.d.ts +3 -3
- package/dist/node/features/semantic-search.d.ts +1 -1
- package/dist/node/features/vm.d.ts +3 -3
- package/dist/node.d.ts +1 -1
- package/dist/scaffolds/generated.d.ts +1 -1
- package/dist/selector.d.ts +1 -1
- package/features/cipher-social.ts +493 -0
- package/index.html +217 -190
- package/luca.console.ts +1 -1
- package/package.json +7 -2
- package/public/index.html +217 -190
- package/public/slides-ai-native.html +1 -1
- package/public/slides-intro.html +2 -2
- package/scripts/curate-claude-sessions.ts +561 -0
- package/scripts/examples/ask-luca-expert.ts +1 -1
- package/scripts/examples/assistant-questions.ts +1 -1
- package/scripts/examples/excalidraw-expert.ts +1 -1
- package/scripts/examples/file-manager.ts +1 -1
- package/scripts/examples/ideas.ts +1 -1
- package/scripts/examples/interactive-chat.ts +1 -1
- package/scripts/examples/opening-a-web-browser.ts +1 -1
- package/scripts/examples/telegram-bot.ts +1 -1
- package/scripts/examples/using-assistant-with-mcp.ts +1 -1
- package/scripts/examples/using-claude-code.ts +1 -1
- package/scripts/examples/using-contentdb.ts +2 -2
- package/scripts/examples/using-conversations.ts +1 -1
- package/scripts/examples/using-disk-cache.ts +1 -1
- package/scripts/examples/using-docker-shell.ts +1 -1
- package/scripts/examples/using-elevenlabs.ts +1 -1
- package/scripts/examples/using-google-calendar.ts +1 -1
- package/scripts/examples/using-google-docs.ts +1 -1
- package/scripts/examples/using-google-drive.ts +1 -1
- package/scripts/examples/using-google-sheets.ts +1 -1
- package/scripts/examples/using-nlp.ts +1 -1
- package/scripts/examples/using-ollama.ts +1 -1
- package/scripts/examples/using-postgres.ts +1 -1
- package/scripts/examples/using-runpod.ts +1 -1
- package/scripts/examples/using-tts.ts +1 -1
- package/scripts/scaffold.ts +5 -5
- package/scripts/scratch.ts +1 -1
- package/scripts/test-assistant-hooks.ts +1 -1
- package/scripts/test-docs-reader.ts +1 -1
- package/src/agi/container.server.ts +6 -2
- package/src/agi/features/agent-memory.ts +25 -25
- package/src/agi/features/assistant.ts +34 -5
- package/src/agi/features/assistants-manager.ts +122 -6
- package/src/agi/features/autonomous-assistant.ts +1 -1
- package/src/agi/features/browser-use.ts +20 -1
- package/src/agi/features/claude-code.ts +51 -5
- package/src/agi/features/coding-tools.ts +1 -1
- package/src/agi/features/conversation-history.ts +181 -4
- package/src/agi/features/conversation.ts +186 -15
- package/src/agi/features/docs-reader.ts +2 -2
- package/src/agi/features/file-tools.ts +49 -2
- package/src/agi/features/luca-coder.ts +7 -5
- package/src/agi/features/mcp-bridge.ts +532 -0
- package/src/agi/features/openai-codex.ts +2 -2
- package/src/agi/features/skills-library.ts +131 -52
- package/src/agi/lib/token-counter.ts +80 -0
- package/src/bootstrap/generated.ts +56 -57
- package/src/browser.ts +1 -1
- package/src/cli/build-info.ts +2 -2
- package/src/cli/cli.ts +2 -2
- package/src/clients/civitai/index.ts +5 -5
- package/src/clients/client-template.ts +4 -4
- package/src/clients/comfyui/index.ts +4 -4
- package/src/clients/elevenlabs/index.ts +4 -4
- package/src/clients/openai/index.ts +7 -7
- package/src/clients/supabase/index.ts +4 -4
- package/src/clients/voicebox/index.ts +4 -4
- package/src/command.ts +2 -1
- package/src/commands/chat.ts +1 -0
- package/src/commands/eval.ts +2 -56
- package/src/commands/introspect.ts +1 -1
- package/src/commands/prompt.ts +41 -9
- package/src/container-describer.ts +8 -1
- package/src/container.ts +13 -0
- package/src/entity.ts +2 -2
- package/src/helper.ts +1 -1
- package/src/introspection/generated.agi.ts +29596 -27654
- package/src/introspection/generated.node.ts +20284 -19247
- package/src/introspection/generated.web.ts +605 -584
- package/src/introspection/scan.ts +11 -6
- package/src/node/container.ts +9 -1
- package/src/node/features/content-db.ts +39 -2
- package/src/node/features/display-result.ts +57 -0
- package/src/node/features/helpers.ts +46 -7
- package/src/node/features/python.ts +25 -19
- package/src/node/features/repl.ts +1 -1
- package/src/node/features/secure-shell.ts +11 -17
- package/src/node/features/semantic-search.ts +2 -2
- package/src/node/features/socket-repl.ts +336 -0
- package/src/node/features/telnyx-assistant-connector.ts +1206 -0
- package/src/node/features/transpiler.ts +2 -3
- package/src/node/features/ui.ts +5 -0
- package/src/node/features/vm.ts +20 -3
- package/src/node.ts +3 -3
- package/src/python/generated.ts +0 -1
- package/src/scaffolds/generated.ts +82 -83
- package/src/selector.ts +1 -1
- package/src/servers/express.ts +1 -1
- package/src/web/features/helpers.ts +22 -0
- package/tsconfig.json +12 -12
- package/docs/CLI.md +0 -335
- package/docs/CNAME +0 -1
- package/docs/README.md +0 -60
- package/docs/TABLE-OF-CONTENTS.md +0 -183
- package/docs/apis/clients/elevenlabs.md +0 -308
- package/docs/apis/clients/graph.md +0 -107
- package/docs/apis/clients/openai.md +0 -429
- package/docs/apis/clients/rest.md +0 -161
- package/docs/apis/clients/websocket.md +0 -174
- package/docs/apis/features/agi/assistant.md +0 -625
- package/docs/apis/features/agi/assistants-manager.md +0 -282
- package/docs/apis/features/agi/auto-assistant.md +0 -279
- package/docs/apis/features/agi/browser-use.md +0 -802
- package/docs/apis/features/agi/claude-code.md +0 -884
- package/docs/apis/features/agi/conversation-history.md +0 -364
- package/docs/apis/features/agi/conversation.md +0 -548
- package/docs/apis/features/agi/docs-reader.md +0 -99
- package/docs/apis/features/agi/file-tools.md +0 -163
- package/docs/apis/features/agi/luca-coder.md +0 -407
- package/docs/apis/features/agi/openai-codex.md +0 -396
- package/docs/apis/features/agi/openapi.md +0 -138
- package/docs/apis/features/agi/semantic-search.md +0 -387
- package/docs/apis/features/agi/skills-library.md +0 -239
- package/docs/apis/features/node/container-link.md +0 -192
- package/docs/apis/features/node/content-db.md +0 -450
- package/docs/apis/features/node/disk-cache.md +0 -379
- package/docs/apis/features/node/dns.md +0 -652
- package/docs/apis/features/node/docker.md +0 -706
- package/docs/apis/features/node/downloader.md +0 -81
- package/docs/apis/features/node/esbuild.md +0 -60
- package/docs/apis/features/node/file-manager.md +0 -191
- package/docs/apis/features/node/fs.md +0 -1217
- package/docs/apis/features/node/git.md +0 -371
- package/docs/apis/features/node/google-auth.md +0 -193
- package/docs/apis/features/node/google-calendar.md +0 -202
- package/docs/apis/features/node/google-docs.md +0 -173
- package/docs/apis/features/node/google-drive.md +0 -246
- package/docs/apis/features/node/google-mail.md +0 -214
- package/docs/apis/features/node/google-sheets.md +0 -194
- package/docs/apis/features/node/grep.md +0 -292
- package/docs/apis/features/node/helpers.md +0 -164
- package/docs/apis/features/node/ink.md +0 -334
- package/docs/apis/features/node/ipc-socket.md +0 -249
- package/docs/apis/features/node/json-tree.md +0 -86
- package/docs/apis/features/node/networking.md +0 -316
- package/docs/apis/features/node/nlp.md +0 -133
- package/docs/apis/features/node/opener.md +0 -97
- package/docs/apis/features/node/os.md +0 -146
- package/docs/apis/features/node/package-finder.md +0 -392
- package/docs/apis/features/node/postgres.md +0 -234
- package/docs/apis/features/node/proc.md +0 -399
- package/docs/apis/features/node/process-manager.md +0 -305
- package/docs/apis/features/node/python.md +0 -604
- package/docs/apis/features/node/redis.md +0 -380
- package/docs/apis/features/node/repl.md +0 -88
- package/docs/apis/features/node/runpod.md +0 -674
- package/docs/apis/features/node/secure-shell.md +0 -176
- package/docs/apis/features/node/semantic-search.md +0 -408
- package/docs/apis/features/node/sqlite.md +0 -233
- package/docs/apis/features/node/telegram.md +0 -279
- package/docs/apis/features/node/transpiler.md +0 -74
- package/docs/apis/features/node/tts.md +0 -133
- package/docs/apis/features/node/ui.md +0 -701
- package/docs/apis/features/node/vault.md +0 -59
- package/docs/apis/features/node/vm.md +0 -75
- package/docs/apis/features/node/yaml-tree.md +0 -85
- package/docs/apis/features/node/yaml.md +0 -176
- package/docs/apis/features/web/asset-loader.md +0 -59
- package/docs/apis/features/web/container-link.md +0 -192
- package/docs/apis/features/web/esbuild.md +0 -54
- package/docs/apis/features/web/helpers.md +0 -164
- package/docs/apis/features/web/network.md +0 -44
- package/docs/apis/features/web/speech.md +0 -69
- package/docs/apis/features/web/vault.md +0 -59
- package/docs/apis/features/web/vm.md +0 -75
- package/docs/apis/features/web/voice.md +0 -84
- package/docs/apis/servers/express.md +0 -171
- package/docs/apis/servers/mcp.md +0 -238
- package/docs/apis/servers/websocket.md +0 -170
- package/docs/bootstrap/CLAUDE.md +0 -101
- package/docs/bootstrap/SKILL.md +0 -341
- package/docs/bootstrap/templates/about-command.ts +0 -41
- package/docs/bootstrap/templates/docs-models.ts +0 -22
- package/docs/bootstrap/templates/docs-readme.md +0 -43
- package/docs/bootstrap/templates/example-feature.ts +0 -53
- package/docs/bootstrap/templates/health-endpoint.ts +0 -15
- package/docs/bootstrap/templates/luca-cli.ts +0 -30
- package/docs/bootstrap/templates/runme.md +0 -54
- package/docs/challenges/caching-proxy.md +0 -16
- package/docs/challenges/content-db-round-trip.md +0 -14
- package/docs/challenges/custom-command.md +0 -9
- package/docs/challenges/file-watcher-pipeline.md +0 -11
- package/docs/challenges/grep-audit-report.md +0 -15
- package/docs/challenges/multi-feature-dashboard.md +0 -14
- package/docs/challenges/process-orchestrator.md +0 -17
- package/docs/challenges/rest-api-server-with-client.md +0 -12
- package/docs/challenges/script-runner-with-vm.md +0 -11
- package/docs/challenges/simple-rest-api.md +0 -15
- package/docs/challenges/websocket-serve-and-client.md +0 -11
- package/docs/challenges/yaml-config-system.md +0 -14
- package/docs/command-system-overhaul.md +0 -94
- package/docs/documentation-audit.md +0 -134
- package/docs/examples/assistant/CORE.md +0 -18
- package/docs/examples/assistant/hooks.ts +0 -3
- package/docs/examples/assistant/tools.ts +0 -10
- package/docs/examples/assistant-hooks-reference.ts +0 -171
- package/docs/examples/assistant-with-process-manager.md +0 -84
- package/docs/examples/content-db.md +0 -77
- package/docs/examples/disk-cache.md +0 -83
- package/docs/examples/docker.md +0 -101
- package/docs/examples/downloader.md +0 -70
- package/docs/examples/entity.md +0 -124
- package/docs/examples/esbuild.md +0 -80
- package/docs/examples/feature-as-tool-provider.md +0 -143
- package/docs/examples/file-manager.md +0 -82
- package/docs/examples/fs.md +0 -83
- package/docs/examples/git.md +0 -85
- package/docs/examples/google-auth.md +0 -88
- package/docs/examples/google-calendar.md +0 -94
- package/docs/examples/google-docs.md +0 -82
- package/docs/examples/google-drive.md +0 -96
- package/docs/examples/google-sheets.md +0 -95
- package/docs/examples/grep.md +0 -85
- package/docs/examples/ink-blocks.md +0 -75
- package/docs/examples/ink-renderer.md +0 -41
- package/docs/examples/ink.md +0 -103
- package/docs/examples/ipc-socket.md +0 -103
- package/docs/examples/json-tree.md +0 -91
- package/docs/examples/networking.md +0 -58
- package/docs/examples/nlp.md +0 -91
- package/docs/examples/opener.md +0 -78
- package/docs/examples/os.md +0 -72
- package/docs/examples/package-finder.md +0 -89
- package/docs/examples/postgres.md +0 -91
- package/docs/examples/proc.md +0 -81
- package/docs/examples/process-manager.md +0 -79
- package/docs/examples/python.md +0 -132
- package/docs/examples/repl.md +0 -93
- package/docs/examples/runpod.md +0 -119
- package/docs/examples/secure-shell.md +0 -92
- package/docs/examples/sqlite.md +0 -86
- package/docs/examples/structured-output-with-assistants.md +0 -144
- package/docs/examples/telegram.md +0 -77
- package/docs/examples/tts.md +0 -86
- package/docs/examples/ui.md +0 -80
- package/docs/examples/vault.md +0 -70
- package/docs/examples/vm.md +0 -86
- package/docs/examples/websocket-ask-and-reply-example.md +0 -128
- package/docs/examples/yaml-tree.md +0 -93
- package/docs/examples/yaml.md +0 -104
- package/docs/ideas/assistant-factory-pattern.md +0 -142
- package/docs/in-memory-fs.md +0 -4
- package/docs/introspection-audit.md +0 -49
- package/docs/introspection.md +0 -164
- package/docs/mcp/readme.md +0 -162
- package/docs/models.ts +0 -41
- package/docs/philosophy.md +0 -86
- package/docs/principles.md +0 -7
- package/docs/prompts/audit-codebase-for-failures-to-use-the-container.md +0 -34
- package/docs/prompts/check-for-undocumented-features.md +0 -27
- package/docs/prompts/mcp-test-easy-command.md +0 -27
- package/docs/scaffolds/client.md +0 -149
- package/docs/scaffolds/command.md +0 -120
- package/docs/scaffolds/endpoint.md +0 -171
- package/docs/scaffolds/feature.md +0 -158
- package/docs/scaffolds/selector.md +0 -91
- package/docs/scaffolds/server.md +0 -196
- package/docs/selectors.md +0 -115
- package/docs/sessions/custom-command/attempt-log-2.md +0 -195
- package/docs/sessions/file-watcher-pipeline/attempt-log-1.md +0 -728
- package/docs/sessions/file-watcher-pipeline/attempt-log-2.md +0 -555
- package/docs/sessions/grep-audit-report/attempt-log-1.md +0 -289
- package/docs/sessions/multi-feature-dashboard/attempt-log-2.md +0 -679
- package/docs/sessions/rest-api-server-with-client/attempt-log-1.md +0 -1
- package/docs/sessions/rest-api-server-with-client/attempt-log-3.md +0 -920
- package/docs/sessions/simple-rest-api/attempt-log-1.md +0 -593
- package/docs/sessions/websocket-serve-and-client/attempt-log-2.md +0 -995
- package/docs/tutorials/00-bootstrap.md +0 -166
- package/docs/tutorials/01-getting-started.md +0 -106
- package/docs/tutorials/02-container.md +0 -210
- package/docs/tutorials/03-scripts.md +0 -194
- package/docs/tutorials/04-features-overview.md +0 -196
- package/docs/tutorials/05-state-and-events.md +0 -171
- package/docs/tutorials/06-servers.md +0 -157
- package/docs/tutorials/07-endpoints.md +0 -198
- package/docs/tutorials/08-commands.md +0 -252
- package/docs/tutorials/09-clients.md +0 -162
- package/docs/tutorials/10-creating-features.md +0 -203
- package/docs/tutorials/11-contentbase.md +0 -191
- package/docs/tutorials/12-assistants.md +0 -215
- package/docs/tutorials/13-introspection.md +0 -157
- package/docs/tutorials/14-type-system.md +0 -174
- package/docs/tutorials/15-project-patterns.md +0 -222
- package/docs/tutorials/16-google-features.md +0 -534
- package/docs/tutorials/17-tui-blocks.md +0 -530
- package/docs/tutorials/18-semantic-search.md +0 -334
- package/docs/tutorials/19-python-sessions.md +0 -401
- package/docs/tutorials/20-browser-esm.md +0 -234
- package/index.ts +0 -1
- package/src/agi/endpoints/ask.ts +0 -60
- package/src/agi/endpoints/conversations/[id].ts +0 -45
- package/src/agi/endpoints/conversations.ts +0 -31
- package/src/agi/endpoints/experts.ts +0 -37
- package/test/assistant-hooks.test.ts +0 -306
- package/test/assistant.test.ts +0 -81
- package/test/bus.test.ts +0 -134
- package/test/clients-servers.test.ts +0 -217
- package/test/command.test.ts +0 -267
- package/test/container-link.test.ts +0 -274
- package/test/conversation.test.ts +0 -220
- package/test/features.test.ts +0 -160
- package/test/fork-and-research.test.ts +0 -450
- package/test/integration.test.ts +0 -787
- package/test/interceptor-chain.test.ts +0 -61
- package/test/node-container.test.ts +0 -121
- package/test/python-session.test.ts +0 -105
- package/test/rate-limit.test.ts +0 -272
- package/test/semantic-search.test.ts +0 -550
- package/test/state.test.ts +0 -121
- package/test/vm-context.test.ts +0 -146
- package/test/vm-loadmodule.test.ts +0 -213
- package/test/websocket-ask.test.ts +0 -101
- package/test-integration/assistant.test.ts +0 -138
- package/test-integration/assistants-manager.test.ts +0 -113
- package/test-integration/claude-code.test.ts +0 -98
- package/test-integration/conversation-history.test.ts +0 -205
- package/test-integration/conversation.test.ts +0 -137
- package/test-integration/elevenlabs.test.ts +0 -55
- package/test-integration/google-services.test.ts +0 -80
- package/test-integration/helpers.ts +0 -89
- package/test-integration/memory.test.ts +0 -204
- package/test-integration/openai-codex.test.ts +0 -93
- package/test-integration/runpod.test.ts +0 -58
- package/test-integration/server-endpoints.test.ts +0 -97
- package/test-integration/telegram.test.ts +0 -46
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
# Helpers (features.helpers)
|
|
2
|
-
|
|
3
|
-
The Helpers feature discovers and loads project-level helpers from a JSON manifest served over HTTP. Scripts are injected via AssetLoader and self-register into the container's registries. This is the web equivalent of the node Helpers feature, which scans the filesystem. Instead of filesystem scanning, this feature fetches a manifest from a well-known URL and uses AssetLoader.loadScript() to inject each helper's script tag.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
container.feature('helpers', {
|
|
9
|
-
// Root directory to scan for helper folders. Defaults to container.cwd
|
|
10
|
-
rootDir,
|
|
11
|
-
})
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Options (Zod v4 schema)
|
|
15
|
-
|
|
16
|
-
| Property | Type | Description |
|
|
17
|
-
|----------|------|-------------|
|
|
18
|
-
| `rootDir` | `string` | Root directory to scan for helper folders. Defaults to container.cwd |
|
|
19
|
-
|
|
20
|
-
## Methods
|
|
21
|
-
|
|
22
|
-
### setManifestURL
|
|
23
|
-
|
|
24
|
-
Set a new manifest URL. Invalidates any cached manifest.
|
|
25
|
-
|
|
26
|
-
**Parameters:**
|
|
27
|
-
|
|
28
|
-
| Name | Type | Required | Description |
|
|
29
|
-
|------|------|----------|-------------|
|
|
30
|
-
| `url` | `string` | ✓ | The new URL to fetch the manifest from |
|
|
31
|
-
|
|
32
|
-
**Returns:** `void`
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
### discover
|
|
37
|
-
|
|
38
|
-
Discover and register helpers of the given type from the manifest. Fetches the manifest, then for each entry of the requested type, loads the script via AssetLoader and checks what got newly registered.
|
|
39
|
-
|
|
40
|
-
**Parameters:**
|
|
41
|
-
|
|
42
|
-
| Name | Type | Required | Description |
|
|
43
|
-
|------|------|----------|-------------|
|
|
44
|
-
| `type` | `RegistryType` | ✓ | Which type of helpers to discover ('features' or 'clients') |
|
|
45
|
-
|
|
46
|
-
**Returns:** `Promise<string[]>`
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
### discoverAll
|
|
51
|
-
|
|
52
|
-
Discover all helper types from the manifest.
|
|
53
|
-
|
|
54
|
-
**Returns:** `Promise<Record<string, string[]>>`
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
### discoverFeatures
|
|
59
|
-
|
|
60
|
-
Convenience method to discover only features.
|
|
61
|
-
|
|
62
|
-
**Returns:** `Promise<string[]>`
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
### discoverClients
|
|
67
|
-
|
|
68
|
-
Convenience method to discover only clients.
|
|
69
|
-
|
|
70
|
-
**Returns:** `Promise<string[]>`
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
### lookup
|
|
75
|
-
|
|
76
|
-
Look up a helper class by type and name.
|
|
77
|
-
|
|
78
|
-
**Parameters:**
|
|
79
|
-
|
|
80
|
-
| Name | Type | Required | Description |
|
|
81
|
-
|------|------|----------|-------------|
|
|
82
|
-
| `type` | `RegistryType` | ✓ | The registry type |
|
|
83
|
-
| `name` | `string` | ✓ | The helper name within that registry |
|
|
84
|
-
|
|
85
|
-
**Returns:** `any`
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
### describe
|
|
90
|
-
|
|
91
|
-
Get the introspection description for a specific helper.
|
|
92
|
-
|
|
93
|
-
**Parameters:**
|
|
94
|
-
|
|
95
|
-
| Name | Type | Required | Description |
|
|
96
|
-
|------|------|----------|-------------|
|
|
97
|
-
| `type` | `RegistryType` | ✓ | The registry type |
|
|
98
|
-
| `name` | `string` | ✓ | The helper name |
|
|
99
|
-
|
|
100
|
-
**Returns:** `string`
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
## Getters
|
|
105
|
-
|
|
106
|
-
| Property | Type | Description |
|
|
107
|
-
|----------|------|-------------|
|
|
108
|
-
| `manifestURL` | `string` | The URL to fetch the helpers manifest from. |
|
|
109
|
-
| `available` | `Record<string, string[]>` | Returns a unified view of all available helpers across all registries. Each key is a registry type, each value is the list of helper names in that registry. |
|
|
110
|
-
|
|
111
|
-
## Events (Zod v4 schema)
|
|
112
|
-
|
|
113
|
-
### discovered
|
|
114
|
-
|
|
115
|
-
Emitted after a registry type has been discovered
|
|
116
|
-
|
|
117
|
-
**Event Arguments:**
|
|
118
|
-
|
|
119
|
-
| Name | Type | Description |
|
|
120
|
-
|------|------|-------------|
|
|
121
|
-
| `arg0` | `string` | Registry type that was discovered |
|
|
122
|
-
| `arg1` | `array` | Names of newly registered helpers |
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
### registered
|
|
127
|
-
|
|
128
|
-
Emitted when a single helper is registered
|
|
129
|
-
|
|
130
|
-
**Event Arguments:**
|
|
131
|
-
|
|
132
|
-
| Name | Type | Description |
|
|
133
|
-
|------|------|-------------|
|
|
134
|
-
| `arg0` | `string` | Registry type |
|
|
135
|
-
| `arg1` | `string` | Helper name |
|
|
136
|
-
| `arg2` | `any` | The helper class or module |
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
## State (Zod v4 schema)
|
|
141
|
-
|
|
142
|
-
| Property | Type | Description |
|
|
143
|
-
|----------|------|-------------|
|
|
144
|
-
| `enabled` | `boolean` | Whether this feature is currently enabled |
|
|
145
|
-
| `discovered` | `object` | Which registry types have been discovered |
|
|
146
|
-
| `registered` | `array` | Names of project-level helpers that were discovered (type.name) |
|
|
147
|
-
|
|
148
|
-
## Examples
|
|
149
|
-
|
|
150
|
-
**features.helpers**
|
|
151
|
-
|
|
152
|
-
```ts
|
|
153
|
-
const helpers = container.feature('helpers', { enable: true })
|
|
154
|
-
|
|
155
|
-
// Discover all helper types from the manifest
|
|
156
|
-
await helpers.discoverAll()
|
|
157
|
-
|
|
158
|
-
// Discover a specific type
|
|
159
|
-
await helpers.discover('features')
|
|
160
|
-
|
|
161
|
-
// Unified view of all available helpers
|
|
162
|
-
console.log(helpers.available)
|
|
163
|
-
```
|
|
164
|
-
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# Network (features.network)
|
|
2
|
-
|
|
3
|
-
Tracks browser online/offline connectivity state. Listens for the browser's `online` and `offline` events and keeps the feature state in sync. Other features can observe the `offline` state value or listen for change events to react to connectivity changes.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
container.feature('network')
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Methods
|
|
12
|
-
|
|
13
|
-
### start
|
|
14
|
-
|
|
15
|
-
**Returns:** `void`
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
### disable
|
|
20
|
-
|
|
21
|
-
**Returns:** `void`
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
## Getters
|
|
26
|
-
|
|
27
|
-
| Property | Type | Description |
|
|
28
|
-
|----------|------|-------------|
|
|
29
|
-
| `isOffline` | `any` | Whether the browser is currently offline. |
|
|
30
|
-
| `isOnline` | `any` | Whether the browser is currently online. |
|
|
31
|
-
|
|
32
|
-
## Examples
|
|
33
|
-
|
|
34
|
-
**features.network**
|
|
35
|
-
|
|
36
|
-
```ts
|
|
37
|
-
const network = container.feature('network')
|
|
38
|
-
console.log(network.state.get('offline')) // false when online
|
|
39
|
-
|
|
40
|
-
network.on('stateChanged', ({ offline }) => {
|
|
41
|
-
console.log(offline ? 'Went offline' : 'Back online')
|
|
42
|
-
})
|
|
43
|
-
```
|
|
44
|
-
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# Speech (features.speech)
|
|
2
|
-
|
|
3
|
-
Text-to-speech synthesis using the Web Speech API (SpeechSynthesis). Wraps the browser's built-in speech synthesis, providing voice selection, queue management, and state tracking. Voices are discovered on init and exposed via state for UI binding.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
container.feature('speech')
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Methods
|
|
12
|
-
|
|
13
|
-
### loadVoices
|
|
14
|
-
|
|
15
|
-
**Returns:** `void`
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
### setDefaultVoice
|
|
20
|
-
|
|
21
|
-
**Parameters:**
|
|
22
|
-
|
|
23
|
-
| Name | Type | Required | Description |
|
|
24
|
-
|------|------|----------|-------------|
|
|
25
|
-
| `name` | `string` | ✓ | Parameter name |
|
|
26
|
-
|
|
27
|
-
**Returns:** `void`
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
### cancel
|
|
32
|
-
|
|
33
|
-
**Returns:** `void`
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
### say
|
|
38
|
-
|
|
39
|
-
**Parameters:**
|
|
40
|
-
|
|
41
|
-
| Name | Type | Required | Description |
|
|
42
|
-
|------|------|----------|-------------|
|
|
43
|
-
| `text` | `string` | ✓ | Parameter text |
|
|
44
|
-
| `options` | `{ voice?: Voice }` | | Parameter options |
|
|
45
|
-
|
|
46
|
-
**Returns:** `void`
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
## Getters
|
|
51
|
-
|
|
52
|
-
| Property | Type | Description |
|
|
53
|
-
|----------|------|-------------|
|
|
54
|
-
| `voices` | `any` | Returns the array of available speech synthesis voices. |
|
|
55
|
-
| `defaultVoice` | `any` | Returns the Voice object matching the currently selected default voice name. |
|
|
56
|
-
|
|
57
|
-
## Examples
|
|
58
|
-
|
|
59
|
-
**features.speech**
|
|
60
|
-
|
|
61
|
-
```ts
|
|
62
|
-
const speech = container.feature('speech')
|
|
63
|
-
speech.say('Hello from the browser!')
|
|
64
|
-
|
|
65
|
-
// Choose a specific voice
|
|
66
|
-
const speech = container.feature('speech', { voice: 'Google UK English Female' })
|
|
67
|
-
speech.say('Cheerio!')
|
|
68
|
-
```
|
|
69
|
-
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# WebVault (features.vault)
|
|
2
|
-
|
|
3
|
-
AES-256-GCM encryption and decryption for the browser using the Web Crypto API. Generates or accepts a secret key and provides `encrypt()` / `decrypt()` methods that work entirely client-side. Keys are stored as base64-encoded state so they can persist across sessions when needed.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
container.feature('vault')
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Methods
|
|
12
|
-
|
|
13
|
-
### secret
|
|
14
|
-
|
|
15
|
-
**Parameters:**
|
|
16
|
-
|
|
17
|
-
| Name | Type | Required | Description |
|
|
18
|
-
|------|------|----------|-------------|
|
|
19
|
-
| `{ refresh = false, set = true }` | `any` | | Parameter { refresh = false, set = true } |
|
|
20
|
-
|
|
21
|
-
**Returns:** `Promise<ArrayBuffer>`
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
### decrypt
|
|
26
|
-
|
|
27
|
-
**Parameters:**
|
|
28
|
-
|
|
29
|
-
| Name | Type | Required | Description |
|
|
30
|
-
|------|------|----------|-------------|
|
|
31
|
-
| `payload` | `string` | ✓ | Parameter payload |
|
|
32
|
-
|
|
33
|
-
**Returns:** `void`
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
### encrypt
|
|
38
|
-
|
|
39
|
-
**Parameters:**
|
|
40
|
-
|
|
41
|
-
| Name | Type | Required | Description |
|
|
42
|
-
|------|------|----------|-------------|
|
|
43
|
-
| `payload` | `string` | ✓ | Parameter payload |
|
|
44
|
-
|
|
45
|
-
**Returns:** `void`
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
## Examples
|
|
50
|
-
|
|
51
|
-
**features.vault**
|
|
52
|
-
|
|
53
|
-
```ts
|
|
54
|
-
const vault = container.feature('vault')
|
|
55
|
-
const encrypted = await vault.encrypt('secret data')
|
|
56
|
-
const decrypted = await vault.decrypt(encrypted)
|
|
57
|
-
console.log(decrypted) // 'secret data'
|
|
58
|
-
```
|
|
59
|
-
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# VM (features.vm)
|
|
2
|
-
|
|
3
|
-
Sandboxed JavaScript execution environment for the browser. Automatically injects the container's context object into the global scope, so evaluated code can use anything provided by the container. Useful for live code playgrounds, plugin systems, and dynamic script evaluation.
|
|
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
|
-
const result = vm.run('1 + 2 + 3') // 6
|
|
73
|
-
const greeting = vm.run('container.uuid') // accesses container globals
|
|
74
|
-
```
|
|
75
|
-
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# VoiceRecognition (features.voice)
|
|
2
|
-
|
|
3
|
-
Speech-to-text recognition using the Web Speech API (SpeechRecognition). Wraps the browser's built-in speech recognition, supporting continuous listening, interim results, and language selection. Recognized text is accumulated in state and emitted as events for real-time transcription UIs.
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
## Examples
|
|
71
|
-
|
|
72
|
-
**features.voice**
|
|
73
|
-
|
|
74
|
-
```ts
|
|
75
|
-
const voice = container.feature('voice', { continuous: true, autoListen: true })
|
|
76
|
-
|
|
77
|
-
voice.on('transcript', ({ text }) => {
|
|
78
|
-
console.log('Heard:', text)
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
// Or start manually
|
|
82
|
-
voice.start()
|
|
83
|
-
```
|
|
84
|
-
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
# ExpressServer (servers.express)
|
|
2
|
-
|
|
3
|
-
Express.js HTTP server with automatic endpoint mounting, CORS, and SPA history fallback. Wraps an Express application with convention-based endpoint discovery. Endpoints defined as modules are automatically mounted as routes. Supports static file serving, CORS configuration, and single-page app history fallback out of the box.
|
|
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
|
-
Start the Express HTTP server. A runtime `port` overrides the constructor option and is written to state so `server.port` always reflects reality.
|
|
43
|
-
|
|
44
|
-
**Parameters:**
|
|
45
|
-
|
|
46
|
-
| Name | Type | Required | Description |
|
|
47
|
-
|------|------|----------|-------------|
|
|
48
|
-
| `options` | `StartOptions` | | Optional runtime overrides for port and host |
|
|
49
|
-
|
|
50
|
-
**Returns:** `Promise<this>`
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
### stop
|
|
55
|
-
|
|
56
|
-
**Returns:** `Promise<this>`
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
### configure
|
|
61
|
-
|
|
62
|
-
**Returns:** `Promise<this>`
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
### useEndpoint
|
|
67
|
-
|
|
68
|
-
**Parameters:**
|
|
69
|
-
|
|
70
|
-
| Name | Type | Required | Description |
|
|
71
|
-
|------|------|----------|-------------|
|
|
72
|
-
| `endpoint` | `Endpoint` | ✓ | Parameter endpoint |
|
|
73
|
-
|
|
74
|
-
**Returns:** `this`
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
### useEndpoints
|
|
79
|
-
|
|
80
|
-
**Parameters:**
|
|
81
|
-
|
|
82
|
-
| Name | Type | Required | Description |
|
|
83
|
-
|------|------|----------|-------------|
|
|
84
|
-
| `dir` | `string` | ✓ | Parameter dir |
|
|
85
|
-
|
|
86
|
-
**Returns:** `Promise<this>`
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
### reloadEndpoint
|
|
91
|
-
|
|
92
|
-
Reload a mounted endpoint by its file path. Re-reads the module through the helpers VM loader so the next request picks up the new handlers.
|
|
93
|
-
|
|
94
|
-
**Parameters:**
|
|
95
|
-
|
|
96
|
-
| Name | Type | Required | Description |
|
|
97
|
-
|------|------|----------|-------------|
|
|
98
|
-
| `filePath` | `string` | ✓ | Absolute path to the endpoint file |
|
|
99
|
-
|
|
100
|
-
**Returns:** `Promise<Endpoint | null>`
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
### useEndpointModules
|
|
105
|
-
|
|
106
|
-
**Parameters:**
|
|
107
|
-
|
|
108
|
-
| Name | Type | Required | Description |
|
|
109
|
-
|------|------|----------|-------------|
|
|
110
|
-
| `modules` | `EndpointModule[]` | ✓ | Parameter modules |
|
|
111
|
-
|
|
112
|
-
**Returns:** `Promise<this>`
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
### serveOpenAPISpec
|
|
117
|
-
|
|
118
|
-
**Parameters:**
|
|
119
|
-
|
|
120
|
-
| Name | Type | Required | Description |
|
|
121
|
-
|------|------|----------|-------------|
|
|
122
|
-
| `options` | `{ title?: string; version?: string; description?: string }` | | Parameter options |
|
|
123
|
-
|
|
124
|
-
**Returns:** `this`
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
### generateOpenAPISpec
|
|
129
|
-
|
|
130
|
-
**Parameters:**
|
|
131
|
-
|
|
132
|
-
| Name | Type | Required | Description |
|
|
133
|
-
|------|------|----------|-------------|
|
|
134
|
-
| `options` | `{ title?: string; version?: string; description?: string }` | | Parameter options |
|
|
135
|
-
|
|
136
|
-
**Returns:** `Record<string, any>`
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
## Getters
|
|
141
|
-
|
|
142
|
-
| Property | Type | Description |
|
|
143
|
-
|----------|------|-------------|
|
|
144
|
-
| `express` | `typeof express` | |
|
|
145
|
-
| `hooks` | `{ create: (app: Express, server: Server) => Express; beforeStart: (options: any, server: Server) => any }` | |
|
|
146
|
-
| `app` | `Express` | |
|
|
147
|
-
|
|
148
|
-
## State (Zod v4 schema)
|
|
149
|
-
|
|
150
|
-
| Property | Type | Description |
|
|
151
|
-
|----------|------|-------------|
|
|
152
|
-
| `port` | `number` | The port the server is bound to |
|
|
153
|
-
| `listening` | `boolean` | Whether the server is actively listening for connections |
|
|
154
|
-
| `configured` | `boolean` | Whether the server has been configured |
|
|
155
|
-
| `stopped` | `boolean` | Whether the server has been stopped |
|
|
156
|
-
|
|
157
|
-
## Examples
|
|
158
|
-
|
|
159
|
-
**servers.express**
|
|
160
|
-
|
|
161
|
-
```ts
|
|
162
|
-
const server = container.server('express', { cors: true, static: './public' })
|
|
163
|
-
await server.start({ port: 3000 })
|
|
164
|
-
|
|
165
|
-
// Mount endpoints programmatically
|
|
166
|
-
server.mount(myEndpoint)
|
|
167
|
-
|
|
168
|
-
// Access the underlying Express app
|
|
169
|
-
server.app.get('/health', (req, res) => res.json({ ok: true }))
|
|
170
|
-
```
|
|
171
|
-
|