mirage
strukto-ai
The World's First Unified Virtual Filesystem For AI Agents
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:JimchengChina/dsh-action-outbox
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Review several side-effecting DeepSeek Harness tool calls as one immutable batch, then commit or discard them.
dsh-action-outbox implements an output-commit boundary for tools. Staging records the exact tool name and JSON arguments but does not call the target. Review returns a SHA-256 digest. Commit accepts only that exact digest, asks for one batch approval by default, and then sends each target call through the normal DSH tool pipeline in order.
Worktrees and file checkpoints help coding agents recover local code. They do not retract an issue comment, an email, a deployment, a payment, or another external emission. The Cordis paper behind DeepSeek Harness names two honest responses to that boundary: withhold output until commit, or define domain-specific compensation. This plugin implements the stronger generic option—withhold until commit—without pretending unrelated external systems share an atomic transaction.
Install the tagged release from GitHub:
dsh plugin --profile web add github:JimchengChina/dsh-action-outbox#v0.2.0
Or install from a checkout:
dsh plugin --profile web add ./dsh-action-outbox
The package is a DSH bundle and activates itself through cordis.patch.yml.
Its tools also publish DSH-native call/result presentation metadata, so capable Web, TUI, and editor clients can show concise review and commit cards without special-casing plugin tool names.
action_outbox_begin({ label })action_outbox_stage({ tool, arguments, summary? })action_outbox_unstage({ action_id })action_outbox_review()digestaction_outbox_commit({ expected_digest: digest }) or action_outbox_discard()Before commit, discarding guarantees that no staged target action ran. A changed batch gets a changed digest, so a stale approval cannot commit it.
The default permits any visible non-internal tool to be staged, requires approval for commit, and does not force any direct tool through the outbox.
- id: action-outbox
name: dsh-action-outbox
config:
include: ['github_*', 'slack_*', 'deploy_*']
exclude: ['github_get_*', 'github_list_*']
enforce: ['github_create_*', 'github_update_*', 'slack_send', 'deploy_*']
requireApproval: true
rejectDuplicateActions: true
maxPendingMs: 1800000
maxActions: 20
maxArgumentBytes: 65536
resultPreviewChars: 2000
approvalPreviewChars: 4000
include: wildcard patterns for tools that may be staged.exclude: wildcard exceptions to both staging and enforcement.enforce: wildcard patterns that reject direct calls and require the transactional route. Empty by default for compatibility.requireApproval: ask once for the exact reviewed batch. Without an approval service, commit fails closed.rejectDuplicateActions: reject repeated target-name/argument pairs that could otherwise duplicate a write. Disable only when repetition is intentional.maxPendingMs: expire an uncommitted batch after this many milliseconds so old intent cannot receive a fresh approval. The default is 30 minutes; 0 disables expiry.maxActions / maxArgumentBytes: bound retained in-memory state.resultPreviewChars / approvalPreviewChars: bound model- and user-facing receipts.* is the only wildcard. Every other regular-expression character is literal.
enforce rule. Tool calls made by that target are not silently authorized and must pass enforcement themselves.See the research note for the feature comparison, duplicate scan, and paper-derived design rationale.
For deployment assumptions and abuse cases, read the security policy and threat model. A stricter starter configuration is available at examples/enforced-external-actions.yml.
pnpm install
pnpm verify
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: agent-safety。