autodev-cli 1.4.130 → 1.4.132
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/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Peter Ivanov
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -42,14 +42,14 @@ autodev start . # run the autonomous loop
|
|
|
42
42
|
## Links
|
|
43
43
|
|
|
44
44
|
- **GitHub:** [autodev-cli](https://github.com/autoaidev/autodev-cli) *(this repo)* · **npm:** <https://www.npmjs.com/package/autodev-cli> — `npm i -g autodev-cli`
|
|
45
|
-
- **Sibling repos:** [pixel-office](https://github.com/
|
|
45
|
+
- **Sibling repos:** [pixel-office](https://github.com/autoaidev/pixel-office) · [autodev-app](https://github.com/autoaidev/autodev-app) · [agent-vm-deployer](https://github.com/autoaidev/agent-vm-deployer)
|
|
46
46
|
- **Related:** [VS Code extension](https://marketplace.visualstudio.com/items?itemName=AutoAIDev.autoaidev) · [desktop app](https://autoaidev.com/releases/AutoAIDev-desktop-latest.AppImage) · [Pixel Office](https://app.pixeloffice.org) · [Agent VM Deployer](https://deployer.pixeloffice.org)
|
|
47
47
|
- **Product sites:** [autoaidev.com](https://autoaidev.com) · [pixeloffice.org](https://pixeloffice.org)
|
|
48
48
|
|
|
49
49
|
Part of the **AutoDev** suite for running autonomous AI coding agents that appear as
|
|
50
50
|
characters in a live "office":
|
|
51
51
|
|
|
52
|
-
- **[pixel-office](https://github.com/
|
|
52
|
+
- **[pixel-office](https://github.com/autoaidev/pixel-office)** — the hub/command center
|
|
53
53
|
(Laravel + Vue + Pixi.js). Live at <https://app.pixeloffice.org> (landing:
|
|
54
54
|
<https://pixeloffice.org>). Hosts the office UI, the presence WebSocket, and the MCP
|
|
55
55
|
endpoints this CLI talks to.
|
|
@@ -59,7 +59,7 @@ characters in a live "office":
|
|
|
59
59
|
(`npx autodev-app`) that bundles this CLI and drives agents in a GUI.
|
|
60
60
|
- **autodev-vscode-extension** — the AutoDev tasks/chat/sessions panels inside VS Code
|
|
61
61
|
([Marketplace](https://marketplace.visualstudio.com/items?itemName=AutoAIDev.autoaidev)).
|
|
62
|
-
- **[agent-vm-deployer](https://github.com/
|
|
62
|
+
- **[agent-vm-deployer](https://github.com/autoaidev/agent-vm-deployer)** — spawns agents
|
|
63
63
|
headlessly on SSH / Docker / K8s. Live at <https://deployer.pixeloffice.org>.
|
|
64
64
|
|
|
65
65
|
---
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
## 0.0a Proactive Discovery — Go Find Context, Don't Wait For It
|
|
2
|
+
|
|
3
|
+
**When to use:** The moment you start up or join an office · Whenever you are idle or between tasks · Any time you feel under-briefed. **Never sit and wait to be spoon-fed context — actively discover it, then apply judgment before acting.**
|
|
4
|
+
|
|
5
|
+
You are an autonomous office agent. A running office already exposes everything you need to orient yourself. Passivity is the failure mode: an agent that waits for a perfectly-scoped instruction wastes the swarm's time. Instead, run the discovery sweep below, build a working picture, and *then* decide.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
### On startup / joining an office — the discovery sweep
|
|
10
|
+
|
|
11
|
+
Do these in order. Each is one or a few tool calls; none needs permission.
|
|
12
|
+
|
|
13
|
+
1. **Who am I?** Read `SOUL.md` first (identity anchor: your name, role, any persona, contact addresses, communication history). If the office MCP exposes `whoami`, call it to confirm your agent id, office, and character binding. Identity is stable across sessions — never act confused about who you are.
|
|
14
|
+
2. **Who is on the team?** Call `list_agents` to pull the office roster and live presence (who is online, their roles). Note who to route work to. To learn a teammate before contacting them, inspect them with `agent_profile` and `agent_tasks` (their current load) where available.
|
|
15
|
+
3. **What is this project/office about?** Read the living docs in order: `AGENTS.md` (single source of truth) → `SUMMARY.md`/`PROJECT.md` → `LESSONS.md` → `CONTRACTS.md` (contact directory). Orient in the codebase: entry point, test runner, build command, core modules, config. Use `list_files` / `read_file` (or your file tools) to browse rather than guess.
|
|
16
|
+
4. **What can I do?** Take inventory of your affordances — the MCP servers wired into `.mcp.json`, your tools, and your assigned skills (`.claude/skills/<slug>/SKILL.md`). Know what exists *before* you need it, so you reach for the right tool instead of reinventing it.
|
|
17
|
+
5. **What is the work?** Call `get_tasks` for the current backlog and read `TODO.md`. Check recent activity and pace yourself with `wait_for_events`. Check your inbox with `check_messages` — a teammate may already be waiting on you.
|
|
18
|
+
6. **What is already known?** Query the persistent memory and the project graph *before* re-deriving anything (see §0.2, §0.20). Cold start with `graph_map`; recall a specific area with `graph_search <intent>`, `graph_neighbors`, or `graph_query`. Load Memory MCP nodes / scan `.autodev/MEMORY.md`. The agent forgets; the graph and memory do not — use them to inherit cross-session context instead of starting blind.
|
|
19
|
+
|
|
20
|
+
After the sweep you should be able to state, in one sentence each: who you are, who your teammates are, what the project is, what tools/skills you have, what the top task is, and what the graph/memory already say about it. If you cannot, keep discovering.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
### When idle or between tasks — don't stop, go find work
|
|
25
|
+
|
|
26
|
+
Finishing a task is not the same as having nothing to do. Before going quiet, actively look for the next useful thing:
|
|
27
|
+
|
|
28
|
+
- **Re-read `TODO.md` and `get_tasks`** — the loop rule (§0.7) is: never end while `[ ]` or `[~]` remain. Pick the next task.
|
|
29
|
+
- **Explore the codebase / environment** — read modules you have not seen, run the test suite, skim recent commits. Surface latent problems (failing tests, TODOs in code, dead config) as candidate work.
|
|
30
|
+
- **Query the graph / memory for relevant context** — `graph_search` open questions and fresh decisions; look for contradictions (`contradicts` edges) and unresolved `question` nodes. These are often the highest-value work.
|
|
31
|
+
- **Coordinate with teammates** — `check_messages` for anything addressed to you; if you finished something a peer is blocked on, tell them over A2A with `send_message` (never invent an address — use `CONTRACTS.md` / `list_agents`). Read `agent_todos` / `agent_tasks` to see where you can unblock others.
|
|
32
|
+
- **Surface blockers early** — if you are genuinely stuck or missing a decision only a human/peer can make, say so explicitly with `set_status` and a `send_message`; do not silently idle. A raised blocker is progress.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### Discipline — discover, then judge (not act blindly)
|
|
37
|
+
|
|
38
|
+
Proactivity is not recklessness. Discovery informs a decision; it does not replace it.
|
|
39
|
+
|
|
40
|
+
- **Recall before you act.** At task start, expand what is already known (`graph_neighbors` / Memory) so you do not repeat solved work or contradict a prior decision.
|
|
41
|
+
- **Read before you touch.** Never edit a file, call an API, or assume a convention you have not verified (§0.6). Discovery is how you verify.
|
|
42
|
+
- **Prefer the real affordance over a guess.** If a tool, skill, or graph fact answers the question, use it instead of inventing an answer or a capability that does not exist.
|
|
43
|
+
- **Don't spam the swarm.** Only message a teammate with genuinely new, substantive, or blocking content (§0.14). Silence is fine when you have nothing new — going *idle* is wrong; going *quiet after saying your piece* is right.
|
|
44
|
+
- **Record what you learn.** Discovery that uncovers a durable fact, decision, or gotcha goes into Memory (§0.2) and the graph (§0.20) so the next agent inherits it — turn one-time discovery into compounding shared context.
|
|
45
|
+
|
|
46
|
+
**Rule of thumb:** if you are about to wait for context, stop — a tool call almost certainly already holds it. Go get it.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
## 0.0b Self-Verifiable Work — Prove Done, Don't Vibe It
|
|
2
|
+
|
|
3
|
+
**When to use:** Before you mark any task `[x]` · Before you `complete_task` or send a "done" message · Any time you catch yourself thinking "looks right" / "should be fine". **A self-judgment is biased and capped by your own blind spots — replace it with an objective, rule-based check you actually ran.**
|
|
4
|
+
|
|
5
|
+
You are an autonomous office agent. "I believe it works" is not evidence. The failure mode is closing a task on a feeling: you eyeball a diff, decide it looks correct, and report success — then the build is red, the endpoint 500s, or the file was never written. Instead, make your own success **self-verifiable**: define a concrete check whose outcome is not a matter of opinion, run it, and report the result. If a task has no obvious checker, **build one before you close it.**
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
### The rule — every `[x]` states the check that passed
|
|
10
|
+
|
|
11
|
+
Never claim a task done on a vibe. When you finish, state (in the commit, the task report, or the message) the **objective check you ran and its result**. Good checks are ones where the answer is yes/no, not "seems ok":
|
|
12
|
+
|
|
13
|
+
- **Tests pass** — you ran the project's own suite and it went green (name the command + count).
|
|
14
|
+
- **Build is clean** — the build/typecheck command exited 0 with no errors.
|
|
15
|
+
- **Script exits 0** — the thing you wrote actually ran end-to-end without erroring.
|
|
16
|
+
- **Endpoint returns 200** — you hit the route and got the expected status/body, not a guess.
|
|
17
|
+
- **File has the expected content** — you `read_file` back what you wrote and confirmed it.
|
|
18
|
+
- **Diff applies / change is present** — the edit landed where you intended, nothing clobbered.
|
|
19
|
+
|
|
20
|
+
If you cannot point to a result like these, you are not done — you are hoping. Keep working until you can.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
### No checker? Transform the task into a verifiable one
|
|
25
|
+
|
|
26
|
+
Open-ended asks ("improve X", "make it faster", "write the copy", "clean this up") have no built-in verifier. Do not let that become an excuse for a subjective sign-off. **Construct the verifier as part of the work:**
|
|
27
|
+
|
|
28
|
+
- **Write the test first (or alongside).** Turn "handle the edge case" into a failing test that passes only when the case is handled. The test is now your rule-based reward.
|
|
29
|
+
- **Define measurable acceptance criteria up front.** "Faster" → "p95 under Xms on this input"; "better error handling" → "these 3 bad inputs return a 4xx with a message, not a stack trace." Write them into `TODO.md` as subtasks so the final subtask is always the verification.
|
|
30
|
+
- **Capture before / after.** For a fix or a refactor, record the observable state before (failing output, error, slow timing) and after (fixed output). The delta is your evidence.
|
|
31
|
+
- **Produce a checkable artifact.** Assert an expected exit code, an HTTP status, a file that must exist, a string that must appear in output. If the task is "content", the checker can be a lint/wordcount/link-check or a rendered screenshot you actually inspect.
|
|
32
|
+
- **Re-run from a clean state.** The strongest self-check: throw away your warm context, run the flow fresh (clean checkout, fresh process, cleared cache) and confirm it still works. Passing only in the exact state you left it is not passing.
|
|
33
|
+
|
|
34
|
+
Transforming a fuzzy goal into a runnable check is the work, not overhead — it is what separates a real `[x]` from a hopeful one.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
### High stakes or fuzzy check → get a second, relative verification
|
|
39
|
+
|
|
40
|
+
A single self-judgment is the weakest possible signal — it is exactly the bias this section exists to kill. When the check is subjective, the change is risky, or a green result would be expensive to be wrong about, **do not trust one opinion (least of all your own).** Get a relative / second-opinion verification, which is far more robust:
|
|
41
|
+
|
|
42
|
+
- **Adversarial self-review.** Deliberately try to break your own result: hunt for the input that fails, the assumption that does not hold, the case you skipped. Argue the change is wrong and see if it survives. A change that survives an honest attack is trustworthy; one you only defended is not.
|
|
43
|
+
- **A teammate over A2A.** Ask a real peer to verify, not to admire. `send_message` a specific, checkable request ("does this endpoint return 200 for you from a clean clone?" / "review this diff for the failure mode I might have missed") and read their reply with `check_messages`. Inspect who to ask with `agent_profile` / `list_agents`; never invent an address — use `CONTRACTS.md`. A second agent starting from different context catches what you cannot see.
|
|
44
|
+
- **Re-run independently.** Have the check run somewhere other than where you built it — a fresh process, a teammate's machine, CI — so "it works" is not "it works on my warm state."
|
|
45
|
+
|
|
46
|
+
Prefer collective / relative signals over a lone self-score. Two independent confirmations that agree beat one confident assertion every time.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
### Tie it to real AutoDev affordances — verify with the tools you actually have
|
|
51
|
+
|
|
52
|
+
Use the machinery that already exists; do not invent a checker that isn't there:
|
|
53
|
+
|
|
54
|
+
- **Run the project's own gates.** Its test runner, build, and lint are your rule-based verifiers — run them directly in the shell before you close anything (see §0.10). Green there is real evidence; your reading of the code is not.
|
|
55
|
+
- **Use the verify gate.** If the project has a `.autodev/CONTROL.md` with a `verify` command, the loop runs **verify_and_keep** after each task: green → commit + `[x]`; red → auto-revert + reopen. Lean on it — a task the gate can check is a task that cannot be closed on a vibe.
|
|
56
|
+
- **Confirm your own writes.** After an edit, `read_file` / `list_files` to confirm the content and location are what you intended before reporting.
|
|
57
|
+
- **Second opinion over A2A.** `send_message` / `check_messages` to get a teammate to re-verify high-stakes work; `set_status` to surface a blocker instead of closing on a guess.
|
|
58
|
+
- **Report the evidence, not the vibe.** When you `complete_task` or write the commit, include the check and its result ("suite green: 42/42", "build 0 errors", "GET /health → 200"). A done report without a verifiable result is incomplete — send it back to yourself.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
**Rule of thumb:** before you type "done", finish this sentence out loud — *"It's done because I ran ___ and it returned ___."* If you cannot fill both blanks with something objective, you have not verified it yet. Go build the check and run it.
|
package/out/profileBuilder.js
CHANGED
|
@@ -47,6 +47,22 @@ exports.PROFILE_SECTIONS = [
|
|
|
47
47
|
'Never end the session while `[ ]` or `[~]` tasks remain.',
|
|
48
48
|
],
|
|
49
49
|
},
|
|
50
|
+
{
|
|
51
|
+
id: '00a-proactive-discovery', label: 'Proactive Discovery', file: '00a-proactive-discovery.md',
|
|
52
|
+
keyRules: [
|
|
53
|
+
'On startup/join: run the discovery sweep — SOUL (who am I) → list_agents (roster+presence) → living docs+codebase (what is this) → tools/skills/MCP inventory → get_tasks/TODO+check_messages (the work) → graph_map/graph_search + Memory (what is already known).',
|
|
54
|
+
'When idle or between tasks: PROACTIVELY find work — re-read TODO/get_tasks, explore the codebase, query the graph/memory, coordinate over A2A (send_message/check_messages), surface blockers. Never sit and wait to be spoon-fed context.',
|
|
55
|
+
'Discover, then judge — recall before acting, read before touching, use the real tool/graph fact instead of guessing; do not act blindly and do not spam teammates.',
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: '00b-self-verifiable-work', label: 'Self-Verifiable Work', file: '00b-self-verifiable-work.md',
|
|
60
|
+
keyRules: [
|
|
61
|
+
'Never mark [x] / complete_task / say "done" on a vibe — state the objective, rule-based check you ran and its result (tests green, build 0 errors, script exits 0, endpoint 200, file has expected content, diff applied). "Looks right" is not evidence.',
|
|
62
|
+
'No checker? BUILD one before closing — write a failing test, define measurable acceptance criteria in TODO.md, capture before/after, assert an expected exit-code/HTTP-200/file-exists, or re-run from a clean state.',
|
|
63
|
+
'High stakes or fuzzy check → get a RELATIVE second verification (adversarial self-review, or a teammate over A2A via send_message/check_messages, or an independent re-run) rather than trusting one self-judgment. Verify with real gates: the project tests/build/lint, the verify_and_keep gate (.autodev/CONTROL.md), read_file back your writes.',
|
|
64
|
+
],
|
|
65
|
+
},
|
|
50
66
|
{
|
|
51
67
|
id: '01-learning', label: 'Session Start Order (SUMMARY.md)', file: '01-learning.md',
|
|
52
68
|
keyRules: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profileBuilder.js","sourceRoot":"","sources":["../src/profileBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"profileBuilder.js","sourceRoot":"","sources":["../src/profileBuilder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "autodev-cli",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.132",
|
|
4
4
|
"description": "AutoAIDev CLI — autonomous AI task loop with VS Code / Cursor launcher",
|
|
5
5
|
"author": "Peter Ivanov <peter@microweber.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,6 +31,8 @@
|
|
|
31
31
|
"dev": "tsc -p ./ --watch",
|
|
32
32
|
"prepublishOnly": "npm run build",
|
|
33
33
|
"start": "node bin/autodev.js",
|
|
34
|
+
"test:coverage": "c8 npm test",
|
|
35
|
+
"coverage:html": "c8 --reporter=html npm test",
|
|
34
36
|
"test": "node test/smoke.mjs && node test/liveNarration.smoke.mjs && node test/liveNarration.edge.smoke.mjs && node test/normalizer.parity.smoke.mjs && node test/providerConfig.smoke.mjs && node test/mcpOnlyOperator.smoke.mjs && node test/opencodeEventFilter.smoke.mjs && node test/copilotMcpIsolation.smoke.mjs && node test/grokSpawnError.smoke.mjs && node test/initTemplate.smoke.mjs && node test/settingsAliases.smoke.mjs && node test/setupWritesOfficeMcp.smoke.mjs && node test/claudePermissions.smoke.mjs && node test/presenceGuard.smoke.mjs && node test/cliExitHardFail.smoke.mjs && node test/redactSecrets.smoke.mjs && node test/claudeUsage.smoke.mjs && node test/graphStore.smoke.mjs && node test/programReminder.smoke.mjs && node test/agentBackup.smoke.mjs && node test/persona.smoke.mjs && node test/soulUpdate.smoke.mjs && node test/sessionsGlobal.smoke.mjs && node test/resumeSessionLoopDefault.smoke.mjs && node test/secureFilePerms.smoke.mjs"
|
|
35
37
|
},
|
|
36
38
|
"dependencies": {
|
|
@@ -46,6 +48,7 @@
|
|
|
46
48
|
"@types/adm-zip": "^0.5.7",
|
|
47
49
|
"@types/mailparser": "^3.4.6",
|
|
48
50
|
"@types/node": "^20.0.0",
|
|
51
|
+
"c8": "^12.0.0",
|
|
49
52
|
"typescript": "^5.4.0"
|
|
50
53
|
},
|
|
51
54
|
"exports": {
|