Commit graph

7260 commits

Author SHA1 Message Date
CREDO23
110beb4dd1 feat(chat): add web_scrape/web_discover tool emission handlers 2026-07-02 00:17:10 +02:00
CREDO23
de4b8ab6b0 feat(capabilities): generate agent tool door from registry 2026-07-02 00:17:01 +02:00
CREDO23
23802a74bb feat(capabilities): document verbs with descriptions and field docs 2026-07-02 00:16:55 +02:00
CREDO23
b1bd35c082 test(capabilities): cover REST door, meter-gate, and batch bounds 2026-07-01 17:53:42 +02:00
CREDO23
b1e49f21f2 feat(capabilities): mount capability REST routes 2026-07-01 17:53:42 +02:00
CREDO23
9c9ad97f8e feat(capabilities): generate REST door with per-workspace rate limit 2026-07-01 17:53:42 +02:00
CREDO23
c696829568 feat(capabilities): bound web.scrape batch and expose worst-case units 2026-07-01 17:53:42 +02:00
CREDO23
8fbfa5a6e1 feat(capabilities): add pre-flight meter-gate for billed verbs 2026-07-01 17:53:42 +02:00
CREDO23
f257e385db feat(capabilities): register web.discover verb 2026-07-01 17:08:58 +02:00
CREDO23
329bc63b6c feat(capabilities): add env-keyed searxng/linkup/baidu discover providers 2026-07-01 17:08:58 +02:00
CREDO23
adc39d1062 feat(config): add env keys for discover search providers 2026-07-01 17:08:58 +02:00
CREDO23
fa1055dd4c feat(capabilities): add web.discover schemas and provider seam 2026-07-01 17:08:58 +02:00
CREDO23
a413539f6a feat(capabilities): allow free verbs with no billing unit 2026-07-01 17:08:58 +02:00
CREDO23
8d76afc9d6 test(capabilities): cover registry, executor, schemas, billing 2026-07-01 16:42:47 +02:00
CREDO23
6b91a7ed0c feat(capabilities): register web.scrape verb 2026-07-01 16:42:47 +02:00
CREDO23
6679fda662 feat(capabilities): wire web.scrape to proprietary crawler 2026-07-01 16:42:47 +02:00
CREDO23
bbd81bcc99 feat(capabilities): add web.scrape schemas 2026-07-01 16:42:47 +02:00
CREDO23
bfe3117302 feat(capabilities): bill workspace owner at executor 2026-07-01 16:42:47 +02:00
CREDO23
3e6007431d feat(capabilities): add in-process verb store 2026-07-01 16:42:47 +02:00
CREDO23
78f7a93a88 feat(capabilities): add registry contracts and package 2026-07-01 16:42:47 +02:00
CREDO23
0944d9bb78 docs(plans): re-cast Phase 4-7 to stateless scraper-APIs, flatten subplans 2026-07-01 14:51:29 +02:00
DESKTOP-RTLN3BA\$punk
f964e59686 docs(plans): finish delivery-path correction in diagrams + overview
Two spots the prior citation pass missed still framed alert delivery as reused from automations. Align them with the committed correction: recurrence/audit reuse automations; alerts ride app/notifications; per-Tracker lock guards concurrency (gate is non-atomic). Also genericize the Maps actor as not-committed-for-MVP.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 21:58:12 -07:00
DESKTOP-RTLN3BA\$punk
05bbb64527 docs(plans): principal-engineer citation pass before Phase 4
Verified revamp Phase 4-7 code citations against surfsense_backend and corrected drift:

- automations have NO delivery/notification path and automation_runs.output is never written; CI alerts wire to the separate app/notifications system (NotificationService.create_notification, Zero-synced)

- automation PENDING-gate is non-atomic (no UPDATE...WHERE status=pending); per-Tracker lock is the primary concurrency guard, not belt-and-suspenders

- folder upload uses root_folder_id (not destination_folder); KB folder scoping goes via referenced_document_ids -> SearchScope.document_ids (no folder_id search filter)

- billable predicate is 'SUCCESS and outcome.result' duplicated per caller; to be single-sourced in the 04a executor

Confirmed accurate: schedule selector (FOR UPDATE SKIP LOCKED/next_fire_at/self-heal/catchup=False/croniter), AutomationRun model, format_to_structured_document(exclude_metadata=True), MCP routing gap (constants.py), connector enum, MANUAL trigger placeholder. Added dated verification stamp to revamp/00-overview.md. Also reconciled 03b/03c/umbrella wording.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 19:30:21 -07:00
Rohan Verma
78da036c6b
Merge pull request #1564 from CREDO23/revamp-phases4-7
[Docs] Re-architect Phases 4–7 (CI pipeline revamp)
2026-06-30 16:42:22 -07:00
CREDO23
9f107ff52c docs(revamp): add end-to-end pipeline diagrams 2026-07-01 00:16:29 +02:00
CREDO23
93f7c591ae docs(revamp): rename folder to 'revamp phases 4-7' 2026-07-01 00:13:45 +02:00
CREDO23
0b884d1774 docs(revamp): rewrite overview as the 04-07 phase index 2026-07-01 00:11:56 +02:00
CREDO23
4e77b8397e docs(revamp): reshape Orchestration into Phase 7 2026-07-01 00:11:04 +02:00
CREDO23
e5d670c609 docs(revamp): reshape Triggers into Phase 6 2026-07-01 00:10:14 +02:00
CREDO23
5c2428541d docs(revamp): reshape Intelligence into Phase 5b 2026-07-01 00:09:32 +02:00
CREDO23
3b92e40bf6 docs(revamp): reshape Timeline into Phase 5a 2026-07-01 00:08:28 +02:00
CREDO23
129e9039a8 docs(revamp): reshape Access into Phase 4b 2026-07-01 00:07:39 +02:00
CREDO23
d472693aac docs(revamp): reshape Capabilities into Phase 4a 2026-07-01 00:06:46 +02:00
CREDO23
d5df87dafd docs(revamp): rename primitive to Tracker, subagent to intelligence_agent 2026-06-30 23:54:11 +02:00
CREDO23
3aeecc315a docs(revamp): correct CI uploads to land in KB (folder-scoped) 2026-06-30 23:42:52 +02:00
CREDO23
dc6864d8d4 docs(revamp): complete overview (reconciliation, sequence, decisions) 2026-06-30 23:38:44 +02:00
CREDO23
d69be56ddb docs(revamp): add Orchestration domain (CI-expert subagent) 2026-06-30 23:38:02 +02:00
CREDO23
5d93d46f5d docs(revamp): add Triggers domain (recurrence via automations action) 2026-06-30 23:38:02 +02:00
CREDO23
89ad2cd992 docs(revamp): add Timeline domain (3-store delta moat) 2026-06-30 23:38:02 +02:00
CREDO23
a15cd8953a docs(revamp): reuse run-record/idempotency + add CI context folder 2026-06-30 23:37:55 +02:00
CREDO23
04fa89fd4c docs(revamp): add Intelligence domain (Lens + hot loop) 2026-06-30 23:37:10 +02:00
CREDO23
f13a17d3df docs(revamp): make natural language the human surface (intent router) 2026-06-30 23:36:23 +02:00
CREDO23
a5fc8c2b7d docs(revamp): add Access domain (chat/REST/MCP doors) 2026-06-30 23:35:42 +02:00
CREDO23
297a53efa6 docs(revamp): add Capabilities domain (typed verbs) 2026-06-30 23:35:11 +02:00
CREDO23
10801058c5 docs(revamp): add CI pivot overview & domain map 2026-06-30 23:35:05 +02:00
DESKTOP-RTLN3BA\$punk
15fd0b08d6 feat: completed init mvp of phase 3 2026-06-30 03:02:40 -07:00
DESKTOP-RTLN3BA\$punk
bdacea8b6e feat(crawler): captcha solving + per-attempt billing (Phase 3d)
Wire captchatools as the StealthyFetcher-tier page_action to detect, harvest
(egressing from the crawl's own proxy IP), inject, and submit reCAPTCHA v2/v3
and hCaptcha tokens. Opt-in and off by default (zero attempts, zero cost).

Licensing split:
- Apache-2 app/utils/captcha/ holds the generic, vendor-agnostic config
  (CaptchaConfig + captcha_enabled() = flag AND key present).
- Proprietary app/proprietary/web_crawler/captcha.py holds the bypass logic
  (detect/harvest/inject) plus a process-wide solver latch that halts solving
  on unrecoverable errors (no balance / bad key).

Crawler: CrawlOutcome gains captcha_attempts/captcha_solved, surfaced via a
per-call captcha_state dict threaded crawl_url -> _crawl_with_stealthy(_sync)
and stamped onto every stealth terminal outcome. The stealth tier captures the
proxy once and reuses it for both the fetch and the solver (IP-coherence).

Billing: WebCrawlCreditService gains captcha_billing_enabled,
captcha_solves_to_micros, charge_captcha, and a generic check_balance, sharing
a single _apply_debit path. The indexer accumulates attempts (even on failed
crawls), runs a combined crawl+captcha pre-flight, and posts a per-attempt
owner charge as usage_type="web_crawl_captcha". The captcha worst-case is only
reserved when solving is actually enabled, so a solving-off deployment is never
blocked for captcha that can never run. Both chat scrape tools fold attempts
into the current turn before the success/fail branch.

Fully config-driven prices; no migration. New unit tests cover the config,
factory (detection/latch/timeout/cap), credit service, indexer wiring, and the
chat fold.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 22:58:21 -07:00
DESKTOP-RTLN3BA\$punk
aad366ba13 chore: sync plans (03c@17bdb0682 implemented)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 21:41:26 -07:00
DESKTOP-RTLN3BA\$punk
17bdb06825 feat(03c): bill credits per successful web crawl
Add a config-driven crawl meter (1 USD / 1000 successes by default, retunable
via WEB_CRAWL_MICROS_PER_SUCCESS) mirroring EtlCreditService:

- WebCrawlCreditService (gate -> pre-check -> post-charge) on the unified wallet
- webcrawler indexer: pre-flight credit block + post-charge of the workspace
  owner per success, with a web_crawl TokenUsage audit row
- chat scrape_webpage (main + research): fold each successful scrape into the
  active turn's token accumulator so it settles with the chat turn
- WEB_CRAWL_CREDIT_BILLING_ENABLED / WEB_CRAWL_MICROS_PER_SUCCESS config + env
- unit tests (service) + integration tests (indexer wiring)
- scripts/e2e_phase3_crawl_billing.py: manual functional e2e (3a/3b/3c)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 21:40:53 -07:00
DESKTOP-RTLN3BA\$punk
a517eb7d2d chore: sync plans (03a@5c36cd3, 03b@6226012 implemented)
Mark 03a/03b status banners with their commit SHAs in the subplans and umbrella plan.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 21:04:17 -07:00