@superblocksteam/sdk 2.0.18 → 2.0.19-next.1
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/application-build.mjs +1 -1
- package/dist/application-build.mjs.map +1 -1
- package/dist/cli-replacement/automatic-upgrades.d.ts.map +1 -1
- package/dist/cli-replacement/automatic-upgrades.js +3 -2
- package/dist/cli-replacement/automatic-upgrades.js.map +1 -1
- package/dist/cli-replacement/dev.d.mts +1 -2
- package/dist/cli-replacement/dev.d.mts.map +1 -1
- package/dist/cli-replacement/dev.mjs +9 -6
- package/dist/cli-replacement/dev.mjs.map +1 -1
- package/dist/dev-utils/dev-server.d.mts.map +1 -1
- package/dist/dev-utils/dev-server.mjs +4 -4
- package/dist/dev-utils/dev-server.mjs.map +1 -1
- package/dist/socket/index.js +2 -2
- package/dist/socket/index.js.map +1 -1
- package/dist/telemetry/attributes.d.ts +6 -0
- package/dist/telemetry/attributes.d.ts.map +1 -0
- package/dist/telemetry/attributes.js +8 -0
- package/dist/telemetry/attributes.js.map +1 -0
- package/dist/telemetry/index.d.ts +7 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +79 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/{dev-utils/dev-logger.d.mts → telemetry/logging.d.ts} +3 -4
- package/dist/telemetry/logging.d.ts.map +1 -0
- package/dist/{dev-utils/dev-logger.mjs → telemetry/logging.js} +35 -7
- package/dist/telemetry/logging.js.map +1 -0
- package/dist/telemetry/util.d.ts +10 -0
- package/dist/telemetry/util.d.ts.map +1 -0
- package/dist/telemetry/util.js +28 -0
- package/dist/telemetry/util.js.map +1 -0
- package/dist/vite-plugin-generate-build-manifest.mjs +1 -1
- package/dist/vite-plugin-generate-build-manifest.mjs.map +1 -1
- package/dist/vite-plugin-inject-sb-ids-transform.mjs +1 -1
- package/dist/vite-plugin-inject-sb-ids-transform.mjs.map +1 -1
- package/package.json +8 -5
- package/src/application-build.mts +1 -1
- package/src/cli-replacement/automatic-upgrades.ts +3 -2
- package/src/cli-replacement/dev.mts +13 -12
- package/src/dev-utils/dev-server.mts +5 -5
- package/src/socket/index.ts +2 -2
- package/src/telemetry/attributes.ts +7 -0
- package/src/telemetry/index.ts +100 -0
- package/src/{dev-utils/dev-logger.mts → telemetry/logging.ts} +37 -17
- package/src/telemetry/util.ts +31 -0
- package/src/vite-plugin-generate-build-manifest.mts +1 -1
- package/src/vite-plugin-inject-sb-ids-transform.mts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/dev-utils/dev-logger.d.mts.map +0 -1
- package/dist/dev-utils/dev-logger.mjs.map +0 -1
- package/dist/dev-utils/dev-tracer.d.ts +0 -5
- package/dist/dev-utils/dev-tracer.d.ts.map +0 -1
- package/dist/dev-utils/dev-tracer.js +0 -109
- package/dist/dev-utils/dev-tracer.js.map +0 -1
- package/src/dev-utils/dev-tracer.ts +0 -123
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dev-logger.d.mts","sourceRoot":"","sources":["../../src/dev-utils/dev-logger.mts"],"names":[],"mappings":"AA4CA,UAAU,SAAS;IACjB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACvC,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtC,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;CACpD;AAsBD,wBAAgB,SAAS,CACvB,cAAc,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,GAC/C,SAAS,CAYX;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAgBtD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dev-logger.mjs","sourceRoot":"","sources":["../../src/dev-utils/dev-logger.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { ApplicationConfig } from "../types/index.js";
|
|
2
|
-
export declare const initializeTracingSdk: (applicationConfig?: ApplicationConfig) => void;
|
|
3
|
-
declare const tracer: import("@opentelemetry/api").Tracer;
|
|
4
|
-
export default tracer;
|
|
5
|
-
//# sourceMappingURL=dev-tracer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dev-tracer.d.ts","sourceRoot":"","sources":["../../src/dev-utils/dev-tracer.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA6B3D,eAAO,MAAM,oBAAoB,GAAI,oBAAoB,iBAAiB,SAuEzE,CAAC;AAGF,QAAA,MAAM,MAAM,qCAAqD,CAAC;AAElE,eAAe,MAAM,CAAC"}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { trace } from "@opentelemetry/api";
|
|
2
|
-
import { AsyncLocalStorageContextManager } from "@opentelemetry/context-async-hooks";
|
|
3
|
-
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
|
|
4
|
-
import { ExpressInstrumentation } from "@opentelemetry/instrumentation-express";
|
|
5
|
-
import { HttpInstrumentation } from "@opentelemetry/instrumentation-http";
|
|
6
|
-
import { Resource } from "@opentelemetry/resources";
|
|
7
|
-
import { NodeSDK } from "@opentelemetry/sdk-node";
|
|
8
|
-
import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
|
|
9
|
-
import { OBS_TAG_APPLICATION_ID, OBS_TAG_BRANCH, OBS_TAG_ORG_ID, OBS_TAG_USER_EMAIL, } from "@superblocksteam/shared";
|
|
10
|
-
import { getLocalTokenWithUrl } from "@superblocksteam/util";
|
|
11
|
-
import ddTrace from "dd-trace";
|
|
12
|
-
import packageJson from "../../package.json" with { type: "json" };
|
|
13
|
-
// NOTE: @joeyagreco - this is how the "env" facet is determined in datadog: https://docs.datadoghq.com/opentelemetry/setup/collector_exporter/#3---configure-your-application
|
|
14
|
-
const ATTR_DEPLOYMENT_ENVIRONMENT = "deployment.environment";
|
|
15
|
-
// NOTE: @joeyagreco - this can be used to determine if we are using mock-csb, staging-csb, prod-csb, etc
|
|
16
|
-
const ATTR_SUPERBLOCKS_BASE_URL = "superblocks.base_url";
|
|
17
|
-
const ATTR_SUPERBLOCKS_CLI_TOKEN = "superblocks.cli_token";
|
|
18
|
-
const ATTR_SUPERBLOCKS_IS_CSB = "superblocks.is_csb";
|
|
19
|
-
const ATTR_SUPERBLOCKS_USER_ID = "user-id";
|
|
20
|
-
let superblocksTracesUrl = undefined;
|
|
21
|
-
let superblocksHostname = "unknown";
|
|
22
|
-
let token = "unknown";
|
|
23
|
-
try {
|
|
24
|
-
const tokenWithUrl = await getLocalTokenWithUrl();
|
|
25
|
-
const superblocksBaseUrl = new URL(tokenWithUrl.superblocksBaseUrl);
|
|
26
|
-
superblocksTracesUrl = superblocksBaseUrl.origin + "/api/v1/traces";
|
|
27
|
-
superblocksHostname = superblocksBaseUrl.hostname;
|
|
28
|
-
if ("token" in tokenWithUrl) {
|
|
29
|
-
token = tokenWithUrl.token.substring(0, 8);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
catch (e) {
|
|
33
|
-
console.error("[tracing init] could not determine superblocks base url", e);
|
|
34
|
-
}
|
|
35
|
-
const SERVICE_NAME = "sdk-dev-server";
|
|
36
|
-
// NOTE: @joeyagreco - we do this because (per DataDog support):
|
|
37
|
-
// NOTE: @joeyagreco - "There is currently no way to define a retention filter directly for “LLM apps” unless those apps are associated with a specific service tag."
|
|
38
|
-
const SERVICE_NAME_LLM = "superblocks-ai-code-gen";
|
|
39
|
-
export const initializeTracingSdk = (applicationConfig) => {
|
|
40
|
-
// --- Initialize dd-trace for LLM Observability ---
|
|
41
|
-
// https://docs.datadoghq.com/llm_observability/sdk/?tab=nodejs
|
|
42
|
-
// traces will show up here: https://app.datadoghq.com/llm/traces
|
|
43
|
-
// IMPORTANT: @joeyagreco - to make tracing work, DD_API_KEY must be set as an env var
|
|
44
|
-
// NOTE: @joeyagreco - at this time we will only ever use this DD_SITE
|
|
45
|
-
process.env.DD_SITE = "datadoghq.com";
|
|
46
|
-
ddTrace.init({
|
|
47
|
-
env: process.env.SUPERBLOCKS_CLI_ENV,
|
|
48
|
-
service: SERVICE_NAME_LLM,
|
|
49
|
-
version: packageJson.version,
|
|
50
|
-
plugins: false,
|
|
51
|
-
tags: {
|
|
52
|
-
"superblocks.base_url": superblocksHostname,
|
|
53
|
-
"superblocks.cli_token": token,
|
|
54
|
-
"superblocks.is_csb": process.env.SUPERBLOCKS_IS_CSB,
|
|
55
|
-
[OBS_TAG_APPLICATION_ID]: applicationConfig?.id,
|
|
56
|
-
[OBS_TAG_BRANCH]: applicationConfig?.branchName,
|
|
57
|
-
},
|
|
58
|
-
llmobs: {
|
|
59
|
-
mlApp: SERVICE_NAME_LLM,
|
|
60
|
-
agentlessEnabled: true,
|
|
61
|
-
},
|
|
62
|
-
});
|
|
63
|
-
// Initialize the OpenTelemetry SDK
|
|
64
|
-
const sdk = new NodeSDK({
|
|
65
|
-
resource: Resource.default().merge(new Resource({
|
|
66
|
-
[ATTR_SERVICE_NAME]: "sdk-dev-server",
|
|
67
|
-
[ATTR_DEPLOYMENT_ENVIRONMENT]: process.env.SUPERBLOCKS_CLI_ENV,
|
|
68
|
-
[ATTR_SUPERBLOCKS_BASE_URL]: superblocksHostname,
|
|
69
|
-
[ATTR_SUPERBLOCKS_CLI_TOKEN]: token,
|
|
70
|
-
[OBS_TAG_APPLICATION_ID]: applicationConfig?.id,
|
|
71
|
-
[OBS_TAG_BRANCH]: applicationConfig?.branchName,
|
|
72
|
-
[ATTR_SUPERBLOCKS_IS_CSB]: process.env.SUPERBLOCKS_IS_CSB,
|
|
73
|
-
[OBS_TAG_USER_EMAIL]: applicationConfig?.userEmail,
|
|
74
|
-
[ATTR_SUPERBLOCKS_USER_ID]: applicationConfig?.userId,
|
|
75
|
-
[OBS_TAG_ORG_ID]: applicationConfig?.organizationId,
|
|
76
|
-
})),
|
|
77
|
-
traceExporter: new OTLPTraceExporter({
|
|
78
|
-
url: superblocksTracesUrl, // OTLPTraceExporter defaults to sending traffic to http://localhost:4318/v1/traces
|
|
79
|
-
}),
|
|
80
|
-
contextManager: new AsyncLocalStorageContextManager(),
|
|
81
|
-
instrumentations: [
|
|
82
|
-
// Configure HTTP instrumentation with custom attributes
|
|
83
|
-
new HttpInstrumentation({
|
|
84
|
-
requestHook: (span, request) => {
|
|
85
|
-
let resource = "GET";
|
|
86
|
-
if (request) {
|
|
87
|
-
resource = `${request.method} ${request.url || request.path}`;
|
|
88
|
-
}
|
|
89
|
-
span.setAttributes({
|
|
90
|
-
"resource.name": resource,
|
|
91
|
-
});
|
|
92
|
-
},
|
|
93
|
-
}),
|
|
94
|
-
// Configure Express instrumentation
|
|
95
|
-
new ExpressInstrumentation({
|
|
96
|
-
requestHook: (span, request) => {
|
|
97
|
-
span.setAttributes({
|
|
98
|
-
"resource.name": `${request.method} ${request.url}`,
|
|
99
|
-
});
|
|
100
|
-
},
|
|
101
|
-
}),
|
|
102
|
-
],
|
|
103
|
-
});
|
|
104
|
-
sdk.start();
|
|
105
|
-
};
|
|
106
|
-
// Get a tracer instance
|
|
107
|
-
const tracer = trace.getTracer(SERVICE_NAME, packageJson.version);
|
|
108
|
-
export default tracer;
|
|
109
|
-
//# sourceMappingURL=dev-tracer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dev-tracer.js","sourceRoot":"","sources":["../../src/dev-utils/dev-tracer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { trace } from "@opentelemetry/api";
|
|
2
|
-
import { AsyncLocalStorageContextManager } from "@opentelemetry/context-async-hooks";
|
|
3
|
-
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
|
|
4
|
-
import { ExpressInstrumentation } from "@opentelemetry/instrumentation-express";
|
|
5
|
-
import { HttpInstrumentation } from "@opentelemetry/instrumentation-http";
|
|
6
|
-
import { Resource } from "@opentelemetry/resources";
|
|
7
|
-
import { NodeSDK } from "@opentelemetry/sdk-node";
|
|
8
|
-
import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
|
|
9
|
-
import {
|
|
10
|
-
OBS_TAG_APPLICATION_ID,
|
|
11
|
-
OBS_TAG_BRANCH,
|
|
12
|
-
OBS_TAG_ORG_ID,
|
|
13
|
-
OBS_TAG_USER_EMAIL,
|
|
14
|
-
} from "@superblocksteam/shared";
|
|
15
|
-
import { getLocalTokenWithUrl } from "@superblocksteam/util";
|
|
16
|
-
import ddTrace from "dd-trace";
|
|
17
|
-
import packageJson from "../../package.json" with { type: "json" };
|
|
18
|
-
import type { ApplicationConfig } from "../types/index.js";
|
|
19
|
-
import type { Span } from "@opentelemetry/api";
|
|
20
|
-
|
|
21
|
-
// NOTE: @joeyagreco - this is how the "env" facet is determined in datadog: https://docs.datadoghq.com/opentelemetry/setup/collector_exporter/#3---configure-your-application
|
|
22
|
-
const ATTR_DEPLOYMENT_ENVIRONMENT = "deployment.environment";
|
|
23
|
-
// NOTE: @joeyagreco - this can be used to determine if we are using mock-csb, staging-csb, prod-csb, etc
|
|
24
|
-
const ATTR_SUPERBLOCKS_BASE_URL = "superblocks.base_url";
|
|
25
|
-
const ATTR_SUPERBLOCKS_CLI_TOKEN = "superblocks.cli_token";
|
|
26
|
-
const ATTR_SUPERBLOCKS_IS_CSB = "superblocks.is_csb";
|
|
27
|
-
const ATTR_SUPERBLOCKS_USER_ID = "user-id";
|
|
28
|
-
let superblocksTracesUrl = undefined;
|
|
29
|
-
let superblocksHostname = "unknown";
|
|
30
|
-
let token = "unknown";
|
|
31
|
-
try {
|
|
32
|
-
const tokenWithUrl = await getLocalTokenWithUrl();
|
|
33
|
-
const superblocksBaseUrl = new URL(tokenWithUrl.superblocksBaseUrl);
|
|
34
|
-
superblocksTracesUrl = superblocksBaseUrl.origin + "/api/v1/traces";
|
|
35
|
-
superblocksHostname = superblocksBaseUrl.hostname;
|
|
36
|
-
if ("token" in tokenWithUrl) {
|
|
37
|
-
token = tokenWithUrl.token.substring(0, 8);
|
|
38
|
-
}
|
|
39
|
-
} catch (e) {
|
|
40
|
-
console.error("[tracing init] could not determine superblocks base url", e);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const SERVICE_NAME = "sdk-dev-server";
|
|
44
|
-
// NOTE: @joeyagreco - we do this because (per DataDog support):
|
|
45
|
-
// NOTE: @joeyagreco - "There is currently no way to define a retention filter directly for “LLM apps” unless those apps are associated with a specific service tag."
|
|
46
|
-
const SERVICE_NAME_LLM = "superblocks-ai-code-gen";
|
|
47
|
-
export const initializeTracingSdk = (applicationConfig?: ApplicationConfig) => {
|
|
48
|
-
// --- Initialize dd-trace for LLM Observability ---
|
|
49
|
-
// https://docs.datadoghq.com/llm_observability/sdk/?tab=nodejs
|
|
50
|
-
// traces will show up here: https://app.datadoghq.com/llm/traces
|
|
51
|
-
|
|
52
|
-
// IMPORTANT: @joeyagreco - to make tracing work, DD_API_KEY must be set as an env var
|
|
53
|
-
// NOTE: @joeyagreco - at this time we will only ever use this DD_SITE
|
|
54
|
-
process.env.DD_SITE = "datadoghq.com";
|
|
55
|
-
ddTrace.init({
|
|
56
|
-
env: process.env.SUPERBLOCKS_CLI_ENV,
|
|
57
|
-
service: SERVICE_NAME_LLM,
|
|
58
|
-
version: packageJson.version,
|
|
59
|
-
plugins: false,
|
|
60
|
-
tags: {
|
|
61
|
-
"superblocks.base_url": superblocksHostname,
|
|
62
|
-
"superblocks.cli_token": token,
|
|
63
|
-
"superblocks.is_csb": process.env.SUPERBLOCKS_IS_CSB,
|
|
64
|
-
[OBS_TAG_APPLICATION_ID]: applicationConfig?.id,
|
|
65
|
-
[OBS_TAG_BRANCH]: applicationConfig?.branchName,
|
|
66
|
-
},
|
|
67
|
-
llmobs: {
|
|
68
|
-
mlApp: SERVICE_NAME_LLM,
|
|
69
|
-
agentlessEnabled: true,
|
|
70
|
-
},
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
// Initialize the OpenTelemetry SDK
|
|
74
|
-
const sdk = new NodeSDK({
|
|
75
|
-
resource: Resource.default().merge(
|
|
76
|
-
new Resource({
|
|
77
|
-
[ATTR_SERVICE_NAME]: "sdk-dev-server",
|
|
78
|
-
[ATTR_DEPLOYMENT_ENVIRONMENT]: process.env.SUPERBLOCKS_CLI_ENV,
|
|
79
|
-
[ATTR_SUPERBLOCKS_BASE_URL]: superblocksHostname,
|
|
80
|
-
[ATTR_SUPERBLOCKS_CLI_TOKEN]: token,
|
|
81
|
-
[OBS_TAG_APPLICATION_ID]: applicationConfig?.id,
|
|
82
|
-
[OBS_TAG_BRANCH]: applicationConfig?.branchName,
|
|
83
|
-
[ATTR_SUPERBLOCKS_IS_CSB]: process.env.SUPERBLOCKS_IS_CSB,
|
|
84
|
-
[OBS_TAG_USER_EMAIL]: applicationConfig?.userEmail,
|
|
85
|
-
[ATTR_SUPERBLOCKS_USER_ID]: applicationConfig?.userId,
|
|
86
|
-
[OBS_TAG_ORG_ID]: applicationConfig?.organizationId,
|
|
87
|
-
}),
|
|
88
|
-
),
|
|
89
|
-
traceExporter: new OTLPTraceExporter({
|
|
90
|
-
url: superblocksTracesUrl, // OTLPTraceExporter defaults to sending traffic to http://localhost:4318/v1/traces
|
|
91
|
-
}),
|
|
92
|
-
contextManager: new AsyncLocalStorageContextManager(),
|
|
93
|
-
instrumentations: [
|
|
94
|
-
// Configure HTTP instrumentation with custom attributes
|
|
95
|
-
new HttpInstrumentation({
|
|
96
|
-
requestHook: (span: Span, request: any) => {
|
|
97
|
-
let resource = "GET";
|
|
98
|
-
if (request) {
|
|
99
|
-
resource = `${request.method} ${request.url || request.path}`;
|
|
100
|
-
}
|
|
101
|
-
span.setAttributes({
|
|
102
|
-
"resource.name": resource,
|
|
103
|
-
});
|
|
104
|
-
},
|
|
105
|
-
}),
|
|
106
|
-
// Configure Express instrumentation
|
|
107
|
-
new ExpressInstrumentation({
|
|
108
|
-
requestHook: (span: Span, request: any) => {
|
|
109
|
-
span.setAttributes({
|
|
110
|
-
"resource.name": `${request.method} ${request.url}`,
|
|
111
|
-
});
|
|
112
|
-
},
|
|
113
|
-
}),
|
|
114
|
-
],
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
sdk.start();
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
// Get a tracer instance
|
|
121
|
-
const tracer = trace.getTracer(SERVICE_NAME, packageJson.version);
|
|
122
|
-
|
|
123
|
-
export default tracer;
|