182 Commits

Author SHA1 Message Date
ec545723bb feat(facebook): add challenge detection and session warming utilities
facebook-challenge.ts: session warmup, header construction, and challenge type detection. Spec document for the anti-bot challenge solver design.
2026-05-02 19:03:00 -04:00
0a246a29bf feat(facebook): add session warming and challenge detection
Facebook Marketplace no longer requires authentication cookies.
Session warming sends proper browser headers. Checkpoint and
login-wall challenges are detected and handled gracefully.
Added marketplace_product_details_page.target extraction path
for current item page structure.
2026-05-02 18:58:53 -04:00
7ab33d0b02 chore: format markdown
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-05-01 11:42:54 -04:00
d2c3c07e7d docs: price filtering schema adjustments
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-30 23:18:49 -04:00
0470a7bec7 docs(mcp): clarify price filters are dollars 2026-04-30 23:17:59 -04:00
89ad1c521f fix(api): parse price filters as dollars 2026-04-30 23:17:56 -04:00
5c732287c5 test: guard live listing prices 2026-04-30 22:46:48 -04:00
20fb46190a test: add live parser script 2026-04-30 22:46:07 -04:00
e791fc5478 test(facebook): add live parser suite 2026-04-30 22:44:28 -04:00
c1fa5168dc test(kijiji): add live parser suite 2026-04-30 22:43:52 -04:00
ec2a26cedf test(ebay): add live parser suite 2026-04-30 22:42:32 -04:00
5d99e984e0 docs: plan live parser tests 2026-04-30 22:41:41 -04:00
b657ea594a chore: update agents docs
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-30 22:29:01 -04:00
5651a194e9 chore: use biome check instead of biome ci
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-30 22:28:02 -04:00
31cc0660bc refactor(ebay): reuse fetchHtml after challenge
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-30 22:26:24 -04:00
fc7200777e style: format expected json output in protocol test 2026-04-30 22:25:47 -04:00
f68a5a8d9b feat(linter): enforce correctness on unused imports
Configures the linter to treat unused imports as an error under the
`correctness` rule category. This tightens up code quality standards by
ensuring all imported bindings are utilized.
If the import is unused, there is a high chance refactoring missed this
flow. Review in-depth root causes.
2026-04-30 22:24:06 -04:00
a6b24b318e fix(types): expose argon2 declaration globally 2026-04-30 22:16:48 -04:00
0873df7e82 chore: merge code-smell-cleanup 2026-04-30 21:08:34 -04:00
24e0a8266e Revert "test: preload core fetch guard"
This reverts commit 28b3267b7d.
2026-04-30 20:58:06 -04:00
db173aef1b Revert "chore: add sentinel file for bun test root"
This reverts commit d1cd028f34.
2026-04-30 20:58:06 -04:00
d1cd028f34 chore: add sentinel file for bun test root 2026-04-30 20:56:14 -04:00
28b3267b7d test: preload core fetch guard 2026-04-30 20:53:31 -04:00
c0dda57f64 test: require explicit fetch mocks 2026-04-30 20:51:13 -04:00
31866de787 refactor: clean kijiji scraper internals 2026-04-30 20:48:15 -04:00
9c4c347933 feat: ebay splashui challenge solver
argon2id pow → /challengesvc/answer → chlgref cookie
warm homepage for akamai cookies, detect 307 redirect,
solve + retry transparently in fetchEbayItems flow
2026-04-30 20:44:37 -04:00
53eafe6d4c chore: agent-browser skills path env
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-30 20:44:05 -04:00
84f17fbdfd chore: ebay parser fix
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-30 16:56:55 -04:00
3a722a2d11 chore: agent-browser vars
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-30 16:56:44 -04:00
f95b974c7e fix: harden shared http helper 2026-04-29 21:09:10 -04:00
f5339cadf1 style: format shared http refactor 2026-04-29 21:05:36 -04:00
5d86a4e54d fix: preserve ebay rate-limit fallback 2026-04-29 14:52:08 -04:00
82e7abc057 fix: keep shared http refactor in scope 2026-04-29 14:48:47 -04:00
6e50ebf901 refactor: share scraper http fetching 2026-04-29 13:14:20 -04:00
5ecb645ee3 docs: smell cleanup plan
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-29 13:09:38 -04:00
82e12283de docs: surface Kijiji AND-matching behavior in tool, API, and MCP responses
Kijiji zero-result queries (e.g. 'macbook air m1 apple silicon') are
confusing because the failure mode is non-obvious. Surface the root
cause everywhere the caller can see it:
- MCP tool description warns about AND-matching and gives a concrete
  before/after example
- API 404 body includes the actionable hint via emptySearchResponse(hint)
- Core scraper logs the built URL and tip on page-1 zero results
- MCP handler unwraps the API message field so the hint reaches the LLM
2026-04-29 13:06:31 -04:00
22eb65d4a2 refactor: share mcp api calls 2026-04-29 05:37:24 -04:00
abdd39d65c fix: complete ebay integer validation test coverage 2026-04-29 00:56:37 -04:00
3e4e35c9ae fix: tighten route integer parsing and test coverage 2026-04-29 00:32:23 -04:00
3ea6ee3938 fix: strictly parse route integers 2026-04-29 00:12:26 -04:00
d178f9c9cb fix: remove cookie query forwarding 2026-04-28 23:52:45 -04:00
9cbba9ba13 chore: ignore local worktrees 2026-04-28 23:08:04 -04:00
b6aaec0b65 chore: update ruler docs
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-28 22:29:12 -04:00
11dce39428 fix(core): parse Kijiji StandardListing records 2026-04-28 21:57:10 -04:00
2a5701aeb9 test: quiet and speed up test runs 2026-04-28 21:45:06 -04:00
c6c44a0914 fix(api): preserve unstable buckets 2026-04-28 21:34:47 -04:00
3fe5fdb63f fix(core): handle partial listing data 2026-04-28 21:34:45 -04:00
7966073bf8 fix(core): prefer explicit cookie source 2026-04-28 21:34:40 -04:00
df2635d92f chore: prepend typecheck command before biome ci
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-28 20:11:43 -04:00
ddadc7d5ae chore: add bun types to global tsconfig
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-28 20:07:05 -04:00