c64bridge 0.9.1 → 0.9.2

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.
@@ -1,136 +1,254 @@
1
1
  {
2
2
  "type": "object",
3
- "description": "Input operations: write_text, key, joystick.",
4
- "oneOf": [
3
+ "properties": {
4
+ "op": {
5
+ "type": "string",
6
+ "enum": [
7
+ "write_text",
8
+ "key",
9
+ "joystick"
10
+ ],
11
+ "description": "Selects the operation."
12
+ },
13
+ "text": {
14
+ "type": "string",
15
+ "description": "Text to type. Use {RETURN}, {CLR}, {F1}…{F8}, {UP/DOWN/LEFT/RIGHT}, colour names, etc.",
16
+ "minLength": 1,
17
+ "maxLength": 512
18
+ },
19
+ "delayMs": {
20
+ "type": [
21
+ "integer",
22
+ "null"
23
+ ],
24
+ "description": "Delay in ms after sending (default 0).",
25
+ "minimum": 0,
26
+ "maximum": 10000,
27
+ "default": 0
28
+ },
29
+ "key": {
30
+ "type": "string",
31
+ "description": "Key to press: a printable character, or a PETSCII token name (RETURN, F1…F8, UP, etc.).",
32
+ "minLength": 1,
33
+ "maxLength": 32
34
+ },
35
+ "durationMs": {
36
+ "type": [
37
+ "integer",
38
+ "null"
39
+ ],
40
+ "description": "Delay in ms after each queued key press before the next press (default 0 = no delay).",
41
+ "minimum": 0,
42
+ "maximum": 5000,
43
+ "default": 0
44
+ },
45
+ "count": {
46
+ "type": [
47
+ "integer",
48
+ "null"
49
+ ],
50
+ "description": "Number of times to press the key (default 1).",
51
+ "minimum": 1,
52
+ "maximum": 100,
53
+ "default": 1
54
+ },
55
+ "port": {
56
+ "type": "integer",
57
+ "description": "Joystick port (1 = $DC01, 2 = $DC00).",
58
+ "minimum": 1,
59
+ "maximum": 2
60
+ },
61
+ "controls": {
62
+ "type": "array",
63
+ "description": "List of controls to activate simultaneously.",
64
+ "items": {
65
+ "type": "string",
66
+ "description": "Control to activate.",
67
+ "enum": [
68
+ "up",
69
+ "down",
70
+ "left",
71
+ "right",
72
+ "fire"
73
+ ]
74
+ },
75
+ "minItems": 0
76
+ },
77
+ "action": {
78
+ "type": "string",
79
+ "description": "press = hold until a release call; release = restore all bits; tap = press then release after durationMs.",
80
+ "enum": [
81
+ "press",
82
+ "release",
83
+ "tap"
84
+ ]
85
+ }
86
+ },
87
+ "required": [
88
+ "op"
89
+ ],
90
+ "description": "Input operations: write_text, key, joystick.\n\nOperations:\n- write_text: Send a text string to the keyboard buffer, with PETSCII token expansion. Required inputs: text. Optional inputs: delayMs.\n- key: Tap a single key or hold it for a duration. Required inputs: key. Optional inputs: durationMs, count.\n- joystick: Simulate joystick input by writing directly to CIA1 Port A/B registers. Required inputs: port, controls, action. Optional inputs: durationMs.",
91
+ "additionalProperties": false,
92
+ "x-c64bridge-operations": [
5
93
  {
6
- "type": "object",
94
+ "op": "write_text",
7
95
  "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
96
  "required": [
30
- "op",
31
97
  "text"
32
98
  ],
33
- "additionalProperties": false
99
+ "optional": [
100
+ "delayMs"
101
+ ],
102
+ "inputSchema": {
103
+ "type": "object",
104
+ "description": "Send a text string to the keyboard buffer, with PETSCII token expansion.",
105
+ "properties": {
106
+ "op": {
107
+ "const": "write_text"
108
+ },
109
+ "text": {
110
+ "type": "string",
111
+ "description": "Text to type. Use {RETURN}, {CLR}, {F1}…{F8}, {UP/DOWN/LEFT/RIGHT}, colour names, etc.",
112
+ "minLength": 1,
113
+ "maxLength": 512
114
+ },
115
+ "delayMs": {
116
+ "type": [
117
+ "integer",
118
+ "null"
119
+ ],
120
+ "description": "Delay in ms after sending (default 0).",
121
+ "minimum": 0,
122
+ "maximum": 10000,
123
+ "default": 0
124
+ }
125
+ },
126
+ "required": [
127
+ "op",
128
+ "text"
129
+ ],
130
+ "additionalProperties": false
131
+ }
34
132
  },
35
133
  {
36
- "type": "object",
134
+ "op": "key",
37
135
  "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
136
  "required": [
70
- "op",
71
137
  "key"
72
138
  ],
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": {
139
+ "optional": [
140
+ "durationMs",
141
+ "count"
142
+ ],
143
+ "inputSchema": {
144
+ "type": "object",
145
+ "description": "Tap a single key or hold it for a duration.",
146
+ "properties": {
147
+ "op": {
148
+ "const": "key"
149
+ },
150
+ "key": {
92
151
  "type": "string",
93
- "description": "Control to activate.",
94
- "enum": [
95
- "up",
96
- "down",
97
- "left",
98
- "right",
99
- "fire"
100
- ]
152
+ "description": "Key to press: a printable character, or a PETSCII token name (RETURN, F1…F8, UP, etc.).",
153
+ "minLength": 1,
154
+ "maxLength": 32
101
155
  },
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
- ]
156
+ "durationMs": {
157
+ "type": [
158
+ "integer",
159
+ "null"
160
+ ],
161
+ "description": "Delay in ms after each queued key press before the next press (default 0 = no delay).",
162
+ "minimum": 0,
163
+ "maximum": 5000,
164
+ "default": 0
165
+ },
166
+ "count": {
167
+ "type": [
168
+ "integer",
169
+ "null"
170
+ ],
171
+ "description": "Number of times to press the key (default 1).",
172
+ "minimum": 1,
173
+ "maximum": 100,
174
+ "default": 1
175
+ }
112
176
  },
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
- },
177
+ "required": [
178
+ "op",
179
+ "key"
180
+ ],
181
+ "additionalProperties": false
182
+ }
183
+ },
184
+ {
185
+ "op": "joystick",
186
+ "description": "Simulate joystick input by writing directly to CIA1 Port A/B registers.",
124
187
  "required": [
125
- "op",
126
188
  "port",
127
189
  "controls",
128
190
  "action"
129
191
  ],
130
- "additionalProperties": false
192
+ "optional": [
193
+ "durationMs"
194
+ ],
195
+ "inputSchema": {
196
+ "type": "object",
197
+ "description": "Simulate joystick input by writing directly to CIA1 Port A/B registers.",
198
+ "properties": {
199
+ "op": {
200
+ "const": "joystick"
201
+ },
202
+ "port": {
203
+ "type": "integer",
204
+ "description": "Joystick port (1 = $DC01, 2 = $DC00).",
205
+ "minimum": 1,
206
+ "maximum": 2
207
+ },
208
+ "controls": {
209
+ "type": "array",
210
+ "description": "List of controls to activate simultaneously.",
211
+ "items": {
212
+ "type": "string",
213
+ "description": "Control to activate.",
214
+ "enum": [
215
+ "up",
216
+ "down",
217
+ "left",
218
+ "right",
219
+ "fire"
220
+ ]
221
+ },
222
+ "minItems": 0
223
+ },
224
+ "action": {
225
+ "type": "string",
226
+ "description": "press = hold until a release call; release = restore all bits; tap = press then release after durationMs.",
227
+ "enum": [
228
+ "press",
229
+ "release",
230
+ "tap"
231
+ ]
232
+ },
233
+ "durationMs": {
234
+ "type": [
235
+ "integer",
236
+ "null"
237
+ ],
238
+ "description": "Duration to hold for tap action in ms (default 80).",
239
+ "minimum": 10,
240
+ "maximum": 5000,
241
+ "default": 80
242
+ }
243
+ },
244
+ "required": [
245
+ "op",
246
+ "port",
247
+ "controls",
248
+ "action"
249
+ ],
250
+ "additionalProperties": false
251
+ }
131
252
  }
132
- ],
133
- "discriminator": {
134
- "propertyName": "op"
135
- }
253
+ ]
136
254
  }
package/mcp/server.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "c64bridge",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "Stdio-based Model Context Protocol (MCP) server that bridges Commodore 64 Ultimate hardware with AI agents.",
5
5
  "transports": [
6
6
  "stdio"