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
@@ -1,120 +1,195 @@
1
1
  {
2
2
  "type": "object",
3
- "description": "Drive operations available via the c64_drive tool.",
4
- "oneOf": [
3
+ "properties": {
4
+ "op": {
5
+ "type": "string",
6
+ "enum": [
7
+ "reset",
8
+ "power_on",
9
+ "power_off",
10
+ "load_rom",
11
+ "set_mode"
12
+ ],
13
+ "description": "Selects the operation."
14
+ },
15
+ "drive": {
16
+ "type": "string",
17
+ "description": "Drive identifier such as drive8, drive9, or unit name defined in the Ultimate UI.",
18
+ "minLength": 1
19
+ },
20
+ "path": {
21
+ "type": "string",
22
+ "description": "Absolute or Ultimate filesystem path to the disk image to mount or manage.",
23
+ "minLength": 1
24
+ },
25
+ "mode": {
26
+ "type": "string",
27
+ "description": "Drive hardware profile to emulate.",
28
+ "enum": [
29
+ "1541",
30
+ "1571",
31
+ "1581"
32
+ ]
33
+ }
34
+ },
35
+ "required": [
36
+ "op"
37
+ ],
38
+ "description": "Drive operations available via the c64_drive tool.\n\nOperations:\n- reset: Issue an IEC reset for the selected drive slot. Required inputs: drive.\n- power_on: Power on a specific Ultimate drive slot. Required inputs: drive.\n- power_off: Power off a specific Ultimate drive slot. Required inputs: drive.\n- load_rom: Temporarily load a custom ROM into an Ultimate drive slot. Required inputs: drive, path.\n- set_mode: Set the emulation mode for a drive slot (1541/1571/1581). Required inputs: drive, mode.",
39
+ "additionalProperties": false,
40
+ "x-c64bridge-operations": [
5
41
  {
6
- "type": "object",
42
+ "op": "reset",
7
43
  "description": "Issue an IEC reset for the selected drive slot.",
8
- "properties": {
9
- "drive": {
10
- "type": "string",
11
- "description": "Drive identifier such as drive8, drive9, or unit name defined in the Ultimate UI.",
12
- "minLength": 1
13
- },
14
- "op": {
15
- "const": "reset"
16
- }
17
- },
18
44
  "required": [
19
- "drive",
20
- "op"
45
+ "drive"
21
46
  ],
22
- "additionalProperties": false
47
+ "optional": [],
48
+ "inputSchema": {
49
+ "type": "object",
50
+ "description": "Issue an IEC reset for the selected drive slot.",
51
+ "properties": {
52
+ "drive": {
53
+ "type": "string",
54
+ "description": "Drive identifier such as drive8, drive9, or unit name defined in the Ultimate UI.",
55
+ "minLength": 1
56
+ },
57
+ "op": {
58
+ "const": "reset"
59
+ }
60
+ },
61
+ "required": [
62
+ "drive",
63
+ "op"
64
+ ],
65
+ "additionalProperties": false
66
+ }
23
67
  },
24
68
  {
25
- "type": "object",
69
+ "op": "power_on",
26
70
  "description": "Power on a specific Ultimate drive slot.",
27
- "properties": {
28
- "drive": {
29
- "type": "string",
30
- "description": "Drive identifier such as drive8, drive9, or unit name defined in the Ultimate UI.",
31
- "minLength": 1
32
- },
33
- "op": {
34
- "const": "power_on"
35
- }
36
- },
37
71
  "required": [
38
- "drive",
39
- "op"
72
+ "drive"
40
73
  ],
41
- "additionalProperties": false
74
+ "optional": [],
75
+ "inputSchema": {
76
+ "type": "object",
77
+ "description": "Power on a specific Ultimate drive slot.",
78
+ "properties": {
79
+ "drive": {
80
+ "type": "string",
81
+ "description": "Drive identifier such as drive8, drive9, or unit name defined in the Ultimate UI.",
82
+ "minLength": 1
83
+ },
84
+ "op": {
85
+ "const": "power_on"
86
+ }
87
+ },
88
+ "required": [
89
+ "drive",
90
+ "op"
91
+ ],
92
+ "additionalProperties": false
93
+ }
42
94
  },
43
95
  {
44
- "type": "object",
96
+ "op": "power_off",
45
97
  "description": "Power off a specific Ultimate drive slot.",
46
- "properties": {
47
- "drive": {
48
- "type": "string",
49
- "description": "Drive identifier such as drive8, drive9, or unit name defined in the Ultimate UI.",
50
- "minLength": 1
51
- },
52
- "op": {
53
- "const": "power_off"
54
- }
55
- },
56
98
  "required": [
57
- "drive",
58
- "op"
99
+ "drive"
59
100
  ],
60
- "additionalProperties": false
101
+ "optional": [],
102
+ "inputSchema": {
103
+ "type": "object",
104
+ "description": "Power off a specific Ultimate drive slot.",
105
+ "properties": {
106
+ "drive": {
107
+ "type": "string",
108
+ "description": "Drive identifier such as drive8, drive9, or unit name defined in the Ultimate UI.",
109
+ "minLength": 1
110
+ },
111
+ "op": {
112
+ "const": "power_off"
113
+ }
114
+ },
115
+ "required": [
116
+ "drive",
117
+ "op"
118
+ ],
119
+ "additionalProperties": false
120
+ }
61
121
  },
62
122
  {
63
- "type": "object",
123
+ "op": "load_rom",
64
124
  "description": "Temporarily load a custom ROM into an Ultimate drive slot.",
65
- "properties": {
66
- "drive": {
67
- "type": "string",
68
- "description": "Drive identifier such as drive8, drive9, or unit name defined in the Ultimate UI.",
69
- "minLength": 1
70
- },
71
- "path": {
72
- "type": "string",
73
- "description": "Absolute or Ultimate filesystem path to the disk image to mount or manage.",
74
- "minLength": 1
75
- },
76
- "op": {
77
- "const": "load_rom"
78
- }
79
- },
80
125
  "required": [
81
126
  "drive",
82
- "path",
83
- "op"
127
+ "path"
84
128
  ],
85
- "additionalProperties": false
129
+ "optional": [],
130
+ "inputSchema": {
131
+ "type": "object",
132
+ "description": "Temporarily load a custom ROM into an Ultimate drive slot.",
133
+ "properties": {
134
+ "drive": {
135
+ "type": "string",
136
+ "description": "Drive identifier such as drive8, drive9, or unit name defined in the Ultimate UI.",
137
+ "minLength": 1
138
+ },
139
+ "path": {
140
+ "type": "string",
141
+ "description": "Absolute or Ultimate filesystem path to the disk image to mount or manage.",
142
+ "minLength": 1
143
+ },
144
+ "op": {
145
+ "const": "load_rom"
146
+ }
147
+ },
148
+ "required": [
149
+ "drive",
150
+ "path",
151
+ "op"
152
+ ],
153
+ "additionalProperties": false
154
+ }
86
155
  },
87
156
  {
88
- "type": "object",
157
+ "op": "set_mode",
89
158
  "description": "Set the emulation mode for a drive slot (1541/1571/1581).",
90
- "properties": {
91
- "drive": {
92
- "type": "string",
93
- "description": "Drive identifier such as drive8, drive9, or unit name defined in the Ultimate UI.",
94
- "minLength": 1
95
- },
96
- "mode": {
97
- "type": "string",
98
- "description": "Drive hardware profile to emulate.",
99
- "enum": [
100
- "1541",
101
- "1571",
102
- "1581"
103
- ]
104
- },
105
- "op": {
106
- "const": "set_mode"
107
- }
108
- },
109
159
  "required": [
110
160
  "drive",
111
- "mode",
112
- "op"
161
+ "mode"
113
162
  ],
114
- "additionalProperties": false
163
+ "optional": [],
164
+ "inputSchema": {
165
+ "type": "object",
166
+ "description": "Set the emulation mode for a drive slot (1541/1571/1581).",
167
+ "properties": {
168
+ "drive": {
169
+ "type": "string",
170
+ "description": "Drive identifier such as drive8, drive9, or unit name defined in the Ultimate UI.",
171
+ "minLength": 1
172
+ },
173
+ "mode": {
174
+ "type": "string",
175
+ "description": "Drive hardware profile to emulate.",
176
+ "enum": [
177
+ "1541",
178
+ "1571",
179
+ "1581"
180
+ ]
181
+ },
182
+ "op": {
183
+ "const": "set_mode"
184
+ }
185
+ },
186
+ "required": [
187
+ "drive",
188
+ "mode",
189
+ "op"
190
+ ],
191
+ "additionalProperties": false
192
+ }
115
193
  }
116
- ],
117
- "discriminator": {
118
- "propertyName": "op"
119
- }
194
+ ]
120
195
  }