@event4u/agent-config 14.22.0 → 14.23.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +159 -380
- package/README.md +1 -1
- package/dist/agent-src/commands/pr/merge.md +47 -38
- package/dist/agent-src/commands/roadmap/next.md +8 -0
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +12 -0
- package/dist/agent-src/rules/notes-first-reasoning.md +36 -25
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +106 -4
- package/dist/agent-src/skills/code-intelligence/SKILL.md +57 -1
- package/dist/agent-src/skills/git-workflow/references/push-closes-its-loop.md +9 -0
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +52 -2
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/cli/registry.js +1 -1
- package/dist/cli-delegate/archive_completed_roadmaps.js +52 -4
- package/dist/cli-delegate/{chunk-TGIPZBCW.js → chunk-2KKXJW25.js} +22 -8
- package/dist/cli-delegate/{chunk-4FS4WRXP.js → chunk-IAI3XL43.js} +15 -3
- package/dist/cli-delegate/{chunk-BIXEDQPZ.js → chunk-KCNTUSPI.js} +1 -1
- package/dist/cli-delegate/cmd_export.js +2 -2
- package/dist/cli-delegate/cmd_handoff.js +20 -12
- package/dist/cli-delegate/cmd_prune.js +2 -2
- package/dist/cli-delegate/cmd_session_recycle.js +3 -13
- package/dist/cli-delegate/cmd_settings_migrate.js +2 -2
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +2 -2
- package/dist/cli-delegate/cmd_uninstall.js +2 -2
- package/dist/cli-delegate/cmd_validate.js +2 -2
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +8 -8
- 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 +880 -289
- package/dist/install/install.mjs +15 -3
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +5458 -2453
- package/dist/scripts/_lib/lean_projection_mode.js +108 -0
- package/dist/scripts/_lib/router_match.js +243 -0
- package/dist/scripts/_lib/rule_injection.js +216 -0
- package/dist/scripts/condense.js +20 -20
- package/dist/scripts/project_thin_rules.js +139 -19
- package/dist/server/schemas/settings.js +16 -3
- package/docs/MIGRATION.md +56 -0
- package/docs/contracts/settings-classes.md +39 -7
- package/docs/guidelines/agent-infra/notes-horizon-mechanics.md +90 -0
- package/llms.txt +1 -1
- package/package.json +1 -1
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +106 -4
- package/src/config/agent-settings.template.yml +47 -1
- package/src/config/continuity-surface.json +7 -0
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/gate-violation-baselines.json +2 -2
- package/src/config/hook-token-budget.json +7 -6
- package/src/config/packed-binary-manifest.json +1 -1
- package/src/config/routing-coverage-seed.json +9 -2
- package/src/scripts/_cli/cmd_session_recycle.ts +2 -25
- package/src/scripts/_cli/handoff_sessions.ts +14 -44
- package/src/scripts/_lib/continuity_slot.ts +295 -0
- package/src/scripts/_lib/continuity_writer.ts +253 -0
- package/src/scripts/_lib/hook_settings.ts +85 -0
- package/src/scripts/_lib/lean_projection_mode.ts +127 -0
- package/src/scripts/_lib/packed_binary_predicate.ts +37 -0
- package/src/scripts/_lib/recycle_envelope_paths.ts +109 -21
- package/src/scripts/_lib/regression_neighbourhood.ts +159 -22
- package/src/scripts/_lib/session_eol.ts +44 -0
- package/src/scripts/_lib/session_index_trust.ts +346 -0
- package/src/scripts/_lib/standing_bound_ratchet.ts +154 -0
- package/src/scripts/_lib/vendored_grammar_upstream.ts +280 -0
- package/src/scripts/audit_mcp_tools.ts +69 -25
- package/src/scripts/build_mcp_catalog.ts +24 -1
- package/src/scripts/check_host_tree_parity.ts +291 -0
- package/src/scripts/check_preamble_payload_budget.ts +136 -7
- package/src/scripts/check_rule_projection_integrity.ts +102 -2
- package/src/scripts/ci_settle.ts +205 -5
- package/src/scripts/code_graph/build.ts +79 -0
- package/src/scripts/code_graph/cli.ts +258 -7
- package/src/scripts/code_graph/detect.ts +38 -0
- package/src/scripts/code_graph/query.ts +25 -2
- package/src/scripts/code_graph/sqlite_store.ts +16 -1
- package/src/scripts/code_graph/types.ts +52 -3
- package/src/scripts/code_graph/validate.ts +3 -1
- package/src/scripts/code_graph/verbs.ts +590 -0
- package/src/scripts/condense.ts +20 -20
- package/src/scripts/handoff_context_hook.ts +39 -1
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +24 -1
- package/src/scripts/hooks/block_speaking_inbox_dir.ts +182 -16
- package/src/scripts/hooks/code_graph_context_hook.ts +7 -18
- package/src/scripts/hooks/push_settle_hook.ts +3 -2
- package/src/scripts/hooks/rule_inject_hook.ts +107 -20
- package/src/scripts/hooks/session_eol_hook.ts +120 -2
- package/src/scripts/hot_context_hook.ts +62 -7
- package/src/scripts/lint_roadmap_blockers.ts +164 -1
- package/src/scripts/mcp_server/consumer_tool_catalog.json +152 -2
- package/src/scripts/mcp_server/graph_tools.ts +294 -0
- package/src/scripts/mcp_server/path_util.ts +31 -0
- package/src/scripts/mcp_server/tool_catalog_source.ts +7 -1
- package/src/scripts/mcp_server/tools.ts +3 -13
- package/src/scripts/model_rule_injection.ts +61 -4
- package/src/scripts/project_thin_rules.ts +149 -16
- package/src/scripts/report_standing_payload_by_host.ts +650 -0
- package/src/scripts/schemas/agent-settings.schema.json +7 -1
- package/src/scripts/session_memory_index.ts +81 -8
- package/src/server/schemas/settings.ts +23 -4
- package/src/vendor/grammars/README.md +27 -2
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
2
|
import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
|
-
|
|
4
|
+
blocker_is_resolved,
|
|
5
|
+
collect,
|
|
6
|
+
parse_blockers
|
|
5
7
|
} from "./chunk-QAJS5YWY.js";
|
|
6
8
|
import "./chunk-ULET4BYS.js";
|
|
7
9
|
import {
|
|
@@ -132,6 +134,38 @@ function _git_mv(root, src_rel, dst_rel, dry_run) {
|
|
|
132
134
|
return { ok: false, tracked: false };
|
|
133
135
|
}
|
|
134
136
|
}
|
|
137
|
+
function _blockerStatuses(text) {
|
|
138
|
+
const out = /* @__PURE__ */ new Map();
|
|
139
|
+
for (const b of parse_blockers(text)) {
|
|
140
|
+
out.set(b.id, blocker_is_resolved(b) ? "resolved" : "open");
|
|
141
|
+
}
|
|
142
|
+
return out;
|
|
143
|
+
}
|
|
144
|
+
function _indexContent(root, rel) {
|
|
145
|
+
const cp = _run(["git", "show", `:${rel}`], root);
|
|
146
|
+
return cp.returncode === 0 ? cp.stdout : null;
|
|
147
|
+
}
|
|
148
|
+
function _blockerDivergence(root, rel, workTreeText) {
|
|
149
|
+
const staged = _indexContent(root, rel);
|
|
150
|
+
if (staged === null) {
|
|
151
|
+
return [];
|
|
152
|
+
}
|
|
153
|
+
const wt = _blockerStatuses(workTreeText);
|
|
154
|
+
const idx = _blockerStatuses(staged);
|
|
155
|
+
const ids = [.../* @__PURE__ */ new Set([...wt.keys(), ...idx.keys()])].sort();
|
|
156
|
+
const out = [];
|
|
157
|
+
for (const id of ids) {
|
|
158
|
+
const a = idx.get(id);
|
|
159
|
+
const b = wt.get(id);
|
|
160
|
+
if (a === b) {
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
out.push(
|
|
164
|
+
`blocker '${id}': staged=${a ?? "absent"} vs working tree=${b ?? "absent"}`
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
return out;
|
|
168
|
+
}
|
|
135
169
|
function _fs_grep_files(root, needle) {
|
|
136
170
|
const SKIP = /* @__PURE__ */ new Set([".git", "node_modules", ".augment", "dist"]);
|
|
137
171
|
const hits = [];
|
|
@@ -275,9 +309,8 @@ function archive_completed(root, opts) {
|
|
|
275
309
|
);
|
|
276
310
|
const archived = [];
|
|
277
311
|
for (const stats of collect(roadmap_root)) {
|
|
278
|
-
const
|
|
279
|
-
|
|
280
|
-
);
|
|
312
|
+
const roadmapText = fs.readFileSync(path.join(roadmap_root, stats.rel), "utf-8");
|
|
313
|
+
const guarded = parseGuardedBaselines(roadmapText);
|
|
281
314
|
if (guarded.length > 0) {
|
|
282
315
|
process.stderr.write(
|
|
283
316
|
` \u26A0\uFE0F ${stats.rel}: ${guarded.length} guarded-baseline step(s) \u2014 not archived. Verify against the real mechanism, then flip to \`[x]\`.
|
|
@@ -320,6 +353,18 @@ function archive_completed(root, opts) {
|
|
|
320
353
|
if (changed_only && !touched.has(old_rel)) {
|
|
321
354
|
continue;
|
|
322
355
|
}
|
|
356
|
+
const divergence = _blockerDivergence(root, old_rel, roadmapText);
|
|
357
|
+
if (divergence.length > 0) {
|
|
358
|
+
process.stderr.write(
|
|
359
|
+
` \u26A0\uFE0F ${stats.rel}: staged and working-tree blockers disagree (${divergence.length}) \u2014 not archived. \`git mv\` would commit the staged content, which this sweep never validated. Stage or discard the change, then re-run.
|
|
360
|
+
`
|
|
361
|
+
);
|
|
362
|
+
for (const d of divergence) {
|
|
363
|
+
process.stderr.write(` \xB7 ${d}
|
|
364
|
+
`);
|
|
365
|
+
}
|
|
366
|
+
continue;
|
|
367
|
+
}
|
|
323
368
|
const new_rel = `agents/roadmaps/archive/${stats.rel}`;
|
|
324
369
|
const mv = _git_mv(root, old_rel, new_rel, dry_run);
|
|
325
370
|
if (!mv.ok) {
|
|
@@ -327,6 +372,9 @@ function archive_completed(root, opts) {
|
|
|
327
372
|
`);
|
|
328
373
|
continue;
|
|
329
374
|
}
|
|
375
|
+
if (!dry_run && mv.tracked) {
|
|
376
|
+
_run(["git", "add", "--", new_rel], root);
|
|
377
|
+
}
|
|
330
378
|
const refs = _inbound_ref_rewrite(root, old_rel, new_rel, dry_run, mv.tracked);
|
|
331
379
|
if (!dry_run && refs.length && mv.tracked) {
|
|
332
380
|
_run(["git", "add", "--", ...refs], root);
|
|
@@ -341,22 +341,35 @@ function listContinuityRecords(workspace_root) {
|
|
|
341
341
|
}
|
|
342
342
|
function resolveContinuityRecord(workspace_root, session_id) {
|
|
343
343
|
const id = String(session_id ?? "").trim();
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
return fs3.existsSync(own) ? { file: own, reason: `continuity record for this session (${safe_stem(id)})` } : { file: null, reason: `no continuity record for this session (${safe_stem(id)})` };
|
|
347
|
-
}
|
|
348
|
-
const candidates = listContinuityRecords(workspace_root);
|
|
344
|
+
const own = id === "" ? null : path3.join(workspace_root, recycle_envelope_rel(id));
|
|
345
|
+
const candidates = listContinuityRecords(workspace_root).filter((f) => f !== own);
|
|
349
346
|
if (candidates.length === 0) {
|
|
350
|
-
return {
|
|
347
|
+
return {
|
|
348
|
+
file: null,
|
|
349
|
+
reason: id === "" ? "no continuity record present" : `no predecessor record in this workspace (own: ${safe_stem(id)})`
|
|
350
|
+
};
|
|
351
351
|
}
|
|
352
352
|
if (candidates.length === 1) {
|
|
353
|
-
return {
|
|
353
|
+
return {
|
|
354
|
+
file: candidates[0],
|
|
355
|
+
reason: id === "" ? "one continuity record, no session id to key on" : `predecessor record, one candidate (own: ${safe_stem(id)})`
|
|
356
|
+
};
|
|
354
357
|
}
|
|
355
358
|
return {
|
|
356
359
|
file: null,
|
|
357
|
-
reason: `starting clean: ${candidates.length} continuity records in this workspace and no
|
|
360
|
+
reason: `starting clean: ${candidates.length} continuity records in this workspace and no way to tell which is the predecessor \u2014 resuming from the newest would resume a peer session, not this one`
|
|
358
361
|
};
|
|
359
362
|
}
|
|
363
|
+
function resolvePredecessor(projectRoot, sessionId) {
|
|
364
|
+
try {
|
|
365
|
+
const consumed = path3.join(projectRoot, recycle_consumed_rel(sessionId));
|
|
366
|
+
const raw = JSON.parse(fs3.readFileSync(consumed, "utf-8"));
|
|
367
|
+
const prior = String(raw.session_id ?? "").trim();
|
|
368
|
+
return prior === "" ? "none" : prior;
|
|
369
|
+
} catch {
|
|
370
|
+
return "none";
|
|
371
|
+
}
|
|
372
|
+
}
|
|
360
373
|
function predecessorTracePresent(workspace_root, predecessor) {
|
|
361
374
|
const id = String(predecessor ?? "").trim();
|
|
362
375
|
if (id === "" || id === "none") {
|
|
@@ -1104,6 +1117,7 @@ export {
|
|
|
1104
1117
|
recycle_envelope_rel,
|
|
1105
1118
|
recycle_consumed_rel,
|
|
1106
1119
|
resolveContinuityRecord,
|
|
1120
|
+
resolvePredecessor,
|
|
1107
1121
|
predecessorTracePresent,
|
|
1108
1122
|
env_session_id
|
|
1109
1123
|
};
|
|
@@ -4063,7 +4063,8 @@ var confidenceBand = external_exports.enum(["off", "low", "medium", "high"]);
|
|
|
4063
4063
|
var onBlock = external_exports.enum(["stop", "ask", "warn"]);
|
|
4064
4064
|
var onBlockFallback = external_exports.enum(["stop", "warn"]);
|
|
4065
4065
|
var modelAutoSwitch = external_exports.enum(["auto", "suggest", "off"]);
|
|
4066
|
-
var leanProjectionMode = external_exports.enum(["eager-all", "thin"]);
|
|
4066
|
+
var leanProjectionMode = external_exports.enum(["eager-all", "thin", "delivery"]);
|
|
4067
|
+
var leanProjectionHost = external_exports.enum(["claude-code", "cursor", "cline"]);
|
|
4067
4068
|
var projectionMode = external_exports.enum(["legacy-all", "scoped"]);
|
|
4068
4069
|
var memoryCadence = external_exports.enum(["auto", "always", "never"]);
|
|
4069
4070
|
var projectAudience = external_exports.enum(["self", "internal", "client", "public"]);
|
|
@@ -4095,9 +4096,12 @@ var settingsSchema = external_exports.object({
|
|
|
4095
4096
|
),
|
|
4096
4097
|
lean_projection: external_exports.object({
|
|
4097
4098
|
mode: leanProjectionMode.default("eager-all").describe(
|
|
4098
|
-
"How the per-tool projector emits the rule layer. eager-all = every rule body inlined into every projection (
|
|
4099
|
+
"How the per-tool projector emits the rule layer. eager-all = every rule body inlined into every projection (safe; what an ABSENT key still resolves to, per ADR-267 decision point 4). thin = kernel rules full-bodied + non-kernel rules as router-resolved pointers (~45k GPT-tok lighter per session), with no delivery mechanism. delivery = thin stubs PLUS the rule-inject hook concern, which delivers a body back on a trigger match; this is the value the SHIPPED TEMPLATE carries for Claude Code since ADR-267, and the activation charge for it is paid in src/config/hook-token-budget.json (user_prompt_submit slot sum 4,096 -> 16,384)."
|
|
4100
|
+
),
|
|
4101
|
+
hosts: external_exports.array(leanProjectionHost).default(["claude-code"]).describe(
|
|
4102
|
+
"Which hosts a thinning mode may thin (ADR-267). Absent resolves to [claude-code]. Only the three hosts with a per-rule rule tree are accepted, and this enum is the AUTHORING layer: an id outside it is a hard validation FAILURE here and under validate_agent_settings, never a warning. resolveLeanProjectionHosts is the READ-TIME backstop for a hand-edited .agent-settings.yml that passed neither, and THERE the id is dropped with a warning (R2 finding 6 \u2014 the two layers answer differently and neither said so). Every host outside this list receives exactly what eager-all writes, asserted byte-for-byte by check_host_tree_parity."
|
|
4099
4103
|
)
|
|
4100
|
-
}).default({ mode: "eager-all" }),
|
|
4104
|
+
}).default({ mode: "eager-all", hosts: ["claude-code"] }),
|
|
4101
4105
|
cost: external_exports.object({
|
|
4102
4106
|
budgets: external_exports.object({
|
|
4103
4107
|
daily: external_exports.number().min(0).default(0).describe(
|
|
@@ -4462,6 +4466,14 @@ var settingsSchema = external_exports.object({
|
|
|
4462
4466
|
)
|
|
4463
4467
|
})
|
|
4464
4468
|
}),
|
|
4469
|
+
continuity: external_exports.object({
|
|
4470
|
+
auto_record: external_exports.enum(["on", "off"]).default("off").describe(
|
|
4471
|
+
"Deterministic continuity-record writer at session end (road-to-continuity-writer-activation Phase 1). on = the session-eol concern writes the continuity_record capsule variant on Stop for a substantive session that has claimed a roadmap; every field is computed from on-disk state, with no model spend and no subprocess. off (default) = no automatic record \u2014 while session:recycle is still the normal path, a second producer on it before the parity evidence is in would be unverified."
|
|
4472
|
+
),
|
|
4473
|
+
run_checkpoints: external_exports.enum(["on", "off"]).default("on").describe(
|
|
4474
|
+
"Deterministic run-checkpoint production at session end (road-to-continuity-writer-activation Phase 1.4). on (default) = a session above the recycle threshold and inside a running roadmap contract leaves agents/runtime/state/checkpoints/<run>.json, so a killed run resumes from a derived checkpoint rather than from bookkeeping. off = no checkpoint; continuity writing, the recycle advisory and the context-fill surface are unaffected. Default ON because it is the behaviour the tree already had \u2014 the switch exists to make the three session-end handlers independently disableable, not to change what ships."
|
|
4475
|
+
)
|
|
4476
|
+
}),
|
|
4465
4477
|
memory: external_exports.object({
|
|
4466
4478
|
cadence: memoryCadence.default("always").describe(
|
|
4467
4479
|
"Cadence of the \u{1F9E0} memory-visibility line after a memory-consulting step. always (default) = show whenever a memory type was asked; auto = show only when 3+ types were consulted (less noise); never = suppress. Distinct from rule_loading_tier \u2014 owns its own key since the 2026-06-01 untangle."
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
KIRO_MARKER,
|
|
10
10
|
ROOCODE_MARKER,
|
|
11
11
|
ZED_MARKER
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-KCNTUSPI.js";
|
|
13
|
+
import "./chunk-IAI3XL43.js";
|
|
14
14
|
import "./chunk-6RJA2F5A.js";
|
|
15
15
|
import "./chunk-WOKWX5PL.js";
|
|
16
16
|
import "./chunk-523HCFYO.js";
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
predecessorTracePresent,
|
|
14
14
|
recycle_consumed_rel,
|
|
15
15
|
resolveContinuityRecord
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-2KKXJW25.js";
|
|
17
17
|
import "./chunk-I6RHFQEG.js";
|
|
18
18
|
import {
|
|
19
19
|
hasBoundaryMarker,
|
|
@@ -340,7 +340,15 @@ function consume_recycle_envelope(root, now = /* @__PURE__ */ new Date(), sessio
|
|
|
340
340
|
reason: `recycle envelope names predecessor "${predecessor}", which has no trace in this workspace`
|
|
341
341
|
};
|
|
342
342
|
}
|
|
343
|
-
const
|
|
343
|
+
const anchor = collectRepoAnchor(root);
|
|
344
|
+
const envelopeBranch = String(envelope["branch"] ?? "").trim();
|
|
345
|
+
if (envelopeBranch !== "" && anchor.branch !== null && envelopeBranch !== anchor.branch) {
|
|
346
|
+
return {
|
|
347
|
+
action: "absent",
|
|
348
|
+
reason: `recycle envelope is for branch "${envelopeBranch}" and this tree is on "${anchor.branch}" \u2014 left unclaimed for a session on that branch rather than consumed`
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
const drift = describeDrift(envelope, anchor);
|
|
344
352
|
const warnings = scanEnvelopeDirectives(envelope);
|
|
345
353
|
const focus = (process2.env.AGENT_RESUME_FOCUS ?? "").trim();
|
|
346
354
|
const block = wrapAsPriorSessionData(JSON.stringify(envelope, null, 2), {
|
|
@@ -792,12 +800,21 @@ function readEolCounters(workspaceRoot, sessionKey) {
|
|
|
792
800
|
return null;
|
|
793
801
|
}
|
|
794
802
|
}
|
|
803
|
+
var SUBSTANTIVE_TOKEN_FLOOR = 1e4;
|
|
804
|
+
function is_substantive(counters) {
|
|
805
|
+
if (counters === null) return true;
|
|
806
|
+
if (!Number.isFinite(counters.assistant_records)) return true;
|
|
807
|
+
if (counters.assistant_records < 1) return false;
|
|
808
|
+
if (!Number.isFinite(counters.tool_calls)) return true;
|
|
809
|
+
if (counters.tool_calls >= 1) return true;
|
|
810
|
+
if (!Number.isFinite(counters.final_context_tokens)) return true;
|
|
811
|
+
return counters.final_context_tokens >= SUBSTANTIVE_TOKEN_FLOOR;
|
|
812
|
+
}
|
|
795
813
|
|
|
796
814
|
// src/scripts/_cli/handoff_sessions.ts
|
|
797
815
|
var DEFAULT_CAP = 15;
|
|
798
816
|
var FETCH_OVERSHOOT = 3;
|
|
799
817
|
var SUMMARY_SNIPPET_CHARS = 120;
|
|
800
|
-
var SUBSTANTIVE_TOKEN_FLOOR = 1e4;
|
|
801
818
|
function encode_project_path(cwd) {
|
|
802
819
|
return projectStoreSlug(cwd);
|
|
803
820
|
}
|
|
@@ -1060,15 +1077,6 @@ function _codex_sessions(opts, cap) {
|
|
|
1060
1077
|
function _sort_key(s) {
|
|
1061
1078
|
return s.endedAt ?? s.startedAt ?? "";
|
|
1062
1079
|
}
|
|
1063
|
-
function is_substantive(counters) {
|
|
1064
|
-
if (counters === null) return true;
|
|
1065
|
-
if (!Number.isFinite(counters.assistant_records)) return true;
|
|
1066
|
-
if (counters.assistant_records < 1) return false;
|
|
1067
|
-
if (!Number.isFinite(counters.tool_calls)) return true;
|
|
1068
|
-
if (counters.tool_calls >= 1) return true;
|
|
1069
|
-
if (!Number.isFinite(counters.final_context_tokens)) return true;
|
|
1070
|
-
return counters.final_context_tokens >= SUBSTANTIVE_TOKEN_FLOOR;
|
|
1071
|
-
}
|
|
1072
1080
|
function _derive_tag(id) {
|
|
1073
1081
|
try {
|
|
1074
1082
|
return derive_session_tag(id);
|
|
@@ -1,8 +1,8 @@
|
|
|
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-
|
|
4
|
+
} from "./chunk-KCNTUSPI.js";
|
|
5
|
+
import "./chunk-IAI3XL43.js";
|
|
6
6
|
import "./chunk-6RJA2F5A.js";
|
|
7
7
|
import "./chunk-WOKWX5PL.js";
|
|
8
8
|
import "./chunk-523HCFYO.js";
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
RECYCLE_ENVELOPE_MAX_BYTES,
|
|
4
4
|
collectGrounding,
|
|
5
5
|
env_session_id,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
} from "./chunk-
|
|
6
|
+
recycle_envelope_rel,
|
|
7
|
+
resolvePredecessor
|
|
8
|
+
} from "./chunk-2KKXJW25.js";
|
|
9
9
|
import {
|
|
10
10
|
CAPSULE_SCHEMA_VERSION,
|
|
11
11
|
validateRecycleEnvelope
|
|
@@ -60,16 +60,6 @@ function templateEnvelope() {
|
|
|
60
60
|
predecessor: "none"
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
function resolvePredecessor(projectRoot, sessionId) {
|
|
64
|
-
try {
|
|
65
|
-
const consumed = path.join(projectRoot, recycle_consumed_rel(sessionId));
|
|
66
|
-
const raw = JSON.parse(fs.readFileSync(consumed, "utf-8"));
|
|
67
|
-
const prior = String(raw.session_id ?? "").trim();
|
|
68
|
-
return prior === "" ? "none" : prior;
|
|
69
|
-
} catch {
|
|
70
|
-
return "none";
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
63
|
function parseArgv(argv) {
|
|
74
64
|
const parsed = { ok: true };
|
|
75
65
|
for (let i = 0; i < argv.length; i += 1) {
|
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
GLOBAL_AGENT_SETTINGS_PATH,
|
|
4
4
|
GLOBAL_USER_SETTINGS_PATH,
|
|
5
5
|
SETTINGS_FILE
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-KCNTUSPI.js";
|
|
7
|
+
import "./chunk-IAI3XL43.js";
|
|
8
8
|
import "./chunk-6RJA2F5A.js";
|
|
9
9
|
import "./chunk-WOKWX5PL.js";
|
|
10
10
|
import "./chunk-523HCFYO.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
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-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-KCNTUSPI.js";
|
|
5
|
+
import "./chunk-IAI3XL43.js";
|
|
6
6
|
import "./chunk-6RJA2F5A.js";
|
|
7
7
|
import "./chunk-WOKWX5PL.js";
|
|
8
8
|
import "./chunk-523HCFYO.js";
|
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
PROJECT_BRIDGE_MARKERS,
|
|
4
4
|
USER_SCOPE_PATHS,
|
|
5
5
|
subtract_pointers
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-KCNTUSPI.js";
|
|
7
|
+
import "./chunk-IAI3XL43.js";
|
|
8
8
|
import "./chunk-6RJA2F5A.js";
|
|
9
9
|
import "./chunk-WOKWX5PL.js";
|
|
10
10
|
import "./chunk-523HCFYO.js";
|
|
@@ -3,8 +3,8 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
|
|
|
3
3
|
import {
|
|
4
4
|
PROJECT_BRIDGE_MARKERS,
|
|
5
5
|
USER_SCOPE_PATHS
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-KCNTUSPI.js";
|
|
7
|
+
import "./chunk-IAI3XL43.js";
|
|
8
8
|
import "./chunk-6RJA2F5A.js";
|
|
9
9
|
import "./chunk-WOKWX5PL.js";
|
|
10
10
|
import "./chunk-523HCFYO.js";
|
|
@@ -2422,12 +2422,12 @@
|
|
|
2422
2422
|
},
|
|
2423
2423
|
{
|
|
2424
2424
|
"category": "command",
|
|
2425
|
-
"checksum": "sha256:
|
|
2425
|
+
"checksum": "sha256:21332b2ed898e38da738030ec3add5f2be4f7672ee72e531205dfdaef3d6a26b",
|
|
2426
2426
|
"install": {
|
|
2427
2427
|
"default": true,
|
|
2428
2428
|
"removable": false
|
|
2429
2429
|
},
|
|
2430
|
-
"intent": "Prepare an open PR to mergeable — sync the base in, resolve conflicts semantically, drive required checks green —
|
|
2430
|
+
"intent": "Prepare an open PR to mergeable — sync the base in, resolve conflicts semantically, drive required checks green — then merge what the invocation named",
|
|
2431
2431
|
"lifecycle": "active",
|
|
2432
2432
|
"name": "git-pr-merge",
|
|
2433
2433
|
"pack": "git",
|
|
@@ -5113,7 +5113,7 @@
|
|
|
5113
5113
|
},
|
|
5114
5114
|
{
|
|
5115
5115
|
"category": "command",
|
|
5116
|
-
"checksum": "sha256:
|
|
5116
|
+
"checksum": "sha256:5a10124143c2baa3fb481461ce0225f7eaece711ff688811ad66763654fee531",
|
|
5117
5117
|
"install": {
|
|
5118
5118
|
"default": true,
|
|
5119
5119
|
"removable": false
|
|
@@ -7123,7 +7123,7 @@
|
|
|
7123
7123
|
},
|
|
7124
7124
|
{
|
|
7125
7125
|
"category": "rule",
|
|
7126
|
-
"checksum": "sha256:
|
|
7126
|
+
"checksum": "sha256:185fe198df456bd7e3b0ed79e2665a29ea0352df338a20e98214c6d88825b4c2",
|
|
7127
7127
|
"install": {
|
|
7128
7128
|
"default": true,
|
|
7129
7129
|
"removable": false
|
|
@@ -8987,7 +8987,7 @@
|
|
|
8987
8987
|
},
|
|
8988
8988
|
{
|
|
8989
8989
|
"category": "skill",
|
|
8990
|
-
"checksum": "sha256:
|
|
8990
|
+
"checksum": "sha256:90de0462c11d94c41340447e32e4d5d004d540f3d6d9c02ded4634782d481753",
|
|
8991
8991
|
"install": {
|
|
8992
8992
|
"default": true,
|
|
8993
8993
|
"removable": false
|
|
@@ -14141,7 +14141,7 @@
|
|
|
14141
14141
|
},
|
|
14142
14142
|
{
|
|
14143
14143
|
"category": "skill",
|
|
14144
|
-
"checksum": "sha256:
|
|
14144
|
+
"checksum": "sha256:ca9de1086258a23f5bcc3cd626434545f493f736a67f93eb52621746c136fca6",
|
|
14145
14145
|
"install": {
|
|
14146
14146
|
"default": true,
|
|
14147
14147
|
"removable": false
|
|
@@ -14818,7 +14818,7 @@
|
|
|
14818
14818
|
"workspaces": []
|
|
14819
14819
|
}
|
|
14820
14820
|
],
|
|
14821
|
-
"checksum": "sha256:
|
|
14821
|
+
"checksum": "sha256:aa82784e196e180afe8767be33e034fe331d62b7f2f1a257eee5e67a7f61ee89",
|
|
14822
14822
|
"deprecations": [
|
|
14823
14823
|
{
|
|
14824
14824
|
"key": "tier",
|
|
@@ -14967,7 +14967,7 @@
|
|
|
14967
14967
|
"reason": "scaffold template for ticket-bundle tickets (ADR-101); carries no runtime frontmatter — emit-tickets fills it in per ticket"
|
|
14968
14968
|
}
|
|
14969
14969
|
],
|
|
14970
|
-
"generated_at": "2026-09-
|
|
14970
|
+
"generated_at": "2026-09-09T13:37:07Z",
|
|
14971
14971
|
"packs": [
|
|
14972
14972
|
{
|
|
14973
14973
|
"artefact_count": 128,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
d129b3747c38a0ef013d82f0afa89a18a205d4fdb4294fd7b8b427b526d92c7d discovery-manifest.json
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"checksum": "sha256:
|
|
3
|
-
"generated_at": "2026-09-
|
|
2
|
+
"checksum": "sha256:aa82784e196e180afe8767be33e034fe331d62b7f2f1a257eee5e67a7f61ee89",
|
|
3
|
+
"generated_at": "2026-09-09T13:37:07Z",
|
|
4
4
|
"packs": [
|
|
5
5
|
{
|
|
6
6
|
"always_on": false,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"checksum": "sha256:
|
|
3
|
-
"generated_at": "2026-09-
|
|
2
|
+
"checksum": "sha256:aa82784e196e180afe8767be33e034fe331d62b7f2f1a257eee5e67a7f61ee89",
|
|
3
|
+
"generated_at": "2026-09-09T13:37:07Z",
|
|
4
4
|
"scanner_version": "de0a22b4ac4c",
|
|
5
5
|
"workspaces": [
|
|
6
6
|
{
|