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

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 (177) hide show
  1. package/dist/actions/close-position/close-position.action.d.ts +1 -1
  2. package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
  3. package/dist/actions/close-position/close-position.action.js +15 -14
  4. package/dist/actions/close-position/close-position.action.js.map +1 -1
  5. package/dist/actions/event-derivation.d.ts +60 -0
  6. package/dist/actions/event-derivation.d.ts.map +1 -0
  7. package/dist/actions/event-derivation.js +179 -0
  8. package/dist/actions/event-derivation.js.map +1 -0
  9. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts +5 -9
  10. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts.map +1 -1
  11. package/dist/actions/llm-decision/anthropic-llm-decision.js +6 -87
  12. package/dist/actions/llm-decision/anthropic-llm-decision.js.map +1 -1
  13. package/dist/actions/llm-decision/factory.d.ts +0 -6
  14. package/dist/actions/llm-decision/factory.d.ts.map +1 -1
  15. package/dist/actions/llm-decision/factory.js +0 -2
  16. package/dist/actions/llm-decision/factory.js.map +1 -1
  17. package/dist/actions/llm-decision/openclaw-llm-decision.d.ts.map +1 -1
  18. package/dist/actions/llm-decision/openclaw-llm-decision.js +21 -2
  19. package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -1
  20. package/dist/actions/open-position/open-position.action.d.ts +1 -1
  21. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  22. package/dist/actions/open-position/open-position.action.js +28 -21
  23. package/dist/actions/open-position/open-position.action.js.map +1 -1
  24. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
  25. package/dist/actions/position-tracker/position-tracker.action.js +2 -4
  26. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
  27. package/dist/actions/tracking-helpers.d.ts +41 -3
  28. package/dist/actions/tracking-helpers.d.ts.map +1 -1
  29. package/dist/actions/tracking-helpers.js +100 -11
  30. package/dist/actions/tracking-helpers.js.map +1 -1
  31. package/dist/dsl/plugin/index.d.ts +8 -0
  32. package/dist/dsl/plugin/index.d.ts.map +1 -1
  33. package/dist/dsl/plugin/index.js +36 -2
  34. package/dist/dsl/plugin/index.js.map +1 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +28 -13
  37. package/dist/index.js.map +1 -1
  38. package/dist/recording/otel/attributes.d.ts +2 -0
  39. package/dist/recording/otel/attributes.d.ts.map +1 -1
  40. package/dist/recording/otel/attributes.js +1 -1
  41. package/dist/recording/otel/attributes.js.map +1 -1
  42. package/dist/recording/otel/mappers.d.ts.map +1 -1
  43. package/dist/recording/otel/mappers.js +1 -0
  44. package/dist/recording/otel/mappers.js.map +1 -1
  45. package/dist/recording/records.d.ts +7 -1
  46. package/dist/recording/records.d.ts.map +1 -1
  47. package/dist/recording/wiring/emitter-factory.d.ts +0 -5
  48. package/dist/recording/wiring/emitter-factory.d.ts.map +1 -1
  49. package/dist/recording/wiring/emitter-factory.js +0 -18
  50. package/dist/recording/wiring/emitter-factory.js.map +1 -1
  51. package/dist/recording/wiring/index.d.ts +1 -1
  52. package/dist/recording/wiring/index.d.ts.map +1 -1
  53. package/dist/recording/wiring/index.js +1 -1
  54. package/dist/recording/wiring/index.js.map +1 -1
  55. package/dist/recording/wiring/record-builders.d.ts.map +1 -1
  56. package/dist/recording/wiring/record-builders.js +5 -2
  57. package/dist/recording/wiring/record-builders.js.map +1 -1
  58. package/dist/runtime/auto-update/coordinator.js +2 -2
  59. package/dist/runtime/auto-update/coordinator.js.map +1 -1
  60. package/dist/runtime/create-actions.d.ts.map +1 -1
  61. package/dist/runtime/create-actions.js +0 -10
  62. package/dist/runtime/create-actions.js.map +1 -1
  63. package/dist/runtime/domain-events.d.ts +43 -0
  64. package/dist/runtime/domain-events.d.ts.map +1 -0
  65. package/dist/runtime/domain-events.js +181 -0
  66. package/dist/runtime/domain-events.js.map +1 -0
  67. package/dist/runtime/lifecycle-events.d.ts +43 -0
  68. package/dist/runtime/lifecycle-events.d.ts.map +1 -0
  69. package/dist/runtime/lifecycle-events.js +139 -0
  70. package/dist/runtime/lifecycle-events.js.map +1 -0
  71. package/dist/runtime/notifications.js +2 -2
  72. package/dist/runtime/notifications.js.map +1 -1
  73. package/dist/runtime/runtime-schema.d.ts +124 -173
  74. package/dist/runtime/runtime-schema.d.ts.map +1 -1
  75. package/dist/runtime/runtime-schema.js +4 -4
  76. package/dist/runtime/runtime-schema.js.map +1 -1
  77. package/dist/runtime/runtime.d.ts +1 -0
  78. package/dist/runtime/runtime.d.ts.map +1 -1
  79. package/dist/runtime/runtime.js +62 -52
  80. package/dist/runtime/runtime.js.map +1 -1
  81. package/dist/runtime/strategy-lifecycle.d.ts.map +1 -1
  82. package/dist/runtime/strategy-lifecycle.js +13 -1
  83. package/dist/runtime/strategy-lifecycle.js.map +1 -1
  84. package/dist/runtime-api/routes/signals.d.ts +1 -1
  85. package/dist/runtime-api/routes/signals.d.ts.map +1 -1
  86. package/dist/runtime-api/routes/signals.js +2 -8
  87. package/dist/runtime-api/routes/signals.js.map +1 -1
  88. package/dist/senpi/client.d.ts +10 -0
  89. package/dist/senpi/client.d.ts.map +1 -1
  90. package/dist/senpi/client.js +71 -49
  91. package/dist/senpi/client.js.map +1 -1
  92. package/dist/skills-manager/coordinator.js +3 -3
  93. package/dist/skills-manager/coordinator.js.map +1 -1
  94. package/dist/telemetry/metrics.d.ts +47 -0
  95. package/dist/telemetry/metrics.d.ts.map +1 -0
  96. package/dist/telemetry/metrics.js +154 -0
  97. package/dist/telemetry/metrics.js.map +1 -0
  98. package/dist/telemetry/otel-sdk.d.ts +23 -35
  99. package/dist/telemetry/otel-sdk.d.ts.map +1 -1
  100. package/dist/telemetry/otel-sdk.js +83 -54
  101. package/dist/telemetry/otel-sdk.js.map +1 -1
  102. package/dist/telemetry/trace-identity.d.ts +2 -1
  103. package/dist/telemetry/trace-identity.d.ts.map +1 -1
  104. package/dist/telemetry/trace-identity.js +2 -1
  105. package/dist/telemetry/trace-identity.js.map +1 -1
  106. package/dist/telemetry/tracing.d.ts +2 -1
  107. package/dist/telemetry/tracing.d.ts.map +1 -1
  108. package/dist/telemetry/tracing.js +1 -1
  109. package/dist/telemetry/tracing.js.map +1 -1
  110. package/dist/tracking/context.d.ts +6 -0
  111. package/dist/tracking/context.d.ts.map +1 -1
  112. package/dist/tracking/context.js.map +1 -1
  113. package/dist/tracking/spans/constants.d.ts +4 -11
  114. package/dist/tracking/spans/constants.d.ts.map +1 -1
  115. package/dist/tracking/spans/constants.js +4 -23
  116. package/dist/tracking/spans/constants.js.map +1 -1
  117. package/dist/tracking/spans/gen-ai.d.ts +70 -0
  118. package/dist/tracking/spans/gen-ai.d.ts.map +1 -0
  119. package/dist/tracking/spans/gen-ai.js +330 -0
  120. package/dist/tracking/spans/gen-ai.js.map +1 -0
  121. package/dist/tracking/spans/index.d.ts +6 -8
  122. package/dist/tracking/spans/index.d.ts.map +1 -1
  123. package/dist/tracking/spans/index.js +6 -11
  124. package/dist/tracking/spans/index.js.map +1 -1
  125. package/dist/tracking/spans/redact-pii.d.ts +19 -21
  126. package/dist/tracking/spans/redact-pii.d.ts.map +1 -1
  127. package/dist/tracking/spans/redact-pii.js +31 -31
  128. package/dist/tracking/spans/redact-pii.js.map +1 -1
  129. package/dist/tracking/spans/span-hooks.d.ts +0 -17
  130. package/dist/tracking/spans/span-hooks.d.ts.map +1 -1
  131. package/dist/tracking/spans/span-hooks.js +407 -207
  132. package/dist/tracking/spans/span-hooks.js.map +1 -1
  133. package/dist/utils/event-catalog.d.ts +269 -0
  134. package/dist/utils/event-catalog.d.ts.map +1 -0
  135. package/dist/utils/event-catalog.js +91 -0
  136. package/dist/utils/event-catalog.js.map +1 -0
  137. package/dist/utils/logger.d.ts +58 -5
  138. package/dist/utils/logger.d.ts.map +1 -1
  139. package/dist/utils/logger.js +359 -27
  140. package/dist/utils/logger.js.map +1 -1
  141. package/package.json +2 -1
  142. package/dist/tracking/spans/fan-out-span-transport.d.ts +0 -22
  143. package/dist/tracking/spans/fan-out-span-transport.d.ts.map +0 -1
  144. package/dist/tracking/spans/fan-out-span-transport.js +0 -49
  145. package/dist/tracking/spans/fan-out-span-transport.js.map +0 -1
  146. package/dist/tracking/spans/otel/fit-row-budget.d.ts +0 -22
  147. package/dist/tracking/spans/otel/fit-row-budget.d.ts.map +0 -1
  148. package/dist/tracking/spans/otel/fit-row-budget.js +0 -91
  149. package/dist/tracking/spans/otel/fit-row-budget.js.map +0 -1
  150. package/dist/tracking/spans/otel/map-span-to-trace-row.d.ts +0 -16
  151. package/dist/tracking/spans/otel/map-span-to-trace-row.d.ts.map +0 -1
  152. package/dist/tracking/spans/otel/map-span-to-trace-row.js +0 -227
  153. package/dist/tracking/spans/otel/map-span-to-trace-row.js.map +0 -1
  154. package/dist/tracking/spans/otel/recording-span-transport.d.ts +0 -43
  155. package/dist/tracking/spans/otel/recording-span-transport.d.ts.map +0 -1
  156. package/dist/tracking/spans/otel/recording-span-transport.js +0 -67
  157. package/dist/tracking/spans/otel/recording-span-transport.js.map +0 -1
  158. package/dist/tracking/spans/otel/span-ids.d.ts +0 -22
  159. package/dist/tracking/spans/otel/span-ids.d.ts.map +0 -1
  160. package/dist/tracking/spans/otel/span-ids.js +0 -32
  161. package/dist/tracking/spans/otel/span-ids.js.map +0 -1
  162. package/dist/tracking/spans/plugin-span-tracker.d.ts +0 -9
  163. package/dist/tracking/spans/plugin-span-tracker.d.ts.map +0 -1
  164. package/dist/tracking/spans/plugin-span-tracker.js +0 -115
  165. package/dist/tracking/spans/plugin-span-tracker.js.map +0 -1
  166. package/dist/tracking/spans/span-tracker.d.ts +0 -133
  167. package/dist/tracking/spans/span-tracker.d.ts.map +0 -1
  168. package/dist/tracking/spans/span-tracker.js +0 -721
  169. package/dist/tracking/spans/span-tracker.js.map +0 -1
  170. package/dist/tracking/spans/span-transport.d.ts +0 -71
  171. package/dist/tracking/spans/span-transport.d.ts.map +0 -1
  172. package/dist/tracking/spans/span-transport.js +0 -240
  173. package/dist/tracking/spans/span-transport.js.map +0 -1
  174. package/dist/tracking/spans/types.d.ts +0 -101
  175. package/dist/tracking/spans/types.d.ts.map +0 -1
  176. package/dist/tracking/spans/types.js +0 -6
  177. package/dist/tracking/spans/types.js.map +0 -1
@@ -7,7 +7,7 @@ export declare class ClosePositionAction implements Action {
7
7
  readonly actionType: "CLOSE_POSITION";
8
8
  private decisionEngine;
9
9
  constructor(config: ActionConfig, context: RuntimeContext);
10
- private trackingCtx;
10
+ private eventCtx;
11
11
  handle(event: HookEvent): Promise<ActionResult>;
12
12
  private normalizeSignals;
13
13
  private handleSignals;
@@ -1 +1 @@
1
- {"version":3,"file":"close-position.action.d.ts","sourceRoot":"","sources":["../../../src/actions/close-position/close-position.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,SAAS,EAEV,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAe3D,qBAAa,mBAAoB,YAAW,MAAM;IAO9C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAPjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAG,gBAAgB,CAAU;IAEhD,OAAO,CAAC,cAAc,CAAiB;gBAG7B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,cAAc;IASjC,OAAO,CAAC,WAAW;IAWb,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAuMrD,OAAO,CAAC,gBAAgB;YAQV,aAAa;CAuJ5B;AAID,eAAO,MAAM,oBAAoB,EAAE,aACO,CAAC;AAE3C,eAAO,MAAM,qBAAqB,EAAE,cAMnC,CAAC"}
1
+ {"version":3,"file":"close-position.action.d.ts","sourceRoot":"","sources":["../../../src/actions/close-position/close-position.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,SAAS,EAEV,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAe3D,qBAAa,mBAAoB,YAAW,MAAM;IAO9C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAPjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAG,gBAAgB,CAAU;IAEhD,OAAO,CAAC,cAAc,CAAiB;gBAG7B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,cAAc;IASjC,OAAO,CAAC,QAAQ;IAYV,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAuMrD,OAAO,CAAC,gBAAgB;YAQV,aAAa;CAuJ5B;AAID,eAAO,MAAM,oBAAoB,EAAE,aACO,CAAC;AAE3C,eAAO,MAAM,qBAAqB,EAAE,cAMnC,CAAC"}
@@ -5,7 +5,7 @@ import { interpolatePrompt } from '../../context/interpolate.js';
5
5
  import { formatDecisionErrorNotification } from '../../runtime/notifications.js';
6
6
  import { createLogger } from '../../utils/logger.js';
7
7
  import { resolveCloseOrderType, resolveFeeOptimizedLimitOptions } from '../../utils/resolve-order-type.js';
8
- import { emitTrackingDecision, emitTrackingActionResult, emitOrderPlaced, emitOrderFilled, emitOrderFailed } from '../tracking-helpers.js';
8
+ import { emitTrackingDecision, emitTrackingActionResult, emitOrderPlaced, emitOrderFilled, emitOrderFailed, buildActionEventContext } from '../tracking-helpers.js';
9
9
  import { parseCloseFillDetail } from '../../senpi/client.js';
10
10
  import { withSpan } from '../../telemetry/tracing.js';
11
11
  import { SpanStatusCode } from '@opentelemetry/api';
@@ -26,15 +26,16 @@ export class ClosePositionAction {
26
26
  this.decisionEngine.register(new RuleDecisionStrategy());
27
27
  this.decisionEngine.register(new NoDecisionStrategy());
28
28
  }
29
- trackingCtx() {
30
- return {
29
+ eventCtx() {
30
+ return buildActionEventContext({
31
31
  hookSystem: this.context.hookSystem,
32
32
  actionName: this.name,
33
33
  actionType: this.actionType,
34
34
  decisionMode: this.config.decision_mode,
35
35
  decisionModel: this.config.decision_model,
36
36
  minConfidence: this.config.min_confidence,
37
- };
37
+ positionIdRegistry: this.context.positionIdRegistry,
38
+ });
38
39
  }
39
40
  async handle(event) {
40
41
  // Telemetry: pass start = "action began handling the scan event" (NOT "LLM call dispatched").
@@ -131,8 +132,8 @@ export class ClosePositionAction {
131
132
  model: this.config.decision_model,
132
133
  });
133
134
  await this.context.notifications.notify(notificationMessage).catch(() => { });
134
- const trackingCtx = this.trackingCtx();
135
- emitTrackingDecision(trackingCtx, event, address, scanResult, { error: message }, undefined, interpolatedPrompt, contextData);
135
+ const eventCtx = this.eventCtx();
136
+ emitTrackingDecision(eventCtx, event, address, scanResult, { error: message }, undefined, interpolatedPrompt, contextData);
136
137
  const errorResult = {
137
138
  success: false,
138
139
  action_type: this.actionType,
@@ -151,14 +152,14 @@ export class ClosePositionAction {
151
152
  _decisionPrompt: interpolatedPrompt ?? null,
152
153
  },
153
154
  };
154
- emitTrackingActionResult(trackingCtx, event, address, errorResult, { scanResult, decisionStartedAt, decisionEndedAt });
155
+ emitTrackingActionResult(eventCtx, event, address, errorResult, { scanResult, decisionStartedAt, decisionEndedAt });
155
156
  return errorResult;
156
157
  }
157
- const trackingCtx = this.trackingCtx();
158
+ const eventCtx = this.eventCtx();
158
159
  const minConfidence = this.config.min_confidence ?? 1;
159
160
  const trackingExtras = { scanResult, decisionStartedAt, decisionEndedAt, minConfidence };
160
161
  const isBelowConfidence = decision.execute && decision.confidence < minConfidence;
161
- emitTrackingDecision(trackingCtx, event, address, scanResult, decision, minConfidence, interpolatedPrompt, contextData, isBelowConfidence ? 'below_confidence' : undefined);
162
+ emitTrackingDecision(eventCtx, event, address, scanResult, decision, minConfidence, interpolatedPrompt, contextData, isBelowConfidence ? 'below_confidence' : undefined);
162
163
  if (!decision.execute) {
163
164
  logger.info('decision no execute', decision);
164
165
  const rejectedResult = {
@@ -174,7 +175,7 @@ export class ClosePositionAction {
174
175
  _decisionPrompt: interpolatedPrompt ?? null,
175
176
  },
176
177
  };
177
- emitTrackingActionResult(trackingCtx, event, address, rejectedResult, trackingExtras);
178
+ emitTrackingActionResult(eventCtx, event, address, rejectedResult, trackingExtras);
178
179
  return rejectedResult;
179
180
  }
180
181
  if (isBelowConfidence) {
@@ -191,7 +192,7 @@ export class ClosePositionAction {
191
192
  _decisionPrompt: interpolatedPrompt ?? null,
192
193
  },
193
194
  };
194
- emitTrackingActionResult(trackingCtx, event, address, belowConfResult, trackingExtras);
195
+ emitTrackingActionResult(eventCtx, event, address, belowConfResult, trackingExtras);
195
196
  return belowConfResult;
196
197
  }
197
198
  // ── Unified signals path ──
@@ -205,7 +206,7 @@ export class ClosePositionAction {
205
206
  error: 'invalid_payload',
206
207
  data: { _decisionMeta: meta, _decisionPrompt: interpolatedPrompt ?? null },
207
208
  };
208
- emitTrackingActionResult(trackingCtx, event, address, invalidPayloadResult, trackingExtras);
209
+ emitTrackingActionResult(eventCtx, event, address, invalidPayloadResult, trackingExtras);
209
210
  return invalidPayloadResult;
210
211
  }
211
212
  return this.handleSignals(signals, address, event, strategyState, meta, interpolatedPrompt, trackingExtras);
@@ -311,7 +312,7 @@ export class ClosePositionAction {
311
312
  }
312
313
  catch (error) {
313
314
  const message = error instanceof Error ? error.message : String(error);
314
- logger.error('close failed', { asset, err: message });
315
+ logger.error('close failed', error, { asset });
315
316
  results.push({ asset, dex: dexForHook ?? null, orderType, closeReason: reason, success: false, reason, error: message, startedAt: signalStartedAt, endedAt: Date.now() });
316
317
  outcome('failed', reason, message);
317
318
  // Task 8a: the close submit threw.
@@ -352,7 +353,7 @@ export class ClosePositionAction {
352
353
  ...(fromDecisionPath ? { _decisionPrompt: decisionPrompt ?? null } : {}),
353
354
  },
354
355
  };
355
- emitTrackingActionResult(this.trackingCtx(), event, address, actionResult, trackingExtras);
356
+ emitTrackingActionResult(this.eventCtx(), event, address, actionResult, trackingExtras);
356
357
  return actionResult;
357
358
  }
358
359
  }
@@ -1 +1 @@
1
- {"version":3,"file":"close-position.action.js","sourceRoot":"","sources":["../../../src/actions/close-position/close-position.action.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEtH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAC3G,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAA+D,MAAM,wBAAwB,CAAC;AACxM,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,MAAM,GAAG,YAAY,CAAC,2BAA2B,CAAC,CAAC;AAEzD,gFAAgF;AAEhF,MAAM,OAAO,mBAAmB;IAOpB;IACA;IAPD,IAAI,CAAS;IACb,UAAU,GAAG,gBAAyB,CAAC;IAExC,cAAc,CAAiB;IAEvC,YACU,MAAoB,EACpB,OAAuB;QADvB,WAAM,GAAN,MAAM,CAAc;QACpB,YAAO,GAAP,OAAO,CAAgB;QAE/B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;IACzD,CAAC;IAEO,WAAW;QACjB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACnC,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YACvC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;YACzC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;SAC1C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,8FAA8F;QAC9F,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAE9C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,kBAAkB,EAAE,CAAC;YACjD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,OAAO,EAAE,oBAAoB;gBAC7B,KAAK,EAAE,oBAAoB;aAC5B,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,UAA+C,CAAC;QAE/E,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;YAC/D,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1F,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,OAAO,EAAE,kCAAkC;gBAC3C,KAAK,EAAE,oBAAoB;aAC5B,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACjD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,OAAO,EAAE,6CAA6C;gBACtD,KAAK,EAAE,yBAAyB;aACjC,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;QACjD,IAAI,aAAa,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,OAAO,EAAE,mDAAmD;gBAC5D,KAAK,EAAE,2BAA2B;aACnC,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,0EAA0E;QAC1E,wEAAwE;QACxE,MAAM,aAAa,CAAC,uBAAuB,EAAE,CAAC;QAE9C,sDAAsD;QACtD,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC1F,MAAM,OAAO,GAAG,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;oBAC/B,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;oBAClG,GAAG,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;oBACpF,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACH,0FAA0F;YAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC7H,CAAC;QAED,6BAA6B;QAC7B,MAAM,eAAe,GAAG;YACtB,KAAK;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa;YACb,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YACzC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;gBAC5C,CAAC,CAAC,CAAC,OAAe,EAAE,SAAiB,EAAE,EAAE,CACrC,IAAI,CAAC,OAAO,CAAC,aAAc,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC;gBACrE,CAAC,CAAC,SAAS;SACd,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM;YAC7C,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC;YAC/E,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe;YACpD,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;gBAC7C,GAAG,WAAW;gBACd,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;aAC9B,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,QAAQ,CAAC;QACb,IAAI,eAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;gBACrE,MAAM,EAAE,kBAAkB;gBAC1B,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,UAAU,EAAE;gBACvC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;gBACjC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,KAAK;aACN,CAAC,CAAC;YACH,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,mBAAmB,GAAG,+BAA+B,CAAC,OAAO,EAAE;gBACnE,UAAU,EAAE,IAAI,CAAC,IAAI;gBACrB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;aAClC,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,oBAAoB,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;YAC9H,MAAM,WAAW,GAAiB;gBAChC,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,OAAO,EAAE,oBAAoB,OAAO,EAAE;gBACtC,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE;oBACJ,aAAa,EAAE;wBACb,UAAU,EAAE,CAAC;wBACb,UAAU,EAAE,IAAI;wBAChB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;wBAC/B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI;wBACzC,OAAO,EAAE,KAAK;wBACd,UAAU,EAAE,CAAC;wBACb,SAAS,EAAE,mBAAmB,OAAO,EAAE;qBACjB;oBACxB,eAAe,EAAE,kBAAkB,IAAI,IAAI;iBAC5C;aACF,CAAC;YACF,wBAAwB,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC,CAAC;YACvH,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;QACtD,MAAM,cAAc,GAA+B,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC;QACrH,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,GAAG,aAAa,CAAC;QAClF,oBAAoB,CAClB,WAAW,EACX,KAAK,EACL,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CACnD,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YAC7C,MAAM,cAAc,GAAiB;gBACnC,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,OAAO,EAAE,0BAA0B,QAAQ,CAAC,SAAS,EAAE;gBACvD,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,qBAAqB;gBACjC,IAAI,EAAE;oBACJ,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,aAAa,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;oBAC9D,eAAe,EAAE,kBAAkB,IAAI,IAAI;iBAC5C;aACF,CAAC;YACF,wBAAwB,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;YACtF,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,eAAe,GAAiB;gBACpC,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,OAAO,EAAE,cAAc,QAAQ,CAAC,UAAU,oBAAoB,aAAa,EAAE;gBAC7E,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,kBAAkB;gBAC9B,IAAI,EAAE;oBACJ,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,SAAS,EAAE,aAAa;oBACxB,aAAa,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;oBAC9D,eAAe,EAAE,kBAAkB,IAAI,IAAI;iBAC5C;aACF,CAAC;YACF,wBAAwB,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;YACvF,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,6BAA6B;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,oBAAoB,GAAiB;gBACzC,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,OAAO,EAAE,wCAAwC;gBACjD,KAAK,EAAE,iBAAiB;gBACxB,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,IAAI,IAAI,EAAE;aAC3E,CAAC;YACF,wBAAwB,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC;YAC5F,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAC9G,CAAC;IAEO,gBAAgB,CAAC,OAAgC;QACvD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,OAAyC,CAAC;QAC7F,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACtH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,OAAuC,EACvC,OAAe,EACf,KAAsC,EACtC,aAAuE,EACvE,IAAmB,EACnB,cAAuB,EACvB,cAA2C;QAE3C,MAAM,OAAO,GAAmC,EAAE,CAAC;QACnD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACxE,MAAM,wBAAwB,GAAG,SAAS,KAAK,qBAAqB;YAClE,CAAC,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC;YAClF,CAAC,CAAC,SAAS,CAAC;QAEd,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAe,CAAC;YACrC,MAAM,QAAQ,CAAC,mBAAmB,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpF,0FAA0F;gBAC1F,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,UAAkB,EAAE,YAAqB,EAAE,EAAE;oBAC5E,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;oBAClD,IAAI,CAAC,YAAY,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;oBAC3D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;wBAC/B,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;oBACxE,CAAC;gBACH,CAAC,CAAC;gBACF,0FAA0F;gBAC1F,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;gBAC7B,MAAM,UAAU,GACd,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1F,MAAM,MAAM,GAAI,MAAM,CAAC,MAAiB,IAAK,MAAM,CAAC,UAAqB,IAAI,cAAc,CAAC;gBAE5F,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,IAAI,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACxJ,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;oBACvC,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC5D,oFAAoF;oBACpF,yEAAyE;oBACzE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;wBAClG,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAAC,CAAC;wBAC7I,8EAA8E;wBAC9E,2CAA2C;wBAC3C,MAAM,CAAC,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;wBAC5C,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;4BAAE,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;wBAC/E,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;4BAAE,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;wBACvF,IAAI,CAAC,CAAC,gBAAgB,IAAI,IAAI;4BAAE,OAAO,CAAC,YAAY,CAAC,kCAAkC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;wBAC7G,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;wBACjC,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;4BAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;wBACnC,CAAC;wBACD,OAAO,CAAC,CAAC;oBACX,CAAC,CAAC,CAAC;oBAEH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;wBACjC,IAAI,EAAE,UAAU,CAAC,kBAAkB;wBACnC,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,OAAO;wBACP,IAAI,EAAE;4BACJ,KAAK;4BACL,MAAM,EAAE,OAAO;4BACf,MAAM,EAAE,cAAc;4BACtB,WAAW,EAAE,MAAM;4BACnB,SAAS;4BACT,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClD,GAAG,IAAI;4BACP,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe;yBAC5C;wBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC,CAAC,CAAC;oBAEH,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,IAAI,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAClK,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAE1B,uFAAuF;oBACvF,2FAA2F;oBAC3F,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;wBACvD,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,SAAS;wBACT,KAAK;wBACL,IAAI,EAAE,IAAI,CAAC,UAAU;wBACrB,UAAU,EAAE,IAAI;qBACjB,CAAC,CAAC;oBACH,0FAA0F;oBAC1F,4FAA4F;oBAC5F,8EAA8E;oBAC9E,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;wBACpE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;4BACvD,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,KAAK;4BACL,SAAS,EAAE,IAAI,CAAC,WAAW;4BAC3B,QAAQ,EAAE,IAAI,CAAC,UAAU;4BACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC,CAAC;oBACL,CAAC;oBACD,WAAW,EAAE,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvE,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,IAAI,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC1K,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;oBACnC,mCAAmC;oBACnC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;wBACvD,KAAK;wBACL,MAAM,EAAE,WAAW;wBACnB,KAAK,EAAE,OAAO;wBACd,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;wBAC1D,UAAU,EAAE,IAAI;qBACjB,CAAC,CAAC;oBACH,WAAW,EAAE,CAAC;gBAChB,CAAC;YACD,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;QAChE,MAAM,OAAO,GAAG,UAAU,WAAW,YAAY,WAAW,YAAY,YAAY,UAAU,CAAC;QAE/F,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;YACnC,OAAO;YACP,OAAO;YACP,WAAW;YACX,WAAW;YACX,YAAY;YACZ,OAAO;SACR,CAAC,CAAC;QAEH,uFAAuF;QACvF,6FAA6F;QAC7F,MAAM,gBAAgB,GAAG,IAAI,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,CAAC;QAC5E,MAAM,YAAY,GAAiB;YACjC,OAAO,EAAE,WAAW,GAAG,CAAC,IAAI,WAAW,KAAK,CAAC;YAC7C,WAAW,EAAE,IAAI,CAAC,UAAU;YAC5B,OAAO;YACP,IAAI,EAAE;gBACJ,OAAO;gBACP,WAAW;gBACX,WAAW;gBACX,YAAY;gBACZ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzE;SACF,CAAC;QACF,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QAC3F,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED,+EAA+E;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAAkB,CAAC,MAAoB,EAAE,OAAuB,EAAE,EAAE,CACnG,IAAI,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,qDAAqD;IAClE,cAAc,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;IAC/C,aAAa,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;CAC/C,CAAC"}
1
+ {"version":3,"file":"close-position.action.js","sourceRoot":"","sources":["../../../src/actions/close-position/close-position.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Pure derivation of the `decision.made` + `signal.outcome` event-log events from the ONE assembled
3
+ * action-result pass. Same single source the recording subscriber reads (`tracking.action_result`),
4
+ * but here as a pure `(input) => EmittableEvent[]` mapper rather than a bus subscriber — the call
5
+ * site emits the returned array in one synchronous loop, so there is no partial pair on throw.
6
+ *
7
+ * The outcome classification, decision-window selection, and field projection are NOT reimplemented:
8
+ * we reuse the recording builders ({@link buildSignalEvaluated} → {@link buildDecisionMade} /
9
+ * {@link buildSignalOutcomes}), which are pure and already battle-tested, then project their records
10
+ * onto the event contract. Body lines are deterministic narratives; reasoning (decision.made) and any
11
+ * error text reach `redact`; the raw scanner `meta` bag is dropped.
12
+ */
13
+ import { type PositionIdResolver } from "../recording/wiring/record-builders.js";
14
+ import { type AttrsFor, type EventName } from "../utils/event-catalog.js";
15
+ import type { Logger, LogLevel } from "../utils/logger.js";
16
+ /**
17
+ * A fully-built event ready to hand to `logger.event(name, level, { body, attributes, redact })`.
18
+ *
19
+ * Distributive over the event name so the `attributes` bag is the per-event {@link AttrsFor} shape,
20
+ * not a loose scalar map: a builder that constructs an `EmittableEvent<"order.placed">` is checked
21
+ * against `OrderEventAttrs` at construction, and a misnamed/wrong-typed attribute is a compile error
22
+ * at the builder. The default `N = EventName` is the full union — what a heterogeneous array carries.
23
+ */
24
+ export type EmittableEvent<N extends EventName = EventName> = N extends EventName ? {
25
+ readonly name: N;
26
+ readonly level: LogLevel;
27
+ readonly body: string;
28
+ readonly attributes?: AttrsFor<N>;
29
+ readonly redact?: Record<string, string>;
30
+ } : never;
31
+ /**
32
+ * Build then emit a single {@link EmittableEvent} through a logger, with build + emit guarded as one
33
+ * unit so neither a throwing builder nor a telemetry failure can disturb the host (trading/scan/
34
+ * lifecycle) path. The builder runs INSIDE the guard (passed as a thunk, not evaluated at the call
35
+ * site), so call sites need no surrounding try/catch. A `null` build result is a no-op — builders
36
+ * that drop an event (no asset, no summary) return `null` and need no separate check. The event
37
+ * carries its name alongside the matching typed `attributes` bag, so they flow straight into
38
+ * `logger.event`'s `AttrsFor<N>` contract with NO cast. `logger.event` is itself internally guarded.
39
+ */
40
+ export declare function emitEvent(logger: Logger, build: () => EmittableEvent | null): void;
41
+ /**
42
+ * Build then emit an array of events in order, with the build and the whole loop guarded as one unit
43
+ * (see {@link emitEvent}). The builder runs inside the guard, so call sites need no surrounding
44
+ * try/catch. A throw during build or any emit aborts the rest silently — telemetry never throws into
45
+ * the host path.
46
+ */
47
+ export declare function emitEvents(logger: Logger, build: () => readonly EmittableEvent[]): void;
48
+ /** The action-result pass, in the same envelope `emitTrackingActionResult` puts on the bus. */
49
+ export interface ActionResultEventInput {
50
+ readonly payload: unknown;
51
+ readonly nowMs: number;
52
+ readonly resolvePositionId?: PositionIdResolver;
53
+ }
54
+ /**
55
+ * Build the full event array for one action-result pass: `decision.made` first (when the pass carried
56
+ * a decision), then one `signal.outcome` per evaluated signal. A failed outcome escalates the
57
+ * signal.outcome level to `error` (the catalog floor is INFO); the error text rides `redact`.
58
+ */
59
+ export declare function deriveActionResultEvents(input: ActionResultEventInput): EmittableEvent[];
60
+ //# sourceMappingURL=event-derivation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-derivation.d.ts","sourceRoot":"","sources":["../../src/actions/event-derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAmD,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3H,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAO3D;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,SAAS,SAAS,GAC7E;IACE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C,GACD,KAAK,CAAC;AAEV;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAalF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,cAAc,EAAE,GAAG,IAAI,CAYvF;AAED,+FAA+F;AAC/F,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;CACjD;AAsFD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,cAAc,EAAE,CAqCxF"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Pure derivation of the `decision.made` + `signal.outcome` event-log events from the ONE assembled
3
+ * action-result pass. Same single source the recording subscriber reads (`tracking.action_result`),
4
+ * but here as a pure `(input) => EmittableEvent[]` mapper rather than a bus subscriber — the call
5
+ * site emits the returned array in one synchronous loop, so there is no partial pair on throw.
6
+ *
7
+ * The outcome classification, decision-window selection, and field projection are NOT reimplemented:
8
+ * we reuse the recording builders ({@link buildSignalEvaluated} → {@link buildDecisionMade} /
9
+ * {@link buildSignalOutcomes}), which are pure and already battle-tested, then project their records
10
+ * onto the event contract. Body lines are deterministic narratives; reasoning (decision.made) and any
11
+ * error text reach `redact`; the raw scanner `meta` bag is dropped.
12
+ */
13
+ import { buildDecisionMade, buildSignalEvaluated, buildSignalOutcomes, } from "../recording/wiring/record-builders.js";
14
+ import { EVENT_NAME, JOIN_ATTR, eventAttrs, fmtThousands } from "../utils/event-catalog.js";
15
+ /**
16
+ * Build then emit a single {@link EmittableEvent} through a logger, with build + emit guarded as one
17
+ * unit so neither a throwing builder nor a telemetry failure can disturb the host (trading/scan/
18
+ * lifecycle) path. The builder runs INSIDE the guard (passed as a thunk, not evaluated at the call
19
+ * site), so call sites need no surrounding try/catch. A `null` build result is a no-op — builders
20
+ * that drop an event (no asset, no summary) return `null` and need no separate check. The event
21
+ * carries its name alongside the matching typed `attributes` bag, so they flow straight into
22
+ * `logger.event`'s `AttrsFor<N>` contract with NO cast. `logger.event` is itself internally guarded.
23
+ */
24
+ export function emitEvent(logger, build) {
25
+ try {
26
+ const ev = build();
27
+ if (ev) {
28
+ logger.event(ev.name, ev.level, {
29
+ body: ev.body,
30
+ ...(ev.attributes ? { attributes: ev.attributes } : {}),
31
+ ...(ev.redact ? { redact: ev.redact } : {}),
32
+ });
33
+ }
34
+ }
35
+ catch {
36
+ // Telemetry must never throw into the host path.
37
+ }
38
+ }
39
+ /**
40
+ * Build then emit an array of events in order, with the build and the whole loop guarded as one unit
41
+ * (see {@link emitEvent}). The builder runs inside the guard, so call sites need no surrounding
42
+ * try/catch. A throw during build or any emit aborts the rest silently — telemetry never throws into
43
+ * the host path.
44
+ */
45
+ export function emitEvents(logger, build) {
46
+ try {
47
+ for (const ev of build()) {
48
+ logger.event(ev.name, ev.level, {
49
+ body: ev.body,
50
+ ...(ev.attributes ? { attributes: ev.attributes } : {}),
51
+ ...(ev.redact ? { redact: ev.redact } : {}),
52
+ });
53
+ }
54
+ }
55
+ catch {
56
+ // Telemetry must never throw into the host path.
57
+ }
58
+ }
59
+ const INTENT_VERB = { open: "OPEN", close: "CLOSE", none: "EVAL" };
60
+ /** "Decided OPEN LONG ETH — confidence 0.82 ≥ 0.70, via llm" (clauses present only when known). */
61
+ function decisionBody(d) {
62
+ const verb = INTENT_VERB[d.actionIntent] ?? d.actionIntent.toUpperCase();
63
+ let line = `Decided ${verb}`;
64
+ if (d.confidence !== undefined) {
65
+ const cmp = d.confidenceThreshold !== undefined
66
+ ? `${d.confidence} ${d.confidence >= d.confidenceThreshold ? "≥" : "<"} ${d.confidenceThreshold}`
67
+ : `${d.confidence}`;
68
+ line += ` — confidence ${cmp}`;
69
+ }
70
+ if (d.mode)
71
+ line += `, via ${d.mode}`;
72
+ return line;
73
+ }
74
+ /** decision.made attributes: the decision's safe scalars; reasoning goes to `redact`, not here. */
75
+ function decisionAttributes(d) {
76
+ return eventAttrs({
77
+ "senpi.decision.mode": d.mode,
78
+ "senpi.decision.by_llm": d.byLlm,
79
+ "senpi.decision.intent": d.actionIntent,
80
+ // Always a number off the record builder (`num(...) ?? 0`); the fallback mirrors that and keeps
81
+ // confidence a required, always-queryable scalar.
82
+ "senpi.decision.confidence": d.confidence ?? 0,
83
+ "senpi.decision.confidence_threshold": d.confidenceThreshold,
84
+ "senpi.decision.model": d.model,
85
+ "senpi.decision.tokens_used": d.tokensUsed ?? undefined,
86
+ "senpi.decision.duration_ms": d.durationMs,
87
+ });
88
+ }
89
+ const DISPOSITION_NARRATIVE = {
90
+ accepted: "executed",
91
+ rejected: "rejected",
92
+ blocked: "blocked",
93
+ error: "errored",
94
+ };
95
+ /**
96
+ * "ETH LONG signal (score 0.9) → executed: filled 0.5 @ 2,400" — the trailing detail clause is
97
+ * tailored to the disposition: the entry fill on an accept, the granular reason code on an
98
+ * error/block/reject. The fill size/price come from the evaluation's outcome (dropped from the scalar
99
+ * attribute set's queryable surface but safe to template into the deterministic body). The raw error
100
+ * text is not templated — it rides the scrubbed `redact` slot.
101
+ */
102
+ function outcomeBody(o, ev) {
103
+ const dir = o.direction ?? "";
104
+ const head = `${o.asset}${dir ? ` ${dir}` : ""} signal`;
105
+ const score = o.score !== undefined ? ` (score ${o.score})` : "";
106
+ const verb = DISPOSITION_NARRATIVE[o.result] ?? o.result;
107
+ let detail = "";
108
+ if (o.result === "accepted" && o.size !== undefined) {
109
+ const at = ev.outcome.entryPrice !== undefined ? ` @ ${fmtThousands(ev.outcome.entryPrice)}` : "";
110
+ detail = `: filled ${o.size}${at}`;
111
+ }
112
+ else if (o.reasonCode) {
113
+ detail = `: ${o.reasonCode}`;
114
+ }
115
+ return `${head}${score} → ${verb}${detail}`;
116
+ }
117
+ /** signal.outcome attributes: the queryable scalar surface; the raw `meta` bag is dropped. */
118
+ function outcomeAttributes(o) {
119
+ return eventAttrs({
120
+ [JOIN_ATTR.positionId]: o.positionId,
121
+ [JOIN_ATTR.orderId]: o.orderId,
122
+ "senpi.scanner.id": o.scannerId,
123
+ "senpi.signal.type": o.signalType,
124
+ "senpi.signal.asset": o.asset,
125
+ "senpi.signal.direction": o.direction ?? undefined,
126
+ // Always a number off the record builder (`num(...) ?? 0`); the fallback mirrors that and keeps
127
+ // score a required, always-queryable scalar.
128
+ "senpi.signal.score": o.score ?? 0,
129
+ "senpi.outcome.result": o.result,
130
+ "senpi.outcome.reason_code": o.reasonCode,
131
+ "senpi.outcome.margin_amount": o.marginAmount,
132
+ "senpi.outcome.margin_source": o.marginSource,
133
+ "senpi.outcome.margin_pct": o.marginPct,
134
+ "senpi.outcome.leverage": o.leverage,
135
+ "senpi.outcome.notional_value": o.notionalValue,
136
+ "senpi.outcome.size": o.size,
137
+ });
138
+ }
139
+ /**
140
+ * Build the full event array for one action-result pass: `decision.made` first (when the pass carried
141
+ * a decision), then one `signal.outcome` per evaluated signal. A failed outcome escalates the
142
+ * signal.outcome level to `error` (the catalog floor is INFO); the error text rides `redact`.
143
+ */
144
+ export function deriveActionResultEvents(input) {
145
+ const { payload, nowMs, resolvePositionId } = input;
146
+ const pass = buildSignalEvaluated(payload, nowMs, resolvePositionId);
147
+ if (pass === null)
148
+ return [];
149
+ const events = [];
150
+ const decision = buildDecisionMade(pass);
151
+ if (decision !== null) {
152
+ events.push({
153
+ name: EVENT_NAME.decisionMade,
154
+ level: "info",
155
+ body: decisionBody(decision),
156
+ attributes: decisionAttributes(decision),
157
+ ...(decision.reasoning ? { redact: { reasoning: decision.reasoning } } : {}),
158
+ });
159
+ }
160
+ // buildSignalOutcomes and pass.evaluations are both one-per-evaluation, same order — zipped so the
161
+ // narrative can template the fill (entryPrice) and the error text rides `redact` from the same
162
+ // evaluation. The record carries the queryable scalar surface (no raw `meta`); the evaluation
163
+ // carries the free-text error and the entry fill the body templates.
164
+ const outcomes = buildSignalOutcomes(pass);
165
+ outcomes.forEach((outcome, i) => {
166
+ const ev = pass.evaluations[i];
167
+ const isError = outcome.result === "error";
168
+ events.push({
169
+ name: EVENT_NAME.signalOutcome,
170
+ // ERROR when the outcome failed (the level arg escalates above the INFO floor).
171
+ level: isError ? "error" : "info",
172
+ body: outcomeBody(outcome, ev),
173
+ attributes: outcomeAttributes(outcome),
174
+ ...(isError && ev.outcome.error ? { redact: { error: ev.outcome.error } } : {}),
175
+ });
176
+ });
177
+ return events;
178
+ }
179
+ //# sourceMappingURL=event-derivation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-derivation.js","sourceRoot":"","sources":["../../src/actions/event-derivation.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,17 @@
1
1
  import type { LlmDecision, LlmDecisionRequest, LlmDecisionResponse } from '../types.js';
2
- import type { SpanTracker } from '../../tracking/spans/index.js';
3
2
  export interface AnthropicLlmDecisionOptions {
4
3
  apiKey?: string;
5
4
  defaultModel?: string;
6
- /**
7
- * Optional SpanTracker for manual span emission. The direct-SDK path
8
- * bypasses OpenClaw, so we have to capture the LLM call ourselves.
9
- * When omitted, no spans are emitted (existing behavior preserved).
10
- */
11
- spanTracker?: SpanTracker;
12
5
  }
6
+ /**
7
+ * Direct-Anthropic decision path. Retained as a standalone fallback; the production
8
+ * LLM provider is litellm via OpenClaw (see OpenClawLlmDecision), whose hooks emit the
9
+ * gen_ai spans. This path therefore carries no telemetry of its own.
10
+ */
13
11
  export declare class AnthropicLlmDecision implements LlmDecision {
14
12
  private readonly client;
15
13
  private readonly defaultModel;
16
- private readonly spanTracker;
17
14
  constructor(options?: AnthropicLlmDecisionOptions);
18
15
  decide<T>(request: LlmDecisionRequest): Promise<LlmDecisionResponse<T>>;
19
- private emitSpan;
20
16
  }
21
17
  //# sourceMappingURL=anthropic-llm-decision.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-llm-decision.d.ts","sourceRoot":"","sources":["../../../src/actions/llm-decision/anthropic-llm-decision.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAKjE,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAKD,qBAAa,oBAAqB,YAAW,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAErC,OAAO,CAAC,EAAE,2BAA2B;IAO3C,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAwF7E,OAAO,CAAC,QAAQ;CAgDjB"}
1
+ {"version":3,"file":"anthropic-llm-decision.d.ts","sourceRoot":"","sources":["../../../src/actions/llm-decision/anthropic-llm-decision.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGxF,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,OAAO,CAAC,EAAE,2BAA2B;IAM3C,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;CA+C9E"}
@@ -1,32 +1,25 @@
1
1
  import Anthropic from '@anthropic-ai/sdk';
2
- import { randomUUID } from 'node:crypto';
3
2
  import { ACTION_DECISION_SCHEMA, SYSTEM_PROMPT } from './shared.js';
4
- import { getTrackingContext } from '../../tracking/context.js';
5
- import { createLogger } from '../../utils/logger.js';
6
- const logger = createLogger('[actions][anthropic-llm-decision]');
7
3
  const DEFAULT_MODEL = 'claude-sonnet-4-20250514';
8
4
  const DEFAULT_MAX_TOKENS = 1024;
5
+ /**
6
+ * Direct-Anthropic decision path. Retained as a standalone fallback; the production
7
+ * LLM provider is litellm via OpenClaw (see OpenClawLlmDecision), whose hooks emit the
8
+ * gen_ai spans. This path therefore carries no telemetry of its own.
9
+ */
9
10
  export class AnthropicLlmDecision {
10
11
  client;
11
12
  defaultModel;
12
- spanTracker;
13
13
  constructor(options) {
14
14
  const apiKey = options?.apiKey?.replace(/\s+/g, '');
15
15
  this.client = new Anthropic(apiKey ? { apiKey } : undefined);
16
16
  this.defaultModel = options?.defaultModel ?? DEFAULT_MODEL;
17
- this.spanTracker = options?.spanTracker ?? null;
18
17
  }
19
18
  async decide(request) {
20
19
  const startedAt = Date.now();
21
20
  const model = request.model ?? this.defaultModel;
22
21
  const userContent = `## Task\n${request.prompt}\n\n## Context\n${JSON.stringify(request.context, null, 2)}`;
23
- // Per-call synthetic ids: session_key groups all direct-path spans from
24
- // this runtime boot; run_id makes each call individually identifiable.
25
- const ctx = getTrackingContext();
26
- const synthSessionKey = `direct:${ctx?.runtimeBootId ?? 'unknown'}`;
27
- const synthRunId = `direct:${randomUUID()}`;
28
22
  let response;
29
- let errorForSpan;
30
23
  try {
31
24
  response = await this.client.messages.create({
32
25
  model,
@@ -45,48 +38,15 @@ export class AnthropicLlmDecision {
45
38
  });
46
39
  }
47
40
  catch (error) {
48
- errorForSpan = error;
49
- // Capture the failed call as a span before rethrowing.
50
- this.emitSpan({
51
- startedAt,
52
- endedAt: Date.now(),
53
- model,
54
- synthSessionKey,
55
- synthRunId,
56
- userContent,
57
- error: error,
58
- });
59
41
  throw classifyAnthropicError(error);
60
42
  }
61
- const endedAt = Date.now();
62
- const latencyMs = endedAt - startedAt;
43
+ const latencyMs = Date.now() - startedAt;
63
44
  const toolBlock = response.content.find((block) => block.type === 'tool_use');
64
45
  if (!toolBlock) {
65
- // No tool_use block — capture as a span-with-error before throwing.
66
- this.emitSpan({
67
- startedAt,
68
- endedAt,
69
- model,
70
- synthSessionKey,
71
- synthRunId,
72
- userContent,
73
- response,
74
- error: 'Anthropic response contained no tool_use block',
75
- });
76
46
  throw new Error('Anthropic response contained no tool_use block');
77
47
  }
78
48
  const decision = toolBlock.input;
79
49
  const tokensUsed = response.usage.input_tokens + response.usage.output_tokens;
80
- this.emitSpan({
81
- startedAt,
82
- endedAt,
83
- model,
84
- synthSessionKey,
85
- synthRunId,
86
- userContent,
87
- response,
88
- });
89
- void errorForSpan; // (kept for symmetry — unused in success path)
90
50
  return {
91
51
  decision,
92
52
  rawResponse: JSON.stringify(response.content),
@@ -94,47 +54,6 @@ export class AnthropicLlmDecision {
94
54
  latencyMs,
95
55
  };
96
56
  }
97
- emitSpan(args) {
98
- // This method is invoked inside catch blocks before rethrow and inside
99
- // success paths before return. If it throws, it would mask the real
100
- // outcome — replacing the Anthropic error with our span-emission error,
101
- // or turning a successful decision into a failure. Wrap the body so any
102
- // throw here (serialization, tracker bug, etc.) is logged and swallowed.
103
- try {
104
- if (!this.spanTracker)
105
- return;
106
- const ctx = getTrackingContext();
107
- const usage = args.response?.usage;
108
- this.spanTracker.captureLlmSpan({
109
- sessionKey: args.synthSessionKey,
110
- runId: args.synthRunId,
111
- startedAt: args.startedAt,
112
- endedAt: args.endedAt,
113
- model: args.response?.model ?? args.model,
114
- tokensIn: usage?.input_tokens ?? null,
115
- tokensOut: usage?.output_tokens ?? null,
116
- costUsd: null,
117
- input: {
118
- system: SYSTEM_PROMPT,
119
- messages: [{ role: 'user', content: args.userContent }],
120
- },
121
- ...(args.response ? { output: { content: args.response.content } } : {}),
122
- ...(args.error !== undefined ? { error: args.error } : {}),
123
- correlationId: ctx?.correlationId ?? null,
124
- address: ctx?.address ?? null,
125
- recipeName: ctx?.recipeName ?? null,
126
- runtimeId: ctx?.runtimeId ?? null,
127
- runtimeVersion: ctx?.runtimeVersion ?? null,
128
- });
129
- }
130
- catch (spanErr) {
131
- logger.warn('emitSpan threw — original call outcome preserved', {
132
- err: spanErr instanceof Error ? spanErr.message : String(spanErr),
133
- model: args.model,
134
- synthRunId: args.synthRunId,
135
- });
136
- }
137
- }
138
57
  }
139
58
  // ─── Error classification ───────────────────────────────────────────────────
140
59
  function classifyAnthropicError(error) {
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-llm-decision.js","sourceRoot":"","sources":["../../../src/actions/llm-decision/anthropic-llm-decision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic-llm-decision.js","sourceRoot":"","sources":["../../../src/actions/llm-decision/anthropic-llm-decision.ts"],"names":[],"mappings":"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"}