@staix/agent-hub 0.20.0 → 0.22.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.
Files changed (183) hide show
  1. package/CHANGELOG.md +66 -3
  2. package/README.md +2 -2
  3. package/docs/agent-notes/README.md +11 -0
  4. package/docs/agent-notes/adapters.md +7 -3
  5. package/docs/agent-notes/benchmarks.md +27 -0
  6. package/docs/agent-notes/budget.md +2 -1
  7. package/docs/agent-notes/bus.md +3 -3
  8. package/docs/agent-notes/daemon.md +17 -8
  9. package/docs/agent-notes/local-worker.md +4 -0
  10. package/docs/agent-notes/models.md +2 -0
  11. package/docs/agent-notes/tasks.md +17 -9
  12. package/docs/agent-notes/tests.md +9 -2
  13. package/docs/bench.md +1 -1
  14. package/docs/data-policy.md +2 -0
  15. package/docs/dogfood.md +39 -4
  16. package/docs/events.md +2 -1
  17. package/docs/memory.md +9 -3
  18. package/docs/operations.md +610 -62
  19. package/docs/profiles.md +13 -1
  20. package/docs/quickstart.md +18 -9
  21. package/docs/research.md +7 -4
  22. package/docs/sdlc.md +54 -10
  23. package/docs/security.md +396 -34
  24. package/docs/smoke.md +133 -0
  25. package/docs/specs/2026-09-19-agent-hub-design.md +1101 -22
  26. package/docs/verification/2026-10-27-0.19.0.md +5 -5
  27. package/docs/verification/2026-10-28-claude-2.1.311-2.1.312-bash-permission.json +635 -0
  28. package/docs/verification/2026-10-28-claude-2.1.311-2.1.312-permission-transport.json +403 -0
  29. package/docs/verification/2026-10-28-claude-implementer-permission-triage.md +123 -0
  30. package/docs/verification/2026-10-28-jcode-0.99.1-usage.md +41 -0
  31. package/docs/verification/2026-10-28-realpath-name-audit.md +222 -0
  32. package/docs/verification/2026-10-28-routing-f0bb8ad0.md +1000 -0
  33. package/docs/verification/2026-10-29-0.21.0.md +61 -0
  34. package/docs/verification/2026-10-29-model-effort-capabilities.md +123 -0
  35. package/docs/verification/2026-10-29-modelrouting-b152ddb9.md +953 -0
  36. package/docs/verification/2026-10-30-0.22.0.md +49 -0
  37. package/docs/verification/2026-10-30-445-capability-probes.md +172 -0
  38. package/docs/verification/2026-10-30-bus-delivery-operational-settings.md +77 -0
  39. package/docs/verification/2026-10-30-jcode-ac4.md +24 -0
  40. package/docs/verification/2026-10-30-jcode-ac6.md +52 -0
  41. package/docs/verification/2026-10-30-recovery-wait-settings.md +141 -0
  42. package/docs/verification/claude-implementer-permission-triage.ts +160 -0
  43. package/docs/verification/claude-permission-transport-native.py +71 -14
  44. package/docs/verification/profiles/YYYY-MM-DD-research.md +1 -1
  45. package/docs/verified.json +15 -15
  46. package/package.json +2 -2
  47. package/plugins/agent-hub/.claude-plugin/plugin.json +1 -1
  48. package/plugins/agent-hub/server.js +1016 -280
  49. package/src/adapters/acp.ts +79 -3
  50. package/src/adapters/channel-peer.ts +4 -0
  51. package/src/adapters/claude-channel.ts +13 -6
  52. package/src/adapters/claude-implementer.ts +60 -7
  53. package/src/adapters/codex-appserver.ts +77 -4
  54. package/src/adapters/conformance/fakes/jcode-agent.ts +6 -2
  55. package/src/adapters/conformance/kit.ts +3 -9
  56. package/src/adapters/definitions/builtin-metadata.ts +3 -114
  57. package/src/adapters/definitions/native-config-defaults.ts +1 -1
  58. package/src/adapters/definitions/native-config-policy.ts +3 -2
  59. package/src/adapters/definitions/native-context.ts +12 -0
  60. package/src/adapters/external-metadata.ts +48 -0
  61. package/src/adapters/external-modules.ts +63 -3
  62. package/src/adapters/jcode.ts +6 -2
  63. package/src/adapters/local-worker.ts +40 -25
  64. package/src/adapters/native-proof-ports.ts +10 -0
  65. package/src/adapters/registry-types.ts +4 -0
  66. package/src/broker/protocol.ts +203 -0
  67. package/src/broker/server.ts +314 -0
  68. package/src/broker/store.ts +548 -0
  69. package/src/cli/bench.ts +3 -2
  70. package/src/cli/broker.ts +58 -0
  71. package/src/cli/conductor-recovery.ts +142 -0
  72. package/src/cli/configured-acp-entry.ts +26 -6
  73. package/src/cli/console-state.ts +59 -17
  74. package/src/cli/console.ts +17 -2
  75. package/src/cli/facts-hook.ts +3 -1
  76. package/src/cli/help.ts +29 -16
  77. package/src/cli/identity.ts +25 -10
  78. package/src/cli/init.ts +34 -7
  79. package/src/cli/intake-output.ts +33 -0
  80. package/src/cli/learn-output.ts +38 -0
  81. package/src/cli/main.ts +334 -73
  82. package/src/cli/output.ts +41 -1
  83. package/src/cli/recovery-package.ts +18 -1
  84. package/src/cli/recovery-waits.ts +26 -0
  85. package/src/cli/role-holders.ts +35 -0
  86. package/src/cli/room.ts +304 -0
  87. package/src/cli/say-input.ts +16 -0
  88. package/src/cli/schedule-output.ts +49 -0
  89. package/src/cli/sdlc-output.ts +44 -6
  90. package/src/cli/smoke-pty-bridge.ts +82 -0
  91. package/src/cli/smoke-pty.ts +153 -0
  92. package/src/cli/smoke-run.ts +139 -0
  93. package/src/cli/smoke-target.ts +130 -0
  94. package/src/cli/source-output.ts +29 -0
  95. package/src/cli/task-output.ts +3 -2
  96. package/src/cli/upgrade-runtime.ts +112 -28
  97. package/src/cli/upgrade.ts +68 -8
  98. package/src/hub/ask.ts +76 -12
  99. package/src/hub/board.ts +132 -22
  100. package/src/hub/bus.ts +416 -65
  101. package/src/hub/child-process.ts +2 -0
  102. package/src/hub/ci-watch.ts +42 -20
  103. package/src/hub/claude-failure-stage.ts +85 -0
  104. package/src/hub/claude-shell-wrapper.ts +11 -5
  105. package/src/hub/conductor.ts +17 -4
  106. package/src/hub/config-apply.ts +34 -6
  107. package/src/hub/config-reload.ts +7 -5
  108. package/src/hub/config-trust.ts +7 -1
  109. package/src/hub/context-window.ts +33 -3
  110. package/src/hub/control-client.ts +14 -2
  111. package/src/hub/corpus-config.ts +34 -0
  112. package/src/hub/corpus-evidence.ts +184 -0
  113. package/src/hub/corpus.ts +373 -0
  114. package/src/hub/cost-governance.ts +26 -0
  115. package/src/hub/daemon.ts +1209 -183
  116. package/src/hub/deliverable-files.ts +8 -2
  117. package/src/hub/delivery-journal.ts +200 -73
  118. package/src/hub/dogfood-profile.ts +32 -5
  119. package/src/hub/dogfood-read.ts +6 -2
  120. package/src/hub/envelope.ts +11 -0
  121. package/src/hub/eval-gate.ts +131 -0
  122. package/src/hub/events.ts +1 -1
  123. package/src/hub/external-instance.ts +69 -0
  124. package/src/hub/facts.ts +15 -5
  125. package/src/hub/folder-trigger.ts +223 -0
  126. package/src/hub/hub-tools.ts +2 -1
  127. package/src/hub/inference.ts +20 -5
  128. package/src/hub/instance-config.ts +69 -3
  129. package/src/hub/instance-execution.ts +6 -2
  130. package/src/hub/instances.ts +32 -4
  131. package/src/hub/intake.ts +125 -0
  132. package/src/hub/learning.ts +117 -0
  133. package/src/hub/lifecycle.ts +7 -3
  134. package/src/hub/limits.ts +12 -5
  135. package/src/hub/native-permission-request.ts +77 -0
  136. package/src/hub/operational-authority.ts +63 -5
  137. package/src/hub/operational-settings.ts +154 -0
  138. package/src/hub/operational-view.ts +1 -1
  139. package/src/hub/packs.ts +132 -0
  140. package/src/hub/path-policy.ts +7 -0
  141. package/src/hub/peer-doing.ts +130 -0
  142. package/src/hub/peers.ts +12 -0
  143. package/src/hub/queue-backpressure.ts +58 -0
  144. package/src/hub/read-tools.ts +2 -0
  145. package/src/hub/recovery-authority.ts +151 -0
  146. package/src/hub/recovery-policy.ts +220 -0
  147. package/src/hub/research.ts +24 -14
  148. package/src/hub/restart.ts +7 -0
  149. package/src/hub/routing.ts +54 -11
  150. package/src/hub/schedules.ts +266 -0
  151. package/src/hub/sdlc-merge.ts +38 -14
  152. package/src/hub/sdlc-metrics.ts +32 -10
  153. package/src/hub/sdlc-queue.ts +7 -1
  154. package/src/hub/sdlc-release.ts +1 -1
  155. package/src/hub/sdlc.ts +37 -7
  156. package/src/hub/security-baseline.ts +38 -0
  157. package/src/hub/settings.ts +27 -2
  158. package/src/hub/shipped-packs.ts +8 -0
  159. package/src/hub/snapshots.ts +72 -6
  160. package/src/hub/source-read.ts +160 -0
  161. package/src/hub/sources.ts +311 -0
  162. package/src/hub/tasks.ts +987 -110
  163. package/src/hub/workflow.ts +1 -1
  164. package/src/local/doc-read.ts +69 -0
  165. package/src/local/proxy.ts +4 -13
  166. package/src/local/tools.ts +37 -3
  167. package/src/local/web-fetch-config.ts +43 -0
  168. package/src/local/web-fetch.ts +183 -0
  169. package/src/memory/brief.ts +85 -13
  170. package/src/memory/capture.ts +1 -1
  171. package/src/rooms/application.ts +114 -0
  172. package/src/rooms/boundary.ts +103 -0
  173. package/src/rooms/commands.ts +294 -0
  174. package/src/rooms/crypto.ts +371 -0
  175. package/src/rooms/link.ts +584 -0
  176. package/src/rooms/policy.ts +82 -0
  177. package/src/rooms/remote-peer.ts +80 -0
  178. package/src/rooms/service.ts +426 -0
  179. package/src/rooms/status.ts +146 -0
  180. package/src/rooms/store.ts +1210 -0
  181. package/src/rooms/wire.ts +465 -0
  182. package/src/ui/index.html +91 -4
  183. package/templates/packs/example.pack.json +13 -0
@@ -12,7 +12,7 @@ What changed (see `CHANGELOG.md` for the full list):
12
12
  - Agent CLI drift: a daily public-source watch and a planner notice for unverified installed versions (#849, #855); a native version gate for Pi (#843: #847); new verified versions for agy, Jcode, kimi-review, headless Qwen and claude-implementer (#850, #851, #856, #858, #859).
13
13
  - Planner work-ready notices (#785: #842) and the lockfile-keyed dependency volume for the remote runner (#793: #846).
14
14
  - Sandbox protection for submodule git dirs and `config.worktree` (#862, #866), the Qwen background-task notice fix (#861), conductor error preservation (#812: #839).
15
- - CI: the suite watchdog stops on lost progress (#516: #870) and CI admission retries a transient GitHub 5xx or 429 (#872: #873).
15
+ - CI: the suite watchdog stops on lost progress (task 516: #870) and CI admission retries a transient GitHub 5xx or 429 (#872: #873).
16
16
 
17
17
  ## Reviews
18
18
 
@@ -31,7 +31,7 @@ Every PR below merged after its hub review, with bot review threads answered and
31
31
  | #850 (#843) | cbbe23bd | 2 |
32
32
  | #851 (#843) | 0431abff | 1 |
33
33
  | #853 (#852) | 4f52cbd4 | 4 |
34
- | #854 (#515) | 661eb9a1 | 2 |
34
+ | #854 (task 515) | 661eb9a1 | 2 |
35
35
  | #855 | 58525a1b | 5 |
36
36
  | #856 (#843) | 21fb4a56 | 2 |
37
37
  | #857 (#845) | 1ad9b7c7 | 2 |
@@ -42,11 +42,11 @@ Every PR below merged after its hub review, with bot review threads answered and
42
42
  | #862 | 3cfefa05 | 4 |
43
43
  | #866 (#865) | e02aa141 | 4 |
44
44
  | #868 (#867) | 125e82f1 | 2 |
45
- | #870 (#516) | 8ea5d00b | 4 |
45
+ | #870 (task 516) | 8ea5d00b | 4 |
46
46
  | #871 | ae22bb1b | 2 |
47
47
  | #873 (#872) | 08590801 | 5 |
48
48
 
49
- Two merges were bound to a hub approval at an earlier head of the same change: #870 (hub task #516 approved at f8ee3e52, merged at d5e16a3c, a rebase onto main with only CHANGELOG context differing) and #873 (hub task #525 approved at a159cc37, merged at 44344f23 after `gh pr update-branch` merged main into it). Each merge was pinned with `--match-head-commit` to the head whose CI was green. #857's first macOS leg and three #873 macOS runs were killed by the pre-#870 1440 s total budget or hit the `test/path-policy.test.ts` hardlink flake below; none of those failures was in the changed code.
49
+ Two merges were bound to a hub approval at an earlier head of the same change: #870 (hub task 516 approved at f8ee3e52, merged at d5e16a3c, a rebase onto main with only CHANGELOG context differing) and #873 (hub task 525 approved at a159cc37, merged at 44344f23 after `gh pr update-branch` merged main into it). Each merge was pinned with `--match-head-commit` to the head whose CI was green. #857's first macOS leg and three #873 macOS runs were killed by the pre-#870 1440 s total budget or hit the `test/path-policy.test.ts` hardlink flake below; none of those failures was in the changed code.
50
50
 
51
51
  ## Document review
52
52
 
@@ -64,7 +64,7 @@ Fourteen documents were stale against the 0.18.0 stamps (af22ee0d). Each was rec
64
64
  | `docs/agent-notes/tests.md` | corrected | Scope gains `scripts/progress-tee.sh` (#870); the CI admission retry bound for a 429 or 5xx (#873); Pi fakes must answer `--version` (#847); daemon tests with a GitHub origin and a headless implementer pass `shellDefaultBranchProbe` (#857). History moved to the notes README. |
65
65
  | `docs/agent-notes/tasks.md` | corrected | Scope gains `review-scope.ts`, `sdlc-merge.ts`, `sdlc-mirror.ts`; the planner work-ready notice rule (#842); `Tasks.bindShellBranch` as a board writer (#857). Review-scope history moved to the notes README. |
66
66
  | `docs/agent-notes/daemon.md` | corrected | Conductor operational refusals (#839); scope gains `agent-drift.ts` and `cli/agents.ts` (#855); validation of instance `model` and `review_scope` (#848, #853). |
67
- | `docs/agent-notes/README.md` | corrected | Background for the 0.19.0 rules (#852 classifier history, #843 fixtures, #516 watchdog). |
67
+ | `docs/agent-notes/README.md` | corrected | Background for the 0.19.0 rules (#852 classifier history, #843 fixtures, task 516 watchdog). |
68
68
  | `docs/agent-notes/benchmarks.md` | no change | The benchmark driver builds `PiPeer` directly, so the #847 preflight does not apply; #862/#866 are covered by the existing `profile()` change rule. |
69
69
  | `docs/agent-notes/budget.md` | no change | No budget path changed; the headless implementer still uses `budget.account: "claude"`. |
70
70
  | `docs/agent-notes/bus.md` | no change | No `bus.ts` change; the new notices use the existing publish and withdraw paths. |
@@ -0,0 +1,635 @@
1
+ {
2
+ "date": "2026-10-28",
3
+ "sourceHead": "243d4b535404d911ea2b1c728352d4abd82e5ea6",
4
+ "producer": "claude-permission-transport-native.py",
5
+ "producerSha256": "8f8885f7153b3a236f3b3f8ce49a344b908f2af3b3aba8b064762d82d1ecf12a",
6
+ "fixtureMcp": true,
7
+ "productionDaemon": false,
8
+ "hostWrapperRewriting": false,
9
+ "account": false,
10
+ "inference": false,
11
+ "results": [
12
+ {
13
+ "mode": "transport",
14
+ "cases": [
15
+ {
16
+ "version": "2.1.311",
17
+ "binarySha256": "85d8c08707fcfd1e78ffa0204eefbc6ec9e4fe22f375fb2767ef85d957ed3161",
18
+ "case": "allow",
19
+ "tool": "Bash",
20
+ "rewriteBash": false,
21
+ "serverName": "agent-hub",
22
+ "permissionTool": "hub_permission_request",
23
+ "requireToolUseId": true,
24
+ "nativeExit": 0,
25
+ "stoppedExternally": false,
26
+ "mcpCalls": 1,
27
+ "fileWritten": true,
28
+ "toolResultErrors": [
29
+ false
30
+ ],
31
+ "resultFrame": [
32
+ {
33
+ "is_error": false,
34
+ "denials": 0
35
+ }
36
+ ],
37
+ "elapsedSeconds": 0.356,
38
+ "requests": 2,
39
+ "passed": true,
40
+ "nativeGroupEmpty": true,
41
+ "binaryUnchanged": true
42
+ },
43
+ {
44
+ "version": "2.1.311",
45
+ "binarySha256": "85d8c08707fcfd1e78ffa0204eefbc6ec9e4fe22f375fb2767ef85d957ed3161",
46
+ "case": "deny",
47
+ "tool": "Bash",
48
+ "rewriteBash": false,
49
+ "serverName": "agent-hub",
50
+ "permissionTool": "hub_permission_request",
51
+ "requireToolUseId": true,
52
+ "nativeExit": 0,
53
+ "stoppedExternally": false,
54
+ "mcpCalls": 1,
55
+ "fileWritten": false,
56
+ "toolResultErrors": [
57
+ true
58
+ ],
59
+ "resultFrame": [
60
+ {
61
+ "is_error": false,
62
+ "denials": 1
63
+ }
64
+ ],
65
+ "elapsedSeconds": 0.311,
66
+ "requests": 2,
67
+ "passed": true,
68
+ "nativeGroupEmpty": true,
69
+ "binaryUnchanged": true
70
+ },
71
+ {
72
+ "version": "2.1.311",
73
+ "binarySha256": "85d8c08707fcfd1e78ffa0204eefbc6ec9e4fe22f375fb2767ef85d957ed3161",
74
+ "case": "missing-tool",
75
+ "tool": "Bash",
76
+ "rewriteBash": false,
77
+ "serverName": "agent-hub",
78
+ "permissionTool": "hub_permission_request",
79
+ "requireToolUseId": true,
80
+ "nativeExit": 1,
81
+ "stoppedExternally": false,
82
+ "mcpCalls": 0,
83
+ "fileWritten": false,
84
+ "toolResultErrors": [
85
+ true
86
+ ],
87
+ "resultFrame": [],
88
+ "elapsedSeconds": 0.315,
89
+ "requests": 1,
90
+ "passed": true,
91
+ "nativeGroupEmpty": true,
92
+ "binaryUnchanged": true
93
+ },
94
+ {
95
+ "version": "2.1.311",
96
+ "binarySha256": "85d8c08707fcfd1e78ffa0204eefbc6ec9e4fe22f375fb2767ef85d957ed3161",
97
+ "case": "hook-deny",
98
+ "tool": "Bash",
99
+ "rewriteBash": false,
100
+ "serverName": "agent-hub",
101
+ "permissionTool": "hub_permission_request",
102
+ "requireToolUseId": true,
103
+ "nativeExit": 0,
104
+ "stoppedExternally": false,
105
+ "mcpCalls": 1,
106
+ "fileWritten": false,
107
+ "toolResultErrors": [
108
+ true
109
+ ],
110
+ "resultFrame": [
111
+ {
112
+ "is_error": false,
113
+ "denials": 1
114
+ }
115
+ ],
116
+ "elapsedSeconds": 0.368,
117
+ "requests": 2,
118
+ "passed": true,
119
+ "nativeGroupEmpty": true,
120
+ "binaryUnchanged": true
121
+ },
122
+ {
123
+ "version": "2.1.311",
124
+ "binarySha256": "85d8c08707fcfd1e78ffa0204eefbc6ec9e4fe22f375fb2767ef85d957ed3161",
125
+ "case": "hook-allow",
126
+ "tool": "Bash",
127
+ "rewriteBash": false,
128
+ "serverName": "agent-hub",
129
+ "permissionTool": "hub_permission_request",
130
+ "requireToolUseId": true,
131
+ "nativeExit": 0,
132
+ "stoppedExternally": false,
133
+ "mcpCalls": 1,
134
+ "fileWritten": true,
135
+ "toolResultErrors": [
136
+ false
137
+ ],
138
+ "resultFrame": [
139
+ {
140
+ "is_error": false,
141
+ "denials": 0
142
+ }
143
+ ],
144
+ "elapsedSeconds": 0.35,
145
+ "requests": 2,
146
+ "passed": true,
147
+ "nativeGroupEmpty": true,
148
+ "binaryUnchanged": true
149
+ },
150
+ {
151
+ "version": "2.1.311",
152
+ "binarySha256": "85d8c08707fcfd1e78ffa0204eefbc6ec9e4fe22f375fb2767ef85d957ed3161",
153
+ "case": "mcp-error",
154
+ "tool": "Bash",
155
+ "rewriteBash": false,
156
+ "serverName": "agent-hub",
157
+ "permissionTool": "hub_permission_request",
158
+ "requireToolUseId": true,
159
+ "nativeExit": 0,
160
+ "stoppedExternally": false,
161
+ "mcpCalls": 1,
162
+ "fileWritten": false,
163
+ "toolResultErrors": [
164
+ true
165
+ ],
166
+ "resultFrame": [
167
+ {
168
+ "is_error": false,
169
+ "denials": 0
170
+ }
171
+ ],
172
+ "elapsedSeconds": 0.365,
173
+ "requests": 2,
174
+ "passed": true,
175
+ "nativeGroupEmpty": true,
176
+ "binaryUnchanged": true
177
+ },
178
+ {
179
+ "version": "2.1.311",
180
+ "binarySha256": "85d8c08707fcfd1e78ffa0204eefbc6ec9e4fe22f375fb2767ef85d957ed3161",
181
+ "case": "disconnect",
182
+ "tool": "Bash",
183
+ "rewriteBash": false,
184
+ "serverName": "agent-hub",
185
+ "permissionTool": "hub_permission_request",
186
+ "requireToolUseId": true,
187
+ "nativeExit": 0,
188
+ "stoppedExternally": false,
189
+ "mcpCalls": 1,
190
+ "fileWritten": false,
191
+ "toolResultErrors": [
192
+ true
193
+ ],
194
+ "resultFrame": [
195
+ {
196
+ "is_error": false,
197
+ "denials": 0
198
+ }
199
+ ],
200
+ "elapsedSeconds": 0.256,
201
+ "requests": 2,
202
+ "passed": true,
203
+ "nativeGroupEmpty": true,
204
+ "binaryUnchanged": true
205
+ },
206
+ {
207
+ "version": "2.1.311",
208
+ "binarySha256": "85d8c08707fcfd1e78ffa0204eefbc6ec9e4fe22f375fb2767ef85d957ed3161",
209
+ "case": "pending",
210
+ "tool": "Bash",
211
+ "rewriteBash": false,
212
+ "serverName": "agent-hub",
213
+ "permissionTool": "hub_permission_request",
214
+ "requireToolUseId": true,
215
+ "nativeExit": null,
216
+ "stoppedExternally": true,
217
+ "mcpCalls": 1,
218
+ "fileWritten": false,
219
+ "toolResultErrors": [],
220
+ "resultFrame": [],
221
+ "elapsedSeconds": 25.013,
222
+ "requests": 1,
223
+ "passed": true,
224
+ "nativeGroupEmpty": true,
225
+ "binaryUnchanged": true
226
+ },
227
+ {
228
+ "version": "2.1.311",
229
+ "binarySha256": "85d8c08707fcfd1e78ffa0204eefbc6ec9e4fe22f375fb2767ef85d957ed3161",
230
+ "case": "deadline",
231
+ "tool": "Bash",
232
+ "rewriteBash": false,
233
+ "serverName": "agent-hub",
234
+ "permissionTool": "hub_permission_request",
235
+ "requireToolUseId": true,
236
+ "nativeExit": 0,
237
+ "stoppedExternally": false,
238
+ "mcpCalls": 1,
239
+ "fileWritten": false,
240
+ "toolResultErrors": [
241
+ true
242
+ ],
243
+ "resultFrame": [
244
+ {
245
+ "is_error": false,
246
+ "denials": 1
247
+ }
248
+ ],
249
+ "elapsedSeconds": 0.416,
250
+ "requests": 2,
251
+ "passed": true,
252
+ "nativeGroupEmpty": true,
253
+ "binaryUnchanged": true
254
+ },
255
+ {
256
+ "version": "2.1.312",
257
+ "binarySha256": "6b5ec691195e551b02c41df9f7d723f4ea61eaa03c2df90acefe3736f1aeb620",
258
+ "case": "allow",
259
+ "tool": "Bash",
260
+ "rewriteBash": false,
261
+ "serverName": "agent-hub",
262
+ "permissionTool": "hub_permission_request",
263
+ "requireToolUseId": true,
264
+ "nativeExit": 0,
265
+ "stoppedExternally": false,
266
+ "mcpCalls": 1,
267
+ "fileWritten": true,
268
+ "toolResultErrors": [
269
+ false
270
+ ],
271
+ "resultFrame": [
272
+ {
273
+ "is_error": false,
274
+ "denials": 0
275
+ }
276
+ ],
277
+ "elapsedSeconds": 0.368,
278
+ "requests": 2,
279
+ "passed": true,
280
+ "nativeGroupEmpty": true,
281
+ "binaryUnchanged": true
282
+ },
283
+ {
284
+ "version": "2.1.312",
285
+ "binarySha256": "6b5ec691195e551b02c41df9f7d723f4ea61eaa03c2df90acefe3736f1aeb620",
286
+ "case": "deny",
287
+ "tool": "Bash",
288
+ "rewriteBash": false,
289
+ "serverName": "agent-hub",
290
+ "permissionTool": "hub_permission_request",
291
+ "requireToolUseId": true,
292
+ "nativeExit": 0,
293
+ "stoppedExternally": false,
294
+ "mcpCalls": 1,
295
+ "fileWritten": false,
296
+ "toolResultErrors": [
297
+ true
298
+ ],
299
+ "resultFrame": [
300
+ {
301
+ "is_error": false,
302
+ "denials": 1
303
+ }
304
+ ],
305
+ "elapsedSeconds": 0.366,
306
+ "requests": 2,
307
+ "passed": true,
308
+ "nativeGroupEmpty": true,
309
+ "binaryUnchanged": true
310
+ },
311
+ {
312
+ "version": "2.1.312",
313
+ "binarySha256": "6b5ec691195e551b02c41df9f7d723f4ea61eaa03c2df90acefe3736f1aeb620",
314
+ "case": "missing-tool",
315
+ "tool": "Bash",
316
+ "rewriteBash": false,
317
+ "serverName": "agent-hub",
318
+ "permissionTool": "hub_permission_request",
319
+ "requireToolUseId": true,
320
+ "nativeExit": 1,
321
+ "stoppedExternally": false,
322
+ "mcpCalls": 0,
323
+ "fileWritten": false,
324
+ "toolResultErrors": [
325
+ true
326
+ ],
327
+ "resultFrame": [],
328
+ "elapsedSeconds": 0.312,
329
+ "requests": 1,
330
+ "passed": true,
331
+ "nativeGroupEmpty": true,
332
+ "binaryUnchanged": true
333
+ },
334
+ {
335
+ "version": "2.1.312",
336
+ "binarySha256": "6b5ec691195e551b02c41df9f7d723f4ea61eaa03c2df90acefe3736f1aeb620",
337
+ "case": "hook-deny",
338
+ "tool": "Bash",
339
+ "rewriteBash": false,
340
+ "serverName": "agent-hub",
341
+ "permissionTool": "hub_permission_request",
342
+ "requireToolUseId": true,
343
+ "nativeExit": 0,
344
+ "stoppedExternally": false,
345
+ "mcpCalls": 1,
346
+ "fileWritten": false,
347
+ "toolResultErrors": [
348
+ true
349
+ ],
350
+ "resultFrame": [
351
+ {
352
+ "is_error": false,
353
+ "denials": 1
354
+ }
355
+ ],
356
+ "elapsedSeconds": 0.36,
357
+ "requests": 2,
358
+ "passed": true,
359
+ "nativeGroupEmpty": true,
360
+ "binaryUnchanged": true
361
+ },
362
+ {
363
+ "version": "2.1.312",
364
+ "binarySha256": "6b5ec691195e551b02c41df9f7d723f4ea61eaa03c2df90acefe3736f1aeb620",
365
+ "case": "hook-allow",
366
+ "tool": "Bash",
367
+ "rewriteBash": false,
368
+ "serverName": "agent-hub",
369
+ "permissionTool": "hub_permission_request",
370
+ "requireToolUseId": true,
371
+ "nativeExit": 0,
372
+ "stoppedExternally": false,
373
+ "mcpCalls": 1,
374
+ "fileWritten": true,
375
+ "toolResultErrors": [
376
+ false
377
+ ],
378
+ "resultFrame": [
379
+ {
380
+ "is_error": false,
381
+ "denials": 0
382
+ }
383
+ ],
384
+ "elapsedSeconds": 0.365,
385
+ "requests": 2,
386
+ "passed": true,
387
+ "nativeGroupEmpty": true,
388
+ "binaryUnchanged": true
389
+ },
390
+ {
391
+ "version": "2.1.312",
392
+ "binarySha256": "6b5ec691195e551b02c41df9f7d723f4ea61eaa03c2df90acefe3736f1aeb620",
393
+ "case": "mcp-error",
394
+ "tool": "Bash",
395
+ "rewriteBash": false,
396
+ "serverName": "agent-hub",
397
+ "permissionTool": "hub_permission_request",
398
+ "requireToolUseId": true,
399
+ "nativeExit": 0,
400
+ "stoppedExternally": false,
401
+ "mcpCalls": 1,
402
+ "fileWritten": false,
403
+ "toolResultErrors": [
404
+ true
405
+ ],
406
+ "resultFrame": [
407
+ {
408
+ "is_error": false,
409
+ "denials": 0
410
+ }
411
+ ],
412
+ "elapsedSeconds": 0.302,
413
+ "requests": 2,
414
+ "passed": true,
415
+ "nativeGroupEmpty": true,
416
+ "binaryUnchanged": true
417
+ },
418
+ {
419
+ "version": "2.1.312",
420
+ "binarySha256": "6b5ec691195e551b02c41df9f7d723f4ea61eaa03c2df90acefe3736f1aeb620",
421
+ "case": "disconnect",
422
+ "tool": "Bash",
423
+ "rewriteBash": false,
424
+ "serverName": "agent-hub",
425
+ "permissionTool": "hub_permission_request",
426
+ "requireToolUseId": true,
427
+ "nativeExit": 0,
428
+ "stoppedExternally": false,
429
+ "mcpCalls": 1,
430
+ "fileWritten": false,
431
+ "toolResultErrors": [
432
+ true
433
+ ],
434
+ "resultFrame": [
435
+ {
436
+ "is_error": false,
437
+ "denials": 0
438
+ }
439
+ ],
440
+ "elapsedSeconds": 0.252,
441
+ "requests": 2,
442
+ "passed": true,
443
+ "nativeGroupEmpty": true,
444
+ "binaryUnchanged": true
445
+ },
446
+ {
447
+ "version": "2.1.312",
448
+ "binarySha256": "6b5ec691195e551b02c41df9f7d723f4ea61eaa03c2df90acefe3736f1aeb620",
449
+ "case": "pending",
450
+ "tool": "Bash",
451
+ "rewriteBash": false,
452
+ "serverName": "agent-hub",
453
+ "permissionTool": "hub_permission_request",
454
+ "requireToolUseId": true,
455
+ "nativeExit": null,
456
+ "stoppedExternally": true,
457
+ "mcpCalls": 1,
458
+ "fileWritten": false,
459
+ "toolResultErrors": [],
460
+ "resultFrame": [],
461
+ "elapsedSeconds": 25.007,
462
+ "requests": 1,
463
+ "passed": true,
464
+ "nativeGroupEmpty": true,
465
+ "binaryUnchanged": true
466
+ },
467
+ {
468
+ "version": "2.1.312",
469
+ "binarySha256": "6b5ec691195e551b02c41df9f7d723f4ea61eaa03c2df90acefe3736f1aeb620",
470
+ "case": "deadline",
471
+ "tool": "Bash",
472
+ "rewriteBash": false,
473
+ "serverName": "agent-hub",
474
+ "permissionTool": "hub_permission_request",
475
+ "requireToolUseId": true,
476
+ "nativeExit": 0,
477
+ "stoppedExternally": false,
478
+ "mcpCalls": 1,
479
+ "fileWritten": false,
480
+ "toolResultErrors": [
481
+ true
482
+ ],
483
+ "resultFrame": [
484
+ {
485
+ "is_error": false,
486
+ "denials": 1
487
+ }
488
+ ],
489
+ "elapsedSeconds": 0.426,
490
+ "requests": 2,
491
+ "passed": true,
492
+ "nativeGroupEmpty": true,
493
+ "binaryUnchanged": true
494
+ }
495
+ ],
496
+ "certified": true,
497
+ "account": false,
498
+ "inference": false,
499
+ "tool": "Bash",
500
+ "rewriteBash": false,
501
+ "serverName": "agent-hub",
502
+ "permissionTool": "hub_permission_request",
503
+ "requireToolUseId": true
504
+ },
505
+ {
506
+ "mode": "rewrite",
507
+ "cases": [
508
+ {
509
+ "version": "2.1.311",
510
+ "binarySha256": "85d8c08707fcfd1e78ffa0204eefbc6ec9e4fe22f375fb2767ef85d957ed3161",
511
+ "case": "allow",
512
+ "tool": "Bash",
513
+ "rewriteBash": true,
514
+ "serverName": "agent-hub",
515
+ "permissionTool": "hub_permission_request",
516
+ "requireToolUseId": true,
517
+ "nativeExit": 0,
518
+ "stoppedExternally": false,
519
+ "mcpCalls": 1,
520
+ "fileWritten": true,
521
+ "toolResultErrors": [
522
+ false
523
+ ],
524
+ "resultFrame": [
525
+ {
526
+ "is_error": false,
527
+ "denials": 0
528
+ }
529
+ ],
530
+ "elapsedSeconds": 0.324,
531
+ "requests": 2,
532
+ "originalCommandExecuted": false,
533
+ "passed": true,
534
+ "nativeGroupEmpty": true,
535
+ "binaryUnchanged": true
536
+ },
537
+ {
538
+ "version": "2.1.311",
539
+ "binarySha256": "85d8c08707fcfd1e78ffa0204eefbc6ec9e4fe22f375fb2767ef85d957ed3161",
540
+ "case": "deny",
541
+ "tool": "Bash",
542
+ "rewriteBash": true,
543
+ "serverName": "agent-hub",
544
+ "permissionTool": "hub_permission_request",
545
+ "requireToolUseId": true,
546
+ "nativeExit": 0,
547
+ "stoppedExternally": false,
548
+ "mcpCalls": 1,
549
+ "fileWritten": false,
550
+ "toolResultErrors": [
551
+ true
552
+ ],
553
+ "resultFrame": [
554
+ {
555
+ "is_error": false,
556
+ "denials": 1
557
+ }
558
+ ],
559
+ "elapsedSeconds": 0.31,
560
+ "requests": 2,
561
+ "originalCommandExecuted": false,
562
+ "passed": true,
563
+ "nativeGroupEmpty": true,
564
+ "binaryUnchanged": true
565
+ },
566
+ {
567
+ "version": "2.1.312",
568
+ "binarySha256": "6b5ec691195e551b02c41df9f7d723f4ea61eaa03c2df90acefe3736f1aeb620",
569
+ "case": "allow",
570
+ "tool": "Bash",
571
+ "rewriteBash": true,
572
+ "serverName": "agent-hub",
573
+ "permissionTool": "hub_permission_request",
574
+ "requireToolUseId": true,
575
+ "nativeExit": 0,
576
+ "stoppedExternally": false,
577
+ "mcpCalls": 1,
578
+ "fileWritten": true,
579
+ "toolResultErrors": [
580
+ false
581
+ ],
582
+ "resultFrame": [
583
+ {
584
+ "is_error": false,
585
+ "denials": 0
586
+ }
587
+ ],
588
+ "elapsedSeconds": 0.363,
589
+ "requests": 2,
590
+ "originalCommandExecuted": false,
591
+ "passed": true,
592
+ "nativeGroupEmpty": true,
593
+ "binaryUnchanged": true
594
+ },
595
+ {
596
+ "version": "2.1.312",
597
+ "binarySha256": "6b5ec691195e551b02c41df9f7d723f4ea61eaa03c2df90acefe3736f1aeb620",
598
+ "case": "deny",
599
+ "tool": "Bash",
600
+ "rewriteBash": true,
601
+ "serverName": "agent-hub",
602
+ "permissionTool": "hub_permission_request",
603
+ "requireToolUseId": true,
604
+ "nativeExit": 0,
605
+ "stoppedExternally": false,
606
+ "mcpCalls": 1,
607
+ "fileWritten": false,
608
+ "toolResultErrors": [
609
+ true
610
+ ],
611
+ "resultFrame": [
612
+ {
613
+ "is_error": false,
614
+ "denials": 1
615
+ }
616
+ ],
617
+ "elapsedSeconds": 0.308,
618
+ "requests": 2,
619
+ "originalCommandExecuted": false,
620
+ "passed": true,
621
+ "nativeGroupEmpty": true,
622
+ "binaryUnchanged": true
623
+ }
624
+ ],
625
+ "certified": true,
626
+ "account": false,
627
+ "inference": false,
628
+ "tool": "Bash",
629
+ "rewriteBash": true,
630
+ "serverName": "agent-hub",
631
+ "permissionTool": "hub_permission_request",
632
+ "requireToolUseId": true
633
+ }
634
+ ]
635
+ }