@agntk/core 0.1.2 → 0.3.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 +56 -90
- package/dist/advanced/index.d.ts +9 -2
- package/dist/advanced/index.d.ts.map +1 -1
- package/dist/advanced/index.js +13 -2
- package/dist/advanced/index.js.map +1 -1
- package/dist/agent.d.ts +27 -31
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +251 -280
- package/dist/agent.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +16 -4
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/loader.d.ts +14 -6
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +38 -16
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +52 -52
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/evals/runner.js +16 -9
- package/dist/evals/runner.js.map +1 -1
- package/dist/evals/types.d.ts +1 -1
- package/dist/evals/types.d.ts.map +1 -1
- package/dist/guardrails/runner.d.ts.map +1 -1
- package/dist/guardrails/runner.js +4 -0
- package/dist/guardrails/runner.js.map +1 -1
- package/dist/index.d.ts +9 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -10
- package/dist/index.js.map +1 -1
- package/dist/models.d.ts +24 -1
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +50 -4
- package/dist/models.js.map +1 -1
- package/dist/observability/langfuse.d.ts +2 -2
- package/dist/observability/langfuse.d.ts.map +1 -1
- package/dist/observability/langfuse.js +39 -17
- package/dist/observability/langfuse.js.map +1 -1
- package/dist/presets/sub-agent-configs.d.ts +11 -3
- package/dist/presets/sub-agent-configs.d.ts.map +1 -1
- package/dist/presets/sub-agent-configs.js +5 -10
- package/dist/presets/sub-agent-configs.js.map +1 -1
- package/dist/presets/tools.d.ts +3 -3
- package/dist/provider-resolver.d.ts +38 -0
- package/dist/provider-resolver.d.ts.map +1 -0
- package/dist/provider-resolver.js +142 -0
- package/dist/provider-resolver.js.map +1 -0
- package/dist/reflection.d.ts +5 -2
- package/dist/reflection.d.ts.map +1 -1
- package/dist/reflection.js +8 -3
- package/dist/reflection.js.map +1 -1
- package/dist/skills/loader.d.ts +18 -0
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +58 -2
- package/dist/skills/loader.js.map +1 -1
- package/dist/system-detect.d.ts +59 -0
- package/dist/system-detect.d.ts.map +1 -0
- package/dist/system-detect.js +193 -0
- package/dist/system-detect.js.map +1 -0
- package/dist/tools/file/tools.d.ts.map +1 -1
- package/dist/tools/file/tools.js +30 -1
- package/dist/tools/file/tools.js.map +1 -1
- package/dist/tools/index.d.ts +0 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/plan/tools.d.ts +1 -1
- package/dist/tools/plan/types.d.ts +2 -2
- package/dist/tools/progress/index.d.ts +1 -1
- package/dist/tools/shell/background.d.ts.map +1 -1
- package/dist/tools/shell/background.js +45 -3
- package/dist/tools/shell/background.js.map +1 -1
- package/dist/tools/shell/tools.d.ts.map +1 -1
- package/dist/tools/shell/tools.js +9 -2
- package/dist/tools/shell/tools.js.map +1 -1
- package/dist/tools/spawn-agent/index.d.ts +7 -9
- package/dist/tools/spawn-agent/index.d.ts.map +1 -1
- package/dist/tools/spawn-agent/index.js +2 -4
- package/dist/tools/spawn-agent/index.js.map +1 -1
- package/dist/tools/utils/shell.d.ts +14 -0
- package/dist/tools/utils/shell.d.ts.map +1 -1
- package/dist/tools/utils/shell.js +171 -12
- package/dist/tools/utils/shell.js.map +1 -1
- package/dist/types/agent.d.ts +75 -195
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js +4 -2
- package/dist/types/agent.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/usage-limits.d.ts +1 -1
- package/dist/usage-limits.js +1 -1
- package/dist/workflow/index.d.ts +1 -5
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +1 -9
- package/dist/workflow/index.js.map +1 -1
- package/dist/wrappers/best-of-n.d.ts +1 -1
- package/dist/wrappers/best-of-n.d.ts.map +1 -1
- package/dist/wrappers/best-of-n.js +11 -6
- package/dist/wrappers/best-of-n.js.map +1 -1
- package/package.json +4 -14
- package/dist/pool/index.d.ts +0 -7
- package/dist/pool/index.d.ts.map +0 -1
- package/dist/pool/index.js +0 -6
- package/dist/pool/index.js.map +0 -1
- package/dist/pool/specialist-pool.d.ts +0 -59
- package/dist/pool/specialist-pool.d.ts.map +0 -1
- package/dist/pool/specialist-pool.js +0 -224
- package/dist/pool/specialist-pool.js.map +0 -1
- package/dist/pool/tools.d.ts +0 -63
- package/dist/pool/tools.d.ts.map +0 -1
- package/dist/pool/tools.js +0 -83
- package/dist/pool/tools.js.map +0 -1
- package/dist/pool/types.d.ts +0 -79
- package/dist/pool/types.d.ts.map +0 -1
- package/dist/pool/types.js +0 -5
- package/dist/pool/types.js.map +0 -1
- package/dist/presets/index.d.ts +0 -5
- package/dist/presets/index.d.ts.map +0 -1
- package/dist/presets/index.js +0 -5
- package/dist/presets/index.js.map +0 -1
- package/dist/presets/role-registry.d.ts +0 -41
- package/dist/presets/role-registry.d.ts.map +0 -1
- package/dist/presets/role-registry.js +0 -213
- package/dist/presets/role-registry.js.map +0 -1
- package/dist/presets/roles.d.ts +0 -105
- package/dist/presets/roles.d.ts.map +0 -1
- package/dist/presets/roles.js +0 -207
- package/dist/presets/roles.js.map +0 -1
- package/dist/tools/factory.d.ts +0 -109
- package/dist/tools/factory.d.ts.map +0 -1
- package/dist/tools/factory.js +0 -166
- package/dist/tools/factory.js.map +0 -1
- package/dist/workflow/builders/adapt.d.ts +0 -20
- package/dist/workflow/builders/adapt.d.ts.map +0 -1
- package/dist/workflow/builders/adapt.js +0 -33
- package/dist/workflow/builders/adapt.js.map +0 -1
- package/dist/workflow/builders/index.d.ts +0 -8
- package/dist/workflow/builders/index.d.ts.map +0 -1
- package/dist/workflow/builders/index.js +0 -7
- package/dist/workflow/builders/index.js.map +0 -1
- package/dist/workflow/builders/parallel.d.ts +0 -25
- package/dist/workflow/builders/parallel.d.ts.map +0 -1
- package/dist/workflow/builders/parallel.js +0 -60
- package/dist/workflow/builders/parallel.js.map +0 -1
- package/dist/workflow/builders/pipeline.d.ts +0 -22
- package/dist/workflow/builders/pipeline.d.ts.map +0 -1
- package/dist/workflow/builders/pipeline.js +0 -48
- package/dist/workflow/builders/pipeline.js.map +0 -1
- package/dist/workflow/builders/types.d.ts +0 -54
- package/dist/workflow/builders/types.d.ts.map +0 -1
- package/dist/workflow/builders/types.js +0 -5
- package/dist/workflow/builders/types.js.map +0 -1
- package/dist/workflow/schedulers.d.ts +0 -231
- package/dist/workflow/schedulers.d.ts.map +0 -1
- package/dist/workflow/schedulers.js +0 -250
- package/dist/workflow/schedulers.js.map +0 -1
- package/dist/workflow/team/create-team.d.ts +0 -34
- package/dist/workflow/team/create-team.d.ts.map +0 -1
- package/dist/workflow/team/create-team.js +0 -242
- package/dist/workflow/team/create-team.js.map +0 -1
- package/dist/workflow/team/index.d.ts +0 -9
- package/dist/workflow/team/index.d.ts.map +0 -1
- package/dist/workflow/team/index.js +0 -8
- package/dist/workflow/team/index.js.map +0 -1
- package/dist/workflow/team/machines.d.ts +0 -152
- package/dist/workflow/team/machines.d.ts.map +0 -1
- package/dist/workflow/team/machines.js +0 -197
- package/dist/workflow/team/machines.js.map +0 -1
- package/dist/workflow/team/task-board.d.ts +0 -47
- package/dist/workflow/team/task-board.d.ts.map +0 -1
- package/dist/workflow/team/task-board.js +0 -111
- package/dist/workflow/team/task-board.js.map +0 -1
- package/dist/workflow/team/tools.d.ts +0 -66
- package/dist/workflow/team/tools.d.ts.map +0 -1
- package/dist/workflow/team/tools.js +0 -100
- package/dist/workflow/team/tools.js.map +0 -1
- package/dist/workflow/team/types.d.ts +0 -109
- package/dist/workflow/team/types.d.ts.map +0 -1
- package/dist/workflow/team/types.js +0 -5
- package/dist/workflow/team/types.js.map +0 -1
- package/dist/workflow/templates.d.ts +0 -71
- package/dist/workflow/templates.d.ts.map +0 -1
- package/dist/workflow/templates.js +0 -132
- package/dist/workflow/templates.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/spawn-agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/spawn-agent/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
export declare function isDangerousCommand(command: string): boolean;
|
|
2
|
+
/**
|
|
3
|
+
* Ensure the requested cwd is within workspaceRoot (or is workspaceRoot itself).
|
|
4
|
+
* Returns the resolved cwd, or throws if the path escapes the workspace.
|
|
5
|
+
*/
|
|
6
|
+
export declare function validateCwd(cwd: string, workspaceRoot: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Build a sanitized copy of process.env suitable for child processes.
|
|
9
|
+
* Strips all credential-like keys; always preserves PATH, HOME, USER, TERM, LANG, etc.
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildSanitizedEnv(extra?: Record<string, string>): Record<string, string>;
|
|
12
|
+
/**
|
|
13
|
+
* Redact API keys and secrets from command output before returning to the LLM.
|
|
14
|
+
*/
|
|
15
|
+
export declare function sanitizeOutput(output: string): string;
|
|
2
16
|
export interface ShellOptions {
|
|
3
17
|
cwd?: string;
|
|
4
18
|
timeout?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/shell.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/shell.ts"],"names":[],"mappings":"AA4FA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAMD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAYtE;AA6BD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACjC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBxB;AAgBD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CA2EtB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CAuBD"}
|
|
@@ -1,19 +1,178 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import * as fs from 'node:fs';
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Dangerous Command Detection (S-1, S-2, S-3, S-4, S-5, S-6)
|
|
6
|
+
// ============================================================================
|
|
7
|
+
/**
|
|
8
|
+
* Patterns that are unconditionally blocked.
|
|
9
|
+
*
|
|
10
|
+
* Covers:
|
|
11
|
+
* S-1: rm with any target (not just absolute paths)
|
|
12
|
+
* S-2: Nested interpreter invocation (bash -c, python -c, node -e, etc.)
|
|
13
|
+
* S-3: Destructive git operations
|
|
14
|
+
* S-4: Fork bomb (multiple forms)
|
|
15
|
+
* S-5: chmod with dangerous modes (666, setuid, world-writable)
|
|
16
|
+
* S-6: Pipe-to-shell / download-and-execute bypass
|
|
17
|
+
*/
|
|
2
18
|
const DANGEROUS_PATTERNS = [
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
19
|
+
// S-1: rm -r/-rf targeting dangerous targets.
|
|
20
|
+
//
|
|
21
|
+
// Dangerous targets: bare `.` (current dir), `..` (parent), `*` (glob all),
|
|
22
|
+
// `/` (root), `~` (home), `$(...)` or `${...}` or `` ` `` (command sub)
|
|
23
|
+
// Safe targets: `./dist`, `./node_modules`, `./build`, etc. (explicit relative path)
|
|
24
|
+
//
|
|
25
|
+
// Strategy: after flags, match a target that is NOT `.` followed by `/`.
|
|
26
|
+
// `(?!\.[/\w])` means: NOT `.` followed by slash or word char — i.e. not `./dist`.
|
|
27
|
+
// We then explicitly enumerate dangerous patterns.
|
|
28
|
+
/\brm\s+(-[^\s]*r[^\s]*\s+|--recursive\s+)((?<!\.)\.\.(?![^\s])|(?<=\s)\.(?=[\s$])|(?<=\s)\.(?=\s|$)|\*|\/|~|\$[({`])/i,
|
|
29
|
+
// Simpler, more readable alternative that splits into two patterns:
|
|
30
|
+
// Pattern A: rm -r targeting .. or * or / or ~ or command sub
|
|
31
|
+
/\brm\s+-[^\s]*r[^\s]*\s+(\*|\/|~|\$[({]|`|\.\.(\s|$|\/))/i,
|
|
32
|
+
// Pattern B: rm -r targeting bare . (not followed by / or word char meaning ./dist)
|
|
33
|
+
/\brm\s+-[^\s]*r[^\s]*\s+\.(?![\w\/])/i,
|
|
34
|
+
// Pattern C: rm without -r but with -f targeting absolute or dangerous paths
|
|
35
|
+
/\brm\s+-[^\s]*f[^\s]*\s+(\*|~|\$[({]|`|\.\.(\s|$|\/)|\/(?!tmp|var\/tmp))/i,
|
|
36
|
+
// S-2: Nested interpreter invocation
|
|
37
|
+
/\b(bash|sh|zsh|dash|ksh|fish|tcsh)\s+(-[ce]|--[a-z]+\s)/i,
|
|
38
|
+
/\b(python3?|python3\.[0-9]+|pypy3?)\s+-[cC]/i,
|
|
39
|
+
/\b(node|nodejs|deno|bun)\s+-[eE]/i,
|
|
40
|
+
/\b(perl|ruby|php|lua|Rscript|groovy)\s+-[e]/i,
|
|
41
|
+
// S-3: Destructive git operations
|
|
42
|
+
/\bgit\s+(push\s+[^\n]*--?force|push\s+-f\b)/i,
|
|
43
|
+
/\bgit\s+reset\s+--hard/i,
|
|
44
|
+
/\bgit\s+clean\s+-[fdxXqn]*[fF][fdxXqn]*/i,
|
|
45
|
+
/\bgit\s+rebase\s+(-i|--interactive)/i,
|
|
46
|
+
// S-4: Fork bomb — colon function form and nohup infinite loop, but NOT normal while loops
|
|
47
|
+
/:\(\s*\)\s*\{/,
|
|
48
|
+
/:\s*\(\s*\)\s*\{.*:\s*\|\s*:/,
|
|
49
|
+
// S-5: chmod dangerous modes (setuid, setgid, world-write, 666, 777)
|
|
50
|
+
// Allows: 644, 755, 600, 700, u+x, go-w etc.
|
|
51
|
+
// Blocks: 666, 777, 4xxx (setuid), 2xxx (setgid), +s, o+w, a+w, u+s, g+s
|
|
52
|
+
/\bchmod\s+(-R\s+)?(666|777|4[0-9]{3}|2[0-9]{3}|\+s|o\+w|a\+w|u\+s|g\+s)/i,
|
|
53
|
+
// S-6: Pipe-to-shell and download-execute bypasses
|
|
54
|
+
/\b(curl|wget)\b.*\|\s*(bash|sh|zsh|dash|python3?|node)/i,
|
|
55
|
+
/\b(curl|wget)\b.*>\s*\S+.*&&\s*(bash|sh|chmod)/i,
|
|
56
|
+
// Disk/device destruction
|
|
57
|
+
/>\s*\/dev\/(sd[a-z]|nvme[0-9]|hd[a-z]|vd[a-z])/i,
|
|
58
|
+
/\bmkfs\./i,
|
|
59
|
+
/\bdd\s+if=/i,
|
|
60
|
+
// Privilege escalation
|
|
61
|
+
/\b(sudo|su)\s/i,
|
|
9
62
|
/\b(shutdown|reboot|halt|poweroff)\b/i,
|
|
10
|
-
|
|
11
|
-
/\beval\
|
|
12
|
-
|
|
63
|
+
// Shell eval builtin — `eval <string>` or `eval "..."`, not English words like 'evaluate'
|
|
64
|
+
/\beval\s*["'`(]/i,
|
|
65
|
+
/^eval\s/,
|
|
66
|
+
/;\s*eval\s/,
|
|
67
|
+
/&&\s*eval\s/,
|
|
68
|
+
/\|\s*eval\s/,
|
|
69
|
+
// MITRE T1027.010: Decode-then-execute bypass patterns
|
|
70
|
+
// base64 -d / --decode / openssl base64 decode → piped to shell
|
|
71
|
+
/\b(base64\s+-d|base64\s+--decode|openssl\s+enc\s+-d)\b.*\|\s*(bash|sh|zsh|dash|node|python3?)/i,
|
|
72
|
+
// xxd hex-decode → piped to shell
|
|
73
|
+
/\b(xxd\s+-r|xxd\s+--reverse)\b.*\|\s*(bash|sh|zsh|dash|node|python3?)/i,
|
|
74
|
+
// gzip decompress → piped to shell
|
|
75
|
+
/\bgzip\s+(-d|--decompress)\b.*\|\s*(bash|sh|zsh|dash)/i,
|
|
76
|
+
// printf with hex escapes → piped to shell
|
|
77
|
+
/\bprintf\b.*\\x[0-9a-fA-F]{2}.*\|\s*(bash|sh|zsh|dash)/i,
|
|
78
|
+
// ANSI-C quoting with octal escapes: $'\173\40...' | sh
|
|
79
|
+
/\$'\\[0-7]{3,}'.*\|\s*(bash|sh|zsh|dash)/i,
|
|
13
80
|
];
|
|
14
81
|
export function isDangerousCommand(command) {
|
|
15
82
|
return DANGEROUS_PATTERNS.some((pattern) => pattern.test(command));
|
|
16
83
|
}
|
|
84
|
+
// ============================================================================
|
|
85
|
+
// CWD Validation (S-13)
|
|
86
|
+
// ============================================================================
|
|
87
|
+
/**
|
|
88
|
+
* Ensure the requested cwd is within workspaceRoot (or is workspaceRoot itself).
|
|
89
|
+
* Returns the resolved cwd, or throws if the path escapes the workspace.
|
|
90
|
+
*/
|
|
91
|
+
export function validateCwd(cwd, workspaceRoot) {
|
|
92
|
+
const resolvedCwd = path.resolve(cwd);
|
|
93
|
+
let realWorkspace;
|
|
94
|
+
try {
|
|
95
|
+
realWorkspace = fs.realpathSync(path.resolve(workspaceRoot));
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
realWorkspace = path.resolve(workspaceRoot);
|
|
99
|
+
}
|
|
100
|
+
if (!resolvedCwd.startsWith(realWorkspace + path.sep) && resolvedCwd !== realWorkspace) {
|
|
101
|
+
throw new Error(`cwd "${cwd}" is outside workspace root`);
|
|
102
|
+
}
|
|
103
|
+
return resolvedCwd;
|
|
104
|
+
}
|
|
105
|
+
// ============================================================================
|
|
106
|
+
// Env Var Filtering (A-3)
|
|
107
|
+
// ============================================================================
|
|
108
|
+
/** Key patterns that indicate credentials — stripped from child process env. */
|
|
109
|
+
const SENSITIVE_ENV_PATTERNS = [
|
|
110
|
+
/API[_-]?KEY/i,
|
|
111
|
+
/SECRET/i,
|
|
112
|
+
/TOKEN(?!_DIR|_PATH)/i,
|
|
113
|
+
/PASSWORD/i,
|
|
114
|
+
/PASSWD/i,
|
|
115
|
+
/CREDENTIAL/i,
|
|
116
|
+
/OPENAI_/i,
|
|
117
|
+
/ANTHROPIC_/i,
|
|
118
|
+
/LANGFUSE_/i,
|
|
119
|
+
/AWS_(?!REGION|DEFAULT_REGION|EXECUTION_ENV)/i,
|
|
120
|
+
/GOOGLE_(API|CLOUD|APPLICATION)/i,
|
|
121
|
+
/GITHUB_TOKEN/i,
|
|
122
|
+
/SLACK_(BOT|APP|SIGNING)/i,
|
|
123
|
+
/STRIPE_/i,
|
|
124
|
+
/TWILIO_/i,
|
|
125
|
+
/SENDGRID_/i,
|
|
126
|
+
/DATABASE_URL/i,
|
|
127
|
+
/MONGO(DB)?_URI/i,
|
|
128
|
+
/REDIS_URL/i,
|
|
129
|
+
];
|
|
130
|
+
/**
|
|
131
|
+
* Build a sanitized copy of process.env suitable for child processes.
|
|
132
|
+
* Strips all credential-like keys; always preserves PATH, HOME, USER, TERM, LANG, etc.
|
|
133
|
+
*/
|
|
134
|
+
export function buildSanitizedEnv(extra = {}) {
|
|
135
|
+
const safe = {};
|
|
136
|
+
for (const [key, value] of Object.entries(process.env)) {
|
|
137
|
+
if (value === undefined)
|
|
138
|
+
continue;
|
|
139
|
+
if (SENSITIVE_ENV_PATTERNS.some((p) => p.test(key)))
|
|
140
|
+
continue;
|
|
141
|
+
safe[key] = value;
|
|
142
|
+
}
|
|
143
|
+
// Merge caller-supplied extras, but also filter those
|
|
144
|
+
for (const [key, value] of Object.entries(extra)) {
|
|
145
|
+
if (SENSITIVE_ENV_PATTERNS.some((p) => p.test(key)))
|
|
146
|
+
continue;
|
|
147
|
+
safe[key] = value;
|
|
148
|
+
}
|
|
149
|
+
// Always ensure PATH is present
|
|
150
|
+
if (process.env.PATH)
|
|
151
|
+
safe.PATH = process.env.PATH;
|
|
152
|
+
return safe;
|
|
153
|
+
}
|
|
154
|
+
// ============================================================================
|
|
155
|
+
// Output Sanitization (A-1)
|
|
156
|
+
// ============================================================================
|
|
157
|
+
const SENSITIVE_OUTPUT_PATTERNS = [
|
|
158
|
+
[/\bsk-[a-zA-Z0-9]{16,}\b/g, '[OPENAI_KEY REDACTED]'],
|
|
159
|
+
[/\bsk-ant-[a-zA-Z0-9\-]{20,}\b/g, '[ANTHROPIC_KEY REDACTED]'],
|
|
160
|
+
[/\bghp_[a-zA-Z0-9]{36}\b/g, '[GITHUB_TOKEN REDACTED]'],
|
|
161
|
+
[/\bxoxb-[a-zA-Z0-9\-]+\b/g, '[SLACK_TOKEN REDACTED]'],
|
|
162
|
+
[/Bearer\s+[a-zA-Z0-9._\-]{20,}/g, '[BEARER_TOKEN REDACTED]'],
|
|
163
|
+
// Generic: KEY=value and SECRET=value patterns on a line
|
|
164
|
+
[/(?:api[_\-]?key|secret|token|password|api_secret)\s*[=:]\s*[^\s'"]{8,}/gi, '[SECRET REDACTED]'],
|
|
165
|
+
];
|
|
166
|
+
/**
|
|
167
|
+
* Redact API keys and secrets from command output before returning to the LLM.
|
|
168
|
+
*/
|
|
169
|
+
export function sanitizeOutput(output) {
|
|
170
|
+
let sanitized = output;
|
|
171
|
+
for (const [pattern, replacement] of SENSITIVE_OUTPUT_PATTERNS) {
|
|
172
|
+
sanitized = sanitized.replace(pattern, replacement);
|
|
173
|
+
}
|
|
174
|
+
return sanitized;
|
|
175
|
+
}
|
|
17
176
|
export async function executeCommand(command, options = {}) {
|
|
18
177
|
const { cwd = process.cwd(), timeout = 30000, maxBuffer = 1024 * 1024, env, } = options;
|
|
19
178
|
const startTime = performance.now();
|
|
@@ -23,7 +182,7 @@ export async function executeCommand(command, options = {}) {
|
|
|
23
182
|
let killed = false;
|
|
24
183
|
const proc = spawn('bash', ['-c', command], {
|
|
25
184
|
cwd,
|
|
26
|
-
env: { ...
|
|
185
|
+
env: { ...buildSanitizedEnv(env), TERM: 'dumb' },
|
|
27
186
|
});
|
|
28
187
|
const timer = setTimeout(() => {
|
|
29
188
|
killed = true;
|
|
@@ -55,8 +214,8 @@ export async function executeCommand(command, options = {}) {
|
|
|
55
214
|
proc.on('close', (code) => {
|
|
56
215
|
clearTimeout(timer);
|
|
57
216
|
resolve({
|
|
58
|
-
stdout: stdout.trim(),
|
|
59
|
-
stderr: stderr.trim(),
|
|
217
|
+
stdout: sanitizeOutput(stdout.trim()),
|
|
218
|
+
stderr: sanitizeOutput(stderr.trim()),
|
|
60
219
|
exitCode: code ?? 1,
|
|
61
220
|
killed,
|
|
62
221
|
durationMs: performance.now() - startTime,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/tools/utils/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/tools/utils/shell.ts"],"names":[],"mappings":"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"}
|
package/dist/types/agent.d.ts
CHANGED
|
@@ -1,218 +1,98 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Core type definitions for
|
|
3
|
-
*
|
|
2
|
+
* @fileoverview Core type definitions for the agent API.
|
|
3
|
+
*
|
|
4
|
+
* The agent is a fully-equipped worker. You give it a name, instructions,
|
|
5
|
+
* and a prompt. Everything else is auto-detected from the environment.
|
|
4
6
|
*/
|
|
5
|
-
import type { LanguageModel,
|
|
6
|
-
import type { SkillsConfig } from '../skills/types.js';
|
|
7
|
+
import type { LanguageModel, LanguageModelUsage, Tool } from 'ai';
|
|
7
8
|
import type { UsageLimits } from '../usage-limits.js';
|
|
8
|
-
import type { ReflectionConfig } from '../reflection.js';
|
|
9
9
|
import type { ApprovalConfig } from '../tools/approval.js';
|
|
10
|
-
import type { GuardrailsConfig } from '../guardrails/types.js';
|
|
11
|
-
import type { StreamEventCallback } from './streaming.js';
|
|
12
|
-
import type { ObservabilityConfig } from '../observability/types.js';
|
|
13
10
|
/**
|
|
14
|
-
* Configuration
|
|
11
|
+
* Configuration for creating an agent.
|
|
12
|
+
*
|
|
13
|
+
* Only `name` is required. Everything else has sensible defaults or
|
|
14
|
+
* is auto-detected from the environment.
|
|
15
15
|
*/
|
|
16
16
|
export interface AgentOptions {
|
|
17
|
-
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
*
|
|
17
|
+
/**
|
|
18
|
+
* Display name for this agent.
|
|
19
|
+
* Used in logs, traces, multi-agent coordination, and persistent state.
|
|
20
|
+
* Persistent agent state is stored at `~/.agntk/agents/{name}/`.
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
agentId?: string;
|
|
27
|
-
/** Maximum number of tool execution steps. Default: 10 */
|
|
28
|
-
maxSteps?: number;
|
|
29
|
-
/** Token and request caps. Throws UsageLimitExceeded when exceeded.
|
|
30
|
-
* @example
|
|
31
|
-
* ```typescript
|
|
32
|
-
* const agent = createAgent({
|
|
33
|
-
* usageLimits: { maxRequests: 20, maxTotalTokens: 100_000 },
|
|
34
|
-
* });
|
|
35
|
-
* ```
|
|
22
|
+
name: string;
|
|
23
|
+
/**
|
|
24
|
+
* What this agent does. Natural language context injected as the system prompt.
|
|
25
|
+
* This is NOT a role — it's the agent's understanding of its job.
|
|
36
26
|
*/
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
* 'reflact' injects goal-state reflection after every step.
|
|
42
|
-
* 'periodic' injects reflection every N steps (configurable via frequency).
|
|
43
|
-
* 'none' preserves default behavior (no reflection).
|
|
44
|
-
* @example
|
|
45
|
-
* ```typescript
|
|
46
|
-
* const agent = createAgent({
|
|
47
|
-
* reflection: { strategy: 'reflact' },
|
|
48
|
-
* });
|
|
49
|
-
* ```
|
|
27
|
+
instructions?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Where the agent operates. Root for file tools, skill discovery, memory.
|
|
30
|
+
* Default: process.cwd()
|
|
50
31
|
*/
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
/** Model name/identifier within the provider. */
|
|
57
|
-
modelName?: string;
|
|
58
|
-
/** Custom tools to add to the agent. Merged with preset tools. */
|
|
59
|
-
tools?: Record<string, Tool>;
|
|
60
|
-
/** Predefined tool preset to use. Default: 'standard' */
|
|
61
|
-
toolPreset?: ToolPreset;
|
|
62
|
-
/** Specific tools to enable (whitelist). If set, only these tools are active. */
|
|
63
|
-
enableTools?: string[];
|
|
64
|
-
/** Specific tools to disable (blacklist). Removed from preset/custom tools. */
|
|
65
|
-
disableTools?: string[];
|
|
66
|
-
/** Maximum retries per tool when a ModelRetry error is thrown. Default: 3 */
|
|
67
|
-
maxToolRetries?: number;
|
|
68
|
-
/** Require human approval before executing dangerous tools.
|
|
69
|
-
* `true` enables approval for default dangerous tools (shell, browser, file_write, file_edit).
|
|
70
|
-
* Provide an ApprovalConfig object for fine-grained control.
|
|
71
|
-
* @example
|
|
72
|
-
* ```typescript
|
|
73
|
-
* const agent = createAgent({
|
|
74
|
-
* approval: true, // enable for default dangerous tools
|
|
75
|
-
* });
|
|
76
|
-
* // or
|
|
77
|
-
* const agent = createAgent({
|
|
78
|
-
* approval: { enabled: true, tools: ['shell'], timeout: 30000 },
|
|
79
|
-
* });
|
|
80
|
-
* ```
|
|
32
|
+
workspaceRoot?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Override the auto-selected model.
|
|
35
|
+
* Most users should never touch this — the agent picks the best
|
|
36
|
+
* available model from your API keys.
|
|
81
37
|
*/
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
*
|
|
85
|
-
* Both phases execute their guardrails in parallel with fast-fail.
|
|
86
|
-
* @example
|
|
87
|
-
* ```typescript
|
|
88
|
-
* const agent = createAgent({
|
|
89
|
-
* guardrails: {
|
|
90
|
-
* output: [contentFilter(), lengthLimit({ maxChars: 5000 })],
|
|
91
|
-
* onBlock: 'retry',
|
|
92
|
-
* },
|
|
93
|
-
* });
|
|
94
|
-
* ```
|
|
38
|
+
model?: LanguageModel;
|
|
39
|
+
/**
|
|
40
|
+
* Safety limit on tool-loop iterations. Default: 25
|
|
95
41
|
*/
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
|
|
99
|
-
/** Custom configurations for specific sub-agent roles. */
|
|
100
|
-
subAgentRoles?: Record<string, SubAgentConfig>;
|
|
101
|
-
/** Maximum depth of sub-agent spawning to prevent infinite recursion. Default: 2 */
|
|
102
|
-
maxSpawnDepth?: number;
|
|
103
|
-
/** Enable transient streaming for tool data (file contents, shell output, etc). Default: true */
|
|
104
|
-
enableTransientStreaming?: boolean;
|
|
105
|
-
/** Enable durable workflow wrapping for tool executions. Default: true */
|
|
106
|
-
durable?: boolean;
|
|
107
|
-
/** Configuration for workflow durability. */
|
|
108
|
-
workflowOptions?: WorkflowOptions;
|
|
109
|
-
/** Enable persistent memory for the agent. Default: false
|
|
110
|
-
* When true, creates a MarkdownMemoryStore that reads/writes .agntk/ files.
|
|
111
|
-
* @example
|
|
112
|
-
* ```typescript
|
|
113
|
-
* const agent = createAgent({ enableMemory: true });
|
|
114
|
-
* ```
|
|
42
|
+
maxSteps?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Token/request caps. Throws UsageLimitExceeded when hit.
|
|
115
45
|
*/
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
* Skills are discovered from SKILL.md files in configured directories.
|
|
121
|
-
* @example
|
|
122
|
-
* ```typescript
|
|
123
|
-
* const agent = createAgent({
|
|
124
|
-
* skills: { directories: ['.agents/skills'] },
|
|
125
|
-
* });
|
|
126
|
-
* ```
|
|
46
|
+
usageLimits?: UsageLimits;
|
|
47
|
+
/**
|
|
48
|
+
* Additional tools to merge with the agent's built-in tools.
|
|
49
|
+
* Useful for testing with mock tools or adding custom capabilities.
|
|
127
50
|
*/
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
|
|
131
|
-
/** Handler for agent asking user questions. */
|
|
132
|
-
askUserHandler?: AskUserHandler;
|
|
133
|
-
/** Callback fired after each tool execution step. */
|
|
134
|
-
onStepFinish?: StepFinishCallback;
|
|
135
|
-
/** Callback for streaming events. */
|
|
136
|
-
onEvent?: StreamEventCallback;
|
|
137
|
-
/** Telemetry configuration for OpenTelemetry-based tracing.
|
|
138
|
-
* When provided, initializes observability and passes telemetry settings
|
|
139
|
-
* to the underlying AI SDK ToolLoopAgent.
|
|
51
|
+
tools?: Record<string, Tool>;
|
|
52
|
+
/**
|
|
53
|
+
* Enable human-in-the-loop approval for dangerous tools.
|
|
140
54
|
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
55
|
+
* - `true` — use defaults (shell, browser, file_write, file_edit, file_create require approval)
|
|
56
|
+
* - `ApprovalConfig` — full control over which tools require approval, timeout behaviour, etc.
|
|
143
57
|
*
|
|
144
|
-
* @
|
|
145
|
-
* ```typescript
|
|
146
|
-
* const agent = createAgent({
|
|
147
|
-
* telemetry: {
|
|
148
|
-
* provider: { provider: 'langfuse' },
|
|
149
|
-
* functionId: 'my-agent',
|
|
150
|
-
* },
|
|
151
|
-
* });
|
|
152
|
-
* ```
|
|
58
|
+
* @default false (no approval required)
|
|
153
59
|
*/
|
|
154
|
-
|
|
155
|
-
/** Observability provider config (e.g., Langfuse keys/URL). */
|
|
156
|
-
provider?: ObservabilityConfig;
|
|
157
|
-
/** Identifier for this agent function in traces. Defaults to `agent:<agentId>`. */
|
|
158
|
-
functionId?: string;
|
|
159
|
-
/** Additional metadata to include in traces. */
|
|
160
|
-
metadata?: Record<string, unknown>;
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
/** Predefined agent roles with associated configurations. */
|
|
164
|
-
export type AgentRole = 'generic' | 'coder' | 'researcher' | 'analyst';
|
|
165
|
-
/** Supported model providers. */
|
|
166
|
-
export type ModelProvider = 'openrouter' | 'ollama' | 'openai' | (string & {});
|
|
167
|
-
/** Predefined tool presets. */
|
|
168
|
-
export type ToolPreset = 'none' | 'minimal' | 'standard' | 'full';
|
|
169
|
-
/** Custom stop condition function. */
|
|
170
|
-
export type StopFunction = (ctx: StopContext) => boolean;
|
|
171
|
-
/** Context passed to stop condition function. */
|
|
172
|
-
export interface StopContext {
|
|
173
|
-
steps: StepResult<ToolSet>[];
|
|
174
|
-
stepCount: number;
|
|
60
|
+
approval?: boolean | ApprovalConfig;
|
|
175
61
|
}
|
|
176
|
-
/** Handler for user interaction requests. */
|
|
177
|
-
export type AskUserHandler = (question: string) => Promise<string>;
|
|
178
|
-
/** Callback for step completion. */
|
|
179
|
-
export type StepFinishCallback = (step: StepResult<ToolSet>, index: number) => void | Promise<void>;
|
|
180
62
|
/**
|
|
181
|
-
*
|
|
182
|
-
* Re-exported from types/streaming.ts — the canonical source with full type safety.
|
|
63
|
+
* An agent instance. Stream-only — no generate().
|
|
183
64
|
*/
|
|
184
|
-
export
|
|
185
|
-
/**
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
|
|
200
|
-
/** Default timeout for tool executions. Format: "30s", "5m", "1h". Default: "5m" */
|
|
201
|
-
defaultTimeout?: string;
|
|
202
|
-
/** Whether independent tools should run in parallel. Default: true */
|
|
203
|
-
parallelIndependent?: boolean;
|
|
204
|
-
/** Storage backend for workflow state. Default: 'memory' */
|
|
205
|
-
storage?: 'vercel' | 'sqlite' | 'memory';
|
|
206
|
-
/** Workflow run ID for resumption. */
|
|
207
|
-
workflowRunId?: string;
|
|
65
|
+
export interface Agent {
|
|
66
|
+
/** The agent's name. */
|
|
67
|
+
readonly name: string;
|
|
68
|
+
/** Initialize async resources (memory, telemetry). Called automatically by stream(). */
|
|
69
|
+
init(): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Stream a response. This is the only way to run an agent.
|
|
72
|
+
* Returns the AI SDK stream result.
|
|
73
|
+
*/
|
|
74
|
+
stream(input: {
|
|
75
|
+
prompt: string;
|
|
76
|
+
}): Promise<AgentStreamResult>;
|
|
77
|
+
/** Get the current system prompt (includes auto-injected context + memory). */
|
|
78
|
+
getSystemPrompt(): string;
|
|
79
|
+
/** Get the list of all tool names available to this agent. */
|
|
80
|
+
getToolNames(): string[];
|
|
208
81
|
}
|
|
209
|
-
/**
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
82
|
+
/**
|
|
83
|
+
* Stream result from an agent.
|
|
84
|
+
* Wraps the AI SDK ToolLoopAgent stream result with additional metadata.
|
|
85
|
+
*/
|
|
86
|
+
export interface AgentStreamResult {
|
|
87
|
+
/** Async iterable of stream chunks (text deltas, tool calls, tool results, etc.) */
|
|
88
|
+
fullStream: AsyncIterable<{
|
|
89
|
+
type: string;
|
|
90
|
+
text?: string;
|
|
91
|
+
[key: string]: unknown;
|
|
92
|
+
}>;
|
|
93
|
+
/** Promise-like that resolves to the final text output. */
|
|
94
|
+
text: PromiseLike<string>;
|
|
95
|
+
/** Promise-like that resolves to token usage. */
|
|
96
|
+
usage: PromiseLike<LanguageModelUsage>;
|
|
217
97
|
}
|
|
218
98
|
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAIvB;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE7B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC;CACrC;AAMD;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,wFAAwF;IACxF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE9D,+EAA+E;IAC/E,eAAe,IAAI,MAAM,CAAC;IAE1B,8DAA8D;IAC9D,YAAY,IAAI,MAAM,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oFAAoF;IACpF,UAAU,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IACnF,2DAA2D;IAC3D,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,iDAAiD;IACjD,KAAK,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;CACxC"}
|
package/dist/types/agent.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Core type definitions for
|
|
3
|
-
*
|
|
2
|
+
* @fileoverview Core type definitions for the agent API.
|
|
3
|
+
*
|
|
4
|
+
* The agent is a fully-equipped worker. You give it a name, instructions,
|
|
5
|
+
* and a prompt. Everything else is auto-detected from the environment.
|
|
4
6
|
*/
|
|
5
7
|
export {};
|
|
6
8
|
//# sourceMappingURL=agent.js.map
|
package/dist/types/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Type exports for @agntk/core
|
|
3
3
|
*/
|
|
4
|
-
export type { AgentOptions,
|
|
4
|
+
export type { AgentOptions, Agent, AgentStreamResult, } from './agent.js';
|
|
5
5
|
export { ToolErrorType, ToolError, } from './lifecycle.js';
|
|
6
6
|
export type { ToolLifecycle, ToolContext, ValidationResult, BypassResult, DurabilityConfig, LifecycleToolConfig, ToolExecuteFn, InferToolInput, InferToolOutput, StreamWriter, } from './lifecycle.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,YAAY,EACZ,KAAK,EACL,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAC"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,uBAAuB;AACvB,OAAO,EACL,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC"}
|