@senpi/runtime 1.1.0-dev.runtime-phase-2.20260515135454 → 1.1.0-dev.runtime-phase-2.20260519125628
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.
- package/dist/actions/llm-decision/anthropic-llm-decision.d.ts +9 -0
- package/dist/actions/llm-decision/anthropic-llm-decision.d.ts.map +1 -1
- package/dist/actions/llm-decision/anthropic-llm-decision.js +74 -3
- package/dist/actions/llm-decision/anthropic-llm-decision.js.map +1 -1
- package/dist/actions/llm-decision/factory.d.ts +6 -0
- package/dist/actions/llm-decision/factory.d.ts.map +1 -1
- package/dist/actions/llm-decision/factory.js +2 -0
- package/dist/actions/llm-decision/factory.js.map +1 -1
- package/dist/actions/llm-decision/openclaw-llm-decision.d.ts.map +1 -1
- package/dist/actions/llm-decision/openclaw-llm-decision.js +28 -0
- package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/run.d.ts +6 -0
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +1 -0
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/runtime-schema.d.ts +1019 -1
- package/dist/runtime/runtime-schema.d.ts.map +1 -1
- package/dist/runtime/runtime-schema.js +34 -0
- package/dist/runtime/runtime-schema.js.map +1 -1
- package/dist/runtime/runtime.d.ts +8 -0
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +57 -37
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/tracking/context.d.ts +31 -0
- package/dist/tracking/context.d.ts.map +1 -0
- package/dist/tracking/context.js +20 -0
- package/dist/tracking/context.js.map +1 -0
- package/dist/tracking/spans/constants.d.ts +15 -0
- package/dist/tracking/spans/constants.d.ts.map +1 -0
- package/dist/tracking/spans/constants.js +18 -0
- package/dist/tracking/spans/constants.js.map +1 -0
- package/dist/tracking/spans/index.d.ts +13 -0
- package/dist/tracking/spans/index.d.ts.map +1 -0
- package/dist/tracking/spans/index.js +16 -0
- package/dist/tracking/spans/index.js.map +1 -0
- package/dist/tracking/spans/plugin-span-tracker.d.ts +3 -0
- package/dist/tracking/spans/plugin-span-tracker.d.ts.map +1 -0
- package/dist/tracking/spans/plugin-span-tracker.js +24 -0
- package/dist/tracking/spans/plugin-span-tracker.js.map +1 -0
- package/dist/tracking/spans/span-hooks.d.ts +26 -0
- package/dist/tracking/spans/span-hooks.d.ts.map +1 -0
- package/dist/tracking/spans/span-hooks.js +399 -0
- package/dist/tracking/spans/span-hooks.js.map +1 -0
- package/dist/tracking/spans/span-tracker.d.ts +120 -0
- package/dist/tracking/spans/span-tracker.d.ts.map +1 -0
- package/dist/tracking/spans/span-tracker.js +616 -0
- package/dist/tracking/spans/span-tracker.js.map +1 -0
- package/dist/tracking/spans/span-transport.d.ts +34 -0
- package/dist/tracking/spans/span-transport.d.ts.map +1 -0
- package/dist/tracking/spans/span-transport.js +121 -0
- package/dist/tracking/spans/span-transport.js.map +1 -0
- package/dist/tracking/spans/types.d.ts +78 -0
- package/dist/tracking/spans/types.d.ts.map +1 -0
- package/dist/tracking/spans/types.js +6 -0
- package/dist/tracking/spans/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
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 type { TrackingSpan, SpanTransport } from "./types.js";
|
|
7
|
+
export interface BatchingSpanTransportOptions {
|
|
8
|
+
baseUrl: string;
|
|
9
|
+
apiKey: string;
|
|
10
|
+
flushIntervalMs?: number;
|
|
11
|
+
flushThreshold?: number;
|
|
12
|
+
maxBufferSize?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class BatchingSpanTransport implements SpanTransport {
|
|
15
|
+
private buffer;
|
|
16
|
+
private timer;
|
|
17
|
+
private flushing;
|
|
18
|
+
private readonly url;
|
|
19
|
+
private readonly apiKey;
|
|
20
|
+
private readonly flushIntervalMs;
|
|
21
|
+
private readonly flushThreshold;
|
|
22
|
+
private readonly maxBufferSize;
|
|
23
|
+
constructor(options: BatchingSpanTransportOptions);
|
|
24
|
+
enqueue(span: TrackingSpan): void;
|
|
25
|
+
flush(): Promise<void>;
|
|
26
|
+
shutdown(): Promise<void>;
|
|
27
|
+
private pushBack;
|
|
28
|
+
}
|
|
29
|
+
export declare class NoOpSpanTransport implements SpanTransport {
|
|
30
|
+
enqueue(_span: TrackingSpan): void;
|
|
31
|
+
flush(): Promise<void>;
|
|
32
|
+
shutdown(): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=span-transport.d.ts.map
|
|
@@ -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":"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"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tracking/spans/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/package.json
CHANGED