pi-smart-compact 7.20.0 → 7.21.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 (59) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +265 -189
  3. package/dist/app/run-context.d.ts +6 -0
  4. package/dist/app/run-context.d.ts.map +1 -1
  5. package/dist/app/run-smart-compact.d.ts +2 -0
  6. package/dist/app/run-smart-compact.d.ts.map +1 -1
  7. package/dist/app/steps/extract.d.ts.map +1 -1
  8. package/dist/app/steps/metrics.d.ts +1 -1
  9. package/dist/app/steps/metrics.d.ts.map +1 -1
  10. package/dist/app/steps/prepare.d.ts.map +1 -1
  11. package/dist/app/steps/state.d.ts.map +1 -1
  12. package/dist/app/steps/synthesize.d.ts.map +1 -1
  13. package/dist/app/steps/verify.d.ts +4 -13
  14. package/dist/app/steps/verify.d.ts.map +1 -1
  15. package/dist/app/steps/window.d.ts.map +1 -1
  16. package/dist/constants.d.ts +9 -1
  17. package/dist/constants.d.ts.map +1 -1
  18. package/dist/domain/scrub.d.ts +19 -0
  19. package/dist/domain/scrub.d.ts.map +1 -0
  20. package/dist/domain/summary-parse.d.ts +5 -5
  21. package/dist/domain/summary-parse.d.ts.map +1 -1
  22. package/dist/domain/summary-schema.d.ts +1 -1
  23. package/dist/domain/summary-schema.d.ts.map +1 -1
  24. package/dist/domain/tool-semantics.d.ts +15 -32
  25. package/dist/domain/tool-semantics.d.ts.map +1 -1
  26. package/dist/index.d.ts +1 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +5056 -4329
  29. package/dist/infra/fs.d.ts +2 -0
  30. package/dist/infra/fs.d.ts.map +1 -1
  31. package/dist/infra/services.d.ts +20 -0
  32. package/dist/infra/services.d.ts.map +1 -1
  33. package/dist/phases/explore.d.ts.map +1 -1
  34. package/dist/phases/synthesize.d.ts +6 -3
  35. package/dist/phases/synthesize.d.ts.map +1 -1
  36. package/dist/phases/verify.d.ts +9 -22
  37. package/dist/phases/verify.d.ts.map +1 -1
  38. package/dist/types.d.ts +58 -2
  39. package/dist/types.d.ts.map +1 -1
  40. package/dist/ui/overlays.d.ts +5 -2
  41. package/dist/ui/overlays.d.ts.map +1 -1
  42. package/dist/utils/cache.d.ts +4 -2
  43. package/dist/utils/cache.d.ts.map +1 -1
  44. package/dist/utils/damage.d.ts +18 -1
  45. package/dist/utils/damage.d.ts.map +1 -1
  46. package/dist/utils/file-needles.d.ts +7 -5
  47. package/dist/utils/file-needles.d.ts.map +1 -1
  48. package/dist/utils/fingerprint.d.ts +1 -0
  49. package/dist/utils/fingerprint.d.ts.map +1 -1
  50. package/dist/utils/helpers.d.ts +2 -1
  51. package/dist/utils/helpers.d.ts.map +1 -1
  52. package/dist/utils/pruning.d.ts +0 -9
  53. package/dist/utils/pruning.d.ts.map +1 -1
  54. package/dist/utils/state.d.ts +4 -2
  55. package/dist/utils/state.d.ts.map +1 -1
  56. package/dist/utils/tokens.d.ts +12 -1
  57. package/dist/utils/tokens.d.ts.map +1 -1
  58. package/docs/RELEASE.md +1 -0
  59. package/package.json +2 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Token estimation with provider-specific ratios and EMA calibration.
3
3
  */
4
- import type { ProviderCapabilities } from "../types.ts";
4
+ import type { LlmMessage, ProviderCapabilities } from "../types.ts";
5
5
  export declare function getProviderCaps(provider: string): ProviderCapabilities;
6
6
  /**
7
7
  * Per-(provider,model) calibration factors smoothed by EMA.
@@ -33,4 +33,15 @@ export declare class TokenCalibrationStore {
33
33
  export declare function __resetTokenCalibrationForTests(): void;
34
34
  export declare function estimateTokens(text: string, provider?: string, model?: string, calibration?: TokenCalibrationStore): number;
35
35
  export declare function calibrateFromResponse(estimated: number, actual: number, provider?: string, model?: string, calibration?: TokenCalibrationStore): void;
36
+ export interface TokenEstimator {
37
+ text(text: string): number;
38
+ message(message: Pick<LlmMessage, "role" | "content" | "toolCallId" | "toolName" | "isError">): number;
39
+ messages(messages: ReadonlyArray<Pick<LlmMessage, "role" | "content" | "toolCallId" | "toolName" | "isError">>): number;
40
+ }
41
+ /**
42
+ * Bind provider/model calibration once per run. Message estimates use the
43
+ * actual structured content, including tool-call arguments that text-only
44
+ * extraction intentionally omits.
45
+ */
46
+ export declare function makeTokenEstimator(provider?: string, model?: string, calibration?: TokenCalibrationStore): TokenEstimator;
36
47
  //# sourceMappingURL=tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/utils/tokens.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAiGxD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAQtE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,KAAK,IAAI,IAAI,CAA0B;IAEvC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAO7C;IAED,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAUpF;CACF;AAQD,mEAAmE;AACnE,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAQD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,wBAAuB,GAAG,MAAM,CA0B1H;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"}
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;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,KAAK,IAAI,IAAI,CAA0B;IAEvC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAO7C;IAED,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAUpF;CACF;AAQD,mEAAmE;AACnE,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAQD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,wBAAuB,GAAG,MAAM,CA0B1H;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,CAchB"}
package/docs/RELEASE.md CHANGED
@@ -16,6 +16,7 @@ Use this checklist before publishing `pi-smart-compact`.
16
16
  ```bash
17
17
  bun run typecheck
18
18
  bun test
19
+ bun run gate
19
20
  bun run build
20
21
  bun run compat:pi
21
22
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-smart-compact",
3
- "version": "7.20.0",
3
+ "version": "7.21.0",
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
  "license": "MIT",
@@ -48,6 +48,7 @@
48
48
  "build": "rm -rf dist && mkdir dist && bun build ./src/index.ts --outdir ./dist --target bun --external '@earendil-works/*' --external 'typebox' && bun x tsc --emitDeclarationOnly --outDir dist",
49
49
  "test": "bun test",
50
50
  "bench": "bun bench/hot-paths.bench.ts",
51
+ "gate": "bun run scripts/eval-gate.ts",
51
52
  "compat:pi": "bun run scripts/check-pi-compat.ts",
52
53
  "typecheck": "bun x tsc --noEmit",
53
54
  "prepublishOnly": "bun run typecheck && bun test && bun run build"