tabs.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use strict";
  2. var __defProp = Object.defineProperty;
  3. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  4. var __getOwnPropNames = Object.getOwnPropertyNames;
  5. var __hasOwnProp = Object.prototype.hasOwnProperty;
  6. var __export = (target, all) => {
  7. for (var name in all)
  8. __defProp(target, name, { get: all[name], enumerable: true });
  9. };
  10. var __copyProps = (to, from, except, desc) => {
  11. if (from && typeof from === "object" || typeof from === "function") {
  12. for (let key of __getOwnPropNames(from))
  13. if (!__hasOwnProp.call(to, key) && key !== except)
  14. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  15. }
  16. return to;
  17. };
  18. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  19. var tabs_exports = {};
  20. __export(tabs_exports, {
  21. default: () => tabs_default
  22. });
  23. module.exports = __toCommonJS(tabs_exports);
  24. var import_bundle = require("../../sdk/bundle");
  25. var import_tool = require("./tool");
  26. const browserTabs = (0, import_tool.defineTool)({
  27. capability: "core-tabs",
  28. schema: {
  29. name: "browser_tabs",
  30. title: "Manage tabs",
  31. description: "List, create, close, or select a browser tab.",
  32. inputSchema: import_bundle.z.object({
  33. action: import_bundle.z.enum(["list", "new", "close", "select"]).describe("Operation to perform"),
  34. index: import_bundle.z.number().optional().describe("Tab index, used for close/select. If omitted for close, current tab is closed.")
  35. }),
  36. type: "action"
  37. },
  38. handle: async (context, params, response) => {
  39. switch (params.action) {
  40. case "list": {
  41. await context.ensureTab();
  42. response.setIncludeTabs();
  43. return;
  44. }
  45. case "new": {
  46. await context.newTab();
  47. response.setIncludeTabs();
  48. return;
  49. }
  50. case "close": {
  51. await context.closeTab(params.index);
  52. response.setIncludeSnapshot("full");
  53. return;
  54. }
  55. case "select": {
  56. if (params.index === void 0)
  57. throw new Error("Tab index is required");
  58. await context.selectTab(params.index);
  59. response.setIncludeSnapshot("full");
  60. return;
  61. }
  62. }
  63. }
  64. });
  65. var tabs_default = [
  66. browserTabs
  67. ];