onbuzz 4.9.13 → 4.10.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 (451) hide show
  1. package/node_modules/glob/README.md +31 -5
  2. package/node_modules/glob/dist/commonjs/glob.d.ts +8 -0
  3. package/node_modules/glob/dist/commonjs/glob.d.ts.map +1 -1
  4. package/node_modules/glob/dist/commonjs/glob.js +2 -1
  5. package/node_modules/glob/dist/commonjs/glob.js.map +1 -1
  6. package/node_modules/glob/dist/commonjs/index.min.js +3 -3
  7. package/node_modules/glob/dist/commonjs/index.min.js.map +4 -4
  8. package/node_modules/glob/dist/commonjs/pattern.d.ts +3 -0
  9. package/node_modules/glob/dist/commonjs/pattern.d.ts.map +1 -1
  10. package/node_modules/glob/dist/commonjs/pattern.js +4 -0
  11. package/node_modules/glob/dist/commonjs/pattern.js.map +1 -1
  12. package/node_modules/glob/dist/esm/glob.d.ts +8 -0
  13. package/node_modules/glob/dist/esm/glob.d.ts.map +1 -1
  14. package/node_modules/glob/dist/esm/glob.js +2 -1
  15. package/node_modules/glob/dist/esm/glob.js.map +1 -1
  16. package/node_modules/glob/dist/esm/index.min.js +3 -3
  17. package/node_modules/glob/dist/esm/index.min.js.map +4 -4
  18. package/node_modules/glob/dist/esm/pattern.d.ts +3 -0
  19. package/node_modules/glob/dist/esm/pattern.d.ts.map +1 -1
  20. package/node_modules/glob/dist/esm/pattern.js +4 -0
  21. package/node_modules/glob/dist/esm/pattern.js.map +1 -1
  22. package/node_modules/{@isaacs → glob/node_modules}/balanced-match/README.md +7 -10
  23. package/node_modules/{@isaacs → glob/node_modules}/balanced-match/package.json +7 -18
  24. package/node_modules/{@isaacs → glob/node_modules}/brace-expansion/README.md +3 -6
  25. package/node_modules/{@isaacs → glob/node_modules}/brace-expansion/dist/commonjs/index.js +6 -4
  26. package/node_modules/glob/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -0
  27. package/node_modules/{@isaacs → glob/node_modules}/brace-expansion/dist/esm/index.js +6 -4
  28. package/node_modules/glob/node_modules/brace-expansion/dist/esm/index.js.map +1 -0
  29. package/node_modules/{@isaacs → glob/node_modules}/brace-expansion/package.json +11 -7
  30. package/node_modules/glob/node_modules/minimatch/README.md +76 -1
  31. package/node_modules/glob/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +1 -1
  32. package/node_modules/glob/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +1 -1
  33. package/node_modules/glob/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +1 -1
  34. package/node_modules/glob/node_modules/minimatch/dist/commonjs/ast.d.ts +4 -2
  35. package/node_modules/glob/node_modules/minimatch/dist/commonjs/ast.d.ts.map +1 -1
  36. package/node_modules/glob/node_modules/minimatch/dist/commonjs/ast.js +309 -55
  37. package/node_modules/glob/node_modules/minimatch/dist/commonjs/ast.js.map +1 -1
  38. package/node_modules/glob/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +1 -1
  39. package/node_modules/glob/node_modules/minimatch/dist/commonjs/brace-expressions.js +2 -4
  40. package/node_modules/glob/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +1 -1
  41. package/node_modules/glob/node_modules/minimatch/dist/commonjs/escape.d.ts +1 -1
  42. package/node_modules/glob/node_modules/minimatch/dist/commonjs/escape.d.ts.map +1 -1
  43. package/node_modules/glob/node_modules/minimatch/dist/commonjs/escape.js +4 -4
  44. package/node_modules/glob/node_modules/minimatch/dist/commonjs/escape.js.map +1 -1
  45. package/node_modules/glob/node_modules/minimatch/dist/commonjs/index.d.ts +81 -1
  46. package/node_modules/glob/node_modules/minimatch/dist/commonjs/index.d.ts.map +1 -1
  47. package/node_modules/glob/node_modules/minimatch/dist/commonjs/index.js +232 -134
  48. package/node_modules/glob/node_modules/minimatch/dist/commonjs/index.js.map +1 -1
  49. package/node_modules/glob/node_modules/minimatch/dist/commonjs/unescape.d.ts +1 -1
  50. package/node_modules/glob/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +1 -1
  51. package/node_modules/glob/node_modules/minimatch/dist/commonjs/unescape.js +8 -8
  52. package/node_modules/glob/node_modules/minimatch/dist/commonjs/unescape.js.map +1 -1
  53. package/node_modules/glob/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +1 -1
  54. package/node_modules/glob/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +1 -1
  55. package/node_modules/glob/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +1 -1
  56. package/node_modules/glob/node_modules/minimatch/dist/esm/ast.d.ts +4 -2
  57. package/node_modules/glob/node_modules/minimatch/dist/esm/ast.d.ts.map +1 -1
  58. package/node_modules/glob/node_modules/minimatch/dist/esm/ast.js +309 -55
  59. package/node_modules/glob/node_modules/minimatch/dist/esm/ast.js.map +1 -1
  60. package/node_modules/glob/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +1 -1
  61. package/node_modules/glob/node_modules/minimatch/dist/esm/brace-expressions.js +2 -4
  62. package/node_modules/glob/node_modules/minimatch/dist/esm/brace-expressions.js.map +1 -1
  63. package/node_modules/glob/node_modules/minimatch/dist/esm/escape.d.ts +1 -1
  64. package/node_modules/glob/node_modules/minimatch/dist/esm/escape.d.ts.map +1 -1
  65. package/node_modules/glob/node_modules/minimatch/dist/esm/escape.js +4 -4
  66. package/node_modules/glob/node_modules/minimatch/dist/esm/escape.js.map +1 -1
  67. package/node_modules/glob/node_modules/minimatch/dist/esm/index.d.ts +81 -1
  68. package/node_modules/glob/node_modules/minimatch/dist/esm/index.d.ts.map +1 -1
  69. package/node_modules/glob/node_modules/minimatch/dist/esm/index.js +232 -134
  70. package/node_modules/glob/node_modules/minimatch/dist/esm/index.js.map +1 -1
  71. package/node_modules/glob/node_modules/minimatch/dist/esm/unescape.d.ts +1 -1
  72. package/node_modules/glob/node_modules/minimatch/dist/esm/unescape.d.ts.map +1 -1
  73. package/node_modules/glob/node_modules/minimatch/dist/esm/unescape.js +8 -8
  74. package/node_modules/glob/node_modules/minimatch/dist/esm/unescape.js.map +1 -1
  75. package/node_modules/glob/node_modules/minimatch/package.json +17 -11
  76. package/node_modules/glob/package.json +10 -13
  77. package/node_modules/minipass/LICENSE.md +55 -0
  78. package/node_modules/minipass/dist/commonjs/index.d.ts +12 -16
  79. package/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -1
  80. package/node_modules/minipass/dist/commonjs/index.js +13 -3
  81. package/node_modules/minipass/dist/commonjs/index.js.map +1 -1
  82. package/node_modules/minipass/dist/esm/index.d.ts +12 -16
  83. package/node_modules/minipass/dist/esm/index.d.ts.map +1 -1
  84. package/node_modules/minipass/dist/esm/index.js +3 -1
  85. package/node_modules/minipass/dist/esm/index.js.map +1 -1
  86. package/node_modules/minipass/package.json +9 -14
  87. package/node_modules/path-scurry/node_modules/lru-cache/README.md +96 -10
  88. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.d.ts.map +1 -0
  89. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.js.map +1 -0
  90. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.d.ts +5 -0
  91. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.js +7 -0
  92. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.d.ts +1400 -0
  93. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.d.ts.map +1 -0
  94. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.js +1726 -0
  95. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.js.map +1 -0
  96. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.min.js +2 -0
  97. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/index.min.js.map +7 -0
  98. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts +12 -0
  99. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts.map +1 -0
  100. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.js +10 -0
  101. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/browser/perf.js.map +1 -0
  102. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.cjs.map +1 -0
  103. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.d.cts.map +1 -0
  104. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel.d.ts +5 -0
  105. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +7 -0
  106. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.d.ts +109 -32
  107. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -1
  108. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js +334 -197
  109. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js.map +1 -1
  110. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.min.js +1 -1
  111. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.min.js.map +4 -4
  112. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.d.ts.map +1 -0
  113. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.js.map +1 -0
  114. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.d.ts +5 -0
  115. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.js +9 -0
  116. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.d.ts +1400 -0
  117. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.d.ts.map +1 -0
  118. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.js +1726 -0
  119. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.js.map +1 -0
  120. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.min.js +2 -0
  121. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/index.min.js.map +7 -0
  122. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.d.ts +12 -0
  123. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.d.ts.map +1 -0
  124. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.js +10 -0
  125. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/node/perf.js.map +1 -0
  126. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.d.ts +12 -0
  127. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.d.ts.map +1 -0
  128. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.js +10 -0
  129. package/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/perf.js.map +1 -0
  130. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.d.ts.map +1 -0
  131. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.js.map +1 -0
  132. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.d.ts +5 -0
  133. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +4 -0
  134. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.d.ts +1400 -0
  135. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.d.ts.map +1 -0
  136. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.js +1722 -0
  137. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.js.map +1 -0
  138. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.min.js +2 -0
  139. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/index.min.js.map +7 -0
  140. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.d.ts +12 -0
  141. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.d.ts.map +1 -0
  142. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.js +7 -0
  143. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/browser/perf.js.map +1 -0
  144. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.d.mts.map +1 -0
  145. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.mjs.map +1 -0
  146. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel.d.ts +5 -0
  147. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/diagnostics-channel.js +19 -0
  148. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.d.ts +109 -32
  149. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -1
  150. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.js +333 -196
  151. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.js.map +1 -1
  152. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.min.js +1 -1
  153. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.min.js.map +4 -4
  154. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.d.ts.map +1 -0
  155. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.js.map +1 -0
  156. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel.d.ts +5 -0
  157. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +6 -0
  158. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.d.ts +1400 -0
  159. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.d.ts.map +1 -0
  160. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.js +1722 -0
  161. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.js.map +1 -0
  162. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.min.js +2 -0
  163. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/index.min.js.map +7 -0
  164. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.d.ts +12 -0
  165. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.d.ts.map +1 -0
  166. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.js +7 -0
  167. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/node/perf.js.map +1 -0
  168. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.d.ts +12 -0
  169. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.d.ts.map +1 -0
  170. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.js +7 -0
  171. package/node_modules/path-scurry/node_modules/lru-cache/dist/esm/perf.js.map +1 -0
  172. package/node_modules/path-scurry/node_modules/lru-cache/package.json +71 -18
  173. package/node_modules/path-scurry/package.json +8 -24
  174. package/package.json +1 -1
  175. package/scripts/debug-balance-probe.mjs +35 -35
  176. package/scripts/push-image.sh +43 -43
  177. package/scripts/setup-acr.sh +65 -65
  178. package/scripts/verify-optional-deps.js +96 -1
  179. package/src/__tests__/composioCliFlags.test.js +239 -239
  180. package/src/analyzers/CSSAnalyzer.js +298 -297
  181. package/src/analyzers/ConfigValidator.js +691 -690
  182. package/src/analyzers/ESLintAnalyzer.js +320 -320
  183. package/src/analyzers/JavaScriptAnalyzer.js +260 -261
  184. package/src/analyzers/PrettierFormatter.js +246 -247
  185. package/src/analyzers/PythonAnalyzer.js +283 -283
  186. package/src/analyzers/SecurityAnalyzer.js +729 -729
  187. package/src/analyzers/SparrowAnalyzer.js +341 -341
  188. package/src/analyzers/TypeScriptAnalyzer.js +247 -247
  189. package/src/analyzers/__tests__/CSSAnalyzer.test.js +41 -41
  190. package/src/analyzers/__tests__/ConfigValidator.test.js +362 -362
  191. package/src/analyzers/__tests__/JavaScriptAnalyzer.test.js +40 -40
  192. package/src/analyzers/__tests__/PythonAnalyzer.test.js +205 -208
  193. package/src/analyzers/__tests__/SecurityAnalyzer.test.js +303 -303
  194. package/src/analyzers/__tests__/TypeScriptAnalyzer.test.js +187 -187
  195. package/src/analyzers/codeCloneDetector/analyzer.js +344 -344
  196. package/src/analyzers/codeCloneDetector/detector.js +250 -250
  197. package/src/analyzers/codeCloneDetector/index.js +194 -192
  198. package/src/analyzers/codeCloneDetector/parser.js +199 -199
  199. package/src/core/__tests__/agentPool.test.js +866 -866
  200. package/src/core/__tests__/agentPoolAutoResume.test.js +209 -209
  201. package/src/core/__tests__/agentPoolWakeOnMessage.test.js +315 -315
  202. package/src/core/__tests__/agentScheduler.emptyResponseChatStall.test.js +213 -213
  203. package/src/core/__tests__/agentScheduler.errorCategorisation.test.js +246 -246
  204. package/src/core/__tests__/agentScheduler.firstChunkTimeout.test.js +138 -138
  205. package/src/core/__tests__/agentScheduler.modeTransitions.test.js +233 -233
  206. package/src/core/__tests__/agentScheduler.nativePromptPick.test.js +319 -319
  207. package/src/core/__tests__/agentScheduler.taskLifecycleInstruction.test.js +78 -78
  208. package/src/core/__tests__/agentScheduler.visualizer.test.js +258 -258
  209. package/src/core/__tests__/flowCheckpointStore.test.js +140 -140
  210. package/src/core/__tests__/flowEndToEnd.test.js +565 -565
  211. package/src/core/__tests__/flowFieldMapping.test.js +188 -189
  212. package/src/core/__tests__/flowLintClientMirror.test.js +96 -98
  213. package/src/core/__tests__/flowSavePayload.test.js +170 -169
  214. package/src/core/__tests__/flowTemplates.test.js +311 -311
  215. package/src/core/__tests__/flowVersionStore.test.js +123 -123
  216. package/src/core/__tests__/messageProcessor.test.js +669 -669
  217. package/src/core/__tests__/stateManager.test.js +0 -1
  218. package/src/core/agentPool.js +2474 -2475
  219. package/src/core/agentScheduler.js +1 -4
  220. package/src/core/contextManager.js +708 -708
  221. package/src/core/flowExecutor.js +1510 -1510
  222. package/src/core/flowFieldMapping.js +136 -138
  223. package/src/core/messageProcessor.js +953 -954
  224. package/src/core/orchestrator.js +593 -595
  225. package/src/core/stateManager.js +1765 -1752
  226. package/src/index.js +1221 -1221
  227. package/src/interfaces/__tests__/archivedAgentDelete.test.js +207 -207
  228. package/src/interfaces/__tests__/bulkAgentRoute.test.js +361 -361
  229. package/src/interfaces/__tests__/imageServing.test.js +228 -228
  230. package/src/interfaces/__tests__/remoteSessionAuth.test.js +308 -308
  231. package/src/interfaces/__tests__/videoJobsRoutes.test.js +178 -179
  232. package/src/interfaces/__tests__/webServer.marketplace.test.js +629 -629
  233. package/src/interfaces/schedulerRoutes.js +50 -50
  234. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +341 -350
  235. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +156 -156
  236. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +325 -330
  237. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +385 -388
  238. package/src/interfaces/terminal/api/session.js +265 -266
  239. package/src/interfaces/terminal/api/websocket.js +496 -497
  240. package/src/interfaces/terminal/components/AgentCreator.js +691 -705
  241. package/src/interfaces/terminal/components/AgentEditor.js +676 -678
  242. package/src/interfaces/terminal/components/AgentSwitcher.js +331 -330
  243. package/src/interfaces/terminal/components/ErrorPanel.js +263 -264
  244. package/src/interfaces/terminal/components/Header.js +28 -28
  245. package/src/interfaces/terminal/components/Layout.js +598 -603
  246. package/src/interfaces/terminal/components/MessageList.js +280 -281
  247. package/src/interfaces/terminal/components/SettingsPanel.js +410 -415
  248. package/src/interfaces/terminal/components/StatusBar.js +2 -0
  249. package/src/interfaces/terminal/index.js +168 -168
  250. package/src/interfaces/terminal/state/useAgentControl.js +496 -496
  251. package/src/interfaces/terminal/state/useAgents.js +537 -537
  252. package/src/interfaces/terminal/state/useMessages.js +629 -630
  253. package/src/interfaces/terminal/state/useTools.js +554 -554
  254. package/src/interfaces/terminal/utils/debugLogger.js +44 -44
  255. package/src/interfaces/terminal/utils/settingsStorage.js +232 -232
  256. package/src/interfaces/webServer.js +7578 -7579
  257. package/src/interfaces/webServer.js.bak +7046 -7046
  258. package/src/modules/fileExplorer/__tests__/zipDownload.test.js +237 -237
  259. package/src/modules/fileExplorer/controller.js +470 -469
  260. package/src/modules/fileExplorer/routes.js +285 -286
  261. package/src/modules/widget/__tests__/isDisabled.test.js +41 -41
  262. package/src/modules/widget/__tests__/routes.test.js +677 -678
  263. package/src/modules/widget/__tests__/runtime.test.js +401 -401
  264. package/src/modules/widget/__tests__/versioning.test.js +309 -309
  265. package/src/modules/widget/__tests__/webComponentRuntime.test.js +565 -565
  266. package/src/modules/widget/__tests__/widgetTool.test.js +316 -316
  267. package/src/modules/widget/routes.js +435 -435
  268. package/src/modules/widget/runtime/bundle.js +640 -640
  269. package/src/modules/widget/runtime/webComponentBundle.js +470 -470
  270. package/src/modules/widget/schema.js +182 -181
  271. package/src/modules/widget/widgetTool.js +1389 -1389
  272. package/src/services/__tests__/agentActivityService.test.js +401 -402
  273. package/src/services/__tests__/benchmarkService.test.js +184 -184
  274. package/src/services/__tests__/contextInjectionService.test.js +246 -246
  275. package/src/services/__tests__/conversationQuery.test.js +721 -723
  276. package/src/services/__tests__/credentialVault.test.js +469 -469
  277. package/src/services/__tests__/discordService.integration.test.js +638 -639
  278. package/src/services/__tests__/flowContextService.test.js +590 -590
  279. package/src/services/__tests__/memoryService.test.js +1 -1
  280. package/src/services/__tests__/messageSource.test.js +380 -380
  281. package/src/services/__tests__/modelRouterNaming.test.js +111 -111
  282. package/src/services/__tests__/projectDetector.test.js +34 -34
  283. package/src/services/__tests__/promptService.test.js +242 -242
  284. package/src/services/__tests__/telegramService.test.js +941 -941
  285. package/src/services/__tests__/tokenCountingService.test.js +48 -48
  286. package/src/services/agentActivityService.js +419 -420
  287. package/src/services/aiService.js +2997 -3001
  288. package/src/services/apiKeyManager.js +359 -359
  289. package/src/services/benchmarkService.js +196 -196
  290. package/src/services/codebaseKnowledgeService.js +2 -2
  291. package/src/services/composioService.js +738 -738
  292. package/src/services/conversationCompactionService.js +1258 -1257
  293. package/src/services/credentialVault.js +685 -685
  294. package/src/services/discordService.js +792 -793
  295. package/src/services/embeddings/__tests__/azureCustomProvider.test.js +232 -232
  296. package/src/services/embeddings/__tests__/embeddingService.test.js +417 -417
  297. package/src/services/embeddings/__tests__/localProvider.test.js +263 -263
  298. package/src/services/embeddings/autoRecall.js +218 -219
  299. package/src/services/embeddings/indexers/__tests__/agentIndexer.test.js +232 -232
  300. package/src/services/embeddings/indexers/__tests__/memoryIndexer.test.js +418 -418
  301. package/src/services/embeddings/indexers/__tests__/reminisceIndexer.test.js +356 -357
  302. package/src/services/embeddings/indexers/__tests__/skillsIndexer.test.js +145 -145
  303. package/src/services/embeddings/indexers/__tests__/taskIndexer.test.js +146 -146
  304. package/src/services/embeddings/indexers/composioIndexer.js +279 -279
  305. package/src/services/embeddings/providerInterface.js +206 -206
  306. package/src/services/embeddings/providers/localProvider.js +11 -7
  307. package/src/services/embeddings/providers/openaiProvider.js +101 -101
  308. package/src/services/embeddings/vectorStore/inMemoryJsonStore.js +356 -356
  309. package/src/services/errorHandler.js +809 -809
  310. package/src/services/flowContextService.js +586 -586
  311. package/src/services/grounding/MockAdapter.js +125 -125
  312. package/src/services/modelRouterService.js +26 -31
  313. package/src/services/modelsService.js +322 -322
  314. package/src/services/ollamaService.js +452 -452
  315. package/src/services/projectDetector.js +403 -404
  316. package/src/services/promptService.js +418 -418
  317. package/src/services/qualityInspector.js +795 -795
  318. package/src/services/scheduleService.js +726 -726
  319. package/src/services/serviceRegistry.js +386 -386
  320. package/src/services/telegrafBot.js +174 -174
  321. package/src/services/telegramService.js +1972 -1972
  322. package/src/services/visualEditorBridge.js +1033 -1033
  323. package/src/services/visualEditorServer.js +1769 -1774
  324. package/src/services/whatsappService.js +667 -668
  325. package/src/tools/__tests__/agentCommunicationTool.findAgent.test.js +226 -226
  326. package/src/tools/__tests__/agentCommunicationTool.test.js +3 -3
  327. package/src/tools/__tests__/agentDelayTool.test.js +342 -342
  328. package/src/tools/__tests__/baseTool.test.js +3 -3
  329. package/src/tools/__tests__/codeMapTool.test.js +915 -915
  330. package/src/tools/__tests__/fileContentReplaceTool.test.js +309 -309
  331. package/src/tools/__tests__/fileTreeTool.test.js +274 -274
  332. package/src/tools/__tests__/filesystemTool.test.js +815 -815
  333. package/src/tools/__tests__/foundryWebSearchTool.test.js +252 -252
  334. package/src/tools/__tests__/imageTool.validator.test.js +194 -194
  335. package/src/tools/__tests__/jobDoneTool.test.js +580 -581
  336. package/src/tools/__tests__/memoryTool.forgetStale.test.js +272 -272
  337. package/src/tools/__tests__/memoryTool.reminisce.test.js +2 -2
  338. package/src/tools/__tests__/memoryTool.reminisceSemanticSearch.test.js +301 -301
  339. package/src/tools/__tests__/memoryTool.semanticSearch.test.js +405 -405
  340. package/src/tools/__tests__/memoryTool.teamPool.test.js +293 -293
  341. package/src/tools/__tests__/memoryTool.test.js +1 -1
  342. package/src/tools/__tests__/seekTool.test.js +282 -282
  343. package/src/tools/__tests__/skillsTool.search.test.js +164 -164
  344. package/src/tools/__tests__/skillsTool.test.js +226 -226
  345. package/src/tools/__tests__/staticAnalysisTool.test.js +509 -509
  346. package/src/tools/__tests__/taskManagerTool.discipline.test.js +137 -137
  347. package/src/tools/__tests__/taskManagerTool.search.test.js +143 -143
  348. package/src/tools/__tests__/taskManagerTool.test.js +866 -866
  349. package/src/tools/__tests__/terminalTool.test.js +448 -448
  350. package/src/tools/__tests__/toolShapeForgiveness.test.js +259 -260
  351. package/src/tools/__tests__/userPromptTool.test.js +297 -297
  352. package/src/tools/__tests__/videoTool.jobs.test.js +147 -147
  353. package/src/tools/__tests__/webTool.e2e.test.js +609 -603
  354. package/src/tools/__tests__/webTool.unit.test.js +195 -195
  355. package/src/tools/__tests__/webTool.visionModel.test.js +75 -75
  356. package/src/tools/agentCommunicationTool.js +8 -10
  357. package/src/tools/agentDelayTool.js +496 -497
  358. package/src/tools/asyncToolManager.js +602 -603
  359. package/src/tools/baseTool.js +12 -11
  360. package/src/tools/cloneDetectionTool.js +576 -581
  361. package/src/tools/codeMapTool.js +0 -6
  362. package/src/tools/composioTool.js +617 -617
  363. package/src/tools/dependencyResolverTool.js +1211 -1212
  364. package/src/tools/desktop/DesktopTool.js +629 -638
  365. package/src/tools/desktop/__tests__/DesktopTool.e2e.test.js +306 -306
  366. package/src/tools/desktop/__tests__/DesktopTool.test.js +507 -507
  367. package/src/tools/desktop/__tests__/osController.test.js +364 -364
  368. package/src/tools/desktop/osController.js +491 -491
  369. package/src/tools/docxTool.js +623 -623
  370. package/src/tools/excelTool.js +636 -636
  371. package/src/tools/fileContentReplaceTool.js +5 -7
  372. package/src/tools/fileSystemTool.js +12 -19
  373. package/src/tools/fileTreeTool.js +840 -840
  374. package/src/tools/foundryWebSearchTool.js +273 -273
  375. package/src/tools/helpTool.js +198 -198
  376. package/src/tools/imageTool.js +1397 -1397
  377. package/src/tools/importAnalyzerTool.js +1056 -1056
  378. package/src/tools/jobDoneTool.js +495 -495
  379. package/src/tools/memoryTool.js +1 -1
  380. package/src/tools/office/pres/__tests__/presSystem.test.js +365 -365
  381. package/src/tools/office/pres/archetypes/agenda.js +61 -61
  382. package/src/tools/office/pres/archetypes/bentoGrid.js +218 -219
  383. package/src/tools/office/pres/archetypes/bigStat.js +140 -142
  384. package/src/tools/office/pres/archetypes/closing.js +70 -70
  385. package/src/tools/office/pres/archetypes/hero.js +70 -70
  386. package/src/tools/office/pres/archetypes/productHero.js +93 -94
  387. package/src/tools/office/pres/archetypes/table.js +73 -74
  388. package/src/tools/office/pres/backgrounds/orb.js +66 -66
  389. package/src/tools/office/pres/components.js +422 -423
  390. package/src/tools/officeTool.js +441 -441
  391. package/src/tools/pdfTool.js +625 -627
  392. package/src/tools/platformControlTool.js +1081 -1081
  393. package/src/tools/seekTool.js +917 -918
  394. package/src/tools/skillsTool.js +1 -1
  395. package/src/tools/staticAnalysisTool.js +2143 -2146
  396. package/src/tools/taskManagerTool.js +3324 -3324
  397. package/src/tools/terminalTool.js +2615 -2618
  398. package/src/tools/videoTool.js +1303 -1303
  399. package/src/tools/visionTool.js +508 -508
  400. package/src/tools/visualEditorTool.js +1289 -1290
  401. package/src/tools/webTool.js +3368 -3368
  402. package/src/tools/whatsappTool.js +464 -464
  403. package/src/types/__tests__/agent.test.js +499 -499
  404. package/src/types/__tests__/contextReference.test.js +606 -606
  405. package/src/types/__tests__/conversation.test.js +555 -555
  406. package/src/types/__tests__/toolCommand.test.js +584 -584
  407. package/src/types/contextReference.js +974 -971
  408. package/src/types/conversation.js +729 -729
  409. package/src/types/toolCommand.js +746 -746
  410. package/src/utilities/__tests__/attachmentValidator.test.js +80 -80
  411. package/src/utilities/__tests__/auditReport.test.js +328 -328
  412. package/src/utilities/__tests__/directoryAccessManager.test.js +388 -388
  413. package/src/utilities/__tests__/jsonRepair.test.js +103 -104
  414. package/src/utilities/__tests__/modeTransitionReasons.test.js +105 -105
  415. package/src/utilities/__tests__/platformUtils.test.js +80 -87
  416. package/src/utilities/__tests__/structuredFileValidator.test.js +261 -263
  417. package/src/utilities/__tests__/toolConstants.test.js +92 -94
  418. package/src/utilities/__tests__/useIsTouchDevice.detect.test.js +114 -114
  419. package/src/utilities/__tests__/webUiUtilSync.test.js +117 -117
  420. package/src/utilities/attachmentValidator.js +284 -288
  421. package/src/utilities/authCache.js.backup-1779570472481 +121 -121
  422. package/src/utilities/browserStealth.js +631 -630
  423. package/src/utilities/configManager.js +616 -617
  424. package/src/utilities/directoryAccessManager.js +564 -565
  425. package/src/utilities/fileProcessor.js +308 -307
  426. package/src/utilities/humanBehavior.js +454 -453
  427. package/src/utilities/logger.js +479 -479
  428. package/src/utilities/structuredFileValidator.js +696 -699
  429. package/src/utilities/tagParser.js +5 -10
  430. package/src/utilities/userDataDir.js +308 -308
  431. package/node_modules/@isaacs/brace-expansion/dist/commonjs/index.js.map +0 -1
  432. package/node_modules/@isaacs/brace-expansion/dist/esm/index.js.map +0 -1
  433. package/node_modules/minipass/LICENSE +0 -15
  434. /package/node_modules/{@isaacs → glob/node_modules}/balanced-match/LICENSE.md +0 -0
  435. /package/node_modules/{@isaacs → glob/node_modules}/balanced-match/dist/commonjs/index.d.ts +0 -0
  436. /package/node_modules/{@isaacs → glob/node_modules}/balanced-match/dist/commonjs/index.d.ts.map +0 -0
  437. /package/node_modules/{@isaacs → glob/node_modules}/balanced-match/dist/commonjs/index.js +0 -0
  438. /package/node_modules/{@isaacs → glob/node_modules}/balanced-match/dist/commonjs/index.js.map +0 -0
  439. /package/node_modules/{@isaacs → glob/node_modules}/balanced-match/dist/commonjs/package.json +0 -0
  440. /package/node_modules/{@isaacs → glob/node_modules}/balanced-match/dist/esm/index.d.ts +0 -0
  441. /package/node_modules/{@isaacs → glob/node_modules}/balanced-match/dist/esm/index.d.ts.map +0 -0
  442. /package/node_modules/{@isaacs → glob/node_modules}/balanced-match/dist/esm/index.js +0 -0
  443. /package/node_modules/{@isaacs → glob/node_modules}/balanced-match/dist/esm/index.js.map +0 -0
  444. /package/node_modules/{@isaacs → glob/node_modules}/balanced-match/dist/esm/package.json +0 -0
  445. /package/node_modules/{@isaacs → glob/node_modules}/brace-expansion/LICENSE +0 -0
  446. /package/node_modules/{@isaacs → glob/node_modules}/brace-expansion/dist/commonjs/index.d.ts +0 -0
  447. /package/node_modules/{@isaacs → glob/node_modules}/brace-expansion/dist/commonjs/index.d.ts.map +0 -0
  448. /package/node_modules/{@isaacs → glob/node_modules}/brace-expansion/dist/commonjs/package.json +0 -0
  449. /package/node_modules/{@isaacs → glob/node_modules}/brace-expansion/dist/esm/index.d.ts +0 -0
  450. /package/node_modules/{@isaacs → glob/node_modules}/brace-expansion/dist/esm/index.d.ts.map +0 -0
  451. /package/node_modules/{@isaacs → glob/node_modules}/brace-expansion/dist/esm/package.json +0 -0
@@ -1,4 +1,4 @@
1
- import { expand } from '@isaacs/brace-expansion';
1
+ import { expand } from 'brace-expansion';
2
2
  import { assertValidPattern } from './assert-valid-pattern.js';
3
3
  import { AST } from './ast.js';
4
4
  import { escape } from './escape.js';
@@ -12,7 +12,7 @@ export const minimatch = (p, pattern, options = {}) => {
12
12
  return new Minimatch(pattern, options).match(p);
13
13
  };
14
14
  // Optimized checking for the most common glob patterns.
15
- const starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/;
15
+ const starDotExtRE = /^\*+([^+@!?*[(]*)$/;
16
16
  const starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);
17
17
  const starDotExtTestDot = (ext) => (f) => f.endsWith(ext);
18
18
  const starDotExtTestNocase = (ext) => {
@@ -31,7 +31,7 @@ const dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');
31
31
  const starRE = /^\*+$/;
32
32
  const starTest = (f) => f.length !== 0 && !f.startsWith('.');
33
33
  const starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';
34
- const qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/;
34
+ const qmarksRE = /^\?+([^+@!?*[(]*)?$/;
35
35
  const qmarksTestNocase = ([$0, ext = '']) => {
36
36
  const noext = qmarksTestNoExt([$0]);
37
37
  if (!ext)
@@ -63,8 +63,8 @@ const qmarksTestNoExtDot = ([$0]) => {
63
63
  return (f) => f.length === len && f !== '.' && f !== '..';
64
64
  };
65
65
  /* c8 ignore start */
66
- const defaultPlatform = (typeof process === 'object' && process
67
- ? (typeof process.env === 'object' &&
66
+ const defaultPlatform = (typeof process === 'object' && process ?
67
+ (typeof process.env === 'object' &&
68
68
  process.env &&
69
69
  process.env.__MINIMATCH_TESTING_PLATFORM__) ||
70
70
  process.platform
@@ -148,7 +148,7 @@ export const braceExpand = (pattern, options = {}) => {
148
148
  // shortcut. no need to expand.
149
149
  return [pattern];
150
150
  }
151
- return expand(pattern);
151
+ return expand(pattern, { max: options.braceExpandMax });
152
152
  };
153
153
  minimatch.braceExpand = braceExpand;
154
154
  // parse a component of the expanded set.
@@ -193,16 +193,20 @@ export class Minimatch {
193
193
  isWindows;
194
194
  platform;
195
195
  windowsNoMagicRoot;
196
+ maxGlobstarRecursion;
196
197
  regexp;
197
198
  constructor(pattern, options = {}) {
198
199
  assertValidPattern(pattern);
199
200
  options = options || {};
200
201
  this.options = options;
202
+ this.maxGlobstarRecursion = options.maxGlobstarRecursion ?? 200;
201
203
  this.pattern = pattern;
202
204
  this.platform = options.platform || defaultPlatform;
203
205
  this.isWindows = this.platform === 'win32';
206
+ // avoid the annoying deprecation flag lol
207
+ const awe = ('allowWindow' + 'sEscape');
204
208
  this.windowsPathsNoEscape =
205
- !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;
209
+ !!options.windowsPathsNoEscape || options[awe] === false;
206
210
  if (this.windowsPathsNoEscape) {
207
211
  this.pattern = this.pattern.replace(/\\/g, '/');
208
212
  }
@@ -215,8 +219,8 @@ export class Minimatch {
215
219
  this.partial = !!options.partial;
216
220
  this.nocase = !!this.options.nocase;
217
221
  this.windowsNoMagicRoot =
218
- options.windowsNoMagicRoot !== undefined
219
- ? options.windowsNoMagicRoot
222
+ options.windowsNoMagicRoot !== undefined ?
223
+ options.windowsNoMagicRoot
220
224
  : !!(this.isWindows && this.nocase);
221
225
  this.globSet = [];
222
226
  this.globParts = [];
@@ -254,6 +258,7 @@ export class Minimatch {
254
258
  // step 2: expand braces
255
259
  this.globSet = [...new Set(this.braceExpand())];
256
260
  if (options.debug) {
261
+ //oxlint-disable-next-line no-console
257
262
  this.debug = (...args) => console.error(...args);
258
263
  }
259
264
  this.debug(this.pattern, this.globSet);
@@ -279,7 +284,10 @@ export class Minimatch {
279
284
  !globMagic.test(s[3]);
280
285
  const isDrive = /^[a-z]:/i.test(s[0]);
281
286
  if (isUNC) {
282
- return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];
287
+ return [
288
+ ...s.slice(0, 4),
289
+ ...s.slice(4).map(ss => this.parse(ss)),
290
+ ];
283
291
  }
284
292
  else if (isDrive) {
285
293
  return [s[0], ...s.slice(1).map(ss => this.parse(ss))];
@@ -311,12 +319,12 @@ export class Minimatch {
311
319
  // to the right as possible, even if it increases the number
312
320
  // of patterns that we have to process.
313
321
  preprocess(globParts) {
314
- // if we're not in globstar mode, then turn all ** into *
322
+ // if we're not in globstar mode, then turn ** into *
315
323
  if (this.options.noglobstar) {
316
- for (let i = 0; i < globParts.length; i++) {
317
- for (let j = 0; j < globParts[i].length; j++) {
318
- if (globParts[i][j] === '**') {
319
- globParts[i][j] = '*';
324
+ for (const partset of globParts) {
325
+ for (let j = 0; j < partset.length; j++) {
326
+ if (partset[j] === '**') {
327
+ partset[j] = '*';
320
328
  }
321
329
  }
322
330
  }
@@ -404,7 +412,11 @@ export class Minimatch {
404
412
  let dd = 0;
405
413
  while (-1 !== (dd = parts.indexOf('..', dd + 1))) {
406
414
  const p = parts[dd - 1];
407
- if (p && p !== '.' && p !== '..' && p !== '**') {
415
+ if (p &&
416
+ p !== '.' &&
417
+ p !== '..' &&
418
+ p !== '**' &&
419
+ !(this.isWindows && /^[a-z]:$/i.test(p))) {
408
420
  didSomething = true;
409
421
  parts.splice(dd - 1, 2);
410
422
  dd -= 2;
@@ -597,7 +609,8 @@ export class Minimatch {
597
609
  // out of pattern, then that's fine, as long as all
598
610
  // the parts match.
599
611
  matchOne(file, pattern, partial = false) {
600
- const options = this.options;
612
+ let fileStartIndex = 0;
613
+ let patternStartIndex = 0;
601
614
  // UNC paths like //?/X:/... can match X:/... and vice versa
602
615
  // Drive letters in absolute drive or unc paths are always compared
603
616
  // case-insensitively.
@@ -615,18 +628,22 @@ export class Minimatch {
615
628
  pattern[2] === '?' &&
616
629
  typeof pattern[3] === 'string' &&
617
630
  /^[a-z]:$/i.test(pattern[3]);
618
- const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;
619
- const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;
631
+ const fdi = fileUNC ? 3
632
+ : fileDrive ? 0
633
+ : undefined;
634
+ const pdi = patternUNC ? 3
635
+ : patternDrive ? 0
636
+ : undefined;
620
637
  if (typeof fdi === 'number' && typeof pdi === 'number') {
621
- const [fd, pd] = [file[fdi], pattern[pdi]];
638
+ const [fd, pd] = [
639
+ file[fdi],
640
+ pattern[pdi],
641
+ ];
642
+ // start matching at the drive letter index of each
622
643
  if (fd.toLowerCase() === pd.toLowerCase()) {
623
644
  pattern[pdi] = fd;
624
- if (pdi > fdi) {
625
- pattern = pattern.slice(pdi);
626
- }
627
- else if (fdi > pdi) {
628
- file = file.slice(fdi);
629
- }
645
+ patternStartIndex = pdi;
646
+ fileStartIndex = fdi;
630
647
  }
631
648
  }
632
649
  }
@@ -636,99 +653,187 @@ export class Minimatch {
636
653
  if (optimizationLevel >= 2) {
637
654
  file = this.levelTwoFileOptimize(file);
638
655
  }
639
- this.debug('matchOne', this, { file, pattern });
640
- this.debug('matchOne', file.length, pattern.length);
641
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
656
+ if (pattern.includes(GLOBSTAR)) {
657
+ return this.#matchGlobstar(file, pattern, partial, fileStartIndex, patternStartIndex);
658
+ }
659
+ return this.#matchOne(file, pattern, partial, fileStartIndex, patternStartIndex);
660
+ }
661
+ #matchGlobstar(file, pattern, partial, fileIndex, patternIndex) {
662
+ // split the pattern into head, tail, and middle of ** delimited parts
663
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
664
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
665
+ // split the pattern up into globstar-delimited sections
666
+ // the tail has to be at the end, and the others just have
667
+ // to be found in order from the head.
668
+ const [head, body, tail] = partial ?
669
+ [
670
+ pattern.slice(patternIndex, firstgs),
671
+ pattern.slice(firstgs + 1),
672
+ [],
673
+ ]
674
+ : [
675
+ pattern.slice(patternIndex, firstgs),
676
+ pattern.slice(firstgs + 1, lastgs),
677
+ pattern.slice(lastgs + 1),
678
+ ];
679
+ // check the head, from the current file/pattern index.
680
+ if (head.length) {
681
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
682
+ if (!this.#matchOne(fileHead, head, partial, 0, 0)) {
683
+ return false;
684
+ }
685
+ fileIndex += head.length;
686
+ patternIndex += head.length;
687
+ }
688
+ // now we know the head matches!
689
+ // if the last portion is not empty, it MUST match the end
690
+ // check the tail
691
+ let fileTailMatch = 0;
692
+ if (tail.length) {
693
+ // if head + tail > file, then we cannot possibly match
694
+ if (tail.length + fileIndex > file.length)
695
+ return false;
696
+ // try to match the tail
697
+ let tailStart = file.length - tail.length;
698
+ if (this.#matchOne(file, tail, partial, tailStart, 0)) {
699
+ fileTailMatch = tail.length;
700
+ }
701
+ else {
702
+ // affordance for stuff like a/**/* matching a/b/
703
+ // if the last file portion is '', and there's more to the pattern
704
+ // then try without the '' bit.
705
+ if (file[file.length - 1] !== '' ||
706
+ fileIndex + tail.length === file.length) {
707
+ return false;
708
+ }
709
+ tailStart--;
710
+ if (!this.#matchOne(file, tail, partial, tailStart, 0)) {
711
+ return false;
712
+ }
713
+ fileTailMatch = tail.length + 1;
714
+ }
715
+ }
716
+ // now we know the tail matches!
717
+ // the middle is zero or more portions wrapped in **, possibly
718
+ // containing more ** sections.
719
+ // so a/**/b/**/c/**/d has become **/b/**/c/**
720
+ // if it's empty, it means a/**/b, just verify we have no bad dots
721
+ // if there's no tail, so it ends on /**, then we must have *something*
722
+ // after the head, or it's not a matc
723
+ if (!body.length) {
724
+ let sawSome = !!fileTailMatch;
725
+ for (let i = fileIndex; i < file.length - fileTailMatch; i++) {
726
+ const f = String(file[i]);
727
+ sawSome = true;
728
+ if (f === '.' ||
729
+ f === '..' ||
730
+ (!this.options.dot && f.startsWith('.'))) {
731
+ return false;
732
+ }
733
+ }
734
+ // in partial mode, we just need to get past all file parts
735
+ return partial || sawSome;
736
+ }
737
+ // now we know that there's one or more body sections, which can
738
+ // be matched anywhere from the 0 index (because the head was pruned)
739
+ // through to the length-fileTailMatch index.
740
+ // split the body up into sections, and note the minimum index it can
741
+ // be found at (start with the length of all previous segments)
742
+ // [section, before, after]
743
+ const bodySegments = [[[], 0]];
744
+ let currentBody = bodySegments[0];
745
+ let nonGsParts = 0;
746
+ const nonGsPartsSums = [0];
747
+ for (const b of body) {
748
+ if (b === GLOBSTAR) {
749
+ nonGsPartsSums.push(nonGsParts);
750
+ currentBody = [[], 0];
751
+ bodySegments.push(currentBody);
752
+ }
753
+ else {
754
+ currentBody[0].push(b);
755
+ nonGsParts++;
756
+ }
757
+ }
758
+ let i = bodySegments.length - 1;
759
+ const fileLength = file.length - fileTailMatch;
760
+ for (const b of bodySegments) {
761
+ b[1] = fileLength - (nonGsPartsSums[i--] + b[0].length);
762
+ }
763
+ return !!this.#matchGlobStarBodySections(file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
764
+ }
765
+ // return false for "nope, not matching"
766
+ // return null for "not matching, cannot keep trying"
767
+ #matchGlobStarBodySections(file,
768
+ // pattern section, last possible position for it
769
+ bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
770
+ // take the first body segment, and walk from fileIndex to its "after"
771
+ // value at the end
772
+ // If it doesn't match at that position, we increment, until we hit
773
+ // that final possible position, and give up.
774
+ // If it does match, then advance and try to rest.
775
+ // If any of them fail we keep walking forward.
776
+ // this is still a bit recursively painful, but it's more constrained
777
+ // than previous implementations, because we never test something that
778
+ // can't possibly be a valid matching condition.
779
+ const bs = bodySegments[bodyIndex];
780
+ if (!bs) {
781
+ // just make sure that there's no bad dots
782
+ for (let i = fileIndex; i < file.length; i++) {
783
+ sawTail = true;
784
+ const f = file[i];
785
+ if (f === '.' ||
786
+ f === '..' ||
787
+ (!this.options.dot && f.startsWith('.'))) {
788
+ return false;
789
+ }
790
+ }
791
+ return sawTail;
792
+ }
793
+ // have a non-globstar body section to test
794
+ const [body, after] = bs;
795
+ while (fileIndex <= after) {
796
+ const m = this.#matchOne(file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
797
+ // if limit exceeded, no match. intentional false negative,
798
+ // acceptable break in correctness for security.
799
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
800
+ // match! see if the rest match. if so, we're done!
801
+ const sub = this.#matchGlobStarBodySections(file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
802
+ if (sub !== false) {
803
+ return sub;
804
+ }
805
+ }
806
+ const f = file[fileIndex];
807
+ if (f === '.' ||
808
+ f === '..' ||
809
+ (!this.options.dot && f.startsWith('.'))) {
810
+ return false;
811
+ }
812
+ fileIndex++;
813
+ }
814
+ // walked off. no point continuing
815
+ return partial || null;
816
+ }
817
+ #matchOne(file, pattern, partial, fileIndex, patternIndex) {
818
+ let fi;
819
+ let pi;
820
+ let pl;
821
+ let fl;
822
+ for (fi = fileIndex,
823
+ pi = patternIndex,
824
+ fl = file.length,
825
+ pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
642
826
  this.debug('matchOne loop');
643
- var p = pattern[pi];
644
- var f = file[fi];
827
+ let p = pattern[pi];
828
+ let f = file[fi];
645
829
  this.debug(pattern, p, f);
646
830
  // should be impossible.
647
831
  // some invalid regexp stuff in the set.
648
832
  /* c8 ignore start */
649
- if (p === false) {
833
+ if (p === false || p === GLOBSTAR) {
650
834
  return false;
651
835
  }
652
836
  /* c8 ignore stop */
653
- if (p === GLOBSTAR) {
654
- this.debug('GLOBSTAR', [pattern, p, f]);
655
- // "**"
656
- // a/**/b/**/c would match the following:
657
- // a/b/x/y/z/c
658
- // a/x/y/z/b/c
659
- // a/b/x/b/x/c
660
- // a/b/c
661
- // To do this, take the rest of the pattern after
662
- // the **, and see if it would match the file remainder.
663
- // If so, return success.
664
- // If not, the ** "swallows" a segment, and try again.
665
- // This is recursively awful.
666
- //
667
- // a/**/b/**/c matching a/b/x/y/z/c
668
- // - a matches a
669
- // - doublestar
670
- // - matchOne(b/x/y/z/c, b/**/c)
671
- // - b matches b
672
- // - doublestar
673
- // - matchOne(x/y/z/c, c) -> no
674
- // - matchOne(y/z/c, c) -> no
675
- // - matchOne(z/c, c) -> no
676
- // - matchOne(c, c) yes, hit
677
- var fr = fi;
678
- var pr = pi + 1;
679
- if (pr === pl) {
680
- this.debug('** at the end');
681
- // a ** at the end will just swallow the rest.
682
- // We have found a match.
683
- // however, it will not swallow /.x, unless
684
- // options.dot is set.
685
- // . and .. are *never* matched by **, for explosively
686
- // exponential reasons.
687
- for (; fi < fl; fi++) {
688
- if (file[fi] === '.' ||
689
- file[fi] === '..' ||
690
- (!options.dot && file[fi].charAt(0) === '.'))
691
- return false;
692
- }
693
- return true;
694
- }
695
- // ok, let's see if we can swallow whatever we can.
696
- while (fr < fl) {
697
- var swallowee = file[fr];
698
- this.debug('\nglobstar while', file, fr, pattern, pr, swallowee);
699
- // XXX remove this slice. Just pass the start index.
700
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
701
- this.debug('globstar found match!', fr, fl, swallowee);
702
- // found a match.
703
- return true;
704
- }
705
- else {
706
- // can't swallow "." or ".." ever.
707
- // can only swallow ".foo" when explicitly asked.
708
- if (swallowee === '.' ||
709
- swallowee === '..' ||
710
- (!options.dot && swallowee.charAt(0) === '.')) {
711
- this.debug('dot detected!', file, fr, pattern, pr);
712
- break;
713
- }
714
- // ** swallows a segment, and continue.
715
- this.debug('globstar swallow a segment, and continue');
716
- fr++;
717
- }
718
- }
719
- // no match was found.
720
- // However, in partial mode, we can't say this is necessarily over.
721
- /* c8 ignore start */
722
- if (partial) {
723
- // ran out of file
724
- this.debug('\n>>> no match, partial?', file, fr, pattern, pr);
725
- if (fr === fl) {
726
- return true;
727
- }
728
- }
729
- /* c8 ignore stop */
730
- return false;
731
- }
732
837
  // something other than **
733
838
  // non-magic patterns just have to match exactly
734
839
  // patterns with magic have been turned into regexps.
@@ -799,21 +904,19 @@ export class Minimatch {
799
904
  fastTest = options.dot ? starTestDot : starTest;
800
905
  }
801
906
  else if ((m = pattern.match(starDotExtRE))) {
802
- fastTest = (options.nocase
803
- ? options.dot
804
- ? starDotExtTestNocaseDot
907
+ fastTest = (options.nocase ?
908
+ options.dot ?
909
+ starDotExtTestNocaseDot
805
910
  : starDotExtTestNocase
806
- : options.dot
807
- ? starDotExtTestDot
911
+ : options.dot ? starDotExtTestDot
808
912
  : starDotExtTest)(m[1]);
809
913
  }
810
914
  else if ((m = pattern.match(qmarksRE))) {
811
- fastTest = (options.nocase
812
- ? options.dot
813
- ? qmarksTestNocaseDot
915
+ fastTest = (options.nocase ?
916
+ options.dot ?
917
+ qmarksTestNocaseDot
814
918
  : qmarksTestNocase
815
- : options.dot
816
- ? qmarksTestDot
919
+ : options.dot ? qmarksTestDot
817
920
  : qmarksTest)(m);
818
921
  }
819
922
  else if ((m = pattern.match(starDotStarRE))) {
@@ -844,10 +947,8 @@ export class Minimatch {
844
947
  return this.regexp;
845
948
  }
846
949
  const options = this.options;
847
- const twoStar = options.noglobstar
848
- ? star
849
- : options.dot
850
- ? twoStarDot
950
+ const twoStar = options.noglobstar ? star
951
+ : options.dot ? twoStarDot
851
952
  : twoStarNoDot;
852
953
  const flags = new Set(options.nocase ? ['i'] : []);
853
954
  // regexpify non-globstar patterns
@@ -863,11 +964,9 @@ export class Minimatch {
863
964
  for (const f of p.flags.split(''))
864
965
  flags.add(f);
865
966
  }
866
- return typeof p === 'string'
867
- ? regExpEscape(p)
868
- : p === GLOBSTAR
869
- ? GLOBSTAR
870
- : p._src;
967
+ return (typeof p === 'string' ? regExpEscape(p)
968
+ : p === GLOBSTAR ? GLOBSTAR
969
+ : p._src);
871
970
  });
872
971
  pp.forEach((p, i) => {
873
972
  const next = pp[i + 1];
@@ -922,7 +1021,7 @@ export class Minimatch {
922
1021
  this.regexp = new RegExp(re, [...flags].join(''));
923
1022
  /* c8 ignore start */
924
1023
  }
925
- catch (ex) {
1024
+ catch {
926
1025
  // should be impossible
927
1026
  this.regexp = false;
928
1027
  }
@@ -937,7 +1036,7 @@ export class Minimatch {
937
1036
  if (this.preserveMultipleSlashes) {
938
1037
  return p.split('/');
939
1038
  }
940
- else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
1039
+ else if (this.isWindows && /^\/\/[^/]+/.test(p)) {
941
1040
  // add an extra '' for the one we lose
942
1041
  return ['', ...p.split(/\/+/)];
943
1042
  }
@@ -979,8 +1078,7 @@ export class Minimatch {
979
1078
  filename = ff[i];
980
1079
  }
981
1080
  }
982
- for (let i = 0; i < set.length; i++) {
983
- const pattern = set[i];
1081
+ for (const pattern of set) {
984
1082
  let file = ff;
985
1083
  if (options.matchBase && pattern.length === 1) {
986
1084
  file = [filename];