@provos/ironcurtain 0.4.1 → 0.5.1

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 (146) hide show
  1. package/README.md +219 -248
  2. package/dist/cli.js +10 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config/config-command.js +144 -6
  5. package/dist/config/config-command.js.map +1 -1
  6. package/dist/config/constitution-user-base.md +2 -0
  7. package/dist/config/first-start.js +77 -12
  8. package/dist/config/first-start.js.map +1 -1
  9. package/dist/config/generated/compiled-policy.json +199 -72
  10. package/dist/config/generated/tool-annotations.json +1018 -36
  11. package/dist/config/mcp-servers.json +10 -0
  12. package/dist/config/paths.d.ts +31 -0
  13. package/dist/config/paths.js +52 -2
  14. package/dist/config/paths.js.map +1 -1
  15. package/dist/config/types.d.ts +8 -0
  16. package/dist/config/user-config.d.ts +21 -3
  17. package/dist/config/user-config.js +34 -3
  18. package/dist/config/user-config.js.map +1 -1
  19. package/dist/docker/adapters/claude-code.js +104 -23
  20. package/dist/docker/adapters/claude-code.js.map +1 -1
  21. package/dist/docker/agent-adapter.d.ts +24 -1
  22. package/dist/docker/agent-adapter.js +6 -1
  23. package/dist/docker/agent-adapter.js.map +1 -1
  24. package/dist/docker/docker-agent-session.d.ts +16 -9
  25. package/dist/docker/docker-agent-session.js +64 -90
  26. package/dist/docker/docker-agent-session.js.map +1 -1
  27. package/dist/docker/docker-infrastructure.d.ts +51 -0
  28. package/dist/docker/docker-infrastructure.js +261 -0
  29. package/dist/docker/docker-infrastructure.js.map +1 -0
  30. package/dist/docker/docker-manager.js +3 -0
  31. package/dist/docker/docker-manager.js.map +1 -1
  32. package/dist/docker/mitm-proxy.js +4 -0
  33. package/dist/docker/mitm-proxy.js.map +1 -1
  34. package/dist/docker/oauth-credentials.d.ts +81 -0
  35. package/dist/docker/oauth-credentials.js +178 -0
  36. package/dist/docker/oauth-credentials.js.map +1 -0
  37. package/dist/docker/orientation.d.ts +1 -1
  38. package/dist/docker/orientation.js +3 -2
  39. package/dist/docker/orientation.js.map +1 -1
  40. package/dist/docker/provider-config.d.ts +3 -0
  41. package/dist/docker/provider-config.js +28 -0
  42. package/dist/docker/provider-config.js.map +1 -1
  43. package/dist/docker/pty-session.d.ts +27 -0
  44. package/dist/docker/pty-session.js +510 -0
  45. package/dist/docker/pty-session.js.map +1 -0
  46. package/dist/docker/pty-types.d.ts +24 -0
  47. package/dist/docker/pty-types.js +12 -0
  48. package/dist/docker/pty-types.js.map +1 -0
  49. package/dist/docker/types.d.ts +6 -0
  50. package/dist/escalation/escalation-watcher.d.ts +44 -0
  51. package/dist/escalation/escalation-watcher.js +92 -0
  52. package/dist/escalation/escalation-watcher.js.map +1 -0
  53. package/dist/escalation/listener-command.d.ts +10 -0
  54. package/dist/escalation/listener-command.js +407 -0
  55. package/dist/escalation/listener-command.js.map +1 -0
  56. package/dist/escalation/listener-state.d.ts +49 -0
  57. package/dist/escalation/listener-state.js +104 -0
  58. package/dist/escalation/listener-state.js.map +1 -0
  59. package/dist/escalation/session-registry.d.ts +17 -0
  60. package/dist/escalation/session-registry.js +98 -0
  61. package/dist/escalation/session-registry.js.map +1 -0
  62. package/dist/index.js +15 -0
  63. package/dist/index.js.map +1 -1
  64. package/dist/logger.js +2 -3
  65. package/dist/logger.js.map +1 -1
  66. package/dist/pipeline/annotate.js +35 -15
  67. package/dist/pipeline/annotate.js.map +1 -1
  68. package/dist/pipeline/constitution-customizer.d.ts +2 -1
  69. package/dist/pipeline/constitution-customizer.js +36 -3
  70. package/dist/pipeline/constitution-customizer.js.map +1 -1
  71. package/dist/pipeline/github-identity.d.ts +38 -0
  72. package/dist/pipeline/github-identity.js +64 -0
  73. package/dist/pipeline/github-identity.js.map +1 -0
  74. package/dist/pipeline/handwritten-scenarios.js +34 -0
  75. package/dist/pipeline/handwritten-scenarios.js.map +1 -1
  76. package/dist/sandbox/index.js +14 -3
  77. package/dist/sandbox/index.js.map +1 -1
  78. package/dist/servers/fetch-server.js +2 -2
  79. package/dist/session/base-transport.d.ts +19 -0
  80. package/dist/session/base-transport.js +36 -0
  81. package/dist/session/base-transport.js.map +1 -0
  82. package/dist/session/cli-transport.d.ts +3 -3
  83. package/dist/session/cli-transport.js +7 -4
  84. package/dist/session/cli-transport.js.map +1 -1
  85. package/dist/session/index.js +24 -78
  86. package/dist/session/index.js.map +1 -1
  87. package/dist/session/interaction-log.d.ts +13 -0
  88. package/dist/session/interaction-log.js +28 -0
  89. package/dist/session/interaction-log.js.map +1 -0
  90. package/dist/session/preflight.d.ts +3 -0
  91. package/dist/session/preflight.js +39 -18
  92. package/dist/session/preflight.js.map +1 -1
  93. package/dist/session/types.d.ts +2 -0
  94. package/dist/signal/bot-command.js +5 -0
  95. package/dist/signal/bot-command.js.map +1 -1
  96. package/dist/signal/format.d.ts +21 -1
  97. package/dist/signal/format.js +41 -3
  98. package/dist/signal/format.js.map +1 -1
  99. package/dist/signal/signal-bot-daemon.d.ts +53 -18
  100. package/dist/signal/signal-bot-daemon.js +344 -106
  101. package/dist/signal/signal-bot-daemon.js.map +1 -1
  102. package/dist/signal/signal-config.d.ts +4 -0
  103. package/dist/signal/signal-config.js +2 -0
  104. package/dist/signal/signal-config.js.map +1 -1
  105. package/dist/signal/signal-transport.d.ts +13 -7
  106. package/dist/signal/signal-transport.js +36 -12
  107. package/dist/signal/signal-transport.js.map +1 -1
  108. package/dist/trusted-process/audit-log.d.ts +6 -1
  109. package/dist/trusted-process/audit-log.js +22 -2
  110. package/dist/trusted-process/audit-log.js.map +1 -1
  111. package/dist/trusted-process/audit-redactor.d.ts +25 -0
  112. package/dist/trusted-process/audit-redactor.js +121 -0
  113. package/dist/trusted-process/audit-redactor.js.map +1 -0
  114. package/dist/trusted-process/escalation.d.ts +1 -1
  115. package/dist/trusted-process/escalation.js +6 -1
  116. package/dist/trusted-process/escalation.js.map +1 -1
  117. package/dist/trusted-process/index.d.ts +2 -1
  118. package/dist/trusted-process/index.js +47 -6
  119. package/dist/trusted-process/index.js.map +1 -1
  120. package/dist/trusted-process/mcp-client-manager.js +14 -2
  121. package/dist/trusted-process/mcp-client-manager.js.map +1 -1
  122. package/dist/trusted-process/mcp-error-utils.d.ts +11 -0
  123. package/dist/trusted-process/mcp-error-utils.js +50 -0
  124. package/dist/trusted-process/mcp-error-utils.js.map +1 -0
  125. package/dist/trusted-process/mcp-proxy-server.d.ts +4 -2
  126. package/dist/trusted-process/mcp-proxy-server.js +56 -13
  127. package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
  128. package/dist/trusted-process/path-utils.d.ts +15 -0
  129. package/dist/trusted-process/path-utils.js +38 -0
  130. package/dist/trusted-process/path-utils.js.map +1 -1
  131. package/dist/trusted-process/sandbox-integration.d.ts +5 -0
  132. package/dist/trusted-process/sandbox-integration.js +1 -1
  133. package/dist/trusted-process/sandbox-integration.js.map +1 -1
  134. package/dist/trusted-process/server-context.d.ts +21 -0
  135. package/dist/trusted-process/server-context.js +42 -0
  136. package/dist/trusted-process/server-context.js.map +1 -0
  137. package/dist/types/argument-roles.d.ts +5 -2
  138. package/dist/types/argument-roles.js +25 -2
  139. package/dist/types/argument-roles.js.map +1 -1
  140. package/docker/Dockerfile.claude-code +8 -3
  141. package/docker/entrypoint-claude-code.sh +64 -4
  142. package/package.json +16 -8
  143. package/src/config/constitution-user-base.md +2 -0
  144. package/src/config/generated/compiled-policy.json +199 -72
  145. package/src/config/generated/tool-annotations.json +1018 -36
  146. package/src/config/mcp-servers.json +10 -0
@@ -1,11 +1,11 @@
1
1
  {
2
- "generatedAt": "2026-02-25T03:02:42.079Z",
3
- "constitutionHash": "7e403dc318faee9df1b20a2fb4ae2d1a8007ca9c775a9616cc4037e5a702ae82",
4
- "inputHash": "7d80f5f4ac73f845e1668fdefc297fbf3a9f2bd4bc465240193f805c7f511047",
2
+ "generatedAt": "2026-02-28T01:50:08.635Z",
3
+ "constitutionHash": "8e2f1144f44b0f864e70b161e6abf898bf7ac7540e2aeb6df11abbbbfcb9c34c",
4
+ "inputHash": "97a4159c0149574f357fdac5b8046d3ea51006a4e8a3c5f1a3cf0ab3afdcd6e6",
5
5
  "rules": [
6
6
  {
7
7
  "name": "allow-downloads-read",
8
- "description": "Allow reading files in the Downloads folder.",
8
+ "description": "Allow reading files within the Downloads folder.",
9
9
  "principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
10
10
  "if": {
11
11
  "paths": {
@@ -20,7 +20,7 @@
20
20
  },
21
21
  {
22
22
  "name": "allow-downloads-write",
23
- "description": "Allow writing files in the Downloads folder.",
23
+ "description": "Allow writing files within the Downloads folder.",
24
24
  "principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
25
25
  "if": {
26
26
  "paths": {
@@ -35,7 +35,7 @@
35
35
  },
36
36
  {
37
37
  "name": "allow-downloads-delete",
38
- "description": "Allow deleting files in the Downloads folder.",
38
+ "description": "Allow deleting files within the Downloads folder.",
39
39
  "principle": "The agent is allowed to read, write and delete content in the Downloads folder.",
40
40
  "if": {
41
41
  "paths": {
@@ -50,7 +50,7 @@
50
50
  },
51
51
  {
52
52
  "name": "allow-documents-read",
53
- "description": "Allow reading documents in the user's Documents folder.",
53
+ "description": "Allow reading documents in the Users document folder.",
54
54
  "principle": "The agent is allowed to read documents in the Users document folder.",
55
55
  "if": {
56
56
  "paths": {
@@ -61,12 +61,12 @@
61
61
  }
62
62
  },
63
63
  "then": "allow",
64
- "reason": "Policy explicitly permits reading in the user Documents folder."
64
+ "reason": "Policy explicitly permits reading in the Documents folder."
65
65
  },
66
66
  {
67
67
  "name": "escalate-documents-write",
68
- "description": "Escalate write operations to the user's Documents folder for human approval.",
69
- "principle": "Human oversight: Operations outside the sandbox require explicit human approval.",
68
+ "description": "Escalate write operations targeting the Documents folder since only reads are permitted there.",
69
+ "principle": "Least privilege: The agent may only access resources explicitly permitted by policy.",
70
70
  "if": {
71
71
  "paths": {
72
72
  "roles": [
@@ -76,16 +76,43 @@
76
76
  }
77
77
  },
78
78
  "then": "escalate",
79
- "reason": "Writes to the Documents folder are not explicitly permitted and require human approval."
79
+ "reason": "Only reads are explicitly permitted in the Documents folder; writes require human approval."
80
80
  },
81
81
  {
82
- "name": "allow-git-local-read-ops",
83
- "description": "Allow local read-only git operations (status, log, diff, etc.).",
84
- "principle": "The agent is allowed to perform all local read and write git operations within the sandbox.",
82
+ "name": "escalate-move-with-delete-outside-sandbox",
83
+ "description": "Escalate move operations whose source (delete-path) is outside the Downloads folder, since deletes outside permitted areas require human oversight.",
84
+ "principle": "No destruction: Delete operations outside the sandbox are never permitted unless explicitly granted.",
85
85
  "if": {
86
+ "roles": [
87
+ "delete-path"
88
+ ],
86
89
  "server": [
87
- "git"
90
+ "filesystem"
91
+ ]
92
+ },
93
+ "then": "escalate",
94
+ "reason": "Any delete-path argument outside the sandbox or Downloads folder requires human approval before proceeding."
95
+ },
96
+ {
97
+ "name": "escalate-filesystem-write-outside-permitted",
98
+ "description": "Escalate filesystem writes outside explicitly permitted directories.",
99
+ "principle": "Least privilege: The agent may only access resources explicitly permitted by policy.",
100
+ "if": {
101
+ "roles": [
102
+ "write-path"
88
103
  ],
104
+ "server": [
105
+ "filesystem"
106
+ ]
107
+ },
108
+ "then": "escalate",
109
+ "reason": "Writes outside the sandbox, Downloads, or Documents require human approval."
110
+ },
111
+ {
112
+ "name": "allow-git-local-read",
113
+ "description": "Allow local git read operations (log, status, diff, show, blame, etc.) within any path.",
114
+ "principle": "The agent is allowed to perform all local read and write git operations within the sandbox.",
115
+ "if": {
89
116
  "tool": [
90
117
  "git_status",
91
118
  "git_log",
@@ -99,58 +126,131 @@
99
126
  ]
100
127
  },
101
128
  "then": "allow",
102
- "reason": "Read-only git operations are permitted as local operations."
129
+ "reason": "Read-only git operations are explicitly permitted as local operations."
103
130
  },
104
131
  {
105
- "name": "allow-git-local-write-ops",
106
- "description": "Allow local git write operations (add, commit, branch, checkout, merge, rebase, stash, tag, init, worktree, set_working_dir, cherry_pick, reset, clean).",
132
+ "name": "allow-git-set-working-dir",
133
+ "description": "Allow setting the git working directory.",
134
+ "principle": "The agent is allowed to perform all local read and write git operations within the sandbox.",
135
+ "if": {
136
+ "tool": [
137
+ "git_set_working_dir"
138
+ ]
139
+ },
140
+ "then": "allow",
141
+ "reason": "Setting the working directory is a local read operation with no side effects outside the sandbox."
142
+ },
143
+ {
144
+ "name": "allow-git-local-write-history",
145
+ "description": "Allow local git write-history operations (commit, merge, rebase, reset, checkout, cherry-pick, stash, tag, branch, add, init, worktree) within the sandbox.",
107
146
  "principle": "The agent is allowed to perform all local read and write git operations within the sandbox.",
108
147
  "if": {
109
- "server": [
110
- "git"
111
- ],
112
148
  "tool": [
113
149
  "git_add",
114
150
  "git_commit",
115
- "git_branch",
116
- "git_checkout",
117
151
  "git_merge",
118
152
  "git_rebase",
153
+ "git_reset",
154
+ "git_checkout",
155
+ "git_cherry_pick",
119
156
  "git_stash",
120
157
  "git_tag",
158
+ "git_branch",
121
159
  "git_init",
122
160
  "git_worktree",
123
- "git_set_working_dir",
124
- "git_cherry_pick",
125
- "git_reset",
126
- "git_clean",
127
161
  "git_remote"
128
162
  ]
129
163
  },
130
164
  "then": "allow",
131
- "reason": "Local git write operations are explicitly permitted by policy."
165
+ "reason": "Local git write operations are explicitly permitted within the sandbox."
166
+ },
167
+ {
168
+ "name": "allow-git-clean-within-sandbox",
169
+ "description": "Allow git clean operations (removing untracked files) within the sandbox.",
170
+ "principle": "The agent is allowed to perform all local read and write git operations within the sandbox.",
171
+ "if": {
172
+ "tool": [
173
+ "git_clean"
174
+ ]
175
+ },
176
+ "then": "allow",
177
+ "reason": "Git clean is a local operation permitted within the sandbox; sandbox containment invariant ensures it stays within bounds."
132
178
  },
133
179
  {
134
- "name": "escalate-git-remote-ops",
135
- "description": "Escalate git remote operations (push, pull, fetch, clone) for human approval.",
180
+ "name": "escalate-write-history-outside-sandbox",
181
+ "description": "Escalate git history-modifying operations when the repository path is outside the sandbox.",
182
+ "principle": "Human oversight: Operations outside the sandbox require explicit human approval.",
183
+ "if": {
184
+ "roles": [
185
+ "write-history"
186
+ ]
187
+ },
188
+ "then": "escalate",
189
+ "reason": "Git operations that modify history outside the sandbox require human approval."
190
+ },
191
+ {
192
+ "name": "escalate-delete-history-outside-sandbox",
193
+ "description": "Escalate git ref-deletion operations when the repository path is outside the sandbox.",
194
+ "principle": "Human oversight: Operations outside the sandbox require explicit human approval.",
195
+ "if": {
196
+ "roles": [
197
+ "delete-history"
198
+ ]
199
+ },
200
+ "then": "escalate",
201
+ "reason": "Git operations that delete refs outside the sandbox require human approval."
202
+ },
203
+ {
204
+ "name": "escalate-git-push",
205
+ "description": "Escalate git push operations as they interact with remote repositories.",
206
+ "principle": "The agent must ask for human approval for all other git operations.",
207
+ "if": {
208
+ "tool": [
209
+ "git_push"
210
+ ]
211
+ },
212
+ "then": "escalate",
213
+ "reason": "Git push is a remote operation that requires explicit human approval."
214
+ },
215
+ {
216
+ "name": "escalate-git-pull",
217
+ "description": "Escalate git pull operations as they interact with remote repositories.",
218
+ "principle": "The agent must ask for human approval for all other git operations.",
219
+ "if": {
220
+ "tool": [
221
+ "git_pull"
222
+ ]
223
+ },
224
+ "then": "escalate",
225
+ "reason": "Git pull is a remote operation that requires explicit human approval."
226
+ },
227
+ {
228
+ "name": "escalate-git-fetch",
229
+ "description": "Escalate git fetch operations as they interact with remote repositories.",
230
+ "principle": "The agent must ask for human approval for all other git operations.",
231
+ "if": {
232
+ "tool": [
233
+ "git_fetch"
234
+ ]
235
+ },
236
+ "then": "escalate",
237
+ "reason": "Git fetch is a remote operation that requires explicit human approval."
238
+ },
239
+ {
240
+ "name": "escalate-git-clone",
241
+ "description": "Escalate git clone operations as they interact with remote repositories.",
136
242
  "principle": "The agent must ask for human approval for all other git operations.",
137
243
  "if": {
138
- "server": [
139
- "git"
140
- ],
141
244
  "tool": [
142
- "git_push",
143
- "git_pull",
144
- "git_fetch",
145
245
  "git_clone"
146
246
  ]
147
247
  },
148
248
  "then": "escalate",
149
- "reason": "Remote git operations require explicit human approval per policy."
249
+ "reason": "Git clone is a remote operation that requires explicit human approval."
150
250
  },
151
251
  {
152
252
  "name": "allow-web-search",
153
- "description": "Allow web searches.",
253
+ "description": "Allow web search operations.",
154
254
  "principle": "The agent may perform web searches to find information.",
155
255
  "if": {
156
256
  "tool": [
@@ -158,7 +258,7 @@
158
258
  ]
159
259
  },
160
260
  "then": "allow",
161
- "reason": "Policy explicitly permits web searches."
261
+ "reason": "Web searches are explicitly permitted by policy."
162
262
  },
163
263
  {
164
264
  "name": "allow-fetch-news-sites",
@@ -178,7 +278,7 @@
178
278
  }
179
279
  },
180
280
  "then": "allow",
181
- "reason": "Policy explicitly permits fetching from popular news sites."
281
+ "reason": "Fetching from popular news sites is explicitly permitted."
182
282
  },
183
283
  {
184
284
  "name": "allow-fetch-development-sites",
@@ -198,55 +298,82 @@
198
298
  }
199
299
  },
200
300
  "then": "allow",
201
- "reason": "Policy explicitly permits fetching from popular development sites."
301
+ "reason": "Fetching from popular development sites is explicitly permitted."
202
302
  },
203
303
  {
204
- "name": "escalate-other-fetch",
205
- "description": "Escalate HTTP fetch requests to domains not explicitly permitted.",
206
- "principle": "Human oversight: Operations outside the sandbox require explicit human approval.",
304
+ "name": "escalate-fetch-other-urls",
305
+ "description": "Escalate HTTP fetch requests to domains not on the approved lists.",
306
+ "principle": "Least privilege: The agent may only access resources explicitly permitted by policy.",
207
307
  "if": {
208
308
  "tool": [
209
309
  "http_fetch"
210
310
  ]
211
311
  },
212
312
  "then": "escalate",
213
- "reason": "Fetching from domains not explicitly allowed requires human approval."
214
- },
215
- {
216
- "name": "escalate-move-with-delete-outside-permitted",
217
- "description": "Escalate move operations where the source is outside permitted areas.",
218
- "principle": "No destruction: Delete operations outside the sandbox are never permitted, unless an explicit exception is granted by the user guidance.",
219
- "if": {
220
- "roles": [
221
- "delete-path"
222
- ]
223
- },
224
- "then": "escalate",
225
- "reason": "Move/delete operations with sources outside sandbox or explicitly permitted directories require human approval."
313
+ "reason": "Fetching from non-approved domains requires human approval."
226
314
  },
227
315
  {
228
- "name": "escalate-write-outside-permitted",
229
- "description": "Escalate write operations to areas not explicitly permitted.",
230
- "principle": "Human oversight: Operations outside the sandbox require explicit human approval.",
316
+ "name": "allow-github-read",
317
+ "description": "Allow read-only GitHub operations without human approval.",
318
+ "principle": "The agent may freely list, search, and read GitHub resources without human approval.",
231
319
  "if": {
232
- "roles": [
233
- "write-path"
320
+ "tool": [
321
+ "get_commit",
322
+ "get_file_contents",
323
+ "get_label",
324
+ "get_latest_release",
325
+ "get_me",
326
+ "get_release_by_tag",
327
+ "get_tag",
328
+ "get_team_members",
329
+ "get_teams",
330
+ "issue_read",
331
+ "list_branches",
332
+ "list_commits",
333
+ "list_issue_types",
334
+ "list_issues",
335
+ "list_pull_requests",
336
+ "list_releases",
337
+ "list_tags",
338
+ "pull_request_read",
339
+ "search_code",
340
+ "search_issues",
341
+ "search_pull_requests",
342
+ "search_repositories",
343
+ "search_users"
234
344
  ]
235
345
  },
236
- "then": "escalate",
237
- "reason": "Writes to areas not explicitly permitted require human approval."
346
+ "then": "allow",
347
+ "reason": "Read-only GitHub operations are explicitly permitted without human approval."
238
348
  },
239
349
  {
240
- "name": "escalate-write-history-outside-sandbox",
241
- "description": "Escalate git history-modifying operations outside the sandbox.",
242
- "principle": "Human oversight: Operations outside the sandbox require explicit human approval.",
350
+ "name": "escalate-github-write",
351
+ "description": "Escalate GitHub mutation operations that create, update, close, or delete resources.",
352
+ "principle": "Creating, updating, closing, or deleting GitHub resources requires human approval.",
243
353
  "if": {
244
- "roles": [
245
- "write-history"
354
+ "tool": [
355
+ "add_comment_to_pending_review",
356
+ "add_issue_comment",
357
+ "add_reply_to_pull_request_comment",
358
+ "assign_copilot_to_issue",
359
+ "create_branch",
360
+ "create_or_update_file",
361
+ "create_pull_request",
362
+ "create_repository",
363
+ "delete_file",
364
+ "fork_repository",
365
+ "issue_write",
366
+ "merge_pull_request",
367
+ "pull_request_review_write",
368
+ "push_files",
369
+ "request_copilot_review",
370
+ "sub_issue_write",
371
+ "update_pull_request",
372
+ "update_pull_request_branch"
246
373
  ]
247
374
  },
248
375
  "then": "escalate",
249
- "reason": "Git operations that modify history outside the sandbox require human approval."
376
+ "reason": "GitHub write/mutation operations require explicit human approval per policy."
250
377
  }
251
378
  ],
252
379
  "listDefinitions": [
@@ -254,14 +381,14 @@
254
381
  "name": "popular-news-sites",
255
382
  "type": "domains",
256
383
  "principle": "The agent may fetch web content from popular news sites.",
257
- "generationPrompt": "List the domains of approximately 30 popular and well-known news websites from around the world, including major national and international outlets such as newspapers, broadcasters, and digital news publications.",
384
+ "generationPrompt": "List the domains of approximately 50 popular and widely-recognized news websites, including major international outlets, national newspapers, wire services, and digital-native news organizations (e.g., bbc.com, nytimes.com, reuters.com, theguardian.com, apnews.com, cnn.com, washingtonpost.com, etc.).",
258
385
  "requiresMcp": false
259
386
  },
260
387
  {
261
388
  "name": "popular-development-sites",
262
389
  "type": "domains",
263
390
  "principle": "The agent may fetch web content from popular development sites.",
264
- "generationPrompt": "List the domains of approximately 30 popular software development websites and resources, including code hosting platforms, developer documentation sites, package registries, programming Q&A sites, and developer blogs.",
391
+ "generationPrompt": "List the domains of approximately 50 popular software development websites and resources, including documentation hosts, package registries, developer communities, code hosting platforms, and technical reference sites (e.g., github.com, stackoverflow.com, developer.mozilla.org, docs.python.org, npmjs.com, pypi.org, rust-lang.org, golang.org, docs.microsoft.com, kubernetes.io, etc.).",
265
392
  "requiresMcp": false
266
393
  }
267
394
  ]