@agirails/sdk 3.3.0 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/agirailsApp.d.ts +21 -1
- package/dist/api/agirailsApp.d.ts.map +1 -1
- package/dist/api/agirailsApp.js.map +1 -1
- package/dist/builders/CounterAcceptBuilder.d.ts +96 -0
- package/dist/builders/CounterAcceptBuilder.d.ts.map +1 -0
- package/dist/builders/CounterAcceptBuilder.js +226 -0
- package/dist/builders/CounterAcceptBuilder.js.map +1 -0
- package/dist/builders/CounterOfferBuilder.d.ts +143 -0
- package/dist/builders/CounterOfferBuilder.d.ts.map +1 -0
- package/dist/builders/CounterOfferBuilder.js +329 -0
- package/dist/builders/CounterOfferBuilder.js.map +1 -0
- package/dist/builders/QuoteBuilder.d.ts.map +1 -1
- package/dist/builders/QuoteBuilder.js +8 -3
- package/dist/builders/QuoteBuilder.js.map +1 -1
- package/dist/builders/index.d.ts +2 -0
- package/dist/builders/index.d.ts.map +1 -1
- package/dist/builders/index.js +7 -1
- package/dist/builders/index.js.map +1 -1
- package/dist/cli/agirails.js +22 -2
- package/dist/cli/agirails.js.map +1 -1
- package/dist/cli/commands/health.js +21 -5
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +25 -5
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/publish.d.ts +34 -0
- package/dist/cli/commands/publish.d.ts.map +1 -1
- package/dist/cli/commands/publish.js +256 -80
- package/dist/cli/commands/publish.js.map +1 -1
- package/dist/cli/commands/repair.d.ts +23 -0
- package/dist/cli/commands/repair.d.ts.map +1 -0
- package/dist/cli/commands/repair.js +210 -0
- package/dist/cli/commands/repair.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +38 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +308 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/test.js +2 -2
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/index.js +6 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config/agirailsmdV4.d.ts +46 -1
- package/dist/config/agirailsmdV4.d.ts.map +1 -1
- package/dist/config/agirailsmdV4.js +65 -8
- package/dist/config/agirailsmdV4.js.map +1 -1
- package/dist/config/defaults.d.ts +10 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +10 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/publishPipeline.d.ts +23 -1
- package/dist/config/publishPipeline.d.ts.map +1 -1
- package/dist/config/publishPipeline.js +70 -15
- package/dist/config/publishPipeline.js.map +1 -1
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -3
- package/dist/index.js.map +1 -1
- package/dist/level1/Agent.d.ts +27 -0
- package/dist/level1/Agent.d.ts.map +1 -1
- package/dist/level1/Agent.js +77 -6
- package/dist/level1/Agent.js.map +1 -1
- package/dist/negotiation/BuyerOrchestrator.d.ts +103 -1
- package/dist/negotiation/BuyerOrchestrator.d.ts.map +1 -1
- package/dist/negotiation/BuyerOrchestrator.js +499 -4
- package/dist/negotiation/BuyerOrchestrator.js.map +1 -1
- package/dist/negotiation/DecisionEngine.d.ts +69 -1
- package/dist/negotiation/DecisionEngine.d.ts.map +1 -1
- package/dist/negotiation/DecisionEngine.js +140 -1
- package/dist/negotiation/DecisionEngine.js.map +1 -1
- package/dist/negotiation/PolicyEngine.d.ts +32 -0
- package/dist/negotiation/PolicyEngine.d.ts.map +1 -1
- package/dist/negotiation/PolicyEngine.js.map +1 -1
- package/dist/negotiation/ProviderOrchestrator.d.ts +108 -0
- package/dist/negotiation/ProviderOrchestrator.d.ts.map +1 -0
- package/dist/negotiation/ProviderOrchestrator.js +136 -0
- package/dist/negotiation/ProviderOrchestrator.js.map +1 -0
- package/dist/negotiation/ProviderPolicy.d.ts +143 -0
- package/dist/negotiation/ProviderPolicy.d.ts.map +1 -0
- package/dist/negotiation/ProviderPolicy.js +207 -0
- package/dist/negotiation/ProviderPolicy.js.map +1 -0
- package/dist/negotiation/index.d.ts +8 -1
- package/dist/negotiation/index.d.ts.map +1 -1
- package/dist/negotiation/index.js +8 -1
- package/dist/negotiation/index.js.map +1 -1
- package/dist/negotiation/verifyQuoteOnChain.d.ts +58 -0
- package/dist/negotiation/verifyQuoteOnChain.d.ts.map +1 -0
- package/dist/negotiation/verifyQuoteOnChain.js +83 -0
- package/dist/negotiation/verifyQuoteOnChain.js.map +1 -0
- package/dist/runtime/BlockchainRuntime.d.ts +13 -0
- package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
- package/dist/runtime/BlockchainRuntime.js +23 -0
- package/dist/runtime/BlockchainRuntime.js.map +1 -1
- package/dist/runtime/IACTPRuntime.d.ts +35 -0
- package/dist/runtime/IACTPRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.d.ts +11 -0
- package/dist/runtime/MockRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.js +39 -0
- package/dist/runtime/MockRuntime.js.map +1 -1
- package/dist/runtime/types/MockState.d.ts +10 -0
- package/dist/runtime/types/MockState.d.ts.map +1 -1
- package/dist/runtime/types/MockState.js.map +1 -1
- package/dist/transport/QuoteChannel.d.ts +201 -0
- package/dist/transport/QuoteChannel.d.ts.map +1 -0
- package/dist/transport/QuoteChannel.js +358 -0
- package/dist/transport/QuoteChannel.js.map +1 -0
- package/dist/types/adapter.d.ts +24 -24
- package/package.json +16 -1
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `actp serve` — long-running provider daemon.
|
|
4
|
+
*
|
|
5
|
+
* Loads a ProviderPolicy JSON, constructs a ProviderOrchestrator, opens
|
|
6
|
+
* an HTTP server on the configured port that exposes the AIP-2.1 quote
|
|
7
|
+
* channel surface (`POST /quote-channel/{chainId}/{txId}` per §8.2),
|
|
8
|
+
* and routes incoming buyer counter-offers through
|
|
9
|
+
* orchestrator.evaluateCounter().
|
|
10
|
+
*
|
|
11
|
+
* Scope (v1):
|
|
12
|
+
* - accept + verify incoming counter-offers via QuoteChannelHandler
|
|
13
|
+
* - log the policy verdict (accept / reject) per round
|
|
14
|
+
* - emit a one-line health response on `GET /`
|
|
15
|
+
*
|
|
16
|
+
* Out of scope for v1 (Phase 5):
|
|
17
|
+
* - on-chain event listening (no automatic submitQuote on incoming
|
|
18
|
+
* INITIATED txs — caller still drives via Agent.ts or manual code)
|
|
19
|
+
* - sending CounterAcceptMessage back to buyer (no reverse-endpoint
|
|
20
|
+
* discovery yet — print the verdict, operator handles delivery)
|
|
21
|
+
*
|
|
22
|
+
* @module cli/commands/serve
|
|
23
|
+
*/
|
|
24
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
27
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
28
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
29
|
+
}
|
|
30
|
+
Object.defineProperty(o, k2, desc);
|
|
31
|
+
}) : (function(o, m, k, k2) {
|
|
32
|
+
if (k2 === undefined) k2 = k;
|
|
33
|
+
o[k2] = m[k];
|
|
34
|
+
}));
|
|
35
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
36
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
37
|
+
}) : function(o, v) {
|
|
38
|
+
o["default"] = v;
|
|
39
|
+
});
|
|
40
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
41
|
+
if (mod && mod.__esModule) return mod;
|
|
42
|
+
var result = {};
|
|
43
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
44
|
+
__setModuleDefault(result, mod);
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.readBody = exports.createServeCommand = void 0;
|
|
49
|
+
const commander_1 = require("commander");
|
|
50
|
+
const http_1 = require("http");
|
|
51
|
+
const fs_1 = require("fs");
|
|
52
|
+
const ethers_1 = require("ethers");
|
|
53
|
+
const output_1 = require("../utils/output");
|
|
54
|
+
const client_1 = require("../utils/client");
|
|
55
|
+
const networks_1 = require("../../config/networks");
|
|
56
|
+
const BlockchainRuntime_1 = require("../../runtime/BlockchainRuntime");
|
|
57
|
+
const MockRuntime_1 = require("../../runtime/MockRuntime");
|
|
58
|
+
const MockStateManager_1 = require("../../runtime/MockStateManager");
|
|
59
|
+
const ProviderOrchestrator_1 = require("../../negotiation/ProviderOrchestrator");
|
|
60
|
+
const QuoteChannel_1 = require("../../transport/QuoteChannel");
|
|
61
|
+
// ============================================================================
|
|
62
|
+
// Command
|
|
63
|
+
// ============================================================================
|
|
64
|
+
function createServeCommand() {
|
|
65
|
+
const cmd = new commander_1.Command('serve')
|
|
66
|
+
.description('Run a long-running provider daemon (AIP-2.1 quote channel)')
|
|
67
|
+
.requiredOption('--policy <path>', 'Path to ProviderPolicy JSON file')
|
|
68
|
+
.option('--port <num>', 'HTTP port to listen on', '8787')
|
|
69
|
+
.option('--network <name>', 'Network — base-sepolia | base-mainnet | mock', 'base-sepolia')
|
|
70
|
+
.option('--rpc <url>', 'Custom RPC URL override (testnet/mainnet only)')
|
|
71
|
+
.option('--mock', 'Run with MockRuntime instead of BlockchainRuntime (for local testing)')
|
|
72
|
+
.action(async (options) => {
|
|
73
|
+
const output = new output_1.Output('human');
|
|
74
|
+
try {
|
|
75
|
+
await runServe(options, output);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
const structured = (0, client_1.mapError)(error);
|
|
79
|
+
output.errorResult({
|
|
80
|
+
code: structured.code,
|
|
81
|
+
message: structured.message,
|
|
82
|
+
details: structured.details,
|
|
83
|
+
});
|
|
84
|
+
process.exit(output_1.ExitCode.ERROR);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
return cmd;
|
|
88
|
+
}
|
|
89
|
+
exports.createServeCommand = createServeCommand;
|
|
90
|
+
async function runServe(options, output) {
|
|
91
|
+
// 1. Load + validate policy.
|
|
92
|
+
if (!(0, fs_1.existsSync)(options.policy)) {
|
|
93
|
+
throw new Error(`Policy file not found: ${options.policy}`);
|
|
94
|
+
}
|
|
95
|
+
const policy = JSON.parse((0, fs_1.readFileSync)(options.policy, 'utf-8'));
|
|
96
|
+
// 2. Build runtime AND keep a direct signer reference for the
|
|
97
|
+
// orchestrator. BlockchainRuntime makes its signer private, so we
|
|
98
|
+
// hold ours alongside.
|
|
99
|
+
let runtime;
|
|
100
|
+
let kernelAddress;
|
|
101
|
+
let chainId;
|
|
102
|
+
let signerAddress;
|
|
103
|
+
let orchestratorSigner;
|
|
104
|
+
if (options.mock) {
|
|
105
|
+
const stateMgr = new MockStateManager_1.MockStateManager(process.cwd() + '/.actp-serve');
|
|
106
|
+
runtime = new MockRuntime_1.MockRuntime(stateMgr);
|
|
107
|
+
kernelAddress = '0x' + '0'.repeat(40);
|
|
108
|
+
chainId = 84532;
|
|
109
|
+
const mockWallet = ethers_1.Wallet.createRandom();
|
|
110
|
+
orchestratorSigner = mockWallet;
|
|
111
|
+
signerAddress = mockWallet.address;
|
|
112
|
+
output.info('Running in MOCK mode — no real on-chain interaction.');
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const networkCfg = (0, networks_1.getNetwork)(options.network);
|
|
116
|
+
if (options.rpc)
|
|
117
|
+
networkCfg.rpcUrl = options.rpc;
|
|
118
|
+
const { resolvePrivateKey } = await Promise.resolve().then(() => __importStar(require('../../wallet/keystore')));
|
|
119
|
+
const tier = options.network.includes('mainnet') ? 'mainnet'
|
|
120
|
+
: options.network.includes('sepolia') ? 'testnet' : 'mock';
|
|
121
|
+
const privateKey = await resolvePrivateKey(process.cwd(), {
|
|
122
|
+
network: tier,
|
|
123
|
+
});
|
|
124
|
+
if (!privateKey) {
|
|
125
|
+
throw new Error('No wallet found. Run `actp init` or set ACTP_KEYSTORE_BASE64.');
|
|
126
|
+
}
|
|
127
|
+
const provider = new ethers_1.JsonRpcProvider(networkCfg.rpcUrl);
|
|
128
|
+
const signer = new ethers_1.Wallet(privateKey, provider);
|
|
129
|
+
orchestratorSigner = signer;
|
|
130
|
+
runtime = new BlockchainRuntime_1.BlockchainRuntime({
|
|
131
|
+
network: options.network,
|
|
132
|
+
signer,
|
|
133
|
+
provider,
|
|
134
|
+
});
|
|
135
|
+
await runtime.initialize();
|
|
136
|
+
kernelAddress = networkCfg.contracts.actpKernel;
|
|
137
|
+
chainId = networkCfg.chainId;
|
|
138
|
+
signerAddress = await signer.getAddress();
|
|
139
|
+
}
|
|
140
|
+
const orchestrator = new ProviderOrchestrator_1.ProviderOrchestrator({
|
|
141
|
+
policy,
|
|
142
|
+
runtime,
|
|
143
|
+
signer: orchestratorSigner,
|
|
144
|
+
kernelAddress,
|
|
145
|
+
chainId,
|
|
146
|
+
});
|
|
147
|
+
// 4. Build channel handler with kernel address per chain.
|
|
148
|
+
const channelHandler = new QuoteChannel_1.QuoteChannelHandler({
|
|
149
|
+
kernelAddressByChainId: {
|
|
150
|
+
[chainId]: kernelAddress,
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
// 5. Start HTTP server.
|
|
154
|
+
const port = Number(options.port);
|
|
155
|
+
if (!Number.isFinite(port) || port < 1 || port > 65535) {
|
|
156
|
+
throw new Error(`Invalid port: ${options.port}`);
|
|
157
|
+
}
|
|
158
|
+
const server = (0, http_1.createServer)(async (req, res) => {
|
|
159
|
+
try {
|
|
160
|
+
await routeRequest(req, res, {
|
|
161
|
+
channelHandler,
|
|
162
|
+
orchestrator,
|
|
163
|
+
chainId,
|
|
164
|
+
signerAddress,
|
|
165
|
+
output,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
output.error(`Request handler crashed: ${err instanceof Error ? err.message : String(err)}`);
|
|
170
|
+
res.statusCode = 500;
|
|
171
|
+
res.end('{"error":"internal"}');
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
// Slow-loris hardening: bound the time a client can hold a socket open
|
|
175
|
+
// dribbling out a request body. Without this, `readBody` will sit in
|
|
176
|
+
// its `data` listener until the OS-level keepalive ages out.
|
|
177
|
+
// 10s for headers, 15s for the full request — generous for normal
|
|
178
|
+
// peers (a counter-offer body is well under 4 KiB), tight enough to
|
|
179
|
+
// shed slow-trickle attackers in seconds.
|
|
180
|
+
server.headersTimeout = 10000;
|
|
181
|
+
server.requestTimeout = 15000;
|
|
182
|
+
server.listen(port, () => {
|
|
183
|
+
output.success(`actp serve listening on http://0.0.0.0:${port}`);
|
|
184
|
+
output.print(` Network: ${options.network}${options.mock ? ' (mock)' : ''}`);
|
|
185
|
+
output.print(` Provider: ${signerAddress}`);
|
|
186
|
+
output.print(` Channel base: ${(0, QuoteChannel_1.buildChannelPath)(chainId, '<txId>')}`);
|
|
187
|
+
output.print(` Health: GET /`);
|
|
188
|
+
output.print('');
|
|
189
|
+
output.print('Counter-offers POSTed to /quote-channel/{chainId}/{txId} are verified + evaluated.');
|
|
190
|
+
output.print('Verdicts are logged here; v1 does NOT auto-deliver CounterAcceptMessage back to');
|
|
191
|
+
output.print('the buyer — operator handles that out-of-band (see AIP-2.1 §5.3).');
|
|
192
|
+
output.print('');
|
|
193
|
+
});
|
|
194
|
+
// Graceful shutdown.
|
|
195
|
+
const shutdown = (signal) => {
|
|
196
|
+
output.info(`\n${signal} received — shutting down…`);
|
|
197
|
+
server.close(() => {
|
|
198
|
+
output.success('Stopped.');
|
|
199
|
+
process.exit(0);
|
|
200
|
+
});
|
|
201
|
+
// Force-exit after 5s if connections hang.
|
|
202
|
+
setTimeout(() => process.exit(0), 5000).unref();
|
|
203
|
+
};
|
|
204
|
+
process.once('SIGINT', () => shutdown('SIGINT'));
|
|
205
|
+
process.once('SIGTERM', () => shutdown('SIGTERM'));
|
|
206
|
+
}
|
|
207
|
+
async function routeRequest(req, res, ctx) {
|
|
208
|
+
const url = req.url ?? '/';
|
|
209
|
+
// Health check.
|
|
210
|
+
if (req.method === 'GET' && url === '/') {
|
|
211
|
+
res.statusCode = 200;
|
|
212
|
+
res.setHeader('Content-Type', 'application/json');
|
|
213
|
+
res.end(JSON.stringify({
|
|
214
|
+
status: 'ok',
|
|
215
|
+
provider: ctx.signerAddress,
|
|
216
|
+
chainId: ctx.chainId,
|
|
217
|
+
service: 'actp-serve',
|
|
218
|
+
}));
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
// /quote-channel/{chainId}/{txId}.
|
|
222
|
+
const channelMatch = url.match(/^\/quote-channel\/(\d+)\/(0x[a-fA-F0-9]{64})\/?$/);
|
|
223
|
+
if (req.method === 'POST' && channelMatch) {
|
|
224
|
+
const [, chainIdStr, txId] = channelMatch;
|
|
225
|
+
const pathChainId = Number(chainIdStr);
|
|
226
|
+
const body = await readBody(req);
|
|
227
|
+
let payload;
|
|
228
|
+
try {
|
|
229
|
+
payload = JSON.parse(body);
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
res.statusCode = 400;
|
|
233
|
+
res.end(JSON.stringify({ accepted: false, reason: 'Invalid JSON' }));
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const result = await ctx.channelHandler.handle(payload, { pathChainId, pathTxId: txId });
|
|
237
|
+
// For counter-offers that pass the channel handler, run the
|
|
238
|
+
// orchestrator's policy verdict and log it.
|
|
239
|
+
if (result.status === 201 || result.status === 200) {
|
|
240
|
+
const p = payload;
|
|
241
|
+
if (p?.type === 'agirails.counteroffer.v1' && p.message) {
|
|
242
|
+
try {
|
|
243
|
+
const verdict = await ctx.orchestrator.evaluateCounter(p.message);
|
|
244
|
+
ctx.output.info(`[counter] tx=${txId.slice(0, 12)}… counter=${p.message.counterAmount} → ${verdict.action}: ${verdict.reason}`);
|
|
245
|
+
}
|
|
246
|
+
catch (err) {
|
|
247
|
+
ctx.output.warning(`[counter] tx=${txId.slice(0, 12)}… verification failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
res.statusCode = result.status;
|
|
252
|
+
res.setHeader('Content-Type', 'application/json');
|
|
253
|
+
res.end(JSON.stringify(result.body));
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
res.statusCode = 404;
|
|
257
|
+
res.end(JSON.stringify({ error: 'Not found' }));
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Read a request body with two hard limits — defense in depth alongside
|
|
261
|
+
* the server-level `headersTimeout` / `requestTimeout`:
|
|
262
|
+
* - byte cap (64 KiB) to bound memory
|
|
263
|
+
* - wall-clock deadline (10s) to bound time
|
|
264
|
+
*
|
|
265
|
+
* Both must be enforced here too because a caller could construct the
|
|
266
|
+
* server without our timeouts (e.g. testing with a raw http.Server) and
|
|
267
|
+
* the body cap alone won't shed a peer that sends 1 byte/sec forever.
|
|
268
|
+
*/
|
|
269
|
+
function readBody(req) {
|
|
270
|
+
return new Promise((resolve, reject) => {
|
|
271
|
+
const chunks = [];
|
|
272
|
+
let total = 0;
|
|
273
|
+
let settled = false;
|
|
274
|
+
const MAX_BYTES = 64 * 1024;
|
|
275
|
+
const MAX_MS = 10000;
|
|
276
|
+
const finish = (err, body) => {
|
|
277
|
+
if (settled)
|
|
278
|
+
return;
|
|
279
|
+
settled = true;
|
|
280
|
+
clearTimeout(deadline);
|
|
281
|
+
if (err) {
|
|
282
|
+
try {
|
|
283
|
+
req.destroy();
|
|
284
|
+
}
|
|
285
|
+
catch { /* */ }
|
|
286
|
+
reject(err);
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
resolve(body ?? '');
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
const deadline = setTimeout(() => {
|
|
293
|
+
finish(new Error('Body read timeout'));
|
|
294
|
+
}, MAX_MS);
|
|
295
|
+
req.on('data', (chunk) => {
|
|
296
|
+
total += chunk.length;
|
|
297
|
+
if (total > MAX_BYTES) {
|
|
298
|
+
finish(new Error('Body too large'));
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
chunks.push(chunk);
|
|
302
|
+
});
|
|
303
|
+
req.on('end', () => finish(null, Buffer.concat(chunks).toString('utf-8')));
|
|
304
|
+
req.on('error', (err) => finish(err));
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
exports.readBody = readBody;
|
|
308
|
+
//# sourceMappingURL=serve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,+BAAqE;AACrE,2BAA8C;AAC9C,mCAA8D;AAC9D,4CAAmD;AACnD,4CAA2C;AAC3C,oDAAmD;AACnD,uEAAoE;AACpE,2DAAwD;AACxD,qEAAkE;AAClE,iFAA8E;AAE9E,+DAGsC;AAEtC,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,SAAgB,kBAAkB;IAChC,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,OAAO,CAAC;SAC7B,WAAW,CAAC,4DAA4D,CAAC;SACzE,cAAc,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;SACrE,MAAM,CAAC,cAAc,EAAE,wBAAwB,EAAE,MAAM,CAAC;SACxD,MAAM,CAAC,kBAAkB,EAAE,8CAA8C,EAAE,cAAc,CAAC;SAC1F,MAAM,CAAC,aAAa,EAAE,gDAAgD,CAAC;SACvE,MAAM,CAAC,QAAQ,EAAE,uEAAuE,CAAC;SACzF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,IAAA,iBAAQ,EAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,WAAW,CAAC;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;aAC5B,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IACL,OAAO,GAAG,CAAC;AACb,CAAC;AAvBD,gDAuBC;AAcD,KAAK,UAAU,QAAQ,CAAC,OAAqB,EAAE,MAAc;IAC3D,6BAA6B;IAC7B,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAmB,CAAC;IAEnF,8DAA8D;IAC9D,qEAAqE;IACrE,0BAA0B;IAC1B,IAAI,OAAwC,CAAC;IAC7C,IAAI,aAAqB,CAAC;IAC1B,IAAI,OAAe,CAAC;IACpB,IAAI,aAAqB,CAAC;IAC1B,IAAI,kBAA0B,CAAC;IAE/B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,IAAI,mCAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,CAAC;QACtE,OAAO,GAAG,IAAI,yBAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,aAAa,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtC,OAAO,GAAG,KAAK,CAAC;QAChB,MAAM,UAAU,GAAG,eAAM,CAAC,YAAY,EAAE,CAAC;QACzC,kBAAkB,GAAG,UAAU,CAAC;QAChC,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,IAAA,qBAAU,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,GAAG;YAAE,UAAU,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAEjD,MAAM,EAAE,iBAAiB,EAAE,GAAG,wDAAa,uBAAuB,GAAC,CAAC;QACpE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YAC1D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7D,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE;YACxD,OAAO,EAAE,IAAsC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,wBAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAChD,kBAAkB,GAAG,MAAM,CAAC;QAC5B,OAAO,GAAG,IAAI,qCAAiB,CAAC;YAC9B,OAAO,EAAE,OAAO,CAAC,OAA0C;YAC3D,MAAM;YACN,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAE3B,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC;QAChD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAC7B,aAAa,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,2CAAoB,CAAC;QAC5C,MAAM;QACN,OAAO;QACP,MAAM,EAAE,kBAAkB;QAC1B,aAAa;QACb,OAAO;KACR,CAAC,CAAC;IAEH,0DAA0D;IAC1D,MAAM,cAAc,GAAG,IAAI,kCAAmB,CAAC;QAC7C,sBAAsB,EAAE;YACtB,CAAC,OAAO,CAAC,EAAE,aAAa;SACzB;KACF,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAM,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE;gBAC3B,cAAc;gBACd,YAAY;gBACZ,OAAO;gBACP,aAAa;gBACb,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7F,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,uEAAuE;IACvE,qEAAqE;IACrE,6DAA6D;IAC7D,kEAAkE;IAClE,oEAAoE;IACpE,0CAA0C;IAC1C,MAAM,CAAC,cAAc,GAAG,KAAM,CAAC;IAC/B,MAAM,CAAC,cAAc,GAAG,KAAM,CAAC;IAE/B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACvB,MAAM,CAAC,OAAO,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,qBAAqB,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,MAAM,CAAC,KAAK,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAA,+BAAgB,EAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjB,MAAM,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;QACnG,MAAM,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;QAChG,MAAM,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QAClF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE;QAClC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,4BAA4B,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YAChB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,2CAA2C;QAC3C,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IACnD,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAcD,KAAK,UAAU,YAAY,CACzB,GAAoB,EACpB,GAAmB,EACnB,GAAiB;IAEjB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;IAE3B,gBAAgB;IAChB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QACxC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACrB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,GAAG,CAAC,aAAa;YAC3B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC,CAAC;QACJ,OAAO;IACT,CAAC;IAED,mCAAmC;IACnC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACnF,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,YAAY,EAAE,CAAC;QAC1C,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC;QAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzF,4DAA4D;QAC5D,4CAA4C;QAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,OAAkE,CAAC;YAC7E,IAAI,CAAC,EAAE,IAAI,KAAK,0BAA0B,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACxD,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,eAAe,CACpD,CAAC,CAAC,OAAiE,CACpE,CAAC;oBACF,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,aAAa,MAAM,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAC/G,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,MAAM,CAAC,OAAO,CAChB,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9G,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;IACrB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,QAAQ,CAAC,GAAoB;IAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAM,CAAC;QAEtB,MAAM,MAAM,GAAG,CAAC,GAAiB,EAAE,IAAa,EAAE,EAAE;YAClD,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC;oBAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzC,CAAC,EAAE,MAAM,CAAC,CAAC;QAEX,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC/B,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;YACtB,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3E,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC;AAnCD,4BAmCC"}
|
|
@@ -140,7 +140,7 @@ async function runTest(output) {
|
|
|
140
140
|
// Parse identity
|
|
141
141
|
const content = fs.readFileSync(identityPath, 'utf-8');
|
|
142
142
|
const config = (0, agirailsmdV4_1.parseAgirailsMdV4)(content);
|
|
143
|
-
const testJob = (0, testjobs_1.selectTestJob)(config.services);
|
|
143
|
+
const testJob = (0, testjobs_1.selectTestJob)(config.services.map(s => s.type));
|
|
144
144
|
// Render banner + section header (human mode only)
|
|
145
145
|
if (output.mode === 'human') {
|
|
146
146
|
output.print('');
|
|
@@ -217,7 +217,7 @@ async function runTest(output) {
|
|
|
217
217
|
// Receipt
|
|
218
218
|
(0, receipt_1.renderReceipt)({
|
|
219
219
|
agent: config.name,
|
|
220
|
-
service: config.services[0],
|
|
220
|
+
service: config.services[0].type,
|
|
221
221
|
amountWei,
|
|
222
222
|
network: 'mock',
|
|
223
223
|
txId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -63,6 +63,8 @@ const find_1 = require("./commands/find");
|
|
|
63
63
|
const negotiate_1 = require("./commands/negotiate");
|
|
64
64
|
const autopublish_1 = require("./commands/autopublish");
|
|
65
65
|
const health_1 = require("./commands/health");
|
|
66
|
+
const repair_1 = require("./commands/repair");
|
|
67
|
+
const serve_1 = require("./commands/serve");
|
|
66
68
|
// ============================================================================
|
|
67
69
|
// Program Setup
|
|
68
70
|
// ============================================================================
|
|
@@ -121,6 +123,10 @@ program.addCommand((0, negotiate_1.createNegotiateCommand)());
|
|
|
121
123
|
program.addCommand((0, autopublish_1.createAutopublishCommand)());
|
|
122
124
|
// Phase 3: Health check
|
|
123
125
|
program.addCommand((0, health_1.createHealthCommand)());
|
|
126
|
+
// On-chain shape repair (drop phantom services, update endpoint, toggle flags)
|
|
127
|
+
program.addCommand((0, repair_1.createRepairCommand)());
|
|
128
|
+
// AIP-2.1 provider daemon (long-running quote-channel server)
|
|
129
|
+
program.addCommand((0, serve_1.createServeCommand)());
|
|
124
130
|
// ============================================================================
|
|
125
131
|
// Error Handling
|
|
126
132
|
// ============================================================================
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;GAaG;;AAEH,yCAAoC;AACpC,2BAAkC;AAClC,+BAA4B;AAE5B,8DAA8D;AAC9D,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,kDAAkD;QAClD,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACxD,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,kDAAkD;YAClD,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC,CAAC,qCAAqC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,kBAAkB;AAClB,0CAAoD;AACpD,wCAAkD;AAClD,sCAAgD;AAChD,gDAA0D;AAC1D,0CAAoD;AACpD,8CAAwD;AACxD,4CAAsD;AACtD,kDAA4D;AAC5D,4CAAsD;AACtD,0CAAoD;AACpD,gDAA0D;AAC1D,0CAAoD;AACpD,0CAAoD;AACpD,8CAAwD;AACxD,kDAA4D;AAC5D,sDAA+D;AAC/D,0DAAmE;AACnE,0CAAoD;AACpD,4CAAsD;AACtD,sDAA+D;AAC/D,0CAAoD;AACpD,oDAA8D;AAC9D,wDAAkE;AAClE,8CAAwD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,10 +32,55 @@ export interface AgirailsMdV4Covenant {
|
|
|
32
32
|
accepts: Record<string, string>;
|
|
33
33
|
returns: Record<string, string>;
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Per-service descriptor as it lives in {slug}.md frontmatter.
|
|
37
|
+
*
|
|
38
|
+
* Mirrors what the SDK publish pipeline (`extractRegistrationParams`)
|
|
39
|
+
* reads from each `services[]` entry to populate AgentRegistry's
|
|
40
|
+
* per-service price band on-chain. `min_price` / `max_price` are the
|
|
41
|
+
* bounds AgentRegistry enforces; `price` is the human-readable display
|
|
42
|
+
* value (kept as a string for YAML lossless round-trip).
|
|
43
|
+
*/
|
|
44
|
+
export interface AgirailsMdV4ServiceEntry {
|
|
45
|
+
type: string;
|
|
46
|
+
price?: string;
|
|
47
|
+
min_price?: number;
|
|
48
|
+
max_price?: number;
|
|
49
|
+
}
|
|
50
|
+
export type AgirailsMdV4Intent = 'earn' | 'pay' | 'both';
|
|
35
51
|
export interface AgirailsMdV4Config {
|
|
36
52
|
name: string;
|
|
37
53
|
slug: string;
|
|
38
|
-
|
|
54
|
+
/**
|
|
55
|
+
* What this agent does on the network. Defaults to 'earn'.
|
|
56
|
+
* - earn: provides services and gets paid → registered on AgentRegistry
|
|
57
|
+
* - pay: only requests services from other agents → NOT registered as
|
|
58
|
+
* provider on AgentRegistry; `services` must be empty
|
|
59
|
+
* - both: provides AND requests
|
|
60
|
+
*/
|
|
61
|
+
intent: AgirailsMdV4Intent;
|
|
62
|
+
/**
|
|
63
|
+
* Services this agent provides, normalized to objects.
|
|
64
|
+
* Legacy `services: ["code-review", ...]` (plain strings) is accepted
|
|
65
|
+
* by the parser and lifted to `[{type: "code-review"}, ...]`.
|
|
66
|
+
*
|
|
67
|
+
* For `intent: 'pay'`, this is always empty — pay-only agents do not
|
|
68
|
+
* provide services. The parser will not throw on missing services
|
|
69
|
+
* when intent is 'pay'.
|
|
70
|
+
*/
|
|
71
|
+
services: AgirailsMdV4ServiceEntry[];
|
|
72
|
+
/**
|
|
73
|
+
* Capability tags this agent wants to BUY from others. Required when
|
|
74
|
+
* intent is 'pay' or 'both'. Spec field name: `servicesNeeded`
|
|
75
|
+
* (alternate snake-case `services_needed` is also accepted).
|
|
76
|
+
*/
|
|
77
|
+
servicesNeeded: string[];
|
|
78
|
+
/**
|
|
79
|
+
* Default budget per request in USDC. Used by buyers/agents when
|
|
80
|
+
* calling `request()` without an explicit `budget`. Spec: only
|
|
81
|
+
* meaningful when intent is 'pay' or 'both'.
|
|
82
|
+
*/
|
|
83
|
+
budget?: number;
|
|
39
84
|
pricing: AgirailsMdV4Pricing;
|
|
40
85
|
network: 'mock' | 'testnet' | 'mainnet';
|
|
41
86
|
sla: AgirailsMdV4SLA;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agirailsmdV4.d.ts","sourceRoot":"","sources":["../../src/config/agirailsmdV4.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"agirailsmdV4.d.ts","sourceRoot":"","sources":["../../src/config/agirailsmdV4.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,MAAM,EAAE,kBAAkB,CAAC;IAC3B;;;;;;;;OAQG;IACH,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC;;;;OAIG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,GAAG,EAAE,eAAe,CAAC;IACrB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAGrE;AAmMD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,gBAAgB,CAkEjF"}
|
|
@@ -49,19 +49,40 @@ function buildV4Config(fm, body) {
|
|
|
49
49
|
}
|
|
50
50
|
// Slug: from YAML or generated from name
|
|
51
51
|
const slug = getString(fm, 'slug') || (0, slugUtils_1.generateSlug)(name);
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
// Intent — earn (default), pay, or both. Drives whether services are
|
|
53
|
+
// required and whether the agent registers as a provider on-chain.
|
|
54
|
+
const intentRaw = (getString(fm, 'intent') || defaults_1.V4_DEFAULTS.intent).toLowerCase();
|
|
55
|
+
const intent = defaults_1.V4_CONSTRAINTS.VALID_INTENTS.includes(intentRaw)
|
|
56
|
+
? intentRaw
|
|
57
|
+
: defaults_1.V4_DEFAULTS.intent;
|
|
58
|
+
// Services — accept both legacy ["code-review", ...] (plain strings)
|
|
59
|
+
// and canonical [{type, price, min_price, max_price}, ...] (objects).
|
|
60
|
+
// Lift everything to AgirailsMdV4ServiceEntry so downstream code has
|
|
61
|
+
// one shape to reason about. Pay-only agents may have no services.
|
|
62
|
+
const services = parseServices(fm);
|
|
63
|
+
if (services.length === 0 && intent !== 'pay') {
|
|
57
64
|
throw new Error('Missing required field: services (must be a non-empty array)');
|
|
58
65
|
}
|
|
59
|
-
//
|
|
66
|
+
// Services this agent wants to BUY. Required when intent is pay/both.
|
|
67
|
+
// Spec field: `servicesNeeded` (also accept `services_needed`).
|
|
68
|
+
let servicesNeeded = getStringArray(fm, 'servicesNeeded');
|
|
69
|
+
if (servicesNeeded.length === 0)
|
|
70
|
+
servicesNeeded = getStringArray(fm, 'services_needed');
|
|
71
|
+
if (intent !== 'earn' && servicesNeeded.length === 0) {
|
|
72
|
+
throw new Error(`Missing required field: servicesNeeded (intent: ${intent} requires at least one capability to buy)`);
|
|
73
|
+
}
|
|
74
|
+
// Default budget per request — top-level, only meaningful for pay/both.
|
|
75
|
+
const budget = getNumber(fm, 'budget');
|
|
76
|
+
// Pricing — required for earn/both (you set your selling price); for
|
|
77
|
+
// pay-only the file may legitimately omit pricing.base, in which case
|
|
78
|
+
// we fall back to the budget so downstream consumers always have a
|
|
79
|
+
// numeric anchor (UI cards, fee math, etc.).
|
|
60
80
|
const pricingRaw = getObject(fm, 'pricing');
|
|
61
|
-
const
|
|
62
|
-
if (
|
|
81
|
+
const baseRaw = getNumber(pricingRaw, 'base');
|
|
82
|
+
if (baseRaw === undefined && intent !== 'pay') {
|
|
63
83
|
throw new Error('Missing required field: pricing.base');
|
|
64
84
|
}
|
|
85
|
+
const base = baseRaw ?? budget ?? 0;
|
|
65
86
|
const pricing = {
|
|
66
87
|
base,
|
|
67
88
|
currency: 'USDC',
|
|
@@ -104,7 +125,10 @@ function buildV4Config(fm, body) {
|
|
|
104
125
|
return {
|
|
105
126
|
name,
|
|
106
127
|
slug,
|
|
128
|
+
intent,
|
|
107
129
|
services,
|
|
130
|
+
servicesNeeded,
|
|
131
|
+
budget,
|
|
108
132
|
pricing,
|
|
109
133
|
network,
|
|
110
134
|
sla,
|
|
@@ -128,6 +152,39 @@ function buildV4Config(fm, body) {
|
|
|
128
152
|
* - `howToRequest` = from that heading to next ## or EOF
|
|
129
153
|
* - If heading missing, entire body = description
|
|
130
154
|
*/
|
|
155
|
+
/**
|
|
156
|
+
* Parse `services` (or fall back to legacy `capabilities`) into a uniform
|
|
157
|
+
* AgirailsMdV4ServiceEntry[] regardless of whether the YAML used the
|
|
158
|
+
* legacy plain-string form or the canonical object form.
|
|
159
|
+
*/
|
|
160
|
+
function parseServices(fm) {
|
|
161
|
+
const raw = (Array.isArray(fm.services) && fm.services.length > 0)
|
|
162
|
+
? fm.services
|
|
163
|
+
: (Array.isArray(fm.capabilities) ? fm.capabilities : []);
|
|
164
|
+
return raw.flatMap((entry) => {
|
|
165
|
+
if (typeof entry === 'string') {
|
|
166
|
+
const type = entry.trim();
|
|
167
|
+
return type ? [{ type }] : [];
|
|
168
|
+
}
|
|
169
|
+
if (entry && typeof entry === 'object') {
|
|
170
|
+
const obj = entry;
|
|
171
|
+
const type = String(obj.type ?? obj.service_type ?? '').trim();
|
|
172
|
+
if (!type)
|
|
173
|
+
return [];
|
|
174
|
+
const out = { type };
|
|
175
|
+
if (obj.price !== undefined)
|
|
176
|
+
out.price = String(obj.price);
|
|
177
|
+
if (obj.min_price !== undefined && Number.isFinite(Number(obj.min_price))) {
|
|
178
|
+
out.min_price = Number(obj.min_price);
|
|
179
|
+
}
|
|
180
|
+
if (obj.max_price !== undefined && Number.isFinite(Number(obj.max_price))) {
|
|
181
|
+
out.max_price = Number(obj.max_price);
|
|
182
|
+
}
|
|
183
|
+
return [out];
|
|
184
|
+
}
|
|
185
|
+
return [];
|
|
186
|
+
});
|
|
187
|
+
}
|
|
131
188
|
function parseBody(body) {
|
|
132
189
|
const heading = defaults_1.V4_CONSTRAINTS.HOW_TO_REQUEST_HEADING;
|
|
133
190
|
const idx = body.indexOf(heading);
|