harness-wingman 0.0.1 → 0.3.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.
@@ -0,0 +1,31 @@
1
+ {
2
+ "__mock_note": "MOCK — dev 演示件:服务器无动作端点(vite dev / 旧 server)时,拨杆流程用本样例走完整 plan 弹窗;样例固定 = 关闭 cc 的 mcpServers.github,与实际点击的条目无关,确认不落盘(演示模式:动作只到 plan 为止)。before/after 为手工构造的 ~/.claude.json 样例(合同 FileChange:完整文件内容);引用命中演示「skill 文案提到被关 server」用例。effectiveAt 取保守值 next_session:外改 disabledMcpServers 的生效时机在 PLAN §11 待实测清单,不确定就取保守值。真实 plan 由 wingman serve 的 POST /api/action/plan 产出。",
3
+ "plan": {
4
+ "harness": "cc",
5
+ "action": { "kind": "toggle", "itemId": "cc:tools:project:mcpServers.github", "enable": false },
6
+ "writes": [
7
+ {
8
+ "file": "/Users/user/.claude.json",
9
+ "kind": "modify",
10
+ "before": "{\n \"numStartups\": 42,\n \"projects\": {\n \"/Users/user/project\": {\n \"allowedTools\": [],\n \"disabledMcpServers\": [\n \"chatcut_desktop\"\n ]\n }\n }\n}\n",
11
+ "after": "{\n \"numStartups\": 42,\n \"projects\": {\n \"/Users/user/project\": {\n \"allowedTools\": [],\n \"disabledMcpServers\": [\n \"chatcut_desktop\",\n \"github\"\n ]\n }\n }\n}\n"
12
+ }
13
+ ],
14
+ "backupDir": "/Users/user/.wingman/backups/2026-08-25T04-05-00-000Z",
15
+ "references": [
16
+ {
17
+ "file": "/Users/user/.claude/skills/deploy-check/SKILL.md",
18
+ "line": 7,
19
+ "matchedName": "github",
20
+ "context": "先用 github MCP server 拉最近一次部署对应的 PR 列表,再逐条核对 checklist"
21
+ },
22
+ {
23
+ "file": "/Users/user/project/CLAUDE.md",
24
+ "line": 12,
25
+ "matchedName": "github",
26
+ "context": "- PR 操作一律走 github MCP server,不要直接 git push"
27
+ }
28
+ ],
29
+ "effectiveAt": "next_session"
30
+ }
31
+ }
@@ -0,0 +1,458 @@
1
+ [
2
+ {
3
+ "__mock_note": "MOCK — 开发期静态样例:手工按 @wingman/types 冻结合同 + packages/fixtures/data 内容构造。估算值 = 对应 fixture 文件字节 ÷ 3.5(标「约」);精确值仅来自 session.jsonl 的 message.usage。真实数据由 wingman serve 的 GET /api/anatomy 提供。",
4
+ "harness": "cc",
5
+ "harnessVersion": "2.1.190",
6
+ "scannedAt": "2026-08-25T04:00:00.000Z",
7
+ "slots": {
8
+ "base": [
9
+ {
10
+ "id": "cc:base:bundled:system prompt",
11
+ "slot": "base",
12
+ "nativeName": "system prompt",
13
+ "nativePath": "",
14
+ "residency": "resident",
15
+ "toggleable": false,
16
+ "enabled": true,
17
+ "source": "bundled",
18
+ "__source_note": "CC 内置注入,无文件实体;字节数不可读,故不显示 token 数(增补条款 10)"
19
+ }
20
+ ],
21
+ "rules": [
22
+ {
23
+ "id": "cc:rules:user:CLAUDE.md",
24
+ "slot": "rules",
25
+ "nativeName": "CLAUDE.md",
26
+ "nativePath": "/Users/user/.claude/CLAUDE.md",
27
+ "tokens": { "kind": "estimate", "value": 835 },
28
+ "residency": "resident",
29
+ "toggleable": false,
30
+ "enabled": true,
31
+ "source": "user",
32
+ "__source_note": "估算 = 2922 bytes ÷ 3.5(fixtures cc/home/.claude/CLAUDE.md)"
33
+ },
34
+ {
35
+ "id": "cc:rules:project:CLAUDE.md",
36
+ "slot": "rules",
37
+ "nativeName": "CLAUDE.md",
38
+ "nativePath": "/Users/user/project/CLAUDE.md",
39
+ "tokens": { "kind": "estimate", "value": 1851 },
40
+ "residency": "resident",
41
+ "toggleable": false,
42
+ "enabled": true,
43
+ "source": "project",
44
+ "__source_note": "估算 = 6478 bytes ÷ 3.5(fixtures cc/project/CLAUDE.md)"
45
+ }
46
+ ],
47
+ "skills": [
48
+ {
49
+ "id": "cc:skills:user:careful",
50
+ "slot": "skills",
51
+ "nativeName": "careful",
52
+ "nativePath": "/Users/user/.claude/skills/careful/SKILL.md",
53
+ "tokens": { "kind": "estimate", "value": 15 },
54
+ "onTriggerTokens": { "kind": "estimate", "value": 733 },
55
+ "residency": "on_trigger",
56
+ "toggleable": true,
57
+ "enabled": false,
58
+ "source": "user",
59
+ "__source_note": "project settings skillOverrides.careful = \"off\" → 已关闭。常驻 = frontmatter 描述 52 bytes ÷ 3.5;触发后 = SKILL.md 全文 2567 bytes ÷ 3.5"
60
+ },
61
+ {
62
+ "id": "cc:skills:user:unfreeze",
63
+ "slot": "skills",
64
+ "nativeName": "unfreeze",
65
+ "nativePath": "/Users/user/.claude/skills/unfreeze/SKILL.md",
66
+ "tokens": { "kind": "estimate", "value": 26 },
67
+ "onTriggerTokens": { "kind": "estimate", "value": 430 },
68
+ "residency": "on_trigger",
69
+ "toggleable": true,
70
+ "enabled": false,
71
+ "source": "user",
72
+ "__source_note": "user settings skillOverrides.unfreeze = \"off\" → 已关闭。常驻 = frontmatter 描述 91 bytes ÷ 3.5;触发后 = SKILL.md 全文 1504 bytes ÷ 3.5"
73
+ }
74
+ ],
75
+ "tools": [
76
+ {
77
+ "id": "cc:tools:user:mcpServers.chatcut_desktop",
78
+ "slot": "tools",
79
+ "nativeName": "mcpServers.chatcut_desktop",
80
+ "nativePath": "/Users/user/.claude.json",
81
+ "toggleable": true,
82
+ "enabled": false,
83
+ "source": "user",
84
+ "__source_note": "~/.claude.json 的 projects[\"/Users/user/project\"].disabledMcpServers 含本 server → 已关闭。工具定义字节不可读(server 未连接),不显示 token 数"
85
+ },
86
+ {
87
+ "id": "cc:tools:project:mcpServers.github",
88
+ "slot": "tools",
89
+ "nativeName": "mcpServers.github",
90
+ "nativePath": "/Users/user/project/.mcp.json",
91
+ "toggleable": true,
92
+ "enabled": true,
93
+ "source": "project",
94
+ "__source_note": "project scope .mcp.json。工具定义字节需连上 server 才可得,anatomy 静态扫描不显示 token 数"
95
+ }
96
+ ],
97
+ "gates": [
98
+ {
99
+ "id": "cc:gates:user:permissions.allow",
100
+ "slot": "gates",
101
+ "nativeName": "permissions.allow",
102
+ "nativePath": "/Users/user/.claude/settings.json",
103
+ "toggleable": false,
104
+ "enabled": true,
105
+ "source": "user",
106
+ "__source_note": "user 层白名单 1 条(fixtures cc/home/.claude/settings.json)"
107
+ },
108
+ {
109
+ "id": "cc:gates:project:permissions.allow",
110
+ "slot": "gates",
111
+ "nativeName": "permissions.allow",
112
+ "nativePath": "/Users/user/project/.claude/settings.json",
113
+ "toggleable": false,
114
+ "enabled": true,
115
+ "source": "project",
116
+ "__source_note": "project 层白名单 2 条(fixtures cc/project/.claude/settings.json)"
117
+ },
118
+ {
119
+ "id": "cc:gates:local:permissions.allow",
120
+ "slot": "gates",
121
+ "nativeName": "permissions.allow",
122
+ "nativePath": "/Users/user/project/.claude/settings.local.json",
123
+ "toggleable": false,
124
+ "enabled": true,
125
+ "source": "local",
126
+ "__source_note": "local 层白名单 6 条(fixtures cc/project/.claude/settings.local.json)"
127
+ },
128
+ {
129
+ "id": "cc:gates:user:hooks.PreToolUse",
130
+ "slot": "gates",
131
+ "nativeName": "hooks.PreToolUse",
132
+ "nativePath": "/Users/user/.claude/skills/careful/SKILL.md",
133
+ "toggleable": false,
134
+ "enabled": false,
135
+ "source": "user",
136
+ "__source_note": "careful skill frontmatter 声明的 PreToolUse hook(matcher: Bash);skill 已被 skillOverrides 关闭,hook 随之停用"
137
+ }
138
+ ],
139
+ "history": [
140
+ {
141
+ "id": "cc:history:user:bedaae82-3d52-4fe7-8554-dc9f062e333b.jsonl",
142
+ "slot": "history",
143
+ "nativeName": "bedaae82-3d52-4fe7-8554-dc9f062e333b.jsonl",
144
+ "nativePath": "/Users/user/.claude/projects/-Users-user-project/bedaae82-3d52-4fe7-8554-dc9f062e333b.jsonl",
145
+ "tokens": { "kind": "exact", "value": 60889 },
146
+ "residency": "resident",
147
+ "toggleable": false,
148
+ "enabled": true,
149
+ "source": "user",
150
+ "__source_note": "精确值 = 末条 assistant 行 message.usage:input_tokens 2 + cache_creation_input_tokens 60887 + cache_read_input_tokens 0(fixtures cc/sessions/session.jsonl)"
151
+ }
152
+ ]
153
+ },
154
+ "capabilities": { "live": "push", "actions": [] }
155
+ },
156
+ {
157
+ "__mock_note": "MOCK — 开发期静态样例:手工按 @wingman/types 冻结合同 + packages/fixtures/data/codex 构造。版本号 0.149.1 来自 PLAN §4b spike 实测记录。",
158
+ "harness": "codex",
159
+ "harnessVersion": "0.149.1",
160
+ "scannedAt": "2026-08-25T04:00:00.000Z",
161
+ "slots": {
162
+ "base": [],
163
+ "rules": [
164
+ {
165
+ "id": "codex:rules:user:AGENTS.md",
166
+ "slot": "rules",
167
+ "nativeName": "AGENTS.md",
168
+ "nativePath": "/Users/user/.codex/AGENTS.md",
169
+ "tokens": { "kind": "estimate", "value": 670 },
170
+ "residency": "resident",
171
+ "toggleable": false,
172
+ "enabled": true,
173
+ "source": "user",
174
+ "__source_note": "估算 = 2344 bytes ÷ 3.5(fixtures codex/home/.codex/AGENTS.md)"
175
+ },
176
+ {
177
+ "id": "codex:rules:user:config.toml",
178
+ "slot": "rules",
179
+ "nativeName": "config.toml",
180
+ "nativePath": "/Users/user/.codex/config.toml",
181
+ "toggleable": false,
182
+ "enabled": true,
183
+ "source": "user",
184
+ "__source_note": "设置文件(模型/审批/沙盒等),不整体注入 context,故不显示 token 数"
185
+ }
186
+ ],
187
+ "skills": [
188
+ {
189
+ "id": "codex:skills:user:plugins.documents@openai-primary-runtime",
190
+ "slot": "skills",
191
+ "nativeName": "plugins.\"documents@openai-primary-runtime\"",
192
+ "nativePath": "/Users/user/.codex/config.toml",
193
+ "toggleable": false,
194
+ "enabled": true,
195
+ "source": "user",
196
+ "__source_note": "config.toml [plugins] 段 enabled = true;插件正文不在样例内,不显示 token 数"
197
+ },
198
+ {
199
+ "id": "codex:skills:user:plugins.visualize@openai-bundled",
200
+ "slot": "skills",
201
+ "nativeName": "plugins.\"visualize@openai-bundled\"",
202
+ "nativePath": "/Users/user/.codex/config.toml",
203
+ "toggleable": false,
204
+ "enabled": true,
205
+ "source": "user",
206
+ "__source_note": "config.toml [plugins] 段 enabled = true;插件正文不在样例内,不显示 token 数"
207
+ },
208
+ {
209
+ "id": "codex:skills:user:plugins.browser@openai-bundled",
210
+ "slot": "skills",
211
+ "nativeName": "plugins.\"browser@openai-bundled\"",
212
+ "nativePath": "/Users/user/.codex/config.toml",
213
+ "toggleable": false,
214
+ "enabled": true,
215
+ "source": "user",
216
+ "__source_note": "config.toml [plugins] 段 enabled = true;插件正文不在样例内,不显示 token 数"
217
+ }
218
+ ],
219
+ "tools": [
220
+ {
221
+ "id": "codex:tools:user:mcp_servers.figma",
222
+ "slot": "tools",
223
+ "nativeName": "mcp_servers.figma",
224
+ "nativePath": "/Users/user/.codex/config.toml",
225
+ "toggleable": true,
226
+ "enabled": true,
227
+ "source": "user",
228
+ "__source_note": "config.toml [mcp_servers.figma](url 型);工具定义字节需连上 server 才可得,不显示 token 数"
229
+ },
230
+ {
231
+ "id": "codex:tools:user:mcp_servers.node_repl",
232
+ "slot": "tools",
233
+ "nativeName": "mcp_servers.node_repl",
234
+ "nativePath": "/Users/user/.codex/config.toml",
235
+ "toggleable": true,
236
+ "enabled": true,
237
+ "source": "user",
238
+ "__source_note": "config.toml [mcp_servers.node_repl](command 型)"
239
+ },
240
+ {
241
+ "id": "codex:tools:user:mcp_servers.computer-use",
242
+ "slot": "tools",
243
+ "nativeName": "mcp_servers.computer-use",
244
+ "nativePath": "/Users/user/.codex/config.toml",
245
+ "toggleable": true,
246
+ "enabled": false,
247
+ "source": "user",
248
+ "__source_note": "config.toml enabled = false 一等字段(Codex 还支持 enabled_tools/disabled_tools 单工具粒度,三家最细)"
249
+ },
250
+ {
251
+ "id": "codex:tools:user:mcp_servers.chatcut_desktop",
252
+ "slot": "tools",
253
+ "nativeName": "mcp_servers.chatcut_desktop",
254
+ "nativePath": "/Users/user/.codex/config.toml",
255
+ "toggleable": true,
256
+ "enabled": true,
257
+ "source": "user",
258
+ "__source_note": "config.toml [mcp_servers.chatcut_desktop](command 型)"
259
+ }
260
+ ],
261
+ "gates": [
262
+ {
263
+ "id": "codex:gates:user:approval_policy",
264
+ "slot": "gates",
265
+ "nativeName": "approval_policy",
266
+ "nativePath": "/Users/user/.codex/config.toml",
267
+ "toggleable": false,
268
+ "enabled": true,
269
+ "source": "user",
270
+ "__source_note": "config.toml approval_policy = \"on-request\"。[hooks] 段真机未配置(fixtures README 已记缺口,M2 采真补入)"
271
+ },
272
+ {
273
+ "id": "codex:gates:user:sandbox_mode",
274
+ "slot": "gates",
275
+ "nativeName": "sandbox_mode",
276
+ "nativePath": "/Users/user/.codex/config.toml",
277
+ "toggleable": false,
278
+ "enabled": true,
279
+ "source": "user",
280
+ "__source_note": "config.toml sandbox_mode = \"workspace-write\""
281
+ }
282
+ ],
283
+ "history": []
284
+ },
285
+ "capabilities": { "live": "push", "actions": [] }
286
+ },
287
+ {
288
+ "__mock_note": "MOCK — 开发期静态样例:手工按 @wingman/types 冻结合同 + packages/fixtures/data/dsh/dump-config.yaml(`dsh --profile web --dump-config` 逐字节采集,钉定 @deepseek-ai/dsh@0.1.1-rc.2)构造。dump-config 无字节来源,故本 harness 不显示任何 token 数。",
289
+ "harness": "dsh",
290
+ "harnessVersion": "0.1.1-rc.2",
291
+ "scannedAt": "2026-08-25T04:00:00.000Z",
292
+ "slots": {
293
+ "base": [
294
+ {
295
+ "id": "dsh:base:bundle:@deepseek-ai/dsh-system-prompt",
296
+ "slot": "base",
297
+ "nativeName": "@deepseek-ai/dsh-system-prompt",
298
+ "nativePath": "",
299
+ "toggleable": false,
300
+ "enabled": true,
301
+ "source": "bundle",
302
+ "__source_note": "dsh 里连 system prompt 也是插件。来自 dump-config.yaml boot 树,无独立文件实体"
303
+ },
304
+ {
305
+ "id": "dsh:base:bundle:@deepseek-ai/dsh-agent-loop",
306
+ "slot": "base",
307
+ "nativeName": "@deepseek-ai/dsh-agent-loop",
308
+ "nativePath": "",
309
+ "toggleable": false,
310
+ "enabled": true,
311
+ "source": "bundle",
312
+ "__source_note": "agent loop 本体(一切皆插件)。来自 dump-config.yaml boot 树"
313
+ },
314
+ {
315
+ "id": "dsh:base:bundle:@deepseek-ai/dsh-llm",
316
+ "slot": "base",
317
+ "nativeName": "@deepseek-ai/dsh-llm",
318
+ "nativePath": "",
319
+ "toggleable": false,
320
+ "enabled": true,
321
+ "source": "bundle",
322
+ "__source_note": "model adapter 层插件。来自 dump-config.yaml boot 树"
323
+ }
324
+ ],
325
+ "rules": [
326
+ {
327
+ "id": "dsh:rules:profile:@deepseek-ai/dsh-agent-instructions",
328
+ "slot": "rules",
329
+ "nativeName": "@deepseek-ai/dsh-agent-instructions",
330
+ "nativePath": "",
331
+ "toggleable": true,
332
+ "enabled": false,
333
+ "source": "profile",
334
+ "__source_note": "规则文件注入插件(maxBytes 65536);web profile patch 置 disabled: true(dump-config.yaml)"
335
+ }
336
+ ],
337
+ "skills": [
338
+ {
339
+ "id": "dsh:skills:bundle:@deepseek-ai/dsh-skill",
340
+ "slot": "skills",
341
+ "nativeName": "@deepseek-ai/dsh-skill",
342
+ "nativePath": "",
343
+ "toggleable": true,
344
+ "enabled": true,
345
+ "source": "bundle",
346
+ "__source_note": "skill 机制核心插件。来自 dump-config.yaml boot 树,无独立文件实体"
347
+ },
348
+ {
349
+ "id": "dsh:skills:profile:@deepseek-ai/dsh-skill-filesystem",
350
+ "slot": "skills",
351
+ "nativeName": "@deepseek-ai/dsh-skill-filesystem",
352
+ "nativePath": "",
353
+ "toggleable": true,
354
+ "enabled": false,
355
+ "source": "profile",
356
+ "__source_note": "web profile patch 置 disabled: true(dump-config.yaml)"
357
+ },
358
+ {
359
+ "id": "dsh:skills:profile:@deepseek-ai/dsh-tool-skill",
360
+ "slot": "skills",
361
+ "nativeName": "@deepseek-ai/dsh-tool-skill",
362
+ "nativePath": "",
363
+ "toggleable": true,
364
+ "enabled": false,
365
+ "source": "profile",
366
+ "__source_note": "web profile patch 置 disabled: true(dump-config.yaml)"
367
+ }
368
+ ],
369
+ "tools": [
370
+ {
371
+ "id": "dsh:tools:profile:@deepseek-ai/dsh-tool-bash",
372
+ "slot": "tools",
373
+ "nativeName": "@deepseek-ai/dsh-tool-bash",
374
+ "nativePath": "",
375
+ "toggleable": true,
376
+ "enabled": false,
377
+ "source": "profile",
378
+ "__source_note": "web profile patch 置 disabled: true(dump-config.yaml;web profile 关闭 CLI 型工具)"
379
+ },
380
+ {
381
+ "id": "dsh:tools:profile:@deepseek-ai/dsh-tool-fs",
382
+ "slot": "tools",
383
+ "nativeName": "@deepseek-ai/dsh-tool-fs",
384
+ "nativePath": "",
385
+ "toggleable": true,
386
+ "enabled": false,
387
+ "source": "profile",
388
+ "__source_note": "web profile patch 置 disabled: true(dump-config.yaml)"
389
+ },
390
+ {
391
+ "id": "dsh:tools:profile:@deepseek-ai/dsh-tool-fs-search",
392
+ "slot": "tools",
393
+ "nativeName": "@deepseek-ai/dsh-tool-fs-search",
394
+ "nativePath": "",
395
+ "toggleable": true,
396
+ "enabled": false,
397
+ "source": "profile",
398
+ "__source_note": "web profile patch 置 disabled: true(dump-config.yaml)"
399
+ }
400
+ ],
401
+ "gates": [
402
+ {
403
+ "id": "dsh:gates:bundle:@deepseek-ai/dsh-user-approval",
404
+ "slot": "gates",
405
+ "nativeName": "@deepseek-ai/dsh-user-approval",
406
+ "nativePath": "",
407
+ "toggleable": true,
408
+ "enabled": true,
409
+ "source": "bundle",
410
+ "__source_note": "审批闸门插件,policy 随 DSH_PERMISSION_MODE(dump-config.yaml)"
411
+ },
412
+ {
413
+ "id": "dsh:gates:bundle:@deepseek-ai/dsh-permission-presets",
414
+ "slot": "gates",
415
+ "nativeName": "@deepseek-ai/dsh-permission-presets",
416
+ "nativePath": "",
417
+ "toggleable": true,
418
+ "enabled": true,
419
+ "source": "bundle",
420
+ "__source_note": "read-only / workspace-write / danger-full-access 三档预设(dump-config.yaml)"
421
+ },
422
+ {
423
+ "id": "dsh:gates:bundle:@deepseek-ai/dsh-sandbox-policy",
424
+ "slot": "gates",
425
+ "nativeName": "@deepseek-ai/dsh-sandbox-policy",
426
+ "nativePath": "",
427
+ "toggleable": true,
428
+ "enabled": true,
429
+ "source": "bundle",
430
+ "__source_note": "沙盒策略插件,mode 随 DSH_PERMISSION_MODE(dump-config.yaml)"
431
+ }
432
+ ],
433
+ "history": [
434
+ {
435
+ "id": "dsh:history:bundle:@deepseek-ai/dsh-session-persistence-jsonl",
436
+ "slot": "history",
437
+ "nativeName": "@deepseek-ai/dsh-session-persistence-jsonl",
438
+ "nativePath": "",
439
+ "toggleable": true,
440
+ "enabled": true,
441
+ "source": "bundle",
442
+ "__source_note": "append-only session log 插件,root = dshHomePath('sessions')(dump-config.yaml)"
443
+ },
444
+ {
445
+ "id": "dsh:history:bundle:@deepseek-ai/dsh-session-query-sqlite",
446
+ "slot": "history",
447
+ "nativeName": "@deepseek-ai/dsh-session-query-sqlite",
448
+ "nativePath": "",
449
+ "toggleable": true,
450
+ "enabled": true,
451
+ "source": "bundle",
452
+ "__source_note": "session 查询索引插件(dump-config.yaml)"
453
+ }
454
+ ]
455
+ },
456
+ "capabilities": { "live": "full", "actions": [] }
457
+ }
458
+ ]
@@ -0,0 +1,44 @@
1
+ {
2
+ "__mock_note": "MOCK — dev 演示重放件:events 手工复制自 packages/fixtures/data/live/cc-events.json(构造件,按 PLAN §4a 实测 schema)。仅在 EventSource 连不上 /api/events 时由「重放 fixtures 演示」按钮以 200ms 间隔本地注入,注入事件 UI 上全部带 MOCK 徽章(增补条款 10)。真实实况由 wingman serve 的 GET /api/events(SSE)提供。",
3
+ "harness": "cc",
4
+ "events": [
5
+ {
6
+ "hook_event_name": "SessionStart",
7
+ "session_id": "11111111-1111-4111-8111-111111111111",
8
+ "transcript_path": "/Users/user/.claude/projects/-Users-user-project/11111111-1111-4111-8111-111111111111.jsonl",
9
+ "cwd": "/Users/user/project",
10
+ "source": "startup"
11
+ },
12
+ {
13
+ "hook_event_name": "UserPromptSubmit",
14
+ "session_id": "11111111-1111-4111-8111-111111111111",
15
+ "transcript_path": "/Users/user/.claude/projects/-Users-user-project/11111111-1111-4111-8111-111111111111.jsonl",
16
+ "cwd": "/Users/user/project",
17
+ "prompt": "[SAMPLE] 跑一下测试看看哪里挂了"
18
+ },
19
+ {
20
+ "hook_event_name": "PreToolUse",
21
+ "session_id": "11111111-1111-4111-8111-111111111111",
22
+ "transcript_path": "/Users/user/.claude/projects/-Users-user-project/11111111-1111-4111-8111-111111111111.jsonl",
23
+ "cwd": "/Users/user/project",
24
+ "tool_name": "Bash",
25
+ "tool_input": { "command": "pnpm test", "description": "Run tests" }
26
+ },
27
+ {
28
+ "hook_event_name": "PostToolUse",
29
+ "session_id": "11111111-1111-4111-8111-111111111111",
30
+ "transcript_path": "/Users/user/.claude/projects/-Users-user-project/11111111-1111-4111-8111-111111111111.jsonl",
31
+ "cwd": "/Users/user/project",
32
+ "tool_name": "Bash",
33
+ "tool_input": { "command": "pnpm test", "description": "Run tests" },
34
+ "tool_response": { "stdout": "[SAMPLE] 3 passed", "stderr": "", "interrupted": false }
35
+ },
36
+ {
37
+ "hook_event_name": "Stop",
38
+ "session_id": "11111111-1111-4111-8111-111111111111",
39
+ "transcript_path": "/Users/user/.claude/projects/-Users-user-project/11111111-1111-4111-8111-111111111111.jsonl",
40
+ "cwd": "/Users/user/project",
41
+ "stop_hook_active": false
42
+ }
43
+ ]
44
+ }