autotel 7.0.0 → 7.1.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/dist/auto.cjs +1 -1
- package/dist/auto.js +1 -1
- package/dist/correlation-id.cjs +1 -1
- package/dist/correlation-id.js +1 -1
- package/dist/decorators.cjs +1 -1
- package/dist/decorators.js +1 -1
- package/dist/event.cjs +1 -1
- package/dist/event.js +1 -1
- package/dist/evidence.cjs +57 -0
- package/dist/evidence.d.cts +61 -0
- package/dist/evidence.d.ts +61 -0
- package/dist/evidence.js +50 -0
- package/dist/{functional-Da6Yv64r.cjs → functional-BhhP4Er_.cjs} +25 -8
- package/dist/{functional-uSbNnnxK.js → functional-Cub1ku-C.js} +25 -8
- package/dist/functional.cjs +1 -1
- package/dist/functional.js +1 -1
- package/dist/http.cjs +1 -1
- package/dist/http.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/dist/{init-D4m5rCmD.cjs → init-C5aHRqi2.cjs} +1 -1
- package/dist/{init-JtX-KKz_.js → init-DDyaLzeg.js} +1 -1
- package/dist/instrumentation.cjs +1 -1
- package/dist/instrumentation.js +1 -1
- package/dist/messaging.cjs +1 -1
- package/dist/messaging.js +1 -1
- package/dist/semantic-helpers.cjs +1 -1
- package/dist/semantic-helpers.js +1 -1
- package/dist/webhook.cjs +1 -1
- package/dist/webhook.js +1 -1
- package/dist/workflow-distributed.cjs +1 -1
- package/dist/workflow-distributed.js +1 -1
- package/dist/workflow.cjs +1 -1
- package/dist/workflow.js +1 -1
- package/package.json +6 -1
package/dist/auto.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('./rolldown-runtime-C_NdSu1c.cjs');
|
|
2
|
-
const require_init = require('./init-
|
|
2
|
+
const require_init = require('./init-C5aHRqi2.cjs');
|
|
3
3
|
const require_yaml_config = require('./yaml-config.cjs');
|
|
4
4
|
let node_module = require("node:module");
|
|
5
5
|
node_module = require_rolldown_runtime.__toESM(node_module, 1);
|
package/dist/auto.js
CHANGED
package/dist/correlation-id.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_init = require('./init-
|
|
2
|
+
const require_init = require('./init-C5aHRqi2.cjs');
|
|
3
3
|
|
|
4
4
|
exports.CORRELATION_ID_BAGGAGE_KEY = require_init.CORRELATION_ID_BAGGAGE_KEY;
|
|
5
5
|
exports.generateCorrelationId = require_init.generateCorrelationId;
|
package/dist/correlation-id.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { C as setCorrelationId, S as runWithCorrelationId, _ as CORRELATION_ID_BAGGAGE_KEY, b as getCorrelationStorage, v as generateCorrelationId, w as setCorrelationIdInBaggage, x as getOrCreateCorrelationId, y as getCorrelationId } from "./init-
|
|
1
|
+
import { C as setCorrelationId, S as runWithCorrelationId, _ as CORRELATION_ID_BAGGAGE_KEY, b as getCorrelationStorage, v as generateCorrelationId, w as setCorrelationIdInBaggage, x as getOrCreateCorrelationId, y as getCorrelationId } from "./init-DDyaLzeg.js";
|
|
2
2
|
|
|
3
3
|
export { CORRELATION_ID_BAGGAGE_KEY, generateCorrelationId, getCorrelationId, getCorrelationStorage, getOrCreateCorrelationId, runWithCorrelationId, setCorrelationId, setCorrelationIdInBaggage };
|
package/dist/decorators.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_values = require('./values-DApyq53y.cjs');
|
|
3
3
|
const require_config = require('./config.cjs');
|
|
4
|
-
const require_init = require('./init-
|
|
4
|
+
const require_init = require('./init-C5aHRqi2.cjs');
|
|
5
5
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
6
6
|
|
|
7
7
|
//#region src/decorators.ts
|
package/dist/decorators.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { y as splitNameOrOptions } from "./values-BenyvWKz.js";
|
|
2
2
|
import { getConfig } from "./config.js";
|
|
3
|
-
import { T as createTraceContext } from "./init-
|
|
3
|
+
import { T as createTraceContext } from "./init-DDyaLzeg.js";
|
|
4
4
|
import { SpanStatusCode } from "@opentelemetry/api";
|
|
5
5
|
|
|
6
6
|
//#region src/decorators.ts
|
package/dist/event.cjs
CHANGED
package/dist/event.js
CHANGED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
//#region src/evidence.ts
|
|
4
|
+
/** Prefix for per-field evidence labels. */
|
|
5
|
+
const EVIDENCE_ATTR_PREFIX = "autotel.evidence.";
|
|
6
|
+
/** The span attribute key carrying `field`'s evidence label. */
|
|
7
|
+
function evidenceAttribute(field) {
|
|
8
|
+
return `${EVIDENCE_ATTR_PREFIX}${field}`;
|
|
9
|
+
}
|
|
10
|
+
/** Label how `field` on this span came to be. */
|
|
11
|
+
function recordEvidence(ctx, field, quality) {
|
|
12
|
+
ctx.setAttribute(evidenceAttribute(field), quality);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The capture surfaces a deployment can be asked about. Closed set, because the
|
|
16
|
+
* point is that a backend can query `unobserved` across services and get
|
|
17
|
+
* comparable answers.
|
|
18
|
+
*/
|
|
19
|
+
const CAPTURE_SURFACES = [
|
|
20
|
+
"llm_calls",
|
|
21
|
+
"tool_calls",
|
|
22
|
+
"user_prompts",
|
|
23
|
+
"file_io",
|
|
24
|
+
"subprocess",
|
|
25
|
+
"network",
|
|
26
|
+
"ide_context"
|
|
27
|
+
];
|
|
28
|
+
const CAPTURE_COVERAGE_ATTR = {
|
|
29
|
+
observed: "autotel.coverage.observed",
|
|
30
|
+
unobserved: "autotel.coverage.unobserved"
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Resource attributes declaring {@link CaptureCoverage}.
|
|
34
|
+
*
|
|
35
|
+
* An empty list is omitted rather than emitted: `unobserved: []` would read as
|
|
36
|
+
* "this process has no blind spots", which is a stronger claim than declaring
|
|
37
|
+
* nothing. A surface claimed as both is dropped from both — a contradiction
|
|
38
|
+
* that left `observed` intact would let a reader conclude a gap does not exist.
|
|
39
|
+
*/
|
|
40
|
+
function captureCoverageAttributes(coverage) {
|
|
41
|
+
const claimedBoth = new Set(coverage.observed.filter((s) => coverage.unobserved.includes(s)));
|
|
42
|
+
const keep = (surfaces) => [...new Set(surfaces.filter((s) => !claimedBoth.has(s)))];
|
|
43
|
+
const observed = keep(coverage.observed);
|
|
44
|
+
const unobserved = keep(coverage.unobserved);
|
|
45
|
+
return {
|
|
46
|
+
...observed.length > 0 && { [CAPTURE_COVERAGE_ATTR.observed]: observed },
|
|
47
|
+
...unobserved.length > 0 && { [CAPTURE_COVERAGE_ATTR.unobserved]: unobserved }
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
//#endregion
|
|
52
|
+
exports.CAPTURE_COVERAGE_ATTR = CAPTURE_COVERAGE_ATTR;
|
|
53
|
+
exports.CAPTURE_SURFACES = CAPTURE_SURFACES;
|
|
54
|
+
exports.EVIDENCE_ATTR_PREFIX = EVIDENCE_ATTR_PREFIX;
|
|
55
|
+
exports.captureCoverageAttributes = captureCoverageAttributes;
|
|
56
|
+
exports.evidenceAttribute = evidenceAttribute;
|
|
57
|
+
exports.recordEvidence = recordEvidence;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Attributes } from "@opentelemetry/api";
|
|
2
|
+
//#region src/evidence.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Why a recorded fact is the way it is.
|
|
5
|
+
*
|
|
6
|
+
* There is deliberately no `unknown` member: a field carrying no evidence label
|
|
7
|
+
* is already unknown, and encoding that as a value invites code that treats an
|
|
8
|
+
* unlabelled field as *verified* unknown rather than simply unexamined.
|
|
9
|
+
*/
|
|
10
|
+
type EvidenceQuality =
|
|
11
|
+
/** The instrumentation saw the value directly. */
|
|
12
|
+
'observed' |
|
|
13
|
+
/** Derived from other observed facts, not seen. */
|
|
14
|
+
'inferred' |
|
|
15
|
+
/** Computed from a price table, heuristic, or model — not reported upstream. */
|
|
16
|
+
'estimated' |
|
|
17
|
+
/** Seen, then cut short. What is here is real; what is missing is not. */
|
|
18
|
+
'truncated' |
|
|
19
|
+
/** Seen, then removed before storage. */
|
|
20
|
+
'redacted' |
|
|
21
|
+
/** Expected here and not present — a real gap in an observable place. */
|
|
22
|
+
'absent' |
|
|
23
|
+
/** This process cannot see it at all, so its absence proves nothing. */
|
|
24
|
+
'unobservable';
|
|
25
|
+
/** Prefix for per-field evidence labels. */
|
|
26
|
+
declare const EVIDENCE_ATTR_PREFIX = "autotel.evidence.";
|
|
27
|
+
/** The span attribute key carrying `field`'s evidence label. */
|
|
28
|
+
declare function evidenceAttribute(field: string): string;
|
|
29
|
+
/** The one thing {@link recordEvidence} needs — any `TraceContext` or `Span`. */
|
|
30
|
+
interface EvidenceTarget {
|
|
31
|
+
setAttribute(key: string, value: string): void;
|
|
32
|
+
}
|
|
33
|
+
/** Label how `field` on this span came to be. */
|
|
34
|
+
declare function recordEvidence(ctx: EvidenceTarget, field: string, quality: EvidenceQuality): void;
|
|
35
|
+
/**
|
|
36
|
+
* The capture surfaces a deployment can be asked about. Closed set, because the
|
|
37
|
+
* point is that a backend can query `unobserved` across services and get
|
|
38
|
+
* comparable answers.
|
|
39
|
+
*/
|
|
40
|
+
declare const CAPTURE_SURFACES: readonly ["llm_calls", "tool_calls", "user_prompts", "file_io", "subprocess", "network", "ide_context"];
|
|
41
|
+
type CaptureSurface = (typeof CAPTURE_SURFACES)[number];
|
|
42
|
+
/** What this process can and cannot see. Anything in neither list is unknown. */
|
|
43
|
+
interface CaptureCoverage {
|
|
44
|
+
observed: readonly CaptureSurface[];
|
|
45
|
+
unobserved: readonly CaptureSurface[];
|
|
46
|
+
}
|
|
47
|
+
declare const CAPTURE_COVERAGE_ATTR: {
|
|
48
|
+
readonly observed: "autotel.coverage.observed";
|
|
49
|
+
readonly unobserved: "autotel.coverage.unobserved";
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Resource attributes declaring {@link CaptureCoverage}.
|
|
53
|
+
*
|
|
54
|
+
* An empty list is omitted rather than emitted: `unobserved: []` would read as
|
|
55
|
+
* "this process has no blind spots", which is a stronger claim than declaring
|
|
56
|
+
* nothing. A surface claimed as both is dropped from both — a contradiction
|
|
57
|
+
* that left `observed` intact would let a reader conclude a gap does not exist.
|
|
58
|
+
*/
|
|
59
|
+
declare function captureCoverageAttributes(coverage: CaptureCoverage): Attributes;
|
|
60
|
+
//#endregion
|
|
61
|
+
export { CAPTURE_COVERAGE_ATTR, CAPTURE_SURFACES, CaptureCoverage, CaptureSurface, EVIDENCE_ATTR_PREFIX, EvidenceQuality, EvidenceTarget, captureCoverageAttributes, evidenceAttribute, recordEvidence };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Attributes } from "@opentelemetry/api";
|
|
2
|
+
//#region src/evidence.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Why a recorded fact is the way it is.
|
|
5
|
+
*
|
|
6
|
+
* There is deliberately no `unknown` member: a field carrying no evidence label
|
|
7
|
+
* is already unknown, and encoding that as a value invites code that treats an
|
|
8
|
+
* unlabelled field as *verified* unknown rather than simply unexamined.
|
|
9
|
+
*/
|
|
10
|
+
type EvidenceQuality =
|
|
11
|
+
/** The instrumentation saw the value directly. */
|
|
12
|
+
'observed' |
|
|
13
|
+
/** Derived from other observed facts, not seen. */
|
|
14
|
+
'inferred' |
|
|
15
|
+
/** Computed from a price table, heuristic, or model — not reported upstream. */
|
|
16
|
+
'estimated' |
|
|
17
|
+
/** Seen, then cut short. What is here is real; what is missing is not. */
|
|
18
|
+
'truncated' |
|
|
19
|
+
/** Seen, then removed before storage. */
|
|
20
|
+
'redacted' |
|
|
21
|
+
/** Expected here and not present — a real gap in an observable place. */
|
|
22
|
+
'absent' |
|
|
23
|
+
/** This process cannot see it at all, so its absence proves nothing. */
|
|
24
|
+
'unobservable';
|
|
25
|
+
/** Prefix for per-field evidence labels. */
|
|
26
|
+
declare const EVIDENCE_ATTR_PREFIX = "autotel.evidence.";
|
|
27
|
+
/** The span attribute key carrying `field`'s evidence label. */
|
|
28
|
+
declare function evidenceAttribute(field: string): string;
|
|
29
|
+
/** The one thing {@link recordEvidence} needs — any `TraceContext` or `Span`. */
|
|
30
|
+
interface EvidenceTarget {
|
|
31
|
+
setAttribute(key: string, value: string): void;
|
|
32
|
+
}
|
|
33
|
+
/** Label how `field` on this span came to be. */
|
|
34
|
+
declare function recordEvidence(ctx: EvidenceTarget, field: string, quality: EvidenceQuality): void;
|
|
35
|
+
/**
|
|
36
|
+
* The capture surfaces a deployment can be asked about. Closed set, because the
|
|
37
|
+
* point is that a backend can query `unobserved` across services and get
|
|
38
|
+
* comparable answers.
|
|
39
|
+
*/
|
|
40
|
+
declare const CAPTURE_SURFACES: readonly ["llm_calls", "tool_calls", "user_prompts", "file_io", "subprocess", "network", "ide_context"];
|
|
41
|
+
type CaptureSurface = (typeof CAPTURE_SURFACES)[number];
|
|
42
|
+
/** What this process can and cannot see. Anything in neither list is unknown. */
|
|
43
|
+
interface CaptureCoverage {
|
|
44
|
+
observed: readonly CaptureSurface[];
|
|
45
|
+
unobserved: readonly CaptureSurface[];
|
|
46
|
+
}
|
|
47
|
+
declare const CAPTURE_COVERAGE_ATTR: {
|
|
48
|
+
readonly observed: "autotel.coverage.observed";
|
|
49
|
+
readonly unobserved: "autotel.coverage.unobserved";
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Resource attributes declaring {@link CaptureCoverage}.
|
|
53
|
+
*
|
|
54
|
+
* An empty list is omitted rather than emitted: `unobserved: []` would read as
|
|
55
|
+
* "this process has no blind spots", which is a stronger claim than declaring
|
|
56
|
+
* nothing. A surface claimed as both is dropped from both — a contradiction
|
|
57
|
+
* that left `observed` intact would let a reader conclude a gap does not exist.
|
|
58
|
+
*/
|
|
59
|
+
declare function captureCoverageAttributes(coverage: CaptureCoverage): Attributes;
|
|
60
|
+
//#endregion
|
|
61
|
+
export { CAPTURE_COVERAGE_ATTR, CAPTURE_SURFACES, CaptureCoverage, CaptureSurface, EVIDENCE_ATTR_PREFIX, EvidenceQuality, EvidenceTarget, captureCoverageAttributes, evidenceAttribute, recordEvidence };
|
package/dist/evidence.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//#region src/evidence.ts
|
|
2
|
+
/** Prefix for per-field evidence labels. */
|
|
3
|
+
const EVIDENCE_ATTR_PREFIX = "autotel.evidence.";
|
|
4
|
+
/** The span attribute key carrying `field`'s evidence label. */
|
|
5
|
+
function evidenceAttribute(field) {
|
|
6
|
+
return `${EVIDENCE_ATTR_PREFIX}${field}`;
|
|
7
|
+
}
|
|
8
|
+
/** Label how `field` on this span came to be. */
|
|
9
|
+
function recordEvidence(ctx, field, quality) {
|
|
10
|
+
ctx.setAttribute(evidenceAttribute(field), quality);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The capture surfaces a deployment can be asked about. Closed set, because the
|
|
14
|
+
* point is that a backend can query `unobserved` across services and get
|
|
15
|
+
* comparable answers.
|
|
16
|
+
*/
|
|
17
|
+
const CAPTURE_SURFACES = [
|
|
18
|
+
"llm_calls",
|
|
19
|
+
"tool_calls",
|
|
20
|
+
"user_prompts",
|
|
21
|
+
"file_io",
|
|
22
|
+
"subprocess",
|
|
23
|
+
"network",
|
|
24
|
+
"ide_context"
|
|
25
|
+
];
|
|
26
|
+
const CAPTURE_COVERAGE_ATTR = {
|
|
27
|
+
observed: "autotel.coverage.observed",
|
|
28
|
+
unobserved: "autotel.coverage.unobserved"
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Resource attributes declaring {@link CaptureCoverage}.
|
|
32
|
+
*
|
|
33
|
+
* An empty list is omitted rather than emitted: `unobserved: []` would read as
|
|
34
|
+
* "this process has no blind spots", which is a stronger claim than declaring
|
|
35
|
+
* nothing. A surface claimed as both is dropped from both — a contradiction
|
|
36
|
+
* that left `observed` intact would let a reader conclude a gap does not exist.
|
|
37
|
+
*/
|
|
38
|
+
function captureCoverageAttributes(coverage) {
|
|
39
|
+
const claimedBoth = new Set(coverage.observed.filter((s) => coverage.unobserved.includes(s)));
|
|
40
|
+
const keep = (surfaces) => [...new Set(surfaces.filter((s) => !claimedBoth.has(s)))];
|
|
41
|
+
const observed = keep(coverage.observed);
|
|
42
|
+
const unobserved = keep(coverage.unobserved);
|
|
43
|
+
return {
|
|
44
|
+
...observed.length > 0 && { [CAPTURE_COVERAGE_ATTR.observed]: observed },
|
|
45
|
+
...unobserved.length > 0 && { [CAPTURE_COVERAGE_ATTR.unobserved]: unobserved }
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
//#endregion
|
|
50
|
+
export { CAPTURE_COVERAGE_ATTR, CAPTURE_SURFACES, EVIDENCE_ATTR_PREFIX, captureCoverageAttributes, evidenceAttribute, recordEvidence };
|
|
@@ -3,7 +3,8 @@ const require_values = require('./values-DApyq53y.cjs');
|
|
|
3
3
|
const require_tracer_provider = require('./tracer-provider.cjs');
|
|
4
4
|
const require_config = require('./config.cjs');
|
|
5
5
|
const require_sampling = require('./sampling.cjs');
|
|
6
|
-
const require_init = require('./init-
|
|
6
|
+
const require_init = require('./init-C5aHRqi2.cjs');
|
|
7
|
+
const require_evidence = require('./evidence.cjs');
|
|
7
8
|
const require_trace_helpers = require('./trace-helpers.cjs');
|
|
8
9
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
9
10
|
let node_fs = require("node:fs");
|
|
@@ -205,25 +206,41 @@ function createDummyCtx() {
|
|
|
205
206
|
getAllBaggage: () => /* @__PURE__ */ new Map()
|
|
206
207
|
};
|
|
207
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Serialize a captured value, and say whether the ceiling cut it. The flag is
|
|
211
|
+
* separate from the text because `…[truncated]` inside the value is only
|
|
212
|
+
* legible to a human reading one span — a backend cannot filter on it.
|
|
213
|
+
*/
|
|
208
214
|
function serializeCapture(value) {
|
|
209
215
|
if (value === void 0) return void 0;
|
|
210
216
|
try {
|
|
211
217
|
const json = require_values.asString(value) ?? JSON.stringify(value);
|
|
212
218
|
if (json === void 0) return void 0;
|
|
213
|
-
return json.length > CAPTURE_MAX_CHARS ?
|
|
219
|
+
return json.length > CAPTURE_MAX_CHARS ? {
|
|
220
|
+
text: `${json.slice(0, CAPTURE_MAX_CHARS)}…[truncated]`,
|
|
221
|
+
truncated: true
|
|
222
|
+
} : {
|
|
223
|
+
text: json,
|
|
224
|
+
truncated: false
|
|
225
|
+
};
|
|
214
226
|
} catch {
|
|
215
227
|
return;
|
|
216
228
|
}
|
|
217
229
|
}
|
|
218
|
-
function
|
|
230
|
+
function captureAttrs(value, valueAttr, field, enabled) {
|
|
219
231
|
if (!enabled) return {};
|
|
220
|
-
const serialized = serializeCapture(
|
|
221
|
-
|
|
232
|
+
const serialized = serializeCapture(value);
|
|
233
|
+
if (serialized === void 0) return {};
|
|
234
|
+
return {
|
|
235
|
+
[valueAttr]: serialized.text,
|
|
236
|
+
...serialized.truncated && { [require_evidence.evidenceAttribute(field)]: "truncated" }
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
function captureInputAttrs(args, enabled) {
|
|
240
|
+
return captureAttrs(args.length === 1 ? args[0] : args, AUTOTEL_INPUT_ATTR, "input", enabled);
|
|
222
241
|
}
|
|
223
242
|
function captureOutputAttrs(result, enabled) {
|
|
224
|
-
|
|
225
|
-
const serialized = serializeCapture(result);
|
|
226
|
-
return serialized === void 0 ? {} : { [AUTOTEL_OUTPUT_ATTR]: serialized };
|
|
243
|
+
return captureAttrs(result, AUTOTEL_OUTPUT_ATTR, "output", enabled);
|
|
227
244
|
}
|
|
228
245
|
function truncateErrorMessage(message) {
|
|
229
246
|
return message.length <= 500 ? message : `${message.slice(0, 500)}... (truncated)`;
|
|
@@ -2,7 +2,8 @@ import { l as asString, m as isDevelopment } from "./values-BenyvWKz.js";
|
|
|
2
2
|
import { getForceFlushableProvider } from "./tracer-provider.js";
|
|
3
3
|
import { getConfig } from "./config.js";
|
|
4
4
|
import { AUTOTEL_SAMPLING_RATE, AUTOTEL_SAMPLING_TAIL_EVALUATED, AUTOTEL_SAMPLING_TAIL_KEEP, AlwaysSampler } from "./sampling.js";
|
|
5
|
-
import { D as getActiveContextWithBaggage, O as getContextStorage, T as createTraceContext, h as getEventQueue, k as hasExplicitSpanStatus, m as runInOperationContext, r as getSdk, t as getConfig$1 } from "./init-
|
|
5
|
+
import { D as getActiveContextWithBaggage, O as getContextStorage, T as createTraceContext, h as getEventQueue, k as hasExplicitSpanStatus, m as runInOperationContext, r as getSdk, t as getConfig$1 } from "./init-DDyaLzeg.js";
|
|
6
|
+
import { evidenceAttribute } from "./evidence.js";
|
|
6
7
|
import { setSpanName } from "./trace-helpers.js";
|
|
7
8
|
import { SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
|
|
8
9
|
import * as nodeFs from "node:fs";
|
|
@@ -202,25 +203,41 @@ function createDummyCtx() {
|
|
|
202
203
|
getAllBaggage: () => /* @__PURE__ */ new Map()
|
|
203
204
|
};
|
|
204
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Serialize a captured value, and say whether the ceiling cut it. The flag is
|
|
208
|
+
* separate from the text because `…[truncated]` inside the value is only
|
|
209
|
+
* legible to a human reading one span — a backend cannot filter on it.
|
|
210
|
+
*/
|
|
205
211
|
function serializeCapture(value) {
|
|
206
212
|
if (value === void 0) return void 0;
|
|
207
213
|
try {
|
|
208
214
|
const json = asString(value) ?? JSON.stringify(value);
|
|
209
215
|
if (json === void 0) return void 0;
|
|
210
|
-
return json.length > CAPTURE_MAX_CHARS ?
|
|
216
|
+
return json.length > CAPTURE_MAX_CHARS ? {
|
|
217
|
+
text: `${json.slice(0, CAPTURE_MAX_CHARS)}…[truncated]`,
|
|
218
|
+
truncated: true
|
|
219
|
+
} : {
|
|
220
|
+
text: json,
|
|
221
|
+
truncated: false
|
|
222
|
+
};
|
|
211
223
|
} catch {
|
|
212
224
|
return;
|
|
213
225
|
}
|
|
214
226
|
}
|
|
215
|
-
function
|
|
227
|
+
function captureAttrs(value, valueAttr, field, enabled) {
|
|
216
228
|
if (!enabled) return {};
|
|
217
|
-
const serialized = serializeCapture(
|
|
218
|
-
|
|
229
|
+
const serialized = serializeCapture(value);
|
|
230
|
+
if (serialized === void 0) return {};
|
|
231
|
+
return {
|
|
232
|
+
[valueAttr]: serialized.text,
|
|
233
|
+
...serialized.truncated && { [evidenceAttribute(field)]: "truncated" }
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
function captureInputAttrs(args, enabled) {
|
|
237
|
+
return captureAttrs(args.length === 1 ? args[0] : args, AUTOTEL_INPUT_ATTR, "input", enabled);
|
|
219
238
|
}
|
|
220
239
|
function captureOutputAttrs(result, enabled) {
|
|
221
|
-
|
|
222
|
-
const serialized = serializeCapture(result);
|
|
223
|
-
return serialized === void 0 ? {} : { [AUTOTEL_OUTPUT_ATTR]: serialized };
|
|
240
|
+
return captureAttrs(result, AUTOTEL_OUTPUT_ATTR, "output", enabled);
|
|
224
241
|
}
|
|
225
242
|
function truncateErrorMessage(message) {
|
|
226
243
|
return message.length <= 500 ? message : `${message.slice(0, 500)}... (truncated)`;
|
package/dist/functional.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_functional = require('./functional-
|
|
2
|
+
const require_functional = require('./functional-BhhP4Er_.cjs');
|
|
3
3
|
|
|
4
4
|
exports.ctx = require_functional.ctx;
|
|
5
5
|
exports.getActiveTraceContext = require_functional.getActiveTraceContext;
|
package/dist/functional.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as trace, c as withTracing, i as span, n as getActiveTraceContext, o as withBaggage, r as instrument, s as withNewContext, t as ctx } from "./functional-
|
|
1
|
+
import { a as trace, c as withTracing, i as span, n as getActiveTraceContext, o as withBaggage, r as instrument, s as withNewContext, t as ctx } from "./functional-Cub1ku-C.js";
|
|
2
2
|
|
|
3
3
|
export { ctx, getActiveTraceContext, instrument, span, trace, withBaggage, withNewContext, withTracing };
|
package/dist/http.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_values = require('./values-DApyq53y.cjs');
|
|
3
3
|
const require_config = require('./config.cjs');
|
|
4
|
-
const require_init = require('./init-
|
|
4
|
+
const require_init = require('./init-C5aHRqi2.cjs');
|
|
5
5
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
6
6
|
|
|
7
7
|
//#region src/http.ts
|
package/dist/http.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _ as readProperty, h as isFunction, i as asNumber, l as asString } from "./values-BenyvWKz.js";
|
|
2
2
|
import { getConfig } from "./config.js";
|
|
3
|
-
import { D as getActiveContextWithBaggage } from "./init-
|
|
3
|
+
import { D as getActiveContextWithBaggage } from "./init-DDyaLzeg.js";
|
|
4
4
|
import { SpanStatusCode, context, propagation } from "@opentelemetry/api";
|
|
5
5
|
|
|
6
6
|
//#region src/http.ts
|
package/dist/index.cjs
CHANGED
|
@@ -3,7 +3,7 @@ const require_rolldown_runtime = require('./rolldown-runtime-C_NdSu1c.cjs');
|
|
|
3
3
|
const require_values = require('./values-DApyq53y.cjs');
|
|
4
4
|
const require_tracer_provider = require('./tracer-provider.cjs');
|
|
5
5
|
const require_sampling = require('./sampling.cjs');
|
|
6
|
-
const require_init = require('./init-
|
|
6
|
+
const require_init = require('./init-C5aHRqi2.cjs');
|
|
7
7
|
const require_filtering_span_processor = require('./filtering-span-processor.cjs');
|
|
8
8
|
const require_span_name_normalizer = require('./span-name-normalizer.cjs');
|
|
9
9
|
const require_attribute_redacting_processor = require('./attribute-redacting-processor.cjs');
|
|
@@ -11,7 +11,7 @@ const require_canonical_log_line_processor = require('./canonical-log-line-proce
|
|
|
11
11
|
const require_structured_error = require('./structured-error--_wXpd_C.cjs');
|
|
12
12
|
const require_metric = require('./metric.cjs');
|
|
13
13
|
const require_trace_helpers = require('./trace-helpers.cjs');
|
|
14
|
-
const require_functional = require('./functional-
|
|
14
|
+
const require_functional = require('./functional-BhhP4Er_.cjs');
|
|
15
15
|
const require_stable_hash = require('./stable-hash-C0pOegH_.cjs');
|
|
16
16
|
const require_correlated_events = require('./correlated-events-CcuknWnU.cjs');
|
|
17
17
|
const require_parse_error = require('./parse-error.cjs');
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { g as nonEmptyString, i as asNumber, l as asString, r as asFunction, s as asRecord, x as toError } from "./values-BenyvWKz.js";
|
|
2
2
|
import { getAutotelTracer, getAutotelTracerProvider, setAutotelTracerProvider } from "./tracer-provider.js";
|
|
3
3
|
import { AUTOTEL_SAMPLING_TAIL_EVALUATED, AUTOTEL_SAMPLING_TAIL_KEEP, AdaptiveSampler, AlwaysSampler, NeverSampler, RandomSampler, UserIdSampler, createLinkFromHeaders, extractLinksFromBatch, resolveSamplingPreset, samplingPresets } from "./sampling.js";
|
|
4
|
-
import { A as createStringRedactor, C as setCorrelationId, E as defineBaggageSchema, S as runWithCorrelationId, T as createTraceContext, _ as CORRELATION_ID_BAGGAGE_KEY, a as isInitialized, c as flush, d as getEvents, f as resetEvents, g as track, h as getEventQueue, i as init, j as BaggageSpanProcessor, l as shutdown, m as runInOperationContext, o as isLoggerLocked, p as getOperationContext, s as lockLogger, u as Event, v as generateCorrelationId, w as setCorrelationIdInBaggage, x as getOrCreateCorrelationId, y as getCorrelationId } from "./init-
|
|
4
|
+
import { A as createStringRedactor, C as setCorrelationId, E as defineBaggageSchema, S as runWithCorrelationId, T as createTraceContext, _ as CORRELATION_ID_BAGGAGE_KEY, a as isInitialized, c as flush, d as getEvents, f as resetEvents, g as track, h as getEventQueue, i as init, j as BaggageSpanProcessor, l as shutdown, m as runInOperationContext, o as isLoggerLocked, p as getOperationContext, s as lockLogger, u as Event, v as generateCorrelationId, w as setCorrelationIdInBaggage, x as getOrCreateCorrelationId, y as getCorrelationId } from "./init-DDyaLzeg.js";
|
|
5
5
|
import { FilteringSpanProcessor } from "./filtering-span-processor.js";
|
|
6
6
|
import { NORMALIZER_PATTERNS, NORMALIZER_PRESETS, SpanNameNormalizingProcessor } from "./span-name-normalizer.js";
|
|
7
7
|
import { AttributeRedactingProcessor, REDACTOR_PATTERNS, REDACTOR_PRESETS, builtinPatterns, createAttributeRedactor, createRedactedSpan, normalizeAttributeRedactorConfig } from "./attribute-redacting-processor.js";
|
|
@@ -9,7 +9,7 @@ import { n as formatDuration } from "./canonical-log-line-processor-hFUmS__K.js"
|
|
|
9
9
|
import { a as flattenToAttributes, i as structuredErrorToJSON, n as getStructuredErrorAttributes, o as toAttributeValue, r as recordStructuredError, t as createStructuredError } from "./structured-error-YIuka-FE.js";
|
|
10
10
|
import { Metric, getMetrics, resetMetrics } from "./metric.js";
|
|
11
11
|
import { createDeterministicTraceId, enrichWithTraceContext, finalizeSpan, flattenMetadata, getActiveContext, getActiveSpan, getTraceContext, getTracer, isTracing, resolveTraceUrl, runWithSpan } from "./trace-helpers.js";
|
|
12
|
-
import { a as trace$2, c as withTracing, i as span, n as getActiveTraceContext, o as withBaggage, r as instrument, s as withNewContext, t as ctx } from "./functional-
|
|
12
|
+
import { a as trace$2, c as withTracing, i as span, n as getActiveTraceContext, o as withBaggage, r as instrument, s as withNewContext, t as ctx } from "./functional-Cub1ku-C.js";
|
|
13
13
|
import { t as hashJson } from "./stable-hash-BkoAYVks.js";
|
|
14
14
|
import { t as emitCorrelatedEvent } from "./correlated-events-DwMMbItg.js";
|
|
15
15
|
import { parseError } from "./parse-error.js";
|
|
@@ -3166,7 +3166,7 @@ function init(cfg) {
|
|
|
3166
3166
|
});
|
|
3167
3167
|
spanProcessors.push(new require_tail_sampling_processor.TailSamplingSpanProcessor(new _opentelemetry_sdk_trace_base.BatchSpanProcessor(traceExporter)));
|
|
3168
3168
|
}
|
|
3169
|
-
if (mergedConfig.baggage) {
|
|
3169
|
+
if (mergedConfig.baggage || mergedConfig.baggage === "") {
|
|
3170
3170
|
const prefix = typeof mergedConfig.baggage === "string" ? mergedConfig.baggage ? `${mergedConfig.baggage}.` : "" : "baggage.";
|
|
3171
3171
|
spanProcessors.push(new BaggageSpanProcessor({ prefix }));
|
|
3172
3172
|
}
|
|
@@ -3164,7 +3164,7 @@ function init(cfg) {
|
|
|
3164
3164
|
});
|
|
3165
3165
|
spanProcessors.push(new TailSamplingSpanProcessor(new BatchSpanProcessor(traceExporter)));
|
|
3166
3166
|
}
|
|
3167
|
-
if (mergedConfig.baggage) {
|
|
3167
|
+
if (mergedConfig.baggage || mergedConfig.baggage === "") {
|
|
3168
3168
|
const prefix = typeof mergedConfig.baggage === "string" ? mergedConfig.baggage ? `${mergedConfig.baggage}.` : "" : "baggage.";
|
|
3169
3169
|
spanProcessors.push(new BaggageSpanProcessor({ prefix }));
|
|
3170
3170
|
}
|
package/dist/instrumentation.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_init = require('./init-
|
|
2
|
+
const require_init = require('./init-C5aHRqi2.cjs');
|
|
3
3
|
const require_node_require = require('./node-require-EifOMikz.cjs');
|
|
4
4
|
const require_tail_sampling_processor = require('./tail-sampling-processor.cjs');
|
|
5
5
|
let _opentelemetry_sdk_node = require("@opentelemetry/sdk-node");
|
package/dist/instrumentation.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as getLogger } from "./init-
|
|
1
|
+
import { n as getLogger } from "./init-DDyaLzeg.js";
|
|
2
2
|
import { n as safeRequire, t as requireModule } from "./node-require-DSPjaw_l.js";
|
|
3
3
|
import { TailSamplingSpanProcessor } from "./tail-sampling-processor.js";
|
|
4
4
|
import { NodeSDK } from "@opentelemetry/sdk-node";
|
package/dist/messaging.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_values = require('./values-DApyq53y.cjs');
|
|
3
3
|
const require_sampling = require('./sampling.cjs');
|
|
4
|
-
const require_functional = require('./functional-
|
|
4
|
+
const require_functional = require('./functional-BhhP4Er_.cjs');
|
|
5
5
|
const require_correlated_events = require('./correlated-events-CcuknWnU.cjs');
|
|
6
6
|
const require_trace_factory_validation = require('./trace-factory-validation-Dc8epn87.cjs');
|
|
7
7
|
let _opentelemetry_api = require("@opentelemetry/api");
|
package/dist/messaging.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _ as readProperty, b as toAttributeValue, c as asScalar, g as nonEmptyString, h as isFunction, s as asRecord, v as resolveValue, y as splitNameOrOptions } from "./values-BenyvWKz.js";
|
|
2
2
|
import { createLinkFromHeaders, extractLinksFromBatch } from "./sampling.js";
|
|
3
|
-
import { c as withTracing } from "./functional-
|
|
3
|
+
import { c as withTracing } from "./functional-Cub1ku-C.js";
|
|
4
4
|
import { t as emitCorrelatedEvent } from "./correlated-events-DwMMbItg.js";
|
|
5
5
|
import { t as assertTraceFactory } from "./trace-factory-validation-BjVAinz6.js";
|
|
6
6
|
import { SpanKind, context, propagation } from "@opentelemetry/api";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_values = require('./values-DApyq53y.cjs');
|
|
3
|
-
const require_functional = require('./functional-
|
|
3
|
+
const require_functional = require('./functional-BhhP4Er_.cjs');
|
|
4
4
|
const require_trace_factory_validation = require('./trace-factory-validation-Dc8epn87.cjs');
|
|
5
5
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
6
6
|
|
package/dist/semantic-helpers.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { b as toAttributeValue, g as nonEmptyString, s as asRecord } from "./values-BenyvWKz.js";
|
|
2
|
-
import { c as withTracing } from "./functional-
|
|
2
|
+
import { c as withTracing } from "./functional-Cub1ku-C.js";
|
|
3
3
|
import { t as assertTraceFactory } from "./trace-factory-validation-BjVAinz6.js";
|
|
4
4
|
import { SpanKind } from "@opentelemetry/api";
|
|
5
5
|
|
package/dist/webhook.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_structured_error = require('./structured-error--_wXpd_C.cjs');
|
|
3
|
-
const require_functional = require('./functional-
|
|
3
|
+
const require_functional = require('./functional-BhhP4Er_.cjs');
|
|
4
4
|
const require_correlated_events = require('./correlated-events-CcuknWnU.cjs');
|
|
5
5
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
6
6
|
|
package/dist/webhook.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as recordStructuredError } from "./structured-error-YIuka-FE.js";
|
|
2
|
-
import { c as withTracing } from "./functional-
|
|
2
|
+
import { c as withTracing } from "./functional-Cub1ku-C.js";
|
|
3
3
|
import { t as emitCorrelatedEvent } from "./correlated-events-DwMMbItg.js";
|
|
4
4
|
import { SpanKind, trace } from "@opentelemetry/api";
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_values = require('./values-DApyq53y.cjs');
|
|
3
|
-
const require_functional = require('./functional-
|
|
3
|
+
const require_functional = require('./functional-BhhP4Er_.cjs');
|
|
4
4
|
const require_correlated_events = require('./correlated-events-CcuknWnU.cjs');
|
|
5
5
|
const require_business_baggage = require('./business-baggage.cjs');
|
|
6
6
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h as isFunction, x as toError } from "./values-BenyvWKz.js";
|
|
2
|
-
import { c as withTracing } from "./functional-
|
|
2
|
+
import { c as withTracing } from "./functional-Cub1ku-C.js";
|
|
3
3
|
import { t as emitCorrelatedEvent } from "./correlated-events-DwMMbItg.js";
|
|
4
4
|
import { createSafeBaggageSchema } from "./business-baggage.js";
|
|
5
5
|
import { SpanKind, context, propagation } from "@opentelemetry/api";
|
package/dist/workflow.cjs
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
const require_rolldown_runtime = require('./rolldown-runtime-C_NdSu1c.cjs');
|
|
3
3
|
const require_values = require('./values-DApyq53y.cjs');
|
|
4
4
|
const require_trace_helpers = require('./trace-helpers.cjs');
|
|
5
|
-
const require_functional = require('./functional-
|
|
5
|
+
const require_functional = require('./functional-BhhP4Er_.cjs');
|
|
6
6
|
const require_correlated_events = require('./correlated-events-CcuknWnU.cjs');
|
|
7
7
|
const require_trace_factory_validation = require('./trace-factory-validation-Dc8epn87.cjs');
|
|
8
8
|
let node_async_hooks = require("node:async_hooks");
|
package/dist/workflow.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { b as toAttributeValue, g as nonEmptyString, h as isFunction, l as asString, s as asRecord, x as toError } from "./values-BenyvWKz.js";
|
|
2
2
|
import { getActiveSpan } from "./trace-helpers.js";
|
|
3
|
-
import { c as withTracing } from "./functional-
|
|
3
|
+
import { c as withTracing } from "./functional-Cub1ku-C.js";
|
|
4
4
|
import { t as emitCorrelatedEvent } from "./correlated-events-DwMMbItg.js";
|
|
5
5
|
import { t as assertTraceFactory } from "./trace-factory-validation-BjVAinz6.js";
|
|
6
6
|
import * as nodeAsyncHooks from "node:async_hooks";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "autotel",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.0",
|
|
4
4
|
"description": "Write Once, Observe Anywhere",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -258,6 +258,11 @@
|
|
|
258
258
|
"import": "./dist/drain-pipeline.js",
|
|
259
259
|
"require": "./dist/drain-pipeline.cjs"
|
|
260
260
|
},
|
|
261
|
+
"./evidence": {
|
|
262
|
+
"types": "./dist/evidence.d.ts",
|
|
263
|
+
"import": "./dist/evidence.js",
|
|
264
|
+
"require": "./dist/evidence.cjs"
|
|
265
|
+
},
|
|
261
266
|
"./enrichers": {
|
|
262
267
|
"types": "./dist/enrichers.d.ts",
|
|
263
268
|
"import": "./dist/enrichers.js",
|