@event4u/agent-config 9.34.0 → 9.36.0
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/CHANGELOG.md +64 -77
- package/CONTRIBUTING.md +23 -14
- package/dist/agent-src/commands/analyze/reference-repo.md +135 -42
- package/dist/agent-src/commands/roadmap/next.md +37 -5
- package/dist/agent-src/contexts/augment-infrastructure.md +1 -1
- package/dist/agent-src/rules/design-review-after-ui-write.md +53 -6
- package/dist/agent-src/rules/improve-before-implement.md +1 -1
- package/dist/agent-src/rules/ui-audit-gate.md +35 -0
- package/dist/agent-src/scripts/roadmap_gates.ts +119 -4
- package/dist/agent-src/skills/design-system-capture/SKILL.md +2 -2
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +1 -1
- package/dist/agent-src/skills/fe-design/SKILL.md +84 -12
- package/dist/agent-src/skills/fe-design/evals/triggers.json +11 -3
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +5 -5
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-writing/SKILL.md +24 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +29 -0
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +25 -0
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/scripts/memory_lookup.ts +1 -2
- package/dist/agent-src/templates/scripts/memory_signal.ts +2 -4
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_gate.ts +35 -5
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/staged_confirmation.ts +252 -0
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/staged_confirmation_store.ts +307 -0
- package/dist/cli/registry.js +2 -2
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli-delegate/{chunk-YPAWXXXR.js → chunk-55RI5UXK.js} +17 -0
- package/dist/cli-delegate/{chunk-UVKNIJH2.js → chunk-JP53LNVT.js} +12 -0
- package/dist/cli-delegate/{chunk-736JCWLM.js → chunk-M2DPGFZ4.js} +10 -0
- package/dist/cli-delegate/{chunk-MA4GFWDY.js → chunk-NR7HSN3P.js} +2 -2
- package/dist/cli-delegate/{chunk-REMEZSVP.js → chunk-SFGARMAB.js} +13 -3
- package/dist/cli-delegate/{chunk-DS6BLDMG.js → chunk-U7CMAIOC.js} +7 -2
- package/dist/cli-delegate/cmd_conformance.js +4 -4
- package/dist/cli-delegate/cmd_doctor.js +3 -3
- package/dist/cli-delegate/cmd_export.js +3 -3
- package/dist/cli-delegate/cmd_handoff.js +1 -1
- package/dist/cli-delegate/cmd_migrate.js +1 -1
- package/dist/cli-delegate/cmd_prune.js +3 -3
- package/dist/cli-delegate/cmd_refresh.js +1 -1
- package/dist/cli-delegate/cmd_session_recycle.js +8 -1
- package/dist/cli-delegate/cmd_settings_migrate.js +3 -3
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +3 -3
- package/dist/cli-delegate/cmd_uninstall.js +3 -3
- package/dist/cli-delegate/cmd_upgrade.js +1 -1
- package/dist/cli-delegate/cmd_validate.js +3 -3
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +14 -14
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +1 -1
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +2 -2
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +2 -2
- package/dist/hooks/dispatch.js +789 -401
- package/dist/install/install.mjs +21 -4
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +99 -7
- package/dist/router.json +1 -1
- package/dist/server/schemas/settings.js +6 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/contracts/settings-classes.md +5 -2
- package/docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md +46 -4
- package/package.json +2 -2
- package/src/agent-src/scripts/roadmap_gates.ts +119 -4
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/memory_lookup.ts +1 -2
- package/src/agent-src/templates/scripts/memory_signal.ts +2 -4
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_gate.ts +35 -5
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/staged_confirmation.ts +252 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/staged_confirmation_store.ts +307 -0
- package/src/config/agent-settings.template.yml +43 -2
- package/src/config/gate-coverage.yml +12 -0
- package/src/config/quorum-attendance-budget.json +10 -2
- package/src/scripts/_cli/cmd_doctor.ts +32 -0
- package/src/scripts/_cli/cmd_migrate.ts +26 -3
- package/src/scripts/_cli/cmd_refresh.ts +29 -0
- package/src/scripts/_cli/cmd_session_recycle.ts +40 -2
- package/src/scripts/_dispatch.bash +6 -2
- package/src/scripts/_lib/hook_settings.ts +79 -0
- package/src/scripts/_lib/session_register.ts +67 -1
- package/src/scripts/_lib/ui_surface.ts +97 -0
- package/src/scripts/ai_council/config.ts +60 -0
- package/src/scripts/ai_council/events_log.ts +103 -4
- package/src/scripts/ai_council/quorum.ts +83 -6
- package/src/scripts/capture_skill_catalogue.ts +483 -0
- package/src/scripts/council_cli.ts +36 -1
- package/src/scripts/hook_manifest.yaml +18 -3
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/design_slop_hook.ts +1 -1
- package/src/scripts/hooks/turn_end_gate_hook.ts +172 -11
- package/src/scripts/hooks/ui_route_nudge_hook.ts +250 -0
- package/src/scripts/lint_framework_leakage.ts +195 -28
- package/src/scripts/lint_framework_leakage_allowlist.json +94 -86
- package/src/scripts/lint_roadmap_complexity.ts +60 -0
- package/src/scripts/lint_rule_skill_pack_reach.ts +263 -0
- package/src/scripts/memory_lookup.ts +1 -2
- package/src/scripts/report_consultation_rate.ts +358 -0
- package/src/scripts/report_skill_activation.ts +5 -1
- package/src/scripts/schemas/command.schema.json +4 -0
- package/src/scripts/schemas/skill.schema.json +4 -0
- package/src/scripts/session_register_hook.ts +238 -18
- package/src/scripts/sessions_cli.ts +377 -12
- package/src/server/schemas/settings.ts +12 -0
- /package/dist/agent-src/skills/design-system-capture/{reference → references}/design-system-json.md +0 -0
- /package/dist/agent-src/skills/prediction-pool-optimizer/{reference → references}/ev-fixtures.md +0 -0
- /package/dist/agent-src/skills/prediction-pool-optimizer/{reference → references}/odds-and-bonus.md +0 -0
- /package/dist/agent-src/skills/react-shadcn-ui/{reference → references}/registry.md +0 -0
package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/staged_confirmation_store.ts
ADDED
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Staged-confirmation store — the I/O half, and the half that makes
|
|
3
|
+
* exactly-once real.
|
|
4
|
+
*
|
|
5
|
+
* `staged_confirmation.ts` decides what a confirmation attempt MEANS. It cannot
|
|
6
|
+
* make the transition happen only once: two processes that both read a
|
|
7
|
+
* `pending` record and both conclude `execute` is a check-then-act race, and no
|
|
8
|
+
* pure function closes it. So the claim is a **directory rename**, which the
|
|
9
|
+
* filesystem performs atomically — the first caller moves
|
|
10
|
+
* `pending/<token>.json` to `resolved/`, every later caller gets `ENOENT` and
|
|
11
|
+
* learns the stage is already taken.
|
|
12
|
+
*
|
|
13
|
+
* That is also why the state lives in the path and not only in a field: a
|
|
14
|
+
* read-modify-write of a `state:` key would reopen exactly the window the
|
|
15
|
+
* rename closes.
|
|
16
|
+
*
|
|
17
|
+
* Records live under `agents/runtime/staged-confirmations/`, which the repo
|
|
18
|
+
* `.gitignore` already covers via the `/agents/runtime/` catch-all — a staged
|
|
19
|
+
* action is machine-generated local state, never a tracked artefact. The store
|
|
20
|
+
* mirrors `_lib/self_repair_store.ts`: one file per identity, every read
|
|
21
|
+
* tolerant of a malformed file, and no throw on a missing directory.
|
|
22
|
+
*/
|
|
23
|
+
import * as fs from 'node:fs';
|
|
24
|
+
import * as path from 'node:path';
|
|
25
|
+
|
|
26
|
+
import {
|
|
27
|
+
confirmOnce,
|
|
28
|
+
declineStage,
|
|
29
|
+
type ConfirmOutcome,
|
|
30
|
+
type StageState,
|
|
31
|
+
type StagedAction,
|
|
32
|
+
stageStatus,
|
|
33
|
+
} from './staged_confirmation.js';
|
|
34
|
+
|
|
35
|
+
export const STORE_REL = path.join('agents', 'runtime', 'staged-confirmations');
|
|
36
|
+
|
|
37
|
+
export function storeDir(root: string): string {
|
|
38
|
+
return path.join(root, STORE_REL);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function pendingDir(root: string): string {
|
|
42
|
+
return path.join(storeDir(root), 'pending');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function resolvedDir(root: string): string {
|
|
46
|
+
return path.join(storeDir(root), 'resolved');
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* A token is a filename before it is an identifier, so every site that turns
|
|
51
|
+
* one into a path checks it first — the read verbs, the write verb, and the
|
|
52
|
+
* record guard itself.
|
|
53
|
+
*
|
|
54
|
+
* `deriveToken` returns a 16-char sha256 prefix, so a token this module mints
|
|
55
|
+
* is always safe. Everything else is a way in: `readPending`,
|
|
56
|
+
* `claimConfirmation` and `declineConfirmation` take a caller-supplied token;
|
|
57
|
+
* `putPending` joins `stage.token` from a caller-built record (verified: it
|
|
58
|
+
* wrote outside the store root); and `isStage` accepted any string, so a record
|
|
59
|
+
* written by something else carried its token into the prune path. All four are
|
|
60
|
+
* guarded, and `path.join(pendingDir(root), '../x.json')` resolving outside
|
|
61
|
+
* `pending/` is what makes that necessary.
|
|
62
|
+
*/
|
|
63
|
+
const _TOKEN_RE = /^[0-9a-f]{8,64}$/;
|
|
64
|
+
|
|
65
|
+
export function isSafeToken(token: string): boolean {
|
|
66
|
+
return _TOKEN_RE.test(token);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Every field the module later reads, `staged_at` included.
|
|
71
|
+
*
|
|
72
|
+
* It checked four of five while still asserting `v is StagedAction`, so a
|
|
73
|
+
* record that was valid JSON but carried no `staged_at` passed the guard and
|
|
74
|
+
* reached `listPending`'s `staged_at.localeCompare(...)`: a TypeError thrown
|
|
75
|
+
* through `roadmap_gates.renderPending`, i.e. one malformed file on disk taking
|
|
76
|
+
* out a shipped gate. An unsound guard is worse than no guard — it makes the
|
|
77
|
+
* caller's `!== null` check read as a proof that it is not.
|
|
78
|
+
*/
|
|
79
|
+
function isStage(v: unknown): v is StagedAction {
|
|
80
|
+
if (typeof v !== 'object' || v === null) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
const s = v as Partial<StagedAction>;
|
|
84
|
+
return (
|
|
85
|
+
typeof s.token === 'string' &&
|
|
86
|
+
isSafeToken(s.token) &&
|
|
87
|
+
typeof s.action === 'string' &&
|
|
88
|
+
typeof s.object === 'string' &&
|
|
89
|
+
typeof s.staged_at === 'string' &&
|
|
90
|
+
typeof s.expires_at === 'string'
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function readStageFile(file: string): StagedAction | null {
|
|
95
|
+
try {
|
|
96
|
+
const parsed: unknown = JSON.parse(fs.readFileSync(file, 'utf-8'));
|
|
97
|
+
return isStage(parsed) ? parsed : null;
|
|
98
|
+
} catch {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function writeStageFile(file: string, stage: StagedAction): void {
|
|
104
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
105
|
+
fs.writeFileSync(file, `${JSON.stringify(stage, null, 2)}\n`, 'utf-8');
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Persist a freshly staged action. Returns the path written.
|
|
110
|
+
*
|
|
111
|
+
* Throws on an unsafe token rather than returning: a caller reaching here with
|
|
112
|
+
* one built the record itself and has a bug, and `writeStageFile` creates
|
|
113
|
+
* directories, so a silent refusal would look like a successful stage nothing
|
|
114
|
+
* can ever confirm.
|
|
115
|
+
*/
|
|
116
|
+
export function putPending(root: string, stage: StagedAction): string {
|
|
117
|
+
if (!isSafeToken(stage.token)) {
|
|
118
|
+
throw new Error(
|
|
119
|
+
`staged-confirmation: refusing to write under an unsafe token '${stage.token}' — ` +
|
|
120
|
+
'a token is a filename and must match the deriveToken shape',
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
const file = path.join(pendingDir(root), `${stage.token}.json`);
|
|
124
|
+
writeStageFile(file, stage);
|
|
125
|
+
return file;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export function readPending(root: string, token: string): StagedAction | null {
|
|
129
|
+
if (!isSafeToken(token)) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
return readStageFile(path.join(pendingDir(root), `${token}.json`));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export function readResolved(root: string, token: string): StagedAction | null {
|
|
136
|
+
if (!isSafeToken(token)) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
return readStageFile(path.join(resolvedDir(root), `${token}.json`));
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Every stage still in `pending/`, with its effective status at `now` so an
|
|
144
|
+
* expired one is never rendered as awaiting approval. Sorted by `staged_at`
|
|
145
|
+
* (oldest first, ties by token) so two runs on an unchanged store print
|
|
146
|
+
* byte-identical output.
|
|
147
|
+
*/
|
|
148
|
+
export function listPending(
|
|
149
|
+
root: string,
|
|
150
|
+
now: number,
|
|
151
|
+
): { stage: StagedAction; status: StageState | 'expired' }[] {
|
|
152
|
+
let names: string[];
|
|
153
|
+
try {
|
|
154
|
+
names = fs.readdirSync(pendingDir(root));
|
|
155
|
+
} catch {
|
|
156
|
+
return [];
|
|
157
|
+
}
|
|
158
|
+
const out: { stage: StagedAction; status: StageState | 'expired' }[] = [];
|
|
159
|
+
for (const n of names.sort()) {
|
|
160
|
+
if (!n.endsWith('.json')) {
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
const stage = readStageFile(path.join(pendingDir(root), n));
|
|
164
|
+
if (stage !== null) {
|
|
165
|
+
out.push({ stage, status: stageStatus(stage, now) });
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
out.sort(
|
|
169
|
+
(a, b) =>
|
|
170
|
+
a.stage.staged_at.localeCompare(b.stage.staged_at) ||
|
|
171
|
+
a.stage.token.localeCompare(b.stage.token),
|
|
172
|
+
);
|
|
173
|
+
return out;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Atomically claim a pending stage and decide the outcome.
|
|
178
|
+
*
|
|
179
|
+
* Order matters and is the whole mechanism:
|
|
180
|
+
*
|
|
181
|
+
* 1. Read the record. An absent one is `token-mismatch` — from the caller's
|
|
182
|
+
* side an unknown token and a wrong token are the same fact, and inventing
|
|
183
|
+
* a third outcome for "was never staged" would only be actionable if the
|
|
184
|
+
* store were a public index, which it is not.
|
|
185
|
+
* 2. Ask `confirmOnce` what the outcome WOULD be. A mismatch, a decline, or
|
|
186
|
+
* an expiry never claims anything — a stale surface must not consume a
|
|
187
|
+
* stage a human might still legitimately confirm.
|
|
188
|
+
* 3. Only for `execute`: rename `pending/` → `resolved/`. That is the claim.
|
|
189
|
+
* `ENOENT` means a concurrent caller won the race, so this caller reports
|
|
190
|
+
* `already-confirmed` and does NOT act — the exactly-once guarantee.
|
|
191
|
+
* 4. Write the confirmed record into `resolved/`, overwriting the moved file
|
|
192
|
+
* with the same content plus `state`/`resolved_at`.
|
|
193
|
+
*/
|
|
194
|
+
export function claimConfirmation(
|
|
195
|
+
root: string,
|
|
196
|
+
token: string,
|
|
197
|
+
now: number,
|
|
198
|
+
): { outcome: ConfirmOutcome; stage: StagedAction | null } {
|
|
199
|
+
if (!isSafeToken(token)) {
|
|
200
|
+
// Nothing this module staged can have that shape, so the honest answer
|
|
201
|
+
// is the same one an unknown token gets — and refusing here is what
|
|
202
|
+
// keeps the rename below off an arbitrary path.
|
|
203
|
+
return { outcome: 'token-mismatch', stage: null };
|
|
204
|
+
}
|
|
205
|
+
const pendingFile = path.join(pendingDir(root), `${token}.json`);
|
|
206
|
+
const stage = readStageFile(pendingFile);
|
|
207
|
+
if (stage === null) {
|
|
208
|
+
const already = readResolved(root, token);
|
|
209
|
+
if (already !== null) {
|
|
210
|
+
// `pruneExpired` moves a stage here WITHOUT rewriting `state`, so the
|
|
211
|
+
// status is derived rather than read off the field — otherwise an
|
|
212
|
+
// expired stage swept out of `pending/` would report as confirmed,
|
|
213
|
+
// which is the one wrong answer available here.
|
|
214
|
+
const status = stageStatus(already, now);
|
|
215
|
+
const outcome: ConfirmOutcome =
|
|
216
|
+
status === 'expired' ? 'expired' : status === 'declined' ? 'declined' : 'already-confirmed';
|
|
217
|
+
return { outcome, stage: already };
|
|
218
|
+
}
|
|
219
|
+
return { outcome: 'token-mismatch', stage: null };
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
const decided = confirmOnce(stage, token, now);
|
|
223
|
+
if (decided.outcome !== 'execute') {
|
|
224
|
+
return decided;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
const resolvedFile = path.join(resolvedDir(root), `${token}.json`);
|
|
228
|
+
fs.mkdirSync(resolvedDir(root), { recursive: true });
|
|
229
|
+
try {
|
|
230
|
+
fs.renameSync(pendingFile, resolvedFile);
|
|
231
|
+
} catch {
|
|
232
|
+
// Lost the race, or the pending file vanished between the read and the
|
|
233
|
+
// rename. Either way this caller has NOT claimed the stage and must not
|
|
234
|
+
// act on it.
|
|
235
|
+
return { outcome: 'already-confirmed', stage: readResolved(root, token) ?? stage };
|
|
236
|
+
}
|
|
237
|
+
writeStageFile(resolvedFile, decided.stage);
|
|
238
|
+
return decided;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/** Decline a pending stage. Same claim discipline as `claimConfirmation`. */
|
|
242
|
+
export function declineConfirmation(
|
|
243
|
+
root: string,
|
|
244
|
+
token: string,
|
|
245
|
+
now: number,
|
|
246
|
+
): { declined: boolean; stage: StagedAction | null } {
|
|
247
|
+
if (!isSafeToken(token)) {
|
|
248
|
+
return { declined: false, stage: null };
|
|
249
|
+
}
|
|
250
|
+
const pendingFile = path.join(pendingDir(root), `${token}.json`);
|
|
251
|
+
const stage = readStageFile(pendingFile);
|
|
252
|
+
if (stage === null) {
|
|
253
|
+
return { declined: false, stage: readResolved(root, token) };
|
|
254
|
+
}
|
|
255
|
+
const decided = declineStage(stage, token, now);
|
|
256
|
+
if (!decided.declined) {
|
|
257
|
+
return { declined: false, stage };
|
|
258
|
+
}
|
|
259
|
+
const resolvedFile = path.join(resolvedDir(root), `${token}.json`);
|
|
260
|
+
fs.mkdirSync(resolvedDir(root), { recursive: true });
|
|
261
|
+
try {
|
|
262
|
+
fs.renameSync(pendingFile, resolvedFile);
|
|
263
|
+
} catch {
|
|
264
|
+
return { declined: false, stage: readResolved(root, token) ?? stage };
|
|
265
|
+
}
|
|
266
|
+
writeStageFile(resolvedFile, decided.stage);
|
|
267
|
+
return { declined: true, stage: decided.stage };
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Move expired stages out of `pending/` so the enumeration stays a list of
|
|
272
|
+
* live decisions. Housekeeping only — `stageStatus` already derives expiry, so
|
|
273
|
+
* skipping the sweep changes what is *listed*, never what may execute.
|
|
274
|
+
*/
|
|
275
|
+
export function pruneExpired(root: string, now: number): number {
|
|
276
|
+
let names: string[];
|
|
277
|
+
try {
|
|
278
|
+
names = fs.readdirSync(pendingDir(root));
|
|
279
|
+
} catch {
|
|
280
|
+
return 0;
|
|
281
|
+
}
|
|
282
|
+
let moved = 0;
|
|
283
|
+
for (const name of names.sort()) {
|
|
284
|
+
if (!name.endsWith('.json')) {
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
// Move the file that was ENUMERATED, never a path rebuilt from the
|
|
288
|
+
// record's `token` field. The two disagree whenever a filename and its
|
|
289
|
+
// token do — a record written by anything but `putPending` — and the
|
|
290
|
+
// rebuilt path then hits ENOENT, gets swallowed by the catch below, and
|
|
291
|
+
// the stage sits in `pending/` forever while `moved` under-reports it.
|
|
292
|
+
const from = path.join(pendingDir(root), name);
|
|
293
|
+
const stage = readStageFile(from);
|
|
294
|
+
if (stage === null || stageStatus(stage, now) !== 'expired') {
|
|
295
|
+
continue;
|
|
296
|
+
}
|
|
297
|
+
const to = path.join(resolvedDir(root), name);
|
|
298
|
+
fs.mkdirSync(resolvedDir(root), { recursive: true });
|
|
299
|
+
try {
|
|
300
|
+
fs.renameSync(from, to);
|
|
301
|
+
} catch {
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
moved += 1;
|
|
305
|
+
}
|
|
306
|
+
return moved;
|
|
307
|
+
}
|
package/dist/cli/registry.js
CHANGED
|
@@ -56,13 +56,13 @@ export const REGISTRY = [
|
|
|
56
56
|
{ name: 'mcp:run', disposition: 'delegate', synopsis: 'Run the built-in MCP server over stdio (experimental).' },
|
|
57
57
|
{ name: 'mcp-server', disposition: 'native', synopsis: 'Turnkey read-only stdio MCP server over the bundled content (no repo clone; ADR-085).' },
|
|
58
58
|
{ name: 'use', disposition: 'delegate', synopsis: 'Switch the active experience/profile (writes profile.id).' },
|
|
59
|
-
{ name: 'sessions:list', disposition: 'delegate', synopsis: 'List live agent sessions
|
|
59
|
+
{ name: 'sessions:list', disposition: 'delegate', synopsis: 'List live agent sessions plus unmerged branches held by other worktrees; --json, --branches.' },
|
|
60
60
|
{ name: 'sessions:claim', disposition: 'delegate', synopsis: 'Claim a roadmap for this session so other sessions skip it; --release clears it.' },
|
|
61
61
|
{ name: 'session:recycle', disposition: 'delegate', synopsis: 'Validate + write the main-session recycle envelope (--verify validates only); the successor resumes from it after /clear.' },
|
|
62
62
|
{ name: 'roadmap:progress', disposition: 'delegate', synopsis: 'Regenerate agents/roadmaps-progress.md from open roadmaps.' },
|
|
63
63
|
{ name: 'roadmap:progress-check', disposition: 'delegate', synopsis: 'Fail if agents/roadmaps-progress.md is stale (for CI).' },
|
|
64
64
|
{ name: 'roadmap:archive', disposition: 'delegate', synopsis: 'Archive completed roadmaps (PR-gate sweep).' },
|
|
65
|
-
{ name: 'gates', disposition: 'delegate', synopsis: 'Open decisions that need you, as actions — owner-filtered roadmap blockers; --all, --json, --reply.' },
|
|
65
|
+
{ name: 'gates', disposition: 'delegate', synopsis: 'Open decisions that need you, as actions — owner-filtered roadmap blockers; --all, --json, --reply, --pending (staged requires_confirmation actions).' },
|
|
66
66
|
{ name: 'capabilities:index', disposition: 'delegate', synopsis: 'Regenerate CAPABILITIES.yaml (the package coverage index); --check for CI.' },
|
|
67
67
|
{ name: 'affected', disposition: 'delegate', synopsis: 'Artefacts related to <artefact> via the discovery relation-graph (BFS).' },
|
|
68
68
|
{ name: 'graph-explain', disposition: 'delegate', synopsis: 'Seed on a <concept>, expand 2 hops over the discovery relation-graph with a node budget.' },
|
package/dist/cli/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/cli/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/cli/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,11 @@ var import_yaml = __toESM(require_dist(), 1);
|
|
|
28
28
|
import * as fs from "node:fs";
|
|
29
29
|
import * as os from "node:os";
|
|
30
30
|
import * as path from "node:path";
|
|
31
|
+
|
|
32
|
+
// src/scripts/ai_council/quorum.ts
|
|
33
|
+
var SOLO_FLOOR_MIN_PRESENT = 2;
|
|
34
|
+
|
|
35
|
+
// src/scripts/ai_council/config.ts
|
|
31
36
|
var _VALID_PROVIDERS = /* @__PURE__ */ new Set([
|
|
32
37
|
"anthropic",
|
|
33
38
|
"openai",
|
|
@@ -344,6 +349,9 @@ function _build_config(raw, source_path) {
|
|
|
344
349
|
_asDict(_getOr(raw, "cli_call_budget", {}))
|
|
345
350
|
);
|
|
346
351
|
const quorum = _build_quorum(_get(raw, "quorum", "majority"));
|
|
352
|
+
const quorum_min_present = _build_quorum_min_present(
|
|
353
|
+
_get(raw, "quorum_min_present", SOLO_FLOOR_MIN_PRESENT)
|
|
354
|
+
);
|
|
347
355
|
const necessity_classifier = _build_necessity_classifier(
|
|
348
356
|
_asDict(_getOr(raw, "necessity_classifier", {}))
|
|
349
357
|
);
|
|
@@ -392,6 +400,7 @@ function _build_config(raw, source_path) {
|
|
|
392
400
|
consensus_scoring: consensus,
|
|
393
401
|
cli_call_budget,
|
|
394
402
|
quorum,
|
|
403
|
+
quorum_min_present,
|
|
395
404
|
necessity_classifier,
|
|
396
405
|
model_downgrade,
|
|
397
406
|
debate,
|
|
@@ -1219,6 +1228,14 @@ function _build_quorum(raw) {
|
|
|
1219
1228
|
`\`quorum\`=${_pyRepr(raw)} must be 'majority' or an integer >= 1 (got ${_pyTypeName(raw)}).`
|
|
1220
1229
|
);
|
|
1221
1230
|
}
|
|
1231
|
+
function _build_quorum_min_present(raw) {
|
|
1232
|
+
if (_isInt(raw) && raw >= 1) {
|
|
1233
|
+
return raw;
|
|
1234
|
+
}
|
|
1235
|
+
throw new CouncilConfigError(
|
|
1236
|
+
`\`quorum_min_present\`=${_pyRepr(raw)} must be an integer >= 1 (got ${_pyTypeName(raw)}).`
|
|
1237
|
+
);
|
|
1238
|
+
}
|
|
1222
1239
|
function _build_advisor(name, cfg) {
|
|
1223
1240
|
if (!_isDict(cfg)) {
|
|
1224
1241
|
throw new CouncilConfigError(`advisors.${name}: must be a mapping.`);
|
|
@@ -4068,6 +4068,7 @@ var modelAutoSwitch = external_exports.enum(["auto", "suggest", "off"]);
|
|
|
4068
4068
|
var leanProjectionMode = external_exports.enum(["eager-all", "thin"]);
|
|
4069
4069
|
var projectionMode = external_exports.enum(["legacy-all", "scoped"]);
|
|
4070
4070
|
var memoryCadence = external_exports.enum(["auto", "always", "never"]);
|
|
4071
|
+
var projectAudience = external_exports.enum(["self", "internal", "client", "public"]);
|
|
4071
4072
|
var settingsSchema = external_exports.object({
|
|
4072
4073
|
agent_config_version: external_exports.string().default("").describe(
|
|
4073
4074
|
'Pin the package to an exact semver (e.g. "1.4.2") so all teammates load the same skill / rule set. Leave empty to track whatever is installed locally \u2014 useful for the maintainers of this package, risky for production projects.'
|
|
@@ -4172,6 +4173,9 @@ var settingsSchema = external_exports.object({
|
|
|
4172
4173
|
),
|
|
4173
4174
|
improvement_pr_branch_prefix: external_exports.string().default("improve/agent-").describe(
|
|
4174
4175
|
'Branch-name prefix for improvement PRs the agent opens against project.upstream_repo (e.g. "improve/agent-add-react-skill"). Pick a prefix your repo conventions allow.'
|
|
4176
|
+
),
|
|
4177
|
+
audience: projectAudience.default("public").describe(
|
|
4178
|
+
'Who this project is built for \u2014 read by the demand gate (\xA7 8-pre of docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md), whose L0-L4 ladder measures MARKET demand and is meaningless where no market is intended. self = a tool its maintainer builds for themselves; the gate is inert and work is classified L-self (build) instead of being deferred for lack of a user population nobody wants. internal = a team tool; only "what breaks without it?" survives. client = built for a named client, who is the requester rather than a market segment. public (default) = a product with an intended market; full three-question gate, behaviour unchanged from before this key existed.'
|
|
4175
4179
|
)
|
|
4176
4180
|
}),
|
|
4177
4181
|
github: external_exports.object({
|
|
@@ -4539,6 +4543,11 @@ var settingsSchema = external_exports.object({
|
|
|
4539
4543
|
"PreToolUse anti-slop nudge (road-to-anti-slop-detector Phase 3). Default off. When on, runs the lint_design_slop registry against about-to-be-written UI content and WARNS (never blocks) on P0/P1 aesthetic tells (side-stripe, gradient-text, magic z-index, \u2026). Flags are rebuttable via DESIGN.md / design-slop-disable. Anti-loop: a file::rule signature surfaced 3x goes silent. Host-limited convenience layer; the universal gate is the lint_design_slop linter/CI."
|
|
4540
4544
|
)
|
|
4541
4545
|
}).default({}),
|
|
4546
|
+
ui_route_nudge: external_exports.object({
|
|
4547
|
+
enabled: external_exports.boolean().default(false).describe(
|
|
4548
|
+
"PreToolUse UI-route nudge (road-to-frontend-skill-application Phase 4). Default off. When on, a Write/Edit to a UI surface with no design consultation latched this session WARNS (never blocks) naming the route \u2014 run existing-ui-audit, then the fe-design loop. A read or search touching fe-design / existing-ui-audit / design-review / design-intelligence latches consultation and silences it for the session. Anti-loop: at most 2 nudges per session. It does not read the rules: the UI-surface decision comes from _lib/ui_surface.ts and no code parses rule frontmatter, so this runs parallel to the two UI rules rather than consuming their triggers, and a test keeps the sets from drifting. It is a nudge, so their enforced_by: none stays accurate."
|
|
4549
|
+
)
|
|
4550
|
+
}).default({}),
|
|
4542
4551
|
code_graph: external_exports.object({
|
|
4543
4552
|
enabled: external_exports.boolean().default(false).describe(
|
|
4544
4553
|
"PreToolUse code-graph nudge (ADR-124 Phase 4). Default off. When on AND a native code-graph cache or a consumer-shipped graph.json/SCIP index is present, warns once per session (never blocks) as the agent is about to Grep/Glob or Read a source file \u2014 query the graph first for who-calls/where-used/impact questions (or rebuild if stale, build if absent). Source G\u2019s strict block-first-read mode is deliberately un-ported."
|
|
@@ -4553,6 +4562,9 @@ var settingsSchema = external_exports.object({
|
|
|
4553
4562
|
),
|
|
4554
4563
|
language: external_exports.boolean().default(true).describe(
|
|
4555
4564
|
"Detector B of the turn-end gate: refuse a turn whose reply is not in the pinned language (19 measured occurrences). Fenced code, inline code, quoted tool output, tables, URLs and paths are stripped first, and the remainder is then scored LEAD-FIRST by the same classifier that sets the pin \u2014 so the verdict usually comes from the reply opening, not from all of it. Sharing that classifier is deliberate: it stops the pin and the detector disagreeing about a turn. Accepted opt-in spellings for the switches below include YAML true/false and yes/no/on/off. Inert while hooks.turn_end_gate.enabled is false."
|
|
4565
|
+
),
|
|
4566
|
+
verification: external_exports.boolean().default(true).describe(
|
|
4567
|
+
"Detector C of the turn-end gate: refuse a turn that changed a file and then ran nothing that could have checked it \u2014 no test, type-check, lint or build call follows the LAST edit. Ordering is the point: a run before the final edit did not exercise it, which is the freshness clause verify-before-complete states. Read off the turn tool calls, not the prose, because a reply cannot say whether an edit was verified. Deliberately narrow on what counts as verification \u2014 a missed detection costs one unguarded turn, a false refusal teaches you to switch the gate off. No fire rate is quoted: none has been measured yet. Inert while hooks.turn_end_gate.enabled is false."
|
|
4556
4568
|
)
|
|
4557
4569
|
}).default({})
|
|
4558
4570
|
}),
|
|
@@ -1059,9 +1059,19 @@ function main3(argv = null, options = {}) {
|
|
|
1059
1059
|
return rc;
|
|
1060
1060
|
}
|
|
1061
1061
|
function _isCliEntry3() {
|
|
1062
|
+
const bundled = true;
|
|
1063
|
+
const cliDelegate = true;
|
|
1064
|
+
if (bundled && !cliDelegate) {
|
|
1065
|
+
return false;
|
|
1066
|
+
}
|
|
1062
1067
|
if (process3.argv[1] === void 0) {
|
|
1063
1068
|
return false;
|
|
1064
1069
|
}
|
|
1070
|
+
if (cliDelegate) {
|
|
1071
|
+
if (path4.basename(process3.argv[1], ".js") === "cmd_refresh") {
|
|
1072
|
+
return true;
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
1065
1075
|
const argvUrl = pathToFileURL3(path4.resolve(process3.argv[1])).href;
|
|
1066
1076
|
if (import.meta.url === argvUrl) {
|
|
1067
1077
|
return true;
|
|
@@ -2,10 +2,10 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
|
|
|
2
2
|
import {
|
|
3
3
|
ZodFirstPartyTypeKind,
|
|
4
4
|
settingsSchema
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JP53LNVT.js";
|
|
6
6
|
import {
|
|
7
7
|
main
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-U7CMAIOC.js";
|
|
9
9
|
import {
|
|
10
10
|
RULE_SOURCE_REL
|
|
11
11
|
} from "./chunk-BKO2AZ7Z.js";
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
hardenedSpawnEnv,
|
|
19
19
|
scanTranscripts,
|
|
20
20
|
weightedInputUnits
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-55RI5UXK.js";
|
|
22
22
|
import {
|
|
23
23
|
git_common_dir
|
|
24
24
|
} from "./chunk-PZWRPRWP.js";
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
DEFAULT_GITATTRIBUTES,
|
|
27
27
|
SECTION_HEADER,
|
|
28
28
|
_is_source_repo
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-M2DPGFZ4.js";
|
|
30
30
|
import {
|
|
31
31
|
DEFAULT_DEPLOY_ROOTS,
|
|
32
32
|
MANAGED_SIGNATURE,
|
|
@@ -1630,7 +1630,7 @@ function isEnvKillSwitchActive(name) {
|
|
|
1630
1630
|
}
|
|
1631
1631
|
|
|
1632
1632
|
// src/scripts/ai_council/events_log.ts
|
|
1633
|
-
var SCHEMA_VERSION =
|
|
1633
|
+
var SCHEMA_VERSION = 4;
|
|
1634
1634
|
var _VALID_ACTIONS = /* @__PURE__ */ new Set([
|
|
1635
1635
|
"proceed",
|
|
1636
1636
|
"skip_necessity",
|
|
@@ -7010,9 +7010,19 @@ function main4(argv = null) {
|
|
|
7010
7010
|
return drift_present ? 1 : 0;
|
|
7011
7011
|
}
|
|
7012
7012
|
function _isCliEntry2() {
|
|
7013
|
+
const bundled = true;
|
|
7014
|
+
const cliDelegate = true;
|
|
7015
|
+
if (bundled && !cliDelegate) {
|
|
7016
|
+
return false;
|
|
7017
|
+
}
|
|
7013
7018
|
if (process2.argv[1] === void 0) {
|
|
7014
7019
|
return false;
|
|
7015
7020
|
}
|
|
7021
|
+
if (cliDelegate) {
|
|
7022
|
+
if (path15.basename(process2.argv[1], ".js") === "cmd_doctor") {
|
|
7023
|
+
return true;
|
|
7024
|
+
}
|
|
7025
|
+
}
|
|
7016
7026
|
const argvUrl = pathToFileURL4(path15.resolve(process2.argv[1])).href;
|
|
7017
7027
|
if (import.meta.url === argvUrl) {
|
|
7018
7028
|
return true;
|
|
@@ -680,12 +680,17 @@ function main(argv = null, options = {}) {
|
|
|
680
680
|
}
|
|
681
681
|
return _apply(project, out, err);
|
|
682
682
|
}
|
|
683
|
-
var
|
|
683
|
+
var _inForeignBundle = false;
|
|
684
684
|
var _HERE = fileURLToPath(import.meta.url);
|
|
685
685
|
function _isCliEntry() {
|
|
686
686
|
if (process.argv[1] === void 0) {
|
|
687
687
|
return false;
|
|
688
688
|
}
|
|
689
|
+
if (true) {
|
|
690
|
+
if (path.basename(process.argv[1], ".js") === "cmd_migrate") {
|
|
691
|
+
return true;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
689
694
|
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
690
695
|
if (import.meta.url === argvUrl) {
|
|
691
696
|
return true;
|
|
@@ -698,7 +703,7 @@ function _isCliEntry() {
|
|
|
698
703
|
return false;
|
|
699
704
|
}
|
|
700
705
|
}
|
|
701
|
-
if (!
|
|
706
|
+
if (!_inForeignBundle && (_isCliEntry() || process.argv[1] === _HERE)) {
|
|
702
707
|
try {
|
|
703
708
|
process.exitCode = main(process.argv.slice(2));
|
|
704
709
|
} catch (exc) {
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
frontmatterPaths,
|
|
20
20
|
proseEqual,
|
|
21
21
|
splitFrontmatter
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-SFGARMAB.js";
|
|
23
23
|
import "./chunk-FTAISGDQ.js";
|
|
24
24
|
import {
|
|
25
25
|
atomic_write_json,
|
|
@@ -27,9 +27,9 @@ import {
|
|
|
27
27
|
is_replay_mode
|
|
28
28
|
} from "./chunk-EJITJBJX.js";
|
|
29
29
|
import "./chunk-Q26HT4QT.js";
|
|
30
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-55RI5UXK.js";
|
|
31
31
|
import "./chunk-PZWRPRWP.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-M2DPGFZ4.js";
|
|
33
33
|
import {
|
|
34
34
|
atomicAppendLine,
|
|
35
35
|
manifest_path,
|
|
@@ -2283,7 +2283,7 @@ function censusSkills(root) {
|
|
|
2283
2283
|
return out;
|
|
2284
2284
|
}
|
|
2285
2285
|
function defaultStore2(cwd) {
|
|
2286
|
-
return path8.join(os3.homedir(), ".claude", "projects", cwd.replace(
|
|
2286
|
+
return path8.join(os3.homedir(), ".claude", "projects", cwd.replace(/[/.]/g, "-"));
|
|
2287
2287
|
}
|
|
2288
2288
|
function measureUsage(store, limit) {
|
|
2289
2289
|
const rep = { store, sessions: 0, assistantTurns: 0, invocations: 0, bySkill: {} };
|
|
@@ -66,13 +66,13 @@ import {
|
|
|
66
66
|
_wizard_state_path,
|
|
67
67
|
main,
|
|
68
68
|
shutilWhich
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-SFGARMAB.js";
|
|
70
70
|
import "./chunk-FTAISGDQ.js";
|
|
71
71
|
import "./chunk-EJITJBJX.js";
|
|
72
72
|
import "./chunk-Q26HT4QT.js";
|
|
73
|
-
import "./chunk-
|
|
73
|
+
import "./chunk-55RI5UXK.js";
|
|
74
74
|
import "./chunk-PZWRPRWP.js";
|
|
75
|
-
import "./chunk-
|
|
75
|
+
import "./chunk-M2DPGFZ4.js";
|
|
76
76
|
import "./chunk-63WSP6YZ.js";
|
|
77
77
|
import "./chunk-GRRPEPRN.js";
|
|
78
78
|
import "./chunk-NXFWFAYV.js";
|
|
@@ -9,9 +9,9 @@ import {
|
|
|
9
9
|
KIRO_MARKER,
|
|
10
10
|
ROOCODE_MARKER,
|
|
11
11
|
ZED_MARKER
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-NR7HSN3P.js";
|
|
13
|
+
import "./chunk-JP53LNVT.js";
|
|
14
|
+
import "./chunk-U7CMAIOC.js";
|
|
15
15
|
import "./chunk-BKO2AZ7Z.js";
|
|
16
16
|
import "./chunk-63WSP6YZ.js";
|
|
17
17
|
import "./chunk-GRRPEPRN.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
main
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-U7CMAIOC.js";
|
|
5
5
|
import "./chunk-JEJABGKB.js";
|
|
6
6
|
import "./chunk-NDJLNC6Q.js";
|
|
7
7
|
import "./chunk-MCJYCQPF.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
PROJECT_BRIDGE_MARKERS
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-NR7HSN3P.js";
|
|
5
|
+
import "./chunk-JP53LNVT.js";
|
|
6
|
+
import "./chunk-U7CMAIOC.js";
|
|
7
7
|
import "./chunk-BKO2AZ7Z.js";
|
|
8
8
|
import {
|
|
9
9
|
manifest_path,
|