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.
- ryeos_code/.ai/directives/rye/code/diagnostics.md +48 -0
- ryeos_code/.ai/directives/rye/code/lsp.md +50 -0
- ryeos_code/.ai/directives/rye/code/npm.md +50 -0
- ryeos_code/.ai/directives/rye/code/typescript.md +50 -0
- ryeos_code/.ai/knowledge/rye/code/code-tools.md +349 -0
- ryeos_code/.ai/tools/rye/code/diagnostics/diagnostics.ts +347 -0
- ryeos_code/.ai/tools/rye/code/diagnostics/package-lock.json +555 -0
- ryeos_code/.ai/tools/rye/code/diagnostics/package.json +8 -0
- ryeos_code/.ai/tools/rye/code/git/git.py +246 -0
- ryeos_code/.ai/tools/rye/code/lsp/lsp.ts +438 -0
- ryeos_code/.ai/tools/rye/code/lsp/package-lock.json +593 -0
- ryeos_code/.ai/tools/rye/code/lsp/package.json +12 -0
- ryeos_code/.ai/tools/rye/code/npm/npm.ts +212 -0
- ryeos_code/.ai/tools/rye/code/npm/package-lock.json +555 -0
- ryeos_code/.ai/tools/rye/code/npm/package.json +8 -0
- ryeos_code/.ai/tools/rye/code/typescript/package-lock.json +555 -0
- ryeos_code/.ai/tools/rye/code/typescript/package.json +8 -0
- ryeos_code/.ai/tools/rye/code/typescript/typescript.ts +215 -0
- ryeos_code/__init__.py +1 -0
- ryeos_code/bundle.py +13 -0
- ryeos_code-0.1.0.dist-info/METADATA +13 -0
- ryeos_code-0.1.0.dist-info/RECORD +24 -0
- ryeos_code-0.1.0.dist-info/WHEEL +4 -0
- ryeos_code-0.1.0.dist-info/entry_points.txt +2 -0
|
@@ -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
|
+
```
|