@ggakila/agentx-framework 0.1.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 (228) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/LICENSE +21 -0
  3. package/README.md +335 -0
  4. package/dist/agent/Agent.d.ts +110 -0
  5. package/dist/agent/Agent.d.ts.map +1 -0
  6. package/dist/agent/Agent.js +291 -0
  7. package/dist/agent/Agent.js.map +1 -0
  8. package/dist/agent/index.d.ts +5 -0
  9. package/dist/agent/index.d.ts.map +1 -0
  10. package/dist/agent/index.js +11 -0
  11. package/dist/agent/index.js.map +1 -0
  12. package/dist/cli/CLI.d.ts +74 -0
  13. package/dist/cli/CLI.d.ts.map +1 -0
  14. package/dist/cli/CLI.js +255 -0
  15. package/dist/cli/CLI.js.map +1 -0
  16. package/dist/cli/InteractiveSetup.d.ts +104 -0
  17. package/dist/cli/InteractiveSetup.d.ts.map +1 -0
  18. package/dist/cli/InteractiveSetup.js +2225 -0
  19. package/dist/cli/InteractiveSetup.js.map +1 -0
  20. package/dist/cli/bin.d.ts +7 -0
  21. package/dist/cli/bin.d.ts.map +1 -0
  22. package/dist/cli/bin.js +35 -0
  23. package/dist/cli/bin.js.map +1 -0
  24. package/dist/cli/commands/ProjectCommands.d.ts +23 -0
  25. package/dist/cli/commands/ProjectCommands.d.ts.map +1 -0
  26. package/dist/cli/commands/ProjectCommands.js +504 -0
  27. package/dist/cli/commands/ProjectCommands.js.map +1 -0
  28. package/dist/cli/index.d.ts +7 -0
  29. package/dist/cli/index.d.ts.map +1 -0
  30. package/dist/cli/index.js +21 -0
  31. package/dist/cli/index.js.map +1 -0
  32. package/dist/credential/CredentialManager.d.ts +112 -0
  33. package/dist/credential/CredentialManager.d.ts.map +1 -0
  34. package/dist/credential/CredentialManager.js +343 -0
  35. package/dist/credential/CredentialManager.js.map +1 -0
  36. package/dist/credential/OAuth2Manager.d.ts +206 -0
  37. package/dist/credential/OAuth2Manager.d.ts.map +1 -0
  38. package/dist/credential/OAuth2Manager.js +463 -0
  39. package/dist/credential/OAuth2Manager.js.map +1 -0
  40. package/dist/credential/index.d.ts +6 -0
  41. package/dist/credential/index.d.ts.map +1 -0
  42. package/dist/credential/index.js +16 -0
  43. package/dist/credential/index.js.map +1 -0
  44. package/dist/error/ErrorHandler.d.ts +74 -0
  45. package/dist/error/ErrorHandler.d.ts.map +1 -0
  46. package/dist/error/ErrorHandler.js +279 -0
  47. package/dist/error/ErrorHandler.js.map +1 -0
  48. package/dist/index.d.ts +30 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +100 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/integrations/DatabaseTool.d.ts +149 -0
  53. package/dist/integrations/DatabaseTool.d.ts.map +1 -0
  54. package/dist/integrations/DatabaseTool.js +900 -0
  55. package/dist/integrations/DatabaseTool.js.map +1 -0
  56. package/dist/integrations/EmailTool.d.ts +142 -0
  57. package/dist/integrations/EmailTool.d.ts.map +1 -0
  58. package/dist/integrations/EmailTool.js +259 -0
  59. package/dist/integrations/EmailTool.js.map +1 -0
  60. package/dist/integrations/FileSystemTool.d.ts +153 -0
  61. package/dist/integrations/FileSystemTool.d.ts.map +1 -0
  62. package/dist/integrations/FileSystemTool.js +835 -0
  63. package/dist/integrations/FileSystemTool.js.map +1 -0
  64. package/dist/integrations/GoogleWorkspaceTool.d.ts +125 -0
  65. package/dist/integrations/GoogleWorkspaceTool.d.ts.map +1 -0
  66. package/dist/integrations/GoogleWorkspaceTool.js +765 -0
  67. package/dist/integrations/GoogleWorkspaceTool.js.map +1 -0
  68. package/dist/integrations/HttpTool.d.ts +55 -0
  69. package/dist/integrations/HttpTool.d.ts.map +1 -0
  70. package/dist/integrations/HttpTool.js +209 -0
  71. package/dist/integrations/HttpTool.js.map +1 -0
  72. package/dist/integrations/MessagingTool.d.ts +136 -0
  73. package/dist/integrations/MessagingTool.d.ts.map +1 -0
  74. package/dist/integrations/MessagingTool.js +503 -0
  75. package/dist/integrations/MessagingTool.js.map +1 -0
  76. package/dist/integrations/SchedulerTool.d.ts +147 -0
  77. package/dist/integrations/SchedulerTool.d.ts.map +1 -0
  78. package/dist/integrations/SchedulerTool.js +471 -0
  79. package/dist/integrations/SchedulerTool.js.map +1 -0
  80. package/dist/integrations/WebhookTool.d.ts +97 -0
  81. package/dist/integrations/WebhookTool.d.ts.map +1 -0
  82. package/dist/integrations/WebhookTool.js +351 -0
  83. package/dist/integrations/WebhookTool.js.map +1 -0
  84. package/dist/integrations/index.d.ts +13 -0
  85. package/dist/integrations/index.d.ts.map +1 -0
  86. package/dist/integrations/index.js +60 -0
  87. package/dist/integrations/index.js.map +1 -0
  88. package/dist/llm/LLMProvider.d.ts +83 -0
  89. package/dist/llm/LLMProvider.d.ts.map +1 -0
  90. package/dist/llm/LLMProvider.js +370 -0
  91. package/dist/llm/LLMProvider.js.map +1 -0
  92. package/dist/llm/index.d.ts +5 -0
  93. package/dist/llm/index.d.ts.map +1 -0
  94. package/dist/llm/index.js +14 -0
  95. package/dist/llm/index.js.map +1 -0
  96. package/dist/payment/PaymentProvider.d.ts +157 -0
  97. package/dist/payment/PaymentProvider.d.ts.map +1 -0
  98. package/dist/payment/PaymentProvider.js +525 -0
  99. package/dist/payment/PaymentProvider.js.map +1 -0
  100. package/dist/payment/index.d.ts +5 -0
  101. package/dist/payment/index.d.ts.map +1 -0
  102. package/dist/payment/index.js +16 -0
  103. package/dist/payment/index.js.map +1 -0
  104. package/dist/plugin/PluginManager.d.ts +156 -0
  105. package/dist/plugin/PluginManager.d.ts.map +1 -0
  106. package/dist/plugin/PluginManager.js +288 -0
  107. package/dist/plugin/PluginManager.js.map +1 -0
  108. package/dist/plugin/index.d.ts +5 -0
  109. package/dist/plugin/index.d.ts.map +1 -0
  110. package/dist/plugin/index.js +10 -0
  111. package/dist/plugin/index.js.map +1 -0
  112. package/dist/runtime/AgentXRuntime.d.ts +90 -0
  113. package/dist/runtime/AgentXRuntime.d.ts.map +1 -0
  114. package/dist/runtime/AgentXRuntime.js +469 -0
  115. package/dist/runtime/AgentXRuntime.js.map +1 -0
  116. package/dist/security/SecurityManager.d.ts +245 -0
  117. package/dist/security/SecurityManager.d.ts.map +1 -0
  118. package/dist/security/SecurityManager.js +512 -0
  119. package/dist/security/SecurityManager.js.map +1 -0
  120. package/dist/security/index.d.ts +5 -0
  121. package/dist/security/index.d.ts.map +1 -0
  122. package/dist/security/index.js +14 -0
  123. package/dist/security/index.js.map +1 -0
  124. package/dist/tool/ToolRegistry.d.ts +58 -0
  125. package/dist/tool/ToolRegistry.d.ts.map +1 -0
  126. package/dist/tool/ToolRegistry.js +173 -0
  127. package/dist/tool/ToolRegistry.js.map +1 -0
  128. package/dist/tool/ToolValidator.d.ts +41 -0
  129. package/dist/tool/ToolValidator.d.ts.map +1 -0
  130. package/dist/tool/ToolValidator.js +158 -0
  131. package/dist/tool/ToolValidator.js.map +1 -0
  132. package/dist/tool/index.d.ts +6 -0
  133. package/dist/tool/index.d.ts.map +1 -0
  134. package/dist/tool/index.js +11 -0
  135. package/dist/tool/index.js.map +1 -0
  136. package/dist/transport/BaseTransport.d.ts +66 -0
  137. package/dist/transport/BaseTransport.d.ts.map +1 -0
  138. package/dist/transport/BaseTransport.js +103 -0
  139. package/dist/transport/BaseTransport.js.map +1 -0
  140. package/dist/transport/HttpTransport.d.ts +41 -0
  141. package/dist/transport/HttpTransport.d.ts.map +1 -0
  142. package/dist/transport/HttpTransport.js +160 -0
  143. package/dist/transport/HttpTransport.js.map +1 -0
  144. package/dist/transport/LocalTransport.d.ts +40 -0
  145. package/dist/transport/LocalTransport.d.ts.map +1 -0
  146. package/dist/transport/LocalTransport.js +157 -0
  147. package/dist/transport/LocalTransport.js.map +1 -0
  148. package/dist/transport/QueueTransport.d.ts +63 -0
  149. package/dist/transport/QueueTransport.d.ts.map +1 -0
  150. package/dist/transport/QueueTransport.js +194 -0
  151. package/dist/transport/QueueTransport.js.map +1 -0
  152. package/dist/transport/StdioTransport.d.ts +51 -0
  153. package/dist/transport/StdioTransport.d.ts.map +1 -0
  154. package/dist/transport/StdioTransport.js +216 -0
  155. package/dist/transport/StdioTransport.js.map +1 -0
  156. package/dist/transport/TransportFactory.d.ts +35 -0
  157. package/dist/transport/TransportFactory.d.ts.map +1 -0
  158. package/dist/transport/TransportFactory.js +100 -0
  159. package/dist/transport/TransportFactory.js.map +1 -0
  160. package/dist/transport/index.d.ts +10 -0
  161. package/dist/transport/index.d.ts.map +1 -0
  162. package/dist/transport/index.js +19 -0
  163. package/dist/transport/index.js.map +1 -0
  164. package/dist/types/agent.d.ts +66 -0
  165. package/dist/types/agent.d.ts.map +1 -0
  166. package/dist/types/agent.js +3 -0
  167. package/dist/types/agent.js.map +1 -0
  168. package/dist/types/config.d.ts +60 -0
  169. package/dist/types/config.d.ts.map +1 -0
  170. package/dist/types/config.js +6 -0
  171. package/dist/types/config.js.map +1 -0
  172. package/dist/types/credential.d.ts +38 -0
  173. package/dist/types/credential.d.ts.map +1 -0
  174. package/dist/types/credential.js +3 -0
  175. package/dist/types/credential.js.map +1 -0
  176. package/dist/types/error.d.ts +136 -0
  177. package/dist/types/error.d.ts.map +1 -0
  178. package/dist/types/error.js +223 -0
  179. package/dist/types/error.js.map +1 -0
  180. package/dist/types/index.d.ts +10 -0
  181. package/dist/types/index.d.ts.map +1 -0
  182. package/dist/types/index.js +27 -0
  183. package/dist/types/index.js.map +1 -0
  184. package/dist/types/llm.d.ts +43 -0
  185. package/dist/types/llm.d.ts.map +1 -0
  186. package/dist/types/llm.js +3 -0
  187. package/dist/types/llm.js.map +1 -0
  188. package/dist/types/payment.d.ts +129 -0
  189. package/dist/types/payment.d.ts.map +1 -0
  190. package/dist/types/payment.js +6 -0
  191. package/dist/types/payment.js.map +1 -0
  192. package/dist/types/runtime.d.ts +31 -0
  193. package/dist/types/runtime.d.ts.map +1 -0
  194. package/dist/types/runtime.js +3 -0
  195. package/dist/types/runtime.js.map +1 -0
  196. package/dist/types/tool.d.ts +72 -0
  197. package/dist/types/tool.d.ts.map +1 -0
  198. package/dist/types/tool.js +3 -0
  199. package/dist/types/tool.js.map +1 -0
  200. package/dist/types/transport.d.ts +53 -0
  201. package/dist/types/transport.d.ts.map +1 -0
  202. package/dist/types/transport.js +3 -0
  203. package/dist/types/transport.js.map +1 -0
  204. package/dist/types/workflow.d.ts +72 -0
  205. package/dist/types/workflow.d.ts.map +1 -0
  206. package/dist/types/workflow.js +6 -0
  207. package/dist/types/workflow.js.map +1 -0
  208. package/dist/utils/factory.d.ts +14 -0
  209. package/dist/utils/factory.d.ts.map +1 -0
  210. package/dist/utils/factory.js +146 -0
  211. package/dist/utils/factory.js.map +1 -0
  212. package/dist/workflow/StateManager.d.ts +93 -0
  213. package/dist/workflow/StateManager.d.ts.map +1 -0
  214. package/dist/workflow/StateManager.js +223 -0
  215. package/dist/workflow/StateManager.js.map +1 -0
  216. package/dist/workflow/WorkflowDefinition.d.ts +49 -0
  217. package/dist/workflow/WorkflowDefinition.d.ts.map +1 -0
  218. package/dist/workflow/WorkflowDefinition.js +264 -0
  219. package/dist/workflow/WorkflowDefinition.js.map +1 -0
  220. package/dist/workflow/WorkflowExecutor.d.ts +42 -0
  221. package/dist/workflow/WorkflowExecutor.d.ts.map +1 -0
  222. package/dist/workflow/WorkflowExecutor.js +372 -0
  223. package/dist/workflow/WorkflowExecutor.js.map +1 -0
  224. package/dist/workflow/index.d.ts +7 -0
  225. package/dist/workflow/index.d.ts.map +1 -0
  226. package/dist/workflow/index.js +17 -0
  227. package/dist/workflow/index.js.map +1 -0
  228. package/package.json +122 -0
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Plugin System
3
+ * Provides extensibility through plugins
4
+ */
5
+ import { Logger } from '../types/tool';
6
+ import { EventEmitter } from 'events';
7
+ /**
8
+ * Plugin Interface
9
+ */
10
+ export interface Plugin {
11
+ name: string;
12
+ version: string;
13
+ description?: string;
14
+ dependencies?: string[];
15
+ onLoad?(context: PluginContext): Promise<void>;
16
+ onUnload?(context: PluginContext): Promise<void>;
17
+ onEnable?(context: PluginContext): Promise<void>;
18
+ onDisable?(context: PluginContext): Promise<void>;
19
+ }
20
+ /**
21
+ * Plugin Context
22
+ */
23
+ export interface PluginContext {
24
+ logger: Logger;
25
+ config: Record<string, unknown>;
26
+ registerHook: (hookName: string, handler: HookHandler) => void;
27
+ unregisterHook: (hookName: string, handler: HookHandler) => void;
28
+ registerMiddleware: (name: string, middleware: Middleware) => void;
29
+ unregisterMiddleware: (name: string) => void;
30
+ emit: (event: string, data: unknown) => void;
31
+ }
32
+ /**
33
+ * Plugin Metadata
34
+ */
35
+ export interface PluginMetadata {
36
+ id: string;
37
+ name: string;
38
+ version: string;
39
+ description?: string;
40
+ enabled: boolean;
41
+ loadedAt?: Date;
42
+ dependencies?: string[];
43
+ }
44
+ /**
45
+ * Hook Handler
46
+ */
47
+ export type HookHandler = (data: unknown, context: HookContext) => Promise<unknown>;
48
+ export interface HookContext {
49
+ pluginName: string;
50
+ hookName: string;
51
+ timestamp: Date;
52
+ }
53
+ /**
54
+ * Middleware
55
+ */
56
+ export type Middleware = (request: unknown, next: () => Promise<unknown>) => Promise<unknown>;
57
+ /**
58
+ * Plugin Manager
59
+ */
60
+ export declare class PluginManager extends EventEmitter {
61
+ private plugins;
62
+ private hooks;
63
+ private middlewares;
64
+ private logger;
65
+ private configs;
66
+ constructor(logger: Logger);
67
+ /**
68
+ * Load a plugin
69
+ */
70
+ loadPlugin(plugin: Plugin, config?: Record<string, unknown>): Promise<void>;
71
+ /**
72
+ * Unload a plugin
73
+ */
74
+ unloadPlugin(name: string): Promise<void>;
75
+ /**
76
+ * Enable a plugin
77
+ */
78
+ enablePlugin(name: string): Promise<void>;
79
+ /**
80
+ * Disable a plugin
81
+ */
82
+ disablePlugin(name: string): Promise<void>;
83
+ /**
84
+ * Get plugin metadata
85
+ */
86
+ getPlugin(name: string): PluginMetadata | undefined;
87
+ /**
88
+ * List all plugins
89
+ */
90
+ listPlugins(): PluginMetadata[];
91
+ /**
92
+ * Execute a hook
93
+ */
94
+ executeHook(hookName: string, data: unknown): Promise<unknown[]>;
95
+ /**
96
+ * Execute middleware pipeline
97
+ */
98
+ executeMiddleware(request: unknown): Promise<unknown>;
99
+ /**
100
+ * Create plugin context
101
+ */
102
+ private createContext;
103
+ }
104
+ /**
105
+ * Extension Point Registry
106
+ */
107
+ export interface ExtensionPoint<T> {
108
+ name: string;
109
+ description?: string;
110
+ validate?: (extension: T) => boolean;
111
+ }
112
+ export declare class ExtensionRegistry {
113
+ private extensionPoints;
114
+ private extensions;
115
+ private logger;
116
+ constructor(logger: Logger);
117
+ /**
118
+ * Define an extension point
119
+ */
120
+ defineExtensionPoint<T>(point: ExtensionPoint<T>): void;
121
+ /**
122
+ * Register an extension
123
+ */
124
+ registerExtension<T>(pointName: string, extension: T): void;
125
+ /**
126
+ * Get all extensions for a point
127
+ */
128
+ getExtensions<T>(pointName: string): T[];
129
+ /**
130
+ * List all extension points
131
+ */
132
+ listExtensionPoints(): string[];
133
+ }
134
+ /**
135
+ * Custom Transport Extension
136
+ */
137
+ export interface TransportExtension {
138
+ name: string;
139
+ create: (config: Record<string, unknown>) => unknown;
140
+ }
141
+ /**
142
+ * Custom Provider Extension
143
+ */
144
+ export interface ProviderExtension {
145
+ name: string;
146
+ type: 'llm' | 'payment' | 'credential';
147
+ create: (config: Record<string, unknown>) => unknown;
148
+ }
149
+ /**
150
+ * Custom Execution Engine Extension
151
+ */
152
+ export interface ExecutionEngineExtension {
153
+ name: string;
154
+ execute: (workflow: unknown, input: unknown) => Promise<unknown>;
155
+ }
156
+ //# sourceMappingURL=PluginManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/plugin/PluginManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ /**
3
+ * Plugin System
4
+ * Provides extensibility through plugins
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ExtensionRegistry = exports.PluginManager = void 0;
8
+ const uuid_1 = require("uuid");
9
+ const events_1 = require("events");
10
+ /**
11
+ * Plugin Manager
12
+ */
13
+ class PluginManager extends events_1.EventEmitter {
14
+ plugins = new Map();
15
+ hooks = new Map();
16
+ middlewares = new Map();
17
+ logger;
18
+ configs = new Map();
19
+ constructor(logger) {
20
+ super();
21
+ this.logger = logger;
22
+ }
23
+ /**
24
+ * Load a plugin
25
+ */
26
+ async loadPlugin(plugin, config = {}) {
27
+ // Check if already loaded
28
+ if (this.plugins.has(plugin.name)) {
29
+ throw new Error(`Plugin ${plugin.name} is already loaded`);
30
+ }
31
+ // Check dependencies
32
+ if (plugin.dependencies) {
33
+ for (const dep of plugin.dependencies) {
34
+ if (!this.plugins.has(dep)) {
35
+ throw new Error(`Plugin ${plugin.name} requires ${dep} which is not loaded`);
36
+ }
37
+ }
38
+ }
39
+ const metadata = {
40
+ id: (0, uuid_1.v4)(),
41
+ name: plugin.name,
42
+ version: plugin.version,
43
+ description: plugin.description,
44
+ enabled: false,
45
+ loadedAt: new Date(),
46
+ dependencies: plugin.dependencies,
47
+ };
48
+ this.configs.set(plugin.name, config);
49
+ this.plugins.set(plugin.name, { plugin, metadata });
50
+ // Create plugin context
51
+ const context = this.createContext(plugin.name);
52
+ // Call onLoad hook
53
+ if (plugin.onLoad) {
54
+ await plugin.onLoad(context);
55
+ }
56
+ this.logger.info(`Plugin loaded: ${plugin.name}@${plugin.version}`);
57
+ this.emit('plugin:loaded', { name: plugin.name, version: plugin.version });
58
+ }
59
+ /**
60
+ * Unload a plugin
61
+ */
62
+ async unloadPlugin(name) {
63
+ const entry = this.plugins.get(name);
64
+ if (!entry) {
65
+ throw new Error(`Plugin ${name} is not loaded`);
66
+ }
67
+ // Check if other plugins depend on this one
68
+ for (const [otherName, other] of this.plugins) {
69
+ if (other.plugin.dependencies?.includes(name)) {
70
+ throw new Error(`Cannot unload ${name}: ${otherName} depends on it`);
71
+ }
72
+ }
73
+ // Disable first if enabled
74
+ if (entry.metadata.enabled) {
75
+ await this.disablePlugin(name);
76
+ }
77
+ // Create context and call onUnload
78
+ const context = this.createContext(name);
79
+ if (entry.plugin.onUnload) {
80
+ await entry.plugin.onUnload(context);
81
+ }
82
+ // Remove all hooks registered by this plugin
83
+ for (const [hookName, handlers] of this.hooks) {
84
+ const filtered = new Set(Array.from(handlers).filter(h => h.pluginName !== name));
85
+ if (filtered.size > 0) {
86
+ this.hooks.set(hookName, filtered);
87
+ }
88
+ else {
89
+ this.hooks.delete(hookName);
90
+ }
91
+ }
92
+ // Remove all middlewares registered by this plugin
93
+ for (const [mwName, mw] of this.middlewares) {
94
+ if (mw.pluginName === name) {
95
+ this.middlewares.delete(mwName);
96
+ }
97
+ }
98
+ this.plugins.delete(name);
99
+ this.configs.delete(name);
100
+ this.logger.info(`Plugin unloaded: ${name}`);
101
+ this.emit('plugin:unloaded', { name });
102
+ }
103
+ /**
104
+ * Enable a plugin
105
+ */
106
+ async enablePlugin(name) {
107
+ const entry = this.plugins.get(name);
108
+ if (!entry) {
109
+ throw new Error(`Plugin ${name} is not loaded`);
110
+ }
111
+ if (entry.metadata.enabled) {
112
+ return;
113
+ }
114
+ const context = this.createContext(name);
115
+ if (entry.plugin.onEnable) {
116
+ await entry.plugin.onEnable(context);
117
+ }
118
+ entry.metadata.enabled = true;
119
+ this.logger.info(`Plugin enabled: ${name}`);
120
+ this.emit('plugin:enabled', { name });
121
+ }
122
+ /**
123
+ * Disable a plugin
124
+ */
125
+ async disablePlugin(name) {
126
+ const entry = this.plugins.get(name);
127
+ if (!entry) {
128
+ throw new Error(`Plugin ${name} is not loaded`);
129
+ }
130
+ if (!entry.metadata.enabled) {
131
+ return;
132
+ }
133
+ const context = this.createContext(name);
134
+ if (entry.plugin.onDisable) {
135
+ await entry.plugin.onDisable(context);
136
+ }
137
+ entry.metadata.enabled = false;
138
+ this.logger.info(`Plugin disabled: ${name}`);
139
+ this.emit('plugin:disabled', { name });
140
+ }
141
+ /**
142
+ * Get plugin metadata
143
+ */
144
+ getPlugin(name) {
145
+ return this.plugins.get(name)?.metadata;
146
+ }
147
+ /**
148
+ * List all plugins
149
+ */
150
+ listPlugins() {
151
+ return Array.from(this.plugins.values()).map(e => e.metadata);
152
+ }
153
+ /**
154
+ * Execute a hook
155
+ */
156
+ async executeHook(hookName, data) {
157
+ const handlers = this.hooks.get(hookName);
158
+ if (!handlers || handlers.size === 0) {
159
+ return [];
160
+ }
161
+ const results = [];
162
+ for (const { pluginName, handler } of handlers) {
163
+ const entry = this.plugins.get(pluginName);
164
+ if (!entry?.metadata.enabled) {
165
+ continue;
166
+ }
167
+ const context = {
168
+ pluginName,
169
+ hookName,
170
+ timestamp: new Date(),
171
+ };
172
+ try {
173
+ const result = await handler(data, context);
174
+ results.push(result);
175
+ }
176
+ catch (error) {
177
+ this.logger.error(`Hook error in ${pluginName}:${hookName}`, error);
178
+ }
179
+ }
180
+ return results;
181
+ }
182
+ /**
183
+ * Execute middleware pipeline
184
+ */
185
+ async executeMiddleware(request) {
186
+ const middlewares = Array.from(this.middlewares.values())
187
+ .filter(mw => {
188
+ const entry = this.plugins.get(mw.pluginName);
189
+ return entry?.metadata.enabled;
190
+ })
191
+ .map(mw => mw.middleware);
192
+ if (middlewares.length === 0) {
193
+ return request;
194
+ }
195
+ let index = 0;
196
+ const next = async () => {
197
+ if (index >= middlewares.length) {
198
+ return request;
199
+ }
200
+ const middleware = middlewares[index++];
201
+ return middleware(request, next);
202
+ };
203
+ return next();
204
+ }
205
+ /**
206
+ * Create plugin context
207
+ */
208
+ createContext(pluginName) {
209
+ return {
210
+ logger: this.logger,
211
+ config: this.configs.get(pluginName) || {},
212
+ registerHook: (hookName, handler) => {
213
+ if (!this.hooks.has(hookName)) {
214
+ this.hooks.set(hookName, new Set());
215
+ }
216
+ this.hooks.get(hookName).add({ pluginName, handler });
217
+ },
218
+ unregisterHook: (hookName, handler) => {
219
+ const handlers = this.hooks.get(hookName);
220
+ if (handlers) {
221
+ for (const h of handlers) {
222
+ if (h.pluginName === pluginName && h.handler === handler) {
223
+ handlers.delete(h);
224
+ break;
225
+ }
226
+ }
227
+ }
228
+ },
229
+ registerMiddleware: (name, middleware) => {
230
+ this.middlewares.set(name, { pluginName, middleware });
231
+ },
232
+ unregisterMiddleware: (name) => {
233
+ const mw = this.middlewares.get(name);
234
+ if (mw?.pluginName === pluginName) {
235
+ this.middlewares.delete(name);
236
+ }
237
+ },
238
+ emit: (event, data) => {
239
+ this.emit(`plugin:${pluginName}:${event}`, data);
240
+ },
241
+ };
242
+ }
243
+ }
244
+ exports.PluginManager = PluginManager;
245
+ class ExtensionRegistry {
246
+ extensionPoints = new Map();
247
+ extensions = new Map();
248
+ logger;
249
+ constructor(logger) {
250
+ this.logger = logger;
251
+ }
252
+ /**
253
+ * Define an extension point
254
+ */
255
+ defineExtensionPoint(point) {
256
+ this.extensionPoints.set(point.name, point);
257
+ this.extensions.set(point.name, []);
258
+ this.logger.debug(`Extension point defined: ${point.name}`);
259
+ }
260
+ /**
261
+ * Register an extension
262
+ */
263
+ registerExtension(pointName, extension) {
264
+ const point = this.extensionPoints.get(pointName);
265
+ if (!point) {
266
+ throw new Error(`Extension point ${pointName} not found`);
267
+ }
268
+ if (point.validate && !point.validate(extension)) {
269
+ throw new Error(`Extension validation failed for ${pointName}`);
270
+ }
271
+ this.extensions.get(pointName).push(extension);
272
+ this.logger.debug(`Extension registered for ${pointName}`);
273
+ }
274
+ /**
275
+ * Get all extensions for a point
276
+ */
277
+ getExtensions(pointName) {
278
+ return (this.extensions.get(pointName) || []);
279
+ }
280
+ /**
281
+ * List all extension points
282
+ */
283
+ listExtensionPoints() {
284
+ return Array.from(this.extensionPoints.keys());
285
+ }
286
+ }
287
+ exports.ExtensionRegistry = ExtensionRegistry;
288
+ //# sourceMappingURL=PluginManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/plugin/PluginManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Plugin Module Exports
3
+ */
4
+ export { Plugin, PluginContext, PluginMetadata, PluginManager, HookHandler, HookContext, Middleware, ExtensionPoint, ExtensionRegistry, TransportExtension, ProviderExtension, ExecutionEngineExtension, } from './PluginManager';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,MAAM,EACN,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * Plugin Module Exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ExtensionRegistry = exports.PluginManager = void 0;
7
+ var PluginManager_1 = require("./PluginManager");
8
+ Object.defineProperty(exports, "PluginManager", { enumerable: true, get: function () { return PluginManager_1.PluginManager; } });
9
+ Object.defineProperty(exports, "ExtensionRegistry", { enumerable: true, get: function () { return PluginManager_1.ExtensionRegistry; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iDAayB;AATvB,8GAAA,aAAa,OAAA;AAKb,kHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * AgentX Core Runtime Implementation
3
+ */
4
+ import { EventEmitter } from 'events';
5
+ import { AgentXRuntime as IAgentXRuntime, RuntimeMetadata } from '../types/runtime';
6
+ import { WorkflowDefinition, WorkflowExecution } from '../types/workflow';
7
+ import { ToolSpec } from '../types/tool';
8
+ import { TransportConfig } from '../types/transport';
9
+ import { Agent, AgentConfig } from '../types/agent';
10
+ import { Credential } from '../types/credential';
11
+ import { AgentXConfig } from '../types/config';
12
+ import { Logger, MetricsCollector } from '../types/tool';
13
+ export declare class AgentXRuntime extends EventEmitter implements IAgentXRuntime {
14
+ private _config;
15
+ private logger;
16
+ private metrics;
17
+ private isStarted;
18
+ private startedAt;
19
+ private _workflowManager?;
20
+ private _toolManager?;
21
+ private _agentManager?;
22
+ private _credentialManager?;
23
+ private workflows;
24
+ private executions;
25
+ private tools;
26
+ private agents;
27
+ constructor(config: AgentXConfig, logger: Logger, metrics: MetricsCollector);
28
+ /** Get runtime configuration */
29
+ get config(): AgentXConfig;
30
+ /** Get workflow manager (for future use) */
31
+ get workflowManager(): any;
32
+ /** Get tool manager (for future use) */
33
+ get toolManager(): any;
34
+ /** Get agent manager (for future use) */
35
+ get agentManager(): any;
36
+ /** Get credential manager (for future use) */
37
+ get credentialManager(): any;
38
+ /**
39
+ * Start the AgentX runtime
40
+ */
41
+ start(): Promise<void>;
42
+ /**
43
+ * Stop the AgentX runtime
44
+ */
45
+ stop(): Promise<void>;
46
+ /**
47
+ * Register a workflow definition
48
+ */
49
+ registerWorkflow(definition: WorkflowDefinition): Promise<void>;
50
+ /**
51
+ * Execute a workflow
52
+ */
53
+ executeWorkflow(id: string, input?: unknown): Promise<WorkflowExecution>;
54
+ /**
55
+ * Register a tool
56
+ */
57
+ registerTool(spec: ToolSpec, transport: TransportConfig): Promise<void>;
58
+ /**
59
+ * List all registered tools
60
+ */
61
+ listTools(): Promise<ToolSpec[]>;
62
+ /**
63
+ * Create an AI agent
64
+ */
65
+ createAgent(config: AgentConfig): Promise<Agent>;
66
+ /**
67
+ * Set a credential
68
+ */
69
+ setCredential(scope: string, credential: Credential): Promise<void>;
70
+ /**
71
+ * Get runtime metadata
72
+ */
73
+ getMetadata(): RuntimeMetadata;
74
+ private ensureStarted;
75
+ private initializeManagers;
76
+ private shutdownManagers;
77
+ private stopActiveExecutions;
78
+ private signalHandlers;
79
+ private setupSignalHandlers;
80
+ private removeSignalHandlers;
81
+ private validateWorkflowDefinition;
82
+ private validateWorkflowDAG;
83
+ private validateToolSpec;
84
+ private validateAgentConfig;
85
+ private validateCredential;
86
+ private executeWorkflowSteps;
87
+ private createAgentInstance;
88
+ private storeCredential;
89
+ }
90
+ //# sourceMappingURL=AgentXRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentXRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/AgentXRuntime.ts"],"names":[],"mappings":"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"}