@chibitek/chibi 0.1.170 → 0.1.172

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 (76) hide show
  1. package/dist/assets/{abnfDiagram-O67JEVCF-Dwjw0xC0.js → abnfDiagram-O67JEVCF-CGoW52MW.js} +1 -1
  2. package/dist/assets/{arc-B__BIHzb.js → arc-DEkKLw4F.js} +1 -1
  3. package/dist/assets/{architectureDiagram-NJMV4G6O-DQy7n3Ga.js → architectureDiagram-NJMV4G6O-Cyi6MYs6.js} +1 -1
  4. package/dist/assets/{blockDiagram-BEXU5L5S-moFo2nSA.js → blockDiagram-BEXU5L5S-CddA0wa_.js} +1 -1
  5. package/dist/assets/{c4Diagram-YGBWAQC7-C-dF8UVl.js → c4Diagram-YGBWAQC7-Dg8q9n90.js} +1 -1
  6. package/dist/assets/channel-Dda8O6gd.js +1 -0
  7. package/dist/assets/{chunk-2Q5K7J3B-DnF0mxAV.js → chunk-2Q5K7J3B-BSMub34c.js} +1 -1
  8. package/dist/assets/{chunk-3FUC2YCW-Dp8Dsifv.js → chunk-3FUC2YCW--Xc7Up5y.js} +2 -2
  9. package/dist/assets/{chunk-5VM5RSS4-D8fmZ4d8.js → chunk-5VM5RSS4-B9Ae4f30.js} +1 -1
  10. package/dist/assets/{chunk-GTNCS2PH-DNH2HZNQ.js → chunk-GTNCS2PH-Dh1To9G3.js} +1 -1
  11. package/dist/assets/{chunk-GWA4HPMP-BvL6j7pQ.js → chunk-GWA4HPMP-C_5eiV2n.js} +1 -1
  12. package/dist/assets/{chunk-JWPE2WC7-Co0gUA5M.js → chunk-JWPE2WC7-5wQuPsks.js} +1 -1
  13. package/dist/assets/{chunk-NETBCI7D-Deu9tpCF.js → chunk-NETBCI7D-BGXS05ur.js} +1 -1
  14. package/dist/assets/{chunk-WEXAMYUT-DKy8jAU5.js → chunk-WEXAMYUT-ClIMhmD5.js} +1 -1
  15. package/dist/assets/{chunk-XXDRQBXY-DQhvP8zg.js → chunk-XXDRQBXY-CcKs11-L.js} +1 -1
  16. package/dist/assets/{classDiagram-v2-NBCMYWYE-mhv3hMMV.js → classDiagram-v2-NBCMYWYE-BCiLckGU.js} +1 -1
  17. package/dist/assets/{cose-bilkent-JH36ORCC-CR1nOQOe.js → cose-bilkent-JH36ORCC-JyAqT-ND.js} +1 -1
  18. package/dist/assets/{cynefin-OW5HDTMX-Ddgkhxgt.js → cynefin-OW5HDTMX-BznovZj0.js} +1 -1
  19. package/dist/assets/{cynefinDiagram-VND7K2PF-4KbkrNhB.js → cynefinDiagram-VND7K2PF-BDRrTIEB.js} +1 -1
  20. package/dist/assets/{dagre-6A5THRUB-DNxtjbvT.js → dagre-6A5THRUB-BbWguhLj.js} +1 -1
  21. package/dist/assets/{diagram-22UHCM2B-BRpvnOWX.js → diagram-22UHCM2B-BMk1KTBr.js} +1 -1
  22. package/dist/assets/{diagram-3UASUU5V-DsQVnKUb.js → diagram-3UASUU5V-ChnEP2in.js} +1 -1
  23. package/dist/assets/{diagram-ATOU4E4O-BRZ5455_.js → diagram-ATOU4E4O-C78imnTV.js} +1 -1
  24. package/dist/assets/{diagram-CDSNMT55-CidrDKp0.js → diagram-CDSNMT55-Dekx02f_.js} +1 -1
  25. package/dist/assets/{diagram-MLGK6HIB-1hkZ8SsK.js → diagram-MLGK6HIB-D2__fPwe.js} +1 -1
  26. package/dist/assets/{diagram-MPIPVDR6-D1dWGFqn.js → diagram-MPIPVDR6-C9l7MZm7.js} +1 -1
  27. package/dist/assets/{ebnfDiagram-ZINNZB2B-DGjfEPY5.js → ebnfDiagram-ZINNZB2B-D4x0h3XT.js} +1 -1
  28. package/dist/assets/{elk-276RUBZZ-C5nvtTy7.js → elk-276RUBZZ-twChz5io.js} +1 -1
  29. package/dist/assets/{erDiagram-OPXOYQCR-CC0QBE1A.js → erDiagram-OPXOYQCR-BXEKWWMq.js} +1 -1
  30. package/dist/assets/{flowDiagram-KWPJA3E3-BthbP_HO.js → flowDiagram-KWPJA3E3-Ct-XrJMr.js} +1 -1
  31. package/dist/assets/{ganttDiagram-FUAMR5RP-BQ2wLSEI.js → ganttDiagram-FUAMR5RP-Bn92lxCs.js} +1 -1
  32. package/dist/assets/{gitGraphDiagram-X574FWY7-lTR8tNlq.js → gitGraphDiagram-X574FWY7-Dvfjo7cn.js} +1 -1
  33. package/dist/assets/{index-AWsWxgoq.js → index-CarzpTfN.js} +1 -1
  34. package/dist/assets/{index-VagspC1z.js → index-DvneZE6Z.js} +76 -73
  35. package/dist/assets/{infoDiagram-VRGFBTTK-BgI9ZuT_.js → infoDiagram-VRGFBTTK-MJ14OyNX.js} +1 -1
  36. package/dist/assets/{ishikawaDiagram-OU5B5YK6-qPe6Rhk2.js → ishikawaDiagram-OU5B5YK6-nf9xhTNX.js} +1 -1
  37. package/dist/assets/{journeyDiagram-ZHPQQLJL-CpbadZuP.js → journeyDiagram-ZHPQQLJL-DqfK6X2e.js} +1 -1
  38. package/dist/assets/{kanban-definition-PNTS6WVX-D9kCb3-t.js → kanban-definition-PNTS6WVX-CjUR1QYT.js} +1 -1
  39. package/dist/assets/{linear-CdW4LT3g.js → linear-dPqGsZwL.js} +1 -1
  40. package/dist/assets/{mermaid.core-BbPWTT56.js → mermaid.core-zL0DLPAI.js} +5 -5
  41. package/dist/assets/{mindmap-definition-NLK3R4M7-BtOaXxvb.js → mindmap-definition-NLK3R4M7-C1-Jqg3_.js} +1 -1
  42. package/dist/assets/{pegDiagram-GJSIUBJH-BtcTITAK.js → pegDiagram-GJSIUBJH-CFlvuAHC.js} +1 -1
  43. package/dist/assets/{pieDiagram-5QR66LMP-Ch_--zjt.js → pieDiagram-5QR66LMP-BvyT0IgF.js} +1 -1
  44. package/dist/assets/{quadrantDiagram-O4NWA36T-Di8ygRal.js → quadrantDiagram-O4NWA36T-bg7JeR2c.js} +1 -1
  45. package/dist/assets/{railroadDiagram-XR7U4H2S-DxgesAmb.js → railroadDiagram-XR7U4H2S-dF2Nqim8.js} +1 -1
  46. package/dist/assets/{requirementDiagram-PLB6GJNP-DjH-jdCr.js → requirementDiagram-PLB6GJNP-CwVu_Or6.js} +1 -1
  47. package/dist/assets/{sankeyDiagram-IPEJSGJF-ClNLceSc.js → sankeyDiagram-IPEJSGJF-wBC3-mRy.js} +1 -1
  48. package/dist/assets/{sequenceDiagram-PO4LG4MO-Cip_EmtV.js → sequenceDiagram-PO4LG4MO-Bs9lHMf-.js} +1 -1
  49. package/dist/assets/{sizeCapture-INFHLROL-BzW2hkq8.js → sizeCapture-INFHLROL-d6YiGOIQ.js} +1 -1
  50. package/dist/assets/{stateDiagram-v2-GCMORJYK-CwHu7P19.js → stateDiagram-v2-GCMORJYK--f6dscuE.js} +1 -1
  51. package/dist/assets/{swimlanes-2SLR337P-DO9E9HUK.js → swimlanes-2SLR337P-CQpzBoAc.js} +1 -1
  52. package/dist/assets/swimlanesDiagram-TC7HE7FX-C1ko4o6t.js +8 -0
  53. package/dist/assets/{timeline-definition-EJHVYXUP-D2_E-i9h.js → timeline-definition-EJHVYXUP-DpoyUyqt.js} +1 -1
  54. package/dist/assets/{usecaseDiagram-POWQR4AR-oKBQ1FAG.js → usecaseDiagram-POWQR4AR-Dg7mR3GW.js} +1 -1
  55. package/dist/assets/{vennDiagram-UO4OBE2U-HEdQsC7L.js → vennDiagram-UO4OBE2U-CoEfTL7k.js} +1 -1
  56. package/dist/assets/{wardleyDiagram-VNRHLVJA-mNpRO8rd.js → wardleyDiagram-VNRHLVJA-24tIY01C.js} +1 -1
  57. package/dist/assets/{xychartDiagram-PMCCYNJV-uURjTK1X.js → xychartDiagram-PMCCYNJV-CsoqIRqn.js} +1 -1
  58. package/dist/handbook/atomic-handbook.html +1 -1
  59. package/dist/index.html +1 -1
  60. package/dist-server/companion/src/routes.js +36 -1
  61. package/dist-server/index.js +37509 -37213
  62. package/dist-server/openmausbot.js +6 -5
  63. package/dist-server/pair-cli.js +6 -5
  64. package/dist-server/server/drivers/acp/custom.js +3 -0
  65. package/dist-server/server/index.js +19 -118
  66. package/dist-server/server/message-file.js +28 -11
  67. package/dist-server/server/remote-desktop.js +142 -0
  68. package/dist-server/server/routes/message-file.js +115 -0
  69. package/dist-server/server/shared-deliverables.js +109 -0
  70. package/dist-server/server/skill-learn.js +4 -0
  71. package/dist-server/server/subscription-bots.js +3 -2
  72. package/dist-server/shared/provider-accounts.js +5 -5
  73. package/dist-server/shared/skill-command.js +16 -0
  74. package/package.json +1 -1
  75. package/dist/assets/channel-BQM13l0i.js +0 -1
  76. package/dist/assets/swimlanesDiagram-TC7HE7FX-UC0GNJzN.js +0 -8
@@ -33,7 +33,7 @@ export const MESSAGE_FILE_ROUTE = {
33
33
  };
34
34
  export const CLOUD_DESKTOP_CONTROL_ROUTE = {
35
35
  method: "POST",
36
- path: /^\/api\/bots\/[\w-]+\/computer\/(?:control|screenshot|viewer-close)$/,
36
+ path: /^\/api\/bots\/[\w-]+\/computer\/(?:control|screenshot|viewer-close|remote-frame|remote-input)$/,
37
37
  };
38
38
  export function isCloudDesktopJoin(method, path) {
39
39
  return method === CLOUD_DESKTOP_JOIN_ROUTE.method && CLOUD_DESKTOP_JOIN_ROUTE.path.test(path);
@@ -41,6 +41,28 @@ export function isCloudDesktopJoin(method, path) {
41
41
  export function isMessageFileDownload(method, path) {
42
42
  return method === MESSAGE_FILE_ROUTE.method && MESSAGE_FILE_ROUTE.path.test(path);
43
43
  }
44
+ /** The desktop's broad bot and room edits. A phone reaches the harness as
45
+ * the owner, so the harness's own display-fields-only filter for clients
46
+ * never runs; the proxy opens these to the pin toggle alone by checking the
47
+ * body itself (isPinOnlyBody) and forwarding exactly the bytes it checked. */
48
+ export const PIN_ONLY_ROUTE = {
49
+ method: "PATCH",
50
+ path: /^\/api\/(?:bots|groups)\/[\w-]+$/,
51
+ };
52
+ export function isPinOnlyRoute(method, path) {
53
+ return method === PIN_ONLY_ROUTE.method && PIN_ONLY_ROUTE.path.test(path);
54
+ }
55
+ /** `{"pinned": true|false}` and nothing else. */
56
+ export function isPinOnlyBody(raw) {
57
+ try {
58
+ const body = JSON.parse(raw.toString("utf8"));
59
+ return Boolean(body) && typeof body === "object" && !Array.isArray(body)
60
+ && Object.keys(body).length === 1 && typeof body.pinned === "boolean";
61
+ }
62
+ catch {
63
+ return false;
64
+ }
65
+ }
44
66
  export function isCloudDesktopAccess(method, path) {
45
67
  return isCloudDesktopJoin(method, path)
46
68
  || (method === CLOUD_DESKTOP_CONTROL_ROUTE.method && CLOUD_DESKTOP_CONTROL_ROUTE.path.test(path));
@@ -75,6 +97,8 @@ const ALLOWED = [
75
97
  // Pinned-row reorder: hands the viewer's own pin stamps back out in a new
76
98
  // order (server/pin-order.ts); it cannot pin, unpin or reach hidden bots.
77
99
  { method: "PUT", path: /^\/api\/pins\/order$/ },
100
+ // Pin or unpin one bot or room; the proxy refuses any other field.
101
+ PIN_ONLY_ROUTE,
78
102
  { method: "POST", path: /^\/api\/bots\/[\w-]+\/messages$/ },
79
103
  { method: "PATCH", path: /^\/api\/bots\/[\w-]+\/cards\/[\w-]+$/ },
80
104
  { method: "POST", path: /^\/api\/bots\/[\w-]+\/respond$/ },
@@ -110,6 +134,14 @@ const ALLOWED = [
110
134
  // grading; the choice itself goes through the task PATCH above.
111
135
  { method: "GET", path: /^\/api\/bots\/[\w-]+\/model-classes$/ },
112
136
  { method: "GET", path: /^\/api\/model-levels$/ },
137
+ // Work modes (Ask, Auto edits, God Mode, Plan). The harness answers only an
138
+ // Administrator's paired bearer session (pairedModeAuthority) and makes
139
+ // every mode above Ask confirm a one-time nonce, so the gateway only opens
140
+ // the door.
141
+ { method: "GET", path: /^\/api\/bots\/[\w-]+\/work-mode$/ },
142
+ { method: "POST", path: /^\/api\/bots\/[\w-]+\/work-mode$/ },
143
+ { method: "GET", path: /^\/api\/work-modes$/ },
144
+ { method: "PUT", path: /^\/api\/work-modes$/ },
113
145
  // "Make this the main chat", from iPhone builds that open a bot on its
114
146
  // main chat rather than the conversation used most recently.
115
147
  { method: "PATCH", path: /^\/api\/bots\/[\w-]+\/main-thread$/ },
@@ -185,6 +217,9 @@ const ALLOWED = [
185
217
  // on/off only. The full server list stays on the computer, since a local
186
218
  // server's arguments can carry anything.
187
219
  { method: "GET", path: /^\/api\/mcp\/defaults$/ },
220
+ // A marketplace connect card. The harness adds only Atomic's featured,
221
+ // vendor-run servers, threat-scans them and saves them switched off.
222
+ { method: "POST", path: /^\/api\/mcp\/registry\/add$/ },
188
223
  ];
189
224
  /** Route families worth naming in the refusal.
190
225
  *