iranti 0.3.25 → 0.3.27
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/src/api/server.js
CHANGED
|
@@ -51,7 +51,7 @@ const RUNTIME_AUTHORITY = (0, runtimeLifecycle_1.resolveRuntimeAuthorityFromEnv)
|
|
|
51
51
|
const INSTANCE_DIR = RUNTIME_AUTHORITY.instanceDir;
|
|
52
52
|
const INSTANCE_RUNTIME_FILE = RUNTIME_AUTHORITY.runtimeFile;
|
|
53
53
|
const INSTANCE_NAME = process.env.IRANTI_INSTANCE_NAME?.trim() || (INSTANCE_DIR ? path_1.default.basename(INSTANCE_DIR) : 'adhoc');
|
|
54
|
-
const VERSION = '0.3.
|
|
54
|
+
const VERSION = '0.3.27';
|
|
55
55
|
const PORT_RAW = (process.env.IRANTI_PORT ?? '3001').trim();
|
|
56
56
|
const PORT = Number.parseInt(PORT_RAW, 10);
|
|
57
57
|
const runtimeMetadataHealth = (0, healthChecks_1.createHealthCheckState)({
|
|
@@ -34,6 +34,7 @@ export interface WorkingMemoryBrief {
|
|
|
34
34
|
briefGeneratedAt: string;
|
|
35
35
|
contextCallCount: number;
|
|
36
36
|
backfillSuggestion?: BackfillSuggestion | null;
|
|
37
|
+
planProposal?: PlanProposal | null;
|
|
37
38
|
sessionLedgerLearnings?: SessionLedgerLearning[];
|
|
38
39
|
sessionCheckpoint?: SessionCheckpointRecord | null;
|
|
39
40
|
sessionRecovery?: SessionRecoveryInfo | null;
|
|
@@ -48,6 +49,20 @@ export interface BackfillSuggestion {
|
|
|
48
49
|
sampleKeys: string[];
|
|
49
50
|
suggestedCommand: string;
|
|
50
51
|
}
|
|
52
|
+
export type PlanProposalSource = 'heuristic_keyword' | 'checkpoint_continuation' | 'skipped';
|
|
53
|
+
export interface PlanProposalStep {
|
|
54
|
+
n: number;
|
|
55
|
+
description: string;
|
|
56
|
+
rationale?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface PlanProposal {
|
|
59
|
+
suggested: boolean;
|
|
60
|
+
reason: string;
|
|
61
|
+
source: PlanProposalSource;
|
|
62
|
+
steps: PlanProposalStep[];
|
|
63
|
+
taskSignals: string[];
|
|
64
|
+
note?: string;
|
|
65
|
+
}
|
|
51
66
|
export type SessionStatus = 'active' | 'interrupted' | 'completed' | 'abandoned';
|
|
52
67
|
export type SessionComplianceStatus = 'healthy' | 'degraded' | 'non_compliant';
|
|
53
68
|
export type SessionComplianceIssueCode = 'missing_post_response_attend' | 'missing_durable_persistence' | 'missing_writes_across_turns' | 'ignored_injected_memory';
|
|
@@ -280,12 +295,24 @@ export interface AttendResult extends ObserveResult {
|
|
|
280
295
|
toolCallGuidance?: ToolCallGuidance;
|
|
281
296
|
toolResultExtraction?: ToolResultExtractionOutcome;
|
|
282
297
|
writeNudge?: WriteNudge;
|
|
298
|
+
drift?: DriftSignal;
|
|
283
299
|
}
|
|
284
300
|
export interface ToolCallGuidance {
|
|
285
301
|
toolName: PendingToolCallName;
|
|
286
302
|
derivedEntities: string[];
|
|
287
303
|
factCount: number;
|
|
288
304
|
note: string;
|
|
305
|
+
shouldSkip: boolean;
|
|
306
|
+
skipConfidence: number;
|
|
307
|
+
skipReasonCode: 'facts_cover_target' | 'no_facts_for_target' | 'no_entities_derived' | 'memory_not_needed';
|
|
308
|
+
}
|
|
309
|
+
export interface DriftSignal {
|
|
310
|
+
detected: boolean;
|
|
311
|
+
overlap: number;
|
|
312
|
+
drivingTokens: string[];
|
|
313
|
+
missingTokens: string[];
|
|
314
|
+
declaredTaskType: string;
|
|
315
|
+
note: string;
|
|
289
316
|
}
|
|
290
317
|
export interface ToolResultExtractionOutcome {
|
|
291
318
|
toolName: PendingToolCallName;
|
|
@@ -386,6 +413,24 @@ export declare function normalizeAutowriteFact(raw: unknown): {
|
|
|
386
413
|
confidence: number;
|
|
387
414
|
} | null;
|
|
388
415
|
export declare function derivePendingToolCallEntityHints(toolCall: PendingToolCall | undefined, projectEntity: string | null): string[];
|
|
416
|
+
export type PlanSignal = 'ship_release' | 'implement_add' | 'refactor_rewrite' | 'fix_debug' | 'audit_review' | 'migrate' | 'test_author' | 'deploy';
|
|
417
|
+
interface PlanSignalMatch {
|
|
418
|
+
signal: PlanSignal;
|
|
419
|
+
matchedKeyword: string;
|
|
420
|
+
}
|
|
421
|
+
export declare function detectPlanSignals(task: string): PlanSignalMatch[];
|
|
422
|
+
export declare function buildPlanProposal(task: string, inferredTaskType: string, sessionCheckpoint?: SessionCheckpointRecord | null): PlanProposal;
|
|
423
|
+
export interface SkipVerdict {
|
|
424
|
+
shouldSkip: boolean;
|
|
425
|
+
skipConfidence: number;
|
|
426
|
+
skipReasonCode: ToolCallGuidance['skipReasonCode'];
|
|
427
|
+
}
|
|
428
|
+
export declare function deriveSkipVerdict(options: {
|
|
429
|
+
derivedEntities: readonly string[];
|
|
430
|
+
factConfidences: readonly number[];
|
|
431
|
+
memoryWasSkipped: boolean;
|
|
432
|
+
}): SkipVerdict;
|
|
433
|
+
export declare function detectTaskDrift(currentMessage: string, currentContext: string, declaredTaskType: string): DriftSignal | undefined;
|
|
389
434
|
export declare function readPersistedSessionState(agentId: string): Promise<PersistedSessionState | null>;
|
|
390
435
|
export declare function summarizeSessionState(agentId: string, checkpoint: SessionCheckpointRecord | null, persistedBriefGeneratedAt?: string, compliance?: SessionComplianceState | null): SessionSummary;
|
|
391
436
|
/**
|
|
@@ -473,4 +518,5 @@ export declare class AttendantInstance {
|
|
|
473
518
|
private persistState;
|
|
474
519
|
private loadPersistedState;
|
|
475
520
|
}
|
|
521
|
+
export {};
|
|
476
522
|
//# sourceMappingURL=AttendantInstance.d.ts.map
|
|
@@ -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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"}
|
|
@@ -12,6 +12,10 @@ exports.parseAutowriteEntity = parseAutowriteEntity;
|
|
|
12
12
|
exports.buildToolResultContextLabel = buildToolResultContextLabel;
|
|
13
13
|
exports.normalizeAutowriteFact = normalizeAutowriteFact;
|
|
14
14
|
exports.derivePendingToolCallEntityHints = derivePendingToolCallEntityHints;
|
|
15
|
+
exports.detectPlanSignals = detectPlanSignals;
|
|
16
|
+
exports.buildPlanProposal = buildPlanProposal;
|
|
17
|
+
exports.deriveSkipVerdict = deriveSkipVerdict;
|
|
18
|
+
exports.detectTaskDrift = detectTaskDrift;
|
|
15
19
|
exports.readPersistedSessionState = readPersistedSessionState;
|
|
16
20
|
exports.summarizeSessionState = summarizeSessionState;
|
|
17
21
|
exports.injectedFactsAreTaskRelevant = injectedFactsAreTaskRelevant;
|
|
@@ -852,6 +856,301 @@ function buildBackfillSuggestion(context, workingMemory) {
|
|
|
852
856
|
suggestedCommand: 'iranti handshake --backfill <chat-file>',
|
|
853
857
|
};
|
|
854
858
|
}
|
|
859
|
+
// ─── A4: plan proposal heuristic ────────────────────────────────────────────
|
|
860
|
+
//
|
|
861
|
+
// Pure functions used by handshake() to build a short structured plan. These
|
|
862
|
+
// are exported for test access and intentionally contain no LLM calls so the
|
|
863
|
+
// handshake stays fast, deterministic, and snapshot-testable. The templates
|
|
864
|
+
// below are deliberately terse and align with the standing Iranti protocol
|
|
865
|
+
// (e.g. "write after every edit", "verify CI after push").
|
|
866
|
+
const PLAN_MIN_TASK_CHARS = 24;
|
|
867
|
+
const PLAN_SIGNAL_KEYWORDS = {
|
|
868
|
+
ship_release: ['ship', 'release', 'cut v', 'tag v', 'publish'],
|
|
869
|
+
implement_add: ['implement', 'add', 'build', 'create', 'introduce', 'wire'],
|
|
870
|
+
refactor_rewrite: ['refactor', 'rewrite', 'restructure', 'rename', 'extract'],
|
|
871
|
+
fix_debug: ['fix', 'debug', 'bug', 'repair', 'broken'],
|
|
872
|
+
audit_review: ['audit', 'review', 'inspect', 'check', 'verify'],
|
|
873
|
+
migrate: ['migrate', 'port', 'upgrade', 'backfill'],
|
|
874
|
+
test_author: ['test', 'cover', 'regression', 'assert'],
|
|
875
|
+
deploy: ['deploy', 'rollout', 'promote'],
|
|
876
|
+
};
|
|
877
|
+
const PLAN_TEMPLATES = {
|
|
878
|
+
ship_release: [
|
|
879
|
+
{ n: 1, description: 'Run tsc --noEmit and the relevant targeted test suite.', rationale: 'Catch type errors and regressions before the commit.' },
|
|
880
|
+
{ n: 2, description: 'Run backward-compat regression suites.', rationale: 'Make sure adjacent features still behave.' },
|
|
881
|
+
{ n: 3, description: 'Bump version across package.json, clients, and server.ts.', rationale: 'Keep the 5-file version pattern consistent.' },
|
|
882
|
+
{ n: 4, description: 'Commit, tag, push, create GitHub Release.', rationale: 'Never npm publish manually — Releases drive publish via CI.' },
|
|
883
|
+
{ n: 5, description: 'Watch CI with gh run watch --exit-status and verify all 3 jobs green.', rationale: 'Do not trust the push until Secret Scan + Contract Checks + Release Quality are confirmed green.' },
|
|
884
|
+
],
|
|
885
|
+
implement_add: [
|
|
886
|
+
{ n: 1, description: 'Search Iranti and read existing patterns before writing new code.', rationale: 'Prefer extending established patterns over reinventing.' },
|
|
887
|
+
{ n: 2, description: 'Draft the minimum type + data plumbing first.', rationale: 'Shapes force the design before the logic.' },
|
|
888
|
+
{ n: 3, description: 'Implement in a single focused edit, iranti_write after each change.', rationale: 'Every edit should leave a durable trail for future sessions.' },
|
|
889
|
+
{ n: 4, description: 'Write unit + integration tests, run them locally.', rationale: 'Prove the new surface area before committing.' },
|
|
890
|
+
{ n: 5, description: 'Run backward-compat regressions, then commit.', rationale: 'Catch cross-feature breakage before review.' },
|
|
891
|
+
],
|
|
892
|
+
refactor_rewrite: [
|
|
893
|
+
{ n: 1, description: 'Map the current call sites of the symbol or module being changed.', rationale: 'Know the blast radius before editing.' },
|
|
894
|
+
{ n: 2, description: 'Sketch the target shape and document the invariant being preserved.', rationale: 'Refactors without a stated invariant drift.' },
|
|
895
|
+
{ n: 3, description: 'Perform the refactor in small, compiling increments.', rationale: 'Keep tsc green at every step.' },
|
|
896
|
+
{ n: 4, description: 'Run the existing test suite unmodified first.', rationale: 'If old tests still pass, behavior is preserved.' },
|
|
897
|
+
{ n: 5, description: 'Add a regression test that locks in the new structural contract.', rationale: 'Prevents silent regression of the refactor goal.' },
|
|
898
|
+
],
|
|
899
|
+
fix_debug: [
|
|
900
|
+
{ n: 1, description: 'Reproduce the bug locally with the minimal repro.', rationale: 'You cannot fix what you cannot reproduce.' },
|
|
901
|
+
{ n: 2, description: 'Isolate the failing component with targeted reads and grep.', rationale: 'Narrow the surface before editing.' },
|
|
902
|
+
{ n: 3, description: 'Make the smallest change that restores correctness.', rationale: 'Scope creep masks root cause.' },
|
|
903
|
+
{ n: 4, description: 'Add a regression test that would have caught the original bug.', rationale: 'Prevents the same bug re-landing later.' },
|
|
904
|
+
{ n: 5, description: 'iranti_write the finding, the fix, and the root cause.', rationale: 'Future sessions should not have to rediscover this.' },
|
|
905
|
+
],
|
|
906
|
+
audit_review: [
|
|
907
|
+
{ n: 1, description: 'Enumerate the audit scope: files, subsystems, or issue list.', rationale: 'Audits without scope miss half the surface area.' },
|
|
908
|
+
{ n: 2, description: 'For each item, read the current state and iranti_write the finding.', rationale: 'Durable findings are how audits compound across sessions.' },
|
|
909
|
+
{ n: 3, description: 'Classify each finding (open / resolved / wontfix) with evidence.', rationale: 'Unclassified findings bit-rot.' },
|
|
910
|
+
{ n: 4, description: 'Run the relevant test suites to validate assumptions.', rationale: 'Tests are how assertions become facts.' },
|
|
911
|
+
{ n: 5, description: 'Checkpoint the audit summary with open risks and next step.', rationale: 'Hand off cleanly, even if incomplete.' },
|
|
912
|
+
],
|
|
913
|
+
migrate: [
|
|
914
|
+
{ n: 1, description: 'Document the source shape and target shape side by side.', rationale: 'Migrations without a diff have no finish line.' },
|
|
915
|
+
{ n: 2, description: 'Write a dry-run path that produces target without mutating source.', rationale: 'Dry runs catch 80% of migration bugs before real data moves.' },
|
|
916
|
+
{ n: 3, description: 'Run the dry run, compare against expected, iranti_write the diff.', rationale: 'Evidence for the real run.' },
|
|
917
|
+
{ n: 4, description: 'Perform the real migration behind a reversible flag or tx.', rationale: 'Always leave a rollback path.' },
|
|
918
|
+
{ n: 5, description: 'Verify + checkpoint + write a post-mortem fact.', rationale: 'Durable record of what changed and why.' },
|
|
919
|
+
],
|
|
920
|
+
test_author: [
|
|
921
|
+
{ n: 1, description: 'Identify the code under test and the contract being locked in.', rationale: 'Tests without a contract are noise.' },
|
|
922
|
+
{ n: 2, description: 'Read nearby test files to match conventions.', rationale: 'Consistency reduces review friction.' },
|
|
923
|
+
{ n: 3, description: 'Write failing tests first where practical.', rationale: 'TDD catches misaligned assumptions.' },
|
|
924
|
+
{ n: 4, description: 'Run the new suite, iterate until green.', rationale: 'Green-on-first-run often means mis-assertion.' },
|
|
925
|
+
{ n: 5, description: 'Register the new suite in package.json and iranti_write.', rationale: 'Untracked suites do not run in CI.' },
|
|
926
|
+
],
|
|
927
|
+
deploy: [
|
|
928
|
+
{ n: 1, description: 'Verify CI is green on the target commit before promoting.', rationale: 'Never promote a red build.' },
|
|
929
|
+
{ n: 2, description: 'Confirm environment variables and secrets are present.', rationale: 'Most rollouts fail on config, not code.' },
|
|
930
|
+
{ n: 3, description: 'Promote, then watch logs and health checks for the first N minutes.', rationale: 'Early rollback is cheap, late rollback is expensive.' },
|
|
931
|
+
{ n: 4, description: 'Verify the canary metric crosses the success threshold.', rationale: 'Objective signal beats subjective feeling.' },
|
|
932
|
+
{ n: 5, description: 'iranti_write the rollout + any anomalies.', rationale: 'Future deploys inherit this learning.' },
|
|
933
|
+
],
|
|
934
|
+
};
|
|
935
|
+
function detectPlanSignals(task) {
|
|
936
|
+
const lower = task.toLowerCase();
|
|
937
|
+
const matches = [];
|
|
938
|
+
const seen = new Set();
|
|
939
|
+
for (const signal of Object.keys(PLAN_SIGNAL_KEYWORDS)) {
|
|
940
|
+
for (const keyword of PLAN_SIGNAL_KEYWORDS[signal]) {
|
|
941
|
+
if (lower.includes(keyword) && !seen.has(signal)) {
|
|
942
|
+
matches.push({ signal, matchedKeyword: keyword });
|
|
943
|
+
seen.add(signal);
|
|
944
|
+
break;
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
return matches;
|
|
949
|
+
}
|
|
950
|
+
function buildPlanProposal(task, inferredTaskType, sessionCheckpoint) {
|
|
951
|
+
const combined = [task, inferredTaskType].filter(Boolean).join(' ').trim();
|
|
952
|
+
// Checkpoint continuation takes precedence. If a prior interrupted session
|
|
953
|
+
// exists, the plan leads with "resume from checkpoint" so the agent can
|
|
954
|
+
// pick up in place instead of re-deriving a plan from scratch.
|
|
955
|
+
if (sessionCheckpoint?.status === 'interrupted' && sessionCheckpoint.checkpoint) {
|
|
956
|
+
const nextStep = sessionCheckpoint.checkpoint.nextStep?.trim() ?? '';
|
|
957
|
+
const currentStep = sessionCheckpoint.checkpoint.currentStep?.trim() ?? '';
|
|
958
|
+
const steps = [];
|
|
959
|
+
if (nextStep) {
|
|
960
|
+
steps.push({
|
|
961
|
+
n: 1,
|
|
962
|
+
description: `Resume: ${nextStep}`,
|
|
963
|
+
rationale: 'Interrupted session — continue from the recorded next step.',
|
|
964
|
+
});
|
|
965
|
+
}
|
|
966
|
+
if (currentStep) {
|
|
967
|
+
steps.push({
|
|
968
|
+
n: steps.length + 1,
|
|
969
|
+
description: `Re-confirm prior state: ${currentStep}`,
|
|
970
|
+
rationale: 'Verify the recorded current step is still accurate before acting.',
|
|
971
|
+
});
|
|
972
|
+
}
|
|
973
|
+
steps.push({
|
|
974
|
+
n: steps.length + 1,
|
|
975
|
+
description: 'After completing the resumed step, iranti_checkpoint with updated current/next/risks.',
|
|
976
|
+
rationale: 'Close the loop so the next interruption resumes cleanly.',
|
|
977
|
+
});
|
|
978
|
+
return {
|
|
979
|
+
suggested: true,
|
|
980
|
+
reason: 'interrupted_session_checkpoint_found',
|
|
981
|
+
source: 'checkpoint_continuation',
|
|
982
|
+
steps,
|
|
983
|
+
taskSignals: ['resume_from_checkpoint'],
|
|
984
|
+
note: 'This plan was derived from the persisted session checkpoint, not the current task string.',
|
|
985
|
+
};
|
|
986
|
+
}
|
|
987
|
+
// Keyword heuristic for normal (non-resume) tasks.
|
|
988
|
+
const tooShort = combined.length < PLAN_MIN_TASK_CHARS;
|
|
989
|
+
const signals = detectPlanSignals(combined);
|
|
990
|
+
if (tooShort && signals.length === 0) {
|
|
991
|
+
return {
|
|
992
|
+
suggested: false,
|
|
993
|
+
reason: 'task_too_short_and_no_plan_signals_detected',
|
|
994
|
+
source: 'skipped',
|
|
995
|
+
steps: [],
|
|
996
|
+
taskSignals: [],
|
|
997
|
+
};
|
|
998
|
+
}
|
|
999
|
+
if (signals.length === 0) {
|
|
1000
|
+
return {
|
|
1001
|
+
suggested: false,
|
|
1002
|
+
reason: 'no_complexity_keywords_detected',
|
|
1003
|
+
source: 'skipped',
|
|
1004
|
+
steps: [],
|
|
1005
|
+
taskSignals: [],
|
|
1006
|
+
};
|
|
1007
|
+
}
|
|
1008
|
+
// Pick the highest-priority signal (ship > migrate > deploy > refactor >
|
|
1009
|
+
// fix > audit > implement > test) when multiple match, then emit that
|
|
1010
|
+
// template. Priority captures "what matters most to plan around" when a
|
|
1011
|
+
// single task hits several verbs.
|
|
1012
|
+
const priority = [
|
|
1013
|
+
'ship_release',
|
|
1014
|
+
'migrate',
|
|
1015
|
+
'deploy',
|
|
1016
|
+
'refactor_rewrite',
|
|
1017
|
+
'fix_debug',
|
|
1018
|
+
'audit_review',
|
|
1019
|
+
'implement_add',
|
|
1020
|
+
'test_author',
|
|
1021
|
+
];
|
|
1022
|
+
const topSignal = priority.find((sig) => signals.some((s) => s.signal === sig))
|
|
1023
|
+
?? signals[0].signal;
|
|
1024
|
+
const template = PLAN_TEMPLATES[topSignal];
|
|
1025
|
+
return {
|
|
1026
|
+
suggested: true,
|
|
1027
|
+
reason: `matched_signal_${topSignal}`,
|
|
1028
|
+
source: 'heuristic_keyword',
|
|
1029
|
+
steps: template.map((step) => ({ ...step })),
|
|
1030
|
+
taskSignals: signals.map((s) => s.signal),
|
|
1031
|
+
note: signals.length > 1
|
|
1032
|
+
? `Multiple plan signals detected (${signals.map((s) => s.signal).join(', ')}); surfaced ${topSignal} template by priority.`
|
|
1033
|
+
: undefined,
|
|
1034
|
+
};
|
|
1035
|
+
}
|
|
1036
|
+
// Confidence on FactInjection is stored 0..100 (see KnowledgeEntry). M1 surfaces
|
|
1037
|
+
// 0..1 to keep the field intuitive on the wire; the helper below scales once.
|
|
1038
|
+
function deriveSkipVerdict(options) {
|
|
1039
|
+
const { derivedEntities, factConfidences, memoryWasSkipped } = options;
|
|
1040
|
+
if (memoryWasSkipped) {
|
|
1041
|
+
// Early return path: decideMemoryNeed already said "no memory needed".
|
|
1042
|
+
// We intentionally do NOT recommend a skip here — absence of facts is
|
|
1043
|
+
// not evidence the tool call is redundant; it's evidence attend never
|
|
1044
|
+
// looked. Hosts that want to skip on this path should gate on
|
|
1045
|
+
// factCount, not on memoryWasSkipped.
|
|
1046
|
+
return {
|
|
1047
|
+
shouldSkip: false,
|
|
1048
|
+
skipConfidence: 0,
|
|
1049
|
+
skipReasonCode: 'memory_not_needed',
|
|
1050
|
+
};
|
|
1051
|
+
}
|
|
1052
|
+
if (derivedEntities.length === 0) {
|
|
1053
|
+
return {
|
|
1054
|
+
shouldSkip: false,
|
|
1055
|
+
skipConfidence: 0,
|
|
1056
|
+
skipReasonCode: 'no_entities_derived',
|
|
1057
|
+
};
|
|
1058
|
+
}
|
|
1059
|
+
if (factConfidences.length === 0) {
|
|
1060
|
+
return {
|
|
1061
|
+
shouldSkip: false,
|
|
1062
|
+
skipConfidence: 0,
|
|
1063
|
+
skipReasonCode: 'no_facts_for_target',
|
|
1064
|
+
};
|
|
1065
|
+
}
|
|
1066
|
+
const mean = factConfidences.reduce((acc, c) => acc + c, 0) / factConfidences.length;
|
|
1067
|
+
// Clamp to [0..100] before scaling to [0..1]; hostile inputs should not
|
|
1068
|
+
// produce negative or >1 confidences on the wire.
|
|
1069
|
+
const clamped = Math.max(0, Math.min(100, mean));
|
|
1070
|
+
return {
|
|
1071
|
+
shouldSkip: true,
|
|
1072
|
+
skipConfidence: Math.round((clamped / 100) * 1000) / 1000,
|
|
1073
|
+
skipReasonCode: 'facts_cover_target',
|
|
1074
|
+
};
|
|
1075
|
+
}
|
|
1076
|
+
// ----------------------------------------------------------------------------
|
|
1077
|
+
// M4: drift detection — pure Jaccard overlap between the current
|
|
1078
|
+
// message/context and the declared (inferred) task type. Hosts can use the
|
|
1079
|
+
// returned DriftSignal to surface "you set out to do X, you're now doing Y"
|
|
1080
|
+
// to the user or to force a task-shift reconvene.
|
|
1081
|
+
// ----------------------------------------------------------------------------
|
|
1082
|
+
const DRIFT_MIN_MESSAGE_CHARS = 20;
|
|
1083
|
+
const DRIFT_JACCARD_MIN = 0.15;
|
|
1084
|
+
const DRIFT_TOKEN_STOP = new Set([
|
|
1085
|
+
'the', 'and', 'for', 'with', 'that', 'this', 'from', 'into', 'then', 'than',
|
|
1086
|
+
'are', 'was', 'were', 'has', 'had', 'have', 'but', 'not', 'its', 'it\'s',
|
|
1087
|
+
'you', 'your', 'our', 'their', 'them', 'they', 'who', 'what', 'when', 'where',
|
|
1088
|
+
'why', 'how', 'all', 'any', 'each', 'one', 'two', 'new', 'old', 'can', 'will',
|
|
1089
|
+
'should', 'would', 'could', 'just', 'also', 'now', 'still', 'yet', 'off', 'out',
|
|
1090
|
+
'ok', 'okay', 'yeah', 'sure', 'keep', 'going', 'done',
|
|
1091
|
+
]);
|
|
1092
|
+
const DRIFT_MAX_DRIVING_TOKENS = 6;
|
|
1093
|
+
function tokenizeForDrift(text) {
|
|
1094
|
+
if (!text)
|
|
1095
|
+
return new Set();
|
|
1096
|
+
const tokens = text
|
|
1097
|
+
.toLowerCase()
|
|
1098
|
+
.replace(/[^a-z0-9_\s]/g, ' ')
|
|
1099
|
+
.split(/\s+/)
|
|
1100
|
+
.filter((t) => t.length >= 3 && !DRIFT_TOKEN_STOP.has(t));
|
|
1101
|
+
return new Set(tokens);
|
|
1102
|
+
}
|
|
1103
|
+
function detectTaskDrift(currentMessage, currentContext, declaredTaskType) {
|
|
1104
|
+
const combinedCurrent = `${currentMessage ?? ''} ${currentContext ?? ''}`.trim();
|
|
1105
|
+
if (combinedCurrent.length < DRIFT_MIN_MESSAGE_CHARS) {
|
|
1106
|
+
// Too little signal to make a judgment — stay silent.
|
|
1107
|
+
return undefined;
|
|
1108
|
+
}
|
|
1109
|
+
if (!declaredTaskType || declaredTaskType.length < 3) {
|
|
1110
|
+
return undefined;
|
|
1111
|
+
}
|
|
1112
|
+
const currentTokens = tokenizeForDrift(combinedCurrent);
|
|
1113
|
+
const declaredTokens = tokenizeForDrift(declaredTaskType);
|
|
1114
|
+
if (currentTokens.size === 0 || declaredTokens.size === 0) {
|
|
1115
|
+
return undefined;
|
|
1116
|
+
}
|
|
1117
|
+
let intersectionSize = 0;
|
|
1118
|
+
for (const t of currentTokens) {
|
|
1119
|
+
if (declaredTokens.has(t))
|
|
1120
|
+
intersectionSize += 1;
|
|
1121
|
+
}
|
|
1122
|
+
const unionSize = currentTokens.size + declaredTokens.size - intersectionSize;
|
|
1123
|
+
const overlap = unionSize === 0 ? 0 : intersectionSize / unionSize;
|
|
1124
|
+
if (overlap >= DRIFT_JACCARD_MIN) {
|
|
1125
|
+
// No drift detected — return undefined so the field is absent on the
|
|
1126
|
+
// wire for the common healthy case.
|
|
1127
|
+
return undefined;
|
|
1128
|
+
}
|
|
1129
|
+
const drivingTokens = [];
|
|
1130
|
+
for (const t of currentTokens) {
|
|
1131
|
+
if (!declaredTokens.has(t)) {
|
|
1132
|
+
drivingTokens.push(t);
|
|
1133
|
+
if (drivingTokens.length >= DRIFT_MAX_DRIVING_TOKENS)
|
|
1134
|
+
break;
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
const missingTokens = [];
|
|
1138
|
+
for (const t of declaredTokens) {
|
|
1139
|
+
if (!currentTokens.has(t)) {
|
|
1140
|
+
missingTokens.push(t);
|
|
1141
|
+
if (missingTokens.length >= DRIFT_MAX_DRIVING_TOKENS)
|
|
1142
|
+
break;
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1145
|
+
return {
|
|
1146
|
+
detected: true,
|
|
1147
|
+
overlap: Math.round(overlap * 1000) / 1000,
|
|
1148
|
+
drivingTokens,
|
|
1149
|
+
missingTokens,
|
|
1150
|
+
declaredTaskType,
|
|
1151
|
+
note: `Task drift detected: current context overlaps declared task by ${(overlap * 100).toFixed(1)}%. Driving topic tokens: ${drivingTokens.slice(0, 4).join(', ') || '(none)'}.`,
|
|
1152
|
+
};
|
|
1153
|
+
}
|
|
855
1154
|
function buildAttendBootstrapTask(latestMessage, currentContext) {
|
|
856
1155
|
const latest = normalizeMessage(latestMessage);
|
|
857
1156
|
if (latest) {
|
|
@@ -2142,6 +2441,9 @@ class AttendantInstance {
|
|
|
2142
2441
|
briefGeneratedAt: new Date().toISOString(),
|
|
2143
2442
|
contextCallCount: this.contextCallCount,
|
|
2144
2443
|
backfillSuggestion: buildBackfillSuggestion(context, workingMemoryWithLedger),
|
|
2444
|
+
// A4: plan proposal derived from the task + inferred task type + any
|
|
2445
|
+
// prior interrupted checkpoint. Pure + fast, never calls the LLM.
|
|
2446
|
+
planProposal: buildPlanProposal(context.task, inferredTaskType, this.sessionCheckpoint),
|
|
2145
2447
|
sessionLedgerLearnings,
|
|
2146
2448
|
sessionCheckpoint: this.sessionCheckpoint,
|
|
2147
2449
|
sessionRecovery: isFirstDelivery ? recoveryResult.recovery : null,
|
|
@@ -2957,6 +3259,15 @@ If no durable facts can be extracted, return an empty array: [].`,
|
|
|
2957
3259
|
// captured via autowrite, and the host should review them before
|
|
2958
3260
|
// proceeding with any more tool calls.
|
|
2959
3261
|
const writeNudge = this.maybeBuildWriteNudge() ?? undefined;
|
|
3262
|
+
// M4: drift detection — compare the current message/context against
|
|
3263
|
+
// the declared (inferred) task type in the brief. Only fires on
|
|
3264
|
+
// pre-response and mid-turn; post-response is the closeout for a
|
|
3265
|
+
// reply and drift there is less actionable. Computed once near the
|
|
3266
|
+
// top so every return path can echo the same value without re-running
|
|
3267
|
+
// the tokenization. Pure — no instance state reads beyond brief.
|
|
3268
|
+
const drift = (phase !== 'post-response' && this.brief?.inferredTaskType)
|
|
3269
|
+
? detectTaskDrift(latestMessage, currentContext, this.brief.inferredTaskType)
|
|
3270
|
+
: undefined;
|
|
2960
3271
|
let watchedEntitiesChanged = this.updateWatchedEntities(effectiveEntityHints);
|
|
2961
3272
|
const freshState = await this.detectRelevantFreshState(effectiveEntityHints, latestMessage);
|
|
2962
3273
|
const observationContext = currentContext.trim().length > 0 ? currentContext : latestMessage;
|
|
@@ -3027,6 +3338,9 @@ If no durable facts can be extracted, return an empty array: [].`,
|
|
|
3027
3338
|
// calls without a host-initiated write, the agent should see the
|
|
3028
3339
|
// draft facts before compliance is persisted.
|
|
3029
3340
|
writeNudge,
|
|
3341
|
+
// M4: drift is gated on phase !== post-response above, so this
|
|
3342
|
+
// will always be undefined here. Field present for shape parity.
|
|
3343
|
+
drift,
|
|
3030
3344
|
};
|
|
3031
3345
|
}
|
|
3032
3346
|
let decision = await this.decideMemoryNeed({
|
|
@@ -3099,12 +3413,27 @@ If no durable facts can be extracted, return an empty array: [].`,
|
|
|
3099
3413
|
// passed pendingToolCall, echo the derived entities so the agent
|
|
3100
3414
|
// can see that attend() was tool-call-aware on this call.
|
|
3101
3415
|
const skipGuidance = input.pendingToolCall
|
|
3102
|
-
? {
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3416
|
+
? (() => {
|
|
3417
|
+
// M1: derive a structured skip verdict. On the "memory not
|
|
3418
|
+
// needed" early-return path, the verdict is always
|
|
3419
|
+
// shouldSkip=false/memory_not_needed because we never
|
|
3420
|
+
// actually looked up facts — absence of retrieval is not
|
|
3421
|
+
// evidence the tool is redundant.
|
|
3422
|
+
const verdict = deriveSkipVerdict({
|
|
3423
|
+
derivedEntities: toolCallHints,
|
|
3424
|
+
factConfidences: [],
|
|
3425
|
+
memoryWasSkipped: true,
|
|
3426
|
+
});
|
|
3427
|
+
return {
|
|
3428
|
+
toolName: input.pendingToolCall.name,
|
|
3429
|
+
derivedEntities: toolCallHints,
|
|
3430
|
+
factCount: 0,
|
|
3431
|
+
note: `Memory was not deemed necessary for this ${input.pendingToolCall.name} call. Proceed.`,
|
|
3432
|
+
shouldSkip: verdict.shouldSkip,
|
|
3433
|
+
skipConfidence: verdict.skipConfidence,
|
|
3434
|
+
skipReasonCode: verdict.skipReasonCode,
|
|
3435
|
+
};
|
|
3436
|
+
})()
|
|
3108
3437
|
: undefined;
|
|
3109
3438
|
return {
|
|
3110
3439
|
shouldInject: matchedUserRules.length > 0,
|
|
@@ -3144,6 +3473,10 @@ If no durable facts can be extracted, return an empty array: [].`,
|
|
|
3144
3473
|
// needed:true above and this branch is skipped. This field stays
|
|
3145
3474
|
// wired for shape consistency and for tests that simulate state.
|
|
3146
3475
|
writeNudge,
|
|
3476
|
+
// M4: drift may fire here even when attend decides no memory is
|
|
3477
|
+
// needed — the agent may be drifting off-task without requiring
|
|
3478
|
+
// memory injection. Surface it so the host can reconvene.
|
|
3479
|
+
drift,
|
|
3147
3480
|
};
|
|
3148
3481
|
}
|
|
3149
3482
|
// Post-compaction recovery: re-surface facts that were recently injected (likely in context
|
|
@@ -3297,16 +3630,41 @@ If no durable facts can be extracted, return an empty array: [].`,
|
|
|
3297
3630
|
// facts preempted the lookup. Only populated when a tool call was
|
|
3298
3631
|
// actually passed — no allocation overhead for the common path.
|
|
3299
3632
|
const toolCallGuidance = input.pendingToolCall
|
|
3300
|
-
? {
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3633
|
+
? (() => {
|
|
3634
|
+
// M1: derive structured skip verdict. Scored against only the
|
|
3635
|
+
// facts that actually matched the derived entity hints — not
|
|
3636
|
+
// the wider structuredFacts set — so unrelated context-level
|
|
3637
|
+
// facts don't falsely trigger a skip recommendation.
|
|
3638
|
+
const entityCovered = toolCallHints.length > 0
|
|
3639
|
+
? structuredFacts.filter((fact) => {
|
|
3640
|
+
if (!fact?.entityKey)
|
|
3641
|
+
return false;
|
|
3642
|
+
return toolCallHints.some((hint) => fact.entityKey.startsWith(`${hint}/`) || fact.entityKey === hint);
|
|
3643
|
+
})
|
|
3644
|
+
: [];
|
|
3645
|
+
const factConfidences = entityCovered.map((fact) => fact.confidence ?? 0);
|
|
3646
|
+
const verdict = deriveSkipVerdict({
|
|
3647
|
+
derivedEntities: toolCallHints,
|
|
3648
|
+
factConfidences,
|
|
3649
|
+
memoryWasSkipped: false,
|
|
3650
|
+
});
|
|
3651
|
+
const skipNote = verdict.shouldSkip
|
|
3652
|
+
? `Iranti surfaced ${entityCovered.length} stored fact(s) for this ${input.pendingToolCall.name} target. shouldSkip=true (confidence ${verdict.skipConfidence}). Read the facts before running the tool — you may not need to run it.`
|
|
3653
|
+
: toolCallHints.length === 0
|
|
3654
|
+
? `No entity hints derived from ${input.pendingToolCall.name} args. Memory check ran on message/context only.`
|
|
3655
|
+
: entityCovered.length === 0
|
|
3656
|
+
? `No stored facts matched the ${input.pendingToolCall.name} target. Proceed with the tool call.`
|
|
3657
|
+
: `Facts surfaced but shouldSkip=false (reason=${verdict.skipReasonCode}). Proceed with the tool call.`;
|
|
3658
|
+
return {
|
|
3659
|
+
toolName: input.pendingToolCall.name,
|
|
3660
|
+
derivedEntities: toolCallHints,
|
|
3661
|
+
factCount: entityCovered.length,
|
|
3662
|
+
note: skipNote,
|
|
3663
|
+
shouldSkip: verdict.shouldSkip,
|
|
3664
|
+
skipConfidence: verdict.skipConfidence,
|
|
3665
|
+
skipReasonCode: verdict.skipReasonCode,
|
|
3666
|
+
};
|
|
3667
|
+
})()
|
|
3310
3668
|
: undefined;
|
|
3311
3669
|
const attendResult = {
|
|
3312
3670
|
...observed,
|
|
@@ -3339,6 +3697,11 @@ If no durable facts can be extracted, return an empty array: [].`,
|
|
|
3339
3697
|
// draft facts from recentAutowriteBatches so the agent can review
|
|
3340
3698
|
// them before the next tool call.
|
|
3341
3699
|
writeNudge,
|
|
3700
|
+
// M4: drift signal — populated only when the current message/context
|
|
3701
|
+
// has diverged from the declared (inferred) task by more than
|
|
3702
|
+
// DRIFT_JACCARD_MIN. Computed once near the top and threaded here
|
|
3703
|
+
// so hosts can surface it alongside injected facts in one reply.
|
|
3704
|
+
drift,
|
|
3342
3705
|
};
|
|
3343
3706
|
if (input.suppressEvents !== true) {
|
|
3344
3707
|
(0, staffEventRegistry_1.getStaffEventEmitter)().emit({
|