Repository navigation
docs(packs): list the Vauban Pack - #1292
Conversation
Svector-anu
left a comment
There was a problem hiding this comment.
checked the diff: it only touches catalog/skill-packs.json and docs/community-skill-packs.md. the json parses at the head commit. vaubandev/vauban exists, is public and is MIT.
approving the listing only. i did not verify the pack's runtime claims (keyless, read-only, never signs), so those rest on the pack's own repo.
Svector-anu
left a comment
There was a problem hiding this comment.
correcting my approval. the listing itself is fine, but the pack's watch command has a bug that breaks it.
aeon/skills/vauban-vault/watch.mjs:34 calls word(log.data, 0) on every event in the topic list. TOPIC.revised (watch.mjs:10) is PolicyRevised, whose indexed argument leaves log.data as "0x" (contracts/src/VaubanVault.sol:65, 322-323). vault.mjs:33 then does BigInt("0x"), which throws. watch.mjs:73-74 turns that into VAUBAN_WATCH_RPC_DOWN and the bookmark at watch.mjs:77 never advances, so any owner policy change wedges watch on every later run.
this was found by reading the code, not by running it, so please confirm with a local run before you fix it. also: SKILL.md:50 gives memory/state/vauban-vault.json but the code default is memory/state/vauban-watch.json (watch.mjs:53).
requesting changes until watch handles PolicyRevised. the keyless, read-only and chain-id claims checked out.
|
Thanks, you were right on both counts. Confirmed locally before fixing: Fixed in vaubandev/vauban@15cfac5:
Checked against real logs, not only hand-built ones: deployed the demo vault on a local anvil (one allowlist entry and one limit, so two The same run on the previous commit crashes. The fix lives in the pack repo, so this PR's diff does not change. |
What
Lists the Vauban Pack (
vaubandev/vauban,--path aeon) incatalog/skill-packs.jsonand the Listed packs table.Why
Aeon's on-chain skills report what happened on a chain. None of them reads the policy a vault enforces on the agent spending from it.
vauban-vaultreads one Vauban vault on Robinhood Chain (4663): owner, agent, freeze, revision, allowlist, caps left this hour and UTC day, and moves held at the gate.watch:0xVAULTreports only what changed since the last run.Keyless and read-only. It never signs or broadcasts and needs no secret. Before trusting an address it hashes the runtime code and compares it with the pinned build hash, so any other contract is reported as "not a Vauban vault" and nothing more is read from it.
A reference vault is live so the skill can be tried at once:
It is empty on purpose. The contract is not audited, and the pack README and every report say so.
Type of change
Community skill pack listing
skills-pack.jsonmanifest at its root (aeon/) and aSKILL.mdper skilldefault_enabled: false(the one skill is read-only and still ships disabled)docs/community-skill-packs.mdand a matchingskill-packs.jsonentrynode scripts/validate-skill-packs.mjspasses (15 packs conform and match the table)Checked on a fresh checkout of
mainscripts/validate-pack.sh <pack> --path aeon: valid, 0 warningsbin/install-skill-pack vaubandev/vauban --path aeon: security scan passed, added toaeon.ymlasenabled: falsestatus.mjsagainst the reference vault: full sheet read at the current blockstatus.mjsagainst0x…0001:VAUBAN_STATUS_NOT_VAUBAN, exit 4watch.mjs --watch <vault>twice:VAUBAN QUIETboth runs, bookmark written tomemory/state/node --test aeon/test/vault.test.mjsin the pack: 7/7, no networkNeed help on this PR? Tag
@codesmith-botwith what you need.