c64bridge 0.8.1 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/.github/prompts/steer.prompt.md +55 -0
  2. package/AGENTS.md +9 -7
  3. package/README.md +192 -154
  4. package/data/embeddings_asm.json +1 -1
  5. package/data/embeddings_basic.json +1 -1
  6. package/data/embeddings_hardware.json +1 -1
  7. package/data/embeddings_mixed.json +1 -1
  8. package/data/embeddings_other.json +1 -1
  9. package/data/graphics/petscii-style-guide.md +4 -4
  10. package/data/graphics/sprite-charset-best-practices.md +9 -9
  11. package/data/vice/vice-binary-monitor-spec.md +938 -0
  12. package/dist/.tsbuildinfo +1 -1
  13. package/dist/c64Client.js +76 -2
  14. package/dist/device.js +129 -13
  15. package/dist/mcp-server.js +1 -1
  16. package/dist/prompts/registry.js +27 -25
  17. package/dist/rag/indexer.js +18 -8
  18. package/dist/rag/knowledgeIndex.js +112 -79
  19. package/dist/rag/resourceUris.js +93 -0
  20. package/dist/sidwaveCompiler.js +1 -1
  21. package/dist/{assemblyConverter.js → tools/assember.js} +10 -1
  22. package/dist/tools/audio.js +11 -11
  23. package/dist/{basicConverter.js → tools/basicTokenizer.js} +1 -1
  24. package/dist/tools/debug.js +159 -6
  25. package/dist/tools/developer.js +13 -13
  26. package/dist/tools/disassembler.js +478 -0
  27. package/dist/tools/graphics.js +10 -10
  28. package/dist/tools/input.js +338 -0
  29. package/dist/tools/machineControl.js +5 -5
  30. package/dist/tools/memory.js +336 -12
  31. package/dist/tools/meta/index.js +1 -1
  32. package/dist/tools/printer.js +11 -12
  33. package/dist/tools/programRunners.js +61 -22
  34. package/dist/tools/rag.js +9 -9
  35. package/dist/tools/registry/batch.js +167 -0
  36. package/dist/tools/registry/config.js +1 -1
  37. package/dist/tools/registry/disk.js +1 -1
  38. package/dist/tools/registry/drive.js +1 -1
  39. package/dist/tools/registry/extract.js +1 -1
  40. package/dist/tools/registry/graphics.js +102 -2
  41. package/dist/tools/registry/index.js +4 -0
  42. package/dist/tools/registry/input.js +2 -0
  43. package/dist/tools/registry/memory.js +62 -2
  44. package/dist/tools/registry/platform.js +1 -1
  45. package/dist/tools/registry/printer.js +1 -1
  46. package/dist/tools/registry/program.js +1 -1
  47. package/dist/tools/registry/rag.js +1 -1
  48. package/dist/tools/registry/sound.js +1 -1
  49. package/dist/tools/registry/stream.js +1 -1
  50. package/dist/tools/registry/system.js +1 -1
  51. package/dist/tools/schema.js +4 -5
  52. package/dist/tools/storage.js +15 -15
  53. package/dist/tools/streaming.js +3 -3
  54. package/dist/tools/symbolRegistry.js +49 -0
  55. package/dist/tools/types.js +56 -4
  56. package/dist/tools/vice.js +2 -5
  57. package/dist/vice/process.js +120 -2
  58. package/dist/vice/readiness.js +35 -0
  59. package/dist/vice/smokeOptions.js +44 -0
  60. package/dist/vice/viceClient.js +5 -1
  61. package/dist/viceRunner.js +2 -0
  62. package/doc/plans/prompts/README.md +7 -7
  63. package/mcp/prompts.json +42 -59
  64. package/mcp/protocol-examples.json +2 -2
  65. package/mcp/resources.json +179 -166
  66. package/mcp/schemas/c64_batch.schema.json +53 -0
  67. package/mcp/schemas/c64_config.schema.json +525 -283
  68. package/mcp/schemas/c64_debug.schema.json +763 -304
  69. package/mcp/schemas/c64_disk.schema.json +499 -243
  70. package/mcp/schemas/c64_drive.schema.json +165 -90
  71. package/mcp/schemas/c64_extract.schema.json +533 -274
  72. package/mcp/schemas/c64_graphics.schema.json +607 -295
  73. package/mcp/schemas/c64_input.schema.json +136 -0
  74. package/mcp/schemas/c64_memory.schema.json +637 -128
  75. package/mcp/schemas/c64_printer.schema.json +393 -196
  76. package/mcp/schemas/c64_program.schema.json +699 -340
  77. package/mcp/schemas/c64_rag.schema.json +100 -54
  78. package/mcp/schemas/c64_select_backend.schema.json +49 -23
  79. package/mcp/schemas/c64_sound.schema.json +1092 -577
  80. package/mcp/schemas/c64_stream.schema.json +89 -47
  81. package/mcp/schemas/c64_system.schema.json +351 -185
  82. package/mcp/schemas/c64_vice.schema.json +85 -47
  83. package/mcp/server.json +1 -1
  84. package/mcp/tools.json +7299 -3346
  85. package/mcp.json +3 -3
  86. package/package.json +17 -14
  87. package/scripts/fetch-external-sources.mjs +1 -2
  88. package/scripts/run-coverage.mjs +33 -1
  89. package/scripts/run-tests.mjs +2 -2
  90. package/scripts/run-tests.ts +275 -52
  91. package/scripts/update-readme.ts +132 -3
  92. package/server.json +2 -2
@@ -0,0 +1,136 @@
1
+ {
2
+ "type": "object",
3
+ "description": "Input operations: write_text, key, joystick.",
4
+ "oneOf": [
5
+ {
6
+ "type": "object",
7
+ "description": "Send a text string to the keyboard buffer, with PETSCII token expansion.",
8
+ "properties": {
9
+ "op": {
10
+ "const": "write_text"
11
+ },
12
+ "text": {
13
+ "type": "string",
14
+ "description": "Text to type. Use {RETURN}, {CLR}, {F1}…{F8}, {UP/DOWN/LEFT/RIGHT}, colour names, etc.",
15
+ "minLength": 1,
16
+ "maxLength": 512
17
+ },
18
+ "delayMs": {
19
+ "type": [
20
+ "integer",
21
+ "null"
22
+ ],
23
+ "description": "Delay in ms after sending (default 0).",
24
+ "minimum": 0,
25
+ "maximum": 10000,
26
+ "default": 0
27
+ }
28
+ },
29
+ "required": [
30
+ "op",
31
+ "text"
32
+ ],
33
+ "additionalProperties": false
34
+ },
35
+ {
36
+ "type": "object",
37
+ "description": "Tap a single key or hold it for a duration.",
38
+ "properties": {
39
+ "op": {
40
+ "const": "key"
41
+ },
42
+ "key": {
43
+ "type": "string",
44
+ "description": "Key to press: a printable character, or a PETSCII token name (RETURN, F1…F8, UP, etc.).",
45
+ "minLength": 1,
46
+ "maxLength": 32
47
+ },
48
+ "durationMs": {
49
+ "type": [
50
+ "integer",
51
+ "null"
52
+ ],
53
+ "description": "Delay in ms after each queued key press before the next press (default 0 = no delay).",
54
+ "minimum": 0,
55
+ "maximum": 5000,
56
+ "default": 0
57
+ },
58
+ "count": {
59
+ "type": [
60
+ "integer",
61
+ "null"
62
+ ],
63
+ "description": "Number of times to press the key (default 1).",
64
+ "minimum": 1,
65
+ "maximum": 100,
66
+ "default": 1
67
+ }
68
+ },
69
+ "required": [
70
+ "op",
71
+ "key"
72
+ ],
73
+ "additionalProperties": false
74
+ },
75
+ {
76
+ "type": "object",
77
+ "description": "Simulate joystick input by writing directly to CIA1 Port A/B registers.",
78
+ "properties": {
79
+ "op": {
80
+ "const": "joystick"
81
+ },
82
+ "port": {
83
+ "type": "integer",
84
+ "description": "Joystick port (1 = $DC01, 2 = $DC00).",
85
+ "minimum": 1,
86
+ "maximum": 2
87
+ },
88
+ "controls": {
89
+ "type": "array",
90
+ "description": "List of controls to activate simultaneously.",
91
+ "items": {
92
+ "type": "string",
93
+ "description": "Control to activate.",
94
+ "enum": [
95
+ "up",
96
+ "down",
97
+ "left",
98
+ "right",
99
+ "fire"
100
+ ]
101
+ },
102
+ "minItems": 0
103
+ },
104
+ "action": {
105
+ "type": "string",
106
+ "description": "press = hold until a release call; release = restore all bits; tap = press then release after durationMs.",
107
+ "enum": [
108
+ "press",
109
+ "release",
110
+ "tap"
111
+ ]
112
+ },
113
+ "durationMs": {
114
+ "type": [
115
+ "integer",
116
+ "null"
117
+ ],
118
+ "description": "Duration to hold for tap action in ms (default 80).",
119
+ "minimum": 10,
120
+ "maximum": 5000,
121
+ "default": 80
122
+ }
123
+ },
124
+ "required": [
125
+ "op",
126
+ "port",
127
+ "controls",
128
+ "action"
129
+ ],
130
+ "additionalProperties": false
131
+ }
132
+ ],
133
+ "discriminator": {
134
+ "propertyName": "op"
135
+ }
136
+ }