iranti 0.3.6 → 0.3.8
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/codex-setup.js +57 -21
- package/dist/scripts/iranti-cli.js +58 -27
- package/dist/scripts/iranti-mcp.js +1 -1
- package/dist/src/api/server.js +1 -1
- package/dist/src/attendant/AttendantInstance.d.ts +1 -1
- package/dist/src/attendant/AttendantInstance.d.ts.map +1 -1
- package/dist/src/attendant/AttendantInstance.js +37 -38
- package/dist/src/attendant/AttendantInstance.js.map +1 -1
- package/dist/src/lib/autoRemember.d.ts +1 -0
- package/dist/src/lib/autoRemember.d.ts.map +1 -1
- package/dist/src/lib/autoRemember.js +8 -1
- package/dist/src/lib/autoRemember.js.map +1 -1
- package/package.json +1 -1
|
@@ -200,35 +200,53 @@ function makeVsCodeWorkspaceMcpServer(options, projectEnv) {
|
|
|
200
200
|
env,
|
|
201
201
|
};
|
|
202
202
|
}
|
|
203
|
-
|
|
203
|
+
/**
|
|
204
|
+
* Canonical protocol content for IRANTI.md — host-neutral, read once per session.
|
|
205
|
+
* Duplicated from iranti-cli.ts because codex-setup is a standalone script.
|
|
206
|
+
*/
|
|
207
|
+
function buildIrantiMdContent() {
|
|
204
208
|
return [
|
|
205
|
-
'
|
|
206
|
-
'# Iranti MCP Protocol',
|
|
209
|
+
'# Iranti Memory Protocol',
|
|
207
210
|
'',
|
|
208
|
-
'
|
|
211
|
+
'Iranti is a shared working-memory layer. Follow this protocol to persist what you find, what works, what fails, what changes, and what happens next so later sessions do not have to rediscover it.',
|
|
209
212
|
'',
|
|
210
213
|
'## Session start',
|
|
211
|
-
'- Call `mcp__iranti__iranti_handshake` with the
|
|
212
|
-
'-
|
|
214
|
+
'- Call `mcp__iranti__iranti_handshake` with the current task before responding to the first user message.',
|
|
215
|
+
'- Call `mcp__iranti__iranti_handshake` again after context compaction.',
|
|
213
216
|
'',
|
|
214
|
-
'##
|
|
215
|
-
'
|
|
216
|
-
'
|
|
217
|
-
'
|
|
218
|
-
'
|
|
217
|
+
'## Every turn',
|
|
218
|
+
'1. Call `iranti_attend(phase=\'pre-response\')` before responding to the user.',
|
|
219
|
+
'2. Call `iranti_attend` before any knowledge discovery tool — Read, Grep, Glob, WebSearch, WebFetch, Bash.',
|
|
220
|
+
'3. Call `iranti_write` after every Edit/Write, Bash that reveals system state, WebSearch/WebFetch with confirmed facts, and subagent completion.',
|
|
221
|
+
'4. Call `iranti_attend(phase=\'post-response\')` after every response.',
|
|
222
|
+
'5. If a recall-style lookup returns no facts, try at least one alternative retrieval angle before concluding absent.',
|
|
219
223
|
'',
|
|
220
|
-
'##
|
|
221
|
-
'- Call `
|
|
222
|
-
'-
|
|
224
|
+
'## Checkpointing',
|
|
225
|
+
'- Call `iranti_checkpoint` at task completion, task shifts, and natural pauses.',
|
|
226
|
+
'- Record actions, current step, next step, open risks, and file changes.',
|
|
223
227
|
'',
|
|
224
|
-
'##
|
|
225
|
-
'-
|
|
226
|
-
'-
|
|
227
|
-
'-
|
|
228
|
-
'-
|
|
228
|
+
'## Write depth',
|
|
229
|
+
'- Include what changed, why, and what breaks if removed.',
|
|
230
|
+
'- After file edits: absolutePath, lines, before, after, verify, why.',
|
|
231
|
+
'- After Bash: include the command and relevant output lines.',
|
|
232
|
+
'- After WebSearch/WebFetch: record findings AND dead ends.',
|
|
229
233
|
'',
|
|
230
|
-
|
|
231
|
-
|
|
234
|
+
].join('\n');
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Slim AGENTS.md block — just points to IRANTI.md and triggers handshake.
|
|
238
|
+
* This content lives in the system prompt on every turn, so keep it minimal.
|
|
239
|
+
*/
|
|
240
|
+
function buildCodexAgentsBlock() {
|
|
241
|
+
return [
|
|
242
|
+
'<!-- iranti-rules -->',
|
|
243
|
+
'# Iranti',
|
|
244
|
+
'',
|
|
245
|
+
'This project uses Iranti for shared memory. Read `IRANTI.md` for the full protocol.',
|
|
246
|
+
'',
|
|
247
|
+
'- Call `mcp__iranti__iranti_handshake` before responding to the first user message.',
|
|
248
|
+
'- If startup hooks are unavailable, do this on the first safe user turn.',
|
|
249
|
+
'- Follow the attend/write/checkpoint protocol in IRANTI.md.',
|
|
232
250
|
'<!-- /iranti-rules -->',
|
|
233
251
|
'',
|
|
234
252
|
].join('\n');
|
|
@@ -253,6 +271,21 @@ function writeWorkspaceAgentsFile(projectEnv) {
|
|
|
253
271
|
node_fs_1.default.writeFileSync(agentsFile, replaced, 'utf8');
|
|
254
272
|
return { filePath: agentsFile, status: 'updated' };
|
|
255
273
|
}
|
|
274
|
+
function writeWorkspaceIrantiMdFile(projectEnv) {
|
|
275
|
+
const projectPath = node_path_1.default.dirname(projectEnv);
|
|
276
|
+
const irantiMdFile = node_path_1.default.join(projectPath, 'IRANTI.md');
|
|
277
|
+
const irantiMdContent = buildIrantiMdContent();
|
|
278
|
+
if (!node_fs_1.default.existsSync(irantiMdFile)) {
|
|
279
|
+
node_fs_1.default.writeFileSync(irantiMdFile, irantiMdContent, 'utf8');
|
|
280
|
+
return { filePath: irantiMdFile, status: 'created' };
|
|
281
|
+
}
|
|
282
|
+
const existing = node_fs_1.default.readFileSync(irantiMdFile, 'utf8');
|
|
283
|
+
if (existing !== irantiMdContent) {
|
|
284
|
+
node_fs_1.default.writeFileSync(irantiMdFile, irantiMdContent, 'utf8');
|
|
285
|
+
return { filePath: irantiMdFile, status: 'updated' };
|
|
286
|
+
}
|
|
287
|
+
return { filePath: irantiMdFile, status: 'unchanged' };
|
|
288
|
+
}
|
|
256
289
|
function writeWorkspaceMcpFile(projectEnv, options) {
|
|
257
290
|
const projectPath = node_path_1.default.dirname(projectEnv);
|
|
258
291
|
const mcpFile = node_path_1.default.join(projectPath, '.mcp.json');
|
|
@@ -394,6 +427,7 @@ async function main() {
|
|
|
394
427
|
mcp: writeWorkspaceMcpFile(workspaceProjectEnv, options),
|
|
395
428
|
vscode: writeWorkspaceVsCodeMcpFile(workspaceProjectEnv, options),
|
|
396
429
|
agents: writeWorkspaceAgentsFile(workspaceProjectEnv),
|
|
430
|
+
irantiMd: writeWorkspaceIrantiMdFile(workspaceProjectEnv),
|
|
397
431
|
}
|
|
398
432
|
: null;
|
|
399
433
|
const registered = run('codex', ['mcp', 'get', options.name], repoRoot);
|
|
@@ -433,6 +467,7 @@ async function main() {
|
|
|
433
467
|
console.log(`Workspace .mcp.json: ${workspaceFilesResult.mcp.status} (${workspaceFilesResult.mcp.filePath})`);
|
|
434
468
|
console.log(`Workspace .vscode/mcp.json: ${workspaceFilesResult.vscode.status} (${workspaceFilesResult.vscode.filePath})`);
|
|
435
469
|
console.log(`Workspace AGENTS.md: ${workspaceFilesResult.agents.status} (${workspaceFilesResult.agents.filePath})`);
|
|
470
|
+
console.log(`Workspace IRANTI.md: ${workspaceFilesResult.irantiMd.status} (${workspaceFilesResult.irantiMd.filePath})`);
|
|
436
471
|
const closeout = await (0, scaffoldCloseout_1.writeProjectScaffoldCloseout)({
|
|
437
472
|
tool: 'codex',
|
|
438
473
|
projectPath: node_path_1.default.dirname(boundProjectEnv),
|
|
@@ -441,6 +476,7 @@ async function main() {
|
|
|
441
476
|
{ path: workspaceFilesResult.mcp.filePath, status: workspaceFilesResult.mcp.status },
|
|
442
477
|
{ path: workspaceFilesResult.vscode.filePath, status: workspaceFilesResult.vscode.status },
|
|
443
478
|
{ path: workspaceFilesResult.agents.filePath, status: workspaceFilesResult.agents.status },
|
|
479
|
+
{ path: workspaceFilesResult.irantiMd.filePath, status: workspaceFilesResult.irantiMd.status },
|
|
444
480
|
],
|
|
445
481
|
agentId: options.agent || 'codex_code',
|
|
446
482
|
});
|
|
@@ -2456,6 +2456,21 @@ async function writeClaudeCodeProjectFiles(projectPath, projectEnvPath, force =
|
|
|
2456
2456
|
}
|
|
2457
2457
|
}
|
|
2458
2458
|
}
|
|
2459
|
+
// Write IRANTI.md — the canonical host-neutral protocol file.
|
|
2460
|
+
const irantiMdFile = path_1.default.join(projectPath, 'IRANTI.md');
|
|
2461
|
+
let irantiMdStatus = 'unchanged';
|
|
2462
|
+
const irantiMdContent = buildIrantiMdContent();
|
|
2463
|
+
if (!fs_1.default.existsSync(irantiMdFile)) {
|
|
2464
|
+
await writeText(irantiMdFile, irantiMdContent);
|
|
2465
|
+
irantiMdStatus = 'created';
|
|
2466
|
+
}
|
|
2467
|
+
else {
|
|
2468
|
+
const existing = fs_1.default.readFileSync(irantiMdFile, 'utf8');
|
|
2469
|
+
if (existing !== irantiMdContent) {
|
|
2470
|
+
await writeText(irantiMdFile, irantiMdContent);
|
|
2471
|
+
irantiMdStatus = 'updated';
|
|
2472
|
+
}
|
|
2473
|
+
}
|
|
2459
2474
|
const closeout = await (0, scaffoldCloseout_1.writeProjectScaffoldCloseout)({
|
|
2460
2475
|
tool: 'claude',
|
|
2461
2476
|
projectPath,
|
|
@@ -2465,6 +2480,7 @@ async function writeClaudeCodeProjectFiles(projectPath, projectEnvPath, force =
|
|
|
2465
2480
|
{ path: vscodeMcpFile, status: vscodeMcpStatus },
|
|
2466
2481
|
{ path: settingsFile, status: settingsStatus },
|
|
2467
2482
|
{ path: claudeMdFile, status: claudeMdStatus },
|
|
2483
|
+
{ path: irantiMdFile, status: irantiMdStatus },
|
|
2468
2484
|
],
|
|
2469
2485
|
agentId: 'iranti_cli_scaffold',
|
|
2470
2486
|
});
|
|
@@ -2473,45 +2489,57 @@ async function writeClaudeCodeProjectFiles(projectPath, projectEnvPath, force =
|
|
|
2473
2489
|
vscodeMcp: vscodeMcpStatus,
|
|
2474
2490
|
settings: settingsStatus,
|
|
2475
2491
|
claudeMd: claudeMdStatus,
|
|
2492
|
+
irantiMd: irantiMdStatus,
|
|
2476
2493
|
closeout,
|
|
2477
2494
|
};
|
|
2478
2495
|
}
|
|
2479
|
-
|
|
2496
|
+
/**
|
|
2497
|
+
* Canonical protocol content for IRANTI.md — host-neutral, read once per session.
|
|
2498
|
+
* This is the single source of truth for the Iranti operating protocol.
|
|
2499
|
+
*/
|
|
2500
|
+
function buildIrantiMdContent() {
|
|
2480
2501
|
return [
|
|
2481
|
-
'<!-- iranti-rules -->',
|
|
2482
2502
|
'# Iranti Memory Protocol',
|
|
2483
2503
|
'',
|
|
2484
|
-
'
|
|
2485
|
-
'',
|
|
2486
|
-
'## Every turn',
|
|
2487
|
-
'1. Call `mcp__iranti__iranti_attend` before responding to the user message.',
|
|
2488
|
-
'2. Call `mcp__iranti__iranti_attend` before using any knowledge discovery tool — Read, Grep, Glob, WebSearch, WebFetch, and Bash commands used as factual basis for a decision.',
|
|
2489
|
-
'3. Call `mcp__iranti__iranti_attend` after knowledge discovery to check new findings against stored memory and decide what to inject, write, or checkpoint.',
|
|
2490
|
-
'4. Call `mcp__iranti__iranti_attend` after delivering any substantive response — plans, decisions, analysis, or structured recommendations are durable findings that must be assessed before the next turn.',
|
|
2491
|
-
'5. Call `mcp__iranti__iranti_write` after confirmed durable findings — decisions, blockers, next steps, validated environment details, what worked, what failed, what changed, and what happens next.',
|
|
2492
|
-
'6. Call `mcp__iranti__iranti_write` after every Edit or Write tool call — file changes are always durable. Record what changed, why, and what the file now does.',
|
|
2493
|
-
'7. Call `mcp__iranti__iranti_write` after any Bash command that reveals system state — build results, test outcomes, container state, environment facts, errors.',
|
|
2494
|
-
'8. Call `mcp__iranti__iranti_write` after any WebSearch or WebFetch that surfaces confirmed external facts.',
|
|
2495
|
-
'9. Call `mcp__iranti__iranti_write` after any Agent (subagent) tool completes — subagent findings are invisible to the hive mind otherwise.',
|
|
2496
|
-
'10. If a recall-style lookup returns no facts, try at least one alternative retrieval angle before concluding the fact is not stored.',
|
|
2497
|
-
'11. Call `mcp__iranti__iranti_attend` again when new knowledge should change what is loaded for the next step.',
|
|
2504
|
+
'Iranti is a shared working-memory layer. Follow this protocol to persist what you find, what works, what fails, what changes, and what happens next so later sessions do not have to rediscover it.',
|
|
2498
2505
|
'',
|
|
2499
2506
|
'## Session start',
|
|
2500
2507
|
'- Call `mcp__iranti__iranti_handshake` with the current task before responding to the first user message.',
|
|
2501
|
-
'-
|
|
2502
|
-
'- This acknowledgment is strictly mandatory. No work should begin until it is stated.',
|
|
2508
|
+
'- Call `mcp__iranti__iranti_handshake` again after context compaction.',
|
|
2503
2509
|
'',
|
|
2504
|
-
'##
|
|
2505
|
-
'
|
|
2510
|
+
'## Every turn',
|
|
2511
|
+
'1. Call `iranti_attend(phase=\'pre-response\')` before responding to the user.',
|
|
2512
|
+
'2. Call `iranti_attend` before any knowledge discovery tool — Read, Grep, Glob, WebSearch, WebFetch, Bash.',
|
|
2513
|
+
'3. Call `iranti_write` after every Edit/Write, Bash that reveals system state, WebSearch/WebFetch with confirmed facts, and subagent completion.',
|
|
2514
|
+
'4. Call `iranti_attend(phase=\'post-response\')` after every response.',
|
|
2515
|
+
'5. If a recall-style lookup returns no facts, try at least one alternative retrieval angle before concluding absent.',
|
|
2506
2516
|
'',
|
|
2507
2517
|
'## Checkpointing',
|
|
2508
|
-
'- Call `
|
|
2509
|
-
'- Record
|
|
2510
|
-
'
|
|
2511
|
-
'
|
|
2518
|
+
'- Call `iranti_checkpoint` at task completion, task shifts, and natural pauses.',
|
|
2519
|
+
'- Record actions, current step, next step, open risks, and file changes.',
|
|
2520
|
+
'',
|
|
2521
|
+
'## Write depth',
|
|
2522
|
+
'- Include what changed, why, and what breaks if removed.',
|
|
2523
|
+
'- After file edits: absolutePath, lines, before, after, verify, why.',
|
|
2524
|
+
'- After Bash: include the command and relevant output lines.',
|
|
2525
|
+
'- After WebSearch/WebFetch: record findings AND dead ends.',
|
|
2526
|
+
'',
|
|
2527
|
+
].join('\n');
|
|
2528
|
+
}
|
|
2529
|
+
/**
|
|
2530
|
+
* Slim CLAUDE.md block — just points to IRANTI.md and triggers handshake.
|
|
2531
|
+
* This content lives in the system prompt on every turn, so keep it minimal.
|
|
2532
|
+
*/
|
|
2533
|
+
function buildIrantiClaudeMdBlock() {
|
|
2534
|
+
return [
|
|
2535
|
+
'<!-- iranti-rules -->',
|
|
2536
|
+
'# Iranti',
|
|
2537
|
+
'',
|
|
2538
|
+
'This project uses Iranti for shared memory. Read `IRANTI.md` for the full protocol.',
|
|
2512
2539
|
'',
|
|
2513
|
-
'
|
|
2514
|
-
'-
|
|
2540
|
+
'- Call `mcp__iranti__iranti_handshake` before responding to the first user message.',
|
|
2541
|
+
'- Call `mcp__iranti__iranti_handshake` after context compaction.',
|
|
2542
|
+
'- Follow the attend/write/checkpoint protocol in IRANTI.md.',
|
|
2515
2543
|
'<!-- /iranti-rules -->',
|
|
2516
2544
|
'',
|
|
2517
2545
|
].join('\n');
|
|
@@ -8051,12 +8079,13 @@ async function claudeSetupCommand(args) {
|
|
|
8051
8079
|
createdSettings += 1;
|
|
8052
8080
|
if (result.settings === 'updated')
|
|
8053
8081
|
updatedSettings += 1;
|
|
8054
|
-
if (result.mcp === 'unchanged' && result.vscodeMcp === 'unchanged' && result.settings === 'unchanged')
|
|
8082
|
+
if (result.mcp === 'unchanged' && result.vscodeMcp === 'unchanged' && result.settings === 'unchanged' && result.irantiMd === 'unchanged')
|
|
8055
8083
|
unchanged += 1;
|
|
8056
8084
|
console.log(` ${projectPath}`);
|
|
8057
8085
|
console.log(` mcp ${result.mcp}`);
|
|
8058
8086
|
console.log(` vscode ${result.vscodeMcp}`);
|
|
8059
8087
|
console.log(` settings ${result.settings}`);
|
|
8088
|
+
console.log(` iranti.md ${result.irantiMd}`);
|
|
8060
8089
|
}
|
|
8061
8090
|
console.log('');
|
|
8062
8091
|
console.log('Summary:');
|
|
@@ -8091,10 +8120,12 @@ async function claudeSetupCommand(args) {
|
|
|
8091
8120
|
console.log(` vscode ${path_1.default.join(projectPath, '.vscode', 'mcp.json')}`);
|
|
8092
8121
|
console.log(` settings ${path_1.default.join(projectPath, '.claude', 'settings.local.json')}`);
|
|
8093
8122
|
console.log(` claude.md ${path_1.default.join(projectPath, 'CLAUDE.md')}`);
|
|
8123
|
+
console.log(` iranti.md ${path_1.default.join(projectPath, 'IRANTI.md')}`);
|
|
8094
8124
|
console.log(` mcp status ${result.mcp}`);
|
|
8095
8125
|
console.log(` vscode status ${result.vscodeMcp}`);
|
|
8096
8126
|
console.log(` settings status ${result.settings}`);
|
|
8097
8127
|
console.log(` claude.md status ${result.claudeMd}`);
|
|
8128
|
+
console.log(` iranti.md status ${result.irantiMd}`);
|
|
8098
8129
|
console.log(` memory closeout ${result.closeout.status} (${result.closeout.detail})`);
|
|
8099
8130
|
console.log(`${infoLabel()} Next: open Claude Code in this project and verify Iranti tools are available.`);
|
|
8100
8131
|
}
|
|
@@ -343,7 +343,7 @@ async function main() {
|
|
|
343
343
|
await ensureDefaultAgent(iranti);
|
|
344
344
|
const server = new mcp_js_1.McpServer({
|
|
345
345
|
name: 'iranti-mcp',
|
|
346
|
-
version: '0.3.
|
|
346
|
+
version: '0.3.8',
|
|
347
347
|
});
|
|
348
348
|
server.registerTool('iranti_handshake', {
|
|
349
349
|
description: `Initialize or refresh an agent's working-memory brief for the current task.
|
package/dist/src/api/server.js
CHANGED
|
@@ -41,7 +41,7 @@ const RUNTIME_AUTHORITY = (0, runtimeLifecycle_1.resolveRuntimeAuthorityFromEnv)
|
|
|
41
41
|
const INSTANCE_DIR = RUNTIME_AUTHORITY.instanceDir;
|
|
42
42
|
const INSTANCE_RUNTIME_FILE = RUNTIME_AUTHORITY.runtimeFile;
|
|
43
43
|
const INSTANCE_NAME = process.env.IRANTI_INSTANCE_NAME?.trim() || (INSTANCE_DIR ? path_1.default.basename(INSTANCE_DIR) : 'adhoc');
|
|
44
|
-
const VERSION = '0.3.
|
|
44
|
+
const VERSION = '0.3.8';
|
|
45
45
|
const PORT_RAW = (process.env.IRANTI_PORT ?? '3001').trim();
|
|
46
46
|
const PORT = Number.parseInt(PORT_RAW, 10);
|
|
47
47
|
const runtimeMetadataHealth = (0, healthChecks_1.createHealthCheckState)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttendantInstance.d.ts","sourceRoot":"","sources":["../../../src/attendant/AttendantInstance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AttendantInstance.d.ts","sourceRoot":"","sources":["../../../src/attendant/AttendantInstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,16 +63,8 @@ const LEGACY_CONTINUITY_KEY_MAP = {
|
|
|
63
63
|
checkpoint_next_step: 'next_step',
|
|
64
64
|
checkpoint_open_risks: 'open_risks',
|
|
65
65
|
};
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
"Call iranti_attend(phase='pre-response') before replying to the user.",
|
|
69
|
-
'Call iranti_attend before any lookup where Iranti might already hold the answer — Read, Grep, Glob, WebSearch, WebFetch, Bash-as-factual-basis.',
|
|
70
|
-
'Call iranti_attend again after any such lookup when new findings may affect what to inject, write, or checkpoint.',
|
|
71
|
-
'Call iranti_write after every Edit or Write tool call — file changes are always durable.',
|
|
72
|
-
'Call iranti_write after Bash commands that reveal system state, after WebSearch/WebFetch with confirmed facts, and after any subagent completes.',
|
|
73
|
-
"Call iranti_attend(phase='post-response') after every response without exception — even short replies may contain durable findings. Omitting this call is a compliance violation.",
|
|
74
|
-
'Call iranti_attend again when the new knowledge should change what is loaded next.',
|
|
75
|
-
];
|
|
66
|
+
// expectedCallSequence removed — the full protocol now lives in IRANTI.md,
|
|
67
|
+
// written once per project by `iranti claude-setup`, instead of repeated on every attend call.
|
|
76
68
|
const ATTEND_USAGE_REMINDER = 'Iranti is a hive mind. MANDATORY: call iranti_attend before every reply and around knowledge discovery. MANDATORY: call iranti_write after every file edit, confirmed finding, environment state change, and subagent completion — write what changed, why, and what it means. Skipping writes means the next session starts blind and must rediscover everything from scratch.';
|
|
77
69
|
const OBSERVE_USAGE_NOTE = 'observe() is retrieval-only. It surfaces candidate facts for context and warm-up, but it does not persist memory, replace iranti_attend, or count as a checkpoint/write.';
|
|
78
70
|
function normalizeContinuityKey(key) {
|
|
@@ -202,19 +194,19 @@ function formatOperatingRulesText(rawValue, summary, fallbackRules = exports.DEF
|
|
|
202
194
|
const normalizedRules = candidateRules
|
|
203
195
|
.map((rule) => (typeof rule === 'string' ? rule.trim() : ''))
|
|
204
196
|
.filter(Boolean);
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
if (
|
|
197
|
+
// If stored rules exist, they are the authoritative source — do not merge defaults.
|
|
198
|
+
// The full protocol now lives in IRANTI.md; stored rules carry the compressed version.
|
|
199
|
+
// Defaults are only used as a fallback when no rules are stored in the Staff Namespace.
|
|
200
|
+
const resolvedRules = normalizedRules.length > 0
|
|
201
|
+
? normalizedRules
|
|
202
|
+
: [...fallbackRules];
|
|
203
|
+
if (resolvedRules.length === 0) {
|
|
212
204
|
return summary?.trim() || 'No operating rules found.';
|
|
213
205
|
}
|
|
214
206
|
return [
|
|
215
207
|
summary?.trim() || 'Attendant operating rules:',
|
|
216
208
|
'',
|
|
217
|
-
...
|
|
209
|
+
...resolvedRules.map((rule) => `- ${rule}`),
|
|
218
210
|
].join('\n');
|
|
219
211
|
}
|
|
220
212
|
function summarizeLedgerLearning(entry) {
|
|
@@ -359,7 +351,7 @@ function buildUsageGuidance(tool, turnsWithoutWrite = 0) {
|
|
|
359
351
|
return {
|
|
360
352
|
tool,
|
|
361
353
|
reminder: ATTEND_USAGE_REMINDER + ' Reminder: if the previous turn produced durable findings, call iranti_write before continuing.',
|
|
362
|
-
expectedCallSequence
|
|
354
|
+
// expectedCallSequence omitted — protocol lives in IRANTI.md, not repeated per-call.
|
|
363
355
|
note: '',
|
|
364
356
|
};
|
|
365
357
|
}
|
|
@@ -373,7 +365,7 @@ function buildUsageGuidance(tool, turnsWithoutWrite = 0) {
|
|
|
373
365
|
return {
|
|
374
366
|
tool,
|
|
375
367
|
reminder,
|
|
376
|
-
expectedCallSequence
|
|
368
|
+
// expectedCallSequence omitted — protocol lives in IRANTI.md, not repeated per-call.
|
|
377
369
|
note: tool === 'observe'
|
|
378
370
|
? OBSERVE_USAGE_NOTE
|
|
379
371
|
: 'After using attend() and any retrieved facts, persist durable learnings with iranti_write and shared progress with iranti_checkpoint when applicable.',
|
|
@@ -1136,24 +1128,13 @@ async function persistSharedCheckpointBreadcrumbs(params) {
|
|
|
1136
1128
|
});
|
|
1137
1129
|
}
|
|
1138
1130
|
if (checkpoint.nextStep) {
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
entityId: resolved.entityId,
|
|
1142
|
-
key: 'next_step',
|
|
1143
|
-
});
|
|
1144
|
-
const priorInstruction = existingNextStep?.valueRaw && typeof existingNextStep.valueRaw === 'object'
|
|
1145
|
-
? existingNextStep.valueRaw.instruction
|
|
1146
|
-
: null;
|
|
1147
|
-
const mergedNextStep = typeof priorInstruction === 'string'
|
|
1148
|
-
&& priorInstruction.trim().length > 0
|
|
1149
|
-
&& priorInstruction.trim() !== checkpoint.nextStep.trim()
|
|
1150
|
-
? `${checkpoint.nextStep}. Prior task step: ${priorInstruction.trim()}`
|
|
1151
|
-
: checkpoint.nextStep;
|
|
1131
|
+
// Replace next_step cleanly — no accumulation of prior steps.
|
|
1132
|
+
// History is preserved in checkpoint_summary and session history.
|
|
1152
1133
|
await (0, librarian_1.librarianWrite)({
|
|
1153
1134
|
...common,
|
|
1154
1135
|
key: 'next_step',
|
|
1155
|
-
valueRaw: { instruction:
|
|
1156
|
-
valueSummary: truncate(`next step is ${
|
|
1136
|
+
valueRaw: { instruction: checkpoint.nextStep },
|
|
1137
|
+
valueSummary: truncate(`next step is ${checkpoint.nextStep}`, 220),
|
|
1157
1138
|
properties: {
|
|
1158
1139
|
...checkpointBaseProperties,
|
|
1159
1140
|
durableClass: 'next_step',
|
|
@@ -2739,10 +2720,28 @@ ${detectionWindow}`,
|
|
|
2739
2720
|
}
|
|
2740
2721
|
}
|
|
2741
2722
|
}
|
|
2742
|
-
// Step 4 —
|
|
2723
|
+
// Step 4 — relevance-weighted fact ranking
|
|
2724
|
+
// Profile facts (favorite_city, country_of_origin, etc.) on personal entities
|
|
2725
|
+
// are deprioritized unless the context/message shows token overlap with them.
|
|
2726
|
+
const contextTokens = new Set(tokenizePresenceText(currentContext));
|
|
2743
2727
|
const topFacts = newFacts
|
|
2744
|
-
.
|
|
2745
|
-
.
|
|
2728
|
+
.map((fact) => {
|
|
2729
|
+
const parts = fact.entityKey.split('/');
|
|
2730
|
+
const entityType = parts[0] ?? '';
|
|
2731
|
+
const factKey = parts[2] ?? '';
|
|
2732
|
+
const isProfile = (0, autoRemember_1.isPersonalEntityType)(entityType) && (0, autoRemember_1.isPersonalMemoryKey)(factKey);
|
|
2733
|
+
// Compute token overlap between context and fact summary
|
|
2734
|
+
const factTokens = tokenizePresenceText(fact.summary);
|
|
2735
|
+
const overlap = factTokens.filter((t) => contextTokens.has(t)).length;
|
|
2736
|
+
const relevance = factTokens.length > 0 ? overlap / factTokens.length : 0;
|
|
2737
|
+
// Profile facts with no relevance to the current context get deprioritized
|
|
2738
|
+
const profilePenalty = isProfile && relevance === 0 ? 50 : 0;
|
|
2739
|
+
const effectiveConfidence = fact.confidence - profilePenalty;
|
|
2740
|
+
return { fact, effectiveConfidence, relevance };
|
|
2741
|
+
})
|
|
2742
|
+
.sort((a, b) => b.effectiveConfidence - a.effectiveConfidence || b.relevance - a.relevance)
|
|
2743
|
+
.slice(0, maxFacts)
|
|
2744
|
+
.map(({ fact }) => fact);
|
|
2746
2745
|
await (0, queries_1.recordKnowledgeEntryAccess)(topFacts.map((fact) => fact.entryId));
|
|
2747
2746
|
(0, staffEventRegistry_1.getStaffEventEmitter)().emit({
|
|
2748
2747
|
staffComponent: 'Attendant',
|