dsh-completion-guard 0.4.2 → 0.5.0
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/CHANGELOG.md +30 -1
- package/CHANGELOG.zh-CN.md +30 -1
- package/README.md +18 -24
- package/README.zh-CN.md +18 -24
- package/bin/dsh-completion-guard-host-lock.mjs +15 -2
- package/dist/domain/index.d.ts +2 -2
- package/dist/domain/index.js +2 -2
- package/dist/{domain-BXB_BPQg.js → domain-Cx8vpxSj.js} +1169 -278
- package/dist/{index-DNF0OTi-.d.ts → index-Cd3wXBLi.d.ts} +279 -20
- package/dist/index.d.ts +8 -2
- package/dist/index.js +270 -41
- package/docs/ARCHITECTURE.md +26 -2
- package/docs/COMPATIBILITY.md +22 -16
- package/docs/HOST_LOCK_UPGRADE.md +83 -0
- package/docs/LOCAL_ACCEPTANCE.md +16 -6
- package/docs/SEMANTIC_COMPATIBILITY.md +4 -2
- package/manifests/action-manifest.v1.json +1 -1
- package/manifests/supported-host.v1.json +221 -14
- package/package.json +31 -30
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented here. The project is pre-1.0; release versions track the plugin lifecycle, not stabilised API promises.
|
|
4
4
|
|
|
5
|
-
## 0.
|
|
5
|
+
## 0.5.0 - 2026-09-10
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **`always` mode now protects from your first message instead of writing into brand-new sessions.** A freshly created session stays completely empty: the Guard no longer appends context messages when the session starts, so the session still looks new and a DSH session mode (standard, minimal, or a custom preset) can be chosen before anything is sent. Protection begins in the same step as the first real user message, ahead of that message — the first task, including its first file changes, is covered. A first message that only carries an image or an attachment also starts protection; a blank message starts nothing and creates no empty contract.
|
|
10
|
+
- **A confirmation can carry follow-up text in the same reply.** The confirmation line `确认重绑定 <proposal ID>` may stand alone as the first line; an explanation request or a new task after a blank line keeps its own meaning, and a new task is captured like any other instruction. A confirmation buried inside a sentence, inside quotes, inside a code block, or followed by a reversal such as "先不要确认", does nothing — a reply either confirms cleanly or stays pending, never partially.
|
|
11
|
+
- **Useless rebind confirmations are refused up front.** Splitting one uncertifiable requirement into clauses that are all equally uncertifiable returns "no certification gain" instead of producing a proposal that would spend a user confirmation without improving certification.
|
|
12
|
+
- **Diagnosis names what is possible before what is missing.** Checkpoint, recovery, rebind, and status share one diagnosis per item: what kind of work it is, whether the current adapters can certify it, which target fields or evidence facets are missing, and one concrete next action. Questions such as "是否有更新" stay recorded with their source but report honestly that they cannot be machine-certified — finish them and report the answer — instead of being pushed into a rebind loop. Repeating an identical rejected attempt returns the same stable "unchanged" answer instead of a fresh rejection each time.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **`context_guard_prepare` (read-only).** Before a stateful action it reports the supported command shape (from the same audited parser the executor uses), the required resolution/effect/state evidence order, reusable evidence references, the host capability verdict, and the exact missing target fields. It performs no action, and a guessed or default target is never treated as user authority.
|
|
17
|
+
- **An action that already happened without its prestate evidence is reported as a historical gap**: the observed state can be read back, and repeating the action to mint missing evidence is explicitly not suggested.
|
|
18
|
+
|
|
19
|
+
### Compatibility
|
|
20
|
+
|
|
21
|
+
- Recognize pnpm hoisted installations when checking a dependency-free Headless profile. Bare package-name entries now work alongside versioned entries; installed versions, lockfile integrity, unique identities, and actual package locations remain mandatory.
|
|
22
|
+
- The supported DSH target is exactly `0.1.2-rc.1` (with Cordis `4.0.2`). The active host allowlist contains that one audited core graph; alpha and older RC package sets are recorded as historical identities only, and an installed graph from those sets fails closed instead of certifying. npm peer dependencies accept only `0.1.2-rc.1`.
|
|
23
|
+
- Sessions created before this version keep their stored messages, proposals, and certificates under their historical rules. The first message this version writes into such a session carries an explicit protocol boundary marking the cut; duties and certificates from before the cut are never reinterpreted. Upgrading does not remove previously injected messages.
|
|
24
|
+
|
|
25
|
+
## 0.4.3 - 2026-09-08
|
|
26
|
+
|
|
27
|
+
- Separate the exact DSH core lock from optional market versions. Recheck the active core graph during replay; changed, missing or duplicate core dependencies still fail closed.
|
|
28
|
+
- Version the core-lock policy and market service adapter explicitly. Preserve historical records while requiring fresh lock migration and new restart credentials.
|
|
29
|
+
- Require a trusted loaded-instance binding for market restart. Current DSH lacks this binding, so only that adapter remains unavailable; requested restart work is never silently completed.
|
|
30
|
+
- Select native acceptance targets explicitly, inspect supplied daily targets read-only, and test Headless without installing market.
|
|
31
|
+
- Recognize dependency-free DSH `0.1.2-rc.1` Headless profiles during read-only pre-install checks. Verify their installation-owned bundles without creating profile files; installed profiles still require intact package maps and locks.
|
|
32
|
+
- Reconcile the historical 0.4.2 release labels and document installation versus runtime acceptance.
|
|
33
|
+
|
|
34
|
+
## 0.4.2 - 2026-09-07
|
|
6
35
|
|
|
7
36
|
- Explain when a task cannot be certified and what the user can clarify. Generic command success still cannot prove an update or a GUI result.
|
|
8
37
|
- Add `context_guard_rebind`: propose a complete split of an old requirement, optionally link a later explicit root-user clarification, then replace it only after the user's exact confirmation. Old sources, unsupported remainders, and one-to-many relationships remain visible; the proposal grants no execution permission.
|
package/CHANGELOG.zh-CN.md
CHANGED
|
@@ -2,7 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
本项目的重要变化记录在这里。项目仍处于 1.0 之前;版本号跟踪插件生命周期,不代表 API 已稳定。
|
|
4
4
|
|
|
5
|
-
## 0.
|
|
5
|
+
## 0.5.0 - 2026-09-10
|
|
6
|
+
|
|
7
|
+
### 变化
|
|
8
|
+
|
|
9
|
+
- **`always` 模式改为从你的第一条消息开始保护,而不是在全新会话里提前写入内容。** 新建会话保持完全空白:Guard 不再在会话开始时追加上下文消息,会话仍然显示为"新会话",可以先选择 DSH 会话模式(standard、minimal 或自定义 preset)再发送任何内容。保护与第一条真实用户消息进入同一步骤、且位于该消息之前——第一个任务连同它的第一次文件修改都在覆盖范围内。首条消息只有图片或附件时同样开始保护;纯空白消息不启动任何内容,也不会生成空合同。
|
|
10
|
+
- **一次回复可以同时包含确认和后续内容。** 确认行 `确认重绑定 <提案 ID>` 单独作为首行即可;空行之后的解释请求或新任务保留各自含义,新任务照常采集。嵌在句子中间、引号或代码块里的确认,以及后面跟着"先不要确认"等反转表述的确认,都不会生效——一条回复要么干净地确认,要么保持待确认,绝不部分生效。
|
|
11
|
+
- **无收益的重绑定确认会被直接拒绝。** 把一条本就不可认证的要求拆成同样不可认证的片段时,工具返回"无认证收益",而不是生成一个只会消耗用户确认的提案。
|
|
12
|
+
- **诊断先说明能做什么,再说缺什么。** checkpoint、恢复、rebind 和 status 共用同一份诊断:这条工作属于什么类型、当前适配器能否认证、缺哪些目标字段或证据面、下一步做什么。诸如"是否有更新"的提问会保留原文和来源,同时如实说明无法机器认证——完成调查并如实回答即可,不会再被推进无意义的重绑定循环。同一内容被重复提交的拒绝尝试会返回同一个稳定的"无变化"答复,而不是每次都给出新的拒绝。
|
|
13
|
+
|
|
14
|
+
### 新增
|
|
15
|
+
|
|
16
|
+
- **`context_guard_prepare`(只读)。** 在执行有状态动作前,报告受支持的命令形状(与执行器使用同一套已审计解析规则)、所需的 resolution/effect/state 证据顺序、可复用的证据引用、宿主能力判定以及精确缺失的目标字段。它不执行任何动作,猜测或默认值也不会被当作用户授权。
|
|
17
|
+
- **动作已发生但缺少前态证据时,按"历史缺口"报告**:可以只读回读观测到的状态,并明确不建议为补证据而重复执行动作。
|
|
18
|
+
|
|
19
|
+
### 兼容性
|
|
20
|
+
|
|
21
|
+
- 修复 pnpm hoisted 安装方式下,未声明外部依赖的 Headless profile 被误判为不支持的问题。包映射使用裸包名或带版本的键均可识别,仍严格核对安装版本、锁文件完整性、唯一身份和实际包位置。
|
|
22
|
+
- 支持的 DSH 目标为 `0.1.2-rc.1`(配合 Cordis `4.0.2`)。活跃宿主白名单只包含这一个已审计核心图;alpha 与更早 RC 的包组合仅作为历史身份保留,安装了这些组合的宿主按 fail-closed 拒绝认证。npm peer 依赖只接受 `0.1.2-rc.1`。
|
|
23
|
+
- 在本版本之前创建的会话,其消息、提案和证书继续按历史规则解释。本版本向这类会话写入的第一条消息带有显式协议边界作为切点;切点之前的义务和证书不会被重新解释。升级不会删除此前注入的消息。
|
|
24
|
+
|
|
25
|
+
## 0.4.3 - 2026-09-08
|
|
26
|
+
|
|
27
|
+
- 将精确的 DSH 核心锁与可选 market 版本分离。回放时重新读取实际核心依赖图;核心依赖变化、缺失或重复仍拒绝认证。
|
|
28
|
+
- 显式版本化核心锁策略和 market 服务适配器。保留历史记录,迁移时重新验证锁并重新获取重启凭据。
|
|
29
|
+
- market 重启要求可信的已加载实例绑定。当前 DSH 没有该绑定,因此仅该适配器不可用;用户要求的重启不会被静默判为完成。
|
|
30
|
+
- 原生验收显式选择目标,只读核对传入的日常 profile,并在不安装 market 的 Headless 中验收。
|
|
31
|
+
- 安装前只读检查支持未声明外部依赖的 DSH `0.1.2-rc.1` Headless profile。检查内置 bundle 的实际安装来源,不补建 profile 文件;已安装插件的 profile 仍必须具备完整的包映射与锁文件。
|
|
32
|
+
- 修正历史 0.4.2 发布标记,区分磁盘安装与运行验收。
|
|
33
|
+
|
|
34
|
+
## 0.4.2 - 2026-09-07
|
|
6
35
|
|
|
7
36
|
- 对不能认证的任务说明原因和澄清方法。普通命令成功仍不能证明更新完成或 GUI 效果正确。
|
|
8
37
|
- 新增 `context_guard_rebind`:提出完整的旧要求拆分方案,可关联用户随后明确给出的澄清要求;只有用户精确确认后才替代旧项。保留旧来源、未支持部分和一对多关系,提案本身不授予执行权限。
|
package/README.md
CHANGED
|
@@ -8,10 +8,12 @@ An add-on for DeepSeek Harness (DSH) that keeps a task's requirements and checks
|
|
|
8
8
|
|
|
9
9
|
## Quick start
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
These instructions target 0.5.0.
|
|
12
|
+
|
|
13
|
+
Install the plugin into the DSH Web environment:
|
|
12
14
|
|
|
13
15
|
```sh
|
|
14
|
-
dsh plugin --profile web add dsh-completion-guard@0.
|
|
16
|
+
dsh plugin --profile web add dsh-completion-guard@0.5.0
|
|
15
17
|
```
|
|
16
18
|
|
|
17
19
|
Before restarting DSH, record and verify the DSH program directory and the Web settings directory. Replace the example paths with the absolute paths on your machine:
|
|
@@ -19,16 +21,14 @@ Before restarting DSH, record and verify the DSH program directory and the Web s
|
|
|
19
21
|
```sh
|
|
20
22
|
DSH_RUNTIME_ROOT=/absolute/path/to/.dsh-runtime
|
|
21
23
|
DSH_PROFILE_ROOT=/absolute/path/to/.dsh/profiles/web
|
|
22
|
-
DSH_COMPOSED_DUMP=/tmp/dsh-web-composed.yml
|
|
23
24
|
GUARD_HOST_LOCK="$DSH_PROFILE_ROOT/node_modules/.bin/dsh-completion-guard-host-lock"
|
|
24
25
|
|
|
25
26
|
"$GUARD_HOST_LOCK" inspect --runtime-root "$DSH_RUNTIME_ROOT" --profile-root "$DSH_PROFILE_ROOT"
|
|
26
27
|
"$GUARD_HOST_LOCK" inject --runtime-root "$DSH_RUNTIME_ROOT" --profile-root "$DSH_PROFILE_ROOT"
|
|
27
|
-
dsh --profile web --dump-config
|
|
28
|
-
"$GUARD_HOST_LOCK" verify-dump --runtime-root "$DSH_RUNTIME_ROOT" --profile-root "$DSH_PROFILE_ROOT" --dump-config "$DSH_COMPOSED_DUMP"
|
|
28
|
+
dsh --profile web --dump-config | "$GUARD_HOST_LOCK" verify-dump --runtime-root "$DSH_RUNTIME_ROOT" --profile-root "$DSH_PROFILE_ROOT" --dump-config -
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
On Windows, run the same three subcommands through `dsh-completion-guard-host-lock.cmd` in the Web settings directory's `node_modules\.bin` directory and use Windows absolute paths. Repeat this check after
|
|
31
|
+
On Windows, run the same three subcommands through `dsh-completion-guard-host-lock.cmd` in the Web settings directory's `node_modules\.bin` directory and use Windows absolute paths. Repeat this check after changing DSH, Guard or the profile location; an ordinary market-only update does not require reinjection. The Guard stays unavailable if the active package set is missing, mixed, duplicated, or different from a checked setup.
|
|
32
32
|
|
|
33
33
|
Restart DSH Web, open a session, and enable the Guard:
|
|
34
34
|
|
|
@@ -37,7 +37,7 @@ Restart DSH Web, open a session, and enable the Guard:
|
|
|
37
37
|
/context-guard status
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
Activation is opt-in by default. `status` shows whether the Guard is on and how many checks remain. `off` stops protection for the current session without deleting its history. `clear` closes the current checklist while keeping prohibitions. `diagnose` explains why a completion check passed or failed.
|
|
40
|
+
Activation is opt-in by default. `status` shows whether the Guard is on, its startup phase (`armed` means waiting for your first message), and how many checks remain. `off` stops protection for the current session without deleting its history. `clear` closes the current checklist while keeping prohibitions. `diagnose` explains why a completion check passed or failed.
|
|
41
41
|
|
|
42
42
|
## What it protects
|
|
43
43
|
|
|
@@ -49,30 +49,24 @@ Activation is opt-in by default. `status` shows whether the Guard is on and how
|
|
|
49
49
|
|
|
50
50
|
## Status and compatibility
|
|
51
51
|
|
|
52
|
-
The
|
|
53
|
-
|
|
54
|
-
The source tree now targets **0.4.2 (unreleased)**. It adds bounded checkpoint queries and root-user-confirmed requirement rebinding. The published installation example above does not install these candidate changes. Acceptance is bound to each frozen package; earlier candidate results do not cover later documentation or package changes. See [the changelog](CHANGELOG.md) and [acceptance scope](docs/LOCAL_ACCEPTANCE.md).
|
|
55
|
-
|
|
56
|
-
Version `0.4.1-rc.1` is the published `next` prerelease for DSH `0.1.2-rc.1` with dshmarket `1.41.0`. Its host cohort is audited on native macOS/posix and against the native Windows rc.1 host graph; host-graph audits do not replace the cross-platform exact-artifact acceptance of one frozen package. See [`docs/COMPATIBILITY.md`](docs/COMPATIBILITY.md).
|
|
57
|
-
|
|
58
|
-
Version 0.3.2 remains available for the checked DSH `0.1.1-rc.2` and `0.1.2-alpha.2` setups. Do not combine packages from different checked setups; the Guard fails closed when the active package set does not match one complete cohort in [`docs/COMPATIBILITY.md`](docs/COMPATIBILITY.md).
|
|
52
|
+
The supported DSH target is `0.1.2-rc.1` with Cordis `4.0.2`. The Guard checks the exact DSH core separately from optional dshmarket, so an ordinary market upgrade does not require a Guard release or core-lock reinjection; if a plugin changes the resolved core dependencies, certification still fails closed. Headless does not need market installed. DSH package sets from alpha releases and older RCs stay recorded as historical identities, and a runtime built from one of them is reported as unsupported instead of certified.
|
|
59
53
|
|
|
60
|
-
|
|
54
|
+
Restart is a separate capability. Current DSH does not supply independently verified bindings for market's loaded instance, so the Guard market restart adapter is unavailable. A requested restart remains pending; core protection and unrelated operations continue. Installing or applying a package on disk does not prove that a running process or UI has adopted it.
|
|
61
55
|
|
|
62
|
-
|
|
56
|
+
Upgrading the core lock requires fresh inspection and injection from the actual runtime and profile. Old certificates are not relabelled as evidence for the new lock. See the [upgrade guide](docs/HOST_LOCK_UPGRADE.md) and [compatibility guide](docs/COMPATIBILITY.md).
|
|
63
57
|
|
|
64
|
-
|
|
58
|
+
Choose a published version from [npm](https://www.npmjs.com/package/dsh-completion-guard) and verify its commit, checksum and native annexes on the [GitHub Release](https://github.com/GreenLv/dsh-completion-guard/releases/latest). The historical 0.4.2 release targets rc.1 with market 1.41 and does not contain this decoupling. A source version, CI, same-byte native acceptance and publication are separate states; see [acceptance scope](docs/LOCAL_ACCEPTANCE.md).
|
|
65
59
|
|
|
66
|
-
|
|
60
|
+
The project was renamed from `dsh-context-guard` on 2026-08-29; its internal bundle id is still `context-guard`. Migration preserves sessions, activation and disabled settings. Do not load both package names in one profile. Node.js `>=22` and pnpm `>=11` are required.
|
|
67
61
|
|
|
68
62
|
## Activation modes
|
|
69
63
|
|
|
70
64
|
Context Guard has two activation modes:
|
|
71
65
|
|
|
72
66
|
- `opt-in` (default): protection is off when a session starts. Run `/context-guard on` in that session to turn it on, and `/context-guard off` to turn it off again. This changes only the current session.
|
|
73
|
-
- `always`: DSH sessions are protected automatically. Running `/context-guard off` turns protection off
|
|
67
|
+
- `always`: DSH sessions are protected automatically from the first real message. A brand-new session stays completely empty — the Guard writes nothing into it — so you can still pick the DSH session mode (standard, minimal, or a custom preset) before sending anything. The moment your first real message enters a step, protection begins in that same step and ahead of your message: the first task, including its first file changes, is covered. A first message that only carries an image or an attachment starts protection too and leaves an unresolved asset item until its meaning is clarified; a blank message starts nothing. Running `/context-guard off` turns protection off for that session until you run `on` again.
|
|
74
68
|
|
|
75
|
-
These modes only control Guard protection. They are not the DSH session mode (for example, the standard or minimal mode) that a session starts with.
|
|
69
|
+
These modes only control Guard protection. They are not the DSH session mode (for example, the standard or minimal mode) that a session starts with. Because the Guard no longer writes into sessions before the first message, a session's DSH mode can be selected while the session is still new. `/context-guard on` and `/context-guard off` turn Guard protection on or off; they never change the DSH session mode.
|
|
76
70
|
|
|
77
71
|
To make DSH sessions start with protection on, add this entry to the `cordis.patch.yml` used by the way you start DSH:
|
|
78
72
|
|
|
@@ -102,15 +96,15 @@ After the change, restart DSH.
|
|
|
102
96
|
|
|
103
97
|
## How completion is checked
|
|
104
98
|
|
|
105
|
-
Once enabled, the Guard saves direct user requirements and acceptance checks. A saved tool result counts only when it matches the requested command, file, or other target.
|
|
99
|
+
Once enabled, the Guard saves direct user requirements and acceptance checks. A saved tool result counts only when it matches the requested command, file, or other target. A machine-certified completion requires the Guard's checkpoint; missing, stale, or mismatched evidence leaves the task uncertified. Investigations and explanations outside the supported evidence rules can still end with an honest answer, without a completion certificate.
|
|
106
100
|
|
|
107
101
|
Read-only evidence collection and actions that change packages, files, services, or Git state use separate tools. A successful lookup never grants permission to make a change. Exact command limits and platform evidence are documented in [`docs/COMPATIBILITY.md`](docs/COMPATIBILITY.md).
|
|
108
102
|
|
|
109
|
-
### When a requirement stays incomplete
|
|
103
|
+
### When a requirement stays incomplete
|
|
110
104
|
|
|
111
|
-
“Update the plugin and check the GUI” can contain work the Guard cannot certify. The checkpoint reports a reason and
|
|
105
|
+
“Update the plugin and check the GUI” can contain work the Guard cannot certify, and questions such as “是否有更新” are inquiries: they stay recorded with their source, but no checkpoint or rebind can machine-certify an answer — complete the investigation and report the result. The checkpoint reports a reason and one concrete next action per item, and `context_guard_prepare` (read-only) shows, before a stateful action, the supported command shape, the required resolution/effect/state evidence order, and the exact missing target fields.
|
|
112
106
|
|
|
113
|
-
Use `context_guard_rebind` to propose an exact, complete split of the old text. If the action or target needs clarification, first ask the root user for an explicit instruction that includes the original clause; the proposal can reference that new item's ID. The tool returns a proposal ID and a comparison.
|
|
107
|
+
Use `context_guard_rebind` to propose an exact, complete split of the old text. If the action or target needs clarification, first ask the root user for an explicit instruction that includes the original clause; the proposal can reference that new item's ID. The tool returns a proposal ID and a comparison. The user applies it with the confirmation line `确认重绑定 <proposal ID>` as the first line of a reply; an explanation request or a new task after a blank line keeps its own meaning, and a new task is captured normally. A confirmation buried in a sentence, quotes, or a code block, or followed by a reversal, does nothing. Splitting a requirement into equally uncertifiable pieces returns “no certification gain” instead of asking for a pointless confirmation. Unsupported parts remain pending, and a qualified safe end does not mean all work is complete.
|
|
114
108
|
|
|
115
109
|
The default `context_guard_checkpoint` call uses `bindings: []` for diagnosis. It shows at most eight current items/constraints and ten evidence rows, within 12 KiB of plugin JSON. `pagination` reports totals and a separate `next_cursor` for each list; the first page is not the whole contract. Use `item_ids` or `evidence_ids` to focus a query, or `evidence_scope: "history"` for the complete evidence history, including rows marked unavailable. Keep the query unchanged when following a cursor; a changed contract or evidence snapshot requires a fresh query. Large rows expose `detail_id`; retrieve chunks with `detail_offset` and return the first response's `snapshot` as `detail_snapshot` on later chunks. All queries remain read-only and never shrink the certification set.
|
|
116
110
|
|
package/README.zh-CN.md
CHANGED
|
@@ -8,10 +8,12 @@
|
|
|
8
8
|
|
|
9
9
|
## 快速开始
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
以下步骤适用于 0.5.0。
|
|
12
|
+
|
|
13
|
+
将插件安装到 DSH 的 Web 运行环境:
|
|
12
14
|
|
|
13
15
|
```sh
|
|
14
|
-
dsh plugin --profile web add dsh-completion-guard@0.
|
|
16
|
+
dsh plugin --profile web add dsh-completion-guard@0.5.0
|
|
15
17
|
```
|
|
16
18
|
|
|
17
19
|
重启 DSH 前,先记录并验证 DSH 程序目录和 Web 配置目录。请把示例路径替换为本机绝对路径:
|
|
@@ -19,16 +21,14 @@ dsh plugin --profile web add dsh-completion-guard@0.4.0
|
|
|
19
21
|
```sh
|
|
20
22
|
DSH_RUNTIME_ROOT=/absolute/path/to/.dsh-runtime
|
|
21
23
|
DSH_PROFILE_ROOT=/absolute/path/to/.dsh/profiles/web
|
|
22
|
-
DSH_COMPOSED_DUMP=/tmp/dsh-web-composed.yml
|
|
23
24
|
GUARD_HOST_LOCK="$DSH_PROFILE_ROOT/node_modules/.bin/dsh-completion-guard-host-lock"
|
|
24
25
|
|
|
25
26
|
"$GUARD_HOST_LOCK" inspect --runtime-root "$DSH_RUNTIME_ROOT" --profile-root "$DSH_PROFILE_ROOT"
|
|
26
27
|
"$GUARD_HOST_LOCK" inject --runtime-root "$DSH_RUNTIME_ROOT" --profile-root "$DSH_PROFILE_ROOT"
|
|
27
|
-
dsh --profile web --dump-config
|
|
28
|
-
"$GUARD_HOST_LOCK" verify-dump --runtime-root "$DSH_RUNTIME_ROOT" --profile-root "$DSH_PROFILE_ROOT" --dump-config "$DSH_COMPOSED_DUMP"
|
|
28
|
+
dsh --profile web --dump-config | "$GUARD_HOST_LOCK" verify-dump --runtime-root "$DSH_RUNTIME_ROOT" --profile-root "$DSH_PROFILE_ROOT" --dump-config -
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
Windows 请通过 Web 配置目录下的 `node_modules\.bin\dsh-completion-guard-host-lock.cmd` 运行相同的三个子命令,并使用 Windows 绝对路径。DSH、
|
|
31
|
+
Windows 请通过 Web 配置目录下的 `node_modules\.bin\dsh-completion-guard-host-lock.cmd` 运行相同的三个子命令,并使用 Windows 绝对路径。DSH、Guard 或 profile 路径变化后需要重新检查;仅 market 普通升级不需要重新注入。如果当前包集合缺失、混装、重复或不属于已检查环境,Guard 会保持不可用。
|
|
32
32
|
|
|
33
33
|
然后重启 DSH Web,打开会话并启用 Guard:
|
|
34
34
|
|
|
@@ -37,7 +37,7 @@ Windows 请通过 Web 配置目录下的 `node_modules\.bin\dsh-completion-guard
|
|
|
37
37
|
/context-guard status
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
默认采用 opt-in。`status` 显示 Guard
|
|
40
|
+
默认采用 opt-in。`status` 显示 Guard 是否开启、启动阶段(`armed` 表示已就绪、等待你的第一条消息)以及还有多少检查项。`off` 停止保护当前会话,但不删除历史。`clear` 关闭当前待办,同时保留禁止项。`diagnose` 说明完成检查为什么通过或失败。
|
|
41
41
|
|
|
42
42
|
## 它保护什么
|
|
43
43
|
|
|
@@ -49,30 +49,24 @@ Windows 请通过 Web 配置目录下的 `node_modules\.bin\dsh-completion-guard
|
|
|
49
49
|
|
|
50
50
|
## 状态与兼容性
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
源码当前目标是 **0.4.2(未发布)**,新增有界 checkpoint 查询和用户确认后的要求重绑定。上方安装命令仍指向已记录的发布版本,不包含这些候选变更。验收绑定每一份冻结包,早期候选的结果不能覆盖后续文档或包变更。详见[更新记录](CHANGELOG.zh-CN.md)和[验收范围](docs/LOCAL_ACCEPTANCE.md)。
|
|
55
|
-
|
|
56
|
-
版本 `0.4.1-rc.1` 是已发布到 `next` 通道、面向 DSH `0.1.2-rc.1` 与 dshmarket `1.41.0` 的预发布版本。其宿主队列已在原生 macOS/posix 上审计,并核对过原生 Windows rc.1 运行时的宿主图谱;宿主图谱审计不能替代同一冻结包的跨平台 exact-artifact acceptance。详见 [`docs/COMPATIBILITY.md`](docs/COMPATIBILITY.md)。
|
|
57
|
-
|
|
58
|
-
0.3.2 继续支持已经检查过的 DSH `0.1.1-rc.2` 和 `0.1.2-alpha.2` 环境。不要混用不同环境的包;只有当前包集合完整匹配 [`docs/COMPATIBILITY.md`](docs/COMPATIBILITY.md) 中的一套记录时,Guard 才会启用。
|
|
52
|
+
当前支持的 DSH 目标是 `0.1.2-rc.1`(配合 Cordis `4.0.2`)。Guard 将 DSH 核心依赖与可选的 dshmarket 分开检查,market 的普通升级不要求 Guard 发版或重新注入核心锁;如果插件改变了实际解析到的核心依赖,Guard 仍会拒绝认证。Headless 不需要安装 market。alpha 版本和更早 RC 的 DSH 包组合仅作为历史身份保留,由这些包组合构成的运行环境会被报告为不受支持,而不会通过认证。
|
|
59
53
|
|
|
60
|
-
|
|
54
|
+
重启属于单独能力。当前 DSH 没有提供可独立验证的 market 已加载实例绑定,因此 Guard 的 market 重启适配器返回不可用;已有重启要求仍保持未完成。核心保护和不依赖该接口的操作继续工作。磁盘上的插件安装/应用不等于运行进程或 UI 已生效。
|
|
61
55
|
|
|
62
|
-
|
|
56
|
+
升级到新核心锁时,需要从实际运行时与 profile 重新生成并验证锁;旧证书不会被重新标记为新锁证据。详见[升级说明](docs/HOST_LOCK_UPGRADE.md)和[兼容性](docs/COMPATIBILITY.md)。
|
|
63
57
|
|
|
64
|
-
|
|
58
|
+
从 [npm](https://www.npmjs.com/package/dsh-completion-guard) 选择已发布版本,并用 [GitHub Release](https://github.com/GreenLv/dsh-completion-guard/releases/latest) 的提交、校验和和原生 annex 核对制品。0.4.2 的历史发布面向 rc.1 与 market 1.41;它不包含上述解耦。源码版本号、CI、同包原生验收和公开发布是不同状态,验收范围见[记录](docs/LOCAL_ACCEPTANCE.md)。
|
|
65
59
|
|
|
66
|
-
|
|
60
|
+
项目在 2026-08-29 从 `dsh-context-guard` 更名为 `dsh-completion-guard`,内部 bundle id 仍为 `context-guard`。迁移保留会话、激活方式和禁用设置;不要在同一 profile 同时加载新旧包。需要 Node.js `>=22` 和 pnpm `>=11`。
|
|
67
61
|
|
|
68
62
|
## 启用模式
|
|
69
63
|
|
|
70
64
|
Context Guard 有两种启用模式:
|
|
71
65
|
|
|
72
66
|
- `opt-in`(默认):打开会话时不会自动保护。你需要在这个会话中执行 `/context-guard on` 才会启用;执行 `/context-guard off` 可以再次关闭。开关只影响当前会话。
|
|
73
|
-
- `always`:DSH
|
|
67
|
+
- `always`:DSH 会话从第一条真实消息开始自动保护。全新会话保持完全空白——Guard 不写入任何内容——因此你仍然可以在发送任何内容之前选择 DSH 会话模式(standard、minimal 或自定义 preset)。第一条真实消息进入执行步骤的那一刻,保护在同一步骤内、且位于该消息之前开始:第一个任务连同它的第一次文件修改都在覆盖范围内。首条消息只有图片或附件时同样开始保护,并保留待解释的资产项;纯空白消息不启动任何内容。在某个会话中执行 `/context-guard off` 后,该会话关闭保护,直到再次执行 `on`。
|
|
74
68
|
|
|
75
|
-
启用模式只控制 Guard 是否保护会话,不是 DSH
|
|
69
|
+
启用模式只控制 Guard 是否保护会话,不是 DSH 的会话模式(例如会话开始时所选的标准模式、极简模式)。Guard 不再在第一条消息之前写入任何内容,因此 DSH 会话模式可以在会话尚为新会话时选择。`/context-guard on` 和 `/context-guard off` 只负责开启或关闭 Guard 保护,不会改变 DSH 会话模式。
|
|
76
70
|
|
|
77
71
|
如果希望 DSH 会话自动启用保护,请在当前 DSH 启动方式使用的 `cordis.patch.yml` 中增加:
|
|
78
72
|
|
|
@@ -102,15 +96,15 @@ DSH 有两种运行方式:**Web** 是在浏览器的网页界面里使用 DSH
|
|
|
102
96
|
|
|
103
97
|
## 如何检查完成状态
|
|
104
98
|
|
|
105
|
-
启用后,Guard
|
|
99
|
+
启用后,Guard 会保存用户直接给出的要求和验收条件。只有已保存的工具结果与指定命令、文件或其他目标一致时,才能作为证据。取得机器完成认证需要通过 Guard 检查;证据缺失、过期或对象不一致时,任务保持未认证。当前证据规则未覆盖的调查或解释仍可如实回答并结束,但不会取得完成证书。
|
|
106
100
|
|
|
107
101
|
只读证据收集与修改包、文件、服务或 Git 状态的操作使用不同工具。查询成功不会自动产生变更权限。精确命令限制和平台证据见 [`docs/COMPATIBILITY.md`](docs/COMPATIBILITY.md)。
|
|
108
102
|
|
|
109
|
-
###
|
|
103
|
+
### 要求一直未完成时
|
|
110
104
|
|
|
111
|
-
“更新插件并检查 GUI”可能包含 Guard
|
|
105
|
+
“更新插件并检查 GUI”可能包含 Guard 尚不能认证的部分;而“是否有更新”这类提问属于调查:Guard 会保留原文和来源,但如实说明无法机器认证——完成调查并如实回答即可。checkpoint 会逐项给出原因和一个具体的下一步;`context_guard_prepare`(只读)可以在执行有状态动作之前,展示受支持的命令形状、所需的 resolution/effect/state 证据顺序以及精确缺失的目标字段。
|
|
112
106
|
|
|
113
|
-
用 `context_guard_rebind` 提出完整的原文拆分方案。动作或对象不明确时,先请根用户给出包含原条款的明确澄清要求,再在提案中引用新要求的 ID。工具会返回提案 ID
|
|
107
|
+
用 `context_guard_rebind` 提出完整的原文拆分方案。动作或对象不明确时,先请根用户给出包含原条款的明确澄清要求,再在提案中引用新要求的 ID。工具会返回提案 ID 和原项/替代项对照;用户把确认行 `确认重绑定 <proposal ID>` 作为回复的第一行即可应用,空行之后的解释请求或新任务保留各自含义,新任务照常采集。嵌在句子、引号或代码块里的确认,以及后面跟反转表述的确认,都无效。把要求拆成同样不可认证的片段会得到“无认证收益”,而不是要求一次无意义的确认。未支持的部分继续保留 pending;按结构化边界安全结束也不表示全部完成。
|
|
114
108
|
|
|
115
109
|
用 `bindings: []` 调用 `context_guard_checkpoint` 可查询诊断。默认最多展示八个当前要求/限制和十条证据,插件 JSON 不超过 12 KiB。`pagination` 给出总数及各列表独立的 `next_cursor`,首页不代表完整合同。`item_ids`、`evidence_ids` 可按 ID 查询;`evidence_scope: "history"` 可查看完整证据历史,其中不可引用项会明确标记。翻页时保持查询条件不变,合同或证据快照变化后需重新查询。超长行提供 `detail_id`,用 `detail_offset` 取分片;后续分片需把首次返回的 `snapshot` 作为 `detail_snapshot` 传回。分页只改变展示,不会减少认证时检查的要求。
|
|
116
110
|
|
|
@@ -5,6 +5,8 @@ import { fileURLToPath } from 'node:url'
|
|
|
5
5
|
import { dirname, join } from 'node:path'
|
|
6
6
|
import {
|
|
7
7
|
injectActiveProfileHostLock,
|
|
8
|
+
inspectTargetHostGraph,
|
|
9
|
+
evaluateHostLock,
|
|
8
10
|
resolveActiveProfileHostLock,
|
|
9
11
|
verifyComposedHostLockDump,
|
|
10
12
|
} from '../dist/domain/index.js'
|
|
@@ -18,6 +20,7 @@ function option(name) {
|
|
|
18
20
|
function summary(evaluation) {
|
|
19
21
|
return {
|
|
20
22
|
status: evaluation.status,
|
|
23
|
+
cohort_id: evaluation.cohortId,
|
|
21
24
|
host_lock_digest: evaluation.digest,
|
|
22
25
|
goal_available: evaluation.goalAvailable,
|
|
23
26
|
platform: evaluation.platform,
|
|
@@ -30,11 +33,21 @@ function summary(evaluation) {
|
|
|
30
33
|
|
|
31
34
|
try {
|
|
32
35
|
const command = process.argv[2]
|
|
33
|
-
if (!['inspect', 'inject', 'verify-dump'].includes(command)) {
|
|
36
|
+
if (!['inspect', 'inspect-graph', 'inject', 'verify-dump'].includes(command)) {
|
|
34
37
|
throw new Error('usage: dsh-completion-guard-host-lock <inspect|inject|verify-dump> --runtime-root PATH --profile-root PATH [--dump-config FILE]')
|
|
35
38
|
}
|
|
36
39
|
const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)))
|
|
37
40
|
const packageManifest = JSON.parse(readFileSync(join(packageRoot, 'package.json'), 'utf8'))
|
|
41
|
+
if (command === 'inspect-graph') {
|
|
42
|
+
const target = inspectTargetHostGraph(option('--runtime-root'), option('--profile-root'))
|
|
43
|
+
const rows = target.packages
|
|
44
|
+
const evaluation = evaluateHostLock(rows, {
|
|
45
|
+
platform: process.platform === 'win32' ? 'windows' : 'posix',
|
|
46
|
+
...(target.profileGraph.state === 'dependency_free_headless' ? { profileKind: 'headless' } : {}),
|
|
47
|
+
})
|
|
48
|
+
process.stdout.write(`${JSON.stringify({ ...summary(evaluation), inspection_scope: 'pre_install_target', profile_graph: target.profileGraph, packages: rows })}\n`)
|
|
49
|
+
process.exit(evaluation.status === 'supported' ? 0 : 1)
|
|
50
|
+
}
|
|
38
51
|
const active = resolveActiveProfileHostLock(
|
|
39
52
|
option('--runtime-root'),
|
|
40
53
|
option('--profile-root'),
|
|
@@ -42,7 +55,7 @@ try {
|
|
|
42
55
|
)
|
|
43
56
|
if (command === 'inject') injectActiveProfileHostLock(active)
|
|
44
57
|
if (command === 'verify-dump') {
|
|
45
|
-
verifyComposedHostLockDump(readFileSync(option('--dump-config'), 'utf8'), active.evaluation)
|
|
58
|
+
verifyComposedHostLockDump(readFileSync(option('--dump-config') === '-' ? 0 : option('--dump-config'), 'utf8'), active.evaluation, active)
|
|
46
59
|
}
|
|
47
60
|
process.stdout.write(`${JSON.stringify(summary(active.evaluation))}\n`)
|
|
48
61
|
} catch (error) {
|
package/dist/domain/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
export { ACTION_MANIFEST, ACTION_MANIFEST_VERSION, ALPHA2_DSHMARKET_139_HOST_PACKAGES, ALPHA2_HOST_PACKAGES, ALPHA3_HOST_PACKAGES, ActionManifest, ActionSpec, ActiveProfileHostLock, AssistantOutcomeObservation, AuditedExecutable, AuthorityBlock, AuthorityBlockKind, AuthorityKind, BASE_HOST_PACKAGES, BoundaryDisposition, BoundaryEffectuation, BoundaryQualification, BoundaryQualificationKind, BoundaryRequest, CAPTURE_V042_NOTICE, CERTIFICATE_VERSION, COMMAND_SURFACE_MANIFEST, CanonicalArgv, CanonicalCommandSurface, CaptureScope, CheckpointResult, ClassifiedClause, ClauseSegment, CommandSurfaceManifest, CompletionDisposition, DEFAULT_HOST_LOCK, DEFAULT_RECOVERY_CHAR_BUDGET, DeferAuthorization, DeriveConfig, DeriveResult, DeriveScope, DerivedEnvelope, EXPECTED_HOST_PACKAGES, EvidenceBinding, EvidenceFacetCoverage, EvidenceOutcome, EvidenceParseStatus, EvidenceRole, ExecutableIdentity, ExecutableIdentityBinding, ExpectedTransition, ExternalOperation, GIT_COMMAND_MANIFEST_IDS, GOAL_HOST_PACKAGES, GitAdapterAction, GitCommandAccepted, GitCommandManifest, GitCommandParseResult, GitCommandRejected, GitEffectExecution, GitEffectRunner, GitPrestateCheck, GitPrestateEnvelope, GitTargetIdentity, GoalActivationState, GoalBoundaryAccess, GoalRef, GuardBoundary, GuardCheckpoint, GuardEvidence, GuardIntegrity, GuardItem, GuardItemKind, GuardItemStatus, GuardOperation, GuardProjection, HOST_CAPABILITY_PACKAGE_GROUPS, HOST_COHORTS, HostCapabilityEvaluation, HostCapabilityId, HostCapabilityRequest, HostCohort, HostCohortSelection, HostCohortSelectionReason, HostLockContext, HostLockEvaluation, HostLockStatus, HostPlatform, HostProfileError, HostProfileKind, HostStatus, HostToolSurface, LinearCommitReadback, MIN_RECOVERY_CHAR_BUDGET, ManifestIssue, OperationVerbEntry, PROOF_KINDS, PROOF_PROTOCOL_VERSION, PROTOCOL_V3_NOTICE, ParsedShell, PersistenceAuthorization, ProofKind, ProofManifest, ProofObligation, ProofSurface, RC1_HOST_PACKAGES, RecoveryOptions, RejectedBinding, SEMANTIC_ACTIONS, STATEFUL_ACTIONS, STOP_PROTOCOL_VERSION, SUPPORTED_EVIDENCE_ADAPTERS, SemanticAction, SessionQuery, ShellParseStatus, StatefulAction, TargetCaptureReasonCode, TargetCaptureStatus, TargetTuple, TargetValue, ToolCallInput, ToolResultInput, ToolSubject, TurnStoppingDecision, UserInteractionKind, VerificationContract, WaitAuthorization, actionCompatible, authorityCaptureCounts, availableBoundaryQualifications, bindExecutableIdentity, bindLiveGoalCapability, bindProofToProjection, bindingSatisfies, canonicalArgvFromCommand, canonicalProjection, canonicalizePath, captureClause, captureItem, certifyCheckpoint, classifyClause, classifyCompletionClaim, classifyUserInteraction, closingHint, commitIndexSnapshotDigest, commitTreeSnapshotDigest, createGitPrestateEnvelope, createProjection, createProofManifest, currentContractDigest, decideTurnBoundary, decideTurnStopping, deriveProjection, digestStrings, effectuateBoundary, evaluateExternalWaitCapability, evaluateHostCapability, evaluateHostLock, evaluateToolSurfaceCapability, evidenceCoverage, evidenceFromPersistedToolResult, evidenceMatchesItem, executeRevalidatedGitEffect, extractArtifactPaths, extractMethod, extractOperation, extractTextContent, extractToolSubject, gitCommandMatchesTarget, goalCompletionDenial, hasCurrentCertificate, hostLockContextFromComposedDump, hostLockRowsFromComposedDump, injectActiveProfileHostLock, isCurrentAcceptedBoundary, isDeterministicCheck, isInformationalMessage, isRunExecutable, isStatefulAction, isVerifyingCapability, isWholeTaskCompletionClaim, latestAssistantText, normalizeClause, observeAssistantOutcome, openItems, packageRowsFromActiveGraph, packageRowsFromPnpmLock, parseGitCommandManifest, parsePwshCommand, parseShellCommand, proofDigest, proofEvidenceConstraints, qualifyBoundary, recoveryDigest, renderRecoveryPacket, requestedTargetAuthorizesMutation, requestedTargetMatchesResolved, resolveActiveProfileHostLock, resolveInstalledHostLock, revalidateGitPrestate, sanitizeClauseText, sanitizeUrl, segmentAuthorityBlocks, segmentClauses, selectHostCohort, semanticActionFromCommand, semanticActionFromText, sessionQuery, sha256, snapshotSessionEvents, supersedeItem, validateActionManifest, validateActionTarget, validateManifest, validateProofManifest, verifiedLinearCommitReadback, verifyComposedHostLockDump, withDurability };
|
|
1
|
+
import { $ as ActiveProfileHostLock, $n as isFrozenV042RebindResponse, $r as VerificationContract, $t as Repairability, A as createProofManifest, Ai as semanticActionFromText, An as HostPlatform, Ar as DerivedEnvelope, At as parseGitCommandManifest, B as COMMAND_SURFACE_MANIFEST, Bn as selectHostCohort, Br as GuardEvidence, Bt as parseShellCommand, C as ProofKind, Ci as SemanticAction, Cn as HostCapabilityRequest, Cr as qualifyBoundary, Ct as GitTargetIdentity, D as SessionQuery, Di as requestedTargetAuthorizesMutation, Dn as HostLockContext, Dr as DeriveConfig, Dt as createGitPrestateEnvelope, E as ProofSurface, Ei as isStatefulAction, En as HostCohortSelectionReason, Er as DeferAuthorization, Et as commitTreeSnapshotDigest, F as EvidenceFacetCoverage, Fi as normalizeClause, Fn as bindLiveGoalCapability, Fr as ExpectedTransition, Ft as ParsedShell, G as ClaimedMessage, Gn as authorityCaptureCounts, Gr as GuardOperation, Gt as ToolSubject, H as ManifestIssue, Hn as AuthorityBlock, Hr as GuardItem, Ht as hasCurrentCertificate, I as bindingSatisfies, Ii as sanitizeClauseText, In as evaluateExternalWaitCapability, Ir as ExternalOperation, It as ShellParseStatus, J as FirstStepPreviewInput, Jn as UserInteractionKind, Jr as PersistenceAuthorization, Jt as extractToolSubject, K as FIRST_STEP_GUIDANCE, Kn as segmentAuthorityBlocks, Kr as GuardProjection, Kt as evidenceFromPersistedToolResult, L as evidenceCoverage, Li as sanitizeUrl, Ln as evaluateHostCapability, Lr as GoalRef, Lt as canonicalArgvFromCommand, M as proofEvidenceConstraints, Mi as validateActionTarget, Mn as HostToolSurface, Mr as EvidenceOutcome, Mt as verifiedLinearCommitReadback, N as sessionQuery, Ni as canonicalizePath, Nn as LEGACY_HOST_COHORTS, Nr as EvidenceParseStatus, Nt as CanonicalArgv, O as bindProofToProjection, Oi as requestedTargetMatchesResolved, On as HostLockEvaluation, Or as DeriveResult, Ot as executeRevalidatedGitEffect, P as validateProofManifest, Pi as digestStrings, Pn as bindExecutableIdentity, Pr as EvidenceRole, Pt as CanonicalCommandSurface, Q as previewFirstStepInjection, Qn as ParsedConfirmation, Qr as TargetValue, Qt as DiagnosisNextAction, R as evidenceMatchesItem, Ri as sha256, Rn as evaluateHostLock, Rr as GuardBoundary, Rt as isRunExecutable, S as PROOF_PROTOCOL_VERSION, Si as SUPPORTED_EVIDENCE_ADAPTERS, Sn as HostCapabilityId, Sr as isCurrentAcceptedBoundary, St as GitPrestateEnvelope, T as ProofObligation, Ti as actionCompatible, Tn as HostCohortSelection, Tr as BoundaryQualificationKind, Tt as commitIndexSnapshotDigest, U as OperationVerbEntry, Un as AuthorityBlockKind, Ur as GuardItemKind, Ut as ToolCallInput, V as CommandSurfaceManifest, Vn as currentContractDigest, Vr as GuardIntegrity, Vt as goalCompletionDenial, W as validateManifest, Wn as AuthorityKind, Wr as GuardItemStatus, Wt as ToolResultInput, X as claimedBatchHasRealRootInput, Xn as classifyUserInteraction, Xr as TargetCaptureStatus, Xt as withDurability, Y as LifecyclePhase, Yn as classifyTaskIntent, Yr as TargetCaptureReasonCode, Yt as isDeterministicCheck, Z as lifecyclePhase, Zn as CONFIRM_LINE_PATTERN, Zr as TargetTuple, Zt as CertificationSupport, _ as openItems, _i as ActionSpec, _n as ExecutableIdentityBinding, _r as BoundaryRequest, _t as GitCommandParseResult, a as classifyCompletionClaim, ai as RebindArgs, an as relevantEvidence, ar as ClassifiedClause, at as inspectTargetHostGraph, b as ALPHA3_HOST_PACKAGES, bi as STATEFUL_ACTIONS, bn as HOST_COHORTS, br as availableBoundaryQualifications, bt as GitEffectRunner, c as isWholeTaskCompletionClaim, ci as proposeRebind, cn as PROTOCOL_V4_NOTICE, cr as captureItem, ct as readActiveHostGraph, d as snapshotSessionEvents, di as rebindAttemptKey, dn as ALPHA2_HOST_PACKAGES, dr as extractMethod, dt as verifyComposedHostLockDump, ei as WaitAuthorization, en as TaskKind, er as parseConfirmationMessage, et as HostProfileError, f as RC1_HOST_PACKAGES, fi as rebindResponse, fn as AuditedExecutable, fr as extractOperation, ft as GIT_COMMAND_MANIFEST_IDS, g as closingHint, gi as ActionManifest, gn as ExecutableIdentity, gr as BoundaryQualification, gt as GitCommandManifest, h as RecoveryOptions, hi as ACTION_MANIFEST_VERSION, hn as EXPECTED_HOST_PACKAGES, hr as BoundaryEffectuation, ht as GitCommandAccepted, i as TurnStoppingDecision, ii as ProposeOutcome, in as itemDiagnosis, ir as CaptureScope, it as injectActiveProfileHostLock, j as proofDigest, ji as validateActionManifest, jn as HostProfileKind, jr as EvidenceBinding, jt as revalidateGitPrestate, k as canonicalProjection, ki as semanticActionFromCommand, kn as HostLockStatus, kr as DeriveScope, kt as gitCommandMatchesTarget, l as latestAssistantText, li as proposeRebindOutcome, ln as deriveProjection, lr as classifyClause, lt as resolveActiveProfileHostLock, m as MIN_RECOVERY_CHAR_BUDGET, mi as ACTION_MANIFEST, mn as DEFAULT_HOST_LOCK, mr as segmentClauses, mt as GitAdapterAction, n as AssistantOutcomeObservation, nn as deriveItemDiagnosis, nr as RejectedBinding, nt as hostLockContextFromComposedDump, o as decideTurnBoundary, oi as RebindProposal, on as CAPTURE_V042_NOTICE, or as ClauseSegment, ot as packageRowsFromActiveGraph, p as DEFAULT_RECOVERY_CHAR_BUDGET, pi as replayRebindResult, pn as BASE_HOST_PACKAGES, pr as isInformationalMessage, pt as GIT_COMMAND_TEMPLATES, q as FirstStepInjection, qn as TaskIntent, qr as HostStatus, qt as extractTextContent, r as CompletionDisposition, ri as BoundedSource, rn as evidenceAvailabilityReason, rr as certifyCheckpoint, rt as hostLockRowsFromComposedDump, s as decideTurnStopping, si as confirmRebind, sn as PROTOCOL_V3_NOTICE, sr as captureClause, st as packageRowsFromPnpmLock, t as supersedeItem, ti as createProjection, tn as UnifiedItemDiagnosis, tr as CheckpointResult, tt as TargetHostGraph, u as observeAssistantOutcome, ui as proposeRebindV042, un as ALPHA2_DSHMARKET_139_HOST_PACKAGES, ur as extractArtifactPaths, ut as resolveInstalledHostLock, v as recoveryDigest, vi as CERTIFICATE_VERSION, vn as GOAL_HOST_PACKAGES, vr as GoalActivationState, vt as GitCommandRejected, w as ProofManifest, wi as StatefulAction, wn as HostCohort, wr as BoundaryDisposition, wt as LinearCommitReadback, x as PROOF_KINDS, xi as STOP_PROTOCOL_VERSION, xn as HostCapabilityEvaluation, xr as effectuateBoundary, xt as GitPrestateCheck, y as renderRecoveryPacket, yi as SEMANTIC_ACTIONS, yn as HOST_CAPABILITY_PACKAGE_GROUPS, yr as GoalBoundaryAccess, yt as GitEffectExecution, z as isVerifyingCapability, zn as evaluateToolSurfaceCapability, zr as GuardCheckpoint, zt as parsePwshCommand } from "../index-Cd3wXBLi.js";
|
|
2
|
+
export { ACTION_MANIFEST, ACTION_MANIFEST_VERSION, ALPHA2_DSHMARKET_139_HOST_PACKAGES, ALPHA2_HOST_PACKAGES, ALPHA3_HOST_PACKAGES, ActionManifest, ActionSpec, ActiveProfileHostLock, AssistantOutcomeObservation, AuditedExecutable, AuthorityBlock, AuthorityBlockKind, AuthorityKind, BASE_HOST_PACKAGES, BoundaryDisposition, BoundaryEffectuation, BoundaryQualification, BoundaryQualificationKind, BoundaryRequest, BoundedSource, CAPTURE_V042_NOTICE, CERTIFICATE_VERSION, COMMAND_SURFACE_MANIFEST, CONFIRM_LINE_PATTERN, CanonicalArgv, CanonicalCommandSurface, CaptureScope, CertificationSupport, CheckpointResult, ClaimedMessage, ClassifiedClause, ClauseSegment, CommandSurfaceManifest, CompletionDisposition, DEFAULT_HOST_LOCK, DEFAULT_RECOVERY_CHAR_BUDGET, DeferAuthorization, DeriveConfig, DeriveResult, DeriveScope, DerivedEnvelope, DiagnosisNextAction, EXPECTED_HOST_PACKAGES, EvidenceBinding, EvidenceFacetCoverage, EvidenceOutcome, EvidenceParseStatus, EvidenceRole, ExecutableIdentity, ExecutableIdentityBinding, ExpectedTransition, ExternalOperation, FIRST_STEP_GUIDANCE, FirstStepInjection, FirstStepPreviewInput, GIT_COMMAND_MANIFEST_IDS, GIT_COMMAND_TEMPLATES, GOAL_HOST_PACKAGES, GitAdapterAction, GitCommandAccepted, GitCommandManifest, GitCommandParseResult, GitCommandRejected, GitEffectExecution, GitEffectRunner, GitPrestateCheck, GitPrestateEnvelope, GitTargetIdentity, GoalActivationState, GoalBoundaryAccess, GoalRef, GuardBoundary, GuardCheckpoint, GuardEvidence, GuardIntegrity, GuardItem, GuardItemKind, GuardItemStatus, GuardOperation, GuardProjection, HOST_CAPABILITY_PACKAGE_GROUPS, HOST_COHORTS, HostCapabilityEvaluation, HostCapabilityId, HostCapabilityRequest, HostCohort, HostCohortSelection, HostCohortSelectionReason, HostLockContext, HostLockEvaluation, HostLockStatus, HostPlatform, HostProfileError, HostProfileKind, HostStatus, HostToolSurface, LEGACY_HOST_COHORTS, LifecyclePhase, LinearCommitReadback, MIN_RECOVERY_CHAR_BUDGET, ManifestIssue, OperationVerbEntry, PROOF_KINDS, PROOF_PROTOCOL_VERSION, PROTOCOL_V3_NOTICE, PROTOCOL_V4_NOTICE, ParsedConfirmation, ParsedShell, PersistenceAuthorization, ProofKind, ProofManifest, ProofObligation, ProofSurface, ProposeOutcome, RC1_HOST_PACKAGES, RebindArgs, RebindProposal, RecoveryOptions, RejectedBinding, Repairability, SEMANTIC_ACTIONS, STATEFUL_ACTIONS, STOP_PROTOCOL_VERSION, SUPPORTED_EVIDENCE_ADAPTERS, SemanticAction, SessionQuery, ShellParseStatus, StatefulAction, TargetCaptureReasonCode, TargetCaptureStatus, TargetHostGraph, TargetTuple, TargetValue, TaskIntent, TaskKind, ToolCallInput, ToolResultInput, ToolSubject, TurnStoppingDecision, UnifiedItemDiagnosis, UserInteractionKind, VerificationContract, WaitAuthorization, actionCompatible, authorityCaptureCounts, availableBoundaryQualifications, bindExecutableIdentity, bindLiveGoalCapability, bindProofToProjection, bindingSatisfies, canonicalArgvFromCommand, canonicalProjection, canonicalizePath, captureClause, captureItem, certifyCheckpoint, claimedBatchHasRealRootInput, classifyClause, classifyCompletionClaim, classifyTaskIntent, classifyUserInteraction, closingHint, commitIndexSnapshotDigest, commitTreeSnapshotDigest, confirmRebind, createGitPrestateEnvelope, createProjection, createProofManifest, currentContractDigest, decideTurnBoundary, decideTurnStopping, deriveItemDiagnosis, deriveProjection, digestStrings, effectuateBoundary, evaluateExternalWaitCapability, evaluateHostCapability, evaluateHostLock, evaluateToolSurfaceCapability, evidenceAvailabilityReason, evidenceCoverage, evidenceFromPersistedToolResult, evidenceMatchesItem, executeRevalidatedGitEffect, extractArtifactPaths, extractMethod, extractOperation, extractTextContent, extractToolSubject, gitCommandMatchesTarget, goalCompletionDenial, hasCurrentCertificate, hostLockContextFromComposedDump, hostLockRowsFromComposedDump, injectActiveProfileHostLock, inspectTargetHostGraph, isCurrentAcceptedBoundary, isDeterministicCheck, isFrozenV042RebindResponse, isInformationalMessage, isRunExecutable, isStatefulAction, isVerifyingCapability, isWholeTaskCompletionClaim, itemDiagnosis, latestAssistantText, lifecyclePhase, normalizeClause, observeAssistantOutcome, openItems, packageRowsFromActiveGraph, packageRowsFromPnpmLock, parseConfirmationMessage, parseGitCommandManifest, parsePwshCommand, parseShellCommand, previewFirstStepInjection, proofDigest, proofEvidenceConstraints, proposeRebind, proposeRebindOutcome, proposeRebindV042, qualifyBoundary, readActiveHostGraph, rebindAttemptKey, rebindResponse, recoveryDigest, relevantEvidence, renderRecoveryPacket, replayRebindResult, requestedTargetAuthorizesMutation, requestedTargetMatchesResolved, resolveActiveProfileHostLock, resolveInstalledHostLock, revalidateGitPrestate, sanitizeClauseText, sanitizeUrl, segmentAuthorityBlocks, segmentClauses, selectHostCohort, semanticActionFromCommand, semanticActionFromText, sessionQuery, sha256, snapshotSessionEvents, supersedeItem, validateActionManifest, validateActionTarget, validateManifest, validateProofManifest, verifiedLinearCommitReadback, verifyComposedHostLockDump, withDurability };
|
package/dist/domain/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as isRunExecutable, $t as itemDiagnosis, A as revalidateGitPrestate, An as canonicalizePath, At as MIN_RECOVERY_CHAR_BUDGET, B as lifecyclePhase, Bt as createProjection, C as GIT_COMMAND_TEMPLATES, Cn as semanticActionFromText, Ct as segmentAuthorityBlocks, D as executeRevalidatedGitEffect, Dn as validateManifest, Dt as qualifyBoundary, E as createGitPrestateEnvelope, En as COMMAND_SURFACE_MANIFEST, Et as isCurrentAcceptedBoundary, F as isWholeTaskCompletionClaim, Fn as sha256, Ft as bindingSatisfies, G as deriveProjection, Gt as rebindAttemptKey, H as CAPTURE_V042_NOTICE, Ht as proposeRebind, I as latestAssistantText, It as evidenceCoverage, J as extractTextContent, Jt as CONFIRM_LINE_PATTERN, K as supersedeItem, Kt as rebindResponse, L as observeAssistantOutcome, Lt as evidenceMatchesItem, M as classifyCompletionClaim, Mn as normalizeClause, Mt as openItems, N as decideTurnBoundary, Nn as sanitizeClauseText, Nt as recoveryDigest, O as gitCommandMatchesTarget, On as classifyTaskIntent, Ot as certifyCheckpoint, P as decideTurnStopping, Pn as sanitizeUrl, Pt as renderRecoveryPacket, Q as canonicalArgvFromCommand, Qt as evidenceAvailabilityReason, R as FIRST_STEP_GUIDANCE, Rt as isVerifyingCapability, S as GIT_COMMAND_MANIFEST_IDS, Sn as semanticActionFromCommand, St as authorityCaptureCounts, T as commitTreeSnapshotDigest, Tn as validateActionTarget, Tt as effectuateBoundary, U as PROTOCOL_V3_NOTICE, Ut as proposeRebindOutcome, V as previewFirstStepInjection, Vt as confirmRebind, W as PROTOCOL_V4_NOTICE, Wt as proposeRebindV042, X as isDeterministicCheck, Xt as parseConfirmationMessage, Y as extractToolSubject, Yt as isFrozenV042RebindResponse, Z as withDurability, Zt as deriveItemDiagnosis, _ as readActiveHostGraph, _n as SUPPORTED_EVIDENCE_ADAPTERS, _t as evaluateHostLock, a as createProofManifest, an as extractMethod, at as ALPHA2_HOST_PACKAGES, b as verifyComposedHostLockDump, bn as requestedTargetAuthorizesMutation, bt as RC1_HOST_PACKAGES, c as sessionQuery, cn as segmentClauses, ct as EXPECTED_HOST_PACKAGES, d as hostLockContextFromComposedDump, dn as ACTION_MANIFEST, dt as HOST_COHORTS, en as relevantEvidence, et as parsePwshCommand, f as hostLockRowsFromComposedDump, fn as ACTION_MANIFEST_VERSION, ft as LEGACY_HOST_COHORTS, g as packageRowsFromPnpmLock, gn as STOP_PROTOCOL_VERSION, gt as evaluateHostCapability, h as packageRowsFromActiveGraph, hn as STATEFUL_ACTIONS, ht as evaluateExternalWaitCapability, i as canonicalProjection, in as extractArtifactPaths, it as ALPHA2_DSHMARKET_139_HOST_PACKAGES, j as verifiedLinearCommitReadback, jn as digestStrings, jt as closingHint, k as parseGitCommandManifest, kn as classifyUserInteraction, kt as DEFAULT_RECOVERY_CHAR_BUDGET, l as validateProofManifest, lt as GOAL_HOST_PACKAGES, m as inspectTargetHostGraph, mn as SEMANTIC_ACTIONS, mt as bindLiveGoalCapability, n as PROOF_PROTOCOL_VERSION, nn as captureItem, nt as goalCompletionDenial, o as proofDigest, on as extractOperation, ot as BASE_HOST_PACKAGES, p as injectActiveProfileHostLock, pn as CERTIFICATE_VERSION, pt as bindExecutableIdentity, q as evidenceFromPersistedToolResult, qt as replayRebindResult, r as bindProofToProjection, rn as classifyClause, rt as hasCurrentCertificate, s as proofEvidenceConstraints, sn as isInformationalMessage, st as DEFAULT_HOST_LOCK, t as PROOF_KINDS, tn as captureClause, tt as parseShellCommand, u as HostProfileError, ut as HOST_CAPABILITY_PACKAGE_GROUPS, v as resolveActiveProfileHostLock, vn as actionCompatible, vt as evaluateToolSurfaceCapability, w as commitIndexSnapshotDigest, wn as validateActionManifest, wt as availableBoundaryQualifications, x as snapshotSessionEvents, xn as requestedTargetMatchesResolved, xt as ALPHA3_HOST_PACKAGES, y as resolveInstalledHostLock, yn as isStatefulAction, yt as selectHostCohort, z as claimedBatchHasRealRootInput, zt as currentContractDigest } from "../domain-Cx8vpxSj.js";
|
|
2
2
|
|
|
3
|
-
export { ACTION_MANIFEST, ACTION_MANIFEST_VERSION, ALPHA2_DSHMARKET_139_HOST_PACKAGES, ALPHA2_HOST_PACKAGES, ALPHA3_HOST_PACKAGES, BASE_HOST_PACKAGES, CAPTURE_V042_NOTICE, CERTIFICATE_VERSION, COMMAND_SURFACE_MANIFEST, DEFAULT_HOST_LOCK, DEFAULT_RECOVERY_CHAR_BUDGET, EXPECTED_HOST_PACKAGES, GIT_COMMAND_MANIFEST_IDS, GOAL_HOST_PACKAGES, HOST_CAPABILITY_PACKAGE_GROUPS, HOST_COHORTS, HostProfileError, MIN_RECOVERY_CHAR_BUDGET, PROOF_KINDS, PROOF_PROTOCOL_VERSION, PROTOCOL_V3_NOTICE, RC1_HOST_PACKAGES, SEMANTIC_ACTIONS, STATEFUL_ACTIONS, STOP_PROTOCOL_VERSION, SUPPORTED_EVIDENCE_ADAPTERS, actionCompatible, authorityCaptureCounts, availableBoundaryQualifications, bindExecutableIdentity, bindLiveGoalCapability, bindProofToProjection, bindingSatisfies, canonicalArgvFromCommand, canonicalProjection, canonicalizePath, captureClause, captureItem, certifyCheckpoint, classifyClause, classifyCompletionClaim, classifyUserInteraction, closingHint, commitIndexSnapshotDigest, commitTreeSnapshotDigest, createGitPrestateEnvelope, createProjection, createProofManifest, currentContractDigest, decideTurnBoundary, decideTurnStopping, deriveProjection, digestStrings, effectuateBoundary, evaluateExternalWaitCapability, evaluateHostCapability, evaluateHostLock, evaluateToolSurfaceCapability, evidenceCoverage, evidenceFromPersistedToolResult, evidenceMatchesItem, executeRevalidatedGitEffect, extractArtifactPaths, extractMethod, extractOperation, extractTextContent, extractToolSubject, gitCommandMatchesTarget, goalCompletionDenial, hasCurrentCertificate, hostLockContextFromComposedDump, hostLockRowsFromComposedDump, injectActiveProfileHostLock, isCurrentAcceptedBoundary, isDeterministicCheck, isInformationalMessage, isRunExecutable, isStatefulAction, isVerifyingCapability, isWholeTaskCompletionClaim, latestAssistantText, normalizeClause, observeAssistantOutcome, openItems, packageRowsFromActiveGraph, packageRowsFromPnpmLock, parseGitCommandManifest, parsePwshCommand, parseShellCommand, proofDigest, proofEvidenceConstraints, qualifyBoundary, recoveryDigest, renderRecoveryPacket, requestedTargetAuthorizesMutation, requestedTargetMatchesResolved, resolveActiveProfileHostLock, resolveInstalledHostLock, revalidateGitPrestate, sanitizeClauseText, sanitizeUrl, segmentAuthorityBlocks, segmentClauses, selectHostCohort, semanticActionFromCommand, semanticActionFromText, sessionQuery, sha256, snapshotSessionEvents, supersedeItem, validateActionManifest, validateActionTarget, validateManifest, validateProofManifest, verifiedLinearCommitReadback, verifyComposedHostLockDump, withDurability };
|
|
3
|
+
export { ACTION_MANIFEST, ACTION_MANIFEST_VERSION, ALPHA2_DSHMARKET_139_HOST_PACKAGES, ALPHA2_HOST_PACKAGES, ALPHA3_HOST_PACKAGES, BASE_HOST_PACKAGES, CAPTURE_V042_NOTICE, CERTIFICATE_VERSION, COMMAND_SURFACE_MANIFEST, CONFIRM_LINE_PATTERN, DEFAULT_HOST_LOCK, DEFAULT_RECOVERY_CHAR_BUDGET, EXPECTED_HOST_PACKAGES, FIRST_STEP_GUIDANCE, GIT_COMMAND_MANIFEST_IDS, GIT_COMMAND_TEMPLATES, GOAL_HOST_PACKAGES, HOST_CAPABILITY_PACKAGE_GROUPS, HOST_COHORTS, HostProfileError, LEGACY_HOST_COHORTS, MIN_RECOVERY_CHAR_BUDGET, PROOF_KINDS, PROOF_PROTOCOL_VERSION, PROTOCOL_V3_NOTICE, PROTOCOL_V4_NOTICE, RC1_HOST_PACKAGES, SEMANTIC_ACTIONS, STATEFUL_ACTIONS, STOP_PROTOCOL_VERSION, SUPPORTED_EVIDENCE_ADAPTERS, actionCompatible, authorityCaptureCounts, availableBoundaryQualifications, bindExecutableIdentity, bindLiveGoalCapability, bindProofToProjection, bindingSatisfies, canonicalArgvFromCommand, canonicalProjection, canonicalizePath, captureClause, captureItem, certifyCheckpoint, claimedBatchHasRealRootInput, classifyClause, classifyCompletionClaim, classifyTaskIntent, classifyUserInteraction, closingHint, commitIndexSnapshotDigest, commitTreeSnapshotDigest, confirmRebind, createGitPrestateEnvelope, createProjection, createProofManifest, currentContractDigest, decideTurnBoundary, decideTurnStopping, deriveItemDiagnosis, deriveProjection, digestStrings, effectuateBoundary, evaluateExternalWaitCapability, evaluateHostCapability, evaluateHostLock, evaluateToolSurfaceCapability, evidenceAvailabilityReason, evidenceCoverage, evidenceFromPersistedToolResult, evidenceMatchesItem, executeRevalidatedGitEffect, extractArtifactPaths, extractMethod, extractOperation, extractTextContent, extractToolSubject, gitCommandMatchesTarget, goalCompletionDenial, hasCurrentCertificate, hostLockContextFromComposedDump, hostLockRowsFromComposedDump, injectActiveProfileHostLock, inspectTargetHostGraph, isCurrentAcceptedBoundary, isDeterministicCheck, isFrozenV042RebindResponse, isInformationalMessage, isRunExecutable, isStatefulAction, isVerifyingCapability, isWholeTaskCompletionClaim, itemDiagnosis, latestAssistantText, lifecyclePhase, normalizeClause, observeAssistantOutcome, openItems, packageRowsFromActiveGraph, packageRowsFromPnpmLock, parseConfirmationMessage, parseGitCommandManifest, parsePwshCommand, parseShellCommand, previewFirstStepInjection, proofDigest, proofEvidenceConstraints, proposeRebind, proposeRebindOutcome, proposeRebindV042, qualifyBoundary, readActiveHostGraph, rebindAttemptKey, rebindResponse, recoveryDigest, relevantEvidence, renderRecoveryPacket, replayRebindResult, requestedTargetAuthorizesMutation, requestedTargetMatchesResolved, resolveActiveProfileHostLock, resolveInstalledHostLock, revalidateGitPrestate, sanitizeClauseText, sanitizeUrl, segmentAuthorityBlocks, segmentClauses, selectHostCohort, semanticActionFromCommand, semanticActionFromText, sessionQuery, sha256, snapshotSessionEvents, supersedeItem, validateActionManifest, validateActionTarget, validateManifest, validateProofManifest, verifiedLinearCommitReadback, verifyComposedHostLockDump, withDurability };
|