pm-context 2026.10.10 → 2026.10.12
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/CHANGELOG.md +6 -0
- package/README.md +167 -36
- package/dist/context-receipts.d.ts +115 -0
- package/dist/context-receipts.d.ts.map +1 -0
- package/dist/context-receipts.js +317 -0
- package/dist/context-receipts.js.map +1 -0
- package/dist/index.d.ts +2 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -33
- package/dist/index.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026.10.12 - 2026-10-12
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- pm context-usage: report which served context an agent actually used ([pm-context-ci6v](https://github.com/unbraind/pm-context/blob/main/.agents/pm/features/pm-context-ci6v.toon))
|
|
8
|
+
|
|
3
9
|
## 2026.10.5 - 2026-10-05
|
|
4
10
|
|
|
5
11
|
### Other
|
package/README.md
CHANGED
|
@@ -29,9 +29,9 @@ pm context-pack --id pm-1234 --max-items 10
|
|
|
29
29
|
|
|
30
30
|
The command reads workspace data in-process through the typed pm SDK, so packs
|
|
31
31
|
use the installed CLI's canonical query and relevance engines rather than a
|
|
32
|
-
second parser. Normal pack and handoff runs
|
|
33
|
-
serving event for
|
|
34
|
-
|
|
32
|
+
second parser. Normal pack and handoff runs attach a runtime receipt for their rendered facts
|
|
33
|
+
and record a best-effort SDK serving event for visible items when an author is
|
|
34
|
+
available. `--explain` stays observational and creates neither receipt nor event.
|
|
35
35
|
|
|
36
36
|
## Output
|
|
37
37
|
|
|
@@ -86,6 +86,8 @@ ceiling.
|
|
|
86
86
|
|
|
87
87
|
Options:
|
|
88
88
|
|
|
89
|
+
- `--session <id>` usage session (also available on `context-handoff`); defaults to
|
|
90
|
+
`PM_CONTEXT_SESSION`, then a fresh receipt id for each bundle
|
|
89
91
|
- `--id <id>` repeatable item ids to focus
|
|
90
92
|
- `--ids <id,id>` comma-separated focus item ids (alias for repeated `--id`)
|
|
91
93
|
- `--status <status>` filter by status
|
|
@@ -104,7 +106,7 @@ Options:
|
|
|
104
106
|
A breadth-first walk over the dependency relationship graph in both directions
|
|
105
107
|
(`depends_on`/`blocked_by` edges and their reverse). `0` is equivalent to
|
|
106
108
|
`--without-neighborhood`; the value is capped at `5`. Depth `1` is the historical
|
|
107
|
-
default and
|
|
109
|
+
default and preserves the prior item selection. Neighbors discovered
|
|
108
110
|
at deeper hops are still classified as neighbors (never focus), de-duplicated, and a
|
|
109
111
|
focus item is never listed as its own neighbor.
|
|
110
112
|
- `--compress` minimize output tokens (compact JSON, no blank lines)
|
|
@@ -120,46 +122,139 @@ Options:
|
|
|
120
122
|
|
|
121
123
|
`pm context-usage`
|
|
122
124
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
125
|
+
Measures the context bundles generated by `context-pack` and `context-handoff`,
|
|
126
|
+
with separate compatibility metrics from the host's `context`/`next` ledger.
|
|
127
|
+
It reports facts served versus facts reported used per session and item, so
|
|
128
|
+
agents can reduce unused context in their next request.
|
|
129
|
+
|
|
130
|
+
### Agent usage protocol (v1)
|
|
131
|
+
|
|
132
|
+
1. Choose a session id and set `PM_CONTEXT_SESSION`, or pass `--session` on each
|
|
133
|
+
serving and reporting command. Refreshing context creates a new receipt;
|
|
134
|
+
reusing a session aggregates those bundle impressions. Without a session,
|
|
135
|
+
each bundle's receipt id becomes its isolated session id.
|
|
136
|
+
2. Read a pack or handoff. JSON adds `context_receipt` with `protocol`,
|
|
137
|
+
`receipt_id`, `session`, `author`, `served_at`, stable `sections` and `facts`.
|
|
138
|
+
Text annotates headings with `[s-…]` and content lines with `[f-…]`, and ends
|
|
139
|
+
with a receipt/session footer. Preserve those ids in the agent's context.
|
|
140
|
+
3. Report facts that informed your work, using ids from that receipt. A section
|
|
141
|
+
citation reports all facts in that section. A post-mutation or file-edit hook
|
|
142
|
+
may instead submit touched item ids or edited repository-relative paths.
|
|
143
|
+
Invoke the hook **after successful work**, against the receipt used for it.
|
|
144
|
+
4. Inspect the session report, then request fewer sections or items when the
|
|
145
|
+
retained evidence repeatedly shows unused context.
|
|
126
146
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
-
|
|
147
|
+
```bash
|
|
148
|
+
export PM_CONTEXT_SESSION=review-42
|
|
149
|
+
pm context-pack --ids pm-1234,pm-5678 --section focus
|
|
150
|
+
# Copy the actual receipt/fact identifiers from the returned bundle:
|
|
151
|
+
pm context-usage --receipt RECEIPT_ID --cite FACT_ID --json
|
|
152
|
+
pm context-usage --receipt RECEIPT_ID --cite SECTION_ID --json
|
|
153
|
+
# A hook can report later successful mutations or edits:
|
|
154
|
+
pm context-usage --receipt RECEIPT_ID --touch pm-1234 --edited-file src/example.ts
|
|
155
|
+
pm context-usage --session review-42 --json
|
|
156
|
+
pm context-usage --by agent-a --limit 50
|
|
157
|
+
```
|
|
136
158
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
159
|
+
`--cite`, `--touch`, and `--edited-file` accept repeated flags or comma-separated
|
|
160
|
+
values and require `--receipt`. An unknown citation, unserved item/file, invalid
|
|
161
|
+
path, expired receipt, or mismatched session rejects the entire submission.
|
|
162
|
+
Repeated submissions are idempotent. Reports for the same fact can retain all
|
|
163
|
+
three evidence categories without counting the fact as used more than once.
|
|
164
|
+
When a session is supplied explicitly or through the environment it must match
|
|
165
|
+
the selected receipt. Different receipts never inherit one another's evidence,
|
|
166
|
+
even if their fact ids are identical. `--by` filters the recording author;
|
|
167
|
+
the host-owned global `--author` sets invocation identity, not the report filter.
|
|
168
|
+
|
|
169
|
+
A fact is one nonblank rendered text content line (including placeholders), or
|
|
170
|
+
one top-level JSON field value/array entry. Generated timestamps and headings
|
|
171
|
+
are framing. Facts are content-addressed by section, associated item ids, and
|
|
172
|
+
rendered content; unchanged content in the same format keeps its id across
|
|
173
|
+
refreshes. Changed content gets a new id. Repeated identical fragments in one
|
|
174
|
+
section share an id with summed token cost. Section ids hash the rendered name.
|
|
175
|
+
Markdown section filters, body truncation, handoff link limits and packing are
|
|
176
|
+
applied **before** facts are identified. JSON reports all fields in the JSON
|
|
177
|
+
bundle, as with the existing JSON serving format.
|
|
178
|
+
|
|
179
|
+
Only visible item identifiers and visible linked file paths are associated with
|
|
180
|
+
facts; excluded bodies, items and sections cannot receive usage credit. File
|
|
181
|
+
paths are normalized to repository-relative POSIX paths. URLs and absolute or
|
|
182
|
+
traversing paths cannot be reported as edited files. A fact spanning several
|
|
183
|
+
items belongs to each item's rollup, so item totals can overlap; session and
|
|
184
|
+
bundle totals count that fact once.
|
|
185
|
+
|
|
186
|
+
The JSON report adds `bundles`, with `totals`, `sessions`, `items`, and `receipts`:
|
|
187
|
+
|
|
188
|
+
- `precision = used_facts / served_facts` (`null` for no served facts).
|
|
189
|
+
- `cited_facts`, `touch_facts`, and `edit_facts` separate explicit citations from
|
|
190
|
+
mutation/edit proxies. An uncited read can be reported explicitly by fact id.
|
|
191
|
+
- `estimated_served_tokens` sums fact cost, estimated as `ceil(characters / 4)`
|
|
192
|
+
per rendered fragment. `unused_context_tokens` sums only unused facts.
|
|
193
|
+
These are estimates, not tokenizer measurements, billing, or cognitive-use proof.
|
|
194
|
+
- `protocol_tokens` separately estimates receipt/annotation overhead; headings,
|
|
195
|
+
generated clocks and other framing are outside the fact-cost denominator.
|
|
196
|
+
- `unused_fact_ids` identifies unused facts in each detailed receipt. Aggregate
|
|
197
|
+
metrics are computed before `--limit` truncates the detail arrays.
|
|
198
|
+
|
|
199
|
+
Metrics describe the complete bundle handed to the command host or written to
|
|
200
|
+
`--output`. The SDK does not expose a fact-level post-egress callback, so later
|
|
201
|
+
host truncation, omitted responses, or an agent failing to read a saved file
|
|
202
|
+
cannot be inferred. For complete delivery use `--output` and read the resulting
|
|
203
|
+
file, or the host's unbounded output controls. Agents must submit evidence;
|
|
204
|
+
silence means **unreported usage**, not proven irrelevance. Host ledger touches
|
|
205
|
+
carry no session or fact ids and are never automatically credited to a receipt.
|
|
206
|
+
|
|
207
|
+
### Runtime storage and failure handling
|
|
208
|
+
|
|
209
|
+
Receipts live exclusively in the tracker's ignored
|
|
210
|
+
`runtime/context-receipts/` directory. Each atomic JSON snapshot stores ids,
|
|
211
|
+
associations, token estimates and deduplicated evidence, **no context text**.
|
|
212
|
+
Rotation keeps the current receipt and the most recently written siblings, at
|
|
213
|
+
most 200 snapshots of 256 KiB each (50 MiB maximum retained receipt data).
|
|
214
|
+
Older receipts are deleted; their
|
|
215
|
+
metrics leave the retained-window report. Successful evidence writes refresh a
|
|
216
|
+
receipt's retention position. There is no tracked receipt file or schema change,
|
|
217
|
+
and the host-owned `runtime/context-usage.jsonl` remains under SDK ownership.
|
|
218
|
+
The receipt returned by the current serving call is protected during rotation,
|
|
219
|
+
including when older snapshots have future modification times. The remaining
|
|
220
|
+
199 slots retain the most recently written siblings.
|
|
221
|
+
|
|
222
|
+
A directory lock serializes cooperating writers; contention fails a usage
|
|
223
|
+
submission and can be retried. A process crash can leave `.lock`; an operator
|
|
224
|
+
may remove that abandoned lock after ensuring no writer is running. Corrupt,
|
|
225
|
+
oversized or partial snapshots are skipped and counted as `malformed_receipts`.
|
|
226
|
+
Serving failures disclose `context_receipt_error` in JSON or a receipt-unavailable
|
|
227
|
+
message in text and still return context. They do not claim measured usage.
|
|
228
|
+
`--explain` creates no receipt. Failed output-file writes roll back their receipt.
|
|
229
|
+
|
|
230
|
+
### Host ledger compatibility report
|
|
231
|
+
|
|
232
|
+
The existing report still reads pm's bounded `runtime/context-usage.jsonl` and
|
|
233
|
+
surfaces **conversion** (same-author serve followed by a touch), **waste**
|
|
234
|
+
(served without a later touch), and **misses** (touched without a serve).
|
|
235
|
+
It uses serve rows' `included` flags; `ranked - serves` identifies budget losses.
|
|
236
|
+
Recognized delivery rows do not change that legacy denominator. This historical
|
|
237
|
+
conversion is separate from the receipt/session metrics and cannot establish
|
|
238
|
+
fact usage or final delivery. When `--by` is supplied, SDK-decayed affinity is
|
|
239
|
+
shown when available; the package does not implement a competing relevance model.
|
|
142
240
|
|
|
143
241
|
```bash
|
|
144
|
-
pm context-usage
|
|
145
|
-
pm context-usage --
|
|
146
|
-
pm context-usage --surface next --since 7d
|
|
147
|
-
pm context-usage --author agent-a --limit 50
|
|
242
|
+
pm context-usage
|
|
243
|
+
pm context-usage --surface next --since 7d --json
|
|
148
244
|
```
|
|
149
245
|
|
|
150
|
-
|
|
246
|
+
Report options:
|
|
151
247
|
|
|
152
|
-
- `--
|
|
153
|
-
- `--
|
|
154
|
-
- `--
|
|
155
|
-
- `--
|
|
156
|
-
- `--
|
|
248
|
+
- `--session <id>` filter bundle receipts (also reads `PM_CONTEXT_SESSION`)
|
|
249
|
+
- `--receipt <id>` filter or submit evidence to one bundle receipt
|
|
250
|
+
- `--cite <ids>`, `--touch <ids>`, `--edited-file <paths>` submit usage evidence
|
|
251
|
+
- `--by <author>` filter both reports by recording author
|
|
252
|
+
- `--surface <context|next>` filter only legacy host serve events
|
|
253
|
+
- `--since <when>` drop serves at or before an ISO timestamp or day offset
|
|
254
|
+
(`7d`, `-7d`, `7`); bundle evidence is attributed to the receipt's serve time
|
|
255
|
+
- `--limit <n>` maximum detail rows (default `20`)
|
|
256
|
+
- `--format <markdown|json>`; the global `--json` also selects JSON
|
|
157
257
|
|
|
158
|
-
The command is strictly read-only. The ledger is pm's file, with pm's schema and
|
|
159
|
-
pm's pruning, and it deliberately reports only what the ledger states directly —
|
|
160
|
-
it does **not** compute a competing affinity score, because pm owns the decay
|
|
161
|
-
model and a second implementation could silently disagree with the ranking it
|
|
162
|
-
purports to explain.
|
|
163
258
|
|
|
164
259
|
## Philosophy
|
|
165
260
|
|
|
@@ -183,3 +278,39 @@ itself lists each affected stream in its output; `pm history --verify <id>` spot
|
|
|
183
278
|
content, so `reconcile` only re-greens the hash chain (no data loss) — see the authoritative
|
|
184
279
|
[pm-cli merge-safety guide](https://github.com/unbraind/pm-cli/blob/main/docs/MERGE_SAFETY.md). The
|
|
185
280
|
older blunt `pm history-repair --all` remains available as a lower-level primitive.
|
|
281
|
+
|
|
282
|
+
The existing quality owner, `pm-context-3s5f`, remains open. The native coverage
|
|
283
|
+
gate enforces 100% lines, branches and functions for six configured files; it
|
|
284
|
+
does not expose an independent statement counter. A separate c8 observation
|
|
285
|
+
includes all ten authored TypeScript/JavaScript executables. Neither measurement
|
|
286
|
+
covers the shell alert helper, so passing the release command does not establish
|
|
287
|
+
whole-source 100/100/100/100.
|
|
288
|
+
|
|
289
|
+
| Authored executable | Native gate | Separate c8 observation |
|
|
290
|
+
| --- | --- | --- |
|
|
291
|
+
| `index.ts` | Included | Included |
|
|
292
|
+
| `context-receipts.ts` | Included | Included |
|
|
293
|
+
| `context-usage.ts` | Included | Included |
|
|
294
|
+
| `scripts/coverage-gate.ts` | Included | Included |
|
|
295
|
+
| `scripts/docstring-gate.ts` | Included | Included |
|
|
296
|
+
| `scripts/verify-release-publish-attestation.ts` | Included | Included |
|
|
297
|
+
| `scripts/main-invocation.ts` | Outside configured scope | Included |
|
|
298
|
+
| `scripts/prepare-merge-driver.ts` | Outside configured scope | Included |
|
|
299
|
+
| `scripts/verify-release-changelog-date.ts` | Outside configured scope | Included |
|
|
300
|
+
| `.agents/pm/verify-release-yaml.mjs` | Outside configured scope | Included |
|
|
301
|
+
| `scripts/alert-on-release-failure.sh` | Unmeasured | Unmeasured |
|
|
302
|
+
|
|
303
|
+
Coverage reports are removed before configuration validation and on runner or
|
|
304
|
+
inventory failures, preventing an earlier report from surviving a failed gate.
|
|
305
|
+
The parsed-workflow verifier has disposable real-file acceptance and rejection
|
|
306
|
+
fixtures in `test/release-workflow-verifier.test.ts`; those tests never contact
|
|
307
|
+
GitHub or mutate release controls.
|
|
308
|
+
|
|
309
|
+
The documentation launcher checks the pm-ops analyzer's selected declaration
|
|
310
|
+
policy. It excludes anonymous callbacks and several internal declaration forms,
|
|
311
|
+
so its passing count does not certify documentation of every authored declaration.
|
|
312
|
+
The managed merge-driver launcher must remain byte-identical to the pinned
|
|
313
|
+
pm-ops template; its internal callback is part of the outstanding documentation
|
|
314
|
+
scope. The alert and workflow-verifier migration also requires coordinating the
|
|
315
|
+
existing `pm-context-qu0a` ownership before migrating its linked paths. No helper
|
|
316
|
+
has been marked removed while that dependency remains unresolved.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/** Physical retention ceilings: at most 200 receipts of 256 KiB each. */
|
|
2
|
+
export declare const RECEIPT_LIMITS: {
|
|
3
|
+
readonly count: 200;
|
|
4
|
+
readonly bytes: 262144;
|
|
5
|
+
};
|
|
6
|
+
/** Isolated, ignored tracker runtime directory used by this protocol. */
|
|
7
|
+
export declare const RECEIPTS_RELATIVE_PATH: string;
|
|
8
|
+
/** Explicit evidence categories; a touch or edit is a usage proxy, not a citation. */
|
|
9
|
+
export type UsageSignal = "citation" | "touch" | "edit";
|
|
10
|
+
/** One content-addressed unit that was present in the rendered bundle. */
|
|
11
|
+
export interface ContextFact {
|
|
12
|
+
id: string;
|
|
13
|
+
section_id: string;
|
|
14
|
+
item_ids: string[];
|
|
15
|
+
files: string[];
|
|
16
|
+
estimated_tokens: number;
|
|
17
|
+
}
|
|
18
|
+
/** Stable section identifier and its rendered name. */
|
|
19
|
+
export interface ContextSection {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
}
|
|
23
|
+
/** Public receipt returned alongside the context; no context text is persisted. */
|
|
24
|
+
export interface ContextReceipt {
|
|
25
|
+
protocol: "pm-context-usage/v1";
|
|
26
|
+
receipt_id: string;
|
|
27
|
+
session: string;
|
|
28
|
+
author: string;
|
|
29
|
+
served_at: string;
|
|
30
|
+
command: string;
|
|
31
|
+
sections: ContextSection[];
|
|
32
|
+
facts: ContextFact[];
|
|
33
|
+
protocol_tokens: number;
|
|
34
|
+
}
|
|
35
|
+
/** Item/file associations from the selected pack, intersected with rendered text. */
|
|
36
|
+
export interface ReceiptAssociations {
|
|
37
|
+
item_ids: string[];
|
|
38
|
+
files: Array<{
|
|
39
|
+
itemId: string;
|
|
40
|
+
value: string;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
/** Serving identity; an omitted session defaults to this bundle's receipt id. */
|
|
44
|
+
export interface ReceiptIdentity {
|
|
45
|
+
session?: string;
|
|
46
|
+
author: string;
|
|
47
|
+
command: string;
|
|
48
|
+
}
|
|
49
|
+
/** Usage evidence submitted by an agent or its post-mutation/edit hook. */
|
|
50
|
+
export interface ReceiptUsage {
|
|
51
|
+
receipt_id: string;
|
|
52
|
+
session?: string;
|
|
53
|
+
citations: string[];
|
|
54
|
+
touched_items: string[];
|
|
55
|
+
edited_files: string[];
|
|
56
|
+
}
|
|
57
|
+
/** Precision-style metrics over retained receipt/fact impressions. */
|
|
58
|
+
export interface ReceiptMetrics {
|
|
59
|
+
served_facts: number;
|
|
60
|
+
used_facts: number;
|
|
61
|
+
cited_facts: number;
|
|
62
|
+
touch_facts: number;
|
|
63
|
+
edit_facts: number;
|
|
64
|
+
precision: number | null;
|
|
65
|
+
estimated_served_tokens: number;
|
|
66
|
+
unused_context_tokens: number;
|
|
67
|
+
protocol_tokens: number;
|
|
68
|
+
}
|
|
69
|
+
/** Filtered runtime report; limits affect detail rows, never the aggregate. */
|
|
70
|
+
export interface ReceiptReport {
|
|
71
|
+
protocol: "pm-context-usage/v1";
|
|
72
|
+
retained_receipts: number;
|
|
73
|
+
malformed_receipts: number;
|
|
74
|
+
totals: ReceiptMetrics;
|
|
75
|
+
sessions: Array<ReceiptMetrics & {
|
|
76
|
+
session: string;
|
|
77
|
+
}>;
|
|
78
|
+
items: Array<ReceiptMetrics & {
|
|
79
|
+
id: string;
|
|
80
|
+
}>;
|
|
81
|
+
receipts: Array<ReceiptMetrics & {
|
|
82
|
+
receipt_id: string;
|
|
83
|
+
session: string;
|
|
84
|
+
unused_fact_ids: string[];
|
|
85
|
+
}>;
|
|
86
|
+
}
|
|
87
|
+
/** Narrow receipt reports by session, author, time, or one receipt identifier. */
|
|
88
|
+
export interface ReceiptReportOptions {
|
|
89
|
+
session?: string;
|
|
90
|
+
author?: string;
|
|
91
|
+
since?: string;
|
|
92
|
+
receipt_id?: string;
|
|
93
|
+
limit: number;
|
|
94
|
+
}
|
|
95
|
+
/** Normalize only repository-relative file evidence, rejecting URLs and traversal. */
|
|
96
|
+
export declare function normalizeReceiptFile(value: string): string;
|
|
97
|
+
/**
|
|
98
|
+
* Build facts from exactly the rendered content, annotate text or attach a JSON
|
|
99
|
+
* manifest, and persist its receipt. Fact hashes exclude clocks and receipt ids.
|
|
100
|
+
* Write failures propagate so callers disclose that measurement is unavailable.
|
|
101
|
+
*/
|
|
102
|
+
export declare function serveContextReceipt(pmRoot: string, output: string, format: "json" | "text", associations: ReceiptAssociations, identity: ReceiptIdentity, outputPath?: string): {
|
|
103
|
+
output: string;
|
|
104
|
+
receipt: ContextReceipt;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Record explicit, receipt-scoped usage. Unknown ids reject the entire update;
|
|
108
|
+
* repeat reports are idempotent. Item/file proxies match only facts in this receipt.
|
|
109
|
+
*/
|
|
110
|
+
export declare function recordReceiptUsage(pmRoot: string, usage: ReceiptUsage): void;
|
|
111
|
+
/** Read retained receipts, report skipped corruption, and aggregate before limiting detail. */
|
|
112
|
+
export declare function reportContextReceipts(pmRoot: string, options: ReceiptReportOptions): ReceiptReport;
|
|
113
|
+
/** Render the receipt denominator, usage proxies and unused estimated cost as a brief. */
|
|
114
|
+
export declare function renderReceiptReport(report: ReceiptReport): string;
|
|
115
|
+
//# sourceMappingURL=context-receipts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-receipts.d.ts","sourceRoot":"","sources":["../context-receipts.ts"],"names":[],"mappings":"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"}
|