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.
- package/README.md +1 -1
- package/bin/openwork-server.mjs +28 -22
- package/bin/platform.mjs +28 -0
- package/dist/opencode-plugin-deps-1.18.30.tgz +0 -0
- package/dist/opencode-plugins/openwork-context-v2.js +84 -0
- package/dist/opencode-plugins/openwork-extensions-preview.js +589 -268
- package/dist/opencode-plugins/openwork-gateway-quota-v2.js +12 -1
- package/dist/opencode-plugins/openwork-gateway-quota.js +12 -1
- package/dist/opencode-plugins/openwork-mcp-results-v2.js +154 -0
- package/dist/opencode-plugins/openwork-office-attachments.js +135 -130
- package/dist/opencode-plugins/openwork-provider-adapters.js +2 -2
- package/dist/opencode-plugins/openwork-provider-filters-v2.js +69 -0
- package/dist/opencode-plugins/openwork-read-transport.js +2 -0
- package/dist/opencode-plugins/openwork-spreadsheets.js +136 -2
- package/dist/openwork-server.mjs +114735 -0
- package/dist/pdfium.wasm +0 -0
- package/package.json +7 -1
- package/web/assets/{abnfDiagram-VCTEODGH-BgnyE_Jl.js → abnfDiagram-VCTEODGH-Dr1YMfll.js} +1 -1
- package/web/assets/{app-CyCqD289.js → app-D9Nvta88.js} +474 -424
- package/web/assets/{arc-jSgX49-e.js → arc-7SoIBvT7.js} +1 -1
- package/web/assets/{architectureDiagram-5GKGNRK7-DD_aGn4v.js → architectureDiagram-5GKGNRK7-BZwevfH9.js} +1 -1
- package/web/assets/{artifact-code-view-DFIq0k-c.js → artifact-code-view-WLwX_I1h.js} +1 -1
- package/web/assets/{artifact-spreadsheet-editor-DFVCYrL7.js → artifact-spreadsheet-editor-BvEnxKsm.js} +1 -1
- package/web/assets/{artifact-text-editor-DBngc6bx.js → artifact-text-editor-BHyVrNyR.js} +1 -1
- package/web/assets/{blockDiagram-OSKFZWR5-CBcZLjLp.js → blockDiagram-OSKFZWR5-Cvqr9DPi.js} +1 -1
- package/web/assets/{c4Diagram-7LVT6UL2-DMrhFCLj.js → c4Diagram-7LVT6UL2-CWTWC9C1.js} +1 -1
- package/web/assets/channel-BkgEJbR-.js +1 -0
- package/web/assets/{chunk-2Q5K7J3B-Ce1X-FJQ.js → chunk-2Q5K7J3B-DpJkzZ5x.js} +1 -1
- package/web/assets/{chunk-5VM5RSS4-BS48ZtVI.js → chunk-5VM5RSS4-BtTBnr9m.js} +1 -1
- package/web/assets/{chunk-F27PBJKO-COdFZJ-M.js → chunk-F27PBJKO-BbAvFJAg.js} +1 -1
- package/web/assets/{chunk-HLEWEB6X-Cdw4ABX3.js → chunk-HLEWEB6X-DX5mKBrj.js} +1 -1
- package/web/assets/{chunk-JWPE2WC7-FVVDYZmE.js → chunk-JWPE2WC7-CugB1e5O.js} +1 -1
- package/web/assets/{chunk-POPQ4Y6H-C7acdUF3.js → chunk-POPQ4Y6H-BQ-bWmmo.js} +1 -1
- package/web/assets/{chunk-SVP7TREG-BUun0UWD.js → chunk-SVP7TREG-szCI_Kz9.js} +1 -1
- package/web/assets/{chunk-XXDRQBXY-DLgpJmat.js → chunk-XXDRQBXY-C5UTO899.js} +1 -1
- package/web/assets/{chunk-ZLD2IHE6-BdMQ5Cr0.js → chunk-ZLD2IHE6-D5v_jiDg.js} +1 -1
- package/web/assets/classDiagram-CYGNFDIV-BHINh3-f.js +1 -0
- package/web/assets/classDiagram-v2-TLXNO2FR-BHINh3-f.js +1 -0
- package/web/assets/{cose-bilkent-JH36ORCC-CqWy3Swy.js → cose-bilkent-JH36ORCC-BhG_zAfo.js} +1 -1
- package/web/assets/{cynefin-OW5HDTMX-DslesE5Y.js → cynefin-OW5HDTMX-DSTjm6jO.js} +1 -1
- package/web/assets/{cynefinDiagram-5FMLGOSQ-B54uZJn_.js → cynefinDiagram-5FMLGOSQ-Dqkgb6tF.js} +1 -1
- package/web/assets/{dagre-OS7QT2EB-Bkahh4gZ.js → dagre-OS7QT2EB-BZMseQyA.js} +1 -1
- package/web/assets/{diagram-S7CK7UJ4-CXQl7SfF.js → diagram-S7CK7UJ4-Cs2hsmEJ.js} +1 -1
- package/web/assets/{diagram-UQ7AKVKN-BA0V8tjK.js → diagram-UQ7AKVKN-CDnRP_yz.js} +1 -1
- package/web/assets/{diagram-VSXAHHWV-DlcR8qeO.js → diagram-VSXAHHWV-DxKXQXAC.js} +1 -1
- package/web/assets/{diagram-VX7I27RA-ewm16zDI.js → diagram-VX7I27RA-BJKoseDf.js} +1 -1
- package/web/assets/{diagram-Z3DM3KII-Bc2lRc88.js → diagram-Z3DM3KII-DDcMvRxo.js} +1 -1
- package/web/assets/{ebnfDiagram-PWID7BFC-JwCaf6cT.js → ebnfDiagram-PWID7BFC-C2uUm-CC.js} +1 -1
- package/web/assets/{erDiagram-2YWLMYGG-DOqO-9Yf.js → erDiagram-2YWLMYGG-B0Mdv5WO.js} +1 -1
- package/web/assets/{flowDiagram-T62WH6J4-CCZxvIjW.js → flowDiagram-T62WH6J4-CUnt9AMo.js} +1 -1
- package/web/assets/{ganttDiagram-EL5Y4UJY-BczG7RIu.js → ganttDiagram-EL5Y4UJY-CENsUToC.js} +1 -1
- package/web/assets/{gitGraphDiagram-WWUBYQGX-GOecDN3g.js → gitGraphDiagram-WWUBYQGX-CrbKh94B.js} +1 -1
- package/web/assets/index-CyyMNIC_.css +1 -0
- package/web/assets/{infoDiagram-FKFFQAWI-BbgIVsQp.js → infoDiagram-FKFFQAWI-B-U-x_qU.js} +1 -1
- package/web/assets/{ishikawaDiagram-5VMMS53U-xutQo5Ip.js → ishikawaDiagram-5VMMS53U-jNVSJSu1.js} +1 -1
- package/web/assets/{journeyDiagram-EYS64GPL-BIbzPGaa.js → journeyDiagram-EYS64GPL-De3j0gPh.js} +1 -1
- package/web/assets/{kanban-definition-UXKFOSKX-BCTiRzck.js → kanban-definition-UXKFOSKX-Bbc8wjhq.js} +1 -1
- package/web/assets/{layout-Wpfi54TB.js → layout-BIjP2nup.js} +1 -1
- package/web/assets/{linear-DLJHPikh.js → linear-lvQZOiHM.js} +1 -1
- package/web/assets/{mermaid.core-CDRJkis7.js → mermaid.core-LJPf4T7o.js} +5 -5
- package/web/assets/{mindmap-definition-THT77NOG-DtphSFs_.js → mindmap-definition-THT77NOG-DiboHsg8.js} +1 -1
- package/web/assets/{overlay-zA9qjYXH.js → overlay-DA5SOee-.js} +1 -1
- package/web/assets/{pegDiagram-XKGWAZYB-CzbjpqK7.js → pegDiagram-XKGWAZYB-DO_edVtr.js} +1 -1
- package/web/assets/{pieDiagram-E7YTZNPT-tjxtWWT7.js → pieDiagram-E7YTZNPT-bPvBuBuG.js} +1 -1
- package/web/assets/{quadrantDiagram-AXDQQJYC-CFC1qey-.js → quadrantDiagram-AXDQQJYC-BGyrQhlH.js} +1 -1
- package/web/assets/{railroadDiagram-O6MQD6OU-73_BXhNP.js → railroadDiagram-O6MQD6OU-XhPIuoOE.js} +1 -1
- package/web/assets/{requirementDiagram-IS5BZ75X-B8i4BL2A.js → requirementDiagram-IS5BZ75X-atdASt4G.js} +1 -1
- package/web/assets/{sankeyDiagram-P5KCCOFB-Dll4Naj0.js → sankeyDiagram-P5KCCOFB-BV9prEKy.js} +1 -1
- package/web/assets/{sequenceDiagram-WJ2MYXX4-B8Rvjhb5.js → sequenceDiagram-WJ2MYXX4-Csfm-fZ-.js} +1 -1
- package/web/assets/{sizeCapture-INFHLROL-h8YDF-c3.js → sizeCapture-INFHLROL-CLmH-AjF.js} +1 -1
- package/web/assets/{stateDiagram-XQSTLZYL-COorU6Ga.js → stateDiagram-XQSTLZYL-yiSt2fJK.js} +1 -1
- package/web/assets/stateDiagram-v2-IH3M54BS-BEhxOujx.js +1 -0
- package/web/assets/{swimlanes-V6O3JKXN-CAghInFw.js → swimlanes-V6O3JKXN-BpXNggx9.js} +1 -1
- package/web/assets/swimlanesDiagram-JKAHXJPX-DWqwFv9F.js +8 -0
- package/web/assets/{timeline-definition-24CTP7MA-Dum2N-ex.js → timeline-definition-24CTP7MA-C8X71OnL.js} +1 -1
- package/web/assets/{vennDiagram-4TSXK5OY-D-JeJumX.js → vennDiagram-4TSXK5OY-BZo-99ra.js} +1 -1
- package/web/assets/{wardleyDiagram-VM6X3IG4-d99FKQIG.js → wardleyDiagram-VM6X3IG4-BHwH6ZLg.js} +1 -1
- package/web/assets/{workspace-file-tree-CAuhntUr.js → workspace-file-tree-C8iSfvPt.js} +3 -3
- package/web/assets/{xychartDiagram-S5SC5T6Z-DdmevfkD.js → xychartDiagram-S5SC5T6Z-BieEi319.js} +1 -1
- package/web/ext-github.svg +1 -0
- package/web/ext-hubspot.svg +1 -0
- package/web/ext-slack.svg +1 -0
- package/web/index.html +4 -3
- package/web/overlay.html +3 -3
- package/dist/bin/openwork-server +0 -4
- package/web/assets/channel-BE8JEd1U.js +0 -1
- package/web/assets/classDiagram-CYGNFDIV-Cy8V0GW-.js +0 -1
- package/web/assets/classDiagram-v2-TLXNO2FR-Cy8V0GW-.js +0 -1
- package/web/assets/index-BZgplq0g.css +0 -1
- package/web/assets/stateDiagram-v2-IH3M54BS-BAu05WuT.js +0 -1
- package/web/assets/swimlanesDiagram-JKAHXJPX-CpJNl3pn.js +0 -8
- /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
|
|
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
|
-
|
|
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
|
];
|