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.
- traceforge/__init__.py +72 -0
- traceforge/__main__.py +5 -0
- traceforge/_generated.py +254 -0
- traceforge/adapters/__init__.py +12 -0
- traceforge/adapters/base.py +82 -0
- traceforge/adapters/genai_otel.py +164 -0
- traceforge/adapters/mapped_json.py +297 -0
- traceforge/adapters/otel.py +220 -0
- traceforge/boundary/__init__.py +46 -0
- traceforge/boundary/data/boundary-model.joblib +0 -0
- traceforge/boundary/decode.py +87 -0
- traceforge/boundary/features.py +137 -0
- traceforge/boundary/inference.py +267 -0
- traceforge/boundary/inferencer.py +146 -0
- traceforge/classify/__init__.py +95 -0
- traceforge/classify/cmd.py +109 -0
- traceforge/classify/coding.py +213 -0
- traceforge/classify/config.py +554 -0
- traceforge/classify/core.py +266 -0
- traceforge/classify/data/binary_info.yaml +358 -0
- traceforge/classify/data/canonical_tools.yaml +251 -0
- traceforge/classify/data/effect_overrides.yaml +480 -0
- traceforge/classify/data/mcp_profiles.yaml +711 -0
- traceforge/classify/data/recommendation_rules.yaml +111 -0
- traceforge/classify/data/risk.yaml +534 -0
- traceforge/classify/data/shell_defaults.yaml +95 -0
- traceforge/classify/data/shell_rules.yaml +1192 -0
- traceforge/classify/data/tool_classifications.yaml +215 -0
- traceforge/classify/data/verb_inference.yaml +218 -0
- traceforge/classify/mcp.py +181 -0
- traceforge/classify/phases.py +75 -0
- traceforge/classify/powershell.py +93 -0
- traceforge/classify/registry.py +138 -0
- traceforge/classify/risk.py +553 -0
- traceforge/classify/rules.py +215 -0
- traceforge/classify/schema.yaml +282 -0
- traceforge/classify/shell.py +503 -0
- traceforge/classify/tools.py +91 -0
- traceforge/classify/workflow.py +32 -0
- traceforge/cli/__init__.py +42 -0
- traceforge/cli/config_cmd.py +130 -0
- traceforge/cli/detect.py +46 -0
- traceforge/cli/download_cmd.py +74 -0
- traceforge/cli/factory.py +60 -0
- traceforge/cli/gate_cmd.py +30 -0
- traceforge/cli/init_cmd.py +86 -0
- traceforge/cli/replay.py +130 -0
- traceforge/cli/runner.py +181 -0
- traceforge/cli/score.py +217 -0
- traceforge/cli/status.py +65 -0
- traceforge/cli/watch.py +297 -0
- traceforge/config/__init__.py +80 -0
- traceforge/config/defaults.py +149 -0
- traceforge/config/loader.py +239 -0
- traceforge/config/mappings.py +104 -0
- traceforge/config/models.py +579 -0
- traceforge/enricher.py +576 -0
- traceforge/formatting/__init__.py +12 -0
- traceforge/formatting/budget.py +92 -0
- traceforge/formatting/density.py +154 -0
- traceforge/gate/__init__.py +17 -0
- traceforge/gate/client.py +145 -0
- traceforge/gate/external.py +305 -0
- traceforge/gate/registry.py +108 -0
- traceforge/gate/server.py +174 -0
- traceforge/gates/__init__.py +8 -0
- traceforge/gates/pii.py +352 -0
- traceforge/gates/pii_patterns.yaml +228 -0
- traceforge/governance/__init__.py +121 -0
- traceforge/governance/assessor.py +441 -0
- traceforge/governance/budget.py +59 -0
- traceforge/governance/canonical.py +56 -0
- traceforge/governance/codec.py +414 -0
- traceforge/governance/context.py +249 -0
- traceforge/governance/drift.py +196 -0
- traceforge/governance/emitter.py +234 -0
- traceforge/governance/envelope.py +138 -0
- traceforge/governance/ifc.py +364 -0
- traceforge/governance/integrity.py +162 -0
- traceforge/governance/labeler.py +250 -0
- traceforge/governance/mcp_drift.py +328 -0
- traceforge/governance/monitor.py +539 -0
- traceforge/governance/observer.py +276 -0
- traceforge/governance/persistence.py +401 -0
- traceforge/governance/phase1.py +77 -0
- traceforge/governance/pii.py +276 -0
- traceforge/governance/pipeline.py +840 -0
- traceforge/governance/registry.py +110 -0
- traceforge/governance/results.py +183 -0
- traceforge/governance/risk_wrapper.py +113 -0
- traceforge/governance/rules.py +368 -0
- traceforge/governance/scorer.py +262 -0
- traceforge/governance/shield.py +318 -0
- traceforge/governance/state.py +466 -0
- traceforge/governance/types.py +176 -0
- traceforge/mappings/__init__.py +1 -0
- traceforge/mappings/aider.yaml +216 -0
- traceforge/mappings/aider_markdown.yaml +113 -0
- traceforge/mappings/amazonq.yaml +56 -0
- traceforge/mappings/antigravity.yaml +88 -0
- traceforge/mappings/claude.yaml +93 -0
- traceforge/mappings/cline.yaml +286 -0
- traceforge/mappings/codex.yaml +158 -0
- traceforge/mappings/continue_dev.yaml +57 -0
- traceforge/mappings/copilot.yaml +266 -0
- traceforge/mappings/copilot_markdown.yaml +72 -0
- traceforge/mappings/copilot_vscode.yaml +181 -0
- traceforge/mappings/crewai.yaml +592 -0
- traceforge/mappings/goose.yaml +128 -0
- traceforge/mappings/langgraph.yaml +165 -0
- traceforge/mappings/maf.yaml +90 -0
- traceforge/mappings/maf_transcript.yaml +99 -0
- traceforge/mappings/openai_agents.yaml +144 -0
- traceforge/mappings/opencode.yaml +473 -0
- traceforge/mappings/openhands.yaml +320 -0
- traceforge/mappings/pydantic_ai.yaml +183 -0
- traceforge/mappings/smolagents.yaml +89 -0
- traceforge/mappings/sweagent.yaml +82 -0
- traceforge/migrations/__init__.py +1 -0
- traceforge/migrations/env.py +60 -0
- traceforge/migrations/models.py +145 -0
- traceforge/migrations/runner.py +44 -0
- traceforge/migrations/script.py.mako +25 -0
- traceforge/migrations/versions/0001_initial.py +176 -0
- traceforge/migrations/versions/__init__.py +4 -0
- traceforge/models.py +29 -0
- traceforge/parsers/__init__.py +21 -0
- traceforge/parsers/aider.py +416 -0
- traceforge/parsers/base.py +226 -0
- traceforge/parsers/copilot.py +314 -0
- traceforge/phase/__init__.py +50 -0
- traceforge/phase/data/phase-model.joblib +0 -0
- traceforge/phase/data/potion-base-8M/README.md +99 -0
- traceforge/phase/data/potion-base-8M/config.json +13 -0
- traceforge/phase/data/potion-base-8M/model.safetensors +0 -0
- traceforge/phase/data/potion-base-8M/modules.json +14 -0
- traceforge/phase/data/potion-base-8M/tokenizer.json +1 -0
- traceforge/phase/event_rows.py +107 -0
- traceforge/phase/features.py +468 -0
- traceforge/phase/inference.py +279 -0
- traceforge/phase/inferencer.py +171 -0
- traceforge/phase/segmentation.py +258 -0
- traceforge/pipeline.py +891 -0
- traceforge/preprocessors/__init__.py +34 -0
- traceforge/preprocessors/amazonq.py +224 -0
- traceforge/preprocessors/antigravity.py +116 -0
- traceforge/preprocessors/claude.py +95 -0
- traceforge/preprocessors/cline.py +36 -0
- traceforge/preprocessors/codex.py +311 -0
- traceforge/preprocessors/continue_dev.py +119 -0
- traceforge/preprocessors/copilot_vscode.py +171 -0
- traceforge/preprocessors/goose.py +156 -0
- traceforge/preprocessors/maf_transcript.py +84 -0
- traceforge/preprocessors/openai_agents.py +86 -0
- traceforge/preprocessors/opencode.py +85 -0
- traceforge/preprocessors/openhands.py +36 -0
- traceforge/preprocessors/pydantic_ai.py +62 -0
- traceforge/preprocessors/registry.py +24 -0
- traceforge/preprocessors/smolagents.py +90 -0
- traceforge/py.typed +0 -0
- traceforge/sdk/__init__.py +59 -0
- traceforge/sdk/gate_policy.py +63 -0
- traceforge/sdk/gate_types.py +140 -0
- traceforge/sdk/pipeline.py +265 -0
- traceforge/sdk/verdict.py +81 -0
- traceforge/sinks/__init__.py +23 -0
- traceforge/sinks/base.py +95 -0
- traceforge/sinks/callback.py +132 -0
- traceforge/sinks/console.py +112 -0
- traceforge/sinks/factory.py +94 -0
- traceforge/sinks/jsonl.py +125 -0
- traceforge/sinks/otel_exporter.py +212 -0
- traceforge/sinks/parquet.py +260 -0
- traceforge/sinks/s3.py +206 -0
- traceforge/sinks/sqlite_output.py +234 -0
- traceforge/sinks/webhook.py +136 -0
- traceforge/sources/__init__.py +18 -0
- traceforge/sources/auto_detect.py +173 -0
- traceforge/sources/base.py +45 -0
- traceforge/sources/file_poll.py +136 -0
- traceforge/sources/file_watch.py +221 -0
- traceforge/sources/http_poll.py +141 -0
- traceforge/sources/replay.py +63 -0
- traceforge/sources/sqlite.py +187 -0
- traceforge/sources/sse.py +198 -0
- traceforge/telemetry/__init__.py +192 -0
- traceforge/title/__init__.py +23 -0
- traceforge/title/_resolve.py +79 -0
- traceforge/title/context.py +295 -0
- traceforge/title/data/boilerplate_files.json +14 -0
- traceforge/title/heuristics.py +429 -0
- traceforge/title/hygiene.py +90 -0
- traceforge/title/inference.py +314 -0
- traceforge/title/inferencer.py +477 -0
- traceforge/title/naming.py +398 -0
- traceforge/trace.py +291 -0
- traceforge/tracking/__init__.py +30 -0
- traceforge/tracking/models.py +115 -0
- traceforge/tracking/phase_tracker.py +288 -0
- traceforge/types.py +315 -0
- traceforge_toolkit-0.1.0.dist-info/METADATA +188 -0
- traceforge_toolkit-0.1.0.dist-info/RECORD +205 -0
- traceforge_toolkit-0.1.0.dist-info/WHEEL +4 -0
- traceforge_toolkit-0.1.0.dist-info/entry_points.txt +2 -0
- traceforge_toolkit-0.1.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# Canonical tool name aliases — maps variant names to their canonical form.
|
|
2
|
+
#
|
|
3
|
+
# Each entry maps an exact tool_name string (as it appears in tool_call events)
|
|
4
|
+
# to a canonical tool identity. Sources are attributed per-harness.
|
|
5
|
+
#
|
|
6
|
+
# Add entries here to teach traceforge about your custom tool names.
|
|
7
|
+
|
|
8
|
+
canonical_tools:
|
|
9
|
+
# ─── Shell execution ───────────────────────────────────────────────────────
|
|
10
|
+
# Canonical: "shell" (dialect detected from command content, not tool name)
|
|
11
|
+
#
|
|
12
|
+
shell: shell # OpenAI Codex CLI (Responses API native)
|
|
13
|
+
bash: shell # GitHub Copilot, SWE-agent, Cline (native models)
|
|
14
|
+
powershell: shell # GitHub Copilot (Windows)
|
|
15
|
+
Bash: shell # Claude Code, OpenAI Codex RS (hook name)
|
|
16
|
+
PowerShell: shell # Claude Code (Windows)
|
|
17
|
+
execute_command: shell # Cline (GENERIC model), Roo Code
|
|
18
|
+
run_terminal_command: shell # Continue, Cursor
|
|
19
|
+
run_command: shell # Windsurf
|
|
20
|
+
executeCommand: shell # Amazon Q Developer
|
|
21
|
+
execute_bash: shell # OpenHands
|
|
22
|
+
sh: shell # Unix shell alias
|
|
23
|
+
zsh: shell # Zsh alias
|
|
24
|
+
cmd: shell # Windows cmd.exe
|
|
25
|
+
|
|
26
|
+
# ─── File read ─────────────────────────────────────────────────────────────
|
|
27
|
+
# Canonical: "view" (read file contents without modification)
|
|
28
|
+
#
|
|
29
|
+
view: view # GitHub Copilot
|
|
30
|
+
Read: view # Claude Code
|
|
31
|
+
read_file: view # Cline, Roo Code, Continue, Cursor, LangChain
|
|
32
|
+
read_file_range: view # Continue
|
|
33
|
+
fsRead: view # Amazon Q Developer
|
|
34
|
+
view_code_item: view # Windsurf
|
|
35
|
+
read_currently_open_file: view # Continue
|
|
36
|
+
NotebookRead: view # Claude Code (notebooks)
|
|
37
|
+
LS: view # Claude Code (list directory)
|
|
38
|
+
ls: view # Continue
|
|
39
|
+
list_dir: view # Cursor, Windsurf, Roo Code
|
|
40
|
+
list_files: view # Cline, Roo Code
|
|
41
|
+
fsList: view # Amazon Q Developer
|
|
42
|
+
|
|
43
|
+
# ─── File write (edit existing) ────────────────────────────────────────────
|
|
44
|
+
# Canonical: "edit" (modify existing file content)
|
|
45
|
+
#
|
|
46
|
+
edit: edit # GitHub Copilot, Roo Code (native models)
|
|
47
|
+
Edit: edit # Claude Code
|
|
48
|
+
MultiEdit: edit # Claude Code
|
|
49
|
+
multi_edit: edit # Continue
|
|
50
|
+
edit_file: edit # Cursor, Roo Code
|
|
51
|
+
edit_existing_file: edit # Continue
|
|
52
|
+
single_find_and_replace: edit # Continue
|
|
53
|
+
replace_in_file: edit # Cline
|
|
54
|
+
replace_file_contents: edit # Windsurf
|
|
55
|
+
edit_code: edit # Windsurf
|
|
56
|
+
search_replace: edit # Roo Code
|
|
57
|
+
search_and_replace: edit # Sweep
|
|
58
|
+
fsSearchAndReplace: edit # Amazon Q Developer
|
|
59
|
+
str_replace_editor: edit # OpenHands, SWE-agent
|
|
60
|
+
apply_patch: edit # OpenAI Codex RS, Cline
|
|
61
|
+
apply_diff: edit # Roo Code
|
|
62
|
+
NotebookEdit: edit # Claude Code (notebooks)
|
|
63
|
+
|
|
64
|
+
# ─── File write (create new) ───────────────────────────────────────────────
|
|
65
|
+
# Canonical: "create" (create new file)
|
|
66
|
+
#
|
|
67
|
+
create: create # GitHub Copilot
|
|
68
|
+
Write: create # Claude Code
|
|
69
|
+
create_file: create # Cursor, Cline
|
|
70
|
+
create_new_file: create # Continue
|
|
71
|
+
write_to_file: create # Cline, Roo Code
|
|
72
|
+
write_code: create # Windsurf
|
|
73
|
+
write_file: create # LangChain
|
|
74
|
+
fsWrite: create # Amazon Q Developer
|
|
75
|
+
fsAppend: create # Amazon Q Developer
|
|
76
|
+
|
|
77
|
+
# ─── Content search (grep-like) ────────────────────────────────────────────
|
|
78
|
+
# Canonical: "grep" (search file contents by pattern)
|
|
79
|
+
#
|
|
80
|
+
grep: grep # GitHub Copilot
|
|
81
|
+
Grep: grep # Claude Code
|
|
82
|
+
grep_search: grep # Continue, Cursor
|
|
83
|
+
search_files: grep # Cline, Roo Code
|
|
84
|
+
search_code_snippet: grep # Windsurf
|
|
85
|
+
search_file: grep # SWE-agent
|
|
86
|
+
search_dir: grep # SWE-agent
|
|
87
|
+
rg: grep # ripgrep CLI binary name
|
|
88
|
+
ripgrep: grep # ripgrep full name
|
|
89
|
+
GrepTool: grep # Anthropic internal tooling
|
|
90
|
+
|
|
91
|
+
# ─── File pattern search (glob-like) ───────────────────────────────────────
|
|
92
|
+
# Canonical: "glob" (find files by name/path pattern)
|
|
93
|
+
#
|
|
94
|
+
glob: glob # GitHub Copilot
|
|
95
|
+
Glob: glob # Claude Code
|
|
96
|
+
file_glob_search: glob # Continue
|
|
97
|
+
find_by_name: glob # Cursor, Windsurf
|
|
98
|
+
find_file: glob # SWE-agent
|
|
99
|
+
GlobTool: glob # Anthropic internal tooling
|
|
100
|
+
|
|
101
|
+
# ─── Semantic codebase search ──────────────────────────────────────────────
|
|
102
|
+
# Canonical: "codebase_search" (AI-powered semantic search, NOT pattern grep)
|
|
103
|
+
#
|
|
104
|
+
codebase_search: codebase_search # Cursor, Roo Code
|
|
105
|
+
codebase: codebase_search # Continue
|
|
106
|
+
list_code_definition_names: codebase_search # Cline
|
|
107
|
+
|
|
108
|
+
# ─── Git operations ────────────────────────────────────────────────────────
|
|
109
|
+
# These are only relevant for harnesses with dedicated git tools (rare).
|
|
110
|
+
# Most agents shell out to git via their shell tool.
|
|
111
|
+
#
|
|
112
|
+
git_commit: git_commit
|
|
113
|
+
git_push: git_push
|
|
114
|
+
git_diff: git_diff
|
|
115
|
+
git_status: git_status
|
|
116
|
+
git_add: git_add
|
|
117
|
+
git_log: git_log
|
|
118
|
+
git_pull: git_pull
|
|
119
|
+
git_merge: git_merge
|
|
120
|
+
git_rebase: git_rebase
|
|
121
|
+
git_checkout: git_checkout
|
|
122
|
+
git_branch: git_branch
|
|
123
|
+
view_diff: git_diff # Continue
|
|
124
|
+
|
|
125
|
+
# ─── Internal / bookkeeping ────────────────────────────────────────────────
|
|
126
|
+
# Canonical: "report_intent" (agent intent declaration, not user-facing)
|
|
127
|
+
#
|
|
128
|
+
report_intent: report_intent # GitHub Copilot
|
|
129
|
+
think: think # Internal reasoning step
|
|
130
|
+
plan_mode_respond: think # Cline
|
|
131
|
+
act_mode_respond: think # Cline
|
|
132
|
+
switch_mode: think # Roo Code
|
|
133
|
+
update_todo_list: state_write # Roo Code
|
|
134
|
+
attempt_completion: report_intent # Cline (task complete signal)
|
|
135
|
+
finish: report_intent # OpenHands, SWE-agent (submit)
|
|
136
|
+
submit: report_intent # SWE-agent
|
|
137
|
+
|
|
138
|
+
# ─── User interaction ──────────────────────────────────────────────────────
|
|
139
|
+
# Canonical: "ask_user" (prompt user for input)
|
|
140
|
+
#
|
|
141
|
+
ask_user: ask_user # GitHub Copilot
|
|
142
|
+
ask_followup_question: ask_user # Cline, Roo Code
|
|
143
|
+
|
|
144
|
+
# ─── Web fetch / browse ────────────────────────────────────────────────────
|
|
145
|
+
#
|
|
146
|
+
WebFetch: web_fetch # Claude Code
|
|
147
|
+
web_fetch: web_fetch # Cline, Roo Code
|
|
148
|
+
fetch_url: web_fetch # generic
|
|
149
|
+
fetch_url_content: web_fetch # Continue
|
|
150
|
+
read_url: web_fetch # Windsurf
|
|
151
|
+
WebSearch: web_search # Claude Code, OpenAI Codex
|
|
152
|
+
web_search: web_search # Cline, Roo Code
|
|
153
|
+
search_web: web_search # Continue
|
|
154
|
+
browser_action: web_browse # Cline
|
|
155
|
+
browser: web_browse # OpenHands
|
|
156
|
+
view_web_page: web_browse # Windsurf
|
|
157
|
+
|
|
158
|
+
# ─── Agent delegation / sub-tasks ──────────────────────────────────────────
|
|
159
|
+
# Canonical: "task" (spawn sub-agent or delegate work)
|
|
160
|
+
#
|
|
161
|
+
Task: task # Claude Code
|
|
162
|
+
task: task # GitHub Copilot
|
|
163
|
+
spawn_agent: task # OpenAI Codex RS
|
|
164
|
+
new_task: task # Cline
|
|
165
|
+
subagent: task # Cline, Roo Code
|
|
166
|
+
|
|
167
|
+
# ─── Delete file ───────────────────────────────────────────────────────────
|
|
168
|
+
# Canonical: "delete_file"
|
|
169
|
+
#
|
|
170
|
+
delete_file: delete_file # Cursor, Windsurf, Cline
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
# ─── Verb inference ──────────────────────────────────────────────────────────
|
|
174
|
+
# For unknown tools: extract verb prefix from tool name → infer effect + action.
|
|
175
|
+
# Example: "find_users" → verb "find" → (read_only, retrieve)
|
|
176
|
+
# This is a HEURISTIC fallback, not an alias system.
|
|
177
|
+
|
|
178
|
+
verb_inference:
|
|
179
|
+
# Read-only verbs → retrieve actions
|
|
180
|
+
get: { effect: read_only, action: retrieve }
|
|
181
|
+
list: { effect: read_only, action: retrieve }
|
|
182
|
+
read: { effect: read_only, action: retrieve }
|
|
183
|
+
search: { effect: read_only, action: retrieve }
|
|
184
|
+
query: { effect: read_only, action: retrieve }
|
|
185
|
+
describe: { effect: read_only, action: analyze }
|
|
186
|
+
fetch: { effect: read_only, action: retrieve }
|
|
187
|
+
browse: { effect: read_only, action: retrieve }
|
|
188
|
+
find: { effect: read_only, action: retrieve }
|
|
189
|
+
show: { effect: read_only, action: retrieve }
|
|
190
|
+
inspect: { effect: read_only, action: analyze }
|
|
191
|
+
check: { effect: read_only, action: validate }
|
|
192
|
+
scan: { effect: read_only, action: validate }
|
|
193
|
+
view: { effect: read_only, action: retrieve }
|
|
194
|
+
|
|
195
|
+
# Mutating verbs → persist/modify/generate actions
|
|
196
|
+
create: { effect: mutating, action: generate }
|
|
197
|
+
update: { effect: mutating, action: modify }
|
|
198
|
+
write: { effect: mutating, action: persist }
|
|
199
|
+
set: { effect: mutating, action: persist }
|
|
200
|
+
add: { effect: mutating, action: persist }
|
|
201
|
+
append: { effect: mutating, action: persist }
|
|
202
|
+
apply: { effect: mutating, action: execute }
|
|
203
|
+
run: { effect: mutating, action: execute }
|
|
204
|
+
execute: { effect: mutating, action: execute }
|
|
205
|
+
start: { effect: mutating, action: execute }
|
|
206
|
+
trigger: { effect: mutating, action: execute }
|
|
207
|
+
deploy: { effect: mutating, action: deliver }
|
|
208
|
+
publish: { effect: mutating, action: deliver }
|
|
209
|
+
push: { effect: mutating, action: deliver }
|
|
210
|
+
send: { effect: mutating, action: deliver }
|
|
211
|
+
post: { effect: mutating, action: deliver }
|
|
212
|
+
submit: { effect: mutating, action: deliver }
|
|
213
|
+
upload: { effect: mutating, action: deliver }
|
|
214
|
+
fork: { effect: mutating, action: generate }
|
|
215
|
+
star: { effect: mutating, action: persist }
|
|
216
|
+
assign: { effect: mutating, action: modify }
|
|
217
|
+
merge: { effect: mutating, action: modify }
|
|
218
|
+
approve: { effect: mutating, action: modify }
|
|
219
|
+
dismiss: { effect: mutating, action: modify }
|
|
220
|
+
resolve: { effect: mutating, action: modify }
|
|
221
|
+
configure: { effect: mutating, action: configure }
|
|
222
|
+
install: { effect: mutating, action: configure }
|
|
223
|
+
scale: { effect: mutating, action: configure }
|
|
224
|
+
build: { effect: mutating, action: transform }
|
|
225
|
+
pull: { effect: mutating, action: retrieve }
|
|
226
|
+
navigate: { effect: mutating, action: execute }
|
|
227
|
+
click: { effect: mutating, action: execute }
|
|
228
|
+
type: { effect: mutating, action: execute }
|
|
229
|
+
fill: { effect: mutating, action: execute }
|
|
230
|
+
select: { effect: mutating, action: execute }
|
|
231
|
+
hover: { effect: mutating, action: execute }
|
|
232
|
+
press: { effect: mutating, action: execute }
|
|
233
|
+
drag: { effect: mutating, action: execute }
|
|
234
|
+
move: { effect: mutating, action: modify }
|
|
235
|
+
edit: { effect: mutating, action: modify }
|
|
236
|
+
replace: { effect: mutating, action: modify }
|
|
237
|
+
rename: { effect: mutating, action: modify }
|
|
238
|
+
restore: { effect: mutating, action: modify }
|
|
239
|
+
archive: { effect: mutating, action: modify }
|
|
240
|
+
manage: { effect: mutating, action: modify }
|
|
241
|
+
|
|
242
|
+
# Destructive verbs
|
|
243
|
+
delete: { effect: destructive, action: remove }
|
|
244
|
+
destroy: { effect: destructive, action: remove }
|
|
245
|
+
drop: { effect: destructive, action: remove }
|
|
246
|
+
remove: { effect: destructive, action: remove }
|
|
247
|
+
clear: { effect: destructive, action: remove }
|
|
248
|
+
unstar: { effect: mutating, action: modify }
|
|
249
|
+
stop: { effect: mutating, action: execute }
|
|
250
|
+
cancel: { effect: mutating, action: execute }
|
|
251
|
+
terminate: { effect: destructive, action: remove }
|