@soederpop/luca 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +71 -0
- package/README.md +78 -0
- package/bun.lock +2928 -0
- package/bunfig.toml +3 -0
- package/commands/audit-docs.ts +740 -0
- package/commands/build-scaffolds.ts +154 -0
- package/commands/generate-api-docs.ts +114 -0
- package/commands/update-introspection.ts +67 -0
- package/docs/CLI.md +335 -0
- package/docs/README.md +88 -0
- package/docs/TABLE-OF-CONTENTS.md +157 -0
- package/docs/apis/clients/elevenlabs.md +84 -0
- package/docs/apis/clients/graph.md +56 -0
- package/docs/apis/clients/openai.md +69 -0
- package/docs/apis/clients/rest.md +41 -0
- package/docs/apis/clients/websocket.md +107 -0
- package/docs/apis/features/agi/assistant.md +471 -0
- package/docs/apis/features/agi/assistants-manager.md +154 -0
- package/docs/apis/features/agi/claude-code.md +602 -0
- package/docs/apis/features/agi/conversation-history.md +352 -0
- package/docs/apis/features/agi/conversation.md +333 -0
- package/docs/apis/features/agi/docs-reader.md +121 -0
- package/docs/apis/features/agi/openai-codex.md +318 -0
- package/docs/apis/features/agi/openapi.md +138 -0
- package/docs/apis/features/agi/semantic-search.md +387 -0
- package/docs/apis/features/agi/skills-library.md +216 -0
- package/docs/apis/features/node/container-link.md +133 -0
- package/docs/apis/features/node/content-db.md +313 -0
- package/docs/apis/features/node/disk-cache.md +379 -0
- package/docs/apis/features/node/dns.md +651 -0
- package/docs/apis/features/node/docker.md +705 -0
- package/docs/apis/features/node/downloader.md +81 -0
- package/docs/apis/features/node/esbuild.md +59 -0
- package/docs/apis/features/node/file-manager.md +182 -0
- package/docs/apis/features/node/fs.md +581 -0
- package/docs/apis/features/node/git.md +330 -0
- package/docs/apis/features/node/google-auth.md +174 -0
- package/docs/apis/features/node/google-calendar.md +187 -0
- package/docs/apis/features/node/google-docs.md +151 -0
- package/docs/apis/features/node/google-drive.md +225 -0
- package/docs/apis/features/node/google-sheets.md +179 -0
- package/docs/apis/features/node/grep.md +290 -0
- package/docs/apis/features/node/helpers.md +135 -0
- package/docs/apis/features/node/ink.md +334 -0
- package/docs/apis/features/node/ipc-socket.md +260 -0
- package/docs/apis/features/node/json-tree.md +86 -0
- package/docs/apis/features/node/launcher-app-command-listener.md +145 -0
- package/docs/apis/features/node/networking.md +281 -0
- package/docs/apis/features/node/nlp.md +133 -0
- package/docs/apis/features/node/opener.md +97 -0
- package/docs/apis/features/node/os.md +118 -0
- package/docs/apis/features/node/package-finder.md +402 -0
- package/docs/apis/features/node/postgres.md +212 -0
- package/docs/apis/features/node/proc.md +430 -0
- package/docs/apis/features/node/process-manager.md +210 -0
- package/docs/apis/features/node/python.md +278 -0
- package/docs/apis/features/node/repl.md +88 -0
- package/docs/apis/features/node/runpod.md +673 -0
- package/docs/apis/features/node/secure-shell.md +169 -0
- package/docs/apis/features/node/semantic-search.md +401 -0
- package/docs/apis/features/node/sqlite.md +211 -0
- package/docs/apis/features/node/telegram.md +254 -0
- package/docs/apis/features/node/tts.md +118 -0
- package/docs/apis/features/node/ui.md +703 -0
- package/docs/apis/features/node/vault.md +64 -0
- package/docs/apis/features/node/vm.md +84 -0
- package/docs/apis/features/node/window-manager.md +337 -0
- package/docs/apis/features/node/yaml-tree.md +85 -0
- package/docs/apis/features/node/yaml.md +176 -0
- package/docs/apis/features/web/asset-loader.md +47 -0
- package/docs/apis/features/web/container-link.md +133 -0
- package/docs/apis/features/web/esbuild.md +59 -0
- package/docs/apis/features/web/helpers.md +135 -0
- package/docs/apis/features/web/network.md +30 -0
- package/docs/apis/features/web/speech.md +55 -0
- package/docs/apis/features/web/vault.md +64 -0
- package/docs/apis/features/web/vm.md +84 -0
- package/docs/apis/features/web/voice.md +67 -0
- package/docs/apis/servers/express.md +127 -0
- package/docs/apis/servers/mcp.md +213 -0
- package/docs/apis/servers/websocket.md +99 -0
- package/docs/documentation-audit.md +134 -0
- package/docs/examples/content-db.md +77 -0
- package/docs/examples/disk-cache.md +83 -0
- package/docs/examples/docker.md +101 -0
- package/docs/examples/downloader.md +70 -0
- package/docs/examples/esbuild.md +80 -0
- package/docs/examples/file-manager.md +82 -0
- package/docs/examples/fs.md +83 -0
- package/docs/examples/git.md +85 -0
- package/docs/examples/google-auth.md +88 -0
- package/docs/examples/google-calendar.md +94 -0
- package/docs/examples/google-docs.md +82 -0
- package/docs/examples/google-drive.md +96 -0
- package/docs/examples/google-sheets.md +95 -0
- package/docs/examples/grep.md +85 -0
- package/docs/examples/ink-blocks.md +75 -0
- package/docs/examples/ink-renderer.md +41 -0
- package/docs/examples/ink.md +103 -0
- package/docs/examples/ipc-socket.md +103 -0
- package/docs/examples/json-tree.md +91 -0
- package/docs/examples/launcher-app-command-listener.md +120 -0
- package/docs/examples/networking.md +58 -0
- package/docs/examples/nlp.md +91 -0
- package/docs/examples/opener.md +78 -0
- package/docs/examples/os.md +72 -0
- package/docs/examples/package-finder.md +89 -0
- package/docs/examples/port-exposer.md +89 -0
- package/docs/examples/postgres.md +91 -0
- package/docs/examples/proc.md +81 -0
- package/docs/examples/process-manager.md +79 -0
- package/docs/examples/python.md +91 -0
- package/docs/examples/repl.md +93 -0
- package/docs/examples/runpod.md +119 -0
- package/docs/examples/secure-shell.md +92 -0
- package/docs/examples/sqlite.md +86 -0
- package/docs/examples/telegram.md +77 -0
- package/docs/examples/tts.md +86 -0
- package/docs/examples/ui.md +80 -0
- package/docs/examples/vault.md +70 -0
- package/docs/examples/vm.md +86 -0
- package/docs/examples/window-manager.md +125 -0
- package/docs/examples/yaml-tree.md +93 -0
- package/docs/examples/yaml.md +104 -0
- package/docs/ideas/class-registration-refactor-possibilities.md +197 -0
- package/docs/ideas/container-use-api.md +9 -0
- package/docs/ideas/easy-auth-for-express-servers-and-luca-serve.md +0 -0
- package/docs/ideas/feature-stacks.md +22 -0
- package/docs/ideas/luca-cli-self-sufficiency-demo.md +23 -0
- package/docs/ideas/mcp-design.md +9 -0
- package/docs/ideas/web-container-debugging-feature.md +13 -0
- package/docs/introspection-audit.md +49 -0
- package/docs/introspection.md +154 -0
- package/docs/mcp/readme.md +162 -0
- package/docs/models.ts +38 -0
- package/docs/philosophy.md +85 -0
- package/docs/principles.md +7 -0
- package/docs/prompts/audit-codebase-for-failures-to-use-the-container.md +34 -0
- package/docs/prompts/mcp-test-easy-command.md +27 -0
- package/docs/reports/assistant-bugs.md +38 -0
- package/docs/reports/attach-pattern-usage.md +18 -0
- package/docs/reports/code-audit-results.md +391 -0
- package/docs/reports/introspection-audit-tasks.md +378 -0
- package/docs/reports/luca-mcp-improvements.md +128 -0
- package/docs/scaffolds/client.md +140 -0
- package/docs/scaffolds/command.md +106 -0
- package/docs/scaffolds/endpoint.md +176 -0
- package/docs/scaffolds/feature.md +148 -0
- package/docs/scaffolds/server.md +187 -0
- package/docs/tasks/web-container-helper-discovery.md +71 -0
- package/docs/todos.md +1 -0
- package/docs/tutorials/01-getting-started.md +106 -0
- package/docs/tutorials/02-container.md +210 -0
- package/docs/tutorials/03-scripts.md +194 -0
- package/docs/tutorials/04-features-overview.md +196 -0
- package/docs/tutorials/05-state-and-events.md +171 -0
- package/docs/tutorials/06-servers.md +157 -0
- package/docs/tutorials/07-endpoints.md +198 -0
- package/docs/tutorials/08-commands.md +171 -0
- package/docs/tutorials/09-clients.md +162 -0
- package/docs/tutorials/10-creating-features.md +198 -0
- package/docs/tutorials/11-contentbase.md +191 -0
- package/docs/tutorials/12-assistants.md +215 -0
- package/docs/tutorials/13-introspection.md +147 -0
- package/docs/tutorials/14-type-system.md +174 -0
- package/docs/tutorials/15-project-patterns.md +222 -0
- package/docs/tutorials/16-google-features.md +534 -0
- package/docs/tutorials/17-tui-blocks.md +530 -0
- package/docs/tutorials/18-semantic-search.md +334 -0
- package/index.ts +1 -0
- package/luca.console.ts +9 -0
- package/main.py +6 -0
- package/package.json +154 -0
- package/pyproject.toml +7 -0
- package/scripts/animations/chrome-glitch.ts +55 -0
- package/scripts/animations/index.ts +16 -0
- package/scripts/animations/neon-pulse.ts +64 -0
- package/scripts/animations/types.ts +6 -0
- package/scripts/build-web.ts +28 -0
- package/scripts/examples/ask-luca-expert.ts +42 -0
- package/scripts/examples/assistant-questions.ts +12 -0
- package/scripts/examples/excalidraw-expert.ts +75 -0
- package/scripts/examples/expert-chat.ts +0 -0
- package/scripts/examples/file-manager.ts +14 -0
- package/scripts/examples/ideas.ts +12 -0
- package/scripts/examples/interactive-chat.ts +20 -0
- package/scripts/examples/openai-tool-calls.ts +113 -0
- package/scripts/examples/opening-a-web-browser.ts +5 -0
- package/scripts/examples/telegram-bot.ts +79 -0
- package/scripts/examples/telegram-ink-ui.ts +302 -0
- package/scripts/examples/using-assistant-with-mcp.ts +560 -0
- package/scripts/examples/using-claude-code.ts +10 -0
- package/scripts/examples/using-contentdb.ts +35 -0
- package/scripts/examples/using-conversations.ts +35 -0
- package/scripts/examples/using-disk-cache.ts +10 -0
- package/scripts/examples/using-docker-shell.ts +75 -0
- package/scripts/examples/using-elevenlabs.ts +25 -0
- package/scripts/examples/using-google-calendar.ts +57 -0
- package/scripts/examples/using-google-docs.ts +74 -0
- package/scripts/examples/using-google-drive.ts +74 -0
- package/scripts/examples/using-google-sheets.ts +89 -0
- package/scripts/examples/using-nlp.ts +55 -0
- package/scripts/examples/using-ollama.ts +10 -0
- package/scripts/examples/using-openai-codex.ts +23 -0
- package/scripts/examples/using-postgres.ts +55 -0
- package/scripts/examples/using-runpod.ts +32 -0
- package/scripts/examples/using-tts.ts +40 -0
- package/scripts/examples/vm-loading-esm-modules.ts +16 -0
- package/scripts/scaffold.ts +391 -0
- package/scripts/scratch.ts +15 -0
- package/scripts/test-command-listener.ts +123 -0
- package/scripts/test-window-manager-lifecycle.ts +86 -0
- package/scripts/test-window-manager.ts +43 -0
- package/scripts/update-introspection-data.ts +58 -0
- package/src/agi/README.md +14 -0
- package/src/agi/container.server.ts +114 -0
- package/src/agi/endpoints/ask.ts +60 -0
- package/src/agi/endpoints/conversations/[id].ts +45 -0
- package/src/agi/endpoints/conversations.ts +31 -0
- package/src/agi/endpoints/experts.ts +37 -0
- package/src/agi/features/assistant.ts +767 -0
- package/src/agi/features/assistants-manager.ts +260 -0
- package/src/agi/features/claude-code.ts +1111 -0
- package/src/agi/features/conversation-history.ts +497 -0
- package/src/agi/features/conversation.ts +799 -0
- package/src/agi/features/openai-codex.ts +631 -0
- package/src/agi/features/openapi.ts +438 -0
- package/src/agi/features/skills-library.ts +425 -0
- package/src/agi/index.ts +6 -0
- package/src/agi/lib/token-counter.ts +122 -0
- package/src/browser.ts +25 -0
- package/src/bus.ts +100 -0
- package/src/cli/cli.ts +70 -0
- package/src/client.ts +461 -0
- package/src/clients/civitai/index.ts +541 -0
- package/src/clients/client-template.ts +41 -0
- package/src/clients/comfyui/index.ts +597 -0
- package/src/clients/elevenlabs/index.ts +291 -0
- package/src/clients/openai/index.ts +451 -0
- package/src/clients/supabase/index.ts +366 -0
- package/src/command.ts +164 -0
- package/src/commands/chat.ts +182 -0
- package/src/commands/console.ts +192 -0
- package/src/commands/describe.ts +433 -0
- package/src/commands/eval.ts +116 -0
- package/src/commands/help.ts +214 -0
- package/src/commands/index.ts +14 -0
- package/src/commands/mcp.ts +64 -0
- package/src/commands/prompt.ts +807 -0
- package/src/commands/run.ts +257 -0
- package/src/commands/sandbox-mcp.ts +439 -0
- package/src/commands/scaffold.ts +79 -0
- package/src/commands/serve.ts +172 -0
- package/src/container.ts +781 -0
- package/src/endpoint.ts +340 -0
- package/src/feature.ts +75 -0
- package/src/hash-object.ts +97 -0
- package/src/helper.ts +543 -0
- package/src/introspection/generated.agi.ts +23388 -0
- package/src/introspection/generated.node.ts +18899 -0
- package/src/introspection/generated.web.ts +2021 -0
- package/src/introspection/index.ts +256 -0
- package/src/introspection/scan.ts +912 -0
- package/src/node/container.ts +354 -0
- package/src/node/feature.ts +13 -0
- package/src/node/features/container-link.ts +558 -0
- package/src/node/features/content-db.ts +475 -0
- package/src/node/features/disk-cache.ts +382 -0
- package/src/node/features/dns.ts +655 -0
- package/src/node/features/docker.ts +912 -0
- package/src/node/features/downloader.ts +92 -0
- package/src/node/features/esbuild.ts +68 -0
- package/src/node/features/file-manager.ts +357 -0
- package/src/node/features/fs.ts +534 -0
- package/src/node/features/git.ts +492 -0
- package/src/node/features/google-auth.ts +502 -0
- package/src/node/features/google-calendar.ts +300 -0
- package/src/node/features/google-docs.ts +404 -0
- package/src/node/features/google-drive.ts +339 -0
- package/src/node/features/google-sheets.ts +279 -0
- package/src/node/features/grep.ts +406 -0
- package/src/node/features/helpers.ts +374 -0
- package/src/node/features/ink.ts +490 -0
- package/src/node/features/ipc-socket.ts +459 -0
- package/src/node/features/json-tree.ts +188 -0
- package/src/node/features/launcher-app-command-listener.ts +388 -0
- package/src/node/features/networking.ts +925 -0
- package/src/node/features/nlp.ts +211 -0
- package/src/node/features/opener.ts +166 -0
- package/src/node/features/os.ts +157 -0
- package/src/node/features/package-finder.ts +539 -0
- package/src/node/features/port-exposer.ts +342 -0
- package/src/node/features/postgres.ts +273 -0
- package/src/node/features/proc.ts +502 -0
- package/src/node/features/process-manager.ts +542 -0
- package/src/node/features/python.ts +444 -0
- package/src/node/features/repl.ts +194 -0
- package/src/node/features/runpod.ts +802 -0
- package/src/node/features/secure-shell.ts +248 -0
- package/src/node/features/semantic-search.ts +924 -0
- package/src/node/features/sqlite.ts +289 -0
- package/src/node/features/telegram.ts +342 -0
- package/src/node/features/tts.ts +184 -0
- package/src/node/features/ui.ts +857 -0
- package/src/node/features/vault.ts +164 -0
- package/src/node/features/vm.ts +312 -0
- package/src/node/features/window-manager.ts +804 -0
- package/src/node/features/yaml-tree.ts +149 -0
- package/src/node/features/yaml.ts +132 -0
- package/src/node.ts +70 -0
- package/src/react/index.ts +175 -0
- package/src/registry.ts +199 -0
- package/src/scaffolds/generated.ts +1613 -0
- package/src/scaffolds/template.ts +37 -0
- package/src/schemas/base.ts +255 -0
- package/src/server.ts +135 -0
- package/src/servers/express.ts +209 -0
- package/src/servers/mcp.ts +805 -0
- package/src/servers/socket.ts +120 -0
- package/src/state.ts +101 -0
- package/src/web/clients/socket.ts +82 -0
- package/src/web/container.ts +74 -0
- package/src/web/extension.ts +30 -0
- package/src/web/feature.ts +12 -0
- package/src/web/features/asset-loader.ts +64 -0
- package/src/web/features/container-link.ts +385 -0
- package/src/web/features/esbuild.ts +79 -0
- package/src/web/features/helpers.ts +267 -0
- package/src/web/features/network.ts +61 -0
- package/src/web/features/speech.ts +87 -0
- package/src/web/features/vault.ts +189 -0
- package/src/web/features/vm.ts +78 -0
- package/src/web/features/voice-recognition.ts +129 -0
- package/src/web/shims/isomorphic-vm.ts +149 -0
- package/test/bus.test.ts +134 -0
- package/test/clients-servers.test.ts +216 -0
- package/test/container-link.test.ts +274 -0
- package/test/features.test.ts +160 -0
- package/test/integration.test.ts +787 -0
- package/test/node-container.test.ts +121 -0
- package/test/rate-limit.test.ts +272 -0
- package/test/semantic-search.test.ts +550 -0
- package/test/state.test.ts +121 -0
- package/test-integration/assistant.test.ts +138 -0
- package/test-integration/assistants-manager.test.ts +123 -0
- package/test-integration/claude-code.test.ts +98 -0
- package/test-integration/conversation-history.test.ts +205 -0
- package/test-integration/conversation.test.ts +137 -0
- package/test-integration/elevenlabs.test.ts +55 -0
- package/test-integration/google-services.test.ts +80 -0
- package/test-integration/helpers.ts +89 -0
- package/test-integration/openai-codex.test.ts +93 -0
- package/test-integration/runpod.test.ts +58 -0
- package/test-integration/server-endpoints.test.ts +97 -0
- package/test-integration/skills-library.test.ts +157 -0
- package/test-integration/telegram.test.ts +46 -0
- package/tsconfig.json +58 -0
- package/uv.lock +8 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
# Grep (features.grep)
|
|
2
|
+
|
|
3
|
+
The Grep feature provides utilities for searching file contents using ripgrep (rg) or grep. Returns structured results as arrays of `{ file, line, column, content }` objects with paths relative to the container cwd. Also provides convenience methods for common search patterns.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
container.feature('grep')
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Methods
|
|
12
|
+
|
|
13
|
+
### search
|
|
14
|
+
|
|
15
|
+
Search for a pattern in files and return structured results.
|
|
16
|
+
|
|
17
|
+
**Parameters:**
|
|
18
|
+
|
|
19
|
+
| Name | Type | Required | Description |
|
|
20
|
+
|------|------|----------|-------------|
|
|
21
|
+
| `options` | `GrepOptions` | ✓ | Search options |
|
|
22
|
+
|
|
23
|
+
`GrepOptions` properties:
|
|
24
|
+
|
|
25
|
+
| Property | Type | Description |
|
|
26
|
+
|----------|------|-------------|
|
|
27
|
+
| `pattern` | `string` | Pattern to search for (string or regex) |
|
|
28
|
+
| `path` | `string` | Directory or file to search in (defaults to container cwd) |
|
|
29
|
+
| `include` | `string | string[]` | Glob patterns to include (e.g. '*.ts') |
|
|
30
|
+
| `exclude` | `string | string[]` | Glob patterns to exclude (e.g. 'node_modules') |
|
|
31
|
+
| `ignoreCase` | `boolean` | Case insensitive search |
|
|
32
|
+
| `fixedStrings` | `boolean` | Treat pattern as a fixed string, not regex |
|
|
33
|
+
| `recursive` | `boolean` | Search recursively (default: true) |
|
|
34
|
+
| `hidden` | `boolean` | Include hidden files |
|
|
35
|
+
| `maxResults` | `number` | Max number of results to return |
|
|
36
|
+
| `before` | `number` | Number of context lines before match |
|
|
37
|
+
| `after` | `number` | Number of context lines after match |
|
|
38
|
+
| `filesOnly` | `boolean` | Only return filenames, not match details |
|
|
39
|
+
| `invert` | `boolean` | Invert match (return lines that don't match) |
|
|
40
|
+
| `wordMatch` | `boolean` | Match whole words only |
|
|
41
|
+
| `rawFlags` | `string[]` | Additional raw flags to pass to grep/ripgrep |
|
|
42
|
+
|
|
43
|
+
**Returns:** `Promise<GrepMatch[]>`
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
// Search for a pattern in TypeScript files
|
|
47
|
+
const results = await grep.search({
|
|
48
|
+
pattern: 'useState',
|
|
49
|
+
include: '*.tsx',
|
|
50
|
+
exclude: 'node_modules'
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
// Case insensitive search with context
|
|
54
|
+
const results = await grep.search({
|
|
55
|
+
pattern: 'error',
|
|
56
|
+
ignoreCase: true,
|
|
57
|
+
before: 2,
|
|
58
|
+
after: 2
|
|
59
|
+
})
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
### filesContaining
|
|
65
|
+
|
|
66
|
+
Find files containing a pattern. Returns just the relative file paths.
|
|
67
|
+
|
|
68
|
+
**Parameters:**
|
|
69
|
+
|
|
70
|
+
| Name | Type | Required | Description |
|
|
71
|
+
|------|------|----------|-------------|
|
|
72
|
+
| `pattern` | `string` | ✓ | The pattern to search for |
|
|
73
|
+
| `options` | `Omit<GrepOptions, 'pattern' | 'filesOnly'>` | | Additional search options |
|
|
74
|
+
|
|
75
|
+
**Returns:** `Promise<string[]>`
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
const files = await grep.filesContaining('TODO')
|
|
79
|
+
// ['src/index.ts', 'src/utils.ts']
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
### imports
|
|
85
|
+
|
|
86
|
+
Find import/require statements for a module or path.
|
|
87
|
+
|
|
88
|
+
**Parameters:**
|
|
89
|
+
|
|
90
|
+
| Name | Type | Required | Description |
|
|
91
|
+
|------|------|----------|-------------|
|
|
92
|
+
| `moduleOrPath` | `string` | ✓ | The module name or path to search for in imports |
|
|
93
|
+
| `options` | `Omit<GrepOptions, 'pattern'>` | | Additional search options |
|
|
94
|
+
|
|
95
|
+
**Returns:** `Promise<GrepMatch[]>`
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
const lodashImports = await grep.imports('lodash')
|
|
99
|
+
const localImports = await grep.imports('./utils')
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
### definitions
|
|
105
|
+
|
|
106
|
+
Find function, class, type, or variable definitions matching a name.
|
|
107
|
+
|
|
108
|
+
**Parameters:**
|
|
109
|
+
|
|
110
|
+
| Name | Type | Required | Description |
|
|
111
|
+
|------|------|----------|-------------|
|
|
112
|
+
| `name` | `string` | ✓ | The identifier name to search for definitions of |
|
|
113
|
+
| `options` | `Omit<GrepOptions, 'pattern'>` | | Additional search options |
|
|
114
|
+
|
|
115
|
+
**Returns:** `Promise<GrepMatch[]>`
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
const defs = await grep.definitions('MyComponent')
|
|
119
|
+
const classDefs = await grep.definitions('UserService')
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
### todos
|
|
125
|
+
|
|
126
|
+
Find TODO, FIXME, HACK, and XXX comments.
|
|
127
|
+
|
|
128
|
+
**Parameters:**
|
|
129
|
+
|
|
130
|
+
| Name | Type | Required | Description |
|
|
131
|
+
|------|------|----------|-------------|
|
|
132
|
+
| `options` | `Omit<GrepOptions, 'pattern'>` | | Additional search options |
|
|
133
|
+
|
|
134
|
+
**Returns:** `Promise<GrepMatch[]>`
|
|
135
|
+
|
|
136
|
+
```ts
|
|
137
|
+
const todos = await grep.todos()
|
|
138
|
+
const fixmes = await grep.todos({ include: '*.ts' })
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
### count
|
|
144
|
+
|
|
145
|
+
Count the number of matches for a pattern.
|
|
146
|
+
|
|
147
|
+
**Parameters:**
|
|
148
|
+
|
|
149
|
+
| Name | Type | Required | Description |
|
|
150
|
+
|------|------|----------|-------------|
|
|
151
|
+
| `pattern` | `string` | ✓ | The pattern to count |
|
|
152
|
+
| `options` | `Omit<GrepOptions, 'pattern'>` | | Additional search options |
|
|
153
|
+
|
|
154
|
+
**Returns:** `Promise<number>`
|
|
155
|
+
|
|
156
|
+
```ts
|
|
157
|
+
const count = await grep.count('console.log')
|
|
158
|
+
console.log(`Found ${count} console.log statements`)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
### findForReplace
|
|
164
|
+
|
|
165
|
+
Search and replace across files. Returns the list of files that would be affected. Does NOT modify files — use the returned file list to do the replacement yourself.
|
|
166
|
+
|
|
167
|
+
**Parameters:**
|
|
168
|
+
|
|
169
|
+
| Name | Type | Required | Description |
|
|
170
|
+
|------|------|----------|-------------|
|
|
171
|
+
| `pattern` | `string` | ✓ | The pattern to search for |
|
|
172
|
+
| `options` | `Omit<GrepOptions, 'pattern'>` | | Additional search options |
|
|
173
|
+
|
|
174
|
+
**Returns:** `Promise<{ file: string, matches: GrepMatch[] }[]>`
|
|
175
|
+
|
|
176
|
+
```ts
|
|
177
|
+
const affected = await grep.findForReplace('oldFunctionName')
|
|
178
|
+
// [{ file: 'src/a.ts', matches: [...] }, { file: 'src/b.ts', matches: [...] }]
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
## Getters
|
|
184
|
+
|
|
185
|
+
| Property | Type | Description |
|
|
186
|
+
|----------|------|-------------|
|
|
187
|
+
| `hasRipgrep` | `boolean` | Whether ripgrep (rg) is available on this system |
|
|
188
|
+
|
|
189
|
+
## State (Zod v4 schema)
|
|
190
|
+
|
|
191
|
+
| Property | Type | Description |
|
|
192
|
+
|----------|------|-------------|
|
|
193
|
+
| `enabled` | `boolean` | Whether this feature is currently enabled |
|
|
194
|
+
|
|
195
|
+
## Examples
|
|
196
|
+
|
|
197
|
+
**features.grep**
|
|
198
|
+
|
|
199
|
+
```ts
|
|
200
|
+
const grep = container.feature('grep')
|
|
201
|
+
|
|
202
|
+
// Basic search
|
|
203
|
+
const results = await grep.search({ pattern: 'TODO' })
|
|
204
|
+
// [{ file: 'src/index.ts', line: 42, column: 5, content: '// TODO: fix this' }, ...]
|
|
205
|
+
|
|
206
|
+
// Find all imports of a module
|
|
207
|
+
const imports = await grep.imports('lodash')
|
|
208
|
+
|
|
209
|
+
// Find function/class/variable definitions
|
|
210
|
+
const defs = await grep.definitions('MyClass')
|
|
211
|
+
|
|
212
|
+
// Just get filenames containing a pattern
|
|
213
|
+
const files = await grep.filesContaining('API_KEY')
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
**search**
|
|
219
|
+
|
|
220
|
+
```ts
|
|
221
|
+
// Search for a pattern in TypeScript files
|
|
222
|
+
const results = await grep.search({
|
|
223
|
+
pattern: 'useState',
|
|
224
|
+
include: '*.tsx',
|
|
225
|
+
exclude: 'node_modules'
|
|
226
|
+
})
|
|
227
|
+
|
|
228
|
+
// Case insensitive search with context
|
|
229
|
+
const results = await grep.search({
|
|
230
|
+
pattern: 'error',
|
|
231
|
+
ignoreCase: true,
|
|
232
|
+
before: 2,
|
|
233
|
+
after: 2
|
|
234
|
+
})
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
**filesContaining**
|
|
240
|
+
|
|
241
|
+
```ts
|
|
242
|
+
const files = await grep.filesContaining('TODO')
|
|
243
|
+
// ['src/index.ts', 'src/utils.ts']
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
**imports**
|
|
249
|
+
|
|
250
|
+
```ts
|
|
251
|
+
const lodashImports = await grep.imports('lodash')
|
|
252
|
+
const localImports = await grep.imports('./utils')
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
**definitions**
|
|
258
|
+
|
|
259
|
+
```ts
|
|
260
|
+
const defs = await grep.definitions('MyComponent')
|
|
261
|
+
const classDefs = await grep.definitions('UserService')
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
**todos**
|
|
267
|
+
|
|
268
|
+
```ts
|
|
269
|
+
const todos = await grep.todos()
|
|
270
|
+
const fixmes = await grep.todos({ include: '*.ts' })
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
**count**
|
|
276
|
+
|
|
277
|
+
```ts
|
|
278
|
+
const count = await grep.count('console.log')
|
|
279
|
+
console.log(`Found ${count} console.log statements`)
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
**findForReplace**
|
|
285
|
+
|
|
286
|
+
```ts
|
|
287
|
+
const affected = await grep.findForReplace('oldFunctionName')
|
|
288
|
+
// [{ file: 'src/a.ts', matches: [...] }, { file: 'src/b.ts', matches: [...] }]
|
|
289
|
+
```
|
|
290
|
+
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Helpers (features.helpers)
|
|
2
|
+
|
|
3
|
+
The Helpers feature discovers and loads project-level helpers from a JSON manifest served over HTTP. Scripts are injected via AssetLoader and self-register into the container's registries. This is the web equivalent of the node Helpers feature, which scans the filesystem. Instead of filesystem scanning, this feature fetches a manifest from a well-known URL and uses AssetLoader.loadScript() to inject each helper's script tag.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
container.feature('helpers', {
|
|
9
|
+
// Root directory to scan for helper folders. Defaults to container.cwd
|
|
10
|
+
rootDir,
|
|
11
|
+
})
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Options (Zod v4 schema)
|
|
15
|
+
|
|
16
|
+
| Property | Type | Description |
|
|
17
|
+
|----------|------|-------------|
|
|
18
|
+
| `rootDir` | `string` | Root directory to scan for helper folders. Defaults to container.cwd |
|
|
19
|
+
|
|
20
|
+
## Methods
|
|
21
|
+
|
|
22
|
+
### setManifestURL
|
|
23
|
+
|
|
24
|
+
Set a new manifest URL. Invalidates any cached manifest.
|
|
25
|
+
|
|
26
|
+
**Parameters:**
|
|
27
|
+
|
|
28
|
+
| Name | Type | Required | Description |
|
|
29
|
+
|------|------|----------|-------------|
|
|
30
|
+
| `url` | `string` | ✓ | The new URL to fetch the manifest from |
|
|
31
|
+
|
|
32
|
+
**Returns:** `void`
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### discover
|
|
37
|
+
|
|
38
|
+
Discover and register helpers of the given type from the manifest. Fetches the manifest, then for each entry of the requested type, loads the script via AssetLoader and checks what got newly registered.
|
|
39
|
+
|
|
40
|
+
**Parameters:**
|
|
41
|
+
|
|
42
|
+
| Name | Type | Required | Description |
|
|
43
|
+
|------|------|----------|-------------|
|
|
44
|
+
| `type` | `RegistryType` | ✓ | Which type of helpers to discover ('features' or 'clients') |
|
|
45
|
+
|
|
46
|
+
**Returns:** `Promise<string[]>`
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
### discoverAll
|
|
51
|
+
|
|
52
|
+
Discover all helper types from the manifest.
|
|
53
|
+
|
|
54
|
+
**Returns:** `Promise<Record<string, string[]>>`
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
### discoverFeatures
|
|
59
|
+
|
|
60
|
+
Convenience method to discover only features.
|
|
61
|
+
|
|
62
|
+
**Returns:** `Promise<string[]>`
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
### discoverClients
|
|
67
|
+
|
|
68
|
+
Convenience method to discover only clients.
|
|
69
|
+
|
|
70
|
+
**Returns:** `Promise<string[]>`
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
### lookup
|
|
75
|
+
|
|
76
|
+
Look up a helper class by type and name.
|
|
77
|
+
|
|
78
|
+
**Parameters:**
|
|
79
|
+
|
|
80
|
+
| Name | Type | Required | Description |
|
|
81
|
+
|------|------|----------|-------------|
|
|
82
|
+
| `type` | `RegistryType` | ✓ | The registry type |
|
|
83
|
+
| `name` | `string` | ✓ | The helper name within that registry |
|
|
84
|
+
|
|
85
|
+
**Returns:** `any`
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
### describe
|
|
90
|
+
|
|
91
|
+
Get the introspection description for a specific helper.
|
|
92
|
+
|
|
93
|
+
**Parameters:**
|
|
94
|
+
|
|
95
|
+
| Name | Type | Required | Description |
|
|
96
|
+
|------|------|----------|-------------|
|
|
97
|
+
| `type` | `RegistryType` | ✓ | The registry type |
|
|
98
|
+
| `name` | `string` | ✓ | The helper name |
|
|
99
|
+
|
|
100
|
+
**Returns:** `string`
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
## Getters
|
|
105
|
+
|
|
106
|
+
| Property | Type | Description |
|
|
107
|
+
|----------|------|-------------|
|
|
108
|
+
| `manifestURL` | `string` | The URL to fetch the helpers manifest from. |
|
|
109
|
+
| `available` | `Record<string, string[]>` | Returns a unified view of all available helpers across all registries. Each key is a registry type, each value is the list of helper names in that registry. |
|
|
110
|
+
|
|
111
|
+
## State (Zod v4 schema)
|
|
112
|
+
|
|
113
|
+
| Property | Type | Description |
|
|
114
|
+
|----------|------|-------------|
|
|
115
|
+
| `enabled` | `boolean` | Whether this feature is currently enabled |
|
|
116
|
+
| `discovered` | `object` | Which registry types have been discovered |
|
|
117
|
+
| `registered` | `array` | Names of project-level helpers that were discovered (type.name) |
|
|
118
|
+
|
|
119
|
+
## Examples
|
|
120
|
+
|
|
121
|
+
**features.helpers**
|
|
122
|
+
|
|
123
|
+
```ts
|
|
124
|
+
const helpers = container.feature('helpers', { enable: true })
|
|
125
|
+
|
|
126
|
+
// Discover all helper types from the manifest
|
|
127
|
+
await helpers.discoverAll()
|
|
128
|
+
|
|
129
|
+
// Discover a specific type
|
|
130
|
+
await helpers.discover('features')
|
|
131
|
+
|
|
132
|
+
// Unified view of all available helpers
|
|
133
|
+
console.log(helpers.available)
|
|
134
|
+
```
|
|
135
|
+
|