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,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.unescape = exports.escape = exports.AST = exports.Minimatch = exports.match = exports.makeRe = exports.braceExpand = exports.defaults = exports.filter = exports.GLOBSTAR = exports.sep = exports.minimatch = void 0;
4
- const brace_expansion_1 = require("@isaacs/brace-expansion");
4
+ const brace_expansion_1 = require("brace-expansion");
5
5
  const assert_valid_pattern_js_1 = require("./assert-valid-pattern.js");
6
6
  const ast_js_1 = require("./ast.js");
7
7
  const escape_js_1 = require("./escape.js");
@@ -16,7 +16,7 @@ const minimatch = (p, pattern, options = {}) => {
16
16
  };
17
17
  exports.minimatch = minimatch;
18
18
  // Optimized checking for the most common glob patterns.
19
- const starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/;
19
+ const starDotExtRE = /^\*+([^+@!?*[(]*)$/;
20
20
  const starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);
21
21
  const starDotExtTestDot = (ext) => (f) => f.endsWith(ext);
22
22
  const starDotExtTestNocase = (ext) => {
@@ -35,7 +35,7 @@ const dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');
35
35
  const starRE = /^\*+$/;
36
36
  const starTest = (f) => f.length !== 0 && !f.startsWith('.');
37
37
  const starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';
38
- const qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/;
38
+ const qmarksRE = /^\?+([^+@!?*[(]*)?$/;
39
39
  const qmarksTestNocase = ([$0, ext = '']) => {
40
40
  const noext = qmarksTestNoExt([$0]);
41
41
  if (!ext)
@@ -67,8 +67,8 @@ const qmarksTestNoExtDot = ([$0]) => {
67
67
  return (f) => f.length === len && f !== '.' && f !== '..';
68
68
  };
69
69
  /* c8 ignore start */
70
- const defaultPlatform = (typeof process === 'object' && process
71
- ? (typeof process.env === 'object' &&
70
+ const defaultPlatform = (typeof process === 'object' && process ?
71
+ (typeof process.env === 'object' &&
72
72
  process.env &&
73
73
  process.env.__MINIMATCH_TESTING_PLATFORM__) ||
74
74
  process.platform
@@ -154,7 +154,7 @@ const braceExpand = (pattern, options = {}) => {
154
154
  // shortcut. no need to expand.
155
155
  return [pattern];
156
156
  }
157
- return (0, brace_expansion_1.expand)(pattern);
157
+ return (0, brace_expansion_1.expand)(pattern, { max: options.braceExpandMax });
158
158
  };
159
159
  exports.braceExpand = braceExpand;
160
160
  exports.minimatch.braceExpand = exports.braceExpand;
@@ -202,16 +202,20 @@ class Minimatch {
202
202
  isWindows;
203
203
  platform;
204
204
  windowsNoMagicRoot;
205
+ maxGlobstarRecursion;
205
206
  regexp;
206
207
  constructor(pattern, options = {}) {
207
208
  (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);
208
209
  options = options || {};
209
210
  this.options = options;
211
+ this.maxGlobstarRecursion = options.maxGlobstarRecursion ?? 200;
210
212
  this.pattern = pattern;
211
213
  this.platform = options.platform || defaultPlatform;
212
214
  this.isWindows = this.platform === 'win32';
215
+ // avoid the annoying deprecation flag lol
216
+ const awe = ('allowWindow' + 'sEscape');
213
217
  this.windowsPathsNoEscape =
214
- !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;
218
+ !!options.windowsPathsNoEscape || options[awe] === false;
215
219
  if (this.windowsPathsNoEscape) {
216
220
  this.pattern = this.pattern.replace(/\\/g, '/');
217
221
  }
@@ -224,8 +228,8 @@ class Minimatch {
224
228
  this.partial = !!options.partial;
225
229
  this.nocase = !!this.options.nocase;
226
230
  this.windowsNoMagicRoot =
227
- options.windowsNoMagicRoot !== undefined
228
- ? options.windowsNoMagicRoot
231
+ options.windowsNoMagicRoot !== undefined ?
232
+ options.windowsNoMagicRoot
229
233
  : !!(this.isWindows && this.nocase);
230
234
  this.globSet = [];
231
235
  this.globParts = [];
@@ -263,6 +267,7 @@ class Minimatch {
263
267
  // step 2: expand braces
264
268
  this.globSet = [...new Set(this.braceExpand())];
265
269
  if (options.debug) {
270
+ //oxlint-disable-next-line no-console
266
271
  this.debug = (...args) => console.error(...args);
267
272
  }
268
273
  this.debug(this.pattern, this.globSet);
@@ -288,7 +293,10 @@ class Minimatch {
288
293
  !globMagic.test(s[3]);
289
294
  const isDrive = /^[a-z]:/i.test(s[0]);
290
295
  if (isUNC) {
291
- return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];
296
+ return [
297
+ ...s.slice(0, 4),
298
+ ...s.slice(4).map(ss => this.parse(ss)),
299
+ ];
292
300
  }
293
301
  else if (isDrive) {
294
302
  return [s[0], ...s.slice(1).map(ss => this.parse(ss))];
@@ -320,12 +328,12 @@ class Minimatch {
320
328
  // to the right as possible, even if it increases the number
321
329
  // of patterns that we have to process.
322
330
  preprocess(globParts) {
323
- // if we're not in globstar mode, then turn all ** into *
331
+ // if we're not in globstar mode, then turn ** into *
324
332
  if (this.options.noglobstar) {
325
- for (let i = 0; i < globParts.length; i++) {
326
- for (let j = 0; j < globParts[i].length; j++) {
327
- if (globParts[i][j] === '**') {
328
- globParts[i][j] = '*';
333
+ for (const partset of globParts) {
334
+ for (let j = 0; j < partset.length; j++) {
335
+ if (partset[j] === '**') {
336
+ partset[j] = '*';
329
337
  }
330
338
  }
331
339
  }
@@ -413,7 +421,11 @@ class Minimatch {
413
421
  let dd = 0;
414
422
  while (-1 !== (dd = parts.indexOf('..', dd + 1))) {
415
423
  const p = parts[dd - 1];
416
- if (p && p !== '.' && p !== '..' && p !== '**') {
424
+ if (p &&
425
+ p !== '.' &&
426
+ p !== '..' &&
427
+ p !== '**' &&
428
+ !(this.isWindows && /^[a-z]:$/i.test(p))) {
417
429
  didSomething = true;
418
430
  parts.splice(dd - 1, 2);
419
431
  dd -= 2;
@@ -606,7 +618,8 @@ class Minimatch {
606
618
  // out of pattern, then that's fine, as long as all
607
619
  // the parts match.
608
620
  matchOne(file, pattern, partial = false) {
609
- const options = this.options;
621
+ let fileStartIndex = 0;
622
+ let patternStartIndex = 0;
610
623
  // UNC paths like //?/X:/... can match X:/... and vice versa
611
624
  // Drive letters in absolute drive or unc paths are always compared
612
625
  // case-insensitively.
@@ -624,18 +637,22 @@ class Minimatch {
624
637
  pattern[2] === '?' &&
625
638
  typeof pattern[3] === 'string' &&
626
639
  /^[a-z]:$/i.test(pattern[3]);
627
- const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;
628
- const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;
640
+ const fdi = fileUNC ? 3
641
+ : fileDrive ? 0
642
+ : undefined;
643
+ const pdi = patternUNC ? 3
644
+ : patternDrive ? 0
645
+ : undefined;
629
646
  if (typeof fdi === 'number' && typeof pdi === 'number') {
630
- const [fd, pd] = [file[fdi], pattern[pdi]];
647
+ const [fd, pd] = [
648
+ file[fdi],
649
+ pattern[pdi],
650
+ ];
651
+ // start matching at the drive letter index of each
631
652
  if (fd.toLowerCase() === pd.toLowerCase()) {
632
653
  pattern[pdi] = fd;
633
- if (pdi > fdi) {
634
- pattern = pattern.slice(pdi);
635
- }
636
- else if (fdi > pdi) {
637
- file = file.slice(fdi);
638
- }
654
+ patternStartIndex = pdi;
655
+ fileStartIndex = fdi;
639
656
  }
640
657
  }
641
658
  }
@@ -645,99 +662,187 @@ class Minimatch {
645
662
  if (optimizationLevel >= 2) {
646
663
  file = this.levelTwoFileOptimize(file);
647
664
  }
648
- this.debug('matchOne', this, { file, pattern });
649
- this.debug('matchOne', file.length, pattern.length);
650
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
665
+ if (pattern.includes(exports.GLOBSTAR)) {
666
+ return this.#matchGlobstar(file, pattern, partial, fileStartIndex, patternStartIndex);
667
+ }
668
+ return this.#matchOne(file, pattern, partial, fileStartIndex, patternStartIndex);
669
+ }
670
+ #matchGlobstar(file, pattern, partial, fileIndex, patternIndex) {
671
+ // split the pattern into head, tail, and middle of ** delimited parts
672
+ const firstgs = pattern.indexOf(exports.GLOBSTAR, patternIndex);
673
+ const lastgs = pattern.lastIndexOf(exports.GLOBSTAR);
674
+ // split the pattern up into globstar-delimited sections
675
+ // the tail has to be at the end, and the others just have
676
+ // to be found in order from the head.
677
+ const [head, body, tail] = partial ?
678
+ [
679
+ pattern.slice(patternIndex, firstgs),
680
+ pattern.slice(firstgs + 1),
681
+ [],
682
+ ]
683
+ : [
684
+ pattern.slice(patternIndex, firstgs),
685
+ pattern.slice(firstgs + 1, lastgs),
686
+ pattern.slice(lastgs + 1),
687
+ ];
688
+ // check the head, from the current file/pattern index.
689
+ if (head.length) {
690
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
691
+ if (!this.#matchOne(fileHead, head, partial, 0, 0)) {
692
+ return false;
693
+ }
694
+ fileIndex += head.length;
695
+ patternIndex += head.length;
696
+ }
697
+ // now we know the head matches!
698
+ // if the last portion is not empty, it MUST match the end
699
+ // check the tail
700
+ let fileTailMatch = 0;
701
+ if (tail.length) {
702
+ // if head + tail > file, then we cannot possibly match
703
+ if (tail.length + fileIndex > file.length)
704
+ return false;
705
+ // try to match the tail
706
+ let tailStart = file.length - tail.length;
707
+ if (this.#matchOne(file, tail, partial, tailStart, 0)) {
708
+ fileTailMatch = tail.length;
709
+ }
710
+ else {
711
+ // affordance for stuff like a/**/* matching a/b/
712
+ // if the last file portion is '', and there's more to the pattern
713
+ // then try without the '' bit.
714
+ if (file[file.length - 1] !== '' ||
715
+ fileIndex + tail.length === file.length) {
716
+ return false;
717
+ }
718
+ tailStart--;
719
+ if (!this.#matchOne(file, tail, partial, tailStart, 0)) {
720
+ return false;
721
+ }
722
+ fileTailMatch = tail.length + 1;
723
+ }
724
+ }
725
+ // now we know the tail matches!
726
+ // the middle is zero or more portions wrapped in **, possibly
727
+ // containing more ** sections.
728
+ // so a/**/b/**/c/**/d has become **/b/**/c/**
729
+ // if it's empty, it means a/**/b, just verify we have no bad dots
730
+ // if there's no tail, so it ends on /**, then we must have *something*
731
+ // after the head, or it's not a matc
732
+ if (!body.length) {
733
+ let sawSome = !!fileTailMatch;
734
+ for (let i = fileIndex; i < file.length - fileTailMatch; i++) {
735
+ const f = String(file[i]);
736
+ sawSome = true;
737
+ if (f === '.' ||
738
+ f === '..' ||
739
+ (!this.options.dot && f.startsWith('.'))) {
740
+ return false;
741
+ }
742
+ }
743
+ // in partial mode, we just need to get past all file parts
744
+ return partial || sawSome;
745
+ }
746
+ // now we know that there's one or more body sections, which can
747
+ // be matched anywhere from the 0 index (because the head was pruned)
748
+ // through to the length-fileTailMatch index.
749
+ // split the body up into sections, and note the minimum index it can
750
+ // be found at (start with the length of all previous segments)
751
+ // [section, before, after]
752
+ const bodySegments = [[[], 0]];
753
+ let currentBody = bodySegments[0];
754
+ let nonGsParts = 0;
755
+ const nonGsPartsSums = [0];
756
+ for (const b of body) {
757
+ if (b === exports.GLOBSTAR) {
758
+ nonGsPartsSums.push(nonGsParts);
759
+ currentBody = [[], 0];
760
+ bodySegments.push(currentBody);
761
+ }
762
+ else {
763
+ currentBody[0].push(b);
764
+ nonGsParts++;
765
+ }
766
+ }
767
+ let i = bodySegments.length - 1;
768
+ const fileLength = file.length - fileTailMatch;
769
+ for (const b of bodySegments) {
770
+ b[1] = fileLength - (nonGsPartsSums[i--] + b[0].length);
771
+ }
772
+ return !!this.#matchGlobStarBodySections(file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
773
+ }
774
+ // return false for "nope, not matching"
775
+ // return null for "not matching, cannot keep trying"
776
+ #matchGlobStarBodySections(file,
777
+ // pattern section, last possible position for it
778
+ bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
779
+ // take the first body segment, and walk from fileIndex to its "after"
780
+ // value at the end
781
+ // If it doesn't match at that position, we increment, until we hit
782
+ // that final possible position, and give up.
783
+ // If it does match, then advance and try to rest.
784
+ // If any of them fail we keep walking forward.
785
+ // this is still a bit recursively painful, but it's more constrained
786
+ // than previous implementations, because we never test something that
787
+ // can't possibly be a valid matching condition.
788
+ const bs = bodySegments[bodyIndex];
789
+ if (!bs) {
790
+ // just make sure that there's no bad dots
791
+ for (let i = fileIndex; i < file.length; i++) {
792
+ sawTail = true;
793
+ const f = file[i];
794
+ if (f === '.' ||
795
+ f === '..' ||
796
+ (!this.options.dot && f.startsWith('.'))) {
797
+ return false;
798
+ }
799
+ }
800
+ return sawTail;
801
+ }
802
+ // have a non-globstar body section to test
803
+ const [body, after] = bs;
804
+ while (fileIndex <= after) {
805
+ const m = this.#matchOne(file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
806
+ // if limit exceeded, no match. intentional false negative,
807
+ // acceptable break in correctness for security.
808
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
809
+ // match! see if the rest match. if so, we're done!
810
+ const sub = this.#matchGlobStarBodySections(file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
811
+ if (sub !== false) {
812
+ return sub;
813
+ }
814
+ }
815
+ const f = file[fileIndex];
816
+ if (f === '.' ||
817
+ f === '..' ||
818
+ (!this.options.dot && f.startsWith('.'))) {
819
+ return false;
820
+ }
821
+ fileIndex++;
822
+ }
823
+ // walked off. no point continuing
824
+ return partial || null;
825
+ }
826
+ #matchOne(file, pattern, partial, fileIndex, patternIndex) {
827
+ let fi;
828
+ let pi;
829
+ let pl;
830
+ let fl;
831
+ for (fi = fileIndex,
832
+ pi = patternIndex,
833
+ fl = file.length,
834
+ pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
651
835
  this.debug('matchOne loop');
652
- var p = pattern[pi];
653
- var f = file[fi];
836
+ let p = pattern[pi];
837
+ let f = file[fi];
654
838
  this.debug(pattern, p, f);
655
839
  // should be impossible.
656
840
  // some invalid regexp stuff in the set.
657
841
  /* c8 ignore start */
658
- if (p === false) {
842
+ if (p === false || p === exports.GLOBSTAR) {
659
843
  return false;
660
844
  }
661
845
  /* c8 ignore stop */
662
- if (p === exports.GLOBSTAR) {
663
- this.debug('GLOBSTAR', [pattern, p, f]);
664
- // "**"
665
- // a/**/b/**/c would match the following:
666
- // a/b/x/y/z/c
667
- // a/x/y/z/b/c
668
- // a/b/x/b/x/c
669
- // a/b/c
670
- // To do this, take the rest of the pattern after
671
- // the **, and see if it would match the file remainder.
672
- // If so, return success.
673
- // If not, the ** "swallows" a segment, and try again.
674
- // This is recursively awful.
675
- //
676
- // a/**/b/**/c matching a/b/x/y/z/c
677
- // - a matches a
678
- // - doublestar
679
- // - matchOne(b/x/y/z/c, b/**/c)
680
- // - b matches b
681
- // - doublestar
682
- // - matchOne(x/y/z/c, c) -> no
683
- // - matchOne(y/z/c, c) -> no
684
- // - matchOne(z/c, c) -> no
685
- // - matchOne(c, c) yes, hit
686
- var fr = fi;
687
- var pr = pi + 1;
688
- if (pr === pl) {
689
- this.debug('** at the end');
690
- // a ** at the end will just swallow the rest.
691
- // We have found a match.
692
- // however, it will not swallow /.x, unless
693
- // options.dot is set.
694
- // . and .. are *never* matched by **, for explosively
695
- // exponential reasons.
696
- for (; fi < fl; fi++) {
697
- if (file[fi] === '.' ||
698
- file[fi] === '..' ||
699
- (!options.dot && file[fi].charAt(0) === '.'))
700
- return false;
701
- }
702
- return true;
703
- }
704
- // ok, let's see if we can swallow whatever we can.
705
- while (fr < fl) {
706
- var swallowee = file[fr];
707
- this.debug('\nglobstar while', file, fr, pattern, pr, swallowee);
708
- // XXX remove this slice. Just pass the start index.
709
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
710
- this.debug('globstar found match!', fr, fl, swallowee);
711
- // found a match.
712
- return true;
713
- }
714
- else {
715
- // can't swallow "." or ".." ever.
716
- // can only swallow ".foo" when explicitly asked.
717
- if (swallowee === '.' ||
718
- swallowee === '..' ||
719
- (!options.dot && swallowee.charAt(0) === '.')) {
720
- this.debug('dot detected!', file, fr, pattern, pr);
721
- break;
722
- }
723
- // ** swallows a segment, and continue.
724
- this.debug('globstar swallow a segment, and continue');
725
- fr++;
726
- }
727
- }
728
- // no match was found.
729
- // However, in partial mode, we can't say this is necessarily over.
730
- /* c8 ignore start */
731
- if (partial) {
732
- // ran out of file
733
- this.debug('\n>>> no match, partial?', file, fr, pattern, pr);
734
- if (fr === fl) {
735
- return true;
736
- }
737
- }
738
- /* c8 ignore stop */
739
- return false;
740
- }
741
846
  // something other than **
742
847
  // non-magic patterns just have to match exactly
743
848
  // patterns with magic have been turned into regexps.
@@ -808,21 +913,19 @@ class Minimatch {
808
913
  fastTest = options.dot ? starTestDot : starTest;
809
914
  }
810
915
  else if ((m = pattern.match(starDotExtRE))) {
811
- fastTest = (options.nocase
812
- ? options.dot
813
- ? starDotExtTestNocaseDot
916
+ fastTest = (options.nocase ?
917
+ options.dot ?
918
+ starDotExtTestNocaseDot
814
919
  : starDotExtTestNocase
815
- : options.dot
816
- ? starDotExtTestDot
920
+ : options.dot ? starDotExtTestDot
817
921
  : starDotExtTest)(m[1]);
818
922
  }
819
923
  else if ((m = pattern.match(qmarksRE))) {
820
- fastTest = (options.nocase
821
- ? options.dot
822
- ? qmarksTestNocaseDot
924
+ fastTest = (options.nocase ?
925
+ options.dot ?
926
+ qmarksTestNocaseDot
823
927
  : qmarksTestNocase
824
- : options.dot
825
- ? qmarksTestDot
928
+ : options.dot ? qmarksTestDot
826
929
  : qmarksTest)(m);
827
930
  }
828
931
  else if ((m = pattern.match(starDotStarRE))) {
@@ -853,10 +956,8 @@ class Minimatch {
853
956
  return this.regexp;
854
957
  }
855
958
  const options = this.options;
856
- const twoStar = options.noglobstar
857
- ? star
858
- : options.dot
859
- ? twoStarDot
959
+ const twoStar = options.noglobstar ? star
960
+ : options.dot ? twoStarDot
860
961
  : twoStarNoDot;
861
962
  const flags = new Set(options.nocase ? ['i'] : []);
862
963
  // regexpify non-globstar patterns
@@ -872,11 +973,9 @@ class Minimatch {
872
973
  for (const f of p.flags.split(''))
873
974
  flags.add(f);
874
975
  }
875
- return typeof p === 'string'
876
- ? regExpEscape(p)
877
- : p === exports.GLOBSTAR
878
- ? exports.GLOBSTAR
879
- : p._src;
976
+ return (typeof p === 'string' ? regExpEscape(p)
977
+ : p === exports.GLOBSTAR ? exports.GLOBSTAR
978
+ : p._src);
880
979
  });
881
980
  pp.forEach((p, i) => {
882
981
  const next = pp[i + 1];
@@ -931,7 +1030,7 @@ class Minimatch {
931
1030
  this.regexp = new RegExp(re, [...flags].join(''));
932
1031
  /* c8 ignore start */
933
1032
  }
934
- catch (ex) {
1033
+ catch {
935
1034
  // should be impossible
936
1035
  this.regexp = false;
937
1036
  }
@@ -946,7 +1045,7 @@ class Minimatch {
946
1045
  if (this.preserveMultipleSlashes) {
947
1046
  return p.split('/');
948
1047
  }
949
- else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
1048
+ else if (this.isWindows && /^\/\/[^/]+/.test(p)) {
950
1049
  // add an extra '' for the one we lose
951
1050
  return ['', ...p.split(/\/+/)];
952
1051
  }
@@ -988,8 +1087,7 @@ class Minimatch {
988
1087
  filename = ff[i];
989
1088
  }
990
1089
  }
991
- for (let i = 0; i < set.length; i++) {
992
- const pattern = set[i];
1090
+ for (const pattern of set) {
993
1091
  let file = ff;
994
1092
  if (options.matchBase && pattern.length === 1) {
995
1093
  file = [filename];