@wrongstack/core 0.313.0 → 0.313.1

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 (182) hide show
  1. package/dist/chronicle/index.js +84 -6391
  2. package/dist/chronicle/project-server.js +84 -4868
  3. package/dist/chunk-2BUUIMQB.js +225 -0
  4. package/dist/chunk-2FK4WTFF.js +207 -0
  5. package/dist/chunk-2FQL4PDC.js +292 -0
  6. package/dist/chunk-2KKODIQU.js +2256 -0
  7. package/dist/chunk-2YU4WVBW.js +134 -0
  8. package/dist/chunk-3E244UDA.js +356 -0
  9. package/dist/chunk-3XPVB7BA.js +135 -0
  10. package/dist/chunk-4LJJYBAU.js +388 -0
  11. package/dist/chunk-4VWO3ZXL.js +342 -0
  12. package/dist/chunk-4XV6IR37.js +187 -0
  13. package/dist/chunk-4ZHTKJHM.js +183 -0
  14. package/dist/chunk-52RTVH4M.js +361 -0
  15. package/dist/chunk-57GEWK5X.js +26 -0
  16. package/dist/chunk-5DSMEVA4.js +931 -0
  17. package/dist/chunk-5RP3QTRL.js +1223 -0
  18. package/dist/chunk-5S437PRC.js +50 -0
  19. package/dist/chunk-5XDUGTKN.js +511 -0
  20. package/dist/chunk-62V2AFVG.js +422 -0
  21. package/dist/chunk-65RDIOR2.js +2470 -0
  22. package/dist/chunk-6AKOTGLM.js +597 -0
  23. package/dist/chunk-7ZHZE5EO.js +28 -0
  24. package/dist/chunk-A455ATZB.js +140 -0
  25. package/dist/chunk-AD7ZFZCS.js +46 -0
  26. package/dist/chunk-AI4LLQ2U.js +856 -0
  27. package/dist/chunk-ASX6AW36.js +789 -0
  28. package/dist/chunk-AT4V4XGI.js +3522 -0
  29. package/dist/chunk-AWNQ6ED6.js +311 -0
  30. package/dist/chunk-B4AMLZPB.js +9 -0
  31. package/dist/chunk-BAKVJLEV.js +417 -0
  32. package/dist/chunk-BJHVULHO.js +55 -0
  33. package/dist/chunk-CB2HFKTP.js +9 -0
  34. package/dist/chunk-CE4ZOCOI.js +1640 -0
  35. package/dist/chunk-CQQL4ZOQ.js +151 -0
  36. package/dist/chunk-DEIQMBD2.js +65 -0
  37. package/dist/chunk-E6I5RXVK.js +58 -0
  38. package/dist/chunk-EFEHDQGY.js +1589 -0
  39. package/dist/chunk-EODDVJBM.js +82 -0
  40. package/dist/chunk-EPC3GZD4.js +308 -0
  41. package/dist/chunk-FAYRX2AD.js +13 -0
  42. package/dist/chunk-FFSX2QDQ.js +362 -0
  43. package/dist/chunk-FHAMQS7Q.js +5856 -0
  44. package/dist/chunk-FIV4IJL7.js +2263 -0
  45. package/dist/chunk-FNXVT7HF.js +52 -0
  46. package/dist/chunk-FSWCWSTS.js +395 -0
  47. package/dist/chunk-FW5LDDMJ.js +16464 -0
  48. package/dist/chunk-FXQLIX3K.js +211 -0
  49. package/dist/chunk-G5AAKEEZ.js +228 -0
  50. package/dist/chunk-G5S3S5ZN.js +38 -0
  51. package/dist/chunk-GAZEWQEZ.js +231 -0
  52. package/dist/chunk-GFJOMSHG.js +125 -0
  53. package/dist/chunk-GFXZTHNI.js +158 -0
  54. package/dist/chunk-GM54GJBU.js +960 -0
  55. package/dist/chunk-GPQ3NJPR.js +900 -0
  56. package/dist/chunk-GTCU6DZ3.js +1 -0
  57. package/dist/chunk-H5E77KUJ.js +15 -0
  58. package/dist/chunk-H72H4XDU.js +1023 -0
  59. package/dist/chunk-HA4ZYA6T.js +178 -0
  60. package/dist/chunk-I45KAW2N.js +5020 -0
  61. package/dist/chunk-IQ35HMQL.js +1396 -0
  62. package/dist/chunk-IYFBFX34.js +86 -0
  63. package/dist/chunk-JJPMWPB6.js +109 -0
  64. package/dist/chunk-JTHKOYWU.js +663 -0
  65. package/dist/chunk-JVGPR3TS.js +365 -0
  66. package/dist/chunk-JVKB2TBL.js +48 -0
  67. package/dist/chunk-JX7VBZDK.js +31 -0
  68. package/dist/chunk-K3G6JBUC.js +5232 -0
  69. package/dist/chunk-K4YUNKU7.js +589 -0
  70. package/dist/chunk-KBZGE6LN.js +710 -0
  71. package/dist/chunk-KDQJCT2J.js +45 -0
  72. package/dist/chunk-KI4L2DUL.js +560 -0
  73. package/dist/chunk-KJ2ZTQSL.js +47 -0
  74. package/dist/chunk-KSJ5UTP7.js +154 -0
  75. package/dist/chunk-LHOA5DWA.js +28 -0
  76. package/dist/chunk-LX5QWLBL.js +27 -0
  77. package/dist/chunk-LZDDLNCZ.js +279 -0
  78. package/dist/chunk-M2WF6AXG.js +115 -0
  79. package/dist/chunk-M7BS2K6U.js +1 -0
  80. package/dist/chunk-NDBIPFNY.js +102 -0
  81. package/dist/chunk-NEMIWEXC.js +1199 -0
  82. package/dist/chunk-NFAYHPRH.js +323 -0
  83. package/dist/chunk-O37BQ65S.js +21 -0
  84. package/dist/chunk-O74MJHXU.js +187 -0
  85. package/dist/chunk-OJZEX73F.js +112 -0
  86. package/dist/chunk-PAAWLLZX.js +74 -0
  87. package/dist/chunk-PFXFQQRT.js +339 -0
  88. package/dist/chunk-PFZO3C6H.js +14 -0
  89. package/dist/chunk-PHH7LD45.js +113 -0
  90. package/dist/chunk-QRTG4XTI.js +188 -0
  91. package/dist/chunk-QVOVMXJR.js +1351 -0
  92. package/dist/chunk-RCQYT2I4.js +757 -0
  93. package/dist/chunk-RD6DEE36.js +1178 -0
  94. package/dist/chunk-RJIZEJ42.js +30 -0
  95. package/dist/chunk-RPOA7IAE.js +150 -0
  96. package/dist/chunk-SN2DQRL6.js +1172 -0
  97. package/dist/chunk-SQJVFEBV.js +41 -0
  98. package/dist/chunk-SQP64RCS.js +5391 -0
  99. package/dist/chunk-SVT4RNTR.js +49 -0
  100. package/dist/chunk-SWUFN7XM.js +43 -0
  101. package/dist/chunk-SXMVYC5H.js +174 -0
  102. package/dist/chunk-SZ6AYUIZ.js +23 -0
  103. package/dist/chunk-T3KGZBU5.js +3171 -0
  104. package/dist/chunk-TBRL2RCC.js +9 -0
  105. package/dist/chunk-TRT2HRWZ.js +18 -0
  106. package/dist/chunk-TYW2GI5I.js +1077 -0
  107. package/dist/chunk-UIWONWVG.js +4959 -0
  108. package/dist/chunk-VB3H5WWB.js +151 -0
  109. package/dist/chunk-W4A6QA3D.js +258 -0
  110. package/dist/chunk-WBPVKEEE.js +227 -0
  111. package/dist/chunk-WEBMSQP2.js +123 -0
  112. package/dist/chunk-WOEZV3Q4.js +333 -0
  113. package/dist/chunk-WQQON3SV.js +473 -0
  114. package/dist/chunk-WQTOVMGV.js +119 -0
  115. package/dist/chunk-WZO23AWO.js +2779 -0
  116. package/dist/chunk-XBDP4QPW.js +7 -0
  117. package/dist/chunk-XEBHSJLT.js +103 -0
  118. package/dist/chunk-XQ2ECNK3.js +1 -0
  119. package/dist/chunk-XQ2XGIBF.js +2086 -0
  120. package/dist/chunk-Y2GE5TSI.js +355 -0
  121. package/dist/chunk-YBUJCZ57.js +351 -0
  122. package/dist/chunk-YNCVSFGF.js +149 -0
  123. package/dist/chunk-YUPMXOGP.js +282 -0
  124. package/dist/chunk-YY6APYUM.js +49 -0
  125. package/dist/chunk-Z2IJUO45.js +691 -0
  126. package/dist/chunk-ZEHUCJHY.js +129 -0
  127. package/dist/chunk-ZYU2YOJ6.js +1496 -0
  128. package/dist/chunk-ZZ4V3WIZ.js +163 -0
  129. package/dist/coordination/agents/index.js +145 -6260
  130. package/dist/coordination/index.js +365 -34324
  131. package/dist/coordination/mailbox-project-server.js +48 -3276
  132. package/dist/coordination/provider-status-tracker.d.ts +4 -0
  133. package/dist/core/agent.d.ts +14 -1
  134. package/dist/core/index.js +267 -12480
  135. package/dist/core/model-ref.js +5 -23
  136. package/dist/core/provider-runner.d.ts +36 -1
  137. package/dist/design/index.js +50 -1087
  138. package/dist/execution/index.d.ts +1 -1
  139. package/dist/execution/index.js +1599 -21888
  140. package/dist/execution/prompt-enhancer.js +16 -535
  141. package/dist/execution/retry-policy.d.ts +31 -1
  142. package/dist/extension/index.js +7 -311
  143. package/dist/goal/index.js +33 -3435
  144. package/dist/hooks/index.js +14 -1138
  145. package/dist/hq/index.js +112 -5139
  146. package/dist/hq/protocol.js +21 -668
  147. package/dist/index.js +1410 -92656
  148. package/dist/infrastructure/index.js +64 -4811
  149. package/dist/kernel/events/provider-events.d.ts +15 -0
  150. package/dist/kernel/index.js +14 -992
  151. package/dist/models/index.js +40 -1117
  152. package/dist/notifications/index.js +3 -108
  153. package/dist/observability/index.js +17 -279
  154. package/dist/plugin/index.js +584 -14835
  155. package/dist/prompts/index.js +14 -948
  156. package/dist/registry/index.js +9 -822
  157. package/dist/registry-R23UBE7H.js +14 -0
  158. package/dist/replay/index.js +6 -84
  159. package/dist/review-finding-store-DKAV3AS6.js +21 -0
  160. package/dist/review-report-store-OWY3EC3N.js +19 -0
  161. package/dist/security/index.js +114 -2202
  162. package/dist/session-catalog/index.js +36 -2103
  163. package/dist/session-catalog/project-server.js +42 -1435
  164. package/dist/skills/index.js +35 -1578
  165. package/dist/storage/index.js +182 -15600
  166. package/dist/tasking/index.js +10 -676
  167. package/dist/tools/index.js +52 -9590
  168. package/dist/types/config/autonomy.d.ts +5 -0
  169. package/dist/types/config/ui.d.ts +1 -1
  170. package/dist/types/errors.d.ts +18 -0
  171. package/dist/types/index.js +121 -1342
  172. package/dist/types/provider-runner.d.ts +8 -0
  173. package/dist/types/session-markers.js +8 -144
  174. package/dist/utils/error.js +3 -4
  175. package/dist/utils/expect-defined.js +3 -9
  176. package/dist/utils/heap-watchdog.js +6 -706
  177. package/dist/utils/index.js +269 -5685
  178. package/dist/utils/sage-output-block.js +5 -42
  179. package/dist/wiring/proxy-rewrite.d.ts +18 -0
  180. package/dist/wiring/proxy-rewrite.js +18 -121
  181. package/dist/worktree/index.js +6 -887
  182. package/package.json +4 -4
@@ -1,314 +1,10 @@
1
- // src/utils/expect-defined.ts
2
- function expectDefined(value, label) {
3
- if (value === null || value === void 0) {
4
- const err = new Error(label ? `Expected ${label} to be defined` : "Expected value to be defined");
5
- err.name = "ExpectDefinedError";
6
- throw err;
7
- }
8
- return value;
9
- }
10
-
11
- // src/types/errors.ts
12
- var ERROR_CODES = {
13
- // Provider
14
- PROVIDER_RATE_LIMITED: "PROVIDER_RATE_LIMITED",
15
- PROVIDER_AUTH_FAILED: "PROVIDER_AUTH_FAILED",
16
- PROVIDER_OVERLOADED: "PROVIDER_OVERLOADED",
17
- PROVIDER_INVALID_REQUEST: "PROVIDER_INVALID_REQUEST",
18
- PROVIDER_SERVER_ERROR: "PROVIDER_SERVER_ERROR",
19
- PROVIDER_NETWORK_ERROR: "PROVIDER_NETWORK_ERROR",
20
- PROVIDER_CONTEXT_OVERFLOW: "PROVIDER_CONTEXT_OVERFLOW",
21
- // Tool
22
- TOOL_NOT_FOUND: "TOOL_NOT_FOUND",
23
- TOOL_PERMISSION_DENIED: "TOOL_PERMISSION_DENIED",
24
- TOOL_EXECUTION_FAILED: "TOOL_EXECUTION_FAILED",
25
- TOOL_TIMEOUT: "TOOL_TIMEOUT",
26
- TOOL_INPUT_INVALID: "TOOL_INPUT_INVALID",
27
- // Config
28
- CONFIG_INVALID: "CONFIG_INVALID",
29
- CONFIG_NOT_FOUND: "CONFIG_NOT_FOUND",
30
- CONFIG_PARSE_FAILED: "CONFIG_PARSE_FAILED",
31
- CONFIG_MIGRATION_NEEDED: "CONFIG_MIGRATION_NEEDED",
32
- // Plugin
33
- PLUGIN_LOAD_FAILED: "PLUGIN_LOAD_FAILED",
34
- PLUGIN_API_MISMATCH: "PLUGIN_API_MISMATCH",
35
- PLUGIN_MISSING_DEPENDENCY: "PLUGIN_MISSING_DEPENDENCY",
36
- // Agent
37
- AGENT_ITERATION_LIMIT: "AGENT_ITERATION_LIMIT",
38
- AGENT_CONTEXT_OVERFLOW: "AGENT_CONTEXT_OVERFLOW",
39
- AGENT_ABORTED: "AGENT_ABORTED",
40
- AGENT_RUN_FAILED: "AGENT_RUN_FAILED",
41
- // Session
42
- SESSION_NOT_FOUND: "SESSION_NOT_FOUND",
43
- SESSION_CORRUPTED: "SESSION_CORRUPTED",
44
- SESSION_WRITE_FAILED: "SESSION_WRITE_FAILED",
45
- // Container / Registry
46
- CONTAINER_TOKEN_ALREADY_BOUND: "CONTAINER_TOKEN_ALREADY_BOUND",
47
- CONTAINER_TOKEN_NOT_BOUND: "CONTAINER_TOKEN_NOT_BOUND",
48
- CONTAINER_CIRCULAR_DEPENDENCY: "CONTAINER_CIRCULAR_DEPENDENCY",
49
- REGISTRY_DUPLICATE: "REGISTRY_DUPLICATE",
50
- REGISTRY_NOT_FOUND: "REGISTRY_NOT_FOUND",
51
- REGISTRY_INVALID: "REGISTRY_INVALID",
52
- // File system
53
- FS_READ_FAILED: "FS_READ_FAILED",
54
- FS_WRITE_FAILED: "FS_WRITE_FAILED",
55
- FS_MKDIR_FAILED: "FS_MKDIR_FAILED",
56
- FS_DELETE_FAILED: "FS_DELETE_FAILED",
57
- FS_ATOMIC_WRITE_FAILED: "FS_ATOMIC_WRITE_FAILED",
58
- // SDD (Spec-Driven Development)
59
- SDD_VALIDATION_FAILED: "SDD_VALIDATION_FAILED",
60
- SDD_PARSE_FAILED: "SDD_PARSE_FAILED",
61
- SDD_INVALID_STATE: "SDD_INVALID_STATE",
62
- SDD_NOT_READY: "SDD_NOT_READY",
63
- // General
64
- VALIDATION_ERROR: "VALIDATION_ERROR",
65
- PARSE_FAILED: "PARSE_FAILED",
66
- UNKNOWN: "UNKNOWN"
67
- };
68
- var WrongStackError = class extends Error {
69
- code;
70
- subsystem;
71
- severity;
72
- recoverable;
73
- context;
74
- constructor(opts) {
75
- super(opts.message, { cause: opts.cause });
76
- this.name = "WrongStackError";
77
- this.code = opts.code;
78
- this.subsystem = opts.subsystem;
79
- this.severity = opts.severity ?? "error";
80
- this.recoverable = opts.recoverable ?? false;
81
- this.context = opts.context;
82
- }
83
- /**
84
- * Render a one-line user-facing description.
85
- * Subclasses should override for domain-specific formatting.
86
- */
87
- describe() {
88
- const ctx = this.context ? ` ${formatContext(this.context)}` : "";
89
- return `${this.code}: ${this.message}${ctx}`;
90
- }
91
- };
92
- function formatContext(ctx) {
93
- const parts = Object.entries(ctx).filter(([, v]) => v !== void 0).slice(0, 3).map(([k, v]) => `${k}=${String(v)}`);
94
- return parts.length > 0 ? `[${parts.join(" ")}]` : "";
95
- }
96
-
97
- // src/extension/registry.ts
98
- var ExtensionRegistry = class {
99
- extensions = [];
100
- promptContributors = [];
101
- log;
102
- setLogger(log) {
103
- this.log = log;
104
- }
105
- /**
106
- * Register a system prompt contributor. Returns an unregister function.
107
- * Contributors are called on every system prompt build in registration
108
- * order. Their output blocks are inserted after the core environment
109
- * block, before the mode and plan blocks.
110
- */
111
- registerSystemPromptContributor(c) {
112
- this.promptContributors.push(c);
113
- return () => {
114
- const idx = this.promptContributors.indexOf(c);
115
- if (idx >= 0) this.promptContributors.splice(idx, 1);
116
- };
117
- }
118
- /**
119
- * Build all registered system prompt contributions.
120
- * Failures are caught and logged — one bad contributor doesn't
121
- * break the prompt assembly.
122
- */
123
- async buildSystemPromptContributions(ctx) {
124
- const blocks = [];
125
- const snapshot = [...this.promptContributors];
126
- for (const c of snapshot) {
127
- try {
128
- const contributed = await c(ctx);
129
- blocks.push(...contributed);
130
- } catch (err) {
131
- this.log?.error("SystemPromptContributor failed", err);
132
- }
133
- }
134
- return blocks;
135
- }
136
- /**
137
- * Returns the live array of contributors (readonly snapshot for
138
- * passing to DefaultSystemPromptBuilder at build time).
139
- */
140
- listSystemPromptContributors() {
141
- return this.promptContributors;
142
- }
143
- /**
144
- * Register an extension. Duplicate names are rejected.
145
- * Returns an unregister function.
146
- */
147
- register(ext) {
148
- if (this.extensions.some((e) => e.name === ext.name)) {
149
- throw new WrongStackError({
150
- message: `Extension "${ext.name}" already registered`,
151
- code: ERROR_CODES.REGISTRY_DUPLICATE,
152
- subsystem: "container",
153
- context: { extension: ext.name }
154
- });
155
- }
156
- this.extensions.push(ext);
157
- return () => this.unregister(ext.name);
158
- }
159
- /**
160
- * Register an extension, silently replacing any previous registration
161
- * with the same name. Use this when overriding a default extension.
162
- */
163
- registerOrReplace(ext) {
164
- const idx = this.extensions.findIndex((e) => e.name === ext.name);
165
- if (idx >= 0) this.extensions.splice(idx, 1);
166
- return this.register(ext);
167
- }
168
- /**
169
- * Unregister an extension by name. Returns true if found.
170
- */
171
- unregister(name) {
172
- const idx = this.extensions.findIndex((e) => e.name === name);
173
- if (idx === -1) return false;
174
- this.extensions.splice(idx, 1);
175
- return true;
176
- }
177
- /**
178
- * List registered extension names in order.
179
- */
180
- list() {
181
- return this.extensions.map((e) => e.name);
182
- }
183
- /**
184
- * Check if an extension with the given name is registered.
185
- */
186
- has(name) {
187
- return this.extensions.some((e) => e.name === name);
188
- }
189
- /**
190
- * Remove all registered extensions and contributors.
191
- */
192
- clear() {
193
- this.extensions.length = 0;
194
- this.promptContributors.length = 0;
195
- }
196
- // ── Hook runners ─────────────────────────────────────────────────
197
- async runBeforeRun(...args) {
198
- const snapshot = [...this.extensions];
199
- for (const ext of snapshot) {
200
- if (!ext.beforeRun) continue;
201
- try {
202
- await ext.beforeRun(...args);
203
- } catch (err) {
204
- this.log?.error(`Extension "${ext.name}" beforeRun hook failed`, err);
205
- }
206
- }
207
- }
208
- async runAfterRun(...args) {
209
- const snapshot = [...this.extensions];
210
- for (const ext of snapshot) {
211
- if (!ext.afterRun) continue;
212
- try {
213
- await ext.afterRun(...args);
214
- } catch (err) {
215
- this.log?.error(`Extension "${ext.name}" afterRun hook failed`, err);
216
- }
217
- }
218
- }
219
- async runBeforeIteration(...args) {
220
- const snapshot = [...this.extensions];
221
- for (const ext of snapshot) {
222
- if (!ext.beforeIteration) continue;
223
- try {
224
- await ext.beforeIteration(...args);
225
- } catch (err) {
226
- this.log?.error(`Extension "${ext.name}" beforeIteration hook failed`, err);
227
- }
228
- }
229
- }
230
- async runAfterIteration(...args) {
231
- const snapshot = [...this.extensions];
232
- for (const ext of snapshot) {
233
- if (!ext.afterIteration) continue;
234
- try {
235
- await ext.afterIteration(...args);
236
- } catch (err) {
237
- this.log?.error(`Extension "${ext.name}" afterIteration hook failed`, err);
238
- }
239
- }
240
- }
241
- /**
242
- * Run onError hooks in order. The first hook that returns a non-void
243
- * result wins; subsequent hooks are skipped.
244
- */
245
- async runOnError(...args) {
246
- const snapshot = [...this.extensions];
247
- for (const ext of snapshot) {
248
- if (!ext.onError) continue;
249
- try {
250
- const result = await ext.onError(...args);
251
- if (result) return result;
252
- } catch (err) {
253
- this.log?.error(`Extension "${ext.name}" onError hook failed`, err);
254
- }
255
- }
256
- }
257
- /**
258
- * Build a composed provider runner. Extensions with `wrapProviderRunner`
259
- * form a middleware-style chain: the innermost extension wraps the
260
- * default runner, each subsequent wrapper wraps the previous.
261
- *
262
- * Utility calls may exclude agent-loop-only middleware (notably
263
- * `fallback-model`) while retaining request-safety wrappers such as the
264
- * prompt firewall. One-shot orchestration owns its provider and fallback
265
- * route, so an agent-loop fallback wrapper cannot safely run against it.
266
- */
267
- wrapProviderRunner(inner, options) {
268
- const excluded = new Set(options?.exclude);
269
- const wrappers = this.extensions.filter((e) => e.wrapProviderRunner && !excluded.has(e.name)).map((e) => ({ name: e.name, wrap: expectDefined(e.wrapProviderRunner) }));
270
- if (wrappers.length === 0) return inner;
271
- let composed = inner;
272
- for (let i = wrappers.length - 1; i >= 0; i--) {
273
- const wrapper = wrappers[i];
274
- if (!wrapper) continue;
275
- const next = composed;
276
- composed = async (ctx, req) => {
277
- try {
278
- return await wrapper.wrap(ctx, req, next);
279
- } catch (err) {
280
- this.log?.error(`Extension "${wrapper.name}" wrapProviderRunner failed`, err);
281
- throw err;
282
- }
283
- };
284
- }
285
- return composed;
286
- }
287
- async runBeforeToolExecution(...args) {
288
- let toolUses = args[1];
289
- const snapshot = [...this.extensions];
290
- for (const ext of snapshot) {
291
- if (!ext.beforeToolExecution) continue;
292
- try {
293
- toolUses = await ext.beforeToolExecution(args[0], toolUses);
294
- } catch (err) {
295
- this.log?.error(`Extension "${ext.name}" beforeToolExecution hook failed`, err);
296
- }
297
- }
298
- return toolUses;
299
- }
300
- async runAfterToolExecution(...args) {
301
- const snapshot = [...this.extensions];
302
- for (const ext of snapshot) {
303
- if (!ext.afterToolExecution) continue;
304
- try {
305
- await ext.afterToolExecution(...args);
306
- } catch (err) {
307
- this.log?.error(`Extension "${ext.name}" afterToolExecution hook failed`, err);
308
- }
309
- }
310
- }
311
- };
1
+ import "../chunk-XQ2ECNK3.js";
2
+ import {
3
+ ExtensionRegistry
4
+ } from "../chunk-G5AAKEEZ.js";
5
+ import "../chunk-WOEZV3Q4.js";
6
+ import "../chunk-TBRL2RCC.js";
7
+ import "../chunk-PFZO3C6H.js";
312
8
  export {
313
9
  ExtensionRegistry
314
10
  };