@askalf/deepdive 0.13.1 → 0.14.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 (103) hide show
  1. package/README.md +131 -1
  2. package/dist/agent.d.ts +2 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +36 -13
  5. package/dist/agent.js.map +1 -1
  6. package/dist/browser.d.ts +1 -0
  7. package/dist/browser.d.ts.map +1 -1
  8. package/dist/browser.js +23 -5
  9. package/dist/browser.js.map +1 -1
  10. package/dist/cache.d.ts.map +1 -1
  11. package/dist/cache.js +22 -2
  12. package/dist/cache.js.map +1 -1
  13. package/dist/citations.d.ts +1 -0
  14. package/dist/citations.d.ts.map +1 -1
  15. package/dist/citations.js +4 -1
  16. package/dist/citations.js.map +1 -1
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +313 -17
  19. package/dist/cli.js.map +1 -1
  20. package/dist/completion.d.ts +3 -0
  21. package/dist/completion.d.ts.map +1 -0
  22. package/dist/completion.js +110 -0
  23. package/dist/completion.js.map +1 -0
  24. package/dist/confidence.d.ts +17 -0
  25. package/dist/confidence.d.ts.map +1 -0
  26. package/dist/confidence.js +41 -0
  27. package/dist/confidence.js.map +1 -0
  28. package/dist/config-file.d.ts +13 -0
  29. package/dist/config-file.d.ts.map +1 -0
  30. package/dist/config-file.js +149 -0
  31. package/dist/config-file.js.map +1 -0
  32. package/dist/config.d.ts +9 -0
  33. package/dist/config.d.ts.map +1 -1
  34. package/dist/config.js +3 -0
  35. package/dist/config.js.map +1 -1
  36. package/dist/dates.d.ts +8 -0
  37. package/dist/dates.d.ts.map +1 -0
  38. package/dist/dates.js +195 -0
  39. package/dist/dates.js.map +1 -0
  40. package/dist/diff.d.ts +46 -0
  41. package/dist/diff.d.ts.map +1 -0
  42. package/dist/diff.js +227 -0
  43. package/dist/diff.js.map +1 -0
  44. package/dist/doctor.d.ts.map +1 -1
  45. package/dist/doctor.js +12 -6
  46. package/dist/doctor.js.map +1 -1
  47. package/dist/html-export.d.ts +6 -0
  48. package/dist/html-export.d.ts.map +1 -0
  49. package/dist/html-export.js +146 -0
  50. package/dist/html-export.js.map +1 -0
  51. package/dist/index.d.ts +10 -2
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +9 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/markdown.d.ts +7 -0
  56. package/dist/markdown.d.ts.map +1 -0
  57. package/dist/markdown.js +232 -0
  58. package/dist/markdown.js.map +1 -0
  59. package/dist/profiles.d.ts +5 -0
  60. package/dist/profiles.d.ts.map +1 -0
  61. package/dist/profiles.js +38 -0
  62. package/dist/profiles.js.map +1 -0
  63. package/dist/robots.d.ts +1 -0
  64. package/dist/robots.d.ts.map +1 -1
  65. package/dist/robots.js +4 -7
  66. package/dist/robots.js.map +1 -1
  67. package/dist/search/arxiv.d.ts +7 -0
  68. package/dist/search/arxiv.d.ts.map +1 -0
  69. package/dist/search/arxiv.js +81 -0
  70. package/dist/search/arxiv.js.map +1 -0
  71. package/dist/search/brave.d.ts +1 -1
  72. package/dist/search/brave.d.ts.map +1 -1
  73. package/dist/search/brave.js +2 -1
  74. package/dist/search/brave.js.map +1 -1
  75. package/dist/search/duckduckgo.d.ts +1 -1
  76. package/dist/search/duckduckgo.d.ts.map +1 -1
  77. package/dist/search/duckduckgo.js +2 -1
  78. package/dist/search/duckduckgo.js.map +1 -1
  79. package/dist/search/github.d.ts +16 -0
  80. package/dist/search/github.d.ts.map +1 -0
  81. package/dist/search/github.js +59 -0
  82. package/dist/search/github.js.map +1 -0
  83. package/dist/search/searxng.d.ts +1 -1
  84. package/dist/search/searxng.d.ts.map +1 -1
  85. package/dist/search/searxng.js +2 -1
  86. package/dist/search/searxng.js.map +1 -1
  87. package/dist/search/wikipedia.d.ts +16 -0
  88. package/dist/search/wikipedia.d.ts.map +1 -0
  89. package/dist/search/wikipedia.js +56 -0
  90. package/dist/search/wikipedia.js.map +1 -0
  91. package/dist/search.d.ts +1 -0
  92. package/dist/search.d.ts.map +1 -1
  93. package/dist/search.js +26 -0
  94. package/dist/search.js.map +1 -1
  95. package/dist/sessions.d.ts +15 -0
  96. package/dist/sessions.d.ts.map +1 -1
  97. package/dist/sessions.js +67 -0
  98. package/dist/sessions.js.map +1 -1
  99. package/dist/synthesize.d.ts +6 -1
  100. package/dist/synthesize.d.ts.map +1 -1
  101. package/dist/synthesize.js +14 -5
  102. package/dist/synthesize.js.map +1 -1
  103. package/package.json +1 -1
@@ -0,0 +1,110 @@
1
+ // Shell completion scripts. `deepdive completion <bash|zsh|fish>` prints a
2
+ // script the user evals/sources to get subcommand + flag completion. Pure: the
3
+ // scripts are generated from the lists below, no I/O.
4
+ const SUBCOMMANDS = [
5
+ ["doctor", "health check"],
6
+ ["sessions", "list / rm / prune saved sessions"],
7
+ ["show", "print a saved session's answer"],
8
+ ["resume", "re-synthesize a saved session (cheap)"],
9
+ ["continue", "extend a session with new pages"],
10
+ ["export", "render a session as html or md"],
11
+ ["diff", "compare two saved sessions"],
12
+ ["completion", "print a shell completion script"],
13
+ ];
14
+ const FLAGS = [
15
+ ["--deep", "critic loop (N rounds)"],
16
+ ["--tldr", "lead the answer with a TL;DR"],
17
+ ["--model", "LLM model"],
18
+ ["--plan-model", "model for the planner stage"],
19
+ ["--synth-model", "model for the synthesizer stage"],
20
+ ["--critic-model", "model for the critic stage"],
21
+ ["--search", "search adapter"],
22
+ ["--profile", "named settings preset"],
23
+ ["--max-cost", "budget cap in USD"],
24
+ ["--max-sources", "total sources to fetch"],
25
+ ["--concurrency", "parallel fetches"],
26
+ ["--include", "local files/dirs as sources"],
27
+ ["--allow-domain", "keep only these hosts"],
28
+ ["--deny-domain", "drop these hosts"],
29
+ ["--strict-cites", "fail on weakly-cited claims"],
30
+ ["--narrate", "diff: add an LLM change summary"],
31
+ ["--format", "export: html | md"],
32
+ ["--older-than", "prune: age cutoff (e.g. 30d)"],
33
+ ["--keep", "prune: retain the newest N"],
34
+ ["--dry-run", "prune: preview, delete nothing"],
35
+ ["--out", "write output to a file"],
36
+ ["--json", "emit JSON"],
37
+ ["--verbose", "stream progress to stderr"],
38
+ ["--help", "show help"],
39
+ ];
40
+ export function completionScript(shell) {
41
+ switch (shell) {
42
+ case "bash":
43
+ return bash();
44
+ case "zsh":
45
+ return zsh();
46
+ case "fish":
47
+ return fish();
48
+ }
49
+ }
50
+ function bash() {
51
+ const subs = SUBCOMMANDS.map(([s]) => s).join(" ");
52
+ const flags = FLAGS.map(([f]) => f).join(" ");
53
+ return `# deepdive bash completion. Add to ~/.bashrc:
54
+ # source <(deepdive completion bash)
55
+ _deepdive_completions() {
56
+ local cur="\${COMP_WORDS[COMP_CWORD]}"
57
+ local subcommands="${subs}"
58
+ local flags="${flags}"
59
+ if [[ "\${cur}" == -* ]]; then
60
+ COMPREPLY=( $(compgen -W "\${flags}" -- "\${cur}") )
61
+ else
62
+ COMPREPLY=( $(compgen -W "\${subcommands}" -- "\${cur}") )
63
+ fi
64
+ }
65
+ complete -F _deepdive_completions deepdive
66
+ `;
67
+ }
68
+ function zsh() {
69
+ const subs = SUBCOMMANDS.map(([s, d]) => `'${s}:${d}'`).join(" ");
70
+ const flags = FLAGS.map(([f, d]) => `'${f}:${d}'`).join(" ");
71
+ return `#compdef deepdive
72
+ # deepdive zsh completion. Add to ~/.zshrc:
73
+ # source <(deepdive completion zsh)
74
+ _deepdive() {
75
+ local -a subcommands flags
76
+ subcommands=(${subs})
77
+ flags=(${flags})
78
+ if [[ \${words[CURRENT]} == -* ]]; then
79
+ _describe -t flags 'flag' flags
80
+ else
81
+ _describe -t commands 'deepdive command' subcommands
82
+ _describe -t flags 'flag' flags
83
+ fi
84
+ }
85
+ compdef _deepdive deepdive
86
+ `;
87
+ }
88
+ function fish() {
89
+ const lines = [
90
+ "# deepdive fish completion. Add to ~/.config/fish/completions/deepdive.fish:",
91
+ "# deepdive completion fish > ~/.config/fish/completions/deepdive.fish",
92
+ "complete -c deepdive -f",
93
+ ];
94
+ for (const [s, d] of SUBCOMMANDS) {
95
+ lines.push(`complete -c deepdive -n '__fish_use_subcommand' -a '${s}' -d '${escapeFish(d)}'`);
96
+ }
97
+ for (const [f, d] of FLAGS) {
98
+ const long = f.replace(/^--/, "");
99
+ lines.push(`complete -c deepdive -l ${long} -d '${escapeFish(d)}'`);
100
+ }
101
+ return lines.join("\n") + "\n";
102
+ }
103
+ function escapeFish(s) {
104
+ // Escape the backslash first, then the single quote — escaping only the
105
+ // quote would leave a trailing backslash able to break out of the '…'
106
+ // string (CodeQL js/incomplete-sanitization). Inputs here are static, but
107
+ // keep the escaper correct.
108
+ return s.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
109
+ }
110
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export type ConfidenceLevel = "high" | "medium" | "low";
2
+ export interface ConfidenceInput {
3
+ sources: number;
4
+ citationsTotal: number;
5
+ citationsSupported: number;
6
+ }
7
+ export interface ConfidenceAssessment {
8
+ level: ConfidenceLevel;
9
+ sources: number;
10
+ citationsTotal: number;
11
+ citationsSupported: number;
12
+ supportRatio: number;
13
+ reasons: string[];
14
+ }
15
+ export declare function assessConfidence(input: ConfidenceInput): ConfidenceAssessment;
16
+ export declare function formatConfidenceLine(a: ConfidenceAssessment): string;
17
+ //# sourceMappingURL=confidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confidence.d.ts","sourceRoot":"","sources":["../src/confidence.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,oBAAoB,CA+B7E;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAEpE"}
@@ -0,0 +1,41 @@
1
+ // Coverage / confidence signal. A deterministic, honest heuristic over what
2
+ // the run actually produced — how many sources were kept, and how well the
3
+ // answer's own [N] citations hold up under the lexical verifier. It is NOT a
4
+ // claim that the answer is correct; it's a fast "how much should I trust this
5
+ // at a glance, and what should I double-check" read. Pure and unit-testable.
6
+ export function assessConfidence(input) {
7
+ const { sources, citationsTotal, citationsSupported } = input;
8
+ const supportRatio = citationsTotal > 0 ? citationsSupported / citationsTotal : 1;
9
+ const reasons = [];
10
+ reasons.push(`${sources} source${sources === 1 ? "" : "s"}`);
11
+ reasons.push(citationsTotal > 0
12
+ ? `${citationsSupported}/${citationsTotal} citations supported`
13
+ : "no inline citations");
14
+ // Low when the evidence base is thin, the answer cited nothing the verifier
15
+ // could check, or a meaningful share of citations failed.
16
+ const thin = sources <= 2;
17
+ const uncited = citationsTotal === 0;
18
+ const weakCites = citationsTotal > 0 && supportRatio < 0.6;
19
+ let level;
20
+ if (thin || uncited || weakCites) {
21
+ level = "low";
22
+ if (thin)
23
+ reasons.push("thin evidence base");
24
+ if (uncited)
25
+ reasons.push("answer not grounded in citations");
26
+ else if (weakCites)
27
+ reasons.push("several citations weakly supported");
28
+ }
29
+ else if (sources >= 5 && citationsTotal >= 3 && supportRatio >= 0.9) {
30
+ level = "high";
31
+ }
32
+ else {
33
+ level = "medium";
34
+ }
35
+ return { level, sources, citationsTotal, citationsSupported, supportRatio, reasons };
36
+ }
37
+ // Exported for unit tests. One-line stderr summary, mirroring the cost line.
38
+ export function formatConfidenceLine(a) {
39
+ return `confidence · ${a.level} · ${a.reasons.join(" · ")}`;
40
+ }
41
+ //# sourceMappingURL=confidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confidence.js","sourceRoot":"","sources":["../src/confidence.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAoB7E,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACrD,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC;IAC9D,MAAM,YAAY,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAElF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,CACV,cAAc,GAAG,CAAC;QAChB,CAAC,CAAC,GAAG,kBAAkB,IAAI,cAAc,sBAAsB;QAC/D,CAAC,CAAC,qBAAqB,CAC1B,CAAC;IAEF,4EAA4E;IAC5E,0DAA0D;IAC1D,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,cAAc,KAAK,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,cAAc,GAAG,CAAC,IAAI,YAAY,GAAG,GAAG,CAAC;IAE3D,IAAI,KAAsB,CAAC;IAC3B,IAAI,IAAI,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,GAAG,KAAK,CAAC;QACd,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7C,IAAI,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;aACzD,IAAI,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACzE,CAAC;SAAM,IAAI,OAAO,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,IAAI,YAAY,IAAI,GAAG,EAAE,CAAC;QACtE,KAAK,GAAG,MAAM,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,QAAQ,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACvF,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,oBAAoB,CAAC,CAAuB;IAC1D,OAAO,gBAAgB,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type FileConfig = Record<string, unknown>;
2
+ export interface ParsedConfigFile {
3
+ base: FileConfig;
4
+ profiles: Record<string, FileConfig>;
5
+ defaultProfile?: string;
6
+ path?: string;
7
+ error?: string;
8
+ }
9
+ export declare function fileConfigToEnv(fc: FileConfig): Record<string, string>;
10
+ export declare function knownConfigKeys(): string[];
11
+ export declare function defaultConfigPath(env: Record<string, string | undefined>): string;
12
+ export declare function loadConfigFile(env: Record<string, string | undefined>): ParsedConfigFile;
13
+ //# sourceMappingURL=config-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyDD,wBAAgB,eAAe,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0BtE;AAGD,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAEjF;AAMD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,gBAAgB,CAiCxF"}
@@ -0,0 +1,149 @@
1
+ // Config file + profile support. A user can persist their defaults in
2
+ // ~/.deepdive/config.json (override the path with DEEPDIVE_CONFIG) so they
3
+ // don't retype --base-url / --model / --search every run, and can define named
4
+ // profiles for common modes.
5
+ //
6
+ // The trick that keeps this from touching the stable resolveConfig() at all:
7
+ // the file's friendly keys are translated to the DEEPDIVE_* env var strings
8
+ // resolveConfig already understands, then layered UNDER the real process.env
9
+ // (real env wins). So the effective precedence becomes:
10
+ //
11
+ // CLI flags > env vars > selected profile > config-file base > defaults
12
+ //
13
+ // Pure mapping (`fileConfigToEnv`) is separated from the file read
14
+ // (`loadConfigFile`) so the mapping is unit-testable without disk.
15
+ import { readFileSync } from "node:fs";
16
+ import { homedir } from "node:os";
17
+ import { join } from "node:path";
18
+ // Friendly config key → the DEEPDIVE_* env var resolveConfig reads, plus how
19
+ // to serialize the JSON value into the string env form.
20
+ const KEY_MAP = {
21
+ baseUrl: { env: "DEEPDIVE_BASE_URL", kind: "string" },
22
+ apiKey: { env: "DEEPDIVE_API_KEY", kind: "string" },
23
+ model: { env: "DEEPDIVE_MODEL", kind: "string" },
24
+ planModel: { env: "DEEPDIVE_PLAN_MODEL", kind: "string" },
25
+ synthModel: { env: "DEEPDIVE_SYNTH_MODEL", kind: "string" },
26
+ criticModel: { env: "DEEPDIVE_CRITIC_MODEL", kind: "string" },
27
+ maxTokens: { env: "DEEPDIVE_MAX_TOKENS", kind: "number" },
28
+ search: { env: "DEEPDIVE_SEARCH", kind: "string" },
29
+ resultsPerQuery: { env: "DEEPDIVE_RESULTS_PER_QUERY", kind: "number" },
30
+ maxSources: { env: "DEEPDIVE_MAX_SOURCES", kind: "number" },
31
+ maxWordsPerSource: { env: "DEEPDIVE_MAX_WORDS_PER_SOURCE", kind: "number" },
32
+ timeoutMs: { env: "DEEPDIVE_FETCH_TIMEOUT_MS", kind: "number" },
33
+ llmTimeoutMs: { env: "DEEPDIVE_LLM_TIMEOUT_MS", kind: "number" },
34
+ llmAttempts: { env: "DEEPDIVE_LLM_ATTEMPTS", kind: "number" },
35
+ deep: { env: "DEEPDIVE_DEEP_ROUNDS", kind: "number" },
36
+ concurrency: { env: "DEEPDIVE_CONCURRENCY", kind: "number" },
37
+ cacheTtlMs: { env: "DEEPDIVE_CACHE_TTL_MS", kind: "number" },
38
+ citeMinRecall: { env: "DEEPDIVE_CITE_MIN_RECALL", kind: "number" },
39
+ pdfMaxPages: { env: "DEEPDIVE_PDF_MAX_PAGES", kind: "number" },
40
+ maxCost: { env: "DEEPDIVE_MAX_COST", kind: "string" }, // string: "$0.50" allowed
41
+ apiFormat: { env: "DEEPDIVE_API_FORMAT", kind: "string" },
42
+ browserCdpEndpoint: { env: "DEEPDIVE_BROWSER_CDP_ENDPOINT", kind: "string" },
43
+ wikipediaLang: { env: "DEEPDIVE_WIKIPEDIA_LANG", kind: "string" },
44
+ githubToken: { env: "DEEPDIVE_GITHUB_TOKEN", kind: "string" },
45
+ braveKey: { env: "DEEPDIVE_BRAVE_KEY", kind: "string" },
46
+ tavilyKey: { env: "DEEPDIVE_TAVILY_KEY", kind: "string" },
47
+ exaKey: { env: "DEEPDIVE_EXA_KEY", kind: "string" },
48
+ searxngUrl: { env: "DEEPDIVE_SEARXNG_URL", kind: "string" },
49
+ cacheDir: { env: "DEEPDIVE_CACHE_DIR", kind: "string" },
50
+ sessionsDir: { env: "DEEPDIVE_SESSIONS_DIR", kind: "string" },
51
+ allowDomain: { env: "DEEPDIVE_ALLOW_DOMAIN", kind: "list" },
52
+ denyDomain: { env: "DEEPDIVE_DENY_DOMAIN", kind: "list" },
53
+ include: { env: "DEEPDIVE_INCLUDE", kind: "list" },
54
+ tldr: { env: "DEEPDIVE_TLDR", kind: "bool" },
55
+ strictCites: { env: "DEEPDIVE_STRICT_CITES", kind: "bool" },
56
+ verbose: { env: "DEEPDIVE_VERBOSE", kind: "bool" },
57
+ headed: { env: "DEEPDIVE_HEADED", kind: "bool" },
58
+ // Inverted toggles: the friendly key is the positive feature, set false to
59
+ // disable. e.g. {"cache": false} → DEEPDIVE_NO_CACHE=1.
60
+ cache: { env: "DEEPDIVE_NO_CACHE", kind: "boolInverted" },
61
+ verifyCites: { env: "DEEPDIVE_NO_VERIFY_CITES", kind: "boolInverted" },
62
+ cost: { env: "DEEPDIVE_NO_COST", kind: "boolInverted" },
63
+ sessions: { env: "DEEPDIVE_NO_SESSIONS", kind: "boolInverted" },
64
+ stream: { env: "DEEPDIVE_NO_STREAM", kind: "boolInverted" },
65
+ robots: { env: "DEEPDIVE_IGNORE_ROBOTS", kind: "boolInverted" },
66
+ };
67
+ // Exported for unit tests. Translate a FileConfig's friendly keys to the
68
+ // DEEPDIVE_* env-var string form. Unknown keys are skipped. Boolean toggles
69
+ // only emit an entry when they actually change behavior.
70
+ export function fileConfigToEnv(fc) {
71
+ const out = {};
72
+ for (const [key, value] of Object.entries(fc)) {
73
+ const spec = KEY_MAP[key];
74
+ if (!spec || value === undefined || value === null)
75
+ continue;
76
+ switch (spec.kind) {
77
+ case "string":
78
+ case "number":
79
+ out[spec.env] = String(value);
80
+ break;
81
+ case "list": {
82
+ const joined = Array.isArray(value)
83
+ ? value.map((v) => String(v).trim()).filter(Boolean).join(",")
84
+ : String(value).trim();
85
+ if (joined)
86
+ out[spec.env] = joined;
87
+ break;
88
+ }
89
+ case "bool":
90
+ if (value === true)
91
+ out[spec.env] = "1";
92
+ break;
93
+ case "boolInverted":
94
+ if (value === false)
95
+ out[spec.env] = "1";
96
+ break;
97
+ }
98
+ }
99
+ return out;
100
+ }
101
+ // Exported for unit tests. The friendly keys a config file / profile accepts.
102
+ export function knownConfigKeys() {
103
+ return Object.keys(KEY_MAP);
104
+ }
105
+ // Default config path, override with DEEPDIVE_CONFIG.
106
+ export function defaultConfigPath(env) {
107
+ return env.DEEPDIVE_CONFIG ?? join(homedir(), ".deepdive", "config.json");
108
+ }
109
+ // Reads + parses the config file. A missing file is not an error (returns
110
+ // empty). A present-but-broken file returns `error` set so the caller can warn
111
+ // and proceed with no file config. Separates `profiles` and `defaultProfile`
112
+ // from the base settings.
113
+ export function loadConfigFile(env) {
114
+ const path = defaultConfigPath(env);
115
+ let raw;
116
+ try {
117
+ raw = readFileSync(path, "utf-8");
118
+ }
119
+ catch {
120
+ return { base: {}, profiles: {} }; // no file → no config, not an error
121
+ }
122
+ let json;
123
+ try {
124
+ json = JSON.parse(raw);
125
+ }
126
+ catch {
127
+ return { base: {}, profiles: {}, path, error: `invalid JSON in ${path}` };
128
+ }
129
+ if (typeof json !== "object" || json === null || Array.isArray(json)) {
130
+ return { base: {}, profiles: {}, path, error: `config at ${path} must be a JSON object` };
131
+ }
132
+ const obj = json;
133
+ const { profiles: rawProfiles, defaultProfile, ...base } = obj;
134
+ const profiles = {};
135
+ if (rawProfiles && typeof rawProfiles === "object" && !Array.isArray(rawProfiles)) {
136
+ for (const [name, cfg] of Object.entries(rawProfiles)) {
137
+ if (cfg && typeof cfg === "object" && !Array.isArray(cfg)) {
138
+ profiles[name] = cfg;
139
+ }
140
+ }
141
+ }
142
+ return {
143
+ base,
144
+ profiles,
145
+ defaultProfile: typeof defaultProfile === "string" ? defaultProfile : undefined,
146
+ path,
147
+ };
148
+ }
149
+ //# sourceMappingURL=config-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -37,6 +37,7 @@ export interface RuntimeConfig {
37
37
  streamEnabled: boolean;
38
38
  verbose: boolean;
39
39
  maxCostUsd?: number;
40
+ tldr: boolean;
40
41
  }
41
42
  export interface CLIFlags {
42
43
  baseUrl?: string;
@@ -71,7 +72,15 @@ export interface CLIFlags {
71
72
  json?: boolean;
72
73
  noStream?: boolean;
73
74
  verbose?: boolean;
75
+ tldr?: boolean;
74
76
  maxCostUsd?: number;
77
+ browserCdpEndpoint?: string;
78
+ profile?: string;
79
+ format?: string;
80
+ narrate?: boolean;
81
+ dryRun?: boolean;
82
+ olderThan?: string;
83
+ keep?: number;
75
84
  }
76
85
  export declare function resolveConfig(flags: CLIFlags, env: Record<string, string | undefined>): RuntimeConfig;
77
86
  export declare function parsePositiveInt(s: string | undefined): number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -108,6 +108,7 @@ export function resolveConfig(flags, env) {
108
108
  // CLI can further require stdout.isTTY before enabling.
109
109
  const streamEnabled = !streamOptOut && !jsonOutput;
110
110
  const verbose = flags.verbose ?? env.DEEPDIVE_VERBOSE === "1";
111
+ const tldr = flags.tldr ?? env.DEEPDIVE_TLDR === "1";
111
112
  // v0.11.0 — budget cap. Flag takes a pre-parsed number from cli.ts
112
113
  // (which uses parseMaxCost on the raw string). Env var is parsed here.
113
114
  const maxCostUsd = flags.maxCostUsd ?? parseMaxCost(env.DEEPDIVE_MAX_COST);
@@ -130,6 +131,7 @@ export function resolveConfig(flags, env) {
130
131
  headless: env.DEEPDIVE_HEADED === "1" ? false : true,
131
132
  timeoutMs,
132
133
  maxBytes: DEFAULTS.maxBytesPerFetch,
134
+ cdpEndpoint: flags.browserCdpEndpoint ?? env.DEEPDIVE_BROWSER_CDP_ENDPOINT,
133
135
  },
134
136
  searchAdapter,
135
137
  resultsPerQuery,
@@ -151,6 +153,7 @@ export function resolveConfig(flags, env) {
151
153
  streamEnabled,
152
154
  verbose,
153
155
  maxCostUsd,
156
+ tldr,
154
157
  };
155
158
  }
156
159
  // Exported for unit tests.
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function extractPublishedDate(html: string, now?: number): number | undefined;
2
+ export declare function metaTags(html: string): Map<string, string>;
3
+ export declare function jsonLdDates(html: string): {
4
+ published?: string;
5
+ modified?: string;
6
+ };
7
+ export declare function toEpoch(s: string, now?: number): number | undefined;
8
+ //# sourceMappingURL=dates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../src/dates.ts"],"names":[],"mappings":"AAaA,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAmB,GACvB,MAAM,GAAG,SAAS,CAoCpB;AA4BD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAe1D;AASD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAsCnF;AA0CD,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,MAAM,GAAG,SAAS,CAW/E"}