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
@@ -53,8 +53,7 @@
53
53
  "boolean",
54
54
  "null"
55
55
  ],
56
- "description": "Whether the checkpoint is enabled (default true).",
57
- "default": true
56
+ "description": "Whether the checkpoint is enabled (default true). Limits depend on op."
58
57
  },
59
58
  "temporary": {
60
59
  "type": [
@@ -236,604 +235,6 @@
236
235
  "required": [
237
236
  "op"
238
237
  ],
239
- "description": "Available debugger operations.\n\nOperations:\n- list_checkpoints: List all active VICE checkpoints (breakpoints). Required inputs: none.\n- get_checkpoint: Fetch a single checkpoint by id. Required inputs: id.\n- create_checkpoint: Create a new checkpoint (breakpoint) in VICE. Required inputs: address. Optional inputs: endAddress, stopOnHit, enabled, temporary, label, operations, memspace.\n- delete_checkpoint: Remove a checkpoint by id. Required inputs: id.\n- toggle_checkpoint: Enable or disable a checkpoint by id. Required inputs: id, enabled.\n- set_condition: Attach a conditional expression to a checkpoint. Required inputs: id, expression.\n- list_registers: List available registers (metadata). Required inputs: none. Optional inputs: memspace.\n- get_registers: Read register values, optionally filtered by name or id. Required inputs: none. Optional inputs: memspace, registers.\n- set_registers: Write register values. Required inputs: writes. Optional inputs: memspace.\n- step: Single-step CPU execution. Required inputs: none. Optional inputs: count, mode.\n- step_return: Continue execution until the current routine returns. Required inputs: none.\n- get_monitor_state: Read CPU registers and return the current monitor state. Required inputs: none. Optional inputs: memspace.\n- wait_for_state: Poll CPU registers until PC equals expectedPC or timeout elapses. Required inputs: none. Optional inputs: expectedPC, timeoutMs, pollMs.\n- nuclear_reset: Kill and restart the VICE process (managed instances only). Required inputs: none.\n- continue_execution: Exit the Binary Monitor and resume CPU execution (BM 0xAA Exit). Required inputs: none.",
240
- "additionalProperties": false,
241
- "x-c64bridge-operations": [
242
- {
243
- "op": "list_checkpoints",
244
- "description": "List all active VICE checkpoints (breakpoints).",
245
- "required": [],
246
- "optional": [],
247
- "inputSchema": {
248
- "type": "object",
249
- "description": "List all active VICE checkpoints (breakpoints).",
250
- "properties": {
251
- "op": {
252
- "const": "list_checkpoints"
253
- }
254
- },
255
- "required": [
256
- "op"
257
- ],
258
- "additionalProperties": false
259
- }
260
- },
261
- {
262
- "op": "get_checkpoint",
263
- "description": "Fetch a single checkpoint by id.",
264
- "required": [
265
- "id"
266
- ],
267
- "optional": [],
268
- "inputSchema": {
269
- "type": "object",
270
- "description": "Fetch a single checkpoint by id.",
271
- "properties": {
272
- "op": {
273
- "const": "get_checkpoint"
274
- },
275
- "id": {
276
- "type": "integer",
277
- "description": "Debugger checkpoint identifier.",
278
- "minimum": 1
279
- }
280
- },
281
- "required": [
282
- "op",
283
- "id"
284
- ],
285
- "additionalProperties": false
286
- }
287
- },
288
- {
289
- "op": "create_checkpoint",
290
- "description": "Create a new checkpoint (breakpoint) in VICE.",
291
- "required": [
292
- "address"
293
- ],
294
- "optional": [
295
- "endAddress",
296
- "stopOnHit",
297
- "enabled",
298
- "temporary",
299
- "label",
300
- "operations",
301
- "memspace"
302
- ],
303
- "inputSchema": {
304
- "type": "object",
305
- "description": "Create a new checkpoint (breakpoint) in VICE.",
306
- "properties": {
307
- "op": {
308
- "const": "create_checkpoint"
309
- },
310
- "address": {
311
- "type": "string",
312
- "description": "Start address (e.g. $0801).",
313
- "minLength": 1
314
- },
315
- "endAddress": {
316
- "type": [
317
- "string",
318
- "null"
319
- ],
320
- "description": "Optional end address for range.",
321
- "minLength": 1
322
- },
323
- "stopOnHit": {
324
- "type": [
325
- "boolean",
326
- "null"
327
- ],
328
- "description": "Pause execution when hit (default true).",
329
- "default": true
330
- },
331
- "enabled": {
332
- "type": [
333
- "boolean",
334
- "null"
335
- ],
336
- "description": "Whether the checkpoint is enabled (default true).",
337
- "default": true
338
- },
339
- "temporary": {
340
- "type": [
341
- "boolean",
342
- "null"
343
- ],
344
- "description": "Automatically remove after first hit.",
345
- "default": false
346
- },
347
- "label": {
348
- "type": [
349
- "string",
350
- "null"
351
- ],
352
- "description": "Optional human-readable label stored in-process.",
353
- "maxLength": 64
354
- },
355
- "operations": {
356
- "type": [
357
- "object",
358
- "null"
359
- ],
360
- "description": "Checkpoint operation filters.",
361
- "properties": {
362
- "execute": {
363
- "type": [
364
- "boolean",
365
- "null"
366
- ],
367
- "description": "Trigger on execute (default true).",
368
- "default": true
369
- },
370
- "load": {
371
- "type": [
372
- "boolean",
373
- "null"
374
- ],
375
- "description": "Trigger on memory load.",
376
- "default": false
377
- },
378
- "store": {
379
- "type": [
380
- "boolean",
381
- "null"
382
- ],
383
- "description": "Trigger on memory store.",
384
- "default": false
385
- }
386
- },
387
- "additionalProperties": false
388
- },
389
- "memspace": {
390
- "type": [
391
- "integer",
392
- "null"
393
- ],
394
- "description": "VICE memory space (0=CPU, 1=Drive8, etc.).",
395
- "minimum": 0,
396
- "maximum": 4
397
- }
398
- },
399
- "required": [
400
- "op",
401
- "address"
402
- ],
403
- "additionalProperties": false
404
- }
405
- },
406
- {
407
- "op": "delete_checkpoint",
408
- "description": "Remove a checkpoint by id.",
409
- "required": [
410
- "id"
411
- ],
412
- "optional": [],
413
- "inputSchema": {
414
- "type": "object",
415
- "description": "Remove a checkpoint by id.",
416
- "properties": {
417
- "op": {
418
- "const": "delete_checkpoint"
419
- },
420
- "id": {
421
- "type": "integer",
422
- "description": "Debugger checkpoint identifier.",
423
- "minimum": 1
424
- }
425
- },
426
- "required": [
427
- "op",
428
- "id"
429
- ],
430
- "additionalProperties": false
431
- }
432
- },
433
- {
434
- "op": "toggle_checkpoint",
435
- "description": "Enable or disable a checkpoint by id.",
436
- "required": [
437
- "id",
438
- "enabled"
439
- ],
440
- "optional": [],
441
- "inputSchema": {
442
- "type": "object",
443
- "description": "Enable or disable a checkpoint by id.",
444
- "properties": {
445
- "op": {
446
- "const": "toggle_checkpoint"
447
- },
448
- "id": {
449
- "type": "integer",
450
- "description": "Debugger checkpoint identifier.",
451
- "minimum": 1
452
- },
453
- "enabled": {
454
- "type": "boolean",
455
- "description": "Set to true to enable, false to disable."
456
- }
457
- },
458
- "required": [
459
- "op",
460
- "id",
461
- "enabled"
462
- ],
463
- "additionalProperties": false
464
- }
465
- },
466
- {
467
- "op": "set_condition",
468
- "description": "Attach a conditional expression to a checkpoint.",
469
- "required": [
470
- "id",
471
- "expression"
472
- ],
473
- "optional": [],
474
- "inputSchema": {
475
- "type": "object",
476
- "description": "Attach a conditional expression to a checkpoint.",
477
- "properties": {
478
- "op": {
479
- "const": "set_condition"
480
- },
481
- "id": {
482
- "type": "integer",
483
- "description": "Debugger checkpoint identifier.",
484
- "minimum": 1
485
- },
486
- "expression": {
487
- "type": "string",
488
- "description": "VICE monitor conditional expression.",
489
- "minLength": 1
490
- }
491
- },
492
- "required": [
493
- "op",
494
- "id",
495
- "expression"
496
- ],
497
- "additionalProperties": false
498
- }
499
- },
500
- {
501
- "op": "list_registers",
502
- "description": "List available registers (metadata).",
503
- "required": [],
504
- "optional": [
505
- "memspace"
506
- ],
507
- "inputSchema": {
508
- "type": "object",
509
- "description": "List available registers (metadata).",
510
- "properties": {
511
- "op": {
512
- "const": "list_registers"
513
- },
514
- "memspace": {
515
- "type": [
516
- "integer",
517
- "null"
518
- ],
519
- "description": "VICE memory space (0=CPU, 1=Drive8, etc.).",
520
- "minimum": 0,
521
- "maximum": 4
522
- }
523
- },
524
- "required": [
525
- "op"
526
- ],
527
- "additionalProperties": false
528
- }
529
- },
530
- {
531
- "op": "get_registers",
532
- "description": "Read register values, optionally filtered by name or id.",
533
- "required": [],
534
- "optional": [
535
- "memspace",
536
- "registers"
537
- ],
538
- "inputSchema": {
539
- "type": "object",
540
- "description": "Read register values, optionally filtered by name or id.",
541
- "properties": {
542
- "op": {
543
- "const": "get_registers"
544
- },
545
- "memspace": {
546
- "type": [
547
- "integer",
548
- "null"
549
- ],
550
- "description": "VICE memory space (0=CPU, 1=Drive8, etc.).",
551
- "minimum": 0,
552
- "maximum": 4
553
- },
554
- "registers": {
555
- "type": [
556
- "array",
557
- "null"
558
- ],
559
- "description": "Registers to include.",
560
- "items": {
561
- "type": "object",
562
- "description": "Selects a register by id or name.",
563
- "properties": {
564
- "name": {
565
- "type": [
566
- "string",
567
- "null"
568
- ],
569
- "description": "Register name (case-insensitive)."
570
- },
571
- "id": {
572
- "type": [
573
- "integer",
574
- "null"
575
- ],
576
- "description": "Register id.",
577
- "minimum": 0
578
- }
579
- },
580
- "additionalProperties": false
581
- }
582
- }
583
- },
584
- "required": [
585
- "op"
586
- ],
587
- "additionalProperties": false
588
- }
589
- },
590
- {
591
- "op": "set_registers",
592
- "description": "Write register values.",
593
- "required": [
594
- "writes"
595
- ],
596
- "optional": [
597
- "memspace"
598
- ],
599
- "inputSchema": {
600
- "type": "object",
601
- "description": "Write register values.",
602
- "properties": {
603
- "op": {
604
- "const": "set_registers"
605
- },
606
- "memspace": {
607
- "type": [
608
- "integer",
609
- "null"
610
- ],
611
- "description": "VICE memory space (0=CPU, 1=Drive8, etc.).",
612
- "minimum": 0,
613
- "maximum": 4
614
- },
615
- "writes": {
616
- "type": "array",
617
- "description": "Register writes to apply.",
618
- "items": {
619
- "type": "object",
620
- "description": "Register write descriptor.",
621
- "properties": {
622
- "name": {
623
- "type": [
624
- "string",
625
- "null"
626
- ],
627
- "description": "Register name (case-insensitive)."
628
- },
629
- "id": {
630
- "type": [
631
- "integer",
632
- "null"
633
- ],
634
- "description": "Register id.",
635
- "minimum": 0
636
- },
637
- "value": {
638
- "type": "integer",
639
- "description": "Value to write.",
640
- "minimum": 0
641
- }
642
- },
643
- "required": [
644
- "value"
645
- ],
646
- "additionalProperties": false
647
- },
648
- "minItems": 1
649
- }
650
- },
651
- "required": [
652
- "op",
653
- "writes"
654
- ],
655
- "additionalProperties": false
656
- }
657
- },
658
- {
659
- "op": "step",
660
- "description": "Single-step CPU execution.",
661
- "required": [],
662
- "optional": [
663
- "count",
664
- "mode"
665
- ],
666
- "inputSchema": {
667
- "type": "object",
668
- "description": "Single-step CPU execution.",
669
- "properties": {
670
- "op": {
671
- "const": "step"
672
- },
673
- "count": {
674
- "type": [
675
- "integer",
676
- "null"
677
- ],
678
- "description": "Number of instructions to step.",
679
- "minimum": 1,
680
- "default": 1
681
- },
682
- "mode": {
683
- "type": [
684
- "string",
685
- "null"
686
- ],
687
- "description": "Step mode (into or over).",
688
- "enum": [
689
- "into",
690
- "over"
691
- ]
692
- }
693
- },
694
- "required": [
695
- "op"
696
- ],
697
- "additionalProperties": false
698
- }
699
- },
700
- {
701
- "op": "step_return",
702
- "description": "Continue execution until the current routine returns.",
703
- "required": [],
704
- "optional": [],
705
- "inputSchema": {
706
- "type": "object",
707
- "description": "Continue execution until the current routine returns.",
708
- "properties": {
709
- "op": {
710
- "const": "step_return"
711
- }
712
- },
713
- "required": [
714
- "op"
715
- ],
716
- "additionalProperties": false
717
- }
718
- },
719
- {
720
- "op": "get_monitor_state",
721
- "description": "Read CPU registers and return the current monitor state.",
722
- "required": [],
723
- "optional": [
724
- "memspace"
725
- ],
726
- "inputSchema": {
727
- "type": "object",
728
- "description": "Read CPU registers and return the current monitor state.",
729
- "properties": {
730
- "op": {
731
- "const": "get_monitor_state"
732
- },
733
- "memspace": {
734
- "type": [
735
- "integer",
736
- "null"
737
- ],
738
- "description": "VICE memory space (0=CPU, 1=Drive8, etc.).",
739
- "minimum": 0,
740
- "maximum": 4
741
- }
742
- },
743
- "required": [
744
- "op"
745
- ],
746
- "additionalProperties": false
747
- }
748
- },
749
- {
750
- "op": "wait_for_state",
751
- "description": "Poll CPU registers until PC equals expectedPC or timeout elapses.",
752
- "required": [],
753
- "optional": [
754
- "expectedPC",
755
- "timeoutMs",
756
- "pollMs"
757
- ],
758
- "inputSchema": {
759
- "type": "object",
760
- "description": "Poll CPU registers until PC equals expectedPC or timeout elapses.",
761
- "properties": {
762
- "op": {
763
- "const": "wait_for_state"
764
- },
765
- "expectedPC": {
766
- "type": [
767
- "string",
768
- "null"
769
- ],
770
- "description": "Target PC address to wait for (e.g. $0810).",
771
- "minLength": 1
772
- },
773
- "timeoutMs": {
774
- "type": [
775
- "integer",
776
- "null"
777
- ],
778
- "description": "Maximum wait time in milliseconds.",
779
- "minimum": 1,
780
- "maximum": 60000,
781
- "default": 5000
782
- },
783
- "pollMs": {
784
- "type": [
785
- "integer",
786
- "null"
787
- ],
788
- "description": "Poll interval in milliseconds.",
789
- "minimum": 10,
790
- "maximum": 1000,
791
- "default": 100
792
- }
793
- },
794
- "required": [
795
- "op"
796
- ],
797
- "additionalProperties": false
798
- }
799
- },
800
- {
801
- "op": "nuclear_reset",
802
- "description": "Kill and restart the VICE process (managed instances only).",
803
- "required": [],
804
- "optional": [],
805
- "inputSchema": {
806
- "type": "object",
807
- "description": "Kill and restart the VICE process (managed instances only).",
808
- "properties": {
809
- "op": {
810
- "const": "nuclear_reset"
811
- }
812
- },
813
- "required": [
814
- "op"
815
- ],
816
- "additionalProperties": false
817
- }
818
- },
819
- {
820
- "op": "continue_execution",
821
- "description": "Exit the Binary Monitor and resume CPU execution (BM 0xAA Exit).",
822
- "required": [],
823
- "optional": [],
824
- "inputSchema": {
825
- "type": "object",
826
- "description": "Exit the Binary Monitor and resume CPU execution (BM 0xAA Exit).",
827
- "properties": {
828
- "op": {
829
- "const": "continue_execution"
830
- }
831
- },
832
- "required": [
833
- "op"
834
- ],
835
- "additionalProperties": false
836
- }
837
- }
838
- ]
238
+ "description": "Available debugger operations.\n\nOperations:\n- list_checkpoints: List all active VICE checkpoints (breakpoints). Required inputs: none.\n- get_checkpoint: Fetch a single checkpoint by id. Required inputs: id.\n- create_checkpoint [write]: Create a new checkpoint (breakpoint) in VICE. Required inputs: address. Optional inputs: endAddress, stopOnHit, enabled, temporary, label, operations, memspace.\n- delete_checkpoint [write]: Remove a checkpoint by id. Required inputs: id.\n- toggle_checkpoint [write]: Enable or disable a checkpoint by id. Required inputs: id, enabled.\n- set_condition [write]: Attach a conditional expression to a checkpoint. Required inputs: id, expression.\n- list_registers: List available registers (metadata). Required inputs: none. Optional inputs: memspace.\n- get_registers: Read register values, optionally filtered by name or id. Required inputs: none. Optional inputs: memspace, registers.\n- set_registers [write]: Write register values. Required inputs: writes. Optional inputs: memspace.\n- step [write]: Single-step CPU execution. Required inputs: none. Optional inputs: count, mode.\n- step_return [write]: Continue execution until the current routine returns. Required inputs: none.\n- get_monitor_state: Read CPU registers and return the current monitor state. Required inputs: none. Optional inputs: memspace.\n- wait_for_state: Poll CPU registers until PC equals expectedPC or timeout elapses. Required inputs: none. Optional inputs: expectedPC, timeoutMs, pollMs.\n- nuclear_reset [write]: Kill and restart the VICE process (managed instances only). Required inputs: none.\n- continue_execution [write]: Exit the Binary Monitor and resume CPU execution (BM 0xAA Exit). Required inputs: none.",
239
+ "additionalProperties": false
839
240
  }