@lleverage-ai/agent-sdk 0.0.1
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/LICENSE +21 -0
- package/README.md +2321 -0
- package/dist/agent.d.ts +52 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +2122 -0
- package/dist/agent.js.map +1 -0
- package/dist/backend.d.ts +378 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +71 -0
- package/dist/backend.js.map +1 -0
- package/dist/backends/composite.d.ts +258 -0
- package/dist/backends/composite.d.ts.map +1 -0
- package/dist/backends/composite.js +437 -0
- package/dist/backends/composite.js.map +1 -0
- package/dist/backends/filesystem.d.ts +268 -0
- package/dist/backends/filesystem.d.ts.map +1 -0
- package/dist/backends/filesystem.js +623 -0
- package/dist/backends/filesystem.js.map +1 -0
- package/dist/backends/index.d.ts +14 -0
- package/dist/backends/index.d.ts.map +1 -0
- package/dist/backends/index.js +14 -0
- package/dist/backends/index.js.map +1 -0
- package/dist/backends/persistent.d.ts +312 -0
- package/dist/backends/persistent.d.ts.map +1 -0
- package/dist/backends/persistent.js +519 -0
- package/dist/backends/persistent.js.map +1 -0
- package/dist/backends/sandbox.d.ts +315 -0
- package/dist/backends/sandbox.d.ts.map +1 -0
- package/dist/backends/sandbox.js +490 -0
- package/dist/backends/sandbox.js.map +1 -0
- package/dist/backends/state.d.ts +225 -0
- package/dist/backends/state.d.ts.map +1 -0
- package/dist/backends/state.js +396 -0
- package/dist/backends/state.js.map +1 -0
- package/dist/checkpointer/file-saver.d.ts +182 -0
- package/dist/checkpointer/file-saver.d.ts.map +1 -0
- package/dist/checkpointer/file-saver.js +298 -0
- package/dist/checkpointer/file-saver.js.map +1 -0
- package/dist/checkpointer/index.d.ts +40 -0
- package/dist/checkpointer/index.d.ts.map +1 -0
- package/dist/checkpointer/index.js +40 -0
- package/dist/checkpointer/index.js.map +1 -0
- package/dist/checkpointer/kv-saver.d.ts +142 -0
- package/dist/checkpointer/kv-saver.d.ts.map +1 -0
- package/dist/checkpointer/kv-saver.js +176 -0
- package/dist/checkpointer/kv-saver.js.map +1 -0
- package/dist/checkpointer/memory-saver.d.ts +158 -0
- package/dist/checkpointer/memory-saver.d.ts.map +1 -0
- package/dist/checkpointer/memory-saver.js +222 -0
- package/dist/checkpointer/memory-saver.js.map +1 -0
- package/dist/checkpointer/types.d.ts +353 -0
- package/dist/checkpointer/types.d.ts.map +1 -0
- package/dist/checkpointer/types.js +159 -0
- package/dist/checkpointer/types.js.map +1 -0
- package/dist/context-manager.d.ts +627 -0
- package/dist/context-manager.d.ts.map +1 -0
- package/dist/context-manager.js +1039 -0
- package/dist/context-manager.js.map +1 -0
- package/dist/context.d.ts +57 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +76 -0
- package/dist/context.js.map +1 -0
- package/dist/errors/index.d.ts +611 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +1023 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/generation-helpers.d.ts +126 -0
- package/dist/generation-helpers.d.ts.map +1 -0
- package/dist/generation-helpers.js +181 -0
- package/dist/generation-helpers.js.map +1 -0
- package/dist/hooks/audit.d.ts +210 -0
- package/dist/hooks/audit.d.ts.map +1 -0
- package/dist/hooks/audit.js +305 -0
- package/dist/hooks/audit.js.map +1 -0
- package/dist/hooks/cache.d.ts +180 -0
- package/dist/hooks/cache.d.ts.map +1 -0
- package/dist/hooks/cache.js +273 -0
- package/dist/hooks/cache.js.map +1 -0
- package/dist/hooks/guardrails.d.ts +145 -0
- package/dist/hooks/guardrails.d.ts.map +1 -0
- package/dist/hooks/guardrails.js +326 -0
- package/dist/hooks/guardrails.js.map +1 -0
- package/dist/hooks/index.d.ts +18 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +32 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/logging.d.ts +193 -0
- package/dist/hooks/logging.d.ts.map +1 -0
- package/dist/hooks/logging.js +345 -0
- package/dist/hooks/logging.js.map +1 -0
- package/dist/hooks/parallel-guardrails.d.ts +268 -0
- package/dist/hooks/parallel-guardrails.d.ts.map +1 -0
- package/dist/hooks/parallel-guardrails.js +416 -0
- package/dist/hooks/parallel-guardrails.js.map +1 -0
- package/dist/hooks/rate-limit.d.ts +305 -0
- package/dist/hooks/rate-limit.d.ts.map +1 -0
- package/dist/hooks/rate-limit.js +372 -0
- package/dist/hooks/rate-limit.js.map +1 -0
- package/dist/hooks/retry.d.ts +144 -0
- package/dist/hooks/retry.d.ts.map +1 -0
- package/dist/hooks/retry.js +210 -0
- package/dist/hooks/retry.js.map +1 -0
- package/dist/hooks/secrets.d.ts +174 -0
- package/dist/hooks/secrets.d.ts.map +1 -0
- package/dist/hooks/secrets.js +306 -0
- package/dist/hooks/secrets.js.map +1 -0
- package/dist/hooks.d.ts +229 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +352 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +97 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +182 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/env.d.ts +25 -0
- package/dist/mcp/env.d.ts.map +1 -0
- package/dist/mcp/env.js +18 -0
- package/dist/mcp/env.js.map +1 -0
- package/dist/mcp/index.d.ts +16 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +17 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/manager.d.ts +184 -0
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/manager.js +446 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/types.d.ts +58 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +7 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mcp/validation.d.ts +119 -0
- package/dist/mcp/validation.d.ts.map +1 -0
- package/dist/mcp/validation.js +407 -0
- package/dist/mcp/validation.js.map +1 -0
- package/dist/mcp/virtual-server.d.ts +78 -0
- package/dist/mcp/virtual-server.d.ts.map +1 -0
- package/dist/mcp/virtual-server.js +137 -0
- package/dist/mcp/virtual-server.js.map +1 -0
- package/dist/memory/filesystem-store.d.ts +217 -0
- package/dist/memory/filesystem-store.d.ts.map +1 -0
- package/dist/memory/filesystem-store.js +343 -0
- package/dist/memory/filesystem-store.js.map +1 -0
- package/dist/memory/index.d.ts +46 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +46 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/loader.d.ts +396 -0
- package/dist/memory/loader.d.ts.map +1 -0
- package/dist/memory/loader.js +419 -0
- package/dist/memory/loader.js.map +1 -0
- package/dist/memory/permissions.d.ts +282 -0
- package/dist/memory/permissions.d.ts.map +1 -0
- package/dist/memory/permissions.js +297 -0
- package/dist/memory/permissions.js.map +1 -0
- package/dist/memory/rules.d.ts +249 -0
- package/dist/memory/rules.d.ts.map +1 -0
- package/dist/memory/rules.js +362 -0
- package/dist/memory/rules.js.map +1 -0
- package/dist/memory/store.d.ts +286 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +263 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/middleware/apply.d.ts +73 -0
- package/dist/middleware/apply.d.ts.map +1 -0
- package/dist/middleware/apply.js +219 -0
- package/dist/middleware/apply.js.map +1 -0
- package/dist/middleware/context.d.ts +33 -0
- package/dist/middleware/context.d.ts.map +1 -0
- package/dist/middleware/context.js +176 -0
- package/dist/middleware/context.js.map +1 -0
- package/dist/middleware/index.d.ts +31 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +32 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/logging.d.ts +137 -0
- package/dist/middleware/logging.d.ts.map +1 -0
- package/dist/middleware/logging.js +374 -0
- package/dist/middleware/logging.js.map +1 -0
- package/dist/middleware/types.d.ts +183 -0
- package/dist/middleware/types.d.ts.map +1 -0
- package/dist/middleware/types.js +11 -0
- package/dist/middleware/types.js.map +1 -0
- package/dist/observability/events.d.ts +183 -0
- package/dist/observability/events.d.ts.map +1 -0
- package/dist/observability/events.js +305 -0
- package/dist/observability/events.js.map +1 -0
- package/dist/observability/index.d.ts +55 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +87 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/logger.d.ts +318 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +436 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/metrics.d.ts +341 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +490 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/preset.d.ts +161 -0
- package/dist/observability/preset.d.ts.map +1 -0
- package/dist/observability/preset.js +133 -0
- package/dist/observability/preset.js.map +1 -0
- package/dist/observability/streaming.d.ts +113 -0
- package/dist/observability/streaming.d.ts.map +1 -0
- package/dist/observability/streaming.js +114 -0
- package/dist/observability/streaming.js.map +1 -0
- package/dist/observability/tracing.d.ts +378 -0
- package/dist/observability/tracing.d.ts.map +1 -0
- package/dist/observability/tracing.js +539 -0
- package/dist/observability/tracing.js.map +1 -0
- package/dist/plugins.d.ts +55 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +63 -0
- package/dist/plugins.js.map +1 -0
- package/dist/presets/index.d.ts +7 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +7 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/production.d.ts +262 -0
- package/dist/presets/production.d.ts.map +1 -0
- package/dist/presets/production.js +295 -0
- package/dist/presets/production.js.map +1 -0
- package/dist/security/index.d.ts +179 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +323 -0
- package/dist/security/index.js.map +1 -0
- package/dist/subagents/advanced.d.ts +413 -0
- package/dist/subagents/advanced.d.ts.map +1 -0
- package/dist/subagents/advanced.js +396 -0
- package/dist/subagents/advanced.js.map +1 -0
- package/dist/subagents/index.d.ts +14 -0
- package/dist/subagents/index.d.ts.map +1 -0
- package/dist/subagents/index.js +15 -0
- package/dist/subagents/index.js.map +1 -0
- package/dist/subagents.d.ts +73 -0
- package/dist/subagents.d.ts.map +1 -0
- package/dist/subagents.js +213 -0
- package/dist/subagents.js.map +1 -0
- package/dist/task-store/file-store.d.ts +76 -0
- package/dist/task-store/file-store.d.ts.map +1 -0
- package/dist/task-store/file-store.js +190 -0
- package/dist/task-store/file-store.js.map +1 -0
- package/dist/task-store/index.d.ts +11 -0
- package/dist/task-store/index.d.ts.map +1 -0
- package/dist/task-store/index.js +10 -0
- package/dist/task-store/index.js.map +1 -0
- package/dist/task-store/kv-store.d.ts +140 -0
- package/dist/task-store/kv-store.d.ts.map +1 -0
- package/dist/task-store/kv-store.js +169 -0
- package/dist/task-store/kv-store.js.map +1 -0
- package/dist/task-store/memory-store.d.ts +66 -0
- package/dist/task-store/memory-store.d.ts.map +1 -0
- package/dist/task-store/memory-store.js +125 -0
- package/dist/task-store/memory-store.js.map +1 -0
- package/dist/task-store/types.d.ts +235 -0
- package/dist/task-store/types.d.ts.map +1 -0
- package/dist/task-store/types.js +110 -0
- package/dist/task-store/types.js.map +1 -0
- package/dist/testing/assertions.d.ts +401 -0
- package/dist/testing/assertions.d.ts.map +1 -0
- package/dist/testing/assertions.js +630 -0
- package/dist/testing/assertions.js.map +1 -0
- package/dist/testing/index.d.ts +343 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +360 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-agent.d.ts +214 -0
- package/dist/testing/mock-agent.d.ts.map +1 -0
- package/dist/testing/mock-agent.js +448 -0
- package/dist/testing/mock-agent.js.map +1 -0
- package/dist/testing/recorder.d.ts +288 -0
- package/dist/testing/recorder.d.ts.map +1 -0
- package/dist/testing/recorder.js +499 -0
- package/dist/testing/recorder.js.map +1 -0
- package/dist/tools/execute.d.ts +104 -0
- package/dist/tools/execute.d.ts.map +1 -0
- package/dist/tools/execute.js +191 -0
- package/dist/tools/execute.js.map +1 -0
- package/dist/tools/factory.d.ts +260 -0
- package/dist/tools/factory.d.ts.map +1 -0
- package/dist/tools/factory.js +241 -0
- package/dist/tools/factory.js.map +1 -0
- package/dist/tools/filesystem.d.ts +215 -0
- package/dist/tools/filesystem.d.ts.map +1 -0
- package/dist/tools/filesystem.js +311 -0
- package/dist/tools/filesystem.js.map +1 -0
- package/dist/tools/index.d.ts +33 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +33 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/search.d.ts +59 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +94 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/skills.d.ts +354 -0
- package/dist/tools/skills.d.ts.map +1 -0
- package/dist/tools/skills.js +413 -0
- package/dist/tools/skills.js.map +1 -0
- package/dist/tools/task.d.ts +272 -0
- package/dist/tools/task.d.ts.map +1 -0
- package/dist/tools/task.js +521 -0
- package/dist/tools/task.js.map +1 -0
- package/dist/tools/todos.d.ts +131 -0
- package/dist/tools/todos.d.ts.map +1 -0
- package/dist/tools/todos.js +120 -0
- package/dist/tools/todos.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +424 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +607 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/user-interaction.d.ts +116 -0
- package/dist/tools/user-interaction.d.ts.map +1 -0
- package/dist/tools/user-interaction.js +147 -0
- package/dist/tools/user-interaction.js.map +1 -0
- package/dist/tools/utils.d.ts +124 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +189 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tools.d.ts +74 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +73 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +2421 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +55 -0
- package/dist/types.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Preset bundles for quick agent setup.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
export { createProductionAgent, createSecureProductionAgent, DEFAULT_BLOCKED_INPUT_PATTERNS, DEFAULT_BLOCKED_OUTPUT_PATTERNS, } from "./production.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,GAIhC,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Production Agent Preset.
|
|
3
|
+
*
|
|
4
|
+
* Provides a convenience function for creating production-ready agents
|
|
5
|
+
* with security, observability, and recommended hooks in a single call.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { LanguageModel } from "ai";
|
|
10
|
+
import { type ObservabilityPreset, type ObservabilityPresetOptions } from "../observability/preset.js";
|
|
11
|
+
import { type SecurityPolicy, type SecurityPolicyPreset } from "../security/index.js";
|
|
12
|
+
import type { Agent, AgentOptions } from "../types.js";
|
|
13
|
+
/**
|
|
14
|
+
* Options for creating a production agent.
|
|
15
|
+
*
|
|
16
|
+
* @category Presets
|
|
17
|
+
*/
|
|
18
|
+
export interface ProductionAgentOptions {
|
|
19
|
+
/**
|
|
20
|
+
* The language model to use for generation.
|
|
21
|
+
*/
|
|
22
|
+
model: LanguageModel;
|
|
23
|
+
/**
|
|
24
|
+
* Security policy preset to apply.
|
|
25
|
+
* @defaultValue "production"
|
|
26
|
+
*/
|
|
27
|
+
securityPreset?: SecurityPolicyPreset;
|
|
28
|
+
/**
|
|
29
|
+
* Optional security policy overrides.
|
|
30
|
+
*/
|
|
31
|
+
securityOverrides?: Partial<SecurityPolicy>;
|
|
32
|
+
/**
|
|
33
|
+
* Whether to enable observability (logging, metrics, tracing).
|
|
34
|
+
* @defaultValue true
|
|
35
|
+
*/
|
|
36
|
+
enableObservability?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Observability configuration options.
|
|
39
|
+
*/
|
|
40
|
+
observabilityOptions?: ObservabilityPresetOptions;
|
|
41
|
+
/**
|
|
42
|
+
* Whether to enable secrets filtering to prevent credential leakage.
|
|
43
|
+
* @defaultValue true
|
|
44
|
+
*/
|
|
45
|
+
enableSecretsFilter?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Whether to enable guardrails for content filtering.
|
|
48
|
+
* @defaultValue false
|
|
49
|
+
*/
|
|
50
|
+
enableGuardrails?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Blocked input patterns for guardrails (regex patterns).
|
|
53
|
+
*/
|
|
54
|
+
blockedInputPatterns?: RegExp[];
|
|
55
|
+
/**
|
|
56
|
+
* Blocked output patterns for guardrails (regex patterns).
|
|
57
|
+
*/
|
|
58
|
+
blockedOutputPatterns?: RegExp[];
|
|
59
|
+
/**
|
|
60
|
+
* Additional agent options to merge with preset defaults.
|
|
61
|
+
* This can be used to add custom plugins, tools, checkpointers, etc.
|
|
62
|
+
*/
|
|
63
|
+
additionalOptions?: Partial<AgentOptions>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Result of creating a production agent.
|
|
67
|
+
*
|
|
68
|
+
* @category Presets
|
|
69
|
+
*/
|
|
70
|
+
export interface ProductionAgentResult {
|
|
71
|
+
/**
|
|
72
|
+
* The created agent instance.
|
|
73
|
+
*/
|
|
74
|
+
agent: Agent;
|
|
75
|
+
/**
|
|
76
|
+
* The observability preset (if enabled).
|
|
77
|
+
*/
|
|
78
|
+
observability?: ObservabilityPreset;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Creates a production-ready agent with security, observability, and recommended hooks.
|
|
82
|
+
*
|
|
83
|
+
* This function provides a convenient way to create an agent configured for production
|
|
84
|
+
* deployment in a single call. It combines:
|
|
85
|
+
* - Security policy presets (sandbox, permissions, tool restrictions)
|
|
86
|
+
* - Observability (logging, metrics, tracing)
|
|
87
|
+
* - Secrets filtering to prevent credential leakage
|
|
88
|
+
* - Optional guardrails for content filtering
|
|
89
|
+
*
|
|
90
|
+
* @param options - Configuration options
|
|
91
|
+
* @returns Production agent and observability preset
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* import { createProductionAgent } from "@lleverage-ai/agent-sdk";
|
|
96
|
+
* import { anthropic } from "@ai-sdk/anthropic";
|
|
97
|
+
*
|
|
98
|
+
* // One-line production agent setup
|
|
99
|
+
* const { agent, observability } = createProductionAgent({
|
|
100
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
101
|
+
* });
|
|
102
|
+
*
|
|
103
|
+
* // Access observability primitives
|
|
104
|
+
* observability.logger?.info("Agent started");
|
|
105
|
+
* observability.metrics?.requests.inc();
|
|
106
|
+
* ```
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* // Customize security and observability
|
|
111
|
+
* const { agent } = createProductionAgent({
|
|
112
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
113
|
+
* securityPreset: "readonly", // Maximum restrictions
|
|
114
|
+
* enableGuardrails: true, // Enable content filtering
|
|
115
|
+
* blockedInputPatterns: [/ignore.*instructions/i],
|
|
116
|
+
* observabilityOptions: {
|
|
117
|
+
* name: "my-production-agent",
|
|
118
|
+
* loggerOptions: { level: "warn" },
|
|
119
|
+
* },
|
|
120
|
+
* });
|
|
121
|
+
* ```
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* // Add custom plugins and checkpointers
|
|
126
|
+
* const { agent, observability } = createProductionAgent({
|
|
127
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
128
|
+
* additionalOptions: {
|
|
129
|
+
* plugins: [myCustomPlugin],
|
|
130
|
+
* checkpointer: createMemorySaver(),
|
|
131
|
+
* systemPrompt: "You are a helpful assistant.",
|
|
132
|
+
* },
|
|
133
|
+
* });
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* @category Presets
|
|
137
|
+
*/
|
|
138
|
+
export declare function createProductionAgent(options: ProductionAgentOptions): ProductionAgentResult;
|
|
139
|
+
/**
|
|
140
|
+
* Default blocked input patterns for secure production mode.
|
|
141
|
+
*
|
|
142
|
+
* These patterns help prevent common prompt injection and jailbreak attempts.
|
|
143
|
+
*
|
|
144
|
+
* @category Presets
|
|
145
|
+
*/
|
|
146
|
+
export declare const DEFAULT_BLOCKED_INPUT_PATTERNS: RegExp[];
|
|
147
|
+
/**
|
|
148
|
+
* Default blocked output patterns for secure production mode.
|
|
149
|
+
*
|
|
150
|
+
* These patterns help prevent accidental credential/PII leakage.
|
|
151
|
+
*
|
|
152
|
+
* @category Presets
|
|
153
|
+
*/
|
|
154
|
+
export declare const DEFAULT_BLOCKED_OUTPUT_PATTERNS: RegExp[];
|
|
155
|
+
/**
|
|
156
|
+
* Options for creating a secure production agent.
|
|
157
|
+
*
|
|
158
|
+
* This extends ProductionAgentOptions with secure-by-default values.
|
|
159
|
+
*
|
|
160
|
+
* @category Presets
|
|
161
|
+
*/
|
|
162
|
+
export interface SecureProductionAgentOptions extends Omit<ProductionAgentOptions, "enableGuardrails"> {
|
|
163
|
+
/**
|
|
164
|
+
* Whether to enable guardrails for content filtering.
|
|
165
|
+
* Unlike ProductionAgentOptions, this defaults to true.
|
|
166
|
+
* @defaultValue true
|
|
167
|
+
*/
|
|
168
|
+
enableGuardrails?: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Whether to use the default blocked input patterns.
|
|
171
|
+
* Set to false to only use custom patterns.
|
|
172
|
+
* @defaultValue true
|
|
173
|
+
*/
|
|
174
|
+
useDefaultInputPatterns?: boolean;
|
|
175
|
+
/**
|
|
176
|
+
* Whether to use the default blocked output patterns.
|
|
177
|
+
* Set to false to only use custom patterns.
|
|
178
|
+
* @defaultValue true
|
|
179
|
+
*/
|
|
180
|
+
useDefaultOutputPatterns?: boolean;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Creates a secure production-ready agent with all security features enabled by default.
|
|
184
|
+
*
|
|
185
|
+
* This is the **recommended entry point** for production deployments. It provides:
|
|
186
|
+
* - Production security policy (blocks dangerous commands, limits file operations)
|
|
187
|
+
* - **Guardrails enabled by default** (content filtering for inputs and outputs)
|
|
188
|
+
* - Secrets filtering to prevent credential leakage
|
|
189
|
+
* - Full observability (logging, metrics, tracing)
|
|
190
|
+
*
|
|
191
|
+
* Use this instead of `createProductionAgent()` unless you have specific reasons
|
|
192
|
+
* to disable guardrails or want more permissive defaults.
|
|
193
|
+
*
|
|
194
|
+
* @param options - Configuration options
|
|
195
|
+
* @returns Secure production agent and observability preset
|
|
196
|
+
*
|
|
197
|
+
* @example
|
|
198
|
+
* ```typescript
|
|
199
|
+
* import { createSecureProductionAgent } from "@lleverage-ai/agent-sdk";
|
|
200
|
+
* import { anthropic } from "@ai-sdk/anthropic";
|
|
201
|
+
*
|
|
202
|
+
* // Recommended production setup - all security features enabled
|
|
203
|
+
* const { agent, observability } = createSecureProductionAgent({
|
|
204
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
205
|
+
* });
|
|
206
|
+
*
|
|
207
|
+
* // Use the agent
|
|
208
|
+
* const result = await agent.generate({
|
|
209
|
+
* prompt: "Help me with a task",
|
|
210
|
+
* });
|
|
211
|
+
*
|
|
212
|
+
* // Access observability
|
|
213
|
+
* observability.logger?.info("Request completed");
|
|
214
|
+
* observability.metrics?.requests.inc();
|
|
215
|
+
* ```
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```typescript
|
|
219
|
+
* // Customize with additional blocked patterns
|
|
220
|
+
* const { agent } = createSecureProductionAgent({
|
|
221
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
222
|
+
* blockedInputPatterns: [
|
|
223
|
+
* /confidential/i, // Additional custom pattern
|
|
224
|
+
* ],
|
|
225
|
+
* blockedOutputPatterns: [
|
|
226
|
+
* /internal-only/i,
|
|
227
|
+
* ],
|
|
228
|
+
* observabilityOptions: {
|
|
229
|
+
* name: "my-secure-agent",
|
|
230
|
+
* },
|
|
231
|
+
* });
|
|
232
|
+
* ```
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* ```typescript
|
|
236
|
+
* // Disable default patterns, use only custom ones
|
|
237
|
+
* const { agent } = createSecureProductionAgent({
|
|
238
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
239
|
+
* useDefaultInputPatterns: false,
|
|
240
|
+
* useDefaultOutputPatterns: false,
|
|
241
|
+
* blockedInputPatterns: [/my-custom-pattern/],
|
|
242
|
+
* blockedOutputPatterns: [/another-pattern/],
|
|
243
|
+
* });
|
|
244
|
+
* ```
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```typescript
|
|
248
|
+
* // Add custom plugins and system prompt
|
|
249
|
+
* const { agent, observability } = createSecureProductionAgent({
|
|
250
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
251
|
+
* additionalOptions: {
|
|
252
|
+
* plugins: [myCustomPlugin],
|
|
253
|
+
* systemPrompt: "You are a helpful assistant.",
|
|
254
|
+
* checkpointer: createMemorySaver(),
|
|
255
|
+
* },
|
|
256
|
+
* });
|
|
257
|
+
* ```
|
|
258
|
+
*
|
|
259
|
+
* @category Presets
|
|
260
|
+
*/
|
|
261
|
+
export declare function createSecureProductionAgent(options: SecureProductionAgentOptions): ProductionAgentResult;
|
|
262
|
+
//# sourceMappingURL=production.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"production.d.ts","sourceRoot":"","sources":["../../src/presets/production.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGxC,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAA+C,MAAM,aAAa,CAAC;AAmCpG;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,aAAa,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAEtC;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAE5C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;IAElD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhC;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;OAEG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAmF5F;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,EAUlD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,EAAE,MAAM,EAOnD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,4BACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;IACxD;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,qBAAqB,CA0BvB"}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Production Agent Preset.
|
|
3
|
+
*
|
|
4
|
+
* Provides a convenience function for creating production-ready agents
|
|
5
|
+
* with security, observability, and recommended hooks in a single call.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import { createAgent } from "../agent.js";
|
|
10
|
+
import { createGuardrailsHooks, createSecretsFilterHooks } from "../hooks/index.js";
|
|
11
|
+
import { createObservabilityPreset, } from "../observability/preset.js";
|
|
12
|
+
import { applySecurityPolicy, } from "../security/index.js";
|
|
13
|
+
/**
|
|
14
|
+
* Type-safe helper to merge hook registrations.
|
|
15
|
+
* Handles both HookMatcher[] (tool hooks) and HookCallback[] (other hooks).
|
|
16
|
+
*/
|
|
17
|
+
function mergeHooks(target, source) {
|
|
18
|
+
const hookEvents = [
|
|
19
|
+
"PreToolUse",
|
|
20
|
+
"PostToolUse",
|
|
21
|
+
"PostToolUseFailure",
|
|
22
|
+
"PreGenerate",
|
|
23
|
+
"PostGenerate",
|
|
24
|
+
"PostGenerateFailure",
|
|
25
|
+
"SessionStart",
|
|
26
|
+
"SessionEnd",
|
|
27
|
+
"SubagentStart",
|
|
28
|
+
"SubagentStop",
|
|
29
|
+
];
|
|
30
|
+
for (const event of hookEvents) {
|
|
31
|
+
const sourceCallbacks = source[event];
|
|
32
|
+
if (sourceCallbacks) {
|
|
33
|
+
if (!target[event]) {
|
|
34
|
+
target[event] = sourceCallbacks;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
target[event] = [
|
|
38
|
+
...target[event],
|
|
39
|
+
...sourceCallbacks,
|
|
40
|
+
];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Creates a production-ready agent with security, observability, and recommended hooks.
|
|
47
|
+
*
|
|
48
|
+
* This function provides a convenient way to create an agent configured for production
|
|
49
|
+
* deployment in a single call. It combines:
|
|
50
|
+
* - Security policy presets (sandbox, permissions, tool restrictions)
|
|
51
|
+
* - Observability (logging, metrics, tracing)
|
|
52
|
+
* - Secrets filtering to prevent credential leakage
|
|
53
|
+
* - Optional guardrails for content filtering
|
|
54
|
+
*
|
|
55
|
+
* @param options - Configuration options
|
|
56
|
+
* @returns Production agent and observability preset
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* import { createProductionAgent } from "@lleverage-ai/agent-sdk";
|
|
61
|
+
* import { anthropic } from "@ai-sdk/anthropic";
|
|
62
|
+
*
|
|
63
|
+
* // One-line production agent setup
|
|
64
|
+
* const { agent, observability } = createProductionAgent({
|
|
65
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
66
|
+
* });
|
|
67
|
+
*
|
|
68
|
+
* // Access observability primitives
|
|
69
|
+
* observability.logger?.info("Agent started");
|
|
70
|
+
* observability.metrics?.requests.inc();
|
|
71
|
+
* ```
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* // Customize security and observability
|
|
76
|
+
* const { agent } = createProductionAgent({
|
|
77
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
78
|
+
* securityPreset: "readonly", // Maximum restrictions
|
|
79
|
+
* enableGuardrails: true, // Enable content filtering
|
|
80
|
+
* blockedInputPatterns: [/ignore.*instructions/i],
|
|
81
|
+
* observabilityOptions: {
|
|
82
|
+
* name: "my-production-agent",
|
|
83
|
+
* loggerOptions: { level: "warn" },
|
|
84
|
+
* },
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* // Add custom plugins and checkpointers
|
|
91
|
+
* const { agent, observability } = createProductionAgent({
|
|
92
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
93
|
+
* additionalOptions: {
|
|
94
|
+
* plugins: [myCustomPlugin],
|
|
95
|
+
* checkpointer: createMemorySaver(),
|
|
96
|
+
* systemPrompt: "You are a helpful assistant.",
|
|
97
|
+
* },
|
|
98
|
+
* });
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* @category Presets
|
|
102
|
+
*/
|
|
103
|
+
export function createProductionAgent(options) {
|
|
104
|
+
const { model, securityPreset = "production", securityOverrides, enableObservability = true, observabilityOptions, enableSecretsFilter = true, enableGuardrails = false, blockedInputPatterns, blockedOutputPatterns, additionalOptions, } = options;
|
|
105
|
+
// Apply security policy
|
|
106
|
+
const securityConfig = applySecurityPolicy(securityPreset, securityOverrides);
|
|
107
|
+
// Create observability preset
|
|
108
|
+
let observability;
|
|
109
|
+
if (enableObservability) {
|
|
110
|
+
observability = createObservabilityPreset({
|
|
111
|
+
name: observabilityOptions?.name ?? "production-agent",
|
|
112
|
+
...observabilityOptions,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
// Collect hooks from various sources in HookRegistration format
|
|
116
|
+
const hooksRegistration = {};
|
|
117
|
+
// Add observability hooks
|
|
118
|
+
if (observability?.hooks) {
|
|
119
|
+
mergeHooks(hooksRegistration, observability.hooks);
|
|
120
|
+
}
|
|
121
|
+
// Add security hooks from policy (already in HookRegistration format)
|
|
122
|
+
if (securityConfig.hooks) {
|
|
123
|
+
mergeHooks(hooksRegistration, securityConfig.hooks);
|
|
124
|
+
}
|
|
125
|
+
// Add secrets filter hooks (PreGenerate and PostGenerate)
|
|
126
|
+
if (enableSecretsFilter) {
|
|
127
|
+
const [preGenHook, postGenHook] = createSecretsFilterHooks();
|
|
128
|
+
if (!hooksRegistration.PreGenerate) {
|
|
129
|
+
hooksRegistration.PreGenerate = [];
|
|
130
|
+
}
|
|
131
|
+
if (!hooksRegistration.PostGenerate) {
|
|
132
|
+
hooksRegistration.PostGenerate = [];
|
|
133
|
+
}
|
|
134
|
+
hooksRegistration.PreGenerate.push(preGenHook);
|
|
135
|
+
hooksRegistration.PostGenerate.push(postGenHook);
|
|
136
|
+
}
|
|
137
|
+
// Add guardrails hooks (PreGenerate and PostGenerate)
|
|
138
|
+
if (enableGuardrails) {
|
|
139
|
+
const [preGenHook, postGenHook] = createGuardrailsHooks({
|
|
140
|
+
blockedInputPatterns,
|
|
141
|
+
blockedOutputPatterns,
|
|
142
|
+
});
|
|
143
|
+
if (!hooksRegistration.PreGenerate) {
|
|
144
|
+
hooksRegistration.PreGenerate = [];
|
|
145
|
+
}
|
|
146
|
+
if (!hooksRegistration.PostGenerate) {
|
|
147
|
+
hooksRegistration.PostGenerate = [];
|
|
148
|
+
}
|
|
149
|
+
hooksRegistration.PreGenerate.push(preGenHook);
|
|
150
|
+
hooksRegistration.PostGenerate.push(postGenHook);
|
|
151
|
+
}
|
|
152
|
+
// Check if we have any hooks
|
|
153
|
+
const hasHooks = Object.keys(hooksRegistration).length > 0;
|
|
154
|
+
// Create agent with combined configuration
|
|
155
|
+
const agent = createAgent({
|
|
156
|
+
model,
|
|
157
|
+
...securityConfig,
|
|
158
|
+
hooks: hasHooks ? hooksRegistration : undefined,
|
|
159
|
+
...additionalOptions,
|
|
160
|
+
});
|
|
161
|
+
return {
|
|
162
|
+
agent,
|
|
163
|
+
observability,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Default blocked input patterns for secure production mode.
|
|
168
|
+
*
|
|
169
|
+
* These patterns help prevent common prompt injection and jailbreak attempts.
|
|
170
|
+
*
|
|
171
|
+
* @category Presets
|
|
172
|
+
*/
|
|
173
|
+
export const DEFAULT_BLOCKED_INPUT_PATTERNS = [
|
|
174
|
+
// Common jailbreak/injection phrases
|
|
175
|
+
/ignore\s+(all\s+)?(previous|prior|above)\s+instructions/i,
|
|
176
|
+
/disregard\s+(all\s+)?(previous|prior|above)/i,
|
|
177
|
+
/forget\s+(everything|all|your)\s+(you\s+)?(know|learned|training)/i,
|
|
178
|
+
/you\s+are\s+now\s+in\s+(developer|debug|admin|test)\s+mode/i,
|
|
179
|
+
/pretend\s+(you\s+are|to\s+be)\s+(?!a\s+helpful)/i,
|
|
180
|
+
/act\s+as\s+if\s+you\s+(have\s+no|don't\s+have|lack)/i,
|
|
181
|
+
/bypass\s+(your|all|the)\s+(safety|security|content|filter)/i,
|
|
182
|
+
/override\s+(your|all|the)\s+(safety|security|restriction)/i,
|
|
183
|
+
];
|
|
184
|
+
/**
|
|
185
|
+
* Default blocked output patterns for secure production mode.
|
|
186
|
+
*
|
|
187
|
+
* These patterns help prevent accidental credential/PII leakage.
|
|
188
|
+
*
|
|
189
|
+
* @category Presets
|
|
190
|
+
*/
|
|
191
|
+
export const DEFAULT_BLOCKED_OUTPUT_PATTERNS = [
|
|
192
|
+
// Credit card numbers (basic pattern)
|
|
193
|
+
/\b(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13})\b/,
|
|
194
|
+
// SSN patterns
|
|
195
|
+
/\b\d{3}-\d{2}-\d{4}\b/,
|
|
196
|
+
// IP addresses that look internal
|
|
197
|
+
/\b(?:192\.168|10\.|172\.(?:1[6-9]|2[0-9]|3[01]))\.\d{1,3}\.\d{1,3}\b/,
|
|
198
|
+
];
|
|
199
|
+
/**
|
|
200
|
+
* Creates a secure production-ready agent with all security features enabled by default.
|
|
201
|
+
*
|
|
202
|
+
* This is the **recommended entry point** for production deployments. It provides:
|
|
203
|
+
* - Production security policy (blocks dangerous commands, limits file operations)
|
|
204
|
+
* - **Guardrails enabled by default** (content filtering for inputs and outputs)
|
|
205
|
+
* - Secrets filtering to prevent credential leakage
|
|
206
|
+
* - Full observability (logging, metrics, tracing)
|
|
207
|
+
*
|
|
208
|
+
* Use this instead of `createProductionAgent()` unless you have specific reasons
|
|
209
|
+
* to disable guardrails or want more permissive defaults.
|
|
210
|
+
*
|
|
211
|
+
* @param options - Configuration options
|
|
212
|
+
* @returns Secure production agent and observability preset
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* ```typescript
|
|
216
|
+
* import { createSecureProductionAgent } from "@lleverage-ai/agent-sdk";
|
|
217
|
+
* import { anthropic } from "@ai-sdk/anthropic";
|
|
218
|
+
*
|
|
219
|
+
* // Recommended production setup - all security features enabled
|
|
220
|
+
* const { agent, observability } = createSecureProductionAgent({
|
|
221
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
222
|
+
* });
|
|
223
|
+
*
|
|
224
|
+
* // Use the agent
|
|
225
|
+
* const result = await agent.generate({
|
|
226
|
+
* prompt: "Help me with a task",
|
|
227
|
+
* });
|
|
228
|
+
*
|
|
229
|
+
* // Access observability
|
|
230
|
+
* observability.logger?.info("Request completed");
|
|
231
|
+
* observability.metrics?.requests.inc();
|
|
232
|
+
* ```
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* ```typescript
|
|
236
|
+
* // Customize with additional blocked patterns
|
|
237
|
+
* const { agent } = createSecureProductionAgent({
|
|
238
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
239
|
+
* blockedInputPatterns: [
|
|
240
|
+
* /confidential/i, // Additional custom pattern
|
|
241
|
+
* ],
|
|
242
|
+
* blockedOutputPatterns: [
|
|
243
|
+
* /internal-only/i,
|
|
244
|
+
* ],
|
|
245
|
+
* observabilityOptions: {
|
|
246
|
+
* name: "my-secure-agent",
|
|
247
|
+
* },
|
|
248
|
+
* });
|
|
249
|
+
* ```
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```typescript
|
|
253
|
+
* // Disable default patterns, use only custom ones
|
|
254
|
+
* const { agent } = createSecureProductionAgent({
|
|
255
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
256
|
+
* useDefaultInputPatterns: false,
|
|
257
|
+
* useDefaultOutputPatterns: false,
|
|
258
|
+
* blockedInputPatterns: [/my-custom-pattern/],
|
|
259
|
+
* blockedOutputPatterns: [/another-pattern/],
|
|
260
|
+
* });
|
|
261
|
+
* ```
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
* ```typescript
|
|
265
|
+
* // Add custom plugins and system prompt
|
|
266
|
+
* const { agent, observability } = createSecureProductionAgent({
|
|
267
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
268
|
+
* additionalOptions: {
|
|
269
|
+
* plugins: [myCustomPlugin],
|
|
270
|
+
* systemPrompt: "You are a helpful assistant.",
|
|
271
|
+
* checkpointer: createMemorySaver(),
|
|
272
|
+
* },
|
|
273
|
+
* });
|
|
274
|
+
* ```
|
|
275
|
+
*
|
|
276
|
+
* @category Presets
|
|
277
|
+
*/
|
|
278
|
+
export function createSecureProductionAgent(options) {
|
|
279
|
+
const { useDefaultInputPatterns = true, useDefaultOutputPatterns = true, blockedInputPatterns = [], blockedOutputPatterns = [], enableGuardrails = true, ...restOptions } = options;
|
|
280
|
+
// Combine default and custom patterns
|
|
281
|
+
const combinedInputPatterns = useDefaultInputPatterns
|
|
282
|
+
? [...DEFAULT_BLOCKED_INPUT_PATTERNS, ...blockedInputPatterns]
|
|
283
|
+
: blockedInputPatterns;
|
|
284
|
+
const combinedOutputPatterns = useDefaultOutputPatterns
|
|
285
|
+
? [...DEFAULT_BLOCKED_OUTPUT_PATTERNS, ...blockedOutputPatterns]
|
|
286
|
+
: blockedOutputPatterns;
|
|
287
|
+
// Call createProductionAgent with secure defaults
|
|
288
|
+
return createProductionAgent({
|
|
289
|
+
...restOptions,
|
|
290
|
+
enableGuardrails,
|
|
291
|
+
blockedInputPatterns: combinedInputPatterns,
|
|
292
|
+
blockedOutputPatterns: combinedOutputPatterns,
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=production.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"production.js","sourceRoot":"","sources":["../../src/presets/production.ts"],"names":[],"mappings":"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"}
|