ryeos-code 0.1.0__py3-none-any.whl

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.
@@ -0,0 +1,48 @@
1
+ <!-- rye:signed:2026-02-25T07:50:41Z:b1569f1d53127f25326f90ef2ad2db5bd9c453586c6ab9d044384832df726cdb:d8CBsgRKGP2AsYuxdIVm7DUI9pEf9PmcqeQYiOJH9TGCd85Ql3CGh1CPTUjnsvwE9r5EQQAC7ykCYgXuVY0CCQ==:9fbfabe975fa5a7f -->
2
+ <!-- rye:signed:2026-02-23T02:07:54Z:4a32dce853e06aad7d8af84027e4935c019c401f2a537d722b4967289a481117:PmaczLSBVv9ds-zejogoGGcCq1oEGhAhnaX9HojDA0bQdtK877RxdpYR-ZGhnjxta75nR7cI8DxpJ9IKpmS3Dw==:9fbfabe975fa5a7f -->
3
+ <!-- rye:unsigned -->
4
+ # Code Diagnostics
5
+
6
+ Run linters and type checkers on a file — ruff, mypy, eslint, tsc, and more.
7
+
8
+ ```xml
9
+ <directive name="diagnostics" version="1.0.0">
10
+ <metadata>
11
+ <description>Run linters and type checkers on a file — ruff, mypy, eslint, tsc, and more.</description>
12
+ <category>rye/code</category>
13
+ <author>rye-os</author>
14
+ <model tier="fast" />
15
+ <limits turns="3" tokens="4096" />
16
+ <permissions>
17
+ <execute>
18
+ <tool>rye.code.diagnostics.*</tool>
19
+ </execute>
20
+ </permissions>
21
+ </metadata>
22
+
23
+ <inputs>
24
+ <input name="file_path" type="string" required="true">Path to the file to check</input>
25
+ <input name="linters" type="array" required="false">Linters to run (auto-detected from file type if not specified)</input>
26
+ <input name="timeout" type="integer" required="false">Timeout per linter in seconds (default: 30)</input>
27
+ </inputs>
28
+
29
+ <outputs>
30
+ <output name="diagnostics">Diagnostic messages with severity, line, column, message, and code</output>
31
+ </outputs>
32
+ </directive>
33
+ ```
34
+
35
+ <process>
36
+ <step name="validate_inputs">
37
+ Validate that {input:file_path} is non-empty. If not, halt with an error.
38
+ </step>
39
+
40
+ <step name="run_diagnostics">
41
+ Call the diagnostics tool with the provided parameters.
42
+ `rye_execute(item_type="tool", item_id="rye/code/diagnostics/diagnostics", parameters={"file_path": "{input:file_path}", "linters": "{input:linters}", "timeout": "{input:timeout}"})`
43
+ </step>
44
+
45
+ <step name="return_diagnostics">
46
+ Return the output as {output:diagnostics}.
47
+ </step>
48
+ </process>
@@ -0,0 +1,50 @@
1
+ <!-- rye:signed:2026-02-25T07:50:41Z:f546b5f6421d47d19963c045c036f98a43070b2b55ca349751074feb7b8ed4f3:0jGl5w-Hdwataj1OaDneoMmC0vI4oHmOLirk5eTTucB8qYiDeCJZZexl4xpaQc_Z5hijUm7-VbDrm_2CfFygBg==:9fbfabe975fa5a7f -->
2
+ <!-- rye:signed:2026-02-23T02:07:54Z:40579d9448525d88665ab3a9daf8c9538899b3803f8905ac1c8522b6266e16fd:G5RynRkzitB5GN4GB7A9tvsUqrcAfs7KXFym8L6fxrnW1gcjHmS0zvR4Uj51RCMFaKl9qra_S82KKLg8Rg5PBw==:9fbfabe975fa5a7f -->
3
+ <!-- rye:unsigned -->
4
+ # LSP Query
5
+
6
+ Query language servers — go to definition, find references, hover info, document symbols, and more.
7
+
8
+ ```xml
9
+ <directive name="lsp" version="1.0.0">
10
+ <metadata>
11
+ <description>Query language servers — go to definition, find references, hover info, document symbols, and more.</description>
12
+ <category>rye/code</category>
13
+ <author>rye-os</author>
14
+ <model tier="fast" />
15
+ <limits turns="3" tokens="4096" />
16
+ <permissions>
17
+ <execute>
18
+ <tool>rye.code.lsp.*</tool>
19
+ </execute>
20
+ </permissions>
21
+ </metadata>
22
+
23
+ <inputs>
24
+ <input name="operation" type="string" required="true">LSP operation: goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, outgoingCalls</input>
25
+ <input name="file_path" type="string" required="true">Path to the file</input>
26
+ <input name="line" type="integer" required="true">Line number (1-based)</input>
27
+ <input name="character" type="integer" required="true">Character offset (1-based)</input>
28
+ <input name="timeout" type="integer" required="false">Timeout in seconds (default: 15)</input>
29
+ </inputs>
30
+
31
+ <outputs>
32
+ <output name="result">LSP operation results (locations, symbols, hover info, etc.)</output>
33
+ </outputs>
34
+ </directive>
35
+ ```
36
+
37
+ <process>
38
+ <step name="validate_inputs">
39
+ Validate that {input:operation}, {input:file_path}, {input:line}, and {input:character} are all provided.
40
+ </step>
41
+
42
+ <step name="run_lsp">
43
+ Call the LSP tool with the provided parameters.
44
+ `rye_execute(item_type="tool", item_id="rye/code/lsp/lsp", parameters={"operation": "{input:operation}", "file_path": "{input:file_path}", "line": "{input:line}", "character": "{input:character}", "timeout": "{input:timeout}"})`
45
+ </step>
46
+
47
+ <step name="return_result">
48
+ Return output as {output:result}.
49
+ </step>
50
+ </process>
@@ -0,0 +1,50 @@
1
+ <!-- rye:signed:2026-02-25T07:50:41Z:5b690a6704b241e12076949b9049a1f1b08a7c966dabc2421667691b47e180fc:t6gKVLx_lhQBwkTVIlbLfuHlq_lXIN6llRUzjC6KIpkVtm7PYzU_vdYOkt8YeaTi29IzhDqdmUcCPFuPV8oWAQ==:9fbfabe975fa5a7f -->
2
+ <!-- rye:signed:2026-02-23T02:07:54Z:52571eb2ca276d9ebbaffd1e708c54ef0dc2d965f73232a2f0846ce36d27342a:Ao0lr3qqRbf7zszo1CC8RrUi9Fs17-ysd6HnBTvbJ2D08lzA9HY_H_5hLYpKbvD3i6r0ncbOWlISPUnJEqu6DQ==:9fbfabe975fa5a7f -->
3
+ <!-- rye:unsigned -->
4
+ # NPM
5
+
6
+ Run NPM operations — install packages, run scripts, build, test, init, and exec via npx.
7
+
8
+ ```xml
9
+ <directive name="npm" version="1.0.0">
10
+ <metadata>
11
+ <description>Run NPM operations — install packages, run scripts, build, test, init, and exec via npx.</description>
12
+ <category>rye/code</category>
13
+ <author>rye-os</author>
14
+ <model tier="fast" />
15
+ <limits turns="3" tokens="4096" />
16
+ <permissions>
17
+ <execute>
18
+ <tool>rye.code.npm.*</tool>
19
+ </execute>
20
+ </permissions>
21
+ </metadata>
22
+
23
+ <inputs>
24
+ <input name="action" type="string" required="true">NPM action: install, run, build, test, init, exec</input>
25
+ <input name="args" type="array" required="false">Arguments (package names for install, script name for run, command for exec)</input>
26
+ <input name="flags" type="object" required="false">Flags to pass (e.g. save_dev: true, force: true)</input>
27
+ <input name="working_dir" type="string" required="false">Working directory relative to project root</input>
28
+ <input name="timeout" type="integer" required="false">Timeout in seconds (default: 120)</input>
29
+ </inputs>
30
+
31
+ <outputs>
32
+ <output name="result">Command output with exit code</output>
33
+ </outputs>
34
+ </directive>
35
+ ```
36
+
37
+ <process>
38
+ <step name="validate_inputs">
39
+ Validate that {input:action} is non-empty. If not, halt with an error.
40
+ </step>
41
+
42
+ <step name="run_npm">
43
+ Call the npm tool with the provided parameters.
44
+ `rye_execute(item_type="tool", item_id="rye/code/npm/npm", parameters={"action": "{input:action}", "args": "{input:args}", "flags": "{input:flags}", "working_dir": "{input:working_dir}", "timeout": "{input:timeout}"})`
45
+ </step>
46
+
47
+ <step name="return_result">
48
+ Return the output as {output:result}.
49
+ </step>
50
+ </process>
@@ -0,0 +1,50 @@
1
+ <!-- rye:signed:2026-02-25T07:50:41Z:c2a9e4e385dc08ff8eb6672237444c44fd0177c33b8426059be6119e74086e4a:iA3MH61pDv212G4ePIExoupdmVY1FxPducYerRqBemc6tShgrE93GNWg1KVhqVm2nc6pBk2b9cbMqBlywNhTDQ==:9fbfabe975fa5a7f -->
2
+ <!-- rye:signed:2026-02-23T02:07:54Z:26dba1782c8498d642f9381b8fc507f51956604d61d76b8fed09152d2992632d:Owomn01yE8og__v-WBdoO08Fw5_gZz2vQ0eVrGHRQMgvFexnC6MYajzHlgwi57iF34Q4X5H60cBT888fZ_vdDQ==:9fbfabe975fa5a7f -->
3
+ <!-- rye:unsigned -->
4
+ # TypeScript Type Check
5
+
6
+ Type check TypeScript code — run tsc --noEmit on a project or single file.
7
+
8
+ ```xml
9
+ <directive name="typescript" version="1.0.0">
10
+ <metadata>
11
+ <description>Type check TypeScript code — run tsc --noEmit on a project or single file.</description>
12
+ <category>rye/code</category>
13
+ <author>rye-os</author>
14
+ <model tier="fast" />
15
+ <limits turns="3" tokens="4096" />
16
+ <permissions>
17
+ <execute>
18
+ <tool>rye.code.typescript.*</tool>
19
+ </execute>
20
+ </permissions>
21
+ </metadata>
22
+
23
+ <inputs>
24
+ <input name="action" type="string" required="true">check (whole project) or check-file (single file)</input>
25
+ <input name="file_path" type="string" required="false">File to check (required for check-file action)</input>
26
+ <input name="working_dir" type="string" required="false">Directory containing tsconfig.json</input>
27
+ <input name="strict" type="boolean" required="false">Enable strict mode (default: false)</input>
28
+ <input name="timeout" type="integer" required="false">Timeout in seconds (default: 60)</input>
29
+ </inputs>
30
+
31
+ <outputs>
32
+ <output name="result">Type check results with diagnostics</output>
33
+ </outputs>
34
+ </directive>
35
+ ```
36
+
37
+ <process>
38
+ <step name="validate_inputs">
39
+ Validate that {input:action} is non-empty. If check-file, validate file_path is provided.
40
+ </step>
41
+
42
+ <step name="run_tsc">
43
+ Call the TypeScript type check tool with the provided parameters.
44
+ `rye_execute(item_type="tool", item_id="rye/code/typescript/typescript", parameters={"action": "{input:action}", "file_path": "{input:file_path}", "working_dir": "{input:working_dir}", "strict": "{input:strict}", "timeout": "{input:timeout}"})`
45
+ </step>
46
+
47
+ <step name="return_result">
48
+ Return output as {output:result}.
49
+ </step>
50
+ </process>
@@ -0,0 +1,349 @@
1
+ <!-- rye:signed:2026-02-23T05:24:41Z:886120f81254f4780dd5e7eeca53c8aa04eff2da5cb74fe9ef29db78386903a4:to7_P_xPw2mbRd87espRr9GkEFBpBUCkRnLpcrz0c2AwL2McnN7TLcZYQlxsm_cXZvXr9QPZQJKp78NT7v0tAA==:9fbfabe975fa5a7f -->
2
+ <!-- rye:unsigned -->
3
+
4
+ ```yaml
5
+ name: code-tools
6
+ title: Code Intelligence Tools
7
+ entry_type: reference
8
+ category: rye/code
9
+ version: "1.0.0"
10
+ author: rye-os
11
+ created_at: 2026-02-23T00:00:00Z
12
+ tags:
13
+ - code
14
+ - lsp
15
+ - diagnostics
16
+ - typescript
17
+ - npm
18
+ - linters
19
+ - type-checking
20
+ references:
21
+ - "docs/standard-library/tools/index.md"
22
+ ```
23
+
24
+ # Code Intelligence Tools
25
+
26
+ Four tools for code analysis, linting, type checking, and package management. All run as Node.js tools.
27
+
28
+ ## Namespace & Runtime
29
+
30
+ | Field | Value |
31
+ | ----------- | ----------------------------------- |
32
+ | Namespace | `rye/code/` |
33
+ | Runtime | `javascript` |
34
+ | Executor ID | `rye/core/runtimes/node/node` |
35
+
36
+ ---
37
+
38
+ ## `diagnostics`
39
+
40
+ **Item ID:** `rye/code/diagnostics/diagnostics`
41
+
42
+ Run linters and type checkers on source files. Auto-detects file type and available linters.
43
+
44
+ ### Parameters
45
+
46
+ | Name | Type | Required | Default | Description |
47
+ | ----------- | ------- | -------- | ------------- | --------------------------------------------------------------------------- |
48
+ | `file_path` | string | ✅ | — | Path to file to get diagnostics for |
49
+ | `linters` | array | ❌ | auto-detected | Linter names to run (overrides auto-detection) |
50
+ | `timeout` | integer | ❌ | `30` | Timeout per linter in seconds |
51
+
52
+ ### Supported Languages & Linters
53
+
54
+ | File Type | Extensions | Linters |
55
+ | ----------- | ------------------------------------ | -------------------------------- |
56
+ | Python | `.py` | ruff, mypy, pylint, flake8 |
57
+ | JavaScript | `.js`, `.jsx`, `.mjs`, `.cjs` | eslint, tsc |
58
+ | TypeScript | `.ts`, `.tsx` | eslint, tsc |
59
+ | Go | `.go` | go vet |
60
+ | Rust | `.rs` | cargo clippy |
61
+
62
+ ### Linter Discovery
63
+
64
+ 1. Checks system PATH via `which`
65
+ 2. Only available linters are executed
66
+ 3. Diagnostics are deduplicated by `(line, column, message)` tuple across all linters
67
+
68
+ ### Diagnostic Format
69
+
70
+ ```json
71
+ {
72
+ "line": 42,
73
+ "column": 8,
74
+ "severity": "error",
75
+ "message": "Undefined variable 'x'",
76
+ "code": "F821"
77
+ }
78
+ ```
79
+
80
+ Severity values: `error`, `warning`, `info`
81
+
82
+ ### Limits
83
+
84
+ | Limit | Value |
85
+ | ------------------ | ---------------------- |
86
+ | Max output | 32,768 bytes (32 KB) |
87
+ | Linter timeout | 30 seconds per linter |
88
+
89
+ ### Return
90
+
91
+ ```json
92
+ {
93
+ "success": true,
94
+ "output": "src/main.py:42:8: error: Undefined variable [F821]",
95
+ "diagnostics": [...],
96
+ "linters_checked": ["ruff", "mypy"],
97
+ "file_type": "python"
98
+ }
99
+ ```
100
+
101
+ ### Invocation
102
+
103
+ ```python
104
+ rye_execute(item_type="tool", item_id="rye/code/diagnostics/diagnostics",
105
+ parameters={"file_path": "src/main.py"})
106
+
107
+ rye_execute(item_type="tool", item_id="rye/code/diagnostics/diagnostics",
108
+ parameters={"file_path": "src/main.py", "linters": ["ruff", "mypy"]})
109
+ ```
110
+
111
+ ---
112
+
113
+ ## `lsp`
114
+
115
+ **Item ID:** `rye/code/lsp/lsp`
116
+
117
+ Real LSP client — spawns a language server, sends a request, and returns the result. Supports go-to-definition, find-references, hover, symbols, call hierarchy, and more.
118
+
119
+ ### Parameters
120
+
121
+ | Name | Type | Required | Default | Description |
122
+ | ----------- | ------- | -------- | ------- | ---------------------------------- |
123
+ | `operation` | string | ✅ | — | LSP operation to perform (see below) |
124
+ | `file_path` | string | ✅ | — | Path to the file |
125
+ | `line` | integer | ✅ | — | Line number (1-based) |
126
+ | `character` | integer | ✅ | — | Character offset (1-based) |
127
+ | `timeout` | integer | ❌ | `15` | Timeout in seconds |
128
+
129
+ ### Operations
130
+
131
+ | Operation | LSP Method | Description |
132
+ | ------------------------ | --------------------------------------- | ------------------------------------ |
133
+ | `goToDefinition` | `textDocument/definition` | Jump to symbol definition |
134
+ | `findReferences` | `textDocument/references` | Find all references to a symbol |
135
+ | `hover` | `textDocument/hover` | Get type info / docs at position |
136
+ | `documentSymbol` | `textDocument/documentSymbol` | List all symbols in the file |
137
+ | `workspaceSymbol` | `workspace/symbol` | Search symbols across the workspace |
138
+ | `goToImplementation` | `textDocument/implementation` | Find implementations of an interface |
139
+ | `prepareCallHierarchy` | `textDocument/prepareCallHierarchy` | Get call hierarchy item at position |
140
+ | `incomingCalls` | `callHierarchy/incomingCalls` | Who calls this function? |
141
+ | `outgoingCalls` | `callHierarchy/outgoingCalls` | What does this function call? |
142
+
143
+ ### Supported Language Servers
144
+
145
+ | Server ID | Extensions | Command |
146
+ | ---------------------- | -------------------------------------------------------- | ------------------------------------ |
147
+ | `typescript` | `.ts`, `.tsx`, `.js`, `.jsx`, `.mjs`, `.cjs`, `.mts`, `.cts` | `typescript-language-server --stdio` |
148
+ | `pyright` | `.py` | `pyright-langserver --stdio` |
149
+ | `gopls` | `.go` | `gopls serve` |
150
+ | `rust-analyzer` | `.rs` | `rust-analyzer` |
151
+
152
+ ### Return
153
+
154
+ ```json
155
+ {
156
+ "success": true,
157
+ "output": "[{\"uri\": \"src/auth.ts\", \"range\": {...}}]",
158
+ "operation": "goToDefinition",
159
+ "server": "typescript",
160
+ "results": [...]
161
+ }
162
+ ```
163
+
164
+ File URIs in results are converted to project-relative paths.
165
+
166
+ ### Invocation
167
+
168
+ ```python
169
+ rye_execute(item_type="tool", item_id="rye/code/lsp/lsp",
170
+ parameters={"operation": "goToDefinition", "file_path": "src/main.ts", "line": 10, "character": 5})
171
+
172
+ rye_execute(item_type="tool", item_id="rye/code/lsp/lsp",
173
+ parameters={"operation": "findReferences", "file_path": "src/auth.py", "line": 42, "character": 8})
174
+
175
+ rye_execute(item_type="tool", item_id="rye/code/lsp/lsp",
176
+ parameters={"operation": "hover", "file_path": "src/utils.ts", "line": 15, "character": 12})
177
+
178
+ rye_execute(item_type="tool", item_id="rye/code/lsp/lsp",
179
+ parameters={"operation": "incomingCalls", "file_path": "src/api.ts", "line": 20, "character": 10})
180
+ ```
181
+
182
+ ---
183
+
184
+ ## `typescript`
185
+
186
+ **Item ID:** `rye/code/typescript/typescript`
187
+
188
+ TypeScript type checker — runs `tsc --noEmit` for type checking without producing build output.
189
+
190
+ ### Parameters
191
+
192
+ | Name | Type | Required | Default | Description |
193
+ | ------------- | ------- | -------- | ------- | ---------------------------------------------- |
194
+ | `action` | string | ✅ | — | `check` (whole project) or `check-file` (single file) |
195
+ | `file_path` | string | ❌ | — | File to check (required for `check-file`) |
196
+ | `working_dir` | string | ❌ | project root | Directory containing `tsconfig.json` |
197
+ | `strict` | boolean | ❌ | `false` | Enable strict mode |
198
+ | `timeout` | integer | ❌ | `60` | Timeout in seconds |
199
+
200
+ ### Diagnostic Format
201
+
202
+ ```json
203
+ {
204
+ "file": "src/main.ts",
205
+ "line": 10,
206
+ "column": 5,
207
+ "severity": "error",
208
+ "message": "Property 'x' does not exist on type 'Y'",
209
+ "code": "TS2339"
210
+ }
211
+ ```
212
+
213
+ ### Limits
214
+
215
+ | Limit | Value |
216
+ | ------------------ | ---------------------- |
217
+ | Max output | 51,200 bytes (50 KB) |
218
+ | Default timeout | 60 seconds |
219
+
220
+ ### Return
221
+
222
+ ```json
223
+ {
224
+ "success": true,
225
+ "output": "No type errors found.",
226
+ "diagnostics": [],
227
+ "error_count": 0,
228
+ "command": "tsc --noEmit --pretty false"
229
+ }
230
+ ```
231
+
232
+ ### Invocation
233
+
234
+ ```python
235
+ rye_execute(item_type="tool", item_id="rye/code/typescript/typescript",
236
+ parameters={"action": "check"})
237
+
238
+ rye_execute(item_type="tool", item_id="rye/code/typescript/typescript",
239
+ parameters={"action": "check-file", "file_path": "src/main.ts", "strict": true})
240
+
241
+ rye_execute(item_type="tool", item_id="rye/code/typescript/typescript",
242
+ parameters={"action": "check", "working_dir": "packages/core"})
243
+ ```
244
+
245
+ ---
246
+
247
+ ## `npm`
248
+
249
+ **Item ID:** `rye/code/npm/npm`
250
+
251
+ NPM/NPX operations — install packages, run scripts, execute commands.
252
+
253
+ ### Parameters
254
+
255
+ | Name | Type | Required | Default | Description |
256
+ | ------------- | ------- | -------- | ------------ | ------------------------------------------------------------------- |
257
+ | `action` | string | ✅ | — | `install`, `run`, `build`, `test`, `init`, or `exec` |
258
+ | `args` | array | ❌ | `[]` | Arguments (package names for install, script name for run, command for exec) |
259
+ | `flags` | object | ❌ | `{}` | Flags to pass (e.g. `{ "save_dev": true, "force": true }`) |
260
+ | `working_dir` | string | ❌ | project root | Working directory (relative or absolute) |
261
+ | `timeout` | integer | ❌ | `120` | Timeout in seconds |
262
+
263
+ ### Actions
264
+
265
+ | Action | Command Built | Notes |
266
+ | --------- | ------------------------------ | --------------------------------------------- |
267
+ | `install` | `npm install [packages] [flags]` | No args = install all from package.json |
268
+ | `run` | `npm run <script> [flags]` | First arg is script name |
269
+ | `build` | `npm run build [flags]` | Shorthand for `run build` |
270
+ | `test` | `npm test [flags]` | Runs the test script |
271
+ | `init` | `npm init -y [flags]` | Initialize a new package.json |
272
+ | `exec` | `npx <command> [flags]` | Requires at least one arg (the command) |
273
+
274
+ ### Flag Handling
275
+
276
+ Flags object keys are converted to CLI flags: single-char keys become `-k`, multi-char keys become `--key-name` (underscores → hyphens). Boolean `true` adds the flag, string values add `--flag value`.
277
+
278
+ ### Limits
279
+
280
+ | Limit | Value |
281
+ | ------------------ | ---------------------- |
282
+ | Max output | 51,200 bytes (50 KB) |
283
+ | Default timeout | 120 seconds |
284
+
285
+ ### Return
286
+
287
+ ```json
288
+ {
289
+ "success": true,
290
+ "output": "added 42 packages...",
291
+ "stdout": "...",
292
+ "stderr": "",
293
+ "exit_code": 0,
294
+ "truncated": false,
295
+ "command": "npm install express"
296
+ }
297
+ ```
298
+
299
+ ### Invocation
300
+
301
+ ```python
302
+ rye_execute(item_type="tool", item_id="rye/code/npm/npm",
303
+ parameters={"action": "install", "args": ["express", "cors"]})
304
+
305
+ rye_execute(item_type="tool", item_id="rye/code/npm/npm",
306
+ parameters={"action": "install", "args": ["typescript"], "flags": {"save_dev": true}})
307
+
308
+ rye_execute(item_type="tool", item_id="rye/code/npm/npm",
309
+ parameters={"action": "run", "args": ["lint"]})
310
+
311
+ rye_execute(item_type="tool", item_id="rye/code/npm/npm",
312
+ parameters={"action": "exec", "args": ["prisma", "migrate", "dev"]})
313
+
314
+ rye_execute(item_type="tool", item_id="rye/code/npm/npm",
315
+ parameters={"action": "build", "working_dir": "packages/frontend"})
316
+ ```
317
+
318
+ ---
319
+
320
+ ## Error Conditions
321
+
322
+ | Error | Tool | Cause |
323
+ | ----------------------------- | ------------ | ------------------------------------ |
324
+ | File not found | diagnostics, lsp, typescript | Path does not exist |
325
+ | No linters available | diagnostics | No matching linter found in PATH |
326
+ | No LSP server available | lsp | No server installed for file type |
327
+ | Unknown operation | lsp | Invalid operation name |
328
+ | Timeout | all | Command exceeds timeout |
329
+
330
+ ## Usage Patterns
331
+
332
+ ```python
333
+ # Run diagnostics then jump to definition of an error symbol
334
+ diag = rye_execute(item_type="tool", item_id="rye/code/diagnostics/diagnostics",
335
+ parameters={"file_path": "src/main.py"})
336
+
337
+ defn = rye_execute(item_type="tool", item_id="rye/code/lsp/lsp",
338
+ parameters={"operation": "goToDefinition", "file_path": "src/main.py", "line": 42, "character": 8})
339
+
340
+ # Full project type check
341
+ rye_execute(item_type="tool", item_id="rye/code/typescript/typescript",
342
+ parameters={"action": "check"})
343
+
344
+ # Install deps then build
345
+ rye_execute(item_type="tool", item_id="rye/code/npm/npm",
346
+ parameters={"action": "install"})
347
+ rye_execute(item_type="tool", item_id="rye/code/npm/npm",
348
+ parameters={"action": "build"})
349
+ ```