@plurnk/plurnk-digest 3.2.2 → 3.2.4
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/README.md +2 -2
- package/SPEC.md +39 -166
- package/dist/Digest.d.ts.map +1 -1
- package/dist/Digest.js +47 -43
- package/dist/Digest.js.map +1 -1
- package/dist/DigestArtifacts.d.ts +10 -0
- package/dist/DigestArtifacts.d.ts.map +1 -0
- package/dist/DigestArtifacts.js +452 -0
- package/dist/DigestArtifacts.js.map +1 -0
- package/dist/DigestFormat.d.ts +18 -0
- package/dist/DigestFormat.d.ts.map +1 -0
- package/dist/DigestFormat.js +142 -0
- package/dist/DigestFormat.js.map +1 -0
- package/dist/DigestLedgers.d.ts +21 -0
- package/dist/DigestLedgers.d.ts.map +1 -0
- package/dist/DigestLedgers.js +284 -0
- package/dist/DigestLedgers.js.map +1 -0
- package/dist/DigestRender.d.ts +15 -15
- package/dist/DigestRender.d.ts.map +1 -1
- package/dist/DigestRender.js +106 -956
- package/dist/DigestRender.js.map +1 -1
- package/dist/DigestRequiem.d.ts +1 -1
- package/dist/DigestRequiem.d.ts.map +1 -1
- package/dist/DigestRequiem.js +36 -36
- package/dist/DigestRequiem.js.map +1 -1
- package/dist/Share.js +1 -1
- package/dist/Share.js.map +1 -1
- package/dist/digest-paths.js +1 -1
- package/dist/digest-paths.js.map +1 -1
- package/dist/digest-rows.d.ts +23 -23
- package/dist/digest-rows.d.ts.map +1 -1
- package/dist/evidence.d.ts +3 -3
- package/dist/evidence.d.ts.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Start at `digest.md`: its turn tables link input, output, reasoning and every ph
|
|
|
7
7
|
Request pages link to adjacent turns and expose failures, admission and native attachment
|
|
8
8
|
descriptors; `requests/<id>.md` shows the available provider evidence and accounting.
|
|
9
9
|
|
|
10
|
-
Read `<
|
|
10
|
+
Read `<session>-<loop>-<turn>.request.md` for the model's ordered text input, with each message's
|
|
11
11
|
role and complete body. The digest names its role sequence beside each turn. `.assistant.md`
|
|
12
12
|
is that turn's **output**, not its input history; `.system.md` and `.user.md` are role-filtered
|
|
13
13
|
extracts. `.wire.json` contains the same ordered text input, not an HTTP capture.
|
|
@@ -32,7 +32,7 @@ Neither path overwrites existing reports. An interview additionally requires an
|
|
|
32
32
|
`provider`: `Digest.requiem({ dbPath, digestDir, openEvidence, provider })`; `Share.write`
|
|
33
33
|
accepts that provider as `requiem`. No route is selected and no inference occurs implicitly.
|
|
34
34
|
|
|
35
|
-
The service CLI is `plurnk-service share [database] [folder] [--requiem]`; database and
|
|
35
|
+
The service CLI is `plurnk-service share [database] [folder] [--workspace=<id>] [--requiem]`; database and
|
|
36
36
|
share-directory selection are service-owned. See [SPEC.md](./SPEC.md) for evidence ownership,
|
|
37
37
|
artifact fidelity and reader lifetime. [.env.defaults](./.env.defaults) owns the interview
|
|
38
38
|
allowances, `PLURNK_DIGEST_REQUIEM_MAX_TOKENS` and `PLURNK_DIGEST_REQUIEM_RETRY_MAX_TOKENS`.
|
package/SPEC.md
CHANGED
|
@@ -1,177 +1,50 @@
|
|
|
1
1
|
# Forensic reports
|
|
2
2
|
|
|
3
|
-
The report package owns artifact generation, SQLite snapshots and requested model interviews.
|
|
4
|
-
The host supplies the evidence reader and selects any interview provider; the package never boots
|
|
5
|
-
or imports the daemon.
|
|
3
|
+
The report package (`@plurnk/plurnk-digest`) owns artifact generation, SQLite snapshots, and requested model interviews. The host supplies the evidence reader and selects any interview provider; the package never boots or imports the daemon.
|
|
6
4
|
|
|
7
|
-
## Evidence
|
|
8
|
-
|
|
9
|
-
§digest-evidence-reader **Interpret once, render independently.**
|
|
5
|
+
## §digest-evidence-reader 1. Evidence Boundary
|
|
10
6
|
|
|
11
7
|
| Owner | Responsibility |
|
|
12
|
-
|
|
13
|
-
| Core `EvidenceReader
|
|
14
|
-
| `@plurnk/plurnk-digest` | Typed read interface, report selection/grouping, Markdown/JSON/artifacts, consistent snapshots and out-of-band interviews. No dependency on core or its private types. |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| Core `EvidenceReader` (`@plurnk/plurnk-service/evidence`) | Package-owned SQL, stored-packet validation, canonical wire and address projection, canonical request accounting, packet-echo classification, and text weight. |
|
|
10
|
+
| `@plurnk/plurnk-digest` | Typed read interface, report selection/grouping, Markdown/JSON/artifacts, consistent snapshots, and out-of-band interviews. No dependency on core or its private types. |
|
|
15
11
|
| Composition (CLI, daemon, harness) | Database/output paths and an explicit provider when an interview is requested. |
|
|
16
12
|
|
|
17
|
-
`openEvidence(path)` returns a disposable reader
|
|
18
|
-
|
|
19
|
-
text slots and messages without publishing the stored packet algebra. The reader caches at most
|
|
20
|
-
one packet. No connection or stored statement escapes it. Report failure closes the reader;
|
|
21
|
-
interviews close it before awaiting their provider. Neither migration nor deletion is a read effect.
|
|
22
|
-
|
|
23
|
-
§digest-proposal-decisions Operation rows retain the original approval decision
|
|
24
|
-
separately from their applied result ({§proposal-decision-evidence}). Markdown
|
|
25
|
-
names its decision, resolver and time, and indicates a body override; JSON retains
|
|
26
|
-
the complete submitted decision. Missing historical decisions remain absent,
|
|
27
|
-
never inferred from success, failure, or current ownership.
|
|
28
|
-
|
|
29
|
-
Physical-request reports preserve identity and accounting after payload retention
|
|
30
|
-
({§retention-policy}), displaying the logical call's retirement timestamp. Expiry
|
|
31
|
-
does not turn a failed or unpriced request into a free or absent request.
|
|
32
|
-
|
|
33
|
-
## Artifacts and reports
|
|
13
|
+
- **Reader lifecycle**: `openEvidence(path)` returns a disposable reader (`rows()` supplies the relational census and durable source rows; packet, response, and transport bodies are fetched individually, caching at most one packet). No connection or prepared statement escapes it. Report failure closes the reader; interviews close it before awaiting their provider. Neither migration nor deletion is a read effect.
|
|
14
|
+
- **Proposal decisions & expired payloads**: Operation rows retain the original approval decision separately from their applied result ({§proposal}): Markdown names decision, resolver, time, and body override; JSON retains the complete submitted decision (missing historical decisions remain absent). Physical-request reports preserve identity, retirement timestamp, and accounting after payload retention ({§content-store}) without turning expired failed/unpriced requests into free or absent ones.
|
|
34
15
|
|
|
35
|
-
§
|
|
36
|
-
reports the file size, the free pages it holds, its `auto_vacuum` mode, and the six
|
|
37
|
-
largest tables and indexes by allocated bytes (`dbstat`), so growth is a number in
|
|
38
|
-
every digest (#764). The digest reads loops as stored, so it tolerates databases
|
|
39
|
-
missing later lifecycle columns.
|
|
16
|
+
## §share-packet-names 2. Artifacts, Snapshots, and Programmatic Surface
|
|
40
17
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
producer does not affect projection.
|
|
46
|
-
|
|
47
|
-
§share-packet-names **Packet artifacts carry the coordinate the log uses.** A turn's files are named
|
|
48
|
-
`<worker>-<loop>-<turn>`, the worker's name and the loop and turn sequences that `log:///<loop>/<turn>/…`
|
|
49
|
-
addresses: the model's first turn in its first loop is `<worker>-1-2`, because the initialization
|
|
50
|
-
survey is turn 1 and writes no packet. A digest spanning several workspaces nests each workspace's
|
|
51
|
-
files in a folder named for it; a name that cannot name a file (a workspace named by its path,
|
|
52
|
-
`~/ptl/x`) is slugged for the folder, `ptl-x`, while the digest text keeps the name verbatim, and
|
|
53
|
-
two names that slug alike are told apart by the row's id. `digest.json` records each turn's stem as `artifact`, so no
|
|
54
|
-
consumer reconstructs a name. A name that cannot be a file name, or two turns sharing one, fails.
|
|
18
|
+
- **Database health**: Beside the database path, the digest reports file size, free pages, `auto_vacuum` mode, and the six largest tables and indexes by allocated bytes (`dbstat`), tolerating databases missing later loop lifecycle columns.
|
|
19
|
+
- **Turn coordinates & workspace folders**: Digest retains every selected turn with exact `ops`/`reasoning` source, a valid stored provider request, or malformed stored packet evidence in durable chronological order. Files are named `<session>-<loop>-<turn>` matching `log:///<loop>/<turn>/…` (the model's first turn in loop 1 is `<session>-1-2` because turn 1 is the initialization survey). Multi-workspace digests nest files in slugged workspace folders (e.g. `~/ptl/x` $\to$ `ptl-x`, disambiguating collisions by row id); `digest.json` records each turn's stem as `artifact`.
|
|
20
|
+
- **Navigation & quoting**: The main Markdown report links each turn's input, output, reasoning, and physical requests outside code fences using relative links. Request pages link back to the digest, previous/next session requests, and exact channel files, distinguishing physical outcomes from emission admission and BARE calls. When no message sections remain, the reader returns no messages and the request page names that absence without synthetic empty files. Forensic Markdown quotes bodies with a longer fence so embedded headings/fences cannot conceal later records.
|
|
21
|
+
- **Snapshots & programmatic surface**: `Share.snapshot(dbPath, copy)` copies a database via SQLite (never filesystem byte copy, which drops WAL pages; refuses existing `copy`), paired with `Share.write({ openEvidence, dbPath, folder, workspaceId?, requiem? })`. Importing `@plurnk/plurnk-digest` (`Digest`, `Share`) performs no I/O. `run({ dbPath, openEvidence, digestDir?, sessionId?, workspaceId? })` writes to `./test/digest` by default, refusing non-empty `digestDir` (and `requiem` refuses existing `requiem.json`/`requiem.md`) before I/O ({§share}). `digest.json` is promoted from a partial file only after every artifact is written. `sessionId` and `workspaceId` narrow all dependent records (intersecting when both are supplied).
|
|
55
22
|
|
|
56
23
|
| Artifact | Present when | Authority |
|
|
57
|
-
|
|
58
|
-
| `<stem>.request.md` |
|
|
59
|
-
| `<stem>.assistant.md` |
|
|
60
|
-
| `<stem>.
|
|
61
|
-
|
|
|
62
|
-
| `<stem>.
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
§
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
output artifact.
|
|
85
|
-
When no message sections remain, the reader returns no messages and the request
|
|
86
|
-
page names that absence. It produces no synthetic empty input, role files, wire
|
|
87
|
-
envelope or prompt-overlap estimate; retained outputs and accounting still render.
|
|
88
|
-
|
|
89
|
-
Forensic Markdown quotes message, response and reasoning bodies with a longer
|
|
90
|
-
fence so embedded headings/fences cannot conceal later records. Raw channel
|
|
91
|
-
files remain byte-identical. Failed partial output, rejected emissions,
|
|
92
|
-
pending requests and missing/retired evidence remain distinct; none implies an
|
|
93
|
-
accepted response, an empty response, or free inference.
|
|
94
|
-
|
|
95
|
-
§share-snapshot **A database is copied by SQLite, never by the filesystem.** `Share.snapshot(dbPath, copy)`, exported as `@plurnk/plurnk-digest` with `Share.write({ openEvidence, dbPath, folder, workspaceId?, requiem? })` (`requiem` is an explicitly supplied provider), is the one consistent copy: a byte copy of a WAL-mode database drops every committed page still in its `-wal` file. A harness that keeps the database beside its digest takes it through `snapshot`; an existing `copy` is refused.
|
|
96
|
-
|
|
97
|
-
§digest-programmatic-surface **The digest is an importable forensic surface.**
|
|
98
|
-
|
|
99
|
-
| Surface | Contract |
|
|
100
|
-
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
101
|
-
| Import `@plurnk/plurnk-digest` | Ships `Digest`, `Share` and typed evidence inputs; importing performs no I/O or process action. Callers invoke it explicitly. |
|
|
102
|
-
| `run({ dbPath, openEvidence })` | Reads the required database and writes a complete digest to `./test/digest` relative to the caller's working directory. |
|
|
103
|
-
| `digestDir` | Selects a nonempty output path. `run` refuses a folder that exists and is not empty, and `requiem` refuses an existing `requiem.json` or `requiem.md`, before database or provider I/O; neither deletes ({§share}). Concurrent callers use distinct folders. |
|
|
104
|
-
| Reader lifetime | `run` reads heavy evidence on demand while rendering, then closes its reader on success or failure. `requiem` closes its reader before awaiting witness inference. |
|
|
105
|
-
| Export completion | Packet and response bodies are read and serialized one record at a time, without discarding evidence. `digest.json` is promoted from a partial file only after every artifact is written; its absence identifies an incomplete export. |
|
|
106
|
-
| `workerId` | Narrows workers and every dependent loop, turn, turn-attached logical inference, specialization, physical request, and log row to that one worker. |
|
|
107
|
-
| `workspaceId` | Narrows workers plus every logical inference and dependent evidence owned by one workspace, when both selectors are present they intersect. A workspace selected alone is the digest's workspace even when it holds no worker. |
|
|
108
|
-
|
|
109
|
-
§digest-cost-kind **Cost basis named.** A rendered Cost line carries the basis of its dollar figure: `(charged)` only when every settled request's cost is provider-charged; `(estimated — catalog rates)` when any settled request's cost is an estimate, because a mixed sum is no more trustworthy than its weakest term. A dollar figure without its basis reads as billed truth, and an estimate must never impersonate a charge.
|
|
110
|
-
|
|
111
|
-
§digest-wire-line **Wire health aggregated.** Each worker summary renders a `Wire:` line — total physical provider requests, error-outcome count, and the error percentage when nonzero. Provider-level failures are absorbed by retries below the packet stream, so without this aggregate a rate-limit storm is invisible in every summary while the model's experience stays clean.
|
|
112
|
-
|
|
113
|
-
§digest-room-line **The room in provider tokens.** Each worker summary renders a `Room:` line over its packet-bearing inference requests that record a known input capacity and wall and a provider count: the exact preflight measurement, else the reported input. It names the largest budget the model was shown, converted at that request's own ratio (`count ÷ weight`), as a share of the capacity; the range of the wall's estimate as the packet's conversion reconstructs it (`weight × capacity ÷ budget`) against the count; and, marked ⚠, the requests the estimate put under the wall while the count was over it ({§context-wall-measure}). A worker without such requests reads `(no measured requests)`. Every run checks the ruler, pass or fail.
|
|
114
|
-
|
|
115
|
-
§digest-cache-ledger **Measured cache reuse and estimated prompt overlap are separate.**
|
|
116
|
-
|
|
117
|
-
| Projection | Meaning |
|
|
118
|
-
|---|---|
|
|
119
|
-
| `digest.json` provider-request `cachedTokens`, `inputTokens` | Exact provider-reported cache reads and input tokens; absent quantities remain `null`, reported zero remains zero. Every physical request counts, including retries and first requests of new loops. Stored packet availability is irrelevant to these counters. |
|
|
120
|
-
| Turn `cache=<cached>/<input>` | Sum each measured quantity over that turn's requests. If any request omits a quantity, that sum is `?`. |
|
|
121
|
-
| Workspace `Cache: <cached> of <input> reported input tokens read from cache (<pct>%) over <n> requests` | Sum only requests reporting both counters. Percentage is cache reads / input, rounded to one decimal; zero input is `n/a`. Requests missing either counter are counted separately as `missing input or cache usage (excluded)`. |
|
|
122
|
-
| `digest.json` provider-request `adjacentPrefixTokensEstimate` | Optional loop-local diagnostic: the longest common character prefix with the preceding request, weighted under {§tokenomics-agnostic-ruler} as a share of the current stored prompt, multiplied by reported input tokens. First request: `0`; missing current/preceding packet or current input: `null`. Empty prompts have zero overlap. |
|
|
123
|
-
|
|
124
|
-
The prefix estimate uses the stored emission packet's wire message order, roles
|
|
125
|
-
and content. A BARE request's input is not that packet; its prefix estimate and
|
|
126
|
-
the following request's comparison are unknown. The estimate is
|
|
127
|
-
neither provider tokenization nor a cache ceiling, and never supplies a cache-ratio
|
|
128
|
-
denominator. Caching across loops or against other provider-resident prefixes
|
|
129
|
-
does not make the measured counters inconsistent.
|
|
130
|
-
|
|
131
|
-
§digest-edit-census **Every model EDIT by the form it authored, how it landed, and whether it came back.** For each worker the digest reads every model-authored EDIT row and classifies the form from the row's stored marker and the durable statement's pattern: `hash` (one anchor), `line` (one line number), `range` (two marks), `insert` (the zero-width `<L,1,L,1>` form, {§zero-width-column-one-insert}), `column` (any other four-mark region), `prepend` / `append` (`<0>` / `<-1>`), `offset` (a tolerated anchor offset, {§anchor-offset}), `pattern` (a selection matcher), `whole` (no marker: a creation when it lands 201). It counts the EDITs, those refused (status ≥ 400), and the *revisits*: an EDIT of a path the same worker had edited within its previous two model turns — the shape of a repair without the claim of one. Each worker summary renders `EDITs: <n> · <form>=<count>… · refused=<k> · revisits=<r>` (`(no edits)` for none); `digest.json` carries the census as `edit_census` on every worker and stamps every EDIT log entry with its `edit_form` and `edit_revisit`. A form is a fact about what was written, never about intent; the bench sheet reads the counts as friction and leaves the judgement to the reader.
|
|
132
|
-
|
|
133
|
-
§digest-forensic-fidelity **Forensic fidelity and cardinality.** The digest's machine-readable JSON preserves every log event with its initial and current projection, causal `source`, and structured `attrs`; every exact log-KILL target effect; the exact Problem on every failed row; each loop's exact terminal result, settlement time, scheduled due time, recurring interval, and recurrence lineage; and every ordered physical provider request. Programs still produce chronological `assistant.md` artifacts after every READ receipt is KILLed; source is independent of log curation. Each worker summary's `Emissions:` line counts its announced emission rows, those the worker KILLed, and the headings it echoed ({§emission-row}); its `Reasonings:` line counts its landed reasoning rows, those the worker KILLed, and the turns that reasoned ({§reasoning-row}); the op mix leaves both harness rows out. Each stored packet validates independently: one malformed historical packet remains exact raw evidence with its complete validation error chain and never prevents healthy turns from being projected. Accounting on broader rows is the shared exact derivation from that ledger, never a second stored fact. A worker's Cost line names how many settled requests carry no usage at all (errored or aborted exchanges) — their server-side spend is unrecorded rather than silently priced as zero. The reasoning chronology distinguishes readable reasoning content from provider-reported reasoning usage: when tokens were reported but no readable content was returned, it states both facts instead of implying that no reasoning occurred. The human Markdown waterfall shows a present causal source and may preview only the Problem detail because it remains a triage projection, not the machine record. Targets reconstruct the model-visible address, including hostname, port, serialized query, and fragment; an authority-bearing URL must never degrade from `https://host/path` to `https:///path`, and durable resource coordinates render back to their authority form. Its human Markdown waterfall groups consecutive identical per-turn op outcomes and typed `entry_materialized` narrations, reporting the exact count and sequence span (`xN (seq A-B)`). Grouping keys include source and the complete target, so distinct causes, authorities, or channels never collapse, and non-consecutive events preserve their chronological order. Thus amplification is conspicuous without making the diagnostic artifact itself pathological; valid packet files remain byte-identical records of what the model saw.
|
|
134
|
-
|
|
135
|
-
Unrecognized actionless log rows are retained and labelled as such, not
|
|
136
|
-
interpreted as executable turnOps or allowed to prevent the remaining digest.
|
|
137
|
-
|
|
138
|
-
Log JSON preserves `inherited_history` and `ambient_event_id` when the evidence
|
|
139
|
-
reader supplies them. A copied model-origin row is history, not a new authored
|
|
140
|
-
operation; multiple observers may retain the same ambient occurrence. An absent
|
|
141
|
-
field in an older export or reader means unknown, not `false` or `null`.
|
|
142
|
-
|
|
143
|
-
§digest-executor-evidence **A red command is work, not a defect.** Engine-materialized
|
|
144
|
-
completion rows for a failed command carry the executor's problem identity
|
|
145
|
-
(`https://problems.plurnk.xyz/executor/*`), and the digest classifies them as
|
|
146
|
-
evidence: they render like any row but never count toward a loop's error total,
|
|
147
|
-
its health verdict, or the per-turn `errs=` badge — a loop that concluded green
|
|
148
|
-
over red test runs is CLEAN, not DEGENERATE-WIN. This is the digest mirror of the
|
|
149
|
-
strike rail's exemption ({§engine-rails}, #425 F1): structural violations count,
|
|
150
|
-
executor evidence never does.
|
|
151
|
-
|
|
152
|
-
§digest-capacity-evidence **A 413 is the contract working, not a defect.** The
|
|
153
|
-
capacity contract's rows, a result that did not fit ({§context-fit}), the
|
|
154
|
-
over-budget mandate ({§context-over-budget-row}) and any other 413, render like
|
|
155
|
-
any row but never count toward a loop's error total, its error-item count, its
|
|
156
|
-
health verdict, or the per-turn `errs=` badge: a loop that concluded green under
|
|
157
|
-
a binding budget is CLEAN. Refusals of the model's own statements still count.
|
|
158
|
-
|
|
159
|
-
§digest-requiem **A requiem is an out-of-band forensic interview, not a worker
|
|
160
|
-
turn.** It cannot execute operations or alter the audited history.
|
|
161
|
-
|
|
162
|
-
| Aspect | Contract |
|
|
163
|
-
|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
164
|
-
| Scope | One interview for each worker with model-bearing inference turns; workers without inference evidence are omitted. |
|
|
165
|
-
| Evidence | The worker's final packet plus every attempt's exact normalized response and admission evidence; opaque raw transport remains in durable forensic artifacts. Quoted evidence is budgeted to the witness window ({§digest-requiem-evidence-budget}). |
|
|
166
|
-
| Witness | An explicitly supplied provider; CLI composition may resolve the active configured provider. Absence fails hard; the report package never selects a route. |
|
|
167
|
-
| Identity | The worker's durable provider identity ({§worker-provider-identity}) is sent as the `workerId`, without asserting a live worker topology. |
|
|
168
|
-
| Attempts | One call at `PLURNK_DIGEST_REQUIEM_MAX_TOKENS`; only an empty length-limited response receives one retry at `PLURNK_DIGEST_REQUIEM_RETRY_MAX_TOKENS`. |
|
|
169
|
-
| Artifacts | `requiem.md` carries testimony and exact nullable USD accounting. `requiem.json` is durably materialized before each call and preserves logical call state, messages, normalized responses, every physical request's state and accounting, and their shared aggregate projection. |
|
|
170
|
-
|
|
171
|
-
§digest-requiem-evidence-budget **Quoted evidence fits the witness.** The
|
|
172
|
-
interview's user message is budgeted against the witness provider's context
|
|
173
|
-
window minus the retry output allowance and system framing (chars/2, the
|
|
174
|
-
capacity gate's own estimator). Overflow elides the oldest provider attempts
|
|
175
|
-
behind an explicit `elidedOldestAttempts` count marker, never silently; the
|
|
176
|
-
final packet and the newest attempts always testify. A windowless witness
|
|
177
|
-
(`contextWindow` null) quotes unbudgeted.
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| `<stem>.request.md` / `<stem>.wire.json` | Turn stored a provider request / message sections retained | Ordered text-message envelope from `EvidencePacket.messages()` ({§packet-assembly}), excluding native payloads, provider controls, and transport transforms (`<stem>.wire.invalid.json` when log projection fails). |
|
|
26
|
+
| `<stem>.assistant.md` / `<stem>.reasoning.md` | Turn has `ops` / `reasoning` source | Exact `turn_sources.content`, independent of log curation. |
|
|
27
|
+
| `<stem>.system.md`, `<stem>.user.md` | Request message sections retained | Role-filtered text projections for extraction. |
|
|
28
|
+
| `digest.json` turn `attachments` | Every turn | Stored native attachment descriptors (`[]` = no attachments, `null` = no valid stored request). |
|
|
29
|
+
| `<stem>.assistantRaw.json` / `<stem>.response.md` | Admitted provider response / no admitted response | Stored opaque provider response, or stored request and attempt state. |
|
|
30
|
+
| `<stem>.packet.raw.txt` / `<stem>.packet.invalid.json` | Stored packet fails typed validation | Exact stored packet text and turn identity + validation error chain. |
|
|
31
|
+
| `requests/<id>.md`, `.json` | Every physical provider request | Request identity, disposition, accounting, and response/failure evidence ({§provider-interface}). |
|
|
32
|
+
|
|
33
|
+
## §digest-forensic-fidelity 3. Metrics, Cache Ledger, Edit Census, and Fidelity
|
|
34
|
+
|
|
35
|
+
| Metric / Surface | Contract |
|
|
36
|
+
| --- | --- |
|
|
37
|
+
| Cost line (`Cost:`) | Labels basis `(charged)` only when every settled request is provider-charged, or `(estimated — catalog rates)` when any is estimated; counts settled requests with no usage (errored/aborted) so unrecorded spend is never silently priced as zero. |
|
|
38
|
+
| Wire line (`Wire:`) | Renders total physical provider requests, error-outcome count, and error percentage when nonzero. |
|
|
39
|
+
| Room line (`Room:`) | Over packet-bearing requests with known input capacity, wall, and provider count (preflight measurement, else reported input): names largest budget shown converted at `count ÷ weight` as a share of capacity, wall estimate range (`weight × capacity ÷ budget`) against count, and marks with `⚠` requests estimated under the wall while count was over it ({§tokenomics}); `(no measured requests)` when none. |
|
|
40
|
+
| Cache ledger (`Cache:`) | `digest.json` records exact `cachedTokens` and `inputTokens` (`null` when absent) plus loop-local `adjacentPrefixTokensEstimate` (weighted longest common character prefix with preceding emission packet $\times$ `inputTokens`; `0` on first request, `null` on BARE or missing packet/input). Turn renders `cache=<cached>/<input>` (`?` if any omitted); workspace sums requests reporting both counters (`<pct>%`, or `n/a` on zero input) and counts excluded requests separately. |
|
|
41
|
+
| Edit census (`EDITs:`) | Classifies every model-authored EDIT row into `hash` (1 anchor), `line` (1 line number), `range` (2 marks), `insert` (`<L,1,L,1>`, {§zero-width-column-one-insert}), `column` (other 4-mark), `prepend` (`<0>`), `append` (`<-1>`), `offset` (anchor offset, {§op-methods-op-dispatch}), `pattern` (selection matcher), or `whole` (no marker; creation on 201), counting total, `refused` (status $\ge 400$), and `revisits` (same path edited within previous 2 model turns); stamps `edit_census` on sessions and `edit_form`/`edit_revisit` on EDIT log entries. |
|
|
42
|
+
| Session summaries & waterfall | Counts `Emissions:` (announced, KILLed, echoed headings) and `Reasonings:` (landed, KILLed, turns that reasoned; distinguishes readable content from token-only reasoning usage) ({§turn-source-resources}). JSON preserves every log event (initial/current projection, `source`, `attrs`, log-KILL target effects, exact Problem, optional `inherited_history` and `ambient_event_id`), loop lineage, request ledger, and full target authority (`https://host/path`). Markdown waterfall groups consecutive identical per-turn op outcomes and `entry_materialized` narrations by `(source, target)` as `xN (seq A-B)`. |
|
|
43
|
+
| Executor & capacity evidence | Failed command completion rows (`https://problems.plurnk.xyz/executor/*`, {§engine-rails}) and capacity contract `413` rows ({§tokenomics}) render in the waterfall but never count toward a loop's error total, error-item count, health verdict (`CLEAN`), or per-turn `errs=` badge. |
|
|
44
|
+
|
|
45
|
+
## §digest-requiem 4. Requiem Interviews
|
|
46
|
+
|
|
47
|
+
A requiem is an out-of-band forensic interview over each session with model-bearing inference turns, using an explicitly supplied witness provider and the session's durable provider identity ({§machine-processes}) as `sessionId`.
|
|
48
|
+
|
|
49
|
+
- **Evidence budget**: Quotes the session's final packet plus every attempt's normalized response and admission evidence, budgeted against the witness's `contextWindow` minus retry output allowance and system framing (`chars / 2`); overflow elides oldest attempts behind an explicit `elidedOldestAttempts` marker (unbudgeted when `contextWindow` is `null`).
|
|
50
|
+
- **Execution & artifacts**: Makes one call at `PLURNK_DIGEST_REQUIEM_MAX_TOKENS`, retrying once at `PLURNK_DIGEST_REQUIEM_RETRY_MAX_TOKENS` only on an empty length-limited response. Materializes `requiem.json` (logical call state, messages, normalized responses, physical request accounting) before each call and `requiem.md` (testimony and nullable USD accounting) on completion.
|
package/dist/Digest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Digest.d.ts","sourceRoot":"","sources":["../src/Digest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Digest.d.ts","sourceRoot":"","sources":["../src/Digest.ts"],"names":[],"mappings":"AAMA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,OAAO,KAAK,EAUR,aAAa,EAChB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,OAAO,OAAO,MAAM;;IAEvB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,SAAS,CAAC,CAE9G;IAED,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAIpC;CA2IJ"}
|
package/dist/Digest.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isRecord } from "@plurnk/plurnk-contracts";
|
|
1
2
|
import { closeSync, existsSync, mkdirSync, openSync, readdirSync, renameSync, statSync, writeFileSync } from "node:fs";
|
|
2
3
|
import { join } from "node:path";
|
|
3
4
|
import { trace } from "@opentelemetry/api";
|
|
@@ -16,7 +17,7 @@ export default class Digest {
|
|
|
16
17
|
observedSync(trace.getTracer("@plurnk/plurnk-digest"), "digest.write", {}, () => { Digest.#runSettled(opts); });
|
|
17
18
|
}
|
|
18
19
|
static #runSettled(opts) {
|
|
19
|
-
// {§
|
|
20
|
+
// {§share-packet-names}: refuse the destination before opening evidence.
|
|
20
21
|
const { dbPath, digestDir } = digestPaths(opts);
|
|
21
22
|
// {§share}: the digest never deletes; a caller reusing a folder removes it first.
|
|
22
23
|
if (existsSync(digestDir) && (!statSync(digestDir).isDirectory() || readdirSync(digestDir).length > 0)) {
|
|
@@ -27,7 +28,7 @@ export default class Digest {
|
|
|
27
28
|
}
|
|
28
29
|
static #write(evidence, dbPath, digestDir, opts) {
|
|
29
30
|
const rows = evidence.rows();
|
|
30
|
-
let { workspaces,
|
|
31
|
+
let { workspaces, sessions, inferenceCalls, modelCalls, turnAttempts, providerRequests, logEntries, editRows, curationEffects, sessionRollupRows, opMixRows } = rows;
|
|
31
32
|
const { environmentRows, searchState, derivationState, dispositionCounts, dispositions, storageTables, emissionRows, reasoningRows } = rows;
|
|
32
33
|
let loops = rows.loops.map((loop) => ({ ...loop, claimed_at: loop.claimed_at ?? null }));
|
|
33
34
|
if (rows.storage === undefined)
|
|
@@ -47,19 +48,19 @@ export default class Digest {
|
|
|
47
48
|
derivation_artifacts_complete: derivationState.complete,
|
|
48
49
|
derivation_artifacts_building: derivationState.building,
|
|
49
50
|
};
|
|
50
|
-
// {§
|
|
51
|
-
// kept
|
|
52
|
-
if (opts.
|
|
53
|
-
|
|
51
|
+
// {§share-packet-names} — optional session/workspace selectors narrow the
|
|
52
|
+
// kept session graph and its dependent evidence rather than emitting the whole DB.
|
|
53
|
+
if (opts.sessionId !== undefined)
|
|
54
|
+
sessions = sessions.filter((r) => r.id === opts.sessionId);
|
|
54
55
|
if (opts.workspaceId !== undefined)
|
|
55
|
-
|
|
56
|
-
if (opts.
|
|
57
|
-
const
|
|
58
|
-
// A workspace selected alone stays the digest's though it holds no
|
|
59
|
-
// workspaces of the
|
|
60
|
-
const keptWorkspaceIds = new Set(opts.
|
|
56
|
+
sessions = sessions.filter((r) => r.workspace_id === opts.workspaceId);
|
|
57
|
+
if (opts.sessionId !== undefined || opts.workspaceId !== undefined) {
|
|
58
|
+
const keptSessionIds = new Set(sessions.map((r) => r.id));
|
|
59
|
+
// A workspace selected alone stays the digest's though it holds no session; a session selector keeps the
|
|
60
|
+
// workspaces of the sessions it kept.
|
|
61
|
+
const keptWorkspaceIds = new Set(opts.sessionId === undefined ? [opts.workspaceId] : sessions.map((r) => r.workspace_id));
|
|
61
62
|
workspaces = workspaces.filter((s) => keptWorkspaceIds.has(s.id));
|
|
62
|
-
loops = loops.filter((l) =>
|
|
63
|
+
loops = loops.filter((l) => keptSessionIds.has(l.session_id));
|
|
63
64
|
const keptLoopIds = new Set(loops.map((l) => l.id));
|
|
64
65
|
turns = turns.filter((t) => keptLoopIds.has(t.loop_id));
|
|
65
66
|
const keptTurnIds = new Set(turns.map((t) => t.id));
|
|
@@ -73,21 +74,21 @@ export default class Digest {
|
|
|
73
74
|
const keptLogEntryIds = new Set(logEntries.map((entry) => entry.id));
|
|
74
75
|
curationEffects = curationEffects.filter((effect) => keptLogEntryIds.has(effect.operation_log_entry_id)
|
|
75
76
|
&& keptLogEntryIds.has(effect.target_log_entry_id));
|
|
76
|
-
|
|
77
|
-
opMixRows = opMixRows.filter((o) =>
|
|
77
|
+
sessionRollupRows = sessionRollupRows.filter((r) => keptSessionIds.has(r.session_id));
|
|
78
|
+
opMixRows = opMixRows.filter((o) => keptSessionIds.has(o.session_id));
|
|
78
79
|
}
|
|
79
80
|
mkdirSync(digestDir, { recursive: true });
|
|
80
|
-
const
|
|
81
|
-
for (const r of
|
|
82
|
-
const arr =
|
|
81
|
+
const sessionsByWorkspace = new Map();
|
|
82
|
+
for (const r of sessions) {
|
|
83
|
+
const arr = sessionsByWorkspace.get(r.workspace_id) ?? [];
|
|
83
84
|
arr.push(r);
|
|
84
|
-
|
|
85
|
+
sessionsByWorkspace.set(r.workspace_id, arr);
|
|
85
86
|
}
|
|
86
|
-
const
|
|
87
|
+
const loopsBySession = new Map();
|
|
87
88
|
for (const l of loops) {
|
|
88
|
-
const arr =
|
|
89
|
+
const arr = loopsBySession.get(l.session_id) ?? [];
|
|
89
90
|
arr.push(l);
|
|
90
|
-
|
|
91
|
+
loopsBySession.set(l.session_id, arr);
|
|
91
92
|
}
|
|
92
93
|
const turnsByLoop = new Map();
|
|
93
94
|
for (const t of turns) {
|
|
@@ -105,12 +106,12 @@ export default class Digest {
|
|
|
105
106
|
const requestsByAttempt = new Map();
|
|
106
107
|
const requestsByTurn = new Map();
|
|
107
108
|
const requestsByLoop = new Map();
|
|
108
|
-
const
|
|
109
|
+
const requestsBySession = new Map();
|
|
109
110
|
const requestsByWorkspace = new Map();
|
|
110
111
|
const appendRequest = (map, id, request) => {
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
map.set(id,
|
|
112
|
+
const bucket = map.get(id) ?? [];
|
|
113
|
+
bucket.push(request);
|
|
114
|
+
map.set(id, bucket);
|
|
114
115
|
};
|
|
115
116
|
for (const request of providerRequests) {
|
|
116
117
|
appendRequest(requestsByInferenceCall, request.inference_call_id, request);
|
|
@@ -121,15 +122,15 @@ export default class Digest {
|
|
|
121
122
|
appendRequest(requestsByTurn, request.turn_id, request);
|
|
122
123
|
if (request.loop_id !== null)
|
|
123
124
|
appendRequest(requestsByLoop, request.loop_id, request);
|
|
124
|
-
if (request.
|
|
125
|
-
appendRequest(
|
|
125
|
+
if (request.session_id !== null)
|
|
126
|
+
appendRequest(requestsBySession, request.session_id, request);
|
|
126
127
|
appendRequest(requestsByWorkspace, request.workspace_id, request);
|
|
127
128
|
}
|
|
128
|
-
const
|
|
129
|
+
const editRowsBySession = new Map();
|
|
129
130
|
for (const row of editRows) {
|
|
130
|
-
const arr =
|
|
131
|
+
const arr = editRowsBySession.get(row.session_id) ?? [];
|
|
131
132
|
arr.push(row);
|
|
132
|
-
|
|
133
|
+
editRowsBySession.set(row.session_id, arr);
|
|
133
134
|
}
|
|
134
135
|
const logEntriesByTurn = new Map();
|
|
135
136
|
for (const le of logEntries) {
|
|
@@ -138,22 +139,25 @@ export default class Digest {
|
|
|
138
139
|
logEntriesByTurn.set(le.turn_id, arr);
|
|
139
140
|
}
|
|
140
141
|
const loopsById = new Map(loops.map((l) => [l.id, l]));
|
|
141
|
-
const
|
|
142
|
-
const
|
|
143
|
-
const environments = new Map(environmentRows.map((row) =>
|
|
144
|
-
|
|
142
|
+
const sessionsById = new Map(sessions.map((r) => [r.id, r]));
|
|
143
|
+
const sessionRollups = new Map(sessionRollupRows.map((r) => [r.session_id, r]));
|
|
144
|
+
const environments = new Map(environmentRows.map((row) => {
|
|
145
|
+
const env = JSON.parse(row.env);
|
|
146
|
+
return [`${row.workspace_id}:${row.stream}`, isRecord(env) ? env : {}];
|
|
147
|
+
}));
|
|
148
|
+
const opMixBySession = new Map();
|
|
145
149
|
for (const o of opMixRows) {
|
|
146
|
-
const arr =
|
|
150
|
+
const arr = opMixBySession.get(o.session_id) ?? [];
|
|
147
151
|
arr.push(o);
|
|
148
|
-
|
|
152
|
+
opMixBySession.set(o.session_id, arr);
|
|
149
153
|
}
|
|
150
154
|
const m = {
|
|
151
155
|
evidence,
|
|
152
|
-
dbPath, storage, digestDir, workspaces,
|
|
153
|
-
|
|
154
|
-
requestsByInferenceCall, requestsByAttempt, requestsByTurn, requestsByLoop,
|
|
155
|
-
logEntriesByTurn, emissionRows, reasoningRows, editRows,
|
|
156
|
-
|
|
156
|
+
dbPath, storage, digestDir, workspaces, sessions, loops, turns, inferenceCalls, modelCalls, turnAttempts, providerRequests, logEntries, curationEffects,
|
|
157
|
+
sessionsByWorkspace, loopsBySession, turnsByLoop, attemptsByTurn,
|
|
158
|
+
requestsByInferenceCall, requestsByAttempt, requestsByTurn, requestsByLoop, requestsBySession, requestsByWorkspace,
|
|
159
|
+
logEntriesByTurn, emissionRows, reasoningRows, editRows, editRowsBySession, environments, loopsById, sessionsById,
|
|
160
|
+
sessionRollups, opMixBySession, search,
|
|
157
161
|
};
|
|
158
162
|
writeFileSync(join(digestDir, "digest.md"), DigestRender.waterfall(m));
|
|
159
163
|
const pending = join(digestDir, "digest.json.partial");
|
|
@@ -171,7 +175,7 @@ export default class Digest {
|
|
|
171
175
|
renameSync(pending, join(digestDir, "digest.json"));
|
|
172
176
|
console.log(`digest: wrote ${digestDir}/{digest.md,digest.json,reasoning.md} + ${packetFiles.length} packet artifact files (${packetIds.join(", ") || "none"})`);
|
|
173
177
|
console.log(` source: ${dbPath}`);
|
|
174
|
-
console.log(` workspaces=${workspaces.length}
|
|
178
|
+
console.log(` workspaces=${workspaces.length} sessions=${sessions.length} loops=${loops.length} turns=${turns.length} inference_calls=${inferenceCalls.length} model_calls=${modelCalls.length} turn_attempts=${turnAttempts.length} provider_requests=${providerRequests.length} log_entries=${logEntries.length} log_curation_effects=${curationEffects.length}`);
|
|
175
179
|
}
|
|
176
180
|
}
|
|
177
181
|
//# sourceMappingURL=Digest.js.map
|
package/dist/Digest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Digest.js","sourceRoot":"","sources":["../src/Digest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Digest.js","sourceRoot":"","sources":["../src/Digest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ChatMessage } from "@plurnk/plurnk-providers";
|
|
2
|
+
import type { DigestModel, TurnRow } from "./digest-rows.ts";
|
|
3
|
+
export declare const packetStems: (m: DigestModel) => Map<number, string>;
|
|
4
|
+
export declare const turnLinks: (m: DigestModel, turn: TurnRow, from: string) => string[];
|
|
5
|
+
export declare const request: (messages: ReadonlyArray<ChatMessage & {
|
|
6
|
+
content: string;
|
|
7
|
+
}>, preamble?: readonly string[]) => string;
|
|
8
|
+
export declare const packetFiles: (m: DigestModel) => string[];
|
|
9
|
+
export declare function json(m: DigestModel): Generator<string>;
|
|
10
|
+
//# sourceMappingURL=DigestArtifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DigestArtifacts.d.ts","sourceRoot":"","sources":["../src/DigestArtifacts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAc5D,OAAO,KAAK,EAAE,WAAW,EAAsB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAWjF,eAAO,MAAM,WAAW,MAAO,WAAW,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CA6B9D,CAAC;AAEF,eAAO,MAAM,SAAS,MAAO,WAAW,QAAQ,OAAO,QAAQ,MAAM,KAAG,MAAM,EAQ7E,CAAC;AAGF,eAAO,MAAM,OAAO,aAAc,aAAa,CAAC,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,aAAY,SAAS,MAAM,EAAE,KAAQ,MAQtH,CAAC;AAiGF,eAAO,MAAM,WAAW,MAAO,WAAW,KAAG,MAAM,EAwHlD,CAAC;AAEF,wBAAiB,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAuKvD"}
|