dsh-completion-guard 0.2.1 → 0.3.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.
@@ -0,0 +1,217 @@
1
+ {
2
+ "ledgerVersion": "1",
3
+ "description": "Delta ledger tracking how dsh-completion-guard adapts codex-context-guard protocol capabilities. Each entry separates the source fact from plan status, implementation status, deterministic tests, native platform acceptance, and release readback. A disposition of adapted/adopted with implementationStatus not-implemented is a planned alignment, not a shipped one.",
4
+ "snapshotBoundary": "Pre-release planning snapshot retained for historical traceability. Candidate labels and empty release readbacks describe the planning state when each row was recorded, not the current package status. Use CHANGELOG.md and docs/LOCAL_ACCEPTANCE.md for v0.3.0 release and validation state.",
5
+ "source": {
6
+ "product": "codex-context-guard",
7
+ "version": "v0.9.4",
8
+ "head": "0921dcd",
9
+ "stopProtocol": "2.0.0",
10
+ "proofProtocol": "1.0.0",
11
+ "executionProtocol": "1.0.0",
12
+ "stateSchema": 7
13
+ },
14
+ "target": {
15
+ "product": "dsh-completion-guard",
16
+ "codeBaseline": "v0.3.0 local candidate over prerequisite 55f694d2534147b7fb2aac1d5b795ae5b7ead50f",
17
+ "sourceHead": "uncommitted-local-candidate",
18
+ "host": "dsh 0.1.1-rc.2 / cordis 4.0.1",
19
+ "nextRelease": "v0.3.0"
20
+ },
21
+ "dispositions": [
22
+ "adopted",
23
+ "adapted",
24
+ "already-equivalent",
25
+ "not-applicable",
26
+ "deferred",
27
+ "rejected"
28
+ ],
29
+ "entries": [
30
+ {
31
+ "capability": "stop-protocol-2",
32
+ "sourceFact": "Stop protocol 2.0.0 (published v0.9.4): only an authenticated, current-turn, full-coverage checkpoint can mark a task complete; assistant completion prose is diagnostic and never a control source.",
33
+ "disposition": "adapted",
34
+ "targetRelease": "dsh-completion-guard v0.3.0",
35
+ "rationale": "DSH keeps its native Goal Round Driver scheduling; the stop decision table is rebuilt so prose classification only produces diagnostics and uncontrolled turns safe-yield with pending items preserved.",
36
+ "planStatus": "planned in DSH v0.3.0 stop policy split (observeAssistantOutcome / decideTurnBoundary)",
37
+ "implementationStatus": "local-candidate-implemented",
38
+ "tests": [
39
+ "tests/domain/v030-stop-boundary.test.ts",
40
+ "tests/domain/portable-semantics.test.ts (all 37 mirrored cases)"
41
+ ],
42
+ "plannedTests": [
43
+ "stop-prose-is-diagnostic",
44
+ "no-control-safe-yield",
45
+ "stop-metamorphic-equivalence",
46
+ "active-armed-goal-round-driver-only"
47
+ ],
48
+ "nativeAcceptance": "none",
49
+ "releaseReadback": "none"
50
+ },
51
+ {
52
+ "capability": "proof-protocol-1",
53
+ "sourceFact": "Proof protocol 1.0.0 (published v0.9.4): deterministic proof contracts bind obligations to evidence with hash-bound manifests.",
54
+ "disposition": "adapted",
55
+ "targetRelease": "dsh-completion-guard v0.3.0 (minimal state verification) and v0.4.0 (full proof manifest)",
56
+ "rationale": "v0.3 introduces effect plus independent state readback for the stateful action set with semantic action and target binding; the full versioned proof manifest (subject readback, scope coverage) follows in v0.4.",
57
+ "planStatus": "planned; minimal state_verification set is a v0.3.0 release gate",
58
+ "implementationStatus": "v0.3-minimal-state-verification-local-candidate-implemented",
59
+ "tests": [
60
+ "tests/domain/v030-certificate.test.ts (all ten STATEFUL_ACTIONS, role closure, cross-pairing, predicate mismatch)"
61
+ ],
62
+ "plannedTests": [
63
+ "stateful-actions-require-independent-readback",
64
+ "effect-only-certification-rejected",
65
+ "binding-state-closure-role-matrix"
66
+ ],
67
+ "nativeAcceptance": "none",
68
+ "releaseReadback": "none"
69
+ },
70
+ {
71
+ "capability": "certificate-manifest-digest-v3",
72
+ "sourceFact": "Digest v3 canonical manifests (this repository, introduced with the semantic compatibility assets): session/host/evidence/binding/certification digests with golden vectors and a cross-language gate.",
73
+ "disposition": "adopted",
74
+ "targetRelease": "dsh-completion-guard v0.3.0",
75
+ "rationale": "DSH byte-mirrors tests/fixtures/conformance/digest_v3 and re-derives all 29 vectors with its own runner; digest identity inputs exclude telemetry refs by contract.",
76
+ "planStatus": "fixture gate frozen; DSH runner implemented against the byte mirror",
77
+ "implementationStatus": "codex-encoder-and-fixture-complete; dsh-runner-implemented (vitest re-derives all 29 vectors from the byte mirror)",
78
+ "tests": [
79
+ "codex-context-guard tests/test_reference_digest_encoder.py (29/29 golden vectors, fail-closed negatives, --check gate)",
80
+ "dsh-completion-guard tests/domain/digest-v3.test.ts (byte-mirror pin and 29/29 cross-language vectors)"
81
+ ],
82
+ "plannedTests": [],
83
+ "nativeAcceptance": "none",
84
+ "releaseReadback": "none"
85
+ },
86
+ {
87
+ "capability": "execution-protocol-1",
88
+ "sourceFact": "Execution protocol 1.0.0 exists in Codex v0.9.4; not all surfaces are enabled through PreToolUse in Codex itself.",
89
+ "disposition": "deferred",
90
+ "targetRelease": "unassigned",
91
+ "rationale": "DSH first needs a host coverage matrix (tools guard, permissions, sandbox, tool input digest, agent lineage, Goal CAS, high-risk write surfaces); an execution contract is only built against confirmed gaps.",
92
+ "planStatus": "deferred pending host coverage matrix",
93
+ "implementationStatus": "local-candidate-implemented-diagnostic-only",
94
+ "tests": [
95
+ "tests/domain/v030-stop-boundary.test.ts",
96
+ "tests/domain/portable-semantics.test.ts"
97
+ ],
98
+ "plannedTests": [],
99
+ "nativeAcceptance": "none",
100
+ "releaseReadback": "none"
101
+ },
102
+ {
103
+ "capability": "classifier-2.3.2-quoted-completion",
104
+ "sourceFact": "Classifier 2.3.2 (v0.8.12/0.9.4) keeps quoted completion phrases and meta-discussion diagnostic; direct completion assertions stay gated.",
105
+ "disposition": "adapted",
106
+ "targetRelease": "dsh-completion-guard v0.3.0",
107
+ "rationale": "The DSH stop policy rebuild keeps whole-completion and quote/assumption classification as diagnostic outcome codes only.",
108
+ "planStatus": "planned with stop-protocol-2",
109
+ "implementationStatus": "not-implemented",
110
+ "tests": [],
111
+ "plannedTests": [
112
+ "quoted-completion-diagnostic-only"
113
+ ],
114
+ "nativeAcceptance": "none",
115
+ "releaseReadback": "none"
116
+ },
117
+ {
118
+ "capability": "utf8-stdin-decoding",
119
+ "sourceFact": "v0.9.4 decodes Hook stdin as UTF-8 explicitly, independent of host locale, rejecting invalid bytes fail-closed.",
120
+ "disposition": "already-equivalent",
121
+ "targetRelease": "none",
122
+ "rationale": "DSH has no Hook stdin surface; it reads persisted structured session logs, so non-ASCII prompt text is preserved natively.",
123
+ "planStatus": "satisfied by native host design",
124
+ "implementationStatus": "already-equivalent",
125
+ "tests": [],
126
+ "plannedTests": [],
127
+ "nativeAcceptance": "none",
128
+ "releaseReadback": "none"
129
+ },
130
+ {
131
+ "capability": "managed-cache-fallback",
132
+ "sourceFact": "v0.8.11 Hooks fall back to the newest valid managed plugin cache when the original cache directory is removed, with strict version validation and a repair hint when nothing valid survives.",
133
+ "disposition": "not-applicable",
134
+ "targetRelease": "none",
135
+ "rationale": "DSH has no installed Hook cache lifecycle; plugin loading and lifecycle belong to the Cordis host.",
136
+ "planStatus": "not applicable to the DSH host model",
137
+ "implementationStatus": "not-applicable",
138
+ "tests": [],
139
+ "plannedTests": [],
140
+ "nativeAcceptance": "none",
141
+ "releaseReadback": "none"
142
+ },
143
+ {
144
+ "capability": "installer-missing-cache-messaging",
145
+ "sourceFact": "v0.8.11 installer explains missing historical caches and how to restore them instead of failing silently.",
146
+ "disposition": "not-applicable",
147
+ "targetRelease": "none",
148
+ "rationale": "Same host-model boundary as managed-cache-fallback.",
149
+ "planStatus": "not applicable to the DSH host model",
150
+ "implementationStatus": "not-applicable",
151
+ "tests": [],
152
+ "plannedTests": [],
153
+ "nativeAcceptance": "none",
154
+ "releaseReadback": "none"
155
+ },
156
+ {
157
+ "capability": "privacy-token-value-classifier",
158
+ "sourceFact": "v0.8.11 privacy classification inspects serialized token field values, allowing redaction placeholders and readable examples while blocking real-looking values.",
159
+ "disposition": "already-equivalent",
160
+ "targetRelease": "none",
161
+ "rationale": "DSH sanitizes clause text by value patterns (bearer tokens, header values, quoted and bare secret assignments) before items are stored; value-based redaction is the existing behavior.",
162
+ "planStatus": "satisfied by existing DSH sanitization",
163
+ "implementationStatus": "already-equivalent",
164
+ "tests": [
165
+ "tests/domain/core.test.ts sanitizeClauseText coverage (existing DSH suite)"
166
+ ],
167
+ "plannedTests": [],
168
+ "nativeAcceptance": "none",
169
+ "releaseReadback": "none"
170
+ },
171
+ {
172
+ "capability": "incident-corpus",
173
+ "sourceFact": "v0.9.4 adds a standard-library incident corpus tool with reviewed, sanitized public fixtures used by CI.",
174
+ "disposition": "adapted",
175
+ "targetRelease": "dsh-completion-guard v0.3.0 (fixture layer only)",
176
+ "rationale": "Cross-platform protocol regressions are expressed as portable conformance cases in the shared fixture; the corpus tooling itself stays Codex-only.",
177
+ "planStatus": "portable fixture layer established; case growth is continuous",
178
+ "implementationStatus": "fixture-schema-first-batch-and-all-case-dsh-runner-present",
179
+ "tests": [
180
+ "tests/domain/portable-semantics.test.ts (37/37, no skips)",
181
+ "tests/domain/digest-v3.test.ts (pin and digest mirror integrity)"
182
+ ],
183
+ "plannedTests": [],
184
+ "nativeAcceptance": "none",
185
+ "releaseReadback": "none"
186
+ },
187
+ {
188
+ "capability": "schema-7-private-ledger",
189
+ "sourceFact": "Codex persists a private schema-7 state ledger across the eight-Hook lifecycle.",
190
+ "disposition": "not-applicable",
191
+ "targetRelease": "none",
192
+ "rationale": "DSH persists in the native session log by design; the plan explicitly excludes porting the Codex private ledger.",
193
+ "planStatus": "not applicable; shared semantics carried by fixtures instead",
194
+ "implementationStatus": "not-applicable",
195
+ "tests": [],
196
+ "plannedTests": [],
197
+ "nativeAcceptance": "none",
198
+ "releaseReadback": "none"
199
+ },
200
+ {
201
+ "capability": "surface-intent-and-capability-binding",
202
+ "sourceFact": "Codex v0.9.4 carries the deterministic proof contract surface classifier whose substring misclassification and capability adaptation gaps are scheduled for repair in v0.9.5/v0.10.0 (canonical locator, capability trust root, clause-level surface intent).",
203
+ "disposition": "deferred",
204
+ "targetRelease": "dsh-completion-guard v0.4.0",
205
+ "rationale": "DSH Layer B reuses the Codex canonical locator, capability priority, and clause-derived surface tuple semantics via portable fixtures after the Codex repair lands; DSH must not fork its own binding rules.",
206
+ "planStatus": "deferred until Codex v0.9.5/v0.10.0 semantics freeze",
207
+ "implementationStatus": "not-implemented",
208
+ "tests": [],
209
+ "plannedTests": [
210
+ "canonical-locator-subject-identity",
211
+ "capability-trust-root-priority"
212
+ ],
213
+ "nativeAcceptance": "none",
214
+ "releaseReadback": "none"
215
+ }
216
+ ]
217
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "version": 1,
3
+ "semanticActions": ["inspect_remote_updates", "install", "apply", "create", "modify", "test", "verify", "pull", "fetch", "commit", "push", "restart", "publish", "generic_run"],
4
+ "statefulActions": ["install", "apply", "create", "modify", "restart", "commit", "push", "publish", "pull", "fetch"],
5
+ "evidenceAdapters": {
6
+ "context-guard.git.v1": "1.0.0",
7
+ "context-guard.package.v1": "1.0.0",
8
+ "context-guard.artifact.v1": "1.0.0",
9
+ "context-guard.service.v1": "1.0.0",
10
+ "context-guard.registry.v1": "1.0.0"
11
+ },
12
+ "actions": {
13
+ "inspect_remote_updates": {"stateful": false, "evidenceProducer": "supported", "resolvedTargetKeys": ["repository", "version", "remote"], "observedStateKeys": ["upstream_oid"], "predicateId": "pred.inspect_remote_updates.v1", "commandManifestIds": ["git.ls_remote_exact.v2"]},
14
+ "install": {"stateful": true, "evidenceProducer": "supported", "resolvedTargetKeys": ["package_id", "version", "integrity_digest", "profile"], "observedStateKeys": ["package_id", "version", "integrity_digest", "profile"], "predicateId": "pred.install.v1", "commandManifestIds": ["dsh.plugin_add_tgz.install.v1"]},
15
+ "apply": {"stateful": true, "evidenceProducer": "supported", "resolvedTargetKeys": ["package_id", "version", "integrity_digest", "profile"], "observedStateKeys": ["package_id", "version", "integrity_digest", "profile"], "predicateId": "pred.apply.v1", "commandManifestIds": ["dsh.plugin_add_tgz.apply.v1"]},
16
+ "create": {"stateful": true, "evidenceProducer": "supported", "resolvedTargetKeys": ["artifact_id", "scope", "pre_digest", "change_set_digest"], "observedStateKeys": ["post_digest"], "predicateId": "pred.create.v1", "commandManifestIds": ["artifact.create.v1"]},
17
+ "modify": {"stateful": true, "evidenceProducer": "supported", "resolvedTargetKeys": ["artifact_id", "scope", "pre_digest", "change_set_digest"], "observedStateKeys": ["post_digest"], "predicateId": "pred.modify.v1", "commandManifestIds": ["artifact.modify.v1"]},
18
+ "test": {"stateful": false, "evidenceProducer": "supported", "resolvedTargetKeys": ["scope", "executable"], "observedStateKeys": [], "predicateId": "pred.test.outcome", "commandManifestIds": ["python.unittest.v1", "package.test.v1", "test.runner.v1"]},
19
+ "verify": {"stateful": false, "evidenceProducer": "supported", "resolvedTargetKeys": ["scope"], "observedStateKeys": [], "predicateId": "pred.verify.outcome", "commandManifestIds": ["deterministic.verify.v1"]},
20
+ "pull": {"stateful": true, "evidenceProducer": "supported", "resolvedTargetKeys": ["repository", "remote", "refspec", "upstream_oid", "pre_head_oid", "pull_mode"], "observedStateKeys": ["post_head_oid", "tracking_ref_oid"], "predicateId": "pred.pull.v1", "commandManifestIds": ["git.pull_ff_only_explicit.v2"]},
21
+ "fetch": {"stateful": true, "evidenceProducer": "supported", "resolvedTargetKeys": ["repository", "remote", "refspec", "upstream_oid", "pre_head_oid"], "observedStateKeys": ["tracking_ref_oid", "post_head_oid"], "predicateId": "pred.fetch.v1", "commandManifestIds": ["git.fetch_tracking_explicit.v2"]},
22
+ "commit": {"stateful": true, "evidenceProducer": "supported", "resolvedTargetKeys": ["repository", "branch", "change_set_digest", "pre_head_oid"], "observedStateKeys": ["post_head_oid", "pre_head_oid"], "predicateId": "pred.commit.v1", "commandManifestIds": ["git.commit_index_tree.v2"]},
23
+ "push": {"stateful": true, "evidenceProducer": "supported", "resolvedTargetKeys": ["repository", "remote", "refspec", "local_oid"], "observedStateKeys": ["remote_oid"], "predicateId": "pred.push.v1", "commandManifestIds": ["git.push_explicit_refs.v2"]},
24
+ "restart": {"stateful": true, "evidenceProducer": "supported", "resolvedTargetKeys": ["service_id", "pre_generation"], "observedStateKeys": ["new_generation", "health"], "predicateId": "pred.restart.v1", "commandManifestIds": ["dshmarket.restart.v1"]},
25
+ "publish": {"stateful": true, "evidenceProducer": "supported", "resolvedTargetKeys": ["artifact_id", "version", "registry", "integrity_digest"], "observedStateKeys": ["artifact_id", "version", "registry", "integrity_digest"], "predicateId": "pred.publish.v1", "commandManifestIds": ["npm.publish_tgz.v1"]},
26
+ "generic_run": {"stateful": false, "evidenceProducer": "supported", "resolvedTargetKeys": ["scope", "executable"], "observedStateKeys": [], "predicateId": "pred.generic_run.outcome", "commandManifestIds": ["generic.run.v1"]}
27
+ },
28
+ "compatibility": {
29
+ "inspect_remote_updates": ["inspect_remote_updates"], "install": ["install"], "apply": ["apply"], "create": ["create"], "modify": ["modify"],
30
+ "test": ["test", "verify"], "verify": ["verify", "test"], "pull": ["pull"], "fetch": ["fetch"], "commit": ["commit"], "push": ["push"],
31
+ "restart": ["restart"], "publish": ["publish"], "generic_run": ["generic_run"]
32
+ }
33
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "version": 2,
3
+ "adapterId": "context-guard.git.v1",
4
+ "parser": "production-shell-parser-canonical-argv",
5
+ "globalProhibitions": [
6
+ "git_global_C",
7
+ "git_global_c",
8
+ "alias_subcommand",
9
+ "force",
10
+ "wildcard_refspec",
11
+ "delete_refspec",
12
+ "implicit_ref",
13
+ "implicit_HEAD"
14
+ ],
15
+ "commands": {
16
+ "git.ls_remote_exact.v2": {
17
+ "action": "inspect_remote_updates",
18
+ "argv": ["git", "ls-remote", "--exit-code", "--refs", "<remote-name>", "<source-ref>"],
19
+ "sourceRefKind": "refs/heads"
20
+ },
21
+ "git.pull_ff_only_explicit.v2": {
22
+ "action": "pull",
23
+ "argv": ["git", "pull", "--ff-only", "--no-tags", "<remote-name>", "<source-ref>"],
24
+ "sourceRefKind": "refs/heads"
25
+ },
26
+ "git.fetch_tracking_explicit.v2": {
27
+ "action": "fetch",
28
+ "argv": ["git", "fetch", "--no-tags", "<remote-name>", "<source-ref>:<tracking-ref>"],
29
+ "sourceRefKind": "refs/heads",
30
+ "trackingRefKind": "refs/remotes/<remote-name>",
31
+ "readback": "git rev-parse --verify <tracking-ref>"
32
+ },
33
+ "git.commit_index_tree.v2": {
34
+ "action": "commit",
35
+ "argv": ["git", "commit", "-m|--message", "<literal-message>"],
36
+ "prestate": ["git rev-parse HEAD", "git write-tree", "git ls-files --stage -z"],
37
+ "tupleEncoding": "sha256-length-prefixed-raw-bytes"
38
+ },
39
+ "git.push_explicit_refs.v2": {
40
+ "action": "push",
41
+ "argv": ["git", "push", "<remote-name>", "<source-ref>:<destination-ref>"],
42
+ "sourceRefKind": "refs/heads",
43
+ "destinationRefKind": "refs/heads",
44
+ "prestate": ["source-ref-oid", "exact-destination-ref-oid"],
45
+ "readback": "git ls-remote --exit-code --refs <remote-name> <destination-ref>"
46
+ }
47
+ },
48
+ "effectGate": {
49
+ "envelopeVersion": "git.prestate.v1",
50
+ "rule": "recompute target identity and prestate tuple immediately before exact argv execution"
51
+ }
52
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "manifestVersion": 1,
3
+ "supportedGoalVersions": ["0.1.1-rc.2"],
4
+ "capabilities": {
5
+ "goal_complete_precommit_guard": "required",
6
+ "goal_disarm_readback": "required",
7
+ "session_flush_before_control": "required",
8
+ "tool_guard_monotonic": "required",
9
+ "host_capability_model": "action-platform-v1",
10
+ "external_wait_jobs_readback": "dsh.jobs.v1",
11
+ "filesystem_tool_contract": "dsh.fs-tools.v1",
12
+ "packageGroups": {
13
+ "base": ["@deepseek-ai/cordis", "@deepseek-ai/dsh-agent", "@deepseek-ai/dsh-commands", "@deepseek-ai/dsh-llm", "@deepseek-ai/dsh-session", "@deepseek-ai/dsh-tools"],
14
+ "goal": ["@deepseek-ai/dsh-goal", "@deepseek-ai/dsh-tool-goal"],
15
+ "agent_loop": ["@deepseek-ai/dsh-agent-loop"],
16
+ "terminal_posix": ["@deepseek-ai/dsh-tool-bash", "@deepseek-ai/dsh-shell", "@deepseek-ai/dsh-subprocess-local", "@deepseek-ai/dsh-bash-sandbox", "@deepseek-ai/dsh-shell-env"],
17
+ "terminal_windows": ["@deepseek-ai/dsh-tool-pwsh", "@deepseek-ai/dsh-shell", "@deepseek-ai/dsh-subprocess-local", "@deepseek-ai/dsh-pwsh-sandbox", "@deepseek-ai/dsh-shell-env"],
18
+ "dsh_cli": ["@deepseek-ai/dsh"],
19
+ "plugin_inventory": ["@deepseek-ai/dsh-host-plugin-inventory"],
20
+ "web_control": ["dshmarket", "@deepseek-ai/dsh-host-webserver", "@deepseek-ai/dsh-web-app"],
21
+ "jobs": ["@deepseek-ai/dsh-jobs", "@deepseek-ai/dsh-jobs-local", "@deepseek-ai/dsh-tool-jobs"],
22
+ "filesystem": ["@deepseek-ai/dsh-tool-fs", "@deepseek-ai/dsh-fs", "@deepseek-ai/dsh-fs-local", "@deepseek-ai/dsh-fs-sandbox", "@deepseek-ai/dsh-fs-observation-policy", "@deepseek-ai/dsh-sandbox", "@deepseek-ai/dsh-sandbox-policy", "@deepseek-ai/dsh-user-approval", "@deepseek-ai/dsh-attachment", "@deepseek-ai/dsh-system-prompt"]
23
+ }
24
+ },
25
+ "packages": [
26
+ {"name": "@deepseek-ai/cordis", "version": "4.0.1", "integrity": "sha512-YBdskTU2Po1kru3GgcUWUbkTsPMA9LkSQDAY8rBkFJeajdgcQad3QPJZE26JyK99Xb6HaASvoXg2DSUTeN/0Nw=="},
27
+ {"name": "@deepseek-ai/dsh-agent", "version": "0.1.1-rc.2", "integrity": "sha512-cC7lnJe7JgPFcreNXxcxLMxQd78LnpVO9ZXROjZsGRQN1zGH6i/DduI892F1am85IfzzO+XTxMwwUHmfwamb0g=="},
28
+ {"name": "@deepseek-ai/dsh-commands", "version": "0.1.1-rc.2", "integrity": "sha512-BOIe4Sht9rmMv1a6b3GWjWBbeWr7PtHlAy41vgpaymvUUuzOapOIA648ZMGCI/crRIt72Umev2FHtSwCNSbYZg=="},
29
+ {"name": "@deepseek-ai/dsh-goal", "version": "0.1.1-rc.2", "integrity": "sha512-lSHTh4vfS6eRb9to/y+bjRf2+0QkNpY3tHJ29HMTewR9fJYZsEVVu4Hc+GPhPEjF7RpiD35/sKx+akijtDasyg=="},
30
+ {"name": "@deepseek-ai/dsh-llm", "version": "0.1.1-rc.2", "integrity": "sha512-ASJfjIdZbIXvLwi3rGo+eZb/GxMVV/WO5/XVD3B96mT8EIzrlw3+nMR6/CvmJVzcycKQ2XN0wj7jD6TasPRySA=="},
31
+ {"name": "@deepseek-ai/dsh-session", "version": "0.1.1-rc.2", "integrity": "sha512-4/cv6X9HPhm47eyRhCu/WZwzrtJKegk5J+0xaxcZ9i8S0smdxP57tqy8a0jkSshLQn7BzMFxneQrlYExrLrDhQ=="},
32
+ {"name": "@deepseek-ai/dsh-tools", "version": "0.1.1-rc.2", "integrity": "sha512-0GGL4D55MwYDepzZMOI3L0ycu5b2qr96GL0Y7snwhAnpK2Di61rbX3fJE+PB3ZrovGX0csIRdt9n3iJZDVtDrw=="},
33
+ {"name": "@deepseek-ai/dsh-tool-goal", "version": "0.1.1-rc.2", "integrity": "sha512-kTECpE732uwlxRJr/jBZb1BqaxZzrA7Rv4KuM3eolvhoTJ5zjyiR2YHmDmCSfuI6zmA/BEfWss7D0mLbVtJEZA=="},
34
+ {"name": "@deepseek-ai/dsh-agent-loop", "version": "0.1.1-rc.2", "integrity": "sha512-2uJZ6kjJ3IYLRGn6/NhiZgD576ABcbERB/nkReR9TEUMO2zWkz6OuKtVwLyFCFSni2T25Jv+clKQWt7D4MhU3A=="},
35
+ {"name": "@deepseek-ai/dsh-tool-bash", "version": "0.1.1-rc.2", "integrity": "sha512-YNmrKmBanj5EQn1zejjbo4UUFtg2/h3s9y0lY3vBu+dezNz4HdUlSkSZACbNUAZywyLomdhlt4rJdtdnrqyS7Q=="},
36
+ {"name": "@deepseek-ai/dsh-tool-pwsh", "version": "0.1.1-rc.2", "integrity": "sha512-Gr0F4VWCIIR25qWVv4mMEJnewXILHLCkZwrLfbHA2OOI7DNvvdB5wjJxhuo+ZQa8/3KJ/byQGtEBqCY9mb10Zg=="},
37
+ {"name": "@deepseek-ai/dsh-shell", "version": "0.1.1-rc.2", "integrity": "sha512-gEqPUxKOpOV66wvM4o8Z5FEuWmsEvYzD9OQy3cyo/kjzlx+2+KUWi22cl/YWtBs/zUtRJbdG5UqMnh8GUeO8Hg=="},
38
+ {"name": "@deepseek-ai/dsh-subprocess-local", "version": "0.1.1-rc.2", "integrity": "sha512-I4pyzpohZEVRQQbuEpMP0t8oKsf+XIlRo64aJVKGXI2eMcg9f9gbfhKQNYNqRGbegQL1HYpSLU6Rzyibldgwaw=="},
39
+ {"name": "@deepseek-ai/dsh-bash-sandbox", "version": "0.1.1-rc.2", "integrity": "sha512-bagZDMZ73C1dVDBjFCn1flNZ8aOEel4dsmDJTfmagqeYPXfIJDFKPhDc3lWjc+o6jMNfmumeUJ62dwhHkjJHKA=="},
40
+ {"name": "@deepseek-ai/dsh-pwsh-sandbox", "version": "0.1.1-rc.2", "integrity": "sha512-hBUTg5p8TTQifZrfstbimVlBFyUOb7JhNkWKc+n6UpTzoFRSkPAvrjGeXKDmFI6jXpL4nXzLJoaIssfYnRg7bw=="},
41
+ {"name": "@deepseek-ai/dsh-shell-env", "version": "0.1.1-rc.2", "integrity": "sha512-dDKKqsxsbklUpxX5ornd/SKJ2yfr/SOHOWDgeJkYvx3SMSXq8EvhCK/VEvHswXQ25rRLFWM4/Mr3htk1hn/GPA=="},
42
+ {"name": "@deepseek-ai/dsh", "version": "0.1.1-rc.2", "integrity": "sha512-UP1UIh6q3Gme/yXRn/QL2P8IsVlv8Shpg22TRJIZPsCRWLm4CBiA1MUvXmJAfsOEETBMLAl+xWPtFw6ICsN3wg=="},
43
+ {"name": "@deepseek-ai/dsh-host-plugin-inventory", "version": "0.1.1-rc.2", "integrity": "sha512-Hud9ezW0bexWfhX7C+c5rdUDX1xzbEGDzj1lGQyj/QxdrxHYHjGrJq3tLRyvN6K4FSmEdG2IBKdQGCOLVrIthA=="},
44
+ {"name": "dshmarket", "version": "1.36.0", "integrity": "sha512-xX8CCoXdIALaxtLosj+5qGg8r1cykW2zo1AOPJcSQepg2r4Vd2K0NmERldDqfeyFV0pCuZsUoAPe1Q/BW7De/g=="},
45
+ {"name": "@deepseek-ai/dsh-host-webserver", "version": "0.1.1-rc.2", "integrity": "sha512-t9MrjC65QHiiWhG9V8UZxgfE/aWYhJHHrIM0kbTvtXxg4tLGIKo/upHp7iiag65F3HTkVLrH/DUyPMi4v2ZA7g=="},
46
+ {"name": "@deepseek-ai/dsh-web-app", "version": "0.1.1-rc.2", "integrity": "sha512-1zGHY7qwBVlVJrzIWu+86SuBZXaVUxe2JRfffsuRvKXq2QcR/K4CoJJfZ43cDoWKu9xPvvxz7w2ezV+EdXgg1A=="},
47
+ {"name": "@deepseek-ai/dsh-jobs", "version": "0.1.1-rc.2", "integrity": "sha512-SXvDJMvcUrGrlzIyE7j8/lI4Pj1nDe/UOR8C05Zagp+/0R8p46n6KylySvZdPAFENV5t8WX3Fw3eOaS4No0+wQ=="},
48
+ {"name": "@deepseek-ai/dsh-jobs-local", "version": "0.1.1-rc.2", "integrity": "sha512-26lg7mi9RKnu8IP8SWLbY+uZenbqF2AkAZvgZaLDlw1z58NtBsbgKgh6FNC8JXEyknAwYc6auQQKF+nLTlEjCw=="},
49
+ {"name": "@deepseek-ai/dsh-tool-jobs", "version": "0.1.1-rc.2", "integrity": "sha512-wCU7mo2uoQcAtz7de4ZXP2es9lALsmz6XzC+KAlS2e7/yTBi9a5LL2vdSr6XhExVAuhu/6f9eM/w4EQBOxtKlw=="},
50
+ {"name": "@deepseek-ai/dsh-tool-fs", "version": "0.1.1-rc.2", "integrity": "sha512-llX8AWbaI3CGme/a2eeTSfy5atk8u3iJeOFzmZV/KZ0v0hMhKZIK1xQInWwC9OmSDJ/StStJe0hDPVLWbB7hVg=="},
51
+ {"name": "@deepseek-ai/dsh-fs", "version": "0.1.1-rc.2", "integrity": "sha512-8j+6MffvCHATLQrhAVfc9rKyunKu/O7mjjJzmdsUSdID7V4iUYMwqPamhlAyI+tfohZu/vcforKzCRIZGmCYug=="},
52
+ {"name": "@deepseek-ai/dsh-fs-local", "version": "0.1.1-rc.2", "integrity": "sha512-jvn1MsAMqCmt5SjRNkPjmpc+RIWrZQrBVtf/OpmKr2PaBEGqSbCkPApWDE9iSMhcuQg6k5evScOXwAsduzKOLA=="},
53
+ {"name": "@deepseek-ai/dsh-fs-sandbox", "version": "0.1.1-rc.2", "integrity": "sha512-PI65uLZ3ARkfVV/PXvACS1HEXggoOaXgYQzXQFdLOfm7AiHOdZWZccUAXBetpZhcNYIOKsVoLnfZkXcHByqecQ=="},
54
+ {"name": "@deepseek-ai/dsh-fs-observation-policy", "version": "0.1.1-rc.2", "integrity": "sha512-rlq7yu4xavkKK1Oa1/aNCOeUW7t/3OXJJOfOcZXuUgJn5f8G0AbpTDpp2CeuL1cHlKpbunGhEkKQ2N/dv7ZR9w=="},
55
+ {"name": "@deepseek-ai/dsh-sandbox", "version": "0.1.1-rc.2", "integrity": "sha512-rnO2RqZ+ycpwrXrXlMcrhWAICdui3ZVTjNQ8eZrOPE18hAbX3tw0nLFq26sBjMSnBfDQHNZ4VaFpt0p8qhkPWQ=="},
56
+ {"name": "@deepseek-ai/dsh-sandbox-policy", "version": "0.1.1-rc.2", "integrity": "sha512-cpoIUxCzpZJDTMXVt9gS+qgWEDAWf6rIe715uY1NF0ROoiEXPlmToLsHLF+4pXTW3wWWzpGVswO0bPYEKrQr3g=="},
57
+ {"name": "@deepseek-ai/dsh-user-approval", "version": "0.1.1-rc.2", "integrity": "sha512-SdsO4Rs+NeJFoertkVilXBACREOLfkKPJJznYKqDhJxeRo38RJ56dtj0Xd0/6rERmsQiMck4Bwdrzg1ubUqPNA=="},
58
+ {"name": "@deepseek-ai/dsh-attachment", "version": "0.1.1-rc.2", "integrity": "sha512-rCYAt8QsawP1yfDCU7XxNwYT/XWvyFsxYrkwhLLkdfW83QVD0CQHizSkTQE7RFX74nKUD1z3sTLfnLr7xneArw=="},
59
+ {"name": "@deepseek-ai/dsh-system-prompt", "version": "0.1.1-rc.2", "integrity": "sha512-on4hjAlYI5uX9q7Sf95YkMMBVe6heywtA/H50ksrIMUub8U2B98hO9iQpHhjwIO1F1vu+5pLcPvRr6yUGGmtXQ=="}
60
+ ],
61
+ "runtimeIdentity": {
62
+ "source": "active-profile-package-graph",
63
+ "injectionConfigKeys": ["hostLockPackages", "hostLockPlatform", "hostLockProfile"],
64
+ "missingBehavior": "fail-closed"
65
+ }
66
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-completion-guard",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "A task-contract and completion-certification layer for DeepSeek Harness.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,13 +19,18 @@
19
19
  "default": "./dist/domain/index.js"
20
20
  }
21
21
  },
22
+ "bin": {
23
+ "dsh-completion-guard-host-lock": "./bin/dsh-completion-guard-host-lock.mjs"
24
+ },
22
25
  "files": [
26
+ "bin",
23
27
  "dist",
24
28
  "cordis.patch.yml",
25
29
  "README.md",
26
30
  "README.zh-CN.md",
27
31
  "LICENSE",
28
32
  "docs",
33
+ "manifests",
29
34
  "CHANGELOG.md",
30
35
  "CHANGELOG.zh-CN.md"
31
36
  ],
@@ -42,29 +47,62 @@
42
47
  "@deepseek-ai/cordis": "^4.0.1",
43
48
  "@deepseek-ai/dsh-agent": "^0.1.1-rc.2",
44
49
  "@deepseek-ai/dsh-commands": "^0.1.1-rc.2",
50
+ "@deepseek-ai/dsh-goal": "0.1.1-rc.2",
45
51
  "@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
46
52
  "@deepseek-ai/dsh-session": "^0.1.1-rc.2",
53
+ "@deepseek-ai/dsh-tool-goal": "0.1.1-rc.2",
47
54
  "@deepseek-ai/dsh-tools": "^0.1.1-rc.2"
48
55
  },
49
- "scripts": {
50
- "build": "tsdown",
51
- "lint": "oxlint src tests",
52
- "test": "vitest run",
53
- "typecheck": "tsc --noEmit",
54
- "pack:check": "pnpm pack --dry-run --json"
56
+ "peerDependenciesMeta": {
57
+ "@deepseek-ai/dsh-goal": {
58
+ "optional": true
59
+ },
60
+ "@deepseek-ai/dsh-tool-goal": {
61
+ "optional": true
62
+ }
55
63
  },
56
64
  "devDependencies": {
57
- "@deepseek-ai/cordis": "^4.0.1",
58
- "@deepseek-ai/dsh-agent": "^0.1.1-rc.2",
59
- "@deepseek-ai/dsh-commands": "^0.1.1-rc.2",
60
- "@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
61
- "@deepseek-ai/dsh-session": "^0.1.1-rc.2",
62
- "@deepseek-ai/dsh-tools": "^0.1.1-rc.2",
65
+ "@deepseek-ai/cordis": "4.0.1",
66
+ "@deepseek-ai/dsh-agent": "0.1.1-rc.2",
67
+ "@deepseek-ai/dsh-attachment": "0.1.1-rc.2",
68
+ "@deepseek-ai/dsh-commands": "0.1.1-rc.2",
69
+ "@deepseek-ai/dsh-fs": "0.1.1-rc.2",
70
+ "@deepseek-ai/dsh-fs-local": "0.1.1-rc.2",
71
+ "@deepseek-ai/dsh-fs-observation-policy": "0.1.1-rc.2",
72
+ "@deepseek-ai/dsh-fs-sandbox": "0.1.1-rc.2",
73
+ "@deepseek-ai/dsh-goal": "0.1.1-rc.2",
74
+ "@deepseek-ai/dsh-jobs": "0.1.1-rc.2",
75
+ "@deepseek-ai/dsh-jobs-local": "0.1.1-rc.2",
76
+ "@deepseek-ai/dsh-llm": "0.1.1-rc.2",
77
+ "@deepseek-ai/dsh-session": "0.1.1-rc.2",
78
+ "@deepseek-ai/dsh-sandbox": "0.1.1-rc.2",
79
+ "@deepseek-ai/dsh-sandbox-policy": "0.1.1-rc.2",
80
+ "@deepseek-ai/dsh-system-prompt": "0.1.1-rc.2",
81
+ "@deepseek-ai/dsh-tool-fs": "0.1.1-rc.2",
82
+ "@deepseek-ai/dsh-tool-goal": "0.1.1-rc.2",
83
+ "@deepseek-ai/dsh-tools": "0.1.1-rc.2",
84
+ "@deepseek-ai/dsh-user-approval": "0.1.1-rc.2",
63
85
  "@deepseek-ai/schemastery": "^3.18.1",
64
86
  "@types/node": "^22.0.0",
65
87
  "oxlint": "^1.20.0",
66
88
  "tsdown": "^0.15.0",
67
89
  "typescript": "^5.8.0",
68
90
  "vitest": "^3.2.0"
91
+ },
92
+ "keywords": [
93
+ "deepseek-harness",
94
+ "dsh-plugin",
95
+ "task-contract",
96
+ "completion-certification",
97
+ "hooks",
98
+ "typescript"
99
+ ],
100
+ "scripts": {
101
+ "build": "tsdown",
102
+ "lint": "oxlint src tests",
103
+ "test": "vitest run",
104
+ "test:stats": "node --test tests/npm-download-stats.node.mjs",
105
+ "typecheck": "tsc --noEmit",
106
+ "pack:check": "pnpm pack --dry-run --json"
69
107
  }
70
- }
108
+ }