iranti 0.3.37 → 0.3.39

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.
@@ -72,6 +72,27 @@ let processIranti = null;
72
72
  // an active database, which is required for Glama's quality checks.
73
73
  let _dbStartupDone = false;
74
74
  let _dbStartupPromise = null;
75
+ // ── Cross-host write-debt enforcement (file watcher) ─────────────────────────
76
+ // For hosts without hook support (Codex, Copilot, generic MCP), a file watcher
77
+ // started at handshake time detects code file changes and increments
78
+ // .iranti-write-debt the same way the Claude Code PostToolUse hook does.
79
+ // Claude Code keeps its native hooks and does not use the watcher.
80
+ // The iranti_attend gate below reads the same debt file and blocks
81
+ // pre-response attend when debt is outstanding, forcing iranti_write first.
82
+ const WATCHER_CODE_EXTENSIONS = new Set([
83
+ '.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs',
84
+ '.py', '.md', '.mdx', '.sh',
85
+ ]);
86
+ const WATCHER_EXCLUDE_DIRS = new Set([
87
+ 'node_modules', '.git', 'dist', 'build', '.next',
88
+ '__pycache__', '.cache', '.iranti',
89
+ ]);
90
+ const WRITE_DEBT_FILENAME = '.iranti-write-debt';
91
+ let _activeWatcher = null;
92
+ let _watchedCwd = null;
93
+ let _watchDebounceTimer = null;
94
+ const _watchPendingChanges = new Set();
95
+ // ─────────────────────────────────────────────────────────────────────────────
75
96
  async function dbStartup() {
76
97
  if (_dbStartupDone)
77
98
  return;
@@ -342,6 +363,126 @@ function resolveToolHost(host) {
342
363
  }
343
364
  return currentHost();
344
365
  }
366
+ // ── File watcher helpers ─────────────────────────────────────────────────────
367
+ /** Flush debounced file changes into .iranti-write-debt. */
368
+ function _flushWatcherDebt(cwd) {
369
+ if (_watchPendingChanges.size === 0)
370
+ return;
371
+ const changed = [..._watchPendingChanges];
372
+ _watchPendingChanges.clear();
373
+ _watchDebounceTimer = null;
374
+ const debtFile = node_path_1.default.join(cwd, WRITE_DEBT_FILENAME);
375
+ let debt = { pendingEdits: 0, edits: [] };
376
+ try {
377
+ if (node_fs_1.default.existsSync(debtFile)) {
378
+ debt = JSON.parse(node_fs_1.default.readFileSync(debtFile, 'utf8'));
379
+ }
380
+ }
381
+ catch {
382
+ debt = { pendingEdits: 0, edits: [] };
383
+ }
384
+ const now = new Date().toISOString();
385
+ debt.pendingEdits = (debt.pendingEdits || 0) + changed.length;
386
+ debt.lastEditAt = now;
387
+ debt.edits = debt.edits || [];
388
+ for (const f of changed) {
389
+ debt.edits.push({ file: f, at: now });
390
+ }
391
+ if (debt.edits.length > 20)
392
+ debt.edits = debt.edits.slice(-20);
393
+ try {
394
+ node_fs_1.default.writeFileSync(debtFile, JSON.stringify(debt, null, 2), 'utf8');
395
+ }
396
+ catch {
397
+ // Non-fatal: guard will still work on next check if file can't be written
398
+ }
399
+ }
400
+ /**
401
+ * Start a recursive file watcher on cwd (idempotent — only one watcher per cwd).
402
+ * Detects code file changes and increments .iranti-write-debt so the attend gate
403
+ * can block the next pre-response attend on hosts without native hook support.
404
+ */
405
+ function startFileWatcher(cwd) {
406
+ if (_activeWatcher && _watchedCwd === cwd)
407
+ return; // already watching
408
+ if (_activeWatcher) {
409
+ try {
410
+ _activeWatcher.close();
411
+ }
412
+ catch { /* ok */ }
413
+ _activeWatcher = null;
414
+ }
415
+ _watchedCwd = cwd;
416
+ try {
417
+ // persistent: false — the watcher must not prevent the process from
418
+ // exiting naturally when the MCP transport closes. Without this, the
419
+ // event loop stays alive and the smoke test's 3-second exit window fails.
420
+ _activeWatcher = node_fs_1.default.watch(cwd, { recursive: true, persistent: false }, (_eventType, filename) => {
421
+ if (!filename)
422
+ return;
423
+ // Skip the debt file itself to avoid feedback loops
424
+ if (filename === WRITE_DEBT_FILENAME)
425
+ return;
426
+ // Skip excluded directories
427
+ const parts = filename.split(node_path_1.default.sep);
428
+ if (parts.some(p => WATCHER_EXCLUDE_DIRS.has(p)))
429
+ return;
430
+ // Only track recognised code file types
431
+ const ext = node_path_1.default.extname(filename).toLowerCase();
432
+ if (!WATCHER_CODE_EXTENSIONS.has(ext))
433
+ return;
434
+ _watchPendingChanges.add(filename);
435
+ // Debounce: batch rapid multi-file saves into a single debt increment
436
+ if (_watchDebounceTimer)
437
+ clearTimeout(_watchDebounceTimer);
438
+ _watchDebounceTimer = setTimeout(() => _flushWatcherDebt(cwd), 200);
439
+ });
440
+ _activeWatcher.on('error', () => {
441
+ // Non-fatal: watcher silently stops if the fs can't support it
442
+ _activeWatcher = null;
443
+ });
444
+ }
445
+ catch {
446
+ // Non-fatal: fs.watch may not be available in all environments
447
+ }
448
+ }
449
+ /**
450
+ * Read .iranti-write-debt and return an isError gate result when debt > 0.
451
+ * Returns null when attend should proceed normally.
452
+ */
453
+ function checkWriteDebtForAttend(cwd) {
454
+ try {
455
+ const debtFile = node_path_1.default.join(cwd, WRITE_DEBT_FILENAME);
456
+ if (!node_fs_1.default.existsSync(debtFile))
457
+ return null;
458
+ const debt = JSON.parse(node_fs_1.default.readFileSync(debtFile, 'utf8'));
459
+ const pendingEdits = debt.pendingEdits || 0;
460
+ if (pendingEdits < 1)
461
+ return null;
462
+ const edits = debt.edits || [];
463
+ const fileList = edits.length > 0
464
+ ? edits.slice(-10).map((e) => ` - ${e.file}`).join('\n')
465
+ : ' (file list unavailable)';
466
+ return {
467
+ content: [{
468
+ type: 'text',
469
+ text: [
470
+ `WRITE_GUARD_BLOCKED: ${pendingEdits} file edit(s) pending iranti_write.`,
471
+ `Changed files (most recent ${Math.min(pendingEdits, 10)}):`,
472
+ fileList,
473
+ '',
474
+ `Required: call iranti_write for each changed file before iranti_attend can proceed.`,
475
+ `After writing all pending edits, re-call iranti_attend to get your memory brief.`,
476
+ ].join('\n'),
477
+ }],
478
+ isError: true,
479
+ };
480
+ }
481
+ catch {
482
+ return null; // Non-fatal: if debt file can't be read, allow attend to proceed
483
+ }
484
+ }
485
+ // ─────────────────────────────────────────────────────────────────────────────
345
486
  function protocolViolationResult(error) {
346
487
  return {
347
488
  content: [
@@ -424,6 +565,20 @@ async function shutdownProcess(code, reason) {
424
565
  await (0, client_1.disconnectDb)().catch(() => undefined);
425
566
  }
426
567
  finally {
568
+ // Close the file watcher so it doesn't hold the event loop open.
569
+ // persistent:false already handles the common case; explicit close
570
+ // here ensures cleanup even if the option isn't respected by the OS.
571
+ if (_activeWatcher) {
572
+ try {
573
+ _activeWatcher.close();
574
+ }
575
+ catch { /* ok */ }
576
+ _activeWatcher = null;
577
+ }
578
+ if (_watchDebounceTimer) {
579
+ clearTimeout(_watchDebounceTimer);
580
+ _watchDebounceTimer = null;
581
+ }
427
582
  if (isInteractiveTerminalLaunch()) {
428
583
  console.error(`[iranti-mcp] shutting down (${reason}).`);
429
584
  }
@@ -476,7 +631,7 @@ async function main() {
476
631
  // DB startup is deferred to first tool call via dbStartup() — see above.
477
632
  const server = new mcp_js_1.McpServer({
478
633
  name: 'iranti-mcp',
479
- version: '0.3.37',
634
+ version: '0.3.39',
480
635
  });
481
636
  server.registerTool('iranti_handshake', {
482
637
  description: `Initialize or refresh an agent's working-memory brief for the current task.
@@ -508,6 +663,12 @@ Do not use this as a per-turn retrieval tool; use iranti_attend.`,
508
663
  postCompaction,
509
664
  });
510
665
  const setupWarnings = checkHostSetup(resolvedHost, process.cwd());
666
+ // Start file watcher for hosts that don't have native hook support.
667
+ // Claude Code uses its own PostToolUse hooks to track write-debt; all
668
+ // other hosts (Codex, Copilot, generic MCP) rely on the watcher.
669
+ if (resolvedHost !== 'claude_code') {
670
+ startFileWatcher(process.cwd());
671
+ }
511
672
  if (setupWarnings.length > 0) {
512
673
  return textResult({ ...result, setupWarnings });
513
674
  }
@@ -559,6 +720,18 @@ checkpoint state before closing the turn.`,
559
720
  await dbStartup();
560
721
  const resolvedAgent = resolveToolAgent(agent, agentId);
561
722
  syncRuntimeLedgerContext(iranti, undefined, resolvedAgent);
723
+ // ── Write-debt gate ───────────────────────────────────────────────────
724
+ // Block pre-response attend when file edits are pending iranti_write.
725
+ // This is the cross-host equivalent of the Claude Code PreToolUse deny:
726
+ // the agent MUST call iranti_write for each pending edit before it can
727
+ // get its memory brief and reply. Applies to all hosts — Claude Code
728
+ // write-debt comes from its PostToolUse hook; other hosts use the watcher.
729
+ if (!phase || phase === 'pre-response' || phase === 'mid-turn') {
730
+ const debtBlock = checkWriteDebtForAttend(process.cwd());
731
+ if (debtBlock)
732
+ return debtBlock;
733
+ }
734
+ // ─────────────────────────────────────────────────────────────────────
562
735
  const resolvedLatestMessage = resolveAttendLatestMessage({ latestMessage, message });
563
736
  try {
564
737
  let postResponseCapture;
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/knowledge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,MAAM,EAA0B,MAAM,WAAW,CAAC;AAuG3D,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAiPtD"}
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/knowledge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAgB,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAA0B,MAAM,WAAW,CAAC;AA+G3D,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA8atD"}
@@ -25,13 +25,47 @@
25
25
  * GET /kb/related-deep — traverse relationship graph (multi-hop)
26
26
  * GET /kb/archive-history — get archive history for an entry
27
27
  */
28
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ var desc = Object.getOwnPropertyDescriptor(m, k);
31
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
32
+ desc = { enumerable: true, get: function() { return m[k]; } };
33
+ }
34
+ Object.defineProperty(o, k2, desc);
35
+ }) : (function(o, m, k, k2) {
36
+ if (k2 === undefined) k2 = k;
37
+ o[k2] = m[k];
38
+ }));
39
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
40
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
41
+ }) : function(o, v) {
42
+ o["default"] = v;
43
+ });
44
+ var __importStar = (this && this.__importStar) || (function () {
45
+ var ownKeys = function(o) {
46
+ ownKeys = Object.getOwnPropertyNames || function (o) {
47
+ var ar = [];
48
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
49
+ return ar;
50
+ };
51
+ return ownKeys(o);
52
+ };
53
+ return function (mod) {
54
+ if (mod && mod.__esModule) return mod;
55
+ var result = {};
56
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
57
+ __setModuleDefault(result, mod);
58
+ return result;
59
+ };
60
+ })();
28
61
  Object.defineProperty(exports, "__esModule", { value: true });
29
62
  exports.knowledgeRoutes = knowledgeRoutes;
30
- const express_1 = require("express");
63
+ const express_1 = __importStar(require("express"));
31
64
  const sdk_1 = require("../../sdk");
32
65
  const entity_resolution_1 = require("../../library/entity-resolution");
33
66
  const validation_1 = require("../middleware/validation");
34
67
  const authorization_1 = require("../middleware/authorization");
68
+ const queries_1 = require("../../library/queries");
35
69
  function heuristicEntityId(name) {
36
70
  return name
37
71
  .toLowerCase()
@@ -357,6 +391,180 @@ function knowledgeRoutes(iranti) {
357
391
  res.status(400).json({ error: err instanceof Error ? err.message : String(err) });
358
392
  }
359
393
  });
394
+ // GET /rules
395
+ router.get('/rules', (0, authorization_1.requireAnyScope)(['kb:read']), async (req, res) => {
396
+ try {
397
+ const entries = await (0, queries_1.findEntriesByEntityType)('rule');
398
+ const rules = entries.map((entry) => {
399
+ const props = entry.properties && typeof entry.properties === 'object' && !Array.isArray(entry.properties)
400
+ ? entry.properties
401
+ : null;
402
+ return {
403
+ ruleId: entry.entityId,
404
+ key: entry.key,
405
+ rule: entry.valueSummary ?? '',
406
+ triggers: Array.isArray(props?.triggers) ? props.triggers : [],
407
+ enforcement: props?.enforcement ?? 'soft',
408
+ scope: props?.scope ?? 'project',
409
+ updatedAt: entry.updatedAt.toISOString(),
410
+ };
411
+ });
412
+ res.json({ total: rules.length, rules });
413
+ }
414
+ catch (err) {
415
+ res.status(500).json({ error: err instanceof Error ? err.message : String(err) });
416
+ }
417
+ });
418
+ // DELETE /rules/:ruleId
419
+ router.delete('/rules/:ruleId', (0, authorization_1.requireAnyScope)(['kb:write']), async (req, res) => {
420
+ try {
421
+ const ruleId = req.params['ruleId']?.trim();
422
+ if (!ruleId) {
423
+ return res.status(400).json({ error: 'ruleId is required.' });
424
+ }
425
+ const entries = await (0, queries_1.findEntriesByEntityType)('rule');
426
+ const matching = entries.filter((e) => e.entityId === ruleId);
427
+ if (matching.length === 0) {
428
+ return res.status(404).json({ error: `Rule '${ruleId}' not found.` });
429
+ }
430
+ for (const entry of matching) {
431
+ await (0, queries_1.deleteEntryById)(entry.id);
432
+ }
433
+ res.json({ deleted: ruleId, entriesRemoved: matching.length });
434
+ }
435
+ catch (err) {
436
+ res.status(500).json({ error: err instanceof Error ? err.message : String(err) });
437
+ }
438
+ });
439
+ // GET /export
440
+ // Streams all (or a filtered subset of) knowledge entries as JSONL.
441
+ // The first line is a metadata header; subsequent lines are one ExportRow each.
442
+ //
443
+ // Query params:
444
+ // entityType — restrict to entries of this entityType
445
+ // entityId — restrict to a single entity (requires entityType)
446
+ // since — ISO-8601 timestamp; only entries updated at or after this date
447
+ router.get('/export', (0, authorization_1.requireAnyScope)(['kb:read']), async (req, res) => {
448
+ try {
449
+ const entityType = req.query.entityType ? String(req.query.entityType) : undefined;
450
+ const entityId = req.query.entityId ? String(req.query.entityId) : undefined;
451
+ const sinceStr = req.query.since ? String(req.query.since) : undefined;
452
+ let since;
453
+ if (sinceStr) {
454
+ since = new Date(sinceStr);
455
+ if (Number.isNaN(since.getTime())) {
456
+ return res.status(400).json({ error: 'since must be a valid ISO-8601 timestamp.' });
457
+ }
458
+ }
459
+ const rows = await (0, queries_1.exportFacts)({ entityType, entityId, since });
460
+ const exportedAt = new Date().toISOString();
461
+ const dateTag = exportedAt.split('T')[0];
462
+ res.setHeader('Content-Type', 'application/x-ndjson');
463
+ res.setHeader('Content-Disposition', `attachment; filename="iranti-export-${dateTag}.jsonl"`);
464
+ res.write(JSON.stringify({ _type: 'iranti-export', version: '1', exportedAt, total: rows.length }) + '\n');
465
+ for (const row of rows) {
466
+ res.write(JSON.stringify(row) + '\n');
467
+ }
468
+ res.end();
469
+ }
470
+ catch (err) {
471
+ res.status(500).json({ error: err instanceof Error ? err.message : String(err) });
472
+ }
473
+ });
474
+ // POST /import
475
+ // Accepts a JSONL body and writes facts into the knowledge base.
476
+ // Body must be Content-Type: text/plain or application/x-ndjson.
477
+ // Header lines (objects with _type field) are silently skipped.
478
+ //
479
+ // Query params:
480
+ // conflict — 'skip' (default) | 'overwrite' | 'merge'
481
+ // dryRun — 'true' to parse and count without writing
482
+ // provenanceTag — stamped on every written entry as properties.importedFrom
483
+ // remap — repeatable: 'oldEntityType=newEntityType' or
484
+ // 'oldType/oldId=newType/newId'
485
+ router.post('/import', (0, authorization_1.requireAnyScope)(['kb:write']), express_1.default.text({ type: ['text/plain', 'application/x-ndjson', 'application/octet-stream'], limit: '10mb' }), async (req, res) => {
486
+ try {
487
+ const conflictRaw = String(req.query.conflict ?? 'skip');
488
+ const conflictMode = conflictRaw === 'overwrite' ? 'overwrite'
489
+ : conflictRaw === 'merge' ? 'merge'
490
+ : 'skip';
491
+ const dryRun = req.query.dryRun === 'true';
492
+ const provenanceTag = req.query.provenanceTag ? String(req.query.provenanceTag) : undefined;
493
+ // Parse namespace remaps: ?remap=rule=policy or ?remap=project/foo=project/bar
494
+ const remapParam = req.query.remap;
495
+ const remapRaw = Array.isArray(remapParam)
496
+ ? remapParam
497
+ : remapParam ? [String(remapParam)] : [];
498
+ const remaps = remapRaw.flatMap((r) => {
499
+ const eqIdx = r.indexOf('=');
500
+ if (eqIdx < 1)
501
+ return [];
502
+ const fromStr = r.slice(0, eqIdx).trim();
503
+ const toStr = r.slice(eqIdx + 1).trim();
504
+ if (!fromStr || !toStr)
505
+ return [];
506
+ const [fromType, fromId] = fromStr.includes('/') ? fromStr.split('/') : [fromStr, undefined];
507
+ const [toType, toId] = toStr.includes('/') ? toStr.split('/') : [toStr, undefined];
508
+ return [{ from: fromStr, fromType, fromId, toType, toId }];
509
+ });
510
+ const body = req.body;
511
+ if (typeof body !== 'string') {
512
+ return res.status(400).json({
513
+ error: 'Request body must be JSONL text. Set Content-Type: text/plain or application/x-ndjson.',
514
+ });
515
+ }
516
+ const lines = body.split('\n');
517
+ let added = 0, skipped = 0, overwritten = 0, parseErrors = 0, dataLines = 0;
518
+ for (const line of lines) {
519
+ const trimmed = line.trim();
520
+ if (!trimmed)
521
+ continue;
522
+ let parsed;
523
+ try {
524
+ parsed = JSON.parse(trimmed);
525
+ }
526
+ catch {
527
+ parseErrors++;
528
+ continue;
529
+ }
530
+ // Skip metadata header lines
531
+ if (typeof parsed === 'object' &&
532
+ parsed !== null &&
533
+ '_type' in parsed)
534
+ continue;
535
+ dataLines++;
536
+ let row = parsed;
537
+ // Apply namespace remaps
538
+ for (const remap of remaps) {
539
+ const typeMatches = row.entityType === remap.fromType;
540
+ const idMatches = remap.fromId == null || row.entityId === remap.fromId;
541
+ if (typeMatches && idMatches) {
542
+ row = {
543
+ ...row,
544
+ entityType: remap.toType,
545
+ entityId: remap.toId ?? row.entityId,
546
+ };
547
+ }
548
+ }
549
+ if (!dryRun) {
550
+ const result = await (0, queries_1.importFact)(row, conflictMode, provenanceTag);
551
+ if (result.outcome === 'added')
552
+ added++;
553
+ else if (result.outcome === 'overwritten')
554
+ overwritten++;
555
+ else
556
+ skipped++;
557
+ }
558
+ else {
559
+ skipped++; // dry-run: all count as skipped
560
+ }
561
+ }
562
+ res.json({ added, skipped, overwritten, parseErrors, total: dataLines, dryRun });
563
+ }
564
+ catch (err) {
565
+ res.status(500).json({ error: err instanceof Error ? err.message : String(err) });
566
+ }
567
+ });
360
568
  return router;
361
569
  }
362
570
  //# sourceMappingURL=knowledge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../../../src/api/routes/knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../../../src/api/routes/knowledge.ts"],"names":[],"mappings":"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"}
@@ -71,7 +71,7 @@ const RUNTIME_AUTHORITY = (0, runtimeLifecycle_1.resolveRuntimeAuthorityFromEnv)
71
71
  const INSTANCE_DIR = RUNTIME_AUTHORITY.instanceDir;
72
72
  const INSTANCE_RUNTIME_FILE = RUNTIME_AUTHORITY.runtimeFile;
73
73
  const INSTANCE_NAME = process.env.IRANTI_INSTANCE_NAME?.trim() || (INSTANCE_DIR ? path_1.default.basename(INSTANCE_DIR) : 'adhoc');
74
- const VERSION = '0.3.37';
74
+ const VERSION = '0.3.39';
75
75
  const PORT_RAW = (process.env.IRANTI_PORT ?? '3001').trim();
76
76
  const PORT = Number.parseInt(PORT_RAW, 10);
77
77
  const runtimeMetadataHealth = (0, healthChecks_1.createHealthCheckState)({
@@ -159,5 +159,91 @@ export declare function claimWriteReceiptSlot(data: {
159
159
  }, db?: DbClient): Promise<boolean>;
160
160
  export declare function clearPendingWriteReceiptSlot(requestId: string, db?: DbClient): Promise<void>;
161
161
  export declare function updateWriteReceiptOutcome(requestId: string, outcome: string, resultEntryId?: number | null, escalationFile?: string | null, db?: DbClient): Promise<void>;
162
+ export interface ExportFactsOptions {
163
+ /** Only export facts of this entityType. */
164
+ entityType?: string;
165
+ /** Only export facts for this entityId (requires entityType). */
166
+ entityId?: string;
167
+ /** Only export facts whose updatedAt is at or after this date (incremental export). */
168
+ since?: Date;
169
+ }
170
+ /**
171
+ * A single fact row ready for JSONL serialisation. All Date fields are left
172
+ * as Date objects so the caller controls how they are serialised (typically
173
+ * with JSON.stringify which calls .toISOString() automatically).
174
+ */
175
+ export interface ExportRow {
176
+ entityType: string;
177
+ entityId: string;
178
+ key: string;
179
+ valueRaw: unknown;
180
+ valueSummary: string | null;
181
+ confidence: number;
182
+ source: string;
183
+ validFrom: Date;
184
+ validUntil: Date | null;
185
+ createdBy: string | null;
186
+ isProtected: boolean;
187
+ properties: Record<string, unknown> | null;
188
+ updatedAt: Date;
189
+ createdAt: Date;
190
+ }
191
+ /**
192
+ * Read all (or a filtered slice of) knowledge entries and return them as
193
+ * plain ExportRow objects suitable for streaming to JSONL.
194
+ *
195
+ * Filtering:
196
+ * entityType + entityId → single-entity export
197
+ * entityType only → all entries of that type
198
+ * since → incremental: only entries updated since that timestamp
199
+ *
200
+ * No rows are excluded by default — the caller (CLI or REST route) decides
201
+ * what to filter. Rows are returned ordered by entityType, entityId, key so
202
+ * the output file is deterministic and easy to diff.
203
+ */
204
+ export declare function exportFacts(options?: ExportFactsOptions, db?: DbClient): Promise<ExportRow[]>;
205
+ export type ImportConflictMode = 'skip' | 'overwrite' | 'merge';
206
+ /**
207
+ * Shape of a single row in an import file. Mirrors ExportRow but with
208
+ * optional/nullable fields where a round-trip may omit them.
209
+ */
210
+ export interface ImportRow {
211
+ entityType: string;
212
+ entityId: string;
213
+ key: string;
214
+ valueRaw: unknown;
215
+ valueSummary?: string | null;
216
+ confidence: number;
217
+ source: string;
218
+ validFrom?: string | Date | null;
219
+ validUntil?: string | Date | null;
220
+ createdBy?: string | null;
221
+ isProtected?: boolean;
222
+ properties?: Record<string, unknown> | null;
223
+ }
224
+ export interface ImportFactResult {
225
+ outcome: 'added' | 'skipped' | 'overwritten';
226
+ entityType: string;
227
+ entityId: string;
228
+ key: string;
229
+ /** Human-readable explanation when outcome is 'skipped'. */
230
+ reason?: string;
231
+ }
232
+ /**
233
+ * Write one ImportRow into the knowledge base with configurable conflict
234
+ * handling. Bypasses the Librarian conflict pipeline intentionally — the user
235
+ * has already chosen a conflict mode at the import boundary.
236
+ *
237
+ * Conflict modes:
238
+ * skip — leave any existing entry unchanged; return 'skipped'
239
+ * overwrite — always write (create new or replace existing)
240
+ * merge — keep whichever entry has the higher confidence value;
241
+ * skip if existing.confidence >= incoming.confidence
242
+ *
243
+ * provenanceTag, when provided, is stamped as `properties.importedFrom` and
244
+ * `properties.importedAt` on every written entry. This enables targeted undo
245
+ * with `iranti delete --imported-from <tag>`.
246
+ */
247
+ export declare function importFact(row: ImportRow, conflictMode: ImportConflictMode, provenanceTag?: string, db?: DbClient): Promise<ImportFactResult>;
162
248
  export {};
163
249
  //# sourceMappingURL=queries.d.ts.map