argsbarg 6.1.9 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/README.md +187 -93
  3. package/docs/README.md +3 -2
  4. package/docs/ai-skills.md +36 -23
  5. package/docs/cli-program.md +12 -11
  6. package/docs/config-schema.md +3 -3
  7. package/docs/configure.md +12 -16
  8. package/docs/decisions.md +74 -37
  9. package/docs/developing.md +6 -6
  10. package/docs/distribution-homebrew.md +117 -104
  11. package/docs/mcp.md +21 -57
  12. package/docs/output-schema.md +2 -2
  13. package/examples/formats.ts +5 -6
  14. package/examples/full-example/README.md +7 -69
  15. package/examples/full-example/docs/cli-schema.json +1 -1659
  16. package/examples/full-example/docs/cli.md +2 -1538
  17. package/examples/full-example/docs/http.md +3 -8
  18. package/examples/full-example/docs/mcp.md +23 -59
  19. package/examples/full-example/docs/openapi.json +2 -782
  20. package/examples/full-example/docs/skill.md +18 -14
  21. package/examples/full-example/justfile +22 -14
  22. package/examples/full-example/scripts/create-identity.ts +2 -1
  23. package/examples/full-example/src/commands/status/command.test.ts +2 -2
  24. package/examples/full-example/src/commands/status/command.ts +7 -6
  25. package/examples/full-example/src/program.ts +4 -10
  26. package/examples/full-example-json/Formula/.gitkeep +0 -0
  27. package/examples/full-example-json/Formula/full-example-json.rb +35 -0
  28. package/examples/full-example-json/README.md +27 -0
  29. package/examples/full-example-json/biome.json +22 -0
  30. package/examples/full-example-json/bun.lock +48 -0
  31. package/examples/full-example-json/docs/README.md +27 -0
  32. package/examples/full-example-json/docs/cli-schema.json +2145 -0
  33. package/examples/full-example-json/docs/cli.md +1990 -0
  34. package/examples/full-example-json/docs/http.md +92 -0
  35. package/examples/full-example-json/docs/mcp.md +116 -0
  36. package/examples/full-example-json/docs/openapi.json +1246 -0
  37. package/examples/full-example-json/docs/skill.md +57 -0
  38. package/examples/full-example-json/justfile +171 -0
  39. package/examples/full-example-json/package.json +22 -0
  40. package/examples/full-example-json/scripts/create-identity.ts +12 -0
  41. package/examples/full-example-json/scripts/dev-formula.ts +97 -0
  42. package/examples/full-example-json/scripts/formula-shared.test.ts +68 -0
  43. package/examples/full-example-json/scripts/formula-shared.ts +170 -0
  44. package/examples/full-example-json/scripts/print-identity.ts +28 -0
  45. package/examples/full-example-json/scripts/release.ts +212 -0
  46. package/examples/full-example-json/src/commands/echo/command.ts +26 -0
  47. package/examples/full-example-json/src/commands/status/command.test.ts +10 -0
  48. package/examples/full-example-json/src/commands/status/command.ts +28 -0
  49. package/examples/full-example-json/src/index.ts +10 -0
  50. package/examples/full-example-json/src/program.ts +33 -0
  51. package/examples/full-example-json/src/types/md.d.ts +4 -0
  52. package/examples/full-example-json/tsconfig.json +17 -0
  53. package/examples/minimal.ts +17 -17
  54. package/examples/nested.ts +10 -10
  55. package/examples/option-required.ts +13 -13
  56. package/examples/servers.ts +10 -10
  57. package/index.d.ts +17 -43
  58. package/package.json +1 -1
  59. package/src/cli-tool/create.test.ts +44 -68
  60. package/src/cli-tool/create.ts +81 -17
  61. package/src/cli-tool/full-example-capabilities.test.ts +33 -18
  62. package/src/cli-tool/post-create.ts +31 -17
  63. package/src/cli-tool/program.ts +16 -7
  64. package/src/cli-tool/prompt.ts +27 -0
  65. package/src/cli-tool/run-create.ts +19 -7
  66. package/src/cli-tool/schemagen/schemagen.test.ts +3 -3
  67. package/src/configure/artifacts/install-validate.test.ts +20 -33
  68. package/src/configure/artifacts/paths.ts +9 -53
  69. package/src/configure/artifacts/status.test.ts +13 -16
  70. package/src/configure/artifacts/status.ts +5 -22
  71. package/src/configure/artifacts/target-base.ts +6 -15
  72. package/src/configure/artifacts/target-effective.ts +16 -54
  73. package/src/configure/artifacts/target-mcp-json.ts +2 -5
  74. package/src/configure/artifacts/target-registry.ts +0 -7
  75. package/src/configure/artifacts/target-scope.ts +7 -17
  76. package/src/configure/artifacts/target-skill.ts +6 -15
  77. package/src/configure/artifacts/target-types.ts +6 -54
  78. package/src/configure/artifacts/targets/agents-mcp.ts +11 -0
  79. package/src/configure/artifacts/targets/configure.ts +1 -5
  80. package/src/configure/artifacts/targets/index.ts +4 -44
  81. package/src/configure/artifacts/targets/skill.ts +12 -0
  82. package/src/configure/artifacts/targets.test.ts +21 -59
  83. package/src/configure/configure.test.ts +35 -46
  84. package/src/configure/index.ts +19 -19
  85. package/src/configure/prompt.ts +2 -12
  86. package/src/core/parse.test.ts +21 -32
  87. package/src/core/types.ts +18 -44
  88. package/src/core/validate.ts +28 -45
  89. package/src/docs/docs.test.ts +4 -4
  90. package/src/docs/http-guide.ts +1 -1
  91. package/src/docs/mcp-guide.ts +41 -71
  92. package/src/docs/resolve.ts +1 -1
  93. package/src/docs/save.ts +1 -1
  94. package/src/exports/cli.ts +1 -1
  95. package/src/index.ts +1 -1
  96. package/src/skill/generate.ts +26 -45
  97. package/src/skill/install.ts +18 -38
  98. package/src/skill/naming.ts +3 -27
  99. package/src/test/integration/config.test.ts +3 -3
  100. package/src/test/integration/mcp.test.ts +4 -4
  101. package/{examples/mcp-test.ts → src/test/mcp-integration-fixture.ts} +20 -22
  102. package/src/configure/artifacts/target-mcp-cli.ts +0 -127
  103. package/src/configure/artifacts/targets/chatgpt-mcp.ts +0 -12
  104. package/src/configure/artifacts/targets/claude-code-mcp.ts +0 -15
  105. package/src/configure/artifacts/targets/claude-desktop-mcp.ts +0 -12
  106. package/src/configure/artifacts/targets/claude-skill.ts +0 -16
  107. package/src/configure/artifacts/targets/codex-mcp.ts +0 -25
  108. package/src/configure/artifacts/targets/codex-skill.ts +0 -14
  109. package/src/configure/artifacts/targets/cursor-mcp.ts +0 -15
  110. package/src/configure/artifacts/targets/cursor-skill.ts +0 -16
  111. package/src/configure/artifacts/targets/openclaw-mcp.ts +0 -25
  112. package/src/configure/artifacts/targets/openclaw-skill.ts +0 -17
  113. package/src/configure/artifacts/targets/opencode-mcp.ts +0 -96
  114. package/src/configure/artifacts/targets/opencode-skill.ts +0 -15
  115. /package/examples/{full-example → full-example-json}/src/commands/render-json/__generated__/RenderJsonInputSchema.json +0 -0
  116. /package/examples/{full-example → full-example-json}/src/commands/render-json/__generated__/index.ts +0 -0
  117. /package/examples/{full-example → full-example-json}/src/commands/render-json/command.test.ts +0 -0
  118. /package/examples/{full-example → full-example-json}/src/commands/render-json/command.ts +0 -0
  119. /package/examples/{full-example → full-example-json}/src/commands/render-json/types.ts +0 -0
  120. /package/examples/{full-example → full-example-json}/src/commands/status/__generated__/StatusJsonOutputSchema.json +0 -0
  121. /package/examples/{full-example → full-example-json}/src/commands/status/__generated__/index.ts +0 -0
  122. /package/examples/{full-example → full-example-json}/src/commands/status/types.ts +0 -0
  123. /package/examples/{full-example → full-example-json}/src/commands/workspaces/__generated__/WorkspaceNameInputSchema.json +0 -0
  124. /package/examples/{full-example → full-example-json}/src/commands/workspaces/__generated__/index.ts +0 -0
  125. /package/examples/{full-example → full-example-json}/src/commands/workspaces/command.test.ts +0 -0
  126. /package/examples/{full-example → full-example-json}/src/commands/workspaces/command.ts +0 -0
  127. /package/examples/{full-example → full-example-json}/src/commands/workspaces/types.ts +0 -0
  128. /package/examples/{full-example → full-example-json}/src/db/index.test.ts +0 -0
  129. /package/examples/{full-example → full-example-json}/src/db/index.ts +0 -0
  130. /package/examples/{full-example → full-example-json}/src/db/migrate.test.ts +0 -0
  131. /package/examples/{full-example → full-example-json}/src/db/migrate.ts +0 -0
  132. /package/examples/{full-example → full-example-json}/src/db/migrations/001_workspaces.sql +0 -0
  133. /package/examples/{full-example → full-example-json}/src/db/tables/workspaces.ts +0 -0
  134. /package/examples/{full-example → full-example-json}/src/types/argsbarg.d.ts +0 -0
@@ -1,3 +1,5 @@
1
+ <!-- Generated by full-example docs http --save; do not edit. -->
2
+
1
3
  # HTTP API (full-example)
2
4
 
3
5
  full-example exposes user commands over HTTP REST routes derived from the CLI tree.
@@ -10,7 +12,7 @@ full-example http
10
12
 
11
13
  Listens on **http://127.0.0.1:3000** by default (`httpServer.host` / `httpServer.port`).
12
14
 
13
- Bind is localhost-only in v0 — use a reverse proxy for remote access.
15
+ Bind is localhost-only by default — use a reverse proxy for remote access.
14
16
 
15
17
  ## Endpoints
16
18
 
@@ -58,14 +60,7 @@ See the argsbarg [logging guide](https://github.com/bdombro/bun-argsbarg/blob/ma
58
60
  ## REST routes
59
61
 
60
62
  - `POST /echo` (CLI: `full-example echo`) — Echo a message (MCP-friendly leaf).
61
- - `POST /render-json` (CLI: `full-example render-json`) — Echo a JSON message (schema-first JSON leaf demo).
62
63
  - `POST /status` (CLI: `full-example status`) — Show app version. (flags: --json)
63
- - `GET /workspaces` (CLI: `full-example workspaces get`) — List workspaces.
64
- - `POST /workspaces` (CLI: `full-example workspaces post`) — Create a workspace.
65
- - `GET /workspaces/{id}` (CLI: `full-example workspaces :id get`) — Get one workspace.
66
- - `PUT /workspaces/{id}` (CLI: `full-example workspaces :id put`) — Replace a workspace.
67
- - `PATCH /workspaces/{id}` (CLI: `full-example workspaces :id patch`) — Patch a workspace name.
68
- - `DELETE /workspaces/{id}` (CLI: `full-example workspaces :id delete`) — Delete a workspace.
69
64
 
70
65
  ## Request bodies
71
66
 
@@ -6,83 +6,54 @@ full-example exposes an MCP server with features similar to the CLI.
6
6
 
7
7
  ## Installation
8
8
 
9
- ### `configure`
9
+ ### `.agents` auto-install
10
10
 
11
- Install the CLI first so `full-example` is on your PATH (e.g. `brew install full-example`). Host configs reference the app by name.
11
+ When `mcpServer.enabled` is set, `configure --sync` merges this server into `~/.agents/mcp.json` per the [.agents protocol](https://dotagentsprotocol.com/).
12
+
13
+ Install the CLI first so `full-example` is on your PATH (e.g. `brew install full-example`).
12
14
 
13
15
  ```bash
14
16
  full-example configure --sync --yes
15
17
  ```
16
18
 
17
- Merges the server entry below into host config when each host is present:
18
-
19
- | Host | Config file |
20
- | --- | --- |
21
- | Cursor | `~/.cursor/mcp.json` (when `~/.cursor` exists) |
22
- | Claude Code | `~/.claude.json` |
23
- | Claude Desktop | `claude_desktop_config.json` (when Claude Desktop app data exists) |
24
- | OpenCode | `~/.config/opencode/*` (when `~/.config/opencode` exists) |
25
- | OpenAI Codex | `~/.codex/config.toml` via `codex mcp add` (when `codex` is on PATH) |
26
- | ChatGPT desktop | `chatgpt_mcp_config.json` (when ChatGPT app data exists) |
27
-
28
- Claude Desktop paths by platform:
29
-
30
- - **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
31
- - **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
32
- - **Linux:** `~/.config/Claude/claude_desktop_config.json`
33
-
34
- ChatGPT desktop JSON (when auto-installed):
19
+ Writes or updates `~/.agents/mcp.json` with a `mcpServers` entry for this app.
35
20
 
36
- - **macOS:** `~/Library/Application Support/ChatGPT/chatgpt_mcp_config.json`
37
- - **Windows:** `%APPDATA%\OpenAI\ChatGPT\chatgpt_mcp_config.json`
21
+ ### Manual client setup
38
22
 
39
- Restart Claude Desktop and ChatGPT desktop after changing their config files.
40
-
41
- ### Manual fallbacks
42
-
43
- **OpenCode** (no `~/.config/opencode` yet):
23
+ Many clients do not read `~/.agents/mcp.json` yet. Copy the `mcpServers` entry from that file, or paste:
44
24
 
45
25
  ```json
46
26
  {
47
- "$schema": "https://opencode.ai/config.json",
48
- "mcp": {
27
+ "mcpServers": {
49
28
  "full_example": {
50
- "type": "local",
51
- "command": [
52
- "full-example",
29
+ "command": "full-example",
30
+ "args": [
53
31
  "mcp"
54
- ],
55
- "enabled": true
32
+ ]
56
33
  }
57
34
  }
58
35
  }
59
36
  ```
60
37
 
61
- **Codex** (`codex` not on PATH):
62
-
63
- ```toml
64
- [mcp_servers.full_example]
65
- command = "full-example"
66
- args = ["mcp"]
67
- ```
68
-
69
- Or after installing Codex CLI: `codex mcp add full_example -- full-example mcp`.
70
-
71
- ### ChatGPT web (Connectors)
38
+ | Client | Config file |
39
+ | --- | --- |
40
+ | **Cursor** | `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (project) |
41
+ | **Claude Code** | `~/.claude.json` under `mcpServers`, or project `.mcp.json` |
42
+ | **Claude Desktop** | See platform paths below |
72
43
 
73
- OpenAI's documented path for **ChatGPT web/desktop** is **Settings → Connectors → Developer mode** with a **remote HTTPS MCP URL** — not local stdio. ChatGPT does not spawn `full-example mcp` directly.
44
+ Restart Cursor or reload MCP after editing. Restart Claude Desktop after config changes.
74
45
 
75
- For local stdio, bridge and tunnel, then register the HTTPS URL in Connectors:
46
+ Claude Desktop config paths:
76
47
 
77
- 1. Expose `full-example mcp` over HTTP (e.g. `mcp-remote`).
78
- 2. Tunnel if needed (ngrok, Cloudflare Tunnel).
79
- 3. Add the public URL as a custom connector.
48
+ - **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
49
+ - **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
50
+ - **Linux:** `~/.config/Claude/claude_desktop_config.json`
80
51
 
81
- Desktop `chatgpt_mcp_config.json` is merged when the ChatGPT app is installed; support varies by build. Use Connectors when local JSON is absent or tools do not appear.
52
+ On this machine (macOS/Linux): `/Users/briandombrowski/Library/Application Support/Claude/claude_desktop_config.json`
82
53
 
83
54
  ### Manual `mcpServers` entry
84
55
 
85
- For Cursor, Claude, and ChatGPT desktop JSON configs, add under `mcpServers`:
56
+ Same shape as in `~/.agents/mcp.json`:
86
57
 
87
58
  ```json
88
59
  {
@@ -121,14 +92,7 @@ full-example mcp
121
92
  ## Exposed tools
122
93
 
123
94
  - `full-example echo` — echo — Echo a message (MCP-friendly leaf).
124
- - `full-example render-json` — render-json — Echo a JSON message (schema-first JSON leaf demo).
125
95
  - `full-example status` — status — Show app version. (flags: --json)
126
- - `full-example workspaces get` — workspaces get — List workspaces.
127
- - `full-example workspaces post` — workspaces post — Create a workspace.
128
- - `full-example workspaces :id get` — workspaces :id get — Get one workspace.
129
- - `full-example workspaces :id put` — workspaces :id put — Replace a workspace.
130
- - `full-example workspaces :id patch` — workspaces :id patch — Patch a workspace name.
131
- - `full-example workspaces :id delete` — workspaces :id delete — Delete a workspace.
132
96
 
133
97
  ## Tool arguments
134
98