kiokuko 1.0.44 → 1.0.45

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 (32) hide show
  1. package/dist/embedding/model-download.d.ts.map +1 -1
  2. package/dist/embedding/model-download.js +52 -9
  3. package/dist/embedding/model-download.js.map +1 -1
  4. package/dist/embedding/model-installation.d.ts.map +1 -1
  5. package/dist/embedding/model-installation.js +11 -0
  6. package/dist/embedding/model-installation.js.map +1 -1
  7. package/dist/mcp/chatgpt-contract.d.ts +113 -2
  8. package/dist/mcp/chatgpt-contract.d.ts.map +1 -1
  9. package/dist/mcp/chatgpt-contract.js +21 -1
  10. package/dist/mcp/chatgpt-contract.js.map +1 -1
  11. package/dist/mcp/chatgpt-server.d.ts.map +1 -1
  12. package/dist/mcp/chatgpt-server.js +32 -2
  13. package/dist/mcp/chatgpt-server.js.map +1 -1
  14. package/dist/mcp/correction-review.d.ts +43 -0
  15. package/dist/mcp/correction-review.d.ts.map +1 -0
  16. package/dist/mcp/correction-review.js +62 -0
  17. package/dist/mcp/correction-review.js.map +1 -0
  18. package/dist/memory/correction-contract.d.ts +27 -0
  19. package/dist/memory/correction-contract.d.ts.map +1 -0
  20. package/dist/memory/correction-contract.js +14 -0
  21. package/dist/memory/correction-contract.js.map +1 -0
  22. package/dist/memory/git-provenance.d.ts.map +1 -1
  23. package/dist/memory/git-provenance.js +28 -0
  24. package/dist/memory/git-provenance.js.map +1 -1
  25. package/dist/reranker/runtime.d.ts.map +1 -1
  26. package/dist/reranker/runtime.js +121 -124
  27. package/dist/reranker/runtime.js.map +1 -1
  28. package/docs/chatgpt.md +12 -0
  29. package/docs/cli-contract.md +10 -2
  30. package/docs/client-compatibility.md +1 -1
  31. package/package.json +1 -1
  32. package/templates/chatgpt/memory-policy.json +1 -1
@@ -0,0 +1,62 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { readEntry } from '../memory/entries.js';
3
+ import { correctionSource, compatibilityDecisionConflicts } from '../memory/correction-contract.js';
4
+ import { canonicalContentHash } from '../serialization/validate.js';
5
+ import { KiokukoError } from '../errors.js';
6
+ /** Process-local read receipts. Never stores a memory, transcript or model attestation. */
7
+ export class CorrectionRecallBook {
8
+ now;
9
+ #receipts = new Map();
10
+ #lastRetrieval = 'not_requested';
11
+ constructor(now = () => performance.now()) {
12
+ this.now = now;
13
+ }
14
+ observeAttempt() { this.#lastRetrieval = 'unavailable'; }
15
+ remember(db, query, items) {
16
+ const sources = items.flatMap(item => {
17
+ const entry = readEntry(db, { workspace: item.workspace, entryId: item.entryId });
18
+ return entry.provenance.type === 'interaction_capture' && entry.provenance.reference === 'user_correction'
19
+ ? [correctionSource(entry, item.workspace === 'global' ? 'global' : 'project')] : [];
20
+ });
21
+ this.#expire();
22
+ if (this.#receipts.size >= 64)
23
+ this.#receipts.delete(this.#receipts.keys().next().value);
24
+ const value = { schema: 'correction-context-v1', recallId: randomUUID(), requestDigest: canonicalContentHash(query), itemsDigest: canonicalContentHash(items),
25
+ retrieval: sources.length ? 'retrieved' : 'no_correction', modelInput: 'unobserved', sources };
26
+ this.#receipts.set(value.recallId, { at: this.now(), value });
27
+ this.#lastRetrieval = value.retrieval;
28
+ return value;
29
+ }
30
+ #expire() { for (const [id, receipt] of this.#receipts)
31
+ if (this.now() - receipt.at > 30 * 60 * 1000)
32
+ this.#receipts.delete(id); }
33
+ check(db, recallId, decision) {
34
+ this.#expire();
35
+ const receipt = recallId === undefined ? undefined : this.#receipts.get(recallId)?.value;
36
+ if (recallId !== undefined && !receipt)
37
+ throw new KiokukoError('CONFLICT', 'Recall receipt is unavailable in this connection');
38
+ const base = { retrieval: receipt?.retrieval ?? this.#lastRetrieval, binding: receipt ? 'bound' : 'missing', modelInput: 'unobserved', verification: 'unverified', authorizationGranted: false,
39
+ target: decision.target, decisionDigest: canonicalContentHash(decision), sources: receipt?.sources ?? [], ...(receipt ? { requestDigest: receipt.requestDigest, itemsDigest: receipt.itemsDigest } : {}) };
40
+ if (!receipt)
41
+ return { ...base, state: 'unverified', reason: this.#lastRetrieval === 'not_requested' ? 'not_requested' : 'recall_receipt_not_bound' };
42
+ if (receipt.retrieval !== 'retrieved')
43
+ return { ...base, state: 'unverified', reason: receipt.retrieval };
44
+ if (!db)
45
+ throw new KiokukoError('SERVICE_UNAVAILABLE', 'Correction source is unavailable');
46
+ const current = receipt.sources.every(source => {
47
+ try {
48
+ const entry = readEntry(db, { workspace: source.workspace, entryId: source.entryId });
49
+ return entry.status !== 'superseded' && canonicalContentHash(correctionSource(entry, source.origin)) === canonicalContentHash(source);
50
+ }
51
+ catch {
52
+ return false;
53
+ }
54
+ });
55
+ if (!current)
56
+ return { ...base, state: 'stale', reason: 'correction_source_changed' };
57
+ if (compatibilityDecisionConflicts(receipt.sources, decision))
58
+ return { ...base, state: 'contradiction', reason: 'version_only_compatibility_rejection' };
59
+ return { ...base, state: 'unverified', reason: decision.kind === 'completion' ? 'host_verification_unobserved' : 'no_machine_verified_application' };
60
+ }
61
+ }
62
+ //# sourceMappingURL=correction-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correction-review.js","sourceRoot":"","sources":["../../src/mcp/correction-review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /** Same source contract in Kiokuko and DSH. A source identity is not proof of use. */
2
+ export interface CorrectionSource {
3
+ entryId: string;
4
+ revision: number;
5
+ workspace: string;
6
+ origin: string;
7
+ sourceDigest: string;
8
+ rule: 'capability_compatibility' | 'reference';
9
+ }
10
+ export type CorrectionRetrieval = 'not_requested' | 'no_correction' | 'retrieved' | 'unavailable';
11
+ export interface CorrectionEntry {
12
+ id: string;
13
+ revision: number;
14
+ workspace: string;
15
+ title: string;
16
+ body: string;
17
+ summary?: string | null;
18
+ provenance: Record<string, unknown>;
19
+ }
20
+ export declare function correctionSource(entry: CorrectionEntry, origin: string): CorrectionSource;
21
+ export declare function compatibilityDecisionConflicts(sources: readonly CorrectionSource[], decision: {
22
+ kind: string;
23
+ basis: string;
24
+ requiredVersion?: string;
25
+ observedVersion?: string;
26
+ }): boolean;
27
+ //# sourceMappingURL=correction-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correction-contract.d.ts","sourceRoot":"","sources":["../../src/memory/correction-contract.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,MAAM,CAAC;IAAA,MAAM,EAAC,MAAM,CAAC;IAAA,YAAY,EAAC,MAAM,CAAA;IACjF,IAAI,EAAC,0BAA0B,GAAC,WAAW,CAAA;CAC5C;AACD,MAAM,MAAM,mBAAmB,GAAC,eAAe,GAAC,eAAe,GAAC,WAAW,GAAC,aAAa,CAAA;AACzF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,MAAM,CAAC;IAAA,KAAK,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAC;IAAA,OAAO,CAAC,EAAC,MAAM,GAAC,IAAI,CAAA;IACxF,UAAU,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAA;CAClC;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAC,eAAe,EAAC,MAAM,EAAC,MAAM,GAAE,gBAAgB,CAOrF;AACD,wBAAgB,8BAA8B,CAAC,OAAO,EAAC,SAAS,gBAAgB,EAAE,EAAC,QAAQ,EAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAA,KAAK,EAAC,MAAM,CAAC;IAAA,eAAe,CAAC,EAAC,MAAM,CAAC;IAAA,eAAe,CAAC,EAAC,MAAM,CAAA;CAAC,GAAE,OAAO,CAG9K"}
@@ -0,0 +1,14 @@
1
+ import { canonicalContentHash } from '../serialization/validate.js';
2
+ export function correctionSource(entry, origin) {
3
+ const text = [entry.title, entry.summary ?? entry.body].join('\n');
4
+ const version = /version|compiler|版数|バージョン|版番号/iu.test(text);
5
+ const capability = /capabilit|only because|solely|不要.*固定|決め打ち|能力|互換性.*確認|版.*だけ/iu.test(text);
6
+ return { entryId: entry.id, revision: entry.revision, workspace: entry.workspace, origin,
7
+ sourceDigest: canonicalContentHash({ title: entry.title, body: entry.body, summary: entry.summary, provenance: entry.provenance }),
8
+ rule: version && capability ? 'capability_compatibility' : 'reference' };
9
+ }
10
+ export function compatibilityDecisionConflicts(sources, decision) {
11
+ return sources.some(source => source.rule === 'capability_compatibility') && decision.kind === 'compatibility'
12
+ && decision.basis === 'version_only' && decision.requiredVersion !== decision.observedVersion;
13
+ }
14
+ //# sourceMappingURL=correction-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correction-contract.js","sourceRoot":"","sources":["../../src/memory/correction-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAA;AAYjE,MAAM,UAAU,gBAAgB,CAAC,KAAqB,EAAC,MAAa;IAClE,MAAM,IAAI,GAAC,CAAC,KAAK,CAAC,KAAK,EAAC,KAAK,CAAC,OAAO,IAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7D,MAAM,OAAO,GAAC,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1D,MAAM,UAAU,GAAC,8DAA8D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1F,OAAO,EAAC,OAAO,EAAC,KAAK,CAAC,EAAE,EAAC,QAAQ,EAAC,KAAK,CAAC,QAAQ,EAAC,SAAS,EAAC,KAAK,CAAC,SAAS,EAAC,MAAM;QAC/E,YAAY,EAAC,oBAAoB,CAAC,EAAC,KAAK,EAAC,KAAK,CAAC,KAAK,EAAC,IAAI,EAAC,KAAK,CAAC,IAAI,EAAC,OAAO,EAAC,KAAK,CAAC,OAAO,EAAC,UAAU,EAAC,KAAK,CAAC,UAAU,EAAC,CAAC;QACxH,IAAI,EAAC,OAAO,IAAE,UAAU,CAAA,CAAC,CAAA,0BAA0B,CAAA,CAAC,CAAA,WAAW,EAAC,CAAA;AACpE,CAAC;AACD,MAAM,UAAU,8BAA8B,CAAC,OAAmC,EAAC,QAAmF;IACpK,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA,EAAE,CAAA,MAAM,CAAC,IAAI,KAAG,0BAA0B,CAAC,IAAE,QAAQ,CAAC,IAAI,KAAG,eAAe;WAClG,QAAQ,CAAC,KAAK,KAAG,cAAc,IAAE,QAAQ,CAAC,eAAe,KAAG,QAAQ,CAAC,eAAe,CAAA;AAC1F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"git-provenance.d.ts","sourceRoot":"","sources":["../../src/memory/git-provenance.ts"],"names":[],"mappings":"AAMA,UAAU,wBAAwB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AACD,KAAK,qBAAqB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,wBAAwB,KAAK,MAAM,CAAC;AAsG/G,+FAA+F;AAC/F,wBAAgB,6BAA6B,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,qBAAkC,GAAG,MAAM,GAAG,IAAI,CAyBhI"}
1
+ {"version":3,"file":"git-provenance.d.ts","sourceRoot":"","sources":["../../src/memory/git-provenance.ts"],"names":[],"mappings":"AAMA,UAAU,wBAAwB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AACD,KAAK,qBAAqB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,wBAAwB,KAAK,MAAM,CAAC;AA+G/G,+FAA+F;AAC/F,wBAAgB,6BAA6B,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,qBAAkC,GAAG,MAAM,GAAG,IAAI,CAgChI"}
@@ -78,6 +78,15 @@ function singleLine(output) {
78
78
  throw unavailable();
79
79
  return line;
80
80
  }
81
+ /** The registered root, not a discovered parent or configured work tree, owns provenance. */
82
+ function assertRepositoryRoot(cwd, run) {
83
+ const bare = singleLine(run(['rev-parse', '--is-bare-repository']));
84
+ if (bare !== 'true' && bare !== 'false')
85
+ throw unavailable();
86
+ const observed = singleLine(run(['rev-parse', bare === 'true' ? '--absolute-git-dir' : '--show-toplevel']));
87
+ if (!path.isAbsolute(observed) || realpathSync(observed) !== realpathSync(cwd))
88
+ throw unavailable();
89
+ }
81
90
  function confirmAbsentCommit(error, cwd, env, run, checkDeadline) {
82
91
  const boundary = nonRepositoryBoundary(error);
83
92
  const unborn = diagnostic(error) === 'fatal: Needed a single revision';
@@ -95,6 +104,7 @@ function confirmAbsentCommit(error, cwd, env, run, checkDeadline) {
95
104
  }
96
105
  if (!unborn)
97
106
  throw unavailable(); // Repository changed during the probes.
107
+ assertRepositoryRoot(cwd, run);
98
108
  const ref = singleLine(run(['symbolic-ref', '--quiet', 'HEAD']));
99
109
  if (!ref.startsWith('refs/heads/'))
100
110
  throw unavailable();
@@ -118,6 +128,17 @@ function confirmAbsentCommit(error, cwd, env, run, checkDeadline) {
118
128
  export function resolveCheckpointSourceCommit(repositoryRoot, execute = executeGit) {
119
129
  const deadline = performance.now() + 5_000;
120
130
  const env = { ...process.env, LC_ALL: 'C', LANG: 'C' };
131
+ // Match applicability-context: host Git overrides must not rebind a registered checkout.
132
+ for (const key of Object.keys(env))
133
+ if (key.startsWith('GIT_'))
134
+ delete env[key];
135
+ // Never discover a parent checkout when the registered directory is not itself a repository.
136
+ try {
137
+ env.GIT_CEILING_DIRECTORIES = path.dirname(realpathSync(repositoryRoot));
138
+ }
139
+ catch {
140
+ throw unavailable();
141
+ }
121
142
  const remaining = () => {
122
143
  const budget = Math.ceil(deadline - performance.now());
123
144
  if (budget <= 0)
@@ -148,6 +169,13 @@ export function resolveCheckpointSourceCommit(repositoryRoot, execute = executeG
148
169
  if (!/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u.test(commit)) {
149
170
  throw new KiokukoError('INTEGRITY_ERROR', 'Git checkpoint provenance is invalid');
150
171
  }
172
+ try {
173
+ assertRepositoryRoot(repositoryRoot, run);
174
+ remaining();
175
+ }
176
+ catch {
177
+ throw unavailable();
178
+ }
151
179
  return commit;
152
180
  }
153
181
  //# sourceMappingURL=git-provenance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-provenance.js","sourceRoot":"","sources":["../../src/memory/git-provenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-provenance.js","sourceRoot":"","sources":["../../src/memory/git-provenance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/reranker/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,YAAY,EAAuC,MAAM,oBAAoB,CAAC;AAMhG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IACtH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAuBD,eAAO,MAAM,wBAAwB,QAAkB,CAAC;AAgDxD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC;CACtC;AAED,gGAAgG;AAChG,qBAAa,oBAAqB,YAAW,oBAAoB;;gBAWnD,OAAO,EAAE,2BAA2B;IAIhD,KAAK,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,GAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC;IAuMnH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB7B;AAED,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,2BAA2B,EAAE,gBAAgB,CAAM,GAAG,oBAAoB,CAE1J;AAED,wBAAgB,uBAAuB,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAE7F"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/reranker/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,YAAY,EAAuC,MAAM,oBAAoB,CAAC;AAMhG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IACtH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AA6BD,eAAO,MAAM,wBAAwB,QAAkB,CAAC;AAgDxD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC;CACtC;AAED,gGAAgG;AAChG,qBAAa,oBAAqB,YAAW,oBAAoB;;gBAUnD,OAAO,EAAE,2BAA2B;IAIhD,KAAK,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,GAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC;IAkNzH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAWvB;AAED,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,2BAA2B,EAAE,gBAAgB,CAAM,GAAG,oBAAoB,CAE1J;AAED,wBAAgB,uBAAuB,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAE7F"}
@@ -57,11 +57,10 @@ function parseScores(value, expectedCount) {
57
57
  export class LocalRerankerRuntime {
58
58
  #options;
59
59
  #queue = [];
60
- #child;
61
- #reader;
62
- #ready;
60
+ #worker;
61
+ #children = new Set();
62
+ #closing;
63
63
  #running;
64
- #stderr = '';
65
64
  #closed = false;
66
65
  #sequence = 0;
67
66
  constructor(options) {
@@ -91,110 +90,100 @@ export class LocalRerankerRuntime {
91
90
  this.#pump();
92
91
  });
93
92
  }
94
- async #ensureWorker() {
95
- if (this.#child !== undefined && this.#ready !== undefined)
96
- return this.#ready;
97
- if (this.#ready !== undefined)
98
- return this.#ready;
93
+ #ensureWorker() {
94
+ if (this.#worker !== undefined)
95
+ return this.#worker;
99
96
  const spawn = this.#options.spawn ?? spawnProcess;
100
97
  const workerPath = this.#options.workerPath ?? fileURLToPath(new URL('./worker.js', import.meta.url));
101
98
  const child = spawn(this.#options.executable ?? process.execPath, [workerPath, this.#options.modelDirectory,
102
99
  String(this.#options.maxInputBytes ?? MAX_INPUT_BYTES), String(MAX_RERANKER_BATCH_BYTES)], { stdio: ['pipe', 'pipe', 'pipe'], windowsHide: true });
103
- this.#child = child;
104
- this.#stderr = '';
105
- this.#reader = createInterface({ input: child.stdout });
106
- this.#reader.on('line', (line) => this.#receive(line));
107
- child.stderr.on('data', (chunk) => {
108
- this.#stderr = (this.#stderr + chunk.toString('utf8')).slice(-8_192);
100
+ let resolveReady;
101
+ let rejectReady;
102
+ const ready = new Promise((resolve, reject) => { resolveReady = resolve; rejectReady = reject; });
103
+ let resolveExited;
104
+ const exited = new Promise((resolve) => { resolveExited = resolve; });
105
+ const worker = {
106
+ child, reader: createInterface({ input: child.stdout }), ready,
107
+ resolveReady, rejectReady, exited,
108
+ initialized: false, retiring: false, stopped: false,
109
+ };
110
+ this.#worker = worker;
111
+ this.#children.add(worker);
112
+ // Drain stderr without retaining model or input data.
113
+ child.stderr.resume();
114
+ worker.reader.on('line', (line) => this.#receive(worker, line));
115
+ child.stdin.on('error', () => {
116
+ this.#failWorker(worker, new KiokukoError('SERVICE_UNAVAILABLE', 'Could not write to local reranker worker'));
109
117
  });
110
- child.on('error', (error) => {
111
- if (this.#child !== child)
112
- return;
113
- this.#failRunning(new KiokukoError('SERVICE_UNAVAILABLE', 'Local reranker worker failed', { cause: error.message }));
114
- this.#forgetWorker();
115
- this.#pump();
116
- });
117
- child.on('exit', (code, signal) => {
118
- if (this.#child !== child)
118
+ const stopped = () => {
119
+ if (worker.stopped)
119
120
  return;
120
- this.#failRunning(new KiokukoError('SERVICE_UNAVAILABLE', `Local reranker worker exited (${signal ?? code ?? 'unknown'})`));
121
- this.#forgetWorker();
122
- this.#pump();
121
+ worker.stopped = true;
122
+ clearTimeout(worker.killTimer);
123
+ worker.reader.close();
124
+ this.#children.delete(worker);
125
+ resolveExited();
126
+ };
127
+ child.on('error', (error) => {
128
+ this.#failWorker(worker, new KiokukoError('SERVICE_UNAVAILABLE', 'Local reranker worker failed', { cause: error.message }));
129
+ // A failed spawn has no process and will not emit exit.
130
+ if (child.pid === undefined)
131
+ stopped();
123
132
  });
124
- this.#ready = new Promise((resolve, reject) => {
125
- const childError = (error) => reject(new KiokukoError('SERVICE_UNAVAILABLE', 'Could not start local reranker worker', { cause: error.message }));
126
- const onExit = (code, signal) => reject(new KiokukoError('SERVICE_UNAVAILABLE', `Local reranker worker exited before initialization (${signal ?? code ?? 'unknown'})`));
127
- const onReady = () => {
128
- child.off('error', childError);
129
- child.off('exit', onExit);
130
- resolve();
131
- };
132
- const onMessage = (line) => {
133
- let message;
134
- try {
135
- message = JSON.parse(line);
136
- }
137
- catch {
138
- return;
139
- }
140
- if (message.type !== 'ready')
141
- return;
142
- this.#reader?.off('line', onMessage);
143
- onReady();
144
- };
145
- this.#reader?.on('line', onMessage);
146
- child.once('error', childError);
147
- child.once('exit', onExit);
148
- }).catch((error) => {
149
- if (this.#child === child)
150
- this.#forgetWorker();
151
- throw error;
133
+ child.once('exit', (code, signal) => {
134
+ stopped();
135
+ this.#failWorker(worker, new KiokukoError('SERVICE_UNAVAILABLE', `Local reranker worker exited (${signal ?? code ?? 'unknown'})`));
152
136
  });
153
- return this.#ready;
137
+ return worker;
154
138
  }
155
- #receive(line) {
156
- if (line.length > MAX_OUTPUT_LINE_CHARS) {
157
- this.#failRunning(new KiokukoError('INTEGRITY_ERROR', 'Local reranker worker response exceeded its protocol limit'));
158
- this.#terminateWorker();
139
+ #failWorker(worker, error) {
140
+ worker.rejectReady(error);
141
+ if (this.#worker !== worker)
159
142
  return;
160
- }
161
- let message;
162
- try {
163
- message = JSON.parse(line);
164
- }
165
- catch {
166
- this.#failRunning(new KiokukoError('INTEGRITY_ERROR', 'Local reranker worker returned invalid JSON'));
167
- this.#terminateWorker();
168
- return;
169
- }
170
- if (message.type === 'ready' || message.type === 'shutdown')
171
- return;
172
- const job = this.#running;
173
- if (job === undefined || message.id !== job.id) {
174
- this.#failRunning(new KiokukoError('INTEGRITY_ERROR', 'Local reranker worker response does not match the active request'));
175
- this.#terminateWorker();
176
- this.#pump();
143
+ this.#failRunning(error);
144
+ this.#terminateWorker();
145
+ this.#pump();
146
+ }
147
+ #receive(worker, line) {
148
+ if (this.#worker !== worker || worker.retiring)
177
149
  return;
178
- }
179
- if (message.type === 'error') {
180
- this.#settle(job, new KiokukoError('SERVICE_UNAVAILABLE', 'Local reranker inference failed'));
181
- this.#terminateWorker();
182
- }
183
- else if (message.type === 'scores') {
184
- try {
185
- this.#settle(job, undefined, parseScores(message.scores, job.pairs.length));
150
+ try {
151
+ if (line.length > MAX_OUTPUT_LINE_CHARS)
152
+ throw new Error('response exceeded its protocol limit');
153
+ const value = JSON.parse(line);
154
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
155
+ throw new Error('invalid envelope');
156
+ const message = value;
157
+ if (!worker.initialized) {
158
+ if (message.type === 'error' && message.id === undefined && typeof message.message === 'string') {
159
+ this.#failWorker(worker, new KiokukoError('SERVICE_UNAVAILABLE', 'Local reranker initialization failed'));
160
+ return;
161
+ }
162
+ if (message.type !== 'ready' || message.id !== undefined || message.scores !== undefined)
163
+ throw new Error('invalid initialization response');
164
+ worker.initialized = true;
165
+ worker.resolveReady();
166
+ return;
186
167
  }
187
- catch (error) {
188
- this.#settle(job, error);
189
- this.#terminateWorker();
168
+ const job = this.#running;
169
+ if ((message.type !== 'scores' && message.type !== 'error')
170
+ || !Number.isSafeInteger(message.id) || message.id < 1
171
+ || job === undefined || message.id !== job.id)
172
+ throw new Error('response does not match the active request');
173
+ if (message.type === 'error') {
174
+ if (typeof message.message !== 'string')
175
+ throw new Error('invalid error response');
176
+ this.#failWorker(worker, new KiokukoError('SERVICE_UNAVAILABLE', 'Local reranker inference failed'));
177
+ return;
190
178
  }
179
+ const scores = parseScores(message.scores, job.pairs.length);
180
+ this.#settle(job, undefined, scores);
181
+ this.#running = undefined;
182
+ this.#pump();
191
183
  }
192
- else {
193
- this.#settle(job, new KiokukoError('INTEGRITY_ERROR', 'Local reranker worker returned an unknown response'));
194
- this.#terminateWorker();
184
+ catch (error) {
185
+ this.#failWorker(worker, new KiokukoError('INTEGRITY_ERROR', 'Local reranker returned an invalid protocol response'));
195
186
  }
196
- this.#running = undefined;
197
- this.#pump();
198
187
  }
199
188
  #pump() {
200
189
  if (this.#closed || this.#running !== undefined)
@@ -215,10 +204,24 @@ export class LocalRerankerRuntime {
215
204
  this.#pump();
216
205
  return;
217
206
  }
218
- void this.#ensureWorker().then(() => {
207
+ let worker;
208
+ try {
209
+ worker = this.#ensureWorker();
210
+ }
211
+ catch (error) {
212
+ this.#settle(job, error);
213
+ this.#running = undefined;
214
+ this.#pump();
215
+ return;
216
+ }
217
+ void worker.ready.then(() => {
219
218
  if (job.settled || this.#running !== job || job.signal?.aborted)
220
219
  return;
221
- this.#child?.stdin.write(`${request}\n`, (error) => {
220
+ if (this.#worker !== worker || worker.retiring)
221
+ return;
222
+ worker.child.stdin.write(`${request}\n`, (error) => {
223
+ if (this.#worker !== worker || this.#running !== job || job.settled)
224
+ return;
222
225
  if (error !== null && error !== undefined) {
223
226
  this.#settle(job, new KiokukoError('SERVICE_UNAVAILABLE', 'Could not write to local reranker worker'));
224
227
  this.#running = undefined;
@@ -279,40 +282,34 @@ export class LocalRerankerRuntime {
279
282
  this.#settle(this.#running, error);
280
283
  this.#running = undefined;
281
284
  }
282
- #forgetWorker() {
283
- this.#reader?.close();
284
- this.#reader = undefined;
285
- this.#child = undefined;
286
- this.#ready = undefined;
287
- this.#stderr = '';
288
- }
289
285
  #terminateWorker() {
290
- const child = this.#child;
291
- if (child === undefined)
286
+ const worker = this.#worker;
287
+ if (worker === undefined)
292
288
  return;
293
- this.#forgetWorker();
294
- child.kill('SIGTERM');
295
- }
296
- async close() {
297
- if (this.#closed)
289
+ this.#worker = undefined;
290
+ worker.retiring = true;
291
+ worker.reader.close();
292
+ worker.rejectReady(new KiokukoError('SERVICE_UNAVAILABLE', 'Local reranker worker stopped'));
293
+ if (worker.stopped)
298
294
  return;
295
+ // Keep ownership until exit, including after timeout/abort and replacement.
296
+ worker.killTimer = setTimeout(() => {
297
+ if (!worker.stopped)
298
+ worker.child.kill('SIGKILL');
299
+ }, 2_000);
300
+ worker.child.kill('SIGTERM');
301
+ }
302
+ close() {
303
+ if (this.#closing !== undefined)
304
+ return this.#closing;
299
305
  this.#closed = true;
306
+ const error = new KiokukoError('SERVICE_UNAVAILABLE', 'Local reranker runtime is shutting down');
300
307
  for (const job of this.#queue.splice(0))
301
- this.#settle(job, new KiokukoError('SERVICE_UNAVAILABLE', 'Local reranker runtime is shutting down'));
302
- if (this.#running !== undefined)
303
- this.#settle(this.#running, new KiokukoError('SERVICE_UNAVAILABLE', 'Local reranker runtime is shutting down'));
304
- this.#running = undefined;
305
- const child = this.#child;
306
- this.#forgetWorker();
307
- if (child !== undefined && child.exitCode === null && child.signalCode === null) {
308
- const exited = new Promise((resolve) => child.once('exit', () => resolve()));
309
- child.kill('SIGTERM');
310
- const stopped = await Promise.race([exited.then(() => true), new Promise((resolve) => setTimeout(() => resolve(false), 2_000))]);
311
- if (!stopped) {
312
- child.kill('SIGKILL');
313
- await exited;
314
- }
315
- }
308
+ this.#settle(job, error);
309
+ this.#failRunning(error);
310
+ this.#terminateWorker();
311
+ this.#closing = Promise.all([...this.#children].map((worker) => worker.exited)).then(() => undefined);
312
+ return this.#closing;
316
313
  }
317
314
  }
318
315
  export function createLocalRerankerRuntime(modelDirectory, options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/reranker/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/reranker/runtime.ts"],"names":[],"mappings":"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"}
package/docs/chatgpt.md CHANGED
@@ -16,6 +16,18 @@ kiokuko mcp --help
16
16
 
17
17
  Run `kiokuko init` only if no database exists. ChatGPT does not require `kiokuko setup`.
18
18
 
19
+ `memory_recall.corrections` distinguishes an empty correction selection from a
20
+ missing recall call. Pass its `recallId` to `memory_correction_check` to compare a
21
+ concrete compiler or completion judgment with the same current entry revisions.
22
+ The service reports model delivery and application as unobserved/unverified.
23
+ Without a `recallId`, `binding: missing` reports only the connection's last
24
+ observed retrieval state and supplies no sources. Omitting a receipt cannot erase
25
+ a successful or failed recall, or bind an earlier search to a new judgment.
26
+ Neither a receipt nor a model-supplied capability claim proves understanding or
27
+ test success. Ordinary work remains independent of optional memory. DSH can
28
+ separately observe its actual provider input and its approved native verifiers.
29
+ This does not merge the two products' databases or force ChatGPT to call a tool.
30
+
19
31
  ## Troubleshooting
20
32
 
21
33
  | Symptom | Action |