@getmarrow/install 0.1.27 → 0.1.28
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 +92 -203
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,93 +1,81 @@
|
|
|
1
1
|
# @getmarrow/install
|
|
2
2
|
|
|
3
|
-
Universal installer for Marrow agent
|
|
3
|
+
> Universal installer and governed runner for Marrow agent fleets.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Marrow is the runtime control and proof layer for teams running AI agents. It applies policy and prior lessons before consequential actions, then records the evidence and outcome afterward.
|
|
6
|
+
|
|
7
|
+
Use `@getmarrow/install` as the default entry point. It detects supported agent and project surfaces, writes the appropriate passive configuration, runs a harmless end-to-end self-test, and reports whether policy, proof, attribution, and outcome capture are active.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
6
10
|
|
|
7
11
|
```bash
|
|
8
|
-
npx @getmarrow/install --dry-run
|
|
9
12
|
npx @getmarrow/install --yes
|
|
10
|
-
npx @getmarrow/install --repair
|
|
11
|
-
npx @getmarrow/install doctor
|
|
12
|
-
npx @getmarrow/install govern
|
|
13
|
-
npx @getmarrow/install fleet
|
|
14
|
-
npx @getmarrow/install integrations
|
|
15
|
-
npx @getmarrow/install hermes
|
|
16
|
-
npx @getmarrow/install openclaw
|
|
17
13
|
```
|
|
18
14
|
|
|
19
|
-
|
|
15
|
+
Required secret:
|
|
20
16
|
|
|
21
|
-
|
|
17
|
+
```bash
|
|
18
|
+
export MARROW_API_KEY=mrw_live_...
|
|
19
|
+
```
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
- `GET /v1/agent/data-quality` lets agents verify attribution coverage after install, including agent ID, source metadata, harness/client, workflow type, outcome closure, and exact repair guidance.
|
|
25
|
-
- `GET /v1/agent/integrations/{client}` gives supported harnesses a per-client setup guide with install command, capture points, source metadata, runtime/commit/batch mapping, and exact next action.
|
|
26
|
-
- `npx @getmarrow/install govern` detects Codex, Claude Code, Cursor, Cursor Composer, Windsurf, Cline, OpenCode, Hermes, OpenClaw, Gemini, Grok, DeepSeek, Qwen, Kimi, MiniMax, GLM, MCP clients, CI scripts, and custom commands.
|
|
27
|
-
- Hermes Agent and OpenClaw remain first-class add-ons.
|
|
28
|
-
- Codex, Claude Code, Cursor, Cursor Composer, Windsurf, Cline, OpenCode, Gemini, Grok, DeepSeek, Qwen, Kimi, MiniMax, GLM, MCP clients, CI scripts, and custom shell/API harnesses can use MCP/SDK hooks, the governed runner, or `POST /v1/agent/integrations/events`.
|
|
29
|
-
- Custom harness events should include `harness`, `event_type`, `agent_id`, and `action`, so Marrow can return the right runtime, commit, or batch-ingest next step without storing unsupported or under-attributed raw payloads.
|
|
21
|
+
## What's New in v0.1.28
|
|
30
22
|
|
|
31
|
-
|
|
23
|
+
v0.1.28 aligns first-run documentation with Marrow's business product contract:
|
|
32
24
|
|
|
33
|
-
|
|
25
|
+
- runtime control before consequential actions;
|
|
26
|
+
- proof and outcome closure afterward;
|
|
27
|
+
- tenant-scoped fleet improvement across interchangeable agents and harnesses;
|
|
28
|
+
- clear separation between the default installer, advanced SDK integration, and MCP-native integration.
|
|
34
29
|
|
|
35
|
-
|
|
30
|
+
This patch changes package documentation and positioning. Existing installer, governed runner, and TUI behavior remains compatible.
|
|
36
31
|
|
|
37
|
-
|
|
38
|
-
- The recommended setup path remains passive by default: install once, then let agents call runtime gates, completion contracts, and outcome closure as they work.
|
|
39
|
-
- Hermes Agent is a supported client label and integration target; Marrow maps Hermes goals, verification evidence, learning, journey, and subagent outcomes into fleet governance proof.
|
|
40
|
-
- New backend surfaces include governance control-plane proof, completion-contract evaluation, fleet governance timeline, and buyer-grade value proof.
|
|
32
|
+
## What It Detects
|
|
41
33
|
|
|
42
|
-
|
|
34
|
+
The installer detects supported configuration and project signals for:
|
|
43
35
|
|
|
44
|
-
|
|
36
|
+
- Codex, Claude Code, Cursor, Cursor Composer, Windsurf, Cline, OpenCode, Hermes, and OpenClaw;
|
|
37
|
+
- Gemini, Grok, DeepSeek, Qwen, Kimi, MiniMax, and GLM command-line or custom harness paths;
|
|
38
|
+
- MCP client configuration;
|
|
39
|
+
- Node.js and Python projects;
|
|
40
|
+
- CI, deploy, publish, merge, migration, and custom shell workflows.
|
|
45
41
|
|
|
46
|
-
|
|
47
|
-
- Generated passive runtime keeps using SDK defaults for `agent_id`, harness/client, source channel, and user intent attribution.
|
|
48
|
-
- Set `MARROW_CLIENT`, `MARROW_HARNESS`, or `MARROW_AGENT_CLIENT` to labels such as `codex`, `claude-code`, `cursor`, `gemini`, `qwen`, `opencode`, `hermes`, `openclaw`, or `custom`.
|
|
49
|
-
- Invalid or unknown client labels fall back to `custom` instead of breaking onboarding.
|
|
50
|
-
- Marrow still does not store prompts, completions, tool stdout/stderr, plaintext API keys, or raw model output for this feature.
|
|
42
|
+
Marrow does not replace these models or harnesses. It adds a common business control, proof, and outcome layer around the actions they perform.
|
|
51
43
|
|
|
52
|
-
|
|
44
|
+
## First-Run Verification
|
|
53
45
|
|
|
54
|
-
|
|
46
|
+
With a valid key, setup:
|
|
55
47
|
|
|
56
|
-
|
|
48
|
+
1. detects the local integration surfaces;
|
|
49
|
+
2. writes supported config and passive instructions;
|
|
50
|
+
3. creates a harmless test decision;
|
|
51
|
+
4. closes its outcome;
|
|
52
|
+
5. reads agent status and the one-call runtime;
|
|
53
|
+
6. reports captured surfaces, attribution quality, proof coverage, token-value capture state, and the exact next action.
|
|
57
54
|
|
|
58
|
-
|
|
59
|
-
- `npx @getmarrow/install run --agent <agent-id> -- <command>` wraps existing agent, deploy, merge, publish, migration, and verification commands with Marrow's pre-action runtime gate.
|
|
60
|
-
- Risky actions can fail closed by default when Marrow requires owner approval, blocks an action, or requires missing proof.
|
|
61
|
-
- Successful and failed commands automatically close outcomes through `/v1/agent/commit` with a redacted proof pack.
|
|
62
|
-
- The runner sends action and command metadata only; it does not upload command stdout, stderr, full environment values, or plaintext API keys.
|
|
63
|
-
- This gives teams a thin governance path for Codex, Claude Code, Cursor, Cursor Composer, Windsurf, Cline, OpenClaw, Hermes, OpenCode, Gemini, Grok, DeepSeek, Qwen, Kimi, MiniMax, GLM, MCP clients, CI scripts, and custom shell-based agents.
|
|
55
|
+
Healthy output confirms that Marrow is active instead of only confirming that files were written.
|
|
64
56
|
|
|
65
|
-
|
|
57
|
+
## Govern TUI
|
|
66
58
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
Preview the detected harnesses and protected command examples:
|
|
59
|
+
Open the interactive setup panel:
|
|
70
60
|
|
|
71
61
|
```bash
|
|
72
62
|
npx @getmarrow/install govern
|
|
73
63
|
```
|
|
74
64
|
|
|
75
|
-
|
|
65
|
+
The TUI shows detected harnesses and project risks, recommends passive, pilot, or enforce mode with reasons, lets the owner accept or override the recommendation, runs the self-test, and confirms the active controls. Use `Ctrl+C` to exit.
|
|
76
66
|
|
|
77
|
-
|
|
78
|
-
MARROW_API_KEY=<your_marrow_key> npx @getmarrow/install run --agent codex-prod --profile production -- node -e "process.exit(0)"
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
Gate a production action before the agent executes it:
|
|
67
|
+
For non-interactive environments:
|
|
82
68
|
|
|
83
69
|
```bash
|
|
84
|
-
|
|
70
|
+
npx @getmarrow/install govern --no-interactive
|
|
85
71
|
```
|
|
86
72
|
|
|
87
|
-
|
|
73
|
+
## Governed Runner
|
|
74
|
+
|
|
75
|
+
Place Marrow around an existing command without replacing the agent harness:
|
|
88
76
|
|
|
89
77
|
```bash
|
|
90
|
-
|
|
78
|
+
npx @getmarrow/install run \
|
|
91
79
|
--agent deploy-agent \
|
|
92
80
|
--type deploy \
|
|
93
81
|
--profile production \
|
|
@@ -95,180 +83,81 @@ MARROW_API_KEY=<your_marrow_key> npx @getmarrow/install run \
|
|
|
95
83
|
-- wrangler deploy
|
|
96
84
|
```
|
|
97
85
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
## Which Install Path Should I Use?
|
|
101
|
-
|
|
102
|
-
Start here unless you already know you need a lower-level integration:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
npx @getmarrow/install --yes
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
The universal installer detects your local agent/runtime environment and wires the safest combination of MCP hooks, SDK passive runtime files, and agent instructions automatically. It also runs the self-test and prints first-run value proof.
|
|
109
|
-
|
|
110
|
-
Use the lower-level packages only when you need direct control:
|
|
111
|
-
|
|
112
|
-
- **SDK:** use `@getmarrow/sdk` when you are building a custom Node/TypeScript agent integration or wrapping your own tools, commands, deploys, and publishes in code.
|
|
113
|
-
- **MCP:** use `@getmarrow/mcp` when you want manual MCP server/hook setup for Claude Code, Claude Desktop, Cursor, or another MCP-compatible client.
|
|
114
|
-
|
|
115
|
-
The three packages are not three competing onboarding paths. `@getmarrow/install` is the front door; SDK and MCP are the implementation paths underneath it.
|
|
116
|
-
|
|
117
|
-
For cleaner attribution, set an agent id and optional client label before install:
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
export MARROW_FLEET_AGENT_ID=codex-deploy-agent
|
|
121
|
-
export MARROW_CLIENT=codex
|
|
122
|
-
npx @getmarrow/install --yes
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Agent Value Proof Quickstart
|
|
126
|
-
|
|
127
|
-
One command should prove Marrow is active and useful:
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
MARROW_API_KEY=<your_marrow_key> npx @getmarrow/install --yes
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
Expected result:
|
|
134
|
-
|
|
135
|
-
- Marrow writes the safest detected MCP/SDK/agent config.
|
|
136
|
-
- A harmless setup decision is created and its outcome is committed.
|
|
137
|
-
- `/v1/agent/status` confirms capture health and missing hooks.
|
|
138
|
-
- `/v1/agent/data-quality` confirms whether attribution is clean enough for per-agent, per-harness, and per-workflow value proof.
|
|
139
|
-
- `/v1/agent/runtime` verifies the one-call runtime gate and returns the before-action intervention contract.
|
|
140
|
-
- `/v1/agent/first-value` returns the five-minute proof payload used by installer, SDK, and MCP clients.
|
|
141
|
-
- `/v1/agent/value/proof` returns token value proof from passive model-usage capture.
|
|
142
|
-
- The installer prints: "Your agent is no longer starting from zero."
|
|
143
|
-
- The installer prints: "Token value proof" with capture status, observed model calls, token totals, estimated savings, confidence, and exact next action.
|
|
144
|
-
- Fresh accounts get a first useful action to try immediately.
|
|
145
|
-
- Accounts with history get proof such as avoided mistakes, reused winning decisions, prevented risky actions, or estimated time/token savings.
|
|
146
|
-
|
|
147
|
-
## First Five-Minute Proof
|
|
148
|
-
|
|
149
|
-
After install, ask the agent:
|
|
150
|
-
|
|
151
|
-
```text
|
|
152
|
-
I am about to deploy to production. What should I check first?
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
Marrow should answer with `proceed`, `warn`, `block`, or `owner_approval_required`, plus required proof and matching fleet lessons/playbooks before the agent acts. This is the first product moment: not just "hooks installed", but "the agent is being warned before risky work."
|
|
156
|
-
|
|
157
|
-
## What It Detects
|
|
158
|
-
|
|
159
|
-
- OpenClaw-style workspaces
|
|
160
|
-
- Hermes Agent config files
|
|
161
|
-
- Codex/agent instruction files such as `AGENTS.md`
|
|
162
|
-
- Claude Code settings and hooks
|
|
163
|
-
- Cursor project folders
|
|
164
|
-
- Cursor Composer, Windsurf, Cline, and OpenCode project markers
|
|
165
|
-
- Gemini, Grok, DeepSeek, Qwen, Kimi, MiniMax, and GLM command/profile markers
|
|
166
|
-
- MCP config files
|
|
167
|
-
- Node projects
|
|
168
|
-
- Python projects
|
|
169
|
-
|
|
170
|
-
## Install Modes
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
npx @getmarrow/install --mcp --dry-run
|
|
174
|
-
npx @getmarrow/install --sdk --dry-run
|
|
175
|
-
npx @getmarrow/install --both --dry-run
|
|
176
|
-
npx @getmarrow/install --md --dry-run
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
`--dry-run` is the default unless `--yes` is passed.
|
|
180
|
-
|
|
181
|
-
## What It Writes
|
|
182
|
-
|
|
183
|
-
- `.claude/settings.json` passive MCP hooks for tool outcomes and prompt context.
|
|
184
|
-
- `.mcp.json` with the Marrow MCP server entry.
|
|
185
|
-
- `.marrow/passive-runtime.mjs` for SDK passive runtime preload in Node processes.
|
|
186
|
-
- `.marrow/env.example` with required environment variables.
|
|
187
|
-
- `AGENTS.md` instructions for agents that rely on markdown/skills.
|
|
188
|
-
- `.cursor/rules/marrow.mdc` when a Cursor project is detected.
|
|
189
|
-
|
|
190
|
-
## Self-Test
|
|
191
|
-
|
|
192
|
-
When `MARROW_API_KEY` is present, the installer creates a harmless test decision, commits the outcome, reads `/v1/agent/status`, calls the one-call runtime, reads `/v1/agent/value/proof`, and prints the first useful Marrow signal plus token value proof.
|
|
193
|
-
|
|
194
|
-
```bash
|
|
195
|
-
MARROW_API_KEY=<your_marrow_key> npx @getmarrow/install --yes
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
Skip self-test:
|
|
86
|
+
The runner:
|
|
199
87
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
88
|
+
1. requests the Marrow runtime gate;
|
|
89
|
+
2. prints the decision, relevant lesson, owner-approval state, and required proof;
|
|
90
|
+
3. blocks when policy requires it;
|
|
91
|
+
4. runs the original command when allowed;
|
|
92
|
+
5. records success or failure and attaches a redacted proof pack.
|
|
203
93
|
|
|
204
|
-
|
|
94
|
+
Useful commands:
|
|
205
95
|
|
|
206
96
|
```bash
|
|
207
|
-
|
|
97
|
+
npx @getmarrow/install gate --agent deploy-agent --type deploy --action "deploy production"
|
|
98
|
+
npx @getmarrow/install status
|
|
99
|
+
npx @getmarrow/install doctor
|
|
100
|
+
npx @getmarrow/install --repair
|
|
208
101
|
```
|
|
209
102
|
|
|
210
|
-
|
|
103
|
+
## Fleet Operator TUI
|
|
211
104
|
|
|
212
105
|
```bash
|
|
213
|
-
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
## SDK Dependency
|
|
217
|
-
|
|
218
|
-
When the installer writes `.marrow/passive-runtime.mjs`, the project should have `@getmarrow/sdk` installed:
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
npm install @getmarrow/sdk
|
|
106
|
+
npx @getmarrow/install fleet
|
|
222
107
|
```
|
|
223
108
|
|
|
224
|
-
The
|
|
225
|
-
|
|
226
|
-
## Passive Token Value Proof
|
|
109
|
+
The fleet view shows live agents, active workflows, risky actions waiting for proof, stale or failed outcomes, capture health, recent decisions, and exact repair commands. It is an operator surface for the authenticated account, not a public status dashboard.
|
|
227
110
|
|
|
228
|
-
|
|
111
|
+
## Integration Paths
|
|
229
112
|
|
|
230
|
-
|
|
113
|
+
| Path | Use it when | Owner effort |
|
|
114
|
+
| --- | --- | --- |
|
|
115
|
+
| Universal installer | You want Marrow to detect and wire the safest supported integration | Lowest |
|
|
116
|
+
| Governed runner | You need control around existing shell, CI, deploy, publish, merge, or migration commands | Low |
|
|
117
|
+
| MCP package | The agent client supports MCP and should use Marrow tools and hooks natively | Low |
|
|
118
|
+
| SDK | You own the Node.js/TypeScript runtime and need programmatic control | Advanced |
|
|
119
|
+
| Event contract | You have a custom harness that must map its lifecycle into Marrow | Advanced |
|
|
231
120
|
|
|
232
|
-
|
|
121
|
+
These are integration surfaces for one Marrow product, not separate products.
|
|
233
122
|
|
|
234
|
-
|
|
235
|
-
- input, output, cached, and total token counts
|
|
236
|
-
- optional cost and latency estimates
|
|
237
|
-
- agent, workflow, session, and decision linkage
|
|
238
|
-
- Marrow intervention type, such as `runtime_gate`, `proof_pack`, or `before_you_act`
|
|
123
|
+
## Passive Token and Value Proof
|
|
239
124
|
|
|
240
|
-
Marrow
|
|
125
|
+
When the installer writes `.marrow/passive-runtime.mjs` and the harness exposes usage metadata, Marrow can capture compact provider/model, token, latency, and optional cost counts. It does not require raw prompts, completions, command output, tool output, or plaintext secrets.
|
|
241
126
|
|
|
242
|
-
|
|
127
|
+
After meaningful work, supported runtime and commit responses can return observed usage, trend direction, evidence confidence, and the next capture improvement. Savings are only reported when the available evidence supports them.
|
|
243
128
|
|
|
244
|
-
|
|
245
|
-
MARROW_PASSIVE_TOKEN_USAGE=false
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
Day-one behavior:
|
|
129
|
+
## Trust and Data Boundaries
|
|
249
130
|
|
|
250
|
-
-
|
|
251
|
-
-
|
|
252
|
-
-
|
|
131
|
+
- Private account, fleet, workflow, proof, and agent data remains tenant-scoped by default.
|
|
132
|
+
- Agent-bound keys can be restricted to an allowed identity and permission set.
|
|
133
|
+
- Sanitized aggregate contribution is optional and never means sharing raw prompts, code, secrets, proof packs, account identifiers, agent identifiers, or customer identities.
|
|
134
|
+
- The installer diagnoses key locations without printing secret values.
|
|
135
|
+
- Marrow returns guidance and policy data. Agents must not execute returned text as shell input.
|
|
253
136
|
|
|
137
|
+
See the [Trust Center](https://getmarrow.ai/trust/) for implemented controls, current limits, and roadmap status.
|
|
254
138
|
|
|
255
|
-
##
|
|
139
|
+
## Environment
|
|
256
140
|
|
|
257
|
-
|
|
141
|
+
| Variable | Required | Purpose |
|
|
142
|
+
| --- | --- | --- |
|
|
143
|
+
| `MARROW_API_KEY` | Yes for live verification | Account or agent-bound API key |
|
|
144
|
+
| `MARROW_BASE_URL` | No | API base override |
|
|
145
|
+
| `MARROW_FLEET_AGENT_ID` | No | Default agent identity |
|
|
258
146
|
|
|
259
|
-
|
|
147
|
+
Use the host's secret manager first. The shared resolver can also check documented Marrow and project env files for owned development environments. Run `doctor` when a key or hook cannot be found.
|
|
260
148
|
|
|
261
|
-
|
|
149
|
+
## Documentation
|
|
262
150
|
|
|
263
|
-
|
|
151
|
+
- [Source-of-truth docs](https://getmarrow.ai/docs/)
|
|
152
|
+
- [Trust Center](https://getmarrow.ai/trust/)
|
|
153
|
+
- [Status](https://getmarrow.ai/status/)
|
|
154
|
+
- [GitHub](https://github.com/getmarrow/marrow-install)
|
|
264
155
|
|
|
265
|
-
|
|
156
|
+
## License
|
|
266
157
|
|
|
267
|
-
|
|
158
|
+
MIT
|
|
268
159
|
|
|
269
160
|
## Related Packages
|
|
270
161
|
|
|
271
|
-
-
|
|
272
|
-
-
|
|
273
|
-
|
|
274
|
-
**Docs:** [https://getmarrow.ai/docs](https://getmarrow.ai/docs)
|
|
162
|
+
- [@getmarrow/sdk](https://www.npmjs.com/package/@getmarrow/sdk) - Node.js and TypeScript integration for owned agent runtimes
|
|
163
|
+
- [@getmarrow/mcp](https://www.npmjs.com/package/@getmarrow/mcp) - MCP-native integration for compatible agent clients
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getmarrow/install",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Universal installer for Marrow agent
|
|
3
|
+
"version": "0.1.28",
|
|
4
|
+
"description": "Universal installer and governed runner for Marrow agent fleets.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"marrow-install": "bin/marrow-install.js"
|
|
7
7
|
},
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
],
|
|
23
23
|
"repository": {
|
|
24
24
|
"type": "git",
|
|
25
|
-
"url": "https://github.com/getmarrow/marrow-install.git"
|
|
25
|
+
"url": "git+https://github.com/getmarrow/marrow-install.git"
|
|
26
26
|
},
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"files": [
|