@wrenautomation/birdwatch 0.29.0 → 0.30.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 (80) hide show
  1. package/README.md +36 -53
  2. package/dist/app/cli.js +2 -2
  3. package/dist/app/cli.js.map +1 -1
  4. package/dist/app/engine-cli.d.ts +2 -8
  5. package/dist/app/engine-cli.js +18 -160
  6. package/dist/app/engine-cli.js.map +1 -1
  7. package/dist/app/index.d.ts +3 -3
  8. package/dist/app/index.js +3 -3
  9. package/dist/app/index.js.map +1 -1
  10. package/dist/document/extract.d.ts +1 -1
  11. package/dist/document/types.d.ts +2 -2
  12. package/dist/document/types.js +2 -2
  13. package/dist/engine/agent.d.ts +12 -10
  14. package/dist/engine/agent.js +21 -20
  15. package/dist/engine/agent.js.map +1 -1
  16. package/dist/engine/context.d.ts +9 -0
  17. package/dist/engine/{runner.js → context.js} +10 -78
  18. package/dist/engine/context.js.map +1 -0
  19. package/dist/engine/index.d.ts +2 -2
  20. package/dist/engine/index.js +2 -2
  21. package/dist/engine/index.js.map +1 -1
  22. package/dist/engine/judge.d.ts +1 -1
  23. package/dist/engine/plan.d.ts +4 -4
  24. package/dist/engine/plan.js +4 -4
  25. package/dist/engine/plan.js.map +1 -1
  26. package/dist/{plan → engine}/plans/index.d.ts +4 -2
  27. package/dist/engine/plans/index.js +104 -0
  28. package/dist/engine/plans/index.js.map +1 -0
  29. package/dist/engine/ports.d.ts +9 -57
  30. package/dist/engine/ports.js +3 -3
  31. package/dist/engine/ports.js.map +1 -1
  32. package/dist/engine/recall.d.ts +1 -1
  33. package/dist/engine/state.d.ts +0 -3
  34. package/dist/engine/state.js +1 -25
  35. package/dist/engine/state.js.map +1 -1
  36. package/dist/engine/steps.d.ts +20 -20
  37. package/dist/engine/steps.js +42 -167
  38. package/dist/engine/steps.js.map +1 -1
  39. package/dist/engine/tree.d.ts +1 -1
  40. package/dist/engine/tree.js.map +1 -1
  41. package/dist/{plan → engine}/types.d.ts +14 -165
  42. package/dist/{plan → engine}/types.js +18 -73
  43. package/dist/engine/types.js.map +1 -0
  44. package/dist/index.d.ts +9 -9
  45. package/dist/index.js +9 -9
  46. package/dist/ledger/files.d.ts +1 -1
  47. package/dist/ledger/files.js +1 -1
  48. package/dist/ledger/files.js.map +1 -1
  49. package/dist/ledger/ledger.d.ts +2 -2
  50. package/dist/ledger/records.d.ts +139 -139
  51. package/dist/ledger/records.js +6 -6
  52. package/dist/ledger/records.js.map +1 -1
  53. package/dist/sources/arxiv.d.ts +1 -1
  54. package/dist/sources/google.d.ts +1 -1
  55. package/dist/sources/paste.d.ts +1 -1
  56. package/dist/sources/sites.d.ts +1 -1
  57. package/package.json +4 -8
  58. package/dist/engine/runner.d.ts +0 -30
  59. package/dist/engine/runner.js.map +0 -1
  60. package/dist/plan/index.d.ts +0 -7
  61. package/dist/plan/index.js +0 -8
  62. package/dist/plan/index.js.map +0 -1
  63. package/dist/plan/model.d.ts +0 -6
  64. package/dist/plan/model.js +0 -7
  65. package/dist/plan/model.js.map +0 -1
  66. package/dist/plan/plan.d.ts +0 -31
  67. package/dist/plan/plan.js +0 -87
  68. package/dist/plan/plan.js.map +0 -1
  69. package/dist/plan/plans/index.js +0 -236
  70. package/dist/plan/plans/index.js.map +0 -1
  71. package/dist/plan/render.d.ts +0 -41
  72. package/dist/plan/render.js +0 -75
  73. package/dist/plan/render.js.map +0 -1
  74. package/dist/plan/review.d.ts +0 -11
  75. package/dist/plan/review.js +0 -39
  76. package/dist/plan/review.js.map +0 -1
  77. package/dist/plan/triage.d.ts +0 -18
  78. package/dist/plan/triage.js +0 -65
  79. package/dist/plan/triage.js.map +0 -1
  80. package/dist/plan/types.js.map +0 -1
@@ -1,17 +1,17 @@
1
1
  /**
2
2
  * The records a ledger holds: one JSON object per line, append only. Every record has the same
3
3
  * envelope (`type`, `id`, `run`, `round`, `step`, `at`, `from`, `by`) and then its own fields;
4
- * the planner's (`./plan`) and the document's (`./document`) shapes are spread in with the envelope's fields taken out, so a record
4
+ * the ask's (`./engine`) and the document's (`./document`) shapes are spread in with the envelope's fields taken out, so a record
5
5
  * has one `by`. A correction is a new record that points at the old one, never an edit.
6
6
  *
7
7
  * One rule for the lake: a top-level key keeps one JSON type across every record type, so
8
8
  * DuckDB's `read_json` unifies the files without a cast.
9
9
  */
10
10
  import { Document as DocumentBase, Finding as FindingBase, Pattern as PatternBase, Verdict as VerdictBase, } from "../document/index.js";
11
- import { Ask, Budget, HitView, Edge as PlanEdge, Query as PlanQuery, Snapshot as PlanSnapshot, z, } from "../plan/index.js";
12
- /** Who wrote a record: a model, a person, or a tool (a source adapter, the runner). */
11
+ import { Ask, Budget, HitView, Edge as PlanEdge, Query as PlanQuery, Snapshot as PlanSnapshot, z, } from "../engine/types.js";
12
+ /** Who wrote a record: a model, a person, or a tool (a source adapter, the engine). */
13
13
  export const From = z.enum(["ai", "human", "tool"]);
14
- /** The runner's steps, in order. The planner's `Edge.to` names one of the first five. */
14
+ /** The steps, in order. An edge's `to` names one of the first five. */
15
15
  export const Step = z.enum(["plan", "fetch", "triage", "read", "extract", "check", "review"]);
16
16
  export const STEPS = Step.options;
17
17
  export const RECORD_TYPES = [
@@ -120,7 +120,7 @@ export const SpendRecord = Envelope.extend({
120
120
  usd: z.number().nonnegative().optional(),
121
121
  tokens: z.object({ input: z.number().optional(), output: z.number().optional() }).optional(),
122
122
  });
123
- /** What the plan step was given for one round: the ask, the allow-list, the budget, the planner's snapshot. */
123
+ /** What the plan step was given for one round: the ask, the allow-list, the budget, the snapshot. */
124
124
  export const SnapshotRecord = Envelope.extend({ type: z.literal("snapshot") })
125
125
  .extend(PlanSnapshot.omit({ at: true }).shape)
126
126
  .extend({
@@ -224,7 +224,7 @@ export const SourceClass = z.enum(SOURCE_CLASSES);
224
224
  /**
225
225
  * The agent's word on what kind of source a document is, with why. Its findings take the class;
226
226
  * a class on a finding overrides it (a vendor page that quotes a survey). The latest per target
227
- * wins. The runner writes none.
227
+ * wins. A model never writes one.
228
228
  */
229
229
  export const ClassRecord = Envelope.extend({
230
230
  type: z.literal("class"),
@@ -1 +1 @@
1
- {"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/ledger/records.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/ledger/records.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import { type Media, type Reader } from "../document/index.js";
11
11
  import type { Source } from "../engine/ports.js";
12
- import type { HitViewIn } from "../plan/index.js";
12
+ import type { HitViewIn } from "../engine/types.js";
13
13
  export declare const ARXIV = "https://export.arxiv.org";
14
14
  export declare const OPENALEX = "https://api.openalex.org/works";
15
15
  export declare const S2 = "https://api.semanticscholar.org/graph/v1/paper";
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { LadderClient } from "@wrenautomation/read/fetch";
8
8
  import type { Source } from "../engine/ports.js";
9
- import type { HitViewIn } from "../plan/index.js";
9
+ import type { HitViewIn } from "../engine/types.js";
10
10
  /** The Overview's hit: Google's search URL for the terms, its fragment naming it. */
11
11
  export declare const overviewUrl: (terms: string) => string;
12
12
  export declare function serpHits(body: unknown, terms: string): HitViewIn[];
@@ -4,5 +4,5 @@
4
4
  * once.
5
5
  */
6
6
  import type { Source } from "../engine/ports.js";
7
- import type { HitViewIn } from "../plan/index.js";
7
+ import type { HitViewIn } from "../engine/types.js";
8
8
  export declare function paste(hits: readonly HitViewIn[], by: string): Source;
@@ -19,7 +19,7 @@
19
19
  import type { LadderClient } from "@wrenautomation/read/fetch";
20
20
  import type { Document } from "../document/index.js";
21
21
  import type { Source } from "../engine/ports.js";
22
- import type { HitViewIn } from "../plan/index.js";
22
+ import type { HitViewIn } from "../engine/types.js";
23
23
  /** `reddit=reddit@alt,linkedin=linkedin@wren`: the account each site reader signs in as. */
24
24
  export declare function accountsFrom(spec: string | undefined): Map<string, string>;
25
25
  /** A Reddit thread's id, and the comment's when the URL is one comment's permalink. */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wrenautomation/birdwatch",
3
- "version": "0.29.0",
4
- "description": "Research from the open web, driven by an agent one step per command: plan, search, triage, open, extract behind a quote gate, check, review, every record in a ledger. The planner's shapes and plan files, the document side (Document, Finding, Proof, the claim extractor), the sources (SearXNG, Exa, Google, arXiv, YouTube, Reddit, Facebook, the fetch ladder), the runner and the ledger. One CLI, `birdwatch`, with the readers of @wrenautomation/read on it.",
3
+ "version": "0.30.0",
4
+ "description": "Research from the open web, driven by an agent one step per command: plan, search, triage, open, extract behind a quote gate, check, review, every record in a ledger. The agent decides; the engine runs the fixed steps. The ask and plan files, the document side (Document, Finding, Proof, the claim extractor), the sources (SearXNG, Exa, Google, arXiv, YouTube, Reddit, Facebook, the fetch ladder) and the ledger. One CLI, `birdwatch`, with the readers of @wrenautomation/read on it.",
5
5
  "license": "PolyForm-Strict-1.0.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -35,10 +35,6 @@
35
35
  "types": "./dist/ledger/index.d.ts",
36
36
  "import": "./dist/ledger/index.js"
37
37
  },
38
- "./plan": {
39
- "types": "./dist/plan/index.d.ts",
40
- "import": "./dist/plan/index.js"
41
- },
42
38
  "./sources": {
43
39
  "types": "./dist/sources/index.d.ts",
44
40
  "import": "./dist/sources/index.js"
@@ -58,8 +54,8 @@
58
54
  "minisearch": "7.2.0",
59
55
  "ulid": "3.0.2",
60
56
  "zod": "4.6.5",
61
- "@wrenautomation/models": "0.29.0",
62
- "@wrenautomation/read": "0.29.0"
57
+ "@wrenautomation/models": "0.30.0",
58
+ "@wrenautomation/read": "0.30.0"
63
59
  },
64
60
  "scripts": {
65
61
  "typecheck": "tsc --noEmit",
@@ -1,30 +0,0 @@
1
- import { type Envelope, type From, type Step } from "../ledger/records.js";
2
- import type { Deps, RunOptions } from "./ports.js";
3
- import { type RunState } from "./state.js";
4
- import { type StepContext } from "./steps.js";
5
- export interface RunResult {
6
- run: string;
7
- rounds: number;
8
- /** Why the run stopped: the last edge's why, or the step that gave up. */
9
- note: string | null;
10
- /** The run stopped on an edge, not on a step that gave up. */
11
- finished: boolean;
12
- /** The run stopped after a review that said `again`, on `pause`: `resume` goes on. */
13
- paused: boolean;
14
- /**
15
- * The review said `again` into a round past the budget: the runner parked, and this says so.
16
- * The budget is a guard rail: `resume` goes one more round; the agent's `plan --run` opens it.
17
- */
18
- parked: string | null;
19
- state: RunState;
20
- }
21
- /** Tries per call over a Transient. */
22
- export declare const TRIES = 3;
23
- /** The default step bound: three full rounds and some backs. */
24
- export declare const DEFAULT_STEPS = 64;
25
- /** The pause before the next try: to `retryAfter` (a minute at most), else a second per try so far. */
26
- export declare function waitMs(attempt: number, retryAfter: string | undefined, now: () => Date): number;
27
- export declare function run(deps: Deps, options?: RunOptions): Promise<RunResult>;
28
- /** The step context: `write` fills the envelope, `invoke` and `modelOn` write every spend. The agent commands build one per call. */
29
- export declare function context(deps: Deps, options: RunOptions, run: string, round: number, step: Step): StepContext;
30
- export type { Envelope, From };
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/engine/runner.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export { fill } from "./model.js";
2
- export { mergeProposals, type PlanInput, plan, propose, proposePrompt } from "./plan.js";
3
- export { ageOf, defaultPlanFile, PLAN_KINDS, TREE, treeOf } from "./plans/index.js";
4
- export { renderHits, renderKnown, renderYield, sourced, withPremises } from "./render.js";
5
- export { review, reviewPrompt } from "./review.js";
6
- export { dedupeHits, triage, triagePrompt } from "./triage.js";
7
- export * from "./types.js";
@@ -1,8 +0,0 @@
1
- export { fill } from "./model.js";
2
- export { mergeProposals, plan, propose, proposePrompt } from "./plan.js";
3
- export { ageOf, defaultPlanFile, PLAN_KINDS, TREE, treeOf } from "./plans/index.js";
4
- export { renderHits, renderKnown, renderYield, sourced, withPremises } from "./render.js";
5
- export { review, reviewPrompt } from "./review.js";
6
- export { dedupeHits, triage, triagePrompt } from "./triage.js";
7
- export * from "./types.js";
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plan/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,cAAc,EAAkB,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,cAAc,YAAY,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * The planner never picks a model: a caller hands in one `Model` from `@wrenautomation/models`, and its
3
- * id goes on every record it writes. This file keeps only the prompt template fill.
4
- */
5
- /** `{name}` marks filled in one pass; a `{word}` with no value stays as text. */
6
- export declare const fill: (template: string, values: Readonly<Record<string, string>>) => string;
@@ -1,7 +0,0 @@
1
- /**
2
- * The planner never picks a model: a caller hands in one `Model` from `@wrenautomation/models`, and its
3
- * id goes on every record it writes. This file keeps only the prompt template fill.
4
- */
5
- /** `{name}` marks filled in one pass; a `{word}` with no value stays as text. */
6
- export const fill = (template, values) => template.replace(/\{(\w+)\}/g, (mark, name) => values[name] ?? mark);
7
- //# sourceMappingURL=model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/plan/model.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iFAAiF;AACjF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAE,MAAwC,EAAU,EAAE,CACzF,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC"}
@@ -1,31 +0,0 @@
1
- /**
2
- * The plan step: proposals in, one plan out. The model is one proposer; a person, a plan file
3
- * or a second model are others, and all merge the same way. Human queries come first and never
4
- * count against the budget: someone chose them.
5
- */
6
- import type { Model } from "@wrenautomation/models";
7
- import { type Ask, type Plan, type PlanFile, type Proposal, type Query, type YieldRow } from "./types.js";
8
- export declare function proposePrompt(ask: Ask, planFile: PlanFile, yieldRows: readonly YieldRow[], now: Date): string;
9
- /** The model's proposal for an ask under a plan file. */
10
- export declare function propose(ask: Ask, planFile: PlanFile, model: Model, yieldRows?: readonly YieldRow[], now?: Date): Promise<Proposal>;
11
- /**
12
- * One list from many proposals. Human proposals first, then the rest in the order given; the
13
- * same terms twice keep the first. At most `cap` AI queries; human queries all stay.
14
- */
15
- export declare function mergeProposals(proposals: readonly Proposal[], cap: number): Query[];
16
- export interface PlanInput {
17
- ask: Ask;
18
- /** The default for the ask's kind when absent. */
19
- planFile?: PlanFile;
20
- /** No model: the plan is the proposals given, nothing proposed. */
21
- model?: Model | null;
22
- /** From people, plan files or other models. Merged with the model's. */
23
- proposals?: readonly Proposal[];
24
- yieldRows?: readonly YieldRow[];
25
- /** Narrows the plan file's sources for this run. Names not in the plan file are dropped. */
26
- sources?: readonly string[];
27
- round?: number;
28
- now?: () => Date;
29
- }
30
- /** The plan for one round: what to look for, where, under what budget, and what the planner was given. */
31
- export declare function plan(input: PlanInput): Promise<Plan>;
package/dist/plan/plan.js DELETED
@@ -1,87 +0,0 @@
1
- import { fill } from "./model.js";
2
- import { defaultPlanFile } from "./plans/index.js";
3
- import { renderKnown, renderOpen, renderSteer, renderYield } from "./render.js";
4
- import { z, } from "./types.js";
5
- const ProposalAnswer = z.object({
6
- queries: z.array(z.object({ terms: z.string(), why: z.string(), site: z.string().optional() })),
7
- });
8
- export function proposePrompt(ask, planFile, yieldRows, now) {
9
- return fill(planFile.propose, {
10
- n: String(planFile.budget.queries),
11
- year: String(now.getUTCFullYear()),
12
- ask: ask.text,
13
- site: ask.site ?? "",
14
- steer: renderSteer(ask),
15
- open: renderOpen(ask.open),
16
- known: renderKnown(ask),
17
- yield: renderYield(yieldRows),
18
- });
19
- }
20
- /** The model's proposal for an ask under a plan file. */
21
- export async function propose(ask, planFile, model, yieldRows = [], now = new Date()) {
22
- const { value: out } = await model.ask(proposePrompt(ask, planFile, yieldRows, now), ProposalAnswer);
23
- return {
24
- from: "ai",
25
- by: model.id,
26
- queries: out.queries.map((q) => {
27
- const site = q.site ?? ask.site;
28
- return { kind: ask.kind, terms: q.terms, why: q.why, ...(site ? { site } : {}) };
29
- }),
30
- };
31
- }
32
- const key = (q) => `${q.site?.toLowerCase() ?? ""}|${q.terms.replace(/\s+/g, " ").trim().toLowerCase()}`;
33
- /**
34
- * One list from many proposals. Human proposals first, then the rest in the order given; the
35
- * same terms twice keep the first. At most `cap` AI queries; human queries all stay.
36
- */
37
- export function mergeProposals(proposals, cap) {
38
- const ordered = [
39
- ...proposals.filter((p) => p.from === "human"),
40
- ...proposals.filter((p) => p.from !== "human"),
41
- ];
42
- const seen = new Set();
43
- const out = [];
44
- let ai = 0;
45
- for (const p of ordered) {
46
- for (const q of p.queries) {
47
- const terms = q.terms.replace(/\s+/g, " ").trim();
48
- if (!terms || seen.has(key(q)))
49
- continue;
50
- if (p.from !== "human") {
51
- if (ai >= cap)
52
- continue;
53
- ai++;
54
- }
55
- seen.add(key(q));
56
- out.push({ ...q, terms, from: p.from, by: p.by });
57
- }
58
- }
59
- return out;
60
- }
61
- /** The plan for one round: what to look for, where, under what budget, and what the planner was given. */
62
- export async function plan(input) {
63
- const planFile = input.planFile ?? defaultPlanFile(input.ask.kind);
64
- const now = input.now?.() ?? new Date();
65
- const yieldRows = input.yieldRows ?? [];
66
- const proposals = [...(input.proposals ?? [])];
67
- if (input.model)
68
- proposals.push(await propose(input.ask, planFile, input.model, yieldRows, now));
69
- const sources = input.sources
70
- ? planFile.sources.filter((s) => input.sources?.includes(s))
71
- : [...planFile.sources];
72
- return {
73
- ask: input.ask,
74
- round: input.round ?? 1,
75
- queries: mergeProposals(proposals, planFile.budget.queries),
76
- sources,
77
- budget: planFile.budget,
78
- snapshot: {
79
- at: now.toISOString(),
80
- known: [...input.ask.known],
81
- planFile: { id: planFile.id, version: planFile.version },
82
- model: input.model?.id ?? null,
83
- yieldRows: yieldRows.length,
84
- },
85
- };
86
- }
87
- //# sourceMappingURL=plan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/plan/plan.ts"],"names":[],"mappings":"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"}
@@ -1,236 +0,0 @@
1
- /**
2
- * The default plan file per ask kind. A copy of one, tuned and stored beside a ledger, is how
3
- * a run learns: the recipe changes, the planner does not. `birdwatch plans <kind>` prints one to start from.
4
- */
5
- import { PlanFile as PlanFileShape, } from "../types.js";
6
- const SHAPE_QUERIES = `Return ONLY a JSON object, no prose, exactly this shape:
7
- {"queries": [{"terms": "...", "why": "..."}]}`;
8
- const SHAPE_HITS = `Return ONLY a JSON object, no prose, exactly this shape:
9
- {"hits": [{"url": "...", "read": true, "why": "..."}, {"url": "...", "read": false}]}`;
10
- const SHAPE_EDGE = `Return ONLY a JSON object, no prose, exactly this shape:
11
- {"next": "stop", "why": "..."}
12
- where "next" is "stop", "again" (a new round from plan) or "back" (rerun one step of this round, named in "to": "plan", "fetch", "triage", "read" or "extract").`;
13
- const CONTEXT = `Ask: {ask}
14
- {steer}{open}Known already (look past these):
15
- {known}
16
- What yielded before (hits, reads, proposed, kept):
17
- {yield}`;
18
- const TRIAGE_RULES = `- One entry per hit, with its url as given. Mark "read": true for at most {n}.
19
- - Read a hit when what it shows for free (title, snippet, channel, length, date) says it holds what the ask needs and is not known already.
20
- - A hit returned by more than one source is a good sign, not a duplicate.
21
- - "why" on a read only: one short line a person reads to agree or not. A skip has no "why".{age}`;
22
- const REVIEW = `You decide what happens after one round of research.
23
-
24
- ${SHAPE_EDGE}
25
-
26
- Rules:
27
- - "stop" when the found lines answer the ask, or when another round would likely add nothing. New hits and kept findings that fall round by round point that way.
28
- - "again" when the ask is still open and new queries could find more. The gaps say what is missing; say what to look for next in "why".
29
- - "again" too when the reads were mostly "thin" or "off": the queries found the wrong pages, so plan different ones.
30
- - "back" when one step of this round failed for a reason a rerun fixes (a source was down, reads timed out). Name the step in "to".
31
- - The gaps are what a step or the person said this round lacks: a query with no new hits, a page no source could open. Weigh them like the verdicts.
32
- - A check that failed means a finding's quote does not back it, and the finding was dropped. Many failed checks mean the reads were poor: say so in "why".{age}
33
- - "why" is one short line a person reads to agree or not. On "again" it is what the next plan reads first.
34
-
35
- Ask: {ask}
36
- {steer}Round {round}; the budget is {rounds} rounds, a guard rail (past it the runner parks and a person decides), not a stop rule. Hits {hits}, reads {reads}, findings proposed {proposed}, kept {kept}.
37
- Found (the source's date in brackets when it gives one):
38
- {found}
39
- Read (quality: rich, thin, off or empty; then the gap, what the ask still lacks):
40
- {verdicts}
41
- Gaps (the step or the person, then what is missing):
42
- {gaps}
43
- Checked (a sample of the kept findings, each against its document):
44
- {checks}
45
- Notes:
46
- {notes}`;
47
- /**
48
- * The five sides a researcher covers before the reads start. One tree per round; the agent
49
- * fills each facet with tries, in order of what it expects to work.
50
- */
51
- export const TREE = {
52
- facets: [
53
- { name: "number", why: "a figure: a rate, a price, a count, a date" },
54
- { name: "how", why: "how it is done: a method, a step list, a tool" },
55
- { name: "who", why: "who does it or buys it, in their own words" },
56
- { name: "counter", why: "the case against: what fails, who says no" },
57
- {
58
- name: "primary",
59
- why: "the source itself: a study, a filing, a transcript, the maker's own page",
60
- },
61
- ],
62
- thin: 3,
63
- };
64
- const web = {
65
- id: "birdwatch/web",
66
- kind: "web",
67
- version: 6,
68
- propose: `You plan web searches for one research ask.
69
-
70
- ${SHAPE_QUERIES}
71
-
72
- Rules:
73
- - At most {n} queries, each 3 to 10 words, as a person types into a search engine.
74
- - Each query finds a different kind of source: a survey or benchmark with numbers, a trade publication or industry association, people in the field talking (forums, Reddit, reviews), a government statistic.
75
- - "why" says in one short line what the query would add that is not known yet.
76
- - Put a year in a query only when fresh numbers matter. This year is {year}.
77
- - No site: operators. Quotes only around a phrase that must match exactly.
78
-
79
- ${CONTEXT}`,
80
- triage: `You decide which search hits to read for one research ask. A read costs time; a skip costs nothing.
81
-
82
- ${SHAPE_HITS}
83
-
84
- Rules:
85
- ${TRIAGE_RULES}
86
- - Prefer primary sources and people in the field over listicles and aggregators.
87
-
88
- ${CONTEXT}
89
- Hits:
90
- {hits}`,
91
- review: REVIEW,
92
- sources: ["searxng", "exa", "google"],
93
- budget: { queries: 3, reads: 6, rounds: 3, checks: 3 },
94
- tree: TREE,
95
- age: "Prices, tools and numbers that move: prefer the last two years. A principle or a method can be old.",
96
- };
97
- const video = {
98
- id: "birdwatch/video",
99
- kind: "video",
100
- version: 6,
101
- propose: `You plan video searches for one research ask: talks, walkthroughs, interviews and reviews on YouTube and podcast feeds.
102
-
103
- ${SHAPE_QUERIES}
104
-
105
- Rules:
106
- - At most {n} queries, each 2 to 8 words, as a person types into a video search box.
107
- - Each query reaches a different kind of speaker: a practitioner showing their work, a conference talk, an interview or podcast, a critic or reviewer.
108
- - "why" says in one short line what the query would add that is not known yet.
109
- - This year is {year}; add it only when the topic moves fast.
110
-
111
- ${CONTEXT}`,
112
- triage: `You decide which videos to read (transcript and screen) for one research ask. A read costs minutes per video; a skip costs nothing.
113
-
114
- ${SHAPE_HITS}
115
-
116
- Rules:
117
- ${TRIAGE_RULES}
118
- - Length is in seconds. Skip a clip under 60 seconds unless the ask is about short-form video. Prefer 5 to 60 minutes.
119
- - A channel that yielded nothing before is a reason to skip.
120
-
121
- ${CONTEXT}
122
- Hits:
123
- {hits}`,
124
- review: REVIEW,
125
- sources: ["youtube", "podcasts"],
126
- budget: { queries: 3, reads: 4, rounds: 2, checks: 3 },
127
- tree: TREE,
128
- age: "Tools and platforms: prefer the last two years. A talk on a principle can be old.",
129
- };
130
- const channel = {
131
- id: "birdwatch/channel",
132
- kind: "channel",
133
- version: 6,
134
- propose: `You plan searches that find the people and channels worth following for one research ask: creators, newsletters, podcasts, forums.
135
-
136
- ${SHAPE_QUERIES}
137
-
138
- Rules:
139
- - At most {n} queries, each 3 to 10 words.
140
- - Each query finds a different kind of channel: a creator on video, a writer or newsletter, a podcast, a community.
141
- - "why" says in one short line what the query would add that is not known yet.
142
-
143
- ${CONTEXT}`,
144
- triage: `You decide which channel pages to read for one research ask: a profile, an about page, a feed. A read costs time; a skip costs nothing.
145
-
146
- ${SHAPE_HITS}
147
-
148
- Rules:
149
- ${TRIAGE_RULES}
150
- - Prefer the channel's own page over a page about it.
151
-
152
- ${CONTEXT}
153
- Hits:
154
- {hits}`,
155
- review: REVIEW,
156
- sources: ["searxng", "youtube", "exa"],
157
- budget: { queries: 3, reads: 6, rounds: 2, checks: 3 },
158
- tree: TREE,
159
- age: "A channel that has not posted in the last year counts for little.",
160
- };
161
- const person = {
162
- id: "birdwatch/person",
163
- kind: "person",
164
- version: 6,
165
- propose: `You plan searches about one person or company for one research ask: what they do, what they said, what others say about them.
166
-
167
- ${SHAPE_QUERIES}
168
-
169
- Rules:
170
- - At most {n} queries, each 3 to 10 words. Name the person or company in each, as written in the ask.
171
- - Each query finds a different kind of page: their own site or profile, an interview or talk, press or reviews, a filing or directory.
172
- - "why" says in one short line what the query would add that is not known yet.
173
- - No site: operators.
174
-
175
- ${CONTEXT}`,
176
- triage: `You decide which pages about one person or company to read for one research ask. A read costs time; a skip costs nothing.
177
-
178
- ${SHAPE_HITS}
179
-
180
- Rules:
181
- ${TRIAGE_RULES}
182
- - Skip a page about a different person or company with the same name.
183
- - Prefer what they wrote or said over what a directory copied.
184
-
185
- ${CONTEXT}
186
- Hits:
187
- {hits}`,
188
- review: REVIEW,
189
- sources: ["searxng", "exa", "linkedin", "google"],
190
- budget: { queries: 4, reads: 6, rounds: 2, checks: 3 },
191
- tree: TREE,
192
- age: "What they do now: prefer the latest pages. Their history can be old.",
193
- };
194
- const site = {
195
- id: "birdwatch/site",
196
- kind: "site",
197
- version: 6,
198
- propose: `You plan searches inside one website for one research ask. Every query runs on {site} only.
199
-
200
- ${SHAPE_QUERIES}
201
-
202
- Rules:
203
- - At most {n} queries, each 2 to 8 words, as a person types into the site's own search box.
204
- - Each query reaches a different part of the site: its product or service pages, its pricing, its blog or help, its people.
205
- - "why" says in one short line what the query would add that is not known yet.
206
- - No site: operators: the site is set for you.
207
-
208
- ${CONTEXT}`,
209
- triage: `You decide which pages of {site} to read for one research ask. A read costs time; a skip costs nothing.
210
-
211
- ${SHAPE_HITS}
212
-
213
- Rules:
214
- ${TRIAGE_RULES}
215
- - Skip a url off {site}.
216
-
217
- ${CONTEXT}
218
- Hits:
219
- {hits}`,
220
- review: REVIEW,
221
- sources: ["sitemap", "searxng", "fetch"],
222
- budget: { queries: 4, reads: 8, rounds: 2, checks: 3 },
223
- tree: TREE,
224
- age: "When two pages of the site disagree, the later one counts.",
225
- };
226
- const DEFAULTS = { web, video, channel, person, site };
227
- /** The default plan file for a kind, validated, as a fresh copy. */
228
- export function defaultPlanFile(kind) {
229
- return PlanFileShape.parse(structuredClone(DEFAULTS[kind]));
230
- }
231
- /** The plan file's word on age; a stored file from before version 4 takes its kind's default. Version 5: the review no longer says "at most". Version 6: `tree`, the query tree's guide. */
232
- export const ageOf = (planFile) => planFile.age ?? DEFAULTS[planFile.kind].age;
233
- /** The plan file's guide for a query tree; a stored file from before version 6 takes its kind's default. */
234
- export const treeOf = (planFile) => planFile.tree ?? DEFAULTS[planFile.kind].tree;
235
- export const PLAN_KINDS = Object.keys(DEFAULTS);
236
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plan/plans/index.ts"],"names":[],"mappings":"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"}