pi-smart-compact 9.7.0 → 10.0.0

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 (211) hide show
  1. package/ARCHITECTURE.md +979 -372
  2. package/CHANGELOG.md +720 -0
  3. package/LICENSE +8 -0
  4. package/README.md +130 -640
  5. package/SECURITY.md +34 -12
  6. package/SUPPORT.md +26 -9
  7. package/assets/DejaVu-LICENSE.txt +187 -0
  8. package/assets/DejaVuSansMono.ttf +0 -0
  9. package/assets/README.md +26 -0
  10. package/assets/skills/context-management/SKILL.md +34 -0
  11. package/dist/app/anchor-cache.d.ts +36 -0
  12. package/dist/app/anchor-cache.d.ts.map +1 -0
  13. package/dist/app/artifact-storage.d.ts +47 -0
  14. package/dist/app/artifact-storage.d.ts.map +1 -0
  15. package/dist/app/background-preparation.d.ts +39 -0
  16. package/dist/app/background-preparation.d.ts.map +1 -0
  17. package/dist/app/compaction-commit-store.d.ts +5 -1
  18. package/dist/app/compaction-commit-store.d.ts.map +1 -1
  19. package/dist/app/context-evidence.d.ts +57 -0
  20. package/dist/app/context-evidence.d.ts.map +1 -0
  21. package/dist/app/context-guide.d.ts +3 -0
  22. package/dist/app/context-guide.d.ts.map +1 -0
  23. package/dist/app/context-operations.d.ts +106 -0
  24. package/dist/app/context-operations.d.ts.map +1 -0
  25. package/dist/app/effective-state.d.ts +23 -0
  26. package/dist/app/effective-state.d.ts.map +1 -0
  27. package/dist/app/extension-conflicts.d.ts +15 -0
  28. package/dist/app/extension-conflicts.d.ts.map +1 -0
  29. package/dist/app/global-settings-runtime.d.ts +3 -3
  30. package/dist/app/global-settings-runtime.d.ts.map +1 -1
  31. package/dist/app/hindsight-memory.d.ts +100 -0
  32. package/dist/app/hindsight-memory.d.ts.map +1 -0
  33. package/dist/app/host-cache-ledger.d.ts +68 -0
  34. package/dist/app/host-cache-ledger.d.ts.map +1 -0
  35. package/dist/app/lazy-tools.d.ts +36 -0
  36. package/dist/app/lazy-tools.d.ts.map +1 -0
  37. package/dist/app/memory-backend.d.ts +58 -0
  38. package/dist/app/memory-backend.d.ts.map +1 -0
  39. package/dist/app/mnemopi-memory.d.ts +13 -0
  40. package/dist/app/mnemopi-memory.d.ts.map +1 -0
  41. package/dist/app/mnemopi-protocol.d.ts +78 -0
  42. package/dist/app/mnemopi-protocol.d.ts.map +1 -0
  43. package/dist/app/mnemopi-worker.d.ts +2 -0
  44. package/dist/app/mnemopi-worker.d.ts.map +1 -0
  45. package/dist/app/model-feasibility.d.ts +20 -0
  46. package/dist/app/model-feasibility.d.ts.map +1 -0
  47. package/dist/app/native-compaction.d.ts +88 -0
  48. package/dist/app/native-compaction.d.ts.map +1 -0
  49. package/dist/app/native-continuity-bridge.d.ts.map +1 -1
  50. package/dist/app/navigation-data.d.ts +28 -0
  51. package/dist/app/navigation-data.d.ts.map +1 -0
  52. package/dist/app/navigation-types.d.ts +60 -0
  53. package/dist/app/navigation-types.d.ts.map +1 -0
  54. package/dist/app/pending-slot.d.ts +11 -1
  55. package/dist/app/pending-slot.d.ts.map +1 -1
  56. package/dist/app/preflight.d.ts.map +1 -1
  57. package/dist/app/register-context-tools.d.ts +16 -3
  58. package/dist/app/register-context-tools.d.ts.map +1 -1
  59. package/dist/app/register-navigation.d.ts +20 -0
  60. package/dist/app/register-navigation.d.ts.map +1 -0
  61. package/dist/app/register-smart-compact-command.d.ts +17 -2
  62. package/dist/app/register-smart-compact-command.d.ts.map +1 -1
  63. package/dist/app/register-smart-compact-tool.d.ts.map +1 -1
  64. package/dist/app/register-smart-context-tool.d.ts +55 -0
  65. package/dist/app/register-smart-context-tool.d.ts.map +1 -0
  66. package/dist/app/run-context.d.ts +4 -1
  67. package/dist/app/run-context.d.ts.map +1 -1
  68. package/dist/app/run-smart-compact.d.ts +3 -3
  69. package/dist/app/run-smart-compact.d.ts.map +1 -1
  70. package/dist/app/session-handoff.d.ts +64 -0
  71. package/dist/app/session-handoff.d.ts.map +1 -0
  72. package/dist/app/session-lineage.d.ts +17 -0
  73. package/dist/app/session-lineage.d.ts.map +1 -0
  74. package/dist/app/session-run-lock.d.ts +0 -2
  75. package/dist/app/session-run-lock.d.ts.map +1 -1
  76. package/dist/app/settled-auto-trigger.d.ts +2 -0
  77. package/dist/app/settled-auto-trigger.d.ts.map +1 -1
  78. package/dist/app/smart-compact-input.d.ts +1 -1
  79. package/dist/app/smart-compact-input.d.ts.map +1 -1
  80. package/dist/app/smart-compact-policy.d.ts +1 -1
  81. package/dist/app/smart-compact-policy.d.ts.map +1 -1
  82. package/dist/app/steps/extract.d.ts +45 -1
  83. package/dist/app/steps/extract.d.ts.map +1 -1
  84. package/dist/app/steps/metrics.d.ts +1 -0
  85. package/dist/app/steps/metrics.d.ts.map +1 -1
  86. package/dist/app/steps/persist.d.ts.map +1 -1
  87. package/dist/app/steps/prepare.d.ts.map +1 -1
  88. package/dist/app/steps/recover.d.ts +9 -0
  89. package/dist/app/steps/recover.d.ts.map +1 -1
  90. package/dist/app/steps/state.d.ts.map +1 -1
  91. package/dist/app/steps/synthesize.d.ts.map +1 -1
  92. package/dist/app/steps/tier.d.ts.map +1 -1
  93. package/dist/app/steps/verify.d.ts.map +1 -1
  94. package/dist/app/steps/visual.d.ts +4 -0
  95. package/dist/app/steps/visual.d.ts.map +1 -0
  96. package/dist/app/steps/window.d.ts.map +1 -1
  97. package/dist/app/tool-artifacts.d.ts +27 -0
  98. package/dist/app/tool-artifacts.d.ts.map +1 -0
  99. package/dist/app/visual-archive.d.ts +29 -0
  100. package/dist/app/visual-archive.d.ts.map +1 -0
  101. package/dist/constants.d.ts +96 -1
  102. package/dist/constants.d.ts.map +1 -1
  103. package/dist/domain/compaction-usage.d.ts +16 -0
  104. package/dist/domain/compaction-usage.d.ts.map +1 -0
  105. package/dist/domain/model-capacity.d.ts +12 -0
  106. package/dist/domain/model-capacity.d.ts.map +1 -0
  107. package/dist/domain/provider-evaluation.d.ts +7 -0
  108. package/dist/domain/provider-evaluation.d.ts.map +1 -1
  109. package/dist/domain/telemetry.d.ts +43 -2
  110. package/dist/domain/telemetry.d.ts.map +1 -1
  111. package/dist/domain/tool-semantics.d.ts +23 -0
  112. package/dist/domain/tool-semantics.d.ts.map +1 -1
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +17298 -8331
  115. package/dist/infra/ai-messages.d.ts +1 -1
  116. package/dist/infra/ai-messages.d.ts.map +1 -1
  117. package/dist/infra/context-graph.d.ts +38 -7
  118. package/dist/infra/context-graph.d.ts.map +1 -1
  119. package/dist/infra/fs.d.ts.map +1 -1
  120. package/dist/infra/hindsight-client.d.ts +73 -0
  121. package/dist/infra/hindsight-client.d.ts.map +1 -0
  122. package/dist/infra/hindsight-receipts.d.ts +68 -0
  123. package/dist/infra/hindsight-receipts.d.ts.map +1 -0
  124. package/dist/infra/llm-client.d.ts +26 -23
  125. package/dist/infra/llm-client.d.ts.map +1 -1
  126. package/dist/infra/memory-ref.d.ts +27 -0
  127. package/dist/infra/memory-ref.d.ts.map +1 -0
  128. package/dist/infra/native-protocol.d.ts +54 -0
  129. package/dist/infra/native-protocol.d.ts.map +1 -0
  130. package/dist/infra/optional-components.d.ts +15 -0
  131. package/dist/infra/optional-components.d.ts.map +1 -0
  132. package/dist/infra/paths.d.ts +2 -0
  133. package/dist/infra/paths.d.ts.map +1 -1
  134. package/dist/infra/services.d.ts +15 -5
  135. package/dist/infra/services.d.ts.map +1 -1
  136. package/dist/infra/visual-renderer.d.ts +16 -0
  137. package/dist/infra/visual-renderer.d.ts.map +1 -0
  138. package/dist/mnemopi-worker.js +213 -0
  139. package/dist/phases/explore.d.ts +12 -9
  140. package/dist/phases/explore.d.ts.map +1 -1
  141. package/dist/phases/synthesize.d.ts +18 -3
  142. package/dist/phases/synthesize.d.ts.map +1 -1
  143. package/dist/phases/verify.d.ts +20 -2
  144. package/dist/phases/verify.d.ts.map +1 -1
  145. package/dist/rtk.d.ts +7 -0
  146. package/dist/rtk.d.ts.map +1 -0
  147. package/dist/rtk.js +767 -0
  148. package/dist/types.d.ts +128 -4
  149. package/dist/types.d.ts.map +1 -1
  150. package/dist/ui/dashboard-format.d.ts +2 -1
  151. package/dist/ui/dashboard-format.d.ts.map +1 -1
  152. package/dist/ui/dashboard-insights.d.ts +9 -1
  153. package/dist/ui/dashboard-insights.d.ts.map +1 -1
  154. package/dist/ui/error-format.d.ts +7 -2
  155. package/dist/ui/error-format.d.ts.map +1 -1
  156. package/dist/ui/handoff-overlay.d.ts +26 -0
  157. package/dist/ui/handoff-overlay.d.ts.map +1 -0
  158. package/dist/ui/home-overlay.d.ts +54 -0
  159. package/dist/ui/home-overlay.d.ts.map +1 -0
  160. package/dist/ui/metrics-dashboard-overlay.d.ts.map +1 -1
  161. package/dist/ui/metrics-report.d.ts.map +1 -1
  162. package/dist/ui/navigation-overlay.d.ts +92 -0
  163. package/dist/ui/navigation-overlay.d.ts.map +1 -0
  164. package/dist/ui/overlays.d.ts +12 -2
  165. package/dist/ui/overlays.d.ts.map +1 -1
  166. package/dist/ui/profiles.d.ts +51 -0
  167. package/dist/ui/profiles.d.ts.map +1 -0
  168. package/dist/ui/settings-complex.d.ts +49 -3
  169. package/dist/ui/settings-complex.d.ts.map +1 -1
  170. package/dist/ui/settings-list.d.ts +28 -0
  171. package/dist/ui/settings-list.d.ts.map +1 -0
  172. package/dist/ui/settings-overlay.d.ts +13 -6
  173. package/dist/ui/settings-overlay.d.ts.map +1 -1
  174. package/dist/ui/storage-report.d.ts +4 -0
  175. package/dist/ui/storage-report.d.ts.map +1 -0
  176. package/dist/utils/backups.d.ts.map +1 -1
  177. package/dist/utils/cache.d.ts +6 -2
  178. package/dist/utils/cache.d.ts.map +1 -1
  179. package/dist/utils/config.d.ts +12 -0
  180. package/dist/utils/config.d.ts.map +1 -1
  181. package/dist/utils/extraction.d.ts +7 -0
  182. package/dist/utils/extraction.d.ts.map +1 -1
  183. package/dist/utils/helpers.d.ts.map +1 -1
  184. package/dist/utils/id-fingerprint.d.ts +3 -1
  185. package/dist/utils/id-fingerprint.d.ts.map +1 -1
  186. package/dist/utils/issues.d.ts +61 -0
  187. package/dist/utils/issues.d.ts.map +1 -0
  188. package/dist/utils/pruning.d.ts.map +1 -1
  189. package/dist/utils/session-log.d.ts +0 -2
  190. package/dist/utils/session-log.d.ts.map +1 -1
  191. package/dist/utils/state.d.ts +21 -2
  192. package/dist/utils/state.d.ts.map +1 -1
  193. package/dist/utils/tokens.d.ts +10 -2
  194. package/dist/utils/tokens.d.ts.map +1 -1
  195. package/docs/MIGRATING_TO_V8.md +7 -1
  196. package/docs/README.md +69 -0
  197. package/docs/RELEASE.md +174 -56
  198. package/docs/assets/banner.png +0 -0
  199. package/docs/assets/banner.svg +1158 -70
  200. package/docs/assets/pi-smart-compact.png +0 -0
  201. package/docs/assets/pi-smart-compact.svg +24 -0
  202. package/docs/configuration.md +637 -0
  203. package/docs/evaluation.md +409 -0
  204. package/docs/guide.md +879 -0
  205. package/docs/hindsight-memory.md +314 -0
  206. package/docs/identity.md +124 -0
  207. package/package.json +44 -11
  208. package/dist/provider-eval.js +0 -2107
  209. package/dist/provider-scenario-eval.js +0 -2884
  210. package/dist/telemetry-report.js +0 -1958
  211. package/docs/provider-evaluation-2026-08-06.md +0 -63
@@ -2,19 +2,25 @@
2
2
  * TUI overlays: model/profile selection, progress, result screen.
3
3
  */
4
4
  import type { ExtensionCommandContext, ExtensionContext } from "@earendil-works/pi-coding-agent";
5
+ import type { ModelFeasibility } from "../app/model-feasibility.ts";
5
6
  import type { CompactConfig, CompactionMode, ModelOption, ProgressState, SmartCompactDetails, StructuredExtraction } from "../types.ts";
6
7
  import { type SmartCompactServices } from "../infra/services.ts";
7
8
  import { type ManualPreflight } from "../app/preflight.ts";
8
- import type { EffectiveCompactionMode } from "../types.ts";
9
+ import type { CompactionEngine, EffectiveCompactionMode } from "../types.ts";
9
10
  export declare function recommendPreflight(plans: ReadonlyMap<EffectiveCompactionMode, ManualPreflight>): {
10
11
  mode: EffectiveCompactionMode;
11
12
  reason: string;
12
13
  };
13
14
  /** Compact decision copy; technical planner data stays behind D. */
14
- export declare function formatPreflightSummary(preflight: ManualPreflight, modelLabel: string, details?: boolean): string[];
15
+ export declare function formatPreflightSummary(preflight: ManualPreflight, modelLabel: string, details?: boolean, engines?: readonly CompactionEngine[]): string[];
15
16
  export declare function showProgressOverlay(ctx: ExtensionContext, state: ProgressState): void;
16
17
  export declare function clearCompactProgress(ctx: ExtensionContext): void;
18
+ export declare function notifyNativeText(details: SmartCompactDetails): string;
17
19
  export declare function notifyAppliedCompaction(ctx: ExtensionContext, details: SmartCompactDetails, concise: boolean): void;
20
+ /**
21
+ * Review (approval) or completion screen. Outcome, warnings and the full summary
22
+ * are always visible; engine, extraction and pipeline diagnostics sit behind D.
23
+ */
18
24
  export declare function showResultScreen(ctx: ExtensionContext, details: SmartCompactDetails, extraction: StructuredExtraction, services: SmartCompactServices, opts?: {
19
25
  approval?: boolean;
20
26
  summary?: string;
@@ -25,6 +31,10 @@ export declare function showCompactUI(ctx: ExtensionCommandContext, opts: {
25
31
  activeModelLabel: string;
26
32
  defaultModelIndex: number;
27
33
  config: CompactConfig;
34
+ /** Capacity snapshot taken before the picker opens; absent = every model selectable. */
35
+ feasibility?: ModelFeasibility;
36
+ /** Shows local effective state; the picker reopens afterwards. */
37
+ showEffectiveState?: () => Promise<void>;
28
38
  }): Promise<{
29
39
  model: ModelOption;
30
40
  mode: CompactionMode;
@@ -1 +1 @@
1
- {"version":3,"file":"overlays.d.ts","sourceRoot":"","sources":["../../src/ui/overlays.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AAiBzC,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAiN3D,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,CAAC,uBAAuB,EAAE,eAAe,CAAC,GAC3D;IACD,IAAI,EAAE,uBAAuB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB,CAiDA;AA0BD,oEAAoE;AACpE,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,UAAQ,GACd,MAAM,EAAE,CAmEV;AAKD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,aAAa,GACnB,IAAI,CAqCN;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAOhE;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,OAAO,GACf,IAAI,CA8DN;AAGD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAClD,OAAO,CAAC,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,CA+iBxC;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE;IACJ,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;CACvB,GACA,OAAO,CAAC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAAG,IAAI,CAAC,CAkQ9D;AAED,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"overlays.d.ts","sourceRoot":"","sources":["../../src/ui/overlays.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACX,uBAAuB,EACvB,gBAAgB,EAChB,MAAM,iCAAiC,CAAC;AAgBzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEN,KAAK,oBAAoB,EACzB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAIN,KAAK,eAAe,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AA6K7E,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,WAAW,CAAC,uBAAuB,EAAE,eAAe,CAAC,GAC1D;IACF,IAAI,EAAE,uBAAuB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CACf,CAiDA;AA0BD,oEAAoE;AACpE,wBAAgB,sBAAsB,CACrC,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,UAAQ,EACf,OAAO,GAAE,SAAS,gBAAgB,EAAa,GAC7C,MAAM,EAAE,CA+BV;AAKD,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,aAAa,GAClB,IAAI,CAiCN;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAMhE;AAKD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAkBrE;AAED,wBAAgB,uBAAuB,CACtC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,OAAO,GACd,IAAI,CAkEN;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAgVxC;AAOD,wBAAsB,aAAa,CAClC,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE;IACL,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,wFAAwF;IACxF,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,GACC,OAAO,CAAC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAAG,IAAI,CAAC,CA+S9D;AAED,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Task-level profiles derived from existing global settings. Nothing new is
3
+ * stored: a profile is recognised from its flags and applied as one atomic
4
+ * patch of those flags. `undefined` in a patch means "reset to the built-in
5
+ * default". Any other flag combination is "custom" and is never overwritten
6
+ * implicitly.
7
+ */
8
+ import type { Api, Model } from "@earendil-works/pi-ai";
9
+ import type { CompactConfig } from "../types.ts";
10
+ import type { GlobalConfigPath, GlobalConfigValue } from "../utils/config.ts";
11
+ export type ConfigPatch = Partial<Record<GlobalConfigPath, GlobalConfigValue>>;
12
+ export interface ProfileOption<Id extends string> {
13
+ id: Id;
14
+ label: string;
15
+ /** What the user gets and what it costs, without promising more than the code does. */
16
+ summary: string;
17
+ patch: ConfigPatch;
18
+ }
19
+ export interface DerivedProfile<Id extends string> {
20
+ /** The matching profile, or "custom" when the flags match none. */
21
+ id: Id | "custom";
22
+ /** Short name that fits a narrow value column. */
23
+ label: string;
24
+ /** One plain sentence on what the current flags do; set for defaults and custom states. */
25
+ detail?: string;
26
+ }
27
+ export type BehaviorProfileId = "manual" | "agent" | "cleanup" | "automatic";
28
+ export declare const BEHAVIOR_PROFILES: readonly ProfileOption<BehaviorProfileId>[];
29
+ type BehaviorFlags = Pick<CompactConfig, "autoTrigger" | "autoTriggerStrategy" | "contextHygieneEnabled" | "agentToolAccess">;
30
+ export declare function deriveBehaviorProfile(config: BehaviorFlags): DerivedProfile<BehaviorProfileId>;
31
+ export type OutputProfileId = "verified" | "visual" | "native";
32
+ export declare const OUTPUT_PROFILES: readonly ProfileOption<OutputProfileId>[];
33
+ type OutputFlags = Pick<CompactConfig, "compactionEngines" | "visualArchiveEnabled">;
34
+ export declare function deriveOutputProfile(config: OutputFlags): DerivedProfile<OutputProfileId>;
35
+ /**
36
+ * Why an output profile has no effect for the current chat model, or undefined
37
+ * when it can apply. Visual and native depend on the model that reads the
38
+ * compacted context, not on the summary route.
39
+ */
40
+ export declare function outputProfileLimit(id: OutputProfileId, chatModel: Pick<Model<Api>, "provider" | "id" | "api" | "input"> | undefined): string | undefined;
41
+ export type ModelProfileId = "chat" | "summary";
42
+ type ModelFlags = Pick<CompactConfig, "summaryModel" | "segmentationModel" | "verificationModel">;
43
+ /**
44
+ * chat: every stage uses the chat model. summary: one chosen model for the
45
+ * summary; segmentation and verification inherit it. Anything else is a
46
+ * per-stage override.
47
+ */
48
+ export declare function deriveModelProfile(config: ModelFlags): DerivedProfile<ModelProfileId>;
49
+ export declare function modelProfilePatch(id: ModelProfileId, summaryModel?: string): ConfigPatch;
50
+ export {};
51
+ //# sourceMappingURL=profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/ui/profiles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI9E,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAE/E,MAAM,WAAW,aAAa,CAAC,EAAE,SAAS,MAAM;IAC9C,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,cAAc,CAAC,EAAE,SAAS,MAAM;IAC/C,mEAAmE;IACnE,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC;IAClB,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAaD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAE7E,eAAO,MAAM,iBAAiB,EAAE,SAAS,aAAa,CAAC,iBAAiB,CAAC,EAyBxE,CAAC;AAEF,KAAK,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,iBAAiB,CAAC,CAAC;AAc9H,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAyB9F;AAID,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/D,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,CAAC,eAAe,CAAC,EAsBpE,CAAC;AAEF,KAAK,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,sBAAsB,CAAC,CAAC;AAOrF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC,CAiBxF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,eAAe,EACnB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,GAAG,SAAS,GAC3E,MAAM,GAAG,SAAS,CAUpB;AAID,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhD,KAAK,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,mBAAmB,GAAG,mBAAmB,CAAC,CAAC;AAElG;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,cAAc,CAAC,CAOrF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAOxF"}
@@ -1,9 +1,55 @@
1
1
  import type { ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
2
2
  import { type SettingItem } from "@earendil-works/pi-tui";
3
- import type { CompactConfig } from "../types.ts";
3
+ import type { CompactConfig, CompressionProfile } from "../types.ts";
4
4
  import { type GlobalConfigPath, type GlobalConfigValue } from "../utils/config.ts";
5
+ import { SmartSettingsList } from "./settings-list.ts";
6
+ import type { ModelFeasibility } from "../app/model-feasibility.ts";
5
7
  export type GlobalConfigWriter = (path: GlobalConfigPath, value: GlobalConfigValue) => Promise<CompactConfig>;
6
- export declare function modelSettingsItems(ctx: ExtensionCommandContext, requestRender: () => void, writeConfig?: GlobalConfigWriter): SettingItem[];
7
- export declare function complexSettingsCategories(ctx: ExtensionCommandContext, requestRender: () => void, writeConfig?: GlobalConfigWriter): SettingItem[];
8
+ export interface InputSetting {
9
+ id: GlobalConfigPath;
10
+ label: string;
11
+ description: string;
12
+ placeholder: string;
13
+ parse(input: string): GlobalConfigValue;
14
+ format(value: GlobalConfigValue): string;
15
+ }
16
+ export declare const MODEL_SETTINGS: readonly [{
17
+ readonly id: "summaryModel";
18
+ readonly label: "Summary model";
19
+ readonly description: "Writes the summary. Default: the chat model.";
20
+ }, {
21
+ readonly id: "segmentationModel";
22
+ readonly label: "Topic split model";
23
+ readonly description: "Splits long conversations into topics before summarizing. Default: the summary model.";
24
+ }, {
25
+ readonly id: "verificationModel";
26
+ readonly label: "Check & repair model";
27
+ readonly description: "Fixes gaps the checker finds in a summary. Default: the summary model.";
28
+ }];
29
+ export declare const MIN_CONTEXT_SETTING: InputSetting;
30
+ export declare const MAX_CONTEXT_SETTING: InputSetting;
31
+ export declare const PREPARE_CONTEXT_SETTING: InputSetting;
32
+ export declare const LIMIT_SETTINGS: readonly InputSetting[];
33
+ export declare const HINDSIGHT_SETTINGS: readonly InputSetting[];
34
+ export declare const MNEMOPI_DATA_DIR_SETTING: InputSetting;
35
+ export declare const BACKUP_DIR_SETTING: InputSetting;
36
+ export declare const PIN_PATHS_SETTING: InputSetting;
37
+ export declare function profileSettings(profile: CompressionProfile): InputSetting[];
38
+ /** Row label with the "changed from default" bullet, matching category rows. */
39
+ export declare function inputLabel(setting: InputSetting): string;
40
+ /** Format the stored override the way the input row displays it. */
41
+ export declare function inputDisplay(setting: InputSetting): string;
42
+ export declare function inputEffectiveDescription(setting: InputSetting, config: CompactConfig): string;
43
+ /** One row that opens an inline editor for a validated text/number setting. */
44
+ export declare function inputSettingItem(setting: InputSetting, requestRender: () => void, writeConfig: GlobalConfigWriter, onWritten?: (config: CompactConfig) => void): SettingItem;
45
+ export declare function inputSettingsList(settings: readonly InputSetting[], requestRender: () => void, done: () => void, writeConfig: GlobalConfigWriter, onError: (message: string) => void): SmartSettingsList;
46
+ /** Rows for the three run modes, each opening the six budgets its profile stores. */
47
+ export declare function profileBudgetsList(requestRender: () => void, done: () => void, writeConfig: GlobalConfigWriter, onError: (message: string) => void): SmartSettingsList;
48
+ /** "N changed" or "defaults" for a set of stored paths. */
49
+ export declare function countChangedPaths(ids: readonly GlobalConfigPath[]): string;
50
+ export declare function profileConfigPaths(): GlobalConfigPath[];
51
+ export declare function modelSettingsItems(ctx: ExtensionCommandContext, requestRender: () => void, writeConfig?: GlobalConfigWriter, feasibility?: ModelFeasibility): SettingItem[];
52
+ /** Row that opens the model picker for one model setting. */
53
+ export declare function modelSettingItem(id: (typeof MODEL_SETTINGS)[number]["id"], ctx: ExtensionCommandContext, requestRender: () => void, writeConfig: GlobalConfigWriter, feasibility?: ModelFeasibility): SettingItem;
8
54
  export declare function complexConfigPaths(): GlobalConfigPath[];
9
55
  //# sourceMappingURL=settings-complex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-complex.d.ts","sourceRoot":"","sources":["../../src/ui/settings-complex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,EAQL,KAAK,WAAW,EAGjB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAIvB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,iBAAiB,KACrB,OAAO,CAAC,aAAa,CAAC,CAAC;AAwZ5B,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,uBAAuB,EAC5B,aAAa,EAAE,MAAM,IAAI,EACzB,WAAW,GAAE,kBAA2C,GACvD,WAAW,EAAE,CAgEf;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,uBAAuB,EAC5B,aAAa,EAAE,MAAM,IAAI,EACzB,WAAW,GAAE,kBAA2C,GACvD,WAAW,EAAE,CAuEf;AAED,wBAAgB,kBAAkB,IAAI,gBAAgB,EAAE,CASvD"}
1
+ {"version":3,"file":"settings-complex.d.ts","sourceRoot":"","sources":["../../src/ui/settings-complex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type SettingItem, SettingsList } from "@earendil-works/pi-tui";
2
+ /** Shown in the value column so inactive rows do not widen the label column. */
3
+ export declare const INACTIVE_PREFIX = "inactive \u00B7 ";
4
+ export declare const CHANGED_MARK = " \u2022";
5
+ export declare class SmartSettingsList extends SettingsList {
6
+ private readonly onReset;
7
+ /** Ids of rows that currently have no effect; kept live by the owner. */
8
+ private readonly inactive;
9
+ /**
10
+ * Called on Enter/Space before the default action; return true to consume
11
+ * it (action rows, rows that are blocked with a visible reason).
12
+ */
13
+ private readonly onActivate?;
14
+ constructor(items: SettingItem[], maxVisible: number, onChange: (id: string, value: string) => void, onCancel: () => void, onReset?: (id: string) => void,
15
+ /** Ids of rows that currently have no effect; kept live by the owner. */
16
+ inactive?: ReadonlySet<string>,
17
+ /**
18
+ * Called on Enter/Space before the default action; return true to consume
19
+ * it (action rows, rows that are blocked with a visible reason).
20
+ */
21
+ onActivate?: ((id: string) => boolean) | undefined);
22
+ /** Keep values readable on narrow screens; display shortening never reaches storage. */
23
+ render(width: number): string[];
24
+ /** Id of the highlighted row, or undefined when the list is empty. */
25
+ selectedId(): string | undefined;
26
+ handleInput(data: string): void;
27
+ }
28
+ //# sourceMappingURL=settings-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-list.d.ts","sourceRoot":"","sources":["../../src/ui/settings-list.ts"],"names":[],"mappings":"AAQA,OAAO,EAEN,KAAK,WAAW,EAChB,YAAY,EAKZ,MAAM,wBAAwB,CAAC;AAEhC,gFAAgF;AAChF,eAAO,MAAM,eAAe,qBAAgB,CAAC;AAC7C,eAAO,MAAM,YAAY,YAAO,CAAC;AAqCjC,qBAAa,iBAAkB,SAAQ,YAAY;IAMjD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAZ7B,YACC,KAAK,EAAE,WAAW,EAAE,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAC7C,QAAQ,EAAE,MAAM,IAAI,EACH,OAAO,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAgB;IAC1D,yEAAyE;IACxD,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAa;IAC1D;;;OAGG;IACc,UAAU,CAAC,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,aAAA,EAGrD;IAED,wFAAwF;IAC/E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA4BvC;IAED,sEAAsE;IACtE,UAAU,IAAI,MAAM,GAAG,SAAS,CAG/B;IAEQ,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAavC;CACD"}
@@ -1,10 +1,11 @@
1
- import { type ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
2
- import { type Component, type Focusable, SettingsList, type SettingItem } from "@earendil-works/pi-tui";
1
+ import type { ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
2
+ import { type Component, type Focusable, type SettingItem } from "@earendil-works/pi-tui";
3
3
  import { type GlobalConfigPath } from "../utils/config.ts";
4
4
  import type { CompactConfig } from "../types.ts";
5
5
  import { type GlobalConfigWriter } from "./settings-complex.ts";
6
+ import type { ModelFeasibility } from "../app/model-feasibility.ts";
7
+ import { SmartSettingsList } from "./settings-list.ts";
6
8
  import type { SmartCompactPolicy, SmartCompactPolicySnapshot } from "../app/smart-compact-policy.ts";
7
- type GlobalChoiceGroup = "behavior" | "reasoning" | "safety" | "advanced";
8
9
  type GlobalSettingWriter = typeof updateGlobalChoiceSetting;
9
10
  export type GlobalSettingApplied = (path: GlobalConfigPath, config: CompactConfig) => void | Promise<void>;
10
11
  interface GlobalSettingState {
@@ -25,6 +26,8 @@ export declare class GlobalSettingsCoordinator {
25
26
  settled(): Promise<void>;
26
27
  private emit;
27
28
  }
29
+ export type SettingsCategoryId = "compaction" | "models" | "memory" | "navigation" | "hygiene" | "privacy" | "session" | "advanced";
30
+ type GlobalChoiceGroup = Exclude<SettingsCategoryId, "session">;
28
31
  export declare function globalChoiceSettingsItems(group: GlobalChoiceGroup, config: CompactConfig, coordinator?: GlobalSettingsCoordinator): SettingItem[];
29
32
  export declare function updateGlobalChoiceSetting(group: GlobalChoiceGroup, id: string, display: string): Promise<CompactConfig>;
30
33
  export declare function sessionSettingsItems(policy: SmartCompactPolicy): SettingItem[];
@@ -36,9 +39,13 @@ export declare function updateSessionSetting(policy: SmartCompactPolicy, ctx: Ex
36
39
  policy: SmartCompactPolicySnapshot;
37
40
  error: string;
38
41
  };
39
- export declare function settingsCategoryItems(policy: SmartCompactPolicy, ctx: ExtensionCommandContext, requestRender?: () => void, coordinator?: GlobalSettingsCoordinator, onApplied?: GlobalSettingApplied, writeConfig?: GlobalConfigWriter): SettingItem[];
40
- export declare function createSettingsRoot(policy: SmartCompactPolicy, ctx: ExtensionCommandContext, onCancel: () => void, requestRender?: () => void, coordinator?: GlobalSettingsCoordinator, onApplied?: GlobalSettingApplied, writeConfig?: GlobalConfigWriter): SettingsList;
41
- export declare function createSettingsController(root: SettingsList, display: Component, requestRender: () => void): Component & Focusable;
42
+ export declare function settingsCategoryItems(policy: SmartCompactPolicy, ctx: ExtensionCommandContext, requestRender?: () => void, coordinator?: GlobalSettingsCoordinator, onApplied?: GlobalSettingApplied, writeConfig?: GlobalConfigWriter, feasibility?: ModelFeasibility): SettingItem[];
43
+ export declare function createSettingsRoot(policy: SmartCompactPolicy, ctx: ExtensionCommandContext, onCancel: () => void, requestRender?: () => void, coordinator?: GlobalSettingsCoordinator, onApplied?: GlobalSettingApplied, writeConfig?: GlobalConfigWriter, feasibility?: ModelFeasibility): SmartSettingsList;
44
+ /** One-line summary of settings.json values that were ignored, or null. */
45
+ export declare function invalidSettingsLine(): string | null;
46
+ export declare function createSettingsController(root: SmartSettingsList, display: Component, requestRender: () => void): Component & Focusable;
47
+ /** Persist one global path, then run the live-apply hook with the new config. */
48
+ export declare function appliedConfigWriter(onApplied: GlobalSettingApplied): GlobalConfigWriter;
42
49
  /** Open the unified Smart Compact settings panel. */
43
50
  export declare function showSmartCompactSettings(ctx: ExtensionCommandContext, policy: SmartCompactPolicy, coordinator?: GlobalSettingsCoordinator, onApplied?: GlobalSettingApplied): Promise<void>;
44
51
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"settings-overlay.d.ts","sourceRoot":"","sources":["../../src/ui/settings-overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-overlay.d.ts","sourceRoot":"","sources":["../../src/ui/settings-overlay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ArtifactStorageReport } from "../app/artifact-storage.ts";
2
+ export declare function formatBytes(bytes: number): string;
3
+ export declare function formatStorageReport(report: ArtifactStorageReport, now?: number): string;
4
+ //# sourceMappingURL=storage-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-report.d.ts","sourceRoot":"","sources":["../../src/ui/storage-report.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAuB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAO7F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUjD;AAcD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,SAAa,GAAG,MAAM,CAiD3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"backups.d.ts","sourceRoot":"","sources":["../../src/utils/backups.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAgH9D,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,0BAA0B,GAAG,IAAI,CA4CnC;AAED,kFAAkF;AAClF,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,0BAA0B,GACnC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,KAAK,SAAK,GAAG,WAAW,EAAE,CAiCrD;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,GACX,kBAAkB,GAAG,IAAI,CA0B3B;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE7D;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD,CAWA"}
1
+ {"version":3,"file":"backups.d.ts","sourceRoot":"","sources":["../../src/utils/backups.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAiH9D,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,0BAA0B,GAAG,IAAI,CAgDnC;AAED,kFAAkF;AAClF,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,0BAA0B,GACnC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,KAAK,SAAK,GAAG,WAAW,EAAE,CAiCrD;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,GACX,kBAAkB,GAAG,IAAI,CA0B3B;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE7D;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD,CAWA"}
@@ -13,6 +13,8 @@ import type { Model, Api, AssistantMessage, Context } from "@earendil-works/pi-a
13
13
  import { type SmartCompactServices } from "../infra/services.ts";
14
14
  export declare function recordMetric(m: LLMCallMetric, services: SmartCompactServices): void;
15
15
  export declare function effectivePromptInputTokens(inputTokens: number, cacheHitTokens: number, cacheWriteTokens?: number): number;
16
+ /** Share of the complete wire prompt served from the provider cache, capped at 1. */
17
+ export declare function cacheHitRateOf(inputTokens: number, cacheHitTokens: number, cacheWriteTokens: number): number;
16
18
  export declare function getMetricsSummary(services: SmartCompactServices): {
17
19
  totalCalls: number;
18
20
  totalInput: number;
@@ -48,8 +50,10 @@ export declare function recordExtractionCacheMiss(services: SmartCompactServices
48
50
  * @param keptEntryIds — Ordered entry IDs that survived pruning. This is the
49
51
  * index domain used for safe incremental extraction prefix matching.
50
52
  */
51
- export declare function saveCachedExtraction(sessionId: string, extraction: StructuredExtraction, msgCount: number, firstEntryId?: string, lastEntryId?: string, entryIds?: string[], keptEntryIds?: string[]): void;
52
- export declare function loadCachedExtraction(sessionId: string): CachedExtraction | null;
53
+ export declare function saveCachedExtraction(sessionId: string, extraction: StructuredExtraction, msgCount: number, firstEntryId?: string, lastEntryId?: string, entryIds?: string[], keptEntryIds?: string[], messages?: readonly LlmMessage[]): void;
54
+ export declare function loadCachedExtraction(sessionId: string, options?: {
55
+ readOnly?: boolean;
56
+ }): CachedExtraction | null;
53
57
  export declare function mergeExtractions(base: StructuredExtraction, delta: StructuredExtraction, baseMsgCount: number, deltaMessages?: LlmMessage[], deltaToolCalls?: ToolCallIndex): StructuredExtraction;
54
58
  /** Append a fully materialized payload after an external lifecycle commits. */
55
59
  export declare function appendMetricsSnapshot(sessionId: string, snapshot: Omit<CompactMetricsEntry, "ts" | "sessionId">): Promise<boolean>;
@@ -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":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACX,aAAa,EACb,oBAAoB,EAEpB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAGN,KAAK,aAAa,EAClB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,KAAK,EACX,KAAK,EACL,GAAG,EACH,gBAAgB,EAChB,OAAO,EACP,MAAM,uBAAuB,CAAC;AAiB/B,OAAO,EAEN,KAAK,oBAAoB,EACzB,MAAM,sBAAsB,CAAC;AAmE9B,wBAAgB,YAAY,CAC3B,CAAC,EAAE,aAAa,EAChB,QAAQ,EAAE,oBAAoB,GAC5B,IAAI,CAEN;AAED,wBAAgB,0BAA0B,CACzC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,gBAAgB,SAAI,GAClB,MAAM,CAQR;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAG5G;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,GAAG;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACrB,CASA;AAMD,wBAAsB,eAAe,CACpC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAC7B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,iBAAiB,EACvB,QAAQ,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAgH3B;AAUD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CAChB,CAEA;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAE7E;AACD,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE,oBAAoB,GAC5B,IAAI,CAEN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,QAAQ,CAAC,EAAE,SAAS,UAAU,EAAE,GAC9B,IAAI,CAmBN;AAED,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,gBAAgB,GAAG,IAAI,CASzB;AAuJD,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,oBAAoB,EAC3B,YAAY,EAAE,MAAM,EACpB,aAAa,GAAE,UAAU,EAAO,EAChC,cAAc,GAAE,aAAyB,GACvC,oBAAoB,CA+JtB;AAaD,+EAA+E;AAC/E,wBAAsB,qBAAqB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,WAAW,CAAC,GACrD,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED,wBAAsB,gBAAgB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EACF,OAAO,CACR,IAAI,CACH,mBAAmB,EACjB,IAAI,GACJ,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,YAAY,GACZ,cAAc,CAChB,CACD,GACC,SAAS,EACZ,QAAQ,EAAE,oBAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAalB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,SAAM,GAAG,mBAAmB,EAAE,CA2CjE"}
@@ -5,6 +5,12 @@ type ProfileNumericKey = (typeof PROFILE_NUMERIC_KEYS)[number];
5
5
  export type GlobalConfigPath = TopLevelConfigKey | `profiles.${CompressionProfile}.${ProfileNumericKey}`;
6
6
  export type GlobalConfigValue = CompactConfig[TopLevelConfigKey] | ProfileConfig[ProfileNumericKey] | undefined;
7
7
  export declare function readGlobalConfigValue(configPath: GlobalConfigPath): GlobalConfigValue;
8
+ /**
9
+ * Mnemopi data directory: absolute, or `~/` followed by a path. Relative paths
10
+ * are rejected rather than resolved against an arbitrary cwd; so are bare `~`,
11
+ * `~user` and control characters.
12
+ */
13
+ export declare function isValidMnemopiDataDir(value: string): boolean;
8
14
  /** Remove invalid user values so the defaults merge remains authoritative. */
9
15
  export declare function validateSmartCompactConfig(sc: Record<string, unknown>): void;
10
16
  /**
@@ -13,6 +19,12 @@ export declare function validateSmartCompactConfig(sc: Record<string, unknown>):
13
19
  * default becomes effective again.
14
20
  */
15
21
  export declare function writeGlobalConfigValue(configPath: GlobalConfigPath, value: GlobalConfigValue): Promise<CompactConfig>;
22
+ /**
23
+ * Persist several global settings as one change: a single read-modify-write
24
+ * under the settings lock, validated as a whole, written only if every value
25
+ * survives validation (all-or-nothing). `undefined` removes an override.
26
+ */
27
+ export declare function writeGlobalConfigValues(patch: Partial<Record<GlobalConfigPath, GlobalConfigValue>>): Promise<CompactConfig>;
16
28
  /** Test helper — forces the next loadConfig() to re-read settings.json. */
17
29
  export declare function resetConfigCache(): void;
18
30
  export declare function loadConfig(): CompactConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,aAAa,EACd,MAAM,aAAa,CAAC;AAqCrB,QAAA,MAAM,oBAAoB,YACxB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,CACR,CAAC;AACX,KAAK,iBAAiB,GAAG,OAAO,CAAC,MAAM,aAAa,EAAE,UAAU,CAAC,CAAC;AAClE,KAAK,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GACjB,YAAY,kBAAkB,IAAI,iBAAiB,EAAE,CAAC;AAC1D,MAAM,MAAM,iBAAiB,GACzB,aAAa,CAAC,iBAAiB,CAAC,GAChC,aAAa,CAAC,iBAAiB,CAAC,GAChC,SAAS,CAAC;AAEd,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,gBAAgB,GAC3B,iBAAiB,CASnB;AAmcD,8EAA8E;AAC9E,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAI5E;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,aAAa,CAAC,CAyBxB;AAMD,2EAA2E;AAC3E,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED,wBAAgB,UAAU,IAAI,aAAa,CAoD1C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACX,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,MAAM,aAAa,CAAC;AAgDrB,QAAA,MAAM,oBAAoB,YACzB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,CACP,CAAC;AACX,KAAK,iBAAiB,GAAG,OAAO,CAAC,MAAM,aAAa,EAAE,UAAU,CAAC,CAAC;AAClE,KAAK,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GACzB,iBAAiB,GACjB,YAAY,kBAAkB,IAAI,iBAAiB,EAAE,CAAC;AACzD,MAAM,MAAM,iBAAiB,GAC1B,aAAa,CAAC,iBAAiB,CAAC,GAChC,aAAa,CAAC,iBAAiB,CAAC,GAChC,SAAS,CAAC;AAEb,wBAAgB,qBAAqB,CACpC,UAAU,EAAE,gBAAgB,GAC1B,iBAAiB,CASnB;AAwgBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAI5D;AAkGD,8EAA8E;AAC9E,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAQ5E;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC3C,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,iBAAiB,GACtB,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC5C,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,GACzD,OAAO,CAAC,aAAa,CAAC,CAoCxB;AA2BD,2EAA2E;AAC3E,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED,wBAAgB,UAAU,IAAI,aAAa,CA8D1C"}
@@ -54,6 +54,13 @@ export declare function isTransientToolDiagnostic(text: string): boolean;
54
54
  export declare function catalogErrors(msgs: LlmMessage[], _tcIdx?: ToolCallIndex): StructuredExtraction["errors"];
55
55
  export declare function extractDecisions(msgs: LlmMessage[], _tcIdx?: ToolCallIndex): StructuredExtraction["decisions"];
56
56
  export declare function isDiagnosticConstraintText(text: string): boolean;
57
+ /**
58
+ * Text that must never become a constraint: tool noise, this extension's own
59
+ * output, compaction status lines, and completed checklist items. Constraints
60
+ * are checked against the summary by the verification gate, so a non-rule here
61
+ * costs 20 points and fail-closes the session permanently.
62
+ */
63
+ export declare function isNonLiveConstraintText(text: string): boolean;
57
64
  export declare function mineConstraints(msgs: LlmMessage[]): StructuredExtraction["constraints"];
58
65
  export declare function segmentTopicsHeuristic(msgs: LlmMessage[], pc: ProfileConfig, maxSegs?: number, _tcIdx?: ToolCallIndex): StructuredExtraction["topics"];
59
66
  /** Machine status from an earlier compaction is context, not an active user goal. */
@@ -1 +1 @@
1
- {"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/utils/extraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/utils/extraction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAOrB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CA+BtE;AAqCD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD,4DAA4D;AAC5D,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,mBAAmB,EAAE,EAC3B,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,OAAO,EAAE,GACxB,KAAK,CAAC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAsCtD;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,mBAAmB,EAAE,EAC3B,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,OAAO,EAAE,GACxB,MAAM,CAYR;AA6BD;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhE,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,mBAAmB,EAAE,GAC1B,qBAAqB,CASvB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,EAAE,EAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,qBAAwD,GAC9D,MAAM,CAwCR;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,mBAAmB,EAAE,EAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,qBAAwD,GAC9D,MAAM,CAyBR;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,QAAQ,EAAE,EAClB,SAAS,EAAE,MAAM,GAChB,QAAQ,EAAE,EAAE,CAed;AAwDD,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,YAAY,EAAE,EACzB,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM;IAMZ,SAAS;IACT,QAAQ;IAGR,IAAI;IAGJ,OAAO;IAGP,IAAI;EAgCP;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAmBD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,oBAAoB,EAChC,QAAQ,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACxC,MAAM,CA+DR;AA4BD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,SAAS,OAAO,EAAE,GAChC,MAAM,CAqBR;AAED,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvD,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,iBAAiB,GAAE,MAAW,GAC7B,cAAc,CAMhB;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,oBAAoB,EAChC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAC/B,WAAW,CAiBb;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA6BzE"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAOrB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CA+BtE;AAqCD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD,4DAA4D;AAC5D,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,mBAAmB,EAAE,EAC3B,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,OAAO,EAAE,GACxB,KAAK,CAAC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAsCtD;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,mBAAmB,EAAE,EAC3B,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,OAAO,EAAE,GACxB,MAAM,CAYR;AA6BD;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhE,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,mBAAmB,EAAE,GAC1B,qBAAqB,CASvB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,EAAE,EAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,qBAAwD,GAC9D,MAAM,CA0CR;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,mBAAmB,EAAE,EAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,qBAAwD,GAC9D,MAAM,CAyBR;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,QAAQ,EAAE,EAClB,SAAS,EAAE,MAAM,GAChB,QAAQ,EAAE,EAAE,CAed;AAwDD,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,YAAY,EAAE,EACzB,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM;IAMZ,SAAS;IACT,QAAQ;IAGR,IAAI;IAGJ,OAAO;IAGP,IAAI;EAgCP;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAmBD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,oBAAoB,EAChC,QAAQ,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACxC,MAAM,CA+DR;AA4BD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,SAAS,OAAO,EAAE,GAChC,MAAM,CAqBR;AAED,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvD,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,iBAAiB,GAAE,MAAW,GAC7B,cAAc,CAMhB;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,oBAAoB,EAChC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAC/B,WAAW,CAiBb;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA6BzE"}
@@ -22,7 +22,9 @@
22
22
  * "single new exchange" case (user message + assistant + ≤14 tool turns) so
23
23
  * the slow path (hashing) only runs when something meaningful changed.
24
24
  */
25
- import type { EntryIdFingerprint } from "../types.ts";
25
+ import type { EntryIdFingerprint, LlmMessage } from "../types.ts";
26
+ /** Content proof for projected/recovered messages whose source IDs can stay unchanged. */
27
+ export declare function hashMessages(messages: readonly LlmMessage[], count?: number): string;
26
28
  /** Tail length; chosen to cover one "user → assistant → many tool turns" cycle. */
27
29
  export declare const FINGERPRINT_TAIL_LEN = 16;
28
30
  export declare function buildEntryIdFingerprint(ids: ReadonlyArray<string>): EntryIdFingerprint;
@@ -1 +1 @@
1
- {"version":3,"file":"id-fingerprint.d.ts","sourceRoot":"","sources":["../../src/utils/id-fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAKtF;AAED,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAS7G;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAOvH"}
1
+ {"version":3,"file":"id-fingerprint.d.ts","sourceRoot":"","sources":["../../src/utils/id-fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAElE,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,EAAE,KAAK,SAAkB,GAAG,MAAM,CAO7F;AAED,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAKtF;AAED,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAS7G;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAOvH"}
@@ -0,0 +1,61 @@
1
+ export type IssueSeverity = "warning" | "error";
2
+ export interface IssueInput {
3
+ /** Stable cause key used for dedupe, e.g. "hindsight.auth". */
4
+ key: string;
5
+ /** "Smart Compact: <what happened>. <effect>. <what to do>" (prefix optional). */
6
+ message: string;
7
+ severity?: IssueSeverity;
8
+ /** Raw error for the debug trace only. */
9
+ error?: unknown;
10
+ }
11
+ export interface IssueRecord {
12
+ key: string;
13
+ severity: IssueSeverity;
14
+ message: string;
15
+ firstAt: number;
16
+ lastAt: number;
17
+ count: number;
18
+ }
19
+ /** Minimal context surface; both extension and command contexts satisfy it. */
20
+ export interface IssueSink {
21
+ hasUI?: boolean;
22
+ /**
23
+ * Background snapshot contexts: routine messages are dropped and reported
24
+ * issues are queued for the next real context instead of shown now.
25
+ */
26
+ silentBackground?: boolean;
27
+ ui?: {
28
+ notify(message: string, type?: "info" | "warning" | "error"): void;
29
+ };
30
+ sessionManager?: {
31
+ getSessionId?(): string | undefined;
32
+ };
33
+ }
34
+ /** Scrub secrets, collapse to one line, bound length, add the prefix. */
35
+ export declare function formatIssueMessage(message: string): string;
36
+ /** Literal, scrubbed, single-line error text for embedding in a message. */
37
+ export declare function errorDetail(error: unknown): string;
38
+ /**
39
+ * Record a problem for the status history without a toast. Use it when the
40
+ * caller already surfaces the failure (e.g. a returned `false` becomes a
41
+ * visible persistence warning) or when the effect is harmless and expected.
42
+ */
43
+ export declare function recordIssue(input: IssueInput): void;
44
+ /**
45
+ * Report a user-visible problem. With a context it is shown now (once per
46
+ * session per key); without one it is queued until `flushIssues(ctx)`.
47
+ */
48
+ export declare function reportIssue(input: IssueInput, sink?: IssueSink): void;
49
+ /** Deliver issues reported where no context was available. */
50
+ export declare function flushIssues(sink: IssueSink): void;
51
+ /**
52
+ * Show a user-facing message. With a UI it goes to ctx.ui.notify. Without
53
+ * one (print/RPC/SDK modes, where notify is a no-op) warnings and errors go
54
+ * to stderr with secrets scrubbed; info stays silent.
55
+ */
56
+ export declare function notifyUser(sink: IssueSink | undefined, message: string, type?: "info" | "warning" | "error"): void;
57
+ /** Most recent first. */
58
+ export declare function recentIssues(): IssueRecord[];
59
+ export declare function formatRecentIssues(now?: number): string;
60
+ export declare function resetIssuesForTests(): void;
61
+ //# sourceMappingURL=issues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/utils/issues.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,EAAE,CAAC,EAAE;QAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC;IAC5E,cAAc,CAAC,EAAE;QAAE,YAAY,CAAC,IAAI,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;CAC1D;AAaD,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAU1D;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGlD;AA6CD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAGnD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAYrE;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAKjD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,GAAG,SAAS,GAAG,OAAgB,GAC1C,IAAI,CAYN;AAED,yBAAyB;AACzB,wBAAgB,YAAY,IAAI,WAAW,EAAE,CAG5C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,SAAa,GAAG,MAAM,CAiB3D;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C"}
@@ -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,EAA6E,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhI,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;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,gBAAgB,CAAC,EAAE,aAAa,GAAG,aAAa,CAiLlG"}
1
+ {"version":3,"file":"pruning.d.ts","sourceRoot":"","sources":["../../src/utils/pruning.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAA6E,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhI,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,CAyKlG"}
@@ -45,8 +45,6 @@ import type { LlmMessage, SessionMessageEntry } from "../types.ts";
45
45
  * on every call so tests can mutate process.env between cases.
46
46
  */
47
47
  export declare function _getMaxEntriesForTests(): number;
48
- /** @internal Test-only: drop both module caches between cases. */
49
- export declare function __resetSessionLogCachesForTests(): void;
50
48
  /**
51
49
  * Check if any message in the array has been truncated by pi-toolkit.
52
50
  */
@@ -1 +1 @@
1
- {"version":3,"file":"session-log.d.ts","sourceRoot":"","sources":["../../src/utils/session-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA6EnE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAwBD,kEAAkE;AAClE,wBAAgB,+BAA+B,IAAI,IAAI,CAGtD;AA2GD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAEhE;AA6ED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,mBAAmB,EAAE,EACvC,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,yBAAyB,EAAE,GAAG,IAAI,CAAC,CAoC7C"}
1
+ {"version":3,"file":"session-log.d.ts","sourceRoot":"","sources":["../../src/utils/session-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA6EnE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAiID;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAIhE;AA6ED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,mBAAmB,EAAE,EACvC,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,yBAAyB,EAAE,GAAG,IAAI,CAAC,CAoC7C"}
@@ -3,7 +3,7 @@
3
3
  * Produced alongside the human-readable Markdown summary.
4
4
  * Supports cross-compaction tracking and delta computation.
5
5
  */
6
- import type { StructuredExtraction, OpenLoop, CompactionState, ExplorationReport, LoopOverride, ContinuityOverride, ContinuityScope } from "../types.ts";
6
+ import type { StructuredExtraction, OpenLoop, CompactionState, ExplorationReport, LoopOverride, ContinuityOverride, ContinuityScope, LlmMessage } from "../types.ts";
7
7
  export declare function sanitizeCompactionStateEvidence(state: CompactionState): CompactionState;
8
8
  /**
9
9
  * Persist compaction state for cross-compaction tracking.
@@ -17,10 +17,29 @@ export declare function saveCompactionState(projectId: string, state: Compaction
17
17
  * Load previous compaction state for delta computation.
18
18
  */
19
19
  export declare function loadCompactionState(projectId: string): CompactionState | null;
20
- export declare function loadScopedCompactionState(scope: Pick<ContinuityScope, "projectId" | "sessionId"> & Partial<Pick<ContinuityScope, "branchHeadId">>, branchEntryIds?: readonly string[]): CompactionState | null;
20
+ export declare function loadScopedCompactionState(scope: Pick<ContinuityScope, "projectId" | "sessionId"> & Partial<Pick<ContinuityScope, "branchHeadId">>, branchEntryIds?: readonly string[], options?: {
21
+ readOnly?: boolean;
22
+ }): CompactionState | null;
21
23
  export declare function applyLoopOverrides(loops: OpenLoop[], overrides: LoopOverride[]): OpenLoop[];
22
24
  export declare function upsertLoopOverride(overrides: LoopOverride[], loop: OpenLoop, patch: Partial<Omit<LoopOverride, "id" | "summaryKey">>): LoopOverride[];
23
25
  export declare function upsertContinuityOverride(overrides: ContinuityOverride[], kind: ContinuityOverride["kind"], text: string, patch: Pick<ContinuityOverride, "status"> & Partial<Pick<ContinuityOverride, "replacement">>): ContinuityOverride[];
26
+ /**
27
+ * Retire constraints the conversation has since released.
28
+ *
29
+ * A rule stated once ("don't push yet") and released later ("push it now")
30
+ * used to live forever: continuity merges it into every later state, and the
31
+ * gate then reads the factually correct summary as a contradiction (-20, an
32
+ * unpatchable gap) on every run. The newer user message is the better evidence,
33
+ * so it supersedes the constraint instead of losing to it — the released rule
34
+ * is kept as critical context, not as a rule the summary must still satisfy.
35
+ *
36
+ * Only *later* user messages count, and only an explicit polarity flip on the
37
+ * same concepts (the same check the gate uses) — a restatement does not retire.
38
+ */
39
+ export declare function retireSupersededConstraints(constraints: ReadonlyArray<{
40
+ text: string;
41
+ index?: number;
42
+ }>, msgs: LlmMessage[], overrides: ContinuityOverride[]): ContinuityOverride[];
24
43
  export declare function buildCompactionState(extraction: StructuredExtraction, openLoops: OpenLoop[], report: ExplorationReport | null, nextActions: string[], criticalContext: string[], loopOverrides?: LoopOverride[]): CompactionState;
25
44
  /**
26
45
  * Conservative cross-compaction merge: neither absence nor free-form goal text
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,oBAAoB,EACpB,QAAQ,EACR,eAAe,EACf,iBAAiB,EAEjB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EAChB,MAAM,aAAa,CAAC;AAgDrB,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,eAAe,GACrB,eAAe,CAqCjB;AAqDD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,eAAe,GACrB,OAAO,CAUT;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAG7E;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,WAAW,CAAC,GACrD,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,EAChD,cAAc,GAAE,SAAS,MAAM,EAAO,GACrC,eAAe,GAAG,IAAI,CAmExB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,EAAE,EACjB,SAAS,EAAE,YAAY,EAAE,GACxB,QAAQ,EAAE,CAwBZ;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,YAAY,EAAE,EACzB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC,GACtD,YAAY,EAAE,CAehB;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,kBAAkB,EAAE,EAC/B,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC,GACjD,kBAAkB,EAAE,CAkBtB;AAuCD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,oBAAoB,EAChC,SAAS,EAAE,QAAQ,EAAE,EACrB,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAChC,WAAW,EAAE,MAAM,EAAE,EACrB,eAAe,EAAE,MAAM,EAAE,EACzB,aAAa,GAAE,YAAY,EAAO,GACjC,eAAe,CAuEjB;AAiDD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAChC,OAAO,EAAE,eAAe,GACvB,eAAe,CAmKjB;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,QAAQ,GAAE,MAAiC,EAC3C,QAAQ,SAAK,GACZ,MAAM,CA0BR;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,QAAQ,EAAE,GACpB,MAAM,CAyBR;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oCAAoC;IACpC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,2CAA2C;IAC3C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,sDAAsD;IACtD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,eAAe,GACvB,eAAe,CA+FjB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAW/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAyEjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,eAAe,GACrB,MAAM,CAsBR;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAU5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAOhE"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"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"}