@unity-china/codely-cli 1.0.0-alpha.1 → 1.0.0-alpha.3

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.
@@ -1,17 +1,29 @@
1
- # Plan Mode policy: deny-all + read-only whitelist + plans dir write exception.
1
+ # Plan Mode policy: default-ask + explicit allow for exploration/planning tools.
2
2
  # Active only when ApprovalMode = "plan".
3
3
  #
4
+ # Design:
5
+ # - No blanket deny-all: tools default to ASK_USER (interactive) or ALLOW (non-interactive).
6
+ # - Explicit ALLOW for exploration/planning tools (including shell).
7
+ # - Conditional ALLOW for write_file/replace (plans directory only).
8
+ #
4
9
  # Priority bands (tiers):
5
10
  # - Default policies (TOML): 1 + priority/1000
6
- # 60: Catch-all deny for plan mode (becomes 1.060)
7
- # 70: Explicit allows for plan mode (becomes 1.070, overrides deny)
11
+ # 70: Explicit allows and ask rules for plan mode (becomes 1.070, overrides deny)
12
+ #
13
+ # Non-interactive plan mode:
14
+ # The PolicyEngine converts ASK_USER → DENY for non-interactive sessions.
15
+ # When entering plan mode in non-interactive, Config.setApprovalMode()
16
+ # sets the PolicyEngine default decision to ALLOW, so tools without
17
+ # explicit rules are available by default.
8
18
 
9
- # --- Catch-all deny for plan mode ---
19
+ # --- Explicit allows for plan mode ---
10
20
  [[rule]]
11
- decision = "deny"
12
- priority = 60
21
+ toolName = "run_shell_command"
22
+ decision = "allow"
23
+ priority = 70
13
24
  modes = ["plan"]
14
- deny_message = "You are in Plan Mode. Only read/search tools and writing plans to the plans directory are allowed. Use exit_plan_mode to request approval for your plan."
25
+ allow_redirection = true
26
+ allow_command_substitution = true
15
27
 
16
28
  # --- Read-only tools allowed in plan mode ---
17
29
  [[rule]]
@@ -39,7 +51,7 @@ priority = 70
39
51
  modes = ["plan"]
40
52
 
41
53
  [[rule]]
42
- toolName = "read_many_files"
54
+ toolName = "analyze_multimedia"
43
55
  decision = "allow"
44
56
  priority = 70
45
57
  modes = ["plan"]
@@ -50,12 +62,6 @@ decision = "allow"
50
62
  priority = 70
51
63
  modes = ["plan"]
52
64
 
53
- [[rule]]
54
- toolName = "sequential_thinking"
55
- decision = "allow"
56
- priority = 70
57
- modes = ["plan"]
58
-
59
65
  [[rule]]
60
66
  toolName = "job_create"
61
67
  decision = "allow"
@@ -91,6 +97,14 @@ priority = 70
91
97
  modes = ["plan"]
92
98
  argsPattern = "\"file_path\"\\s*:\\s*\"[^\"]*[/\\\\]+\\.codely-cli[/\\\\]+tmp[/\\\\]+[a-f0-9]{64}[/\\\\]+plans[/\\\\]+[a-zA-Z0-9_\\-][a-zA-Z0-9_\\-.]*\\.md\""
93
99
 
100
+ # write_file outside the plans directory requires approval (interactive)
101
+ # or is denied (non-interactive via ask-downgrade)
102
+ [[rule]]
103
+ toolName = "write_file"
104
+ decision = "ask_user"
105
+ priority = 65
106
+ modes = ["plan"]
107
+
94
108
  [[rule]]
95
109
  toolName = "replace"
96
110
  decision = "allow"
@@ -98,6 +112,14 @@ priority = 70
98
112
  modes = ["plan"]
99
113
  argsPattern = "\"file_path\"\\s*:\\s*\"[^\"]*[/\\\\]+\\.codely-cli[/\\\\]+tmp[/\\\\]+[a-f0-9]{64}[/\\\\]+plans[/\\\\]+[a-zA-Z0-9_\\-][a-zA-Z0-9_\\-.]*\\.md\""
100
114
 
115
+ # replace outside the plans directory requires approval (interactive)
116
+ # or is denied (non-interactive via ask-downgrade)
117
+ [[rule]]
118
+ toolName = "replace"
119
+ decision = "ask_user"
120
+ priority = 65
121
+ modes = ["plan"]
122
+
101
123
  # --- exit_plan_mode requires user approval ---
102
124
  [[rule]]
103
125
  toolName = "exit_plan_mode"
@@ -26,21 +26,11 @@ toolName = "read_file"
26
26
  decision = "allow"
27
27
  priority = 50
28
28
 
29
- [[rule]]
30
- toolName = "read_many_files"
31
- decision = "allow"
32
- priority = 50
33
-
34
29
  [[rule]]
35
30
  toolName = "web_search"
36
31
  decision = "allow"
37
32
  priority = 50
38
33
 
39
- [[rule]]
40
- toolName = "sequential_thinking"
41
- decision = "allow"
42
- priority = 50
43
-
44
34
  [[rule]]
45
35
  toolName = "analyze_multimedia"
46
36
  decision = "allow"
@@ -33,11 +33,6 @@ toolName = "run_shell_command"
33
33
  decision = "ask_user"
34
34
  priority = 10
35
35
 
36
- [[rule]]
37
- toolName = "save_memory"
38
- decision = "ask_user"
39
- priority = 10
40
-
41
36
  [[rule]]
42
37
  toolName = "activate_skill"
43
38
  decision = "ask_user"