c64bridge 0.5.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 (138) hide show
  1. package/.github/prompts/README.md +6 -0
  2. package/.github/prompts/assembly-routine-session.prompt.md +13 -0
  3. package/.github/prompts/basic-program-session.prompt.md +13 -0
  4. package/.github/prompts/drive-management-session.prompt.md +13 -0
  5. package/.github/prompts/petscii-art-session.prompt.md +13 -0
  6. package/.github/prompts/play-classic-game.prompt.md +13 -0
  7. package/.github/prompts/sid-music-session.prompt.md +13 -0
  8. package/AGENTS.md +173 -0
  9. package/LICENSE +339 -0
  10. package/README.md +582 -0
  11. package/data/README.md +16 -0
  12. package/data/api/basic-api-spec.md +154 -0
  13. package/data/api/kernal-api-spec.md +68 -0
  14. package/data/assembly/assembly-spec.md +196 -0
  15. package/data/assembly/examples/effects/sinewave.asm +5 -0
  16. package/data/assembly/examples/graphics/sprite/mover.asm +15 -0
  17. package/data/assembly/examples/sid-file-structure.md +8 -0
  18. package/data/assembly/examples/sid-overview.md +11 -0
  19. package/data/audio/examples/Biosphere.sid +0 -0
  20. package/data/audio/sid-file-structure.md +91 -0
  21. package/data/audio/sid-programming-best-practices.md +198 -0
  22. package/data/audio/sid-spec.md +166 -0
  23. package/data/audio/sidwave.md +131 -0
  24. package/data/audio/sidwave.schema.json +64 -0
  25. package/data/basic/basic-spec.md +230 -0
  26. package/data/basic/examples/audio/alle-meine-entchen-expressive.bas +41 -0
  27. package/data/basic/examples/audio/c-major-scale-pleasant.bas +29 -0
  28. package/data/basic/examples/io/joystick.bas +5 -0
  29. package/data/basic/examples/video/bounce.bas +8 -0
  30. package/data/basic/examples/video/entchen-petscii.bas +16 -0
  31. package/data/basic/examples/video/hello-world.bas +4 -0
  32. package/data/basic/examples/video/wave.bas +7 -0
  33. package/data/context/bootstrap.md +148 -0
  34. package/data/context/chat.md +36 -0
  35. package/data/drive/drive-spec.md +215 -0
  36. package/data/embeddings_asm.json +1 -0
  37. package/data/embeddings_basic.json +1 -0
  38. package/data/embeddings_hardware.json +1 -0
  39. package/data/embeddings_mixed.json +1 -0
  40. package/data/embeddings_other.json +1 -0
  41. package/data/io/cia-spec.md +115 -0
  42. package/data/io/io-spec.md +124 -0
  43. package/data/memory/kernal-memory-map.md +227 -0
  44. package/data/memory/low-memory-map.md +133 -0
  45. package/data/memory/memory-map.md +186 -0
  46. package/data/printer/printer-commodore-bitmap.md +31 -0
  47. package/data/printer/printer-commodore.md +28 -0
  48. package/data/printer/printer-epson-bitmap.md +29 -0
  49. package/data/printer/printer-epson.md +30 -0
  50. package/data/printer/printer-prompts.md +29 -0
  51. package/data/printer/printer-spec.md +180 -0
  52. package/data/video/character-set.csv +257 -0
  53. package/data/video/vic-spec.md +276 -0
  54. package/dist/assemblyConverter.js +1299 -0
  55. package/dist/audio/record_and_analyze_audio.js +292 -0
  56. package/dist/basicConverter.js +193 -0
  57. package/dist/bootstrap/stdio-logger.js +32 -0
  58. package/dist/c64Client.js +1052 -0
  59. package/dist/chargen.js +197 -0
  60. package/dist/config.js +142 -0
  61. package/dist/context.js +157 -0
  62. package/dist/device.js +413 -0
  63. package/dist/index.js +7 -0
  64. package/dist/knowledge.js +454 -0
  65. package/dist/logger.js +182 -0
  66. package/dist/loggingHttpClient.js +88 -0
  67. package/dist/mcp-server.js +426 -0
  68. package/dist/petscii.js +135 -0
  69. package/dist/petsciiArt.js +356 -0
  70. package/dist/platform.js +82 -0
  71. package/dist/prompts/registry.js +560 -0
  72. package/dist/rag/discover.config.json +41 -0
  73. package/dist/rag/discover.js +401 -0
  74. package/dist/rag/embeddings.js +60 -0
  75. package/dist/rag/externalFetcher.js +934 -0
  76. package/dist/rag/indexer.js +770 -0
  77. package/dist/rag/init.js +139 -0
  78. package/dist/rag/knowledgeIndex.js +361 -0
  79. package/dist/rag/loggingRetriever.js +46 -0
  80. package/dist/rag/rateLimiter.js +127 -0
  81. package/dist/rag/retriever.js +74 -0
  82. package/dist/rag/sources.csv +31 -0
  83. package/dist/rag/types.js +5 -0
  84. package/dist/rag/urlUtils.js +38 -0
  85. package/dist/sidplayRunner.js +240 -0
  86. package/dist/sidwave.js +101 -0
  87. package/dist/sidwaveCompiler.js +329 -0
  88. package/dist/tools/audio.js +944 -0
  89. package/dist/tools/developer.js +515 -0
  90. package/dist/tools/errors.js +59 -0
  91. package/dist/tools/graphics.js +469 -0
  92. package/dist/tools/machineControl.js +267 -0
  93. package/dist/tools/memory.js +224 -0
  94. package/dist/tools/printer.js +482 -0
  95. package/dist/tools/programRunners.js +315 -0
  96. package/dist/tools/rag.js +153 -0
  97. package/dist/tools/registry.js +58 -0
  98. package/dist/tools/responses.js +36 -0
  99. package/dist/tools/schema.js +304 -0
  100. package/dist/tools/storage.js +740 -0
  101. package/dist/tools/streaming.js +132 -0
  102. package/dist/tools/types.js +99 -0
  103. package/dist/viceRunner.js +239 -0
  104. package/doc/MCP_SETUP.md +153 -0
  105. package/doc/README.md +7 -0
  106. package/doc/developer.md +312 -0
  107. package/doc/img/logo.png +0 -0
  108. package/doc/img/prompts/duck_petscii.png +0 -0
  109. package/doc/img/prompts/duck_song.png +0 -0
  110. package/doc/img/vscode/vscode-copilot-c64-chat-mode.png +0 -0
  111. package/doc/img/vscode/vscode-copilot-hello-world.png +0 -0
  112. package/doc/prompts/README.md +96 -0
  113. package/doc/prompts/user-prompt-ideas.md +147 -0
  114. package/doc/rest/c64-openapi.yaml +979 -0
  115. package/doc/rest/c64-rest-api.md +106 -0
  116. package/doc/troubleshooting-mcp.md +177 -0
  117. package/generated/c64/index.js +857 -0
  118. package/mcp.json +106 -0
  119. package/package.json +79 -0
  120. package/scripts/c64-cli.mjs +142 -0
  121. package/scripts/c64-tool.sh +83 -0
  122. package/scripts/check-package.mjs +89 -0
  123. package/scripts/cli.js +61 -0
  124. package/scripts/fetch-external-sources.mjs +67 -0
  125. package/scripts/generate-changelog.mjs +131 -0
  126. package/scripts/postbuild.mjs +101 -0
  127. package/scripts/prepare-release.mjs +58 -0
  128. package/scripts/rag-rebuild.mjs +53 -0
  129. package/scripts/register-ts-node.mjs +6 -0
  130. package/scripts/run-mcp-check.sh +104 -0
  131. package/scripts/run-tests.mjs +195 -0
  132. package/scripts/sid2wav.sh +94 -0
  133. package/scripts/smoke-run.sh +65 -0
  134. package/scripts/start-mock-c64.mjs +51 -0
  135. package/scripts/start-mock.mjs +31 -0
  136. package/scripts/start.mjs +72 -0
  137. package/scripts/update-readme.ts +164 -0
  138. package/scripts/verify-package.mjs +147 -0
@@ -0,0 +1,857 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /*
4
+ * ---------------------------------------------------------------
5
+ * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##
6
+ * ## ##
7
+ * ## AUTHOR: acacode ##
8
+ * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
9
+ * ---------------------------------------------------------------
10
+ */
11
+ import axios from "axios";
12
+ export var ContentType;
13
+ (function (ContentType) {
14
+ ContentType["Json"] = "application/json";
15
+ ContentType["FormData"] = "multipart/form-data";
16
+ ContentType["UrlEncoded"] = "application/x-www-form-urlencoded";
17
+ ContentType["Text"] = "text/plain";
18
+ })(ContentType || (ContentType = {}));
19
+ export class HttpClient {
20
+ constructor({ securityWorker, secure, format, ...axiosConfig } = {}) {
21
+ this.securityData = null;
22
+ this.setSecurityData = (data) => {
23
+ this.securityData = data;
24
+ };
25
+ this.request = async ({ secure, path, type, query, format, body, ...params }) => {
26
+ const secureParams = ((typeof secure === "boolean" ? secure : this.secure) &&
27
+ this.securityWorker &&
28
+ (await this.securityWorker(this.securityData))) ||
29
+ {};
30
+ const requestParams = this.mergeRequestParams(params, secureParams);
31
+ const responseFormat = format || this.format || undefined;
32
+ if (type === ContentType.FormData && body && body !== null && typeof body === "object") {
33
+ body = this.createFormData(body);
34
+ }
35
+ if (type === ContentType.Text && body && body !== null && typeof body !== "string") {
36
+ body = JSON.stringify(body);
37
+ }
38
+ return this.instance.request({
39
+ ...requestParams,
40
+ headers: {
41
+ ...(requestParams.headers || {}),
42
+ ...(type && type !== ContentType.FormData ? { "Content-Type": type } : {}),
43
+ },
44
+ params: query,
45
+ responseType: responseFormat,
46
+ data: body,
47
+ url: path,
48
+ });
49
+ };
50
+ this.instance = axios.create({ ...axiosConfig, baseURL: axiosConfig.baseURL || "http://c64u" });
51
+ this.secure = secure;
52
+ this.format = format;
53
+ this.securityWorker = securityWorker;
54
+ }
55
+ mergeRequestParams(params1, params2) {
56
+ const method = params1.method || (params2 && params2.method);
57
+ return {
58
+ ...this.instance.defaults,
59
+ ...params1,
60
+ ...(params2 || {}),
61
+ headers: {
62
+ ...((method && this.instance.defaults.headers[method.toLowerCase()]) || {}),
63
+ ...(params1.headers || {}),
64
+ ...((params2 && params2.headers) || {}),
65
+ },
66
+ };
67
+ }
68
+ stringifyFormItem(formItem) {
69
+ if (typeof formItem === "object" && formItem !== null) {
70
+ return JSON.stringify(formItem);
71
+ }
72
+ else {
73
+ return `${formItem}`;
74
+ }
75
+ }
76
+ createFormData(input) {
77
+ return Object.keys(input || {}).reduce((formData, key) => {
78
+ const property = input[key];
79
+ const propertyContent = property instanceof Array ? property : [property];
80
+ for (const formItem of propertyContent) {
81
+ const isFileType = formItem instanceof Blob || formItem instanceof File;
82
+ formData.append(key, isFileType ? formItem : this.stringifyFormItem(formItem));
83
+ }
84
+ return formData;
85
+ }, new FormData());
86
+ }
87
+ }
88
+ /**
89
+ * @title Ultimate 64 REST API
90
+ * @version 1.0.0
91
+ * @baseUrl http://c64u
92
+ *
93
+ * This OpenAPI document captures the public HTTP interface described in the
94
+ * official Ultimate 64 REST API documentation. Responses always include an
95
+ * `errors` array unless noted. When a network password is configured, clients
96
+ * must supply the `X-Password` header on every request.
97
+ */
98
+ export class Api {
99
+ constructor(http) {
100
+ this.v1 = {
101
+ /**
102
+ * No description
103
+ *
104
+ * @name VersionList
105
+ * @summary Get API version
106
+ * @request GET:/v1/version
107
+ * @secure
108
+ */
109
+ versionList: (params = {}) => this.http.request({
110
+ path: `/v1/version`,
111
+ method: "GET",
112
+ secure: true,
113
+ format: "json",
114
+ ...params,
115
+ }),
116
+ /**
117
+ * No description
118
+ *
119
+ * @name InfoList
120
+ * @summary Get device information
121
+ * @request GET:/v1/info
122
+ * @secure
123
+ */
124
+ infoList: (params = {}) => this.http.request({
125
+ path: `/v1/info`,
126
+ method: "GET",
127
+ secure: true,
128
+ format: "json",
129
+ ...params,
130
+ }),
131
+ /**
132
+ * No description
133
+ *
134
+ * @name RunnersSidplayUpdate
135
+ * @summary Play SID from filesystem
136
+ * @request PUT:/v1/runners:sidplay
137
+ * @secure
138
+ */
139
+ runnersSidplayUpdate: (sidplay, query, params = {}) => this.http.request({
140
+ path: `/v1/runners${sidplay}`,
141
+ method: "PUT",
142
+ query: query,
143
+ secure: true,
144
+ format: "json",
145
+ ...params,
146
+ }),
147
+ /**
148
+ * No description
149
+ *
150
+ * @name RunnersSidplayCreate
151
+ * @summary Play uploaded SID
152
+ * @request POST:/v1/runners:sidplay
153
+ * @secure
154
+ */
155
+ runnersSidplayCreate: (sidplay, data, query, params = {}) => this.http.request({
156
+ path: `/v1/runners${sidplay}`,
157
+ method: "POST",
158
+ query: query,
159
+ body: data,
160
+ secure: true,
161
+ type: ContentType.FormData,
162
+ format: "json",
163
+ ...params,
164
+ }),
165
+ /**
166
+ * No description
167
+ *
168
+ * @name RunnersModplayUpdate
169
+ * @summary Play MOD from filesystem
170
+ * @request PUT:/v1/runners:modplay
171
+ * @secure
172
+ */
173
+ runnersModplayUpdate: (modplay, query, params = {}) => this.http.request({
174
+ path: `/v1/runners${modplay}`,
175
+ method: "PUT",
176
+ query: query,
177
+ secure: true,
178
+ format: "json",
179
+ ...params,
180
+ }),
181
+ /**
182
+ * No description
183
+ *
184
+ * @name RunnersModplayCreate
185
+ * @summary Play uploaded MOD
186
+ * @request POST:/v1/runners:modplay
187
+ * @secure
188
+ */
189
+ runnersModplayCreate: (modplay, data, params = {}) => this.http.request({
190
+ path: `/v1/runners${modplay}`,
191
+ method: "POST",
192
+ body: data,
193
+ secure: true,
194
+ format: "json",
195
+ ...params,
196
+ }),
197
+ /**
198
+ * No description
199
+ *
200
+ * @name RunnersLoadPrgUpdate
201
+ * @summary Load PRG from filesystem
202
+ * @request PUT:/v1/runners:load_prg
203
+ * @secure
204
+ */
205
+ runnersLoadPrgUpdate: (loadPrg, query, params = {}) => this.http.request({
206
+ path: `/v1/runners${loadPrg}`,
207
+ method: "PUT",
208
+ query: query,
209
+ secure: true,
210
+ format: "json",
211
+ ...params,
212
+ }),
213
+ /**
214
+ * No description
215
+ *
216
+ * @name RunnersLoadPrgCreate
217
+ * @summary Load uploaded PRG
218
+ * @request POST:/v1/runners:load_prg
219
+ * @secure
220
+ */
221
+ runnersLoadPrgCreate: (loadPrg, data, params = {}) => this.http.request({
222
+ path: `/v1/runners${loadPrg}`,
223
+ method: "POST",
224
+ body: data,
225
+ secure: true,
226
+ format: "json",
227
+ ...params,
228
+ }),
229
+ /**
230
+ * No description
231
+ *
232
+ * @name RunnersRunPrgUpdate
233
+ * @summary Run PRG from filesystem
234
+ * @request PUT:/v1/runners:run_prg
235
+ * @secure
236
+ */
237
+ runnersRunPrgUpdate: (runPrg, query, params = {}) => this.http.request({
238
+ path: `/v1/runners${runPrg}`,
239
+ method: "PUT",
240
+ query: query,
241
+ secure: true,
242
+ format: "json",
243
+ ...params,
244
+ }),
245
+ /**
246
+ * No description
247
+ *
248
+ * @name RunnersRunPrgCreate
249
+ * @summary Run uploaded PRG
250
+ * @request POST:/v1/runners:run_prg
251
+ * @secure
252
+ */
253
+ runnersRunPrgCreate: (runPrg, data, params = {}) => this.http.request({
254
+ path: `/v1/runners${runPrg}`,
255
+ method: "POST",
256
+ body: data,
257
+ secure: true,
258
+ format: "json",
259
+ ...params,
260
+ }),
261
+ /**
262
+ * No description
263
+ *
264
+ * @name RunnersRunCrtUpdate
265
+ * @summary Run cartridge from filesystem
266
+ * @request PUT:/v1/runners:run_crt
267
+ * @secure
268
+ */
269
+ runnersRunCrtUpdate: (runCrt, query, params = {}) => this.http.request({
270
+ path: `/v1/runners${runCrt}`,
271
+ method: "PUT",
272
+ query: query,
273
+ secure: true,
274
+ format: "json",
275
+ ...params,
276
+ }),
277
+ /**
278
+ * No description
279
+ *
280
+ * @name RunnersRunCrtCreate
281
+ * @summary Run uploaded cartridge
282
+ * @request POST:/v1/runners:run_crt
283
+ * @secure
284
+ */
285
+ runnersRunCrtCreate: (runCrt, data, params = {}) => this.http.request({
286
+ path: `/v1/runners${runCrt}`,
287
+ method: "POST",
288
+ body: data,
289
+ secure: true,
290
+ format: "json",
291
+ ...params,
292
+ }),
293
+ /**
294
+ * No description
295
+ *
296
+ * @name ConfigsList
297
+ * @summary List configuration categories
298
+ * @request GET:/v1/configs
299
+ * @secure
300
+ */
301
+ configsList: (params = {}) => this.http.request({
302
+ path: `/v1/configs`,
303
+ method: "GET",
304
+ secure: true,
305
+ format: "json",
306
+ ...params,
307
+ }),
308
+ /**
309
+ * No description
310
+ *
311
+ * @name ConfigsCreate
312
+ * @summary Batch update configuration
313
+ * @request POST:/v1/configs
314
+ * @secure
315
+ */
316
+ configsCreate: (data, params = {}) => this.http.request({
317
+ path: `/v1/configs`,
318
+ method: "POST",
319
+ body: data,
320
+ secure: true,
321
+ type: ContentType.Json,
322
+ format: "json",
323
+ ...params,
324
+ }),
325
+ /**
326
+ * No description
327
+ *
328
+ * @name ConfigsDetail
329
+ * @summary Inspect category
330
+ * @request GET:/v1/configs/{category}
331
+ * @secure
332
+ */
333
+ configsDetail: (category, params = {}) => this.http.request({
334
+ path: `/v1/configs/${category}`,
335
+ method: "GET",
336
+ secure: true,
337
+ format: "json",
338
+ ...params,
339
+ }),
340
+ /**
341
+ * No description
342
+ *
343
+ * @name ConfigsDetail2
344
+ * @summary Inspect configuration item
345
+ * @request GET:/v1/configs/{category}/{item}
346
+ * @originalName configsDetail
347
+ * @duplicate
348
+ * @secure
349
+ */
350
+ configsDetail2: (category, item, params = {}) => this.http.request({
351
+ path: `/v1/configs/${category}/${item}`,
352
+ method: "GET",
353
+ secure: true,
354
+ format: "json",
355
+ ...params,
356
+ }),
357
+ /**
358
+ * No description
359
+ *
360
+ * @name ConfigsUpdate
361
+ * @summary Update configuration item
362
+ * @request PUT:/v1/configs/{category}/{item}
363
+ * @secure
364
+ */
365
+ configsUpdate: (category, item, query, params = {}) => this.http.request({
366
+ path: `/v1/configs/${category}/${item}`,
367
+ method: "PUT",
368
+ query: query,
369
+ secure: true,
370
+ format: "json",
371
+ ...params,
372
+ }),
373
+ /**
374
+ * No description
375
+ *
376
+ * @name ConfigsLoadFromFlashUpdate
377
+ * @summary Load configuration from flash
378
+ * @request PUT:/v1/configs:load_from_flash
379
+ * @secure
380
+ */
381
+ configsLoadFromFlashUpdate: (loadFromFlash, params = {}) => this.http.request({
382
+ path: `/v1/configs${loadFromFlash}`,
383
+ method: "PUT",
384
+ secure: true,
385
+ format: "json",
386
+ ...params,
387
+ }),
388
+ /**
389
+ * No description
390
+ *
391
+ * @name ConfigsSaveToFlashUpdate
392
+ * @summary Save configuration to flash
393
+ * @request PUT:/v1/configs:save_to_flash
394
+ * @secure
395
+ */
396
+ configsSaveToFlashUpdate: (saveToFlash, params = {}) => this.http.request({
397
+ path: `/v1/configs${saveToFlash}`,
398
+ method: "PUT",
399
+ secure: true,
400
+ format: "json",
401
+ ...params,
402
+ }),
403
+ /**
404
+ * No description
405
+ *
406
+ * @name ConfigsResetToDefaultUpdate
407
+ * @summary Reset configuration to defaults
408
+ * @request PUT:/v1/configs:reset_to_default
409
+ * @secure
410
+ */
411
+ configsResetToDefaultUpdate: (resetToDefault, params = {}) => this.http.request({
412
+ path: `/v1/configs${resetToDefault}`,
413
+ method: "PUT",
414
+ secure: true,
415
+ format: "json",
416
+ ...params,
417
+ }),
418
+ /**
419
+ * No description
420
+ *
421
+ * @name MachineResetUpdate
422
+ * @summary Soft reset machine
423
+ * @request PUT:/v1/machine:reset
424
+ * @secure
425
+ */
426
+ machineResetUpdate: (reset, params = {}) => this.http.request({
427
+ path: `/v1/machine${reset}`,
428
+ method: "PUT",
429
+ secure: true,
430
+ format: "json",
431
+ ...params,
432
+ }),
433
+ /**
434
+ * No description
435
+ *
436
+ * @name MachineRebootUpdate
437
+ * @summary Reboot machine
438
+ * @request PUT:/v1/machine:reboot
439
+ * @secure
440
+ */
441
+ machineRebootUpdate: (reboot, params = {}) => this.http.request({
442
+ path: `/v1/machine${reboot}`,
443
+ method: "PUT",
444
+ secure: true,
445
+ format: "json",
446
+ ...params,
447
+ }),
448
+ /**
449
+ * No description
450
+ *
451
+ * @name MachinePauseUpdate
452
+ * @summary Pause machine via DMA
453
+ * @request PUT:/v1/machine:pause
454
+ * @secure
455
+ */
456
+ machinePauseUpdate: (pause, params = {}) => this.http.request({
457
+ path: `/v1/machine${pause}`,
458
+ method: "PUT",
459
+ secure: true,
460
+ format: "json",
461
+ ...params,
462
+ }),
463
+ /**
464
+ * No description
465
+ *
466
+ * @name MachineResumeUpdate
467
+ * @summary Resume machine from pause
468
+ * @request PUT:/v1/machine:resume
469
+ * @secure
470
+ */
471
+ machineResumeUpdate: (resume, params = {}) => this.http.request({
472
+ path: `/v1/machine${resume}`,
473
+ method: "PUT",
474
+ secure: true,
475
+ format: "json",
476
+ ...params,
477
+ }),
478
+ /**
479
+ * No description
480
+ *
481
+ * @name MachinePoweroffUpdate
482
+ * @summary Power off machine
483
+ * @request PUT:/v1/machine:poweroff
484
+ * @secure
485
+ */
486
+ machinePoweroffUpdate: (poweroff, params = {}) => this.http.request({
487
+ path: `/v1/machine${poweroff}`,
488
+ method: "PUT",
489
+ secure: true,
490
+ format: "json",
491
+ ...params,
492
+ }),
493
+ /**
494
+ * No description
495
+ *
496
+ * @name MachineMenuButtonUpdate
497
+ * @summary Toggle Ultimate menu button
498
+ * @request PUT:/v1/machine:menu_button
499
+ * @secure
500
+ */
501
+ machineMenuButtonUpdate: (menuButton, params = {}) => this.http.request({
502
+ path: `/v1/machine${menuButton}`,
503
+ method: "PUT",
504
+ secure: true,
505
+ format: "json",
506
+ ...params,
507
+ }),
508
+ /**
509
+ * No description
510
+ *
511
+ * @name MachineWritememUpdate
512
+ * @summary Write memory via query data
513
+ * @request PUT:/v1/machine:writemem
514
+ * @secure
515
+ */
516
+ machineWritememUpdate: (writemem, query, params = {}) => this.http.request({
517
+ path: `/v1/machine${writemem}`,
518
+ method: "PUT",
519
+ query: query,
520
+ secure: true,
521
+ format: "json",
522
+ ...params,
523
+ }),
524
+ /**
525
+ * No description
526
+ *
527
+ * @name MachineWritememCreate
528
+ * @summary Write memory via binary payload
529
+ * @request POST:/v1/machine:writemem
530
+ * @secure
531
+ */
532
+ machineWritememCreate: (writemem, query, data, params = {}) => this.http.request({
533
+ path: `/v1/machine${writemem}`,
534
+ method: "POST",
535
+ query: query,
536
+ body: data,
537
+ secure: true,
538
+ format: "json",
539
+ ...params,
540
+ }),
541
+ /**
542
+ * No description
543
+ *
544
+ * @name MachineReadmemList
545
+ * @summary Read memory
546
+ * @request GET:/v1/machine:readmem
547
+ * @secure
548
+ */
549
+ machineReadmemList: (readmem, query, params = {}) => this.http.request({
550
+ path: `/v1/machine${readmem}`,
551
+ method: "GET",
552
+ query: query,
553
+ secure: true,
554
+ format: "json",
555
+ ...params,
556
+ }),
557
+ /**
558
+ * No description
559
+ *
560
+ * @name MachineDebugregList
561
+ * @summary Read debug register
562
+ * @request GET:/v1/machine:debugreg
563
+ * @secure
564
+ */
565
+ machineDebugregList: (debugreg, params = {}) => this.http.request({
566
+ path: `/v1/machine${debugreg}`,
567
+ method: "GET",
568
+ secure: true,
569
+ format: "json",
570
+ ...params,
571
+ }),
572
+ /**
573
+ * No description
574
+ *
575
+ * @name MachineDebugregUpdate
576
+ * @summary Write debug register
577
+ * @request PUT:/v1/machine:debugreg
578
+ * @secure
579
+ */
580
+ machineDebugregUpdate: (debugreg, query, params = {}) => this.http.request({
581
+ path: `/v1/machine${debugreg}`,
582
+ method: "PUT",
583
+ query: query,
584
+ secure: true,
585
+ format: "json",
586
+ ...params,
587
+ }),
588
+ /**
589
+ * No description
590
+ *
591
+ * @name DrivesList
592
+ * @summary List internal drives
593
+ * @request GET:/v1/drives
594
+ * @secure
595
+ */
596
+ drivesList: (params = {}) => this.http.request({
597
+ path: `/v1/drives`,
598
+ method: "GET",
599
+ secure: true,
600
+ format: "json",
601
+ ...params,
602
+ }),
603
+ /**
604
+ * No description
605
+ *
606
+ * @name DrivesMountUpdate
607
+ * @summary Mount disk image from filesystem
608
+ * @request PUT:/v1/drives/{drive}:mount
609
+ * @secure
610
+ */
611
+ drivesMountUpdate: (drive, mount, query, params = {}) => this.http.request({
612
+ path: `/v1/drives/${drive}${mount}`,
613
+ method: "PUT",
614
+ query: query,
615
+ secure: true,
616
+ format: "json",
617
+ ...params,
618
+ }),
619
+ /**
620
+ * No description
621
+ *
622
+ * @name DrivesMountCreate
623
+ * @summary Mount uploaded disk image
624
+ * @request POST:/v1/drives/{drive}:mount
625
+ * @secure
626
+ */
627
+ drivesMountCreate: (drive, mount, data, query, params = {}) => this.http.request({
628
+ path: `/v1/drives/${drive}${mount}`,
629
+ method: "POST",
630
+ query: query,
631
+ body: data,
632
+ secure: true,
633
+ format: "json",
634
+ ...params,
635
+ }),
636
+ /**
637
+ * No description
638
+ *
639
+ * @name DrivesResetUpdate
640
+ * @summary Reset drive
641
+ * @request PUT:/v1/drives/{drive}:reset
642
+ * @secure
643
+ */
644
+ drivesResetUpdate: (drive, reset, params = {}) => this.http.request({
645
+ path: `/v1/drives/${drive}${reset}`,
646
+ method: "PUT",
647
+ secure: true,
648
+ format: "json",
649
+ ...params,
650
+ }),
651
+ /**
652
+ * No description
653
+ *
654
+ * @name DrivesRemoveUpdate
655
+ * @summary Remove mounted image
656
+ * @request PUT:/v1/drives/{drive}:remove
657
+ * @secure
658
+ */
659
+ drivesRemoveUpdate: (drive, remove, params = {}) => this.http.request({
660
+ path: `/v1/drives/${drive}${remove}`,
661
+ method: "PUT",
662
+ secure: true,
663
+ format: "json",
664
+ ...params,
665
+ }),
666
+ /**
667
+ * No description
668
+ *
669
+ * @name DrivesOnUpdate
670
+ * @summary Power on drive
671
+ * @request PUT:/v1/drives/{drive}:on
672
+ * @secure
673
+ */
674
+ drivesOnUpdate: (drive, on, params = {}) => this.http.request({
675
+ path: `/v1/drives/${drive}${on}`,
676
+ method: "PUT",
677
+ secure: true,
678
+ format: "json",
679
+ ...params,
680
+ }),
681
+ /**
682
+ * No description
683
+ *
684
+ * @name DrivesOffUpdate
685
+ * @summary Power off drive
686
+ * @request PUT:/v1/drives/{drive}:off
687
+ * @secure
688
+ */
689
+ drivesOffUpdate: (drive, off, params = {}) => this.http.request({
690
+ path: `/v1/drives/${drive}${off}`,
691
+ method: "PUT",
692
+ secure: true,
693
+ format: "json",
694
+ ...params,
695
+ }),
696
+ /**
697
+ * No description
698
+ *
699
+ * @name DrivesLoadRomUpdate
700
+ * @summary Load ROM from filesystem
701
+ * @request PUT:/v1/drives/{drive}:load_rom
702
+ * @secure
703
+ */
704
+ drivesLoadRomUpdate: (drive, loadRom, query, params = {}) => this.http.request({
705
+ path: `/v1/drives/${drive}${loadRom}`,
706
+ method: "PUT",
707
+ query: query,
708
+ secure: true,
709
+ format: "json",
710
+ ...params,
711
+ }),
712
+ /**
713
+ * No description
714
+ *
715
+ * @name DrivesLoadRomCreate
716
+ * @summary Load ROM from upload
717
+ * @request POST:/v1/drives/{drive}:load_rom
718
+ * @secure
719
+ */
720
+ drivesLoadRomCreate: (drive, loadRom, data, params = {}) => this.http.request({
721
+ path: `/v1/drives/${drive}${loadRom}`,
722
+ method: "POST",
723
+ body: data,
724
+ secure: true,
725
+ format: "json",
726
+ ...params,
727
+ }),
728
+ /**
729
+ * No description
730
+ *
731
+ * @name DrivesSetModeUpdate
732
+ * @summary Set drive mode
733
+ * @request PUT:/v1/drives/{drive}:set_mode
734
+ * @secure
735
+ */
736
+ drivesSetModeUpdate: (drive, setMode, query, params = {}) => this.http.request({
737
+ path: `/v1/drives/${drive}${setMode}`,
738
+ method: "PUT",
739
+ query: query,
740
+ secure: true,
741
+ format: "json",
742
+ ...params,
743
+ }),
744
+ /**
745
+ * No description
746
+ *
747
+ * @name StreamsStartUpdate
748
+ * @summary Start data stream
749
+ * @request PUT:/v1/streams/{stream}:start
750
+ * @secure
751
+ */
752
+ streamsStartUpdate: (stream, start, query, params = {}) => this.http.request({
753
+ path: `/v1/streams/${stream}${start}`,
754
+ method: "PUT",
755
+ query: query,
756
+ secure: true,
757
+ format: "json",
758
+ ...params,
759
+ }),
760
+ /**
761
+ * No description
762
+ *
763
+ * @name StreamsStopUpdate
764
+ * @summary Stop data stream
765
+ * @request PUT:/v1/streams/{stream}:stop
766
+ * @secure
767
+ */
768
+ streamsStopUpdate: (stream, stop, params = {}) => this.http.request({
769
+ path: `/v1/streams/${stream}${stop}`,
770
+ method: "PUT",
771
+ secure: true,
772
+ format: "json",
773
+ ...params,
774
+ }),
775
+ /**
776
+ * No description
777
+ *
778
+ * @name FilesInfoDetail
779
+ * @summary Inspect file metadata
780
+ * @request GET:/v1/files/{path}:info
781
+ * @secure
782
+ */
783
+ filesInfoDetail: (path, info, params = {}) => this.http.request({
784
+ path: `/v1/files/${path}${info}`,
785
+ method: "GET",
786
+ secure: true,
787
+ format: "json",
788
+ ...params,
789
+ }),
790
+ /**
791
+ * No description
792
+ *
793
+ * @name FilesCreateD64Update
794
+ * @summary Create D64 image
795
+ * @request PUT:/v1/files/{path}:create_d64
796
+ * @secure
797
+ */
798
+ filesCreateD64Update: (path, createD64, query, params = {}) => this.http.request({
799
+ path: `/v1/files/${path}${createD64}`,
800
+ method: "PUT",
801
+ query: query,
802
+ secure: true,
803
+ format: "json",
804
+ ...params,
805
+ }),
806
+ /**
807
+ * No description
808
+ *
809
+ * @name FilesCreateD71Update
810
+ * @summary Create D71 image
811
+ * @request PUT:/v1/files/{path}:create_d71
812
+ * @secure
813
+ */
814
+ filesCreateD71Update: (path, createD71, query, params = {}) => this.http.request({
815
+ path: `/v1/files/${path}${createD71}`,
816
+ method: "PUT",
817
+ query: query,
818
+ secure: true,
819
+ format: "json",
820
+ ...params,
821
+ }),
822
+ /**
823
+ * No description
824
+ *
825
+ * @name FilesCreateD81Update
826
+ * @summary Create D81 image
827
+ * @request PUT:/v1/files/{path}:create_d81
828
+ * @secure
829
+ */
830
+ filesCreateD81Update: (path, createD81, query, params = {}) => this.http.request({
831
+ path: `/v1/files/${path}${createD81}`,
832
+ method: "PUT",
833
+ query: query,
834
+ secure: true,
835
+ format: "json",
836
+ ...params,
837
+ }),
838
+ /**
839
+ * No description
840
+ *
841
+ * @name FilesCreateDnpUpdate
842
+ * @summary Create DNP image
843
+ * @request PUT:/v1/files/{path}:create_dnp
844
+ * @secure
845
+ */
846
+ filesCreateDnpUpdate: (path, createDnp, query, params = {}) => this.http.request({
847
+ path: `/v1/files/${path}${createDnp}`,
848
+ method: "PUT",
849
+ query: query,
850
+ secure: true,
851
+ format: "json",
852
+ ...params,
853
+ }),
854
+ };
855
+ this.http = http;
856
+ }
857
+ }