argsbarg 7.0.10 → 7.1.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 (91) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/README.md +3 -2
  3. package/docs/ai-skills.md +2 -2
  4. package/docs/cli-program.md +3 -5
  5. package/docs/developing.md +3 -3
  6. package/docs/mcp.md +20 -7
  7. package/docs/output-schema.md +1 -1
  8. package/examples/full-example/AGENTS.md +20 -12
  9. package/examples/full-example/README.md +57 -12
  10. package/examples/full-example/biome.json +5 -4
  11. package/examples/full-example/bunfig.toml +3 -0
  12. package/examples/full-example/justfile +22 -27
  13. package/examples/full-example-json/AGENTS.md +14 -12
  14. package/examples/full-example-json/README.md +63 -15
  15. package/examples/full-example-json/biome.json +1 -3
  16. package/examples/full-example-json/bunfig.toml +3 -0
  17. package/examples/full-example-json/justfile +22 -27
  18. package/examples/mcp-plugin/.claude-plugin/plugin.json +11 -0
  19. package/examples/mcp-plugin/.cursor/hooks/run-tests-on-stop.ts +56 -0
  20. package/examples/mcp-plugin/.cursor/hooks.json +12 -0
  21. package/examples/mcp-plugin/.cursor-plugin/plugin.json +12 -0
  22. package/examples/mcp-plugin/.mcp.json +6 -0
  23. package/examples/mcp-plugin/AGENTS.md +90 -0
  24. package/examples/mcp-plugin/CLAUDE.md +1 -0
  25. package/examples/mcp-plugin/README.md +70 -0
  26. package/examples/mcp-plugin/biome.json +20 -0
  27. package/examples/mcp-plugin/bun.lock +48 -0
  28. package/examples/mcp-plugin/bunfig.toml +3 -0
  29. package/examples/mcp-plugin/docs/README.md +27 -0
  30. package/examples/mcp-plugin/docs/cli-schema.json +2085 -0
  31. package/examples/mcp-plugin/docs/cli.md +2026 -0
  32. package/examples/mcp-plugin/docs/http.md +92 -0
  33. package/examples/mcp-plugin/docs/mcp.md +116 -0
  34. package/examples/mcp-plugin/docs/openapi.json +1243 -0
  35. package/examples/mcp-plugin/justfile +89 -0
  36. package/examples/mcp-plugin/mcp.json +8 -0
  37. package/examples/mcp-plugin/package.json +23 -0
  38. package/examples/mcp-plugin/scripts/create-identity.ts +12 -0
  39. package/examples/mcp-plugin/scripts/mcp.mjs +11106 -0
  40. package/examples/mcp-plugin/scripts/release.ts +225 -0
  41. package/examples/mcp-plugin/skills/mcp-plugin/SKILL.md +59 -0
  42. package/examples/mcp-plugin/src/commands/echo/command.ts +26 -0
  43. package/examples/mcp-plugin/src/commands/render-json/__generated__/RenderJsonInputSchema.json +15 -0
  44. package/examples/mcp-plugin/src/commands/render-json/__generated__/index.ts +5 -0
  45. package/examples/mcp-plugin/src/commands/render-json/command.test.ts +46 -0
  46. package/examples/mcp-plugin/src/commands/render-json/command.ts +30 -0
  47. package/examples/mcp-plugin/src/commands/render-json/types.ts +9 -0
  48. package/examples/mcp-plugin/src/commands/status/__generated__/StatusJsonOutputSchema.json +15 -0
  49. package/examples/mcp-plugin/src/commands/status/__generated__/index.ts +5 -0
  50. package/examples/mcp-plugin/src/commands/status/command.test.ts +10 -0
  51. package/examples/mcp-plugin/src/commands/status/command.ts +28 -0
  52. package/examples/mcp-plugin/src/commands/status/types.ts +6 -0
  53. package/examples/mcp-plugin/src/commands/workspaces/__generated__/WorkspaceNameInputSchema.json +15 -0
  54. package/examples/mcp-plugin/src/commands/workspaces/__generated__/index.ts +5 -0
  55. package/examples/mcp-plugin/src/commands/workspaces/command.test.ts +58 -0
  56. package/examples/mcp-plugin/src/commands/workspaces/command.ts +94 -0
  57. package/examples/mcp-plugin/src/commands/workspaces/types.ts +6 -0
  58. package/examples/mcp-plugin/src/db/index.test.ts +86 -0
  59. package/examples/mcp-plugin/src/db/index.ts +77 -0
  60. package/examples/mcp-plugin/src/db/tables/workspaces.ts +58 -0
  61. package/examples/mcp-plugin/src/index.ts +10 -0
  62. package/examples/mcp-plugin/src/program.ts +32 -0
  63. package/examples/mcp-plugin/src/types/argsbarg.d.ts +11 -0
  64. package/examples/mcp-plugin/src/types/md.d.ts +4 -0
  65. package/examples/mcp-plugin/tsconfig.json +17 -0
  66. package/index.d.ts +12 -0
  67. package/package.json +1 -1
  68. package/src/builtins/mcp.ts +1 -1
  69. package/src/cli-tool/create.test.ts +5 -0
  70. package/src/cli-tool/create.ts +9 -1
  71. package/src/config/manifest.ts +56 -0
  72. package/src/config/resolve.test.ts +12 -12
  73. package/src/configure/configure.test.ts +5 -3
  74. package/src/core/parse.test.ts +6 -5
  75. package/src/core/types.ts +12 -0
  76. package/src/exports/mcp.ts +12 -0
  77. package/src/help.test.ts +36 -0
  78. package/src/help.ts +32 -19
  79. package/src/mcp/bundle.ts +12 -3
  80. package/src/mcp/claude.test.ts +2 -7
  81. package/src/mcp/claude.ts +49 -67
  82. package/src/mcp/cursor.test.ts +151 -0
  83. package/src/mcp/cursor.ts +155 -0
  84. package/src/mcp/hidden-mcpb.test.ts +34 -1
  85. package/src/mcp/plugin-shared.ts +107 -0
  86. package/src/mcp/result.ts +5 -1
  87. package/src/mcp/server.ts +3 -2
  88. package/src/test/fixtures.ts +13 -0
  89. package/src/test/integration/mcp.test.ts +8 -7
  90. package/examples/full-example/scripts/print-identity.ts +0 -28
  91. package/examples/full-example-json/scripts/print-identity.ts +0 -28
@@ -0,0 +1,1243 @@
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
+ "additionalProperties": false,
356
+ "required": [
357
+ "message"
358
+ ]
359
+ }
360
+ }
361
+ }
362
+ }
363
+ }
364
+ },
365
+ "/render-json": {
366
+ "post": {
367
+ "tags": [
368
+ "render-json"
369
+ ],
370
+ "operationId": "_render-json",
371
+ "summary": "Echo a JSON message (schema-first JSON leaf demo).",
372
+ "responses": {
373
+ "201": {
374
+ "description": "Successful invocation",
375
+ "content": {
376
+ "application/json": {
377
+ "schema": {
378
+ "type": "object"
379
+ }
380
+ }
381
+ }
382
+ },
383
+ "400": {
384
+ "description": "Invalid arguments or help requested",
385
+ "content": {
386
+ "application/json; charset=utf-8": {
387
+ "schema": {
388
+ "type": "object",
389
+ "properties": {
390
+ "error": {
391
+ "type": "string"
392
+ }
393
+ },
394
+ "required": [
395
+ "error"
396
+ ]
397
+ }
398
+ }
399
+ }
400
+ },
401
+ "404": {
402
+ "description": "Not found",
403
+ "content": {
404
+ "application/json; charset=utf-8": {
405
+ "schema": {
406
+ "type": "object",
407
+ "properties": {
408
+ "error": {
409
+ "type": "string"
410
+ }
411
+ },
412
+ "required": [
413
+ "error"
414
+ ]
415
+ }
416
+ }
417
+ }
418
+ },
419
+ "500": {
420
+ "description": "Handler error",
421
+ "content": {
422
+ "application/json; charset=utf-8": {
423
+ "schema": {
424
+ "type": "object",
425
+ "properties": {
426
+ "error": {
427
+ "type": "string"
428
+ }
429
+ },
430
+ "required": [
431
+ "error"
432
+ ]
433
+ }
434
+ }
435
+ }
436
+ },
437
+ "503": {
438
+ "description": "Not ready or missing required config",
439
+ "content": {
440
+ "application/json; charset=utf-8": {
441
+ "schema": {
442
+ "type": "object",
443
+ "properties": {
444
+ "error": {
445
+ "type": "string"
446
+ }
447
+ },
448
+ "required": [
449
+ "error"
450
+ ]
451
+ }
452
+ }
453
+ }
454
+ }
455
+ },
456
+ "requestBody": {
457
+ "required": true,
458
+ "content": {
459
+ "application/json; charset=utf-8": {
460
+ "schema": {
461
+ "$schema": "http://json-schema.org/draft-07/schema#",
462
+ "type": "object",
463
+ "properties": {
464
+ "message": {
465
+ "type": "string",
466
+ "description": "Message to echo back."
467
+ }
468
+ },
469
+ "required": [
470
+ "message"
471
+ ],
472
+ "additionalProperties": false
473
+ }
474
+ }
475
+ }
476
+ }
477
+ }
478
+ },
479
+ "/status": {
480
+ "post": {
481
+ "tags": [
482
+ "status"
483
+ ],
484
+ "operationId": "_status",
485
+ "summary": "Show app version.",
486
+ "responses": {
487
+ "201": {
488
+ "description": "Successful invocation",
489
+ "content": {
490
+ "application/json": {
491
+ "schema": {
492
+ "$schema": "http://json-schema.org/draft-07/schema#",
493
+ "type": "object",
494
+ "properties": {
495
+ "version": {
496
+ "type": "string",
497
+ "description": "App version from program root."
498
+ }
499
+ },
500
+ "required": [
501
+ "version"
502
+ ],
503
+ "additionalProperties": false
504
+ }
505
+ }
506
+ }
507
+ },
508
+ "400": {
509
+ "description": "Invalid arguments or help requested",
510
+ "content": {
511
+ "application/json; charset=utf-8": {
512
+ "schema": {
513
+ "type": "object",
514
+ "properties": {
515
+ "error": {
516
+ "type": "string"
517
+ }
518
+ },
519
+ "required": [
520
+ "error"
521
+ ]
522
+ }
523
+ }
524
+ }
525
+ },
526
+ "404": {
527
+ "description": "Not found",
528
+ "content": {
529
+ "application/json; charset=utf-8": {
530
+ "schema": {
531
+ "type": "object",
532
+ "properties": {
533
+ "error": {
534
+ "type": "string"
535
+ }
536
+ },
537
+ "required": [
538
+ "error"
539
+ ]
540
+ }
541
+ }
542
+ }
543
+ },
544
+ "500": {
545
+ "description": "Handler error",
546
+ "content": {
547
+ "application/json; charset=utf-8": {
548
+ "schema": {
549
+ "type": "object",
550
+ "properties": {
551
+ "error": {
552
+ "type": "string"
553
+ }
554
+ },
555
+ "required": [
556
+ "error"
557
+ ]
558
+ }
559
+ }
560
+ }
561
+ },
562
+ "503": {
563
+ "description": "Not ready or missing required config",
564
+ "content": {
565
+ "application/json; charset=utf-8": {
566
+ "schema": {
567
+ "type": "object",
568
+ "properties": {
569
+ "error": {
570
+ "type": "string"
571
+ }
572
+ },
573
+ "required": [
574
+ "error"
575
+ ]
576
+ }
577
+ }
578
+ }
579
+ }
580
+ },
581
+ "requestBody": {
582
+ "required": false,
583
+ "content": {
584
+ "application/json; charset=utf-8": {
585
+ "schema": {
586
+ "type": "object",
587
+ "properties": {},
588
+ "additionalProperties": false
589
+ }
590
+ }
591
+ }
592
+ }
593
+ }
594
+ },
595
+ "/workspaces": {
596
+ "get": {
597
+ "tags": [
598
+ "workspaces"
599
+ ],
600
+ "operationId": "_workspaces",
601
+ "summary": "List workspaces.",
602
+ "responses": {
603
+ "200": {
604
+ "description": "Successful invocation",
605
+ "content": {
606
+ "application/json": {
607
+ "schema": {
608
+ "type": "object"
609
+ }
610
+ }
611
+ }
612
+ },
613
+ "400": {
614
+ "description": "Invalid arguments or help requested",
615
+ "content": {
616
+ "application/json; charset=utf-8": {
617
+ "schema": {
618
+ "type": "object",
619
+ "properties": {
620
+ "error": {
621
+ "type": "string"
622
+ }
623
+ },
624
+ "required": [
625
+ "error"
626
+ ]
627
+ }
628
+ }
629
+ }
630
+ },
631
+ "404": {
632
+ "description": "Not found",
633
+ "content": {
634
+ "application/json; charset=utf-8": {
635
+ "schema": {
636
+ "type": "object",
637
+ "properties": {
638
+ "error": {
639
+ "type": "string"
640
+ }
641
+ },
642
+ "required": [
643
+ "error"
644
+ ]
645
+ }
646
+ }
647
+ }
648
+ },
649
+ "500": {
650
+ "description": "Handler error",
651
+ "content": {
652
+ "application/json; charset=utf-8": {
653
+ "schema": {
654
+ "type": "object",
655
+ "properties": {
656
+ "error": {
657
+ "type": "string"
658
+ }
659
+ },
660
+ "required": [
661
+ "error"
662
+ ]
663
+ }
664
+ }
665
+ }
666
+ },
667
+ "503": {
668
+ "description": "Not ready or missing required config",
669
+ "content": {
670
+ "application/json; charset=utf-8": {
671
+ "schema": {
672
+ "type": "object",
673
+ "properties": {
674
+ "error": {
675
+ "type": "string"
676
+ }
677
+ },
678
+ "required": [
679
+ "error"
680
+ ]
681
+ }
682
+ }
683
+ }
684
+ }
685
+ },
686
+ "parameters": []
687
+ },
688
+ "post": {
689
+ "tags": [
690
+ "workspaces"
691
+ ],
692
+ "operationId": "_workspaces",
693
+ "summary": "Create a workspace.",
694
+ "responses": {
695
+ "201": {
696
+ "description": "Successful invocation",
697
+ "content": {
698
+ "application/json": {
699
+ "schema": {
700
+ "type": "object"
701
+ }
702
+ }
703
+ }
704
+ },
705
+ "400": {
706
+ "description": "Invalid arguments or help requested",
707
+ "content": {
708
+ "application/json; charset=utf-8": {
709
+ "schema": {
710
+ "type": "object",
711
+ "properties": {
712
+ "error": {
713
+ "type": "string"
714
+ }
715
+ },
716
+ "required": [
717
+ "error"
718
+ ]
719
+ }
720
+ }
721
+ }
722
+ },
723
+ "404": {
724
+ "description": "Not found",
725
+ "content": {
726
+ "application/json; charset=utf-8": {
727
+ "schema": {
728
+ "type": "object",
729
+ "properties": {
730
+ "error": {
731
+ "type": "string"
732
+ }
733
+ },
734
+ "required": [
735
+ "error"
736
+ ]
737
+ }
738
+ }
739
+ }
740
+ },
741
+ "500": {
742
+ "description": "Handler error",
743
+ "content": {
744
+ "application/json; charset=utf-8": {
745
+ "schema": {
746
+ "type": "object",
747
+ "properties": {
748
+ "error": {
749
+ "type": "string"
750
+ }
751
+ },
752
+ "required": [
753
+ "error"
754
+ ]
755
+ }
756
+ }
757
+ }
758
+ },
759
+ "503": {
760
+ "description": "Not ready or missing required config",
761
+ "content": {
762
+ "application/json; charset=utf-8": {
763
+ "schema": {
764
+ "type": "object",
765
+ "properties": {
766
+ "error": {
767
+ "type": "string"
768
+ }
769
+ },
770
+ "required": [
771
+ "error"
772
+ ]
773
+ }
774
+ }
775
+ }
776
+ }
777
+ },
778
+ "requestBody": {
779
+ "required": false,
780
+ "content": {
781
+ "application/json; charset=utf-8": {
782
+ "schema": {
783
+ "$schema": "http://json-schema.org/draft-07/schema#",
784
+ "type": "object",
785
+ "properties": {
786
+ "name": {
787
+ "type": "string",
788
+ "description": "Workspace display name."
789
+ }
790
+ },
791
+ "required": [
792
+ "name"
793
+ ],
794
+ "additionalProperties": false
795
+ }
796
+ }
797
+ }
798
+ }
799
+ }
800
+ },
801
+ "/workspaces/{id}": {
802
+ "get": {
803
+ "tags": [
804
+ "workspaces"
805
+ ],
806
+ "operationId": "_workspaces_id",
807
+ "summary": "Get one workspace.",
808
+ "responses": {
809
+ "200": {
810
+ "description": "Successful invocation",
811
+ "content": {
812
+ "application/json": {
813
+ "schema": {
814
+ "type": "object"
815
+ }
816
+ }
817
+ }
818
+ },
819
+ "400": {
820
+ "description": "Invalid arguments or help requested",
821
+ "content": {
822
+ "application/json; charset=utf-8": {
823
+ "schema": {
824
+ "type": "object",
825
+ "properties": {
826
+ "error": {
827
+ "type": "string"
828
+ }
829
+ },
830
+ "required": [
831
+ "error"
832
+ ]
833
+ }
834
+ }
835
+ }
836
+ },
837
+ "404": {
838
+ "description": "Not found",
839
+ "content": {
840
+ "application/json; charset=utf-8": {
841
+ "schema": {
842
+ "type": "object",
843
+ "properties": {
844
+ "error": {
845
+ "type": "string"
846
+ }
847
+ },
848
+ "required": [
849
+ "error"
850
+ ]
851
+ }
852
+ }
853
+ }
854
+ },
855
+ "500": {
856
+ "description": "Handler error",
857
+ "content": {
858
+ "application/json; charset=utf-8": {
859
+ "schema": {
860
+ "type": "object",
861
+ "properties": {
862
+ "error": {
863
+ "type": "string"
864
+ }
865
+ },
866
+ "required": [
867
+ "error"
868
+ ]
869
+ }
870
+ }
871
+ }
872
+ },
873
+ "503": {
874
+ "description": "Not ready or missing required config",
875
+ "content": {
876
+ "application/json; charset=utf-8": {
877
+ "schema": {
878
+ "type": "object",
879
+ "properties": {
880
+ "error": {
881
+ "type": "string"
882
+ }
883
+ },
884
+ "required": [
885
+ "error"
886
+ ]
887
+ }
888
+ }
889
+ }
890
+ }
891
+ },
892
+ "parameters": [
893
+ {
894
+ "name": "id",
895
+ "in": "path",
896
+ "required": true,
897
+ "schema": {
898
+ "type": "string"
899
+ }
900
+ }
901
+ ]
902
+ },
903
+ "put": {
904
+ "tags": [
905
+ "workspaces"
906
+ ],
907
+ "operationId": "_workspaces_id",
908
+ "summary": "Replace a workspace.",
909
+ "responses": {
910
+ "200": {
911
+ "description": "Successful invocation",
912
+ "content": {
913
+ "application/json": {
914
+ "schema": {
915
+ "type": "object"
916
+ }
917
+ }
918
+ }
919
+ },
920
+ "400": {
921
+ "description": "Invalid arguments or help requested",
922
+ "content": {
923
+ "application/json; charset=utf-8": {
924
+ "schema": {
925
+ "type": "object",
926
+ "properties": {
927
+ "error": {
928
+ "type": "string"
929
+ }
930
+ },
931
+ "required": [
932
+ "error"
933
+ ]
934
+ }
935
+ }
936
+ }
937
+ },
938
+ "404": {
939
+ "description": "Not found",
940
+ "content": {
941
+ "application/json; charset=utf-8": {
942
+ "schema": {
943
+ "type": "object",
944
+ "properties": {
945
+ "error": {
946
+ "type": "string"
947
+ }
948
+ },
949
+ "required": [
950
+ "error"
951
+ ]
952
+ }
953
+ }
954
+ }
955
+ },
956
+ "500": {
957
+ "description": "Handler error",
958
+ "content": {
959
+ "application/json; charset=utf-8": {
960
+ "schema": {
961
+ "type": "object",
962
+ "properties": {
963
+ "error": {
964
+ "type": "string"
965
+ }
966
+ },
967
+ "required": [
968
+ "error"
969
+ ]
970
+ }
971
+ }
972
+ }
973
+ },
974
+ "503": {
975
+ "description": "Not ready or missing required config",
976
+ "content": {
977
+ "application/json; charset=utf-8": {
978
+ "schema": {
979
+ "type": "object",
980
+ "properties": {
981
+ "error": {
982
+ "type": "string"
983
+ }
984
+ },
985
+ "required": [
986
+ "error"
987
+ ]
988
+ }
989
+ }
990
+ }
991
+ }
992
+ },
993
+ "parameters": [
994
+ {
995
+ "name": "id",
996
+ "in": "path",
997
+ "required": true,
998
+ "schema": {
999
+ "type": "string"
1000
+ }
1001
+ }
1002
+ ],
1003
+ "requestBody": {
1004
+ "required": false,
1005
+ "content": {
1006
+ "application/json; charset=utf-8": {
1007
+ "schema": {
1008
+ "$schema": "http://json-schema.org/draft-07/schema#",
1009
+ "type": "object",
1010
+ "properties": {
1011
+ "name": {
1012
+ "type": "string",
1013
+ "description": "Workspace display name."
1014
+ }
1015
+ },
1016
+ "required": [
1017
+ "name"
1018
+ ],
1019
+ "additionalProperties": false
1020
+ }
1021
+ }
1022
+ }
1023
+ }
1024
+ },
1025
+ "patch": {
1026
+ "tags": [
1027
+ "workspaces"
1028
+ ],
1029
+ "operationId": "_workspaces_id",
1030
+ "summary": "Patch a workspace name.",
1031
+ "responses": {
1032
+ "200": {
1033
+ "description": "Successful invocation",
1034
+ "content": {
1035
+ "application/json": {
1036
+ "schema": {
1037
+ "type": "object"
1038
+ }
1039
+ }
1040
+ }
1041
+ },
1042
+ "400": {
1043
+ "description": "Invalid arguments or help requested",
1044
+ "content": {
1045
+ "application/json; charset=utf-8": {
1046
+ "schema": {
1047
+ "type": "object",
1048
+ "properties": {
1049
+ "error": {
1050
+ "type": "string"
1051
+ }
1052
+ },
1053
+ "required": [
1054
+ "error"
1055
+ ]
1056
+ }
1057
+ }
1058
+ }
1059
+ },
1060
+ "404": {
1061
+ "description": "Not found",
1062
+ "content": {
1063
+ "application/json; charset=utf-8": {
1064
+ "schema": {
1065
+ "type": "object",
1066
+ "properties": {
1067
+ "error": {
1068
+ "type": "string"
1069
+ }
1070
+ },
1071
+ "required": [
1072
+ "error"
1073
+ ]
1074
+ }
1075
+ }
1076
+ }
1077
+ },
1078
+ "500": {
1079
+ "description": "Handler error",
1080
+ "content": {
1081
+ "application/json; charset=utf-8": {
1082
+ "schema": {
1083
+ "type": "object",
1084
+ "properties": {
1085
+ "error": {
1086
+ "type": "string"
1087
+ }
1088
+ },
1089
+ "required": [
1090
+ "error"
1091
+ ]
1092
+ }
1093
+ }
1094
+ }
1095
+ },
1096
+ "503": {
1097
+ "description": "Not ready or missing required config",
1098
+ "content": {
1099
+ "application/json; charset=utf-8": {
1100
+ "schema": {
1101
+ "type": "object",
1102
+ "properties": {
1103
+ "error": {
1104
+ "type": "string"
1105
+ }
1106
+ },
1107
+ "required": [
1108
+ "error"
1109
+ ]
1110
+ }
1111
+ }
1112
+ }
1113
+ }
1114
+ },
1115
+ "parameters": [
1116
+ {
1117
+ "name": "id",
1118
+ "in": "path",
1119
+ "required": true,
1120
+ "schema": {
1121
+ "type": "string"
1122
+ }
1123
+ }
1124
+ ],
1125
+ "requestBody": {
1126
+ "required": false,
1127
+ "content": {
1128
+ "application/json; charset=utf-8": {
1129
+ "schema": {
1130
+ "$schema": "http://json-schema.org/draft-07/schema#",
1131
+ "type": "object",
1132
+ "properties": {
1133
+ "name": {
1134
+ "type": "string",
1135
+ "description": "Workspace display name."
1136
+ }
1137
+ },
1138
+ "required": [
1139
+ "name"
1140
+ ],
1141
+ "additionalProperties": false
1142
+ }
1143
+ }
1144
+ }
1145
+ }
1146
+ },
1147
+ "delete": {
1148
+ "tags": [
1149
+ "workspaces"
1150
+ ],
1151
+ "operationId": "_workspaces_id",
1152
+ "summary": "Delete a workspace.",
1153
+ "responses": {
1154
+ "204": {
1155
+ "description": "Successful invocation"
1156
+ },
1157
+ "400": {
1158
+ "description": "Invalid arguments or help requested",
1159
+ "content": {
1160
+ "application/json; charset=utf-8": {
1161
+ "schema": {
1162
+ "type": "object",
1163
+ "properties": {
1164
+ "error": {
1165
+ "type": "string"
1166
+ }
1167
+ },
1168
+ "required": [
1169
+ "error"
1170
+ ]
1171
+ }
1172
+ }
1173
+ }
1174
+ },
1175
+ "404": {
1176
+ "description": "Not found",
1177
+ "content": {
1178
+ "application/json; charset=utf-8": {
1179
+ "schema": {
1180
+ "type": "object",
1181
+ "properties": {
1182
+ "error": {
1183
+ "type": "string"
1184
+ }
1185
+ },
1186
+ "required": [
1187
+ "error"
1188
+ ]
1189
+ }
1190
+ }
1191
+ }
1192
+ },
1193
+ "500": {
1194
+ "description": "Handler error",
1195
+ "content": {
1196
+ "application/json; charset=utf-8": {
1197
+ "schema": {
1198
+ "type": "object",
1199
+ "properties": {
1200
+ "error": {
1201
+ "type": "string"
1202
+ }
1203
+ },
1204
+ "required": [
1205
+ "error"
1206
+ ]
1207
+ }
1208
+ }
1209
+ }
1210
+ },
1211
+ "503": {
1212
+ "description": "Not ready or missing required config",
1213
+ "content": {
1214
+ "application/json; charset=utf-8": {
1215
+ "schema": {
1216
+ "type": "object",
1217
+ "properties": {
1218
+ "error": {
1219
+ "type": "string"
1220
+ }
1221
+ },
1222
+ "required": [
1223
+ "error"
1224
+ ]
1225
+ }
1226
+ }
1227
+ }
1228
+ }
1229
+ },
1230
+ "parameters": [
1231
+ {
1232
+ "name": "id",
1233
+ "in": "path",
1234
+ "required": true,
1235
+ "schema": {
1236
+ "type": "string"
1237
+ }
1238
+ }
1239
+ ]
1240
+ }
1241
+ }
1242
+ }
1243
+ }