openwork-server 0.18.50 → 0.18.56

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 (92) hide show
  1. package/README.md +1 -1
  2. package/bin/openwork-server.mjs +28 -22
  3. package/bin/platform.mjs +28 -0
  4. package/dist/opencode-plugin-deps-1.18.30.tgz +0 -0
  5. package/dist/opencode-plugins/openwork-context-v2.js +84 -0
  6. package/dist/opencode-plugins/openwork-extensions-preview.js +589 -268
  7. package/dist/opencode-plugins/openwork-gateway-quota-v2.js +12 -1
  8. package/dist/opencode-plugins/openwork-gateway-quota.js +12 -1
  9. package/dist/opencode-plugins/openwork-mcp-results-v2.js +154 -0
  10. package/dist/opencode-plugins/openwork-office-attachments.js +135 -130
  11. package/dist/opencode-plugins/openwork-provider-adapters.js +2 -2
  12. package/dist/opencode-plugins/openwork-provider-filters-v2.js +69 -0
  13. package/dist/opencode-plugins/openwork-read-transport.js +2 -0
  14. package/dist/opencode-plugins/openwork-spreadsheets.js +136 -2
  15. package/dist/openwork-server.mjs +114735 -0
  16. package/dist/pdfium.wasm +0 -0
  17. package/package.json +7 -1
  18. package/web/assets/{abnfDiagram-VCTEODGH-BgnyE_Jl.js → abnfDiagram-VCTEODGH-Dr1YMfll.js} +1 -1
  19. package/web/assets/{app-CyCqD289.js → app-D9Nvta88.js} +474 -424
  20. package/web/assets/{arc-jSgX49-e.js → arc-7SoIBvT7.js} +1 -1
  21. package/web/assets/{architectureDiagram-5GKGNRK7-DD_aGn4v.js → architectureDiagram-5GKGNRK7-BZwevfH9.js} +1 -1
  22. package/web/assets/{artifact-code-view-DFIq0k-c.js → artifact-code-view-WLwX_I1h.js} +1 -1
  23. package/web/assets/{artifact-spreadsheet-editor-DFVCYrL7.js → artifact-spreadsheet-editor-BvEnxKsm.js} +1 -1
  24. package/web/assets/{artifact-text-editor-DBngc6bx.js → artifact-text-editor-BHyVrNyR.js} +1 -1
  25. package/web/assets/{blockDiagram-OSKFZWR5-CBcZLjLp.js → blockDiagram-OSKFZWR5-Cvqr9DPi.js} +1 -1
  26. package/web/assets/{c4Diagram-7LVT6UL2-DMrhFCLj.js → c4Diagram-7LVT6UL2-CWTWC9C1.js} +1 -1
  27. package/web/assets/channel-BkgEJbR-.js +1 -0
  28. package/web/assets/{chunk-2Q5K7J3B-Ce1X-FJQ.js → chunk-2Q5K7J3B-DpJkzZ5x.js} +1 -1
  29. package/web/assets/{chunk-5VM5RSS4-BS48ZtVI.js → chunk-5VM5RSS4-BtTBnr9m.js} +1 -1
  30. package/web/assets/{chunk-F27PBJKO-COdFZJ-M.js → chunk-F27PBJKO-BbAvFJAg.js} +1 -1
  31. package/web/assets/{chunk-HLEWEB6X-Cdw4ABX3.js → chunk-HLEWEB6X-DX5mKBrj.js} +1 -1
  32. package/web/assets/{chunk-JWPE2WC7-FVVDYZmE.js → chunk-JWPE2WC7-CugB1e5O.js} +1 -1
  33. package/web/assets/{chunk-POPQ4Y6H-C7acdUF3.js → chunk-POPQ4Y6H-BQ-bWmmo.js} +1 -1
  34. package/web/assets/{chunk-SVP7TREG-BUun0UWD.js → chunk-SVP7TREG-szCI_Kz9.js} +1 -1
  35. package/web/assets/{chunk-XXDRQBXY-DLgpJmat.js → chunk-XXDRQBXY-C5UTO899.js} +1 -1
  36. package/web/assets/{chunk-ZLD2IHE6-BdMQ5Cr0.js → chunk-ZLD2IHE6-D5v_jiDg.js} +1 -1
  37. package/web/assets/classDiagram-CYGNFDIV-BHINh3-f.js +1 -0
  38. package/web/assets/classDiagram-v2-TLXNO2FR-BHINh3-f.js +1 -0
  39. package/web/assets/{cose-bilkent-JH36ORCC-CqWy3Swy.js → cose-bilkent-JH36ORCC-BhG_zAfo.js} +1 -1
  40. package/web/assets/{cynefin-OW5HDTMX-DslesE5Y.js → cynefin-OW5HDTMX-DSTjm6jO.js} +1 -1
  41. package/web/assets/{cynefinDiagram-5FMLGOSQ-B54uZJn_.js → cynefinDiagram-5FMLGOSQ-Dqkgb6tF.js} +1 -1
  42. package/web/assets/{dagre-OS7QT2EB-Bkahh4gZ.js → dagre-OS7QT2EB-BZMseQyA.js} +1 -1
  43. package/web/assets/{diagram-S7CK7UJ4-CXQl7SfF.js → diagram-S7CK7UJ4-Cs2hsmEJ.js} +1 -1
  44. package/web/assets/{diagram-UQ7AKVKN-BA0V8tjK.js → diagram-UQ7AKVKN-CDnRP_yz.js} +1 -1
  45. package/web/assets/{diagram-VSXAHHWV-DlcR8qeO.js → diagram-VSXAHHWV-DxKXQXAC.js} +1 -1
  46. package/web/assets/{diagram-VX7I27RA-ewm16zDI.js → diagram-VX7I27RA-BJKoseDf.js} +1 -1
  47. package/web/assets/{diagram-Z3DM3KII-Bc2lRc88.js → diagram-Z3DM3KII-DDcMvRxo.js} +1 -1
  48. package/web/assets/{ebnfDiagram-PWID7BFC-JwCaf6cT.js → ebnfDiagram-PWID7BFC-C2uUm-CC.js} +1 -1
  49. package/web/assets/{erDiagram-2YWLMYGG-DOqO-9Yf.js → erDiagram-2YWLMYGG-B0Mdv5WO.js} +1 -1
  50. package/web/assets/{flowDiagram-T62WH6J4-CCZxvIjW.js → flowDiagram-T62WH6J4-CUnt9AMo.js} +1 -1
  51. package/web/assets/{ganttDiagram-EL5Y4UJY-BczG7RIu.js → ganttDiagram-EL5Y4UJY-CENsUToC.js} +1 -1
  52. package/web/assets/{gitGraphDiagram-WWUBYQGX-GOecDN3g.js → gitGraphDiagram-WWUBYQGX-CrbKh94B.js} +1 -1
  53. package/web/assets/index-CyyMNIC_.css +1 -0
  54. package/web/assets/{infoDiagram-FKFFQAWI-BbgIVsQp.js → infoDiagram-FKFFQAWI-B-U-x_qU.js} +1 -1
  55. package/web/assets/{ishikawaDiagram-5VMMS53U-xutQo5Ip.js → ishikawaDiagram-5VMMS53U-jNVSJSu1.js} +1 -1
  56. package/web/assets/{journeyDiagram-EYS64GPL-BIbzPGaa.js → journeyDiagram-EYS64GPL-De3j0gPh.js} +1 -1
  57. package/web/assets/{kanban-definition-UXKFOSKX-BCTiRzck.js → kanban-definition-UXKFOSKX-Bbc8wjhq.js} +1 -1
  58. package/web/assets/{layout-Wpfi54TB.js → layout-BIjP2nup.js} +1 -1
  59. package/web/assets/{linear-DLJHPikh.js → linear-lvQZOiHM.js} +1 -1
  60. package/web/assets/{mermaid.core-CDRJkis7.js → mermaid.core-LJPf4T7o.js} +5 -5
  61. package/web/assets/{mindmap-definition-THT77NOG-DtphSFs_.js → mindmap-definition-THT77NOG-DiboHsg8.js} +1 -1
  62. package/web/assets/{overlay-zA9qjYXH.js → overlay-DA5SOee-.js} +1 -1
  63. package/web/assets/{pegDiagram-XKGWAZYB-CzbjpqK7.js → pegDiagram-XKGWAZYB-DO_edVtr.js} +1 -1
  64. package/web/assets/{pieDiagram-E7YTZNPT-tjxtWWT7.js → pieDiagram-E7YTZNPT-bPvBuBuG.js} +1 -1
  65. package/web/assets/{quadrantDiagram-AXDQQJYC-CFC1qey-.js → quadrantDiagram-AXDQQJYC-BGyrQhlH.js} +1 -1
  66. package/web/assets/{railroadDiagram-O6MQD6OU-73_BXhNP.js → railroadDiagram-O6MQD6OU-XhPIuoOE.js} +1 -1
  67. package/web/assets/{requirementDiagram-IS5BZ75X-B8i4BL2A.js → requirementDiagram-IS5BZ75X-atdASt4G.js} +1 -1
  68. package/web/assets/{sankeyDiagram-P5KCCOFB-Dll4Naj0.js → sankeyDiagram-P5KCCOFB-BV9prEKy.js} +1 -1
  69. package/web/assets/{sequenceDiagram-WJ2MYXX4-B8Rvjhb5.js → sequenceDiagram-WJ2MYXX4-Csfm-fZ-.js} +1 -1
  70. package/web/assets/{sizeCapture-INFHLROL-h8YDF-c3.js → sizeCapture-INFHLROL-CLmH-AjF.js} +1 -1
  71. package/web/assets/{stateDiagram-XQSTLZYL-COorU6Ga.js → stateDiagram-XQSTLZYL-yiSt2fJK.js} +1 -1
  72. package/web/assets/stateDiagram-v2-IH3M54BS-BEhxOujx.js +1 -0
  73. package/web/assets/{swimlanes-V6O3JKXN-CAghInFw.js → swimlanes-V6O3JKXN-BpXNggx9.js} +1 -1
  74. package/web/assets/swimlanesDiagram-JKAHXJPX-DWqwFv9F.js +8 -0
  75. package/web/assets/{timeline-definition-24CTP7MA-Dum2N-ex.js → timeline-definition-24CTP7MA-C8X71OnL.js} +1 -1
  76. package/web/assets/{vennDiagram-4TSXK5OY-D-JeJumX.js → vennDiagram-4TSXK5OY-BZo-99ra.js} +1 -1
  77. package/web/assets/{wardleyDiagram-VM6X3IG4-d99FKQIG.js → wardleyDiagram-VM6X3IG4-BHwH6ZLg.js} +1 -1
  78. package/web/assets/{workspace-file-tree-CAuhntUr.js → workspace-file-tree-C8iSfvPt.js} +3 -3
  79. package/web/assets/{xychartDiagram-S5SC5T6Z-DdmevfkD.js → xychartDiagram-S5SC5T6Z-BieEi319.js} +1 -1
  80. package/web/ext-github.svg +1 -0
  81. package/web/ext-hubspot.svg +1 -0
  82. package/web/ext-slack.svg +1 -0
  83. package/web/index.html +4 -3
  84. package/web/overlay.html +3 -3
  85. package/dist/bin/openwork-server +0 -4
  86. package/web/assets/channel-BE8JEd1U.js +0 -1
  87. package/web/assets/classDiagram-CYGNFDIV-Cy8V0GW-.js +0 -1
  88. package/web/assets/classDiagram-v2-TLXNO2FR-Cy8V0GW-.js +0 -1
  89. package/web/assets/index-BZgplq0g.css +0 -1
  90. package/web/assets/stateDiagram-v2-IH3M54BS-BAu05WuT.js +0 -1
  91. package/web/assets/swimlanesDiagram-JKAHXJPX-CpJNl3pn.js +0 -8
  92. /package/web/assets/{index-_gYIQM_z.js → index-D6FUvVB1.js} +0 -0
@@ -16173,6 +16173,140 @@ async function writeXlsxWorkbook(input) {
16173
16173
  sheets: sheets.map((sheet, index) => ({ name: sheet.name, rows: worksheets[index].rows, columns: worksheets[index].columns }))
16174
16174
  };
16175
16175
  }
16176
+ // ../../packages/workbook/src/office-text.ts
16177
+ var DOCX_MIME = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
16178
+ var PPTX_MIME = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
16179
+ var XLSX_MIME = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
16180
+ var MAX_OFFICE_TEXT_CHARS = 24000;
16181
+ var GENERIC_MIME = "application/octet-stream";
16182
+ var MAX_XLSX_PREVIEW_CELLS = 1200;
16183
+ var MAX_XLSX_PREVIEW_ROWS_PER_SHEET = 25;
16184
+ var MAX_XLSX_PREVIEW_COLUMNS = 16;
16185
+ var MAX_XLSX_PREVIEW_CELL_CHARS = 60;
16186
+ function extensionOf(filename) {
16187
+ const name = (filename.split(/[\\/]/).pop() ?? "").toLowerCase();
16188
+ const dot = name.lastIndexOf(".");
16189
+ return dot > 0 ? name.slice(dot + 1) : "";
16190
+ }
16191
+ function officeKindFromMimeOrFilename(mime, filename) {
16192
+ if (mime === DOCX_MIME)
16193
+ return "docx";
16194
+ if (mime === PPTX_MIME)
16195
+ return "pptx";
16196
+ if (mime === XLSX_MIME)
16197
+ return "xlsx";
16198
+ if (mime !== "" && mime !== GENERIC_MIME)
16199
+ return null;
16200
+ const extension = extensionOf(filename);
16201
+ if (extension === "docx")
16202
+ return "docx";
16203
+ if (extension === "pptx")
16204
+ return "pptx";
16205
+ if (extension === "xlsx")
16206
+ return "xlsx";
16207
+ return null;
16208
+ }
16209
+ function relevantXmlEntry(kind, name) {
16210
+ if (!name.endsWith(".xml"))
16211
+ return false;
16212
+ if (kind === "docx") {
16213
+ return name === "word/document.xml" || /^word\/header\d+\.xml$/.test(name) || /^word\/footer\d+\.xml$/.test(name) || name === "word/footnotes.xml" || name === "word/endnotes.xml" || name === "word/comments.xml";
16214
+ }
16215
+ return /^ppt\/slides\/slide\d+\.xml$/.test(name) || /^ppt\/notesSlides\/notesSlide\d+\.xml$/.test(name);
16216
+ }
16217
+ function compareEntryName(left, right) {
16218
+ return left.name.localeCompare(right.name, undefined, { numeric: true, sensitivity: "base" });
16219
+ }
16220
+ function quoted(value) {
16221
+ const encoded = JSON.stringify(value.length > 500 ? `${value.slice(0, 500)}…` : value);
16222
+ return typeof encoded === "string" ? encoded : '""';
16223
+ }
16224
+ function sheetSummaryLine(sheet, total) {
16225
+ const facts = [
16226
+ sheet.dimension ? `dimension ${sheet.dimension}` : "",
16227
+ sheet.cells.length ? `${sheet.cells.length} cells in rows ${sheet.firstRow}-${sheet.lastRow}, columns ${columnLetters(sheet.firstColumn)}-${columnLetters(sheet.lastColumn)}` : "no cell values",
16228
+ sheet.formulaCount ? `${sheet.formulaCount} formula${sheet.formulaCount === 1 ? "" : "s"}` : "",
16229
+ sheet.mergedRanges.length ? `merged ${sheet.mergedRanges.slice(0, 8).join(", ")}${sheet.mergedRanges.length > 8 ? ", …" : ""}` : "",
16230
+ sheet.info.hidden ? "hidden" : ""
16231
+ ].filter(Boolean);
16232
+ return `sheet ${quoted(sheet.info.name)} (${sheet.info.position} of ${total}): ${facts.join("; ")}`;
16233
+ }
16234
+ async function extractXlsxText(bytes, options) {
16235
+ const tool = options.spreadsheetReadTool;
16236
+ const workbook = await openXlsxWorkbook(bytes);
16237
+ const total = workbook.sheets.length;
16238
+ const lines = [
16239
+ "xlsx_workbook:",
16240
+ ` sheet_count: ${total}`,
16241
+ ` sheet_names: ${workbook.sheets.map((sheet) => quoted(sheet.name)).join(", ")}`,
16242
+ ` shared_string_count: ${workbook.sharedStringCount}`,
16243
+ ` style_count: ${workbook.styleCount}`,
16244
+ ...workbook.date1904 ? [" date_system: 1904"] : [],
16245
+ ...workbook.omittedSheets ? [` omitted_sheets: ${workbook.omittedSheets} beyond the first ${total} are not shown`] : []
16246
+ ];
16247
+ let remainingCells = MAX_XLSX_PREVIEW_CELLS;
16248
+ for (const info of workbook.sheets) {
16249
+ let sheet;
16250
+ try {
16251
+ sheet = await workbook.readSheet(info);
16252
+ } catch (cause) {
16253
+ lines.push(`sheet ${quoted(info.name)} (${info.position} of ${total}): error: ${cause instanceof Error ? cause.message : String(cause)}`);
16254
+ continue;
16255
+ }
16256
+ lines.push(sheetSummaryLine(sheet, total));
16257
+ if (sheet.cells.length === 0)
16258
+ continue;
16259
+ if (remainingCells <= 0) {
16260
+ lines.push(tool ? ` preview omitted: cell budget used by earlier sheets; read it with ${tool}.` : " preview omitted: cell budget used by earlier sheets.");
16261
+ continue;
16262
+ }
16263
+ const maxRows = Math.max(1, Math.min(MAX_XLSX_PREVIEW_ROWS_PER_SHEET, Math.floor(remainingCells / Math.min(MAX_XLSX_PREVIEW_COLUMNS, Math.max(1, sheet.lastColumn - sheet.firstColumn + 1)))));
16264
+ const table = renderSheetTable(sheet, { maxRows, maxColumns: MAX_XLSX_PREVIEW_COLUMNS, maxCellChars: MAX_XLSX_PREVIEW_CELL_CHARS });
16265
+ remainingCells -= table.renderedRows * table.columns.length;
16266
+ lines.push(table.text);
16267
+ if (table.truncatedColumns > 0)
16268
+ lines.push(` more_columns: ${table.truncatedColumns} not shown`);
16269
+ if (table.nextStartRow !== null) {
16270
+ lines.push(tool ? ` more_rows: continue with ${tool}(sheet: ${quoted(sheet.info.name)}, startRow: ${table.nextStartRow})` : ` more_rows: rows from ${table.nextStartRow} are not shown`);
16271
+ }
16272
+ if (sheet.omittedCells > 0)
16273
+ lines.push(` omitted_cells: ${sheet.omittedCells}`);
16274
+ const formulas = formulaSummary(sheet, 12);
16275
+ if (formulas.length)
16276
+ lines.push(` formulas: ${formulas.join("; ")}${sheet.formulaCount > formulas.length ? `; … ${sheet.formulaCount - formulas.length} more` : ""}`);
16277
+ const formats = numberFormatSummary(sheet);
16278
+ if (formats.length)
16279
+ lines.push(` number_formats: ${formats.join("; ")}`);
16280
+ }
16281
+ return lines.join(`
16282
+ `).slice(0, MAX_OFFICE_TEXT_CHARS);
16283
+ }
16284
+ async function extractOfficeText(kind, bytes, options = {}) {
16285
+ if (kind === "xlsx")
16286
+ return await extractXlsxText(bytes, options);
16287
+ const entries = listZipEntries(bytes).filter((entry) => relevantXmlEntry(kind, entry.name)).sort(compareEntryName);
16288
+ if (entries.length === 0)
16289
+ throw new Error("No supported Office XML text entries were found.");
16290
+ const pieces = [];
16291
+ let remaining = MAX_OFFICE_TEXT_CHARS;
16292
+ for (const entry of entries) {
16293
+ if (remaining <= 0)
16294
+ break;
16295
+ const text = xmlText(utf8Text(await readZipEntryData(bytes, entry)));
16296
+ if (!text)
16297
+ continue;
16298
+ const chunk = text.slice(0, remaining);
16299
+ pieces.push(`[${entry.name}]
16300
+ ${chunk}`);
16301
+ remaining -= chunk.length;
16302
+ }
16303
+ const combined = pieces.join(`
16304
+
16305
+ `).slice(0, MAX_OFFICE_TEXT_CHARS);
16306
+ if (!combined)
16307
+ throw new Error("Office XML text entries contained no extractable text.");
16308
+ return combined;
16309
+ }
16176
16310
  // src/opencode-plugins/openwork-spreadsheets.ts
16177
16311
  var MAX_TOOL_TEXT_CHARS = 40000;
16178
16312
  var DEFAULT_READ_ROWS = 100;
@@ -16304,7 +16438,7 @@ function sheetFacts(sheet) {
16304
16438
  numberFormats: numberFormatSummary(sheet, 6, 2)
16305
16439
  };
16306
16440
  }
16307
- function sheetSummaryLine(sheet, total) {
16441
+ function sheetSummaryLine2(sheet, total) {
16308
16442
  const facts = sheetFacts(sheet);
16309
16443
  return [
16310
16444
  `sheet: ${JSON.stringify(sheet.info.name)} (${sheet.info.position} of ${total})`,
@@ -16400,7 +16534,7 @@ var OpenWorkSpreadsheets = async (factoryInput) => {
16400
16534
  });
16401
16535
  const lines = [
16402
16536
  `path: ${file2.relativePath}`,
16403
- sheetSummaryLine(sheet, workbook.sheets.length),
16537
+ sheetSummaryLine2(sheet, workbook.sheets.length),
16404
16538
  `showing: ${table.renderedRows} non-empty row${table.renderedRows === 1 ? "" : "s"}${args.startRow ? ` from row ${args.startRow}` : ""}${args.range ? ` within ${args.range}` : ""}; ${args.formulas ? "formulas" : "values (pass formulas: true for formulas)"}`,
16405
16539
  table.text
16406
16540
  ];