@n8n/agents 0.27.2 → 0.28.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/dist/build.tsbuildinfo +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/runtime/guardrails/budget-guardrail.d.ts +27 -0
- package/dist/runtime/guardrails/budget-guardrail.js +71 -0
- package/dist/runtime/guardrails/budget-guardrail.js.map +1 -0
- package/dist/runtime/guardrails/guardrail-runner.d.ts +18 -0
- package/dist/runtime/guardrails/guardrail-runner.js +51 -0
- package/dist/runtime/guardrails/guardrail-runner.js.map +1 -0
- package/dist/runtime/loop/agent-runtime.d.ts +4 -2
- package/dist/runtime/loop/agent-runtime.js +161 -30
- package/dist/runtime/loop/agent-runtime.js.map +1 -1
- package/dist/runtime/loop/generate-sink.js +2 -1
- package/dist/runtime/loop/generate-sink.js.map +1 -1
- package/dist/runtime/loop/hydrate-file-parts.js +14 -6
- package/dist/runtime/loop/hydrate-file-parts.js.map +1 -1
- package/dist/runtime/loop/runtime-context.js +7 -3
- package/dist/runtime/loop/runtime-context.js.map +1 -1
- package/dist/runtime/loop/side-call-cost.d.ts +2 -0
- package/dist/runtime/loop/side-call-cost.js +14 -0
- package/dist/runtime/loop/side-call-cost.js.map +1 -0
- package/dist/runtime/loop/stream-sink.d.ts +3 -1
- package/dist/runtime/loop/stream-sink.js +19 -1
- package/dist/runtime/loop/stream-sink.js.map +1 -1
- package/dist/runtime/mcp/mcp-connection.js +14 -6
- package/dist/runtime/mcp/mcp-connection.js.map +1 -1
- package/dist/runtime/mcp/mcp-tool-resolver.js +1 -0
- package/dist/runtime/mcp/mcp-tool-resolver.js.map +1 -1
- package/dist/runtime/memory/episodic-memory-capture.d.ts +8 -1
- package/dist/runtime/memory/episodic-memory-capture.js +53 -11
- package/dist/runtime/memory/episodic-memory-capture.js.map +1 -1
- package/dist/runtime/memory/episodic-memory-defaults.js +7 -1
- package/dist/runtime/memory/episodic-memory-defaults.js.map +1 -1
- package/dist/runtime/memory/forward-usage.d.ts +2 -0
- package/dist/runtime/memory/forward-usage.js +14 -0
- package/dist/runtime/memory/forward-usage.js.map +1 -0
- package/dist/runtime/memory/memory-orchestrator.d.ts +2 -1
- package/dist/runtime/memory/memory-orchestrator.js +54 -23
- package/dist/runtime/memory/memory-orchestrator.js.map +1 -1
- package/dist/runtime/memory/observation-log-defaults.d.ts +2 -0
- package/dist/runtime/memory/observation-log-defaults.js +36 -32
- package/dist/runtime/memory/observation-log-defaults.js.map +1 -1
- package/dist/runtime/memory/observation-log-observer.d.ts +4 -1
- package/dist/runtime/memory/observation-log-observer.js +48 -14
- package/dist/runtime/memory/observation-log-observer.js.map +1 -1
- package/dist/runtime/memory/observation-log-reflector.d.ts +4 -1
- package/dist/runtime/memory/observation-log-reflector.js +8 -1
- package/dist/runtime/memory/observation-log-reflector.js.map +1 -1
- package/dist/runtime/memory/title-generation.d.ts +5 -2
- package/dist/runtime/memory/title-generation.js +31 -5
- package/dist/runtime/memory/title-generation.js.map +1 -1
- package/dist/runtime/memory/tool-result-memory.js.map +1 -1
- package/dist/runtime/model/message-list.d.ts +9 -3
- package/dist/runtime/model/message-list.js +37 -12
- package/dist/runtime/model/message-list.js.map +1 -1
- package/dist/runtime/model/prompt-cache.d.ts +1 -0
- package/dist/runtime/model/prompt-cache.js +9 -0
- package/dist/runtime/model/prompt-cache.js.map +1 -1
- package/dist/runtime/skills/active-skills.d.ts +0 -1
- package/dist/runtime/skills/active-skills.js +0 -5
- package/dist/runtime/skills/active-skills.js.map +1 -1
- package/dist/runtime/skills/skill-dependency-tools.d.ts +2 -0
- package/dist/runtime/skills/skill-dependency-tools.js +16 -0
- package/dist/runtime/skills/skill-dependency-tools.js.map +1 -0
- package/dist/runtime/streaming/stream-writer-guard.d.ts +2 -0
- package/dist/runtime/streaming/stream-writer-guard.js +8 -4
- package/dist/runtime/streaming/stream-writer-guard.js.map +1 -1
- package/dist/runtime/tools/tool-adapter.js +1 -0
- package/dist/runtime/tools/tool-adapter.js.map +1 -1
- package/dist/runtime/tools/tool-call-executor.js +7 -0
- package/dist/runtime/tools/tool-call-executor.js.map +1 -1
- package/dist/runtime/tools/tool-call-runner.js +21 -3
- package/dist/runtime/tools/tool-call-runner.js.map +1 -1
- package/dist/runtime/tools/tool-result-guard.js.map +1 -1
- package/dist/runtime/tools/untrusted-tool-output.js.map +1 -1
- package/dist/sdk/agent.d.ts +1 -0
- package/dist/sdk/agent.js +12 -0
- package/dist/sdk/agent.js.map +1 -1
- package/dist/sdk/tool.d.ts +6 -0
- package/dist/sdk/tool.js +21 -3
- package/dist/sdk/tool.js.map +1 -1
- package/dist/types/index.d.ts +5 -4
- package/dist/types/index.js.map +1 -1
- package/dist/types/runtime/agent-loop.d.ts +6 -1
- package/dist/types/runtime/tool-execution.d.ts +6 -1
- package/dist/types/sdk/agent.d.ts +33 -2
- package/dist/types/sdk/agent.js +2 -0
- package/dist/types/sdk/agent.js.map +1 -1
- package/dist/types/sdk/guardrail.d.ts +37 -0
- package/dist/types/sdk/mcp.d.ts +14 -5
- package/dist/types/sdk/memory.d.ts +7 -2
- package/dist/types/sdk/observation-log.d.ts +12 -2
- package/dist/types/sdk/tool.d.ts +11 -0
- package/package.json +9 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { BuiltTool, BuiltProviderTool, BuiltAgent, BuiltMemory, BuiltEpisodicMemoryCaptureStore, BuiltEpisodicMemoryStore, BuiltGuardrail, PiiDetectionType, BuiltEval, RunOptions, AgentResult, GenerateResult, StreamResult, EvalInput, EvalScore, EvalRunResult, EvalResults, ToolContext, ToolCancellationContext, ToolExecutionContext, InterruptibleToolContext, ToolSuspendOptions, CheckpointStore, StreamChunk, Provider, ThinkingConfig, ThinkingConfigFor, AnthropicThinkingEffort, AnthropicThinkingConfig, OpenAIReasoningEffort, OpenAIThinkingConfig, GoogleThinkingConfig, XaiThinkingConfig, ReasoningLevel, SerializableAgentState, AgentRunState, MemoryConfig, ObservationLogMemoryConfig, MemoryDescriptor, ObservationCapableMemory, TitleGenerationConfig, Thread, EpisodicMemoryConfig, EpisodicMemoryCaptureCandidate, EpisodicMemoryCaptureKind, EpisodicMemoryCaptureMethods, EpisodicMemoryCaptureStatus, EpisodicMemoryEmbeddingProviderOptions, EpisodicMemoryEntry, EpisodicMemoryEntrySource, EpisodicMemoryMethods, EpisodicMemoryPrompts, EpisodicMemoryReflectFn, EpisodicMemoryReflection, EpisodicMemoryReflectionApply, EpisodicMemoryReflectionApplyMerge, EpisodicMemoryReflectionMerge, EpisodicMemoryReflectionResult, EpisodicMemoryReflectorInput, EpisodicMemoryScope, EpisodicMemorySearchOptions, EpisodicMemoryStatus, EpisodicMemoryTaskLockHandle, EpisodicMemoryTaskLockMethods, NewEpisodicMemoryCaptureCandidate, NewEpisodicMemoryEntry, NewEpisodicMemoryEntrySource, NewEpisodicMemoryEntrySourceForEntry, RetrievedEpisodicMemoryEntry, ResumeOptions, McpServerConfig, McpToolCallSettledEvent, McpConnectionFailedEvent, McpVerifyResult, ModelConfig, ExecutionOptions, SmoothStreamOptions, TokenUsage, AgentExecutionCounter, PersistedExecutionOptions, AnthropicPromptCachingConfig, OpenAIPromptCachingConfig, PromptCachingConfig, BuiltTelemetry, AttributeValue, ObservationCursor, ObservationalMemoryConfig, BuiltObservationLogStore, BuiltObservationLogTaskLockStore, MemoryTaskUsageReport, NewObservationLogEntry, ObservationLogEntry, ObservationLogMarker, ObservationLogMerge, ObservationLogReadOptions, ObservationLogReflection, ObservationLogReflectionResult, ObservationLogScope, ObservationLogStatus, ObservationLogTaskKind, ObservationLogTaskLockHandle, FinishReason, } from './types';
|
|
1
|
+
export type { BuiltTool, BuiltProviderTool, BuiltAgent, BuiltMemory, BuiltEpisodicMemoryCaptureStore, BuiltEpisodicMemoryStore, BuiltGuardrail, GuardrailDecision, GuardrailModelCallContext, GuardrailModelCallSource, GuardrailStop, GuardrailToolCallContext, GuardrailsOptions, ModelGuardrail, PiiDetectionType, BuiltEval, RunOptions, AgentResult, GenerateResult, StreamResult, EvalInput, EvalScore, EvalRunResult, EvalResults, ToolContext, ToolCancellationContext, ToolExecutionContext, ToolApprovalContext, InterruptibleToolContext, ToolSuspendOptions, CheckpointStore, StreamChunk, Provider, ThinkingConfig, ThinkingConfigFor, AnthropicThinkingEffort, AnthropicThinkingConfig, OpenAIReasoningEffort, OpenAIThinkingConfig, GoogleThinkingConfig, XaiThinkingConfig, ReasoningLevel, SerializableAgentState, AgentRunState, MemoryConfig, ObservationLogMemoryConfig, MemoryDescriptor, ObservationCapableMemory, TitleGenerationConfig, Thread, EpisodicMemoryConfig, EpisodicMemoryCaptureCandidate, EpisodicMemoryCaptureKind, EpisodicMemoryCaptureMethods, EpisodicMemoryCaptureStatus, EpisodicMemoryEmbeddingProviderOptions, EpisodicMemoryEntry, EpisodicMemoryEntrySource, EpisodicMemoryMethods, EpisodicMemoryPrompts, EpisodicMemoryReflectFn, EpisodicMemoryReflectResult, EpisodicMemoryReflection, EpisodicMemoryReflectionApply, EpisodicMemoryReflectionApplyMerge, EpisodicMemoryReflectionMerge, EpisodicMemoryReflectionResult, EpisodicMemoryReflectorInput, EpisodicMemoryScope, EpisodicMemorySearchOptions, EpisodicMemoryStatus, EpisodicMemoryTaskLockHandle, EpisodicMemoryTaskLockMethods, NewEpisodicMemoryCaptureCandidate, NewEpisodicMemoryEntry, NewEpisodicMemoryEntrySource, NewEpisodicMemoryEntrySourceForEntry, RetrievedEpisodicMemoryEntry, ResumeOptions, McpServerConfig, McpToolCallSettledEvent, McpConnectionFailedEvent, McpVerifyResult, ModelConfig, ExecutionOptions, AgentInputBoundary, SmoothStreamOptions, TokenUsage, AgentExecutionCounter, SideCallTask, SideCallUsageReport, PersistedExecutionOptions, AnthropicPromptCachingConfig, OpenAIPromptCachingConfig, PromptCachingConfig, BuiltTelemetry, AttributeValue, ObservationCursor, ObservationalMemoryConfig, BuiltObservationLogStore, BuiltObservationLogTaskLockStore, MemoryTaskUsageReport, NewObservationLogEntry, ObservationLogEntry, ObservationLogMarker, ObservationLogMerge, ObservationLogObserveResult, ObservationLogReadOptions, ObservationLogReflection, ObservationLogReflectResult, ObservationLogReflectionResult, ObservationLogScope, ObservationLogStatus, ObservationLogTaskKind, ObservationLogTaskLockHandle, FinishReason, } from './types';
|
|
2
2
|
export { FINISH_REASONS, isFinishReason } from './types';
|
|
3
3
|
export type { ProviderOptions } from '@ai-sdk/provider-utils';
|
|
4
4
|
export { AgentEvent } from './types';
|
|
@@ -17,6 +17,8 @@ export { VectorStore } from './sdk/vector-store';
|
|
|
17
17
|
export { FILTER_OPERATORS, normalizeFilterInput, assertValidFilter, buildFilterInputSchema, } from './sdk/vector-store-filter';
|
|
18
18
|
export type { VectorFilterInput } from './sdk/vector-store-filter';
|
|
19
19
|
export { Guardrail } from './sdk/guardrail';
|
|
20
|
+
export { budgetMonthKey, createBudgetGuardrail } from './runtime/guardrails/budget-guardrail';
|
|
21
|
+
export type { BudgetGuardrailOptions, SpendEntry, SpendLedger, SpendTotal, } from './runtime/guardrails/budget-guardrail';
|
|
20
22
|
export { redactText, redactDeep, redactionOptionsFromGuardrail, DEFAULT_PLACEHOLDER, StreamingRedactor, resolvePatterns, passesLuhn, SUPPORTED_PII_CATEGORIES, } from './sdk/guardrails';
|
|
21
23
|
export type { RedactionOptions, RedactionResult, DeepRedactionResult, RedactionCategory, RedactionPattern, } from './sdk/guardrails';
|
|
22
24
|
export { Eval } from './sdk/eval';
|
|
@@ -66,7 +68,7 @@ export { generateTitleFromMessage } from './runtime/memory/title-generation';
|
|
|
66
68
|
export { activeLifecycleState, droppedLifecycleState, markLifecycleActive, markLifecycleDropped, markLifecycleSuperseded, normalizeFlatReflectionActions, supersededLifecycleState, uniqueStrings, } from './runtime/memory/memory-lifecycle';
|
|
67
69
|
export { RECALL_MEMORY_TOOL_NAME, createRecallMemoryTool, getEpisodicMemoryScope, hashEpisodicMemoryContent, hashEpisodicMemoryEvidence, hasEpisodicMemoryCaptureStore, hasEpisodicMemoryStore, isEpisodicMemoryEnabled, rankEpisodicMemoryEntries, withEpisodicMemoryDefaults, } from './runtime/memory/episodic-memory';
|
|
68
70
|
export { FLAG_MEMORY_TOOL_NAME, createFlagMemoryTool, runEpisodicMemoryCandidateProcessor, } from './runtime/memory/episodic-memory-capture';
|
|
69
|
-
export type { RunEpisodicMemoryCandidateProcessorOpts, RunEpisodicMemoryCandidateProcessorResult, } from './runtime/memory/episodic-memory-capture';
|
|
71
|
+
export type { RunEpisodicMemoryCandidateProcessorOpts, RunEpisodicMemoryCandidateProcessorResult, EpisodicMemoryUsageReport, } from './runtime/memory/episodic-memory-capture';
|
|
70
72
|
export { DEFAULT_EPISODIC_MEMORY_CAPTURE_TOOL_INSTRUCTION, DEFAULT_EPISODIC_MEMORY_EMBEDDING_MODEL, DEFAULT_EPISODIC_MEMORY_MAX_ENTRIES_PER_RUN, DEFAULT_EPISODIC_MEMORY_RECALL_TOOL_INSTRUCTION, DEFAULT_EPISODIC_MEMORY_REFLECTION_PROMPT, DEFAULT_EPISODIC_MEMORY_TOP_K, buildEpisodicMemoryReflectorPrompt, createEpisodicMemoryReflectFn, } from './runtime/memory/episodic-memory-defaults';
|
|
71
73
|
export type { CreateEpisodicMemoryReflectFnOptions } from './runtime/memory/episodic-memory-defaults';
|
|
72
74
|
export type { MemoryLifecycleState, MemoryLifecycleStatus, } from './runtime/memory/memory-lifecycle';
|
package/dist/index.js
CHANGED
|
@@ -33,10 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
37
|
-
exports.
|
|
38
|
-
exports.
|
|
39
|
-
exports.zodToJsonSchema = exports.isZodSchema = exports.modelConfigToId = exports.ProcessHandle = exports.SandboxProcessManager = exports.reconcileToolResultRuns = exports.createWorkspaceTools = exports.createScopedWorkspace = exports.CORE_WORKSPACE_TOOL_NAMES = exports.BaseSandbox = exports.BaseFilesystem = exports.Workspace = exports.DEFAULT_OBSERVATION_LOG_TAIL_LIMIT = exports.DEFAULT_OBSERVATION_LOG_RENDER_TOKEN_BUDGET = void 0;
|
|
36
|
+
exports.createRuntimeSkillRegistry = exports.appendSkillCatalogToInstructions = exports.Agent = exports.LangSmithTelemetry = exports.deriveSubAgentTelemetry = exports.Telemetry = exports.evals = exports.evaluate = exports.Eval = exports.SUPPORTED_PII_CATEGORIES = exports.passesLuhn = exports.resolvePatterns = exports.StreamingRedactor = exports.DEFAULT_PLACEHOLDER = exports.redactionOptionsFromGuardrail = exports.redactDeep = exports.redactText = exports.createBudgetGuardrail = exports.budgetMonthKey = exports.Guardrail = exports.buildFilterInputSchema = exports.assertValidFilter = exports.normalizeFilterInput = exports.FILTER_OPERATORS = exports.VectorStore = exports.Memory = exports.wrapUntrustedData = exports.UNTRUSTED_OUTPUT_DOCTRINE = exports.stripInvisibleUnicode = exports.sanitizeToolName = exports.wrapToolForApproval = exports.Tool = exports.APPROVAL_SUSPEND_SCHEMA = exports.APPROVAL_RESUME_SCHEMA = exports.ModelStreamStallError = exports.DEFAULT_MODEL_STREAM_IDLE_TIMEOUT_MS = exports.DEFAULT_MODEL_STREAM_FIRST_OUTPUT_TIMEOUT_MS = exports.throwIfAborted = exports.raceWithAbort = exports.isAbortError = exports.createAbortError = exports.CANCELLATION_TYPE = exports.isCancellation = exports.createCancellation = exports.estimateObservationTokens = exports.OBSERVATION_LOG_STATUSES = exports.OBSERVATION_LOG_MARKERS = exports.AgentEvent = exports.isFinishReason = exports.FINISH_REASONS = void 0;
|
|
37
|
+
exports.WRITE_TODOS_TOOL_NAME = exports.renderDelegateSubAgentPrompt = exports.parseDelegateSubAgentContinuation = exports.isDelegateSubAgentTool = exports.getInlineDelegateSubAgentToolOptions = exports.generateResultToDelegateSubAgentOutput = exports.failedDelegatedChildSuspendOutput = exports.createDelegateSubAgentTool = exports.SUB_AGENT_TASK_DIFFICULTIES = exports.INLINE_SUB_AGENT_ID = exports.DELEGATED_CHILD_SUSPEND_UNSUPPORTED_MESSAGE = exports.DELEGATE_SUB_AGENT_TOOL_NAME = exports.sanitizeSubAgentTaskName = exports.isSubAgentTaskPath = exports.createChildSubAgentTaskPath = exports.assertSubAgentTaskPath = exports.ROOT_SUB_AGENT_TASK_PATH = exports.DEFAULT_SUB_AGENT_MAX_CHILDREN = exports.createModel = exports.BaseVectorStore = exports.BaseMemory = exports.fetchProviderCatalog = exports.isLlmMessage = exports.getCreatedAt = exports.filterLlmMessages = exports.stripHydratedFileData = exports.verify = exports.providerTools = exports.mcpContentToModelParts = exports.mcpContentToMessageParts = exports.hasMcpMediaContent = exports.McpClient = exports.validateRuntimeSkill = exports.SKILL_LOAD_TOOL_NAME = exports.RUNTIME_SKILL_REGISTRY_SCHEMA_VERSION = exports.RUNTIME_SKILL_NAME_PATTERN = exports.RUNTIME_SKILL_LINKED_FILE_GROUPS = exports.RUNTIME_SKILL_MAX_OUTPUT_BYTES = exports.RUNTIME_SKILL_FILE_NAME = exports.RUNTIME_SKILL_TOOL_NAMES = exports.renderSkillCatalogPrompt = exports.parseRuntimeSkillMarkdown = exports.loadRuntimeSkillSourceFromDirectory = exports.loadRuntimeSkillsFromDirectory = exports.InvalidRuntimeSkillError = exports.formatSkillValidationErrors = exports.filterRuntimeSkillSource = exports.createSkillLoadTool = exports.createRuntimeSkillTools = exports.createRuntimeSkillSource = void 0;
|
|
38
|
+
exports.DEFAULT_OBSERVATION_LOG_OBSERVER_THRESHOLD_TOKENS = exports.DEFAULT_OBSERVATION_LOG_OBSERVER_PROMPT = exports.DEFAULT_OBSERVATION_LOG_LOCK_TTL_MS = exports.createObservationLogObserveFn = exports.createObservationLogReflectFn = exports.buildObservationLogObserverPrompt = exports.buildObservationLogReflectorPrompt = exports.ScopedMemoryTaskRunner = exports.runObservationLogReflector = exports.renderObservationLogForReflection = exports.parseObservationLogReflectionJson = exports.normalizeObservationLogReflection = exports.wrapUntrustedObserverData = exports.runObservationLogObserver = exports.renderObserverTranscript = exports.parseObservationLogMarkdown = exports.createEpisodicMemoryReflectFn = exports.buildEpisodicMemoryReflectorPrompt = exports.DEFAULT_EPISODIC_MEMORY_TOP_K = exports.DEFAULT_EPISODIC_MEMORY_REFLECTION_PROMPT = exports.DEFAULT_EPISODIC_MEMORY_RECALL_TOOL_INSTRUCTION = exports.DEFAULT_EPISODIC_MEMORY_MAX_ENTRIES_PER_RUN = exports.DEFAULT_EPISODIC_MEMORY_EMBEDDING_MODEL = exports.DEFAULT_EPISODIC_MEMORY_CAPTURE_TOOL_INSTRUCTION = exports.runEpisodicMemoryCandidateProcessor = exports.createFlagMemoryTool = exports.FLAG_MEMORY_TOOL_NAME = exports.withEpisodicMemoryDefaults = exports.rankEpisodicMemoryEntries = exports.isEpisodicMemoryEnabled = exports.hasEpisodicMemoryStore = exports.hasEpisodicMemoryCaptureStore = exports.hashEpisodicMemoryEvidence = exports.hashEpisodicMemoryContent = exports.getEpisodicMemoryScope = exports.createRecallMemoryTool = exports.RECALL_MEMORY_TOOL_NAME = exports.uniqueStrings = exports.supersededLifecycleState = exports.normalizeFlatReflectionActions = exports.markLifecycleSuperseded = exports.markLifecycleDropped = exports.markLifecycleActive = exports.droppedLifecycleState = exports.activeLifecycleState = exports.generateTitleFromMessage = exports.createEmbeddingModel = exports.isAttachmentValidationError = exports.createPlannerTodosTool = exports.createWriteTodosTool = void 0;
|
|
39
|
+
exports.zodToJsonSchema = exports.isZodSchema = exports.modelConfigToId = exports.ProcessHandle = exports.SandboxProcessManager = exports.reconcileToolResultRuns = exports.createWorkspaceTools = exports.createScopedWorkspace = exports.CORE_WORKSPACE_TOOL_NAMES = exports.BaseSandbox = exports.BaseFilesystem = exports.Workspace = exports.DEFAULT_OBSERVATION_LOG_TAIL_LIMIT = exports.DEFAULT_OBSERVATION_LOG_RENDER_TOKEN_BUDGET = exports.DEFAULT_OBSERVATION_LOG_REFLECTOR_THRESHOLD_TOKENS = exports.DEFAULT_OBSERVATION_LOG_REFLECTOR_PROMPT = void 0;
|
|
40
40
|
var types_1 = require("./types");
|
|
41
41
|
Object.defineProperty(exports, "FINISH_REASONS", { enumerable: true, get: function () { return types_1.FINISH_REASONS; } });
|
|
42
42
|
Object.defineProperty(exports, "isFinishReason", { enumerable: true, get: function () { return types_1.isFinishReason; } });
|
|
@@ -81,6 +81,9 @@ Object.defineProperty(exports, "assertValidFilter", { enumerable: true, get: fun
|
|
|
81
81
|
Object.defineProperty(exports, "buildFilterInputSchema", { enumerable: true, get: function () { return vector_store_filter_1.buildFilterInputSchema; } });
|
|
82
82
|
var guardrail_1 = require("./sdk/guardrail");
|
|
83
83
|
Object.defineProperty(exports, "Guardrail", { enumerable: true, get: function () { return guardrail_1.Guardrail; } });
|
|
84
|
+
var budget_guardrail_1 = require("./runtime/guardrails/budget-guardrail");
|
|
85
|
+
Object.defineProperty(exports, "budgetMonthKey", { enumerable: true, get: function () { return budget_guardrail_1.budgetMonthKey; } });
|
|
86
|
+
Object.defineProperty(exports, "createBudgetGuardrail", { enumerable: true, get: function () { return budget_guardrail_1.createBudgetGuardrail; } });
|
|
84
87
|
var guardrails_1 = require("./sdk/guardrails");
|
|
85
88
|
Object.defineProperty(exports, "redactText", { enumerable: true, get: function () { return guardrails_1.redactText; } });
|
|
86
89
|
Object.defineProperty(exports, "redactDeep", { enumerable: true, get: function () { return guardrails_1.redactDeep; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ModelGuardrail } from '../../types';
|
|
2
|
+
export interface SpendEntry {
|
|
3
|
+
key: string;
|
|
4
|
+
usd: number;
|
|
5
|
+
}
|
|
6
|
+
export interface SpendTotal {
|
|
7
|
+
key: string;
|
|
8
|
+
totalUsd: number;
|
|
9
|
+
previousUsd: number;
|
|
10
|
+
}
|
|
11
|
+
export interface SpendLedger {
|
|
12
|
+
add(callId: string, entries: SpendEntry[]): Promise<SpendTotal[]>;
|
|
13
|
+
read(key: string): Promise<number>;
|
|
14
|
+
}
|
|
15
|
+
export interface BudgetGuardrailOptions {
|
|
16
|
+
ledger: SpendLedger;
|
|
17
|
+
sessionId?: string;
|
|
18
|
+
agentId?: string;
|
|
19
|
+
sessionCostCapUsd?: number;
|
|
20
|
+
monthlyBudgetUsd?: number;
|
|
21
|
+
alertThresholdPercent?: number;
|
|
22
|
+
onNotice?: (notice: {
|
|
23
|
+
code: 'budget.alert';
|
|
24
|
+
}) => void;
|
|
25
|
+
}
|
|
26
|
+
export declare function budgetMonthKey(agentId: string, now?: Date): string;
|
|
27
|
+
export declare function createBudgetGuardrail(options: BudgetGuardrailOptions): ModelGuardrail;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.budgetMonthKey = budgetMonthKey;
|
|
4
|
+
exports.createBudgetGuardrail = createBudgetGuardrail;
|
|
5
|
+
const SESSION_STOP = { action: 'stop', code: 'budget.session' };
|
|
6
|
+
const MONTHLY_STOP = { action: 'stop', code: 'budget.monthly' };
|
|
7
|
+
const MISCONFIGURED = { action: 'stop', code: 'budget.misconfigured' };
|
|
8
|
+
const ALLOW = { action: 'allow' };
|
|
9
|
+
function budgetMonthKey(agentId, now = new Date()) {
|
|
10
|
+
return `${agentId}:${now.toISOString().slice(0, 7)}`;
|
|
11
|
+
}
|
|
12
|
+
function hasId(value) {
|
|
13
|
+
return value !== undefined && value.length > 0;
|
|
14
|
+
}
|
|
15
|
+
function positiveUsd(value) {
|
|
16
|
+
if (value === undefined || !Number.isFinite(value) || value <= 0)
|
|
17
|
+
return undefined;
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
function createBudgetGuardrail(options) {
|
|
21
|
+
const { ledger, sessionId, agentId, alertThresholdPercent, onNotice } = options;
|
|
22
|
+
const sessionCostCapUsd = positiveUsd(options.sessionCostCapUsd);
|
|
23
|
+
const monthlyBudgetUsd = positiveUsd(options.monthlyBudgetUsd);
|
|
24
|
+
const alertLine = monthlyBudgetUsd !== undefined && alertThresholdPercent !== undefined
|
|
25
|
+
? (monthlyBudgetUsd * alertThresholdPercent) / 100
|
|
26
|
+
: undefined;
|
|
27
|
+
return {
|
|
28
|
+
async before() {
|
|
29
|
+
if (sessionCostCapUsd !== undefined && !hasId(sessionId))
|
|
30
|
+
return MISCONFIGURED;
|
|
31
|
+
if (monthlyBudgetUsd !== undefined && !hasId(agentId))
|
|
32
|
+
return MISCONFIGURED;
|
|
33
|
+
if (sessionCostCapUsd !== undefined && hasId(sessionId)) {
|
|
34
|
+
const spent = await ledger.read(sessionId);
|
|
35
|
+
if (spent >= sessionCostCapUsd)
|
|
36
|
+
return SESSION_STOP;
|
|
37
|
+
}
|
|
38
|
+
if (monthlyBudgetUsd !== undefined && hasId(agentId)) {
|
|
39
|
+
const spent = await ledger.read(budgetMonthKey(agentId));
|
|
40
|
+
if (spent >= monthlyBudgetUsd)
|
|
41
|
+
return MONTHLY_STOP;
|
|
42
|
+
}
|
|
43
|
+
return ALLOW;
|
|
44
|
+
},
|
|
45
|
+
async after(ctx, usage) {
|
|
46
|
+
const cost = usage?.cost;
|
|
47
|
+
if (cost === undefined)
|
|
48
|
+
return;
|
|
49
|
+
const entries = [];
|
|
50
|
+
if (sessionCostCapUsd !== undefined && hasId(sessionId)) {
|
|
51
|
+
entries.push({ key: sessionId, usd: cost });
|
|
52
|
+
}
|
|
53
|
+
const month = hasId(agentId) ? budgetMonthKey(agentId) : undefined;
|
|
54
|
+
if (monthlyBudgetUsd !== undefined && month !== undefined) {
|
|
55
|
+
entries.push({ key: month, usd: cost });
|
|
56
|
+
}
|
|
57
|
+
if (entries.length === 0)
|
|
58
|
+
return;
|
|
59
|
+
const totals = await ledger.add(ctx.callId, entries);
|
|
60
|
+
if (alertLine === undefined || month === undefined)
|
|
61
|
+
return;
|
|
62
|
+
const monthTotal = totals.find((total) => total.key === month);
|
|
63
|
+
if (!monthTotal)
|
|
64
|
+
return;
|
|
65
|
+
if (monthTotal.previousUsd < alertLine && monthTotal.totalUsd >= alertLine) {
|
|
66
|
+
onNotice?.({ code: 'budget.alert' });
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=budget-guardrail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget-guardrail.js","sourceRoot":"","sources":["../../../src/runtime/guardrails/budget-guardrail.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { GuardrailModelCallContext, GuardrailModelCallSource, GuardrailStop, GuardrailToolCallContext, GuardrailsOptions, TokenUsage } from '../../types';
|
|
2
|
+
export declare class GuardrailRunner {
|
|
3
|
+
private readonly hooks;
|
|
4
|
+
private readonly ids;
|
|
5
|
+
private constructor();
|
|
6
|
+
static from(options: GuardrailsOptions | undefined): GuardrailRunner | undefined;
|
|
7
|
+
modelCallContext(source: GuardrailModelCallSource, model: string): GuardrailModelCallContext;
|
|
8
|
+
toolCallContext(call: {
|
|
9
|
+
toolCallId: string;
|
|
10
|
+
toolName: string;
|
|
11
|
+
input: unknown;
|
|
12
|
+
runId: string;
|
|
13
|
+
}): GuardrailToolCallContext;
|
|
14
|
+
before(ctx: GuardrailModelCallContext): Promise<GuardrailStop | undefined>;
|
|
15
|
+
after(ctx: GuardrailModelCallContext, usage: TokenUsage | undefined): Promise<void>;
|
|
16
|
+
beforeTool(ctx: GuardrailToolCallContext): Promise<GuardrailStop | undefined>;
|
|
17
|
+
afterTool(ctx: GuardrailToolCallContext, result: unknown): Promise<void>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GuardrailRunner = void 0;
|
|
4
|
+
class GuardrailRunner {
|
|
5
|
+
constructor(hooks, ids) {
|
|
6
|
+
this.hooks = hooks;
|
|
7
|
+
this.ids = ids;
|
|
8
|
+
}
|
|
9
|
+
static from(options) {
|
|
10
|
+
if (!options || options.hooks.length === 0)
|
|
11
|
+
return undefined;
|
|
12
|
+
return new GuardrailRunner(options.hooks, {
|
|
13
|
+
agentId: options.agentId,
|
|
14
|
+
threadId: options.threadId,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
modelCallContext(source, model) {
|
|
18
|
+
return { callId: crypto.randomUUID(), ...this.ids, model, source };
|
|
19
|
+
}
|
|
20
|
+
toolCallContext(call) {
|
|
21
|
+
return { ...call, ...this.ids };
|
|
22
|
+
}
|
|
23
|
+
async before(ctx) {
|
|
24
|
+
for (const hook of this.hooks) {
|
|
25
|
+
const decision = await hook.before?.(ctx);
|
|
26
|
+
if (decision?.action === 'stop')
|
|
27
|
+
return { code: decision.code };
|
|
28
|
+
}
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
async after(ctx, usage) {
|
|
32
|
+
for (const hook of this.hooks) {
|
|
33
|
+
await hook.after?.(ctx, usage);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async beforeTool(ctx) {
|
|
37
|
+
for (const hook of this.hooks) {
|
|
38
|
+
const decision = await hook.beforeTool?.(ctx);
|
|
39
|
+
if (decision?.action === 'stop')
|
|
40
|
+
return { code: decision.code };
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
async afterTool(ctx, result) {
|
|
45
|
+
for (const hook of this.hooks) {
|
|
46
|
+
await hook.afterTool?.(ctx, result);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.GuardrailRunner = GuardrailRunner;
|
|
51
|
+
//# sourceMappingURL=guardrail-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrail-runner.js","sourceRoot":"","sources":["../../../src/runtime/guardrails/guardrail-runner.ts"],"names":[],"mappings":";;;AAiBA;IACC,YACkB,KAAuB,EACvB,GAAiB;qBADjB,KAAK;mBACL,GAAG;IAClB,CAAC;IAGJ,MAAM,CAAC,IAAI,CAAC,OAAsC;QACjD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7D,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;YACzC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,MAAgC,EAAE,KAAa;QAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACpE,CAAC;IAED,eAAe,CAAC,IAKf;QACA,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAA8B;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,QAAQ,EAAE,MAAM,KAAK,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAA8B,EAAE,KAA6B;QACxE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAA6B;QAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,QAAQ,EAAE,MAAM,KAAK,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAA6B,EAAE,MAAe;QAC7D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;CACD"}
|
|
@@ -17,7 +17,7 @@ export declare class AgentRuntime {
|
|
|
17
17
|
private context;
|
|
18
18
|
private toolExecutor;
|
|
19
19
|
private activeSkills?;
|
|
20
|
-
constructor(
|
|
20
|
+
constructor(runtimeConfig: AgentRuntimeConfig);
|
|
21
21
|
setTelemetry(telemetry: BuiltTelemetry | undefined): void;
|
|
22
22
|
dispose(): Promise<void>;
|
|
23
23
|
getState(): SerializableAgentState;
|
|
@@ -26,6 +26,7 @@ export declare class AgentRuntime {
|
|
|
26
26
|
stream(input: AgentMessage[] | string, options?: RunOptions & ExecutionOptions): Promise<StreamResult>;
|
|
27
27
|
resume(method: 'generate', data: unknown, options: ResumeOptions & ExecutionOptions): Promise<GenerateResult>;
|
|
28
28
|
resume(method: 'stream', data: unknown, options: ResumeOptions & ExecutionOptions): Promise<StreamResult>;
|
|
29
|
+
resumePaused(options: Omit<ResumeOptions, 'toolCallId'> & ExecutionOptions): Promise<StreamResult>;
|
|
29
30
|
crashResume(options: {
|
|
30
31
|
runId: string;
|
|
31
32
|
contextNotes?: string[];
|
|
@@ -45,8 +46,9 @@ export declare class AgentRuntime {
|
|
|
45
46
|
private createRunServices;
|
|
46
47
|
private maybeGenerateTitle;
|
|
47
48
|
private runAgentLoop;
|
|
49
|
+
private consumeAdditionalInput;
|
|
48
50
|
private prepareLoop;
|
|
49
|
-
private
|
|
51
|
+
private getRejectableInputIds;
|
|
50
52
|
private buildToolBatchContext;
|
|
51
53
|
private resumePendingTools;
|
|
52
54
|
private runLoopIteration;
|