@getmarrow/install 0.1.49 → 0.1.51
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 +2 -2
- package/package.json +1 -1
- package/src/installer.js +14 -8
package/README.md
CHANGED
|
@@ -91,9 +91,9 @@ npx @getmarrow/install controller stop
|
|
|
91
91
|
|
|
92
92
|
Persistent controller lifecycle is currently Linux-only. On macOS or Windows, activation still writes supported configuration and verifies one server-side install self-test without certifying that hooks continuously ran; run `npx @getmarrow/install sidecar` under an owner-managed service and pass `--no-controller`. The controller does not silently upgrade packages, change governance policy, rotate credentials, or modify unrelated project configuration.
|
|
93
93
|
|
|
94
|
-
## What's New in v0.1.
|
|
94
|
+
## What's New in v0.1.51
|
|
95
95
|
|
|
96
|
-
v0.1.
|
|
96
|
+
v0.1.51 keeps MCP `3.9.74` and SDK `3.7.62`, and makes generated passive runtime identity follow the current process: `MARROW_FLEET_AGENT_ID` first, then `MARROW_AGENT_ID`, with the installer-captured identity retained only as a fallback. This prevents a stale installed harness identity from overriding the current Codex, Bob, or other canonical process identity. Managed MCP config does not store an API key or shell-style credential placeholder; the owning harness inherits the key from trusted environment or secret-manager state.
|
|
97
97
|
|
|
98
98
|
The integration boundary is explicit: native Claude hooks are installed only where supported and remain cooperative/client-reported until authoritative server receipts exist; MCP tools are on demand; Codex, Grok, Gemini, and similar CLIs use the governed wrapper for consequential control; owned Node processes use the SDK passive runtime while installed; and custom hosts require a bounded event adapter. Exact package SHA/integrity can prove artifact provenance, not runtime coverage. Activation-profile delivery is authenticated `client_self_reported` telemetry with `certified_coverage: false`; it acknowledges delivery but cannot attest that a hook, wrapper, or adapter ran.
|
|
99
99
|
|
package/package.json
CHANGED
package/src/installer.js
CHANGED
|
@@ -653,7 +653,7 @@ if (apiKey && !globalThis.__MARROW_PASSIVE_RUNTIME__) {
|
|
|
653
653
|
const { MarrowClient } = await import('@getmarrow/sdk');
|
|
654
654
|
const marrow = new MarrowClient(apiKey, {
|
|
655
655
|
baseUrl: installedBaseUrl,
|
|
656
|
-
agentId:
|
|
656
|
+
agentId: process.env.MARROW_FLEET_AGENT_ID || process.env.MARROW_AGENT_ID || installedAgentId,
|
|
657
657
|
sessionId: process.env.MARROW_SESSION_ID,
|
|
658
658
|
mode: process.env.MARROW_ENFORCEMENT_MODE || 'auto',
|
|
659
659
|
});
|
|
@@ -1356,6 +1356,7 @@ async function runSelfTest(options) {
|
|
|
1356
1356
|
action: 'Marrow passive install self-test: verify one-call agent runtime and outcome closure',
|
|
1357
1357
|
type: 'process',
|
|
1358
1358
|
role: 'general',
|
|
1359
|
+
response_mode: 'expanded',
|
|
1359
1360
|
surfaces: ['workspace'],
|
|
1360
1361
|
proof: {
|
|
1361
1362
|
checks: ['installer self-test'],
|
|
@@ -1465,14 +1466,19 @@ async function runSelfTest(options) {
|
|
|
1465
1466
|
evidence_authority: 'client_self_reported',
|
|
1466
1467
|
certified_coverage: false,
|
|
1467
1468
|
};
|
|
1468
|
-
|
|
1469
|
-
firstValue
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1469
|
+
const activationPrerequisites = {
|
|
1470
|
+
first_value_active: firstValue?.active === true,
|
|
1471
|
+
runtime_gate_verified: runtimeGateVerified(runtime),
|
|
1472
|
+
status_enabled: (status.enabled ?? status.ok) === true,
|
|
1473
|
+
telemetry_accepted: telemetryAccepted,
|
|
1474
|
+
};
|
|
1475
|
+
activationVerified = Object.values(activationPrerequisites).every(Boolean);
|
|
1474
1476
|
if (!activationVerified) {
|
|
1475
|
-
|
|
1477
|
+
const missing = Object.entries(activationPrerequisites)
|
|
1478
|
+
.filter(([, verified]) => !verified)
|
|
1479
|
+
.map(([name]) => name)
|
|
1480
|
+
.join(',');
|
|
1481
|
+
throw new Error(`activation self-test prerequisites were not all verified by the server (${missing})`);
|
|
1476
1482
|
}
|
|
1477
1483
|
}
|
|
1478
1484
|
return {
|