@agirails/sdk 3.4.1 → 4.0.0-beta.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 (107) hide show
  1. package/dist/builders/QuoteBuilder.d.ts +9 -3
  2. package/dist/builders/QuoteBuilder.d.ts.map +1 -1
  3. package/dist/builders/QuoteBuilder.js +14 -3
  4. package/dist/builders/QuoteBuilder.js.map +1 -1
  5. package/dist/cli/agirails.d.ts +4 -1
  6. package/dist/cli/agirails.d.ts.map +1 -1
  7. package/dist/cli/agirails.js +34 -2
  8. package/dist/cli/agirails.js.map +1 -1
  9. package/dist/cli/commands/agent.d.ts +22 -0
  10. package/dist/cli/commands/agent.d.ts.map +1 -0
  11. package/dist/cli/commands/agent.js +250 -0
  12. package/dist/cli/commands/agent.js.map +1 -0
  13. package/dist/cli/commands/pay.d.ts +7 -0
  14. package/dist/cli/commands/pay.d.ts.map +1 -1
  15. package/dist/cli/commands/pay.js +34 -1
  16. package/dist/cli/commands/pay.js.map +1 -1
  17. package/dist/cli/commands/request.d.ts +19 -0
  18. package/dist/cli/commands/request.d.ts.map +1 -0
  19. package/dist/cli/commands/request.js +167 -0
  20. package/dist/cli/commands/request.js.map +1 -0
  21. package/dist/cli/commands/serve.d.ts +12 -7
  22. package/dist/cli/commands/serve.d.ts.map +1 -1
  23. package/dist/cli/commands/serve.js +12 -7
  24. package/dist/cli/commands/serve.js.map +1 -1
  25. package/dist/cli/commands/test.d.ts +22 -4
  26. package/dist/cli/commands/test.d.ts.map +1 -1
  27. package/dist/cli/commands/test.js +139 -292
  28. package/dist/cli/commands/test.js.map +1 -1
  29. package/dist/cli/commands/tx.js +13 -0
  30. package/dist/cli/commands/tx.js.map +1 -1
  31. package/dist/cli/index.js +10 -1
  32. package/dist/cli/index.js.map +1 -1
  33. package/dist/cli/lib/resolveAgent.d.ts +67 -0
  34. package/dist/cli/lib/resolveAgent.d.ts.map +1 -0
  35. package/dist/cli/lib/resolveAgent.js +121 -0
  36. package/dist/cli/lib/resolveAgent.js.map +1 -0
  37. package/dist/cli/lib/runRequest.d.ts +114 -0
  38. package/dist/cli/lib/runRequest.d.ts.map +1 -0
  39. package/dist/cli/lib/runRequest.js +324 -0
  40. package/dist/cli/lib/runRequest.js.map +1 -0
  41. package/dist/cli/lib/serviceNameForHash.d.ts +48 -0
  42. package/dist/cli/lib/serviceNameForHash.d.ts.map +1 -0
  43. package/dist/cli/lib/serviceNameForHash.js +62 -0
  44. package/dist/cli/lib/serviceNameForHash.js.map +1 -0
  45. package/dist/config/networks.d.ts.map +1 -1
  46. package/dist/config/networks.js +7 -1
  47. package/dist/config/networks.js.map +1 -1
  48. package/dist/index.d.ts +6 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +12 -2
  51. package/dist/index.js.map +1 -1
  52. package/dist/level0/request.d.ts.map +1 -1
  53. package/dist/level0/request.js +18 -6
  54. package/dist/level0/request.js.map +1 -1
  55. package/dist/level1/Agent.d.ts +72 -8
  56. package/dist/level1/Agent.d.ts.map +1 -1
  57. package/dist/level1/Agent.js +243 -111
  58. package/dist/level1/Agent.js.map +1 -1
  59. package/dist/negotiation/BuyerOrchestrator.d.ts +73 -61
  60. package/dist/negotiation/BuyerOrchestrator.d.ts.map +1 -1
  61. package/dist/negotiation/BuyerOrchestrator.js +421 -381
  62. package/dist/negotiation/BuyerOrchestrator.js.map +1 -1
  63. package/dist/negotiation/MockChannel.d.ts +63 -0
  64. package/dist/negotiation/MockChannel.d.ts.map +1 -0
  65. package/dist/negotiation/MockChannel.js +175 -0
  66. package/dist/negotiation/MockChannel.js.map +1 -0
  67. package/dist/negotiation/NegotiationChannel.d.ts +142 -0
  68. package/dist/negotiation/NegotiationChannel.d.ts.map +1 -0
  69. package/dist/negotiation/NegotiationChannel.js +59 -0
  70. package/dist/negotiation/NegotiationChannel.js.map +1 -0
  71. package/dist/negotiation/ProviderOrchestrator.d.ts +85 -35
  72. package/dist/negotiation/ProviderOrchestrator.d.ts.map +1 -1
  73. package/dist/negotiation/ProviderOrchestrator.js +199 -49
  74. package/dist/negotiation/ProviderOrchestrator.js.map +1 -1
  75. package/dist/negotiation/ProviderPolicy.d.ts +51 -6
  76. package/dist/negotiation/ProviderPolicy.d.ts.map +1 -1
  77. package/dist/negotiation/ProviderPolicy.js +61 -9
  78. package/dist/negotiation/ProviderPolicy.js.map +1 -1
  79. package/dist/negotiation/RelayChannel.d.ts +59 -0
  80. package/dist/negotiation/RelayChannel.d.ts.map +1 -0
  81. package/dist/negotiation/RelayChannel.js +208 -0
  82. package/dist/negotiation/RelayChannel.js.map +1 -0
  83. package/dist/protocol/ACTPKernel.d.ts.map +1 -1
  84. package/dist/protocol/ACTPKernel.js +51 -1
  85. package/dist/protocol/ACTPKernel.js.map +1 -1
  86. package/dist/protocol/EventMonitor.d.ts +26 -1
  87. package/dist/protocol/EventMonitor.d.ts.map +1 -1
  88. package/dist/protocol/EventMonitor.js +18 -4
  89. package/dist/protocol/EventMonitor.js.map +1 -1
  90. package/dist/runtime/BlockchainRuntime.d.ts +73 -0
  91. package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
  92. package/dist/runtime/BlockchainRuntime.js +131 -3
  93. package/dist/runtime/BlockchainRuntime.js.map +1 -1
  94. package/dist/runtime/IACTPRuntime.d.ts +29 -0
  95. package/dist/runtime/IACTPRuntime.d.ts.map +1 -1
  96. package/dist/runtime/MockRuntime.d.ts.map +1 -1
  97. package/dist/runtime/MockRuntime.js +21 -4
  98. package/dist/runtime/MockRuntime.js.map +1 -1
  99. package/dist/runtime/MockStateManager.d.ts.map +1 -1
  100. package/dist/runtime/MockStateManager.js +18 -0
  101. package/dist/runtime/MockStateManager.js.map +1 -1
  102. package/dist/runtime/types/MockState.d.ts +12 -0
  103. package/dist/runtime/types/MockState.d.ts.map +1 -1
  104. package/dist/runtime/types/MockState.js.map +1 -1
  105. package/dist/types/agent.d.ts +6 -1
  106. package/dist/types/agent.d.ts.map +1 -1
  107. package/package.json +2 -1
@@ -83,6 +83,13 @@ class Agent extends events_1.EventEmitter {
83
83
  * Registered services
84
84
  */
85
85
  this.services = new Map();
86
+ /**
87
+ * Hash-keyed mirror of `services`, populated alongside it in `provide()`.
88
+ * Key: `keccak256(toUtf8Bytes(name)).toLowerCase()`. Lookups match
89
+ * on-chain `tx.serviceHash` directly so BlockchainRuntime-sourced jobs
90
+ * route without depending on string `serviceDescription`. PRD §5.4.
91
+ */
92
+ this.handlersByHash = new Map();
86
93
  /**
87
94
  * Active jobs
88
95
  *
@@ -173,6 +180,15 @@ class Agent extends events_1.EventEmitter {
173
180
  * @throws {AgentLifecycleError} If agent is not in idle or stopped state
174
181
  */
175
182
  async start() {
183
+ // PRD §5.3: idempotent start. Calling start() on a running or paused
184
+ // agent is a logged noop instead of a thrown AgentLifecycleError. This
185
+ // is a behavior change from 3.5.3 — see CHANGELOG / MIGRATION-4.0.
186
+ if (this._status === 'running' || this._status === 'paused') {
187
+ this.logger.warn('Agent.start() called on already-started agent — noop', {
188
+ status: this._status,
189
+ });
190
+ return;
191
+ }
176
192
  if (this._status !== 'idle' && this._status !== 'stopped') {
177
193
  throw new errors_1.AgentLifecycleError(this._status, 'start');
178
194
  }
@@ -195,10 +211,16 @@ class Agent extends events_1.EventEmitter {
195
211
  rpcUrl,
196
212
  });
197
213
  this.startPolling();
214
+ this.subscribeIfBlockchain();
198
215
  this._status = 'running';
199
216
  this.emit('started');
200
217
  }
201
218
  catch (error) {
219
+ // PRD §5.3: a partial start (e.g. polling started, subscription threw,
220
+ // or ACTPClient.create rejected) must not leak the polling timer or
221
+ // a live subscription. Clean both before propagating.
222
+ this.stopPolling();
223
+ this.unsubscribe();
202
224
  this._status = 'stopped';
203
225
  this.emit('error', error);
204
226
  throw error;
@@ -215,8 +237,9 @@ class Agent extends events_1.EventEmitter {
215
237
  }
216
238
  this._status = 'stopping';
217
239
  this.emit('stopping');
218
- // Stop polling
240
+ // Stop polling + tear down subscription. PRD §5.3.
219
241
  this.stopPolling();
242
+ this.unsubscribe();
220
243
  // Wait for active jobs to complete (with timeout)
221
244
  await this.waitForActiveJobs(30000); // 30s timeout
222
245
  this._status = 'stopped';
@@ -226,29 +249,85 @@ class Agent extends events_1.EventEmitter {
226
249
  /**
227
250
  * Pause the agent
228
251
  *
229
- * Stops accepting new jobs but keeps active jobs running.
252
+ * Stops accepting new jobs but keeps active jobs running. PRD §5.3:
253
+ * pause() now tears down the on-chain subscription as well — a paused
254
+ * agent must not silently keep dispatching jobs via the live event path.
255
+ * Behavior change from 3.5.3 (was a silent bug); see CHANGELOG /
256
+ * MIGRATION-4.0 bullet 4 for drain-on-pause migration guidance.
230
257
  */
231
258
  pause() {
232
259
  if (this._status !== 'running') {
233
260
  throw new errors_1.AgentLifecycleError(this._status, 'pause');
234
261
  }
235
262
  this.stopPolling();
263
+ this.unsubscribe();
236
264
  this._status = 'paused';
237
265
  this.emit('paused');
238
266
  }
239
267
  /**
240
268
  * Resume the agent
241
269
  *
242
- * Resumes accepting new jobs after being paused.
270
+ * Resumes accepting new jobs after being paused. PRD §5.3: re-establishes
271
+ * the on-chain subscription that pause() tore down.
243
272
  */
244
273
  resume() {
245
274
  if (this._status !== 'paused') {
246
275
  throw new errors_1.AgentLifecycleError(this._status, 'resume');
247
276
  }
248
- this.startPolling();
277
+ // PRD §5.3.1: same partial-failure shape as start() — if subscription
278
+ // wiring throws after the polling timer is armed, tear both down before
279
+ // propagating so the agent doesn't leak a live timer while still in
280
+ // 'paused' status. Without this, the next resume() call would short-
281
+ // circuit on the state check and the orphaned timer would survive.
282
+ try {
283
+ this.startPolling();
284
+ this.subscribeIfBlockchain();
285
+ }
286
+ catch (err) {
287
+ this.stopPolling();
288
+ this.unsubscribe();
289
+ throw err;
290
+ }
249
291
  this._status = 'running';
250
292
  this.emit('resumed');
251
293
  }
294
+ /**
295
+ * Subscribe to live TransactionCreated events when the underlying runtime
296
+ * supports it (currently `BlockchainRuntime` only — `MockRuntime` providers
297
+ * receive jobs through polling). Idempotent: if a subscription is already
298
+ * active, this is a logged noop so a second `start()` on an already-running
299
+ * agent doesn't leak event listeners. PRD §5.3.
300
+ */
301
+ subscribeIfBlockchain() {
302
+ if (this.jobSubscriptionCleanup) {
303
+ this.logger.warn('Agent: subscription already active, refusing to double-subscribe');
304
+ return;
305
+ }
306
+ const runtime = this._client?.runtime;
307
+ if (!runtime || typeof runtime.subscribeProviderJobs !== 'function') {
308
+ return;
309
+ }
310
+ this.jobSubscriptionCleanup = runtime.subscribeProviderJobs(this.address, (tx) => {
311
+ this.handleIncomingTransaction(tx).catch((err) => this.emit('error', err));
312
+ });
313
+ this.logger.info('Subscribed to on-chain TransactionCreated events', {
314
+ provider: this.address,
315
+ });
316
+ }
317
+ /**
318
+ * Tear down a live subscription if one is active. Idempotent. PRD §5.3.
319
+ */
320
+ unsubscribe() {
321
+ if (this.jobSubscriptionCleanup) {
322
+ try {
323
+ this.jobSubscriptionCleanup();
324
+ }
325
+ catch (err) {
326
+ this.logger.warn('Subscription cleanup threw — continuing', { err });
327
+ }
328
+ this.jobSubscriptionCleanup = undefined;
329
+ }
330
+ }
252
331
  /**
253
332
  * Restart the agent
254
333
  */
@@ -300,7 +379,13 @@ class Agent extends events_1.EventEmitter {
300
379
  if (this.services.has(config.name)) {
301
380
  throw new errors_1.ServiceConfigError('name', `Service "${config.name}" already registered`);
302
381
  }
382
+ // PRD §5.4: derive the on-chain routing key alongside the string key.
383
+ // Same formula used by `actp request --service <name>` (see PRD §A.1 +
384
+ // AgentRegistry.computeServiceTypeHash), so BlockchainRuntime jobs match
385
+ // the same handler that MockRuntime tests register.
386
+ const hashKey = ethers_1.ethers.keccak256(ethers_1.ethers.toUtf8Bytes(config.name)).toLowerCase();
303
387
  this.services.set(config.name, { config, handler });
388
+ this.handlersByHash.set(hashKey, { config, handler });
304
389
  this.emit('service:registered', config.name);
305
390
  this.logger.info('Service registered', { service: config.name });
306
391
  return this;
@@ -506,101 +591,18 @@ class Agent extends events_1.EventEmitter {
506
591
  }
507
592
  try {
508
593
  // Security: Use filtered query instead of getAllTransactions
509
- // This prevents DoS via memory exhaustion by only fetching relevant transactions
510
- let pendingJobs = [];
511
- // Check if runtime has the filtered query method
512
- if ('getTransactionsByProvider' in this._client.runtime) {
513
- // Use optimized filtered query (max 100 jobs per poll)
514
- pendingJobs = await this._client.runtime.getTransactionsByProvider(this.address, 'INITIATED', 100);
515
- }
516
- else {
517
- // Fallback to getAllTransactions (for older runtime versions)
518
- const allTransactions = await this._client.runtime.getAllTransactions();
519
- pendingJobs = allTransactions.filter((tx) => tx.provider === this.address && tx.state === 'INITIATED');
520
- }
594
+ // This prevents DoS via memory exhaustion by only fetching relevant transactions.
595
+ // PRD §5.1: getTransactionsByProvider is now required on IACTPRuntime —
596
+ // the prior duck-type fallback to getAllTransactions is gone.
597
+ const pendingJobs = await this._client.runtime.getTransactionsByProvider(this.address, 'INITIATED', 100);
521
598
  this.logger.debug('Polling for jobs', {
522
599
  pendingJobs: pendingJobs.length,
523
600
  });
524
- // Process each pending job
601
+ // Process each pending job through the shared acceptance pipeline so
602
+ // poll and subscription paths converge on identical semantics
603
+ // (dedup, provider check, routing, auto-accept, linkEscrow, emit).
525
604
  for (const tx of pendingJobs) {
526
- try {
527
- // Security: Check processingLocks first (atomic check)
528
- // This prevents race conditions where two poll cycles both try to process
529
- // the same job before either transitions the state
530
- if (this.processingLocks.has(tx.id) || this.processedJobs.has(tx.id)) {
531
- continue;
532
- }
533
- // IMMEDIATELY acquire lock (atomic in single-threaded JS)
534
- this.processingLocks.add(tx.id);
535
- // Security: Check if already in active jobs (LRUCache handles size limit)
536
- if (this.activeJobs.has(tx.id)) {
537
- this.processingLocks.delete(tx.id);
538
- continue;
539
- }
540
- // Security: Verify this agent is authorized to accept this transaction
541
- // Check that tx.provider matches our address (prevents unauthorized state transitions)
542
- if (tx.provider !== this.address) {
543
- this.logger.warn('Unauthorized transaction detected', {
544
- txId: tx.id,
545
- expectedProvider: this.address,
546
- actualProvider: tx.provider,
547
- });
548
- this.processingLocks.delete(tx.id);
549
- continue;
550
- }
551
- // Find matching service handler
552
- const serviceHandler = this.findServiceHandler(tx);
553
- if (!serviceHandler) {
554
- // No handler registered for this service type
555
- this.logger.debug('No handler for transaction', { txId: tx.id });
556
- this.processingLocks.delete(tx.id);
557
- continue;
558
- }
559
- // Check auto-accept behavior
560
- const shouldAccept = await this.shouldAutoAccept(tx);
561
- if (!shouldAccept) {
562
- this.logger.debug('Auto-accept declined', { txId: tx.id });
563
- this.processingLocks.delete(tx.id);
564
- continue;
565
- }
566
- // Create Job object from transaction
567
- const job = this.createJobFromTransaction(tx);
568
- // Security: Add to active jobs (LRUCache prevents unbounded growth)
569
- this.activeJobs.set(job.id, job);
570
- // Link escrow immediately to transition out of INITIATED state
571
- // This prevents polling from picking up this job again
572
- try {
573
- if (this._client && tx.state === 'INITIATED') {
574
- await this._client.runtime.linkEscrow(tx.id, tx.amount);
575
- }
576
- // Successfully processed - mark as processed and release lock
577
- this.processedJobs.set(job.id, true);
578
- }
579
- catch (escrowError) {
580
- // If linking escrow fails, remove from active jobs and release lock (allow retry)
581
- this.activeJobs.delete(job.id);
582
- this.logger.error('Failed to link escrow', { txId: tx.id }, escrowError);
583
- this.processingLocks.delete(tx.id);
584
- continue;
585
- }
586
- finally {
587
- // Always release the lock
588
- this.processingLocks.delete(tx.id);
589
- }
590
- this._stats.jobsReceived++;
591
- this.emit('job:received', job);
592
- this.logger.info('Job accepted', { jobId: job.id, service: job.service });
593
- // Process the job asynchronously (don't await here to continue polling)
594
- this.processJob(job, serviceHandler.handler).catch((error) => {
595
- this.logger.error('Job processing failed', { jobId: job.id }, error);
596
- this.emit('error', error);
597
- });
598
- }
599
- catch (error) {
600
- // Log error but continue processing other jobs
601
- this.logger.error('Error processing pending job', { txId: tx.id }, error);
602
- this.emit('error', error);
603
- }
605
+ await this.handleIncomingTransaction(tx);
604
606
  }
605
607
  // Update cached balance (non-blocking, don't await)
606
608
  this.getBalanceAsync().catch(() => {
@@ -613,19 +615,137 @@ class Agent extends events_1.EventEmitter {
613
615
  this.emit('error', error);
614
616
  }
615
617
  }
618
+ /**
619
+ * Shared per-transaction acceptance pipeline. Reached from two sources:
620
+ * - `pollForJobs` — bounded sweep over INITIATED transactions
621
+ * - `subscribeIfBlockchain` — live `TransactionCreated` events
622
+ *
623
+ * Atomic in single-threaded JS via `processingLocks` (Set). The lock
624
+ * release is in a `finally` so any error/throw — handler dispatch
625
+ * failure, linkEscrow revert, malformed payload — does not permanently
626
+ * occupy the slot. Poison TXs become re-tryable on the next sweep.
627
+ *
628
+ * Errors are emitted to consumers but never propagated; the caller loop
629
+ * must not be killed by a single bad TX. PRD §5.3.
630
+ */
631
+ async handleIncomingTransaction(tx) {
632
+ // PRD §5.3.1: lifecycle status guard. Async polls and queued subscription
633
+ // callbacks can race with pause() / stop(). Drop the TX rather than
634
+ // accepting a new job into a paused or terminating agent.
635
+ //
636
+ // 'starting' is allowed: the subscription is wired inside start() before
637
+ // _status flips to 'running', and a fast on-chain event could fire in
638
+ // that window — dropping it would lose work.
639
+ if (this._status !== 'running' &&
640
+ this._status !== 'starting') {
641
+ this.logger.debug('Agent not accepting jobs, dropping incoming tx', {
642
+ txId: tx.id,
643
+ status: this._status,
644
+ });
645
+ return;
646
+ }
647
+ // Security: check dedup before acquiring the lock so a TX that finished
648
+ // on a prior pass returns immediately without disturbing state.
649
+ if (this.processingLocks.has(tx.id) || this.processedJobs.has(tx.id))
650
+ return;
651
+ if (this.activeJobs.has(tx.id))
652
+ return;
653
+ // Acquire lock (atomic in single-threaded JS). Released in finally below.
654
+ this.processingLocks.add(tx.id);
655
+ try {
656
+ // Authorization: TX provider must match this agent. Case-insensitive
657
+ // (PRD §5.3 carry-forward from §5.1 review): EventMonitor + runtime
658
+ // already normalize, but checksummed and lowercase forms can both
659
+ // reach here legitimately.
660
+ if (tx.provider.toLowerCase() !== this.address.toLowerCase()) {
661
+ this.logger.warn('Unauthorized transaction detected', {
662
+ txId: tx.id,
663
+ expectedProvider: this.address,
664
+ actualProvider: tx.provider,
665
+ });
666
+ return;
667
+ }
668
+ // Routing (PRD §5.4): hash-first, string fallback.
669
+ const serviceHandler = this.findServiceHandler(tx);
670
+ if (!serviceHandler) {
671
+ this.logger.debug('No handler for transaction', { txId: tx.id });
672
+ return;
673
+ }
674
+ // Auto-accept evaluation. PRD §5.4.1: thread the matched handler so
675
+ // every Job built inside filter/pricing/autoAccept paths carries the
676
+ // correct service name.
677
+ const shouldAccept = await this.shouldAutoAccept(tx, serviceHandler);
678
+ if (!shouldAccept) {
679
+ this.logger.debug('Auto-accept declined', { txId: tx.id });
680
+ return;
681
+ }
682
+ // Build Job using the matched handler so hash-only TXs carry the
683
+ // registered service name. PRD §5.4.1.
684
+ const job = this.createJobFromTransaction(tx, serviceHandler);
685
+ this.activeJobs.set(job.id, job);
686
+ // Link escrow immediately to transition out of INITIATED state.
687
+ // This prevents the next poll / event from picking up this job again.
688
+ try {
689
+ if (this._client && tx.state === 'INITIATED') {
690
+ await this._client.runtime.linkEscrow(tx.id, tx.amount);
691
+ }
692
+ this.processedJobs.set(job.id, true);
693
+ }
694
+ catch (escrowError) {
695
+ this.activeJobs.delete(job.id);
696
+ this.logger.error('Failed to link escrow', { txId: tx.id }, escrowError);
697
+ return;
698
+ }
699
+ this._stats.jobsReceived++;
700
+ this.emit('job:received', job);
701
+ this.logger.info('Job accepted', { jobId: job.id, service: job.service });
702
+ // Process the job asynchronously (don't await — handler runs out-of-band).
703
+ this.processJob(job, serviceHandler.handler).catch((error) => {
704
+ this.logger.error('Job processing failed', { jobId: job.id }, error);
705
+ this.emit('error', error);
706
+ });
707
+ }
708
+ catch (error) {
709
+ this.logger.error('Error processing pending job', { txId: tx.id }, error);
710
+ this.emit('error', error);
711
+ }
712
+ finally {
713
+ this.processingLocks.delete(tx.id);
714
+ }
715
+ }
616
716
  /**
617
717
  * Find service handler for a transaction
618
718
  *
619
719
  *Security: Use exact field matching instead of substring search
620
720
  * to prevent service routing spoofing attacks.
621
721
  *
622
- * Supports multiple formats (in priority order):
623
- * 1. JSON: {"service":"name","input":...} - new structured format
624
- * 2. Legacy: "service:name;input:..." - backward compatibility
625
- * 3. Plain string exact match - simple service name
626
- * 4. bytes32 hash - on-chain only (requires off-chain lookup)
722
+ * Dispatch order:
723
+ * PRIMARY (PRD §5.4 on-chain Layer B):
724
+ * Match by `tx.serviceHash` against the `handlersByHash` map.
725
+ * Skips ZeroHash (Level 0 `pay` semantics no handler routing).
726
+ * FALLBACK (preserves MockRuntime test fixtures + legacy clients):
727
+ * 5-step `serviceDescription` dispatch — JSON / legacy /
728
+ * hash-only / string exact match.
627
729
  */
628
730
  findServiceHandler(tx) {
731
+ // PRIMARY: on-chain hash routing (PRD §5.4).
732
+ const hash = typeof tx?.serviceHash === 'string' ? tx.serviceHash.toLowerCase() : undefined;
733
+ if (hash && hash !== ethers_1.ethers.ZeroHash.toLowerCase()) {
734
+ const byHash = this.handlersByHash.get(hash);
735
+ if (byHash)
736
+ return byHash;
737
+ }
738
+ // FALLBACK: existing 5-step string dispatch.
739
+ return this.findServiceHandlerByString(tx);
740
+ }
741
+ /**
742
+ * Legacy string-based service dispatch — kept as a fallback for
743
+ * MockRuntime-style transactions where `serviceDescription` still carries
744
+ * the JSON / legacy / plain-name shape. PRD §5.4 routes by hash first;
745
+ * this method is only reached when the hash branch misses or the TX has
746
+ * `serviceHash === ZeroHash`.
747
+ */
748
+ findServiceHandlerByString(tx) {
629
749
  const serviceDesc = tx.serviceDescription;
630
750
  if (!serviceDesc) {
631
751
  return undefined;
@@ -683,9 +803,11 @@ class Agent extends events_1.EventEmitter {
683
803
  * - Evaluates pricing strategy if configured
684
804
  * - Only accepts jobs that meet pricing requirements
685
805
  */
686
- async shouldAutoAccept(tx) {
687
- // Get the service config for this transaction
688
- const serviceHandler = this.findServiceHandler(tx);
806
+ async shouldAutoAccept(tx, matched) {
807
+ // PRD §5.4.1: prefer the matched handler supplied by the caller so the
808
+ // hash-routed `config.name` flows into every internal Job object built
809
+ // below. Re-derive only when caller didn't pass it.
810
+ const serviceHandler = matched ?? this.findServiceHandler(tx);
689
811
  // Check service-level filters first (budget constraints)
690
812
  if (serviceHandler?.config.filter) {
691
813
  const filter = serviceHandler.config.filter;
@@ -712,7 +834,7 @@ class Agent extends events_1.EventEmitter {
712
834
  }
713
835
  // Check custom filter function
714
836
  if (filter.custom && typeof filter.custom === 'function') {
715
- const job = this.createJobFromTransaction(tx);
837
+ const job = this.createJobFromTransaction(tx, serviceHandler);
716
838
  const customResult = await filter.custom(job);
717
839
  if (!customResult) {
718
840
  this.logger.debug('Job rejected: custom filter declined', { txId: tx.id });
@@ -722,7 +844,7 @@ class Agent extends events_1.EventEmitter {
722
844
  }
723
845
  // If filter is a function (legacy support)
724
846
  else if (typeof filter === 'function') {
725
- const job = this.createJobFromTransaction(tx);
847
+ const job = this.createJobFromTransaction(tx, serviceHandler);
726
848
  const filterResult = filter(job);
727
849
  if (!filterResult) {
728
850
  this.logger.debug('Job rejected: filter function declined', { txId: tx.id });
@@ -733,7 +855,7 @@ class Agent extends events_1.EventEmitter {
733
855
  // MVP: Check pricing strategy if configured
734
856
  if (serviceHandler?.config.pricing) {
735
857
  const { calculatePrice } = await Promise.resolve().then(() => __importStar(require('./pricing/PriceCalculator')));
736
- const job = this.createJobFromTransaction(tx);
858
+ const job = this.createJobFromTransaction(tx, serviceHandler);
737
859
  try {
738
860
  const calculation = calculatePrice(serviceHandler.config.pricing, job);
739
861
  this.logger.debug('Pricing calculation', {
@@ -792,7 +914,7 @@ class Agent extends events_1.EventEmitter {
792
914
  serviceType: this.findServiceTypeForTx(tx),
793
915
  currency: 'USDC',
794
916
  unit: 'job',
795
- }, `did:ethr:${chainId}:${this.address}`, undefined);
917
+ }, `did:ethr:${chainId}:${this.address}`);
796
918
  this.logger.info('AIP-2.1 quote submitted via ProviderOrchestrator', {
797
919
  txId: tx.id,
798
920
  action: result.decision.action,
@@ -838,18 +960,28 @@ class Agent extends events_1.EventEmitter {
838
960
  }
839
961
  // It's a function - evaluate it
840
962
  if (typeof autoAccept === 'function') {
841
- const job = this.createJobFromTransaction(tx);
963
+ const job = this.createJobFromTransaction(tx, serviceHandler);
842
964
  return await autoAccept(job);
843
965
  }
844
966
  return false;
845
967
  }
846
968
  /**
847
- * Create Job object from MockTransaction
969
+ * Create Job object from MockTransaction.
970
+ *
971
+ * `matched` is the handler entry returned by `findServiceHandler(tx)`.
972
+ * When supplied, `job.service` is taken from `matched.config.name` —
973
+ * this is the only correct source for hash-only TXs (BlockchainRuntime),
974
+ * where `serviceDescription` is empty and `extractServiceName(tx)` would
975
+ * return `'unknown'`. PRD §5.4.1.
976
+ *
977
+ * When `matched` is not supplied (e.g. shouldAutoAccept's autoAccept
978
+ * callback path before this commit, MockRuntime-only test fixtures),
979
+ * fall back to the legacy `extractServiceName` so behavior is unchanged.
848
980
  */
849
- createJobFromTransaction(tx) {
981
+ createJobFromTransaction(tx, matched) {
850
982
  return {
851
983
  id: tx.id,
852
- service: this.extractServiceName(tx),
984
+ service: matched?.config.name ?? this.extractServiceName(tx),
853
985
  input: this.extractJobInput(tx),
854
986
  budget: this.convertAmountToNumber(tx.amount),
855
987
  deadline: new Date(tx.deadline * 1000), // Convert unix timestamp to Date
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/level1/Agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/level1/Agent.ts"],"names":[],"mappings":"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"}