iranti 0.3.2 → 0.3.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/bin/iranti.js CHANGED
@@ -21,4 +21,4 @@ try {
21
21
  console.error('Iranti CLI is not built. Run "npm run build" first.');
22
22
  console.error(message);
23
23
  process.exit(1);
24
- }
24
+ }
@@ -242,6 +242,7 @@ function formatSessionContext(facts, cwd) {
242
242
  'REQUIRED: Call mcp__iranti__iranti_attend(phase=\'pre-response\') before every reply and before factual discovery.',
243
243
  'REQUIRED: After every response, call mcp__iranti__iranti_attend(phase=\'post-response\').',
244
244
  'REQUIRED: Prefer injected Iranti facts before re-inferring project state.',
245
+ 'REQUIRED: Call mcp__iranti__iranti_write after every file edit, confirmed finding, system state discovery, and subagent completion — write what changed, why, and what it means.',
245
246
  ];
246
247
  const block = (0, hostMemoryFormatting_1.formatStructuredFactBlock)(limited, {
247
248
  title: 'Iranti Session Facts',
@@ -225,7 +225,7 @@ function buildCodexAgentsBlock() {
225
225
  '- Call `mcp__iranti__iranti_checkpoint` at natural pauses, before stepping away from long work, when interrupted, and when completing a useful slice.',
226
226
  '- When useful actions happen, record them in the checkpoint `actions` field so later sessions can see important commands, tests, searches, validations, and decisions without rerunning them blindly.',
227
227
  '- Do not treat durable writes as a substitute for checkpoints. A checkpoint not written means the next session has to reconstruct state.',
228
- '- Under-logged runs are non-compliant for this repo. When applicable, leave structured breadcrumbs for what you found, what worked, what failed, what changed, and what happens next instead of only a broad summary.',
228
+ '- Under-logged runs are non-compliant for this repo. When applicable, call iranti_write with what you found, what worked, what failed, what changed, and what happens next not a broad summary, but specific durable facts.',
229
229
  '',
230
230
  '## Host setup check',
231
231
  '- If this block was missing at session start, rerun `iranti codex-setup` from the bound project root.',
@@ -542,14 +542,48 @@ function formatSetupBootstrapFailure(error) {
542
542
  async function handoffToScript(scriptName, rawArgs) {
543
543
  const builtPath = builtScriptPath(scriptName);
544
544
  debugLog('Handing off to companion script.', { scriptName, builtPath, rawArgs: rawArgs.join(' ') });
545
+ const shouldProxyStdin = !process.stdin.isTTY;
546
+ const wireChildStdin = (child) => {
547
+ if (!shouldProxyStdin || !child.stdin) {
548
+ return () => { };
549
+ }
550
+ const forwardChunk = (chunk) => {
551
+ if (!child.stdin || child.stdin.destroyed)
552
+ return;
553
+ child.stdin.write(chunk);
554
+ };
555
+ const endChildStdin = () => {
556
+ if (!child.stdin || child.stdin.destroyed || child.stdin.writableEnded)
557
+ return;
558
+ child.stdin.end();
559
+ };
560
+ const destroyChildStdin = () => {
561
+ if (!child.stdin || child.stdin.destroyed)
562
+ return;
563
+ child.stdin.destroy();
564
+ };
565
+ process.stdin.on('data', forwardChunk);
566
+ process.stdin.once('end', endChildStdin);
567
+ process.stdin.once('close', endChildStdin);
568
+ process.stdin.once('error', destroyChildStdin);
569
+ process.stdin.resume();
570
+ return () => {
571
+ process.stdin.off('data', forwardChunk);
572
+ process.stdin.off('end', endChildStdin);
573
+ process.stdin.off('close', endChildStdin);
574
+ process.stdin.off('error', destroyChildStdin);
575
+ };
576
+ };
545
577
  if (fs_1.default.existsSync(builtPath)) {
546
578
  await new Promise((resolve, reject) => {
547
579
  const child = (0, child_process_1.spawn)(process.execPath, [builtPath, ...rawArgs], {
548
- stdio: 'inherit',
580
+ stdio: shouldProxyStdin ? ['pipe', 'inherit', 'inherit'] : 'inherit',
549
581
  env: process.env,
550
582
  });
583
+ const cleanupStdinProxy = wireChildStdin(child);
551
584
  child.on('error', reject);
552
585
  child.on('exit', (code, signal) => {
586
+ cleanupStdinProxy();
553
587
  if (signal) {
554
588
  reject(new Error(`${scriptName} terminated with signal ${signal}`));
555
589
  return;
@@ -567,9 +601,30 @@ async function handoffToScript(scriptName, rawArgs) {
567
601
  throw cliError('IRANTI_SCRIPT_NOT_FOUND', `Unable to locate ${scriptName} implementation.`, ['Run from an installed Iranti package or from the Iranti repo root where scripts/ exists.'], { scriptName, sourcePath, builtPath });
568
602
  }
569
603
  try {
570
- await (0, commandInvocation_1.spawnResolved)('npx', ['ts-node', sourcePath, ...rawArgs], {
571
- stdio: 'inherit',
572
- env: process.env,
604
+ await new Promise((resolve, reject) => {
605
+ const invocation = (0, commandInvocation_1.resolveCommandInvocation)('npx', ['ts-node', sourcePath, ...rawArgs]);
606
+ const child = (0, child_process_1.spawn)(invocation.executable, invocation.args, {
607
+ stdio: shouldProxyStdin ? ['pipe', 'inherit', 'inherit'] : 'inherit',
608
+ env: process.env,
609
+ shell: false,
610
+ });
611
+ const cleanupStdinProxy = wireChildStdin(child);
612
+ child.on('error', (error) => {
613
+ cleanupStdinProxy();
614
+ reject(error);
615
+ });
616
+ child.on('exit', (code, signal) => {
617
+ cleanupStdinProxy();
618
+ if (signal) {
619
+ reject(new Error(`${scriptName} terminated with signal ${signal}`));
620
+ return;
621
+ }
622
+ if ((code ?? 0) !== 0) {
623
+ reject(new Error(`${scriptName} exited with code ${code ?? 1}`));
624
+ return;
625
+ }
626
+ resolve();
627
+ });
573
628
  });
574
629
  }
575
630
  catch (error) {
@@ -2453,7 +2508,7 @@ function buildIrantiClaudeMdBlock() {
2453
2508
  '- Call `mcp__iranti__iranti_checkpoint` when completing a task, when shifting to a new task mid-session, at any natural pause point, and before stepping away from long or interrupted work.',
2454
2509
  '- Record key actions in the checkpoint `actions` field so later sessions can see important commands, tests, searches, validations, and decisions without rerunning them blindly.',
2455
2510
  '- Do not rely on `mcp__iranti__iranti_write` alone — facts and checkpoints are separate stores. A checkpoint not written means the next handshake recovers from stale data.',
2456
- '- Under-logged runs are non-compliant. Leave structured breadcrumbs for what you found, what worked, what failed, what changed, and what happens next instead of only a broad summary.',
2511
+ '- Under-logged runs are non-compliant. Call iranti_write with what you found, what worked, what failed, what changed, and what happens next not a broad summary, but specific durable facts.',
2457
2512
  '',
2458
2513
  '## Host setup check',
2459
2514
  '- If this file was not present at session start, run `iranti claude-setup .` to complete integration.',
@@ -2940,9 +2995,21 @@ async function defaultsSetupPlan(args) {
2940
2995
  providerKeys[envKey] = secret;
2941
2996
  }
2942
2997
  }
2943
- const apiKeyRaw = (getFlag(args, 'api-key') ?? process.env.IRANTI_API_KEY ?? '').trim();
2944
- const apiKey = apiKeyRaw && !detectPlaceholder(apiKeyRaw)
2945
- ? apiKeyRaw
2998
+ const explicitProviderKey = (getFlag(args, 'provider-key') ?? '').trim();
2999
+ const apiKeyFlag = (getFlag(args, 'api-key') ?? '').trim();
3000
+ const providerEnvKey = providerKeyEnv(provider);
3001
+ const isRemoteProvider = Boolean(providerEnvKey);
3002
+ if (explicitProviderKey && !detectPlaceholder(explicitProviderKey) && providerEnvKey) {
3003
+ providerKeys[providerEnvKey] = explicitProviderKey;
3004
+ }
3005
+ else if (apiKeyFlag && !detectPlaceholder(apiKeyFlag) && isRemoteProvider && providerEnvKey && !providerKeys[providerEnvKey]) {
3006
+ providerKeys[providerEnvKey] = apiKeyFlag;
3007
+ }
3008
+ const irantiKeyRaw = isRemoteProvider
3009
+ ? (process.env.IRANTI_API_KEY ?? '').trim()
3010
+ : apiKeyFlag || (process.env.IRANTI_API_KEY ?? '').trim();
3011
+ const apiKey = irantiKeyRaw && !detectPlaceholder(irantiKeyRaw)
3012
+ ? irantiKeyRaw
2946
3013
  : makeLegacyInstanceApiKey(instanceName);
2947
3014
  const projectsFlag = (getFlag(args, 'projects') ?? '').trim();
2948
3015
  const projects = projectsFlag
@@ -346,13 +346,13 @@ async function main() {
346
346
  version: '0.3.2',
347
347
  });
348
348
  server.registerTool('iranti_handshake', {
349
- description: `Initialize or refresh an agent's working-memory brief for the current task.
350
- Call this at session start or when a new task begins, passing the task and
351
- recent messages. Returns operating rules plus prioritized relevant memory
352
- for that task. If the recent messages appear to contain durable facts that
353
- are not yet in shared memory, the result may include a backfill suggestion.
354
- If your host does not support a true session-start hook, call this on the
355
- first user turn before you start answering recall-style questions.
349
+ description: `Initialize or refresh an agent's working-memory brief for the current task.
350
+ Call this at session start or when a new task begins, passing the task and
351
+ recent messages. Returns operating rules plus prioritized relevant memory
352
+ for that task. If the recent messages appear to contain durable facts that
353
+ are not yet in shared memory, the result may include a backfill suggestion.
354
+ If your host does not support a true session-start hook, call this on the
355
+ first user turn before you start answering recall-style questions.
356
356
  Do not use this as a per-turn retrieval tool; use iranti_attend.`,
357
357
  inputSchema: {
358
358
  task: z.string().min(1).describe('The current task or objective.'),
@@ -378,21 +378,21 @@ Do not use this as a per-turn retrieval tool; use iranti_attend.`,
378
378
  return textResult(result);
379
379
  });
380
380
  server.registerTool('iranti_attend', {
381
- description: `Ask Iranti whether memory should be injected before the next LLM turn.
382
- Call this before each turn, passing the latest message and the current
383
- visible context window. If the user is asking you to recall a remembered
384
- fact (for example a preference, decision, blocker, next step, or prior
385
- project detail), use this before answering instead of guessing or saying
386
- you do not know. Returns an injection decision plus any facts that should
387
- be added to context if relevant memory is missing. If no handshake has been
388
- performed yet for this agent in the current process, attend will auto-bootstrap
389
- the session first and report that in the result metadata.
390
- This is the minimum safe pre-reply call even when the host skipped handshake.
391
- Omitting currentContext falls back to the latest message only; pass the
392
- full visible context when available. For host compatibility, message is
393
- accepted as an alias for latestMessage. When phase='post-response', pass the
394
- assistant response so Iranti can persist strict continuity facts and shared
395
- checkpoint breadcrumbs before closing the turn.`,
381
+ description: `Ask Iranti whether memory should be injected before the next LLM turn.
382
+ Call this before each turn, passing the latest message and the current
383
+ visible context window. If the user is asking you to recall a remembered
384
+ fact (for example a preference, decision, blocker, next step, or prior
385
+ project detail), use this before answering instead of guessing or saying
386
+ you do not know. Returns an injection decision plus any facts that should
387
+ be added to context if relevant memory is missing. If no handshake has been
388
+ performed yet for this agent in the current process, attend will auto-bootstrap
389
+ the session first and report that in the result metadata.
390
+ This is the minimum safe pre-reply call even when the host skipped handshake.
391
+ Omitting currentContext falls back to the latest message only; pass the
392
+ full visible context when available. For host compatibility, message is
393
+ accepted as an alias for latestMessage. When phase='post-response', pass the
394
+ assistant response so Iranti can persist strict continuity facts and shared
395
+ checkpoint state before closing the turn.`,
396
396
  inputSchema: {
397
397
  latestMessage: z.string().min(1).optional().describe('The latest user or assistant message.'),
398
398
  message: z.string().min(1).optional().describe('Alias for latestMessage, accepted for host compatibility.'),
@@ -470,13 +470,13 @@ checkpoint breadcrumbs before closing the turn.`,
470
470
  }
471
471
  });
472
472
  server.registerTool('iranti_checkpoint', {
473
- description: `Persist a shared progress checkpoint while you work.
474
- Use this at meaningful milestones so current step, next step, open risks,
475
- recent outputs, structured actions, and shared entity breadcrumbs survive across turns,
476
- sessions, and agents. This is the strongest shared-RAM tool for active work:
477
- prefer it over ad-hoc prose when you need another session or another agent
478
- to pick up where you left off. If entityTargets are supplied, Iranti also
479
- writes canonical shared breadcrumbs such as current_step, next_step,
473
+ description: `Persist a shared progress checkpoint while you work.
474
+ Use this at meaningful milestones so current step, next step, open risks,
475
+ recent outputs, structured actions, and shared entity state survive across turns,
476
+ sessions, and agents. This is the strongest shared-RAM tool for active work:
477
+ prefer it over ad-hoc prose when you need another session or another agent
478
+ to pick up where you left off. If entityTargets are supplied, Iranti also
479
+ writes canonical shared state such as current_step, next_step,
480
480
  open_risks, recent_actions, and recent_file_changes to those entities for handoff.`,
481
481
  inputSchema: {
482
482
  task: z.string().min(1).describe('Current task or objective for the active checkpoint.'),
@@ -498,7 +498,7 @@ open_risks, recent_actions, and recent_file_changes to those entities for handof
498
498
  toPath: z.string().optional().describe('Destination path for move/rename actions.'),
499
499
  purpose: z.string().optional().describe('Why the file changed or what role it now serves.'),
500
500
  })).optional().describe('Structured file actions produced so far.'),
501
- entityTargets: z.array(z.string()).optional().describe('Shared entities that should receive checkpoint breadcrumbs, in entityType/entityId format.'),
501
+ entityTargets: z.array(z.string()).optional().describe('Shared entities that should receive checkpoint state, in entityType/entityId format.'),
502
502
  notes: z.string().optional().describe('Compact extra checkpoint notes that aid handoff.'),
503
503
  sessionId: z.string().optional().describe('Optional existing session id to refresh.'),
504
504
  agent: z.string().optional().describe('Override the default agent id.'),
@@ -554,13 +554,13 @@ open_risks, recent_actions, and recent_file_changes to those entities for handof
554
554
  }
555
555
  });
556
556
  server.registerTool('iranti_query', {
557
- description: `Retrieve the current fact for an exact entity+key lookup.
558
- REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
559
- whether memory should be injected before exact lookup.
560
- Use this when you already know both the entity and the key.
561
- Returns the current value, summary, confidence, source, and
562
- temporal metadata when available. Prefer this over iranti_search
563
- when the target fact is already known, and do not answer from
557
+ description: `Retrieve the current fact for an exact entity+key lookup.
558
+ REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
559
+ whether memory should be injected before exact lookup.
560
+ Use this when you already know both the entity and the key.
561
+ Returns the current value, summary, confidence, source, and
562
+ temporal metadata when available. Prefer this over iranti_search
563
+ when the target fact is already known, and do not answer from
564
564
  memory alone before checking Iranti.`,
565
565
  inputSchema: {
566
566
  entity: z.string().min(1).describe('Entity in entityType/entityId format.'),
@@ -583,13 +583,13 @@ memory alone before checking Iranti.`,
583
583
  }
584
584
  });
585
585
  server.registerTool('iranti_history', {
586
- description: `Retrieve the full version history of a fact for an exact entity+key pair.
587
- Returns all archived past values plus the current value, ordered oldest-first.
588
- Each entry includes value, summary, confidence, source, validFrom, validUntil,
589
- isCurrent, archivedReason, and resolutionState.
590
- REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
591
- whether memory should be injected first.
592
- Use this to understand how a fact evolved over time — decisions that changed,
586
+ description: `Retrieve the full version history of a fact for an exact entity+key pair.
587
+ Returns all archived past values plus the current value, ordered oldest-first.
588
+ Each entry includes value, summary, confidence, source, validFrom, validUntil,
589
+ isCurrent, archivedReason, and resolutionState.
590
+ REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
591
+ whether memory should be injected first.
592
+ Use this to understand how a fact evolved over time — decisions that changed,
593
593
  blockers that were resolved, values that were contested or superseded.`,
594
594
  inputSchema: {
595
595
  entity: z.string().min(1).describe('Entity in entityType/entityId format.'),
@@ -616,12 +616,12 @@ blockers that were resolved, values that were contested or superseded.`,
616
616
  }
617
617
  });
618
618
  server.registerTool('iranti_search', {
619
- description: `Search shared memory with natural language when the exact entity
620
- or key is unknown. Uses hybrid lexical and vector search across
621
- stored facts. Use this for discovery and recall, not exact lookup.
622
- REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
623
- whether memory should be injected before search.
624
- If the user asks what they previously told you and you do not know
619
+ description: `Search shared memory with natural language when the exact entity
620
+ or key is unknown. Uses hybrid lexical and vector search across
621
+ stored facts. Use this for discovery and recall, not exact lookup.
622
+ REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
623
+ whether memory should be injected before search.
624
+ If the user asks what they previously told you and you do not know
625
625
  the exact key, use this before saying you do not know.`,
626
626
  inputSchema: {
627
627
  query: z.string().min(1).describe('Natural language search phrase.'),
@@ -657,14 +657,14 @@ the exact key, use this before saying you do not know.`,
657
657
  }
658
658
  });
659
659
  server.registerTool('iranti_write', {
660
- description: `Write one durable fact to shared memory for a specific entity.
661
- Use this when you learned something concrete that future turns,
662
- agents, or sessions should retain. Requires: entity ("type/id"),
663
- key, value JSON, and summary. Confidence is optional and defaults
664
- to 85. Conflicts on the same entity+key are detected automatically
665
- and may be resolved or escalated. Personal-memory keys honor the
666
- configured canonical personal entity for this project/session.
667
- Use properties JSON when you need structured issue or workflow metadata
660
+ description: `Write one durable fact to shared memory for a specific entity.
661
+ Use this when you learned something concrete that future turns,
662
+ agents, or sessions should retain. Requires: entity ("type/id"),
663
+ key, value JSON, and summary. Confidence is optional and defaults
664
+ to 85. Conflicts on the same entity+key are detected automatically
665
+ and may be resolved or escalated. Personal-memory keys honor the
666
+ configured canonical personal entity for this project/session.
667
+ Use properties JSON when you need structured issue or workflow metadata
668
668
  such as issueStatus=open|resolved, severity, or resolution notes.`,
669
669
  inputSchema: {
670
670
  entity: z.string().min(1).describe('Entity in entityType/entityId format.'),
@@ -702,12 +702,12 @@ such as issueStatus=open|resolved, severity, or resolution notes.`,
702
702
  });
703
703
  });
704
704
  server.registerTool('iranti_write_issue', {
705
- description: `Write a canonical open or resolved issue fact on a stable key.
706
- Use this when you want defects, bugs, or chores to remain first-class shared
707
- memory instead of loose prose. The same issueId always maps to the same
708
- issue_<id> key, so changing status from open to resolved archives the prior
709
- state automatically while preserving history. Prefer this over hand-rolling
710
- issueStatus properties through iranti_write when the fact is specifically a
705
+ description: `Write a canonical open or resolved issue fact on a stable key.
706
+ Use this when you want defects, bugs, or chores to remain first-class shared
707
+ memory instead of loose prose. The same issueId always maps to the same
708
+ issue_<id> key, so changing status from open to resolved archives the prior
709
+ state automatically while preserving history. Prefer this over hand-rolling
710
+ issueStatus properties through iranti_write when the fact is specifically a
711
711
  trackable issue lifecycle entry.`,
712
712
  inputSchema: {
713
713
  entity: z.string().min(1).describe('Owner entity in entityType/entityId format, usually a project entity.'),
@@ -750,11 +750,11 @@ trackable issue lifecycle entry.`,
750
750
  return textResult(result);
751
751
  });
752
752
  server.registerTool('iranti_remember_response', {
753
- description: `Persist a strict durable summary from your own response.
754
- Use this after you decide to say something like "the next step is ...",
755
- "the blocker is ...", "we decided ...", or "the current owner is ...".
756
- This uses the same narrow summary extractor as the Claude Stop hook,
757
- but it is explicit and works for Codex or any MCP client. Do not use
753
+ description: `Persist a strict durable summary from your own response.
754
+ Use this after you decide to say something like "the next step is ...",
755
+ "the blocker is ...", "we decided ...", or "the current owner is ...".
756
+ This uses the same narrow summary extractor as the Claude Stop hook,
757
+ but it is explicit and works for Codex or any MCP client. Do not use
758
758
  this for arbitrary prose or every turn.`,
759
759
  inputSchema: {
760
760
  response: z.string().min(1).describe('The assistant response text to scan for strict durable summary patterns.'),
@@ -825,8 +825,8 @@ this for arbitrary prose or every turn.`,
825
825
  return textResult({ ok: true, result });
826
826
  });
827
827
  server.registerTool('iranti_related', {
828
- description: `Read directly related entities (1 hop) for a given entity.
829
- REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
828
+ description: `Read directly related entities (1 hop) for a given entity.
829
+ REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
830
830
  whether memory should be injected before graph traversal.`,
831
831
  inputSchema: {
832
832
  entity: z.string().min(1).describe('Entity in entityType/entityId format.'),
@@ -848,8 +848,8 @@ whether memory should be injected before graph traversal.`,
848
848
  }
849
849
  });
850
850
  server.registerTool('iranti_related_deep', {
851
- description: `Read related entities up to N hops deep for a given entity.
852
- REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
851
+ description: `Read related entities up to N hops deep for a given entity.
852
+ REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
853
853
  whether memory should be injected before graph traversal.`,
854
854
  inputSchema: {
855
855
  entity: z.string().min(1).describe('Entity in entityType/entityId format.'),
@@ -872,8 +872,8 @@ whether memory should be injected before graph traversal.`,
872
872
  }
873
873
  });
874
874
  server.registerTool('iranti_who_knows', {
875
- description: `List which agents have written facts about an entity.
876
- REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
875
+ description: `List which agents have written facts about an entity.
876
+ REQUIRED: call iranti_attend before this discovery tool so Iranti can decide
877
877
  whether memory should be injected before provenance discovery.`,
878
878
  inputSchema: {
879
879
  entity: z.string().min(1).describe('Entity in entityType/entityId format.'),
@@ -346,15 +346,15 @@ async function processEscalationFile(filename, paths, report) {
346
346
  report.escalationsProcessed++;
347
347
  }
348
348
  async function generateEnrichment(fileContent, auth) {
349
- const prompt = `You are analyzing a resolved conflict. The human provided this authoritative resolution:
350
-
351
- ${JSON.stringify(auth, null, 2)}
352
-
353
- Provide enrichment (non-authoritative):
354
- 1. Brief explanation of why this resolution makes sense
355
- 2. Suggested validUntil (ISO 8601) if none provided and fact seems time-bound
356
- 3. Any normalization warnings
357
-
349
+ const prompt = `You are analyzing a resolved conflict. The human provided this authoritative resolution:
350
+
351
+ ${JSON.stringify(auth, null, 2)}
352
+
353
+ Provide enrichment (non-authoritative):
354
+ 1. Brief explanation of why this resolution makes sense
355
+ 2. Suggested validUntil (ISO 8601) if none provided and fact seems time-bound
356
+ 3. Any normalization warnings
357
+
358
358
  Respond with JSON: { "explanation": "...", "suggestedValidUntil": "..." or null, "normalizationWarnings": [...] }`;
359
359
  const response = await (0, llm_1.complete)([
360
360
  { role: 'user', content: prompt }
@@ -49,7 +49,7 @@ export interface BackfillSuggestion {
49
49
  }
50
50
  export type SessionStatus = 'active' | 'interrupted' | 'completed' | 'abandoned';
51
51
  export type SessionComplianceStatus = 'healthy' | 'degraded' | 'non_compliant';
52
- export type SessionComplianceIssueCode = 'missing_post_response_attend' | 'missing_durable_persistence' | 'ignored_injected_memory';
52
+ export type SessionComplianceIssueCode = 'missing_post_response_attend' | 'missing_durable_persistence' | 'missing_writes_across_turns' | 'ignored_injected_memory';
53
53
  export interface SessionComplianceIssue {
54
54
  code: SessionComplianceIssueCode;
55
55
  severity: 'warn' | 'error';
@@ -64,6 +64,7 @@ export interface SessionComplianceState {
64
64
  lastUpdated: string;
65
65
  counters: {
66
66
  attendsWithoutPersist: number;
67
+ turnsWithoutWrite: number;
67
68
  consecutivePreResponseWithoutPost: number;
68
69
  consecutiveUnusedMemoryInjections: number;
69
70
  pendingPostResponse: boolean;
@@ -281,6 +282,7 @@ export declare class AttendantInstance {
281
282
  private advisoryLearningProfile;
282
283
  private contextCallCount;
283
284
  private attendsWithoutPersist;
285
+ private turnsWithoutWrite;
284
286
  private consecutivePreResponseWithoutPost;
285
287
  private consecutiveUnusedMemoryInjections;
286
288
  private lastAttendPhase;
@@ -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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"}