askdb 1.0.0-beta.42 → 1.0.0-beta.44
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 +12 -1
- package/dist/cli.js +80 -74
- package/dist/cli.js.map +1 -1
- package/dist/error-values.d.ts +8 -0
- package/dist/error-values.d.ts.map +1 -0
- package/dist/error-values.js +12 -0
- package/dist/error-values.js.map +1 -0
- package/dist/init.d.ts +4 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +128 -101
- package/dist/init.js.map +1 -1
- package/dist/introspect.d.ts +12 -1
- package/dist/introspect.d.ts.map +1 -1
- package/dist/introspect.js +104 -119
- package/dist/introspect.js.map +1 -1
- package/dist/logger.d.ts +18 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +32 -0
- package/dist/logger.js.map +1 -0
- package/dist/project-config.d.ts +12 -0
- package/dist/project-config.d.ts.map +1 -0
- package/dist/project-config.js +21 -0
- package/dist/project-config.js.map +1 -0
- package/dist/rag.d.ts +2 -0
- package/dist/rag.d.ts.map +1 -0
- package/dist/rag.js +593 -0
- package/dist/rag.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +7 -0
- package/dist/version.js.map +1 -0
- package/package.json +24 -24
package/dist/introspect.js
CHANGED
|
@@ -1,58 +1,68 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
3
2
|
import { basename, join } from "node:path";
|
|
4
|
-
import {
|
|
3
|
+
import { isDeepStrictEqual } from "node:util";
|
|
5
4
|
import { getAskDbRuntimeConfig } from "@askdb/config";
|
|
6
|
-
import { introspect,
|
|
7
|
-
import { createConnectorRegistry, } from "@askdb/connectors";
|
|
5
|
+
import { createConnectorRegistry, introspect, isSchemaV2Json, renderSchemaV2Body, } from "@askdb/introspect";
|
|
8
6
|
import { postgresConnectorProvider } from "@askdb/postgres";
|
|
9
7
|
import { mysqlConnectorProvider } from "@askdb/mysql";
|
|
10
8
|
import { sqliteConnectorProvider } from "@askdb/sqlite";
|
|
11
9
|
import { sqlServerConnectorProvider } from "@askdb/sqlserver";
|
|
12
10
|
import { prismaConnectorProvider } from "@askdb/prisma";
|
|
13
|
-
|
|
11
|
+
import { createCliLogger } from "./logger.js";
|
|
12
|
+
import { requireAskDbConfig } from "./project-config.js";
|
|
13
|
+
import { readCliVersion } from "./version.js";
|
|
14
|
+
/**
|
|
15
|
+
* The engines `askdb introspect` supports out of the box. Engine-specific
|
|
16
|
+
* connection resolution (flag vs. config precedence, per-engine validation)
|
|
17
|
+
* lives in each adapter's `resolveConnection`, not here.
|
|
18
|
+
*/
|
|
19
|
+
export const defaultConnectorRegistry = createConnectorRegistry([
|
|
14
20
|
postgresConnectorProvider,
|
|
15
21
|
mysqlConnectorProvider,
|
|
16
22
|
sqliteConnectorProvider,
|
|
17
23
|
sqlServerConnectorProvider,
|
|
18
24
|
prismaConnectorProvider,
|
|
19
25
|
]);
|
|
20
|
-
const LIVE_DRIVER_ENGINES = ["postgres", "mysql", "sqlite", "sqlserver"];
|
|
21
26
|
const INTROSPECT_EVENTS = {
|
|
22
27
|
started: "askdb.introspect.started",
|
|
23
28
|
completed: "askdb.introspect.completed",
|
|
24
29
|
warning: "askdb.introspect.warning",
|
|
25
30
|
error: "askdb.introspect.error",
|
|
26
31
|
};
|
|
27
|
-
export async function runIntrospectCli(argv) {
|
|
32
|
+
export async function runIntrospectCli(argv, options = {}) {
|
|
33
|
+
if (argv.includes("--version") || argv.includes("-V")) {
|
|
34
|
+
process.stdout.write(`${readCliVersion()}\n`);
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
if (argv.includes("--help") || argv.includes("-h")) {
|
|
38
|
+
printHelp();
|
|
39
|
+
return 0;
|
|
40
|
+
}
|
|
41
|
+
const registry = options.connectorRegistry ?? defaultConnectorRegistry;
|
|
42
|
+
const templates = argv[0] === "templates";
|
|
43
|
+
// Only an introspection run reads askdb.config. A missing or broken config propagates to
|
|
44
|
+
// the CLI's top-level error handler, the same as for `askdb ask`.
|
|
45
|
+
if (!templates)
|
|
46
|
+
requireAskDbConfig();
|
|
28
47
|
try {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
if (argv.includes("--help") || argv.includes("-h")) {
|
|
34
|
-
printHelp();
|
|
35
|
-
return 0;
|
|
36
|
-
}
|
|
37
|
-
if (argv[0] === "templates") {
|
|
38
|
-
return runTemplatesCommand(argv.slice(1));
|
|
39
|
-
}
|
|
40
|
-
return await runIntrospectCommand(argv);
|
|
48
|
+
return templates
|
|
49
|
+
? runTemplatesCommand(argv.slice(1), registry)
|
|
50
|
+
: await runIntrospectCommand(argv, registry);
|
|
41
51
|
}
|
|
42
52
|
catch (error) {
|
|
43
53
|
process.stderr.write(`${formatError(error)}\n`);
|
|
44
54
|
return 1;
|
|
45
55
|
}
|
|
46
56
|
}
|
|
47
|
-
function runTemplatesCommand(argv) {
|
|
57
|
+
function runTemplatesCommand(argv, registry) {
|
|
48
58
|
const opts = parseOptions(argv);
|
|
49
|
-
const engine = resolveEngine(opts.engine);
|
|
50
|
-
|
|
51
|
-
throw new Error("Prisma introspection reads schema files and does not provide SQL templates.");
|
|
52
|
-
}
|
|
53
|
-
const bundle = connectorRegistry.getTemplates(engine);
|
|
59
|
+
const engine = resolveEngine(registry, opts.engine);
|
|
60
|
+
const bundle = registry.getTemplates(engine);
|
|
54
61
|
if (!bundle) {
|
|
55
|
-
|
|
62
|
+
const withTemplates = registry.providers().filter((id) => registry.getTemplates(id) !== undefined);
|
|
63
|
+
throw new Error(`Engine '${engine}' does not provide SQL templates yet. 'askdb introspect templates' is currently supported only for ` +
|
|
64
|
+
(withTemplates.length > 0 ? withTemplates.map((id) => `--engine ${id}`).join(", ") : "engines that provide them") +
|
|
65
|
+
".");
|
|
56
66
|
}
|
|
57
67
|
const body = bundle.templates
|
|
58
68
|
.map((tpl) => [`-- ${tpl.name}`, tpl.sql, ""].join("\n"))
|
|
@@ -60,58 +70,27 @@ function runTemplatesCommand(argv) {
|
|
|
60
70
|
process.stdout.write(body);
|
|
61
71
|
return 0;
|
|
62
72
|
}
|
|
63
|
-
async function runIntrospectCommand(argv) {
|
|
73
|
+
async function runIntrospectCommand(argv, registry) {
|
|
64
74
|
const opts = parseOptions(argv);
|
|
65
75
|
const rt = getAskDbRuntimeConfig();
|
|
66
76
|
// When --engine isn't passed, fall back to the configured introspection.provider
|
|
67
77
|
// so `askdb introspect` works flag-free for any configured engine.
|
|
68
|
-
const engine = resolveEngine(opts.engine ?? rt.introspection.provider);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
throw new Error("Provide either --url <postgres-url> or --from-export <bundle-dir>.");
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
// For the new live-driver engines, prefer the runtime-resolved per-engine
|
|
78
|
-
// field (structured config -> provider-specific env -> DATABASE_URL fallback
|
|
79
|
-
// for URL-shaped engines). SQLite has no DATABASE_URL fallback by design.
|
|
80
|
-
if (engine === "mysql" && !opts.url) {
|
|
81
|
-
if (rt.introspection.mysqlDatabaseUrl)
|
|
82
|
-
opts.url = rt.introspection.mysqlDatabaseUrl;
|
|
83
|
-
else
|
|
84
|
-
throw new Error("Provide --url <mysql-url> (or set introspection.providerConfig.mysql.databaseUrl / ASKDB_INTROSPECT_MYSQL_URL / DATABASE_URL).");
|
|
85
|
-
}
|
|
86
|
-
if (engine === "sqlserver" && !opts.url) {
|
|
87
|
-
if (rt.introspection.sqlserverDatabaseUrl)
|
|
88
|
-
opts.url = rt.introspection.sqlserverDatabaseUrl;
|
|
89
|
-
else
|
|
90
|
-
throw new Error("Provide --url <sqlserver-url> (or set introspection.providerConfig.sqlserver.databaseUrl / ASKDB_INTROSPECT_SQLSERVER_URL / DATABASE_URL).");
|
|
91
|
-
}
|
|
92
|
-
if (engine === "sqlite" && !opts.url) {
|
|
93
|
-
if (rt.introspection.sqliteFile)
|
|
94
|
-
opts.url = rt.introspection.sqliteFile;
|
|
95
|
-
else
|
|
96
|
-
throw new Error("Provide --url <path-to-sqlite-file> (or set introspection.providerConfig.sqlite.file / ASKDB_INTROSPECT_SQLITE_FILE).");
|
|
97
|
-
}
|
|
98
|
-
if ((engine === "mysql" || engine === "sqlite" || engine === "sqlserver") && opts.fromExport) {
|
|
99
|
-
throw new Error(`--from-export is currently supported only for --engine postgres (got ${engine}).`);
|
|
100
|
-
}
|
|
101
|
-
if (engine === "postgres" && opts.prismaSchema) {
|
|
102
|
-
throw new Error("Use --prisma-schema only with --engine prisma.");
|
|
103
|
-
}
|
|
104
|
-
if (engine === "prisma" && !opts.prismaSchema) {
|
|
105
|
-
const fromConfig = rt.introspection.prismaSchemaPath;
|
|
106
|
-
if (fromConfig) {
|
|
107
|
-
opts.prismaSchema = fromConfig;
|
|
108
|
-
}
|
|
109
|
-
// When still unset, @askdb/prisma will auto-discover prisma/schema.prisma or schema.prisma at runtime.
|
|
78
|
+
const engine = resolveEngine(registry, opts.engine ?? rt.introspection.provider);
|
|
79
|
+
// Schemas (MySQL/MariaDB: databases) to introspect: `--schemas` wins, then introspection.schemas.
|
|
80
|
+
if (!opts.schemas && rt.introspection.schemas) {
|
|
81
|
+
opts.schemas = rt.introspection.schemas;
|
|
110
82
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
83
|
+
// The engine's adapter merges flags with askdb.config/env (flags win) and
|
|
84
|
+
// rejects flags that don't apply to it.
|
|
85
|
+
const resolved = registry.resolveConnection(engine, {
|
|
86
|
+
explicit: { url: opts.url, fromExport: opts.fromExport, schemaPath: opts.prismaSchema },
|
|
87
|
+
runtime: rt,
|
|
88
|
+
surface: "cli",
|
|
89
|
+
});
|
|
90
|
+
if (!resolved.ok)
|
|
91
|
+
throw new Error(resolved.error);
|
|
92
|
+
const { url, fromExport, schemaPath } = resolved.connection;
|
|
93
|
+
if (url && fromExport) {
|
|
115
94
|
throw new Error("Use only one input mode: --url or --from-export.");
|
|
116
95
|
}
|
|
117
96
|
if (!opts.print && !opts.diff && !opts.out) {
|
|
@@ -124,23 +103,16 @@ async function runIntrospectCommand(argv) {
|
|
|
124
103
|
throw new Error("Use only one output mode: --out, --print, or --diff.");
|
|
125
104
|
}
|
|
126
105
|
const schemaId = opts.schemaId ?? inferSchemaId(opts.out ?? opts.diff) ?? "introspected";
|
|
127
|
-
const
|
|
128
|
-
const correlationId = opts.correlationId ?? rt.logging.correlationId ?? randomUUID();
|
|
129
|
-
const logger = createAskDbLogger({
|
|
130
|
-
correlationId,
|
|
131
|
-
level: logLevel,
|
|
132
|
-
logFile: opts.logFile ?? rt.logging.logFile,
|
|
133
|
-
logStdout: opts.logStdout ?? rt.logging.logStdout,
|
|
134
|
-
});
|
|
106
|
+
const logger = createCliLogger(opts, rt);
|
|
135
107
|
const connectorConfig = {
|
|
136
108
|
provider: engine,
|
|
137
|
-
url
|
|
138
|
-
fromExport
|
|
139
|
-
schemaPath
|
|
109
|
+
url,
|
|
110
|
+
fromExport,
|
|
111
|
+
schemaPath,
|
|
140
112
|
filters: buildFilters(opts),
|
|
141
113
|
schemaId,
|
|
142
114
|
};
|
|
143
|
-
const runConfig =
|
|
115
|
+
const runConfig = registry.createConnector(connectorConfig);
|
|
144
116
|
logger.info({
|
|
145
117
|
event: INTROSPECT_EVENTS.started,
|
|
146
118
|
mode: runConfig.mode,
|
|
@@ -171,16 +143,31 @@ async function runWithOutput(runConfig, opts, schemaId) {
|
|
|
171
143
|
const input = runConfig.input;
|
|
172
144
|
if (opts.print) {
|
|
173
145
|
const result = await introspect(input, undefined, { connector });
|
|
174
|
-
|
|
175
|
-
|
|
146
|
+
const rendered = renderSchemaV2Body(result.schema, {
|
|
147
|
+
schemaId,
|
|
148
|
+
provider: result.provider,
|
|
149
|
+
});
|
|
150
|
+
process.stdout.write(rendered.body);
|
|
151
|
+
return { ...result, warnings: [...result.warnings, ...rendered.warnings] };
|
|
176
152
|
}
|
|
177
153
|
if (opts.diff) {
|
|
178
154
|
const result = await introspect(input, undefined, { connector });
|
|
179
|
-
const generated = `${JSON.stringify(toV2SchemaJson(result.schema, schemaId), null, 2)}\n`;
|
|
180
155
|
const existingPath = join(opts.diff, "schema.json");
|
|
181
|
-
const
|
|
182
|
-
|
|
183
|
-
|
|
156
|
+
const hasExisting = existsSync(existingPath);
|
|
157
|
+
// Render exactly what `--out <same dir>` would write: same provider, same
|
|
158
|
+
// ID-anchored merge (human-set `sensitive` flags carried over). Otherwise
|
|
159
|
+
// --diff reports "changed" against an untouched artifact.
|
|
160
|
+
// An existing schema.json that isn't valid Schema v2 is compared without the
|
|
161
|
+
// merge (reported as changed); every other render error propagates, as for --out.
|
|
162
|
+
const rendered = renderSchemaV2Body(result.schema, {
|
|
163
|
+
schemaId,
|
|
164
|
+
provider: result.provider,
|
|
165
|
+
existingArtifactDir: hasExisting && isValidSchemaFile(existingPath) ? opts.diff : undefined,
|
|
166
|
+
});
|
|
167
|
+
const existing = hasExisting ? readFileSync(existingPath, "utf8") : "";
|
|
168
|
+
const changed = rendered.body !== existing && !sameJson(existing, rendered.json);
|
|
169
|
+
process.stdout.write(`${JSON.stringify({ changed, schemaJsonPath: existingPath }, null, 2)}\n`);
|
|
170
|
+
return { ...result, warnings: [...result.warnings, ...rendered.warnings] };
|
|
184
171
|
}
|
|
185
172
|
const outDir = opts.out;
|
|
186
173
|
return introspect(input, {
|
|
@@ -189,6 +176,29 @@ async function runWithOutput(runConfig, opts, schemaId) {
|
|
|
189
176
|
existingArtifactDir: existsSync(join(outDir, "schema.json")) ? outDir : undefined,
|
|
190
177
|
}, { connector });
|
|
191
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* True when `path` holds valid Schema v2 JSON, by the renderer's own check
|
|
181
|
+
* (`isSchemaV2Json`), so `{ "version": 2 }` without tables doesn't seed a merge.
|
|
182
|
+
*/
|
|
183
|
+
function isValidSchemaFile(path) {
|
|
184
|
+
let parsed;
|
|
185
|
+
try {
|
|
186
|
+
parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
return isSchemaV2Json(parsed);
|
|
192
|
+
}
|
|
193
|
+
/** Key-order-insensitive comparison so a reformatted-but-equivalent file is not "changed". */
|
|
194
|
+
function sameJson(existingBody, generated) {
|
|
195
|
+
try {
|
|
196
|
+
return isDeepStrictEqual(JSON.parse(existingBody), generated);
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
192
202
|
function buildFilters(opts) {
|
|
193
203
|
const filters = {};
|
|
194
204
|
if (opts.schemas)
|
|
@@ -272,15 +282,10 @@ function parseList(value) {
|
|
|
272
282
|
.map((part) => part.trim())
|
|
273
283
|
.filter(Boolean);
|
|
274
284
|
}
|
|
275
|
-
function resolveEngine(engine = "postgres") {
|
|
276
|
-
if (engine
|
|
277
|
-
engine === "prisma" ||
|
|
278
|
-
engine === "mysql" ||
|
|
279
|
-
engine === "sqlite" ||
|
|
280
|
-
engine === "sqlserver") {
|
|
285
|
+
function resolveEngine(registry, engine = "postgres") {
|
|
286
|
+
if (registry.hasProvider(engine))
|
|
281
287
|
return engine;
|
|
282
|
-
|
|
283
|
-
const supported = [...LIVE_DRIVER_ENGINES, "prisma"].join(", ");
|
|
288
|
+
const supported = registry.providers().join(", ");
|
|
284
289
|
throw new Error(`Unsupported introspection engine '${engine}' (expected one of: ${supported}).`);
|
|
285
290
|
}
|
|
286
291
|
function inferSchemaId(path) {
|
|
@@ -289,26 +294,6 @@ function inferSchemaId(path) {
|
|
|
289
294
|
const name = basename(path);
|
|
290
295
|
return name.endsWith(".schema") ? name.slice(0, -".schema".length) : name;
|
|
291
296
|
}
|
|
292
|
-
function resolveLogLevel(opts, rt) {
|
|
293
|
-
if (opts.logLevel !== undefined && opts.logLevel !== "") {
|
|
294
|
-
const level = opts.logLevel.toLowerCase();
|
|
295
|
-
if (!isSupportedAskDbLogLevel(level)) {
|
|
296
|
-
throw new Error(`Invalid --log-level: ${opts.logLevel} (expected one of ${formatSupportedAskDbLogLevels()})`);
|
|
297
|
-
}
|
|
298
|
-
return level;
|
|
299
|
-
}
|
|
300
|
-
const env = rt.logging.level?.toLowerCase();
|
|
301
|
-
if (env && isSupportedAskDbLogLevel(env))
|
|
302
|
-
return env;
|
|
303
|
-
if (opts.verbose || opts.logFile || opts.logStdout)
|
|
304
|
-
return "info";
|
|
305
|
-
return "silent";
|
|
306
|
-
}
|
|
307
|
-
function readPackageVersion() {
|
|
308
|
-
const pkgPath = new URL("../package.json", import.meta.url);
|
|
309
|
-
const parsed = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
310
|
-
return typeof parsed.version === "string" ? parsed.version : "0.0.0";
|
|
311
|
-
}
|
|
312
297
|
function printHelp() {
|
|
313
298
|
process.stdout.write([
|
|
314
299
|
"askdb introspect - Schema introspection for AskDB",
|
package/dist/introspect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspect.js","sourceRoot":"","sources":["../src/introspect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"introspect.js","sourceRoot":"","sources":["../src/introspect.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AskDbRuntimeConfig } from "@askdb/config";
|
|
2
|
+
import { type AskDbLogger, type AskDbLogLevel } from "@askdb/core";
|
|
3
|
+
/** The structured-logging flags `askdb ask`, `askdb introspect` and `askdb rag` share. */
|
|
4
|
+
export type CliLoggingFlags = {
|
|
5
|
+
verbose?: boolean;
|
|
6
|
+
logLevel?: string;
|
|
7
|
+
logFile?: string;
|
|
8
|
+
logStdout?: boolean;
|
|
9
|
+
correlationId?: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* `--log-level`, else `logging.level` from askdb.config.*, else `info` when -v, --log-file or
|
|
13
|
+
* --log-stdout asks for output, else silent.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveCliLogLevel(flags: CliLoggingFlags, runtimeConfig: AskDbRuntimeConfig): AskDbLogLevel;
|
|
16
|
+
/** The run's logger: each flag first, then `logging` in askdb.config.*. */
|
|
17
|
+
export declare function createCliLogger(flags: CliLoggingFlags, runtimeConfig: AskDbRuntimeConfig, level?: AskDbLogLevel): AskDbLogger;
|
|
18
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAGrB,0FAA0F;AAC1F,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,GAAG,aAAa,CAc3G;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,kBAAkB,EACjC,KAAK,GAAE,aAAwD,GAC9D,WAAW,CAOb"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { createAskDbLogger, formatSupportedAskDbLogLevels, isSupportedAskDbLogLevel, } from "@askdb/core";
|
|
3
|
+
import { labelled } from "./error-values.js";
|
|
4
|
+
/**
|
|
5
|
+
* `--log-level`, else `logging.level` from askdb.config.*, else `info` when -v, --log-file or
|
|
6
|
+
* --log-stdout asks for output, else silent.
|
|
7
|
+
*/
|
|
8
|
+
export function resolveCliLogLevel(flags, runtimeConfig) {
|
|
9
|
+
if (flags.logLevel !== undefined && flags.logLevel !== "") {
|
|
10
|
+
const level = flags.logLevel.toLowerCase();
|
|
11
|
+
if (!isSupportedAskDbLogLevel(level)) {
|
|
12
|
+
throw new Error(`${labelled("Invalid --log-level", flags.logLevel)} (expected one of ${formatSupportedAskDbLogLevels()})`);
|
|
13
|
+
}
|
|
14
|
+
return level;
|
|
15
|
+
}
|
|
16
|
+
const configured = runtimeConfig.logging.level?.toLowerCase();
|
|
17
|
+
if (configured && isSupportedAskDbLogLevel(configured))
|
|
18
|
+
return configured;
|
|
19
|
+
if (flags.verbose || flags.logFile || flags.logStdout)
|
|
20
|
+
return "info";
|
|
21
|
+
return "silent";
|
|
22
|
+
}
|
|
23
|
+
/** The run's logger: each flag first, then `logging` in askdb.config.*. */
|
|
24
|
+
export function createCliLogger(flags, runtimeConfig, level = resolveCliLogLevel(flags, runtimeConfig)) {
|
|
25
|
+
return createAskDbLogger({
|
|
26
|
+
correlationId: flags.correlationId ?? runtimeConfig.logging.correlationId ?? randomUUID(),
|
|
27
|
+
level,
|
|
28
|
+
logFile: flags.logFile ?? runtimeConfig.logging.logFile,
|
|
29
|
+
logStdout: flags.logStdout ?? runtimeConfig.logging.logStdout,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,wBAAwB,GAGzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAW7C;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAsB,EAAE,aAAiC;IAC1F,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,qBAAqB,6BAA6B,EAAE,GAAG,CAC1G,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;IAC9D,IAAI,UAAU,IAAI,wBAAwB,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAC1E,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC;IACrE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAC7B,KAAsB,EACtB,aAAiC,EACjC,QAAuB,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC;IAE/D,OAAO,iBAAiB,CAAC;QACvB,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,aAAa,IAAI,UAAU,EAAE;QACzF,KAAK;QACL,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO;QACvD,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,aAAa,CAAC,OAAO,CAAC,SAAS;KAC9D,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AskDbError } from "@askdb/core";
|
|
2
|
+
/** Thrown when a command needs a project config and the working directory has none. */
|
|
3
|
+
export declare class MissingAskDbConfigError extends AskDbError {
|
|
4
|
+
constructor(cwd: string);
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Loads `.env` + the project config and installs the runtime snapshot. Each command calls this
|
|
8
|
+
* only on the path that reads config, so `--help`, `--version`, `init`, and `bundle` work in a
|
|
9
|
+
* directory without one. A config that exists but fails to load throws its load error.
|
|
10
|
+
*/
|
|
11
|
+
export declare function requireAskDbConfig(): void;
|
|
12
|
+
//# sourceMappingURL=project-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,uFAAuF;AACvF,qBAAa,uBAAwB,SAAQ,UAAU;gBACzC,GAAG,EAAE,MAAM;CAIxB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { bootstrapAskDbEnv, discoverAskDbConfigPath } from "@askdb/config";
|
|
2
|
+
import { AskDbError } from "@askdb/core";
|
|
3
|
+
/** Thrown when a command needs a project config and the working directory has none. */
|
|
4
|
+
export class MissingAskDbConfigError extends AskDbError {
|
|
5
|
+
constructor(cwd) {
|
|
6
|
+
super(`No askdb.config.* or .config/askdb.* found in ${cwd}. Run \`npx askdb init\` to create one.`);
|
|
7
|
+
this.name = "MissingAskDbConfigError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Loads `.env` + the project config and installs the runtime snapshot. Each command calls this
|
|
12
|
+
* only on the path that reads config, so `--help`, `--version`, `init`, and `bundle` work in a
|
|
13
|
+
* directory without one. A config that exists but fails to load throws its load error.
|
|
14
|
+
*/
|
|
15
|
+
export function requireAskDbConfig() {
|
|
16
|
+
const cwd = process.cwd();
|
|
17
|
+
if (!discoverAskDbConfigPath(cwd))
|
|
18
|
+
throw new MissingAskDbConfigError(cwd);
|
|
19
|
+
bootstrapAskDbEnv({ cwd });
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=project-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-config.js","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,uFAAuF;AACvF,MAAM,OAAO,uBAAwB,SAAQ,UAAU;IACrD,YAAY,GAAW;QACrB,KAAK,CAAC,iDAAiD,GAAG,yCAAyC,CAAC,CAAC;QACrG,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC1E,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/rag.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag.d.ts","sourceRoot":"","sources":["../src/rag.ts"],"names":[],"mappings":"AAwFA,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBxE"}
|