c64bridge 1.0.6 → 1.1.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/skills/assembly-program/SKILL.md +37 -0
- package/.github/skills/basic-program/SKILL.md +40 -0
- package/.github/skills/cross-platform-demo/SKILL.md +32 -0
- package/.github/skills/drive-manager/SKILL.md +33 -0
- package/.github/skills/graphics-demo/SKILL.md +30 -0
- package/.github/skills/hello-world/SKILL.md +36 -0
- package/.github/skills/memory-debug/SKILL.md +32 -0
- package/.github/skills/pr-converge/SKILL.md +33 -0
- package/.github/skills/printer-job/SKILL.md +30 -0
- package/.github/skills/sid-music/SKILL.md +35 -0
- package/.github/skills/software-launch/SKILL.md +31 -0
- package/.github/skills/stream-control/SKILL.md +29 -0
- package/.github/skills/system-control/SKILL.md +32 -0
- package/AGENTS.md +28 -7
- package/README.md +70 -15
- package/data/assembly/assembly-spec.md +2 -0
- package/dist/c64Client.js +238 -60
- package/dist/chargen.js +0 -4
- package/dist/config.js +53 -28
- package/dist/device.js +92 -37
- package/dist/diagnostics.js +66 -5
- package/dist/hostPaths.js +128 -0
- package/dist/logger.js +3 -2
- package/dist/loggingHttpClient.js +71 -2
- package/dist/mcp-server.js +416 -291
- package/dist/numericArg.js +55 -0
- package/dist/petscii.js +13 -6
- package/dist/platform.js +12 -3
- package/dist/prompts/registry.js +6 -1
- package/dist/redact.js +166 -0
- package/dist/tools/access.js +66 -0
- package/dist/tools/debug.js +6 -0
- package/dist/tools/developer.js +77 -36
- package/dist/tools/errors.js +54 -3
- package/dist/tools/input.js +25 -8
- package/dist/tools/machineControl.js +113 -21
- package/dist/tools/memory.js +135 -30
- package/dist/tools/meta/artifacts.js +5 -5
- package/dist/tools/meta/background.js +216 -54
- package/dist/tools/meta/compilation.js +6 -5
- package/dist/tools/meta/config.js +20 -10
- package/dist/tools/meta/configInventory.js +25 -2
- package/dist/tools/meta/diagnostics.js +2 -1
- package/dist/tools/meta/filesystem.js +16 -14
- package/dist/tools/meta/graphics.js +48 -20
- package/dist/tools/meta/memory.js +45 -19
- package/dist/tools/meta/program.js +10 -7
- package/dist/tools/meta/screen.js +116 -25
- package/dist/tools/pauseGuard.js +23 -0
- package/dist/tools/pollValidator.js +53 -8
- package/dist/tools/programRunners.js +62 -18
- package/dist/tools/registry/batch.js +17 -11
- package/dist/tools/registry/config.js +9 -2
- package/dist/tools/registry/disk.js +12 -2
- package/dist/tools/registry/drive.js +3 -0
- package/dist/tools/registry/extract.js +3 -0
- package/dist/tools/registry/graphics.js +59 -6
- package/dist/tools/registry/index.js +17 -1
- package/dist/tools/registry/memory.js +11 -1
- package/dist/tools/registry/platform.js +4 -1
- package/dist/tools/registry/printer.js +2 -1
- package/dist/tools/registry/program.js +5 -1
- package/dist/tools/registry/rag.js +1 -0
- package/dist/tools/registry/sound.js +12 -1
- package/dist/tools/registry/stream.js +2 -1
- package/dist/tools/registry/system.js +8 -1
- package/dist/tools/schema.js +7 -7
- package/dist/tools/streaming.js +34 -4
- package/dist/tools/translation/assembler.js +247 -24
- package/dist/tools/translation/basicDetokenizer.js +80 -0
- package/dist/tools/translation/basicTokenizer.js +8 -3
- package/dist/tools/translation/disassembler.js +14 -0
- package/dist/tools/types.js +258 -7
- package/dist/tools/vice.js +5 -16
- package/dist/vicBitmap.js +1 -1
- package/dist/vice/mockServer.js +3 -0
- package/dist/vice/process.js +19 -0
- package/dist/vice/resourcePolicy.js +36 -0
- package/dist/vice/viceClient.js +22 -5
- package/doc/vice/support-matrix.md +17 -11
- package/mcp/schemas/c64_batch.schema.json +2 -1
- package/mcp/schemas/c64_config.schema.json +33 -466
- package/mcp/schemas/c64_debug.schema.json +3 -602
- package/mcp/schemas/c64_disk.schema.json +17 -344
- package/mcp/schemas/c64_drive.schema.json +2 -157
- package/mcp/schemas/c64_extract.schema.json +10 -364
- package/mcp/schemas/c64_graphics.schema.json +19 -426
- package/mcp/schemas/c64_input.schema.json +5 -318
- package/mcp/schemas/c64_memory.schema.json +23 -491
- package/mcp/schemas/c64_printer.schema.json +3 -258
- package/mcp/schemas/c64_program.schema.json +16 -491
- package/mcp/schemas/c64_rag.schema.json +1 -81
- package/mcp/schemas/c64_select_backend.schema.json +2 -36
- package/mcp/schemas/c64_sound.schema.json +20 -822
- package/mcp/schemas/c64_stream.schema.json +4 -75
- package/mcp/schemas/c64_system.schema.json +28 -348
- package/mcp/schemas/c64_vice.schema.json +2 -71
- package/mcp/server.json +1 -1
- package/mcp/tools.json +1990 -6900
- package/mcp.json +21 -1
- package/package.json +19 -8
- package/scripts/mockC64Server.mjs +44 -0
- package/scripts/run-coverage.mjs +27 -1
- package/scripts/smoke-run.sh +3 -2
- package/scripts/start.mjs +23 -1
- package/server.json +53 -3
- package/dist/.tsbuildinfo +0 -1
- package/doc/agent-state-spec.md +0 -243
- package/doc/plans/bun/baseline-metrics.md +0 -16
- package/doc/plans/bun/migration-checklist.md +0 -55
- package/doc/plans/bun/migration.md +0 -83
- package/doc/plans/improve-knowledge/notes.md +0 -43
- package/doc/plans/improve-knowledge/plan.md +0 -121
- package/doc/plans/improve-knowledge/rollout.md +0 -110
- package/doc/plans/meta-tools/README.md +0 -110
- package/doc/plans/meta-tools/analysis.md +0 -272
- package/doc/plans/meta-tools/catalog.md +0 -435
- package/doc/plans/meta-tools/notes.md +0 -192
- package/doc/plans/meta-tools/rollout.md +0 -368
- package/doc/plans/prompts/README.md +0 -96
- package/doc/plans/prompts/user-prompt-ideas.md +0 -147
- package/doc/plans/tool-consolidation/notes.md +0 -28
- package/doc/plans/tool-consolidation/plan.md +0 -169
- package/doc/plans/tool-consolidation/rollout.md +0 -104
- package/doc/plans/vice-backend-switch/plan.md +0 -486
- package/doc/plans/vice-backend-switch-2/plan.md +0 -48
- package/doc/plans/vice-support/notes.md +0 -63
- package/doc/plans/vice-support/plan.md +0 -88
- package/doc/plans/vice-support/rollout.md +0 -99
- package/doc/reviews/audit.md +0 -143
- package/doc/reviews/hardening/01-fable/prompt-handover.md +0 -125
- package/doc/reviews/hardening/01-fable/prompt.md +0 -98
- package/doc/reviews/hardening/01-fable/review-prompt.md +0 -468
- package/doc/reviews/hardening/01-fable/review.md +0 -1234
- package/doc/reviews/vice-support-review.md +0 -185
- package/scripts/compare-rest/rest-compare-2025-11-01T00-25-21-830Z.json +0 -2513
|
@@ -20,84 +20,13 @@
|
|
|
20
20
|
},
|
|
21
21
|
"target": {
|
|
22
22
|
"type": "string",
|
|
23
|
-
"description": "Destination
|
|
24
|
-
"minLength":
|
|
23
|
+
"description": "Destination of the UDP stream: IPv4 address or hostname with an optional :port (1-65535), e.g. 192.168.1.10, 192.168.1.10:11000 or pc.local:11000. The device sends the stream unencrypted over UDP to this address.",
|
|
24
|
+
"minLength": 1
|
|
25
25
|
}
|
|
26
26
|
},
|
|
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
|
|
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
|
-
]
|
|
30
|
+
"description": "Streaming operations available via the c64_stream tool.\n\nOperations:\n- start [write]: Start an Ultimate streaming session. The device sends an unencrypted UDP stream to the target (IPv4 address or hostname, optional :port). Required inputs: stream, target.\n- stop [write]: Stop an active Ultimate streaming session. Required inputs: stream.",
|
|
31
|
+
"additionalProperties": false
|
|
103
32
|
}
|
|
@@ -20,15 +20,32 @@
|
|
|
20
20
|
],
|
|
21
21
|
"description": "Selects the operation."
|
|
22
22
|
},
|
|
23
|
+
"waitForReady": {
|
|
24
|
+
"type": [
|
|
25
|
+
"boolean",
|
|
26
|
+
"null"
|
|
27
|
+
],
|
|
28
|
+
"description": "Wait until the BASIC READY. prompt is visible before returning. A timeout is reported as ready=false, not as an error.",
|
|
29
|
+
"default": false
|
|
30
|
+
},
|
|
31
|
+
"readyTimeoutMs": {
|
|
32
|
+
"type": [
|
|
33
|
+
"integer",
|
|
34
|
+
"null"
|
|
35
|
+
],
|
|
36
|
+
"description": "Maximum time to wait for READY. when waitForReady is true (1-120000 ms).",
|
|
37
|
+
"minimum": 1,
|
|
38
|
+
"maximum": 120000,
|
|
39
|
+
"default": 15000
|
|
40
|
+
},
|
|
23
41
|
"name": {
|
|
24
42
|
"type": "string",
|
|
25
|
-
"description": "Unique task name (letters, digits, spaces, '_', '-', '.'; must not start with '.' or a space).",
|
|
26
|
-
"minLength": 1
|
|
27
|
-
"pattern": "^[A-Za-z0-9_][A-Za-z0-9_. -]*$"
|
|
43
|
+
"description": "Unique task name (letters, digits, spaces, '_', '-', '.'; must not start with '.' or a space). Limits depend on op.",
|
|
44
|
+
"minLength": 1
|
|
28
45
|
},
|
|
29
46
|
"operation": {
|
|
30
47
|
"type": "string",
|
|
31
|
-
"description": "Operation name
|
|
48
|
+
"description": "Operation name: read, write, read_screen or menu_button (read_memory and write_memory are aliases). write requires arguments.address and arguments.bytes.",
|
|
32
49
|
"minLength": 1
|
|
33
50
|
},
|
|
34
51
|
"arguments": {
|
|
@@ -46,8 +63,8 @@
|
|
|
46
63
|
"integer",
|
|
47
64
|
"null"
|
|
48
65
|
],
|
|
49
|
-
"description": "Interval milliseconds",
|
|
50
|
-
"minimum":
|
|
66
|
+
"description": "Interval milliseconds (minimum 100)",
|
|
67
|
+
"minimum": 100,
|
|
51
68
|
"default": 1000
|
|
52
69
|
},
|
|
53
70
|
"maxIterations": {
|
|
@@ -55,8 +72,9 @@
|
|
|
55
72
|
"integer",
|
|
56
73
|
"null"
|
|
57
74
|
],
|
|
58
|
-
"description": "Maximum number of iterations (omit for indefinite)",
|
|
59
|
-
"minimum": 1
|
|
75
|
+
"description": "Maximum number of iterations (1 to 100000; omit for indefinite)",
|
|
76
|
+
"minimum": 1,
|
|
77
|
+
"maximum": 100000
|
|
60
78
|
},
|
|
61
79
|
"scope": {
|
|
62
80
|
"type": [
|
|
@@ -92,344 +110,6 @@
|
|
|
92
110
|
"required": [
|
|
93
111
|
"op"
|
|
94
112
|
],
|
|
95
|
-
"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: Shut down C64U/U64 or quit VICE. U2-family hardware cannot power off. Required inputs: none.\n- power_cycle: Return the active backend to a fresh state. C64U/U64 Tool Menu verification requires machine:menu_screen (a C64U firmware version that provides it, or U64 3.15+); U2-family reboots through REST. Required inputs: none.\n- menu: Toggle the Ultimate menu button for navigation. Required inputs: none.\n- read_menu_screen: Read the active Ultimate menu's raw character and colour matrix through machine:menu_screen (a C64U firmware version that provides it, or U64/U2 3.15+). 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.",
|
|
96
|
-
"additionalProperties": false
|
|
97
|
-
"x-c64bridge-operations": [
|
|
98
|
-
{
|
|
99
|
-
"op": "pause",
|
|
100
|
-
"description": "Pause the machine until resumed.",
|
|
101
|
-
"required": [],
|
|
102
|
-
"optional": [],
|
|
103
|
-
"inputSchema": {
|
|
104
|
-
"type": "object",
|
|
105
|
-
"description": "Pause the machine until resumed.",
|
|
106
|
-
"properties": {
|
|
107
|
-
"op": {
|
|
108
|
-
"const": "pause"
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
"additionalProperties": false,
|
|
112
|
-
"required": [
|
|
113
|
-
"op"
|
|
114
|
-
]
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"op": "resume",
|
|
119
|
-
"description": "Resume CPU execution after a pause.",
|
|
120
|
-
"required": [],
|
|
121
|
-
"optional": [],
|
|
122
|
-
"inputSchema": {
|
|
123
|
-
"type": "object",
|
|
124
|
-
"description": "Resume CPU execution after a pause.",
|
|
125
|
-
"properties": {
|
|
126
|
-
"op": {
|
|
127
|
-
"const": "resume"
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
|
-
"additionalProperties": false,
|
|
131
|
-
"required": [
|
|
132
|
-
"op"
|
|
133
|
-
]
|
|
134
|
-
}
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
"op": "reset",
|
|
138
|
-
"description": "Issue a soft reset without cutting power.",
|
|
139
|
-
"required": [],
|
|
140
|
-
"optional": [],
|
|
141
|
-
"inputSchema": {
|
|
142
|
-
"type": "object",
|
|
143
|
-
"description": "Issue a soft reset without cutting power.",
|
|
144
|
-
"properties": {
|
|
145
|
-
"op": {
|
|
146
|
-
"const": "reset"
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
"additionalProperties": false,
|
|
150
|
-
"required": [
|
|
151
|
-
"op"
|
|
152
|
-
]
|
|
153
|
-
}
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
"op": "reboot",
|
|
157
|
-
"description": "Trigger a firmware reboot to recover from faults.",
|
|
158
|
-
"required": [],
|
|
159
|
-
"optional": [],
|
|
160
|
-
"inputSchema": {
|
|
161
|
-
"type": "object",
|
|
162
|
-
"description": "Trigger a firmware reboot to recover from faults.",
|
|
163
|
-
"properties": {
|
|
164
|
-
"op": {
|
|
165
|
-
"const": "reboot"
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
"additionalProperties": false,
|
|
169
|
-
"required": [
|
|
170
|
-
"op"
|
|
171
|
-
]
|
|
172
|
-
}
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
"op": "poweroff",
|
|
176
|
-
"description": "Shut down C64U/U64 or quit VICE. U2-family hardware cannot power off.",
|
|
177
|
-
"required": [],
|
|
178
|
-
"optional": [],
|
|
179
|
-
"inputSchema": {
|
|
180
|
-
"type": "object",
|
|
181
|
-
"description": "Shut down C64U/U64 or quit VICE. U2-family hardware cannot power off.",
|
|
182
|
-
"properties": {
|
|
183
|
-
"op": {
|
|
184
|
-
"const": "poweroff"
|
|
185
|
-
}
|
|
186
|
-
},
|
|
187
|
-
"additionalProperties": false,
|
|
188
|
-
"required": [
|
|
189
|
-
"op"
|
|
190
|
-
]
|
|
191
|
-
}
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
"op": "power_cycle",
|
|
195
|
-
"description": "Return the active backend to a fresh state. C64U/U64 Tool Menu verification requires machine:menu_screen (a C64U firmware version that provides it, or U64 3.15+); U2-family reboots through REST.",
|
|
196
|
-
"required": [],
|
|
197
|
-
"optional": [],
|
|
198
|
-
"inputSchema": {
|
|
199
|
-
"type": "object",
|
|
200
|
-
"description": "Return the active backend to a fresh state. C64U/U64 Tool Menu verification requires machine:menu_screen (a C64U firmware version that provides it, or U64 3.15+); U2-family reboots through REST.",
|
|
201
|
-
"properties": {
|
|
202
|
-
"op": {
|
|
203
|
-
"const": "power_cycle"
|
|
204
|
-
}
|
|
205
|
-
},
|
|
206
|
-
"additionalProperties": false,
|
|
207
|
-
"required": [
|
|
208
|
-
"op"
|
|
209
|
-
]
|
|
210
|
-
}
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
"op": "menu",
|
|
214
|
-
"description": "Toggle the Ultimate menu button for navigation.",
|
|
215
|
-
"required": [],
|
|
216
|
-
"optional": [],
|
|
217
|
-
"inputSchema": {
|
|
218
|
-
"type": "object",
|
|
219
|
-
"description": "Toggle the Ultimate menu button for navigation.",
|
|
220
|
-
"properties": {
|
|
221
|
-
"op": {
|
|
222
|
-
"const": "menu"
|
|
223
|
-
}
|
|
224
|
-
},
|
|
225
|
-
"additionalProperties": false,
|
|
226
|
-
"required": [
|
|
227
|
-
"op"
|
|
228
|
-
]
|
|
229
|
-
}
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
"op": "read_menu_screen",
|
|
233
|
-
"description": "Read the active Ultimate menu's raw character and colour matrix through machine:menu_screen (a C64U firmware version that provides it, or U64/U2 3.15+).",
|
|
234
|
-
"required": [],
|
|
235
|
-
"optional": [],
|
|
236
|
-
"inputSchema": {
|
|
237
|
-
"type": "object",
|
|
238
|
-
"description": "Read the active Ultimate menu's raw character and colour matrix through machine:menu_screen (a C64U firmware version that provides it, or U64/U2 3.15+).",
|
|
239
|
-
"properties": {
|
|
240
|
-
"op": {
|
|
241
|
-
"const": "read_menu_screen"
|
|
242
|
-
}
|
|
243
|
-
},
|
|
244
|
-
"additionalProperties": false,
|
|
245
|
-
"required": [
|
|
246
|
-
"op"
|
|
247
|
-
]
|
|
248
|
-
}
|
|
249
|
-
},
|
|
250
|
-
{
|
|
251
|
-
"op": "start_task",
|
|
252
|
-
"description": "Start a named background task that runs on an interval.",
|
|
253
|
-
"required": [
|
|
254
|
-
"name",
|
|
255
|
-
"operation"
|
|
256
|
-
],
|
|
257
|
-
"optional": [
|
|
258
|
-
"arguments",
|
|
259
|
-
"intervalMs",
|
|
260
|
-
"maxIterations"
|
|
261
|
-
],
|
|
262
|
-
"inputSchema": {
|
|
263
|
-
"type": "object",
|
|
264
|
-
"description": "Start a named background task that runs on an interval.",
|
|
265
|
-
"properties": {
|
|
266
|
-
"name": {
|
|
267
|
-
"type": "string",
|
|
268
|
-
"description": "Unique task name (letters, digits, spaces, '_', '-', '.'; must not start with '.' or a space).",
|
|
269
|
-
"minLength": 1,
|
|
270
|
-
"pattern": "^[A-Za-z0-9_][A-Za-z0-9_. -]*$"
|
|
271
|
-
},
|
|
272
|
-
"operation": {
|
|
273
|
-
"type": "string",
|
|
274
|
-
"description": "Operation name (e.g., read, read_screen)",
|
|
275
|
-
"minLength": 1
|
|
276
|
-
},
|
|
277
|
-
"arguments": {
|
|
278
|
-
"type": [
|
|
279
|
-
"object",
|
|
280
|
-
"null"
|
|
281
|
-
],
|
|
282
|
-
"description": "Operation-specific arguments",
|
|
283
|
-
"properties": {},
|
|
284
|
-
"additionalProperties": true,
|
|
285
|
-
"default": {}
|
|
286
|
-
},
|
|
287
|
-
"intervalMs": {
|
|
288
|
-
"type": [
|
|
289
|
-
"integer",
|
|
290
|
-
"null"
|
|
291
|
-
],
|
|
292
|
-
"description": "Interval milliseconds",
|
|
293
|
-
"minimum": 1,
|
|
294
|
-
"default": 1000
|
|
295
|
-
},
|
|
296
|
-
"maxIterations": {
|
|
297
|
-
"type": [
|
|
298
|
-
"integer",
|
|
299
|
-
"null"
|
|
300
|
-
],
|
|
301
|
-
"description": "Maximum number of iterations (omit for indefinite)",
|
|
302
|
-
"minimum": 1
|
|
303
|
-
},
|
|
304
|
-
"op": {
|
|
305
|
-
"const": "start_task"
|
|
306
|
-
}
|
|
307
|
-
},
|
|
308
|
-
"required": [
|
|
309
|
-
"name",
|
|
310
|
-
"operation",
|
|
311
|
-
"op"
|
|
312
|
-
],
|
|
313
|
-
"additionalProperties": false
|
|
314
|
-
}
|
|
315
|
-
},
|
|
316
|
-
{
|
|
317
|
-
"op": "stop_task",
|
|
318
|
-
"description": "Stop a specific background task and clear its timer.",
|
|
319
|
-
"required": [
|
|
320
|
-
"name"
|
|
321
|
-
],
|
|
322
|
-
"optional": [],
|
|
323
|
-
"inputSchema": {
|
|
324
|
-
"type": "object",
|
|
325
|
-
"description": "Stop a specific background task and clear its timer.",
|
|
326
|
-
"properties": {
|
|
327
|
-
"name": {
|
|
328
|
-
"type": "string",
|
|
329
|
-
"description": "Task name",
|
|
330
|
-
"minLength": 1
|
|
331
|
-
},
|
|
332
|
-
"op": {
|
|
333
|
-
"const": "stop_task"
|
|
334
|
-
}
|
|
335
|
-
},
|
|
336
|
-
"required": [
|
|
337
|
-
"name",
|
|
338
|
-
"op"
|
|
339
|
-
],
|
|
340
|
-
"additionalProperties": false
|
|
341
|
-
}
|
|
342
|
-
},
|
|
343
|
-
{
|
|
344
|
-
"op": "stop_all_tasks",
|
|
345
|
-
"description": "Stop every running background task and persist state.",
|
|
346
|
-
"required": [],
|
|
347
|
-
"optional": [],
|
|
348
|
-
"inputSchema": {
|
|
349
|
-
"type": "object",
|
|
350
|
-
"description": "Stop every running background task and persist state.",
|
|
351
|
-
"properties": {
|
|
352
|
-
"op": {
|
|
353
|
-
"const": "stop_all_tasks"
|
|
354
|
-
}
|
|
355
|
-
},
|
|
356
|
-
"additionalProperties": false,
|
|
357
|
-
"required": [
|
|
358
|
-
"op"
|
|
359
|
-
]
|
|
360
|
-
}
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
"op": "list_tasks",
|
|
364
|
-
"description": "List known background tasks with status metadata.",
|
|
365
|
-
"required": [],
|
|
366
|
-
"optional": [],
|
|
367
|
-
"inputSchema": {
|
|
368
|
-
"type": "object",
|
|
369
|
-
"description": "List known background tasks with status metadata.",
|
|
370
|
-
"properties": {
|
|
371
|
-
"op": {
|
|
372
|
-
"const": "list_tasks"
|
|
373
|
-
}
|
|
374
|
-
},
|
|
375
|
-
"additionalProperties": false,
|
|
376
|
-
"required": [
|
|
377
|
-
"op"
|
|
378
|
-
]
|
|
379
|
-
}
|
|
380
|
-
},
|
|
381
|
-
{
|
|
382
|
-
"op": "performance_report",
|
|
383
|
-
"description": "Summarize diagnostics spans and tool latencies from the current or latest MCP session.",
|
|
384
|
-
"required": [],
|
|
385
|
-
"optional": [
|
|
386
|
-
"scope",
|
|
387
|
-
"includeTimeline",
|
|
388
|
-
"maxEntries"
|
|
389
|
-
],
|
|
390
|
-
"inputSchema": {
|
|
391
|
-
"type": "object",
|
|
392
|
-
"description": "Summarize diagnostics spans and tool latencies from the current or latest MCP session.",
|
|
393
|
-
"properties": {
|
|
394
|
-
"scope": {
|
|
395
|
-
"type": [
|
|
396
|
-
"string",
|
|
397
|
-
"null"
|
|
398
|
-
],
|
|
399
|
-
"description": "Which diagnostics session to summarize.",
|
|
400
|
-
"enum": [
|
|
401
|
-
"current",
|
|
402
|
-
"latest"
|
|
403
|
-
],
|
|
404
|
-
"default": "current"
|
|
405
|
-
},
|
|
406
|
-
"includeTimeline": {
|
|
407
|
-
"type": [
|
|
408
|
-
"boolean",
|
|
409
|
-
"null"
|
|
410
|
-
],
|
|
411
|
-
"description": "Include the tail of the event timeline.",
|
|
412
|
-
"default": true
|
|
413
|
-
},
|
|
414
|
-
"maxEntries": {
|
|
415
|
-
"type": [
|
|
416
|
-
"integer",
|
|
417
|
-
"null"
|
|
418
|
-
],
|
|
419
|
-
"description": "Maximum number of span and timeline entries to return.",
|
|
420
|
-
"minimum": 1,
|
|
421
|
-
"maximum": 200,
|
|
422
|
-
"default": 25
|
|
423
|
-
},
|
|
424
|
-
"op": {
|
|
425
|
-
"const": "performance_report"
|
|
426
|
-
}
|
|
427
|
-
},
|
|
428
|
-
"additionalProperties": false,
|
|
429
|
-
"required": [
|
|
430
|
-
"op"
|
|
431
|
-
]
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
]
|
|
113
|
+
"description": "System operations available via the c64_system tool.\n\nOperations:\n- pause [c64u, u2] [write]: Pause the machine until resumed. Required inputs: none.\n- resume [c64u, u2] [write]: Resume CPU execution after a pause. Required inputs: none.\n- reset [write]: Issue a soft reset without cutting power. Required inputs: none. Optional inputs: waitForReady, readyTimeoutMs.\n- reboot [destructive]: Trigger a firmware reboot to recover from faults. Required inputs: none. Optional inputs: waitForReady, readyTimeoutMs.\n- poweroff [c64u, vice] [destructive]: Shut down C64U/U64 or quit VICE. U2-family hardware cannot power off. On C64U/U64 the machine cannot be restarted by software afterwards: power must be restored at the outlet, and it starts by itself only if automatic startup on power restoration is enabled. Required inputs: none.\n- power_cycle [destructive]: Return the active backend to a fresh state. C64U/U64 Tool Menu verification requires machine:menu_screen (a C64U firmware version that provides it, or U64 3.15+); U2-family reboots through REST. Required inputs: none. Optional inputs: waitForReady, readyTimeoutMs.\n- menu [c64u, u2] [write]: Toggle the Ultimate menu button for navigation. Required inputs: none.\n- read_menu_screen [c64u, u2]: Read the active Ultimate menu's raw character and colour matrix through machine:menu_screen (a C64U firmware version that provides it, or U64/U2 3.15+). Required inputs: none.\n- start_task [write]: Start a named background task that runs on an interval. Required inputs: name, operation. Optional inputs: arguments, intervalMs, maxIterations.\n- stop_task [write]: Stop a specific background task and clear its timer. Required inputs: name.\n- stop_all_tasks [write]: 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.",
|
|
114
|
+
"additionalProperties": false
|
|
435
115
|
}
|
|
@@ -27,75 +27,6 @@
|
|
|
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). 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, SidModel).",
|
|
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, SidModel).",
|
|
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
|
-
]
|
|
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]: Write a VICE configuration resource (safe prefixes only). Required inputs: name, value.",
|
|
31
|
+
"additionalProperties": false
|
|
101
32
|
}
|