c64bridge 1.0.7 → 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 (132) 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 +69 -14
  16. package/data/assembly/assembly-spec.md +2 -0
  17. package/dist/c64Client.js +238 -60
  18. package/dist/config.js +48 -26
  19. package/dist/device.js +92 -37
  20. package/dist/diagnostics.js +62 -2
  21. package/dist/hostPaths.js +128 -0
  22. package/dist/loggingHttpClient.js +59 -1
  23. package/dist/mcp-server.js +409 -286
  24. package/dist/numericArg.js +55 -0
  25. package/dist/petscii.js +13 -1
  26. package/dist/platform.js +12 -3
  27. package/dist/prompts/registry.js +6 -1
  28. package/dist/tools/access.js +66 -0
  29. package/dist/tools/debug.js +6 -0
  30. package/dist/tools/developer.js +67 -34
  31. package/dist/tools/errors.js +54 -3
  32. package/dist/tools/input.js +23 -6
  33. package/dist/tools/machineControl.js +112 -20
  34. package/dist/tools/memory.js +135 -30
  35. package/dist/tools/meta/artifacts.js +5 -5
  36. package/dist/tools/meta/background.js +216 -54
  37. package/dist/tools/meta/compilation.js +6 -5
  38. package/dist/tools/meta/config.js +15 -6
  39. package/dist/tools/meta/filesystem.js +16 -14
  40. package/dist/tools/meta/graphics.js +48 -20
  41. package/dist/tools/meta/memory.js +45 -19
  42. package/dist/tools/meta/program.js +10 -7
  43. package/dist/tools/meta/screen.js +116 -25
  44. package/dist/tools/pauseGuard.js +23 -0
  45. package/dist/tools/pollValidator.js +53 -8
  46. package/dist/tools/programRunners.js +62 -18
  47. package/dist/tools/registry/batch.js +16 -4
  48. package/dist/tools/registry/config.js +9 -2
  49. package/dist/tools/registry/disk.js +12 -2
  50. package/dist/tools/registry/drive.js +3 -0
  51. package/dist/tools/registry/extract.js +3 -0
  52. package/dist/tools/registry/graphics.js +59 -6
  53. package/dist/tools/registry/index.js +17 -1
  54. package/dist/tools/registry/memory.js +11 -1
  55. package/dist/tools/registry/platform.js +4 -1
  56. package/dist/tools/registry/printer.js +2 -1
  57. package/dist/tools/registry/program.js +5 -1
  58. package/dist/tools/registry/rag.js +1 -0
  59. package/dist/tools/registry/sound.js +12 -1
  60. package/dist/tools/registry/stream.js +2 -1
  61. package/dist/tools/registry/system.js +8 -1
  62. package/dist/tools/schema.js +7 -7
  63. package/dist/tools/streaming.js +34 -4
  64. package/dist/tools/translation/assembler.js +247 -24
  65. package/dist/tools/translation/basicDetokenizer.js +80 -0
  66. package/dist/tools/translation/basicTokenizer.js +8 -3
  67. package/dist/tools/translation/disassembler.js +14 -0
  68. package/dist/tools/types.js +258 -7
  69. package/dist/tools/vice.js +5 -16
  70. package/dist/vicBitmap.js +1 -1
  71. package/dist/vice/mockServer.js +3 -0
  72. package/dist/vice/process.js +19 -0
  73. package/dist/vice/resourcePolicy.js +36 -0
  74. package/dist/vice/viceClient.js +22 -5
  75. package/doc/vice/support-matrix.md +17 -11
  76. package/mcp/schemas/c64_batch.schema.json +2 -1
  77. package/mcp/schemas/c64_config.schema.json +25 -475
  78. package/mcp/schemas/c64_debug.schema.json +3 -602
  79. package/mcp/schemas/c64_disk.schema.json +17 -344
  80. package/mcp/schemas/c64_drive.schema.json +2 -157
  81. package/mcp/schemas/c64_extract.schema.json +10 -364
  82. package/mcp/schemas/c64_graphics.schema.json +19 -426
  83. package/mcp/schemas/c64_input.schema.json +5 -318
  84. package/mcp/schemas/c64_memory.schema.json +23 -491
  85. package/mcp/schemas/c64_printer.schema.json +3 -258
  86. package/mcp/schemas/c64_program.schema.json +16 -491
  87. package/mcp/schemas/c64_rag.schema.json +1 -81
  88. package/mcp/schemas/c64_select_backend.schema.json +2 -36
  89. package/mcp/schemas/c64_sound.schema.json +20 -822
  90. package/mcp/schemas/c64_stream.schema.json +4 -75
  91. package/mcp/schemas/c64_system.schema.json +28 -348
  92. package/mcp/schemas/c64_vice.schema.json +2 -71
  93. package/mcp/server.json +1 -1
  94. package/mcp/tools.json +1983 -6910
  95. package/mcp.json +21 -1
  96. package/package.json +16 -8
  97. package/scripts/mockC64Server.mjs +44 -0
  98. package/scripts/run-coverage.mjs +27 -1
  99. package/scripts/smoke-run.sh +3 -2
  100. package/scripts/start.mjs +23 -1
  101. package/server.json +35 -2
  102. package/dist/.tsbuildinfo +0 -1
  103. package/doc/agent-state-spec.md +0 -243
  104. package/doc/audit/secret-handling.md +0 -61
  105. package/doc/plans/bun/baseline-metrics.md +0 -16
  106. package/doc/plans/bun/migration-checklist.md +0 -55
  107. package/doc/plans/bun/migration.md +0 -83
  108. package/doc/plans/improve-knowledge/notes.md +0 -43
  109. package/doc/plans/improve-knowledge/plan.md +0 -121
  110. package/doc/plans/improve-knowledge/rollout.md +0 -110
  111. package/doc/plans/meta-tools/README.md +0 -110
  112. package/doc/plans/meta-tools/analysis.md +0 -272
  113. package/doc/plans/meta-tools/catalog.md +0 -435
  114. package/doc/plans/meta-tools/notes.md +0 -192
  115. package/doc/plans/meta-tools/rollout.md +0 -368
  116. package/doc/plans/prompts/README.md +0 -96
  117. package/doc/plans/prompts/user-prompt-ideas.md +0 -147
  118. package/doc/plans/tool-consolidation/notes.md +0 -28
  119. package/doc/plans/tool-consolidation/plan.md +0 -169
  120. package/doc/plans/tool-consolidation/rollout.md +0 -104
  121. package/doc/plans/vice-backend-switch/plan.md +0 -486
  122. package/doc/plans/vice-backend-switch-2/plan.md +0 -48
  123. package/doc/plans/vice-support/notes.md +0 -63
  124. package/doc/plans/vice-support/plan.md +0 -88
  125. package/doc/plans/vice-support/rollout.md +0 -99
  126. package/doc/reviews/audit.md +0 -143
  127. package/doc/reviews/hardening/01-fable/prompt-handover.md +0 -125
  128. package/doc/reviews/hardening/01-fable/prompt.md +0 -98
  129. package/doc/reviews/hardening/01-fable/review-prompt.md +0 -468
  130. package/doc/reviews/hardening/01-fable/review.md +0 -1234
  131. package/doc/reviews/vice-support-review.md +0 -185
  132. package/scripts/compare-rest/rest-compare-2025-11-01T00-25-21-830Z.json +0 -2513
@@ -34,9 +34,19 @@
34
34
  "minLength": 1
35
35
  },
36
36
  "verify": {
37
- "type": "boolean",
38
- "description": "Run post-execution polling to ensure the BASIC program executed without errors.",
39
- "default": false
37
+ "type": [
38
+ "boolean",
39
+ "null"
40
+ ],
41
+ "description": "Run post-execution polling to ensure the BASIC program executed without errors. Limits depend on op."
42
+ },
43
+ "autoFix": {
44
+ "type": [
45
+ "boolean",
46
+ "null"
47
+ ],
48
+ "description": "When a BASIC error is detected on screen, append a missing closing quote or parentheses to the failing line and run the program again (default true). The rewritten lines are reported with before and after text. Set false for programs with side effects, which must not run twice.",
49
+ "default": true
40
50
  },
41
51
  "programs": {
42
52
  "type": "array",
@@ -127,7 +137,7 @@
127
137
  "string",
128
138
  "null"
129
139
  ],
130
- "description": "Output directory for test results",
140
+ "description": "Output directory for test results Limits depend on op.",
131
141
  "minLength": 1
132
142
  },
133
143
  "resetDelayMs": {
@@ -252,491 +262,6 @@
252
262
  "required": [
253
263
  "op"
254
264
  ],
255
- "description": "Program operations available via the c64_program tool.\n\nOperations:\n- load_prg: Load a PRG from Ultimate storage without executing it. Required inputs: path. Optional inputs: symbolsFile.\n- run_prg: Load and execute a PRG from Ultimate-visible storage on C64U/U64 or U2-family hardware, or from a host-local path on VICE. Required inputs: path. Optional inputs: symbolsFile.\n- run_crt: Mount and run a CRT cartridge image. Required inputs: path.\n- upload_run_basic: Upload Commodore BASIC v2 source and execute it immediately. Required inputs: program. Optional inputs: verify.\n- upload_run_asm: Assemble 6502/6510 source, upload the PRG, and execute it. Required inputs: program. Optional inputs: verify.\n- batch_run: Run multiple PRG/CRT programs with post-run assertions. Required inputs: programs. Optional inputs: continueOnError, durationMs, outputPath, resetDelayMs.\n- bundle_run: Capture screen, memory, and debug registers into an artifact bundle. Required inputs: runId, outputPath. Optional inputs: captureScreen, memoryRanges, captureDebugReg.\n- cross_platform_greeting: Show a platform-customized greeting on one or more configured backends, capture screenshots, and verify the results. Required inputs: none. Optional inputs: platforms, messageTemplate, verify, captureScreenshot, outputPath, restoreActiveBackend, timeoutMs, pollIntervalMs.",
256
- "additionalProperties": false,
257
- "x-c64bridge-operations": [
258
- {
259
- "op": "load_prg",
260
- "description": "Load a PRG from Ultimate storage without executing it.",
261
- "required": [
262
- "path"
263
- ],
264
- "optional": [
265
- "symbolsFile"
266
- ],
267
- "inputSchema": {
268
- "type": "object",
269
- "description": "Load a PRG from Ultimate storage without executing it.",
270
- "properties": {
271
- "path": {
272
- "type": "string",
273
- "description": "Path to the PRG image. Use an Ultimate-visible filesystem path on c64u, or a host-local filesystem path on VICE.",
274
- "minLength": 1
275
- },
276
- "symbolsFile": {
277
- "type": [
278
- "string",
279
- "null"
280
- ],
281
- "description": "Path to a VICE symbol file (.vs) to load alongside the PRG. Symbols are used by the disassemble tool when annotating addresses.",
282
- "minLength": 1
283
- },
284
- "op": {
285
- "const": "load_prg"
286
- }
287
- },
288
- "required": [
289
- "path",
290
- "op"
291
- ],
292
- "additionalProperties": false
293
- }
294
- },
295
- {
296
- "op": "run_prg",
297
- "description": "Load and execute a PRG from Ultimate-visible storage on C64U/U64 or U2-family hardware, or from a host-local path on VICE.",
298
- "required": [
299
- "path"
300
- ],
301
- "optional": [
302
- "symbolsFile"
303
- ],
304
- "inputSchema": {
305
- "type": "object",
306
- "description": "Load and execute a PRG from Ultimate-visible storage on C64U/U64 or U2-family hardware, or from a host-local path on VICE.",
307
- "properties": {
308
- "path": {
309
- "type": "string",
310
- "description": "Path to the PRG image. Use an Ultimate-visible filesystem path on c64u, or a host-local filesystem path on VICE.",
311
- "minLength": 1
312
- },
313
- "symbolsFile": {
314
- "type": [
315
- "string",
316
- "null"
317
- ],
318
- "description": "Path to a VICE symbol file (.vs) to load alongside the PRG. Symbols are used by the disassemble tool when annotating addresses.",
319
- "minLength": 1
320
- },
321
- "op": {
322
- "const": "run_prg"
323
- }
324
- },
325
- "required": [
326
- "path",
327
- "op"
328
- ],
329
- "additionalProperties": false
330
- }
331
- },
332
- {
333
- "op": "run_crt",
334
- "description": "Mount and run a CRT cartridge image.",
335
- "required": [
336
- "path"
337
- ],
338
- "optional": [],
339
- "inputSchema": {
340
- "type": "object",
341
- "description": "Mount and run a CRT cartridge image.",
342
- "properties": {
343
- "path": {
344
- "type": "string",
345
- "description": "Path to the CRT image on Ultimate-visible storage. CRT mounting is only supported on c64u.",
346
- "minLength": 1
347
- },
348
- "op": {
349
- "const": "run_crt"
350
- }
351
- },
352
- "required": [
353
- "path",
354
- "op"
355
- ],
356
- "additionalProperties": false
357
- }
358
- },
359
- {
360
- "op": "upload_run_basic",
361
- "description": "Upload Commodore BASIC v2 source and execute it immediately.",
362
- "required": [
363
- "program"
364
- ],
365
- "optional": [
366
- "verify"
367
- ],
368
- "inputSchema": {
369
- "type": "object",
370
- "description": "Upload Commodore BASIC v2 source and execute it immediately.",
371
- "properties": {
372
- "program": {
373
- "type": "string",
374
- "description": "Commodore BASIC v2 program source to upload and run.",
375
- "minLength": 1
376
- },
377
- "verify": {
378
- "type": "boolean",
379
- "description": "Run post-execution polling to ensure the BASIC program executed without errors.",
380
- "default": false
381
- },
382
- "op": {
383
- "const": "upload_run_basic"
384
- }
385
- },
386
- "required": [
387
- "program",
388
- "op"
389
- ],
390
- "additionalProperties": false
391
- }
392
- },
393
- {
394
- "op": "upload_run_asm",
395
- "description": "Assemble 6502/6510 source, upload the PRG, and execute it.",
396
- "required": [
397
- "program"
398
- ],
399
- "optional": [
400
- "verify"
401
- ],
402
- "inputSchema": {
403
- "type": "object",
404
- "description": "Assemble 6502/6510 source, upload the PRG, and execute it.",
405
- "properties": {
406
- "program": {
407
- "type": "string",
408
- "description": "Assembly source that will be assembled to a PRG and executed.",
409
- "minLength": 1
410
- },
411
- "verify": {
412
- "type": "boolean",
413
- "description": "Run post-execution polling to confirm the assembly program remained stable.",
414
- "default": false
415
- },
416
- "op": {
417
- "const": "upload_run_asm"
418
- }
419
- },
420
- "required": [
421
- "program",
422
- "op"
423
- ],
424
- "additionalProperties": false
425
- }
426
- },
427
- {
428
- "op": "batch_run",
429
- "description": "Run multiple PRG/CRT programs with post-run assertions.",
430
- "required": [
431
- "programs"
432
- ],
433
- "optional": [
434
- "continueOnError",
435
- "durationMs",
436
- "outputPath",
437
- "resetDelayMs"
438
- ],
439
- "inputSchema": {
440
- "type": "object",
441
- "description": "Run multiple PRG/CRT programs with post-run assertions.",
442
- "properties": {
443
- "programs": {
444
- "type": "array",
445
- "items": {
446
- "type": "object",
447
- "description": "Program to run with assertions",
448
- "properties": {
449
- "path": {
450
- "type": "string",
451
- "description": "Program path (PRG or CRT)",
452
- "minLength": 1
453
- },
454
- "assertions": {
455
- "type": [
456
- "array",
457
- "null"
458
- ],
459
- "items": {
460
- "type": "object",
461
- "description": "Assertion to check after run",
462
- "properties": {
463
- "type": {
464
- "type": "string",
465
- "description": "Assertion type; sid_silent needs the C64 Ultimate audio stream (c64u backend).",
466
- "enum": [
467
- "screen_contains",
468
- "memory_equals",
469
- "sid_silent"
470
- ]
471
- },
472
- "pattern": {
473
- "type": [
474
- "string",
475
- "null"
476
- ],
477
- "description": "Pattern for screen_contains",
478
- "minLength": 1
479
- },
480
- "address": {
481
- "type": [
482
- "string",
483
- "null"
484
- ],
485
- "description": "Address for memory_equals",
486
- "minLength": 1
487
- },
488
- "expected": {
489
- "type": [
490
- "string",
491
- "null"
492
- ],
493
- "description": "Expected value (hex)",
494
- "minLength": 1
495
- }
496
- },
497
- "required": [
498
- "type"
499
- ],
500
- "additionalProperties": false
501
- }
502
- }
503
- },
504
- "required": [
505
- "path"
506
- ],
507
- "additionalProperties": false
508
- }
509
- },
510
- "continueOnError": {
511
- "type": [
512
- "boolean",
513
- "null"
514
- ],
515
- "description": "Continue running programs after assertion failure",
516
- "default": false
517
- },
518
- "durationMs": {
519
- "type": [
520
- "integer",
521
- "null"
522
- ],
523
- "description": "Duration to run each program before assertions",
524
- "minimum": 1,
525
- "default": 2000
526
- },
527
- "outputPath": {
528
- "type": [
529
- "string",
530
- "null"
531
- ],
532
- "description": "Output directory for test results",
533
- "minLength": 1
534
- },
535
- "resetDelayMs": {
536
- "type": [
537
- "integer",
538
- "null"
539
- ],
540
- "description": "Delay after reset operations to allow the platform to settle.",
541
- "minimum": 0,
542
- "maximum": 1000,
543
- "default": 100
544
- },
545
- "op": {
546
- "const": "batch_run"
547
- }
548
- },
549
- "required": [
550
- "programs",
551
- "op"
552
- ],
553
- "additionalProperties": false
554
- }
555
- },
556
- {
557
- "op": "bundle_run",
558
- "description": "Capture screen, memory, and debug registers into an artifact bundle.",
559
- "required": [
560
- "runId",
561
- "outputPath"
562
- ],
563
- "optional": [
564
- "captureScreen",
565
- "memoryRanges",
566
- "captureDebugReg"
567
- ],
568
- "inputSchema": {
569
- "type": "object",
570
- "description": "Capture screen, memory, and debug registers into an artifact bundle.",
571
- "properties": {
572
- "runId": {
573
- "type": "string",
574
- "description": "Unique identifier for this run",
575
- "minLength": 1
576
- },
577
- "outputPath": {
578
- "type": "string",
579
- "description": "Output directory for artifacts bundle",
580
- "minLength": 1
581
- },
582
- "captureScreen": {
583
- "type": [
584
- "boolean",
585
- "null"
586
- ],
587
- "description": "Capture screen content",
588
- "default": true
589
- },
590
- "memoryRanges": {
591
- "type": [
592
- "array",
593
- "null"
594
- ],
595
- "items": {
596
- "type": "object",
597
- "description": "Memory range to snapshot",
598
- "properties": {
599
- "address": {
600
- "type": "string",
601
- "description": "Start address",
602
- "minLength": 1
603
- },
604
- "length": {
605
- "type": "integer",
606
- "description": "Length in bytes",
607
- "minimum": 1
608
- }
609
- },
610
- "required": [
611
- "address",
612
- "length"
613
- ],
614
- "additionalProperties": false
615
- }
616
- },
617
- "captureDebugReg": {
618
- "type": [
619
- "boolean",
620
- "null"
621
- ],
622
- "description": "Capture Ultimate debug registers (C64U/U64 only). Defaults to true on C64U/U64 and false on U2/VICE."
623
- },
624
- "op": {
625
- "const": "bundle_run"
626
- }
627
- },
628
- "required": [
629
- "runId",
630
- "outputPath",
631
- "op"
632
- ],
633
- "additionalProperties": false
634
- }
635
- },
636
- {
637
- "op": "cross_platform_greeting",
638
- "description": "Show a platform-customized greeting on one or more configured backends, capture screenshots, and verify the results.",
639
- "required": [],
640
- "optional": [
641
- "platforms",
642
- "messageTemplate",
643
- "verify",
644
- "captureScreenshot",
645
- "outputPath",
646
- "restoreActiveBackend",
647
- "timeoutMs",
648
- "pollIntervalMs"
649
- ],
650
- "inputSchema": {
651
- "type": "object",
652
- "description": "Show a platform-customized greeting on one or more configured backends, capture screenshots, and verify the results.",
653
- "properties": {
654
- "platforms": {
655
- "type": [
656
- "array",
657
- "null"
658
- ],
659
- "items": {
660
- "type": "string",
661
- "description": "Backends to target in sequence.",
662
- "minLength": 1,
663
- "enum": [
664
- "vice",
665
- "c64u",
666
- "u2"
667
- ]
668
- }
669
- },
670
- "messageTemplate": {
671
- "type": [
672
- "string",
673
- "null"
674
- ],
675
- "description": "Greeting template. Use {PLATFORM}/{BACKEND} for uppercase or {platform}/{backend} for lowercase substitution.",
676
- "minLength": 1,
677
- "default": "HAVE A GREAT DAY, {PLATFORM}!"
678
- },
679
- "verify": {
680
- "type": [
681
- "boolean",
682
- "null"
683
- ],
684
- "description": "Poll the text screen and require the rendered greeting to appear.",
685
- "default": true
686
- },
687
- "captureScreenshot": {
688
- "type": [
689
- "boolean",
690
- "null"
691
- ],
692
- "description": "Capture a framebuffer screenshot on C64U/U64 or VICE. U2 skips screenshots by default; explicitly requesting one on U2 fails before execution.",
693
- "default": true
694
- },
695
- "outputPath": {
696
- "type": [
697
- "string",
698
- "null"
699
- ],
700
- "description": "Directory for screenshots and the workflow summary JSON.",
701
- "minLength": 1
702
- },
703
- "restoreActiveBackend": {
704
- "type": [
705
- "boolean",
706
- "null"
707
- ],
708
- "description": "Restore the backend that was active before the workflow started.",
709
- "default": true
710
- },
711
- "timeoutMs": {
712
- "type": [
713
- "integer",
714
- "null"
715
- ],
716
- "description": "Maximum time to wait for each greeting to appear on screen.",
717
- "minimum": 100,
718
- "maximum": 5000,
719
- "default": 1500
720
- },
721
- "pollIntervalMs": {
722
- "type": [
723
- "integer",
724
- "null"
725
- ],
726
- "description": "Delay between screen polls while verifying the greeting.",
727
- "minimum": 50,
728
- "maximum": 1000,
729
- "default": 100
730
- },
731
- "op": {
732
- "const": "cross_platform_greeting"
733
- }
734
- },
735
- "additionalProperties": false,
736
- "required": [
737
- "op"
738
- ]
739
- }
740
- }
741
- ]
265
+ "description": "Program operations available via the c64_program tool.\n\nOperations:\n- load_prg [write]: Load a PRG from Ultimate storage without executing it. Required inputs: path. Optional inputs: symbolsFile.\n- run_prg [write]: Load and execute a PRG from Ultimate-visible storage on C64U/U64 or U2-family hardware, or from a host-local path on VICE. Required inputs: path. Optional inputs: symbolsFile.\n- run_crt [c64u, u2] [write]: Mount and run a CRT cartridge image. Required inputs: path.\n- upload_run_basic [write]: Upload Commodore BASIC v2 source and execute it immediately. Required inputs: program. Optional inputs: verify, autoFix.\n- upload_run_asm [write]: Assemble 6502/6510 source, upload the PRG, and execute it. Required inputs: program. Optional inputs: verify.\n- batch_run [write]: Run multiple PRG/CRT programs with post-run assertions. Required inputs: programs. Optional inputs: continueOnError, durationMs, outputPath, resetDelayMs.\n- bundle_run [write]: Capture screen, memory, and debug registers into an artifact bundle. Required inputs: runId, outputPath. Optional inputs: captureScreen, memoryRanges, captureDebugReg.\n- cross_platform_greeting [write]: Show a platform-customized greeting on one or more configured backends, capture screenshots, and verify the results. Required inputs: none. Optional inputs: platforms, messageTemplate, verify, captureScreenshot, outputPath, restoreActiveBackend, timeoutMs, pollIntervalMs.",
266
+ "additionalProperties": false
742
267
  }
@@ -29,85 +29,5 @@
29
29
  "op"
30
30
  ],
31
31
  "description": "RAG operations available via the c64_rag tool.\n\nOperations:\n- basic: Retrieve BASIC references and snippets from the local knowledge base. Required inputs: q. Optional inputs: k.\n- asm: Retrieve 6502/6510 assembly references from the local knowledge base. Required inputs: q. Optional inputs: k.",
32
- "additionalProperties": false,
33
- "x-c64bridge-operations": [
34
- {
35
- "op": "basic",
36
- "description": "Retrieve BASIC references and snippets from the local knowledge base.",
37
- "required": [
38
- "q"
39
- ],
40
- "optional": [
41
- "k"
42
- ],
43
- "inputSchema": {
44
- "type": "object",
45
- "description": "Retrieve BASIC references and snippets from the local knowledge base.",
46
- "properties": {
47
- "q": {
48
- "type": "string",
49
- "description": "Natural-language query describing the desired BASIC or assembly guidance.",
50
- "minLength": 3
51
- },
52
- "k": {
53
- "type": [
54
- "integer",
55
- "null"
56
- ],
57
- "description": "Maximum number of references to return (1-12).",
58
- "minimum": 1,
59
- "maximum": 12,
60
- "default": 3
61
- },
62
- "op": {
63
- "const": "basic"
64
- }
65
- },
66
- "required": [
67
- "q",
68
- "op"
69
- ],
70
- "additionalProperties": false
71
- }
72
- },
73
- {
74
- "op": "asm",
75
- "description": "Retrieve 6502/6510 assembly references from the local knowledge base.",
76
- "required": [
77
- "q"
78
- ],
79
- "optional": [
80
- "k"
81
- ],
82
- "inputSchema": {
83
- "type": "object",
84
- "description": "Retrieve 6502/6510 assembly references from the local knowledge base.",
85
- "properties": {
86
- "q": {
87
- "type": "string",
88
- "description": "Natural-language query describing the desired BASIC or assembly guidance.",
89
- "minLength": 3
90
- },
91
- "k": {
92
- "type": [
93
- "integer",
94
- "null"
95
- ],
96
- "description": "Maximum number of references to return (1-12).",
97
- "minimum": 1,
98
- "maximum": 12,
99
- "default": 3
100
- },
101
- "op": {
102
- "const": "asm"
103
- }
104
- },
105
- "required": [
106
- "q",
107
- "op"
108
- ],
109
- "additionalProperties": false
110
- }
111
- }
112
- ]
32
+ "additionalProperties": false
113
33
  }
@@ -21,40 +21,6 @@
21
21
  "required": [
22
22
  "op"
23
23
  ],
24
- "description": "Runtime backend selection operations.\n\nOperations:\n- select: Switch the active runtime backend without restarting the MCP server. Required inputs: backend.",
25
- "additionalProperties": false,
26
- "x-c64bridge-operations": [
27
- {
28
- "op": "select",
29
- "description": "Switch the active runtime backend without restarting the MCP server.",
30
- "required": [
31
- "backend"
32
- ],
33
- "optional": [],
34
- "inputSchema": {
35
- "type": "object",
36
- "description": "Switch the active runtime backend without restarting the MCP server.",
37
- "properties": {
38
- "op": {
39
- "const": "select",
40
- "description": "Selects the select operation."
41
- },
42
- "backend": {
43
- "type": "string",
44
- "enum": [
45
- "c64u",
46
- "u2",
47
- "vice"
48
- ],
49
- "description": "Backend to activate for subsequent tool calls."
50
- }
51
- },
52
- "required": [
53
- "op",
54
- "backend"
55
- ],
56
- "additionalProperties": false
57
- }
58
- }
59
- ]
24
+ "description": "Runtime backend selection operations.\n\nOperations:\n- select [write]: Switch the active runtime backend without restarting the MCP server. Required inputs: backend.",
25
+ "additionalProperties": false
60
26
  }