@agntk/core 0.2.0 → 0.3.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.
Files changed (190) hide show
  1. package/dist/agent-v2.d.ts +48 -0
  2. package/dist/agent-v2.d.ts.map +1 -0
  3. package/dist/agent-v2.js +365 -0
  4. package/dist/agent-v2.js.map +1 -0
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +61 -43
  7. package/dist/agent.js.map +1 -1
  8. package/dist/config/defaults.d.ts.map +1 -1
  9. package/dist/config/defaults.js +16 -4
  10. package/dist/config/defaults.js.map +1 -1
  11. package/dist/config/loader.d.ts +14 -6
  12. package/dist/config/loader.d.ts.map +1 -1
  13. package/dist/config/loader.js +38 -16
  14. package/dist/config/loader.js.map +1 -1
  15. package/dist/config/schema.d.ts +14 -14
  16. package/dist/config/schema.d.ts.map +1 -1
  17. package/dist/config/schema.js +1 -1
  18. package/dist/config/schema.js.map +1 -1
  19. package/dist/guardrails/runner.d.ts.map +1 -1
  20. package/dist/guardrails/runner.js +4 -0
  21. package/dist/guardrails/runner.js.map +1 -1
  22. package/dist/index.d.ts +5 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +9 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/memory/engine.d.ts +130 -0
  27. package/dist/memory/engine.d.ts.map +1 -0
  28. package/dist/memory/engine.js +227 -0
  29. package/dist/memory/engine.js.map +1 -0
  30. package/dist/memory/vectra-store.d.ts +31 -0
  31. package/dist/memory/vectra-store.d.ts.map +1 -0
  32. package/dist/memory/vectra-store.js +122 -0
  33. package/dist/memory/vectra-store.js.map +1 -0
  34. package/dist/models.d.ts +24 -1
  35. package/dist/models.d.ts.map +1 -1
  36. package/dist/models.js +50 -4
  37. package/dist/models.js.map +1 -1
  38. package/dist/pool/index.d.ts +7 -0
  39. package/dist/pool/index.d.ts.map +1 -0
  40. package/dist/pool/index.js +6 -0
  41. package/dist/pool/index.js.map +1 -0
  42. package/dist/pool/specialist-pool.d.ts +59 -0
  43. package/dist/pool/specialist-pool.d.ts.map +1 -0
  44. package/dist/pool/specialist-pool.js +224 -0
  45. package/dist/pool/specialist-pool.js.map +1 -0
  46. package/dist/pool/tools.d.ts +63 -0
  47. package/dist/pool/tools.d.ts.map +1 -0
  48. package/dist/pool/tools.js +83 -0
  49. package/dist/pool/tools.js.map +1 -0
  50. package/dist/pool/types.d.ts +79 -0
  51. package/dist/pool/types.d.ts.map +1 -0
  52. package/dist/pool/types.js +5 -0
  53. package/dist/pool/types.js.map +1 -0
  54. package/dist/presets/index.d.ts +5 -0
  55. package/dist/presets/index.d.ts.map +1 -0
  56. package/dist/presets/index.js +5 -0
  57. package/dist/presets/index.js.map +1 -0
  58. package/dist/presets/role-registry.d.ts +41 -0
  59. package/dist/presets/role-registry.d.ts.map +1 -0
  60. package/dist/presets/role-registry.js +213 -0
  61. package/dist/presets/role-registry.js.map +1 -0
  62. package/dist/presets/roles.d.ts +105 -0
  63. package/dist/presets/roles.d.ts.map +1 -0
  64. package/dist/presets/roles.js +207 -0
  65. package/dist/presets/roles.js.map +1 -0
  66. package/dist/presets/tools.d.ts +2 -2
  67. package/dist/prompts/templates.d.ts +11 -0
  68. package/dist/prompts/templates.d.ts.map +1 -0
  69. package/dist/prompts/templates.js +115 -0
  70. package/dist/prompts/templates.js.map +1 -0
  71. package/dist/provider-resolver.d.ts +38 -0
  72. package/dist/provider-resolver.d.ts.map +1 -0
  73. package/dist/provider-resolver.js +142 -0
  74. package/dist/provider-resolver.js.map +1 -0
  75. package/dist/reflection.d.ts +5 -2
  76. package/dist/reflection.d.ts.map +1 -1
  77. package/dist/reflection.js +8 -3
  78. package/dist/reflection.js.map +1 -1
  79. package/dist/skills/loader.d.ts +18 -0
  80. package/dist/skills/loader.d.ts.map +1 -1
  81. package/dist/skills/loader.js +58 -2
  82. package/dist/skills/loader.js.map +1 -1
  83. package/dist/streaming/data-parts.d.ts +163 -0
  84. package/dist/streaming/data-parts.d.ts.map +1 -0
  85. package/dist/streaming/data-parts.js +14 -0
  86. package/dist/streaming/data-parts.js.map +1 -0
  87. package/dist/streaming/index.d.ts +8 -0
  88. package/dist/streaming/index.d.ts.map +1 -0
  89. package/dist/streaming/index.js +10 -0
  90. package/dist/streaming/index.js.map +1 -0
  91. package/dist/streaming/transient.d.ts +136 -0
  92. package/dist/streaming/transient.d.ts.map +1 -0
  93. package/dist/streaming/transient.js +201 -0
  94. package/dist/streaming/transient.js.map +1 -0
  95. package/dist/system-detect.d.ts +59 -0
  96. package/dist/system-detect.d.ts.map +1 -0
  97. package/dist/system-detect.js +193 -0
  98. package/dist/system-detect.js.map +1 -0
  99. package/dist/tools/browser/tool.d.ts +2 -2
  100. package/dist/tools/browser/types.d.ts +2 -2
  101. package/dist/tools/file/tools.d.ts.map +1 -1
  102. package/dist/tools/file/tools.js +30 -1
  103. package/dist/tools/file/tools.js.map +1 -1
  104. package/dist/tools/index.d.ts +0 -1
  105. package/dist/tools/index.d.ts.map +1 -1
  106. package/dist/tools/index.js +0 -2
  107. package/dist/tools/index.js.map +1 -1
  108. package/dist/tools/progress/index.d.ts +1 -1
  109. package/dist/tools/provider.d.ts +97 -0
  110. package/dist/tools/provider.d.ts.map +1 -0
  111. package/dist/tools/provider.js +178 -0
  112. package/dist/tools/provider.js.map +1 -0
  113. package/dist/tools/shell/background.d.ts.map +1 -1
  114. package/dist/tools/shell/background.js +45 -3
  115. package/dist/tools/shell/background.js.map +1 -1
  116. package/dist/tools/shell/tools.d.ts.map +1 -1
  117. package/dist/tools/shell/tools.js +9 -2
  118. package/dist/tools/shell/tools.js.map +1 -1
  119. package/dist/tools/utils/shell.d.ts +14 -0
  120. package/dist/tools/utils/shell.d.ts.map +1 -1
  121. package/dist/tools/utils/shell.js +171 -12
  122. package/dist/tools/utils/shell.js.map +1 -1
  123. package/dist/types/agent-v2.d.ts +83 -0
  124. package/dist/types/agent-v2.d.ts.map +1 -0
  125. package/dist/types/agent-v2.js +8 -0
  126. package/dist/types/agent-v2.js.map +1 -0
  127. package/dist/types/agent.d.ts +10 -0
  128. package/dist/types/agent.d.ts.map +1 -1
  129. package/dist/utils/logger.d.ts +35 -0
  130. package/dist/utils/logger.d.ts.map +1 -0
  131. package/dist/utils/logger.js +149 -0
  132. package/dist/utils/logger.js.map +1 -0
  133. package/dist/workflow/builders/adapt.d.ts +20 -0
  134. package/dist/workflow/builders/adapt.d.ts.map +1 -0
  135. package/dist/workflow/builders/adapt.js +33 -0
  136. package/dist/workflow/builders/adapt.js.map +1 -0
  137. package/dist/workflow/builders/index.d.ts +8 -0
  138. package/dist/workflow/builders/index.d.ts.map +1 -0
  139. package/dist/workflow/builders/index.js +7 -0
  140. package/dist/workflow/builders/index.js.map +1 -0
  141. package/dist/workflow/builders/parallel.d.ts +25 -0
  142. package/dist/workflow/builders/parallel.d.ts.map +1 -0
  143. package/dist/workflow/builders/parallel.js +60 -0
  144. package/dist/workflow/builders/parallel.js.map +1 -0
  145. package/dist/workflow/builders/pipeline.d.ts +22 -0
  146. package/dist/workflow/builders/pipeline.d.ts.map +1 -0
  147. package/dist/workflow/builders/pipeline.js +48 -0
  148. package/dist/workflow/builders/pipeline.js.map +1 -0
  149. package/dist/workflow/builders/types.d.ts +54 -0
  150. package/dist/workflow/builders/types.d.ts.map +1 -0
  151. package/dist/workflow/builders/types.js +5 -0
  152. package/dist/workflow/builders/types.js.map +1 -0
  153. package/dist/workflow/durable-agent.d.ts +128 -0
  154. package/dist/workflow/durable-agent.d.ts.map +1 -0
  155. package/dist/workflow/durable-agent.js +323 -0
  156. package/dist/workflow/durable-agent.js.map +1 -0
  157. package/dist/workflow/schedulers.d.ts +231 -0
  158. package/dist/workflow/schedulers.d.ts.map +1 -0
  159. package/dist/workflow/schedulers.js +250 -0
  160. package/dist/workflow/schedulers.js.map +1 -0
  161. package/dist/workflow/team/create-team.d.ts +34 -0
  162. package/dist/workflow/team/create-team.d.ts.map +1 -0
  163. package/dist/workflow/team/create-team.js +242 -0
  164. package/dist/workflow/team/create-team.js.map +1 -0
  165. package/dist/workflow/team/index.d.ts +9 -0
  166. package/dist/workflow/team/index.d.ts.map +1 -0
  167. package/dist/workflow/team/index.js +8 -0
  168. package/dist/workflow/team/index.js.map +1 -0
  169. package/dist/workflow/team/machines.d.ts +152 -0
  170. package/dist/workflow/team/machines.d.ts.map +1 -0
  171. package/dist/workflow/team/machines.js +197 -0
  172. package/dist/workflow/team/machines.js.map +1 -0
  173. package/dist/workflow/team/task-board.d.ts +47 -0
  174. package/dist/workflow/team/task-board.d.ts.map +1 -0
  175. package/dist/workflow/team/task-board.js +111 -0
  176. package/dist/workflow/team/task-board.js.map +1 -0
  177. package/dist/workflow/team/tools.d.ts +66 -0
  178. package/dist/workflow/team/tools.d.ts.map +1 -0
  179. package/dist/workflow/team/tools.js +100 -0
  180. package/dist/workflow/team/tools.js.map +1 -0
  181. package/dist/workflow/team/types.d.ts +109 -0
  182. package/dist/workflow/team/types.d.ts.map +1 -0
  183. package/dist/workflow/team/types.js +5 -0
  184. package/dist/workflow/team/types.js.map +1 -0
  185. package/dist/workflow/templates.d.ts +71 -0
  186. package/dist/workflow/templates.d.ts.map +1 -0
  187. package/dist/workflow/templates.js +132 -0
  188. package/dist/workflow/templates.js.map +1 -0
  189. package/package.json +13 -13
  190. package/LICENSE +0 -22
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @agntk/core - V2 Agent Factory
3
+ *
4
+ * A fully-equipped agent that shows up ready. No roles, no tool presets,
5
+ * no feature flags. You give it a name, tell it what it's doing, and
6
+ * point it at a task. It figures out the rest.
7
+ *
8
+ * Every capability is auto-detected from the environment:
9
+ * - Tools: ALL tools, always
10
+ * - Memory: always on, stored at ~/.agntk/agents/{name}/
11
+ * - Durability: auto-detected (workflow package installed → on)
12
+ * - Telemetry: auto-detected (LANGFUSE_PUBLIC_KEY set → on)
13
+ * - Skills: auto-discovered from standard directories
14
+ * - Sub-agents: always enabled with team coordination
15
+ * - Reflection: always on (reflact strategy)
16
+ * - Approval: always on for dangerous tools
17
+ * - Model: auto-selected from available API keys
18
+ */
19
+ import type { AgentOptionsV2, AgentV2 } from './types/agent-v2.js';
20
+ /**
21
+ * Create a v2 agent — fully equipped, zero config.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const agent = createAgentV2({
26
+ * name: 'deploy-bot',
27
+ * instructions: 'You manage deployments for our k8s cluster.',
28
+ * });
29
+ *
30
+ * const result = await agent.stream({ prompt: 'Roll back staging to yesterday' });
31
+ * for await (const chunk of result.fullStream) {
32
+ * if (chunk.type === 'text-delta') process.stdout.write(chunk.text ?? '');
33
+ * }
34
+ * ```
35
+ */
36
+ /**
37
+ * Internal options not exposed in the public API.
38
+ * Used by the factory when recursively creating sub-agents.
39
+ */
40
+ interface InternalV2Options {
41
+ /** Current spawn depth. 0 = top-level agent. */
42
+ _spawnDepth?: number;
43
+ /** Parent agent name, for naming sub-agents. */
44
+ _parentName?: string;
45
+ }
46
+ export declare function createAgentV2(options: AgentOptionsV2, _internal?: InternalV2Options): AgentV2;
47
+ export default createAgentV2;
48
+ //# sourceMappingURL=agent-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-v2.d.ts","sourceRoot":"","sources":["../src/agent-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAuB,MAAM,kBAAkB,CAAC;AAuGrF;;;;;;;;;;;;;;;GAeG;AACH;;;GAGG;AACH,UAAU,iBAAiB;IACzB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,GAAE,iBAAsB,GAAG,OAAO,CAkTjG;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,365 @@
1
+ /**
2
+ * @agntk/core - V2 Agent Factory
3
+ *
4
+ * A fully-equipped agent that shows up ready. No roles, no tool presets,
5
+ * no feature flags. You give it a name, tell it what it's doing, and
6
+ * point it at a task. It figures out the rest.
7
+ *
8
+ * Every capability is auto-detected from the environment:
9
+ * - Tools: ALL tools, always
10
+ * - Memory: always on, stored at ~/.agntk/agents/{name}/
11
+ * - Durability: auto-detected (workflow package installed → on)
12
+ * - Telemetry: auto-detected (LANGFUSE_PUBLIC_KEY set → on)
13
+ * - Skills: auto-discovered from standard directories
14
+ * - Sub-agents: always enabled with team coordination
15
+ * - Reflection: always on (reflact strategy)
16
+ * - Approval: always on for dangerous tools
17
+ * - Model: auto-selected from available API keys
18
+ */
19
+ import { resolve } from 'node:path';
20
+ import { homedir } from 'node:os';
21
+ import { ToolLoopAgent, stepCountIs } from 'ai';
22
+ import { createLogger } from '@agntk/logger';
23
+ import { usageLimitStop } from './usage-limits.js';
24
+ import { resolveModel } from './models.js';
25
+ import { createToolPreset } from './presets/tools.js';
26
+ import { createSpawnAgentTool } from './tools/spawn-agent/index.js';
27
+ import { wrapAllToolsWithRetry } from './tools/model-retry.js';
28
+ import { discoverSkills, filterEligibleSkills, buildSkillsSystemPrompt, loadSkillContent } from './skills/index.js';
29
+ import { checkWorkflowAvailability } from './workflow/utils.js';
30
+ import { wrapToolsAsDurable } from './workflow/durable-tool.js';
31
+ import { createReflectionPrepareStep } from './reflection.js';
32
+ // import { applyApproval } from './tools/approval.js'; // Disabled until approval handler is wired up
33
+ import { runGuardrails, handleGuardrailResults } from './guardrails/runner.js';
34
+ import { contentFilter } from './guardrails/built-ins.js';
35
+ import { MarkdownMemoryStore } from './memory/store.js';
36
+ import { loadMemoryContext } from './memory/loader.js';
37
+ import { createMemoryTools } from './memory/tools.js';
38
+ import { initObservability, createTelemetrySettings } from './observability/index.js';
39
+ import { buildDynamicSystemPrompt } from './prompts/context.js';
40
+ // ============================================================================
41
+ // Logger
42
+ // ============================================================================
43
+ const log = createLogger('@agntk/core:agent-v2');
44
+ // ============================================================================
45
+ // Constants
46
+ // ============================================================================
47
+ const DEFAULT_MAX_STEPS = 25;
48
+ const SUB_AGENT_MAX_STEPS = 15;
49
+ const DEFAULT_MAX_SPAWN_DEPTH = 2;
50
+ const AGENT_STATE_BASE = '.agntk/agents';
51
+ // ============================================================================
52
+ // Helpers
53
+ // ============================================================================
54
+ /**
55
+ * Resolve the persistent state directory for a named agent.
56
+ * ~/.agntk/agents/{name}/
57
+ */
58
+ function resolveAgentStatePath(name) {
59
+ // Sanitize name for filesystem
60
+ const safeName = name.replace(/[^a-zA-Z0-9_-]/g, '_').toLowerCase();
61
+ return resolve(homedir(), AGENT_STATE_BASE, safeName);
62
+ }
63
+ /**
64
+ * Detect if telemetry should be enabled from env vars.
65
+ */
66
+ function detectTelemetry() {
67
+ return !!(process.env.LANGFUSE_PUBLIC_KEY &&
68
+ process.env.LANGFUSE_SECRET_KEY);
69
+ }
70
+ /**
71
+ * Build the base instructions for the agent.
72
+ * Combines user instructions with auto-discovered skills.
73
+ */
74
+ function buildBaseInstructions(name, userInstructions, skillsPrompt) {
75
+ const parts = [];
76
+ // Core identity
77
+ parts.push(`You are ${name}, a capable AI agent.`);
78
+ // User instructions
79
+ if (userInstructions) {
80
+ parts.push('');
81
+ parts.push(userInstructions);
82
+ }
83
+ // Agent capabilities reminder
84
+ parts.push('');
85
+ parts.push('You have access to a full suite of tools including file operations, ' +
86
+ 'shell commands, code search (grep, glob, ast-grep), a browser, ' +
87
+ 'deep reasoning, planning, and persistent memory. ' +
88
+ 'You can spawn sub-agents for complex tasks that benefit from delegation. ' +
89
+ 'Use the remember tool to persist important findings across sessions. ' +
90
+ 'Use the recall tool to search your memory for relevant context.');
91
+ // Skills
92
+ if (skillsPrompt) {
93
+ parts.push('');
94
+ parts.push(skillsPrompt);
95
+ }
96
+ return parts.join('\n');
97
+ }
98
+ export function createAgentV2(options, _internal = {}) {
99
+ const { name, instructions, workspaceRoot = process.cwd(), } = options;
100
+ const spawnDepth = _internal._spawnDepth ?? 0;
101
+ const isSubAgent = spawnDepth > 0;
102
+ const maxSteps = options.maxSteps ?? (isSubAgent ? SUB_AGENT_MAX_STEPS : DEFAULT_MAX_STEPS);
103
+ log.info('Creating v2 agent', { name, maxSteps, workspaceRoot, spawnDepth });
104
+ // ── 1. Resolve model ──────────────────────────────────────────────────
105
+ // User override takes priority, otherwise auto-select from available API keys.
106
+ const model = options.model ?? resolveModel({ tier: 'standard' });
107
+ log.debug('Model resolved', { hasExplicitModel: !!options.model });
108
+ // ── 2. Build ALL tools (no presets, no filtering) ─────────────────────
109
+ // The 'full' preset creates every tool we have.
110
+ let tools = createToolPreset('full', { workspaceRoot });
111
+ log.debug('Base tools built', { count: Object.keys(tools).length, tools: Object.keys(tools) });
112
+ // ── 3. Memory — always on ─────────────────────────────────────────────
113
+ // Each named agent gets persistent state at ~/.agntk/agents/{name}/
114
+ const agentStatePath = resolveAgentStatePath(name);
115
+ const memoryStore = new MarkdownMemoryStore({
116
+ projectDir: agentStatePath,
117
+ globalDir: '.agntk', // Global identity/preferences at ~/.agntk/
118
+ workspaceRoot,
119
+ });
120
+ const memoryTools = createMemoryTools({ store: memoryStore, model });
121
+ Object.assign(tools, memoryTools);
122
+ log.info('Memory enabled', {
123
+ agentStatePath,
124
+ projectPath: memoryStore.getProjectPath(),
125
+ globalPath: memoryStore.getGlobalPath(),
126
+ tools: Object.keys(memoryTools),
127
+ });
128
+ // ── 4. Sub-agents — recursive v2 creation ──────────────────────────────
129
+ // Sub-agents are full v2 agents. At max depth, spawn tool is omitted.
130
+ if (spawnDepth < DEFAULT_MAX_SPAWN_DEPTH) {
131
+ const spawnTool = createSpawnAgentTool({
132
+ maxSpawnDepth: DEFAULT_MAX_SPAWN_DEPTH,
133
+ currentDepth: spawnDepth,
134
+ createAgent: (subAgentOptions) => {
135
+ const subName = `${name}/${subAgentOptions.role}`;
136
+ log.info('Spawning sub-agent', { parentName: name, subName, role: subAgentOptions.role });
137
+ // Create a full v2 sub-agent with depth+1.
138
+ // It gets all tools, its own memory under the parent's state dir,
139
+ // and won't get a spawn tool if at max depth.
140
+ const subAgent = createAgentV2({
141
+ name: subName,
142
+ instructions: subAgentOptions.instructions,
143
+ workspaceRoot,
144
+ maxSteps: SUB_AGENT_MAX_STEPS,
145
+ model: options.model, // Inherit parent's model
146
+ }, {
147
+ _spawnDepth: spawnDepth + 1,
148
+ _parentName: name,
149
+ });
150
+ return {
151
+ stream: (input) => {
152
+ const streamPromise = subAgent.stream(input);
153
+ return {
154
+ fullStream: (async function* () {
155
+ const result = await streamPromise;
156
+ for await (const chunk of result.fullStream) {
157
+ yield chunk;
158
+ }
159
+ })(),
160
+ text: streamPromise.then((r) => r.text),
161
+ };
162
+ },
163
+ };
164
+ },
165
+ });
166
+ tools = { ...tools, spawn_agent: spawnTool };
167
+ log.debug('Sub-agents enabled', { maxSpawnDepth: DEFAULT_MAX_SPAWN_DEPTH, currentDepth: spawnDepth });
168
+ }
169
+ else {
170
+ log.debug('Sub-agents disabled (at max spawn depth)', { spawnDepth });
171
+ }
172
+ // ── 5. Approval — off by default ─────────────────────────────────────
173
+ // The v2 agent is run by a person who trusts it. Approval can be
174
+ // re-enabled when we add a proper approval handler to the CLI/SDK.
175
+ // Without a handler, needsApproval: true silently blocks tool execution.
176
+ log.debug('Approval disabled (no handler configured)');
177
+ // ── 6. Durability — auto-detect (deferred to init) ──────────────────
178
+ // Wrapping is only applied if the 'workflow' package is installed.
179
+ // Checked in ensureInit() since the detection is async.
180
+ // ── 7. ModelRetry — always on ─────────────────────────────────────────
181
+ tools = wrapAllToolsWithRetry(tools, 3);
182
+ log.debug('ModelRetry wrapping applied');
183
+ // ── 8. Auto-discover skills ───────────────────────────────────────────
184
+ let skillsPrompt = '';
185
+ try {
186
+ const discovered = discoverSkills(undefined, workspaceRoot);
187
+ const eligible = filterEligibleSkills(discovered);
188
+ if (eligible.length > 0) {
189
+ const loaded = eligible.map((s) => loadSkillContent(s));
190
+ skillsPrompt = buildSkillsSystemPrompt(loaded);
191
+ log.info('Skills discovered', { count: eligible.length, names: eligible.map((s) => s.name) });
192
+ }
193
+ }
194
+ catch (err) {
195
+ log.warn('Skill discovery failed', { error: err instanceof Error ? err.message : String(err) });
196
+ }
197
+ // ── 9. Build system prompt ────────────────────────────────────────────
198
+ let augmentedSystemPrompt = buildBaseInstructions(name, instructions, skillsPrompt);
199
+ // ── 10. Stop conditions ───────────────────────────────────────────────
200
+ const stopConditions = [
201
+ stepCountIs(maxSteps),
202
+ ];
203
+ if (options.usageLimits) {
204
+ stopConditions.push(usageLimitStop(options.usageLimits));
205
+ log.debug('Usage limits configured', { limits: options.usageLimits });
206
+ }
207
+ // ── 11. Reflection — always on (reflact strategy) ─────────────────────
208
+ const prepareStep = createReflectionPrepareStep(augmentedSystemPrompt, {
209
+ strategy: 'reflact',
210
+ });
211
+ log.debug('Reflection enabled', { strategy: 'reflact' });
212
+ // ── 12. Guardrails — always on (output: PII content filter) ──────────
213
+ // Default output guardrails run on the final text to catch PII leaks.
214
+ // Uses 'filter' mode: PII is silently redacted, not blocked.
215
+ const outputGuardrails = [contentFilter()];
216
+ log.debug('Output guardrails enabled', { guards: outputGuardrails.map((g) => g.name) });
217
+ // ── 13. Telemetry — auto-detect ──────────────────────────────────────
218
+ const telemetryEnabled = detectTelemetry();
219
+ const telemetrySettings = telemetryEnabled
220
+ ? createTelemetrySettings({ functionId: `agent-v2:${name}` })
221
+ : undefined;
222
+ if (telemetryEnabled) {
223
+ log.debug('Telemetry will be initialized on first call');
224
+ }
225
+ // ── 14. Build the ToolLoopAgent ───────────────────────────────────────
226
+ const toolLoopAgent = new ToolLoopAgent({
227
+ model,
228
+ instructions: augmentedSystemPrompt,
229
+ tools,
230
+ stopWhen: stopConditions,
231
+ // Dynamic system prompt injection — picks up memory context after lazy load
232
+ prepareCall: (opts) => ({ ...opts, instructions: augmentedSystemPrompt }),
233
+ prepareStep,
234
+ ...(telemetrySettings ? { experimental_telemetry: telemetrySettings } : {}),
235
+ });
236
+ log.debug('ToolLoopAgent created', {
237
+ promptLength: augmentedSystemPrompt.length,
238
+ toolCount: Object.keys(tools).length,
239
+ telemetry: !!telemetrySettings,
240
+ });
241
+ // ── Lazy initializers ─────────────────────────────────────────────────
242
+ const agentLog = log.child({ agent: name });
243
+ let initialized = false;
244
+ let initPromise = null;
245
+ async function ensureInit() {
246
+ if (initialized)
247
+ return;
248
+ if (initPromise)
249
+ return initPromise;
250
+ initPromise = (async () => {
251
+ // Load memory context into system prompt
252
+ try {
253
+ const memoryContext = await loadMemoryContext(memoryStore);
254
+ if (memoryContext) {
255
+ augmentedSystemPrompt = memoryContext + '\n\n' + augmentedSystemPrompt;
256
+ agentLog.debug('Memory context injected', { chars: memoryContext.length });
257
+ }
258
+ }
259
+ catch (err) {
260
+ agentLog.warn('Memory context loading failed', {
261
+ error: err instanceof Error ? err.message : String(err),
262
+ });
263
+ }
264
+ // Inject dynamic environment context (time, platform, workspace)
265
+ try {
266
+ augmentedSystemPrompt = await buildDynamicSystemPrompt(augmentedSystemPrompt, {
267
+ workspaceRoot,
268
+ includeWorkspaceMap: true,
269
+ });
270
+ agentLog.debug('Dynamic context injected');
271
+ }
272
+ catch (err) {
273
+ agentLog.warn('Dynamic context injection failed', {
274
+ error: err instanceof Error ? err.message : String(err),
275
+ });
276
+ }
277
+ // Apply durable wrapping if workflow runtime is available
278
+ try {
279
+ const workflowAvailable = await checkWorkflowAvailability();
280
+ if (workflowAvailable) {
281
+ tools = wrapToolsAsDurable(tools, { retryCount: 3 });
282
+ agentLog.info('Durable tool wrapping active (workflow package detected)');
283
+ }
284
+ else {
285
+ agentLog.debug('Workflow package not installed — skipping durable wrapping');
286
+ }
287
+ }
288
+ catch {
289
+ agentLog.debug('Workflow detection failed — skipping durable wrapping');
290
+ }
291
+ // Initialize telemetry if detected
292
+ if (telemetryEnabled) {
293
+ try {
294
+ await initObservability({
295
+ provider: 'langfuse',
296
+ });
297
+ agentLog.info('Telemetry initialized');
298
+ }
299
+ catch (err) {
300
+ agentLog.warn('Telemetry initialization failed', {
301
+ error: err instanceof Error ? err.message : String(err),
302
+ });
303
+ }
304
+ }
305
+ initialized = true;
306
+ })();
307
+ return initPromise;
308
+ }
309
+ // ── Build the agent instance ──────────────────────────────────────────
310
+ const agent = {
311
+ name,
312
+ init: ensureInit,
313
+ getSystemPrompt: () => augmentedSystemPrompt,
314
+ getToolNames: () => Object.keys(tools),
315
+ stream: async (input) => {
316
+ await ensureInit();
317
+ agentLog.info('stream() called', { promptLength: input.prompt.length });
318
+ const result = await toolLoopAgent.stream({ prompt: input.prompt });
319
+ // Apply output guardrails to the final text (async, runs after stream completes).
320
+ // Uses 'filter' mode — PII is silently redacted, agent is never blocked.
321
+ const guardedText = result.text.then(async (text) => {
322
+ if (!text || outputGuardrails.length === 0)
323
+ return text;
324
+ try {
325
+ const { results, filteredText } = await runGuardrails(outputGuardrails, text, {
326
+ prompt: input.prompt,
327
+ phase: 'output',
328
+ });
329
+ const check = handleGuardrailResults(results, text, filteredText, 'output', 'filter');
330
+ if (check.blocked) {
331
+ agentLog.info('Output guardrails filtered content', {
332
+ guards: results.filter((r) => !r.passed).map((r) => r.name),
333
+ });
334
+ return check.text;
335
+ }
336
+ }
337
+ catch (err) {
338
+ agentLog.warn('Output guardrails failed', {
339
+ error: err instanceof Error ? err.message : String(err),
340
+ });
341
+ }
342
+ return text;
343
+ });
344
+ return {
345
+ fullStream: result.fullStream,
346
+ text: guardedText,
347
+ usage: result.totalUsage,
348
+ };
349
+ },
350
+ };
351
+ log.info('V2 agent created', {
352
+ name,
353
+ spawnDepth,
354
+ toolCount: Object.keys(tools).length,
355
+ tools: Object.keys(tools),
356
+ memoryPath: agentStatePath,
357
+ durable: 'auto-detect',
358
+ telemetry: telemetryEnabled,
359
+ reflection: 'reflact',
360
+ guardrails: outputGuardrails.map((g) => g.name),
361
+ });
362
+ return agent;
363
+ }
364
+ export default createAgentV2;
365
+ //# sourceMappingURL=agent-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-v2.js","sourceRoot":"","sources":["../src/agent-v2.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AAgG5E,gBAAgB;AAChB,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,GAAE,eAAoB,GAAG,KAAK,CAwQzF;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AAmG5E,gBAAgB;AAChB,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,GAAE,eAAoB,GAAG,KAAK,CAuRzF;AAED,eAAe,WAAW,CAAC"}
package/dist/agent.js CHANGED
@@ -31,6 +31,7 @@ import { wrapToolsAsDurable } from './workflow/durable-tool.js';
31
31
  import { createReflectionPrepareStep } from './reflection.js';
32
32
  import { runGuardrails, handleGuardrailResults } from './guardrails/runner.js';
33
33
  import { contentFilter } from './guardrails/built-ins.js';
34
+ import { applyApproval, resolveApprovalConfig } from './tools/approval.js';
34
35
  import { MarkdownMemoryStore } from './memory/store.js';
35
36
  import { loadMemoryContext } from './memory/loader.js';
36
37
  import { createMemoryTools } from './memory/tools.js';
@@ -81,7 +82,9 @@ function buildBaseInstructions(name, userInstructions, skillsPrompt) {
81
82
  'deep reasoning, planning, and persistent memory. ' +
82
83
  'You can spawn sub-agents for complex tasks that benefit from delegation. ' +
83
84
  'Use the remember tool to persist important findings across sessions. ' +
84
- 'Use the recall tool to search your memory for relevant context.');
85
+ 'Use the recall tool to search your memory for relevant context. ' +
86
+ 'If the user\'s request is vague or conversational (e.g., greetings, ' +
87
+ '"whats up", "hello"), respond conversationally without using tools.');
85
88
  if (skillsPrompt) {
86
89
  parts.push('');
87
90
  parts.push(skillsPrompt);
@@ -194,17 +197,25 @@ export function createAgent(options, _internal = {}) {
194
197
  stopConditions.push(usageLimitStop(options.usageLimits));
195
198
  }
196
199
  // ── 9. Reflection — always on (reflact strategy) ──────────────────────
197
- const prepareStep = createReflectionPrepareStep(augmentedSystemPrompt, {
200
+ // Pass a getter so reflection always reads the current augmentedSystemPrompt,
201
+ // even after memory/context is injected during ensureInit() (fixes DESIGN-001).
202
+ const prepareStep = createReflectionPrepareStep(() => augmentedSystemPrompt, {
198
203
  strategy: 'reflact',
199
204
  });
200
205
  // ── 10. Guardrails — always on (output: PII content filter) ───────────
201
206
  const outputGuardrails = [contentFilter()];
202
- // ── 11. Telemetry auto-detect ───────────────────────────────────────
207
+ // ── 11. Apply approval wrapping if requested ───────────────────────────
208
+ const approvalConfig = resolveApprovalConfig(options.approval);
209
+ if (approvalConfig) {
210
+ tools = applyApproval(tools, approvalConfig);
211
+ log.info('Approval system enabled', { tools: approvalConfig.tools ?? 'default dangerous tools' });
212
+ }
213
+ // ── 12. Telemetry — auto-detect ──────────────────────────────────────
203
214
  const telemetryEnabled = detectTelemetry();
204
215
  const telemetrySettings = telemetryEnabled
205
216
  ? createTelemetrySettings({ functionId: `agent:${name}` })
206
217
  : undefined;
207
- // ── 12. Build the ToolLoopAgent ───────────────────────────────────────
218
+ // ── 13. Build the ToolLoopAgent ──────────────────────────────────────
208
219
  const toolLoopAgent = new ToolLoopAgent({
209
220
  model,
210
221
  instructions: augmentedSystemPrompt,
@@ -228,55 +239,62 @@ export function createAgent(options, _internal = {}) {
228
239
  if (initPromise)
229
240
  return initPromise;
230
241
  initPromise = (async () => {
231
- // Load memory context into system prompt
232
242
  try {
233
- const memoryContext = await loadMemoryContext(memoryStore);
234
- if (memoryContext) {
235
- augmentedSystemPrompt = memoryContext + '\n\n' + augmentedSystemPrompt;
236
- agentLog.debug('Memory context injected', { chars: memoryContext.length });
243
+ // Load memory context into system prompt
244
+ try {
245
+ const memoryContext = await loadMemoryContext(memoryStore);
246
+ if (memoryContext) {
247
+ augmentedSystemPrompt = memoryContext + '\n\n' + augmentedSystemPrompt;
248
+ agentLog.debug('Memory context injected', { chars: memoryContext.length });
249
+ }
237
250
  }
238
- }
239
- catch (err) {
240
- agentLog.warn('Memory context loading failed', {
241
- error: err instanceof Error ? err.message : String(err),
242
- });
243
- }
244
- // Inject dynamic environment context
245
- try {
246
- augmentedSystemPrompt = await buildDynamicSystemPrompt(augmentedSystemPrompt, {
247
- workspaceRoot,
248
- includeWorkspaceMap: true,
249
- });
250
- }
251
- catch (err) {
252
- agentLog.warn('Dynamic context injection failed', {
253
- error: err instanceof Error ? err.message : String(err),
254
- });
255
- }
256
- // Apply durable wrapping if workflow runtime is available
257
- try {
258
- const workflowAvailable = await checkWorkflowAvailability();
259
- if (workflowAvailable) {
260
- tools = wrapToolsAsDurable(tools, { retryCount: 3 });
261
- agentLog.info('Durable tool wrapping active');
251
+ catch (err) {
252
+ agentLog.warn('Memory context loading failed', {
253
+ error: err instanceof Error ? err.message : String(err),
254
+ });
262
255
  }
263
- }
264
- catch {
265
- agentLog.debug('Workflow detection failed — skipping durable wrapping');
266
- }
267
- // Initialize telemetry if detected
268
- if (telemetryEnabled) {
256
+ // Inject dynamic environment context
269
257
  try {
270
- await initObservability({ provider: 'langfuse' });
271
- agentLog.info('Telemetry initialized');
258
+ augmentedSystemPrompt = await buildDynamicSystemPrompt(augmentedSystemPrompt, {
259
+ workspaceRoot,
260
+ includeWorkspaceMap: true,
261
+ });
272
262
  }
273
263
  catch (err) {
274
- agentLog.warn('Telemetry initialization failed', {
264
+ agentLog.warn('Dynamic context injection failed', {
275
265
  error: err instanceof Error ? err.message : String(err),
276
266
  });
277
267
  }
268
+ // Apply durable wrapping if workflow runtime is available
269
+ try {
270
+ const workflowAvailable = await checkWorkflowAvailability();
271
+ if (workflowAvailable) {
272
+ tools = wrapToolsAsDurable(tools, { retryCount: 3 });
273
+ agentLog.info('Durable tool wrapping active');
274
+ }
275
+ }
276
+ catch {
277
+ agentLog.debug('Workflow detection failed — skipping durable wrapping');
278
+ }
279
+ // Initialize telemetry if detected
280
+ if (telemetryEnabled) {
281
+ try {
282
+ await initObservability({ provider: 'langfuse' });
283
+ agentLog.info('Telemetry initialized');
284
+ }
285
+ catch (err) {
286
+ agentLog.warn('Telemetry initialization failed', {
287
+ error: err instanceof Error ? err.message : String(err),
288
+ });
289
+ }
290
+ }
291
+ initialized = true;
292
+ }
293
+ catch (err) {
294
+ // E-5: Reset so callers can retry instead of permanently failing
295
+ initPromise = null;
296
+ throw err;
278
297
  }
279
- initialized = true;
280
298
  })();
281
299
  return initPromise;
282
300
  }
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}