traceforge-toolkit 0.1.0__py3-none-any.whl

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 (205) hide show
  1. traceforge/__init__.py +72 -0
  2. traceforge/__main__.py +5 -0
  3. traceforge/_generated.py +254 -0
  4. traceforge/adapters/__init__.py +12 -0
  5. traceforge/adapters/base.py +82 -0
  6. traceforge/adapters/genai_otel.py +164 -0
  7. traceforge/adapters/mapped_json.py +297 -0
  8. traceforge/adapters/otel.py +220 -0
  9. traceforge/boundary/__init__.py +46 -0
  10. traceforge/boundary/data/boundary-model.joblib +0 -0
  11. traceforge/boundary/decode.py +87 -0
  12. traceforge/boundary/features.py +137 -0
  13. traceforge/boundary/inference.py +267 -0
  14. traceforge/boundary/inferencer.py +146 -0
  15. traceforge/classify/__init__.py +95 -0
  16. traceforge/classify/cmd.py +109 -0
  17. traceforge/classify/coding.py +213 -0
  18. traceforge/classify/config.py +554 -0
  19. traceforge/classify/core.py +266 -0
  20. traceforge/classify/data/binary_info.yaml +358 -0
  21. traceforge/classify/data/canonical_tools.yaml +251 -0
  22. traceforge/classify/data/effect_overrides.yaml +480 -0
  23. traceforge/classify/data/mcp_profiles.yaml +711 -0
  24. traceforge/classify/data/recommendation_rules.yaml +111 -0
  25. traceforge/classify/data/risk.yaml +534 -0
  26. traceforge/classify/data/shell_defaults.yaml +95 -0
  27. traceforge/classify/data/shell_rules.yaml +1192 -0
  28. traceforge/classify/data/tool_classifications.yaml +215 -0
  29. traceforge/classify/data/verb_inference.yaml +218 -0
  30. traceforge/classify/mcp.py +181 -0
  31. traceforge/classify/phases.py +75 -0
  32. traceforge/classify/powershell.py +93 -0
  33. traceforge/classify/registry.py +138 -0
  34. traceforge/classify/risk.py +553 -0
  35. traceforge/classify/rules.py +215 -0
  36. traceforge/classify/schema.yaml +282 -0
  37. traceforge/classify/shell.py +503 -0
  38. traceforge/classify/tools.py +91 -0
  39. traceforge/classify/workflow.py +32 -0
  40. traceforge/cli/__init__.py +42 -0
  41. traceforge/cli/config_cmd.py +130 -0
  42. traceforge/cli/detect.py +46 -0
  43. traceforge/cli/download_cmd.py +74 -0
  44. traceforge/cli/factory.py +60 -0
  45. traceforge/cli/gate_cmd.py +30 -0
  46. traceforge/cli/init_cmd.py +86 -0
  47. traceforge/cli/replay.py +130 -0
  48. traceforge/cli/runner.py +181 -0
  49. traceforge/cli/score.py +217 -0
  50. traceforge/cli/status.py +65 -0
  51. traceforge/cli/watch.py +297 -0
  52. traceforge/config/__init__.py +80 -0
  53. traceforge/config/defaults.py +149 -0
  54. traceforge/config/loader.py +239 -0
  55. traceforge/config/mappings.py +104 -0
  56. traceforge/config/models.py +579 -0
  57. traceforge/enricher.py +576 -0
  58. traceforge/formatting/__init__.py +12 -0
  59. traceforge/formatting/budget.py +92 -0
  60. traceforge/formatting/density.py +154 -0
  61. traceforge/gate/__init__.py +17 -0
  62. traceforge/gate/client.py +145 -0
  63. traceforge/gate/external.py +305 -0
  64. traceforge/gate/registry.py +108 -0
  65. traceforge/gate/server.py +174 -0
  66. traceforge/gates/__init__.py +8 -0
  67. traceforge/gates/pii.py +352 -0
  68. traceforge/gates/pii_patterns.yaml +228 -0
  69. traceforge/governance/__init__.py +121 -0
  70. traceforge/governance/assessor.py +441 -0
  71. traceforge/governance/budget.py +59 -0
  72. traceforge/governance/canonical.py +56 -0
  73. traceforge/governance/codec.py +414 -0
  74. traceforge/governance/context.py +249 -0
  75. traceforge/governance/drift.py +196 -0
  76. traceforge/governance/emitter.py +234 -0
  77. traceforge/governance/envelope.py +138 -0
  78. traceforge/governance/ifc.py +364 -0
  79. traceforge/governance/integrity.py +162 -0
  80. traceforge/governance/labeler.py +250 -0
  81. traceforge/governance/mcp_drift.py +328 -0
  82. traceforge/governance/monitor.py +539 -0
  83. traceforge/governance/observer.py +276 -0
  84. traceforge/governance/persistence.py +401 -0
  85. traceforge/governance/phase1.py +77 -0
  86. traceforge/governance/pii.py +276 -0
  87. traceforge/governance/pipeline.py +840 -0
  88. traceforge/governance/registry.py +110 -0
  89. traceforge/governance/results.py +183 -0
  90. traceforge/governance/risk_wrapper.py +113 -0
  91. traceforge/governance/rules.py +368 -0
  92. traceforge/governance/scorer.py +262 -0
  93. traceforge/governance/shield.py +318 -0
  94. traceforge/governance/state.py +466 -0
  95. traceforge/governance/types.py +176 -0
  96. traceforge/mappings/__init__.py +1 -0
  97. traceforge/mappings/aider.yaml +216 -0
  98. traceforge/mappings/aider_markdown.yaml +113 -0
  99. traceforge/mappings/amazonq.yaml +56 -0
  100. traceforge/mappings/antigravity.yaml +88 -0
  101. traceforge/mappings/claude.yaml +93 -0
  102. traceforge/mappings/cline.yaml +286 -0
  103. traceforge/mappings/codex.yaml +158 -0
  104. traceforge/mappings/continue_dev.yaml +57 -0
  105. traceforge/mappings/copilot.yaml +266 -0
  106. traceforge/mappings/copilot_markdown.yaml +72 -0
  107. traceforge/mappings/copilot_vscode.yaml +181 -0
  108. traceforge/mappings/crewai.yaml +592 -0
  109. traceforge/mappings/goose.yaml +128 -0
  110. traceforge/mappings/langgraph.yaml +165 -0
  111. traceforge/mappings/maf.yaml +90 -0
  112. traceforge/mappings/maf_transcript.yaml +99 -0
  113. traceforge/mappings/openai_agents.yaml +144 -0
  114. traceforge/mappings/opencode.yaml +473 -0
  115. traceforge/mappings/openhands.yaml +320 -0
  116. traceforge/mappings/pydantic_ai.yaml +183 -0
  117. traceforge/mappings/smolagents.yaml +89 -0
  118. traceforge/mappings/sweagent.yaml +82 -0
  119. traceforge/migrations/__init__.py +1 -0
  120. traceforge/migrations/env.py +60 -0
  121. traceforge/migrations/models.py +145 -0
  122. traceforge/migrations/runner.py +44 -0
  123. traceforge/migrations/script.py.mako +25 -0
  124. traceforge/migrations/versions/0001_initial.py +176 -0
  125. traceforge/migrations/versions/__init__.py +4 -0
  126. traceforge/models.py +29 -0
  127. traceforge/parsers/__init__.py +21 -0
  128. traceforge/parsers/aider.py +416 -0
  129. traceforge/parsers/base.py +226 -0
  130. traceforge/parsers/copilot.py +314 -0
  131. traceforge/phase/__init__.py +50 -0
  132. traceforge/phase/data/phase-model.joblib +0 -0
  133. traceforge/phase/data/potion-base-8M/README.md +99 -0
  134. traceforge/phase/data/potion-base-8M/config.json +13 -0
  135. traceforge/phase/data/potion-base-8M/model.safetensors +0 -0
  136. traceforge/phase/data/potion-base-8M/modules.json +14 -0
  137. traceforge/phase/data/potion-base-8M/tokenizer.json +1 -0
  138. traceforge/phase/event_rows.py +107 -0
  139. traceforge/phase/features.py +468 -0
  140. traceforge/phase/inference.py +279 -0
  141. traceforge/phase/inferencer.py +171 -0
  142. traceforge/phase/segmentation.py +258 -0
  143. traceforge/pipeline.py +891 -0
  144. traceforge/preprocessors/__init__.py +34 -0
  145. traceforge/preprocessors/amazonq.py +224 -0
  146. traceforge/preprocessors/antigravity.py +116 -0
  147. traceforge/preprocessors/claude.py +95 -0
  148. traceforge/preprocessors/cline.py +36 -0
  149. traceforge/preprocessors/codex.py +311 -0
  150. traceforge/preprocessors/continue_dev.py +119 -0
  151. traceforge/preprocessors/copilot_vscode.py +171 -0
  152. traceforge/preprocessors/goose.py +156 -0
  153. traceforge/preprocessors/maf_transcript.py +84 -0
  154. traceforge/preprocessors/openai_agents.py +86 -0
  155. traceforge/preprocessors/opencode.py +85 -0
  156. traceforge/preprocessors/openhands.py +36 -0
  157. traceforge/preprocessors/pydantic_ai.py +62 -0
  158. traceforge/preprocessors/registry.py +24 -0
  159. traceforge/preprocessors/smolagents.py +90 -0
  160. traceforge/py.typed +0 -0
  161. traceforge/sdk/__init__.py +59 -0
  162. traceforge/sdk/gate_policy.py +63 -0
  163. traceforge/sdk/gate_types.py +140 -0
  164. traceforge/sdk/pipeline.py +265 -0
  165. traceforge/sdk/verdict.py +81 -0
  166. traceforge/sinks/__init__.py +23 -0
  167. traceforge/sinks/base.py +95 -0
  168. traceforge/sinks/callback.py +132 -0
  169. traceforge/sinks/console.py +112 -0
  170. traceforge/sinks/factory.py +94 -0
  171. traceforge/sinks/jsonl.py +125 -0
  172. traceforge/sinks/otel_exporter.py +212 -0
  173. traceforge/sinks/parquet.py +260 -0
  174. traceforge/sinks/s3.py +206 -0
  175. traceforge/sinks/sqlite_output.py +234 -0
  176. traceforge/sinks/webhook.py +136 -0
  177. traceforge/sources/__init__.py +18 -0
  178. traceforge/sources/auto_detect.py +173 -0
  179. traceforge/sources/base.py +45 -0
  180. traceforge/sources/file_poll.py +136 -0
  181. traceforge/sources/file_watch.py +221 -0
  182. traceforge/sources/http_poll.py +141 -0
  183. traceforge/sources/replay.py +63 -0
  184. traceforge/sources/sqlite.py +187 -0
  185. traceforge/sources/sse.py +198 -0
  186. traceforge/telemetry/__init__.py +192 -0
  187. traceforge/title/__init__.py +23 -0
  188. traceforge/title/_resolve.py +79 -0
  189. traceforge/title/context.py +295 -0
  190. traceforge/title/data/boilerplate_files.json +14 -0
  191. traceforge/title/heuristics.py +429 -0
  192. traceforge/title/hygiene.py +90 -0
  193. traceforge/title/inference.py +314 -0
  194. traceforge/title/inferencer.py +477 -0
  195. traceforge/title/naming.py +398 -0
  196. traceforge/trace.py +291 -0
  197. traceforge/tracking/__init__.py +30 -0
  198. traceforge/tracking/models.py +115 -0
  199. traceforge/tracking/phase_tracker.py +288 -0
  200. traceforge/types.py +315 -0
  201. traceforge_toolkit-0.1.0.dist-info/METADATA +188 -0
  202. traceforge_toolkit-0.1.0.dist-info/RECORD +205 -0
  203. traceforge_toolkit-0.1.0.dist-info/WHEEL +4 -0
  204. traceforge_toolkit-0.1.0.dist-info/entry_points.txt +2 -0
  205. traceforge_toolkit-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,711 @@
1
+ # MCP server profiles — classification rules for known MCP servers.
2
+ # Add profiles here for custom MCP servers your tools use.
3
+
4
+ mcp_profiles:
5
+ - id: github
6
+ namespace_aliases: [github, gh]
7
+ mechanism: network.http
8
+ role: [retriever.api_client, persistence.version_control]
9
+ scope: [state.repository]
10
+ capability: [network_outbound]
11
+ tool_overrides:
12
+ delete_file:
13
+ effect: destructive
14
+ discussion_comment_write:
15
+ effect: mutating
16
+ label_write:
17
+ effect: mutating
18
+ projects_write:
19
+ effect: mutating
20
+ get_code_scanning_alert:
21
+ scope: [state.repository, artifact.source_code]
22
+ list_code_scanning_alerts:
23
+ scope: [state.repository, artifact.source_code]
24
+ get_dependabot_alert:
25
+ scope: [configuration.dependency]
26
+ list_dependabot_alerts:
27
+ scope: [configuration.dependency]
28
+ actions_run_trigger:
29
+ role: [orchestrator.ci_cd]
30
+ scope: [configuration.ci_cd]
31
+ actions_list:
32
+ role: [orchestrator.ci_cd]
33
+ scope: [configuration.ci_cd]
34
+ actions_get:
35
+ role: [orchestrator.ci_cd]
36
+ scope: [configuration.ci_cd]
37
+ get_job_logs:
38
+ role: [orchestrator.ci_cd]
39
+ scope: [configuration.ci_cd]
40
+ assign_copilot_to_issue:
41
+ mechanism: delegation.agent
42
+ request_copilot_review:
43
+ mechanism: delegation.agent
44
+ create_pull_request_with_copilot:
45
+ mechanism: delegation.agent
46
+
47
+ - id: gitlab
48
+ namespace_aliases: [gitlab]
49
+ mechanism: network.http
50
+ role: [retriever.api_client, persistence.version_control]
51
+ scope: [state.repository]
52
+ capability: [network_outbound]
53
+
54
+ - id: git_local
55
+ namespace_aliases: [git, mcp_server_git]
56
+ mechanism: process.shell
57
+ role: [persistence.version_control]
58
+ scope: [state.repository]
59
+ capability: [filesystem_write]
60
+
61
+ - id: filesystem
62
+ namespace_aliases: [filesystem, fs, file]
63
+ mechanism: filesystem
64
+ role: [retriever.file_browser]
65
+ scope: [artifact.source_code]
66
+ capability: [filesystem_read]
67
+ tool_overrides:
68
+ write_file:
69
+ effect: mutating
70
+ role: [modifier.file_editor]
71
+ capability: [filesystem_write]
72
+ edit_file:
73
+ effect: mutating
74
+ role: [modifier.file_editor]
75
+ capability: [filesystem_write]
76
+ create_directory:
77
+ effect: mutating
78
+ capability: [filesystem_write]
79
+ move_file:
80
+ effect: mutating
81
+ role: [modifier.file_editor]
82
+ capability: [filesystem_write]
83
+
84
+ - id: database_generic
85
+ namespace_aliases: [database, db, sql]
86
+ mechanism: database.sql
87
+ role: [persistence.database]
88
+ capability: [network_outbound]
89
+
90
+ - id: postgres
91
+ namespace_aliases: [postgres, postgresql, pg]
92
+ mechanism: database.sql
93
+ role: [persistence.database]
94
+ default_effect: read_only
95
+ capability: [network_outbound]
96
+
97
+ - id: sqlite
98
+ namespace_aliases: [sqlite]
99
+ mechanism: database.sql
100
+ role: [persistence.database]
101
+ capability: [filesystem_read]
102
+ tool_overrides:
103
+ write_query:
104
+ effect: mutating
105
+ capability: [filesystem_write]
106
+ create_table:
107
+ effect: mutating
108
+ capability: [filesystem_write]
109
+
110
+ - id: mysql
111
+ namespace_aliases: [mysql]
112
+ mechanism: database.sql
113
+ role: [persistence.database]
114
+ default_effect: read_only
115
+ capability: [network_outbound]
116
+
117
+ - id: mongodb
118
+ namespace_aliases: [mongodb, mongo]
119
+ mechanism: database.nosql
120
+ role: [persistence.database]
121
+ capability: [network_outbound]
122
+ tool_overrides:
123
+ drop_collection:
124
+ effect: destructive
125
+
126
+ - id: redis
127
+ namespace_aliases: [redis]
128
+ mechanism: database.nosql
129
+ role: [persistence.cache]
130
+ capability: [network_outbound]
131
+
132
+ - id: playwright
133
+ namespace_aliases: [playwright, browser]
134
+ mechanism: network.http
135
+ role: [retriever.web_scraper]
136
+ capability: [network_outbound]
137
+ tool_overrides:
138
+ browser_snapshot:
139
+ effect: read_only
140
+ browser_take_screenshot:
141
+ effect: read_only
142
+ browser_console_messages:
143
+ effect: read_only
144
+ browser_network_requests:
145
+ effect: read_only
146
+ browser_network_request:
147
+ effect: read_only
148
+ browser_cookie_list:
149
+ effect: read_only
150
+ browser_cookie_get:
151
+ effect: read_only
152
+ browser_route_list:
153
+ effect: read_only
154
+ browser_get_config:
155
+ effect: read_only
156
+ browser_evaluate:
157
+ effect: mutating
158
+ browser_run_code_unsafe:
159
+ effect: destructive
160
+ browser_cookie_delete:
161
+ effect: destructive
162
+ browser_cookie_clear:
163
+ effect: destructive
164
+ browser_localstorage_clear:
165
+ effect: destructive
166
+
167
+ - id: puppeteer
168
+ namespace_aliases: [puppeteer]
169
+ mechanism: network.http
170
+ role: [retriever.web_scraper]
171
+ capability: [network_outbound]
172
+ tool_overrides:
173
+ puppeteer_screenshot:
174
+ effect: read_only
175
+ puppeteer_evaluate:
176
+ effect: mutating
177
+
178
+ - id: brave_search
179
+ namespace_aliases: [brave, brave_search]
180
+ mechanism: network.http
181
+ role: [retriever.search_index]
182
+ default_effect: read_only
183
+ action: [retrieve.search]
184
+ capability: [network_outbound]
185
+
186
+ - id: fetch
187
+ namespace_aliases: [fetch]
188
+ mechanism: network.http
189
+ role: [retriever.web_scraper]
190
+ default_effect: read_only
191
+ action: [retrieve.read]
192
+ capability: [network_outbound]
193
+
194
+ - id: exa
195
+ namespace_aliases: [exa]
196
+ mechanism: network.http
197
+ role: [retriever.search_index]
198
+ default_effect: read_only
199
+ action: [retrieve.search]
200
+ capability: [network_outbound]
201
+
202
+ - id: tavily
203
+ namespace_aliases: [tavily]
204
+ mechanism: network.http
205
+ role: [retriever.search_index]
206
+ default_effect: read_only
207
+ action: [retrieve.search]
208
+ capability: [network_outbound]
209
+
210
+ - id: slack
211
+ namespace_aliases: [slack]
212
+ mechanism: network.http
213
+ role: [retriever.api_client]
214
+ capability: [network_outbound]
215
+
216
+ - id: discord
217
+ namespace_aliases: [discord]
218
+ mechanism: network.http
219
+ role: [retriever.api_client]
220
+ capability: [network_outbound]
221
+
222
+ - id: memory
223
+ namespace_aliases: [memory, knowledge]
224
+ mechanism: database
225
+ role: [persistence.database]
226
+ tool_overrides:
227
+ delete_entities:
228
+ effect: destructive
229
+ delete_relations:
230
+ effect: destructive
231
+ delete_observations:
232
+ effect: destructive
233
+
234
+ - id: thinking
235
+ namespace_aliases: [sequentialthinking, thinking]
236
+ mechanism: communication.system
237
+ role: [communicator.system_reporter]
238
+ default_effect: read_only
239
+
240
+ - id: sentry
241
+ namespace_aliases: [sentry]
242
+ mechanism: network.http
243
+ role: [retriever.api_client]
244
+ default_effect: read_only
245
+ capability: [network_outbound]
246
+
247
+ - id: datadog
248
+ namespace_aliases: [datadog]
249
+ mechanism: network.http
250
+ role: [retriever.api_client]
251
+ default_effect: read_only
252
+ capability: [network_outbound]
253
+
254
+ - id: aws
255
+ namespace_aliases: [aws, awslabs]
256
+ mechanism: network.http
257
+ role: [retriever.api_client]
258
+ scope: [configuration.infrastructure]
259
+ capability: [network_outbound, uses_credentials]
260
+ tool_overrides:
261
+ # Destructive operations
262
+ delete_stack:
263
+ effect: destructive
264
+ terminate_instances:
265
+ effect: destructive
266
+ delete_bucket:
267
+ effect: destructive
268
+ delete_function:
269
+ effect: destructive
270
+ delete_table:
271
+ effect: destructive
272
+ delete_cluster:
273
+ effect: destructive
274
+ delete_db_instance:
275
+ effect: destructive
276
+ delete_secret:
277
+ effect: destructive
278
+ delete_queue:
279
+ effect: destructive
280
+ remove_targets:
281
+ effect: destructive
282
+ # Mutating operations
283
+ create_stack:
284
+ effect: mutating
285
+ role: [orchestrator.task_runner]
286
+ update_stack:
287
+ effect: mutating
288
+ invoke_function:
289
+ effect: mutating
290
+ run_task:
291
+ effect: mutating
292
+ start_execution:
293
+ effect: mutating
294
+ put_item:
295
+ effect: mutating
296
+ # Read-only operations
297
+ describe_instances:
298
+ effect: read_only
299
+ list_buckets:
300
+ effect: read_only
301
+ get_caller_identity:
302
+ effect: read_only
303
+ describe_stacks:
304
+ effect: read_only
305
+ list_functions:
306
+ effect: read_only
307
+
308
+ - id: azure
309
+ namespace_aliases: [azure]
310
+ mechanism: network.http
311
+ role: [retriever.api_client]
312
+ scope: [configuration.infrastructure]
313
+ capability: [network_outbound, uses_credentials]
314
+ tool_overrides:
315
+ # Destructive operations
316
+ delete_resource_group:
317
+ effect: destructive
318
+ delete_vm:
319
+ effect: destructive
320
+ delete_webapp:
321
+ effect: destructive
322
+ delete_aks_cluster:
323
+ effect: destructive
324
+ purge_keyvault:
325
+ effect: destructive
326
+ delete_storage_account:
327
+ effect: destructive
328
+ delete_sql_server:
329
+ effect: destructive
330
+ delete_cosmosdb_account:
331
+ effect: destructive
332
+ # Mutating operations
333
+ create_resource_group:
334
+ effect: mutating
335
+ create_vm:
336
+ effect: mutating
337
+ deploy_arm_template:
338
+ effect: mutating
339
+ role: [orchestrator.task_runner]
340
+ create_aks_cluster:
341
+ effect: mutating
342
+ # Read-only operations
343
+ list_resource_groups:
344
+ effect: read_only
345
+ show_vm:
346
+ effect: read_only
347
+ list_storage_accounts:
348
+ effect: read_only
349
+
350
+ - id: gcp
351
+ namespace_aliases: [gcp, gcloud, google_cloud]
352
+ mechanism: network.http
353
+ role: [retriever.api_client]
354
+ scope: [configuration.infrastructure]
355
+ capability: [network_outbound, uses_credentials]
356
+ tool_overrides:
357
+ # Destructive operations
358
+ delete_instance:
359
+ effect: destructive
360
+ delete_cluster:
361
+ effect: destructive
362
+ delete_function:
363
+ effect: destructive
364
+ delete_service:
365
+ effect: destructive
366
+ delete_bucket:
367
+ effect: destructive
368
+ delete_topic:
369
+ effect: destructive
370
+ delete_subscription:
371
+ effect: destructive
372
+ delete_secret:
373
+ effect: destructive
374
+ # Mutating operations
375
+ create_instance:
376
+ effect: mutating
377
+ create_cluster:
378
+ effect: mutating
379
+ deploy_service:
380
+ effect: mutating
381
+ role: [orchestrator.task_runner]
382
+ set_iam_policy:
383
+ effect: mutating
384
+ add_iam_policy_binding:
385
+ effect: mutating
386
+ # Read-only operations
387
+ list_instances:
388
+ effect: read_only
389
+ describe_instance:
390
+ effect: read_only
391
+ get_iam_policy:
392
+ effect: read_only
393
+ list_clusters:
394
+ effect: read_only
395
+
396
+ - id: docker
397
+ namespace_aliases: [docker]
398
+ mechanism: process
399
+ role: [executor.container_runtime]
400
+ scope: [artifact.container_image]
401
+ capability: [subprocess]
402
+ tool_overrides:
403
+ docker_rm:
404
+ effect: destructive
405
+ docker_rmi:
406
+ effect: destructive
407
+ docker_volume_rm:
408
+ effect: destructive
409
+ docker_compose_down:
410
+ effect: destructive
411
+ docker_push:
412
+ mechanism: network.http
413
+ capability: [network_outbound]
414
+
415
+ - id: kubernetes
416
+ namespace_aliases: [kubernetes, k8s, kubectl]
417
+ mechanism: network.http
418
+ role: [executor.container_runtime]
419
+ scope: [state.deployment]
420
+ capability: [network_outbound, uses_credentials]
421
+ tool_overrides:
422
+ delete_pod:
423
+ effect: destructive
424
+ delete_deployment:
425
+ effect: destructive
426
+ delete_namespace:
427
+ effect: destructive
428
+ exec_in_pod:
429
+ mechanism: process
430
+ capability: [subprocess]
431
+
432
+ - id: notion
433
+ namespace_aliases: [notion]
434
+ mechanism: network.http
435
+ role: [retriever.api_client]
436
+ scope: [artifact.documentation]
437
+ capability: [network_outbound]
438
+ tool_overrides:
439
+ notion_delete_block:
440
+ effect: destructive
441
+
442
+ - id: gdrive
443
+ namespace_aliases: [gdrive, google_drive]
444
+ mechanism: network.http
445
+ role: [retriever.api_client]
446
+ scope: [artifact.documentation]
447
+ capability: [network_outbound]
448
+
449
+ - id: confluence
450
+ namespace_aliases: [confluence]
451
+ mechanism: network.http
452
+ role: [retriever.api_client]
453
+ scope: [artifact.documentation]
454
+ capability: [network_outbound]
455
+
456
+ - id: circleci
457
+ namespace_aliases: [circleci]
458
+ mechanism: network.http
459
+ role: [orchestrator.ci_cd]
460
+ scope: [configuration.ci_cd]
461
+ capability: [network_outbound]
462
+
463
+ - id: npm
464
+ namespace_aliases: [npm, npmjs]
465
+ mechanism: network.http
466
+ role: [retriever.api_client]
467
+ scope: [configuration.dependency]
468
+ default_effect: read_only
469
+ action: [retrieve.read]
470
+ capability: [network_outbound]
471
+
472
+ - id: pypi
473
+ namespace_aliases: [pypi]
474
+ mechanism: network.http
475
+ role: [retriever.api_client]
476
+ scope: [configuration.dependency]
477
+ default_effect: read_only
478
+ action: [retrieve.read]
479
+ capability: [network_outbound]
480
+
481
+ - id: semgrep
482
+ namespace_aliases: [semgrep]
483
+ mechanism: process
484
+ role: [validator.security_scanner]
485
+ default_effect: read_only
486
+ action: [validate.security_scan]
487
+ scope: [artifact.source_code]
488
+ capability: [subprocess]
489
+
490
+ - id: maps
491
+ namespace_aliases: [maps, google_maps]
492
+ mechanism: network.http
493
+ role: [retriever.api_client]
494
+ default_effect: read_only
495
+ action: [retrieve.read]
496
+ capability: [network_outbound]
497
+
498
+ - id: time
499
+ namespace_aliases: [time]
500
+ mechanism: communication.system
501
+ role: [communicator.system_reporter]
502
+ default_effect: read_only
503
+ action: [retrieve.read]
504
+
505
+ # ─── Code intelligence / agent supervision ─────────────────────────────
506
+
507
+ - id: coderecon
508
+ namespace_aliases: [coderecon, code_recon]
509
+ mechanism: process
510
+ role: [retriever.search_index]
511
+ default_effect: read_only
512
+ scope: [artifact.source_code]
513
+ capability: [subprocess]
514
+ tool_overrides:
515
+ refactor_commit:
516
+ effect: mutating
517
+ role: [modifier.file_editor]
518
+ capability: [filesystem_write]
519
+ checkpoint:
520
+ effect: mutating
521
+ role: [persistence.version_control]
522
+ capability: [filesystem_write, subprocess]
523
+ refactor_rename:
524
+ effect: read_only
525
+ refactor_move:
526
+ effect: read_only
527
+ blast_radius:
528
+ scope: [artifact.test_code]
529
+ covering_tests:
530
+ scope: [artifact.test_code]
531
+ recon_line_coverage:
532
+ scope: [artifact.test_code]
533
+
534
+ - id: codeplane
535
+ namespace_aliases: [codeplane, cpl]
536
+ mechanism: network.http
537
+ role: [orchestrator.task_runner]
538
+ scope: [artifact.source_code]
539
+ capability: [network_outbound, uses_credentials]
540
+ tool_overrides:
541
+ codeplane_job:
542
+ role: [orchestrator.task_runner]
543
+ codeplane_approval:
544
+ effect: mutating
545
+ codeplane_workspace:
546
+ effect: read_only
547
+ role: [retriever.file_browser]
548
+ codeplane_artifact:
549
+ effect: read_only
550
+ role: [retriever.file_browser]
551
+ codeplane_repo:
552
+ role: [orchestrator.task_runner]
553
+ codeplane_settings:
554
+ effect: mutating
555
+ codeplane_health:
556
+ effect: read_only
557
+
558
+ # ─── Project management / issue tracking ────────────────────────────────
559
+
560
+ - id: linear
561
+ namespace_aliases: [linear, mcp_server_linear]
562
+ mechanism: network.http
563
+ role: [retriever.api_client]
564
+ scope: [artifact.documentation]
565
+ capability: [network_outbound, uses_credentials]
566
+ tool_overrides:
567
+ create_issue:
568
+ effect: mutating
569
+ update_issue:
570
+ effect: mutating
571
+ delete_issue:
572
+ effect: destructive
573
+
574
+ - id: jira
575
+ namespace_aliases: [jira, atlassian]
576
+ mechanism: network.http
577
+ role: [retriever.api_client]
578
+ scope: [artifact.documentation]
579
+ capability: [network_outbound, uses_credentials]
580
+ tool_overrides:
581
+ create_issue:
582
+ effect: mutating
583
+ transition_issue:
584
+ effect: mutating
585
+ delete_issue:
586
+ effect: destructive
587
+
588
+ - id: todoist
589
+ namespace_aliases: [todoist]
590
+ mechanism: network.http
591
+ role: [retriever.api_client]
592
+ default_effect: read_only
593
+ capability: [network_outbound, uses_credentials]
594
+ tool_overrides:
595
+ create_task:
596
+ effect: mutating
597
+ complete_task:
598
+ effect: mutating
599
+ delete_task:
600
+ effect: destructive
601
+
602
+ # ─── Design tools ──────────────────────────────────────────────────────
603
+
604
+ - id: figma
605
+ namespace_aliases: [figma, cursor_talk_to_figma]
606
+ mechanism: network.http
607
+ role: [retriever.api_client]
608
+ scope: [artifact.documentation]
609
+ default_effect: read_only
610
+ capability: [network_outbound, uses_credentials]
611
+ tool_overrides:
612
+ modify_layers:
613
+ effect: mutating
614
+ delete_node:
615
+ effect: destructive
616
+
617
+ # ─── Payments / SaaS APIs ──────────────────────────────────────────────
618
+
619
+ - id: stripe
620
+ namespace_aliases: [stripe]
621
+ mechanism: network.http
622
+ role: [retriever.api_client]
623
+ capability: [network_outbound, uses_credentials]
624
+ tool_overrides:
625
+ create_charge:
626
+ effect: mutating
627
+ create_refund:
628
+ effect: mutating
629
+ delete_customer:
630
+ effect: destructive
631
+
632
+ # ─── Deployment / infrastructure ───────────────────────────────────────
633
+
634
+ - id: vercel
635
+ namespace_aliases: [vercel]
636
+ mechanism: network.http
637
+ role: [orchestrator.task_runner]
638
+ scope: [state.deployment]
639
+ capability: [network_outbound, uses_credentials]
640
+ tool_overrides:
641
+ deploy_project:
642
+ effect: mutating
643
+ delete_deployment:
644
+ effect: destructive
645
+
646
+ - id: supabase
647
+ namespace_aliases: [supabase]
648
+ mechanism: network.http
649
+ role: [persistence.database]
650
+ capability: [network_outbound, uses_credentials]
651
+ tool_overrides:
652
+ query_database:
653
+ mechanism: database.sql
654
+ upload_file:
655
+ effect: mutating
656
+ delete_record:
657
+ effect: destructive
658
+
659
+ - id: cloudflare
660
+ namespace_aliases: [cloudflare]
661
+ mechanism: network.http
662
+ role: [retriever.api_client]
663
+ scope: [configuration.infrastructure]
664
+ capability: [network_outbound, uses_credentials]
665
+ tool_overrides:
666
+ manage_dns:
667
+ effect: mutating
668
+ delete_worker:
669
+ effect: destructive
670
+ kv_put:
671
+ effect: mutating
672
+ kv_delete:
673
+ effect: destructive
674
+
675
+ # ─── CI/CD ─────────────────────────────────────────────────────────────
676
+
677
+ - id: jenkins
678
+ namespace_aliases: [jenkins]
679
+ mechanism: network.http
680
+ role: [orchestrator.ci_cd]
681
+ scope: [configuration.ci_cd]
682
+ capability: [network_outbound, uses_credentials]
683
+
684
+ - id: github_actions
685
+ namespace_aliases: [github_actions]
686
+ mechanism: network.http
687
+ role: [orchestrator.ci_cd]
688
+ scope: [configuration.ci_cd]
689
+ capability: [network_outbound, uses_credentials]
690
+
691
+ # ─── Web scraping / search ─────────────────────────────────────────────
692
+
693
+ - id: firecrawl
694
+ namespace_aliases: [firecrawl]
695
+ mechanism: network.http
696
+ role: [retriever.web_scraper]
697
+ default_effect: read_only
698
+ capability: [network_outbound, uses_credentials]
699
+
700
+ # ─── Data warehouses ───────────────────────────────────────────────────
701
+
702
+ - id: snowflake
703
+ namespace_aliases: [snowflake]
704
+ mechanism: database.sql
705
+ role: [persistence.database]
706
+ capability: [network_outbound, uses_credentials]
707
+ tool_overrides:
708
+ drop_table:
709
+ effect: destructive
710
+ truncate_table:
711
+ effect: destructive