openwork-server 0.18.50 → 0.18.57
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 +3 -3
- 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-capabilities-knowledge.js +0 -5
- package/dist/opencode-plugins/openwork-context-v2.js +84 -0
- package/dist/opencode-plugins/openwork-extensions-preview.js +650 -271
- 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 +113587 -0
- package/dist/pdfium.wasm +0 -0
- package/package.json +7 -1
- package/web/assets/abnfDiagram-VCTEODGH-Dv8KxM1F.js +1 -0
- package/web/assets/app-B682snBU.css +32 -0
- package/web/assets/app-E_RdTPah.js +2591 -0
- package/web/assets/{arc-jSgX49-e.js → arc-_WbfJV_K.js} +1 -1
- package/web/assets/architectureDiagram-5GKGNRK7-CckpRlSR.js +36 -0
- package/web/assets/{artifact-code-view-DFIq0k-c.js → artifact-code-view-BbU019Q_.js} +2 -2
- package/web/assets/artifact-spreadsheet-editor-B3q9ZZoB.js +11 -0
- package/web/assets/{artifact-text-editor-DBngc6bx.js → artifact-text-editor-CA2Dgulr.js} +2 -2
- package/web/assets/{blockDiagram-OSKFZWR5-CBcZLjLp.js → blockDiagram-OSKFZWR5-BKdntEom.js} +3 -3
- package/web/assets/{c4Diagram-7LVT6UL2-DMrhFCLj.js → c4Diagram-7LVT6UL2-BJLyhqO1.js} +2 -2
- package/web/assets/channel-BZvy6aHa.js +1 -0
- package/web/assets/{chunk-2Q5K7J3B-Ce1X-FJQ.js → chunk-2Q5K7J3B-D88ZIDGU.js} +1 -1
- package/web/assets/{chunk-5VM5RSS4-BS48ZtVI.js → chunk-5VM5RSS4-DebGr6SE.js} +1 -1
- package/web/assets/{chunk-F27PBJKO-COdFZJ-M.js → chunk-F27PBJKO-ChkVnT1d.js} +1 -1
- package/web/assets/{chunk-HLEWEB6X-Cdw4ABX3.js → chunk-HLEWEB6X-ER6ZF6Pd.js} +1 -1
- package/web/assets/{chunk-JWPE2WC7-FVVDYZmE.js → chunk-JWPE2WC7-CQw0tJnK.js} +1 -1
- package/web/assets/{chunk-POPQ4Y6H-C7acdUF3.js → chunk-POPQ4Y6H-Dm94DEFc.js} +1 -1
- package/web/assets/{chunk-SVP7TREG-BUun0UWD.js → chunk-SVP7TREG-rzCKlvNW.js} +1 -1
- package/web/assets/{chunk-XXDRQBXY-DLgpJmat.js → chunk-XXDRQBXY-BcXExR9z.js} +1 -1
- package/web/assets/{chunk-ZLD2IHE6-BdMQ5Cr0.js → chunk-ZLD2IHE6-CRtSpyr1.js} +1 -1
- package/web/assets/classDiagram-CYGNFDIV-DBAMzIwS.js +1 -0
- package/web/assets/classDiagram-v2-TLXNO2FR-DBAMzIwS.js +1 -0
- package/web/assets/cose-bilkent-JH36ORCC-1inJ0kKP.js +1 -0
- package/web/assets/{cynefin-OW5HDTMX-DslesE5Y.js → cynefin-OW5HDTMX-BAEIfHgW.js} +1 -1
- package/web/assets/cynefinDiagram-5FMLGOSQ-Dw_qVKID.js +62 -0
- package/web/assets/{dagre-OS7QT2EB-Bkahh4gZ.js → dagre-OS7QT2EB-BXAAz87u.js} +2 -2
- package/web/assets/{diagram-S7CK7UJ4-CXQl7SfF.js → diagram-S7CK7UJ4-BQt6gteN.js} +2 -2
- package/web/assets/diagram-UQ7AKVKN-Dh7vrHwF.js +41 -0
- package/web/assets/{diagram-VSXAHHWV-DlcR8qeO.js → diagram-VSXAHHWV-D2kNxmUp.js} +2 -2
- package/web/assets/diagram-VX7I27RA-CctQDix_.js +24 -0
- package/web/assets/diagram-Z3DM3KII-CDGlIVG5.js +24 -0
- package/web/assets/ebnfDiagram-PWID7BFC-0bgAb7z3.js +1 -0
- package/web/assets/{erDiagram-2YWLMYGG-DOqO-9Yf.js → erDiagram-2YWLMYGG-Dbur-iWa.js} +2 -2
- package/web/assets/{flowDiagram-T62WH6J4-CCZxvIjW.js → flowDiagram-T62WH6J4-Cw6AeymU.js} +1 -1
- package/web/assets/ganttDiagram-EL5Y4UJY-BXYwFWOW.js +292 -0
- package/web/assets/gitGraphDiagram-WWUBYQGX-De6ZCLNz.js +106 -0
- package/web/assets/infoDiagram-FKFFQAWI-B11KM4en.js +2 -0
- package/web/assets/{ishikawaDiagram-5VMMS53U-xutQo5Ip.js → ishikawaDiagram-5VMMS53U-kGPWhBux.js} +2 -2
- package/web/assets/{journeyDiagram-EYS64GPL-BIbzPGaa.js → journeyDiagram-EYS64GPL-K8Wtegvp.js} +2 -2
- package/web/assets/{kanban-definition-UXKFOSKX-BCTiRzck.js → kanban-definition-UXKFOSKX-CjtX_cLJ.js} +2 -2
- package/web/assets/{layout-Wpfi54TB.js → layout-Cn0uoRC-.js} +1 -1
- package/web/assets/{linear-DLJHPikh.js → linear-WTNza7Ko.js} +1 -1
- package/web/assets/{mermaid.core-CDRJkis7.js → mermaid.core-CbBVVRTZ.js} +10 -10
- package/web/assets/{mindmap-definition-THT77NOG-DtphSFs_.js → mindmap-definition-THT77NOG-DjyO1aA-.js} +2 -2
- package/web/assets/pegDiagram-XKGWAZYB-ChPXU87n.js +1 -0
- package/web/assets/{pieDiagram-E7YTZNPT-tjxtWWT7.js → pieDiagram-E7YTZNPT-bPQtXz_p.js} +2 -2
- package/web/assets/{quadrantDiagram-AXDQQJYC-CFC1qey-.js → quadrantDiagram-AXDQQJYC-DokQ5FGV.js} +2 -2
- package/web/assets/railroadDiagram-O6MQD6OU-CcdqGxuL.js +1 -0
- package/web/assets/{requirementDiagram-IS5BZ75X-B8i4BL2A.js → requirementDiagram-IS5BZ75X-CGMF9hMZ.js} +2 -2
- package/web/assets/{sankeyDiagram-P5KCCOFB-Dll4Naj0.js → sankeyDiagram-P5KCCOFB-fc-d15bH.js} +2 -2
- package/web/assets/{sequenceDiagram-WJ2MYXX4-B8Rvjhb5.js → sequenceDiagram-WJ2MYXX4-DAmsOR8u.js} +2 -2
- package/web/assets/sizeCapture-INFHLROL-6o7CY1B-.js +1 -0
- package/web/assets/stateDiagram-XQSTLZYL-En5t4mkI.js +1 -0
- package/web/assets/stateDiagram-v2-IH3M54BS-DvIXHm_9.js +1 -0
- package/web/assets/swimlanes-V6O3JKXN-COBv2NoI.js +1 -0
- package/web/assets/swimlanesDiagram-JKAHXJPX-CorMSufQ.js +8 -0
- package/web/assets/{timeline-definition-24CTP7MA-Dum2N-ex.js → timeline-definition-24CTP7MA-Qb-aTtSE.js} +2 -2
- package/web/assets/{vennDiagram-4TSXK5OY-D-JeJumX.js → vennDiagram-4TSXK5OY-Br3-0Ze-.js} +2 -2
- package/web/assets/{wardleyDiagram-VM6X3IG4-d99FKQIG.js → wardleyDiagram-VM6X3IG4-BCeY3AKL.js} +2 -2
- package/web/assets/{workspace-file-tree-CAuhntUr.js → workspace-file-tree-CYzKM8q4.js} +3 -3
- package/web/assets/{xychartDiagram-S5SC5T6Z-DdmevfkD.js → xychartDiagram-S5SC5T6Z-Bz96OPKc.js} +2 -2
- 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 +3 -4
- package/dist/bin/openwork-server +0 -4
- package/web/assets/abnfDiagram-VCTEODGH-BgnyE_Jl.js +0 -1
- package/web/assets/app-CyCqD289.js +0 -2581
- package/web/assets/app-DOrYoP_4.css +0 -32
- package/web/assets/architectureDiagram-5GKGNRK7-DD_aGn4v.js +0 -36
- package/web/assets/artifact-spreadsheet-editor-DFVCYrL7.js +0 -11
- 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/cose-bilkent-JH36ORCC-CqWy3Swy.js +0 -1
- package/web/assets/cynefinDiagram-5FMLGOSQ-B54uZJn_.js +0 -62
- package/web/assets/diagram-UQ7AKVKN-BA0V8tjK.js +0 -41
- package/web/assets/diagram-VX7I27RA-ewm16zDI.js +0 -24
- package/web/assets/diagram-Z3DM3KII-Bc2lRc88.js +0 -24
- package/web/assets/ebnfDiagram-PWID7BFC-JwCaf6cT.js +0 -1
- package/web/assets/ganttDiagram-EL5Y4UJY-BczG7RIu.js +0 -292
- package/web/assets/gitGraphDiagram-WWUBYQGX-GOecDN3g.js +0 -106
- package/web/assets/index-BZgplq0g.css +0 -1
- package/web/assets/index-_gYIQM_z.js +0 -49
- package/web/assets/infoDiagram-FKFFQAWI-BbgIVsQp.js +0 -2
- package/web/assets/overlay-zA9qjYXH.js +0 -1
- package/web/assets/pegDiagram-XKGWAZYB-CzbjpqK7.js +0 -1
- package/web/assets/railroadDiagram-O6MQD6OU-73_BXhNP.js +0 -1
- package/web/assets/sizeCapture-INFHLROL-h8YDF-c3.js +0 -1
- package/web/assets/stateDiagram-XQSTLZYL-COorU6Ga.js +0 -1
- package/web/assets/stateDiagram-v2-IH3M54BS-BAu05WuT.js +0 -1
- package/web/assets/swimlanes-V6O3JKXN-CAghInFw.js +0 -1
- package/web/assets/swimlanesDiagram-JKAHXJPX-CpJNl3pn.js +0 -8
- package/web/grain-art/extension/extension-001.png +0 -0
- package/web/grain-art/extension/extension-002.png +0 -0
- package/web/grain-art/extension/extension-003.png +0 -0
- package/web/grain-art/extension/extension-004.png +0 -0
- package/web/grain-art/extension/extension-005.png +0 -0
- package/web/grain-art/extension/extension-006.png +0 -0
- package/web/grain-art/extension/extension-007.png +0 -0
- package/web/grain-art/extension/extension-008.png +0 -0
- package/web/grain-art/extension/extension-009.png +0 -0
- package/web/grain-art/extension/extension-010.png +0 -0
- package/web/grain-art/extension/extension-011.png +0 -0
- package/web/grain-art/extension/extension-012.png +0 -0
- package/web/grain-art/extension/extension-013.png +0 -0
- package/web/grain-art/extension/extension-014.png +0 -0
- package/web/grain-art/extension/extension-015.png +0 -0
- package/web/grain-art/extension/extension-016.png +0 -0
- package/web/grain-art/extension/extension-017.png +0 -0
- package/web/grain-art/extension/extension-018.png +0 -0
- package/web/grain-art/extension/extension-019.png +0 -0
- package/web/grain-art/extension/extension-020.png +0 -0
- package/web/grain-art/extension/extension-021.png +0 -0
- package/web/grain-art/extension/extension-022.png +0 -0
- package/web/grain-art/extension/extension-023.png +0 -0
- package/web/grain-art/extension/extension-024.png +0 -0
- package/web/grain-art/extension/extension-025.png +0 -0
- package/web/grain-art/extension/extension-026.png +0 -0
- package/web/grain-art/extension/extension-027.png +0 -0
- package/web/grain-art/extension/extension-028.png +0 -0
- package/web/grain-art/extension/extension-029.png +0 -0
- package/web/grain-art/extension/extension-030.png +0 -0
- package/web/grain-art/extension/extension-031.png +0 -0
- package/web/grain-art/extension/extension-032.png +0 -0
- package/web/grain-art/fallback/fallback-001.png +0 -0
- package/web/grain-art/fallback/fallback-002.png +0 -0
- package/web/grain-art/fallback/fallback-003.png +0 -0
- package/web/grain-art/fallback/fallback-004.png +0 -0
- package/web/grain-art/fallback/fallback-005.png +0 -0
- package/web/grain-art/fallback/fallback-006.png +0 -0
- package/web/grain-art/fallback/fallback-007.png +0 -0
- package/web/grain-art/fallback/fallback-008.png +0 -0
- package/web/grain-art/fallback/fallback-009.png +0 -0
- package/web/grain-art/fallback/fallback-010.png +0 -0
- package/web/grain-art/fallback/fallback-011.png +0 -0
- package/web/grain-art/fallback/fallback-012.png +0 -0
- package/web/grain-art/fallback/fallback-013.png +0 -0
- package/web/grain-art/fallback/fallback-014.png +0 -0
- package/web/grain-art/fallback/fallback-015.png +0 -0
- package/web/grain-art/fallback/fallback-016.png +0 -0
- package/web/grain-art/fallback/fallback-017.png +0 -0
- package/web/grain-art/fallback/fallback-018.png +0 -0
- package/web/grain-art/fallback/fallback-019.png +0 -0
- package/web/grain-art/fallback/fallback-020.png +0 -0
- package/web/grain-art/fallback/fallback-021.png +0 -0
- package/web/grain-art/fallback/fallback-022.png +0 -0
- package/web/grain-art/fallback/fallback-023.png +0 -0
- package/web/grain-art/fallback/fallback-024.png +0 -0
- package/web/grain-art/fallback/fallback-025.png +0 -0
- package/web/grain-art/fallback/fallback-026.png +0 -0
- package/web/grain-art/fallback/fallback-027.png +0 -0
- package/web/grain-art/fallback/fallback-028.png +0 -0
- package/web/grain-art/fallback/fallback-029.png +0 -0
- package/web/grain-art/fallback/fallback-030.png +0 -0
- package/web/grain-art/fallback/fallback-031.png +0 -0
- package/web/grain-art/fallback/fallback-032.png +0 -0
- package/web/grain-art/mcps/mcps-001.png +0 -0
- package/web/grain-art/mcps/mcps-002.png +0 -0
- package/web/grain-art/mcps/mcps-003.png +0 -0
- package/web/grain-art/mcps/mcps-004.png +0 -0
- package/web/grain-art/mcps/mcps-005.png +0 -0
- package/web/grain-art/mcps/mcps-006.png +0 -0
- package/web/grain-art/mcps/mcps-007.png +0 -0
- package/web/grain-art/mcps/mcps-008.png +0 -0
- package/web/grain-art/mcps/mcps-009.png +0 -0
- package/web/grain-art/mcps/mcps-010.png +0 -0
- package/web/grain-art/mcps/mcps-011.png +0 -0
- package/web/grain-art/mcps/mcps-012.png +0 -0
- package/web/grain-art/mcps/mcps-013.png +0 -0
- package/web/grain-art/mcps/mcps-014.png +0 -0
- package/web/grain-art/mcps/mcps-015.png +0 -0
- package/web/grain-art/mcps/mcps-016.png +0 -0
- package/web/grain-art/mcps/mcps-017.png +0 -0
- package/web/grain-art/mcps/mcps-018.png +0 -0
- package/web/grain-art/mcps/mcps-019.png +0 -0
- package/web/grain-art/mcps/mcps-020.png +0 -0
- package/web/grain-art/mcps/mcps-021.png +0 -0
- package/web/grain-art/mcps/mcps-022.png +0 -0
- package/web/grain-art/mcps/mcps-023.png +0 -0
- package/web/grain-art/mcps/mcps-024.png +0 -0
- package/web/grain-art/mcps/mcps-025.png +0 -0
- package/web/grain-art/mcps/mcps-026.png +0 -0
- package/web/grain-art/mcps/mcps-027.png +0 -0
- package/web/grain-art/mcps/mcps-028.png +0 -0
- package/web/grain-art/mcps/mcps-029.png +0 -0
- package/web/grain-art/mcps/mcps-030.png +0 -0
- package/web/grain-art/mcps/mcps-031.png +0 -0
- package/web/grain-art/mcps/mcps-032.png +0 -0
- package/web/grain-art/plugins/plugins-001.png +0 -0
- package/web/grain-art/plugins/plugins-002.png +0 -0
- package/web/grain-art/plugins/plugins-003.png +0 -0
- package/web/grain-art/plugins/plugins-004.png +0 -0
- package/web/grain-art/plugins/plugins-005.png +0 -0
- package/web/grain-art/plugins/plugins-006.png +0 -0
- package/web/grain-art/plugins/plugins-007.png +0 -0
- package/web/grain-art/plugins/plugins-008.png +0 -0
- package/web/grain-art/plugins/plugins-009.png +0 -0
- package/web/grain-art/plugins/plugins-010.png +0 -0
- package/web/grain-art/plugins/plugins-011.png +0 -0
- package/web/grain-art/plugins/plugins-012.png +0 -0
- package/web/grain-art/plugins/plugins-013.png +0 -0
- package/web/grain-art/plugins/plugins-014.png +0 -0
- package/web/grain-art/plugins/plugins-015.png +0 -0
- package/web/grain-art/plugins/plugins-016.png +0 -0
- package/web/grain-art/plugins/plugins-017.png +0 -0
- package/web/grain-art/plugins/plugins-018.png +0 -0
- package/web/grain-art/plugins/plugins-019.png +0 -0
- package/web/grain-art/plugins/plugins-020.png +0 -0
- package/web/grain-art/plugins/plugins-021.png +0 -0
- package/web/grain-art/plugins/plugins-022.png +0 -0
- package/web/grain-art/plugins/plugins-023.png +0 -0
- package/web/grain-art/plugins/plugins-024.png +0 -0
- package/web/grain-art/plugins/plugins-025.png +0 -0
- package/web/grain-art/plugins/plugins-026.png +0 -0
- package/web/grain-art/plugins/plugins-027.png +0 -0
- package/web/grain-art/plugins/plugins-028.png +0 -0
- package/web/grain-art/plugins/plugins-029.png +0 -0
- package/web/grain-art/plugins/plugins-030.png +0 -0
- package/web/grain-art/plugins/plugins-031.png +0 -0
- package/web/grain-art/plugins/plugins-032.png +0 -0
- package/web/grain-art/skills/skills-001.png +0 -0
- package/web/grain-art/skills/skills-002.png +0 -0
- package/web/grain-art/skills/skills-003.png +0 -0
- package/web/grain-art/skills/skills-004.png +0 -0
- package/web/grain-art/skills/skills-005.png +0 -0
- package/web/grain-art/skills/skills-006.png +0 -0
- package/web/grain-art/skills/skills-007.png +0 -0
- package/web/grain-art/skills/skills-008.png +0 -0
- package/web/grain-art/skills/skills-009.png +0 -0
- package/web/grain-art/skills/skills-010.png +0 -0
- package/web/grain-art/skills/skills-011.png +0 -0
- package/web/grain-art/skills/skills-012.png +0 -0
- package/web/grain-art/skills/skills-013.png +0 -0
- package/web/grain-art/skills/skills-014.png +0 -0
- package/web/grain-art/skills/skills-015.png +0 -0
- package/web/grain-art/skills/skills-016.png +0 -0
- package/web/grain-art/skills/skills-017.png +0 -0
- package/web/grain-art/skills/skills-018.png +0 -0
- package/web/grain-art/skills/skills-019.png +0 -0
- package/web/grain-art/skills/skills-020.png +0 -0
- package/web/grain-art/skills/skills-021.png +0 -0
- package/web/grain-art/skills/skills-022.png +0 -0
- package/web/grain-art/skills/skills-023.png +0 -0
- package/web/grain-art/skills/skills-024.png +0 -0
- package/web/grain-art/skills/skills-025.png +0 -0
- package/web/grain-art/skills/skills-026.png +0 -0
- package/web/grain-art/skills/skills-027.png +0 -0
- package/web/grain-art/skills/skills-028.png +0 -0
- package/web/grain-art/skills/skills-029.png +0 -0
- package/web/grain-art/skills/skills-030.png +0 -0
- package/web/grain-art/skills/skills-031.png +0 -0
- package/web/grain-art/skills/skills-032.png +0 -0
- package/web/grain-art/workspaces/workspaces-001.png +0 -0
- package/web/grain-art/workspaces/workspaces-002.png +0 -0
- package/web/grain-art/workspaces/workspaces-003.png +0 -0
- package/web/grain-art/workspaces/workspaces-004.png +0 -0
- package/web/grain-art/workspaces/workspaces-005.png +0 -0
- package/web/grain-art/workspaces/workspaces-006.png +0 -0
- package/web/grain-art/workspaces/workspaces-007.png +0 -0
- package/web/grain-art/workspaces/workspaces-008.png +0 -0
- package/web/grain-art/workspaces/workspaces-009.png +0 -0
- package/web/grain-art/workspaces/workspaces-010.png +0 -0
- package/web/grain-art/workspaces/workspaces-011.png +0 -0
- package/web/grain-art/workspaces/workspaces-012.png +0 -0
- package/web/grain-art/workspaces/workspaces-013.png +0 -0
- package/web/grain-art/workspaces/workspaces-014.png +0 -0
- package/web/grain-art/workspaces/workspaces-015.png +0 -0
- package/web/grain-art/workspaces/workspaces-016.png +0 -0
- package/web/grain-art/workspaces/workspaces-017.png +0 -0
- package/web/grain-art/workspaces/workspaces-018.png +0 -0
- package/web/grain-art/workspaces/workspaces-019.png +0 -0
- package/web/grain-art/workspaces/workspaces-020.png +0 -0
- package/web/grain-art/workspaces/workspaces-021.png +0 -0
- package/web/grain-art/workspaces/workspaces-022.png +0 -0
- package/web/grain-art/workspaces/workspaces-023.png +0 -0
- package/web/grain-art/workspaces/workspaces-024.png +0 -0
- package/web/grain-art/workspaces/workspaces-025.png +0 -0
- package/web/grain-art/workspaces/workspaces-026.png +0 -0
- package/web/grain-art/workspaces/workspaces-027.png +0 -0
- package/web/grain-art/workspaces/workspaces-028.png +0 -0
- package/web/grain-art/workspaces/workspaces-029.png +0 -0
- package/web/grain-art/workspaces/workspaces-030.png +0 -0
- package/web/grain-art/workspaces/workspaces-031.png +0 -0
- package/web/grain-art/workspaces/workspaces-032.png +0 -0
- package/web/openwork-logo.svg +0 -1
- package/web/overlay.html +0 -29
|
@@ -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
|
];
|