@nifrajs/cli 0.1.0-alpha.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/LICENSE +21 -0
- package/README.md +99 -0
- package/dist/check.d.ts +100 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +690 -0
- package/dist/check.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +208 -0
- package/dist/cli.js.map +1 -0
- package/dist/docs-search.d.ts +30 -0
- package/dist/docs-search.d.ts.map +1 -0
- package/dist/docs-search.js +94 -0
- package/dist/docs-search.js.map +1 -0
- package/dist/doctor.d.ts +52 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +291 -0
- package/dist/doctor.js.map +1 -0
- package/dist/examples.d.ts +30 -0
- package/dist/examples.d.ts.map +1 -0
- package/dist/examples.js +70 -0
- package/dist/examples.js.map +1 -0
- package/dist/introspect.d.ts +64 -0
- package/dist/introspect.d.ts.map +1 -0
- package/dist/introspect.js +243 -0
- package/dist/introspect.js.map +1 -0
- package/dist/load.d.ts +51 -0
- package/dist/load.d.ts.map +1 -0
- package/dist/load.js +70 -0
- package/dist/load.js.map +1 -0
- package/dist/mcp-docs-tools.d.ts +13 -0
- package/dist/mcp-docs-tools.d.ts.map +1 -0
- package/dist/mcp-docs-tools.js +63 -0
- package/dist/mcp-docs-tools.js.map +1 -0
- package/dist/mcp-http.d.ts +43 -0
- package/dist/mcp-http.d.ts.map +1 -0
- package/dist/mcp-http.js +136 -0
- package/dist/mcp-http.js.map +1 -0
- package/dist/mcp-protocol.d.ts +97 -0
- package/dist/mcp-protocol.d.ts.map +1 -0
- package/dist/mcp-protocol.js +248 -0
- package/dist/mcp-protocol.js.map +1 -0
- package/dist/mcp-render.d.ts +17 -0
- package/dist/mcp-render.d.ts.map +1 -0
- package/dist/mcp-render.js +73 -0
- package/dist/mcp-render.js.map +1 -0
- package/dist/mcp-run.d.ts +24 -0
- package/dist/mcp-run.d.ts.map +1 -0
- package/dist/mcp-run.js +142 -0
- package/dist/mcp-run.js.map +1 -0
- package/dist/mcp-ws.d.ts +26 -0
- package/dist/mcp-ws.d.ts.map +1 -0
- package/dist/mcp-ws.js +258 -0
- package/dist/mcp-ws.js.map +1 -0
- package/dist/mcp.d.ts +42 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +712 -0
- package/dist/mcp.js.map +1 -0
- package/dist/openapi-tool.d.ts +6 -0
- package/dist/openapi-tool.d.ts.map +1 -0
- package/dist/openapi-tool.js +48 -0
- package/dist/openapi-tool.js.map +1 -0
- package/dist/scaffold.d.ts +35 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +140 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/search-terms.d.ts +17 -0
- package/dist/search-terms.d.ts.map +1 -0
- package/dist/search-terms.js +82 -0
- package/dist/search-terms.js.map +1 -0
- package/dist/test-tool.d.ts +29 -0
- package/dist/test-tool.d.ts.map +1 -0
- package/dist/test-tool.js +150 -0
- package/dist/test-tool.js.map +1 -0
- package/docs/examples.json +314 -0
- package/docs/llms-full.txt +4325 -0
- package/package.json +58 -0
- package/src/check.ts +790 -0
- package/src/cli.ts +237 -0
- package/src/docs-search.ts +111 -0
- package/src/doctor.ts +349 -0
- package/src/examples.ts +89 -0
- package/src/introspect.ts +284 -0
- package/src/load.ts +129 -0
- package/src/mcp-docs-tools.ts +72 -0
- package/src/mcp-http.ts +155 -0
- package/src/mcp-protocol.ts +326 -0
- package/src/mcp-render.ts +78 -0
- package/src/mcp-run.ts +153 -0
- package/src/mcp-ws.ts +328 -0
- package/src/mcp.ts +863 -0
- package/src/openapi-tool.ts +51 -0
- package/src/scaffold.ts +164 -0
- package/src/search-terms.ts +89 -0
- package/src/test-tool.ts +181 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
import { inProcessClient } from "@nifrajs/client";
|
|
3
|
+
import { createWebApp } from "@nifrajs/web";
|
|
4
|
+
import { discoverRoutes } from "@nifrajs/web/fs";
|
|
5
|
+
import { describeProject } from "./introspect.js";
|
|
6
|
+
import { loadApp, resolvePlugins } from "./load.js";
|
|
7
|
+
const HELP = `nifra — zero-config dev/build/start for a nifra app
|
|
8
|
+
|
|
9
|
+
Usage:
|
|
10
|
+
nifra dev [--port <n>] [--poll] Start the true-HMR dev server (Vite).
|
|
11
|
+
nifra build [--out <dir>] Bundle the client + write manifest.json.
|
|
12
|
+
nifra start [--port <n>] [--out <dir>] Serve the built app (client + SSR) on Bun.
|
|
13
|
+
nifra context Print this project's API + page routes + conventions
|
|
14
|
+
(for piping into an AI coding agent's prompt).
|
|
15
|
+
nifra mcp Start an MCP server (stdio) exposing this project to a coding
|
|
16
|
+
agent: nifra_context, nifra_routes (routes+schemas as JSON),
|
|
17
|
+
nifra_run (backend), nifra_render (SSR a page), nifra_docs,
|
|
18
|
+
nifra_example (verified snippets), nifra_scaffold (route→file),
|
|
19
|
+
nifra_check (drift gate + fixes), nifra_doctor (undeclared deps).
|
|
20
|
+
nifra docs-mcp [--port <n>] Serve the PUBLIC docs MCP over HTTP (nifra_docs + nifra_example) —
|
|
21
|
+
self-host on a VPS so any remote agent can learn nifra. Default :8787.
|
|
22
|
+
nifra check [--json] [--lints-only] Gate: typecheck + lints (hand-rolled fetch(), untyped client("…"),
|
|
23
|
+
server-only imports in routes/). Run as "done"; --json for agents;
|
|
24
|
+
--lints-only skips tsc for a near-instant inner-loop pass.
|
|
25
|
+
nifra doctor [--json] [--auto-fix] Flag packages imported in source but missing from package.json
|
|
26
|
+
(resolve at Bun runtime, break tsc + standalone install);
|
|
27
|
+
--auto-fix writes safe local-version dependency fixes.
|
|
28
|
+
|
|
29
|
+
Reads nifra.config.ts (adapter + clientModule + plugins; or framework.ts), backend.ts (optional), and
|
|
30
|
+
routes/ from the current directory. Run from your project root.`;
|
|
31
|
+
const CLI_VERSION = "0.1.0-alpha.1";
|
|
32
|
+
// A render adapter + nifra server are opaque to the CLI (it just forwards them); cast at the seam.
|
|
33
|
+
const asAdapter = (v) => v;
|
|
34
|
+
const asBunPlugins = (v) => v;
|
|
35
|
+
const apiOf = (backend) => backend === undefined ? {} : { api: inProcessClient(backend) };
|
|
36
|
+
async function dev(app, flags) {
|
|
37
|
+
const { plugin } = await import("bun");
|
|
38
|
+
const { createViteDevServer } = await import("@nifrajs/web/vite");
|
|
39
|
+
const { framework: fw, routesDir, cwd, backend } = app;
|
|
40
|
+
// nifra SSRs each request by importing the route modules through Bun (not Vite's ssrLoadModule), so
|
|
41
|
+
// `.vue`/`.svelte`/Solid routes need their SSR compile plugin registered on Bun's runtime first —
|
|
42
|
+
// the dev analog of `nifra start`. React/Preact JSX is Bun-native → no server plugins → no-op.
|
|
43
|
+
for (const p of asBunPlugins(await resolvePlugins(fw.serverPlugins)))
|
|
44
|
+
plugin(p);
|
|
45
|
+
const server = await createViteDevServer({
|
|
46
|
+
root: cwd,
|
|
47
|
+
routesDir,
|
|
48
|
+
clientModule: fw.clientModule,
|
|
49
|
+
plugins: await resolvePlugins(fw.vitePlugins),
|
|
50
|
+
poll: flags.poll,
|
|
51
|
+
port: flags.port,
|
|
52
|
+
...(fw.conditions ? { conditions: fw.conditions } : {}),
|
|
53
|
+
...(fw.define ? { define: fw.define } : {}),
|
|
54
|
+
createApp: (clientEntry, importQuery) => createWebApp({
|
|
55
|
+
adapter: asAdapter(fw.adapter),
|
|
56
|
+
manifest: discoverRoutes(routesDir, { importQuery }),
|
|
57
|
+
clientEntry,
|
|
58
|
+
...apiOf(backend),
|
|
59
|
+
}),
|
|
60
|
+
});
|
|
61
|
+
console.log(`nifra dev → http://localhost:${server.port}`);
|
|
62
|
+
}
|
|
63
|
+
async function build(app) {
|
|
64
|
+
const { buildClient } = await import("@nifrajs/web/build");
|
|
65
|
+
const { framework: fw, routesDir, outDir } = app;
|
|
66
|
+
const manifest = await buildClient({
|
|
67
|
+
routesDir,
|
|
68
|
+
outDir,
|
|
69
|
+
clientModule: fw.clientModule,
|
|
70
|
+
plugins: asBunPlugins(await resolvePlugins(fw.clientPlugins)),
|
|
71
|
+
define: { "process.env.NODE_ENV": '"production"', ...(fw.define ?? {}) },
|
|
72
|
+
...(fw.conditions ? { conditions: fw.conditions } : {}),
|
|
73
|
+
});
|
|
74
|
+
console.log(`nifra build → ${outDir} (entry ${manifest.entry}${manifest.css ? ", + css" : ""})`);
|
|
75
|
+
}
|
|
76
|
+
async function start(app, flags) {
|
|
77
|
+
const { plugin } = await import("bun");
|
|
78
|
+
const { framework: fw, routesDir, outDir, backend } = app;
|
|
79
|
+
// Register the framework's SSR Bun plugins so `.vue`/`.svelte`/Solid route files compile on the
|
|
80
|
+
// server's runtime import (React/Preact JSX is Bun-native → none).
|
|
81
|
+
for (const p of asBunPlugins(await resolvePlugins(fw.serverPlugins)))
|
|
82
|
+
plugin(p);
|
|
83
|
+
const manifestFile = Bun.file(`${outDir}/manifest.json`);
|
|
84
|
+
if (!(await manifestFile.exists())) {
|
|
85
|
+
throw new Error(`[nifra] no ${outDir}/manifest.json — run \`nifra build\` first.`);
|
|
86
|
+
}
|
|
87
|
+
const manifest = JSON.parse(await manifestFile.text());
|
|
88
|
+
const server = createWebApp({
|
|
89
|
+
adapter: asAdapter(fw.adapter),
|
|
90
|
+
manifest: discoverRoutes(routesDir),
|
|
91
|
+
clientEntry: manifest.entry,
|
|
92
|
+
...(manifest.routes ? { routePreload: manifest.routes } : {}),
|
|
93
|
+
...(manifest.css ? { styles: manifest.css } : {}),
|
|
94
|
+
...(manifest.routeStyles ? { routeStyles: manifest.routeStyles } : {}),
|
|
95
|
+
...apiOf(backend),
|
|
96
|
+
});
|
|
97
|
+
// Serve the content-hashed bundle (immutable). `.css` → text/css, else JS. Name is path-validated.
|
|
98
|
+
server.get("/assets/*", async (c) => {
|
|
99
|
+
const name = new URL(c.req.url).pathname.slice("/assets/".length);
|
|
100
|
+
if (!/^[A-Za-z0-9._-]+$/.test(name))
|
|
101
|
+
return new Response("bad request", { status: 400 });
|
|
102
|
+
const file = Bun.file(`${outDir}/${name}`);
|
|
103
|
+
if (!(await file.exists()))
|
|
104
|
+
return new Response("Not Found", { status: 404 });
|
|
105
|
+
const type = name.endsWith(".css") ? "text/css" : "text/javascript";
|
|
106
|
+
return new Response(file, {
|
|
107
|
+
headers: {
|
|
108
|
+
"content-type": `${type}; charset=utf-8`,
|
|
109
|
+
"cache-control": "public, max-age=31536000, immutable",
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
const running = server.listen(flags.port);
|
|
114
|
+
console.log(`nifra start → http://localhost:${running.port}`);
|
|
115
|
+
}
|
|
116
|
+
function parseFlags(args) {
|
|
117
|
+
let port = Number(Bun.env.PORT ?? 3000);
|
|
118
|
+
let out = "dist";
|
|
119
|
+
let poll = Bun.env.CHOKIDAR_USEPOLLING === "1";
|
|
120
|
+
for (let i = 0; i < args.length; i++) {
|
|
121
|
+
const a = args[i];
|
|
122
|
+
if ((a === "--port" || a === "-p") && args[i + 1])
|
|
123
|
+
port = Number(args[++i]);
|
|
124
|
+
else if (a === "--out" && args[i + 1])
|
|
125
|
+
out = args[++i];
|
|
126
|
+
else if (a === "--poll")
|
|
127
|
+
poll = true;
|
|
128
|
+
}
|
|
129
|
+
if (!Number.isFinite(port) || port < 0 || port > 65535) {
|
|
130
|
+
throw new Error(`[nifra] invalid --port: ${port}`);
|
|
131
|
+
}
|
|
132
|
+
return { port, out, poll };
|
|
133
|
+
}
|
|
134
|
+
async function main() {
|
|
135
|
+
const argv = Bun.argv.slice(2);
|
|
136
|
+
const command = argv[0];
|
|
137
|
+
if (command === undefined || command === "--help" || command === "-h" || command === "help") {
|
|
138
|
+
console.log(HELP);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (command === "--version" || command === "-v") {
|
|
142
|
+
console.log(`nifra (@nifrajs/cli) ${CLI_VERSION}`);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
// `mcp` runs a long-lived stdio server and loads the project lazily per-tool — it must not go through
|
|
146
|
+
// the eager `loadApp` below (which would fail fast on a project that's API-only / not yet built).
|
|
147
|
+
if (command === "mcp") {
|
|
148
|
+
const { runMcpServer } = await import("./mcp.js");
|
|
149
|
+
await runMcpServer(process.cwd(), CLI_VERSION);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
// `docs-mcp` runs the PUBLIC docs MCP over HTTP — project-independent (serves the bundled corpus), so
|
|
153
|
+
// it self-hosts anywhere Bun runs (a VPS behind a reverse proxy, a container). Long-lived; no loadApp.
|
|
154
|
+
if (command === "docs-mcp") {
|
|
155
|
+
const { handleMcpHttp } = await import("./mcp-http.js");
|
|
156
|
+
const portArg = argv[argv.indexOf("--port") + 1];
|
|
157
|
+
const port = Number(portArg && argv.includes("--port") ? portArg : (Bun.env.PORT ?? 8787));
|
|
158
|
+
if (!Number.isInteger(port) || port < 0 || port > 65535) {
|
|
159
|
+
throw new Error(`[nifra] invalid --port: ${port}`);
|
|
160
|
+
}
|
|
161
|
+
const server = Bun.serve({ port, fetch: handleMcpHttp });
|
|
162
|
+
console.log(`nifra docs MCP (HTTP) → ${server.url}`);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// `check` is a pure cwd-based gate (typecheck + lint) — it must run even when the project doesn't
|
|
166
|
+
// load (API-only, not built yet), so it dispatches before the eager `loadApp` below.
|
|
167
|
+
if (command === "check") {
|
|
168
|
+
const { runCheck } = await import("./check.js");
|
|
169
|
+
if (!(await runCheck(process.cwd(), {
|
|
170
|
+
json: argv.includes("--json"),
|
|
171
|
+
lintsOnly: argv.includes("--lints-only"),
|
|
172
|
+
})))
|
|
173
|
+
process.exitCode = 1;
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
// `doctor` is a pure cwd check (imports vs declared deps) — like `check`, dispatch before `loadApp`
|
|
177
|
+
// so it runs on an API-only / not-yet-built project.
|
|
178
|
+
if (command === "doctor") {
|
|
179
|
+
const { runDoctor } = await import("./doctor.js");
|
|
180
|
+
if (!(await runDoctor(process.cwd(), {
|
|
181
|
+
json: argv.includes("--json"),
|
|
182
|
+
autoFix: argv.includes("--auto-fix") || argv.includes("--fix"),
|
|
183
|
+
})))
|
|
184
|
+
process.exitCode = 1;
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
if (command !== "dev" && command !== "build" && command !== "start" && command !== "context") {
|
|
188
|
+
console.error(`[nifra] unknown command: ${command}\n`);
|
|
189
|
+
console.error(HELP);
|
|
190
|
+
process.exitCode = 1;
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
const flags = parseFlags(argv.slice(1));
|
|
194
|
+
const app = await loadApp(process.cwd(), flags.out);
|
|
195
|
+
if (command === "dev")
|
|
196
|
+
await dev(app, flags);
|
|
197
|
+
else if (command === "build")
|
|
198
|
+
await build(app);
|
|
199
|
+
else if (command === "context")
|
|
200
|
+
console.log(describeProject(app));
|
|
201
|
+
else
|
|
202
|
+
await start(app, flags);
|
|
203
|
+
}
|
|
204
|
+
main().catch((err) => {
|
|
205
|
+
console.error(err instanceof Error ? err.message : String(err));
|
|
206
|
+
process.exitCode = 1;
|
|
207
|
+
});
|
|
208
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `nifra_docs` — searchable framework documentation for agents. The corpus is the generated
|
|
3
|
+
* `llms-full.txt` (written into this package by `bun run gen:llms`, so it can't drift from the
|
|
4
|
+
* source it's generated from). Instead of dumping the whole ~150 KB into an agent's context, the
|
|
5
|
+
* tool keyword-scores the document's `##` sections and returns only the top matches — or, with no
|
|
6
|
+
* query, just the section index (the cheap discovery call).
|
|
7
|
+
*
|
|
8
|
+
* Deliberately NOT a vector search: the corpus is one curated document with descriptive headings;
|
|
9
|
+
* weighted keyword scoring over sections is deterministic, dependency-free, and good enough that
|
|
10
|
+
* embedding infra would be complexity without a payoff.
|
|
11
|
+
*/
|
|
12
|
+
export interface DocSection {
|
|
13
|
+
readonly heading: string;
|
|
14
|
+
readonly body: string;
|
|
15
|
+
}
|
|
16
|
+
/** Split the generated doc into its `##` sections (the `# title` intro becomes "Overview"). */
|
|
17
|
+
export declare function splitSections(markdown: string): DocSection[];
|
|
18
|
+
export interface ScoredSection extends DocSection {
|
|
19
|
+
readonly score: number;
|
|
20
|
+
}
|
|
21
|
+
/** Score sections against the query: a term in the HEADING is worth far more than body mentions
|
|
22
|
+
* (headings are curated names for exactly these lookups); body occurrences cap per term so one
|
|
23
|
+
* spammy section can't drown a precisely-titled one. */
|
|
24
|
+
export declare function searchSections(sections: readonly DocSection[], query: string, limit: number): ScoredSection[];
|
|
25
|
+
/** Render the tool result: matched sections, or the index when no query was given. */
|
|
26
|
+
export declare function renderDocsResult(markdown: string, query: string | undefined, limit: number): string;
|
|
27
|
+
/** Load the bundled corpus. Resolves relative to this module so it works from `src/` (repo dev)
|
|
28
|
+
* and `dist/` (published) alike — `docs/llms-full.txt` sits at the package root next to both. */
|
|
29
|
+
export declare function loadDocsCorpus(): Promise<string | undefined>;
|
|
30
|
+
//# sourceMappingURL=docs-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-search.d.ts","sourceRoot":"","sources":["../src/docs-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,+FAA+F;AAC/F,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAoB5D;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;wDAEwD;AACxD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,aAAa,EAAE,CAejB;AAMD,sFAAsF;AACtF,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,GACZ,MAAM,CAmBR;AAED;iGACiG;AACjG,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQlE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `nifra_docs` — searchable framework documentation for agents. The corpus is the generated
|
|
3
|
+
* `llms-full.txt` (written into this package by `bun run gen:llms`, so it can't drift from the
|
|
4
|
+
* source it's generated from). Instead of dumping the whole ~150 KB into an agent's context, the
|
|
5
|
+
* tool keyword-scores the document's `##` sections and returns only the top matches — or, with no
|
|
6
|
+
* query, just the section index (the cheap discovery call).
|
|
7
|
+
*
|
|
8
|
+
* Deliberately NOT a vector search: the corpus is one curated document with descriptive headings;
|
|
9
|
+
* weighted keyword scoring over sections is deterministic, dependency-free, and good enough that
|
|
10
|
+
* embedding infra would be complexity without a payoff.
|
|
11
|
+
*/
|
|
12
|
+
import { countBodyHits, queryTermGroups, tokenize, tokenSetHas } from "./search-terms.js";
|
|
13
|
+
/** Split the generated doc into its `##` sections (the `# title` intro becomes "Overview"). */
|
|
14
|
+
export function splitSections(markdown) {
|
|
15
|
+
const out = [];
|
|
16
|
+
const lines = markdown.split("\n");
|
|
17
|
+
let heading = "Overview";
|
|
18
|
+
let buf = [];
|
|
19
|
+
const flush = () => {
|
|
20
|
+
const body = buf.join("\n").trim();
|
|
21
|
+
if (body.length > 0)
|
|
22
|
+
out.push({ heading, body });
|
|
23
|
+
buf = [];
|
|
24
|
+
};
|
|
25
|
+
for (const line of lines) {
|
|
26
|
+
if (line.startsWith("## ")) {
|
|
27
|
+
flush();
|
|
28
|
+
heading = line.slice(3).trim();
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
buf.push(line);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
flush();
|
|
35
|
+
return out;
|
|
36
|
+
}
|
|
37
|
+
/** Score sections against the query: a term in the HEADING is worth far more than body mentions
|
|
38
|
+
* (headings are curated names for exactly these lookups); body occurrences cap per term so one
|
|
39
|
+
* spammy section can't drown a precisely-titled one. */
|
|
40
|
+
export function searchSections(sections, query, limit) {
|
|
41
|
+
const terms = queryTermGroups(query);
|
|
42
|
+
if (terms.length === 0)
|
|
43
|
+
return [];
|
|
44
|
+
const scored = [];
|
|
45
|
+
for (const section of sections) {
|
|
46
|
+
const headingTokens = new Set(tokenize(section.heading));
|
|
47
|
+
const bodyLower = section.body.toLowerCase();
|
|
48
|
+
let score = 0;
|
|
49
|
+
for (const term of terms) {
|
|
50
|
+
if (tokenSetHas(headingTokens, term))
|
|
51
|
+
score += 8;
|
|
52
|
+
score += countBodyHits(bodyLower, term, 5);
|
|
53
|
+
}
|
|
54
|
+
if (score > 0)
|
|
55
|
+
scored.push({ ...section, score });
|
|
56
|
+
}
|
|
57
|
+
return scored.sort((a, b) => b.score - a.score).slice(0, limit);
|
|
58
|
+
}
|
|
59
|
+
/** Cap a section body for the tool result — whole sections can be pages long; the agent can ask
|
|
60
|
+
* again with a narrower query if the trim cuts what it needed. */
|
|
61
|
+
const MAX_SECTION_CHARS = 2800;
|
|
62
|
+
/** Render the tool result: matched sections, or the index when no query was given. */
|
|
63
|
+
export function renderDocsResult(markdown, query, limit) {
|
|
64
|
+
const sections = splitSections(markdown);
|
|
65
|
+
if (query === undefined || query.trim() === "") {
|
|
66
|
+
const index = sections.map((s) => `- ${s.heading}`).join("\n");
|
|
67
|
+
return `# nifra docs — section index (pass \`query\` to fetch matching sections)\n\n${index}`;
|
|
68
|
+
}
|
|
69
|
+
const matches = searchSections(sections, query, limit);
|
|
70
|
+
if (matches.length === 0) {
|
|
71
|
+
return `No docs sections matched ${JSON.stringify(query)}. Call without a query for the section index.`;
|
|
72
|
+
}
|
|
73
|
+
return matches
|
|
74
|
+
.map((m) => {
|
|
75
|
+
const body = m.body.length > MAX_SECTION_CHARS
|
|
76
|
+
? `${m.body.slice(0, MAX_SECTION_CHARS)}\n…(trimmed — narrow the query for the rest)`
|
|
77
|
+
: m.body;
|
|
78
|
+
return `## ${m.heading}\n\n${body}`;
|
|
79
|
+
})
|
|
80
|
+
.join("\n\n---\n\n");
|
|
81
|
+
}
|
|
82
|
+
/** Load the bundled corpus. Resolves relative to this module so it works from `src/` (repo dev)
|
|
83
|
+
* and `dist/` (published) alike — `docs/llms-full.txt` sits at the package root next to both. */
|
|
84
|
+
export async function loadDocsCorpus() {
|
|
85
|
+
const url = new URL("../docs/llms-full.txt", import.meta.url);
|
|
86
|
+
try {
|
|
87
|
+
const text = await Bun.file(url).text();
|
|
88
|
+
return text.length > 0 ? text : undefined;
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=docs-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-search.js","sourceRoot":"","sources":["../src/docs-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAOzF,+FAA+F;AAC/F,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,GAAG,GAAiB,EAAE,CAAA;IAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,OAAO,GAAG,UAAU,CAAA;IACxB,IAAI,GAAG,GAAa,EAAE,CAAA;IACtB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAChD,GAAG,GAAG,EAAE,CAAA;IACV,CAAC,CAAA;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,KAAK,EAAE,CAAA;YACP,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAA;IACP,OAAO,GAAG,CAAA;AACZ,CAAC;AAMD;;wDAEwD;AACxD,MAAM,UAAU,cAAc,CAC5B,QAA+B,EAC/B,KAAa,EACb,KAAa;IAEb,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACjC,MAAM,MAAM,GAAoB,EAAE,CAAA;IAClC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QACxD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QAC5C,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAA;YAChD,KAAK,IAAI,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACjE,CAAC;AAED;kEACkE;AAClE,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAE9B,sFAAsF;AACtF,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,KAAyB,EACzB,KAAa;IAEb,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACxC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9D,OAAO,+EAA+E,KAAK,EAAE,CAAA;IAC/F,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,+CAA+C,CAAA;IACzG,CAAC;IACD,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GACR,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,iBAAiB;YAC/B,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,8CAA8C;YACrF,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACZ,OAAO,MAAM,CAAC,CAAC,OAAO,OAAO,IAAI,EAAE,CAAA;IACrC,CAAC,CAAC;SACD,IAAI,CAAC,aAAa,CAAC,CAAA;AACxB,CAAC;AAED;iGACiG;AACjG,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACvC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
|
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type SourceFinding } from "./check.js";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve an import specifier to the npm package name it would install as, or `undefined` when it isn't
|
|
4
|
+
* an npm dependency at all (a relative/absolute path, a runtime builtin, or a malformed scope like the
|
|
5
|
+
* `@/…` path-alias convention). `@scope/name/sub` → `@scope/name`; `name/sub` → `name`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function packageOf(spec: string): string | undefined;
|
|
8
|
+
/** Build a predicate matching tsconfig `paths` aliases (e.g. `@/*`, `~/utils`), which resolve to local
|
|
9
|
+
* source, not npm packages — so doctor must not flag them. */
|
|
10
|
+
export declare function aliasMatcher(paths: Readonly<Record<string, unknown>> | undefined): (spec: string) => boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Scan one file for bare imports whose resolved package is neither `declared` nor a path `alias`. Pure +
|
|
13
|
+
* line-accurate. Deduped per (package, line): the `snippet` carries the undeclared package name.
|
|
14
|
+
*/
|
|
15
|
+
export declare function scanUndeclaredImports(file: string, content: string, declared: ReadonlySet<string>, isAlias: (spec: string) => boolean): SourceFinding[];
|
|
16
|
+
export interface DoctorFinding {
|
|
17
|
+
readonly file: string;
|
|
18
|
+
readonly line: number;
|
|
19
|
+
/** The undeclared package name — add it to `package.json` dependencies. */
|
|
20
|
+
readonly package: string;
|
|
21
|
+
}
|
|
22
|
+
export interface DoctorResult {
|
|
23
|
+
readonly ok: boolean;
|
|
24
|
+
/** `false` when no `package.json` was found at cwd — doctor can't run (reported, not a crash). */
|
|
25
|
+
readonly ran: boolean;
|
|
26
|
+
readonly findings: readonly DoctorFinding[];
|
|
27
|
+
/** Dependencies written by `--auto-fix` / MCP `autoFix:true`. */
|
|
28
|
+
readonly fixed?: readonly DoctorAppliedFix[];
|
|
29
|
+
/** Findings that were safe to report but not safe to write automatically. */
|
|
30
|
+
readonly skippedFixes?: readonly DoctorSkippedFix[];
|
|
31
|
+
}
|
|
32
|
+
export interface DoctorAppliedFix {
|
|
33
|
+
readonly package: string;
|
|
34
|
+
readonly field: "dependencies";
|
|
35
|
+
readonly version: string;
|
|
36
|
+
readonly source: "ancestor-package-json" | "installed-package-json";
|
|
37
|
+
}
|
|
38
|
+
export interface DoctorSkippedFix {
|
|
39
|
+
readonly package: string;
|
|
40
|
+
readonly reason: string;
|
|
41
|
+
readonly command: readonly string[];
|
|
42
|
+
}
|
|
43
|
+
/** Run doctor against the project at `cwd`: diff source imports vs declared deps. */
|
|
44
|
+
export declare function collectDoctorResult(cwd: string): Promise<DoctorResult>;
|
|
45
|
+
/** Safely add undeclared imports to package.json when the version can be inferred without network I/O. */
|
|
46
|
+
export declare function applyDoctorAutoFix(cwd: string): Promise<DoctorResult>;
|
|
47
|
+
/** Run doctor; print a report (`--json` for machine output) and return whether it passed. */
|
|
48
|
+
export declare function runDoctor(cwd: string, opts?: {
|
|
49
|
+
readonly json?: boolean;
|
|
50
|
+
readonly autoFix?: boolean;
|
|
51
|
+
}): Promise<boolean>;
|
|
52
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,aAAa,EAA6B,MAAM,YAAY,CAAA;AAiC1E;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY1D;AAED;8DAC8D;AAC9D,wBAAgB,YAAY,CAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GACnD,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAK3B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACjC,aAAa,EAAE,CAmBjB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,kGAAkG;IAClG,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;IAC3C,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC5C,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;CACpD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,wBAAwB,CAAA;CACpE;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAgFD,qFAAqF;AACrF,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAwB5E;AAED,0GAA0G;AAC1G,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAqD3E;AAED,6FAA6F;AAC7F,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GACjE,OAAO,CAAC,OAAO,CAAC,CA6ClB"}
|