@alessandroraffa/tangyr 0.20.0 → 0.21.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.
@@ -47,18 +47,27 @@ targets:
47
47
  SessionStart:
48
48
  status: probe
49
49
  reason: >-
50
- Not verified against this runtime. Until someone probes it, the adapter must not
51
- claim support it has not observed, and must not present the absence as a decision.
50
+ Not probed, and not probeable on the machine this mapping was last measured on
51
+ (2026-09-04): no Copilot CLI is installed there, and ~/.copilot/hooks is empty, so no
52
+ hook can be made to fire from a terminal. To settle it: install the Copilot CLI, register
53
+ a hook per event that appends its payload to a file, and drive one session that submits a
54
+ prompt, runs a tool, fails a tool and ends.
52
55
  UserPromptSubmit:
53
56
  status: probe
54
57
  reason: >-
55
- Not verified against this runtime. Until someone probes it, the adapter must not
56
- claim support it has not observed, and must not present the absence as a decision.
58
+ Not probed, and not probeable on the machine this mapping was last measured on
59
+ (2026-09-04): no Copilot CLI is installed there, and ~/.copilot/hooks is empty, so no
60
+ hook can be made to fire from a terminal. To settle it: install the Copilot CLI, register
61
+ a hook per event that appends its payload to a file, and drive one session that submits a
62
+ prompt, runs a tool, fails a tool and ends.
57
63
  PostToolUseFailure:
58
64
  status: probe
59
65
  reason: >-
60
- Not verified against this runtime. Claude Code fires this event where PostToolUse does
61
- not; whether an equivalent exists here is unknown.
66
+ Not probed, and not probeable on the machine this mapping was last measured on
67
+ (2026-09-04): no Copilot CLI is installed there, and ~/.copilot/hooks is empty, so no
68
+ hook can be made to fire from a terminal. To settle it: install the Copilot CLI, register
69
+ a hook per event that appends its payload to a file, and drive one session that submits a
70
+ prompt, runs a tool, fails a tool and ends.
62
71
  PreToolUse:
63
72
  status: mapped
64
73
  target_event: preToolUse
@@ -89,20 +98,20 @@ targets:
89
98
  windows: false
90
99
  source_to_target:
91
100
  SessionStart:
92
- status: probe
93
- reason: >-
94
- Not verified against this runtime. Until someone probes it, the adapter must not
95
- claim support it has not observed, and must not present the absence as a decision.
101
+ status: mapped
102
+ target_event: SessionStart
96
103
  UserPromptSubmit:
97
- status: probe
98
- reason: >-
99
- Not verified against this runtime. Until someone probes it, the adapter must not
100
- claim support it has not observed, and must not present the absence as a decision.
104
+ status: mapped
105
+ target_event: UserPromptSubmit
101
106
  PostToolUseFailure:
102
- status: probe
107
+ status: drop
108
+ severity: warning
103
109
  reason: >-
104
- Not verified against this runtime. Claude Code fires this event where PostToolUse does
105
- not; whether an equivalent exists here is unknown.
110
+ Measured, not assumed. A `codex exec` run on 2026-09-04 registered all nine events and
111
+ deliberately ran a failing command; Codex fired PostToolUse for it and never fired
112
+ PostToolUseFailure. Claude Code, where PostToolUse does not fire on a failure, is the
113
+ reason a kit subscribes to both — under Codex the failure arrives on PostToolUse instead,
114
+ so a hook that only listens to PostToolUseFailure sees nothing here.
106
115
  PreToolUse:
107
116
  status: mapped
108
117
  target_event: PreToolUse
@@ -110,39 +119,75 @@ targets:
110
119
  status: mapped
111
120
  target_event: PostToolUse
112
121
  PreCompact:
113
- status: drop
122
+ status: probe
114
123
  severity: warning
115
- reason: No documented equivalent in the current baseline.
124
+ reason: >-
125
+ Registered in the 2026-09-04 probe and never fired, but that run never compacted, so the
126
+ measurement is inconclusive rather than negative. To settle it: drive a session past its
127
+ context limit with the probe hooks installed.
116
128
  SubagentStart:
117
- status: drop
129
+ status: probe
118
130
  severity: warning
119
- reason: No documented equivalent in the current baseline.
131
+ reason: >-
132
+ Registered in the 2026-09-04 probe and never fired, but that run spawned no subagent.
133
+ Inconclusive. To settle it: run a task that delegates, with the probe hooks installed.
120
134
  SubagentStop:
121
- status: drop
135
+ status: probe
122
136
  severity: warning
123
- reason: No documented equivalent in the current baseline.
137
+ reason: >-
138
+ Registered in the 2026-09-04 probe and never fired, but that run spawned no subagent.
139
+ Inconclusive. To settle it: run a task that delegates, with the probe hooks installed.
124
140
  Stop:
125
141
  status: mapped
126
142
  target_event: Stop
127
143
 
128
144
  cursor:
129
145
  delivery: native-versioned-object
146
+ # READ THIS BEFORE TRUSTING THE ENTRIES BELOW.
147
+ #
148
+ # On 2026-09-04 the shipped Cursor binary was inspected at
149
+ # /Applications/Cursor.app/Contents/Resources/app/extensions/cursor-agent-exec/dist/main.js.
150
+ # Its hook-step enum holds twelve values, all camelCase:
151
+ #
152
+ # afterFileEdit, afterMCPExecution, afterShellExecution, beforeMCPExecution,
153
+ # beforeReadFile, beforeShellExecution, postToolUse, postToolUseFailure,
154
+ # preCompact, preToolUse, subagentStart, subagentStop
155
+ #
156
+ # The target_event values written below are PascalCase — `PreToolUse`, not `preToolUse` —
157
+ # and JSON keys are case sensitive. Three consequences follow, none of them verified:
158
+ #
159
+ # 1. What this CLI writes to .cursor/hooks.json may be inert. The file exists, names real
160
+ # scripts, and may match no key Cursor looks up. That is exactly the failure shape this
161
+ # mapping is meant to prevent, so it is recorded here rather than left to be discovered.
162
+ # 2. preCompact, subagentStart and subagentStop ARE in that enum, while the entries below
163
+ # say they have "no documented equivalent". That claim is wrong, whatever the case
164
+ # question turns out to be.
165
+ # 3. The same file resolves ~/.claude/settings.json and <project>/.claude/settings.json as
166
+ # hook sources alongside ~/.cursor/hooks.json. Cursor may already be reading the
167
+ # Claude Code artifact this CLI writes, which would make its own hooks.json redundant.
168
+ #
169
+ # Nothing below was changed on this evidence. Minified code read without running it is a
170
+ # strong hint and not a measurement, and swapping one unverified mapping for another is the
171
+ # same mistake in the other direction. To settle it: install this kit for cursor, open the
172
+ # Cursor GUI, run one agent turn that executes a shell command, and check whether the hook
173
+ # script ran — then repeat with the keys lowercased. Cursor has no CLI on the machine this
174
+ # was measured on, which is why it stopped here.
130
175
  source_to_target:
131
176
  SessionStart:
132
177
  status: probe
133
178
  reason: >-
134
- Not verified against this runtime. Until someone probes it, the adapter must not
135
- claim support it has not observed, and must not present the absence as a decision.
179
+ Not in the observed enum under any casing, and not probeable without the GUI. See the
180
+ note above this block.
136
181
  UserPromptSubmit:
137
182
  status: probe
138
183
  reason: >-
139
- Not verified against this runtime. Until someone probes it, the adapter must not
140
- claim support it has not observed, and must not present the absence as a decision.
184
+ Not in the observed enum; the nearest candidate is beforeSubmitPrompt, which is a
185
+ different contract. See the note above this block.
141
186
  PostToolUseFailure:
142
187
  status: probe
143
188
  reason: >-
144
- Not verified against this runtime. Claude Code fires this event where PostToolUse does
145
- not; whether an equivalent exists here is unknown.
189
+ postToolUseFailure is in the observed enum, camelCased. Unverified. See the note above
190
+ this block.
146
191
  PreToolUse:
147
192
  status: mapped
148
193
  target_event: PreToolUse
@@ -150,21 +195,29 @@ targets:
150
195
  status: mapped
151
196
  target_event: PostToolUse
152
197
  PreCompact:
153
- status: drop
198
+ status: probe
154
199
  severity: warning
155
- reason: No documented equivalent in the Cursor hooks baseline.
200
+ reason: >-
201
+ preCompact is in the observed enum, camelCased. The previous entry here said there was
202
+ no documented equivalent, which the enum contradicts. See the note above this block.
156
203
  SubagentStart:
157
- status: drop
204
+ status: probe
158
205
  severity: warning
159
- reason: No documented equivalent in the Cursor hooks baseline.
206
+ reason: >-
207
+ subagentStart is in the observed enum, camelCased. The previous entry here said there was
208
+ no documented equivalent, which the enum contradicts. See the note above this block.
160
209
  SubagentStop:
161
- status: drop
210
+ status: probe
162
211
  severity: warning
163
- reason: No documented equivalent in the Cursor hooks baseline.
212
+ reason: >-
213
+ subagentStop is in the observed enum, camelCased. The previous entry here said there was
214
+ no documented equivalent, which the enum contradicts. See the note above this block.
164
215
  Stop:
165
216
  status: drop
166
217
  severity: warning
167
- reason: No documented equivalent in the Cursor hooks baseline.
218
+ reason: >-
219
+ Not in the observed enum. `stop` appears in that file but as an unrelated identifier, so
220
+ this stays a drop rather than becoming a guess. See the note above this block.
168
221
 
169
222
  # OpenCode and Cline exchange no declarative hook file at all: hooks are
170
223
  # plugin code (an OpenCode plugin, a @cline/sdk AgentPlugin), which a kit
@@ -28,6 +28,7 @@ targets:
28
28
  settings_shared_file: ~/.claude/settings.json
29
29
  mcp_shared_file: ~/.claude.json
30
30
  hooks: ~/.agents/hooks
31
+ hook_scripts: ~/.agents/hooks
31
32
  project:
32
33
  instructions: AGENTS.md
33
34
  instructions_shim: CLAUDE.md
@@ -40,6 +41,7 @@ targets:
40
41
  settings_shared_file: .claude/settings.json
41
42
  mcp_shared_file: .claude.json
42
43
  hooks: .agents/hooks
44
+ hook_scripts: .agents/hooks
43
45
 
44
46
  copilot:
45
47
  global:
@@ -47,6 +49,7 @@ targets:
47
49
  skills: ~/.copilot/skills
48
50
  prompts: $VSCODE_USER_DATA/prompts
49
51
  hooks: ~/.copilot/hooks
52
+ hook_scripts: ~/.agents/hooks
50
53
  mcp_shared_file: ~/.copilot/mcp-config.json
51
54
  instructions: null
52
55
  project:
@@ -54,6 +57,7 @@ targets:
54
57
  skills: .github/skills
55
58
  prompts: .github/prompts
56
59
  hooks: .github/hooks
60
+ hook_scripts: .agents/hooks
57
61
  mcp_shared_file: .vscode/mcp.json
58
62
  instructions: .github/copilot-instructions.md
59
63
  agents_md: AGENTS.md
@@ -65,6 +69,7 @@ targets:
65
69
  rules: ~/.codex/rules
66
70
  skills: ~/.agents/skills
67
71
  hooks_shared_file: ~/.codex/hooks.json
72
+ hook_scripts: ~/.agents/hooks
68
73
  mcp_shared_file: ~/.codex/config.toml
69
74
  project:
70
75
  instructions: AGENTS.md
@@ -72,6 +77,7 @@ targets:
72
77
  rules: .codex/rules
73
78
  skills: .codex/skills
74
79
  hooks_shared_file: .codex/hooks.json
80
+ hook_scripts: .agents/hooks
75
81
  mcp_shared_file: .codex/config.toml
76
82
 
77
83
  opencode:
@@ -98,6 +104,7 @@ targets:
98
104
  skills: ~/.cursor/skills
99
105
  skills_shared: ~/.agents/skills
100
106
  hooks_file: ~/.cursor/hooks.json
107
+ hook_scripts: ~/.agents/hooks
101
108
  mcp_file: ~/.cursor/mcp.json
102
109
  permissions_file: ~/.cursor/permissions.json
103
110
  project:
@@ -107,6 +114,7 @@ targets:
107
114
  skills: .cursor/skills
108
115
  skills_shared: .agents/skills
109
116
  hooks_file: .cursor/hooks.json
117
+ hook_scripts: .agents/hooks
110
118
  mcp_file: .cursor/mcp.json
111
119
  permissions_file: .cursor/permissions.json
112
120
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alessandroraffa/tangyr",
3
- "version": "0.20.0",
3
+ "version": "0.21.0",
4
4
  "description": "CLI for the Tangyr discipline — install and manage operating kits for AI coding tools",
5
5
  "license": "MIT",
6
6
  "engines": {