@senpi/runtime 3.0.6-dev.runtime-phase-2.20260627082846 → 3.0.6-dev.runtime-phase-2.20260630134307

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 (66) hide show
  1. package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
  2. package/dist/actions/close-position/close-position.action.js +95 -65
  3. package/dist/actions/close-position/close-position.action.js.map +1 -1
  4. package/dist/actions/decision-engine.d.ts.map +1 -1
  5. package/dist/actions/decision-engine.js +40 -28
  6. package/dist/actions/decision-engine.js.map +1 -1
  7. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  8. package/dist/actions/open-position/open-position.action.js +261 -202
  9. package/dist/actions/open-position/open-position.action.js.map +1 -1
  10. package/dist/dsl/monitor/create-monitor.d.ts +3 -0
  11. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
  12. package/dist/dsl/monitor/create-monitor.js +76 -28
  13. package/dist/dsl/monitor/create-monitor.js.map +1 -1
  14. package/dist/dsl/monitor/process-one-position.d.ts +2 -1
  15. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  16. package/dist/dsl/monitor/process-one-position.js +84 -38
  17. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  18. package/dist/dsl/plugin/index.d.ts +2 -0
  19. package/dist/dsl/plugin/index.d.ts.map +1 -1
  20. package/dist/dsl/plugin/index.js +6 -2
  21. package/dist/dsl/plugin/index.js.map +1 -1
  22. package/dist/dsl/plugin/options.d.ts +3 -0
  23. package/dist/dsl/plugin/options.d.ts.map +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +7 -12
  26. package/dist/index.js.map +1 -1
  27. package/dist/runtime/create-actions.d.ts.map +1 -1
  28. package/dist/runtime/create-actions.js +40 -5
  29. package/dist/runtime/create-actions.js.map +1 -1
  30. package/dist/runtime/create-scanner-module.d.ts +2 -1
  31. package/dist/runtime/create-scanner-module.d.ts.map +1 -1
  32. package/dist/runtime/create-scanner-module.js +2 -1
  33. package/dist/runtime/create-scanner-module.js.map +1 -1
  34. package/dist/runtime/runtime.d.ts +10 -0
  35. package/dist/runtime/runtime.d.ts.map +1 -1
  36. package/dist/runtime/runtime.js +143 -73
  37. package/dist/runtime/runtime.js.map +1 -1
  38. package/dist/scanners/engine/data-providers.d.ts +3 -0
  39. package/dist/scanners/engine/data-providers.d.ts.map +1 -1
  40. package/dist/scanners/engine/data-providers.js.map +1 -1
  41. package/dist/scanners/engine/engine.d.ts +18 -0
  42. package/dist/scanners/engine/engine.d.ts.map +1 -1
  43. package/dist/scanners/engine/engine.js +93 -2
  44. package/dist/scanners/engine/engine.js.map +1 -1
  45. package/dist/scanners/engine/input-resolver.d.ts.map +1 -1
  46. package/dist/scanners/engine/input-resolver.js +9 -7
  47. package/dist/scanners/engine/input-resolver.js.map +1 -1
  48. package/dist/scanners/runtime-module.d.ts +3 -0
  49. package/dist/scanners/runtime-module.d.ts.map +1 -1
  50. package/dist/scanners/runtime-module.js +1 -0
  51. package/dist/scanners/runtime-module.js.map +1 -1
  52. package/dist/telemetry/otel-sdk.d.ts +105 -0
  53. package/dist/telemetry/otel-sdk.d.ts.map +1 -0
  54. package/dist/telemetry/otel-sdk.js +268 -0
  55. package/dist/telemetry/otel-sdk.js.map +1 -0
  56. package/dist/telemetry/trace-identity.d.ts +31 -0
  57. package/dist/telemetry/trace-identity.d.ts.map +1 -0
  58. package/dist/telemetry/trace-identity.js +58 -0
  59. package/dist/telemetry/trace-identity.js.map +1 -0
  60. package/dist/telemetry/tracing.d.ts +32 -0
  61. package/dist/telemetry/tracing.d.ts.map +1 -0
  62. package/dist/telemetry/tracing.js +70 -0
  63. package/dist/telemetry/tracing.js.map +1 -0
  64. package/dist/types/scanner.d.ts +2 -0
  65. package/dist/types/scanner.d.ts.map +1 -1
  66. package/package.json +6 -2
@@ -9,6 +9,8 @@ import { createLogger } from '../../utils/logger.js';
9
9
  import { positionRegistryKey } from '../../tracking/position-id-registry.js';
10
10
  import { resolveOpenOrderType, resolveFeeOptimizedLimitOptions } from '../../utils/resolve-order-type.js';
11
11
  import { emitTrackingDecision, emitTrackingActionResult, emitOrderPlaced, emitOrderFilled, emitOrderFailed } from '../tracking-helpers.js';
12
+ import { withSpan } from '../../telemetry/tracing.js';
13
+ import { SpanStatusCode } from '@opentelemetry/api';
12
14
  const logger = createLogger("[actions][open-position]");
13
15
  /** Hyperliquid minimum notional value (margin × leverage) required to open a position. */
14
16
  const MIN_NOTIONAL_VALUE = 10;
@@ -324,238 +326,295 @@ export class OpenPositionAction {
324
326
  let submittedCount = 0;
325
327
  let failedCount = 0;
326
328
  for (const signal of sorted) {
327
- // Telemetry: per-signal work window — every result entry below carries startedAt/endedAt.
328
- const signalStartedAt = Date.now();
329
329
  const asset = signal.asset;
330
330
  const direction = signal.direction;
331
331
  const signalScore = signal.score;
332
- const signalDex = signal.dex;
333
- const submittedDex = typeof signalDex === "string" && signalDex.trim() !== "" ? signalDex.trim() : "main";
334
- const dexForLookup = submittedDex === "main" ? undefined : submittedDex;
335
- if (remainingSlots <= 0) {
336
- results.push({ asset, direction, dex: submittedDex, score: signalScore, success: true, reason: 'no_slots', startedAt: signalStartedAt, endedAt: Date.now() });
337
- continue;
338
- }
339
- if (!direction || (direction !== 'LONG' && direction !== 'SHORT')) {
340
- results.push({ asset, direction, dex: submittedDex, score: signalScore, success: false, reason: 'invalid_direction', startedAt: signalStartedAt, endedAt: Date.now() });
341
- failedCount++;
342
- continue;
343
- }
344
- if (strategyState.hasOpenPosition(asset, dexForLookup)) {
345
- results.push({ asset, direction, dex: submittedDex, score: signalScore, success: true, reason: 'position_already_exists', startedAt: signalStartedAt, endedAt: Date.now() });
346
- continue;
347
- }
348
- // Risk guard per-open (real-time via MCP, with per-asset cooldown)
349
- const gate = await this.context.riskGuard.checkGate(address, { candidateAsset: asset });
350
- if (gate.gate !== 'OPEN') {
351
- results.push({ asset, direction, dex: submittedDex, score: signalScore, success: true, reason: `risk_gate_${gate.gate}`, startedAt: signalStartedAt, endedAt: Date.now() });
352
- continue;
353
- }
354
- // Leverage: LLM override > config-based resolution
355
- const llmLeverage = typeof signal.leverage === 'number' ? signal.leverage : undefined;
356
- const maxLeverage = await this.context.maxLeverageCache.get(asset, address) ?? 20;
357
- const leverage = llmLeverage != null && llmLeverage > 0
358
- ? Math.max(MIN_LEVERAGE, Math.min(llmLeverage, maxLeverage))
359
- : resolveLeverage({
360
- tradingRisk: strategyState.config.tradingRisk,
361
- maxLeverage,
362
- defaultLeverage: strategyState.config.defaultLeverage,
363
- leverageMultipliers: strategyState.config.leverageMultipliers,
332
+ await withSpan("signal.evaluation", {
333
+ "senpi.signal.asset": asset,
334
+ "senpi.signal.direction": direction,
335
+ ...(typeof signalScore === "number" ? { "senpi.signal.score": signalScore } : {}),
336
+ }, async (span) => {
337
+ // Terminal outcome on this candidate's span. A failed result also shows red.
338
+ const outcome = (result, reason) => {
339
+ span.setAttribute("senpi.outcome.result", result);
340
+ span.setAttribute("senpi.outcome.reason_code", reason);
341
+ if (result === "failed")
342
+ span.setStatus({ code: SpanStatusCode.ERROR, message: reason });
343
+ };
344
+ // Telemetry: per-signal work window — every result entry below carries startedAt/endedAt.
345
+ const signalStartedAt = Date.now();
346
+ const signalDex = signal.dex;
347
+ const submittedDex = typeof signalDex === "string" && signalDex.trim() !== "" ? signalDex.trim() : "main";
348
+ const dexForLookup = submittedDex === "main" ? undefined : submittedDex;
349
+ if (remainingSlots <= 0) {
350
+ results.push({ asset, direction, dex: submittedDex, score: signalScore, success: true, reason: 'no_slots', startedAt: signalStartedAt, endedAt: Date.now() });
351
+ outcome("skipped", 'no_slots');
352
+ return;
353
+ }
354
+ if (!direction || (direction !== 'LONG' && direction !== 'SHORT')) {
355
+ results.push({ asset, direction, dex: submittedDex, score: signalScore, success: false, reason: 'invalid_direction', startedAt: signalStartedAt, endedAt: Date.now() });
356
+ failedCount++;
357
+ outcome("failed", 'invalid_direction');
358
+ return;
359
+ }
360
+ if (strategyState.hasOpenPosition(asset, dexForLookup)) {
361
+ results.push({ asset, direction, dex: submittedDex, score: signalScore, success: true, reason: 'position_already_exists', startedAt: signalStartedAt, endedAt: Date.now() });
362
+ outcome("skipped", 'position_already_exists');
363
+ return;
364
+ }
365
+ // Risk guard per-open (real-time via MCP, with per-asset cooldown)
366
+ const gate = await withSpan("risk.gate", {}, async (gateSpan) => {
367
+ const g = await this.context.riskGuard.checkGate(address, { candidateAsset: asset });
368
+ gateSpan.setAttribute("senpi.risk.gate", g.gate);
369
+ if (g.gate !== 'OPEN')
370
+ gateSpan.setStatus({ code: SpanStatusCode.ERROR, message: g.reason ?? g.gate });
371
+ return g;
364
372
  });
365
- // Margin: per-signal marginPct (% of withdrawable) > config margin_pct
366
- // > margin_per_slot > budget / slots
367
- const signalMarginPct = typeof signal.marginPct === 'number' ? signal.marginPct : undefined;
368
- const { amount: marginAmount, source: marginSource } = resolveMarginWithSource({
369
- signalMarginPct,
370
- marginPct: strategyState.config.marginPct,
371
- withdrawable,
372
- marginPerSlot: strategyState.config.marginPerSlot,
373
- budget: strategyState.config.budget,
374
- slots: strategyState.config.slots,
375
- });
376
- if (marginAmount == null || marginAmount <= 0) {
377
- logger.warn(`Skipping ${asset}: no margin source resolved. ` +
378
- `Set strategy.margin_per_slot, strategy.margin_pct, or strategy.budget + strategy.slots ` +
379
- `in the recipe, or have the LLM provide a per-signal margin override.`, {
380
- asset,
381
- wallet: address,
373
+ if (gate.gate !== 'OPEN') {
374
+ results.push({ asset, direction, dex: submittedDex, score: signalScore, success: true, reason: `risk_gate_${gate.gate}`, startedAt: signalStartedAt, endedAt: Date.now() });
375
+ outcome("skipped", `risk_gate_${gate.gate}`);
376
+ return;
377
+ }
378
+ // Leverage: LLM override > config-based resolution
379
+ const llmLeverage = typeof signal.leverage === 'number' ? signal.leverage : undefined;
380
+ const maxLeverage = await this.context.maxLeverageCache.get(asset, address) ?? 20;
381
+ const leverage = llmLeverage != null && llmLeverage > 0
382
+ ? Math.max(MIN_LEVERAGE, Math.min(llmLeverage, maxLeverage))
383
+ : resolveLeverage({
384
+ tradingRisk: strategyState.config.tradingRisk,
385
+ maxLeverage,
386
+ defaultLeverage: strategyState.config.defaultLeverage,
387
+ leverageMultipliers: strategyState.config.leverageMultipliers,
388
+ });
389
+ // Margin: per-signal marginPct (% of withdrawable) > config margin_pct
390
+ // > margin_per_slot > budget / slots
391
+ const signalMarginPct = typeof signal.marginPct === 'number' ? signal.marginPct : undefined;
392
+ const { amount: marginAmount, source: marginSource } = resolveMarginWithSource({
382
393
  signalMarginPct,
383
394
  marginPct: strategyState.config.marginPct,
395
+ withdrawable,
384
396
  marginPerSlot: strategyState.config.marginPerSlot,
385
397
  budget: strategyState.config.budget,
386
398
  slots: strategyState.config.slots,
387
- withdrawable,
388
399
  });
389
- results.push({ asset, direction, dex: submittedDex, score: signalScore, leverage, success: false, reason: 'no_margin_configured', startedAt: signalStartedAt, endedAt: Date.now() });
390
- failedCount++;
391
- continue;
392
- }
393
- const notionalValue = marginAmount * leverage;
394
- if (notionalValue < MIN_NOTIONAL_VALUE) {
395
- logger.warn(`Skipping ${asset}: notional value $${notionalValue.toFixed(2)} ` +
396
- `(margin $${marginAmount.toFixed(2)} × ${leverage}x) is below minimum $${MIN_NOTIONAL_VALUE}`);
397
- results.push({ asset, direction, dex: submittedDex, score: signalScore, leverage, marginAmount, notionalValue, success: false, reason: 'below_min_notional', startedAt: signalStartedAt, endedAt: Date.now() });
398
- failedCount++;
399
- continue;
400
- }
401
- // Free-margin pre-flight: if we know free margin and it can't cover this
402
- // position's margin, skip rather than fire a create the engine will reject
403
- // (CREATE_INSUFFICIENT_FUNDS). Skip the check when free margin is unknown.
404
- if (remainingMargin != null && remainingMargin < marginAmount) {
405
- logger.warn(`Skipping ${asset}: insufficient free margin ` +
406
- `($${remainingMargin.toFixed(2)} available < $${marginAmount.toFixed(2)} required)`);
407
- results.push({ asset, direction, dex: submittedDex, score: signalScore, leverage, marginAmount, requiredMarginAmount: marginAmount, availableMarginAmount: remainingMargin, success: true, reason: 'insufficient_margin', startedAt: signalStartedAt, endedAt: Date.now() });
408
- continue;
409
- }
410
- const signalReason = signal.reason ?? signal.signalType ?? reasoning;
411
- try {
412
- // Sizing breadcrumb: WHICH source set the margin + the numbers behind it,
413
- // so a wrong size is attributable from logs without reverse-engineering.
414
- logger.info('opening position', {
415
- wallet: address,
416
- asset,
417
- direction,
418
- source: marginSource,
419
- withdrawable,
420
- accountValue: clearinghouseView.accountValue,
421
- marginAmount,
422
- leverage,
423
- notional: notionalValue,
424
- });
425
- const result = await this.context.senpi.createPosition({
426
- strategyWalletAddress: address,
427
- orders: [
428
- {
429
- coin: asset,
400
+ if (marginAmount == null || marginAmount <= 0) {
401
+ logger.warn(`Skipping ${asset}: no margin source resolved. ` +
402
+ `Set strategy.margin_per_slot, strategy.margin_pct, or strategy.budget + strategy.slots ` +
403
+ `in the recipe, or have the LLM provide a per-signal margin override.`, {
404
+ asset,
405
+ wallet: address,
406
+ signalMarginPct,
407
+ marginPct: strategyState.config.marginPct,
408
+ marginPerSlot: strategyState.config.marginPerSlot,
409
+ budget: strategyState.config.budget,
410
+ slots: strategyState.config.slots,
411
+ withdrawable,
412
+ });
413
+ results.push({ asset, direction, dex: submittedDex, score: signalScore, leverage, success: false, reason: 'no_margin_configured', startedAt: signalStartedAt, endedAt: Date.now() });
414
+ failedCount++;
415
+ outcome("failed", 'no_margin_configured');
416
+ return;
417
+ }
418
+ const notionalValue = marginAmount * leverage;
419
+ if (notionalValue < MIN_NOTIONAL_VALUE) {
420
+ logger.warn(`Skipping ${asset}: notional value $${notionalValue.toFixed(2)} ` +
421
+ `(margin $${marginAmount.toFixed(2)} × ${leverage}x) is below minimum $${MIN_NOTIONAL_VALUE}`);
422
+ results.push({ asset, direction, dex: submittedDex, score: signalScore, leverage, marginAmount, notionalValue, success: false, reason: 'below_min_notional', startedAt: signalStartedAt, endedAt: Date.now() });
423
+ failedCount++;
424
+ outcome("failed", 'below_min_notional');
425
+ return;
426
+ }
427
+ // Free-margin pre-flight: if we know free margin and it can't cover this
428
+ // position's margin, skip rather than fire a create the engine will reject
429
+ // (CREATE_INSUFFICIENT_FUNDS). Skip the check when free margin is unknown.
430
+ if (remainingMargin != null && remainingMargin < marginAmount) {
431
+ logger.warn(`Skipping ${asset}: insufficient free margin ` +
432
+ `($${remainingMargin.toFixed(2)} available < $${marginAmount.toFixed(2)} required)`);
433
+ results.push({ asset, direction, dex: submittedDex, score: signalScore, leverage, marginAmount, requiredMarginAmount: marginAmount, availableMarginAmount: remainingMargin, success: true, reason: 'insufficient_margin', startedAt: signalStartedAt, endedAt: Date.now() });
434
+ outcome("skipped", 'insufficient_margin');
435
+ return;
436
+ }
437
+ const signalReason = signal.reason ?? signal.signalType ?? reasoning;
438
+ try {
439
+ // Sizing breadcrumb: WHICH source set the margin + the numbers behind it,
440
+ // so a wrong size is attributable from logs without reverse-engineering.
441
+ logger.info('opening position', {
442
+ wallet: address,
443
+ asset,
444
+ direction,
445
+ source: marginSource,
446
+ withdrawable,
447
+ accountValue: clearinghouseView.accountValue,
448
+ marginAmount,
449
+ leverage,
450
+ notional: notionalValue,
451
+ });
452
+ const result = await withSpan("mcp.createPosition", { "senpi.signal.asset": asset, "senpi.signal.direction": direction }, async (mcpSpan) => {
453
+ const r = await this.context.senpi.createPosition({
454
+ strategyWalletAddress: address,
455
+ orders: [
456
+ {
457
+ coin: asset,
458
+ direction,
459
+ leverage,
460
+ marginAmount,
461
+ orderType,
462
+ ...(feeOptimizedLimitOptions ? { feeOptimizedLimitOptions } : {}),
463
+ },
464
+ ],
465
+ reason: signalReason,
466
+ });
467
+ if (!r.success) {
468
+ const orderErrors = r.orders
469
+ .filter((o) => o.error)
470
+ .map((o) => `${o.coin}: ${o.error}`)
471
+ .join('; ');
472
+ const detail = r.error || orderErrors || 'unknown error';
473
+ mcpSpan.addEvent("order.failed");
474
+ mcpSpan.setStatus({ code: SpanStatusCode.ERROR, message: detail });
475
+ }
476
+ else {
477
+ const o = r.orders[0];
478
+ if (o?.orderId != null)
479
+ mcpSpan.setAttribute("senpi.order.id", o.orderId);
480
+ if (o?.filled != null)
481
+ mcpSpan.setAttribute("senpi.outcome.filled", o.filled);
482
+ if (o?.executionAsMaker != null)
483
+ mcpSpan.setAttribute("senpi.outcome.execution_as_maker", o.executionAsMaker);
484
+ if (o?.entryPrice != null)
485
+ mcpSpan.setAttribute("senpi.order.entry_price", o.entryPrice);
486
+ if (o?.size != null)
487
+ mcpSpan.setAttribute("senpi.order.size", o.size);
488
+ mcpSpan.addEvent("order.placed");
489
+ if (o?.filled)
490
+ mcpSpan.addEvent("order.filled");
491
+ }
492
+ return r;
493
+ });
494
+ if (!result.success) {
495
+ const orderErrors = result.orders
496
+ .filter((o) => o.error)
497
+ .map((o) => `${o.coin}: ${o.error}`)
498
+ .join('; ');
499
+ const detail = result.error || orderErrors || 'unknown error';
500
+ results.push({
501
+ asset, direction, dex: submittedDex, score: signalScore,
502
+ leverage, marginAmount, orderType,
503
+ success: false, reason: 'position_open_failed', error: detail,
504
+ startedAt: signalStartedAt, endedAt: Date.now(),
505
+ });
506
+ // Task 8a: the venue rejected the open submit.
507
+ emitOrderFailed(this.context.hookSystem, event, address, {
508
+ asset,
509
+ direction,
510
+ reason: 'position_open_failed',
511
+ error: detail,
512
+ reduceOnly: false,
513
+ });
514
+ failedCount++;
515
+ outcome("failed", 'position_open_failed');
516
+ return;
517
+ }
518
+ const submittedOrder = result.orders[0];
519
+ // Mint the position.id at intent — the moment the open order is submitted,
520
+ // before the position is confirmed open — so the id rides the action.open
521
+ // emit and the open trace correlates by position.id directly (no ~60s
522
+ // bridge on the read side).
523
+ let mintedPositionId;
524
+ if (this.context.positionIdRegistry) {
525
+ try {
526
+ const minted = this.context.positionIdRegistry.mintOnIntent(positionRegistryKey(address, submittedDex, asset));
527
+ mintedPositionId = minted.positionId;
528
+ }
529
+ catch (err) {
530
+ // The order is already on the exchange — a registry failure must not land in the
531
+ // outer catch, which would mislabel this submit as an exception and skip the
532
+ // slot/margin bookkeeping.
533
+ const message = err instanceof Error ? err.message : String(err);
534
+ logger.warn('position.id mint failed; continuing with submit emit', { asset, err: message });
535
+ }
536
+ }
537
+ await this.context.hookSystem.fire({
538
+ type: HOOK_EVENT.ON_OPEN_ORDER_SUBMITTED,
539
+ runtimeName: event.runtimeName,
540
+ address,
541
+ data: {
542
+ asset,
430
543
  direction,
431
544
  leverage,
432
545
  marginAmount,
433
546
  orderType,
434
- ...(feeOptimizedLimitOptions ? { feeOptimizedLimitOptions } : {}),
547
+ wallet: address,
548
+ dex: submittedDex,
549
+ reasoning: signalReason,
550
+ orderId: submittedOrder?.orderId,
551
+ entryPrice: submittedOrder?.entryPrice ?? null,
552
+ size: submittedOrder?.size ?? null,
553
+ filled: submittedOrder?.filled ?? null,
554
+ __correlationId: event.data.__correlationId,
555
+ ...(mintedPositionId ? { __positionId: mintedPositionId } : {}),
435
556
  },
436
- ],
437
- reason: signalReason,
438
- });
439
- if (!result.success) {
440
- const orderErrors = result.orders
441
- .filter((o) => o.error)
442
- .map((o) => `${o.coin}: ${o.error}`)
443
- .join('; ');
444
- const detail = result.error || orderErrors || 'unknown error';
557
+ timestamp: new Date().toISOString(),
558
+ });
445
559
  results.push({
446
560
  asset, direction, dex: submittedDex, score: signalScore,
447
561
  leverage, marginAmount, orderType,
448
- success: false, reason: 'position_open_failed', error: detail,
562
+ orderId: submittedOrder?.orderId ?? null,
563
+ entryPrice: submittedOrder?.entryPrice ?? null,
564
+ size: submittedOrder?.size ?? null,
565
+ filled: submittedOrder?.filled ?? null,
566
+ success: true, reason: 'submitted',
449
567
  startedAt: signalStartedAt, endedAt: Date.now(),
450
568
  });
451
- // Task 8a: the venue rejected the open submit.
452
- emitOrderFailed(this.context.hookSystem, event, address, {
569
+ // Task 8a order-event log (additive, fire-and-forget — see emit helpers). The open submit
570
+ // is an `order.placed`; a confirmed fill additionally emits `order.filled`.
571
+ emitOrderPlaced(this.context.hookSystem, event, address, {
572
+ orderId: submittedOrder?.orderId,
573
+ orderType,
453
574
  asset,
454
575
  direction,
455
- reason: 'position_open_failed',
456
- error: detail,
576
+ size: submittedOrder?.size,
457
577
  reduceOnly: false,
578
+ ...(mintedPositionId ? { __positionId: mintedPositionId } : {}),
458
579
  });
459
- failedCount++;
460
- continue;
461
- }
462
- const submittedOrder = result.orders[0];
463
- // Mint the position.id at intent — the moment the open order is submitted,
464
- // before the position is confirmed open — so the id rides the action.open
465
- // emit and the open trace correlates by position.id directly (no ~60s
466
- // bridge on the read side).
467
- let mintedPositionId;
468
- if (this.context.positionIdRegistry) {
469
- try {
470
- const minted = this.context.positionIdRegistry.mintOnIntent(positionRegistryKey(address, submittedDex, asset));
471
- mintedPositionId = minted.positionId;
472
- }
473
- catch (err) {
474
- // The order is already on the exchange — a registry failure must not land in the
475
- // outer catch, which would mislabel this submit as an exception and skip the
476
- // slot/margin bookkeeping.
477
- const message = err instanceof Error ? err.message : String(err);
478
- logger.warn('position.id mint failed; continuing with submit emit', { asset, err: message });
580
+ if (submittedOrder?.filled) {
581
+ emitOrderFilled(this.context.hookSystem, event, address, {
582
+ orderId: submittedOrder?.orderId,
583
+ asset,
584
+ fillPrice: submittedOrder?.entryPrice,
585
+ fillSize: submittedOrder?.size,
586
+ executionAsMaker: submittedOrder?.executionAsMaker,
587
+ ...(mintedPositionId ? { __positionId: mintedPositionId } : {}),
588
+ });
479
589
  }
590
+ submittedCount++;
591
+ remainingSlots--;
592
+ if (remainingMargin != null)
593
+ remainingMargin -= marginAmount;
594
+ outcome("submitted", 'submitted');
480
595
  }
481
- await this.context.hookSystem.fire({
482
- type: HOOK_EVENT.ON_OPEN_ORDER_SUBMITTED,
483
- runtimeName: event.runtimeName,
484
- address,
485
- data: {
596
+ catch (error) {
597
+ const message = error instanceof Error ? error.message : String(error);
598
+ logger.error('open failed', { asset, err: message });
599
+ results.push({
600
+ asset, direction, dex: submittedDex, score: signalScore,
601
+ leverage, marginAmount, orderType,
602
+ success: false, reason: 'exception', error: message,
603
+ startedAt: signalStartedAt, endedAt: Date.now(),
604
+ });
605
+ // Task 8a: the open submit threw.
606
+ emitOrderFailed(this.context.hookSystem, event, address, {
486
607
  asset,
487
608
  direction,
488
- leverage,
489
- marginAmount,
490
- orderType,
491
- wallet: address,
492
- dex: submittedDex,
493
- reasoning: signalReason,
494
- orderId: submittedOrder?.orderId,
495
- entryPrice: submittedOrder?.entryPrice ?? null,
496
- size: submittedOrder?.size ?? null,
497
- filled: submittedOrder?.filled ?? null,
498
- __correlationId: event.data.__correlationId,
499
- ...(mintedPositionId ? { __positionId: mintedPositionId } : {}),
500
- },
501
- timestamp: new Date().toISOString(),
502
- });
503
- results.push({
504
- asset, direction, dex: submittedDex, score: signalScore,
505
- leverage, marginAmount, orderType,
506
- orderId: submittedOrder?.orderId ?? null,
507
- entryPrice: submittedOrder?.entryPrice ?? null,
508
- size: submittedOrder?.size ?? null,
509
- filled: submittedOrder?.filled ?? null,
510
- success: true, reason: 'submitted',
511
- startedAt: signalStartedAt, endedAt: Date.now(),
512
- });
513
- // Task 8a order-event log (additive, fire-and-forget — see emit helpers). The open submit
514
- // is an `order.placed`; a confirmed fill additionally emits `order.filled`.
515
- emitOrderPlaced(this.context.hookSystem, event, address, {
516
- orderId: submittedOrder?.orderId,
517
- orderType,
518
- asset,
519
- direction,
520
- size: submittedOrder?.size,
521
- reduceOnly: false,
522
- ...(mintedPositionId ? { __positionId: mintedPositionId } : {}),
523
- });
524
- if (submittedOrder?.filled) {
525
- emitOrderFilled(this.context.hookSystem, event, address, {
526
- orderId: submittedOrder?.orderId,
527
- asset,
528
- fillPrice: submittedOrder?.entryPrice,
529
- fillSize: submittedOrder?.size,
530
- executionAsMaker: submittedOrder?.executionAsMaker,
531
- ...(mintedPositionId ? { __positionId: mintedPositionId } : {}),
609
+ reason: 'exception',
610
+ error: message,
611
+ errorName: error instanceof Error ? error.name : undefined,
612
+ reduceOnly: false,
532
613
  });
614
+ failedCount++;
615
+ outcome("failed", 'exception');
533
616
  }
534
- submittedCount++;
535
- remainingSlots--;
536
- if (remainingMargin != null)
537
- remainingMargin -= marginAmount;
538
- }
539
- catch (error) {
540
- const message = error instanceof Error ? error.message : String(error);
541
- logger.error('open failed', { asset, err: message });
542
- results.push({
543
- asset, direction, dex: submittedDex, score: signalScore,
544
- leverage, marginAmount, orderType,
545
- success: false, reason: 'exception', error: message,
546
- startedAt: signalStartedAt, endedAt: Date.now(),
547
- });
548
- // Task 8a: the open submit threw.
549
- emitOrderFailed(this.context.hookSystem, event, address, {
550
- asset,
551
- direction,
552
- reason: 'exception',
553
- error: message,
554
- errorName: error instanceof Error ? error.name : undefined,
555
- reduceOnly: false,
556
- });
557
- failedCount++;
558
- }
617
+ });
559
618
  }
560
619
  const skippedCount = results.length - submittedCount - failedCount;
561
620
  const actionResult = {
@@ -1 +1 @@
1
- {"version":3,"file":"open-position.action.js","sourceRoot":"","sources":["../../../src/actions/open-position/open-position.action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-position.action.js","sourceRoot":"","sources":["../../../src/actions/open-position/open-position.action.ts"],"names":[],"mappings":"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"}