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,163 +0,0 @@
|
|
|
1
|
-
# FileTools (features.fileTools)
|
|
2
|
-
|
|
3
|
-
Curated file-system and code-search tools for AI assistants. Wraps the container's `fs` and `grep` features into a focused tool surface modeled on the tools that coding assistants (Claude Code, Cursor, etc.) rely on: read, write, edit, list, search, find, stat, mkdir, move, copy, delete. Usage: ```typescript const fileTools = container.feature('fileTools') assistant.use(fileTools) // or selectively: assistant.use(fileTools.toTools({ only: ['readFile', 'searchFiles', 'listDirectory'] })) ```
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
container.feature('fileTools')
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Methods
|
|
12
|
-
|
|
13
|
-
### readFile
|
|
14
|
-
|
|
15
|
-
**Parameters:**
|
|
16
|
-
|
|
17
|
-
| Name | Type | Required | Description |
|
|
18
|
-
|------|------|----------|-------------|
|
|
19
|
-
| `args` | `{ path: string; offset?: number; limit?: number }` | ✓ | Parameter args |
|
|
20
|
-
|
|
21
|
-
**Returns:** `Promise<string>`
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
### writeFile
|
|
26
|
-
|
|
27
|
-
**Parameters:**
|
|
28
|
-
|
|
29
|
-
| Name | Type | Required | Description |
|
|
30
|
-
|------|------|----------|-------------|
|
|
31
|
-
| `args` | `{ path: string; content: string }` | ✓ | Parameter args |
|
|
32
|
-
|
|
33
|
-
**Returns:** `Promise<string>`
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
### editFile
|
|
38
|
-
|
|
39
|
-
**Parameters:**
|
|
40
|
-
|
|
41
|
-
| Name | Type | Required | Description |
|
|
42
|
-
|------|------|----------|-------------|
|
|
43
|
-
| `args` | `{ path: string; oldString: string; newString: string; replaceAll?: boolean }` | ✓ | Parameter args |
|
|
44
|
-
|
|
45
|
-
**Returns:** `Promise<string>`
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
### listDirectory
|
|
50
|
-
|
|
51
|
-
**Parameters:**
|
|
52
|
-
|
|
53
|
-
| Name | Type | Required | Description |
|
|
54
|
-
|------|------|----------|-------------|
|
|
55
|
-
| `args` | `{ path?: string; recursive?: boolean; include?: string; exclude?: string }` | ✓ | Parameter args |
|
|
56
|
-
|
|
57
|
-
**Returns:** `Promise<string>`
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
### searchFiles
|
|
62
|
-
|
|
63
|
-
**Parameters:**
|
|
64
|
-
|
|
65
|
-
| Name | Type | Required | Description |
|
|
66
|
-
|------|------|----------|-------------|
|
|
67
|
-
| `args` | `{ pattern: string; path?: string; include?: string; exclude?: string; ignoreCase?: boolean; maxResults?: number }` | ✓ | Parameter args |
|
|
68
|
-
|
|
69
|
-
**Returns:** `Promise<string>`
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
### findFiles
|
|
74
|
-
|
|
75
|
-
**Parameters:**
|
|
76
|
-
|
|
77
|
-
| Name | Type | Required | Description |
|
|
78
|
-
|------|------|----------|-------------|
|
|
79
|
-
| `args` | `{ pattern: string; path?: string; exclude?: string }` | ✓ | Parameter args |
|
|
80
|
-
|
|
81
|
-
**Returns:** `Promise<string>`
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
### fileInfo
|
|
86
|
-
|
|
87
|
-
**Parameters:**
|
|
88
|
-
|
|
89
|
-
| Name | Type | Required | Description |
|
|
90
|
-
|------|------|----------|-------------|
|
|
91
|
-
| `args` | `{ path: string }` | ✓ | Parameter args |
|
|
92
|
-
|
|
93
|
-
**Returns:** `Promise<string>`
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
### createDirectory
|
|
98
|
-
|
|
99
|
-
**Parameters:**
|
|
100
|
-
|
|
101
|
-
| Name | Type | Required | Description |
|
|
102
|
-
|------|------|----------|-------------|
|
|
103
|
-
| `args` | `{ path: string }` | ✓ | Parameter args |
|
|
104
|
-
|
|
105
|
-
**Returns:** `Promise<string>`
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
### moveFile
|
|
110
|
-
|
|
111
|
-
**Parameters:**
|
|
112
|
-
|
|
113
|
-
| Name | Type | Required | Description |
|
|
114
|
-
|------|------|----------|-------------|
|
|
115
|
-
| `args` | `{ source: string; destination: string }` | ✓ | Parameter args |
|
|
116
|
-
|
|
117
|
-
**Returns:** `Promise<string>`
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
### copyFile
|
|
122
|
-
|
|
123
|
-
**Parameters:**
|
|
124
|
-
|
|
125
|
-
| Name | Type | Required | Description |
|
|
126
|
-
|------|------|----------|-------------|
|
|
127
|
-
| `args` | `{ source: string; destination: string }` | ✓ | Parameter args |
|
|
128
|
-
|
|
129
|
-
**Returns:** `Promise<string>`
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
### deleteFile
|
|
134
|
-
|
|
135
|
-
**Parameters:**
|
|
136
|
-
|
|
137
|
-
| Name | Type | Required | Description |
|
|
138
|
-
|------|------|----------|-------------|
|
|
139
|
-
| `args` | `{ path: string }` | ✓ | Parameter args |
|
|
140
|
-
|
|
141
|
-
**Returns:** `Promise<string>`
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
### setupToolsConsumer
|
|
146
|
-
|
|
147
|
-
When an assistant uses fileTools, inject system prompt guidance about how to use the tools effectively.
|
|
148
|
-
|
|
149
|
-
**Parameters:**
|
|
150
|
-
|
|
151
|
-
| Name | Type | Required | Description |
|
|
152
|
-
|------|------|----------|-------------|
|
|
153
|
-
| `consumer` | `Helper` | ✓ | Parameter consumer |
|
|
154
|
-
|
|
155
|
-
**Returns:** `void`
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
## State (Zod v4 schema)
|
|
160
|
-
|
|
161
|
-
| Property | Type | Description |
|
|
162
|
-
|----------|------|-------------|
|
|
163
|
-
| `enabled` | `boolean` | Whether this feature is currently enabled |
|
|
@@ -1,407 +0,0 @@
|
|
|
1
|
-
# LucaCoder (features.lucaCoder)
|
|
2
|
-
|
|
3
|
-
A coding assistant that owns a lower-level Assistant instance and gates all tool calls through a permission system. Comes with built-in Bash tool (via proc.execAndCapture) and auto-loads the luca-framework skill when found in .claude/skills paths. Tools are stacked from feature bundles (fileTools, etc.) and each tool can be set to 'allow' (runs immediately), 'ask' (blocks until user approves/denies), or 'deny' (always rejected).
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
container.feature('lucaCoder', {
|
|
9
|
-
// Tool bundles to register on the inner assistant
|
|
10
|
-
tools,
|
|
11
|
-
// Permission level per tool name
|
|
12
|
-
permissions,
|
|
13
|
-
// Default permission level for unconfigured tools
|
|
14
|
-
defaultPermission,
|
|
15
|
-
// System prompt for the inner assistant
|
|
16
|
-
systemPrompt,
|
|
17
|
-
// OpenAI model override
|
|
18
|
-
model,
|
|
19
|
-
// Maximum number of output tokens per completion
|
|
20
|
-
maxTokens,
|
|
21
|
-
// Use a local API server for the inner assistant
|
|
22
|
-
local,
|
|
23
|
-
// Conversation history persistence mode
|
|
24
|
-
historyMode,
|
|
25
|
-
// Assistant folder for disk-based definitions
|
|
26
|
-
folder,
|
|
27
|
-
// Skill names to auto-load into the system prompt
|
|
28
|
-
skills,
|
|
29
|
-
// Auto-load luca-framework skill if found in .claude/skills path
|
|
30
|
-
autoLoadLucaSkill,
|
|
31
|
-
})
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Options (Zod v4 schema)
|
|
35
|
-
|
|
36
|
-
| Property | Type | Description |
|
|
37
|
-
|----------|------|-------------|
|
|
38
|
-
| `tools` | `array` | Tool bundles to register on the inner assistant |
|
|
39
|
-
| `permissions` | `object` | Permission level per tool name |
|
|
40
|
-
| `defaultPermission` | `string` | Default permission level for unconfigured tools |
|
|
41
|
-
| `systemPrompt` | `string` | System prompt for the inner assistant |
|
|
42
|
-
| `model` | `string` | OpenAI model override |
|
|
43
|
-
| `maxTokens` | `number` | Maximum number of output tokens per completion |
|
|
44
|
-
| `local` | `boolean` | Use a local API server for the inner assistant |
|
|
45
|
-
| `historyMode` | `string` | Conversation history persistence mode |
|
|
46
|
-
| `folder` | `string` | Assistant folder for disk-based definitions |
|
|
47
|
-
| `skills` | `array` | Skill names to auto-load into the system prompt |
|
|
48
|
-
| `autoLoadLucaSkill` | `boolean` | Auto-load luca-framework skill if found in .claude/skills path |
|
|
49
|
-
|
|
50
|
-
## Methods
|
|
51
|
-
|
|
52
|
-
### getPermission
|
|
53
|
-
|
|
54
|
-
Get the effective permission level for a tool.
|
|
55
|
-
|
|
56
|
-
**Parameters:**
|
|
57
|
-
|
|
58
|
-
| Name | Type | Required | Description |
|
|
59
|
-
|------|------|----------|-------------|
|
|
60
|
-
| `toolName` | `string` | ✓ | Parameter toolName |
|
|
61
|
-
|
|
62
|
-
**Returns:** `PermissionLevel`
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
### setPermission
|
|
67
|
-
|
|
68
|
-
Set permission level for one or more tools.
|
|
69
|
-
|
|
70
|
-
**Parameters:**
|
|
71
|
-
|
|
72
|
-
| Name | Type | Required | Description |
|
|
73
|
-
|------|------|----------|-------------|
|
|
74
|
-
| `toolName` | `string | string[]` | ✓ | Parameter toolName |
|
|
75
|
-
| `level` | `PermissionLevel` | ✓ | Parameter level |
|
|
76
|
-
|
|
77
|
-
**Returns:** `this`
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
### setDefaultPermission
|
|
82
|
-
|
|
83
|
-
Set the default permission level for unconfigured tools.
|
|
84
|
-
|
|
85
|
-
**Parameters:**
|
|
86
|
-
|
|
87
|
-
| Name | Type | Required | Description |
|
|
88
|
-
|------|------|----------|-------------|
|
|
89
|
-
| `level` | `PermissionLevel` | ✓ | Parameter level |
|
|
90
|
-
|
|
91
|
-
**Returns:** `this`
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
### permitTool
|
|
96
|
-
|
|
97
|
-
Allow a tool (or tools) to run without approval.
|
|
98
|
-
|
|
99
|
-
**Parameters:**
|
|
100
|
-
|
|
101
|
-
| Name | Type | Required | Description |
|
|
102
|
-
|------|------|----------|-------------|
|
|
103
|
-
| `toolNames` | `string[]` | ✓ | Parameter toolNames |
|
|
104
|
-
|
|
105
|
-
**Returns:** `this`
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
### gateTool
|
|
110
|
-
|
|
111
|
-
Require approval before a tool (or tools) can run.
|
|
112
|
-
|
|
113
|
-
**Parameters:**
|
|
114
|
-
|
|
115
|
-
| Name | Type | Required | Description |
|
|
116
|
-
|------|------|----------|-------------|
|
|
117
|
-
| `toolNames` | `string[]` | ✓ | Parameter toolNames |
|
|
118
|
-
|
|
119
|
-
**Returns:** `this`
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
### blockTool
|
|
124
|
-
|
|
125
|
-
Block a tool (or tools) from ever running.
|
|
126
|
-
|
|
127
|
-
**Parameters:**
|
|
128
|
-
|
|
129
|
-
| Name | Type | Required | Description |
|
|
130
|
-
|------|------|----------|-------------|
|
|
131
|
-
| `toolNames` | `string[]` | ✓ | Parameter toolNames |
|
|
132
|
-
|
|
133
|
-
**Returns:** `this`
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
### approve
|
|
138
|
-
|
|
139
|
-
Approve a pending tool call by ID. The tool will execute.
|
|
140
|
-
|
|
141
|
-
**Parameters:**
|
|
142
|
-
|
|
143
|
-
| Name | Type | Required | Description |
|
|
144
|
-
|------|------|----------|-------------|
|
|
145
|
-
| `id` | `string` | ✓ | Parameter id |
|
|
146
|
-
|
|
147
|
-
**Returns:** `this`
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
### deny
|
|
152
|
-
|
|
153
|
-
Deny a pending tool call by ID. The tool call will be skipped.
|
|
154
|
-
|
|
155
|
-
**Parameters:**
|
|
156
|
-
|
|
157
|
-
| Name | Type | Required | Description |
|
|
158
|
-
|------|------|----------|-------------|
|
|
159
|
-
| `id` | `string` | ✓ | Parameter id |
|
|
160
|
-
|
|
161
|
-
**Returns:** `this`
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
### approveAll
|
|
166
|
-
|
|
167
|
-
Approve all pending tool calls.
|
|
168
|
-
|
|
169
|
-
**Returns:** `this`
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
### denyAll
|
|
174
|
-
|
|
175
|
-
Deny all pending tool calls.
|
|
176
|
-
|
|
177
|
-
**Returns:** `this`
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
### bash
|
|
182
|
-
|
|
183
|
-
Execute a shell command string and return its output. Uses proc.execAndCapture under the hood — runs `sh -c <command>`.
|
|
184
|
-
|
|
185
|
-
**Parameters:**
|
|
186
|
-
|
|
187
|
-
| Name | Type | Required | Description |
|
|
188
|
-
|------|------|----------|-------------|
|
|
189
|
-
| `{ command, cwd, timeout }` | `{ command: string; cwd?: string; timeout?: number }` | ✓ | Parameter { command, cwd, timeout } |
|
|
190
|
-
|
|
191
|
-
**Returns:** `Promise<{
|
|
192
|
-
exitCode: number
|
|
193
|
-
stdout: string
|
|
194
|
-
stderr: string
|
|
195
|
-
success: boolean
|
|
196
|
-
}>`
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
### start
|
|
201
|
-
|
|
202
|
-
Initialize the inner assistant, register the bash tool, stack tool bundles, auto-load skills, and wire up the permission interceptor.
|
|
203
|
-
|
|
204
|
-
**Returns:** `Promise<this>`
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
### ask
|
|
209
|
-
|
|
210
|
-
Ask the coder a question. Auto-starts if needed. Tool calls will be gated by the permission system.
|
|
211
|
-
|
|
212
|
-
**Parameters:**
|
|
213
|
-
|
|
214
|
-
| Name | Type | Required | Description |
|
|
215
|
-
|------|------|----------|-------------|
|
|
216
|
-
| `question` | `string` | ✓ | Parameter question |
|
|
217
|
-
| `options` | `Record<string, any>` | | Parameter options |
|
|
218
|
-
|
|
219
|
-
**Returns:** `Promise<string>`
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
### use
|
|
224
|
-
|
|
225
|
-
Add a tool bundle after initialization. Useful for dynamically extending the assistant's capabilities.
|
|
226
|
-
|
|
227
|
-
**Parameters:**
|
|
228
|
-
|
|
229
|
-
| Name | Type | Required | Description |
|
|
230
|
-
|------|------|----------|-------------|
|
|
231
|
-
| `spec` | `ToolBundleSpec` | ✓ | Parameter spec |
|
|
232
|
-
|
|
233
|
-
**Returns:** `this`
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
## Getters
|
|
238
|
-
|
|
239
|
-
| Property | Type | Description |
|
|
240
|
-
|----------|------|-------------|
|
|
241
|
-
| `assistant` | `Assistant` | The inner assistant. Throws if not started. |
|
|
242
|
-
| `permissions` | `Record<string, PermissionLevel>` | Current permission map from state. |
|
|
243
|
-
| `pendingApprovals` | `PendingApproval[]` | Current pending approvals. |
|
|
244
|
-
| `isStarted` | `boolean` | Whether the assistant is started and ready. |
|
|
245
|
-
| `tools` | `Record<string, any>` | The tools registered on the inner assistant. |
|
|
246
|
-
| `conversation` | `any` | The conversation on the inner assistant (if started). |
|
|
247
|
-
| `messages` | `any` | Messages from the inner assistant's conversation. |
|
|
248
|
-
|
|
249
|
-
## Events (Zod v4 schema)
|
|
250
|
-
|
|
251
|
-
### permissionGranted
|
|
252
|
-
|
|
253
|
-
Emitted when a pending tool call is approved
|
|
254
|
-
|
|
255
|
-
**Event Arguments:**
|
|
256
|
-
|
|
257
|
-
| Name | Type | Description |
|
|
258
|
-
|------|------|-------------|
|
|
259
|
-
| `arg0` | `string` | Approval ID |
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
### permissionDenied
|
|
264
|
-
|
|
265
|
-
Emitted when a pending tool call is denied
|
|
266
|
-
|
|
267
|
-
**Event Arguments:**
|
|
268
|
-
|
|
269
|
-
| Name | Type | Description |
|
|
270
|
-
|------|------|-------------|
|
|
271
|
-
| `arg0` | `string` | Approval ID |
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
### toolBlocked
|
|
276
|
-
|
|
277
|
-
Emitted when a tool call is blocked by deny policy
|
|
278
|
-
|
|
279
|
-
**Event Arguments:**
|
|
280
|
-
|
|
281
|
-
| Name | Type | Description |
|
|
282
|
-
|------|------|-------------|
|
|
283
|
-
| `arg0` | `string` | Tool name |
|
|
284
|
-
| `arg1` | `string` | Reason |
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
### chunk
|
|
289
|
-
|
|
290
|
-
Forwarded: streamed token chunk from the inner assistant
|
|
291
|
-
|
|
292
|
-
**Event Arguments:**
|
|
293
|
-
|
|
294
|
-
| Name | Type | Description |
|
|
295
|
-
|------|------|-------------|
|
|
296
|
-
| `arg0` | `string` | A chunk of streamed text |
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
### response
|
|
301
|
-
|
|
302
|
-
Forwarded: complete response from the inner assistant
|
|
303
|
-
|
|
304
|
-
**Event Arguments:**
|
|
305
|
-
|
|
306
|
-
| Name | Type | Description |
|
|
307
|
-
|------|------|-------------|
|
|
308
|
-
| `arg0` | `string` | The final response text |
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
### toolCall
|
|
313
|
-
|
|
314
|
-
Forwarded: a tool was called
|
|
315
|
-
|
|
316
|
-
**Event Arguments:**
|
|
317
|
-
|
|
318
|
-
| Name | Type | Description |
|
|
319
|
-
|------|------|-------------|
|
|
320
|
-
| `arg0` | `string` | Tool name |
|
|
321
|
-
| `arg1` | `any` | Tool arguments |
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
### toolResult
|
|
326
|
-
|
|
327
|
-
Forwarded: a tool returned a result
|
|
328
|
-
|
|
329
|
-
**Event Arguments:**
|
|
330
|
-
|
|
331
|
-
| Name | Type | Description |
|
|
332
|
-
|------|------|-------------|
|
|
333
|
-
| `arg0` | `string` | Tool name |
|
|
334
|
-
| `arg1` | `any` | Result value |
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
### toolError
|
|
339
|
-
|
|
340
|
-
Forwarded: a tool call failed
|
|
341
|
-
|
|
342
|
-
**Event Arguments:**
|
|
343
|
-
|
|
344
|
-
| Name | Type | Description |
|
|
345
|
-
|------|------|-------------|
|
|
346
|
-
| `arg0` | `string` | Tool name |
|
|
347
|
-
| `arg1` | `any` | Error |
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
### started
|
|
352
|
-
|
|
353
|
-
Emitted when the luca coder has been initialized
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
### permissionRequest
|
|
358
|
-
|
|
359
|
-
Emitted when a tool call requires user approval
|
|
360
|
-
|
|
361
|
-
**Event Arguments:**
|
|
362
|
-
|
|
363
|
-
| Name | Type | Description |
|
|
364
|
-
|------|------|-------------|
|
|
365
|
-
| `id` | `string` | Unique approval ID |
|
|
366
|
-
| `toolName` | `string` | The tool requesting permission |
|
|
367
|
-
| `args` | `object` | The arguments the tool was called with |
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
## State (Zod v4 schema)
|
|
372
|
-
|
|
373
|
-
| Property | Type | Description |
|
|
374
|
-
|----------|------|-------------|
|
|
375
|
-
| `enabled` | `boolean` | Whether this feature is currently enabled |
|
|
376
|
-
| `started` | `boolean` | Whether the assistant has been initialized |
|
|
377
|
-
| `permissions` | `object` | Permission level per tool name |
|
|
378
|
-
| `defaultPermission` | `string` | Permission level for tools not explicitly configured |
|
|
379
|
-
| `pendingApprovals` | `array` | Tool calls currently awaiting user approval |
|
|
380
|
-
| `approvalHistory` | `array` | Recent approval decisions |
|
|
381
|
-
| `loadedSkills` | `array` | Names of skills auto-loaded into context |
|
|
382
|
-
|
|
383
|
-
## Examples
|
|
384
|
-
|
|
385
|
-
**features.lucaCoder**
|
|
386
|
-
|
|
387
|
-
```ts
|
|
388
|
-
const coder = container.feature('lucaCoder', {
|
|
389
|
-
tools: ['fileTools'],
|
|
390
|
-
permissions: {
|
|
391
|
-
readFile: 'allow',
|
|
392
|
-
searchFiles: 'allow',
|
|
393
|
-
writeFile: 'ask',
|
|
394
|
-
bash: 'ask',
|
|
395
|
-
},
|
|
396
|
-
defaultPermission: 'ask',
|
|
397
|
-
systemPrompt: 'You are a coding assistant.',
|
|
398
|
-
})
|
|
399
|
-
|
|
400
|
-
coder.on('permissionRequest', ({ id, toolName, args }) => {
|
|
401
|
-
console.log(`Tool "${toolName}" wants to run with`, args)
|
|
402
|
-
coder.approve(id) // or coder.deny(id)
|
|
403
|
-
})
|
|
404
|
-
|
|
405
|
-
await coder.ask('Refactor the auth module to use async/await')
|
|
406
|
-
```
|
|
407
|
-
|