@event4u/agent-config 16.1.0 → 16.2.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 +237 -248
- package/dist/agent-src/commands/roadmap/process-full.md +1 -1
- package/dist/agent-src/commands/work.md +4 -0
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +4 -8
- package/dist/agent-src/rules/ui-audit-gate.md +1 -2
- package/dist/agent-src/skills/accessibility-auditor/data/aria-patterns.csv +1 -1
- package/dist/agent-src/skills/accessibility-auditor/data/manifest.json +2 -2
- package/dist/agent-src/skills/design-review/SKILL.md +30 -4
- package/dist/agent-src/skills/design-review/references/verification-automation.md +32 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +16 -1
- package/dist/agent-src/skills/existing-ui-audit/references/component-taxonomy-detection.md +56 -0
- package/dist/agent-src/skills/markitdown/SKILL.md +4 -0
- package/dist/agent-src/skills/playwright-testing/SKILL.md +30 -6
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +23 -0
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/roadmaps.md +30 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/app_spec.ts +10 -4
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +260 -21
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +22 -3
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +6 -1
- package/dist/agent-src/templates/scripts/work_engine/state.ts +57 -7
- package/dist/agent-src/templates/scripts/work_engine/taxonomy/detect.ts +500 -0
- package/dist/agent-src/templates/scripts/work_engine/taxonomy/place.ts +183 -0
- package/dist/cli/python/knowledge_ingest.js +1 -1
- package/dist/cli/python/workspace_drive.js +1 -1
- package/dist/cli-delegate/{chunk-S3VFXMTM.js → chunk-4XFP2Y3E.js} +1 -1
- package/dist/cli-delegate/{chunk-HDVVGPQW.js → chunk-7XGBX6ZH.js} +471 -387
- package/dist/cli-delegate/{chunk-GJCBB2UG.js → chunk-FP36SWJD.js} +432 -144
- package/dist/cli-delegate/{chunk-UNCRJBT3.js → chunk-IGD6ERX6.js} +31 -0
- package/dist/cli-delegate/{chunk-FXYUYU4N.js → chunk-JNMVLWLR.js} +42 -1
- package/dist/cli-delegate/{chunk-QJWAUMJW.js → chunk-YJ72UIAK.js} +730 -15
- package/dist/cli-delegate/cmd_conformance.js +902 -782
- package/dist/cli-delegate/cmd_doctor.js +2 -2
- package/dist/cli-delegate/cmd_export.js +2 -2
- package/dist/cli-delegate/cmd_handoff.js +4 -4
- package/dist/cli-delegate/cmd_memory_get.js +1 -1
- package/dist/cli-delegate/cmd_prune.js +2 -2
- package/dist/cli-delegate/cmd_route_audit.js +1 -1
- package/dist/cli-delegate/cmd_session_recycle.js +2 -2
- 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 +10 -10
- 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 +6666 -2581
- package/dist/hooks/dispatch.sha256 +1 -0
- package/dist/install/install.mjs +848 -733
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +2747 -1510
- package/dist/server/schemas/settings.js +23 -0
- package/dist/ui/assets/index-Cwq4d0hX.js +23 -0
- package/dist/ui/assets/index-Cyjy8bWO.css +1 -0
- package/dist/ui/index.html +2 -2
- package/docs/contracts/settings-classes.md +6 -4
- package/package.json +4 -4
- package/src/agent-src/templates/scripts/work_engine/directives/ui/app_spec.ts +10 -4
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +260 -21
- package/src/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +22 -3
- package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +6 -1
- package/src/agent-src/templates/scripts/work_engine/state.ts +57 -7
- package/src/agent-src/templates/scripts/work_engine/taxonomy/detect.ts +500 -0
- package/src/agent-src/templates/scripts/work_engine/taxonomy/place.ts +183 -0
- package/src/config/agent-settings.template.yml +29 -0
- package/src/config/ci-local-parity.yml +18 -0
- package/src/config/continuity-surface.json +2 -2
- package/src/config/gate-coverage.yml +234 -3
- package/src/config/gate-violation-baselines.json +7 -3
- package/src/config/hook-latency-budget.json +21 -0
- package/src/config/hook-token-budget.json +2 -2
- package/src/config/metric-registry.yml +114 -0
- package/src/config/placeholder-drift-budget.json +10 -0
- package/src/config/routing-coverage-seed.json +18 -4
- package/src/scripts/_cli/cmd_doctor.ts +5 -19
- package/src/scripts/_cli/doctor_execution.ts +100 -17
- package/src/scripts/_cli/doctor_network_posture.ts +226 -0
- package/src/scripts/_lib/body_portable.ts +102 -0
- package/src/scripts/_lib/cc_transcript.ts +132 -1
- package/src/scripts/_lib/concern_sla_window.ts +200 -0
- package/src/scripts/_lib/forge_protection.ts +114 -0
- package/src/scripts/_lib/forge_reader.ts +558 -0
- package/src/scripts/_lib/host_env_write.ts +111 -0
- package/src/scripts/_lib/llm_proposer_transport.ts +14 -4
- package/src/scripts/_lib/obligations.ts +119 -8
- package/src/scripts/_lib/probe_inputs.ts +271 -0
- package/src/scripts/_lib/read_surface_scan.ts +322 -0
- package/src/scripts/_lib/release_highlights.ts +2 -1
- package/src/scripts/_lib/retrieval_sanitize.ts +77 -16
- package/src/scripts/_lib/shell_write_shapes.ts +108 -0
- package/src/scripts/_lib/structural_hiding.ts +622 -0
- package/src/scripts/_lib/turn_end_refusals.ts +525 -4
- package/src/scripts/_lib/turn_end_transcript.ts +216 -0
- package/src/scripts/_lib/verification_command.ts +324 -0
- package/src/scripts/_lib/verification_evidence.ts +647 -0
- package/src/scripts/_lib/verify_clause.ts +280 -0
- package/src/scripts/ai_team/team_dispatch.ts +4 -0
- package/src/scripts/before_complete_hook.ts +340 -23
- package/src/scripts/bench_hook_latency.ts +412 -5
- package/src/scripts/cache_realization_report.ts +61 -1
- package/src/scripts/check_argument_hint.ts +287 -0
- package/src/scripts/check_claims.ts +125 -1
- package/src/scripts/check_enforcement_coverage.ts +38 -9
- package/src/scripts/check_enforcement_matrix.ts +245 -3
- package/src/scripts/check_finding_dispositions.ts +22 -3
- package/src/scripts/check_generator_sync.ts +71 -0
- package/src/scripts/check_host_docs_digest.ts +786 -0
- package/src/scripts/check_host_format_column.ts +559 -0
- package/src/scripts/check_input_references.ts +228 -0
- package/src/scripts/check_inputs_parity.ts +235 -0
- package/src/scripts/check_kernel_edit_ratified.ts +47 -5
- package/src/scripts/check_kill_switch_table.ts +294 -0
- package/src/scripts/check_placeholder_drift.ts +221 -0
- package/src/scripts/check_read_surface_coverage.ts +515 -0
- package/src/scripts/check_release_holds.ts +2 -1
- package/src/scripts/check_routing_coverage.ts +378 -11
- package/src/scripts/check_static_parity.ts +17 -0
- package/src/scripts/ci_settle.ts +145 -19
- package/src/scripts/closure_scan.ts +115 -1
- package/src/scripts/compile_hook_manifest.ts +60 -16
- package/src/scripts/external_sources_denylist.json +29 -4
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +42 -5
- package/src/scripts/hooks/block_config_weakening.ts +229 -4
- package/src/scripts/hooks/block_kernel_rule_writes.ts +9 -78
- package/src/scripts/hooks/block_plumbing_writes.ts +314 -0
- package/src/scripts/hooks/bundle_integrity.ts +291 -0
- package/src/scripts/hooks/chain_nudge_hook.ts +1 -2
- package/src/scripts/hooks/code_graph_context_hook.ts +1 -2
- package/src/scripts/hooks/comment_discipline_hook.ts +1 -3
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/concern_timings.ts +94 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +1 -2
- package/src/scripts/hooks/design_pass_hook.ts +100 -9
- package/src/scripts/hooks/design_slop_hook.ts +1 -2
- package/src/scripts/hooks/dispatch_hook.ts +25 -19
- package/src/scripts/hooks/edit_shape_hook.ts +1 -2
- package/src/scripts/hooks/end_review_nudge_hook.ts +1 -1
- package/src/scripts/hooks/evidence_independence.ts +1 -2
- package/src/scripts/hooks/exit_codes.ts +128 -0
- package/src/scripts/hooks/host_lowering.json +1 -0
- package/src/scripts/hooks/host_lowering.ts +128 -3
- package/src/scripts/hooks/host_lowering.yaml +262 -46
- package/src/scripts/hooks/host_semantics.ts +30 -2
- package/src/scripts/hooks/injection_budget.ts +9 -2
- package/src/scripts/hooks/interruption_ledger_hook.ts +1 -2
- package/src/scripts/hooks/journal_record_hook.ts +1 -2
- package/src/scripts/hooks/memory_recall_hook.ts +1 -2
- package/src/scripts/hooks/obligation_settle_hook.ts +151 -5
- package/src/scripts/hooks/one_question_per_ask_hook.ts +25 -4
- package/src/scripts/hooks/orchestration_record_hook.ts +1 -2
- package/src/scripts/hooks/permission_gate.ts +1 -2
- package/src/scripts/hooks/push_settle_hook.ts +1 -3
- package/src/scripts/hooks/replay_hook.ts +2 -1
- package/src/scripts/hooks/reread_guard_hook.ts +1 -2
- package/src/scripts/hooks/review_baseline_hook.ts +1 -2
- package/src/scripts/hooks/rtk_wrap_hook.ts +1 -2
- package/src/scripts/hooks/rule_inject_hook.ts +8 -5
- package/src/scripts/hooks/run_continuation_hook.ts +13 -15
- package/src/scripts/hooks/skill_route_hook.ts +1 -2
- package/src/scripts/hooks/source_first_gate_hook.ts +1 -2
- package/src/scripts/hooks/spawn_guard_shadow_hook.ts +1 -2
- package/src/scripts/hooks/subagent_ledger_hook.ts +1 -2
- package/src/scripts/hooks/suggestion_capture_hook.ts +1 -1
- package/src/scripts/hooks/table_fingerprint.ts +49 -0
- package/src/scripts/hooks/telemetry_flush_hook.ts +1 -2
- package/src/scripts/hooks/telemetry_usage_hook.ts +1 -2
- package/src/scripts/hooks/tool_result_bytes_hook.ts +93 -9
- package/src/scripts/hooks/turn_end_gate_hook.ts +337 -324
- package/src/scripts/hooks/ui_route_nudge_hook.ts +1 -2
- package/src/scripts/install.ts +3 -4
- package/src/scripts/lint_deny_text.ts +419 -0
- package/src/scripts/lint_exit_codes.ts +262 -0
- package/src/scripts/lint_hook_manifest.ts +55 -0
- package/src/scripts/lint_roadmap_blockers.ts +78 -12
- package/src/scripts/lint_skill_descriptions.ts +1 -1
- package/src/scripts/lint_skill_scripts_readonly.ts +1 -1
- package/src/scripts/mcp_server/prompts.ts +142 -1
- package/src/scripts/measure_skill_ranker_baseline.ts +305 -51
- package/src/scripts/measure_turn_end_gate.ts +193 -0
- package/src/scripts/memory_lookup.ts +1 -1
- package/src/scripts/prepack-check.mjs +53 -0
- package/src/scripts/release_publication.ts +13 -1
- package/src/scripts/report_invocation_surface.ts +383 -0
- package/src/scripts/report_obligation_carriers.ts +699 -0
- package/src/scripts/report_obligation_writer_split.ts +236 -0
- package/src/scripts/report_skill_menu_census.ts +208 -0
- package/src/scripts/report_standing_payload_by_host.ts +1 -1
- package/src/scripts/roadmap_verify_share.ts +213 -0
- package/src/scripts/schemas/command.schema.json +44 -0
- package/src/scripts/schemas/review-findings.schema.json +4 -0
- package/src/scripts/schemas/skill.schema.json +44 -0
- package/src/scripts/self_review_gate.ts +359 -10
- package/src/scripts/semantic_parity_census.ts +314 -0
- package/src/scripts/session_eol_report.ts +54 -1
- package/src/scripts/sweep_dead_scan_roots.ts +1 -1
- package/src/scripts/trigger_eval_grandfather.json +0 -2
- package/src/scripts/trigger_eval_rotation.ts +122 -27
- package/src/scripts/ui_conformance_probe.ts +156 -4
- package/src/scripts/update_prices.ts +85 -3
- package/src/scripts/write_bundle_digest.mjs +74 -0
- package/src/server/schemas/settings.ts +31 -0
- package/src/templates/consumer-settings/ONBOARDING.md +1 -0
- package/dist/ui/assets/index-DH1xc62v.js +0 -29
- package/dist/ui/assets/index-jSfMW8_t.css +0 -1
- /package/dist/cli-delegate/{chunk-YUM5KURG.js → chunk-7RQP4UDH.js} +0 -0
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
*
|
|
25
25
|
* PRIVACY BY CONSTRUCTION — never widen this file to record content.
|
|
26
26
|
*
|
|
27
|
-
* The record type has exactly
|
|
27
|
+
* The record type has exactly four fields and NONE of them can hold free
|
|
28
28
|
* text: a timestamp, a tool NAME (an id-shaped enum — `Read`, `Bash`,
|
|
29
29
|
* `Grep` — the same single host string `orchestration_record_hook` already
|
|
30
|
-
* records), and
|
|
30
|
+
* records), and TWO BYTE COUNTS. A tool result routinely carries file
|
|
31
31
|
* contents, command output, secrets in an env dump, and customer data from
|
|
32
32
|
* an API response. None of it reaches this file's output, because the
|
|
33
33
|
* output has no field able to carry it. A record shape that cannot hold a
|
|
@@ -47,6 +47,34 @@
|
|
|
47
47
|
* identical while the cost came back. The `RESULT_KEYS` literals below are the
|
|
48
48
|
* key NAMES this concern looks under, not a read of the body.
|
|
49
49
|
*
|
|
50
|
+
* TWO COUNTS, ONE OF THEM REDUNDANT TODAY. `raw_bytes` is what
|
|
51
|
+
* the host handed the dispatcher; `delivered_bytes` is what reached the
|
|
52
|
+
* model. Today they are EQUAL BY CONSTRUCTION, and the construction is
|
|
53
|
+
* checkable: nothing under `src/` or `docs/` emits the host's result-rewrite
|
|
54
|
+
* field, so no concern can rewrite a tool result on its way past. That
|
|
55
|
+
* absence is a grep, and the grep lives in this concern's test rather than
|
|
56
|
+
* in this sentence - a claim in a comment is not falsifiable, and naming the
|
|
57
|
+
* field here would put a match in the very tree the grep sweeps.
|
|
58
|
+
*
|
|
59
|
+
* Recording both NOW is what makes a later reduction measurable instead of
|
|
60
|
+
* asserted. With one field, a future release that starts trimming results
|
|
61
|
+
* has no before-number and can only claim an improvement; with two, the
|
|
62
|
+
* delta is in the census the day the trimming lands. The cost of the second
|
|
63
|
+
* field is one integer per line in one workspace — see the gate below.
|
|
64
|
+
*
|
|
65
|
+
* DEFAULT OFF OUTSIDE THE MAINTAINER WORKSPACE. A byte counter on every
|
|
66
|
+
* tool call in every consumer install is
|
|
67
|
+
* the cheapest possible way to add a second unread instrument: it costs a
|
|
68
|
+
* write per tool call, accumulates volume, and answers a question only this
|
|
69
|
+
* package's maintainers have asked. So {@link resolvesMaintainerWorkspace}
|
|
70
|
+
* gates the write, and with no maintainer workspace resolved a dispatch
|
|
71
|
+
* writes nothing at all — not an empty line, not a file.
|
|
72
|
+
*
|
|
73
|
+
* A consumer who WANTS the census sets `AGENT_CONFIG_TOOL_BYTE_CENSUS=1`.
|
|
74
|
+
* That is a deliberate opt-in and it is the only other way the write
|
|
75
|
+
* happens; there is no settings key, because a key would put the decision in
|
|
76
|
+
* a file this concern would then have to parse on the hot path.
|
|
77
|
+
*
|
|
50
78
|
* ── Always exit 0 ─────────────────────────────────────────────────────
|
|
51
79
|
*
|
|
52
80
|
* A `warn` (exit 2) is read as a hard BLOCK on this host, and this concern
|
|
@@ -56,8 +84,8 @@
|
|
|
56
84
|
*
|
|
57
85
|
* ── Absence is recorded, not inferred ─────────────────────────────────
|
|
58
86
|
*
|
|
59
|
-
* A payload carrying no readable result writes a line with
|
|
60
|
-
* and `measurable: false` rather than writing nothing. The two cases are
|
|
87
|
+
* A payload carrying no readable result writes a line with both byte fields
|
|
88
|
+
* null and `measurable: false` rather than writing nothing. The two cases are
|
|
61
89
|
* otherwise byte-identical in the output — "this host does not carry tool
|
|
62
90
|
* results in its PostToolUse payload" and "no tools ran" would produce the
|
|
63
91
|
* same empty file, and the first is a finding about the instrument's own
|
|
@@ -72,8 +100,7 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
|
72
100
|
import { is_replay_mode } from './state_io.js';
|
|
73
101
|
import { readHookStdin } from './hook_stdin.js';
|
|
74
102
|
import { stubbedBytes } from './payload_stub.js';
|
|
75
|
-
|
|
76
|
-
const EXIT_ALLOW = 0;
|
|
103
|
+
import { EXIT_ALLOW } from './exit_codes.js';
|
|
77
104
|
|
|
78
105
|
type JsonValue = string | number | boolean | null | JsonValue[] | { [k: string]: JsonValue };
|
|
79
106
|
type JsonObject = { [k: string]: JsonValue };
|
|
@@ -85,7 +112,7 @@ function isObject(v: unknown): v is JsonObject {
|
|
|
85
112
|
/**
|
|
86
113
|
* Census file, relative to the consumer repo root. Sibling of
|
|
87
114
|
* `injection-census.jsonl` in the same directory and the same
|
|
88
|
-
* `{ts, …, bytes}` line
|
|
115
|
+
* `{ts, …, bytes}` line family — one family, two units: that file counts
|
|
89
116
|
* bytes this suite injects, this one counts bytes the host's tools do.
|
|
90
117
|
* Gitignored via `/agents/runtime/`.
|
|
91
118
|
*/
|
|
@@ -169,13 +196,65 @@ function censusFile(consumerRoot: string): string {
|
|
|
169
196
|
export interface CensusLine {
|
|
170
197
|
ts: string;
|
|
171
198
|
tool: string | null;
|
|
172
|
-
bytes
|
|
199
|
+
/** UTF-8 bytes the host handed the dispatcher. `null` ⇒ unmeasurable. */
|
|
200
|
+
raw_bytes: number | null;
|
|
201
|
+
/**
|
|
202
|
+
* UTF-8 bytes that reached the model.
|
|
203
|
+
*
|
|
204
|
+
* Equal to {@link CensusLine.raw_bytes} by construction today — nothing in
|
|
205
|
+
* this tree rewrites a tool result. It is recorded anyway so that a later
|
|
206
|
+
* reduction is a measured delta rather than a claim. See the header.
|
|
207
|
+
*/
|
|
208
|
+
delivered_bytes: number | null;
|
|
173
209
|
/** `false` ⇒ the payload carried no readable result. See the header. */
|
|
174
210
|
measurable: boolean;
|
|
175
211
|
}
|
|
176
212
|
|
|
213
|
+
/** `package.json.name` of the workspace this census is for. */
|
|
214
|
+
export const MAINTAINER_PACKAGE_NAME = '@event4u/agent-config';
|
|
215
|
+
|
|
216
|
+
/** Deliberate consumer opt-in. Any other value, or unset, leaves the census off. */
|
|
217
|
+
export const CENSUS_OPT_IN_ENV = 'AGENT_CONFIG_TOOL_BYTE_CENSUS';
|
|
218
|
+
|
|
219
|
+
/** Memoised per root: this is read once per dispatched tool call otherwise. */
|
|
220
|
+
const _maintainerCache = new Map<string, boolean>();
|
|
221
|
+
|
|
222
|
+
/** Test seam — the cache would otherwise outlive a fixture root's contents. */
|
|
223
|
+
export function _resetMaintainerCache(): void {
|
|
224
|
+
_maintainerCache.clear();
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Does this root resolve the maintainer workspace?
|
|
229
|
+
*
|
|
230
|
+
* Read off `package.json.name`, which is the cheapest unambiguous marker of
|
|
231
|
+
* the one workspace whose `workspaces: [agent-config-maintainer]` artefacts
|
|
232
|
+
* are active. A settings key was rejected: it would put a YAML parse on the
|
|
233
|
+
* post_tool_use path for a decision that never changes within a checkout.
|
|
234
|
+
*
|
|
235
|
+
* Any failure — no `package.json`, unreadable, unparseable, a different name
|
|
236
|
+
* — resolves to FALSE. The default is silence, which is the safe direction
|
|
237
|
+
* for an instrument nobody in that workspace is going to read.
|
|
238
|
+
*/
|
|
239
|
+
export function resolvesMaintainerWorkspace(consumerRoot: string): boolean {
|
|
240
|
+
if (process.env[CENSUS_OPT_IN_ENV] === '1') return true;
|
|
241
|
+
const cached = _maintainerCache.get(consumerRoot);
|
|
242
|
+
if (cached !== undefined) return cached;
|
|
243
|
+
let verdict = false;
|
|
244
|
+
try {
|
|
245
|
+
const raw = fs.readFileSync(path.join(consumerRoot, 'package.json'), 'utf8');
|
|
246
|
+
const parsed = JSON.parse(raw) as unknown;
|
|
247
|
+
verdict = isObject(parsed) && parsed['name'] === MAINTAINER_PACKAGE_NAME;
|
|
248
|
+
} catch {
|
|
249
|
+
verdict = false;
|
|
250
|
+
}
|
|
251
|
+
_maintainerCache.set(consumerRoot, verdict);
|
|
252
|
+
return verdict;
|
|
253
|
+
}
|
|
254
|
+
|
|
177
255
|
export function _appendCensusLine(consumerRoot: string, line: CensusLine): void {
|
|
178
256
|
if (is_replay_mode()) return;
|
|
257
|
+
if (!resolvesMaintainerWorkspace(consumerRoot)) return;
|
|
179
258
|
const file = censusFile(consumerRoot);
|
|
180
259
|
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
181
260
|
fs.appendFileSync(file, `${JSON.stringify(line)}\n`, 'utf8');
|
|
@@ -193,7 +272,12 @@ export function processEnvelope(envelope: JsonValue, consumerRoot: string): numb
|
|
|
193
272
|
_appendCensusLine(consumerRoot, {
|
|
194
273
|
ts: new Date().toISOString(),
|
|
195
274
|
tool: _toolName(payload, envelope),
|
|
196
|
-
bytes,
|
|
275
|
+
raw_bytes: bytes,
|
|
276
|
+
// Equal BY CONSTRUCTION, not by copy-as-convenience: no concern
|
|
277
|
+
// can rewrite a result between the host and the model, because
|
|
278
|
+
// nothing under src/ or docs/ emits the host's rewrite field. The
|
|
279
|
+
// test pins that as a grep; naming the field here would match it.
|
|
280
|
+
delivered_bytes: bytes,
|
|
197
281
|
measurable: bytes !== null,
|
|
198
282
|
});
|
|
199
283
|
} catch {
|