@gempack/squad-mcp 0.10.0 → 0.10.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +2 -2
- package/CHANGELOG.md +29 -0
- package/dist/index.js +1 -1
- package/dist/runs/aggregate.js +6 -9
- package/dist/runs/aggregate.js.map +1 -1
- package/dist/runs/store.d.ts +14 -0
- package/dist/runs/store.js +54 -2
- package/dist/runs/store.js.map +1 -1
- package/dist/tools/list-runs.js +2 -2
- package/dist/tools/list-runs.js.map +1 -1
- package/dist/tools/record-run.js +21 -15
- package/dist/tools/record-run.js.map +1 -1
- package/dist/tools/registry.js +11 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/util/path-safety.d.ts +36 -0
- package/dist/util/path-safety.js +76 -0
- package/dist/util/path-safety.js.map +1 -1
- package/package.json +1 -1
- package/skills/brainstorm/SKILL.md +70 -7
- package/skills/question/SKILL.md +73 -1
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"repo": "ggemba/squad-mcp"
|
|
13
13
|
},
|
|
14
14
|
"description": "Squad-dev workflow: deterministic classification, risk scoring, agent selection, advisory orchestration over MCP, native subagents, plus /squad:implement and /squad:review slash commands.",
|
|
15
|
-
"version": "0.10.
|
|
15
|
+
"version": "0.10.1",
|
|
16
16
|
"license": "Apache-2.0",
|
|
17
17
|
"homepage": "https://github.com/ggemba/squad-mcp"
|
|
18
18
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "squad",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "Squad-dev workflow as a Claude Code plugin: classification, risk scoring, agent selection, advisory orchestration. Bundles an MCP server, native subagents, and the /squad:implement and /squad:review slash commands.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"mcpServers": {
|
|
40
40
|
"squad": {
|
|
41
41
|
"command": "npx",
|
|
42
|
-
"args": ["-y", "@gempack/squad-mcp@0.10.
|
|
42
|
+
"args": ["-y", "@gempack/squad-mcp@0.10.1"]
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,35 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.10.1] - 2026-05-11
|
|
11
|
+
|
|
12
|
+
Patch release: pays the technical debt accumulated across v0.9.0 + v0.10.0. No new features, no schema change, no user-visible behavior change beyond `/squad:stats` now showing `/squad:question` and `/squad:brainstorm` invocations (they were in the enum but the SKILL files never emitted journal rows).
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- **Telemetry wired in `/squad:question` and `/squad:brainstorm`** — both SKILL.md files now emit the same two-phase `record_run` pair the squad + debug skills use. Closes the doc-vs-code drift that `CHANGELOG.md` v0.9.0 + `skills/squad/SKILL.md` documented but the question/brainstorm SKILLs never implemented.
|
|
17
|
+
- **`record_run` MCP tool description + internal doc-comment** updated to list all four legitimate callers (squad, debug, question, brainstorm). The contract surface was stale at v0.10.0 (listed only squad + debug).
|
|
18
|
+
- **`mode_warning.message` sanitised at the writer** (`appendRun`) in addition to the renderer. Direct file inspection (`cat .squad/runs.jsonl`) used to see raw ESC/C0/C1 bytes; now those bytes never reach disk. Defense in depth — the aggregator's render-time `stripControlChars` continues to apply for any field the writer doesn't sanitise.
|
|
19
|
+
- **`tests/runs-store.test.ts` mtime-invalidation test** dropped the 12 ms `setTimeout` (was a guard against ext4 1 s mtime granularity on coarse-mtime CI; superseded by v0.9.0's `(mtimeMs, size)` cache key plus the in-process `cache.delete` in `appendRun`).
|
|
20
|
+
- **`tests/runs-e2e.test.ts` lifecycle assert** now checks `health.completed`, `health.in_flight`, `health.aborted`, and `health.synthesized_aborted` — previously only `total_folded`, which would silently miss a foldById tiebreaker regression that picked the wrong row.
|
|
21
|
+
- **Workspace path leak in `SquadError` surface** — added `pathSafe(str)` + `pathSafeDetails(obj)` helpers in `src/util/path-safety.ts` and wired them at the MCP dispatch boundary (`src/tools/registry.ts:dispatchTool`). Absolute paths in `err.message` AND `err.details` are truncated to last 3 segments with `…/` prefix before crossing the wire to the MCP client. In-process errors still carry full paths for local debug.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- **`InvocationEnum` lifted to a shared `INVOCATION_VALUES` const tuple** exported from `src/runs/store.ts` (parallel to `AGENT_NAMES_TUPLE`). Five duplicated `z.enum([...])` / `Record<...>` literals collapsed to one import. Adding a future invocation is now a single-line change. Aggregator's `invocation_counts` initialiser became data-driven (`Object.fromEntries(INVOCATION_VALUES.map(...))`), auto-extending when the tuple grows.
|
|
26
|
+
- **`agents-content.test.ts`** reinforced — pins `model: haiku` in the frontmatter of `senior-debugger.md` and `code-explorer.md`, plus the explicit forbidden-tool strings (`Edit`, `Write`, `NotebookEdit`) in the Boundaries section of both. Catches future relaxations of the utility-role contract.
|
|
27
|
+
|
|
28
|
+
### Tests
|
|
29
|
+
|
|
30
|
+
- `tests/runs-aggregate.test.ts`: foldById tiebreaker with differing `started_at` (locks the primary sort key); `aggregateOutcomes` invocation_counts on empty journal initialises every key to 0.
|
|
31
|
+
- `tests/runs-store.test.ts`: RECORD_FAILED fallback row shape accepted (Phase-C SKILL fallback contract); `mode_warning.message` writer sanitization strips C0/C1/ESC from disk bytes.
|
|
32
|
+
- `tests/runs-e2e.test.ts`: `status: "aborted"` write through dispatch (B1 carryforward from v0.9.0 QA); `list_runs aggregate: false` SerializedFoldedRun shape (B2 carryforward); `list_runs invocation: "debug"` filter (v0.10.0 C1); `list_runs work_type + aggregate: true` combined; `/squad:debug --deep` 3-agent record shape store roundtrip.
|
|
33
|
+
- `tests/path-safety.test.ts`: full coverage of `pathSafe` + `pathSafeDetails` — POSIX + Windows shapes, multi-path strings, error-message embedding, idempotency, ≤3-segment passthrough, recursive details sanitization.
|
|
34
|
+
|
|
35
|
+
### Known issues
|
|
36
|
+
|
|
37
|
+
The /squad:debug, /squad:question, and /squad:brainstorm telemetry hooks are spec'd in their respective SKILL.md files; the SKILL execution itself is performed by the host LLM. We rely on the LLM following the spec — there is no automated test that intercepts a real `/squad:question` invocation and verifies a row landed in the journal. If you observe missing rows in `/squad:stats`, it indicates the host LLM short-circuited the SKILL spec.
|
|
38
|
+
|
|
10
39
|
## [0.10.0] - 2026-05-11
|
|
11
40
|
|
|
12
41
|
Adds `/squad:debug` — read-only bug investigation skill that bridges `/squad:question` (lookup-only) and `/squad:implement` (writes code). Takes a bug description plus optional stack trace plus optional repro steps, dispatches `code-explorer` to locate suspect code, then a new `senior-debugger` persona to emit N ranked hypotheses (1 on `--quick`, 3 on `--normal`, 5 with a top-2 cross-check pass on `--deep`) with `file:line` evidence, verification steps, and confidence labels. Never writes code, never commits.
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import { listResources, readResource } from "./resources/registry.js";
|
|
|
7
7
|
import { listPrompts, getPrompt } from "./prompts/registry.js";
|
|
8
8
|
import { logger, setupProcessHandlers } from "./observability/logger.js";
|
|
9
9
|
setupProcessHandlers();
|
|
10
|
-
const SERVER_VERSION = "0.10.
|
|
10
|
+
const SERVER_VERSION = "0.10.1";
|
|
11
11
|
const server = new Server({
|
|
12
12
|
name: "squad-mcp",
|
|
13
13
|
version: SERVER_VERSION,
|
package/dist/runs/aggregate.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { decodeSeverityScore, } from "./store.js";
|
|
1
|
+
import { decodeSeverityScore, INVOCATION_VALUES, } from "./store.js";
|
|
2
2
|
/**
|
|
3
3
|
* SQUAD RUNS AGGREGATION + RENDERING. Pure functions only — no I/O, no
|
|
4
4
|
* Date.now() side effects (clock is an injected parameter for testability).
|
|
@@ -187,14 +187,11 @@ export function aggregateOutcomes(folded) {
|
|
|
187
187
|
{ range: "70-79", count: 0, min: 70, max: 79 },
|
|
188
188
|
{ range: "<70", count: 0, min: 0, max: 69 },
|
|
189
189
|
];
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
brainstorm: 0,
|
|
196
|
-
debug: 0,
|
|
197
|
-
};
|
|
190
|
+
// Initialise every invocation key to 0 from the canonical tuple. Keeps this
|
|
191
|
+
// initialiser auto-extending when `INVOCATION_VALUES` grows; the `Record<
|
|
192
|
+
// RunInvocation, number>` cast is type-safe because the tuple is the type's
|
|
193
|
+
// single source of truth.
|
|
194
|
+
const invocation_counts = Object.fromEntries(INVOCATION_VALUES.map((v) => [v, 0]));
|
|
198
195
|
let inputTotal = 0;
|
|
199
196
|
let outputTotal = 0;
|
|
200
197
|
const perAgent = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../src/runs/aggregate.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,GAKpB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,wBAAwB,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC;AAClD,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,oBAAoB,CAClC,OAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,GAAG,EAA+D,CAAC;IACnF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5C,GAAG,CAAC,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YAC/C,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;YACnC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAS;IACzC,6EAA6E;IAC7E,yEAAyE;IACzE,OAAO,CAAC,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAiB/C;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAoB,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IASrE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC1C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAY,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACnC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,wEAAwE;QACxE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAClE,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,0EAA0E;YAC1E,qCAAqC;YACrC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtB,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU;oBACvC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC1D,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,GAAG,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC;YACvF,SAAS;QACX,CAAC;QACD,sEAAsE;QACtE,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE,GAAG,CAAC;QACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,wEAAwE;YACxE,qEAAqE;YACrE,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;YAC7B,yEAAyE;YACzE,gEAAgE;YAChE,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE;gBACF,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC1C,mBAAmB,EAAE,IAAI;aAC1B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAqBD,MAAM,UAAU,YAAY,CAAC,MAAmB,EAAE,MAAiB;IACjE,IAAI,GAAG,GAAG,MAAM,CAAC;IACjB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,UAAU;QAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,IAAI;QAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACzD,sEAAsE;QACtE,mDAAmD;QACnD,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/F,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAmCD,2FAA2F;AAC3F,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACnD,MAAM,cAAc,GAA+B;QACjD,QAAQ,EAAE,CAAC;QACX,gBAAgB,EAAE,CAAC;QACnB,QAAQ,EAAE,CAAC;KACZ,CAAC;IACF,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,MAAM,aAAa,GAAG;QACpB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;QAChD,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QAC9C,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QAC9C,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;KAC5C,CAAC;IACF,MAAM,iBAAiB,GAAkC;QACvD,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,KAAK,EAAE,CAAC;KACT,CAAC;IACF,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+D,CAAC;IACxF,IAAI,gBAAgB,GAAG,CAAC,CAAC;IAEzB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC;QAC3B,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,gBAAgB,EAAE,CAAC;QAEnD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5C,GAAG,CAAC,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YAC/C,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;YACnC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QAED,2EAA2E;QAC3E,sEAAsE;QACtE,4DAA4D;QAC5D,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;YAAE,SAAS;QACvC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,aAAa,EAAE,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;QACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3E,IAAI,MAAM;gBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,cAAc;QACd,aAAa;QACb,aAAa;QACb,iBAAiB;QACjB,gBAAgB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;QAChF,sBAAsB,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,oBAAoB,EAAE,QAAQ;QAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyC,CAAC;IACxE,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;YAAE,SAAS,EAAE,CAAC;aACrC,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;YAAE,SAAS,EAAE,CAAC;;YAC1C,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,mBAAmB;YAAE,mBAAmB,EAAE,CAAC;QAEjD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,iBAAiB,CAAC;YAC/B,GAAG,CAAC,CAAC,EAAE,CAAC;YACR,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAChC,QAAQ,IAAI,CAAC,CAAC,iBAAiB,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,gBAAgB,IAAI,QAAQ,CAAC;YAC7B,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,+BAA+B,GAAG,IAAI,GAAG,EAAqB,CAAC;IACrE,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC;QAChD,+BAA+B,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,SAAS;QACT,SAAS;QACT,OAAO;QACP,mBAAmB;QACnB,+BAA+B;QAC/B,qBAAqB,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9F,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAmB,EAAE,IAAY,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IACpF,MAAM,OAAO,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,UAAU,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,SAAS;QAClC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG;YAAE,SAAS;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QACtE,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI;YAAE,OAAO,CAAC,GAAG,CAAE,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAEhF,MAAM,WAAW,GAAG,UAAU,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa;IACjE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,GAAG,GAAG,CAAC;IAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,YAAY,GAAG,CAAC,CAAC;IAC1C,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACjC,IAAI,gBAAgB,GAAG,CAAC,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC;QAC/C,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC,wDAAwD;AACxD,MAAM,UAAU,eAAe,CAAC,MAAgB;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACnC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3F,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/C,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC;IAC5C,IAAI,EAAE,GAAG,MAAM;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,GAAG,CAAC;AACnE,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC7C,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,SAAS;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxE,OAAO,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/D,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../src/runs/aggregate.ts"],"names":[],"mappings":"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"}
|
package/dist/runs/store.d.ts
CHANGED
|
@@ -72,6 +72,20 @@ export declare function decodeSeverityScore(n: number): {
|
|
|
72
72
|
};
|
|
73
73
|
/** Public re-export so callers can build records without re-implementing the encoding. */
|
|
74
74
|
export { severityScore };
|
|
75
|
+
/**
|
|
76
|
+
* Canonical tuple of accepted journal invocations. Single source of truth.
|
|
77
|
+
*
|
|
78
|
+
* Why a tuple, not just a Zod enum: the same set is consumed by FIVE call
|
|
79
|
+
* sites — this store's `InvocationEnum`, the tool boundary at
|
|
80
|
+
* `src/tools/record-run.ts`, the filter schema at `src/tools/list-runs.ts`,
|
|
81
|
+
* the Record literal in the aggregate output type, and the `invocation_counts`
|
|
82
|
+
* initialiser in `src/runs/aggregate.ts`. Exporting one tuple makes "add a
|
|
83
|
+
* new invocation" a single-line change instead of five-sites-must-stay-in-
|
|
84
|
+
* sync. Pattern parallels `AGENT_NAMES_TUPLE` in `src/config/ownership-matrix.ts`.
|
|
85
|
+
*
|
|
86
|
+
* `as const` (readonly tuple) is what Zod's `z.enum` requires.
|
|
87
|
+
*/
|
|
88
|
+
export declare const INVOCATION_VALUES: readonly ["implement", "review", "task", "question", "brainstorm", "debug"];
|
|
75
89
|
declare const InvocationEnum: z.ZodEnum<["implement", "review", "task", "question", "brainstorm", "debug"]>;
|
|
76
90
|
declare const StatusEnum: z.ZodEnum<["in_flight", "completed", "aborted"]>;
|
|
77
91
|
declare const WorkTypeEnum: z.ZodEnum<["Feature", "Bug Fix", "Refactor", "Performance", "Security", "Business Rule"]>;
|
package/dist/runs/store.js
CHANGED
|
@@ -79,7 +79,43 @@ export function decodeSeverityScore(n) {
|
|
|
79
79
|
}
|
|
80
80
|
/** Public re-export so callers can build records without re-implementing the encoding. */
|
|
81
81
|
export { severityScore };
|
|
82
|
-
|
|
82
|
+
/**
|
|
83
|
+
* Strip C0 (`\x00`-`\x1F` except `\t`), C1 (`\x7F`-`\x9F`), and ESC (`\x1B`)
|
|
84
|
+
* from a string before it lands on disk. This is the WRITER-side mirror of
|
|
85
|
+
* the renderer's `aggregate.stripControlChars` (security #5).
|
|
86
|
+
*
|
|
87
|
+
* Defense in depth: render-time sanitisation protects users running
|
|
88
|
+
* `/squad:stats`; writer-side sanitisation also protects users running
|
|
89
|
+
* `cat .squad/runs.jsonl` or any other tool that bypasses the aggregator.
|
|
90
|
+
* The regex is intentionally duplicated (3 lines, no runtime cost) rather
|
|
91
|
+
* than importing from `aggregate.ts` because that would invert the natural
|
|
92
|
+
* dep direction (store is foundational; aggregate consumes store).
|
|
93
|
+
*/
|
|
94
|
+
function stripWriterControlChars(s) {
|
|
95
|
+
return s.replace(/[\x00-\x08\x0A-\x1F\x7F-\x9F]/g, "");
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Canonical tuple of accepted journal invocations. Single source of truth.
|
|
99
|
+
*
|
|
100
|
+
* Why a tuple, not just a Zod enum: the same set is consumed by FIVE call
|
|
101
|
+
* sites — this store's `InvocationEnum`, the tool boundary at
|
|
102
|
+
* `src/tools/record-run.ts`, the filter schema at `src/tools/list-runs.ts`,
|
|
103
|
+
* the Record literal in the aggregate output type, and the `invocation_counts`
|
|
104
|
+
* initialiser in `src/runs/aggregate.ts`. Exporting one tuple makes "add a
|
|
105
|
+
* new invocation" a single-line change instead of five-sites-must-stay-in-
|
|
106
|
+
* sync. Pattern parallels `AGENT_NAMES_TUPLE` in `src/config/ownership-matrix.ts`.
|
|
107
|
+
*
|
|
108
|
+
* `as const` (readonly tuple) is what Zod's `z.enum` requires.
|
|
109
|
+
*/
|
|
110
|
+
export const INVOCATION_VALUES = [
|
|
111
|
+
"implement",
|
|
112
|
+
"review",
|
|
113
|
+
"task",
|
|
114
|
+
"question",
|
|
115
|
+
"brainstorm",
|
|
116
|
+
"debug",
|
|
117
|
+
];
|
|
118
|
+
const InvocationEnum = z.enum(INVOCATION_VALUES);
|
|
83
119
|
const ModeEnum = z.enum(["quick", "normal", "deep"]);
|
|
84
120
|
const ModeSourceEnum = z.enum(["user", "auto"]);
|
|
85
121
|
const StatusEnum = z.enum(["in_flight", "completed", "aborted"]);
|
|
@@ -313,7 +349,23 @@ export async function appendRun(workspaceRoot, record, options = {}) {
|
|
|
313
349
|
if (!validated.success) {
|
|
314
350
|
throw new SquadError("INVALID_INPUT", `run record schema violation: ${validated.error.message}`, { issues: validated.error.issues.length });
|
|
315
351
|
}
|
|
316
|
-
|
|
352
|
+
// Defense in depth: strip control chars from `mode_warning.message` at the
|
|
353
|
+
// writer too. The aggregator's `stripControlChars` already runs at render
|
|
354
|
+
// (security #5 in v0.9.0), but direct file inspection (`cat`, `less`) sees
|
|
355
|
+
// raw bytes. Sanitising here keeps the recorded data terminal-safe for any
|
|
356
|
+
// future viewer that bypasses the aggregator. We strip only this one field
|
|
357
|
+
// because it's the documented free-form leak surface — other fields are
|
|
358
|
+
// schema-bounded to safer shapes (enums, ISO strings, numbers, sha refs).
|
|
359
|
+
const sanitized = validated.data.mode_warning != null
|
|
360
|
+
? {
|
|
361
|
+
...validated.data,
|
|
362
|
+
mode_warning: {
|
|
363
|
+
...validated.data.mode_warning,
|
|
364
|
+
message: stripWriterControlChars(validated.data.mode_warning.message),
|
|
365
|
+
},
|
|
366
|
+
}
|
|
367
|
+
: validated.data;
|
|
368
|
+
const line = JSON.stringify(sanitized) + "\n";
|
|
317
369
|
const byteLen = Buffer.byteLength(line, "utf8");
|
|
318
370
|
if (byteLen > MAX_RECORD_BYTES) {
|
|
319
371
|
throw new SquadError("RECORD_TOO_LARGE", `run record exceeds MAX_RECORD_BYTES (${byteLen} > ${MAX_RECORD_BYTES}); ` +
|
package/dist/runs/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/runs/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAErD;;;;;;;;GAQG;AACH,SAAS,aAAa,CAAC,MAKtB;IACC,OAAO,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5F,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,mBAAmB,CAAC,CAAS;IAM3C,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QACjC,UAAU,EAAE,CAAC,GAAG,EAAE;KACnB,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/runs/store.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/list-runs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { SafeString } from "./_shared/schemas.js";
|
|
3
3
|
import { AGENT_NAMES_TUPLE } from "../config/ownership-matrix.js";
|
|
4
|
-
import { readRuns } from "../runs/store.js";
|
|
4
|
+
import { readRuns, INVOCATION_VALUES } from "../runs/store.js";
|
|
5
5
|
import { foldById, applyFilters, aggregateOutcomes, aggregateHealth, trendByDay, getEstTokens, } from "../runs/aggregate.js";
|
|
6
6
|
/**
|
|
7
7
|
* Read tool: load runs from `.squad/runs.jsonl`, fold the two-phase
|
|
@@ -15,7 +15,7 @@ import { foldById, applyFilters, aggregateOutcomes, aggregateHealth, trendByDay,
|
|
|
15
15
|
*
|
|
16
16
|
* No writes here. The single-writer contract belongs to `record_run`.
|
|
17
17
|
*/
|
|
18
|
-
const InvocationEnum = z.enum(
|
|
18
|
+
const InvocationEnum = z.enum(INVOCATION_VALUES);
|
|
19
19
|
const ModeEnum = z.enum(["quick", "normal", "deep"]);
|
|
20
20
|
const VerdictEnum = z.enum(["APPROVED", "CHANGES_REQUIRED", "REJECTED"]);
|
|
21
21
|
const WorkTypeEnum = z.enum([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-runs.js","sourceRoot":"","sources":["../../src/tools/list-runs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAkB,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"list-runs.js","sourceRoot":"","sources":["../../src/tools/list-runs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAkB,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAsC,MAAM,kBAAkB,CAAC;AACnG,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,YAAY,GAEb,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;;;GAWG;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACrD,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC;AACzE,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1B,SAAS;IACT,SAAS;IACT,UAAU;IACV,aAAa;IACb,UAAU;IACV,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC;IAChC,4CAA4C;IAC5C,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChC,mDAAmD;IACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IACvD,6DAA6D;IAC7D,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;IAC3C,6CAA6C;IAC7C,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE;IAC/B,0CAA0C;IAC1C,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE;IACzB,4CAA4C;IAC5C,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE;IACrC,sCAAsC;IACtC,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE;IAClC;;;;OAIG;IACH,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,+EAA+E;IAC/E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC,CAAC;AAkDH,SAAS,eAAe,CAAC,CAAY;IACnC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;QAC1C,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB,EAAE,EAAU;IACrD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,KAAY;IACjC,6EAA6E;IAC7E,iDAAiD;IACjD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAEpC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,IAAI,WAAW,GAAG,MAAM,CAAC;IACzB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE;QACzC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACxD,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACxD,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACxD,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9D,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;KACxE,CAAC,CAAC;IAEH,0EAA0E;IAC1E,4EAA4E;IAC5E,uCAAuC;IACvC,MAAM,QAAQ,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvF,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,QAAQ;YACd,cAAc,EAAE,YAAY;YAC5B,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC;SACpC,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAElE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,YAAY;QAC5B,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,QAAQ,EAAE;YACR,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB;YACvD,oBAAoB,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAC3E,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAClC;YACD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B;QACD,MAAM,EAAE;YACN,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,+BAA+B,EAAE,KAAK,CAAC,IAAI,CACzC,MAAM,CAAC,+BAA+B,CAAC,OAAO,EAAE,CACjD,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/C,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;SACpD;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;KAC9D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,IAAI,EAAE,WAAW;IACjB,WAAW,EACT,+FAA+F;QAC/F,iGAAiG;QACjG,sFAAsF;QACtF,6FAA6F;QAC7F,0DAA0D;IAC5D,MAAM;IACN,OAAO;CACR,CAAC"}
|
package/dist/tools/record-run.js
CHANGED
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { SafeString } from "./_shared/schemas.js";
|
|
3
3
|
import { AGENT_NAMES_TUPLE } from "../config/ownership-matrix.js";
|
|
4
|
-
import { appendRun } from "../runs/store.js";
|
|
4
|
+
import { appendRun, INVOCATION_VALUES } from "../runs/store.js";
|
|
5
5
|
/**
|
|
6
|
-
* SINGLE WRITER CONTRACT (plan v4, cycle 2 architect A-4; extended in v0.10.0
|
|
6
|
+
* SINGLE WRITER CONTRACT (plan v4, cycle 2 architect A-4; extended in v0.10.0,
|
|
7
|
+
* v0.10.1).
|
|
7
8
|
*
|
|
8
9
|
* Legitimate callers of this tool are skills that own a two-phase lifecycle:
|
|
9
10
|
*
|
|
10
11
|
* - `skills/squad/SKILL.md` (v0.9.0+) — Phase 1 `in_flight` + Phase 10
|
|
11
|
-
* terminal pair for `/squad:implement` and `/squad:review` runs
|
|
12
|
+
* terminal pair for `/squad:implement` and `/squad:review` runs
|
|
13
|
+
* (invocations: `implement`, `review`, `task`).
|
|
12
14
|
* - `skills/debug/SKILL.md` (v0.10.0+) — Phase A `in_flight` + Phase C
|
|
13
|
-
* terminal pair for `/squad:debug` runs
|
|
15
|
+
* terminal pair for `/squad:debug` runs (invocation: `debug`).
|
|
16
|
+
* - `skills/question/SKILL.md` (v0.10.1+) — Phase 1.5 `in_flight` + Phase
|
|
17
|
+
* 3.5 terminal pair for `/squad:question` runs (invocation: `question`).
|
|
18
|
+
* - `skills/brainstorm/SKILL.md` (v0.10.1+) — Step 1.5 `in_flight` + Step
|
|
19
|
+
* 5.5 terminal pair for `/brainstorm` runs (invocation: `brainstorm`).
|
|
14
20
|
*
|
|
15
|
-
* Any other caller is a bug. The
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* aggregator relies on for stranded-run detection.
|
|
21
|
+
* Any other caller is a bug. The two-phase write pair is the transactional
|
|
22
|
+
* unit; emitting terminal rows from any other path (notably
|
|
23
|
+
* `apply_consolidation_rules`) breaks the `(in_flight, completed)` pair-by-id
|
|
24
|
+
* invariant that the aggregator relies on for stranded-run detection.
|
|
20
25
|
*
|
|
21
26
|
* Two phases of the skill's lifecycle:
|
|
22
27
|
*
|
|
@@ -40,7 +45,7 @@ import { appendRun } from "../runs/store.js";
|
|
|
40
45
|
// instance; instead we redefine the inputs here as the tool boundary. The
|
|
41
46
|
// store re-validates inside `appendRun`, so any drift between the two
|
|
42
47
|
// schemas trips at the store layer rather than silently passing.
|
|
43
|
-
const InvocationEnum = z.enum(
|
|
48
|
+
const InvocationEnum = z.enum(INVOCATION_VALUES);
|
|
44
49
|
const ModeEnum = z.enum(["quick", "normal", "deep"]);
|
|
45
50
|
const ModeSourceEnum = z.enum(["user", "auto"]);
|
|
46
51
|
const StatusEnum = z.enum(["in_flight", "completed", "aborted"]);
|
|
@@ -107,11 +112,12 @@ async function handler(input) {
|
|
|
107
112
|
}
|
|
108
113
|
export const recordRunToolDef = {
|
|
109
114
|
name: "record_run",
|
|
110
|
-
description: "Append one RunRecord to .squad/runs.jsonl. Single-writer contract: only the
|
|
111
|
-
"(Phase 1
|
|
112
|
-
"Phase
|
|
113
|
-
"and enforces MAX_RECORD_BYTES (4000) via RECORD_TOO_LARGE on overflow.
|
|
114
|
-
"for matching in_flight↔terminal rows by id. File mode is 0o600
|
|
115
|
+
description: "Append one RunRecord to .squad/runs.jsonl. Single-writer contract: only the lifecycle-owning " +
|
|
116
|
+
"skills should call this — squad (Phase 1 + Phase 10), debug (Phase A + Phase C), question " +
|
|
117
|
+
"(Phase 1.5 + Phase 3.5), brainstorm (Step 1.5 + Step 5.5). Validates against the RunRecord " +
|
|
118
|
+
"schema_version:1 and enforces MAX_RECORD_BYTES (4000) via RECORD_TOO_LARGE on overflow. " +
|
|
119
|
+
"Caller is responsible for matching in_flight↔terminal rows by id. File mode is 0o600 " +
|
|
120
|
+
"(user-only) on first create. mode_warning.message is stripped of control chars at write time.",
|
|
115
121
|
schema,
|
|
116
122
|
handler,
|
|
117
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-run.js","sourceRoot":"","sources":["../../src/tools/record-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"record-run.js","sourceRoot":"","sources":["../../src/tools/record-run.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/registry.js
CHANGED
|
@@ -23,6 +23,7 @@ import { composeAdvisoryBundleTool } from "./compose-advisory-bundle.js";
|
|
|
23
23
|
import { recordRunToolDef } from "./record-run.js";
|
|
24
24
|
import { listRunsToolDef } from "./list-runs.js";
|
|
25
25
|
import { isSquadError } from "../errors.js";
|
|
26
|
+
import { pathSafe, pathSafeDetails } from "../util/path-safety.js";
|
|
26
27
|
import { logger, newRequestId } from "../observability/logger.js";
|
|
27
28
|
const tools = new Map();
|
|
28
29
|
export function register(def) {
|
|
@@ -149,8 +150,17 @@ export async function dispatchTool(name, args) {
|
|
|
149
150
|
duration_ms,
|
|
150
151
|
error_code: err.code,
|
|
151
152
|
});
|
|
153
|
+
// Sanitize absolute filesystem paths before the payload crosses the MCP
|
|
154
|
+
// dispatch boundary to the (potentially untrusted) client. The in-
|
|
155
|
+
// process SquadError still carries full paths for local debug; only
|
|
156
|
+
// this serialised copy is truncated. See path-safety.ts:pathSafe for
|
|
157
|
+
// the truncation shape (last 3 segments with `…/` prefix).
|
|
152
158
|
return asToolErrorResponse({
|
|
153
|
-
error: {
|
|
159
|
+
error: {
|
|
160
|
+
code: err.code,
|
|
161
|
+
message: pathSafe(err.message),
|
|
162
|
+
details: pathSafeDetails(err.details),
|
|
163
|
+
},
|
|
154
164
|
});
|
|
155
165
|
}
|
|
156
166
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,40 @@
|
|
|
1
1
|
export declare const MAX_BYTES = 16384;
|
|
2
|
+
/**
|
|
3
|
+
* Truncate absolute filesystem paths inside a string to their last 3 segments,
|
|
4
|
+
* with a `…/` prefix indicating truncation. Used by the MCP dispatch boundary
|
|
5
|
+
* (`src/tools/registry.ts`) to sanitise `SquadError.message` and
|
|
6
|
+
* `SquadError.details` before they leave the server to a (potentially
|
|
7
|
+
* untrusted) MCP client.
|
|
8
|
+
*
|
|
9
|
+
* Why: error messages routinely embed `workspaceRoot` or absolute file paths
|
|
10
|
+
* (e.g. `failed to read runs file /home/<user>/work/some-repo/.squad/runs.jsonl`).
|
|
11
|
+
* The full path leaks the local user's home directory and folder layout —
|
|
12
|
+
* useful debug context, but a sidechannel for username discovery if an MCP
|
|
13
|
+
* client logs or relays error payloads.
|
|
14
|
+
*
|
|
15
|
+
* The transform is purely cosmetic — the `SquadError` itself, in-process,
|
|
16
|
+
* still carries the full path for local debugging. Only the serialised
|
|
17
|
+
* payload that crosses the dispatch boundary is sanitised.
|
|
18
|
+
*
|
|
19
|
+
* Recognised path shapes (handled non-greedily so multiple paths in one
|
|
20
|
+
* string each truncate independently):
|
|
21
|
+
*
|
|
22
|
+
* - POSIX absolute: `/foo/bar/baz/qux/file.ts` → `…/baz/qux/file.ts`
|
|
23
|
+
* - Windows drive: `C:\foo\bar\baz\qux\file.ts` → `…/baz/qux/file.ts`
|
|
24
|
+
*
|
|
25
|
+
* Paths with fewer than 4 non-empty segments do not match the pattern (the
|
|
26
|
+
* regex requires at least two interior separators) and are returned as-is.
|
|
27
|
+
* Already-truncated paths (begin with `…/`) are idempotent under this
|
|
28
|
+
* function (lookbehind prevents re-matching).
|
|
29
|
+
*/
|
|
30
|
+
export declare function pathSafe(s: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Recursively apply `pathSafe` to every string leaf in an error-details
|
|
33
|
+
* payload. Top-level wrapper for `SquadError.details` sanitisation at the
|
|
34
|
+
* dispatch boundary. Returns a deep-cloned object — the in-process error
|
|
35
|
+
* is not mutated.
|
|
36
|
+
*/
|
|
37
|
+
export declare function pathSafeDetails(details: Record<string, unknown> | undefined): Record<string, unknown> | undefined;
|
|
2
38
|
export interface SafePathContext {
|
|
3
39
|
rootRealCache: Map<string, string>;
|
|
4
40
|
}
|
package/dist/util/path-safety.js
CHANGED
|
@@ -3,6 +3,82 @@ import path from "node:path";
|
|
|
3
3
|
import { SquadError } from "../errors.js";
|
|
4
4
|
import { rejectIfMalformed, realpathOrSelf } from "./path-internal.js";
|
|
5
5
|
export const MAX_BYTES = 16_384;
|
|
6
|
+
/**
|
|
7
|
+
* Truncate absolute filesystem paths inside a string to their last 3 segments,
|
|
8
|
+
* with a `…/` prefix indicating truncation. Used by the MCP dispatch boundary
|
|
9
|
+
* (`src/tools/registry.ts`) to sanitise `SquadError.message` and
|
|
10
|
+
* `SquadError.details` before they leave the server to a (potentially
|
|
11
|
+
* untrusted) MCP client.
|
|
12
|
+
*
|
|
13
|
+
* Why: error messages routinely embed `workspaceRoot` or absolute file paths
|
|
14
|
+
* (e.g. `failed to read runs file /home/<user>/work/some-repo/.squad/runs.jsonl`).
|
|
15
|
+
* The full path leaks the local user's home directory and folder layout —
|
|
16
|
+
* useful debug context, but a sidechannel for username discovery if an MCP
|
|
17
|
+
* client logs or relays error payloads.
|
|
18
|
+
*
|
|
19
|
+
* The transform is purely cosmetic — the `SquadError` itself, in-process,
|
|
20
|
+
* still carries the full path for local debugging. Only the serialised
|
|
21
|
+
* payload that crosses the dispatch boundary is sanitised.
|
|
22
|
+
*
|
|
23
|
+
* Recognised path shapes (handled non-greedily so multiple paths in one
|
|
24
|
+
* string each truncate independently):
|
|
25
|
+
*
|
|
26
|
+
* - POSIX absolute: `/foo/bar/baz/qux/file.ts` → `…/baz/qux/file.ts`
|
|
27
|
+
* - Windows drive: `C:\foo\bar\baz\qux\file.ts` → `…/baz/qux/file.ts`
|
|
28
|
+
*
|
|
29
|
+
* Paths with fewer than 4 non-empty segments do not match the pattern (the
|
|
30
|
+
* regex requires at least two interior separators) and are returned as-is.
|
|
31
|
+
* Already-truncated paths (begin with `…/`) are idempotent under this
|
|
32
|
+
* function (lookbehind prevents re-matching).
|
|
33
|
+
*/
|
|
34
|
+
export function pathSafe(s) {
|
|
35
|
+
if (typeof s !== "string" || s.length === 0)
|
|
36
|
+
return s;
|
|
37
|
+
// POSIX absolute path: starts with /, captures everything until a whitespace,
|
|
38
|
+
// quote, or message-formatting boundary. The `(?<!…)` lookbehind prevents
|
|
39
|
+
// re-matching after an already-truncated `…/` prefix (idempotency).
|
|
40
|
+
const posix = /(?<!…)\/(?:[A-Za-z0-9._-][^\s'"`<>:,)\]]*\/)+[A-Za-z0-9._-][^\s'"`<>:,)\]]*/g;
|
|
41
|
+
// Windows drive path: drive letter + colon + backslash, captured similarly.
|
|
42
|
+
// Note: the Windows segment char-class adds a space (`[A-Za-z0-9._ -]` vs
|
|
43
|
+
// POSIX's `[A-Za-z0-9._-]`) because Windows directory names commonly contain
|
|
44
|
+
// spaces (`C:\Program Files\...`). POSIX paths conventionally do not, so
|
|
45
|
+
// the asymmetry is intentional, not a copy-paste oversight.
|
|
46
|
+
const win = /[A-Za-z]:\\(?:[A-Za-z0-9._ -][^\s'"`<>:,)\]]*\\)+[A-Za-z0-9._ -][^\s'"`<>:,)\]]*/g;
|
|
47
|
+
const truncate = (match, sep) => {
|
|
48
|
+
// Drop empty leading segment from absolute paths (leading `/` gives `""`).
|
|
49
|
+
const segments = match.split(sep).filter((p) => p.length > 0);
|
|
50
|
+
if (segments.length <= 3)
|
|
51
|
+
return match;
|
|
52
|
+
return "…/" + segments.slice(-3).join("/");
|
|
53
|
+
};
|
|
54
|
+
return s.replace(posix, (m) => truncate(m, "/")).replace(win, (m) => truncate(m, "\\"));
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Recursively apply `pathSafe` to every string leaf in an error-details
|
|
58
|
+
* payload. Top-level wrapper for `SquadError.details` sanitisation at the
|
|
59
|
+
* dispatch boundary. Returns a deep-cloned object — the in-process error
|
|
60
|
+
* is not mutated.
|
|
61
|
+
*/
|
|
62
|
+
export function pathSafeDetails(details) {
|
|
63
|
+
if (details === undefined)
|
|
64
|
+
return undefined;
|
|
65
|
+
const out = {};
|
|
66
|
+
for (const [k, v] of Object.entries(details)) {
|
|
67
|
+
if (typeof v === "string") {
|
|
68
|
+
out[k] = pathSafe(v);
|
|
69
|
+
}
|
|
70
|
+
else if (Array.isArray(v)) {
|
|
71
|
+
out[k] = v.map((item) => (typeof item === "string" ? pathSafe(item) : item));
|
|
72
|
+
}
|
|
73
|
+
else if (v !== null && typeof v === "object") {
|
|
74
|
+
out[k] = pathSafeDetails(v);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
out[k] = v;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return out;
|
|
81
|
+
}
|
|
6
82
|
export function createSafePathContext() {
|
|
7
83
|
return { rootRealCache: new Map() };
|
|
8
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-safety.js","sourceRoot":"","sources":["../../src/util/path-safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"path-safety.js","sourceRoot":"","sources":["../../src/util/path-safety.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@ Position in the workflow:
|
|
|
21
21
|
|
|
22
22
|
## Inviolable Rules
|
|
23
23
|
|
|
24
|
-
1. **No code implementation.** This skill produces a brainstorm report. It must not edit files, run scripts, run tests, or modify any persistent state.
|
|
24
|
+
1. **No code implementation.** This skill produces a brainstorm report. It must not edit files, run scripts, run tests, or modify any user-facing persistent state. The only file this skill ever writes is the journal `.squad/runs.jsonl` via `record_run` for telemetry — gitignored, mode `0o600`, not user content. Same single-writer pattern as the squad + debug + question skills.
|
|
25
25
|
2. **No `git commit`, `git push`, or any state-mutating git command.** Read-only git is fine (`git log`, `git status`, `git diff` for context).
|
|
26
26
|
3. **Cite sources.** Every market claim, best practice, statistic, or "industry uses X" assertion must link to the URL it came from. Unsourced claims are not allowed.
|
|
27
27
|
4. **Multiple options.** Always present at least two alternatives with explicit pros/cons. Never single-answer. The user is brainstorming, not asking for a verdict.
|
|
@@ -32,13 +32,13 @@ Position in the workflow:
|
|
|
32
32
|
|
|
33
33
|
The skill takes one required argument (the topic) and optional flags:
|
|
34
34
|
|
|
35
|
-
| Param | Default | Description
|
|
36
|
-
| --------------------------------- | ---------- |
|
|
37
|
-
| `<topic>` | required | Free-form text describing the problem, decision, or idea to brainstorm
|
|
35
|
+
| Param | Default | Description |
|
|
36
|
+
| --------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
37
|
+
| `<topic>` | required | Free-form text describing the problem, decision, or idea to brainstorm |
|
|
38
38
|
| `--quick` / `--normal` / `--deep` | `--normal` | `--quick` (3 web queries, 1 agent), `--normal` (6 queries, 2-3 agents), `--deep` (10+ queries, 4 agents + tech-lead). Same vocabulary as `/squad:implement` and `/squad:review`. |
|
|
39
|
-
| `--no-web` | off | Skip web research entirely. Agents-only mode. Use when offline or when the topic is purely internal-codebase.
|
|
40
|
-
| `--focus <domain>` | auto | Force a domain bias: `frontend`, `backend`, `infra`, `data`, `security`, `business`, `mobile`. Auto-detection scans the topic text for keywords.
|
|
41
|
-
| `--sources <N>` | 5 | Cap on web sources cited per section. Avoids dump of every result.
|
|
39
|
+
| `--no-web` | off | Skip web research entirely. Agents-only mode. Use when offline or when the topic is purely internal-codebase. |
|
|
40
|
+
| `--focus <domain>` | auto | Force a domain bias: `frontend`, `backend`, `infra`, `data`, `security`, `business`, `mobile`. Auto-detection scans the topic text for keywords. |
|
|
41
|
+
| `--sources <N>` | 5 | Cap on web sources cited per section. Avoids dump of every result. |
|
|
42
42
|
|
|
43
43
|
## Step 1: Topic Understanding
|
|
44
44
|
|
|
@@ -52,6 +52,39 @@ Read the user's prompt and extract:
|
|
|
52
52
|
|
|
53
53
|
If the topic is ambiguous, ask **one** clarifying question before proceeding. Do not ask a list of questions; pick the most load-bearing one.
|
|
54
54
|
|
|
55
|
+
## Step 1.5: Write `in_flight` telemetry row (v0.10.1+)
|
|
56
|
+
|
|
57
|
+
Generate a fresh run id (`Date.now().toString(36) + "-" + 6 chars from [a-z0-9]`) and append the in_flight row before launching Step 2's parallel research:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
record_run({
|
|
61
|
+
workspace_root: <cwd>,
|
|
62
|
+
record: {
|
|
63
|
+
schema_version: 1,
|
|
64
|
+
id: <runId>,
|
|
65
|
+
status: "in_flight",
|
|
66
|
+
started_at: <ISO 8601 now>,
|
|
67
|
+
invocation: "brainstorm",
|
|
68
|
+
mode: <"quick" | "normal" | "deep" from flag, default "normal">,
|
|
69
|
+
mode_source: <"user" if a depth flag was explicit, "auto" otherwise>,
|
|
70
|
+
git_ref: null,
|
|
71
|
+
files_count: 0,
|
|
72
|
+
agents: <pre-populated array of agents you intend to dispatch in Step 3 + tech-lead-consolidator if --deep>,
|
|
73
|
+
est_tokens_method: "chars-div-3.5",
|
|
74
|
+
mode_warning: null,
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Pre-populate the `agents` array at in_flight time** with one entry per specialist you'll dispatch in Step 3 (metrics zero until Step 5.5 fills them). Pre-population keeps the row informative if the run strands.
|
|
80
|
+
|
|
81
|
+
Non-blocking try/catch (mirror `skills/debug/SKILL.md` Phase A):
|
|
82
|
+
|
|
83
|
+
- I/O error / unknown tool: log silently, continue.
|
|
84
|
+
- `SquadError`: surface code + message verbatim (Security #7 contract).
|
|
85
|
+
|
|
86
|
+
If the in_flight write fails, persist a flag so Step 5.5 finalisation is skipped (no orphan terminal row without a paired in_flight).
|
|
87
|
+
|
|
55
88
|
## Step 2: Research Plan
|
|
56
89
|
|
|
57
90
|
Build a research plan with:
|
|
@@ -191,6 +224,36 @@ Format: at most 400 words. No long template. No scorecard.
|
|
|
191
224
|
|
|
192
225
|
For `--quick` and `--normal`, the synthesizing skill itself produces the recommendation directly (no separate tech-lead spawn).
|
|
193
226
|
|
|
227
|
+
## Step 5.5: Finalise telemetry row (v0.10.1+)
|
|
228
|
+
|
|
229
|
+
After Step 5 synthesis completes (or after early-stop on missing topic / no-research), write the terminal half. Use the SAME `id` from Step 1.5:
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
record_run({
|
|
233
|
+
workspace_root: <cwd>,
|
|
234
|
+
record: {
|
|
235
|
+
schema_version: 1,
|
|
236
|
+
id: <same runId from Step 1.5>,
|
|
237
|
+
status: "completed", // or "aborted" on early stop
|
|
238
|
+
started_at: <same started_at from Step 1.5>,
|
|
239
|
+
completed_at: <ISO 8601 now>,
|
|
240
|
+
duration_ms: <completed_at - started_at>,
|
|
241
|
+
invocation: "brainstorm",
|
|
242
|
+
mode: <same>,
|
|
243
|
+
mode_source: <same>,
|
|
244
|
+
git_ref: null,
|
|
245
|
+
files_count: 0,
|
|
246
|
+
agents: <same agent list, now with batch_duration_ms + prompt_chars + response_chars filled in for each Step 3 dispatch; score: null, severity_score: null>,
|
|
247
|
+
verdict: null, // brainstorm runs don't carry a verdict
|
|
248
|
+
weighted_score: null, // no rubric
|
|
249
|
+
est_tokens_method: "chars-div-3.5",
|
|
250
|
+
mode_warning: null,
|
|
251
|
+
},
|
|
252
|
+
});
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
Same non-blocking try/catch. On `SquadError`, attempt a fallback with the same `id`, `status: "aborted"`, and `mode_warning: { code: "RECORD_FAILED", message: <reason truncated to 200 chars> }`. If that also fails, log and continue.
|
|
256
|
+
|
|
194
257
|
## Step 6: Delivery
|
|
195
258
|
|
|
196
259
|
Output in this format:
|
package/skills/question/SKILL.md
CHANGED
|
@@ -22,7 +22,7 @@ This skill exists because `/squad:implement` is heavy machinery (classification,
|
|
|
22
22
|
|
|
23
23
|
## Inviolable Rules
|
|
24
24
|
|
|
25
|
-
1. **No code changes.** No `Edit`, `Write`, `NotebookEdit`
|
|
25
|
+
1. **No code changes.** No `Edit`, `Write`, `NotebookEdit` over the user's codebase. The subagent is also read-only by design — but if you, the orchestrator, are tempted to "just fix this real quick" while answering, **stop**. Redirect the user to `/squad:implement`. The only file this skill ever writes is the journal `.squad/runs.jsonl` via `record_run` for telemetry — gitignored, mode `0o600`, not user content. Same single-writer pattern as the squad + debug skills.
|
|
26
26
|
2. **No state-mutating shell or git.** Read-only git (`log`, `show`, `blame`, `ls-files`, `grep`, `status`) is fine for the subagent. The orchestrator should not invoke shell directly — let the subagent do the searching.
|
|
27
27
|
3. **Cite every claim with `file:line`.** A statement about the code without a citation is a hallucination risk; either find the line or say "uncertain — searched X, Y, did not find".
|
|
28
28
|
4. **No AI attribution** in any artifact you produce.
|
|
@@ -47,6 +47,42 @@ If both `--quick` and `--thorough` are passed, the later one wins and emit a one
|
|
|
47
47
|
3. If the question is empty after stripping flags, ask the user for a question and stop.
|
|
48
48
|
4. If the question's surface implies action ("can you change X?", "refactor Y", "add Z"), reply with one sentence redirecting to `/squad:implement` and stop. Question mode does not implement.
|
|
49
49
|
|
|
50
|
+
### Phase 1.5 — Write `in_flight` telemetry row (v0.10.1+)
|
|
51
|
+
|
|
52
|
+
Generate a fresh run id (`Date.now().toString(36) + "-" + 6 chars from [a-z0-9]`, per `skills/squad/SKILL.md` spec) and append the Phase-A in_flight row before dispatching the subagent:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
record_run({
|
|
56
|
+
workspace_root: <cwd>,
|
|
57
|
+
record: {
|
|
58
|
+
schema_version: 1,
|
|
59
|
+
id: <runId>,
|
|
60
|
+
status: "in_flight",
|
|
61
|
+
started_at: <ISO 8601 now>,
|
|
62
|
+
invocation: "question",
|
|
63
|
+
mode: <"quick" | "normal" | "thorough" mapped from breadth>,
|
|
64
|
+
mode_source: <"user" if --quick/--thorough explicit, "auto" otherwise>,
|
|
65
|
+
git_ref: null,
|
|
66
|
+
files_count: 0,
|
|
67
|
+
agents: [
|
|
68
|
+
{ name: "code-explorer", model: "haiku", score: null, severity_score: null,
|
|
69
|
+
batch_duration_ms: 0, prompt_chars: 0, response_chars: 0 },
|
|
70
|
+
],
|
|
71
|
+
est_tokens_method: "chars-div-3.5",
|
|
72
|
+
mode_warning: null,
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Wrap in a non-blocking try/catch (same shape as `skills/debug/SKILL.md` Phase A):
|
|
78
|
+
|
|
79
|
+
- I/O error or unknown-tool: log silently, continue. Telemetry loss must never block a real question.
|
|
80
|
+
- `SquadError` (RECORD_TOO_LARGE / INVALID_INPUT / PATH_TRAVERSAL_DENIED): surface code + message to the user verbatim. Security #7 contract.
|
|
81
|
+
|
|
82
|
+
If the in_flight write fails, persist a flag so the Phase 3.5 finalisation is skipped (no orphan terminal row without a paired in_flight).
|
|
83
|
+
|
|
84
|
+
Map `breadth` → `mode`: `quick` → `"quick"`, `medium` → `"normal"`, `thorough` → `"deep"`. Keeps the journal's mode taxonomy consistent across skills for `/squad:stats`.
|
|
85
|
+
|
|
50
86
|
### Phase 2 — Dispatch the code-explorer subagent
|
|
51
87
|
|
|
52
88
|
Call the native Claude Code subagent:
|
|
@@ -69,6 +105,42 @@ The subagent returns a Code-Explorer Report (Question / Findings / Summary / Gap
|
|
|
69
105
|
2. **Add value on top**, not in front. If the report's Summary already answers the question, just say so and end. If the user's question has a follow-up that the report opens up (e.g. "X is defined at A — do you want to see what calls it?"), offer the follow-up as a one-line suggestion.
|
|
70
106
|
3. If the report has a non-empty Gaps section, escalate it visibly — those are the cases where the user might want to re-run with `--thorough` or rephrase.
|
|
71
107
|
|
|
108
|
+
### Phase 3.5 — Finalise telemetry row (v0.10.1+)
|
|
109
|
+
|
|
110
|
+
After Phase 3 synthesis completes (or after the empty-question / redirect-to-implement short-circuits — those count as `aborted`), write the terminal half:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
record_run({
|
|
114
|
+
workspace_root: <cwd>,
|
|
115
|
+
record: {
|
|
116
|
+
schema_version: 1,
|
|
117
|
+
id: <same runId from Phase 1.5>,
|
|
118
|
+
status: "completed", // or "aborted" on early-stop
|
|
119
|
+
started_at: <same started_at from Phase 1.5>,
|
|
120
|
+
completed_at: <ISO 8601 now>,
|
|
121
|
+
duration_ms: <completed_at - started_at>,
|
|
122
|
+
invocation: "question",
|
|
123
|
+
mode: <same>,
|
|
124
|
+
mode_source: <same>,
|
|
125
|
+
git_ref: null,
|
|
126
|
+
files_count: 0,
|
|
127
|
+
agents: [
|
|
128
|
+
{ name: "code-explorer", model: "haiku",
|
|
129
|
+
score: null, severity_score: null,
|
|
130
|
+
batch_duration_ms: <Phase 2 wall>,
|
|
131
|
+
prompt_chars: <Phase 2 prompt>,
|
|
132
|
+
response_chars: <Phase 2 response> },
|
|
133
|
+
],
|
|
134
|
+
verdict: null, // question runs don't carry a verdict
|
|
135
|
+
weighted_score: null, // no rubric
|
|
136
|
+
est_tokens_method: "chars-div-3.5",
|
|
137
|
+
mode_warning: null,
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Same non-blocking try/catch. On `SquadError`, attempt a fallback row with the same `id`, `status: "aborted"`, and `mode_warning: { code: "RECORD_FAILED", message: <reason truncated to 200 chars> }`. If that also fails, log and continue — the aggregator's 1h TTL synthesises an aborted view at the next `/squad:stats`.
|
|
143
|
+
|
|
72
144
|
### Phase 4 — End
|
|
73
145
|
|
|
74
146
|
Stop. Do not propose changes. Do not draft a plan. Do not invoke other agents.
|