c64bridge 0.7.4 → 0.8.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.
Files changed (109) hide show
  1. package/.github/prompts/README.md +14 -4
  2. package/.github/prompts/assembly-routine-session.prompt.md +9 -9
  3. package/.github/prompts/basic-program-session.prompt.md +11 -9
  4. package/.github/prompts/drive-management-session.prompt.md +9 -9
  5. package/.github/prompts/hello-world-session.prompt.md +17 -0
  6. package/.github/prompts/petscii-art-session.prompt.md +9 -9
  7. package/.github/prompts/play-classic-game.prompt.md +9 -9
  8. package/.github/prompts/pr-converge.prompt.md +13 -0
  9. package/.github/prompts/sid-music-session.prompt.md +9 -9
  10. package/AGENTS.md +59 -60
  11. package/README.md +550 -191
  12. package/data/assembly/assembly-spec.md +290 -1
  13. package/data/context/bootstrap.md +26 -2
  14. package/data/context/fast-paths.md +44 -0
  15. package/data/graphics/petscii-style-guide.md +6 -2
  16. package/data/graphics/sprite-charset-best-practices.md +5 -5
  17. package/dist/.tsbuildinfo +1 -1
  18. package/dist/c64Client.js +990 -26
  19. package/dist/config.js +5 -1
  20. package/dist/device.js +680 -57
  21. package/dist/diagnostics.js +371 -0
  22. package/dist/mcp/metadata.js +39 -0
  23. package/dist/mcp-server.js +170 -20
  24. package/dist/platform.js +10 -2
  25. package/dist/prompts/registry.js +166 -309
  26. package/dist/rag/init.js +37 -1
  27. package/dist/rag/knowledgeIndex.js +18 -6
  28. package/dist/rag/rateLimiter.js +2 -2
  29. package/dist/streamCapture.js +135 -0
  30. package/dist/tools/audio.js +3 -1
  31. package/dist/tools/debug.js +470 -0
  32. package/dist/tools/developer.js +10 -4
  33. package/dist/tools/graphics.js +183 -17
  34. package/dist/tools/machineControl.js +11 -5
  35. package/dist/tools/memory.js +19 -10
  36. package/dist/tools/meta/audio.js +240 -1
  37. package/dist/tools/meta/config.js +20 -28
  38. package/dist/tools/meta/configInventory.js +104 -0
  39. package/dist/tools/meta/diagnostics.js +45 -2
  40. package/dist/tools/meta/graphics.js +14 -6
  41. package/dist/tools/meta/index.js +1 -0
  42. package/dist/tools/meta/memory.js +20 -6
  43. package/dist/tools/meta/program.js +473 -0
  44. package/dist/tools/pollValidator.js +4 -2
  45. package/dist/tools/programRunners.js +8 -4
  46. package/dist/tools/registry/config.js +17 -0
  47. package/dist/tools/registry/disk.js +7 -0
  48. package/dist/tools/registry/drive.js +3 -0
  49. package/dist/tools/registry/graphics.js +111 -27
  50. package/dist/tools/registry/index.js +6 -0
  51. package/dist/tools/registry/memory.js +1 -0
  52. package/dist/tools/registry/platform.js +121 -0
  53. package/dist/tools/registry/program.js +26 -8
  54. package/dist/tools/registry/sound.js +96 -0
  55. package/dist/tools/registry/system.js +15 -2
  56. package/dist/tools/storage.js +1 -0
  57. package/dist/tools/streaming.js +1 -0
  58. package/dist/tools/types.js +38 -4
  59. package/dist/tools/vice.js +160 -0
  60. package/dist/vicBitmap.js +317 -0
  61. package/dist/vice/mockServer.js +439 -0
  62. package/dist/vice/process.js +310 -0
  63. package/dist/vice/readiness.js +18 -2
  64. package/dist/vice/viceClient.js +382 -22
  65. package/doc/developer.md +71 -25
  66. package/doc/img/backend-switch/hello-c64u.png +0 -0
  67. package/doc/img/backend-switch/hello-vice-and-c64u.png +0 -0
  68. package/doc/img/backend-switch/hello-vice.png +0 -0
  69. package/doc/img/backend-switch/metadata.json +50 -0
  70. package/doc/plans/vice-backend-switch/plan.md +486 -0
  71. package/doc/plans/vice-backend-switch-2/plan.md +48 -0
  72. package/doc/plans/vice-support/notes.md +1 -0
  73. package/doc/plans/vice-support/plan.md +5 -0
  74. package/doc/plans/vice-support/rollout.md +23 -17
  75. package/doc/reviews/vice-support-review.md +185 -0
  76. package/doc/troubleshooting-mcp.md +35 -6
  77. package/doc/vice/support-matrix.md +54 -0
  78. package/mcp/prompts.json +292 -0
  79. package/mcp/protocol-examples.json +46 -0
  80. package/mcp/resources.json +940 -0
  81. package/mcp/schemas/c64_config.schema.json +350 -0
  82. package/mcp/schemas/c64_debug.schema.json +380 -0
  83. package/mcp/schemas/c64_disk.schema.json +278 -0
  84. package/mcp/schemas/c64_drive.schema.json +120 -0
  85. package/mcp/schemas/c64_extract.schema.json +302 -0
  86. package/mcp/schemas/c64_graphics.schema.json +333 -0
  87. package/mcp/schemas/c64_memory.schema.json +155 -0
  88. package/mcp/schemas/c64_printer.schema.json +218 -0
  89. package/mcp/schemas/c64_program.schema.json +391 -0
  90. package/mcp/schemas/c64_rag.schema.json +67 -0
  91. package/mcp/schemas/c64_select_backend.schema.json +32 -0
  92. package/mcp/schemas/c64_sound.schema.json +644 -0
  93. package/mcp/schemas/c64_stream.schema.json +61 -0
  94. package/mcp/schemas/c64_system.schema.json +227 -0
  95. package/mcp/schemas/c64_vice.schema.json +63 -0
  96. package/mcp/server.json +15 -0
  97. package/mcp/tools.json +4517 -0
  98. package/mcp.json +90 -15
  99. package/package.json +11 -4
  100. package/scripts/capture-backend-switch-screenshots.mjs +276 -0
  101. package/scripts/generate-mcp-interface.ts +289 -0
  102. package/scripts/invoke-bun.mjs +67 -21
  103. package/scripts/mockC64Server.mjs +162 -6
  104. package/scripts/prepare-release.mjs +59 -2
  105. package/scripts/run-coverage.mjs +284 -0
  106. package/scripts/run-tests.mjs +95 -39
  107. package/scripts/run-tests.ts +378 -73
  108. package/scripts/update-readme.ts +147 -13
  109. package/server.json +94 -0
@@ -0,0 +1,292 @@
1
+ {
2
+ "prompts": [
3
+ {
4
+ "name": "hello-world",
5
+ "title": "Hello World Workflow",
6
+ "description": "Route ultra-fast hello-world and smoke-test requests to the canonical greeting skill.",
7
+ "_meta": {
8
+ "requiredResources": [
9
+ "c64://context/bootstrap",
10
+ "c64://context/fast-paths",
11
+ "c64://docs/index"
12
+ ],
13
+ "optionalResources": [],
14
+ "tools": [
15
+ "c64_program"
16
+ ],
17
+ "tags": [
18
+ "hello",
19
+ "demo",
20
+ "greeting",
21
+ "smoke-test"
22
+ ],
23
+ "argumentOptions": {}
24
+ }
25
+ },
26
+ {
27
+ "name": "basic-program",
28
+ "title": "BASIC Program Workflow",
29
+ "description": "Route bespoke Commodore BASIC v2 requests to the canonical BASIC skill.",
30
+ "_meta": {
31
+ "requiredResources": [
32
+ "c64://specs/basic",
33
+ "c64://context/bootstrap",
34
+ "c64://docs/index"
35
+ ],
36
+ "optionalResources": [
37
+ "c64://context/fast-paths"
38
+ ],
39
+ "tools": [
40
+ "c64_program",
41
+ "c64_memory"
42
+ ],
43
+ "tags": [
44
+ "basic",
45
+ "program"
46
+ ],
47
+ "argumentOptions": {}
48
+ }
49
+ },
50
+ {
51
+ "name": "cross-platform-demo",
52
+ "title": "Cross-Platform Demo Workflow",
53
+ "description": "Route quick visible demo requests to the cross-platform demo skill.",
54
+ "_meta": {
55
+ "requiredResources": [
56
+ "c64://context/bootstrap",
57
+ "c64://context/fast-paths",
58
+ "c64://docs/index"
59
+ ],
60
+ "optionalResources": [],
61
+ "tools": [
62
+ "c64_program"
63
+ ],
64
+ "tags": [
65
+ "demo",
66
+ "platform",
67
+ "greeting"
68
+ ],
69
+ "argumentOptions": {}
70
+ }
71
+ },
72
+ {
73
+ "name": "preset-music-demo",
74
+ "title": "Preset Music Demo Workflow",
75
+ "description": "Route quick recognizable tune requests to the SID music skill.",
76
+ "_meta": {
77
+ "requiredResources": [
78
+ "c64://specs/sid",
79
+ "c64://specs/sidwave",
80
+ "c64://context/fast-paths"
81
+ ],
82
+ "optionalResources": [
83
+ "c64://docs/sid/best-practices"
84
+ ],
85
+ "tools": [
86
+ "c64_sound"
87
+ ],
88
+ "tags": [
89
+ "sid",
90
+ "music",
91
+ "demo"
92
+ ],
93
+ "argumentOptions": {}
94
+ }
95
+ },
96
+ {
97
+ "name": "assembly-program",
98
+ "title": "Assembly Program Workflow",
99
+ "description": "Route 6502/6510 routine requests to the canonical assembly skill.",
100
+ "arguments": [
101
+ {
102
+ "name": "hardware",
103
+ "description": "Optional focus area for the routine (sid, vic, cia, or multi for combined work).",
104
+ "options": [
105
+ "sid",
106
+ "vic",
107
+ "cia",
108
+ "multi"
109
+ ]
110
+ }
111
+ ],
112
+ "_meta": {
113
+ "requiredResources": [
114
+ "c64://specs/assembly",
115
+ "c64://specs/vic",
116
+ "c64://specs/sid",
117
+ "c64://context/bootstrap"
118
+ ],
119
+ "optionalResources": [
120
+ "c64://docs/sid/best-practices"
121
+ ],
122
+ "tools": [
123
+ "c64_program",
124
+ "c64_memory"
125
+ ],
126
+ "tags": [
127
+ "assembly",
128
+ "program"
129
+ ],
130
+ "argumentOptions": {
131
+ "hardware": [
132
+ "sid",
133
+ "vic",
134
+ "cia",
135
+ "multi"
136
+ ]
137
+ }
138
+ }
139
+ },
140
+ {
141
+ "name": "sid-music",
142
+ "title": "SID Composition Workflow",
143
+ "description": "Route SID playback and composition work to the canonical SID skill.",
144
+ "_meta": {
145
+ "requiredResources": [
146
+ "c64://specs/sid",
147
+ "c64://specs/sidwave",
148
+ "c64://docs/sid/file-structure",
149
+ "c64://docs/sid/best-practices"
150
+ ],
151
+ "optionalResources": [
152
+ "c64://context/fast-paths"
153
+ ],
154
+ "tools": [
155
+ "c64_sound"
156
+ ],
157
+ "tags": [
158
+ "sid",
159
+ "music"
160
+ ],
161
+ "argumentOptions": {}
162
+ }
163
+ },
164
+ {
165
+ "name": "graphics-demo",
166
+ "title": "Graphics Demo Workflow",
167
+ "description": "Route graphics requests to the canonical graphics skill.",
168
+ "arguments": [
169
+ {
170
+ "name": "mode",
171
+ "description": "Target VIC-II technique (text, multicolour, bitmap, or sprite).",
172
+ "options": [
173
+ "text",
174
+ "multicolour",
175
+ "bitmap",
176
+ "sprite"
177
+ ]
178
+ }
179
+ ],
180
+ "_meta": {
181
+ "requiredResources": [
182
+ "c64://specs/vic",
183
+ "c64://context/bootstrap"
184
+ ],
185
+ "optionalResources": [
186
+ "c64://specs/assembly",
187
+ "c64://specs/charset",
188
+ "c64://docs/petscii-style"
189
+ ],
190
+ "tools": [
191
+ "c64_program",
192
+ "c64_memory",
193
+ "c64_graphics"
194
+ ],
195
+ "tags": [
196
+ "graphics",
197
+ "vic"
198
+ ],
199
+ "argumentOptions": {
200
+ "mode": [
201
+ "text",
202
+ "multicolour",
203
+ "bitmap",
204
+ "sprite"
205
+ ]
206
+ }
207
+ }
208
+ },
209
+ {
210
+ "name": "printer-job",
211
+ "title": "Printer Job Workflow",
212
+ "description": "Route printer work to the canonical printer skill.",
213
+ "arguments": [
214
+ {
215
+ "name": "printerType",
216
+ "description": "Select Commodore (device 4) or Epson FX workflow helpers.",
217
+ "options": [
218
+ "commodore",
219
+ "epson"
220
+ ]
221
+ }
222
+ ],
223
+ "_meta": {
224
+ "requiredResources": [
225
+ "c64://specs/printer",
226
+ "c64://docs/printer/guide",
227
+ "c64://docs/printer/prompts"
228
+ ],
229
+ "optionalResources": [
230
+ "c64://docs/printer/commodore-text",
231
+ "c64://docs/printer/commodore-bitmap",
232
+ "c64://docs/printer/epson-text",
233
+ "c64://docs/printer/epson-bitmap"
234
+ ],
235
+ "tools": [
236
+ "c64_printer"
237
+ ],
238
+ "tags": [
239
+ "printer"
240
+ ],
241
+ "argumentOptions": {
242
+ "printerType": [
243
+ "commodore",
244
+ "epson"
245
+ ]
246
+ }
247
+ }
248
+ },
249
+ {
250
+ "name": "memory-debug",
251
+ "title": "Memory Debug Workflow",
252
+ "description": "Route reversible memory inspection or patching work to the canonical memory skill.",
253
+ "_meta": {
254
+ "requiredResources": [
255
+ "c64://context/bootstrap",
256
+ "c64://specs/assembly",
257
+ "c64://docs/index"
258
+ ],
259
+ "optionalResources": [],
260
+ "tools": [
261
+ "c64_memory",
262
+ "c64_system"
263
+ ],
264
+ "tags": [
265
+ "memory",
266
+ "debug"
267
+ ],
268
+ "argumentOptions": {}
269
+ }
270
+ },
271
+ {
272
+ "name": "drive-manager",
273
+ "title": "Drive Manager Workflow",
274
+ "description": "Route disk-image and drive-state requests to the canonical drive skill.",
275
+ "_meta": {
276
+ "requiredResources": [
277
+ "c64://context/bootstrap"
278
+ ],
279
+ "optionalResources": [],
280
+ "tools": [
281
+ "c64_disk",
282
+ "c64_drive"
283
+ ],
284
+ "tags": [
285
+ "drive",
286
+ "storage"
287
+ ],
288
+ "argumentOptions": {}
289
+ }
290
+ }
291
+ ]
292
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "protocolVersion": "2025-06-18",
3
+ "examples": {
4
+ "initialize": {
5
+ "description": "Client initialization request sent immediately after connecting to the stdio MCP server.",
6
+ "request": {
7
+ "jsonrpc": "2.0",
8
+ "id": 1,
9
+ "method": "initialize",
10
+ "params": {
11
+ "protocolVersion": "2025-06-18",
12
+ "capabilities": {
13
+ "resources": {},
14
+ "tools": {},
15
+ "prompts": {}
16
+ },
17
+ "clientInfo": {
18
+ "name": "c64bridge-static-interface-generator",
19
+ "version": "1.0.0"
20
+ }
21
+ }
22
+ }
23
+ },
24
+ "tools/list": {
25
+ "description": "Enumerates the full tool catalog and input schemas exposed by the server.",
26
+ "request": {
27
+ "jsonrpc": "2.0",
28
+ "id": 2,
29
+ "method": "tools/list",
30
+ "params": {}
31
+ }
32
+ },
33
+ "tools/call": {
34
+ "description": "Invokes the c64_program tool with deterministic example arguments.",
35
+ "request": {
36
+ "jsonrpc": "2.0",
37
+ "id": 3,
38
+ "method": "tools/call",
39
+ "params": {
40
+ "name": "c64_program",
41
+ "arguments": {}
42
+ }
43
+ }
44
+ }
45
+ }
46
+ }