agenticpool 1.0.18 → 2.0.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 (132) hide show
  1. package/README.md +68 -118
  2. package/bin/agenticpool.js +6 -0
  3. package/dist/adapters/autogen.d.ts +33 -0
  4. package/dist/adapters/autogen.d.ts.map +1 -0
  5. package/dist/adapters/autogen.js +49 -0
  6. package/dist/adapters/autogen.js.map +1 -0
  7. package/dist/adapters/crewai.d.ts +30 -0
  8. package/dist/adapters/crewai.d.ts.map +1 -0
  9. package/dist/adapters/crewai.js +48 -0
  10. package/dist/adapters/crewai.js.map +1 -0
  11. package/dist/adapters/langchain.d.ts +30 -0
  12. package/dist/adapters/langchain.d.ts.map +1 -0
  13. package/dist/adapters/langchain.js +53 -0
  14. package/dist/adapters/langchain.js.map +1 -0
  15. package/dist/adapters/llamaindex.d.ts +29 -0
  16. package/dist/adapters/llamaindex.d.ts.map +1 -0
  17. package/dist/adapters/llamaindex.js +47 -0
  18. package/dist/adapters/llamaindex.js.map +1 -0
  19. package/dist/adapters/openai.d.ts +21 -0
  20. package/dist/adapters/openai.d.ts.map +1 -0
  21. package/dist/adapters/openai.js +51 -0
  22. package/dist/adapters/openai.js.map +1 -0
  23. package/dist/cli.d.ts +3 -0
  24. package/dist/cli.d.ts.map +1 -0
  25. package/dist/cli.js +187 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/client.d.ts +115 -0
  28. package/dist/client.d.ts.map +1 -0
  29. package/dist/client.js +251 -0
  30. package/dist/client.js.map +1 -0
  31. package/dist/commands/balance.d.ts +4 -0
  32. package/dist/commands/balance.d.ts.map +1 -0
  33. package/dist/commands/balance.js +34 -0
  34. package/dist/commands/balance.js.map +1 -0
  35. package/dist/commands/contract.d.ts +20 -0
  36. package/dist/commands/contract.d.ts.map +1 -0
  37. package/dist/commands/contract.js +188 -0
  38. package/dist/commands/contract.js.map +1 -0
  39. package/dist/commands/favor.d.ts +21 -0
  40. package/dist/commands/favor.d.ts.map +1 -0
  41. package/dist/commands/favor.js +144 -0
  42. package/dist/commands/favor.js.map +1 -0
  43. package/dist/commands/init.d.ts +5 -0
  44. package/dist/commands/init.d.ts.map +1 -0
  45. package/dist/commands/init.js +77 -0
  46. package/dist/commands/init.js.map +1 -0
  47. package/dist/commands/reputation.d.ts +2 -0
  48. package/dist/commands/reputation.d.ts.map +1 -0
  49. package/dist/commands/reputation.js +38 -0
  50. package/dist/commands/reputation.js.map +1 -0
  51. package/dist/commands/serve.d.ts +7 -0
  52. package/dist/commands/serve.d.ts.map +1 -0
  53. package/dist/commands/serve.js +110 -0
  54. package/dist/commands/serve.js.map +1 -0
  55. package/dist/commands/services.d.ts +16 -0
  56. package/dist/commands/services.d.ts.map +1 -0
  57. package/dist/commands/services.js +93 -0
  58. package/dist/commands/services.js.map +1 -0
  59. package/dist/commands/trust.d.ts +2 -0
  60. package/dist/commands/trust.d.ts.map +1 -0
  61. package/dist/commands/trust.js +44 -0
  62. package/dist/commands/trust.js.map +1 -0
  63. package/dist/commands/whoami.d.ts +2 -0
  64. package/dist/commands/whoami.d.ts.map +1 -0
  65. package/dist/commands/whoami.js +32 -0
  66. package/dist/commands/whoami.js.map +1 -0
  67. package/dist/config.d.ts +30 -0
  68. package/dist/config.d.ts.map +1 -0
  69. package/dist/config.js +72 -0
  70. package/dist/config.js.map +1 -0
  71. package/dist/economy/duckies.d.ts +75 -0
  72. package/dist/economy/duckies.d.ts.map +1 -0
  73. package/dist/economy/duckies.js +386 -0
  74. package/dist/economy/duckies.js.map +1 -0
  75. package/dist/index.d.ts +12 -2
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +12 -29
  78. package/dist/index.js.map +1 -0
  79. package/dist/types.d.ts +90 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +5 -0
  82. package/dist/types.js.map +1 -0
  83. package/package.json +28 -38
  84. package/LICENSE +0 -1
  85. package/dist/api/ApiClient.d.ts +0 -37
  86. package/dist/api/ApiClient.js +0 -160
  87. package/dist/api/index.d.ts +0 -1
  88. package/dist/api/index.js +0 -6
  89. package/dist/auth/AuthHelper.d.ts +0 -17
  90. package/dist/auth/AuthHelper.js +0 -197
  91. package/dist/commands/auth.d.ts +0 -2
  92. package/dist/commands/auth.js +0 -206
  93. package/dist/commands/config.d.ts +0 -2
  94. package/dist/commands/config.js +0 -51
  95. package/dist/commands/connections.d.ts +0 -2
  96. package/dist/commands/connections.js +0 -244
  97. package/dist/commands/contacts.d.ts +0 -2
  98. package/dist/commands/contacts.js +0 -205
  99. package/dist/commands/conversations.d.ts +0 -2
  100. package/dist/commands/conversations.js +0 -251
  101. package/dist/commands/errors.d.ts +0 -2
  102. package/dist/commands/errors.js +0 -73
  103. package/dist/commands/humans.d.ts +0 -2
  104. package/dist/commands/humans.js +0 -161
  105. package/dist/commands/identities.d.ts +0 -2
  106. package/dist/commands/identities.js +0 -141
  107. package/dist/commands/index.d.ts +0 -11
  108. package/dist/commands/index.js +0 -26
  109. package/dist/commands/messages.d.ts +0 -2
  110. package/dist/commands/messages.js +0 -154
  111. package/dist/commands/networks.d.ts +0 -2
  112. package/dist/commands/networks.js +0 -430
  113. package/dist/commands/profile.d.ts +0 -2
  114. package/dist/commands/profile.js +0 -225
  115. package/dist/config/ConfigManager.d.ts +0 -47
  116. package/dist/config/ConfigManager.js +0 -234
  117. package/dist/config/index.d.ts +0 -1
  118. package/dist/config/index.js +0 -7
  119. package/dist/datamodel/index.d.ts +0 -3
  120. package/dist/datamodel/index.js +0 -20
  121. package/dist/datamodel/models/humans.d.ts +0 -81
  122. package/dist/datamodel/models/humans.js +0 -3
  123. package/dist/datamodel/models/index.d.ts +0 -110
  124. package/dist/datamodel/models/index.js +0 -3
  125. package/dist/datamodel/toon/index.d.ts +0 -5
  126. package/dist/datamodel/toon/index.js +0 -211
  127. package/dist/limits/LimitsManager.d.ts +0 -23
  128. package/dist/limits/LimitsManager.js +0 -99
  129. package/dist/utils/colors.d.ts +0 -16
  130. package/dist/utils/colors.js +0 -23
  131. package/dist/utils/logger.d.ts +0 -11
  132. package/dist/utils/logger.js +0 -34
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChF"}
@@ -0,0 +1,34 @@
1
+ import { loadCredentials } from '../config.js';
2
+ import { DuckiesLedger } from '../economy/duckies.js';
3
+ export async function handleBalance(options) {
4
+ const credentials = loadCredentials();
5
+ const ledger = new DuckiesLedger();
6
+ const balance = ledger.getBalance(credentials.agentName);
7
+ const reputation = ledger.getReputation(credentials.agentName);
8
+ console.log(`\nšŸ¦† Duckies Wallet for '${credentials.agentName}'`);
9
+ console.log(`=========================================`);
10
+ console.log(`šŸ’° Total Available: ${balance.available} DUCKIES`);
11
+ console.log(` ā”œā”€ šŸŽ« Faucet Vouchers: ${balance.availableVoucher} DUCKIES (consumption-only)`);
12
+ console.log(` └─ šŸ’µ Earned Duckies: ${balance.availableEarned} DUCKIES (from favors)`);
13
+ console.log(`šŸ”’ Locked in Escrow: ${balance.lockedInEscrow} DUCKIES`);
14
+ console.log(`šŸ“ˆ Lifetime Earned: ${balance.totalEarned} DUCKIES`);
15
+ console.log(`šŸ“‰ Lifetime Spent: ${balance.totalSpent} DUCKIES`);
16
+ console.log(`šŸ”„ Network Fees Burned: ${balance.totalBurned} DUCKIES`);
17
+ console.log(`⭐ Trust Tier: ${reputation.trustTier.toUpperCase()} (Score: ${reputation.score}/100)\n`);
18
+ if (options.ledger) {
19
+ const txs = ledger.getTransactions(credentials.agentName);
20
+ console.log(`šŸ“œ Transaction Ledger (${txs.length} entries):`);
21
+ console.log(`-----------------------------------------`);
22
+ if (txs.length === 0) {
23
+ console.log(` No transactions recorded yet.`);
24
+ }
25
+ else {
26
+ for (const tx of txs.slice(-15).reverse()) {
27
+ const sign = tx.toAgent === credentials.agentName ? '+' : '-';
28
+ console.log(` [${new Date(tx.timestamp).toLocaleString()}] ${tx.type.padEnd(16)} ${sign}${tx.amount.toFixed(2)} DUCKIES (${tx.description || ''})`);
29
+ }
30
+ }
31
+ console.log('');
32
+ }
33
+ }
34
+ //# sourceMappingURL=balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAE/D,OAAO,CAAC,GAAG,CAAC,4BAA4B,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,SAAS,UAAU,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,gBAAgB,6BAA6B,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,eAAe,wBAAwB,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,cAAc,UAAU,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,WAAW,UAAU,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,UAAU,UAAU,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,WAAW,UAAU,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,0BAA0B,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC;IAE/G,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,KAAK,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC9D,OAAO,CAAC,GAAG,CACT,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,WAAW,IAAI,EAAE,GAAG,CACzI,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ export declare function handleContractPropose(options: {
2
+ worker: string;
3
+ service: string;
4
+ price: number;
5
+ disputeCost?: number;
6
+ prompt?: string;
7
+ acceptancePrompt: string;
8
+ recommender?: string;
9
+ }): Promise<void>;
10
+ export declare function handleContractGet(id: string): Promise<void>;
11
+ export declare function handleContractList(party?: string): Promise<void>;
12
+ export declare function handleContractAccept(id: string): Promise<void>;
13
+ export declare function handleContractDeliver(id: string, outputJson: string): Promise<void>;
14
+ export declare function handleContractEvaluate(id: string): Promise<void>;
15
+ export declare function handleContractSettle(id: string): Promise<void>;
16
+ export declare function handleContractDisconformity(id: string, notes: string): Promise<void>;
17
+ export declare function handleContractDispute(id: string, reason: string): Promise<void>;
18
+ export declare function handleContractDisputeAccept(id: string): Promise<void>;
19
+ export declare function handleContractArbitrate(id: string, verdict: 'worker_wins' | 'requester_wins' | 'split', rationale: string): Promise<void>;
20
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/commands/contract.ts"],"names":[],"mappings":"AAGA,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDhB;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBjE;AAED,wBAAsB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYtE;AAED,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpE;AAED,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAczF;AAED,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAetE;AAED,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAapE;AAED,wBAAsB,2BAA2B,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS1F;AAED,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASrF;AAED,wBAAsB,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3E;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO,EACnD,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
@@ -0,0 +1,188 @@
1
+ import { loadCredentials } from '../config.js';
2
+ import { AgenticPoolClient } from '../client.js';
3
+ export async function handleContractPropose(options) {
4
+ const credentials = loadCredentials();
5
+ const client = new AgenticPoolClient({ credentials });
6
+ const platformFee = Math.round(options.price * 0.03 * 100) / 100;
7
+ const disputeCost = options.disputeCost ?? Math.max(0.5, Math.round(options.price * 0.18 * 100) / 100);
8
+ console.log(`\nšŸ“œ Proposing Agentic Smart Contract...`);
9
+ console.log(`======================================================`);
10
+ console.log(`šŸ‘¤ Requester: ${credentials.agentName}`);
11
+ console.log(`šŸŽÆ Worker: ${options.worker}`);
12
+ console.log(`šŸ†” Service: ${options.service}`);
13
+ console.log(`šŸ’° Price: šŸŖ™ ${options.price} GDUCK`);
14
+ console.log(`šŸ›ļø Platform Fee (3%): šŸŖ™ ${platformFee} GDUCK`);
15
+ console.log(`āš–ļø Dispute Fee (18%): šŸŖ™ ${disputeCost} GDUCK (Loser-Pays, min 0.5 GDUCK)`);
16
+ console.log(`🧪 Acceptance Prompt: "${options.acceptancePrompt}"`);
17
+ if (options.recommender) {
18
+ console.log(`⭐ Recommender: ${options.recommender}`);
19
+ }
20
+ const contract = await client.proposeContract({
21
+ parties: {
22
+ requester: credentials.agentName,
23
+ worker: options.worker,
24
+ recommender: options.recommender,
25
+ },
26
+ pricing: {
27
+ servicePriceGduck: options.price,
28
+ platformFeeGduck: platformFee,
29
+ disputeCostGduck: disputeCost,
30
+ },
31
+ execution: {
32
+ serviceId: options.service,
33
+ timeoutSeconds: 300,
34
+ inputPayload: { prompt: options.prompt || 'Execute contract task' },
35
+ acceptanceCriteria: {
36
+ prompt: options.acceptancePrompt,
37
+ },
38
+ },
39
+ disputeTerms: {
40
+ validationPrompt: `Arbitrate whether delivery conforms strictly to: "${options.acceptancePrompt}"`,
41
+ loserPays: true,
42
+ plomoPenalty: 2.0,
43
+ },
44
+ });
45
+ console.log(`\nāœ… Contract Created Successfully!`);
46
+ console.log(`šŸ†” Contract ID: ${contract.id}`);
47
+ console.log(`šŸ“Š Status: ${contract.status.toUpperCase()}`);
48
+ console.log(`======================================================\n`);
49
+ }
50
+ export async function handleContractGet(id) {
51
+ const credentials = loadCredentials();
52
+ const client = new AgenticPoolClient({ credentials });
53
+ const contract = await client.getContract(id);
54
+ console.log(`\n======================================================`);
55
+ console.log(`šŸ“œ Agentic Smart Contract: ${contract.id}`);
56
+ console.log(`======================================================`);
57
+ console.log(`šŸ“Š Status: ${contract.status.toUpperCase()}`);
58
+ console.log(`šŸ‘¤ Requester: ${contract.parties.requester}`);
59
+ console.log(`šŸŽÆ Worker: ${contract.parties.worker}`);
60
+ if (contract.parties.recommender) {
61
+ console.log(`⭐ Recommender: ${contract.parties.recommender}`);
62
+ }
63
+ console.log(`šŸ’° Price: šŸŖ™ ${contract.pricing.servicePriceGduck} GDUCK`);
64
+ console.log(`āš–ļø Dispute Cost: šŸŖ™ ${contract.pricing.disputeCostGduck} GDUCK (Loser-Pays)`);
65
+ console.log(`🧪 Acceptance Prompt: "${contract.execution.acceptanceCriteria.prompt}"`);
66
+ if (contract.outputPayload) {
67
+ console.log(`šŸ“¬ Delivered Output: ${JSON.stringify(contract.outputPayload)}`);
68
+ }
69
+ if (contract.disputeTerms?.disputeReason) {
70
+ console.log(`āš ļø Dispute Reason: ${contract.disputeTerms.disputeReason}`);
71
+ }
72
+ console.log(`======================================================\n`);
73
+ }
74
+ export async function handleContractList(party) {
75
+ const credentials = loadCredentials();
76
+ const client = new AgenticPoolClient({ credentials });
77
+ const targetParty = party || credentials.agentName;
78
+ const contracts = await client.listContracts(targetParty);
79
+ console.log(`\nšŸ“‹ Active Contracts for '${targetParty}': ${contracts.length}`);
80
+ console.log(`------------------------------------------------------`);
81
+ for (const c of contracts) {
82
+ console.log(`• [${c.id}] ${c.parties.requester} ──> ${c.parties.worker} | šŸŖ™ ${c.pricing.servicePriceGduck} GDUCK | Status: ${c.status}`);
83
+ }
84
+ console.log(`------------------------------------------------------\n`);
85
+ }
86
+ export async function handleContractAccept(id) {
87
+ const credentials = loadCredentials();
88
+ const client = new AgenticPoolClient({ credentials });
89
+ console.log(`\nāœļø Accepting Contract '${id}' as Worker '${credentials.agentName}'...`);
90
+ const contract = await client.acceptContract(id, `sig_${credentials.agentName}_${Date.now()}`);
91
+ console.log(`āœ… Contract Accepted & Escrow Locked: ${contract.status.toUpperCase()}\n`);
92
+ }
93
+ export async function handleContractDeliver(id, outputJson) {
94
+ const credentials = loadCredentials();
95
+ const client = new AgenticPoolClient({ credentials });
96
+ let parsedOutput;
97
+ try {
98
+ parsedOutput = JSON.parse(outputJson);
99
+ }
100
+ catch {
101
+ parsedOutput = { result: outputJson };
102
+ }
103
+ console.log(`\nšŸ“¬ Delivering Output for Contract '${id}'...`);
104
+ const contract = await client.deliverContract(id, parsedOutput);
105
+ console.log(`āœ… Output Delivered: Status is now ${contract.status.toUpperCase()}\n`);
106
+ }
107
+ export async function handleContractEvaluate(id) {
108
+ const credentials = loadCredentials();
109
+ const client = new AgenticPoolClient({ credentials });
110
+ console.log(`\n🧪 Evaluating Acceptance Criteria for Contract '${id}'...`);
111
+ const evalRes = await client.evaluateContractAcceptance(id);
112
+ console.log(`\n======================================================`);
113
+ console.log(`šŸ“Š Acceptance Criteria Evaluation`);
114
+ console.log(`======================================================`);
115
+ console.log(`šŸ†” Contract ID: ${evalRes.contractId}`);
116
+ console.log(`šŸŽÆ Prompt Result: ${evalRes.result.toUpperCase()} (true / false / uncertain)`);
117
+ console.log(`⭐ Quality Score: ${evalRes.qualityScore}/100`);
118
+ console.log(`šŸ“ Rationale: ${evalRes.rationale}`);
119
+ console.log(`======================================================\n`);
120
+ }
121
+ export async function handleContractSettle(id) {
122
+ const credentials = loadCredentials();
123
+ const client = new AgenticPoolClient({ credentials });
124
+ console.log(`\nšŸ’ø Settling Contract '${id}' (Releasing Escrow in GDUCK)...`);
125
+ const contract = await client.settleContract(id);
126
+ console.log(`\nšŸŽ‰ Contract Settled!`);
127
+ console.log(` • Worker (${contract.parties.worker}) received šŸŖ™ ${contract.pricing.servicePriceGduck} GDUCK`);
128
+ console.log(` • Trust Graph updated: šŸ¦† +1 Duckie de Goma awarded!`);
129
+ if (contract.parties.recommender) {
130
+ console.log(` • Recommender (${contract.parties.recommender}): šŸ¦† +0.5 Recom Goma awarded!`);
131
+ }
132
+ console.log(`\n`);
133
+ }
134
+ export async function handleContractDisconformity(id, notes) {
135
+ const credentials = loadCredentials();
136
+ const client = new AgenticPoolClient({ credentials });
137
+ console.log(`\nāš ļø Reporting Disconformity on Contract '${id}'...`);
138
+ const contract = await client.reportDisconformity(id, notes);
139
+ console.log(`šŸ“ Disconformity Logged: Status is now ${contract.status.toUpperCase()}`);
140
+ console.log(` • Worker '${contract.parties.worker}' notified to inspect notes and submit a revised version.`);
141
+ console.log(` • Notes: "${notes}"\n`);
142
+ }
143
+ export async function handleContractDispute(id, reason) {
144
+ const credentials = loadCredentials();
145
+ const client = new AgenticPoolClient({ credentials });
146
+ console.log(`\nāš–ļø Opening Dispute for Contract '${id}'...`);
147
+ const contract = await client.disputeContract(id, reason);
148
+ console.log(`āš ļø Dispute Registered! Status: ${contract.status.toUpperCase()}`);
149
+ console.log(` • Escrow frozen.`);
150
+ console.log(` • Awaiting counterparty acceptance to proceed to platform arbitration (Loser-Pays rule active).\n`);
151
+ }
152
+ export async function handleContractDisputeAccept(id) {
153
+ const credentials = loadCredentials();
154
+ const client = new AgenticPoolClient({ credentials });
155
+ console.log(`\nšŸ¤ Accepting Dispute Arbitration for Contract '${id}' as '${credentials.agentName}'...`);
156
+ const contract = await client.acceptDispute(id);
157
+ console.log(`āš–ļø Arbitration Accepted! Status: ${contract.status.toUpperCase()}`);
158
+ console.log(` • Both parties have agreed to arbitration.`);
159
+ console.log(` • Ready for platform arbitrator execution (dispute fee: šŸŖ™ ${contract.pricing.disputeCostGduck} GDUCK to platform treasury).\n`);
160
+ }
161
+ export async function handleContractArbitrate(id, verdict, rationale) {
162
+ const credentials = loadCredentials();
163
+ const client = new AgenticPoolClient({ credentials });
164
+ console.log(`\nāš–ļø Arbitrating Disputed Contract '${id}' as '${credentials.agentName}'...`);
165
+ const settlement = await client.arbitrateContract(id, {
166
+ arbitrator: credentials.agentName,
167
+ verdict,
168
+ rationale,
169
+ });
170
+ console.log(`\n======================================================`);
171
+ console.log(`šŸ›ļø Arbitration Settlement (Loser-Pays Enforced)`);
172
+ console.log(`======================================================`);
173
+ console.log(`šŸ†” Contract ID: ${settlement.contractId}`);
174
+ console.log(`āš–ļø Verdict: ${settlement.verdict.toUpperCase()}`);
175
+ console.log(`šŸ‘Øā€āš–ļø Arbitrator: ${settlement.arbitrator}`);
176
+ console.log(`šŸ“ Rationale: ${settlement.rationale}`);
177
+ console.log(`------------------------------------------------------`);
178
+ console.log(`šŸ’ø Worker Payout: šŸŖ™ ${settlement.workerPayoutGduck} GDUCK`);
179
+ console.log(`šŸ›”ļø Requester Refund: šŸŖ™ ${settlement.requesterRefundGduck} GDUCK`);
180
+ console.log(`šŸ’„ Dispute Fee Paid By: šŸ‘¤ ${settlement.disputeFeePaidBy} (šŸŖ™ ${settlement.disputeFeeAmountGduck} GDUCK)`);
181
+ console.log(`šŸŒ‘ Worker Plomo Delta: +${settlement.workerPlomoDelta}`);
182
+ console.log(`šŸŒ‘ Requester Plomo Delta: +${settlement.requesterPlomoDelta}`);
183
+ if (settlement.recommenderPlomoDelta > 0) {
184
+ console.log(`šŸŒ‘ Recommender Slashed: +${settlement.recommenderPlomoDelta} Plomo`);
185
+ }
186
+ console.log(`======================================================\n`);
187
+ }
188
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/commands/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export declare function handleRequestFavor(options: {
2
+ target: string;
3
+ service: string;
4
+ message: string;
5
+ price?: number;
6
+ }): Promise<void>;
7
+ export declare function handleDisputeFavor(options: {
8
+ target: string;
9
+ service: string;
10
+ amount: number;
11
+ reason: string;
12
+ taskId?: string;
13
+ }): Promise<void>;
14
+ export declare function handleReviewTask(options: {
15
+ taskId: string;
16
+ worker: string;
17
+ outcome: 'satisfied' | 'rejected' | 'disputed' | 'fraud';
18
+ feedback?: string;
19
+ recommender?: string;
20
+ }): Promise<void>;
21
+ //# sourceMappingURL=favor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"favor.d.ts","sourceRoot":"","sources":["../../src/commands/favor.ts"],"names":[],"mappings":"AAIA,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuHhB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BhB"}
@@ -0,0 +1,144 @@
1
+ import { loadCredentials } from '../config.js';
2
+ import { AgenticPoolClient } from '../client.js';
3
+ import { DuckiesLedger } from '../economy/duckies.js';
4
+ export async function handleRequestFavor(options) {
5
+ const credentials = loadCredentials();
6
+ const client = new AgenticPoolClient({ credentials });
7
+ const ledger = new DuckiesLedger();
8
+ const priceDuckies = options.price ?? 5.0;
9
+ console.log(`\nšŸ¤ Requesting Agentic Favor...`);
10
+ console.log(`=========================================`);
11
+ console.log(`šŸŽÆ Target Agent: ${options.target}`);
12
+ console.log(`šŸ†” Service ID: ${options.service}`);
13
+ console.log(`šŸ’° Agreed Price: ${priceDuckies} DUCKIES`);
14
+ console.log(`šŸ’¬ Favor Request: "${options.message}"`);
15
+ // 1. Lock Duckies in Escrow
16
+ try {
17
+ ledger.lockEscrow(credentials.agentName, options.target, priceDuckies, options.service);
18
+ console.log(`šŸ”’ Locked ${priceDuckies} DUCKIES in local escrow.`);
19
+ }
20
+ catch (err) {
21
+ const msg = err instanceof Error ? err.message : String(err);
22
+ console.error(`\nāŒ Escrow lock failed: ${msg}`);
23
+ return;
24
+ }
25
+ // 2. Delegate Favor to Target Agent
26
+ try {
27
+ console.log(`šŸ“” Sending task to agent '${options.target}'...`);
28
+ const resp = await client.requestFavor(options.target, options.message);
29
+ const task = resp?.result || resp;
30
+ const taskState = task?.status?.state || 'completed';
31
+ const reply = task?.status?.message?.parts?.[0]?.text;
32
+ // 3. Anti-Fraud Output Validation
33
+ const validation = ledger.validateOutput(reply);
34
+ if (taskState === 'completed' && validation.valid) {
35
+ // Settle Escrow (with 3% burn fee)
36
+ const { payment, burn, payout } = ledger.settleEscrow(credentials.agentName, options.target, priceDuckies, options.service, task?.id);
37
+ console.log(`\nšŸŽ‰ Favor Completed Successfully!`);
38
+ console.log(`šŸ’ø ${payment.amount} DUCKIES settled:`);
39
+ console.log(` ā”œā”€ Worker received: ${payout.amount} DUCKIES`);
40
+ console.log(` └─ Network burn fee: ${burn.amount} DUCKIES (3% anti-wash fee burned)`);
41
+ console.log(`\nšŸ“¬ Result from '${options.target}':`);
42
+ console.log(`-----------------------------------------`);
43
+ console.log(reply);
44
+ console.log(`-----------------------------------------\n`);
45
+ // 4. Proof-of-Execution: Record +1 Duckie de Goma on Trust Graph via Task Review
46
+ if (task?.id) {
47
+ try {
48
+ await client.reviewTask(task.id, {
49
+ outcome: 'satisfied',
50
+ worker: options.target,
51
+ feedback: 'Favor delivered and validated',
52
+ });
53
+ console.log(`šŸ¦† +1 Duckie de Goma awarded to '${options.target}' on the Trust Graph!`);
54
+ }
55
+ catch {
56
+ // Non-blocking if gateway offline during local test
57
+ }
58
+ }
59
+ }
60
+ else {
61
+ const reason = !validation.valid ? validation.reason : `Task state was '${taskState}'`;
62
+ // Open Dispute / Refund Escrow
63
+ ledger.openDispute(credentials.agentName, options.target, priceDuckies, options.service, reason, task?.id);
64
+ ledger.refundEscrow(credentials.agentName, options.target, priceDuckies, options.service, reason);
65
+ console.log(`\nāš ļø Favor rejected by anti-fraud check (${reason}).`);
66
+ console.log(`šŸ›”ļø Escrow refunded to '${credentials.agentName}'.`);
67
+ if (task?.id) {
68
+ try {
69
+ await client.reviewTask(task.id, {
70
+ outcome: 'fraud',
71
+ worker: options.target,
72
+ feedback: reason,
73
+ });
74
+ console.log(`šŸŒ‘ Duckies de Plomo assessed to '${options.target}' on the Trust Graph.`);
75
+ }
76
+ catch {
77
+ // Non-blocking
78
+ }
79
+ }
80
+ }
81
+ }
82
+ catch (err) {
83
+ ledger.refundEscrow(credentials.agentName, options.target, priceDuckies, options.service, 'Network or execution error');
84
+ const msg = err instanceof Error ? err.message : String(err);
85
+ console.error(`\nāŒ Delegation error: ${msg}. Escrow refunded.`);
86
+ }
87
+ }
88
+ export async function handleDisputeFavor(options) {
89
+ const credentials = loadCredentials();
90
+ const ledger = new DuckiesLedger();
91
+ const client = new AgenticPoolClient({ credentials });
92
+ const dispute = ledger.openDispute(credentials.agentName, options.target, options.amount, options.service, options.reason, options.taskId);
93
+ console.log(`\nāš–ļø Dispute Opened!`);
94
+ console.log(`=========================================`);
95
+ console.log(`šŸ†” Dispute ID: ${dispute.id}`);
96
+ console.log(`šŸŽÆ Target Agent: ${options.target}`);
97
+ console.log(`šŸ’° Amount: ${options.amount} DUCKIES`);
98
+ console.log(`šŸ“ Reason: ${options.reason}`);
99
+ console.log(`ā³ Status: ${dispute.status}`);
100
+ if (options.taskId) {
101
+ try {
102
+ await client.reviewTask(options.taskId, {
103
+ outcome: 'disputed',
104
+ worker: options.target,
105
+ feedback: options.reason,
106
+ });
107
+ console.log(`āš–ļø Task review recorded on Trust Graph for task '${options.taskId}'.`);
108
+ }
109
+ catch {
110
+ // Non-blocking
111
+ }
112
+ }
113
+ }
114
+ export async function handleReviewTask(options) {
115
+ const credentials = loadCredentials();
116
+ const client = new AgenticPoolClient({ credentials });
117
+ console.log(`\nšŸ“ Submitting Task Review for '${options.taskId}'...`);
118
+ try {
119
+ const res = await client.reviewTask(options.taskId, {
120
+ outcome: options.outcome,
121
+ worker: options.worker,
122
+ feedback: options.feedback,
123
+ recommender: options.recommender,
124
+ });
125
+ console.log(`\nāœ… Task Review Processed (Proof-of-Execution):`);
126
+ console.log(`=========================================`);
127
+ console.log(`šŸ†” Task ID: ${res.taskId}`);
128
+ console.log(`šŸ“Š Outcome: ${res.outcome.toUpperCase()}`);
129
+ console.log(`šŸ¦† Goma Awarded: +${res.gomaAwarded}`);
130
+ console.log(`šŸŒ‘ Plomo Assessed: +${res.plomoAssessed}`);
131
+ console.log(`šŸ‘¤ Evaluator: ${res.edgeUpdated.fromAgent}`);
132
+ console.log(`šŸŽÆ Worker: ${res.edgeUpdated.toAgent}`);
133
+ console.log(`šŸ“ˆ New Edge Goma: šŸ¦† ${res.edgeUpdated.goma} | šŸŒ‘ ${res.edgeUpdated.plomo.toFixed(1)}`);
134
+ if (res.recommenderEdgeUpdated) {
135
+ console.log(`⭐ Recommender (${options.recommender}) Edge Updated: šŸ¦† ${res.recommenderEdgeUpdated.recomGoma} Recom Goma`);
136
+ }
137
+ console.log(`=========================================\n`);
138
+ }
139
+ catch (err) {
140
+ const msg = err instanceof Error ? err.message : String(err);
141
+ console.error(`āŒ Failed to submit task review: ${msg}`);
142
+ }
143
+ }
144
+ //# sourceMappingURL=favor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"favor.js","sourceRoot":"","sources":["../../src/commands/favor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function handleInit(options: {
2
+ name?: string;
3
+ force?: boolean;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA,wBAAsB,UAAU,CAAC,OAAO,EAAE;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6EhB"}
@@ -0,0 +1,77 @@
1
+ import * as crypto from 'node:crypto';
2
+ import { generateAgentKeys, saveCredentials, isInitialized, DEFAULT_GATEWAY_URL, DEFAULT_CREDENTIALS_FILE } from '../config.js';
3
+ import { DuckiesLedger, INITIAL_FAUCET_AMOUNT } from '../economy/duckies.js';
4
+ export async function handleInit(options) {
5
+ if (isInitialized() && !options.force) {
6
+ console.log(`āš ļø AgenticPool is already initialized on this machine.`);
7
+ console.log(`Use --force to overwrite local credentials at ${DEFAULT_CREDENTIALS_FILE}.`);
8
+ return;
9
+ }
10
+ const agentName = options.name || `agent-${crypto.randomBytes(4).toString('hex')}`;
11
+ const gatewayUrl = DEFAULT_GATEWAY_URL;
12
+ const apiKey = `agp_${crypto.randomBytes(16).toString('hex')}`;
13
+ const keys = generateAgentKeys();
14
+ // Check if agent name is already registered on the gateway
15
+ try {
16
+ const checkRes = await fetch(`${gatewayUrl}/v1/agents/${agentName}`);
17
+ if (checkRes.ok) {
18
+ const existingCard = (await checkRes.json());
19
+ if (existingCard?.publicKey && existingCard.publicKey !== keys.signingPublicKey) {
20
+ console.error(`\nāŒ Error: Agent name '${agentName}' is already registered on AgenticPool by another keypair.`);
21
+ console.error(`šŸ‘‰ Please choose a unique name (e.g. '${agentName}-2' or '${agentName}-bot') using:`);
22
+ console.error(` agenticpool init --name <unique_name>\n`);
23
+ return;
24
+ }
25
+ }
26
+ }
27
+ catch (_err) {
28
+ // Network check optional / offline fallback
29
+ }
30
+ const credentials = {
31
+ agentId: `ap_id_${crypto.randomBytes(8).toString('hex')}`,
32
+ agentName,
33
+ apiKey,
34
+ signingPublicKey: keys.signingPublicKey,
35
+ signingPrivateKey: keys.signingPrivateKey,
36
+ encryptionPublicKey: keys.encryptionPublicKey,
37
+ encryptionPrivateKey: keys.encryptionPrivateKey,
38
+ gatewayUrl,
39
+ registeredAt: new Date().toISOString(),
40
+ };
41
+ // Register agent on the platform gateway
42
+ try {
43
+ await fetch(`${gatewayUrl}/v1/agents`, {
44
+ method: 'POST',
45
+ headers: { 'Content-Type': 'application/json' },
46
+ body: JSON.stringify({
47
+ name: agentName,
48
+ url: `${gatewayUrl}/agents/${agentName}`,
49
+ version: '0.1.0',
50
+ capabilities: { streaming: true },
51
+ defaultInputModes: ['application/json', 'text/plain'],
52
+ defaultOutputModes: ['application/json', 'text/plain'],
53
+ skills: [],
54
+ services: [],
55
+ publicKey: keys.signingPublicKey,
56
+ encryptionKey: keys.encryptionPublicKey,
57
+ }),
58
+ });
59
+ }
60
+ catch (_err) {
61
+ // Local registration still recorded
62
+ }
63
+ saveCredentials(credentials);
64
+ // Grant initial starter Duckies
65
+ const ledger = new DuckiesLedger();
66
+ ledger.grantStarterDuckies(agentName, INITIAL_FAUCET_AMOUNT);
67
+ console.log(`\nšŸŽ‰ AgenticPool.net Account Initialized!`);
68
+ console.log(`=========================================`);
69
+ console.log(`šŸ¤– Agent Name: ${credentials.agentName}`);
70
+ console.log(`šŸ†” Agent ID: ${credentials.agentId}`);
71
+ console.log(`🌐 Gateway API: ${credentials.gatewayUrl}`);
72
+ console.log(`šŸ”‘ Public Key: ${credentials.signingPublicKey.slice(0, 16)}...`);
73
+ console.log(`šŸ’° Starter Duckies: ${INITIAL_FAUCET_AMOUNT} DUCKIES`);
74
+ console.log(`šŸ“ Credentials saved: ~/.agenticpool/credentials.json\n`);
75
+ console.log(`šŸ‘‰ Run 'agenticpool whoami' or 'agenticpool balance' to get started.\n`);
76
+ }
77
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function handleReputation(targetAgentName?: string): Promise<void>;
2
+ //# sourceMappingURL=reputation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reputation.d.ts","sourceRoot":"","sources":["../../src/commands/reputation.ts"],"names":[],"mappings":"AAGA,wBAAsB,gBAAgB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC9E"}
@@ -0,0 +1,38 @@
1
+ import { loadCredentials } from '../config.js';
2
+ import { DuckiesLedger } from '../economy/duckies.js';
3
+ export async function handleReputation(targetAgentName) {
4
+ const credentials = loadCredentials();
5
+ const agentName = targetAgentName || credentials.agentName;
6
+ const ledger = new DuckiesLedger();
7
+ const rep = ledger.getReputation(agentName);
8
+ const disputes = ledger.getDisputes(agentName);
9
+ let badge = '⚪';
10
+ if (rep.trustTier === 'gold')
11
+ badge = 'šŸ„‡';
12
+ else if (rep.trustTier === 'silver')
13
+ badge = '🄈';
14
+ else if (rep.trustTier === 'bronze')
15
+ badge = 'šŸ„‰';
16
+ console.log(`\n${badge} Reputation & Trust Profile: '${agentName}'`);
17
+ console.log(`=========================================`);
18
+ console.log(`⭐ Trust Tier: ${badge} ${rep.trustTier.toUpperCase()}`);
19
+ console.log(`šŸ“Š Reputation Score: ${rep.score} / 100`);
20
+ console.log(`šŸŽÆ Completion Rate: ${(rep.completionRate * 100).toFixed(1)}%`);
21
+ console.log(`āœ… Completed Favors: ${rep.completedFavors}`);
22
+ console.log(`āš ļø Disputed Favors: ${rep.disputedFavors}`);
23
+ console.log(`🚫 Canceled Favors: ${rep.canceledFavors}`);
24
+ console.log(`šŸ’° Total Volume: ${rep.totalVolumeDuckies.toFixed(2)} DUCKIES\n`);
25
+ if (disputes.length > 0) {
26
+ console.log(`āš–ļø Dispute History (${disputes.length} records):`);
27
+ console.log(`-----------------------------------------`);
28
+ for (const d of disputes) {
29
+ console.log(`• [${d.id}] Status: ${d.status}`);
30
+ console.log(` Requester: ${d.fromAgent} ──> Worker: ${d.targetAgent}`);
31
+ console.log(` Amount: ${d.amount} DUCKIES`);
32
+ console.log(` Reason: ${d.reason}`);
33
+ console.log(`-----------------------------------------`);
34
+ }
35
+ console.log('');
36
+ }
37
+ }
38
+ //# sourceMappingURL=reputation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reputation.js","sourceRoot":"","sources":["../../src/commands/reputation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,eAAwB;IAC7D,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,eAAe,IAAI,WAAW,CAAC,SAAS,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAE/C,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM;QAAE,KAAK,GAAG,IAAI,CAAC;SACtC,IAAI,GAAG,CAAC,SAAS,KAAK,QAAQ;QAAE,KAAK,GAAG,IAAI,CAAC;SAC7C,IAAI,GAAG,CAAC,SAAS,KAAK,QAAQ;QAAE,KAAK,GAAG,IAAI,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,iCAAiC,SAAS,GAAG,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAEnF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function handleServe(options: {
2
+ port?: number;
3
+ serviceId?: string;
4
+ serviceName?: string;
5
+ price?: number;
6
+ }): Promise<void>;
7
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HhB"}