aether-agent-sdk 1.0.0 → 1.0.3

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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -185
  3. package/dist/src/agents/AgentRegistry.d.ts +48 -0
  4. package/dist/src/agents/AgentRegistry.d.ts.map +1 -0
  5. package/dist/src/agents/AgentRegistry.js +114 -0
  6. package/dist/src/agents/AgentRegistry.js.map +1 -0
  7. package/dist/src/agents/AnalyzerAgent.d.ts +18 -0
  8. package/dist/src/agents/AnalyzerAgent.d.ts.map +1 -0
  9. package/dist/src/agents/AnalyzerAgent.js +129 -0
  10. package/dist/src/agents/AnalyzerAgent.js.map +1 -0
  11. package/dist/src/agents/IntelligentVerifierAgent.d.ts +46 -0
  12. package/dist/src/agents/IntelligentVerifierAgent.d.ts.map +1 -0
  13. package/dist/src/agents/IntelligentVerifierAgent.js +262 -0
  14. package/dist/src/agents/IntelligentVerifierAgent.js.map +1 -0
  15. package/dist/src/agents/SettlementAgent.d.ts +14 -0
  16. package/dist/src/agents/SettlementAgent.d.ts.map +1 -0
  17. package/dist/src/agents/SettlementAgent.js +155 -0
  18. package/dist/src/agents/SettlementAgent.js.map +1 -0
  19. package/dist/src/agents/SettlementAgentEnhanced.d.ts +33 -0
  20. package/dist/src/agents/SettlementAgentEnhanced.d.ts.map +1 -0
  21. package/dist/src/agents/SettlementAgentEnhanced.js +219 -0
  22. package/dist/src/agents/SettlementAgentEnhanced.js.map +1 -0
  23. package/dist/src/agents/VerifierAgent.d.ts +30 -0
  24. package/dist/src/agents/VerifierAgent.d.ts.map +1 -0
  25. package/dist/src/agents/VerifierAgent.js +181 -0
  26. package/dist/src/agents/VerifierAgent.js.map +1 -0
  27. package/dist/src/agents/index.d.ts +7 -0
  28. package/dist/src/agents/index.d.ts.map +1 -0
  29. package/dist/src/agents/index.js +11 -0
  30. package/dist/src/agents/index.js.map +1 -0
  31. package/dist/src/facilitator/X402FacilitatorServer.d.ts +17 -0
  32. package/dist/src/facilitator/X402FacilitatorServer.d.ts.map +1 -0
  33. package/dist/src/facilitator/X402FacilitatorServer.js +176 -0
  34. package/dist/src/facilitator/X402FacilitatorServer.js.map +1 -0
  35. package/dist/src/facilitator/index.d.ts +7 -0
  36. package/dist/src/facilitator/index.d.ts.map +1 -0
  37. package/dist/src/facilitator/index.js +11 -0
  38. package/dist/src/facilitator/index.js.map +1 -0
  39. package/dist/src/index.d.ts +19 -0
  40. package/dist/src/index.d.ts.map +1 -0
  41. package/dist/src/index.js +39 -0
  42. package/dist/src/index.js.map +1 -0
  43. package/dist/src/modes/HumanInTheLoopMode.d.ts +92 -0
  44. package/dist/src/modes/HumanInTheLoopMode.d.ts.map +1 -0
  45. package/dist/src/modes/HumanInTheLoopMode.js +234 -0
  46. package/dist/src/modes/HumanInTheLoopMode.js.map +1 -0
  47. package/dist/src/modes/index.d.ts +8 -0
  48. package/dist/src/modes/index.d.ts.map +1 -0
  49. package/dist/src/modes/index.js +11 -0
  50. package/dist/src/modes/index.js.map +1 -0
  51. package/dist/src/protocols/A2ANegotiation.d.ts +122 -0
  52. package/dist/src/protocols/A2ANegotiation.d.ts.map +1 -0
  53. package/dist/src/protocols/A2ANegotiation.js +230 -0
  54. package/dist/src/protocols/A2ANegotiation.js.map +1 -0
  55. package/dist/src/protocols/A2AProtocol.d.ts +49 -0
  56. package/dist/src/protocols/A2AProtocol.d.ts.map +1 -0
  57. package/dist/src/protocols/A2AProtocol.js +126 -0
  58. package/dist/src/protocols/A2AProtocol.js.map +1 -0
  59. package/dist/src/protocols/AP2Protocol.d.ts +57 -0
  60. package/dist/src/protocols/AP2Protocol.d.ts.map +1 -0
  61. package/dist/src/protocols/AP2Protocol.js +121 -0
  62. package/dist/src/protocols/AP2Protocol.js.map +1 -0
  63. package/dist/src/protocols/index.d.ts +10 -0
  64. package/dist/src/protocols/index.d.ts.map +1 -0
  65. package/dist/src/protocols/index.js +15 -0
  66. package/dist/src/protocols/index.js.map +1 -0
  67. package/dist/src/services/index.d.ts +8 -0
  68. package/dist/src/services/index.d.ts.map +1 -0
  69. package/dist/src/services/index.js +13 -0
  70. package/dist/src/services/index.js.map +1 -0
  71. package/dist/src/utils/env.d.ts +15 -0
  72. package/dist/src/utils/env.d.ts.map +1 -0
  73. package/dist/src/utils/env.js +39 -0
  74. package/dist/src/utils/env.js.map +1 -0
  75. package/dist/src/utils/index.d.ts +7 -0
  76. package/dist/src/utils/index.d.ts.map +1 -0
  77. package/dist/src/utils/index.js +12 -0
  78. package/dist/src/utils/index.js.map +1 -0
  79. package/package.json +1 -1
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.X402FacilitatorServer = void 0;
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ const spl_token_1 = require("@solana/spl-token");
9
+ const env_1 = require("../utils/env");
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const bs58_1 = __importDefault(require("bs58"));
12
+ (0, env_1.loadEnvIfNeeded)();
13
+ class X402FacilitatorServer {
14
+ connection;
15
+ agentWallet;
16
+ usdcMint;
17
+ constructor() {
18
+ const rpcUrl = process.env.SOLANA_RPC_URL || 'https://api.devnet.solana.com';
19
+ const agentPrivateKey = process.env.AGENT_PRIVATE_KEY;
20
+ const usdcMint = process.env.USDC_MINT || '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU';
21
+ this.connection = new web3_js_1.Connection(rpcUrl, 'confirmed');
22
+ this.usdcMint = new web3_js_1.PublicKey(usdcMint);
23
+ if (agentPrivateKey) {
24
+ try {
25
+ const privateKeyBytes = bs58_1.default.decode(agentPrivateKey);
26
+ this.agentWallet = web3_js_1.Keypair.fromSecretKey(privateKeyBytes);
27
+ console.log(chalk_1.default.green(`✅ Facilitator initialized with wallet: ${this.agentWallet.publicKey.toBase58()}`));
28
+ }
29
+ catch (error) {
30
+ console.warn(chalk_1.default.yellow('⚠️ Invalid AGENT_PRIVATE_KEY format. Please provide a valid base58 encoded key.'));
31
+ console.warn(chalk_1.default.yellow(' Generate one with: solana-keygen new'));
32
+ }
33
+ }
34
+ else {
35
+ console.warn(chalk_1.default.yellow('⚠️ AGENT_PRIVATE_KEY not configured. Some features will be unavailable.'));
36
+ }
37
+ }
38
+ async verify(paymentHeader, paymentRequirements) {
39
+ try {
40
+ console.log(chalk_1.default.blue('🔍 Facilitator: Verifying payment...'));
41
+ const paymentPayload = JSON.parse(Buffer.from(paymentHeader, 'base64').toString());
42
+ const isValid = this.validatePaymentLocally(paymentPayload, paymentRequirements);
43
+ if (isValid) {
44
+ console.log(chalk_1.default.green('✅ Facilitator: Payment verification successful'));
45
+ return { isValid: true, invalidReason: null };
46
+ }
47
+ else {
48
+ console.log(chalk_1.default.red('❌ Facilitator: Payment verification failed'));
49
+ return { isValid: false, invalidReason: 'Local validation failed' };
50
+ }
51
+ }
52
+ catch (error) {
53
+ console.error('❌ Facilitator: Verification error:', error);
54
+ return {
55
+ isValid: false,
56
+ invalidReason: `Verification error: ${error.message}`
57
+ };
58
+ }
59
+ }
60
+ validatePaymentLocally(paymentPayload, requirements) {
61
+ try {
62
+ if (paymentPayload.x402Version !== 1) {
63
+ console.log(chalk_1.default.red('❌ Invalid x402 version'));
64
+ return false;
65
+ }
66
+ if (paymentPayload.scheme !== requirements.scheme) {
67
+ console.log(chalk_1.default.red('❌ Scheme mismatch'));
68
+ return false;
69
+ }
70
+ if (paymentPayload.network !== 'solana-devnet') {
71
+ console.log(chalk_1.default.red('❌ Network mismatch - expected solana-devnet'));
72
+ return false;
73
+ }
74
+ const authorization = paymentPayload.payload?.authorization;
75
+ if (!authorization) {
76
+ console.log(chalk_1.default.red('❌ No authorization found'));
77
+ return false;
78
+ }
79
+ if (authorization.value !== requirements.maxAmountRequired) {
80
+ console.log(chalk_1.default.red('❌ Amount mismatch'));
81
+ return false;
82
+ }
83
+ if (authorization.to !== requirements.payTo) {
84
+ console.log(chalk_1.default.red('❌ Recipient mismatch'));
85
+ return false;
86
+ }
87
+ const now = Math.floor(Date.now() / 1000);
88
+ if (authorization.validBefore && now > authorization.validBefore) {
89
+ console.log(chalk_1.default.red('❌ Payment expired'));
90
+ return false;
91
+ }
92
+ console.log(chalk_1.default.green('✅ All local validations passed'));
93
+ return true;
94
+ }
95
+ catch (error) {
96
+ console.error('❌ Local validation error:', error);
97
+ return false;
98
+ }
99
+ }
100
+ async settle(paymentHeader, paymentRequirements) {
101
+ try {
102
+ console.log(chalk_1.default.blue('🏦 Facilitator: Settling payment on Solana...'));
103
+ const paymentPayload = JSON.parse(Buffer.from(paymentHeader, 'base64').toString());
104
+ const txHash = await this.executeUSDCTransfer(paymentPayload, paymentRequirements);
105
+ if (txHash) {
106
+ console.log(chalk_1.default.green('✅ Facilitator: Payment settled successfully'));
107
+ console.log(chalk_1.default.blue(`📋 Transaction Signature: ${txHash}`));
108
+ console.log(chalk_1.default.blue(`📋 Network: solana-devnet`));
109
+ return {
110
+ success: true,
111
+ error: null,
112
+ txHash: txHash,
113
+ networkId: 'solana-devnet'
114
+ };
115
+ }
116
+ else {
117
+ console.log(chalk_1.default.red('❌ Facilitator: Payment settlement failed'));
118
+ return {
119
+ success: false,
120
+ error: 'Failed to execute transfer',
121
+ txHash: null,
122
+ networkId: null
123
+ };
124
+ }
125
+ }
126
+ catch (error) {
127
+ console.error('❌ Facilitator: Settlement error:', error);
128
+ return {
129
+ success: false,
130
+ error: `Settlement error: ${error.message}`,
131
+ txHash: null,
132
+ networkId: null
133
+ };
134
+ }
135
+ }
136
+ async executeUSDCTransfer(paymentPayload, requirements) {
137
+ try {
138
+ console.log(chalk_1.default.blue('💰 Executing USDC transfer on Solana...'));
139
+ if (!this.agentWallet) {
140
+ throw new Error('Agent wallet not initialized');
141
+ }
142
+ const authorization = paymentPayload.payload?.authorization;
143
+ if (!authorization) {
144
+ throw new Error('No authorization found in payment payload');
145
+ }
146
+ const recipientAddress = new web3_js_1.PublicKey(authorization.to);
147
+ const amount = Number(authorization.value);
148
+ const token = new spl_token_1.Token(this.connection, this.usdcMint, spl_token_1.TOKEN_PROGRAM_ID, this.agentWallet);
149
+ const fromTokenAccount = await token.getOrCreateAssociatedAccountInfo(this.agentWallet.publicKey);
150
+ const toTokenAccount = await token.getOrCreateAssociatedAccountInfo(recipientAddress);
151
+ console.log(chalk_1.default.blue(`📋 Current USDC balance: ${Number(fromTokenAccount.amount) / 1_000_000} USDC`));
152
+ console.log(chalk_1.default.blue(`📋 Transfer amount: ${amount / 1_000_000} USDC`));
153
+ console.log(chalk_1.default.blue(`📋 Recipient: ${recipientAddress.toBase58()}`));
154
+ if (Number(fromTokenAccount.amount) < amount) {
155
+ throw new Error(`Insufficient USDC balance: ${Number(fromTokenAccount.amount) / 1_000_000} < ${amount / 1_000_000}`);
156
+ }
157
+ console.log(chalk_1.default.yellow('📋 Submitting transaction...'));
158
+ const signature = await token.transfer(fromTokenAccount.address, toTokenAccount.address, this.agentWallet, [], amount);
159
+ console.log(chalk_1.default.green(`✅ Transfer confirmed: ${signature}`));
160
+ return signature;
161
+ }
162
+ catch (error) {
163
+ console.error('❌ USDC transfer error:', error);
164
+ return null;
165
+ }
166
+ }
167
+ getSupportedSchemes() {
168
+ return {
169
+ kinds: [
170
+ { scheme: 'exact', network: 'solana-devnet' }
171
+ ]
172
+ };
173
+ }
174
+ }
175
+ exports.X402FacilitatorServer = X402FacilitatorServer;
176
+ //# sourceMappingURL=X402FacilitatorServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"X402FacilitatorServer.js","sourceRoot":"","sources":["../../../src/facilitator/X402FacilitatorServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Aether Agent SDK - Facilitator Module
3
+ *
4
+ * Export x402 facilitator for Solana
5
+ */
6
+ export { X402FacilitatorServer } from './X402FacilitatorServer';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/facilitator/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * Aether Agent SDK - Facilitator Module
4
+ *
5
+ * Export x402 facilitator for Solana
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.X402FacilitatorServer = void 0;
9
+ var X402FacilitatorServer_1 = require("./X402FacilitatorServer");
10
+ Object.defineProperty(exports, "X402FacilitatorServer", { enumerable: true, get: function () { return X402FacilitatorServer_1.X402FacilitatorServer; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/facilitator/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,iEAA+D;AAAtD,8HAAA,qBAAqB,OAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Aether Agent SDK
3
+ *
4
+ * Autonomous Agent Ecosystem SDK for Solana with x402 Payment Protocol
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ export * from './agents';
9
+ export * from './facilitator';
10
+ export * from './utils';
11
+ /**
12
+ * SDK Version
13
+ */
14
+ export declare const VERSION = "1.0.0";
15
+ /**
16
+ * SDK Name
17
+ */
18
+ export declare const SDK_NAME = "aether-agent-sdk";
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,UAAU,CAAA;AAGxB,cAAc,eAAe,CAAA;AAG7B,cAAc,SAAS,CAAA;AAEvB;;GAEG;AACH,eAAO,MAAM,OAAO,UAAU,CAAA;AAE9B;;GAEG;AACH,eAAO,MAAM,QAAQ,qBAAqB,CAAA"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /**
3
+ * Aether Agent SDK
4
+ *
5
+ * Autonomous Agent Ecosystem SDK for Solana with x402 Payment Protocol
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.SDK_NAME = exports.VERSION = void 0;
25
+ // Agents
26
+ __exportStar(require("./agents"), exports);
27
+ // Facilitator
28
+ __exportStar(require("./facilitator"), exports);
29
+ // Utils
30
+ __exportStar(require("./utils"), exports);
31
+ /**
32
+ * SDK Version
33
+ */
34
+ exports.VERSION = '1.0.0';
35
+ /**
36
+ * SDK Name
37
+ */
38
+ exports.SDK_NAME = 'aether-agent-sdk';
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAEH,SAAS;AACT,2CAAwB;AAExB,cAAc;AACd,gDAA6B;AAE7B,QAAQ;AACR,0CAAuB;AAEvB;;GAEG;AACU,QAAA,OAAO,GAAG,OAAO,CAAA;AAE9B;;GAEG;AACU,QAAA,QAAQ,GAAG,kBAAkB,CAAA"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Human-in-the-Loop Mode
3
+ *
4
+ * This module implements human approval workflows for autonomous agents.
5
+ * When enabled, agents will pause and request human approval for:
6
+ * - High-value payments
7
+ * - Sensitive operations
8
+ * - Custom-defined approval thresholds
9
+ *
10
+ * Used for the hackathon bonus points requirement
11
+ */
12
+ /**
13
+ * Approval Request
14
+ */
15
+ export interface ApprovalRequest {
16
+ requestId: string;
17
+ action: string;
18
+ description: string;
19
+ details: any;
20
+ createdAt: number;
21
+ status?: "pending" | "approved" | "rejected" | "expired";
22
+ }
23
+ /**
24
+ * Approval Result
25
+ */
26
+ export interface ApprovalResult {
27
+ approved: boolean;
28
+ requestId: string;
29
+ timestamp: number;
30
+ reason?: string;
31
+ }
32
+ /**
33
+ * Human-in-the-Loop Configuration
34
+ */
35
+ export interface HITLConfig {
36
+ enabled: boolean;
37
+ requireApprovalFor?: string[];
38
+ approvalThresholds?: {
39
+ payment?: number;
40
+ transaction?: number;
41
+ custom?: Map<string, number>;
42
+ };
43
+ timeout?: number;
44
+ autoApproveTimeout?: boolean;
45
+ }
46
+ /**
47
+ * Human-in-the-Loop Mode Implementation
48
+ */
49
+ export declare class HumanInTheLoopMode {
50
+ private config;
51
+ private pendingRequests;
52
+ private rl?;
53
+ private callbacks;
54
+ constructor(config?: HITLConfig);
55
+ /**
56
+ * Check if action requires human approval
57
+ */
58
+ requiresApproval(action: string, details: any): boolean;
59
+ /**
60
+ * Request human approval
61
+ */
62
+ requestApproval(request: Omit<ApprovalRequest, 'requestId' | 'createdAt' | 'status'>): Promise<ApprovalResult>;
63
+ /**
64
+ * Request approval via CLI
65
+ */
66
+ private requestCLIApproval;
67
+ /**
68
+ * Create approval result
69
+ */
70
+ private createApprovalResult;
71
+ /**
72
+ * Get pending requests
73
+ */
74
+ getPendingRequests(): ApprovalRequest[];
75
+ /**
76
+ * Enable HITL mode
77
+ */
78
+ enable(): void;
79
+ /**
80
+ * Disable HITL mode
81
+ */
82
+ disable(): void;
83
+ /**
84
+ * Set approval threshold for payments
85
+ */
86
+ setPaymentThreshold(threshold: number): void;
87
+ /**
88
+ * Cleanup
89
+ */
90
+ cleanup(): void;
91
+ }
92
+ //# sourceMappingURL=HumanInTheLoopMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HumanInTheLoopMode.d.ts","sourceRoot":"","sources":["../../../src/modes/HumanInTheLoopMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,GAAG,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAA;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,kBAAkB,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAC7B,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,EAAE,CAAC,CAAoB;IAC/B,OAAO,CAAC,SAAS,CAA2D;gBAEhE,MAAM,CAAC,EAAE,UAAU;IAc/B;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO;IA+BvD;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IA2CpH;;OAEG;YACW,kBAAkB;IA0ChC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,kBAAkB,IAAI,eAAe,EAAE;IAIvC;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ5C;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB"}
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ /**
3
+ * Human-in-the-Loop Mode
4
+ *
5
+ * This module implements human approval workflows for autonomous agents.
6
+ * When enabled, agents will pause and request human approval for:
7
+ * - High-value payments
8
+ * - Sensitive operations
9
+ * - Custom-defined approval thresholds
10
+ *
11
+ * Used for the hackathon bonus points requirement
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ var __importDefault = (this && this.__importDefault) || function (mod) {
47
+ return (mod && mod.__esModule) ? mod : { "default": mod };
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.HumanInTheLoopMode = void 0;
51
+ const chalk_1 = __importDefault(require("chalk"));
52
+ const readline = __importStar(require("readline"));
53
+ /**
54
+ * Human-in-the-Loop Mode Implementation
55
+ */
56
+ class HumanInTheLoopMode {
57
+ config;
58
+ pendingRequests = new Map();
59
+ rl;
60
+ callbacks = new Map();
61
+ constructor(config) {
62
+ this.config = {
63
+ enabled: false,
64
+ requireApprovalFor: [],
65
+ approvalThresholds: {
66
+ payment: 100, // Default $100
67
+ transaction: 10
68
+ },
69
+ timeout: 300000, // 5 minutes default
70
+ autoApproveTimeout: false,
71
+ ...config
72
+ };
73
+ }
74
+ /**
75
+ * Check if action requires human approval
76
+ */
77
+ requiresApproval(action, details) {
78
+ if (!this.config.enabled) {
79
+ return false;
80
+ }
81
+ // Check if action is in requireApprovalFor list
82
+ if (this.config.requireApprovalFor && this.config.requireApprovalFor.includes(action)) {
83
+ return true;
84
+ }
85
+ // Check payment threshold
86
+ if (action === "payment" && this.config.approvalThresholds?.payment) {
87
+ const amount = details.amount || 0;
88
+ if (amount >= this.config.approvalThresholds.payment) {
89
+ console.log(chalk_1.default.yellow(`⚠️ Payment amount ${amount} exceeds threshold ${this.config.approvalThresholds.payment}`));
90
+ return true;
91
+ }
92
+ }
93
+ // Check transaction threshold
94
+ if (action === "transaction" && this.config.approvalThresholds?.transaction) {
95
+ const count = details.count || 0;
96
+ if (count >= this.config.approvalThresholds.transaction) {
97
+ console.log(chalk_1.default.yellow(`⚠️ Transaction count ${count} exceeds threshold ${this.config.approvalThresholds.transaction}`));
98
+ return true;
99
+ }
100
+ }
101
+ return false;
102
+ }
103
+ /**
104
+ * Request human approval
105
+ */
106
+ async requestApproval(request) {
107
+ const requestId = `approval-${Date.now()}-${Math.random().toString(36).substring(7)}`;
108
+ const fullRequest = {
109
+ ...request,
110
+ requestId,
111
+ createdAt: Date.now(),
112
+ status: "pending"
113
+ };
114
+ this.pendingRequests.set(requestId, fullRequest);
115
+ console.log(chalk_1.default.yellow(`\n🤔 HUMAN APPROVAL REQUIRED`));
116
+ console.log(chalk_1.default.bold(`─────────────────────────────────────────────────────`));
117
+ console.log(chalk_1.default.blue(`Request ID: ${requestId}`));
118
+ console.log(chalk_1.default.blue(`Action: ${request.action}`));
119
+ console.log(chalk_1.default.blue(`Description: ${request.description}`));
120
+ console.log(chalk_1.default.gray(`Details: ${JSON.stringify(request.details, null, 2)}`));
121
+ console.log(chalk_1.default.bold(`─────────────────────────────────────────────────────\n`));
122
+ return new Promise((resolve) => {
123
+ this.callbacks.set(requestId, resolve);
124
+ // Set timeout if configured
125
+ if (this.config.timeout) {
126
+ setTimeout(() => {
127
+ if (this.pendingRequests.has(requestId)) {
128
+ const result = this.config.autoApproveTimeout ?
129
+ this.createApprovalResult(requestId, true, "Auto-approved due to timeout") :
130
+ this.createApprovalResult(requestId, false, "Request timed out");
131
+ resolve(result);
132
+ this.callbacks.delete(requestId);
133
+ this.pendingRequests.delete(requestId);
134
+ }
135
+ }, this.config.timeout);
136
+ }
137
+ // Request approval via CLI
138
+ this.requestCLIApproval(requestId, request);
139
+ });
140
+ }
141
+ /**
142
+ * Request approval via CLI
143
+ */
144
+ async requestCLIApproval(requestId, request) {
145
+ console.log(chalk_1.default.bold(`Options:`));
146
+ console.log(chalk_1.default.green(`[y] Yes - Approve and proceed`));
147
+ console.log(chalk_1.default.red(`[n] No - Reject and cancel`));
148
+ console.log(chalk_1.default.bold(`[Enter your choice (y/n):]`));
149
+ // Create readline interface if not exists
150
+ if (!this.rl) {
151
+ this.rl = readline.createInterface({
152
+ input: process.stdin,
153
+ output: process.stdout
154
+ });
155
+ }
156
+ const answer = await new Promise((resolve) => {
157
+ this.rl.question('', (answer) => {
158
+ resolve(answer.trim().toLowerCase());
159
+ });
160
+ });
161
+ const approved = answer === 'y' || answer === 'yes';
162
+ const callback = this.callbacks.get(requestId);
163
+ if (callback) {
164
+ const result = this.createApprovalResult(requestId, approved, approved ? 'Human approved' : 'Human rejected');
165
+ callback(result);
166
+ this.callbacks.delete(requestId);
167
+ }
168
+ this.pendingRequests.delete(requestId);
169
+ if (approved) {
170
+ console.log(chalk_1.default.green(`✅ Approval granted, proceeding...\n`));
171
+ }
172
+ else {
173
+ console.log(chalk_1.default.red(`❌ Approval denied, canceling...\n`));
174
+ }
175
+ }
176
+ /**
177
+ * Create approval result
178
+ */
179
+ createApprovalResult(requestId, approved, reason) {
180
+ const result = {
181
+ approved,
182
+ requestId,
183
+ timestamp: Date.now(),
184
+ reason
185
+ };
186
+ // Update request status
187
+ const request = this.pendingRequests.get(requestId);
188
+ if (request) {
189
+ request.status = approved ? "approved" : "rejected";
190
+ this.pendingRequests.set(requestId, request);
191
+ }
192
+ return result;
193
+ }
194
+ /**
195
+ * Get pending requests
196
+ */
197
+ getPendingRequests() {
198
+ return Array.from(this.pendingRequests.values()).filter(r => r.status === "pending");
199
+ }
200
+ /**
201
+ * Enable HITL mode
202
+ */
203
+ enable() {
204
+ this.config.enabled = true;
205
+ console.log(chalk_1.default.green(`✅ Human-in-the-Loop mode enabled`));
206
+ }
207
+ /**
208
+ * Disable HITL mode
209
+ */
210
+ disable() {
211
+ this.config.enabled = false;
212
+ console.log(chalk_1.default.yellow(`⚠️ Human-in-the-Loop mode disabled`));
213
+ }
214
+ /**
215
+ * Set approval threshold for payments
216
+ */
217
+ setPaymentThreshold(threshold) {
218
+ if (!this.config.approvalThresholds) {
219
+ this.config.approvalThresholds = {};
220
+ }
221
+ this.config.approvalThresholds.payment = threshold;
222
+ console.log(chalk_1.default.blue(`💰 Payment approval threshold set to $${threshold}`));
223
+ }
224
+ /**
225
+ * Cleanup
226
+ */
227
+ cleanup() {
228
+ if (this.rl) {
229
+ this.rl.close();
230
+ }
231
+ }
232
+ }
233
+ exports.HumanInTheLoopMode = HumanInTheLoopMode;
234
+ //# sourceMappingURL=HumanInTheLoopMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HumanInTheLoopMode.js","sourceRoot":"","sources":["../../../src/modes/HumanInTheLoopMode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Hedron Agent SDK - Modes Module
3
+ *
4
+ * Export all mode classes and interfaces
5
+ */
6
+ export { HumanInTheLoopMode } from './HumanInTheLoopMode';
7
+ export type { ApprovalRequest, ApprovalResult, HITLConfig } from './HumanInTheLoopMode';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modes/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * Hedron Agent SDK - Modes Module
4
+ *
5
+ * Export all mode classes and interfaces
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.HumanInTheLoopMode = void 0;
9
+ var HumanInTheLoopMode_1 = require("./HumanInTheLoopMode");
10
+ Object.defineProperty(exports, "HumanInTheLoopMode", { enumerable: true, get: function () { return HumanInTheLoopMode_1.HumanInTheLoopMode; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modes/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA"}