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,380 +1,201 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "object",
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
3
|
+
"properties": {
|
|
4
|
+
"op": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"enum": [
|
|
7
|
+
"list_checkpoints",
|
|
8
|
+
"get_checkpoint",
|
|
9
|
+
"create_checkpoint",
|
|
10
|
+
"delete_checkpoint",
|
|
11
|
+
"toggle_checkpoint",
|
|
12
|
+
"set_condition",
|
|
13
|
+
"list_registers",
|
|
14
|
+
"get_registers",
|
|
15
|
+
"set_registers",
|
|
16
|
+
"step",
|
|
17
|
+
"step_return"
|
|
15
18
|
],
|
|
16
|
-
"
|
|
19
|
+
"description": "Selects the operation."
|
|
17
20
|
},
|
|
18
|
-
{
|
|
19
|
-
"type": "
|
|
20
|
-
"description": "
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"op",
|
|
33
|
-
"id"
|
|
21
|
+
"id": {
|
|
22
|
+
"type": "integer",
|
|
23
|
+
"description": "Debugger checkpoint identifier.",
|
|
24
|
+
"minimum": 1
|
|
25
|
+
},
|
|
26
|
+
"address": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Start address (e.g. $0801).",
|
|
29
|
+
"minLength": 1
|
|
30
|
+
},
|
|
31
|
+
"endAddress": {
|
|
32
|
+
"type": [
|
|
33
|
+
"string",
|
|
34
|
+
"null"
|
|
34
35
|
],
|
|
35
|
-
"
|
|
36
|
+
"description": "Optional end address for range.",
|
|
37
|
+
"minLength": 1
|
|
38
|
+
},
|
|
39
|
+
"stopOnHit": {
|
|
40
|
+
"type": [
|
|
41
|
+
"boolean",
|
|
42
|
+
"null"
|
|
43
|
+
],
|
|
44
|
+
"description": "Pause execution when hit (default true).",
|
|
45
|
+
"default": true
|
|
46
|
+
},
|
|
47
|
+
"enabled": {
|
|
48
|
+
"type": [
|
|
49
|
+
"boolean",
|
|
50
|
+
"null"
|
|
51
|
+
],
|
|
52
|
+
"description": "Whether the checkpoint is enabled (default true).",
|
|
53
|
+
"default": true
|
|
54
|
+
},
|
|
55
|
+
"temporary": {
|
|
56
|
+
"type": [
|
|
57
|
+
"boolean",
|
|
58
|
+
"null"
|
|
59
|
+
],
|
|
60
|
+
"description": "Automatically remove after first hit.",
|
|
61
|
+
"default": false
|
|
36
62
|
},
|
|
37
|
-
{
|
|
38
|
-
"type":
|
|
39
|
-
|
|
63
|
+
"operations": {
|
|
64
|
+
"type": [
|
|
65
|
+
"object",
|
|
66
|
+
"null"
|
|
67
|
+
],
|
|
68
|
+
"description": "Checkpoint operation filters.",
|
|
40
69
|
"properties": {
|
|
41
|
-
"
|
|
42
|
-
"const": "create_checkpoint"
|
|
43
|
-
},
|
|
44
|
-
"address": {
|
|
45
|
-
"type": "string",
|
|
46
|
-
"description": "Start address (e.g. $0801).",
|
|
47
|
-
"minLength": 1
|
|
48
|
-
},
|
|
49
|
-
"endAddress": {
|
|
50
|
-
"type": [
|
|
51
|
-
"string",
|
|
52
|
-
"null"
|
|
53
|
-
],
|
|
54
|
-
"description": "Optional end address for range.",
|
|
55
|
-
"minLength": 1
|
|
56
|
-
},
|
|
57
|
-
"stopOnHit": {
|
|
70
|
+
"execute": {
|
|
58
71
|
"type": [
|
|
59
72
|
"boolean",
|
|
60
73
|
"null"
|
|
61
74
|
],
|
|
62
|
-
"description": "
|
|
75
|
+
"description": "Trigger on execute (default true).",
|
|
63
76
|
"default": true
|
|
64
77
|
},
|
|
65
|
-
"
|
|
78
|
+
"load": {
|
|
66
79
|
"type": [
|
|
67
80
|
"boolean",
|
|
68
81
|
"null"
|
|
69
82
|
],
|
|
70
|
-
"description": "
|
|
71
|
-
"default":
|
|
83
|
+
"description": "Trigger on memory load.",
|
|
84
|
+
"default": false
|
|
72
85
|
},
|
|
73
|
-
"
|
|
86
|
+
"store": {
|
|
74
87
|
"type": [
|
|
75
88
|
"boolean",
|
|
76
89
|
"null"
|
|
77
90
|
],
|
|
78
|
-
"description": "
|
|
91
|
+
"description": "Trigger on memory store.",
|
|
79
92
|
"default": false
|
|
80
|
-
},
|
|
81
|
-
"operations": {
|
|
82
|
-
"type": [
|
|
83
|
-
"object",
|
|
84
|
-
"null"
|
|
85
|
-
],
|
|
86
|
-
"description": "Checkpoint operation filters.",
|
|
87
|
-
"properties": {
|
|
88
|
-
"execute": {
|
|
89
|
-
"type": [
|
|
90
|
-
"boolean",
|
|
91
|
-
"null"
|
|
92
|
-
],
|
|
93
|
-
"description": "Trigger on execute (default true).",
|
|
94
|
-
"default": true
|
|
95
|
-
},
|
|
96
|
-
"load": {
|
|
97
|
-
"type": [
|
|
98
|
-
"boolean",
|
|
99
|
-
"null"
|
|
100
|
-
],
|
|
101
|
-
"description": "Trigger on memory load.",
|
|
102
|
-
"default": false
|
|
103
|
-
},
|
|
104
|
-
"store": {
|
|
105
|
-
"type": [
|
|
106
|
-
"boolean",
|
|
107
|
-
"null"
|
|
108
|
-
],
|
|
109
|
-
"description": "Trigger on memory store.",
|
|
110
|
-
"default": false
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
"additionalProperties": false
|
|
114
|
-
},
|
|
115
|
-
"memspace": {
|
|
116
|
-
"type": [
|
|
117
|
-
"integer",
|
|
118
|
-
"null"
|
|
119
|
-
],
|
|
120
|
-
"description": "VICE memory space (0=CPU, 1=Drive8, etc.).",
|
|
121
|
-
"minimum": 0,
|
|
122
|
-
"maximum": 4
|
|
123
93
|
}
|
|
124
94
|
},
|
|
125
|
-
"required": [
|
|
126
|
-
"op",
|
|
127
|
-
"address"
|
|
128
|
-
],
|
|
129
95
|
"additionalProperties": false
|
|
130
96
|
},
|
|
131
|
-
{
|
|
132
|
-
"type":
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
"op": {
|
|
136
|
-
"const": "delete_checkpoint"
|
|
137
|
-
},
|
|
138
|
-
"id": {
|
|
139
|
-
"type": "integer",
|
|
140
|
-
"description": "Debugger checkpoint identifier.",
|
|
141
|
-
"minimum": 1
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
"required": [
|
|
145
|
-
"op",
|
|
146
|
-
"id"
|
|
97
|
+
"memspace": {
|
|
98
|
+
"type": [
|
|
99
|
+
"integer",
|
|
100
|
+
"null"
|
|
147
101
|
],
|
|
148
|
-
"
|
|
102
|
+
"description": "VICE memory space (0=CPU, 1=Drive8, etc.).",
|
|
103
|
+
"minimum": 0,
|
|
104
|
+
"maximum": 4
|
|
149
105
|
},
|
|
150
|
-
{
|
|
151
|
-
"type": "
|
|
152
|
-
"description": "
|
|
153
|
-
"
|
|
154
|
-
"op": {
|
|
155
|
-
"const": "toggle_checkpoint"
|
|
156
|
-
},
|
|
157
|
-
"id": {
|
|
158
|
-
"type": "integer",
|
|
159
|
-
"description": "Debugger checkpoint identifier.",
|
|
160
|
-
"minimum": 1
|
|
161
|
-
},
|
|
162
|
-
"enabled": {
|
|
163
|
-
"type": "boolean",
|
|
164
|
-
"description": "Set to true to enable, false to disable."
|
|
165
|
-
}
|
|
166
|
-
},
|
|
167
|
-
"required": [
|
|
168
|
-
"op",
|
|
169
|
-
"id",
|
|
170
|
-
"enabled"
|
|
171
|
-
],
|
|
172
|
-
"additionalProperties": false
|
|
106
|
+
"expression": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"description": "VICE monitor conditional expression.",
|
|
109
|
+
"minLength": 1
|
|
173
110
|
},
|
|
174
|
-
{
|
|
175
|
-
"type":
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
"op": {
|
|
179
|
-
"const": "set_condition"
|
|
180
|
-
},
|
|
181
|
-
"id": {
|
|
182
|
-
"type": "integer",
|
|
183
|
-
"description": "Debugger checkpoint identifier.",
|
|
184
|
-
"minimum": 1
|
|
185
|
-
},
|
|
186
|
-
"expression": {
|
|
187
|
-
"type": "string",
|
|
188
|
-
"description": "VICE monitor conditional expression.",
|
|
189
|
-
"minLength": 1
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
"required": [
|
|
193
|
-
"op",
|
|
194
|
-
"id",
|
|
195
|
-
"expression"
|
|
111
|
+
"registers": {
|
|
112
|
+
"type": [
|
|
113
|
+
"array",
|
|
114
|
+
"null"
|
|
196
115
|
],
|
|
197
|
-
"
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
"required": [
|
|
217
|
-
"op"
|
|
218
|
-
],
|
|
219
|
-
"additionalProperties": false
|
|
220
|
-
},
|
|
221
|
-
{
|
|
222
|
-
"type": "object",
|
|
223
|
-
"description": "Read register values, optionally filtered by name or id.",
|
|
224
|
-
"properties": {
|
|
225
|
-
"op": {
|
|
226
|
-
"const": "get_registers"
|
|
227
|
-
},
|
|
228
|
-
"memspace": {
|
|
229
|
-
"type": [
|
|
230
|
-
"integer",
|
|
231
|
-
"null"
|
|
232
|
-
],
|
|
233
|
-
"description": "VICE memory space (0=CPU, 1=Drive8, etc.).",
|
|
234
|
-
"minimum": 0,
|
|
235
|
-
"maximum": 4
|
|
236
|
-
},
|
|
237
|
-
"registers": {
|
|
238
|
-
"type": [
|
|
239
|
-
"array",
|
|
240
|
-
"null"
|
|
241
|
-
],
|
|
242
|
-
"description": "Registers to include.",
|
|
243
|
-
"items": {
|
|
244
|
-
"type": "object",
|
|
245
|
-
"description": "Selects a register by id or name.",
|
|
246
|
-
"properties": {
|
|
247
|
-
"name": {
|
|
248
|
-
"type": [
|
|
249
|
-
"string",
|
|
250
|
-
"null"
|
|
251
|
-
],
|
|
252
|
-
"description": "Register name (case-insensitive)."
|
|
253
|
-
},
|
|
254
|
-
"id": {
|
|
255
|
-
"type": [
|
|
256
|
-
"integer",
|
|
257
|
-
"null"
|
|
258
|
-
],
|
|
259
|
-
"description": "Register id.",
|
|
260
|
-
"minimum": 0
|
|
261
|
-
}
|
|
262
|
-
},
|
|
263
|
-
"additionalProperties": false
|
|
116
|
+
"description": "Registers to include.",
|
|
117
|
+
"items": {
|
|
118
|
+
"type": "object",
|
|
119
|
+
"description": "Selects a register by id or name.",
|
|
120
|
+
"properties": {
|
|
121
|
+
"name": {
|
|
122
|
+
"type": [
|
|
123
|
+
"string",
|
|
124
|
+
"null"
|
|
125
|
+
],
|
|
126
|
+
"description": "Register name (case-insensitive)."
|
|
127
|
+
},
|
|
128
|
+
"id": {
|
|
129
|
+
"type": [
|
|
130
|
+
"integer",
|
|
131
|
+
"null"
|
|
132
|
+
],
|
|
133
|
+
"description": "Register id.",
|
|
134
|
+
"minimum": 0
|
|
264
135
|
}
|
|
265
|
-
}
|
|
266
|
-
},
|
|
267
|
-
"required": [
|
|
268
|
-
"op"
|
|
269
|
-
],
|
|
270
|
-
"additionalProperties": false
|
|
271
|
-
},
|
|
272
|
-
{
|
|
273
|
-
"type": "object",
|
|
274
|
-
"description": "Write register values.",
|
|
275
|
-
"properties": {
|
|
276
|
-
"op": {
|
|
277
|
-
"const": "set_registers"
|
|
278
136
|
},
|
|
279
|
-
"
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
"
|
|
289
|
-
"
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
"description": "Register write descriptor.",
|
|
294
|
-
"properties": {
|
|
295
|
-
"name": {
|
|
296
|
-
"type": [
|
|
297
|
-
"string",
|
|
298
|
-
"null"
|
|
299
|
-
],
|
|
300
|
-
"description": "Register name (case-insensitive)."
|
|
301
|
-
},
|
|
302
|
-
"id": {
|
|
303
|
-
"type": [
|
|
304
|
-
"integer",
|
|
305
|
-
"null"
|
|
306
|
-
],
|
|
307
|
-
"description": "Register id.",
|
|
308
|
-
"minimum": 0
|
|
309
|
-
},
|
|
310
|
-
"value": {
|
|
311
|
-
"type": "integer",
|
|
312
|
-
"description": "Value to write.",
|
|
313
|
-
"minimum": 0
|
|
314
|
-
}
|
|
315
|
-
},
|
|
316
|
-
"required": [
|
|
317
|
-
"value"
|
|
137
|
+
"additionalProperties": false
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"writes": {
|
|
141
|
+
"type": "array",
|
|
142
|
+
"description": "Register writes to apply.",
|
|
143
|
+
"items": {
|
|
144
|
+
"type": "object",
|
|
145
|
+
"description": "Register write descriptor.",
|
|
146
|
+
"properties": {
|
|
147
|
+
"name": {
|
|
148
|
+
"type": [
|
|
149
|
+
"string",
|
|
150
|
+
"null"
|
|
318
151
|
],
|
|
319
|
-
"
|
|
152
|
+
"description": "Register name (case-insensitive)."
|
|
320
153
|
},
|
|
321
|
-
"
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
"op": {
|
|
335
|
-
"const": "step"
|
|
336
|
-
},
|
|
337
|
-
"count": {
|
|
338
|
-
"type": [
|
|
339
|
-
"integer",
|
|
340
|
-
"null"
|
|
341
|
-
],
|
|
342
|
-
"description": "Number of instructions to step.",
|
|
343
|
-
"minimum": 1,
|
|
344
|
-
"default": 1
|
|
154
|
+
"id": {
|
|
155
|
+
"type": [
|
|
156
|
+
"integer",
|
|
157
|
+
"null"
|
|
158
|
+
],
|
|
159
|
+
"description": "Register id.",
|
|
160
|
+
"minimum": 0
|
|
161
|
+
},
|
|
162
|
+
"value": {
|
|
163
|
+
"type": "integer",
|
|
164
|
+
"description": "Value to write.",
|
|
165
|
+
"minimum": 0
|
|
166
|
+
}
|
|
345
167
|
},
|
|
346
|
-
"
|
|
347
|
-
"
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
],
|
|
351
|
-
"description": "Step mode (into or over).",
|
|
352
|
-
"enum": [
|
|
353
|
-
"into",
|
|
354
|
-
"over"
|
|
355
|
-
]
|
|
356
|
-
}
|
|
168
|
+
"required": [
|
|
169
|
+
"value"
|
|
170
|
+
],
|
|
171
|
+
"additionalProperties": false
|
|
357
172
|
},
|
|
358
|
-
"
|
|
359
|
-
|
|
173
|
+
"minItems": 1
|
|
174
|
+
},
|
|
175
|
+
"count": {
|
|
176
|
+
"type": [
|
|
177
|
+
"integer",
|
|
178
|
+
"null"
|
|
360
179
|
],
|
|
361
|
-
"
|
|
180
|
+
"description": "Number of instructions to step.",
|
|
181
|
+
"minimum": 1,
|
|
182
|
+
"default": 1
|
|
362
183
|
},
|
|
363
|
-
{
|
|
364
|
-
"type":
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
"op": {
|
|
368
|
-
"const": "step_return"
|
|
369
|
-
}
|
|
370
|
-
},
|
|
371
|
-
"required": [
|
|
372
|
-
"op"
|
|
184
|
+
"mode": {
|
|
185
|
+
"type": [
|
|
186
|
+
"string",
|
|
187
|
+
"null"
|
|
373
188
|
],
|
|
374
|
-
"
|
|
189
|
+
"description": "Step mode (into or over).",
|
|
190
|
+
"enum": [
|
|
191
|
+
"into",
|
|
192
|
+
"over"
|
|
193
|
+
]
|
|
375
194
|
}
|
|
195
|
+
},
|
|
196
|
+
"required": [
|
|
197
|
+
"op"
|
|
376
198
|
],
|
|
377
|
-
"
|
|
378
|
-
|
|
379
|
-
}
|
|
199
|
+
"description": "Available debugger operations.\n\nOperations:\n- list_checkpoints: List all active VICE checkpoints (breakpoints).\n- get_checkpoint: Fetch a single checkpoint by id.\n- create_checkpoint: Create a new checkpoint (breakpoint) in VICE.\n- delete_checkpoint: Remove a checkpoint by id.\n- toggle_checkpoint: Enable or disable a checkpoint by id.\n- set_condition: Attach a conditional expression to a checkpoint.\n- list_registers: List available registers (metadata).\n- get_registers: Read register values, optionally filtered by name or id.\n- set_registers: Write register values.\n- step: Single-step CPU execution.\n- step_return: Continue execution until the current routine returns.",
|
|
200
|
+
"additionalProperties": false
|
|
380
201
|
}
|