pi-smart-compact 10.0.1 → 10.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.
- package/ARCHITECTURE.md +71 -28
- package/CHANGELOG.md +124 -0
- package/README.md +12 -7
- package/assets/skills/context-management/SKILL.md +5 -5
- package/dist/app/background-preparation.d.ts +13 -0
- package/dist/app/background-preparation.d.ts.map +1 -1
- package/dist/app/compaction-commit-store.d.ts +1 -1
- package/dist/app/compaction-commit-store.d.ts.map +1 -1
- package/dist/app/context-operations.d.ts +8 -2
- package/dist/app/context-operations.d.ts.map +1 -1
- package/dist/app/effective-state.d.ts.map +1 -1
- package/dist/app/hindsight-memory.d.ts.map +1 -1
- package/dist/app/lazy-tools.d.ts.map +1 -1
- package/dist/app/pending-slot.d.ts +2 -2
- package/dist/app/pending-slot.d.ts.map +1 -1
- package/dist/app/register-context-tools.d.ts.map +1 -1
- package/dist/app/register-navigation.d.ts +3 -1
- package/dist/app/register-navigation.d.ts.map +1 -1
- package/dist/app/register-smart-compact-command.d.ts.map +1 -1
- package/dist/app/register-smart-compact-tool.d.ts.map +1 -1
- package/dist/app/register-smart-context-tool.d.ts +1 -0
- package/dist/app/register-smart-context-tool.d.ts.map +1 -1
- package/dist/app/settled-auto-trigger.d.ts.map +1 -1
- package/dist/app/stage-auth.d.ts.map +1 -1
- package/dist/app/steps/synthesize.d.ts.map +1 -1
- package/dist/constants.d.ts +5 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1424 -357
- package/dist/phases/explore.d.ts.map +1 -1
- package/dist/phases/synthesize.d.ts +1 -1
- package/dist/phases/synthesize.d.ts.map +1 -1
- package/dist/phases/verify.d.ts +13 -5
- package/dist/phases/verify.d.ts.map +1 -1
- package/dist/rtk.js +8 -7
- package/dist/types.d.ts +5 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/profiles.d.ts +1 -1
- package/dist/ui/profiles.d.ts.map +1 -1
- package/dist/ui/settings-overlay.d.ts.map +1 -1
- package/dist/ui/tool-rows.d.ts +76 -0
- package/dist/ui/tool-rows.d.ts.map +1 -0
- package/dist/utils/cache.d.ts.map +1 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/extraction.d.ts +22 -0
- package/dist/utils/extraction.d.ts.map +1 -1
- package/dist/utils/state.d.ts.map +1 -1
- package/docs/README.md +8 -13
- package/docs/RELEASE.md +4 -3
- package/docs/configuration.md +101 -38
- package/docs/evaluation.md +29 -24
- package/docs/guide.md +58 -32
- package/package.json +1 -1
package/ARCHITECTURE.md
CHANGED
|
@@ -53,9 +53,7 @@ flowchart LR
|
|
|
53
53
|
Quality means retained constraints, trustworthy failure evidence and low
|
|
54
54
|
retrieval churn, not merely fewer tokens. There are no recurring
|
|
55
55
|
model-visible status prompts, no automatic error deletion, and no destructive
|
|
56
|
-
file rollback.
|
|
57
|
-
(repository only, historical) records the original experiments and acceptance
|
|
58
|
-
criteria.
|
|
56
|
+
file rollback.
|
|
59
57
|
|
|
60
58
|
## Design ideas
|
|
61
59
|
|
|
@@ -112,10 +110,10 @@ tool exposure, policy and navigation state;
|
|
|
112
110
|
(see [recoverable trimming](#recoverable-trimming)); the RTK companion uses
|
|
113
111
|
`tool_call`.
|
|
114
112
|
|
|
115
|
-
Tool exposure is owned by `app/lazy-tools.ts`.
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
`
|
|
113
|
+
Tool exposure is owned by `app/lazy-tools.ts`. The default `eager` mode keeps
|
|
114
|
+
permitted declarations stable from session start. Optional `lazy` exposes
|
|
115
|
+
`smart_tools` first; loaded groups reset at `session_start` and `session_tree`,
|
|
116
|
+
not `session_compact` (native kept thinking may still bind system/tools).
|
|
119
117
|
`off` removes all owned tools while the human UI keeps working. Group
|
|
120
118
|
permissions (`agentToolAccess`, memory backend, `contextNavigationEnabled`)
|
|
121
119
|
apply in every mode. The exposure removes only its own tools, restores only
|
|
@@ -144,7 +142,7 @@ settings.
|
|
|
144
142
|
`ui/profiles.ts` derives presets from exact persisted flags. Behavior presets
|
|
145
143
|
are **Manual only**, **Manual + agent**, **Cleanup only** and **Fully
|
|
146
144
|
automatic**; the built-in defaults, which match none of them, are labeled
|
|
147
|
-
**
|
|
145
|
+
**Pressure-first (default)**. Summary formats are **Verified text**, **Text +
|
|
148
146
|
images** and **Provider (experimental)**; provider output needs a second
|
|
149
147
|
confirming Enter, and capacity-ineligible models cannot be selected. Fully
|
|
150
148
|
automatic selects the `settled` strategy. Presets atomically patch existing
|
|
@@ -342,6 +340,15 @@ anchor footer and the Anthropic anchor cache marker (`app/anchor-cache.ts`).
|
|
|
342
340
|
type `smart-context-anchor`, plus `smart_navigation` tool results) and legacy
|
|
343
341
|
`context` tool anchors; recall scans other sessions' JSONL read-only.
|
|
344
342
|
|
|
343
|
+
Agent anchors require the shared early pressure gate by default. An anchor
|
|
344
|
+
requests one safe consolidation through `smart_context`'s existing queue;
|
|
345
|
+
only its new region can be trimmed before first replay. Previous anchor and
|
|
346
|
+
checkpoint prefixes stay protected. Append-only anchors do not invalidate a
|
|
347
|
+
prepared summary; ready/running compaction takes priority over agent cleanup.
|
|
348
|
+
Human commands bypass pressure gates, not safety checks. Selective trim/rewind
|
|
349
|
+
fail closed if they would change history before retained signed Anthropic
|
|
350
|
+
thinking. Byte-identical thinking alone does not preserve its prefix binding.
|
|
351
|
+
|
|
345
352
|
A human anchor is a `sendMessage` custom message followed by a native label on
|
|
346
353
|
that entry; a human pivot navigates to the label so Pi's `custom_message`
|
|
347
354
|
handling cannot drop the anchor text. An agent pivot is queued by the tool,
|
|
@@ -372,6 +379,12 @@ breadcrumbs, and a "Changes Since Last Compaction" delta. Snapshots are scoped
|
|
|
372
379
|
to project, session and branch head; see
|
|
373
380
|
[state, caching and persistence](#state-caching-and-persistence).
|
|
374
381
|
|
|
382
|
+
Same-question decisions keep the latest non-empty answered record, including
|
|
383
|
+
its provenance; an unanswered re-ask does not erase the prior answer. Fallback,
|
|
384
|
+
verification and state merging share this selection rule. Automatic constraint
|
|
385
|
+
retirement uses bounded recognition of explicit releases, not general
|
|
386
|
+
natural-language entailment: question, report and denial forms are not grants.
|
|
387
|
+
|
|
375
388
|
## 3. Verified compaction
|
|
376
389
|
|
|
377
390
|
### Automatic strategies
|
|
@@ -380,33 +393,45 @@ to project, session and branch head; see
|
|
|
380
393
|
`background` runs and the native hook does not replace Pi's summaries. Pi's own
|
|
381
394
|
compactor is not affected. Hygiene can still run.
|
|
382
395
|
|
|
383
|
-
- **`native-hook`**
|
|
396
|
+
- **`native-hook`** is passive. It participates only when Pi starts
|
|
384
397
|
a compaction; its percentage setting is a minimum replacement gate, not a
|
|
385
398
|
scheduler, and Pi auto-compaction must itself be enabled for host-driven
|
|
386
399
|
runs.
|
|
387
|
-
- **`settled`** applies finite token/percentage, queue, in-flight and
|
|
400
|
+
- **`settled`** (default, 80% apply gate) applies finite token/percentage, queue, in-flight and
|
|
388
401
|
per-session cooldown guards at idle `agent_settled`, then asks Pi for a
|
|
389
|
-
normal host compaction.
|
|
402
|
+
normal host compaction. Every finished attempt, including callback errors,
|
|
403
|
+
synchronous throws and watchdog expiry, starts the cooldown; late callbacks
|
|
404
|
+
cannot reset it or change a newer request's state. Pi re-enters `session_before_compact`, which reuses an
|
|
390
405
|
already tool-staged summary or runs EESV exactly once under the host's signal
|
|
391
406
|
and timeout. `session_compact` stays the only durable commit authority;
|
|
392
407
|
`session_compact_failed` discards the candidate. This keeps proactive
|
|
393
408
|
triggering out of the pending/commit state machine and preserves
|
|
394
|
-
branch-provenance checks.
|
|
395
|
-
|
|
396
|
-
|
|
409
|
+
branch-provenance checks. Watchdog expiry is not a host cancellation: a busy
|
|
410
|
+
host is reported as pending without manual-retry advice, and late completion
|
|
411
|
+
remains valid.
|
|
412
|
+
- **`background`** (opt-in, `app/background-preparation.ts`) snapshots branch,
|
|
413
|
+
model, session, system prompt and usage before asynchronous work. Effective
|
|
414
|
+
tool definitions are fingerprinted and checked again before use. `prepareContextPercent` sets an
|
|
397
415
|
independent early gate with the existing minimum token floor; null preserves
|
|
398
416
|
`applyTokens - clamp(floor(applyTokens * 0.125), 8192, 32000)`. An explicit
|
|
399
417
|
prepare percentage must be below the effective `minContextPercent` apply gate.
|
|
400
418
|
Only pipeline admission is lowered; targets, yield and apply-time safety are
|
|
401
419
|
unchanged. A private pending slot isolates cancellation from foreground
|
|
402
|
-
staging. One task, a ten-minute attempt cooldown and
|
|
403
|
-
bound speculation. Model/config changes, branch navigation, new compaction or
|
|
420
|
+
staging. One task, a ten-minute attempt cooldown and configured `pendingTtlMs`
|
|
421
|
+
(default five minutes) bound speculation. Model/system/tool/config changes, branch navigation, new compaction or
|
|
404
422
|
context edits, switch/shutdown and native compaction invalidate unfinished
|
|
405
423
|
work, and late completion cannot publish after cancellation. Before reuse, a
|
|
406
424
|
content fingerprint proves the captured prefix is unchanged; appended tail
|
|
407
425
|
growth must still satisfy the verified target, minimum yield and response
|
|
408
426
|
reserve.
|
|
409
427
|
|
|
428
|
+
`contextPressure` supplies execution, status and TUI with the same policy window
|
|
429
|
+
and early/apply gates (288k/320k for a 400k window at default 80%). Roomy history
|
|
430
|
+
stays unchanged by default; `contextPressureOnly: false` opts into legacy
|
|
431
|
+
break-even/cold-cache hygiene. Metadata checkpoints and first-delivery offload
|
|
432
|
+
are independent of old-prefix pruning. Cleanup commits before preparation can
|
|
433
|
+
snapshot it, and later compaction observes Pi's updated projected usage.
|
|
434
|
+
|
|
410
435
|
Preparation never waits inside `turn_end`. Proactive application waits for
|
|
411
436
|
idle `agent_settled`; an ongoing tool loop relies on Pi's native maintenance
|
|
412
437
|
boundary. No boundary draft bypasses the `session_compact` commit protocol. The
|
|
@@ -554,7 +579,12 @@ Deterministically pulls modified/read/deleted files, tool and bash-like errors,
|
|
|
554
579
|
retry/resolution signals, explicit and implicit decisions, constraints and
|
|
555
580
|
preferences, heuristic topic segments, timeline events, the main goal and open
|
|
556
581
|
loops across the whole compacted prefix. This is the ground truth that
|
|
557
|
-
synthesis and verification trust.
|
|
582
|
+
synthesis and verification trust. Dialog answers follow tool-call IDs rather
|
|
583
|
+
than a fixed next-message window. Fresh extraction and cached reconciliation
|
|
584
|
+
share retry-result classification and inspect later/sibling retries; a false
|
|
585
|
+
`isError` flag cannot turn an error-bearing command result into success.
|
|
586
|
+
Self-notice filtering distinguishes a standalone user rule from that phrase
|
|
587
|
+
inside an attributed Smart Compact warning.
|
|
558
588
|
|
|
559
589
|
### Explore
|
|
560
590
|
|
|
@@ -566,7 +596,8 @@ error chains. Tool support is probed once and cached per run; without function
|
|
|
566
596
|
calling the system falls back to a direct structured analysis. The tool
|
|
567
597
|
conversation is capped at three rounds, each response is capped where the
|
|
568
598
|
provider supports output limits, and the shared prefix uses short-lived prompt
|
|
569
|
-
caching.
|
|
599
|
+
caching. Every exploration path leaves two calls for batch synthesis and final
|
|
600
|
+
assembly; with two or fewer calls remaining it uses deterministic boundaries.
|
|
570
601
|
|
|
571
602
|
### Synthesize
|
|
572
603
|
|
|
@@ -583,7 +614,12 @@ caching.
|
|
|
583
614
|
Session-aware prompting, decision propagation across later batches,
|
|
584
615
|
mode-specific thresholds and output limits, provider-aware wave concurrency,
|
|
585
616
|
aggregate prompt-token reservation and deterministic fallback assembly when any
|
|
586
|
-
budget or LLM call fails.
|
|
617
|
+
budget or LLM call fails. Batch retries and queued workers recheck remaining
|
|
618
|
+
calls before dispatch so they cannot spend the final assembly call.
|
|
619
|
+
Single-pass and final assembly reject known nonterminal stop reasons and
|
|
620
|
+
unclosed Markdown fences before the synthesis cache can retain the result.
|
|
621
|
+
Their existing error paths use deterministic fallback, without extra retries
|
|
622
|
+
or enlarged budgets.
|
|
587
623
|
|
|
588
624
|
### Verify
|
|
589
625
|
|
|
@@ -595,6 +631,13 @@ fabricated paths, done/unresolved inconsistencies, explicit decisions, open
|
|
|
595
631
|
loops and unsupported high-risk outcome claims. Claims such as "tests passed"
|
|
596
632
|
need matching source prose or a successful related tool result.
|
|
597
633
|
|
|
634
|
+
Explicit decisions are question–answer units, not independent bags of words:
|
|
635
|
+
short/symbolic/numeric answers retain their identity, and one question cannot
|
|
636
|
+
borrow another question's answer. Answer polarity is separate from the
|
|
637
|
+
question's wording. A conflicting answer is an inconsistency that cannot be
|
|
638
|
+
repaired by simply appending the expected answer. These deterministic checks
|
|
639
|
+
remain bounded heuristics, not a proof of arbitrary prose equivalence.
|
|
640
|
+
|
|
598
641
|
Repair order is intentional: (1) deterministic patch first (free, idempotent);
|
|
599
642
|
(2) one LLM patch only in `thorough` mode if still insufficient; (3) replace
|
|
600
643
|
lower-scoring output with a deterministic quality floor built only from
|
|
@@ -722,9 +765,7 @@ Anthropic blocks or opaque OpenAI items, so this extension does both:
|
|
|
722
765
|
on-demand compaction.
|
|
723
766
|
|
|
724
767
|
`test/native-compaction-compat.test.ts` pins what stock adapters drop by
|
|
725
|
-
themselves.
|
|
726
|
-
[2026-09-24 research report](https://github.com/alpertarhan/pi-smart-compact/blob/main/docs/reports/hindsight-native-compaction-research-2026-09-24.md)
|
|
727
|
-
(repository only, historical).
|
|
768
|
+
themselves.
|
|
728
769
|
|
|
729
770
|
### Experimental visual evidence
|
|
730
771
|
|
|
@@ -759,9 +800,8 @@ summary. Changing model/provider/API or using a text-only model withholds
|
|
|
759
800
|
images; stricter scrubbing also withholds old pixels that cannot be
|
|
760
801
|
retroactively redacted. Only the latest compaction's archive is eligible, and
|
|
761
802
|
native fallback can discard it. Metrics record only visual token estimates and
|
|
762
|
-
frame counts.
|
|
763
|
-
|
|
764
|
-
cross-model accuracy.
|
|
803
|
+
frame counts. Historical visual-pilot results are dated single-model synthetic
|
|
804
|
+
samples, not production or cross-model accuracy evidence.
|
|
765
805
|
|
|
766
806
|
## 4. Optional cross-session memory
|
|
767
807
|
|
|
@@ -879,7 +919,7 @@ derived-only reset from confirmed all-project graph deletion; neither changes
|
|
|
879
919
|
Mnemopi/Hindsight, compaction state or backups. Closing a local ref only marks
|
|
880
920
|
its node resolved.
|
|
881
921
|
|
|
882
|
-
**Retention limits:** pending in-memory compaction 5 min · exploration
|
|
922
|
+
**Retention limits:** pending in-memory compaction `pendingTtlMs` (default 5 min) · exploration
|
|
883
923
|
tool-support cache 1 h / 128 routes · token calibration 128 routes · extraction
|
|
884
924
|
cache 1 h · compaction state 7 d / 64 snapshots · context graph 2,000
|
|
885
925
|
active derived fact nodes, 2,000 tombstones (resolved facts and closed manual
|
|
@@ -903,7 +943,7 @@ loop). `consume()` returns a discriminated result:
|
|
|
903
943
|
| --- | --- |
|
|
904
944
|
| `ok` | fresh payload for this session |
|
|
905
945
|
| `empty` | nothing staged |
|
|
906
|
-
| `expired` | older than the
|
|
946
|
+
| `expired` | older than the configured `pendingTtlMs` |
|
|
907
947
|
| `mismatch` | staged by a different session, project, or non-ancestor branch head |
|
|
908
948
|
|
|
909
949
|
Session identity comes from
|
|
@@ -922,7 +962,10 @@ deadline through a shared [`ExternalCancellation`](https://github.com/alpertarha
|
|
|
922
962
|
handle. Either source calls `abort()`, and every side-effect gate checks the
|
|
923
963
|
shared state before writing or applying. The caller waits for a safe pipeline
|
|
924
964
|
unwind; no `Promise.race` hard return can leave work running past the hook
|
|
925
|
-
lifecycle.
|
|
965
|
+
lifecycle. Lazy auth preflight also observes this signal, so a non-cooperative
|
|
966
|
+
registry cannot pin the cancelled run's lock. The underlying registry operation
|
|
967
|
+
may finish later; its outcome is consumed without caching credentials into the
|
|
968
|
+
cancelled stage or allowing staging/apply to resume.
|
|
926
969
|
|
|
927
970
|
### Filesystem and locks
|
|
928
971
|
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,130 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [10.1.1] - 2026-09-30
|
|
6
|
+
|
|
7
|
+
### Release approval
|
|
8
|
+
|
|
9
|
+
- Patch release approved by the release owner after the deterministic gates
|
|
10
|
+
on the exact candidate. No version-specific applied-canary cohort or live
|
|
11
|
+
provider run exists for `10.1.1`; the verifier and extraction fixes are
|
|
12
|
+
evidenced by offline replay of recorded sessions only.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- Verification no longer rejects every candidate over its own required
|
|
17
|
+
evidence. Two recorded defects had the same shape: the deterministic floor
|
|
18
|
+
is built from exactly the lines the verifier demands, so a line the verifier
|
|
19
|
+
also scores as a defect leaves nothing that can pass, the session stays
|
|
20
|
+
uncompacted at 99% context, and Pi's own summarizer then hits its output
|
|
21
|
+
cap. First, the contradiction scan judged "Continue to avoid commits,
|
|
22
|
+
installation, or live daemon restart ... (`agm restart` deliberately
|
|
23
|
+
deferred)" as a positive "restart" beside "avoid live daemon restart":
|
|
24
|
+
negation near the anchor cannot see a coordinated list or a split clause.
|
|
25
|
+
Required evidence lines are now compared by sentence-level polarity, the
|
|
26
|
+
judgment the scan already applies to its source, so lines that agree are
|
|
27
|
+
not scored against each other; two required lines of opposite polarity
|
|
28
|
+
("Do not publish stable" beside "Must publish stable now") remain a gap,
|
|
29
|
+
and summary-authored contradictions are never exempt. Second, the outcome
|
|
30
|
+
claim scan read a recorded bug ("message lost with no error surfaced") as
|
|
31
|
+
a success claim, repair removed it, and the next pass reported the
|
|
32
|
+
constraint missing. Exact renderings of required evidence are no longer
|
|
33
|
+
outcome claims; prose that echoes such a phrase still needs tool evidence.
|
|
34
|
+
- Extraction ignores harness-injected `user` messages: pi-processes
|
|
35
|
+
`<process_event>` notifications, this extension's own continuity bridge
|
|
36
|
+
ledger, and agent-mesh envelopes. They were mined as the active goal, as
|
|
37
|
+
constraints (with `Constraint:` labels accumulating across generations),
|
|
38
|
+
decisions, and recent user requests. Continuity labels quoted by Pi's own
|
|
39
|
+
compaction summary are stripped before constraints are stored.
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- Automatic runs are capped at 300 seconds instead of 60, and
|
|
44
|
+
`autoTriggerTimeoutMs` defaults to 300,000 ms. Recorded MiniMax M3 runs took
|
|
45
|
+
26–45 s when they finished and ~40% of automatic attempts were cut at the
|
|
46
|
+
old 60 s cap, each leaving the session for Pi's own compactor.
|
|
47
|
+
|
|
48
|
+
### Repository
|
|
49
|
+
|
|
50
|
+
- Research reports and review findings are now local, ignored artifacts rather
|
|
51
|
+
than tracked repository content. Existing files stay on disk; Git history
|
|
52
|
+
and published release tags are unchanged.
|
|
53
|
+
|
|
54
|
+
## [10.1.0] - 2026-09-29
|
|
55
|
+
|
|
56
|
+
### Release approval
|
|
57
|
+
|
|
58
|
+
- The release owner explicitly approved shipping `10.1.0` to stable without
|
|
59
|
+
a new version-specific applied-canary cohort or a `PROMOTE` result for this
|
|
60
|
+
version. Deterministic release gates and protected PR CI still apply. This
|
|
61
|
+
is an approval and evidence limit, not a claim that live quality or savings
|
|
62
|
+
were measured for `10.1.0`, and not a claim that final release checks have
|
|
63
|
+
already passed.
|
|
64
|
+
|
|
65
|
+
### Added
|
|
66
|
+
|
|
67
|
+
- Native tool rows for all six agent tools (`smart_tools`, `smart_context`,
|
|
68
|
+
`smart_navigation`, `smart_recall`, `smart_save_memory`, `smart_compact`):
|
|
69
|
+
compact status lines with honest states (queued, staged, dry-run, skipped,
|
|
70
|
+
pending, failed, cancelled are never shown as done/applied/saved), bounded
|
|
71
|
+
previews when collapsed, and the full original result text when expanded
|
|
72
|
+
via the configured native expansion key. Rows are call-time snapshots with
|
|
73
|
+
no polling.
|
|
74
|
+
- Memory saves surface stable refs and titles: completed saves are marked
|
|
75
|
+
searchable, accepted saves are clearly not yet searchable, and uncertain
|
|
76
|
+
outcomes keep their operation identity. Recall shows prior-save receipt
|
|
77
|
+
states (completed/pending/failed/unknown) from the refresh it already runs,
|
|
78
|
+
and long recalled facts are marked as excerpts rather than complete memory.
|
|
79
|
+
- Shared usage/pressure gates in `smart_context status`, navigation footer and TUI.
|
|
80
|
+
- `task-eval --tool-loading=eager|lazy`, with tool schemas included in normalized
|
|
81
|
+
prefix comparisons. Offline results remain lifecycle evidence, not billing proof.
|
|
82
|
+
- A documented cache-first configuration using idle compaction and initial
|
|
83
|
+
output offload, pressure-only cleanup and no speculative preparation.
|
|
84
|
+
|
|
85
|
+
### Changed
|
|
86
|
+
|
|
87
|
+
- Intermediate synthesis fallbacks stay in progress/metrics instead of warning
|
|
88
|
+
toasts; applied results still disclose fallback use. Prompt-cache attribution
|
|
89
|
+
stays in Readiness/metrics without duplicating Pi's cache-miss notice.
|
|
90
|
+
- Pressure-first defaults: stable eager tool exposure, early batched cleanup,
|
|
91
|
+
and idle compaction at 80%. `contextPressureOnly: false` explicitly opts into
|
|
92
|
+
earlier economic/cold-cache cleanup. Human commands keep early-operation access.
|
|
93
|
+
- Agent anchors now request one safe cleanup of their new region through the
|
|
94
|
+
existing trim controller. Prior anchor prefixes and recent work stay protected;
|
|
95
|
+
append-only anchors no longer discard paid background preparation.
|
|
96
|
+
|
|
97
|
+
### Fixed
|
|
98
|
+
|
|
99
|
+
- EESV preserves verbatim constraints and negative contractions, verifies explicit
|
|
100
|
+
question–answer pairs (including short and numeric choices), and keeps the
|
|
101
|
+
latest answered decision across fallback, verification and continuity state.
|
|
102
|
+
Repair cannot certify a wrong answer by merely appending the correct one.
|
|
103
|
+
- Constraint retirement requires directed release evidence instead of treating
|
|
104
|
+
questions, criticism, reported behavior or denied permission as authorization.
|
|
105
|
+
Genuine user rules are no longer discarded merely for saying “do not bypass
|
|
106
|
+
verification.” Dialog results are paired by tool-call ID, and fresh/cached
|
|
107
|
+
extraction use consistent retry-result classification, including sibling retries.
|
|
108
|
+
- Single-pass and final assembly reject known nonterminal or fence-truncated
|
|
109
|
+
responses before synthesis caching and use the existing deterministic fallback.
|
|
110
|
+
- Credential availability checks honor run cancellation without holding the run
|
|
111
|
+
lock until auth finishes. Late auth results cannot resume the cancelled run.
|
|
112
|
+
The settled watchdog distinguishes a busy host from an idle missing result
|
|
113
|
+
instead of suggesting a conflicting manual retry while Pi is busy.
|
|
114
|
+
- Exploration now leaves two calls for batch synthesis and final assembly,
|
|
115
|
+
including probe/direct/retry paths. Batch retries and queued workers also
|
|
116
|
+
preserve the final assembly call instead of exhausting the shared budget.
|
|
117
|
+
- Continuity display labels (`Constraint:`, `Goal:`, `Decision:`) no longer make
|
|
118
|
+
an unchanged carried fact fail semantic verification. Actual contradictions
|
|
119
|
+
still block apply.
|
|
120
|
+
- Automatic idle compaction now cools down after failed and timed-out attempts,
|
|
121
|
+
not only successful compactions, preventing repeated idle events from spending
|
|
122
|
+
another model budget. Manual compaction and Pi's own recovery stay available.
|
|
123
|
+
|
|
124
|
+
- Client trim/rewind refuse edits that would invalidate retained signed Anthropic
|
|
125
|
+
thinking. Background candidates validate system/tool changes; configured
|
|
126
|
+
`pendingTtlMs` now governs both staged and background summaries. Loaded tools
|
|
127
|
+
remain stable across compaction.
|
|
128
|
+
|
|
5
129
|
## [10.0.1] - 2026-09-28
|
|
6
130
|
|
|
7
131
|
### Removed
|
package/README.md
CHANGED
|
@@ -19,10 +19,12 @@ this extension adds context hygiene and continuity policies around it.
|
|
|
19
19
|
> The TUI still says **Smart Compact**. No data or configuration migration is
|
|
20
20
|
> needed. [Identity and naming](./docs/identity.md).
|
|
21
21
|
>
|
|
22
|
-
> **Pi Continuity 10.0
|
|
22
|
+
> **Pi Continuity 10.1.0:** upgrading from 9.x? Update Pi to 0.87.1 or newer
|
|
23
23
|
> and read the [upgrade notes](./docs/guide.md#upgrade-from-9x). Optional memory
|
|
24
24
|
> engines and image rendering are installed separately. The
|
|
25
25
|
> [changelog](./CHANGELOG.md) records the full release and its evidence limits.
|
|
26
|
+
> These defaults (pressure-first cleanup, eager tool exposure, native tool
|
|
27
|
+
> rows) ship with 10.1.0.
|
|
26
28
|
|
|
27
29
|
## What it does
|
|
28
30
|
|
|
@@ -66,9 +68,10 @@ Open **Settings → How it runs** to choose your level of control:
|
|
|
66
68
|
| **Cleanup only** | Local, recoverable cleanup; no automatic summary generation. |
|
|
67
69
|
| **Fully automatic** | Cleanup plus compaction requests when idle at the configured context threshold. |
|
|
68
70
|
|
|
69
|
-
Pi's own compaction setting is separate. **
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
Pi's own compaction setting is separate. **Pressure-first (default)** keeps
|
|
72
|
+
roomy history unchanged, allows cleanup at an early pressure gate, then requests
|
|
73
|
+
compaction when idle at 80% if still needed. The optional `native-hook` strategy
|
|
74
|
+
participates only when Pi starts compaction. [Trigger settings](./docs/configuration.md).
|
|
72
75
|
|
|
73
76
|
For your first run, choose **Compact now**, inspect the plan, then review the
|
|
74
77
|
result. **A** applies it; **C** or **Esc** cancels. **Enter does not apply** on
|
|
@@ -118,9 +121,11 @@ actions explain why.
|
|
|
118
121
|
| `/smart-compact handoff dry-run` | Previews a new-session seed without opening one. Use `handoff [-- note]` to proceed. |
|
|
119
122
|
| `/smart-compact metrics` | Shows effective state, run outcomes, recent issues and the host prompt-cache ledger. |
|
|
120
123
|
|
|
121
|
-
By default
|
|
122
|
-
|
|
123
|
-
and
|
|
124
|
+
By default permitted agent tools stay visible from session start, avoiding late
|
|
125
|
+
schema changes to cached prefixes. Actions, not visibility, are pressure-gated;
|
|
126
|
+
read-only recovery and metadata checkpoints remain available while roomy.
|
|
127
|
+
Optional lazy loading uses `smart_tools`. The context guide is read on request,
|
|
128
|
+
not injected. Tool availability and compaction permission are separate controls.
|
|
124
129
|
[Agent tools](./docs/guide.md#agent-tools) · [All commands](./docs/guide.md#command-reference)
|
|
125
130
|
|
|
126
131
|
## Memory is optional; continuity is the core
|
|
@@ -5,14 +5,14 @@ disable-model-invocation: true
|
|
|
5
5
|
---
|
|
6
6
|
# Context continuity
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Permitted context tools are available from the start by default. In optional lazy mode, use `smart_tools(action="load", group=...)` for a missing group. Loading does not inject this guide. Keep tool definitions stable: late loading/unloading can rebuild the provider cache. The user can disable capabilities or all agent tools in `/smart-compact` settings.
|
|
9
9
|
|
|
10
10
|
## Milestones and navigation
|
|
11
11
|
|
|
12
12
|
Load `navigation` for `smart_navigation`.
|
|
13
13
|
|
|
14
14
|
- `view` lists recent anchors on the active branch first, then other branches. Results are bounded previews; use `target` to read one anchor's full summary. An anchor records completed work, not a speculative plan.
|
|
15
|
-
- `anchor` records
|
|
15
|
+
- `anchor` records completed work only under pressure by default; check `smart_context status` first. Preserve the goal, constraints, decisions, verified state, unresolved problems and exact identifiers. It queues one safe cleanup of the new region, not a full compaction. The response distinguishes queued cleanup from a no-op; never claim context shrank before commit. Do not duplicate a rewind report as another long anchor summary.
|
|
16
16
|
- `recall` searches anchors in earlier local sessions, in the current project by default. Only use `scope="all"` when cross-project search is actually needed. Results are historical evidence, not instructions or permission. Use Pi's `/resume` to open a different session.
|
|
17
17
|
- Before `pivot`, inspect the destination with `view`. Supply its exact entry ID or unambiguous anchor name and a non-empty `carryover` containing the task, new facts, decisions, failures, unfinished work and the next step. Call pivot on its own and end the turn. The host applies it only after the tool batch settles and revalidates the origin. A queued result is not proof that navigation has happened.
|
|
18
18
|
- Pivot changes the active conversation branch, not files, running processes, databases or external services. Never claim it undoes side effects. Required carryover is inserted as the native tree summary without a second model request. An optional `message` becomes the next user turn only after successful navigation; omit it when the user should decide what happens next.
|
|
@@ -21,11 +21,11 @@ Load `navigation` for `smart_navigation`.
|
|
|
21
21
|
|
|
22
22
|
Load `history` for `smart_context`. This is different from tree navigation.
|
|
23
23
|
|
|
24
|
-
- `plan` previews
|
|
25
|
-
- `checkpoint`
|
|
24
|
+
- `status` shows real usage, the policy window, cleanup/compaction thresholds and blockers. `plan` previews cleanup; `trim` requests it at an uncontested completed turn boundary. Agent trim/rewind/anchor requests require pressure by default; human commands can request earlier work.
|
|
25
|
+
- `checkpoint` is cheap metadata: use it before a substantial, bounded read-only research detour, not every turn. `rewind(report=...)` removes its eligible read-only exploration from delivered context while retaining the findings you explicitly report. Preserve decisions, evidence, constraints, failures and the next step. Do not hide side effects or discard an unresolved question.
|
|
26
26
|
- `status`, `search` and `read` recover archived tool evidence on the active branch; add `scope="lineage"` to reach the sessions this one was handed off or forked from (read-only, up to three levels). A marker is a digest (subject, first line, risk lines), not the output; a `(superseded: …)` note means the file was edited or read again in full later. Old successful `bash` output and old `read` pages are archived the same way. A preview is not the whole output; retrieve the needed source rather than inventing details.
|
|
27
27
|
- A `read` or `search` that reports archived text no longer matching its record means the session file changed after archiving; treat that source as unavailable and say so, never reconstruct it.
|
|
28
|
-
-
|
|
28
|
+
- Published anchor prefixes stay protected. A new anchor may consolidate only its new region once, before first replay. Signed Anthropic thinking that depends on removed history blocks unsafe trim/rewind; do not bypass this safeguard. Prepared compaction takes priority. There is one cleanup owner; do not stack independent truncators.
|
|
29
29
|
|
|
30
30
|
## Compaction and durable memory
|
|
31
31
|
|
|
@@ -18,10 +18,23 @@ export declare function preparationWindow(config: Pick<CompactConfig, "minContex
|
|
|
18
18
|
startTokens: number;
|
|
19
19
|
applyTokens: number;
|
|
20
20
|
};
|
|
21
|
+
/** Shared execution/status gates; unknown usage fails closed, never means zero pressure. */
|
|
22
|
+
export declare function contextPressure(ctx: Pick<ExtensionContext, "model" | "getContextUsage">, config: Pick<CompactConfig, "minContextPercent" | "prepareContextPercent" | "maxContextTokens">): {
|
|
23
|
+
tokens: number | null;
|
|
24
|
+
modelWindow: number | null;
|
|
25
|
+
policyWindow: number | null;
|
|
26
|
+
percent: number | null;
|
|
27
|
+
cleanupTokens: number | null;
|
|
28
|
+
compactionTokens: number | null;
|
|
29
|
+
cleanup: boolean;
|
|
30
|
+
compaction: boolean;
|
|
31
|
+
};
|
|
21
32
|
export declare function createBackgroundPreparation(options: {
|
|
22
33
|
prepare(ctx: ExtensionContext, config: CompactConfig, signal: AbortSignal): Promise<PendingCompaction | null>;
|
|
23
34
|
now?: () => number;
|
|
24
35
|
ttlMs?: number;
|
|
36
|
+
/** Effective active-tool definitions, not just names. Never inject this into the model context. */
|
|
37
|
+
toolSignature?: () => string;
|
|
25
38
|
cooldownMs?: number;
|
|
26
39
|
/** Test seam for the bounded local discard metrics entry. */
|
|
27
40
|
discardRecorder?: (sessionId: string, snapshot: MetricsSnapshot, reason: PreparationDiscardReason) => void | Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background-preparation.d.ts","sourceRoot":"","sources":["../../src/app/background-preparation.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAM/G;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,wBAAwB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AACD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,uBAAuB,CAAC,EAC1E,MAAM,EAAE,MAAM,GACZ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAS9C;
|
|
1
|
+
{"version":3,"file":"background-preparation.d.ts","sourceRoot":"","sources":["../../src/app/background-preparation.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAM/G;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,wBAAwB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AACD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,uBAAuB,CAAC,EAC1E,MAAM,EAAE,MAAM,GACZ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAS9C;AAED,4FAA4F;AAC5F,wBAAgB,eAAe,CAC9B,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,iBAAiB,CAAC,EACxD,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,uBAAuB,GAAG,kBAAkB,CAAC;;;;;;;;;EAgB/F;AAkDD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACpD,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC9G,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mGAAmG;IACnG,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9H;mBAiEsB,gBAAgB,UAAU,aAAa,KAAG,IAAI;gBAoDjD,gBAAgB,UAAU,aAAa,KAAG,iBAAiB,GAAG,IAAI;sBAhF7D,wBAAwB,KAAiB,IAAI;+BAwGnC,MAAM,UAAU,YAAY,GAAG,OAAO,KAAG,IAAI;gBAS5D,OAAO,CAAC,IAAI,CAAC;;IAM/B,2EAA2E;sBACzD,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO;8BAK/B,MAAM;EAKjC"}
|
|
@@ -16,7 +16,7 @@ export interface CompactionCommitStore {
|
|
|
16
16
|
* Nothing durable is written until `take()` confirms both run and session.
|
|
17
17
|
*/
|
|
18
18
|
export declare function createCompactionCommitStore(options?: {
|
|
19
|
-
ttlMs?: number;
|
|
19
|
+
ttlMs?: number | (() => number);
|
|
20
20
|
maxEntries?: number;
|
|
21
21
|
onDiscard?: (pending: PendingCompaction, reason: CommitDiscardReason) => void;
|
|
22
22
|
}): CompactionCommitStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction-commit-store.d.ts","sourceRoot":"","sources":["../../src/app/compaction-commit-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOrD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAElI,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAAC;IACjE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAC9E,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,mBAAmB,GAAG,iBAAiB,EAAE,CAAC;IACnF,IAAI,IAAI,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"compaction-commit-store.d.ts","sourceRoot":"","sources":["../../src/app/compaction-commit-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOrD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAElI,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAAC;IACjE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAC9E,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,mBAAmB,GAAG,iBAAiB,EAAE,CAAC;IACnF,IAAI,IAAI,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE;IACnD,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC1E,GAAG,qBAAqB,CAoE7B"}
|
|
@@ -66,7 +66,12 @@ export declare function buildTrimMarker(input: {
|
|
|
66
66
|
};
|
|
67
67
|
note?: string;
|
|
68
68
|
}): string;
|
|
69
|
-
|
|
69
|
+
/** Signed Anthropic thinking may bind the entire preceding history, not only its own bytes. */
|
|
70
|
+
export declare function thinkingEditReason(branch: SessionEntry[], entries: SessionBoundaryDraft[], readerApi?: string): string | undefined;
|
|
71
|
+
export declare function planContextTrim(branch: SessionEntry[], afterId?: string, options?: {
|
|
72
|
+
anchorBoundary?: string | null;
|
|
73
|
+
readerApi?: string;
|
|
74
|
+
}): {
|
|
70
75
|
entries: SessionBoundaryDraft[];
|
|
71
76
|
references: string[];
|
|
72
77
|
archives: ArchiveRecord[];
|
|
@@ -74,6 +79,7 @@ export declare function planContextTrim(branch: SessionEntry[], afterId?: string
|
|
|
74
79
|
automatic: string;
|
|
75
80
|
cooldownTurns: number;
|
|
76
81
|
superseded: number;
|
|
82
|
+
blockedReason: string | undefined;
|
|
77
83
|
};
|
|
78
84
|
/** The plan's context edits followed by a trim control entry recording `cause`. */
|
|
79
85
|
export declare function trimEntries(plan: {
|
|
@@ -96,7 +102,7 @@ export declare function trimTokens(branch: SessionEntry[], entries: SessionBound
|
|
|
96
102
|
* the price is unknown.
|
|
97
103
|
*/
|
|
98
104
|
export declare function trimBreakEvenRequests(cost: Partial<ModelCostRates> | undefined, savedTokens: number, tailTokens: number): number | null;
|
|
99
|
-
export declare function planContextRewind(branch: SessionEntry[], sessionId: string, checkpointId: string, report: string): {
|
|
105
|
+
export declare function planContextRewind(branch: SessionEntry[], sessionId: string, checkpointId: string, report: string, readerApi?: string): {
|
|
100
106
|
entries: SessionBoundaryDraft[];
|
|
101
107
|
removed: number;
|
|
102
108
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-operations.d.ts","sourceRoot":"","sources":["../../src/app/context-operations.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAC+C,KAAK,oBAAoB,EAAE,KAAK,YAAY,EACjG,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,uBAAuB,CAAC;AAStE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIvD,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAC5D,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAC1D,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,cAAc,OAAQ,CAAC;AAKpC,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,GAAG,SAAS,CAO7E;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;CACjD;AAED,mHAAmH;AACnH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAGhF,yGAAyG;AACzG,MAAM,WAAW,aAAa;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAE5E,KAAK,WAAW,GACZ;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAA;CAAE,GACnE;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GACnG;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAuBvF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,oBAAoB,CAE3E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM;;;;;;EA+CvE;AAqCD,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAErE;AASD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CA+B9J;AA6CD,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"context-operations.d.ts","sourceRoot":"","sources":["../../src/app/context-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effective-state.d.ts","sourceRoot":"","sources":["../../src/app/effective-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAOxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAkC,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AACD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,8EAA8E;AAC9E,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,qBAAqB,EAC/B,WAAW,CAAC,EAAE,gBAAgB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAsC7B;AAaD,wGAAwG;AACxG,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"effective-state.d.ts","sourceRoot":"","sources":["../../src/app/effective-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAOxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAkC,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AACD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,8EAA8E;AAC9E,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,qBAAqB,EAC/B,WAAW,CAAC,EAAE,gBAAgB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAsC7B;AAaD,wGAAwG;AACxG,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAgGjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hindsight-memory.d.ts","sourceRoot":"","sources":["../../src/app/hindsight-memory.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hindsight-memory.d.ts","sourceRoot":"","sources":["../../src/app/hindsight-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-tools.d.ts","sourceRoot":"","sources":["../../src/app/lazy-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"lazy-tools.d.ts","sourceRoot":"","sources":["../../src/app/lazy-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAYpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,QAAA,MAAM,MAAM;aACX,UAAU,YAAG,kBAAkB;aAC/B,OAAO,YAAG,eAAe;aACzB,MAAM,YAAG,cAAc,EAAE,mBAAmB;aAC5C,UAAU,YAAG,eAAe;CACnB,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,MAAM,CAAC;AAKnD,MAAM,WAAW,mBAAmB;IACnC,4EAA4E;IAC5E,KAAK,IAAI,IAAI,CAAC;IACd,mEAAmE;IACnE,UAAU,IAAI,IAAI,CAAC;IACnB,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAAC;IACxC,sFAAsF;IACtF,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,OAAO,IAAI,MAAM,CAAC;IAClB,MAAM,IAAI;QAAE,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,gBAAgB,CAAC;YAAC,SAAS,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CACnI;AAED,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE;IAC/G,MAAM,CAAC,EAAE,MAAM,aAAa,CAAC;IAC7B,gBAAgB,EAAE,MAAM,aAAa,CAAC,iBAAiB,CAAC,CAAC;CACzD,GAAG,mBAAmB,CAmGtB;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CA6C/F"}
|
|
@@ -8,7 +8,7 @@ export declare function pendingMatchesBranch(pending: PendingCompaction, branch:
|
|
|
8
8
|
id?: unknown;
|
|
9
9
|
}[]): boolean;
|
|
10
10
|
/** Capture before preparation starts, not after a possibly long-running provider call. */
|
|
11
|
-
export declare function readerSignature(ctx: Pick<ExtensionContext, "model">): string | undefined;
|
|
11
|
+
export declare function readerSignature(ctx: Pick<ExtensionContext, "model"> & Partial<Pick<ExtensionContext, "getSystemPrompt">>): string | undefined;
|
|
12
12
|
/** Shared final gate for foreground and background candidates. Missing proof fails closed. */
|
|
13
13
|
export declare function revalidatePending(pending: PendingCompaction, ctx: ExtensionContext, reserveTokens?: number): PendingCompaction | null;
|
|
14
14
|
export type ConsumeResult = {
|
|
@@ -33,7 +33,7 @@ export interface PendingSlot {
|
|
|
33
33
|
size(): number;
|
|
34
34
|
}
|
|
35
35
|
export interface PendingSlotOptions {
|
|
36
|
-
ttlMs: number;
|
|
36
|
+
ttlMs: number | (() => number);
|
|
37
37
|
now?: () => number;
|
|
38
38
|
maxEntries?: number;
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-slot.d.ts","sourceRoot":"","sources":["../../src/app/pending-slot.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAG3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAoC,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAE7G,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,GAAG,WAAW,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAI9H;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS;IAAE,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,OAAO,CAO7G;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"pending-slot.d.ts","sourceRoot":"","sources":["../../src/app/pending-slot.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAG3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAoC,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAE7G,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,GAAG,WAAW,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAI9H;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS;IAAE,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,OAAO,CAO7G;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CAK7I;AAED,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,gBAAgB,EAAE,aAAa,SAAI,GAAG,iBAAiB,GAAG,IAAI,CA8BhI;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,GAAG,EAAE,sBAAsB,GAAG,aAAa,CAAC;IACpD,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAI,IAAI,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,WAAW,CAsFvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-context-tools.d.ts","sourceRoot":"","sources":["../../src/app/register-context-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,YAAY,EACZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"register-context-tools.d.ts","sourceRoot":"","sources":["../../src/app/register-context-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,YAAY,EACZ,gBAAgB,EAEhB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAON,KAAK,iBAAiB,EAEtB,MAAM,2BAA2B,CAAC;AA6DnC,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,gBAAgB,GACnB,iBAAiB,GAAG,IAAI,CAiB1B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA0G3D;AAED,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/C,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAuQ5D,UAAU,YAAY;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,aAAa,CAClC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,GAAG,EAAE,gBAAgB,GACnB,OAAO,CAAC,UAAU,CAAC,CAuHrB"}
|
|
@@ -12,7 +12,9 @@ export interface NavigationController {
|
|
|
12
12
|
export declare function registerNavigation(pi: ExtensionAPI, options?: {
|
|
13
13
|
config?: () => CompactConfig;
|
|
14
14
|
mutationBlocked?: (ctx: ExtensionContext) => string | undefined;
|
|
15
|
-
/**
|
|
15
|
+
/** Anchor creation may request one safe consolidation, without invalidating prepared compaction. */
|
|
16
|
+
onAnchor?: (ctx: ExtensionContext, originId: string, callId?: string, signal?: AbortSignal) => string;
|
|
17
|
+
/** Staging-time signal: queued and about-to-apply pivots, never append-only anchors. */
|
|
16
18
|
onContextChange?: (ctx: ExtensionContext) => void;
|
|
17
19
|
/** Commit-time signal: fires only after Pi applied a pivot's tree navigation. */
|
|
18
20
|
onContextEdit?: (ctx: ExtensionContext, kind: ContextEditKind) => void;
|