dsh process. The Agent tool sandbox contains neither boundary.A green verdict needs an artifact identity.
A runtime-tested catalog is better discovery evidence than stars. It still cannot approve an install unless the verdict binds the exact bytes now selected.
An identity appeared in a source.
One exact transaction composed.
Pinned bytes passed a declared matrix.
A scoped threat model was evaluated.
A marketplace is also a mutation control plane.
Lifecycle code, dependency closure, Bundle membership, and partial transactions.
Parsed patch edits, row authorization, revision conflicts, and atomic replacement.
Same-origin blocks one CSRF class. It does not authorize an operator or profile.
Timeout, crash, cold restart, cleanup, and exact known-good restoration.
candidate = catalog digest + commit + version + integrity
approval = principal + profile + action + candidate + expiry
result = manifest/lock/patch revisions + verification + rollback
Pass six gates in order.
- 01Discover
Use topics and lists to find candidates, not to approve them.
- 02Resolve
Match repository, package, exact version, integrity, and maintainer.
- 03Inspect
Read the published tarball and lifecycle scripts without executing them.
- 04Map
Inventory services, tools, credentials, network, files, UI, and persistence.
- 05Isolate
Install one exact candidate into a disposable profile and workspace.
- 06Decide
Verify denial, restart, disposal, removal, and known-good restoration.
Read registry metadata first.
npm view <package>@<version> \
name version dist.integrity dist.tarball \
repository.url license scripts \
dependencies peerDependencies --json
Inspect exact bytes without scripts.
audit_dir=$(mktemp -d)
npm pack --ignore-scripts --pack-destination "$audit_dir" \
<package>@<version>
tar -tf "$audit_dir"/*.tgz
Map effects beyond the Tool schema.
Module scope, apply lifecycle, subprocesses, timers, and cleanup.
Sources, destinations, transmitted data, and failure logging.
Required/provided services, names, schemas, policy hooks, and conflicts.
Replaced slots, settings, durable events, databases, and migrations.
A bundle can replace the Agent's world.
The inspected @struktoai/mirage-dsh@0.0.1 artifact intentionally disables five core rows and inserts alternate filesystem and shell providers. The patch documents that design; the install command does not present the resulting capability diff as an approval boundary.
Diff before the first boot.
new rowAdded effectService, tool, UI, process, or networkdisabledCapability removedEvaluate per operating systemproviderTrust domain changedSame tool, different worldconfigDefaults replacedExpressions may disappeardsh --profile plugin-lab --dump-config > effective-before.yml
dsh plugin --profile plugin-lab add pkg@1.2.3
dsh --profile plugin-lab --dump-config > effective-after.yml
diff -u effective-before.yml effective-after.yml
Install one exact candidate.
dsh --profile plugin-lab --dump-config > before.ymldsh plugin --profile plugin-lab add pkg@1.2.3dsh --profile plugin-lab --dump-config > after.ymlDiscovery signals are not safety claims.
Attention, not artifact integrity.
Navigation, not a current code audit.
pnpm completed, not that the graph boots.
The schema omits module-scope and lifecycle effects.
A mismatched repository, hidden executable, unpinned download, broad credential access, dynamic network destination, or missing cleanup path ends the install review.
Primary evidence.
- rc.2 plugin-management contract
- rc.2 reconciliation implementation
- rc.2 profile composition contract
- Verified-market proposal #4736
- Reviewed market commit
Audit the graph the Agent receives.
The canonical guide includes exact-artifact inspection, core-row tracking, platform-aware composition diffs, real workspace probes, cleanup tests, and a reusable evidence record.
Read the complete guide on GitHub