@wrenautomation/read 0.32.0 → 0.33.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/README.md +1 -1
- package/dist/video/index.d.ts +1 -0
- package/dist/video/index.js +1 -0
- package/dist/video/index.js.map +1 -1
- package/dist/video/store.d.ts +12 -0
- package/dist/video/store.js +85 -0
- package/dist/video/store.js.map +1 -0
- package/dist/video/url.d.ts +24 -8
- package/dist/video/url.js +65 -8
- package/dist/video/url.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ whose `birdwatch` CLI carries these readers (`fetch`, `read`, `list`, `text`, `p
|
|
|
9
9
|
|---|---|
|
|
10
10
|
| `@wrenautomation/read/fetch` | `PoliteFetcher` (one request at a time per host, a contact in the User-Agent, retries on 429 and 5xx, a byte cap), `robots` in warn mode, `fetchLadder` (plain GET up to a browser through a `LadderClient`: autobrowse's `web GET /fetch`) |
|
|
11
11
|
| `@wrenautomation/read/text` | `htmlText`, `pdfText`, `decodeHtml`, `decodeEntities`; `readPage` (HTML to title, text, links, mailtos, tels) |
|
|
12
|
-
| `@wrenautomation/read/video` | `watchFile` a video file: ffmpeg cuts and frames, an ear for the speech (`cohereSpeech`), an eye for the frames (`cohereEye`), and a video model's read of the whole file when given (`geminiVideo`, or `geminiReader` with no key check, for a proxy that holds the keys); shot labels. Over a URL: `readYoutube` (captions and chapters by yt-dlp, plus a video model's read of the screen in clips), `readYoutubeByUrl` (the video model alone, no download), `readVideo` (any other video: yt-dlp
|
|
12
|
+
| `@wrenautomation/read/video` | `watchFile` a video file: ffmpeg cuts and frames, an ear for the speech (`cohereSpeech`), an eye for the frames (`cohereEye`), and a video model's read of the whole file when given (`geminiVideo`, or `geminiReader` with no key check, for a proxy that holds the keys); shot labels. Over a URL: `readYoutube` (captions and chapters by yt-dlp, plus a video model's read of the screen in clips), `readYoutubeByUrl` (the video model alone, no download), `readVideo` (any other video: a `MediaStore` copy, else a direct file link such as Instagram Graph's `media_url`, else yt-dlp; then `watchFile`; `mediaKey` names a video `<platform>/<id>` and `dirStore` keeps them in a folder), `readAudio` (a podcast by its audio URL, then `hearAudio`), `watch` over a URL or a file, `flatPlaylist` (what a profile, channel or search holds), `download`. Every reader returns the one `VideoRead` shape |
|
|
13
13
|
| `@wrenautomation/read/study` | a study's synthesis reader: the quote gate (`pageQuoted`, `numbersQuoted`), the passages a page is shown by, drafts that cite claims, the markdown report |
|
|
14
14
|
|
|
15
15
|
Everything is a function of what you pass: a URL, bytes, text, a file path, models, tools. What
|
package/dist/video/index.d.ts
CHANGED
package/dist/video/index.js
CHANGED
package/dist/video/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/video/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/video/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { VideoMeta } from "./url.js";
|
|
2
|
+
export interface MediaStore {
|
|
3
|
+
/** The kept file copied to `dest`, with its meta; null when none is kept. */
|
|
4
|
+
get(key: string, dest: string): Promise<VideoMeta | null>;
|
|
5
|
+
put(key: string, file: string, info: VideoMeta): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
/** `instagram/DQx1abc`: the platform and the video's id from its page URL; null when unknown. */
|
|
8
|
+
export declare function mediaKey(url: string): string | null;
|
|
9
|
+
/** A folder of `<key>.mp4` and `<key>.json`; past `maxBytes` the least recently kept go first. */
|
|
10
|
+
export declare function dirStore(root: string, o?: {
|
|
11
|
+
maxBytes?: number;
|
|
12
|
+
}): MediaStore;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetched videos kept by `<platform>/<id>`, so a video downloads once. The port is two calls;
|
|
3
|
+
* `dirStore` is the Mac's (a folder, oldest out past a size cap), a server brings its own
|
|
4
|
+
* (wren: the media bucket's `cache/` prefix).
|
|
5
|
+
*/
|
|
6
|
+
import { copyFile, mkdir, readdir, readFile, rm, stat, writeFile } from "node:fs/promises";
|
|
7
|
+
import { dirname, join } from "node:path";
|
|
8
|
+
/** `instagram/DQx1abc`: the platform and the video's id from its page URL; null when unknown. */
|
|
9
|
+
export function mediaKey(url) {
|
|
10
|
+
let u;
|
|
11
|
+
try {
|
|
12
|
+
u = new URL(url);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const host = u.hostname.replace(/^(www|m)\./, "");
|
|
18
|
+
const path = u.pathname;
|
|
19
|
+
const youtube = host === "youtube.com"
|
|
20
|
+
? (u.searchParams.get("v") ?? /^\/(?:shorts|live)\/([\w-]{11})/.exec(path)?.[1])
|
|
21
|
+
: host === "youtu.be"
|
|
22
|
+
? /^\/([\w-]{11})/.exec(path)?.[1]
|
|
23
|
+
: undefined;
|
|
24
|
+
if (youtube)
|
|
25
|
+
return `youtube/${youtube}`;
|
|
26
|
+
const ig = host === "instagram.com" && /^\/(?:[\w.]+\/)?(?:reels?|p|tv)\/([\w-]+)/.exec(path)?.[1];
|
|
27
|
+
if (ig)
|
|
28
|
+
return `instagram/${ig}`;
|
|
29
|
+
const tiktok = host.endsWith("tiktok.com") && /\/video\/(\d+)/.exec(path)?.[1];
|
|
30
|
+
if (tiktok)
|
|
31
|
+
return `tiktok/${tiktok}`;
|
|
32
|
+
const x = (host === "x.com" || host === "twitter.com") && /\/status\/(\d+)/.exec(path)?.[1];
|
|
33
|
+
if (x)
|
|
34
|
+
return `x/${x}`;
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
/** 5 GB: about 700 reels at 540p. */
|
|
38
|
+
const DIR_MAX_BYTES = 5 * 1024 ** 3;
|
|
39
|
+
/** A folder of `<key>.mp4` and `<key>.json`; past `maxBytes` the least recently kept go first. */
|
|
40
|
+
export function dirStore(root, o = {}) {
|
|
41
|
+
const max = o.maxBytes ?? DIR_MAX_BYTES;
|
|
42
|
+
const prune = async () => {
|
|
43
|
+
const files = [];
|
|
44
|
+
for (const platform of await readdir(root).catch(() => []))
|
|
45
|
+
for (const name of await readdir(join(root, platform)).catch(() => [])) {
|
|
46
|
+
if (!name.endsWith(".mp4"))
|
|
47
|
+
continue;
|
|
48
|
+
const path = join(root, platform, name);
|
|
49
|
+
const s = await stat(path).catch(() => null);
|
|
50
|
+
if (s)
|
|
51
|
+
files.push({ path, bytes: s.size, at: s.mtimeMs });
|
|
52
|
+
}
|
|
53
|
+
let total = files.reduce((n, f) => n + f.bytes, 0);
|
|
54
|
+
for (const f of files.sort((a, b) => a.at - b.at)) {
|
|
55
|
+
if (total <= max)
|
|
56
|
+
break;
|
|
57
|
+
await rm(f.path, { force: true });
|
|
58
|
+
await rm(f.path.replace(/\.mp4$/, ".json"), { force: true });
|
|
59
|
+
total -= f.bytes;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
return {
|
|
63
|
+
async get(key, dest) {
|
|
64
|
+
const base = join(root, key);
|
|
65
|
+
const info = await readFile(`${base}.json`, "utf8").catch(() => null);
|
|
66
|
+
if (info === null)
|
|
67
|
+
return null;
|
|
68
|
+
try {
|
|
69
|
+
await copyFile(`${base}.mp4`, dest);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
return JSON.parse(info);
|
|
75
|
+
},
|
|
76
|
+
async put(key, file, info) {
|
|
77
|
+
const base = join(root, key);
|
|
78
|
+
await mkdir(dirname(base), { recursive: true });
|
|
79
|
+
await copyFile(file, `${base}.mp4`);
|
|
80
|
+
await writeFile(`${base}.json`, JSON.stringify(info));
|
|
81
|
+
await prune();
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/video/store.ts"],"names":[],"mappings":"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"}
|
package/dist/video/url.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Model } from "@wrenautomation/models";
|
|
|
2
2
|
import type { Ear } from "@wrenautomation/models/hear";
|
|
3
3
|
import type { VideoInfo } from "./index.js";
|
|
4
4
|
import { type VideoRead } from "./read.js";
|
|
5
|
+
import { type MediaStore } from "./store.js";
|
|
5
6
|
import { type Watched, type WatchOptions } from "./watch.js";
|
|
6
7
|
/** What yt-dlp's `-j` prints for a download; only what the readers use. */
|
|
7
8
|
export interface VideoMeta extends Pick<VideoInfo, "id" | "title" | "channel" | "upload_date" | "webpage_url" | "duration" | "thumbnail"> {
|
|
@@ -11,17 +12,31 @@ export interface VideoMeta extends Pick<VideoInfo, "id" | "title" | "channel" |
|
|
|
11
12
|
width?: number;
|
|
12
13
|
height?: number;
|
|
13
14
|
}
|
|
14
|
-
/**
|
|
15
|
-
export
|
|
15
|
+
/** Where a video comes from, beside yt-dlp: the store, a direct file link, what the caller knows. */
|
|
16
|
+
export interface Fetched {
|
|
17
|
+
/** Checked first by `mediaKey(url)`; every fresh download is kept there. */
|
|
18
|
+
store?: MediaStore;
|
|
19
|
+
/** A direct file link (Instagram Graph's `media_url`): fetched before yt-dlp. It expires, so a failed one falls back. */
|
|
20
|
+
mediaUrl?: string;
|
|
21
|
+
/** What the caller knows (Graph's caption, author, date) over what the source gave. */
|
|
22
|
+
meta?: Partial<VideoMeta>;
|
|
23
|
+
fetchFn?: typeof fetch;
|
|
24
|
+
warn?: (line: string) => void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A reel or video as an mp4 in `dir`: the store's copy, else the direct link, else yt-dlp (540p
|
|
28
|
+
* on the short side, remuxed to mp4). A fresh one goes into the store.
|
|
29
|
+
*/
|
|
30
|
+
export declare function download(url: string, ytDlp: string, dir: string, o?: Fetched): Promise<{
|
|
16
31
|
file: string;
|
|
17
32
|
info: VideoMeta;
|
|
18
33
|
}>;
|
|
19
34
|
/**
|
|
20
|
-
* Watch a video: a URL
|
|
21
|
-
* `uvx yt-dlp`), or a file on disk, which goes straight to
|
|
22
|
-
* metadata comes back as `info`; a duration ffmpeg could not read falls back to it.
|
|
35
|
+
* Watch a video: a URL fetched first (`download`: the store, a direct link, or yt-dlp; `ytDlp`
|
|
36
|
+
* is the command, split on spaces: `uvx yt-dlp`), or a file on disk, which goes straight to
|
|
37
|
+
* `watchFile`. A URL's metadata comes back as `info`; a duration ffmpeg could not read falls back to it.
|
|
23
38
|
*/
|
|
24
|
-
export declare function watch(input: string, opts: WatchOptions & {
|
|
39
|
+
export declare function watch(input: string, opts: WatchOptions & Fetched & {
|
|
25
40
|
ytDlp?: string;
|
|
26
41
|
}): Promise<Watched & {
|
|
27
42
|
info?: VideoMeta;
|
|
@@ -55,6 +70,7 @@ export declare function seeYoutube(url: string, opts: {
|
|
|
55
70
|
ffmpeg?: string;
|
|
56
71
|
fetchFn?: typeof fetch;
|
|
57
72
|
pause?: (ms: number) => Promise<void>;
|
|
73
|
+
store?: MediaStore;
|
|
58
74
|
}): Promise<VideoRead & {
|
|
59
75
|
heard: boolean;
|
|
60
76
|
}>;
|
|
@@ -71,11 +87,11 @@ export declare function readYoutubeByUrl(url: string, opts: {
|
|
|
71
87
|
durationS?: number | null | undefined;
|
|
72
88
|
}): Promise<VideoRead>;
|
|
73
89
|
/**
|
|
74
|
-
* Any other video
|
|
90
|
+
* Any other video (an Instagram reel, TikTok, X): the store, a direct link, else yt-dlp. No captions there, so
|
|
75
91
|
* `watch` hears the audio and reads the frames (its `video` model adds a read of the whole
|
|
76
92
|
* screen when given). The body holds the caption, then Speech, On screen and Cuts.
|
|
77
93
|
*/
|
|
78
|
-
export declare function readVideo(url: string, opts: WatchOptions & {
|
|
94
|
+
export declare function readVideo(url: string, opts: WatchOptions & Fetched & {
|
|
79
95
|
ytDlp: string;
|
|
80
96
|
}): Promise<VideoRead>;
|
|
81
97
|
/**
|
package/dist/video/url.js
CHANGED
|
@@ -9,15 +9,71 @@
|
|
|
9
9
|
* and tools. Nothing here touches a database.
|
|
10
10
|
*/
|
|
11
11
|
import { createHash } from "node:crypto";
|
|
12
|
+
import { createWriteStream } from "node:fs";
|
|
12
13
|
import { mkdtemp, readdir, rm, writeFile } from "node:fs/promises";
|
|
13
14
|
import { tmpdir } from "node:os";
|
|
14
15
|
import { join } from "node:path";
|
|
16
|
+
import { Readable } from "node:stream";
|
|
17
|
+
import { pipeline } from "node:stream/promises";
|
|
15
18
|
import { readMedia, SHOWN } from "./gemini.js";
|
|
16
19
|
import { CLIP_S, captionsBody, hearAudio, isoDate, real, } from "./read.js";
|
|
20
|
+
import { mediaKey } from "./store.js";
|
|
17
21
|
import { clock, runFor, sleep, TOOL_MS, waitOutCap } from "./tools.js";
|
|
18
22
|
import { onScreenLines, renderWatched, watchFile, } from "./watch.js";
|
|
19
|
-
/**
|
|
20
|
-
|
|
23
|
+
/** 500 MB: past any reel or short. */
|
|
24
|
+
const VIDEO_MAX = 500_000_000;
|
|
25
|
+
async function fetchFile(link, file, fetchFn) {
|
|
26
|
+
const res = await fetchFn(link, { signal: AbortSignal.timeout(TOOL_MS) });
|
|
27
|
+
if (!res.ok || !res.body)
|
|
28
|
+
throw new Error(`HTTP ${res.status}`);
|
|
29
|
+
if (Number(res.headers.get("content-length") ?? 0) > VIDEO_MAX)
|
|
30
|
+
throw new Error(`over ${VIDEO_MAX} bytes`);
|
|
31
|
+
await pipeline(Readable.fromWeb(res.body), createWriteStream(file));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A reel or video as an mp4 in `dir`: the store's copy, else the direct link, else yt-dlp (540p
|
|
35
|
+
* on the short side, remuxed to mp4). A fresh one goes into the store.
|
|
36
|
+
*/
|
|
37
|
+
export async function download(url, ytDlp, dir, o = {}) {
|
|
38
|
+
const key = mediaKey(url);
|
|
39
|
+
const warn = o.warn ?? ((line) => console.warn(line));
|
|
40
|
+
const file = join(dir, "video.mp4");
|
|
41
|
+
if (o.store && key) {
|
|
42
|
+
const kept = await o.store.get(key, file).catch((err) => {
|
|
43
|
+
warn(`${key}: store read failed, ${err instanceof Error ? err.message : err}`);
|
|
44
|
+
return null;
|
|
45
|
+
});
|
|
46
|
+
if (kept)
|
|
47
|
+
return { file, info: { ...kept, ...o.meta } };
|
|
48
|
+
}
|
|
49
|
+
const linked = o.mediaUrl ? await fromLink(url, o.mediaUrl, file, key, o, warn) : null;
|
|
50
|
+
const done = linked ?? (await ytDlpDownload(url, ytDlp, dir, o.meta));
|
|
51
|
+
if (o.store && key)
|
|
52
|
+
await o.store.put(key, done.file, done.info).catch((err) => {
|
|
53
|
+
warn(`${key}: not kept, ${err instanceof Error ? err.message : err}`);
|
|
54
|
+
});
|
|
55
|
+
return done;
|
|
56
|
+
}
|
|
57
|
+
async function fromLink(url, link, file, key, o, warn) {
|
|
58
|
+
try {
|
|
59
|
+
await fetchFile(link, file, o.fetchFn ?? fetch);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
warn(`${url}: media link failed (${err instanceof Error ? err.message : err}), yt-dlp instead`);
|
|
63
|
+
await rm(file, { force: true });
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
const [platform, id] = key?.split("/") ?? [];
|
|
67
|
+
const info = {
|
|
68
|
+
id: id ?? createHash("sha256").update(url).digest("hex").slice(0, 16),
|
|
69
|
+
title: url,
|
|
70
|
+
webpage_url: url,
|
|
71
|
+
...(platform ? { extractor_key: platform } : {}),
|
|
72
|
+
...o.meta,
|
|
73
|
+
};
|
|
74
|
+
return { file, info };
|
|
75
|
+
}
|
|
76
|
+
async function ytDlpDownload(url, ytDlp, dir, meta) {
|
|
21
77
|
const [cmd, ...pre] = ytDlp.split(/\s+/);
|
|
22
78
|
const { stdout } = await runFor(cmd, [
|
|
23
79
|
...pre,
|
|
@@ -29,19 +85,19 @@ export async function download(url, ytDlp, dir) {
|
|
|
29
85
|
const file = (await readdir(dir)).find((f) => f.endsWith(".mp4"));
|
|
30
86
|
if (!file)
|
|
31
87
|
throw new Error(`${url}: yt-dlp wrote no mp4`);
|
|
32
|
-
return { file: join(dir, file), info: JSON.parse(stdout) };
|
|
88
|
+
return { file: join(dir, file), info: { ...JSON.parse(stdout), ...meta } };
|
|
33
89
|
}
|
|
34
90
|
/**
|
|
35
|
-
* Watch a video: a URL
|
|
36
|
-
* `uvx yt-dlp`), or a file on disk, which goes straight to
|
|
37
|
-
* metadata comes back as `info`; a duration ffmpeg could not read falls back to it.
|
|
91
|
+
* Watch a video: a URL fetched first (`download`: the store, a direct link, or yt-dlp; `ytDlp`
|
|
92
|
+
* is the command, split on spaces: `uvx yt-dlp`), or a file on disk, which goes straight to
|
|
93
|
+
* `watchFile`. A URL's metadata comes back as `info`; a duration ffmpeg could not read falls back to it.
|
|
38
94
|
*/
|
|
39
95
|
export async function watch(input, opts) {
|
|
40
96
|
if (!/^https?:\/\//.test(input))
|
|
41
97
|
return watchFile(input, opts);
|
|
42
98
|
const dir = await mkdtemp(join(tmpdir(), "read-watch-"));
|
|
43
99
|
try {
|
|
44
|
-
const { file, info } = await download(input, opts.ytDlp ?? "yt-dlp", dir);
|
|
100
|
+
const { file, info } = await download(input, opts.ytDlp ?? "yt-dlp", dir, opts);
|
|
45
101
|
const watched = await watchFile(file, opts);
|
|
46
102
|
return { ...watched, durationS: watched.durationS || info.duration || 0, info };
|
|
47
103
|
}
|
|
@@ -201,6 +257,7 @@ export async function seeYoutube(url, opts) {
|
|
|
201
257
|
speech: hear,
|
|
202
258
|
...(hear && opts.ear ? { ear: opts.ear } : {}),
|
|
203
259
|
...(opts.ffmpeg ? { ffmpeg: opts.ffmpeg } : {}),
|
|
260
|
+
...(opts.store ? { store: opts.store } : {}),
|
|
204
261
|
});
|
|
205
262
|
const info = watched.info;
|
|
206
263
|
const said = words
|
|
@@ -280,7 +337,7 @@ export async function readYoutubeByUrl(url, opts) {
|
|
|
280
337
|
};
|
|
281
338
|
}
|
|
282
339
|
/**
|
|
283
|
-
* Any other video
|
|
340
|
+
* Any other video (an Instagram reel, TikTok, X): the store, a direct link, else yt-dlp. No captions there, so
|
|
284
341
|
* `watch` hears the audio and reads the frames (its `video` model adds a read of the whole
|
|
285
342
|
* screen when given). The body holds the caption, then Speech, On screen and Cuts.
|
|
286
343
|
*/
|
package/dist/video/url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/video/url.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/video/url.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wrenautomation/read",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.0",
|
|
4
4
|
"description": "The web and files in, text out. Polite HTTP fetching with robots and a fetch ladder up to a browser; HTML and PDF to text, a page to title, text and links; a video or podcast from a URL or a file (captions, ffmpeg and a vision model, audio to markdown, what a channel or search holds); a study's synthesis reader whose every claim quotes a page.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"robots-parser": "3.0.1",
|
|
50
50
|
"unpdf": "1.8.1",
|
|
51
51
|
"zod": "4.6.5",
|
|
52
|
-
"@wrenautomation/models": "0.
|
|
52
|
+
"@wrenautomation/models": "0.33.0"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"typecheck": "tsc --noEmit",
|