kiokuko 1.0.44 → 1.0.46

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 (58) 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 +251 -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 +4 -1
  12. package/dist/mcp/chatgpt-server.d.ts.map +1 -1
  13. package/dist/mcp/chatgpt-server.js +33 -3
  14. package/dist/mcp/chatgpt-server.js.map +1 -1
  15. package/dist/mcp/correction-review.d.ts +85 -0
  16. package/dist/mcp/correction-review.d.ts.map +1 -0
  17. package/dist/mcp/correction-review.js +81 -0
  18. package/dist/mcp/correction-review.js.map +1 -0
  19. package/dist/memory/correction-classification.d.ts +47 -0
  20. package/dist/memory/correction-classification.d.ts.map +1 -0
  21. package/dist/memory/correction-classification.js +143 -0
  22. package/dist/memory/correction-classification.js.map +1 -0
  23. package/dist/memory/correction-contract.d.ts +136 -0
  24. package/dist/memory/correction-contract.d.ts.map +1 -0
  25. package/dist/memory/correction-contract.js +42 -0
  26. package/dist/memory/correction-contract.js.map +1 -0
  27. package/dist/memory/git-provenance.d.ts.map +1 -1
  28. package/dist/memory/git-provenance.js +28 -0
  29. package/dist/memory/git-provenance.js.map +1 -1
  30. package/dist/reranker/runtime.d.ts.map +1 -1
  31. package/dist/reranker/runtime.js +121 -124
  32. package/dist/reranker/runtime.js.map +1 -1
  33. package/docs/chatgpt.md +12 -0
  34. package/docs/cli-contract.md +10 -2
  35. package/docs/client-compatibility.md +1 -1
  36. package/docs/correction-classification.md +122 -0
  37. package/docs/evaluations/correction-classification-2026-10-21/assessment.json +717 -0
  38. package/docs/evaluations/correction-classification-2026-10-21/built-both-product-pair.log +14 -0
  39. package/docs/evaluations/correction-classification-2026-10-21/development.json +877 -0
  40. package/docs/evaluations/correction-classification-2026-10-21/dsh-build.log +9 -0
  41. package/docs/evaluations/correction-classification-2026-10-21/dsh-final-2-typecheck.log +0 -0
  42. package/docs/evaluations/correction-classification-2026-10-21/dsh-final-2-unit.log +43 -0
  43. package/docs/evaluations/correction-classification-2026-10-21/dsh-final-3-typecheck.log +0 -0
  44. package/docs/evaluations/correction-classification-2026-10-21/held-out.json +2671 -0
  45. package/docs/evaluations/correction-classification-2026-10-21/live-mcp-final-2.json +32 -0
  46. package/docs/evaluations/correction-classification-2026-10-21/live-mcp-final-2.log +1 -0
  47. package/docs/evaluations/correction-classification-2026-10-21/live-mcp-final.json +32 -0
  48. package/docs/evaluations/correction-classification-2026-10-21/main-build.log +17 -0
  49. package/docs/evaluations/correction-classification-2026-10-21/main-final-2-typecheck.log +0 -0
  50. package/docs/evaluations/correction-classification-2026-10-21/main-final-2-unit.log +64 -0
  51. package/docs/evaluations/correction-classification-2026-10-21/metrics-final.log +11 -0
  52. package/docs/evaluations/correction-classification-2026-10-21/native-final.log +57 -0
  53. package/docs/evaluations/correction-classification-2026-10-21/package-evidence.json +51 -0
  54. package/docs/evaluations/correction-classification-2026-10-21/timing-final.json +53 -0
  55. package/docs/evaluations/correction-classification-2026-10-21/verification.json +199 -0
  56. package/migrations/015_correction_classification.sql +11 -0
  57. package/package.json +1 -1
  58. package/templates/chatgpt/memory-policy.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correction-contract.d.ts","sourceRoot":"","sources":["../../src/memory/correction-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AAGrB,eAAO,MAAM,yBAAyB,0BAAwB,CAAA;AAC9D,eAAO,MAAM,oBAAoB;;;;EAA6D,CAAA;AAC9F,MAAM,MAAM,cAAc,GAAC,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAC/D,MAAM,MAAM,cAAc,GAAC,KAAK,GAAC,QAAQ,GAAC,MAAM,CAAA;AAGhD,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAQ4E,CAAA;AACvH,MAAM,MAAM,wBAAwB,GAAC,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACnF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAGxB,CAAA;AACX,MAAM,MAAM,gBAAgB,GAAC,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,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,mFAAmF;AACnF,wBAAgB,uBAAuB,CAAC,KAAK,EAAC,IAAI,CAAC,eAAe,EAAC,OAAO,GAAC,MAAM,GAAC,SAAS,CAAC;;;;EAE3F;AACD,eAAO,MAAM,qBAAqB,GAAE,OAAM,eAAe,WAAuD,CAAA;AAChH,eAAO,MAAM,wBAAwB,GAAE,OAAM,eAAe,WAAwF,CAAA;AACpJ,wBAAgB,sBAAsB,CAAC,KAAK,EAAC,eAAe,EAAC,MAAM,GAAC,wBAAwB,CAAC,QAAQ,CAAgB,EAAC,mBAAmB,SAA6C,GAAE,wBAAwB,CAG/M;AACD,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,KAAK,EAAC,eAAe,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,CAAC,EAAC,wBAAwB,EAAC,IAAI,GAAC,cAAuB,GAAE,gBAAgB,CAM3J;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,42 @@
1
+ import { z } from 'zod';
2
+ import { canonicalContentHash } from '../serialization/validate.js';
3
+ export const CORRECTION_POLICY_VERSION = 'correction-meaning-v1';
4
+ export const CorrectionRuleSchema = z.enum(['capability_compatibility', 'reference', 'uncertain']);
5
+ const digest = z.string().regex(/^[a-f0-9]{64}$/u);
6
+ const identifier = z.string().regex(/^[a-zA-Z0-9_.:/@+-]{1,256}$/u);
7
+ export const CorrectionClassificationSchema = z.object({
8
+ schema: z.literal('correction-classification-v1'), policyVersion: z.literal(CORRECTION_POLICY_VERSION),
9
+ inputDigest: digest, entryRevision: z.number().int().positive(), configurationDigest: digest,
10
+ state: z.enum(['classified', 'abstained', 'unavailable', 'stale', 'unclassified']), rule: CorrectionRuleSchema,
11
+ reason: z.enum(['semantic', 'uncertain', 'provider_unavailable', 'timeout', 'malformed', 'unsupported', 'entry_changed', 'unclassified', 'mode_off', 'storage_unavailable']),
12
+ attested: z.boolean(), provider: identifier.optional(), requestedModel: identifier.optional(), returnedModel: identifier.optional(),
13
+ providerRevision: identifier.optional(), providerPolicyVersion: identifier.optional(),
14
+ elapsedMs: z.number().finite().nonnegative(), inputTokens: z.number().int().nonnegative().optional(), outputTokens: z.number().int().nonnegative().optional(),
15
+ }).strict().refine(c => (c.state === 'classified') === (c.rule !== 'uncertain'), 'Only classified results have a semantic rule');
16
+ export const CorrectionSourceSchema = z.object({
17
+ entryId: z.string(), revision: z.number().int().positive(), workspace: z.string(), origin: z.string(), sourceDigest: digest,
18
+ rule: CorrectionRuleSchema, classification: CorrectionClassificationSchema.safeExtend({ mode: z.enum(['off', 'shadow', 'auto']) }).optional(),
19
+ }).strict();
20
+ /** The body remains evidence even when a short or contradictory summary exists. */
21
+ export function correctionSemanticInput(entry) {
22
+ return { title: entry.title, body: entry.body, summary: entry.summary ?? null };
23
+ }
24
+ export const correctionInputDigest = (entry) => canonicalContentHash(correctionSemanticInput(entry));
25
+ export const correctionEvidenceDigest = (entry) => canonicalContentHash({ ...correctionSemanticInput(entry), provenance: entry.provenance });
26
+ export function unclassifiedCorrection(entry, reason = 'unclassified', configurationDigest = canonicalContentHash('no-semantic-provider')) {
27
+ return { schema: 'correction-classification-v1', policyVersion: CORRECTION_POLICY_VERSION, inputDigest: correctionInputDigest(entry), entryRevision: entry.revision,
28
+ configurationDigest, state: reason === 'entry_changed' ? 'stale' : reason === 'unclassified' ? 'unclassified' : 'unavailable', rule: 'uncertain', reason, attested: false, elapsedMs: 0 };
29
+ }
30
+ /** A semantic label is neither an execution permission nor machine verification. */
31
+ export function correctionSource(entry, origin, classification, mode = 'shadow') {
32
+ const parsed = CorrectionClassificationSchema.safeParse(classification);
33
+ const current = parsed.success && parsed.data.inputDigest === correctionInputDigest(entry) && parsed.data.entryRevision === entry.revision
34
+ ? parsed.data : unclassifiedCorrection(entry);
35
+ return { entryId: entry.id, revision: entry.revision, workspace: entry.workspace, origin, sourceDigest: correctionEvidenceDigest(entry),
36
+ rule: mode === 'auto' && current.attested && current.state === 'classified' ? current.rule : 'uncertain', classification: { ...current, mode } };
37
+ }
38
+ export function compatibilityDecisionConflicts(sources, decision) {
39
+ return sources.some(source => source.rule === 'capability_compatibility') && decision.kind === 'compatibility'
40
+ && decision.basis === 'version_only' && decision.requiredVersion !== decision.observedVersion;
41
+ }
42
+ //# sourceMappingURL=correction-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correction-contract.js","sourceRoot":"","sources":["../../src/memory/correction-contract.ts"],"names":[],"mappings":"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"}
@@ -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 |
@@ -50,8 +50,8 @@ semantic result. Dry-run reads an existing database without initializing or upgr
50
50
 
51
51
  ## ChatGPT conversation MCP profile
52
52
 
53
- `kiokuko mcp --profile chatgpt-memory --access read` exposes only `memory_policy`
54
- and Global `memory_recall`. Access defaults to `read`; unsupported profile/access
53
+ `kiokuko mcp --profile chatgpt-memory --access read` exposes `memory_policy`,
54
+ `memory_recall` and read-only `memory_correction_check`. Access defaults to `read`; unsupported profile/access
55
55
  values and `--access` without this profile fail before opening the database.
56
56
  `--access read-write` additionally exposes Global `memory_capture` for explicit saves and corrections. Plain `kiokuko mcp` retains the local contract.
57
57
  This profile requires a current existing database, uses lexical search, and never
@@ -59,6 +59,14 @@ initializes, migrates or starts an embedding worker. ChatGPT registration is a
59
59
  manual connection step, not a setup target. See the [connection guide](chatgpt.md)
60
60
  and [validation status](chatgpt-validation.md).
61
61
 
62
+ Recall returns a connection-local correction receipt with source IDs, revisions,
63
+ source hashes and an item digest. The check binds a structured judgment and target
64
+ to that receipt, without reading a target file, saving memory, granting permission
65
+ or proving model delivery. MCP errors use `isError` and a JSON text content block
66
+ containing `code` and `message`; they do not use a successful tool's structured schema.
67
+ An omitted recall receipt returns `binding: missing`; the last observed retrieval
68
+ state is retained, but none of its sources are borrowed for the judgment.
69
+
62
70
  ## Uninstall
63
71
 
64
72
  Stop clients using Kiokuko and any foreground `kiokuko serve` process before cleanup:
@@ -12,7 +12,7 @@ Status: global MCP integration for Codex, OpenCode, Claude Code, and profile-sco
12
12
 
13
13
  ChatGPT has a separate conversation memory preview:
14
14
  `kiokuko mcp --profile chatgpt-memory --access read`. It exposes only
15
- `memory_policy` and Global `memory_recall`, with an exact bundled-policy
15
+ `memory_policy`, `memory_recall` and read-only `memory_correction_check`, with an exact bundled-policy
16
16
  version/digest attestation instead of local Skill declarations. It is not a
17
17
  `setup` target. [Tunnel setup](chatgpt.md) and [live validation status](chatgpt-validation.md)
18
18
  are separate from local MCP test results. `--access read-write` adds Global capture and correction. Plugin distribution and