@jean.gnc/harness-kit 0.5.1 → 0.7.1
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/README.md +91 -86
- package/dist/agent/schema.d.ts.map +1 -1
- package/dist/agent/schema.js +3 -9
- package/dist/agent/schema.js.map +1 -1
- package/dist/build.d.ts +4 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +19 -3
- package/dist/build.js.map +1 -1
- package/dist/check/index.d.ts +2 -1
- package/dist/check/index.d.ts.map +1 -1
- package/dist/check/index.js +1 -0
- package/dist/check/index.js.map +1 -1
- package/dist/cli.js +64 -31
- package/dist/cli.js.map +1 -1
- package/dist/command/schema.d.ts.map +1 -1
- package/dist/command/schema.js +3 -9
- package/dist/command/schema.js.map +1 -1
- package/dist/compile/emit.d.ts +1 -0
- package/dist/compile/emit.d.ts.map +1 -1
- package/dist/compile/emit.js +50 -17
- package/dist/compile/emit.js.map +1 -1
- package/dist/compile/frontmatter.d.ts +1 -1
- package/dist/compile/frontmatter.d.ts.map +1 -1
- package/dist/compile/frontmatter.js +3 -4
- package/dist/compile/frontmatter.js.map +1 -1
- package/dist/compile/index.d.ts +2 -0
- package/dist/compile/index.d.ts.map +1 -1
- package/dist/compile/index.js +33 -31
- package/dist/compile/index.js.map +1 -1
- package/dist/compile/validators.d.ts.map +1 -1
- package/dist/compile/validators.js +6 -0
- package/dist/compile/validators.js.map +1 -1
- package/dist/config/harness.d.ts +15 -0
- package/dist/config/harness.d.ts.map +1 -0
- package/dist/config/harness.js +41 -0
- package/dist/config/harness.js.map +1 -0
- package/dist/configs/emit.d.ts +7 -0
- package/dist/configs/emit.d.ts.map +1 -0
- package/dist/configs/emit.js +12 -0
- package/dist/configs/emit.js.map +1 -0
- package/dist/configs/manifest.d.ts +16 -0
- package/dist/configs/manifest.d.ts.map +1 -0
- package/dist/configs/manifest.js +49 -0
- package/dist/configs/manifest.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/init/index.d.ts +8 -0
- package/dist/init/index.d.ts.map +1 -0
- package/dist/init/index.js +35 -0
- package/dist/init/index.js.map +1 -0
- package/dist/install/discovery.d.ts +3 -8
- package/dist/install/discovery.d.ts.map +1 -1
- package/dist/install/discovery.js +12 -10
- package/dist/install/discovery.js.map +1 -1
- package/dist/install/index.d.ts +7 -20
- package/dist/install/index.d.ts.map +1 -1
- package/dist/install/index.js +86 -27
- package/dist/install/index.js.map +1 -1
- package/dist/install/links.d.ts +16 -0
- package/dist/install/links.d.ts.map +1 -0
- package/dist/install/links.js +108 -0
- package/dist/install/links.js.map +1 -0
- package/dist/installed.d.ts +3 -1
- package/dist/installed.d.ts.map +1 -1
- package/dist/installed.js +13 -25
- package/dist/installed.js.map +1 -1
- package/dist/layout/conventions.d.ts +4 -0
- package/dist/layout/conventions.d.ts.map +1 -0
- package/dist/layout/conventions.js +4 -0
- package/dist/layout/conventions.js.map +1 -0
- package/dist/layout/index.d.ts +1 -0
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/index.js +10 -14
- package/dist/layout/index.js.map +1 -1
- package/dist/link/applier.d.ts +6 -0
- package/dist/link/applier.d.ts.map +1 -0
- package/dist/link/applier.js +38 -0
- package/dist/link/applier.js.map +1 -0
- package/dist/lint.d.ts +3 -0
- package/dist/lint.d.ts.map +1 -1
- package/dist/lint.js +10 -6
- package/dist/lint.js.map +1 -1
- package/dist/marketplace/schema.d.ts +1707 -88
- package/dist/marketplace/schema.d.ts.map +1 -1
- package/dist/marketplace/schema.js +15 -7
- package/dist/marketplace/schema.js.map +1 -1
- package/dist/placeholders/source-position.d.ts.map +1 -1
- package/dist/placeholders/source-position.js +2 -1
- package/dist/placeholders/source-position.js.map +1 -1
- package/dist/plugin/index.d.ts +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/schema.d.ts +186 -55
- package/dist/plugin/schema.d.ts.map +1 -1
- package/dist/plugin/schema.js +21 -15
- package/dist/plugin/schema.js.map +1 -1
- package/dist/readme/index.d.ts +1 -5
- package/dist/readme/index.d.ts.map +1 -1
- package/dist/readme/index.js.map +1 -1
- package/dist/schema-primitives.d.ts +5 -0
- package/dist/schema-primitives.d.ts.map +1 -0
- package/dist/schema-primitives.js +15 -0
- package/dist/schema-primitives.js.map +1 -0
- package/dist/skill/schema.d.ts +2 -2
- package/dist/skill/schema.d.ts.map +1 -1
- package/dist/skill/schema.js +4 -13
- package/dist/skill/schema.js.map +1 -1
- package/dist/vendor/builtins.d.ts +3 -0
- package/dist/vendor/builtins.d.ts.map +1 -0
- package/dist/vendor/builtins.js +6 -0
- package/dist/vendor/builtins.js.map +1 -0
- package/dist/vendor/registry.d.ts +4 -0
- package/dist/vendor/registry.d.ts.map +1 -0
- package/dist/vendor/registry.js +26 -0
- package/dist/vendor/registry.js.map +1 -0
- package/dist/vendor/schema.d.ts +43 -0
- package/dist/vendor/schema.d.ts.map +1 -0
- package/dist/vendor/schema.js +2 -0
- package/dist/vendor/schema.js.map +1 -0
- package/dist/vendors/claude/index.d.ts +4 -0
- package/dist/vendors/claude/index.d.ts.map +1 -0
- package/dist/vendors/claude/index.js +69 -0
- package/dist/vendors/claude/index.js.map +1 -0
- package/dist/vendors/codex/index.d.ts +4 -0
- package/dist/vendors/codex/index.d.ts.map +1 -0
- package/dist/vendors/codex/index.js +53 -0
- package/dist/vendors/codex/index.js.map +1 -0
- package/dist/vendors/shared.d.ts +4 -0
- package/dist/vendors/shared.d.ts.map +1 -0
- package/dist/vendors/shared.js +42 -0
- package/dist/vendors/shared.js.map +1 -0
- package/package.json +9 -3
- package/dist/install/claude.d.ts +0 -4
- package/dist/install/claude.d.ts.map +0 -1
- package/dist/install/claude.js +0 -37
- package/dist/install/claude.js.map +0 -1
- package/dist/install/codex.d.ts +0 -4
- package/dist/install/codex.d.ts.map +0 -1
- package/dist/install/codex.js +0 -29
- package/dist/install/codex.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,37 +1,81 @@
|
|
|
1
1
|
# Harness Kit
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`harness-kit` is a framework for building multi-agent harnesses — author plugins once, target every vendor.
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
- Node ≥ 20
|
|
8
|
-
- A package manager (pnpm, npm, yarn — pnpm is what this repo uses)
|
|
9
|
-
- The `claude` and/or `codex` CLIs on `$PATH` — only needed to run `harness-kit install` / `uninstall`
|
|
10
|
-
|
|
11
|
-
## Install
|
|
5
|
+
## Quickstart
|
|
12
6
|
|
|
13
7
|
```sh
|
|
14
8
|
pnpm add @jean.gnc/harness-kit
|
|
9
|
+
harness init --marketplace my-harness --vendors claude,codex
|
|
10
|
+
# author src/plugins/<plugin>/... (see Authoring below)
|
|
11
|
+
harness build
|
|
12
|
+
harness install
|
|
15
13
|
```
|
|
16
14
|
|
|
17
|
-
|
|
15
|
+
`harness` is the canonical bin; `harness-kit` is an alias.
|
|
16
|
+
|
|
17
|
+
## How it works
|
|
18
|
+
|
|
19
|
+
### `harness.yaml`
|
|
20
|
+
|
|
21
|
+
A declarative repo config with two required fields:
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
marketplace: my-harness
|
|
25
|
+
vendors:
|
|
26
|
+
- claude
|
|
27
|
+
- codex
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Created by `harness init`. Read automatically by `build`, `install`, and `uninstall` via `--repo` (default `.`).
|
|
31
|
+
|
|
32
|
+
### Vendors
|
|
33
|
+
|
|
34
|
+
A vendor is a named target with a home directory, a per-vendor manifest path, an `emitPluginManifest` hook, `install`/`uninstall` hooks, and an optional `aliases` hook for fan-out symlink destinations. Built-in:
|
|
35
|
+
|
|
36
|
+
- **claude** — registers plugins via `claude plugin install`; creates a `CLAUDE.md` symlink whenever an `AGENTS.md` config file is linked.
|
|
37
|
+
- **codex** — primes the local cache by copying compiled plugins, then runs `codex plugin marketplace add`.
|
|
18
38
|
|
|
19
|
-
|
|
39
|
+
Writing your own vendor: see [docs/vendors.md](./docs/vendors.md).
|
|
20
40
|
|
|
41
|
+
### Source layout
|
|
42
|
+
|
|
43
|
+
Two trees live under `src/`:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
src/configs/
|
|
47
|
+
common/ # linked into every declared vendor's home
|
|
48
|
+
<vendor>/ # linked only into that vendor's home
|
|
21
49
|
```
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<skill>/
|
|
31
|
-
SKILL.md
|
|
32
|
-
<companion>.md # optional
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
src/plugins/<plugin>/
|
|
53
|
+
.claude-plugin/plugin.json # or PLUGIN.ts
|
|
54
|
+
skills/<name>/SKILL.md # or SKILL.ts + body.md
|
|
55
|
+
agents/<agent>.md # optional
|
|
56
|
+
commands/<command>.md # optional
|
|
57
|
+
hooks/<hook>.json # optional
|
|
33
58
|
```
|
|
34
59
|
|
|
60
|
+
Plus `src/.claude-plugin/marketplace.json` at the root, listing the plugins to compile.
|
|
61
|
+
|
|
62
|
+
→ Manifest fields, passthrough behavior, and plugin extensions: [docs/marketplace.md](./docs/marketplace.md).
|
|
63
|
+
|
|
64
|
+
### Compile pipeline
|
|
65
|
+
|
|
66
|
+
`harness build` reads vendors from `harness.yaml`, validates the marketplace manifest, discovers plugins, checks every `context` file exists, and validates each `hookRequires` against the local artifact IDs. Then for each plugin × vendor pair it emits the per-vendor manifest and compiles skills/agents/commands into `dist/plugins/<vendor>/<plugin>/`. It also copies `dist/.claude-plugin/marketplace.json` and writes a vendor-agnostic `dist/configs.json` link manifest derived from `src/configs/`.
|
|
67
|
+
|
|
68
|
+
### Install pipeline
|
|
69
|
+
|
|
70
|
+
`harness install` reads `harness.yaml`, then:
|
|
71
|
+
|
|
72
|
+
1. Applies links from `dist/configs.json`. Existing symlinks are replaced. Regular files are renamed to `<dest>.backup` (incrementing to `.backup.2`, `.backup.3`, …) before the symlink is created. Orphan symlinks pointing back into the repo are swept before applying.
|
|
73
|
+
2. For each declared vendor, discovers compiled plugins under `dist/plugins/<vendor>/` and calls the vendor's `install` hook.
|
|
74
|
+
|
|
75
|
+
`--dry-run` prints the plan without touching the filesystem.
|
|
76
|
+
|
|
77
|
+
## Authoring a skill
|
|
78
|
+
|
|
35
79
|
Skills are auto-discovered by walking `<srcRoot>/plugins/<plugin>/skills/<name>/SKILL.md`. The `name` field in frontmatter must match the skill's folder name.
|
|
36
80
|
|
|
37
81
|
```md
|
|
@@ -53,10 +97,10 @@ For details, see {{ref:details.md}}.
|
|
|
53
97
|
{{companions}}
|
|
54
98
|
```
|
|
55
99
|
|
|
56
|
-
Compiles to:
|
|
100
|
+
Compiles to (once per declared vendor):
|
|
57
101
|
|
|
58
102
|
```md
|
|
59
|
-
<!-- dist/plugins/<plugin>/skills/my-skill/SKILL.md -->
|
|
103
|
+
<!-- dist/plugins/<vendor>/<plugin>/skills/my-skill/SKILL.md -->
|
|
60
104
|
---
|
|
61
105
|
name: my-skill
|
|
62
106
|
description: What the skill does — single line.
|
|
@@ -111,69 +155,7 @@ For type safety conventions, see {{skill:dev-tools:typescript}}.
|
|
|
111
155
|
|
|
112
156
|
A skill folder must contain exactly one of `SKILL.md` or `SKILL.ts`. Both forms run through the same placeholder pipeline and produce identical `dist/` output.
|
|
113
157
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
The package ships a `harness-kit` CLI bin:
|
|
117
|
-
|
|
118
|
-
```sh
|
|
119
|
-
harness-kit build # compile typed sources to dist/
|
|
120
|
-
harness-kit lint # lint compiled markdown under dist/ with default rules
|
|
121
|
-
harness-kit check # validate {{ext:...}} refs against installed plugins
|
|
122
|
-
harness-kit install # install dist/ plugins into Claude + Codex
|
|
123
|
-
harness-kit uninstall # remove them
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
In your `package.json`:
|
|
127
|
-
|
|
128
|
-
```json
|
|
129
|
-
{
|
|
130
|
-
"scripts": {
|
|
131
|
-
"build": "harness-kit build",
|
|
132
|
-
"lint": "harness-kit build && harness-kit lint",
|
|
133
|
-
"install:plugins": "harness-kit install",
|
|
134
|
-
"uninstall:plugins": "harness-kit uninstall"
|
|
135
|
-
},
|
|
136
|
-
"dependencies": {
|
|
137
|
-
"@jean.gnc/harness-kit": "latest"
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
`build` defaults: `./src` → `./dist`. Override with `--src` and `--out`.
|
|
143
|
-
|
|
144
|
-
`lint` defaults: `./dist`. Runs `markdownlint-cli2` against `plugins/**/*.md` with harness-kit's bundled rules — `MD013` (line length), `MD041` (first-line h1), and `MD033` (inline HTML) disabled; `MD024` scoped to `siblings_only`; `MD031` allows omitting blank lines around fences inside list items. Override with `--out`.
|
|
145
|
-
|
|
146
|
-
`install` / `uninstall` defaults: reads `./dist`, targets both Claude and Codex. Filter with `--targets claude` or `--targets codex`. The marketplace name is read from `./dist/.claude-plugin/marketplace.json`, and the `claude` / `codex` CLIs must be on `$PATH`.
|
|
147
|
-
|
|
148
|
-
For programmatic use:
|
|
149
|
-
|
|
150
|
-
```ts
|
|
151
|
-
import {
|
|
152
|
-
build,
|
|
153
|
-
lint,
|
|
154
|
-
install,
|
|
155
|
-
uninstall,
|
|
156
|
-
compile,
|
|
157
|
-
defineSkill,
|
|
158
|
-
parsePlaceholders,
|
|
159
|
-
substitute,
|
|
160
|
-
checkCompanionFiles,
|
|
161
|
-
} from "@jean.gnc/harness-kit";
|
|
162
|
-
|
|
163
|
-
await build({
|
|
164
|
-
srcRoot: "./src",
|
|
165
|
-
outRoot: "./dist",
|
|
166
|
-
bodyInvariants: [
|
|
167
|
-
/* (body) => string[] — extra checks to run on every skill body */
|
|
168
|
-
],
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
await install({ targets: ["claude", "codex"] });
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
`bodyInvariants` are consumer-supplied predicates of type `(body: string) => string[]`. Each runs on every skill body (after `{{include:...}}` expansion, before placeholder substitution) during compile; any returned strings are reported as invariant violations and fail the build.
|
|
175
|
-
|
|
176
|
-
## Placeholder reference
|
|
158
|
+
### Placeholder reference
|
|
177
159
|
|
|
178
160
|
Local skills are auto-discovered by walking `<srcRoot>/plugins/<plugin>/skills/<name>/`. Use `{{skill:...}}` for local references (build fails on typos) and `{{ext:...}}` for cross-plugin references (rendered as-is, no validation).
|
|
179
161
|
|
|
@@ -185,6 +167,29 @@ Local skills are auto-discovered by walking `<srcRoot>/plugins/<plugin>/skills/<
|
|
|
185
167
|
| `{{include:<relative-path.md>}}` | Inlined content of the target file | Must be a `.md` file inside the skill, no cycles |
|
|
186
168
|
| `{{companions}}` | Companion files section | Required iff companions are declared |
|
|
187
169
|
|
|
170
|
+
## CLI
|
|
171
|
+
|
|
172
|
+
```sh
|
|
173
|
+
harness init # scaffold harness.yaml + src/configs/{common,<vendor>}/ + src/plugins/
|
|
174
|
+
harness build # compile src/ → dist/ per declared vendors
|
|
175
|
+
harness lint # lint compiled markdown under dist/
|
|
176
|
+
harness check # validate plugin references against local + installed sources
|
|
177
|
+
harness install # link configs + register plugins per declared vendor
|
|
178
|
+
harness uninstall # remove installed plugins per declared vendor
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
→ Full flag reference, bundled lint rules, and `package.json` integration: [docs/cli.md](./docs/cli.md).
|
|
182
|
+
|
|
183
|
+
## Programmatic API
|
|
184
|
+
|
|
185
|
+
Everything the CLI does is also a typed module API. See [docs/api.md](./docs/api.md).
|
|
186
|
+
|
|
187
|
+
## Requirements
|
|
188
|
+
|
|
189
|
+
- Node ≥ 24
|
|
190
|
+
- A package manager (pnpm, npm, yarn — pnpm is what this repo uses)
|
|
191
|
+
- The `claude` and/or `codex` CLIs on `$PATH` — only needed to run `harness install` / `uninstall`
|
|
192
|
+
|
|
188
193
|
## Contributing
|
|
189
194
|
|
|
190
195
|
See [CONTRIBUTING.md](./CONTRIBUTING.md).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;EAOb,CAAC;AAEZ,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAE/C"}
|
package/dist/agent/schema.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { description, kebabName } from "../schema-primitives.js";
|
|
2
3
|
export const AgentSchema = z
|
|
3
4
|
.object({
|
|
4
|
-
name:
|
|
5
|
-
|
|
6
|
-
.min(1)
|
|
7
|
-
.regex(/^[a-z0-9-]+$/, "name must be lowercase kebab-case"),
|
|
8
|
-
description: z
|
|
9
|
-
.string()
|
|
10
|
-
.min(1)
|
|
11
|
-
.max(1024)
|
|
12
|
-
.refine((s) => !s.includes("\n"), "description cannot contain newlines"),
|
|
5
|
+
name: kebabName,
|
|
6
|
+
description,
|
|
13
7
|
tools: z.union([z.string().min(1), z.array(z.string().min(1))]).optional(),
|
|
14
8
|
model: z.string().min(1).optional(),
|
|
15
9
|
})
|
package/dist/agent/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,IAAI,EAAE,SAAS;IACf,WAAW;IACX,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACpC,CAAC;KACD,MAAM,EAAE,CAAC;AAIZ,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
|
package/dist/build.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type BodyInvariant } from "./compile/index.js";
|
|
2
|
+
import type { Vendor } from "./vendor/schema.js";
|
|
2
3
|
export interface BuildOptions {
|
|
3
4
|
readonly srcRoot?: string;
|
|
4
5
|
readonly outRoot?: string;
|
|
5
6
|
readonly bodyInvariants?: readonly BodyInvariant[];
|
|
6
7
|
readonly silent?: boolean;
|
|
8
|
+
readonly vendors?: readonly Vendor[];
|
|
9
|
+
readonly repoRoot?: string;
|
|
7
10
|
}
|
|
8
11
|
export declare function build(options?: BuildOptions): Promise<void>;
|
|
9
12
|
//# sourceMappingURL=build.d.ts.map
|
package/dist/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BrE"}
|
package/dist/build.js
CHANGED
|
@@ -1,16 +1,32 @@
|
|
|
1
1
|
import { rm } from "node:fs/promises";
|
|
2
|
-
import { resolve, join } from "node:path";
|
|
2
|
+
import { resolve, join, dirname } from "node:path";
|
|
3
3
|
import { compile } from "./compile/index.js";
|
|
4
|
+
import { emitConfigsManifest } from "./configs/emit.js";
|
|
5
|
+
import { resolveVendorsForRepo } from "./vendor/registry.js";
|
|
4
6
|
export async function build(options = {}) {
|
|
5
7
|
const srcRoot = resolve(options.srcRoot ?? "./src");
|
|
6
8
|
const outRoot = resolve(options.outRoot ?? "./dist");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
const repoRoot = resolve(options.repoRoot ?? dirname(srcRoot));
|
|
10
|
+
const vendors = options.vendors ?? (await resolveVendorsForRepo(repoRoot));
|
|
11
|
+
for (const vendor of vendors) {
|
|
12
|
+
await rm(vendor.vendorOutDir(outRoot), { recursive: true, force: true });
|
|
13
|
+
await rm(join(outRoot, dirname(vendor.marketplaceManifestPath)), {
|
|
14
|
+
recursive: true,
|
|
15
|
+
force: true,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
await rm(join(outRoot, "configs.json"), { force: true });
|
|
9
19
|
await compile({
|
|
10
20
|
srcRoot,
|
|
11
21
|
outRoot,
|
|
22
|
+
vendors,
|
|
12
23
|
...(options.bodyInvariants ? { bodyInvariants: options.bodyInvariants } : {}),
|
|
13
24
|
});
|
|
25
|
+
await emitConfigsManifest({
|
|
26
|
+
srcRoot,
|
|
27
|
+
outRoot,
|
|
28
|
+
vendors: vendors.map((v) => v.name),
|
|
29
|
+
});
|
|
14
30
|
if (!options.silent) {
|
|
15
31
|
console.log(`compiled → ${outRoot}`);
|
|
16
32
|
}
|
package/dist/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAsB,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAY7D,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,UAAwB,EAAE;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,EAAE;YAC/D,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;IACD,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,CAAC;QACZ,OAAO;QACP,OAAO;QACP,OAAO;QACP,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC,CAAC;IACH,MAAM,mBAAmB,CAAC;QACxB,OAAO;QACP,OAAO;QACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KACpC,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
|
package/dist/check/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type PluginSource } from "../installed.js";
|
|
2
|
-
export
|
|
2
|
+
export declare const CHECK_MODES: readonly ["local", "installed", "all"];
|
|
3
|
+
export type CheckMode = (typeof CHECK_MODES)[number];
|
|
3
4
|
export interface CheckOptions {
|
|
4
5
|
readonly srcRoot: string;
|
|
5
6
|
readonly mode?: CheckMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAKzB,MAAM,MAAM,SAAS,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAKzB,eAAO,MAAM,WAAW,wCAAyC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,YAAY,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;CACnD;AASD,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAsCvE"}
|
package/dist/check/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { collectLocalIds, loadLayout, } from "../layout/index.js";
|
|
|
8
8
|
import { defaultSources, discoverInstalled, indexInstalled, } from "../installed.js";
|
|
9
9
|
import { installedKindConfigs, localKindConfigs } from "./kinds.js";
|
|
10
10
|
import { closestMatch } from "./suggest.js";
|
|
11
|
+
export const CHECK_MODES = ["local", "installed", "all"];
|
|
11
12
|
export async function check(options) {
|
|
12
13
|
const mode = options.mode ?? "installed";
|
|
13
14
|
const kinds = new Map();
|
package/dist/check/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EACL,eAAe,EACf,UAAU,GAGX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,cAAc,GAEf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAmB,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -4,72 +4,104 @@ import { fileURLToPath } from "node:url";
|
|
|
4
4
|
import { defineCommand, runMain } from "citty";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { build } from "./build.js";
|
|
7
|
-
import { check } from "./check/index.js";
|
|
7
|
+
import { CHECK_MODES, check } from "./check/index.js";
|
|
8
|
+
import { initHarness } from "./init/index.js";
|
|
8
9
|
import { install, uninstall } from "./install/index.js";
|
|
9
10
|
import { lint } from "./lint.js";
|
|
11
|
+
import { builtinVendors } from "./vendor/builtins.js";
|
|
12
|
+
import { resolveVendors, resolveVendorsForRepo } from "./vendor/registry.js";
|
|
10
13
|
const PackageJsonSchema = z.object({ version: z.string().min(1) });
|
|
11
14
|
const pkgPath = fileURLToPath(new URL("../package.json", import.meta.url));
|
|
12
15
|
const pkg = PackageJsonSchema.parse(JSON.parse(readFileSync(pkgPath, "utf8")));
|
|
13
|
-
function
|
|
14
|
-
return value
|
|
15
|
-
}
|
|
16
|
-
function parseTargets(value) {
|
|
17
|
-
if (!value)
|
|
18
|
-
return undefined;
|
|
19
|
-
return value.split(",").map((p) => {
|
|
20
|
-
const trimmed = p.trim();
|
|
21
|
-
if (!isTarget(trimmed)) {
|
|
22
|
-
throw new Error(`Unknown target "${trimmed}". Valid: claude, codex`);
|
|
23
|
-
}
|
|
24
|
-
return trimmed;
|
|
25
|
-
});
|
|
16
|
+
function isCheckMode(value) {
|
|
17
|
+
return CHECK_MODES.includes(value);
|
|
26
18
|
}
|
|
27
19
|
function parseCheckMode(value) {
|
|
28
|
-
if (value
|
|
20
|
+
if (isCheckMode(value))
|
|
29
21
|
return value;
|
|
30
|
-
throw new Error(`Unknown check mode "${value}". Valid:
|
|
22
|
+
throw new Error(`Unknown check mode "${value}". Valid: ${CHECK_MODES.join(", ")}`);
|
|
31
23
|
}
|
|
32
24
|
const buildCmd = defineCommand({
|
|
33
|
-
meta: { name: "build", description: "Compile
|
|
25
|
+
meta: { name: "build", description: "Compile harness sources to dist/" },
|
|
34
26
|
args: {
|
|
35
27
|
src: { type: "string", default: "./src", description: "source root" },
|
|
36
28
|
out: { type: "string", default: "./dist", description: "output root" },
|
|
29
|
+
repo: { type: "string", default: ".", description: "repo root (where harness.yaml lives)" },
|
|
37
30
|
silent: { type: "boolean", default: false, description: "suppress success log" },
|
|
38
31
|
},
|
|
39
32
|
run: async ({ args }) => {
|
|
40
|
-
await build({
|
|
33
|
+
await build({
|
|
34
|
+
srcRoot: args.src,
|
|
35
|
+
outRoot: args.out,
|
|
36
|
+
repoRoot: args.repo,
|
|
37
|
+
silent: args.silent,
|
|
38
|
+
});
|
|
41
39
|
},
|
|
42
40
|
});
|
|
43
41
|
const installArgs = {
|
|
44
42
|
dist: { type: "string", default: "./dist", description: "dist root" },
|
|
45
|
-
|
|
46
|
-
type: "string",
|
|
47
|
-
description: "comma-separated targets: claude,codex (default: both)",
|
|
48
|
-
required: false,
|
|
49
|
-
},
|
|
43
|
+
repo: { type: "string", default: ".", description: "repo root (where harness.yaml lives)" },
|
|
50
44
|
silent: { type: "boolean", default: false, description: "suppress success log" },
|
|
45
|
+
"dry-run": { type: "boolean", default: false, description: "print plan without applying" },
|
|
51
46
|
};
|
|
52
47
|
const installCmd = defineCommand({
|
|
53
|
-
meta: { name: "install", description: "
|
|
48
|
+
meta: { name: "install", description: "Link configs + register plugins per declared vendor" },
|
|
54
49
|
args: installArgs,
|
|
55
50
|
run: async ({ args }) => {
|
|
56
|
-
const
|
|
51
|
+
const vendors = await resolveVendorsForRepo(args.repo);
|
|
57
52
|
await install({
|
|
58
53
|
distRoot: args.dist,
|
|
54
|
+
repoRoot: args.repo,
|
|
55
|
+
vendors,
|
|
59
56
|
silent: args.silent,
|
|
60
|
-
|
|
57
|
+
dryRun: args["dry-run"],
|
|
61
58
|
});
|
|
62
59
|
},
|
|
63
60
|
});
|
|
64
61
|
const uninstallCmd = defineCommand({
|
|
65
|
-
meta: { name: "uninstall", description: "Remove installed plugins
|
|
62
|
+
meta: { name: "uninstall", description: "Remove installed plugins per declared vendor" },
|
|
66
63
|
args: installArgs,
|
|
67
64
|
run: async ({ args }) => {
|
|
68
|
-
const
|
|
65
|
+
const vendors = await resolveVendorsForRepo(args.repo);
|
|
69
66
|
await uninstall({
|
|
70
67
|
distRoot: args.dist,
|
|
68
|
+
repoRoot: args.repo,
|
|
69
|
+
vendors,
|
|
70
|
+
silent: args.silent,
|
|
71
|
+
dryRun: args["dry-run"],
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
const initCmd = defineCommand({
|
|
76
|
+
meta: {
|
|
77
|
+
name: "init",
|
|
78
|
+
description: "Scaffold a harness repo (harness.yaml, src/configs, src/plugins)",
|
|
79
|
+
},
|
|
80
|
+
args: {
|
|
81
|
+
repo: { type: "string", default: ".", description: "repo root to scaffold into" },
|
|
82
|
+
marketplace: { type: "string", required: true, description: "marketplace name" },
|
|
83
|
+
vendors: {
|
|
84
|
+
type: "string",
|
|
85
|
+
required: true,
|
|
86
|
+
description: `comma-separated vendors (known: ${builtinVendors()
|
|
87
|
+
.map((v) => v.name)
|
|
88
|
+
.join(", ")})`,
|
|
89
|
+
},
|
|
90
|
+
silent: { type: "boolean", default: false, description: "suppress success log" },
|
|
91
|
+
},
|
|
92
|
+
run: async ({ args }) => {
|
|
93
|
+
const vendors = args.vendors
|
|
94
|
+
.split(",")
|
|
95
|
+
.map((v) => v.trim())
|
|
96
|
+
.filter((v) => v.length > 0);
|
|
97
|
+
if (vendors.length === 0)
|
|
98
|
+
throw new Error("--vendors must list at least one vendor");
|
|
99
|
+
resolveVendors(vendors, builtinVendors());
|
|
100
|
+
await initHarness({
|
|
101
|
+
repoRoot: args.repo,
|
|
102
|
+
marketplace: args.marketplace,
|
|
103
|
+
vendors,
|
|
71
104
|
silent: args.silent,
|
|
72
|
-
...(targets !== undefined ? { targets } : {}),
|
|
73
105
|
});
|
|
74
106
|
},
|
|
75
107
|
});
|
|
@@ -130,13 +162,14 @@ const lintCmd = defineCommand({
|
|
|
130
162
|
});
|
|
131
163
|
const main = defineCommand({
|
|
132
164
|
meta: {
|
|
133
|
-
name: "harness
|
|
165
|
+
name: "harness",
|
|
134
166
|
version: pkg.version,
|
|
135
|
-
description: "
|
|
167
|
+
description: "Build your own multi-agent harness: author plugins once, ship to every declared vendor.",
|
|
136
168
|
},
|
|
137
169
|
subCommands: {
|
|
138
170
|
build: buildCmd,
|
|
139
171
|
check: checkCmd,
|
|
172
|
+
init: initCmd,
|
|
140
173
|
install: installCmd,
|
|
141
174
|
lint: lintCmd,
|
|
142
175
|
uninstall: uninstallCmd,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAqC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAqC,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEnE,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3E,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAE/E,SAAS,WAAW,CAAC,KAAa;IAChC,OAAQ,WAAiC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,aAAa,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,QAAQ,GAAG,aAAa,CAAC;IAC7B,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,kCAAkC,EAAE;IACxE,IAAI,EAAE;QACJ,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE;QACrE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;QACtE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,sCAAsC,EAAE;QAC3F,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE;KACjF;IACD,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACtB,MAAM,KAAK,CAAC;YACV,OAAO,EAAE,IAAI,CAAC,GAAG;YACjB,OAAO,EAAE,IAAI,CAAC,GAAG;YACjB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;IACrE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,sCAAsC,EAAE;IAC3F,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAChF,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,6BAA6B,EAAE;CAClF,CAAC;AAEX,MAAM,UAAU,GAAG,aAAa,CAAC;IAC/B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qDAAqD,EAAE;IAC7F,IAAI,EAAE,WAAW;IACjB,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,OAAO,CAAC;YACZ,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,aAAa,CAAC;IACjC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,8CAA8C,EAAE;IACxF,IAAI,EAAE,WAAW;IACjB,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,SAAS,CAAC;YACd,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,aAAa,CAAC;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,kEAAkE;KAChF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,4BAA4B,EAAE;QACjF,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;QAChF,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,mCAAmC,cAAc,EAAE;iBAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,IAAI,CAAC,GAAG;SACjB;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE;KACjF;IACD,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;aACzB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACrF,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;QAC1C,MAAM,WAAW,CAAC;YAChB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,aAAa,CAAC;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,+DAA+D;KAC7E;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE;QACrE,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,2CAA2C;SACzD;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE;KACtF;IACD,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7F,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CACT,WAAW,KAAK,kBAAkB,MAAM,CAAC,cAAc,CAAC,MAAM,aAAa,SAAS,GAAG,CACxF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,YAAY,eAAe,CAAC,CAAC;YAC3D,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,aAAa,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,eAAe,CAAC,CAAe;IACtC,OAAO,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,OAAO,GAAG,aAAa,CAAC;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,qEAAqE;KACnF;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;QACtE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE;KACtF;IACD,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,aAAa,CAAC;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,WAAW,EACT,yFAAyF;KAC5F;IACD,WAAW,EAAE;QACX,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,YAAY;KACxB;CACF,CAAC,CAAC;AAEH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/command/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/command/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;EAQf,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEvD"}
|
package/dist/command/schema.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { description, kebabName } from "../schema-primitives.js";
|
|
2
3
|
export const CommandSchema = z
|
|
3
4
|
.object({
|
|
4
|
-
name:
|
|
5
|
-
|
|
6
|
-
.min(1)
|
|
7
|
-
.regex(/^[a-z0-9-]+$/, "name must be lowercase kebab-case"),
|
|
8
|
-
description: z
|
|
9
|
-
.string()
|
|
10
|
-
.min(1)
|
|
11
|
-
.max(1024)
|
|
12
|
-
.refine((s) => !s.includes("\n"), "description cannot contain newlines"),
|
|
5
|
+
name: kebabName,
|
|
6
|
+
description,
|
|
13
7
|
"argument-hint": z.string().min(1).optional(),
|
|
14
8
|
"allowed-tools": z.union([z.string().min(1), z.array(z.string().min(1))]).optional(),
|
|
15
9
|
model: z.string().min(1).optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/command/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/command/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,IAAI,EAAE,SAAS;IACf,WAAW;IACX,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACpC,CAAC;KACD,MAAM,EAAE,CAAC;AAIZ,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/compile/emit.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface CompileTreeOptions {
|
|
|
10
10
|
readonly bodyInvariants: readonly BodyInvariant[];
|
|
11
11
|
readonly contextFiles?: ReadonlySet<string>;
|
|
12
12
|
readonly owner: OwningPlugin;
|
|
13
|
+
readonly skipRelPaths?: ReadonlySet<string>;
|
|
13
14
|
}
|
|
14
15
|
export declare function compileTree(options: CompileTreeOptions): Promise<void>;
|
|
15
16
|
//# sourceMappingURL=emit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/compile/emit.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAInD,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/compile/emit.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAInD,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C5E"}
|