pi-ghost-autocomplete 0.3.2 → 0.4.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 (168) hide show
  1. package/LICENSE +561 -0
  2. package/README.md +464 -331
  3. package/dist/bench-cli.js +1 -123
  4. package/dist/bench.d.ts +7 -3
  5. package/dist/bench.js +1 -522
  6. package/dist/config.d.ts +4 -1
  7. package/dist/context-aggregator.d.ts +4 -1
  8. package/dist/cycle-manager.d.ts +2 -21
  9. package/dist/entropy-stop.d.ts +4 -1
  10. package/dist/eval-dataset.d.ts +2 -13
  11. package/dist/fuzzy-matcher.d.ts +4 -1
  12. package/dist/ghost-editor.d.ts +11 -2
  13. package/dist/index.d.ts +4 -1
  14. package/dist/index.js +1 -289
  15. package/dist/intent.d.ts +179 -0
  16. package/dist/metrics.d.ts +4 -1
  17. package/dist/path-index.d.ts +4 -1
  18. package/dist/path-matcher.d.ts +4 -1
  19. package/dist/profile-store.d.ts +4 -1
  20. package/dist/profile.d.ts +2 -20
  21. package/dist/providers/cloud-provider.d.ts +4 -1
  22. package/dist/providers/local-provider.d.ts +4 -1
  23. package/dist/providers/openai-compat-provider.d.ts +24 -1
  24. package/dist/providers/race.d.ts +4 -1
  25. package/dist/providers/types.d.ts +13 -1
  26. package/dist/recent-paths.d.ts +4 -1
  27. package/dist/replay-cli.js +1 -166
  28. package/dist/replay.d.ts +2 -7
  29. package/package.json +90 -80
  30. package/dist/bench-cli.d.ts +0 -3
  31. package/dist/bench-cli.d.ts.map +0 -1
  32. package/dist/bench-cli.js.map +0 -1
  33. package/dist/bench.d.ts.map +0 -1
  34. package/dist/bench.js.map +0 -1
  35. package/dist/cache.d.ts +0 -124
  36. package/dist/cache.d.ts.map +0 -1
  37. package/dist/cache.js +0 -173
  38. package/dist/cache.js.map +0 -1
  39. package/dist/candidate-rerank.d.ts +0 -57
  40. package/dist/candidate-rerank.d.ts.map +0 -1
  41. package/dist/candidate-rerank.js +0 -78
  42. package/dist/candidate-rerank.js.map +0 -1
  43. package/dist/config.d.ts.map +0 -1
  44. package/dist/config.js +0 -317
  45. package/dist/config.js.map +0 -1
  46. package/dist/context-aggregator.d.ts.map +0 -1
  47. package/dist/context-aggregator.js +0 -87
  48. package/dist/context-aggregator.js.map +0 -1
  49. package/dist/context-selector.d.ts +0 -128
  50. package/dist/context-selector.d.ts.map +0 -1
  51. package/dist/context-selector.js +0 -300
  52. package/dist/context-selector.js.map +0 -1
  53. package/dist/cycle-manager.d.ts.map +0 -1
  54. package/dist/cycle-manager.js +0 -168
  55. package/dist/cycle-manager.js.map +0 -1
  56. package/dist/edit-history-ring.d.ts +0 -148
  57. package/dist/edit-history-ring.d.ts.map +0 -1
  58. package/dist/edit-history-ring.js +0 -262
  59. package/dist/edit-history-ring.js.map +0 -1
  60. package/dist/entropy-stop.d.ts.map +0 -1
  61. package/dist/entropy-stop.js +0 -141
  62. package/dist/entropy-stop.js.map +0 -1
  63. package/dist/eval-dataset.d.ts.map +0 -1
  64. package/dist/eval-dataset.js +0 -127
  65. package/dist/eval-dataset.js.map +0 -1
  66. package/dist/fast-path-engine.d.ts +0 -286
  67. package/dist/fast-path-engine.d.ts.map +0 -1
  68. package/dist/fast-path-engine.js +0 -341
  69. package/dist/fast-path-engine.js.map +0 -1
  70. package/dist/fuzzy-matcher.d.ts.map +0 -1
  71. package/dist/fuzzy-matcher.js +0 -162
  72. package/dist/fuzzy-matcher.js.map +0 -1
  73. package/dist/ghost-editor.d.ts.map +0 -1
  74. package/dist/ghost-editor.js +0 -1491
  75. package/dist/ghost-editor.js.map +0 -1
  76. package/dist/index.d.ts.map +0 -1
  77. package/dist/index.js.map +0 -1
  78. package/dist/keystroke-timer.d.ts +0 -59
  79. package/dist/keystroke-timer.d.ts.map +0 -1
  80. package/dist/keystroke-timer.js +0 -94
  81. package/dist/keystroke-timer.js.map +0 -1
  82. package/dist/metrics-builder.d.ts +0 -71
  83. package/dist/metrics-builder.d.ts.map +0 -1
  84. package/dist/metrics-builder.js +0 -71
  85. package/dist/metrics-builder.js.map +0 -1
  86. package/dist/metrics.d.ts.map +0 -1
  87. package/dist/metrics.js +0 -212
  88. package/dist/metrics.js.map +0 -1
  89. package/dist/path-index.d.ts.map +0 -1
  90. package/dist/path-index.js +0 -148
  91. package/dist/path-index.js.map +0 -1
  92. package/dist/path-matcher.d.ts.map +0 -1
  93. package/dist/path-matcher.js +0 -88
  94. package/dist/path-matcher.js.map +0 -1
  95. package/dist/profile-store.d.ts.map +0 -1
  96. package/dist/profile-store.js +0 -199
  97. package/dist/profile-store.js.map +0 -1
  98. package/dist/profile.d.ts.map +0 -1
  99. package/dist/profile.js +0 -434
  100. package/dist/profile.js.map +0 -1
  101. package/dist/providers/cloud-provider.d.ts.map +0 -1
  102. package/dist/providers/cloud-provider.js +0 -109
  103. package/dist/providers/cloud-provider.js.map +0 -1
  104. package/dist/providers/local-provider.d.ts.map +0 -1
  105. package/dist/providers/local-provider.js +0 -48
  106. package/dist/providers/local-provider.js.map +0 -1
  107. package/dist/providers/openai-compat-provider.d.ts.map +0 -1
  108. package/dist/providers/openai-compat-provider.js +0 -215
  109. package/dist/providers/openai-compat-provider.js.map +0 -1
  110. package/dist/providers/openai-completions-runner.d.ts +0 -52
  111. package/dist/providers/openai-completions-runner.d.ts.map +0 -1
  112. package/dist/providers/openai-completions-runner.js +0 -141
  113. package/dist/providers/openai-completions-runner.js.map +0 -1
  114. package/dist/providers/race.d.ts.map +0 -1
  115. package/dist/providers/race.js +0 -441
  116. package/dist/providers/race.js.map +0 -1
  117. package/dist/providers/truncate.d.ts +0 -7
  118. package/dist/providers/truncate.d.ts.map +0 -1
  119. package/dist/providers/truncate.js +0 -57
  120. package/dist/providers/truncate.js.map +0 -1
  121. package/dist/providers/types.d.ts.map +0 -1
  122. package/dist/providers/types.js +0 -60
  123. package/dist/providers/types.js.map +0 -1
  124. package/dist/provisional-manager.d.ts +0 -93
  125. package/dist/provisional-manager.d.ts.map +0 -1
  126. package/dist/provisional-manager.js +0 -98
  127. package/dist/provisional-manager.js.map +0 -1
  128. package/dist/provisional.d.ts +0 -150
  129. package/dist/provisional.d.ts.map +0 -1
  130. package/dist/provisional.js +0 -238
  131. package/dist/provisional.js.map +0 -1
  132. package/dist/recent-paths.d.ts.map +0 -1
  133. package/dist/recent-paths.js +0 -114
  134. package/dist/recent-paths.js.map +0 -1
  135. package/dist/regret-tracker.d.ts +0 -84
  136. package/dist/regret-tracker.d.ts.map +0 -1
  137. package/dist/regret-tracker.js +0 -145
  138. package/dist/regret-tracker.js.map +0 -1
  139. package/dist/replay-cli.d.ts +0 -13
  140. package/dist/replay-cli.d.ts.map +0 -1
  141. package/dist/replay-cli.js.map +0 -1
  142. package/dist/replay.d.ts.map +0 -1
  143. package/dist/replay.js +0 -225
  144. package/dist/replay.js.map +0 -1
  145. package/dist/reranker.d.ts +0 -181
  146. package/dist/reranker.d.ts.map +0 -1
  147. package/dist/reranker.js +0 -324
  148. package/dist/reranker.js.map +0 -1
  149. package/dist/session-trie.d.ts +0 -103
  150. package/dist/session-trie.d.ts.map +0 -1
  151. package/dist/session-trie.js +0 -280
  152. package/dist/session-trie.js.map +0 -1
  153. package/dist/speculative.d.ts +0 -74
  154. package/dist/speculative.d.ts.map +0 -1
  155. package/dist/speculative.js +0 -107
  156. package/dist/speculative.js.map +0 -1
  157. package/dist/tool-summarize.d.ts +0 -40
  158. package/dist/tool-summarize.d.ts.map +0 -1
  159. package/dist/tool-summarize.js +0 -245
  160. package/dist/tool-summarize.js.map +0 -1
  161. package/dist/trie-sanitize.d.ts +0 -22
  162. package/dist/trie-sanitize.d.ts.map +0 -1
  163. package/dist/trie-sanitize.js +0 -142
  164. package/dist/trie-sanitize.js.map +0 -1
  165. package/dist/versions.d.ts +0 -23
  166. package/dist/versions.d.ts.map +0 -1
  167. package/dist/versions.js +0 -31
  168. package/dist/versions.js.map +0 -1
package/dist/replay.d.ts CHANGED
@@ -1,10 +1,6 @@
1
1
  /**
2
- * Replay engine — pure functions. PRD §M5c.
3
- *
4
- * Given an `EvalExample` and a candidate continuation produced by a
5
- * provider variant under test, compute per-example quality metrics. The
6
- * caller drives the actual provider invocation (this module stays I/O-free
7
- * so it's trivially unit-testable and deterministic for fixture providers).
2
+ * SPDX-License-Identifier: SSPL-1.0
3
+ * SPDX-FileCopyrightText: 2025 Alessandro Pungitore <alessandro@pungitore.ch>
8
4
  */
9
5
  import type { EvalExample } from "./eval-dataset.js";
10
6
  export interface ReplayResult {
@@ -104,4 +100,3 @@ export interface ReplaySummary {
104
100
  */
105
101
  export declare function summarizeReplay(results: ReplayResult[]): ReplaySummary;
106
102
  export { quantile } from "./bench.js";
107
- //# sourceMappingURL=replay.d.ts.map
package/package.json CHANGED
@@ -1,80 +1,90 @@
1
- {
2
- "name": "pi-ghost-autocomplete",
3
- "version": "0.3.2",
4
- "description": "Inline ghost-text autocomplete extension for the Pi coding agent (pi.dev). Cloud and local LLM providers, zero-flicker rendering, no popup interference.",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "bin": {
9
- "pi-ghost-bench": "./dist/bench-cli.js",
10
- "pi-ghost-replay": "./dist/replay-cli.js"
11
- },
12
- "exports": {
13
- ".": {
14
- "types": "./dist/index.d.ts",
15
- "import": "./dist/index.js"
16
- },
17
- "./bench": {
18
- "types": "./dist/bench.d.ts",
19
- "import": "./dist/bench.js"
20
- }
21
- },
22
- "files": [
23
- "dist",
24
- "README.md"
25
- ],
26
- "scripts": {
27
- "clean": "node -e \"fs.rmSync('dist',{recursive:true,force:true})\"",
28
- "build": "tsc -p tsconfig.json",
29
- "typecheck": "tsc -p tsconfig.json --noEmit",
30
- "test": "vitest run",
31
- "test:watch": "vitest",
32
- "prepublishOnly": "npm run clean && npm run build"
33
- },
34
- "engines": {
35
- "node": ">=20.0.0"
36
- },
37
- "pi": {
38
- "extensions": [
39
- "./dist/index.js"
40
- ]
41
- },
42
- "author": "Alessandro",
43
- "repository": {
44
- "type": "git",
45
- "url": "https://github.com/pungggi/pi-ghost-autocomplete"
46
- },
47
- "homepage": "https://github.com/pungggi/pi-ghost-autocomplete#readme",
48
- "license": "MIT",
49
- "keywords": [
50
- "pi",
51
- "pi.dev",
52
- "pi-package",
53
- "pi-extension",
54
- "autocomplete",
55
- "ghost-text",
56
- "tui",
57
- "llm",
58
- "ollama",
59
- "groq"
60
- ],
61
- "peerDependencies": {
62
- "@earendil-works/pi-agent-core": "^0.74.0",
63
- "@earendil-works/pi-ai": "^0.74.0",
64
- "@earendil-works/pi-coding-agent": "^0.74.0",
65
- "@earendil-works/pi-tui": "^0.74.0"
66
- },
67
- "devDependencies": {
68
- "@earendil-works/pi-agent-core": "^0.74.0",
69
- "@earendil-works/pi-ai": "^0.74.0",
70
- "@earendil-works/pi-coding-agent": "^0.74.0",
71
- "@earendil-works/pi-tui": "^0.74.0",
72
- "@types/node": "^20.11.0",
73
- "typescript": "^5.4.0",
74
- "vitest": "^1.6.1"
75
- },
76
- "dependencies": {
77
- "string-width": "^7.2.0",
78
- "strip-ansi": "^7.2.0"
79
- }
80
- }
1
+ {
2
+ "name": "pi-ghost-autocomplete",
3
+ "version": "0.4.0",
4
+ "description": "Inline ghost-text autocomplete extension for the Pi coding agent (pi.dev). Cloud and local LLM providers, zero-flicker rendering, no popup interference.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "pi-ghost-bench": "./dist/bench-cli.js",
10
+ "pi-ghost-replay": "./dist/replay-cli.js"
11
+ },
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.js"
16
+ },
17
+ "./bench": {
18
+ "types": "./dist/bench.d.ts",
19
+ "import": "./dist/bench.js"
20
+ }
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "!dist/**/*.node",
25
+ "README.md"
26
+ ],
27
+ "scripts": {
28
+ "clean": "node -e \"fs.rmSync('dist',{recursive:true,force:true})\"",
29
+ "build": "node scripts/build.mjs",
30
+ "build:dev": "tsc -p tsconfig.json",
31
+ "typecheck": "tsc -p tsconfig.json --noEmit",
32
+ "test": "vitest run",
33
+ "test:watch": "vitest",
34
+ "prepack": "node scripts/build.mjs"
35
+ },
36
+ "engines": {
37
+ "node": ">=20.0.0"
38
+ },
39
+ "pi": {
40
+ "extensions": [
41
+ "./dist/index.js"
42
+ ]
43
+ },
44
+ "author": "Alessandro",
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "https://github.com/pungggi/pi-autocompletion-ghost"
48
+ },
49
+ "homepage": "https://github.com/pungggi/pi-autocompletion-ghost#readme",
50
+ "license": "SSPL-1.0",
51
+ "keywords": [
52
+ "pi",
53
+ "pi.dev",
54
+ "pi-package",
55
+ "pi-extension",
56
+ "autocomplete",
57
+ "ghost-text",
58
+ "tui",
59
+ "llm",
60
+ "ollama",
61
+ "groq"
62
+ ],
63
+ "peerDependencies": {
64
+ "@earendil-works/pi-agent-core": "^0.74.0",
65
+ "@earendil-works/pi-ai": "^0.74.0",
66
+ "@earendil-works/pi-coding-agent": "^0.74.0",
67
+ "@earendil-works/pi-tui": "^0.74.0"
68
+ },
69
+ "devDependencies": {
70
+ "@earendil-works/pi-agent-core": "^0.74.0",
71
+ "@earendil-works/pi-ai": "^0.74.0",
72
+ "@earendil-works/pi-coding-agent": "^0.74.0",
73
+ "@earendil-works/pi-tui": "^0.74.0",
74
+ "@types/node": "^20.11.0",
75
+ "esbuild": "^0.28.1",
76
+ "javascript-obfuscator": "^5.4.3",
77
+ "typescript": "^5.4.0",
78
+ "vitest": "^1.6.1"
79
+ },
80
+ "dependencies": {
81
+ "string-width": "^7.2.0",
82
+ "strip-ansi": "^7.2.0"
83
+ },
84
+ "optionalDependencies": {
85
+ "pi-ghost-autocomplete-darwin-arm64": "0.4.0",
86
+ "pi-ghost-autocomplete-linux-arm64-gnu": "0.4.0",
87
+ "pi-ghost-autocomplete-linux-x64-gnu": "0.4.0",
88
+ "pi-ghost-autocomplete-win32-x64-msvc": "0.4.0"
89
+ }
90
+ }
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=bench-cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bench-cli.d.ts","sourceRoot":"","sources":["../src/bench-cli.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bench-cli.js","sourceRoot":"","sources":["../src/bench-cli.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bench.d.ts","sourceRoot":"","sources":["../src/bench.ts"],"names":[],"mappings":"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"}
package/dist/bench.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bench.js","sourceRoot":"","sources":["../src/bench.ts"],"names":[],"mappings":"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"}
package/dist/cache.d.ts DELETED
@@ -1,124 +0,0 @@
1
- import type { RecentMessage } from "./context-aggregator.js";
2
- import { LastGhostsRing } from "./speculative.js";
3
- export declare const DEFAULT_CAPACITY = 256;
4
- export declare const DEFAULT_TTL_MS: number;
5
- export interface CacheValue {
6
- ghost: string;
7
- candidates?: string[];
8
- logprobs?: number[];
9
- ts: number;
10
- providerFingerprint: string;
11
- contextFingerprint: string;
12
- versionFingerprint: string;
13
- /** Engine config fingerprint at the time this entry was written
14
- * (refactor #57 phase 2). Optional — legacy entries / test fixtures
15
- * without it are treated as a wildcard match. */
16
- configFingerprint?: string;
17
- /**
18
- * Originating provider name. The editor attributes cache-hit metrics back
19
- * to this provider so bench rollups by provider stay accurate, instead of
20
- * collapsing all cache hits under a synthetic "cache" provider label.
21
- */
22
- providerName: string;
23
- }
24
- export interface CacheKeyInput {
25
- prefix: string;
26
- contextFingerprint: string;
27
- providerFingerprint: string;
28
- /**
29
- * Refactor #57 phase 2 — `FastPathEngine.getConfigFingerprint()` folded
30
- * into the cache key so a `PI_GHOST_*` knob change (rerank weights,
31
- * provisional, min-confidence, …) auto-invalidates affected entries.
32
- * Optional for legacy call sites + tests that don't construct an
33
- * engine; defaults to empty string (no folding) when omitted.
34
- */
35
- configFingerprint?: string;
36
- }
37
- /**
38
- * Build a stable cache key. Combines prefix, context fingerprint, provider
39
- * fingerprint, the global behavior fingerprint, and (optionally) the engine
40
- * config fingerprint so that prompt-template, sanitizer, context-aggregator,
41
- * reranker, profile-hint, AND env-knob changes all invalidate stale entries.
42
- */
43
- export declare function makeKey(input: CacheKeyInput): string;
44
- /**
45
- * Fingerprint over the final provider-visible input. The PRD requires this
46
- * to be computed over the rendered final input (after pruning/truncation)
47
- * rather than a raw branch slice. Callers should pass the same messages
48
- * array the provider will receive.
49
- *
50
- * Tool-call metadata (`toolName`) participates in the hash so distinct tool
51
- * results collapse to distinct fingerprints.
52
- */
53
- export declare function fingerprintRecentMessages(messages: RecentMessage[]): string;
54
- /**
55
- * Fingerprint identifying a provider configuration. Anything that, if
56
- * changed, would produce a different completion belongs here.
57
- */
58
- export declare function fingerprintProvider(parts: {
59
- kind: string;
60
- providerName: string;
61
- modelId: string;
62
- temperature: number;
63
- maxTokens: number;
64
- maxRecentMessages: number;
65
- extras?: Record<string, string | number | boolean | undefined>;
66
- }): string;
67
- /**
68
- * Small LRU cache for ghost completions.
69
- *
70
- * - Capacity-bounded; oldest entry is evicted on insert overflow.
71
- * - TTL-bounded; expired entries are treated as miss and removed lazily on
72
- * access.
73
- * - `delete()` is exposed so callers can explicitly evict on divergent
74
- * dismiss (see PRD §6 M1a).
75
- *
76
- * Not thread-safe, but the ghost editor is single-threaded.
77
- */
78
- export declare class CompletionCache {
79
- private readonly capacity;
80
- private readonly ttlMs;
81
- private readonly store;
82
- private hits;
83
- private misses;
84
- constructor(capacity?: number, ttlMs?: number);
85
- get size(): number;
86
- /** PRD §M3g — exposed via `/ghost` diagnostics. */
87
- get stats(): {
88
- size: number;
89
- hits: number;
90
- misses: number;
91
- hitRate: number;
92
- };
93
- get(key: string, now?: number): CacheValue | null;
94
- set(key: string, value: CacheValue): void;
95
- delete(key: string): boolean;
96
- clear(): void;
97
- }
98
- /**
99
- * Result of consulting the warm paths (cache, then speculative ring). The
100
- * editor uses this to decide whether to serve a ghost synchronously or fall
101
- * through to the debounce + LLM path. Extracted so the lookup ordering can
102
- * be tested without spinning up the full editor.
103
- */
104
- export interface WarmPathDecision {
105
- ghost: string;
106
- mode: "cache" | "speculative-warm";
107
- providerName: string;
108
- cacheKey: string;
109
- }
110
- export interface WarmPathInput {
111
- cache: CompletionCache;
112
- ring: LastGhostsRing;
113
- prefix: string;
114
- contextFingerprint: string;
115
- providerFingerprint: string;
116
- versionFingerprint: string;
117
- /** Engine config fingerprint folded into the cache key + warm-path
118
- * match (refactor #57 phase 2). Optional — omit for legacy callers. */
119
- configFingerprint?: string;
120
- cooldownActive: boolean;
121
- now?: number;
122
- }
123
- export declare function decideWarmPath(input: WarmPathInput): WarmPathDecision | null;
124
- //# sourceMappingURL=cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
package/dist/cache.js DELETED
@@ -1,173 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { combinedVersionFingerprint } from "./versions.js";
3
- import { tryWarm } from "./speculative.js";
4
- export const DEFAULT_CAPACITY = 256;
5
- export const DEFAULT_TTL_MS = 10 * 60 * 1000;
6
- /**
7
- * Build a stable cache key. Combines prefix, context fingerprint, provider
8
- * fingerprint, the global behavior fingerprint, and (optionally) the engine
9
- * config fingerprint so that prompt-template, sanitizer, context-aggregator,
10
- * reranker, profile-hint, AND env-knob changes all invalidate stale entries.
11
- */
12
- export function makeKey(input) {
13
- const sep = "\x00";
14
- const raw = [
15
- input.prefix,
16
- input.contextFingerprint,
17
- input.providerFingerprint,
18
- combinedVersionFingerprint(),
19
- input.configFingerprint ?? "",
20
- ].join(sep);
21
- return createHash("sha1").update(raw).digest("hex");
22
- }
23
- /**
24
- * Fingerprint over the final provider-visible input. The PRD requires this
25
- * to be computed over the rendered final input (after pruning/truncation)
26
- * rather than a raw branch slice. Callers should pass the same messages
27
- * array the provider will receive.
28
- *
29
- * Tool-call metadata (`toolName`) participates in the hash so distinct tool
30
- * results collapse to distinct fingerprints.
31
- */
32
- export function fingerprintRecentMessages(messages) {
33
- const h = createHash("sha1");
34
- for (const m of messages) {
35
- h.update(m.role);
36
- h.update("\x00");
37
- h.update(m.text);
38
- h.update("\x00");
39
- h.update(m.toolName ?? "");
40
- h.update("\x01");
41
- }
42
- return h.digest("hex");
43
- }
44
- /**
45
- * Fingerprint identifying a provider configuration. Anything that, if
46
- * changed, would produce a different completion belongs here.
47
- */
48
- export function fingerprintProvider(parts) {
49
- const e = parts.extras ?? {};
50
- const fields = [
51
- ["kind", parts.kind],
52
- ["providerName", parts.providerName],
53
- ["modelId", parts.modelId],
54
- ["temperature", String(parts.temperature)],
55
- ["maxTokens", String(parts.maxTokens)],
56
- ["maxRecentMessages", String(parts.maxRecentMessages)],
57
- ...Object.keys(e)
58
- .sort()
59
- .map((k) => [k, String(e[k] ?? "")]),
60
- ];
61
- const h = createHash("sha1");
62
- for (const [k, v] of fields) {
63
- h.update(k);
64
- h.update("=");
65
- h.update(v);
66
- h.update("\x00");
67
- }
68
- return h.digest("hex");
69
- }
70
- /**
71
- * Small LRU cache for ghost completions.
72
- *
73
- * - Capacity-bounded; oldest entry is evicted on insert overflow.
74
- * - TTL-bounded; expired entries are treated as miss and removed lazily on
75
- * access.
76
- * - `delete()` is exposed so callers can explicitly evict on divergent
77
- * dismiss (see PRD §6 M1a).
78
- *
79
- * Not thread-safe, but the ghost editor is single-threaded.
80
- */
81
- export class CompletionCache {
82
- capacity;
83
- ttlMs;
84
- store = new Map();
85
- hits = 0;
86
- misses = 0;
87
- constructor(capacity = DEFAULT_CAPACITY, ttlMs = DEFAULT_TTL_MS) {
88
- this.capacity = capacity;
89
- this.ttlMs = ttlMs;
90
- }
91
- get size() {
92
- return this.store.size;
93
- }
94
- /** PRD §M3g — exposed via `/ghost` diagnostics. */
95
- get stats() {
96
- const total = this.hits + this.misses;
97
- return {
98
- size: this.store.size,
99
- hits: this.hits,
100
- misses: this.misses,
101
- hitRate: total > 0 ? this.hits / total : 0,
102
- };
103
- }
104
- get(key, now = Date.now()) {
105
- const v = this.store.get(key);
106
- if (!v) {
107
- this.misses++;
108
- return null;
109
- }
110
- if (now - v.ts > this.ttlMs) {
111
- this.store.delete(key);
112
- this.misses++;
113
- return null;
114
- }
115
- // LRU touch: re-insert to move to end.
116
- this.store.delete(key);
117
- this.store.set(key, v);
118
- this.hits++;
119
- return v;
120
- }
121
- set(key, value) {
122
- if (this.store.has(key))
123
- this.store.delete(key);
124
- this.store.set(key, value);
125
- while (this.store.size > this.capacity) {
126
- const oldest = this.store.keys().next().value;
127
- if (oldest === undefined)
128
- break;
129
- this.store.delete(oldest);
130
- }
131
- }
132
- delete(key) {
133
- return this.store.delete(key);
134
- }
135
- clear() {
136
- this.store.clear();
137
- }
138
- }
139
- export function decideWarmPath(input) {
140
- const cacheKey = makeKey({
141
- prefix: input.prefix,
142
- contextFingerprint: input.contextFingerprint,
143
- providerFingerprint: input.providerFingerprint,
144
- ...(input.configFingerprint !== undefined ? { configFingerprint: input.configFingerprint } : {}),
145
- });
146
- const hit = input.cache.get(cacheKey, input.now);
147
- if (hit && hit.ghost) {
148
- return {
149
- ghost: hit.ghost,
150
- mode: "cache",
151
- providerName: hit.providerName,
152
- cacheKey,
153
- };
154
- }
155
- const match = tryWarm(input.ring, {
156
- prefix: input.prefix,
157
- contextFingerprint: input.contextFingerprint,
158
- providerFingerprint: input.providerFingerprint,
159
- versionFingerprint: input.versionFingerprint,
160
- ...(input.configFingerprint !== undefined ? { configFingerprint: input.configFingerprint } : {}),
161
- cooldownActive: input.cooldownActive,
162
- });
163
- if (match) {
164
- return {
165
- ghost: match.ghost,
166
- mode: "speculative-warm",
167
- providerName: match.source.providerName,
168
- cacheKey,
169
- };
170
- }
171
- return null;
172
- }
173
- //# sourceMappingURL=cache.js.map
package/dist/cache.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- /**
2
- * Pure rerank pipeline for an LLM `CandidateSet`. Extracted from
3
- * `GhostEditor.requestPrediction` as part of refactor #57 so the editor
4
- * stays thin and the rerank-+-confidence-gate path is unit-testable in
5
- * isolation.
6
- *
7
- * PRD §M3c (weighted reranker) + §M3c.1 (confidence gate) + §M4
8
- * (profile-bias signal). Single-candidate sets bypass the reranker
9
- * entirely — there is no reordering to do and the confidence gate is
10
- * not applicable (it operates on the reranked top-vs-second margin).
11
- *
12
- * No `this`, no I/O, no editor state — caller supplies env strings and
13
- * an optional `profileBias` function.
14
- */
15
- export interface RerankCandidateSetInput {
16
- /** Provider's raw candidate list (post-dedup). At least one entry expected. */
17
- candidates: {
18
- text: string;
19
- avgLogprob?: number;
20
- }[];
21
- /** Provider name — drives the local-vs-cloud bias in the reranker. */
22
- providerName: string;
23
- /** Full text-before-cursor at request time. Used to slice the
24
- * last-line prefix for the lengthPrior curve. */
25
- prefix: string;
26
- /** Raw `PI_GHOST_RERANK_WEIGHTS` env value. */
27
- weightsEnvRaw: string | undefined;
28
- /** Raw `PI_GHOST_MIN_CONFIDENCE` env value. `undefined` disables
29
- * the gate entirely; an invalid string is treated as "no gate". */
30
- minConfidenceEnvRaw: string | undefined;
31
- /** Optional cross-session profile-bias hook (M4). */
32
- profileBias?: (text: string) => number;
33
- /**
34
- * Enhancement #1 — optional edit-history proximity scorer. Receives raw
35
- * candidate text; returns a real number (negative permitted for tokens
36
- * recently deleted). Missing → all candidates score 0 in that feature.
37
- */
38
- editProximityScorer?: (text: string) => number;
39
- }
40
- export type RerankCandidateSetResult = {
41
- gated: false;
42
- candidateTexts: string[];
43
- topText: string;
44
- /** Top-candidate raw editProximity score (un-normalized). Populated
45
- * only when `editProximityScorer` was supplied. */
46
- topEditProximityScore?: number;
47
- } | {
48
- gated: true;
49
- };
50
- /**
51
- * Rerank a candidate set + apply the optional confidence gate. Returns
52
- * `{ gated: true }` when the gate rejected the result (caller should emit
53
- * a `rejected` metric and skip rendering). Otherwise returns the reordered
54
- * candidate texts plus the top pick.
55
- */
56
- export declare function rerankCandidateSet(input: RerankCandidateSetInput): RerankCandidateSetResult;
57
- //# sourceMappingURL=candidate-rerank.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"candidate-rerank.d.ts","sourceRoot":"","sources":["../src/candidate-rerank.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,MAAM,WAAW,uBAAuB;IACvC,+EAA+E;IAC/E,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpD,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB;sDACkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;wEACoE;IACpE,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,qDAAqD;IACrD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/C;AAED,MAAM,MAAM,wBAAwB,GACjC;IACA,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB;wDACoD;IACpD,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC9B,GACD;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CAAC;AAEnB;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,wBAAwB,CAsD3F"}