argsbarg 6.1.1 → 6.1.3

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 (229) hide show
  1. package/CHANGELOG.md +72 -1
  2. package/README.md +17 -19
  3. package/bin/argsbarg +10 -0
  4. package/docs/README.md +4 -3
  5. package/docs/ai-skills.md +4 -2
  6. package/docs/bundled-docs.md +50 -25
  7. package/docs/cli-program.md +76 -10
  8. package/docs/config-schema.md +10 -11
  9. package/docs/configure.md +2 -0
  10. package/docs/decisions.md +40 -0
  11. package/docs/developing.md +43 -5
  12. package/docs/http-server.md +171 -0
  13. package/docs/json-schema-subset.md +51 -0
  14. package/docs/mcp.md +4 -2
  15. package/docs/output-schema.md +55 -62
  16. package/examples/formats.ts +6 -6
  17. package/examples/full-example/Formula/full-example.rb +35 -0
  18. package/examples/full-example/README.md +20 -21
  19. package/examples/full-example/docs/README.md +1 -1
  20. package/examples/full-example/docs/cli-schema.json +1790 -98
  21. package/examples/full-example/docs/cli.md +1990 -0
  22. package/examples/full-example/docs/http.md +28 -29
  23. package/examples/full-example/docs/mcp.md +8 -22
  24. package/examples/full-example/docs/openapi.json +783 -50
  25. package/examples/full-example/docs/skill.md +10 -10
  26. package/examples/full-example/justfile +11 -1
  27. package/examples/full-example/src/commands/render-json/__generated__/RenderJsonInputSchema.json +15 -0
  28. package/examples/full-example/src/commands/render-json/__generated__/index.ts +5 -0
  29. package/examples/full-example/src/commands/render-json/command.test.ts +46 -0
  30. package/examples/full-example/src/commands/render-json/command.ts +30 -0
  31. package/examples/full-example/src/commands/render-json/types.ts +9 -0
  32. package/examples/full-example/src/commands/status/__generated__/StatusJsonOutputSchema.json +15 -0
  33. package/examples/full-example/src/commands/status/__generated__/index.ts +2 -2
  34. package/examples/full-example/src/commands/status/command.ts +5 -13
  35. package/examples/full-example/src/commands/status/types.ts +1 -14
  36. package/examples/full-example/src/commands/workspaces/__generated__/WorkspaceNameInputSchema.json +15 -0
  37. package/examples/full-example/src/commands/workspaces/__generated__/index.ts +5 -0
  38. package/examples/full-example/src/commands/workspaces/command.test.ts +58 -0
  39. package/examples/full-example/src/commands/workspaces/command.ts +94 -0
  40. package/examples/full-example/src/commands/workspaces/types.ts +6 -0
  41. package/examples/full-example/src/db/index.test.ts +86 -0
  42. package/examples/full-example/src/db/index.ts +101 -0
  43. package/examples/full-example/src/db/migrate.test.ts +35 -0
  44. package/examples/full-example/src/db/migrate.ts +69 -0
  45. package/examples/full-example/src/db/migrations/001_workspaces.sql +6 -0
  46. package/examples/full-example/src/db/tables/workspaces.ts +66 -0
  47. package/examples/full-example/src/program.ts +11 -36
  48. package/examples/full-example/src/types/argsbarg.d.ts +11 -0
  49. package/examples/full-example/src/types/md.d.ts +4 -0
  50. package/examples/full-example/tsconfig.json +5 -2
  51. package/examples/mcp-test.ts +1 -2
  52. package/examples/minimal.ts +1 -7
  53. package/examples/nested.ts +1 -2
  54. package/examples/option-required.ts +1 -1
  55. package/examples/servers.ts +4 -5
  56. package/index.d.ts +440 -136
  57. package/package.json +19 -2
  58. package/src/builtins/builtins.test.ts +7 -7
  59. package/src/builtins/completion-bash.ts +1 -1
  60. package/src/builtins/completion-fish.ts +1 -1
  61. package/src/builtins/completion-group.ts +4 -4
  62. package/src/builtins/completion-simulate-shared.ts +9 -0
  63. package/src/builtins/completion-zsh.ts +1 -1
  64. package/src/builtins/config.test.ts +3 -3
  65. package/src/builtins/config.ts +9 -9
  66. package/src/builtins/configure-copy.ts +2 -2
  67. package/src/builtins/configure.ts +4 -4
  68. package/src/builtins/dispatch.ts +19 -18
  69. package/src/builtins/export.ts +7 -5
  70. package/src/builtins/http.ts +68 -0
  71. package/src/builtins/mcp.ts +28 -4
  72. package/src/builtins/presentation.ts +6 -6
  73. package/src/builtins/registry.ts +6 -6
  74. package/src/builtins/scopes.ts +2 -2
  75. package/src/builtins/version.ts +1 -1
  76. package/src/cli-tool/full-example-capabilities.test.ts +10 -15
  77. package/src/cli-tool/main.ts +1 -1
  78. package/src/cli-tool/program.ts +3 -2
  79. package/src/cli-tool/prompt.ts +1 -1
  80. package/src/cli-tool/run-schemagen.ts +1 -3
  81. package/src/cli-tool/schemagen/cleanup.ts +6 -7
  82. package/src/cli-tool/schemagen/discover-schema-roots.ts +66 -120
  83. package/src/cli-tool/schemagen/index.ts +2 -2
  84. package/src/cli-tool/schemagen/names.ts +8 -13
  85. package/src/cli-tool/schemagen/run.ts +21 -28
  86. package/src/cli-tool/schemagen/schemagen.test.ts +136 -46
  87. package/src/config/bindings.test.ts +1 -1
  88. package/src/config/bindings.ts +1 -1
  89. package/src/config/bootstrap.test.ts +1 -1
  90. package/src/config/bootstrap.ts +36 -4
  91. package/src/config/context.test.ts +1 -1
  92. package/src/config/context.ts +1 -1
  93. package/src/config/entry.ts +1 -1
  94. package/src/config/file.test.ts +1 -1
  95. package/src/config/file.ts +3 -3
  96. package/src/config/manifest.ts +1 -1
  97. package/src/config/resolve.test.ts +1 -1
  98. package/src/config/resolve.ts +1 -1
  99. package/src/config/schema.ts +1 -1
  100. package/src/config/validate.ts +1 -1
  101. package/src/{install → configure/artifacts}/binary-placement.test.ts +1 -1
  102. package/src/{install → configure/artifacts}/binary-placement.ts +1 -1
  103. package/src/{install → configure/artifacts}/gh-release-update.ts +1 -1
  104. package/src/{install → configure/artifacts}/install-validate.test.ts +3 -3
  105. package/src/{install → configure/artifacts}/mcp-config.ts +1 -1
  106. package/src/{install → configure/artifacts}/mcp-opencode.test.ts +1 -1
  107. package/src/{install → configure/artifacts}/mcp-opencode.ts +1 -1
  108. package/src/{install → configure/artifacts}/paths.ts +5 -5
  109. package/src/configure/artifacts/plan.ts +24 -0
  110. package/src/{install → configure/artifacts}/status.test.ts +1 -1
  111. package/src/{install → configure/artifacts}/status.ts +2 -2
  112. package/src/{install → configure/artifacts}/target-base.ts +1 -1
  113. package/src/{install → configure/artifacts}/target-detect.ts +1 -1
  114. package/src/{install → configure/artifacts}/target-effective.ts +3 -9
  115. package/src/{install → configure/artifacts}/target-mcp-cli.ts +1 -1
  116. package/src/{install → configure/artifacts}/target-mcp-json.ts +1 -1
  117. package/src/{install → configure/artifacts}/target-plan-build.ts +2 -2
  118. package/src/{install → configure/artifacts}/target-registry.ts +2 -2
  119. package/src/{install → configure/artifacts}/target-scope.ts +3 -3
  120. package/src/{install → configure/artifacts}/target-skill.ts +1 -1
  121. package/src/{install → configure/artifacts}/target-types.ts +2 -2
  122. package/src/{install → configure/artifacts}/targets/app.ts +5 -5
  123. package/src/{install → configure/artifacts}/targets/chatgpt-mcp.ts +2 -2
  124. package/src/{install → configure/artifacts}/targets/claude-code-mcp.ts +2 -2
  125. package/src/{install → configure/artifacts}/targets/claude-desktop-mcp.ts +2 -2
  126. package/src/{install → configure/artifacts}/targets/claude-skill.ts +2 -2
  127. package/src/{install → configure/artifacts}/targets/codex-mcp.ts +2 -2
  128. package/src/{install → configure/artifacts}/targets/codex-skill.ts +2 -2
  129. package/src/{install → configure/artifacts}/targets/configure.ts +5 -5
  130. package/src/{install → configure/artifacts}/targets/cursor-mcp.ts +2 -2
  131. package/src/{install → configure/artifacts}/targets/cursor-skill.ts +2 -2
  132. package/src/{install → configure/artifacts}/targets/index.ts +1 -1
  133. package/src/{install → configure/artifacts}/targets/openclaw-mcp.ts +2 -2
  134. package/src/{install → configure/artifacts}/targets/openclaw-skill.ts +3 -3
  135. package/src/{install → configure/artifacts}/targets/opencode-mcp.ts +5 -5
  136. package/src/{install → configure/artifacts}/targets/opencode-skill.ts +3 -3
  137. package/src/{install → configure/artifacts}/targets.test.ts +1 -1
  138. package/src/{install → configure/artifacts}/uninstall.ts +1 -1
  139. package/src/configure/configure.test.ts +11 -11
  140. package/src/configure/index.ts +14 -14
  141. package/src/configure/prompt.ts +2 -2
  142. package/src/{context.ts → core/context.ts} +26 -20
  143. package/src/core/json-leaf.test.ts +156 -0
  144. package/src/{leaf-inputs.test.ts → core/leaf-inputs.test.ts} +7 -7
  145. package/src/{leaf-inputs.ts → core/leaf-inputs.ts} +76 -16
  146. package/src/{parse.test.ts → core/parse.test.ts} +97 -109
  147. package/src/{parse.ts → core/parse.ts} +173 -25
  148. package/src/{schema.ts → core/schema.ts} +25 -13
  149. package/src/{types.ts → core/types.ts} +238 -35
  150. package/src/{validate.ts → core/validate.ts} +51 -29
  151. package/src/docs/builtin.ts +8 -19
  152. package/src/docs/{api-guide.test.ts → cli-guide.test.ts} +21 -21
  153. package/src/docs/{api-guide.ts → cli-guide.ts} +45 -16
  154. package/src/docs/docs.test.ts +76 -41
  155. package/src/docs/http-guide.ts +37 -34
  156. package/src/docs/mcp-guide.ts +12 -14
  157. package/src/docs/mcp-resources.test.ts +2 -3
  158. package/src/docs/mcp-resources.ts +6 -11
  159. package/src/docs/resolve.ts +22 -30
  160. package/src/docs/save.ts +3 -3
  161. package/src/exports/cli.ts +47 -0
  162. package/src/exports/headless.ts +13 -0
  163. package/src/exports/http.ts +6 -0
  164. package/src/exports/mcp.ts +6 -0
  165. package/src/{headless.test.ts → headless/routing.test.ts} +3 -3
  166. package/src/{headless.ts → headless/routing.ts} +3 -3
  167. package/src/headless/tool-call.ts +114 -46
  168. package/src/help.test.ts +152 -0
  169. package/src/help.ts +54 -18
  170. package/src/hooks/builtin.ts +20 -0
  171. package/src/hooks/run.ts +142 -0
  172. package/src/http/openapi.ts +182 -0
  173. package/src/http/readiness.ts +78 -0
  174. package/src/{api → http}/result.ts +16 -5
  175. package/src/http/routes.ts +329 -0
  176. package/src/http/server.ts +225 -0
  177. package/src/index.ts +38 -25
  178. package/src/log/ecs.test.ts +43 -0
  179. package/src/log/ecs.ts +59 -0
  180. package/src/log/emitter.ts +166 -0
  181. package/src/mcp/bundle.ts +2 -2
  182. package/src/mcp/claude.test.ts +1 -1
  183. package/src/mcp/claude.ts +4 -4
  184. package/src/{hidden-mcpb.test.ts → mcp/hidden-mcpb.test.ts} +10 -9
  185. package/src/mcp/result.ts +2 -2
  186. package/src/mcp/server.ts +54 -6
  187. package/src/mcp/tools.ts +18 -20
  188. package/src/{capabilities.ts → runtime/capabilities.ts} +11 -11
  189. package/src/{cli-errors.ts → runtime/cli-errors.ts} +4 -4
  190. package/src/{cli.ts → runtime/cli.ts} +160 -50
  191. package/src/runtime/exposure.ts +102 -0
  192. package/src/{invoke.test.ts → runtime/invoke.test.ts} +31 -7
  193. package/src/server/context.ts +25 -0
  194. package/src/server/overrides.ts +112 -0
  195. package/src/skill/generate.ts +8 -8
  196. package/src/skill/hint.ts +1 -1
  197. package/src/skill/install.ts +2 -2
  198. package/src/skill/naming.ts +1 -1
  199. package/src/{test-fixtures.ts → test/fixtures.ts} +3 -2
  200. package/src/{config.integration.test.ts → test/integration/config.test.ts} +8 -8
  201. package/src/{api.integration.test.ts → test/integration/http.test.ts} +170 -67
  202. package/src/{mcp.integration.test.ts → test/integration/mcp.test.ts} +11 -57
  203. package/docs/api-server.md +0 -141
  204. package/examples/full-example/docs/api.md +0 -511
  205. package/examples/full-example/src/commands/status/__generated__/outputSchema.json +0 -28
  206. package/examples/full-example/src/config/__generated__/configSchema.json +0 -40
  207. package/examples/full-example/src/config/__generated__/index.ts +0 -5
  208. package/examples/full-example/src/config/types.ts +0 -24
  209. package/src/api/openapi.ts +0 -117
  210. package/src/api/server.ts +0 -120
  211. package/src/builtins/api.ts +0 -38
  212. package/src/hidden.ts +0 -30
  213. package/src/install/plan.ts +0 -53
  214. /package/src/{install → configure/artifacts}/detect-installed.ts +0 -0
  215. /package/src/{install → configure/artifacts}/gh-release-update.test.ts +0 -0
  216. /package/src/{install → configure/artifacts}/mcp-codex.test.ts +0 -0
  217. /package/src/{install → configure/artifacts}/mcp-codex.ts +0 -0
  218. /package/src/{install → configure/artifacts}/mcp-openclaw.test.ts +0 -0
  219. /package/src/{install → configure/artifacts}/mcp-openclaw.ts +0 -0
  220. /package/src/{install → configure/artifacts}/normalize-uninstall.ts +0 -0
  221. /package/src/{install → configure/artifacts}/normalize.ts +0 -0
  222. /package/src/{install → configure/artifacts}/opts.ts +0 -0
  223. /package/src/{install → configure/artifacts}/shell.ts +0 -0
  224. /package/src/{formats.test.ts → core/formats.test.ts} +0 -0
  225. /package/src/{formats.ts → core/formats.ts} +0 -0
  226. /package/src/{respond.ts → core/respond.ts} +0 -0
  227. /package/src/{types.test.ts → core/types.test.ts} +0 -0
  228. /package/src/{api → http}/schema-deref.test.ts +0 -0
  229. /package/src/{api → http}/schema-deref.ts +0 -0
@@ -20,12 +20,12 @@
20
20
  },
21
21
  {
22
22
  "key": "configure",
23
- "description": "Set up agent skills, MCP config, and app config for this app (binary via Homebrew).",
24
- "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew post_install runs:\n full-example configure --sync --yes\n\nInteractive setup (per target):\n full-example configure\n\nUpgrade:\n brew upgrade full-example\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n full-example configure --status\n\nUninstall:\n brew uninstall <tap>/full-example\n\nThe formula uninstall hook runs `configure --remove-all --yes` (skills, MCP, and app config).\n\nRemove app config only:\n full-example configure --remove-config --yes\n\nUse --dry to preview changes without writing files.\nUse --json for machine-readable output.",
23
+ "description": "Set up agent skills and MCP config for this app (binary via Homebrew).",
24
+ "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew post_install runs:\n full-example configure --sync --yes\n\nInteractive setup (per target):\n full-example configure\n\nUpgrade:\n brew upgrade full-example\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n full-example configure --status\n\nUninstall:\n brew uninstall <tap>/full-example\n\nThe formula uninstall hook runs `configure --remove-all --yes` (skills, MCP, and app config).\n\nUse --dry to preview changes without writing files.\nUse --json for machine-readable output.",
25
25
  "options": [
26
26
  {
27
27
  "name": "sync",
28
- "description": "Refresh installed skills, MCP, and config. Used by Homebrew post_install.",
28
+ "description": "Refresh installed skills and MCP. Used by Homebrew post_install.",
29
29
  "kind": "presence"
30
30
  },
31
31
  {
@@ -33,11 +33,6 @@
33
33
  "description": "Remove all detected agent artifacts (skills and MCP).",
34
34
  "kind": "presence"
35
35
  },
36
- {
37
- "name": "remove-config",
38
- "description": "Remove the app config file only.",
39
- "kind": "presence"
40
- },
41
36
  {
42
37
  "name": "status",
43
38
  "description": "Print what is currently installed (read-only).",
@@ -61,42 +56,241 @@
61
56
  }
62
57
  ],
63
58
  "fallbackCommand": "run",
64
- "fallbackMode": "missingOnly",
59
+ "fallbackMode": "missingOnly"
60
+ },
61
+ {
62
+ "key": "docs",
63
+ "description": "Print bundled CLI documentation.",
64
+ "notes": "Topics print to stdout. Add --save to write files under ./docs/.",
65
+ "options": [
66
+ {
67
+ "name": "save",
68
+ "description": "Write documentation to ./docs/.",
69
+ "kind": "presence"
70
+ }
71
+ ],
65
72
  "commands": [
66
73
  {
67
- "key": "get",
68
- "description": "Print resolved configuration value(s).",
74
+ "key": "readme",
75
+ "description": "Print README (user guide).",
69
76
  "options": [
70
77
  {
71
- "name": "json",
72
- "description": "Emit JSON (compact).",
78
+ "name": "save",
79
+ "description": "Write documentation to ./docs/.",
73
80
  "kind": "presence"
74
- },
81
+ }
82
+ ]
83
+ },
84
+ {
85
+ "key": "mcp",
86
+ "description": "Print MCP server setup and tool guidance.",
87
+ "options": [
88
+ {
89
+ "name": "save",
90
+ "description": "Write documentation to ./docs/.",
91
+ "kind": "presence"
92
+ }
93
+ ]
94
+ },
95
+ {
96
+ "key": "http",
97
+ "description": "Print HTTP API setup and tool guidance.",
98
+ "options": [
75
99
  {
76
- "name": "pretty",
77
- "description": "Pretty-print JSON (requires --json).",
100
+ "name": "save",
101
+ "description": "Write documentation to ./docs/.",
78
102
  "kind": "presence"
79
103
  }
80
104
  ]
81
105
  },
82
106
  {
83
- "key": "set",
84
- "description": "Write one configuration key to the config file.",
107
+ "key": "openapi",
108
+ "description": "Print the HTTP OpenAPI 3.1 document as JSON.",
85
109
  "options": [
86
110
  {
87
- "name": "json",
88
- "description": "Emit JSON (compact).",
111
+ "name": "save",
112
+ "description": "Write documentation to ./docs/.",
89
113
  "kind": "presence"
90
- },
114
+ }
115
+ ]
116
+ },
117
+ {
118
+ "key": "cli-schema",
119
+ "description": "Print the full CLI command tree as JSON.",
120
+ "options": [
121
+ {
122
+ "name": "save",
123
+ "description": "Write documentation to ./docs/.",
124
+ "kind": "presence"
125
+ }
126
+ ]
127
+ },
128
+ {
129
+ "key": "cli",
130
+ "description": "Print the full command reference as markdown.",
131
+ "options": [
132
+ {
133
+ "name": "save",
134
+ "description": "Write documentation to ./docs/.",
135
+ "kind": "presence"
136
+ }
137
+ ]
138
+ },
139
+ {
140
+ "key": "skill",
141
+ "description": "Print a reference agent SKILL; run `configure` to install an optimized copy.",
142
+ "options": [
91
143
  {
92
- "name": "from-env",
93
- "description": "Bind this key to its mapped environment variable (no literal value stored).",
144
+ "name": "save",
145
+ "description": "Write documentation to ./docs/.",
94
146
  "kind": "presence"
95
147
  }
96
148
  ]
97
149
  }
98
150
  ]
99
151
  },
152
+ {
153
+ "key": "mcp",
154
+ "description": "MCP server and bundle tools.",
155
+ "notes": "Stdio MCP server. Add to Cursor, Claude Code, or Claude Desktop:\n\n command: full-example\n args: mcp\n\nOr:\n\n full-example configure\n\nFull setup guide: full-example docs mcp",
156
+ "options": [
157
+ {
158
+ "name": "obscure-errors",
159
+ "description": "Hide unexpected errors from clients.",
160
+ "kind": "presence"
161
+ },
162
+ {
163
+ "name": "log-format",
164
+ "description": "Log format: json (ECS) or text.",
165
+ "kind": "enum",
166
+ "choices": [
167
+ "json",
168
+ "text"
169
+ ]
170
+ },
171
+ {
172
+ "name": "log-file",
173
+ "description": "Append logs to this file (relative → app config dir).",
174
+ "kind": "string"
175
+ },
176
+ {
177
+ "name": "dev",
178
+ "description": "Print full stacks to stderr on errors.",
179
+ "kind": "presence"
180
+ }
181
+ ],
182
+ "fallbackCommand": "serve",
183
+ "fallbackMode": "missingOnly",
184
+ "commands": [
185
+ {
186
+ "key": "bundle",
187
+ "description": "Pack dist MCP artifacts (`.mcpb`, Claude Code plugin zip) from dist/<key>."
188
+ }
189
+ ]
190
+ },
191
+ {
192
+ "key": "http",
193
+ "description": "HTTP API server for tools.",
194
+ "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health, GET /health/ready, GET /openapi.json, GET /openapi-browser, /api/*\n\nConfigure app settings:\n\n full-example configure\n\nFull setup guide: full-example docs http",
195
+ "options": [
196
+ {
197
+ "name": "host",
198
+ "description": "Listen host.",
199
+ "kind": "string"
200
+ },
201
+ {
202
+ "name": "port",
203
+ "description": "Listen port.",
204
+ "kind": "number"
205
+ },
206
+ {
207
+ "name": "trust-proxy",
208
+ "description": "Honor X-Forwarded-For for client IP.",
209
+ "kind": "presence"
210
+ },
211
+ {
212
+ "name": "obscure-errors",
213
+ "description": "Hide unexpected errors from clients.",
214
+ "kind": "presence"
215
+ },
216
+ {
217
+ "name": "log-format",
218
+ "description": "Log format: json (ECS) or text.",
219
+ "kind": "enum",
220
+ "choices": [
221
+ "json",
222
+ "text"
223
+ ]
224
+ },
225
+ {
226
+ "name": "log-file",
227
+ "description": "Append logs to this file (relative → app config dir).",
228
+ "kind": "string"
229
+ },
230
+ {
231
+ "name": "no-access-log",
232
+ "description": "Disable HTTP access logs.",
233
+ "kind": "presence"
234
+ },
235
+ {
236
+ "name": "dev",
237
+ "description": "Print full stacks to stderr on errors.",
238
+ "kind": "presence"
239
+ }
240
+ ],
241
+ "fallbackCommand": "serve",
242
+ "fallbackMode": "missingOnly"
243
+ }
244
+ ]
245
+ },
246
+ {
247
+ "key": "render-json",
248
+ "description": "Echo a JSON message (schema-first JSON leaf demo).",
249
+ "commands": [
250
+ {
251
+ "key": "version",
252
+ "description": "Print the program version."
253
+ },
254
+ {
255
+ "key": "configure",
256
+ "description": "Set up agent skills and MCP config for this app (binary via Homebrew).",
257
+ "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew post_install runs:\n full-example configure --sync --yes\n\nInteractive setup (per target):\n full-example configure\n\nUpgrade:\n brew upgrade full-example\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n full-example configure --status\n\nUninstall:\n brew uninstall <tap>/full-example\n\nThe formula uninstall hook runs `configure --remove-all --yes` (skills, MCP, and app config).\n\nUse --dry to preview changes without writing files.\nUse --json for machine-readable output.",
258
+ "options": [
259
+ {
260
+ "name": "sync",
261
+ "description": "Refresh installed skills and MCP. Used by Homebrew post_install.",
262
+ "kind": "presence"
263
+ },
264
+ {
265
+ "name": "remove-all",
266
+ "description": "Remove all detected agent artifacts (skills and MCP).",
267
+ "kind": "presence"
268
+ },
269
+ {
270
+ "name": "status",
271
+ "description": "Print what is currently installed (read-only).",
272
+ "kind": "presence"
273
+ },
274
+ {
275
+ "name": "yes",
276
+ "description": "Skip confirmation (required for --sync, --remove-all, --remove-config).",
277
+ "kind": "presence",
278
+ "shortName": "y"
279
+ },
280
+ {
281
+ "name": "dry",
282
+ "description": "Show what would change without writing files.",
283
+ "kind": "presence"
284
+ },
285
+ {
286
+ "name": "json",
287
+ "description": "Print changed paths or status JSON on stdout.",
288
+ "kind": "presence"
289
+ }
290
+ ],
291
+ "fallbackCommand": "run",
292
+ "fallbackMode": "missingOnly"
293
+ },
100
294
  {
101
295
  "key": "docs",
102
296
  "description": "Print bundled CLI documentation.",
@@ -108,8 +302,6 @@
108
302
  "kind": "presence"
109
303
  }
110
304
  ],
111
- "fallbackCommand": "readme",
112
- "fallbackMode": "missingOnly",
113
305
  "commands": [
114
306
  {
115
307
  "key": "readme",
@@ -167,7 +359,7 @@
167
359
  ]
168
360
  },
169
361
  {
170
- "key": "api",
362
+ "key": "cli",
171
363
  "description": "Print the full command reference as markdown.",
172
364
  "options": [
173
365
  {
@@ -194,6 +386,32 @@
194
386
  "key": "mcp",
195
387
  "description": "MCP server and bundle tools.",
196
388
  "notes": "Stdio MCP server. Add to Cursor, Claude Code, or Claude Desktop:\n\n command: full-example\n args: mcp\n\nOr:\n\n full-example configure\n\nFull setup guide: full-example docs mcp",
389
+ "options": [
390
+ {
391
+ "name": "obscure-errors",
392
+ "description": "Hide unexpected errors from clients.",
393
+ "kind": "presence"
394
+ },
395
+ {
396
+ "name": "log-format",
397
+ "description": "Log format: json (ECS) or text.",
398
+ "kind": "enum",
399
+ "choices": [
400
+ "json",
401
+ "text"
402
+ ]
403
+ },
404
+ {
405
+ "name": "log-file",
406
+ "description": "Append logs to this file (relative → app config dir).",
407
+ "kind": "string"
408
+ },
409
+ {
410
+ "name": "dev",
411
+ "description": "Print full stacks to stderr on errors.",
412
+ "kind": "presence"
413
+ }
414
+ ],
197
415
  "fallbackCommand": "serve",
198
416
  "fallbackMode": "missingOnly",
199
417
  "commands": [
@@ -204,9 +422,55 @@
204
422
  ]
205
423
  },
206
424
  {
207
- "key": "api",
425
+ "key": "http",
208
426
  "description": "HTTP API server for tools.",
209
- "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health, GET /openapi.json, GET /openapi-browser, POST /tools/:name\n\nConfigure app settings:\n\n full-example configure\n\nFull setup guide: full-example docs http",
427
+ "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health, GET /health/ready, GET /openapi.json, GET /openapi-browser, /api/*\n\nConfigure app settings:\n\n full-example configure\n\nFull setup guide: full-example docs http",
428
+ "options": [
429
+ {
430
+ "name": "host",
431
+ "description": "Listen host.",
432
+ "kind": "string"
433
+ },
434
+ {
435
+ "name": "port",
436
+ "description": "Listen port.",
437
+ "kind": "number"
438
+ },
439
+ {
440
+ "name": "trust-proxy",
441
+ "description": "Honor X-Forwarded-For for client IP.",
442
+ "kind": "presence"
443
+ },
444
+ {
445
+ "name": "obscure-errors",
446
+ "description": "Hide unexpected errors from clients.",
447
+ "kind": "presence"
448
+ },
449
+ {
450
+ "name": "log-format",
451
+ "description": "Log format: json (ECS) or text.",
452
+ "kind": "enum",
453
+ "choices": [
454
+ "json",
455
+ "text"
456
+ ]
457
+ },
458
+ {
459
+ "name": "log-file",
460
+ "description": "Append logs to this file (relative → app config dir).",
461
+ "kind": "string"
462
+ },
463
+ {
464
+ "name": "no-access-log",
465
+ "description": "Disable HTTP access logs.",
466
+ "kind": "presence"
467
+ },
468
+ {
469
+ "name": "dev",
470
+ "description": "Print full stacks to stderr on errors.",
471
+ "kind": "presence"
472
+ }
473
+ ],
210
474
  "fallbackCommand": "serve",
211
475
  "fallbackMode": "missingOnly"
212
476
  }
@@ -214,7 +478,7 @@
214
478
  },
215
479
  {
216
480
  "key": "status",
217
- "description": "Show resolved config and app version.",
481
+ "description": "Show app version.",
218
482
  "options": [
219
483
  {
220
484
  "name": "json",
@@ -226,28 +490,15 @@
226
490
  "$schema": "http://json-schema.org/draft-07/schema#",
227
491
  "type": "object",
228
492
  "properties": {
229
- "defaultRegion": {
230
- "type": "string",
231
- "description": "Resolved AWS region."
232
- },
233
- "maxRetries": {
234
- "type": "number",
235
- "description": "Resolved retry count."
236
- },
237
- "apiTokenSet": {
238
- "type": "boolean",
239
- "description": "Whether apiToken is set (value never included)."
240
- },
241
493
  "version": {
242
494
  "type": "string",
243
495
  "description": "App version from program root."
244
496
  }
245
497
  },
246
498
  "required": [
247
- "apiTokenSet",
248
499
  "version"
249
500
  ],
250
- "description": "JSON payload for `full-example status --json`.",
501
+ "additionalProperties": false,
251
502
  "definitions": {}
252
503
  },
253
504
  "commands": [
@@ -257,12 +508,12 @@
257
508
  },
258
509
  {
259
510
  "key": "configure",
260
- "description": "Set up agent skills, MCP config, and app config for this app (binary via Homebrew).",
261
- "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew post_install runs:\n full-example configure --sync --yes\n\nInteractive setup (per target):\n full-example configure\n\nUpgrade:\n brew upgrade full-example\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n full-example configure --status\n\nUninstall:\n brew uninstall <tap>/full-example\n\nThe formula uninstall hook runs `configure --remove-all --yes` (skills, MCP, and app config).\n\nRemove app config only:\n full-example configure --remove-config --yes\n\nUse --dry to preview changes without writing files.\nUse --json for machine-readable output.",
511
+ "description": "Set up agent skills and MCP config for this app (binary via Homebrew).",
512
+ "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew post_install runs:\n full-example configure --sync --yes\n\nInteractive setup (per target):\n full-example configure\n\nUpgrade:\n brew upgrade full-example\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n full-example configure --status\n\nUninstall:\n brew uninstall <tap>/full-example\n\nThe formula uninstall hook runs `configure --remove-all --yes` (skills, MCP, and app config).\n\nUse --dry to preview changes without writing files.\nUse --json for machine-readable output.",
262
513
  "options": [
263
514
  {
264
515
  "name": "sync",
265
- "description": "Refresh installed skills, MCP, and config. Used by Homebrew post_install.",
516
+ "description": "Refresh installed skills and MCP. Used by Homebrew post_install.",
266
517
  "kind": "presence"
267
518
  },
268
519
  {
@@ -270,11 +521,6 @@
270
521
  "description": "Remove all detected agent artifacts (skills and MCP).",
271
522
  "kind": "presence"
272
523
  },
273
- {
274
- "name": "remove-config",
275
- "description": "Remove the app config file only.",
276
- "kind": "presence"
277
- },
278
524
  {
279
525
  "name": "status",
280
526
  "description": "Print what is currently installed (read-only).",
@@ -298,41 +544,7 @@
298
544
  }
299
545
  ],
300
546
  "fallbackCommand": "run",
301
- "fallbackMode": "missingOnly",
302
- "commands": [
303
- {
304
- "key": "get",
305
- "description": "Print resolved configuration value(s).",
306
- "options": [
307
- {
308
- "name": "json",
309
- "description": "Emit JSON (compact).",
310
- "kind": "presence"
311
- },
312
- {
313
- "name": "pretty",
314
- "description": "Pretty-print JSON (requires --json).",
315
- "kind": "presence"
316
- }
317
- ]
318
- },
319
- {
320
- "key": "set",
321
- "description": "Write one configuration key to the config file.",
322
- "options": [
323
- {
324
- "name": "json",
325
- "description": "Emit JSON (compact).",
326
- "kind": "presence"
327
- },
328
- {
329
- "name": "from-env",
330
- "description": "Bind this key to its mapped environment variable (no literal value stored).",
331
- "kind": "presence"
332
- }
333
- ]
334
- }
335
- ]
547
+ "fallbackMode": "missingOnly"
336
548
  },
337
549
  {
338
550
  "key": "docs",
@@ -345,8 +557,6 @@
345
557
  "kind": "presence"
346
558
  }
347
559
  ],
348
- "fallbackCommand": "readme",
349
- "fallbackMode": "missingOnly",
350
560
  "commands": [
351
561
  {
352
562
  "key": "readme",
@@ -404,7 +614,7 @@
404
614
  ]
405
615
  },
406
616
  {
407
- "key": "api",
617
+ "key": "cli",
408
618
  "description": "Print the full command reference as markdown.",
409
619
  "options": [
410
620
  {
@@ -431,23 +641,1505 @@
431
641
  "key": "mcp",
432
642
  "description": "MCP server and bundle tools.",
433
643
  "notes": "Stdio MCP server. Add to Cursor, Claude Code, or Claude Desktop:\n\n command: full-example\n args: mcp\n\nOr:\n\n full-example configure\n\nFull setup guide: full-example docs mcp",
434
- "fallbackCommand": "serve",
435
- "fallbackMode": "missingOnly",
436
- "commands": [
644
+ "options": [
437
645
  {
438
- "key": "bundle",
439
- "description": "Pack dist MCP artifacts (`.mcpb`, Claude Code plugin zip) from dist/<key>."
440
- }
441
- ]
646
+ "name": "obscure-errors",
647
+ "description": "Hide unexpected errors from clients.",
648
+ "kind": "presence"
649
+ },
650
+ {
651
+ "name": "log-format",
652
+ "description": "Log format: json (ECS) or text.",
653
+ "kind": "enum",
654
+ "choices": [
655
+ "json",
656
+ "text"
657
+ ]
658
+ },
659
+ {
660
+ "name": "log-file",
661
+ "description": "Append logs to this file (relative → app config dir).",
662
+ "kind": "string"
663
+ },
664
+ {
665
+ "name": "dev",
666
+ "description": "Print full stacks to stderr on errors.",
667
+ "kind": "presence"
668
+ }
669
+ ],
670
+ "fallbackCommand": "serve",
671
+ "fallbackMode": "missingOnly",
672
+ "commands": [
673
+ {
674
+ "key": "bundle",
675
+ "description": "Pack dist MCP artifacts (`.mcpb`, Claude Code plugin zip) from dist/<key>."
676
+ }
677
+ ]
442
678
  },
443
679
  {
444
- "key": "api",
680
+ "key": "http",
445
681
  "description": "HTTP API server for tools.",
446
- "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health, GET /openapi.json, GET /openapi-browser, POST /tools/:name\n\nConfigure app settings:\n\n full-example configure\n\nFull setup guide: full-example docs http",
682
+ "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health, GET /health/ready, GET /openapi.json, GET /openapi-browser, /api/*\n\nConfigure app settings:\n\n full-example configure\n\nFull setup guide: full-example docs http",
683
+ "options": [
684
+ {
685
+ "name": "host",
686
+ "description": "Listen host.",
687
+ "kind": "string"
688
+ },
689
+ {
690
+ "name": "port",
691
+ "description": "Listen port.",
692
+ "kind": "number"
693
+ },
694
+ {
695
+ "name": "trust-proxy",
696
+ "description": "Honor X-Forwarded-For for client IP.",
697
+ "kind": "presence"
698
+ },
699
+ {
700
+ "name": "obscure-errors",
701
+ "description": "Hide unexpected errors from clients.",
702
+ "kind": "presence"
703
+ },
704
+ {
705
+ "name": "log-format",
706
+ "description": "Log format: json (ECS) or text.",
707
+ "kind": "enum",
708
+ "choices": [
709
+ "json",
710
+ "text"
711
+ ]
712
+ },
713
+ {
714
+ "name": "log-file",
715
+ "description": "Append logs to this file (relative → app config dir).",
716
+ "kind": "string"
717
+ },
718
+ {
719
+ "name": "no-access-log",
720
+ "description": "Disable HTTP access logs.",
721
+ "kind": "presence"
722
+ },
723
+ {
724
+ "name": "dev",
725
+ "description": "Print full stacks to stderr on errors.",
726
+ "kind": "presence"
727
+ }
728
+ ],
447
729
  "fallbackCommand": "serve",
448
730
  "fallbackMode": "missingOnly"
449
731
  }
450
732
  ]
733
+ },
734
+ {
735
+ "key": "workspaces",
736
+ "description": "Workspace collection and CRUD.",
737
+ "commands": [
738
+ {
739
+ "key": "get",
740
+ "description": "List workspaces.",
741
+ "commands": [
742
+ {
743
+ "key": "version",
744
+ "description": "Print the program version."
745
+ },
746
+ {
747
+ "key": "configure",
748
+ "description": "Set up agent skills and MCP config for this app (binary via Homebrew).",
749
+ "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew post_install runs:\n full-example configure --sync --yes\n\nInteractive setup (per target):\n full-example configure\n\nUpgrade:\n brew upgrade full-example\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n full-example configure --status\n\nUninstall:\n brew uninstall <tap>/full-example\n\nThe formula uninstall hook runs `configure --remove-all --yes` (skills, MCP, and app config).\n\nUse --dry to preview changes without writing files.\nUse --json for machine-readable output.",
750
+ "options": [
751
+ {
752
+ "name": "sync",
753
+ "description": "Refresh installed skills and MCP. Used by Homebrew post_install.",
754
+ "kind": "presence"
755
+ },
756
+ {
757
+ "name": "remove-all",
758
+ "description": "Remove all detected agent artifacts (skills and MCP).",
759
+ "kind": "presence"
760
+ },
761
+ {
762
+ "name": "status",
763
+ "description": "Print what is currently installed (read-only).",
764
+ "kind": "presence"
765
+ },
766
+ {
767
+ "name": "yes",
768
+ "description": "Skip confirmation (required for --sync, --remove-all, --remove-config).",
769
+ "kind": "presence",
770
+ "shortName": "y"
771
+ },
772
+ {
773
+ "name": "dry",
774
+ "description": "Show what would change without writing files.",
775
+ "kind": "presence"
776
+ },
777
+ {
778
+ "name": "json",
779
+ "description": "Print changed paths or status JSON on stdout.",
780
+ "kind": "presence"
781
+ }
782
+ ],
783
+ "fallbackCommand": "run",
784
+ "fallbackMode": "missingOnly"
785
+ },
786
+ {
787
+ "key": "docs",
788
+ "description": "Print bundled CLI documentation.",
789
+ "notes": "Topics print to stdout. Add --save to write files under ./docs/.",
790
+ "options": [
791
+ {
792
+ "name": "save",
793
+ "description": "Write documentation to ./docs/.",
794
+ "kind": "presence"
795
+ }
796
+ ],
797
+ "commands": [
798
+ {
799
+ "key": "readme",
800
+ "description": "Print README (user guide).",
801
+ "options": [
802
+ {
803
+ "name": "save",
804
+ "description": "Write documentation to ./docs/.",
805
+ "kind": "presence"
806
+ }
807
+ ]
808
+ },
809
+ {
810
+ "key": "mcp",
811
+ "description": "Print MCP server setup and tool guidance.",
812
+ "options": [
813
+ {
814
+ "name": "save",
815
+ "description": "Write documentation to ./docs/.",
816
+ "kind": "presence"
817
+ }
818
+ ]
819
+ },
820
+ {
821
+ "key": "http",
822
+ "description": "Print HTTP API setup and tool guidance.",
823
+ "options": [
824
+ {
825
+ "name": "save",
826
+ "description": "Write documentation to ./docs/.",
827
+ "kind": "presence"
828
+ }
829
+ ]
830
+ },
831
+ {
832
+ "key": "openapi",
833
+ "description": "Print the HTTP OpenAPI 3.1 document as JSON.",
834
+ "options": [
835
+ {
836
+ "name": "save",
837
+ "description": "Write documentation to ./docs/.",
838
+ "kind": "presence"
839
+ }
840
+ ]
841
+ },
842
+ {
843
+ "key": "cli-schema",
844
+ "description": "Print the full CLI command tree as JSON.",
845
+ "options": [
846
+ {
847
+ "name": "save",
848
+ "description": "Write documentation to ./docs/.",
849
+ "kind": "presence"
850
+ }
851
+ ]
852
+ },
853
+ {
854
+ "key": "cli",
855
+ "description": "Print the full command reference as markdown.",
856
+ "options": [
857
+ {
858
+ "name": "save",
859
+ "description": "Write documentation to ./docs/.",
860
+ "kind": "presence"
861
+ }
862
+ ]
863
+ },
864
+ {
865
+ "key": "skill",
866
+ "description": "Print a reference agent SKILL; run `configure` to install an optimized copy.",
867
+ "options": [
868
+ {
869
+ "name": "save",
870
+ "description": "Write documentation to ./docs/.",
871
+ "kind": "presence"
872
+ }
873
+ ]
874
+ }
875
+ ]
876
+ },
877
+ {
878
+ "key": "mcp",
879
+ "description": "MCP server and bundle tools.",
880
+ "notes": "Stdio MCP server. Add to Cursor, Claude Code, or Claude Desktop:\n\n command: full-example\n args: mcp\n\nOr:\n\n full-example configure\n\nFull setup guide: full-example docs mcp",
881
+ "options": [
882
+ {
883
+ "name": "obscure-errors",
884
+ "description": "Hide unexpected errors from clients.",
885
+ "kind": "presence"
886
+ },
887
+ {
888
+ "name": "log-format",
889
+ "description": "Log format: json (ECS) or text.",
890
+ "kind": "enum",
891
+ "choices": [
892
+ "json",
893
+ "text"
894
+ ]
895
+ },
896
+ {
897
+ "name": "log-file",
898
+ "description": "Append logs to this file (relative → app config dir).",
899
+ "kind": "string"
900
+ },
901
+ {
902
+ "name": "dev",
903
+ "description": "Print full stacks to stderr on errors.",
904
+ "kind": "presence"
905
+ }
906
+ ],
907
+ "fallbackCommand": "serve",
908
+ "fallbackMode": "missingOnly",
909
+ "commands": [
910
+ {
911
+ "key": "bundle",
912
+ "description": "Pack dist MCP artifacts (`.mcpb`, Claude Code plugin zip) from dist/<key>."
913
+ }
914
+ ]
915
+ },
916
+ {
917
+ "key": "http",
918
+ "description": "HTTP API server for tools.",
919
+ "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health, GET /health/ready, GET /openapi.json, GET /openapi-browser, /api/*\n\nConfigure app settings:\n\n full-example configure\n\nFull setup guide: full-example docs http",
920
+ "options": [
921
+ {
922
+ "name": "host",
923
+ "description": "Listen host.",
924
+ "kind": "string"
925
+ },
926
+ {
927
+ "name": "port",
928
+ "description": "Listen port.",
929
+ "kind": "number"
930
+ },
931
+ {
932
+ "name": "trust-proxy",
933
+ "description": "Honor X-Forwarded-For for client IP.",
934
+ "kind": "presence"
935
+ },
936
+ {
937
+ "name": "obscure-errors",
938
+ "description": "Hide unexpected errors from clients.",
939
+ "kind": "presence"
940
+ },
941
+ {
942
+ "name": "log-format",
943
+ "description": "Log format: json (ECS) or text.",
944
+ "kind": "enum",
945
+ "choices": [
946
+ "json",
947
+ "text"
948
+ ]
949
+ },
950
+ {
951
+ "name": "log-file",
952
+ "description": "Append logs to this file (relative → app config dir).",
953
+ "kind": "string"
954
+ },
955
+ {
956
+ "name": "no-access-log",
957
+ "description": "Disable HTTP access logs.",
958
+ "kind": "presence"
959
+ },
960
+ {
961
+ "name": "dev",
962
+ "description": "Print full stacks to stderr on errors.",
963
+ "kind": "presence"
964
+ }
965
+ ],
966
+ "fallbackCommand": "serve",
967
+ "fallbackMode": "missingOnly"
968
+ }
969
+ ]
970
+ },
971
+ {
972
+ "key": "post",
973
+ "description": "Create a workspace.",
974
+ "commands": [
975
+ {
976
+ "key": "version",
977
+ "description": "Print the program version."
978
+ },
979
+ {
980
+ "key": "configure",
981
+ "description": "Set up agent skills and MCP config for this app (binary via Homebrew).",
982
+ "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew post_install runs:\n full-example configure --sync --yes\n\nInteractive setup (per target):\n full-example configure\n\nUpgrade:\n brew upgrade full-example\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n full-example configure --status\n\nUninstall:\n brew uninstall <tap>/full-example\n\nThe formula uninstall hook runs `configure --remove-all --yes` (skills, MCP, and app config).\n\nUse --dry to preview changes without writing files.\nUse --json for machine-readable output.",
983
+ "options": [
984
+ {
985
+ "name": "sync",
986
+ "description": "Refresh installed skills and MCP. Used by Homebrew post_install.",
987
+ "kind": "presence"
988
+ },
989
+ {
990
+ "name": "remove-all",
991
+ "description": "Remove all detected agent artifacts (skills and MCP).",
992
+ "kind": "presence"
993
+ },
994
+ {
995
+ "name": "status",
996
+ "description": "Print what is currently installed (read-only).",
997
+ "kind": "presence"
998
+ },
999
+ {
1000
+ "name": "yes",
1001
+ "description": "Skip confirmation (required for --sync, --remove-all, --remove-config).",
1002
+ "kind": "presence",
1003
+ "shortName": "y"
1004
+ },
1005
+ {
1006
+ "name": "dry",
1007
+ "description": "Show what would change without writing files.",
1008
+ "kind": "presence"
1009
+ },
1010
+ {
1011
+ "name": "json",
1012
+ "description": "Print changed paths or status JSON on stdout.",
1013
+ "kind": "presence"
1014
+ }
1015
+ ],
1016
+ "fallbackCommand": "run",
1017
+ "fallbackMode": "missingOnly"
1018
+ },
1019
+ {
1020
+ "key": "docs",
1021
+ "description": "Print bundled CLI documentation.",
1022
+ "notes": "Topics print to stdout. Add --save to write files under ./docs/.",
1023
+ "options": [
1024
+ {
1025
+ "name": "save",
1026
+ "description": "Write documentation to ./docs/.",
1027
+ "kind": "presence"
1028
+ }
1029
+ ],
1030
+ "commands": [
1031
+ {
1032
+ "key": "readme",
1033
+ "description": "Print README (user guide).",
1034
+ "options": [
1035
+ {
1036
+ "name": "save",
1037
+ "description": "Write documentation to ./docs/.",
1038
+ "kind": "presence"
1039
+ }
1040
+ ]
1041
+ },
1042
+ {
1043
+ "key": "mcp",
1044
+ "description": "Print MCP server setup and tool guidance.",
1045
+ "options": [
1046
+ {
1047
+ "name": "save",
1048
+ "description": "Write documentation to ./docs/.",
1049
+ "kind": "presence"
1050
+ }
1051
+ ]
1052
+ },
1053
+ {
1054
+ "key": "http",
1055
+ "description": "Print HTTP API setup and tool guidance.",
1056
+ "options": [
1057
+ {
1058
+ "name": "save",
1059
+ "description": "Write documentation to ./docs/.",
1060
+ "kind": "presence"
1061
+ }
1062
+ ]
1063
+ },
1064
+ {
1065
+ "key": "openapi",
1066
+ "description": "Print the HTTP OpenAPI 3.1 document as JSON.",
1067
+ "options": [
1068
+ {
1069
+ "name": "save",
1070
+ "description": "Write documentation to ./docs/.",
1071
+ "kind": "presence"
1072
+ }
1073
+ ]
1074
+ },
1075
+ {
1076
+ "key": "cli-schema",
1077
+ "description": "Print the full CLI command tree as JSON.",
1078
+ "options": [
1079
+ {
1080
+ "name": "save",
1081
+ "description": "Write documentation to ./docs/.",
1082
+ "kind": "presence"
1083
+ }
1084
+ ]
1085
+ },
1086
+ {
1087
+ "key": "cli",
1088
+ "description": "Print the full command reference as markdown.",
1089
+ "options": [
1090
+ {
1091
+ "name": "save",
1092
+ "description": "Write documentation to ./docs/.",
1093
+ "kind": "presence"
1094
+ }
1095
+ ]
1096
+ },
1097
+ {
1098
+ "key": "skill",
1099
+ "description": "Print a reference agent SKILL; run `configure` to install an optimized copy.",
1100
+ "options": [
1101
+ {
1102
+ "name": "save",
1103
+ "description": "Write documentation to ./docs/.",
1104
+ "kind": "presence"
1105
+ }
1106
+ ]
1107
+ }
1108
+ ]
1109
+ },
1110
+ {
1111
+ "key": "mcp",
1112
+ "description": "MCP server and bundle tools.",
1113
+ "notes": "Stdio MCP server. Add to Cursor, Claude Code, or Claude Desktop:\n\n command: full-example\n args: mcp\n\nOr:\n\n full-example configure\n\nFull setup guide: full-example docs mcp",
1114
+ "options": [
1115
+ {
1116
+ "name": "obscure-errors",
1117
+ "description": "Hide unexpected errors from clients.",
1118
+ "kind": "presence"
1119
+ },
1120
+ {
1121
+ "name": "log-format",
1122
+ "description": "Log format: json (ECS) or text.",
1123
+ "kind": "enum",
1124
+ "choices": [
1125
+ "json",
1126
+ "text"
1127
+ ]
1128
+ },
1129
+ {
1130
+ "name": "log-file",
1131
+ "description": "Append logs to this file (relative → app config dir).",
1132
+ "kind": "string"
1133
+ },
1134
+ {
1135
+ "name": "dev",
1136
+ "description": "Print full stacks to stderr on errors.",
1137
+ "kind": "presence"
1138
+ }
1139
+ ],
1140
+ "fallbackCommand": "serve",
1141
+ "fallbackMode": "missingOnly",
1142
+ "commands": [
1143
+ {
1144
+ "key": "bundle",
1145
+ "description": "Pack dist MCP artifacts (`.mcpb`, Claude Code plugin zip) from dist/<key>."
1146
+ }
1147
+ ]
1148
+ },
1149
+ {
1150
+ "key": "http",
1151
+ "description": "HTTP API server for tools.",
1152
+ "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health, GET /health/ready, GET /openapi.json, GET /openapi-browser, /api/*\n\nConfigure app settings:\n\n full-example configure\n\nFull setup guide: full-example docs http",
1153
+ "options": [
1154
+ {
1155
+ "name": "host",
1156
+ "description": "Listen host.",
1157
+ "kind": "string"
1158
+ },
1159
+ {
1160
+ "name": "port",
1161
+ "description": "Listen port.",
1162
+ "kind": "number"
1163
+ },
1164
+ {
1165
+ "name": "trust-proxy",
1166
+ "description": "Honor X-Forwarded-For for client IP.",
1167
+ "kind": "presence"
1168
+ },
1169
+ {
1170
+ "name": "obscure-errors",
1171
+ "description": "Hide unexpected errors from clients.",
1172
+ "kind": "presence"
1173
+ },
1174
+ {
1175
+ "name": "log-format",
1176
+ "description": "Log format: json (ECS) or text.",
1177
+ "kind": "enum",
1178
+ "choices": [
1179
+ "json",
1180
+ "text"
1181
+ ]
1182
+ },
1183
+ {
1184
+ "name": "log-file",
1185
+ "description": "Append logs to this file (relative → app config dir).",
1186
+ "kind": "string"
1187
+ },
1188
+ {
1189
+ "name": "no-access-log",
1190
+ "description": "Disable HTTP access logs.",
1191
+ "kind": "presence"
1192
+ },
1193
+ {
1194
+ "name": "dev",
1195
+ "description": "Print full stacks to stderr on errors.",
1196
+ "kind": "presence"
1197
+ }
1198
+ ],
1199
+ "fallbackCommand": "serve",
1200
+ "fallbackMode": "missingOnly"
1201
+ }
1202
+ ]
1203
+ },
1204
+ {
1205
+ "key": ":id",
1206
+ "description": "One workspace by id.",
1207
+ "commands": [
1208
+ {
1209
+ "key": "get",
1210
+ "description": "Get one workspace.",
1211
+ "commands": [
1212
+ {
1213
+ "key": "version",
1214
+ "description": "Print the program version."
1215
+ },
1216
+ {
1217
+ "key": "configure",
1218
+ "description": "Set up agent skills and MCP config for this app (binary via Homebrew).",
1219
+ "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew post_install runs:\n full-example configure --sync --yes\n\nInteractive setup (per target):\n full-example configure\n\nUpgrade:\n brew upgrade full-example\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n full-example configure --status\n\nUninstall:\n brew uninstall <tap>/full-example\n\nThe formula uninstall hook runs `configure --remove-all --yes` (skills, MCP, and app config).\n\nUse --dry to preview changes without writing files.\nUse --json for machine-readable output.",
1220
+ "options": [
1221
+ {
1222
+ "name": "sync",
1223
+ "description": "Refresh installed skills and MCP. Used by Homebrew post_install.",
1224
+ "kind": "presence"
1225
+ },
1226
+ {
1227
+ "name": "remove-all",
1228
+ "description": "Remove all detected agent artifacts (skills and MCP).",
1229
+ "kind": "presence"
1230
+ },
1231
+ {
1232
+ "name": "status",
1233
+ "description": "Print what is currently installed (read-only).",
1234
+ "kind": "presence"
1235
+ },
1236
+ {
1237
+ "name": "yes",
1238
+ "description": "Skip confirmation (required for --sync, --remove-all, --remove-config).",
1239
+ "kind": "presence",
1240
+ "shortName": "y"
1241
+ },
1242
+ {
1243
+ "name": "dry",
1244
+ "description": "Show what would change without writing files.",
1245
+ "kind": "presence"
1246
+ },
1247
+ {
1248
+ "name": "json",
1249
+ "description": "Print changed paths or status JSON on stdout.",
1250
+ "kind": "presence"
1251
+ }
1252
+ ],
1253
+ "fallbackCommand": "run",
1254
+ "fallbackMode": "missingOnly"
1255
+ },
1256
+ {
1257
+ "key": "docs",
1258
+ "description": "Print bundled CLI documentation.",
1259
+ "notes": "Topics print to stdout. Add --save to write files under ./docs/.",
1260
+ "options": [
1261
+ {
1262
+ "name": "save",
1263
+ "description": "Write documentation to ./docs/.",
1264
+ "kind": "presence"
1265
+ }
1266
+ ],
1267
+ "commands": [
1268
+ {
1269
+ "key": "readme",
1270
+ "description": "Print README (user guide).",
1271
+ "options": [
1272
+ {
1273
+ "name": "save",
1274
+ "description": "Write documentation to ./docs/.",
1275
+ "kind": "presence"
1276
+ }
1277
+ ]
1278
+ },
1279
+ {
1280
+ "key": "mcp",
1281
+ "description": "Print MCP server setup and tool guidance.",
1282
+ "options": [
1283
+ {
1284
+ "name": "save",
1285
+ "description": "Write documentation to ./docs/.",
1286
+ "kind": "presence"
1287
+ }
1288
+ ]
1289
+ },
1290
+ {
1291
+ "key": "http",
1292
+ "description": "Print HTTP API setup and tool guidance.",
1293
+ "options": [
1294
+ {
1295
+ "name": "save",
1296
+ "description": "Write documentation to ./docs/.",
1297
+ "kind": "presence"
1298
+ }
1299
+ ]
1300
+ },
1301
+ {
1302
+ "key": "openapi",
1303
+ "description": "Print the HTTP OpenAPI 3.1 document as JSON.",
1304
+ "options": [
1305
+ {
1306
+ "name": "save",
1307
+ "description": "Write documentation to ./docs/.",
1308
+ "kind": "presence"
1309
+ }
1310
+ ]
1311
+ },
1312
+ {
1313
+ "key": "cli-schema",
1314
+ "description": "Print the full CLI command tree as JSON.",
1315
+ "options": [
1316
+ {
1317
+ "name": "save",
1318
+ "description": "Write documentation to ./docs/.",
1319
+ "kind": "presence"
1320
+ }
1321
+ ]
1322
+ },
1323
+ {
1324
+ "key": "cli",
1325
+ "description": "Print the full command reference as markdown.",
1326
+ "options": [
1327
+ {
1328
+ "name": "save",
1329
+ "description": "Write documentation to ./docs/.",
1330
+ "kind": "presence"
1331
+ }
1332
+ ]
1333
+ },
1334
+ {
1335
+ "key": "skill",
1336
+ "description": "Print a reference agent SKILL; run `configure` to install an optimized copy.",
1337
+ "options": [
1338
+ {
1339
+ "name": "save",
1340
+ "description": "Write documentation to ./docs/.",
1341
+ "kind": "presence"
1342
+ }
1343
+ ]
1344
+ }
1345
+ ]
1346
+ },
1347
+ {
1348
+ "key": "mcp",
1349
+ "description": "MCP server and bundle tools.",
1350
+ "notes": "Stdio MCP server. Add to Cursor, Claude Code, or Claude Desktop:\n\n command: full-example\n args: mcp\n\nOr:\n\n full-example configure\n\nFull setup guide: full-example docs mcp",
1351
+ "options": [
1352
+ {
1353
+ "name": "obscure-errors",
1354
+ "description": "Hide unexpected errors from clients.",
1355
+ "kind": "presence"
1356
+ },
1357
+ {
1358
+ "name": "log-format",
1359
+ "description": "Log format: json (ECS) or text.",
1360
+ "kind": "enum",
1361
+ "choices": [
1362
+ "json",
1363
+ "text"
1364
+ ]
1365
+ },
1366
+ {
1367
+ "name": "log-file",
1368
+ "description": "Append logs to this file (relative → app config dir).",
1369
+ "kind": "string"
1370
+ },
1371
+ {
1372
+ "name": "dev",
1373
+ "description": "Print full stacks to stderr on errors.",
1374
+ "kind": "presence"
1375
+ }
1376
+ ],
1377
+ "fallbackCommand": "serve",
1378
+ "fallbackMode": "missingOnly",
1379
+ "commands": [
1380
+ {
1381
+ "key": "bundle",
1382
+ "description": "Pack dist MCP artifacts (`.mcpb`, Claude Code plugin zip) from dist/<key>."
1383
+ }
1384
+ ]
1385
+ },
1386
+ {
1387
+ "key": "http",
1388
+ "description": "HTTP API server for tools.",
1389
+ "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health, GET /health/ready, GET /openapi.json, GET /openapi-browser, /api/*\n\nConfigure app settings:\n\n full-example configure\n\nFull setup guide: full-example docs http",
1390
+ "options": [
1391
+ {
1392
+ "name": "host",
1393
+ "description": "Listen host.",
1394
+ "kind": "string"
1395
+ },
1396
+ {
1397
+ "name": "port",
1398
+ "description": "Listen port.",
1399
+ "kind": "number"
1400
+ },
1401
+ {
1402
+ "name": "trust-proxy",
1403
+ "description": "Honor X-Forwarded-For for client IP.",
1404
+ "kind": "presence"
1405
+ },
1406
+ {
1407
+ "name": "obscure-errors",
1408
+ "description": "Hide unexpected errors from clients.",
1409
+ "kind": "presence"
1410
+ },
1411
+ {
1412
+ "name": "log-format",
1413
+ "description": "Log format: json (ECS) or text.",
1414
+ "kind": "enum",
1415
+ "choices": [
1416
+ "json",
1417
+ "text"
1418
+ ]
1419
+ },
1420
+ {
1421
+ "name": "log-file",
1422
+ "description": "Append logs to this file (relative → app config dir).",
1423
+ "kind": "string"
1424
+ },
1425
+ {
1426
+ "name": "no-access-log",
1427
+ "description": "Disable HTTP access logs.",
1428
+ "kind": "presence"
1429
+ },
1430
+ {
1431
+ "name": "dev",
1432
+ "description": "Print full stacks to stderr on errors.",
1433
+ "kind": "presence"
1434
+ }
1435
+ ],
1436
+ "fallbackCommand": "serve",
1437
+ "fallbackMode": "missingOnly"
1438
+ }
1439
+ ]
1440
+ },
1441
+ {
1442
+ "key": "put",
1443
+ "description": "Replace a workspace.",
1444
+ "commands": [
1445
+ {
1446
+ "key": "version",
1447
+ "description": "Print the program version."
1448
+ },
1449
+ {
1450
+ "key": "configure",
1451
+ "description": "Set up agent skills and MCP config for this app (binary via Homebrew).",
1452
+ "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew post_install runs:\n full-example configure --sync --yes\n\nInteractive setup (per target):\n full-example configure\n\nUpgrade:\n brew upgrade full-example\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n full-example configure --status\n\nUninstall:\n brew uninstall <tap>/full-example\n\nThe formula uninstall hook runs `configure --remove-all --yes` (skills, MCP, and app config).\n\nUse --dry to preview changes without writing files.\nUse --json for machine-readable output.",
1453
+ "options": [
1454
+ {
1455
+ "name": "sync",
1456
+ "description": "Refresh installed skills and MCP. Used by Homebrew post_install.",
1457
+ "kind": "presence"
1458
+ },
1459
+ {
1460
+ "name": "remove-all",
1461
+ "description": "Remove all detected agent artifacts (skills and MCP).",
1462
+ "kind": "presence"
1463
+ },
1464
+ {
1465
+ "name": "status",
1466
+ "description": "Print what is currently installed (read-only).",
1467
+ "kind": "presence"
1468
+ },
1469
+ {
1470
+ "name": "yes",
1471
+ "description": "Skip confirmation (required for --sync, --remove-all, --remove-config).",
1472
+ "kind": "presence",
1473
+ "shortName": "y"
1474
+ },
1475
+ {
1476
+ "name": "dry",
1477
+ "description": "Show what would change without writing files.",
1478
+ "kind": "presence"
1479
+ },
1480
+ {
1481
+ "name": "json",
1482
+ "description": "Print changed paths or status JSON on stdout.",
1483
+ "kind": "presence"
1484
+ }
1485
+ ],
1486
+ "fallbackCommand": "run",
1487
+ "fallbackMode": "missingOnly"
1488
+ },
1489
+ {
1490
+ "key": "docs",
1491
+ "description": "Print bundled CLI documentation.",
1492
+ "notes": "Topics print to stdout. Add --save to write files under ./docs/.",
1493
+ "options": [
1494
+ {
1495
+ "name": "save",
1496
+ "description": "Write documentation to ./docs/.",
1497
+ "kind": "presence"
1498
+ }
1499
+ ],
1500
+ "commands": [
1501
+ {
1502
+ "key": "readme",
1503
+ "description": "Print README (user guide).",
1504
+ "options": [
1505
+ {
1506
+ "name": "save",
1507
+ "description": "Write documentation to ./docs/.",
1508
+ "kind": "presence"
1509
+ }
1510
+ ]
1511
+ },
1512
+ {
1513
+ "key": "mcp",
1514
+ "description": "Print MCP server setup and tool guidance.",
1515
+ "options": [
1516
+ {
1517
+ "name": "save",
1518
+ "description": "Write documentation to ./docs/.",
1519
+ "kind": "presence"
1520
+ }
1521
+ ]
1522
+ },
1523
+ {
1524
+ "key": "http",
1525
+ "description": "Print HTTP API setup and tool guidance.",
1526
+ "options": [
1527
+ {
1528
+ "name": "save",
1529
+ "description": "Write documentation to ./docs/.",
1530
+ "kind": "presence"
1531
+ }
1532
+ ]
1533
+ },
1534
+ {
1535
+ "key": "openapi",
1536
+ "description": "Print the HTTP OpenAPI 3.1 document as JSON.",
1537
+ "options": [
1538
+ {
1539
+ "name": "save",
1540
+ "description": "Write documentation to ./docs/.",
1541
+ "kind": "presence"
1542
+ }
1543
+ ]
1544
+ },
1545
+ {
1546
+ "key": "cli-schema",
1547
+ "description": "Print the full CLI command tree as JSON.",
1548
+ "options": [
1549
+ {
1550
+ "name": "save",
1551
+ "description": "Write documentation to ./docs/.",
1552
+ "kind": "presence"
1553
+ }
1554
+ ]
1555
+ },
1556
+ {
1557
+ "key": "cli",
1558
+ "description": "Print the full command reference as markdown.",
1559
+ "options": [
1560
+ {
1561
+ "name": "save",
1562
+ "description": "Write documentation to ./docs/.",
1563
+ "kind": "presence"
1564
+ }
1565
+ ]
1566
+ },
1567
+ {
1568
+ "key": "skill",
1569
+ "description": "Print a reference agent SKILL; run `configure` to install an optimized copy.",
1570
+ "options": [
1571
+ {
1572
+ "name": "save",
1573
+ "description": "Write documentation to ./docs/.",
1574
+ "kind": "presence"
1575
+ }
1576
+ ]
1577
+ }
1578
+ ]
1579
+ },
1580
+ {
1581
+ "key": "mcp",
1582
+ "description": "MCP server and bundle tools.",
1583
+ "notes": "Stdio MCP server. Add to Cursor, Claude Code, or Claude Desktop:\n\n command: full-example\n args: mcp\n\nOr:\n\n full-example configure\n\nFull setup guide: full-example docs mcp",
1584
+ "options": [
1585
+ {
1586
+ "name": "obscure-errors",
1587
+ "description": "Hide unexpected errors from clients.",
1588
+ "kind": "presence"
1589
+ },
1590
+ {
1591
+ "name": "log-format",
1592
+ "description": "Log format: json (ECS) or text.",
1593
+ "kind": "enum",
1594
+ "choices": [
1595
+ "json",
1596
+ "text"
1597
+ ]
1598
+ },
1599
+ {
1600
+ "name": "log-file",
1601
+ "description": "Append logs to this file (relative → app config dir).",
1602
+ "kind": "string"
1603
+ },
1604
+ {
1605
+ "name": "dev",
1606
+ "description": "Print full stacks to stderr on errors.",
1607
+ "kind": "presence"
1608
+ }
1609
+ ],
1610
+ "fallbackCommand": "serve",
1611
+ "fallbackMode": "missingOnly",
1612
+ "commands": [
1613
+ {
1614
+ "key": "bundle",
1615
+ "description": "Pack dist MCP artifacts (`.mcpb`, Claude Code plugin zip) from dist/<key>."
1616
+ }
1617
+ ]
1618
+ },
1619
+ {
1620
+ "key": "http",
1621
+ "description": "HTTP API server for tools.",
1622
+ "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health, GET /health/ready, GET /openapi.json, GET /openapi-browser, /api/*\n\nConfigure app settings:\n\n full-example configure\n\nFull setup guide: full-example docs http",
1623
+ "options": [
1624
+ {
1625
+ "name": "host",
1626
+ "description": "Listen host.",
1627
+ "kind": "string"
1628
+ },
1629
+ {
1630
+ "name": "port",
1631
+ "description": "Listen port.",
1632
+ "kind": "number"
1633
+ },
1634
+ {
1635
+ "name": "trust-proxy",
1636
+ "description": "Honor X-Forwarded-For for client IP.",
1637
+ "kind": "presence"
1638
+ },
1639
+ {
1640
+ "name": "obscure-errors",
1641
+ "description": "Hide unexpected errors from clients.",
1642
+ "kind": "presence"
1643
+ },
1644
+ {
1645
+ "name": "log-format",
1646
+ "description": "Log format: json (ECS) or text.",
1647
+ "kind": "enum",
1648
+ "choices": [
1649
+ "json",
1650
+ "text"
1651
+ ]
1652
+ },
1653
+ {
1654
+ "name": "log-file",
1655
+ "description": "Append logs to this file (relative → app config dir).",
1656
+ "kind": "string"
1657
+ },
1658
+ {
1659
+ "name": "no-access-log",
1660
+ "description": "Disable HTTP access logs.",
1661
+ "kind": "presence"
1662
+ },
1663
+ {
1664
+ "name": "dev",
1665
+ "description": "Print full stacks to stderr on errors.",
1666
+ "kind": "presence"
1667
+ }
1668
+ ],
1669
+ "fallbackCommand": "serve",
1670
+ "fallbackMode": "missingOnly"
1671
+ }
1672
+ ]
1673
+ },
1674
+ {
1675
+ "key": "patch",
1676
+ "description": "Patch a workspace name.",
1677
+ "commands": [
1678
+ {
1679
+ "key": "version",
1680
+ "description": "Print the program version."
1681
+ },
1682
+ {
1683
+ "key": "configure",
1684
+ "description": "Set up agent skills and MCP config for this app (binary via Homebrew).",
1685
+ "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew post_install runs:\n full-example configure --sync --yes\n\nInteractive setup (per target):\n full-example configure\n\nUpgrade:\n brew upgrade full-example\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n full-example configure --status\n\nUninstall:\n brew uninstall <tap>/full-example\n\nThe formula uninstall hook runs `configure --remove-all --yes` (skills, MCP, and app config).\n\nUse --dry to preview changes without writing files.\nUse --json for machine-readable output.",
1686
+ "options": [
1687
+ {
1688
+ "name": "sync",
1689
+ "description": "Refresh installed skills and MCP. Used by Homebrew post_install.",
1690
+ "kind": "presence"
1691
+ },
1692
+ {
1693
+ "name": "remove-all",
1694
+ "description": "Remove all detected agent artifacts (skills and MCP).",
1695
+ "kind": "presence"
1696
+ },
1697
+ {
1698
+ "name": "status",
1699
+ "description": "Print what is currently installed (read-only).",
1700
+ "kind": "presence"
1701
+ },
1702
+ {
1703
+ "name": "yes",
1704
+ "description": "Skip confirmation (required for --sync, --remove-all, --remove-config).",
1705
+ "kind": "presence",
1706
+ "shortName": "y"
1707
+ },
1708
+ {
1709
+ "name": "dry",
1710
+ "description": "Show what would change without writing files.",
1711
+ "kind": "presence"
1712
+ },
1713
+ {
1714
+ "name": "json",
1715
+ "description": "Print changed paths or status JSON on stdout.",
1716
+ "kind": "presence"
1717
+ }
1718
+ ],
1719
+ "fallbackCommand": "run",
1720
+ "fallbackMode": "missingOnly"
1721
+ },
1722
+ {
1723
+ "key": "docs",
1724
+ "description": "Print bundled CLI documentation.",
1725
+ "notes": "Topics print to stdout. Add --save to write files under ./docs/.",
1726
+ "options": [
1727
+ {
1728
+ "name": "save",
1729
+ "description": "Write documentation to ./docs/.",
1730
+ "kind": "presence"
1731
+ }
1732
+ ],
1733
+ "commands": [
1734
+ {
1735
+ "key": "readme",
1736
+ "description": "Print README (user guide).",
1737
+ "options": [
1738
+ {
1739
+ "name": "save",
1740
+ "description": "Write documentation to ./docs/.",
1741
+ "kind": "presence"
1742
+ }
1743
+ ]
1744
+ },
1745
+ {
1746
+ "key": "mcp",
1747
+ "description": "Print MCP server setup and tool guidance.",
1748
+ "options": [
1749
+ {
1750
+ "name": "save",
1751
+ "description": "Write documentation to ./docs/.",
1752
+ "kind": "presence"
1753
+ }
1754
+ ]
1755
+ },
1756
+ {
1757
+ "key": "http",
1758
+ "description": "Print HTTP API setup and tool guidance.",
1759
+ "options": [
1760
+ {
1761
+ "name": "save",
1762
+ "description": "Write documentation to ./docs/.",
1763
+ "kind": "presence"
1764
+ }
1765
+ ]
1766
+ },
1767
+ {
1768
+ "key": "openapi",
1769
+ "description": "Print the HTTP OpenAPI 3.1 document as JSON.",
1770
+ "options": [
1771
+ {
1772
+ "name": "save",
1773
+ "description": "Write documentation to ./docs/.",
1774
+ "kind": "presence"
1775
+ }
1776
+ ]
1777
+ },
1778
+ {
1779
+ "key": "cli-schema",
1780
+ "description": "Print the full CLI command tree as JSON.",
1781
+ "options": [
1782
+ {
1783
+ "name": "save",
1784
+ "description": "Write documentation to ./docs/.",
1785
+ "kind": "presence"
1786
+ }
1787
+ ]
1788
+ },
1789
+ {
1790
+ "key": "cli",
1791
+ "description": "Print the full command reference as markdown.",
1792
+ "options": [
1793
+ {
1794
+ "name": "save",
1795
+ "description": "Write documentation to ./docs/.",
1796
+ "kind": "presence"
1797
+ }
1798
+ ]
1799
+ },
1800
+ {
1801
+ "key": "skill",
1802
+ "description": "Print a reference agent SKILL; run `configure` to install an optimized copy.",
1803
+ "options": [
1804
+ {
1805
+ "name": "save",
1806
+ "description": "Write documentation to ./docs/.",
1807
+ "kind": "presence"
1808
+ }
1809
+ ]
1810
+ }
1811
+ ]
1812
+ },
1813
+ {
1814
+ "key": "mcp",
1815
+ "description": "MCP server and bundle tools.",
1816
+ "notes": "Stdio MCP server. Add to Cursor, Claude Code, or Claude Desktop:\n\n command: full-example\n args: mcp\n\nOr:\n\n full-example configure\n\nFull setup guide: full-example docs mcp",
1817
+ "options": [
1818
+ {
1819
+ "name": "obscure-errors",
1820
+ "description": "Hide unexpected errors from clients.",
1821
+ "kind": "presence"
1822
+ },
1823
+ {
1824
+ "name": "log-format",
1825
+ "description": "Log format: json (ECS) or text.",
1826
+ "kind": "enum",
1827
+ "choices": [
1828
+ "json",
1829
+ "text"
1830
+ ]
1831
+ },
1832
+ {
1833
+ "name": "log-file",
1834
+ "description": "Append logs to this file (relative → app config dir).",
1835
+ "kind": "string"
1836
+ },
1837
+ {
1838
+ "name": "dev",
1839
+ "description": "Print full stacks to stderr on errors.",
1840
+ "kind": "presence"
1841
+ }
1842
+ ],
1843
+ "fallbackCommand": "serve",
1844
+ "fallbackMode": "missingOnly",
1845
+ "commands": [
1846
+ {
1847
+ "key": "bundle",
1848
+ "description": "Pack dist MCP artifacts (`.mcpb`, Claude Code plugin zip) from dist/<key>."
1849
+ }
1850
+ ]
1851
+ },
1852
+ {
1853
+ "key": "http",
1854
+ "description": "HTTP API server for tools.",
1855
+ "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health, GET /health/ready, GET /openapi.json, GET /openapi-browser, /api/*\n\nConfigure app settings:\n\n full-example configure\n\nFull setup guide: full-example docs http",
1856
+ "options": [
1857
+ {
1858
+ "name": "host",
1859
+ "description": "Listen host.",
1860
+ "kind": "string"
1861
+ },
1862
+ {
1863
+ "name": "port",
1864
+ "description": "Listen port.",
1865
+ "kind": "number"
1866
+ },
1867
+ {
1868
+ "name": "trust-proxy",
1869
+ "description": "Honor X-Forwarded-For for client IP.",
1870
+ "kind": "presence"
1871
+ },
1872
+ {
1873
+ "name": "obscure-errors",
1874
+ "description": "Hide unexpected errors from clients.",
1875
+ "kind": "presence"
1876
+ },
1877
+ {
1878
+ "name": "log-format",
1879
+ "description": "Log format: json (ECS) or text.",
1880
+ "kind": "enum",
1881
+ "choices": [
1882
+ "json",
1883
+ "text"
1884
+ ]
1885
+ },
1886
+ {
1887
+ "name": "log-file",
1888
+ "description": "Append logs to this file (relative → app config dir).",
1889
+ "kind": "string"
1890
+ },
1891
+ {
1892
+ "name": "no-access-log",
1893
+ "description": "Disable HTTP access logs.",
1894
+ "kind": "presence"
1895
+ },
1896
+ {
1897
+ "name": "dev",
1898
+ "description": "Print full stacks to stderr on errors.",
1899
+ "kind": "presence"
1900
+ }
1901
+ ],
1902
+ "fallbackCommand": "serve",
1903
+ "fallbackMode": "missingOnly"
1904
+ }
1905
+ ]
1906
+ },
1907
+ {
1908
+ "key": "delete",
1909
+ "description": "Delete a workspace.",
1910
+ "commands": [
1911
+ {
1912
+ "key": "version",
1913
+ "description": "Print the program version."
1914
+ },
1915
+ {
1916
+ "key": "configure",
1917
+ "description": "Set up agent skills and MCP config for this app (binary via Homebrew).",
1918
+ "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew post_install runs:\n full-example configure --sync --yes\n\nInteractive setup (per target):\n full-example configure\n\nUpgrade:\n brew upgrade full-example\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n full-example configure --status\n\nUninstall:\n brew uninstall <tap>/full-example\n\nThe formula uninstall hook runs `configure --remove-all --yes` (skills, MCP, and app config).\n\nUse --dry to preview changes without writing files.\nUse --json for machine-readable output.",
1919
+ "options": [
1920
+ {
1921
+ "name": "sync",
1922
+ "description": "Refresh installed skills and MCP. Used by Homebrew post_install.",
1923
+ "kind": "presence"
1924
+ },
1925
+ {
1926
+ "name": "remove-all",
1927
+ "description": "Remove all detected agent artifacts (skills and MCP).",
1928
+ "kind": "presence"
1929
+ },
1930
+ {
1931
+ "name": "status",
1932
+ "description": "Print what is currently installed (read-only).",
1933
+ "kind": "presence"
1934
+ },
1935
+ {
1936
+ "name": "yes",
1937
+ "description": "Skip confirmation (required for --sync, --remove-all, --remove-config).",
1938
+ "kind": "presence",
1939
+ "shortName": "y"
1940
+ },
1941
+ {
1942
+ "name": "dry",
1943
+ "description": "Show what would change without writing files.",
1944
+ "kind": "presence"
1945
+ },
1946
+ {
1947
+ "name": "json",
1948
+ "description": "Print changed paths or status JSON on stdout.",
1949
+ "kind": "presence"
1950
+ }
1951
+ ],
1952
+ "fallbackCommand": "run",
1953
+ "fallbackMode": "missingOnly"
1954
+ },
1955
+ {
1956
+ "key": "docs",
1957
+ "description": "Print bundled CLI documentation.",
1958
+ "notes": "Topics print to stdout. Add --save to write files under ./docs/.",
1959
+ "options": [
1960
+ {
1961
+ "name": "save",
1962
+ "description": "Write documentation to ./docs/.",
1963
+ "kind": "presence"
1964
+ }
1965
+ ],
1966
+ "commands": [
1967
+ {
1968
+ "key": "readme",
1969
+ "description": "Print README (user guide).",
1970
+ "options": [
1971
+ {
1972
+ "name": "save",
1973
+ "description": "Write documentation to ./docs/.",
1974
+ "kind": "presence"
1975
+ }
1976
+ ]
1977
+ },
1978
+ {
1979
+ "key": "mcp",
1980
+ "description": "Print MCP server setup and tool guidance.",
1981
+ "options": [
1982
+ {
1983
+ "name": "save",
1984
+ "description": "Write documentation to ./docs/.",
1985
+ "kind": "presence"
1986
+ }
1987
+ ]
1988
+ },
1989
+ {
1990
+ "key": "http",
1991
+ "description": "Print HTTP API setup and tool guidance.",
1992
+ "options": [
1993
+ {
1994
+ "name": "save",
1995
+ "description": "Write documentation to ./docs/.",
1996
+ "kind": "presence"
1997
+ }
1998
+ ]
1999
+ },
2000
+ {
2001
+ "key": "openapi",
2002
+ "description": "Print the HTTP OpenAPI 3.1 document as JSON.",
2003
+ "options": [
2004
+ {
2005
+ "name": "save",
2006
+ "description": "Write documentation to ./docs/.",
2007
+ "kind": "presence"
2008
+ }
2009
+ ]
2010
+ },
2011
+ {
2012
+ "key": "cli-schema",
2013
+ "description": "Print the full CLI command tree as JSON.",
2014
+ "options": [
2015
+ {
2016
+ "name": "save",
2017
+ "description": "Write documentation to ./docs/.",
2018
+ "kind": "presence"
2019
+ }
2020
+ ]
2021
+ },
2022
+ {
2023
+ "key": "cli",
2024
+ "description": "Print the full command reference as markdown.",
2025
+ "options": [
2026
+ {
2027
+ "name": "save",
2028
+ "description": "Write documentation to ./docs/.",
2029
+ "kind": "presence"
2030
+ }
2031
+ ]
2032
+ },
2033
+ {
2034
+ "key": "skill",
2035
+ "description": "Print a reference agent SKILL; run `configure` to install an optimized copy.",
2036
+ "options": [
2037
+ {
2038
+ "name": "save",
2039
+ "description": "Write documentation to ./docs/.",
2040
+ "kind": "presence"
2041
+ }
2042
+ ]
2043
+ }
2044
+ ]
2045
+ },
2046
+ {
2047
+ "key": "mcp",
2048
+ "description": "MCP server and bundle tools.",
2049
+ "notes": "Stdio MCP server. Add to Cursor, Claude Code, or Claude Desktop:\n\n command: full-example\n args: mcp\n\nOr:\n\n full-example configure\n\nFull setup guide: full-example docs mcp",
2050
+ "options": [
2051
+ {
2052
+ "name": "obscure-errors",
2053
+ "description": "Hide unexpected errors from clients.",
2054
+ "kind": "presence"
2055
+ },
2056
+ {
2057
+ "name": "log-format",
2058
+ "description": "Log format: json (ECS) or text.",
2059
+ "kind": "enum",
2060
+ "choices": [
2061
+ "json",
2062
+ "text"
2063
+ ]
2064
+ },
2065
+ {
2066
+ "name": "log-file",
2067
+ "description": "Append logs to this file (relative → app config dir).",
2068
+ "kind": "string"
2069
+ },
2070
+ {
2071
+ "name": "dev",
2072
+ "description": "Print full stacks to stderr on errors.",
2073
+ "kind": "presence"
2074
+ }
2075
+ ],
2076
+ "fallbackCommand": "serve",
2077
+ "fallbackMode": "missingOnly",
2078
+ "commands": [
2079
+ {
2080
+ "key": "bundle",
2081
+ "description": "Pack dist MCP artifacts (`.mcpb`, Claude Code plugin zip) from dist/<key>."
2082
+ }
2083
+ ]
2084
+ },
2085
+ {
2086
+ "key": "http",
2087
+ "description": "HTTP API server for tools.",
2088
+ "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health, GET /health/ready, GET /openapi.json, GET /openapi-browser, /api/*\n\nConfigure app settings:\n\n full-example configure\n\nFull setup guide: full-example docs http",
2089
+ "options": [
2090
+ {
2091
+ "name": "host",
2092
+ "description": "Listen host.",
2093
+ "kind": "string"
2094
+ },
2095
+ {
2096
+ "name": "port",
2097
+ "description": "Listen port.",
2098
+ "kind": "number"
2099
+ },
2100
+ {
2101
+ "name": "trust-proxy",
2102
+ "description": "Honor X-Forwarded-For for client IP.",
2103
+ "kind": "presence"
2104
+ },
2105
+ {
2106
+ "name": "obscure-errors",
2107
+ "description": "Hide unexpected errors from clients.",
2108
+ "kind": "presence"
2109
+ },
2110
+ {
2111
+ "name": "log-format",
2112
+ "description": "Log format: json (ECS) or text.",
2113
+ "kind": "enum",
2114
+ "choices": [
2115
+ "json",
2116
+ "text"
2117
+ ]
2118
+ },
2119
+ {
2120
+ "name": "log-file",
2121
+ "description": "Append logs to this file (relative → app config dir).",
2122
+ "kind": "string"
2123
+ },
2124
+ {
2125
+ "name": "no-access-log",
2126
+ "description": "Disable HTTP access logs.",
2127
+ "kind": "presence"
2128
+ },
2129
+ {
2130
+ "name": "dev",
2131
+ "description": "Print full stacks to stderr on errors.",
2132
+ "kind": "presence"
2133
+ }
2134
+ ],
2135
+ "fallbackCommand": "serve",
2136
+ "fallbackMode": "missingOnly"
2137
+ }
2138
+ ]
2139
+ }
2140
+ ]
2141
+ }
2142
+ ]
451
2143
  }
452
2144
  ]
453
2145
  }