openwork-server 0.18.58 → 0.18.59

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 (89) hide show
  1. package/dist/opencode-plugin-deps-1.18.30.tgz +0 -0
  2. package/dist/opencode-plugins/drive-file-tools.js +62 -0
  3. package/dist/opencode-plugins/managed-policy-next.js +18 -1
  4. package/dist/opencode-plugins/openwork-agent-permissions-v2.js +14177 -0
  5. package/dist/opencode-plugins/openwork-capabilities-knowledge.js +197 -5
  6. package/dist/opencode-plugins/openwork-chrome-devtools.js +5 -5
  7. package/dist/opencode-plugins/openwork-cloud-skills-v2.js +148 -40
  8. package/dist/opencode-plugins/openwork-context-v2.js +127 -36
  9. package/dist/opencode-plugins/openwork-extensions-preview-steering.js +1 -1
  10. package/dist/opencode-plugins/openwork-extensions-preview.js +161 -46
  11. package/dist/opencode-plugins/openwork-gateway-quota-v2.js +55 -24
  12. package/dist/opencode-plugins/openwork-gateway-quota.js +31 -18
  13. package/dist/opencode-plugins/openwork-office-attachments.js +1 -1
  14. package/dist/opencode-plugins/openwork-provider-sync-v2.js +3880 -0
  15. package/dist/opencode-plugins/openwork-spreadsheets.js +1 -1
  16. package/dist/opencode-plugins/openwork-title-recovery.js +18 -6
  17. package/dist/opencode-plugins/openwork-ui-bridge.js +5 -2
  18. package/dist/opencode-plugins/workspace-file-destinations.js +136 -0
  19. package/dist/openwork-server.mjs +5354 -1474
  20. package/package.json +1 -1
  21. package/web/assets/{abnfDiagram-VCTEODGH-NpzjfSVw.js → abnfDiagram-VCTEODGH-DwrIJf48.js} +1 -1
  22. package/web/assets/app-CHfH2zRH.css +32 -0
  23. package/web/assets/{app-DAPWjSQy.js → app-wI0raXAn.js} +467 -443
  24. package/web/assets/{arc-CHKYZ_eM.js → arc-ZosP3oxH.js} +1 -1
  25. package/web/assets/{architectureDiagram-5GKGNRK7-CbtqO0tI.js → architectureDiagram-5GKGNRK7-DJ7WZh-0.js} +1 -1
  26. package/web/assets/{artifact-code-view-BQF6eKZY.js → artifact-code-view-C_Qx94_t.js} +1 -1
  27. package/web/assets/{artifact-spreadsheet-editor-CQJKFbub.js → artifact-spreadsheet-editor-dniMTtEq.js} +1 -1
  28. package/web/assets/{artifact-text-editor-B6E8-x3q.js → artifact-text-editor-CRcxx-eZ.js} +1 -1
  29. package/web/assets/{blockDiagram-OSKFZWR5-Ceoouvgp.js → blockDiagram-OSKFZWR5-BRRMYQEs.js} +1 -1
  30. package/web/assets/{c4Diagram-7LVT6UL2-DeZ6n4qW.js → c4Diagram-7LVT6UL2-gOHlDk2i.js} +1 -1
  31. package/web/assets/channel-CGPaVydu.js +1 -0
  32. package/web/assets/{chunk-2Q5K7J3B-CpycWP6o.js → chunk-2Q5K7J3B-ndvUlkwq.js} +1 -1
  33. package/web/assets/{chunk-5VM5RSS4-DhEpcp77.js → chunk-5VM5RSS4-BFRve9Ox.js} +1 -1
  34. package/web/assets/{chunk-F27PBJKO-D0H-x4y2.js → chunk-F27PBJKO-CD-z5ZbY.js} +1 -1
  35. package/web/assets/{chunk-HLEWEB6X-CApTHm_u.js → chunk-HLEWEB6X-CoWYhcUt.js} +1 -1
  36. package/web/assets/{chunk-JWPE2WC7-BHCjUPpx.js → chunk-JWPE2WC7-CsOREOhy.js} +1 -1
  37. package/web/assets/{chunk-POPQ4Y6H-CQhggViX.js → chunk-POPQ4Y6H-BPOdruz2.js} +1 -1
  38. package/web/assets/{chunk-SVP7TREG-CpeIJurV.js → chunk-SVP7TREG-B7QwRO46.js} +1 -1
  39. package/web/assets/{chunk-XXDRQBXY-CLRkKkAV.js → chunk-XXDRQBXY-DZp-LfVy.js} +1 -1
  40. package/web/assets/{chunk-ZLD2IHE6-BdYnQ042.js → chunk-ZLD2IHE6-Bo9EgwIQ.js} +1 -1
  41. package/web/assets/classDiagram-CYGNFDIV-Bsii9q3h.js +1 -0
  42. package/web/assets/classDiagram-v2-TLXNO2FR-Bsii9q3h.js +1 -0
  43. package/web/assets/{cose-bilkent-JH36ORCC-DmF8vX7k.js → cose-bilkent-JH36ORCC-H7EUgT4k.js} +1 -1
  44. package/web/assets/{cynefin-OW5HDTMX-NLetkEsX.js → cynefin-OW5HDTMX-r1tJgDH9.js} +1 -1
  45. package/web/assets/{cynefinDiagram-5FMLGOSQ-DKP1VgT5.js → cynefinDiagram-5FMLGOSQ-Cq4Pjmmj.js} +1 -1
  46. package/web/assets/{dagre-OS7QT2EB-CRAAAd8s.js → dagre-OS7QT2EB-Bh2GFhAP.js} +1 -1
  47. package/web/assets/{diagram-S7CK7UJ4-DpAtNlvk.js → diagram-S7CK7UJ4-BZNr_IG6.js} +1 -1
  48. package/web/assets/{diagram-UQ7AKVKN-D3OPArp4.js → diagram-UQ7AKVKN-BgaDOS70.js} +1 -1
  49. package/web/assets/{diagram-VSXAHHWV-Ce3MQsSX.js → diagram-VSXAHHWV-DjUt-msp.js} +1 -1
  50. package/web/assets/{diagram-VX7I27RA-DMNK9KDH.js → diagram-VX7I27RA-BI3GsO3i.js} +1 -1
  51. package/web/assets/{diagram-Z3DM3KII-CCUXCTwV.js → diagram-Z3DM3KII-BLqI9pS_.js} +1 -1
  52. package/web/assets/{ebnfDiagram-PWID7BFC-Ch1ZBqfh.js → ebnfDiagram-PWID7BFC-D_CdQ2MS.js} +1 -1
  53. package/web/assets/{erDiagram-2YWLMYGG-DfRCB-xW.js → erDiagram-2YWLMYGG-C1SWDIhQ.js} +1 -1
  54. package/web/assets/{flowDiagram-T62WH6J4-Ch9kGwk1.js → flowDiagram-T62WH6J4-BfXQV4xP.js} +1 -1
  55. package/web/assets/{ganttDiagram-EL5Y4UJY-BzB0WGSq.js → ganttDiagram-EL5Y4UJY-Bk-epoGY.js} +1 -1
  56. package/web/assets/{gitGraphDiagram-WWUBYQGX-Brbs3apz.js → gitGraphDiagram-WWUBYQGX-O1ARqYlP.js} +1 -1
  57. package/web/assets/{infoDiagram-FKFFQAWI-Ca71MEwH.js → infoDiagram-FKFFQAWI-WZNXnPS1.js} +1 -1
  58. package/web/assets/{ishikawaDiagram-5VMMS53U-D0wX8tOf.js → ishikawaDiagram-5VMMS53U-B8j8HgqU.js} +1 -1
  59. package/web/assets/{journeyDiagram-EYS64GPL-PeZPacru.js → journeyDiagram-EYS64GPL-dd2d-my9.js} +1 -1
  60. package/web/assets/{kanban-definition-UXKFOSKX-BLh162tT.js → kanban-definition-UXKFOSKX-B6HfzCjr.js} +1 -1
  61. package/web/assets/{layout-C0RknDsU.js → layout-CjAP8jGd.js} +1 -1
  62. package/web/assets/{linear-B9CiaY59.js → linear-DmcE_jj7.js} +1 -1
  63. package/web/assets/{mermaid.core-CPTixcx8.js → mermaid.core-DByIm3Os.js} +6 -6
  64. package/web/assets/{mindmap-definition-THT77NOG-BKk-svp_.js → mindmap-definition-THT77NOG-CJdJrkzY.js} +1 -1
  65. package/web/assets/{pegDiagram-XKGWAZYB-Bs6f-6OM.js → pegDiagram-XKGWAZYB-DMKRyZmT.js} +1 -1
  66. package/web/assets/{pieDiagram-E7YTZNPT-O9rjTBOJ.js → pieDiagram-E7YTZNPT-C0b_9HGX.js} +1 -1
  67. package/web/assets/{quadrantDiagram-AXDQQJYC-MPWJAd0o.js → quadrantDiagram-AXDQQJYC-BqkbJG9P.js} +1 -1
  68. package/web/assets/{railroadDiagram-O6MQD6OU-CmtyQoYY.js → railroadDiagram-O6MQD6OU-DXXz-as-.js} +1 -1
  69. package/web/assets/{requirementDiagram-IS5BZ75X-CiLZ0RyK.js → requirementDiagram-IS5BZ75X-DXkMFIBa.js} +1 -1
  70. package/web/assets/{sankeyDiagram-P5KCCOFB-BLbDh3R4.js → sankeyDiagram-P5KCCOFB-CzXdocFr.js} +1 -1
  71. package/web/assets/{sequenceDiagram-WJ2MYXX4-DQMbAIgI.js → sequenceDiagram-WJ2MYXX4-aJBXn8VU.js} +1 -1
  72. package/web/assets/{sizeCapture-INFHLROL-Di7AzhHC.js → sizeCapture-INFHLROL-jgtrjDHs.js} +1 -1
  73. package/web/assets/{stateDiagram-XQSTLZYL-VqhUG217.js → stateDiagram-XQSTLZYL-DrWWKXiY.js} +1 -1
  74. package/web/assets/stateDiagram-v2-IH3M54BS-D2cYASvR.js +1 -0
  75. package/web/assets/{swimlanes-V6O3JKXN-BkN28nKF.js → swimlanes-V6O3JKXN-D8Ewz1mj.js} +1 -1
  76. package/web/assets/swimlanesDiagram-JKAHXJPX-B9WLoHr4.js +8 -0
  77. package/web/assets/{timeline-definition-24CTP7MA-B-p3ba39.js → timeline-definition-24CTP7MA-B25naqcG.js} +1 -1
  78. package/web/assets/{vennDiagram-4TSXK5OY-Cggk7sJ0.js → vennDiagram-4TSXK5OY-3lHwPwrc.js} +1 -1
  79. package/web/assets/{wardleyDiagram-VM6X3IG4-DZ8iGx_0.js → wardleyDiagram-VM6X3IG4-RGq5f_bX.js} +1 -1
  80. package/web/assets/{workspace-file-tree-BKLzftpj.js → workspace-file-tree-Dt4_4AuL.js} +1 -1
  81. package/web/assets/{xychartDiagram-S5SC5T6Z-Dg1J2qoX.js → xychartDiagram-S5SC5T6Z-DysrZCDk.js} +1 -1
  82. package/web/index.html +2 -2
  83. package/dist/opencode-plugins/workspace-file-identity.js +0 -162
  84. package/web/assets/app-Dt3ByUuG.css +0 -32
  85. package/web/assets/channel-BA95BnJ8.js +0 -1
  86. package/web/assets/classDiagram-CYGNFDIV-DEYczDTV.js +0 -1
  87. package/web/assets/classDiagram-v2-TLXNO2FR-DEYczDTV.js +0 -1
  88. package/web/assets/stateDiagram-v2-IH3M54BS-BXsiZKn6.js +0 -1
  89. package/web/assets/swimlanesDiagram-JKAHXJPX-BuF8_99Y.js +0 -8
@@ -0,0 +1,62 @@
1
+ import { z } from "zod";
2
+ // The host performs these actions for its signed-in caller, as with drive_upload_file. Agents use these tools, which ask before writes.
3
+ export const DRIVE_FILE_ACTIONS = ["drive_pull_file", "drive_file_status", "drive_push_file"];
4
+ const connectionId = z.string().regex(/^(google-workspace|emc_[A-Za-z0-9]+)$/).optional()
5
+ .describe("Selected Google Workspace connection; omit for the default. Unavailable selections never fall back to another account.");
6
+ const workspacePath = z.string().min(1).max(4096);
7
+ export const drivePullFileArgs = z.object({
8
+ fileId: z.string().min(1).max(2048).describe("Drive file ID or link."),
9
+ path: workspacePath.optional().describe("Workspace path to save to. Defaults to drive/<file name>."),
10
+ format: z.string().regex(/^[a-z]{2,5}$/).optional().describe("Docs, Sheets, Slides and Drawings only: xlsx, csv (first tab only), docx, md, txt, pptx, pdf, png or svg."),
11
+ connectionId,
12
+ overwrite: z.boolean().optional().describe("Replace a local copy even if it has edits not in Drive. Asks the person first."),
13
+ }).strict();
14
+ export const driveFileStatusArgs = z.object({
15
+ path: workspacePath.optional().describe("One pulled file; omit for all of them."),
16
+ }).strict();
17
+ export const drivePushFileArgs = z.object({
18
+ path: workspacePath.describe("Workspace path of a pulled file."),
19
+ mode: z.enum(["replace", "copy"]).optional().describe("replace (default for stored files) updates the same Drive file; copy saves a new file next to it."),
20
+ name: z.string().min(1).max(255).optional().describe("Name for a copy."),
21
+ }).strict();
22
+ function isRecord(value) {
23
+ return typeof value === "object" && value !== null && !Array.isArray(value);
24
+ }
25
+ /** Engine permissions check writes; Desktop separately confirms every transfer at the host boundary. */
26
+ async function askPermission(context, permission, patterns, metadata) {
27
+ const ask = isRecord(context) && typeof context.ask === "function" ? context.ask : null;
28
+ if (!ask)
29
+ throw new Error("This OpenWork engine cannot ask for approval, so nothing was changed. Update OpenWork to save files to Drive.");
30
+ // "Always" covers only these patterns, so one approval never extends to other files.
31
+ await ask.call(context, { permission, patterns, always: patterns, metadata });
32
+ }
33
+ export function createDriveFileTools(call) {
34
+ return {
35
+ drive_pull_file: {
36
+ description: "Save a Google Drive file into the workspace and return its path and revision, never its content. Use it to analyze or edit Office, PDF, CSV or any large file with shell tools. Docs, Sheets and Slides arrive as docx, xlsx and pptx unless format says otherwise.",
37
+ args: drivePullFileArgs.shape,
38
+ async execute(rawArgs, context) {
39
+ const args = drivePullFileArgs.parse(rawArgs ?? {});
40
+ if (args.overwrite)
41
+ await askPermission(context, "drive_pull_file", [args.path ?? args.fileId], { fileId: args.fileId, path: args.path ?? null, overwrite: true });
42
+ return JSON.stringify(await call("drive_pull_file", args, context), null, 2);
43
+ },
44
+ },
45
+ drive_file_status: {
46
+ description: "For files pulled with drive_pull_file, report whether the local copy has edits not saved to Drive and whether the file changed in Drive since the pull.",
47
+ args: driveFileStatusArgs.shape,
48
+ async execute(rawArgs, context) {
49
+ return JSON.stringify(await call("drive_file_status", driveFileStatusArgs.parse(rawArgs ?? {}), context), null, 2);
50
+ },
51
+ },
52
+ drive_push_file: {
53
+ description: "Save a pulled file back to Google Drive when the person asks. Asks the person first. Stored files are replaced in place as a new Drive version; Docs, Sheets and Slides are saved as a new Google file next to the original. Returns drive_conflict, and changes nothing, when someone changed the file in Drive since the pull: pull it again and reapply the edits, or save a copy.",
54
+ args: drivePushFileArgs.shape,
55
+ async execute(rawArgs, context) {
56
+ const args = drivePushFileArgs.parse(rawArgs ?? {});
57
+ await askPermission(context, "drive_push_file", [args.path], { path: args.path, mode: args.mode ?? "default", ...(args.name ? { name: args.name } : {}) });
58
+ return JSON.stringify(await call("drive_push_file", args, context), null, 2);
59
+ },
60
+ },
61
+ };
62
+ }
@@ -13785,6 +13785,20 @@ var brandAccentColorValues = [
13785
13785
  "violet",
13786
13786
  "yellow"
13787
13787
  ];
13788
+ var desktopAgentPermissionsSchema = exports_external.object({
13789
+ rules: exports_external.array(exports_external.object({
13790
+ action: exports_external.string().min(1).max(64),
13791
+ resource: exports_external.string().min(1).max(500),
13792
+ effect: exports_external.enum(["allow", "ask", "deny"]),
13793
+ source: exports_external.string().min(1).max(255)
13794
+ })).max(2000)
13795
+ }).meta({ ref: "DenDesktopAgentPermissions" });
13796
+ var desktopConfigDefaultModelSchema = exports_external.object({
13797
+ providerID: exports_external.string().min(1).max(128),
13798
+ modelID: exports_external.string().min(1).max(255),
13799
+ source: exports_external.enum(["team", "organization"]),
13800
+ teamName: exports_external.string().max(255).optional()
13801
+ }).meta({ ref: "DenDesktopConfigDefaultModel" });
13788
13802
  var desktopConfigSchema = desktopPolicyValueSchema.extend({
13789
13803
  execution: effectiveDesktopExecutionPolicySchema.optional(),
13790
13804
  allowedDesktopVersions: exports_external.array(exports_external.string().trim().min(1).max(32)).optional(),
@@ -13795,8 +13809,11 @@ var desktopConfigSchema = desktopPolicyValueSchema.extend({
13795
13809
  automationsEnabled: exports_external.boolean().optional(),
13796
13810
  dashboardEnabled: exports_external.boolean().optional(),
13797
13811
  connectEnabled: exports_external.boolean().optional(),
13812
+ liveProviderSync: exports_external.boolean().optional(),
13798
13813
  onboardingPrompts: onboardingPromptsSchema.optional(),
13799
- onboardingPromptDescriptions: onboardingPromptDescriptionsSchema.optional()
13814
+ onboardingPromptDescriptions: onboardingPromptDescriptionsSchema.optional(),
13815
+ agentPermissions: desktopAgentPermissionsSchema.optional(),
13816
+ defaultModel: desktopConfigDefaultModelSchema.optional()
13800
13817
  }).meta({ ref: "DenDesktopConfig" });
13801
13818
 
13802
13819
  // src/managed-policy-rules.ts