@evo-dev/core 0.0.1-alpha.18 → 0.0.1-alpha.19

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.
@@ -200,10 +200,10 @@ function isNodeError(error) {
200
200
  return error instanceof Error && "code" in error;
201
201
  }
202
202
  export {
203
- scanSkillAssets,
204
- scanAssets,
205
- scanAgentAssets,
206
- parseSkillManifest,
203
+ EvoDevAssetError,
207
204
  parseAgentManifest,
208
- EvoDevAssetError
205
+ parseSkillManifest,
206
+ scanAgentAssets,
207
+ scanAssets,
208
+ scanSkillAssets
209
209
  };
@@ -2011,21 +2011,21 @@ function isRecord2(value) {
2011
2011
  return typeof value === "object" && value !== null && !Array.isArray(value);
2012
2012
  }
2013
2013
  export {
2014
- resolveEvoDevPaths,
2015
- readRuntimeInjectionSettings,
2016
- parseSyncState,
2017
- parseSettings,
2018
- parseRegistry,
2019
- parseInstallState,
2020
- mergeSettings,
2021
- initializeCoreConfig,
2022
- createDefaultTeamRuntimeSettings,
2023
- createDefaultSyncState,
2024
- createDefaultSettings,
2025
- createDefaultRegistry,
2026
- createDefaultMemorySettings,
2027
- createDefaultInstallState,
2028
- createDefaultEvolutionSettings,
2014
+ EvoDevConfigError,
2029
2015
  createCoreConfigStore,
2030
- EvoDevConfigError
2016
+ createDefaultEvolutionSettings,
2017
+ createDefaultInstallState,
2018
+ createDefaultMemorySettings,
2019
+ createDefaultRegistry,
2020
+ createDefaultSettings,
2021
+ createDefaultSyncState,
2022
+ createDefaultTeamRuntimeSettings,
2023
+ initializeCoreConfig,
2024
+ mergeSettings,
2025
+ parseInstallState,
2026
+ parseRegistry,
2027
+ parseSettings,
2028
+ parseSyncState,
2029
+ readRuntimeInjectionSettings,
2030
+ resolveEvoDevPaths
2031
2031
  };
package/dist/index.js CHANGED
@@ -19,48 +19,48 @@ import { readFile as readFile11 } from "node:fs/promises";
19
19
  // packages/core/src/evolution/knowledge/index.ts
20
20
  var exports_knowledge = {};
21
21
  __export(exports_knowledge, {
22
- writeFailedOkfKnowledgePlanArtifact: () => writeFailedOkfKnowledgePlanArtifact,
23
- writeContextInjectionReceipt: () => writeContextInjectionReceipt,
24
- validateOkfKnowledgePlanContract: () => validateOkfKnowledgePlanContract,
25
- supersedeOkfKnowledgeConcept: () => supersedeOkfKnowledgeConcept,
26
- scoreOkfKnowledgeCandidate: () => scoreOkfKnowledgeCandidate,
27
- scoreLexicalKnowledgeDocument: () => scoreLexicalKnowledgeDocument,
28
- revokeOkfKnowledgeConcept: () => revokeOkfKnowledgeConcept,
29
- resumeFailedOkfKnowledgePlan: () => resumeFailedOkfKnowledgePlan,
30
- resolveOkfKnowledgePaths: () => resolveOkfKnowledgePaths,
31
- resolveContextInjectionReceiptPath: () => resolveContextInjectionReceiptPath,
32
- rebuildOkfKnowledgeIndexes: () => rebuildOkfKnowledgeIndexes,
33
- readOkfKnowledgeConcept: () => readOkfKnowledgeConcept,
34
- readFailedOkfKnowledgePlanArtifact: () => readFailedOkfKnowledgePlanArtifact,
35
- readFailedOkfKnowledgePlan: () => readFailedOkfKnowledgePlan,
36
- rankKnowledgeContextItems: () => rankKnowledgeContextItems,
37
- queryScopedOkfKnowledgeContext: () => queryScopedOkfKnowledgeContext,
38
- queryOkfKnowledge: () => queryOkfKnowledge,
39
- quarantineLegacyGeneratedKnowledge: () => quarantineLegacyGeneratedKnowledge,
40
- previewLegacyGeneratedKnowledgeCleanup: () => previewLegacyGeneratedKnowledgeCleanup,
41
- parseKnowledgeDistillationOutput: () => parseKnowledgeDistillationOutput,
42
- mergeAcceptedEvosCasesIntoKnowledgeQuery: () => mergeAcceptedEvosCasesIntoKnowledgeQuery,
43
- markOkfKnowledgeConceptStale: () => markOkfKnowledgeConceptStale,
44
- loadActiveOkfKnowledgeIndex: () => loadActiveOkfKnowledgeIndex,
45
- listOkfKnowledgeConcepts: () => listOkfKnowledgeConcepts,
46
- lintOkfKnowledge: () => lintOkfKnowledge,
47
- hasContextInjectionReceipt: () => hasContextInjectionReceipt,
48
- formatScopedKnowledgePromptBlock: () => formatScopedKnowledgePromptBlock,
49
- formatOkfKnowledgeQuery: () => formatOkfKnowledgeQuery,
50
- formatOkfKnowledgePlan: () => formatOkfKnowledgePlan,
51
- formatOkfKnowledgeList: () => formatOkfKnowledgeList,
52
- formatOkfKnowledgeLint: () => formatOkfKnowledgeLint,
53
- findCandidateConflictOrDuplicate: () => findCandidateConflictOrDuplicate,
54
- finalizeCuratedKnowledgePlan: () => finalizeCuratedKnowledgePlan,
55
- ensureOkfKnowledgeBase: () => ensureOkfKnowledgeBase,
56
- discardFailedOkfKnowledgePlan: () => discardFailedOkfKnowledgePlan,
57
- decideOkfKnowledgeCandidate: () => decideOkfKnowledgeCandidate,
58
- createScopedKnowledgeContextPack: () => createScopedKnowledgeContextPack,
59
- createOkfKnowledgePlanFromDistillationBatch: () => createOkfKnowledgePlanFromDistillationBatch,
60
- createLexicalKnowledgeDocumentFromOkfConcept: () => createLexicalKnowledgeDocumentFromOkfConcept,
61
- createLexicalKnowledgeDocumentFromEvosCase: () => createLexicalKnowledgeDocumentFromEvosCase,
22
+ activateOkfKnowledgePlan: () => activateOkfKnowledgePlan,
62
23
  assertOkfKnowledgePlanContract: () => assertOkfKnowledgePlanContract,
63
- activateOkfKnowledgePlan: () => activateOkfKnowledgePlan
24
+ createLexicalKnowledgeDocumentFromEvosCase: () => createLexicalKnowledgeDocumentFromEvosCase,
25
+ createLexicalKnowledgeDocumentFromOkfConcept: () => createLexicalKnowledgeDocumentFromOkfConcept,
26
+ createOkfKnowledgePlanFromDistillationBatch: () => createOkfKnowledgePlanFromDistillationBatch,
27
+ createScopedKnowledgeContextPack: () => createScopedKnowledgeContextPack,
28
+ decideOkfKnowledgeCandidate: () => decideOkfKnowledgeCandidate,
29
+ discardFailedOkfKnowledgePlan: () => discardFailedOkfKnowledgePlan,
30
+ ensureOkfKnowledgeBase: () => ensureOkfKnowledgeBase,
31
+ finalizeCuratedKnowledgePlan: () => finalizeCuratedKnowledgePlan,
32
+ findCandidateConflictOrDuplicate: () => findCandidateConflictOrDuplicate,
33
+ formatOkfKnowledgeLint: () => formatOkfKnowledgeLint,
34
+ formatOkfKnowledgeList: () => formatOkfKnowledgeList,
35
+ formatOkfKnowledgePlan: () => formatOkfKnowledgePlan,
36
+ formatOkfKnowledgeQuery: () => formatOkfKnowledgeQuery,
37
+ formatScopedKnowledgePromptBlock: () => formatScopedKnowledgePromptBlock,
38
+ hasContextInjectionReceipt: () => hasContextInjectionReceipt,
39
+ lintOkfKnowledge: () => lintOkfKnowledge,
40
+ listOkfKnowledgeConcepts: () => listOkfKnowledgeConcepts,
41
+ loadActiveOkfKnowledgeIndex: () => loadActiveOkfKnowledgeIndex,
42
+ markOkfKnowledgeConceptStale: () => markOkfKnowledgeConceptStale,
43
+ mergeAcceptedEvosCasesIntoKnowledgeQuery: () => mergeAcceptedEvosCasesIntoKnowledgeQuery,
44
+ parseKnowledgeDistillationOutput: () => parseKnowledgeDistillationOutput,
45
+ previewLegacyGeneratedKnowledgeCleanup: () => previewLegacyGeneratedKnowledgeCleanup,
46
+ quarantineLegacyGeneratedKnowledge: () => quarantineLegacyGeneratedKnowledge,
47
+ queryOkfKnowledge: () => queryOkfKnowledge,
48
+ queryScopedOkfKnowledgeContext: () => queryScopedOkfKnowledgeContext,
49
+ rankKnowledgeContextItems: () => rankKnowledgeContextItems,
50
+ readFailedOkfKnowledgePlan: () => readFailedOkfKnowledgePlan,
51
+ readFailedOkfKnowledgePlanArtifact: () => readFailedOkfKnowledgePlanArtifact,
52
+ readOkfKnowledgeConcept: () => readOkfKnowledgeConcept,
53
+ rebuildOkfKnowledgeIndexes: () => rebuildOkfKnowledgeIndexes,
54
+ resolveContextInjectionReceiptPath: () => resolveContextInjectionReceiptPath,
55
+ resolveOkfKnowledgePaths: () => resolveOkfKnowledgePaths,
56
+ resumeFailedOkfKnowledgePlan: () => resumeFailedOkfKnowledgePlan,
57
+ revokeOkfKnowledgeConcept: () => revokeOkfKnowledgeConcept,
58
+ scoreLexicalKnowledgeDocument: () => scoreLexicalKnowledgeDocument,
59
+ scoreOkfKnowledgeCandidate: () => scoreOkfKnowledgeCandidate,
60
+ supersedeOkfKnowledgeConcept: () => supersedeOkfKnowledgeConcept,
61
+ validateOkfKnowledgePlanContract: () => validateOkfKnowledgePlanContract,
62
+ writeContextInjectionReceipt: () => writeContextInjectionReceipt,
63
+ writeFailedOkfKnowledgePlanArtifact: () => writeFailedOkfKnowledgePlanArtifact
64
64
  });
65
65
  import { createHash as createHash5 } from "node:crypto";
66
66
  import { existsSync, readFileSync as readFileSync2, readdirSync } from "node:fs";
@@ -120,35 +120,35 @@ import { readFile as readFile8 } from "node:fs/promises";
120
120
  // packages/core/src/evolution/evidence/session-memory/index.ts
121
121
  var exports_session_memory = {};
122
122
  __export(exports_session_memory, {
123
- writeSessionIndex: () => writeSessionIndex,
124
- writeSessionEvidenceSegmentAtomic: () => writeSessionEvidenceSegmentAtomic,
125
- writeJson: () => writeJson,
126
- writeHistoricalSessionStateAndIndex: () => writeHistoricalSessionStateAndIndex,
127
- writeHistoricalSessionEvidenceSegment: () => writeHistoricalSessionEvidenceSegment,
128
- updateSessionMemoryFromHook: () => updateSessionMemoryFromHook,
129
- updateSessionEvidenceSegmentLifecycle: () => updateSessionEvidenceSegmentLifecycle,
130
- resolveSessionMemoryPaths: () => resolveSessionMemoryPaths,
131
- redactSessionMemoryCredentials: () => redactSessionMemoryCredentials,
132
- redactSessionMemoryCredentialText: () => redactSessionMemoryCredentialText,
133
- readSessionState: () => readSessionState,
134
- readSessionEvidenceSegment: () => readSessionEvidenceSegment,
135
- readSessionCursor: () => readSessionCursor,
136
- readLineRange: () => readLineRange,
137
- purgeExpiredHistoricalSessionEvidence: () => purgeExpiredHistoricalSessionEvidence,
138
- parseSessionMemoryPolicy: () => parseSessionMemoryPolicy,
139
- mergeSessionMemorySensitivity: () => mergeSessionMemorySensitivity,
140
- listSessionMemoryStates: () => listSessionMemoryStates,
141
- listSessionEvidenceSegments: () => listSessionEvidenceSegments,
142
- inspectHistoricalSessionEvidenceRetention: () => inspectHistoricalSessionEvidenceRetention,
143
- detectSessionMemorySensitivity: () => detectSessionMemorySensitivity,
144
- createSemanticPacketMessageKey: () => createSemanticPacketMessageKey,
145
- createHistoricalSemanticEvidencePacket: () => createHistoricalSemanticEvidencePacket,
146
- createDefaultSessionMemoryPolicy: () => createDefaultSessionMemoryPolicy,
147
- classifySessionEvidenceSegment: () => classifySessionEvidenceSegment,
148
- appendRawEvent: () => appendRawEvent,
149
- analyzeSessionEvidenceSegment: () => analyzeSessionEvidenceSegment,
123
+ SESSION_MEMORY_CREDENTIAL_REDACTION: () => SESSION_MEMORY_CREDENTIAL_REDACTION,
150
124
  SessionMemoryEvidenceError: () => SessionMemoryEvidenceError,
151
- SESSION_MEMORY_CREDENTIAL_REDACTION: () => SESSION_MEMORY_CREDENTIAL_REDACTION
125
+ analyzeSessionEvidenceSegment: () => analyzeSessionEvidenceSegment,
126
+ appendRawEvent: () => appendRawEvent,
127
+ classifySessionEvidenceSegment: () => classifySessionEvidenceSegment,
128
+ createDefaultSessionMemoryPolicy: () => createDefaultSessionMemoryPolicy,
129
+ createHistoricalSemanticEvidencePacket: () => createHistoricalSemanticEvidencePacket,
130
+ createSemanticPacketMessageKey: () => createSemanticPacketMessageKey,
131
+ detectSessionMemorySensitivity: () => detectSessionMemorySensitivity,
132
+ inspectHistoricalSessionEvidenceRetention: () => inspectHistoricalSessionEvidenceRetention,
133
+ listSessionEvidenceSegments: () => listSessionEvidenceSegments,
134
+ listSessionMemoryStates: () => listSessionMemoryStates,
135
+ mergeSessionMemorySensitivity: () => mergeSessionMemorySensitivity,
136
+ parseSessionMemoryPolicy: () => parseSessionMemoryPolicy,
137
+ purgeExpiredHistoricalSessionEvidence: () => purgeExpiredHistoricalSessionEvidence,
138
+ readLineRange: () => readLineRange,
139
+ readSessionCursor: () => readSessionCursor,
140
+ readSessionEvidenceSegment: () => readSessionEvidenceSegment,
141
+ readSessionState: () => readSessionState,
142
+ redactSessionMemoryCredentialText: () => redactSessionMemoryCredentialText,
143
+ redactSessionMemoryCredentials: () => redactSessionMemoryCredentials,
144
+ resolveSessionMemoryPaths: () => resolveSessionMemoryPaths,
145
+ updateSessionEvidenceSegmentLifecycle: () => updateSessionEvidenceSegmentLifecycle,
146
+ updateSessionMemoryFromHook: () => updateSessionMemoryFromHook,
147
+ writeHistoricalSessionEvidenceSegment: () => writeHistoricalSessionEvidenceSegment,
148
+ writeHistoricalSessionStateAndIndex: () => writeHistoricalSessionStateAndIndex,
149
+ writeJson: () => writeJson,
150
+ writeSessionEvidenceSegmentAtomic: () => writeSessionEvidenceSegmentAtomic,
151
+ writeSessionIndex: () => writeSessionIndex
152
152
  });
153
153
 
154
154
  // packages/core/src/utils/errors.ts
@@ -1939,18 +1939,18 @@ function createSemanticPacketMessageKey(value) {
1939
1939
  // packages/core/src/evolution/candidates/index.ts
1940
1940
  var exports_candidates = {};
1941
1941
  __export(exports_candidates, {
1942
- withEvolutionReviewDecisionLock: () => withEvolutionReviewDecisionLock,
1943
- updateEvolutionRepoProposalReviewState: () => updateEvolutionRepoProposalReviewState,
1944
- updateEvolutionRepoProposalImprovementEval: () => updateEvolutionRepoProposalImprovementEval,
1945
- updateEvolutionKnowledgeReviewState: () => updateEvolutionKnowledgeReviewState,
1946
- supersedeEvolutionRepoProposal: () => supersedeEvolutionRepoProposal,
1947
- readEvolutionReviewSnapshot: () => readEvolutionReviewSnapshot,
1948
- readEvolutionRepoProposalById: () => readEvolutionRepoProposalById,
1949
- readEvolutionKnowledgeRecordById: () => readEvolutionKnowledgeRecordById,
1950
- markEvolutionRepoProposalApplied: () => markEvolutionRepoProposalApplied,
1951
- listEvolutionKnowledgeReviewHistory: () => listEvolutionKnowledgeReviewHistory,
1942
+ listEvolutionEvosCases: () => listEvolutionEvosCases,
1952
1943
  listEvolutionKnowledgeRecords: () => listEvolutionKnowledgeRecords,
1953
- listEvolutionEvosCases: () => listEvolutionEvosCases
1944
+ listEvolutionKnowledgeReviewHistory: () => listEvolutionKnowledgeReviewHistory,
1945
+ markEvolutionRepoProposalApplied: () => markEvolutionRepoProposalApplied,
1946
+ readEvolutionKnowledgeRecordById: () => readEvolutionKnowledgeRecordById,
1947
+ readEvolutionRepoProposalById: () => readEvolutionRepoProposalById,
1948
+ readEvolutionReviewSnapshot: () => readEvolutionReviewSnapshot,
1949
+ supersedeEvolutionRepoProposal: () => supersedeEvolutionRepoProposal,
1950
+ updateEvolutionKnowledgeReviewState: () => updateEvolutionKnowledgeReviewState,
1951
+ updateEvolutionRepoProposalImprovementEval: () => updateEvolutionRepoProposalImprovementEval,
1952
+ updateEvolutionRepoProposalReviewState: () => updateEvolutionRepoProposalReviewState,
1953
+ withEvolutionReviewDecisionLock: () => withEvolutionReviewDecisionLock
1954
1954
  });
1955
1955
  import { createHash as createHash2 } from "node:crypto";
1956
1956
  import { mkdir as mkdir2, readFile as readFile2, readdir as readdir3, rm, writeFile as writeFile2 } from "node:fs/promises";
@@ -2489,15 +2489,15 @@ function isRecord2(value) {
2489
2489
  // packages/core/src/evolution/triggers/index.ts
2490
2490
  var exports_triggers = {};
2491
2491
  __export(exports_triggers, {
2492
- updateTriggers: () => updateTriggers,
2493
- updateSegmentTriggers: () => updateSegmentTriggers,
2494
- resolveSegmentEvolutionTriggerPath: () => resolveSegmentEvolutionTriggerPath,
2495
- resolveEvolutionTriggerDecision: () => resolveEvolutionTriggerDecision,
2496
- listSegmentEvolutionTriggers: () => listSegmentEvolutionTriggers,
2497
- listEvolutionTriggers: () => listEvolutionTriggers,
2498
- groupTriggersByRun: () => groupTriggersByRun,
2492
+ enqueueEvolutionTrigger: () => enqueueEvolutionTrigger,
2499
2493
  enqueueSegmentEvolutionTrigger: () => enqueueSegmentEvolutionTrigger,
2500
- enqueueEvolutionTrigger: () => enqueueEvolutionTrigger
2494
+ groupTriggersByRun: () => groupTriggersByRun,
2495
+ listEvolutionTriggers: () => listEvolutionTriggers,
2496
+ listSegmentEvolutionTriggers: () => listSegmentEvolutionTriggers,
2497
+ resolveEvolutionTriggerDecision: () => resolveEvolutionTriggerDecision,
2498
+ resolveSegmentEvolutionTriggerPath: () => resolveSegmentEvolutionTriggerPath,
2499
+ updateSegmentTriggers: () => updateSegmentTriggers,
2500
+ updateTriggers: () => updateTriggers
2501
2501
  });
2502
2502
  import { readFile as readFile3 } from "node:fs/promises";
2503
2503
  import { join as join5 } from "node:path";
@@ -3425,20 +3425,20 @@ import { basename as basename2, dirname as dirname5, isAbsolute as isAbsolute3,
3425
3425
  // packages/core/src/runtime-logs/index.ts
3426
3426
  var exports_runtime_logs = {};
3427
3427
  __export(exports_runtime_logs, {
3428
- resolveTraceTeamContext: () => resolveTraceTeamContext,
3429
- resolveTraceSessionKey: () => resolveTraceSessionKey,
3430
- resolveProjectLogKey: () => resolveProjectLogKey,
3431
- resolveProjectLogIdentity: () => resolveProjectLogIdentity,
3432
- resolvePathProjectLogKey: () => resolvePathProjectLogKey,
3433
- resolveEvoDevLogPaths: () => resolveEvoDevLogPaths,
3434
- createTraceLogEntry: () => createTraceLogEntry,
3435
- createEvoDevExecutionEvent: () => createEvoDevExecutionEvent,
3436
- createDebugLogEntry: () => createDebugLogEntry,
3437
- createCliLogEntry: () => createCliLogEntry,
3438
- appendTraceLogEntry: () => appendTraceLogEntry,
3439
- appendEvoDevExecutionEvent: () => appendEvoDevExecutionEvent,
3428
+ appendCliLogEntry: () => appendCliLogEntry,
3440
3429
  appendDebugLogEntry: () => appendDebugLogEntry,
3441
- appendCliLogEntry: () => appendCliLogEntry
3430
+ appendEvoDevExecutionEvent: () => appendEvoDevExecutionEvent,
3431
+ appendTraceLogEntry: () => appendTraceLogEntry,
3432
+ createCliLogEntry: () => createCliLogEntry,
3433
+ createDebugLogEntry: () => createDebugLogEntry,
3434
+ createEvoDevExecutionEvent: () => createEvoDevExecutionEvent,
3435
+ createTraceLogEntry: () => createTraceLogEntry,
3436
+ resolveEvoDevLogPaths: () => resolveEvoDevLogPaths,
3437
+ resolvePathProjectLogKey: () => resolvePathProjectLogKey,
3438
+ resolveProjectLogIdentity: () => resolveProjectLogIdentity,
3439
+ resolveProjectLogKey: () => resolveProjectLogKey,
3440
+ resolveTraceSessionKey: () => resolveTraceSessionKey,
3441
+ resolveTraceTeamContext: () => resolveTraceTeamContext
3442
3442
  });
3443
3443
  import { lstatSync, readFileSync, realpathSync } from "node:fs";
3444
3444
  import { appendFile as appendFile2, mkdir as mkdir4 } from "node:fs/promises";
@@ -13894,13 +13894,13 @@ function isNodeError(error) {
13894
13894
  // packages/core/src/code-agent-traces/index.ts
13895
13895
  var exports_code_agent_traces = {};
13896
13896
  __export(exports_code_agent_traces, {
13897
- writeCodeAgentTraceRef: () => writeCodeAgentTraceRef,
13898
- resolveCodeAgentTraceRefPaths: () => resolveCodeAgentTraceRefPaths,
13899
- recordCodeAgentTraceRefFromHook: () => recordCodeAgentTraceRefFromHook,
13900
- readCodeAgentTraceRef: () => readCodeAgentTraceRef,
13901
- parseCodeAgentTraceRef: () => parseCodeAgentTraceRef,
13897
+ createCodeAgentTraceRef: () => createCodeAgentTraceRef,
13902
13898
  listCodeAgentTraceRefs: () => listCodeAgentTraceRefs,
13903
- createCodeAgentTraceRef: () => createCodeAgentTraceRef
13899
+ parseCodeAgentTraceRef: () => parseCodeAgentTraceRef,
13900
+ readCodeAgentTraceRef: () => readCodeAgentTraceRef,
13901
+ recordCodeAgentTraceRefFromHook: () => recordCodeAgentTraceRefFromHook,
13902
+ resolveCodeAgentTraceRefPaths: () => resolveCodeAgentTraceRefPaths,
13903
+ writeCodeAgentTraceRef: () => writeCodeAgentTraceRef
13904
13904
  });
13905
13905
  import { mkdir as mkdir9, readFile as readFile13, readdir as readdir10, stat as stat7, writeFile as writeFile8 } from "node:fs/promises";
13906
13906
  import { dirname as dirname10, isAbsolute as isAbsolute6, join as join15, normalize, relative as relative6 } from "node:path";
@@ -14615,12 +14615,12 @@ import { dirname as dirname14, join as join20 } from "node:path";
14615
14615
  // packages/core/src/evolution/control/index.ts
14616
14616
  var exports_control = {};
14617
14617
  __export(exports_control, {
14618
- readEvolutionReviewSnapshot: () => readEvolutionReviewSnapshot,
14619
- processEvolutionTriggers: () => processEvolutionTriggers,
14620
- listSegmentEvolutionTriggers: () => listSegmentEvolutionTriggers,
14621
- listEvolutionTriggers: () => listEvolutionTriggers,
14618
+ formatEvolutionProcessResult: () => formatEvolutionProcessResult,
14622
14619
  formatEvolutionReviewSnapshot: () => formatEvolutionReviewSnapshot,
14623
- formatEvolutionProcessResult: () => formatEvolutionProcessResult
14620
+ listEvolutionTriggers: () => listEvolutionTriggers,
14621
+ listSegmentEvolutionTriggers: () => listSegmentEvolutionTriggers,
14622
+ processEvolutionTriggers: () => processEvolutionTriggers,
14623
+ readEvolutionReviewSnapshot: () => readEvolutionReviewSnapshot
14624
14624
  });
14625
14625
 
14626
14626
  // packages/core/src/evolution/formatters.ts
@@ -14751,13 +14751,13 @@ function formatEvolutionReviewSnapshot(snapshot) {
14751
14751
  // packages/core/src/evolution/processor/index.ts
14752
14752
  var exports_processor = {};
14753
14753
  __export(exports_processor, {
14754
- writeEvolutionRepoProposal: () => writeEvolutionRepoProposal,
14755
- writeEvolutionDistillationBatch: () => writeEvolutionDistillationBatch,
14756
- processEvolutionTriggers: () => processEvolutionTriggers,
14757
- createEvolutionDistillationBatch: () => createEvolutionDistillationBatch,
14758
- analyzeEvolutionRun: () => analyzeEvolutionRun,
14754
+ activateCuratedSessionKnowledgePlan: () => activateCuratedSessionKnowledgePlan,
14759
14755
  activateEvolutionDistillationBatch: () => activateEvolutionDistillationBatch,
14760
- activateCuratedSessionKnowledgePlan: () => activateCuratedSessionKnowledgePlan
14756
+ analyzeEvolutionRun: () => analyzeEvolutionRun,
14757
+ createEvolutionDistillationBatch: () => createEvolutionDistillationBatch,
14758
+ processEvolutionTriggers: () => processEvolutionTriggers,
14759
+ writeEvolutionDistillationBatch: () => writeEvolutionDistillationBatch,
14760
+ writeEvolutionRepoProposal: () => writeEvolutionRepoProposal
14761
14761
  });
14762
14762
 
14763
14763
  // packages/core/src/evolution/evidence/analysis.ts
@@ -15520,6 +15520,8 @@ var PROCESS_LOCK_STALE_MS2 = 5 * 60 * 1000;
15520
15520
  var PROCESS_LOCK_HEARTBEAT_MS = 30 * 1000;
15521
15521
  var PROCESSING_TRIGGER_STALE_MS = PROCESS_LOCK_STALE_MS2;
15522
15522
  var MAX_TRANSIENT_TRIGGER_ATTEMPTS = 3;
15523
+ var LOCAL_SEGMENT_SCAN_MULTIPLIER = 20;
15524
+ var MAX_LOCAL_SEGMENT_SCAN_LIMIT = 500;
15523
15525
  async function processEvolutionTriggers(input) {
15524
15526
  const now = normalizeTimestamp(input.now);
15525
15527
  const limit = input.limit ?? 20;
@@ -15547,13 +15549,23 @@ async function processEvolutionTriggers(input) {
15547
15549
  if (!dryRun) {
15548
15550
  await reconcileRetryableEvolutionTriggers(input, now);
15549
15551
  }
15550
- const pendingSegments = dryRun || input.distillSessionKnowledge !== undefined ? (await listSegmentEvolutionTriggers({
15552
+ const listedPendingSegments = dryRun || input.distillSessionKnowledge !== undefined ? await listSegmentEvolutionTriggers({
15551
15553
  homeDir: input.homeDir,
15552
15554
  projectKey: input.projectKey,
15553
15555
  runId: input.runId,
15554
15556
  status: "pending"
15555
- })).slice(0, limit) : [];
15556
- const remainingLimit = Math.max(0, limit - pendingSegments.length);
15557
+ }) : [];
15558
+ const segmentSelection = dryRun ? {
15559
+ triggers: listedPendingSegments.slice(0, limit),
15560
+ semanticCandidates: Math.min(listedPendingSegments.length, limit)
15561
+ } : await selectPendingSegmentTriggers({
15562
+ homeDir: input.homeDir,
15563
+ triggers: listedPendingSegments,
15564
+ now,
15565
+ semanticLimit: limit
15566
+ });
15567
+ const pendingSegments = segmentSelection.triggers;
15568
+ const remainingLimit = Math.max(0, limit - segmentSelection.semanticCandidates);
15557
15569
  const pending = remainingLimit === 0 ? [] : (await listEvolutionTriggers({
15558
15570
  homeDir: input.homeDir,
15559
15571
  projectKey: input.projectKey,
@@ -15805,6 +15817,39 @@ async function processEvolutionTriggers(input) {
15805
15817
  await releaseEvolutionProcessLock(lock);
15806
15818
  }
15807
15819
  }
15820
+ async function selectPendingSegmentTriggers(input) {
15821
+ const scanLimit = Math.max(input.semanticLimit, Math.min(input.semanticLimit * LOCAL_SEGMENT_SCAN_MULTIPLIER, MAX_LOCAL_SEGMENT_SCAN_LIMIT));
15822
+ const selected = [];
15823
+ let semanticCandidates = 0;
15824
+ for (const trigger of input.triggers.slice(0, scanLimit)) {
15825
+ let requiresSemanticDistillation = true;
15826
+ try {
15827
+ const segment = await readSessionEvidenceSegment({
15828
+ homeDir: input.homeDir,
15829
+ projectKey: trigger.projectKey,
15830
+ sessionKey: trigger.sessionKey,
15831
+ segmentId: trigger.segmentId
15832
+ });
15833
+ const existingBatchId = segment.lifecycle.consumedByBatchIds.at(-1);
15834
+ if (segment.lifecycle.status === "distilled" && existingBatchId !== undefined) {
15835
+ requiresSemanticDistillation = false;
15836
+ } else {
15837
+ const analysis2 = analyzeSessionEvidenceSegment({
15838
+ homeDir: input.homeDir,
15839
+ segment,
15840
+ now: input.now
15841
+ });
15842
+ requiresSemanticDistillation = analysis2.evidenceWindow?.triggerPolicy.distillRecommended === true;
15843
+ }
15844
+ } catch {}
15845
+ if (requiresSemanticDistillation && semanticCandidates >= input.semanticLimit)
15846
+ break;
15847
+ selected.push(trigger);
15848
+ if (requiresSemanticDistillation)
15849
+ semanticCandidates += 1;
15850
+ }
15851
+ return { triggers: selected, semanticCandidates };
15852
+ }
15808
15853
  async function reportProgress(input, result, phase) {
15809
15854
  if (input.onProgress === undefined)
15810
15855
  return;
@@ -18944,9 +18989,9 @@ function validateApplyInput(input) {
18944
18989
  // packages/core/src/evolution/evidence/index.ts
18945
18990
  var exports_evidence = {};
18946
18991
  __export(exports_evidence, {
18947
- traceRefs: () => exports_code_agent_traces,
18992
+ runtimeLogs: () => exports_runtime_logs,
18948
18993
  sessionMemory: () => exports_session_memory,
18949
- runtimeLogs: () => exports_runtime_logs
18994
+ traceRefs: () => exports_code_agent_traces
18950
18995
  });
18951
18996
  // packages/core/src/evolution/knowledge/review.ts
18952
18997
  async function previewOkfKnowledgeChangeDecision(input) {
@@ -19257,25 +19302,25 @@ function isBaseRevisionConflict(error) {
19257
19302
  // packages/core/src/evolution/review/index.ts
19258
19303
  var exports_review = {};
19259
19304
  __export(exports_review, {
19260
- validateLearningReviewDecisionRecord: () => validateLearningReviewDecisionRecord,
19261
- validateLearningCandidate: () => validateLearningCandidate,
19262
- resolveLearningDecisionPath: () => resolveLearningDecisionPath,
19263
- resolveLearningCandidateQueuePath: () => resolveLearningCandidateQueuePath,
19264
- readLearningReviewDecisions: () => readLearningReviewDecisions,
19265
- readLearningCandidates: () => readLearningCandidates,
19266
- pathExists: () => pathExists8,
19267
- parseLearningReviewDecisionRecord: () => parseLearningReviewDecisionRecord,
19268
- parseLearningCandidate: () => parseLearningCandidate,
19269
- listLearningReviewDecisions: () => listLearningReviewDecisions,
19270
- listLearningCandidates: () => listLearningCandidates,
19271
- lintLearningCandidates: () => lintLearningCandidates,
19272
- formatLearningReview: () => formatLearningReview,
19273
- formatLearningLint: () => formatLearningLint,
19274
- createLearningReviewDecisionRecord: () => createLearningReviewDecisionRecord,
19275
- createLearningCandidate: () => createLearningCandidate,
19276
- buildLearningReviewEntries: () => buildLearningReviewEntries,
19305
+ appendLearningCandidate: () => appendLearningCandidate,
19277
19306
  appendLearningReviewDecision: () => appendLearningReviewDecision,
19278
- appendLearningCandidate: () => appendLearningCandidate
19307
+ buildLearningReviewEntries: () => buildLearningReviewEntries,
19308
+ createLearningCandidate: () => createLearningCandidate,
19309
+ createLearningReviewDecisionRecord: () => createLearningReviewDecisionRecord,
19310
+ formatLearningLint: () => formatLearningLint,
19311
+ formatLearningReview: () => formatLearningReview,
19312
+ lintLearningCandidates: () => lintLearningCandidates,
19313
+ listLearningCandidates: () => listLearningCandidates,
19314
+ listLearningReviewDecisions: () => listLearningReviewDecisions,
19315
+ parseLearningCandidate: () => parseLearningCandidate,
19316
+ parseLearningReviewDecisionRecord: () => parseLearningReviewDecisionRecord,
19317
+ pathExists: () => pathExists8,
19318
+ readLearningCandidates: () => readLearningCandidates,
19319
+ readLearningReviewDecisions: () => readLearningReviewDecisions,
19320
+ resolveLearningCandidateQueuePath: () => resolveLearningCandidateQueuePath,
19321
+ resolveLearningDecisionPath: () => resolveLearningDecisionPath,
19322
+ validateLearningCandidate: () => validateLearningCandidate,
19323
+ validateLearningReviewDecisionRecord: () => validateLearningReviewDecisionRecord
19279
19324
  });
19280
19325
  import { mkdir as mkdir15, readFile as readFile20, stat as stat11, writeFile as writeFile12 } from "node:fs/promises";
19281
19326
  import { dirname as dirname16, join as join23 } from "node:path";
@@ -21268,364 +21313,364 @@ function isRecord14(value) {
21268
21313
  return typeof value === "object" && value !== null && !Array.isArray(value);
21269
21314
  }
21270
21315
  export {
21271
- writeTrajectoryImportMaterializationProgress,
21272
- writeTrajectoryImportManifest,
21273
- writeSessionIndex,
21274
- writeSessionEvidenceSegmentAtomic,
21275
- writeOkfKnowledgeChangeCandidate,
21276
- writeJson,
21277
- writeImmutableTrajectoryImportReceipt,
21278
- writeImmutableTrajectoryImportIndex,
21279
- writeHistoricalSessionStateAndIndex,
21280
- writeHistoricalSessionEvidenceSegment,
21281
- writeFailedOkfKnowledgePlanArtifact,
21282
- writeEvolutionRepoProposal,
21283
- writeEvolutionDistillationBatch,
21284
- writeDaemonState,
21285
- writeContextInjectionReceipt,
21286
- writeCodexCapabilityVerificationArtifact,
21287
- writeCodeAgentTraceRef,
21288
- withTrajectoryImportSourceLock,
21289
- withOkfKnowledgeChangeLock,
21290
- withEvolutionReviewDecisionLock,
21291
- validatePack,
21292
- validateOkfKnowledgePlanContract,
21293
- validateObservabilityEvent,
21294
- validateLearningReviewDecisionRecord,
21295
- validateLearningCandidate,
21296
- validateEvolutionRepoProposal,
21297
- validateEvolutionKnowledgeRecord,
21298
- validateEvolutionEvidenceWindow,
21299
- validateEvolutionDistillationBatch,
21300
- validateDaemonBindHost,
21301
- validateCodexCapabilityVerificationArtifact,
21302
- validateAgentOutput,
21303
- updateTriggers,
21304
- updateTeamAgentHookState,
21305
- updateSessionMemoryFromHook,
21306
- updateSessionEvidenceSegmentLifecycle,
21307
- updateSegmentTriggers,
21308
- updateEvolutionRepoProposalReviewState,
21309
- updateEvolutionRepoProposalImprovementEval,
21310
- updateEvolutionKnowledgeReviewState,
21311
- unsetTeamRoleBinding,
21312
- supersedeOkfKnowledgeConcept,
21313
- supersedeEvolutionRepoProposal,
21314
- stopTeamRun,
21315
- stopTeamRole,
21316
- startTeamRun,
21317
- stageTrajectoryImportWithLock,
21318
- stageTrajectoryImport,
21319
- stableTrajectoryImportJson,
21320
- spawnTeamRole,
21321
- setTeamRoleBinding,
21322
- sendTeamMessage,
21323
- scoreOkfKnowledgeCandidate,
21324
- scoreLexicalKnowledgeDocument,
21325
- schedulePendingTeamMessageDelivery,
21326
- scanWorkflowManifests,
21327
- scanSkillAssets,
21328
- scanAssets,
21329
- scanAgentAssets,
21330
- sanitizeProposedChange,
21331
- runTeamsMcpStdioServer,
21332
- runSync,
21333
- runPluginConformance,
21334
- runDaemonForeground,
21335
- revokeOkfKnowledgeConcept,
21336
- resumeTeamRun,
21337
- resumeFailedOkfKnowledgePlan,
21338
- resolveTrajectoryImportSourcePaths,
21339
- resolveTrajectoryImportPaths,
21340
- resolveTraceTeamContext,
21341
- resolveTraceSessionKey,
21342
- resolveTeamRunPaths,
21343
- resolveTeamRole,
21344
- resolveTeamOverlay,
21345
- resolveTeamAgentReference,
21346
- resolveSessionMemoryPaths,
21347
- resolveSegmentEvolutionTriggerPath,
21348
- resolveProjectWorkspaceFromCwd,
21349
- resolveProjectRegistryPaths,
21350
- resolveProjectLogKey,
21351
- resolveProjectLogIdentity,
21352
- resolvePathProjectLogKey,
21353
- resolveOkfKnowledgePaths,
21354
- resolveObservabilityStorePaths,
21355
- resolveLearningDecisionPath,
21356
- resolveLearningCandidateQueuePath,
21357
- resolveHookRuntimeSessionPaths,
21358
- resolveEvolutionTriggerDecision,
21359
- resolveEvolutionPaths,
21360
- resolveEvoDevPaths,
21361
- resolveEvoDevLogPaths,
21362
- resolveDaemonPaths,
21363
- resolveContextInjectionReceiptPath,
21364
- resolveCodexCapabilityArtifactPath,
21365
- resolveCodeAgentTraceRefPaths,
21366
- replaceOkfKnowledgeChangeCandidate,
21367
- renderRoleAgentDefinitionContext,
21368
- renderMainTeamOverlayContext,
21369
- releaseTrajectoryImportSourceLock,
21370
- registerDiscoveredProject,
21371
- redactSessionMemoryCredentials,
21372
- redactSessionMemoryCredentialText,
21373
- recordTeamAgentNativeSession,
21374
- recordDiscoveredProject,
21375
- recordCodeAgentTraceRefFromHook,
21376
- reconcileTeamRun,
21377
- rebuildOkfKnowledgeIndexes,
21378
- readTrajectoryImportSnapshot,
21379
- readTrajectoryImportReceipt,
21380
- readTrajectoryImportPreviousSnapshot,
21381
- readTrajectoryImportMaterializationProgress,
21382
- readTrajectoryImportManifestAtPath,
21383
- readTrajectoryImportManifest,
21384
- readTrajectoryImportIndex,
21385
- readTeamAgentSummary,
21386
- readTeamAgentDefinition,
21387
- readSessionState,
21388
- readSessionEvidenceSegment,
21389
- readSessionCursor,
21390
- readRuntimeInjectionSettings,
21391
- readPendingTeamMessagesForRole,
21392
- readOkfKnowledgeConcept,
21393
- readOkfKnowledgeChangeCandidate,
21394
- readLineRange,
21395
- readLearningReviewDecisions,
21396
- readLearningCandidates,
21397
- readFailedOkfKnowledgePlanArtifact,
21398
- readFailedOkfKnowledgePlan,
21399
- readEvolutionReviewSnapshot,
21400
- readEvolutionRepoProposalById,
21401
- readEvolutionKnowledgeRecordById,
21402
- readDaemonToken,
21403
- readDaemonLock,
21404
- readCodexCapabilityVerificationArtifact,
21405
- readCodeAgentTraceRef,
21406
- readAgentProfile,
21407
- rankKnowledgeContextItems,
21408
- queryScopedOkfKnowledgeContext,
21409
- queryOkfKnowledge,
21410
- quarantineLegacyGeneratedKnowledge,
21411
- purgeExpiredHistoricalSessionEvidence,
21412
- processEvolutionTriggers,
21413
- previewOkfKnowledgeChangeDecision,
21414
- previewLegacyGeneratedKnowledgeCleanup,
21415
- planWorkflow,
21416
- planPackInstallDryRun,
21417
- pathExists8 as pathExists,
21418
- parseWorkflowManifest,
21419
- parseTeamRoleDefinition,
21420
- parseTeamDefinitionMarkdown,
21421
- parseSyncState,
21422
- parseSkillManifest,
21423
- parseSettings,
21424
- parseSessionMemoryPolicy,
21425
- parseRegistry,
21426
- parsePackManifest,
21427
- parseOkfKnowledgeChangeCandidate,
21428
- parseLearningReviewDecisionRecord,
21429
- parseLearningCandidate,
21430
- parseKnowledgeDistillationOutput,
21431
- parseInstallState,
21432
- parseHookSettings,
21433
- parseCodeAgentTraceRef,
21434
- parseAgentProfile,
21435
- parseAgentManifest,
21436
- normalizePackagePath,
21437
- normalizePackPermissions,
21438
- normalizeHookEvent,
21439
- negotiatePluginCapabilities,
21440
- mergeSettings,
21441
- mergeSessionMemorySensitivity,
21442
- mergeReviewFindings,
21443
- mergeAcceptedEvosCasesIntoKnowledgeQuery,
21444
- markTeamMessagesDelivered,
21445
- markOkfKnowledgeConceptStale,
21446
- markEvolutionRepoProposalApplied,
21447
- loadAgentContextDryRun,
21448
- loadAgentContext,
21449
- loadActiveOkfKnowledgeIndex,
21450
- listTeamRuns,
21451
- listTeamRoleBindings,
21452
- listTeamAgents,
21453
- listSessionMemoryStates,
21454
- listSessionEvidenceSegments,
21455
- listSegmentEvolutionTriggers,
21456
- listRegisteredProjects,
21457
- listProjectWorkspaces,
21458
- listProjectAliases,
21459
- listOkfKnowledgeConcepts,
21460
- listOkfKnowledgeChangeCandidates,
21461
- listObservabilityEvents,
21462
- listLearningReviewDecisions,
21463
- listLearningCandidates,
21464
- listEvolutionTriggers,
21465
- listEvolutionKnowledgeReviewHistory,
21466
- listEvolutionKnowledgeRecords,
21467
- listEvolutionEvosCases,
21468
- listEquivalentProjectKeys,
21469
- listDiscoveredProjects,
21470
- listCodeAgentTraceRefs,
21471
- lintOkfKnowledge,
21472
- lintLearningCandidates,
21473
- isMidTurnTeamAgentStatus,
21474
- isIdleTeamAgentStatus,
21475
- isEvolutionImprovementEvalRecommended,
21476
- isCapabilityUsable,
21477
- isActiveTeamAgentStatus,
21478
- inspectHistoricalSessionEvidenceRetention,
21479
- initializeCoreConfig,
21480
- hasContextInjectionReceipt,
21481
- hasConcreteRepoProposalChanges,
21482
- handleTeamsMcpMessage,
21483
- handleTeamsMcpLine,
21484
- handleHookRuntime,
21485
- handleDaemonRequest,
21486
- groupTriggersByRun,
21487
- getTeamsMcpTools,
21488
- getTeamStatus,
21489
- getTeamAttachCommand,
21490
- getEnabledPluginIds,
21491
- formatWorkflowPlan,
21492
- formatWorkflowList,
21493
- formatScopedKnowledgePromptBlock,
21494
- formatRetentionDryRun,
21495
- formatPackValidation,
21496
- formatPackInstallDryRun,
21497
- formatOkfKnowledgeQuery,
21498
- formatOkfKnowledgePlan,
21499
- formatOkfKnowledgeList,
21500
- formatOkfKnowledgeLint,
21501
- formatObservabilityEvents,
21502
- formatLearningReview,
21503
- formatLearningLint,
21504
- formatHookRuntimeOutput,
21505
- formatHookInstallDryRun,
21506
- formatHookEventDryRun,
21507
- formatEvolutionWriteResult,
21508
- formatEvolutionReviewSnapshot,
21509
- formatEvolutionProcessResult,
21510
- formatEvolutionDistillationBatch,
21511
- formatEvolutionAnalyzeResult,
21512
- formatEvolutionActivationResult,
21513
- formatCodexCapabilityVerificationArtifact,
21514
- formatAgentLoadedContextPromptBlock,
21515
- formatAgentContextDryRun,
21516
- findCandidateConflictOrDuplicate,
21517
- finalizeCuratedKnowledgePlan,
21518
- exports_triggers as evolutionTriggers,
21519
- exports_review as evolutionReview,
21520
- exports_processor as evolutionProcessor,
21521
- exports_knowledge as evolutionKnowledge,
21522
- exports_evidence as evolutionEvidence,
21523
- exports_control as evolutionControl,
21524
- exports_candidates as evolutionCandidates,
21525
- ensureTrajectoryImportStageDirectories,
21526
- ensurePrivateTrajectoryImportDirectory,
21527
- ensureOkfKnowledgeBase,
21528
- ensureDefaultTeamOverlay,
21529
- enqueueSegmentEvolutionTrigger,
21530
- enqueueEvolutionTrigger,
21531
- dryRunObservabilityRetentionCleanup,
21532
- discardFailedOkfKnowledgePlan,
21533
- diffOkfKnowledgeRuntimeProjections,
21534
- detectSessionMemorySensitivity,
21535
- deriveOkfKnowledgeFreshness,
21536
- decideOkfKnowledgeChange,
21537
- decideOkfKnowledgeCandidate,
21538
- createUnknownNegotiatedCapabilities,
21539
- createTrajectoryImportStableRecordKeyHash,
21540
- createTrajectoryImportSnapshotId,
21541
- createTrajectoryImportPreviewId,
21542
- createTrajectoryImportPreview,
21543
- createTrajectoryImportMaterializationPlan,
21544
- createTrajectoryImportIndexDigest,
21545
- createTrajectoryImportContentDigest,
21546
- createTrajectoryImportConfigHash,
21547
- createTraceLogEntry,
21548
- createTmuxRuntimeAdapter,
21549
- createTeamRunStore,
21550
- createTeamRoleRuntimeContext,
21551
- createSemanticPacketMessageKey,
21552
- createScopedKnowledgeContextPack,
21553
- createPluginRegistry,
21554
- createOkfKnowledgeVerificationSnapshot,
21555
- createOkfKnowledgeRuntimeProjectionFromConcept,
21556
- createOkfKnowledgeRuntimeProjectionFromCandidate,
21557
- createOkfKnowledgeRevision,
21558
- createOkfKnowledgePlanFromDistillationBatch,
21559
- createOkfKnowledgeChangeCandidate,
21560
- createObservabilityEvent,
21561
- createLexicalKnowledgeDocumentFromOkfConcept,
21562
- createLexicalKnowledgeDocumentFromEvosCase,
21563
- createLearningReviewDecisionRecord,
21564
- createLearningCandidate,
21565
- createHistoricalSessionEvidenceSegments,
21566
- createHistoricalSemanticEvidencePacket,
21567
- createEvolutionRepoProposal,
21568
- createEvolutionImprovementEval,
21569
- createEvolutionDistillationBatch,
21570
- createEvoDevExecutionEvent,
21571
- createDefaultTeamRuntimeSettings,
21572
- createDefaultSyncState,
21573
- createDefaultSettings,
21574
- createDefaultSessionMemoryPolicy,
21575
- createDefaultRegistry,
21576
- createDefaultMemorySettings,
21577
- createDefaultInstallState,
21578
- createDefaultHookSettings,
21579
- createDefaultEvolutionSettings,
21580
- createDefaultAgentPermissions,
21581
- createDebugLogEntry,
21582
- createDaemonStartPlan,
21583
- createCoreConfigStore,
21584
- createCodexCapabilityVerificationArtifact,
21585
- createCodeAgentTraceRef,
21586
- createCliLogEntry,
21587
- cleanupDaemonState,
21588
- classifySessionEvidenceSegment,
21589
- classifyOkfKnowledgeCandidate,
21590
- classifyCommandRisk,
21591
- checkProtectedZonePaths,
21592
- canonicalizeProjectKey,
21593
- buildSyncPlans,
21594
- buildLearningReviewEntries,
21595
- assertTrajectoryImportSourceLockOwned,
21596
- assertOkfKnowledgePlanContract,
21597
- applyTrajectoryImport,
21598
- applyStrictestAgentPermissions,
21599
- appendTraceLogEntry,
21600
- appendRawEvent,
21601
- appendObservabilityEvent,
21602
- appendLearningReviewDecision,
21603
- appendLearningCandidate,
21604
- appendEvoDevExecutionEvent,
21605
- appendDebugLogEntry,
21606
- appendCliLogEntry,
21607
- analyzeSessionEvidenceSegment,
21608
- analyzeEvolutionRun,
21609
- activateOkfKnowledgePlan,
21610
- activateEvolutionDistillationBatch,
21611
- activateCuratedSessionKnowledgePlan,
21612
- acquireTrajectoryImportSourceLock,
21613
- TmuxRuntimeAdapter,
21614
- TeamMessageBroker,
21615
- TRAJECTORY_IMPORT_PREVIEW_SCHEMA_VERSION,
21616
- TRAJECTORY_IMPORT_MATERIALIZER_VERSION,
21617
- TRAJECTORY_IMPORT_DIAGNOSTIC_POLICY_VERSION,
21618
- TEAM_INTERNAL_WAKE_SIGNAL,
21619
- SessionMemoryEvidenceError,
21620
- SESSION_MEMORY_CREDENTIAL_REDACTION,
21621
- ProjectRegistrationError,
21622
- PluginRegistryError,
21623
- PluginRegistry,
21624
- OkfKnowledgeChangeLockError,
21625
- OKF_KNOWLEDGE_RENDER_CONTRACT_VERSION,
21626
- NodeTeamRuntimeCommandRunner,
21627
- EvoDevConfigError,
21628
- EvoDevAssetError,
21316
+ CANONICAL_HOOK_EVENT_TYPES,
21629
21317
  DEFAULT_PROTECTED_ZONE_RULES,
21630
- CANONICAL_HOOK_EVENT_TYPES
21318
+ EvoDevAssetError,
21319
+ EvoDevConfigError,
21320
+ NodeTeamRuntimeCommandRunner,
21321
+ OKF_KNOWLEDGE_RENDER_CONTRACT_VERSION,
21322
+ OkfKnowledgeChangeLockError,
21323
+ PluginRegistry,
21324
+ PluginRegistryError,
21325
+ ProjectRegistrationError,
21326
+ SESSION_MEMORY_CREDENTIAL_REDACTION,
21327
+ SessionMemoryEvidenceError,
21328
+ TEAM_INTERNAL_WAKE_SIGNAL,
21329
+ TRAJECTORY_IMPORT_DIAGNOSTIC_POLICY_VERSION,
21330
+ TRAJECTORY_IMPORT_MATERIALIZER_VERSION,
21331
+ TRAJECTORY_IMPORT_PREVIEW_SCHEMA_VERSION,
21332
+ TeamMessageBroker,
21333
+ TmuxRuntimeAdapter,
21334
+ acquireTrajectoryImportSourceLock,
21335
+ activateCuratedSessionKnowledgePlan,
21336
+ activateEvolutionDistillationBatch,
21337
+ activateOkfKnowledgePlan,
21338
+ analyzeEvolutionRun,
21339
+ analyzeSessionEvidenceSegment,
21340
+ appendCliLogEntry,
21341
+ appendDebugLogEntry,
21342
+ appendEvoDevExecutionEvent,
21343
+ appendLearningCandidate,
21344
+ appendLearningReviewDecision,
21345
+ appendObservabilityEvent,
21346
+ appendRawEvent,
21347
+ appendTraceLogEntry,
21348
+ applyStrictestAgentPermissions,
21349
+ applyTrajectoryImport,
21350
+ assertOkfKnowledgePlanContract,
21351
+ assertTrajectoryImportSourceLockOwned,
21352
+ buildLearningReviewEntries,
21353
+ buildSyncPlans,
21354
+ canonicalizeProjectKey,
21355
+ checkProtectedZonePaths,
21356
+ classifyCommandRisk,
21357
+ classifyOkfKnowledgeCandidate,
21358
+ classifySessionEvidenceSegment,
21359
+ cleanupDaemonState,
21360
+ createCliLogEntry,
21361
+ createCodeAgentTraceRef,
21362
+ createCodexCapabilityVerificationArtifact,
21363
+ createCoreConfigStore,
21364
+ createDaemonStartPlan,
21365
+ createDebugLogEntry,
21366
+ createDefaultAgentPermissions,
21367
+ createDefaultEvolutionSettings,
21368
+ createDefaultHookSettings,
21369
+ createDefaultInstallState,
21370
+ createDefaultMemorySettings,
21371
+ createDefaultRegistry,
21372
+ createDefaultSessionMemoryPolicy,
21373
+ createDefaultSettings,
21374
+ createDefaultSyncState,
21375
+ createDefaultTeamRuntimeSettings,
21376
+ createEvoDevExecutionEvent,
21377
+ createEvolutionDistillationBatch,
21378
+ createEvolutionImprovementEval,
21379
+ createEvolutionRepoProposal,
21380
+ createHistoricalSemanticEvidencePacket,
21381
+ createHistoricalSessionEvidenceSegments,
21382
+ createLearningCandidate,
21383
+ createLearningReviewDecisionRecord,
21384
+ createLexicalKnowledgeDocumentFromEvosCase,
21385
+ createLexicalKnowledgeDocumentFromOkfConcept,
21386
+ createObservabilityEvent,
21387
+ createOkfKnowledgeChangeCandidate,
21388
+ createOkfKnowledgePlanFromDistillationBatch,
21389
+ createOkfKnowledgeRevision,
21390
+ createOkfKnowledgeRuntimeProjectionFromCandidate,
21391
+ createOkfKnowledgeRuntimeProjectionFromConcept,
21392
+ createOkfKnowledgeVerificationSnapshot,
21393
+ createPluginRegistry,
21394
+ createScopedKnowledgeContextPack,
21395
+ createSemanticPacketMessageKey,
21396
+ createTeamRoleRuntimeContext,
21397
+ createTeamRunStore,
21398
+ createTmuxRuntimeAdapter,
21399
+ createTraceLogEntry,
21400
+ createTrajectoryImportConfigHash,
21401
+ createTrajectoryImportContentDigest,
21402
+ createTrajectoryImportIndexDigest,
21403
+ createTrajectoryImportMaterializationPlan,
21404
+ createTrajectoryImportPreview,
21405
+ createTrajectoryImportPreviewId,
21406
+ createTrajectoryImportSnapshotId,
21407
+ createTrajectoryImportStableRecordKeyHash,
21408
+ createUnknownNegotiatedCapabilities,
21409
+ decideOkfKnowledgeCandidate,
21410
+ decideOkfKnowledgeChange,
21411
+ deriveOkfKnowledgeFreshness,
21412
+ detectSessionMemorySensitivity,
21413
+ diffOkfKnowledgeRuntimeProjections,
21414
+ discardFailedOkfKnowledgePlan,
21415
+ dryRunObservabilityRetentionCleanup,
21416
+ enqueueEvolutionTrigger,
21417
+ enqueueSegmentEvolutionTrigger,
21418
+ ensureDefaultTeamOverlay,
21419
+ ensureOkfKnowledgeBase,
21420
+ ensurePrivateTrajectoryImportDirectory,
21421
+ ensureTrajectoryImportStageDirectories,
21422
+ exports_candidates as evolutionCandidates,
21423
+ exports_control as evolutionControl,
21424
+ exports_evidence as evolutionEvidence,
21425
+ exports_knowledge as evolutionKnowledge,
21426
+ exports_processor as evolutionProcessor,
21427
+ exports_review as evolutionReview,
21428
+ exports_triggers as evolutionTriggers,
21429
+ finalizeCuratedKnowledgePlan,
21430
+ findCandidateConflictOrDuplicate,
21431
+ formatAgentContextDryRun,
21432
+ formatAgentLoadedContextPromptBlock,
21433
+ formatCodexCapabilityVerificationArtifact,
21434
+ formatEvolutionActivationResult,
21435
+ formatEvolutionAnalyzeResult,
21436
+ formatEvolutionDistillationBatch,
21437
+ formatEvolutionProcessResult,
21438
+ formatEvolutionReviewSnapshot,
21439
+ formatEvolutionWriteResult,
21440
+ formatHookEventDryRun,
21441
+ formatHookInstallDryRun,
21442
+ formatHookRuntimeOutput,
21443
+ formatLearningLint,
21444
+ formatLearningReview,
21445
+ formatObservabilityEvents,
21446
+ formatOkfKnowledgeLint,
21447
+ formatOkfKnowledgeList,
21448
+ formatOkfKnowledgePlan,
21449
+ formatOkfKnowledgeQuery,
21450
+ formatPackInstallDryRun,
21451
+ formatPackValidation,
21452
+ formatRetentionDryRun,
21453
+ formatScopedKnowledgePromptBlock,
21454
+ formatWorkflowList,
21455
+ formatWorkflowPlan,
21456
+ getEnabledPluginIds,
21457
+ getTeamAttachCommand,
21458
+ getTeamStatus,
21459
+ getTeamsMcpTools,
21460
+ groupTriggersByRun,
21461
+ handleDaemonRequest,
21462
+ handleHookRuntime,
21463
+ handleTeamsMcpLine,
21464
+ handleTeamsMcpMessage,
21465
+ hasConcreteRepoProposalChanges,
21466
+ hasContextInjectionReceipt,
21467
+ initializeCoreConfig,
21468
+ inspectHistoricalSessionEvidenceRetention,
21469
+ isActiveTeamAgentStatus,
21470
+ isCapabilityUsable,
21471
+ isEvolutionImprovementEvalRecommended,
21472
+ isIdleTeamAgentStatus,
21473
+ isMidTurnTeamAgentStatus,
21474
+ lintLearningCandidates,
21475
+ lintOkfKnowledge,
21476
+ listCodeAgentTraceRefs,
21477
+ listDiscoveredProjects,
21478
+ listEquivalentProjectKeys,
21479
+ listEvolutionEvosCases,
21480
+ listEvolutionKnowledgeRecords,
21481
+ listEvolutionKnowledgeReviewHistory,
21482
+ listEvolutionTriggers,
21483
+ listLearningCandidates,
21484
+ listLearningReviewDecisions,
21485
+ listObservabilityEvents,
21486
+ listOkfKnowledgeChangeCandidates,
21487
+ listOkfKnowledgeConcepts,
21488
+ listProjectAliases,
21489
+ listProjectWorkspaces,
21490
+ listRegisteredProjects,
21491
+ listSegmentEvolutionTriggers,
21492
+ listSessionEvidenceSegments,
21493
+ listSessionMemoryStates,
21494
+ listTeamAgents,
21495
+ listTeamRoleBindings,
21496
+ listTeamRuns,
21497
+ loadActiveOkfKnowledgeIndex,
21498
+ loadAgentContext,
21499
+ loadAgentContextDryRun,
21500
+ markEvolutionRepoProposalApplied,
21501
+ markOkfKnowledgeConceptStale,
21502
+ markTeamMessagesDelivered,
21503
+ mergeAcceptedEvosCasesIntoKnowledgeQuery,
21504
+ mergeReviewFindings,
21505
+ mergeSessionMemorySensitivity,
21506
+ mergeSettings,
21507
+ negotiatePluginCapabilities,
21508
+ normalizeHookEvent,
21509
+ normalizePackPermissions,
21510
+ normalizePackagePath,
21511
+ parseAgentManifest,
21512
+ parseAgentProfile,
21513
+ parseCodeAgentTraceRef,
21514
+ parseHookSettings,
21515
+ parseInstallState,
21516
+ parseKnowledgeDistillationOutput,
21517
+ parseLearningCandidate,
21518
+ parseLearningReviewDecisionRecord,
21519
+ parseOkfKnowledgeChangeCandidate,
21520
+ parsePackManifest,
21521
+ parseRegistry,
21522
+ parseSessionMemoryPolicy,
21523
+ parseSettings,
21524
+ parseSkillManifest,
21525
+ parseSyncState,
21526
+ parseTeamDefinitionMarkdown,
21527
+ parseTeamRoleDefinition,
21528
+ parseWorkflowManifest,
21529
+ pathExists8 as pathExists,
21530
+ planPackInstallDryRun,
21531
+ planWorkflow,
21532
+ previewLegacyGeneratedKnowledgeCleanup,
21533
+ previewOkfKnowledgeChangeDecision,
21534
+ processEvolutionTriggers,
21535
+ purgeExpiredHistoricalSessionEvidence,
21536
+ quarantineLegacyGeneratedKnowledge,
21537
+ queryOkfKnowledge,
21538
+ queryScopedOkfKnowledgeContext,
21539
+ rankKnowledgeContextItems,
21540
+ readAgentProfile,
21541
+ readCodeAgentTraceRef,
21542
+ readCodexCapabilityVerificationArtifact,
21543
+ readDaemonLock,
21544
+ readDaemonToken,
21545
+ readEvolutionKnowledgeRecordById,
21546
+ readEvolutionRepoProposalById,
21547
+ readEvolutionReviewSnapshot,
21548
+ readFailedOkfKnowledgePlan,
21549
+ readFailedOkfKnowledgePlanArtifact,
21550
+ readLearningCandidates,
21551
+ readLearningReviewDecisions,
21552
+ readLineRange,
21553
+ readOkfKnowledgeChangeCandidate,
21554
+ readOkfKnowledgeConcept,
21555
+ readPendingTeamMessagesForRole,
21556
+ readRuntimeInjectionSettings,
21557
+ readSessionCursor,
21558
+ readSessionEvidenceSegment,
21559
+ readSessionState,
21560
+ readTeamAgentDefinition,
21561
+ readTeamAgentSummary,
21562
+ readTrajectoryImportIndex,
21563
+ readTrajectoryImportManifest,
21564
+ readTrajectoryImportManifestAtPath,
21565
+ readTrajectoryImportMaterializationProgress,
21566
+ readTrajectoryImportPreviousSnapshot,
21567
+ readTrajectoryImportReceipt,
21568
+ readTrajectoryImportSnapshot,
21569
+ rebuildOkfKnowledgeIndexes,
21570
+ reconcileTeamRun,
21571
+ recordCodeAgentTraceRefFromHook,
21572
+ recordDiscoveredProject,
21573
+ recordTeamAgentNativeSession,
21574
+ redactSessionMemoryCredentialText,
21575
+ redactSessionMemoryCredentials,
21576
+ registerDiscoveredProject,
21577
+ releaseTrajectoryImportSourceLock,
21578
+ renderMainTeamOverlayContext,
21579
+ renderRoleAgentDefinitionContext,
21580
+ replaceOkfKnowledgeChangeCandidate,
21581
+ resolveCodeAgentTraceRefPaths,
21582
+ resolveCodexCapabilityArtifactPath,
21583
+ resolveContextInjectionReceiptPath,
21584
+ resolveDaemonPaths,
21585
+ resolveEvoDevLogPaths,
21586
+ resolveEvoDevPaths,
21587
+ resolveEvolutionPaths,
21588
+ resolveEvolutionTriggerDecision,
21589
+ resolveHookRuntimeSessionPaths,
21590
+ resolveLearningCandidateQueuePath,
21591
+ resolveLearningDecisionPath,
21592
+ resolveObservabilityStorePaths,
21593
+ resolveOkfKnowledgePaths,
21594
+ resolvePathProjectLogKey,
21595
+ resolveProjectLogIdentity,
21596
+ resolveProjectLogKey,
21597
+ resolveProjectRegistryPaths,
21598
+ resolveProjectWorkspaceFromCwd,
21599
+ resolveSegmentEvolutionTriggerPath,
21600
+ resolveSessionMemoryPaths,
21601
+ resolveTeamAgentReference,
21602
+ resolveTeamOverlay,
21603
+ resolveTeamRole,
21604
+ resolveTeamRunPaths,
21605
+ resolveTraceSessionKey,
21606
+ resolveTraceTeamContext,
21607
+ resolveTrajectoryImportPaths,
21608
+ resolveTrajectoryImportSourcePaths,
21609
+ resumeFailedOkfKnowledgePlan,
21610
+ resumeTeamRun,
21611
+ revokeOkfKnowledgeConcept,
21612
+ runDaemonForeground,
21613
+ runPluginConformance,
21614
+ runSync,
21615
+ runTeamsMcpStdioServer,
21616
+ sanitizeProposedChange,
21617
+ scanAgentAssets,
21618
+ scanAssets,
21619
+ scanSkillAssets,
21620
+ scanWorkflowManifests,
21621
+ schedulePendingTeamMessageDelivery,
21622
+ scoreLexicalKnowledgeDocument,
21623
+ scoreOkfKnowledgeCandidate,
21624
+ sendTeamMessage,
21625
+ setTeamRoleBinding,
21626
+ spawnTeamRole,
21627
+ stableTrajectoryImportJson,
21628
+ stageTrajectoryImport,
21629
+ stageTrajectoryImportWithLock,
21630
+ startTeamRun,
21631
+ stopTeamRole,
21632
+ stopTeamRun,
21633
+ supersedeEvolutionRepoProposal,
21634
+ supersedeOkfKnowledgeConcept,
21635
+ unsetTeamRoleBinding,
21636
+ updateEvolutionKnowledgeReviewState,
21637
+ updateEvolutionRepoProposalImprovementEval,
21638
+ updateEvolutionRepoProposalReviewState,
21639
+ updateSegmentTriggers,
21640
+ updateSessionEvidenceSegmentLifecycle,
21641
+ updateSessionMemoryFromHook,
21642
+ updateTeamAgentHookState,
21643
+ updateTriggers,
21644
+ validateAgentOutput,
21645
+ validateCodexCapabilityVerificationArtifact,
21646
+ validateDaemonBindHost,
21647
+ validateEvolutionDistillationBatch,
21648
+ validateEvolutionEvidenceWindow,
21649
+ validateEvolutionKnowledgeRecord,
21650
+ validateEvolutionRepoProposal,
21651
+ validateLearningCandidate,
21652
+ validateLearningReviewDecisionRecord,
21653
+ validateObservabilityEvent,
21654
+ validateOkfKnowledgePlanContract,
21655
+ validatePack,
21656
+ withEvolutionReviewDecisionLock,
21657
+ withOkfKnowledgeChangeLock,
21658
+ withTrajectoryImportSourceLock,
21659
+ writeCodeAgentTraceRef,
21660
+ writeCodexCapabilityVerificationArtifact,
21661
+ writeContextInjectionReceipt,
21662
+ writeDaemonState,
21663
+ writeEvolutionDistillationBatch,
21664
+ writeEvolutionRepoProposal,
21665
+ writeFailedOkfKnowledgePlanArtifact,
21666
+ writeHistoricalSessionEvidenceSegment,
21667
+ writeHistoricalSessionStateAndIndex,
21668
+ writeImmutableTrajectoryImportIndex,
21669
+ writeImmutableTrajectoryImportReceipt,
21670
+ writeJson,
21671
+ writeOkfKnowledgeChangeCandidate,
21672
+ writeSessionEvidenceSegmentAtomic,
21673
+ writeSessionIndex,
21674
+ writeTrajectoryImportManifest,
21675
+ writeTrajectoryImportMaterializationProgress
21631
21676
  };
@@ -248,18 +248,18 @@ function getEnabledPluginIds(settings) {
248
248
  return Object.entries(settings.plugins).filter(([, pluginSettings]) => pluginSettings.enabled).map(([pluginId]) => pluginId).sort((left, right) => left.localeCompare(right));
249
249
  }
250
250
  export {
251
- writeCodexCapabilityVerificationArtifact,
252
- validateCodexCapabilityVerificationArtifact,
253
- runPluginConformance,
254
- resolveCodexCapabilityArtifactPath,
255
- readCodexCapabilityVerificationArtifact,
256
- negotiatePluginCapabilities,
257
- isCapabilityUsable,
258
- getEnabledPluginIds,
259
- formatCodexCapabilityVerificationArtifact,
260
- createUnknownNegotiatedCapabilities,
261
- createPluginRegistry,
262
- createCodexCapabilityVerificationArtifact,
251
+ PluginRegistry,
263
252
  PluginRegistryError,
264
- PluginRegistry
253
+ createCodexCapabilityVerificationArtifact,
254
+ createPluginRegistry,
255
+ createUnknownNegotiatedCapabilities,
256
+ formatCodexCapabilityVerificationArtifact,
257
+ getEnabledPluginIds,
258
+ isCapabilityUsable,
259
+ negotiatePluginCapabilities,
260
+ readCodexCapabilityVerificationArtifact,
261
+ resolveCodexCapabilityArtifactPath,
262
+ runPluginConformance,
263
+ validateCodexCapabilityVerificationArtifact,
264
+ writeCodexCapabilityVerificationArtifact
265
265
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evo-dev/core",
3
- "version": "0.0.1-alpha.18",
3
+ "version": "0.0.1-alpha.19",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,6 +14,7 @@ import type {
14
14
  EvolutionProcessProgress,
15
15
  EvolutionProcessResult,
16
16
  EvolutionTriggerStatus,
17
+ SegmentEvolutionTriggerRecord,
17
18
  } from "../schema.ts";
18
19
  import { sanitizeText } from "../shared.ts";
19
20
  import {
@@ -33,6 +34,8 @@ const PROCESS_LOCK_STALE_MS = 5 * 60 * 1000;
33
34
  const PROCESS_LOCK_HEARTBEAT_MS = 30 * 1000;
34
35
  const PROCESSING_TRIGGER_STALE_MS = PROCESS_LOCK_STALE_MS;
35
36
  const MAX_TRANSIENT_TRIGGER_ATTEMPTS = 3;
37
+ const LOCAL_SEGMENT_SCAN_MULTIPLIER = 20;
38
+ const MAX_LOCAL_SEGMENT_SCAN_LIMIT = 500;
36
39
 
37
40
  interface EvolutionProcessLock {
38
41
  path: string;
@@ -74,18 +77,28 @@ export async function processEvolutionTriggers(
74
77
  if (!dryRun) {
75
78
  await reconcileRetryableEvolutionTriggers(input, now);
76
79
  }
77
- const pendingSegments =
80
+ const listedPendingSegments =
78
81
  dryRun || input.distillSessionKnowledge !== undefined
79
- ? (
80
- await listSegmentEvolutionTriggers({
81
- homeDir: input.homeDir,
82
- projectKey: input.projectKey,
83
- runId: input.runId,
84
- status: "pending",
85
- })
86
- ).slice(0, limit)
82
+ ? await listSegmentEvolutionTriggers({
83
+ homeDir: input.homeDir,
84
+ projectKey: input.projectKey,
85
+ runId: input.runId,
86
+ status: "pending",
87
+ })
87
88
  : [];
88
- const remainingLimit = Math.max(0, limit - pendingSegments.length);
89
+ const segmentSelection = dryRun
90
+ ? {
91
+ triggers: listedPendingSegments.slice(0, limit),
92
+ semanticCandidates: Math.min(listedPendingSegments.length, limit),
93
+ }
94
+ : await selectPendingSegmentTriggers({
95
+ homeDir: input.homeDir,
96
+ triggers: listedPendingSegments,
97
+ now,
98
+ semanticLimit: limit,
99
+ });
100
+ const pendingSegments = segmentSelection.triggers;
101
+ const remainingLimit = Math.max(0, limit - segmentSelection.semanticCandidates);
89
102
  const pending =
90
103
  remainingLimit === 0
91
104
  ? []
@@ -350,6 +363,55 @@ export async function processEvolutionTriggers(
350
363
  }
351
364
  }
352
365
 
366
+ async function selectPendingSegmentTriggers(input: {
367
+ homeDir: string;
368
+ triggers: SegmentEvolutionTriggerRecord[];
369
+ now: string;
370
+ semanticLimit: number;
371
+ }): Promise<{
372
+ triggers: SegmentEvolutionTriggerRecord[];
373
+ semanticCandidates: number;
374
+ }> {
375
+ const scanLimit = Math.max(
376
+ input.semanticLimit,
377
+ Math.min(input.semanticLimit * LOCAL_SEGMENT_SCAN_MULTIPLIER, MAX_LOCAL_SEGMENT_SCAN_LIMIT),
378
+ );
379
+ const selected: SegmentEvolutionTriggerRecord[] = [];
380
+ let semanticCandidates = 0;
381
+
382
+ for (const trigger of input.triggers.slice(0, scanLimit)) {
383
+ let requiresSemanticDistillation = true;
384
+ try {
385
+ const segment = await readSessionEvidenceSegment({
386
+ homeDir: input.homeDir,
387
+ projectKey: trigger.projectKey,
388
+ sessionKey: trigger.sessionKey,
389
+ segmentId: trigger.segmentId,
390
+ });
391
+ const existingBatchId = segment.lifecycle.consumedByBatchIds.at(-1);
392
+ if (segment.lifecycle.status === "distilled" && existingBatchId !== undefined) {
393
+ requiresSemanticDistillation = false;
394
+ } else {
395
+ const analysis = analyzeSessionEvidenceSegment({
396
+ homeDir: input.homeDir,
397
+ segment,
398
+ now: input.now,
399
+ });
400
+ requiresSemanticDistillation =
401
+ analysis.evidenceWindow?.triggerPolicy.distillRecommended === true;
402
+ }
403
+ } catch {
404
+ // Let the normal processor record the malformed or unavailable segment as a failed attempt.
405
+ }
406
+
407
+ if (requiresSemanticDistillation && semanticCandidates >= input.semanticLimit) break;
408
+ selected.push(trigger);
409
+ if (requiresSemanticDistillation) semanticCandidates += 1;
410
+ }
411
+
412
+ return { triggers: selected, semanticCandidates };
413
+ }
414
+
353
415
  async function reportProgress(
354
416
  input: EvolutionProcessInput,
355
417
  result: EvolutionProcessResult,