dsh-cc-permissions 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.
Files changed (2) hide show
  1. package/package.json +49 -48
  2. package/src/index.js +5 -3
package/package.json CHANGED
@@ -1,48 +1,49 @@
1
- {
2
- "name": "dsh-cc-permissions",
3
- "version": "0.2.1",
4
- "description": "Enforce Claude Code permission rules (.claude/settings.json allow/deny/ask, deny>ask>allow) in DSH via a tools/pre-execute gate; CC allow rules auto-answer the approval/request seam (incl. sandbox escalation). Reads CC settings as a read-only source; DSH-side approvals never write back to .claude.",
5
- "type": "module",
6
- "main": "src/index.js",
7
- "exports": {
8
- ".": "./src/index.js"
9
- },
10
- "dsh": {
11
- "bundle": {
12
- "patch": "./cordis.patch.yml"
13
- }
14
- },
15
- "files": [
16
- "src",
17
- "README.md",
18
- "cordis.patch.yml"
19
- ],
20
- "keywords": [
21
- "dsh",
22
- "deepseek-harness",
23
- "claude-code",
24
- "permissions",
25
- "security"
26
- ],
27
- "license": "MIT",
28
- "dependencies": {
29
- "dsh-cc-loader": "^0.1.0",
30
- "@deepseek-ai/schemastery": "^3.18.1"
31
- },
32
- "devDependencies": {
33
- "@deepseek-ai/cordis": "4.0.1"
34
- },
35
- "peerDependencies": {
36
- "@deepseek-ai/cordis": "*"
37
- },
38
- "peerDependenciesMeta": {
39
- "@deepseek-ai/cordis": {
40
- "optional": true
41
- }
42
- },
43
- "engines": {
44
- "node": ">=20"
45
- },
46
- "repository": "git+https://github.com/Bcy2020/dsh-cc-ecosystem.git",
47
- "homepage": "https://github.com/Bcy2020/dsh-cc-ecosystem"
48
- }
1
+ {
2
+ "name": "dsh-cc-permissions",
3
+ "version": "0.3.0",
4
+ "description": "Enforce Claude Code permission rules (.claude/settings.json allow/deny/ask, deny>ask>allow) in DSH via a tools/pre-execute gate; CC allow rules auto-answer the approval/request seam (incl. sandbox escalation). Reads CC settings as a read-only source; DSH-side approvals never write back to .claude.",
5
+ "type": "module",
6
+ "main": "src/index.js",
7
+ "exports": {
8
+ ".": "./src/index.js"
9
+ },
10
+ "dsh": {
11
+ "bundle": {
12
+ "patch": "./cordis.patch.yml"
13
+ }
14
+ },
15
+ "files": [
16
+ "src",
17
+ "README.md",
18
+ "cordis.patch.yml"
19
+ ],
20
+ "keywords": [
21
+ "dsh",
22
+ "deepseek-harness",
23
+ "claude-code",
24
+ "permissions",
25
+ "security"
26
+ ],
27
+ "license": "MIT",
28
+ "dependencies": {
29
+ "dsh-cc-loader": "^0.2.0"
30
+ },
31
+ "devDependencies": {
32
+ "@deepseek-ai/cordis": "4.0.2",
33
+ "@deepseek-ai/schemastery": "3.18.2"
34
+ },
35
+ "peerDependencies": {
36
+ "@deepseek-ai/cordis": "*",
37
+ "@deepseek-ai/schemastery": "^3.18.1"
38
+ },
39
+ "peerDependenciesMeta": {
40
+ "@deepseek-ai/cordis": {
41
+ "optional": true
42
+ }
43
+ },
44
+ "engines": {
45
+ "node": ">=20"
46
+ },
47
+ "repository": "git+https://github.com/Bcy2020/dsh-cc-ecosystem.git",
48
+ "homepage": "https://github.com/Bcy2020/dsh-cc-ecosystem"
49
+ }
package/src/index.js CHANGED
@@ -13,7 +13,7 @@
13
13
  import { stat } from 'node:fs/promises'
14
14
  import { homedir } from 'node:os'
15
15
  import z from '@deepseek-ai/schemastery'
16
- import { loadPermissions, evaluateCall } from 'dsh-cc-loader'
16
+ import { loadPermissions, evaluateCall, sessionEvents } from 'dsh-cc-loader'
17
17
  import { decideApproval } from './approval.js'
18
18
 
19
19
  export const name = 'cc-permissions'
@@ -117,8 +117,10 @@ export function apply(ctx, config = {}) {
117
117
  if (config.autoApproveAllowed !== false) {
118
118
  ctx.on('approval/request', async (req, next) => {
119
119
  try {
120
- const events = req.agent?.session?.events
121
- if (!Array.isArray(events)) return next()
120
+ // `Session.events` was removed in DSH 0.1.2-alpha.4; sessionEvents()
121
+ // prefers snapshotEvents() and falls back to the legacy array.
122
+ const events = sessionEvents(req.agent?.session)
123
+ if (events === undefined) return next()
122
124
  const cwd = req.agent?.session?.header?.cwd ?? process.cwd()
123
125
  let loaded
124
126
  try {