@opentabs-dev/opentabs-plugin-excel-online 0.0.74

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 (129) hide show
  1. package/README.md +159 -0
  2. package/dist/adapter.iife.js +15273 -0
  3. package/dist/adapter.iife.js.map +7 -0
  4. package/dist/excel-api.d.ts +24 -0
  5. package/dist/excel-api.d.ts.map +1 -0
  6. package/dist/excel-api.js +130 -0
  7. package/dist/excel-api.js.map +1 -0
  8. package/dist/index.d.ts +14 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +80 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/tools/add-named-item.d.ts +14 -0
  13. package/dist/tools/add-named-item.d.ts.map +1 -0
  14. package/dist/tools/add-named-item.js +29 -0
  15. package/dist/tools/add-named-item.js.map +1 -0
  16. package/dist/tools/add-table-column.d.ts +13 -0
  17. package/dist/tools/add-table-column.d.ts.map +1 -0
  18. package/dist/tools/add-table-column.js +29 -0
  19. package/dist/tools/add-table-column.js.map +1 -0
  20. package/dist/tools/add-table-row.d.ts +12 -0
  21. package/dist/tools/add-table-row.d.ts.map +1 -0
  22. package/dist/tools/add-table-row.js +26 -0
  23. package/dist/tools/add-table-row.js.map +1 -0
  24. package/dist/tools/add-worksheet.d.ts +12 -0
  25. package/dist/tools/add-worksheet.d.ts.map +1 -0
  26. package/dist/tools/add-worksheet.js +24 -0
  27. package/dist/tools/add-worksheet.js.map +1 -0
  28. package/dist/tools/calculate-workbook.d.ts +11 -0
  29. package/dist/tools/calculate-workbook.d.ts.map +1 -0
  30. package/dist/tools/calculate-workbook.js +28 -0
  31. package/dist/tools/calculate-workbook.js.map +1 -0
  32. package/dist/tools/clear-range.d.ts +13 -0
  33. package/dist/tools/clear-range.d.ts.map +1 -0
  34. package/dist/tools/clear-range.js +24 -0
  35. package/dist/tools/clear-range.js.map +1 -0
  36. package/dist/tools/create-chart.d.ts +21 -0
  37. package/dist/tools/create-chart.d.ts.map +1 -0
  38. package/dist/tools/create-chart.js +36 -0
  39. package/dist/tools/create-chart.js.map +1 -0
  40. package/dist/tools/create-table.d.ts +14 -0
  41. package/dist/tools/create-table.d.ts.map +1 -0
  42. package/dist/tools/create-table.js +28 -0
  43. package/dist/tools/create-table.js.map +1 -0
  44. package/dist/tools/delete-chart.d.ts +8 -0
  45. package/dist/tools/delete-chart.d.ts.map +1 -0
  46. package/dist/tools/delete-chart.js +23 -0
  47. package/dist/tools/delete-chart.js.map +1 -0
  48. package/dist/tools/delete-range.d.ts +12 -0
  49. package/dist/tools/delete-range.d.ts.map +1 -0
  50. package/dist/tools/delete-range.js +24 -0
  51. package/dist/tools/delete-range.js.map +1 -0
  52. package/dist/tools/delete-table-row.d.ts +8 -0
  53. package/dist/tools/delete-table-row.d.ts.map +1 -0
  54. package/dist/tools/delete-table-row.js +25 -0
  55. package/dist/tools/delete-table-row.js.map +1 -0
  56. package/dist/tools/delete-table.d.ts +7 -0
  57. package/dist/tools/delete-table.d.ts.map +1 -0
  58. package/dist/tools/delete-table.js +22 -0
  59. package/dist/tools/delete-table.js.map +1 -0
  60. package/dist/tools/delete-worksheet.d.ts +7 -0
  61. package/dist/tools/delete-worksheet.d.ts.map +1 -0
  62. package/dist/tools/delete-worksheet.js +22 -0
  63. package/dist/tools/delete-worksheet.js.map +1 -0
  64. package/dist/tools/evaluate-formula.d.ts +9 -0
  65. package/dist/tools/evaluate-formula.d.ts.map +1 -0
  66. package/dist/tools/evaluate-formula.js +44 -0
  67. package/dist/tools/evaluate-formula.js.map +1 -0
  68. package/dist/tools/get-current-user.d.ts +9 -0
  69. package/dist/tools/get-current-user.d.ts.map +1 -0
  70. package/dist/tools/get-current-user.js +25 -0
  71. package/dist/tools/get-current-user.js.map +1 -0
  72. package/dist/tools/get-range.d.ts +16 -0
  73. package/dist/tools/get-range.d.ts.map +1 -0
  74. package/dist/tools/get-range.js +22 -0
  75. package/dist/tools/get-range.js.map +1 -0
  76. package/dist/tools/get-table-columns.d.ts +11 -0
  77. package/dist/tools/get-table-columns.d.ts.map +1 -0
  78. package/dist/tools/get-table-columns.js +21 -0
  79. package/dist/tools/get-table-columns.js.map +1 -0
  80. package/dist/tools/get-table-rows.d.ts +10 -0
  81. package/dist/tools/get-table-rows.d.ts.map +1 -0
  82. package/dist/tools/get-table-rows.js +21 -0
  83. package/dist/tools/get-table-rows.js.map +1 -0
  84. package/dist/tools/get-used-range.d.ts +15 -0
  85. package/dist/tools/get-used-range.d.ts.map +1 -0
  86. package/dist/tools/get-used-range.js +21 -0
  87. package/dist/tools/get-used-range.js.map +1 -0
  88. package/dist/tools/get-workbook-info.d.ts +9 -0
  89. package/dist/tools/get-workbook-info.d.ts.map +1 -0
  90. package/dist/tools/get-workbook-info.js +29 -0
  91. package/dist/tools/get-workbook-info.js.map +1 -0
  92. package/dist/tools/insert-range.d.ts +20 -0
  93. package/dist/tools/insert-range.d.ts.map +1 -0
  94. package/dist/tools/insert-range.js +23 -0
  95. package/dist/tools/insert-range.js.map +1 -0
  96. package/dist/tools/list-charts.d.ts +14 -0
  97. package/dist/tools/list-charts.d.ts.map +1 -0
  98. package/dist/tools/list-charts.js +21 -0
  99. package/dist/tools/list-charts.js.map +1 -0
  100. package/dist/tools/list-named-items.d.ts +10 -0
  101. package/dist/tools/list-named-items.d.ts.map +1 -0
  102. package/dist/tools/list-named-items.js +19 -0
  103. package/dist/tools/list-named-items.js.map +1 -0
  104. package/dist/tools/list-tables.d.ts +13 -0
  105. package/dist/tools/list-tables.d.ts.map +1 -0
  106. package/dist/tools/list-tables.js +25 -0
  107. package/dist/tools/list-tables.js.map +1 -0
  108. package/dist/tools/list-worksheets.d.ts +10 -0
  109. package/dist/tools/list-worksheets.d.ts.map +1 -0
  110. package/dist/tools/list-worksheets.js +19 -0
  111. package/dist/tools/list-worksheets.js.map +1 -0
  112. package/dist/tools/schemas.d.ts +150 -0
  113. package/dist/tools/schemas.d.ts.map +1 -0
  114. package/dist/tools/schemas.js +111 -0
  115. package/dist/tools/schemas.js.map +1 -0
  116. package/dist/tools/sort-range.d.ts +13 -0
  117. package/dist/tools/sort-range.d.ts.map +1 -0
  118. package/dist/tools/sort-range.js +43 -0
  119. package/dist/tools/sort-range.js.map +1 -0
  120. package/dist/tools/update-range.d.ts +19 -0
  121. package/dist/tools/update-range.d.ts.map +1 -0
  122. package/dist/tools/update-range.js +41 -0
  123. package/dist/tools/update-range.js.map +1 -0
  124. package/dist/tools/update-worksheet.d.ts +19 -0
  125. package/dist/tools/update-worksheet.d.ts.map +1 -0
  126. package/dist/tools/update-worksheet.js +32 -0
  127. package/dist/tools/update-worksheet.js.map +1 -0
  128. package/dist/tools.json +1781 -0
  129. package/package.json +55 -0
@@ -0,0 +1,36 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ import { chartSchema, mapChart } from './schemas.js';
5
+ export const createChart = defineTool({
6
+ name: 'create_chart',
7
+ displayName: 'Create Chart',
8
+ description: 'Create a new chart in a worksheet from a data range. Supports chart types like ColumnClustered, Line, Pie, Bar, Area, and more. The source_data range should include headers.',
9
+ summary: 'Create a chart from data',
10
+ icon: 'chart-bar',
11
+ group: 'Charts',
12
+ input: z.object({
13
+ worksheet: z.string().describe('Worksheet name to create the chart in'),
14
+ type: z
15
+ .string()
16
+ .describe('Chart type (e.g., "ColumnClustered", "Line", "Pie", "Bar", "Area", "XYScatter", "Doughnut")'),
17
+ source_data: z.string().describe('Source data range in A1 notation (e.g., "A1:C10")'),
18
+ series_by: z
19
+ .enum(['Auto', 'Columns', 'Rows'])
20
+ .optional()
21
+ .describe('How data series are organized (default "Auto")'),
22
+ }),
23
+ output: z.object({ chart: chartSchema }),
24
+ handle: async (params) => {
25
+ const data = await workbookApi(`/worksheets('${encodeURIComponent(params.worksheet)}')/charts/Add`, {
26
+ method: 'POST',
27
+ body: {
28
+ type: params.type,
29
+ sourceData: params.source_data,
30
+ seriesBy: params.series_by ?? 'Auto',
31
+ },
32
+ });
33
+ return { chart: mapChart(data) };
34
+ },
35
+ });
36
+ //# sourceMappingURL=create-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-chart.js","sourceRoot":"","sources":["../../src/tools/create-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;IACpC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,cAAc;IAC3B,WAAW,EACT,+KAA+K;IACjL,OAAO,EAAE,0BAA0B;IACnC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACvE,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,CAAC,6FAA6F,CAAC;QAC1G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QACrF,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;aACjC,QAAQ,EAAE;aACV,QAAQ,CAAC,gDAAgD,CAAC;KAC9D,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACxC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAW,gBAAgB,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE;YAC5G,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,UAAU,EAAE,MAAM,CAAC,WAAW;gBAC9B,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;aACrC;SACF,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnC,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ export declare const createTable: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ address: z.ZodString;
4
+ has_headers: z.ZodOptional<z.ZodBoolean>;
5
+ }, z.core.$strip>, z.ZodObject<{
6
+ table: z.ZodObject<{
7
+ id: z.ZodString;
8
+ name: z.ZodString;
9
+ show_headers: z.ZodBoolean;
10
+ show_totals: z.ZodBoolean;
11
+ style: z.ZodString;
12
+ }, z.core.$strip>;
13
+ }, z.core.$strip>>;
14
+ //# sourceMappingURL=create-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-table.d.ts","sourceRoot":"","sources":["../../src/tools/create-table.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;;;;;;;;kBAuBtB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ import { tableSchema, mapTable } from './schemas.js';
5
+ export const createTable = defineTool({
6
+ name: 'create_table',
7
+ displayName: 'Create Table',
8
+ description: 'Create a new table from a data range. The range should contain the data (and optionally a header row). Set has_headers=true if the first row contains column headers.',
9
+ summary: 'Create a table from a data range',
10
+ icon: 'table',
11
+ group: 'Tables',
12
+ input: z.object({
13
+ address: z.string().describe('Range address containing the data (e.g., "Sheet1!A1:D10")'),
14
+ has_headers: z.boolean().optional().describe('Whether the first row contains headers (default true)'),
15
+ }),
16
+ output: z.object({ table: tableSchema }),
17
+ handle: async (params) => {
18
+ const data = await workbookApi('/tables/add', {
19
+ method: 'POST',
20
+ body: {
21
+ address: params.address,
22
+ hasHeaders: params.has_headers ?? true,
23
+ },
24
+ });
25
+ return { table: mapTable(data) };
26
+ },
27
+ });
28
+ //# sourceMappingURL=create-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-table.js","sourceRoot":"","sources":["../../src/tools/create-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;IACpC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,cAAc;IAC3B,WAAW,EACT,uKAAuK;IACzK,OAAO,EAAE,kCAAkC;IAC3C,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QACzF,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;KACtG,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACxC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAW,aAAa,EAAE;YACtD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;aACvC;SACF,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnC,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ export declare const deleteChart: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ worksheet: z.ZodString;
4
+ chart: z.ZodString;
5
+ }, z.core.$strip>, z.ZodObject<{
6
+ success: z.ZodBoolean;
7
+ }, z.core.$strip>>;
8
+ //# sourceMappingURL=delete-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-chart.d.ts","sourceRoot":"","sources":["../../src/tools/delete-chart.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW;;;;;kBAqBtB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ export const deleteChart = defineTool({
5
+ name: 'delete_chart',
6
+ displayName: 'Delete Chart',
7
+ description: 'Delete a chart from a worksheet by its name.',
8
+ summary: 'Delete a chart',
9
+ icon: 'trash-2',
10
+ group: 'Charts',
11
+ input: z.object({
12
+ worksheet: z.string().describe('Worksheet name'),
13
+ chart: z.string().describe('Chart name'),
14
+ }),
15
+ output: z.object({
16
+ success: z.boolean().describe('Whether the operation succeeded'),
17
+ }),
18
+ handle: async (params) => {
19
+ await workbookApi(`/worksheets('${encodeURIComponent(params.worksheet)}')/charts('${encodeURIComponent(params.chart)}')`, { method: 'DELETE' });
20
+ return { success: true };
21
+ },
22
+ });
23
+ //# sourceMappingURL=delete-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-chart.js","sourceRoot":"","sources":["../../src/tools/delete-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;IACpC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,8CAA8C;IAC3D,OAAO,EAAE,gBAAgB;IACzB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACzC,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KACjE,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,WAAW,CACf,gBAAgB,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EACtG,EAAE,MAAM,EAAE,QAAQ,EAAE,CACrB,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ export declare const deleteRange: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ worksheet: z.ZodString;
4
+ address: z.ZodString;
5
+ shift: z.ZodEnum<{
6
+ Up: "Up";
7
+ Left: "Left";
8
+ }>;
9
+ }, z.core.$strip>, z.ZodObject<{
10
+ success: z.ZodBoolean;
11
+ }, z.core.$strip>>;
12
+ //# sourceMappingURL=delete-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-range.d.ts","sourceRoot":"","sources":["../../src/tools/delete-range.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW;;;;;;;;;kBAuBtB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ export const deleteRange = defineTool({
5
+ name: 'delete_range',
6
+ displayName: 'Delete Range',
7
+ description: 'Delete cells at a range address, shifting remaining cells up or to the left. Use shift="Up" to pull cells up or shift="Left" to pull cells left.',
8
+ summary: 'Delete cells and shift remaining data',
9
+ icon: 'between-vertical-end',
10
+ group: 'Ranges',
11
+ input: z.object({
12
+ worksheet: z.string().describe('Worksheet name (e.g., "Sheet1")'),
13
+ address: z.string().describe('Range address of cells to delete (e.g., "A2:A5")'),
14
+ shift: z.enum(['Up', 'Left']).describe('Direction to shift remaining cells: "Up" or "Left"'),
15
+ }),
16
+ output: z.object({
17
+ success: z.boolean().describe('Whether the operation succeeded'),
18
+ }),
19
+ handle: async (params) => {
20
+ await workbookApi(`/worksheets('${encodeURIComponent(params.worksheet)}')/range(address='${encodeURIComponent(params.address)}')/delete`, { method: 'POST', body: { shift: params.shift } });
21
+ return { success: true };
22
+ },
23
+ });
24
+ //# sourceMappingURL=delete-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-range.js","sourceRoot":"","sources":["../../src/tools/delete-range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;IACpC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,cAAc;IAC3B,WAAW,EACT,kJAAkJ;IACpJ,OAAO,EAAE,uCAAuC;IAChD,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACjE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAChF,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;KAC7F,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KACjE,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,WAAW,CACf,gBAAgB,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,qBAAqB,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EACtH,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAClD,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ export declare const deleteTableRow: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ table: z.ZodString;
4
+ index: z.ZodNumber;
5
+ }, z.core.$strip>, z.ZodObject<{
6
+ success: z.ZodBoolean;
7
+ }, z.core.$strip>>;
8
+ //# sourceMappingURL=delete-table-row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-table-row.d.ts","sourceRoot":"","sources":["../../src/tools/delete-table-row.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;;;kBAqBzB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ export const deleteTableRow = defineTool({
5
+ name: 'delete_table_row',
6
+ displayName: 'Delete Table Row',
7
+ description: 'Delete a specific row from a table by its zero-based index. The row is permanently removed and subsequent rows shift up.',
8
+ summary: 'Delete a row from a table by index',
9
+ icon: 'trash-2',
10
+ group: 'Tables',
11
+ input: z.object({
12
+ table: z.string().describe('Table name or ID'),
13
+ index: z.number().int().min(0).describe('Zero-based row index to delete'),
14
+ }),
15
+ output: z.object({
16
+ success: z.boolean().describe('Whether the operation succeeded'),
17
+ }),
18
+ handle: async (params) => {
19
+ await workbookApi(`/tables('${encodeURIComponent(params.table)}')/rows/$/itemAt(index=${params.index})`, {
20
+ method: 'DELETE',
21
+ });
22
+ return { success: true };
23
+ },
24
+ });
25
+ //# sourceMappingURL=delete-table-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-table-row.js","sourceRoot":"","sources":["../../src/tools/delete-table-row.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EACT,0HAA0H;IAC5H,OAAO,EAAE,oCAAoC;IAC7C,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAC1E,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KACjE,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,WAAW,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,KAAK,GAAG,EAAE;YACvG,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ export declare const deleteTable: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ table: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ success: z.ZodBoolean;
6
+ }, z.core.$strip>>;
7
+ //# sourceMappingURL=delete-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-table.d.ts","sourceRoot":"","sources":["../../src/tools/delete-table.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW;;;;kBAkBtB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ export const deleteTable = defineTool({
5
+ name: 'delete_table',
6
+ displayName: 'Delete Table',
7
+ description: 'Delete a table by name or ID. This removes the table object but keeps the data in the cells. Use convert_table_to_range instead if you want to explicitly convert first.',
8
+ summary: 'Delete a table',
9
+ icon: 'trash-2',
10
+ group: 'Tables',
11
+ input: z.object({
12
+ table: z.string().describe('Table name or ID'),
13
+ }),
14
+ output: z.object({
15
+ success: z.boolean().describe('Whether the operation succeeded'),
16
+ }),
17
+ handle: async (params) => {
18
+ await workbookApi(`/tables('${encodeURIComponent(params.table)}')`, { method: 'DELETE' });
19
+ return { success: true };
20
+ },
21
+ });
22
+ //# sourceMappingURL=delete-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-table.js","sourceRoot":"","sources":["../../src/tools/delete-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;IACpC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,cAAc;IAC3B,WAAW,EACT,0KAA0K;IAC5K,OAAO,EAAE,gBAAgB;IACzB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAC/C,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KACjE,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,WAAW,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ export declare const deleteWorksheet: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ name: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ success: z.ZodBoolean;
6
+ }, z.core.$strip>>;
7
+ //# sourceMappingURL=delete-worksheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-worksheet.d.ts","sourceRoot":"","sources":["../../src/tools/delete-worksheet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe;;;;kBAkB1B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ export const deleteWorksheet = defineTool({
5
+ name: 'delete_worksheet',
6
+ displayName: 'Delete Worksheet',
7
+ description: 'Delete a worksheet from the currently open Excel workbook by name. The workbook must have at least two worksheets — you cannot delete the last one.',
8
+ summary: 'Delete a worksheet by name',
9
+ icon: 'trash-2',
10
+ group: 'Worksheets',
11
+ input: z.object({
12
+ name: z.string().describe('Name of the worksheet to delete'),
13
+ }),
14
+ output: z.object({
15
+ success: z.boolean().describe('Whether the operation succeeded'),
16
+ }),
17
+ handle: async (params) => {
18
+ await workbookApi(`/worksheets('${encodeURIComponent(params.name)}')`, { method: 'DELETE' });
19
+ return { success: true };
20
+ },
21
+ });
22
+ //# sourceMappingURL=delete-worksheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-worksheet.js","sourceRoot":"","sources":["../../src/tools/delete-worksheet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;IACxC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EACT,qJAAqJ;IACvJ,OAAO,EAAE,4BAA4B;IACrC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KAC7D,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KACjE,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,WAAW,CAAC,gBAAgB,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const evaluateFormula: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ worksheet: z.ZodString;
4
+ formula: z.ZodString;
5
+ }, z.core.$strip>, z.ZodObject<{
6
+ result: z.ZodUnknown;
7
+ error: z.ZodString;
8
+ }, z.core.$strip>>;
9
+ //# sourceMappingURL=evaluate-formula.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate-formula.d.ts","sourceRoot":"","sources":["../../src/tools/evaluate-formula.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe;;;;;;kBAgD1B,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ export const evaluateFormula = defineTool({
5
+ name: 'evaluate_formula',
6
+ displayName: 'Evaluate Formula',
7
+ description: 'Evaluate a formula expression without writing it to a cell. The formula is evaluated in the context of a specific worksheet. Returns the computed result. Useful for calculations, lookups, and data analysis without modifying the workbook.',
8
+ summary: 'Evaluate a formula and return the result',
9
+ icon: 'calculator',
10
+ group: 'Workbook',
11
+ input: z.object({
12
+ worksheet: z.string().describe('Worksheet name for formula context (e.g., "Sheet1")'),
13
+ formula: z.string().describe('Formula to evaluate (e.g., "=SUM(A1:A10)", "=AVERAGE(B2:B100)")'),
14
+ }),
15
+ output: z.object({
16
+ result: z.unknown().describe('The computed result of the formula (number, string, boolean, or error)'),
17
+ error: z.string().describe('Error message if the formula failed, empty string on success'),
18
+ }),
19
+ handle: async (params) => {
20
+ // Write formula to a far-off temp cell, read the result, then clear it.
21
+ // This is the most reliable approach with the Graph API.
22
+ const tempCell = 'ZZ9999';
23
+ const ws = encodeURIComponent(params.worksheet);
24
+ // Write formula
25
+ await workbookApi(`/worksheets('${ws}')/range(address='${tempCell}')`, {
26
+ method: 'PATCH',
27
+ body: { formulas: [[params.formula]] },
28
+ });
29
+ // Read result
30
+ const result = await workbookApi(`/worksheets('${ws}')/range(address='${tempCell}')`);
31
+ // Clear
32
+ await workbookApi(`/worksheets('${ws}')/range(address='${tempCell}')/clear`, {
33
+ method: 'POST',
34
+ body: { applyTo: 'All' },
35
+ });
36
+ const value = result.values?.[0]?.[0];
37
+ const isError = typeof value === 'string' && value.startsWith('#');
38
+ return {
39
+ result: isError ? null : value,
40
+ error: isError ? String(value) : '',
41
+ };
42
+ },
43
+ });
44
+ //# sourceMappingURL=evaluate-formula.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate-formula.js","sourceRoot":"","sources":["../../src/tools/evaluate-formula.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;IACxC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EACT,+OAA+O;IACjP,OAAO,EAAE,0CAA0C;IACnD,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACrF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;KAChG,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;QACtG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;KAC3F,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,wEAAwE;QACxE,yDAAyD;QACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC;QAC1B,MAAM,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEhD,gBAAgB;QAChB,MAAM,WAAW,CAAC,gBAAgB,EAAE,qBAAqB,QAAQ,IAAI,EAAE;YACrE,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE;SACvC,CAAC,CAAC;QAEH,cAAc;QACd,MAAM,MAAM,GAAG,MAAM,WAAW,CAG7B,gBAAgB,EAAE,qBAAqB,QAAQ,IAAI,CAAC,CAAC;QAExD,QAAQ;QACR,MAAM,WAAW,CAAC,gBAAgB,EAAE,qBAAqB,QAAQ,UAAU,EAAE;YAC3E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SACzB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAEnE,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YAC9B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;SACpC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const getCurrentUser: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
3
+ user: z.ZodObject<{
4
+ id: z.ZodString;
5
+ display_name: z.ZodString;
6
+ email: z.ZodString;
7
+ }, z.core.$strip>;
8
+ }, z.core.$strip>>;
9
+ //# sourceMappingURL=get-current-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-current-user.d.ts","sourceRoot":"","sources":["../../src/tools/get-current-user.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,cAAc;;;;;;kBAoBzB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { getUserInfo } from '../excel-api.js';
4
+ import { userSchema } from './schemas.js';
5
+ export const getCurrentUser = defineTool({
6
+ name: 'get_current_user',
7
+ displayName: 'Get Current User',
8
+ description: 'Get the profile of the currently authenticated Microsoft 365 user including display name, email, and user ID.',
9
+ summary: 'Get the authenticated user profile',
10
+ icon: 'user',
11
+ group: 'Account',
12
+ input: z.object({}),
13
+ output: z.object({ user: userSchema }),
14
+ handle: async () => {
15
+ const data = await getUserInfo();
16
+ return {
17
+ user: {
18
+ id: data.id ?? '',
19
+ display_name: data.displayName ?? '',
20
+ email: data.mail ?? '',
21
+ },
22
+ };
23
+ },
24
+ });
25
+ //# sourceMappingURL=get-current-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-current-user.js","sourceRoot":"","sources":["../../src/tools/get-current-user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EACT,+GAA+G;IACjH,OAAO,EAAE,oCAAoC;IAC7C,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACtC,MAAM,EAAE,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC;QACjC,OAAO;YACL,IAAI,EAAE;gBACJ,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;gBACjB,YAAY,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;gBACpC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;aACvB;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ export declare const getRange: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ worksheet: z.ZodString;
4
+ address: z.ZodString;
5
+ }, z.core.$strip>, z.ZodObject<{
6
+ range: z.ZodObject<{
7
+ address: z.ZodString;
8
+ row_count: z.ZodNumber;
9
+ column_count: z.ZodNumber;
10
+ values: z.ZodArray<z.ZodArray<z.ZodUnknown>>;
11
+ formulas: z.ZodArray<z.ZodArray<z.ZodUnknown>>;
12
+ text: z.ZodArray<z.ZodArray<z.ZodString>>;
13
+ number_format: z.ZodArray<z.ZodArray<z.ZodString>>;
14
+ }, z.core.$strip>;
15
+ }, z.core.$strip>>;
16
+ //# sourceMappingURL=get-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-range.d.ts","sourceRoot":"","sources":["../../src/tools/get-range.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;kBAmBnB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ import { rangeSchema, mapRange } from './schemas.js';
5
+ export const getRange = defineTool({
6
+ name: 'get_range',
7
+ displayName: 'Get Range',
8
+ description: 'Get cell values, formulas, and formatting for a specific range in a worksheet. The range address uses A1 notation (e.g., "A1:C10"). Returns values, formulas, text, and number formats.',
9
+ summary: 'Read cell values from a range',
10
+ icon: 'grid-3x3',
11
+ group: 'Ranges',
12
+ input: z.object({
13
+ worksheet: z.string().describe('Worksheet name (e.g., "Sheet1")'),
14
+ address: z.string().describe('Range address in A1 notation (e.g., "A1:C10", "B2", "A:D")'),
15
+ }),
16
+ output: z.object({ range: rangeSchema }),
17
+ handle: async (params) => {
18
+ const data = await workbookApi(`/worksheets('${encodeURIComponent(params.worksheet)}')/range(address='${encodeURIComponent(params.address)}')`);
19
+ return { range: mapRange(data) };
20
+ },
21
+ });
22
+ //# sourceMappingURL=get-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-range.js","sourceRoot":"","sources":["../../src/tools/get-range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;IACjC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,WAAW;IACxB,WAAW,EACT,yLAAyL;IAC3L,OAAO,EAAE,+BAA+B;IACxC,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACjE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;KAC3F,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACxC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,gBAAgB,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,qBAAqB,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAChH,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnC,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ export declare const getTableColumns: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ table: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ columns: z.ZodArray<z.ZodObject<{
6
+ id: z.ZodString;
7
+ name: z.ZodString;
8
+ index: z.ZodNumber;
9
+ }, z.core.$strip>>;
10
+ }, z.core.$strip>>;
11
+ //# sourceMappingURL=get-table-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-table-columns.d.ts","sourceRoot":"","sources":["../../src/tools/get-table-columns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,eAAe;;;;;;;;kBAkB1B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ import { tableColumnSchema, mapTableColumn } from './schemas.js';
5
+ export const getTableColumns = defineTool({
6
+ name: 'get_table_columns',
7
+ displayName: 'Get Table Columns',
8
+ description: 'Get the column definitions of a table. Returns column names, IDs, and indices. Useful for understanding the table structure before reading or writing data.',
9
+ summary: 'Get column definitions of a table',
10
+ icon: 'columns-3',
11
+ group: 'Tables',
12
+ input: z.object({
13
+ table: z.string().describe('Table name or ID'),
14
+ }),
15
+ output: z.object({ columns: z.array(tableColumnSchema) }),
16
+ handle: async (params) => {
17
+ const data = await workbookApi(`/tables('${encodeURIComponent(params.table)}')/columns`);
18
+ return { columns: (data.value ?? []).map(mapTableColumn) };
19
+ },
20
+ });
21
+ //# sourceMappingURL=get-table-columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-table-columns.js","sourceRoot":"","sources":["../../src/tools/get-table-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEjE,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;IACxC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EACT,6JAA6J;IAC/J,OAAO,EAAE,mCAAmC;IAC5C,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAC/C,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACzD,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,YAAY,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CACzD,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;IAC7D,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export declare const getTableRows: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ table: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ rows: z.ZodArray<z.ZodObject<{
6
+ index: z.ZodNumber;
7
+ values: z.ZodArray<z.ZodArray<z.ZodUnknown>>;
8
+ }, z.core.$strip>>;
9
+ }, z.core.$strip>>;
10
+ //# sourceMappingURL=get-table-rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-table-rows.d.ts","sourceRoot":"","sources":["../../src/tools/get-table-rows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,YAAY;;;;;;;kBAkBvB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ import { tableRowSchema, mapTableRow } from './schemas.js';
5
+ export const getTableRows = defineTool({
6
+ name: 'get_table_rows',
7
+ displayName: 'Get Table Rows',
8
+ description: 'Get all data rows from a table. Returns row values as 2D arrays. Each row is an array of cell values. Does not include the header row.',
9
+ summary: 'Get all rows from a table',
10
+ icon: 'rows-3',
11
+ group: 'Tables',
12
+ input: z.object({
13
+ table: z.string().describe('Table name or ID'),
14
+ }),
15
+ output: z.object({ rows: z.array(tableRowSchema) }),
16
+ handle: async (params) => {
17
+ const data = await workbookApi(`/tables('${encodeURIComponent(params.table)}')/rows`);
18
+ return { rows: (data.value ?? []).map(mapTableRow) };
19
+ },
20
+ });
21
+ //# sourceMappingURL=get-table-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-table-rows.js","sourceRoot":"","sources":["../../src/tools/get-table-rows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;IACrC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EACT,wIAAwI;IAC1I,OAAO,EAAE,2BAA2B;IACpC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAC/C,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;IACnD,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,YAAY,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CACtD,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;IACvD,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ export declare const getUsedRange: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
3
+ worksheet: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ range: z.ZodObject<{
6
+ address: z.ZodString;
7
+ row_count: z.ZodNumber;
8
+ column_count: z.ZodNumber;
9
+ values: z.ZodArray<z.ZodArray<z.ZodUnknown>>;
10
+ formulas: z.ZodArray<z.ZodArray<z.ZodUnknown>>;
11
+ text: z.ZodArray<z.ZodArray<z.ZodString>>;
12
+ number_format: z.ZodArray<z.ZodArray<z.ZodString>>;
13
+ }, z.core.$strip>;
14
+ }, z.core.$strip>>;
15
+ //# sourceMappingURL=get-used-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-used-range.d.ts","sourceRoot":"","sources":["../../src/tools/get-used-range.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,YAAY;;;;;;;;;;;;kBAgBvB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@opentabs-dev/plugin-sdk';
2
+ import { z } from 'zod';
3
+ import { workbookApi } from '../excel-api.js';
4
+ import { rangeSchema, mapRange } from './schemas.js';
5
+ export const getUsedRange = defineTool({
6
+ name: 'get_used_range',
7
+ displayName: 'Get Used Range',
8
+ description: 'Get the smallest range that encompasses all cells with data or formatting in a worksheet. Useful for discovering the extent of data in a sheet without knowing the exact range.',
9
+ summary: 'Get the used range of a worksheet',
10
+ icon: 'scan',
11
+ group: 'Ranges',
12
+ input: z.object({
13
+ worksheet: z.string().describe('Worksheet name (e.g., "Sheet1")'),
14
+ }),
15
+ output: z.object({ range: rangeSchema }),
16
+ handle: async (params) => {
17
+ const data = await workbookApi(`/worksheets('${encodeURIComponent(params.worksheet)}')/usedRange`);
18
+ return { range: mapRange(data) };
19
+ },
20
+ });
21
+ //# sourceMappingURL=get-used-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-used-range.js","sourceRoot":"","sources":["../../src/tools/get-used-range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;IACrC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EACT,iLAAiL;IACnL,OAAO,EAAE,mCAAmC;IAC5C,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KAClE,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACxC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAW,gBAAgB,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC7G,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnC,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const getWorkbookInfo: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
3
+ workbook: z.ZodObject<{
4
+ drive_id: z.ZodString;
5
+ item_id: z.ZodString;
6
+ name: z.ZodString;
7
+ }, z.core.$strip>;
8
+ }, z.core.$strip>>;
9
+ //# sourceMappingURL=get-workbook-info.d.ts.map