pi-smart-compact 8.0.6 → 8.0.7

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 (45) hide show
  1. package/ARCHITECTURE.md +513 -0
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +70 -51
  4. package/SECURITY.md +8 -3
  5. package/dist/app/mode-policy.d.ts +0 -1
  6. package/dist/app/mode-policy.d.ts.map +1 -1
  7. package/dist/app/preflight.d.ts +16 -2
  8. package/dist/app/preflight.d.ts.map +1 -1
  9. package/dist/app/steps/extract.d.ts.map +1 -1
  10. package/dist/app/steps/state.d.ts.map +1 -1
  11. package/dist/app/steps/synthesize.d.ts.map +1 -1
  12. package/dist/app/steps/window.d.ts +3 -1
  13. package/dist/app/steps/window.d.ts.map +1 -1
  14. package/dist/constants.d.ts +18 -1
  15. package/dist/constants.d.ts.map +1 -1
  16. package/dist/domain/telemetry.d.ts +3 -0
  17. package/dist/domain/telemetry.d.ts.map +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +759 -548
  20. package/dist/infra/context-graph.d.ts.map +1 -1
  21. package/dist/infra/fs.d.ts +1 -1
  22. package/dist/infra/fs.d.ts.map +1 -1
  23. package/dist/infra/git.d.ts.map +1 -1
  24. package/dist/infra/session-identity.d.ts +4 -0
  25. package/dist/infra/session-identity.d.ts.map +1 -1
  26. package/dist/phases/verify.d.ts.map +1 -1
  27. package/dist/provider-eval.js +113 -22
  28. package/dist/provider-scenario-eval.js +150 -110
  29. package/dist/telemetry-report.js +138 -41
  30. package/dist/ui/dashboard-insights.d.ts.map +1 -1
  31. package/dist/ui/overlays.d.ts.map +1 -1
  32. package/dist/utils/cache.d.ts.map +1 -1
  33. package/dist/utils/extraction.d.ts +5 -0
  34. package/dist/utils/extraction.d.ts.map +1 -1
  35. package/dist/utils/fingerprint.d.ts +1 -1
  36. package/dist/utils/fingerprint.d.ts.map +1 -1
  37. package/dist/utils/pruning.d.ts.map +1 -1
  38. package/dist/utils/state.d.ts +4 -3
  39. package/dist/utils/state.d.ts.map +1 -1
  40. package/dist/utils/tokens.d.ts.map +1 -1
  41. package/docs/MIGRATING_TO_V8.md +30 -13
  42. package/docs/RELEASE.md +13 -10
  43. package/package.json +2 -1
  44. package/dist/app/explore-wrap.d.ts +0 -8
  45. package/dist/app/explore-wrap.d.ts.map +0 -1
@@ -2,7 +2,7 @@
2
2
  var __require = import.meta.require;
3
3
 
4
4
  // src/constants.ts
5
- var VERSION = "8.0.6";
5
+ var VERSION = "8.0.7";
6
6
  var COMPACT_SYSTEM_PREFIX = "You are an expert conversation summarizer for a coding agent. " + "Produce structured markdown summaries. " + "Follow output format exactly. " + "Use EXACT names \u2014 never paraphrase code identifiers. " + "Trust deterministic extraction data over intuition.";
7
7
  var PROFILES = {
8
8
  light: {
@@ -216,10 +216,10 @@ function p95(values) {
216
216
  return sorted[Math.max(0, Math.ceil(sorted.length * 0.95) - 1)] ?? 0;
217
217
  }
218
218
  function stats(entries, damage) {
219
- const successes = entries.filter((entry) => entry.status === "success" || entry.status === "dry-run");
220
- const quality = successes.filter((entry) => typeof entry.verificationScore === "number");
221
- const appliedRuns = entries.filter((entry) => entry.status === "success");
222
- const appliedRunIds = new Set(appliedRuns.filter((entry) => typeof entry.runId === "string" && entry.runId.length >= 8).map((entry) => entry.runId));
219
+ const evidence = entries.filter((entry) => entry.status !== "dry-run");
220
+ const successfulRuns = evidence.filter((entry) => entry.status === "success");
221
+ const quality = successfulRuns.filter((entry) => typeof entry.verificationScore === "number");
222
+ const appliedRunIds = new Set(successfulRuns.filter((entry) => typeof entry.runId === "string" && entry.runId.length >= 8).map((entry) => entry.runId));
223
223
  const observedScores = new Map;
224
224
  for (const observation of damage) {
225
225
  if (!observation.runId || !appliedRunIds.has(observation.runId) || typeof observation.damageScore !== "number" || !Number.isFinite(observation.damageScore))
@@ -229,14 +229,15 @@ function stats(entries, damage) {
229
229
  const damaging = [...observedScores.values()].filter((score) => score > 0).length;
230
230
  return {
231
231
  runs: entries.length,
232
- successRate: entries.length ? successes.length / entries.length : 0,
232
+ appliedRuns: evidence.length,
233
+ successRate: evidence.length ? successfulRuns.length / evidence.length : 1,
233
234
  avgQuality: quality.length ? quality.reduce((sum, entry) => sum + (entry.verificationScore ?? 0), 0) / quality.length : null,
234
- qualityCoverage: entries.length ? quality.length / entries.length : 0,
235
- p95LatencyMs: p95(entries.map((entry) => entry.durationMs ?? entry.avgLatency).filter(Number.isFinite)),
236
- avgTokens: entries.length ? entries.reduce((sum, entry) => sum + entry.totalInput + entry.totalCacheHit + (entry.totalCacheWrite ?? 0) + entry.totalOutput, 0) / entries.length : 0,
237
- fallbackRate: entries.length ? entries.filter((entry) => entry.method === "heuristic" || Array.isArray(entry.providerRoutes) && entry.providerRoutes.some((route) => route.successes < route.calls)).length / entries.length : 0,
235
+ qualityCoverage: evidence.length ? quality.length / evidence.length : 0,
236
+ p95LatencyMs: p95(evidence.map((entry) => entry.durationMs ?? entry.avgLatency).filter(Number.isFinite)),
237
+ avgTokens: evidence.length ? evidence.reduce((sum, entry) => sum + entry.totalInput + entry.totalCacheHit + (entry.totalCacheWrite ?? 0) + entry.totalOutput, 0) / evidence.length : 0,
238
+ fallbackRate: evidence.length ? evidence.filter((entry) => entry.method === "heuristic" || Array.isArray(entry.providerRoutes) && entry.providerRoutes.some((route) => route.successes < route.calls)).length / evidence.length : 0,
238
239
  damageRate: observedScores.size ? damaging / observedScores.size : 0,
239
- damageCoverage: appliedRuns.length ? observedScores.size / appliedRuns.length : 0
240
+ damageCoverage: successfulRuns.length ? observedScores.size / successfulRuns.length : 0
240
241
  };
241
242
  }
242
243
  function roundStats(value) {
@@ -261,7 +262,7 @@ function assessCanary(entries, damageEntries, options) {
261
262
  const triggers = [];
262
263
  const failureBaseline = 1 - baseline.successRate;
263
264
  const failureCanary = 1 - canary.successRate;
264
- if (canary.runs >= 3 && (failureCanary > 0.050001 || failureCanary - failureBaseline >= 0.050001)) {
265
+ if (canary.appliedRuns >= 3 && (failureCanary > 0.050001 || failureCanary - failureBaseline >= 0.050001)) {
265
266
  triggers.push({
266
267
  metric: "failure-rate",
267
268
  baseline: failureBaseline,
@@ -289,15 +290,17 @@ function assessCanary(entries, damageEntries, options) {
289
290
  if (canary.damageRate - baseline.damageRate >= 0.1) {
290
291
  triggers.push({ metric: "damage", baseline: baseline.damageRate, canary: canary.damageRate, threshold: "+10pp" });
291
292
  }
292
- const dataConfidence = Math.round(100 * (Math.min(1, canary.runs / minCanaryRuns) * 0.25 + Math.min(1, baseline.runs / Math.max(20, minCanaryRuns)) * 0.15 + canary.qualityCoverage * 0.2 + canary.damageCoverage * 0.2 + baseline.damageCoverage * 0.2));
293
+ const canarySampleAdequacy = Math.min(1, canary.appliedRuns / minCanaryRuns);
294
+ const baselineSampleAdequacy = Math.min(1, baseline.appliedRuns / Math.max(20, minCanaryRuns));
295
+ const dataConfidence = Math.round(100 * (canarySampleAdequacy * 0.25 + baselineSampleAdequacy * 0.15 + canary.qualityCoverage * canarySampleAdequacy * 0.2 + canary.damageCoverage * canarySampleAdequacy * 0.2 + baseline.damageCoverage * baselineSampleAdequacy * 0.2));
293
296
  const reasons = [];
294
297
  let decision = "hold";
295
- if (triggers.length && canary.runs >= 3) {
298
+ if (triggers.length && canary.appliedRuns >= 3) {
296
299
  decision = "rollback";
297
300
  reasons.push(...triggers.map((trigger) => trigger.metric + " crossed " + trigger.threshold));
298
- } else if (canary.runs < minCanaryRuns) {
299
- reasons.push("need " + (minCanaryRuns - canary.runs) + " more canary runs");
300
- } else if (baseline.runs < Math.max(20, minCanaryRuns)) {
301
+ } else if (canary.appliedRuns < minCanaryRuns) {
302
+ reasons.push("need " + (minCanaryRuns - canary.appliedRuns) + " more canary runs with applied outcomes");
303
+ } else if (baseline.appliedRuns < Math.max(20, minCanaryRuns)) {
301
304
  reasons.push("stable baseline is too small");
302
305
  } else if (canary.qualityCoverage < 0.7) {
303
306
  reasons.push("schema-v2 quality coverage is below 70%");
@@ -328,7 +331,7 @@ function safeMetricLabel(value, fallback) {
328
331
  return fallback;
329
332
  return value;
330
333
  }
331
- var FAILURE_KINDS = new Set([
334
+ var TELEMETRY_FAILURE_KINDS = new Set([
332
335
  "cancelled",
333
336
  "timeout",
334
337
  "rate-limit",
@@ -342,6 +345,9 @@ var FAILURE_KINDS = new Set([
342
345
  "yield",
343
346
  "internal"
344
347
  ]);
348
+ function isTelemetryFailureKind(value) {
349
+ return typeof value === "string" && TELEMETRY_FAILURE_KINDS.has(value);
350
+ }
345
351
  function buildPrivacySafeTelemetry(entries, damageEntries, options) {
346
352
  const groups = new Map;
347
353
  const failures = {};
@@ -376,7 +382,7 @@ function buildPrivacySafeTelemetry(entries, damageEntries, options) {
376
382
  group.input += entry.totalInput + entry.totalCacheHit + (entry.totalCacheWrite ?? 0);
377
383
  group.output += entry.totalOutput;
378
384
  groups.set(key, group);
379
- if (entry.failureKind && FAILURE_KINDS.has(entry.failureKind)) {
385
+ if (isTelemetryFailureKind(entry.failureKind)) {
380
386
  failures[entry.failureKind] = (failures[entry.failureKind] ?? 0) + 1;
381
387
  }
382
388
  }
@@ -416,7 +422,7 @@ function formatPrivacySafeTelemetry(report) {
416
422
  lines.push("", "## Canary: " + report.canary.decision.toUpperCase() + " (data confidence " + report.canary.dataConfidence + "%)", "");
417
423
  const baseline = report.canary.baseline;
418
424
  const canary = report.canary.canary;
419
- lines.push("| Gate | Stable baseline | Canary |", "|---|---:|---:|", "| Runs | " + baseline.runs + " | " + canary.runs + " |", "| Success | " + Math.round(baseline.successRate * 100) + "% | " + Math.round(canary.successRate * 100) + "% |", "| Verify quality | " + (baseline.avgQuality ?? "n/a") + " | " + (canary.avgQuality ?? "n/a") + " |", "| p95 duration | " + baseline.p95LatencyMs + "ms | " + canary.p95LatencyMs + "ms |", "| Avg tokens | " + baseline.avgTokens + " | " + canary.avgTokens + " |", "| Fallback | " + Math.round(baseline.fallbackRate * 100) + "% | " + Math.round(canary.fallbackRate * 100) + "% |", "| Damage | " + Math.round(baseline.damageRate * 100) + "% | " + Math.round(canary.damageRate * 100) + "% |", "| Damage observed | " + Math.round(baseline.damageCoverage * 100) + "% | " + Math.round(canary.damageCoverage * 100) + "% |", "");
425
+ lines.push("| Gate | Stable baseline | Canary |", "|---|---:|---:|", "| Runs (total/applied) | " + baseline.runs + "/" + baseline.appliedRuns + " | " + canary.runs + "/" + canary.appliedRuns + " |", "| Success | " + Math.round(baseline.successRate * 100) + "% | " + Math.round(canary.successRate * 100) + "% |", "| Verify quality | " + (baseline.avgQuality ?? "n/a") + " | " + (canary.avgQuality ?? "n/a") + " |", "| p95 duration | " + baseline.p95LatencyMs + "ms | " + canary.p95LatencyMs + "ms |", "| Avg tokens | " + baseline.avgTokens + " | " + canary.avgTokens + " |", "| Fallback | " + Math.round(baseline.fallbackRate * 100) + "% | " + Math.round(canary.fallbackRate * 100) + "% |", "| Damage | " + Math.round(baseline.damageRate * 100) + "% | " + Math.round(canary.damageRate * 100) + "% |", "| Damage observed | " + Math.round(baseline.damageCoverage * 100) + "% | " + Math.round(canary.damageCoverage * 100) + "% |", "");
420
426
  for (const reason of report.canary.reasons)
421
427
  lines.push("- " + reason);
422
428
  const failureText = Object.entries(report.failures).map(([kind, count]) => kind + "=" + count).join(", ");
@@ -491,6 +497,27 @@ function damageReportsFile() {
491
497
  // src/utils/cache.ts
492
498
  import fs2 from "fs";
493
499
 
500
+ // src/utils/lru.ts
501
+ function lruGet(m, key) {
502
+ if (!m.has(key))
503
+ return;
504
+ const v = m.get(key);
505
+ m.delete(key);
506
+ m.set(key, v);
507
+ return v;
508
+ }
509
+ function lruSet(m, key, value, max) {
510
+ if (m.has(key))
511
+ m.delete(key);
512
+ m.set(key, value);
513
+ while (m.size > max) {
514
+ const oldest = m.keys().next().value;
515
+ if (oldest === undefined)
516
+ break;
517
+ m.delete(oldest);
518
+ }
519
+ }
520
+
494
521
  // src/utils/tokens.ts
495
522
  class TokenCalibrationStore {
496
523
  maxEntries;
@@ -505,35 +532,19 @@ class TokenCalibrationStore {
505
532
  if (!provider)
506
533
  return 1;
507
534
  const exactKey = calibrationKey(provider, model);
508
- const exact = this.factors.get(exactKey);
509
- if (exact !== undefined) {
510
- this.factors.delete(exactKey);
511
- this.factors.set(exactKey, exact);
535
+ const exact = lruGet(this.factors, exactKey);
536
+ if (exact !== undefined)
512
537
  return exact;
513
- }
514
- const providerKey = calibrationKey(provider);
515
- const fallback = this.factors.get(providerKey);
516
- if (fallback !== undefined) {
517
- this.factors.delete(providerKey);
518
- this.factors.set(providerKey, fallback);
519
- }
520
- return fallback ?? 1;
538
+ return lruGet(this.factors, calibrationKey(provider)) ?? 1;
521
539
  }
522
540
  calibrate(estimated, actual, provider, model) {
523
541
  if (actual <= 0 || estimated <= 0 || !provider)
524
542
  return;
525
543
  const key = calibrationKey(provider, model);
526
- const prev = this.factors.get(key) ?? 1;
544
+ const prev = lruGet(this.factors, key) ?? 1;
527
545
  const target = prev * actual / estimated;
528
546
  const clamped = Math.max(TUNING.CALIBRATION_CLAMP_MIN, Math.min(TUNING.CALIBRATION_CLAMP_MAX, target));
529
- this.factors.delete(key);
530
- this.factors.set(key, prev * TUNING.EMA_PREV + clamped * TUNING.EMA_SAMPLE);
531
- while (this.factors.size > Math.max(1, this.maxEntries)) {
532
- const oldest = this.factors.keys().next().value;
533
- if (oldest === undefined)
534
- break;
535
- this.factors.delete(oldest);
536
- }
547
+ lruSet(this.factors, key, prev * TUNING.EMA_PREV + clamped * TUNING.EMA_SAMPLE, Math.max(1, this.maxEntries));
537
548
  }
538
549
  size() {
539
550
  return this.factors.size;
@@ -621,6 +632,92 @@ function extractFileRefs(summary) {
621
632
  return candidates.filter(isLikelyFileRef);
622
633
  }
623
634
 
635
+ // src/domain/summary-schema.ts
636
+ function classifyHeading(raw) {
637
+ const text = raw.replace(/^#+\s*/, "").replace(/[:\s]+$/, "").trim().toLowerCase();
638
+ if (!text)
639
+ return "unknown";
640
+ if (text === "goal" || text === "goals" || text === "objective" || text === "objectives")
641
+ return "goal";
642
+ if (text.startsWith("constraint") || text.includes("preference"))
643
+ return "constraints";
644
+ if (text === "progress" || text === "status")
645
+ return "progress";
646
+ if (text.includes("key decision") || text === "decisions")
647
+ return "decisions";
648
+ if (text.includes("file") && text.includes("modif"))
649
+ return "files-modified";
650
+ if (text.includes("file") && (text.includes("read") || text.includes("viewed")))
651
+ return "files-read";
652
+ if (text.includes("next step") || text === "next actions")
653
+ return "next-steps";
654
+ if (text.includes("critical context") || text === "important context")
655
+ return "critical-context";
656
+ if (text === "topics" || text.includes("topics covered"))
657
+ return "topics";
658
+ if (text.includes("open loop") || text.includes("unresolved"))
659
+ return "open-loops";
660
+ if (text.includes("changes since") || text === "changes")
661
+ return "changes";
662
+ if (text.includes("verification"))
663
+ return "verification-note";
664
+ return "unknown";
665
+ }
666
+
667
+ // src/domain/summary-parse.ts
668
+ var HEADING_RE = /^(#{1,3})\s+(.+?)\s*$/;
669
+ function summaryEvidenceLine(value, maxLength) {
670
+ return value.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g, " ").replace(/\s+/g, " ").trim().replace(/^(?:(?:#{1,6}|[-*+]|>)\s+)+/, "").slice(0, maxLength).trim();
671
+ }
672
+ function mergeBodies(first, second) {
673
+ const seen = new Set;
674
+ return [first, second].filter(Boolean).flatMap((body) => body.split(`
675
+ `)).filter((line) => seen.has(line) ? false : (seen.add(line), true)).join(`
676
+ `).trim();
677
+ }
678
+ function parseSummary(markdown) {
679
+ const sections = [];
680
+ const lines = markdown.split(`
681
+ `);
682
+ let currentHeading = "";
683
+ let currentKind = "unknown";
684
+ let bodyLines = [];
685
+ let started = false;
686
+ const flush = () => {
687
+ if (!started)
688
+ return;
689
+ const body = bodyLines.join(`
690
+ `).trim();
691
+ const existing = currentKind === "unknown" ? undefined : sections.find((s) => s.kind === currentKind);
692
+ if (existing)
693
+ existing.body = mergeBodies(existing.body, body);
694
+ else
695
+ sections.push({ kind: currentKind, heading: currentHeading.trim(), body });
696
+ };
697
+ for (const line of lines) {
698
+ const m = line.match(HEADING_RE);
699
+ if (m) {
700
+ const kind = classifyHeading(m[2]);
701
+ if (m[1].length <= 2 || kind !== "unknown") {
702
+ flush();
703
+ currentHeading = "## " + m[2].trim();
704
+ currentKind = kind;
705
+ bodyLines = [];
706
+ started = true;
707
+ continue;
708
+ }
709
+ }
710
+ if (started)
711
+ bodyLines.push(line);
712
+ }
713
+ flush();
714
+ return { sections };
715
+ }
716
+ function findSection(summary, kind) {
717
+ const parsed = typeof summary === "string" ? parseSummary(summary) : summary;
718
+ return parsed.sections.find((s) => s.kind === kind);
719
+ }
720
+
624
721
  // src/utils/extraction.ts
625
722
  var CONSTRAINT_PATTERNS = [
626
723
  { re: /\b(?:must|need|require|has to|important)\b.*\b(?:be|use|have|include|support)\b/i, cat: "requirement", conf: TUNING.CONFIDENCE_HIGH },
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-insights.d.ts","sourceRoot":"","sources":["../../src/ui/dashboard-insights.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,KAAK,EAAE,mBAAmB,EAAuB,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGtH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,EAAE,uBAAuB,CAAC;IACjC,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;CACzD;AAiBD,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,GAAG,SAAa,GACf,uBAAuB,CA0CzB;AA4FD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAgB5E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAQ9E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAkB3E;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,aAAa,GAAE,SAAS,oBAAoB,EAAO,EACnD,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACvE,iBAAiB,CAqBnB"}
1
+ {"version":3,"file":"dashboard-insights.d.ts","sourceRoot":"","sources":["../../src/ui/dashboard-insights.ts"],"names":[],"mappings":"AACA,OAAO,EAAwC,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAChI,OAAO,KAAK,EAAE,mBAAmB,EAAuB,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGtH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,EAAE,uBAAuB,CAAC;IACjC,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;CACzD;AAiBD,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,GAAG,SAAa,GACf,uBAAuB,CA0CzB;AA4FD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAgB5E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAQ9E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAkB3E;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,aAAa,GAAE,SAAS,oBAAoB,EAAO,EACnD,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACvE,iBAAiB,CAiBnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"overlays.d.ts","sourceRoot":"","sources":["../../src/ui/overlays.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlays.d.ts","sourceRoot":"","sources":["../../src/ui/overlays.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export interface FlatToolCall {
17
17
  id?: string;
18
18
  arguments: Record<string, unknown>;
19
19
  }
20
+ /** Identity contract shared by extraction and pruning for nested parallel calls. */
21
+ export declare function nestedToolCallId(wrapperId: string | undefined, messageIndex: number, toolIndex: number, nestedId?: unknown): string;
20
22
  /**
21
23
  * Flatten a single assistant content block into one or more tool-call descriptors.
22
24
  * Transparently expands `multi_tool_use.parallel` wrappers into their nested tool_uses.
@@ -42,12 +44,15 @@ export declare function trackFileOps(msgs: LlmMessage[], _tcIdx?: ToolCallIndex)
42
44
  read: string[];
43
45
  deleted: string[];
44
46
  };
47
+ export declare function isTransientToolDiagnostic(text: string): boolean;
45
48
  export declare function catalogErrors(msgs: LlmMessage[], _tcIdx?: ToolCallIndex): StructuredExtraction["errors"];
46
49
  export declare function extractDecisions(msgs: LlmMessage[], _tcIdx?: ToolCallIndex): StructuredExtraction["decisions"];
47
50
  export declare function isDiagnosticConstraintText(text: string): boolean;
48
51
  export declare function mineConstraints(msgs: LlmMessage[]): StructuredExtraction["constraints"];
49
52
  export declare function segmentTopicsHeuristic(msgs: LlmMessage[], pc: ProfileConfig, maxSegs?: number, _tcIdx?: ToolCallIndex): StructuredExtraction["topics"];
50
53
  export declare function buildTimeline(msgs: LlmMessage[], errors: StructuredExtraction["errors"]): StructuredExtraction["timeline"];
54
+ /** Machine status from an earlier compaction is context, not an active user goal. */
55
+ export declare function isCompactionStatusText(text: string): boolean;
51
56
  export declare function extractMainGoal(msgs: LlmMessage[]): string | null;
52
57
  /** Extract open loops — unresolved tasks from the conversation */
53
58
  export declare function extractOpenLoops(msgs: LlmMessage[], extraction: StructuredExtraction): OpenLoop[];
@@ -1 +1 @@
1
- {"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/utils/extraction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAQ9G,iFAAiF;AACjF,eAAO,MAAM,WAAW,QAAW,CAAC;AAEpC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAErD;AAMD,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhH,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,EAAE,CAa/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAQpD;AAWD,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAoB7E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,aAAa,CAyBpE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG;IAAE,QAAQ,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAqC/J;AAoBD,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAmDxG;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAyB9G;AAeD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAyBvF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,SAAK,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CA+ClJ;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAoB1H;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI,CAOjE;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,oBAAoB,GAAG,QAAQ,EAAE,CA0GjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAmB/H"}
1
+ {"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/utils/extraction.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export declare function findGitRoot(cwd: string): string | null;
31
31
  * Using cwd/git-root as primary prevents cross-project fingerprint contamination
32
32
  * when a session has no file operations (review, discussion, debugging).
33
33
  */
34
- export declare function deriveProjectIdFromCwd(cwd: string): string;
34
+ export declare function deriveProjectIdFromCwd(cwd: string): string | null;
35
35
  export declare function deriveProjectId(cwd: string, extraction: StructuredExtraction, sessionId?: string): string;
36
36
  /**
37
37
  * Load project fingerprint from cache.
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../../src/utils/fingerprint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAOxD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAqDD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtD;AAkED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CA+BzG;AAoDD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAKnF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,oBAAoB,GAC/B,IAAI,CAuBN;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,GAAG,MAAM,CAQlF"}
1
+ {"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../../src/utils/fingerprint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAOxD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAqDD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtD;AAkED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMjE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CA+BzG;AAoDD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAKnF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,oBAAoB,GAC/B,IAAI,CAkCN;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,GAAG,MAAM,CAQlF"}
@@ -1 +1 @@
1
- {"version":3,"file":"pruning.d.ts","sourceRoot":"","sources":["../../src/utils/pruning.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGtF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAmBD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,gBAAgB,CAAC,EAAE,aAAa,GAAG,aAAa,CAkNlG"}
1
+ {"version":3,"file":"pruning.d.ts","sourceRoot":"","sources":["../../src/utils/pruning.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAqD,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGxG,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAmBD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,gBAAgB,CAAC,EAAE,aAAa,GAAG,aAAa,CAgNlG"}
@@ -24,10 +24,11 @@ export declare function upsertContinuityOverride(overrides: ContinuityOverride[]
24
24
  export declare function applyContinuityOverrides(state: CompactionState, overrides: ContinuityOverride[]): CompactionState;
25
25
  export declare function buildCompactionState(extraction: StructuredExtraction, openLoops: OpenLoop[], report: ExplorationReport | null, nextActions: string[], criticalContext: string[], loopOverrides?: LoopOverride[]): CompactionState;
26
26
  /**
27
- * Conservative cross-compaction merge: absence from the latest active window
28
- * is not evidence that a decision, constraint, error, or loop was resolved.
27
+ * Conservative cross-compaction merge: neither absence nor free-form goal text
28
+ * is evidence that a decision, constraint, error, or loop was resolved.
29
29
  * Current facts win, old unresolved facts remain, and every collection is
30
- * bounded so continuity cannot grow without limit.
30
+ * bounded so continuity cannot grow without limit. Goal shifts are recorded as
31
+ * context; only positive resolution evidence or an explicit override retires a fact.
31
32
  */
32
33
  export declare function mergeCompactionStates(previous: CompactionState | null, current: CompactionState): CompactionState;
33
34
  /** Build the bounded, deterministic context that must survive every generation. */
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/utils/tokens.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAiGpE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAQtE;AAED;;;;;GAKG;AACH,qBAAa,qBAAqB;IAGpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,YAA6B,UAAU,SAAM,EAAI;IAEjD,KAAK,IAAI,IAAI,CAA0B;IAEvC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB7C;IAED,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAgBpF;IAED,IAAI,IAAI,MAAM,CAA8B;CAC7C;AAQD,mEAAmE;AACnE,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAmCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,wBAAuB,GAAG,MAAM,CAE1H;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,wBAAuB,GAAG,IAAI,CAEpJ;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;IACvG,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;CACzH;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,GAAE,qBAA4C,GACxD,cAAc,CAehB"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/utils/tokens.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAkGpE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAQtE;AAED;;;;;GAKG;AACH,qBAAa,qBAAqB;IAGpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,YAA6B,UAAU,SAAM,EAAI;IAEjD,KAAK,IAAI,IAAI,CAA0B;IAEvC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ7C;IAED,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAUpF;IAED,IAAI,IAAI,MAAM,CAA8B;CAC7C;AAQD,mEAAmE;AACnE,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAmCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,wBAAuB,GAAG,MAAM,CAE1H;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,wBAAuB,GAAG,IAAI,CAEpJ;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;IACvG,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;CACzH;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,GAAE,qBAA4C,GACxD,cAAc,CAehB"}
@@ -1,6 +1,6 @@
1
1
  # Migrating from v7 to v8
2
2
 
3
- This guide applies to the stable `8.0.6` release.
3
+ This guide applies to the stable `8.0.7` release.
4
4
 
5
5
  ## Compatibility
6
6
 
@@ -34,10 +34,18 @@ the sanitized state. v8.0.3 keeps the same graph file and transparently opens it
34
34
  with `node:sqlite` under Pi or `bun:sqlite` in Bun tooling. v8.0.4 changes only
35
35
  compaction planning, UX, and privacy-safe operational metrics; v8.0.5 bounds
36
36
  user-facing failure diagnostics; v8.0.6 streamlines the three-mode decision card
37
- and live progress brief. None requires a state or database migration.
38
-
39
- Facts remain conservative: absence from a new window is not deletion. A fact is
40
- removed only by an explicit resolved/superseded override.
37
+ and live progress brief. v8.0.7 reserves post-summary planning headroom,
38
+ sanitizes known transient diagnostics, bounds active continuity before resolved
39
+ history, and introduces branch-occurrence context-graph schema v1. On first graph
40
+ open, user-confirmed manual memories remain; older derived compaction nodes are
41
+ reset and repopulate from later apply-confirmed compactions.
42
+
43
+ Facts remain conservative across follow-ups and free-form goal changes: bounded
44
+ absence or new wording is never resolution. Goal shifts are retained as
45
+ `Previous goal` context; errors and loops retire only through positive resolution
46
+ evidence or an explicit override. Newer successful file access/mutation/delete
47
+ evidence still resolves contradictory file status. State and graph resolution use
48
+ the complete host-visible branch ancestry, not a truncated lineage or siblings.
41
49
 
42
50
  ### Persistent context graph
43
51
 
@@ -47,11 +55,14 @@ Applied, verified compactions are indexed into:
47
55
  ~/.pi/agent/.cache/smart-compact/context-graph.sqlite
48
56
  ```
49
57
 
50
- The database is local, project-partitioned, mode `0600` where supported, and
51
- bounded to 2,000 non-structural fact nodes per project. Apply-confirmed state is
52
- queued for the next event-loop turn so SQLite indexing is not part of the
53
- native compaction hook's latency. It enables
54
- `smart_recall` and confirmation-gated `smart_save_memory`. Set
58
+ The database is local, project-partitioned, mode `0600`, and bounded to 2,000
59
+ non-structural fact nodes per project. Private artifact directories are 0700 and
60
+ files are 0600. Apply-confirmed state is queued for the next event-loop turn so
61
+ SQLite indexing is not part of the native compaction hook's latency. It enables
62
+ `smart_recall` and confirmation-gated `smart_save_memory`. Memory writes fail
63
+ closed when the working directory is exactly `HOME` or the filesystem root; the
64
+ interactive prompt shows the complete scrubbed memory and paths. A project may
65
+ hold at most 500 active manual memories. Set
55
66
  `contextGraphEnabled` to `false` before first use to disable indexing and both
56
67
  tools. Disabling does not delete an existing database.
57
68
 
@@ -66,7 +77,9 @@ Consequently Data Confidence may start below 85 and rise as complete v8 runs
66
77
  replace legacy evidence.
67
78
 
68
79
  `telemetryChannel` defaults to `stable`. Use `canary` only on an externally
69
- selected canary installation; the extension reports Hold/Rollback/Promote but
80
+ selected canary installation. Reports show total/applied runs, and only non-dry,
81
+ host-confirmed applied outcomes count toward promotion; deterministic green
82
+ checks do not imply `PROMOTE`. The extension reports Hold/Rollback/Promote but
70
83
  never deploys, edits configuration, or rolls itself back.
71
84
 
72
85
  ## New optional settings
@@ -85,10 +98,14 @@ All defaults preserve the selected model and require no migration edits.
85
98
 
86
99
  See the README configuration table for budgets and monitoring options.
87
100
 
88
- ## Recommended rollout
101
+ ## Backups and rollout
102
+
103
+ v8.0.7 backs up the complete selected pre-prune conversation after configured
104
+ scrubbing, using 0600 files in a 0700 directory. Retention only prunes
105
+ marker-owned backups.
89
106
 
90
107
  1. Back up `~/.pi/agent/settings.json` and the Smart Compact cache directory.
91
- 2. Install the exact stable version: `pi install npm:pi-smart-compact@8.0.6`.
108
+ 2. Install the exact stable version: `pi install npm:pi-smart-compact@8.0.7`.
92
109
  3. Leave all model routes null initially.
93
110
  4. Keep `telemetryChannel: "stable"` unless intentionally running a separate
94
111
  canary cohort.
package/docs/RELEASE.md CHANGED
@@ -26,10 +26,11 @@ bun install --frozen-lockfile
26
26
  bun run release:check
27
27
  ```
28
28
 
29
- `release:check` performs source + script typechecking, all tests, the adversarial
30
- EESV gate, the multi-entry build, package allowlist/denylist checks, a packed
31
- manifest/version/peer audit, an isolated install, a second frozen-lockfile
32
- install, extension/tool registration smoke, and packaged CLI smoke tests.
29
+ `release:check` runs the expanded CI chain: source and scripts typechecking,
30
+ all tests, the adversarial gate, build, and release audit. The audit verifies the
31
+ packed manifest/version/peers, supported SECURITY major, package contents,
32
+ isolated and frozen installs, extension/tool registration, Node SQLite, and
33
+ packaged CLIs.
33
34
 
34
35
  Then validate the host boundary in an isolated workspace:
35
36
 
@@ -52,8 +53,8 @@ bun run telemetry-report --min-canary-runs=20
52
53
 
53
54
  Check that:
54
55
 
55
- - [ ] packed files are limited to `dist`, `docs`, README/license/support files,
56
- and package metadata;
56
+ - [ ] packed files are limited to `dist`, `docs`, README, LICENSE, CHANGELOG,
57
+ SECURITY, SUPPORT, ARCHITECTURE, and package metadata;
57
58
  - [ ] `dist/index.js`, declarations, and all three bundled CLIs are present;
58
59
  - [ ] the extension registers `smart_compact`, `smart_recall`, and
59
60
  `smart_save_memory` from the packed install;
@@ -74,10 +75,12 @@ After explicit approval to publish an RC, use the npm `next` tag rather than
74
75
  ```
75
76
 
76
77
  Keep all stage model routes null unless a separate routing decision is approved.
77
- Collect at least 20 schema-v2 canary runs, ≥70% verifier-quality coverage, and
78
- ≥70% run-correlated damage-observation coverage in both stable and canary
79
- cohorts. Missing observations are missing evidence, never clean runs.
80
- Promotion requires:
78
+ Collect at least 20 non-dry, host-confirmed **applied** schema-v2 canary runs,
79
+ ≥70% verifier-quality coverage, and ≥70% run-correlated damage-observation
80
+ coverage in both stable and canary cohorts. Inspect the report's total/applied
81
+ counts: dry runs and staged-but-unapplied runs are not promotion evidence.
82
+ Missing observations are missing evidence, never clean runs. A deterministic
83
+ green release check never implies `PROMOTE`. Promotion requires:
81
84
 
82
85
  - [ ] `telemetry-report` says `PROMOTE`;
83
86
  - [ ] dashboard Data Confidence is ≥85;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-smart-compact",
3
- "version": "8.0.6",
3
+ "version": "8.0.7",
4
4
  "description": "Verification-oriented smart compaction extension for Pi Coding Agent — deterministic extraction, exploration, synthesis, verification, metrics, and safety checks.",
5
5
  "packageManager": "bun@1.3.14",
6
6
  "engines": {
@@ -40,6 +40,7 @@
40
40
  "dist",
41
41
  "docs",
42
42
  "README.md",
43
+ "ARCHITECTURE.md",
43
44
  "LICENSE",
44
45
  "CHANGELOG.md",
45
46
  "SECURITY.md",
@@ -1,8 +0,0 @@
1
- /**
2
- * Thin re-export shim that lets `app/steps/synthesize.ts` reach the
3
- * exploration phase without importing through a deep path. Keeping the
4
- * indirection here means callers don't need to know whether the
5
- * implementation lives under `phases/` or some future `app/explore`.
6
- */
7
- export { exploreConversation, shouldExplore } from "../phases/explore.ts";
8
- //# sourceMappingURL=explore-wrap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"explore-wrap.d.ts","sourceRoot":"","sources":["../../src/app/explore-wrap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}