argsbarg 6.1.10 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -1
- package/README.md +43 -41
- package/docs/README.md +3 -2
- package/docs/ai-skills.md +36 -23
- package/docs/cli-program.md +12 -11
- package/docs/config-schema.md +3 -3
- package/docs/configure.md +12 -16
- package/docs/developing.md +6 -6
- package/docs/mcp.md +21 -57
- package/docs/output-schema.md +2 -2
- package/examples/formats.ts +5 -6
- package/examples/full-example/README.md +7 -69
- package/examples/full-example/docs/cli-schema.json +1 -1659
- package/examples/full-example/docs/cli.md +2 -1538
- package/examples/full-example/docs/http.md +0 -7
- package/examples/full-example/docs/mcp.md +23 -59
- package/examples/full-example/docs/openapi.json +2 -782
- package/examples/full-example/docs/skill.md +18 -14
- package/examples/full-example/justfile +5 -17
- package/examples/full-example/scripts/create-identity.ts +2 -1
- package/examples/full-example/src/commands/status/command.test.ts +2 -2
- package/examples/full-example/src/commands/status/command.ts +7 -6
- package/examples/full-example/src/program.ts +4 -10
- package/examples/full-example-json/Formula/.gitkeep +0 -0
- package/examples/full-example-json/Formula/full-example-json.rb +35 -0
- package/examples/full-example-json/README.md +27 -0
- package/examples/full-example-json/biome.json +22 -0
- package/examples/full-example-json/bun.lock +48 -0
- package/examples/full-example-json/docs/README.md +27 -0
- package/examples/full-example-json/docs/cli-schema.json +2145 -0
- package/examples/full-example-json/docs/cli.md +1990 -0
- package/examples/full-example-json/docs/http.md +92 -0
- package/examples/full-example-json/docs/mcp.md +116 -0
- package/examples/full-example-json/docs/openapi.json +1246 -0
- package/examples/full-example-json/docs/skill.md +57 -0
- package/examples/full-example-json/justfile +171 -0
- package/examples/full-example-json/package.json +22 -0
- package/examples/full-example-json/scripts/create-identity.ts +12 -0
- package/examples/full-example-json/scripts/dev-formula.ts +97 -0
- package/examples/full-example-json/scripts/formula-shared.test.ts +68 -0
- package/examples/full-example-json/scripts/formula-shared.ts +170 -0
- package/examples/full-example-json/scripts/print-identity.ts +28 -0
- package/examples/full-example-json/scripts/release.ts +212 -0
- package/examples/full-example-json/src/commands/echo/command.ts +26 -0
- package/examples/full-example-json/src/commands/status/command.test.ts +10 -0
- package/examples/full-example-json/src/commands/status/command.ts +28 -0
- package/examples/full-example-json/src/index.ts +10 -0
- package/examples/full-example-json/src/program.ts +33 -0
- package/examples/full-example-json/src/types/md.d.ts +4 -0
- package/examples/full-example-json/tsconfig.json +17 -0
- package/examples/minimal.ts +17 -17
- package/examples/nested.ts +10 -10
- package/examples/option-required.ts +13 -13
- package/examples/servers.ts +10 -10
- package/index.d.ts +17 -43
- package/package.json +1 -1
- package/src/cli-tool/create.test.ts +44 -68
- package/src/cli-tool/create.ts +81 -17
- package/src/cli-tool/full-example-capabilities.test.ts +33 -18
- package/src/cli-tool/post-create.ts +31 -17
- package/src/cli-tool/program.ts +16 -7
- package/src/cli-tool/prompt.ts +27 -0
- package/src/cli-tool/run-create.ts +19 -7
- package/src/cli-tool/schemagen/schemagen.test.ts +3 -3
- package/src/configure/artifacts/install-validate.test.ts +20 -33
- package/src/configure/artifacts/paths.ts +9 -53
- package/src/configure/artifacts/status.test.ts +13 -16
- package/src/configure/artifacts/status.ts +5 -22
- package/src/configure/artifacts/target-base.ts +6 -15
- package/src/configure/artifacts/target-effective.ts +16 -54
- package/src/configure/artifacts/target-mcp-json.ts +2 -5
- package/src/configure/artifacts/target-registry.ts +0 -7
- package/src/configure/artifacts/target-scope.ts +7 -17
- package/src/configure/artifacts/target-skill.ts +6 -15
- package/src/configure/artifacts/target-types.ts +6 -54
- package/src/configure/artifacts/targets/agents-mcp.ts +11 -0
- package/src/configure/artifacts/targets/configure.ts +1 -5
- package/src/configure/artifacts/targets/index.ts +4 -44
- package/src/configure/artifacts/targets/skill.ts +12 -0
- package/src/configure/artifacts/targets.test.ts +21 -59
- package/src/configure/configure.test.ts +35 -46
- package/src/configure/index.ts +19 -19
- package/src/configure/prompt.ts +2 -12
- package/src/core/parse.test.ts +21 -32
- package/src/core/types.ts +18 -44
- package/src/core/validate.ts +28 -45
- package/src/docs/docs.test.ts +4 -4
- package/src/docs/mcp-guide.ts +41 -71
- package/src/docs/resolve.ts +1 -1
- package/src/exports/cli.ts +1 -1
- package/src/index.ts +1 -1
- package/src/skill/generate.ts +26 -45
- package/src/skill/install.ts +18 -38
- package/src/skill/naming.ts +3 -27
- package/src/test/integration/config.test.ts +3 -3
- package/src/test/integration/mcp.test.ts +4 -4
- package/{examples/mcp-test.ts → src/test/mcp-integration-fixture.ts} +20 -22
- package/src/configure/artifacts/target-mcp-cli.ts +0 -127
- package/src/configure/artifacts/targets/chatgpt-mcp.ts +0 -12
- package/src/configure/artifacts/targets/claude-code-mcp.ts +0 -15
- package/src/configure/artifacts/targets/claude-desktop-mcp.ts +0 -12
- package/src/configure/artifacts/targets/claude-skill.ts +0 -16
- package/src/configure/artifacts/targets/codex-mcp.ts +0 -25
- package/src/configure/artifacts/targets/codex-skill.ts +0 -14
- package/src/configure/artifacts/targets/cursor-mcp.ts +0 -15
- package/src/configure/artifacts/targets/cursor-skill.ts +0 -16
- package/src/configure/artifacts/targets/openclaw-mcp.ts +0 -25
- package/src/configure/artifacts/targets/openclaw-skill.ts +0 -17
- package/src/configure/artifacts/targets/opencode-mcp.ts +0 -96
- package/src/configure/artifacts/targets/opencode-skill.ts +0 -15
- /package/examples/{full-example → full-example-json}/src/commands/render-json/__generated__/RenderJsonInputSchema.json +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/render-json/__generated__/index.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/render-json/command.test.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/render-json/command.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/render-json/types.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/status/__generated__/StatusJsonOutputSchema.json +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/status/__generated__/index.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/status/types.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/workspaces/__generated__/WorkspaceNameInputSchema.json +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/workspaces/__generated__/index.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/workspaces/command.test.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/workspaces/command.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/workspaces/types.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/db/index.test.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/db/index.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/db/migrate.test.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/db/migrate.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/db/migrations/001_workspaces.sql +0 -0
- /package/examples/{full-example → full-example-json}/src/db/tables/workspaces.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/types/argsbarg.d.ts +0 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
<!-- Generated by full-example-json docs http --save; do not edit. -->
|
|
2
|
+
|
|
3
|
+
# HTTP API (full-example-json)
|
|
4
|
+
|
|
5
|
+
full-example-json exposes user commands over HTTP REST routes derived from the CLI tree.
|
|
6
|
+
|
|
7
|
+
## Running
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
full-example-json http
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Listens on **http://127.0.0.1:3000** by default (`httpServer.host` / `httpServer.port`).
|
|
14
|
+
|
|
15
|
+
Bind is localhost-only by default — use a reverse proxy for remote access.
|
|
16
|
+
|
|
17
|
+
## Endpoints
|
|
18
|
+
|
|
19
|
+
| Method | Path | Purpose |
|
|
20
|
+
| --- | --- | --- |
|
|
21
|
+
| `GET` | `/health/liveness` | Liveness — server is online and accepting requests |
|
|
22
|
+
| `GET` | `/health/readiness` | Readiness — online plus config and `program.readiness` checks passed |
|
|
23
|
+
| `GET` | `/openapi.json` | OpenAPI 3.1 REST paths |
|
|
24
|
+
| `GET` | `/swagger` | Interactive Swagger UI API reference |
|
|
25
|
+
| * | `/*` | Invoke user commands (method per route) |
|
|
26
|
+
| `OPTIONS` | `*` | CORS preflight |
|
|
27
|
+
|
|
28
|
+
Discover paths from `openapi.json` (`/*`). Query binds options; POST/PUT/PATCH body binds options and `inputSchema` fields.
|
|
29
|
+
|
|
30
|
+
## Examples
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
curl -s http://127.0.0.1:3000/health/liveness
|
|
34
|
+
curl -s http://127.0.0.1:3000/health/readiness
|
|
35
|
+
curl -s http://127.0.0.1:3000/openapi.json
|
|
36
|
+
curl -s http://127.0.0.1:3000/workspaces
|
|
37
|
+
curl -s -X POST http://127.0.0.1:3000/workspaces \
|
|
38
|
+
-H "content-type: application/json" \
|
|
39
|
+
-d '{"name":"qa2"}'
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Responses
|
|
43
|
+
|
|
44
|
+
Success: status from handler → `http.successStatus` → method default (GET 200, POST 201, DELETE 204).
|
|
45
|
+
|
|
46
|
+
Handlers must use `ctx.respond()` or return a value for API/MCP tool calls.
|
|
47
|
+
|
|
48
|
+
Errors use `{ "error": "..." }` with `400`, `404`, `503`, or `500`.
|
|
49
|
+
|
|
50
|
+
## Logging
|
|
51
|
+
|
|
52
|
+
Server logs go to **stderr** (one JSON object per line by default).
|
|
53
|
+
|
|
54
|
+
- Configure with `program.log` on the program root
|
|
55
|
+
- **`enrich`** — add custom JSON fields on top of the default line
|
|
56
|
+
- **`serialize`** — replace the formatter and emit your own line shape
|
|
57
|
+
|
|
58
|
+
See the argsbarg [logging guide](https://github.com/bdombro/bun-argsbarg/blob/main/docs/logging.md) for examples and the full `LogEnrichContext` shape.
|
|
59
|
+
|
|
60
|
+
## REST routes
|
|
61
|
+
|
|
62
|
+
- `POST /echo` (CLI: `full-example-json echo`) — Echo a message (MCP-friendly leaf).
|
|
63
|
+
- `POST /render-json` (CLI: `full-example-json render-json`) — Echo a JSON message (schema-first JSON leaf demo).
|
|
64
|
+
- `POST /status` (CLI: `full-example-json status`) — Show app version. (flags: --json)
|
|
65
|
+
- `GET /workspaces` (CLI: `full-example-json workspaces get`) — List workspaces.
|
|
66
|
+
- `POST /workspaces` (CLI: `full-example-json workspaces post`) — Create a workspace.
|
|
67
|
+
- `GET /workspaces/{id}` (CLI: `full-example-json workspaces :id get`) — Get one workspace.
|
|
68
|
+
- `PUT /workspaces/{id}` (CLI: `full-example-json workspaces :id put`) — Replace a workspace.
|
|
69
|
+
- `PATCH /workspaces/{id}` (CLI: `full-example-json workspaces :id patch`) — Patch a workspace name.
|
|
70
|
+
- `DELETE /workspaces/{id}` (CLI: `full-example-json workspaces :id delete`) — Delete a workspace.
|
|
71
|
+
|
|
72
|
+
## Request bodies
|
|
73
|
+
|
|
74
|
+
POST/PUT/PATCH bodies are a flat JSON object keyed by long option and positional names (hyphenated option names are valid keys).
|
|
75
|
+
|
|
76
|
+
For HTTP clients, use **`GET /openapi.json`** (or **`GET /swagger`**) for per-route request shapes.
|
|
77
|
+
|
|
78
|
+
Varargs positionals accept a JSON array of strings (not a comma-separated string).
|
|
79
|
+
Options with `format: comma-list` accept a comma-separated string or JSON array.
|
|
80
|
+
Options with a schema `default` are applied when omitted.
|
|
81
|
+
|
|
82
|
+
Shell invocation reference: `full-example-json docs cli`. Full CLI tree JSON: `full-example-json docs cli-schema`.
|
|
83
|
+
|
|
84
|
+
## OpenAPI
|
|
85
|
+
|
|
86
|
+
The HTTP API is described in OpenAPI 3.1.
|
|
87
|
+
|
|
88
|
+
- **Browse** — [http://127.0.0.1:3000/swagger](http://127.0.0.1:3000/swagger) (Swagger UI; loads `/openapi.json`)
|
|
89
|
+
- **Fetch** — `curl -s http://127.0.0.1:3000/openapi.json`
|
|
90
|
+
- **Save offline** — `full-example-json docs openapi --save` → `./docs/openapi.json` (or `just docgen` in app repos)
|
|
91
|
+
|
|
92
|
+
Use the spec to discover REST paths and request/response shapes before calling `/*`.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<!-- Generated by full-example-json docs mcp --save; do not edit. -->
|
|
2
|
+
|
|
3
|
+
# MCP server (full-example-json)
|
|
4
|
+
|
|
5
|
+
full-example-json exposes an MCP server with features similar to the CLI.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
### `.agents` auto-install
|
|
10
|
+
|
|
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-json` is on your PATH (e.g. `brew install full-example-json`).
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
full-example-json configure --sync --yes
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Writes or updates `~/.agents/mcp.json` with a `mcpServers` entry for this app.
|
|
20
|
+
|
|
21
|
+
### Manual client setup
|
|
22
|
+
|
|
23
|
+
Many clients do not read `~/.agents/mcp.json` yet. Copy the `mcpServers` entry from that file, or paste:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"mcpServers": {
|
|
28
|
+
"full_example_json": {
|
|
29
|
+
"command": "full-example-json",
|
|
30
|
+
"args": [
|
|
31
|
+
"mcp"
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
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 |
|
|
43
|
+
|
|
44
|
+
Restart Cursor or reload MCP after editing. Restart Claude Desktop after config changes.
|
|
45
|
+
|
|
46
|
+
Claude Desktop config paths:
|
|
47
|
+
|
|
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`
|
|
51
|
+
|
|
52
|
+
On this machine (macOS/Linux): `/Users/briandombrowski/Library/Application Support/Claude/claude_desktop_config.json`
|
|
53
|
+
|
|
54
|
+
### Manual `mcpServers` entry
|
|
55
|
+
|
|
56
|
+
Same shape as in `~/.agents/mcp.json`:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"mcpServers": {
|
|
61
|
+
"full_example_json": {
|
|
62
|
+
"command": "full-example-json",
|
|
63
|
+
"args": [
|
|
64
|
+
"mcp"
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Running directly
|
|
72
|
+
|
|
73
|
+
Start the stdio MCP server without editing host config:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
full-example-json mcp
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Environment
|
|
80
|
+
|
|
81
|
+
- **`shellEnv`** — on by default; captures login-shell environment at MCP startup (PATH, toolchain shims, exports). Opt out with `shellEnv: false`.
|
|
82
|
+
|
|
83
|
+
## What agents get
|
|
84
|
+
|
|
85
|
+
| Mechanism | Purpose |
|
|
86
|
+
|-----------|---------|
|
|
87
|
+
| `tools/list` | Callable tools for exposed leaf commands |
|
|
88
|
+
| `tools/call` | Runs handlers headlessly; JSON stdout becomes `structuredContent` when valid |
|
|
89
|
+
| Schema resource | `full_example_json://schema` — same JSON as `full-example-json docs cli-schema` |
|
|
90
|
+
| Docs topic `readme` | `full_example_json://docs/readme` — same markdown as `full-example-json docs readme` |
|
|
91
|
+
|
|
92
|
+
## Exposed tools
|
|
93
|
+
|
|
94
|
+
- `full-example-json echo` — echo — Echo a message (MCP-friendly leaf).
|
|
95
|
+
- `full-example-json render-json` — render-json — Echo a JSON message (schema-first JSON leaf demo).
|
|
96
|
+
- `full-example-json status` — status — Show app version. (flags: --json)
|
|
97
|
+
- `full-example-json workspaces get` — workspaces get — List workspaces.
|
|
98
|
+
- `full-example-json workspaces post` — workspaces post — Create a workspace.
|
|
99
|
+
- `full-example-json workspaces :id get` — workspaces :id get — Get one workspace.
|
|
100
|
+
- `full-example-json workspaces :id put` — workspaces :id put — Replace a workspace.
|
|
101
|
+
- `full-example-json workspaces :id patch` — workspaces :id patch — Patch a workspace name.
|
|
102
|
+
- `full-example-json workspaces :id delete` — workspaces :id delete — Delete a workspace.
|
|
103
|
+
|
|
104
|
+
## Tool arguments
|
|
105
|
+
|
|
106
|
+
Arguments are a flat JSON object keyed by long option and positional names (hyphenated option names are valid keys).
|
|
107
|
+
See `full-example-json docs cli-schema` or the schema resource for per-tool shapes.
|
|
108
|
+
|
|
109
|
+
Varargs positionals accept a JSON array of strings (not a comma-separated string).
|
|
110
|
+
Options with `format: comma-list` accept a comma-separated string or JSON array.
|
|
111
|
+
Options with a schema `default` are applied when omitted.
|
|
112
|
+
|
|
113
|
+
## Protocol
|
|
114
|
+
|
|
115
|
+
Stdio NDJSON JSON-RPC. Help and `docs cli-schema` are not available through tool calls.
|
|
116
|
+
Run `full-example-json docs` for bundled user documentation.
|