@dzhechkov/harness-core 0.7.4 → 0.7.6
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/.dz-manifest.json +141 -61
- package/README.md +38 -1
- package/dist/agentdb-index.d.ts.map +1 -1
- package/dist/agentdb-index.js +26 -2
- package/dist/agentdb-index.js.map +1 -1
- package/dist/amendment-trace.d.ts.map +1 -1
- package/dist/amendment-trace.js +6 -1
- package/dist/amendment-trace.js.map +1 -1
- package/dist/cadence.d.ts +66 -0
- package/dist/cadence.d.ts.map +1 -0
- package/dist/cadence.js +222 -0
- package/dist/cadence.js.map +1 -0
- package/dist/feature-adr-routing.d.ts.map +1 -1
- package/dist/feature-adr-routing.js +7 -2
- package/dist/feature-adr-routing.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/loop-blobs.generated.js +2 -2
- package/dist/loop-blobs.generated.js.map +1 -1
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +53 -18
- package/dist/operations.js.map +1 -1
- package/dist/provenance.d.ts +6 -0
- package/dist/provenance.d.ts.map +1 -1
- package/dist/provenance.js +22 -1
- package/dist/provenance.js.map +1 -1
- package/dist/publish.d.ts +31 -0
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +78 -0
- package/dist/publish.js.map +1 -1
- package/dist/recall-hook-policy.d.ts +3 -1
- package/dist/recall-hook-policy.d.ts.map +1 -1
- package/dist/recall-hook-policy.js +15 -2
- package/dist/recall-hook-policy.js.map +1 -1
- package/dist/recall-usage.d.ts +15 -0
- package/dist/recall-usage.d.ts.map +1 -1
- package/dist/recall-usage.js +51 -1
- package/dist/recall-usage.js.map +1 -1
- package/dist/score.d.ts.map +1 -1
- package/dist/score.js +38 -4
- package/dist/score.js.map +1 -1
- package/dist/skill-drift.d.ts +8 -2
- package/dist/skill-drift.d.ts.map +1 -1
- package/dist/skill-drift.js +60 -11
- package/dist/skill-drift.js.map +1 -1
- package/dist/skill-install-roots.d.ts +100 -0
- package/dist/skill-install-roots.d.ts.map +1 -0
- package/dist/skill-install-roots.js +116 -0
- package/dist/skill-install-roots.js.map +1 -0
- package/dist/tg-post.d.ts +76 -0
- package/dist/tg-post.d.ts.map +1 -0
- package/dist/tg-post.js +158 -0
- package/dist/tg-post.js.map +1 -0
- package/dist/usage.d.ts +31 -0
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +108 -21
- package/dist/usage.js.map +1 -1
- package/dist/writer-quiescence.d.ts +42 -0
- package/dist/writer-quiescence.d.ts.map +1 -0
- package/dist/writer-quiescence.js +82 -0
- package/dist/writer-quiescence.js.map +1 -0
- package/package.json +13 -13
- package/sbom.json +260 -60
- package/src/agentdb-index.ts +26 -2
- package/src/amendment-trace.ts +6 -1
- package/src/cadence.ts +227 -0
- package/src/feature-adr-routing.ts +7 -2
- package/src/index.ts +8 -1
- package/src/loop-blobs.generated.ts +2 -2
- package/src/operations.ts +52 -19
- package/src/provenance.ts +23 -1
- package/src/publish.ts +98 -0
- package/src/recall-hook-policy.ts +15 -2
- package/src/recall-usage.ts +44 -1
- package/src/score.ts +30 -4
- package/src/skill-drift.ts +70 -13
- package/src/skill-install-roots.ts +119 -0
- package/src/tg-post.ts +192 -0
- package/src/usage.ts +132 -17
- package/src/writer-quiescence.ts +95 -0
package/dist/tg-post.js
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
/**
|
|
3
|
+
* `dz tg-post` — the pure half: validate an approved draft against what Telegram will accept and
|
|
4
|
+
* what the channel's own accepted design demands.
|
|
5
|
+
*
|
|
6
|
+
* The design is NOT this module's to invent. features/genai-tweets-channel/ carries four ACCEPTED
|
|
7
|
+
* ADRs (2026-08-04): HTML mode, never MarkdownV2 (18 escapes against 3, one miss is a 400); the
|
|
8
|
+
* cadence rule "no posts 00:00-06:00 MSK"; link previews off by default because x.com previews in
|
|
9
|
+
* Telegram have been broken since 2022; and ADR-004's standing order — publishing stays MANUAL, and
|
|
10
|
+
* autonomous publishing means REVISING the ADR, not flipping a quiet flag. This module only makes
|
|
11
|
+
* those decisions checkable.
|
|
12
|
+
*
|
|
13
|
+
* PURE: no filesystem, no network, no clock — the timestamp arrives as a parameter, or the MSK
|
|
14
|
+
* night-window rule could not be tested at all.
|
|
15
|
+
*/
|
|
16
|
+
/** Tags Bot API accepts in HTML mode (verified against the live docs, Bot API 10.2). */
|
|
17
|
+
export const TG_ALLOWED_TAGS = [
|
|
18
|
+
'b', 'strong', 'i', 'em', 'u', 'ins', 's', 'strike', 'del', 'tg-spoiler',
|
|
19
|
+
'a', 'tg-emoji', 'code', 'pre', 'blockquote',
|
|
20
|
+
];
|
|
21
|
+
/** Hard ceiling for `sendMessage.text`, characters after entity parsing. */
|
|
22
|
+
export const TG_TEXT_LIMIT = 4096;
|
|
23
|
+
/**
|
|
24
|
+
* The character count Telegram limits: text WITHOUT the markup. An approximation is stated as one —
|
|
25
|
+
* entities like tg-emoji count differently — but a draft within this bound by a margin is safe, and
|
|
26
|
+
* the render prints the number so the author sees the headroom, not a verdict.
|
|
27
|
+
*/
|
|
28
|
+
export function tgVisibleLength(html) {
|
|
29
|
+
return html.replace(/<[^>]*>/g, '').replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&').length;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Everything wrong with a draft, or an empty list. One pass, every finding named — a validator that
|
|
33
|
+
* stops at the first fault sends the author around the loop once per mistake.
|
|
34
|
+
*/
|
|
35
|
+
export function tgPostHtmlIssues(html) {
|
|
36
|
+
const issues = [];
|
|
37
|
+
const text = html.trim();
|
|
38
|
+
if (text === '')
|
|
39
|
+
return [{ kind: 'empty', detail: 'the draft is empty — nothing to send' }];
|
|
40
|
+
// Tag balance over the allowed set. Telegram closes nothing for you: an unclosed <b> is a 400.
|
|
41
|
+
const stack = [];
|
|
42
|
+
const tagRe = /<(\/?)([a-zA-Z-]+)((?:\s+[a-zA-Z-]+(?:="[^"]*")?)*)\s*(\/?)>/g;
|
|
43
|
+
let covered = 0;
|
|
44
|
+
for (let m = tagRe.exec(text); m !== null; m = tagRe.exec(text)) {
|
|
45
|
+
covered += 1;
|
|
46
|
+
const closing = m[1] === '/';
|
|
47
|
+
const name = m[2].toLowerCase();
|
|
48
|
+
const expandable = name === 'blockquote'; // `<blockquote expandable>` is the ADR-003 body form
|
|
49
|
+
if (!TG_ALLOWED_TAGS.includes(name) && !expandable) {
|
|
50
|
+
issues.push({ kind: 'unknown-tag', detail: `<${name}> is not a Bot API HTML tag — Telegram answers 400 to tags it does not know` });
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (closing) {
|
|
54
|
+
if (stack.length === 0 || stack[stack.length - 1] !== name) {
|
|
55
|
+
issues.push({ kind: 'stray-close', detail: `</${name}> closes nothing that is open — tags must nest, not interleave` });
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
stack.pop();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else if (m[4] !== '/') {
|
|
62
|
+
stack.push(name);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
for (const open of stack) {
|
|
66
|
+
issues.push({ kind: 'unclosed-tag', detail: `<${open}> is never closed — Telegram closes nothing for you, this is a 400` });
|
|
67
|
+
}
|
|
68
|
+
// Bare & and < outside tags: HTML mode requires entity-escaping exactly these.
|
|
69
|
+
const outside = text.replace(/<[^>]*>/g, '');
|
|
70
|
+
if (/&(?!(lt|gt|amp|quot|#\d+|#x[0-9a-fA-F]+);)/.test(outside)) {
|
|
71
|
+
issues.push({ kind: 'bare-ampersand', detail: 'a bare & outside an entity — HTML mode needs &' });
|
|
72
|
+
}
|
|
73
|
+
if (/</.test(outside.replace(/</g, ''))) {
|
|
74
|
+
issues.push({ kind: 'bare-angle', detail: 'a bare < that is not a known tag — Telegram reads it as markup and answers 400' });
|
|
75
|
+
}
|
|
76
|
+
const visible = tgVisibleLength(text);
|
|
77
|
+
if (visible > TG_TEXT_LIMIT) {
|
|
78
|
+
issues.push({ kind: 'over-limit', detail: `${visible} visible characters against the ${TG_TEXT_LIMIT} hard limit — cut ${visible - TG_TEXT_LIMIT}` });
|
|
79
|
+
}
|
|
80
|
+
void covered;
|
|
81
|
+
return issues;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* May this draft go out NOW?
|
|
85
|
+
*
|
|
86
|
+
* The night window is ADR-003's cadence rule, encoded as a refusal with an explicit override rather
|
|
87
|
+
* than as advice: 00:00-06:00 MSK is when the channel's audience is asleep and its author is too —
|
|
88
|
+
* a send landing then is far more often a timezone mistake than an intention. `--night` states the
|
|
89
|
+
* intention; without it the refusal names the local MSK time it computed, so the operator can check
|
|
90
|
+
* the arithmetic instead of trusting it.
|
|
91
|
+
*/
|
|
92
|
+
/**
|
|
93
|
+
* The dedup key for a post: sha256 of its VISIBLE text (markup stripped). Two drafts that render
|
|
94
|
+
* identically in Telegram are the same post even if their HTML differs by a whitespace — the key
|
|
95
|
+
* must be about what the reader sees, not the bytes (G5, ADR-005).
|
|
96
|
+
*/
|
|
97
|
+
export function tgVisibleSha256(html) {
|
|
98
|
+
const visible = html.replace(/<[^>]*>/g, '').replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
|
|
99
|
+
return createHash('sha256').update(visible.trim(), 'utf-8').digest('hex');
|
|
100
|
+
}
|
|
101
|
+
export function decideTgSend(input) {
|
|
102
|
+
// G6 (ADR-001 fail-closed-guard-order): the stop-cord is ABSOLUTE and FIRST — it halts even a
|
|
103
|
+
// perfect post, before any cheaper check, so no bug in a later gate can route around it.
|
|
104
|
+
if (input.halted === true) {
|
|
105
|
+
return { action: 'refuse', reason: 'STOP-CORD engaged (.dz/tg-post/HALT exists) — nothing is published while it is present; remove the file to resume' };
|
|
106
|
+
}
|
|
107
|
+
if (input.issues.length > 0) {
|
|
108
|
+
return { action: 'refuse', reason: `${input.issues.length} formatting issue(s) — Telegram would refuse or mangle this draft` };
|
|
109
|
+
}
|
|
110
|
+
// The provenance gate is not optional and "skipped" is not a pass: ADR-002 of the provenance
|
|
111
|
+
// feature — nothing leaves this machine citing a source that may not.
|
|
112
|
+
if (input.provenanceOutcome !== 'allowed') {
|
|
113
|
+
return {
|
|
114
|
+
action: 'refuse',
|
|
115
|
+
reason: input.provenanceOutcome === 'skipped'
|
|
116
|
+
? 'no provenance manifest was checked — an unchecked draft is not an approved draft'
|
|
117
|
+
: `the provenance gate said ${input.provenanceOutcome} — nothing goes out citing a source that may not leave this machine`,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
if (!input.confirmed) {
|
|
121
|
+
return { action: 'refuse', reason: 'publishing is MANUAL by the channel\'s own ADR-004 — pass --send --yes to state the decision out loud' };
|
|
122
|
+
}
|
|
123
|
+
const utc = Date.parse(input.nowUtcIso);
|
|
124
|
+
if (Number.isFinite(utc)) {
|
|
125
|
+
const mskHour = new Date(utc + 3 * 3600_000).getUTCHours();
|
|
126
|
+
if (mskHour < 6 && !input.nightOverride) {
|
|
127
|
+
return { action: 'refuse', reason: `it is ${String(mskHour).padStart(2, '0')}:xx MSK — the channel posts nothing between 00:00 and 06:00 MSK (ADR-003). Pass --night if this is deliberate` };
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// G4/G5 need the journal. An UNREADABLE journal (sentLog undefined) is fail-closed: an unreadable
|
|
131
|
+
// limit counter does not prove the limit is unreached (Step-0 recall — never invert fail-closed on
|
|
132
|
+
// an absent/degraded input).
|
|
133
|
+
if (input.sentLog === undefined) {
|
|
134
|
+
return { action: 'refuse', reason: 'the send journal could not be read — an unreadable limit/dedup counter cannot show the ceiling is unreached; refusing (fail-closed)' };
|
|
135
|
+
}
|
|
136
|
+
// G5 dedup: this exact visible-text post already went out.
|
|
137
|
+
// G5 dedup covers BOTH a completed send AND an in-flight PENDING record of the same visible text
|
|
138
|
+
// (Codex A- two-phase): a pending row means a prior attempt reached the send path — do not
|
|
139
|
+
// double-publish. A stuck pending is surfaced (the CLI warns) and cleared by removing its line.
|
|
140
|
+
if (input.sha256 !== undefined && input.sentLog.some((r) => r.sha256 === input.sha256)) {
|
|
141
|
+
const prior = input.sentLog.find((r) => r.sha256 === input.sha256);
|
|
142
|
+
return { action: 'refuse', reason: (prior && prior.status === 'pending')
|
|
143
|
+
? 'a PENDING send of this exact post exists (a prior attempt reached the send path) — refusing to double-publish; if that attempt truly failed, remove its line from .dz/tg-post/sent-log.jsonl and retry'
|
|
144
|
+
: 'this exact post (by visible text) has already been sent — refusing a duplicate' };
|
|
145
|
+
}
|
|
146
|
+
// G4 daily limit: sends in the trailing 24h against the ceiling.
|
|
147
|
+
const nowMs = Date.parse(input.nowUtcIso);
|
|
148
|
+
const cutoff = Number.isFinite(nowMs) ? nowMs - 24 * 3600_000 : -Infinity;
|
|
149
|
+
// Only ACCEPTED sends count against the daily limit — a pending row may never have landed, so it
|
|
150
|
+
// must not eat the ceiling (mirror of 'record after'): status 'pending' is excluded, 'sent'/legacy counted.
|
|
151
|
+
const inWindow = input.sentLog.filter((r) => { const t = Date.parse(r.ts); return Number.isFinite(t) && t >= cutoff && r.status !== 'pending'; }).length;
|
|
152
|
+
const ceiling = typeof input.maxPostsPerDay === 'number' && input.maxPostsPerDay > 0 ? Math.floor(input.maxPostsPerDay) : 10;
|
|
153
|
+
if (inWindow >= ceiling) {
|
|
154
|
+
return { action: 'refuse', reason: `daily limit reached: ${inWindow} post(s) sent in the last 24h, ceiling ${ceiling} (ADR-003) — the channel does not exceed its own tempo` };
|
|
155
|
+
}
|
|
156
|
+
return { action: 'send', reason: 'stop-cord clear, formatted, provenance-cleared, confirmed, inside hours, not a duplicate, under the daily limit' };
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=tg-post.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tg-post.js","sourceRoot":"","sources":["../src/tg-post.ts"],"names":[],"mappings":"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"}
|
package/dist/usage.d.ts
CHANGED
|
@@ -93,6 +93,11 @@ export interface UsageLimits {
|
|
|
93
93
|
readonly sessionBlockHours?: number;
|
|
94
94
|
readonly calibratedAt?: string;
|
|
95
95
|
readonly source?: string;
|
|
96
|
+
/** Routing must not read the estimated pcts (ADR-001 usage-honesty, FR-3). Legacy
|
|
97
|
+
* `_disabledReason` free-text also reads as true — the note WAS the switch, now it is data. */
|
|
98
|
+
readonly routingDisabled?: boolean;
|
|
99
|
+
/** Account identity captured at calibration time (FR-4); a login change stales the calibration. */
|
|
100
|
+
readonly calibrationAccount?: string | null;
|
|
96
101
|
}
|
|
97
102
|
export interface UsageModelEstimate {
|
|
98
103
|
readonly tokens: number;
|
|
@@ -123,6 +128,24 @@ export interface UsageEstimate {
|
|
|
123
128
|
/** Traceability for tests and calibration diagnostics. */
|
|
124
129
|
readonly sessionStartedAt: string | null;
|
|
125
130
|
readonly weeklyStartedAt: string | null;
|
|
131
|
+
/**
|
|
132
|
+
* Why the routed pcts are null (ADR-001 usage-honesty): empty ⇔ the numbers are established.
|
|
133
|
+
* `scan-empty` — recent transcripts exist yet the scan extracted nothing (instrument failure);
|
|
134
|
+
* `window-miss:*` — samples exist but the configured window filtered them all (misaligned
|
|
135
|
+
* anchor); `routing-disabled` — config says the estimates must not steer; `calibration-stale` —
|
|
136
|
+
* the account changed since calibration. A zero pct is legitimate ONLY on a machine with no
|
|
137
|
+
* recent transcripts at all.
|
|
138
|
+
*/
|
|
139
|
+
readonly notEstablished: readonly UsageNotEstablishedReason[];
|
|
140
|
+
/**
|
|
141
|
+
* The raw estimates when the routed pcts are nulled by `routing-disabled`/`calibration-stale` —
|
|
142
|
+
* for HUMAN eyes (recalled lesson: an estimated pct must never drive routing until its window is
|
|
143
|
+
* verified against the provider). Absent when the top-level pcts already carry the numbers.
|
|
144
|
+
*/
|
|
145
|
+
readonly estimatesNotForRouting?: {
|
|
146
|
+
readonly sessionPct: number | null;
|
|
147
|
+
readonly weeklyPct: number | null;
|
|
148
|
+
};
|
|
126
149
|
}
|
|
127
150
|
export interface UsageCalibrationInput {
|
|
128
151
|
readonly sessionPct?: unknown;
|
|
@@ -158,6 +181,14 @@ export declare function normalizeClaudeUsageModelKey(raw: unknown): ClaudeUsageM
|
|
|
158
181
|
* The `~/.claude/projects` root (the account-wide transcript store). Overridable via
|
|
159
182
|
* `DZ_CLAUDE_PROJECTS_ROOT` — used by tests to point at a temp tree. Never throws.
|
|
160
183
|
*/
|
|
184
|
+
/**
|
|
185
|
+
* The logged-in account identity, from `~/.claude.json` (oauthAccount email or uuid). Honest null
|
|
186
|
+
* when unreadable/absent — and null==null is NOT an account change (machines that never expose it
|
|
187
|
+
* keep the pre-FR-4 behavior). Never throws.
|
|
188
|
+
*/
|
|
189
|
+
export declare function readClaudeAccountId(): string | null;
|
|
190
|
+
/** Closed set of not-established reasons (ADR-001). */
|
|
191
|
+
export type UsageNotEstablishedReason = 'scan-empty' | 'window-miss:weekly' | 'routing-disabled' | 'calibration-stale:account-changed' | 'calibration-stale:account-unverifiable';
|
|
161
192
|
export declare function claudeProjectsRoot(): string;
|
|
162
193
|
/**
|
|
163
194
|
* Read `memory.usage.*` from `<projectRoot>/.dz/config.json`. NEVER throws —
|
package/dist/usage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAYH;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;CAAsF,CAAC;AAEjH,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+FAA+F;IAC/F,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAiBzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAoBvD;AAED,eAAO,MAAM,mBAAmB,+CAAgD,CAAC;AACjF,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;8DAK0D;IAC1D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,kGAAkG;AAClG,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
|
package/dist/usage.js
CHANGED
|
@@ -211,10 +211,55 @@ export function normalizeClaudeUsageModelKey(raw) {
|
|
|
211
211
|
const key = raw.trim().toLowerCase();
|
|
212
212
|
return CLAUDE_USAGE_MODELS.includes(key) ? key : null;
|
|
213
213
|
}
|
|
214
|
+
/** Recursive .jsonl collector under a subagents tree — bounded depth, lstat-guarded. */
|
|
215
|
+
function walkTranscriptTree(dir, depthLeft, out) {
|
|
216
|
+
if (depthLeft <= 0)
|
|
217
|
+
return;
|
|
218
|
+
let entries;
|
|
219
|
+
try {
|
|
220
|
+
if (!lstatSync(dir).isDirectory())
|
|
221
|
+
return; // symlinked dir ⇒ not walked
|
|
222
|
+
entries = readdirSync(dir);
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
for (const e of entries) {
|
|
228
|
+
const p = join(dir, e);
|
|
229
|
+
if (e.endsWith('.jsonl')) {
|
|
230
|
+
const m = regularFileMtime(p);
|
|
231
|
+
if (m !== null)
|
|
232
|
+
out.push({ path: p, mtimeMs: m });
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
walkTranscriptTree(p, depthLeft - 1, out);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
214
239
|
/**
|
|
215
240
|
* The `~/.claude/projects` root (the account-wide transcript store). Overridable via
|
|
216
241
|
* `DZ_CLAUDE_PROJECTS_ROOT` — used by tests to point at a temp tree. Never throws.
|
|
217
242
|
*/
|
|
243
|
+
/**
|
|
244
|
+
* The logged-in account identity, from `~/.claude.json` (oauthAccount email or uuid). Honest null
|
|
245
|
+
* when unreadable/absent — and null==null is NOT an account change (machines that never expose it
|
|
246
|
+
* keep the pre-FR-4 behavior). Never throws.
|
|
247
|
+
*/
|
|
248
|
+
export function readClaudeAccountId() {
|
|
249
|
+
try {
|
|
250
|
+
const raw = JSON.parse(readFileSync(join(homedir(), '.claude.json'), 'utf-8'));
|
|
251
|
+
const email = raw.oauthAccount?.emailAddress;
|
|
252
|
+
if (typeof email === 'string' && email !== '')
|
|
253
|
+
return email;
|
|
254
|
+
const uuid = raw.oauthAccount?.accountUuid;
|
|
255
|
+
if (typeof uuid === 'string' && uuid !== '')
|
|
256
|
+
return uuid;
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
218
263
|
export function claudeProjectsRoot() {
|
|
219
264
|
const override = process.env['DZ_CLAUDE_PROJECTS_ROOT'];
|
|
220
265
|
if (typeof override === 'string' && override.length > 0)
|
|
@@ -268,6 +313,13 @@ export function readUsageLimits(projectRoot) {
|
|
|
268
313
|
out.calibratedAt = u['calibratedAt'];
|
|
269
314
|
if (typeof u['source'] === 'string')
|
|
270
315
|
out.source = u['source'];
|
|
316
|
+
// routingDisabled: the boolean is authoritative; the legacy free-text note counts as true so
|
|
317
|
+
// the fleet's existing config disables TODAY, without an edit.
|
|
318
|
+
if (u['routingDisabled'] === true || typeof u['_disabledReason'] === 'string')
|
|
319
|
+
out.routingDisabled = true;
|
|
320
|
+
if (typeof u['calibrationAccount'] === 'string' || u['calibrationAccount'] === null) {
|
|
321
|
+
out.calibrationAccount = u['calibrationAccount'];
|
|
322
|
+
}
|
|
271
323
|
return out;
|
|
272
324
|
}
|
|
273
325
|
catch {
|
|
@@ -316,26 +368,15 @@ function listTranscriptFiles(root) {
|
|
|
316
368
|
continue;
|
|
317
369
|
}
|
|
318
370
|
for (const f of files) {
|
|
319
|
-
// A session's SUBAGENT transcripts live
|
|
320
|
-
//
|
|
321
|
-
//
|
|
371
|
+
// A session's SUBAGENT transcripts live under `<session>/subagents/` and carry real,
|
|
372
|
+
// non-duplicated usage that was silently excluded (MEASURED: 27 such files in the first
|
|
373
|
+
// round). The walk is RECURSIVE with a depth cap: workflow agents write to
|
|
374
|
+
// `subagents/workflows/wf_*/agent-*.jsonl` — one level deeper than the first fix reached —
|
|
375
|
+
// and that blind spot alone hid 283.62M weighted tokens across 551 files (MEASURED
|
|
376
|
+
// 2026-08-24, 7-day window, this machine). Depth 4 covers today's deepest layout plus one
|
|
377
|
+
// future level; lstat at EVERY step keeps symlinked directories unwalked.
|
|
322
378
|
if (!f.endsWith('.jsonl')) {
|
|
323
|
-
|
|
324
|
-
try {
|
|
325
|
-
if (!lstatSync(nested).isDirectory())
|
|
326
|
-
continue; // no symlinked session/subagent dirs
|
|
327
|
-
for (const sf of readdirSync(nested)) {
|
|
328
|
-
if (!sf.endsWith('.jsonl'))
|
|
329
|
-
continue;
|
|
330
|
-
const sp = join(nested, sf);
|
|
331
|
-
const m = regularFileMtime(sp);
|
|
332
|
-
if (m !== null)
|
|
333
|
-
out.push({ path: sp, mtimeMs: m });
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
catch {
|
|
337
|
-
/* not a session dir — skip */
|
|
338
|
-
}
|
|
379
|
+
walkTranscriptTree(join(projDir, f, 'subagents'), 4, out);
|
|
339
380
|
continue;
|
|
340
381
|
}
|
|
341
382
|
const p = join(projDir, f);
|
|
@@ -480,12 +521,14 @@ export function computeUsage(projectRoot, now) {
|
|
|
480
521
|
const scanCutoff = Math.min(sessionScanCutoff, weeklyScanCutoff) - MTIME_SLACK_MS;
|
|
481
522
|
const samples = [];
|
|
482
523
|
const seen = new Set();
|
|
524
|
+
let scanFileCount = 0;
|
|
483
525
|
try {
|
|
484
526
|
const files = listTranscriptFiles(claudeProjectsRoot());
|
|
485
527
|
for (const f of files) {
|
|
486
528
|
// mtime prefilter: a file last written before every relevant cutoff cannot contribute.
|
|
487
529
|
if (f.mtimeMs < scanCutoff)
|
|
488
530
|
continue;
|
|
531
|
+
scanFileCount += 1;
|
|
489
532
|
extractSamples(f.path, scanCutoff, samples, seen);
|
|
490
533
|
}
|
|
491
534
|
}
|
|
@@ -522,11 +565,47 @@ export function computeUsage(projectRoot, now) {
|
|
|
522
565
|
}
|
|
523
566
|
}
|
|
524
567
|
}
|
|
568
|
+
// ── Establishment gate (ADR-001): a number may only flow to the routed pct fields when the
|
|
569
|
+
// scan actually established it. Fail-closed in exactly four named ways; the raw estimates stay
|
|
570
|
+
// visible to humans under estimatesNotForRouting when policy (not measurement) nulls them.
|
|
571
|
+
const reasons = [];
|
|
572
|
+
const recentFiles = scanFileCount > 0;
|
|
573
|
+
if (recentFiles && samples.length === 0)
|
|
574
|
+
reasons.push('scan-empty');
|
|
575
|
+
// An IDLE session inside a busy week (block 0, weekly > 0) is a MEASURED zero, not a miss — the
|
|
576
|
+
// first cut of this gate flagged it and four standing tests rightly reddened. Second narrowing
|
|
577
|
+
// (cross-family review): a week that JUST reset over an idle machine still scans pre-reset
|
|
578
|
+
// samples (the session cutoff reaches 10h back), and weekly 0 is then a healthy fresh week. The
|
|
579
|
+
// true miss signature needs a sample AT or PAST the window start that the window still refuses —
|
|
580
|
+
// future-stamped (clock skew) or beyond-reset (stale anchor) — exactly d3639bf0's shape.
|
|
581
|
+
if (weeklyWindow !== null &&
|
|
582
|
+
weeklyTokens <= 0 &&
|
|
583
|
+
samples.some((smp) => smp.ts >= weeklyWindow.startedAtMs)) {
|
|
584
|
+
reasons.push('window-miss:weekly');
|
|
585
|
+
}
|
|
586
|
+
if (limits.routingDisabled === true)
|
|
587
|
+
reasons.push('routing-disabled');
|
|
588
|
+
const account = readClaudeAccountId();
|
|
589
|
+
if (limits.calibrationAccount !== undefined && limits.calibrationAccount !== null) {
|
|
590
|
+
// A stored identity DEMANDS verification (cross-family review: null-current was fail-open —
|
|
591
|
+
// an unreadable ~/.claude.json silently reused another account's calibration). A stored null
|
|
592
|
+
// stays exempt: those machines never claimed an identity to verify.
|
|
593
|
+
if (account === null)
|
|
594
|
+
reasons.push('calibration-stale:account-unverifiable');
|
|
595
|
+
else if (account !== limits.calibrationAccount)
|
|
596
|
+
reasons.push('calibration-stale:account-changed');
|
|
597
|
+
}
|
|
598
|
+
const rawSessionPct = pct(block.tokens, limits.sessionTokenLimit);
|
|
599
|
+
const rawWeeklyPct = weeklyPct;
|
|
600
|
+
const measurementBroken = reasons.some((r) => r === 'scan-empty' || r.startsWith('window-miss'));
|
|
601
|
+
const policyNulled = reasons.some((r) => r === 'routing-disabled' || r.startsWith('calibration-stale'));
|
|
602
|
+
const gatedSessionPct = measurementBroken || policyNulled ? null : rawSessionPct;
|
|
603
|
+
const gatedWeeklyPct = measurementBroken || policyNulled ? null : rawWeeklyPct;
|
|
525
604
|
return {
|
|
526
605
|
sessionTokens: block.tokens,
|
|
527
606
|
weeklyTokens,
|
|
528
|
-
sessionPct:
|
|
529
|
-
weeklyPct,
|
|
607
|
+
sessionPct: gatedSessionPct,
|
|
608
|
+
weeklyPct: gatedWeeklyPct,
|
|
530
609
|
sessionResetsAt: block.resetsAtMs === null ? null : new Date(block.resetsAtMs).toISOString(),
|
|
531
610
|
weeklyResetsAt: weeklyWindow === null ? null : new Date(weeklyWindow.resetsAtMs).toISOString(),
|
|
532
611
|
estimated: true,
|
|
@@ -535,6 +614,10 @@ export function computeUsage(projectRoot, now) {
|
|
|
535
614
|
...(weeklyBindingModel !== undefined ? { weeklyBindingModel } : {}),
|
|
536
615
|
sessionStartedAt: block.startedAtMs === null ? null : new Date(block.startedAtMs).toISOString(),
|
|
537
616
|
weeklyStartedAt: weeklyWindow === null ? null : new Date(weeklyWindow.startedAtMs).toISOString(),
|
|
617
|
+
notEstablished: reasons,
|
|
618
|
+
...(policyNulled && !measurementBroken
|
|
619
|
+
? { estimatesNotForRouting: { sessionPct: rawSessionPct, weeklyPct: rawWeeklyPct } }
|
|
620
|
+
: {}),
|
|
538
621
|
};
|
|
539
622
|
}
|
|
540
623
|
function validPct(label, value, skipped) {
|
|
@@ -627,6 +710,10 @@ export function deriveUsageCalibration(current, before, input) {
|
|
|
627
710
|
if (changes.length > 0) {
|
|
628
711
|
after.calibratedAt = input.calibratedAt;
|
|
629
712
|
after.source = input.source;
|
|
713
|
+
// FR-4: a calibration is a claim about ONE account's limits. Stamp whose — a later login under
|
|
714
|
+
// a different identity then stales it by itself (the 2026-08-24 re-login is the reproducer:
|
|
715
|
+
// the old anchor kept printing 55% on the new account).
|
|
716
|
+
after.calibrationAccount = readClaudeAccountId();
|
|
630
717
|
}
|
|
631
718
|
return { before, after, changes, skipped };
|
|
632
719
|
}
|
package/dist/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writer-quiescence probe for Step 8 — feature qe-writer-quiescence (backlog 700b46a4).
|
|
3
|
+
*
|
|
4
|
+
* MEASURED (crossrt-1, 2026-08-18): Step-8 graded a MOVING tree — a background worker wrote at
|
|
5
|
+
* 19:25, 19:32 and 19:46, AFTER the verdict, its last write clobbering a file the same round had
|
|
6
|
+
* just written. The reviewer hand-waited six consecutive 30-second zero-write windows and
|
|
7
|
+
* re-measured everything. This module is that wait, as a machine: the same idea the publish gate
|
|
8
|
+
* already enforces («не публикуй, пока рой жив»), applied to grading.
|
|
9
|
+
*
|
|
10
|
+
* A BELT, not the root: mutual exclusion of writers (worktree isolation) is item 9520e506. The
|
|
11
|
+
* probe therefore NEVER blocks a run — a moving tree downgrades the verdict's standing loudly
|
|
12
|
+
* instead of stopping the pipeline.
|
|
13
|
+
*
|
|
14
|
+
* PURE: the shell script is GENERATED here and executed by a workflow agent (the workflow sandbox
|
|
15
|
+
* has no child_process — the agent is the shell, same as the landing barrier); the answer is
|
|
16
|
+
* PARSED here, parse-never-synthesize: an empty or malformed probe is 'inconclusive', never
|
|
17
|
+
* 'quiet'.
|
|
18
|
+
*/
|
|
19
|
+
export interface WriterQuiescenceDecision {
|
|
20
|
+
readonly verdict: 'quiet' | 'moving' | 'inconclusive';
|
|
21
|
+
/** Per-window changed counts actually parsed, in order. */
|
|
22
|
+
readonly windows: readonly number[];
|
|
23
|
+
readonly note: string;
|
|
24
|
+
}
|
|
25
|
+
export declare const WQ_WINDOW_SECONDS = 20;
|
|
26
|
+
export declare const WQ_MAX_WINDOWS = 9;
|
|
27
|
+
export declare const WQ_REQUIRED_QUIET = 3;
|
|
28
|
+
/**
|
|
29
|
+
* The probe script a workflow agent runs verbatim. Polls the declared targets PLUS the feature
|
|
30
|
+
* dir (FR-4: the feature's own artifacts are exactly the surface crossrt-1 saw clobbered) in
|
|
31
|
+
* fixed windows; prints one `WQ-WINDOW <n> changed=<count>` line per window and exits early after
|
|
32
|
+
* `requiredQuiet` consecutive zeros. `find -newermt '-<w+5> seconds'` widens the lookback slightly
|
|
33
|
+
* past the sleep so a write on the window boundary cannot fall between two polls.
|
|
34
|
+
*/
|
|
35
|
+
export declare function quiescenceProbeScript(paths: readonly string[], opts?: {
|
|
36
|
+
windowSeconds?: number;
|
|
37
|
+
maxWindows?: number;
|
|
38
|
+
requiredQuiet?: number;
|
|
39
|
+
}): string;
|
|
40
|
+
/** Parse the probe transcript into a verdict. Empty/malformed ⇒ inconclusive, never quiet. */
|
|
41
|
+
export declare function decideWriterQuiescence(probeText: unknown, requiredQuiet?: number): WriterQuiescenceDecision;
|
|
42
|
+
//# sourceMappingURL=writer-quiescence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer-quiescence.d.ts","sourceRoot":"","sources":["../src/writer-quiescence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC;IACtD,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7E,MAAM,CAqBR;AAED,8FAA8F;AAC9F,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,SAAoB,GAAG,wBAAwB,CA8BtH"}
|