@theia/ai-ide 1.72.1 → 1.72.3

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 (35) hide show
  1. package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts +1 -0
  2. package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts.map +1 -1
  3. package/lib/browser/ai-configuration/ai-configuration-view-contribution.js +15 -2
  4. package/lib/browser/ai-configuration/ai-configuration-view-contribution.js.map +1 -1
  5. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts +3 -0
  6. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts.map +1 -1
  7. package/lib/browser/ai-configuration/tools-configuration-widget.js +61 -4
  8. package/lib/browser/ai-configuration/tools-configuration-widget.js.map +1 -1
  9. package/lib/browser/ide-chat-welcome-message-provider.d.ts +11 -0
  10. package/lib/browser/ide-chat-welcome-message-provider.d.ts.map +1 -1
  11. package/lib/browser/ide-chat-welcome-message-provider.js +31 -1
  12. package/lib/browser/ide-chat-welcome-message-provider.js.map +1 -1
  13. package/lib/browser/todo-tool-renderer.d.ts +7 -1
  14. package/lib/browser/todo-tool-renderer.d.ts.map +1 -1
  15. package/lib/browser/todo-tool-renderer.js +25 -1
  16. package/lib/browser/todo-tool-renderer.js.map +1 -1
  17. package/lib/browser/user-interaction-tool-renderer.d.ts +7 -1
  18. package/lib/browser/user-interaction-tool-renderer.d.ts.map +1 -1
  19. package/lib/browser/user-interaction-tool-renderer.js +25 -1
  20. package/lib/browser/user-interaction-tool-renderer.js.map +1 -1
  21. package/lib/browser/workspace-functions.d.ts +27 -3
  22. package/lib/browser/workspace-functions.d.ts.map +1 -1
  23. package/lib/browser/workspace-functions.js +123 -140
  24. package/lib/browser/workspace-functions.js.map +1 -1
  25. package/lib/browser/workspace-functions.spec.js +323 -24
  26. package/lib/browser/workspace-functions.spec.js.map +1 -1
  27. package/package.json +23 -22
  28. package/src/browser/ai-configuration/ai-configuration-view-contribution.ts +15 -1
  29. package/src/browser/ai-configuration/tools-configuration-widget.tsx +106 -17
  30. package/src/browser/ide-chat-welcome-message-provider.tsx +43 -1
  31. package/src/browser/style/index.css +16 -0
  32. package/src/browser/todo-tool-renderer.tsx +30 -3
  33. package/src/browser/user-interaction-tool-renderer.tsx +30 -3
  34. package/src/browser/workspace-functions.spec.ts +385 -25
  35. package/src/browser/workspace-functions.ts +128 -195
@@ -24,7 +24,9 @@ const browser_1 = require("@theia/core/lib/browser");
24
24
  const nls_1 = require("@theia/core/lib/common/nls");
25
25
  const markdown_part_renderer_1 = require("@theia/ai-chat-ui/lib/browser/chat-response-renderer/markdown-part-renderer");
26
26
  const tool_confirmation_1 = require("@theia/ai-chat-ui/lib/browser/chat-response-renderer/tool-confirmation");
27
+ const tool_confirmation_keybinding_contribution_1 = require("@theia/ai-chat-ui/lib/browser/tool-confirmation-keybinding-contribution");
27
28
  const chat_tool_preference_bindings_1 = require("@theia/ai-chat/lib/browser/chat-tool-preference-bindings");
29
+ const pending_tool_confirmation_tracker_1 = require("@theia/ai-chat/lib/browser/pending-tool-confirmation-tracker");
28
30
  const ai_core_1 = require("@theia/ai-core");
29
31
  const user_interaction_tool_1 = require("./user-interaction-tool");
30
32
  const user_interaction_tool_2 = require("../common/user-interaction-tool");
@@ -332,9 +334,23 @@ let UserInteractionToolRenderer = class UserInteractionToolRenderer {
332
334
  chatId,
333
335
  requestCanceled: parentNode.response.isCanceled,
334
336
  contextMenuRenderer: this.contextMenuRenderer,
335
- openerService: this.openerService
337
+ openerService: this.openerService,
338
+ pendingTracker: this.pendingToolConfirmationTracker,
339
+ keybindingHints: this.getKeybindingHints()
336
340
  } }));
337
341
  }
342
+ getKeybindingHints() {
343
+ const allow = this.formatKeybinding(tool_confirmation_keybinding_contribution_1.APPROVE_LATEST_TOOL_CONFIRMATION_COMMAND.id);
344
+ const deny = this.formatKeybinding(tool_confirmation_keybinding_contribution_1.DENY_LATEST_TOOL_CONFIRMATION_COMMAND.id);
345
+ return { allow, deny };
346
+ }
347
+ formatKeybinding(commandId) {
348
+ const bindings = this.keybindingRegistry.getKeybindingsForCommand(commandId);
349
+ if (!bindings.length) {
350
+ return undefined;
351
+ }
352
+ return this.keybindingRegistry.acceleratorFor(bindings[0], '+').join('+');
353
+ }
338
354
  };
339
355
  exports.UserInteractionToolRenderer = UserInteractionToolRenderer;
340
356
  tslib_1.__decorate([
@@ -357,6 +373,14 @@ tslib_1.__decorate([
357
373
  (0, inversify_1.inject)(browser_1.OpenerService),
358
374
  tslib_1.__metadata("design:type", Object)
359
375
  ], UserInteractionToolRenderer.prototype, "openerService", void 0);
376
+ tslib_1.__decorate([
377
+ (0, inversify_1.inject)(pending_tool_confirmation_tracker_1.PendingToolConfirmationTracker),
378
+ tslib_1.__metadata("design:type", pending_tool_confirmation_tracker_1.PendingToolConfirmationTracker)
379
+ ], UserInteractionToolRenderer.prototype, "pendingToolConfirmationTracker", void 0);
380
+ tslib_1.__decorate([
381
+ (0, inversify_1.inject)(browser_1.KeybindingRegistry),
382
+ tslib_1.__metadata("design:type", browser_1.KeybindingRegistry)
383
+ ], UserInteractionToolRenderer.prototype, "keybindingRegistry", void 0);
360
384
  exports.UserInteractionToolRenderer = UserInteractionToolRenderer = tslib_1.__decorate([
361
385
  (0, inversify_1.injectable)()
362
386
  ], UserInteractionToolRenderer);
@@ -1 +1 @@
1
- {"version":3,"file":"user-interaction-tool-renderer.js","sourceRoot":"","sources":["../../src/browser/user-interaction-tool-renderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-interaction-tool-renderer.js","sourceRoot":"","sources":["../../src/browser/user-interaction-tool-renderer.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAkE;AAGlE,sDAA6F;AAE7F,kDAAkD;AAClD,qDAA0G;AAC1G,oDAAiD;AACjD,wHAAmH;AACnH,8GAAmJ;AACnJ,uIAGiF;AACjF,4GAAmG;AACnG,oHAA8G;AAC9G,4CAAwD;AACxD,mEAA8D;AAC9D,2EAayC;AAuBzC,MAAM,wBAAwB,GAA4C,CAAC,EACvE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EACrF,EAAE,EAAE;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;IAC/B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxD,sFAAsF;IACtF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAc,GAAG,EAAE;QACjE,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK;gBAC7B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC,EAAE;aAC5E,CAAC,CAAC,CAAC;QACR,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,8EAA8E;IAC9E,mFAAmF;IACnF,gFAAgF;IAChF,mEAAmE;IACnE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE/D,MAAM,UAAU,GAAoC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,WAAW,KAAK,SAAS,GAAG,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,IAAA,6CAAoB,EAAC,UAAU,EAAE,OAAO,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;IAElF,iFAAiF;IACjF,kFAAkF;IAClF,MAAM,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC;IAErC,wEAAwE;IACxE,qDAAqD;IACrD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IAC7D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,OAAO,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACrE,OAAO;QACX,CAAC;QACD,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC,CAAC;YACtG,CAAC;QACL,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,SAAkB,EAAE,MAAmB,EAAyB,EAAE,CAAC,CAAC;QACvG,SAAS;QACT,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,UAAU,GAA8B,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACpE,IAAI,KAAK,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACnC,CAAC;YACD,IAAI,KAAK,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/C,UAAU,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC9C,CAAC;YACD,yEAAyE;YACzE,0EAA0E;YAC1E,aAAa;YACb,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACpF,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;YAC9B,CAAC;YACD,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC;KACL,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEb,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,SAAiB,EAAE,OAAuC,EAAE,EAAE;QACrG,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC7B,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,eAAe,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAG,SAAS,KAAK,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1E,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QAC1D,IAAI,OAAO,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,IAAI,GAAgB,CAAC,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACnE,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9D,OAAO;QACX,CAAC;QACD,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,GAAG,IAAI;YACP,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;SAClD,CAAC,CAAC,CAAC;IACR,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAEzF,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QACD,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,GAAG,IAAI;YACP,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;SACxC,CAAC,CAAC,CAAC;QACJ,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5D,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,YAAoB,EAAE,EAAE;QACnE,IAAI,OAAO,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QACD,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC;SAC/D,CAAC,CAAC,CAAC;IACR,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5C,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAsB,EAAE,EAAE;QACtE,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,gBAAgB,EAAE,CAAC;QACvB,CAAC;IACL,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAW,EAAE,EAAE;QAC/C,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YACnF,CAAC;YACD,OAAO;QACX,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/B,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/B,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,SAAG,CAAC,QAAQ,CAAC,uCAAuC,EAAE,iBAAiB,EAAE,WAAW,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;IACvH,MAAM,YAAY,GAAG,UAAU;QAC3B,CAAC,CAAC,SAAG,CAAC,QAAQ,CAAC,wCAAwC,EAAE,QAAQ,CAAC;QAClE,CAAC,CAAC,SAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,cAAc,GAAG,CAAC,YAAY,CAAC;IAErC,OAAO,CACH,6BAAK,SAAS,EAAC,6CAA6C;QACxD,6BAAK,SAAS,EAAC,kBAAkB;YAC7B,8BAAM,SAAS,EAAE,IAAA,iBAAO,EAAC,oBAAoB,CAAC,GAAI;YAClD,8BAAM,SAAS,EAAC,6BAA6B,IAAE,UAAU,CAAC,KAAK,CAAQ;YACtE,CAAC,GAAG,EAAE;gBACH,+DAA+D;gBAC/D,gEAAgE;gBAChE,4DAA4D;gBAC5D,+DAA+D;gBAC/D,qDAAqD;gBACrD,MAAM,MAAM,GACR,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;oBACtC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;wBAC/B,SAAS,CAAC;gBACtB,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;oBACzB,OAAO,CACH,8BAAM,SAAS,EAAC,wCAAwC;wBACpD,2BAAG,SAAS,EAAE,IAAA,iBAAO,EAAC,OAAO,CAAC,GAAI;wBACjC,SAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAChC,CACV,CAAC;gBACN,CAAC;gBACD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;oBACxB,OAAO,CACH,8BAAM,SAAS,EAAC,uCAAuC;wBACnD,2BAAG,SAAS,EAAE,IAAA,iBAAO,EAAC,OAAO,CAAC,GAAI;wBACjC,SAAG,CAAC,QAAQ,CAAC,sCAAsC,EAAE,UAAU,CAAC,CAC9D,CACV,CAAC;gBACN,CAAC;gBACD,OAAO,CACH,8BAAM,SAAS,EAAC,sCAAsC,EAAC,IAAI,EAAC,QAAQ,eAAW,QAAQ,IAClF,SAAG,CAAC,QAAQ,CAAC,wDAAwD,EAAE,mBAAmB,CAAC,CACzF,CACV,CAAC;YACN,CAAC,CAAC,EAAE,CACF;QACL,CAAC,YAAY,IAAI,oBAAC,YAAY,IAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAI;QAC3G,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAChD,6BAAK,SAAS,EAAC,6BAA6B,IACvC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC/B,oBAAC,UAAU,IACP,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC,GAC7G,CACL,CAAC,CACA,CACT;QACD,6BAAK,SAAS,EAAC,+BAA+B,EAAC,GAAG,EAAE,UAAU,GAAI;QACjE,UAAU,IAAI,CACX,6BAAK,SAAS,EAAC,+BAA+B,IACzC,UAAU,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;YACtD,MAAM,SAAS,GAAG,mDAAmD;kBAC/D,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC;YAChD,OAAO,CACH,gCACI,GAAG,EAAE,CAAC,EACN,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,MAAM,CAAC,WAAW,kBACX,UAAU;gBAIxB,8BAAM,SAAS,EAAC,iDAAiD,iBAAa,MAAM,IAAE,KAAK,CAAQ;gBACnG,8BAAM,SAAS,EAAC,2CAA2C,IAAE,KAAK,CAAQ,CACrE,CACZ,CAAC;QACN,CAAC,CAAC,CACA,CACT;QACA,CAAC,YAAY,IAAI,CACd,6BAAK,SAAS,EAAC,uCAAuC;YACjD,CAAC,OAAO,IAAI,CACT,6BAAK,SAAS,EAAC,yCAAyC;gBACpD,+BACI,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,uDAAuD,EACjE,WAAW,EAAE,SAAG,CAAC,QAAQ,CAAC,gDAAgD,EAAE,gCAAgC,CAAC,EAC7G,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,SAAS,EAAE,oBAAoB,GACjC;gBACF,gCACI,SAAS,EAAC,6DAA6D,EACvE,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAE/B,SAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAC5B,CACP,CACT;YACA,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAChC,4BAAI,SAAS,EAAC,oCAAoC,IAC7C,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CACtC,4BAAI,GAAG,EAAE,CAAC,EAAE,SAAS,EAAC,oCAAoC;gBACtD,8BAAM,SAAS,EAAC,oCAAoC,IAAE,OAAO,CAAQ;gBACpE,CAAC,OAAO,IAAI,CACT,gCACI,SAAS,EAAC,sCAAsC,EAChD,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,EACrC,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,gBAC1B,SAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC;oBAE3C,2BAAG,SAAS,EAAE,IAAA,iBAAO,EAAC,OAAO,CAAC,GAAI,CAC7B,CACZ,CACA,CACR,CAAC,CACD,CACR,CACC,CACT;QACA,cAAc,IAAI,CACf,6BAAK,SAAS,EAAC,mCAAmC;YAC7C,CAAC,YAAY,IAAI,CACd;gBACI,gCACI,SAAS,EAAC,0DAA0D,EACpE,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,WAAW,KAAK,CAAC,EAC3B,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC;oBAEpC,2BAAG,SAAS,EAAE,IAAA,iBAAO,EAAC,YAAY,CAAC,GAAI;oBACtC,SAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CACzB;gBACT,8BAAM,SAAS,EAAC,oCAAoC,gBAAa,SAAS;oBACrE,WAAW,GAAG,CAAC;;oBAAK,SAAS,CAC3B,CACR,CACN;YACD,gCACI,SAAS,EAAC,wDAAwD,EAClE,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,OAAO,IAAI,UAAU;gBAE9B,YAAY;gBACb,2BAAG,SAAS,EAAE,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,GAAI,CAC1D,CACP,CACT,CACC,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,YAAY,GAKb,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1C,6BAAK,SAAS,EAAC,gCAAgC,IAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,SAAG,CAAC,QAAQ,CACtB,sCAAsC,EACtC,qBAAqB,EACrB,CAAC,GAAG,CAAC,EACL,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CACxB,CAAC;IACF,OAAO,CACH,gCACI,GAAG,EAAE,CAAC,EACN,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,oCAAoC;cACzC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;cAC5B,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,KAAK,gBACA,KAAK,kBACH,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAClD,CACL,CAAC;AACN,CAAC,CAAC,CACA,CACT,CAAC;AAEF,MAAM,UAAU,GAAiE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IACnG,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAO,EAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAA,yCAAiB,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,KAAa,CAAC;IAClB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAChB,KAAK,GAAG,IAAA,sCAAc,EAAC,IAAI,EAAE,IAAA,yCAAiB,EAAC,IAAI,CAAC,QAAS,CAAC,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,IAAA,yCAAiB,EAAC,IAAI,CAAC;YAC3B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,SAAG,CAAC,QAAQ,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;YAC5E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,CACH,gCAAQ,SAAS,EAAC,mCAAmC,EAAC,OAAO,EAAE,OAAO;QAClE,2BAAG,SAAS,EAAE,IAAI,GAAI;QACtB,kCAAO,KAAK,CAAQ,CACf,CACZ,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,+BAA+B,GAAG,IAAA,4CAAwB,EAAC,wBAAwB,CAAC,CAAC;AAE3F,MAAM,iBAAiB,GAAmD,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE;IAC/F,IAAI,KAAa,CAAC;IAClB,IAAI,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,SAAG,CAAC,QAAQ,CAAC,4CAA4C,EAAE,4BAA4B,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACvH,CAAC;SAAM,IAAI,KAAK,EAAE,CAAC;QACf,KAAK,GAAG,SAAG,CAAC,QAAQ,CAAC,4CAA4C,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAChG,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,SAAG,CAAC,QAAQ,CAAC,uCAAuC,EAAE,+BAA+B,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,CACH,6BAAK,SAAS,EAAC,qBAAqB;QAChC,6BAAK,SAAS,EAAC,0BAA0B;YACrC,8BAAM,SAAS,EAAE,IAAA,iBAAO,EAAC,oBAAoB,CAAC,GAAI;YAClD,8BAAM,SAAS,EAAE,GAAG,IAAA,iBAAO,EAAC,SAAS,CAAC,uBAAuB,GAAI;YACjE,8BAAM,SAAS,EAAC,oCAAoC,IAAE,KAAK,CAAQ,CACjE,CACJ,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAkC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACzE,6BAAK,SAAS,EAAC,qBAAqB;IAChC,6BAAK,SAAS,EAAC,wBAAwB;QACnC,8BAAM,SAAS,EAAE,IAAA,iBAAO,EAAC,oBAAoB,CAAC,GAAI;QAClD,8BAAM,SAAS,EAAC,6BAA6B,IACxC,SAAG,CAAC,QAAQ,CAAC,uCAAuC,EAAE,yCAAyC,CAAC,CAC9F,CACL;IACN,6BAAK,SAAS,EAAC,yBAAyB,IAAE,OAAO,CAAO,CACtD,CACT,CAAC;AAGF,SAAS,oBAAoB,CAAC,GAAY;IACtC,IAAI,SAAS,GAAY,GAAG,CAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACD,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IACD,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAQ,SAAiC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7G,OAAO,SAA4B,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAGM,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAuBpC,SAAS,CAAC,QAA6B;QACnC,IAAI,oCAA2B,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,oDAA4B,EAAE,CAAC;YAC7F,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED,MAAM,CAAC,QAAqC,EAAE,UAAwB;QAClE,MAAM,IAAI,GAAG,IAAA,gDAAwB,EAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE1D,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACxB,uEAAuE;YACvE,kEAAkE;YAClE,wEAAwE;YACxE,0CAA0C;YAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpD,MAAM,OAAO,GAAG,KAAK,EAAE,KAAK;uBACrB,SAAG,CAAC,QAAQ,CAAC,+CAA+C,EAAE,oCAAoC,CAAC,CAAC;gBAC3G,OAAO,oBAAC,oBAAoB,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC;YACtD,CAAC;YACD,MAAM,KAAK,GAAG,IAAA,iDAAyB,EAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC5D,OAAO,oBAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,GAAI,CAAC;QACjF,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,oDAA4B,CAAC,CAAC;QAC1F,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CACrE,oDAA4B,EAAE,MAAM,EAAE,WAAW,CACpD,CAAC;QAEF,OAAO,CACH,oBAAC,+BAA+B,IAC5B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,QAAQ,CAAC,EAAE,EACvB,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAC9B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,EACxC,MAAM,EAAE,IAAA,kDAA0B,EAAC,QAAQ,CAAC,MAAM,CAAC,EACnD,eAAe,EAAE,OAAO,CAAC,EAAE;gBACvB,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAG,EAAE,OAAO,CAAC,CAAC;gBAC9D,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACnD,CAAC,EACD,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,gBAAgB,EAAE;gBACd,QAAQ;gBACR,gBAAgB;gBAChB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;gBACrD,WAAW;gBACX,MAAM;gBACN,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU;gBAC/C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,cAAc,EAAE,IAAI,CAAC,8BAA8B;gBACnD,eAAe,EAAE,IAAI,CAAC,kBAAkB,EAAE;aAC7C,GACH,CACL,CAAC;IACN,CAAC;IAES,kBAAkB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,oFAAwC,CAAC,EAAE,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,iFAAqC,CAAC,EAAE,CAAC,CAAC;QAC7E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAES,gBAAgB,CAAC,SAAiB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;CACJ,CAAA;AAhGY,kEAA2B;AAG1B;IADT,IAAA,kBAAM,EAAC,uDAAuB,CAAC;sCACG,uDAAuB;4EAAC;AAGjD;IADT,IAAA,kBAAM,EAAC,6BAAmB,CAAC;sCACG,6BAAmB;wEAAC;AAGzC;IADT,IAAA,kBAAM,EAAC,gCAAsB,CAAC;;2EAC0B;AAG/C;IADT,IAAA,kBAAM,EAAC,2CAAmB,CAAC;sCACG,2CAAmB;wEAAC;AAGzC;IADT,IAAA,kBAAM,EAAC,uBAAa,CAAC;;kEACiB;AAG7B;IADT,IAAA,kBAAM,EAAC,kEAA8B,CAAC;sCACG,kEAA8B;mFAAC;AAG/D;IADT,IAAA,kBAAM,EAAC,4BAAkB,CAAC;sCACG,4BAAkB;uEAAC;sCArBxC,2BAA2B;IADvC,IAAA,sBAAU,GAAE;GACA,2BAA2B,CAgGvC"}
@@ -4,7 +4,9 @@ import { CancellationToken, PreferenceService, URI } from '@theia/core';
4
4
  import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
5
5
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
6
6
  import { FileStat } from '@theia/filesystem/lib/common/files';
7
+ import { FileSearchService } from '@theia/file-search/lib/common/file-search-service';
7
8
  import { WorkspaceService } from '@theia/workspace/lib/browser';
9
+ import ignore from 'ignore';
8
10
  import { MonacoWorkspace } from '@theia/monaco/lib/browser/monaco-workspace';
9
11
  import { MonacoTextModelService } from '@theia/monaco/lib/browser/monaco-text-model-service';
10
12
  import { ProblemManager } from '@theia/markers/lib/browser';
@@ -125,6 +127,13 @@ export declare class WorkspaceFunctionScope {
125
127
  * platform: POSIX `/foo`, UNC `//host/share`, or Windows drive `C:/foo`.
126
128
  */
127
129
  static isAbsolutePath(normalized: string): boolean;
130
+ /**
131
+ * Returns the URI without a trailing path separator (except for a root path). This makes
132
+ * directory comparisons via {@link URI.isEqualOrParent} insensitive to a trailing slash, so
133
+ * an allow-list entry such as `/foo/` matches the directory `/foo` itself, not only its
134
+ * children.
135
+ */
136
+ static withoutTrailingSeparator(uri: URI): URI;
128
137
  protected getHomeDirUri(): Promise<URI | undefined>;
129
138
  /**
130
139
  * Whether the already-separator-normalized path contains `..` as a path
@@ -135,6 +144,13 @@ export declare class WorkspaceFunctionScope {
135
144
  shouldExclude(stat: FileStat): Promise<boolean>;
136
145
  protected isUserExcluded(fileName: string, userExcludePatterns: string[]): boolean;
137
146
  protected isGitIgnored(stat: FileStat, workspaceRoot: URI): Promise<boolean>;
147
+ /**
148
+ * Returns the cached `.gitignore` matcher for the given root, reading the file at most
149
+ * once per root. A root with no (or unreadable) `.gitignore` is cached as `undefined`.
150
+ * The cache is invalidated by {@link initializeGitignoreWatcher} when the `.gitignore` is
151
+ * created, changed, or deleted, so individual exclusion checks need no filesystem RPC.
152
+ */
153
+ protected getGitignoreMatcher(workspaceRoot: URI): Promise<ReturnType<typeof ignore> | undefined>;
138
154
  }
139
155
  export declare class GetWorkspaceDirectoryStructure implements ToolProvider {
140
156
  static ID: string;
@@ -185,10 +201,18 @@ export declare class FindFilesByPattern implements ToolProvider {
185
201
  static ID: string;
186
202
  protected readonly workspaceScope: WorkspaceFunctionScope;
187
203
  protected readonly preferences: PreferenceService;
188
- protected readonly fileService: FileService;
204
+ protected readonly fileSearchService: FileSearchService;
189
205
  getTool(): ToolRequest;
190
206
  private findFiles;
191
- private buildIgnorePatterns;
192
- private traverseDirectory;
207
+ /**
208
+ * Renders a search-result URI in the format expected by the caller: an absolute
209
+ * path for external roots, or a `<rootName>/<relativePath>` (or bare relative
210
+ * path when no root name is available) for workspace roots.
211
+ */
212
+ protected toDisplayPath(match: URI, target: {
213
+ rootUri: URI;
214
+ rootName?: string;
215
+ external: boolean;
216
+ }): string | undefined;
193
217
  }
194
218
  //# sourceMappingURL=workspace-functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-functions.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-functions.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-functions.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ const env_variables_1 = require("@theia/core/lib/common/env-variables");
9
9
  const inversify_1 = require("@theia/core/shared/inversify");
10
10
  const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
11
11
  const files_1 = require("@theia/filesystem/lib/common/files");
12
+ const file_search_service_1 = require("@theia/file-search/lib/common/file-search-service");
12
13
  const browser_1 = require("@theia/workspace/lib/browser");
13
14
  const workspace_functions_1 = require("../common/workspace-functions");
14
15
  const toolcall_utils_1 = require("@theia/ai-chat-ui/lib/browser/chat-response-renderer/toolcall-utils");
@@ -310,7 +311,9 @@ let WorkspaceFunctionScope = WorkspaceFunctionScope_1 = class WorkspaceFunctionS
310
311
  }
311
312
  const uri = await this.toExternalUri(trimmed);
312
313
  if (uri && uri.scheme === 'file') {
313
- result.push(uri.normalizePath());
314
+ // Strip a trailing separator so an entry like `/foo/` still matches the
315
+ // directory `/foo` itself (URI.isEqualOrParent compares the last segment exactly).
316
+ result.push(WorkspaceFunctionScope_1.withoutTrailingSeparator(uri.normalizePath()));
314
317
  }
315
318
  }
316
319
  return result;
@@ -381,6 +384,19 @@ let WorkspaceFunctionScope = WorkspaceFunctionScope_1 = class WorkspaceFunctionS
381
384
  }
382
385
  return /^[A-Za-z]:\//.test(normalized);
383
386
  }
387
+ /**
388
+ * Returns the URI without a trailing path separator (except for a root path). This makes
389
+ * directory comparisons via {@link URI.isEqualOrParent} insensitive to a trailing slash, so
390
+ * an allow-list entry such as `/foo/` matches the directory `/foo` itself, not only its
391
+ * children.
392
+ */
393
+ static withoutTrailingSeparator(uri) {
394
+ const path = uri.path.toString();
395
+ if (path.length > 1 && path.endsWith('/')) {
396
+ return uri.withPath(path.substring(0, path.length - 1));
397
+ }
398
+ return uri;
399
+ }
384
400
  getHomeDirUri() {
385
401
  if (!this.homeDirUri) {
386
402
  this.homeDirUri = this.envVariablesServer.getHomeDirUri()
@@ -429,31 +445,41 @@ let WorkspaceFunctionScope = WorkspaceFunctionScope_1 = class WorkspaceFunctionS
429
445
  return userExcludePatterns.some(pattern => new minimatch_1.Minimatch(pattern, { dot: true }).match(fileName));
430
446
  }
431
447
  async isGitIgnored(stat, workspaceRoot) {
448
+ const matcher = await this.getGitignoreMatcher(workspaceRoot);
449
+ if (!matcher) {
450
+ return false;
451
+ }
452
+ const relativePath = workspaceRoot.relative(stat.resource);
453
+ if (!relativePath) {
454
+ return false;
455
+ }
456
+ const relativePathStr = relativePath.toString() + (stat.isDirectory ? '/' : '');
457
+ return matcher.ignores(relativePathStr);
458
+ }
459
+ /**
460
+ * Returns the cached `.gitignore` matcher for the given root, reading the file at most
461
+ * once per root. A root with no (or unreadable) `.gitignore` is cached as `undefined`.
462
+ * The cache is invalidated by {@link initializeGitignoreWatcher} when the `.gitignore` is
463
+ * created, changed, or deleted, so individual exclusion checks need no filesystem RPC.
464
+ */
465
+ async getGitignoreMatcher(workspaceRoot) {
432
466
  await this.initializeGitignoreWatcher(workspaceRoot);
433
467
  const rootKey = workspaceRoot.toString();
434
- const gitignoreUri = workspaceRoot.resolve(this.GITIGNORE_FILE_NAME);
468
+ if (this.gitignoreMatchers.has(rootKey)) {
469
+ return this.gitignoreMatchers.get(rootKey);
470
+ }
471
+ let matcher;
435
472
  try {
436
- const fileStat = await this.fileService.resolve(gitignoreUri);
437
- if (fileStat) {
438
- let matcher = this.gitignoreMatchers.get(rootKey);
439
- if (!matcher) {
440
- const gitignoreContent = await this.fileService.read(gitignoreUri);
441
- matcher = (0, ignore_1.default)().add(gitignoreContent.value);
442
- this.gitignoreMatchers.set(rootKey, matcher);
443
- }
444
- const relativePath = workspaceRoot.relative(stat.resource);
445
- if (relativePath) {
446
- const relativePathStr = relativePath.toString() + (stat.isDirectory ? '/' : '');
447
- if (matcher.ignores(relativePathStr)) {
448
- return true;
449
- }
450
- }
451
- }
473
+ const gitignoreUri = workspaceRoot.resolve(this.GITIGNORE_FILE_NAME);
474
+ const gitignoreContent = await this.fileService.read(gitignoreUri);
475
+ matcher = (0, ignore_1.default)().add(gitignoreContent.value);
452
476
  }
453
477
  catch {
454
- // If .gitignore does not exist or cannot be read, continue without error
478
+ // No .gitignore (or it cannot be read): cache the absence so we don't retry on every check.
479
+ matcher = undefined;
455
480
  }
456
- return false;
481
+ this.gitignoreMatchers.set(rootKey, matcher);
482
+ return matcher;
457
483
  }
458
484
  };
459
485
  exports.WorkspaceFunctionScope = WorkspaceFunctionScope;
@@ -565,16 +591,23 @@ let GetWorkspaceDirectoryStructure = class GetWorkspaceDirectoryStructure {
565
591
  const stat = await this.fileService.resolve(uri);
566
592
  const result = {};
567
593
  if (stat && stat.isDirectory && stat.children) {
594
+ // Determine which child directories to include (the exclusion check may be async)...
595
+ const childDirs = [];
568
596
  for (const child of stat.children) {
569
597
  if (cancellationToken?.isCancellationRequested) {
570
598
  return { error: 'Operation cancelled by user' };
571
599
  }
572
- if (!child.isDirectory || (await this.workspaceScope.shouldExclude(child))) {
573
- continue;
600
+ if (child.isDirectory && !(await this.workspaceScope.shouldExclude(child))) {
601
+ childDirs.push(child.resource);
574
602
  }
575
- const dirName = child.resource.path.base;
576
- result[dirName] = await this.buildDirectoryStructure(child.resource, cancellationToken);
577
603
  }
604
+ // ...then resolve their subtrees concurrently, so the traversal costs O(depth)
605
+ // round-trips instead of one serial round-trip per directory. Empty directories
606
+ // are preserved (they resolve to an empty object).
607
+ const subtrees = await Promise.all(childDirs.map(childUri => this.buildDirectoryStructure(childUri, cancellationToken)));
608
+ childDirs.forEach((childUri, index) => {
609
+ result[childUri.path.base] = subtrees[index];
610
+ });
578
611
  }
579
612
  return result;
580
613
  }
@@ -928,34 +961,29 @@ let GetWorkspaceFileList = class GetWorkspaceFileList {
928
961
  if (!stat || !stat.isDirectory) {
929
962
  return JSON.stringify({ error: 'Directory not found' });
930
963
  }
931
- return await this.listFilesDirectly(targetUri, cancellationToken);
964
+ return await this.listFilesDirectly(stat, cancellationToken);
932
965
  }
933
966
  catch (error) {
934
967
  return JSON.stringify({ error: 'Directory not found' });
935
968
  }
936
969
  }
937
- async listFilesDirectly(uri, cancellationToken) {
970
+ async listFilesDirectly(stat, cancellationToken) {
938
971
  if (cancellationToken?.isCancellationRequested) {
939
972
  return JSON.stringify({ error: 'Operation cancelled by user' });
940
973
  }
941
- const stat = await this.fileService.resolve(uri);
942
974
  const result = {};
943
- if (stat && stat.isDirectory) {
944
- if (await this.workspaceScope.shouldExclude(stat)) {
945
- return JSON.stringify(result);
975
+ if (await this.workspaceScope.shouldExclude(stat)) {
976
+ return JSON.stringify(result);
977
+ }
978
+ // `stat` already carries one level of children from the caller's resolve, so no extra RPC.
979
+ for (const child of stat.children ?? []) {
980
+ if (cancellationToken?.isCancellationRequested) {
981
+ return JSON.stringify({ error: 'Operation cancelled by user' });
946
982
  }
947
- const children = await this.fileService.resolve(uri);
948
- if (children.children) {
949
- for (const child of children.children) {
950
- if (cancellationToken?.isCancellationRequested) {
951
- return JSON.stringify({ error: 'Operation cancelled by user' });
952
- }
953
- if (await this.workspaceScope.shouldExclude(child)) {
954
- continue;
955
- }
956
- result[child.resource.path.base] = child.isDirectory ? 'directory' : 'file';
957
- }
983
+ if (await this.workspaceScope.shouldExclude(child)) {
984
+ continue;
958
985
  }
986
+ result[child.resource.path.base] = child.isDirectory ? 'directory' : 'file';
959
987
  }
960
988
  return JSON.stringify(result);
961
989
  }
@@ -1132,8 +1160,6 @@ let FindFilesByPattern = class FindFilesByPattern {
1132
1160
  '\'src/**/*.js\' for JavaScript files in the src directory. The function respects gitignore patterns and user exclusions, ' +
1133
1161
  'returns workspace-relative paths (e.g., "my-project/src/index.ts") or absolute paths for external roots, ' +
1134
1162
  'and limits results to 200 files maximum. ' +
1135
- 'Performance note: This traverses directories recursively which may be slow in large workspaces. ' +
1136
- 'For better performance, use specific subdirectory patterns (e.g., \'src/**/*.ts\' instead of \'**/*.ts\'). ' +
1137
1163
  'Use this to find files by name/extension. Do NOT use this for searching file contents - use searchInWorkspace instead.',
1138
1164
  parameters: {
1139
1165
  type: 'object',
@@ -1142,8 +1168,7 @@ let FindFilesByPattern = class FindFilesByPattern {
1142
1168
  type: 'string',
1143
1169
  description: 'Glob pattern to match files against. ' +
1144
1170
  'Examples: \'**/*.ts\' (all TypeScript files), \'src/**/*.js\' (JS files in src), ' +
1145
- '\'**/*.{js,ts}\' (JS or TS files), \'**/test/**/*.spec.ts\' (test files). ' +
1146
- 'Use specific subdirectory prefixes for better performance (e.g., \'packages/core/**/*.ts\' instead of \'**/*.ts\').'
1171
+ '\'**/*.{js,ts}\' (JS or TS files), \'**/test/**/*.spec.ts\' (test files).'
1147
1172
  },
1148
1173
  exclude: {
1149
1174
  type: 'array',
@@ -1190,29 +1215,19 @@ let FindFilesByPattern = class FindFilesByPattern {
1190
1215
  return JSON.stringify({ error: 'Operation cancelled by user' });
1191
1216
  }
1192
1217
  try {
1193
- const patternMatcher = new minimatch_1.Minimatch(pattern, { dot: false });
1194
- const files = [];
1195
1218
  const maxResults = 200;
1219
+ const useGitIgnore = this.preferences.get(workspace_preferences_1.CONSIDER_GITIGNORE_PREF, true);
1220
+ const userExcludes = this.preferences.get(workspace_preferences_1.USER_EXCLUDE_PATTERN_PREF, []);
1221
+ const excludes = [...userExcludes, ...(excludePatterns ?? [])];
1222
+ // Resolve the set of roots to search and how each root's results should be rendered.
1223
+ const targets = [];
1196
1224
  if (searchRoot) {
1197
1225
  const resolved = await this.workspaceScope.resolveToUri(searchRoot);
1198
1226
  if (!resolved) {
1199
1227
  return JSON.stringify({ error: `Invalid searchRoot: '${searchRoot}'` });
1200
1228
  }
1201
- const rootUri = resolved;
1202
- const isExternalRoot = !this.workspaceScope.isInWorkspace(rootUri);
1203
- await this.workspaceScope.ensureAccessible(rootUri);
1204
- const ignorePatterns = isExternalRoot
1205
- ? this.preferences.get(workspace_preferences_1.USER_EXCLUDE_PATTERN_PREF, [])
1206
- : await this.buildIgnorePatterns(rootUri);
1207
- const allExcludes = [...ignorePatterns];
1208
- if (excludePatterns && excludePatterns.length > 0) {
1209
- allExcludes.push(...excludePatterns);
1210
- }
1211
- if (cancellationToken?.isCancellationRequested) {
1212
- return JSON.stringify({ error: 'Operation cancelled by user' });
1213
- }
1214
- const excludeMatchers = allExcludes.map(excludePattern => new minimatch_1.Minimatch(excludePattern, { dot: true }));
1215
- await this.traverseDirectory(rootUri, rootUri, undefined, patternMatcher, excludeMatchers, files, maxResults, cancellationToken, isExternalRoot);
1229
+ await this.workspaceScope.ensureAccessible(resolved);
1230
+ targets.push({ rootUri: resolved, external: !this.workspaceScope.isInWorkspace(resolved) });
1216
1231
  }
1217
1232
  else {
1218
1233
  const rootMapping = this.workspaceScope.getRootMapping();
@@ -1220,19 +1235,38 @@ let FindFilesByPattern = class FindFilesByPattern {
1220
1235
  return JSON.stringify({ error: 'No workspace has been opened yet' });
1221
1236
  }
1222
1237
  for (const [rootName, rootUri] of rootMapping) {
1223
- if (cancellationToken?.isCancellationRequested) {
1224
- return JSON.stringify({ error: 'Operation cancelled by user' });
1225
- }
1226
- if (files.length >= maxResults) {
1227
- break;
1228
- }
1229
- const ignorePatterns = await this.buildIgnorePatterns(rootUri);
1230
- const allExcludes = [...ignorePatterns];
1231
- if (excludePatterns && excludePatterns.length > 0) {
1232
- allExcludes.push(...excludePatterns);
1238
+ targets.push({ rootUri, rootName, external: false });
1239
+ }
1240
+ }
1241
+ // Delegate the actual traversal to the backend ripgrep-based file search.
1242
+ // It runs natively on the backend filesystem (no per-directory RPC) and applies
1243
+ // include/exclude globs.
1244
+ const files = [];
1245
+ for (const target of targets) {
1246
+ if (cancellationToken?.isCancellationRequested) {
1247
+ return JSON.stringify({ error: 'Operation cancelled by user' });
1248
+ }
1249
+ if (files.length > maxResults) {
1250
+ break;
1251
+ }
1252
+ // `considerGitIgnore` is scoped to workspace roots (see its preference description),
1253
+ // so external allow-listed roots are searched with user/caller excludes only (plus
1254
+ // `.git`). Applying gitignore there would also leak the user's *global* gitignore
1255
+ // into an explicitly allow-listed directory and silently hide files.
1256
+ // Request one extra result across all roots so we can detect truncation.
1257
+ const matches = await this.fileSearchService.find('', {
1258
+ rootUris: [target.rootUri.toString()],
1259
+ includePatterns: [pattern],
1260
+ excludePatterns: target.external ? [...excludes, '.git'] : excludes,
1261
+ useGitIgnore: target.external ? false : useGitIgnore,
1262
+ fuzzyMatch: false,
1263
+ limit: maxResults - files.length + 1
1264
+ }, cancellationToken);
1265
+ for (const match of matches) {
1266
+ const display = this.toDisplayPath(new core_1.URI(match), target);
1267
+ if (display !== undefined) {
1268
+ files.push(display);
1233
1269
  }
1234
- const excludeMatchers = allExcludes.map(excludePattern => new minimatch_1.Minimatch(excludePattern, { dot: true }));
1235
- await this.traverseDirectory(rootUri, rootUri, rootName, patternMatcher, excludeMatchers, files, maxResults, cancellationToken);
1236
1270
  }
1237
1271
  }
1238
1272
  if (cancellationToken?.isCancellationRequested) {
@@ -1242,7 +1276,6 @@ let FindFilesByPattern = class FindFilesByPattern {
1242
1276
  files: files.slice(0, maxResults)
1243
1277
  };
1244
1278
  if (files.length > maxResults) {
1245
- result.totalFound = files.length;
1246
1279
  result.truncated = true;
1247
1280
  }
1248
1281
  return JSON.stringify(result);
@@ -1251,70 +1284,20 @@ let FindFilesByPattern = class FindFilesByPattern {
1251
1284
  return JSON.stringify({ error: `Failed to find files: ${error.message}` });
1252
1285
  }
1253
1286
  }
1254
- async buildIgnorePatterns(workspaceRoot) {
1255
- const patterns = [];
1256
- // Get user exclude patterns from preferences
1257
- const userExcludePatterns = this.preferences.get(workspace_preferences_1.USER_EXCLUDE_PATTERN_PREF, []);
1258
- patterns.push(...userExcludePatterns);
1259
- // Add gitignore patterns if enabled
1260
- const shouldConsiderGitIgnore = this.preferences.get(workspace_preferences_1.CONSIDER_GITIGNORE_PREF, false);
1261
- if (shouldConsiderGitIgnore) {
1262
- try {
1263
- const gitignoreUri = workspaceRoot.resolve('.gitignore');
1264
- const gitignoreContent = await this.fileService.read(gitignoreUri);
1265
- const gitignoreLines = gitignoreContent.value
1266
- .split('\n')
1267
- .map(line => line.trim())
1268
- .filter(line => line && !line.startsWith('#'));
1269
- patterns.push(...gitignoreLines);
1270
- }
1271
- catch {
1272
- // Gitignore file doesn't exist or can't be read, continue without it
1273
- }
1274
- }
1275
- return patterns;
1276
- }
1277
- async traverseDirectory(currentUri, searchRoot, rootName, patternMatcher, excludeMatchers, results, maxResults, cancellationToken, emitAbsolutePaths = false) {
1278
- if (cancellationToken?.isCancellationRequested || results.length >= maxResults) {
1279
- return;
1280
- }
1281
- try {
1282
- const stat = await this.fileService.resolve(currentUri);
1283
- if (!stat || !stat.isDirectory || !stat.children) {
1284
- return;
1285
- }
1286
- for (const child of stat.children) {
1287
- if (cancellationToken?.isCancellationRequested || results.length >= maxResults) {
1288
- break;
1289
- }
1290
- const relativePath = searchRoot.relative(child.resource)?.toString();
1291
- if (!relativePath) {
1292
- continue;
1293
- }
1294
- const shouldExclude = excludeMatchers.some(matcher => matcher.match(relativePath)) ||
1295
- (await this.workspaceScope.shouldExclude(child));
1296
- if (shouldExclude) {
1297
- continue;
1298
- }
1299
- if (child.isDirectory) {
1300
- await this.traverseDirectory(child.resource, searchRoot, rootName, patternMatcher, excludeMatchers, results, maxResults, cancellationToken, emitAbsolutePaths);
1301
- }
1302
- else if (patternMatcher.match(relativePath)) {
1303
- if (emitAbsolutePaths) {
1304
- results.push(child.resource.path.toString());
1305
- }
1306
- else if (rootName) {
1307
- results.push(`${rootName}/${relativePath}`);
1308
- }
1309
- else {
1310
- results.push(relativePath);
1311
- }
1312
- }
1313
- }
1287
+ /**
1288
+ * Renders a search-result URI in the format expected by the caller: an absolute
1289
+ * path for external roots, or a `<rootName>/<relativePath>` (or bare relative
1290
+ * path when no root name is available) for workspace roots.
1291
+ */
1292
+ toDisplayPath(match, target) {
1293
+ if (target.external) {
1294
+ return match.path.toString();
1314
1295
  }
1315
- catch {
1316
- // If we can't access a directory, skip it
1296
+ const relativePath = target.rootUri.relative(match)?.toString();
1297
+ if (relativePath === undefined) {
1298
+ return undefined;
1317
1299
  }
1300
+ return target.rootName ? `${target.rootName}/${relativePath}` : relativePath;
1318
1301
  }
1319
1302
  };
1320
1303
  exports.FindFilesByPattern = FindFilesByPattern;
@@ -1327,9 +1310,9 @@ tslib_1.__decorate([
1327
1310
  tslib_1.__metadata("design:type", Object)
1328
1311
  ], FindFilesByPattern.prototype, "preferences", void 0);
1329
1312
  tslib_1.__decorate([
1330
- (0, inversify_1.inject)(file_service_1.FileService),
1331
- tslib_1.__metadata("design:type", file_service_1.FileService)
1332
- ], FindFilesByPattern.prototype, "fileService", void 0);
1313
+ (0, inversify_1.inject)(file_search_service_1.FileSearchService),
1314
+ tslib_1.__metadata("design:type", Object)
1315
+ ], FindFilesByPattern.prototype, "fileSearchService", void 0);
1333
1316
  exports.FindFilesByPattern = FindFilesByPattern = FindFilesByPattern_1 = tslib_1.__decorate([
1334
1317
  (0, inversify_1.injectable)()
1335
1318
  ], FindFilesByPattern);