@intentic/fileq 1.318.0 → 1.320.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.
Files changed (84) hide show
  1. package/NOTICE +4 -4
  2. package/README.md +16 -10
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js +4 -6
  5. package/dist/app.js.map +1 -1
  6. package/dist/commands/derive.command.js +1 -1
  7. package/dist/commands/derive.command.js.map +1 -1
  8. package/dist/commands/read.command.d.ts.map +1 -1
  9. package/dist/commands/read.command.js +26 -45
  10. package/dist/commands/read.command.js.map +1 -1
  11. package/dist/lib/check/{docx.d.ts → check-docx.d.ts} +1 -1
  12. package/dist/lib/check/check-docx.d.ts.map +1 -0
  13. package/dist/lib/check/{docx.js → check-docx.js} +46 -14
  14. package/dist/lib/check/check-docx.js.map +1 -0
  15. package/dist/lib/check/{pdf.d.ts → check-pdf.d.ts} +1 -1
  16. package/dist/lib/check/check-pdf.d.ts.map +1 -0
  17. package/dist/lib/check/{pdf.js → check-pdf.js} +4 -2
  18. package/dist/lib/check/check-pdf.js.map +1 -0
  19. package/dist/lib/check/{pptx.d.ts → check-pptx.d.ts} +1 -1
  20. package/dist/lib/check/check-pptx.d.ts.map +1 -0
  21. package/dist/lib/check/{pptx.js → check-pptx.js} +18 -5
  22. package/dist/lib/check/check-pptx.js.map +1 -0
  23. package/dist/lib/check/{xlsx.d.ts → check-xlsx.d.ts} +1 -1
  24. package/dist/lib/check/check-xlsx.d.ts.map +1 -0
  25. package/dist/lib/check/{xlsx.js → check-xlsx.js} +17 -6
  26. package/dist/lib/check/check-xlsx.js.map +1 -0
  27. package/dist/lib/check/check.js +4 -4
  28. package/dist/lib/check/check.js.map +1 -1
  29. package/dist/lib/content-cache.d.ts +12 -0
  30. package/dist/lib/content-cache.d.ts.map +1 -0
  31. package/dist/lib/content-cache.js +33 -0
  32. package/dist/lib/content-cache.js.map +1 -0
  33. package/dist/lib/derive.d.ts +10 -0
  34. package/dist/lib/derive.d.ts.map +1 -1
  35. package/dist/lib/derive.js +40 -4
  36. package/dist/lib/derive.js.map +1 -1
  37. package/dist/lib/sidecar.d.ts +11 -2
  38. package/dist/lib/sidecar.d.ts.map +1 -1
  39. package/dist/lib/sidecar.js +28 -16
  40. package/dist/lib/sidecar.js.map +1 -1
  41. package/dist/skill.d.ts.map +1 -1
  42. package/dist/skill.js +8 -7
  43. package/dist/skill.js.map +1 -1
  44. package/package.json +7 -7
  45. package/src/app.ts +4 -6
  46. package/src/cli.integration.test.ts +52 -29
  47. package/src/commands/check.command.ts +1 -1
  48. package/src/commands/derive.command.ts +1 -1
  49. package/src/commands/read.command.ts +30 -52
  50. package/src/lib/archives.ts +1 -1
  51. package/src/lib/check/{docx.ts → check-docx.ts} +112 -27
  52. package/src/lib/check/{pdf.ts → check-pdf.ts} +23 -4
  53. package/src/lib/check/{pptx.ts → check-pptx.ts} +48 -11
  54. package/src/lib/check/{xlsx.ts → check-xlsx.ts} +20 -6
  55. package/src/lib/check/check.test.ts +99 -27
  56. package/src/lib/check/check.ts +4 -4
  57. package/src/lib/content-cache.ts +58 -0
  58. package/src/lib/derive.integration.test.ts +198 -0
  59. package/src/lib/derive.ts +69 -7
  60. package/src/lib/derivers/archive.ts +1 -1
  61. package/src/lib/derivers/load-cost.test.ts +1 -1
  62. package/src/lib/derivers/pdf.ts +1 -1
  63. package/src/lib/derivers/xlsx.ts +1 -1
  64. package/src/lib/sidecar.ts +42 -22
  65. package/src/render.integration.test.ts +80 -56
  66. package/src/skill.ts +8 -7
  67. package/dist/commands/sweep.command.d.ts +0 -3
  68. package/dist/commands/sweep.command.d.ts.map +0 -1
  69. package/dist/commands/sweep.command.js +0 -41
  70. package/dist/commands/sweep.command.js.map +0 -1
  71. package/dist/lib/check/docx.d.ts.map +0 -1
  72. package/dist/lib/check/docx.js.map +0 -1
  73. package/dist/lib/check/pdf.d.ts.map +0 -1
  74. package/dist/lib/check/pdf.js.map +0 -1
  75. package/dist/lib/check/pptx.d.ts.map +0 -1
  76. package/dist/lib/check/pptx.js.map +0 -1
  77. package/dist/lib/check/xlsx.d.ts.map +0 -1
  78. package/dist/lib/check/xlsx.js.map +0 -1
  79. package/dist/lib/sweep.d.ts +0 -7
  80. package/dist/lib/sweep.d.ts.map +0 -1
  81. package/dist/lib/sweep.js +0 -56
  82. package/dist/lib/sweep.js.map +0 -1
  83. package/src/commands/sweep.command.ts +0 -48
  84. package/src/lib/sweep.ts +0 -72
package/NOTICE CHANGED
@@ -18,12 +18,12 @@ changed:
18
18
 
19
19
  src/skill-authoring.ts authoring rules, from
20
20
  docker/sandbox/skills/{pptx,docx,xlsx,pdf}/SKILL.md
21
- src/lib/check/pptx.ts geometry, crop and missing-media rules, from
21
+ src/lib/check/check-pptx.ts geometry, crop and missing-media rules, from
22
22
  surfsense_backend/app/artifacts/verification/formats/pptx.py
23
- src/lib/check/docx.ts the literal-bullet rule, from .../formats/docx.py
24
- src/lib/check/xlsx.ts error-value and missing-cached-value rules, from
23
+ src/lib/check/check-docx.ts the literal-bullet rule, from .../formats/docx.py
24
+ src/lib/check/check-xlsx.ts error-value and missing-cached-value rules, from
25
25
  .../formats/xlsx.py
26
- src/lib/check/pdf.ts blank-page and unembedded-font rules, from
26
+ src/lib/check/check-pdf.ts blank-page and unembedded-font rules, from
27
27
  .../formats/pdf.py
28
28
 
29
29
  The code in those files is written for fileq, in TypeScript; what it carries
package/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # fileq
2
2
 
3
- A CLI that shows an agent the contents of binary workspace files (Office documents, PDFs, images, audio, archives) as budgeted markdown, cached as sidecars, and checks and draws the documents an agent makes.
3
+ A CLI that shows an agent the contents of binary workspace files (Office documents, PDFs, images, audio, archives) as budgeted markdown, cached by content, and checks and draws the documents an agent makes.
4
4
 
5
5
  ```mermaid
6
6
  flowchart LR
7
7
  agent["Agent<br/>fileq read"] --> fileq(["fileq"])
8
8
  maker["Agent<br/>fileq check · render"] --> fileq
9
- daemon["Daemon<br/>derive · sweep"] --> fileq
9
+ daemon["Daemon<br/>derive"] --> fileq
10
10
  git["git diff · show<br/>textconv"] --> fileq
11
11
  fileq --> derivers["Derivers<br/>docx · pdf · xlsx · image …"]
12
12
  fileq --> sidecars["Sidecars<br/>.intentic/local/cache/derived"]
@@ -14,13 +14,18 @@ flowchart LR
14
14
  ```
15
15
 
16
16
  - An agent cannot `cat` a docx or the text layer of a PDF. `fileq <file>` prints a capsule line (title, format,
17
- token cost, derived or fresh), then the markdown clipped to `--budget` tokens, and names the sidecar that holds the
18
- whole text.
19
- - Each derivable file gets one sidecar at `.intentic/local/cache/derived/<path>.md`. It is fresh while the source's
20
- sha256 and the deriver's version stamp both match, so reading a file twice derives it once. Text is neutralized at
21
- write time, because a sidecar is later read as a plain file.
22
- - The daemon keeps sidecars converged in the background with `fileq derive` and `fileq sweep`
23
- (`_sandbox/sandbox/src/derived/`), and imports `./formats` and `./sidecar` so both sides agree on what is derivable.
17
+ token cost, derived or fresh), then the markdown clipped to `--budget` tokens, and names the file that holds the whole
18
+ text.
19
+ - Renderings are cached by content: keyed by the source's sha256 and the deriver's version stamp, never its path, so
20
+ a repeat read of unchanged content is instant, whether it is the same file, a copy or a move of it, or a file
21
+ outside the workspace. The entries live under `.intentic/local/cache/derived/.by-hash/`, or with no workspace under
22
+ `by-hash/` in `$FILEQ_HOME`, else `$XDG_CACHE_HOME/fileq`, else `~/.cache/fileq`. A cache that cannot be written costs the speed-up,
23
+ never the read.
24
+ - A workspace file also gets a sidecar at `.intentic/local/cache/derived/<path>.md`, fresh while its sha256 and the
25
+ stamp both match. Text is neutralized at write time, because a sidecar or a cache entry is later read as a plain
26
+ file.
27
+ - The daemon renders one file when asked with `fileq derive --json <path>` (`_sandbox/sandbox/src/derived/`), and
28
+ imports `./formats` and `./sidecar` so both sides agree on what is derivable.
24
29
  - In the sandbox image, `git diff` and `git show` on a document print its text through `fileq read --plain`, wired by
25
30
  `fileq git-attributes`.
26
31
  - `fileq check <file>` lints a docx, pptx, xlsx or pdf an agent produced and names each problem where a reader meets
@@ -54,7 +59,8 @@ there `fileq render` names the missing tool and prints `environment propose offi
54
59
  ## Key files
55
60
 
56
61
  - [src/app.ts](src/app.ts) — the command routes and the `--help` text an agent reads.
57
- - [src/lib/derive.ts](src/lib/derive.ts) — `ensureSidecar`: the pipeline `read`, `derive` and `sweep` all run.
62
+ - [src/lib/derive.ts](src/lib/derive.ts) — `ensureSidecar` and `renderByContent`: the pipeline `read` and `derive` both run.
63
+ - [src/lib/content-cache.ts](src/lib/content-cache.ts) — renderings keyed by content hash and deriver stamp.
58
64
  - [src/lib/formats.ts](src/lib/formats.ts) — `detectFormat`: magic bytes first, extension as fallback.
59
65
  - [src/lib/sidecar.ts](src/lib/sidecar.ts) — sidecar paths, front matter and the freshness rule.
60
66
  - [src/lib/check/check.ts](src/lib/check/check.ts) — `fileq check`: which formats have a checker; each format's rules sit beside it.
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,GAAG,6EAmBf,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,GAAG,6EAkBf,CAAC"}
package/dist/app.js CHANGED
@@ -5,18 +5,17 @@ import { deriveCommand } from "./commands/derive.command.js";
5
5
  import { gitAttributesCommand } from "./commands/git-attributes.command.js";
6
6
  import { readCommand } from "./commands/read.command.js";
7
7
  import { renderCommand } from "./commands/render.command.js";
8
- import { sweepCommand } from "./commands/sweep.command.js";
9
8
  const HELP = `fileq — binary workspace files as clean, budgeted markdown.
10
9
 
11
10
  Reads the formats an agent cannot: docx, xlsx, pptx, pdf (text layer), images
12
- (dimensions + EXIF), audio/video (duration + tags), html. Each workspace file
13
- gets a markdown SIDECAR under .intentic/local/cache/derived/<path>.md, kept
14
- fresh by content hash — reading a file twice derives once.
11
+ (dimensions + EXIF), audio/video (duration + tags), html. Renderings are cached
12
+ by content hash, so reading unchanged bytes again (the same file, a copy, a
13
+ download outside the workspace) is instant; each workspace file also gets a
14
+ markdown SIDECAR under .intentic/local/cache/derived/<path>.md.
15
15
 
16
16
  fileq <file> print it as markdown (default: read), budgeted
17
17
  fileq read <file> --budget 8000
18
18
  fileq derive <file…> converge named files' sidecars (stale→derive, gone→remove)
19
- fileq sweep converge the whole workspace, prune orphaned sidecars
20
19
  fileq read --plain <f> the markdown alone, for a program; git's textconv driver
21
20
  fileq git-attributes the gitattributes that route documents through it
22
21
 
@@ -43,7 +42,6 @@ export const app = buildApplication(buildRouteMap({
43
42
  check: checkCommand,
44
43
  render: renderCommand,
45
44
  derive: deriveCommand,
46
- sweep: sweepCommand,
47
45
  gitAttributes: gitAttributesCommand,
48
46
  },
49
47
  defaultCommand: "read",
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4DA8B+C,CAAC;AAE7D,MAAM,CAAC,MAAM,GAAG,GAAG,gBAAgB,CAC/B,aAAa,CAAC;IACV,MAAM,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,YAAY;QACnB,aAAa,EAAE,oBAAoB;KACtC;IACD,cAAc,EAAE,MAAM;IACtB,IAAI,EAAE,EAAE,KAAK,EAAE,2EAA2E,EAAE,eAAe,EAAE,IAAI,EAAE;CACtH,CAAC,EACF;IACI,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,EAAE,cAAc,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE;IAChE,OAAO,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE;IAC/C,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;CAC7B,CACJ,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4DA8B+C,CAAC;AAE7D,MAAM,CAAC,MAAM,GAAG,GAAG,gBAAgB,CAC/B,aAAa,CAAC;IACV,MAAM,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,aAAa;QACrB,aAAa,EAAE,oBAAoB;KACtC;IACD,cAAc,EAAE,MAAM;IACtB,IAAI,EAAE,EAAE,KAAK,EAAE,2EAA2E,EAAE,eAAe,EAAE,IAAI,EAAE;CACtH,CAAC,EACF;IACI,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,EAAE,cAAc,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE;IAChE,OAAO,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE;IAC/C,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;CAC7B,CACJ,CAAC"}
@@ -30,7 +30,7 @@ export const deriveCommand = buildCommand({
30
30
  return;
31
31
  }
32
32
  if (files.length === 0) {
33
- this.process.stdout.write("fileq: derive takes file paths (or run `fileq sweep` for the whole workspace)\n");
33
+ this.process.stdout.write("fileq: derive takes file paths\n");
34
34
  process.exitCode = 2;
35
35
  return;
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"derive.command.js","sourceRoot":"","sources":["../../src/commands/derive.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"derive.command.js","sourceRoot":"","sources":["../../src/commands/derive.command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"read.command.d.ts","sourceRoot":"","sources":["../../src/commands/read.command.ts"],"names":[],"mappings":"AAQA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAalE,eAAO,MAAM,WAAW,iDAwCtB,CAAC"}
1
+ {"version":3,"file":"read.command.d.ts","sourceRoot":"","sources":["../../src/commands/read.command.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAWlE,eAAO,MAAM,WAAW,iDA2CtB,CAAC"}
@@ -1,15 +1,10 @@
1
- import { createHash } from "node:crypto";
2
- import { mkdir, writeFile } from "node:fs/promises";
3
- import { basename, join, resolve } from "node:path";
4
- import { toolOutDir } from "@intentic/agent-cli/env";
1
+ import { basename, resolve } from "node:path";
5
2
  import { countParser } from "@intentic/agent-cli/flags";
6
3
  import { capsule, clip } from "@intentic/agent-cli/output";
7
4
  import { estimateTokens } from "@intentic/base/format";
8
5
  import { buildCommand } from "@stricli/core";
9
- import { errorMessage } from "@intentic/base/errors";
10
- import { deriverStamp, neutralizeDoc } from "../lib/derivers/deriver.js";
11
- import { detectFormat } from "../lib/formats.js";
12
- import { DERIVERS, ensureSidecar } from "../lib/derive.js";
6
+ import { deriverStamp } from "../lib/derivers/deriver.js";
7
+ import { DERIVERS, ensureSidecar, renderByContent } from "../lib/derive.js";
13
8
  import { workspaceRoot } from "../lib/env.js";
14
9
  export const readCommand = buildCommand({
15
10
  docs: { brief: "One file as clean markdown: budgeted on stdout, whole in its sidecar" },
@@ -17,7 +12,7 @@ export const readCommand = buildCommand({
17
12
  flags: {
18
13
  budget: { kind: "parsed", parse: countParser, default: "4000", brief: "Max stdout tokens; 0 prints only the capsule" },
19
14
  json: { kind: "boolean", default: false, brief: "Machine-readable result on stdout" },
20
- plain: { kind: "boolean", default: false, brief: "The markdown alone, whole and unbudgeted; nothing saved for a file outside the workspace (git textconv)" },
15
+ plain: { kind: "boolean", default: false, brief: "The markdown alone, whole and unbudgeted (git textconv)" },
21
16
  },
22
17
  positional: {
23
18
  kind: "tuple",
@@ -27,8 +22,7 @@ export const readCommand = buildCommand({
27
22
  async func(flags, file) {
28
23
  const absPath = resolve(file);
29
24
  const root = workspaceRoot();
30
- const save = !flags.plain;
31
- const result = root === undefined ? await readOutsideWorkspace(absPath, save) : await readInWorkspace(root, absPath, save);
25
+ const result = root === undefined ? await readOutsideWorkspace(undefined, absPath) : await readInWorkspace(root, absPath);
32
26
  if (result === undefined) {
33
27
  process.exitCode = 1;
34
28
  return;
@@ -42,18 +36,22 @@ export const readCommand = buildCommand({
42
36
  return;
43
37
  }
44
38
  const fields = [result.title ?? basename(absPath), result.format, `${result.tokens} tokens`, result.source];
45
- this.process.stdout.write(capsule("fileq", fields, result.notes));
46
- this.process.stdout.write(`saved: ${result.savedPath}\n`);
39
+ const notes = result.savedPath === undefined ? [...result.notes, "nothing saved: the rendering cache could not be written"] : result.notes;
40
+ this.process.stdout.write(capsule("fileq", fields, notes));
41
+ if (result.savedPath !== undefined) {
42
+ this.process.stdout.write(`saved: ${result.savedPath}\n`);
43
+ }
47
44
  if (flags.budget > 0 && result.body !== "") {
45
+ const whole = result.savedPath ?? `the output of \`fileq read --plain ${absPath}\``;
48
46
  this.process.stdout.write("---\n");
49
- this.process.stdout.write(withFinalNewline(clip(result.body, flags.budget, result.savedPath, "document")));
47
+ this.process.stdout.write(withFinalNewline(clip(result.body, flags.budget, whole, "document")));
50
48
  }
51
49
  },
52
50
  });
53
- const readInWorkspace = async (root, absPath, save) => {
51
+ const readInWorkspace = async (root, absPath) => {
54
52
  const outcome = await ensureSidecar(root, absPath);
55
53
  if (outcome.kind === "skipped" && outcome.reason === "outside-workspace") {
56
- return readOutsideWorkspace(absPath, save);
54
+ return readOutsideWorkspace(root, absPath);
57
55
  }
58
56
  return fromOutcome(outcome);
59
57
  };
@@ -88,38 +86,21 @@ const fromOutcome = (outcome) => {
88
86
  }
89
87
  }
90
88
  };
91
- const readOutsideWorkspace = async (absPath, save) => {
92
- const format = await detectFormat(absPath).catch(() => undefined);
93
- if (format === undefined) {
94
- process.stdout.write(`fileq: cannot read ${absPath}: unsupported or missing\n`);
89
+ const readOutsideWorkspace = async (root, absPath) => {
90
+ const outcome = await renderByContent(root, absPath);
91
+ if (outcome.kind === "failed") {
92
+ process.stdout.write(`fileq: cannot read ${absPath}: ${outcome.reason}\n`);
95
93
  return undefined;
96
94
  }
97
- let doc;
98
- try {
99
- doc = neutralizeDoc(await DERIVERS[format].derive(absPath));
100
- }
101
- catch (error) {
102
- process.stdout.write(`fileq: cannot read ${absPath}: derive-failed (${format}): ${errorMessage(error).split("\n")[0]}\n`);
103
- return undefined;
104
- }
105
- const outDir = toolOutDir("fileq");
106
- const hash = createHash("sha256").update(absPath).digest("hex").slice(0, 8);
107
- const savedPath = join(outDir, `${basename(absPath)
108
- .toLowerCase()
109
- .replaceAll(/[^a-z0-9.]+/g, "-")}-${hash}.md`);
110
- if (save) {
111
- await mkdir(outDir, { recursive: true });
112
- await writeFile(savedPath, `${doc.markdown}\n`);
113
- }
114
95
  return {
115
- format,
116
- deriver: deriverStamp(DERIVERS[format]),
117
- body: doc.markdown,
118
- tokens: estimateTokens(doc.markdown),
119
- savedPath,
120
- source: "derived",
121
- title: doc.title,
122
- notes: doc.notes,
96
+ format: outcome.format,
97
+ deriver: deriverStamp(DERIVERS[outcome.format]),
98
+ body: outcome.doc.markdown,
99
+ tokens: estimateTokens(outcome.doc.markdown),
100
+ savedPath: outcome.cachedPath,
101
+ source: outcome.kind,
102
+ title: outcome.doc.title,
103
+ notes: outcome.doc.notes,
123
104
  };
124
105
  };
125
106
  const withFinalNewline = (text) => (text.endsWith("\n") ? text : `${text}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"read.command.js","sourceRoot":"","sources":["../../src/commands/read.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read.command.js","sourceRoot":"","sources":["../../src/commands/read.command.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { type CheckReport } from "./finding.js";
2
2
  export declare const checkDocx: (bytes: Uint8Array) => CheckReport;
3
- //# sourceMappingURL=docx.d.ts.map
3
+ //# sourceMappingURL=check-docx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-docx.d.ts","sourceRoot":"","sources":["../../../src/lib/check/check-docx.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyD,KAAK,WAAW,EAAgB,MAAM,cAAc,CAAC;AAicrH,eAAO,MAAM,SAAS,UAAW,UAAU,KAAG,WA6D7C,CAAC"}
@@ -58,7 +58,11 @@ const locate = (paragraphs, levels) => {
58
58
  const text = paragraphText(paragraph);
59
59
  const heading = headingOf(paragraph, levels);
60
60
  const number = index + 1;
61
- const label = text.trim() !== "" ? `paragraph ${number} · ${excerpt(text, 40)}` : lastHeading === undefined ? `paragraph ${number}` : `paragraph ${number} · under ${lastHeading}`;
61
+ const label = text.trim() !== ""
62
+ ? `paragraph ${number} · ${excerpt(text, 40)}`
63
+ : lastHeading === undefined
64
+ ? `paragraph ${number}`
65
+ : `paragraph ${number} · under ${lastHeading}`;
62
66
  located.push({ paragraph, number, text, heading });
63
67
  whereOf.set(paragraph, label);
64
68
  if (heading !== undefined && text.trim() !== "") {
@@ -91,7 +95,12 @@ const stepField = (node, open, fields, where) => {
91
95
  }
92
96
  else if (type === "end") {
93
97
  open.pop();
94
- fields.push({ instruction: current.instruction.trim(), result: current.result, hasResult: current.separated && current.result.trim() !== "", where: current.where });
98
+ fields.push({
99
+ instruction: current.instruction.trim(),
100
+ result: current.result,
101
+ hasResult: current.separated && current.result.trim() !== "",
102
+ where: current.where,
103
+ });
95
104
  }
96
105
  };
97
106
  const fieldsIn = (body, whereOfNode) => {
@@ -132,19 +141,29 @@ const bookmarkArgument = (instruction) => {
132
141
  };
133
142
  const fieldFindings = (fields, bookmarks, updatesOnOpen) => fields.flatMap((field) => {
134
143
  const keyword = (field.instruction.split(/\s+/)[0] ?? "").toUpperCase();
135
- if (field.result.trim().startsWith('Error!')) {
136
- return [error("field-error", field.where, `the ${keyword} field shows ${excerpt(field.result)}: fix what it points at, then update fields`)];
144
+ if (field.result.trim().startsWith("Error!")) {
145
+ return [
146
+ error("field-error", field.where, `the ${keyword} field shows ${excerpt(field.result)}: fix what it points at, then update fields`),
147
+ ];
137
148
  }
138
149
  const bookmark = bookmarkArgument(field.instruction);
139
150
  if (bookmark !== undefined && !bookmarks.has(bookmark) && !BUILT_IN_ANCHORS.has(bookmark)) {
140
- return [error("broken-reference", field.where, `the ${keyword} field points to bookmark "${bookmark}", which is not in the document: Word shows "Error! Reference source not found."`)];
151
+ return [
152
+ error("broken-reference", field.where, `the ${keyword} field points to bookmark "${bookmark}", which is not in the document: Word shows "Error! Reference source not found."`),
153
+ ];
141
154
  }
142
155
  if (keyword === "MERGEFIELD") {
143
- return [warning("merge-field", field.where, `a mail-merge field is left in (${field.instruction}): it prints its placeholder, not a value`)];
156
+ return [
157
+ warning("merge-field", field.where, `a mail-merge field is left in (${field.instruction}): it prints its placeholder, not a value`),
158
+ ];
144
159
  }
145
160
  if (keyword === "TOC" && !field.hasResult) {
146
- const when = updatesOnOpen ? "Word offers to update fields when the file opens" : "nothing fills it until someone updates fields (F9 in Word)";
147
- return [warning("empty-toc", field.where, `the table of contents has no entries saved: ${when}, and previews and LibreOffice show it empty`)];
161
+ const when = updatesOnOpen
162
+ ? "Word offers to update fields when the file opens"
163
+ : "nothing fills it until someone updates fields (F9 in Word)";
164
+ return [
165
+ warning("empty-toc", field.where, `the table of contents has no entries saved: ${when}, and previews and LibreOffice show it empty`),
166
+ ];
148
167
  }
149
168
  if (!field.hasResult && keyword !== "" && !COMPUTED_FIELDS.has(keyword) && keyword !== "TOC") {
150
169
  return [warning("empty-field", field.where, `the ${keyword} field has no saved result, so it shows blank until fields are updated`)];
@@ -174,7 +193,9 @@ const referenceFinding = (pkg, node, relationship, id, where) => {
174
193
  return error(isImage ? "missing-image" : "missing-part", where, `${isImage ? "an image" : node.name} refers to ${id}, which the document does not define: it shows as missing`);
175
194
  }
176
195
  if (relationship.external) {
177
- return isImage ? warning("linked-image", where, `an image is linked from outside the file (${relationship.target}), so it will not show on anyone else's machine; embed it`) : undefined;
196
+ return isImage
197
+ ? warning("linked-image", where, `an image is linked from outside the file (${relationship.target}), so it will not show on anyone else's machine; embed it`)
198
+ : undefined;
178
199
  }
179
200
  if (pkg.has(relationship.target)) {
180
201
  return undefined;
@@ -214,7 +235,9 @@ const wideImageFindings = (context, body, owner) => {
214
235
  return [];
215
236
  }
216
237
  const where = paragraph === undefined ? "" : (context.whereOf.get(paragraph) ?? "");
217
- return [warning("wide-image", where, `a picture is ${inches(cx)} wide in a ${inches(width)} text column, so it runs into the margin or is cut off; scale it to fit`)];
238
+ return [
239
+ warning("wide-image", where, `a picture is ${inches(cx)} wide in a ${inches(width)} text column, so it runs into the margin or is cut off; scale it to fit`),
240
+ ];
218
241
  });
219
242
  };
220
243
  const draftFindings = (context, body) => {
@@ -265,12 +288,17 @@ const linkFindings = (body, bookmarks, whereOfNode) => descendantsNamed(body, "w
265
288
  if (anchor === undefined || bookmarks.has(anchor) || BUILT_IN_ANCHORS.has(anchor)) {
266
289
  return [];
267
290
  }
268
- return [error("broken-link", whereOfNode(link), `the link ${excerpt(textIn(link, "w:t"))} points to bookmark "${anchor}", which is not in the document, so clicking it goes nowhere`)];
291
+ return [
292
+ error("broken-link", whereOfNode(link), `the link ${excerpt(textIn(link, "w:t"))} points to bookmark "${anchor}", which is not in the document, so clicking it goes nowhere`),
293
+ ];
269
294
  });
270
295
  const storyFindings = (context, stories) => stories.flatMap((story) => {
271
296
  const label = story.part.replace(/^word\//, "").replace(/\.xml$/, "");
272
297
  const referenced = new Set();
273
- return [...referenceFindings(context, story.part, story.tree, () => label, referenced), ...missingTargetFindings(context.pkg, story.part, label, referenced)];
298
+ return [
299
+ ...referenceFindings(context, story.part, story.tree, () => label, referenced),
300
+ ...missingTargetFindings(context.pkg, story.part, label, referenced),
301
+ ];
274
302
  });
275
303
  const openDocx = (bytes) => {
276
304
  try {
@@ -278,7 +306,11 @@ const openDocx = (bytes) => {
278
306
  }
279
307
  catch (cause) {
280
308
  if (cause instanceof NotAPackage) {
281
- return { format: "docx", findings: [error("unreadable", "", `${cause.message}: this is not a Word file (or it is password-protected)`)], notes: [] };
309
+ return {
310
+ format: "docx",
311
+ findings: [error("unreadable", "", `${cause.message}: this is not a Word file (or it is password-protected)`)],
312
+ notes: [],
313
+ };
282
314
  }
283
315
  throw cause;
284
316
  }
@@ -326,4 +358,4 @@ export const checkDocx = (bytes) => {
326
358
  notes,
327
359
  };
328
360
  };
329
- //# sourceMappingURL=docx.js.map
361
+ //# sourceMappingURL=check-docx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-docx.js","sourceRoot":"","sources":["../../../src/lib/check/check-docx.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { type CheckReport } from "./finding.js";
2
2
  export declare const checkPdf: (bytes: Uint8Array) => Promise<CheckReport>;
3
- //# sourceMappingURL=pdf.d.ts.map
3
+ //# sourceMappingURL=check-pdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-pdf.d.ts","sourceRoot":"","sources":["../../../src/lib/check/check-pdf.ts"],"names":[],"mappings":"AAUA,OAAO,EAA0B,KAAK,WAAW,EAAgB,MAAM,cAAc,CAAC;AAmLtF,eAAO,MAAM,QAAQ,UAAiB,UAAU,KAAG,OAAO,CAAC,WAAW,CAyDrE,CAAC"}
@@ -107,7 +107,9 @@ const openPdf = async (bytes) => {
107
107
  return await getDocumentProxy(bytes, { verbosity: 0 });
108
108
  }
109
109
  catch (cause) {
110
- const reason = cause instanceof Error && cause.name === "PasswordException" ? "it is password-protected, so nothing past the password can be checked" : `it is not a readable PDF (${cause instanceof Error ? cause.message : String(cause)})`;
110
+ const reason = cause instanceof Error && cause.name === "PasswordException"
111
+ ? "it is password-protected, so nothing past the password can be checked"
112
+ : `it is not a readable PDF (${cause instanceof Error ? cause.message : String(cause)})`;
111
113
  return { format: "pdf", findings: [error("unreadable", "", reason)], notes: [] };
112
114
  }
113
115
  };
@@ -157,4 +159,4 @@ export const checkPdf = async (bytes) => {
157
159
  }
158
160
  return { format: "pdf", extent: plural(total, "page"), findings, notes };
159
161
  };
160
- //# sourceMappingURL=pdf.js.map
162
+ //# sourceMappingURL=check-pdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-pdf.js","sourceRoot":"","sources":["../../../src/lib/check/check-pdf.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { type CheckReport } from "./finding.js";
2
2
  export declare const checkPptx: (bytes: Uint8Array) => CheckReport;
3
- //# sourceMappingURL=pptx.d.ts.map
3
+ //# sourceMappingURL=check-pptx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-pptx.d.ts","sourceRoot":"","sources":["../../../src/lib/check/check-pptx.ts"],"names":[],"mappings":"AAWA,OAAO,EAAgD,KAAK,WAAW,EAAgB,MAAM,cAAc,CAAC;AAylB5G,eAAO,MAAM,SAAS,UAAW,UAAU,KAAG,WAiE7C,CAAC"}
@@ -177,7 +177,9 @@ const paragraphsOf = (txBody, style, fontScale, spacingReduction) => childrenNam
177
177
  ...style.listStyles.map((listStyle) => () => intAttr(childAt(listStyle, `a:lvl${level}pPr`, "a:defRPr"), attribute)),
178
178
  ]);
179
179
  const runSizes = runs.flatMap((run) => intAttr(childNamed(run, "a:rPr"), "sz") ?? []);
180
- const size = runSizes.length > 0 ? Math.max(...runSizes) : (intAttr(childNamed(p, "a:endParaRPr"), "sz") ?? inherited("sz") ?? DEFAULT_SIZE_HUNDREDTHS);
180
+ const size = runSizes.length > 0
181
+ ? Math.max(...runSizes)
182
+ : (intAttr(childNamed(p, "a:endParaRPr"), "sz") ?? inherited("sz") ?? DEFAULT_SIZE_HUNDREDTHS);
181
183
  const bold = runs.some((run) => childNamed(run, "a:rPr")?.attrs["b"] === "1") || (runs.length > 0 && inherited("b") === 1);
182
184
  const spacing = (name) => firstOf([
183
185
  () => hundredthsAt(pPr, [name, "a:spcPts"], "val"),
@@ -245,7 +247,9 @@ const overflowFindings = (drawing, chain, box, where, context) => {
245
247
  const needed = estimate.heightPt * EMU_PER_PT + body.top + body.bottom;
246
248
  if (body.autofit === "grow") {
247
249
  return box.y + needed > context.height * 1.02
248
- ? [warning("text-overflow", where, `the box grows to fit its text, and about ${plural(estimate.lines, "line")} of ${estimate.sizePt} pt take it past the bottom of the slide ${look}`)]
250
+ ? [
251
+ warning("text-overflow", where, `the box grows to fit its text, and about ${plural(estimate.lines, "line")} of ${estimate.sizePt} pt take it past the bottom of the slide ${look}`),
252
+ ]
249
253
  : [];
250
254
  }
251
255
  if (estimate.heightPt <= innerHeight * OVERFLOW_MARGIN) {
@@ -329,7 +333,12 @@ const pictureFindings = (picture, box, where, context) => {
329
333
  }
330
334
  const embed = childAt(blipFill, "a:blip")?.attrs["r:embed"];
331
335
  const relationship = embed === undefined ? undefined : context.pkg.rels(context.part).get(embed);
332
- if (box !== undefined && relationship !== undefined && !relationship.external && context.pkg.has(relationship.target) && box.cx > 0 && box.cy > 0) {
336
+ if (box !== undefined &&
337
+ relationship !== undefined &&
338
+ !relationship.external &&
339
+ context.pkg.has(relationship.target) &&
340
+ box.cx > 0 &&
341
+ box.cy > 0) {
333
342
  context.pictures.push({ where, media: relationship.target, cx: box.cx, cy: box.cy, crop: sides });
334
343
  }
335
344
  return [];
@@ -444,7 +453,11 @@ export const checkPptx = (bytes) => {
444
453
  }
445
454
  catch (cause) {
446
455
  if (cause instanceof NotAPackage) {
447
- return { format: "pptx", findings: [error("unreadable", "", `${cause.message}: this is not a PowerPoint file (or it is password-protected)`)], notes: [] };
456
+ return {
457
+ format: "pptx",
458
+ findings: [error("unreadable", "", `${cause.message}: this is not a PowerPoint file (or it is password-protected)`)],
459
+ notes: [],
460
+ };
448
461
  }
449
462
  throw cause;
450
463
  }
@@ -494,4 +507,4 @@ export const checkPptx = (bytes) => {
494
507
  findings.push(...stretchFindings(pkg, pictures));
495
508
  return { format: "pptx", extent: plural(slideIds.length, "slide"), findings, notes };
496
509
  };
497
- //# sourceMappingURL=pptx.js.map
510
+ //# sourceMappingURL=check-pptx.js.map