@nifrajs/cli 4.0.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/agent-files.d.ts +107 -0
- package/dist/agent-files.d.ts.map +1 -0
- package/dist/agent-files.js +162 -0
- package/dist/agent-files.js.map +1 -0
- package/dist/app-files.d.ts +6 -0
- package/dist/app-files.d.ts.map +1 -1
- package/dist/app-files.js +27 -2
- package/dist/app-files.js.map +1 -1
- package/dist/assure-hydration.d.ts.map +1 -1
- package/dist/assure-hydration.js +7 -2
- package/dist/assure-hydration.js.map +1 -1
- package/dist/capabilities-tool.d.ts.map +1 -1
- package/dist/capabilities-tool.js +13 -3
- package/dist/capabilities-tool.js.map +1 -1
- package/dist/check-diagnostics.d.ts +20 -2
- package/dist/check-diagnostics.d.ts.map +1 -1
- package/dist/check-diagnostics.js +54 -7
- package/dist/check-diagnostics.js.map +1 -1
- package/dist/check-scan.d.ts +75 -22
- package/dist/check-scan.d.ts.map +1 -1
- package/dist/check-scan.js +1475 -310
- package/dist/check-scan.js.map +1 -1
- package/dist/check.d.ts +2 -2
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +192 -65
- package/dist/check.js.map +1 -1
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +112 -5
- package/dist/cli.js.map +1 -1
- package/dist/client-module.d.ts +18 -0
- package/dist/client-module.d.ts.map +1 -0
- package/dist/client-module.js +49 -0
- package/dist/client-module.js.map +1 -0
- package/dist/command-catalog.d.ts +21 -5
- package/dist/command-catalog.d.ts.map +1 -1
- package/dist/command-catalog.js +138 -38
- package/dist/command-catalog.js.map +1 -1
- package/dist/component-check.d.ts +13 -0
- package/dist/component-check.d.ts.map +1 -0
- package/dist/component-check.js +59 -0
- package/dist/component-check.js.map +1 -0
- package/dist/contract-proof.d.ts +1 -1
- package/dist/contract-proof.d.ts.map +1 -1
- package/dist/contract-proof.js +2 -24
- package/dist/contract-proof.js.map +1 -1
- package/dist/contracts.d.ts +19 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +50 -3
- package/dist/contracts.js.map +1 -1
- package/dist/db-tool.d.ts.map +1 -1
- package/dist/db-tool.js +4 -3
- package/dist/db-tool.js.map +1 -1
- package/dist/dev-bun-config.d.ts +5 -1
- package/dist/dev-bun-config.d.ts.map +1 -1
- package/dist/dev-bun-config.js +44 -11
- package/dist/dev-bun-config.js.map +1 -1
- package/dist/diagnostics.d.ts +3 -0
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js.map +1 -1
- package/dist/diff-tool.d.ts +9 -8
- package/dist/diff-tool.d.ts.map +1 -1
- package/dist/diff-tool.js +28 -24
- package/dist/diff-tool.js.map +1 -1
- package/dist/doctor.d.ts +13 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +23 -15
- package/dist/doctor.js.map +1 -1
- package/dist/env-file.d.ts +6 -0
- package/dist/env-file.d.ts.map +1 -1
- package/dist/env-file.js +6 -0
- package/dist/env-file.js.map +1 -1
- package/dist/fix-recipes.d.ts.map +1 -1
- package/dist/fix-recipes.js +28 -3
- package/dist/fix-recipes.js.map +1 -1
- package/dist/hand-built-manifest.d.ts +27 -0
- package/dist/hand-built-manifest.d.ts.map +1 -0
- package/dist/hand-built-manifest.js +124 -0
- package/dist/hand-built-manifest.js.map +1 -0
- package/dist/hooks-report.d.ts +23 -0
- package/dist/hooks-report.d.ts.map +1 -0
- package/dist/hooks-report.js +104 -0
- package/dist/hooks-report.js.map +1 -0
- package/dist/init-agents.d.ts +2 -2
- package/dist/init-agents.d.ts.map +1 -1
- package/dist/init-agents.js +17 -11
- package/dist/init-agents.js.map +1 -1
- package/dist/internal/nifra-project.d.ts +41 -0
- package/dist/internal/nifra-project.d.ts.map +1 -0
- package/dist/internal/nifra-project.js +183 -0
- package/dist/internal/nifra-project.js.map +1 -0
- package/dist/internal/project-specifiers.d.ts +16 -0
- package/dist/internal/project-specifiers.d.ts.map +1 -0
- package/dist/internal/project-specifiers.js +396 -0
- package/dist/internal/project-specifiers.js.map +1 -0
- package/dist/internal/script-kind.d.ts.map +1 -1
- package/dist/internal/script-kind.js +2 -1
- package/dist/internal/script-kind.js.map +1 -1
- package/dist/internal/source-facts.d.ts +2 -0
- package/dist/internal/source-facts.d.ts.map +1 -1
- package/dist/internal/source-facts.js +11 -0
- package/dist/internal/source-facts.js.map +1 -1
- package/dist/internal/typescript-import.d.ts +1 -1
- package/dist/internal/typescript-import.d.ts.map +1 -1
- package/dist/internal/typescript-import.js +5 -3
- package/dist/internal/typescript-import.js.map +1 -1
- package/dist/introspect.d.ts +6 -6
- package/dist/introspect.d.ts.map +1 -1
- package/dist/introspect.js +55 -24
- package/dist/introspect.js.map +1 -1
- package/dist/levels-tool.d.ts.map +1 -1
- package/dist/levels-tool.js +93 -15
- package/dist/levels-tool.js.map +1 -1
- package/dist/load.d.ts +31 -8
- package/dist/load.d.ts.map +1 -1
- package/dist/load.js +37 -7
- package/dist/load.js.map +1 -1
- package/dist/mcp-context.d.ts +5 -5
- package/dist/mcp-context.d.ts.map +1 -1
- package/dist/mcp-context.js +2 -2
- package/dist/mcp-context.js.map +1 -1
- package/dist/mcp-exec.d.ts +12 -4
- package/dist/mcp-exec.d.ts.map +1 -1
- package/dist/mcp-exec.js +50 -13
- package/dist/mcp-exec.js.map +1 -1
- package/dist/mcp-http.js +1 -1
- package/dist/mcp-io.d.ts +17 -0
- package/dist/mcp-io.d.ts.map +1 -1
- package/dist/mcp-io.js +40 -0
- package/dist/mcp-io.js.map +1 -1
- package/dist/mcp-isolate.d.ts.map +1 -1
- package/dist/mcp-isolate.js +3 -2
- package/dist/mcp-isolate.js.map +1 -1
- package/dist/mcp-project-child.js +1 -1
- package/dist/mcp-project-child.js.map +1 -1
- package/dist/mcp-root.d.ts.map +1 -1
- package/dist/mcp-root.js +50 -10
- package/dist/mcp-root.js.map +1 -1
- package/dist/mcp-ws.d.ts.map +1 -1
- package/dist/mcp-ws.js +3 -1
- package/dist/mcp-ws.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +8 -2
- package/dist/mcp.js.map +1 -1
- package/dist/migrate-layout.d.ts +7 -0
- package/dist/migrate-layout.d.ts.map +1 -1
- package/dist/migrate-layout.js +958 -71
- package/dist/migrate-layout.js.map +1 -1
- package/dist/output-schemas.d.ts +94 -0
- package/dist/output-schemas.d.ts.map +1 -0
- package/dist/output-schemas.js +864 -0
- package/dist/output-schemas.js.map +1 -0
- package/dist/port.d.ts.map +1 -1
- package/dist/port.js +3 -2
- package/dist/port.js.map +1 -1
- package/dist/project-facts.d.ts +15 -4
- package/dist/project-facts.d.ts.map +1 -1
- package/dist/project-facts.js +1 -0
- package/dist/project-facts.js.map +1 -1
- package/dist/recipes/4.0.0.d.ts.map +1 -1
- package/dist/recipes/4.0.0.js +2 -0
- package/dist/recipes/4.0.0.js.map +1 -1
- package/dist/recipes/5.0.0.d.ts +11 -0
- package/dist/recipes/5.0.0.d.ts.map +1 -0
- package/dist/recipes/5.0.0.js +34 -0
- package/dist/recipes/5.0.0.js.map +1 -0
- package/dist/recipes/index.d.ts +7 -0
- package/dist/recipes/index.d.ts.map +1 -1
- package/dist/recipes/index.js +2 -0
- package/dist/recipes/index.js.map +1 -1
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +12 -3
- package/dist/replay.js.map +1 -1
- package/dist/review.d.ts +3 -1
- package/dist/review.d.ts.map +1 -1
- package/dist/review.js +38 -7
- package/dist/review.js.map +1 -1
- package/dist/rules/codes.d.ts +10 -0
- package/dist/rules/codes.d.ts.map +1 -1
- package/dist/rules/codes.js +10 -0
- package/dist/rules/codes.js.map +1 -1
- package/dist/rules/comment-markers.d.ts +16 -7
- package/dist/rules/comment-markers.d.ts.map +1 -1
- package/dist/rules/comment-markers.js +58 -19
- package/dist/rules/comment-markers.js.map +1 -1
- package/dist/rules/contract-visibility.d.ts +3 -0
- package/dist/rules/contract-visibility.d.ts.map +1 -0
- package/dist/rules/contract-visibility.js +337 -0
- package/dist/rules/contract-visibility.js.map +1 -0
- package/dist/rules/data-guard.d.ts +7 -0
- package/dist/rules/data-guard.d.ts.map +1 -1
- package/dist/rules/data-guard.js +319 -37
- package/dist/rules/data-guard.js.map +1 -1
- package/dist/rules/layout.d.ts +4 -0
- package/dist/rules/layout.d.ts.map +1 -0
- package/dist/rules/layout.js +19 -0
- package/dist/rules/layout.js.map +1 -0
- package/dist/rules/legacy.d.ts.map +1 -1
- package/dist/rules/legacy.js +158 -43
- package/dist/rules/legacy.js.map +1 -1
- package/dist/rules/pages.d.ts +24 -0
- package/dist/rules/pages.d.ts.map +1 -1
- package/dist/rules/pages.js +221 -3
- package/dist/rules/pages.js.map +1 -1
- package/dist/rules/routes.d.ts +6 -0
- package/dist/rules/routes.d.ts.map +1 -1
- package/dist/rules/routes.js +111 -16
- package/dist/rules/routes.js.map +1 -1
- package/dist/rules/secrets.js +2 -2
- package/dist/rules/secrets.js.map +1 -1
- package/dist/rules/security.d.ts +12 -1
- package/dist/rules/security.d.ts.map +1 -1
- package/dist/rules/security.js +281 -68
- package/dist/rules/security.js.map +1 -1
- package/dist/rules/zones.d.ts +13 -0
- package/dist/rules/zones.d.ts.map +1 -1
- package/dist/rules/zones.js +192 -40
- package/dist/rules/zones.js.map +1 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +6 -4
- package/dist/scaffold.js.map +1 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +14 -5
- package/dist/sdk.js.map +1 -1
- package/dist/stylex-migrate.d.ts.map +1 -1
- package/dist/stylex-migrate.js +163 -7
- package/dist/stylex-migrate.js.map +1 -1
- package/dist/sync-manifest.d.ts +10 -2
- package/dist/sync-manifest.d.ts.map +1 -1
- package/dist/sync-manifest.js +42 -18
- package/dist/sync-manifest.js.map +1 -1
- package/dist/test-tool.d.ts.map +1 -1
- package/dist/test-tool.js +12 -3
- package/dist/test-tool.js.map +1 -1
- package/dist/typecheck-coverage.d.ts +20 -0
- package/dist/typecheck-coverage.d.ts.map +1 -0
- package/dist/typecheck-coverage.js +129 -0
- package/dist/typecheck-coverage.js.map +1 -0
- package/dist/upgrade.d.ts +69 -0
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +420 -77
- package/dist/upgrade.js.map +1 -1
- package/dist/verification-plan.d.ts.map +1 -1
- package/dist/verification-plan.js +11 -0
- package/dist/verification-plan.js.map +1 -1
- package/dist/version-drift.d.ts +22 -0
- package/dist/version-drift.d.ts.map +1 -0
- package/dist/version-drift.js +42 -0
- package/dist/version-drift.js.map +1 -0
- package/dist/web-app-options.d.ts +1 -1
- package/dist/web-app-options.d.ts.map +1 -1
- package/dist/web-app-options.js +1 -1
- package/dist/web-app-options.js.map +1 -1
- package/dist/work-graph.d.ts.map +1 -1
- package/dist/work-graph.js +20 -8
- package/dist/work-graph.js.map +1 -1
- package/docs/examples.json +54 -6
- package/docs/llms-full.txt +1539 -138
- package/docs/types.json +1456 -206
- package/package.json +11 -12
- package/src/agent-files.ts +203 -0
- package/src/app-files.ts +34 -4
- package/src/assure-hydration.ts +15 -2
- package/src/capabilities-tool.ts +15 -3
- package/src/check-diagnostics.ts +73 -9
- package/src/check-scan.ts +1773 -381
- package/src/check.ts +237 -76
- package/src/cli.ts +141 -5
- package/src/client-module.ts +61 -0
- package/src/command-catalog.ts +181 -47
- package/src/component-check.ts +79 -0
- package/src/contract-proof.ts +3 -25
- package/src/contracts.ts +60 -3
- package/src/db-tool.ts +5 -2
- package/src/dev-bun-config.ts +51 -10
- package/src/diagnostics.ts +3 -0
- package/src/diff-tool.ts +33 -26
- package/src/doctor.ts +43 -21
- package/src/env-file.ts +7 -0
- package/src/fix-recipes.ts +34 -3
- package/src/hand-built-manifest.ts +144 -0
- package/src/hooks-report.ts +135 -0
- package/src/init-agents.ts +17 -11
- package/src/internal/nifra-project.ts +191 -0
- package/src/internal/project-specifiers.ts +424 -0
- package/src/internal/script-kind.ts +2 -1
- package/src/internal/source-facts.ts +25 -0
- package/src/internal/typescript-import.ts +10 -3
- package/src/introspect.ts +65 -27
- package/src/levels-tool.ts +117 -20
- package/src/load.ts +78 -14
- package/src/mcp-context.ts +7 -7
- package/src/mcp-exec.ts +60 -17
- package/src/mcp-http.ts +1 -1
- package/src/mcp-io.ts +41 -0
- package/src/mcp-isolate.ts +9 -2
- package/src/mcp-project-child.ts +1 -1
- package/src/mcp-root.ts +58 -8
- package/src/mcp-ws.ts +4 -2
- package/src/mcp.ts +8 -3
- package/src/migrate-layout.ts +1109 -70
- package/src/output-schemas.ts +1084 -0
- package/src/port.ts +3 -2
- package/src/project-facts.ts +17 -3
- package/src/recipes/4.0.0.ts +2 -0
- package/src/recipes/5.0.0.ts +35 -0
- package/src/recipes/index.ts +10 -0
- package/src/replay.ts +14 -3
- package/src/review.ts +39 -10
- package/src/rules/codes.ts +10 -0
- package/src/rules/comment-markers.ts +57 -21
- package/src/rules/contract-visibility.ts +383 -0
- package/src/rules/data-guard.ts +351 -42
- package/src/rules/layout.ts +22 -0
- package/src/rules/legacy.ts +184 -51
- package/src/rules/pages.ts +238 -3
- package/src/rules/routes.ts +124 -16
- package/src/rules/secrets.ts +2 -2
- package/src/rules/security.ts +352 -71
- package/src/rules/zones.ts +205 -38
- package/src/scaffold.ts +6 -4
- package/src/sdk.ts +14 -5
- package/src/stylex-migrate.ts +134 -7
- package/src/sync-manifest.ts +48 -18
- package/src/test-tool.ts +18 -3
- package/src/typecheck-coverage.ts +134 -0
- package/src/upgrade.ts +487 -71
- package/src/verification-plan.ts +24 -0
- package/src/version-drift.ts +67 -0
- package/src/web-app-options.ts +2 -2
- package/src/work-graph.ts +17 -12
package/dist/dev-bun-config.js
CHANGED
|
@@ -42,9 +42,27 @@
|
|
|
42
42
|
import { timingSafeEqual } from "node:crypto";
|
|
43
43
|
import { mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
|
|
44
44
|
import { relative, resolve } from "node:path";
|
|
45
|
-
|
|
45
|
+
import { readSingleCopyDeclaration } from "@nifrajs/core/single-copy";
|
|
46
|
+
const TOML_ESCAPES = {
|
|
47
|
+
"\\": "\\\\",
|
|
48
|
+
'"': '\\"',
|
|
49
|
+
"\b": "\\b",
|
|
50
|
+
"\t": "\\t",
|
|
51
|
+
"\n": "\\n",
|
|
52
|
+
"\f": "\\f",
|
|
53
|
+
"\r": "\\r",
|
|
54
|
+
};
|
|
55
|
+
/** TOML string literal: basic (double-quoted) form. A basic string may hold no raw control
|
|
56
|
+
* character, so each one is escaped along with the quote and the backslash. */
|
|
46
57
|
function tomlString(value) {
|
|
47
|
-
|
|
58
|
+
let out = '"';
|
|
59
|
+
for (const char of value) {
|
|
60
|
+
const code = char.charCodeAt(0);
|
|
61
|
+
out +=
|
|
62
|
+
TOML_ESCAPES[char] ??
|
|
63
|
+
(code < 0x20 || code === 0x7f ? `\\u${code.toString(16).padStart(4, "0")}` : char);
|
|
64
|
+
}
|
|
65
|
+
return `${out}"`;
|
|
48
66
|
}
|
|
49
67
|
/** Parse the app's bunfig. Malformed TOML fails LOUDLY with the parse error - silently treating a
|
|
50
68
|
* broken config as empty would run dev with different Bun settings than the app declares. */
|
|
@@ -169,18 +187,32 @@ function relativeSpecifier(fromDir, target) {
|
|
|
169
187
|
* `servePlugins` are the app's own bunfig `[serve.static] plugins`, composed last and in order rather
|
|
170
188
|
* than listed beside this module, so that every plugin reaching the bundler registers through
|
|
171
189
|
* `reserveDevSpecifiers` (see `@nifrajs/web/internal/dev-reserved`).
|
|
190
|
+
*
|
|
191
|
+
* `singleCopy` is whether `package.json` declares `"nifra": { "singleCopy": [...] }`. The declared
|
|
192
|
+
* resolver then runs where `buildClient` runs it, after the zone guard; an app that also lists
|
|
193
|
+
* `singleCopyPlugin()` in `clientPlugins` gets its own instance in that place, once.
|
|
172
194
|
*/
|
|
173
|
-
export function renderBoundaryPluginModule(configPath, pluginDir, servePlugins = []) {
|
|
195
|
+
export function renderBoundaryPluginModule(configPath, pluginDir, servePlugins = [], singleCopy = false) {
|
|
174
196
|
const appImport = configPath !== undefined && pluginDir !== undefined
|
|
175
197
|
? `import * as appConfig from ${tomlString(relativeSpecifier(pluginDir, configPath))}\n`
|
|
176
198
|
: "";
|
|
177
|
-
const
|
|
178
|
-
? ""
|
|
199
|
+
const appPluginsSetup = appImport === ""
|
|
200
|
+
? " const appPlugins = []\n"
|
|
179
201
|
: ` // The app's OWN client transforms (SFC compilers etc.). \`clientPlugins\` may be a thunk.
|
|
180
202
|
const field = appConfig.clientPlugins
|
|
181
203
|
const appPlugins = (typeof field === "function" ? await field() : field) ?? []
|
|
182
|
-
for (const p of appPlugins) await p.setup(guarded)
|
|
183
204
|
`;
|
|
205
|
+
const singleCopySetup = singleCopy
|
|
206
|
+
? ` const listedSingleCopy = appPlugins.find((p) => p?.name === "nifra-single-copy")
|
|
207
|
+
;(listedSingleCopy ?? singleCopyPlugin({ cwd: appRoot })).setup(guarded)
|
|
208
|
+
`
|
|
209
|
+
: "";
|
|
210
|
+
// Without a declaration the app's plugins are read where they are set up, as before.
|
|
211
|
+
const appSetup = appImport === ""
|
|
212
|
+
? ""
|
|
213
|
+
: singleCopy
|
|
214
|
+
? " for (const p of appPlugins) if (p !== listedSingleCopy) await p.setup(guarded)\n"
|
|
215
|
+
: `${appPluginsSetup} for (const p of appPlugins) await p.setup(guarded)\n`;
|
|
184
216
|
const serveSetup = servePlugins.length === 0
|
|
185
217
|
? ""
|
|
186
218
|
: ` // The app's own bunfig [serve.static] plugins, as Bun would load them, in their order.
|
|
@@ -196,10 +228,11 @@ export function renderBoundaryPluginModule(configPath, pluginDir, servePlugins =
|
|
|
196
228
|
import { serverFnStubPlugin, zoneGuardPlugin } from "@nifrajs/web/build"
|
|
197
229
|
import { reserveDevSpecifiers } from "@nifrajs/web/internal/dev-reserved"
|
|
198
230
|
import { cssModulesBunPlugin } from "@nifrajs/web/plugins/css-modules"
|
|
199
|
-
${appImport}
|
|
231
|
+
${singleCopy ? 'import { singleCopyPlugin } from "@nifrajs/core/single-copy"\n' : ""}${appImport}
|
|
200
232
|
// This module lives at <app>/.nifra/dev-bun/, so the app root is two directories up.
|
|
233
|
+
const appRoot = Bun.fileURLToPath(new URL("../../", import.meta.url))
|
|
201
234
|
const zones = zoneGuardPlugin({
|
|
202
|
-
appRoot
|
|
235
|
+
appRoot,${appImport === ""
|
|
203
236
|
? ""
|
|
204
237
|
: `
|
|
205
238
|
...(typeof appConfig.publicEnvPrefix === "string" ? { publicEnvPrefix: appConfig.publicEnvPrefix } : {}),`}
|
|
@@ -213,10 +246,10 @@ export default {
|
|
|
213
246
|
// Every plugin below registers through this view: a resolve filter matching the dev entry script
|
|
214
247
|
// or Bun's built-in React refresh runtime breaks the page even when its handler declines.
|
|
215
248
|
const guarded = reserveDevSpecifiers(build)
|
|
216
|
-
// Boundary first: an app plugin must never get to transform a module that the boundary is about
|
|
249
|
+
${singleCopy ? appPluginsSetup : ""} // Boundary first: an app plugin must never get to transform a module that the boundary is about
|
|
217
250
|
// to refuse or stub, or the transform decides what ships instead of the boundary.
|
|
218
251
|
zones.setup(guarded)
|
|
219
|
-
fn.setup(guarded)
|
|
252
|
+
${singleCopySetup} fn.setup(guarded)
|
|
220
253
|
cssModules.setup(guarded)
|
|
221
254
|
${appSetup}${serveSetup} },
|
|
222
255
|
}
|
|
@@ -235,7 +268,7 @@ export async function writeBunDevConfig(appRoot, configPath, define) {
|
|
|
235
268
|
.text()
|
|
236
269
|
.catch(() => undefined);
|
|
237
270
|
const user = parseUserBunfig(userToml);
|
|
238
|
-
writeFileSync(pluginPath, renderBoundaryPluginModule(configPath, dir, userServePlugins(user, appRoot)));
|
|
271
|
+
writeFileSync(pluginPath, renderBoundaryPluginModule(configPath, dir, userServePlugins(user, appRoot), readSingleCopyDeclaration(appRoot) !== undefined));
|
|
239
272
|
const bunfigPath = resolve(dir, "bunfig.toml");
|
|
240
273
|
writeFileSync(bunfigPath, renderDevBunfig(pluginPath, user, appRoot, define));
|
|
241
274
|
const launchToken = crypto.randomUUID();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-bun-config.js","sourceRoot":"","sources":["../src/dev-bun-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"dev-bun-config.js","sourceRoot":"","sources":["../src/dev-bun-config.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnostics.d.ts
CHANGED
|
@@ -18,6 +18,9 @@ export interface DiagnosticCompatibility {
|
|
|
18
18
|
readonly suggestion?: DiagnosticSuggestion;
|
|
19
19
|
/** The import path evidence used by the legacy server-only-import view. */
|
|
20
20
|
readonly chain?: readonly string[];
|
|
21
|
+
/** The project files a server-only chain runs through, so a diff review keeps a finding whose
|
|
22
|
+
* route is unchanged but whose chain a changed module made. */
|
|
23
|
+
readonly modules?: readonly string[];
|
|
21
24
|
/** Preserve the old optional `CheckDiagnostic.code` field exactly where it existed. */
|
|
22
25
|
readonly includeCode?: boolean;
|
|
23
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnostics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,oFAAoF;
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/diff-tool.d.ts
CHANGED
|
@@ -26,12 +26,13 @@ export declare function parseSnapshotFile(content: string, sourcePath: string):
|
|
|
26
26
|
export declare function formatDiff(diff: RoutesDiff): string;
|
|
27
27
|
/** Import `backend/app.ts` from `cwd` and snapshot its routes. */
|
|
28
28
|
export declare function snapshotBackend(cwd: string): Promise<readonly RouteSnapshot[]>;
|
|
29
|
-
/** `nifra snapshot`: write the current contract as the CI baseline. */
|
|
30
|
-
export declare function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
/** `nifra snapshot`: write the current contract to `out` (from `cwd`) as the CI baseline. */
|
|
30
|
+
export declare function writeSnapshot(cwd: string, out?: string): Promise<SnapshotFile>;
|
|
31
|
+
/**
|
|
32
|
+
* `nifra diff`: the current contract against the snapshot at `baselinePath` (from `cwd`). `contain`
|
|
33
|
+
* refuses a baseline outside `cwd`, symlinks followed, for a caller handed the path by someone else.
|
|
34
|
+
*/
|
|
35
|
+
export declare function diffAgainstBaseline(cwd: string, baselinePath?: string, options?: {
|
|
36
|
+
readonly contain?: boolean;
|
|
37
|
+
}): Promise<RoutesDiff>;
|
|
37
38
|
//# sourceMappingURL=diff-tool.d.ts.map
|
package/dist/diff-tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-tool.d.ts","sourceRoot":"","sources":["../src/diff-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,UAAU,EAEhB,MAAM,oBAAoB,CAAA;AAG3B,oGAAoG;AACpG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAA;CAC1C;AAED,eAAO,MAAM,qBAAqB,sBAAsB,CAAA;AAExD,qGAAqG;AACrG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAqBnF;AAaD,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAWnD;AAED,kEAAkE;AAClE,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"diff-tool.d.ts","sourceRoot":"","sources":["../src/diff-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,UAAU,EAEhB,MAAM,oBAAoB,CAAA;AAG3B,oGAAoG;AACpG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAA;CAC1C;AAED,eAAO,MAAM,qBAAqB,sBAAsB,CAAA;AAExD,qGAAqG;AACrG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAqBnF;AAaD,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAWnD;AAED,kEAAkE;AAClE,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAapF;AAED,6FAA6F;AAC7F,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAA8B,GAClC,OAAO,CAAC,YAAY,CAAC,CAIvB;AAOD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,YAAY,GAAE,MAA8B,EAC5C,OAAO,GAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3C,OAAO,CAAC,UAAU,CAAC,CAcrB"}
|
package/dist/diff-tool.js
CHANGED
|
@@ -21,10 +21,10 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
21
21
|
}
|
|
22
22
|
return path;
|
|
23
23
|
};
|
|
24
|
-
import { existsSync } from "node:fs";
|
|
25
|
-
import { resolve } from "node:path";
|
|
24
|
+
import { existsSync, realpathSync } from "node:fs";
|
|
25
|
+
import { isAbsolute, relative, resolve } from "node:path";
|
|
26
26
|
import { diffRouteSnapshots, snapshotRoutes, } from "@nifrajs/core/diff";
|
|
27
|
-
import { BACKEND_APP_FILE } from "./app-files.js";
|
|
27
|
+
import { assertCurrentLayout, BACKEND_APP_FILE } from "./app-files.js";
|
|
28
28
|
export const DEFAULT_SNAPSHOT_FILE = "api-snapshot.json";
|
|
29
29
|
/** Parse + validate a snapshot file's content. Throws with an actionable message on any mismatch. */
|
|
30
30
|
export function parseSnapshotFile(content, sourcePath) {
|
|
@@ -69,6 +69,7 @@ export function formatDiff(diff) {
|
|
|
69
69
|
}
|
|
70
70
|
/** Import `backend/app.ts` from `cwd` and snapshot its routes. */
|
|
71
71
|
export async function snapshotBackend(cwd) {
|
|
72
|
+
assertCurrentLayout(cwd);
|
|
72
73
|
const backendPath = resolve(cwd, BACKEND_APP_FILE);
|
|
73
74
|
if (!existsSync(backendPath)) {
|
|
74
75
|
throw new Error(`[nifra] no backend/app.ts in ${cwd} - \`nifra snapshot\`/\`nifra diff\` compare the API contract, which lives in backend/app.ts.`);
|
|
@@ -79,30 +80,33 @@ export async function snapshotBackend(cwd) {
|
|
|
79
80
|
}
|
|
80
81
|
return snapshotRoutes(backend);
|
|
81
82
|
}
|
|
82
|
-
/** `nifra snapshot`: write the current contract as the CI baseline. */
|
|
83
|
-
export async function
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
await Bun.write(outPath, `${JSON.stringify(file, null, 2)}\n`);
|
|
88
|
-
console.log(`[nifra] wrote ${routes.length} route${routes.length === 1 ? "" : "s"} to ${outPath}`);
|
|
83
|
+
/** `nifra snapshot`: write the current contract to `out` (from `cwd`) as the CI baseline. */
|
|
84
|
+
export async function writeSnapshot(cwd, out = DEFAULT_SNAPSHOT_FILE) {
|
|
85
|
+
const snapshot = { nifraSnapshot: 1, routes: await snapshotBackend(cwd) };
|
|
86
|
+
await Bun.write(resolve(cwd, out), `${JSON.stringify(snapshot, null, 2)}\n`);
|
|
87
|
+
return snapshot;
|
|
89
88
|
}
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
const outside = (root, target) => {
|
|
90
|
+
const rel = relative(root, target);
|
|
91
|
+
return rel.startsWith("..") || isAbsolute(rel);
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* `nifra diff`: the current contract against the snapshot at `baselinePath` (from `cwd`). `contain`
|
|
95
|
+
* refuses a baseline outside `cwd`, symlinks followed, for a caller handed the path by someone else.
|
|
96
|
+
*/
|
|
97
|
+
export async function diffAgainstBaseline(cwd, baselinePath = DEFAULT_SNAPSHOT_FILE, options = {}) {
|
|
92
98
|
const resolved = resolve(cwd, baselinePath);
|
|
93
|
-
const
|
|
94
|
-
|
|
99
|
+
const refuse = () => {
|
|
100
|
+
throw new Error(`[nifra] the baseline ${baselinePath} is outside the project directory`);
|
|
101
|
+
};
|
|
102
|
+
if (options.contain === true && outside(resolve(cwd), resolved))
|
|
103
|
+
refuse();
|
|
104
|
+
if (!existsSync(resolved)) {
|
|
95
105
|
throw new Error(`[nifra] baseline not found: ${resolved} - create it on your main branch with \`nifra snapshot\`.`);
|
|
96
106
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
console.log(JSON.stringify({ hasBreaking: diff.hasBreaking, changes: diff.changes }, null, 2));
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
console.log(formatDiff(diff));
|
|
105
|
-
}
|
|
106
|
-
return !diff.hasBreaking;
|
|
107
|
+
if (options.contain === true && outside(realpathSync(cwd), realpathSync(resolved)))
|
|
108
|
+
refuse();
|
|
109
|
+
const baseline = parseSnapshotFile(await Bun.file(resolved).text(), baselinePath);
|
|
110
|
+
return diffRouteSnapshots(baseline.routes, await snapshotBackend(cwd));
|
|
107
111
|
}
|
|
108
112
|
//# sourceMappingURL=diff-tool.js.map
|
package/dist/diff-tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-tool.js","sourceRoot":"","sources":["../src/diff-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"diff-tool.js","sourceRoot":"","sources":["../src/diff-tool.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { type IdentityParityCopy, type IdentityParityFinding } from "@nifrajs/web/internal/parity";
|
|
2
2
|
import { type SourceFinding } from "./check.js";
|
|
3
|
+
import { type HandBuiltManifest } from "./hand-built-manifest.js";
|
|
3
4
|
import { type StaleMcpPin } from "./init-agents.js";
|
|
4
5
|
import { type ToolingDrift } from "./mcp-root.js";
|
|
5
6
|
import { type PipelineReport } from "./pipeline-report.js";
|
|
6
7
|
import { type ResolvedTarget } from "./port.js";
|
|
8
|
+
import { type VersionDrift } from "./version-drift.js";
|
|
7
9
|
/**
|
|
8
10
|
* Resolve an import specifier to the npm package name it would install as, or `undefined` when it isn't
|
|
9
11
|
* an npm dependency at all (a relative/absolute path, a runtime builtin, or a malformed scope like the
|
|
@@ -62,6 +64,17 @@ export interface DoctorResult {
|
|
|
62
64
|
* supplied and the feature versions disagree. Computed by {@link detectToolingDrift}.
|
|
63
65
|
*/
|
|
64
66
|
readonly toolingDrift?: ToolingDrift;
|
|
67
|
+
/**
|
|
68
|
+
* More than one version of the fixed release group across pins, installs and the running CLI.
|
|
69
|
+
* Advisory (never folded into `ok`); its fix is `nifra upgrade <highest>`. Computed by
|
|
70
|
+
* {@link collectVersionDrift}.
|
|
71
|
+
*/
|
|
72
|
+
readonly versionDrift?: VersionDrift;
|
|
73
|
+
/**
|
|
74
|
+
* `buildManifest(...)` calls whose spelled-out file list reaches a page but not its backend half, so
|
|
75
|
+
* that page runs without its loader, action and guards. Advisory (never folded into `ok`).
|
|
76
|
+
*/
|
|
77
|
+
readonly handBuiltManifests?: readonly HandBuiltManifest[];
|
|
65
78
|
/**
|
|
66
79
|
* Agent files whose MCP launch pins an `@nifrajs/cli` other than the one the project installs, so
|
|
67
80
|
* the agent's server answers for a release the code no longer builds with. Advisory (never folded
|
package/dist/doctor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAsBA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAG3B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAoB,KAAK,aAAa,EAA6B,MAAM,YAAY,CAAA;AAC5F,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.js
CHANGED
|
@@ -3,11 +3,14 @@ import { builtinModules } from "node:module";
|
|
|
3
3
|
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
4
4
|
import { collectIdentityParity, displayPath, identityParityBasis, resolvedInstalledCopy, } from "@nifrajs/web/internal/parity";
|
|
5
5
|
import { codePositionMask, stripComments, walkSource } from "./check.js";
|
|
6
|
+
import { handBuiltManifestMessage, handBuiltManifests, manifestListsIn, } from "./hand-built-manifest.js";
|
|
6
7
|
import { collectStaleMcpPins } from "./init-agents.js";
|
|
7
8
|
import { codeUnitOrder } from "./internal/code-unit-order.js";
|
|
9
|
+
import { createSpecifierResolver } from "./internal/project-specifiers.js";
|
|
8
10
|
import { detectToolingDrift, syncMcpCommand } from "./mcp-root.js";
|
|
9
11
|
import { collectPipelineReport } from "./pipeline-report.js";
|
|
10
12
|
import { resolveTarget } from "./port.js";
|
|
13
|
+
import { collectVersionDrift, versionDriftMessage } from "./version-drift.js";
|
|
11
14
|
import { buildScriptName } from "./workspace-link.js";
|
|
12
15
|
// Runtime-provided modules that are never an npm dependency: Node core (bare + `node:` form) and Bun's
|
|
13
16
|
// own `bun` module. `node:`/`bun:`-prefixed specifiers are filtered in packageOf by prefix.
|
|
@@ -177,25 +180,18 @@ const declaredPackages = (pkg) => {
|
|
|
177
180
|
}
|
|
178
181
|
return declared;
|
|
179
182
|
};
|
|
180
|
-
const tsconfigPaths = async (root) => {
|
|
181
|
-
const tsconfig = await readJson(join(root, "tsconfig.json"));
|
|
182
|
-
const compilerOptions = tsconfig?.compilerOptions;
|
|
183
|
-
return compilerOptions?.paths;
|
|
184
|
-
};
|
|
185
183
|
/** Build per-package declaration scopes for a workspace. Longest roots are first so nested packages
|
|
186
184
|
* own their source; files outside a workspace package remain owned by the root manifest. */
|
|
187
185
|
async function doctorPackageScopes(cwd, rootPackage) {
|
|
188
186
|
const importers = await workspaceImporters(cwd, rootPackage, true);
|
|
189
187
|
const packages = importers.length > 0 ? importers : [{ root: cwd, package: rootPackage }];
|
|
190
|
-
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
isAlias: aliasMatcher(paths),
|
|
198
|
-
};
|
|
188
|
+
// The nearest tsconfig, read as TypeScript does: comments, trailing commas and `extends` included.
|
|
189
|
+
const resolver = createSpecifierResolver();
|
|
190
|
+
const scopes = packages.map((entry) => ({
|
|
191
|
+
root: entry.root,
|
|
192
|
+
relativeRoot: relative(cwd, entry.root).split("\\").join("/"),
|
|
193
|
+
declared: declaredPackages(entry.package),
|
|
194
|
+
isAlias: aliasMatcher(Object.fromEntries(resolver.pathPatterns(entry.root).map((pattern) => [pattern, []]))),
|
|
199
195
|
}));
|
|
200
196
|
return scopes.sort((a, b) => b.relativeRoot.length - a.relativeRoot.length);
|
|
201
197
|
}
|
|
@@ -429,7 +425,7 @@ async function collectDoctorReadiness(cwd, opts) {
|
|
|
429
425
|
configured("log-redaction", "log redaction", /\b(?:jsonLogger|redactLogFields|logger)\s*\(/),
|
|
430
426
|
edgeTarget
|
|
431
427
|
? { id: "graceful-lifecycle", label: "graceful lifecycle", status: "not-applicable" }
|
|
432
|
-
: configured("graceful-lifecycle", "graceful lifecycle", /\bgracefulSignals\s*:\s*true\b|\bonStop\s*\(/),
|
|
428
|
+
: configured("graceful-lifecycle", "graceful lifecycle", /\bgracefulSignals\s*:\s*(?:true\b|\{)|\bonStop\s*\(/),
|
|
433
429
|
];
|
|
434
430
|
return {
|
|
435
431
|
target: resolved?.target ?? "unknown",
|
|
@@ -508,6 +504,7 @@ export async function collectDoctorResult(cwd, opts = {}) {
|
|
|
508
504
|
return { ok: true, ran: false, findings: [], duplicateInstalls: [], staleDists: [] };
|
|
509
505
|
const scopes = await doctorPackageScopes(cwd, pkg);
|
|
510
506
|
const findings = [];
|
|
507
|
+
const manifestLists = [];
|
|
511
508
|
// A standalone app owns its tests, so they remain in the declaration check. A workspace root owns
|
|
512
509
|
// the published package source while its root devDependencies intentionally own shared tests,
|
|
513
510
|
// benchmarks, and scaffold copy-surfaces. Keep that boundary explicit instead of reporting a
|
|
@@ -535,6 +532,7 @@ export async function collectDoctorResult(cwd, opts = {}) {
|
|
|
535
532
|
for (const f of scanUndeclaredImports(rel, content, scope.declared, scope.isAlias)) {
|
|
536
533
|
findings.push({ file: f.file, line: f.line, package: f.snippet });
|
|
537
534
|
}
|
|
535
|
+
manifestLists.push(...manifestListsIn(rel, content));
|
|
538
536
|
}, { includeTests: scanScope.includeTests, ignore: workspaceSurface });
|
|
539
537
|
findings.sort((a, b) => codeUnitOrder(a.file, b.file) || a.line - b.line);
|
|
540
538
|
const identity = await collectAllDuplicateInstalls(cwd, pkg);
|
|
@@ -548,6 +546,8 @@ export async function collectDoctorResult(cwd, opts = {}) {
|
|
|
548
546
|
// pass its own version (e.g. the MCP server, which already annotates every result with the drift).
|
|
549
547
|
const toolingDrift = opts.cliVersion !== undefined ? await detectToolingDrift(cwd, opts.cliVersion) : undefined;
|
|
550
548
|
const staleMcpPins = await collectStaleMcpPins(cwd).catch(() => undefined);
|
|
549
|
+
const versionDrift = collectVersionDrift(cwd, opts.cliVersion);
|
|
550
|
+
const handBuilt = handBuiltManifests(cwd, manifestLists);
|
|
551
551
|
// `staleDists`, `toolingDrift` and `staleMcpPins` are advisory (see DoctorResult): they never fail `ok`.
|
|
552
552
|
return {
|
|
553
553
|
ok: findings.length === 0 &&
|
|
@@ -564,6 +564,8 @@ export async function collectDoctorResult(cwd, opts = {}) {
|
|
|
564
564
|
readiness,
|
|
565
565
|
scanScope,
|
|
566
566
|
...(toolingDrift !== undefined ? { toolingDrift } : {}),
|
|
567
|
+
...(versionDrift !== undefined ? { versionDrift } : {}),
|
|
568
|
+
...(handBuilt.length > 0 ? { handBuiltManifests: handBuilt } : {}),
|
|
567
569
|
...(staleMcpPins !== undefined && staleMcpPins.files.length > 0 ? { staleMcpPins } : {}),
|
|
568
570
|
...(pipeline.ran ? { pipeline } : {}),
|
|
569
571
|
};
|
|
@@ -719,6 +721,12 @@ export async function runDoctor(cwd, opts = {}) {
|
|
|
719
721
|
"for the CLI itself, run the project's own (`bunx --bun nifra doctor` from the project directory, " +
|
|
720
722
|
"or ./node_modules/.bin/nifra)\n");
|
|
721
723
|
}
|
|
724
|
+
if (result.versionDrift !== undefined) {
|
|
725
|
+
console.log(`⚠ ${versionDriftMessage(result.versionDrift)}\n`);
|
|
726
|
+
}
|
|
727
|
+
for (const finding of result.handBuiltManifests ?? []) {
|
|
728
|
+
console.log(`⚠ ${handBuiltManifestMessage(finding)}\n`);
|
|
729
|
+
}
|
|
722
730
|
// Advisory: the agent's MCP server is launched from these pins, so a stale one answers for an old
|
|
723
731
|
// release even when the CLI running doctor matches the project.
|
|
724
732
|
if (result.staleMcpPins !== undefined) {
|