@askdkc/kiokuko 0.2.5 → 0.2.6

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 (72) hide show
  1. package/README.ja.md +23 -0
  2. package/README.ko.md +23 -0
  3. package/README.md +23 -0
  4. package/README.zh-CN.md +23 -0
  5. package/dist/agent-file/render.d.ts +1 -1
  6. package/dist/agent-file/render.js +2 -2
  7. package/dist/agent-file/render.js.map +1 -1
  8. package/dist/akinator/agent-task.d.ts.map +1 -1
  9. package/dist/akinator/agent-task.js +14 -6
  10. package/dist/akinator/agent-task.js.map +1 -1
  11. package/dist/akinator/capabilities.d.ts +7 -1
  12. package/dist/akinator/capabilities.d.ts.map +1 -1
  13. package/dist/akinator/capabilities.js +10 -3
  14. package/dist/akinator/capabilities.js.map +1 -1
  15. package/dist/akinator/capability-binding.d.ts.map +1 -1
  16. package/dist/akinator/capability-binding.js +18 -3
  17. package/dist/akinator/capability-binding.js.map +1 -1
  18. package/dist/commands/agent.d.ts.map +1 -1
  19. package/dist/commands/agent.js +21 -1
  20. package/dist/commands/agent.js.map +1 -1
  21. package/dist/commands/doctor.js +2 -2
  22. package/dist/commands/doctor.js.map +1 -1
  23. package/dist/commands/init.d.ts.map +1 -1
  24. package/dist/commands/init.js +4 -1
  25. package/dist/commands/init.js.map +1 -1
  26. package/dist/context/delivery.d.ts.map +1 -1
  27. package/dist/context/delivery.js +8 -4
  28. package/dist/context/delivery.js.map +1 -1
  29. package/dist/context/ranking.d.ts +1 -1
  30. package/dist/context/ranking.d.ts.map +1 -1
  31. package/dist/context/ranking.js +1 -0
  32. package/dist/context/ranking.js.map +1 -1
  33. package/dist/context/scoped-broker.d.ts +1 -1
  34. package/dist/context/scoped-broker.js +1 -1
  35. package/dist/mcp/server.d.ts.map +1 -1
  36. package/dist/mcp/server.js +65 -38
  37. package/dist/mcp/server.js.map +1 -1
  38. package/dist/memory/hybrid-retrieval.d.ts +2 -0
  39. package/dist/memory/hybrid-retrieval.d.ts.map +1 -1
  40. package/dist/memory/hybrid-retrieval.js +115 -18
  41. package/dist/memory/hybrid-retrieval.js.map +1 -1
  42. package/dist/memory/rebuild-search.d.ts +5 -0
  43. package/dist/memory/rebuild-search.d.ts.map +1 -1
  44. package/dist/memory/rebuild-search.js +61 -7
  45. package/dist/memory/rebuild-search.js.map +1 -1
  46. package/dist/memory/retrieval-query.d.ts.map +1 -1
  47. package/dist/memory/retrieval-query.js +99 -1
  48. package/dist/memory/retrieval-query.js.map +1 -1
  49. package/dist/memory/structured-memory.d.ts +4 -0
  50. package/dist/memory/structured-memory.d.ts.map +1 -1
  51. package/dist/memory/structured-memory.js +101 -14
  52. package/dist/memory/structured-memory.js.map +1 -1
  53. package/dist/server/agent-checkpoint-use-case.d.ts.map +1 -1
  54. package/dist/server/agent-checkpoint-use-case.js +4 -3
  55. package/dist/server/agent-checkpoint-use-case.js.map +1 -1
  56. package/dist/server/routes/agent-capability-gate.d.ts +3 -0
  57. package/dist/server/routes/agent-capability-gate.d.ts.map +1 -1
  58. package/dist/server/routes/agent-capability-gate.js +23 -5
  59. package/dist/server/routes/agent-capability-gate.js.map +1 -1
  60. package/dist/setup/render.d.ts.map +1 -1
  61. package/dist/setup/render.js +9 -4
  62. package/dist/setup/render.js.map +1 -1
  63. package/dist/setup/standard-skills.d.ts +8 -1
  64. package/dist/setup/standard-skills.d.ts.map +1 -1
  65. package/dist/setup/standard-skills.js +8 -1
  66. package/dist/setup/standard-skills.js.map +1 -1
  67. package/migrations/020_cjk_fts.sql +80 -0
  68. package/migrations/down/020_cjk_fts.sql +38 -0
  69. package/package.json +1 -1
  70. package/skills/kiokuko-simple-work/SKILL.md +112 -0
  71. package/skills/kiokuko-soul/SKILL.md +39 -7
  72. package/templates/AGENTS.md +3 -3
@@ -2,10 +2,32 @@ import { withImmediateTransaction } from '../db/transaction.js';
2
2
  import { KiokukoError } from '../errors.js';
3
3
  import { readEntry } from './entries.js';
4
4
  import { decodeStoredStructuredScope } from './revisions.js';
5
- import { extractEntrySearchSignals, requireHybridSearchProjectionSchema } from './structured-memory.js';
5
+ import { extractEntrySearchSignals, hybridSearchProjectionSchema, requireHybridSearchProjectionSchema, } from './structured-memory.js';
6
6
  function integrity(message = 'Stored search projection source is invalid') {
7
7
  throw new KiokukoError('INTEGRITY_ERROR', message);
8
8
  }
9
+ const UNIFIED_FTS_TABLES = ['entries_fts', 'entries_trigram'];
10
+ function assertUnifiedFtsIntegrity(database) {
11
+ try {
12
+ for (const table of UNIFIED_FTS_TABLES) {
13
+ database.prepare(`INSERT INTO ${table}(${table}, rank) VALUES ('integrity-check', 1)`).run();
14
+ }
15
+ }
16
+ catch {
17
+ integrity('Hybrid search index is inconsistent with its content');
18
+ }
19
+ }
20
+ function rebuildUnifiedFtsIndexes(database) {
21
+ try {
22
+ for (const table of UNIFIED_FTS_TABLES) {
23
+ database.prepare(`INSERT INTO ${table}(${table}) VALUES ('rebuild')`).run();
24
+ }
25
+ }
26
+ catch {
27
+ integrity('Hybrid search index rebuild failed');
28
+ }
29
+ assertUnifiedFtsIntegrity(database);
30
+ }
9
31
  function preparedProjections(database) {
10
32
  const entryCount = database.prepare('SELECT COUNT(*) AS count FROM entries').get()?.count;
11
33
  if (typeof entryCount !== 'number' || !Number.isSafeInteger(entryCount) || entryCount < 0)
@@ -47,9 +69,8 @@ function preparedProjections(database) {
47
69
  };
48
70
  });
49
71
  }
50
- /** Rebuild while participating in a transaction already owned by the caller. */
51
- export function rebuildHybridSearchInTransaction(database) {
52
- requireHybridSearchProjectionSchema(database);
72
+ /** Rebuild the projection shape used only while migrations 005 through 019 are being applied. */
73
+ export function rebuildLegacyHybridSearchInTransaction(database) {
53
74
  const projections = preparedProjections(database);
54
75
  const expectedSignals = projections.reduce((count, projection) => count + projection.signals.length, 0);
55
76
  database.exec('DELETE FROM entries_fts');
@@ -69,6 +90,31 @@ export function rebuildHybridSearchInTransaction(database) {
69
90
  const trigramCount = database.prepare('SELECT COUNT(*) AS count FROM entries_trigram').get()?.count;
70
91
  const signalCount = database.prepare('SELECT COUNT(*) AS count FROM entry_search_signals').get()?.count;
71
92
  if (ftsCount !== projections.length || trigramCount !== projections.length || signalCount !== expectedSignals) {
93
+ integrity('Legacy hybrid search projection rebuild produced an incomplete result');
94
+ }
95
+ return { entries: projections.length, signals: expectedSignals };
96
+ }
97
+ /** Rebuild while participating in a transaction already owned by the caller. */
98
+ export function rebuildHybridSearchInTransaction(database) {
99
+ requireHybridSearchProjectionSchema(database);
100
+ const projections = preparedProjections(database);
101
+ const expectedSignals = projections.reduce((count, projection) => count + projection.signals.length, 0);
102
+ // Repair the external indexes before content-table deletes fire FTS delete
103
+ // commands; an empty or inconsistent index cannot safely consume them.
104
+ rebuildUnifiedFtsIndexes(database);
105
+ database.exec('DELETE FROM entry_search_documents');
106
+ database.exec('DELETE FROM entry_search_signals');
107
+ const insertDocument = database.prepare('INSERT INTO entry_search_documents (entry_rowid, entry_id, title, body, summary, tags_text) VALUES (?, ?, ?, ?, ?, ?)');
108
+ const insertSignal = database.prepare('INSERT INTO entry_search_signals (entry_id, signal_type, normalized_value) VALUES (?, ?, ?)');
109
+ for (const projection of projections) {
110
+ insertDocument.run(projection.rowid, projection.entryId, projection.title, projection.body, projection.summary, projection.tagsText);
111
+ for (const signal of projection.signals)
112
+ insertSignal.run(projection.entryId, signal.type, signal.value);
113
+ }
114
+ rebuildUnifiedFtsIndexes(database);
115
+ const documentCount = database.prepare('SELECT COUNT(*) AS count FROM entry_search_documents').get()?.count;
116
+ const signalCount = database.prepare('SELECT COUNT(*) AS count FROM entry_search_signals').get()?.count;
117
+ if (documentCount !== projections.length || signalCount !== expectedSignals) {
72
118
  integrity('Hybrid search projection rebuild produced an incomplete result');
73
119
  }
74
120
  return { entries: projections.length, signals: expectedSignals };
@@ -77,7 +123,9 @@ export function rebuildHybridSearch(database) {
77
123
  return withImmediateTransaction(database, () => rebuildHybridSearchInTransaction(database));
78
124
  }
79
125
  export function hybridSearchProjectionStatus(database) {
80
- requireHybridSearchProjectionSchema(database);
126
+ const projectionSchema = hybridSearchProjectionSchema(database);
127
+ if (projectionSchema === 'unified')
128
+ assertUnifiedFtsIntegrity(database);
81
129
  const projections = preparedProjections(database);
82
130
  const storedCount = (table) => {
83
131
  const count = database.prepare(`SELECT COUNT(*) AS count FROM ${table}`).get()?.count;
@@ -86,7 +134,8 @@ export function hybridSearchProjectionStatus(database) {
86
134
  return count;
87
135
  };
88
136
  const entries = projections.length;
89
- const trigram = storedCount('entries_trigram');
137
+ const trigramTable = projectionSchema === 'unified' ? 'entry_search_documents' : 'entries_trigram';
138
+ const trigram = storedCount(trigramTable);
90
139
  const signals = storedCount('entry_search_signals');
91
140
  let missingSignals = 0;
92
141
  let extraSignals = 0;
@@ -100,8 +149,13 @@ export function hybridSearchProjectionStatus(database) {
100
149
  for (const signal of actual)
101
150
  if (!expected.has(signal))
102
151
  extraSignals += 1;
103
- const projected = database.prepare('SELECT title, body, summary, tags_text FROM entries_trigram WHERE rowid = ?').get(projection.rowid);
152
+ const projected = projectionSchema === 'unified'
153
+ ? database.prepare('SELECT entry_id, title, body, summary, tags_text FROM entry_search_documents WHERE entry_rowid = ?')
154
+ .get(projection.rowid)
155
+ : database.prepare('SELECT title, body, summary, tags_text FROM entries_trigram WHERE rowid = ?')
156
+ .get(projection.rowid);
104
157
  if (!projected
158
+ || (projectionSchema === 'unified' && projected.entry_id !== projection.entryId)
105
159
  || projected.title !== projection.title
106
160
  || projected.body !== projection.body
107
161
  || projected.summary !== projection.summary
@@ -1 +1 @@
1
- {"version":3,"file":"rebuild-search.js","sourceRoot":"","sources":["../../src/memory/rebuild-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rebuild-search.js","sourceRoot":"","sources":["../../src/memory/rebuild-search.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"retrieval-query.d.ts","sourceRoot":"","sources":["../../src/memory/retrieval-query.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACnC;AA2BD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CA6BxE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D"}
1
+ {"version":3,"file":"retrieval-query.d.ts","sourceRoot":"","sources":["../../src/memory/retrieval-query.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACnC;AA4HD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAgCxE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D"}
@@ -2,6 +2,10 @@ import { KiokukoError } from '../errors.js';
2
2
  const MAX_QUERY_BYTES = 16 * 1024;
3
3
  const MAX_TERMS = 64;
4
4
  const MAX_TERM_LENGTH = 512;
5
+ const MAX_CJK_SUBSTRING_TERMS = 24;
6
+ const MAX_CJK_BIGRAM_TERMS = 6;
7
+ const JAPANESE_RUN = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\u3005\u303B\u309D\u309E\u30FC\u30FD\u30FE]{2,}/gu;
8
+ const SAME_SCRIPT_JAPANESE_RUN = /(?:[\p{Script=Han}\u3005\u303B]{2,}|[\p{Script=Hiragana}\u309D\u309E]{2,}|[\p{Script=Katakana}\u30FC\u30FD\u30FE]{2,})/gu;
5
9
  const STRUCTURED_SIGNAL = /(?:sqlstate\[[^\]]+\]|(?:[a-z_$][\w$]*)(?:::|->)[\w$:.()\\-]+|(?:[a-z_$][\w$]*\\)+[\w$.-]+|(?:^|\s)\/[\w./-]+|@[A-Za-z][\w.-]*|\$[A-Za-z_][\w$]*|[A-Za-z0-9_.-]+\/[A-Za-z0-9_./-]+)/gu;
6
10
  function invalid() {
7
11
  throw new KiokukoError('VALIDATION_ERROR', 'Search query is invalid');
@@ -28,6 +32,97 @@ function signalType(value) {
28
32
  function unique(values) {
29
33
  return [...new Set(values)].filter((value) => value.length > 0).slice(0, MAX_TERMS);
30
34
  }
35
+ function japaneseScript(value) {
36
+ if (/[\p{Script=Han}\u3005\u303B]/u.test(value))
37
+ return 'han';
38
+ if (/[\p{Script=Hiragana}\u309D\u309E]/u.test(value))
39
+ return 'hiragana';
40
+ return 'katakana';
41
+ }
42
+ function windows(value, lengths) {
43
+ const points = Array.from(value);
44
+ const pools = lengths.map((length) => {
45
+ if (points.length < length)
46
+ return undefined;
47
+ const lastStart = points.length - length;
48
+ const candidateStarts = lastStart + 1 <= MAX_CJK_SUBSTRING_TERMS
49
+ ? Array.from({ length: lastStart + 1 }, (_, index) => index)
50
+ : Array.from({ length: MAX_CJK_SUBSTRING_TERMS }, (_, index) => Math.round(index * lastStart / (MAX_CJK_SUBSTRING_TERMS - 1)));
51
+ const boundaryStarts = points.flatMap((point, index) => index > 0
52
+ && japaneseScript(points[index - 1]) !== japaneseScript(point)
53
+ ? [Math.max(0, Math.min(lastStart, index - Math.floor(length / 2)))]
54
+ : []);
55
+ const starts = [...new Set([
56
+ 0,
57
+ Math.ceil(lastStart / 2),
58
+ lastStart,
59
+ ...boundaryStarts,
60
+ ...candidateStarts,
61
+ ])].slice(0, MAX_CJK_SUBSTRING_TERMS);
62
+ return starts.map((start) => points.slice(start, start + length).join(''));
63
+ }).filter((pool) => pool !== undefined);
64
+ const result = [];
65
+ for (let offset = 0; pools.some((pool) => offset < pool.length); offset += 1) {
66
+ for (const pool of pools)
67
+ if (offset < pool.length)
68
+ result.push(pool[offset]);
69
+ }
70
+ return result;
71
+ }
72
+ function takeRoundRobin(pools, limit, seen) {
73
+ const offsets = pools.map(() => 0);
74
+ const result = [];
75
+ while (result.length < limit) {
76
+ let consumed = false;
77
+ for (let index = 0; index < pools.length && result.length < limit; index += 1) {
78
+ const pool = pools[index];
79
+ while (offsets[index] < pool.length) {
80
+ const candidate = pool[offsets[index]];
81
+ offsets[index] = offsets[index] + 1;
82
+ if (seen.has(candidate))
83
+ continue;
84
+ seen.add(candidate);
85
+ result.push(candidate);
86
+ consumed = true;
87
+ break;
88
+ }
89
+ }
90
+ if (!consumed)
91
+ break;
92
+ }
93
+ return result;
94
+ }
95
+ function mixedScriptBoundaryTerms(runs) {
96
+ const result = [];
97
+ for (const run of runs) {
98
+ const points = Array.from(run);
99
+ for (let index = 1; index < points.length; index += 1) {
100
+ if (japaneseScript(points[index - 1]) === japaneseScript(points[index]))
101
+ continue;
102
+ for (const length of [3, 4]) {
103
+ if (points.length < length)
104
+ continue;
105
+ const start = Math.max(0, Math.min(points.length - length, index - Math.floor(length / 2)));
106
+ result.push(points.slice(start, start + length).join(''));
107
+ }
108
+ }
109
+ }
110
+ return result;
111
+ }
112
+ /** Allocate bounded overlapping CJK windows without allowing one long run to starve later runs. */
113
+ function cjkSubstringTerms(runs, mixedRuns) {
114
+ const normalizedRuns = [...new Set(runs)].filter((run) => Array.from(run).length >= 2);
115
+ const seen = new Set();
116
+ const primaryLimit = MAX_CJK_SUBSTRING_TERMS - MAX_CJK_BIGRAM_TERMS;
117
+ const primary = takeRoundRobin(normalizedRuns.map((run) => windows(run, [3, 4])), primaryLimit, seen);
118
+ const mixed = unique(mixedScriptBoundaryTerms(mixedRuns))
119
+ .filter((term) => !seen.has(term))
120
+ .slice(0, MAX_CJK_SUBSTRING_TERMS - primary.length);
121
+ for (const term of mixed)
122
+ seen.add(term);
123
+ const auxiliary = takeRoundRobin(normalizedRuns.map((run) => windows(run, [2])), MAX_CJK_SUBSTRING_TERMS - primary.length - mixed.length, seen);
124
+ return [...primary, ...mixed, ...auxiliary];
125
+ }
31
126
  export function parseRetrievalQuery(input) {
32
127
  if (typeof input !== 'string')
33
128
  invalid();
@@ -50,9 +145,12 @@ export function parseRetrievalQuery(input) {
50
145
  .map((term) => term.slice(0, MAX_TERM_LENGTH));
51
146
  const phraseTerms = unique(normalized.split(/\s+/u).filter((term) => term.length > 1))
52
147
  .map((term) => term.slice(0, MAX_TERM_LENGTH));
148
+ const cjkRuns = normalized.match(SAME_SCRIPT_JAPANESE_RUN) ?? [];
149
+ const mixedRuns = (normalized.match(JAPANESE_RUN) ?? [])
150
+ .filter((run) => new Set(Array.from(run).map(japaneseScript)).size > 1);
53
151
  const substringTerms = unique([
54
152
  ...exactSignals.map((signal) => signal.value),
55
- ...(normalized.match(/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}]{2,}/gu) ?? []),
153
+ ...cjkSubstringTerms(cjkRuns, mixedRuns),
56
154
  ...lexicalTerms.filter((term) => term.length >= 2),
57
155
  ]).map((term) => term.slice(0, MAX_TERM_LENGTH));
58
156
  return { raw, normalized, lexicalTerms, phraseTerms, substringTerms, exactSignals };
@@ -1 +1 @@
1
- {"version":3,"file":"retrieval-query.js","sourceRoot":"","sources":["../../src/memory/retrieval-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retrieval-query.js","sourceRoot":"","sources":["../../src/memory/retrieval-query.ts"],"names":[],"mappings":"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"}
@@ -48,9 +48,13 @@ export declare function extractEntrySearchSignals(input: {
48
48
  type: string;
49
49
  value: string;
50
50
  }>;
51
+ type WritableSearchProjection = 'legacy' | 'unified';
52
+ /** Validate and identify either the released legacy projection or migration 020 projection. */
53
+ export declare function hybridSearchProjectionSchema(database: SqliteDatabase): WritableSearchProjection;
51
54
  /** Assert the complete search schema consumed by hybridSearch before mutating a projection. */
52
55
  export declare function requireHybridSearchProjectionSchema(database: SqliteDatabase): void;
53
56
  export declare function syncEntrySearchSignals(database: SqliteDatabase, input: Parameters<typeof extractEntrySearchSignals>[0]): void;
54
57
  /** Refresh every search projection for the entry's current revision. */
55
58
  export declare function syncEntrySearchProjection(database: SqliteDatabase, input: Parameters<typeof extractEntrySearchSignals>[0]): void;
59
+ export {};
56
60
  //# sourceMappingURL=structured-memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"structured-memory.d.ts","sourceRoot":"","sources":["../../src/memory/structured-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAA8C,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI3G,eAAO,MAAM,cAAc,2JAGjB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,eAAO,MAAM,gBAAgB,kDAAmD,CAAC;AACjF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,0DAA0D;AAC1D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAQtF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAOhF;AAgCD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAkCnE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAa7D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,UAAU,CAsBjF;AAMD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;CACnB,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BzC;AAQD,+FAA+F;AAC/F,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAoBlF;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAM7H;AAED,wEAAwE;AACxE,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAoBhI"}
1
+ {"version":3,"file":"structured-memory.d.ts","sourceRoot":"","sources":["../../src/memory/structured-memory.ts"],"names":[],"mappings":"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"}
@@ -194,34 +194,100 @@ export function extractEntrySearchSignals(input) {
194
194
  const REQUIRED_PROJECTION_COLUMNS = {
195
195
  entries_fts: ['title', 'body', 'summary', 'tags_text'],
196
196
  entries_trigram: ['title', 'body', 'summary', 'tags_text'],
197
+ entry_search_documents: ['entry_rowid', 'entry_id', 'title', 'body', 'summary', 'tags_text'],
197
198
  entry_search_signals: ['entry_id', 'signal_type', 'normalized_value'],
198
199
  };
200
+ const REQUIRED_SEARCH_DOCUMENT_TRIGGERS = [
201
+ 'entry_search_documents_ai',
202
+ 'entry_search_documents_ad',
203
+ 'entry_search_documents_au',
204
+ ];
205
+ function projectionDefinition(database, name) {
206
+ return database.prepare('SELECT type, sql FROM sqlite_master WHERE name = ?')
207
+ .get(name);
208
+ }
209
+ function projectionColumns(database, table) {
210
+ return new Set(database.prepare(`PRAGMA table_info(${table})`).all().map((column) => column.name));
211
+ }
212
+ function requireLegacyHybridSearchProjectionSchema(database) {
213
+ const missing = [];
214
+ for (const table of ['entries_fts', 'entries_trigram', 'entry_search_signals']) {
215
+ const definition = projectionDefinition(database, table);
216
+ if (definition?.type !== 'table') {
217
+ missing.push(table);
218
+ continue;
219
+ }
220
+ const expected = table === 'entry_search_signals'
221
+ ? REQUIRED_PROJECTION_COLUMNS.entry_search_signals
222
+ : REQUIRED_PROJECTION_COLUMNS.entries_fts;
223
+ const columns = projectionColumns(database, table);
224
+ for (const column of expected)
225
+ if (!columns.has(column))
226
+ missing.push(`${table}.${column}`);
227
+ const sql = definition.sql ?? '';
228
+ const isFts5 = /CREATE\s+VIRTUAL\s+TABLE[\s\S]+USING\s+fts5\s*\(/iu.test(sql);
229
+ if (table === 'entries_fts' && (!isFts5 || !/tokenize\s*=\s*'unicode61 remove_diacritics 2'/iu.test(sql))) {
230
+ missing.push('entries_fts.fts5_unicode61');
231
+ }
232
+ if (table === 'entries_trigram' && (!isFts5 || !/tokenize\s*=\s*'trigram'/iu.test(sql))) {
233
+ missing.push('entries_trigram.fts5_trigram');
234
+ }
235
+ }
236
+ if (missing.length > 0) {
237
+ throw new KiokukoError('INTEGRITY_ERROR', 'Hybrid search projection schema is incomplete', { missing });
238
+ }
239
+ }
240
+ /** Validate and identify either the released legacy projection or migration 020 projection. */
241
+ export function hybridSearchProjectionSchema(database) {
242
+ const ftsSql = projectionDefinition(database, 'entries_fts')?.sql ?? '';
243
+ const hasUnifiedMarker = /content\s*=\s*'entry_search_documents'/iu.test(ftsSql)
244
+ || projectionDefinition(database, 'entry_search_documents') !== undefined
245
+ || REQUIRED_SEARCH_DOCUMENT_TRIGGERS.some((trigger) => projectionDefinition(database, trigger) !== undefined);
246
+ if (hasUnifiedMarker) {
247
+ requireHybridSearchProjectionSchema(database);
248
+ return 'unified';
249
+ }
250
+ requireLegacyHybridSearchProjectionSchema(database);
251
+ return 'legacy';
252
+ }
199
253
  /** Assert the complete search schema consumed by hybridSearch before mutating a projection. */
200
254
  export function requireHybridSearchProjectionSchema(database) {
201
255
  const missing = [];
202
256
  for (const [table, expectedColumns] of Object.entries(REQUIRED_PROJECTION_COLUMNS)) {
203
- const definition = database.prepare('SELECT type, sql FROM sqlite_master WHERE name = ?').get(table);
257
+ const definition = projectionDefinition(database, table);
204
258
  if (definition?.type !== 'table') {
205
259
  missing.push(table);
206
260
  continue;
207
261
  }
208
- const columns = new Set(database.prepare(`PRAGMA table_info(${table})`).all().map((column) => column.name));
262
+ const columns = projectionColumns(database, table);
209
263
  for (const column of expectedColumns)
210
264
  if (!columns.has(column))
211
265
  missing.push(`${table}.${column}`);
212
- if (table === 'entries_fts' && !/CREATE\s+VIRTUAL\s+TABLE[\s\S]+USING\s+fts5\s*\([\s\S]+tokenize\s*=\s*'unicode61\s+remove_diacritics\s+2'/iu.test(definition.sql ?? '')) {
213
- missing.push('entries_fts.fts5_unicode61');
214
- }
215
- if (table === 'entries_trigram' && !/CREATE\s+VIRTUAL\s+TABLE[\s\S]+USING\s+fts5\s*\([\s\S]+tokenize\s*=\s*'trigram'/iu.test(definition.sql ?? '')) {
216
- missing.push('entries_trigram.fts5_trigram');
266
+ if (table === 'entries_fts' || table === 'entries_trigram') {
267
+ const sql = definition.sql ?? '';
268
+ if (!/CREATE\s+VIRTUAL\s+TABLE[\s\S]+USING\s+fts5\s*\(/iu.test(sql)
269
+ || !/content\s*=\s*'entry_search_documents'/iu.test(sql)
270
+ || !/content_rowid\s*=\s*'entry_rowid'/iu.test(sql)
271
+ || (table === 'entries_fts'
272
+ ? !/tokenize\s*=\s*'unicode61 remove_diacritics 2'/iu.test(sql)
273
+ : !/tokenize\s*=\s*'trigram'/iu.test(sql))) {
274
+ missing.push(`${table}.fts5_external_${table === 'entries_fts' ? 'unicode61' : 'trigram'}`);
275
+ }
217
276
  }
218
277
  }
278
+ for (const trigger of REQUIRED_SEARCH_DOCUMENT_TRIGGERS) {
279
+ const definition = projectionDefinition(database, trigger);
280
+ if (definition?.type !== 'trigger'
281
+ || !/entries_fts/iu.test(definition.sql ?? '')
282
+ || !/entries_trigram/iu.test(definition.sql ?? ''))
283
+ missing.push(trigger);
284
+ }
219
285
  if (missing.length > 0) {
220
286
  throw new KiokukoError('INTEGRITY_ERROR', 'Hybrid search projection schema is incomplete', { missing });
221
287
  }
222
288
  }
223
289
  export function syncEntrySearchSignals(database, input) {
224
- requireHybridSearchProjectionSchema(database);
290
+ hybridSearchProjectionSchema(database);
225
291
  database.prepare('DELETE FROM entry_search_signals WHERE entry_id = ?').run(input.entryId);
226
292
  for (const signal of extractEntrySearchSignals(input)) {
227
293
  database.prepare('INSERT OR IGNORE INTO entry_search_signals (entry_id, signal_type, normalized_value) VALUES (?, ?, ?)').run(input.entryId, signal.type, signal.value);
@@ -229,7 +295,7 @@ export function syncEntrySearchSignals(database, input) {
229
295
  }
230
296
  /** Refresh every search projection for the entry's current revision. */
231
297
  export function syncEntrySearchProjection(database, input) {
232
- requireHybridSearchProjectionSchema(database);
298
+ const projection = hybridSearchProjectionSchema(database);
233
299
  const row = database.prepare('SELECT rowid FROM entries WHERE id = ?').get(input.entryId);
234
300
  if (row === undefined)
235
301
  throw new KiokukoError('INTEGRITY_ERROR', 'Search projection entry is missing');
@@ -238,16 +304,37 @@ export function syncEntrySearchProjection(database, input) {
238
304
  throw new KiokukoError('INTEGRITY_ERROR', 'Search projection revision is missing');
239
305
  const revisionNumber = Number(revision.current_revision);
240
306
  const tags = canonicalTagOrder(input.tags);
241
- const projectionTables = ['entries_fts', 'entries_trigram'];
242
- for (const table of projectionTables) {
243
- database.prepare(`DELETE FROM ${table} WHERE rowid = ?`).run(row.rowid);
307
+ if (projection === 'unified') {
308
+ database.prepare('DELETE FROM entry_search_documents WHERE entry_id = ?').run(input.entryId);
244
309
  database.prepare(`
245
- INSERT INTO ${table}(rowid, title, body, summary, tags_text)
246
- SELECT e.rowid, r.title, r.body, COALESCE(r.summary, ''), ?
310
+ INSERT INTO entry_search_documents(entry_rowid, entry_id, title, body, summary, tags_text)
311
+ SELECT e.rowid, e.id, r.title, r.body, COALESCE(r.summary, ''), ?
247
312
  FROM entries AS e
248
313
  JOIN entry_revisions AS r ON r.entry_id = e.id AND r.revision = e.current_revision
249
314
  WHERE e.id = ? AND e.current_revision = ?
250
315
  `).run(tags.join(' '), input.entryId, revisionNumber);
316
+ const stored = database.prepare('SELECT entry_id FROM entry_search_documents WHERE entry_rowid = ?')
317
+ .get(row.rowid);
318
+ if (stored?.entry_id !== input.entryId) {
319
+ throw new KiokukoError('INTEGRITY_ERROR', 'Search projection refresh produced an incomplete result');
320
+ }
321
+ }
322
+ else {
323
+ for (const table of ['entries_fts', 'entries_trigram']) {
324
+ database.prepare(`DELETE FROM ${table} WHERE rowid = ?`).run(row.rowid);
325
+ database.prepare(`
326
+ INSERT INTO ${table}(rowid, title, body, summary, tags_text)
327
+ SELECT e.rowid, r.title, r.body, COALESCE(r.summary, ''), ?
328
+ FROM entries AS e
329
+ JOIN entry_revisions AS r ON r.entry_id = e.id AND r.revision = e.current_revision
330
+ WHERE e.id = ? AND e.current_revision = ?
331
+ `).run(tags.join(' '), input.entryId, revisionNumber);
332
+ }
333
+ const word = database.prepare('SELECT rowid FROM entries_fts WHERE rowid = ?').get(row.rowid);
334
+ const trigram = database.prepare('SELECT rowid FROM entries_trigram WHERE rowid = ?').get(row.rowid);
335
+ if (word?.rowid !== row.rowid || trigram?.rowid !== row.rowid) {
336
+ throw new KiokukoError('INTEGRITY_ERROR', 'Search projection refresh produced an incomplete result');
337
+ }
251
338
  }
252
339
  syncEntrySearchSignals(database, { ...input, tags });
253
340
  }
@@ -1 +1 @@
1
- {"version":3,"file":"structured-memory.js","sourceRoot":"","sources":["../../src/memory/structured-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structured-memory.js","sourceRoot":"","sources":["../../src/memory/structured-memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAmB,MAAM,8BAA8B,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,wBAAwB,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB;IAC5E,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY;CACxD,CAAC;AAGX,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AA8BjF,0DAA0D;AAC1D,MAAM,UAAU,uBAAuB,CAAC,KAA8B;IACpE,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAgC,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,mCAAmC,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,KAAK,CAAC,cAAgC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAA8B;IACrE,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9G,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,aAAwC,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IACvG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/F,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAE,KAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,YAAY,GAAG;IACnB,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU;IACtF,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;IACtF,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK;CACtC,CAAC;AAEX,SAAS,OAAO;IACd,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,uCAAuC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,GAAG,GAAG,GAAG;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpI,IAAI,UAAU,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,oBAAoB,EAAE,kEAAkE,CAAC,CAAC;IACxI,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,GAAG,GAAG,GAAG;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,EAAE,CAAC;IAC3D,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACrE,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/G,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnF,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IACpG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACnE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS;QAC/C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,GAAG,EAAE;YACN,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE;gBAAE,OAAO,EAAE,CAAC;YAChF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBAAE,OAAO,EAAE,CAAC;gBAChF,MAAM,SAAS,GAAG,IAA+B,CAAC;gBAClD,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,CAAC;oBAAE,OAAO,EAAE,CAAC;gBACzF,OAAO;oBACL,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;oBACjC,GAAG,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;iBAC7F,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACtG,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5I,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1D,IAAI,UAAU,KAAK,SAAS;QAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IAC7D,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1D,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvD,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9C,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnF,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAChF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACnE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACxG,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;KAClF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAgC;IACnE,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACnF,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1G,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC9H,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvF,MAAM,sBAAsB,GAAG,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9H,MAAM,gBAAgB,GAAG,sBAAsB,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjK,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,KAAK,WAAW,IAAI,CAAC,gBAAgB;QAAE,OAAO,EAAE,CAAC;IAC/G,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC5G,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;QAAE,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACxH,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IAClG,MAAM,MAAM,GAA4B;QACtC,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;IACF,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;QAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IACzF,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;QAAE,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACrG,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;QAAE,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAChF,IAAI,sBAAsB,KAAK,SAAS;QAAE,MAAM,CAAC,aAAa,GAAG,sBAAsB,CAAC;IACxF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;QAAE,MAAM,CAAC,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC7G,OAAO,MAAoB,CAAC;AAC9B,CAAC;AAED,SAAS,OAAO,CAAC,MAA4B,EAAE,IAA+B,EAAE,MAA8C;IAC5H,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACnH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAOzC;IACC,MAAM,MAAM,GAA2C,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAgC,CAAC;IACrD,sEAAsE;IACtE,0DAA0D;IAC1D,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,aAAa,GAAG,CAAC,eAAe,CAAC,aAAa,IAAI,EAAE,CAA4B,CAAC;IACvF,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;IAC3E,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACtH,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACtH,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAoB,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnH,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAiB,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1G,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACtH,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAQ,IAA2B,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAE,IAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACnQ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAmB,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAiB,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9F,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAkB,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACjG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAoB,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACvG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAoB,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACvG,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,0HAA0H,CAAC,IAAI,EAAE,CAAC;IAChK,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/F,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2C,CAAC;IAClE,KAAK,MAAM,IAAI,IAAI,MAAM;QAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1G,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3I,CAAC;AAED,MAAM,2BAA2B,GAAG;IAClC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;IACtD,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;IAC1D,sBAAsB,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;IAC5F,oBAAoB,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,kBAAkB,CAAC;CAC7D,CAAC;AAEX,MAAM,iCAAiC,GAAG;IACxC,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;CACnB,CAAC;AAIX,SAAS,oBAAoB,CAAC,QAAwB,EAAE,IAAY;IAClE,OAAO,QAAQ,CAAC,OAAO,CAAC,oDAAoD,CAAC;SAC1E,GAAG,CAAuC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAwB,EAAE,KAAa;IAChE,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,KAAK,GAAG,CAAC,CAAC,GAAG,EAAoB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACvH,CAAC;AAED,SAAS,yCAAyC,CAAC,QAAwB;IACzE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,CAAC,EAAE,CAAC;QAC/E,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,KAAK,sBAAsB;YAC/C,CAAC,CAAC,2BAA2B,CAAC,oBAAoB;YAClD,CAAC,CAAC,2BAA2B,CAAC,WAAW,CAAC;QAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnD,KAAK,MAAM,MAAM,IAAI,QAAQ;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;QAC5F,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,oDAAoD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,KAAK,KAAK,aAAa,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,kDAAkD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1G,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,KAAK,KAAK,iBAAiB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACxF,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,+CAA+C,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,4BAA4B,CAAC,QAAwB;IACnE,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;IACxE,MAAM,gBAAgB,GAAG,0CAA0C,CAAC,IAAI,CAAC,MAAM,CAAC;WAC3E,oBAAoB,CAAC,QAAQ,EAAE,wBAAwB,CAAC,KAAK,SAAS;WACtE,iCAAiC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC;IAChH,IAAI,gBAAgB,EAAE,CAAC;QACrB,mCAAmC,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,yCAAyC,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,mCAAmC,CAAC,QAAwB;IAC1E,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACnF,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnD,KAAK,MAAM,MAAM,IAAI,eAAe;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;QACnG,IAAI,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,iBAAiB,EAAE,CAAC;YAC3D,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,oDAAoD,CAAC,IAAI,CAAC,GAAG,CAAC;mBAC9D,CAAC,0CAA0C,CAAC,IAAI,CAAC,GAAG,CAAC;mBACrD,CAAC,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC;mBAChD,CAAC,KAAK,KAAK,aAAa;oBACzB,CAAC,CAAC,CAAC,kDAAkD,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC/D,CAAC,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,kBAAkB,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,iCAAiC,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,UAAU,EAAE,IAAI,KAAK,SAAS;eAC7B,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC;eAC3C,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,+CAA+C,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAwB,EAAE,KAAsD;IACrH,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3F,KAAK,MAAM,MAAM,IAAI,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,QAAQ,CAAC,OAAO,CAAC,uGAAuG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1K,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,yBAAyB,CAAC,QAAwB,EAAE,KAAsD;IACxH,MAAM,UAAU,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAoB,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7G,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,oCAAoC,CAAC,CAAC;IACvG,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAA+B,KAAK,CAAC,OAAO,CAAC,CAAC;IACxI,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,uCAAuC,CAAC,CAAC;IAC/G,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,QAAQ,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7F,QAAQ,CAAC,OAAO,CAAC;;;;;;KAMhB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,mEAAmE,CAAC;aACjG,GAAG,CAAwB,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,MAAM,EAAE,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,yDAAyD,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAU,EAAE,CAAC;YAChE,QAAQ,CAAC,OAAO,CAAC,eAAe,KAAK,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxE,QAAQ,CAAC,OAAO,CAAC;sBACD,KAAK;;;;;OAKpB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAqB,GAAG,CAAC,KAAK,CAAC,CAAC;QAClH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAqB,GAAG,CAAC,KAAK,CAAC,CAAC;QACzH,IAAI,IAAI,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,OAAO,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;YAC9D,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,yDAAyD,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IACD,sBAAsB,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-checkpoint-use-case.d.ts","sourceRoot":"","sources":["../../src/server/agent-checkpoint-use-case.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAClH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AASvF,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,kBAAkB,EAAE,cAAc,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IACpD,QAAQ,CAAC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,EAAE,4BAA4B,CAAC,GAAG;IACnG,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IACpD,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC,cAAc,CAAC,CAAC;IACrE,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC,cAAc,CAAC,CAAC;IACrE,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,CAAC,UAAU,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC,YAAY,CAAC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC,CAAC;AA8EF,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,kCAAkC;IAEvE,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CA2E7E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,uBAAuB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAE5G"}
1
+ {"version":3,"file":"agent-checkpoint-use-case.d.ts","sourceRoot":"","sources":["../../src/server/agent-checkpoint-use-case.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAClH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AASvF,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,kBAAkB,EAAE,cAAc,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IACpD,QAAQ,CAAC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,EAAE,4BAA4B,CAAC,GAAG;IACnG,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IACpD,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC,cAAc,CAAC,CAAC;IACrE,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC,cAAc,CAAC,CAAC;IACrE,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,CAAC,UAAU,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC,YAAY,CAAC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC,CAAC;AA8EF,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,kCAAkC;IAEvE,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CA2E7E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,uBAAuB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAE5G"}
@@ -4,7 +4,8 @@ import { buildRecommendations } from '../context/recommendations.js';
4
4
  import { canonicalJson } from '../serialization/validate.js';
5
5
  import { successEnvelope } from '../serialization/envelope.js';
6
6
  import { assertCapabilityCatalogBinding } from '../akinator/capability-binding.js';
7
- import { applyAgentCapabilityGate, assertBrokerContextRun, brokerIntakeStatus, deriveBrokerMemoryUseSignal, requestCapabilityCatalog, } from './routes/agent-capability-gate.js';
7
+ import { retrievableWorkspaceEntryCount } from '../memory/hybrid-retrieval.js';
8
+ import { applyAgentCapabilityGateWithDeliveryObservation, assertBrokerContextRun, brokerIntakeStatus, deriveBrokerMemoryUseSignal, requestCapabilityCatalog, } from './routes/agent-capability-gate.js';
8
9
  function withoutCapabilityCatalog(value) {
9
10
  if (typeof value !== 'object' || value === null || Array.isArray(value))
10
11
  return value;
@@ -101,7 +102,7 @@ export class AgentCheckpointUseCase {
101
102
  }, (candidate) => {
102
103
  assertBrokerContextRun(candidate, input.runId);
103
104
  const memoryUse = deriveBrokerMemoryUseSignal(this.dependencies, candidate);
104
- const value = applyAgentCapabilityGate({
105
+ const value = applyAgentCapabilityGateWithDeliveryObservation({
105
106
  task: initialRun.title ?? '',
106
107
  intakeStatus: brokerIntakeStatus(candidate.status),
107
108
  taskProfile: candidate.taskProfile,
@@ -109,7 +110,7 @@ export class AgentCheckpointUseCase {
109
110
  catalog,
110
111
  broker: candidate,
111
112
  memoryUseOverride: memoryUse,
112
- });
113
+ }, () => retrievableWorkspaceEntryCount(this.dependencies.database, initialRun.workspace));
113
114
  return {
114
115
  persist: value.context !== null || candidate.context === null,
115
116
  value,