agent-composer 0.1.15 → 0.2.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.
Files changed (42) hide show
  1. package/README.md +98 -15
  2. package/composer.config.schema.json +24 -1
  3. package/dist/cli/dispatch-hint.d.ts +2 -0
  4. package/dist/cli/dispatch-hint.js +63 -0
  5. package/dist/cli/dispatch-hint.js.map +1 -0
  6. package/dist/cli/init.js +41 -2
  7. package/dist/cli/init.js.map +1 -1
  8. package/dist/cli/install-plugin.d.ts +3 -2
  9. package/dist/cli/install-plugin.js +34 -10
  10. package/dist/cli/install-plugin.js.map +1 -1
  11. package/dist/config/schema.d.ts +44 -0
  12. package/dist/config/schema.js +12 -1
  13. package/dist/config/schema.js.map +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/providers/CLIProvider.d.ts +16 -0
  17. package/dist/providers/CLIProvider.js +117 -3
  18. package/dist/providers/CLIProvider.js.map +1 -1
  19. package/dist/providers/IProvider.d.ts +1 -0
  20. package/dist/registry.js +4 -0
  21. package/dist/registry.js.map +1 -1
  22. package/dist/server.d.ts +6 -1
  23. package/dist/server.js +129 -15
  24. package/dist/server.js.map +1 -1
  25. package/dist/util/dispatchHint.d.ts +50 -0
  26. package/dist/util/dispatchHint.js +262 -0
  27. package/dist/util/dispatchHint.js.map +1 -0
  28. package/dist/util/handoff.d.ts +58 -0
  29. package/dist/util/handoff.js +107 -0
  30. package/dist/util/handoff.js.map +1 -0
  31. package/dist/util/projectToolResult.d.ts +13 -0
  32. package/dist/util/projectToolResult.js +169 -0
  33. package/dist/util/projectToolResult.js.map +1 -0
  34. package/package.json +3 -2
  35. package/plugin/composer-mastermind/README.md +24 -6
  36. package/plugin/composer-mastermind/agents/coder.md +7 -7
  37. package/plugin/composer-mastermind/agents/reviewer-claude.md +31 -0
  38. package/plugin/composer-mastermind/hooks/boundary_guard.sh +35 -5
  39. package/plugin/composer-mastermind/hooks/learn.sh +23 -0
  40. package/plugin/composer-mastermind/hooks/lint-on-save.sh +25 -1
  41. package/plugin/composer-mastermind/plugin.json +3 -2
  42. package/plugin/composer-mastermind/skills/composer-mastermind/SKILL.md +49 -19
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![npm](https://img.shields.io/badge/npm-agent--composer-blue)](#install) [![tests](https://img.shields.io/badge/vitest-376%20passing-brightgreen)](#contributing) [![license](https://img.shields.io/badge/license-MIT-lightgrey)](#license)
4
4
 
5
- > **Claude orchestrates. GLM and `agy` execute — and *apply* — off your Claude quota.** Composer is an MCP server + Claude Code plugin that lets the most-capable model hold the plan while cheaper models generate *and write* the code in their own context. Because the executors apply files themselves (instead of returning text the main session must re-ingest), composer measurably cuts Claude Max5 token burn (~64–71% on substantial multi-file tasks) while keeping the orchestrator's context lean and every change reviewable.
5
+ > **Claude orchestrates. GLM, Codex, and `agy` execute — and *apply* — off your Claude quota.** Composer is an MCP server + Claude Code plugin that lets the most-capable model hold the plan while worker models generate *and write* the code in their own context. Because the executors apply files themselves (instead of returning text the main session must re-ingest), composer keeps the orchestrator's context lean and every change reviewable.
6
6
 
7
7
  ## What it is
8
8
 
@@ -10,24 +10,26 @@ Two coordinated artefacts:
10
10
 
11
11
  | Artefact | Purpose |
12
12
  |---|---|
13
- | **`agent-composer`** (this npm package) | MCP server exposing `composer_research`, `composer_code`, `composer_code_chain`, `composer_code_cli`, `composer_review`. Wraps GLM (via Anthropic-compatible endpoint) and the `agy` CLI (Gemini). |
14
- | **`composer-mastermind`** (Claude Code plugin) | Orchestrator skill + three haiku-wrapped subagents (`coder`, `researcher`, `reviewer`) + `boundary_guard` PreToolUse hook + `/evolve` slash command. |
13
+ | **`agent-composer`** (this npm package) | MCP server exposing `composer_handoff_create`, `composer_research`, `composer_code`, `composer_code_chain`, `composer_code_cli`, `composer_review`, and `composer_review_claude`. Wraps GLM (via Anthropic-compatible endpoint) and CLI executors such as Codex, `agy`, or bounded `claude -p`. |
14
+ | **`composer-mastermind`** (Claude Code plugin) | Orchestrator skill + haiku-wrapped subagents (`coder`, `researcher`, `reviewer`, optional `reviewer-claude`) + `boundary_guard` PreToolUse hook + `/evolve` slash command. |
15
15
 
16
- Combined, they turn the main Claude session into a coordinator that never writes code, runs bash, or edits files directly. Work is dispatched through the three MCP tools; the boundary hook fails closed if a denied tool is requested.
16
+ Combined, they turn the main Claude session into a coordinator that never writes code or edits files directly. The main session may use Bash for inspection and verification, while code changes are dispatched through Composer MCP tools. The boundary hook fails closed if a denied file-mutating tool is requested.
17
17
 
18
18
  ## Tools
19
19
 
20
- Five MCP tools, all routing work off the main Claude session:
20
+ Seven MCP tools, all routing work off the main Claude session:
21
21
 
22
22
  | Tool | Executor | What it does |
23
23
  |---|---|---|
24
- | `composer_code_chain` | GLM authors → server applies | **Default for substantial edits.** GLM writes the complete files off-CC (`FILE: <path>` + fenced blocks); the MCP server applies them deterministically off-CC; the orchestrator only relays a summary. ~71% fewer total-CC tokens on multi-file tasks. |
25
- | `composer_code_cli` | agy (Gemini CLI) | agy generates **and applies** the files itself off-CC, returns a summary. ~64% fewer total-CC tokens. |
24
+ | `composer_handoff_create` | Composer server | Writes a compact shared packet under `.composer/handoffs/`; pass `handoffPath` to Codex, GLM, agy, researcher, and reviewer calls so every worker shares the same objective and constraints. |
25
+ | `composer_code_cli` | Codex CLI or agy | **Default for substantial edits.** The configured CLI executor generates **and applies** the files itself off-CC, from the MCP server root, then returns a summary. Use Codex here for complex coding work. |
26
+ | `composer_code_chain` | GLM authors → server applies | GLM fallback. GLM writes the complete files off-CC (`FILE: <path>` + fenced blocks); the MCP server applies them deterministically off-CC; the orchestrator only relays a summary. ~71% fewer total-CC tokens on multi-file tasks. |
26
27
  | `composer_code` | GLM | Returns a patch as text; the caller integrates it (patch-only / legacy). |
27
- | `composer_research` | agy | Research, docs, web lookup → structured summary. |
28
+ | `composer_research` | Codex CLI search | Research, docs, web lookup → structured summary. Runs Codex with live web search and a read-only sandbox. |
28
29
  | `composer_review` | agy | Reviews the diff **and runs `tsc`/tests off-CC**; use a reviewer model different from the author for cross-model rigor (e.g. GLM writes → agy reviews). |
30
+ | `composer_review_claude` | Claude Code CLI | Premium second-opinion review for high-risk/security-sensitive diffs or explicit user requests. Default config runs bounded `claude -p --model opus` with read/test tools only and `--max-budget-usd 0.50`. |
29
31
 
30
- **Why "off-CC" matters:** GLM (z.ai) and agy (Gemini) run on *separate* quotas. Generating and *applying* code in their own context — not returning text the main Claude session must re-ingest — is what actually preserves your Max5 quota. The eval harness scores on **total-CC tokens** (every Claude model in a run = real Max5 burn), with a correctness gate (tsc/tests) and N-run averaging.
32
+ **Why "off-CC" matters:** GLM (z.ai), Codex, and agy run on *separate* quotas. Generating and *applying* code in their own context — not returning text the main Claude session must re-ingest — is what actually preserves your Max5 quota. The eval harness scores on **total-CC tokens** (every Claude model in a run = real Max5 burn), with a correctness gate (tsc/tests) and N-run averaging.
31
33
 
32
34
  ## Install
33
35
 
@@ -73,10 +75,17 @@ Two files at the consumer-project root, both gitignored or partially gitignored:
73
75
  ```json
74
76
  {
75
77
  "roles": {
76
- "researcher": { "provider": "cli", "cli": ["agy", "--dangerously-skip-permissions", "-p"] },
78
+ "researcher": { "provider": "cli", "cli": ["codex", "--search", "--ask-for-approval", "never", "exec", "--ephemeral", "--sandbox", "read-only"], "timeoutMs": 180000, "retries": 0 },
77
79
  "coder": { "provider": "anthropic", "baseUrl": "https://api.z.ai/api/anthropic", "apiKeyEnv": "ANTHROPIC_AUTH_TOKEN" },
78
- "coderCli": { "provider": "cli", "cli": ["agy", "--dangerously-skip-permissions", "-p"] },
79
- "reviewer": { "provider": "cli", "cli": ["agy", "--dangerously-skip-permissions", "-p"] }
80
+ "coderCli": { "provider": "cli", "cli": ["codex", "exec", "--ephemeral", "--sandbox", "workspace-write", "-c", "approval_policy=\"never\""], "retries": 0 },
81
+ "reviewer": { "provider": "cli", "cli": ["agy", "--dangerously-skip-permissions", "--print-timeout", "90s", "-p"], "timeoutMs": 120000, "retries": 0 },
82
+ "reviewerClaude": {
83
+ "provider": "cli",
84
+ "model": "claude-opus-review",
85
+ "cli": ["claude", "-p", "--model", "opus", "--permission-mode", "bypassPermissions", "--setting-sources", "project", "--disable-slash-commands", "--no-session-persistence", "--max-budget-usd", "0.50", "--tools", "Read,Glob,Grep,Bash", "--allowedTools", "Read,Glob,Grep,Bash(npx tsc --noEmit),Bash(npm test),Bash(npm run test:*),Bash(npx vitest*)"],
86
+ "timeoutMs": 300000,
87
+ "retries": 0
88
+ }
80
89
  },
81
90
  "spendAuthorization": {
82
91
  "mode": "interactive",
@@ -86,6 +95,19 @@ Two files at the consumer-project root, both gitignored or partially gitignored:
86
95
  }
87
96
  ```
88
97
 
98
+ For the old agy-only coding path, set `coderCli.cli` back to
99
+ `["agy", "--dangerously-skip-permissions", "-p"]`. For the old agy-only
100
+ research path, set `researcher.cli` to the same agy argv. The provider
101
+ contract does not change; Codex is piloted as the existing CLI executor.
102
+ When `coderCli` or `researcher` use `codex ... exec`, Composer captures
103
+ Codex's final message with `--output-last-message` automatically, so the
104
+ main session receives a short outcome instead of raw event output. Composer
105
+ refuses explicit `codex exec --sandbox danger-full-access` and
106
+ `--dangerously-bypass-approvals-and-sandbox` configs by default; set
107
+ `COMPOSER_ALLOW_DANGEROUS_CODEX=1` only inside an external sandbox.
108
+ Keep `reviewer` as the default gate. Use `reviewerClaude` only when the user
109
+ asks for Claude review or when a risky diff needs an expensive second opinion.
110
+
89
111
  **`.env.json`** (NEVER commit) — credentials only:
90
112
 
91
113
  ```json
@@ -97,6 +119,27 @@ Two files at the consumer-project root, both gitignored or partially gitignored:
97
119
 
98
120
  The MCP server reads `.env.json` via `fs.readFileSync` — it is **never** exposed to the orchestrator session.
99
121
 
122
+ ### Soft-disable Composer
123
+
124
+ Composer hooks can be disabled without editing Claude Code settings:
125
+
126
+ ```bash
127
+ # Disable for one launch
128
+ COMPOSER_ENABLED=0 claude
129
+
130
+ # Disable globally for already-configured hooks
131
+ touch ~/.claude/composer.disabled
132
+
133
+ # Re-enable globally
134
+ rm -f ~/.claude/composer.disabled
135
+ ```
136
+
137
+ Project-local disable is also supported with `touch .composer-disabled`.
138
+ For scripts or tests, set `COMPOSER_DISABLED_FILE=/path/to/sentinel`.
139
+ This disables Composer hooks immediately. To fully suppress skill autoload,
140
+ also set `"composer-mastermind": "off"` in Claude Code `skillOverrides` and
141
+ restart CC.
142
+
100
143
  ## How dispatch works
101
144
 
102
145
  Inside a Claude Code session, dispatch flow:
@@ -106,15 +149,55 @@ User asks for code work
106
149
 
107
150
  Composer-mastermind SKILL.md picks a subagent
108
151
 
109
- Task → coder.md / researcher.md / reviewer.md
152
+ Task → coder.md / researcher.md / reviewer.md / reviewer-claude.md
110
153
 
111
154
  Subagent calls mcp__composer__composer_code (etc.)
112
155
 
113
- MCP server routes to GLM (anthropic) or agy CLI (cli) per composer.config.json
156
+ MCP server routes to GLM (anthropic) or Codex/agy CLI (cli) per composer.config.json
114
157
 
115
158
  Subagent returns summary; orchestrator integrates
116
159
  ```
117
160
 
161
+ Composer also emits a deterministic dispatch hint for `Task`/`Agent` calls
162
+ when `scripts/dispatch_guard.sh` is installed. The hint classifies the
163
+ request before the worker starts, so the orchestrator can choose a cheaper
164
+ lane when the task is simple and reserve expensive paths for the cases that
165
+ need isolation or extra reasoning.
166
+
167
+ | Task shape | Default route |
168
+ |---|---|
169
+ | Tiny rename/comment/non-mutating request | Inline |
170
+ | Small self-contained diff review | Inline review |
171
+ | File mutation with path references | `composer_code_cli` |
172
+ | Research-first implementation | Researcher brief, then `composer_code_cli` |
173
+ | Security or large review | `composer_review` first |
174
+ | Explicit premium/Claude review | `composer_review_claude` |
175
+
176
+ ## Measuring trust
177
+
178
+ Composer's route-confidence harness compares the same tasks across direct
179
+ Claude, GLM-chain, and Codex-CLI routes. The `cc-only` route removes the
180
+ worktree-local `.claude/` directory before running so the project plugin does
181
+ not bias the baseline. It writes JSONL records with
182
+ success, route adherence, typecheck status, changed-file count, wall time,
183
+ and **total Claude Code tokens** from `modelUsage`.
184
+
185
+ ```bash
186
+ # Build first so the MCP server entry exists.
187
+ npm run build
188
+
189
+ # Run one representative task across all routes, three replicas each.
190
+ npm run eval:routes -- --task t8-csv-module --runs 3
191
+
192
+ # Re-summarize an existing JSONL file without spending more tokens.
193
+ npm run eval:routes -- --summary-only --input /tmp/composer-route-runs.jsonl
194
+ ```
195
+
196
+ The headline checks are: `composer-codex-cli` should preserve or improve
197
+ success/typecheck rate while lowering median total-CC tokens versus
198
+ `cc-only`; `routeHonored` must stay high enough to prove the orchestrator is
199
+ actually using the route under test.
200
+
118
201
  Five resilience layers ensure unattended `/evolve` runs cannot damage the host repo:
119
202
 
120
203
  1. **Sandbox isolation** — each per-task eval runs in a throwaway `git worktree` at `/tmp/composer-eval-<pid>-<taskId>`
@@ -128,7 +211,7 @@ Five resilience layers ensure unattended `/evolve` runs cannot damage the host r
128
211
  - **`agent-composer` publish surface**: `dist/`, `composer.config.schema.json`, `README.md`, `package.json`. No tests, no source, no `.env*` (gitignored). 34 KB tarball.
129
212
  - **Spend caps**: per-call (`maxUsdPerCall`, default $0.50) and per-session (`maxUsdPerSession`, default $5.00) enforced in the runner before any external API call. Configurable per project.
130
213
  - **Self-evolution scope** (see ADR 0003): five layers gate any SKILL.md mutation — diff-path regex, text deny-list, stat gate, human-promote-only, audit trail. Auto-promote is permanently off the table.
131
- - **Boundary hook**: PreToolUse fail-closed denial of `Edit`/`Write`/`Bash`/`NotebookEdit` in the orchestrator session. The C0.5 subagent tools allowlist is append-only.
214
+ - **Boundary hook**: PreToolUse fail-closed denial of `Edit`/`Update`/`Write`/`NotebookEdit` in the orchestrator session, plus MCP write/edit/exec variants. Native Bash is allowed for inspection and verification. The C0.5 subagent tools allowlist is append-only.
132
215
 
133
216
  ## Contributing
134
217
 
@@ -27,6 +27,9 @@
27
27
  "reviewer": {
28
28
  "$ref": "#/$defs/roleConfig"
29
29
  },
30
+ "reviewerClaude": {
31
+ "$ref": "#/$defs/roleConfig"
32
+ },
30
33
  "coderCli": {
31
34
  "$ref": "#/$defs/roleConfig"
32
35
  }
@@ -105,7 +108,7 @@
105
108
  "type": "string"
106
109
  },
107
110
  "minItems": 1,
108
- "description": "argv array for CLIProvider, e.g. [\"agy\",\"--dangerously-skip-permissions\",\"-p\"]. Passed to child_process.execFile — NEVER shell-interpolated."
111
+ "description": "argv array for CLIProvider, e.g. [\"codex\",\"exec\",\"--sandbox\",\"workspace-write\",\"-c\",\"approval_policy=\\\"never\\\"\"] for coding, [\"codex\",\"--search\",\"--ask-for-approval\",\"never\",\"exec\",\"--sandbox\",\"read-only\"] for research, or [\"agy\",\"--dangerously-skip-permissions\",\"-p\"] for agy. The prompt is appended as the final argv item — NEVER shell-interpolated. For `codex exec`, including Codex global flags before `exec`, CLIProvider auto-captures the final message with --output-last-message unless the flag is already present."
109
112
  },
110
113
  "maxTokens": {
111
114
  "type": "integer",
@@ -134,6 +137,26 @@
134
137
  "description": "Max tokens the model may spend on internal reasoning. Required when type=enabled. Anthropic SDK minimum is 1024."
135
138
  }
136
139
  }
140
+ },
141
+ "timeoutMs": {
142
+ "type": "integer",
143
+ "minimum": 1,
144
+ "description": "CLIProvider wall-clock timeout in milliseconds for one attempt. Ignored by non-CLI providers."
145
+ },
146
+ "maxBuffer": {
147
+ "type": "integer",
148
+ "minimum": 1,
149
+ "description": "CLIProvider stdout/stderr buffer cap in characters before the child process is terminated. Ignored by non-CLI providers."
150
+ },
151
+ "retries": {
152
+ "type": "integer",
153
+ "minimum": 0,
154
+ "description": "CLIProvider retry count after transient failures. Use 0 for fail-fast dispatches such as reviewers."
155
+ },
156
+ "maxResultChars": {
157
+ "type": "integer",
158
+ "minimum": 0,
159
+ "description": "CLIProvider result projection cap in characters. Set 0 to disable result projection. Ignored by non-CLI providers."
137
160
  }
138
161
  }
139
162
  }
@@ -0,0 +1,2 @@
1
+ import { type DispatchHint } from "../util/dispatchHint.js";
2
+ export declare function computeHintFromHookInput(raw: string): DispatchHint;
@@ -0,0 +1,63 @@
1
+ import { z } from "zod";
2
+ import { classifyDispatch, neutralDispatchHint, } from "../util/dispatchHint.js";
3
+ const HookInputSchema = z.object({
4
+ tool_input: z.object({
5
+ prompt: z.string().optional(),
6
+ subagent_type: z.string().optional(),
7
+ description: z.string().optional(),
8
+ }).optional(),
9
+ }).passthrough();
10
+ export function computeHintFromHookInput(raw) {
11
+ try {
12
+ if (raw.trim().length === 0)
13
+ return neutralDispatchHint();
14
+ const parsedJson = JSON.parse(raw);
15
+ const parsed = HookInputSchema.safeParse(parsedJson);
16
+ if (!parsed.success || parsed.data.tool_input === undefined) {
17
+ return neutralDispatchHint();
18
+ }
19
+ const prompt = parsed.data.tool_input.prompt;
20
+ if (prompt === undefined || prompt.trim().length === 0) {
21
+ return neutralDispatchHint();
22
+ }
23
+ return classifyDispatch({
24
+ prompt,
25
+ subagentType: parsed.data.tool_input.subagent_type,
26
+ description: parsed.data.tool_input.description,
27
+ });
28
+ }
29
+ catch {
30
+ return neutralDispatchHint();
31
+ }
32
+ }
33
+ async function main() {
34
+ try {
35
+ const raw = await readStdin();
36
+ process.stdout.write(`${JSON.stringify(computeHintFromHookInput(raw))}\n`);
37
+ }
38
+ catch {
39
+ process.stdout.write(`${JSON.stringify(neutralDispatchHint())}\n`);
40
+ }
41
+ }
42
+ function readStdin() {
43
+ return new Promise((resolve, reject) => {
44
+ let raw = "";
45
+ process.stdin.setEncoding("utf8");
46
+ process.stdin.on("data", (chunk) => {
47
+ raw += chunk;
48
+ });
49
+ process.stdin.on("end", () => {
50
+ resolve(raw);
51
+ });
52
+ process.stdin.on("error", (error) => {
53
+ reject(error);
54
+ });
55
+ });
56
+ }
57
+ if (import.meta.url === `file://${process.argv[1]}`) {
58
+ main().catch(() => {
59
+ process.stdout.write(`${JSON.stringify(neutralDispatchHint())}\n`);
60
+ process.exit(0);
61
+ });
62
+ }
63
+ //# sourceMappingURL=dispatch-hint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-hint.js","sourceRoot":"","sources":["../../src/cli/dispatch-hint.ts"],"names":[],"mappings":"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"}
package/dist/cli/init.js CHANGED
@@ -16,9 +16,48 @@ import { globalConfigDir } from "../config/paths.js";
16
16
  import { installPluginAssets } from "./install-plugin.js";
17
17
  const DEFAULT_COMPOSER_CONFIG = {
18
18
  roles: {
19
- researcher: { provider: "cli", cli: ["agy", "--dangerously-skip-permissions", "-p"] },
19
+ researcher: {
20
+ provider: "cli",
21
+ cli: ["codex", "--search", "--ask-for-approval", "never", "exec", "--ephemeral", "--sandbox", "read-only"],
22
+ timeoutMs: 180000,
23
+ retries: 0,
24
+ },
20
25
  coder: { provider: "anthropic", baseUrl: "https://api.z.ai/api/anthropic", apiKeyEnv: "ANTHROPIC_AUTH_TOKEN" },
21
- reviewer: { provider: "cli", cli: ["agy", "--dangerously-skip-permissions", "-p"] },
26
+ coderCli: {
27
+ provider: "cli",
28
+ cli: ["codex", "exec", "--ephemeral", "--sandbox", "workspace-write", "-c", "approval_policy=\"never\""],
29
+ retries: 0,
30
+ },
31
+ reviewer: {
32
+ provider: "cli",
33
+ cli: ["agy", "--dangerously-skip-permissions", "--print-timeout", "90s", "-p"],
34
+ timeoutMs: 120000,
35
+ retries: 0,
36
+ },
37
+ reviewerClaude: {
38
+ provider: "cli",
39
+ model: "claude-opus-review",
40
+ cli: [
41
+ "claude",
42
+ "-p",
43
+ "--model",
44
+ "opus",
45
+ "--permission-mode",
46
+ "bypassPermissions",
47
+ "--setting-sources",
48
+ "project",
49
+ "--disable-slash-commands",
50
+ "--no-session-persistence",
51
+ "--max-budget-usd",
52
+ "0.50",
53
+ "--tools",
54
+ "Read,Glob,Grep,Bash",
55
+ "--allowedTools",
56
+ "Read,Glob,Grep,Bash(npx tsc --noEmit),Bash(npm test),Bash(npm run test:*),Bash(npx vitest*)",
57
+ ],
58
+ timeoutMs: 300000,
59
+ retries: 0,
60
+ },
22
61
  },
23
62
  spendAuthorization: {
24
63
  mode: "interactive",
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -12,11 +12,12 @@ export interface InstallPluginOptions {
12
12
  }
13
13
  /**
14
14
  * Copy plugin assets into Claude Code user-level directories so they
15
- * auto-load in every project. Idempotent never overwrites a present file.
15
+ * auto-load in every project. User-authored SKILL.md stays preserved; packaged
16
+ * agents, commands, and hooks refresh so stale installs pick up tool allowlists.
16
17
  *
17
18
  * Layout written:
18
19
  * <claudeHome>/skills/composer-mastermind/SKILL.md
19
- * <claudeHome>/agents/{coder,researcher,reviewer}.md
20
+ * <claudeHome>/agents/{coder,researcher,reviewer,reviewer-claude}.md
20
21
  * <claudeHome>/commands/evolve.md
21
22
  * <claudeHome>/hooks/composer-boundary_guard.sh
22
23
  * <claudeHome>/settings.json — patched with PreToolUse entry
@@ -19,11 +19,12 @@ export function defaultPluginSourceDir() {
19
19
  }
20
20
  /**
21
21
  * Copy plugin assets into Claude Code user-level directories so they
22
- * auto-load in every project. Idempotent never overwrites a present file.
22
+ * auto-load in every project. User-authored SKILL.md stays preserved; packaged
23
+ * agents, commands, and hooks refresh so stale installs pick up tool allowlists.
23
24
  *
24
25
  * Layout written:
25
26
  * <claudeHome>/skills/composer-mastermind/SKILL.md
26
- * <claudeHome>/agents/{coder,researcher,reviewer}.md
27
+ * <claudeHome>/agents/{coder,researcher,reviewer,reviewer-claude}.md
27
28
  * <claudeHome>/commands/evolve.md
28
29
  * <claudeHome>/hooks/composer-boundary_guard.sh
29
30
  * <claudeHome>/settings.json — patched with PreToolUse entry
@@ -38,7 +39,7 @@ export function installPluginAssets(opts) {
38
39
  for (const file of readdirSync(agentsSrc).sort()) {
39
40
  if (!file.endsWith(".md"))
40
41
  continue;
41
- steps.push(copyOne(join(agentsSrc, file), join(claudeHome, "agents", file), `agent ${file}`));
42
+ steps.push(copyOne(join(agentsSrc, file), join(claudeHome, "agents", file), `agent ${file}`, { overwrite: true }));
42
43
  }
43
44
  }
44
45
  const commandsSrc = join(src, "commands");
@@ -46,13 +47,13 @@ export function installPluginAssets(opts) {
46
47
  for (const file of readdirSync(commandsSrc).sort()) {
47
48
  if (!file.endsWith(".md"))
48
49
  continue;
49
- steps.push(copyOne(join(commandsSrc, file), join(claudeHome, "commands", file), `command /${file.replace(/\.md$/, "")}`));
50
+ steps.push(copyOne(join(commandsSrc, file), join(claudeHome, "commands", file), `command /${file.replace(/\.md$/, "")}`, { overwrite: true }));
50
51
  }
51
52
  }
52
53
  // Boundary hook — copy script + register in settings.json
53
54
  const hookSrc = join(src, "hooks", "boundary_guard.sh");
54
55
  const hookDest = join(claudeHome, "hooks", "composer-boundary_guard.sh");
55
- steps.push(copyOne(hookSrc, hookDest, "composer boundary_guard.sh hook script", { exec: true }));
56
+ steps.push(copyOne(hookSrc, hookDest, "composer boundary_guard.sh hook script", { exec: true, overwrite: true }));
56
57
  steps.push(wireBoundaryHook(claudeHome, hookDest));
57
58
  return steps;
58
59
  }
@@ -61,7 +62,18 @@ function copyOne(srcPath, destPath, label, opts = {}) {
61
62
  return { name: label, status: "skipped", reason: `source missing: ${srcPath}` };
62
63
  }
63
64
  if (existsSync(destPath)) {
64
- return { name: label, status: "skipped", path: destPath, reason: "already present; not overwritten" };
65
+ if (!opts.overwrite) {
66
+ return { name: label, status: "skipped", path: destPath, reason: "already present; not overwritten" };
67
+ }
68
+ if (readFileSync(destPath, "utf8") === readFileSync(srcPath, "utf8")) {
69
+ if (opts.exec)
70
+ chmodSync(destPath, 0o755);
71
+ return { name: label, status: "skipped", path: destPath, reason: "already current" };
72
+ }
73
+ copyFileSync(srcPath, destPath);
74
+ if (opts.exec)
75
+ chmodSync(destPath, 0o755);
76
+ return { name: label, status: "updated", path: destPath, reason: "refreshed from packaged plugin asset" };
65
77
  }
66
78
  mkdirSync(dirname(destPath), { recursive: true });
67
79
  copyFileSync(srcPath, destPath);
@@ -75,7 +87,7 @@ function copyOne(srcPath, destPath, label, opts = {}) {
75
87
  */
76
88
  function wireBoundaryHook(claudeHome, hookScriptPath) {
77
89
  const settingsPath = join(claudeHome, "settings.json");
78
- const matcher = "Bash|Edit|Write|NotebookEdit";
90
+ const matcher = "Edit|Update|Write|NotebookEdit";
79
91
  const entry = {
80
92
  matcher,
81
93
  hooks: [{ type: "command", command: hookScriptPath }],
@@ -100,9 +112,21 @@ function wireBoundaryHook(claudeHome, hookScriptPath) {
100
112
  }
101
113
  const hooks = current["hooks"] ?? {};
102
114
  const preToolUse = hooks["PreToolUse"] ?? [];
103
- // Idempotency: skip if any existing PreToolUse entry already references our script.
104
- const alreadyWired = preToolUse.some((e) => e.hooks?.some((h) => h.command === hookScriptPath));
105
- if (alreadyWired) {
115
+ const composerEntryIndex = preToolUse.findIndex((e) => e.hooks?.some((h) => h.command === hookScriptPath));
116
+ if (composerEntryIndex >= 0) {
117
+ const existing = preToolUse[composerEntryIndex];
118
+ if (existing.matcher !== matcher) {
119
+ const nextPreToolUse = preToolUse.map((e, i) => i === composerEntryIndex ? { ...e, matcher } : e);
120
+ const nextHooks = { ...hooks, PreToolUse: nextPreToolUse };
121
+ const next = { ...current, hooks: nextHooks };
122
+ writeFileSync(settingsPath, JSON.stringify(next, null, 2) + "\n", "utf8");
123
+ return {
124
+ name: "~/.claude/settings.json boundary hook",
125
+ status: "updated",
126
+ path: settingsPath,
127
+ reason: `refreshed PreToolUse matcher → ${matcher}`,
128
+ };
129
+ }
106
130
  return {
107
131
  name: "~/.claude/settings.json boundary hook",
108
132
  status: "skipped",
@@ -1 +1 @@
1
- {"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../src/cli/install-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../src/cli/install-plugin.ts"],"names":[],"mappings":"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"}
@@ -31,12 +31,17 @@ export declare const RoleConfigSchema: z.ZodObject<{
31
31
  }, z.core.$strict>, z.ZodObject<{
32
32
  type: z.ZodLiteral<"disabled">;
33
33
  }, z.core.$strict>], "type">>;
34
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
35
+ maxBuffer: z.ZodOptional<z.ZodNumber>;
36
+ retries: z.ZodOptional<z.ZodNumber>;
37
+ maxResultChars: z.ZodOptional<z.ZodNumber>;
34
38
  }, z.core.$strict>;
35
39
  export type RoleConfig = z.infer<typeof RoleConfigSchema>;
36
40
  export declare const RoleNameSchema: z.ZodEnum<{
37
41
  researcher: "researcher";
38
42
  coder: "coder";
39
43
  reviewer: "reviewer";
44
+ reviewerClaude: "reviewerClaude";
40
45
  coderCli: "coderCli";
41
46
  }>;
42
47
  export type RoleName = z.infer<typeof RoleNameSchema>;
@@ -76,6 +81,10 @@ export declare const ComposerConfigSchema: z.ZodObject<{
76
81
  }, z.core.$strict>, z.ZodObject<{
77
82
  type: z.ZodLiteral<"disabled">;
78
83
  }, z.core.$strict>], "type">>;
84
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
85
+ maxBuffer: z.ZodOptional<z.ZodNumber>;
86
+ retries: z.ZodOptional<z.ZodNumber>;
87
+ maxResultChars: z.ZodOptional<z.ZodNumber>;
79
88
  }, z.core.$strict>;
80
89
  coder: z.ZodObject<{
81
90
  provider: z.ZodEnum<{
@@ -95,6 +104,10 @@ export declare const ComposerConfigSchema: z.ZodObject<{
95
104
  }, z.core.$strict>, z.ZodObject<{
96
105
  type: z.ZodLiteral<"disabled">;
97
106
  }, z.core.$strict>], "type">>;
107
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
108
+ maxBuffer: z.ZodOptional<z.ZodNumber>;
109
+ retries: z.ZodOptional<z.ZodNumber>;
110
+ maxResultChars: z.ZodOptional<z.ZodNumber>;
98
111
  }, z.core.$strict>;
99
112
  reviewer: z.ZodObject<{
100
113
  provider: z.ZodEnum<{
@@ -114,7 +127,34 @@ export declare const ComposerConfigSchema: z.ZodObject<{
114
127
  }, z.core.$strict>, z.ZodObject<{
115
128
  type: z.ZodLiteral<"disabled">;
116
129
  }, z.core.$strict>], "type">>;
130
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
131
+ maxBuffer: z.ZodOptional<z.ZodNumber>;
132
+ retries: z.ZodOptional<z.ZodNumber>;
133
+ maxResultChars: z.ZodOptional<z.ZodNumber>;
117
134
  }, z.core.$strict>;
135
+ reviewerClaude: z.ZodOptional<z.ZodObject<{
136
+ provider: z.ZodEnum<{
137
+ anthropic: "anthropic";
138
+ openai_compatible: "openai_compatible";
139
+ cli: "cli";
140
+ mock: "mock";
141
+ }>;
142
+ apiKeyEnv: z.ZodOptional<z.ZodString>;
143
+ baseUrl: z.ZodOptional<z.ZodURL>;
144
+ model: z.ZodOptional<z.ZodString>;
145
+ cli: z.ZodOptional<z.ZodArray<z.ZodString>>;
146
+ maxTokens: z.ZodOptional<z.ZodNumber>;
147
+ thinking: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
148
+ type: z.ZodLiteral<"enabled">;
149
+ budgetTokens: z.ZodNumber;
150
+ }, z.core.$strict>, z.ZodObject<{
151
+ type: z.ZodLiteral<"disabled">;
152
+ }, z.core.$strict>], "type">>;
153
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
154
+ maxBuffer: z.ZodOptional<z.ZodNumber>;
155
+ retries: z.ZodOptional<z.ZodNumber>;
156
+ maxResultChars: z.ZodOptional<z.ZodNumber>;
157
+ }, z.core.$strict>>;
118
158
  coderCli: z.ZodOptional<z.ZodObject<{
119
159
  provider: z.ZodEnum<{
120
160
  anthropic: "anthropic";
@@ -133,6 +173,10 @@ export declare const ComposerConfigSchema: z.ZodObject<{
133
173
  }, z.core.$strict>, z.ZodObject<{
134
174
  type: z.ZodLiteral<"disabled">;
135
175
  }, z.core.$strict>], "type">>;
176
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
177
+ maxBuffer: z.ZodOptional<z.ZodNumber>;
178
+ retries: z.ZodOptional<z.ZodNumber>;
179
+ maxResultChars: z.ZodOptional<z.ZodNumber>;
136
180
  }, z.core.$strict>>;
137
181
  }, z.core.$strict>;
138
182
  spendAuthorization: z.ZodOptional<z.ZodObject<{