agentx-sdk 0.1.0
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/README.md +561 -0
- package/dist/agent.d.ts +105 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +690 -0
- package/dist/agent.js.map +1 -0
- package/dist/config/config.d.ts +346 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +93 -0
- package/dist/config/config.js.map +1 -0
- package/dist/contracts/entities/agent-event.d.ts +97 -0
- package/dist/contracts/entities/agent-event.d.ts.map +1 -0
- package/dist/contracts/entities/agent-event.js +2 -0
- package/dist/contracts/entities/agent-event.js.map +1 -0
- package/dist/contracts/entities/agent-skill.d.ts +59 -0
- package/dist/contracts/entities/agent-skill.d.ts.map +1 -0
- package/dist/contracts/entities/agent-skill.js +2 -0
- package/dist/contracts/entities/agent-skill.js.map +1 -0
- package/dist/contracts/entities/agent-tool.d.ts +42 -0
- package/dist/contracts/entities/agent-tool.d.ts.map +1 -0
- package/dist/contracts/entities/agent-tool.js +2 -0
- package/dist/contracts/entities/agent-tool.js.map +1 -0
- package/dist/contracts/entities/chat-message.d.ts +13 -0
- package/dist/contracts/entities/chat-message.d.ts.map +1 -0
- package/dist/contracts/entities/chat-message.js +2 -0
- package/dist/contracts/entities/chat-message.js.map +1 -0
- package/dist/contracts/entities/content-part.d.ts +16 -0
- package/dist/contracts/entities/content-part.d.ts.map +1 -0
- package/dist/contracts/entities/content-part.js +2 -0
- package/dist/contracts/entities/content-part.js.map +1 -0
- package/dist/contracts/entities/execution-context.d.ts +9 -0
- package/dist/contracts/entities/execution-context.d.ts.map +1 -0
- package/dist/contracts/entities/execution-context.js +2 -0
- package/dist/contracts/entities/execution-context.js.map +1 -0
- package/dist/contracts/entities/index.d.ts +11 -0
- package/dist/contracts/entities/index.d.ts.map +1 -0
- package/dist/contracts/entities/index.js +2 -0
- package/dist/contracts/entities/index.js.map +1 -0
- package/dist/contracts/entities/knowledge.d.ts +21 -0
- package/dist/contracts/entities/knowledge.d.ts.map +1 -0
- package/dist/contracts/entities/knowledge.js +2 -0
- package/dist/contracts/entities/knowledge.js.map +1 -0
- package/dist/contracts/entities/stores.d.ts +18 -0
- package/dist/contracts/entities/stores.d.ts.map +1 -0
- package/dist/contracts/entities/stores.js +2 -0
- package/dist/contracts/entities/stores.js.map +1 -0
- package/dist/contracts/entities/token-usage.d.ts +7 -0
- package/dist/contracts/entities/token-usage.d.ts.map +1 -0
- package/dist/contracts/entities/token-usage.js +2 -0
- package/dist/contracts/entities/token-usage.js.map +1 -0
- package/dist/contracts/entities/tool-call.d.ts +16 -0
- package/dist/contracts/entities/tool-call.d.ts.map +1 -0
- package/dist/contracts/entities/tool-call.js +2 -0
- package/dist/contracts/entities/tool-call.js.map +1 -0
- package/dist/contracts/enums/index.d.ts +21 -0
- package/dist/contracts/enums/index.d.ts.map +1 -0
- package/dist/contracts/enums/index.js +8 -0
- package/dist/contracts/enums/index.js.map +1 -0
- package/dist/contracts/index.d.ts +3 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +3 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/core/compaction/autocompact.d.ts +18 -0
- package/dist/core/compaction/autocompact.d.ts.map +1 -0
- package/dist/core/compaction/autocompact.js +68 -0
- package/dist/core/compaction/autocompact.js.map +1 -0
- package/dist/core/compaction/microcompact.d.ts +20 -0
- package/dist/core/compaction/microcompact.d.ts.map +1 -0
- package/dist/core/compaction/microcompact.js +38 -0
- package/dist/core/compaction/microcompact.js.map +1 -0
- package/dist/core/compaction/snip-compact.d.ts +22 -0
- package/dist/core/compaction/snip-compact.d.ts.map +1 -0
- package/dist/core/compaction/snip-compact.js +61 -0
- package/dist/core/compaction/snip-compact.js.map +1 -0
- package/dist/core/compaction/tool-result-budget.d.ts +24 -0
- package/dist/core/compaction/tool-result-budget.d.ts.map +1 -0
- package/dist/core/compaction/tool-result-budget.js +67 -0
- package/dist/core/compaction/tool-result-budget.js.map +1 -0
- package/dist/core/context-analysis.d.ts +24 -0
- package/dist/core/context-analysis.d.ts.map +1 -0
- package/dist/core/context-analysis.js +37 -0
- package/dist/core/context-analysis.js.map +1 -0
- package/dist/core/context-builder.d.ts +25 -0
- package/dist/core/context-builder.d.ts.map +1 -0
- package/dist/core/context-builder.js +108 -0
- package/dist/core/context-builder.js.map +1 -0
- package/dist/core/conversation-manager.d.ts +19 -0
- package/dist/core/conversation-manager.d.ts.map +1 -0
- package/dist/core/conversation-manager.js +62 -0
- package/dist/core/conversation-manager.js.map +1 -0
- package/dist/core/execution-context.d.ts +6 -0
- package/dist/core/execution-context.d.ts.map +1 -0
- package/dist/core/execution-context.js +14 -0
- package/dist/core/execution-context.js.map +1 -0
- package/dist/core/loop-deps.d.ts +15 -0
- package/dist/core/loop-deps.d.ts.map +1 -0
- package/dist/core/loop-deps.js +8 -0
- package/dist/core/loop-deps.js.map +1 -0
- package/dist/core/loop-types.d.ts +34 -0
- package/dist/core/loop-types.d.ts.map +1 -0
- package/dist/core/loop-types.js +15 -0
- package/dist/core/loop-types.js.map +1 -0
- package/dist/core/message-normalize.d.ts +18 -0
- package/dist/core/message-normalize.d.ts.map +1 -0
- package/dist/core/message-normalize.js +69 -0
- package/dist/core/message-normalize.js.map +1 -0
- package/dist/core/prompt-builders.d.ts +36 -0
- package/dist/core/prompt-builders.d.ts.map +1 -0
- package/dist/core/prompt-builders.js +89 -0
- package/dist/core/prompt-builders.js.map +1 -0
- package/dist/core/prompt-cache.d.ts +25 -0
- package/dist/core/prompt-cache.d.ts.map +1 -0
- package/dist/core/prompt-cache.js +34 -0
- package/dist/core/prompt-cache.js.map +1 -0
- package/dist/core/react-loop.d.ts +43 -0
- package/dist/core/react-loop.d.ts.map +1 -0
- package/dist/core/react-loop.js +403 -0
- package/dist/core/react-loop.js.map +1 -0
- package/dist/core/stop-hooks.d.ts +18 -0
- package/dist/core/stop-hooks.d.ts.map +1 -0
- package/dist/core/stop-hooks.js +18 -0
- package/dist/core/stop-hooks.js.map +1 -0
- package/dist/core/stream-emitter.d.ts +24 -0
- package/dist/core/stream-emitter.d.ts.map +1 -0
- package/dist/core/stream-emitter.js +65 -0
- package/dist/core/stream-emitter.js.map +1 -0
- package/dist/core/streaming-tool-executor.d.ts +54 -0
- package/dist/core/streaming-tool-executor.d.ts.map +1 -0
- package/dist/core/streaming-tool-executor.js +164 -0
- package/dist/core/streaming-tool-executor.js.map +1 -0
- package/dist/core/turn-end-hooks.d.ts +39 -0
- package/dist/core/turn-end-hooks.d.ts.map +1 -0
- package/dist/core/turn-end-hooks.js +36 -0
- package/dist/core/turn-end-hooks.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/chunking.d.ts +9 -0
- package/dist/knowledge/chunking.d.ts.map +1 -0
- package/dist/knowledge/chunking.js +49 -0
- package/dist/knowledge/chunking.js.map +1 -0
- package/dist/knowledge/embedding-service.d.ts +16 -0
- package/dist/knowledge/embedding-service.d.ts.map +1 -0
- package/dist/knowledge/embedding-service.js +43 -0
- package/dist/knowledge/embedding-service.js.map +1 -0
- package/dist/knowledge/knowledge-manager.d.ts +33 -0
- package/dist/knowledge/knowledge-manager.d.ts.map +1 -0
- package/dist/knowledge/knowledge-manager.js +62 -0
- package/dist/knowledge/knowledge-manager.js.map +1 -0
- package/dist/knowledge/sqlite-vector-store.d.ts +16 -0
- package/dist/knowledge/sqlite-vector-store.d.ts.map +1 -0
- package/dist/knowledge/sqlite-vector-store.js +56 -0
- package/dist/knowledge/sqlite-vector-store.js.map +1 -0
- package/dist/knowledge/vector-store.d.ts +2 -0
- package/dist/knowledge/vector-store.d.ts.map +1 -0
- package/dist/knowledge/vector-store.js +2 -0
- package/dist/knowledge/vector-store.js.map +1 -0
- package/dist/llm/errors.d.ts +15 -0
- package/dist/llm/errors.d.ts.map +1 -0
- package/dist/llm/errors.js +39 -0
- package/dist/llm/errors.js.map +1 -0
- package/dist/llm/message-types.d.ts +80 -0
- package/dist/llm/message-types.d.ts.map +1 -0
- package/dist/llm/message-types.js +2 -0
- package/dist/llm/message-types.js.map +1 -0
- package/dist/llm/openrouter-client.d.ts +18 -0
- package/dist/llm/openrouter-client.d.ts.map +1 -0
- package/dist/llm/openrouter-client.js +215 -0
- package/dist/llm/openrouter-client.js.map +1 -0
- package/dist/llm/reasoning.d.ts +10 -0
- package/dist/llm/reasoning.d.ts.map +1 -0
- package/dist/llm/reasoning.js +18 -0
- package/dist/llm/reasoning.js.map +1 -0
- package/dist/memory/file-memory-system.d.ts +98 -0
- package/dist/memory/file-memory-system.d.ts.map +1 -0
- package/dist/memory/file-memory-system.js +310 -0
- package/dist/memory/file-memory-system.js.map +1 -0
- package/dist/memory/memory-age.d.ts +22 -0
- package/dist/memory/memory-age.d.ts.map +1 -0
- package/dist/memory/memory-age.js +44 -0
- package/dist/memory/memory-age.js.map +1 -0
- package/dist/memory/memory-extractor.d.ts +56 -0
- package/dist/memory/memory-extractor.d.ts.map +1 -0
- package/dist/memory/memory-extractor.js +91 -0
- package/dist/memory/memory-extractor.js.map +1 -0
- package/dist/memory/memory-paths.d.ts +45 -0
- package/dist/memory/memory-paths.d.ts.map +1 -0
- package/dist/memory/memory-paths.js +121 -0
- package/dist/memory/memory-paths.js.map +1 -0
- package/dist/memory/memory-prompts.d.ts +41 -0
- package/dist/memory/memory-prompts.d.ts.map +1 -0
- package/dist/memory/memory-prompts.js +279 -0
- package/dist/memory/memory-prompts.js.map +1 -0
- package/dist/memory/memory-relevance.d.ts +16 -0
- package/dist/memory/memory-relevance.d.ts.map +1 -0
- package/dist/memory/memory-relevance.js +46 -0
- package/dist/memory/memory-relevance.js.map +1 -0
- package/dist/memory/memory-scanner.d.ts +22 -0
- package/dist/memory/memory-scanner.d.ts.map +1 -0
- package/dist/memory/memory-scanner.js +99 -0
- package/dist/memory/memory-scanner.js.map +1 -0
- package/dist/memory/memory-tools.d.ts +16 -0
- package/dist/memory/memory-tools.d.ts.map +1 -0
- package/dist/memory/memory-tools.js +196 -0
- package/dist/memory/memory-tools.js.map +1 -0
- package/dist/memory/memory-types.d.ts +47 -0
- package/dist/memory/memory-types.d.ts.map +1 -0
- package/dist/memory/memory-types.js +24 -0
- package/dist/memory/memory-types.js.map +1 -0
- package/dist/skills/skill-args.d.ts +23 -0
- package/dist/skills/skill-args.d.ts.map +1 -0
- package/dist/skills/skill-args.js +77 -0
- package/dist/skills/skill-args.js.map +1 -0
- package/dist/skills/skill-glob.d.ts +24 -0
- package/dist/skills/skill-glob.d.ts.map +1 -0
- package/dist/skills/skill-glob.js +60 -0
- package/dist/skills/skill-glob.js.map +1 -0
- package/dist/skills/skill-loader.d.ts +49 -0
- package/dist/skills/skill-loader.d.ts.map +1 -0
- package/dist/skills/skill-loader.js +197 -0
- package/dist/skills/skill-loader.js.map +1 -0
- package/dist/skills/skill-manager.d.ts +83 -0
- package/dist/skills/skill-manager.d.ts.map +1 -0
- package/dist/skills/skill-manager.js +338 -0
- package/dist/skills/skill-manager.js.map +1 -0
- package/dist/storage/sqlite-conversation-store.d.ts +15 -0
- package/dist/storage/sqlite-conversation-store.d.ts.map +1 -0
- package/dist/storage/sqlite-conversation-store.js +45 -0
- package/dist/storage/sqlite-conversation-store.js.map +1 -0
- package/dist/storage/sqlite-database.d.ts +14 -0
- package/dist/storage/sqlite-database.d.ts.map +1 -0
- package/dist/storage/sqlite-database.js +95 -0
- package/dist/storage/sqlite-database.js.map +1 -0
- package/dist/tools/builtin/ask-user.d.ts +7 -0
- package/dist/tools/builtin/ask-user.d.ts.map +1 -0
- package/dist/tools/builtin/ask-user.js +23 -0
- package/dist/tools/builtin/ask-user.js.map +1 -0
- package/dist/tools/builtin/bash.d.ts +3 -0
- package/dist/tools/builtin/bash.d.ts.map +1 -0
- package/dist/tools/builtin/bash.js +54 -0
- package/dist/tools/builtin/bash.js.map +1 -0
- package/dist/tools/builtin/file-edit.d.ts +3 -0
- package/dist/tools/builtin/file-edit.d.ts.map +1 -0
- package/dist/tools/builtin/file-edit.js +50 -0
- package/dist/tools/builtin/file-edit.js.map +1 -0
- package/dist/tools/builtin/file-read.d.ts +3 -0
- package/dist/tools/builtin/file-read.d.ts.map +1 -0
- package/dist/tools/builtin/file-read.js +47 -0
- package/dist/tools/builtin/file-read.js.map +1 -0
- package/dist/tools/builtin/file-write.d.ts +3 -0
- package/dist/tools/builtin/file-write.d.ts.map +1 -0
- package/dist/tools/builtin/file-write.js +29 -0
- package/dist/tools/builtin/file-write.js.map +1 -0
- package/dist/tools/builtin/glob.d.ts +3 -0
- package/dist/tools/builtin/glob.d.ts.map +1 -0
- package/dist/tools/builtin/glob.js +67 -0
- package/dist/tools/builtin/glob.js.map +1 -0
- package/dist/tools/builtin/grep.d.ts +3 -0
- package/dist/tools/builtin/grep.d.ts.map +1 -0
- package/dist/tools/builtin/grep.js +94 -0
- package/dist/tools/builtin/grep.js.map +1 -0
- package/dist/tools/builtin/index.d.ts +49 -0
- package/dist/tools/builtin/index.d.ts.map +1 -0
- package/dist/tools/builtin/index.js +65 -0
- package/dist/tools/builtin/index.js.map +1 -0
- package/dist/tools/builtin/web-fetch.d.ts +3 -0
- package/dist/tools/builtin/web-fetch.d.ts.map +1 -0
- package/dist/tools/builtin/web-fetch.js +56 -0
- package/dist/tools/builtin/web-fetch.js.map +1 -0
- package/dist/tools/json-schema-to-zod.d.ts +30 -0
- package/dist/tools/json-schema-to-zod.d.ts.map +1 -0
- package/dist/tools/json-schema-to-zod.js +123 -0
- package/dist/tools/json-schema-to-zod.js.map +1 -0
- package/dist/tools/mcp-adapter.d.ts +80 -0
- package/dist/tools/mcp-adapter.d.ts.map +1 -0
- package/dist/tools/mcp-adapter.js +326 -0
- package/dist/tools/mcp-adapter.js.map +1 -0
- package/dist/tools/skill-tool.d.ts +41 -0
- package/dist/tools/skill-tool.d.ts.map +1 -0
- package/dist/tools/skill-tool.js +149 -0
- package/dist/tools/skill-tool.js.map +1 -0
- package/dist/tools/sql/index.d.ts +4 -0
- package/dist/tools/sql/index.d.ts.map +1 -0
- package/dist/tools/sql/index.js +2 -0
- package/dist/tools/sql/index.js.map +1 -0
- package/dist/tools/sql/sql-query-def.d.ts +22 -0
- package/dist/tools/sql/sql-query-def.d.ts.map +1 -0
- package/dist/tools/sql/sql-query-def.js +2 -0
- package/dist/tools/sql/sql-query-def.js.map +1 -0
- package/dist/tools/sql/sql-tool-factory.d.ts +28 -0
- package/dist/tools/sql/sql-tool-factory.d.ts.map +1 -0
- package/dist/tools/sql/sql-tool-factory.js +136 -0
- package/dist/tools/sql/sql-tool-factory.js.map +1 -0
- package/dist/tools/tool-executor.d.ts +67 -0
- package/dist/tools/tool-executor.d.ts.map +1 -0
- package/dist/tools/tool-executor.js +232 -0
- package/dist/tools/tool-executor.js.map +1 -0
- package/dist/utils/cache.d.ts +22 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +61 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/logger.d.ts +15 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +46 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/model-context.d.ts +14 -0
- package/dist/utils/model-context.d.ts.map +1 -0
- package/dist/utils/model-context.js +52 -0
- package/dist/utils/model-context.js.map +1 -0
- package/dist/utils/retry.d.ts +13 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +41 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/token-counter.d.ts +6 -0
- package/dist/utils/token-counter.d.ts.map +1 -0
- package/dist/utils/token-counter.js +19 -0
- package/dist/utils/token-counter.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { AgentTool } from './agent-tool.js';
|
|
2
|
+
/** A skill that modifies Agent behavior when activated */
|
|
3
|
+
export interface AgentSkill {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
instructions: string;
|
|
7
|
+
/** Custom predicate for pattern-based activation */
|
|
8
|
+
match?: (input: string, context: SkillMatchContext) => boolean;
|
|
9
|
+
/** Exact prefix match (e.g. "/review") */
|
|
10
|
+
triggerPrefix?: string;
|
|
11
|
+
/** Alternative names for slash-command invocation */
|
|
12
|
+
aliases?: string[];
|
|
13
|
+
/** Higher number = higher priority when multiple skills match */
|
|
14
|
+
priority?: number;
|
|
15
|
+
/** If true, blocks all other skills when activated */
|
|
16
|
+
exclusive?: boolean;
|
|
17
|
+
/** Dynamic prompt generator — when provided, overrides static `instructions` */
|
|
18
|
+
getPrompt?: (args: string, context: SkillPromptContext) => Promise<string> | string;
|
|
19
|
+
/** Named argument placeholders for substitution ($argName in instructions) */
|
|
20
|
+
argNames?: string[];
|
|
21
|
+
/** Detailed usage scenarios — helps model decide WHEN to invoke proactively */
|
|
22
|
+
whenToUse?: string;
|
|
23
|
+
/** Tools available only when this skill is active */
|
|
24
|
+
tools?: AgentTool[];
|
|
25
|
+
/** Restrict which global tools the skill can use (allowlist) */
|
|
26
|
+
allowedTools?: string[];
|
|
27
|
+
/** Override model for this skill's execution */
|
|
28
|
+
model?: string;
|
|
29
|
+
/** Execution mode: 'inline' injects into current context */
|
|
30
|
+
context?: 'inline';
|
|
31
|
+
/** Computational effort hint (1-10) */
|
|
32
|
+
effort?: number;
|
|
33
|
+
/** Keeps the skill active across subsequent turns after initial activation.
|
|
34
|
+
* true = active until clearStickySkills() is called (e.g. on clearHistory).
|
|
35
|
+
* number = number of additional turns to remain active after activation (e.g. 10). */
|
|
36
|
+
sticky?: boolean | number;
|
|
37
|
+
/** Glob patterns — skill only activates when matching files are touched */
|
|
38
|
+
paths?: string[];
|
|
39
|
+
/** Feature-flag function — skill hidden when returns false */
|
|
40
|
+
isEnabled?: () => boolean;
|
|
41
|
+
/** Whether model can invoke this skill proactively (default: true) */
|
|
42
|
+
modelInvocable?: boolean;
|
|
43
|
+
/** Source of the skill (for diagnostics/listing) */
|
|
44
|
+
source?: 'programmatic' | 'directory' | 'mcp' | 'bundled';
|
|
45
|
+
/** Base directory for skill resources (set automatically for .md skills) */
|
|
46
|
+
skillDir?: string;
|
|
47
|
+
}
|
|
48
|
+
/** Context passed to skill.match() */
|
|
49
|
+
export interface SkillMatchContext {
|
|
50
|
+
threadId: string;
|
|
51
|
+
recentMessages: number;
|
|
52
|
+
}
|
|
53
|
+
/** Context passed to skill.getPrompt() */
|
|
54
|
+
export interface SkillPromptContext {
|
|
55
|
+
threadId: string;
|
|
56
|
+
traceId: string;
|
|
57
|
+
skillDir?: string;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=agent-skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-skill.d.ts","sourceRoot":"","sources":["../../../src/contracts/entities/agent-skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,0DAA0D;AAC1D,MAAM,WAAW,UAAU;IAEzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IAGrB,oDAAoD;IACpD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC;IAC/D,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,gFAAgF;IAChF,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACpF,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,qDAAqD;IACrD,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB;;2FAEuF;IACvF,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAG1B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,oDAAoD;IACpD,MAAM,CAAC,EAAE,cAAc,GAAG,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC;IAC1D,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,0CAA0C;AAC1C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-skill.js","sourceRoot":"","sources":["../../../src/contracts/entities/agent-skill.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ZodSchema } from 'zod';
|
|
2
|
+
import type { AgentToolResult } from './tool-call.js';
|
|
3
|
+
/** Progress callback — tools call this to report incremental updates */
|
|
4
|
+
export type ToolProgressCallback = (data: Record<string, unknown>) => void;
|
|
5
|
+
/** A tool that the Agent can invoke during the ReactLoop */
|
|
6
|
+
export interface AgentTool {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
parameters: ZodSchema;
|
|
10
|
+
execute: (args: unknown, signal: AbortSignal, onProgress?: ToolProgressCallback) => Promise<string | AgentToolResult>;
|
|
11
|
+
/** Semantic validation — return error string to reject, null to allow. Called before execute. */
|
|
12
|
+
validate?: (args: unknown, context: ToolValidationContext) => Promise<string | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Whether this tool is safe to run concurrently with other concurrency-safe tools.
|
|
15
|
+
* Read-only tools (search, read) should be `true`; write tools (edit, bash) should be `false`.
|
|
16
|
+
* Can be a function to decide per-invocation based on args.
|
|
17
|
+
* Default: false (serial execution).
|
|
18
|
+
*/
|
|
19
|
+
isConcurrencySafe?: boolean | ((args: unknown) => boolean);
|
|
20
|
+
/** Whether this tool only reads data (no side effects). */
|
|
21
|
+
isReadOnly?: boolean | ((args: unknown) => boolean);
|
|
22
|
+
/** Whether this tool performs irreversible operations (delete, send, overwrite). */
|
|
23
|
+
isDestructive?: boolean | ((args: unknown) => boolean);
|
|
24
|
+
/** Extract file path(s) from args — enables conditional skill activation when files are touched. */
|
|
25
|
+
getFilePath?: (args: unknown) => string | string[] | undefined;
|
|
26
|
+
/** Per-tool timeout in milliseconds. Wraps execute with AbortSignal. */
|
|
27
|
+
timeoutMs?: number;
|
|
28
|
+
/** Max characters for tool result before truncation. Default: 10_000. */
|
|
29
|
+
maxResultChars?: number;
|
|
30
|
+
/** Transform result before sending to model. */
|
|
31
|
+
mapResult?: (result: AgentToolResult) => AgentToolResult;
|
|
32
|
+
/** Whether transient failures should be retried. Default: false. */
|
|
33
|
+
retryable?: boolean | ((error: unknown) => boolean);
|
|
34
|
+
/** Max retry attempts for transient failures. Default: 2. */
|
|
35
|
+
maxRetries?: number;
|
|
36
|
+
}
|
|
37
|
+
/** Context passed to tool.validate() for semantic validation */
|
|
38
|
+
export interface ToolValidationContext {
|
|
39
|
+
threadId: string;
|
|
40
|
+
recentMessages: number;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=agent-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-tool.d.ts","sourceRoot":"","sources":["../../../src/contracts/entities/agent-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,wEAAwE;AACxE,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAE3E,4DAA4D;AAC5D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,CACP,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,oBAAoB,KAC9B,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;IAEvC,iGAAiG;IACjG,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAErF;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;IAE3D,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;IAEpD,oFAAoF;IACpF,aAAa,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;IAEvD,oGAAoG;IACpG,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAE/D,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,gDAAgD;IAChD,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,eAAe,CAAC;IAEzD,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;IAEpD,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-tool.js","sourceRoot":"","sources":["../../../src/contracts/entities/agent-tool.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { MessageRole } from '../enums/index.js';
|
|
2
|
+
import type { ContentPart } from './content-part.js';
|
|
3
|
+
import type { ToolCall } from './tool-call.js';
|
|
4
|
+
/** A single message in a conversation thread */
|
|
5
|
+
export interface ChatMessage {
|
|
6
|
+
role: MessageRole;
|
|
7
|
+
content: string | ContentPart[];
|
|
8
|
+
toolCalls?: ToolCall[];
|
|
9
|
+
toolCallId?: string;
|
|
10
|
+
pinned?: boolean;
|
|
11
|
+
createdAt: number;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=chat-message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-message.d.ts","sourceRoot":"","sources":["../../../src/contracts/entities/chat-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-message.js","sourceRoot":"","sources":["../../../src/contracts/entities/chat-message.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Text content part */
|
|
2
|
+
export interface TextContentPart {
|
|
3
|
+
type: 'text';
|
|
4
|
+
text: string;
|
|
5
|
+
}
|
|
6
|
+
/** Image URL content part */
|
|
7
|
+
export interface ImageContentPart {
|
|
8
|
+
type: 'image_url';
|
|
9
|
+
image_url: {
|
|
10
|
+
url: string;
|
|
11
|
+
detail?: 'auto' | 'low' | 'high';
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/** Multimodal content — text or image */
|
|
15
|
+
export type ContentPart = TextContentPart | ImageContentPart;
|
|
16
|
+
//# sourceMappingURL=content-part.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-part.d.ts","sourceRoot":"","sources":["../../../src/contracts/entities/content-part.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,6BAA6B;AAC7B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED,yCAAyC;AACzC,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-part.js","sourceRoot":"","sources":["../../../src/contracts/entities/content-part.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../../src/contracts/entities/execution-context.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../../src/contracts/entities/execution-context.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type { ContentPart, TextContentPart, ImageContentPart } from './content-part.js';
|
|
2
|
+
export type { ChatMessage } from './chat-message.js';
|
|
3
|
+
export type { ToolCall, AgentToolResult } from './tool-call.js';
|
|
4
|
+
export type { KnowledgeDocument, KnowledgeChunk, RetrievedKnowledge } from './knowledge.js';
|
|
5
|
+
export type { ExecutionContext } from './execution-context.js';
|
|
6
|
+
export type { TokenUsage } from './token-usage.js';
|
|
7
|
+
export type { AgentTool, ToolValidationContext, ToolProgressCallback } from './agent-tool.js';
|
|
8
|
+
export type { AgentSkill, SkillMatchContext, SkillPromptContext } from './agent-skill.js';
|
|
9
|
+
export type { VectorStore, ConversationStore, } from './stores.js';
|
|
10
|
+
export type { AgentEvent, AgentStartEvent, TextDeltaEvent, TextDoneEvent, ToolCallStartEvent, ToolCallDeltaEvent, ToolCallEndEvent, MemoryExtractedEvent, KnowledgeRetrievedEvent, SkillActivatedEvent, TurnStartEvent, TurnEndEvent, ErrorEvent, WarningEvent, ToolProgressEvent, CompactionEvent, RecoveryEvent, ModelFallbackEvent, AgentEndEvent, } from './agent-event.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contracts/entities/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxF,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1F,YAAY,EACV,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,UAAU,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contracts/entities/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** A document to be ingested for RAG */
|
|
2
|
+
export interface KnowledgeDocument {
|
|
3
|
+
content: string;
|
|
4
|
+
metadata?: Record<string, unknown>;
|
|
5
|
+
}
|
|
6
|
+
/** A chunk of a document with its embedding */
|
|
7
|
+
export interface KnowledgeChunk {
|
|
8
|
+
id: string;
|
|
9
|
+
content: string;
|
|
10
|
+
embedding: Float32Array;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
createdAt: number;
|
|
13
|
+
}
|
|
14
|
+
/** A knowledge chunk retrieved by similarity search */
|
|
15
|
+
export interface RetrievedKnowledge {
|
|
16
|
+
id: string;
|
|
17
|
+
content: string;
|
|
18
|
+
score: number;
|
|
19
|
+
metadata?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=knowledge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../../src/contracts/entities/knowledge.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../../src/contracts/entities/knowledge.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ChatMessage } from './chat-message.js';
|
|
2
|
+
import type { KnowledgeChunk, RetrievedKnowledge } from './knowledge.js';
|
|
3
|
+
/** Pluggable interface for vector storage (knowledge/RAG) */
|
|
4
|
+
export interface VectorStore {
|
|
5
|
+
upsert(chunk: KnowledgeChunk): void;
|
|
6
|
+
search(queryEmbedding: Float32Array, topK: number): RetrievedKnowledge[];
|
|
7
|
+
delete(id: string): void;
|
|
8
|
+
listAll(): KnowledgeChunk[];
|
|
9
|
+
deleteBySource(sourceId: string): void;
|
|
10
|
+
}
|
|
11
|
+
/** Pluggable interface for conversation history persistence */
|
|
12
|
+
export interface ConversationStore {
|
|
13
|
+
appendMessage(message: ChatMessage, threadId: string): void;
|
|
14
|
+
listThread(threadId: string): ChatMessage[];
|
|
15
|
+
listPinned(threadId: string): ChatMessage[];
|
|
16
|
+
clearThread(threadId: string): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=stores.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../src/contracts/entities/stores.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACzE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,IAAI,cAAc,EAAE,CAAC;IAC5B,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5D,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAC5C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAC5C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stores.js","sourceRoot":"","sources":["../../../src/contracts/entities/stores.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-usage.d.ts","sourceRoot":"","sources":["../../../src/contracts/entities/token-usage.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-usage.js","sourceRoot":"","sources":["../../../src/contracts/entities/token-usage.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** A tool call requested by the LLM */
|
|
2
|
+
export interface ToolCall {
|
|
3
|
+
id: string;
|
|
4
|
+
type: 'function';
|
|
5
|
+
function: {
|
|
6
|
+
name: string;
|
|
7
|
+
arguments: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
/** Result of a tool execution */
|
|
11
|
+
export interface AgentToolResult {
|
|
12
|
+
content: string;
|
|
13
|
+
metadata?: Record<string, unknown>;
|
|
14
|
+
isError?: boolean;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=tool-call.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call.d.ts","sourceRoot":"","sources":["../../../src/contracts/entities/tool-call.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,iCAAiC;AACjC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call.js","sourceRoot":"","sources":["../../../src/contracts/entities/tool-call.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Message role in a conversation */
|
|
2
|
+
export type MessageRole = 'user' | 'assistant' | 'system' | 'tool';
|
|
3
|
+
/** File-based memory type (closed taxonomy) */
|
|
4
|
+
export type { MemoryType } from '../../memory/memory-types.js';
|
|
5
|
+
/** State of a ReactLoop execution */
|
|
6
|
+
export type ReactLoopState = 'idle' | 'streaming' | 'executing_tools' | 'completed' | 'error' | 'cost_limited' | 'aborted';
|
|
7
|
+
/** Terminal states of ReactLoop — no further transitions allowed */
|
|
8
|
+
export declare const REACT_LOOP_TERMINAL_STATES: ReadonlySet<ReactLoopState>;
|
|
9
|
+
/** Agent session lifecycle state */
|
|
10
|
+
export type AgentSessionState = 'initializing' | 'ready' | 'executing' | 'cost_exhausted' | 'destroying' | 'destroyed';
|
|
11
|
+
/** MCP connection lifecycle state */
|
|
12
|
+
export type MCPConnectionState = 'disconnected' | 'connecting' | 'connected' | 'error' | 'reconnecting';
|
|
13
|
+
/** What to do when a tool call errors */
|
|
14
|
+
export type OnToolError = 'continue' | 'stop' | 'retry';
|
|
15
|
+
/** What to do when cost limit is reached */
|
|
16
|
+
export type OnLimitReached = 'stop' | 'warn';
|
|
17
|
+
/** Log level for the built-in logger */
|
|
18
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
19
|
+
/** Response format for structured output */
|
|
20
|
+
export type ResponseFormatType = 'text' | 'json_object' | 'json_schema';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contracts/enums/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEnE,+CAA+C;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,qCAAqC;AACrC,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,WAAW,GACX,iBAAiB,GACjB,WAAW,GACX,OAAO,GACP,cAAc,GACd,SAAS,CAAC;AAEd,oEAAoE;AACpE,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,cAAc,CAKjE,CAAC;AAEH,oCAAoC;AACpC,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,OAAO,GACP,WAAW,GACX,gBAAgB,GAChB,YAAY,GACZ,WAAW,CAAC;AAEhB,qCAAqC;AACrC,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,YAAY,GACZ,WAAW,GACX,OAAO,GACP,cAAc,CAAC;AAEnB,yCAAyC;AACzC,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,4CAA4C;AAC5C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C,wCAAwC;AACxC,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtE,4CAA4C;AAC5C,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contracts/enums/index.ts"],"names":[],"mappings":"AAgBA,oEAAoE;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAgC,IAAI,GAAG,CAAC;IAC7E,WAAW;IACX,OAAO;IACP,cAAc;IACd,SAAS;CACV,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { OpenRouterMessage } from '../../llm/message-types.js';
|
|
2
|
+
import type { OpenRouterClient } from '../../llm/openrouter-client.js';
|
|
3
|
+
export interface AutocompactOptions {
|
|
4
|
+
maxContextTokens: number;
|
|
5
|
+
compactionThreshold: number;
|
|
6
|
+
tailProtection: number;
|
|
7
|
+
}
|
|
8
|
+
export interface AutocompactResult {
|
|
9
|
+
messages: OpenRouterMessage[];
|
|
10
|
+
tokensFreed: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Summarizes conversation history via LLM when token usage exceeds threshold.
|
|
14
|
+
* Preserves: system messages (always), tail messages (recent context).
|
|
15
|
+
* Returns null if compaction not needed or fails.
|
|
16
|
+
*/
|
|
17
|
+
export declare function autocompact(messages: readonly OpenRouterMessage[], client: OpenRouterClient, options: AutocompactOptions): Promise<AutocompactResult | null>;
|
|
18
|
+
//# sourceMappingURL=autocompact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocompact.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/autocompact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AASD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA4DnC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { estimateTokens } from '../../utils/token-counter.js';
|
|
2
|
+
function estimateMessagesTokens(messages) {
|
|
3
|
+
return messages.reduce((sum, m) => {
|
|
4
|
+
const content = typeof m.content === 'string' ? m.content : JSON.stringify(m.content);
|
|
5
|
+
return sum + estimateTokens(content);
|
|
6
|
+
}, 0);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Summarizes conversation history via LLM when token usage exceeds threshold.
|
|
10
|
+
* Preserves: system messages (always), tail messages (recent context).
|
|
11
|
+
* Returns null if compaction not needed or fails.
|
|
12
|
+
*/
|
|
13
|
+
export async function autocompact(messages, client, options) {
|
|
14
|
+
const { maxContextTokens, compactionThreshold, tailProtection } = options;
|
|
15
|
+
const currentTokens = estimateMessagesTokens(messages);
|
|
16
|
+
const threshold = maxContextTokens * compactionThreshold;
|
|
17
|
+
if (currentTokens < threshold)
|
|
18
|
+
return null;
|
|
19
|
+
// Split messages into: system, pinned (boundary summaries), compactable, tail
|
|
20
|
+
const systemMessages = messages.filter(m => m.role === 'system');
|
|
21
|
+
const nonSystem = messages.filter(m => m.role !== 'system');
|
|
22
|
+
const pinned = nonSystem.filter(m => m._pinned === true);
|
|
23
|
+
const unpinned = nonSystem.filter(m => m._pinned !== true);
|
|
24
|
+
const tailCount = Math.min(tailProtection, unpinned.length);
|
|
25
|
+
const toCompact = unpinned.slice(0, unpinned.length - tailCount);
|
|
26
|
+
const tailMessages = unpinned.slice(-tailCount);
|
|
27
|
+
if (toCompact.length === 0)
|
|
28
|
+
return null;
|
|
29
|
+
// Build conversation text for summarization
|
|
30
|
+
const conversationText = toCompact.map(m => {
|
|
31
|
+
const content = typeof m.content === 'string' ? m.content : JSON.stringify(m.content);
|
|
32
|
+
return `${m.role}: ${content.slice(0, 2000)}`; // Limit per message for the summary prompt
|
|
33
|
+
}).join('\n');
|
|
34
|
+
try {
|
|
35
|
+
const response = await client.chat({
|
|
36
|
+
messages: [
|
|
37
|
+
{
|
|
38
|
+
role: 'system',
|
|
39
|
+
content: 'You are a conversation summarizer. Create a concise summary of the following conversation, preserving key facts, decisions, tool results, and context needed for continuation. Be factual and specific. Output only the summary.',
|
|
40
|
+
},
|
|
41
|
+
{ role: 'user', content: conversationText },
|
|
42
|
+
],
|
|
43
|
+
temperature: 0,
|
|
44
|
+
maxTokens: 1000,
|
|
45
|
+
});
|
|
46
|
+
const summaryMessage = {
|
|
47
|
+
role: 'user',
|
|
48
|
+
content: `[Conversation summary — earlier messages were compacted to save context]\n\n${response.content}`,
|
|
49
|
+
// Mark as compaction boundary — should survive subsequent compactions
|
|
50
|
+
_pinned: true,
|
|
51
|
+
};
|
|
52
|
+
const compactedMessages = [
|
|
53
|
+
...systemMessages,
|
|
54
|
+
...pinned,
|
|
55
|
+
summaryMessage,
|
|
56
|
+
...tailMessages,
|
|
57
|
+
];
|
|
58
|
+
const newTokens = estimateMessagesTokens(compactedMessages);
|
|
59
|
+
return {
|
|
60
|
+
messages: compactedMessages,
|
|
61
|
+
tokensFreed: currentTokens - newTokens,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=autocompact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocompact.js","sourceRoot":"","sources":["../../../src/core/compaction/autocompact.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAa9D,SAAS,sBAAsB,CAAC,QAAsC;IACpE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtF,OAAO,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAsC,EACtC,MAAwB,EACxB,OAA2B;IAE3B,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAE1E,MAAM,aAAa,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;IAEzD,IAAI,aAAa,GAAG,SAAS;QAAE,OAAO,IAAI,CAAC;IAE3C,8EAA8E;IAC9E,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,CAAwC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,CAAwC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IACnG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;IAEhD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtF,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,2CAA2C;IAC5F,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACjC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,kOAAkO;iBAC5O;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE;aAC5C;YACD,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,cAAc,GAAsB;YACxC,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,+EAA+E,QAAQ,CAAC,OAAO,EAAE;YAC1G,sEAAsE;YACtE,OAAO,EAAE,IAAI;SAC+B,CAAC;QAE/C,MAAM,iBAAiB,GAAG;YACxB,GAAG,cAAc;YACjB,GAAG,MAAM;YACT,cAAc;YACd,GAAG,YAAY;SAChB,CAAC;QAEF,MAAM,SAAS,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,OAAO;YACL,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,aAAa,GAAG,SAAS;SACvC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { OpenRouterMessage } from '../../llm/message-types.js';
|
|
2
|
+
export interface MicrocompactOptions {
|
|
3
|
+
maxToolResultChars: number;
|
|
4
|
+
/** Per-tool max chars override, keyed by tool name. Takes precedence over default. */
|
|
5
|
+
perToolMaxChars?: Map<string, number>;
|
|
6
|
+
/** Map from tool_call_id to tool name. Required when perToolMaxChars is used. */
|
|
7
|
+
toolCallIdToName?: Map<string, string>;
|
|
8
|
+
}
|
|
9
|
+
export interface MicrocompactResult {
|
|
10
|
+
messages: OpenRouterMessage[];
|
|
11
|
+
truncatedCount: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Truncates large tool result messages, preserving head and tail.
|
|
15
|
+
* Runs before autocompact — cheap, no LLM call.
|
|
16
|
+
*
|
|
17
|
+
* Supports per-tool max chars overrides via perToolMaxChars map.
|
|
18
|
+
*/
|
|
19
|
+
export declare function microcompact(messages: readonly OpenRouterMessage[], options: MicrocompactOptions): MicrocompactResult;
|
|
20
|
+
//# sourceMappingURL=microcompact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"microcompact.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/microcompact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sFAAsF;IACtF,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB;AAKD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,CAiCpB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const DEFAULT_HEAD_RATIO = 0.7;
|
|
2
|
+
const DEFAULT_TAIL_RATIO = 0.2;
|
|
3
|
+
/**
|
|
4
|
+
* Truncates large tool result messages, preserving head and tail.
|
|
5
|
+
* Runs before autocompact — cheap, no LLM call.
|
|
6
|
+
*
|
|
7
|
+
* Supports per-tool max chars overrides via perToolMaxChars map.
|
|
8
|
+
*/
|
|
9
|
+
export function microcompact(messages, options) {
|
|
10
|
+
const { maxToolResultChars, perToolMaxChars, toolCallIdToName } = options;
|
|
11
|
+
let truncatedCount = 0;
|
|
12
|
+
const result = messages.map(msg => {
|
|
13
|
+
if (msg.role !== 'tool' || typeof msg.content !== 'string')
|
|
14
|
+
return msg;
|
|
15
|
+
// Determine per-tool limit
|
|
16
|
+
let limit = maxToolResultChars;
|
|
17
|
+
if (perToolMaxChars && toolCallIdToName && msg.tool_call_id) {
|
|
18
|
+
const toolName = toolCallIdToName.get(msg.tool_call_id);
|
|
19
|
+
if (toolName && perToolMaxChars.has(toolName)) {
|
|
20
|
+
limit = perToolMaxChars.get(toolName);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (msg.content.length <= limit)
|
|
24
|
+
return msg;
|
|
25
|
+
truncatedCount++;
|
|
26
|
+
const headSize = Math.floor(limit * DEFAULT_HEAD_RATIO);
|
|
27
|
+
const tailSize = Math.floor(limit * DEFAULT_TAIL_RATIO);
|
|
28
|
+
const head = msg.content.slice(0, headSize);
|
|
29
|
+
const tail = msg.content.slice(-tailSize);
|
|
30
|
+
const omitted = msg.content.length - headSize - tailSize;
|
|
31
|
+
return {
|
|
32
|
+
...msg,
|
|
33
|
+
content: `${head}\n\n[truncated ${omitted} characters]\n\n${tail}`,
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
return { messages: result, truncatedCount };
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=microcompact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"microcompact.js","sourceRoot":"","sources":["../../../src/core/compaction/microcompact.ts"],"names":[],"mappings":"AAeA,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAsC,EACtC,OAA4B;IAE5B,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAC1E,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAChC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QAEvE,2BAA2B;QAC3B,IAAI,KAAK,GAAG,kBAAkB,CAAC;QAC/B,IAAI,eAAe,IAAI,gBAAgB,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACxD,IAAI,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9C,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YACzC,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK;YAAE,OAAO,GAAG,CAAC;QAE5C,cAAc,EAAE,CAAC;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAEzD,OAAO;YACL,GAAG,GAAG;YACN,OAAO,EAAE,GAAG,IAAI,kBAAkB,OAAO,mBAAmB,IAAI,EAAE;SACnE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snip compact — removes low-value early messages before autocompact.
|
|
3
|
+
*
|
|
4
|
+
* Targets orphaned tool results (results not referenced by later messages)
|
|
5
|
+
* in the compactable region (outside tail protection).
|
|
6
|
+
*
|
|
7
|
+
* Runs between tool-result-budget and autocompact in the compaction pipeline.
|
|
8
|
+
*/
|
|
9
|
+
import type { OpenRouterMessage } from '../../llm/message-types.js';
|
|
10
|
+
export interface SnipCompactOptions {
|
|
11
|
+
tailProtection: number;
|
|
12
|
+
}
|
|
13
|
+
export interface SnipCompactResult {
|
|
14
|
+
messages: OpenRouterMessage[];
|
|
15
|
+
snippedCount: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Remove orphaned tool results from early messages.
|
|
19
|
+
* Preserves: system messages, pinned messages, tail messages.
|
|
20
|
+
*/
|
|
21
|
+
export declare function snipCompact(messages: readonly OpenRouterMessage[], options: SnipCompactOptions): SnipCompactResult;
|
|
22
|
+
//# sourceMappingURL=snip-compact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snip-compact.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/snip-compact.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB,CAoDnB"}
|