@askdkc/kiokuko 0.1.15 → 0.1.17

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 (105) hide show
  1. package/README.ja.md +5 -5
  2. package/README.ko.md +4 -4
  3. package/README.md +22 -16
  4. package/README.zh-CN.md +5 -5
  5. package/dist/agent-file/render.js +2 -2
  6. package/dist/agent-file/render.js.map +1 -1
  7. package/dist/akinator/agent-task.d.ts +4 -3
  8. package/dist/akinator/agent-task.d.ts.map +1 -1
  9. package/dist/akinator/agent-task.js +8 -6
  10. package/dist/akinator/agent-task.js.map +1 -1
  11. package/dist/akinator/capabilities.d.ts +36 -3
  12. package/dist/akinator/capabilities.d.ts.map +1 -1
  13. package/dist/akinator/capabilities.js +171 -10
  14. package/dist/akinator/capabilities.js.map +1 -1
  15. package/dist/cli.d.ts +2 -0
  16. package/dist/cli.d.ts.map +1 -1
  17. package/dist/cli.js +57 -14
  18. package/dist/cli.js.map +1 -1
  19. package/dist/commands/setup.d.ts +6 -1
  20. package/dist/commands/setup.d.ts.map +1 -1
  21. package/dist/commands/setup.js +62 -8
  22. package/dist/commands/setup.js.map +1 -1
  23. package/dist/context/broker.d.ts +2 -0
  24. package/dist/context/broker.d.ts.map +1 -1
  25. package/dist/context/broker.js +39 -20
  26. package/dist/context/broker.js.map +1 -1
  27. package/dist/context/delivery.d.ts +2 -1
  28. package/dist/context/delivery.d.ts.map +1 -1
  29. package/dist/context/delivery.js +12 -9
  30. package/dist/context/delivery.js.map +1 -1
  31. package/dist/context/feedback.d.ts.map +1 -1
  32. package/dist/context/feedback.js +21 -7
  33. package/dist/context/feedback.js.map +1 -1
  34. package/dist/context/origin.d.ts +9 -0
  35. package/dist/context/origin.d.ts.map +1 -0
  36. package/dist/context/origin.js +15 -0
  37. package/dist/context/origin.js.map +1 -0
  38. package/dist/context/ranking.d.ts +3 -1
  39. package/dist/context/ranking.d.ts.map +1 -1
  40. package/dist/context/ranking.js +9 -2
  41. package/dist/context/ranking.js.map +1 -1
  42. package/dist/context/scoped-broker.d.ts +4 -3
  43. package/dist/context/scoped-broker.d.ts.map +1 -1
  44. package/dist/context/scoped-broker.js +27 -34
  45. package/dist/context/scoped-broker.js.map +1 -1
  46. package/dist/ledger/archive.d.ts.map +1 -1
  47. package/dist/ledger/archive.js +58 -16
  48. package/dist/ledger/archive.js.map +1 -1
  49. package/dist/ledger/maintenance.d.ts.map +1 -1
  50. package/dist/ledger/maintenance.js +17 -4
  51. package/dist/ledger/maintenance.js.map +1 -1
  52. package/dist/mcp/bounded-stdio-transport.d.ts +23 -0
  53. package/dist/mcp/bounded-stdio-transport.d.ts.map +1 -0
  54. package/dist/mcp/bounded-stdio-transport.js +109 -0
  55. package/dist/mcp/bounded-stdio-transport.js.map +1 -0
  56. package/dist/mcp/server.d.ts.map +1 -1
  57. package/dist/mcp/server.js +12 -27
  58. package/dist/mcp/server.js.map +1 -1
  59. package/dist/memory/curator.d.ts +45 -1
  60. package/dist/memory/curator.d.ts.map +1 -1
  61. package/dist/memory/curator.js +178 -32
  62. package/dist/memory/curator.js.map +1 -1
  63. package/dist/memory/federated-retrieval.d.ts +67 -0
  64. package/dist/memory/federated-retrieval.d.ts.map +1 -0
  65. package/dist/memory/federated-retrieval.js +328 -0
  66. package/dist/memory/federated-retrieval.js.map +1 -0
  67. package/dist/memory/portability.d.ts +10 -0
  68. package/dist/memory/portability.d.ts.map +1 -0
  69. package/dist/memory/portability.js +44 -0
  70. package/dist/memory/portability.js.map +1 -0
  71. package/dist/memory/retrieval.d.ts +11 -0
  72. package/dist/memory/retrieval.d.ts.map +1 -1
  73. package/dist/memory/retrieval.js +29 -9
  74. package/dist/memory/retrieval.js.map +1 -1
  75. package/dist/memory/scoped-memory.d.ts +6 -12
  76. package/dist/memory/scoped-memory.d.ts.map +1 -1
  77. package/dist/memory/scoped-memory.js +24 -48
  78. package/dist/memory/scoped-memory.js.map +1 -1
  79. package/dist/memory/structured-memory.d.ts +6 -0
  80. package/dist/memory/structured-memory.d.ts.map +1 -1
  81. package/dist/memory/structured-memory.js +23 -1
  82. package/dist/memory/structured-memory.js.map +1 -1
  83. package/dist/repository/project-fingerprint.d.ts +21 -0
  84. package/dist/repository/project-fingerprint.d.ts.map +1 -0
  85. package/dist/repository/project-fingerprint.js +150 -0
  86. package/dist/repository/project-fingerprint.js.map +1 -0
  87. package/dist/setup/client-detection.d.ts +4 -0
  88. package/dist/setup/client-detection.d.ts.map +1 -1
  89. package/dist/setup/client-detection.js +17 -6
  90. package/dist/setup/client-detection.js.map +1 -1
  91. package/dist/setup/render.js +2 -2
  92. package/dist/setup/render.js.map +1 -1
  93. package/dist/web/i18n.d.ts +24 -8
  94. package/dist/web/i18n.d.ts.map +1 -1
  95. package/dist/web/i18n.js +96 -32
  96. package/dist/web/i18n.js.map +1 -1
  97. package/dist/web/server.d.ts.map +1 -1
  98. package/dist/web/server.js +72 -4
  99. package/dist/web/server.js.map +1 -1
  100. package/dist/web/ui.d.ts.map +1 -1
  101. package/dist/web/ui.js +317 -57
  102. package/dist/web/ui.js.map +1 -1
  103. package/migrations/008_federated_memory.sql +46 -0
  104. package/package.json +3 -1
  105. package/templates/AGENTS.md +2 -2
@@ -5,6 +5,7 @@ import { recordEntryInTransaction, readEntry } from './entries.js';
5
5
  import { buildStructuredScope, MEMORY_CLASSES, validateApplicability, validateSignals, } from './structured-memory.js';
6
6
  import { ensureGlobalWorkspace, GLOBAL_WORKSPACE, resolveProjectWorkspace } from './workspaces.js';
7
7
  import { readKnowledgeEvidence } from '../akinator/knowledge-path.js';
8
+ import { analyzePortability, containsProjectSpecificData as containsPortableProjectSpecificData } from './portability.js';
8
9
  const DEFAULT_LIMIT = 10;
9
10
  const MAX_LIMIT = 50;
10
11
  const MIN_CURATOR_SCORE = 4;
@@ -82,11 +83,7 @@ function knownProjectValues(entry) {
82
83
  .sort((left, right) => right.length - left.length);
83
84
  }
84
85
  function containsProjectSpecificData(value, entry) {
85
- const normalized = value.normalize('NFKC');
86
- return knownProjectValues(entry).some((known) => normalized.includes(known.normalize('NFKC')))
87
- || LOCAL_LANGUAGE.test(normalized)
88
- || ABSOLUTE_PATH.test(normalized)
89
- || PROJECT_RELATIVE_PATH_PRESENT.test(normalized);
86
+ return containsPortableProjectSpecificData(value, entry);
90
87
  }
91
88
  function portableText(value, entry, title = false) {
92
89
  const japanese = JAPANESE_TEXT.test(value);
@@ -220,6 +217,10 @@ function scoreEntry(entry) {
220
217
  score -= 1;
221
218
  warnings.push('元プロジェクトのパス由来です');
222
219
  }
220
+ const portability = analyzePortability(entry);
221
+ if (portability.projectSpecific && !warnings.some((warning) => warning.includes('プロジェクト固有'))) {
222
+ warnings.push('プロジェクト固有情報が含まれています');
223
+ }
223
224
  return { score, reasons: [...new Set(reasons)], warnings: [...new Set(warnings)], metadata };
224
225
  }
225
226
  function candidateFromEntry(database, entry) {
@@ -251,7 +252,11 @@ function candidateFromEntry(database, entry) {
251
252
  entryId: entry.id,
252
253
  workspace: entry.workspace,
253
254
  revision: entry.revision,
255
+ updatedAt: entry.updatedAt,
254
256
  kind: entry.kind,
257
+ tags: [...entry.tags],
258
+ ...(scored.metadata.memoryClass === undefined ? {} : { memoryClass: scored.metadata.memoryClass }),
259
+ ...(scored.metadata.applicability === undefined ? {} : { applicability: scored.metadata.applicability }),
255
260
  skillName: draft.title,
256
261
  overview: overviewLines(draft, scored.metadata),
257
262
  draft,
@@ -267,39 +272,132 @@ function validateLimit(value) {
267
272
  throw new KiokukoError('VALIDATION_ERROR', `limit must be an integer between 1 and ${MAX_LIMIT}`);
268
273
  return limit;
269
274
  }
270
- function listCuratorCandidates(database, workspace, limit, skillReadyOnly) {
275
+ function encodeCuratorCursor(candidate) {
276
+ return Buffer.from(JSON.stringify({
277
+ ready: candidate.knowledge.skillReady ? 1 : 0,
278
+ score: candidate.score,
279
+ updatedAt: candidate.updatedAt,
280
+ workspace: candidate.workspace,
281
+ entryId: candidate.entryId,
282
+ }), 'utf8').toString('base64url');
283
+ }
284
+ function decodeCuratorCursor(value) {
285
+ if (value === undefined || value.length === 0)
286
+ return undefined;
287
+ try {
288
+ const parsed = JSON.parse(Buffer.from(value, 'base64url').toString('utf8'));
289
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
290
+ throw new Error('cursor');
291
+ const cursor = parsed;
292
+ if ((cursor.ready !== 0 && cursor.ready !== 1) || typeof cursor.score !== 'number' || !Number.isFinite(cursor.score)
293
+ || typeof cursor.updatedAt !== 'string' || typeof cursor.workspace !== 'string' || typeof cursor.entryId !== 'string')
294
+ throw new Error('cursor');
295
+ return { ready: cursor.ready, score: cursor.score, updatedAt: cursor.updatedAt, workspace: cursor.workspace, entryId: cursor.entryId };
296
+ }
297
+ catch {
298
+ throw new KiokukoError('VALIDATION_ERROR', 'Curator cursor is invalid');
299
+ }
300
+ }
301
+ function compareCuratorCandidates(left, right) {
302
+ return Number(right.knowledge.skillReady) - Number(left.knowledge.skillReady)
303
+ || right.score - left.score
304
+ || right.updatedAt.localeCompare(left.updatedAt)
305
+ || left.workspace.localeCompare(right.workspace)
306
+ || left.entryId.localeCompare(right.entryId);
307
+ }
308
+ function candidateAfterCursor(candidate, cursor) {
309
+ if (cursor === undefined)
310
+ return true;
311
+ return Number(candidate.knowledge.skillReady) < cursor.ready
312
+ || (Number(candidate.knowledge.skillReady) === cursor.ready && (candidate.score < cursor.score
313
+ || (candidate.score === cursor.score && (candidate.updatedAt < cursor.updatedAt
314
+ || (candidate.updatedAt === cursor.updatedAt && (candidate.workspace > cursor.workspace
315
+ || (candidate.workspace === cursor.workspace && candidate.entryId > cursor.entryId)))))));
316
+ }
317
+ function scanCuratorRows(database, clauses, parameters) {
318
+ const rows = [];
319
+ let cursor;
320
+ const batchSize = 500;
321
+ while (true) {
322
+ const cursorClause = cursor === undefined
323
+ ? ''
324
+ : `AND (
325
+ e.updated_at < ?
326
+ OR (e.updated_at = ? AND e.workspace > ?)
327
+ OR (e.updated_at = ? AND e.workspace = ? AND e.id > ?)
328
+ )`;
329
+ const cursorParameters = cursor === undefined
330
+ ? []
331
+ : [cursor.updatedAt, cursor.updatedAt, cursor.workspace, cursor.updatedAt, cursor.workspace, cursor.id];
332
+ const batch = database.prepare(`
333
+ SELECT e.workspace, e.id, e.updated_at AS updatedAt
334
+ FROM entries AS e
335
+ JOIN entry_revisions AS r ON r.entry_id = e.id AND r.revision = e.current_revision
336
+ WHERE ${clauses.join(' AND ')}
337
+ ${cursorClause}
338
+ ORDER BY e.updated_at DESC, e.workspace ASC, e.id ASC
339
+ LIMIT ?
340
+ `).all(...parameters, ...cursorParameters, batchSize);
341
+ rows.push(...batch);
342
+ if (batch.length < batchSize)
343
+ break;
344
+ cursor = batch.at(-1);
345
+ }
346
+ return rows;
347
+ }
348
+ function listCuratorCandidates(database, workspace, input, limit) {
271
349
  if (workspace === GLOBAL_WORKSPACE)
272
- return { candidates: [], truncated: false };
273
- const rowLimit = workspace === null ? MAX_LIMIT * 100 : MAX_LIMIT * 10;
274
- const rows = workspace === null
275
- ? database.prepare(`
276
- SELECT workspace, id
277
- FROM entries
278
- WHERE workspace <> ? AND status = 'candidate'
279
- ORDER BY updated_at DESC, workspace ASC, id ASC
280
- LIMIT ?
281
- `).all(GLOBAL_WORKSPACE, rowLimit)
282
- : database.prepare(`
283
- SELECT workspace, id
284
- FROM entries
285
- WHERE workspace = ? AND status = 'candidate'
286
- ORDER BY updated_at DESC, id ASC
287
- LIMIT ?
288
- `).all(workspace, rowLimit);
350
+ return { candidates: [], truncated: false, nextCursor: null, totalApproximate: 0 };
351
+ const workspaces = input.workspaces?.length ? [...new Set(input.workspaces)] : workspace === null ? undefined : [workspace];
352
+ const parameters = [GLOBAL_WORKSPACE];
353
+ const clauses = ["e.workspace <> ?", "e.status = 'candidate'"];
354
+ if (workspaces !== undefined) {
355
+ clauses.push(`e.workspace IN (${workspaces.map(() => '?').join(', ')})`);
356
+ parameters.push(...workspaces);
357
+ }
358
+ if (input.search !== undefined && input.search.trim().length > 0) {
359
+ const pattern = `%${input.search.trim()}%`;
360
+ clauses.push("(r.title LIKE ? OR COALESCE(r.summary, '') LIKE ? OR r.body LIKE ? OR EXISTS (SELECT 1 FROM entry_revision_tags search_tags WHERE search_tags.entry_id = e.id AND search_tags.revision = e.current_revision AND search_tags.tag LIKE ?))");
361
+ parameters.push(pattern, pattern, pattern, pattern);
362
+ }
363
+ const tags = [...new Set((input.tags ?? []).map((tag) => tag.trim()).filter(Boolean))];
364
+ if (tags.length > 0) {
365
+ const exists = tags.map(() => 'EXISTS (SELECT 1 FROM entry_revision_tags filter_tags WHERE filter_tags.entry_id = e.id AND filter_tags.revision = e.current_revision AND filter_tags.tag = ?)');
366
+ clauses.push(input.tagMode === 'all' ? exists.join(' AND ') : `(${exists.join(' OR ')})`);
367
+ parameters.push(...tags);
368
+ }
369
+ const scopeNeedles = [
370
+ ...(input.frameworks ?? []).map((value) => `"name":"${value.replaceAll('"', '')}"`),
371
+ ...(input.languages ?? []).map((value) => `"${value.replaceAll('"', '')}"`),
372
+ ...(input.memoryClasses ?? []).map((value) => `"memoryClass":"${value}"`),
373
+ ];
374
+ for (const needle of scopeNeedles) {
375
+ clauses.push('r.scope_json LIKE ?');
376
+ parameters.push(`%${needle}%`);
377
+ }
378
+ if (input.includeGlobalized !== true) {
379
+ clauses.push("NOT EXISTS (SELECT 1 FROM entries AS g JOIN entry_revisions AS gr ON gr.entry_id = g.id AND gr.revision = g.current_revision WHERE g.workspace = 'global' AND gr.provenance_json LIKE '%' || e.id || '@' || e.current_revision || '#deterministic-v1%')");
380
+ }
381
+ const rows = scanCuratorRows(database, clauses, parameters);
289
382
  const candidates = rows
290
383
  .map((row) => {
291
384
  const entry = readEntry(database, { workspace: row.workspace, entryId: row.id });
385
+ const metadata = readStructuredMetadata(entry);
386
+ if (input.frameworks?.length && !(metadata.applicability?.frameworks ?? []).some((item) => input.frameworks.some((framework) => item.name.toLocaleLowerCase() === framework.toLocaleLowerCase())))
387
+ return null;
388
+ if (input.languages?.length && !(metadata.applicability?.languages ?? []).some((language) => input.languages.some((expected) => language.toLocaleLowerCase() === expected.toLocaleLowerCase())))
389
+ return null;
390
+ if (input.memoryClasses?.length && (metadata.memoryClass === undefined || !input.memoryClasses.includes(metadata.memoryClass)))
391
+ return null;
292
392
  const candidate = candidateFromEntry(database, entry);
293
- if (candidate !== null && existingGlobalEntry(database, curatedReference(entry)) !== undefined)
393
+ if (candidate !== null && input.includeGlobalized !== true && existingGlobalEntry(database, curatedReference(entry)) !== undefined)
294
394
  return null;
295
395
  return candidate;
296
396
  })
297
397
  .filter((candidate) => candidate !== null)
298
- .filter((candidate) => !skillReadyOnly || candidate.knowledge.skillReady)
299
- .sort((left, right) => Number(right.knowledge.skillReady) - Number(left.knowledge.skillReady)
300
- || right.score - left.score
301
- || left.workspace.localeCompare(right.workspace)
302
- || left.entryId.localeCompare(right.entryId));
398
+ .filter((candidate) => !input.skillReadyOnly || candidate.knowledge.skillReady)
399
+ .filter((candidate) => input.tiers === undefined || input.tiers.includes(candidate.knowledge.tier))
400
+ .sort(compareCuratorCandidates);
303
401
  const concepts = new Set();
304
402
  const deduplicated = candidates.filter((candidate) => {
305
403
  if (concepts.has(candidate.knowledge.conceptKey))
@@ -307,12 +405,20 @@ function listCuratorCandidates(database, workspace, limit, skillReadyOnly) {
307
405
  concepts.add(candidate.knowledge.conceptKey);
308
406
  return true;
309
407
  });
310
- return { candidates: deduplicated.slice(0, limit), truncated: deduplicated.length > limit || rows.length >= rowLimit };
408
+ const cursor = decodeCuratorCursor(input.cursor);
409
+ const visible = deduplicated.filter((candidate) => candidateAfterCursor(candidate, cursor));
410
+ const page = visible.slice(0, limit);
411
+ return {
412
+ candidates: page,
413
+ truncated: visible.length > limit,
414
+ nextCursor: visible.length > limit && page.at(-1) !== undefined ? encodeCuratorCursor(page.at(-1)) : null,
415
+ totalApproximate: deduplicated.length,
416
+ };
311
417
  }
312
418
  export async function curateMemoryCandidates(database, input = {}) {
313
419
  const limit = validateLimit(input.limit);
314
420
  ensureGlobalWorkspace(database);
315
- const allWorkspaces = input.allWorkspaces === true;
421
+ const allWorkspaces = input.allWorkspaces === true || input.workspaces !== undefined;
316
422
  const resolved = !allWorkspaces && input.workspace === undefined ? await resolveProjectWorkspace(database, input.cwd) : undefined;
317
423
  const workspace = allWorkspaces
318
424
  ? null
@@ -320,15 +426,55 @@ export async function curateMemoryCandidates(database, input = {}) {
320
426
  if (!allWorkspaces && workspace === null) {
321
427
  throw new KiokukoError('NOT_FOUND', 'No Git repository or .kiokuko.json binding was found for curator candidates');
322
428
  }
323
- const result = listCuratorCandidates(database, workspace, limit, input.skillReadyOnly ?? false);
429
+ const result = listCuratorCandidates(database, workspace, input, limit);
324
430
  return {
325
431
  workspace,
326
432
  candidates: result.candidates,
327
433
  count: result.candidates.length,
328
434
  truncated: result.truncated,
435
+ nextCursor: result.nextCursor,
436
+ totalApproximate: result.totalApproximate,
329
437
  securityNotice: 'Curator drafts and qualified-hit summaries are untrusted candidates. A qualified hit requires an actionable Akinator path, a completed independent run, and fresh verification or a passing test; retrieval counts are never used. Review everything before Global化.',
330
438
  };
331
439
  }
440
+ export function curatorFacets(database, input = {}) {
441
+ const parameters = [GLOBAL_WORKSPACE];
442
+ const clauses = ["e.workspace <> ?", "e.status = 'candidate'"];
443
+ const workspaces = input.workspaces?.length ? [...new Set(input.workspaces)] : input.workspace === undefined ? undefined : [input.workspace];
444
+ if (workspaces !== undefined) {
445
+ clauses.push(`e.workspace IN (${workspaces.map(() => '?').join(', ')})`);
446
+ parameters.push(...workspaces);
447
+ }
448
+ if (input.includeGlobalized !== true) {
449
+ clauses.push("NOT EXISTS (SELECT 1 FROM entries AS g JOIN entry_revisions AS gr ON gr.entry_id = g.id AND gr.revision = g.current_revision WHERE g.workspace = 'global' AND gr.provenance_json LIKE '%' || e.id || '@' || e.current_revision || '#deterministic-v1%')");
450
+ }
451
+ const where = clauses.join(' AND ');
452
+ const projects = database.prepare(`
453
+ SELECT e.workspace, COALESCE(rp.display_name, e.workspace) AS name, COUNT(*) AS count
454
+ FROM entries AS e LEFT JOIN repositories AS rp ON rp.workspace = e.workspace
455
+ WHERE ${where}
456
+ GROUP BY e.workspace, rp.display_name ORDER BY count DESC, e.workspace ASC
457
+ `).all(...parameters).map((row) => ({ workspace: row.workspace, name: row.name, count: Number(row.count) }));
458
+ const tags = database.prepare(`
459
+ SELECT t.tag AS value, COUNT(DISTINCT e.id) AS count
460
+ FROM entries AS e JOIN entry_revision_tags AS t ON t.entry_id = e.id AND t.revision = e.current_revision
461
+ WHERE ${where}
462
+ GROUP BY t.tag ORDER BY count DESC, value ASC
463
+ `).all(...parameters).map((row) => ({ value: row.value, count: Number(row.count) }));
464
+ const signals = (type) => database.prepare(`
465
+ SELECT s.normalized_value AS value, COUNT(DISTINCT e.id) AS count
466
+ FROM entries AS e JOIN entry_search_signals AS s ON s.entry_id = e.id
467
+ WHERE ${where} AND s.signal_type = ?
468
+ GROUP BY s.normalized_value ORDER BY count DESC, value ASC
469
+ `).all(...parameters, type).map((row) => ({ value: row.value, count: Number(row.count) }));
470
+ const memoryClasses = database.prepare(`
471
+ SELECT json_extract(r.scope_json, '$.memoryClass') AS value, COUNT(*) AS count
472
+ FROM entries AS e JOIN entry_revisions AS r ON r.entry_id = e.id AND r.revision = e.current_revision
473
+ WHERE ${where} AND json_extract(r.scope_json, '$.memoryClass') IS NOT NULL
474
+ GROUP BY value ORDER BY count DESC, value ASC
475
+ `).all(...parameters).map((row) => ({ value: row.value, count: Number(row.count) }));
476
+ return { projects, tags, frameworks: signals('framework'), languages: signals('language'), memoryClasses };
477
+ }
332
478
  function safeGlobalScope(entry, metadata) {
333
479
  const signals = metadata.signals === undefined ? undefined : Object.fromEntries(Object.entries(metadata.signals)
334
480
  .filter(([key, value]) => key !== 'paths' && Array.isArray(value) && value.length > 0)
@@ -1 +1 @@
1
- {"version":3,"file":"curator.js","sourceRoot":"","sources":["../../src/memory/curator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"curator.js","sourceRoot":"","sources":["../../src/memory/curator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { SqliteDatabase } from '../db/adapter.js';
2
+ import { type EntryRecord } from './entries.js';
3
+ import { type RecallItem, type RecallResult } from './retrieval.js';
4
+ import { type ResolvedProjectWorkspace } from './workspaces.js';
5
+ export type FederatedOrigin = 'project' | 'ecosystem' | 'global';
6
+ export type FederatedScope = 'auto' | FederatedOrigin;
7
+ export interface FederatedRetrievalPolicy {
8
+ project: {
9
+ enabled: boolean;
10
+ limit: number;
11
+ };
12
+ ecosystem: {
13
+ enabled: boolean;
14
+ limit: number;
15
+ maxWorkspaces: number;
16
+ maxEntriesPerWorkspace: number;
17
+ requireApplicability: boolean;
18
+ };
19
+ global: {
20
+ enabled: boolean;
21
+ limit: number;
22
+ };
23
+ }
24
+ export declare const DEFAULT_FEDERATED_POLICY: FederatedRetrievalPolicy;
25
+ export interface FederatedRecallItem extends RecallItem {
26
+ origin: FederatedOrigin;
27
+ sourceWorkspace?: string;
28
+ sourceProject?: string;
29
+ selectionReasons: string[];
30
+ }
31
+ export type FederatedRecallMemory = Omit<RecallResult, 'items'> & {
32
+ items: FederatedRecallItem[];
33
+ };
34
+ export interface FederatedRecallResult {
35
+ project: {
36
+ target: ResolvedProjectWorkspace;
37
+ memory: RecallResult;
38
+ } | null;
39
+ ecosystem: FederatedRecallMemory | null;
40
+ global: RecallResult | null;
41
+ combined?: FederatedRecallMemory;
42
+ securityNotice: string;
43
+ }
44
+ export interface FederatedEntry {
45
+ entry: EntryRecord;
46
+ origin: FederatedOrigin;
47
+ score: number;
48
+ sourceWorkspace?: string;
49
+ sourceProject?: string;
50
+ selectionReasons: string[];
51
+ }
52
+ export declare function satisfiesFrameworkVersion(actual: string, requirement: string): 'exact' | 'compatible' | 'unknown' | 'incompatible';
53
+ export declare function retrieveFederatedMemory(database: SqliteDatabase, input: {
54
+ query: string;
55
+ cwd?: string;
56
+ project?: ResolvedProjectWorkspace;
57
+ scope?: FederatedScope;
58
+ limit?: number;
59
+ maxChars?: number;
60
+ policy?: Partial<FederatedRetrievalPolicy>;
61
+ }): Promise<FederatedRecallResult>;
62
+ export declare function federatedEntries(database: SqliteDatabase, input: {
63
+ project: ResolvedProjectWorkspace;
64
+ query: string;
65
+ limit: number;
66
+ }): Promise<FederatedEntry[]>;
67
+ //# sourceMappingURL=federated-retrieval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federated-retrieval.d.ts","sourceRoot":"","sources":["../../src/memory/federated-retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAwD,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG1H,OAAO,EAAoE,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAKlI,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,eAAe,CAAC;AAGtD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,SAAS,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,sBAAsB,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,OAAO,CAAA;KAAE,CAAC;IACrI,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,eAAO,MAAM,wBAAwB,EAAE,wBAIrC,CAAC;AAEH,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC;AAEnG,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE;QAAE,MAAM,EAAE,wBAAwB,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3E,SAAS,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AA2CD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,CAQlI;AAoLD,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAA;CAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA6DzR;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE;IAAE,OAAO,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAiBtK"}