@loompad/cli 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/README.md +20 -5
- package/dist/adapters/antigravity-cli.d.ts +2 -0
- package/dist/adapters/antigravity-cli.js +20 -1
- package/dist/adapters/antigravity-cli.js.map +1 -1
- package/dist/adapters/model.js +1 -1
- package/dist/adapters/model.js.map +1 -1
- package/dist/cli/doctor.d.ts +30 -1
- package/dist/cli/doctor.js +117 -1
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.js +294 -14
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/ui.js +11 -7
- package/dist/cli/ui.js.map +1 -1
- package/dist/core/auto-policy.d.ts +46 -0
- package/dist/core/auto-policy.js +181 -0
- package/dist/core/auto-policy.js.map +1 -0
- package/dist/core/council.d.ts +55 -0
- package/dist/core/council.js +71 -0
- package/dist/core/council.js.map +1 -0
- package/dist/core/permissions.js +2 -2
- package/dist/core/permissions.js.map +1 -1
- package/dist/core/prices.d.ts +55 -0
- package/dist/core/prices.js +99 -0
- package/dist/core/prices.js.map +1 -0
- package/dist/core/proof.d.ts +2 -0
- package/dist/core/proof.js +33 -10
- package/dist/core/proof.js.map +1 -1
- package/dist/core/providers.d.ts +13 -0
- package/dist/core/providers.js +17 -0
- package/dist/core/providers.js.map +1 -1
- package/dist/core/replay.js +14 -0
- package/dist/core/replay.js.map +1 -1
- package/dist/core/review.d.ts +60 -0
- package/dist/core/review.js +121 -0
- package/dist/core/review.js.map +1 -0
- package/dist/core/setup.d.ts +13 -0
- package/dist/core/setup.js +17 -1
- package/dist/core/setup.js.map +1 -1
- package/dist/core/turn-wait.d.ts +20 -0
- package/dist/core/turn-wait.js +39 -0
- package/dist/core/turn-wait.js.map +1 -0
- package/dist/core/usage.d.ts +7 -1
- package/dist/core/usage.js +11 -3
- package/dist/core/usage.js.map +1 -1
- package/dist/daemon/client.d.ts +46 -0
- package/dist/daemon/client.js +34 -0
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/council.d.ts +98 -0
- package/dist/daemon/council.js +248 -0
- package/dist/daemon/council.js.map +1 -0
- package/dist/daemon/proof.d.ts +6 -0
- package/dist/daemon/proof.js +22 -3
- package/dist/daemon/proof.js.map +1 -1
- package/dist/daemon/push.js +7 -0
- package/dist/daemon/push.js.map +1 -1
- package/dist/daemon/review.d.ts +89 -0
- package/dist/daemon/review.js +136 -0
- package/dist/daemon/review.js.map +1 -0
- package/dist/daemon/routes/council.d.ts +4 -0
- package/dist/daemon/routes/council.js +29 -0
- package/dist/daemon/routes/council.js.map +1 -0
- package/dist/daemon/routes/review.d.ts +4 -0
- package/dist/daemon/routes/review.js +40 -0
- package/dist/daemon/routes/review.js.map +1 -0
- package/dist/daemon/routes/routing.js +2 -1
- package/dist/daemon/routes/routing.js.map +1 -1
- package/dist/daemon/routes/setup.d.ts +2 -1
- package/dist/daemon/routes/setup.js +13 -5
- package/dist/daemon/routes/setup.js.map +1 -1
- package/dist/daemon/runtime/accounting.d.ts +6 -0
- package/dist/daemon/runtime/accounting.js +37 -1
- package/dist/daemon/runtime/accounting.js.map +1 -1
- package/dist/daemon/runtime/briefings.d.ts +8 -3
- package/dist/daemon/runtime/briefings.js +26 -14
- package/dist/daemon/runtime/briefings.js.map +1 -1
- package/dist/daemon/runtime.d.ts +40 -1
- package/dist/daemon/runtime.js +171 -2
- package/dist/daemon/runtime.js.map +1 -1
- package/dist/daemon/server.js +5 -1
- package/dist/daemon/server.js.map +1 -1
- package/dist/providers/agent.js +3 -0
- package/dist/providers/agent.js.map +1 -1
- package/dist/providers/claude/adapter.d.ts +3 -0
- package/dist/providers/claude/adapter.js +20 -1
- package/dist/providers/claude/adapter.js.map +1 -1
- package/dist/types.d.ts +19 -1
- package/dist/types.js.map +1 -1
- package/dist/web/app.css +44 -0
- package/dist/web/app.js +143 -12
- package/dist/web/app.js.map +3 -3
- package/docs/release-notes/v1.2.0.md +48 -0
- package/package.json +1 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
## Loom 1.2.0: a council of agents, and fixes from a real field test
|
|
2
|
+
|
|
3
|
+
Someone took Loom 1.1 through a full plan → review → build → proof run on a real project, with Claude Code, Codex, Antigravity and an OpenRouter model. They filed eighteen issues. 1.2 fixes all of them and adds the workflow they asked for: several agents checking each other's work, with only one of them writing.
|
|
4
|
+
|
|
5
|
+
### Council: plan, backtest, build, prove, forward-test, fix
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
loom council "add rate limiting to the API" --planner claude-code --reviewers codex,antigravity
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
One planner, up to four reviewers, one goal, one chat:
|
|
12
|
+
1. **Plan.** The planner plans and changes nothing.
|
|
13
|
+
2. **Backtest.** The reviewers test the plan in parallel, read-only.
|
|
14
|
+
3. **Decide.** The planner accepts or rejects each finding, and each answer is recorded as a decision.
|
|
15
|
+
4. **Build.** Only the planner writes code.
|
|
16
|
+
5. **Prove.** Proof re-runs the tests in a clean checkout.
|
|
17
|
+
6. **Forward-test.** The reviewers read the diff.
|
|
18
|
+
7. **Fix.** The planner fixes what it agrees with, and Proof runs again.
|
|
19
|
+
|
|
20
|
+
In the app, one card fills in stage by stage, with a Stop button. Your phone hears when it ends.
|
|
21
|
+
|
|
22
|
+
### Review: several agents, read-only, nobody takes the baton
|
|
23
|
+
|
|
24
|
+
`loom review codex antigravity` (the uncommitted changes by default, or `--file`, or `--text`):
|
|
25
|
+
- Each reviewer reads in its own plan mode where it has one, and never takes the baton, so there's no "hand off to codex?" prompt for a read.
|
|
26
|
+
- Their findings land in one list, worst first. Two reviewers on the same line show as one finding they **agree** on.
|
|
27
|
+
- **Accept** a finding and it becomes a project decision every agent is briefed with. **Reject** it and it's marked.
|
|
28
|
+
- A reviewer that changes files anyway is flagged.
|
|
29
|
+
|
|
30
|
+
### Scripting
|
|
31
|
+
|
|
32
|
+
- `loom send --wait [--json]` blocks until the turn ends and prints the reply and cost. Exit codes: 0 done, 1 failed, 2 the agent asked a question, 124 timed out.
|
|
33
|
+
- `loom doctor` now compares what the **daemon** sees with your shell: an agent missing from its PATH (naming the folder), a sign-in, or a key exported only in a terminal. It also checks that each provider answers, and suggests `pool:free` when a pinned free model keeps getting 429/503.
|
|
34
|
+
- `loom costs` and the Usage view show **"~$x est."** for agents that report tokens but no price (Codex, Grok): their tokens at the model's API price. The estimate is never added to the real total or to a budget.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- **Claude's Auto mode runs your project's commands.** It runs the test command, `cd <project> && …`, paths with spaces, and folders you list under `readPaths`. It refuses paths outside the project and commands that can't be undone, and every refusal says which rule fired and how to allow it. The permission badge says what each mode actually does.
|
|
39
|
+
- **A failed run is reported as failed.** An Antigravity turn that timed out or returned nothing was reported as success, and so was a failed subtask.
|
|
40
|
+
- **Proof leaves a plan alone.** It doesn't "check" a plan-only turn, and it doesn't count a command the agent was refused as one that ran.
|
|
41
|
+
- **Memory is credited only to a reply from a successful turn.**
|
|
42
|
+
- **Signed-out agents show as signed out** in `loom init`, the roster and Desktop, including agents learned from their "not logged in" errors.
|
|
43
|
+
- `loom status` says ◐ working. A model agent without write access shows as read-only.
|
|
44
|
+
- `loom providers` shows what the daemon sees. A key in your shell that the desktop app's daemon can't see is called out.
|
|
45
|
+
- `loom ask` checks provider keys before sending anything.
|
|
46
|
+
- `loom init` offers to add `.loom/` to `.gitignore`.
|
|
47
|
+
- The app is called **Loom Desktop** everywhere: Spotlight, the menu bar and the window.
|
|
48
|
+
- A spawned subtask's reply lands in the chat it was asked in.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loompad/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Loom — local-first control plane for coding agents: one CLI, shared memory, baton handoffs and routes across Claude Code, OpenCode, and friends.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|