@agntk/core 0.3.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 (132) 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/memory/engine.d.ts +130 -0
  6. package/dist/memory/engine.d.ts.map +1 -0
  7. package/dist/memory/engine.js +227 -0
  8. package/dist/memory/engine.js.map +1 -0
  9. package/dist/memory/vectra-store.d.ts +31 -0
  10. package/dist/memory/vectra-store.d.ts.map +1 -0
  11. package/dist/memory/vectra-store.js +122 -0
  12. package/dist/memory/vectra-store.js.map +1 -0
  13. package/dist/models.js +1 -1
  14. package/dist/models.js.map +1 -1
  15. package/dist/pool/index.d.ts +7 -0
  16. package/dist/pool/index.d.ts.map +1 -0
  17. package/dist/pool/index.js +6 -0
  18. package/dist/pool/index.js.map +1 -0
  19. package/dist/pool/specialist-pool.d.ts +59 -0
  20. package/dist/pool/specialist-pool.d.ts.map +1 -0
  21. package/dist/pool/specialist-pool.js +224 -0
  22. package/dist/pool/specialist-pool.js.map +1 -0
  23. package/dist/pool/tools.d.ts +63 -0
  24. package/dist/pool/tools.d.ts.map +1 -0
  25. package/dist/pool/tools.js +83 -0
  26. package/dist/pool/tools.js.map +1 -0
  27. package/dist/pool/types.d.ts +79 -0
  28. package/dist/pool/types.d.ts.map +1 -0
  29. package/dist/pool/types.js +5 -0
  30. package/dist/pool/types.js.map +1 -0
  31. package/dist/presets/index.d.ts +5 -0
  32. package/dist/presets/index.d.ts.map +1 -0
  33. package/dist/presets/index.js +5 -0
  34. package/dist/presets/index.js.map +1 -0
  35. package/dist/presets/role-registry.d.ts +41 -0
  36. package/dist/presets/role-registry.d.ts.map +1 -0
  37. package/dist/presets/role-registry.js +213 -0
  38. package/dist/presets/role-registry.js.map +1 -0
  39. package/dist/presets/roles.d.ts +105 -0
  40. package/dist/presets/roles.d.ts.map +1 -0
  41. package/dist/presets/roles.js +207 -0
  42. package/dist/presets/roles.js.map +1 -0
  43. package/dist/prompts/templates.d.ts +11 -0
  44. package/dist/prompts/templates.d.ts.map +1 -0
  45. package/dist/prompts/templates.js +115 -0
  46. package/dist/prompts/templates.js.map +1 -0
  47. package/dist/streaming/data-parts.d.ts +163 -0
  48. package/dist/streaming/data-parts.d.ts.map +1 -0
  49. package/dist/streaming/data-parts.js +14 -0
  50. package/dist/streaming/data-parts.js.map +1 -0
  51. package/dist/streaming/index.d.ts +8 -0
  52. package/dist/streaming/index.d.ts.map +1 -0
  53. package/dist/streaming/index.js +10 -0
  54. package/dist/streaming/index.js.map +1 -0
  55. package/dist/streaming/transient.d.ts +136 -0
  56. package/dist/streaming/transient.d.ts.map +1 -0
  57. package/dist/streaming/transient.js +201 -0
  58. package/dist/streaming/transient.js.map +1 -0
  59. package/dist/tools/factory.d.ts +109 -0
  60. package/dist/tools/factory.d.ts.map +1 -0
  61. package/dist/tools/factory.js +166 -0
  62. package/dist/tools/factory.js.map +1 -0
  63. package/dist/tools/provider.d.ts +97 -0
  64. package/dist/tools/provider.d.ts.map +1 -0
  65. package/dist/tools/provider.js +178 -0
  66. package/dist/tools/provider.js.map +1 -0
  67. package/dist/types/agent-v2.d.ts +83 -0
  68. package/dist/types/agent-v2.d.ts.map +1 -0
  69. package/dist/types/agent-v2.js +8 -0
  70. package/dist/types/agent-v2.js.map +1 -0
  71. package/dist/utils/logger.d.ts +35 -0
  72. package/dist/utils/logger.d.ts.map +1 -0
  73. package/dist/utils/logger.js +149 -0
  74. package/dist/utils/logger.js.map +1 -0
  75. package/dist/workflow/builders/adapt.d.ts +20 -0
  76. package/dist/workflow/builders/adapt.d.ts.map +1 -0
  77. package/dist/workflow/builders/adapt.js +33 -0
  78. package/dist/workflow/builders/adapt.js.map +1 -0
  79. package/dist/workflow/builders/index.d.ts +8 -0
  80. package/dist/workflow/builders/index.d.ts.map +1 -0
  81. package/dist/workflow/builders/index.js +7 -0
  82. package/dist/workflow/builders/index.js.map +1 -0
  83. package/dist/workflow/builders/parallel.d.ts +25 -0
  84. package/dist/workflow/builders/parallel.d.ts.map +1 -0
  85. package/dist/workflow/builders/parallel.js +60 -0
  86. package/dist/workflow/builders/parallel.js.map +1 -0
  87. package/dist/workflow/builders/pipeline.d.ts +22 -0
  88. package/dist/workflow/builders/pipeline.d.ts.map +1 -0
  89. package/dist/workflow/builders/pipeline.js +48 -0
  90. package/dist/workflow/builders/pipeline.js.map +1 -0
  91. package/dist/workflow/builders/types.d.ts +54 -0
  92. package/dist/workflow/builders/types.d.ts.map +1 -0
  93. package/dist/workflow/builders/types.js +5 -0
  94. package/dist/workflow/builders/types.js.map +1 -0
  95. package/dist/workflow/durable-agent.d.ts +128 -0
  96. package/dist/workflow/durable-agent.d.ts.map +1 -0
  97. package/dist/workflow/durable-agent.js +323 -0
  98. package/dist/workflow/durable-agent.js.map +1 -0
  99. package/dist/workflow/schedulers.d.ts +231 -0
  100. package/dist/workflow/schedulers.d.ts.map +1 -0
  101. package/dist/workflow/schedulers.js +250 -0
  102. package/dist/workflow/schedulers.js.map +1 -0
  103. package/dist/workflow/team/create-team.d.ts +34 -0
  104. package/dist/workflow/team/create-team.d.ts.map +1 -0
  105. package/dist/workflow/team/create-team.js +242 -0
  106. package/dist/workflow/team/create-team.js.map +1 -0
  107. package/dist/workflow/team/index.d.ts +9 -0
  108. package/dist/workflow/team/index.d.ts.map +1 -0
  109. package/dist/workflow/team/index.js +8 -0
  110. package/dist/workflow/team/index.js.map +1 -0
  111. package/dist/workflow/team/machines.d.ts +152 -0
  112. package/dist/workflow/team/machines.d.ts.map +1 -0
  113. package/dist/workflow/team/machines.js +197 -0
  114. package/dist/workflow/team/machines.js.map +1 -0
  115. package/dist/workflow/team/task-board.d.ts +47 -0
  116. package/dist/workflow/team/task-board.d.ts.map +1 -0
  117. package/dist/workflow/team/task-board.js +111 -0
  118. package/dist/workflow/team/task-board.js.map +1 -0
  119. package/dist/workflow/team/tools.d.ts +66 -0
  120. package/dist/workflow/team/tools.d.ts.map +1 -0
  121. package/dist/workflow/team/tools.js +100 -0
  122. package/dist/workflow/team/tools.js.map +1 -0
  123. package/dist/workflow/team/types.d.ts +109 -0
  124. package/dist/workflow/team/types.d.ts.map +1 -0
  125. package/dist/workflow/team/types.js +5 -0
  126. package/dist/workflow/team/types.js.map +1 -0
  127. package/dist/workflow/templates.d.ts +71 -0
  128. package/dist/workflow/templates.d.ts.map +1 -0
  129. package/dist/workflow/templates.js +132 -0
  130. package/dist/workflow/templates.js.map +1 -0
  131. package/package.json +13 -13
  132. package/LICENSE +0 -22
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transient.js","sourceRoot":"","sources":["../../src/streaming/transient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * @agntk/core - Tool Factory
3
+ *
4
+ * Factory pattern for creating tool sets with dependency injection.
5
+ * Adapted from packages/core/src/tools/factory.ts
6
+ */
7
+ import type { Tool } from 'ai';
8
+ /**
9
+ * Dependencies that can be injected into tool creators.
10
+ */
11
+ export interface ToolDependencies {
12
+ /** Workspace root directory for file operations */
13
+ workspaceRoot?: string;
14
+ /** Directories the agent is allowed to access */
15
+ allowedDirectories?: string[];
16
+ /** Optional UI stream writer for transient data */
17
+ streamWriter?: unknown;
18
+ /** Optional memory store instance */
19
+ memoryStore?: unknown;
20
+ /** Custom context data */
21
+ context?: Record<string, unknown>;
22
+ }
23
+ /**
24
+ * A set of tools keyed by name.
25
+ */
26
+ export type ToolSet = Record<string, Tool>;
27
+ /**
28
+ * Function that creates a set of tools given dependencies.
29
+ */
30
+ export type ToolCreator = (deps: ToolDependencies) => ToolSet;
31
+ /**
32
+ * Factory for registering and creating tools with dependency injection.
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const factory = new ToolFactory();
37
+ *
38
+ * factory.register('search', (deps) => ({
39
+ * glob: createGlobTool({ defaultCwd: deps.workspaceRoot }),
40
+ * grep: createGrepTool({ defaultCwd: deps.workspaceRoot }),
41
+ * }));
42
+ *
43
+ * const tools = factory.createAll({ workspaceRoot: '/my/project' });
44
+ * ```
45
+ */
46
+ export declare class ToolFactory {
47
+ private factories;
48
+ private creationErrors;
49
+ /**
50
+ * Register a tool creator function.
51
+ */
52
+ register(name: string, creator: ToolCreator): void;
53
+ /**
54
+ * Unregister a tool creator.
55
+ */
56
+ unregister(name: string): boolean;
57
+ /**
58
+ * Check if a tool creator is registered.
59
+ */
60
+ has(name: string): boolean;
61
+ /**
62
+ * Get all registered tool creator names.
63
+ */
64
+ getRegisteredNames(): string[];
65
+ /**
66
+ * Create tools from a single registered creator.
67
+ */
68
+ create(name: string, deps: ToolDependencies): ToolSet | null;
69
+ /**
70
+ * Create all registered tools.
71
+ */
72
+ createAll(deps: ToolDependencies): ToolSet;
73
+ /**
74
+ * Create selected tools by name.
75
+ */
76
+ createSelected(names: string[], deps: ToolDependencies): ToolSet;
77
+ /**
78
+ * Get errors from the last creation operation.
79
+ */
80
+ getLastErrors(): Array<{
81
+ name: string;
82
+ error: string;
83
+ }>;
84
+ /**
85
+ * Clear all registered factories.
86
+ */
87
+ clear(): void;
88
+ }
89
+ /**
90
+ * Default tool factory instance for convenience.
91
+ */
92
+ export declare const defaultToolFactory: ToolFactory;
93
+ /**
94
+ * Merge multiple tool sets into one.
95
+ */
96
+ export declare function mergeToolSets(...toolSets: ToolSet[]): ToolSet;
97
+ /**
98
+ * Filter a tool set to only include specified tools.
99
+ */
100
+ export declare function filterTools(tools: ToolSet, include: string[]): ToolSet;
101
+ /**
102
+ * Exclude specified tools from a tool set.
103
+ */
104
+ export declare function excludeTools(tools: ToolSet, exclude: string[]): ToolSet;
105
+ /**
106
+ * Get tool names from a tool set.
107
+ */
108
+ export declare function getToolNames(tools: ToolSet): string[];
109
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/tools/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAM/B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC;AAM9D;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,cAAc,CAA8C;IAEpE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAIlD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,GAAG,IAAI;IAgB5D;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAoB1C;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAuBhE;;OAEG;IACH,aAAa,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAIvD;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAMD;;GAEG;AACH,eAAO,MAAM,kBAAkB,aAAoB,CAAC;AAMpD;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAKtE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAKvE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAErD"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * @agntk/core - Tool Factory
3
+ *
4
+ * Factory pattern for creating tool sets with dependency injection.
5
+ * Adapted from packages/core/src/tools/factory.ts
6
+ */
7
+ // ============================================================================
8
+ // Tool Factory Class
9
+ // ============================================================================
10
+ /**
11
+ * Factory for registering and creating tools with dependency injection.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const factory = new ToolFactory();
16
+ *
17
+ * factory.register('search', (deps) => ({
18
+ * glob: createGlobTool({ defaultCwd: deps.workspaceRoot }),
19
+ * grep: createGrepTool({ defaultCwd: deps.workspaceRoot }),
20
+ * }));
21
+ *
22
+ * const tools = factory.createAll({ workspaceRoot: '/my/project' });
23
+ * ```
24
+ */
25
+ export class ToolFactory {
26
+ factories = new Map();
27
+ creationErrors = [];
28
+ /**
29
+ * Register a tool creator function.
30
+ */
31
+ register(name, creator) {
32
+ this.factories.set(name, creator);
33
+ }
34
+ /**
35
+ * Unregister a tool creator.
36
+ */
37
+ unregister(name) {
38
+ return this.factories.delete(name);
39
+ }
40
+ /**
41
+ * Check if a tool creator is registered.
42
+ */
43
+ has(name) {
44
+ return this.factories.has(name);
45
+ }
46
+ /**
47
+ * Get all registered tool creator names.
48
+ */
49
+ getRegisteredNames() {
50
+ return Array.from(this.factories.keys());
51
+ }
52
+ /**
53
+ * Create tools from a single registered creator.
54
+ */
55
+ create(name, deps) {
56
+ const creator = this.factories.get(name);
57
+ if (!creator) {
58
+ return null;
59
+ }
60
+ try {
61
+ return creator(deps);
62
+ }
63
+ catch (error) {
64
+ this.creationErrors.push({
65
+ name,
66
+ error: String(error),
67
+ });
68
+ return null;
69
+ }
70
+ }
71
+ /**
72
+ * Create all registered tools.
73
+ */
74
+ createAll(deps) {
75
+ const allTools = {};
76
+ this.creationErrors = [];
77
+ for (const [name, creator] of this.factories.entries()) {
78
+ try {
79
+ const tools = creator(deps);
80
+ Object.assign(allTools, tools);
81
+ }
82
+ catch (error) {
83
+ this.creationErrors.push({
84
+ name,
85
+ error: String(error),
86
+ });
87
+ // Continue creating other tools even if one fails
88
+ }
89
+ }
90
+ return allTools;
91
+ }
92
+ /**
93
+ * Create selected tools by name.
94
+ */
95
+ createSelected(names, deps) {
96
+ const allTools = {};
97
+ this.creationErrors = [];
98
+ for (const name of names) {
99
+ const creator = this.factories.get(name);
100
+ if (!creator) {
101
+ continue;
102
+ }
103
+ try {
104
+ const tools = creator(deps);
105
+ Object.assign(allTools, tools);
106
+ }
107
+ catch (error) {
108
+ this.creationErrors.push({
109
+ name,
110
+ error: String(error),
111
+ });
112
+ }
113
+ }
114
+ return allTools;
115
+ }
116
+ /**
117
+ * Get errors from the last creation operation.
118
+ */
119
+ getLastErrors() {
120
+ return [...this.creationErrors];
121
+ }
122
+ /**
123
+ * Clear all registered factories.
124
+ */
125
+ clear() {
126
+ this.factories.clear();
127
+ this.creationErrors = [];
128
+ }
129
+ }
130
+ // ============================================================================
131
+ // Default Factory Instance
132
+ // ============================================================================
133
+ /**
134
+ * Default tool factory instance for convenience.
135
+ */
136
+ export const defaultToolFactory = new ToolFactory();
137
+ // ============================================================================
138
+ // Helper Functions
139
+ // ============================================================================
140
+ /**
141
+ * Merge multiple tool sets into one.
142
+ */
143
+ export function mergeToolSets(...toolSets) {
144
+ return Object.assign({}, ...toolSets);
145
+ }
146
+ /**
147
+ * Filter a tool set to only include specified tools.
148
+ */
149
+ export function filterTools(tools, include) {
150
+ const includeSet = new Set(include);
151
+ return Object.fromEntries(Object.entries(tools).filter(([name]) => includeSet.has(name)));
152
+ }
153
+ /**
154
+ * Exclude specified tools from a tool set.
155
+ */
156
+ export function excludeTools(tools, exclude) {
157
+ const excludeSet = new Set(exclude);
158
+ return Object.fromEntries(Object.entries(tools).filter(([name]) => !excludeSet.has(name)));
159
+ }
160
+ /**
161
+ * Get tool names from a tool set.
162
+ */
163
+ export function getToolNames(tools) {
164
+ return Object.keys(tools);
165
+ }
166
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/tools/factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @agntk/core - Tool Provider
3
+ *
4
+ * Central provider for creating and managing tool sets.
5
+ * Adapted from packages/core/src/tools/provider.ts
6
+ */
7
+ import { type ToolSet } from './factory.js';
8
+ /**
9
+ * Names of core tools that are always available.
10
+ */
11
+ export declare const CORE_TOOL_NAMES: readonly ["fs", "shell", "web", "memory", "delegate", "task", "plan", "validate", "reasoning"];
12
+ export type CoreToolName = (typeof CORE_TOOL_NAMES)[number];
13
+ export interface ToolProviderConfig {
14
+ /** Workspace root directory */
15
+ workspaceRoot?: string;
16
+ /** Allowed directories for file operations */
17
+ allowedDirectories?: string[];
18
+ /** Enable tool execution instrumentation/logging */
19
+ enableInstrumentation?: boolean;
20
+ /** Enable dynamic tool activation/deactivation */
21
+ enableActivation?: boolean;
22
+ /** Custom tool dependencies */
23
+ customDependencies?: Record<string, unknown>;
24
+ }
25
+ export interface ToolActivationManager {
26
+ /** Currently active tool names */
27
+ activeTools: Set<string>;
28
+ /** All available tool names */
29
+ availableTools: Set<string>;
30
+ /** Activate a tool */
31
+ activate(name: string): boolean;
32
+ /** Deactivate a tool */
33
+ deactivate(name: string): boolean;
34
+ /** Check if a tool is active */
35
+ isActive(name: string): boolean;
36
+ /** Get all active tools */
37
+ getActiveTools(): string[];
38
+ /** Set available tools */
39
+ setAvailableTools(names: string[]): void;
40
+ }
41
+ /**
42
+ * Create a tool activation manager.
43
+ */
44
+ export declare function createToolActivationManager(): ToolActivationManager;
45
+ export interface ToolRegistryEntry {
46
+ name: string;
47
+ description: string;
48
+ category: string;
49
+ tags: string[];
50
+ }
51
+ export interface ToolRegistry {
52
+ entries: Map<string, ToolRegistryEntry>;
53
+ register(entry: ToolRegistryEntry): void;
54
+ unregister(name: string): boolean;
55
+ get(name: string): ToolRegistryEntry | undefined;
56
+ search(query: string): ToolRegistryEntry[];
57
+ listByCategory(category: string): ToolRegistryEntry[];
58
+ listAll(): ToolRegistryEntry[];
59
+ }
60
+ /**
61
+ * Create a tool registry for metadata and search.
62
+ */
63
+ export declare function createToolRegistry(): ToolRegistry;
64
+ export interface ToolProviderResult {
65
+ /** All created tools */
66
+ tools: ToolSet;
67
+ /** Core tool names */
68
+ coreToolNames: readonly string[];
69
+ /** Activation manager instance */
70
+ activationManager: ToolActivationManager;
71
+ /** Registry instance */
72
+ registry: ToolRegistry;
73
+ /** Cleanup function */
74
+ cleanup: () => Promise<void>;
75
+ }
76
+ /**
77
+ * Wrap tools with instrumentation for logging and metrics.
78
+ */
79
+ export declare function instrumentTools(tools: ToolSet): ToolSet;
80
+ /**
81
+ * Create all tools with the given configuration.
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * const { tools, cleanup } = await createAllTools({
86
+ * workspaceRoot: process.cwd(),
87
+ * enableInstrumentation: true,
88
+ * });
89
+ *
90
+ * // Use tools...
91
+ *
92
+ * await cleanup();
93
+ * ```
94
+ */
95
+ export declare function createAllTools(config?: ToolProviderConfig): Promise<ToolProviderResult>;
96
+ export { ToolFactory, type ToolDependencies, type ToolSet } from './factory.js';
97
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/tools/provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAsC,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAM7E;;GAEG;AACH,eAAO,MAAM,eAAe,gGAUlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAM5D,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C;AAMD,MAAM,WAAW,qBAAqB;IACpC,kCAAkC;IAClC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,+BAA+B;IAC/B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5B,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,wBAAwB;IACxB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,2BAA2B;IAC3B,cAAc,IAAI,MAAM,EAAE,CAAC;IAC3B,0BAA0B;IAC1B,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,qBAAqB,CAqCnE;AAMD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAC3C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACtD,OAAO,IAAI,iBAAiB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAsCjD;AAMD,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,kCAAkC;IAClC,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,wBAAwB;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,uBAAuB;IACvB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA6BvD;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CA4C7B;AAMD,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * @agntk/core - Tool Provider
3
+ *
4
+ * Central provider for creating and managing tool sets.
5
+ * Adapted from packages/core/src/tools/provider.ts
6
+ */
7
+ import { ToolFactory } from './factory.js';
8
+ // ============================================================================
9
+ // Core Tool Names
10
+ // ============================================================================
11
+ /**
12
+ * Names of core tools that are always available.
13
+ */
14
+ export const CORE_TOOL_NAMES = [
15
+ 'fs',
16
+ 'shell',
17
+ 'web',
18
+ 'memory',
19
+ 'delegate',
20
+ 'task',
21
+ 'plan',
22
+ 'validate',
23
+ 'reasoning',
24
+ ];
25
+ /**
26
+ * Create a tool activation manager.
27
+ */
28
+ export function createToolActivationManager() {
29
+ const activeTools = new Set();
30
+ const availableTools = new Set();
31
+ return {
32
+ activeTools,
33
+ availableTools,
34
+ activate(name) {
35
+ if (!availableTools.has(name)) {
36
+ return false;
37
+ }
38
+ activeTools.add(name);
39
+ return true;
40
+ },
41
+ deactivate(name) {
42
+ return activeTools.delete(name);
43
+ },
44
+ isActive(name) {
45
+ return activeTools.has(name);
46
+ },
47
+ getActiveTools() {
48
+ return Array.from(activeTools);
49
+ },
50
+ setAvailableTools(names) {
51
+ availableTools.clear();
52
+ for (const name of names) {
53
+ availableTools.add(name);
54
+ // Activate all by default
55
+ activeTools.add(name);
56
+ }
57
+ },
58
+ };
59
+ }
60
+ /**
61
+ * Create a tool registry for metadata and search.
62
+ */
63
+ export function createToolRegistry() {
64
+ const entries = new Map();
65
+ return {
66
+ entries,
67
+ register(entry) {
68
+ entries.set(entry.name, entry);
69
+ },
70
+ unregister(name) {
71
+ return entries.delete(name);
72
+ },
73
+ get(name) {
74
+ return entries.get(name);
75
+ },
76
+ search(query) {
77
+ const lowerQuery = query.toLowerCase();
78
+ return Array.from(entries.values()).filter((entry) => entry.name.toLowerCase().includes(lowerQuery) ||
79
+ entry.description.toLowerCase().includes(lowerQuery) ||
80
+ entry.tags.some((tag) => tag.toLowerCase().includes(lowerQuery)));
81
+ },
82
+ listByCategory(category) {
83
+ return Array.from(entries.values()).filter((entry) => entry.category === category);
84
+ },
85
+ listAll() {
86
+ return Array.from(entries.values());
87
+ },
88
+ };
89
+ }
90
+ // ============================================================================
91
+ // Tool Instrumentation
92
+ // ============================================================================
93
+ /**
94
+ * Wrap tools with instrumentation for logging and metrics.
95
+ */
96
+ export function instrumentTools(tools) {
97
+ const instrumented = {};
98
+ for (const [name, tool] of Object.entries(tools)) {
99
+ if (!tool.execute) {
100
+ instrumented[name] = tool;
101
+ continue;
102
+ }
103
+ const originalExecute = tool.execute;
104
+ instrumented[name] = {
105
+ ...tool,
106
+ execute: async (input, options) => {
107
+ const startTime = Date.now();
108
+ try {
109
+ const result = await originalExecute(input, options);
110
+ const duration = Date.now() - startTime;
111
+ console.debug(`[tool:${name}] completed in ${duration}ms`);
112
+ return result;
113
+ }
114
+ catch (error) {
115
+ const duration = Date.now() - startTime;
116
+ console.error(`[tool:${name}] failed after ${duration}ms`, error);
117
+ throw error;
118
+ }
119
+ },
120
+ };
121
+ }
122
+ return instrumented;
123
+ }
124
+ // ============================================================================
125
+ // Create All Tools
126
+ // ============================================================================
127
+ /**
128
+ * Create all tools with the given configuration.
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * const { tools, cleanup } = await createAllTools({
133
+ * workspaceRoot: process.cwd(),
134
+ * enableInstrumentation: true,
135
+ * });
136
+ *
137
+ * // Use tools...
138
+ *
139
+ * await cleanup();
140
+ * ```
141
+ */
142
+ export async function createAllTools(config = {}) {
143
+ const { workspaceRoot = process.cwd(), allowedDirectories = [workspaceRoot], enableInstrumentation = true, enableActivation = false, customDependencies = {}, } = config;
144
+ const deps = {
145
+ workspaceRoot,
146
+ allowedDirectories,
147
+ context: customDependencies,
148
+ };
149
+ const activationManager = createToolActivationManager();
150
+ const registry = createToolRegistry();
151
+ const factory = new ToolFactory();
152
+ // Note: Individual tool creators will be registered by the tools themselves
153
+ // when they are imported. For now, return an empty tool set that will be
154
+ // populated when tools are migrated.
155
+ let tools = factory.createAll(deps);
156
+ // Set available tools in activation manager
157
+ activationManager.setAvailableTools(Object.keys(tools));
158
+ // Apply instrumentation if enabled
159
+ if (enableInstrumentation) {
160
+ tools = instrumentTools(tools);
161
+ }
162
+ const cleanup = async () => {
163
+ // Cleanup logic (close connections, release resources, etc.)
164
+ factory.clear();
165
+ };
166
+ return {
167
+ tools,
168
+ coreToolNames: CORE_TOOL_NAMES,
169
+ activationManager,
170
+ registry,
171
+ cleanup,
172
+ };
173
+ }
174
+ // ============================================================================
175
+ // Exports
176
+ // ============================================================================
177
+ export { ToolFactory } from './factory.js';
178
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/tools/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @fileoverview V2 Agent types — minimal, zero-config interface.
3
+ *
4
+ * An agent is a fully-equipped worker. You give it a name, instructions,
5
+ * and a prompt. Everything else is auto-detected.
6
+ */
7
+ import type { LanguageModel, LanguageModelUsage } from 'ai';
8
+ import type { UsageLimits } from '../usage-limits.js';
9
+ /**
10
+ * Configuration for creating a v2 agent.
11
+ *
12
+ * Only `name` is required. Everything else has sensible defaults or
13
+ * is auto-detected from the environment.
14
+ */
15
+ export interface AgentOptionsV2 {
16
+ /**
17
+ * Display name for this agent.
18
+ * Used in logs, traces, multi-agent coordination, and persistent state.
19
+ * Persistent agent state is stored at `~/.agntk/agents/{name}/`.
20
+ */
21
+ name: string;
22
+ /**
23
+ * What this agent does. Natural language context injected as the system prompt.
24
+ * This is NOT a role — it's the agent's understanding of its job.
25
+ */
26
+ instructions?: string;
27
+ /**
28
+ * Where the agent operates. Root for file tools, skill discovery, memory.
29
+ * Default: process.cwd()
30
+ */
31
+ workspaceRoot?: string;
32
+ /**
33
+ * Override the auto-selected model.
34
+ * Most users should never touch this — the agent picks the best
35
+ * available model from your API keys.
36
+ */
37
+ model?: LanguageModel;
38
+ /**
39
+ * Safety limit on tool-loop iterations. Default: 25
40
+ */
41
+ maxSteps?: number;
42
+ /**
43
+ * Token/request caps. Throws UsageLimitExceeded when hit.
44
+ */
45
+ usageLimits?: UsageLimits;
46
+ }
47
+ /**
48
+ * A v2 agent instance. Stream-only — no generate().
49
+ */
50
+ export interface AgentV2 {
51
+ /** The agent's name. */
52
+ readonly name: string;
53
+ /** Initialize async resources (memory, telemetry). Called automatically by stream(). */
54
+ init(): Promise<void>;
55
+ /**
56
+ * Stream a response. This is the only way to run a v2 agent.
57
+ * Returns the AI SDK stream result.
58
+ */
59
+ stream(input: {
60
+ prompt: string;
61
+ }): Promise<AgentV2StreamResult>;
62
+ /** Get the current system prompt (includes auto-injected context + memory). */
63
+ getSystemPrompt(): string;
64
+ /** Get the list of all tool names available to this agent. */
65
+ getToolNames(): string[];
66
+ }
67
+ /**
68
+ * Stream result from a v2 agent.
69
+ * Wraps the AI SDK ToolLoopAgent stream result with additional metadata.
70
+ */
71
+ export interface AgentV2StreamResult {
72
+ /** Async iterable of stream chunks (text deltas, tool calls, tool results, etc.) */
73
+ fullStream: AsyncIterable<{
74
+ type: string;
75
+ text?: string;
76
+ [key: string]: unknown;
77
+ }>;
78
+ /** Promise-like that resolves to the final text output. */
79
+ text: PromiseLike<string>;
80
+ /** Promise-like that resolves to token usage. */
81
+ usage: PromiseLike<LanguageModelUsage>;
82
+ }
83
+ //# sourceMappingURL=agent-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-v2.d.ts","sourceRoot":"","sources":["../../src/types/agent-v2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;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;CAC3B;AAMD;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,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,mBAAmB,CAAC,CAAC;IAEhE,+EAA+E;IAC/E,eAAe,IAAI,MAAM,CAAC;IAE1B,8DAA8D;IAC9D,YAAY,IAAI,MAAM,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,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"}