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.
Files changed (136) hide show
  1. package/.github/skills/assembly-program/SKILL.md +37 -0
  2. package/.github/skills/basic-program/SKILL.md +40 -0
  3. package/.github/skills/cross-platform-demo/SKILL.md +32 -0
  4. package/.github/skills/drive-manager/SKILL.md +33 -0
  5. package/.github/skills/graphics-demo/SKILL.md +30 -0
  6. package/.github/skills/hello-world/SKILL.md +36 -0
  7. package/.github/skills/memory-debug/SKILL.md +32 -0
  8. package/.github/skills/pr-converge/SKILL.md +33 -0
  9. package/.github/skills/printer-job/SKILL.md +30 -0
  10. package/.github/skills/sid-music/SKILL.md +35 -0
  11. package/.github/skills/software-launch/SKILL.md +31 -0
  12. package/.github/skills/stream-control/SKILL.md +29 -0
  13. package/.github/skills/system-control/SKILL.md +32 -0
  14. package/AGENTS.md +28 -7
  15. package/README.md +70 -15
  16. package/data/assembly/assembly-spec.md +2 -0
  17. package/dist/c64Client.js +238 -60
  18. package/dist/chargen.js +0 -4
  19. package/dist/config.js +53 -28
  20. package/dist/device.js +92 -37
  21. package/dist/diagnostics.js +66 -5
  22. package/dist/hostPaths.js +128 -0
  23. package/dist/logger.js +3 -2
  24. package/dist/loggingHttpClient.js +71 -2
  25. package/dist/mcp-server.js +416 -291
  26. package/dist/numericArg.js +55 -0
  27. package/dist/petscii.js +13 -6
  28. package/dist/platform.js +12 -3
  29. package/dist/prompts/registry.js +6 -1
  30. package/dist/redact.js +166 -0
  31. package/dist/tools/access.js +66 -0
  32. package/dist/tools/debug.js +6 -0
  33. package/dist/tools/developer.js +77 -36
  34. package/dist/tools/errors.js +54 -3
  35. package/dist/tools/input.js +25 -8
  36. package/dist/tools/machineControl.js +113 -21
  37. package/dist/tools/memory.js +135 -30
  38. package/dist/tools/meta/artifacts.js +5 -5
  39. package/dist/tools/meta/background.js +216 -54
  40. package/dist/tools/meta/compilation.js +6 -5
  41. package/dist/tools/meta/config.js +20 -10
  42. package/dist/tools/meta/configInventory.js +25 -2
  43. package/dist/tools/meta/diagnostics.js +2 -1
  44. package/dist/tools/meta/filesystem.js +16 -14
  45. package/dist/tools/meta/graphics.js +48 -20
  46. package/dist/tools/meta/memory.js +45 -19
  47. package/dist/tools/meta/program.js +10 -7
  48. package/dist/tools/meta/screen.js +116 -25
  49. package/dist/tools/pauseGuard.js +23 -0
  50. package/dist/tools/pollValidator.js +53 -8
  51. package/dist/tools/programRunners.js +62 -18
  52. package/dist/tools/registry/batch.js +17 -11
  53. package/dist/tools/registry/config.js +9 -2
  54. package/dist/tools/registry/disk.js +12 -2
  55. package/dist/tools/registry/drive.js +3 -0
  56. package/dist/tools/registry/extract.js +3 -0
  57. package/dist/tools/registry/graphics.js +59 -6
  58. package/dist/tools/registry/index.js +17 -1
  59. package/dist/tools/registry/memory.js +11 -1
  60. package/dist/tools/registry/platform.js +4 -1
  61. package/dist/tools/registry/printer.js +2 -1
  62. package/dist/tools/registry/program.js +5 -1
  63. package/dist/tools/registry/rag.js +1 -0
  64. package/dist/tools/registry/sound.js +12 -1
  65. package/dist/tools/registry/stream.js +2 -1
  66. package/dist/tools/registry/system.js +8 -1
  67. package/dist/tools/schema.js +7 -7
  68. package/dist/tools/streaming.js +34 -4
  69. package/dist/tools/translation/assembler.js +247 -24
  70. package/dist/tools/translation/basicDetokenizer.js +80 -0
  71. package/dist/tools/translation/basicTokenizer.js +8 -3
  72. package/dist/tools/translation/disassembler.js +14 -0
  73. package/dist/tools/types.js +258 -7
  74. package/dist/tools/vice.js +5 -16
  75. package/dist/vicBitmap.js +1 -1
  76. package/dist/vice/mockServer.js +3 -0
  77. package/dist/vice/process.js +19 -0
  78. package/dist/vice/resourcePolicy.js +36 -0
  79. package/dist/vice/viceClient.js +22 -5
  80. package/doc/vice/support-matrix.md +17 -11
  81. package/mcp/schemas/c64_batch.schema.json +2 -1
  82. package/mcp/schemas/c64_config.schema.json +33 -466
  83. package/mcp/schemas/c64_debug.schema.json +3 -602
  84. package/mcp/schemas/c64_disk.schema.json +17 -344
  85. package/mcp/schemas/c64_drive.schema.json +2 -157
  86. package/mcp/schemas/c64_extract.schema.json +10 -364
  87. package/mcp/schemas/c64_graphics.schema.json +19 -426
  88. package/mcp/schemas/c64_input.schema.json +5 -318
  89. package/mcp/schemas/c64_memory.schema.json +23 -491
  90. package/mcp/schemas/c64_printer.schema.json +3 -258
  91. package/mcp/schemas/c64_program.schema.json +16 -491
  92. package/mcp/schemas/c64_rag.schema.json +1 -81
  93. package/mcp/schemas/c64_select_backend.schema.json +2 -36
  94. package/mcp/schemas/c64_sound.schema.json +20 -822
  95. package/mcp/schemas/c64_stream.schema.json +4 -75
  96. package/mcp/schemas/c64_system.schema.json +28 -348
  97. package/mcp/schemas/c64_vice.schema.json +2 -71
  98. package/mcp/server.json +1 -1
  99. package/mcp/tools.json +1990 -6900
  100. package/mcp.json +21 -1
  101. package/package.json +19 -8
  102. package/scripts/mockC64Server.mjs +44 -0
  103. package/scripts/run-coverage.mjs +27 -1
  104. package/scripts/smoke-run.sh +3 -2
  105. package/scripts/start.mjs +23 -1
  106. package/server.json +53 -3
  107. package/dist/.tsbuildinfo +0 -1
  108. package/doc/agent-state-spec.md +0 -243
  109. package/doc/plans/bun/baseline-metrics.md +0 -16
  110. package/doc/plans/bun/migration-checklist.md +0 -55
  111. package/doc/plans/bun/migration.md +0 -83
  112. package/doc/plans/improve-knowledge/notes.md +0 -43
  113. package/doc/plans/improve-knowledge/plan.md +0 -121
  114. package/doc/plans/improve-knowledge/rollout.md +0 -110
  115. package/doc/plans/meta-tools/README.md +0 -110
  116. package/doc/plans/meta-tools/analysis.md +0 -272
  117. package/doc/plans/meta-tools/catalog.md +0 -435
  118. package/doc/plans/meta-tools/notes.md +0 -192
  119. package/doc/plans/meta-tools/rollout.md +0 -368
  120. package/doc/plans/prompts/README.md +0 -96
  121. package/doc/plans/prompts/user-prompt-ideas.md +0 -147
  122. package/doc/plans/tool-consolidation/notes.md +0 -28
  123. package/doc/plans/tool-consolidation/plan.md +0 -169
  124. package/doc/plans/tool-consolidation/rollout.md +0 -104
  125. package/doc/plans/vice-backend-switch/plan.md +0 -486
  126. package/doc/plans/vice-backend-switch-2/plan.md +0 -48
  127. package/doc/plans/vice-support/notes.md +0 -63
  128. package/doc/plans/vice-support/plan.md +0 -88
  129. package/doc/plans/vice-support/rollout.md +0 -99
  130. package/doc/reviews/audit.md +0 -143
  131. package/doc/reviews/hardening/01-fable/prompt-handover.md +0 -125
  132. package/doc/reviews/hardening/01-fable/prompt.md +0 -98
  133. package/doc/reviews/hardening/01-fable/review-prompt.md +0 -468
  134. package/doc/reviews/hardening/01-fable/review.md +0 -1234
  135. package/doc/reviews/vice-support-review.md +0 -185
  136. package/scripts/compare-rest/rest-compare-2025-11-01T00-25-21-830Z.json +0 -2513
@@ -25,15 +25,11 @@
25
25
  "default": "commodore"
26
26
  },
27
27
  "secondaryAddress": {
28
- "description": "Secondary address for device 4 (0 = upper/graphics, 7 = lowercase).",
29
28
  "type": [
30
29
  "integer",
31
30
  "null"
32
31
  ],
33
- "enum": [
34
- 0,
35
- 7
36
- ]
32
+ "description": "Secondary address for device 4 (0 = upper/graphics, 7 = lowercase). Limits depend on op."
37
33
  },
38
34
  "formFeed": {
39
35
  "type": "boolean",
@@ -159,257 +155,6 @@
159
155
  "required": [
160
156
  "op"
161
157
  ],
162
- "description": "Printer operations available via the c64_printer tool.\n\nOperations:\n- print_text: Generate BASIC that prints text to device 4. Required inputs: text. Optional inputs: target, secondaryAddress, formFeed.\n- print_bitmap: Print a bitmap row via Commodore (BIM) or Epson ESC/P workflows. Required inputs: printer, columns. Optional inputs: repeats, useSubRepeat, secondaryAddress, ensureMsb, mode, density, timesPerLine.\n- define_chars: Define custom printer characters (Commodore DLL mode). Required inputs: firstChar, chars. Optional inputs: secondaryAddress.",
163
- "additionalProperties": false,
164
- "x-c64bridge-operations": [
165
- {
166
- "op": "print_text",
167
- "description": "Generate BASIC that prints text to device 4.",
168
- "required": [
169
- "text"
170
- ],
171
- "optional": [
172
- "target",
173
- "secondaryAddress",
174
- "formFeed"
175
- ],
176
- "inputSchema": {
177
- "type": "object",
178
- "description": "Generate BASIC that prints text to device 4.",
179
- "properties": {
180
- "text": {
181
- "type": "string",
182
- "description": "Text to print on the connected printer.",
183
- "minLength": 1
184
- },
185
- "target": {
186
- "description": "Printer target: Commodore MPS (PETSCII) or Epson FX (ESC/P).",
187
- "type": "string",
188
- "enum": [
189
- "commodore",
190
- "epson"
191
- ],
192
- "default": "commodore"
193
- },
194
- "secondaryAddress": {
195
- "description": "Secondary address for device 4 (0 = upper/graphics, 7 = lowercase).",
196
- "type": [
197
- "integer",
198
- "null"
199
- ],
200
- "enum": [
201
- 0,
202
- 7
203
- ]
204
- },
205
- "formFeed": {
206
- "type": "boolean",
207
- "description": "Emit a form-feed (CHR$(12)) at the end of the job.",
208
- "default": false
209
- },
210
- "op": {
211
- "const": "print_text"
212
- }
213
- },
214
- "required": [
215
- "text",
216
- "op"
217
- ],
218
- "additionalProperties": false
219
- }
220
- },
221
- {
222
- "op": "print_bitmap",
223
- "description": "Print a bitmap row via Commodore (BIM) or Epson ESC/P workflows.",
224
- "required": [
225
- "printer",
226
- "columns"
227
- ],
228
- "optional": [
229
- "repeats",
230
- "useSubRepeat",
231
- "secondaryAddress",
232
- "ensureMsb",
233
- "mode",
234
- "density",
235
- "timesPerLine"
236
- ],
237
- "inputSchema": {
238
- "type": "object",
239
- "description": "Print a bitmap row via Commodore (BIM) or Epson ESC/P workflows.",
240
- "properties": {
241
- "printer": {
242
- "type": "string",
243
- "description": "Target printer family.",
244
- "enum": [
245
- "commodore",
246
- "epson"
247
- ],
248
- "default": "commodore"
249
- },
250
- "columns": {
251
- "type": "array",
252
- "description": "Sequence of bitmap columns.",
253
- "items": {
254
- "type": "integer",
255
- "description": "Bitmap column byte (0-255).",
256
- "minimum": 0,
257
- "maximum": 255
258
- },
259
- "minItems": 1
260
- },
261
- "repeats": {
262
- "type": [
263
- "integer",
264
- "null"
265
- ],
266
- "description": "Number of times to repeat the row (1-255).",
267
- "minimum": 1,
268
- "maximum": 255
269
- },
270
- "useSubRepeat": {
271
- "type": [
272
- "integer",
273
- "null"
274
- ],
275
- "description": "Repeat the next byte this many times (Commodore BIM SUB).",
276
- "minimum": 1,
277
- "maximum": 255
278
- },
279
- "secondaryAddress": {
280
- "type": [
281
- "integer",
282
- "null"
283
- ],
284
- "description": "Secondary address for device 4 (0 or 7).",
285
- "minimum": 0,
286
- "maximum": 7
287
- },
288
- "ensureMsb": {
289
- "type": "boolean",
290
- "description": "Ensure MSB set for Commodore printers.",
291
- "default": true
292
- },
293
- "mode": {
294
- "type": [
295
- "string",
296
- "null"
297
- ],
298
- "description": "Epson ESC/P graphics mode (K/L/Y/Z/*).",
299
- "minLength": 1,
300
- "maxLength": 1
301
- },
302
- "density": {
303
- "type": [
304
- "integer",
305
- "null"
306
- ],
307
- "description": "Density parameter when using Epson mode '*'.",
308
- "minimum": 0,
309
- "maximum": 3
310
- },
311
- "timesPerLine": {
312
- "type": [
313
- "integer",
314
- "null"
315
- ],
316
- "description": "Number of times to print the row per line (1-10).",
317
- "minimum": 1,
318
- "maximum": 10
319
- },
320
- "op": {
321
- "const": "print_bitmap"
322
- }
323
- },
324
- "required": [
325
- "printer",
326
- "columns",
327
- "op"
328
- ],
329
- "additionalProperties": false
330
- }
331
- },
332
- {
333
- "op": "define_chars",
334
- "description": "Define custom printer characters (Commodore DLL mode).",
335
- "required": [
336
- "firstChar",
337
- "chars"
338
- ],
339
- "optional": [
340
- "secondaryAddress"
341
- ],
342
- "inputSchema": {
343
- "type": "object",
344
- "description": "Define custom printer characters (Commodore DLL mode).",
345
- "properties": {
346
- "firstChar": {
347
- "type": "integer",
348
- "description": "PETSCII code of first character to redefine (33-126).",
349
- "minimum": 33,
350
- "maximum": 126
351
- },
352
- "chars": {
353
- "type": "array",
354
- "description": "Character definitions to upload (1-32).",
355
- "items": {
356
- "type": "object",
357
- "description": "Commodore MPS DLL character definition (11 columns).",
358
- "properties": {
359
- "a": {
360
- "description": "Attribute flag (0=normal, 1=graphics).",
361
- "type": [
362
- "integer",
363
- "null"
364
- ],
365
- "enum": [
366
- 0,
367
- 1
368
- ]
369
- },
370
- "columns": {
371
- "type": "array",
372
- "description": "11 column bytes describing the character.",
373
- "items": {
374
- "type": "integer",
375
- "description": "Column byte (0-255).",
376
- "minimum": 0,
377
- "maximum": 255
378
- },
379
- "minItems": 11,
380
- "maxItems": 11
381
- }
382
- },
383
- "required": [
384
- "columns"
385
- ],
386
- "additionalProperties": false
387
- },
388
- "minItems": 1,
389
- "maxItems": 32
390
- },
391
- "secondaryAddress": {
392
- "description": "Secondary address for device 4 (0 = upper/graphics, 7 = lowercase).",
393
- "type": [
394
- "integer",
395
- "null"
396
- ],
397
- "enum": [
398
- 0,
399
- 7
400
- ]
401
- },
402
- "op": {
403
- "const": "define_chars"
404
- }
405
- },
406
- "required": [
407
- "firstChar",
408
- "chars",
409
- "op"
410
- ],
411
- "additionalProperties": false
412
- }
413
- }
414
- ]
158
+ "description": "Printer operations available via the c64_printer tool.\n\nOperations:\n- print_text [write]: Generate BASIC that prints text to device 4. Required inputs: text. Optional inputs: target, secondaryAddress, formFeed.\n- print_bitmap [write]: Print a bitmap row via Commodore (BIM) or Epson ESC/P workflows. Required inputs: printer, columns. Optional inputs: repeats, useSubRepeat, secondaryAddress, ensureMsb, mode, density, timesPerLine.\n- define_chars [write]: Define custom printer characters (Commodore DLL mode). Required inputs: firstChar, chars. Optional inputs: secondaryAddress.",
159
+ "additionalProperties": false
415
160
  }