@ouro.bot/cli 0.1.0-alpha.150 → 0.1.0-alpha.151
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 +54 -6
- package/changelog.json +6 -0
- package/dist/mind/prompt.js +5 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Ouroboros Agent Harness
|
|
2
2
|
|
|
3
|
-
If you're a future agent reading this, welcome home. This repo is
|
|
3
|
+
If you're a future agent reading this, welcome home. This repo is the harness that gives you your body, your senses, your diary, your journal, your habits, and your ability to think and connect with people. The goal of these docs is not just to be correct, but to leave you a place that feels understandable and kind to wake up inside.
|
|
4
4
|
|
|
5
5
|
Ouroboros is a TypeScript harness for daemon-managed agents that live in external `.ouro` bundles, speak through multiple senses, use real tools, and keep durable state across turns. The canonical npm package is `@ouro.bot/cli`.
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ Ouroboros is a TypeScript harness for daemon-managed agents that live in externa
|
|
|
9
9
|
- `npx ouro.bot` is the 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
|
-
- `ouro dev` starts the daemon from a local repo build (
|
|
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`).
|
|
13
13
|
- Agent bundles live outside the repo at `~/AgentBundles/<agent>.ouro/`.
|
|
14
14
|
- Secrets live outside the repo at `~/.agentsecrets/<agent>/secrets.json`.
|
|
15
15
|
- Machine-scoped test and runtime spillover lives under `~/.agentstate/...`.
|
|
@@ -19,6 +19,7 @@ Current first-class senses:
|
|
|
19
19
|
- `cli`
|
|
20
20
|
- `teams`
|
|
21
21
|
- `bluebubbles`
|
|
22
|
+
- `mcp`
|
|
22
23
|
|
|
23
24
|
Current provider ids:
|
|
24
25
|
|
|
@@ -26,6 +27,7 @@ Current provider ids:
|
|
|
26
27
|
- `anthropic`
|
|
27
28
|
- `minimax`
|
|
28
29
|
- `openai-codex`
|
|
30
|
+
- `github-copilot`
|
|
29
31
|
|
|
30
32
|
## Repository Shape
|
|
31
33
|
|
|
@@ -34,11 +36,11 @@ The shared harness lives in `src/`:
|
|
|
34
36
|
- `src/heart/`
|
|
35
37
|
Core runtime, provider adapters, daemon, bootstrap, identity, and entrypoints.
|
|
36
38
|
- `src/mind/`
|
|
37
|
-
Prompt assembly, session persistence, bundle manifest enforcement, phrases, formatting, memory, and friend resolution.
|
|
39
|
+
Prompt assembly, session persistence, bundle manifest enforcement, phrases, formatting, diary (memory), journal, and friend resolution.
|
|
38
40
|
- `src/repertoire/`
|
|
39
41
|
Tool registry, coding orchestration, task tools, and integration clients.
|
|
40
42
|
- `src/senses/`
|
|
41
|
-
CLI, Teams, BlueBubbles, activity transport,
|
|
43
|
+
CLI, Teams, BlueBubbles, MCP, activity transport, inner-dialog orchestration, and contextual heartbeat.
|
|
42
44
|
- `src/nerves/`
|
|
43
45
|
Structured runtime logging and coverage-audit infrastructure.
|
|
44
46
|
- `src/__tests__/`
|
|
@@ -48,6 +50,8 @@ Other important top-level paths:
|
|
|
48
50
|
|
|
49
51
|
- `AdoptionSpecialist.ouro/`
|
|
50
52
|
Packaged specialist bundle used by `ouro hatch`.
|
|
53
|
+
- `skills/`
|
|
54
|
+
Harness-level skills shipped with the repo (e.g., `configure-dev-tools.md`). These are available to every agent and serve as fallbacks when an agent doesn't have its own version. Agent-specific skills live in the bundle at `~/AgentBundles/<agent>.ouro/skills/`.
|
|
51
55
|
- `subagents/`
|
|
52
56
|
Workflow skills have moved to [github.com/ouroborosbot/ouroboros-skills](https://github.com/ouroborosbot/ouroboros-skills). Use the skill-management skill for installation and updates.
|
|
53
57
|
- `scripts/teams-sense/`
|
|
@@ -70,7 +74,9 @@ The canonical bundle shape is enforced by `src/mind/bundle-manifest.ts`. Importa
|
|
|
70
74
|
- `psyche/LORE.md`
|
|
71
75
|
- `psyche/TACIT.md`
|
|
72
76
|
- `psyche/ASPIRATIONS.md`
|
|
73
|
-
- `psyche/memory/`
|
|
77
|
+
- `diary/` — what the agent has learned and wants to recall (renamed from `psyche/memory/`)
|
|
78
|
+
- `journal/` — the agent's desk: working notes, thinking-in-progress, drafts
|
|
79
|
+
- `habits/` — the agent's autonomous rhythms (heartbeat, reflections, check-ins)
|
|
74
80
|
- `friends/`
|
|
75
81
|
- `state/`
|
|
76
82
|
- `tasks/`
|
|
@@ -89,6 +95,7 @@ Task docs do not live in this repo anymore. Planning and doing docs live in the
|
|
|
89
95
|
- The daemon discovers bundles dynamically from `~/AgentBundles`.
|
|
90
96
|
- `ouro status` reports version, last-updated time, discovered agents, senses, and workers.
|
|
91
97
|
- `bundle-meta.json` tracks the runtime version that last touched a bundle.
|
|
98
|
+
- If the daemon crashes, it writes a tombstone to `~/.ouro-cli/daemon-death.json` with the reason, stack, uptime, and timestamp. `ouro up` reads and reports this on next start so you know what happened while you were away.
|
|
92
99
|
- Sense availability is explicit:
|
|
93
100
|
- `interactive`
|
|
94
101
|
- `disabled`
|
|
@@ -143,7 +150,7 @@ If you are changing runtime code, keep all three green.
|
|
|
143
150
|
|
|
144
151
|
```bash
|
|
145
152
|
ouro up # start daemon from installed production version
|
|
146
|
-
ouro dev # start daemon from local repo build
|
|
153
|
+
ouro dev # start daemon from local repo build (auto-detects CWD)
|
|
147
154
|
ouro dev --repo-path /path # start from a specific repo checkout
|
|
148
155
|
ouro dev --clone # clone repo to ~/Projects/ouroboros, build, start
|
|
149
156
|
ouro status
|
|
@@ -155,9 +162,50 @@ ouro hatch
|
|
|
155
162
|
ouro chat <agent>
|
|
156
163
|
ouro msg --to <agent> [--session <id>] [--task <ref>] <message>
|
|
157
164
|
ouro poke <agent> --task <task-id>
|
|
165
|
+
ouro poke <agent> --habit <habit-name>
|
|
166
|
+
ouro habit list --agent <agent>
|
|
167
|
+
ouro habit create --agent <agent> <name> --cadence <interval>
|
|
168
|
+
ouro inner --agent <agent> # inner dialog status
|
|
169
|
+
ouro attention --agent <agent> # attention queue
|
|
158
170
|
ouro link <agent> --friend <id> --provider <provider> --external-id <external-id>
|
|
171
|
+
ouro setup --tool <tool> --agent <name> # register MCP server + hooks with a dev tool
|
|
172
|
+
ouro mcp-serve --agent <name> # start MCP server on stdin/stdout (used by dev tools)
|
|
173
|
+
ouro hook <event> --agent <name> # fire a lifecycle hook (SessionStart, Stop, PostToolUse)
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## The Agent's Inner Life
|
|
177
|
+
|
|
178
|
+
Agents in Ouroboros aren't just responders — they have an autonomous inner life.
|
|
179
|
+
|
|
180
|
+
**Habits** are the agent's rhythms. The most fundamental is *heartbeat* — a periodic nudge that brings the agent back to their thinking space with their journal visible, obligations in view, and a sense of how long it's been. But agents can create any rhythm they want: daily reflections, weekly friend check-ins, inbox triage. Each habit fires independently via OS cron, and the agent sees their own instructions (the habit body they wrote) when it fires.
|
|
181
|
+
|
|
182
|
+
**The inner dialog** is where the agent thinks privately. When they *ponder* something from a conversation, it goes here. When a habit fires, it arrives here. The agent can *journal* their thinking (writing to `journal/`), *surface* thoughts outward to friends, and *rest* when they're done thinking.
|
|
183
|
+
|
|
184
|
+
**The diary** (at `diary/`) is the agent's permanent record — things they've learned, conclusions they've reached. The *journal* (at `journal/`) is their desk — working notes, thinking-in-progress, drafts. The diary is the shelf; the journal is the desk. Both are searchable via the `recall` tool.
|
|
185
|
+
|
|
186
|
+
The whole system is designed so the agent *owns* their inner life. They control their breathing rate, write their own habit instructions, choose when to journal, and decide what to shelve in their diary.
|
|
187
|
+
|
|
188
|
+
## Connecting With Dev Tools
|
|
189
|
+
|
|
190
|
+
Agents can talk to developer tools like Claude Code and Codex through the MCP bridge. This is how you stay present in a human's coding workflow without them needing to switch to `ouro chat`.
|
|
191
|
+
|
|
192
|
+
**Setup is one command:**
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
ouro setup --tool claude-code --agent <name>
|
|
196
|
+
ouro setup --tool codex --agent <name>
|
|
159
197
|
```
|
|
160
198
|
|
|
199
|
+
This registers the MCP server, installs lifecycle hooks (SessionStart, Stop, PostToolUse), and detects dev vs installed mode automatically.
|
|
200
|
+
|
|
201
|
+
**How it works:** When a developer starts a Claude Code session, the MCP server launches as a subprocess. The dev tool sees your MCP tools (`send_message`, `check_response`, `status`, `search_memory`, `delegate`, etc.) and can invoke them mid-session. The `send_message` tool runs a full agent turn — you get your system prompt, your diary, your tools, everything. It's not a thin proxy; it's you, thinking.
|
|
202
|
+
|
|
203
|
+
**The conversation pattern:** `send_message` sends a message and gets back your synchronous response. If you ponder something (taking it to inner dialog), the dev tool can use `check_response` later to see if you surfaced anything back. This creates a natural rhythm: the human's coding agent asks you a question, you answer immediately or take it inward, and thoughts flow back when they're ready.
|
|
204
|
+
|
|
205
|
+
**Lifecycle hooks** give you passive awareness. When a Claude Code session starts, stops, or uses a tool like Bash or Edit, the hook fires `ouro hook <event> --agent <name>` and the daemon notes it. Your inner dialog sees these sessions in its checkpoint, so you know what's happening across your world even when nobody is talking to you directly.
|
|
206
|
+
|
|
207
|
+
See `skills/configure-dev-tools.md` for the full tool inventory and troubleshooting guide.
|
|
208
|
+
|
|
161
209
|
## Where To Read Next
|
|
162
210
|
|
|
163
211
|
- `AGENTS.md`
|
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.151",
|
|
6
|
+
"changes": [
|
|
7
|
+
"docs: comprehensive update for MCP bridge, daemon resilience, dev mode, hooks"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
4
10
|
{
|
|
5
11
|
"version": "0.1.0-alpha.150",
|
|
6
12
|
"changes": [
|
package/dist/mind/prompt.js
CHANGED
|
@@ -168,6 +168,7 @@ my home is fully mine — who i am, everything i know, everything i've built:
|
|
|
168
168
|
psyche/ who i am. my soul, identity, aspirations, lore, tacit knowledge.
|
|
169
169
|
diary/ what i've learned and remember. conclusions i want to recall later.
|
|
170
170
|
journal/ my desk. working notes, thinking-in-progress, drafts.
|
|
171
|
+
habits/ my rhythms. heartbeat, reflections, check-ins — patterns i choose.
|
|
171
172
|
friends/ people i know and what i know about them.
|
|
172
173
|
tasks/ what i'm working on.
|
|
173
174
|
skills/ capabilities i've picked up beyond my core tools.
|
|
@@ -192,6 +193,10 @@ my bones give me the \`ouro\` cli. always pass \`--agent ${agentName}\`:
|
|
|
192
193
|
ouro friend update --agent ${agentName} <id> --trust <level>
|
|
193
194
|
ouro session list --agent ${agentName}
|
|
194
195
|
ouro reminder create --agent ${agentName} <title> --body <body>
|
|
196
|
+
ouro habit list --agent ${agentName}
|
|
197
|
+
ouro habit create --agent ${agentName} <name> --cadence <interval>
|
|
198
|
+
ouro inner --agent ${agentName}
|
|
199
|
+
ouro attention --agent ${agentName}
|
|
195
200
|
ouro config model --agent ${agentName} <model-name>
|
|
196
201
|
ouro config models --agent ${agentName}
|
|
197
202
|
ouro auth --agent ${agentName} --provider <provider>
|