@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
@@ -1,115 +0,0 @@
1
- /**
2
- * Plugin-scoped SpanTracker factory.
3
- *
4
- * One SpanTracker is built at plugin register() and shared across all runtime
5
- * instances and OpenClaw hooks running inside this gateway. The transport is
6
- * authenticated with the gateway's single SENPI_API_KEY (one-gateway-per-user
7
- * deployment assumption).
8
- *
9
- * Span sink (OTEL v2 cutover): `SENPI_SPANS_SINK` selects where spans go —
10
- * - `legacy` → POST /api/v1/tracking/spans (BatchingSpanTransport)
11
- * - `dual` → both, via FanOutSpanTransport (default; validation phase)
12
- * - `otel` → POST /v1/traces (RecordingSpanTransport → recording batcher)
13
- * Every transition is config-only (set the env var + restart); see the design
14
- * doc's cutover plan.
15
- */
16
- import { createLogger } from "../../utils/logger.js";
17
- import { TRACKING_API_BASE_URL } from "../constants.js";
18
- import { createBatcher, createTelemetryClient, resolveTransportConfig, } from "../../recording/transport/index.js";
19
- import { TRACES_PATH } from "../../recording/transport/config.js";
20
- import { BatchingSpanTransport, NoOpSpanTransport } from "./span-transport.js";
21
- import { FanOutSpanTransport } from "./fan-out-span-transport.js";
22
- import { RecordingSpanTransport } from "./otel/recording-span-transport.js";
23
- import { SpanTracker } from "./span-tracker.js";
24
- import { createOpenRedactionAdapter, isPiiRedactionEnabled, setDefaultPiiRedactor, } from "./redact-pii.js";
25
- const logger = createLogger("[senpi-core][plugin-span-tracker]");
26
- /** Parse `SENPI_SPANS_SINK`; unknown/unset → `dual` (the validation default). */
27
- export function resolveSpanSinkMode(value) {
28
- const v = value?.trim().toLowerCase();
29
- if (v === "legacy" || v === "dual" || v === "otel")
30
- return v;
31
- return "dual";
32
- }
33
- /** Compose the active transport from the two children per the sink mode. */
34
- export function composeSpanTransport(mode, legacy, recording) {
35
- switch (mode) {
36
- case "legacy":
37
- return legacy;
38
- case "otel":
39
- return recording;
40
- case "dual":
41
- return new FanOutSpanTransport([legacy, recording]);
42
- }
43
- }
44
- /**
45
- * Initialize the process-wide default PII redactor when the feature flag is on.
46
- * Lazy — the OpenRedaction library is only imported when the flag is set, so
47
- * builds and gateways that don't enable redaction don't pay the import cost.
48
- *
49
- * Fire-and-forget. Failures are logged; spans continue flowing unredacted
50
- * rather than blocking startup.
51
- */
52
- function initPiiRedactor() {
53
- if (!isPiiRedactionEnabled()) {
54
- logger.info("PII redaction disabled (set SENPI_PII_REDACTION_ENABLED=true to enable)");
55
- return;
56
- }
57
- createOpenRedactionAdapter()
58
- .then((redactor) => {
59
- setDefaultPiiRedactor(redactor);
60
- logger.info("PII redaction enabled — spans will be scrubbed for emails, international phones (US/IN/CN/KR/JP/UK/BR/+intl), vendor API keys, EVM private keys, and BIP39 mnemonics before transport");
61
- })
62
- .catch((err) => {
63
- logger.warn("PII redaction init failed — spans will flow UNredacted; check openredaction install", { err: err instanceof Error ? err.message : String(err) });
64
- });
65
- }
66
- export function createPluginSpanTracker(apiKey) {
67
- initPiiRedactor();
68
- if (!apiKey) {
69
- logger.warn("span telemetry disabled: set SENPI_API_KEY (or pass apiKey) so spans reach senpi-agent-telemetry; NoOpSpanTransport drops spans");
70
- return new SpanTracker({ transport: new NoOpSpanTransport() });
71
- }
72
- const mode = resolveSpanSinkMode(process.env.SENPI_SPANS_SINK);
73
- const trackingBaseUrl = process.env.SENPI_TRACKING_URL ?? TRACKING_API_BASE_URL;
74
- // Build only the children the mode needs; the unused side is a cheap NoOp.
75
- const legacy = mode === "otel"
76
- ? new NoOpSpanTransport()
77
- : new BatchingSpanTransport({ baseUrl: trackingBaseUrl, apiKey });
78
- let recording;
79
- if (mode === "legacy") {
80
- recording = new NoOpSpanTransport();
81
- }
82
- else {
83
- const otelConfig = resolveTransportConfig({ getToken: () => apiKey });
84
- // DIAGNOSTIC: confirm exactly where the span batcher posts and with what.
85
- logger.info("span otel transport target", {
86
- baseUrl: otelConfig.baseUrl,
87
- tracesPath: TRACES_PATH,
88
- tokenPresent: Boolean(apiKey),
89
- flushIntervalMs: otelConfig.flushIntervalMs,
90
- });
91
- const baseClient = createTelemetryClient(otelConfig);
92
- // DIAGNOSTIC: log every trace send outcome (does it arrive? accepted? rejected? why?).
93
- const loggingClient = {
94
- sendTraces: async (rowsJson) => {
95
- const res = await baseClient.sendTraces(rowsJson);
96
- logger.info("span otel sendTraces result", {
97
- rows: rowsJson.length,
98
- outcome: res.outcome,
99
- status: res.status,
100
- accepted: res.accepted,
101
- rejected: res.rejected,
102
- errors: res.errors?.slice(0, 3),
103
- });
104
- return res;
105
- },
106
- sendLogs: (rowsJson) => baseClient.sendLogs(rowsJson),
107
- };
108
- recording = new RecordingSpanTransport({
109
- batcher: createBatcher(otelConfig, loggingClient),
110
- });
111
- }
112
- logger.info("span sink mode", { mode });
113
- return new SpanTracker({ transport: composeSpanTransport(mode, legacy, recording) });
114
- }
115
- //# sourceMappingURL=plugin-span-tracker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-span-tracker.js","sourceRoot":"","sources":["../../../src/tracking/spans/plugin-span-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,133 +0,0 @@
1
- import type { EmissionSource, SpanTransport } from "./types.js";
2
- export interface SpanContextFields {
3
- correlationId?: string | null;
4
- address?: string | null;
5
- recipeName?: string | null;
6
- runtimeId?: string | null;
7
- runtimeVersion?: string | null;
8
- }
9
- export interface OpenLlmSpanInput extends SpanContextFields {
10
- sessionKey: string;
11
- runId: string;
12
- emissionSource: EmissionSource;
13
- startedAt?: number;
14
- input: Record<string, unknown>;
15
- }
16
- export interface FinalizeLlmSpanInput extends SpanContextFields {
17
- sessionKey: string;
18
- runId: string;
19
- output?: Record<string, unknown>;
20
- error?: unknown;
21
- model?: string | null;
22
- tokensIn?: number | null;
23
- tokensOut?: number | null;
24
- costUsd?: number | null;
25
- }
26
- export interface OpenToolSpanInput extends SpanContextFields {
27
- sessionKey: string;
28
- runId: string;
29
- emissionSource: EmissionSource;
30
- toolCallId: string | null;
31
- toolName: string;
32
- toolInput?: Record<string, unknown>;
33
- startedAt?: number;
34
- }
35
- export interface FinalizeToolSpanInput extends SpanContextFields {
36
- sessionKey: string;
37
- runId: string;
38
- toolCallId: string | null;
39
- toolName: string;
40
- output?: unknown;
41
- error?: unknown;
42
- durationMs?: number;
43
- }
44
- export interface DirectLlmSpanInput extends SpanContextFields {
45
- sessionKey: string;
46
- runId: string;
47
- startedAt: number;
48
- endedAt: number;
49
- model?: string | null;
50
- tokensIn?: number | null;
51
- tokensOut?: number | null;
52
- costUsd?: number | null;
53
- input: Record<string, unknown>;
54
- output?: Record<string, unknown>;
55
- error?: unknown;
56
- parentSpanId?: string | null;
57
- }
58
- export interface DirectToolSpanInput extends SpanContextFields {
59
- sessionKey: string;
60
- runId: string;
61
- toolCallId?: string | null;
62
- toolName: string;
63
- startedAt: number;
64
- endedAt: number;
65
- input?: Record<string, unknown>;
66
- output?: unknown;
67
- error?: unknown;
68
- parentSpanId?: string | null;
69
- }
70
- export interface OpenSubagentInput extends SpanContextFields {
71
- hostSessionKey: string;
72
- hostRunId: string;
73
- childSessionKey: string;
74
- parentSpanId: string | null;
75
- input: Record<string, unknown>;
76
- startedAt?: number;
77
- }
78
- export interface MergeSubagentInput {
79
- childSessionKey: string;
80
- /** Status to record (e.g., "spawned", "delivery_target"). */
81
- status: string;
82
- /** Additional fields to merge into `data` (e.g., delivery metadata). */
83
- patch?: Record<string, unknown>;
84
- }
85
- export interface FinalizeSubagentInput {
86
- childSessionKey: string;
87
- status: string;
88
- output?: Record<string, unknown>;
89
- error?: unknown;
90
- }
91
- export interface AgentEndInput extends SpanContextFields {
92
- sessionKey: string;
93
- runId: string;
94
- outcome?: unknown;
95
- error?: unknown;
96
- }
97
- export interface SpanTrackerOptions {
98
- transport: SpanTransport;
99
- /** Override Date.now for tests. */
100
- now?: () => number;
101
- staleTimeoutMs?: number;
102
- sweepIntervalMs?: number;
103
- /** Start the periodic stale sweeper. Set false in tests for determinism. */
104
- enableSweeper?: boolean;
105
- }
106
- export declare class SpanTracker {
107
- private readonly transport;
108
- private readonly now;
109
- private readonly staleTimeoutMs;
110
- private readonly openSpans;
111
- private readonly openSubagents;
112
- private toolSeq;
113
- private sweepTimer;
114
- constructor(options: SpanTrackerOptions);
115
- openLlmSpan(input: OpenLlmSpanInput): string;
116
- finalizeLlmSpan(input: FinalizeLlmSpanInput): void;
117
- /** Returns the id of the currently-open LLM span for (session, run), or null. */
118
- getActiveLlmSpanId(sessionKey: string, runId: string): string | null;
119
- openToolSpan(input: OpenToolSpanInput): string;
120
- finalizeToolSpan(input: FinalizeToolSpanInput): void;
121
- openSubagentSpan(input: OpenSubagentInput): string;
122
- /** Merge fields into an existing subagent (e.g., on _spawned, _delivery_target). Lazy-creates if missing. */
123
- mergeSubagentSpan(input: MergeSubagentInput, context?: SpanContextFields): void;
124
- finalizeSubagentSpan(input: FinalizeSubagentInput, context?: SpanContextFields): void;
125
- captureAgentEnd(input: AgentEndInput): void;
126
- captureLlmSpan(input: DirectLlmSpanInput): void;
127
- captureToolSpan(input: DirectToolSpanInput): void;
128
- sweepStale(): void;
129
- shutdown(): Promise<void>;
130
- private enqueueOrphan;
131
- private enqueueSubagentOrphan;
132
- }
133
- //# sourceMappingURL=span-tracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"span-tracker.d.ts","sourceRoot":"","sources":["../../../src/tracking/spans/span-tracker.ts"],"names":[],"mappings":"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"}