@superblocksteam/sdk 2.0.10-next.16 → 2.0.10-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-replacement/dev.d.mts.map +1 -1
- package/dist/cli-replacement/dev.mjs +49 -79
- package/dist/cli-replacement/dev.mjs.map +1 -1
- package/dist/dev-utils/dev-tracer.d.ts.map +1 -1
- package/dist/dev-utils/dev-tracer.js +1 -26
- package/dist/dev-utils/dev-tracer.js.map +1 -1
- package/package.json +5 -6
- package/src/cli-replacement/dev.mts +62 -105
- package/src/dev-utils/dev-tracer.ts +1 -28
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.mts","sourceRoot":"","sources":["../../src/cli-replacement/dev.mts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"dev.d.mts","sourceRoot":"","sources":["../../src/cli-replacement/dev.mts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AA8BpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AA8D5D,wBAAsB,GAAG,CAAC,OAAO,EAAE;IAEjC,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAGtC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC;IAGnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,iBA8NA"}
|
|
@@ -2,7 +2,6 @@ import "../dev-utils/dev-tracer.js";
|
|
|
2
2
|
import * as child_process from "node:child_process";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { promisify } from "node:util";
|
|
5
|
-
import { SpanStatusCode } from "@opentelemetry/api";
|
|
6
5
|
import { maskUnixSignals } from "@superblocksteam/util";
|
|
7
6
|
import { AiService } from "@superblocksteam/vite-plugin-file-sync/ai-service";
|
|
8
7
|
import { LockService, LockType, } from "@superblocksteam/vite-plugin-file-sync/lock-service";
|
|
@@ -108,36 +107,23 @@ export async function dev(options) {
|
|
|
108
107
|
await maskUnixSignals(async () => {
|
|
109
108
|
const sdk = new SuperblocksSdk(applicationConfig.token, applicationConfig.superblocksBaseUrl, "");
|
|
110
109
|
if (lockService) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
message: JSON.stringify(error),
|
|
120
|
-
});
|
|
121
|
-
passErrorToVSCode(error.context?.message, logger);
|
|
122
|
-
throw new Error(`Failed to acquire lock on application: ${error}`);
|
|
123
|
-
}
|
|
124
|
-
finally {
|
|
125
|
-
span.end();
|
|
126
|
-
}
|
|
127
|
-
});
|
|
110
|
+
try {
|
|
111
|
+
await lockService.acquireLock();
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
logger.error("Failed to acquire lock on application", getErrorMeta(error));
|
|
115
|
+
passErrorToVSCode(error.context?.message, logger);
|
|
116
|
+
throw new Error(`Failed to acquire lock on application: ${error}`);
|
|
117
|
+
}
|
|
128
118
|
}
|
|
129
|
-
const [localContents, serverHash, currentUser] = await
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
]);
|
|
138
|
-
span.end();
|
|
139
|
-
return results;
|
|
140
|
-
});
|
|
119
|
+
const [localContents, serverHash, currentUser] = await Promise.all([
|
|
120
|
+
sdk.hashLocalDirectory(cwd),
|
|
121
|
+
sdk.dbfsGetApplicationDirectoryHash({
|
|
122
|
+
applicationId: applicationConfig.id,
|
|
123
|
+
branch: applicationConfig.branchName,
|
|
124
|
+
}),
|
|
125
|
+
sdk.fetchCurrentUser(),
|
|
126
|
+
]);
|
|
141
127
|
aiService = new AiService({
|
|
142
128
|
authToken: applicationConfig.token,
|
|
143
129
|
superblocksBaseUrl: applicationConfig.superblocksBaseUrl,
|
|
@@ -163,54 +149,42 @@ export async function dev(options) {
|
|
|
163
149
|
}
|
|
164
150
|
let hasPackageChanged = false;
|
|
165
151
|
if (downloadFirst) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}
|
|
179
|
-
span.end();
|
|
180
|
-
});
|
|
152
|
+
logger.info(`Starting download of branch '${applicationConfig.branchName}'`);
|
|
153
|
+
const packageJsonBefore = await readPkgJson(cwd);
|
|
154
|
+
await syncService.downloadDirectory();
|
|
155
|
+
const packageJsonAfter = await readPkgJson(cwd);
|
|
156
|
+
if (packageJsonBefore && packageJsonAfter) {
|
|
157
|
+
const diff = diffJson(packageJsonBefore, packageJsonAfter);
|
|
158
|
+
hasPackageChanged = diff.some((part) => part.added || part.removed);
|
|
159
|
+
}
|
|
160
|
+
else if (packageJsonAfter) {
|
|
161
|
+
hasPackageChanged = true;
|
|
162
|
+
logger.info("package.json was created, installing packages…");
|
|
163
|
+
}
|
|
181
164
|
}
|
|
182
165
|
let hasCliUpdated = false;
|
|
183
166
|
if (!process.env.PACKAGE_SUFFIX ||
|
|
184
167
|
process.env.PACKAGE_SUFFIX === "" ||
|
|
185
168
|
!skipAutoUpgrade) {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
hasPackageChanged = true;
|
|
191
|
-
}
|
|
192
|
-
hasCliUpdated = result?.cliUpdated ?? false;
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
logger.warn("Lock service is not available, skipping version check and upgrade");
|
|
169
|
+
if (lockService) {
|
|
170
|
+
const result = await checkVersionsAndUpgrade(lockService, applicationConfig);
|
|
171
|
+
if (result?.libraryUpdated) {
|
|
172
|
+
hasPackageChanged = true;
|
|
196
173
|
}
|
|
197
|
-
|
|
198
|
-
}
|
|
174
|
+
hasCliUpdated = result?.cliUpdated ?? false;
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
logger.warn("Lock service is not available, skipping version check and upgrade");
|
|
178
|
+
}
|
|
199
179
|
}
|
|
200
180
|
if (hasPackageChanged) {
|
|
201
181
|
logger.info("Installing packages…");
|
|
202
|
-
await
|
|
203
|
-
await installPackages(cwd, logger);
|
|
204
|
-
span.end();
|
|
205
|
-
});
|
|
182
|
+
await installPackages(cwd, logger);
|
|
206
183
|
}
|
|
207
184
|
if (hasPackageChanged || uploadFirst) {
|
|
208
185
|
logger.info(`Uploading local files to branch '${applicationConfig.branchName}' on server before starting`);
|
|
209
|
-
await
|
|
210
|
-
|
|
211
|
-
await syncService.uploadDirectoryNowIfNeeded();
|
|
212
|
-
span.end();
|
|
213
|
-
});
|
|
186
|
+
await syncService.uploadDirectory();
|
|
187
|
+
await syncService.uploadDirectoryNowIfNeeded();
|
|
214
188
|
}
|
|
215
189
|
if (hasCliUpdated) {
|
|
216
190
|
logger.info("CLI was updated, restarting the dev server…");
|
|
@@ -232,19 +206,15 @@ export async function dev(options) {
|
|
|
232
206
|
else {
|
|
233
207
|
logger.info("Skipping directory sync");
|
|
234
208
|
}
|
|
235
|
-
const httpServer = await
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
logger: options.logger,
|
|
245
|
-
});
|
|
246
|
-
span.end();
|
|
247
|
-
return result;
|
|
209
|
+
const httpServer = await createDevServer({
|
|
210
|
+
root: options.cwd,
|
|
211
|
+
mode: "development",
|
|
212
|
+
port: port,
|
|
213
|
+
fsOperationQueue,
|
|
214
|
+
syncService,
|
|
215
|
+
lockService,
|
|
216
|
+
aiService,
|
|
217
|
+
logger: options.logger,
|
|
248
218
|
});
|
|
249
219
|
options.signal?.addEventListener("abort", () => {
|
|
250
220
|
logger.info("Server closed");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.mjs","sourceRoot":"","sources":["../../src/cli-replacement/dev.mts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dev.mjs","sourceRoot":"","sources":["../../src/cli-replacement/dev.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-tracer.d.ts","sourceRoot":"","sources":["../../src/dev-utils/dev-tracer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev-tracer.d.ts","sourceRoot":"","sources":["../../src/dev-utils/dev-tracer.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAyB3D,eAAO,MAAM,oBAAoB,GAAI,oBAAoB,iBAAiB,SA8CzE,CAAC;AAGF,QAAA,MAAM,MAAM,qCAAyD,CAAC;AAEtE,eAAe,MAAM,CAAC"}
|
|
@@ -8,7 +8,6 @@ import { NodeSDK } from "@opentelemetry/sdk-node";
|
|
|
8
8
|
import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
|
|
9
9
|
import { OBS_TAG_APPLICATION_ID, OBS_TAG_BRANCH, OBS_TAG_ORG_ID, OBS_TAG_USER_EMAIL, } from "@superblocksteam/shared";
|
|
10
10
|
import { getLocalTokenWithUrl } from "@superblocksteam/util";
|
|
11
|
-
import ddTrace from "dd-trace";
|
|
12
11
|
import packageJson from "../../package.json" with { type: "json" };
|
|
13
12
|
// 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
13
|
const ATTR_DEPLOYMENT_ENVIRONMENT = "deployment.environment";
|
|
@@ -32,31 +31,7 @@ try {
|
|
|
32
31
|
catch (e) {
|
|
33
32
|
console.error("[tracing init] could not determine superblocks base url", e);
|
|
34
33
|
}
|
|
35
|
-
const SERVICE_NAME = "sdk-dev-server";
|
|
36
34
|
export const initializeTracingSdk = (applicationConfig) => {
|
|
37
|
-
// --- Initialize dd-trace for LLM Observability ---
|
|
38
|
-
// https://docs.datadoghq.com/llm_observability/sdk/?tab=nodejs
|
|
39
|
-
// traces will show up here: https://app.datadoghq.com/llm/traces
|
|
40
|
-
// IMPORTANT: @joeyagreco - to make tracing work, DD_API_KEY must be set as an env var
|
|
41
|
-
// NOTE: @joeyagreco - at this time we will only ever use this DD_SITE
|
|
42
|
-
process.env.DD_SITE = "datadoghq.com";
|
|
43
|
-
ddTrace.init({
|
|
44
|
-
env: process.env.SUPERBLOCKS_CLI_ENV,
|
|
45
|
-
service: SERVICE_NAME,
|
|
46
|
-
version: packageJson.version,
|
|
47
|
-
plugins: false,
|
|
48
|
-
tags: {
|
|
49
|
-
"superblocks.base_url": superblocksHostname,
|
|
50
|
-
"superblocks.cli_token": token,
|
|
51
|
-
"superblocks.is_csb": process.env.SUPERBLOCKS_IS_CSB,
|
|
52
|
-
[OBS_TAG_APPLICATION_ID]: applicationConfig?.id,
|
|
53
|
-
[OBS_TAG_BRANCH]: applicationConfig?.branchName,
|
|
54
|
-
},
|
|
55
|
-
llmobs: {
|
|
56
|
-
mlApp: "superblocks-ai-code-gen",
|
|
57
|
-
agentlessEnabled: true,
|
|
58
|
-
},
|
|
59
|
-
});
|
|
60
35
|
// Initialize the OpenTelemetry SDK
|
|
61
36
|
const sdk = new NodeSDK({
|
|
62
37
|
resource: Resource.default().merge(new Resource({
|
|
@@ -101,6 +76,6 @@ export const initializeTracingSdk = (applicationConfig) => {
|
|
|
101
76
|
sdk.start();
|
|
102
77
|
};
|
|
103
78
|
// Get a tracer instance
|
|
104
|
-
const tracer = trace.getTracer(
|
|
79
|
+
const tracer = trace.getTracer("sdk-dev-server", packageJson.version);
|
|
105
80
|
export default tracer;
|
|
106
81
|
//# sourceMappingURL=dev-tracer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-tracer.js","sourceRoot":"","sources":["../../src/dev-utils/dev-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"dev-tracer.js","sourceRoot":"","sources":["../../src/dev-utils/dev-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAInE,8KAA8K;AAC9K,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AAC7D,yGAAyG;AACzG,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AACzD,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAC3D,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AACrD,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAC3C,IAAI,oBAAoB,GAAG,SAAS,CAAC;AACrC,IAAI,mBAAmB,GAAG,SAAS,CAAC;AACpC,IAAI,KAAK,GAAG,SAAS,CAAC;AACtB,IAAI,CAAC;IACH,MAAM,YAAY,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAClD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IACpE,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,GAAG,gBAAgB,CAAC;IACpE,mBAAmB,GAAG,kBAAkB,CAAC,QAAQ,CAAC;IAClD,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;QAC5B,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,iBAAqC,EAAE,EAAE;IAC5E,mCAAmC;IACnC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC;QACtB,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAChC,IAAI,QAAQ,CAAC;YACX,CAAC,iBAAiB,CAAC,EAAE,gBAAgB;YACrC,CAAC,2BAA2B,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;YAC9D,CAAC,yBAAyB,CAAC,EAAE,mBAAmB;YAChD,CAAC,0BAA0B,CAAC,EAAE,KAAK;YACnC,CAAC,sBAAsB,CAAC,EAAE,iBAAiB,EAAE,EAAE;YAC/C,CAAC,cAAc,CAAC,EAAE,iBAAiB,EAAE,UAAU;YAC/C,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;YACzD,CAAC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,SAAS;YAClD,CAAC,wBAAwB,CAAC,EAAE,iBAAiB,EAAE,MAAM;YACrD,CAAC,cAAc,CAAC,EAAE,iBAAiB,EAAE,cAAc;SACpD,CAAC,CACH;QACD,aAAa,EAAE,IAAI,iBAAiB,CAAC;YACnC,GAAG,EAAE,oBAAoB,EAAE,mFAAmF;SAC/G,CAAC;QACF,cAAc,EAAE,IAAI,+BAA+B,EAAE;QACrD,gBAAgB,EAAE;YAChB,wDAAwD;YACxD,IAAI,mBAAmB,CAAC;gBACtB,WAAW,EAAE,CAAC,IAAU,EAAE,OAAY,EAAE,EAAE;oBACxC,IAAI,QAAQ,GAAG,KAAK,CAAC;oBACrB,IAAI,OAAO,EAAE,CAAC;wBACZ,QAAQ,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oBAChE,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC;wBACjB,eAAe,EAAE,QAAQ;qBAC1B,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;YACF,oCAAoC;YACpC,IAAI,sBAAsB,CAAC;gBACzB,WAAW,EAAE,CAAC,IAAU,EAAE,OAAY,EAAE,EAAE;oBACxC,IAAI,CAAC,aAAa,CAAC;wBACjB,eAAe,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE;qBACpD,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;SACH;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,CAAC,CAAC;AAEF,wBAAwB;AACxB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,gBAAgB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;AAEtE,eAAe,MAAM,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superblocksteam/sdk",
|
|
3
|
-
"version": "2.0.10-next.
|
|
3
|
+
"version": "2.0.10-next.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Superblocks JS SDK",
|
|
6
6
|
"homepage": "https://www.superblocks.com",
|
|
@@ -30,18 +30,17 @@
|
|
|
30
30
|
"@opentelemetry/semantic-conventions": "^1.28.0",
|
|
31
31
|
"@rollup/wasm-node": "^4.35.0",
|
|
32
32
|
"@superblocksteam/bucketeer-sdk": "0.5.0",
|
|
33
|
-
"@superblocksteam/library": "2.0.10-next.
|
|
34
|
-
"@superblocksteam/library-shared": "2.0.10-next.
|
|
33
|
+
"@superblocksteam/library": "2.0.10-next.2",
|
|
34
|
+
"@superblocksteam/library-shared": "2.0.10-next.2",
|
|
35
35
|
"@superblocksteam/shared": "0.9260.0",
|
|
36
|
-
"@superblocksteam/util": "2.0.10-next.
|
|
37
|
-
"@superblocksteam/vite-plugin-file-sync": "2.0.10-next.
|
|
36
|
+
"@superblocksteam/util": "2.0.10-next.2",
|
|
37
|
+
"@superblocksteam/vite-plugin-file-sync": "2.0.10-next.2",
|
|
38
38
|
"@vitejs/plugin-react": "^4.3.4",
|
|
39
39
|
"axios": "^1.4.0",
|
|
40
40
|
"chokidar": "^4.0.3",
|
|
41
41
|
"colorette": "^2.0.20",
|
|
42
42
|
"common-tags": "^1.8.2",
|
|
43
43
|
"cors": "^2.8.5",
|
|
44
|
-
"dd-trace": "^5.57.1",
|
|
45
44
|
"debug": "^4.4.0",
|
|
46
45
|
"diff": "^8.0.2",
|
|
47
46
|
"es-module-lexer": "^1.6.0",
|
|
@@ -3,7 +3,6 @@ import "../dev-utils/dev-tracer.js";
|
|
|
3
3
|
import * as child_process from "node:child_process";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { promisify } from "node:util";
|
|
6
|
-
import { SpanStatusCode } from "@opentelemetry/api";
|
|
7
6
|
import { maskUnixSignals } from "@superblocksteam/util";
|
|
8
7
|
import { AiService } from "@superblocksteam/vite-plugin-file-sync/ai-service";
|
|
9
8
|
import {
|
|
@@ -184,44 +183,29 @@ export async function dev(options: {
|
|
|
184
183
|
);
|
|
185
184
|
|
|
186
185
|
if (lockService) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
(error as { context?: { message: string } }).context?.message,
|
|
201
|
-
logger,
|
|
202
|
-
);
|
|
203
|
-
throw new Error(
|
|
204
|
-
`Failed to acquire lock on application: ${error}`,
|
|
205
|
-
);
|
|
206
|
-
} finally {
|
|
207
|
-
span.end();
|
|
208
|
-
}
|
|
209
|
-
});
|
|
186
|
+
try {
|
|
187
|
+
await lockService!.acquireLock();
|
|
188
|
+
} catch (error) {
|
|
189
|
+
logger.error(
|
|
190
|
+
"Failed to acquire lock on application",
|
|
191
|
+
getErrorMeta(error),
|
|
192
|
+
);
|
|
193
|
+
passErrorToVSCode(
|
|
194
|
+
(error as { context?: { message: string } }).context?.message,
|
|
195
|
+
logger,
|
|
196
|
+
);
|
|
197
|
+
throw new Error(`Failed to acquire lock on application: ${error}`);
|
|
198
|
+
}
|
|
210
199
|
}
|
|
211
200
|
|
|
212
|
-
const [localContents, serverHash, currentUser] =
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
sdk.fetchCurrentUser(),
|
|
221
|
-
]);
|
|
222
|
-
span.end();
|
|
223
|
-
return results;
|
|
224
|
-
});
|
|
201
|
+
const [localContents, serverHash, currentUser] = await Promise.all([
|
|
202
|
+
sdk.hashLocalDirectory(cwd),
|
|
203
|
+
sdk.dbfsGetApplicationDirectoryHash({
|
|
204
|
+
applicationId: applicationConfig.id,
|
|
205
|
+
branch: applicationConfig.branchName,
|
|
206
|
+
}),
|
|
207
|
+
sdk.fetchCurrentUser(),
|
|
208
|
+
]);
|
|
225
209
|
|
|
226
210
|
aiService = new AiService({
|
|
227
211
|
authToken: applicationConfig.token,
|
|
@@ -258,26 +242,21 @@ export async function dev(options: {
|
|
|
258
242
|
let hasPackageChanged = false;
|
|
259
243
|
|
|
260
244
|
if (downloadFirst) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
);
|
|
265
|
-
|
|
266
|
-
const packageJsonBefore = await readPkgJson(cwd);
|
|
267
|
-
await syncService!.downloadDirectory();
|
|
268
|
-
const packageJsonAfter = await readPkgJson(cwd);
|
|
245
|
+
logger.info(
|
|
246
|
+
`Starting download of branch '${applicationConfig.branchName}'`,
|
|
247
|
+
);
|
|
269
248
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
}
|
|
249
|
+
const packageJsonBefore = await readPkgJson(cwd);
|
|
250
|
+
await syncService!.downloadDirectory();
|
|
251
|
+
const packageJsonAfter = await readPkgJson(cwd);
|
|
252
|
+
|
|
253
|
+
if (packageJsonBefore && packageJsonAfter) {
|
|
254
|
+
const diff = diffJson(packageJsonBefore, packageJsonAfter);
|
|
255
|
+
hasPackageChanged = diff.some((part) => part.added || part.removed);
|
|
256
|
+
} else if (packageJsonAfter) {
|
|
257
|
+
hasPackageChanged = true;
|
|
258
|
+
logger.info("package.json was created, installing packages…");
|
|
259
|
+
}
|
|
281
260
|
}
|
|
282
261
|
|
|
283
262
|
let hasCliUpdated = false;
|
|
@@ -286,48 +265,33 @@ export async function dev(options: {
|
|
|
286
265
|
process.env.PACKAGE_SUFFIX === "" ||
|
|
287
266
|
!skipAutoUpgrade
|
|
288
267
|
) {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
"Lock service is not available, skipping version check and upgrade",
|
|
304
|
-
);
|
|
305
|
-
}
|
|
306
|
-
span.end();
|
|
307
|
-
},
|
|
308
|
-
);
|
|
268
|
+
if (lockService) {
|
|
269
|
+
const result = await checkVersionsAndUpgrade(
|
|
270
|
+
lockService,
|
|
271
|
+
applicationConfig,
|
|
272
|
+
);
|
|
273
|
+
if (result?.libraryUpdated) {
|
|
274
|
+
hasPackageChanged = true;
|
|
275
|
+
}
|
|
276
|
+
hasCliUpdated = result?.cliUpdated ?? false;
|
|
277
|
+
} else {
|
|
278
|
+
logger.warn(
|
|
279
|
+
"Lock service is not available, skipping version check and upgrade",
|
|
280
|
+
);
|
|
281
|
+
}
|
|
309
282
|
}
|
|
310
283
|
|
|
311
284
|
if (hasPackageChanged) {
|
|
312
285
|
logger.info("Installing packages…");
|
|
313
|
-
await
|
|
314
|
-
await installPackages(cwd, logger);
|
|
315
|
-
span.end();
|
|
316
|
-
});
|
|
286
|
+
await installPackages(cwd, logger);
|
|
317
287
|
}
|
|
318
288
|
|
|
319
289
|
if (hasPackageChanged || uploadFirst) {
|
|
320
290
|
logger.info(
|
|
321
291
|
`Uploading local files to branch '${applicationConfig.branchName}' on server before starting`,
|
|
322
292
|
);
|
|
323
|
-
await
|
|
324
|
-
|
|
325
|
-
async (span) => {
|
|
326
|
-
await syncService!.uploadDirectory();
|
|
327
|
-
await syncService!.uploadDirectoryNowIfNeeded();
|
|
328
|
-
span.end();
|
|
329
|
-
},
|
|
330
|
-
);
|
|
293
|
+
await syncService!.uploadDirectory();
|
|
294
|
+
await syncService!.uploadDirectoryNowIfNeeded();
|
|
331
295
|
}
|
|
332
296
|
|
|
333
297
|
if (hasCliUpdated) {
|
|
@@ -348,23 +312,16 @@ export async function dev(options: {
|
|
|
348
312
|
logger.info("Skipping directory sync");
|
|
349
313
|
}
|
|
350
314
|
|
|
351
|
-
const httpServer = await
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
aiService,
|
|
362
|
-
logger: options.logger,
|
|
363
|
-
});
|
|
364
|
-
span.end();
|
|
365
|
-
return result;
|
|
366
|
-
},
|
|
367
|
-
);
|
|
315
|
+
const httpServer = await createDevServer({
|
|
316
|
+
root: options.cwd,
|
|
317
|
+
mode: "development",
|
|
318
|
+
port: port,
|
|
319
|
+
fsOperationQueue,
|
|
320
|
+
syncService,
|
|
321
|
+
lockService,
|
|
322
|
+
aiService,
|
|
323
|
+
logger: options.logger,
|
|
324
|
+
});
|
|
368
325
|
|
|
369
326
|
options.signal?.addEventListener("abort", () => {
|
|
370
327
|
logger.info("Server closed");
|
|
@@ -13,7 +13,6 @@ import {
|
|
|
13
13
|
OBS_TAG_USER_EMAIL,
|
|
14
14
|
} from "@superblocksteam/shared";
|
|
15
15
|
import { getLocalTokenWithUrl } from "@superblocksteam/util";
|
|
16
|
-
import ddTrace from "dd-trace";
|
|
17
16
|
import packageJson from "../../package.json" with { type: "json" };
|
|
18
17
|
import type { ApplicationConfig } from "../types/index.js";
|
|
19
18
|
import type { Span } from "@opentelemetry/api";
|
|
@@ -40,33 +39,7 @@ try {
|
|
|
40
39
|
console.error("[tracing init] could not determine superblocks base url", e);
|
|
41
40
|
}
|
|
42
41
|
|
|
43
|
-
const SERVICE_NAME = "sdk-dev-server";
|
|
44
42
|
export const initializeTracingSdk = (applicationConfig?: ApplicationConfig) => {
|
|
45
|
-
// --- Initialize dd-trace for LLM Observability ---
|
|
46
|
-
// https://docs.datadoghq.com/llm_observability/sdk/?tab=nodejs
|
|
47
|
-
// traces will show up here: https://app.datadoghq.com/llm/traces
|
|
48
|
-
|
|
49
|
-
// IMPORTANT: @joeyagreco - to make tracing work, DD_API_KEY must be set as an env var
|
|
50
|
-
// NOTE: @joeyagreco - at this time we will only ever use this DD_SITE
|
|
51
|
-
process.env.DD_SITE = "datadoghq.com";
|
|
52
|
-
ddTrace.init({
|
|
53
|
-
env: process.env.SUPERBLOCKS_CLI_ENV,
|
|
54
|
-
service: SERVICE_NAME,
|
|
55
|
-
version: packageJson.version,
|
|
56
|
-
plugins: false,
|
|
57
|
-
tags: {
|
|
58
|
-
"superblocks.base_url": superblocksHostname,
|
|
59
|
-
"superblocks.cli_token": token,
|
|
60
|
-
"superblocks.is_csb": process.env.SUPERBLOCKS_IS_CSB,
|
|
61
|
-
[OBS_TAG_APPLICATION_ID]: applicationConfig?.id,
|
|
62
|
-
[OBS_TAG_BRANCH]: applicationConfig?.branchName,
|
|
63
|
-
},
|
|
64
|
-
llmobs: {
|
|
65
|
-
mlApp: "superblocks-ai-code-gen",
|
|
66
|
-
agentlessEnabled: true,
|
|
67
|
-
},
|
|
68
|
-
});
|
|
69
|
-
|
|
70
43
|
// Initialize the OpenTelemetry SDK
|
|
71
44
|
const sdk = new NodeSDK({
|
|
72
45
|
resource: Resource.default().merge(
|
|
@@ -115,6 +88,6 @@ export const initializeTracingSdk = (applicationConfig?: ApplicationConfig) => {
|
|
|
115
88
|
};
|
|
116
89
|
|
|
117
90
|
// Get a tracer instance
|
|
118
|
-
const tracer = trace.getTracer(
|
|
91
|
+
const tracer = trace.getTracer("sdk-dev-server", packageJson.version);
|
|
119
92
|
|
|
120
93
|
export default tracer;
|