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,429 +0,0 @@
|
|
|
1
|
-
# OpenAIClient (clients.openai)
|
|
2
|
-
|
|
3
|
-
OpenAI client — wraps the OpenAI SDK for chat completions, responses API, embeddings, and image generation. Provides convenience methods for common operations while tracking token usage and request counts. Supports both the Chat Completions API and the newer Responses API.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
container.client('openai', {
|
|
9
|
-
// Base URL for the client connection
|
|
10
|
-
baseURL,
|
|
11
|
-
// Whether to automatically parse responses as JSON
|
|
12
|
-
json,
|
|
13
|
-
// OpenAI API key (falls back to OPENAI_API_KEY env var)
|
|
14
|
-
apiKey,
|
|
15
|
-
// OpenAI organization ID
|
|
16
|
-
organization,
|
|
17
|
-
// OpenAI project ID
|
|
18
|
-
project,
|
|
19
|
-
// Allow usage in browser environments
|
|
20
|
-
dangerouslyAllowBrowser,
|
|
21
|
-
// Default model for completions (default: gpt-4o)
|
|
22
|
-
defaultModel,
|
|
23
|
-
// Request timeout in milliseconds
|
|
24
|
-
timeout,
|
|
25
|
-
// Maximum number of retries on failure
|
|
26
|
-
maxRetries,
|
|
27
|
-
})
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Options (Zod v4 schema)
|
|
31
|
-
|
|
32
|
-
| Property | Type | Description |
|
|
33
|
-
|----------|------|-------------|
|
|
34
|
-
| `baseURL` | `string` | Base URL for the client connection |
|
|
35
|
-
| `json` | `boolean` | Whether to automatically parse responses as JSON |
|
|
36
|
-
| `apiKey` | `string` | OpenAI API key (falls back to OPENAI_API_KEY env var) |
|
|
37
|
-
| `organization` | `string` | OpenAI organization ID |
|
|
38
|
-
| `project` | `string` | OpenAI project ID |
|
|
39
|
-
| `dangerouslyAllowBrowser` | `boolean` | Allow usage in browser environments |
|
|
40
|
-
| `defaultModel` | `string` | Default model for completions (default: gpt-4o) |
|
|
41
|
-
| `timeout` | `number` | Request timeout in milliseconds |
|
|
42
|
-
| `maxRetries` | `number` | Maximum number of retries on failure |
|
|
43
|
-
|
|
44
|
-
## Methods
|
|
45
|
-
|
|
46
|
-
### connect
|
|
47
|
-
|
|
48
|
-
Test the API connection by listing models.
|
|
49
|
-
|
|
50
|
-
**Returns:** `Promise<this>`
|
|
51
|
-
|
|
52
|
-
```ts
|
|
53
|
-
await openai.connect()
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
### createChatCompletion
|
|
59
|
-
|
|
60
|
-
Create a chat completion using the Chat Completions API.
|
|
61
|
-
|
|
62
|
-
**Parameters:**
|
|
63
|
-
|
|
64
|
-
| Name | Type | Required | Description |
|
|
65
|
-
|------|------|----------|-------------|
|
|
66
|
-
| `messages` | `OpenAI.Chat.Completions.ChatCompletionMessageParam[]` | ✓ | Array of chat messages |
|
|
67
|
-
| `options` | `Partial<OpenAI.Chat.Completions.ChatCompletionCreateParams>` | | Additional parameters for the completion |
|
|
68
|
-
|
|
69
|
-
**Returns:** `Promise<OpenAI.Chat.Completions.ChatCompletion>`
|
|
70
|
-
|
|
71
|
-
```ts
|
|
72
|
-
const response = await openai.createChatCompletion([
|
|
73
|
-
{ role: 'system', content: 'You are a helpful assistant.' },
|
|
74
|
-
{ role: 'user', content: 'Hello!' }
|
|
75
|
-
])
|
|
76
|
-
console.log(response.choices[0]?.message?.content)
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
### createResponse
|
|
82
|
-
|
|
83
|
-
Create a response using the Responses API.
|
|
84
|
-
|
|
85
|
-
**Parameters:**
|
|
86
|
-
|
|
87
|
-
| Name | Type | Required | Description |
|
|
88
|
-
|------|------|----------|-------------|
|
|
89
|
-
| `input` | `OpenAI.Responses.ResponseInput | string` | ✓ | The input prompt or message array |
|
|
90
|
-
| `options` | `Partial<OpenAI.Responses.ResponseCreateParamsNonStreaming>` | | Additional parameters for the response |
|
|
91
|
-
|
|
92
|
-
**Returns:** `Promise<OpenAI.Responses.Response>`
|
|
93
|
-
|
|
94
|
-
```ts
|
|
95
|
-
const response = await openai.createResponse('Explain quantum computing')
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
### streamResponse
|
|
101
|
-
|
|
102
|
-
Stream a response using the Responses API.
|
|
103
|
-
|
|
104
|
-
**Parameters:**
|
|
105
|
-
|
|
106
|
-
| Name | Type | Required | Description |
|
|
107
|
-
|------|------|----------|-------------|
|
|
108
|
-
| `input` | `OpenAI.Responses.ResponseInput | string` | ✓ | The input prompt or message array |
|
|
109
|
-
| `options` | `Partial<OpenAI.Responses.ResponseCreateParamsStreaming>` | | Additional parameters for the streaming response |
|
|
110
|
-
|
|
111
|
-
**Returns:** `Promise<AsyncIterable<OpenAI.Responses.ResponseStreamEvent>>`
|
|
112
|
-
|
|
113
|
-
```ts
|
|
114
|
-
const stream = await openai.streamResponse('Write a poem')
|
|
115
|
-
for await (const event of stream) {
|
|
116
|
-
if (event.type === 'response.output_text.delta') {
|
|
117
|
-
process.stdout.write(event.delta)
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
### createCompletion
|
|
125
|
-
|
|
126
|
-
Create a legacy text completion.
|
|
127
|
-
|
|
128
|
-
**Parameters:**
|
|
129
|
-
|
|
130
|
-
| Name | Type | Required | Description |
|
|
131
|
-
|------|------|----------|-------------|
|
|
132
|
-
| `prompt` | `string` | ✓ | The text prompt to complete |
|
|
133
|
-
| `options` | `Partial<OpenAI.Completions.CompletionCreateParams>` | | Additional parameters for the completion |
|
|
134
|
-
|
|
135
|
-
**Returns:** `Promise<OpenAI.Completions.Completion>`
|
|
136
|
-
|
|
137
|
-
```ts
|
|
138
|
-
const response = await openai.createCompletion('Once upon a time')
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
### createEmbedding
|
|
144
|
-
|
|
145
|
-
Create text embeddings for semantic search or similarity comparisons.
|
|
146
|
-
|
|
147
|
-
**Parameters:**
|
|
148
|
-
|
|
149
|
-
| Name | Type | Required | Description |
|
|
150
|
-
|------|------|----------|-------------|
|
|
151
|
-
| `input` | `string | string[]` | ✓ | A string or array of strings to embed |
|
|
152
|
-
| `options` | `Partial<OpenAI.Embeddings.EmbeddingCreateParams>` | | Additional parameters (model, etc.) |
|
|
153
|
-
|
|
154
|
-
**Returns:** `Promise<OpenAI.Embeddings.CreateEmbeddingResponse>`
|
|
155
|
-
|
|
156
|
-
```ts
|
|
157
|
-
const response = await openai.createEmbedding('Hello world')
|
|
158
|
-
console.log(response.data[0].embedding.length)
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
### createImage
|
|
164
|
-
|
|
165
|
-
Generate an image from a text prompt using DALL-E.
|
|
166
|
-
|
|
167
|
-
**Parameters:**
|
|
168
|
-
|
|
169
|
-
| Name | Type | Required | Description |
|
|
170
|
-
|------|------|----------|-------------|
|
|
171
|
-
| `prompt` | `string` | ✓ | Description of the image to generate |
|
|
172
|
-
| `options` | `Partial<OpenAI.Images.ImageGenerateParams>` | | Additional parameters (size, n, etc.) |
|
|
173
|
-
|
|
174
|
-
**Returns:** `Promise<OpenAI.Images.ImagesResponse>`
|
|
175
|
-
|
|
176
|
-
```ts
|
|
177
|
-
const response = await openai.createImage('A sunset over mountains')
|
|
178
|
-
console.log(response.data[0].url)
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
### listModels
|
|
184
|
-
|
|
185
|
-
List all available models.
|
|
186
|
-
|
|
187
|
-
**Returns:** `Promise<OpenAI.Models.ModelsPage>`
|
|
188
|
-
|
|
189
|
-
```ts
|
|
190
|
-
const models = await openai.listModels()
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
### ask
|
|
196
|
-
|
|
197
|
-
Ask a single question and get a text response. Convenience wrapper around `createChatCompletion` for simple Q&A.
|
|
198
|
-
|
|
199
|
-
**Parameters:**
|
|
200
|
-
|
|
201
|
-
| Name | Type | Required | Description |
|
|
202
|
-
|------|------|----------|-------------|
|
|
203
|
-
| `question` | `string` | ✓ | The question to ask |
|
|
204
|
-
| `options` | `Partial<OpenAI.Chat.Completions.ChatCompletionCreateParams>` | | Additional completion parameters |
|
|
205
|
-
|
|
206
|
-
**Returns:** `Promise<string>`
|
|
207
|
-
|
|
208
|
-
```ts
|
|
209
|
-
const answer = await openai.ask('What is 2 + 2?')
|
|
210
|
-
console.log(answer) // '4'
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
### chat
|
|
216
|
-
|
|
217
|
-
Send a multi-turn conversation and get a text response. Convenience wrapper around `createChatCompletion` that returns just the text.
|
|
218
|
-
|
|
219
|
-
**Parameters:**
|
|
220
|
-
|
|
221
|
-
| Name | Type | Required | Description |
|
|
222
|
-
|------|------|----------|-------------|
|
|
223
|
-
| `messages` | `OpenAI.Chat.Completions.ChatCompletionMessageParam[]` | ✓ | Array of chat messages |
|
|
224
|
-
| `options` | `Partial<OpenAI.Chat.Completions.ChatCompletionCreateParams>` | | Additional completion parameters |
|
|
225
|
-
|
|
226
|
-
**Returns:** `Promise<string>`
|
|
227
|
-
|
|
228
|
-
```ts
|
|
229
|
-
const reply = await openai.chat([
|
|
230
|
-
{ role: 'system', content: 'You are a pirate.' },
|
|
231
|
-
{ role: 'user', content: 'Hello!' }
|
|
232
|
-
])
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
## Getters
|
|
238
|
-
|
|
239
|
-
| Property | Type | Description |
|
|
240
|
-
|----------|------|-------------|
|
|
241
|
-
| `defaultModel` | `string` | The default model used for completions, from options or 'gpt-4o'. |
|
|
242
|
-
| `raw` | `OpenAI` | The underlying OpenAI SDK instance for advanced use cases. |
|
|
243
|
-
|
|
244
|
-
## Events (Zod v4 schema)
|
|
245
|
-
|
|
246
|
-
### connected
|
|
247
|
-
|
|
248
|
-
Emitted when the API connection is verified
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
### failure
|
|
253
|
-
|
|
254
|
-
Emitted when a request fails
|
|
255
|
-
|
|
256
|
-
**Event Arguments:**
|
|
257
|
-
|
|
258
|
-
| Name | Type | Description |
|
|
259
|
-
|------|------|-------------|
|
|
260
|
-
| `arg0` | `any` | The error object |
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
### completion
|
|
265
|
-
|
|
266
|
-
Emitted after a chat completion, legacy completion, or response is created
|
|
267
|
-
|
|
268
|
-
**Event Arguments:**
|
|
269
|
-
|
|
270
|
-
| Name | Type | Description |
|
|
271
|
-
|------|------|-------------|
|
|
272
|
-
| `arg0` | `any` | The completion or response object |
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
### embedding
|
|
277
|
-
|
|
278
|
-
Emitted after embeddings are created
|
|
279
|
-
|
|
280
|
-
**Event Arguments:**
|
|
281
|
-
|
|
282
|
-
| Name | Type | Description |
|
|
283
|
-
|------|------|-------------|
|
|
284
|
-
| `arg0` | `any` | The embedding response object |
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
### image
|
|
289
|
-
|
|
290
|
-
Emitted after an image is generated
|
|
291
|
-
|
|
292
|
-
**Event Arguments:**
|
|
293
|
-
|
|
294
|
-
| Name | Type | Description |
|
|
295
|
-
|------|------|-------------|
|
|
296
|
-
| `arg0` | `any` | The image generation response object |
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
### models
|
|
301
|
-
|
|
302
|
-
Emitted after listing available models
|
|
303
|
-
|
|
304
|
-
**Event Arguments:**
|
|
305
|
-
|
|
306
|
-
| Name | Type | Description |
|
|
307
|
-
|------|------|-------------|
|
|
308
|
-
| `arg0` | `any` | The models list response |
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
## State (Zod v4 schema)
|
|
313
|
-
|
|
314
|
-
| Property | Type | Description |
|
|
315
|
-
|----------|------|-------------|
|
|
316
|
-
| `connected` | `boolean` | Whether the client is currently connected |
|
|
317
|
-
| `requestCount` | `number` | Total number of API requests made |
|
|
318
|
-
| `lastRequestTime` | `any` | Timestamp of the last API request |
|
|
319
|
-
| `tokenUsage` | `object` | Cumulative token usage across all requests |
|
|
320
|
-
|
|
321
|
-
## Environment Variables
|
|
322
|
-
|
|
323
|
-
- `OPENAI_API_KEY`
|
|
324
|
-
|
|
325
|
-
## Examples
|
|
326
|
-
|
|
327
|
-
**clients.openai**
|
|
328
|
-
|
|
329
|
-
```ts
|
|
330
|
-
const openai = container.client('openai', { defaultModel: 'gpt-4o' })
|
|
331
|
-
const answer = await openai.ask('What is the meaning of life?')
|
|
332
|
-
console.log(answer)
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
**connect**
|
|
338
|
-
|
|
339
|
-
```ts
|
|
340
|
-
await openai.connect()
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
**createChatCompletion**
|
|
346
|
-
|
|
347
|
-
```ts
|
|
348
|
-
const response = await openai.createChatCompletion([
|
|
349
|
-
{ role: 'system', content: 'You are a helpful assistant.' },
|
|
350
|
-
{ role: 'user', content: 'Hello!' }
|
|
351
|
-
])
|
|
352
|
-
console.log(response.choices[0]?.message?.content)
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
**createResponse**
|
|
358
|
-
|
|
359
|
-
```ts
|
|
360
|
-
const response = await openai.createResponse('Explain quantum computing')
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
**streamResponse**
|
|
366
|
-
|
|
367
|
-
```ts
|
|
368
|
-
const stream = await openai.streamResponse('Write a poem')
|
|
369
|
-
for await (const event of stream) {
|
|
370
|
-
if (event.type === 'response.output_text.delta') {
|
|
371
|
-
process.stdout.write(event.delta)
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
**createCompletion**
|
|
379
|
-
|
|
380
|
-
```ts
|
|
381
|
-
const response = await openai.createCompletion('Once upon a time')
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
**createEmbedding**
|
|
387
|
-
|
|
388
|
-
```ts
|
|
389
|
-
const response = await openai.createEmbedding('Hello world')
|
|
390
|
-
console.log(response.data[0].embedding.length)
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
**createImage**
|
|
396
|
-
|
|
397
|
-
```ts
|
|
398
|
-
const response = await openai.createImage('A sunset over mountains')
|
|
399
|
-
console.log(response.data[0].url)
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
**listModels**
|
|
405
|
-
|
|
406
|
-
```ts
|
|
407
|
-
const models = await openai.listModels()
|
|
408
|
-
```
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
**ask**
|
|
413
|
-
|
|
414
|
-
```ts
|
|
415
|
-
const answer = await openai.ask('What is 2 + 2?')
|
|
416
|
-
console.log(answer) // '4'
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
**chat**
|
|
422
|
-
|
|
423
|
-
```ts
|
|
424
|
-
const reply = await openai.chat([
|
|
425
|
-
{ role: 'system', content: 'You are a pirate.' },
|
|
426
|
-
{ role: 'user', content: 'Hello!' }
|
|
427
|
-
])
|
|
428
|
-
```
|
|
429
|
-
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
# RestClient (clients.rest)
|
|
2
|
-
|
|
3
|
-
HTTP REST client built on top of axios. Provides convenience methods for GET, POST, PUT, PATCH, and DELETE requests with automatic JSON handling, configurable base URL, and error event emission.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
container.client('rest', {
|
|
9
|
-
// Base URL for the client connection
|
|
10
|
-
baseURL,
|
|
11
|
-
// Whether to automatically parse responses as JSON
|
|
12
|
-
json,
|
|
13
|
-
})
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Options (Zod v4 schema)
|
|
17
|
-
|
|
18
|
-
| Property | Type | Description |
|
|
19
|
-
|----------|------|-------------|
|
|
20
|
-
| `baseURL` | `string` | Base URL for the client connection |
|
|
21
|
-
| `json` | `boolean` | Whether to automatically parse responses as JSON |
|
|
22
|
-
|
|
23
|
-
## Methods
|
|
24
|
-
|
|
25
|
-
### beforeRequest
|
|
26
|
-
|
|
27
|
-
**Returns:** `Promise<void>`
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
### patch
|
|
32
|
-
|
|
33
|
-
Send a PATCH request. Returns the parsed response body directly (not an axios Response wrapper). On HTTP errors, returns the error as JSON instead of throwing.
|
|
34
|
-
|
|
35
|
-
**Parameters:**
|
|
36
|
-
|
|
37
|
-
| Name | Type | Required | Description |
|
|
38
|
-
|------|------|----------|-------------|
|
|
39
|
-
| `url` | `string` | ✓ | Request path relative to baseURL |
|
|
40
|
-
| `data` | `any` | | Request body |
|
|
41
|
-
| `options` | `AxiosRequestConfig` | | Additional axios request config |
|
|
42
|
-
|
|
43
|
-
**Returns:** `Promise<any>`
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
### put
|
|
48
|
-
|
|
49
|
-
Send a PUT request. Returns the parsed response body directly (not an axios Response wrapper). On HTTP errors, returns the error as JSON instead of throwing.
|
|
50
|
-
|
|
51
|
-
**Parameters:**
|
|
52
|
-
|
|
53
|
-
| Name | Type | Required | Description |
|
|
54
|
-
|------|------|----------|-------------|
|
|
55
|
-
| `url` | `string` | ✓ | Request path relative to baseURL |
|
|
56
|
-
| `data` | `any` | | Request body |
|
|
57
|
-
| `options` | `AxiosRequestConfig` | | Additional axios request config |
|
|
58
|
-
|
|
59
|
-
**Returns:** `Promise<any>`
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
### post
|
|
64
|
-
|
|
65
|
-
Send a POST request. Returns the parsed response body directly (not an axios Response wrapper). On HTTP errors, returns the error as JSON instead of throwing.
|
|
66
|
-
|
|
67
|
-
**Parameters:**
|
|
68
|
-
|
|
69
|
-
| Name | Type | Required | Description |
|
|
70
|
-
|------|------|----------|-------------|
|
|
71
|
-
| `url` | `string` | ✓ | Request path relative to baseURL |
|
|
72
|
-
| `data` | `any` | | Request body |
|
|
73
|
-
| `options` | `AxiosRequestConfig` | | Additional axios request config |
|
|
74
|
-
|
|
75
|
-
**Returns:** `Promise<any>`
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
### delete
|
|
80
|
-
|
|
81
|
-
Send a DELETE request. Returns the parsed response body directly (not an axios Response wrapper). On HTTP errors, returns the error as JSON instead of throwing.
|
|
82
|
-
|
|
83
|
-
**Parameters:**
|
|
84
|
-
|
|
85
|
-
| Name | Type | Required | Description |
|
|
86
|
-
|------|------|----------|-------------|
|
|
87
|
-
| `url` | `string` | ✓ | Request path relative to baseURL |
|
|
88
|
-
| `params` | `any` | | Query parameters |
|
|
89
|
-
| `options` | `AxiosRequestConfig` | | Additional axios request config |
|
|
90
|
-
|
|
91
|
-
**Returns:** `Promise<any>`
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
### get
|
|
96
|
-
|
|
97
|
-
Send a GET request. Returns the parsed response body directly (not an axios Response wrapper). On HTTP errors, returns the error as JSON instead of throwing.
|
|
98
|
-
|
|
99
|
-
**Parameters:**
|
|
100
|
-
|
|
101
|
-
| Name | Type | Required | Description |
|
|
102
|
-
|------|------|----------|-------------|
|
|
103
|
-
| `url` | `string` | ✓ | Request path relative to baseURL |
|
|
104
|
-
| `params` | `any` | | Query parameters |
|
|
105
|
-
| `options` | `AxiosRequestConfig` | | Additional axios request config |
|
|
106
|
-
|
|
107
|
-
**Returns:** `Promise<any>`
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
### handleError
|
|
112
|
-
|
|
113
|
-
Handle an axios error by emitting 'failure' and returning the error as JSON.
|
|
114
|
-
|
|
115
|
-
**Parameters:**
|
|
116
|
-
|
|
117
|
-
| Name | Type | Required | Description |
|
|
118
|
-
|------|------|----------|-------------|
|
|
119
|
-
| `error` | `AxiosError` | ✓ | Parameter error |
|
|
120
|
-
|
|
121
|
-
**Returns:** `Promise<object>`
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
## Getters
|
|
126
|
-
|
|
127
|
-
| Property | Type | Description |
|
|
128
|
-
|----------|------|-------------|
|
|
129
|
-
| `useJSON` | `any` | Whether JSON content-type headers should be set automatically. |
|
|
130
|
-
| `baseURL` | `any` | |
|
|
131
|
-
|
|
132
|
-
## Events (Zod v4 schema)
|
|
133
|
-
|
|
134
|
-
### failure
|
|
135
|
-
|
|
136
|
-
Emitted when a request fails
|
|
137
|
-
|
|
138
|
-
**Event Arguments:**
|
|
139
|
-
|
|
140
|
-
| Name | Type | Description |
|
|
141
|
-
|------|------|-------------|
|
|
142
|
-
| `arg0` | `any` | The error object |
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
## State (Zod v4 schema)
|
|
147
|
-
|
|
148
|
-
| Property | Type | Description |
|
|
149
|
-
|----------|------|-------------|
|
|
150
|
-
| `connected` | `boolean` | Whether the client is currently connected |
|
|
151
|
-
|
|
152
|
-
## Examples
|
|
153
|
-
|
|
154
|
-
**clients.rest**
|
|
155
|
-
|
|
156
|
-
```ts
|
|
157
|
-
const api = container.client('rest', { baseURL: 'https://api.example.com', json: true })
|
|
158
|
-
const users = await api.get('/users')
|
|
159
|
-
await api.post('/users', { name: 'Alice' })
|
|
160
|
-
```
|
|
161
|
-
|