c64bridge 0.7.4 → 0.8.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.
Files changed (107) 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 +62 -24
  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 +83 -9
  99. package/package.json +8 -3
  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/run-coverage.mjs +284 -0
  105. package/scripts/run-tests.mjs +95 -39
  106. package/scripts/run-tests.ts +378 -73
  107. package/scripts/update-readme.ts +147 -13
@@ -0,0 +1,940 @@
1
+ {
2
+ "resources": [
3
+ {
4
+ "name": "Workflow Rules & Best Practices",
5
+ "uri": "c64://context/bootstrap",
6
+ "description": "CRITICAL: Mandatory workflow rules for all C64 programming",
7
+ "mimeType": "text/markdown",
8
+ "_meta": {
9
+ "domain": "orientation",
10
+ "priority": "critical",
11
+ "summary": "Step-by-step rules for safe automation, verification, and rollback on the C64.",
12
+ "prompts": [
13
+ "basic-program",
14
+ "assembly-program",
15
+ "memory-debug",
16
+ "cross-platform-demo",
17
+ "preset-music-demo"
18
+ ],
19
+ "tools": [
20
+ "upload_run_basic",
21
+ "upload_run_asm",
22
+ "cross_platform_greeting",
23
+ "music_play_preset",
24
+ "read_screen",
25
+ "read"
26
+ ],
27
+ "tags": [
28
+ "workflow",
29
+ "safety"
30
+ ],
31
+ "bundle": {
32
+ "id": "orientation",
33
+ "title": "Workflow & Orientation",
34
+ "summary": "Mandatory workflow and safety guidance before issuing any C64 commands.",
35
+ "order": 0
36
+ },
37
+ "order": 0,
38
+ "relatedResources": []
39
+ }
40
+ },
41
+ {
42
+ "name": "Fast Path Workflows",
43
+ "uri": "c64://context/fast-paths",
44
+ "description": "Shortest reliable workflows for common C64U and VICE tasks, including dual-backend demos.",
45
+ "mimeType": "text/markdown",
46
+ "_meta": {
47
+ "domain": "orientation",
48
+ "priority": "critical",
49
+ "summary": "Condensed routing guide for one-call demos, backend switching, and when to prefer orchestration over manual tool composition.",
50
+ "prompts": [
51
+ "basic-program",
52
+ "graphics-demo",
53
+ "cross-platform-demo",
54
+ "sid-music",
55
+ "preset-music-demo"
56
+ ],
57
+ "tools": [
58
+ "c64_program",
59
+ "c64_sound",
60
+ "c64_select_backend",
61
+ "c64_memory",
62
+ "c64_graphics"
63
+ ],
64
+ "tags": [
65
+ "workflow",
66
+ "fast-path",
67
+ "routing"
68
+ ],
69
+ "bundle": {
70
+ "id": "orientation",
71
+ "title": "Workflow & Orientation",
72
+ "summary": "Mandatory workflow and safety guidance before issuing any C64 commands.",
73
+ "order": 0
74
+ },
75
+ "order": 1,
76
+ "relatedResources": [
77
+ "c64://context/bootstrap",
78
+ "c64://platform/status"
79
+ ]
80
+ }
81
+ },
82
+ {
83
+ "name": "Commodore BASIC v2 Specification",
84
+ "uri": "c64://specs/basic",
85
+ "description": "Complete BASIC v2 reference. READ THIS BEFORE generating any BASIC code!",
86
+ "mimeType": "text/markdown",
87
+ "_meta": {
88
+ "domain": "languages",
89
+ "priority": "critical",
90
+ "summary": "Token definitions, syntax rules, and device I/O guidance for BASIC v2.",
91
+ "prompts": [
92
+ "basic-program"
93
+ ],
94
+ "tools": [
95
+ "upload_run_basic",
96
+ "read_screen"
97
+ ],
98
+ "tags": [
99
+ "basic",
100
+ "language"
101
+ ],
102
+ "bundle": {
103
+ "id": "languages",
104
+ "title": "Programming Languages",
105
+ "summary": "Language references required before generating BASIC or 6502 assembly programs.",
106
+ "order": 1
107
+ },
108
+ "order": 0,
109
+ "relatedResources": [
110
+ "c64://context/bootstrap",
111
+ "c64://docs/basic/pitfalls"
112
+ ]
113
+ }
114
+ },
115
+ {
116
+ "name": "BASIC Pitfalls & Gotchas",
117
+ "uri": "c64://docs/basic/pitfalls",
118
+ "description": "Common mistakes and gotchas when writing Commodore BASIC v2 programs",
119
+ "mimeType": "text/markdown",
120
+ "_meta": {
121
+ "domain": "languages",
122
+ "priority": "reference",
123
+ "summary": "Quickref covering quotation handling, line length, tokenization, variable names, and other BASIC traps.",
124
+ "prompts": [
125
+ "basic-program"
126
+ ],
127
+ "tools": [
128
+ "upload_run_basic"
129
+ ],
130
+ "tags": [
131
+ "basic",
132
+ "pitfalls",
133
+ "quickref"
134
+ ],
135
+ "bundle": {
136
+ "id": "languages",
137
+ "title": "Programming Languages",
138
+ "summary": "Language references required before generating BASIC or 6502 assembly programs.",
139
+ "order": 1
140
+ },
141
+ "order": 1,
142
+ "relatedResources": [
143
+ "c64://specs/basic"
144
+ ]
145
+ }
146
+ },
147
+ {
148
+ "name": "6502/6510 Assembly Reference",
149
+ "uri": "c64://specs/assembly",
150
+ "description": "Full instruction set and addressing modes. READ THIS BEFORE generating assembly!",
151
+ "mimeType": "text/markdown",
152
+ "_meta": {
153
+ "domain": "languages",
154
+ "priority": "critical",
155
+ "summary": "Official opcode matrix, addressing modes, and zero-page strategy for the 6510 CPU.",
156
+ "prompts": [
157
+ "assembly-program"
158
+ ],
159
+ "tools": [
160
+ "upload_run_asm",
161
+ "read"
162
+ ],
163
+ "tags": [
164
+ "assembly",
165
+ "language"
166
+ ],
167
+ "bundle": {
168
+ "id": "languages",
169
+ "title": "Programming Languages",
170
+ "summary": "Language references required before generating BASIC or 6502 assembly programs.",
171
+ "order": 1
172
+ },
173
+ "order": 2,
174
+ "relatedResources": [
175
+ "c64://context/bootstrap"
176
+ ]
177
+ }
178
+ },
179
+ {
180
+ "name": "SID Chip Programming Guide",
181
+ "uri": "c64://specs/sid",
182
+ "description": "Sound Interface Device registers and music programming",
183
+ "mimeType": "text/markdown",
184
+ "_meta": {
185
+ "domain": "audio",
186
+ "priority": "critical",
187
+ "summary": "Register map, waveform behaviour, and ADSR envelopes for expressive SID playback.",
188
+ "prompts": [
189
+ "sid-music"
190
+ ],
191
+ "tools": [
192
+ "c64_sound"
193
+ ],
194
+ "tags": [
195
+ "sid",
196
+ "audio"
197
+ ],
198
+ "bundle": {
199
+ "id": "audio",
200
+ "title": "SID & Audio",
201
+ "summary": "All references needed to compose, play, and verify SID music.",
202
+ "order": 2
203
+ },
204
+ "order": 0,
205
+ "relatedResources": [
206
+ "c64://specs/sidwave",
207
+ "c64://docs/sid/file-structure"
208
+ ]
209
+ }
210
+ },
211
+ {
212
+ "name": "SIDWAVE Music Format Specification",
213
+ "uri": "c64://specs/sidwave",
214
+ "description": "YAML/JSON music composition format for SID chip",
215
+ "mimeType": "text/markdown",
216
+ "_meta": {
217
+ "domain": "audio",
218
+ "priority": "reference",
219
+ "summary": "Defines the SIDWAVE interchange format used by the SID composer workflow.",
220
+ "prompts": [
221
+ "sid-music"
222
+ ],
223
+ "tools": [
224
+ "c64_sound"
225
+ ],
226
+ "tags": [
227
+ "sid",
228
+ "format"
229
+ ],
230
+ "bundle": {
231
+ "id": "audio",
232
+ "title": "SID & Audio",
233
+ "summary": "All references needed to compose, play, and verify SID music.",
234
+ "order": 2
235
+ },
236
+ "order": 1,
237
+ "relatedResources": [
238
+ "c64://specs/sid",
239
+ "c64://docs/sid/file-structure"
240
+ ]
241
+ }
242
+ },
243
+ {
244
+ "name": "SID File Structure Reference",
245
+ "uri": "c64://docs/sid/file-structure",
246
+ "description": "Breakdown of the SID file format layout and metadata",
247
+ "mimeType": "text/markdown",
248
+ "_meta": {
249
+ "domain": "audio",
250
+ "priority": "reference",
251
+ "summary": "Explains PSID/RSID headers, metadata blocks, and compatibility notes for imported music.",
252
+ "prompts": [
253
+ "sid-music"
254
+ ],
255
+ "tools": [
256
+ "c64_sound"
257
+ ],
258
+ "tags": [
259
+ "sid",
260
+ "format"
261
+ ],
262
+ "bundle": {
263
+ "id": "audio",
264
+ "title": "SID & Audio",
265
+ "summary": "All references needed to compose, play, and verify SID music.",
266
+ "order": 2
267
+ },
268
+ "order": 2,
269
+ "relatedResources": [
270
+ "c64://specs/sid",
271
+ "c64://specs/sidwave"
272
+ ]
273
+ }
274
+ },
275
+ {
276
+ "name": "SID Programming Best Practices",
277
+ "uri": "c64://docs/sid/best-practices",
278
+ "description": "Expressive SID composition defaults, ADSR guidance, and musical phrasing tips.",
279
+ "mimeType": "text/markdown",
280
+ "_meta": {
281
+ "domain": "audio",
282
+ "priority": "reference",
283
+ "summary": "Captures proven waveforms, ADSR presets, phrasing, and verification workflow for pleasant SID music.",
284
+ "prompts": [
285
+ "sid-music"
286
+ ],
287
+ "tools": [
288
+ "c64_sound"
289
+ ],
290
+ "tags": [
291
+ "sid",
292
+ "best-practices",
293
+ "audio"
294
+ ],
295
+ "bundle": {
296
+ "id": "audio",
297
+ "title": "SID & Audio",
298
+ "summary": "All references needed to compose, play, and verify SID music.",
299
+ "order": 2
300
+ },
301
+ "order": 3,
302
+ "relatedResources": [
303
+ "c64://specs/sid",
304
+ "c64://specs/sidwave"
305
+ ]
306
+ }
307
+ },
308
+ {
309
+ "name": "VIC-II Graphics Specification",
310
+ "uri": "c64://specs/vic",
311
+ "description": "Video chip, sprites, raster programming, and timing",
312
+ "mimeType": "text/markdown",
313
+ "_meta": {
314
+ "domain": "graphics",
315
+ "priority": "critical",
316
+ "summary": "Covers raster timing, sprite control, colour RAM, and bitmap modes on the VIC-II.",
317
+ "prompts": [
318
+ "graphics-demo"
319
+ ],
320
+ "tools": [
321
+ "c64_graphics",
322
+ "c64_memory"
323
+ ],
324
+ "tags": [
325
+ "vic",
326
+ "graphics"
327
+ ],
328
+ "bundle": {
329
+ "id": "graphics",
330
+ "title": "Graphics & VIC-II",
331
+ "summary": "Key material for PETSCII art, sprites, and raster control on the VIC-II.",
332
+ "order": 3
333
+ },
334
+ "order": 0,
335
+ "relatedResources": [
336
+ "c64://specs/assembly",
337
+ "c64://specs/charset",
338
+ "c64://docs/petscii-style"
339
+ ]
340
+ }
341
+ },
342
+ {
343
+ "name": "PETSCII Character Set Reference",
344
+ "uri": "c64://specs/charset",
345
+ "description": "Complete PETSCII character codes, screen codes, and glyph mappings",
346
+ "mimeType": "text/markdown",
347
+ "_meta": {
348
+ "domain": "graphics",
349
+ "priority": "reference",
350
+ "summary": "Character code table mapping PETSCII codes to screen codes, glyphs, and keyboard input.",
351
+ "prompts": [
352
+ "graphics-demo"
353
+ ],
354
+ "tools": [
355
+ "c64_graphics"
356
+ ],
357
+ "tags": [
358
+ "petscii",
359
+ "charset",
360
+ "graphics"
361
+ ],
362
+ "bundle": {
363
+ "id": "graphics",
364
+ "title": "Graphics & VIC-II",
365
+ "summary": "Key material for PETSCII art, sprites, and raster control on the VIC-II.",
366
+ "order": 3
367
+ },
368
+ "order": 1,
369
+ "relatedResources": [
370
+ "c64://specs/vic",
371
+ "c64://docs/petscii-style"
372
+ ]
373
+ }
374
+ },
375
+ {
376
+ "name": "PETSCII Style Guide and Presets",
377
+ "uri": "c64://docs/petscii-style",
378
+ "description": "Colour combinations, contrast guidelines, and recommended presets for PETSCII art",
379
+ "mimeType": "text/markdown",
380
+ "_meta": {
381
+ "domain": "graphics",
382
+ "priority": "reference",
383
+ "summary": "Documents colour palette, readability presets, dithering patterns, and best practices for creating artistic and readable PETSCII displays.",
384
+ "prompts": [
385
+ "graphics-demo"
386
+ ],
387
+ "tools": [
388
+ "c64_graphics"
389
+ ],
390
+ "tags": [
391
+ "petscii",
392
+ "style",
393
+ "colours",
394
+ "graphics"
395
+ ],
396
+ "bundle": {
397
+ "id": "graphics",
398
+ "title": "Graphics & VIC-II",
399
+ "summary": "Key material for PETSCII art, sprites, and raster control on the VIC-II.",
400
+ "order": 3
401
+ },
402
+ "order": 2,
403
+ "relatedResources": [
404
+ "c64://specs/vic",
405
+ "c64://specs/charset",
406
+ "c64://docs/sprite-charset-workflows"
407
+ ]
408
+ }
409
+ },
410
+ {
411
+ "name": "Sprite & Charset Workflows Best Practices",
412
+ "uri": "c64://docs/sprite-charset-workflows",
413
+ "description": "Comprehensive guide to creating, managing, and deploying sprites and custom character sets",
414
+ "mimeType": "text/markdown",
415
+ "_meta": {
416
+ "domain": "graphics",
417
+ "priority": "reference",
418
+ "summary": "Documents sprite and charset workflows, memory layout, VIC-II configuration, common pitfalls, and proven techniques for hardware-accelerated graphics.",
419
+ "prompts": [
420
+ "graphics-demo"
421
+ ],
422
+ "tools": [
423
+ "c64_graphics",
424
+ "c64_memory",
425
+ "c64_program"
426
+ ],
427
+ "tags": [
428
+ "sprites",
429
+ "charset",
430
+ "graphics",
431
+ "workflows"
432
+ ],
433
+ "bundle": {
434
+ "id": "graphics",
435
+ "title": "Graphics & VIC-II",
436
+ "summary": "Key material for PETSCII art, sprites, and raster control on the VIC-II.",
437
+ "order": 3
438
+ },
439
+ "order": 3,
440
+ "relatedResources": [
441
+ "c64://specs/vic",
442
+ "c64://specs/charset",
443
+ "c64://docs/petscii-style",
444
+ "c64://specs/memory-map"
445
+ ]
446
+ }
447
+ },
448
+ {
449
+ "name": "C64 Memory Map",
450
+ "uri": "c64://specs/memory-map",
451
+ "description": "Complete RAM, ROM, and I/O address map for the Commodore 64.",
452
+ "mimeType": "text/markdown",
453
+ "_meta": {
454
+ "domain": "memory",
455
+ "priority": "critical",
456
+ "summary": "Page-by-page breakdown of the 64 KB address space with hardware, ROM, and RAM regions.",
457
+ "prompts": [
458
+ "memory-debug",
459
+ "assembly-program"
460
+ ],
461
+ "tools": [
462
+ "read",
463
+ "write",
464
+ "verify_and_write_memory"
465
+ ],
466
+ "tags": [
467
+ "memory",
468
+ "hardware"
469
+ ],
470
+ "bundle": {
471
+ "id": "memory",
472
+ "title": "Memory & I/O Reference",
473
+ "summary": "Critical tables for RAM layout, zero-page vectors, and peripheral I/O registers.",
474
+ "order": 4
475
+ },
476
+ "order": 0,
477
+ "relatedResources": [
478
+ "c64://specs/assembly"
479
+ ]
480
+ }
481
+ },
482
+ {
483
+ "name": "Low Memory Usage Guide",
484
+ "uri": "c64://specs/memory-low",
485
+ "description": "Zero-page and system vector reference for low-memory addresses.",
486
+ "mimeType": "text/markdown",
487
+ "_meta": {
488
+ "domain": "memory",
489
+ "priority": "reference",
490
+ "summary": "Documents zero-page variables, BASIC pointers, and KERNAL workspace addresses.",
491
+ "prompts": [
492
+ "memory-debug",
493
+ "assembly-program"
494
+ ],
495
+ "tools": [
496
+ "read",
497
+ "write",
498
+ "verify_and_write_memory"
499
+ ],
500
+ "tags": [
501
+ "memory",
502
+ "zero-page"
503
+ ],
504
+ "bundle": {
505
+ "id": "memory",
506
+ "title": "Memory & I/O Reference",
507
+ "summary": "Critical tables for RAM layout, zero-page vectors, and peripheral I/O registers.",
508
+ "order": 4
509
+ },
510
+ "order": 1,
511
+ "relatedResources": [
512
+ "c64://specs/memory-map",
513
+ "c64://specs/assembly"
514
+ ]
515
+ }
516
+ },
517
+ {
518
+ "name": "KERNAL Memory Map",
519
+ "uri": "c64://specs/memory-kernal",
520
+ "description": "Detailed breakdown of KERNAL ROM routines and entry points.",
521
+ "mimeType": "text/markdown",
522
+ "_meta": {
523
+ "domain": "memory",
524
+ "priority": "reference",
525
+ "summary": "Lists KERNAL ROM vectors and service routines for OS-level functionality.",
526
+ "prompts": [
527
+ "memory-debug",
528
+ "assembly-program"
529
+ ],
530
+ "tools": [
531
+ "read",
532
+ "verify_and_write_memory"
533
+ ],
534
+ "tags": [
535
+ "memory",
536
+ "kernal"
537
+ ],
538
+ "bundle": {
539
+ "id": "memory",
540
+ "title": "Memory & I/O Reference",
541
+ "summary": "Critical tables for RAM layout, zero-page vectors, and peripheral I/O registers.",
542
+ "order": 4
543
+ },
544
+ "order": 2,
545
+ "relatedResources": [
546
+ "c64://specs/memory-map",
547
+ "c64://specs/assembly"
548
+ ]
549
+ }
550
+ },
551
+ {
552
+ "name": "C64 I/O Register Map",
553
+ "uri": "c64://specs/io",
554
+ "description": "Comprehensive table of memory-mapped hardware registers.",
555
+ "mimeType": "text/markdown",
556
+ "_meta": {
557
+ "domain": "memory",
558
+ "priority": "critical",
559
+ "summary": "Covers VIC-II, SID, CIA, and system control registers with address ranges and usage notes.",
560
+ "prompts": [
561
+ "memory-debug",
562
+ "assembly-program"
563
+ ],
564
+ "tools": [
565
+ "read",
566
+ "write",
567
+ "verify_and_write_memory",
568
+ "debugreg_read",
569
+ "debugreg_write"
570
+ ],
571
+ "tags": [
572
+ "io",
573
+ "hardware"
574
+ ],
575
+ "bundle": {
576
+ "id": "memory",
577
+ "title": "Memory & I/O Reference",
578
+ "summary": "Critical tables for RAM layout, zero-page vectors, and peripheral I/O registers.",
579
+ "order": 4
580
+ },
581
+ "order": 3,
582
+ "relatedResources": [
583
+ "c64://specs/memory-map",
584
+ "c64://specs/assembly"
585
+ ]
586
+ }
587
+ },
588
+ {
589
+ "name": "CIA Register Reference",
590
+ "uri": "c64://specs/cia",
591
+ "description": "Timer, keyboard, and peripheral register reference for CIA chips.",
592
+ "mimeType": "text/markdown",
593
+ "_meta": {
594
+ "domain": "memory",
595
+ "priority": "reference",
596
+ "summary": "Details CIA 1/2 registers, timers, interrupts, and keyboard matrix layout.",
597
+ "prompts": [
598
+ "memory-debug",
599
+ "assembly-program"
600
+ ],
601
+ "tools": [
602
+ "read",
603
+ "write",
604
+ "verify_and_write_memory",
605
+ "debugreg_read"
606
+ ],
607
+ "tags": [
608
+ "io",
609
+ "hardware"
610
+ ],
611
+ "bundle": {
612
+ "id": "memory",
613
+ "title": "Memory & I/O Reference",
614
+ "summary": "Critical tables for RAM layout, zero-page vectors, and peripheral I/O registers.",
615
+ "order": 4
616
+ },
617
+ "order": 4,
618
+ "relatedResources": [
619
+ "c64://specs/io",
620
+ "c64://specs/memory-map"
621
+ ]
622
+ }
623
+ },
624
+ {
625
+ "name": "Printer Programming Guide",
626
+ "uri": "c64://specs/printer",
627
+ "description": "Commodore MPS and Epson FX printer control",
628
+ "mimeType": "text/markdown",
629
+ "_meta": {
630
+ "domain": "printer",
631
+ "priority": "critical",
632
+ "summary": "Covers device setup, control codes, and Ultimate 64 integration for printers.",
633
+ "prompts": [
634
+ "printer-job"
635
+ ],
636
+ "tools": [
637
+ "printer_guide",
638
+ "printer_commodore_text",
639
+ "printer_epson_text"
640
+ ],
641
+ "tags": [
642
+ "printer",
643
+ "spec"
644
+ ],
645
+ "bundle": {
646
+ "id": "printer",
647
+ "title": "Printers & Hardcopy",
648
+ "summary": "Guides for Commodore MPS and Epson FX printing workflows, including prompts.",
649
+ "order": 5
650
+ },
651
+ "order": 0,
652
+ "relatedResources": [
653
+ "c64://docs/printer/guide",
654
+ "c64://docs/printer/commodore-text",
655
+ "c64://docs/printer/epson-text"
656
+ ]
657
+ }
658
+ },
659
+ {
660
+ "name": "Printer Workflow Guide",
661
+ "uri": "c64://docs/printer/guide",
662
+ "description": "Unified quick reference for Commodore and Epson printers",
663
+ "mimeType": "text/markdown",
664
+ "_meta": {
665
+ "domain": "printer",
666
+ "priority": "reference",
667
+ "summary": "Quick-look workflow covering setup, troubleshooting, and sample jobs for both printer families.",
668
+ "prompts": [
669
+ "printer-job"
670
+ ],
671
+ "tools": [
672
+ "printer_guide"
673
+ ],
674
+ "tags": [
675
+ "printer",
676
+ "workflow"
677
+ ],
678
+ "bundle": {
679
+ "id": "printer",
680
+ "title": "Printers & Hardcopy",
681
+ "summary": "Guides for Commodore MPS and Epson FX printing workflows, including prompts.",
682
+ "order": 5
683
+ },
684
+ "order": 1,
685
+ "relatedResources": [
686
+ "c64://specs/printer",
687
+ "c64://docs/printer/commodore-text",
688
+ "c64://docs/printer/epson-text"
689
+ ]
690
+ }
691
+ },
692
+ {
693
+ "name": "Commodore Printer Text Guide",
694
+ "uri": "c64://docs/printer/commodore-text",
695
+ "description": "Device 4 character printing reference for Commodore MPS printers",
696
+ "mimeType": "text/markdown",
697
+ "_meta": {
698
+ "domain": "printer",
699
+ "priority": "reference",
700
+ "summary": "Character sets, control codes, and formatting for Commodore MPS text output.",
701
+ "prompts": [
702
+ "printer-job"
703
+ ],
704
+ "tools": [
705
+ "printer_commodore_text"
706
+ ],
707
+ "tags": [
708
+ "printer",
709
+ "commodore"
710
+ ],
711
+ "bundle": {
712
+ "id": "printer",
713
+ "title": "Printers & Hardcopy",
714
+ "summary": "Guides for Commodore MPS and Epson FX printing workflows, including prompts.",
715
+ "order": 5
716
+ },
717
+ "order": 2,
718
+ "relatedResources": [
719
+ "c64://specs/printer",
720
+ "c64://docs/printer/commodore-bitmap"
721
+ ]
722
+ }
723
+ },
724
+ {
725
+ "name": "Commodore Printer Bitmap Guide",
726
+ "uri": "c64://docs/printer/commodore-bitmap",
727
+ "description": "Bitmap and custom character printing workflow for Commodore printers",
728
+ "mimeType": "text/markdown",
729
+ "_meta": {
730
+ "domain": "printer",
731
+ "priority": "reference",
732
+ "summary": "Details bitmap modes, graphics commands, and data layout for MPS bitmap printing.",
733
+ "prompts": [
734
+ "printer-job"
735
+ ],
736
+ "tools": [
737
+ "printer_commodore_bitmap"
738
+ ],
739
+ "tags": [
740
+ "printer",
741
+ "commodore",
742
+ "graphics"
743
+ ],
744
+ "bundle": {
745
+ "id": "printer",
746
+ "title": "Printers & Hardcopy",
747
+ "summary": "Guides for Commodore MPS and Epson FX printing workflows, including prompts.",
748
+ "order": 5
749
+ },
750
+ "order": 3,
751
+ "relatedResources": [
752
+ "c64://docs/printer/commodore-text",
753
+ "c64://specs/printer"
754
+ ]
755
+ }
756
+ },
757
+ {
758
+ "name": "Epson Printer Text Guide",
759
+ "uri": "c64://docs/printer/epson-text",
760
+ "description": "Text control sequences for Epson FX-compatible printers",
761
+ "mimeType": "text/markdown",
762
+ "_meta": {
763
+ "domain": "printer",
764
+ "priority": "reference",
765
+ "summary": "Lists ESC/P control codes and formatting advice for Epson FX text output.",
766
+ "prompts": [
767
+ "printer-job"
768
+ ],
769
+ "tools": [
770
+ "printer_epson_text"
771
+ ],
772
+ "tags": [
773
+ "printer",
774
+ "epson"
775
+ ],
776
+ "bundle": {
777
+ "id": "printer",
778
+ "title": "Printers & Hardcopy",
779
+ "summary": "Guides for Commodore MPS and Epson FX printing workflows, including prompts.",
780
+ "order": 5
781
+ },
782
+ "order": 4,
783
+ "relatedResources": [
784
+ "c64://docs/printer/epson-bitmap",
785
+ "c64://specs/printer"
786
+ ]
787
+ }
788
+ },
789
+ {
790
+ "name": "Epson Printer Bitmap Guide",
791
+ "uri": "c64://docs/printer/epson-bitmap",
792
+ "description": "Bitmap printing and graphics control for Epson FX printers",
793
+ "mimeType": "text/markdown",
794
+ "_meta": {
795
+ "domain": "printer",
796
+ "priority": "reference",
797
+ "summary": "Explains bit-image modes, density options, and data packing for Epson bitmap jobs.",
798
+ "prompts": [
799
+ "printer-job"
800
+ ],
801
+ "tools": [
802
+ "printer_epson_bitmap"
803
+ ],
804
+ "tags": [
805
+ "printer",
806
+ "epson",
807
+ "graphics"
808
+ ],
809
+ "bundle": {
810
+ "id": "printer",
811
+ "title": "Printers & Hardcopy",
812
+ "summary": "Guides for Commodore MPS and Epson FX printing workflows, including prompts.",
813
+ "order": 5
814
+ },
815
+ "order": 5,
816
+ "relatedResources": [
817
+ "c64://docs/printer/epson-text",
818
+ "c64://specs/printer"
819
+ ]
820
+ }
821
+ },
822
+ {
823
+ "name": "Printer Prompt Templates",
824
+ "uri": "c64://docs/printer/prompts",
825
+ "description": "Template prompts and workflow guidance for printer jobs",
826
+ "mimeType": "text/markdown",
827
+ "_meta": {
828
+ "domain": "printer",
829
+ "priority": "supplemental",
830
+ "summary": "Reusable prompt templates that drive complex printer jobs through the MCP server.",
831
+ "prompts": [
832
+ "printer-job"
833
+ ],
834
+ "tools": [
835
+ "printer_prompts"
836
+ ],
837
+ "tags": [
838
+ "printer",
839
+ "prompts"
840
+ ],
841
+ "bundle": {
842
+ "id": "printer",
843
+ "title": "Printers & Hardcopy",
844
+ "summary": "Guides for Commodore MPS and Epson FX printing workflows, including prompts.",
845
+ "order": 5
846
+ },
847
+ "order": 6,
848
+ "relatedResources": [
849
+ "c64://docs/printer/guide",
850
+ "c64://docs/printer/commodore-text",
851
+ "c64://docs/printer/epson-text"
852
+ ]
853
+ }
854
+ },
855
+ {
856
+ "name": "C64 Knowledge Map",
857
+ "uri": "c64://docs/index",
858
+ "description": "Start here for a guided tour of all Commodore 64 knowledge resources",
859
+ "mimeType": "text/markdown",
860
+ "_meta": {
861
+ "domain": "overview",
862
+ "priority": "critical",
863
+ "summary": "Explains how to approach each knowledge bundle and when to consult it.",
864
+ "prompts": [
865
+ "basic-program",
866
+ "assembly-program",
867
+ "sid-music",
868
+ "graphics-demo",
869
+ "printer-job",
870
+ "memory-debug",
871
+ "cross-platform-demo",
872
+ "preset-music-demo"
873
+ ],
874
+ "tools": [
875
+ "upload_run_basic",
876
+ "upload_run_asm",
877
+ "music_generate",
878
+ "render_petscii_text",
879
+ "printer_guide",
880
+ "read"
881
+ ],
882
+ "tags": [
883
+ "overview"
884
+ ],
885
+ "bundle": {
886
+ "id": "overview",
887
+ "title": "Knowledge Overview",
888
+ "summary": "Read this first to understand how the MCP server organizes Commodore 64 expertise.",
889
+ "order": -1
890
+ },
891
+ "order": 0,
892
+ "relatedResources": [
893
+ "c64://context/bootstrap",
894
+ "c64://context/fast-paths",
895
+ "c64://specs/basic",
896
+ "c64://docs/basic/pitfalls",
897
+ "c64://specs/assembly",
898
+ "c64://specs/sid",
899
+ "c64://specs/sidwave",
900
+ "c64://docs/sid/file-structure",
901
+ "c64://docs/sid/best-practices",
902
+ "c64://specs/vic",
903
+ "c64://specs/charset",
904
+ "c64://docs/petscii-style",
905
+ "c64://docs/sprite-charset-workflows",
906
+ "c64://specs/memory-map",
907
+ "c64://specs/memory-low",
908
+ "c64://specs/memory-kernal",
909
+ "c64://specs/io",
910
+ "c64://specs/cia",
911
+ "c64://specs/printer",
912
+ "c64://docs/printer/guide",
913
+ "c64://docs/printer/commodore-text",
914
+ "c64://docs/printer/commodore-bitmap",
915
+ "c64://docs/printer/epson-text",
916
+ "c64://docs/printer/epson-bitmap",
917
+ "c64://docs/printer/prompts"
918
+ ]
919
+ }
920
+ },
921
+ {
922
+ "name": "Active Platform Status",
923
+ "uri": "c64://platform/status",
924
+ "description": "Reports the active MCP platform and tool compatibility snapshot.",
925
+ "mimeType": "text/markdown",
926
+ "_meta": {
927
+ "domain": "platform",
928
+ "priority": "critical",
929
+ "summary": "Current platform (c64u or vice), feature flags, and tool support overview.",
930
+ "prompts": [],
931
+ "tools": [],
932
+ "tags": [
933
+ "platform",
934
+ "compatibility"
935
+ ],
936
+ "relatedResources": []
937
+ }
938
+ }
939
+ ]
940
+ }