@ouro.bot/cli 0.1.0-alpha.828 → 0.1.0-alpha.829

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.json CHANGED
@@ -1,6 +1,12 @@
1
1
  {
2
2
  "_note": "This changelog is maintained as part of the PR/version-bump workflow. Agent-curated, not auto-generated. Agents read this file directly via read_file to understand what changed between versions.",
3
3
  "versions": [
4
+ {
5
+ "version": "0.1.0-alpha.829",
6
+ "changes": [
7
+ "Sanctuary authority install: the fenced vault-read restores CAP_DAC_OVERRIDE and copies the credential store into a writable tmpfs, so the root migration can read the resident-owned vault instead of failing with a masked permission error."
8
+ ]
9
+ },
4
10
  {
5
11
  "version": "0.1.0-alpha.828",
6
12
  "changes": [
@@ -1,5 +1,5 @@
1
1
  {
2
- "runtimeVersion": "0.1.0-alpha.828",
2
+ "runtimeVersion": "0.1.0-alpha.829",
3
3
  "bundleSchemaVersion": 3,
4
4
  "lastUpdated": "2026-09-03T00:00:00.000Z"
5
5
  }
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0"?>
2
2
  <Container version="2">
3
3
  <Name>ouro-butler</Name>
4
- <Repository>ghcr.io/ourostack/ouroboros-butler:0.1.0-alpha.828</Repository>
4
+ <Repository>ghcr.io/ourostack/ouroboros-butler:0.1.0-alpha.829</Repository>
5
5
  <Registry>https://github.com/ourostack/ouroboros/pkgs/container/ouroboros-butler</Registry>
6
6
  <Network>host</Network>
7
7
  <Shell>sh</Shell>
@@ -732,15 +732,29 @@ class SanctuaryAuthorityRootLifecycle {
732
732
  }
733
733
  }
734
734
  #vault(operation, input) {
735
+ // The fenced container runs root with every capability dropped, but the
736
+ // resident credential store is owned by the resident uid (10001), so a bare
737
+ // cap-dropped root cannot even read it (EACCES on agent.json → surfaces as
738
+ // "vault owner unavailable"). CAP_DAC_OVERRIDE is restored — the single
739
+ // capability needed to read the resident's files, nothing broader — and the
740
+ // read-only bitwarden app-data is copied into a writable tmpfs inside the
741
+ // container before the CLI runs, because bitwarden cannot unlock a store it
742
+ // cannot write to. The copy stays inside the container's own tmpfs, so the
743
+ // fence still never writes to resident state. `operation` is one of the four
744
+ // fixed literals validated by the CLI, never external input.
745
+ const cli = "/opt/ouro/dist/heart/daemon/sanctuary-authority-root-lifecycle.js";
735
746
  return JSON.parse(this.#docker([
736
- "run", "--rm", "-i", "--pull=never", "--network", "host", "--user", "0:0", "--read-only", "--cap-drop=ALL",
737
- "--security-opt=no-new-privileges", "--entrypoint", "/usr/local/bin/node",
747
+ "run", "--rm", "-i", "--pull=never", "--network", "host", "--user", "0:0", "--read-only",
748
+ "--cap-drop=ALL", "--cap-add=DAC_OVERRIDE", "--security-opt=no-new-privileges", "--entrypoint", "/bin/sh",
738
749
  "--mount", `type=bind,src=${RUNTIME},dst=/home/ouro/.ouro-cli,readonly`,
750
+ "--mount", `type=bind,src=${RUNTIME}/bitwarden,dst=/home/ouro/.bw-src,readonly`,
739
751
  "--mount", `type=bind,src=${BUNDLE},dst=/home/ouro/AgentBundles/sanctuary.ouro,readonly`,
740
752
  "--tmpfs", "/home/ouro/.ouro-cli/bitwarden:rw,nosuid,nodev,noexec,mode=0700",
753
+ "--tmpfs", "/home/ouro/.config:rw,nosuid,nodev,noexec,mode=0700",
741
754
  "--tmpfs", "/tmp:rw,nosuid,nodev,noexec,mode=0700",
742
755
  "--env", `OURO_AUTHORITY_REMOVE_INTERLOCK=${this.#request.epochId}`,
743
- this.#transaction.targetImageId, "/opt/ouro/dist/heart/daemon/sanctuary-authority-root-lifecycle.js", "vault", operation,
756
+ this.#transaction.targetImageId, "-c",
757
+ `cp -r /home/ouro/.bw-src/. /home/ouro/.ouro-cli/bitwarden/ && exec /usr/local/bin/node ${cli} vault ${operation}`,
744
758
  ], input === undefined ? undefined : JSON.stringify(input)));
745
759
  }
746
760
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@ouro.bot/cli",
3
- "version": "0.1.0-alpha.828",
3
+ "version": "0.1.0-alpha.829",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@ouro.bot/cli",
9
- "version": "0.1.0-alpha.828",
9
+ "version": "0.1.0-alpha.829",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sdk": "^0.78.0",
12
12
  "@azure/identity": "^4.13.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ouro.bot/cli",
3
- "version": "0.1.0-alpha.828",
3
+ "version": "0.1.0-alpha.829",
4
4
  "engines": {
5
5
  "node": ">=22"
6
6
  },