c64bridge 0.9.0 → 0.9.1
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/README.md +158 -164
- package/data/vice/vice-binary-monitor-spec.md +21 -4
- package/dist/.tsbuildinfo +1 -1
- package/dist/c64Client.js +76 -2
- package/dist/device.js +43 -3
- package/dist/rag/indexer.js +18 -8
- package/dist/sidwaveCompiler.js +1 -1
- package/dist/{assemblyConverter.js → tools/assember.js} +10 -1
- package/dist/{basicConverter.js → tools/basicTokenizer.js} +1 -1
- package/dist/tools/debug.js +158 -5
- package/dist/tools/disassembler.js +478 -0
- package/dist/tools/input.js +338 -0
- package/dist/tools/memory.js +317 -1
- package/dist/tools/programRunners.js +45 -6
- package/dist/tools/registry/batch.js +167 -0
- package/dist/tools/registry/graphics.js +101 -1
- package/dist/tools/registry/index.js +4 -0
- package/dist/tools/registry/input.js +2 -0
- package/dist/tools/registry/memory.js +61 -1
- package/dist/tools/schema.js +4 -5
- package/dist/tools/symbolRegistry.js +49 -0
- package/dist/tools/types.js +19 -4
- package/dist/vice/process.js +43 -2
- package/dist/vice/viceClient.js +5 -1
- package/mcp/schemas/c64_batch.schema.json +53 -0
- package/mcp/schemas/c64_config.schema.json +461 -2
- package/mcp/schemas/c64_debug.schema.json +641 -3
- package/mcp/schemas/c64_disk.schema.json +340 -2
- package/mcp/schemas/c64_drive.schema.json +157 -2
- package/mcp/schemas/c64_extract.schema.json +359 -2
- package/mcp/schemas/c64_graphics.schema.json +415 -3
- package/mcp/schemas/c64_input.schema.json +136 -0
- package/mcp/schemas/c64_memory.schema.json +562 -3
- package/mcp/schemas/c64_printer.schema.json +253 -2
- package/mcp/schemas/c64_program.schema.json +499 -2
- package/mcp/schemas/c64_rag.schema.json +82 -2
- package/mcp/schemas/c64_select_backend.schema.json +35 -2
- package/mcp/schemas/c64_sound.schema.json +793 -2
- package/mcp/schemas/c64_stream.schema.json +73 -2
- package/mcp/schemas/c64_system.schema.json +301 -2
- package/mcp/schemas/c64_vice.schema.json +71 -2
- package/mcp/server.json +1 -1
- package/mcp/tools.json +6718 -1257
- package/mcp.json +1 -1
- package/package.json +1 -1
- package/scripts/run-coverage.mjs +7 -0
- package/scripts/run-tests.ts +2 -0
- package/scripts/update-readme.ts +79 -2
- package/server.json +2 -2
|
@@ -27,6 +27,77 @@
|
|
|
27
27
|
"required": [
|
|
28
28
|
"op"
|
|
29
29
|
],
|
|
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
|
|
30
|
+
"description": "Streaming operations available via the c64_stream tool.\n\nOperations:\n- start: Start an Ultimate streaming session toward a host:port target. Required inputs: stream, target.\n- stop: Stop an active Ultimate streaming session. Required inputs: stream.",
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"x-c64bridge-operations": [
|
|
33
|
+
{
|
|
34
|
+
"op": "start",
|
|
35
|
+
"description": "Start an Ultimate streaming session toward a host:port target.",
|
|
36
|
+
"required": [
|
|
37
|
+
"stream",
|
|
38
|
+
"target"
|
|
39
|
+
],
|
|
40
|
+
"optional": [],
|
|
41
|
+
"inputSchema": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"description": "Start an Ultimate streaming session toward a host:port target.",
|
|
44
|
+
"properties": {
|
|
45
|
+
"stream": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "Stream type to control (video/audio/debug).",
|
|
48
|
+
"enum": [
|
|
49
|
+
"video",
|
|
50
|
+
"audio",
|
|
51
|
+
"debug"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"target": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "Destination host:port or UDP target understood by the firmware.",
|
|
57
|
+
"minLength": 3
|
|
58
|
+
},
|
|
59
|
+
"op": {
|
|
60
|
+
"const": "start"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"required": [
|
|
64
|
+
"stream",
|
|
65
|
+
"target",
|
|
66
|
+
"op"
|
|
67
|
+
],
|
|
68
|
+
"additionalProperties": false
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"op": "stop",
|
|
73
|
+
"description": "Stop an active Ultimate streaming session.",
|
|
74
|
+
"required": [
|
|
75
|
+
"stream"
|
|
76
|
+
],
|
|
77
|
+
"optional": [],
|
|
78
|
+
"inputSchema": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"description": "Stop an active Ultimate streaming session.",
|
|
81
|
+
"properties": {
|
|
82
|
+
"stream": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"description": "Stream type to control (video/audio/debug).",
|
|
85
|
+
"enum": [
|
|
86
|
+
"video",
|
|
87
|
+
"audio",
|
|
88
|
+
"debug"
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"op": {
|
|
92
|
+
"const": "stop"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"required": [
|
|
96
|
+
"stream",
|
|
97
|
+
"op"
|
|
98
|
+
],
|
|
99
|
+
"additionalProperties": false
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
]
|
|
32
103
|
}
|
|
@@ -89,6 +89,305 @@
|
|
|
89
89
|
"required": [
|
|
90
90
|
"op"
|
|
91
91
|
],
|
|
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
|
|
92
|
+
"description": "System operations available via the c64_system tool.\n\nOperations:\n- pause: Pause the machine until resumed. Required inputs: none.\n- resume: Resume CPU execution after a pause. Required inputs: none.\n- reset: Issue a soft reset without cutting power. Required inputs: none.\n- reboot: Trigger a firmware reboot to recover from faults. Required inputs: none.\n- poweroff: Request a controlled shutdown via the Ultimate firmware. Required inputs: none.\n- menu: Toggle the Ultimate menu button for navigation. Required inputs: none.\n- start_task: Start a named background task that runs on an interval. Required inputs: name, operation. Optional inputs: arguments, intervalMs, maxIterations.\n- stop_task: Stop a specific background task and clear its timer. Required inputs: name.\n- stop_all_tasks: Stop every running background task and persist state. Required inputs: none.\n- list_tasks: List known background tasks with status metadata. Required inputs: none.\n- performance_report: Summarize diagnostics spans and tool latencies from the current or latest MCP session. Required inputs: none. Optional inputs: scope, includeTimeline, maxEntries.",
|
|
93
|
+
"additionalProperties": false,
|
|
94
|
+
"x-c64bridge-operations": [
|
|
95
|
+
{
|
|
96
|
+
"op": "pause",
|
|
97
|
+
"description": "Pause the machine until resumed.",
|
|
98
|
+
"required": [],
|
|
99
|
+
"optional": [],
|
|
100
|
+
"inputSchema": {
|
|
101
|
+
"type": "object",
|
|
102
|
+
"description": "Pause the machine until resumed.",
|
|
103
|
+
"properties": {
|
|
104
|
+
"op": {
|
|
105
|
+
"const": "pause"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"additionalProperties": false,
|
|
109
|
+
"required": [
|
|
110
|
+
"op"
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"op": "resume",
|
|
116
|
+
"description": "Resume CPU execution after a pause.",
|
|
117
|
+
"required": [],
|
|
118
|
+
"optional": [],
|
|
119
|
+
"inputSchema": {
|
|
120
|
+
"type": "object",
|
|
121
|
+
"description": "Resume CPU execution after a pause.",
|
|
122
|
+
"properties": {
|
|
123
|
+
"op": {
|
|
124
|
+
"const": "resume"
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"additionalProperties": false,
|
|
128
|
+
"required": [
|
|
129
|
+
"op"
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"op": "reset",
|
|
135
|
+
"description": "Issue a soft reset without cutting power.",
|
|
136
|
+
"required": [],
|
|
137
|
+
"optional": [],
|
|
138
|
+
"inputSchema": {
|
|
139
|
+
"type": "object",
|
|
140
|
+
"description": "Issue a soft reset without cutting power.",
|
|
141
|
+
"properties": {
|
|
142
|
+
"op": {
|
|
143
|
+
"const": "reset"
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"additionalProperties": false,
|
|
147
|
+
"required": [
|
|
148
|
+
"op"
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"op": "reboot",
|
|
154
|
+
"description": "Trigger a firmware reboot to recover from faults.",
|
|
155
|
+
"required": [],
|
|
156
|
+
"optional": [],
|
|
157
|
+
"inputSchema": {
|
|
158
|
+
"type": "object",
|
|
159
|
+
"description": "Trigger a firmware reboot to recover from faults.",
|
|
160
|
+
"properties": {
|
|
161
|
+
"op": {
|
|
162
|
+
"const": "reboot"
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"additionalProperties": false,
|
|
166
|
+
"required": [
|
|
167
|
+
"op"
|
|
168
|
+
]
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"op": "poweroff",
|
|
173
|
+
"description": "Request a controlled shutdown via the Ultimate firmware.",
|
|
174
|
+
"required": [],
|
|
175
|
+
"optional": [],
|
|
176
|
+
"inputSchema": {
|
|
177
|
+
"type": "object",
|
|
178
|
+
"description": "Request a controlled shutdown via the Ultimate firmware.",
|
|
179
|
+
"properties": {
|
|
180
|
+
"op": {
|
|
181
|
+
"const": "poweroff"
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"additionalProperties": false,
|
|
185
|
+
"required": [
|
|
186
|
+
"op"
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"op": "menu",
|
|
192
|
+
"description": "Toggle the Ultimate menu button for navigation.",
|
|
193
|
+
"required": [],
|
|
194
|
+
"optional": [],
|
|
195
|
+
"inputSchema": {
|
|
196
|
+
"type": "object",
|
|
197
|
+
"description": "Toggle the Ultimate menu button for navigation.",
|
|
198
|
+
"properties": {
|
|
199
|
+
"op": {
|
|
200
|
+
"const": "menu"
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"additionalProperties": false,
|
|
204
|
+
"required": [
|
|
205
|
+
"op"
|
|
206
|
+
]
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"op": "start_task",
|
|
211
|
+
"description": "Start a named background task that runs on an interval.",
|
|
212
|
+
"required": [
|
|
213
|
+
"name",
|
|
214
|
+
"operation"
|
|
215
|
+
],
|
|
216
|
+
"optional": [
|
|
217
|
+
"arguments",
|
|
218
|
+
"intervalMs",
|
|
219
|
+
"maxIterations"
|
|
220
|
+
],
|
|
221
|
+
"inputSchema": {
|
|
222
|
+
"type": "object",
|
|
223
|
+
"description": "Start a named background task that runs on an interval.",
|
|
224
|
+
"properties": {
|
|
225
|
+
"name": {
|
|
226
|
+
"type": "string",
|
|
227
|
+
"description": "Unique task name",
|
|
228
|
+
"minLength": 1
|
|
229
|
+
},
|
|
230
|
+
"operation": {
|
|
231
|
+
"type": "string",
|
|
232
|
+
"description": "Operation name (e.g., read, read_screen)",
|
|
233
|
+
"minLength": 1
|
|
234
|
+
},
|
|
235
|
+
"arguments": {
|
|
236
|
+
"type": [
|
|
237
|
+
"object",
|
|
238
|
+
"null"
|
|
239
|
+
],
|
|
240
|
+
"description": "Operation-specific arguments",
|
|
241
|
+
"properties": {},
|
|
242
|
+
"additionalProperties": true,
|
|
243
|
+
"default": {}
|
|
244
|
+
},
|
|
245
|
+
"intervalMs": {
|
|
246
|
+
"type": [
|
|
247
|
+
"integer",
|
|
248
|
+
"null"
|
|
249
|
+
],
|
|
250
|
+
"description": "Interval milliseconds",
|
|
251
|
+
"minimum": 1,
|
|
252
|
+
"default": 1000
|
|
253
|
+
},
|
|
254
|
+
"maxIterations": {
|
|
255
|
+
"type": [
|
|
256
|
+
"integer",
|
|
257
|
+
"null"
|
|
258
|
+
],
|
|
259
|
+
"description": "Maximum number of iterations (omit for indefinite)",
|
|
260
|
+
"minimum": 1
|
|
261
|
+
},
|
|
262
|
+
"op": {
|
|
263
|
+
"const": "start_task"
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
"required": [
|
|
267
|
+
"name",
|
|
268
|
+
"operation",
|
|
269
|
+
"op"
|
|
270
|
+
],
|
|
271
|
+
"additionalProperties": false
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"op": "stop_task",
|
|
276
|
+
"description": "Stop a specific background task and clear its timer.",
|
|
277
|
+
"required": [
|
|
278
|
+
"name"
|
|
279
|
+
],
|
|
280
|
+
"optional": [],
|
|
281
|
+
"inputSchema": {
|
|
282
|
+
"type": "object",
|
|
283
|
+
"description": "Stop a specific background task and clear its timer.",
|
|
284
|
+
"properties": {
|
|
285
|
+
"name": {
|
|
286
|
+
"type": "string",
|
|
287
|
+
"description": "Task name",
|
|
288
|
+
"minLength": 1
|
|
289
|
+
},
|
|
290
|
+
"op": {
|
|
291
|
+
"const": "stop_task"
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
"required": [
|
|
295
|
+
"name",
|
|
296
|
+
"op"
|
|
297
|
+
],
|
|
298
|
+
"additionalProperties": false
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"op": "stop_all_tasks",
|
|
303
|
+
"description": "Stop every running background task and persist state.",
|
|
304
|
+
"required": [],
|
|
305
|
+
"optional": [],
|
|
306
|
+
"inputSchema": {
|
|
307
|
+
"type": "object",
|
|
308
|
+
"description": "Stop every running background task and persist state.",
|
|
309
|
+
"properties": {
|
|
310
|
+
"op": {
|
|
311
|
+
"const": "stop_all_tasks"
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
"additionalProperties": false,
|
|
315
|
+
"required": [
|
|
316
|
+
"op"
|
|
317
|
+
]
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"op": "list_tasks",
|
|
322
|
+
"description": "List known background tasks with status metadata.",
|
|
323
|
+
"required": [],
|
|
324
|
+
"optional": [],
|
|
325
|
+
"inputSchema": {
|
|
326
|
+
"type": "object",
|
|
327
|
+
"description": "List known background tasks with status metadata.",
|
|
328
|
+
"properties": {
|
|
329
|
+
"op": {
|
|
330
|
+
"const": "list_tasks"
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
"additionalProperties": false,
|
|
334
|
+
"required": [
|
|
335
|
+
"op"
|
|
336
|
+
]
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"op": "performance_report",
|
|
341
|
+
"description": "Summarize diagnostics spans and tool latencies from the current or latest MCP session.",
|
|
342
|
+
"required": [],
|
|
343
|
+
"optional": [
|
|
344
|
+
"scope",
|
|
345
|
+
"includeTimeline",
|
|
346
|
+
"maxEntries"
|
|
347
|
+
],
|
|
348
|
+
"inputSchema": {
|
|
349
|
+
"type": "object",
|
|
350
|
+
"description": "Summarize diagnostics spans and tool latencies from the current or latest MCP session.",
|
|
351
|
+
"properties": {
|
|
352
|
+
"scope": {
|
|
353
|
+
"type": [
|
|
354
|
+
"string",
|
|
355
|
+
"null"
|
|
356
|
+
],
|
|
357
|
+
"description": "Which diagnostics session to summarize.",
|
|
358
|
+
"enum": [
|
|
359
|
+
"current",
|
|
360
|
+
"latest"
|
|
361
|
+
],
|
|
362
|
+
"default": "current"
|
|
363
|
+
},
|
|
364
|
+
"includeTimeline": {
|
|
365
|
+
"type": [
|
|
366
|
+
"boolean",
|
|
367
|
+
"null"
|
|
368
|
+
],
|
|
369
|
+
"description": "Include the tail of the event timeline.",
|
|
370
|
+
"default": true
|
|
371
|
+
},
|
|
372
|
+
"maxEntries": {
|
|
373
|
+
"type": [
|
|
374
|
+
"integer",
|
|
375
|
+
"null"
|
|
376
|
+
],
|
|
377
|
+
"description": "Maximum number of span and timeline entries to return.",
|
|
378
|
+
"minimum": 1,
|
|
379
|
+
"maximum": 200,
|
|
380
|
+
"default": 25
|
|
381
|
+
},
|
|
382
|
+
"op": {
|
|
383
|
+
"const": "performance_report"
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"additionalProperties": false,
|
|
387
|
+
"required": [
|
|
388
|
+
"op"
|
|
389
|
+
]
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
]
|
|
94
393
|
}
|
|
@@ -27,6 +27,75 @@
|
|
|
27
27
|
"required": [
|
|
28
28
|
"op"
|
|
29
29
|
],
|
|
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
|
|
30
|
+
"description": "VICE emulator operations available via the c64_vice tool.\n\nOperations:\n- resource_get: Read a VICE configuration resource (safe prefixes only). Required inputs: name.\n- resource_set: Write a VICE configuration resource (safe prefixes only). Required inputs: name, value.",
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"x-c64bridge-operations": [
|
|
33
|
+
{
|
|
34
|
+
"op": "resource_get",
|
|
35
|
+
"description": "Read a VICE configuration resource (safe prefixes only).",
|
|
36
|
+
"required": [
|
|
37
|
+
"name"
|
|
38
|
+
],
|
|
39
|
+
"optional": [],
|
|
40
|
+
"inputSchema": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"description": "Read a VICE configuration resource (safe prefixes only).",
|
|
43
|
+
"properties": {
|
|
44
|
+
"op": {
|
|
45
|
+
"const": "resource_get"
|
|
46
|
+
},
|
|
47
|
+
"name": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"description": "VICE resource name (example: SidEngine, C64Model).",
|
|
50
|
+
"minLength": 1,
|
|
51
|
+
"maxLength": 64,
|
|
52
|
+
"pattern": "^[A-Z][A-Za-z0-9_.-]{0,63}$"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"required": [
|
|
56
|
+
"op",
|
|
57
|
+
"name"
|
|
58
|
+
],
|
|
59
|
+
"additionalProperties": false
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"op": "resource_set",
|
|
64
|
+
"description": "Write a VICE configuration resource (safe prefixes only).",
|
|
65
|
+
"required": [
|
|
66
|
+
"name",
|
|
67
|
+
"value"
|
|
68
|
+
],
|
|
69
|
+
"optional": [],
|
|
70
|
+
"inputSchema": {
|
|
71
|
+
"type": "object",
|
|
72
|
+
"description": "Write a VICE configuration resource (safe prefixes only).",
|
|
73
|
+
"properties": {
|
|
74
|
+
"op": {
|
|
75
|
+
"const": "resource_set"
|
|
76
|
+
},
|
|
77
|
+
"name": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"description": "VICE resource name (example: SidEngine, C64Model).",
|
|
80
|
+
"minLength": 1,
|
|
81
|
+
"maxLength": 64,
|
|
82
|
+
"pattern": "^[A-Z][A-Za-z0-9_.-]{0,63}$"
|
|
83
|
+
},
|
|
84
|
+
"value": {
|
|
85
|
+
"type": [
|
|
86
|
+
"string",
|
|
87
|
+
"integer"
|
|
88
|
+
],
|
|
89
|
+
"description": "VICE resource value (string or integer)."
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"required": [
|
|
93
|
+
"op",
|
|
94
|
+
"name",
|
|
95
|
+
"value"
|
|
96
|
+
],
|
|
97
|
+
"additionalProperties": false
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
]
|
|
32
101
|
}
|