argsbarg 6.1.2 → 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.
- package/CHANGELOG.md +65 -1
- package/README.md +17 -19
- package/bin/argsbarg +10 -0
- package/docs/README.md +4 -3
- package/docs/ai-skills.md +4 -2
- package/docs/bundled-docs.md +50 -25
- package/docs/cli-program.md +52 -10
- package/docs/config-schema.md +10 -11
- package/docs/configure.md +2 -0
- package/docs/decisions.md +40 -0
- package/docs/developing.md +43 -5
- package/docs/http-server.md +171 -0
- package/docs/json-schema-subset.md +51 -0
- package/docs/mcp.md +4 -2
- package/docs/output-schema.md +55 -62
- package/examples/formats.ts +6 -6
- package/examples/full-example/Formula/full-example.rb +35 -0
- package/examples/full-example/README.md +20 -21
- package/examples/full-example/docs/README.md +1 -1
- package/examples/full-example/docs/cli-schema.json +1790 -98
- package/examples/full-example/docs/cli.md +1990 -0
- package/examples/full-example/docs/http.md +28 -29
- package/examples/full-example/docs/mcp.md +8 -22
- package/examples/full-example/docs/openapi.json +783 -50
- package/examples/full-example/docs/skill.md +10 -10
- package/examples/full-example/justfile +11 -1
- package/examples/full-example/src/commands/render-json/__generated__/RenderJsonInputSchema.json +15 -0
- package/examples/full-example/src/commands/render-json/__generated__/index.ts +5 -0
- package/examples/full-example/src/commands/render-json/command.test.ts +46 -0
- package/examples/full-example/src/commands/render-json/command.ts +30 -0
- package/examples/full-example/src/commands/render-json/types.ts +9 -0
- package/examples/full-example/src/commands/status/__generated__/StatusJsonOutputSchema.json +15 -0
- package/examples/full-example/src/commands/status/__generated__/index.ts +2 -2
- package/examples/full-example/src/commands/status/command.ts +5 -13
- package/examples/full-example/src/commands/status/types.ts +1 -14
- package/examples/full-example/src/commands/workspaces/__generated__/WorkspaceNameInputSchema.json +15 -0
- package/examples/full-example/src/commands/workspaces/__generated__/index.ts +5 -0
- package/examples/full-example/src/commands/workspaces/command.test.ts +58 -0
- package/examples/full-example/src/commands/workspaces/command.ts +94 -0
- package/examples/full-example/src/commands/workspaces/types.ts +6 -0
- package/examples/full-example/src/db/index.test.ts +86 -0
- package/examples/full-example/src/db/index.ts +101 -0
- package/examples/full-example/src/db/migrate.test.ts +35 -0
- package/examples/full-example/src/db/migrate.ts +69 -0
- package/examples/full-example/src/db/migrations/001_workspaces.sql +6 -0
- package/examples/full-example/src/db/tables/workspaces.ts +66 -0
- package/examples/full-example/src/program.ts +11 -36
- package/examples/full-example/src/types/argsbarg.d.ts +11 -0
- package/examples/full-example/src/types/md.d.ts +4 -0
- package/examples/full-example/tsconfig.json +5 -2
- package/examples/mcp-test.ts +1 -2
- package/examples/minimal.ts +1 -7
- package/examples/nested.ts +1 -2
- package/examples/option-required.ts +1 -1
- package/examples/servers.ts +4 -5
- package/index.d.ts +431 -136
- package/package.json +19 -2
- package/src/builtins/builtins.test.ts +7 -7
- package/src/builtins/completion-bash.ts +1 -1
- package/src/builtins/completion-fish.ts +1 -1
- package/src/builtins/completion-group.ts +4 -4
- package/src/builtins/completion-simulate-shared.ts +9 -0
- package/src/builtins/completion-zsh.ts +1 -1
- package/src/builtins/config.test.ts +3 -3
- package/src/builtins/config.ts +9 -9
- package/src/builtins/configure-copy.ts +2 -2
- package/src/builtins/configure.ts +4 -4
- package/src/builtins/dispatch.ts +19 -18
- package/src/builtins/export.ts +7 -5
- package/src/builtins/http.ts +68 -0
- package/src/builtins/mcp.ts +28 -4
- package/src/builtins/presentation.ts +6 -6
- package/src/builtins/registry.ts +6 -6
- package/src/builtins/scopes.ts +2 -2
- package/src/builtins/version.ts +1 -1
- package/src/cli-tool/full-example-capabilities.test.ts +10 -15
- package/src/cli-tool/main.ts +1 -1
- package/src/cli-tool/program.ts +3 -2
- package/src/cli-tool/prompt.ts +1 -1
- package/src/cli-tool/run-schemagen.ts +1 -3
- package/src/cli-tool/schemagen/cleanup.ts +6 -7
- package/src/cli-tool/schemagen/discover-schema-roots.ts +66 -120
- package/src/cli-tool/schemagen/index.ts +2 -2
- package/src/cli-tool/schemagen/names.ts +8 -13
- package/src/cli-tool/schemagen/run.ts +21 -28
- package/src/cli-tool/schemagen/schemagen.test.ts +136 -46
- package/src/config/bindings.test.ts +1 -1
- package/src/config/bindings.ts +1 -1
- package/src/config/bootstrap.test.ts +1 -1
- package/src/config/bootstrap.ts +36 -4
- package/src/config/context.test.ts +1 -1
- package/src/config/context.ts +1 -1
- package/src/config/entry.ts +1 -1
- package/src/config/file.test.ts +1 -1
- package/src/config/file.ts +3 -3
- package/src/config/manifest.ts +1 -1
- package/src/config/resolve.test.ts +1 -1
- package/src/config/resolve.ts +1 -1
- package/src/config/schema.ts +1 -1
- package/src/config/validate.ts +1 -1
- package/src/{install → configure/artifacts}/binary-placement.test.ts +1 -1
- package/src/{install → configure/artifacts}/binary-placement.ts +1 -1
- package/src/{install → configure/artifacts}/gh-release-update.ts +1 -1
- package/src/{install → configure/artifacts}/install-validate.test.ts +3 -3
- package/src/{install → configure/artifacts}/mcp-config.ts +1 -1
- package/src/{install → configure/artifacts}/mcp-opencode.test.ts +1 -1
- package/src/{install → configure/artifacts}/mcp-opencode.ts +1 -1
- package/src/{install → configure/artifacts}/paths.ts +5 -5
- package/src/configure/artifacts/plan.ts +24 -0
- package/src/{install → configure/artifacts}/status.test.ts +1 -1
- package/src/{install → configure/artifacts}/status.ts +2 -2
- package/src/{install → configure/artifacts}/target-base.ts +1 -1
- package/src/{install → configure/artifacts}/target-detect.ts +1 -1
- package/src/{install → configure/artifacts}/target-effective.ts +3 -9
- package/src/{install → configure/artifacts}/target-mcp-cli.ts +1 -1
- package/src/{install → configure/artifacts}/target-mcp-json.ts +1 -1
- package/src/{install → configure/artifacts}/target-plan-build.ts +2 -2
- package/src/{install → configure/artifacts}/target-registry.ts +2 -2
- package/src/{install → configure/artifacts}/target-scope.ts +3 -3
- package/src/{install → configure/artifacts}/target-skill.ts +1 -1
- package/src/{install → configure/artifacts}/target-types.ts +2 -2
- package/src/{install → configure/artifacts}/targets/app.ts +5 -5
- package/src/{install → configure/artifacts}/targets/chatgpt-mcp.ts +2 -2
- package/src/{install → configure/artifacts}/targets/claude-code-mcp.ts +2 -2
- package/src/{install → configure/artifacts}/targets/claude-desktop-mcp.ts +2 -2
- package/src/{install → configure/artifacts}/targets/claude-skill.ts +2 -2
- package/src/{install → configure/artifacts}/targets/codex-mcp.ts +2 -2
- package/src/{install → configure/artifacts}/targets/codex-skill.ts +2 -2
- package/src/{install → configure/artifacts}/targets/configure.ts +5 -5
- package/src/{install → configure/artifacts}/targets/cursor-mcp.ts +2 -2
- package/src/{install → configure/artifacts}/targets/cursor-skill.ts +2 -2
- package/src/{install → configure/artifacts}/targets/index.ts +1 -1
- package/src/{install → configure/artifacts}/targets/openclaw-mcp.ts +2 -2
- package/src/{install → configure/artifacts}/targets/openclaw-skill.ts +3 -3
- package/src/{install → configure/artifacts}/targets/opencode-mcp.ts +5 -5
- package/src/{install → configure/artifacts}/targets/opencode-skill.ts +3 -3
- package/src/{install → configure/artifacts}/targets.test.ts +1 -1
- package/src/{install → configure/artifacts}/uninstall.ts +1 -1
- package/src/configure/configure.test.ts +11 -11
- package/src/configure/index.ts +14 -14
- package/src/configure/prompt.ts +2 -2
- package/src/{context.ts → core/context.ts} +26 -20
- package/src/{json-leaf.test.ts → core/json-leaf.test.ts} +4 -4
- package/src/{leaf-inputs.test.ts → core/leaf-inputs.test.ts} +7 -7
- package/src/{leaf-inputs.ts → core/leaf-inputs.ts} +16 -12
- package/src/{parse.test.ts → core/parse.test.ts} +97 -109
- package/src/{parse.ts → core/parse.ts} +129 -31
- package/src/{schema.ts → core/schema.ts} +25 -13
- package/src/{types.ts → core/types.ts} +225 -35
- package/src/{validate.ts → core/validate.ts} +39 -29
- package/src/docs/builtin.ts +8 -19
- package/src/docs/{api-guide.test.ts → cli-guide.test.ts} +21 -21
- package/src/docs/{api-guide.ts → cli-guide.ts} +45 -16
- package/src/docs/docs.test.ts +76 -41
- package/src/docs/http-guide.ts +37 -34
- package/src/docs/mcp-guide.ts +12 -14
- package/src/docs/mcp-resources.test.ts +2 -3
- package/src/docs/mcp-resources.ts +6 -11
- package/src/docs/resolve.ts +22 -30
- package/src/docs/save.ts +3 -3
- package/src/exports/cli.ts +47 -0
- package/src/exports/headless.ts +13 -0
- package/src/exports/http.ts +6 -0
- package/src/exports/mcp.ts +6 -0
- package/src/{headless.test.ts → headless/routing.test.ts} +3 -3
- package/src/{headless.ts → headless/routing.ts} +3 -3
- package/src/headless/tool-call.ts +114 -46
- package/src/help.test.ts +152 -0
- package/src/help.ts +3 -3
- package/src/hooks/builtin.ts +20 -0
- package/src/hooks/run.ts +142 -0
- package/src/http/openapi.ts +182 -0
- package/src/http/readiness.ts +78 -0
- package/src/{api → http}/result.ts +16 -5
- package/src/http/routes.ts +329 -0
- package/src/http/server.ts +225 -0
- package/src/index.ts +36 -25
- package/src/log/ecs.test.ts +43 -0
- package/src/log/ecs.ts +59 -0
- package/src/log/emitter.ts +166 -0
- package/src/mcp/bundle.ts +2 -2
- package/src/mcp/claude.test.ts +1 -1
- package/src/mcp/claude.ts +4 -4
- package/src/{hidden-mcpb.test.ts → mcp/hidden-mcpb.test.ts} +10 -9
- package/src/mcp/result.ts +2 -2
- package/src/mcp/server.ts +54 -6
- package/src/mcp/tools.ts +9 -20
- package/src/{capabilities.ts → runtime/capabilities.ts} +11 -11
- package/src/{cli-errors.ts → runtime/cli-errors.ts} +4 -4
- package/src/{cli.ts → runtime/cli.ts} +159 -49
- package/src/runtime/exposure.ts +102 -0
- package/src/{invoke.test.ts → runtime/invoke.test.ts} +31 -7
- package/src/server/context.ts +25 -0
- package/src/server/overrides.ts +112 -0
- package/src/skill/generate.ts +8 -8
- package/src/skill/hint.ts +1 -1
- package/src/skill/install.ts +2 -2
- package/src/skill/naming.ts +1 -1
- package/src/{test-fixtures.ts → test/fixtures.ts} +3 -2
- package/src/{config.integration.test.ts → test/integration/config.test.ts} +8 -8
- package/src/{api.integration.test.ts → test/integration/http.test.ts} +170 -67
- package/src/{mcp.integration.test.ts → test/integration/mcp.test.ts} +11 -57
- package/docs/api-server.md +0 -141
- package/examples/full-example/docs/api.md +0 -511
- package/examples/full-example/src/commands/status/__generated__/outputSchema.json +0 -28
- package/examples/full-example/src/config/__generated__/configSchema.json +0 -40
- package/examples/full-example/src/config/__generated__/index.ts +0 -5
- package/examples/full-example/src/config/types.ts +0 -24
- package/src/api/openapi.ts +0 -117
- package/src/api/server.ts +0 -120
- package/src/builtins/api.ts +0 -38
- package/src/hidden.ts +0 -30
- package/src/install/plan.ts +0 -53
- /package/src/{install → configure/artifacts}/detect-installed.ts +0 -0
- /package/src/{install → configure/artifacts}/gh-release-update.test.ts +0 -0
- /package/src/{install → configure/artifacts}/mcp-codex.test.ts +0 -0
- /package/src/{install → configure/artifacts}/mcp-codex.ts +0 -0
- /package/src/{install → configure/artifacts}/mcp-openclaw.test.ts +0 -0
- /package/src/{install → configure/artifacts}/mcp-openclaw.ts +0 -0
- /package/src/{install → configure/artifacts}/normalize-uninstall.ts +0 -0
- /package/src/{install → configure/artifacts}/normalize.ts +0 -0
- /package/src/{install → configure/artifacts}/opts.ts +0 -0
- /package/src/{install → configure/artifacts}/shell.ts +0 -0
- /package/src/{formats.test.ts → core/formats.test.ts} +0 -0
- /package/src/{formats.ts → core/formats.ts} +0 -0
- /package/src/{respond.ts → core/respond.ts} +0 -0
- /package/src/{types.test.ts → core/types.test.ts} +0 -0
- /package/src/{api → http}/schema-deref.test.ts +0 -0
- /package/src/{api → http}/schema-deref.ts +0 -0
package/examples/formats.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
/*
|
|
3
|
-
* Value formats demo: duration, comma-list, date, default, and
|
|
3
|
+
* Value formats demo: duration, comma-list, date, default, and ctx.inputs.
|
|
4
4
|
* Run: bun ./examples/formats.ts run --tags alpha,beta --on 2026-06-22
|
|
5
5
|
* MCP: pass comma-list as string or array; varargs N/A on this leaf.
|
|
6
6
|
*/
|
|
@@ -12,19 +12,19 @@ import {
|
|
|
12
12
|
CliOptionKind,
|
|
13
13
|
type CliProgram,
|
|
14
14
|
CliValueFormat,
|
|
15
|
-
} from "../src/index
|
|
15
|
+
} from "../src/index";
|
|
16
16
|
|
|
17
17
|
const program = {
|
|
18
18
|
key: "formats.ts",
|
|
19
19
|
version: pkg.version,
|
|
20
|
-
description: "Value formats and
|
|
20
|
+
description: "Value formats and ctx.inputs demo.",
|
|
21
21
|
fallbackCommand: "run",
|
|
22
22
|
fallbackMode: CliFallbackMode.MissingOnly,
|
|
23
23
|
mcpServer: { enabled: true },
|
|
24
24
|
commands: [
|
|
25
25
|
{
|
|
26
26
|
key: "run",
|
|
27
|
-
description: "Print coerced option values from
|
|
27
|
+
description: "Print coerced option values from ctx.inputs.",
|
|
28
28
|
options: [
|
|
29
29
|
{
|
|
30
30
|
name: "timeout",
|
|
@@ -53,9 +53,9 @@ const program = {
|
|
|
53
53
|
},
|
|
54
54
|
],
|
|
55
55
|
handler: (ctx) => {
|
|
56
|
-
const inputs = ctx.
|
|
56
|
+
const inputs = ctx.inputs;
|
|
57
57
|
const out = {
|
|
58
|
-
|
|
58
|
+
inputs,
|
|
59
59
|
durationMs: ctx.durationOpt("timeout"),
|
|
60
60
|
tags: ctx.commaListOpt("tags"),
|
|
61
61
|
on: ctx.dateOpt("on"),
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
class FullExample < Formula
|
|
2
|
+
desc "Argsbarg full example reference app"
|
|
3
|
+
homepage "https://github.com/bdombro/bun-argsbarg"
|
|
4
|
+
version "1.0.0"
|
|
5
|
+
sha256 "d6dbe3233152d2f51feca068b23e6fd133940232fb4bb7c3f08c2d1024c10c30"
|
|
6
|
+
|
|
7
|
+
def install
|
|
8
|
+
bin.install "full-example"
|
|
9
|
+
chmod 0755, bin/"full-example"
|
|
10
|
+
generate_completions_from_executable(bin/"full-example", "completion", base_name: "full-example")
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def post_install
|
|
14
|
+
system bin/"full-example", "configure", "--sync", "--yes"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def uninstall
|
|
18
|
+
system bin/"full-example", "configure", "--remove-all", "--yes"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def caveats
|
|
22
|
+
<<~EOS
|
|
23
|
+
Run `full-example configure` to set up agent artifacts and app config (interactive).
|
|
24
|
+
Restart MCP chat apps (Cursor, Claude Desktop, etc.) after install or upgrade so they load the updated server.
|
|
25
|
+
EOS
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
test do
|
|
29
|
+
assert_match version.to_s, shell_output("#{bin}/full-example version")
|
|
30
|
+
assert_predicate bash_completion/"full-example", :exist?
|
|
31
|
+
assert_predicate zsh_completion/"_full-example", :exist?
|
|
32
|
+
assert_predicate fish_completion/"full-example.fish", :exist?
|
|
33
|
+
end
|
|
34
|
+
url "file:///Users/briandombrowski/dev/bdombro/bun-argsbarg/examples/full-example/Formula/.staging/full-example"
|
|
35
|
+
end
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
# full-example
|
|
2
2
|
|
|
3
|
-
Argsbarg
|
|
3
|
+
Argsbarg copy template / reference app (not a kitchen-sink product).
|
|
4
|
+
|
|
5
|
+
## What's in this app
|
|
6
|
+
|
|
7
|
+
- **Builtins enabled:** CLI, shell completion, `docs`, MCP, HTTP API, `configure` (wizard available; no default `appConfig` in the template)
|
|
8
|
+
- **Commands:**
|
|
9
|
+
- `echo` — simple flags/positionals
|
|
10
|
+
- `render-json` — `kind: "json"` leaf, schemagen `inputSchema`, `ctx.inputsAs`
|
|
11
|
+
- `status` — schemagen `outputSchema`, `--json`
|
|
12
|
+
- `workspaces` — REST CRUD, `:id` param routers, verb leaves, schemagen input schemas
|
|
13
|
+
- **Tooling:** `@sg` schemagen, `just docgen`, Homebrew/just dev workflow
|
|
4
14
|
|
|
5
15
|
## Quick start
|
|
6
16
|
|
|
@@ -9,13 +19,11 @@ From a git checkout at this directory (requires [Homebrew](https://brew.sh), [ju
|
|
|
9
19
|
```bash
|
|
10
20
|
brew install just bun
|
|
11
21
|
just setup
|
|
12
|
-
just schemagen # after changing src
|
|
22
|
+
just schemagen # after changing @sg types in src/
|
|
13
23
|
just run status --json
|
|
14
24
|
just run docs readme
|
|
15
25
|
```
|
|
16
26
|
|
|
17
|
-
Run `full-example configure` when the app needs secrets or other app config (interactive wizard).
|
|
18
|
-
|
|
19
27
|
## Install
|
|
20
28
|
|
|
21
29
|
Requires [Homebrew](https://brew.sh).
|
|
@@ -34,7 +42,6 @@ Install:
|
|
|
34
42
|
```bash
|
|
35
43
|
brew tap bdombro/bun-argsbarg git@github.com:bdombro/bun-argsbarg.git
|
|
36
44
|
brew install bdombro/bun-argsbarg/full-example
|
|
37
|
-
full-example configure
|
|
38
45
|
```
|
|
39
46
|
|
|
40
47
|
Upgrade:
|
|
@@ -58,17 +65,17 @@ just install-production # remote tap install (requires gh auth login)
|
|
|
58
65
|
just test-release
|
|
59
66
|
```
|
|
60
67
|
|
|
61
|
-
Undo a local dev install: `just uninstall` (formula + agent artifacts
|
|
68
|
+
Undo a local dev install: `just uninstall` (formula + agent artifacts), `just uninstall-config` (app config only, without uninstalling the formula).
|
|
62
69
|
|
|
63
|
-
## Schemagen
|
|
70
|
+
## Schemagen (`@sg`)
|
|
64
71
|
|
|
65
|
-
|
|
66
|
-
| --- | --- | --- |
|
|
67
|
-
| `export type configType = …` | `config/__generated__/configSchema.json` | `{ configSchema }` from `config/__generated__/index.ts` |
|
|
68
|
-
| `export type outputType = …` | `__generated__/outputSchema.json` | `{ outputSchema }` from `__generated__/index.ts` |
|
|
69
|
-
| `export type inputType = …` | `__generated__/inputSchema.json` | `{ inputSchema }` from `__generated__/index.ts` |
|
|
72
|
+
Mark schema-facing types with `/** @sg */` immediately above the declaration (no blank line). Run `argsbarg schemagen` (via `just schemagen` or `just setup`).
|
|
70
73
|
|
|
71
|
-
Type
|
|
74
|
+
| Type | Generated artifact | Import |
|
|
75
|
+
| --- | --- | --- |
|
|
76
|
+
| `RenderJsonInput` | `RenderJsonInputSchema.json` | `RenderJsonInputSchema` from `./__generated__` |
|
|
77
|
+
| `StatusJsonOutput` | `StatusJsonOutputSchema.json` | `StatusJsonOutputSchema` from `./__generated__` |
|
|
78
|
+
| `WorkspaceNameInput` | `WorkspaceNameInputSchema.json` | `WorkspaceNameInputSchema` from `./__generated__` |
|
|
72
79
|
|
|
73
80
|
## Consumer docs
|
|
74
81
|
|
|
@@ -77,11 +84,3 @@ Regenerate committed reference docs under `docs/` (see [docs/README.md](docs/REA
|
|
|
77
84
|
```bash
|
|
78
85
|
just docgen
|
|
79
86
|
```
|
|
80
|
-
|
|
81
|
-
## Environment
|
|
82
|
-
|
|
83
|
-
Optional overrides for `program.appConfig` (the configure wizard is the usual path):
|
|
84
|
-
|
|
85
|
-
| Variable | Purpose |
|
|
86
|
-
| --- | --- |
|
|
87
|
-
| `FULL_EXAMPLE_API_TOKEN` | Overrides `apiToken` when set in the shell |
|
|
@@ -8,7 +8,7 @@ Reference template for argsbarg consumer docgen. Every builtin is enabled in `sr
|
|
|
8
8
|
| **Authoring argsbarg schema** | `node_modules/argsbarg/docs/cli-program.md` — see `.cursor/rules/cli-program.mdc` |
|
|
9
9
|
| **HTTP API / curl** | [http.md](http.md) — generated; or run `full-example docs http` |
|
|
10
10
|
| **MCP tools** | [mcp.md](mcp.md) — generated; or run `full-example docs mcp` |
|
|
11
|
-
| **Full command tree (markdown)** | [
|
|
11
|
+
| **Full command tree (markdown)** | [cli.md](cli.md) — generated |
|
|
12
12
|
| **Full command tree (JSON)** | [cli-schema.json](cli-schema.json) — generated |
|
|
13
13
|
| **OpenAPI 3.1** | [openapi.json](openapi.json) — generated |
|
|
14
14
|
| **Agent skill index** | [skill.md](skill.md) — generated |
|