Commit Graph
20 Commits
Author SHA1 Message Date
ldm0 62b1680452 docs(skill): strengthen Moli search concurrency and timeouts 2026-09-11 00:23:45 +08:00
ldm0 5699c4621b feat(skill): add moli-websearch/imagesearch skills 2026-09-10 20:32:07 +08:00
ldm0 8c34e035d3 Preserve raw bodies in fetch JSON output 2026-09-04 15:54:47 +08:00
ldm0 addbb8e3fa feat(fetch): evaluate page expressions 2026-08-26 17:58:15 +08:00
ldm0 28aaaa9e8a feat(cli): add disable-js fetch mode 2026-08-25 16:05:34 +08:00
ldm0 20b52a1e8b refactor(cli): remove noscript alias 2026-08-25 11:59:36 +08:00
XDLCS 20a1a90d77 fix(doc): correct windows powershell install script 2026-08-25 02:50:09 +08:00
ldm0 461f9bcac4 feat(fetch): enrich JSON dump metadata 2026-08-24 20:04:55 +08:00
ldm0 b959a04253 fix(fetch): invoke wait-script function predicates 2026-08-23 20:51:34 +08:00
ldm0 d292cc07b9 refactor(cdp): remove connection admission limits 2026-08-23 17:55:06 +08:00
ldm0 43271abe7e docs(fetch): correct default timeout 2026-08-22 18:33:16 +08:00
ldm0 8441f9a7d8 feat(cli): split response waits into literal and regex modes 2026-08-22 03:20:24 +08:00
BibekPathak cf78d14909 fix(cli): error on invalid --wait-response-body regex 2026-08-21 19:38:13 +08:00
ldm0 2ae43dcc63 fix(docs): slimmer webfetch skill 2026-08-21 03:42:02 +08:00
Athul Nambiar 777ae9af36 fix(cli): enforce --obey-robots against robots.txt
`--obey-robots` parsed into `FetchConfig` and stopped there. Its only
consumer was the network trace, which reported the flag's own value back
out; no robots.txt was ever fetched or honored. The webfetch skill
meanwhile told agents to enable it for crawl workloads, so a crawl could
report that it obeyed robots.txt while ignoring it.

Add `moli-robots`, a dependency-light RFC 9309 parser and matcher:

- group parsing, including merged repeat groups and `User-agent` runs;
- user-agent selection by specificity with `*` as the fallback group;
- `Allow`/`Disallow` with `*` and `$`, longest match winning and `Allow`
  taking ties;
- percent-encoding normalization so a pattern and a request target
  compare in one space;
- the RFC 9309 section 2.3.1 response rules, where 4xx publishes no rules
  and 5xx or a transport failure disallows the origin.

Wire it into `moli fetch`. The check runs before the browser starts, so a
refused URL costs one robots.txt request and the target is never
contacted.

Scope is the top-level navigation. Subresource and protocol-server
navigations run through NavigationEngine, whose redirect, service-worker,
and CDP paths need a design decision of their own; `moli serve
--obey-robots` now warns that it is not enforced instead of appearing to
work.

Fixes #79
2026-08-21 02:34:26 +08:00
ldm0 94dbba2f28 docs(skills): document full-page screenshots 2026-08-18 00:35:51 +08:00
ldm0 be85a67d54 refactor(cli): remove help and version subcommands 2026-08-17 01:23:02 +08:00
ldm0 ce7fa9cd17 feat: implement Web Bot Auth signing 2026-08-16 15:19:40 +08:00
ldm0 515df47845 refactor(cli): remove unused WPT and web bot auth options 2026-08-16 02:58:13 +08:00
ldm0 5d2231d516 Add Moli skills and release installers 2026-08-14 02:22:38 +08:00