c64bridge 0.8.1 → 0.9.0
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/prompts/steer.prompt.md +55 -0
- package/AGENTS.md +9 -7
- package/README.md +139 -95
- package/data/embeddings_asm.json +1 -1
- package/data/embeddings_basic.json +1 -1
- package/data/embeddings_hardware.json +1 -1
- package/data/embeddings_mixed.json +1 -1
- package/data/embeddings_other.json +1 -1
- package/data/graphics/petscii-style-guide.md +4 -4
- package/data/graphics/sprite-charset-best-practices.md +9 -9
- package/data/vice/vice-binary-monitor-spec.md +921 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/device.js +86 -10
- package/dist/mcp-server.js +1 -1
- package/dist/prompts/registry.js +27 -25
- package/dist/rag/knowledgeIndex.js +112 -79
- package/dist/rag/resourceUris.js +93 -0
- package/dist/tools/audio.js +11 -11
- package/dist/tools/debug.js +1 -1
- package/dist/tools/developer.js +13 -13
- package/dist/tools/graphics.js +10 -10
- package/dist/tools/machineControl.js +5 -5
- package/dist/tools/memory.js +19 -11
- package/dist/tools/meta/index.js +1 -1
- package/dist/tools/printer.js +11 -12
- package/dist/tools/programRunners.js +16 -16
- package/dist/tools/rag.js +9 -9
- package/dist/tools/registry/config.js +1 -1
- package/dist/tools/registry/disk.js +1 -1
- package/dist/tools/registry/drive.js +1 -1
- package/dist/tools/registry/extract.js +1 -1
- package/dist/tools/registry/graphics.js +1 -1
- package/dist/tools/registry/memory.js +1 -1
- package/dist/tools/registry/platform.js +1 -1
- package/dist/tools/registry/printer.js +1 -1
- package/dist/tools/registry/program.js +1 -1
- package/dist/tools/registry/rag.js +1 -1
- package/dist/tools/registry/sound.js +1 -1
- package/dist/tools/registry/stream.js +1 -1
- package/dist/tools/registry/system.js +1 -1
- package/dist/tools/storage.js +15 -15
- package/dist/tools/streaming.js +3 -3
- package/dist/tools/types.js +41 -4
- package/dist/tools/vice.js +2 -5
- package/dist/vice/process.js +79 -2
- package/dist/vice/readiness.js +35 -0
- package/dist/vice/smokeOptions.js +44 -0
- package/dist/viceRunner.js +2 -0
- package/doc/plans/prompts/README.md +7 -7
- package/mcp/prompts.json +42 -59
- package/mcp/protocol-examples.json +2 -2
- package/mcp/resources.json +179 -166
- package/mcp/schemas/c64_config.schema.json +109 -326
- package/mcp/schemas/c64_debug.schema.json +158 -337
- package/mcp/schemas/c64_disk.schema.json +180 -262
- package/mcp/schemas/c64_drive.schema.json +31 -111
- package/mcp/schemas/c64_extract.schema.json +193 -291
- package/mcp/schemas/c64_graphics.schema.json +208 -308
- package/mcp/schemas/c64_memory.schema.json +94 -144
- package/mcp/schemas/c64_printer.schema.json +151 -205
- package/mcp/schemas/c64_program.schema.json +229 -367
- package/mcp/schemas/c64_rag.schema.json +25 -59
- package/mcp/schemas/c64_select_backend.schema.json +19 -26
- package/mcp/schemas/c64_sound.schema.json +346 -622
- package/mcp/schemas/c64_stream.schema.json +25 -54
- package/mcp/schemas/c64_system.schema.json +79 -212
- package/mcp/schemas/c64_vice.schema.json +24 -55
- package/mcp/server.json +1 -1
- package/mcp/tools.json +1935 -3443
- package/mcp.json +3 -3
- package/package.json +17 -14
- package/scripts/fetch-external-sources.mjs +1 -2
- package/scripts/run-coverage.mjs +26 -1
- package/scripts/run-tests.mjs +2 -2
- package/scripts/run-tests.ts +273 -52
- package/scripts/update-readme.ts +54 -2
- package/server.json +2 -2
|
@@ -1,61 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "object",
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"stream": {
|
|
10
|
-
"type": "string",
|
|
11
|
-
"description": "Stream type to control (video/audio/debug).",
|
|
12
|
-
"enum": [
|
|
13
|
-
"video",
|
|
14
|
-
"audio",
|
|
15
|
-
"debug"
|
|
16
|
-
]
|
|
17
|
-
},
|
|
18
|
-
"target": {
|
|
19
|
-
"type": "string",
|
|
20
|
-
"description": "Destination host:port or UDP target understood by the firmware.",
|
|
21
|
-
"minLength": 3
|
|
22
|
-
},
|
|
23
|
-
"op": {
|
|
24
|
-
"const": "start"
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
"required": [
|
|
28
|
-
"stream",
|
|
29
|
-
"target",
|
|
30
|
-
"op"
|
|
3
|
+
"properties": {
|
|
4
|
+
"op": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"enum": [
|
|
7
|
+
"start",
|
|
8
|
+
"stop"
|
|
31
9
|
],
|
|
32
|
-
"
|
|
10
|
+
"description": "Selects the operation."
|
|
33
11
|
},
|
|
34
|
-
{
|
|
35
|
-
"type": "
|
|
36
|
-
"description": "
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"op": {
|
|
48
|
-
"const": "stop"
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
"required": [
|
|
52
|
-
"stream",
|
|
53
|
-
"op"
|
|
54
|
-
],
|
|
55
|
-
"additionalProperties": false
|
|
12
|
+
"stream": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Stream type to control (video/audio/debug).",
|
|
15
|
+
"enum": [
|
|
16
|
+
"video",
|
|
17
|
+
"audio",
|
|
18
|
+
"debug"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"target": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "Destination host:port or UDP target understood by the firmware.",
|
|
24
|
+
"minLength": 3
|
|
56
25
|
}
|
|
26
|
+
},
|
|
27
|
+
"required": [
|
|
28
|
+
"op"
|
|
57
29
|
],
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
}
|
|
30
|
+
"description": "Streaming operations available via the c64_stream tool.\n\nOperations:\n- start: Start an Ultimate streaming session toward a host:port target.\n- stop: Stop an active Ultimate streaming session.",
|
|
31
|
+
"additionalProperties": false
|
|
61
32
|
}
|
|
@@ -1,227 +1,94 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "object",
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
"description": "Resume CPU execution after a pause.",
|
|
21
|
-
"properties": {
|
|
22
|
-
"op": {
|
|
23
|
-
"const": "resume"
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
"additionalProperties": false,
|
|
27
|
-
"required": [
|
|
28
|
-
"op"
|
|
29
|
-
]
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"type": "object",
|
|
33
|
-
"description": "Issue a soft reset without cutting power.",
|
|
34
|
-
"properties": {
|
|
35
|
-
"op": {
|
|
36
|
-
"const": "reset"
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
"additionalProperties": false,
|
|
40
|
-
"required": [
|
|
41
|
-
"op"
|
|
42
|
-
]
|
|
3
|
+
"properties": {
|
|
4
|
+
"op": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"enum": [
|
|
7
|
+
"pause",
|
|
8
|
+
"resume",
|
|
9
|
+
"reset",
|
|
10
|
+
"reboot",
|
|
11
|
+
"poweroff",
|
|
12
|
+
"menu",
|
|
13
|
+
"start_task",
|
|
14
|
+
"stop_task",
|
|
15
|
+
"stop_all_tasks",
|
|
16
|
+
"list_tasks",
|
|
17
|
+
"performance_report"
|
|
18
|
+
],
|
|
19
|
+
"description": "Selects the operation."
|
|
43
20
|
},
|
|
44
|
-
{
|
|
45
|
-
"type": "
|
|
46
|
-
"description": "
|
|
47
|
-
"
|
|
48
|
-
"op": {
|
|
49
|
-
"const": "reboot"
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
"additionalProperties": false,
|
|
53
|
-
"required": [
|
|
54
|
-
"op"
|
|
55
|
-
]
|
|
21
|
+
"name": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "Unique task name",
|
|
24
|
+
"minLength": 1
|
|
56
25
|
},
|
|
57
|
-
{
|
|
58
|
-
"type": "
|
|
59
|
-
"description": "
|
|
60
|
-
"
|
|
61
|
-
"op": {
|
|
62
|
-
"const": "poweroff"
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
"additionalProperties": false,
|
|
66
|
-
"required": [
|
|
67
|
-
"op"
|
|
68
|
-
]
|
|
26
|
+
"operation": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Operation name (e.g., read, read_screen)",
|
|
29
|
+
"minLength": 1
|
|
69
30
|
},
|
|
70
|
-
{
|
|
71
|
-
"type":
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"
|
|
79
|
-
"required": [
|
|
80
|
-
"op"
|
|
81
|
-
]
|
|
31
|
+
"arguments": {
|
|
32
|
+
"type": [
|
|
33
|
+
"object",
|
|
34
|
+
"null"
|
|
35
|
+
],
|
|
36
|
+
"description": "Operation-specific arguments",
|
|
37
|
+
"properties": {},
|
|
38
|
+
"additionalProperties": true,
|
|
39
|
+
"default": {}
|
|
82
40
|
},
|
|
83
|
-
{
|
|
84
|
-
"type":
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
"name": {
|
|
88
|
-
"type": "string",
|
|
89
|
-
"description": "Unique task name",
|
|
90
|
-
"minLength": 1
|
|
91
|
-
},
|
|
92
|
-
"operation": {
|
|
93
|
-
"type": "string",
|
|
94
|
-
"description": "Operation name (e.g., read, read_screen)",
|
|
95
|
-
"minLength": 1
|
|
96
|
-
},
|
|
97
|
-
"arguments": {
|
|
98
|
-
"type": [
|
|
99
|
-
"object",
|
|
100
|
-
"null"
|
|
101
|
-
],
|
|
102
|
-
"description": "Operation-specific arguments",
|
|
103
|
-
"properties": {},
|
|
104
|
-
"additionalProperties": true,
|
|
105
|
-
"default": {}
|
|
106
|
-
},
|
|
107
|
-
"intervalMs": {
|
|
108
|
-
"type": [
|
|
109
|
-
"integer",
|
|
110
|
-
"null"
|
|
111
|
-
],
|
|
112
|
-
"description": "Interval milliseconds",
|
|
113
|
-
"minimum": 1,
|
|
114
|
-
"default": 1000
|
|
115
|
-
},
|
|
116
|
-
"maxIterations": {
|
|
117
|
-
"type": [
|
|
118
|
-
"integer",
|
|
119
|
-
"null"
|
|
120
|
-
],
|
|
121
|
-
"description": "Maximum number of iterations (omit for indefinite)",
|
|
122
|
-
"minimum": 1
|
|
123
|
-
},
|
|
124
|
-
"op": {
|
|
125
|
-
"const": "start_task"
|
|
126
|
-
}
|
|
127
|
-
},
|
|
128
|
-
"required": [
|
|
129
|
-
"name",
|
|
130
|
-
"operation",
|
|
131
|
-
"op"
|
|
41
|
+
"intervalMs": {
|
|
42
|
+
"type": [
|
|
43
|
+
"integer",
|
|
44
|
+
"null"
|
|
132
45
|
],
|
|
133
|
-
"
|
|
46
|
+
"description": "Interval milliseconds",
|
|
47
|
+
"minimum": 1,
|
|
48
|
+
"default": 1000
|
|
134
49
|
},
|
|
135
|
-
{
|
|
136
|
-
"type":
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
"name": {
|
|
140
|
-
"type": "string",
|
|
141
|
-
"description": "Task name",
|
|
142
|
-
"minLength": 1
|
|
143
|
-
},
|
|
144
|
-
"op": {
|
|
145
|
-
"const": "stop_task"
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
"required": [
|
|
149
|
-
"name",
|
|
150
|
-
"op"
|
|
50
|
+
"maxIterations": {
|
|
51
|
+
"type": [
|
|
52
|
+
"integer",
|
|
53
|
+
"null"
|
|
151
54
|
],
|
|
152
|
-
"
|
|
55
|
+
"description": "Maximum number of iterations (omit for indefinite)",
|
|
56
|
+
"minimum": 1
|
|
153
57
|
},
|
|
154
|
-
{
|
|
155
|
-
"type":
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
]
|
|
58
|
+
"scope": {
|
|
59
|
+
"type": [
|
|
60
|
+
"string",
|
|
61
|
+
"null"
|
|
62
|
+
],
|
|
63
|
+
"description": "Which diagnostics session to summarize.",
|
|
64
|
+
"enum": [
|
|
65
|
+
"current",
|
|
66
|
+
"latest"
|
|
67
|
+
],
|
|
68
|
+
"default": "current"
|
|
166
69
|
},
|
|
167
|
-
{
|
|
168
|
-
"type":
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
},
|
|
175
|
-
"additionalProperties": false,
|
|
176
|
-
"required": [
|
|
177
|
-
"op"
|
|
178
|
-
]
|
|
70
|
+
"includeTimeline": {
|
|
71
|
+
"type": [
|
|
72
|
+
"boolean",
|
|
73
|
+
"null"
|
|
74
|
+
],
|
|
75
|
+
"description": "Include the tail of the event timeline.",
|
|
76
|
+
"default": true
|
|
179
77
|
},
|
|
180
|
-
{
|
|
181
|
-
"type":
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
"description": "Which diagnostics session to summarize.",
|
|
190
|
-
"enum": [
|
|
191
|
-
"current",
|
|
192
|
-
"latest"
|
|
193
|
-
],
|
|
194
|
-
"default": "current"
|
|
195
|
-
},
|
|
196
|
-
"includeTimeline": {
|
|
197
|
-
"type": [
|
|
198
|
-
"boolean",
|
|
199
|
-
"null"
|
|
200
|
-
],
|
|
201
|
-
"description": "Include the tail of the event timeline.",
|
|
202
|
-
"default": true
|
|
203
|
-
},
|
|
204
|
-
"maxEntries": {
|
|
205
|
-
"type": [
|
|
206
|
-
"integer",
|
|
207
|
-
"null"
|
|
208
|
-
],
|
|
209
|
-
"description": "Maximum number of span and timeline entries to return.",
|
|
210
|
-
"minimum": 1,
|
|
211
|
-
"maximum": 200,
|
|
212
|
-
"default": 25
|
|
213
|
-
},
|
|
214
|
-
"op": {
|
|
215
|
-
"const": "performance_report"
|
|
216
|
-
}
|
|
217
|
-
},
|
|
218
|
-
"additionalProperties": false,
|
|
219
|
-
"required": [
|
|
220
|
-
"op"
|
|
221
|
-
]
|
|
78
|
+
"maxEntries": {
|
|
79
|
+
"type": [
|
|
80
|
+
"integer",
|
|
81
|
+
"null"
|
|
82
|
+
],
|
|
83
|
+
"description": "Maximum number of span and timeline entries to return.",
|
|
84
|
+
"minimum": 1,
|
|
85
|
+
"maximum": 200,
|
|
86
|
+
"default": 25
|
|
222
87
|
}
|
|
88
|
+
},
|
|
89
|
+
"required": [
|
|
90
|
+
"op"
|
|
223
91
|
],
|
|
224
|
-
"
|
|
225
|
-
|
|
226
|
-
}
|
|
92
|
+
"description": "System operations available via the c64_system tool.\n\nOperations:\n- pause: Pause the machine until resumed.\n- resume: Resume CPU execution after a pause.\n- reset: Issue a soft reset without cutting power.\n- reboot: Trigger a firmware reboot to recover from faults.\n- poweroff: Request a controlled shutdown via the Ultimate firmware.\n- menu: Toggle the Ultimate menu button for navigation.\n- start_task: Start a named background task that runs on an interval.\n- stop_task: Stop a specific background task and clear its timer.\n- stop_all_tasks: Stop every running background task and persist state.\n- list_tasks: List known background tasks with status metadata.\n- performance_report: Summarize diagnostics spans and tool latencies from the current or latest MCP session.",
|
|
93
|
+
"additionalProperties": false
|
|
227
94
|
}
|
|
@@ -1,63 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "object",
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"op": {
|
|
10
|
-
"const": "resource_get"
|
|
11
|
-
},
|
|
12
|
-
"name": {
|
|
13
|
-
"type": "string",
|
|
14
|
-
"description": "VICE resource name (example: SidEngine, C64Model).",
|
|
15
|
-
"minLength": 1,
|
|
16
|
-
"maxLength": 64,
|
|
17
|
-
"pattern": "^[A-Z][A-Za-z0-9_.-]{0,63}$"
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
"required": [
|
|
21
|
-
"op",
|
|
22
|
-
"name"
|
|
3
|
+
"properties": {
|
|
4
|
+
"op": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"enum": [
|
|
7
|
+
"resource_get",
|
|
8
|
+
"resource_set"
|
|
23
9
|
],
|
|
24
|
-
"
|
|
10
|
+
"description": "Selects the operation."
|
|
25
11
|
},
|
|
26
|
-
{
|
|
27
|
-
"type": "
|
|
28
|
-
"description": "
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"maxLength": 64,
|
|
38
|
-
"pattern": "^[A-Z][A-Za-z0-9_.-]{0,63}$"
|
|
39
|
-
},
|
|
40
|
-
"value": {
|
|
41
|
-
"description": "VICE resource value (string or integer).",
|
|
42
|
-
"oneOf": [
|
|
43
|
-
{
|
|
44
|
-
"type": "string"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
"type": "integer"
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
"required": [
|
|
53
|
-
"op",
|
|
54
|
-
"name",
|
|
55
|
-
"value"
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "VICE resource name (example: SidEngine, C64Model).",
|
|
15
|
+
"minLength": 1,
|
|
16
|
+
"maxLength": 64,
|
|
17
|
+
"pattern": "^[A-Z][A-Za-z0-9_.-]{0,63}$"
|
|
18
|
+
},
|
|
19
|
+
"value": {
|
|
20
|
+
"type": [
|
|
21
|
+
"string",
|
|
22
|
+
"integer"
|
|
56
23
|
],
|
|
57
|
-
"
|
|
24
|
+
"description": "VICE resource value (string or integer)."
|
|
58
25
|
}
|
|
26
|
+
},
|
|
27
|
+
"required": [
|
|
28
|
+
"op"
|
|
59
29
|
],
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
}
|
|
30
|
+
"description": "VICE emulator operations available via the c64_vice tool.\n\nOperations:\n- resource_get: Read a VICE configuration resource (safe prefixes only).\n- resource_set: Write a VICE configuration resource (safe prefixes only).",
|
|
31
|
+
"additionalProperties": false
|
|
63
32
|
}
|