@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.
Files changed (186) hide show
  1. package/README.md +56 -90
  2. package/dist/advanced/index.d.ts +9 -2
  3. package/dist/advanced/index.d.ts.map +1 -1
  4. package/dist/advanced/index.js +13 -2
  5. package/dist/advanced/index.js.map +1 -1
  6. package/dist/agent.d.ts +27 -31
  7. package/dist/agent.d.ts.map +1 -1
  8. package/dist/agent.js +251 -280
  9. package/dist/agent.js.map +1 -1
  10. package/dist/config/defaults.d.ts.map +1 -1
  11. package/dist/config/defaults.js +16 -4
  12. package/dist/config/defaults.js.map +1 -1
  13. package/dist/config/loader.d.ts +14 -6
  14. package/dist/config/loader.d.ts.map +1 -1
  15. package/dist/config/loader.js +38 -16
  16. package/dist/config/loader.js.map +1 -1
  17. package/dist/config/schema.d.ts +52 -52
  18. package/dist/config/schema.d.ts.map +1 -1
  19. package/dist/config/schema.js +1 -1
  20. package/dist/config/schema.js.map +1 -1
  21. package/dist/evals/runner.js +16 -9
  22. package/dist/evals/runner.js.map +1 -1
  23. package/dist/evals/types.d.ts +1 -1
  24. package/dist/evals/types.d.ts.map +1 -1
  25. package/dist/guardrails/runner.d.ts.map +1 -1
  26. package/dist/guardrails/runner.js +4 -0
  27. package/dist/guardrails/runner.js.map +1 -1
  28. package/dist/index.d.ts +9 -10
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +15 -10
  31. package/dist/index.js.map +1 -1
  32. package/dist/models.d.ts +24 -1
  33. package/dist/models.d.ts.map +1 -1
  34. package/dist/models.js +50 -4
  35. package/dist/models.js.map +1 -1
  36. package/dist/observability/langfuse.d.ts +2 -2
  37. package/dist/observability/langfuse.d.ts.map +1 -1
  38. package/dist/observability/langfuse.js +39 -17
  39. package/dist/observability/langfuse.js.map +1 -1
  40. package/dist/presets/sub-agent-configs.d.ts +11 -3
  41. package/dist/presets/sub-agent-configs.d.ts.map +1 -1
  42. package/dist/presets/sub-agent-configs.js +5 -10
  43. package/dist/presets/sub-agent-configs.js.map +1 -1
  44. package/dist/presets/tools.d.ts +3 -3
  45. package/dist/provider-resolver.d.ts +38 -0
  46. package/dist/provider-resolver.d.ts.map +1 -0
  47. package/dist/provider-resolver.js +142 -0
  48. package/dist/provider-resolver.js.map +1 -0
  49. package/dist/reflection.d.ts +5 -2
  50. package/dist/reflection.d.ts.map +1 -1
  51. package/dist/reflection.js +8 -3
  52. package/dist/reflection.js.map +1 -1
  53. package/dist/skills/loader.d.ts +18 -0
  54. package/dist/skills/loader.d.ts.map +1 -1
  55. package/dist/skills/loader.js +58 -2
  56. package/dist/skills/loader.js.map +1 -1
  57. package/dist/system-detect.d.ts +59 -0
  58. package/dist/system-detect.d.ts.map +1 -0
  59. package/dist/system-detect.js +193 -0
  60. package/dist/system-detect.js.map +1 -0
  61. package/dist/tools/file/tools.d.ts.map +1 -1
  62. package/dist/tools/file/tools.js +30 -1
  63. package/dist/tools/file/tools.js.map +1 -1
  64. package/dist/tools/index.d.ts +0 -1
  65. package/dist/tools/index.d.ts.map +1 -1
  66. package/dist/tools/index.js +0 -2
  67. package/dist/tools/index.js.map +1 -1
  68. package/dist/tools/plan/tools.d.ts +1 -1
  69. package/dist/tools/plan/types.d.ts +2 -2
  70. package/dist/tools/progress/index.d.ts +1 -1
  71. package/dist/tools/shell/background.d.ts.map +1 -1
  72. package/dist/tools/shell/background.js +45 -3
  73. package/dist/tools/shell/background.js.map +1 -1
  74. package/dist/tools/shell/tools.d.ts.map +1 -1
  75. package/dist/tools/shell/tools.js +9 -2
  76. package/dist/tools/shell/tools.js.map +1 -1
  77. package/dist/tools/spawn-agent/index.d.ts +7 -9
  78. package/dist/tools/spawn-agent/index.d.ts.map +1 -1
  79. package/dist/tools/spawn-agent/index.js +2 -4
  80. package/dist/tools/spawn-agent/index.js.map +1 -1
  81. package/dist/tools/utils/shell.d.ts +14 -0
  82. package/dist/tools/utils/shell.d.ts.map +1 -1
  83. package/dist/tools/utils/shell.js +171 -12
  84. package/dist/tools/utils/shell.js.map +1 -1
  85. package/dist/types/agent.d.ts +75 -195
  86. package/dist/types/agent.d.ts.map +1 -1
  87. package/dist/types/agent.js +4 -2
  88. package/dist/types/agent.js.map +1 -1
  89. package/dist/types/index.d.ts +1 -1
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/dist/types/index.js.map +1 -1
  92. package/dist/usage-limits.d.ts +1 -1
  93. package/dist/usage-limits.js +1 -1
  94. package/dist/workflow/index.d.ts +1 -5
  95. package/dist/workflow/index.d.ts.map +1 -1
  96. package/dist/workflow/index.js +1 -9
  97. package/dist/workflow/index.js.map +1 -1
  98. package/dist/wrappers/best-of-n.d.ts +1 -1
  99. package/dist/wrappers/best-of-n.d.ts.map +1 -1
  100. package/dist/wrappers/best-of-n.js +11 -6
  101. package/dist/wrappers/best-of-n.js.map +1 -1
  102. package/package.json +4 -14
  103. package/dist/pool/index.d.ts +0 -7
  104. package/dist/pool/index.d.ts.map +0 -1
  105. package/dist/pool/index.js +0 -6
  106. package/dist/pool/index.js.map +0 -1
  107. package/dist/pool/specialist-pool.d.ts +0 -59
  108. package/dist/pool/specialist-pool.d.ts.map +0 -1
  109. package/dist/pool/specialist-pool.js +0 -224
  110. package/dist/pool/specialist-pool.js.map +0 -1
  111. package/dist/pool/tools.d.ts +0 -63
  112. package/dist/pool/tools.d.ts.map +0 -1
  113. package/dist/pool/tools.js +0 -83
  114. package/dist/pool/tools.js.map +0 -1
  115. package/dist/pool/types.d.ts +0 -79
  116. package/dist/pool/types.d.ts.map +0 -1
  117. package/dist/pool/types.js +0 -5
  118. package/dist/pool/types.js.map +0 -1
  119. package/dist/presets/index.d.ts +0 -5
  120. package/dist/presets/index.d.ts.map +0 -1
  121. package/dist/presets/index.js +0 -5
  122. package/dist/presets/index.js.map +0 -1
  123. package/dist/presets/role-registry.d.ts +0 -41
  124. package/dist/presets/role-registry.d.ts.map +0 -1
  125. package/dist/presets/role-registry.js +0 -213
  126. package/dist/presets/role-registry.js.map +0 -1
  127. package/dist/presets/roles.d.ts +0 -105
  128. package/dist/presets/roles.d.ts.map +0 -1
  129. package/dist/presets/roles.js +0 -207
  130. package/dist/presets/roles.js.map +0 -1
  131. package/dist/tools/factory.d.ts +0 -109
  132. package/dist/tools/factory.d.ts.map +0 -1
  133. package/dist/tools/factory.js +0 -166
  134. package/dist/tools/factory.js.map +0 -1
  135. package/dist/workflow/builders/adapt.d.ts +0 -20
  136. package/dist/workflow/builders/adapt.d.ts.map +0 -1
  137. package/dist/workflow/builders/adapt.js +0 -33
  138. package/dist/workflow/builders/adapt.js.map +0 -1
  139. package/dist/workflow/builders/index.d.ts +0 -8
  140. package/dist/workflow/builders/index.d.ts.map +0 -1
  141. package/dist/workflow/builders/index.js +0 -7
  142. package/dist/workflow/builders/index.js.map +0 -1
  143. package/dist/workflow/builders/parallel.d.ts +0 -25
  144. package/dist/workflow/builders/parallel.d.ts.map +0 -1
  145. package/dist/workflow/builders/parallel.js +0 -60
  146. package/dist/workflow/builders/parallel.js.map +0 -1
  147. package/dist/workflow/builders/pipeline.d.ts +0 -22
  148. package/dist/workflow/builders/pipeline.d.ts.map +0 -1
  149. package/dist/workflow/builders/pipeline.js +0 -48
  150. package/dist/workflow/builders/pipeline.js.map +0 -1
  151. package/dist/workflow/builders/types.d.ts +0 -54
  152. package/dist/workflow/builders/types.d.ts.map +0 -1
  153. package/dist/workflow/builders/types.js +0 -5
  154. package/dist/workflow/builders/types.js.map +0 -1
  155. package/dist/workflow/schedulers.d.ts +0 -231
  156. package/dist/workflow/schedulers.d.ts.map +0 -1
  157. package/dist/workflow/schedulers.js +0 -250
  158. package/dist/workflow/schedulers.js.map +0 -1
  159. package/dist/workflow/team/create-team.d.ts +0 -34
  160. package/dist/workflow/team/create-team.d.ts.map +0 -1
  161. package/dist/workflow/team/create-team.js +0 -242
  162. package/dist/workflow/team/create-team.js.map +0 -1
  163. package/dist/workflow/team/index.d.ts +0 -9
  164. package/dist/workflow/team/index.d.ts.map +0 -1
  165. package/dist/workflow/team/index.js +0 -8
  166. package/dist/workflow/team/index.js.map +0 -1
  167. package/dist/workflow/team/machines.d.ts +0 -152
  168. package/dist/workflow/team/machines.d.ts.map +0 -1
  169. package/dist/workflow/team/machines.js +0 -197
  170. package/dist/workflow/team/machines.js.map +0 -1
  171. package/dist/workflow/team/task-board.d.ts +0 -47
  172. package/dist/workflow/team/task-board.d.ts.map +0 -1
  173. package/dist/workflow/team/task-board.js +0 -111
  174. package/dist/workflow/team/task-board.js.map +0 -1
  175. package/dist/workflow/team/tools.d.ts +0 -66
  176. package/dist/workflow/team/tools.d.ts.map +0 -1
  177. package/dist/workflow/team/tools.js +0 -100
  178. package/dist/workflow/team/tools.js.map +0 -1
  179. package/dist/workflow/team/types.d.ts +0 -109
  180. package/dist/workflow/team/types.d.ts.map +0 -1
  181. package/dist/workflow/team/types.js +0 -5
  182. package/dist/workflow/team/types.js.map +0 -1
  183. package/dist/workflow/templates.d.ts +0 -71
  184. package/dist/workflow/templates.d.ts.map +0 -1
  185. package/dist/workflow/templates.js +0 -132
  186. 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":"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"}
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":"AAeA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;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
+ {"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
- /rm\s+(-rf?|--recursive)?\s*[\/~]/i,
4
- />\s*\/dev\/sd[a-z]/i,
5
- /mkfs\./i,
6
- /dd\s+if=/i,
7
- /:(){ :|:& };:/,
8
- /\b(sudo|su)\b/i,
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
- /\b(curl|wget)\b.*\|\s*(bash|sh|zsh)\b/i,
11
- /\beval\b/i,
12
- /\bchmod\s+(-R\s+)?(777|755)\b/i, // Basic check for dangerous permissions
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: { ...process.env, ...env, TERM: 'dumb' },
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":"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"}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/tools/utils/shell.ts"],"names":[],"mappings":"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"}
@@ -1,218 +1,98 @@
1
1
  /**
2
- * @fileoverview Core type definitions for AgentOptions and related configuration types.
3
- * These types define the interface for the createAgent() factory function.
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, Tool, StepResult, ToolSet } from 'ai';
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 options for creating an agent via createAgent().
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
- /** System prompt/instructions for the agent. Overrides role-based defaults. */
18
- systemPrompt?: string;
19
- /** Context to prepend to the system prompt without overriding role defaults.
20
- * Useful for injecting environment context (OS, shell, project type, etc.).
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
- systemPromptPrefix?: string;
23
- /** Predefined role with associated system prompt and call options. */
24
- role?: AgentRole;
25
- /** Unique identifier for the agent instance. */
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
- usageLimits?: UsageLimits;
38
- /** Condition to stop agent execution. */
39
- stopWhen?: 'task_complete' | 'max_steps' | StopFunction;
40
- /** Reflection strategy injected between tool steps.
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
- reflection?: ReflectionConfig;
52
- /** Language model instance. Takes precedence over provider/name. */
53
- model?: LanguageModel;
54
- /** Model provider to use for automatic model resolution. */
55
- modelProvider?: ModelProvider;
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
- approval?: boolean | ApprovalConfig;
83
- /** Guardrails for input/output validation.
84
- * Input guardrails run before the agent; output guardrails run after.
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
- guardrails?: GuardrailsConfig;
97
- /** Enable spawn_agent tool for sub-agent delegation. Default: false */
98
- enableSubAgents?: boolean;
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
- enableMemory?: boolean;
117
- /** Configuration for memory system. */
118
- memoryOptions?: MemoryOptions;
119
- /** Skills to inject into the agent's system prompt.
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
- skills?: SkillsConfig;
129
- /** Root directory for file operations. Used for path security. */
130
- workspaceRoot?: string;
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
- * Requires `langfuse-vercel` and `@vercel/otel` as optional peer dependencies.
142
- * Gracefully degrades (no-op) if not installed.
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
- * @example
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
- telemetry?: {
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
- * Callback for streaming events.
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 type { StreamEvent, StreamEventCallback } from './streaming.js';
185
- /** Configuration for a sub-agent role. */
186
- export interface SubAgentConfig {
187
- /** Custom instructions for this sub-agent role. */
188
- instructions?: string;
189
- /** Tools available to this sub-agent. */
190
- tools?: string[];
191
- /** Model name/identifier for this sub-agent. */
192
- model?: string;
193
- /** Maximum steps for the sub-agent. Default: 5 */
194
- maxSteps?: number;
195
- }
196
- /** Configuration for workflow durability. */
197
- export interface WorkflowOptions {
198
- /** Default retry count for failed tool executions. Default: 3 */
199
- defaultRetryCount?: number;
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
- /** Configuration for the markdown-based memory system. */
210
- export interface MemoryOptions {
211
- /** Directory for project-local memory files. Default: '.agntk' */
212
- projectDir?: string;
213
- /** Directory for global (cross-project) memory files. Default: '~/.agntk' */
214
- globalDir?: string;
215
- /** Custom MemoryStore implementation. Overrides file-based defaults. */
216
- store?: import('../memory/types').MemoryStore;
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":"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"}
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"}
@@ -1,6 +1,8 @@
1
1
  /**
2
- * @fileoverview Core type definitions for AgentOptions and related configuration types.
3
- * These types define the interface for the createAgent() factory function.
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
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @fileoverview Type exports for @agntk/core
3
3
  */
4
- export type { AgentOptions, AgentRole, ModelProvider, ToolPreset, StopFunction, StopContext, AskUserHandler, StepFinishCallback, StreamEventCallback, StreamEvent, SubAgentConfig, WorkflowOptions, MemoryOptions, } from './agent.js';
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,SAAS,EACT,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,GACd,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH,uBAAuB;AACvB,OAAO,EACL,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC"}
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"}