@prefactor/core 0.1.1 → 0.2.0
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/README.md +35 -2
- package/dist/agent/instance-manager.d.ts +19 -0
- package/dist/agent/instance-manager.d.ts.map +1 -0
- package/dist/agent/instance-manager.js +71 -0
- package/dist/agent/instance-manager.js.map +1 -0
- package/dist/agent/schema-registry.d.ts +9 -0
- package/dist/agent/schema-registry.d.ts.map +1 -0
- package/dist/agent/schema-registry.js +16 -0
- package/dist/agent/schema-registry.js.map +1 -0
- package/dist/config.d.ts +49 -25
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -7
- package/dist/config.js.map +1 -1
- package/dist/create-core.d.ts +12 -0
- package/dist/create-core.d.ts.map +1 -0
- package/dist/create-core.js +49 -0
- package/dist/create-core.js.map +1 -0
- package/dist/index.cjs +390 -134
- package/dist/index.cjs.map +14 -9
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +391 -135
- package/dist/index.js.map +14 -9
- package/dist/queue/actions.d.ts +35 -0
- package/dist/queue/actions.d.ts.map +1 -0
- package/dist/queue/actions.js +2 -0
- package/dist/queue/actions.js.map +1 -0
- package/dist/queue/base.d.ts +7 -0
- package/dist/queue/base.d.ts.map +1 -0
- package/dist/queue/base.js +2 -0
- package/dist/queue/base.js.map +1 -0
- package/dist/queue/in-memory.d.ts +9 -0
- package/dist/queue/in-memory.d.ts.map +1 -0
- package/dist/queue/in-memory.js +18 -0
- package/dist/queue/in-memory.js.map +1 -0
- package/dist/tracing/context.d.ts +12 -0
- package/dist/tracing/context.d.ts.map +1 -1
- package/dist/tracing/context.js +41 -5
- package/dist/tracing/context.js.map +1 -1
- package/dist/tracing/span.d.ts +5 -0
- package/dist/tracing/span.d.ts.map +1 -1
- package/dist/tracing/span.js +29 -0
- package/dist/tracing/span.js.map +1 -1
- package/dist/tracing/tracer.d.ts +7 -17
- package/dist/tracing/tracer.d.ts.map +1 -1
- package/dist/tracing/tracer.js +20 -39
- package/dist/tracing/tracer.js.map +1 -1
- package/dist/transport/base.d.ts +2 -22
- package/dist/transport/base.d.ts.map +1 -1
- package/dist/transport/http.d.ts +5 -28
- package/dist/transport/http.d.ts.map +1 -1
- package/dist/transport/http.js +76 -110
- package/dist/transport/http.js.map +1 -1
- package/dist/transport/stdio.d.ts +4 -16
- package/dist/transport/stdio.d.ts.map +1 -1
- package/dist/transport/stdio.js +14 -29
- package/dist/transport/stdio.js.map +1 -1
- package/dist/transport/worker.d.ts +22 -0
- package/dist/transport/worker.d.ts.map +1 -0
- package/dist/transport/worker.js +85 -0
- package/dist/transport/worker.js.map +1 -0
- package/package.json +1 -1
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,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,uBAAW,CAAA;IACX,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,mCAAuB,CAAA;AACzB,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAED;;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"}
|
|
1
|
+
{"version":3,"file":"span.js","sourceRoot":"","sources":["../../src/tracing/span.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,uBAAW,CAAA;IACX,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,mCAAuB,CAAA;AACzB,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA4B;IAC3D,mBAAmB,EAAE,OAAO;IAC5B,YAAY,EAAE;QACZ,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;SACzD;QACD,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;SACvD;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;SACxD;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;SACzD;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;SAC7D;KACF;CACF,CAAC;AAEF;;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,8 @@
|
|
|
1
1
|
import { type Partition } from '@prefactor/pfid';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { QueueAction } from '../queue/actions.js';
|
|
3
|
+
import type { Queue } from '../queue/base.js';
|
|
4
|
+
import type { Span, TokenUsage } from './span.js';
|
|
5
|
+
import { SpanType } from './span.js';
|
|
4
6
|
/**
|
|
5
7
|
* Options for starting a new span
|
|
6
8
|
*/
|
|
@@ -11,10 +13,6 @@ export interface StartSpanOptions {
|
|
|
11
13
|
spanType: SpanType;
|
|
12
14
|
/** Input data for this operation */
|
|
13
15
|
inputs: Record<string, unknown>;
|
|
14
|
-
/** ID of the parent span (optional) */
|
|
15
|
-
parentSpanId?: string;
|
|
16
|
-
/** Trace ID to use (optional, will generate if not provided) */
|
|
17
|
-
traceId?: string;
|
|
18
16
|
/** Additional metadata (optional) */
|
|
19
17
|
metadata?: Record<string, unknown>;
|
|
20
18
|
/** Tags for categorizing the span (optional) */
|
|
@@ -59,15 +57,15 @@ export interface EndSpanOptions {
|
|
|
59
57
|
* ```
|
|
60
58
|
*/
|
|
61
59
|
export declare class Tracer {
|
|
62
|
-
private
|
|
60
|
+
private queue;
|
|
63
61
|
private partition;
|
|
64
62
|
/**
|
|
65
63
|
* Initialize the tracer.
|
|
66
64
|
*
|
|
67
|
-
* @param
|
|
65
|
+
* @param queue - The queue to use for emitting spans
|
|
68
66
|
* @param partition - The partition for ID generation. If not provided, a random partition will be generated.
|
|
69
67
|
*/
|
|
70
|
-
constructor(
|
|
68
|
+
constructor(queue: Queue<QueueAction>, partition?: Partition);
|
|
71
69
|
/**
|
|
72
70
|
* Start a new span
|
|
73
71
|
*
|
|
@@ -82,14 +80,6 @@ export declare class Tracer {
|
|
|
82
80
|
* @param options - End span options (outputs, error, token usage)
|
|
83
81
|
*/
|
|
84
82
|
endSpan(span: Span, options?: EndSpanOptions): void;
|
|
85
|
-
/**
|
|
86
|
-
* Signal the start of an agent instance execution
|
|
87
|
-
*/
|
|
88
|
-
startAgentInstance(): void;
|
|
89
|
-
/**
|
|
90
|
-
* Signal the completion of an agent instance execution
|
|
91
|
-
*/
|
|
92
|
-
finishAgentInstance(): void;
|
|
93
83
|
/**
|
|
94
84
|
* Close the tracer and flush any pending spans
|
|
95
85
|
*
|
|
@@ -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,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,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;IAEnC,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;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,KAAK;IATf,OAAO,CAAC,SAAS,CAAY;IAE7B;;;;;OAKG;gBAEO,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,EACjC,SAAS,CAAC,EAAE,SAAS;IAKvB;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAmC1C;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IA8BnD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
|
package/dist/tracing/tracer.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { generate, generatePartition } from '@prefactor/pfid';
|
|
2
|
-
import {
|
|
2
|
+
import { SpanContext } from './context.js';
|
|
3
|
+
import { SpanStatus, SpanType } from './span.js';
|
|
3
4
|
/**
|
|
4
5
|
* Tracer manages the lifecycle of spans.
|
|
5
6
|
*
|
|
@@ -28,16 +29,16 @@ import { SpanStatus } from './span.js';
|
|
|
28
29
|
* ```
|
|
29
30
|
*/
|
|
30
31
|
export class Tracer {
|
|
31
|
-
|
|
32
|
+
queue;
|
|
32
33
|
partition;
|
|
33
34
|
/**
|
|
34
35
|
* Initialize the tracer.
|
|
35
36
|
*
|
|
36
|
-
* @param
|
|
37
|
+
* @param queue - The queue to use for emitting spans
|
|
37
38
|
* @param partition - The partition for ID generation. If not provided, a random partition will be generated.
|
|
38
39
|
*/
|
|
39
|
-
constructor(
|
|
40
|
-
this.
|
|
40
|
+
constructor(queue, partition) {
|
|
41
|
+
this.queue = queue;
|
|
41
42
|
this.partition = partition ?? generatePartition();
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
@@ -47,11 +48,12 @@ export class Tracer {
|
|
|
47
48
|
* @returns The created span
|
|
48
49
|
*/
|
|
49
50
|
startSpan(options) {
|
|
51
|
+
const parentSpan = SpanContext.getCurrent();
|
|
50
52
|
const spanId = generate(this.partition);
|
|
51
|
-
const traceId =
|
|
53
|
+
const traceId = parentSpan?.traceId ?? generate(this.partition);
|
|
52
54
|
const span = {
|
|
53
55
|
spanId,
|
|
54
|
-
parentSpanId:
|
|
56
|
+
parentSpanId: parentSpan?.spanId ?? null,
|
|
55
57
|
traceId,
|
|
56
58
|
name: options.name,
|
|
57
59
|
spanType: options.spanType,
|
|
@@ -67,12 +69,12 @@ export class Tracer {
|
|
|
67
69
|
};
|
|
68
70
|
// AGENT spans are emitted immediately for real-time tracking
|
|
69
71
|
// They will be finished later with finishSpan()
|
|
70
|
-
if (options.spanType ===
|
|
72
|
+
if (options.spanType === SpanType.AGENT) {
|
|
71
73
|
try {
|
|
72
|
-
this.
|
|
74
|
+
this.queue.enqueue({ type: 'span_end', data: span });
|
|
73
75
|
}
|
|
74
76
|
catch (error) {
|
|
75
|
-
console.error('Failed to
|
|
77
|
+
console.error('Failed to enqueue agent span:', error);
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
80
|
return span;
|
|
@@ -84,7 +86,8 @@ export class Tracer {
|
|
|
84
86
|
* @param options - End span options (outputs, error, token usage)
|
|
85
87
|
*/
|
|
86
88
|
endSpan(span, options) {
|
|
87
|
-
|
|
89
|
+
const endTime = Date.now();
|
|
90
|
+
span.endTime = endTime;
|
|
88
91
|
span.outputs = options?.outputs ?? null;
|
|
89
92
|
span.tokenUsage = options?.tokenUsage ?? null;
|
|
90
93
|
if (options?.error) {
|
|
@@ -101,37 +104,15 @@ export class Tracer {
|
|
|
101
104
|
try {
|
|
102
105
|
// AGENT spans use finishSpan API (they were already emitted on start)
|
|
103
106
|
// Other span types are emitted here
|
|
104
|
-
if (span.spanType ===
|
|
105
|
-
this.
|
|
107
|
+
if (span.spanType === SpanType.AGENT) {
|
|
108
|
+
this.queue.enqueue({ type: 'span_finish', data: { spanId: span.spanId, endTime } });
|
|
106
109
|
}
|
|
107
110
|
else {
|
|
108
|
-
this.
|
|
111
|
+
this.queue.enqueue({ type: 'span_end', data: span });
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
114
|
catch (error) {
|
|
112
|
-
console.error('Failed to
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Signal the start of an agent instance execution
|
|
117
|
-
*/
|
|
118
|
-
startAgentInstance() {
|
|
119
|
-
try {
|
|
120
|
-
this.transport.startAgentInstance();
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
console.error('Failed to start agent instance:', error);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Signal the completion of an agent instance execution
|
|
128
|
-
*/
|
|
129
|
-
finishAgentInstance() {
|
|
130
|
-
try {
|
|
131
|
-
this.transport.finishAgentInstance();
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
console.error('Failed to finish agent instance:', error);
|
|
115
|
+
console.error('Failed to enqueue span action:', error);
|
|
135
116
|
}
|
|
136
117
|
}
|
|
137
118
|
/**
|
|
@@ -141,10 +122,10 @@ export class Tracer {
|
|
|
141
122
|
*/
|
|
142
123
|
async close() {
|
|
143
124
|
try {
|
|
144
|
-
await this.
|
|
125
|
+
await this.queue.flush();
|
|
145
126
|
}
|
|
146
127
|
catch (error) {
|
|
147
|
-
console.error('Failed to
|
|
128
|
+
console.error('Failed to flush queue:', error);
|
|
148
129
|
}
|
|
149
130
|
}
|
|
150
131
|
}
|
|
@@ -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;AAG9E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/tracing/tracer.ts"],"names":[],"mappings":"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"}
|
package/dist/transport/base.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { QueueAction } from '../queue/actions.js';
|
|
2
2
|
/**
|
|
3
3
|
* Transport interface for emitting spans to different backends
|
|
4
4
|
*
|
|
@@ -7,27 +7,7 @@ import type { Span } from '../tracing/span.js';
|
|
|
7
7
|
* pluggable backends.
|
|
8
8
|
*/
|
|
9
9
|
export interface Transport {
|
|
10
|
-
|
|
11
|
-
* Emit a span to the transport destination
|
|
12
|
-
*
|
|
13
|
-
* @param span - The span to emit
|
|
14
|
-
*/
|
|
15
|
-
emit(span: Span): void;
|
|
16
|
-
/**
|
|
17
|
-
* Finish a previously emitted span (for long-running spans like AGENT spans)
|
|
18
|
-
*
|
|
19
|
-
* @param spanId - ID of the span to finish
|
|
20
|
-
* @param endTime - End time in milliseconds since Unix epoch
|
|
21
|
-
*/
|
|
22
|
-
finishSpan(spanId: string, endTime: number): void;
|
|
23
|
-
/**
|
|
24
|
-
* Signal the start of an agent instance execution
|
|
25
|
-
*/
|
|
26
|
-
startAgentInstance(): void;
|
|
27
|
-
/**
|
|
28
|
-
* Signal the completion of an agent instance execution
|
|
29
|
-
*/
|
|
30
|
-
finishAgentInstance(): void;
|
|
10
|
+
processBatch(items: QueueAction[]): Promise<void>;
|
|
31
11
|
/**
|
|
32
12
|
* Close the transport and flush any pending data
|
|
33
13
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/transport/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/transport/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;;;OAIG;IACH,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B"}
|
package/dist/transport/http.d.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import type { HttpTransportConfig } from '../config.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { QueueAction } from '../queue/actions.js';
|
|
3
3
|
import type { Transport } from './base.js';
|
|
4
4
|
/**
|
|
5
5
|
* HTTP transport sends spans to a remote API endpoint.
|
|
6
6
|
*
|
|
7
7
|
* Features:
|
|
8
|
-
* - Queue-based async processing
|
|
9
8
|
* - Exponential backoff retry logic
|
|
10
9
|
* - Span ID mapping (SDK ID → backend ID)
|
|
11
10
|
* - Agent instance lifecycle management
|
|
12
|
-
* - Graceful shutdown with timeout
|
|
13
11
|
*
|
|
14
12
|
* @example
|
|
15
13
|
* ```typescript
|
|
@@ -21,37 +19,16 @@ import type { Transport } from './base.js';
|
|
|
21
19
|
*/
|
|
22
20
|
export declare class HttpTransport implements Transport {
|
|
23
21
|
private config;
|
|
24
|
-
private queue;
|
|
25
|
-
private processing;
|
|
26
22
|
private closed;
|
|
27
23
|
private agentInstanceId;
|
|
28
24
|
private spanIdMap;
|
|
25
|
+
private pendingFinishes;
|
|
29
26
|
constructor(config: HttpTransportConfig);
|
|
27
|
+
processBatch(items: QueueAction[]): Promise<void>;
|
|
30
28
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* @param span - The span to emit
|
|
34
|
-
*/
|
|
35
|
-
emit(span: Span): void;
|
|
36
|
-
/**
|
|
37
|
-
* Finish a previously emitted span (for AGENT spans)
|
|
38
|
-
*
|
|
39
|
-
* @param spanId - ID of the span to finish
|
|
40
|
-
* @param endTime - End time in milliseconds since Unix epoch
|
|
41
|
-
*/
|
|
42
|
-
finishSpan(spanId: string, endTime: number): void;
|
|
43
|
-
/**
|
|
44
|
-
* Signal the start of an agent instance execution
|
|
45
|
-
*/
|
|
46
|
-
startAgentInstance(): void;
|
|
47
|
-
/**
|
|
48
|
-
* Signal the completion of an agent instance execution
|
|
49
|
-
*/
|
|
50
|
-
finishAgentInstance(): void;
|
|
51
|
-
/**
|
|
52
|
-
* Start background queue processing
|
|
29
|
+
* Process any pending finishes for a span that was just registered.
|
|
53
30
|
*/
|
|
54
|
-
private
|
|
31
|
+
private processPendingFinishes;
|
|
55
32
|
/**
|
|
56
33
|
* Send a span to the API
|
|
57
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAI3C;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAc,YAAW,SAAS;IAOjC,OAAO,CAAC,MAAM;IAN1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,SAAS,CAA6B;IAE9C,OAAO,CAAC,eAAe,CAA6B;gBAEhC,MAAM,EAAE,mBAAmB;IAEzC,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DvD;;OAEG;YACW,sBAAsB;IAepC;;OAEG;YACW,QAAQ;IAqDtB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAmDhC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;YACW,qBAAqB;IA4DnC;;OAEG;YACW,sBAAsB;IA6BpC;;OAEG;YACW,uBAAuB;IA8BrC;;OAEG;YACW,cAAc;IA4B5B;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B"}
|
package/dist/transport/http.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
+
import { DEFAULT_AGENT_SCHEMA } from '../tracing/span.js';
|
|
1
2
|
import { getLogger } from '../utils/logging.js';
|
|
2
3
|
const logger = getLogger('http-transport');
|
|
3
4
|
/**
|
|
4
5
|
* HTTP transport sends spans to a remote API endpoint.
|
|
5
6
|
*
|
|
6
7
|
* Features:
|
|
7
|
-
* - Queue-based async processing
|
|
8
8
|
* - Exponential backoff retry logic
|
|
9
9
|
* - Span ID mapping (SDK ID → backend ID)
|
|
10
10
|
* - Agent instance lifecycle management
|
|
11
|
-
* - Graceful shutdown with timeout
|
|
12
11
|
*
|
|
13
12
|
* @example
|
|
14
13
|
* ```typescript
|
|
@@ -20,95 +19,87 @@ const logger = getLogger('http-transport');
|
|
|
20
19
|
*/
|
|
21
20
|
export class HttpTransport {
|
|
22
21
|
config;
|
|
23
|
-
queue = [];
|
|
24
|
-
processing = false;
|
|
25
22
|
closed = false;
|
|
26
23
|
agentInstanceId = null;
|
|
27
24
|
spanIdMap = new Map();
|
|
25
|
+
// Pending finishes for spans that arrived before their span_end
|
|
26
|
+
pendingFinishes = new Map();
|
|
28
27
|
constructor(config) {
|
|
29
28
|
this.config = config;
|
|
30
|
-
this.startProcessing();
|
|
31
29
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
*
|
|
35
|
-
* @param span - The span to emit
|
|
36
|
-
*/
|
|
37
|
-
emit(span) {
|
|
38
|
-
if (this.closed) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
this.queue.push({ type: 'span', data: span });
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Finish a previously emitted span (for AGENT spans)
|
|
45
|
-
*
|
|
46
|
-
* @param spanId - ID of the span to finish
|
|
47
|
-
* @param endTime - End time in milliseconds since Unix epoch
|
|
48
|
-
*/
|
|
49
|
-
finishSpan(spanId, endTime) {
|
|
50
|
-
if (this.closed) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
const timestamp = new Date(endTime).toISOString();
|
|
54
|
-
this.queue.push({ type: 'finish_span', data: { spanId, timestamp } });
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Signal the start of an agent instance execution
|
|
58
|
-
*/
|
|
59
|
-
startAgentInstance() {
|
|
60
|
-
if (this.closed) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
this.queue.push({ type: 'start_agent', data: null });
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Signal the completion of an agent instance execution
|
|
67
|
-
*/
|
|
68
|
-
finishAgentInstance() {
|
|
69
|
-
if (this.closed) {
|
|
30
|
+
async processBatch(items) {
|
|
31
|
+
if (this.closed || items.length === 0) {
|
|
70
32
|
return;
|
|
71
33
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
while (!this.closed || this.queue.length > 0) {
|
|
80
|
-
if (this.queue.length === 0) {
|
|
81
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
82
|
-
continue;
|
|
34
|
+
// First pass: apply schema updates
|
|
35
|
+
for (const item of items) {
|
|
36
|
+
if (item.type === 'schema_register') {
|
|
37
|
+
this.config.agentSchema = item.data.schema;
|
|
38
|
+
this.config.agentSchemaIdentifier = item.data.schemaIdentifier;
|
|
39
|
+
this.config.schemaName = item.data.schemaName;
|
|
40
|
+
this.config.schemaIdentifier = item.data.schemaIdentifier;
|
|
83
41
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
42
|
+
}
|
|
43
|
+
// Second pass: process actions
|
|
44
|
+
for (const item of items) {
|
|
87
45
|
try {
|
|
88
|
-
// Ensure agent is registered before processing spans
|
|
89
|
-
if (!this.agentInstanceId && item.type !== 'start_agent') {
|
|
90
|
-
await this.ensureAgentRegistered();
|
|
91
|
-
}
|
|
92
46
|
switch (item.type) {
|
|
93
|
-
case '
|
|
94
|
-
await this.sendSpan(item.data);
|
|
95
|
-
break;
|
|
96
|
-
case 'finish_span':
|
|
97
|
-
await this.finishSpanHttp(item.data);
|
|
47
|
+
case 'schema_register':
|
|
98
48
|
break;
|
|
99
|
-
case '
|
|
49
|
+
case 'agent_start':
|
|
50
|
+
this.config.agentId = item.data.agentId;
|
|
51
|
+
if (item.data.agentIdentifier !== undefined)
|
|
52
|
+
this.config.agentIdentifier = item.data.agentIdentifier;
|
|
53
|
+
this.config.agentName = item.data.agentName;
|
|
54
|
+
this.config.agentDescription = item.data.agentDescription;
|
|
100
55
|
await this.startAgentInstanceHttp();
|
|
101
56
|
break;
|
|
102
|
-
case '
|
|
57
|
+
case 'agent_finish':
|
|
103
58
|
await this.finishAgentInstanceHttp();
|
|
104
59
|
break;
|
|
60
|
+
case 'span_end':
|
|
61
|
+
if (!this.agentInstanceId) {
|
|
62
|
+
await this.ensureAgentRegistered();
|
|
63
|
+
}
|
|
64
|
+
await this.sendSpan(item.data);
|
|
65
|
+
break;
|
|
66
|
+
case 'span_finish': {
|
|
67
|
+
const spanId = item.data.spanId;
|
|
68
|
+
const backendSpanId = this.spanIdMap.get(spanId);
|
|
69
|
+
if (backendSpanId) {
|
|
70
|
+
// Span mapping exists, finish immediately
|
|
71
|
+
const timestamp = new Date(item.data.endTime).toISOString();
|
|
72
|
+
await this.finishSpanHttp({ spanId, timestamp });
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// Defer finish until span_end creates the mapping
|
|
76
|
+
this.pendingFinishes.set(spanId, item.data.endTime);
|
|
77
|
+
}
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
105
80
|
}
|
|
106
81
|
}
|
|
107
82
|
catch (error) {
|
|
108
|
-
logger.error('Error processing
|
|
83
|
+
logger.error('Error processing batch item:', error);
|
|
109
84
|
}
|
|
110
85
|
}
|
|
111
|
-
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Process any pending finishes for a span that was just registered.
|
|
89
|
+
*/
|
|
90
|
+
async processPendingFinishes(spanId) {
|
|
91
|
+
const pendingEndTime = this.pendingFinishes.get(spanId);
|
|
92
|
+
if (!pendingEndTime) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
const timestamp = new Date(pendingEndTime).toISOString();
|
|
97
|
+
await this.finishSpanHttp({ spanId, timestamp });
|
|
98
|
+
this.pendingFinishes.delete(spanId);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
logger.error('Error processing pending span finish:', error);
|
|
102
|
+
}
|
|
112
103
|
}
|
|
113
104
|
/**
|
|
114
105
|
* Send a span to the API
|
|
@@ -131,6 +122,8 @@ export class HttpTransport {
|
|
|
131
122
|
const backendSpanId = data?.details?.id;
|
|
132
123
|
if (backendSpanId) {
|
|
133
124
|
this.spanIdMap.set(span.spanId, backendSpanId);
|
|
125
|
+
// Process any pending finishes that arrived before this span_end
|
|
126
|
+
await this.processPendingFinishes(span.spanId);
|
|
134
127
|
}
|
|
135
128
|
return;
|
|
136
129
|
}
|
|
@@ -205,31 +198,7 @@ export class HttpTransport {
|
|
|
205
198
|
* Get default schema (v1.0.0) with span schemas for all supported types
|
|
206
199
|
*/
|
|
207
200
|
getDefaultSchema() {
|
|
208
|
-
return
|
|
209
|
-
external_identifier: '1.0.0',
|
|
210
|
-
span_schemas: {
|
|
211
|
-
agent: {
|
|
212
|
-
type: 'object',
|
|
213
|
-
properties: { type: { type: 'string', const: 'agent' } },
|
|
214
|
-
},
|
|
215
|
-
llm: {
|
|
216
|
-
type: 'object',
|
|
217
|
-
properties: { type: { type: 'string', const: 'llm' } },
|
|
218
|
-
},
|
|
219
|
-
tool: {
|
|
220
|
-
type: 'object',
|
|
221
|
-
properties: { type: { type: 'string', const: 'tool' } },
|
|
222
|
-
},
|
|
223
|
-
chain: {
|
|
224
|
-
type: 'object',
|
|
225
|
-
properties: { type: { type: 'string', const: 'chain' } },
|
|
226
|
-
},
|
|
227
|
-
retriever: {
|
|
228
|
-
type: 'object',
|
|
229
|
-
properties: { type: { type: 'string', const: 'retriever' } },
|
|
230
|
-
},
|
|
231
|
-
},
|
|
232
|
-
};
|
|
201
|
+
return DEFAULT_AGENT_SCHEMA;
|
|
233
202
|
}
|
|
234
203
|
/**
|
|
235
204
|
* Ensure an agent instance is registered
|
|
@@ -242,9 +211,9 @@ export class HttpTransport {
|
|
|
242
211
|
const payload = {};
|
|
243
212
|
if (this.config.agentId)
|
|
244
213
|
payload.agent_id = this.config.agentId;
|
|
245
|
-
if (this.config.
|
|
214
|
+
if (this.config.agentIdentifier) {
|
|
246
215
|
payload.agent_version = {
|
|
247
|
-
external_identifier: this.config.
|
|
216
|
+
external_identifier: this.config.agentIdentifier,
|
|
248
217
|
name: this.config.agentName || 'Agent',
|
|
249
218
|
description: this.config.agentDescription || '',
|
|
250
219
|
};
|
|
@@ -252,8 +221,7 @@ export class HttpTransport {
|
|
|
252
221
|
// Schema handling - four modes:
|
|
253
222
|
// 1. skipSchema=true: No schema in payload (pre-registered on backend)
|
|
254
223
|
// 2. agentSchema provided: Use full custom schema object
|
|
255
|
-
// 3.
|
|
256
|
-
// 4. None of above: Use default v1.0.0 schema
|
|
224
|
+
// 3. agentSchemaIdentifier provided: Use version identifier only
|
|
257
225
|
if (this.config.skipSchema) {
|
|
258
226
|
logger.debug('Skipping schema in registration (skipSchema=true)');
|
|
259
227
|
// Do not add agent_schema_version key
|
|
@@ -262,10 +230,10 @@ export class HttpTransport {
|
|
|
262
230
|
logger.debug('Using custom agent schema');
|
|
263
231
|
payload.agent_schema_version = this.config.agentSchema;
|
|
264
232
|
}
|
|
265
|
-
else if (this.config.
|
|
266
|
-
logger.debug(`Using schema version: ${this.config.
|
|
233
|
+
else if (this.config.agentSchemaIdentifier) {
|
|
234
|
+
logger.debug(`Using schema version: ${this.config.agentSchemaIdentifier}`);
|
|
267
235
|
payload.agent_schema_version = {
|
|
268
|
-
external_identifier: this.config.
|
|
236
|
+
external_identifier: this.config.agentSchemaIdentifier,
|
|
269
237
|
};
|
|
270
238
|
}
|
|
271
239
|
else {
|
|
@@ -349,6 +317,8 @@ export class HttpTransport {
|
|
|
349
317
|
catch (error) {
|
|
350
318
|
logger.error('Error finishing agent instance:', error);
|
|
351
319
|
}
|
|
320
|
+
// Reset so the next agent_start registers a fresh instance
|
|
321
|
+
this.agentInstanceId = null;
|
|
352
322
|
}
|
|
353
323
|
/**
|
|
354
324
|
* Finish a span via HTTP
|
|
@@ -385,14 +355,10 @@ export class HttpTransport {
|
|
|
385
355
|
*/
|
|
386
356
|
async close() {
|
|
387
357
|
this.closed = true;
|
|
388
|
-
//
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
393
|
-
}
|
|
394
|
-
if (this.processing) {
|
|
395
|
-
logger.warn('Transport closed with pending queue items');
|
|
358
|
+
// Log warning for any pending finishes that will never be processed
|
|
359
|
+
if (this.pendingFinishes.size > 0) {
|
|
360
|
+
logger.warn(`Transport closed with ${this.pendingFinishes.size} pending span finish(es) that could not be processed`);
|
|
361
|
+
this.pendingFinishes.clear();
|
|
396
362
|
}
|
|
397
363
|
}
|
|
398
364
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,MAAM,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAU3C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,aAAa;IAOJ;IANZ,KAAK,GAAgB,EAAE,CAAC;IACxB,UAAU,GAAG,KAAK,CAAC;IACnB,MAAM,GAAG,KAAK,CAAC;IACf,eAAe,GAAkB,IAAI,CAAC;IACtC,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9C,YAAoB,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;QAC7C,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,IAAU;QACb,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,MAAc,EAAE,OAAe;QACxC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzD,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,IAAI,CAAC;gBACH,qDAAqD;gBACrD,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACzD,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACrC,CAAC;gBAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;oBAClB,KAAK,MAAM;wBACT,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAY,CAAC,CAAC;wBACvC,MAAM;oBACR,KAAK,aAAa;wBAChB,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAA6C,CAAC,CAAC;wBAC9E,MAAM;oBACR,KAAK,aAAa;wBAChB,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;wBACpC,MAAM;oBACR,KAAK,cAAc;wBACjB,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;wBACrC,MAAM;gBACV,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,QAAQ,CAAC,IAAU,EAAE,KAAK,GAAG,CAAC;QAC1C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,qBAAqB,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAC/C,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;aACxD,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAkC,CAAC;gBACtE,MAAM,aAAa,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;gBACxC,IAAI,aAAa,EAAE,CAAC;oBAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;gBACjD,CAAC;gBACD,OAAO;YACT,CAAC;YAED,0CAA0C;YAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,KAAK,EACpE,IAAI,CAAC,MAAM,CAAC,aAAa,CAC1B,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,eAAe,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3E,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAE3C,0BAA0B;YAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,KAAK,EACpE,IAAI,CAAC,MAAM,CAAC,aAAa,CAC1B,CAAC;gBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,IAAU;QACzC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAE9E,+BAA+B;QAC/B,MAAM,OAAO,GAA4B;YACvC,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC;QAEF,2BAA2B;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,WAAW,GAAG;gBACpB,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY;gBAC3C,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB;gBACnD,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;aAC1C,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,GAAG;gBACd,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;gBAChC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;gBAC3B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;aAClC,CAAC;QACJ,CAAC;QAED,uCAAuC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhG,OAAO;YACL,OAAO,EAAE;gBACP,iBAAiB,EAAE,IAAI,CAAC,eAAe;gBACvC,WAAW,EAAE,IAAI,CAAC,QAAQ;gBAC1B,OAAO;gBACP,cAAc,EAAE,YAAY;gBAC5B,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,UAAU;aACxB;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,OAAO;YACL,mBAAmB,EAAE,OAAO;YAC5B,YAAY,EAAE;gBACZ,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;iBACzD;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;iBACvD;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;iBACxD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;iBACzD;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;iBAC7D;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB;QACjC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,iCAAiC,CAAC;QACnE,MAAM,OAAO,GAA4B,EAAE,CAAC;QAE5C,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAChE,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,OAAO,CAAC,aAAa,GAAG;gBACtB,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBAC7C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO;gBACtC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE;aAChD,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,uEAAuE;QACvE,yDAAyD;QACzD,8DAA8D;QAC9D,8CAA8C;QAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YAClE,sCAAsC;QACxC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC1C,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACzD,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,oBAAoB,GAAG;gBAC7B,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;aACpD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACxD,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAC/C,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;aACxD,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAkC,CAAC;gBACtE,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC;gBACjD,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB;QAClC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEnC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,0BAA0B,IAAI,CAAC,eAAe,QAAQ,CAAC;QAExF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAC/C,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;aACxD,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,mCAAmC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,0BAA0B,IAAI,CAAC,eAAe,SAAS,CAAC;QAEzF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAC/C,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;aACxD,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,oCAAoC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,IAA2C;QACtE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,MAAM,wBAAwB,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,uBAAuB,aAAa,SAAS,CAAC;QAE/E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAC/C,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;aACxD,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,yCAAyC;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;YACvD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"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"}
|