Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.27.0

Saved articles retain the evidence behind their metadata. PDF capture improves reading order and reports uncertain layout.

- Keep observed titles, authors, dates, descriptions, standard page tags and bounded JSON-LD claims with their sources and selection rules. Dates without a timezone remain explicitly uncertain.
- Read separated PDF columns in order, preserve simple aligned tables and basic superscripts, and report layout losses as partial captures. Keep the original PDF for reference.
- Add public PDF bundle inspection and verification for source, Markdown, page references and image hashes, with bounded reads and typed capture errors.

## 0.26.3

SDK consumers can augment Node environment types without breaking isolated subprocesses.
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,14 @@ Wordcell keeps the record in Markdown files you own, rebuilds every index from t
The CLI and TypeScript SDK run with Bun. Install the versioned GitHub archive:

```sh
bun add --global --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.26.3/hraness-wordcell-0.26.3.tgz
bun add --global --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.27.0/hraness-wordcell-0.27.0.tgz
wordcell --help
```

Prefer npm? The same release is [mirrored there](https://www.npmjs.com/package/@hraness/wordcell):

```sh
npm install --global --ignore-scripts @hraness/wordcell@0.26.3
npm install --global --ignore-scripts @hraness/wordcell@0.27.0
wordcell --help
```

Expand Down Expand Up @@ -145,7 +145,7 @@ After trying the CLI, install the public Agent Skill into a compatible agent,
such as Claude Code, Codex, Cursor, or GitHub Copilot:

```sh
bunx skills add hraness/wordcell#v0.26.3 --skill wordcell
bunx skills add hraness/wordcell#v0.27.0 --skill wordcell
```

Then ask:
Expand Down Expand Up @@ -361,7 +361,7 @@ exist. [Graph queries and proof limits](https://github.com/hraness/wordcell/blob
Add the same immutable release to a Bun project:

```sh
bun add --exact --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.26.3/hraness-wordcell-0.26.3.tgz
bun add --exact --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.27.0/hraness-wordcell-0.27.0.tgz
```

The SDK provides read-only vault sessions, metadata queries, search, graph
Expand Down
1 change: 1 addition & 0 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 15 additions & 7 deletions dist/capture.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,23 @@ import {
captureSummary,
main,
runCapture
} from "./index-h9vyd03z.js";
import"./index-hacpnaew.js";
import"./index-k86wepd8.js";
} from "./index-58azscg5.js";
import"./index-fd8j527z.js";
import"./index-h2w7syy2.js";
import {
adapterCapabilities,
inspectClipEnvironment,
renderDoctorReport
} from "./index-nd8v7r0z.js";
} from "./index-sp43012q.js";
import"./index-hnvx7m1j.js";
import"./index-ncwzmsge.js";
import"./index-cd75vky9.js";
import"./index-nwdzhj1h.js";
import"./index-jbtyp6q5.js";
import"./index-2gv8y733.js";
import"./index-mxxxytys.js";
import"./index-g63d3937.js";
import {
extractArticleMetadata,
parseArticleMetadata
} from "./index-e2wstc7t.js";
import"./index-w2zc0vwa.js";
import"./index-e5fbsywq.js";
import"./index-gh719d91.js";
Expand All @@ -38,11 +42,15 @@ var inspectClipEnvironment2 = (...arguments_) => inspectClipEnvironment(...argum
var parseCaptureArguments = (...arguments_) => parseArguments(...arguments_);
var renderDoctorReport2 = (...arguments_) => renderDoctorReport(...arguments_);
var runCapture2 = (...arguments_) => runCapture(...arguments_);
var extractArticleMetadata2 = (...arguments_) => extractArticleMetadata(...arguments_);
var parseArticleMetadata2 = (...arguments_) => parseArticleMetadata(...arguments_);
export {
runCapture2 as runCapture,
renderDoctorReport2 as renderDoctorReport,
parseCaptureArguments,
parseArticleMetadata2 as parseArticleMetadata,
inspectClipEnvironment2 as inspectClipEnvironment,
extractArticleMetadata2 as extractArticleMetadata,
clipMain,
captureSummary2 as captureSummary,
captureSucceeded2 as captureSucceeded,
Expand Down
2 changes: 1 addition & 1 deletion dist/cli-bin.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// @bun
import {
runWordcellBin
} from "./index-6c8xhred.js";
} from "./index-k9yzc4vn.js";
import"./index-3t0v457d.js";
import"./index-t4hjm1kk.js";
import"./index-4knsp9qj.js";
Expand Down
27 changes: 14 additions & 13 deletions dist/cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,23 @@ import {
parseArguments,
runExecutable,
usage
} from "./index-878bh2f1.js";
import"./index-5h5awwh4.js";
import"./index-m9p2a4mj.js";
} from "./index-30v9w4cy.js";
import"./index-b40e2dkx.js";
import"./index-my50xsa3.js";
import"./index-3hts6yy9.js";
import"./index-j4zgmzjr.js";
import"./index-npg9z1a4.js";
import"./index-h9vyd03z.js";
import"./index-hacpnaew.js";
import"./index-k86wepd8.js";
import"./index-nd8v7r0z.js";
import"./index-8djdwjjd.js";
import"./index-xn5q4kne.js";
import"./index-58azscg5.js";
import"./index-fd8j527z.js";
import"./index-h2w7syy2.js";
import"./index-sp43012q.js";
import"./index-hnvx7m1j.js";
import"./index-t4hjm1kk.js";
import"./index-ncwzmsge.js";
import"./index-cd75vky9.js";
import"./index-nwdzhj1h.js";
import"./index-jbtyp6q5.js";
import"./index-2gv8y733.js";
import"./index-mxxxytys.js";
import"./index-g63d3937.js";
import"./index-e2wstc7t.js";
import"./index-w2zc0vwa.js";
import"./index-e5fbsywq.js";
import"./index-gh719d91.js";
Expand Down Expand Up @@ -65,7 +66,7 @@ import {

// src/cli.ts
async function runStandaloneCli(args = process.argv.slice(2)) {
const { standaloneSupportEnvironment, isUsefulSupportResult, runProductSupportCommand, showProductSupportInvitation } = await import("./support-hd4754m4.js");
const { standaloneSupportEnvironment, isUsefulSupportResult, runProductSupportCommand, showProductSupportInvitation } = await import("./support-s059eytv.js");
const env = standaloneSupportEnvironment();
if (args[0] === "support") {
return await runProductSupportCommand(args.slice(1), { env });
Expand Down
7 changes: 4 additions & 3 deletions dist/clip/acquire.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,11 @@ import {
mergeRenderedTextSnapshots,
readBrowserExpansionTelemetry,
seedOwnedBrowserCookies
} from "../index-ncwzmsge.js";
import"../index-cd75vky9.js";
} from "../index-nwdzhj1h.js";
import"../index-jbtyp6q5.js";
import"../index-2gv8y733.js";
import"../index-mxxxytys.js";
import"../index-g63d3937.js";
import"../index-e2wstc7t.js";
import"../index-w2zc0vwa.js";
import"../index-e5fbsywq.js";
import"../index-gh719d91.js";
Expand Down
5 changes: 3 additions & 2 deletions dist/clip/bundle-reader.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
import {
readCaptureBundle,
verifyCaptureBundle
} from "../index-npg9z1a4.js";
import"../index-mxxxytys.js";
} from "../index-xn5q4kne.js";
import"../index-g63d3937.js";
import"../index-e2wstc7t.js";
import"../index-1xxnjn0d.js";
import"../index-z1w83f81.js";
export {
Expand Down
15 changes: 8 additions & 7 deletions dist/clip/cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,16 @@ import {
captureSucceeded,
captureSummary,
main
} from "../index-h9vyd03z.js";
import"../index-hacpnaew.js";
import"../index-k86wepd8.js";
import"../index-nd8v7r0z.js";
} from "../index-58azscg5.js";
import"../index-fd8j527z.js";
import"../index-h2w7syy2.js";
import"../index-sp43012q.js";
import"../index-hnvx7m1j.js";
import"../index-ncwzmsge.js";
import"../index-cd75vky9.js";
import"../index-nwdzhj1h.js";
import"../index-jbtyp6q5.js";
import"../index-2gv8y733.js";
import"../index-mxxxytys.js";
import"../index-g63d3937.js";
import"../index-e2wstc7t.js";
import"../index-w2zc0vwa.js";
import"../index-e5fbsywq.js";
import"../index-gh719d91.js";
Expand Down
5 changes: 4 additions & 1 deletion dist/clip/defuddle-worker.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
// @bun
import {
extractArticleMetadata
} from "../index-e2wstc7t.js";
import"../index-z1w83f81.js";

// src/clip/defuddle-worker.ts
Expand Down Expand Up @@ -161,7 +164,7 @@ workerGlobal.onmessage = async (event) => {
useAsync: false,
removeImages: false
});
const enriched = typeof value === "object" && value !== null && !Array.isArray(value) ? { ...value, captureVideoPosters: videoPosters } : value;
const enriched = typeof value === "object" && value !== null && !Array.isArray(value) ? { ...value, captureVideoPosters: videoPosters, metadata: await extractArticleMetadata(request.html, request.url, value) } : value;
workerGlobal.postMessage({ ok: true, value: enriched });
} catch {
workerGlobal.postMessage({ ok: false, message: "Defuddle could not parse this acquisition." });
Expand Down
9 changes: 5 additions & 4 deletions dist/clip/doctor.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ import {
renderAdapterCapabilities,
renderDoctorReport,
runDiagnosticCommand
} from "../index-nd8v7r0z.js";
import"../index-ncwzmsge.js";
import"../index-cd75vky9.js";
} from "../index-sp43012q.js";
import"../index-nwdzhj1h.js";
import"../index-jbtyp6q5.js";
import"../index-2gv8y733.js";
import"../index-mxxxytys.js";
import"../index-g63d3937.js";
import"../index-e2wstc7t.js";
import"../index-w2zc0vwa.js";
import"../index-e5fbsywq.js";
import"../index-gh719d91.js";
Expand Down
3 changes: 2 additions & 1 deletion dist/clip/jobs.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
// @bun
import {
redactSensitiveText
} from "../index-mxxxytys.js";
} from "../index-g63d3937.js";
import"../index-e2wstc7t.js";
import {
sanitizeTerminalLine,
sanitizeTerminalText
Expand Down
3 changes: 2 additions & 1 deletion dist/clip/persist.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ import {
sanitizeArtifactUrl,
sanitizeSourceHtml,
writeCaptureBundle
} from "../index-mxxxytys.js";
} from "../index-g63d3937.js";
import"../index-e2wstc7t.js";
import"../index-1xxnjn0d.js";
import"../index-z1w83f81.js";
export {
Expand Down
7 changes: 4 additions & 3 deletions dist/clip/refresh.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
// @bun
import {
diffCaptureBundle
} from "../index-j4zgmzjr.js";
import"../index-npg9z1a4.js";
import"../index-mxxxytys.js";
} from "../index-8djdwjjd.js";
import"../index-xn5q4kne.js";
import"../index-g63d3937.js";
import"../index-e2wstc7t.js";
import"../index-1gwbassd.js";
import"../index-1xxnjn0d.js";
import"../index-z1w83f81.js";
Expand Down
2 changes: 1 addition & 1 deletion dist/evaluation-builder-bin.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// @bun
import {
runWordcellBin
} from "./index-6c8xhred.js";
} from "./index-k9yzc4vn.js";
import"./index-3t0v457d.js";
import"./index-t4hjm1kk.js";
import"./index-4knsp9qj.js";
Expand Down
14 changes: 7 additions & 7 deletions dist/index-878bh2f1.js → dist/index-30v9w4cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ import {
backfillSavedUrlMetadata,
createRustMetadataSearchProvider,
savedSourceProblem
} from "./index-5h5awwh4.js";
} from "./index-b40e2dkx.js";
import {
main as main2
} from "./index-m9p2a4mj.js";
} from "./index-my50xsa3.js";
import {
MAX_AUTHORIZED_VAULTS,
auditKnowledgePortfolio,
Expand All @@ -16,13 +16,13 @@ import {
} from "./index-3hts6yy9.js";
import {
diffCaptureBundle
} from "./index-j4zgmzjr.js";
} from "./index-8djdwjjd.js";
import {
verifyCaptureBundle
} from "./index-npg9z1a4.js";
} from "./index-xn5q4kne.js";
import {
main
} from "./index-h9vyd03z.js";
} from "./index-58azscg5.js";
import {
advancedHelp,
closestMatch,
Expand All @@ -43,11 +43,11 @@ import {
symbol,
terminalOutput,
terminalStyle
} from "./index-cd75vky9.js";
} from "./index-jbtyp6q5.js";
import {
redactSensitiveText,
sanitizeArtifactUrl
} from "./index-mxxxytys.js";
} from "./index-g63d3937.js";
import {
initVault
} from "./index-23z4zxgg.js";
Expand Down
13 changes: 7 additions & 6 deletions dist/index-h9vyd03z.js → dist/index-58azscg5.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import {
acquireArchiveTodaySnapshot,
discoverArchiveTodaySnapshot
} from "./index-hacpnaew.js";
} from "./index-fd8j527z.js";
import {
canonicalizeUrl,
chooseBestExtraction,
Expand All @@ -12,13 +12,13 @@ import {
localizeAssets,
scoreExtraction,
sniffImage
} from "./index-k86wepd8.js";
} from "./index-h2w7syy2.js";
import {
adapterCapabilities,
inspectClipEnvironment,
renderAdapterCapabilities,
renderDoctorReport
} from "./index-nd8v7r0z.js";
} from "./index-sp43012q.js";
import {
cloneBrowserProfile
} from "./index-hnvx7m1j.js";
Expand All @@ -34,7 +34,7 @@ import {
renderCookiePermissionNotice,
renderCookiePermissionRecovery,
setCookiePermissionReporter
} from "./index-ncwzmsge.js";
} from "./index-nwdzhj1h.js";
import {
CONTENT_REWRITE_TRUNCATION_WARNING,
buildClipMarkdown,
Expand All @@ -51,7 +51,7 @@ import {
stderrStyle,
terminalOutput,
writesToTerminal
} from "./index-cd75vky9.js";
} from "./index-jbtyp6q5.js";
import {
MAX_COOKIE_BYTES,
filterCookieProviderResult,
Expand All @@ -68,7 +68,7 @@ import {
redactSensitiveTextWithCount,
sanitizeArtifactUrl,
writeCaptureBundle
} from "./index-mxxxytys.js";
} from "./index-g63d3937.js";
import {
startNetworkProxy
} from "./index-w2zc0vwa.js";
Expand Down Expand Up @@ -2285,6 +2285,7 @@ async function runCapture(rawOptions, dependencies = {}) {
const finalWarnings = finalizedWarnings(combinedWarnings, redactedMarkdown.count);
const includeSource = options.evidence === "source" || options.evidence === "all";
const manifestInput = {
...article.metadata === undefined ? {} : { metadata: article.metadata },
sourceUrl,
canonicalUrl: best.canonicalUrl.href,
capturedAt,
Expand Down
2 changes: 1 addition & 1 deletion dist/index-j4zgmzjr.js → dist/index-8djdwjjd.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// @bun
import {
readCaptureBundle
} from "./index-npg9z1a4.js";
} from "./index-xn5q4kne.js";
import {
runGitCommand
} from "./index-1gwbassd.js";
Expand Down
Loading
Loading