pi-notes 0.1.0 → 0.1.1

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.
Files changed (3) hide show
  1. package/BENCHMARK.md +426 -0
  2. package/README.md +4 -0
  3. package/package.json +2 -1
package/BENCHMARK.md ADDED
@@ -0,0 +1,426 @@
1
+ # Exploratory Notes A/B benchmark
2
+
3
+ This document reports an exploratory long-horizon evaluation of `pi-notes`.
4
+ It is intentionally more conservative than a product benchmark: the run found
5
+ useful case evidence, but several harness and experimental-design defects mean
6
+ that it does **not** identify a causal productivity or quality effect.
7
+
8
+ ## Executive summary
9
+
10
+ - Harness: `harness-1789204569100-83132b78`
11
+ - Run window: 2026-09-12 through 2026-09-13
12
+ - Model: local `qwen38-main/qwen3.8-27b`, medium thinking
13
+ - Scenarios: 12, each run once without Notes and once with Notes
14
+ - Arms: 24 total; 23 exited normally and one Notes-present arm timed out
15
+ - Completed pairs: 11; one pair was censored by the timeout
16
+ - Primary conclusion: **hypothesis-generating evidence only**
17
+
18
+ Across the 11 pairs in which both arms completed, Notes-present was faster in
19
+ 7 and slower in 4. The mean paired duration difference was -8.81 minutes and
20
+ the median was -17.38 minutes. Those pooled figures combine two repositories,
21
+ different implementations, and conditionally comparable HostelHawk runs; they
22
+ must not be interpreted as an average Notes treatment effect.
23
+
24
+ A read-only audit of the retained changes judged Notes-present stronger in six
25
+ scenarios, Notes-absent stronger in two, mixed or inconclusive in three, and
26
+ the timed-out Notes-present scenario unfinished. This audit was not blinded,
27
+ did not execute an independent acceptance suite, and is separate from the
28
+ telemetry results.
29
+
30
+ The benchmark did establish several actionable facts:
31
+
32
+ 1. Notes was present and active only in the intended arm and was used in every
33
+ Notes-present scenario.
34
+ 2. Agents executed `checkpoint_notes` 55 times: 38 checkpoints committed and
35
+ 17 calls were rejected for invalid payloads.
36
+ 3. Fifty provider generations, 2.1% of Notes-present requests, contained only
37
+ checkpoint work.
38
+ 4. All 41 observed compactions succeeded. Notes-present did not show lower
39
+ repetition or post-compaction rediscovery in this single-run sample.
40
+ 5. The current report pairing, dirty-start detection, verification
41
+ classification, and cache telemetry all require fixes before a controlled
42
+ rerun.
43
+
44
+ ## Research question
45
+
46
+ The evaluation asked whether a compact, session-local durable handoff helps a
47
+ local model complete long engineering tasks more efficiently and reliably,
48
+ especially after compaction or a late change in requirements.
49
+
50
+ The intervention was the Notes tool surface:
51
+
52
+ - **Notes-absent:** `pi-notes` was omitted entirely. The arm did not use
53
+ `/notes off`, because that would leave the package and its policy in context.
54
+ - **Notes-present:** `pi-notes` was loaded and active, including
55
+ `checkpoint_notes` and its static policy.
56
+
57
+ Both arms otherwise used the same scenario prompt, model, thinking level,
58
+ compaction fingerprint, target commit, and local-only execution policy.
59
+
60
+ ## Benchmark design
61
+
62
+ Eight scenarios targeted the Records Dashboard baseline
63
+ `696115bf11aaa58dd5a69e417d968bf778815c16`. Four targeted the HostelHawk
64
+ baseline `615448114a0a951b349bbdf1a3b89cae2fabb05c`.
65
+
66
+ The harness created a detached worktree and fresh Pi session for each arm. It
67
+ ran all arms sequentially, always Notes-absent before Notes-present, with a
68
+ three-hour execution timeout. The recorder captured bounded, sanitized events
69
+ for requests, tools, verification-like commands, checkpoint activity,
70
+ compaction, and token usage. Raw session transcripts and private reasoning are
71
+ not part of this report.
72
+
73
+ The 12 scenarios exercised:
74
+
75
+ - durable CRUD workflows and exports;
76
+ - refresh, retry, lifecycle, and operator-control behavior;
77
+ - recorded-document and provenance workflows;
78
+ - architecture investigation and late requirement changes;
79
+ - failure recovery; and
80
+ - implementation followed by independent review and remediation.
81
+
82
+ ## Evidence tiers
83
+
84
+ The report keeps four kinds of evidence separate:
85
+
86
+ 1. **Run validity:** matching configuration, clean or conditional start,
87
+ complete shutdown, timeout, and recorder integrity.
88
+ 2. **Efficiency telemetry:** wall time, requests, tools, errors, and tokens.
89
+ 3. **Mechanism telemetry:** checkpointing, compaction, repetition, and
90
+ rediscovery.
91
+ 4. **Implementation evidence:** retained diff, requirement coverage, tests,
92
+ documentation, and final verification claims.
93
+
94
+ Only the first three are machine-derived. Implementation verdicts are
95
+ read-only artifact judgments and are not independent acceptance results.
96
+
97
+ ## Run disposition
98
+
99
+ | Cohort | Pairs | Disposition |
100
+ | --- | ---: | --- |
101
+ | Clean Records | 7 | Both arms completed with clean starts |
102
+ | Records provenance monitor | 1 | Notes-present timed out at three hours |
103
+ | HostelHawk | 4 | Both arms completed; automated reports excluded them for `dirty-start` |
104
+
105
+ Both source checkouts were recorded as `sourceDirty=true`, which means their
106
+ main working directories contained uncommitted files. Those files were not
107
+ copied into the detached evaluation worktrees. The separate per-run
108
+ `dirtyStart` field was false for every Records arm and true for every
109
+ HostelHawk arm.
110
+
111
+ The HostelHawk `dirtyStart` exclusion is likely a harness artifact. The harness
112
+ created an untracked `node_modules` symlink before the recorder ran
113
+ `git status`. HostelHawk ignores `node_modules/` directories but not the bare
114
+ symlink, so all eight HostelHawk arms received `dirtyStart=true`. Both arms of
115
+ every pair still used the same commit and task hash.
116
+
117
+ For that reason, HostelHawk is manually comparable as conditional evidence,
118
+ but it is reported separately from the clean Records cohort.
119
+
120
+ No arm emitted the recorder's `goal_progress({ status: "done" })` completion
121
+ signal. That signal is optional and observational; its absence is not evidence
122
+ that all 24 implementations failed.
123
+
124
+ ## Efficiency results
125
+
126
+ All deltas below are Notes-present minus Notes-absent. Negative time, request,
127
+ tool, and token deltas indicate less work in the Notes-present trajectory.
128
+
129
+ ### Clean Records cohort
130
+
131
+ | Scenario | Duration | Turns | Tools | Tool errors |
132
+ | --- | ---: | ---: | ---: | ---: |
133
+ | Saved due-diligence case file | -17.38 min | -3 | -15 | 0 |
134
+ | County-record refresh | -25.31 min | -83 | -60 | -11 |
135
+ | Recorded-document search | +3.21 min | -4 | -13 | -3 |
136
+ | Owner-request lifecycle | -28.29 min | -1 | +12 | +8 |
137
+ | Agent-task operations | -33.96 min | -89 | -65 | -2 |
138
+ | Screening comparison and retry | -7.04 min | +48 | +40 | +3 |
139
+ | Investigation bundle export | +24.18 min | +18 | +32 | +10 |
140
+ | **Mean paired delta** | **-12.09 min** | **-16.29** | **-9.86** | **+0.71** |
141
+ | **Median paired delta** | **-17.38 min** | **-3** | **-13** | **0** |
142
+
143
+ Notes-present was faster in five of seven clean completed pairs. Mean input
144
+ tokens fell by 1.752 million and mean output tokens by 13,224 per pair. These
145
+ means are sensitive to individual scenarios: agent-task operations alone
146
+ contributed an 11.407 million input-token reduction.
147
+
148
+ ### Timed-out Records pair
149
+
150
+ The Notes-present provenance-monitor arm reached the fixed three-hour limit
151
+ and was terminated by the harness with exit code 143. It ended without a
152
+ normal recorder shutdown or final report.
153
+
154
+ Before termination it had made 321 provider requests and 349 tool calls,
155
+ compared with 183 requests and 212 tools in Notes-absent. It consumed 32.327
156
+ million input tokens versus 18.313 million. This is a reliability outcome and
157
+ must not be dropped or converted into a completed duration delta.
158
+
159
+ ### Conditional HostelHawk cohort
160
+
161
+ | Scenario | Duration | Turns | Tools | Tool errors |
162
+ | --- | ---: | ---: | ---: | ---: |
163
+ | Multi-phase architecture investigation | +9.87 min | +11 | +12 | +3 |
164
+ | Late requirement change | -89.38 min | -75 | -89 | +2 |
165
+ | Failure-recovery hardening | -33.43 min | -90 | -85 | -2 |
166
+ | Implementation review and remediation | +100.63 min | +119 | +130 | +31 |
167
+ | **Mean paired delta** | **-3.08 min** | **-8.75** | **-8.00** | **+8.50** |
168
+ | **Median paired delta** | **-11.78 min** | **-32** | **-36.50** | **+2.50** |
169
+
170
+ This cohort is dominated by opposing outliers. Removing the implementation
171
+ review changes the mean duration delta from -3.08 to -37.65 minutes. The late
172
+ requirement run was much faster with Notes but appears to have traded some
173
+ original-scope completeness for deeper compatibility work. The implementation
174
+ review delivered broader remediation with Notes but at 3.36 times the runtime.
175
+
176
+ ### Overall usage
177
+
178
+ | Metric | Notes-absent | Notes-present |
179
+ | --- | ---: | ---: |
180
+ | Provider requests | 2,402 | 2,391 |
181
+ | Tool calls | 2,802 | 2,838 |
182
+ | Tool errors | 88 | 140 |
183
+ | Input tokens | 231,331,864 | 229,848,996 |
184
+ | Output tokens | 1,895,579 | 1,839,948 |
185
+ | Reported total tokens | 233,227,443 | 231,688,944 |
186
+
187
+ The combined run reported 464,916,387 logical tokens. Output already includes
188
+ reasoning tokens and must not be double-counted.
189
+
190
+ Cache-read and cache-write fields were zero in every arm because the active
191
+ local server did not expose prompt-token detail telemetry. Zero therefore
192
+ means **unavailable telemetry**, not demonstrated absence of prefix caching.
193
+ Exact cached-versus-uncached usage and equivalent billing cannot be recovered
194
+ for this run.
195
+
196
+ ## Notes mechanism results
197
+
198
+ ### Checkpoint execution
199
+
200
+ Notes-absent made no checkpoint calls. Every Notes-present scenario used the
201
+ tool.
202
+
203
+ | Scenario | Executions | Committed | Invalid |
204
+ | --- | ---: | ---: | ---: |
205
+ | Saved due-diligence case file | 5 | 3 | 2 |
206
+ | County-record refresh | 4 | 4 | 0 |
207
+ | Recorded-document search | 4 | 3 | 1 |
208
+ | Owner-request lifecycle | 4 | 3 | 1 |
209
+ | Agent-task operations | 4 | 3 | 1 |
210
+ | Screening comparison and retry | 6 | 6 | 0 |
211
+ | Provenance drift monitor | 13 | 8 | 5 |
212
+ | Investigation bundle export | 2 | 1 | 1 |
213
+ | Multi-phase architecture investigation | 3 | 3 | 0 |
214
+ | Late requirement change | 2 | 2 | 0 |
215
+ | Failure-recovery hardening | 6 | 1 | 5 |
216
+ | Implementation review and remediation | 2 | 1 | 1 |
217
+ | **Total** | **55** | **38** | **17** |
218
+
219
+ The 17 rejected calls were malformed payloads, usually a list field supplied
220
+ as a string or a required field omitted. This 30.9% invalid-call rate is a
221
+ tool-usability defect worth addressing before measuring checkpoint benefit.
222
+
223
+ The evaluator's `checkpoint_attempt` hook saw only the 38 schema-valid calls.
224
+ Calls rejected by generic tool validation never reached that hook. Generated
225
+ reports therefore showed zero checkpoint failures even though 17 executions
226
+ failed. Future telemetry must count tool execution and validation rejection,
227
+ not only accepted checkpoint attempts.
228
+
229
+ Fifty Notes-present generations contained only checkpoint work, or 2.09 per
230
+ 100 provider requests. There were no ambient `notes_reminder` events in either
231
+ arm, so the observed checkpoint overhead was not reminder-driven.
232
+
233
+ ### Compaction and continuity
234
+
235
+ | Metric | Notes-absent | Notes-present |
236
+ | --- | ---: | ---: |
237
+ | Compaction attempts | 21 | 20 |
238
+ | Successful compactions | 21 | 20 |
239
+ | Failed compactions | 0 | 0 |
240
+ | Mean recorded recovery | 69.49 s | 62.82 s |
241
+ | Repeated tool calls | 44 (1.83/100 requests) | 69 (2.89/100) |
242
+ | Post-compaction rediscoveries | 40 (1.67/100) | 49 (2.05/100) |
243
+
244
+ The clean Records pairs averaged exactly the same number of compactions in
245
+ both arms. Notes-present had slightly faster recorded recovery overall, but
246
+ more repetition and rediscovery. Scenario trajectories and compaction timing
247
+ differed, so these observations do not establish mediation or a Notes effect.
248
+
249
+ The implementation-review Notes-present arm had one threshold compaction. It
250
+ succeeded and recorded recovery after 43 seconds. A preliminary audit that
251
+ listed this as a failure was checked against the event stream and corrected.
252
+
253
+ ## Implementation evidence
254
+
255
+ The following verdicts come from a read-only comparison of prompts, retained
256
+ worktree changes, and recorded verification evidence. They are useful case
257
+ studies, but they were not blinded and no independent evaluator reran the
258
+ acceptance criteria.
259
+
260
+ | Scenario | Artifact verdict | Evidence summary |
261
+ | --- | --- | --- |
262
+ | Saved case file | Notes-absent stronger | Clearer deterministic export and richer case-file contract; Notes-present had broader UI but less visible findings/export coverage. |
263
+ | County refresh | Notes-present stronger | More focused worker/UI coverage with durable lifecycle and compare-and-swap semantics; login redirect still dropped the original target. |
264
+ | Recorded-document search | Mixed | Notes-present added useful revision and polling behavior, but lacked a final completion report and UI E2E remained auth-blocked. |
265
+ | Owner-request lifecycle | Notes-present stronger | Added terminal send-failure handling, bounded budgets, cancellation, key scoping, UI, and broader integration coverage. |
266
+ | Agent-task operations | Notes-present stronger | Stronger operator authorization, privacy projection, audit trail, proxy gating, pagination, and UI; live browser authorization remained unverified. |
267
+ | Screening comparison/retry | Mixed, slightly favoring Notes-present | Added current-state policy checks and comparison UI, but both arms implemented different contracts and Notes-present E2E self-skipped. |
268
+ | Provenance drift monitor | Notes-absent stronger | Notes-present produced a larger unfinished change and timed out without final verification. |
269
+ | Investigation bundle export | Notes-present stronger | Coherent durable artifact/export path and explicit route-context remediation; complete integration evidence was limited by emulator contention. |
270
+ | Multi-phase architecture | Notes-absent stronger | Both were partial; Notes-absent retained broader database, scraper, cache, and integration coverage. |
271
+ | Late requirement change | Mixed | Notes-present targeted legacy compatibility well but had less visible evidence for the original full CRUD/UI scope. |
272
+ | Failure recovery | Notes-present stronger | Smaller, explicit failed-alert-delivery contract with focused transition and SQL tests; no live database run was available. |
273
+ | Implementation review | Notes-present stronger at disproportionate cost | Added quota enforcement, row locking, conflict behavior, concurrency evidence, and remediation, but incurred extensive retry and diagnostic churn. |
274
+
275
+ Conservative summary:
276
+
277
+ - Notes-present stronger: 6 scenarios
278
+ - Notes-absent stronger: 2 scenarios
279
+ - Mixed or inconclusive: 3 scenarios
280
+ - Notes-present unfinished due to timeout: 1 scenario
281
+
282
+ Speed and artifact quality did not move together. Of the six scenarios judged
283
+ stronger with Notes, four were faster and two were slower. One of the two
284
+ Notes-weaker outcomes was nevertheless faster. This reinforces that telemetry
285
+ cannot substitute for an independent quality evaluator.
286
+
287
+ ## Implementation-review outlier
288
+
289
+ The largest regression was implementation review and remediation:
290
+
291
+ - duration: +100.63 minutes;
292
+ - turns: +119;
293
+ - tools: +130;
294
+ - tool errors: +31;
295
+ - input tokens: +12.875 million;
296
+ - repeated tool calls: +22; and
297
+ - post-compaction rediscoveries: +9.
298
+
299
+ The extra work was not only empty churn. The Notes-present result added a
300
+ per-account favorites quota, transactional row locking, conflict behavior,
301
+ broader server/component tests, and an explicit audit that found and remediated
302
+ two concrete gaps.
303
+
304
+ The quality gain was not proportional to the cost. The trajectory included
305
+ three attempted subagent launches—two blocked before launch and one started in
306
+ the background—followed by three premature result checks that all found the
307
+ agent still running. The telemetry does not isolate a defensible subagent wait
308
+ cost. It also included 13 failed edit operations and repeated exact-pattern
309
+ repair scripts. Nineteen of the 22 events labeled `test:error` were Python
310
+ `pattern not found` assertions from edit/check scripts. The other three were
311
+ inspection or chained shell commands that were also classified lexically;
312
+ none establishes that a product test suite ran and failed. One invalid
313
+ checkpoint call and one successful compaction added smaller overhead.
314
+
315
+ The supported interpretation is that Notes-present followed a broader,
316
+ more exhaustive remediation path and then executed it inefficiently. The
317
+ single trajectory cannot determine whether Notes caused either the additional
318
+ quality work or the churn.
319
+
320
+ ## Measurement defects and limitations
321
+
322
+ ### Confirmed harness defects
323
+
324
+ 1. **Cross-worktree repository identity broke pairing.** The experiment key
325
+ hashes the resolved worktree root. Each arm therefore received a different
326
+ experiment key despite matching commits. Scenario reporting selected the
327
+ first arm's key and silently omitted the second, producing zero generated
328
+ pairs. This report reconstructed pairs manually by scenario and arm.
329
+ 2. **Dirty-start detection included setup artifacts.** The recorder captured
330
+ Git status after the harness created dependency and environment symlinks.
331
+ This excluded all HostelHawk arms for an untracked dependency symlink.
332
+ 3. **Checkpoint failures were undercounted.** Schema-invalid calls failed
333
+ before `checkpoint_attempt`, so the report missed 17 failed executions.
334
+ 4. **Verification classification was lexical.** Commands containing words
335
+ such as `test`, `check`, or `build` were counted as verification even when
336
+ they were search or edit scripts. A non-error tool result was generally
337
+ treated as success without validating a prescribed gate.
338
+ 5. **General tool errors were omitted from pair reports.** Live activity had
339
+ them, but `ReportRow` and `PairDelta` did not.
340
+ 6. **Missing cache telemetry was coerced to zero.** The report had no
341
+ availability indicator and could not distinguish missing data from a real
342
+ zero.
343
+
344
+ ### Experimental limitations
345
+
346
+ - Only one stochastic replicate was run per arm and scenario.
347
+ - Notes-absent always ran first, confounding Notes with cache warming, server
348
+ state, filesystem state, and time.
349
+ - The two arms could choose materially different implementations.
350
+ - Shared dependency and environment symlinks weakened isolation.
351
+ - One Notes-present arm timed out and must be treated as a failure or censored
352
+ observation, not silently excluded.
353
+ - The agent wrote its own tests and reported its own completion. There was no
354
+ predeclared, independent correctness oracle.
355
+ - Runtime identity omitted Pi version, full extension/tool inventory,
356
+ model-server build, sampling settings, dependency snapshot, and external
357
+ service state.
358
+ - Harness wall time and evaluator session time began at different points.
359
+
360
+ These limitations prevent significance tests, confidence intervals, pooled
361
+ event-level regressions, or a causal estimate from this run. Turns and tool
362
+ events are not independent samples. Trimming the timeout or the two large
363
+ HostelHawk outliers would be post hoc and misleading.
364
+
365
+ ## Interpretation
366
+
367
+ Publication-safe conclusion:
368
+
369
+ > Across 12 heterogeneous long-horizon engineering scenarios, the harness
370
+ > generated case evidence that agents actively used durable Notes and, in
371
+ > several cases, produced stronger retained implementations with fewer turns
372
+ > or less time. Other cases showed substantial checkpoint validation failures,
373
+ > increased repetition, a timeout, and one severe efficiency regression.
374
+ > Because assignment was sequential, replication was single-run,
375
+ > implementations differed, and telemetry/pairing defects affected the
376
+ > record, the run does not identify a causal productivity, reliability, or
377
+ > quality effect of `pi-notes`.
378
+
379
+ The practical value of this run is diagnostic. It identified scenarios worth
380
+ repeating, exposed tool-schema and harness defects, and produced concrete
381
+ hypotheses:
382
+
383
+ - concise checkpoints may help some agents preserve task structure and reduce
384
+ search or implementation work;
385
+ - checkpoint-only turns and malformed payloads can erase those gains;
386
+ - Notes may encourage broader review behavior in some trajectories; and
387
+ - continuity benefit should be evaluated with objective post-run quality, not
388
+ inferred from compaction or self-reported verification.
389
+
390
+ ## Required rerun
391
+
392
+ Before making a product claim:
393
+
394
+ 1. Use a canonical repository identity and explicit
395
+ `scenario × replicate × pair` identifiers.
396
+ 2. Capture baseline cleanliness before injecting setup artifacts, and record
397
+ setup-generated changes separately.
398
+ 3. Randomize or counterbalance arm order within each scenario and replicate.
399
+ 4. Run at least five paired replicates per scenario; use more for timeout-prone
400
+ or high-variance tasks.
401
+ 5. Pin and hash Pi, extension revisions, tool surface, system prompt,
402
+ dependencies, model-server build, model checkpoint, sampling parameters,
403
+ context settings, and external-service state.
404
+ 6. Use isolated immutable dependencies, environment files, databases, and
405
+ server/cache state per arm.
406
+ 7. Predeclare timeouts, exclusions, primary outcomes, and scenario-specific
407
+ acceptance tests. Count timeouts as outcomes.
408
+ 8. Run an independent evaluator against each retained diff in a fresh
409
+ worktree. Use blinded reviewers and a fixed quality rubric.
410
+ 9. Record structured command identity, exit code, signal, timeout, and
411
+ framework result instead of lexical verification classification.
412
+ 10. Record cache-telemetry availability, cached and uncached input, reasoning
413
+ output, retry attempts, adaptive reasoning changes, and tool-error classes.
414
+ 11. Count malformed checkpoint executions and test a simpler schema or better
415
+ corrective guidance before measuring checkpoint reliability.
416
+ 12. Report paired per-scenario effects, ranges, missingness, and repository
417
+ strata. Do not pool events as independent observations.
418
+
419
+ ## Artifact policy
420
+
421
+ The durable report records the harness ID, baseline commits, scenario names,
422
+ and derived measurements. Generated manifests, event streams, worktree diffs,
423
+ and session logs remain local evaluation artifacts. Machine-local absolute
424
+ paths and raw transcripts are deliberately omitted because they are not
425
+ portable and may contain prompts, tool arguments, local paths, or private
426
+ reasoning.
package/README.md CHANGED
@@ -63,6 +63,10 @@ It does not call `pi.setActiveTools()`. If another mode hides `checkpoint_notes`
63
63
 
64
64
  Lifecycle tests cover fresh identities, branch restoration, resume rematerialization, deferred read/research freshness, read-only threshold and streak reset, delayed checkpoint pressure, compaction pressure, inherited-resume integrity, and external-mutation gating.
65
65
 
66
+ ## Evaluation
67
+
68
+ See [BENCHMARK.md](./BENCHMARK.md) for the exploratory long-horizon Notes A/B evaluation, its implementation-quality audit, measurement limitations, and controlled-rerun requirements. The current report is diagnostic case evidence, not a causal product benchmark.
69
+
66
70
  ## Optional integrations
67
71
 
68
72
  The core has no dependency on goal, plan mode, orchestrator, subagents, memory, or compaction extensions.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-notes",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Session-local durable execution checkpoints for Pi",
5
5
  "type": "module",
6
6
  "repository": {
@@ -24,6 +24,7 @@
24
24
  "entry.ts",
25
25
  "index.ts",
26
26
  "README.md",
27
+ "BENCHMARK.md",
27
28
  "LICENSE"
28
29
  ],
29
30
  "pi": {