luca 3.0.0 → 3.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/.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 +220 -322
- 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/try-all-challenges.ts +3 -3
- package/commands/try-challenge.ts +3 -3
- 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/index.html +217 -190
- package/luca.console.ts +1 -1
- package/package.json +2 -2
- package/public/index.html +217 -190
- package/public/slides-ai-native.html +1 -1
- package/public/slides-intro.html +2 -2
- 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 +28563 -27571
- package/src/introspection/generated.node.ts +20281 -20194
- package/src/introspection/generated.web.ts +605 -584
- package/src/introspection/scan.ts +11 -6
- package/src/node/container.ts +1 -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 +42 -15
- 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/transpiler.ts +2 -3
- package/src/node/features/ui.ts +5 -0
- package/src/node/features/vm.ts +3 -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/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,7 +1,70 @@
|
|
|
1
1
|
import { setBuildTimeData, setContainerBuildTimeData } from './index.js';
|
|
2
2
|
|
|
3
3
|
// Auto-generated introspection registry data
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
setBuildTimeData('features.assetLoader', {
|
|
6
|
+
"id": "features.assetLoader",
|
|
7
|
+
"description": "Injects scripts and stylesheets into the page at runtime. Provides helpers for loading external libraries from unpkg.com, injecting arbitrary script/link tags, and managing load state. Used by other web features (e.g. Esbuild) to pull in dependencies on demand.",
|
|
8
|
+
"shortcut": "features.assetLoader",
|
|
9
|
+
"className": "AssetLoader",
|
|
10
|
+
"methods": {
|
|
11
|
+
"removeStylesheet": {
|
|
12
|
+
"description": "",
|
|
13
|
+
"parameters": {
|
|
14
|
+
"href": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Parameter href"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"required": [
|
|
20
|
+
"href"
|
|
21
|
+
],
|
|
22
|
+
"returns": "void"
|
|
23
|
+
},
|
|
24
|
+
"loadScript": {
|
|
25
|
+
"description": "",
|
|
26
|
+
"parameters": {
|
|
27
|
+
"url": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "Parameter url"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"required": [
|
|
33
|
+
"url"
|
|
34
|
+
],
|
|
35
|
+
"returns": "Promise<void>"
|
|
36
|
+
},
|
|
37
|
+
"unpkg": {
|
|
38
|
+
"description": "",
|
|
39
|
+
"parameters": {
|
|
40
|
+
"packageName": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"description": "Parameter packageName"
|
|
43
|
+
},
|
|
44
|
+
"globalName": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"description": "Parameter globalName"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"required": [
|
|
50
|
+
"packageName",
|
|
51
|
+
"globalName"
|
|
52
|
+
],
|
|
53
|
+
"returns": "Promise<any>"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"getters": {},
|
|
57
|
+
"events": {},
|
|
58
|
+
"state": {},
|
|
59
|
+
"options": {},
|
|
60
|
+
"envVars": [],
|
|
61
|
+
"examples": [
|
|
62
|
+
{
|
|
63
|
+
"language": "ts",
|
|
64
|
+
"code": "const loader = container.feature('assetLoader')\nawait loader.loadScript('https://unpkg.com/lodash')\nawait AssetLoader.loadStylesheet('https://unpkg.com/normalize.css')"
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
});
|
|
5
68
|
|
|
6
69
|
setBuildTimeData('features.containerLink', {
|
|
7
70
|
"id": "features.containerLink",
|
|
@@ -150,37 +213,139 @@ setBuildTimeData('features.esbuild', {
|
|
|
150
213
|
]
|
|
151
214
|
});
|
|
152
215
|
|
|
153
|
-
setBuildTimeData('features.
|
|
154
|
-
"id": "features.
|
|
155
|
-
"description": "
|
|
156
|
-
"shortcut": "features.
|
|
157
|
-
"className": "
|
|
216
|
+
setBuildTimeData('features.helpers', {
|
|
217
|
+
"id": "features.helpers",
|
|
218
|
+
"description": "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.",
|
|
219
|
+
"shortcut": "features.helpers",
|
|
220
|
+
"className": "Helpers",
|
|
158
221
|
"methods": {
|
|
159
|
-
"
|
|
222
|
+
"setManifestURL": {
|
|
223
|
+
"description": "Set a new manifest URL. Invalidates any cached manifest.",
|
|
224
|
+
"parameters": {
|
|
225
|
+
"url": {
|
|
226
|
+
"type": "string",
|
|
227
|
+
"description": "The new URL to fetch the manifest from"
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"required": [
|
|
231
|
+
"url"
|
|
232
|
+
],
|
|
233
|
+
"returns": "void"
|
|
234
|
+
},
|
|
235
|
+
"getInstances": {
|
|
160
236
|
"description": "",
|
|
237
|
+
"parameters": {
|
|
238
|
+
"FilterClass": {
|
|
239
|
+
"type": "new (...args: any[]) => T",
|
|
240
|
+
"description": "Parameter FilterClass"
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
"required": [],
|
|
244
|
+
"returns": "Helper[] | T[]"
|
|
245
|
+
},
|
|
246
|
+
"discover": {
|
|
247
|
+
"description": "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.",
|
|
248
|
+
"parameters": {
|
|
249
|
+
"type": {
|
|
250
|
+
"type": "RegistryType",
|
|
251
|
+
"description": "Which type of helpers to discover ('features' or 'clients')"
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
"required": [
|
|
255
|
+
"type"
|
|
256
|
+
],
|
|
257
|
+
"returns": "Promise<string[]>"
|
|
258
|
+
},
|
|
259
|
+
"discoverAll": {
|
|
260
|
+
"description": "Discover all helper types from the manifest.",
|
|
161
261
|
"parameters": {},
|
|
162
262
|
"required": [],
|
|
163
|
-
"returns": "
|
|
263
|
+
"returns": "Promise<Record<string, string[]>>"
|
|
164
264
|
},
|
|
165
|
-
"
|
|
166
|
-
"description": "",
|
|
265
|
+
"discoverFeatures": {
|
|
266
|
+
"description": "Convenience method to discover only features.",
|
|
167
267
|
"parameters": {},
|
|
168
268
|
"required": [],
|
|
169
|
-
"returns": "
|
|
269
|
+
"returns": "Promise<string[]>"
|
|
170
270
|
},
|
|
171
|
-
"
|
|
172
|
-
"description": "",
|
|
271
|
+
"discoverClients": {
|
|
272
|
+
"description": "Convenience method to discover only clients.",
|
|
173
273
|
"parameters": {},
|
|
174
274
|
"required": [],
|
|
175
|
-
"returns": "
|
|
275
|
+
"returns": "Promise<string[]>"
|
|
176
276
|
},
|
|
177
|
-
"
|
|
277
|
+
"lookup": {
|
|
278
|
+
"description": "Look up a helper class by type and name.",
|
|
279
|
+
"parameters": {
|
|
280
|
+
"type": {
|
|
281
|
+
"type": "RegistryType",
|
|
282
|
+
"description": "The registry type"
|
|
283
|
+
},
|
|
284
|
+
"name": {
|
|
285
|
+
"type": "string",
|
|
286
|
+
"description": "The helper name within that registry"
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
"required": [
|
|
290
|
+
"type",
|
|
291
|
+
"name"
|
|
292
|
+
],
|
|
293
|
+
"returns": "any"
|
|
294
|
+
},
|
|
295
|
+
"describe": {
|
|
296
|
+
"description": "Get the introspection description for a specific helper.",
|
|
297
|
+
"parameters": {
|
|
298
|
+
"type": {
|
|
299
|
+
"type": "RegistryType",
|
|
300
|
+
"description": "The registry type"
|
|
301
|
+
},
|
|
302
|
+
"name": {
|
|
303
|
+
"type": "string",
|
|
304
|
+
"description": "The helper name"
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
"required": [
|
|
308
|
+
"type",
|
|
309
|
+
"name"
|
|
310
|
+
],
|
|
311
|
+
"returns": "string"
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
"getters": {
|
|
315
|
+
"manifestURL": {
|
|
316
|
+
"description": "The URL to fetch the helpers manifest from.",
|
|
317
|
+
"returns": "string"
|
|
318
|
+
},
|
|
319
|
+
"available": {
|
|
320
|
+
"description": "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.",
|
|
321
|
+
"returns": "Record<string, string[]>"
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
"events": {},
|
|
325
|
+
"state": {},
|
|
326
|
+
"options": {},
|
|
327
|
+
"envVars": [],
|
|
328
|
+
"examples": [
|
|
329
|
+
{
|
|
330
|
+
"language": "ts",
|
|
331
|
+
"code": "const helpers = container.feature('helpers', { enable: true })\n\n// Discover all helper types from the manifest\nawait helpers.discoverAll()\n\n// Discover a specific type\nawait helpers.discover('features')\n\n// Unified view of all available helpers\nconsole.log(helpers.available)"
|
|
332
|
+
}
|
|
333
|
+
]
|
|
334
|
+
});
|
|
335
|
+
|
|
336
|
+
setBuildTimeData('features.network', {
|
|
337
|
+
"id": "features.network",
|
|
338
|
+
"description": "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.",
|
|
339
|
+
"shortcut": "features.network",
|
|
340
|
+
"className": "Network",
|
|
341
|
+
"methods": {
|
|
342
|
+
"start": {
|
|
178
343
|
"description": "",
|
|
179
344
|
"parameters": {},
|
|
180
345
|
"required": [],
|
|
181
346
|
"returns": "void"
|
|
182
347
|
},
|
|
183
|
-
"
|
|
348
|
+
"disable": {
|
|
184
349
|
"description": "",
|
|
185
350
|
"parameters": {},
|
|
186
351
|
"required": [],
|
|
@@ -188,96 +353,86 @@ setBuildTimeData('features.voice', {
|
|
|
188
353
|
}
|
|
189
354
|
},
|
|
190
355
|
"getters": {
|
|
191
|
-
"
|
|
192
|
-
"description": "Whether the
|
|
356
|
+
"isOffline": {
|
|
357
|
+
"description": "Whether the browser is currently offline.",
|
|
193
358
|
"returns": "any"
|
|
194
359
|
},
|
|
195
|
-
"
|
|
196
|
-
"description": "
|
|
360
|
+
"isOnline": {
|
|
361
|
+
"description": "Whether the browser is currently online.",
|
|
197
362
|
"returns": "any"
|
|
198
363
|
}
|
|
199
364
|
},
|
|
200
|
-
"events": {
|
|
201
|
-
"start": {
|
|
202
|
-
"name": "start",
|
|
203
|
-
"description": "Event emitted by VoiceRecognition",
|
|
204
|
-
"arguments": {}
|
|
205
|
-
},
|
|
206
|
-
"stop": {
|
|
207
|
-
"name": "stop",
|
|
208
|
-
"description": "Event emitted by VoiceRecognition",
|
|
209
|
-
"arguments": {}
|
|
210
|
-
},
|
|
211
|
-
"abort": {
|
|
212
|
-
"name": "abort",
|
|
213
|
-
"description": "Event emitted by VoiceRecognition",
|
|
214
|
-
"arguments": {}
|
|
215
|
-
}
|
|
216
|
-
},
|
|
365
|
+
"events": {},
|
|
217
366
|
"state": {},
|
|
218
367
|
"options": {},
|
|
219
368
|
"envVars": [],
|
|
220
369
|
"examples": [
|
|
221
370
|
{
|
|
222
371
|
"language": "ts",
|
|
223
|
-
"code": "const
|
|
372
|
+
"code": "const network = container.feature('network')\nconsole.log(network.state.get('offline')) // false when online\n\nnetwork.on('stateChanged', ({ offline }) => {\n console.log(offline ? 'Went offline' : 'Back online')\n})"
|
|
224
373
|
}
|
|
225
374
|
]
|
|
226
375
|
});
|
|
227
376
|
|
|
228
|
-
setBuildTimeData('features.
|
|
229
|
-
"id": "features.
|
|
230
|
-
"description": "
|
|
231
|
-
"shortcut": "features.
|
|
232
|
-
"className": "
|
|
377
|
+
setBuildTimeData('features.speech', {
|
|
378
|
+
"id": "features.speech",
|
|
379
|
+
"description": "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.",
|
|
380
|
+
"shortcut": "features.speech",
|
|
381
|
+
"className": "Speech",
|
|
233
382
|
"methods": {
|
|
234
|
-
"
|
|
383
|
+
"loadVoices": {
|
|
384
|
+
"description": "",
|
|
385
|
+
"parameters": {},
|
|
386
|
+
"required": [],
|
|
387
|
+
"returns": "void"
|
|
388
|
+
},
|
|
389
|
+
"setDefaultVoice": {
|
|
235
390
|
"description": "",
|
|
236
391
|
"parameters": {
|
|
237
|
-
"
|
|
392
|
+
"name": {
|
|
238
393
|
"type": "string",
|
|
239
|
-
"description": "Parameter
|
|
394
|
+
"description": "Parameter name"
|
|
240
395
|
}
|
|
241
396
|
},
|
|
242
397
|
"required": [
|
|
243
|
-
"
|
|
398
|
+
"name"
|
|
244
399
|
],
|
|
245
400
|
"returns": "void"
|
|
246
401
|
},
|
|
247
|
-
"
|
|
402
|
+
"cancel": {
|
|
248
403
|
"description": "",
|
|
249
|
-
"parameters": {
|
|
250
|
-
"ctx": {
|
|
251
|
-
"type": "any",
|
|
252
|
-
"description": "Parameter ctx"
|
|
253
|
-
}
|
|
254
|
-
},
|
|
404
|
+
"parameters": {},
|
|
255
405
|
"required": [],
|
|
256
406
|
"returns": "void"
|
|
257
407
|
},
|
|
258
|
-
"
|
|
408
|
+
"say": {
|
|
259
409
|
"description": "",
|
|
260
410
|
"parameters": {
|
|
261
|
-
"
|
|
411
|
+
"text": {
|
|
262
412
|
"type": "string",
|
|
263
|
-
"description": "Parameter
|
|
264
|
-
},
|
|
265
|
-
"ctx": {
|
|
266
|
-
"type": "any",
|
|
267
|
-
"description": "Parameter ctx"
|
|
413
|
+
"description": "Parameter text"
|
|
268
414
|
},
|
|
269
415
|
"options": {
|
|
270
|
-
"type": "
|
|
416
|
+
"type": "{ voice?: Voice }",
|
|
271
417
|
"description": "Parameter options"
|
|
272
418
|
}
|
|
273
419
|
},
|
|
274
420
|
"required": [
|
|
275
|
-
"
|
|
421
|
+
"text"
|
|
276
422
|
],
|
|
277
423
|
"returns": "void"
|
|
278
424
|
}
|
|
279
425
|
},
|
|
280
|
-
"getters": {
|
|
426
|
+
"getters": {
|
|
427
|
+
"voices": {
|
|
428
|
+
"description": "Returns the array of available speech synthesis voices.",
|
|
429
|
+
"returns": "any"
|
|
430
|
+
},
|
|
431
|
+
"defaultVoice": {
|
|
432
|
+
"description": "Returns the Voice object matching the currently selected default voice name.",
|
|
433
|
+
"returns": "any"
|
|
434
|
+
}
|
|
435
|
+
},
|
|
281
436
|
"events": {},
|
|
282
437
|
"state": {},
|
|
283
438
|
"options": {},
|
|
@@ -285,73 +440,36 @@ setBuildTimeData('features.vm', {
|
|
|
285
440
|
"examples": [
|
|
286
441
|
{
|
|
287
442
|
"language": "ts",
|
|
288
|
-
"code": "const
|
|
443
|
+
"code": "const speech = container.feature('speech')\nspeech.say('Hello from the browser!')\n\n// Choose a specific voice\nconst speech = container.feature('speech', { voice: 'Google UK English Female' })\nspeech.say('Cheerio!')"
|
|
289
444
|
}
|
|
290
|
-
]
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
setBuildTimeData('features.assetLoader', {
|
|
294
|
-
"id": "features.assetLoader",
|
|
295
|
-
"description": "Injects scripts and stylesheets into the page at runtime. Provides helpers for loading external libraries from unpkg.com, injecting arbitrary script/link tags, and managing load state. Used by other web features (e.g. Esbuild) to pull in dependencies on demand.",
|
|
296
|
-
"shortcut": "features.assetLoader",
|
|
297
|
-
"className": "AssetLoader",
|
|
298
|
-
"methods": {
|
|
299
|
-
"removeStylesheet": {
|
|
300
|
-
"description": "",
|
|
301
|
-
"parameters": {
|
|
302
|
-
"href": {
|
|
303
|
-
"type": "string",
|
|
304
|
-
"description": "Parameter href"
|
|
305
|
-
}
|
|
306
|
-
},
|
|
307
|
-
"required": [
|
|
308
|
-
"href"
|
|
309
|
-
],
|
|
310
|
-
"returns": "void"
|
|
311
|
-
},
|
|
312
|
-
"loadScript": {
|
|
445
|
+
],
|
|
446
|
+
"types": {
|
|
447
|
+
"Voice": {
|
|
313
448
|
"description": "",
|
|
314
|
-
"
|
|
315
|
-
"
|
|
449
|
+
"properties": {
|
|
450
|
+
"voiceURI": {
|
|
316
451
|
"type": "string",
|
|
317
|
-
"description": "
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
"required": [
|
|
321
|
-
"url"
|
|
322
|
-
],
|
|
323
|
-
"returns": "Promise<void>"
|
|
324
|
-
},
|
|
325
|
-
"unpkg": {
|
|
326
|
-
"description": "",
|
|
327
|
-
"parameters": {
|
|
328
|
-
"packageName": {
|
|
452
|
+
"description": ""
|
|
453
|
+
},
|
|
454
|
+
"name": {
|
|
329
455
|
"type": "string",
|
|
330
|
-
"description": "
|
|
456
|
+
"description": ""
|
|
331
457
|
},
|
|
332
|
-
"
|
|
458
|
+
"lang": {
|
|
333
459
|
"type": "string",
|
|
334
|
-
"description": "
|
|
460
|
+
"description": ""
|
|
461
|
+
},
|
|
462
|
+
"localService": {
|
|
463
|
+
"type": "boolean",
|
|
464
|
+
"description": ""
|
|
465
|
+
},
|
|
466
|
+
"default": {
|
|
467
|
+
"type": "boolean",
|
|
468
|
+
"description": ""
|
|
335
469
|
}
|
|
336
|
-
}
|
|
337
|
-
"required": [
|
|
338
|
-
"packageName",
|
|
339
|
-
"globalName"
|
|
340
|
-
],
|
|
341
|
-
"returns": "Promise<any>"
|
|
342
|
-
}
|
|
343
|
-
},
|
|
344
|
-
"getters": {},
|
|
345
|
-
"events": {},
|
|
346
|
-
"state": {},
|
|
347
|
-
"options": {},
|
|
348
|
-
"envVars": [],
|
|
349
|
-
"examples": [
|
|
350
|
-
{
|
|
351
|
-
"language": "ts",
|
|
352
|
-
"code": "const loader = container.feature('assetLoader')\nawait loader.loadScript('https://unpkg.com/lodash')\nawait AssetLoader.loadStylesheet('https://unpkg.com/normalize.css')"
|
|
470
|
+
}
|
|
353
471
|
}
|
|
354
|
-
|
|
472
|
+
}
|
|
355
473
|
});
|
|
356
474
|
|
|
357
475
|
setBuildTimeData('features.vault', {
|
|
@@ -411,106 +529,59 @@ setBuildTimeData('features.vault', {
|
|
|
411
529
|
]
|
|
412
530
|
});
|
|
413
531
|
|
|
414
|
-
setBuildTimeData('features.
|
|
415
|
-
"id": "features.
|
|
416
|
-
"description": "
|
|
417
|
-
"shortcut": "features.
|
|
418
|
-
"className": "
|
|
419
|
-
"methods": {
|
|
420
|
-
"start": {
|
|
421
|
-
"description": "",
|
|
422
|
-
"parameters": {},
|
|
423
|
-
"required": [],
|
|
424
|
-
"returns": "void"
|
|
425
|
-
},
|
|
426
|
-
"disable": {
|
|
427
|
-
"description": "",
|
|
428
|
-
"parameters": {},
|
|
429
|
-
"required": [],
|
|
430
|
-
"returns": "void"
|
|
431
|
-
}
|
|
432
|
-
},
|
|
433
|
-
"getters": {
|
|
434
|
-
"isOffline": {
|
|
435
|
-
"description": "Whether the browser is currently offline.",
|
|
436
|
-
"returns": "any"
|
|
437
|
-
},
|
|
438
|
-
"isOnline": {
|
|
439
|
-
"description": "Whether the browser is currently online.",
|
|
440
|
-
"returns": "any"
|
|
441
|
-
}
|
|
442
|
-
},
|
|
443
|
-
"events": {},
|
|
444
|
-
"state": {},
|
|
445
|
-
"options": {},
|
|
446
|
-
"envVars": [],
|
|
447
|
-
"examples": [
|
|
448
|
-
{
|
|
449
|
-
"language": "ts",
|
|
450
|
-
"code": "const network = container.feature('network')\nconsole.log(network.state.get('offline')) // false when online\n\nnetwork.on('stateChanged', ({ offline }) => {\n console.log(offline ? 'Went offline' : 'Back online')\n})"
|
|
451
|
-
}
|
|
452
|
-
]
|
|
453
|
-
});
|
|
454
|
-
|
|
455
|
-
setBuildTimeData('features.speech', {
|
|
456
|
-
"id": "features.speech",
|
|
457
|
-
"description": "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.",
|
|
458
|
-
"shortcut": "features.speech",
|
|
459
|
-
"className": "Speech",
|
|
532
|
+
setBuildTimeData('features.vm', {
|
|
533
|
+
"id": "features.vm",
|
|
534
|
+
"description": "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.",
|
|
535
|
+
"shortcut": "features.vm",
|
|
536
|
+
"className": "VM",
|
|
460
537
|
"methods": {
|
|
461
|
-
"
|
|
462
|
-
"description": "",
|
|
463
|
-
"parameters": {},
|
|
464
|
-
"required": [],
|
|
465
|
-
"returns": "void"
|
|
466
|
-
},
|
|
467
|
-
"setDefaultVoice": {
|
|
538
|
+
"createScript": {
|
|
468
539
|
"description": "",
|
|
469
540
|
"parameters": {
|
|
470
|
-
"
|
|
541
|
+
"code": {
|
|
471
542
|
"type": "string",
|
|
472
|
-
"description": "Parameter
|
|
543
|
+
"description": "Parameter code"
|
|
473
544
|
}
|
|
474
545
|
},
|
|
475
546
|
"required": [
|
|
476
|
-
"
|
|
547
|
+
"code"
|
|
477
548
|
],
|
|
478
549
|
"returns": "void"
|
|
479
550
|
},
|
|
480
|
-
"
|
|
551
|
+
"createContext": {
|
|
481
552
|
"description": "",
|
|
482
|
-
"parameters": {
|
|
553
|
+
"parameters": {
|
|
554
|
+
"ctx": {
|
|
555
|
+
"type": "any",
|
|
556
|
+
"description": "Parameter ctx"
|
|
557
|
+
}
|
|
558
|
+
},
|
|
483
559
|
"required": [],
|
|
484
560
|
"returns": "void"
|
|
485
561
|
},
|
|
486
|
-
"
|
|
562
|
+
"run": {
|
|
487
563
|
"description": "",
|
|
488
564
|
"parameters": {
|
|
489
|
-
"
|
|
565
|
+
"code": {
|
|
490
566
|
"type": "string",
|
|
491
|
-
"description": "Parameter
|
|
567
|
+
"description": "Parameter code"
|
|
568
|
+
},
|
|
569
|
+
"ctx": {
|
|
570
|
+
"type": "any",
|
|
571
|
+
"description": "Parameter ctx"
|
|
492
572
|
},
|
|
493
573
|
"options": {
|
|
494
|
-
"type": "
|
|
574
|
+
"type": "any",
|
|
495
575
|
"description": "Parameter options"
|
|
496
576
|
}
|
|
497
577
|
},
|
|
498
578
|
"required": [
|
|
499
|
-
"
|
|
579
|
+
"code"
|
|
500
580
|
],
|
|
501
581
|
"returns": "void"
|
|
502
582
|
}
|
|
503
583
|
},
|
|
504
|
-
"getters": {
|
|
505
|
-
"voices": {
|
|
506
|
-
"description": "Returns the array of available speech synthesis voices.",
|
|
507
|
-
"returns": "any"
|
|
508
|
-
},
|
|
509
|
-
"defaultVoice": {
|
|
510
|
-
"description": "Returns the Voice object matching the currently selected default voice name.",
|
|
511
|
-
"returns": "any"
|
|
512
|
-
}
|
|
513
|
-
},
|
|
584
|
+
"getters": {},
|
|
514
585
|
"events": {},
|
|
515
586
|
"state": {},
|
|
516
587
|
"options": {},
|
|
@@ -518,143 +589,82 @@ setBuildTimeData('features.speech', {
|
|
|
518
589
|
"examples": [
|
|
519
590
|
{
|
|
520
591
|
"language": "ts",
|
|
521
|
-
"code": "const
|
|
522
|
-
}
|
|
523
|
-
],
|
|
524
|
-
"types": {
|
|
525
|
-
"Voice": {
|
|
526
|
-
"description": "",
|
|
527
|
-
"properties": {
|
|
528
|
-
"voiceURI": {
|
|
529
|
-
"type": "string",
|
|
530
|
-
"description": ""
|
|
531
|
-
},
|
|
532
|
-
"name": {
|
|
533
|
-
"type": "string",
|
|
534
|
-
"description": ""
|
|
535
|
-
},
|
|
536
|
-
"lang": {
|
|
537
|
-
"type": "string",
|
|
538
|
-
"description": ""
|
|
539
|
-
},
|
|
540
|
-
"localService": {
|
|
541
|
-
"type": "boolean",
|
|
542
|
-
"description": ""
|
|
543
|
-
},
|
|
544
|
-
"default": {
|
|
545
|
-
"type": "boolean",
|
|
546
|
-
"description": ""
|
|
547
|
-
}
|
|
548
|
-
}
|
|
592
|
+
"code": "const vm = container.feature('vm')\nconst result = vm.run('1 + 2 + 3') // 6\nconst greeting = vm.run('container.uuid') // accesses container globals"
|
|
549
593
|
}
|
|
550
|
-
|
|
594
|
+
]
|
|
551
595
|
});
|
|
552
596
|
|
|
553
|
-
setBuildTimeData('features.
|
|
554
|
-
"id": "features.
|
|
555
|
-
"description": "
|
|
556
|
-
"shortcut": "features.
|
|
557
|
-
"className": "
|
|
597
|
+
setBuildTimeData('features.voice', {
|
|
598
|
+
"id": "features.voice",
|
|
599
|
+
"description": "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.",
|
|
600
|
+
"shortcut": "features.voice",
|
|
601
|
+
"className": "VoiceRecognition",
|
|
558
602
|
"methods": {
|
|
559
|
-
"
|
|
560
|
-
"description": "
|
|
561
|
-
"parameters": {
|
|
562
|
-
|
|
563
|
-
"type": "string",
|
|
564
|
-
"description": "The new URL to fetch the manifest from"
|
|
565
|
-
}
|
|
566
|
-
},
|
|
567
|
-
"required": [
|
|
568
|
-
"url"
|
|
569
|
-
],
|
|
603
|
+
"whenFinished": {
|
|
604
|
+
"description": "",
|
|
605
|
+
"parameters": {},
|
|
606
|
+
"required": [],
|
|
570
607
|
"returns": "void"
|
|
571
608
|
},
|
|
572
|
-
"
|
|
573
|
-
"description": "
|
|
574
|
-
"parameters": {
|
|
575
|
-
"type": {
|
|
576
|
-
"type": "RegistryType",
|
|
577
|
-
"description": "Which type of helpers to discover ('features' or 'clients')"
|
|
578
|
-
}
|
|
579
|
-
},
|
|
580
|
-
"required": [
|
|
581
|
-
"type"
|
|
582
|
-
],
|
|
583
|
-
"returns": "Promise<string[]>"
|
|
584
|
-
},
|
|
585
|
-
"discoverAll": {
|
|
586
|
-
"description": "Discover all helper types from the manifest.",
|
|
609
|
+
"start": {
|
|
610
|
+
"description": "",
|
|
587
611
|
"parameters": {},
|
|
588
612
|
"required": [],
|
|
589
|
-
"returns": "
|
|
613
|
+
"returns": "void"
|
|
590
614
|
},
|
|
591
|
-
"
|
|
592
|
-
"description": "
|
|
615
|
+
"stop": {
|
|
616
|
+
"description": "",
|
|
593
617
|
"parameters": {},
|
|
594
618
|
"required": [],
|
|
595
|
-
"returns": "
|
|
619
|
+
"returns": "void"
|
|
596
620
|
},
|
|
597
|
-
"
|
|
598
|
-
"description": "
|
|
621
|
+
"abort": {
|
|
622
|
+
"description": "",
|
|
599
623
|
"parameters": {},
|
|
600
624
|
"required": [],
|
|
601
|
-
"returns": "
|
|
625
|
+
"returns": "void"
|
|
602
626
|
},
|
|
603
|
-
"
|
|
604
|
-
"description": "
|
|
605
|
-
"parameters": {
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
}
|
|
614
|
-
},
|
|
615
|
-
"required": [
|
|
616
|
-
"type",
|
|
617
|
-
"name"
|
|
618
|
-
],
|
|
627
|
+
"clearTranscript": {
|
|
628
|
+
"description": "",
|
|
629
|
+
"parameters": {},
|
|
630
|
+
"required": [],
|
|
631
|
+
"returns": "void"
|
|
632
|
+
}
|
|
633
|
+
},
|
|
634
|
+
"getters": {
|
|
635
|
+
"listening": {
|
|
636
|
+
"description": "Whether the speech recognizer is currently listening for audio input.",
|
|
619
637
|
"returns": "any"
|
|
620
638
|
},
|
|
621
|
-
"
|
|
622
|
-
"description": "
|
|
623
|
-
"
|
|
624
|
-
"type": {
|
|
625
|
-
"type": "RegistryType",
|
|
626
|
-
"description": "The registry type"
|
|
627
|
-
},
|
|
628
|
-
"name": {
|
|
629
|
-
"type": "string",
|
|
630
|
-
"description": "The helper name"
|
|
631
|
-
}
|
|
632
|
-
},
|
|
633
|
-
"required": [
|
|
634
|
-
"type",
|
|
635
|
-
"name"
|
|
636
|
-
],
|
|
637
|
-
"returns": "string"
|
|
639
|
+
"transcript": {
|
|
640
|
+
"description": "Returns the accumulated final transcript text from recognition results.",
|
|
641
|
+
"returns": "any"
|
|
638
642
|
}
|
|
639
643
|
},
|
|
640
|
-
"
|
|
641
|
-
"
|
|
642
|
-
"
|
|
643
|
-
"
|
|
644
|
+
"events": {
|
|
645
|
+
"start": {
|
|
646
|
+
"name": "start",
|
|
647
|
+
"description": "Event emitted by VoiceRecognition",
|
|
648
|
+
"arguments": {}
|
|
644
649
|
},
|
|
645
|
-
"
|
|
646
|
-
"
|
|
647
|
-
"
|
|
650
|
+
"stop": {
|
|
651
|
+
"name": "stop",
|
|
652
|
+
"description": "Event emitted by VoiceRecognition",
|
|
653
|
+
"arguments": {}
|
|
654
|
+
},
|
|
655
|
+
"abort": {
|
|
656
|
+
"name": "abort",
|
|
657
|
+
"description": "Event emitted by VoiceRecognition",
|
|
658
|
+
"arguments": {}
|
|
648
659
|
}
|
|
649
660
|
},
|
|
650
|
-
"events": {},
|
|
651
661
|
"state": {},
|
|
652
662
|
"options": {},
|
|
653
663
|
"envVars": [],
|
|
654
664
|
"examples": [
|
|
655
665
|
{
|
|
656
666
|
"language": "ts",
|
|
657
|
-
"code": "const
|
|
667
|
+
"code": "const voice = container.feature('voice', { continuous: true, autoListen: true })\n\nvoice.on('transcript', ({ text }) => {\n console.log('Heard:', text)\n})\n\n// Or start manually\nvoice.start()"
|
|
658
668
|
}
|
|
659
669
|
]
|
|
660
670
|
});
|
|
@@ -1122,14 +1132,77 @@ setContainerBuildTimeData('WebContainer', {
|
|
|
1122
1132
|
"description": "Returns the SocketClient class for WebSocket connections.",
|
|
1123
1133
|
"returns": "any"
|
|
1124
1134
|
},
|
|
1125
|
-
"RestClient": {
|
|
1126
|
-
"description": "Returns the RestClient class for HTTP REST API connections.",
|
|
1127
|
-
"returns": "any"
|
|
1128
|
-
}
|
|
1135
|
+
"RestClient": {
|
|
1136
|
+
"description": "Returns the RestClient class for HTTP REST API connections.",
|
|
1137
|
+
"returns": "any"
|
|
1138
|
+
}
|
|
1139
|
+
},
|
|
1140
|
+
"events": {}
|
|
1141
|
+
});
|
|
1142
|
+
export const introspectionData = [
|
|
1143
|
+
{
|
|
1144
|
+
"id": "features.assetLoader",
|
|
1145
|
+
"description": "Injects scripts and stylesheets into the page at runtime. Provides helpers for loading external libraries from unpkg.com, injecting arbitrary script/link tags, and managing load state. Used by other web features (e.g. Esbuild) to pull in dependencies on demand.",
|
|
1146
|
+
"shortcut": "features.assetLoader",
|
|
1147
|
+
"className": "AssetLoader",
|
|
1148
|
+
"methods": {
|
|
1149
|
+
"removeStylesheet": {
|
|
1150
|
+
"description": "",
|
|
1151
|
+
"parameters": {
|
|
1152
|
+
"href": {
|
|
1153
|
+
"type": "string",
|
|
1154
|
+
"description": "Parameter href"
|
|
1155
|
+
}
|
|
1156
|
+
},
|
|
1157
|
+
"required": [
|
|
1158
|
+
"href"
|
|
1159
|
+
],
|
|
1160
|
+
"returns": "void"
|
|
1161
|
+
},
|
|
1162
|
+
"loadScript": {
|
|
1163
|
+
"description": "",
|
|
1164
|
+
"parameters": {
|
|
1165
|
+
"url": {
|
|
1166
|
+
"type": "string",
|
|
1167
|
+
"description": "Parameter url"
|
|
1168
|
+
}
|
|
1169
|
+
},
|
|
1170
|
+
"required": [
|
|
1171
|
+
"url"
|
|
1172
|
+
],
|
|
1173
|
+
"returns": "Promise<void>"
|
|
1174
|
+
},
|
|
1175
|
+
"unpkg": {
|
|
1176
|
+
"description": "",
|
|
1177
|
+
"parameters": {
|
|
1178
|
+
"packageName": {
|
|
1179
|
+
"type": "string",
|
|
1180
|
+
"description": "Parameter packageName"
|
|
1181
|
+
},
|
|
1182
|
+
"globalName": {
|
|
1183
|
+
"type": "string",
|
|
1184
|
+
"description": "Parameter globalName"
|
|
1185
|
+
}
|
|
1186
|
+
},
|
|
1187
|
+
"required": [
|
|
1188
|
+
"packageName",
|
|
1189
|
+
"globalName"
|
|
1190
|
+
],
|
|
1191
|
+
"returns": "Promise<any>"
|
|
1192
|
+
}
|
|
1193
|
+
},
|
|
1194
|
+
"getters": {},
|
|
1195
|
+
"events": {},
|
|
1196
|
+
"state": {},
|
|
1197
|
+
"options": {},
|
|
1198
|
+
"envVars": [],
|
|
1199
|
+
"examples": [
|
|
1200
|
+
{
|
|
1201
|
+
"language": "ts",
|
|
1202
|
+
"code": "const loader = container.feature('assetLoader')\nawait loader.loadScript('https://unpkg.com/lodash')\nawait AssetLoader.loadStylesheet('https://unpkg.com/normalize.css')"
|
|
1203
|
+
}
|
|
1204
|
+
]
|
|
1129
1205
|
},
|
|
1130
|
-
"events": {}
|
|
1131
|
-
});
|
|
1132
|
-
export const introspectionData = [
|
|
1133
1206
|
{
|
|
1134
1207
|
"id": "features.containerLink",
|
|
1135
1208
|
"description": "ContainerLink (Web-side) — WebSocket client that connects to a node host. Connects to a ContainerLink host over WebSocket. The host can evaluate code in this container, and the web side can emit structured events to the host. The web side can NEVER eval code in the host — trust is strictly one-way.",
|
|
@@ -1276,251 +1349,113 @@ export const introspectionData = [
|
|
|
1276
1349
|
]
|
|
1277
1350
|
},
|
|
1278
1351
|
{
|
|
1279
|
-
"id": "features.
|
|
1280
|
-
"description": "
|
|
1281
|
-
"shortcut": "features.
|
|
1282
|
-
"className": "
|
|
1283
|
-
"methods": {
|
|
1284
|
-
"whenFinished": {
|
|
1285
|
-
"description": "",
|
|
1286
|
-
"parameters": {},
|
|
1287
|
-
"required": [],
|
|
1288
|
-
"returns": "void"
|
|
1289
|
-
},
|
|
1290
|
-
"start": {
|
|
1291
|
-
"description": "",
|
|
1292
|
-
"parameters": {},
|
|
1293
|
-
"required": [],
|
|
1294
|
-
"returns": "void"
|
|
1295
|
-
},
|
|
1296
|
-
"stop": {
|
|
1297
|
-
"description": "",
|
|
1298
|
-
"parameters": {},
|
|
1299
|
-
"required": [],
|
|
1300
|
-
"returns": "void"
|
|
1301
|
-
},
|
|
1302
|
-
"abort": {
|
|
1303
|
-
"description": "",
|
|
1304
|
-
"parameters": {},
|
|
1305
|
-
"required": [],
|
|
1306
|
-
"returns": "void"
|
|
1307
|
-
},
|
|
1308
|
-
"clearTranscript": {
|
|
1309
|
-
"description": "",
|
|
1310
|
-
"parameters": {},
|
|
1311
|
-
"required": [],
|
|
1312
|
-
"returns": "void"
|
|
1313
|
-
}
|
|
1314
|
-
},
|
|
1315
|
-
"getters": {
|
|
1316
|
-
"listening": {
|
|
1317
|
-
"description": "Whether the speech recognizer is currently listening for audio input.",
|
|
1318
|
-
"returns": "any"
|
|
1319
|
-
},
|
|
1320
|
-
"transcript": {
|
|
1321
|
-
"description": "Returns the accumulated final transcript text from recognition results.",
|
|
1322
|
-
"returns": "any"
|
|
1323
|
-
}
|
|
1324
|
-
},
|
|
1325
|
-
"events": {
|
|
1326
|
-
"start": {
|
|
1327
|
-
"name": "start",
|
|
1328
|
-
"description": "Event emitted by VoiceRecognition",
|
|
1329
|
-
"arguments": {}
|
|
1330
|
-
},
|
|
1331
|
-
"stop": {
|
|
1332
|
-
"name": "stop",
|
|
1333
|
-
"description": "Event emitted by VoiceRecognition",
|
|
1334
|
-
"arguments": {}
|
|
1335
|
-
},
|
|
1336
|
-
"abort": {
|
|
1337
|
-
"name": "abort",
|
|
1338
|
-
"description": "Event emitted by VoiceRecognition",
|
|
1339
|
-
"arguments": {}
|
|
1340
|
-
}
|
|
1341
|
-
},
|
|
1342
|
-
"state": {},
|
|
1343
|
-
"options": {},
|
|
1344
|
-
"envVars": [],
|
|
1345
|
-
"examples": [
|
|
1346
|
-
{
|
|
1347
|
-
"language": "ts",
|
|
1348
|
-
"code": "const voice = container.feature('voice', { continuous: true, autoListen: true })\n\nvoice.on('transcript', ({ text }) => {\n console.log('Heard:', text)\n})\n\n// Or start manually\nvoice.start()"
|
|
1349
|
-
}
|
|
1350
|
-
]
|
|
1351
|
-
},
|
|
1352
|
-
{
|
|
1353
|
-
"id": "features.vm",
|
|
1354
|
-
"description": "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.",
|
|
1355
|
-
"shortcut": "features.vm",
|
|
1356
|
-
"className": "VM",
|
|
1352
|
+
"id": "features.helpers",
|
|
1353
|
+
"description": "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.",
|
|
1354
|
+
"shortcut": "features.helpers",
|
|
1355
|
+
"className": "Helpers",
|
|
1357
1356
|
"methods": {
|
|
1358
|
-
"
|
|
1359
|
-
"description": "",
|
|
1357
|
+
"setManifestURL": {
|
|
1358
|
+
"description": "Set a new manifest URL. Invalidates any cached manifest.",
|
|
1360
1359
|
"parameters": {
|
|
1361
|
-
"
|
|
1360
|
+
"url": {
|
|
1362
1361
|
"type": "string",
|
|
1363
|
-
"description": "
|
|
1362
|
+
"description": "The new URL to fetch the manifest from"
|
|
1364
1363
|
}
|
|
1365
1364
|
},
|
|
1366
1365
|
"required": [
|
|
1367
|
-
"
|
|
1366
|
+
"url"
|
|
1368
1367
|
],
|
|
1369
1368
|
"returns": "void"
|
|
1370
1369
|
},
|
|
1371
|
-
"
|
|
1370
|
+
"getInstances": {
|
|
1372
1371
|
"description": "",
|
|
1373
1372
|
"parameters": {
|
|
1374
|
-
"
|
|
1375
|
-
"type": "any",
|
|
1376
|
-
"description": "Parameter
|
|
1373
|
+
"FilterClass": {
|
|
1374
|
+
"type": "new (...args: any[]) => T",
|
|
1375
|
+
"description": "Parameter FilterClass"
|
|
1377
1376
|
}
|
|
1378
1377
|
},
|
|
1379
1378
|
"required": [],
|
|
1380
|
-
"returns": "
|
|
1379
|
+
"returns": "Helper[] | T[]"
|
|
1381
1380
|
},
|
|
1382
|
-
"
|
|
1383
|
-
"description": "",
|
|
1384
|
-
"parameters": {
|
|
1385
|
-
"code": {
|
|
1386
|
-
"type": "string",
|
|
1387
|
-
"description": "Parameter code"
|
|
1388
|
-
},
|
|
1389
|
-
"ctx": {
|
|
1390
|
-
"type": "any",
|
|
1391
|
-
"description": "Parameter ctx"
|
|
1392
|
-
},
|
|
1393
|
-
"options": {
|
|
1394
|
-
"type": "any",
|
|
1395
|
-
"description": "Parameter options"
|
|
1396
|
-
}
|
|
1397
|
-
},
|
|
1398
|
-
"required": [
|
|
1399
|
-
"code"
|
|
1400
|
-
],
|
|
1401
|
-
"returns": "void"
|
|
1402
|
-
}
|
|
1403
|
-
},
|
|
1404
|
-
"getters": {},
|
|
1405
|
-
"events": {},
|
|
1406
|
-
"state": {},
|
|
1407
|
-
"options": {},
|
|
1408
|
-
"envVars": [],
|
|
1409
|
-
"examples": [
|
|
1410
|
-
{
|
|
1411
|
-
"language": "ts",
|
|
1412
|
-
"code": "const vm = container.feature('vm')\nconst result = vm.run('1 + 2 + 3') // 6\nconst greeting = vm.run('container.uuid') // accesses container globals"
|
|
1413
|
-
}
|
|
1414
|
-
]
|
|
1415
|
-
},
|
|
1416
|
-
{
|
|
1417
|
-
"id": "features.assetLoader",
|
|
1418
|
-
"description": "Injects scripts and stylesheets into the page at runtime. Provides helpers for loading external libraries from unpkg.com, injecting arbitrary script/link tags, and managing load state. Used by other web features (e.g. Esbuild) to pull in dependencies on demand.",
|
|
1419
|
-
"shortcut": "features.assetLoader",
|
|
1420
|
-
"className": "AssetLoader",
|
|
1421
|
-
"methods": {
|
|
1422
|
-
"removeStylesheet": {
|
|
1423
|
-
"description": "",
|
|
1381
|
+
"discover": {
|
|
1382
|
+
"description": "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.",
|
|
1424
1383
|
"parameters": {
|
|
1425
|
-
"
|
|
1426
|
-
"type": "
|
|
1427
|
-
"description": "
|
|
1384
|
+
"type": {
|
|
1385
|
+
"type": "RegistryType",
|
|
1386
|
+
"description": "Which type of helpers to discover ('features' or 'clients')"
|
|
1428
1387
|
}
|
|
1429
1388
|
},
|
|
1430
1389
|
"required": [
|
|
1431
|
-
"
|
|
1390
|
+
"type"
|
|
1432
1391
|
],
|
|
1433
|
-
"returns": "
|
|
1392
|
+
"returns": "Promise<string[]>"
|
|
1434
1393
|
},
|
|
1435
|
-
"
|
|
1436
|
-
"description": "",
|
|
1437
|
-
"parameters": {
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
"description": "Parameter url"
|
|
1441
|
-
}
|
|
1442
|
-
},
|
|
1443
|
-
"required": [
|
|
1444
|
-
"url"
|
|
1445
|
-
],
|
|
1446
|
-
"returns": "Promise<void>"
|
|
1394
|
+
"discoverAll": {
|
|
1395
|
+
"description": "Discover all helper types from the manifest.",
|
|
1396
|
+
"parameters": {},
|
|
1397
|
+
"required": [],
|
|
1398
|
+
"returns": "Promise<Record<string, string[]>>"
|
|
1447
1399
|
},
|
|
1448
|
-
"
|
|
1449
|
-
"description": "",
|
|
1450
|
-
"parameters": {
|
|
1451
|
-
"packageName": {
|
|
1452
|
-
"type": "string",
|
|
1453
|
-
"description": "Parameter packageName"
|
|
1454
|
-
},
|
|
1455
|
-
"globalName": {
|
|
1456
|
-
"type": "string",
|
|
1457
|
-
"description": "Parameter globalName"
|
|
1458
|
-
}
|
|
1459
|
-
},
|
|
1460
|
-
"required": [
|
|
1461
|
-
"packageName",
|
|
1462
|
-
"globalName"
|
|
1463
|
-
],
|
|
1464
|
-
"returns": "Promise<any>"
|
|
1465
|
-
}
|
|
1466
|
-
},
|
|
1467
|
-
"getters": {},
|
|
1468
|
-
"events": {},
|
|
1469
|
-
"state": {},
|
|
1470
|
-
"options": {},
|
|
1471
|
-
"envVars": [],
|
|
1472
|
-
"examples": [
|
|
1473
|
-
{
|
|
1474
|
-
"language": "ts",
|
|
1475
|
-
"code": "const loader = container.feature('assetLoader')\nawait loader.loadScript('https://unpkg.com/lodash')\nawait AssetLoader.loadStylesheet('https://unpkg.com/normalize.css')"
|
|
1476
|
-
}
|
|
1477
|
-
]
|
|
1478
|
-
},
|
|
1479
|
-
{
|
|
1480
|
-
"id": "features.vault",
|
|
1481
|
-
"description": "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.",
|
|
1482
|
-
"shortcut": "features.vault",
|
|
1483
|
-
"className": "WebVault",
|
|
1484
|
-
"methods": {
|
|
1485
|
-
"secret": {
|
|
1486
|
-
"description": "",
|
|
1487
|
-
"parameters": {
|
|
1488
|
-
"{ refresh = false, set = true }": {
|
|
1489
|
-
"type": "any",
|
|
1490
|
-
"description": "Parameter { refresh = false, set = true }"
|
|
1491
|
-
}
|
|
1492
|
-
},
|
|
1400
|
+
"discoverFeatures": {
|
|
1401
|
+
"description": "Convenience method to discover only features.",
|
|
1402
|
+
"parameters": {},
|
|
1493
1403
|
"required": [],
|
|
1494
|
-
"returns": "Promise<
|
|
1404
|
+
"returns": "Promise<string[]>"
|
|
1495
1405
|
},
|
|
1496
|
-
"
|
|
1497
|
-
"description": "",
|
|
1406
|
+
"discoverClients": {
|
|
1407
|
+
"description": "Convenience method to discover only clients.",
|
|
1408
|
+
"parameters": {},
|
|
1409
|
+
"required": [],
|
|
1410
|
+
"returns": "Promise<string[]>"
|
|
1411
|
+
},
|
|
1412
|
+
"lookup": {
|
|
1413
|
+
"description": "Look up a helper class by type and name.",
|
|
1498
1414
|
"parameters": {
|
|
1499
|
-
"
|
|
1415
|
+
"type": {
|
|
1416
|
+
"type": "RegistryType",
|
|
1417
|
+
"description": "The registry type"
|
|
1418
|
+
},
|
|
1419
|
+
"name": {
|
|
1500
1420
|
"type": "string",
|
|
1501
|
-
"description": "
|
|
1421
|
+
"description": "The helper name within that registry"
|
|
1502
1422
|
}
|
|
1503
1423
|
},
|
|
1504
1424
|
"required": [
|
|
1505
|
-
"
|
|
1425
|
+
"type",
|
|
1426
|
+
"name"
|
|
1506
1427
|
],
|
|
1507
|
-
"returns": "
|
|
1428
|
+
"returns": "any"
|
|
1508
1429
|
},
|
|
1509
|
-
"
|
|
1510
|
-
"description": "",
|
|
1430
|
+
"describe": {
|
|
1431
|
+
"description": "Get the introspection description for a specific helper.",
|
|
1511
1432
|
"parameters": {
|
|
1512
|
-
"
|
|
1433
|
+
"type": {
|
|
1434
|
+
"type": "RegistryType",
|
|
1435
|
+
"description": "The registry type"
|
|
1436
|
+
},
|
|
1437
|
+
"name": {
|
|
1513
1438
|
"type": "string",
|
|
1514
|
-
"description": "
|
|
1439
|
+
"description": "The helper name"
|
|
1515
1440
|
}
|
|
1516
1441
|
},
|
|
1517
1442
|
"required": [
|
|
1518
|
-
"
|
|
1443
|
+
"type",
|
|
1444
|
+
"name"
|
|
1519
1445
|
],
|
|
1520
|
-
"returns": "
|
|
1446
|
+
"returns": "string"
|
|
1447
|
+
}
|
|
1448
|
+
},
|
|
1449
|
+
"getters": {
|
|
1450
|
+
"manifestURL": {
|
|
1451
|
+
"description": "The URL to fetch the helpers manifest from.",
|
|
1452
|
+
"returns": "string"
|
|
1453
|
+
},
|
|
1454
|
+
"available": {
|
|
1455
|
+
"description": "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.",
|
|
1456
|
+
"returns": "Record<string, string[]>"
|
|
1521
1457
|
}
|
|
1522
1458
|
},
|
|
1523
|
-
"getters": {},
|
|
1524
1459
|
"events": {},
|
|
1525
1460
|
"state": {},
|
|
1526
1461
|
"options": {},
|
|
@@ -1528,7 +1463,7 @@ export const introspectionData = [
|
|
|
1528
1463
|
"examples": [
|
|
1529
1464
|
{
|
|
1530
1465
|
"language": "ts",
|
|
1531
|
-
"code": "const
|
|
1466
|
+
"code": "const helpers = container.feature('helpers', { enable: true })\n\n// Discover all helper types from the manifest\nawait helpers.discoverAll()\n\n// Discover a specific type\nawait helpers.discover('features')\n\n// Unified view of all available helpers\nconsole.log(helpers.available)"
|
|
1532
1467
|
}
|
|
1533
1468
|
]
|
|
1534
1469
|
},
|
|
@@ -1670,110 +1605,196 @@ export const introspectionData = [
|
|
|
1670
1605
|
}
|
|
1671
1606
|
},
|
|
1672
1607
|
{
|
|
1673
|
-
"id": "features.
|
|
1674
|
-
"description": "
|
|
1675
|
-
"shortcut": "features.
|
|
1676
|
-
"className": "
|
|
1608
|
+
"id": "features.vault",
|
|
1609
|
+
"description": "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.",
|
|
1610
|
+
"shortcut": "features.vault",
|
|
1611
|
+
"className": "WebVault",
|
|
1677
1612
|
"methods": {
|
|
1678
|
-
"
|
|
1679
|
-
"description": "
|
|
1613
|
+
"secret": {
|
|
1614
|
+
"description": "",
|
|
1680
1615
|
"parameters": {
|
|
1681
|
-
"
|
|
1616
|
+
"{ refresh = false, set = true }": {
|
|
1617
|
+
"type": "any",
|
|
1618
|
+
"description": "Parameter { refresh = false, set = true }"
|
|
1619
|
+
}
|
|
1620
|
+
},
|
|
1621
|
+
"required": [],
|
|
1622
|
+
"returns": "Promise<ArrayBuffer>"
|
|
1623
|
+
},
|
|
1624
|
+
"decrypt": {
|
|
1625
|
+
"description": "",
|
|
1626
|
+
"parameters": {
|
|
1627
|
+
"payload": {
|
|
1682
1628
|
"type": "string",
|
|
1683
|
-
"description": "
|
|
1629
|
+
"description": "Parameter payload"
|
|
1684
1630
|
}
|
|
1685
1631
|
},
|
|
1686
1632
|
"required": [
|
|
1687
|
-
"
|
|
1633
|
+
"payload"
|
|
1688
1634
|
],
|
|
1689
1635
|
"returns": "void"
|
|
1690
1636
|
},
|
|
1691
|
-
"
|
|
1692
|
-
"description": "
|
|
1637
|
+
"encrypt": {
|
|
1638
|
+
"description": "",
|
|
1693
1639
|
"parameters": {
|
|
1694
|
-
"
|
|
1695
|
-
"type": "
|
|
1696
|
-
"description": "
|
|
1640
|
+
"payload": {
|
|
1641
|
+
"type": "string",
|
|
1642
|
+
"description": "Parameter payload"
|
|
1697
1643
|
}
|
|
1698
1644
|
},
|
|
1699
1645
|
"required": [
|
|
1700
|
-
"
|
|
1646
|
+
"payload"
|
|
1701
1647
|
],
|
|
1702
|
-
"returns": "
|
|
1703
|
-
}
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
"
|
|
1713
|
-
"
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1648
|
+
"returns": "void"
|
|
1649
|
+
}
|
|
1650
|
+
},
|
|
1651
|
+
"getters": {},
|
|
1652
|
+
"events": {},
|
|
1653
|
+
"state": {},
|
|
1654
|
+
"options": {},
|
|
1655
|
+
"envVars": [],
|
|
1656
|
+
"examples": [
|
|
1657
|
+
{
|
|
1658
|
+
"language": "ts",
|
|
1659
|
+
"code": "const vault = container.feature('vault')\nconst encrypted = await vault.encrypt('secret data')\nconst decrypted = await vault.decrypt(encrypted)\nconsole.log(decrypted) // 'secret data'"
|
|
1660
|
+
}
|
|
1661
|
+
]
|
|
1662
|
+
},
|
|
1663
|
+
{
|
|
1664
|
+
"id": "features.vm",
|
|
1665
|
+
"description": "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.",
|
|
1666
|
+
"shortcut": "features.vm",
|
|
1667
|
+
"className": "VM",
|
|
1668
|
+
"methods": {
|
|
1669
|
+
"createScript": {
|
|
1670
|
+
"description": "",
|
|
1724
1671
|
"parameters": {
|
|
1725
|
-
"
|
|
1726
|
-
"type": "RegistryType",
|
|
1727
|
-
"description": "The registry type"
|
|
1728
|
-
},
|
|
1729
|
-
"name": {
|
|
1672
|
+
"code": {
|
|
1730
1673
|
"type": "string",
|
|
1731
|
-
"description": "
|
|
1674
|
+
"description": "Parameter code"
|
|
1732
1675
|
}
|
|
1733
1676
|
},
|
|
1734
1677
|
"required": [
|
|
1735
|
-
"
|
|
1736
|
-
"name"
|
|
1678
|
+
"code"
|
|
1737
1679
|
],
|
|
1738
|
-
"returns": "
|
|
1680
|
+
"returns": "void"
|
|
1739
1681
|
},
|
|
1740
|
-
"
|
|
1741
|
-
"description": "
|
|
1682
|
+
"createContext": {
|
|
1683
|
+
"description": "",
|
|
1742
1684
|
"parameters": {
|
|
1743
|
-
"
|
|
1744
|
-
"type": "
|
|
1745
|
-
"description": "
|
|
1746
|
-
}
|
|
1747
|
-
|
|
1685
|
+
"ctx": {
|
|
1686
|
+
"type": "any",
|
|
1687
|
+
"description": "Parameter ctx"
|
|
1688
|
+
}
|
|
1689
|
+
},
|
|
1690
|
+
"required": [],
|
|
1691
|
+
"returns": "void"
|
|
1692
|
+
},
|
|
1693
|
+
"run": {
|
|
1694
|
+
"description": "",
|
|
1695
|
+
"parameters": {
|
|
1696
|
+
"code": {
|
|
1748
1697
|
"type": "string",
|
|
1749
|
-
"description": "
|
|
1698
|
+
"description": "Parameter code"
|
|
1699
|
+
},
|
|
1700
|
+
"ctx": {
|
|
1701
|
+
"type": "any",
|
|
1702
|
+
"description": "Parameter ctx"
|
|
1703
|
+
},
|
|
1704
|
+
"options": {
|
|
1705
|
+
"type": "any",
|
|
1706
|
+
"description": "Parameter options"
|
|
1750
1707
|
}
|
|
1751
1708
|
},
|
|
1752
1709
|
"required": [
|
|
1753
|
-
"
|
|
1754
|
-
"name"
|
|
1710
|
+
"code"
|
|
1755
1711
|
],
|
|
1756
|
-
"returns": "
|
|
1712
|
+
"returns": "void"
|
|
1713
|
+
}
|
|
1714
|
+
},
|
|
1715
|
+
"getters": {},
|
|
1716
|
+
"events": {},
|
|
1717
|
+
"state": {},
|
|
1718
|
+
"options": {},
|
|
1719
|
+
"envVars": [],
|
|
1720
|
+
"examples": [
|
|
1721
|
+
{
|
|
1722
|
+
"language": "ts",
|
|
1723
|
+
"code": "const vm = container.feature('vm')\nconst result = vm.run('1 + 2 + 3') // 6\nconst greeting = vm.run('container.uuid') // accesses container globals"
|
|
1724
|
+
}
|
|
1725
|
+
]
|
|
1726
|
+
},
|
|
1727
|
+
{
|
|
1728
|
+
"id": "features.voice",
|
|
1729
|
+
"description": "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.",
|
|
1730
|
+
"shortcut": "features.voice",
|
|
1731
|
+
"className": "VoiceRecognition",
|
|
1732
|
+
"methods": {
|
|
1733
|
+
"whenFinished": {
|
|
1734
|
+
"description": "",
|
|
1735
|
+
"parameters": {},
|
|
1736
|
+
"required": [],
|
|
1737
|
+
"returns": "void"
|
|
1738
|
+
},
|
|
1739
|
+
"start": {
|
|
1740
|
+
"description": "",
|
|
1741
|
+
"parameters": {},
|
|
1742
|
+
"required": [],
|
|
1743
|
+
"returns": "void"
|
|
1744
|
+
},
|
|
1745
|
+
"stop": {
|
|
1746
|
+
"description": "",
|
|
1747
|
+
"parameters": {},
|
|
1748
|
+
"required": [],
|
|
1749
|
+
"returns": "void"
|
|
1750
|
+
},
|
|
1751
|
+
"abort": {
|
|
1752
|
+
"description": "",
|
|
1753
|
+
"parameters": {},
|
|
1754
|
+
"required": [],
|
|
1755
|
+
"returns": "void"
|
|
1756
|
+
},
|
|
1757
|
+
"clearTranscript": {
|
|
1758
|
+
"description": "",
|
|
1759
|
+
"parameters": {},
|
|
1760
|
+
"required": [],
|
|
1761
|
+
"returns": "void"
|
|
1757
1762
|
}
|
|
1758
1763
|
},
|
|
1759
1764
|
"getters": {
|
|
1760
|
-
"
|
|
1761
|
-
"description": "
|
|
1762
|
-
"returns": "
|
|
1765
|
+
"listening": {
|
|
1766
|
+
"description": "Whether the speech recognizer is currently listening for audio input.",
|
|
1767
|
+
"returns": "any"
|
|
1763
1768
|
},
|
|
1764
|
-
"
|
|
1765
|
-
"description": "Returns
|
|
1766
|
-
"returns": "
|
|
1769
|
+
"transcript": {
|
|
1770
|
+
"description": "Returns the accumulated final transcript text from recognition results.",
|
|
1771
|
+
"returns": "any"
|
|
1772
|
+
}
|
|
1773
|
+
},
|
|
1774
|
+
"events": {
|
|
1775
|
+
"start": {
|
|
1776
|
+
"name": "start",
|
|
1777
|
+
"description": "Event emitted by VoiceRecognition",
|
|
1778
|
+
"arguments": {}
|
|
1779
|
+
},
|
|
1780
|
+
"stop": {
|
|
1781
|
+
"name": "stop",
|
|
1782
|
+
"description": "Event emitted by VoiceRecognition",
|
|
1783
|
+
"arguments": {}
|
|
1784
|
+
},
|
|
1785
|
+
"abort": {
|
|
1786
|
+
"name": "abort",
|
|
1787
|
+
"description": "Event emitted by VoiceRecognition",
|
|
1788
|
+
"arguments": {}
|
|
1767
1789
|
}
|
|
1768
1790
|
},
|
|
1769
|
-
"events": {},
|
|
1770
1791
|
"state": {},
|
|
1771
1792
|
"options": {},
|
|
1772
1793
|
"envVars": [],
|
|
1773
1794
|
"examples": [
|
|
1774
1795
|
{
|
|
1775
1796
|
"language": "ts",
|
|
1776
|
-
"code": "const
|
|
1797
|
+
"code": "const voice = container.feature('voice', { continuous: true, autoListen: true })\n\nvoice.on('transcript', ({ text }) => {\n console.log('Heard:', text)\n})\n\n// Or start manually\nvoice.start()"
|
|
1777
1798
|
}
|
|
1778
1799
|
]
|
|
1779
1800
|
}
|