@webpresso/agent-kit 3.1.26 → 3.1.30
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/catalog/AGENTS.md.tpl +7 -11
- package/catalog/agent/commands/verify.md +2 -2
- package/catalog/agent/rules/changeset-release.md +4 -2
- package/catalog/agent/rules/ci-cost-local-first.md +139 -0
- package/catalog/agent/rules/ci-test-perf.md +5 -1
- package/catalog/agent/rules/cmd-execution.md +9 -0
- package/catalog/agent/rules/pre-implementation.md +2 -1
- package/catalog/agent/rules/test-scan-perf.md +80 -0
- package/catalog/agent/rules/workflow-skills-routing.md +9 -4
- package/catalog/agent/skills/autopilot/SKILL.md +48 -11
- package/catalog/agent/skills/claude/SKILL.md +7 -0
- package/catalog/agent/skills/codex/SKILL.md +7 -0
- package/catalog/agent/skills/fix/SKILL.md +36 -8
- package/catalog/agent/skills/grok/SKILL.md +7 -0
- package/catalog/agent/skills/investigate/SKILL.md +12 -1
- package/catalog/agent/skills/pll/SKILL.md +53 -48
- package/catalog/agent/skills/team/SKILL.md +26 -9
- package/catalog/agent/skills/ultragoal/SKILL.md +147 -19
- package/catalog/agent/skills/verify/SKILL.md +89 -51
- package/dist/esm/audit/blueprint-lifecycle-sql.d.ts +8 -0
- package/dist/esm/audit/blueprint-lifecycle-sql.js +25 -1
- package/dist/esm/audit/blueprint-pr-coverage.js +68 -7
- package/dist/esm/audit/registry.d.ts +4 -4
- package/dist/esm/audit/registry.js +3 -0
- package/dist/esm/audit/roadmap-links.js +6 -0
- package/dist/esm/audit/test-scan-perf.d.ts +18 -0
- package/dist/esm/audit/test-scan-perf.js +275 -0
- package/dist/esm/blueprint/lifecycle/engine.d.ts +9 -0
- package/dist/esm/blueprint/lifecycle/engine.js +53 -6
- package/dist/esm/blueprint/lifecycle/review-provenance.d.ts +6 -0
- package/dist/esm/blueprint/lifecycle/review-provenance.js +93 -12
- package/dist/esm/blueprint/markdown/helpers.js +6 -2
- package/dist/esm/ci/act-replay.js +110 -7
- package/dist/esm/ci/act-runner.d.ts +4 -0
- package/dist/esm/ci/act-runner.js +85 -26
- package/dist/esm/ci/act-worktree-git.d.ts +11 -0
- package/dist/esm/ci/act-worktree-git.js +219 -0
- package/dist/esm/ci/native-session-memory-cache.d.ts +9 -1
- package/dist/esm/ci/native-session-memory-cache.js +9 -1
- package/dist/esm/ci/vitest-ci-shards.d.ts +6 -4
- package/dist/esm/ci/vitest-ci-shards.js +6 -4
- package/dist/esm/cli/auto-update/guard-tombstone.d.ts +25 -0
- package/dist/esm/cli/auto-update/guard-tombstone.js +67 -0
- package/dist/esm/cli/auto-update/installer.d.ts +4 -17
- package/dist/esm/cli/auto-update/installer.js +6 -57
- package/dist/esm/cli/auto-update/self-invocation.d.ts +37 -0
- package/dist/esm/cli/auto-update/self-invocation.js +62 -0
- package/dist/esm/cli/commands/audit.js +4 -0
- package/dist/esm/cli/commands/blueprint/mutations.js +35 -18
- package/dist/esm/cli/commands/blueprint/router.js +27 -2
- package/dist/esm/cli/commands/ci.d.ts +8 -1
- package/dist/esm/cli/commands/ci.js +80 -21
- package/dist/esm/cli/commands/dash/index.js +3 -3
- package/dist/esm/cli/commands/dash/keymap.js +1 -0
- package/dist/esm/cli/commands/dash/launch-preferences.d.ts +15 -0
- package/dist/esm/cli/commands/dash/launch-preferences.js +46 -17
- package/dist/esm/cli/commands/dash/plan-once-attention.d.ts +32 -0
- package/dist/esm/cli/commands/dash/plan-once-attention.js +50 -0
- package/dist/esm/cli/commands/dash/plan-once-label.d.ts +7 -0
- package/dist/esm/cli/commands/dash/plan-once-label.js +5 -0
- package/dist/esm/cli/commands/dash/plan-once-membership.d.ts +67 -0
- package/dist/esm/cli/commands/dash/plan-once-membership.js +151 -0
- package/dist/esm/cli/commands/dash/plan-once-merge.d.ts +143 -0
- package/dist/esm/cli/commands/dash/plan-once-merge.js +238 -0
- package/dist/esm/cli/commands/dash/plan-once-schema.d.ts +73 -0
- package/dist/esm/cli/commands/dash/plan-once-schema.js +119 -0
- package/dist/esm/cli/commands/dash/plan-once.d.ts +142 -0
- package/dist/esm/cli/commands/dash/plan-once.js +261 -0
- package/dist/esm/cli/commands/dash/tui/attention-hud.d.ts +9 -0
- package/dist/esm/cli/commands/dash/tui/attention-hud.js +9 -0
- package/dist/esm/cli/commands/dash/tui/chat-bridge.d.ts +41 -0
- package/dist/esm/cli/commands/dash/tui/chat-bridge.js +73 -0
- package/dist/esm/cli/commands/dash/tui/chat-mode.d.ts +47 -0
- package/dist/esm/cli/commands/dash/tui/chat-mode.js +98 -0
- package/dist/esm/cli/commands/dash/tui/frame.d.ts +3 -0
- package/dist/esm/cli/commands/dash/tui/frame.js +3 -1
- package/dist/esm/cli/commands/dash/tui/ipc-protocol.d.ts +87 -0
- package/dist/esm/cli/commands/dash/tui/ipc-protocol.js +128 -0
- package/dist/esm/cli/commands/dash/tui/native-host.d.ts +34 -0
- package/dist/esm/cli/commands/dash/tui/native-host.js +256 -0
- package/dist/esm/cli/commands/dash/tui/native-path.d.ts +11 -0
- package/dist/esm/cli/commands/dash/tui/native-path.js +41 -0
- package/dist/esm/cli/commands/dash/tui/palette.d.ts +1 -1
- package/dist/esm/cli/commands/dash/tui/palette.js +14 -0
- package/dist/esm/cli/commands/dash/tui/runtime.js +311 -4
- package/dist/esm/cli/commands/dash/tui/state.d.ts +41 -0
- package/dist/esm/cli/commands/dash/tui/state.js +257 -4
- package/dist/esm/cli/commands/format.js +0 -2
- package/dist/esm/cli/commands/init/config.d.ts +0 -1
- package/dist/esm/cli/commands/init/config.js +1 -4
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/emitters/claude.d.ts +5 -6
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/emitters/claude.js +6 -13
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/ir.d.ts +0 -2
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/ir.js +0 -2
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/merge.d.ts +6 -3
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/merge.js +39 -26
- package/dist/esm/cli/commands/init/scaffolders/agent-kit-global/index.js +1 -1
- package/dist/esm/cli/commands/init/scaffolders/codex-mcp/index.js +61 -23
- package/dist/esm/cli/commands/logs.d.ts +15 -0
- package/dist/esm/cli/commands/logs.js +192 -3
- package/dist/esm/cli/commands/package-manager.js +2 -1
- package/dist/esm/cli/commands/quality-log-store.d.ts +1 -0
- package/dist/esm/cli/commands/quality-log-store.js +187 -51
- package/dist/esm/cli/commands/review.js +5 -8
- package/dist/esm/cli/commands/secrets.d.ts +1 -0
- package/dist/esm/cli/commands/secrets.js +4 -1
- package/dist/esm/cli/commands/self-install-guard.d.ts +14 -32
- package/dist/esm/cli/commands/self-install-guard.js +17 -63
- package/dist/esm/cli/direct-provider-launch.js +25 -1
- package/dist/esm/hooks/doctor.d.ts +15 -0
- package/dist/esm/hooks/doctor.js +56 -0
- package/dist/esm/hooks/guard-switch/index.js +8 -4
- package/dist/esm/hooks/post-tool/lint-after-edit.js +6 -4
- package/dist/esm/hooks/precompact/index.js +5 -3
- package/dist/esm/hooks/pretool-guard/validators/forbidden-commands.js +4 -4
- package/dist/esm/hooks/pretool-guard/validators/mcp-redirect.d.ts +0 -1
- package/dist/esm/hooks/pretool-guard/validators/mcp-redirect.js +8 -5
- package/dist/esm/hooks/pretool-guard/validators/worktree-discipline.d.ts +9 -7
- package/dist/esm/hooks/pretool-guard/validators/worktree-discipline.js +126 -14
- package/dist/esm/hooks/sessionstart/index.d.ts +10 -0
- package/dist/esm/hooks/sessionstart/index.js +61 -4
- package/dist/esm/hooks/shared/types.d.ts +11 -0
- package/dist/esm/hooks/shared/types.js +21 -0
- package/dist/esm/mcp/tools/_shared/audit-kinds.d.ts +1 -1
- package/dist/esm/mcp/tools/audit.d.ts +2 -1
- package/dist/esm/mcp/tools/audit.js +10 -0
- package/dist/esm/mcp/tools/audits.d.ts +1 -0
- package/dist/esm/mcp/tools/ci-act.js +9 -11
- package/dist/esm/paths/state-root.js +9 -0
- package/dist/esm/review/authority.js +17 -2
- package/dist/esm/review/availability.js +18 -5
- package/dist/esm/review/subject.d.ts +15 -0
- package/dist/esm/review/subject.js +105 -10
- package/dist/esm/runtime/executor.d.ts +1 -0
- package/dist/esm/runtime/executor.js +2 -1
- package/dist/esm/secret-gate/runner.d.ts +1 -0
- package/dist/esm/secret-gate/runner.js +4 -1
- package/dist/esm/session-memory/current-session.js +2 -0
- package/dist/esm/session-memory/native-runtime.js +5 -3
- package/dist/esm/session-memory/native-warm-markers.d.ts +18 -0
- package/dist/esm/session-memory/native-warm-markers.js +22 -0
- package/dist/esm/session-memory/sync/types.d.ts +4 -0
- package/dist/esm/session-memory/types.d.ts +3 -1
- package/dist/esm/session-memory/types.js +2 -0
- package/dist/esm/ultragoal/runtime.js +44 -2
- package/dist/esm/worktrees/current.d.ts +1 -0
- package/dist/esm/worktrees/current.js +1 -0
- package/dist/esm/worktrees/project-agent-surfaces.d.ts +1 -0
- package/dist/esm/worktrees/project-agent-surfaces.js +2 -1
- package/package.json +17 -14
|
@@ -2,8 +2,9 @@ import { spawnSync } from "node:child_process";
|
|
|
2
2
|
import { createHash } from "node:crypto";
|
|
3
3
|
import { readFileSync } from "node:fs";
|
|
4
4
|
import { runQaCommand } from "#cli/commands/qa.js";
|
|
5
|
-
import { validateTrackedReviewProvenance } from "#lifecycle/review-provenance.js";
|
|
5
|
+
import { collectV2ReviewProvenance, validateTrackedReviewProvenance, } from "#lifecycle/review-provenance.js";
|
|
6
6
|
import { evaluateRequiredChecks } from "#mcp/tools/_shared/required-checks.js";
|
|
7
|
+
import { createDeliverySubjectAtRef, createPlanSubjectAtRef } from "#review/subject.js";
|
|
7
8
|
import { scanBlueprintDirectory } from "#service/scanner.js";
|
|
8
9
|
import { resolveBlueprintRoot } from "#utils/blueprint-root.js";
|
|
9
10
|
import matter from "gray-matter";
|
|
@@ -105,6 +106,11 @@ async function collectPrProbe(cwd) {
|
|
|
105
106
|
function hasRequiredGreenChecks(checks) {
|
|
106
107
|
return evaluateRequiredChecks(checks).green;
|
|
107
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Validation needs two distinct reviewers bound to the current ultragoal source
|
|
111
|
+
* snapshot. Prefer legacy frontmatter+reviews.md; fall back to current v2 plan +
|
|
112
|
+
* delivery authorities (distinct lanes) when their subjects still match HEAD.
|
|
113
|
+
*/
|
|
108
114
|
function collectValidationEvidence(cwd, blueprintSlugs, sourceSnapshot) {
|
|
109
115
|
const entries = scanBlueprintDirectory({
|
|
110
116
|
baseDir: resolveBlueprintRoot(cwd),
|
|
@@ -115,7 +121,43 @@ function collectValidationEvidence(cwd, blueprintSlugs, sourceSnapshot) {
|
|
|
115
121
|
if (!entry)
|
|
116
122
|
return undefined;
|
|
117
123
|
const approvals = matter(readFileSync(entry.path, "utf8")).data.approvals;
|
|
118
|
-
|
|
124
|
+
const legacy = validateTrackedReviewProvenance(entry.path, approvals, { sourceSnapshot });
|
|
125
|
+
if (legacy.valid)
|
|
126
|
+
return legacy;
|
|
127
|
+
const stableSlug = slug.includes("/") ? (slug.split("/").pop() ?? slug) : slug;
|
|
128
|
+
let deliveryDigest;
|
|
129
|
+
let planDigest;
|
|
130
|
+
try {
|
|
131
|
+
deliveryDigest = createDeliverySubjectAtRef(cwd, "HEAD", stableSlug).digest;
|
|
132
|
+
planDigest = createPlanSubjectAtRef(cwd, "HEAD", stableSlug).digest;
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
const bind = (records) => records.map((record) => ({
|
|
138
|
+
reviewer: record.reviewer,
|
|
139
|
+
artifact: record.artifact,
|
|
140
|
+
sourceSnapshot,
|
|
141
|
+
targetHash: record.targetHash,
|
|
142
|
+
}));
|
|
143
|
+
const delivery = bind(collectV2ReviewProvenance(entry.path, "delivery", "HEAD").filter((record) => record.targetHash === deliveryDigest));
|
|
144
|
+
const plan = bind(collectV2ReviewProvenance(entry.path, "plan", "HEAD").filter((record) => record.targetHash === planDigest));
|
|
145
|
+
// Prefer delivery as code-review lane; plan as verify/architecture lane.
|
|
146
|
+
const byReviewer = new Map();
|
|
147
|
+
for (const record of [...plan, ...delivery]) {
|
|
148
|
+
byReviewer.set(record.reviewer, record);
|
|
149
|
+
}
|
|
150
|
+
const v2Records = [...byReviewer.values()];
|
|
151
|
+
const distinctReviewers = [...new Set(v2Records.map((record) => record.reviewer))];
|
|
152
|
+
const distinctArtifacts = [...new Set(v2Records.map((record) => record.artifact))];
|
|
153
|
+
return {
|
|
154
|
+
distinctArtifacts,
|
|
155
|
+
distinctReviewers,
|
|
156
|
+
records: v2Records,
|
|
157
|
+
valid: v2Records.length >= 2 &&
|
|
158
|
+
distinctReviewers.length === v2Records.length &&
|
|
159
|
+
distinctArtifacts.length === v2Records.length,
|
|
160
|
+
};
|
|
119
161
|
});
|
|
120
162
|
if (evaluations.some((evaluation) => evaluation?.valid !== true))
|
|
121
163
|
return undefined;
|
|
@@ -2,6 +2,7 @@ import { scaffoldAgent } from "#cli/commands/init/scaffold-agent";
|
|
|
2
2
|
import { readConfig } from "#cli/commands/init/config";
|
|
3
3
|
import { resolveCatalogDir } from "#cli/commands/init/index";
|
|
4
4
|
import { runUnifiedSync } from "#symlinker/unified-sync";
|
|
5
|
+
import { join } from "node:path";
|
|
5
6
|
/**
|
|
6
7
|
* Seed `.agent/` and project rules/skills into a managed worktree.
|
|
7
8
|
* Does not run full `wp setup` (hooks/home MCP plugins stay setup-owned).
|
|
@@ -11,7 +12,7 @@ export function projectWorktreeAgentSurfaces(input) {
|
|
|
11
12
|
scaffoldAgent({ catalogDir, repoRoot: input.worktreePath, options: {} });
|
|
12
13
|
const hosts = (readConfig(input.worktreePath) ?? readConfig(input.primaryRoot))?.hosts?.selected;
|
|
13
14
|
runUnifiedSync({
|
|
14
|
-
catalogDir,
|
|
15
|
+
catalogDir: join(catalogDir, "agent"),
|
|
15
16
|
consumerRoot: input.worktreePath,
|
|
16
17
|
...(hosts ? { hosts } : {}),
|
|
17
18
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webpresso/agent-kit",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.30",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "TypeScript-first agent harness for guarded develop/deploy workflows: wp CLI gates, MCP tools, hooks, memory, worktrees, secrets, audits, and evidence checks.",
|
|
6
6
|
"keywords": [
|
|
@@ -374,7 +374,7 @@
|
|
|
374
374
|
"format": "./bin/wp format",
|
|
375
375
|
"lint:pkg": "bun scripts/lint-pkg.ts && (command -v claude >/dev/null 2>&1 && claude plugin validate . || true)",
|
|
376
376
|
"blueprints:check": "./bin/wp audit blueprint-lifecycle",
|
|
377
|
-
"check:blueprint-done-ledger": "pnpm exec tsx scripts/check-blueprint-done-ledger.ts blueprints/in-progress/webpresso-desktop-app-collaborative-session-platform/_overview.md blueprints/completed/automation-control-plane-cli-mcp/_overview.md blueprints/
|
|
377
|
+
"check:blueprint-done-ledger": "pnpm exec tsx scripts/check-blueprint-done-ledger.ts blueprints/in-progress/webpresso-desktop-app-collaborative-session-platform/_overview.md blueprints/completed/automation-control-plane-cli-mcp/_overview.md blueprints/completed/desktop-ac1-honest-solid-dry/_overview.md",
|
|
378
378
|
"docs:check": "./bin/wp audit docs-frontmatter",
|
|
379
379
|
"catalog:check": "./bin/wp audit catalog-drift",
|
|
380
380
|
"license:check": "./bin/wp audit open-source-licenses",
|
|
@@ -399,6 +399,9 @@
|
|
|
399
399
|
"prepare": "husky",
|
|
400
400
|
"mutation": "./bin/wp test --mutation",
|
|
401
401
|
"e2e": "./bin/wp e2e --config playwright.config.ts",
|
|
402
|
+
"native:dash-tui:build": "cargo build --manifest-path native/dash-tui/Cargo.toml --release",
|
|
403
|
+
"native:dash-tui:test": "cargo test --manifest-path native/dash-tui/Cargo.toml",
|
|
404
|
+
"native:dash-tui:smoke": "cargo run --manifest-path native/dash-tui/Cargo.toml --release -- --smoke",
|
|
402
405
|
"native:session-memory:build": "cargo build --manifest-path native/session-memory-engine/Cargo.toml --package session-memory-napi --release --locked",
|
|
403
406
|
"native:session-memory:fmt": "cargo fmt --manifest-path native/session-memory-engine/Cargo.toml --all -- --check",
|
|
404
407
|
"native:session-memory:clippy": "cargo clippy --manifest-path native/session-memory-engine/Cargo.toml --all-targets --all-features -- -D warnings",
|
|
@@ -426,7 +429,7 @@
|
|
|
426
429
|
"@secretlint/secretlint-rule-preset-recommend": "^13.0.2",
|
|
427
430
|
"@typescript/typescript6": "^6.0.2",
|
|
428
431
|
"@webpresso/cli-contract": "^0.2.0",
|
|
429
|
-
"better-sqlite3": "^
|
|
432
|
+
"better-sqlite3": "^13.0.1",
|
|
430
433
|
"cac": "^7.0.0",
|
|
431
434
|
"cli-truncate": "^6.1.1",
|
|
432
435
|
"env-paths": "^4.0.0",
|
|
@@ -499,16 +502,16 @@
|
|
|
499
502
|
"setupWpActionRef": "c2c71a7a4be446fc6858e6b57bf55a11ccfa2d88"
|
|
500
503
|
},
|
|
501
504
|
"optionalDependencies": {
|
|
502
|
-
"@webpresso/agent-kit-runtime-darwin-arm64": "3.1.
|
|
503
|
-
"@webpresso/agent-kit-runtime-darwin-x64": "3.1.
|
|
504
|
-
"@webpresso/agent-kit-runtime-linux-x64": "3.1.
|
|
505
|
-
"@webpresso/agent-kit-runtime-linux-arm64": "3.1.
|
|
506
|
-
"@webpresso/agent-kit-runtime-windows-x64": "3.1.
|
|
507
|
-
"@webpresso/agent-kit-session-memory-darwin-x64": "3.1.
|
|
508
|
-
"@webpresso/agent-kit-session-memory-darwin-arm64": "3.1.
|
|
509
|
-
"@webpresso/agent-kit-session-memory-linux-x64": "3.1.
|
|
510
|
-
"@webpresso/agent-kit-session-memory-linux-arm64": "3.1.
|
|
511
|
-
"@webpresso/agent-kit-session-memory-win32-x64": "3.1.
|
|
512
|
-
"@webpresso/agent-kit-session-memory-win32-arm64": "3.1.
|
|
505
|
+
"@webpresso/agent-kit-runtime-darwin-arm64": "3.1.30",
|
|
506
|
+
"@webpresso/agent-kit-runtime-darwin-x64": "3.1.30",
|
|
507
|
+
"@webpresso/agent-kit-runtime-linux-x64": "3.1.30",
|
|
508
|
+
"@webpresso/agent-kit-runtime-linux-arm64": "3.1.30",
|
|
509
|
+
"@webpresso/agent-kit-runtime-windows-x64": "3.1.30",
|
|
510
|
+
"@webpresso/agent-kit-session-memory-darwin-x64": "3.1.30",
|
|
511
|
+
"@webpresso/agent-kit-session-memory-darwin-arm64": "3.1.30",
|
|
512
|
+
"@webpresso/agent-kit-session-memory-linux-x64": "3.1.30",
|
|
513
|
+
"@webpresso/agent-kit-session-memory-linux-arm64": "3.1.30",
|
|
514
|
+
"@webpresso/agent-kit-session-memory-win32-x64": "3.1.30",
|
|
515
|
+
"@webpresso/agent-kit-session-memory-win32-arm64": "3.1.30"
|
|
513
516
|
}
|
|
514
517
|
}
|