argsbarg 6.1.10 → 6.2.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 (130) hide show
  1. package/CHANGELOG.md +10 -1
  2. package/README.md +43 -41
  3. package/docs/README.md +3 -2
  4. package/docs/ai-skills.md +36 -23
  5. package/docs/cli-program.md +12 -11
  6. package/docs/config-schema.md +3 -3
  7. package/docs/configure.md +12 -16
  8. package/docs/developing.md +6 -6
  9. package/docs/mcp.md +21 -57
  10. package/docs/output-schema.md +2 -2
  11. package/examples/formats.ts +5 -6
  12. package/examples/full-example/README.md +7 -69
  13. package/examples/full-example/docs/cli-schema.json +1 -1659
  14. package/examples/full-example/docs/cli.md +2 -1538
  15. package/examples/full-example/docs/http.md +0 -7
  16. package/examples/full-example/docs/mcp.md +23 -59
  17. package/examples/full-example/docs/openapi.json +2 -782
  18. package/examples/full-example/docs/skill.md +18 -14
  19. package/examples/full-example/justfile +5 -17
  20. package/examples/full-example/scripts/create-identity.ts +2 -1
  21. package/examples/full-example/src/commands/status/command.test.ts +2 -2
  22. package/examples/full-example/src/commands/status/command.ts +7 -6
  23. package/examples/full-example/src/program.ts +4 -10
  24. package/examples/full-example-json/Formula/.gitkeep +0 -0
  25. package/examples/full-example-json/Formula/full-example-json.rb +35 -0
  26. package/examples/full-example-json/README.md +27 -0
  27. package/examples/full-example-json/biome.json +22 -0
  28. package/examples/full-example-json/bun.lock +48 -0
  29. package/examples/full-example-json/docs/README.md +27 -0
  30. package/examples/full-example-json/docs/cli-schema.json +2145 -0
  31. package/examples/full-example-json/docs/cli.md +1990 -0
  32. package/examples/full-example-json/docs/http.md +92 -0
  33. package/examples/full-example-json/docs/mcp.md +116 -0
  34. package/examples/full-example-json/docs/openapi.json +1246 -0
  35. package/examples/full-example-json/docs/skill.md +57 -0
  36. package/examples/full-example-json/justfile +171 -0
  37. package/examples/full-example-json/package.json +22 -0
  38. package/examples/full-example-json/scripts/create-identity.ts +12 -0
  39. package/examples/full-example-json/scripts/dev-formula.ts +97 -0
  40. package/examples/full-example-json/scripts/formula-shared.test.ts +68 -0
  41. package/examples/full-example-json/scripts/formula-shared.ts +170 -0
  42. package/examples/full-example-json/scripts/print-identity.ts +28 -0
  43. package/examples/full-example-json/scripts/release.ts +212 -0
  44. package/examples/full-example-json/src/commands/echo/command.ts +26 -0
  45. package/examples/full-example-json/src/commands/status/command.test.ts +10 -0
  46. package/examples/full-example-json/src/commands/status/command.ts +28 -0
  47. package/examples/full-example-json/src/index.ts +10 -0
  48. package/examples/full-example-json/src/program.ts +33 -0
  49. package/examples/full-example-json/src/types/md.d.ts +4 -0
  50. package/examples/full-example-json/tsconfig.json +17 -0
  51. package/examples/minimal.ts +17 -17
  52. package/examples/nested.ts +10 -10
  53. package/examples/option-required.ts +13 -13
  54. package/examples/servers.ts +10 -10
  55. package/index.d.ts +17 -43
  56. package/package.json +1 -1
  57. package/src/cli-tool/create.test.ts +44 -68
  58. package/src/cli-tool/create.ts +81 -17
  59. package/src/cli-tool/full-example-capabilities.test.ts +33 -18
  60. package/src/cli-tool/post-create.ts +31 -17
  61. package/src/cli-tool/program.ts +16 -7
  62. package/src/cli-tool/prompt.ts +27 -0
  63. package/src/cli-tool/run-create.ts +19 -7
  64. package/src/cli-tool/schemagen/schemagen.test.ts +3 -3
  65. package/src/configure/artifacts/install-validate.test.ts +20 -33
  66. package/src/configure/artifacts/paths.ts +9 -53
  67. package/src/configure/artifacts/status.test.ts +13 -16
  68. package/src/configure/artifacts/status.ts +5 -22
  69. package/src/configure/artifacts/target-base.ts +6 -15
  70. package/src/configure/artifacts/target-effective.ts +16 -54
  71. package/src/configure/artifacts/target-mcp-json.ts +2 -5
  72. package/src/configure/artifacts/target-registry.ts +0 -7
  73. package/src/configure/artifacts/target-scope.ts +7 -17
  74. package/src/configure/artifacts/target-skill.ts +6 -15
  75. package/src/configure/artifacts/target-types.ts +6 -54
  76. package/src/configure/artifacts/targets/agents-mcp.ts +11 -0
  77. package/src/configure/artifacts/targets/configure.ts +1 -5
  78. package/src/configure/artifacts/targets/index.ts +4 -44
  79. package/src/configure/artifacts/targets/skill.ts +12 -0
  80. package/src/configure/artifacts/targets.test.ts +21 -59
  81. package/src/configure/configure.test.ts +35 -46
  82. package/src/configure/index.ts +19 -19
  83. package/src/configure/prompt.ts +2 -12
  84. package/src/core/parse.test.ts +21 -32
  85. package/src/core/types.ts +18 -44
  86. package/src/core/validate.ts +28 -45
  87. package/src/docs/docs.test.ts +4 -4
  88. package/src/docs/mcp-guide.ts +41 -71
  89. package/src/docs/resolve.ts +1 -1
  90. package/src/exports/cli.ts +1 -1
  91. package/src/index.ts +1 -1
  92. package/src/skill/generate.ts +26 -45
  93. package/src/skill/install.ts +18 -38
  94. package/src/skill/naming.ts +3 -27
  95. package/src/test/integration/config.test.ts +3 -3
  96. package/src/test/integration/mcp.test.ts +4 -4
  97. package/{examples/mcp-test.ts → src/test/mcp-integration-fixture.ts} +20 -22
  98. package/src/configure/artifacts/target-mcp-cli.ts +0 -127
  99. package/src/configure/artifacts/targets/chatgpt-mcp.ts +0 -12
  100. package/src/configure/artifacts/targets/claude-code-mcp.ts +0 -15
  101. package/src/configure/artifacts/targets/claude-desktop-mcp.ts +0 -12
  102. package/src/configure/artifacts/targets/claude-skill.ts +0 -16
  103. package/src/configure/artifacts/targets/codex-mcp.ts +0 -25
  104. package/src/configure/artifacts/targets/codex-skill.ts +0 -14
  105. package/src/configure/artifacts/targets/cursor-mcp.ts +0 -15
  106. package/src/configure/artifacts/targets/cursor-skill.ts +0 -16
  107. package/src/configure/artifacts/targets/openclaw-mcp.ts +0 -25
  108. package/src/configure/artifacts/targets/openclaw-skill.ts +0 -17
  109. package/src/configure/artifacts/targets/opencode-mcp.ts +0 -96
  110. package/src/configure/artifacts/targets/opencode-skill.ts +0 -15
  111. /package/examples/{full-example → full-example-json}/src/commands/render-json/__generated__/RenderJsonInputSchema.json +0 -0
  112. /package/examples/{full-example → full-example-json}/src/commands/render-json/__generated__/index.ts +0 -0
  113. /package/examples/{full-example → full-example-json}/src/commands/render-json/command.test.ts +0 -0
  114. /package/examples/{full-example → full-example-json}/src/commands/render-json/command.ts +0 -0
  115. /package/examples/{full-example → full-example-json}/src/commands/render-json/types.ts +0 -0
  116. /package/examples/{full-example → full-example-json}/src/commands/status/__generated__/StatusJsonOutputSchema.json +0 -0
  117. /package/examples/{full-example → full-example-json}/src/commands/status/__generated__/index.ts +0 -0
  118. /package/examples/{full-example → full-example-json}/src/commands/status/types.ts +0 -0
  119. /package/examples/{full-example → full-example-json}/src/commands/workspaces/__generated__/WorkspaceNameInputSchema.json +0 -0
  120. /package/examples/{full-example → full-example-json}/src/commands/workspaces/__generated__/index.ts +0 -0
  121. /package/examples/{full-example → full-example-json}/src/commands/workspaces/command.test.ts +0 -0
  122. /package/examples/{full-example → full-example-json}/src/commands/workspaces/command.ts +0 -0
  123. /package/examples/{full-example → full-example-json}/src/commands/workspaces/types.ts +0 -0
  124. /package/examples/{full-example → full-example-json}/src/db/index.test.ts +0 -0
  125. /package/examples/{full-example → full-example-json}/src/db/index.ts +0 -0
  126. /package/examples/{full-example → full-example-json}/src/db/migrate.test.ts +0 -0
  127. /package/examples/{full-example → full-example-json}/src/db/migrate.ts +0 -0
  128. /package/examples/{full-example → full-example-json}/src/db/migrations/001_workspaces.sql +0 -0
  129. /package/examples/{full-example → full-example-json}/src/db/tables/workspaces.ts +0 -0
  130. /package/examples/{full-example → full-example-json}/src/types/argsbarg.d.ts +0 -0
@@ -0,0 +1,1246 @@
1
+ {
2
+ "openapi": "3.1.0",
3
+ "info": {
4
+ "title": "full-example-json",
5
+ "version": "1.0.0",
6
+ "description": "Argsbarg schema-first copy template (@sg schemagen, JSON schemas, REST CRUD)"
7
+ },
8
+ "tags": [
9
+ {
10
+ "name": "health",
11
+ "description": "Orchestrator health probes — liveness (online) vs readiness (online + checks passed)."
12
+ },
13
+ {
14
+ "name": "echo",
15
+ "description": "Echo a message (MCP-friendly leaf)."
16
+ },
17
+ {
18
+ "name": "render-json",
19
+ "description": "Echo a JSON message (schema-first JSON leaf demo)."
20
+ },
21
+ {
22
+ "name": "status",
23
+ "description": "Show app version."
24
+ },
25
+ {
26
+ "name": "workspaces",
27
+ "description": "Workspace collection and CRUD."
28
+ }
29
+ ],
30
+ "paths": {
31
+ "/health/liveness": {
32
+ "get": {
33
+ "tags": [
34
+ "health"
35
+ ],
36
+ "operationId": "health_liveness",
37
+ "summary": "Liveness probe",
38
+ "description": "Returns 200 when the HTTP server is online and accepting requests. Does not run config or readiness checks — use for orchestrator liveness probes only.",
39
+ "responses": {
40
+ "200": {
41
+ "description": "Server is online",
42
+ "content": {
43
+ "application/json; charset=utf-8": {
44
+ "schema": {
45
+ "type": "object",
46
+ "properties": {
47
+ "ok": {
48
+ "type": "boolean",
49
+ "const": true
50
+ }
51
+ },
52
+ "required": [
53
+ "ok"
54
+ ]
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+ },
62
+ "/health/readiness": {
63
+ "get": {
64
+ "tags": [
65
+ "health"
66
+ ],
67
+ "operationId": "health_readiness",
68
+ "summary": "Readiness probe",
69
+ "description": "Returns 200 when the server is online and all readiness checks pass (config file, required app config, and optional program.readiness). Returns 503 when any check fails — use for orchestrator readiness probes before routing traffic.",
70
+ "responses": {
71
+ "200": {
72
+ "description": "Online and ready to serve traffic",
73
+ "content": {
74
+ "application/json; charset=utf-8": {
75
+ "schema": {
76
+ "type": "object",
77
+ "properties": {
78
+ "ok": {
79
+ "type": "boolean"
80
+ },
81
+ "checks": {
82
+ "type": "object",
83
+ "properties": {
84
+ "config_file": {
85
+ "type": "object",
86
+ "properties": {
87
+ "ok": {
88
+ "type": "boolean"
89
+ },
90
+ "error": {
91
+ "type": "string"
92
+ },
93
+ "missing": {
94
+ "type": "array",
95
+ "items": {
96
+ "type": "string"
97
+ }
98
+ }
99
+ },
100
+ "required": [
101
+ "ok"
102
+ ]
103
+ },
104
+ "config_required": {
105
+ "type": "object",
106
+ "properties": {
107
+ "ok": {
108
+ "type": "boolean"
109
+ },
110
+ "error": {
111
+ "type": "string"
112
+ },
113
+ "missing": {
114
+ "type": "array",
115
+ "items": {
116
+ "type": "string"
117
+ }
118
+ }
119
+ },
120
+ "required": [
121
+ "ok"
122
+ ]
123
+ },
124
+ "custom": {
125
+ "type": "object",
126
+ "properties": {
127
+ "ok": {
128
+ "type": "boolean"
129
+ },
130
+ "error": {
131
+ "type": "string"
132
+ },
133
+ "missing": {
134
+ "type": "array",
135
+ "items": {
136
+ "type": "string"
137
+ }
138
+ }
139
+ },
140
+ "required": [
141
+ "ok"
142
+ ]
143
+ }
144
+ },
145
+ "required": [
146
+ "config_file",
147
+ "config_required",
148
+ "custom"
149
+ ]
150
+ }
151
+ },
152
+ "required": [
153
+ "ok",
154
+ "checks"
155
+ ]
156
+ }
157
+ }
158
+ }
159
+ },
160
+ "503": {
161
+ "description": "Online but not ready (one or more checks failed)",
162
+ "content": {
163
+ "application/json; charset=utf-8": {
164
+ "schema": {
165
+ "type": "object",
166
+ "properties": {
167
+ "ok": {
168
+ "type": "boolean"
169
+ },
170
+ "checks": {
171
+ "type": "object",
172
+ "properties": {
173
+ "config_file": {
174
+ "type": "object",
175
+ "properties": {
176
+ "ok": {
177
+ "type": "boolean"
178
+ },
179
+ "error": {
180
+ "type": "string"
181
+ },
182
+ "missing": {
183
+ "type": "array",
184
+ "items": {
185
+ "type": "string"
186
+ }
187
+ }
188
+ },
189
+ "required": [
190
+ "ok"
191
+ ]
192
+ },
193
+ "config_required": {
194
+ "type": "object",
195
+ "properties": {
196
+ "ok": {
197
+ "type": "boolean"
198
+ },
199
+ "error": {
200
+ "type": "string"
201
+ },
202
+ "missing": {
203
+ "type": "array",
204
+ "items": {
205
+ "type": "string"
206
+ }
207
+ }
208
+ },
209
+ "required": [
210
+ "ok"
211
+ ]
212
+ },
213
+ "custom": {
214
+ "type": "object",
215
+ "properties": {
216
+ "ok": {
217
+ "type": "boolean"
218
+ },
219
+ "error": {
220
+ "type": "string"
221
+ },
222
+ "missing": {
223
+ "type": "array",
224
+ "items": {
225
+ "type": "string"
226
+ }
227
+ }
228
+ },
229
+ "required": [
230
+ "ok"
231
+ ]
232
+ }
233
+ },
234
+ "required": [
235
+ "config_file",
236
+ "config_required",
237
+ "custom"
238
+ ]
239
+ }
240
+ },
241
+ "required": [
242
+ "ok",
243
+ "checks"
244
+ ]
245
+ }
246
+ }
247
+ }
248
+ }
249
+ }
250
+ }
251
+ },
252
+ "/echo": {
253
+ "post": {
254
+ "tags": [
255
+ "echo"
256
+ ],
257
+ "operationId": "_echo",
258
+ "summary": "Echo a message (MCP-friendly leaf).",
259
+ "responses": {
260
+ "201": {
261
+ "description": "Successful invocation",
262
+ "content": {
263
+ "application/json": {
264
+ "schema": {
265
+ "type": "object"
266
+ }
267
+ }
268
+ }
269
+ },
270
+ "400": {
271
+ "description": "Invalid arguments or help requested",
272
+ "content": {
273
+ "application/json; charset=utf-8": {
274
+ "schema": {
275
+ "type": "object",
276
+ "properties": {
277
+ "error": {
278
+ "type": "string"
279
+ }
280
+ },
281
+ "required": [
282
+ "error"
283
+ ]
284
+ }
285
+ }
286
+ }
287
+ },
288
+ "404": {
289
+ "description": "Not found",
290
+ "content": {
291
+ "application/json; charset=utf-8": {
292
+ "schema": {
293
+ "type": "object",
294
+ "properties": {
295
+ "error": {
296
+ "type": "string"
297
+ }
298
+ },
299
+ "required": [
300
+ "error"
301
+ ]
302
+ }
303
+ }
304
+ }
305
+ },
306
+ "500": {
307
+ "description": "Handler error",
308
+ "content": {
309
+ "application/json; charset=utf-8": {
310
+ "schema": {
311
+ "type": "object",
312
+ "properties": {
313
+ "error": {
314
+ "type": "string"
315
+ }
316
+ },
317
+ "required": [
318
+ "error"
319
+ ]
320
+ }
321
+ }
322
+ }
323
+ },
324
+ "503": {
325
+ "description": "Not ready or missing required config",
326
+ "content": {
327
+ "application/json; charset=utf-8": {
328
+ "schema": {
329
+ "type": "object",
330
+ "properties": {
331
+ "error": {
332
+ "type": "string"
333
+ }
334
+ },
335
+ "required": [
336
+ "error"
337
+ ]
338
+ }
339
+ }
340
+ }
341
+ }
342
+ },
343
+ "requestBody": {
344
+ "required": false,
345
+ "content": {
346
+ "application/json; charset=utf-8": {
347
+ "schema": {
348
+ "type": "object",
349
+ "properties": {
350
+ "message": {
351
+ "type": "string",
352
+ "description": "Text to print."
353
+ }
354
+ },
355
+ "required": [
356
+ "message"
357
+ ]
358
+ }
359
+ }
360
+ }
361
+ }
362
+ }
363
+ },
364
+ "/render-json": {
365
+ "post": {
366
+ "tags": [
367
+ "render-json"
368
+ ],
369
+ "operationId": "_render-json",
370
+ "summary": "Echo a JSON message (schema-first JSON leaf demo).",
371
+ "responses": {
372
+ "201": {
373
+ "description": "Successful invocation",
374
+ "content": {
375
+ "application/json": {
376
+ "schema": {
377
+ "type": "object"
378
+ }
379
+ }
380
+ }
381
+ },
382
+ "400": {
383
+ "description": "Invalid arguments or help requested",
384
+ "content": {
385
+ "application/json; charset=utf-8": {
386
+ "schema": {
387
+ "type": "object",
388
+ "properties": {
389
+ "error": {
390
+ "type": "string"
391
+ }
392
+ },
393
+ "required": [
394
+ "error"
395
+ ]
396
+ }
397
+ }
398
+ }
399
+ },
400
+ "404": {
401
+ "description": "Not found",
402
+ "content": {
403
+ "application/json; charset=utf-8": {
404
+ "schema": {
405
+ "type": "object",
406
+ "properties": {
407
+ "error": {
408
+ "type": "string"
409
+ }
410
+ },
411
+ "required": [
412
+ "error"
413
+ ]
414
+ }
415
+ }
416
+ }
417
+ },
418
+ "500": {
419
+ "description": "Handler error",
420
+ "content": {
421
+ "application/json; charset=utf-8": {
422
+ "schema": {
423
+ "type": "object",
424
+ "properties": {
425
+ "error": {
426
+ "type": "string"
427
+ }
428
+ },
429
+ "required": [
430
+ "error"
431
+ ]
432
+ }
433
+ }
434
+ }
435
+ },
436
+ "503": {
437
+ "description": "Not ready or missing required config",
438
+ "content": {
439
+ "application/json; charset=utf-8": {
440
+ "schema": {
441
+ "type": "object",
442
+ "properties": {
443
+ "error": {
444
+ "type": "string"
445
+ }
446
+ },
447
+ "required": [
448
+ "error"
449
+ ]
450
+ }
451
+ }
452
+ }
453
+ }
454
+ },
455
+ "requestBody": {
456
+ "required": true,
457
+ "content": {
458
+ "application/json; charset=utf-8": {
459
+ "schema": {
460
+ "$schema": "http://json-schema.org/draft-07/schema#",
461
+ "type": "object",
462
+ "properties": {
463
+ "message": {
464
+ "type": "string",
465
+ "description": "Message to echo back."
466
+ }
467
+ },
468
+ "required": [
469
+ "message"
470
+ ],
471
+ "additionalProperties": false
472
+ }
473
+ }
474
+ }
475
+ }
476
+ }
477
+ },
478
+ "/status": {
479
+ "post": {
480
+ "tags": [
481
+ "status"
482
+ ],
483
+ "operationId": "_status",
484
+ "summary": "Show app version.",
485
+ "responses": {
486
+ "201": {
487
+ "description": "Successful invocation",
488
+ "content": {
489
+ "application/json": {
490
+ "schema": {
491
+ "$schema": "http://json-schema.org/draft-07/schema#",
492
+ "type": "object",
493
+ "properties": {
494
+ "version": {
495
+ "type": "string",
496
+ "description": "App version from program root."
497
+ }
498
+ },
499
+ "required": [
500
+ "version"
501
+ ],
502
+ "additionalProperties": false
503
+ }
504
+ }
505
+ }
506
+ },
507
+ "400": {
508
+ "description": "Invalid arguments or help requested",
509
+ "content": {
510
+ "application/json; charset=utf-8": {
511
+ "schema": {
512
+ "type": "object",
513
+ "properties": {
514
+ "error": {
515
+ "type": "string"
516
+ }
517
+ },
518
+ "required": [
519
+ "error"
520
+ ]
521
+ }
522
+ }
523
+ }
524
+ },
525
+ "404": {
526
+ "description": "Not found",
527
+ "content": {
528
+ "application/json; charset=utf-8": {
529
+ "schema": {
530
+ "type": "object",
531
+ "properties": {
532
+ "error": {
533
+ "type": "string"
534
+ }
535
+ },
536
+ "required": [
537
+ "error"
538
+ ]
539
+ }
540
+ }
541
+ }
542
+ },
543
+ "500": {
544
+ "description": "Handler error",
545
+ "content": {
546
+ "application/json; charset=utf-8": {
547
+ "schema": {
548
+ "type": "object",
549
+ "properties": {
550
+ "error": {
551
+ "type": "string"
552
+ }
553
+ },
554
+ "required": [
555
+ "error"
556
+ ]
557
+ }
558
+ }
559
+ }
560
+ },
561
+ "503": {
562
+ "description": "Not ready or missing required config",
563
+ "content": {
564
+ "application/json; charset=utf-8": {
565
+ "schema": {
566
+ "type": "object",
567
+ "properties": {
568
+ "error": {
569
+ "type": "string"
570
+ }
571
+ },
572
+ "required": [
573
+ "error"
574
+ ]
575
+ }
576
+ }
577
+ }
578
+ }
579
+ },
580
+ "requestBody": {
581
+ "required": false,
582
+ "content": {
583
+ "application/json; charset=utf-8": {
584
+ "schema": {
585
+ "type": "object",
586
+ "properties": {
587
+ "json": {
588
+ "type": "string",
589
+ "description": "Emit JSON."
590
+ }
591
+ }
592
+ }
593
+ }
594
+ }
595
+ }
596
+ }
597
+ },
598
+ "/workspaces": {
599
+ "get": {
600
+ "tags": [
601
+ "workspaces"
602
+ ],
603
+ "operationId": "_workspaces",
604
+ "summary": "List workspaces.",
605
+ "responses": {
606
+ "200": {
607
+ "description": "Successful invocation",
608
+ "content": {
609
+ "application/json": {
610
+ "schema": {
611
+ "type": "object"
612
+ }
613
+ }
614
+ }
615
+ },
616
+ "400": {
617
+ "description": "Invalid arguments or help requested",
618
+ "content": {
619
+ "application/json; charset=utf-8": {
620
+ "schema": {
621
+ "type": "object",
622
+ "properties": {
623
+ "error": {
624
+ "type": "string"
625
+ }
626
+ },
627
+ "required": [
628
+ "error"
629
+ ]
630
+ }
631
+ }
632
+ }
633
+ },
634
+ "404": {
635
+ "description": "Not found",
636
+ "content": {
637
+ "application/json; charset=utf-8": {
638
+ "schema": {
639
+ "type": "object",
640
+ "properties": {
641
+ "error": {
642
+ "type": "string"
643
+ }
644
+ },
645
+ "required": [
646
+ "error"
647
+ ]
648
+ }
649
+ }
650
+ }
651
+ },
652
+ "500": {
653
+ "description": "Handler error",
654
+ "content": {
655
+ "application/json; charset=utf-8": {
656
+ "schema": {
657
+ "type": "object",
658
+ "properties": {
659
+ "error": {
660
+ "type": "string"
661
+ }
662
+ },
663
+ "required": [
664
+ "error"
665
+ ]
666
+ }
667
+ }
668
+ }
669
+ },
670
+ "503": {
671
+ "description": "Not ready or missing required config",
672
+ "content": {
673
+ "application/json; charset=utf-8": {
674
+ "schema": {
675
+ "type": "object",
676
+ "properties": {
677
+ "error": {
678
+ "type": "string"
679
+ }
680
+ },
681
+ "required": [
682
+ "error"
683
+ ]
684
+ }
685
+ }
686
+ }
687
+ }
688
+ },
689
+ "parameters": []
690
+ },
691
+ "post": {
692
+ "tags": [
693
+ "workspaces"
694
+ ],
695
+ "operationId": "_workspaces",
696
+ "summary": "Create a workspace.",
697
+ "responses": {
698
+ "201": {
699
+ "description": "Successful invocation",
700
+ "content": {
701
+ "application/json": {
702
+ "schema": {
703
+ "type": "object"
704
+ }
705
+ }
706
+ }
707
+ },
708
+ "400": {
709
+ "description": "Invalid arguments or help requested",
710
+ "content": {
711
+ "application/json; charset=utf-8": {
712
+ "schema": {
713
+ "type": "object",
714
+ "properties": {
715
+ "error": {
716
+ "type": "string"
717
+ }
718
+ },
719
+ "required": [
720
+ "error"
721
+ ]
722
+ }
723
+ }
724
+ }
725
+ },
726
+ "404": {
727
+ "description": "Not found",
728
+ "content": {
729
+ "application/json; charset=utf-8": {
730
+ "schema": {
731
+ "type": "object",
732
+ "properties": {
733
+ "error": {
734
+ "type": "string"
735
+ }
736
+ },
737
+ "required": [
738
+ "error"
739
+ ]
740
+ }
741
+ }
742
+ }
743
+ },
744
+ "500": {
745
+ "description": "Handler error",
746
+ "content": {
747
+ "application/json; charset=utf-8": {
748
+ "schema": {
749
+ "type": "object",
750
+ "properties": {
751
+ "error": {
752
+ "type": "string"
753
+ }
754
+ },
755
+ "required": [
756
+ "error"
757
+ ]
758
+ }
759
+ }
760
+ }
761
+ },
762
+ "503": {
763
+ "description": "Not ready or missing required config",
764
+ "content": {
765
+ "application/json; charset=utf-8": {
766
+ "schema": {
767
+ "type": "object",
768
+ "properties": {
769
+ "error": {
770
+ "type": "string"
771
+ }
772
+ },
773
+ "required": [
774
+ "error"
775
+ ]
776
+ }
777
+ }
778
+ }
779
+ }
780
+ },
781
+ "requestBody": {
782
+ "required": false,
783
+ "content": {
784
+ "application/json; charset=utf-8": {
785
+ "schema": {
786
+ "$schema": "http://json-schema.org/draft-07/schema#",
787
+ "type": "object",
788
+ "properties": {
789
+ "name": {
790
+ "type": "string",
791
+ "description": "Workspace display name."
792
+ }
793
+ },
794
+ "required": [
795
+ "name"
796
+ ],
797
+ "additionalProperties": false
798
+ }
799
+ }
800
+ }
801
+ }
802
+ }
803
+ },
804
+ "/workspaces/{id}": {
805
+ "get": {
806
+ "tags": [
807
+ "workspaces"
808
+ ],
809
+ "operationId": "_workspaces_id",
810
+ "summary": "Get one workspace.",
811
+ "responses": {
812
+ "200": {
813
+ "description": "Successful invocation",
814
+ "content": {
815
+ "application/json": {
816
+ "schema": {
817
+ "type": "object"
818
+ }
819
+ }
820
+ }
821
+ },
822
+ "400": {
823
+ "description": "Invalid arguments or help requested",
824
+ "content": {
825
+ "application/json; charset=utf-8": {
826
+ "schema": {
827
+ "type": "object",
828
+ "properties": {
829
+ "error": {
830
+ "type": "string"
831
+ }
832
+ },
833
+ "required": [
834
+ "error"
835
+ ]
836
+ }
837
+ }
838
+ }
839
+ },
840
+ "404": {
841
+ "description": "Not found",
842
+ "content": {
843
+ "application/json; charset=utf-8": {
844
+ "schema": {
845
+ "type": "object",
846
+ "properties": {
847
+ "error": {
848
+ "type": "string"
849
+ }
850
+ },
851
+ "required": [
852
+ "error"
853
+ ]
854
+ }
855
+ }
856
+ }
857
+ },
858
+ "500": {
859
+ "description": "Handler error",
860
+ "content": {
861
+ "application/json; charset=utf-8": {
862
+ "schema": {
863
+ "type": "object",
864
+ "properties": {
865
+ "error": {
866
+ "type": "string"
867
+ }
868
+ },
869
+ "required": [
870
+ "error"
871
+ ]
872
+ }
873
+ }
874
+ }
875
+ },
876
+ "503": {
877
+ "description": "Not ready or missing required config",
878
+ "content": {
879
+ "application/json; charset=utf-8": {
880
+ "schema": {
881
+ "type": "object",
882
+ "properties": {
883
+ "error": {
884
+ "type": "string"
885
+ }
886
+ },
887
+ "required": [
888
+ "error"
889
+ ]
890
+ }
891
+ }
892
+ }
893
+ }
894
+ },
895
+ "parameters": [
896
+ {
897
+ "name": "id",
898
+ "in": "path",
899
+ "required": true,
900
+ "schema": {
901
+ "type": "string"
902
+ }
903
+ }
904
+ ]
905
+ },
906
+ "put": {
907
+ "tags": [
908
+ "workspaces"
909
+ ],
910
+ "operationId": "_workspaces_id",
911
+ "summary": "Replace a workspace.",
912
+ "responses": {
913
+ "200": {
914
+ "description": "Successful invocation",
915
+ "content": {
916
+ "application/json": {
917
+ "schema": {
918
+ "type": "object"
919
+ }
920
+ }
921
+ }
922
+ },
923
+ "400": {
924
+ "description": "Invalid arguments or help requested",
925
+ "content": {
926
+ "application/json; charset=utf-8": {
927
+ "schema": {
928
+ "type": "object",
929
+ "properties": {
930
+ "error": {
931
+ "type": "string"
932
+ }
933
+ },
934
+ "required": [
935
+ "error"
936
+ ]
937
+ }
938
+ }
939
+ }
940
+ },
941
+ "404": {
942
+ "description": "Not found",
943
+ "content": {
944
+ "application/json; charset=utf-8": {
945
+ "schema": {
946
+ "type": "object",
947
+ "properties": {
948
+ "error": {
949
+ "type": "string"
950
+ }
951
+ },
952
+ "required": [
953
+ "error"
954
+ ]
955
+ }
956
+ }
957
+ }
958
+ },
959
+ "500": {
960
+ "description": "Handler error",
961
+ "content": {
962
+ "application/json; charset=utf-8": {
963
+ "schema": {
964
+ "type": "object",
965
+ "properties": {
966
+ "error": {
967
+ "type": "string"
968
+ }
969
+ },
970
+ "required": [
971
+ "error"
972
+ ]
973
+ }
974
+ }
975
+ }
976
+ },
977
+ "503": {
978
+ "description": "Not ready or missing required config",
979
+ "content": {
980
+ "application/json; charset=utf-8": {
981
+ "schema": {
982
+ "type": "object",
983
+ "properties": {
984
+ "error": {
985
+ "type": "string"
986
+ }
987
+ },
988
+ "required": [
989
+ "error"
990
+ ]
991
+ }
992
+ }
993
+ }
994
+ }
995
+ },
996
+ "parameters": [
997
+ {
998
+ "name": "id",
999
+ "in": "path",
1000
+ "required": true,
1001
+ "schema": {
1002
+ "type": "string"
1003
+ }
1004
+ }
1005
+ ],
1006
+ "requestBody": {
1007
+ "required": false,
1008
+ "content": {
1009
+ "application/json; charset=utf-8": {
1010
+ "schema": {
1011
+ "$schema": "http://json-schema.org/draft-07/schema#",
1012
+ "type": "object",
1013
+ "properties": {
1014
+ "name": {
1015
+ "type": "string",
1016
+ "description": "Workspace display name."
1017
+ }
1018
+ },
1019
+ "required": [
1020
+ "name"
1021
+ ],
1022
+ "additionalProperties": false
1023
+ }
1024
+ }
1025
+ }
1026
+ }
1027
+ },
1028
+ "patch": {
1029
+ "tags": [
1030
+ "workspaces"
1031
+ ],
1032
+ "operationId": "_workspaces_id",
1033
+ "summary": "Patch a workspace name.",
1034
+ "responses": {
1035
+ "200": {
1036
+ "description": "Successful invocation",
1037
+ "content": {
1038
+ "application/json": {
1039
+ "schema": {
1040
+ "type": "object"
1041
+ }
1042
+ }
1043
+ }
1044
+ },
1045
+ "400": {
1046
+ "description": "Invalid arguments or help requested",
1047
+ "content": {
1048
+ "application/json; charset=utf-8": {
1049
+ "schema": {
1050
+ "type": "object",
1051
+ "properties": {
1052
+ "error": {
1053
+ "type": "string"
1054
+ }
1055
+ },
1056
+ "required": [
1057
+ "error"
1058
+ ]
1059
+ }
1060
+ }
1061
+ }
1062
+ },
1063
+ "404": {
1064
+ "description": "Not found",
1065
+ "content": {
1066
+ "application/json; charset=utf-8": {
1067
+ "schema": {
1068
+ "type": "object",
1069
+ "properties": {
1070
+ "error": {
1071
+ "type": "string"
1072
+ }
1073
+ },
1074
+ "required": [
1075
+ "error"
1076
+ ]
1077
+ }
1078
+ }
1079
+ }
1080
+ },
1081
+ "500": {
1082
+ "description": "Handler error",
1083
+ "content": {
1084
+ "application/json; charset=utf-8": {
1085
+ "schema": {
1086
+ "type": "object",
1087
+ "properties": {
1088
+ "error": {
1089
+ "type": "string"
1090
+ }
1091
+ },
1092
+ "required": [
1093
+ "error"
1094
+ ]
1095
+ }
1096
+ }
1097
+ }
1098
+ },
1099
+ "503": {
1100
+ "description": "Not ready or missing required config",
1101
+ "content": {
1102
+ "application/json; charset=utf-8": {
1103
+ "schema": {
1104
+ "type": "object",
1105
+ "properties": {
1106
+ "error": {
1107
+ "type": "string"
1108
+ }
1109
+ },
1110
+ "required": [
1111
+ "error"
1112
+ ]
1113
+ }
1114
+ }
1115
+ }
1116
+ }
1117
+ },
1118
+ "parameters": [
1119
+ {
1120
+ "name": "id",
1121
+ "in": "path",
1122
+ "required": true,
1123
+ "schema": {
1124
+ "type": "string"
1125
+ }
1126
+ }
1127
+ ],
1128
+ "requestBody": {
1129
+ "required": false,
1130
+ "content": {
1131
+ "application/json; charset=utf-8": {
1132
+ "schema": {
1133
+ "$schema": "http://json-schema.org/draft-07/schema#",
1134
+ "type": "object",
1135
+ "properties": {
1136
+ "name": {
1137
+ "type": "string",
1138
+ "description": "Workspace display name."
1139
+ }
1140
+ },
1141
+ "required": [
1142
+ "name"
1143
+ ],
1144
+ "additionalProperties": false
1145
+ }
1146
+ }
1147
+ }
1148
+ }
1149
+ },
1150
+ "delete": {
1151
+ "tags": [
1152
+ "workspaces"
1153
+ ],
1154
+ "operationId": "_workspaces_id",
1155
+ "summary": "Delete a workspace.",
1156
+ "responses": {
1157
+ "204": {
1158
+ "description": "Successful invocation"
1159
+ },
1160
+ "400": {
1161
+ "description": "Invalid arguments or help requested",
1162
+ "content": {
1163
+ "application/json; charset=utf-8": {
1164
+ "schema": {
1165
+ "type": "object",
1166
+ "properties": {
1167
+ "error": {
1168
+ "type": "string"
1169
+ }
1170
+ },
1171
+ "required": [
1172
+ "error"
1173
+ ]
1174
+ }
1175
+ }
1176
+ }
1177
+ },
1178
+ "404": {
1179
+ "description": "Not found",
1180
+ "content": {
1181
+ "application/json; charset=utf-8": {
1182
+ "schema": {
1183
+ "type": "object",
1184
+ "properties": {
1185
+ "error": {
1186
+ "type": "string"
1187
+ }
1188
+ },
1189
+ "required": [
1190
+ "error"
1191
+ ]
1192
+ }
1193
+ }
1194
+ }
1195
+ },
1196
+ "500": {
1197
+ "description": "Handler error",
1198
+ "content": {
1199
+ "application/json; charset=utf-8": {
1200
+ "schema": {
1201
+ "type": "object",
1202
+ "properties": {
1203
+ "error": {
1204
+ "type": "string"
1205
+ }
1206
+ },
1207
+ "required": [
1208
+ "error"
1209
+ ]
1210
+ }
1211
+ }
1212
+ }
1213
+ },
1214
+ "503": {
1215
+ "description": "Not ready or missing required config",
1216
+ "content": {
1217
+ "application/json; charset=utf-8": {
1218
+ "schema": {
1219
+ "type": "object",
1220
+ "properties": {
1221
+ "error": {
1222
+ "type": "string"
1223
+ }
1224
+ },
1225
+ "required": [
1226
+ "error"
1227
+ ]
1228
+ }
1229
+ }
1230
+ }
1231
+ }
1232
+ },
1233
+ "parameters": [
1234
+ {
1235
+ "name": "id",
1236
+ "in": "path",
1237
+ "required": true,
1238
+ "schema": {
1239
+ "type": "string"
1240
+ }
1241
+ }
1242
+ ]
1243
+ }
1244
+ }
1245
+ }
1246
+ }