@superblocksteam/sdk 2.0.123 → 2.0.124-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.
Files changed (115) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/cli-replacement/automatic-upgrades.d.ts +37 -1
  3. package/dist/cli-replacement/automatic-upgrades.d.ts.map +1 -1
  4. package/dist/cli-replacement/automatic-upgrades.js +162 -10
  5. package/dist/cli-replacement/automatic-upgrades.js.map +1 -1
  6. package/dist/cli-replacement/automatic-upgrades.test.js +377 -8
  7. package/dist/cli-replacement/automatic-upgrades.test.js.map +1 -1
  8. package/dist/cli-replacement/dependency-install-classifier.d.mts +21 -0
  9. package/dist/cli-replacement/dependency-install-classifier.d.mts.map +1 -0
  10. package/dist/cli-replacement/dependency-install-classifier.mjs +83 -0
  11. package/dist/cli-replacement/dependency-install-classifier.mjs.map +1 -0
  12. package/dist/cli-replacement/dependency-install-classifier.test.d.mts +2 -0
  13. package/dist/cli-replacement/dependency-install-classifier.test.d.mts.map +1 -0
  14. package/dist/cli-replacement/dependency-install-classifier.test.mjs +51 -0
  15. package/dist/cli-replacement/dependency-install-classifier.test.mjs.map +1 -0
  16. package/dist/cli-replacement/dev-s3-restore.test.mjs +403 -14
  17. package/dist/cli-replacement/dev-s3-restore.test.mjs.map +1 -1
  18. package/dist/cli-replacement/dev-startup-git-before-dbfs-order.test.mjs +33 -2
  19. package/dist/cli-replacement/dev-startup-git-before-dbfs-order.test.mjs.map +1 -1
  20. package/dist/cli-replacement/dev-token-priming.test.d.mts +31 -0
  21. package/dist/cli-replacement/dev-token-priming.test.d.mts.map +1 -0
  22. package/dist/cli-replacement/dev-token-priming.test.mjs +87 -0
  23. package/dist/cli-replacement/dev-token-priming.test.mjs.map +1 -0
  24. package/dist/cli-replacement/dev.d.mts +47 -0
  25. package/dist/cli-replacement/dev.d.mts.map +1 -1
  26. package/dist/cli-replacement/dev.interception.test.d.mts +2 -0
  27. package/dist/cli-replacement/dev.interception.test.d.mts.map +1 -0
  28. package/dist/cli-replacement/dev.interception.test.mjs +68 -0
  29. package/dist/cli-replacement/dev.interception.test.mjs.map +1 -0
  30. package/dist/cli-replacement/dev.mjs +486 -65
  31. package/dist/cli-replacement/dev.mjs.map +1 -1
  32. package/dist/cli-replacement/home-npmrc.d.mts +180 -0
  33. package/dist/cli-replacement/home-npmrc.d.mts.map +1 -0
  34. package/dist/cli-replacement/home-npmrc.mjs +283 -0
  35. package/dist/cli-replacement/home-npmrc.mjs.map +1 -0
  36. package/dist/cli-replacement/home-npmrc.test.d.mts +10 -0
  37. package/dist/cli-replacement/home-npmrc.test.d.mts.map +1 -0
  38. package/dist/cli-replacement/home-npmrc.test.mjs +582 -0
  39. package/dist/cli-replacement/home-npmrc.test.mjs.map +1 -0
  40. package/dist/cli-replacement/install-packages.classify.test.d.mts +2 -0
  41. package/dist/cli-replacement/install-packages.classify.test.d.mts.map +1 -0
  42. package/dist/cli-replacement/install-packages.classify.test.mjs +125 -0
  43. package/dist/cli-replacement/install-packages.classify.test.mjs.map +1 -0
  44. package/dist/cli-replacement/install-packages.npm-registry.test.d.mts +2 -0
  45. package/dist/cli-replacement/install-packages.npm-registry.test.d.mts.map +1 -0
  46. package/dist/cli-replacement/install-packages.npm-registry.test.mjs +260 -0
  47. package/dist/cli-replacement/install-packages.npm-registry.test.mjs.map +1 -0
  48. package/dist/cli-replacement/post-upgrade-lockfile-strip.d.mts +58 -0
  49. package/dist/cli-replacement/post-upgrade-lockfile-strip.d.mts.map +1 -0
  50. package/dist/cli-replacement/post-upgrade-lockfile-strip.mjs +224 -0
  51. package/dist/cli-replacement/post-upgrade-lockfile-strip.mjs.map +1 -0
  52. package/dist/cli-replacement/post-upgrade-lockfile-strip.test.d.mts +11 -0
  53. package/dist/cli-replacement/post-upgrade-lockfile-strip.test.d.mts.map +1 -0
  54. package/dist/cli-replacement/post-upgrade-lockfile-strip.test.mjs +317 -0
  55. package/dist/cli-replacement/post-upgrade-lockfile-strip.test.mjs.map +1 -0
  56. package/dist/cli-replacement/userconfig-env.integration.test.d.mts +26 -0
  57. package/dist/cli-replacement/userconfig-env.integration.test.d.mts.map +1 -0
  58. package/dist/cli-replacement/userconfig-env.integration.test.mjs +148 -0
  59. package/dist/cli-replacement/userconfig-env.integration.test.mjs.map +1 -0
  60. package/dist/dev-utils/dev-server-metrics.d.mts +25 -0
  61. package/dist/dev-utils/dev-server-metrics.d.mts.map +1 -1
  62. package/dist/dev-utils/dev-server-metrics.mjs +84 -0
  63. package/dist/dev-utils/dev-server-metrics.mjs.map +1 -1
  64. package/dist/dev-utils/dev-server-metrics.test.d.mts +2 -0
  65. package/dist/dev-utils/dev-server-metrics.test.d.mts.map +1 -0
  66. package/dist/dev-utils/dev-server-metrics.test.mjs +26 -0
  67. package/dist/dev-utils/dev-server-metrics.test.mjs.map +1 -0
  68. package/dist/dev-utils/dev-server.d.mts +23 -1
  69. package/dist/dev-utils/dev-server.d.mts.map +1 -1
  70. package/dist/dev-utils/dev-server.mjs +21 -9
  71. package/dist/dev-utils/dev-server.mjs.map +1 -1
  72. package/dist/dev-utils/dev-server.status.test.d.mts +2 -0
  73. package/dist/dev-utils/dev-server.status.test.d.mts.map +1 -0
  74. package/dist/dev-utils/dev-server.status.test.mjs +41 -0
  75. package/dist/dev-utils/dev-server.status.test.mjs.map +1 -0
  76. package/dist/dev-utils/token-manager.d.ts +31 -0
  77. package/dist/dev-utils/token-manager.d.ts.map +1 -1
  78. package/dist/dev-utils/token-manager.js +34 -0
  79. package/dist/dev-utils/token-manager.js.map +1 -1
  80. package/dist/telemetry/local-obs.js +1 -1
  81. package/dist/telemetry/local-obs.js.map +1 -1
  82. package/dist/telemetry/util.js +1 -1
  83. package/dist/types/scoped-jwt-token-payload.d.ts +1 -0
  84. package/dist/types/scoped-jwt-token-payload.d.ts.map +1 -1
  85. package/dist/version-control.d.mts.map +1 -1
  86. package/dist/version-control.mjs +6 -7
  87. package/dist/version-control.mjs.map +1 -1
  88. package/package.json +12 -12
  89. package/src/cli-replacement/automatic-upgrades.test.ts +530 -8
  90. package/src/cli-replacement/automatic-upgrades.ts +179 -7
  91. package/src/cli-replacement/dependency-install-classifier.mts +118 -0
  92. package/src/cli-replacement/dependency-install-classifier.test.mts +72 -0
  93. package/src/cli-replacement/dev-s3-restore.test.mts +554 -14
  94. package/src/cli-replacement/dev-startup-git-before-dbfs-order.test.mts +35 -2
  95. package/src/cli-replacement/dev-token-priming.test.mts +103 -0
  96. package/src/cli-replacement/dev.interception.test.mts +80 -0
  97. package/src/cli-replacement/dev.mts +597 -95
  98. package/src/cli-replacement/home-npmrc.mts +409 -0
  99. package/src/cli-replacement/home-npmrc.test.mts +757 -0
  100. package/src/cli-replacement/install-packages.classify.test.mts +168 -0
  101. package/src/cli-replacement/install-packages.npm-registry.test.mts +345 -0
  102. package/src/cli-replacement/post-upgrade-lockfile-strip.mts +296 -0
  103. package/src/cli-replacement/post-upgrade-lockfile-strip.test.mts +482 -0
  104. package/src/cli-replacement/userconfig-env.integration.test.mts +189 -0
  105. package/src/dev-utils/dev-server-metrics.mts +96 -0
  106. package/src/dev-utils/dev-server-metrics.test.mts +38 -0
  107. package/src/dev-utils/dev-server.mts +48 -8
  108. package/src/dev-utils/dev-server.status.test.mts +58 -0
  109. package/src/dev-utils/token-manager.ts +36 -0
  110. package/src/telemetry/local-obs.ts +1 -1
  111. package/src/telemetry/util.ts +1 -1
  112. package/src/types/scoped-jwt-token-payload.ts +1 -0
  113. package/src/version-control.mts +8 -6
  114. package/tsconfig.tsbuildinfo +1 -1
  115. package/.turbo/turbo-publish-package.log +0 -0
@@ -1,4 +1,4 @@
1
1
 
2
- > @superblocksteam/sdk@2.0.123 build /home/runner/work/superblocks/superblocks/packages/cli/packages/sdk
2
+ > @superblocksteam/sdk@2.0.124-next.1 build /home/runner/work/superblocks/superblocks/packages/cli/packages/sdk
3
3
  > tsc --build
4
4
 
@@ -1,7 +1,43 @@
1
+ import { type DetectResult } from "package-manager-detector";
1
2
  import type { LockService } from "@superblocksteam/vite-plugin-file-sync/lock-service";
2
3
  import type { ApplicationConfigWithTokenConfigAndUserInfo } from "../types/common.js";
3
4
  export declare const AUTO_UPGRADE_EXIT_CODE = 99;
4
- export declare function checkVersionsAndWritePackageJson(lockService: LockService, config: ApplicationConfigWithTokenConfigAndUserInfo, forceUpgrade?: boolean, skipCliUpgrade?: boolean): Promise<{
5
+ /**
6
+ * Build the argument vector for the global CLI auto-upgrade install.
7
+ * Extracted so the build path can be tested without driving an exec
8
+ * subprocess.
9
+ *
10
+ * `--audit=false` is npm-only. Userconfig pinning lives in the spawned
11
+ * subprocess env (`NPM_CONFIG_USERCONFIG`) rather than a CLI flag,
12
+ * because pnpm does not accept `--userconfig` (open issue
13
+ * pnpm/pnpm#6036) but does honor the env var through its npm-config
14
+ * compatibility layer. Using the env var means a single mechanism
15
+ * works for both agents.
16
+ */
17
+ export declare function buildGlobalInstallArgs(pm: {
18
+ agent: DetectResult["agent"];
19
+ }, packageName: string): string[];
20
+ /**
21
+ * Build the env overlay for a Superblocks-spawned npm/pnpm subprocess.
22
+ * Pins both `NPM_CONFIG_USERCONFIG` (npm + pnpm <= 10) and
23
+ * `PNPM_CONFIG_USERCONFIG` (pnpm 11+) so the install reads its
24
+ * registry/auth lines from the Superblocks-owned `~/.superblocks/npmrc`
25
+ * instead of the default `~/.npmrc`.
26
+ *
27
+ * Why both: pnpm 11 stopped recognising `npm_config_*` env vars (the
28
+ * @pnpm/npm-conf compatibility layer was tightened) and now requires
29
+ * `pnpm_config_*` for its config keys. pnpm <= 10 honors only the
30
+ * `npm_config_*` form; npm has always honored only the `npm_config_*`
31
+ * form. Setting both is harmless on the agent that ignores one of
32
+ * them. Verified by `userconfig-env.integration.test.mts` against both
33
+ * pnpm 10 and pnpm 11 binaries.
34
+ *
35
+ * The CLI-flag alternative (`--userconfig=` for npm,
36
+ * `--config.userconfig=` for pnpm) would require branching on the
37
+ * agent at every call site; the env-overlay approach is uniform.
38
+ */
39
+ export declare function buildInstallEnv(userconfigPath: string, logsDir?: string, baseEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
40
+ export declare function checkVersionsAndWritePackageJson(lockService: LockService, config: ApplicationConfigWithTokenConfigAndUserInfo, forceUpgrade?: boolean, skipCliUpgrade?: boolean, appDir?: string): Promise<{
5
41
  cliUpdated: boolean;
6
42
  upgradePromises: Promise<void>[];
7
43
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"automatic-upgrades.d.ts","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAKvF,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,oBAAoB,CAAC;AAMtF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAyJzC,wBAAsB,gCAAgC,CACpD,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,2CAA2C,EACnD,YAAY,GAAE,OAAe,EAC7B,cAAc,GAAE,OAAe,GAC9B,OAAO,CAAC;IACT,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;CAClC,CAAC,CA0LD"}
1
+ {"version":3,"file":"automatic-upgrades.d.ts","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAa7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAMvF,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,oBAAoB,CAAC;AAQtF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE;IAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;CAAE,EACpC,WAAW,EAAE,MAAM,GAClB,MAAM,EAAE,CAQV;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,GAAE,MAAM,CAAC,UAAwB,GACvC,MAAM,CAAC,UAAU,CAcnB;AAiOD,wBAAsB,gCAAgC,CACpD,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,2CAA2C,EACnD,YAAY,GAAE,OAAe,EAC7B,cAAc,GAAE,OAAe,EAM/B,MAAM,GAAE,MAAsB,GAC7B,OAAO,CAAC;IACT,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;CAClC,CAAC,CAiND"}
@@ -8,10 +8,69 @@ import { detect } from "package-manager-detector/detect";
8
8
  import gt from "semver/functions/gt.js";
9
9
  import valid from "semver/functions/valid.js";
10
10
  import { NON_SB_ORG_UPDATE_ERROR, traceFunction, } from "@superblocksteam/shared";
11
+ import { bucketNpmRegistryHost, redactNpmRegistryHostsFromText, } from "@superblocksteam/telemetry";
12
+ import { classifyNpmExecStderr } from "@superblocksteam/vite-plugin-file-sync/npm-error-parser";
11
13
  import { getTracer } from "../telemetry/index.js";
12
14
  import { getErrorMeta, getLogger } from "../telemetry/logging.js";
15
+ import { superblocksLogsPath, superblocksNpmrcPath } from "./home-npmrc.mjs";
16
+ import { stripUpgradedCliLockfiles } from "./post-upgrade-lockfile-strip.mjs";
13
17
  import { getCurrentCliVersion, clearCliVersionCache, } from "./version-detection.js";
14
18
  export const AUTO_UPGRADE_EXIT_CODE = 99;
19
+ /**
20
+ * Build the argument vector for the global CLI auto-upgrade install.
21
+ * Extracted so the build path can be tested without driving an exec
22
+ * subprocess.
23
+ *
24
+ * `--audit=false` is npm-only. Userconfig pinning lives in the spawned
25
+ * subprocess env (`NPM_CONFIG_USERCONFIG`) rather than a CLI flag,
26
+ * because pnpm does not accept `--userconfig` (open issue
27
+ * pnpm/pnpm#6036) but does honor the env var through its npm-config
28
+ * compatibility layer. Using the env var means a single mechanism
29
+ * works for both agents.
30
+ */
31
+ export function buildGlobalInstallArgs(pm, packageName) {
32
+ const installArgs = ["--fund=false", "--save-exact"];
33
+ if (pm.agent === "npm") {
34
+ installArgs.push("--audit=false");
35
+ }
36
+ installArgs.push("--force");
37
+ installArgs.push(packageName);
38
+ return installArgs;
39
+ }
40
+ /**
41
+ * Build the env overlay for a Superblocks-spawned npm/pnpm subprocess.
42
+ * Pins both `NPM_CONFIG_USERCONFIG` (npm + pnpm <= 10) and
43
+ * `PNPM_CONFIG_USERCONFIG` (pnpm 11+) so the install reads its
44
+ * registry/auth lines from the Superblocks-owned `~/.superblocks/npmrc`
45
+ * instead of the default `~/.npmrc`.
46
+ *
47
+ * Why both: pnpm 11 stopped recognising `npm_config_*` env vars (the
48
+ * @pnpm/npm-conf compatibility layer was tightened) and now requires
49
+ * `pnpm_config_*` for its config keys. pnpm <= 10 honors only the
50
+ * `npm_config_*` form; npm has always honored only the `npm_config_*`
51
+ * form. Setting both is harmless on the agent that ignores one of
52
+ * them. Verified by `userconfig-env.integration.test.mts` against both
53
+ * pnpm 10 and pnpm 11 binaries.
54
+ *
55
+ * The CLI-flag alternative (`--userconfig=` for npm,
56
+ * `--config.userconfig=` for pnpm) would require branching on the
57
+ * agent at every call site; the env-overlay approach is uniform.
58
+ */
59
+ export function buildInstallEnv(userconfigPath, logsDir, baseEnv = process.env) {
60
+ return {
61
+ ...baseEnv,
62
+ NPM_CONFIG_USERCONFIG: userconfigPath,
63
+ PNPM_CONFIG_USERCONFIG: userconfigPath,
64
+ // Route npm's per-run debug log to `<app>/.superblocks/logs` so a
65
+ // failed install in the live-edit pod leaves a collectable log in a
66
+ // predictable place. npm writes `<logs-dir>/<ts>-debug-0.log` on every
67
+ // run (pruned to `logs-max`, default 10) and creates the dir if it is
68
+ // missing. pnpm has no equivalent logs-dir config and ignores this var
69
+ // (npm-only by design — see `superblocksLogsPath`). Only set when a
70
+ // logs dir is supplied so callers that don't opt in are unaffected.
71
+ ...(logsDir ? { NPM_CONFIG_LOGS_DIR: logsDir } : {}),
72
+ };
73
+ }
15
74
  const exec = promisify(child_process.exec);
16
75
  const logger = getLogger();
17
76
  const tracer = getTracer();
@@ -63,16 +122,15 @@ async function upgradeCliWithOclif(targetVersion) {
63
122
  return false;
64
123
  }
65
124
  }
66
- async function upgradeCliWithPackageManager(pm, targetVersion, alias) {
125
+ async function upgradeCliWithPackageManager(pm, targetVersion, alias, hasAnyRegistryConfigured,
126
+ // Directory npm should drop its per-run debug log into (the app's
127
+ // `.superblocks/logs`). Optional so callers/tests that don't care keep
128
+ // npm's default `_logs` location.
129
+ logsDir) {
67
130
  const packageName = alias
68
131
  ? `@superblocksteam/cli@npm:${alias}@${targetVersion}`
69
132
  : `@superblocksteam/cli@${targetVersion}`;
70
- const installArgs = ["--fund=false", "--save-exact"];
71
- if (pm.agent === "npm") {
72
- installArgs.push("--audit=false");
73
- }
74
- installArgs.push("--force");
75
- installArgs.push(packageName);
133
+ const installArgs = buildGlobalInstallArgs({ agent: pm.agent }, packageName);
76
134
  const installCommand = resolveCommand(pm.agent, "global", installArgs);
77
135
  if (!installCommand) {
78
136
  logger.error("Could not determine how to upgrade Superblocks packages.");
@@ -86,10 +144,76 @@ async function upgradeCliWithPackageManager(pm, targetVersion, alias) {
86
144
  resolver = resolve;
87
145
  rejecter = reject;
88
146
  });
147
+ // Capture stderr alongside the streaming logger.warn so that, on failure,
148
+ // we can pattern-match the npm error code (APPS-4324) and emit a structured
149
+ // NpmInstallBlocked diagnostic before rejecting. The k8s crash-loop log
150
+ // then carries the reason code rather than just "Failed to upgrade".
151
+ let stderrBuffer = "";
89
152
  const cp = child_process.exec(`${command} ${args.join(" ")}`, {
90
153
  cwd: process.cwd(),
154
+ // Point the package manager at the Superblocks-owned userconfig so
155
+ // the global install resolves through whatever registry config
156
+ // `syncHomeNpmrc` materialised at startup, without touching the
157
+ // developer's `~/.npmrc`. Works for both npm and pnpm. `logsDir`
158
+ // also routes npm's debug log into the app's `.superblocks/logs`.
159
+ env: buildInstallEnv(superblocksNpmrcPath(), logsDir),
91
160
  }, (error) => {
92
161
  if (error) {
162
+ // `child_process.exec` aggregates stderr on the rejected error (capped
163
+ // by `maxBuffer`); fall back to it when our `stderr.on('data', …)`
164
+ // listener missed the chunks — a subprocess that fails fast can emit
165
+ // and exit before the listener attaches, leaving `stderrBuffer` empty
166
+ // and dropping the structured diagnostic this PR exists to guarantee.
167
+ const errStderr = error.stderr;
168
+ const stderrText = stderrBuffer || (typeof errStderr === "string" ? errStderr : "");
169
+ const blocked = classifyNpmExecStderr(stderrText, {
170
+ requestedPackages: [{ name: packageName }],
171
+ hasAnyRegistryConfigured,
172
+ });
173
+ if (blocked) {
174
+ // Structured fields are grep-able from the message body because
175
+ // the local logger contract limits the meta arg to
176
+ // `{ error: { kind, message, stack } }`. The encoding mirrors the
177
+ // `errorId=...` convention in `dev.mts` so operator alerts and
178
+ // log drains can key on `reason=...`. Logged ahead of the legacy
179
+ // "Failed to upgrade" line so the diagnostic still surfaces if a
180
+ // downstream sink truncates further lines.
181
+ // Pass the raw host through `bucketNpmRegistryHost` so this log
182
+ // emits a bounded enum (`public_npm` | `private` | `unknown`)
183
+ // instead of a customer's private registry hostname. Operational
184
+ // logs are a shared destination; raw hosts there leak customer
185
+ // infra identifiers and create unbounded log facets. This mirrors
186
+ // APPS-4189 (PR #19622) which bucketed the same field for llmobs
187
+ // tags via the same helper.
188
+ //
189
+ // `summary` is npm-emitted free text (first non-code error line —
190
+ // "401 Unauthorized - GET https://...", "self-signed certificate
191
+ // in chain", etc.). The phrasing carries diagnostic value beyond
192
+ // the structured `reason` / `subreason` / `npmErrorCode` facets
193
+ // (CA-bundle hints, proxy hints), but it also still echoes the
194
+ // raw URL/host from the npm stderr line. Redact URLs and bare
195
+ // hostnames before logging so this shared operational sink
196
+ // doesn't leak customer registry hostnames (APPS-4381 PR #19634
197
+ // re-review).
198
+ //
199
+ // We also omit the meta arg here: `getErrorMeta(blocked)` would
200
+ // synthesize `{ error: { kind, message, stack } }` from the
201
+ // `NpmInstallBlocked` instance, and the constructor builds
202
+ // `message` as `"npm install blocked (...) against ${host} [code]"`
203
+ // — same host leak, different field. The structured body fields
204
+ // above already convey the kind (`reason` + `subreason` +
205
+ // `npmErrorCode`) without the hostname, so the meta arg has no
206
+ // signal to add.
207
+ const sanitizedSummary = redactNpmRegistryHostsFromText(blocked.summary ?? "");
208
+ logger.error(`[npm-install-blocked] reason=${blocked.reason}` +
209
+ ` subreason=${blocked.subreason ?? "n/a"}` +
210
+ ` npmErrorCode=${blocked.npmErrorCode ?? "unknown"}` +
211
+ ` registryHost=${bucketNpmRegistryHost(blocked.registryHost)}` +
212
+ ` httpStatus=${blocked.httpStatus ?? "n/a"}` +
213
+ ` hasAnyRegistryConfigured=${blocked.hasAnyRegistryConfigured ?? "unknown"}` +
214
+ ` packages=${JSON.stringify(blocked.packages)}` +
215
+ ` summary=${JSON.stringify(sanitizedSummary)}`);
216
+ }
93
217
  logger.error(`Failed to upgrade packages to ${targetVersion}`);
94
218
  rejecter(error);
95
219
  }
@@ -101,6 +225,7 @@ async function upgradeCliWithPackageManager(pm, targetVersion, alias) {
101
225
  logger.info(data);
102
226
  });
103
227
  cp.stderr?.on("data", (data) => {
228
+ stderrBuffer += String(data);
104
229
  logger.warn(data);
105
230
  });
106
231
  // Wait for the install to complete, then validate the version
@@ -119,7 +244,13 @@ async function upgradeCliWithPackageManager(pm, targetVersion, alias) {
119
244
  // This log line is used to end the upgrade spinner
120
245
  logger.info(`Successfully upgraded packages to ${targetVersion}`);
121
246
  }
122
- export async function checkVersionsAndWritePackageJson(lockService, config, forceUpgrade = false, skipCliUpgrade = false) {
247
+ export async function checkVersionsAndWritePackageJson(lockService, config, forceUpgrade = false, skipCliUpgrade = false,
248
+ // App working directory, used to route the CLI-upgrade install's npm
249
+ // debug log into `<app>/.superblocks/logs`. Defaults to `process.cwd()`
250
+ // (the dev-server's cwd === app root) so existing callers/tests are
251
+ // unaffected; `dev()` passes its `cwd` explicitly for consistency with
252
+ // the startup install.
253
+ appDir = process.cwd()) {
123
254
  let cliUpdated = false;
124
255
  let hasFailedToUpgrade = false;
125
256
  const upgradePromises = [];
@@ -191,6 +322,16 @@ export async function checkVersionsAndWritePackageJson(lockService, config, forc
191
322
  hasFailedToUpgrade = true;
192
323
  return;
193
324
  }
325
+ // Failure-mode contrast with AppShell's per-app install path: AppShell
326
+ // routes exec failures through `classifyNpmExecError` and emits a
327
+ // structured `NpmInstallBlocked` diagnostic. The auto-upgrade subprocess
328
+ // below does NOT route through that classifier — it `exec`s
329
+ // `npm install -g @superblocksteam/cli@...` directly. A perimeter block
330
+ // (ECONNREFUSED) surfaces here as a generic `Error` caught by the outer
331
+ // try/catch (`hasFailedToUpgrade = true` → release lock → `process.exit`),
332
+ // which Kubernetes restarts. The operator sees a visible crash-loop with
333
+ // "Error upgrading packages" rather than a silent fallback. For symmetry
334
+ // with the install path, wrap the upgrade exec in the same classifier.
194
335
  try {
195
336
  if (!skipCliUpgrade &&
196
337
  (cliNeedsUpgrade || forceUpgrade) &&
@@ -209,16 +350,27 @@ export async function checkVersionsAndWritePackageJson(lockService, config, forc
209
350
  });
210
351
  if (!oclifUpgradeSucceeded) {
211
352
  logger.info(`Falling back to package manager upgrade for CLI`);
212
- // Fall back to package manager upgrade
213
353
  await traceFunction({
214
354
  name: "upgradePackageWithPackageManager - cli",
215
355
  tracer,
216
356
  fn: async () => {
217
- await upgradeCliWithPackageManager(packageManager, targetVersions.cli, currentCliInfo.alias);
357
+ await upgradeCliWithPackageManager(packageManager, targetVersions.cli, currentCliInfo.alias, undefined, superblocksLogsPath(appDir));
218
358
  },
219
359
  });
220
360
  cliUpdated = true;
221
361
  }
362
+ // The freshly fetched tarball may ship bundled lockfiles with
363
+ // stale public-host `resolved` URLs; strip them so the next
364
+ // install does not bypass the active registry. Non-fatal — a
365
+ // failed post-step must not crash the pod after a working
366
+ // upgrade.
367
+ await traceFunction({
368
+ name: "stripUpgradedCliLockfiles",
369
+ tracer,
370
+ fn: async () => {
371
+ await stripUpgradedCliLockfiles(logger);
372
+ },
373
+ });
222
374
  },
223
375
  });
224
376
  upgradePromises.push(cliUpgradePromise);
@@ -1 +1 @@
1
- {"version":3,"file":"automatic-upgrades.js","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automatic-upgrades.js","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"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"}