iranti 0.2.2 → 0.2.3
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/README.md +38 -11
- package/dist/scripts/iranti-cli.js +513 -38
- package/dist/scripts/iranti-mcp.js +1 -1
- package/dist/scripts/seed.js +10 -10
- package/dist/src/api/server.js +1 -1
- package/dist/src/chat/index.d.ts +8 -0
- package/dist/src/chat/index.d.ts.map +1 -0
- package/dist/src/chat/index.js +565 -0
- package/dist/src/chat/index.js.map +1 -0
- package/dist/src/lib/llm.d.ts +1 -0
- package/dist/src/lib/llm.d.ts.map +1 -1
- package/dist/src/lib/llm.js +4 -0
- package/dist/src/lib/llm.js.map +1 -1
- package/dist/src/lib/router.d.ts.map +1 -1
- package/dist/src/lib/router.js +46 -42
- package/dist/src/lib/router.js.map +1 -1
- package/dist/src/librarian/contextual-conflicts.d.ts +9 -0
- package/dist/src/librarian/contextual-conflicts.d.ts.map +1 -0
- package/dist/src/librarian/contextual-conflicts.js +243 -0
- package/dist/src/librarian/contextual-conflicts.js.map +1 -0
- package/dist/src/librarian/index.d.ts.map +1 -1
- package/dist/src/librarian/index.js +50 -0
- package/dist/src/librarian/index.js.map +1 -1
- package/dist/src/library/backends/chromaBackend.d.ts +27 -0
- package/dist/src/library/backends/chromaBackend.d.ts.map +1 -0
- package/dist/src/library/backends/chromaBackend.js +99 -0
- package/dist/src/library/backends/chromaBackend.js.map +1 -0
- package/dist/src/library/backends/index.d.ts +15 -0
- package/dist/src/library/backends/index.d.ts.map +1 -0
- package/dist/src/library/backends/index.js +39 -0
- package/dist/src/library/backends/index.js.map +1 -0
- package/dist/src/library/backends/pgvectorBackend.d.ts +8 -0
- package/dist/src/library/backends/pgvectorBackend.d.ts.map +1 -0
- package/dist/src/library/backends/pgvectorBackend.js +128 -0
- package/dist/src/library/backends/pgvectorBackend.js.map +1 -0
- package/dist/src/library/backends/qdrantBackend.d.ts +21 -0
- package/dist/src/library/backends/qdrantBackend.d.ts.map +1 -0
- package/dist/src/library/backends/qdrantBackend.js +107 -0
- package/dist/src/library/backends/qdrantBackend.js.map +1 -0
- package/dist/src/library/queries.d.ts.map +1 -1
- package/dist/src/library/queries.js +105 -123
- package/dist/src/library/queries.js.map +1 -1
- package/dist/src/library/vectorBackend.d.ts +19 -0
- package/dist/src/library/vectorBackend.d.ts.map +1 -0
- package/dist/src/library/vectorBackend.js +3 -0
- package/dist/src/library/vectorBackend.js.map +1 -0
- package/dist/src/resolutionist/index.d.ts +8 -0
- package/dist/src/resolutionist/index.d.ts.map +1 -0
- package/dist/src/resolutionist/index.js +265 -0
- package/dist/src/resolutionist/index.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.resolveInteractive = resolveInteractive;
|
|
7
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const promises_2 = __importDefault(require("readline/promises"));
|
|
10
|
+
function parseEscalationValue(raw) {
|
|
11
|
+
const trimmed = raw.trim();
|
|
12
|
+
if (!trimmed)
|
|
13
|
+
return null;
|
|
14
|
+
try {
|
|
15
|
+
return JSON.parse(trimmed);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return trimmed;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function extractField(content, label) {
|
|
22
|
+
const match = content.match(new RegExp(`^- \\*\\*${label}:\\*\\* (.+)$`, 'm'));
|
|
23
|
+
return match?.[1]?.trim() ?? null;
|
|
24
|
+
}
|
|
25
|
+
function parseEntityDescriptor(raw) {
|
|
26
|
+
if (!raw) {
|
|
27
|
+
throw new Error('Missing Entity field.');
|
|
28
|
+
}
|
|
29
|
+
const parts = raw.split('/').map((part) => part.trim());
|
|
30
|
+
if (parts.length !== 3 || parts.some((part) => part.length === 0)) {
|
|
31
|
+
throw new Error(`Malformed Entity field: ${raw}`);
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
entityType: parts[0],
|
|
35
|
+
entityId: parts[1],
|
|
36
|
+
key: parts[2],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function parseEscalationFile(filename, filePath, content) {
|
|
40
|
+
const entity = parseEntityDescriptor(extractField(content, 'Entity'));
|
|
41
|
+
return {
|
|
42
|
+
filename,
|
|
43
|
+
filePath,
|
|
44
|
+
detectedAt: extractField(content, 'Detected at') ?? 'unknown',
|
|
45
|
+
requestId: extractField(content, 'Request ID') ?? 'unknown',
|
|
46
|
+
entityType: entity.entityType,
|
|
47
|
+
entityId: entity.entityId,
|
|
48
|
+
key: entity.key,
|
|
49
|
+
existingValue: parseEscalationValue(extractField(content, 'Existing value') ?? 'null'),
|
|
50
|
+
existingConfidence: extractField(content, 'Existing confidence') ?? 'unknown',
|
|
51
|
+
incomingValue: parseEscalationValue(extractField(content, 'Incoming value') ?? 'null'),
|
|
52
|
+
incomingConfidence: extractField(content, 'Incoming confidence') ?? 'unknown',
|
|
53
|
+
reasoning: extractField(content, 'Reasoning') ?? 'No Librarian reasoning recorded.',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function formatValue(value) {
|
|
57
|
+
return typeof value === 'string' ? value : JSON.stringify(value, null, 2);
|
|
58
|
+
}
|
|
59
|
+
function buildSummary(context, value) {
|
|
60
|
+
const normalized = typeof value === 'string' ? value : JSON.stringify(value);
|
|
61
|
+
const compact = normalized.length > 96 ? `${normalized.slice(0, 93)}...` : normalized;
|
|
62
|
+
return `${context.entityType}/${context.entityId} ${context.key} resolved to ${compact}`;
|
|
63
|
+
}
|
|
64
|
+
function replaceAuthoritativeJson(content, payload) {
|
|
65
|
+
const marker = '### AUTHORITATIVE_JSON';
|
|
66
|
+
const markerIndex = content.indexOf(marker);
|
|
67
|
+
if (markerIndex === -1) {
|
|
68
|
+
throw new Error("Missing '### AUTHORITATIVE_JSON' section.");
|
|
69
|
+
}
|
|
70
|
+
const afterMarkerIndex = markerIndex + marker.length;
|
|
71
|
+
const afterMarker = content.slice(afterMarkerIndex);
|
|
72
|
+
const fenceStart = afterMarker.indexOf('```json');
|
|
73
|
+
if (fenceStart === -1) {
|
|
74
|
+
throw new Error('Missing ```json block after AUTHORITATIVE_JSON.');
|
|
75
|
+
}
|
|
76
|
+
const jsonStart = afterMarkerIndex + fenceStart + '```json'.length;
|
|
77
|
+
const afterFence = content.slice(jsonStart);
|
|
78
|
+
const fenceEnd = afterFence.indexOf('```');
|
|
79
|
+
if (fenceEnd === -1) {
|
|
80
|
+
throw new Error('Unclosed ```json block in AUTHORITATIVE_JSON.');
|
|
81
|
+
}
|
|
82
|
+
const jsonEnd = jsonStart + fenceEnd;
|
|
83
|
+
const serialized = `\n${JSON.stringify(payload, null, 2)}\n`;
|
|
84
|
+
return `${content.slice(0, jsonStart)}${serialized}${content.slice(jsonEnd)}`;
|
|
85
|
+
}
|
|
86
|
+
function markResolved(content) {
|
|
87
|
+
if (content.includes('**Status:** RESOLVED')) {
|
|
88
|
+
return content;
|
|
89
|
+
}
|
|
90
|
+
if (!content.includes('**Status:** PENDING')) {
|
|
91
|
+
throw new Error("Missing '**Status:** PENDING' marker.");
|
|
92
|
+
}
|
|
93
|
+
return content.replace('**Status:** PENDING', '**Status:** RESOLVED');
|
|
94
|
+
}
|
|
95
|
+
async function readPendingEscalations(activeDir) {
|
|
96
|
+
const entries = await promises_1.default.readdir(activeDir, { withFileTypes: true });
|
|
97
|
+
const pending = [];
|
|
98
|
+
for (const entry of entries) {
|
|
99
|
+
if (!entry.isFile() || !entry.name.endsWith('.md')) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
const filePath = path_1.default.join(activeDir, entry.name);
|
|
103
|
+
try {
|
|
104
|
+
const content = await promises_1.default.readFile(filePath, 'utf-8');
|
|
105
|
+
if (!content.includes('**Status:** PENDING')) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
pending.push(parseEscalationFile(entry.name, filePath, content));
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
112
|
+
console.warn(`[resolutionist] Skipping ${entry.name}: ${message}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
pending.sort((a, b) => a.filename.localeCompare(b.filename));
|
|
116
|
+
return pending;
|
|
117
|
+
}
|
|
118
|
+
async function promptChoice(rl) {
|
|
119
|
+
while (true) {
|
|
120
|
+
const answer = (await rl.question('Choose [1/2/3/S/Q]: ')).trim().toUpperCase();
|
|
121
|
+
if (['1', '2', '3', 'S', 'Q'].includes(answer)) {
|
|
122
|
+
return answer;
|
|
123
|
+
}
|
|
124
|
+
console.log('Enter 1, 2, 3, S, or Q.');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async function promptCustomJson(rl) {
|
|
128
|
+
while (true) {
|
|
129
|
+
const raw = (await rl.question('Custom value (valid JSON): ')).trim();
|
|
130
|
+
if (!raw) {
|
|
131
|
+
console.log('Custom value is required.');
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
return JSON.parse(raw);
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
console.log('Value must parse as valid JSON.');
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async function promptRequired(rl, prompt) {
|
|
143
|
+
while (true) {
|
|
144
|
+
const value = (await rl.question(`${prompt}: `)).trim();
|
|
145
|
+
if (value.length > 0) {
|
|
146
|
+
return value;
|
|
147
|
+
}
|
|
148
|
+
console.log(`${prompt} is required.`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function printEscalation(context) {
|
|
152
|
+
console.log('');
|
|
153
|
+
console.log(`File: ${context.filename}`);
|
|
154
|
+
console.log(`Entity: ${context.entityType}/${context.entityId}`);
|
|
155
|
+
console.log(`Key: ${context.key}`);
|
|
156
|
+
console.log(`Escalated at: ${context.detectedAt}`);
|
|
157
|
+
console.log(`Request ID: ${context.requestId}`);
|
|
158
|
+
console.log('Existing fact:');
|
|
159
|
+
console.log(` value ${formatValue(context.existingValue)}`);
|
|
160
|
+
console.log(` confidence ${context.existingConfidence}`);
|
|
161
|
+
console.log(' source not recorded in escalation file');
|
|
162
|
+
console.log(' validFrom not recorded in escalation file');
|
|
163
|
+
console.log('Challenging fact:');
|
|
164
|
+
console.log(` value ${formatValue(context.incomingValue)}`);
|
|
165
|
+
console.log(` confidence ${context.incomingConfidence}`);
|
|
166
|
+
console.log(' source not recorded in escalation file');
|
|
167
|
+
console.log(' validFrom not recorded in escalation file');
|
|
168
|
+
console.log(`Librarian notes: ${context.reasoning}`);
|
|
169
|
+
console.log('');
|
|
170
|
+
console.log('[1] Accept existing fact');
|
|
171
|
+
console.log('[2] Accept challenger');
|
|
172
|
+
console.log('[3] Enter custom value');
|
|
173
|
+
console.log('[S] Skip this escalation');
|
|
174
|
+
console.log('[Q] Quit');
|
|
175
|
+
}
|
|
176
|
+
async function resolveInteractive(escalationDir) {
|
|
177
|
+
const root = path_1.default.resolve(escalationDir);
|
|
178
|
+
const activeDir = path_1.default.join(root, 'active');
|
|
179
|
+
const resolvedDir = path_1.default.join(root, 'resolved');
|
|
180
|
+
const archivedDir = path_1.default.join(root, 'archived');
|
|
181
|
+
await Promise.all([
|
|
182
|
+
promises_1.default.mkdir(activeDir, { recursive: true }),
|
|
183
|
+
promises_1.default.mkdir(resolvedDir, { recursive: true }),
|
|
184
|
+
promises_1.default.mkdir(archivedDir, { recursive: true }),
|
|
185
|
+
]);
|
|
186
|
+
const pending = await readPendingEscalations(activeDir);
|
|
187
|
+
if (pending.length === 0) {
|
|
188
|
+
console.log(`No pending escalations in ${activeDir}.`);
|
|
189
|
+
return { resolved: 0, skipped: 0, remaining: 0 };
|
|
190
|
+
}
|
|
191
|
+
const rl = promises_2.default.createInterface({
|
|
192
|
+
input: process.stdin,
|
|
193
|
+
output: process.stdout,
|
|
194
|
+
});
|
|
195
|
+
let resolved = 0;
|
|
196
|
+
let skipped = 0;
|
|
197
|
+
let quitRequested = false;
|
|
198
|
+
try {
|
|
199
|
+
for (const escalation of pending) {
|
|
200
|
+
printEscalation(escalation);
|
|
201
|
+
const choice = await promptChoice(rl);
|
|
202
|
+
if (choice === 'Q') {
|
|
203
|
+
quitRequested = true;
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
if (choice === 'S') {
|
|
207
|
+
skipped++;
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
let payload;
|
|
211
|
+
if (choice === '1' || choice === '2') {
|
|
212
|
+
const acceptedValue = choice === '1' ? escalation.existingValue : escalation.incomingValue;
|
|
213
|
+
payload = {
|
|
214
|
+
entityType: escalation.entityType,
|
|
215
|
+
entityId: escalation.entityId,
|
|
216
|
+
key: escalation.key,
|
|
217
|
+
value: acceptedValue,
|
|
218
|
+
summary: buildSummary(escalation, acceptedValue),
|
|
219
|
+
notes: choice === '1'
|
|
220
|
+
? 'Resolutionist accepted the pre-escalation fact.'
|
|
221
|
+
: 'Resolutionist accepted the challenging fact.',
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
const value = await promptCustomJson(rl);
|
|
226
|
+
const summary = await promptRequired(rl, 'Summary');
|
|
227
|
+
const confidence = await promptRequired(rl, 'Reviewer confidence (0-100)');
|
|
228
|
+
const notes = (await rl.question('Optional notes: ')).trim();
|
|
229
|
+
payload = {
|
|
230
|
+
entityType: escalation.entityType,
|
|
231
|
+
entityId: escalation.entityId,
|
|
232
|
+
key: escalation.key,
|
|
233
|
+
value,
|
|
234
|
+
summary,
|
|
235
|
+
notes: notes
|
|
236
|
+
? `${notes} | Reviewer confidence: ${confidence}`
|
|
237
|
+
: `Reviewer confidence: ${confidence}`,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
try {
|
|
241
|
+
const original = await promises_1.default.readFile(escalation.filePath, 'utf-8');
|
|
242
|
+
const withJson = replaceAuthoritativeJson(original, payload);
|
|
243
|
+
const resolvedContent = markResolved(withJson);
|
|
244
|
+
await promises_1.default.writeFile(escalation.filePath, resolvedContent, 'utf-8');
|
|
245
|
+
resolved++;
|
|
246
|
+
console.log(`Resolved ${escalation.entityType}/${escalation.entityId}/${escalation.key} -> ${formatValue(payload.value)}`);
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
skipped++;
|
|
250
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
251
|
+
console.warn(`[resolutionist] Could not update ${escalation.filename}: ${message}`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
finally {
|
|
256
|
+
rl.close();
|
|
257
|
+
}
|
|
258
|
+
const remaining = (await readPendingEscalations(activeDir)).length;
|
|
259
|
+
if (quitRequested) {
|
|
260
|
+
console.log('Resolutionist exited before processing all pending escalations.');
|
|
261
|
+
}
|
|
262
|
+
console.log(`Summary: ${resolved} resolved, ${skipped} skipped, ${remaining} remaining.`);
|
|
263
|
+
return { resolved, skipped, remaining };
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resolutionist/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iranti",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Memory infrastructure for multi-agent AI systems",
|
|
5
5
|
"main": "dist/src/sdk/index.js",
|
|
6
6
|
"files": [
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
"test:decay": "ts-node tests/decay/run_decay_tests.ts",
|
|
68
68
|
"test:ingest": "ts-node tests/ingest/run_ingest_tests.ts",
|
|
69
69
|
"test:access-control": "ts-node tests/access-control/run_access_control_tests.ts",
|
|
70
|
+
"test:vector-backends": "ts-node tests/vector-backends/run_vector_backend_tests.ts",
|
|
70
71
|
"test:ts-client-smoke": "ts-node --project tests/typescript_client/tsconfig.json tests/typescript_client/smoke_test.ts",
|
|
71
72
|
"test:consistency": "ts-node tests/consistency/run_consistency_tests.ts",
|
|
72
73
|
"release:check": "ts-node scripts/check-release-version.ts",
|