pi-smart-compact 7.20.0 → 7.22.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 (62) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +288 -188
  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 +11 -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 +5337 -4576
  29. package/dist/infra/fs.d.ts +2 -0
  30. package/dist/infra/fs.d.ts.map +1 -1
  31. package/dist/infra/llm-client.d.ts +12 -11
  32. package/dist/infra/llm-client.d.ts.map +1 -1
  33. package/dist/infra/llm-retry.d.ts.map +1 -1
  34. package/dist/infra/services.d.ts +23 -1
  35. package/dist/infra/services.d.ts.map +1 -1
  36. package/dist/phases/explore.d.ts.map +1 -1
  37. package/dist/phases/synthesize.d.ts +6 -3
  38. package/dist/phases/synthesize.d.ts.map +1 -1
  39. package/dist/phases/verify.d.ts +9 -22
  40. package/dist/phases/verify.d.ts.map +1 -1
  41. package/dist/types.d.ts +62 -3
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/ui/overlays.d.ts +5 -2
  44. package/dist/ui/overlays.d.ts.map +1 -1
  45. package/dist/utils/cache.d.ts +4 -2
  46. package/dist/utils/cache.d.ts.map +1 -1
  47. package/dist/utils/damage.d.ts +18 -1
  48. package/dist/utils/damage.d.ts.map +1 -1
  49. package/dist/utils/file-needles.d.ts +7 -5
  50. package/dist/utils/file-needles.d.ts.map +1 -1
  51. package/dist/utils/fingerprint.d.ts +1 -0
  52. package/dist/utils/fingerprint.d.ts.map +1 -1
  53. package/dist/utils/helpers.d.ts +2 -1
  54. package/dist/utils/helpers.d.ts.map +1 -1
  55. package/dist/utils/pruning.d.ts +0 -9
  56. package/dist/utils/pruning.d.ts.map +1 -1
  57. package/dist/utils/state.d.ts +4 -2
  58. package/dist/utils/state.d.ts.map +1 -1
  59. package/dist/utils/tokens.d.ts +12 -1
  60. package/dist/utils/tokens.d.ts.map +1 -1
  61. package/docs/RELEASE.md +1 -0
  62. package/package.json +2 -1
@@ -14,15 +14,6 @@ export interface PruningResult {
14
14
  count: number;
15
15
  reason: string;
16
16
  }>;
17
- /**
18
- * ToolCallIndex computed during pruning, keyed by **input** (unpruned)
19
- * message offsets. Downstream consumers that work against the pruned
20
- * message list (e.g. `extractStructured`) MUST NOT reuse this map verbatim
21
- * because `msgIndex` values refer to the pre-prune positions. It is still
22
- * useful for callers that want a quick `toolCallId → {name, arguments}`
23
- * lookup over the original list.
24
- */
25
- toolCallIndex: ToolCallIndex;
26
17
  }
27
18
  /**
28
19
  * Detect and collapse redundant message sequences.
@@ -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;IAClD;;;;;;;OAOG;IACH,aAAa,EAAE,aAAa,CAAC;CAC9B;AAYD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,gBAAgB,CAAC,EAAE,aAAa,GAAG,aAAa,CAoNlG"}
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"}
@@ -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 } from "../types.ts";
6
+ import type { StructuredExtraction, OpenLoop, CompactionState, ExplorationReport, LoopOverride } from "../types.ts";
7
7
  /**
8
8
  * Persist compaction state for cross-compaction tracking.
9
9
  *
@@ -16,7 +16,9 @@ export declare function saveCompactionState(projectId: string, state: Compaction
16
16
  * Load previous compaction state for delta computation.
17
17
  */
18
18
  export declare function loadCompactionState(projectId: string): CompactionState | null;
19
- export declare function buildCompactionState(extraction: StructuredExtraction, openLoops: OpenLoop[], report: ExplorationReport | null, nextActions: string[], criticalContext: string[]): CompactionState;
19
+ export declare function applyLoopOverrides(loops: OpenLoop[], overrides: LoopOverride[]): OpenLoop[];
20
+ export declare function upsertLoopOverride(overrides: LoopOverride[], loop: OpenLoop, patch: Partial<Omit<LoopOverride, "id" | "summaryKey">>): LoopOverride[];
21
+ export declare function buildCompactionState(extraction: StructuredExtraction, openLoops: OpenLoop[], report: ExplorationReport | null, nextActions: string[], criticalContext: string[], loopOverrides?: LoopOverride[]): CompactionState;
20
22
  /**
21
23
  * Inject Open Loops section into the Markdown summary.
22
24
  *
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAe,MAAM,aAAa,CAAC;AAanH;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAInF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAa7E;AAED,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,GACxB,eAAe,CAsDjB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAYrF;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,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,eAAe,CAsD7F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAS/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAkCjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAsBlF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAapF;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,CAIhE"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AAajI;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAInF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAa7E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE,CAgB3F;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,YAAY,EAAE,CAQrJ;AAED,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,CAuDjB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAYrF;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,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,eAAe,CAuD7F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAS/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAkCjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAsBlF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAapF;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,CAIhE"}
@@ -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.22.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"