@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.
- package/NOTICE +4 -4
- package/README.md +16 -10
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +4 -6
- package/dist/app.js.map +1 -1
- package/dist/commands/derive.command.js +1 -1
- package/dist/commands/derive.command.js.map +1 -1
- package/dist/commands/read.command.d.ts.map +1 -1
- package/dist/commands/read.command.js +26 -45
- package/dist/commands/read.command.js.map +1 -1
- package/dist/lib/check/{docx.d.ts → check-docx.d.ts} +1 -1
- package/dist/lib/check/check-docx.d.ts.map +1 -0
- package/dist/lib/check/{docx.js → check-docx.js} +46 -14
- package/dist/lib/check/check-docx.js.map +1 -0
- package/dist/lib/check/{pdf.d.ts → check-pdf.d.ts} +1 -1
- package/dist/lib/check/check-pdf.d.ts.map +1 -0
- package/dist/lib/check/{pdf.js → check-pdf.js} +4 -2
- package/dist/lib/check/check-pdf.js.map +1 -0
- package/dist/lib/check/{pptx.d.ts → check-pptx.d.ts} +1 -1
- package/dist/lib/check/check-pptx.d.ts.map +1 -0
- package/dist/lib/check/{pptx.js → check-pptx.js} +18 -5
- package/dist/lib/check/check-pptx.js.map +1 -0
- package/dist/lib/check/{xlsx.d.ts → check-xlsx.d.ts} +1 -1
- package/dist/lib/check/check-xlsx.d.ts.map +1 -0
- package/dist/lib/check/{xlsx.js → check-xlsx.js} +17 -6
- package/dist/lib/check/check-xlsx.js.map +1 -0
- package/dist/lib/check/check.js +4 -4
- package/dist/lib/check/check.js.map +1 -1
- package/dist/lib/content-cache.d.ts +12 -0
- package/dist/lib/content-cache.d.ts.map +1 -0
- package/dist/lib/content-cache.js +33 -0
- package/dist/lib/content-cache.js.map +1 -0
- package/dist/lib/derive.d.ts +10 -0
- package/dist/lib/derive.d.ts.map +1 -1
- package/dist/lib/derive.js +40 -4
- package/dist/lib/derive.js.map +1 -1
- package/dist/lib/sidecar.d.ts +11 -2
- package/dist/lib/sidecar.d.ts.map +1 -1
- package/dist/lib/sidecar.js +28 -16
- package/dist/lib/sidecar.js.map +1 -1
- package/dist/skill.d.ts.map +1 -1
- package/dist/skill.js +8 -7
- package/dist/skill.js.map +1 -1
- package/package.json +7 -7
- package/src/app.ts +4 -6
- package/src/cli.integration.test.ts +52 -29
- package/src/commands/check.command.ts +1 -1
- package/src/commands/derive.command.ts +1 -1
- package/src/commands/read.command.ts +30 -52
- package/src/lib/archives.ts +1 -1
- package/src/lib/check/{docx.ts → check-docx.ts} +112 -27
- package/src/lib/check/{pdf.ts → check-pdf.ts} +23 -4
- package/src/lib/check/{pptx.ts → check-pptx.ts} +48 -11
- package/src/lib/check/{xlsx.ts → check-xlsx.ts} +20 -6
- package/src/lib/check/check.test.ts +99 -27
- package/src/lib/check/check.ts +4 -4
- package/src/lib/content-cache.ts +58 -0
- package/src/lib/derive.integration.test.ts +198 -0
- package/src/lib/derive.ts +69 -7
- package/src/lib/derivers/archive.ts +1 -1
- package/src/lib/derivers/load-cost.test.ts +1 -1
- package/src/lib/derivers/pdf.ts +1 -1
- package/src/lib/derivers/xlsx.ts +1 -1
- package/src/lib/sidecar.ts +42 -22
- package/src/render.integration.test.ts +80 -56
- package/src/skill.ts +8 -7
- package/dist/commands/sweep.command.d.ts +0 -3
- package/dist/commands/sweep.command.d.ts.map +0 -1
- package/dist/commands/sweep.command.js +0 -41
- package/dist/commands/sweep.command.js.map +0 -1
- package/dist/lib/check/docx.d.ts.map +0 -1
- package/dist/lib/check/docx.js.map +0 -1
- package/dist/lib/check/pdf.d.ts.map +0 -1
- package/dist/lib/check/pdf.js.map +0 -1
- package/dist/lib/check/pptx.d.ts.map +0 -1
- package/dist/lib/check/pptx.js.map +0 -1
- package/dist/lib/check/xlsx.d.ts.map +0 -1
- package/dist/lib/check/xlsx.js.map +0 -1
- package/dist/lib/sweep.d.ts +0 -7
- package/dist/lib/sweep.d.ts.map +0 -1
- package/dist/lib/sweep.js +0 -56
- package/dist/lib/sweep.js.map +0 -1
- package/src/commands/sweep.command.ts +0 -48
- 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
|
|
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
|
|
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
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
|
|
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
|
|
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":"
|
|
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.
|
|
13
|
-
|
|
14
|
-
|
|
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;
|
|
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
|
|
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":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAM9C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAU,EAAE;IACpD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACV,OAAO,WAAW,OAAO,CAAC,OAAO,OAAO,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,MAAM,UAAU,CAAC;QAC7F,KAAK,OAAO;YACR,OAAO,SAAS,OAAO,CAAC,OAAO,EAAE,CAAC;QACtC,KAAK,SAAS;YACV,OAAO,WAAW,OAAO,CAAC,OAAO,gBAAgB,CAAC;QACtD,KAAK,SAAS;YACV,OAAO,WAAW,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/D,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;IACtC,IAAI,EAAE,EAAE,KAAK,EAAE,mFAAmF,EAAE;IACpG,UAAU,EAAE;QACR,KAAK,EAAE;YACH,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE;SAC/E;QACD,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,sFAAsF,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;KAClL;IACD,KAAK,CAAC,IAAI,CAAuB,KAAkB,EAAE,GAAG,KAAe;QACnE,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mGAAmG,CAAC,CAAC;YAC/H,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,
|
|
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":"
|
|
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 {
|
|
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 {
|
|
10
|
-
import {
|
|
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
|
|
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
|
|
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
|
-
|
|
46
|
-
this.process.stdout.write(
|
|
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,
|
|
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
|
|
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(
|
|
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 (
|
|
92
|
-
const
|
|
93
|
-
if (
|
|
94
|
-
process.stdout.write(`fileq: cannot read ${absPath}:
|
|
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:
|
|
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":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"read.command.js","sourceRoot":"","sources":["../../src/commands/read.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -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() !== ""
|
|
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({
|
|
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(
|
|
136
|
-
return [
|
|
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 [
|
|
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 [
|
|
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
|
|
147
|
-
|
|
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
|
|
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 [
|
|
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 [
|
|
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 [
|
|
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 {
|
|
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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"}
|
|
@@ -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"
|
|
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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"}
|
|
@@ -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
|
|
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
|
-
? [
|
|
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 &&
|
|
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 {
|
|
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
|