openpond 0.1.1 → 0.2.1

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 (225) hide show
  1. package/README.md +4 -4
  2. package/dist/cache.d.ts +7 -10
  3. package/dist/chunks/actions-command-QP3NMDK4.js +2 -0
  4. package/dist/chunks/app-layer-N7VFRVJ2.js +3 -0
  5. package/dist/chunks/app-server-runtime-OCLPUI7F.js +2 -0
  6. package/dist/chunks/apps-AMG75TI4.js +2 -0
  7. package/dist/chunks/chunk-22UARBPW.js +3 -0
  8. package/dist/chunks/chunk-3A7HZJNE.js +1 -0
  9. package/dist/chunks/chunk-3M53YXEI.js +2 -0
  10. package/dist/chunks/chunk-3NDRIQTI.js +2 -0
  11. package/dist/chunks/chunk-5BBVEWG3.js +2 -0
  12. package/dist/chunks/chunk-5O7ZVCMV.js +6 -0
  13. package/dist/chunks/chunk-6FA3GG5B.js +33 -0
  14. package/dist/chunks/chunk-6MI4KKWF.js +2 -0
  15. package/dist/chunks/chunk-BBG546O6.js +6 -0
  16. package/dist/chunks/chunk-BX4J2VDU.js +2 -0
  17. package/dist/chunks/chunk-BZMVB3GS.js +2 -0
  18. package/dist/chunks/chunk-C5LOZSVS.js +2 -0
  19. package/dist/chunks/chunk-CWQWV2T3.js +2 -0
  20. package/dist/chunks/chunk-DUA3QP6Y.js +19 -0
  21. package/dist/chunks/chunk-EAPFMACH.js +10 -0
  22. package/dist/chunks/chunk-ES2ISFJC.js +66 -0
  23. package/dist/chunks/chunk-F65NIZLM.js +2199 -0
  24. package/dist/chunks/chunk-FGJ5LFPL.js +5 -0
  25. package/dist/chunks/chunk-FTQLQJQV.js +2 -0
  26. package/dist/chunks/chunk-FY7OQ5RK.js +24 -0
  27. package/dist/chunks/chunk-FYCJSUFV.js +53 -0
  28. package/dist/chunks/chunk-GLUWATL5.js +2 -0
  29. package/dist/chunks/chunk-H7IWJN7L.js +17 -0
  30. package/dist/chunks/chunk-HZP5U2AA.js +3 -0
  31. package/dist/chunks/chunk-I5K74TOH.js +3 -0
  32. package/dist/chunks/chunk-IR3YJWPW.js +7 -0
  33. package/dist/chunks/chunk-KU7QOHFT.js +2872 -0
  34. package/dist/chunks/chunk-KV553EWX.js +16 -0
  35. package/dist/chunks/chunk-MGN6GLNZ.js +2 -0
  36. package/dist/chunks/chunk-OG5Q6NXK.js +28 -0
  37. package/dist/chunks/chunk-OGPHXXCD.js +1 -0
  38. package/dist/chunks/chunk-PI36UHRA.js +18 -0
  39. package/dist/chunks/chunk-RWSAGQTP.js +2 -0
  40. package/dist/chunks/chunk-SAE4OIPC.js +2 -0
  41. package/dist/chunks/chunk-SDO4FC4Q.js +2 -0
  42. package/dist/chunks/chunk-UKUVMXOW.js +12 -0
  43. package/dist/chunks/chunk-VCLCFK3O.js +36 -0
  44. package/dist/chunks/chunk-VYUMTRB3.js +5 -0
  45. package/dist/chunks/chunk-X37KMV27.js +1 -0
  46. package/dist/chunks/chunk-XDHAGACI.js +3 -0
  47. package/dist/chunks/chunk-XEOEKFG6.js +71 -0
  48. package/dist/chunks/chunk-ZF7TEGY5.js +5 -0
  49. package/dist/chunks/chunk-ZVOO7FKM.js +2 -0
  50. package/dist/chunks/cli-M2FG7SSI.js +2 -0
  51. package/dist/chunks/configuration-command-XBKBIZBO.js +2 -0
  52. package/dist/chunks/continual-D75WA7E7.js +7 -0
  53. package/dist/chunks/core-commands-LUZVWXQR.js +2 -0
  54. package/dist/chunks/database-X2CUV732.js +2 -0
  55. package/dist/chunks/desktop-test-KGC4JVJ7.js +3 -0
  56. package/dist/chunks/dist-NKLXFA37.js +2 -0
  57. package/dist/chunks/extension-NQ7N5LEY.js +5 -0
  58. package/dist/chunks/help-MWK66XZK.js +8 -0
  59. package/dist/chunks/module-ES6BEMUI-ZVL3F6NW.js +2 -0
  60. package/dist/chunks/module-asyncify-2EFITU5U-R7TVXNAE.js +2 -0
  61. package/dist/chunks/opchat-XJZA3QKZ.js +3 -0
  62. package/dist/chunks/organizations-UECDFEYE.js +2 -0
  63. package/dist/chunks/profile-KUMIZURM.js +3 -0
  64. package/dist/chunks/project-agent-NILMJHLV.js +2 -0
  65. package/dist/chunks/sandbox-command-QHH65OSE.js +2 -0
  66. package/dist/chunks/sandbox-template-N7I63PNU.js +10 -0
  67. package/dist/chunks/src-724HF43W.js +82 -0
  68. package/dist/chunks/src-VTKTTKQO.js +319 -0
  69. package/dist/chunks/taskset-PISBOILQ.js +2 -0
  70. package/dist/chunks/teams-bot-UV4RU53M.js +3 -0
  71. package/dist/chunks/training-2NDOWH5S.js +2 -0
  72. package/dist/chunks/workspaces-XXT4KUD3.js +2 -0
  73. package/dist/cli.js +3 -101
  74. package/dist/client.d.ts +1 -1
  75. package/dist/config.d.ts +1 -0
  76. package/dist/index.js +1 -26305
  77. package/dist/private-json-file.d.ts +1 -2
  78. package/dist/sandbox-template/manifest.js +1 -18380
  79. package/dist/web/assets/App-DxecRQUL.js +176 -0
  80. package/dist/web/assets/AppDialog-B65Eo3gp.js +1 -0
  81. package/dist/web/assets/AppTerminalPanel-B2EKQM7W.js +2 -0
  82. package/dist/web/assets/{AppsView-Ck_OzQWf.js → AppsView-BBoVe7s2.js} +1 -1
  83. package/dist/web/assets/{BrowserSidebar-CqciX8aL.js → BrowserSidebar-CSM1atSJ.js} +1 -1
  84. package/dist/web/assets/{CartesianChart-Y0lsL4vC.js → CartesianChart-CJKfXiEG.js} +1 -1
  85. package/dist/web/assets/{CollaborationTabs-BOb9PjvS.js → CollaborationTabs-BMZamWFC.js} +1 -1
  86. package/dist/web/assets/{CommandMenu-Co6JnmTu.js → CommandMenu-B3U1z2eo.js} +1 -1
  87. package/dist/web/assets/{CommunityView-BbTSeL7h.js → CommunityView-CTyRUcfy.js} +1 -1
  88. package/dist/web/assets/{ComposerCreateImproveStrip-BGzCWVFp.js → ComposerCreateImproveStrip-D7usvRtK.js} +1 -1
  89. package/dist/web/assets/GetStartedView-Ibu7oKWJ.js +1 -0
  90. package/dist/web/assets/HostedModelLearningReview-qnzIkT70.js +1 -0
  91. package/dist/web/assets/HostedModelLearningSettings--PKjpYsy.js +1 -0
  92. package/dist/web/assets/LabModelVersionDetailPage-s9uUN6fV.js +1 -0
  93. package/dist/web/assets/{LabSkillSidebar-C5oS6UmH.js → LabSkillSidebar-BKYseMiJ.js} +1 -1
  94. package/dist/web/assets/LabsRoute-C1FWCoYb.css +1 -0
  95. package/dist/web/assets/LabsRoute-DoRs0K6v.js +32 -0
  96. package/dist/web/assets/MainChatThread-DvuyMcMB.js +2 -0
  97. package/dist/web/assets/MainPane-BWwcxgHD.js +8 -0
  98. package/dist/web/assets/{MarkdownText-DqJarmTh.js → MarkdownText-D8XC5UT_.js} +1 -1
  99. package/dist/web/assets/{Messages-BaT7HOzB.js → Messages-e4A8JUjD.js} +6 -6
  100. package/dist/web/assets/{NativeSkillSidebar-DXp8snN5.js → NativeSkillSidebar-D2Joh8XB.js} +1 -1
  101. package/dist/web/assets/{NewExperienceSwitcher-CLHuGUN5.js → NewExperienceSwitcher-CzGebt2E.js} +1 -1
  102. package/dist/web/assets/{NewProjectDialog-CzpHCAaC.js → NewProjectDialog-CdMTSxUE.js} +1 -1
  103. package/dist/web/assets/{OutputsPage-DIzx-Ge6.js → OutputsPage-m7cSb8dW.js} +1 -1
  104. package/dist/web/assets/{ProjectsPage-DojwrhOy.js → ProjectsPage-C9mz8W1g.js} +1 -1
  105. package/dist/web/assets/RightChatPanelStack-B4LEqKEj.js +1 -0
  106. package/dist/web/assets/{RightSidebarHomePanel-DTzfuEX3.js → RightSidebarHomePanel-DOeUsH7h.js} +1 -1
  107. package/dist/web/assets/ScheduledWorkPage-UXZSSWgA.js +1 -0
  108. package/dist/web/assets/SettingsView-CAH0vreE.css +1 -0
  109. package/dist/web/assets/SettingsView-CQm1ai73.js +9 -0
  110. package/dist/web/assets/TeamChatView-C4haojB7.js +3 -0
  111. package/dist/web/assets/{TerminalOverlay-DnNVrCtu.js → TerminalOverlay-p2GZsuyQ.js} +3 -3
  112. package/dist/web/assets/{TrainingCreationPanel-CDwwyucO.js → TrainingCreationPanel-BYJSlO8X.js} +1 -1
  113. package/dist/web/assets/{TrainingDraftPanel-BijDnV_0.js → TrainingDraftPanel-DR5KlayH.js} +1 -1
  114. package/dist/web/assets/{UsageSettingsSection-Y5BFAu1p.js → UsageSettingsSection-BQToNXE4.js} +5 -5
  115. package/dist/web/assets/{WorkSidebarPanel-CkJlvZKm.js → WorkSidebarPanel--EeytWeg.js} +1 -1
  116. package/dist/web/assets/WorkspaceDiffPanel-BrovSYhn.js +14 -0
  117. package/dist/web/assets/{WorkspaceEnvironmentMenu-D8knAy1q.js → WorkspaceEnvironmentMenu-l-keRgvj.js} +3 -3
  118. package/dist/web/assets/{WorkspaceGitDialogs-_LHTrvh6.js → WorkspaceGitDialogs-aicWzaZu.js} +1 -1
  119. package/dist/web/assets/{WorkspaceMonacoEditor-B2B7OM_L.js → WorkspaceMonacoEditor-CO_E74jM.js} +36 -36
  120. package/dist/web/assets/{arrow-up-right-4nAzMtjW.js → arrow-up-right-rwPXNfVn.js} +1 -1
  121. package/dist/web/assets/chat-file-links-B3jDstSC.js +1 -0
  122. package/dist/web/assets/chevron-up-D089nvYQ.js +1 -0
  123. package/dist/web/assets/{clipboard-BzjUoZFo.js → clipboard-DwEExyU4.js} +1 -1
  124. package/dist/web/assets/{cloud-upload-CsrrwS-b.js → cloud-upload-D2he0-vQ.js} +1 -1
  125. package/dist/web/assets/{cssMode-CIbSSHKJ.js → cssMode-DS4k0NcI.js} +1 -1
  126. package/dist/web/assets/{folder-open-vRTuLzpS.js → folder-open-CAOLduKD.js} +1 -1
  127. package/dist/web/assets/{folder-plus-hyqwgUnx.js → folder-plus-D56MrxVT.js} +1 -1
  128. package/dist/web/assets/{git-commit-horizontal-CaxKfeYa.js → git-commit-horizontal-CeNM0oKJ.js} +1 -1
  129. package/dist/web/assets/{htmlMode-C3MGQGam.js → htmlMode-Xkni5erh.js} +1 -1
  130. package/dist/web/assets/{index-ByQIHpc9.css → index-BGMzUaup.css} +1 -1
  131. package/dist/web/assets/{index-Dvq7bpBG.js → index-KwyAyscP.js} +1 -1
  132. package/dist/web/assets/{info-aYWeE1Iw.js → info-CcrBaEE_.js} +1 -1
  133. package/dist/web/assets/{jsonMode-CpD6UkT7.js → jsonMode-C4YPbQB7.js} +1 -1
  134. package/dist/web/assets/{lspLanguageFeatures-DpcK8ZI6.js → lspLanguageFeatures-CF5oMTz6.js} +1 -1
  135. package/dist/web/assets/{minimize-2-DeYg7XqB.js → minimize-2-DzHQnInk.js} +1 -1
  136. package/dist/web/assets/{monaco.contribution-CrrdDQgP.js → monaco.contribution-0EN4mGCC.js} +2 -2
  137. package/dist/web/assets/{monaco.contribution-JWFq0HzV.js → monaco.contribution-B4qcTP0w.js} +2 -2
  138. package/dist/web/assets/{monaco.contribution-BDTM0ZJq.js → monaco.contribution-CJK_NrBm.js} +2 -2
  139. package/dist/web/assets/{monaco.contribution-C-_ekTxy.js → monaco.contribution-CkPGKNd-.js} +2 -2
  140. package/dist/web/assets/{play-BqgRTddV.js → play-p3-AMTPL.js} +1 -1
  141. package/dist/web/assets/{python-B67wope9.js → python-B0kpTxAZ.js} +1 -1
  142. package/dist/web/assets/{refresh-cw-DwMA_2On.js → refresh-cw-_jbTIzzr.js} +1 -1
  143. package/dist/web/assets/{save-B0BKh5oQ.js → save-Cy6hEotx.js} +1 -1
  144. package/dist/web/assets/{square-LY3oz82L.js → square-DKQkcrOH.js} +1 -1
  145. package/dist/web/assets/{toggleHighContrast-B2jka5B1.js → toggleHighContrast-Bnk1VVVq.js} +1 -1
  146. package/dist/web/assets/{tsMode-1MUwluYD.js → tsMode-BDrSVy7V.js} +1 -1
  147. package/dist/web/assets/{upload-bSKSkFVa.js → upload-COn0my_O.js} +1 -1
  148. package/dist/web/assets/{useLocalAgentSchedules--jnnM4Fz.js → useLocalAgentSchedules-iZNB4Oee.js} +1 -1
  149. package/dist/web/assets/{wifi-off-DA34iPmr.js → wifi-off-Cqt-ZLXY.js} +1 -1
  150. package/dist/web/assets/{workers-CczIcRcl.js → workers-hu0Ym93h.js} +1 -1
  151. package/dist/web/assets/{yaml-DwEGoHA9.js → yaml-D-JLDGL6.js} +1 -1
  152. package/dist/web/index.html +2 -2
  153. package/docs/command-reference.md +28 -2
  154. package/package.json +10 -7
  155. package/dist/chunks/actions-command-6N5XWMR6.js +0 -185
  156. package/dist/chunks/app-layer-XEYHFJHI.js +0 -214
  157. package/dist/chunks/app-server-runtime-FJM2EQPH.js +0 -21
  158. package/dist/chunks/apps-GSXUDK6V.js +0 -427
  159. package/dist/chunks/chunk-2JABRRNR.js +0 -183
  160. package/dist/chunks/chunk-47EIAYI7.js +0 -2162
  161. package/dist/chunks/chunk-4L3ZJS2T.js +0 -1207
  162. package/dist/chunks/chunk-5TKZBMQM.js +0 -731
  163. package/dist/chunks/chunk-6G6MDZLM.js +0 -14509
  164. package/dist/chunks/chunk-BVY5JYM6.js +0 -512
  165. package/dist/chunks/chunk-C5TKGE5Y.js +0 -1275
  166. package/dist/chunks/chunk-CNTM26OW.js +0 -602
  167. package/dist/chunks/chunk-D7BO5Y5J.js +0 -1531
  168. package/dist/chunks/chunk-DJL4TJYG.js +0 -70
  169. package/dist/chunks/chunk-DLQQIWN2.js +0 -648
  170. package/dist/chunks/chunk-DNXBJZAU.js +0 -630
  171. package/dist/chunks/chunk-EFET7LB7.js +0 -1331
  172. package/dist/chunks/chunk-FQS2QL5F.js +0 -14522
  173. package/dist/chunks/chunk-HFPUR4CQ.js +0 -669
  174. package/dist/chunks/chunk-J3YDKJFD.js +0 -88
  175. package/dist/chunks/chunk-J7PYGDRY.js +0 -634
  176. package/dist/chunks/chunk-JTHL5XJ2.js +0 -1838
  177. package/dist/chunks/chunk-KSRWKXRB.js +0 -12
  178. package/dist/chunks/chunk-KWDOAJJI.js +0 -238
  179. package/dist/chunks/chunk-MUMPWI4O.js +0 -92
  180. package/dist/chunks/chunk-N3TGCM7J.js +0 -1135
  181. package/dist/chunks/chunk-NTK22KJD.js +0 -10707
  182. package/dist/chunks/chunk-O6B6YCMI.js +0 -57688
  183. package/dist/chunks/chunk-R3C3MNSI.js +0 -140
  184. package/dist/chunks/chunk-SMNFI2FU.js +0 -113
  185. package/dist/chunks/chunk-UACZUFIA.js +0 -47
  186. package/dist/chunks/chunk-W5GKHH77.js +0 -168
  187. package/dist/chunks/chunk-WBAZFKC7.js +0 -1643
  188. package/dist/chunks/chunk-X7ZG4TSW.js +0 -3063
  189. package/dist/chunks/chunk-YVCYVDNP.js +0 -746
  190. package/dist/chunks/cli-6PFRZ2WV.js +0 -21
  191. package/dist/chunks/continual-FYDKLCO7.js +0 -803
  192. package/dist/chunks/core-commands-MAN3CSJQ.js +0 -48
  193. package/dist/chunks/desktop-test-OE5SST2W.js +0 -146
  194. package/dist/chunks/extension-J3CIEDP4.js +0 -10041
  195. package/dist/chunks/help-JNGJJFU5.js +0 -67
  196. package/dist/chunks/opchat-6HEQJFLL.js +0 -167
  197. package/dist/chunks/organizations-MWAPNOCK.js +0 -804
  198. package/dist/chunks/profile-P7HMONTZ.js +0 -1134
  199. package/dist/chunks/project-agent-2RAK7GAZ.js +0 -514
  200. package/dist/chunks/sandbox-command-G22CPFNK.js +0 -1659
  201. package/dist/chunks/sandbox-template-S4WRUWJ6.js +0 -1653
  202. package/dist/chunks/src-BKBZ7WLO.js +0 -3624
  203. package/dist/chunks/src-RTGN2O4H.js +0 -65745
  204. package/dist/chunks/taskset-BMI7KOWP.js +0 -66
  205. package/dist/chunks/teams-bot-5VBYEN7M.js +0 -144
  206. package/dist/chunks/training-UPVSGDTB.js +0 -17
  207. package/dist/chunks/workspaces-IJQPWX3H.js +0 -99
  208. package/dist/web/assets/App-BOkhmdHu.js +0 -173
  209. package/dist/web/assets/AppDialog-BCjKFUBn.js +0 -1
  210. package/dist/web/assets/AppTerminalPanel-DRU8GIfy.js +0 -2
  211. package/dist/web/assets/GetStartedView-jEogFjxP.js +0 -1
  212. package/dist/web/assets/LabModelVersionDetailPage-CrudId_1.js +0 -1
  213. package/dist/web/assets/LabsRoute-9v8qwEBc.js +0 -2
  214. package/dist/web/assets/LabsRoute-CGFgymTX.css +0 -1
  215. package/dist/web/assets/MainChatThread-VtMpAxlP.js +0 -2
  216. package/dist/web/assets/MainPane-BbknUzp3.js +0 -8
  217. package/dist/web/assets/RightChatPanelStack-CIE5bgmO.js +0 -1
  218. package/dist/web/assets/ScheduledWorkPage-DdbcQGSv.js +0 -1
  219. package/dist/web/assets/SettingsView-CC5GXaE1.css +0 -1
  220. package/dist/web/assets/SettingsView-QT_OLmDh.js +0 -6
  221. package/dist/web/assets/TeamChatView-C4-nG1tC.js +0 -3
  222. package/dist/web/assets/WorkspaceDiffPanel-CBgzmBk8.js +0 -14
  223. package/dist/web/assets/chat-file-links-Bned0MT7.js +0 -1
  224. package/dist/web/assets/chevron-up-DK7ejCfk.js +0 -1
  225. package/dist/web/assets/index-66-ohHD5.js +0 -1
@@ -1 +1 @@
1
- import{c as v,o as s}from"./App-BOkhmdHu.js";import{r as c}from"./index-Dvq7bpBG.js";const m=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],x=v("rotate-ccw",m),I=5e3;function C(t){const[S,n]=c.useState([]),[y,r]=c.useState(!1),[p,l]=c.useState(null),[o,w]=c.useState(()=>new Set);c.useEffect(()=>{if(!t){n([]),l(null),r(!1);return}const e=t;let a=!1;async function d(g){if(!a){g&&r(!0);try{const h=await s.localAgentSchedules(e);if(a)return;n(h.schedules),l(null)}catch(h){a||l(f(h))}finally{!a&&g&&r(!1)}}}d(!0);const u=window.setInterval(()=>{d(!1)},I);return()=>{a=!0,window.clearInterval(u)}},[t]);async function L(){if(t){r(!0);try{const e=await s.syncLocalAgentSchedules(t);n(e.schedules),l(null)}catch(e){l(f(e))}finally{r(!1)}}}async function A(e){if(!(!t||o.has(e.id))){i(e.id,!0);try{await s.runLocalAgentSchedule(t,e.id);const a=await s.localAgentSchedules(t);n(a.schedules),l(null)}catch(a){l(f(a))}finally{i(e.id,!1)}}}async function E(e){if(!(!t||o.has(e.id))){i(e.id,!0);try{await s.patchLocalAgentSchedule(t,e.id,{enabled:!e.enabled});const a=await s.localAgentSchedules(t);n(a.schedules),l(null)}catch(a){l(f(a))}finally{i(e.id,!1)}}}function i(e,a){w(d=>{const u=new Set(d);return a?u.add(e):u.delete(e),u})}return{error:p,loading:y,pendingScheduleIds:o,refresh:L,run:A,schedules:S,toggle:E}}function f(t){return t instanceof Error?t.message:String(t)}export{x as R,C as u};
1
+ import{c as v,o as s}from"./App-DxecRQUL.js";import{r as c}from"./index-KwyAyscP.js";const m=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],x=v("rotate-ccw",m),I=5e3;function C(t){const[S,n]=c.useState([]),[y,r]=c.useState(!1),[p,l]=c.useState(null),[o,w]=c.useState(()=>new Set);c.useEffect(()=>{if(!t){n([]),l(null),r(!1);return}const e=t;let a=!1;async function d(g){if(!a){g&&r(!0);try{const h=await s.localAgentSchedules(e);if(a)return;n(h.schedules),l(null)}catch(h){a||l(f(h))}finally{!a&&g&&r(!1)}}}d(!0);const u=window.setInterval(()=>{d(!1)},I);return()=>{a=!0,window.clearInterval(u)}},[t]);async function L(){if(t){r(!0);try{const e=await s.syncLocalAgentSchedules(t);n(e.schedules),l(null)}catch(e){l(f(e))}finally{r(!1)}}}async function A(e){if(!(!t||o.has(e.id))){i(e.id,!0);try{await s.runLocalAgentSchedule(t,e.id);const a=await s.localAgentSchedules(t);n(a.schedules),l(null)}catch(a){l(f(a))}finally{i(e.id,!1)}}}async function E(e){if(!(!t||o.has(e.id))){i(e.id,!0);try{await s.patchLocalAgentSchedule(t,e.id,{enabled:!e.enabled});const a=await s.localAgentSchedules(t);n(a.schedules),l(null)}catch(a){l(f(a))}finally{i(e.id,!1)}}}function i(e,a){w(d=>{const u=new Set(d);return a?u.add(e):u.delete(e),u})}return{error:p,loading:y,pendingScheduleIds:o,refresh:L,run:A,schedules:S,toggle:E}}function f(t){return t instanceof Error?t.message:String(t)}export{x as R,C as u};
@@ -1 +1 @@
1
- import{c as a}from"./App-BOkhmdHu.js";const e=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],y=a("bell",e);const t=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742",key:"178tsu"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05",key:"1hqiys"}]],c=a("bell-off",t);const o=[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]],k=a("scroll-text",o);const h=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],p=a("wifi-off",h);export{c as B,k as S,p as W,y as a};
1
+ import{c as a}from"./App-DxecRQUL.js";const e=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],y=a("bell",e);const t=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742",key:"178tsu"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05",key:"1hqiys"}]],c=a("bell-off",t);const o=[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]],k=a("scroll-text",o);const h=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],p=a("wifi-off",h);export{c as B,k as S,p as W,y as a};
@@ -1 +1 @@
1
- import{j7 as c}from"./WorkspaceMonacoEditor-B2B7OM_L.js";import"./toggleHighContrast-B2jka5B1.js";function a(e,o){const r=globalThis.MonacoEnvironment;if(r?.createTrustedTypesPolicy)try{return r.createTrustedTypesPolicy(e,o)}catch(t){console.error(t);return}try{return globalThis.trustedTypes?.createPolicy(e,o)}catch(t){console.error(t);return}}let n;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?n=globalThis.workerttPolicy:n=a("defaultWorkerFactory",{createScriptURL:e=>e});function l(e){const o=e.label,r=globalThis.MonacoEnvironment;if(r){if(typeof r.getWorker=="function")return r.getWorker("workerMain.js",o);if(typeof r.getWorkerUrl=="function"){const t=r.getWorkerUrl("workerMain.js",o);return new Worker(n?n.createScriptURL(t):t,{name:o,type:"module"})}}if(e.createWorker)return e.createWorker();throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function u(e){const o=Promise.resolve(l({label:e.label??"monaco-editor-worker",moduleId:e.moduleId,createWorker:e.createWorker})).then(r=>(r.postMessage("ignore"),r.postMessage(e.createData),r));return c.createWebWorker({worker:o,host:e.host,keepIdleModels:e.keepIdleModels})}export{u as c};
1
+ import{j7 as c}from"./WorkspaceMonacoEditor-CO_E74jM.js";import"./toggleHighContrast-Bnk1VVVq.js";function a(e,o){const r=globalThis.MonacoEnvironment;if(r?.createTrustedTypesPolicy)try{return r.createTrustedTypesPolicy(e,o)}catch(t){console.error(t);return}try{return globalThis.trustedTypes?.createPolicy(e,o)}catch(t){console.error(t);return}}let n;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?n=globalThis.workerttPolicy:n=a("defaultWorkerFactory",{createScriptURL:e=>e});function l(e){const o=e.label,r=globalThis.MonacoEnvironment;if(r){if(typeof r.getWorker=="function")return r.getWorker("workerMain.js",o);if(typeof r.getWorkerUrl=="function"){const t=r.getWorkerUrl("workerMain.js",o);return new Worker(n?n.createScriptURL(t):t,{name:o,type:"module"})}}if(e.createWorker)return e.createWorker();throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function u(e){const o=Promise.resolve(l({label:e.label??"monaco-editor-worker",moduleId:e.moduleId,createWorker:e.createWorker})).then(r=>(r.postMessage("ignore"),r.postMessage(e.createData),r));return c.createWebWorker({worker:o,host:e.host,keepIdleModels:e.keepIdleModels})}export{u as c};
@@ -1 +1 @@
1
- import{l as e}from"./WorkspaceMonacoEditor-B2B7OM_L.js";import"./toggleHighContrast-B2jka5B1.js";import"./index-Dvq7bpBG.js";const r={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},l={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};export{r as conf,l as language};
1
+ import{l as e}from"./WorkspaceMonacoEditor-CO_E74jM.js";import"./toggleHighContrast-Bnk1VVVq.js";import"./index-KwyAyscP.js";const r={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},l={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};export{r as conf,l as language};
@@ -7,8 +7,8 @@
7
7
  <link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png" />
8
8
  <link rel="apple-touch-icon" href="./openpond-icon.png" />
9
9
  <title>OpenPond App</title>
10
- <script type="module" crossorigin src="./assets/index-Dvq7bpBG.js"></script>
11
- <link rel="stylesheet" crossorigin href="./assets/index-ByQIHpc9.css">
10
+ <script type="module" crossorigin src="./assets/index-KwyAyscP.js"></script>
11
+ <link rel="stylesheet" crossorigin href="./assets/index-BGMzUaup.css">
12
12
  </head>
13
13
  <body>
14
14
  <div id="root"></div>
@@ -4,6 +4,30 @@
4
4
 
5
5
  Parsing, aliases, command help, and this reference use the same authoritative registry.
6
6
 
7
+ ## home
8
+
9
+ ```text
10
+ Usage:
11
+ openpond home [--home <directory>]
12
+ ```
13
+ ## config
14
+
15
+ ```text
16
+ Usage:
17
+ openpond config <get|set|unset|path|validate|schema|doctor|migrate|recover|restart-migration|revisions|replace|effective|trust|untrust|export|backup|restore|collect-orphans|clear-cache> [key] [value] [--home <directory>] [--json]
18
+
19
+ Options:
20
+ --dry-run
21
+ --expected-revision <string>
22
+ --file <string>
23
+ --key-path <json>
24
+ --project
25
+ --revision <string>
26
+ --source-app-home <string>
27
+ --source-browser-state <string>
28
+ --source-config <string>
29
+ --value <string>
30
+ ```
7
31
  ## help
8
32
 
9
33
  ```text
@@ -39,6 +63,7 @@ Options:
39
63
  --check-update
40
64
  --cwd <string>
41
65
  --help
66
+ --home <string>
42
67
  --json
43
68
  --profile <string>
44
69
  --sandbox-apiurl <string>
@@ -64,6 +89,7 @@ Options:
64
89
  --cwd <string>
65
90
  --force
66
91
  --help
92
+ --home <string>
67
93
  --json
68
94
  --path <string>
69
95
  --profile <string>
@@ -243,10 +269,10 @@ Options:
243
269
 
244
270
  ```text
245
271
  Usage:
246
- openpond app-server [--store-dir DIR]
272
+ openpond app-server [--home DIR]
247
273
 
248
274
  Options:
249
- --store-dir <string>
275
+ --home <string>
250
276
  ```
251
277
  ## serve
252
278
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openpond",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "openpondReleaseVersioned": true,
5
5
  "license": "MIT",
6
6
  "description": "OpenPond CLI and local harness",
@@ -25,8 +25,9 @@
25
25
  "lint": "pnpm run typecheck",
26
26
  "typecheck": "tsc --noEmit --project tsconfig.json",
27
27
  "test": "vitest run test",
28
- "build": "pnpm run clean && pnpm run docs:commands && pnpm run build:cli && pnpm run build:package && pnpm run build:local-assets && pnpm run build:types",
29
- "prepublishOnly": "pnpm run build"
28
+ "build": "pnpm run clean && pnpm run docs:commands && pnpm run build:bundles && pnpm run build:local-assets && pnpm run build:types",
29
+ "prepublishOnly": "pnpm run build",
30
+ "build:bundles": "tsx ../../scripts/build/bundle-cli.ts all"
30
31
  },
31
32
  "files": [
32
33
  "dist/**/*",
@@ -69,15 +70,16 @@
69
70
  "zod": "^4.1.13"
70
71
  },
71
72
  "devDependencies": {
72
- "@openpond/continual-support": "workspace:*",
73
73
  "@openpond/cloud": "workspace:*",
74
+ "@openpond/continual-support": "workspace:*",
74
75
  "@openpond/contracts": "workspace:*",
75
76
  "@openpond/local-server": "workspace:*",
77
+ "@openpond/persistence": "workspace:*",
76
78
  "@openpond/runtime": "workspace:*",
77
- "openpond-sdk": "workspace:*",
78
79
  "@openpond/terminal": "workspace:*",
79
80
  "@types/js-yaml": "^4.0.9",
80
- "@types/node": "24.13.3"
81
+ "@types/node": "24.13.3",
82
+ "openpond-sdk": "workspace:*"
81
83
  },
82
84
  "openpondBundledSourceDependencies": [
83
85
  "@openpond/continual-support",
@@ -86,6 +88,7 @@
86
88
  "@openpond/local-server",
87
89
  "@openpond/runtime",
88
90
  "openpond-sdk",
89
- "@openpond/terminal"
91
+ "@openpond/terminal",
92
+ "@openpond/persistence"
90
93
  ]
91
94
  }
@@ -1,185 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import {
3
- buildProjectActions,
4
- createLocalActionRunner,
5
- loadProjectActionConfiguration
6
- } from "./chunk-DLQQIWN2.js";
7
- import {
8
- createOpenPondClient
9
- } from "./chunk-4L3ZJS2T.js";
10
- import "./chunk-JTHL5XJ2.js";
11
- import "./chunk-FQS2QL5F.js";
12
- import {
13
- parseBooleanOption
14
- } from "./chunk-MUMPWI4O.js";
15
- import "./chunk-UACZUFIA.js";
16
-
17
- // src/cli/actions-command.ts
18
- import { promises as fs, watch } from "node:fs";
19
- import path from "node:path";
20
- import { execFile } from "node:child_process";
21
- import { promisify } from "node:util";
22
- var execFileAsync = promisify(execFile);
23
- async function runProjectActionsCommand(options, rest) {
24
- const subcommand = rest[0] ?? "check";
25
- const projectRoot = path.resolve(stringOption(options, "cwd") ?? process.cwd());
26
- const sourceDirectory = stringOption(options, "sourceDirectory");
27
- const outputDirectory = stringOption(options, "outputDirectory");
28
- const json = parseBooleanOption(options.json);
29
- if (subcommand === "check" || subcommand === "build") {
30
- const result = await buildProjectActions({ projectRoot, sourceDirectory, outputDirectory });
31
- if (json) {
32
- console.log(JSON.stringify({
33
- status: "passed",
34
- actionCount: result.registry.actions.length,
35
- registry: result.registry,
36
- manifest: result.manifest,
37
- outputDirectory: result.outputDirectory
38
- }, null, 2));
39
- return;
40
- }
41
- const verb = subcommand === "check" ? "Validated" : "Built";
42
- console.log(`${verb} ${result.registry.actions.length} Project Action${result.registry.actions.length === 1 ? "" : "s"}.`);
43
- console.log(`Registry: ${result.registryPath}`);
44
- console.log(`Bundle: ${result.bundlePath}`);
45
- return;
46
- }
47
- if (subcommand === "run") {
48
- const actionId = rest[1];
49
- if (!actionId) throw new Error("usage: openpond actions run <action-id> [--input JSON|--input-file PATH]");
50
- const runner = createLocalActionRunner({
51
- projectRoot,
52
- sourceDirectory,
53
- outputDirectory,
54
- build: "always"
55
- });
56
- const result = await runner.run({
57
- actionId,
58
- input: await actionInput(options, projectRoot),
59
- timeoutMs: integerOption(options, "timeoutMs")
60
- });
61
- console.log(JSON.stringify(result, null, 2));
62
- return;
63
- }
64
- if (subcommand === "dev") {
65
- const actionId = rest[1] ?? null;
66
- await runDev({ projectRoot, sourceDirectory, outputDirectory, actionId, options, json });
67
- return;
68
- }
69
- if (subcommand === "publish") {
70
- const projectId = requiredOption(options, "projectId");
71
- const teamId = requiredOption(options, "teamId");
72
- const apiKey = stringOption(options, "apiKey") ?? process.env.OPENPOND_API_KEY?.trim();
73
- if (!apiKey) throw new Error("OpenPond API key is required. Set OPENPOND_API_KEY or pass --api-key.");
74
- const build = await buildProjectActions({ projectRoot, sourceDirectory, outputDirectory });
75
- const sourceCommitSha = stringOption(options, "sourceCommitSha") ?? await gitValue(projectRoot, ["rev-parse", "HEAD"]);
76
- const sourceRef = stringOption(options, "sourceRef") ?? await gitValue(projectRoot, ["rev-parse", "--abbrev-ref", "HEAD"]);
77
- const release = await createOpenPondClient({
78
- apiKey,
79
- baseUrl: stringOption(options, "baseUrl") ?? process.env.OPENPOND_API_URL
80
- }).actions.publish({
81
- projectId,
82
- teamId,
83
- sourceRef,
84
- sourceCommitSha,
85
- build
86
- });
87
- console.log(json ? JSON.stringify({ release }, null, 2) : `Published Project Actions release ${release.id} from ${release.sourceCommitSha}.`);
88
- return;
89
- }
90
- throw new Error("usage: openpond actions <check|build|run|dev|publish> [action-id]");
91
- }
92
- async function runDev(input) {
93
- let running = false;
94
- let rerun = false;
95
- const execute = async () => {
96
- if (running) {
97
- rerun = true;
98
- return;
99
- }
100
- running = true;
101
- try {
102
- const runner = createLocalActionRunner({
103
- projectRoot: input.projectRoot,
104
- sourceDirectory: input.sourceDirectory,
105
- outputDirectory: input.outputDirectory,
106
- build: "always"
107
- });
108
- if (input.actionId) {
109
- const result = await runner.run({
110
- actionId: input.actionId,
111
- input: await actionInput(input.options, input.projectRoot),
112
- timeoutMs: integerOption(input.options, "timeoutMs")
113
- });
114
- console.log(JSON.stringify(result, null, 2));
115
- } else {
116
- const result = await runner.build();
117
- const message = {
118
- status: "ready",
119
- actionCount: result.registry.actions.length,
120
- bundleHash: result.manifest.bundleHash
121
- };
122
- console.log(input.json ? JSON.stringify(message) : `Ready with ${message.actionCount} Project Action${message.actionCount === 1 ? "" : "s"}.`);
123
- }
124
- } catch (error) {
125
- console.error(error instanceof Error ? error.message : String(error));
126
- } finally {
127
- running = false;
128
- if (rerun) {
129
- rerun = false;
130
- await execute();
131
- }
132
- }
133
- };
134
- await execute();
135
- const configuration = await loadProjectActionConfiguration(input.projectRoot);
136
- const sourceRoot = path.resolve(
137
- input.projectRoot,
138
- input.sourceDirectory ?? configuration.sourceDirectory ?? "openpond/actions"
139
- );
140
- console.log(`Watching ${sourceRoot}`);
141
- const watcher = watch(sourceRoot, { recursive: true }, () => {
142
- setTimeout(() => void execute(), 50);
143
- });
144
- await new Promise((resolve) => {
145
- const stop = () => {
146
- watcher.close();
147
- resolve();
148
- };
149
- process.once("SIGINT", stop);
150
- process.once("SIGTERM", stop);
151
- });
152
- }
153
- async function actionInput(options, projectRoot) {
154
- const inline = stringOption(options, "input");
155
- const inputFile = stringOption(options, "inputFile");
156
- if (inline && inputFile) throw new Error("Use either --input or --input-file, not both.");
157
- if (inline) return JSON.parse(inline);
158
- if (inputFile) return JSON.parse(await fs.readFile(path.resolve(projectRoot, inputFile), "utf8"));
159
- return {};
160
- }
161
- function stringOption(options, name) {
162
- const value = options[name];
163
- return typeof value === "string" && value.trim() ? value.trim() : void 0;
164
- }
165
- function requiredOption(options, name) {
166
- const value = stringOption(options, name);
167
- if (!value) throw new Error(`--${name.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)} is required.`);
168
- return value;
169
- }
170
- async function gitValue(projectRoot, args) {
171
- const { stdout } = await execFileAsync("git", args, { cwd: projectRoot });
172
- const value = stdout.trim();
173
- if (!value) throw new Error(`git ${args.join(" ")} returned no value.`);
174
- return value;
175
- }
176
- function integerOption(options, name) {
177
- const value = stringOption(options, name);
178
- if (value === void 0) return void 0;
179
- const parsed = Number(value);
180
- if (!Number.isInteger(parsed) || parsed <= 0) throw new Error(`--${name} must be a positive integer.`);
181
- return parsed;
182
- }
183
- export {
184
- runProjectActionsCommand
185
- };
@@ -1,214 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import {
3
- runProcessCommand
4
- } from "./chunk-HFPUR4CQ.js";
5
- import {
6
- CliUsageError
7
- } from "./chunk-2JABRRNR.js";
8
- import "./chunk-SMNFI2FU.js";
9
- import "./chunk-N3TGCM7J.js";
10
- import "./chunk-4L3ZJS2T.js";
11
- import "./chunk-JTHL5XJ2.js";
12
- import "./chunk-D7BO5Y5J.js";
13
- import "./chunk-KSRWKXRB.js";
14
- import "./chunk-FQS2QL5F.js";
15
- import "./chunk-MUMPWI4O.js";
16
- import "./chunk-UACZUFIA.js";
17
-
18
- // src/cli/app-layer.ts
19
- import { existsSync } from "node:fs";
20
- import { createRequire } from "node:module";
21
- import path from "node:path";
22
- import { fileURLToPath } from "node:url";
23
-
24
- // src/cli/build-mode.ts
25
- var IS_COMPILED_CLI = false;
26
-
27
- // src/cli/node-runtime.ts
28
- var OPENPOND_NODE_MAJOR = 24;
29
- var OPENPOND_NODE_MIN_MINOR = 18;
30
- var OPENPOND_NODE_MIN_VERSION = `${OPENPOND_NODE_MAJOR}.${OPENPOND_NODE_MIN_MINOR}.0`;
31
- function openPondTuiNodeRuntimeMessage(version = process.versions.node) {
32
- const match = /^(\d+)\.(\d+)\.(\d+)/.exec(version);
33
- const major = match ? Number(match[1]) : Number.NaN;
34
- const minor = match ? Number(match[2]) : Number.NaN;
35
- if (major === OPENPOND_NODE_MAJOR && minor >= OPENPOND_NODE_MIN_MINOR) return null;
36
- return [
37
- `OpenPond TUI requires Node.js ${OPENPOND_NODE_MIN_VERSION} or newer in the Node ${OPENPOND_NODE_MAJOR} release line; detected Node.js ${version}.`,
38
- `Switch Node versions and retry (with nvm: \`nvm install ${OPENPOND_NODE_MIN_VERSION} && nvm use ${OPENPOND_NODE_MIN_VERSION}\`).`
39
- ].join("\n");
40
- }
41
-
42
- // src/cli/app-layer.ts
43
- var __dirname = path.dirname(fileURLToPath(import.meta.url));
44
- var OpenPondChildProcessExitError = class extends Error {
45
- constructor(message, exitCode) {
46
- super(message);
47
- this.exitCode = exitCode;
48
- this.name = "OpenPondChildProcessExitError";
49
- }
50
- exitCode;
51
- };
52
- async function runOpenPondServerCommand(mode, options, rest) {
53
- const server = resolveAppEntrypoint(
54
- mode === "app-server" ? "app-server" : "server"
55
- );
56
- const args = [...server.args, mode, ...forwardedOptions(options), ...rest];
57
- if (mode === "web") {
58
- args.push(options.noOpen === true || options.noOpen === "true" ? "--print-access-url" : "--open-browser");
59
- }
60
- const webRoot = mode === "web" && typeof options.webRoot !== "string" ? packagedWebRoot() : null;
61
- if (webRoot) args.push("--web-root", webRoot);
62
- await runChild(
63
- server.runner,
64
- args,
65
- mode === "app-server" ? process.cwd() : server.cwd
66
- );
67
- }
68
- async function runOpenPondTerminalCommand(options, rest) {
69
- validateTerminalForwardingOptions(options);
70
- const runtimeMessage = openPondTuiNodeRuntimeMessage();
71
- if (runtimeMessage) throw new CliUsageError(runtimeMessage);
72
- const terminal = resolveAppEntrypoint("terminal");
73
- const server = resolveAppEntrypoint("server");
74
- const args = [...terminal.args, "chat", ...forwardedOptions(normalizeTerminalPaths(options)), ...rest];
75
- await runChild(terminal.runner, args, process.cwd(), {
76
- OPENPOND_SERVER_RUNNER: server.runner,
77
- OPENPOND_SERVER_ARGS: JSON.stringify(server.args),
78
- OPENPOND_SERVER_CWD: server.cwd
79
- });
80
- }
81
- function findWorkspaceRoot() {
82
- if (process.env.OPENPOND_FORCE_EMBEDDED_COMPANIONS === "1") return null;
83
- const candidates = [
84
- path.resolve(__dirname, "../../../.."),
85
- path.resolve(__dirname, "../../.."),
86
- process.cwd()
87
- ];
88
- for (const candidate of candidates) {
89
- if (existsSync(path.join(candidate, "apps", "server")) && existsSync(path.join(candidate, "apps", "terminal"))) {
90
- return candidate;
91
- }
92
- }
93
- return null;
94
- }
95
- function resolveAppEntrypoint(app) {
96
- const workspaceRoot = findWorkspaceRoot();
97
- if (workspaceRoot) {
98
- const source = app === "app-server" ? path.join(
99
- workspaceRoot,
100
- "apps",
101
- "server",
102
- "src",
103
- "app-server-entry.ts"
104
- ) : path.join(workspaceRoot, "apps", app, "src", "index.ts");
105
- if (existsSync(source)) {
106
- const workspaceRequire = createRequire(path.join(workspaceRoot, "package.json"));
107
- return {
108
- runner: process.execPath,
109
- args: [workspaceRequire.resolve("tsx/cli"), source],
110
- cwd: workspaceRoot
111
- };
112
- }
113
- const built = app === "app-server" ? path.join(
114
- workspaceRoot,
115
- "apps",
116
- "server",
117
- "dist",
118
- "app-server-entry.js"
119
- ) : path.join(workspaceRoot, "apps", app, "dist", "index.js");
120
- if (existsSync(built)) {
121
- return { runner: process.execPath, args: [built], cwd: workspaceRoot };
122
- }
123
- }
124
- const installedCli = installedCliEntrypoint();
125
- const embeddedMode = app === "app-server" ? "__app-server" : app === "server" ? "__server" : "__terminal";
126
- if (installedCli) {
127
- return {
128
- runner: process.execPath,
129
- args: [installedCli, embeddedMode],
130
- cwd: path.dirname(path.dirname(installedCli))
131
- };
132
- }
133
- if (isCompiledExecutable()) return { runner: process.execPath, args: [embeddedMode], cwd: process.cwd() };
134
- throw new Error(`Could not find the installed OpenPond ${app} companion.`);
135
- }
136
- function installedCliEntrypoint() {
137
- for (const candidate of [
138
- path.resolve(__dirname, "../cli.js"),
139
- path.resolve(__dirname, "../../dist/cli.js")
140
- ]) {
141
- if (existsSync(candidate)) return candidate;
142
- }
143
- return null;
144
- }
145
- function packagedWebRoot() {
146
- if (IS_COMPILED_CLI) {
147
- const candidate2 = path.join(path.dirname(process.execPath), "web");
148
- return existsSync(path.join(candidate2, "index.html")) ? candidate2 : null;
149
- }
150
- const installedCli = installedCliEntrypoint();
151
- if (!installedCli) return null;
152
- const candidate = path.join(path.dirname(installedCli), "web");
153
- return existsSync(path.join(candidate, "index.html")) ? candidate : null;
154
- }
155
- function isCompiledExecutable() {
156
- if (IS_COMPILED_CLI) return true;
157
- const argvEntry = process.argv[1];
158
- return Boolean(argvEntry && path.resolve(argvEntry) === path.resolve(process.execPath));
159
- }
160
- function forwardedOptions(options) {
161
- const ignored = /* @__PURE__ */ new Set(["account", "handle", "baseUrl", "noOpen", "tui"]);
162
- const args = [];
163
- for (const [key, value] of Object.entries(options)) {
164
- if (ignored.has(key)) continue;
165
- const flag = `--${key.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`)}`;
166
- if (value === true || value === "true") {
167
- args.push(flag);
168
- } else if (value === false || value === "false") {
169
- continue;
170
- } else {
171
- args.push(flag, value);
172
- }
173
- }
174
- return args;
175
- }
176
- function normalizeTerminalPaths(options) {
177
- const callerCwd = process.cwd();
178
- const next = { ...options };
179
- if (typeof options.cwd === "string" && options.cwd.trim().length > 0) {
180
- next.cwd = path.resolve(callerCwd, options.cwd);
181
- }
182
- if (typeof options.messageFile === "string" && options.messageFile.trim().length > 0) {
183
- next.messageFile = path.resolve(callerCwd, options.messageFile);
184
- }
185
- return next;
186
- }
187
- function validateTerminalForwardingOptions(options) {
188
- if (typeof options.approvalPolicy === "string" && !["on-request", "never", "on-failure", "untrusted"].includes(options.approvalPolicy)) {
189
- throw new CliUsageError("approval-policy must be on-request, never, on-failure, or untrusted");
190
- }
191
- if (typeof options.sandbox === "string" && !["read-only", "workspace-write", "danger-full-access"].includes(options.sandbox)) {
192
- throw new CliUsageError("sandbox must be read-only, workspace-write, or danger-full-access");
193
- }
194
- }
195
- async function runChild(command, args, cwd, env) {
196
- const result = await runProcessCommand(command, args, {
197
- cwd,
198
- // Keep embedded companions in the CLI's process group so an outer package
199
- // runner can stop the complete installed CLI tree with one signal.
200
- detached: false,
201
- env,
202
- inherit: true,
203
- timeoutMs: 0
204
- });
205
- if (result.code !== 0 || result.signal) {
206
- const detail = result.signal ? `signal ${result.signal}` : `code ${result.code ?? "unknown"}`;
207
- throw new OpenPondChildProcessExitError(`${path.basename(command)} exited with ${detail}`, result.code ?? 1);
208
- }
209
- }
210
- export {
211
- OpenPondChildProcessExitError,
212
- runOpenPondServerCommand,
213
- runOpenPondTerminalCommand
214
- };
@@ -1,21 +0,0 @@
1
- import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
- import {
3
- APP_SERVER_COMPOSITION,
4
- createOpenPondAppServer
5
- } from "./chunk-O6B6YCMI.js";
6
- import "./chunk-C5TKGE5Y.js";
7
- import "./chunk-5TKZBMQM.js";
8
- import "./chunk-DJL4TJYG.js";
9
- import "./chunk-EFET7LB7.js";
10
- import "./chunk-6G6MDZLM.js";
11
- import "./chunk-DLQQIWN2.js";
12
- import "./chunk-NTK22KJD.js";
13
- import "./chunk-R3C3MNSI.js";
14
- import "./chunk-X7ZG4TSW.js";
15
- import "./chunk-JTHL5XJ2.js";
16
- import "./chunk-FQS2QL5F.js";
17
- import "./chunk-UACZUFIA.js";
18
- export {
19
- APP_SERVER_COMPOSITION,
20
- createOpenPondAppServer
21
- };