pi-smart-compact 10.1.1 → 10.1.2
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 +9 -1
- package/CHANGELOG.md +35 -0
- package/dist/app/steps/synthesize.d.ts.map +1 -1
- package/dist/app/steps/verify.d.ts.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/index.js +44 -33
- package/dist/phases/synthesize.d.ts +11 -2
- package/dist/phases/synthesize.d.ts.map +1 -1
- package/dist/phases/verify.d.ts +25 -0
- package/dist/phases/verify.d.ts.map +1 -1
- package/dist/rtk.js +1 -1
- package/package.json +1 -1
package/ARCHITECTURE.md
CHANGED
|
@@ -643,7 +643,15 @@ Repair order is intentional: (1) deterministic patch first (free, idempotent);
|
|
|
643
643
|
lower-scoring output with a deterministic quality floor built only from
|
|
644
644
|
extraction, continuity and steering; (4) reject unless final verification has
|
|
645
645
|
no gaps and meets the verified threshold. Untrusted chunk prose never feeds the
|
|
646
|
-
quality floor.
|
|
646
|
+
quality floor. The floor's Goal, Constraints, Key Decisions, Blocked and
|
|
647
|
+
Critical Context sections are rendered from the verifier's own required
|
|
648
|
+
evidence set (`collectVerificationEvidence`: live, high-confidence,
|
|
649
|
+
non-retired constraints; explicit decisions collapsed to one active answer;
|
|
650
|
+
continuity-merged errors and goal), written whole, so the floor never carries a
|
|
651
|
+
line the verifier does not require and can therefore never fail its own gate on
|
|
652
|
+
a contradiction that deterministic repair cannot fix. The contradiction scan
|
|
653
|
+
treats required error lines and the steering focus as polarity-free: an error
|
|
654
|
+
records what happened and a focus names a subject, neither is a rule. Final verification runs again after continuity injection. The
|
|
647
655
|
final scalar is reported as repaired **verification coverage**, alongside the
|
|
648
656
|
pre-repair score and fallback provenance, never as raw synthesis quality.
|
|
649
657
|
Failures keep only exhaustive content-free gap kinds and the rejecting gate
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [10.1.2] - 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.2`; the fix is evidenced by the test sweep
|
|
12
|
+
and offline replay of recorded sessions only.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- **The deterministic quality floor can no longer fail its own verification
|
|
17
|
+
gate.** The floor rendered every extracted constraint, including ones the
|
|
18
|
+
user had since released (`factOverrides`), stale implicit decisions, and its
|
|
19
|
+
own `[focus]`/`[note]` steering tags, while the verifier required a
|
|
20
|
+
different set; a released prohibition beside its live replacement, an error
|
|
21
|
+
message naming the action a rule forbids ("daemon restart failed" beside "Do
|
|
22
|
+
not restart the daemon"), or a steering focus that named that action, each
|
|
23
|
+
scored as a semantic contradiction, which deterministic repair cannot fix,
|
|
24
|
+
so every candidate was rejected. The floor now renders exactly the
|
|
25
|
+
verifier's required evidence (`collectVerificationEvidence`), written
|
|
26
|
+
whole; the contradiction scan treats required error lines and the steering
|
|
27
|
+
focus as polarity-free; and the floor's goal falls back to the continuity
|
|
28
|
+
goal. Summary-authored contradictions and two live rules of opposite
|
|
29
|
+
polarity still fail. A 512-combination sweep over the evidence sources
|
|
30
|
+
(retired rule, low-confidence inverse, non-live text, continuity-only rule
|
|
31
|
+
or goal, overlapping errors, implicit inverse decision, coverage overflow,
|
|
32
|
+
over-limit texts) asserts no non-repairable gap.
|
|
33
|
+
- A user steering note longer than the constraint line limit is required,
|
|
34
|
+
rendered and repaired whole; a summary that cuts its trailing prohibition
|
|
35
|
+
is still rejected as altered evidence.
|
|
36
|
+
- Display labels `Critical:`, `Open loop:`, `Unresolved error:` and
|
|
37
|
+
`Resolved error:` (plain or bold) are stripped before semantic comparison
|
|
38
|
+
like `Constraint:`/`Goal:`/`Decision:` already were.
|
|
39
|
+
|
|
5
40
|
## [10.1.1] - 2026-09-30
|
|
6
41
|
|
|
7
42
|
### Release approval
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesize.d.ts","sourceRoot":"","sources":["../../../src/app/steps/synthesize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA4BH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAYpE,wBAAsB,qBAAqB,CAC1C,EAAE,EAAE,WAAW,GACb,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"synthesize.d.ts","sourceRoot":"","sources":["../../../src/app/steps/synthesize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA4BH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAYpE,wBAAsB,qBAAqB,CAC1C,EAAE,EAAE,WAAW,GACb,OAAO,CAAC,aAAa,CAAC,CAmmBxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/app/steps/verify.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiBnE,wBAAsB,cAAc,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/app/steps/verify.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiBnE,wBAAsB,cAAc,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAqN3E"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { CompressionProfile, ProfileConfig } from "./types.ts";
|
|
|
8
8
|
* `package.json#version`. Do not hand-edit this line for releases; bump
|
|
9
9
|
* package.json and run `bun run sync-version`.
|
|
10
10
|
*/
|
|
11
|
-
export declare const VERSION = "10.1.
|
|
11
|
+
export declare const VERSION = "10.1.2";
|
|
12
12
|
/**
|
|
13
13
|
* Opt-in components that are not installed with the extension: optional peer
|
|
14
14
|
* dependencies in package.json, pinned to the versions the release audit
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "@earendil-works/pi-coding-agent";
|
|
6
6
|
|
|
7
7
|
// src/constants.ts
|
|
8
|
-
var VERSION = "10.1.
|
|
8
|
+
var VERSION = "10.1.2";
|
|
9
9
|
var OPTIONAL_COMPONENTS = {
|
|
10
10
|
mnemopi: { name: "@oh-my-pi/pi-mnemopi", version: "18.3.1", enables: "Mnemopi memory store" },
|
|
11
11
|
bun: { name: "bun", version: "1.4.2", enables: "Mnemopi worker runtime when no Bun 1.3.14+ is on PATH" },
|
|
@@ -6820,8 +6820,9 @@ function stemToken(token) {
|
|
|
6820
6820
|
return lower.slice(0, -1);
|
|
6821
6821
|
return lower;
|
|
6822
6822
|
}
|
|
6823
|
+
var EVIDENCE_LABEL_PREFIX_RE = /^\s*(?:(?:\*\*)?(?:Constraint|Goal|Decision|Critical|Open loop|Unresolved error|Resolved error):(?:\*\*)?\s*)+/i;
|
|
6823
6824
|
function semanticTokens(text) {
|
|
6824
|
-
const normalized = text.normalize("NFKC").replace(/[\u{2018}\u{2019}\u{02BC}`\u{00B4}]/gu, "'").replace(/\bcannot\b/gi, "can not").replace(/\b(\w+)n't\b/gi, "$1 not").replace(
|
|
6825
|
+
const normalized = text.normalize("NFKC").replace(/[\u{2018}\u{2019}\u{02BC}`\u{00B4}]/gu, "'").replace(/\bcannot\b/gi, "can not").replace(/\b(\w+)n't\b/gi, "$1 not").replace(EVIDENCE_LABEL_PREFIX_RE, "");
|
|
6825
6826
|
return (normalized.match(/[\p{L}\p{N}_-]+/gu) ?? []).map(stemToken).filter((token) => token.length > 2 || NEGATION_MARKERS.has(token));
|
|
6826
6827
|
}
|
|
6827
6828
|
var semanticShapeCache = new Map;
|
|
@@ -7184,7 +7185,8 @@ function collectVerificationEvidence(extraction, continuity, evidence) {
|
|
|
7184
7185
|
const steeringConstraints = [];
|
|
7185
7186
|
if (evidence.steering?.focus?.trim()) {
|
|
7186
7187
|
steeringConstraints.push({
|
|
7187
|
-
text: "Preserve detail about: " + evidence.steering.focus
|
|
7188
|
+
text: "Preserve detail about: " + evidence.steering.focus,
|
|
7189
|
+
topic: true
|
|
7188
7190
|
});
|
|
7189
7191
|
}
|
|
7190
7192
|
if (evidence.steering?.note?.trim()) {
|
|
@@ -7295,22 +7297,31 @@ var EVIDENCE_RENDER_LIMITS = [
|
|
|
7295
7297
|
];
|
|
7296
7298
|
function requiredEvidenceKeysByPolarity(collected, continuity) {
|
|
7297
7299
|
const texts = [
|
|
7298
|
-
...collected.constraints.
|
|
7300
|
+
...collected.constraints.flatMap((item) => item.topic ? [] : [item.text]),
|
|
7299
7301
|
...collected.decisions.flatMap((item) => item.answer ? [item.summary, item.answer] : [item.summary]),
|
|
7300
|
-
...collected.unresolved.map((item) => item.message),
|
|
7301
|
-
...collected.resolved.map((item) => item.message),
|
|
7302
7302
|
...collected.goal ? [collected.goal] : [],
|
|
7303
7303
|
...continuity?.criticalContext ?? []
|
|
7304
7304
|
];
|
|
7305
|
+
const polarityFree = [
|
|
7306
|
+
...collected.constraints.flatMap((item) => item.topic ? [item.text] : []),
|
|
7307
|
+
...collected.unresolved.map((item) => item.message),
|
|
7308
|
+
...collected.resolved.map((item) => item.message)
|
|
7309
|
+
];
|
|
7305
7310
|
const keys = { negative: new Set, positive: new Set };
|
|
7306
|
-
|
|
7307
|
-
const bucket = semanticShape(text).negative ? keys.negative : keys.positive;
|
|
7311
|
+
const addVariants = (text, buckets) => {
|
|
7308
7312
|
const variants = [text, ...EVIDENCE_RENDER_LIMITS.map((max) => summaryEvidenceLine(text, max))];
|
|
7309
7313
|
for (const variant of variants) {
|
|
7310
|
-
for (const tokens of semanticFragments(variant))
|
|
7311
|
-
|
|
7314
|
+
for (const tokens of semanticFragments(variant)) {
|
|
7315
|
+
for (const bucket of buckets)
|
|
7316
|
+
bucket.add(tokens.join(" "));
|
|
7317
|
+
}
|
|
7312
7318
|
}
|
|
7319
|
+
};
|
|
7320
|
+
for (const text of texts) {
|
|
7321
|
+
addVariants(text, [semanticShape(text).negative ? keys.negative : keys.positive]);
|
|
7313
7322
|
}
|
|
7323
|
+
for (const text of polarityFree)
|
|
7324
|
+
addVariants(text, [keys.negative, keys.positive]);
|
|
7314
7325
|
return keys;
|
|
7315
7326
|
}
|
|
7316
7327
|
function verifySemanticCoverage(parsed, collected, continuity, accumulator) {
|
|
@@ -7564,7 +7575,7 @@ function patchDeterministic(summary, gaps, extraction, continuity = null, eviden
|
|
|
7564
7575
|
break;
|
|
7565
7576
|
}
|
|
7566
7577
|
case "missing-constraint":
|
|
7567
|
-
canonical = appendToSection(canonical, "constraints", "- " + safe(gap.text,
|
|
7578
|
+
canonical = appendToSection(canonical, "constraints", "- " + safe(gap.text, gap.text.length));
|
|
7568
7579
|
break;
|
|
7569
7580
|
case "missing-decision": {
|
|
7570
7581
|
const question = safe(gap.summary, TRUNC.DECISION_SUMMARY);
|
|
@@ -7573,7 +7584,7 @@ function patchDeterministic(summary, gaps, extraction, continuity = null, eviden
|
|
|
7573
7584
|
break;
|
|
7574
7585
|
}
|
|
7575
7586
|
case "missing-goal":
|
|
7576
|
-
canonical = upsertSection(canonical, "goal", safe(gap.goal,
|
|
7587
|
+
canonical = upsertSection(canonical, "goal", safe(gap.goal, gap.goal.length) || "Continue the current task.");
|
|
7577
7588
|
break;
|
|
7578
7589
|
case "missing-open-loops": {
|
|
7579
7590
|
const current = extraction.errors.filter((error) => !error.resolved).map((error) => safe(error.message, TRUNC.SNIPPET)).filter(Boolean).map((message) => "- [high] Resolve " + message);
|
|
@@ -11975,22 +11986,22 @@ async function assembleLLM(summaries, extraction, report, model, auth, budget, p
|
|
|
11975
11986
|
throw new Error("Assembly truncated output");
|
|
11976
11987
|
return assembled;
|
|
11977
11988
|
}
|
|
11978
|
-
function assembleFallback(summaries, extraction, steering = {}, budgetTokens = 6000, continuity = null) {
|
|
11989
|
+
function assembleFallback(summaries, extraction, steering = {}, budgetTokens = 6000, continuity = null, factOverrides = []) {
|
|
11979
11990
|
const safe = (value, max = TRUNC.PREVIEW_MID) => summaryEvidenceLine(value, max);
|
|
11991
|
+
const whole = (value) => summaryEvidenceLine(value, value.length);
|
|
11980
11992
|
const files = deterministicFileEvidence(extraction, budgetTokens, continuity);
|
|
11981
11993
|
const detModified = files.modified;
|
|
11982
11994
|
const detRead = files.read;
|
|
11983
11995
|
const detDeleted = files.deleted;
|
|
11984
|
-
const
|
|
11985
|
-
|
|
11986
|
-
|
|
11987
|
-
|
|
11988
|
-
|
|
11989
|
-
|
|
11990
|
-
|
|
11991
|
-
|
|
11992
|
-
const
|
|
11993
|
-
const response = item.userResponse ? safe(item.userResponse, TRUNC.USER_RESPONSE) : "";
|
|
11996
|
+
const required = collectVerificationEvidence(extraction, continuity, {
|
|
11997
|
+
steering,
|
|
11998
|
+
factOverrides
|
|
11999
|
+
});
|
|
12000
|
+
const unresolved = required.unresolved.map((error) => safe(error.message, TRUNC.PREVIEW)).filter(Boolean);
|
|
12001
|
+
const constraints = required.constraints.map((item) => "- " + whole(item.text)).filter((line) => line !== "- ");
|
|
12002
|
+
const decisions = required.decisions.map((item) => {
|
|
12003
|
+
const summary = whole(item.summary);
|
|
12004
|
+
const response = item.answer ? whole(item.answer) : "";
|
|
11994
12005
|
return summary ? "- **" + summary + "**" + (response ? " \u2192 " + response : "") : "";
|
|
11995
12006
|
}).filter(Boolean);
|
|
11996
12007
|
const inProgress = summaries.filter((item) => item.priority === "critical" || item.priority === "high").map((item) => safe(item.summary, TRUNC.PREVIEW)).filter(Boolean).map((item) => "- [ ] " + item);
|
|
@@ -11999,13 +12010,12 @@ function assembleFallback(summaries, extraction, steering = {}, budgetTokens = 6
|
|
|
11999
12010
|
}
|
|
12000
12011
|
inProgress.push(...detModified.slice(-5).map((file) => "- [ ] Continue work in " + file));
|
|
12001
12012
|
const next = safe(extraction.lastUserMessages.at(-1) ?? extraction.timeline.at(-1)?.summary ?? "", TRUNC.PREVIEW) || "Continue from the latest preserved context.";
|
|
12002
|
-
const goal =
|
|
12013
|
+
const goal = whole(required.goal ?? "") || "Continue the current task.";
|
|
12003
12014
|
const overflow = Object.entries(extraction.evidenceOverflow ?? {}).filter(([, count]) => typeof count === "number" && count > 0).map(([kind, count]) => "- Safety bound omitted " + count + " older " + kind + " item(s) from the human summary.");
|
|
12004
12015
|
const critical = [
|
|
12005
|
-
...unresolved.map((error) => "- Unresolved error: " + safe(error, TRUNC.TOPIC_LABEL)),
|
|
12006
|
-
...resolved.map((error) => "- Resolved error: " + safe(error, TRUNC.TOPIC_LABEL))
|
|
12007
|
-
|
|
12008
|
-
];
|
|
12016
|
+
...required.unresolved.map((error) => "- Unresolved error: " + safe(error.message, TRUNC.TOPIC_LABEL)),
|
|
12017
|
+
...required.resolved.map((error) => "- Resolved error: " + safe(error.message, TRUNC.TOPIC_LABEL))
|
|
12018
|
+
].filter((line) => !/: $/.test(line));
|
|
12009
12019
|
return [
|
|
12010
12020
|
"## Goal",
|
|
12011
12021
|
goal,
|
|
@@ -12040,6 +12050,7 @@ function assembleFallback(summaries, extraction, steering = {}, budgetTokens = 6
|
|
|
12040
12050
|
...critical.length ? critical : ["- None recorded."],
|
|
12041
12051
|
"",
|
|
12042
12052
|
"## Topics Covered",
|
|
12053
|
+
...overflow,
|
|
12043
12054
|
...summaries.length ? summaries.map((item) => {
|
|
12044
12055
|
const topic = safe(item.topic, TRUNC.TOPIC_LABEL) || "Segment";
|
|
12045
12056
|
return "- **" + topic + "** [" + item.priority + "]: " + safe(item.summary);
|
|
@@ -12164,7 +12175,7 @@ async function summarizeConversation(rc) {
|
|
|
12164
12175
|
phaseName: "Synthesize",
|
|
12165
12176
|
detail: "Building a deterministic continuation summary \xB7 no LLM call"
|
|
12166
12177
|
});
|
|
12167
|
-
const finalSummary = assembleFallback([], extraction, { focus: rc.focus, note: rc.userNote }, pc.summaryBudgetTokens, rc.previousState);
|
|
12178
|
+
const finalSummary = assembleFallback([], extraction, { focus: rc.focus, note: rc.userNote }, pc.summaryBudgetTokens, rc.previousState, rc.factOverrides);
|
|
12168
12179
|
setCachedSynthesis(cacheKey, {
|
|
12169
12180
|
finalSummary,
|
|
12170
12181
|
method: "heuristic",
|
|
@@ -12226,7 +12237,7 @@ async function summarizeConversation(rc) {
|
|
|
12226
12237
|
phaseName: "Synthesize",
|
|
12227
12238
|
detail: "Summary route unavailable \xB7 building a deterministic summary"
|
|
12228
12239
|
});
|
|
12229
|
-
finalSummary = assembleFallback([], extraction, { focus: rc.focus, note: rc.userNote }, pc.summaryBudgetTokens, rc.previousState);
|
|
12240
|
+
finalSummary = assembleFallback([], extraction, { focus: rc.focus, note: rc.userNote }, pc.summaryBudgetTokens, rc.previousState, rc.factOverrides);
|
|
12230
12241
|
method = "heuristic";
|
|
12231
12242
|
} else if (singleRequest) {
|
|
12232
12243
|
showProgressOverlay(rc.ctx, {
|
|
@@ -12247,7 +12258,7 @@ async function summarizeConversation(rc) {
|
|
|
12247
12258
|
generationFallbacks.push("single-pass generation failed");
|
|
12248
12259
|
recordIssue({ key: "synth.single-pass", message: "Single-pass synthesis used deterministic fallback (" + errorDetail(err) + ").", error: err });
|
|
12249
12260
|
rc.notify("Single-pass generation stopped \xB7 using deterministic fallback [" + formatGenerationFailureForUi(err) + "]", "info");
|
|
12250
|
-
finalSummary = assembleFallback([], extraction, { focus: rc.focus, note: rc.userNote }, pc.summaryBudgetTokens, rc.previousState);
|
|
12261
|
+
finalSummary = assembleFallback([], extraction, { focus: rc.focus, note: rc.userNote }, pc.summaryBudgetTokens, rc.previousState, rc.factOverrides);
|
|
12251
12262
|
method = "heuristic";
|
|
12252
12263
|
}
|
|
12253
12264
|
} else {
|
|
@@ -12454,7 +12465,7 @@ async function summarizeConversation(rc) {
|
|
|
12454
12465
|
recordIssue({ key: "synth.assembly", message: "Assembly used deterministic fallback (" + errorDetail(err) + ").", error: err });
|
|
12455
12466
|
rc.notify("Assembly stopped \xB7 using deterministic fallback [" + formatGenerationFailureForUi(err) + "]", "info");
|
|
12456
12467
|
method = "heuristic";
|
|
12457
|
-
finalSummary = assembleFallback(summaries, extraction, { focus: rc.focus, note: rc.userNote }, pc.summaryBudgetTokens, rc.previousState);
|
|
12468
|
+
finalSummary = assembleFallback(summaries, extraction, { focus: rc.focus, note: rc.userNote }, pc.summaryBudgetTokens, rc.previousState, rc.factOverrides);
|
|
12458
12469
|
}
|
|
12459
12470
|
}
|
|
12460
12471
|
rc.cancellation.signal.throwIfAborted();
|
|
@@ -12560,7 +12571,7 @@ async function verifyAndPatch(rc) {
|
|
|
12560
12571
|
detail: "Trying the deterministic safety summary",
|
|
12561
12572
|
explorationRounds: rc.explorationRounds
|
|
12562
12573
|
});
|
|
12563
|
-
let deterministic = assembleFallback([], extraction, evidence.steering, summaryBudgetTokens, rc.previousState);
|
|
12574
|
+
let deterministic = assembleFallback([], extraction, evidence.steering, summaryBudgetTokens, rc.previousState, rc.factOverrides);
|
|
12564
12575
|
let deterministicVerification = verifySummary(deterministic, extraction, rc.previousState, evidence);
|
|
12565
12576
|
const repaired = repairSummaryDeterministically(deterministic, deterministicVerification, extraction, rc.previousState, evidence);
|
|
12566
12577
|
deterministic = repaired.summary;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Phase 3: Hierarchical Synthesis.
|
|
3
3
|
*/
|
|
4
4
|
import type { Model, Api, Context, ProviderHeaders } from "@earendil-works/pi-ai";
|
|
5
|
-
import type { LlmMessage, LlmChunk, ChunkSummary, StructuredExtraction, ExplorationReport, ProfileConfig, CompactionState } from "../types.ts";
|
|
5
|
+
import type { LlmMessage, LlmChunk, ChunkSummary, StructuredExtraction, ExplorationReport, ProfileConfig, CompactionState, ContinuityOverride } from "../types.ts";
|
|
6
6
|
import { type TokenEstimator } from "../utils/tokens.ts";
|
|
7
7
|
import { type SmartCompactServices } from "../infra/services.ts";
|
|
8
8
|
/** A provider response completed, but did not satisfy the batch-output contract. */
|
|
@@ -41,10 +41,19 @@ export declare function assembleLLM(summaries: ChunkSummary[], extraction: Struc
|
|
|
41
41
|
apiKey: string;
|
|
42
42
|
headers?: ProviderHeaders;
|
|
43
43
|
}, budget: number, prevContext: string, signal?: AbortSignal, services?: SmartCompactServices, focus?: string, continuity?: CompactionState | null): Promise<string>;
|
|
44
|
+
/**
|
|
45
|
+
* Deterministic quality floor. Its Goal, Constraints, Key Decisions, Blocked
|
|
46
|
+
* and Critical Context sections render exactly the evidence the verifier
|
|
47
|
+
* requires ({@link collectVerificationEvidence}: live, high-confidence,
|
|
48
|
+
* non-retired constraints; explicit decisions collapsed to one active answer;
|
|
49
|
+
* continuity-merged errors and goal). A line the verifier does not require
|
|
50
|
+
* is a line it may score as a contradiction, which is not deterministically
|
|
51
|
+
* repairable; the floor therefore adds nothing of its own to those sections.
|
|
52
|
+
*/
|
|
44
53
|
export declare function assembleFallback(summaries: ChunkSummary[], extraction: StructuredExtraction, steering?: {
|
|
45
54
|
focus?: string;
|
|
46
55
|
note?: string;
|
|
47
|
-
}, budgetTokens?: number, continuity?: CompactionState | null): string;
|
|
56
|
+
}, budgetTokens?: number, continuity?: CompactionState | null, factOverrides?: readonly ContinuityOverride[]): string;
|
|
48
57
|
/**
|
|
49
58
|
* Build a placeholder {@link ChunkSummary} when a batch's LLM call failed, so the
|
|
50
59
|
* assembly step still has something deterministic to merge rather than
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesize.d.ts","sourceRoot":"","sources":["../../src/phases/synthesize.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"synthesize.d.ts","sourceRoot":"","sources":["../../src/phases/synthesize.ts"],"names":[],"mappings":"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"}
|
package/dist/phases/verify.d.ts
CHANGED
|
@@ -48,6 +48,31 @@ export declare function repairSummaryDeterministically(summary: string, result:
|
|
|
48
48
|
result: VerificationResult;
|
|
49
49
|
patched: VerificationGap[];
|
|
50
50
|
};
|
|
51
|
+
export interface CollectedVerificationEvidence {
|
|
52
|
+
unresolved: Array<{
|
|
53
|
+
message: string;
|
|
54
|
+
}>;
|
|
55
|
+
resolved: Array<{
|
|
56
|
+
message: string;
|
|
57
|
+
}>;
|
|
58
|
+
/** `topic` marks the steering focus: a subject pointer, not a rule with polarity. */
|
|
59
|
+
constraints: Array<{
|
|
60
|
+
text: string;
|
|
61
|
+
topic?: boolean;
|
|
62
|
+
}>;
|
|
63
|
+
decisions: Array<{
|
|
64
|
+
summary: string;
|
|
65
|
+
answer: string | null;
|
|
66
|
+
}>;
|
|
67
|
+
goal: string | null;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The evidence the verifier requires a summary to carry. Exported so the
|
|
71
|
+
* deterministic floor renders exactly this set: any line the floor adds that
|
|
72
|
+
* the verifier does not require is a line the verifier may score as a defect,
|
|
73
|
+
* and a floor that fails its own gate leaves a session uncompactable.
|
|
74
|
+
*/
|
|
75
|
+
export declare function collectVerificationEvidence(extraction: StructuredExtraction, continuity: CompactionState | null, evidence: VerificationEvidence): CollectedVerificationEvidence;
|
|
51
76
|
export declare function verifySummary(summary: string, extraction: StructuredExtraction, continuity?: CompactionState | null, evidence?: VerificationEvidence): VerificationResult;
|
|
52
77
|
/** Apply every safe, deterministic repair. Hallucination/inconsistency gaps stay visible for LLM/user review. */
|
|
53
78
|
export declare function patchDeterministic(summary: string, gaps: VerificationGap[], extraction: StructuredExtraction, continuity?: CompactionState | null, evidence?: VerificationEvidence): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/phases/verify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,KAAK,EACL,GAAG,EACH,OAAO,EACP,eAAe,EAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACX,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,MAAM,aAAa,CAAC;AAsCrB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,MAAM,WAAW,oBAAoB;IACpC,cAAc,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,aAAa,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9C;AAmWD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAsClE;AAED,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,kBAAkB,GACxB,MAAM,GAAG,IAAI,CAcf;AAED,wFAAwF;AACxF,qBAAa,qBAAsB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,YACC,MAAM,EAAE,kBAAkB,EAC1B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,qBAAqB,EAW5B;CACD;
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/phases/verify.ts"],"names":[],"mappings":"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"}
|
package/dist/rtk.js
CHANGED
|
@@ -198,7 +198,7 @@ class SecretScrubber {
|
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
// src/constants.ts
|
|
201
|
-
var VERSION = "10.1.
|
|
201
|
+
var VERSION = "10.1.2";
|
|
202
202
|
var OPTIONAL_COMPONENTS = {
|
|
203
203
|
mnemopi: { name: "@oh-my-pi/pi-mnemopi", version: "18.3.1", enables: "Mnemopi memory store" },
|
|
204
204
|
bun: { name: "bun", version: "1.4.2", enables: "Mnemopi worker runtime when no Bun 1.3.14+ is on PATH" },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-smart-compact",
|
|
3
|
-
"version": "10.1.
|
|
3
|
+
"version": "10.1.2",
|
|
4
4
|
"description": "Pi Continuity — context hygiene and session continuity for Pi Coding Agent: recoverable cleanup, checkpoints, memory and verified compaction.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "bun@1.4.2",
|