@senpi/runtime 1.1.0-dev.runtime-phase-2.20260515135454 → 1.1.0-dev.runtime-phase-2.20260519120952

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 (59) hide show
  1. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts +9 -0
  2. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts.map +1 -1
  3. package/dist/actions/llm-decision/anthropic-llm-decision.js +74 -3
  4. package/dist/actions/llm-decision/anthropic-llm-decision.js.map +1 -1
  5. package/dist/actions/llm-decision/factory.d.ts +6 -0
  6. package/dist/actions/llm-decision/factory.d.ts.map +1 -1
  7. package/dist/actions/llm-decision/factory.js +2 -0
  8. package/dist/actions/llm-decision/factory.js.map +1 -1
  9. package/dist/actions/llm-decision/openclaw-llm-decision.d.ts.map +1 -1
  10. package/dist/actions/llm-decision/openclaw-llm-decision.js +28 -0
  11. package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +18 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/runtime/run.d.ts +6 -0
  16. package/dist/runtime/run.d.ts.map +1 -1
  17. package/dist/runtime/run.js +1 -0
  18. package/dist/runtime/run.js.map +1 -1
  19. package/dist/runtime/runtime-schema.d.ts +1019 -1
  20. package/dist/runtime/runtime-schema.d.ts.map +1 -1
  21. package/dist/runtime/runtime-schema.js +34 -0
  22. package/dist/runtime/runtime-schema.js.map +1 -1
  23. package/dist/runtime/runtime.d.ts +8 -0
  24. package/dist/runtime/runtime.d.ts.map +1 -1
  25. package/dist/runtime/runtime.js +57 -37
  26. package/dist/runtime/runtime.js.map +1 -1
  27. package/dist/tracking/context.d.ts +31 -0
  28. package/dist/tracking/context.d.ts.map +1 -0
  29. package/dist/tracking/context.js +20 -0
  30. package/dist/tracking/context.js.map +1 -0
  31. package/dist/tracking/spans/constants.d.ts +15 -0
  32. package/dist/tracking/spans/constants.d.ts.map +1 -0
  33. package/dist/tracking/spans/constants.js +18 -0
  34. package/dist/tracking/spans/constants.js.map +1 -0
  35. package/dist/tracking/spans/index.d.ts +13 -0
  36. package/dist/tracking/spans/index.d.ts.map +1 -0
  37. package/dist/tracking/spans/index.js +16 -0
  38. package/dist/tracking/spans/index.js.map +1 -0
  39. package/dist/tracking/spans/plugin-span-tracker.d.ts +3 -0
  40. package/dist/tracking/spans/plugin-span-tracker.d.ts.map +1 -0
  41. package/dist/tracking/spans/plugin-span-tracker.js +24 -0
  42. package/dist/tracking/spans/plugin-span-tracker.js.map +1 -0
  43. package/dist/tracking/spans/span-hooks.d.ts +26 -0
  44. package/dist/tracking/spans/span-hooks.d.ts.map +1 -0
  45. package/dist/tracking/spans/span-hooks.js +365 -0
  46. package/dist/tracking/spans/span-hooks.js.map +1 -0
  47. package/dist/tracking/spans/span-tracker.d.ts +120 -0
  48. package/dist/tracking/spans/span-tracker.d.ts.map +1 -0
  49. package/dist/tracking/spans/span-tracker.js +604 -0
  50. package/dist/tracking/spans/span-tracker.js.map +1 -0
  51. package/dist/tracking/spans/span-transport.d.ts +34 -0
  52. package/dist/tracking/spans/span-transport.d.ts.map +1 -0
  53. package/dist/tracking/spans/span-transport.js +121 -0
  54. package/dist/tracking/spans/span-transport.js.map +1 -0
  55. package/dist/tracking/spans/types.d.ts +78 -0
  56. package/dist/tracking/spans/types.d.ts.map +1 -0
  57. package/dist/tracking/spans/types.js +6 -0
  58. package/dist/tracking/spans/types.js.map +1 -0
  59. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-transport.d.ts","sourceRoot":"","sources":["../../../src/tracking/spans/span-transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAW9D,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,OAAO,EAAE,4BAA4B;IAejD,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAW3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgDtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB/B,OAAO,CAAC,QAAQ;CAOjB;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IACtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Span transports: BatchingSpanTransport (HTTP POST) and NoOpSpanTransport.
3
+ *
4
+ * Mirrors src/tracking/transport.ts. Never throws — all errors caught and logged.
5
+ */
6
+ import { SPANS_API_PATH, FLUSH_INTERVAL_MS, FLUSH_THRESHOLD, MAX_BUFFER_SIZE, } from "./constants.js";
7
+ import { createLogger } from "../../utils/logger.js";
8
+ const logger = createLogger("[senpi-core][span-transport]");
9
+ export class BatchingSpanTransport {
10
+ buffer = [];
11
+ timer = null;
12
+ flushing = false;
13
+ url;
14
+ apiKey;
15
+ flushIntervalMs;
16
+ flushThreshold;
17
+ maxBufferSize;
18
+ constructor(options) {
19
+ this.url = `${options.baseUrl.replace(/\/+$/, "")}${SPANS_API_PATH}`;
20
+ this.apiKey = options.apiKey;
21
+ this.flushIntervalMs = options.flushIntervalMs ?? FLUSH_INTERVAL_MS;
22
+ this.flushThreshold = options.flushThreshold ?? FLUSH_THRESHOLD;
23
+ this.maxBufferSize = options.maxBufferSize ?? MAX_BUFFER_SIZE;
24
+ this.timer = setInterval(() => {
25
+ void this.flush();
26
+ }, this.flushIntervalMs);
27
+ if (this.timer && typeof this.timer === "object" && "unref" in this.timer) {
28
+ this.timer.unref();
29
+ }
30
+ }
31
+ enqueue(span) {
32
+ if (this.buffer.length >= this.maxBufferSize) {
33
+ this.buffer.shift();
34
+ }
35
+ this.buffer.push(span);
36
+ if (this.buffer.length >= this.flushThreshold) {
37
+ void this.flush();
38
+ }
39
+ }
40
+ async flush() {
41
+ if (this.flushing || this.buffer.length === 0)
42
+ return;
43
+ this.flushing = true;
44
+ const batch = this.buffer.splice(0, this.flushThreshold);
45
+ try {
46
+ const response = await fetch(this.url, {
47
+ method: "POST",
48
+ headers: {
49
+ "Content-Type": "application/json",
50
+ Authorization: `Bearer ${this.apiKey}`,
51
+ },
52
+ body: JSON.stringify({ spans: batch }),
53
+ signal: AbortSignal.timeout(15_000),
54
+ });
55
+ if (!response.ok) {
56
+ const body = await response.text().catch(() => "<unreadable>");
57
+ let validationErrors;
58
+ if (response.status === 400) {
59
+ try {
60
+ const parsed = JSON.parse(body);
61
+ if (Array.isArray(parsed.errors))
62
+ validationErrors = parsed.errors;
63
+ }
64
+ catch {
65
+ /* not JSON */
66
+ }
67
+ }
68
+ logger.warn("span flush failed", {
69
+ status: response.status,
70
+ spanCount: batch.length,
71
+ body: body.slice(0, 500),
72
+ validationErrors,
73
+ sample: batch[0],
74
+ });
75
+ this.pushBack(batch);
76
+ }
77
+ }
78
+ catch (err) {
79
+ logger.warn("span flush error", {
80
+ err: err instanceof Error ? err.message : String(err),
81
+ spanCount: batch.length,
82
+ });
83
+ this.pushBack(batch);
84
+ }
85
+ finally {
86
+ this.flushing = false;
87
+ }
88
+ }
89
+ async shutdown() {
90
+ if (this.timer) {
91
+ clearInterval(this.timer);
92
+ this.timer = null;
93
+ }
94
+ this.flushing = false;
95
+ const maxAttempts = Math.ceil(this.maxBufferSize / this.flushThreshold) + 1;
96
+ for (let i = 0; i < maxAttempts && this.buffer.length > 0; i++) {
97
+ const before = this.buffer.length;
98
+ await this.flush();
99
+ if (this.buffer.length >= before)
100
+ break;
101
+ }
102
+ if (this.buffer.length > 0) {
103
+ logger.warn("span shutdown: dropping spans that failed to flush", {
104
+ dropped: this.buffer.length,
105
+ });
106
+ }
107
+ }
108
+ pushBack(spans) {
109
+ const space = this.maxBufferSize - this.buffer.length;
110
+ if (space > 0) {
111
+ const toRestore = spans.slice(0, space);
112
+ this.buffer.unshift(...toRestore);
113
+ }
114
+ }
115
+ }
116
+ export class NoOpSpanTransport {
117
+ enqueue(_span) { }
118
+ async flush() { }
119
+ async shutdown() { }
120
+ }
121
+ //# sourceMappingURL=span-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-transport.js","sourceRoot":"","sources":["../../../src/tracking/spans/span-transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,8BAA8B,CAAC,CAAC;AAU5D,MAAM,OAAO,qBAAqB;IACxB,MAAM,GAAmB,EAAE,CAAC;IAC5B,KAAK,GAA0C,IAAI,CAAC;IACpD,QAAQ,GAAG,KAAK,CAAC;IACR,GAAG,CAAS;IACZ,MAAM,CAAS;IACf,eAAe,CAAS;IACxB,cAAc,CAAS;IACvB,aAAa,CAAS;IAEvC,YAAY,OAAqC;QAC/C,IAAI,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC;QACrE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC;QACpE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,eAAe,CAAC;QAChE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,eAAe,CAAC;QAE9D,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1E,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAkB;QACxB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9C,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBACvC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBACtC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;aACpC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;gBAC/D,IAAI,gBAAsC,CAAC;gBAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC;wBACzD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;4BAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;oBACrE,CAAC;oBAAC,MAAM,CAAC;wBACP,cAAc;oBAChB,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;oBAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,SAAS,EAAE,KAAK,CAAC,MAAM;oBACvB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBACxB,gBAAgB;oBAChB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;iBACjB,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC9B,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACrD,SAAS,EAAE,KAAK,CAAC,MAAM;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAClC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM;gBAAE,MAAM;QAC1C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE;gBAChE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,KAAqB;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACtD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,iBAAiB;IAC5B,OAAO,CAAC,KAAmB,IAAS,CAAC;IACrC,KAAK,CAAC,KAAK,KAAmB,CAAC;IAC/B,KAAK,CAAC,QAAQ,KAAmB,CAAC;CACnC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Span types — runtime side.
3
+ * Matches the TrackingSpan envelope expected by POST /api/v1/tracking/spans.
4
+ */
5
+ export type SpanType = "llm" | "tool" | "subagent" | "agent_end";
6
+ export type EmissionSource = "hook" | "direct";
7
+ /**
8
+ * The finalized envelope posted to /spans. All fields are populated when the
9
+ * span is enqueued — the runtime stitches start/end events in memory first.
10
+ */
11
+ export interface TrackingSpan {
12
+ id: string;
13
+ correlationId: string | null;
14
+ sessionKey: string;
15
+ runId: string;
16
+ childSessionKey: string | null;
17
+ toolCallId: string | null;
18
+ parentSpanId: string | null;
19
+ spanType: SpanType;
20
+ emissionSource: EmissionSource;
21
+ timestamp: number;
22
+ address: string | null;
23
+ recipeName: string | null;
24
+ runtimeId: string | null;
25
+ runtimeVersion: string | null;
26
+ startedAt: number;
27
+ endedAt: number;
28
+ durationMs: number;
29
+ model: string | null;
30
+ tokensIn: number | null;
31
+ tokensOut: number | null;
32
+ costUsd: number | null;
33
+ data: Record<string, unknown>;
34
+ }
35
+ /** In-memory representation of an LLM or tool span between its start and end hook. */
36
+ export interface OpenSpan {
37
+ id: string;
38
+ spanType: "llm" | "tool";
39
+ sessionKey: string;
40
+ runId: string;
41
+ parentSpanId: string | null;
42
+ toolCallId: string | null;
43
+ startedAt: number;
44
+ correlationId: string | null;
45
+ address: string | null;
46
+ recipeName: string | null;
47
+ runtimeId: string | null;
48
+ runtimeVersion: string | null;
49
+ data: Record<string, unknown>;
50
+ /** Resolved at start so we can carry it through to enqueue. */
51
+ emissionSource: EmissionSource;
52
+ }
53
+ /**
54
+ * In-memory representation of a subagent span across the four-hook lifecycle.
55
+ * Keyed by `childSessionKey` in a registry that's separate from the LLM/tool map.
56
+ */
57
+ export interface OpenSubagentSpan {
58
+ id: string;
59
+ /** Host session this subagent was spawned from. */
60
+ hostSessionKey: string;
61
+ hostRunId: string;
62
+ childSessionKey: string;
63
+ parentSpanId: string | null;
64
+ startedAt: number;
65
+ correlationId: string | null;
66
+ address: string | null;
67
+ recipeName: string | null;
68
+ runtimeId: string | null;
69
+ runtimeVersion: string | null;
70
+ /** Accumulates `input`, `status`, `delivery`, `output` across hook fires. */
71
+ data: Record<string, unknown>;
72
+ }
73
+ export interface SpanTransport {
74
+ enqueue(span: TrackingSpan): void;
75
+ flush(): Promise<void>;
76
+ shutdown(): Promise<void>;
77
+ }
78
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tracking/spans/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Span types — runtime side.
3
+ * Matches the TrackingSpan envelope expected by POST /api/v1/tracking/spans.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tracking/spans/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@senpi/runtime",
3
- "version": "1.1.0-dev.runtime-phase-2.20260515135454",
3
+ "version": "1.1.0-dev.runtime-phase-2.20260519120952",
4
4
  "description": "Senpi runtime plugin for OpenClaw",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",