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.
- package/dist/scripts/iranti-cli.js +524 -2
- package/dist/scripts/iranti-mcp.js +174 -1
- package/dist/src/api/routes/knowledge.d.ts.map +1 -1
- package/dist/src/api/routes/knowledge.js +209 -1
- package/dist/src/api/routes/knowledge.js.map +1 -1
- package/dist/src/api/server.js +1 -1
- package/dist/src/library/queries.d.ts +86 -0
- package/dist/src/library/queries.d.ts.map +1 -1
- package/dist/src/library/queries.js +119 -0
- package/dist/src/library/queries.js.map +1 -1
- package/package.json +1 -1
|
@@ -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.
|
|
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,
|
|
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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"}
|
package/dist/src/api/server.js
CHANGED
|
@@ -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.
|
|
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
|