dirsql 0.4.32 → 0.4.34

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.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Every config value in argv, in order (`--config X`, `--config=X`, `-c X`,
3
+ * `-c=X`, `-cX`), or the default when none are given.
4
+ */
5
+ export declare function configPathsFromArgv(argv: string[]): string[];
@@ -0,0 +1,31 @@
1
+ // The `-c`/`--config` flag is repeatable, so the scan collects every
2
+ // occurrence, in argv order.
3
+ /**
4
+ * Every config value in argv, in order (`--config X`, `--config=X`, `-c X`,
5
+ * `-c=X`, `-cX`), or the default when none are given.
6
+ */
7
+ export function configPathsFromArgv(argv) {
8
+ const paths = [];
9
+ let expectValue = false;
10
+ for (const a of argv) {
11
+ if (expectValue) {
12
+ paths.push(a);
13
+ expectValue = false;
14
+ }
15
+ else if (a === "--config" || a === "-c") {
16
+ expectValue = true;
17
+ }
18
+ else if (a.startsWith("--config=")) {
19
+ paths.push(a.slice("--config=".length));
20
+ }
21
+ else if (a.startsWith("-c")) {
22
+ const value = a.slice("-c".length);
23
+ paths.push(value.startsWith("=") ? value.slice("=".length) : value);
24
+ }
25
+ }
26
+ if (expectValue) {
27
+ // A bare trailing flag (no following value) yields "".
28
+ paths.push("");
29
+ }
30
+ return paths.length > 0 ? paths : ["./.dirsql.toml"];
31
+ }
@@ -7,45 +7,14 @@
7
7
  // resolved literal paths to the binary via repeatable `--extension` flags;
8
8
  // the binary then loads those and ignores the configs' own extension entries.
9
9
  //
10
- // The `-c`/`--config` flag is repeatable, so the scan collects every
11
- // occurrence, in argv order.
12
- //
13
10
  // Native-language configs (`.py`/`.js`/`.mjs`/`.cjs`) are untouched: the binary
14
11
  // dispatches those to `dirsql interpret`, whose handshake already carries
15
12
  // resolved paths.
16
13
  import { existsSync } from "node:fs";
14
+ import { configPathsFromArgv } from "./config-paths-from-argv.js";
17
15
  // Config extensions the binary dispatches to `dirsql interpret`; never
18
16
  // pre-resolved here (that path resolves via the handshake).
19
17
  const NATIVE_CONFIG_SUFFIXES = [".py", ".js", ".mjs", ".cjs"];
20
- /**
21
- * Every config value in argv, in order (`--config X`, `--config=X`, `-c X`,
22
- * `-c=X`, `-cX`), or the default when none are given.
23
- */
24
- function configPathsFromArgv(argv) {
25
- const paths = [];
26
- let expectValue = false;
27
- for (const a of argv) {
28
- if (expectValue) {
29
- paths.push(a);
30
- expectValue = false;
31
- }
32
- else if (a === "--config" || a === "-c") {
33
- expectValue = true;
34
- }
35
- else if (a.startsWith("--config=")) {
36
- paths.push(a.slice("--config=".length));
37
- }
38
- else if (a.startsWith("-c")) {
39
- const value = a.slice("-c".length);
40
- paths.push(value.startsWith("=") ? value.slice("=".length) : value);
41
- }
42
- }
43
- if (expectValue) {
44
- // A bare trailing flag (no following value) yields "".
45
- paths.push("");
46
- }
47
- return paths.length > 0 ? paths : ["./.dirsql.toml"];
48
- }
49
18
  /**
50
19
  * Return `argv` augmented with `--extension <path>[::entrypoint]` flags when a
51
20
  * TOML config names an extension by package name; otherwise return `argv`
@@ -483,6 +483,24 @@ dirsql: indexed 41231 files in 3m12s
483
483
 
484
484
  stdout is untouched — it carries the query result and nothing else.
485
485
 
486
+ A query gets the same treatment when it calls a
487
+ [worker-backed function](./config.md#dirsql-function). Those cost one round
488
+ trip per row, so a query that calls one over a whole corpus is the slowest
489
+ thing dirsql does:
490
+
491
+ ```
492
+ dirsql: running 9204 worker calls
493
+ ```
494
+
495
+ and, when the query ends:
496
+
497
+ ```
498
+ dirsql: ran 41231 worker calls in 2m41s
499
+ ```
500
+
501
+ A query that calls no worker prints nothing, whatever the setting — the
502
+ reporting only ever speaks when there is something to report.
503
+
486
504
  By default this is **terminal-only, and only for work slow enough to wonder
487
505
  about**: a phase that finishes in under half a second prints nothing at all,
488
506
  and a run whose stderr is a pipe or a file prints nothing regardless of how
@@ -133,6 +133,11 @@ process alive for the rest of the invocation, sending it every subsequent
133
133
  call — one process total, never one per row or per file. The worker is torn
134
134
  down when the invocation ends.
135
135
 
136
+ A query paying per-row round trips reports them on stderr while it runs
137
+ (`dirsql: running 9204 worker calls`), on the same terms as every other
138
+ [progress line](./cli.md#progress-reporting): terminal-only by default, silent
139
+ on a pipe, and gone before the result is printed.
140
+
136
141
  The `timeout` bounds each **round-trip call**, not the query: a query that
137
142
  calls the function on 10 000 rows is 10 000 individually timed calls. A call
138
143
  that times out, or a worker that crashes or closes its pipes, fails the query
@@ -408,6 +408,10 @@ one summary of what each cost:
408
408
  dirsql: indexed 41231 files in 3m12s
409
409
  ```
410
410
 
411
+ A `query` that calls a worker-backed function is reported the same way, as a
412
+ running count of round trips (`dirsql: running 9204 worker calls`) — the shape
413
+ `dirsql-plugin-embeddings` produces when it embeds a corpus one row at a time.
414
+
411
415
  This is terminal-only by default, and only for a phase that runs longer than
412
416
  half a second — a program whose stderr is a pipe, a file, or a log collector
413
417
  sees nothing, whatever the scan costs. Set `DIRSQL_PROGRESS=never` to
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dirsql",
3
- "version": "0.4.32",
3
+ "version": "0.4.34",
4
4
  "description": "Ephemeral SQL index over a local directory",
5
5
  "license": "MIT",
6
6
  "repository": "https://github.com/thekevinscott/dirsql",
@@ -213,10 +213,10 @@
213
213
  ]
214
214
  },
215
215
  "optionalDependencies": {
216
- "@dirsql/lib-linux-x64-gnu": "0.4.32",
217
- "@dirsql/lib-linux-arm64-gnu": "0.4.32",
218
- "@dirsql/lib-darwin-x64": "0.4.32",
219
- "@dirsql/lib-darwin-arm64": "0.4.32",
220
- "@dirsql/lib-win32-x64-msvc": "0.4.32"
216
+ "@dirsql/lib-linux-x64-gnu": "0.4.34",
217
+ "@dirsql/lib-linux-arm64-gnu": "0.4.34",
218
+ "@dirsql/lib-darwin-x64": "0.4.34",
219
+ "@dirsql/lib-darwin-arm64": "0.4.34",
220
+ "@dirsql/lib-win32-x64-msvc": "0.4.34"
221
221
  }
222
222
  }