pi-ghost-autocomplete 0.3.2 → 0.5.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 (170) hide show
  1. package/LICENSE +561 -0
  2. package/README.md +186 -4
  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 +46 -3
  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 +7 -2
  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-chat-provider.d.ts +31 -0
  24. package/dist/providers/openai-compat-provider.d.ts +24 -1
  25. package/dist/providers/race.d.ts +4 -1
  26. package/dist/providers/router.d.ts +59 -0
  27. package/dist/providers/types.d.ts +13 -1
  28. package/dist/recent-paths.d.ts +4 -1
  29. package/dist/replay-cli.js +1 -166
  30. package/dist/replay.d.ts +2 -7
  31. package/package.json +10 -6
  32. package/dist/bench-cli.d.ts +0 -3
  33. package/dist/bench-cli.d.ts.map +0 -1
  34. package/dist/bench-cli.js.map +0 -1
  35. package/dist/bench.d.ts.map +0 -1
  36. package/dist/bench.js.map +0 -1
  37. package/dist/cache.d.ts +0 -124
  38. package/dist/cache.d.ts.map +0 -1
  39. package/dist/cache.js +0 -173
  40. package/dist/cache.js.map +0 -1
  41. package/dist/candidate-rerank.d.ts +0 -57
  42. package/dist/candidate-rerank.d.ts.map +0 -1
  43. package/dist/candidate-rerank.js +0 -78
  44. package/dist/candidate-rerank.js.map +0 -1
  45. package/dist/config.d.ts.map +0 -1
  46. package/dist/config.js +0 -317
  47. package/dist/config.js.map +0 -1
  48. package/dist/context-aggregator.d.ts.map +0 -1
  49. package/dist/context-aggregator.js +0 -87
  50. package/dist/context-aggregator.js.map +0 -1
  51. package/dist/context-selector.d.ts +0 -128
  52. package/dist/context-selector.d.ts.map +0 -1
  53. package/dist/context-selector.js +0 -300
  54. package/dist/context-selector.js.map +0 -1
  55. package/dist/cycle-manager.d.ts.map +0 -1
  56. package/dist/cycle-manager.js +0 -168
  57. package/dist/cycle-manager.js.map +0 -1
  58. package/dist/edit-history-ring.d.ts +0 -148
  59. package/dist/edit-history-ring.d.ts.map +0 -1
  60. package/dist/edit-history-ring.js +0 -262
  61. package/dist/edit-history-ring.js.map +0 -1
  62. package/dist/entropy-stop.d.ts.map +0 -1
  63. package/dist/entropy-stop.js +0 -141
  64. package/dist/entropy-stop.js.map +0 -1
  65. package/dist/eval-dataset.d.ts.map +0 -1
  66. package/dist/eval-dataset.js +0 -127
  67. package/dist/eval-dataset.js.map +0 -1
  68. package/dist/fast-path-engine.d.ts +0 -286
  69. package/dist/fast-path-engine.d.ts.map +0 -1
  70. package/dist/fast-path-engine.js +0 -341
  71. package/dist/fast-path-engine.js.map +0 -1
  72. package/dist/fuzzy-matcher.d.ts.map +0 -1
  73. package/dist/fuzzy-matcher.js +0 -162
  74. package/dist/fuzzy-matcher.js.map +0 -1
  75. package/dist/ghost-editor.d.ts.map +0 -1
  76. package/dist/ghost-editor.js +0 -1491
  77. package/dist/ghost-editor.js.map +0 -1
  78. package/dist/index.d.ts.map +0 -1
  79. package/dist/index.js.map +0 -1
  80. package/dist/keystroke-timer.d.ts +0 -59
  81. package/dist/keystroke-timer.d.ts.map +0 -1
  82. package/dist/keystroke-timer.js +0 -94
  83. package/dist/keystroke-timer.js.map +0 -1
  84. package/dist/metrics-builder.d.ts +0 -71
  85. package/dist/metrics-builder.d.ts.map +0 -1
  86. package/dist/metrics-builder.js +0 -71
  87. package/dist/metrics-builder.js.map +0 -1
  88. package/dist/metrics.d.ts.map +0 -1
  89. package/dist/metrics.js +0 -212
  90. package/dist/metrics.js.map +0 -1
  91. package/dist/path-index.d.ts.map +0 -1
  92. package/dist/path-index.js +0 -148
  93. package/dist/path-index.js.map +0 -1
  94. package/dist/path-matcher.d.ts.map +0 -1
  95. package/dist/path-matcher.js +0 -88
  96. package/dist/path-matcher.js.map +0 -1
  97. package/dist/profile-store.d.ts.map +0 -1
  98. package/dist/profile-store.js +0 -199
  99. package/dist/profile-store.js.map +0 -1
  100. package/dist/profile.d.ts.map +0 -1
  101. package/dist/profile.js +0 -434
  102. package/dist/profile.js.map +0 -1
  103. package/dist/providers/cloud-provider.d.ts.map +0 -1
  104. package/dist/providers/cloud-provider.js +0 -109
  105. package/dist/providers/cloud-provider.js.map +0 -1
  106. package/dist/providers/local-provider.d.ts.map +0 -1
  107. package/dist/providers/local-provider.js +0 -48
  108. package/dist/providers/local-provider.js.map +0 -1
  109. package/dist/providers/openai-compat-provider.d.ts.map +0 -1
  110. package/dist/providers/openai-compat-provider.js +0 -215
  111. package/dist/providers/openai-compat-provider.js.map +0 -1
  112. package/dist/providers/openai-completions-runner.d.ts +0 -52
  113. package/dist/providers/openai-completions-runner.d.ts.map +0 -1
  114. package/dist/providers/openai-completions-runner.js +0 -141
  115. package/dist/providers/openai-completions-runner.js.map +0 -1
  116. package/dist/providers/race.d.ts.map +0 -1
  117. package/dist/providers/race.js +0 -441
  118. package/dist/providers/race.js.map +0 -1
  119. package/dist/providers/truncate.d.ts +0 -7
  120. package/dist/providers/truncate.d.ts.map +0 -1
  121. package/dist/providers/truncate.js +0 -57
  122. package/dist/providers/truncate.js.map +0 -1
  123. package/dist/providers/types.d.ts.map +0 -1
  124. package/dist/providers/types.js +0 -60
  125. package/dist/providers/types.js.map +0 -1
  126. package/dist/provisional-manager.d.ts +0 -93
  127. package/dist/provisional-manager.d.ts.map +0 -1
  128. package/dist/provisional-manager.js +0 -98
  129. package/dist/provisional-manager.js.map +0 -1
  130. package/dist/provisional.d.ts +0 -150
  131. package/dist/provisional.d.ts.map +0 -1
  132. package/dist/provisional.js +0 -238
  133. package/dist/provisional.js.map +0 -1
  134. package/dist/recent-paths.d.ts.map +0 -1
  135. package/dist/recent-paths.js +0 -114
  136. package/dist/recent-paths.js.map +0 -1
  137. package/dist/regret-tracker.d.ts +0 -84
  138. package/dist/regret-tracker.d.ts.map +0 -1
  139. package/dist/regret-tracker.js +0 -145
  140. package/dist/regret-tracker.js.map +0 -1
  141. package/dist/replay-cli.d.ts +0 -13
  142. package/dist/replay-cli.d.ts.map +0 -1
  143. package/dist/replay-cli.js.map +0 -1
  144. package/dist/replay.d.ts.map +0 -1
  145. package/dist/replay.js +0 -225
  146. package/dist/replay.js.map +0 -1
  147. package/dist/reranker.d.ts +0 -181
  148. package/dist/reranker.d.ts.map +0 -1
  149. package/dist/reranker.js +0 -324
  150. package/dist/reranker.js.map +0 -1
  151. package/dist/session-trie.d.ts +0 -103
  152. package/dist/session-trie.d.ts.map +0 -1
  153. package/dist/session-trie.js +0 -280
  154. package/dist/session-trie.js.map +0 -1
  155. package/dist/speculative.d.ts +0 -74
  156. package/dist/speculative.d.ts.map +0 -1
  157. package/dist/speculative.js +0 -107
  158. package/dist/speculative.js.map +0 -1
  159. package/dist/tool-summarize.d.ts +0 -40
  160. package/dist/tool-summarize.d.ts.map +0 -1
  161. package/dist/tool-summarize.js +0 -245
  162. package/dist/tool-summarize.js.map +0 -1
  163. package/dist/trie-sanitize.d.ts +0 -22
  164. package/dist/trie-sanitize.d.ts.map +0 -1
  165. package/dist/trie-sanitize.js +0 -142
  166. package/dist/trie-sanitize.js.map +0 -1
  167. package/dist/versions.d.ts +0 -23
  168. package/dist/versions.d.ts.map +0 -1
  169. package/dist/versions.js +0 -31
  170. 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,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-ghost-autocomplete",
3
- "version": "0.3.2",
3
+ "version": "0.5.0",
4
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
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -21,15 +21,17 @@
21
21
  },
22
22
  "files": [
23
23
  "dist",
24
+ "!dist/**/*.node",
24
25
  "README.md"
25
26
  ],
26
27
  "scripts": {
27
28
  "clean": "node -e \"fs.rmSync('dist',{recursive:true,force:true})\"",
28
- "build": "tsc -p tsconfig.json",
29
+ "build": "node scripts/build.mjs",
30
+ "build:dev": "tsc -p tsconfig.json",
29
31
  "typecheck": "tsc -p tsconfig.json --noEmit",
30
32
  "test": "vitest run",
31
33
  "test:watch": "vitest",
32
- "prepublishOnly": "npm run clean && npm run build"
34
+ "prepack": "node scripts/build.mjs"
33
35
  },
34
36
  "engines": {
35
37
  "node": ">=20.0.0"
@@ -42,10 +44,10 @@
42
44
  "author": "Alessandro",
43
45
  "repository": {
44
46
  "type": "git",
45
- "url": "https://github.com/pungggi/pi-ghost-autocomplete"
47
+ "url": "https://github.com/pungggi/pi-autocompletion-ghost"
46
48
  },
47
- "homepage": "https://github.com/pungggi/pi-ghost-autocomplete#readme",
48
- "license": "MIT",
49
+ "homepage": "https://github.com/pungggi/pi-autocompletion-ghost#readme",
50
+ "license": "SSPL-1.0",
49
51
  "keywords": [
50
52
  "pi",
51
53
  "pi.dev",
@@ -70,6 +72,8 @@
70
72
  "@earendil-works/pi-coding-agent": "^0.74.0",
71
73
  "@earendil-works/pi-tui": "^0.74.0",
72
74
  "@types/node": "^20.11.0",
75
+ "esbuild": "^0.28.1",
76
+ "javascript-obfuscator": "^5.4.3",
73
77
  "typescript": "^5.4.0",
74
78
  "vitest": "^1.6.1"
75
79
  },
@@ -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"}
@@ -1,78 +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
- import { applyConfidenceGate, parseMinConfidenceEnv, parseWeightsEnv, rerank, } from "./reranker.js";
16
- /**
17
- * Rerank a candidate set + apply the optional confidence gate. Returns
18
- * `{ gated: true }` when the gate rejected the result (caller should emit
19
- * a `rejected` metric and skip rendering). Otherwise returns the reordered
20
- * candidate texts plus the top pick.
21
- */
22
- export function rerankCandidateSet(input) {
23
- // Empty set is structurally invalid for this function — the caller
24
- // must guard for `!result || !set` BEFORE invoking. Treat as gated so
25
- // any future re-use can't silently render an empty ghost.
26
- if (input.candidates.length === 0) {
27
- return { gated: true };
28
- }
29
- // Single-candidate path: nothing to reorder, gate doesn't apply
30
- // (it needs a top-vs-second margin). Still surface editProximity raw
31
- // score for metric capture when scorer was supplied.
32
- if (input.candidates.length === 1) {
33
- const only = input.candidates[0];
34
- const ep = input.editProximityScorer ? input.editProximityScorer(only.text) : undefined;
35
- return {
36
- gated: false,
37
- candidateTexts: [only.text],
38
- topText: only.text,
39
- ...(ep !== undefined ? { topEditProximityScore: ep } : {}),
40
- };
41
- }
42
- const local = input.providerName === "ghost-local";
43
- const inputs = input.candidates.map((c) => ({
44
- text: c.text,
45
- provider: input.providerName,
46
- local,
47
- ...(c.avgLogprob !== undefined ? { avgLogprob: c.avgLogprob } : {}),
48
- }));
49
- // PRD-adjacent (#5): pass last-line prefix length so the lengthPrior
50
- // curve scales for long-prefix queries. Document-level length would
51
- // over-extend the curve on multi-line buffers; the active line is
52
- // what the user is currently typing.
53
- const lastLinePrefix = input.prefix.split("\n").pop() ?? "";
54
- const ranked = rerank(inputs, {
55
- weights: parseWeightsEnv(input.weightsEnvRaw),
56
- prefixLen: lastLinePrefix.length,
57
- ...(input.profileBias ? { profileBias: input.profileBias } : {}),
58
- ...(input.editProximityScorer ? { editProximityScorer: input.editProximityScorer } : {}),
59
- });
60
- if (input.minConfidenceEnvRaw !== undefined) {
61
- const gated = applyConfidenceGate(ranked, {
62
- minConfidence: parseMinConfidenceEnv(input.minConfidenceEnvRaw),
63
- });
64
- if (!gated)
65
- return { gated: true };
66
- }
67
- const topText = ranked[0].text;
68
- const topEditProximityScore = input.editProximityScorer
69
- ? input.editProximityScorer(topText)
70
- : undefined;
71
- return {
72
- gated: false,
73
- candidateTexts: ranked.map((r) => r.text),
74
- topText,
75
- ...(topEditProximityScore !== undefined ? { topEditProximityScore } : {}),
76
- };
77
- }
78
- //# sourceMappingURL=candidate-rerank.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"candidate-rerank.js","sourceRoot":"","sources":["../src/candidate-rerank.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,eAAe,GAAG,MAAM,CAAC;AAExE,MAAM,WAAW,0BAA0B;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC,mBAAmB,GAAG,mBAAmB,GAAG,0BAA0B,CAAC,CAAC;IACvF,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GACvB,mBAAmB,GACnB,mBAAmB,GACnB,0BAA0B,GAC1B,kBAAkB,CAAC;AAEtB,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,oBAAoB,EAAE,mBAQlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,mBAQlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,0BAUpC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAK5B,CAAC;AAqBF,wBAAgB,iBAAiB,IAAI,WAAW,CAwD/C;AAsHD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAI1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAEzC;AAaD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAsB,GAAG,MAAM,GAAG,IAAI,CAsB3F"}