@rackbops/docket-types 0.21.0 → 0.23.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 (42) hide show
  1. package/README.md +56 -0
  2. package/dist/index.d.ts +8 -6
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +8 -6
  5. package/dist/index.js.map +1 -1
  6. package/dist/news.d.ts +52 -0
  7. package/dist/news.d.ts.map +1 -1
  8. package/dist/news.js +243 -24
  9. package/dist/news.js.map +1 -1
  10. package/dist/research-answer.d.ts +138 -7
  11. package/dist/research-answer.d.ts.map +1 -1
  12. package/dist/research-answer.js +167 -12
  13. package/dist/research-answer.js.map +1 -1
  14. package/dist/research-social.d.ts +108 -0
  15. package/dist/research-social.d.ts.map +1 -0
  16. package/dist/research-social.js +320 -0
  17. package/dist/research-social.js.map +1 -0
  18. package/dist/research.d.ts +28 -0
  19. package/dist/research.d.ts.map +1 -1
  20. package/dist/research.js +55 -16
  21. package/dist/research.js.map +1 -1
  22. package/dist/social-links.d.ts +30 -0
  23. package/dist/social-links.d.ts.map +1 -0
  24. package/dist/social-links.js +129 -0
  25. package/dist/social-links.js.map +1 -0
  26. package/dist/want-ebay.d.ts +6 -3
  27. package/dist/want-ebay.d.ts.map +1 -1
  28. package/dist/want-ebay.js +77 -30
  29. package/dist/want-ebay.js.map +1 -1
  30. package/dist/want-sources.d.ts +21 -0
  31. package/dist/want-sources.d.ts.map +1 -1
  32. package/dist/want-sources.js +7 -0
  33. package/dist/want-sources.js.map +1 -1
  34. package/dist/wantjudge.d.ts +32 -3
  35. package/dist/wantjudge.d.ts.map +1 -1
  36. package/dist/wantjudge.js +207 -14
  37. package/dist/wantjudge.js.map +1 -1
  38. package/dist/wantlist.d.ts +7 -0
  39. package/dist/wantlist.d.ts.map +1 -1
  40. package/dist/wantlist.js +1 -0
  41. package/dist/wantlist.js.map +1 -1
  42. package/package.json +2 -2
package/README.md CHANGED
@@ -193,6 +193,62 @@ The tracker's task types, built on `@rackbops/docket-core`'s contract. Shipped s
193
193
  of a full answer revises one that invents categories where the source defines them, or skips
194
194
  an empty one.
195
195
 
196
+ **Social platforms** (0.23.0, docket#107; `docs/social-sources.md` has the matrix and roshne's
197
+ decisions): a `web` first pass may search YouTube, TikTok, Instagram and Bluesky for what
198
+ people say, through the tools it already has -- `firecrawl_scrape` with a typed `alexandria`
199
+ body (Firecrawl's `youtube-com` provider: `videos/search_videos`, `video_transcript`,
200
+ `video_comments`; its `oriane` provider, an index of public posts: `tiktok/posts-search`,
201
+ `instagram/posts-search`) and WebFetch on Bluesky's public `searchPosts` -- so no new tool, key
202
+ or runner change, and the prompt is the only control over which provider a run calls and how
203
+ often (`socialLines`), as it is for `proxy: "basic"`. The request's `social` says when: `auto`
204
+ (the default, and what an absent value means) searches when the question asks what people
205
+ recommend, think or experienced; `none` never; a list of `youtube`, `tiktok`, `instagram`,
206
+ `bluesky` (or `yt`, `insta`, `ig`, `bsky`) always searches those. `parseSocial` reads it and
207
+ answers null for anything else (`reddit`, `x`, a typo), so a host refuses it at intake; at run
208
+ time an unreadable value is `auto`. `since` (an instant) bounds the posts: older ones are left
209
+ out, undated ones may be used, marked. The run spends about 120 Firecrawl credits at most
210
+ (`SOCIAL_MAX_CREDITS`: 4 youtube-com calls, searches and reads together; 2 oriane calls at the
211
+ default detail; 2 Bluesky fetches), follows a `continuation` once, spreads its reads across
212
+ channels, and gets 20 turns (`SOCIAL_MAX_TURNS`) in place of 15; the 1 USD cap, the reviewer's
213
+ caps and the tool lists are unchanged. A run on gathered pages (a `sent` request, a second
214
+ pass) searches no platform: it cannot open pages.
215
+
216
+ A finding from a post cites the post's own page and carries `platform`, `publishedAt` (the
217
+ instant; "about <date>" worked out from a relative time; "undated") and `evidence` (`read`:
218
+ the transcript, the comments or the post was opened; `snippet`: a caption or a search result
219
+ only); `parseAnswer` keeps them when the platform is one of `SOCIAL_PLATFORMS` and a source is
220
+ on it, or infers the platform when every source's host agrees, and drops them on a web page.
221
+ The DM shows them: `- <claim> (YouTube, about 2026-10-19, snippet only) <url>`. The answer
222
+ carries `coverage`, one row per platform (`searched`, `empty`, `unavailable` with which call
223
+ failed, or `skipped` with why) and one for Reddit, shown as one "Social:" line before the
224
+ reviewer's note, kept whole like the "Couldn't open:" tail (at most 500 characters). The
225
+ reviewer (`socialChecks`) opens post pages where they open (at most one youtube-com call, no
226
+ oriane call), turns an unopened `read` into `snippet`, moves stock, price and availability
227
+ claims resting on posts alone to `uncertain`, rewords opinions as what posters say, counts a
228
+ repost once, checks `coverage` and `since`, and removes a finding that follows an instruction
229
+ from a post. Saved findings from posts are tagged `["research", <verdict>, "social",
230
+ <platform>]`.
231
+
232
+ Plain code is the belt (`socialOutgoing`, on the answer that goes out, first pass and update):
233
+ a social post link is one post (`canonicalSocialUrl`: `youtu.be`, shorts, live and embed links
234
+ and tracking parameters to the watch page; Instagram reel and p links to one `/p/` page; TikTok
235
+ post queries dropped; hashes and tracking parameters dropped everywhere; any other URL untouched), applied in
236
+ `parseAnswer` so stored drafts and saved findings carry canonical links; a finding repeating an
237
+ earlier one (same claim, same first link) is dropped; with `since` (whole UTC days), a post
238
+ finding dated before it moves to `uncertain` saying when it was posted; a finding whose every source is on a social
239
+ platform and whose claim speaks of stock, a price or availability (whole words, or a currency
240
+ amount) moves to `uncertain` "(said in a post, not verified)"; and `coverage` is rebuilt
241
+ (`withCoverage`): every chosen platform present (`skipped`, "not reported by the run", when the
242
+ run left one out), Reddit always `unavailable` with `REDDIT_WHY`, the run's other rows after,
243
+ at most 8; `none`, and a `sent` request, drop it. `uncertain` stays within its cap of 6, the
244
+ run's own lines first; past it, the last line says how many more were moved.
245
+
246
+ Reddit is never a route (roshne, 2026-11-07: "if we want to do anything with Reddit, it has to
247
+ be done through a local PC session with me logged in"): not here, not in a host. X, Threads,
248
+ Pinterest, Facebook and Mastodon are not searched either; a recurring social watch is a later
249
+ question. The belt's price rule applies to any answer, `none` included: a web run that cites a
250
+ post for a price gets the same treatment.
251
+
196
252
  - `scout` (category 1, E9): execute lane, `calendar` every N days at the owner's hour (the host bounds N; the tracker
197
253
  plugin allows 1 to 30). One
198
254
  `claude -p` Job a run (WebSearch and WebFetch; 30 turns, 1.50 USD, 10 minutes, item 61 proposed)
package/dist/index.d.ts CHANGED
@@ -14,23 +14,25 @@ export type { Lane } from "@rackbops/docket-core";
14
14
  export { type ExtractedPrice, extractPrice, jsonLdBlocks, MAX_PATTERN_BODY_CHARS, MAX_PATTERN_CHARS, parsePrice, patternProblem, priceFromJson, priceFromMeta, priceFromPattern, } from "./extract.js";
15
15
  export { checkDraft, INTAKE_ALLOWED_TOOLS, INTAKE_MAX_BUDGET_USD, INTAKE_MAX_TURNS, INTAKE_SCHEMA, INTAKE_STATES, INTAKE_TIMEOUT_MS, type IntakeAnswer, type IntakeContext, type IntakeDraft, type IntakeField, type IntakeLine, type IntakeRead, type IntakeState, type IntakeTask, type IntakeType, type IntakeValue, intakeJob, MAX_LINE_CHARS, MAX_REPLY_CHARS, MAX_TRANSCRIPT_CHARS, readIntake, transcriptLines, } from "./intake.js";
16
16
  export { currencyCode, money } from "./money.js";
17
- export { LOOKBACK_DAYS, MAX_DISAMBIGUATE_CHARS, MAX_INCLUDE, MAX_KIND_CHARS, MAX_NEWS_ITEMS, MAX_NOTES_CHARS, MAX_SEEN, MAX_SUBJECT_CHARS, NEWS_MAX_BUDGET_USD, NEWS_MAX_TURNS, NEWS_REVIEW_MAX_BUDGET_USD, NEWS_REVIEW_MAX_TURNS, NEWS_REVIEW_SCHEMA, NEWS_SCHEMA, type NewsConfig, type NewsItem, type NewsPhase, type NewsShow, type NewsState, news, newsJob, newsKeys, newsReviewJob, newsState, PROMPT_SEEN, parseNews, parseNewsReview, renderNews, titleKey, } from "./news.js";
17
+ export { changedFacts, factsOf, LOOKBACK_DAYS, MAX_DISAMBIGUATE_CHARS, MAX_INCLUDE, MAX_KIND_CHARS, MAX_NEWS_ITEMS, MAX_NOTES_CHARS, MAX_SEEN, MAX_SENT, MAX_SUBJECT_CHARS, NEWS_MAX_BUDGET_USD, NEWS_MAX_TURNS, NEWS_REVIEW_MAX_BUDGET_USD, NEWS_REVIEW_MAX_TURNS, NEWS_REVIEW_SCHEMA, NEWS_SCHEMA, type NewsConfig, type NewsFacts, type NewsItem, type NewsPhase, type NewsShow, type NewsState, news, newsJob, newsKeys, newsReviewJob, newsState, PROMPT_SEEN, parseNews, parseNewsReview, renderNews, type SentItem, titleKey, } from "./news.js";
18
18
  export { BASELINE_RULES, type BaselineRule, DEFAULT_BASELINE, DEFAULT_DROP_PERCENT, MISSES_BEFORE_TELLING, type PriceConfig, type PriceState, price, reference, } from "./price.js";
19
19
  export { DEFAULT_SNOOZE_MS, type ReminderConfig, reminder, snoozeUntil } from "./reminder.js";
20
20
  export { decisionOf, isRenewalDecision, RENEWAL_DECISIONS, type RenewalConfig, type RenewalDecision, type RenewalState, renewal, } from "./renewal.js";
21
- export { AUTH_RETRY_MS, deadlineOf, draftJson, MAX_CONTEXT_CHARS, MAX_QUESTION_CHARS, MAX_TRIES, MIN_SOURCES_WAIT_MS, RESEARCH_MAX_BUDGET_USD, RESEARCH_MAX_TURNS, RESEARCH_TIMEOUT_MS, REVIEW_MAX_BUDGET_USD, REVIEW_MAX_TURNS, REVIEW_TIMEOUT_MS, type ResearchConfig, type ResearchJobOptions, type ResearchOptions, type ResearchPhase, type ResearchState, research, researchJob, researchState, researchType, reviewJob, usesSentSources, } from "./research.js";
22
- export { ANSWER_SCHEMA, type BlockedPage, clean, fitMessage, MAX_BLOCKED, MAX_MESSAGE_CHARS, parseAnswer, parseBlocked, parseReview, REVIEW_SCHEMA, type ResearchAnswer, type ResearchFinding, type Review, renderAnswer, renderUpdate, safeUrl, VERDICTS, type Verdict, ZWSP, } from "./research-answer.js";
21
+ export { AUTH_RETRY_MS, deadlineOf, draftJson, MAX_CONTEXT_CHARS, MAX_QUESTION_CHARS, MAX_TRIES, MIN_SOURCES_WAIT_MS, RESEARCH_MAX_BUDGET_USD, RESEARCH_MAX_TURNS, RESEARCH_TIMEOUT_MS, REVIEW_MAX_BUDGET_USD, REVIEW_MAX_TURNS, REVIEW_TIMEOUT_MS, type ResearchConfig, type ResearchJobOptions, type ResearchOptions, type ResearchPhase, type ResearchState, research, researchJob, researchState, researchType, reviewJob, sinceOf, usesSentSources, } from "./research.js";
22
+ export { ANSWER_SCHEMA, type BlockedPage, COVERAGE_STATUSES, type Coverage, type CoverageStatus, clean, coverageLine, findingLine, fitMessage, MAX_BLOCKED, MAX_COVERAGE, MAX_COVERAGE_LINE_CHARS, MAX_MESSAGE_CHARS, MAX_PUBLISHED_CHARS, MAX_UNCERTAIN, MAX_UNCERTAIN_CHARS, parseAnswer, parseBlocked, parseCoverage, parseReview, REVIEW_SCHEMA, type ResearchAnswer, type ResearchFinding, type Review, renderAnswer, renderUpdate, safeUrl, sameClaim, VERDICTS, type Verdict, ZWSP, } from "./research-answer.js";
23
+ export { BLUESKY_SEARCH_URL, NOT_REPORTED, parseSocial, postDate, REDDIT_WHY, SAID_IN_POST, SOCIAL_AUTO, SOCIAL_BLUESKY_CALLS, SOCIAL_MAX_CREDITS, SOCIAL_MAX_TURNS, SOCIAL_ORIANE_CALLS, SOCIAL_YOUTUBE_CALLS, type SocialChoice, socialChecks, socialChoice, socialLines, socialOutgoing, socialPlatforms, withCoverage, } from "./research-social.js";
23
24
  export { BARRED_SITES, blockedKey, GATHERED_ALLOWED_TOOLS, GATHERED_DENIED_TOOLS, type GatheredPage, gatheredPages, MAX_GATHERED_CHARS, MAX_GATHERED_PAGES, MAX_PAGE_CHARS, MAX_PAGE_TITLE_CHARS, MIN_PAGE_CHARS, NOT_OPENED_WHY, pagesBlock, pagesJson, type ReadSources, SENT_DISALLOWED_TOOLS, SOURCES_DEADLINE_MARGIN_MINUTES, SOURCES_DEADLINE_MARGIN_MS, SOURCES_WAIT_DAYS, SOURCES_WAIT_MS, sourcesExpiry, uniqueBlocked, WEB_DISALLOWED_TOOLS, withBarredSites, } from "./research-sources.js";
24
25
  export { BGG_CATEGORIES, bggCategoryUrl, FIRECRAWL_TOOLS, WEB_ALLOWED_TOOLS, } from "./research-web.js";
25
26
  export { RETRIED, type Retry, retryOutcome } from "./retry.js";
26
27
  export { itemKey, LENS_TEXT, LENSES, type Lens, lensOf, MAX_FOR_CHARS, MAX_INTEREST_CHARS, MAX_INTERESTS, MAX_ITEMS, MAX_SCOUT_NOTES, MAX_SHOWN, MIN_ITEMS, PROMPT_SHOWN, parseScout, renderScout, SCOUT_MAX_BUDGET_USD, SCOUT_MAX_TURNS, SCOUT_SCHEMA, SCOUT_TIMEOUT_MS, type ScoutConfig, type ScoutItem, type ScoutState, type ShownItem, scout, scoutJob, scoutState, } from "./scout.js";
28
+ export { canonicalSocialUrl, isSocialPlatform, platformName, platformOf, SOCIAL_PLATFORMS, type SocialPlatform, } from "./social-links.js";
27
29
  export { BGG_ATTRIBUTION, BGG_HOST, BGG_SPACING_MS, type BggOptions, bggSource, bggThingUrl, MAX_SCANNED, parseBggThingId, parseMarketplace, } from "./want-bgg.js";
28
30
  export { DETAIL_CHARS, EBAY_ATTRIBUTION, EBAY_CURRENCY, EBAY_ITEM_ID, EBAY_ITEM_PATH, EBAY_LIMIT, EBAY_MARKETPLACE, EBAY_SEARCH_PATH, type EbayBrowse, type EbayRequest, type EbaySearch, ebayItemRequest, ebayRequest, ebaySource, parseEbayAnswer, parseEbayItem, } from "./want-ebay.js";
29
31
  export { matchesWords, minorUnits, parseShopifyAnswer, SHOPIFY_ATTRIBUTION, SHOPIFY_CAPABILITY, SHOPIFY_COUNTRY, SHOPIFY_CREDITS, SHOPIFY_CURRENCY, SHOPIFY_LIMIT, SHOPIFY_PROVIDER, type ShopifyRequest, type ShopifyScrape, type ShopifySearch, searchWords, shopifyQuery, shopifyRequest, shopifySource, } from "./want-shopify.js";
30
- export { inboxSource, isEbayHost, type Listing, type ListingDetail, listingKey, MAX_LISTINGS, NEVER_EBAY, pageSource, type ReadInbox, readListings, type SearchLimits, SOURCE_IDS, type Source, type SourceId, SourceMiss, SourceUnavailableError, type Submitted, submittedListing, } from "./want-sources.js";
32
+ export { inboxSource, isEbayHost, type Listing, type ListingDetail, ListingUnreadable, listingKey, MAX_LISTINGS, NEVER_EBAY, pageSource, type ReadInbox, readListings, type SearchLimits, SOURCE_IDS, type Source, type SourceId, SourceMiss, SourceUnavailableError, type Submitted, submittedListing, } from "./want-sources.js";
31
33
  export { SOURCE_TEXT, type SourceText, sourceText } from "./want-text.js";
32
- export { FITS, type Fit, JUDGE_MAX_BUDGET_USD, JUDGE_MAX_TURNS, JUDGE_SCHEMA, JUDGE_TIMEOUT_MS, type JudgeOptions, type JudgeState, type JudgeVerdict, judgeHosts, judgeJob, judgeState, parseVerdicts, RETRY_GRACE_MS, renderJudged, renderUnchecked, wantjudgeType, } from "./wantjudge.js";
33
- export { checkMark, clip, confirmListings, EXCLUDE_CHARS, hasConfirm, inert, isExcluded, keepsFindings, listingFinding, listingLine, MAX_DM_CHARS, MAX_EXCLUDE, MAX_NEW_PER_RUN, MAX_REPORTED, miss, moreLine, type Polled, parseExclude, pollWant, priceText, renderWant, SHOWN_IN_DM, type WantConfig, type WantState, wanted, wantlistType, wantState, withinLimits, } from "./wantlist.js";
34
+ export { FITS, type Fit, type HeldItem, JUDGE_DETAIL_CHARS, JUDGE_MAX_BUDGET_USD, JUDGE_MAX_TURNS, JUDGE_SCHEMA, JUDGE_TIMEOUT_MS, type JudgeItem, type JudgeOptions, type JudgeState, type JudgeVerdict, judgeHosts, judgeJob, judgeState, parseVerdicts, RETRY_GRACE_MS, renderJudged, renderUnchecked, wantjudgeType, } from "./wantjudge.js";
35
+ export { checkMark, clip, confirmListings, EXCLUDE_CHARS, hasConfirm, inert, isExcluded, keepsFindings, listingFinding, listingLine, MAX_DM_CHARS, MAX_EXCLUDE, MAX_NEW_PER_RUN, MAX_REPORTED, MAX_WANT_NOTES, miss, moreLine, type Polled, parseExclude, pollWant, priceText, renderWant, SHOWN_IN_DM, type WantConfig, type WantState, wanted, wantlistType, wantState, withinLimits, } from "./wantlist.js";
34
36
  /**
35
37
  * The six task categories the tracker starts with (plan section 1.2), as type identifiers, then
36
38
  * `wantjudge`: category 2's watch with the model's look first (plan 5.4), a type of its own.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21,23 +21,25 @@ import { wantlistType } from "./wantlist.js";
21
21
  export { extractPrice, jsonLdBlocks, MAX_PATTERN_BODY_CHARS, MAX_PATTERN_CHARS, parsePrice, patternProblem, priceFromJson, priceFromMeta, priceFromPattern, } from "./extract.js";
22
22
  export { checkDraft, INTAKE_ALLOWED_TOOLS, INTAKE_MAX_BUDGET_USD, INTAKE_MAX_TURNS, INTAKE_SCHEMA, INTAKE_STATES, INTAKE_TIMEOUT_MS, intakeJob, MAX_LINE_CHARS, MAX_REPLY_CHARS, MAX_TRANSCRIPT_CHARS, readIntake, transcriptLines, } from "./intake.js";
23
23
  export { currencyCode, money } from "./money.js";
24
- export { LOOKBACK_DAYS, MAX_DISAMBIGUATE_CHARS, MAX_INCLUDE, MAX_KIND_CHARS, MAX_NEWS_ITEMS, MAX_NOTES_CHARS, MAX_SEEN, MAX_SUBJECT_CHARS, NEWS_MAX_BUDGET_USD, NEWS_MAX_TURNS, NEWS_REVIEW_MAX_BUDGET_USD, NEWS_REVIEW_MAX_TURNS, NEWS_REVIEW_SCHEMA, NEWS_SCHEMA, news, newsJob, newsKeys, newsReviewJob, newsState, PROMPT_SEEN, parseNews, parseNewsReview, renderNews, titleKey, } from "./news.js";
24
+ export { changedFacts, factsOf, LOOKBACK_DAYS, MAX_DISAMBIGUATE_CHARS, MAX_INCLUDE, MAX_KIND_CHARS, MAX_NEWS_ITEMS, MAX_NOTES_CHARS, MAX_SEEN, MAX_SENT, MAX_SUBJECT_CHARS, NEWS_MAX_BUDGET_USD, NEWS_MAX_TURNS, NEWS_REVIEW_MAX_BUDGET_USD, NEWS_REVIEW_MAX_TURNS, NEWS_REVIEW_SCHEMA, NEWS_SCHEMA, news, newsJob, newsKeys, newsReviewJob, newsState, PROMPT_SEEN, parseNews, parseNewsReview, renderNews, titleKey, } from "./news.js";
25
25
  export { BASELINE_RULES, DEFAULT_BASELINE, DEFAULT_DROP_PERCENT, MISSES_BEFORE_TELLING, price, reference, } from "./price.js";
26
26
  export { DEFAULT_SNOOZE_MS, reminder, snoozeUntil } from "./reminder.js";
27
27
  export { decisionOf, isRenewalDecision, RENEWAL_DECISIONS, renewal, } from "./renewal.js";
28
- export { AUTH_RETRY_MS, deadlineOf, draftJson, MAX_CONTEXT_CHARS, MAX_QUESTION_CHARS, MAX_TRIES, MIN_SOURCES_WAIT_MS, RESEARCH_MAX_BUDGET_USD, RESEARCH_MAX_TURNS, RESEARCH_TIMEOUT_MS, REVIEW_MAX_BUDGET_USD, REVIEW_MAX_TURNS, REVIEW_TIMEOUT_MS, research, researchJob, researchState, researchType, reviewJob, usesSentSources, } from "./research.js";
29
- export { ANSWER_SCHEMA, clean, fitMessage, MAX_BLOCKED, MAX_MESSAGE_CHARS, parseAnswer, parseBlocked, parseReview, REVIEW_SCHEMA, renderAnswer, renderUpdate, safeUrl, VERDICTS, ZWSP, } from "./research-answer.js";
28
+ export { AUTH_RETRY_MS, deadlineOf, draftJson, MAX_CONTEXT_CHARS, MAX_QUESTION_CHARS, MAX_TRIES, MIN_SOURCES_WAIT_MS, RESEARCH_MAX_BUDGET_USD, RESEARCH_MAX_TURNS, RESEARCH_TIMEOUT_MS, REVIEW_MAX_BUDGET_USD, REVIEW_MAX_TURNS, REVIEW_TIMEOUT_MS, research, researchJob, researchState, researchType, reviewJob, sinceOf, usesSentSources, } from "./research.js";
29
+ export { ANSWER_SCHEMA, COVERAGE_STATUSES, clean, coverageLine, findingLine, fitMessage, MAX_BLOCKED, MAX_COVERAGE, MAX_COVERAGE_LINE_CHARS, MAX_MESSAGE_CHARS, MAX_PUBLISHED_CHARS, MAX_UNCERTAIN, MAX_UNCERTAIN_CHARS, parseAnswer, parseBlocked, parseCoverage, parseReview, REVIEW_SCHEMA, renderAnswer, renderUpdate, safeUrl, sameClaim, VERDICTS, ZWSP, } from "./research-answer.js";
30
+ export { BLUESKY_SEARCH_URL, NOT_REPORTED, parseSocial, postDate, REDDIT_WHY, SAID_IN_POST, SOCIAL_AUTO, SOCIAL_BLUESKY_CALLS, SOCIAL_MAX_CREDITS, SOCIAL_MAX_TURNS, SOCIAL_ORIANE_CALLS, SOCIAL_YOUTUBE_CALLS, socialChecks, socialChoice, socialLines, socialOutgoing, socialPlatforms, withCoverage, } from "./research-social.js";
30
31
  export { BARRED_SITES, blockedKey, GATHERED_ALLOWED_TOOLS, GATHERED_DENIED_TOOLS, gatheredPages, MAX_GATHERED_CHARS, MAX_GATHERED_PAGES, MAX_PAGE_CHARS, MAX_PAGE_TITLE_CHARS, MIN_PAGE_CHARS, NOT_OPENED_WHY, pagesBlock, pagesJson, SENT_DISALLOWED_TOOLS, SOURCES_DEADLINE_MARGIN_MINUTES, SOURCES_DEADLINE_MARGIN_MS, SOURCES_WAIT_DAYS, SOURCES_WAIT_MS, sourcesExpiry, uniqueBlocked, WEB_DISALLOWED_TOOLS, withBarredSites, } from "./research-sources.js";
31
32
  export { BGG_CATEGORIES, bggCategoryUrl, FIRECRAWL_TOOLS, WEB_ALLOWED_TOOLS, } from "./research-web.js";
32
33
  export { RETRIED, retryOutcome } from "./retry.js";
33
34
  export { itemKey, LENS_TEXT, LENSES, lensOf, MAX_FOR_CHARS, MAX_INTEREST_CHARS, MAX_INTERESTS, MAX_ITEMS, MAX_SCOUT_NOTES, MAX_SHOWN, MIN_ITEMS, PROMPT_SHOWN, parseScout, renderScout, SCOUT_MAX_BUDGET_USD, SCOUT_MAX_TURNS, SCOUT_SCHEMA, SCOUT_TIMEOUT_MS, scout, scoutJob, scoutState, } from "./scout.js";
35
+ export { canonicalSocialUrl, isSocialPlatform, platformName, platformOf, SOCIAL_PLATFORMS, } from "./social-links.js";
34
36
  export { BGG_ATTRIBUTION, BGG_HOST, BGG_SPACING_MS, bggSource, bggThingUrl, MAX_SCANNED, parseBggThingId, parseMarketplace, } from "./want-bgg.js";
35
37
  export { DETAIL_CHARS, EBAY_ATTRIBUTION, EBAY_CURRENCY, EBAY_ITEM_ID, EBAY_ITEM_PATH, EBAY_LIMIT, EBAY_MARKETPLACE, EBAY_SEARCH_PATH, ebayItemRequest, ebayRequest, ebaySource, parseEbayAnswer, parseEbayItem, } from "./want-ebay.js";
36
38
  export { matchesWords, minorUnits, parseShopifyAnswer, SHOPIFY_ATTRIBUTION, SHOPIFY_CAPABILITY, SHOPIFY_COUNTRY, SHOPIFY_CREDITS, SHOPIFY_CURRENCY, SHOPIFY_LIMIT, SHOPIFY_PROVIDER, searchWords, shopifyQuery, shopifyRequest, shopifySource, } from "./want-shopify.js";
37
- export { inboxSource, isEbayHost, listingKey, MAX_LISTINGS, NEVER_EBAY, pageSource, readListings, SOURCE_IDS, SourceMiss, SourceUnavailableError, submittedListing, } from "./want-sources.js";
39
+ export { inboxSource, isEbayHost, ListingUnreadable, listingKey, MAX_LISTINGS, NEVER_EBAY, pageSource, readListings, SOURCE_IDS, SourceMiss, SourceUnavailableError, submittedListing, } from "./want-sources.js";
38
40
  export { SOURCE_TEXT, sourceText } from "./want-text.js";
39
- export { FITS, JUDGE_MAX_BUDGET_USD, JUDGE_MAX_TURNS, JUDGE_SCHEMA, JUDGE_TIMEOUT_MS, judgeHosts, judgeJob, judgeState, parseVerdicts, RETRY_GRACE_MS, renderJudged, renderUnchecked, wantjudgeType, } from "./wantjudge.js";
40
- export { checkMark, clip, confirmListings, EXCLUDE_CHARS, hasConfirm, inert, isExcluded, keepsFindings, listingFinding, listingLine, MAX_DM_CHARS, MAX_EXCLUDE, MAX_NEW_PER_RUN, MAX_REPORTED, miss, moreLine, parseExclude, pollWant, priceText, renderWant, SHOWN_IN_DM, wanted, wantlistType, wantState, withinLimits, } from "./wantlist.js";
41
+ export { FITS, JUDGE_DETAIL_CHARS, JUDGE_MAX_BUDGET_USD, JUDGE_MAX_TURNS, JUDGE_SCHEMA, JUDGE_TIMEOUT_MS, judgeHosts, judgeJob, judgeState, parseVerdicts, RETRY_GRACE_MS, renderJudged, renderUnchecked, wantjudgeType, } from "./wantjudge.js";
42
+ export { checkMark, clip, confirmListings, EXCLUDE_CHARS, hasConfirm, inert, isExcluded, keepsFindings, listingFinding, listingLine, MAX_DM_CHARS, MAX_EXCLUDE, MAX_NEW_PER_RUN, MAX_REPORTED, MAX_WANT_NOTES, miss, moreLine, parseExclude, pollWant, priceText, renderWant, SHOWN_IN_DM, wanted, wantlistType, wantState, withinLimits, } from "./wantlist.js";
41
43
  /**
42
44
  * The six task categories the tracker starts with (plan section 1.2), as type identifiers, then
43
45
  * `wantjudge`: category 2's watch with the model's look first (plan 5.4), a type of its own.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAG5C,OAAO,EAEL,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EAWjB,SAAS,EACT,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,eAAe,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,cAAc,EACd,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EAMX,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,aAAa,EACb,SAAS,EACT,WAAW,EACX,SAAS,EACT,eAAe,EACf,UAAU,EACV,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,cAAc,EAEd,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EAGrB,KAAK,EACL,SAAS,GACV,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAuB,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC7F,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EAIjB,OAAO,GACR,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAMjB,QAAQ,EACR,WAAW,EACX,aAAa,EACb,YAAY,EACZ,SAAS,EACT,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,aAAa,EAEb,KAAK,EACL,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EAIb,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,EAER,IAAI,GACL,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EAErB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,UAAU,EACV,SAAS,EAET,qBAAqB,EACrB,+BAA+B,EAC/B,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,OAAO,EAAc,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EACL,OAAO,EACP,SAAS,EACT,MAAM,EAEN,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,eAAe,EACf,SAAS,EACT,SAAS,EACT,YAAY,EACZ,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAKhB,KAAK,EACL,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,eAAe,EACf,QAAQ,EACR,cAAc,EAEd,SAAS,EACT,WAAW,EACX,WAAW,EACX,eAAe,EACf,gBAAgB,GACjB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAIhB,eAAe,EACf,WAAW,EACX,UAAU,EACV,eAAe,EACf,aAAa,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAIhB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,WAAW,EACX,UAAU,EAGV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,UAAU,EAEV,YAAY,EAEZ,UAAU,EAGV,UAAU,EACV,sBAAsB,EAEtB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,WAAW,EAAmB,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,EACL,IAAI,EAEJ,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAIhB,UAAU,EACV,QAAQ,EACR,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,SAAS,EACT,IAAI,EACJ,eAAe,EACf,aAAa,EACb,UAAU,EACV,KAAK,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,IAAI,EACJ,QAAQ,EAER,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EAGX,MAAM,EACN,YAAY,EACZ,SAAS,EACT,YAAY,GACb,MAAM,eAAe,CAAA;AAEtB;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,UAAU;IACV,SAAS;IACT,OAAO;IACP,UAAU;IACV,OAAO;IACP,UAAU;IACV,WAAW;IACX,MAAM;CACE,CAAA;AAIV,2FAA2F;AAC3F,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAQ,QAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxD,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,UAAU,GAAgD,MAAM,CAAC,MAAM,CAAC;IACnF,QAAQ,EAAE,QAA6B;IACvC,OAAO,EAAE,OAA4B;IACrC,KAAK,EAAE,KAA0B;IACjC,QAAQ,EAAE,QAA6B;IACvC,KAAK,EAAE,KAA0B;IACjC,0FAA0F;IAC1F,QAAQ,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAsB;IACjE,SAAS,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAsB;IACnE,IAAI,EAAE,IAAyB;CAChC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/news.d.ts CHANGED
@@ -24,6 +24,18 @@ import { type JobSpec } from "@rackbops/docket-core";
24
24
  * item's link is remembered in `seen` once reviewed, kept or not, so a rejected page is not
25
25
  * reviewed again each run; a sent item's title is remembered too.
26
26
  *
27
+ * An item sent before comes back once when a detail of it changed (L8 of rackbops-bot-plugins#368):
28
+ * `sent` keeps each sent item's page and its release date, price, availability and show date,
29
+ * venue and city. A search that finds the same page again with one of those details different
30
+ * sends it to the review as an update, marked with what changed. Only a change between two given
31
+ * values counts: a detail missing then or now is no change, so a model that left a detail out the
32
+ * first time does not make it news later. Only the same page counts, never another page with the
33
+ * same title: two pages of one item may disagree (a label's price and a shop's), and two shows
34
+ * may share a title ("Tour dates announced"). The search is shown the newest sent items with their
35
+ * pages and last details, so it reports a change rather than skipping the item. An update the
36
+ * review rejects is remembered by what it claimed (`tried`), so the same claim is not reviewed
37
+ * every run.
38
+ *
27
39
  * A review that fails for good sends nothing: its pending items are dropped unseen, so a later run
28
40
  * may find them again. A search or review that fails for good is a missed run; the owner hears once,
29
41
  * at `MISSES_BEFORE_TELLING` in a row (the price tracker's rule). Failures retry as research's do
@@ -75,6 +87,32 @@ export interface NewsItem {
75
87
  availability?: string;
76
88
  /** What the owner's notes ask to point out about it: "two days before December 12". */
77
89
  flag?: string;
90
+ /**
91
+ * Set only by this type, never by the model: the item was sent before and this is what changed
92
+ * ("show date: December 12 -> December 13"). An item carrying it is an update.
93
+ */
94
+ update?: string;
95
+ }
96
+ /** The details of a sent item whose change sends it again. */
97
+ export interface NewsFacts {
98
+ released?: string;
99
+ price?: string;
100
+ availability?: string;
101
+ showDate?: string;
102
+ venue?: string;
103
+ city?: string;
104
+ }
105
+ /** A sent item, as remembered to tell a later change: its page, its two keys and its details. */
106
+ export interface SentItem {
107
+ /** The page it was sent with: only this page, found again, can carry a change. */
108
+ url: string;
109
+ link: string;
110
+ title: string;
111
+ /** The item's title as sent, for the search prompt. */
112
+ name: string;
113
+ facts: NewsFacts;
114
+ /** A digest of the last update the review rejected (what it claimed), so it is not reviewed again. */
115
+ tried?: string;
78
116
  }
79
117
  export type NewsPhase = "search" | "review";
80
118
  export interface NewsState {
@@ -85,6 +123,8 @@ export interface NewsState {
85
123
  seen: string[];
86
124
  /** Titles of the items sent, oldest first, at most `PROMPT_SEEN`: the search is told of them. */
87
125
  recent: string[];
126
+ /** The items sent, with their details, oldest first, at most `MAX_SENT`. */
127
+ sent: SentItem[];
88
128
  /** Failed tries of the current phase. */
89
129
  failures: number;
90
130
  /** Runs in a row that failed for good. */
@@ -103,6 +143,8 @@ export declare const MAX_NEWS_ITEMS = 10;
103
143
  export declare const MAX_SEEN = 600;
104
144
  /** Titles of sent items the search prompt names. */
105
145
  export declare const PROMPT_SEEN = 30;
146
+ /** Sent items whose details are remembered; past this the oldest is no longer re-alerted on a change. */
147
+ export declare const MAX_SENT = 100;
106
148
  /** How far back an item may be, in the prompts: the watch looks for news, not the archive. */
107
149
  export declare const LOOKBACK_DAYS = 30;
108
150
  /** Proposed, like the scout's (item 61): a search is a scout-sized look, a review a short one. */
@@ -208,6 +250,16 @@ export declare const NEWS_REVIEW_SCHEMA: {
208
250
  export declare function titleKey(title: string): string;
209
251
  /** Both keys an item is remembered by: its link's and its title's. */
210
252
  export declare function newsKeys(item: Pick<NewsItem, "url" | "title">): [string, string];
253
+ /** An item's details that a change of re-alerts on; empty ones left out. */
254
+ export declare function factsOf(item: NewsItem): NewsFacts;
255
+ /**
256
+ * What changed from `before` to `now`, as the DM says it ("show date: December 12 -> December
257
+ * 13"); empty when nothing did. Only a detail given both times counts: one `now` lacks has not
258
+ * changed (the page left it out), and one `before` lacked is not news (the first search may have
259
+ * left it out). Case, spacing and punctuation are no change; whether two wordings mean the same
260
+ * ("preorder", "available for preorder") is the review's to say.
261
+ */
262
+ export declare function changedFacts(before: NewsFacts, now: NewsFacts): string;
211
263
  /** The state as stored, or a fresh one; anything unreadable in it is dropped. */
212
264
  export declare function newsState(value: unknown): NewsState;
213
265
  /** The search run: the subject and its kinds, what was already reported, and the rules for an item. */
@@ -1 +1 @@
1
- {"version":3,"file":"news.d.ts","sourceRoot":"","sources":["../src/news.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"news.d.ts","sourceRoot":"","sources":["../src/news.ts"],"names":[],"mappings":"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"}