@ouro.bot/cli 0.1.0-alpha.433 → 0.1.0-alpha.435

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/README.md CHANGED
@@ -6,7 +6,7 @@ Ouroboros is a TypeScript harness for daemon-managed agents that live in externa
6
6
 
7
7
  ## What The Runtime Looks Like
8
8
 
9
- - `npx ouro.bot` is the bootstrap path.
9
+ - `npx ouro.bot@latest` is the supported bootstrap path.
10
10
  - `ouro` is the installed day-to-day command.
11
11
  - `ouro up` starts the daemon from the installed production version, syncs the launcher, installs workflow helpers, and reconciles stale runtime state.
12
12
  - `ouro dev` starts the daemon from a local repo build. It auto-builds from source, disables launchd auto-restart (so the installed daemon doesn't respawn underneath you), persists the repo path in `~/.ouro-cli/dev-config.json` for next time, and force-restarts the daemon. If you run `ouro dev` from inside the repo, it detects the CWD automatically. Run `ouro up` to return to production mode (this also cleans up `dev-config.json`).
@@ -142,15 +142,15 @@ For a clean smoke test, run from outside the repo:
142
142
 
143
143
  ```bash
144
144
  cd ~
145
- npx ouro.bot -v
146
- npx ouro.bot up
145
+ npx ouro.bot@latest -v
146
+ npx ouro.bot@latest up
147
147
  ouro -v
148
148
  ouro status
149
149
  ```
150
150
 
151
151
  Expected shape:
152
152
 
153
- - `npx ouro.bot` and `ouro` report the same version.
153
+ - `npx ouro.bot@latest` and `ouro` report the same version.
154
154
  - `ouro status` shows the daemon overview plus discovered agents, senses, and workers.
155
155
 
156
156
  ### Work On The Harness
@@ -209,7 +209,7 @@ ouro hook <event> --agent <name> # fire a lifecycle hook (SessionStart,
209
209
 
210
210
  ## Setting Up On Another Machine
211
211
 
212
- To clone an existing agent onto a new machine (macOS, Linux, or Windows via WSL2), see **[docs/cross-machine-setup.md](docs/cross-machine-setup.md)**. The short version is bundle plus vault: `npx ouro.bot`, open the home deck, choose clone, enter the bundle's git remote URL, unlock the agent vault, refresh/verify credentials, and start with `ouro up`.
212
+ To clone an existing agent onto a new machine (macOS, Linux, or Windows via WSL2), see **[docs/cross-machine-setup.md](docs/cross-machine-setup.md)**. The short version is bundle plus vault: `npx ouro.bot@latest`, open the home deck, choose clone, enter the bundle's git remote URL, unlock the agent vault, refresh/verify credentials, and start with `ouro up`.
213
213
 
214
214
  ## The Agent's Inner Life
215
215
 
package/changelog.json CHANGED
@@ -1,6 +1,22 @@
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.435",
6
+ "changes": [
7
+ "Structured agent-vault items like `providers/*` and `runtime/*` now take a direct Bitwarden `bw get item` lookup fast path before falling back to filtered search, so connect, auth, and runtime-config reads spend less time holding the vault lane for work that already has an exact item name.",
8
+ "The Bitwarden store only trusts that fast path on an exact name match and still falls back to the older filtered search on fuzzy hits, missing items, or malformed direct responses, so the speedup lands without weakening correctness or duplicate protection.",
9
+ "Hermetic built-runtime coverage now understands the newer direct item lookup path too, so the connect bay, startup provider checks, and vault-backed runtime reads are tested against the same Bitwarden command shape the shipped CLI now uses."
10
+ ]
11
+ },
12
+ {
13
+ "version": "0.1.0-alpha.434",
14
+ "changes": [
15
+ "The supported bootstrap command is now explicitly `npx ouro.bot@latest` across the wrapper hints, operator docs, architecture docs, and runtime fallback messages, so humans are steered onto the channel that actually lands on the current published runtime.",
16
+ "Release smoke now verifies the live `ouro.bot@latest` bootstrap path end to end instead of only checking that the wrapper package resolves, so a stale bootstrap channel cannot slip through publish unnoticed.",
17
+ "This release closes the installed-product gap found during dogfood after the CLI human-surface overhaul: `npx ouro.bot@latest` now reproduces the current runtime truth in docs, smoke coverage, and real-world operator instructions."
18
+ ]
19
+ },
4
20
  {
5
21
  "version": "0.1.0-alpha.433",
6
22
  "changes": [
@@ -3917,7 +3917,7 @@ async function runOuroCli(args, deps = (0, cli_defaults_1.createDefaultOuroCliDe
3917
3917
  /* v8 ignore next 2 -- unreachable after exec replaces process @preserve */
3918
3918
  return "";
3919
3919
  }
3920
- const message = "no installed version found. run: npx ouro.bot";
3920
+ const message = "no installed version found. run: npx ouro.bot@latest";
3921
3921
  deps.writeStdout(message);
3922
3922
  return message;
3923
3923
  }
@@ -53,7 +53,7 @@ fi
53
53
  # Fall back to installed version
54
54
  ENTRY="$HOME/.ouro-cli/CurrentVersion/node_modules/@ouro.bot/cli/dist/heart/daemon/ouro-entry.js"
55
55
  if [ ! -e "$ENTRY" ]; then
56
- echo "ouro not installed. Run: npx ouro.bot" >&2
56
+ echo "ouro not installed. Run: npx ouro.bot@latest" >&2
57
57
  exit 1
58
58
  fi
59
59
  exec node "$ENTRY" "$@"
@@ -131,6 +131,16 @@ function isBwConfigLogoutRequired(err) {
131
131
  const message = err.message.toLowerCase();
132
132
  return message.includes("logout") && message.includes("required");
133
133
  }
134
+ function shouldPreferExactItemLookup(domain) {
135
+ return domain.includes("/");
136
+ }
137
+ function isBwDirectLookupFallbackError(err) {
138
+ const message = err.message.toLowerCase();
139
+ return (message.includes("bw cli error: not found") ||
140
+ message.includes("bw cli error: item not found") ||
141
+ message.includes("invalid json from bw get item") ||
142
+ message.includes("invalid item from bw get item"));
143
+ }
134
144
  // ---------------------------------------------------------------------------
135
145
  // Cross-process bw CLI lock
136
146
  // ---------------------------------------------------------------------------
@@ -671,6 +681,19 @@ class BitwardenCredentialStore {
671
681
  }
672
682
  // --- Private ---
673
683
  async findItemByDomain(domain, session) {
684
+ if (shouldPreferExactItemLookup(domain)) {
685
+ try {
686
+ const stdout = await execBw(["get", "item", domain], session, this.appDataDir);
687
+ const item = parseBwItem(stdout, "bw get item");
688
+ if (item.name === domain)
689
+ return item;
690
+ }
691
+ catch (error) {
692
+ const err = error;
693
+ if (!isBwDirectLookupFallbackError(err))
694
+ throw err;
695
+ }
696
+ }
674
697
  const stdout = await execBw(["list", "items", "--search", domain], session, this.appDataDir);
675
698
  const items = parseBwItems(stdout, "bw list items --search");
676
699
  // Find exact match by name
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ouro.bot/cli",
3
- "version": "0.1.0-alpha.433",
3
+ "version": "0.1.0-alpha.435",
4
4
  "main": "dist/heart/daemon/ouro-entry.js",
5
5
  "bin": {
6
6
  "cli": "dist/heart/daemon/ouro-bot-entry.js",