exports/agents-ictm
nexus-agents - ICTM Module Exports
AOrchestra ICTM (Instructions, Context, Tools, Model) pattern for dynamic sub-agent creation.
Split from agents.ts to stay under the 400-line limit.
See
Issue #756
Interfaces
ContextFilter
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:29
Context filter configuration. Controls what information flows to a sub-agent to prevent long-horizon degradation (AOrchestra Section 3.2).
Properties
includeHistory
includeHistory: boolean;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:35
Whether to include conversation history
maxTokens
maxTokens: number;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:31
Maximum token budget for curated context
pruneStrategy
pruneStrategy: ContextPruneStrategy;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:37
Strategy for pruning excess context
relevanceThreshold
relevanceThreshold: number;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:33
Minimum relevance score (0-1) to include context items
CuratedContextItem
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:142
A context item that can be filtered and ranked.
Properties
content
content: string;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:146
Text content
id
id: string;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:144
Unique item identifier
relevance
relevance: number;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:152
Relevance score (0-1) assigned during curation
source
source: "knowledge" | "result" | "task" | "history";
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:154
Source category
timestamp
timestamp: number;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:150
Timestamp (ms since epoch) for recency scoring
tokenCount
tokenCount: number;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:148
Estimated token count
CurationResult
Defined in: packages/nexus-agents/src/agents/ictm/context-curator.ts:131
Curated context result.
Properties
filteredCount
filteredCount: number;
Defined in: packages/nexus-agents/src/agents/ictm/context-curator.ts:137
Number of items filtered out
items
items: CuratedContextItem[];
Defined in: packages/nexus-agents/src/agents/ictm/context-curator.ts:133
Selected context items, ordered by score (descending)
totalTokens
totalTokens: number;
Defined in: packages/nexus-agents/src/agents/ictm/context-curator.ts:135
Total tokens used
trimmedCount
trimmedCount: number;
Defined in: packages/nexus-agents/src/agents/ictm/context-curator.ts:139
Number of items trimmed for token budget
ICTMConfig
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:101
ICTM configuration tuple.
Each sub-agent receives a unique ICTM config tailored to its subtask, enabling dynamic specialization instead of static expert roles.
Example
const config: ICTMConfig = {
instructions: 'Analyze the authentication module for SQL injection vulnerabilities.',
context: { maxTokens: 8000, relevanceThreshold: 0.7, includeHistory: false, pruneStrategy: 'importance' },
tools: { capabilities: ['code_review', 'research'], restrictions: ['code_generation'] },
model: { temperature: 0.1, reasoning: 'extended' },
};
Properties
context
context: ContextFilter;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:105
Context curation filter
instructions
instructions: string;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:103
Task-specific instructions (extends the base system prompt)
metadata?
optional metadata?: Record<string, unknown>;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:111
Optional metadata for tracking/extensions
model
model: ModelSelection;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:109
Model configuration
tools
tools: ToolSet;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:107
Selected tool capabilities
ICTMInferenceResult
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:121
Result of ICTM inference — the inferred config plus reasoning.
Properties
confidence
confidence: number;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:132
Confidence in the inference (0-1)
config
config: ICTMConfig;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:123
Inferred ICTM configuration
reasoning
reasoning: {
context: string;
instructions: string;
model: string;
tools: string;
};
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:125
Reasoning for each ICTM component
context
context: string;
instructions
instructions: string;
model
model: string;
tools
tools: string;
ModelSelection
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:68
Model selection for a sub-agent. Enables per-subtask model optimization (performance-cost tradeoff).
Properties
maxTokens?
optional maxTokens?: number;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:76
Maximum response tokens
modelId?
optional modelId?: string;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:72
Specific model ID
provider?
optional provider?: string;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:70
Provider ID (e.g., ‘anthropic’, ‘openai’)
reasoning?
optional reasoning?: ReasoningDepth;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:78
Reasoning depth hint
temperature?
optional temperature?: number;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:74
Generation temperature (0-2)
ToolSet
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:48
Tool set configuration for a sub-agent. Restricts capabilities to only what the subtask needs.
Properties
capabilities
capabilities: string[];
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:50
Allowed capabilities (from AgentCapability values)
restrictions?
optional restrictions?: string[];
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:52
Explicit tool restrictions — tool names to exclude
Type Aliases
ContextPruneStrategy
type ContextPruneStrategy = "recency" | "importance" | "hybrid";
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:22
Context pruning strategy for sub-agent context curation.
ReasoningDepth
type ReasoningDepth = "minimal" | "standard" | "extended";
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:62
Reasoning depth hint for model selection.
Variables
ContextFilterSchema
const ContextFilterSchema: ZodObject<{
includeHistory: ZodBoolean;
maxTokens: ZodNumber;
pruneStrategy: ZodEnum<{
hybrid: "hybrid";
importance: "importance";
recency: "recency";
}>;
relevanceThreshold: ZodNumber;
}, $strip>;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:163
ContextPruneStrategySchema
const ContextPruneStrategySchema: ZodEnum<{
hybrid: "hybrid";
importance: "importance";
recency: "recency";
}>;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:161
ICTMConfigSchema
const ICTMConfigSchema: ZodObject<{
context: ZodObject<{
includeHistory: ZodBoolean;
maxTokens: ZodNumber;
pruneStrategy: ZodEnum<{
hybrid: "hybrid";
importance: "importance";
recency: "recency";
}>;
relevanceThreshold: ZodNumber;
}, $strip>;
instructions: ZodString;
metadata: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
model: ZodObject<{
maxTokens: ZodOptional<ZodNumber>;
modelId: ZodOptional<ZodString>;
provider: ZodOptional<ZodString>;
reasoning: ZodOptional<ZodEnum<{
extended: "extended";
minimal: "minimal";
standard: "standard";
}>>;
temperature: ZodOptional<ZodNumber>;
}, $strip>;
tools: ZodObject<{
capabilities: ZodArray<ZodString>;
restrictions: ZodOptional<ZodArray<ZodString>>;
}, $strip>;
}, $strip>;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:185
ICTMInferenceResultSchema
const ICTMInferenceResultSchema: ZodObject<{
confidence: ZodNumber;
config: ZodObject<{
context: ZodObject<{
includeHistory: ZodBoolean;
maxTokens: ZodNumber;
pruneStrategy: ZodEnum<{
hybrid: "hybrid";
importance: "importance";
recency: "recency";
}>;
relevanceThreshold: ZodNumber;
}, $strip>;
instructions: ZodString;
metadata: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
model: ZodObject<{
maxTokens: ZodOptional<ZodNumber>;
modelId: ZodOptional<ZodString>;
provider: ZodOptional<ZodString>;
reasoning: ZodOptional<ZodEnum<{
extended: "extended";
minimal: "minimal";
standard: "standard";
}>>;
temperature: ZodOptional<ZodNumber>;
}, $strip>;
tools: ZodObject<{
capabilities: ZodArray<ZodString>;
restrictions: ZodOptional<ZodArray<ZodString>>;
}, $strip>;
}, $strip>;
reasoning: ZodObject<{
context: ZodString;
instructions: ZodString;
model: ZodString;
tools: ZodString;
}, $strip>;
}, $strip>;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:193
ModelSelectionSchema
const ModelSelectionSchema: ZodObject<{
maxTokens: ZodOptional<ZodNumber>;
modelId: ZodOptional<ZodString>;
provider: ZodOptional<ZodString>;
reasoning: ZodOptional<ZodEnum<{
extended: "extended";
minimal: "minimal";
standard: "standard";
}>>;
temperature: ZodOptional<ZodNumber>;
}, $strip>;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:177
ReasoningDepthSchema
const ReasoningDepthSchema: ZodEnum<{
extended: "extended";
minimal: "minimal";
standard: "standard";
}>;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:175
ToolSetSchema
const ToolSetSchema: ZodObject<{
capabilities: ZodArray<ZodString>;
restrictions: ZodOptional<ZodArray<ZodString>>;
}, $strip>;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-types.ts:170
Functions
createContextItem()
function createContextItem(
id,
content,
source,
relevance,
timestamp?
): CuratedContextItem;
Defined in: packages/nexus-agents/src/agents/ictm/context-curator.ts:196
Create a context item from raw text.
Parameters
id
string
content
string
source
"knowledge" | "result" | "task" | "history"
relevance
number
timestamp?
number
Returns
curateContext()
function curateContext(
items,
filter,
nowMs?
): CurationResult;
Defined in: packages/nexus-agents/src/agents/ictm/context-curator.ts:152
Curate context items according to a context filter.
Pipeline: filter by history → filter by relevance → rank by strategy → trim to budget.
Parameters
items
readonly CuratedContextItem[]
All available context items
filter
Context filter configuration from ICTM config
nowMs?
number
Current timestamp in ms (defaults to Date.now())
Returns
Curated result with selected items and stats
estimateTokens()
function estimateTokens(text): number;
Defined in: packages/nexus-agents/src/agents/ictm/context-curator.ts:189
Estimate token count for a text string. Uses a simple char/4 heuristic (same as preference-router-extractor).
Parameters
text
string
Returns
number
getRecommendedRole()
function getRecommendedRole(taskType): string;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-factory.ts:278
Get the recommended expert role for a task type. Falls back to ‘code_expert’ for unknown types.
Parameters
taskType
string
Returns
string
ictmToExpertConfig()
function ictmToExpertConfig(ictm, subtaskId): ExpertConfig;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-factory.ts:62
Convert an ICTM config to an ExpertConfig for the existing expert factory.
This bridges the ICTM pattern to the existing expert creation pipeline, enabling backward compatibility with all existing expert infrastructure.
Parameters
ictm
subtaskId
string
Returns
inferICTM()
function inferICTM(subtask, analysis): ICTMInferenceResult;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-factory.ts:242
Infer an optimal ICTM configuration from a subtask and its parent task analysis.
This is the core intelligence of the ICTM pattern — it analyzes the subtask to determine the best instructions, context filter, tools, and model config.
Parameters
subtask
The subtask to create a sub-agent for
analysis
Analysis of the parent task
Returns
ICTMInferenceResult with config and reasoning
scoreByHybrid()
function scoreByHybrid(item, nowMs): number;
Defined in: packages/nexus-agents/src/agents/ictm/context-curator.ts:46
Score an item using hybrid strategy (weighted average of recency + importance).
Parameters
item
nowMs
number
Returns
number
scoreByImportance()
function scoreByImportance(item): number;
Defined in: packages/nexus-agents/src/agents/ictm/context-curator.ts:39
Score an item by importance (uses pre-assigned relevance).
Parameters
item
Returns
number
scoreByRecency()
function scoreByRecency(item, nowMs): number;
Defined in: packages/nexus-agents/src/agents/ictm/context-curator.ts:31
Score an item by recency using exponential decay. More recent items score higher.
Parameters
item
nowMs
number
Returns
number
validateICTM()
function validateICTM(config): ICTMConfig | null;
Defined in: packages/nexus-agents/src/agents/ictm/ictm-factory.ts:269
Validate an ICTM config using Zod schema. Returns the validated config or null on failure.
Parameters
config
unknown
Returns
ICTMConfig | null