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,350 +1,133 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "object",
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"category": {
|
|
23
|
-
"type": "string",
|
|
24
|
-
"description": "Configuration category reported by the Ultimate firmware (e.g. 'Audio').",
|
|
25
|
-
"minLength": 1
|
|
26
|
-
},
|
|
27
|
-
"item": {
|
|
28
|
-
"type": [
|
|
29
|
-
"string",
|
|
30
|
-
"null"
|
|
31
|
-
],
|
|
32
|
-
"description": "Specific configuration item inside the selected category (e.g. 'Volume').",
|
|
33
|
-
"minLength": 1
|
|
34
|
-
},
|
|
35
|
-
"op": {
|
|
36
|
-
"const": "get"
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
"required": [
|
|
40
|
-
"category",
|
|
41
|
-
"op"
|
|
3
|
+
"properties": {
|
|
4
|
+
"op": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"enum": [
|
|
7
|
+
"list",
|
|
8
|
+
"get",
|
|
9
|
+
"set",
|
|
10
|
+
"batch_update",
|
|
11
|
+
"load_flash",
|
|
12
|
+
"save_flash",
|
|
13
|
+
"reset_defaults",
|
|
14
|
+
"read_debugreg",
|
|
15
|
+
"write_debugreg",
|
|
16
|
+
"info",
|
|
17
|
+
"version",
|
|
18
|
+
"snapshot",
|
|
19
|
+
"restore",
|
|
20
|
+
"diff",
|
|
21
|
+
"shuffle"
|
|
42
22
|
],
|
|
43
|
-
"
|
|
23
|
+
"description": "Selects the operation."
|
|
44
24
|
},
|
|
45
|
-
{
|
|
46
|
-
"type": "
|
|
47
|
-
"description": "
|
|
48
|
-
"
|
|
49
|
-
"category": {
|
|
50
|
-
"type": "string",
|
|
51
|
-
"description": "Configuration category reported by the Ultimate firmware (e.g. 'Audio').",
|
|
52
|
-
"minLength": 1
|
|
53
|
-
},
|
|
54
|
-
"item": {
|
|
55
|
-
"type": "string",
|
|
56
|
-
"description": "Configuration item name inside the category.",
|
|
57
|
-
"minLength": 1
|
|
58
|
-
},
|
|
59
|
-
"value": {
|
|
60
|
-
"description": "Primitive configuration value (string, number, or boolean).",
|
|
61
|
-
"type": [
|
|
62
|
-
"string",
|
|
63
|
-
"number",
|
|
64
|
-
"boolean"
|
|
65
|
-
]
|
|
66
|
-
},
|
|
67
|
-
"op": {
|
|
68
|
-
"const": "set"
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
"required": [
|
|
72
|
-
"category",
|
|
73
|
-
"item",
|
|
74
|
-
"value",
|
|
75
|
-
"op"
|
|
76
|
-
],
|
|
77
|
-
"additionalProperties": false
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
"description": "Apply multiple configuration updates in a single request.",
|
|
81
|
-
"type": "object",
|
|
82
|
-
"additionalProperties": {
|
|
83
|
-
"type": "object",
|
|
84
|
-
"additionalProperties": {
|
|
85
|
-
"type": [
|
|
86
|
-
"string",
|
|
87
|
-
"number",
|
|
88
|
-
"boolean"
|
|
89
|
-
]
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
"properties": {
|
|
93
|
-
"op": {
|
|
94
|
-
"const": "batch_update"
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
"required": [
|
|
98
|
-
"op"
|
|
99
|
-
]
|
|
25
|
+
"category": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "Configuration category reported by the Ultimate firmware (e.g. 'Audio').",
|
|
28
|
+
"minLength": 1
|
|
100
29
|
},
|
|
101
|
-
{
|
|
102
|
-
"type":
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
},
|
|
109
|
-
"additionalProperties": false,
|
|
110
|
-
"required": [
|
|
111
|
-
"op"
|
|
112
|
-
]
|
|
30
|
+
"item": {
|
|
31
|
+
"type": [
|
|
32
|
+
"string",
|
|
33
|
+
"null"
|
|
34
|
+
],
|
|
35
|
+
"description": "Specific configuration item inside the selected category (e.g. 'Volume').",
|
|
36
|
+
"minLength": 1
|
|
113
37
|
},
|
|
114
|
-
{
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
|
|
118
|
-
"
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
"additionalProperties": false,
|
|
123
|
-
"required": [
|
|
124
|
-
"op"
|
|
38
|
+
"value": {
|
|
39
|
+
"description": "Primitive configuration value (string, number, or boolean).",
|
|
40
|
+
"type": [
|
|
41
|
+
"string",
|
|
42
|
+
"number",
|
|
43
|
+
"boolean"
|
|
125
44
|
]
|
|
126
45
|
},
|
|
127
|
-
{
|
|
128
|
-
"type": "
|
|
129
|
-
"description": "
|
|
130
|
-
"
|
|
131
|
-
"op": {
|
|
132
|
-
"const": "reset_defaults"
|
|
133
|
-
}
|
|
134
|
-
},
|
|
135
|
-
"additionalProperties": false,
|
|
136
|
-
"required": [
|
|
137
|
-
"op"
|
|
138
|
-
]
|
|
46
|
+
"path": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Absolute or workspace-relative path where the snapshot file will be written.",
|
|
49
|
+
"minLength": 1
|
|
139
50
|
},
|
|
140
|
-
{
|
|
141
|
-
"type":
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
},
|
|
148
|
-
"additionalProperties": false,
|
|
149
|
-
"required": [
|
|
150
|
-
"op"
|
|
151
|
-
]
|
|
51
|
+
"applyToFlash": {
|
|
52
|
+
"type": [
|
|
53
|
+
"boolean",
|
|
54
|
+
"null"
|
|
55
|
+
],
|
|
56
|
+
"description": "When true, save the restored configuration to flash immediately.",
|
|
57
|
+
"default": false
|
|
152
58
|
},
|
|
153
|
-
{
|
|
154
|
-
"type":
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
"value": {
|
|
158
|
-
"type": "string",
|
|
159
|
-
"description": "Hex value (00-FF) to write to the debug register.",
|
|
160
|
-
"minLength": 1,
|
|
161
|
-
"maxLength": 2,
|
|
162
|
-
"pattern": "^[0-9A-Fa-f]{1,2}$"
|
|
163
|
-
},
|
|
164
|
-
"op": {
|
|
165
|
-
"const": "write_debugreg"
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
"required": [
|
|
169
|
-
"value",
|
|
170
|
-
"op"
|
|
59
|
+
"root": {
|
|
60
|
+
"type": [
|
|
61
|
+
"string",
|
|
62
|
+
"null"
|
|
171
63
|
],
|
|
172
|
-
"
|
|
64
|
+
"description": "Root path to search for programs",
|
|
65
|
+
"minLength": 1,
|
|
66
|
+
"default": "/"
|
|
173
67
|
},
|
|
174
|
-
{
|
|
175
|
-
"type":
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
68
|
+
"extensions": {
|
|
69
|
+
"type": [
|
|
70
|
+
"array",
|
|
71
|
+
"null"
|
|
72
|
+
],
|
|
73
|
+
"items": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"description": "File extensions to include (without dot)",
|
|
76
|
+
"minLength": 1
|
|
77
|
+
},
|
|
78
|
+
"default": [
|
|
79
|
+
"prg",
|
|
80
|
+
"crt"
|
|
185
81
|
]
|
|
186
82
|
},
|
|
187
|
-
{
|
|
188
|
-
"type":
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
"additionalProperties": false,
|
|
196
|
-
"required": [
|
|
197
|
-
"op"
|
|
198
|
-
]
|
|
83
|
+
"durationMs": {
|
|
84
|
+
"type": [
|
|
85
|
+
"integer",
|
|
86
|
+
"null"
|
|
87
|
+
],
|
|
88
|
+
"description": "Duration to run each program in milliseconds",
|
|
89
|
+
"minimum": 1,
|
|
90
|
+
"default": 5000
|
|
199
91
|
},
|
|
200
|
-
{
|
|
201
|
-
"type":
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
"path": {
|
|
205
|
-
"type": "string",
|
|
206
|
-
"description": "Absolute or workspace-relative path where the snapshot file will be written.",
|
|
207
|
-
"minLength": 1
|
|
208
|
-
},
|
|
209
|
-
"op": {
|
|
210
|
-
"const": "snapshot"
|
|
211
|
-
}
|
|
212
|
-
},
|
|
213
|
-
"required": [
|
|
214
|
-
"path",
|
|
215
|
-
"op"
|
|
92
|
+
"captureScreen": {
|
|
93
|
+
"type": [
|
|
94
|
+
"boolean",
|
|
95
|
+
"null"
|
|
216
96
|
],
|
|
217
|
-
"
|
|
97
|
+
"description": "Capture screen after each run",
|
|
98
|
+
"default": true
|
|
218
99
|
},
|
|
219
|
-
{
|
|
220
|
-
"type":
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
"path": {
|
|
224
|
-
"type": "string",
|
|
225
|
-
"description": "Snapshot file to read (must contain categories payload).",
|
|
226
|
-
"minLength": 1
|
|
227
|
-
},
|
|
228
|
-
"applyToFlash": {
|
|
229
|
-
"type": [
|
|
230
|
-
"boolean",
|
|
231
|
-
"null"
|
|
232
|
-
],
|
|
233
|
-
"description": "When true, save the restored configuration to flash immediately.",
|
|
234
|
-
"default": false
|
|
235
|
-
},
|
|
236
|
-
"op": {
|
|
237
|
-
"const": "restore"
|
|
238
|
-
}
|
|
239
|
-
},
|
|
240
|
-
"required": [
|
|
241
|
-
"path",
|
|
242
|
-
"op"
|
|
100
|
+
"maxPrograms": {
|
|
101
|
+
"type": [
|
|
102
|
+
"integer",
|
|
103
|
+
"null"
|
|
243
104
|
],
|
|
244
|
-
"
|
|
105
|
+
"description": "Maximum number of programs to run",
|
|
106
|
+
"minimum": 1,
|
|
107
|
+
"default": 10
|
|
245
108
|
},
|
|
246
|
-
{
|
|
247
|
-
"type":
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
"path": {
|
|
251
|
-
"type": "string",
|
|
252
|
-
"description": "Snapshot file to compare with.",
|
|
253
|
-
"minLength": 1
|
|
254
|
-
},
|
|
255
|
-
"op": {
|
|
256
|
-
"const": "diff"
|
|
257
|
-
}
|
|
258
|
-
},
|
|
259
|
-
"required": [
|
|
260
|
-
"path",
|
|
261
|
-
"op"
|
|
109
|
+
"outputPath": {
|
|
110
|
+
"type": [
|
|
111
|
+
"string",
|
|
112
|
+
"null"
|
|
262
113
|
],
|
|
263
|
-
"
|
|
114
|
+
"description": "Output directory for run logs and captures",
|
|
115
|
+
"minLength": 1
|
|
264
116
|
},
|
|
265
|
-
{
|
|
266
|
-
"type":
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
"description": "Root path to search for programs",
|
|
275
|
-
"minLength": 1,
|
|
276
|
-
"default": "/"
|
|
277
|
-
},
|
|
278
|
-
"extensions": {
|
|
279
|
-
"type": [
|
|
280
|
-
"array",
|
|
281
|
-
"null"
|
|
282
|
-
],
|
|
283
|
-
"items": {
|
|
284
|
-
"type": "string",
|
|
285
|
-
"description": "File extensions to include (without dot)",
|
|
286
|
-
"minLength": 1
|
|
287
|
-
},
|
|
288
|
-
"default": [
|
|
289
|
-
"prg",
|
|
290
|
-
"crt"
|
|
291
|
-
]
|
|
292
|
-
},
|
|
293
|
-
"durationMs": {
|
|
294
|
-
"type": [
|
|
295
|
-
"integer",
|
|
296
|
-
"null"
|
|
297
|
-
],
|
|
298
|
-
"description": "Duration to run each program in milliseconds",
|
|
299
|
-
"minimum": 1,
|
|
300
|
-
"default": 5000
|
|
301
|
-
},
|
|
302
|
-
"captureScreen": {
|
|
303
|
-
"type": [
|
|
304
|
-
"boolean",
|
|
305
|
-
"null"
|
|
306
|
-
],
|
|
307
|
-
"description": "Capture screen after each run",
|
|
308
|
-
"default": true
|
|
309
|
-
},
|
|
310
|
-
"maxPrograms": {
|
|
311
|
-
"type": [
|
|
312
|
-
"integer",
|
|
313
|
-
"null"
|
|
314
|
-
],
|
|
315
|
-
"description": "Maximum number of programs to run",
|
|
316
|
-
"minimum": 1,
|
|
317
|
-
"default": 10
|
|
318
|
-
},
|
|
319
|
-
"outputPath": {
|
|
320
|
-
"type": [
|
|
321
|
-
"string",
|
|
322
|
-
"null"
|
|
323
|
-
],
|
|
324
|
-
"description": "Output directory for run logs and captures",
|
|
325
|
-
"minLength": 1
|
|
326
|
-
},
|
|
327
|
-
"resetDelayMs": {
|
|
328
|
-
"type": [
|
|
329
|
-
"integer",
|
|
330
|
-
"null"
|
|
331
|
-
],
|
|
332
|
-
"description": "Delay after reset operations to allow the platform to settle.",
|
|
333
|
-
"minimum": 0,
|
|
334
|
-
"maximum": 1000,
|
|
335
|
-
"default": 100
|
|
336
|
-
},
|
|
337
|
-
"op": {
|
|
338
|
-
"const": "shuffle"
|
|
339
|
-
}
|
|
340
|
-
},
|
|
341
|
-
"additionalProperties": false,
|
|
342
|
-
"required": [
|
|
343
|
-
"op"
|
|
344
|
-
]
|
|
117
|
+
"resetDelayMs": {
|
|
118
|
+
"type": [
|
|
119
|
+
"integer",
|
|
120
|
+
"null"
|
|
121
|
+
],
|
|
122
|
+
"description": "Delay after reset operations to allow the platform to settle.",
|
|
123
|
+
"minimum": 0,
|
|
124
|
+
"maximum": 1000,
|
|
125
|
+
"default": 100
|
|
345
126
|
}
|
|
127
|
+
},
|
|
128
|
+
"required": [
|
|
129
|
+
"op"
|
|
346
130
|
],
|
|
347
|
-
"
|
|
348
|
-
|
|
349
|
-
}
|
|
131
|
+
"description": "Configuration operations available via the c64_config tool.\n\nOperations:\n- list: List configuration categories reported by the firmware.\n- get: Read a configuration category or specific item.\n- set: Write a configuration value in the selected category.\n- batch_update: Apply multiple configuration updates in a single request.\n- load_flash: Load configuration from flash storage.\n- save_flash: Persist the current configuration to flash storage.\n- reset_defaults: Reset firmware configuration to factory defaults.\n- read_debugreg: Read the Ultimate debug register ($D7FF).\n- write_debugreg: Write a hex value to the Ultimate debug register ($D7FF).\n- info: Retrieve Ultimate hardware information and status.\n- version: Fetch firmware version details.\n- snapshot: Snapshot configuration to disk for later restore or diff.\n- restore: Restore configuration from a snapshot file.\n- diff: Compare the current configuration with a snapshot.\n- shuffle: Discover PRG/CRT files and run each with optional screen capture.",
|
|
132
|
+
"additionalProperties": false
|
|
350
133
|
}
|