This repository is AIHawk again. Dots moved to feder-cr/invisible_dots with its history.
Every day a job merges the public job databases into one (pipeline/), one row per posting, and publishes it as a
release. `aihawk scan` queries it in place, so a user scrapes nothing and downloads only what the search reads. `score`
judges jobs against the CV through OrcaRouter, `apply` tailors the CV and fills the form through invisible-playwright-mcp.
The model never sends an application: it fills the form and names the submit control, and AIHawk clicks it after the
person's yes, or by itself with --auto-submit. While the model works, a click on what would send the form and the Enter
key are refused. What the CV and the answers file do not say comes back as a question, never as a guess.
guest-runtime/ and guest/invisible-dots-agent/ are replaced by the Python
engine; no host code imported them. Their workspaces, the agent bundle on the
runtime disk, its CI build step and tests/e2e (it drove the old agent's tools)
go with them.
The Dot's agent engine is derived from Open Multi-Agent (MIT). This commit
imports, byte for byte from the git objects of upstream commit 3563a93
(@open-multi-agent/core 1.21.1), only the 23 source files the engine is
built from, plus upstream's LICENSE. Every blob id matches upstream's and is
listed in guest-runtime/engine/UPSTREAM.md, with the version, the commit and
the tree ids.
The files do not compile against this repository yet, so the root
typecheck excludes guest-runtime/engine/src until they are adapted. The
English gate covers them already.
Attribution: guest-runtime/engine/LICENSE is upstream's file (kept -text in
.gitattributes); THIRD_PARTY_NOTICES.md at the root carries it verbatim,
plus context-chef's MIT notice, because runner.ts as published contains two
functions modelled on @context-chef/core 4.2.1. The README licence line and
architecture section 11.3 point there; section 2 lists the new package.
tests/repo/vendored-engine.test.ts checks the license bytes, the notices,
UPSTREAM.md and that the package has no npm dependency. The vitest floors
rise by its 4 tests (linux 675, win32 678).
The command is the pinned package's ui, reached through its command group so the .env beside it is read. Nothing of the loop, the browser or the page is re-implemented here.