blob: 5141cc5dffbe0e3073979b821b787ff2184c8a62 [file] [view]
# Computer Use provenance
Maka's Computer Use surface was built against other people's work, in three
materially different ways. They are separated here because the obligations
differ: one is redistribution under a license, one is reading licensed source,
and one is observing a proprietary binary and holds no license grant at all.
Paths are Maka's unless they carry the upstream repository name, as in
`open-codex-computer-use/...`.
Every entry names what was taken, where it landed, and what the evidence was.
When you add or change a borrowed design, add the row here and put the same
statement in the file that carries it — an in-file comment answers "why is this
constant 200?" at the moment someone asks it, and this file answers "what did we
build on?" for the project as a whole.
## 1. Redistributed under license
Ships inside the Maka artifact. Requires the license text and copyright notice
to travel with it.
| Component | License | Where the notice lives |
|---|---|---|
| npm dependencies | various | `apps/desktop/resources/licenses/npm/`, generated by `scripts/generate-third-party-notices.mjs` and byte-checked at build by `scripts/check-third-party-notices.mjs` |
Maka has one Computer Use executor, `maka-cu`. It is built from Maka's own
source by `scripts/prepare-maka-cu.mjs` and pinned by digest in
`apps/desktop/bundled-tools.json`. It is not signed, so it is not distributed:
its `distributionReady` is false and `scripts/verify-macos-arm64-dmg.mjs`
forbids its path in a packaged build. Nothing third-party ships inside the Maka
artifact for Computer Use, which is why the table above has one row.
The third-party executor Maka used to run, cua-driver, was removed along with
its vendored notice. Nothing in this tree spawns it or links against it.
`maka-cu` is itself a fork of MIT-licensed `iFurySt/open-codex-computer-use`
2), so when it does ship, that notice travels with it.
## 2. Licensed source read as reference
MIT-licensed source we read while designing. No code was copied into this
repository; what was taken is design a format, a decision, or an archived
measurement. Attribution is given because it was load-bearing, not because MIT
compels it for ideas.
### iFurySt/open-codex-computer-use, and its fork QwenLM/open-computer-use
Both MIT, © 2026 Leo. An independent reimplementation of Codex's Computer Use
as an MCP server.
| Taken | Landed in | Notes |
|---|---|---|
| An archived capture of Codex's real `get_app_state` result | `packages/runtime/src/computer-use-tools.ts` | Their `open-codex-computer-use/artifacts/tool-comparisons/20260417-focus-behavior/`. This is what turned Maka's model of Codex's observation format from inference into an observed sample. |
| The one-line-per-element observation shape: indentation for containment, states written only when not the default | same file | Maka's version keeps `observation_id` in the header (frame binding is protocol here, prose there) and keeps element geometry (Codex has no coordinate action surface to need it; Maka's is disabled by default rather than absent). |
| Writing only the informative half of a state `disabled`, never `enabled` | same file | Their `summarizeTraits`. |
| Filtering `AXPress` out of an element's advertised action list, because pressing is what `click` does | not yet landed — waits on `trycua/cua#2622` exposing per-element AX actions | Their `meaningfulActions`. |
| The permission-onboarding pattern: anchor a guidance panel to the System Settings window, track it, and distinguish grants that need an app relaunch | not yet landed — for the `feat/permission-onboarding` work | Their `open-codex-computer-use/apps/OpenComputerUse/Sources/OpenComputerUse/PermissionOnboardingApp.swift`. |
| Archiving side-by-side tool captures in-repo as evidence | practice, not code | Worth adopting for Maka's own Codex comparisons. |
Not taken, recorded so the decision is not re-litigated: their `SkyLightSPI` /
`SkyClickSimulation` synthetic-focus click. Their own comment states the recipe
is derived from cua-driver and yabai. Maka read the same recipe rather than
that code which is why removing the cua-driver binary from this tree changes
nothing here: what was borrowed was a published recipe, not the artifact.
## 3. Observed, not licensed
Codex Computer Use (`SkyComputerUseService` and its helper bundles) is
proprietary and ships no source. Nothing was copied from it, because there is
nothing to copy: what exists here was reimplemented from observed behaviour and
from constants recovered by inspecting the shipped binary.
This confers no rights and is not a license. Statements about it are
descriptions of what a build did on a given date, and are dated for that reason.
| Recovered | Landed in |
|---|---|
| The agent cursor: shape, hotspot, motion thresholds, spring constants, and the candidate-path scoring function | `apps/desktop/src/renderer/computer-use-overlay/engine/cursor-engine.ts` |
| Overlay level policy an occluded target raises the cursor rather than hiding it | same file, and `apps/desktop/src/main/computer-use/cursor-overlay-window.ts` |
| The observation text shape | `packages/runtime/src/computer-use-tools.ts`, corroborated by the archived capture in §2 |
Where Maka deliberately diverges, the divergence is stated at the point of
divergence rather than here, so it is read by whoever is changing that code.