@prefactor/core 0.2.0 → 0.2.2
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/agent/instance-manager.d.ts +5 -8
- package/dist/agent/instance-manager.d.ts.map +1 -1
- package/dist/agent/instance-manager.js +34 -55
- package/dist/agent/instance-manager.js.map +1 -1
- package/dist/config.d.ts +15 -63
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +29 -20
- package/dist/config.js.map +1 -1
- package/dist/create-core.d.ts +0 -2
- package/dist/create-core.d.ts.map +1 -1
- package/dist/create-core.js +17 -28
- package/dist/create-core.js.map +1 -1
- package/dist/index.cjs +678 -453
- package/dist/index.cjs.map +20 -15
- package/dist/index.d.ts +4 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +678 -453
- package/dist/index.js.map +20 -15
- package/dist/lifecycle.d.ts +5 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +27 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/queue/actions.d.ts +15 -26
- package/dist/queue/actions.d.ts.map +1 -1
- package/dist/queue/base.d.ts +15 -3
- package/dist/queue/base.d.ts.map +1 -1
- package/dist/queue/in-memory-queue.d.ts +11 -0
- package/dist/queue/in-memory-queue.d.ts.map +1 -0
- package/dist/queue/in-memory-queue.js +46 -0
- package/dist/queue/in-memory-queue.js.map +1 -0
- package/dist/queue/task-executor.d.ts +18 -0
- package/dist/queue/task-executor.d.ts.map +1 -0
- package/dist/queue/task-executor.js +77 -0
- package/dist/queue/task-executor.js.map +1 -0
- package/dist/tracing/active-tracer.d.ts +5 -0
- package/dist/tracing/active-tracer.d.ts.map +1 -0
- package/dist/tracing/active-tracer.js +13 -0
- package/dist/tracing/active-tracer.js.map +1 -0
- package/dist/tracing/span.d.ts +7 -14
- package/dist/tracing/span.d.ts.map +1 -1
- package/dist/tracing/span.js +5 -36
- package/dist/tracing/span.js.map +1 -1
- package/dist/tracing/tracer.d.ts +6 -7
- package/dist/tracing/tracer.d.ts.map +1 -1
- package/dist/tracing/tracer.js +27 -12
- package/dist/tracing/tracer.js.map +1 -1
- package/dist/tracing/with-span.d.ts +4 -0
- package/dist/tracing/with-span.d.ts.map +1 -0
- package/dist/tracing/with-span.js +35 -0
- package/dist/tracing/with-span.js.map +1 -0
- package/dist/transport/http/agent-instance-client.d.ts +23 -0
- package/dist/transport/http/agent-instance-client.d.ts.map +1 -0
- package/dist/transport/http/agent-instance-client.js +25 -0
- package/dist/transport/http/agent-instance-client.js.map +1 -0
- package/dist/transport/http/agent-span-client.d.ts +25 -0
- package/dist/transport/http/agent-span-client.d.ts.map +1 -0
- package/dist/transport/http/agent-span-client.js +37 -0
- package/dist/transport/http/agent-span-client.js.map +1 -0
- package/dist/transport/http/http-client.d.ts +43 -0
- package/dist/transport/http/http-client.d.ts.map +1 -0
- package/dist/transport/http/http-client.js +127 -0
- package/dist/transport/http/http-client.js.map +1 -0
- package/dist/transport/http/retry-policy.d.ts +4 -0
- package/dist/transport/http/retry-policy.d.ts.map +1 -0
- package/dist/transport/http/retry-policy.js +10 -0
- package/dist/transport/http/retry-policy.js.map +1 -0
- package/dist/transport/http.d.ts +34 -50
- package/dist/transport/http.d.ts.map +1 -1
- package/dist/transport/http.js +163 -227
- package/dist/transport/http.js.map +1 -1
- package/dist/utils/logging.d.ts.map +1 -1
- package/dist/utils/logging.js +7 -1
- package/dist/utils/logging.js.map +1 -1
- package/package.json +1 -1
- package/dist/agent/schema-registry.d.ts +0 -9
- package/dist/agent/schema-registry.d.ts.map +0 -1
- package/dist/agent/schema-registry.js +0 -16
- package/dist/agent/schema-registry.js.map +0 -1
- package/dist/queue/in-memory.d.ts +0 -9
- package/dist/queue/in-memory.d.ts.map +0 -1
- package/dist/queue/in-memory.js +0 -18
- package/dist/queue/in-memory.js.map +0 -1
- package/dist/transport/base.d.ts +0 -18
- package/dist/transport/base.d.ts.map +0 -1
- package/dist/transport/base.js +0 -2
- package/dist/transport/base.js.map +0 -1
- package/dist/transport/stdio.d.ts +0 -36
- package/dist/transport/stdio.d.ts.map +0 -1
- package/dist/transport/stdio.js +0 -56
- package/dist/transport/stdio.js.map +0 -1
- package/dist/transport/worker.d.ts +0 -22
- package/dist/transport/worker.d.ts.map +0 -1
- package/dist/transport/worker.js +0 -85
- package/dist/transport/worker.js.map +0 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export class InMemoryQueue {
|
|
2
|
+
items = [];
|
|
3
|
+
waiters = [];
|
|
4
|
+
isClosed = false;
|
|
5
|
+
async put(item) {
|
|
6
|
+
if (this.isClosed) {
|
|
7
|
+
throw new Error('Cannot put item into a closed queue');
|
|
8
|
+
}
|
|
9
|
+
const waiter = this.waiters.shift();
|
|
10
|
+
if (waiter) {
|
|
11
|
+
waiter({ done: false, item });
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
this.items.push({ item });
|
|
15
|
+
}
|
|
16
|
+
async get() {
|
|
17
|
+
if (this.items.length > 0) {
|
|
18
|
+
const entry = this.items.shift();
|
|
19
|
+
if (entry) {
|
|
20
|
+
return { done: false, item: entry.item };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (this.isClosed) {
|
|
24
|
+
return { done: true };
|
|
25
|
+
}
|
|
26
|
+
return new Promise((resolve) => {
|
|
27
|
+
this.waiters.push(resolve);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
close() {
|
|
31
|
+
if (this.isClosed) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.isClosed = true;
|
|
35
|
+
while (this.waiters.length > 0) {
|
|
36
|
+
const waiter = this.waiters.shift();
|
|
37
|
+
if (waiter) {
|
|
38
|
+
waiter({ done: true });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
size() {
|
|
43
|
+
return this.items.length;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=in-memory-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-queue.js","sourceRoot":"","sources":["../../src/queue/in-memory-queue.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,aAAa;IAChB,KAAK,GAAoB,EAAE,CAAC;IAC5B,OAAO,GAA+C,EAAE,CAAC;IACzD,QAAQ,GAAG,KAAK,CAAC;IAEzB,KAAK,CAAC,GAAG,CAAC,IAAO;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,EAAE;YAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Queue, TaskExecutorOptions } from './base.js';
|
|
2
|
+
export declare class TaskExecutor<T> {
|
|
3
|
+
private queue;
|
|
4
|
+
private handler;
|
|
5
|
+
private isRunning;
|
|
6
|
+
private workerPromises;
|
|
7
|
+
private workerCount;
|
|
8
|
+
private maxRetries;
|
|
9
|
+
private retryDelayMs;
|
|
10
|
+
private onError?;
|
|
11
|
+
constructor(queue: Queue<T>, handler: (item: T) => Promise<void>, options?: TaskExecutorOptions<T>);
|
|
12
|
+
start(): void;
|
|
13
|
+
stop(): Promise<void>;
|
|
14
|
+
private runWorker;
|
|
15
|
+
private executeWithRetry;
|
|
16
|
+
private safeOnError;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=task-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../src/queue/task-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAM5D,qBAAa,YAAY,CAAC,CAAC;IASvB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IATjB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAoD;gBAG1D,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAC3C,OAAO,GAAE,mBAAmB,CAAC,CAAC,CAAM;IAQtC,KAAK,IAAI,IAAI;IASP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAWb,SAAS;YAWT,gBAAgB;YAsBhB,WAAW;CAW1B"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
const DEFAULT_WORKER_COUNT = 1;
|
|
2
|
+
const DEFAULT_MAX_RETRIES = 0;
|
|
3
|
+
const DEFAULT_RETRY_DELAY_MS = 0;
|
|
4
|
+
export class TaskExecutor {
|
|
5
|
+
queue;
|
|
6
|
+
handler;
|
|
7
|
+
isRunning = false;
|
|
8
|
+
workerPromises = [];
|
|
9
|
+
workerCount;
|
|
10
|
+
maxRetries;
|
|
11
|
+
retryDelayMs;
|
|
12
|
+
onError;
|
|
13
|
+
constructor(queue, handler, options = {}) {
|
|
14
|
+
this.queue = queue;
|
|
15
|
+
this.handler = handler;
|
|
16
|
+
this.workerCount = Math.max(options.workerCount ?? DEFAULT_WORKER_COUNT, 1);
|
|
17
|
+
this.maxRetries = Math.max(options.maxRetries ?? DEFAULT_MAX_RETRIES, 0);
|
|
18
|
+
this.retryDelayMs = Math.max(options.retryDelayMs ?? DEFAULT_RETRY_DELAY_MS, 0);
|
|
19
|
+
this.onError = options.onError;
|
|
20
|
+
}
|
|
21
|
+
start() {
|
|
22
|
+
if (this.isRunning) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.isRunning = true;
|
|
26
|
+
this.workerPromises = Array.from({ length: this.workerCount }, () => this.runWorker());
|
|
27
|
+
}
|
|
28
|
+
async stop() {
|
|
29
|
+
if (!this.isRunning) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.isRunning = false;
|
|
33
|
+
this.queue.close();
|
|
34
|
+
await Promise.all(this.workerPromises);
|
|
35
|
+
this.workerPromises = [];
|
|
36
|
+
}
|
|
37
|
+
async runWorker() {
|
|
38
|
+
while (true) {
|
|
39
|
+
const result = await this.queue.get();
|
|
40
|
+
if (result.done) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
await this.executeWithRetry(result.item);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async executeWithRetry(item) {
|
|
47
|
+
let attempt = 0;
|
|
48
|
+
while (attempt <= this.maxRetries) {
|
|
49
|
+
try {
|
|
50
|
+
await this.handler(item);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (attempt >= this.maxRetries) {
|
|
55
|
+
await this.safeOnError(error, item);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (this.retryDelayMs > 0) {
|
|
59
|
+
await new Promise((resolve) => setTimeout(resolve, this.retryDelayMs));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
attempt += 1;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async safeOnError(error, item) {
|
|
66
|
+
if (!this.onError) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
await this.onError(error, item);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=task-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-executor.js","sourceRoot":"","sources":["../../src/queue/task-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Tracer } from './tracer.js';
|
|
2
|
+
export declare function setActiveTracer(tracer: Tracer): void;
|
|
3
|
+
export declare function getActiveTracer(): Tracer | undefined;
|
|
4
|
+
export declare function clearActiveTracer(tracer?: Tracer): void;
|
|
5
|
+
//# sourceMappingURL=active-tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-tracer.d.ts","sourceRoot":"","sources":["../../src/tracing/active-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAIvD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
let activeTracer;
|
|
2
|
+
export function setActiveTracer(tracer) {
|
|
3
|
+
activeTracer = tracer;
|
|
4
|
+
}
|
|
5
|
+
export function getActiveTracer() {
|
|
6
|
+
return activeTracer;
|
|
7
|
+
}
|
|
8
|
+
export function clearActiveTracer(tracer) {
|
|
9
|
+
if (!tracer || activeTracer === tracer) {
|
|
10
|
+
activeTracer = undefined;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=active-tracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-tracer.js","sourceRoot":"","sources":["../../src/tracing/active-tracer.ts"],"names":[],"mappings":"AAEA,IAAI,YAAgC,CAAC;AAErC,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,YAAY,GAAG,MAAM,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC/C,IAAI,CAAC,MAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QACvC,YAAY,GAAG,SAAS,CAAC;IAC3B,CAAC;AACH,CAAC"}
|
package/dist/tracing/span.d.ts
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Types of spans that can be traced
|
|
3
3
|
*/
|
|
4
|
-
export declare
|
|
5
|
-
AGENT
|
|
6
|
-
LLM
|
|
7
|
-
TOOL
|
|
8
|
-
CHAIN
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Default agent schema (v1.0.0) with span schemas for all supported types.
|
|
13
|
-
* Used when no custom schema is provided during registration.
|
|
14
|
-
*/
|
|
15
|
-
export declare const DEFAULT_AGENT_SCHEMA: Record<string, unknown>;
|
|
4
|
+
export declare const SpanType: {
|
|
5
|
+
readonly AGENT: "agent";
|
|
6
|
+
readonly LLM: "llm";
|
|
7
|
+
readonly TOOL: "tool";
|
|
8
|
+
readonly CHAIN: "chain";
|
|
9
|
+
};
|
|
10
|
+
export type SpanType = (typeof SpanType)[keyof typeof SpanType] | string;
|
|
16
11
|
/**
|
|
17
12
|
* Status of a span
|
|
18
13
|
*/
|
|
@@ -67,7 +62,5 @@ export interface Span {
|
|
|
67
62
|
error: ErrorInfo | null;
|
|
68
63
|
/** Additional metadata about this span */
|
|
69
64
|
metadata: Record<string, unknown>;
|
|
70
|
-
/** Tags for categorizing and filtering spans */
|
|
71
|
-
tags: string[];
|
|
72
65
|
}
|
|
73
66
|
//# sourceMappingURL=span.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span.d.ts","sourceRoot":"","sources":["../../src/tracing/span.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"span.d.ts","sourceRoot":"","sources":["../../src/tracing/span.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;CAKX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,GAAG,MAAM,CAAC;AAEzE;;GAEG;AACH,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IAEf,4DAA4D;IAC5D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAEhB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IAEb,6CAA6C;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IAEnB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,iCAAiC;IACjC,MAAM,EAAE,UAAU,CAAC;IAEnB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAExC,2DAA2D;IAC3D,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAE9B,kEAAkE;IAClE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAExB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
|
package/dist/tracing/span.js
CHANGED
|
@@ -1,42 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Types of spans that can be traced
|
|
3
3
|
*/
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
SpanType["CHAIN"] = "chain";
|
|
10
|
-
SpanType["RETRIEVER"] = "retriever";
|
|
11
|
-
})(SpanType || (SpanType = {}));
|
|
12
|
-
/**
|
|
13
|
-
* Default agent schema (v1.0.0) with span schemas for all supported types.
|
|
14
|
-
* Used when no custom schema is provided during registration.
|
|
15
|
-
*/
|
|
16
|
-
export const DEFAULT_AGENT_SCHEMA = {
|
|
17
|
-
external_identifier: '1.0.0',
|
|
18
|
-
span_schemas: {
|
|
19
|
-
agent: {
|
|
20
|
-
type: 'object',
|
|
21
|
-
properties: { type: { type: 'string', const: 'agent' } },
|
|
22
|
-
},
|
|
23
|
-
llm: {
|
|
24
|
-
type: 'object',
|
|
25
|
-
properties: { type: { type: 'string', const: 'llm' } },
|
|
26
|
-
},
|
|
27
|
-
tool: {
|
|
28
|
-
type: 'object',
|
|
29
|
-
properties: { type: { type: 'string', const: 'tool' } },
|
|
30
|
-
},
|
|
31
|
-
chain: {
|
|
32
|
-
type: 'object',
|
|
33
|
-
properties: { type: { type: 'string', const: 'chain' } },
|
|
34
|
-
},
|
|
35
|
-
retriever: {
|
|
36
|
-
type: 'object',
|
|
37
|
-
properties: { type: { type: 'string', const: 'retriever' } },
|
|
38
|
-
},
|
|
39
|
-
},
|
|
4
|
+
export const SpanType = {
|
|
5
|
+
AGENT: 'agent',
|
|
6
|
+
LLM: 'llm',
|
|
7
|
+
TOOL: 'tool',
|
|
8
|
+
CHAIN: 'chain',
|
|
40
9
|
};
|
|
41
10
|
/**
|
|
42
11
|
* Status of a span
|
package/dist/tracing/span.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span.js","sourceRoot":"","sources":["../../src/tracing/span.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"span.js","sourceRoot":"","sources":["../../src/tracing/span.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACN,CAAC;AAIX;;GAEG;AACH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,6BAAe,CAAA;AACjB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB"}
|
package/dist/tracing/tracer.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type Partition } from '@prefactor/pfid';
|
|
2
|
-
import type {
|
|
3
|
-
import type { Queue } from '../queue/base.js';
|
|
2
|
+
import type { Transport } from '../transport/http.js';
|
|
4
3
|
import type { Span, TokenUsage } from './span.js';
|
|
5
4
|
import { SpanType } from './span.js';
|
|
6
5
|
/**
|
|
@@ -15,8 +14,6 @@ export interface StartSpanOptions {
|
|
|
15
14
|
inputs: Record<string, unknown>;
|
|
16
15
|
/** Additional metadata (optional) */
|
|
17
16
|
metadata?: Record<string, unknown>;
|
|
18
|
-
/** Tags for categorizing the span (optional) */
|
|
19
|
-
tags?: string[];
|
|
20
17
|
}
|
|
21
18
|
/**
|
|
22
19
|
* Options for ending a span
|
|
@@ -57,15 +54,15 @@ export interface EndSpanOptions {
|
|
|
57
54
|
* ```
|
|
58
55
|
*/
|
|
59
56
|
export declare class Tracer {
|
|
60
|
-
private
|
|
57
|
+
private transport;
|
|
61
58
|
private partition;
|
|
62
59
|
/**
|
|
63
60
|
* Initialize the tracer.
|
|
64
61
|
*
|
|
65
|
-
* @param
|
|
62
|
+
* @param transport - The transport to use for emitting spans
|
|
66
63
|
* @param partition - The partition for ID generation. If not provided, a random partition will be generated.
|
|
67
64
|
*/
|
|
68
|
-
constructor(
|
|
65
|
+
constructor(transport: Transport, partition?: Partition);
|
|
69
66
|
/**
|
|
70
67
|
* Start a new span
|
|
71
68
|
*
|
|
@@ -86,5 +83,7 @@ export declare class Tracer {
|
|
|
86
83
|
* @returns Promise that resolves when the tracer is closed
|
|
87
84
|
*/
|
|
88
85
|
close(): Promise<void>;
|
|
86
|
+
startAgentInstance(): void;
|
|
87
|
+
finishAgentInstance(): void;
|
|
89
88
|
}
|
|
90
89
|
//# sourceMappingURL=tracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/tracing/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/tracing/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAc,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,6CAA6C;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IAEnB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,mCAAmC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,8CAA8C;IAC9C,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,MAAM;IAUf,OAAO,CAAC,SAAS;IATnB,OAAO,CAAC,SAAS,CAAY;IAE7B;;;;;OAKG;gBAEO,SAAS,EAAE,SAAS,EAC5B,SAAS,CAAC,EAAE,SAAS;IAKvB;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAkC1C;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IA8BnD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B,kBAAkB,IAAI,IAAI;IAQ1B,mBAAmB,IAAI,IAAI;CAO5B"}
|
package/dist/tracing/tracer.js
CHANGED
|
@@ -29,16 +29,16 @@ import { SpanStatus, SpanType } from './span.js';
|
|
|
29
29
|
* ```
|
|
30
30
|
*/
|
|
31
31
|
export class Tracer {
|
|
32
|
-
|
|
32
|
+
transport;
|
|
33
33
|
partition;
|
|
34
34
|
/**
|
|
35
35
|
* Initialize the tracer.
|
|
36
36
|
*
|
|
37
|
-
* @param
|
|
37
|
+
* @param transport - The transport to use for emitting spans
|
|
38
38
|
* @param partition - The partition for ID generation. If not provided, a random partition will be generated.
|
|
39
39
|
*/
|
|
40
|
-
constructor(
|
|
41
|
-
this.
|
|
40
|
+
constructor(transport, partition) {
|
|
41
|
+
this.transport = transport;
|
|
42
42
|
this.partition = partition ?? generatePartition();
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
@@ -65,16 +65,15 @@ export class Tracer {
|
|
|
65
65
|
tokenUsage: null,
|
|
66
66
|
error: null,
|
|
67
67
|
metadata: options.metadata ?? {},
|
|
68
|
-
tags: options.tags ?? [],
|
|
69
68
|
};
|
|
70
69
|
// AGENT spans are emitted immediately for real-time tracking
|
|
71
70
|
// They will be finished later with finishSpan()
|
|
72
71
|
if (options.spanType === SpanType.AGENT) {
|
|
73
72
|
try {
|
|
74
|
-
this.
|
|
73
|
+
this.transport.emit(span);
|
|
75
74
|
}
|
|
76
75
|
catch (error) {
|
|
77
|
-
console.error('Failed to
|
|
76
|
+
console.error('Failed to emit agent span:', error);
|
|
78
77
|
}
|
|
79
78
|
}
|
|
80
79
|
return span;
|
|
@@ -105,14 +104,14 @@ export class Tracer {
|
|
|
105
104
|
// AGENT spans use finishSpan API (they were already emitted on start)
|
|
106
105
|
// Other span types are emitted here
|
|
107
106
|
if (span.spanType === SpanType.AGENT) {
|
|
108
|
-
this.
|
|
107
|
+
this.transport.finishSpan(span.spanId, endTime);
|
|
109
108
|
}
|
|
110
109
|
else {
|
|
111
|
-
this.
|
|
110
|
+
this.transport.emit(span);
|
|
112
111
|
}
|
|
113
112
|
}
|
|
114
113
|
catch (error) {
|
|
115
|
-
console.error('Failed to
|
|
114
|
+
console.error('Failed to emit span action:', error);
|
|
116
115
|
}
|
|
117
116
|
}
|
|
118
117
|
/**
|
|
@@ -122,10 +121,26 @@ export class Tracer {
|
|
|
122
121
|
*/
|
|
123
122
|
async close() {
|
|
124
123
|
try {
|
|
125
|
-
await this.
|
|
124
|
+
await this.transport.close();
|
|
126
125
|
}
|
|
127
126
|
catch (error) {
|
|
128
|
-
console.error('Failed to
|
|
127
|
+
console.error('Failed to close transport:', error);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
startAgentInstance() {
|
|
131
|
+
try {
|
|
132
|
+
this.transport.startAgentInstance();
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
console.error('Failed to start agent instance:', error);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
finishAgentInstance() {
|
|
139
|
+
try {
|
|
140
|
+
this.transport.finishAgentInstance();
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
console.error('Failed to finish agent instance:', error);
|
|
129
144
|
}
|
|
130
145
|
}
|
|
131
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/tracing/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAkB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/tracing/tracer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { StartSpanOptions, Tracer } from './tracer.js';
|
|
2
|
+
export declare function withSpan<T>(tracer: Tracer, options: StartSpanOptions, fn: () => Promise<T> | T): Promise<T>;
|
|
3
|
+
export declare function withSpan<T>(options: StartSpanOptions, fn: () => Promise<T> | T): Promise<T>;
|
|
4
|
+
//# sourceMappingURL=with-span.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-span.d.ts","sourceRoot":"","sources":["../../src/tracing/with-span.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5D,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CAAC;AACd,wBAAsB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { getActiveTracer } from './active-tracer.js';
|
|
2
|
+
import { SpanContext } from './context.js';
|
|
3
|
+
export async function withSpan(tracerOrOptions, optionsOrFn, maybeFn) {
|
|
4
|
+
const { tracer, options, fn } = resolveArgs(tracerOrOptions, optionsOrFn, maybeFn);
|
|
5
|
+
const span = tracer.startSpan(options);
|
|
6
|
+
try {
|
|
7
|
+
const result = await SpanContext.runAsync(span, async () => await fn());
|
|
8
|
+
tracer.endSpan(span);
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
const normalizedError = error instanceof Error ? error : new Error(String(error));
|
|
13
|
+
tracer.endSpan(span, { error: normalizedError });
|
|
14
|
+
throw error;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function resolveArgs(tracerOrOptions, optionsOrFn, maybeFn) {
|
|
18
|
+
if (maybeFn) {
|
|
19
|
+
return {
|
|
20
|
+
tracer: tracerOrOptions,
|
|
21
|
+
options: optionsOrFn,
|
|
22
|
+
fn: maybeFn,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const tracer = getActiveTracer();
|
|
26
|
+
if (!tracer) {
|
|
27
|
+
throw new Error('No active tracer found. Initialize Prefactor first or pass a tracer explicitly.');
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
tracer,
|
|
31
|
+
options: tracerOrOptions,
|
|
32
|
+
fn: optionsOrFn,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=with-span.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-span.js","sourceRoot":"","sources":["../../src/tracing/with-span.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAS3C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,eAA0C,EAC1C,WAAsD,EACtD,OAA8B;IAE9B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,eAAe,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,eAAe,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,eAA0C,EAC1C,WAAsD,EACtD,OAA8B;IAM9B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,MAAM,EAAE,eAAyB;YACjC,OAAO,EAAE,WAA+B;YACxC,EAAE,EAAE,OAAO;SACZ,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM;QACN,OAAO,EAAE,eAAmC;QAC5C,EAAE,EAAE,WAAmC;KACxC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HttpRequester } from './http-client.js';
|
|
2
|
+
export type AgentInstanceRegisterPayload = {
|
|
3
|
+
agent_id?: string;
|
|
4
|
+
agent_version?: {
|
|
5
|
+
external_identifier: string;
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
};
|
|
9
|
+
agent_schema_version?: Record<string, unknown>;
|
|
10
|
+
};
|
|
11
|
+
export type AgentInstanceResponse = {
|
|
12
|
+
details?: {
|
|
13
|
+
id?: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare class AgentInstanceClient {
|
|
17
|
+
private readonly httpClient;
|
|
18
|
+
constructor(httpClient: HttpRequester);
|
|
19
|
+
register(payload: AgentInstanceRegisterPayload): Promise<AgentInstanceResponse>;
|
|
20
|
+
start(agentInstanceId: string): Promise<void>;
|
|
21
|
+
finish(agentInstanceId: string): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=agent-instance-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-instance-client.d.ts","sourceRoot":"","sources":["../../../src/transport/http/agent-instance-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE;QACd,mBAAmB,EAAE,MAAM,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACH,CAAC;AAEF,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,aAAa;IAEtD,QAAQ,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAOzE,KAAK,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7C,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMrD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export class AgentInstanceClient {
|
|
2
|
+
httpClient;
|
|
3
|
+
constructor(httpClient) {
|
|
4
|
+
this.httpClient = httpClient;
|
|
5
|
+
}
|
|
6
|
+
register(payload) {
|
|
7
|
+
return this.httpClient.request('/api/v1/agent_instance/register', {
|
|
8
|
+
method: 'POST',
|
|
9
|
+
body: payload,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
async start(agentInstanceId) {
|
|
13
|
+
await this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/start`, {
|
|
14
|
+
method: 'POST',
|
|
15
|
+
body: {},
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
async finish(agentInstanceId) {
|
|
19
|
+
await this.httpClient.request(`/api/v1/agent_instance/${agentInstanceId}/finish`, {
|
|
20
|
+
method: 'POST',
|
|
21
|
+
body: {},
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=agent-instance-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-instance-client.js","sourceRoot":"","sources":["../../../src/transport/http/agent-instance-client.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,UAAyB;QAAzB,eAAU,GAAV,UAAU,CAAe;IAAG,CAAC;IAE1D,QAAQ,CAAC,OAAqC;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,iCAAiC,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,eAAuB;QACjC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,eAAe,QAAQ,EAAE;YAC/E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,eAAuB;QAClC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,eAAe,SAAS,EAAE;YAChF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type HttpRequester } from './http-client.js';
|
|
2
|
+
export type AgentSpanStatus = 'active' | 'complete' | 'failed';
|
|
3
|
+
export type AgentSpanCreatePayload = {
|
|
4
|
+
details: {
|
|
5
|
+
agent_instance_id: string | null;
|
|
6
|
+
schema_name: string;
|
|
7
|
+
status: AgentSpanStatus;
|
|
8
|
+
payload: Record<string, unknown>;
|
|
9
|
+
parent_span_id: string | null;
|
|
10
|
+
started_at: string;
|
|
11
|
+
finished_at: string | null;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export type AgentSpanResponse = {
|
|
15
|
+
details?: {
|
|
16
|
+
id?: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare class AgentSpanClient {
|
|
20
|
+
private readonly httpClient;
|
|
21
|
+
constructor(httpClient: HttpRequester);
|
|
22
|
+
create(payload: AgentSpanCreatePayload): Promise<AgentSpanResponse>;
|
|
23
|
+
finish(spanId: string, timestamp: string): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=agent-span-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-span-client.d.ts","sourceRoot":"","sources":["../../../src/transport/http/agent-span-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/D,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE;QACP,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,eAAe,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACH,CAAC;AAEF,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,aAAa;IAEtD,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO7D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkB/D"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { HttpClientError } from './http-client.js';
|
|
2
|
+
export class AgentSpanClient {
|
|
3
|
+
httpClient;
|
|
4
|
+
constructor(httpClient) {
|
|
5
|
+
this.httpClient = httpClient;
|
|
6
|
+
}
|
|
7
|
+
create(payload) {
|
|
8
|
+
return this.httpClient.request('/api/v1/agent_spans', {
|
|
9
|
+
method: 'POST',
|
|
10
|
+
body: payload,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
async finish(spanId, timestamp) {
|
|
14
|
+
try {
|
|
15
|
+
await this.httpClient.request(`/api/v1/agent_spans/${spanId}/finish`, {
|
|
16
|
+
method: 'POST',
|
|
17
|
+
body: { timestamp },
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
if (error instanceof HttpClientError &&
|
|
22
|
+
error.status === 409 &&
|
|
23
|
+
isAlreadyFinishedError(error.responseBody)) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function isAlreadyFinishedError(responseBody) {
|
|
31
|
+
if (!responseBody || typeof responseBody !== 'object') {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const payload = responseBody;
|
|
35
|
+
return payload.code === 'invalid_action';
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=agent-span-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-span-client.js","sourceRoot":"","sources":["../../../src/transport/http/agent-span-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAsB,MAAM,kBAAkB,CAAC;AAsBvE,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,UAAyB;QAAzB,eAAU,GAAV,UAAU,CAAe;IAAG,CAAC;IAE1D,MAAM,CAAC,OAA+B;QACpC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,SAAiB;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,MAAM,SAAS,EAAE;gBACpE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,EAAE,SAAS,EAAE;aACpB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,KAAK,YAAY,eAAe;gBAChC,KAAK,CAAC,MAAM,KAAK,GAAG;gBACpB,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,EAC1C,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,SAAS,sBAAsB,CAAC,YAAqB;IACnD,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,YAAuC,CAAC;IACxD,OAAO,OAAO,CAAC,IAAI,KAAK,gBAAgB,CAAC;AAC3C,CAAC"}
|