openpond 0.0.60 → 0.0.62

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 (134) hide show
  1. package/dist/chunks/{actions-command-BNVIILSL.js → actions-command-DZ6D7JTO.js} +2 -2
  2. package/dist/chunks/{app-layer-RNQXXM6L.js → app-layer-MSLVVYLM.js} +5 -5
  3. package/dist/chunks/{app-server-runtime-7LGK37P6.js → app-server-runtime-BRG7A5VD.js} +8 -8
  4. package/dist/chunks/{apps-LV3CSMLT.js → apps-6PAXKTB5.js} +5 -5
  5. package/dist/chunks/{chunk-XFZYNYRI.js → chunk-4NHAH3MT.js} +5979 -3817
  6. package/dist/chunks/{chunk-7QLVLGDM.js → chunk-64LYEFLR.js} +1 -1
  7. package/dist/chunks/{chunk-AHILPQXV.js → chunk-6JT34APP.js} +3 -3
  8. package/dist/chunks/{chunk-LMQ4MPQI.js → chunk-BFAL2CV3.js} +51 -57
  9. package/dist/chunks/{chunk-TOCZQEPW.js → chunk-FYB6ELFM.js} +1 -1
  10. package/dist/chunks/{chunk-RC3N77IV.js → chunk-GMX47RLP.js} +35 -33
  11. package/dist/chunks/{chunk-VG4H4TQG.js → chunk-IY2AW5F3.js} +1768 -57
  12. package/dist/chunks/{chunk-FHP7OMEI.js → chunk-J2REM7LE.js} +1 -1
  13. package/dist/chunks/{chunk-DXSHQ6TO.js → chunk-JGOP4GCK.js} +16 -5
  14. package/dist/chunks/{chunk-SKUS4NPW.js → chunk-K4JEWEJQ.js} +154 -5
  15. package/dist/chunks/{chunk-2J3LG4U7.js → chunk-KMBJLBQH.js} +2 -2
  16. package/dist/chunks/{chunk-LDRWEAOB.js → chunk-MBF44RYK.js} +1 -1
  17. package/dist/chunks/{chunk-NFNEENNR.js → chunk-OYWTQABY.js} +1 -1
  18. package/dist/chunks/{chunk-I23UKEYS.js → chunk-PLDCQVNW.js} +115 -18
  19. package/dist/chunks/{chunk-PVGJXCAK.js → chunk-T4FMK5GN.js} +54 -52
  20. package/dist/chunks/{chunk-63N6442Q.js → chunk-T55IL3GI.js} +1 -1
  21. package/dist/chunks/{cli-DBZ7S6ZF.js → cli-L25X2EZL.js} +7 -7
  22. package/dist/chunks/{core-commands-H2UC3LHG.js → core-commands-STKFZZVR.js} +6 -6
  23. package/dist/chunks/{desktop-test-TV64EY5A.js → desktop-test-ACKJN4UV.js} +5 -5
  24. package/dist/chunks/{extension-XMWCG6YG.js → extension-MVWXKSAD.js} +16 -51
  25. package/dist/chunks/{help-NEYFMHWQ.js → help-4MQ4EOIS.js} +1 -1
  26. package/dist/chunks/{opchat-ZL5JJQ5L.js → opchat-DUIZT4G6.js} +5 -5
  27. package/dist/chunks/{organizations-4IEC35QB.js → organizations-ATM4CZII.js} +7 -7
  28. package/dist/chunks/{profile-EVASCDIN.js → profile-5H3GF252.js} +12 -7
  29. package/dist/chunks/{project-agent-DMN64RZJ.js → project-agent-RSKSO5GT.js} +27 -7
  30. package/dist/chunks/{sandbox-command-WKGVO32R.js → sandbox-command-MTYSZR6P.js} +6 -6
  31. package/dist/chunks/{sandbox-template-BJUS4KJM.js → sandbox-template-RZ5AJ4KB.js} +7 -7
  32. package/dist/chunks/{src-KLQEJ6RO.js → src-PW337SIJ.js} +4 -4
  33. package/dist/chunks/{src-E2UCLY54.js → src-WKH7EP7W.js} +1273 -422
  34. package/dist/chunks/{teams-bot-HUXYJ6XA.js → teams-bot-FF3LDAYL.js} +5 -5
  35. package/dist/chunks/{workspaces-4OKABHI3.js → workspaces-QKADU2A6.js} +2 -2
  36. package/dist/cli.js +13 -13
  37. package/dist/index.js +16 -5
  38. package/dist/sandbox/client-handles.d.ts +2 -1
  39. package/dist/sandbox/client.d.ts +3 -1
  40. package/dist/sandbox/sandbox-instance-client.d.ts +2 -1
  41. package/dist/sandbox/types/org-project-agent.d.ts +23 -1
  42. package/dist/web/assets/{AppDialog-CxLYXiI1.js → AppDialog-1RkKL2v6.js} +1 -1
  43. package/dist/web/assets/{AppsView-CVTUkahv.js → AppsView-B6hDEt-h.js} +1 -1
  44. package/dist/web/assets/BrowserSidebar-CkAMOgiq.js +1 -0
  45. package/dist/web/assets/CommandMenu-9oAkS4X3.js +1 -0
  46. package/dist/web/assets/CommunityView-Dyuq5N28.js +1 -0
  47. package/dist/web/assets/ComposerCreateImproveStrip-D91cw5AT.js +1 -0
  48. package/dist/web/assets/{GetStartedView-l9MUYMYH.js → GetStartedView-BZpcZgjB.js} +1 -1
  49. package/dist/web/assets/LabModelVersionDetailPage-C0jNkciw.js +1 -0
  50. package/dist/web/assets/LabSkillSidebar-JGCPqTB1.js +1 -0
  51. package/dist/web/assets/LabsRoute-Dpv5Haqy.js +3 -0
  52. package/dist/web/assets/MainChatThread-B4_iIn3g.js +2 -0
  53. package/dist/web/assets/MainPane-o4HIxmNz.js +6 -0
  54. package/dist/web/assets/MarkdownText-DgS9KdyT.js +9 -0
  55. package/dist/web/assets/Messages-DjMa9H1T.js +10 -0
  56. package/dist/web/assets/NativeSkillSidebar-Q3fwLOiO.js +1 -0
  57. package/dist/web/assets/{NewProjectDialog-CiGPfI5s.js → NewProjectDialog-CUb0umRT.js} +1 -1
  58. package/dist/web/assets/OutputsPage-DD_1STRQ.js +1 -0
  59. package/dist/web/assets/RightChatPanelStack-2dFyjK7Z.js +1 -0
  60. package/dist/web/assets/ScheduledWorkPage-DPjweWpP.js +1 -0
  61. package/dist/web/assets/SettingsView-BS5m5vdt.css +1 -0
  62. package/dist/web/assets/SettingsView-DJGgGPL0.js +6 -0
  63. package/dist/web/assets/TeamChatView-CZmbzRk7.js +3 -0
  64. package/dist/web/assets/{TerminalOverlay-Bb0RJR04.js → TerminalOverlay-CpjrArXn.js} +1 -1
  65. package/dist/web/assets/TrainingCreationPanel-Tbj3qk8-.js +1 -0
  66. package/dist/web/assets/TrainingDraftPanel-BhggD-hn.js +1 -0
  67. package/dist/web/assets/{UsageSettingsSection-Cdc_jGFX.js → UsageSettingsSection-CXM6LKim.js} +1 -1
  68. package/dist/web/assets/WorkspaceDiffPanel-CoMkI8dY.js +14 -0
  69. package/dist/web/assets/WorkspaceEnvironmentMenu-CZyjk82C.js +32 -0
  70. package/dist/web/assets/{WorkspaceGitDialogs-CK6ahRty.js → WorkspaceGitDialogs-DTj3DOsf.js} +1 -1
  71. package/dist/web/assets/{WorkspaceMonacoEditor-BQoN7jWa.js → WorkspaceMonacoEditor-DaNMLEnU.js} +3 -3
  72. package/dist/web/assets/{arrow-up-right-CzBZuWNj.js → arrow-up-right-wvL_rSwe.js} +1 -1
  73. package/dist/web/assets/{chevron-up-DW-qEVSP.js → chevron-up-BbyiUcq_.js} +1 -1
  74. package/dist/web/assets/{cloud-upload-CjLR-8-r.js → cloud-upload-Bgv1fA6E.js} +1 -1
  75. package/dist/web/assets/{cssMode-CQQJhS7v.js → cssMode-BG9jdNNX.js} +1 -1
  76. package/dist/web/assets/{folder-open-BpUcIJHn.js → folder-open-CRAYp6pW.js} +1 -1
  77. package/dist/web/assets/{folder-plus-8NHsIAxQ.js → folder-plus-BgsuJVU0.js} +1 -1
  78. package/dist/web/assets/{git-branch-DO3iP_fL.js → git-branch-CicxCU5U.js} +1 -1
  79. package/dist/web/assets/{git-commit-horizontal-BSWa2I3g.js → git-commit-horizontal-BRkwl6bp.js} +1 -1
  80. package/dist/web/assets/{htmlMode-DaAKO9wk.js → htmlMode-B69EEM3s.js} +1 -1
  81. package/dist/web/assets/index-BGdmnwp7.js +1 -0
  82. package/dist/web/assets/index-Bt9mPk1q.css +1 -0
  83. package/dist/web/assets/index-Dcpm2LlR.js +178 -0
  84. package/dist/web/assets/{info-DiEvrUda.js → info-BxhCcEsF.js} +1 -1
  85. package/dist/web/assets/{jsonMode-Biu1ZTZ7.js → jsonMode-D0tzZkp2.js} +1 -1
  86. package/dist/web/assets/{lspLanguageFeatures-lwoDxGgl.js → lspLanguageFeatures-DFpYfxMH.js} +1 -1
  87. package/dist/web/assets/{monaco.contribution-Ce2MS2Nv.js → monaco.contribution-BFP-1c-A.js} +2 -2
  88. package/dist/web/assets/{monaco.contribution-Ic8LKME8.js → monaco.contribution-BzGRrg8l.js} +2 -2
  89. package/dist/web/assets/{monaco.contribution-DzHhgeLy.js → monaco.contribution-K53jgqut.js} +2 -2
  90. package/dist/web/assets/{monaco.contribution-BqQSY5-t.js → monaco.contribution-lS_l56Q7.js} +2 -2
  91. package/dist/web/assets/{play-D9F3t5Cx.js → play-B8en8HVG.js} +1 -1
  92. package/dist/web/assets/{python-BhVCwr-K.js → python-DPtRb2z3.js} +1 -1
  93. package/dist/web/assets/{refresh-cw-DRN17xPU.js → refresh-cw-CRZeaNu7.js} +1 -1
  94. package/dist/web/assets/{save-CDZwpzlG.js → save-oO8erge1.js} +1 -1
  95. package/dist/web/assets/{square-Cf_AXs4a.js → square-CSULphDY.js} +1 -1
  96. package/dist/web/assets/{toggleHighContrast-Bb_m9pXM.js → toggleHighContrast-CmDdOtfT.js} +1 -1
  97. package/dist/web/assets/{tsMode-BaWkaSHN.js → tsMode-B0TCT940.js} +1 -1
  98. package/dist/web/assets/{upload-Cef29aCP.js → upload-dz-oCLFE.js} +1 -1
  99. package/dist/web/assets/{useLocalAgentSchedules-CAAqoZ0V.js → useLocalAgentSchedules-DPga1Kwi.js} +1 -1
  100. package/dist/web/assets/{wifi-off-C8cC22F6.js → wifi-off-BZpON33U.js} +1 -1
  101. package/dist/web/assets/{workers-GOdHtcZt.js → workers-DXVEq1Aw.js} +1 -1
  102. package/dist/web/assets/{yaml-jBIxwMeR.js → yaml-B8TBCEpi.js} +1 -1
  103. package/dist/web/index.html +2 -2
  104. package/docs/command-reference.md +2 -0
  105. package/package.json +1 -1
  106. package/dist/web/assets/BrowserSidebar-oHniLA05.js +0 -1
  107. package/dist/web/assets/CommandMenu-Db_5OiKs.js +0 -1
  108. package/dist/web/assets/CommunityView-HTwMEO-T.js +0 -1
  109. package/dist/web/assets/ComposerCreateImproveStrip-ER26yFe-.js +0 -1
  110. package/dist/web/assets/LabModelVersionDetailPage-Dgf-DlJi.js +0 -1
  111. package/dist/web/assets/LabSkillSidebar-CyX8sVm1.js +0 -1
  112. package/dist/web/assets/LabsRoute-BC1ST9qT.js +0 -3
  113. package/dist/web/assets/MainChatThread-BfW92Rv1.js +0 -2
  114. package/dist/web/assets/MainPane-DlciH8yR.js +0 -6
  115. package/dist/web/assets/MarkdownText-CyOeCVjf.js +0 -9
  116. package/dist/web/assets/Messages-BDtEbIKv.js +0 -9
  117. package/dist/web/assets/NativeSkillSidebar-D0BlvEtE.js +0 -1
  118. package/dist/web/assets/OutputsPage-DNU2yD7q.js +0 -1
  119. package/dist/web/assets/RightChatPanelStack-Cs63fQwk.js +0 -1
  120. package/dist/web/assets/ScheduledWorkPage-DMKHFbeE.js +0 -1
  121. package/dist/web/assets/SettingsView-C39BqlSI.css +0 -1
  122. package/dist/web/assets/SettingsView-L0g-g2fL.js +0 -6
  123. package/dist/web/assets/TeamChatView-CSVMTUAE.js +0 -3
  124. package/dist/web/assets/TrainingCreationPanel-VIWlpVV2.js +0 -1
  125. package/dist/web/assets/TrainingDraftPanel-MTYsR-Ry.js +0 -1
  126. package/dist/web/assets/WorkspaceDiffPanel-BgIbxMMu.js +0 -14
  127. package/dist/web/assets/WorkspaceEnvironmentMenu-C97GqYn9.js +0 -32
  128. package/dist/web/assets/circle-alert-B_xROoPY.js +0 -1
  129. package/dist/web/assets/folder-git-2-ktXin28y.js +0 -1
  130. package/dist/web/assets/folder-tLv6TMN2.js +0 -1
  131. package/dist/web/assets/index-BtiK52K1.js +0 -1
  132. package/dist/web/assets/index-CE2hroF6.css +0 -1
  133. package/dist/web/assets/index-DHxBMQIJ.js +0 -174
  134. package/dist/web/assets/square-pen-ChJgNiDm.js +0 -1
@@ -1,12 +1,12 @@
1
1
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
2
2
  import {
3
3
  resolveSandboxClient
4
- } from "./chunk-FHP7OMEI.js";
5
- import "./chunk-7QLVLGDM.js";
4
+ } from "./chunk-J2REM7LE.js";
5
+ import "./chunk-64LYEFLR.js";
6
6
  import "./chunk-SMNFI2FU.js";
7
- import "./chunk-RC3N77IV.js";
8
- import "./chunk-SKUS4NPW.js";
9
- import "./chunk-DXSHQ6TO.js";
7
+ import "./chunk-GMX47RLP.js";
8
+ import "./chunk-K4JEWEJQ.js";
9
+ import "./chunk-JGOP4GCK.js";
10
10
  import "./chunk-DBHSOTYZ.js";
11
11
  import "./chunk-KSRWKXRB.js";
12
12
  import {
@@ -45,8 +45,8 @@ import {
45
45
  truncatePatch,
46
46
  uniqueSortedPaths,
47
47
  workspaceImageContentType
48
- } from "./chunk-LDRWEAOB.js";
49
- import "./chunk-TOCZQEPW.js";
48
+ } from "./chunk-MBF44RYK.js";
49
+ import "./chunk-FYB6ELFM.js";
50
50
  import "./chunk-UACZUFIA.js";
51
51
  export {
52
52
  MACOS_GIT_MISSING_DEVELOPER_TOOLS_ERROR,
package/dist/cli.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
3
3
  import {
4
4
  parseArgs
5
- } from "./chunks/chunk-7QLVLGDM.js";
5
+ } from "./chunks/chunk-64LYEFLR.js";
6
6
  import {
7
7
  resolveAccountOption,
8
8
  resolveBaseUrlOption
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  getInstalledCliVersion,
12
12
  runCliCommand
13
- } from "./chunks/chunk-RC3N77IV.js";
13
+ } from "./chunks/chunk-GMX47RLP.js";
14
14
  import "./chunks/chunk-KSRWKXRB.js";
15
15
  import {
16
16
  parseBooleanOption
@@ -37,11 +37,11 @@ async function runOpenPondCli(argv = process.argv.slice(2)) {
37
37
  return;
38
38
  }
39
39
  if (action === "check-update") {
40
- await (await import("./chunks/core-commands-H2UC3LHG.js")).runCheckUpdate();
40
+ await (await import("./chunks/core-commands-STKFZZVR.js")).runCheckUpdate();
41
41
  return;
42
42
  }
43
43
  if (action === "help") {
44
- (await import("./chunks/help-NEYFMHWQ.js")).printHelp();
44
+ (await import("./chunks/help-4MQ4EOIS.js")).printHelp();
45
45
  return;
46
46
  }
47
47
  const selectedAccount = resolveAccountOption(options);
@@ -53,25 +53,25 @@ async function runOpenPondCli(argv = process.argv.slice(2)) {
53
53
  process.env.OPENPOND_BASE_URL = selectedBaseUrl;
54
54
  }
55
55
  if (action === "tui") {
56
- await (await import("./chunks/app-layer-RNQXXM6L.js")).runOpenPondTerminalCommand(options, rest);
56
+ await (await import("./chunks/app-layer-MSLVVYLM.js")).runOpenPondTerminalCommand(options, rest);
57
57
  return;
58
58
  }
59
59
  if (action === "ui") {
60
- await (await import("./chunks/app-layer-RNQXXM6L.js")).runOpenPondServerCommand("web", options, rest);
60
+ await (await import("./chunks/app-layer-MSLVVYLM.js")).runOpenPondServerCommand("web", options, rest);
61
61
  return;
62
62
  }
63
63
  if (await runCliCommand({ command, options, rest })) {
64
64
  return;
65
65
  }
66
- (await import("./chunks/help-NEYFMHWQ.js")).printHelp();
66
+ (await import("./chunks/help-4MQ4EOIS.js")).printHelp();
67
67
  process.exit(1);
68
68
  }
69
69
  async function runEmbeddedCompanion(argv) {
70
70
  if (argv[0] === "__app-server") {
71
71
  process.argv = [process.execPath, "openpond-app-server", ...argv.slice(1)];
72
72
  const [{ createOpenPondAppServer }, { runOpenPondAppServerCli }] = await Promise.all([
73
- import("./chunks/app-server-runtime-7LGK37P6.js"),
74
- import("./chunks/cli-DBZ7S6ZF.js")
73
+ import("./chunks/app-server-runtime-BRG7A5VD.js"),
74
+ import("./chunks/cli-L25X2EZL.js")
75
75
  ]);
76
76
  await runOpenPondAppServerCli(createOpenPondAppServer);
77
77
  return true;
@@ -79,15 +79,15 @@ async function runEmbeddedCompanion(argv) {
79
79
  if (argv[0] === "__server") {
80
80
  process.argv = [process.execPath, "openpond-server", ...argv.slice(1)];
81
81
  const [{ createOpenPondServer }, { runOpenPondServerCli }] = await Promise.all([
82
- import("./chunks/src-E2UCLY54.js"),
83
- import("./chunks/cli-DBZ7S6ZF.js")
82
+ import("./chunks/src-WKH7EP7W.js"),
83
+ import("./chunks/cli-L25X2EZL.js")
84
84
  ]);
85
- const { createOpenPondAppServer } = await import("./chunks/app-server-runtime-7LGK37P6.js");
85
+ const { createOpenPondAppServer } = await import("./chunks/app-server-runtime-BRG7A5VD.js");
86
86
  await runOpenPondServerCli({ createOpenPondServer, createOpenPondAppServer });
87
87
  return true;
88
88
  }
89
89
  if (argv[0] === "__terminal") {
90
- await (await import("./chunks/src-KLQEJ6RO.js")).runOpenPondTerminalCli(argv.slice(1));
90
+ await (await import("./chunks/src-PW337SIJ.js")).runOpenPondTerminalCli(argv.slice(1));
91
91
  return true;
92
92
  }
93
93
  return false;
package/dist/index.js CHANGED
@@ -3202,6 +3202,7 @@ function createSandboxAgentNamespace(client) {
3202
3202
  sourceDeployPlan: (agentId, input) => client.getAgentSourceDeployPlan(agentId, input),
3203
3203
  manifestSnapshots: (agentId, input) => client.listAgentManifestSnapshots(agentId, input),
3204
3204
  requestSourceChecks: (agentId, input) => client.requestAgentSourceChecks(agentId, input),
3205
+ configureSourceSetup: (agentId, input) => client.configureAgentSourceSetup(agentId, input),
3205
3206
  publishSource: (agentId, input) => client.publishAgentSource(agentId, input)
3206
3207
  };
3207
3208
  }
@@ -4332,7 +4333,8 @@ var OpenPondSandboxClient = class extends OpenPondSandboxInstanceClient {
4332
4333
  return this.requestApiRoot(`/projects?${query.toString()}`).then((payload) => payload.projects);
4333
4334
  }
4334
4335
  upsertProject(input) {
4335
- return this.requestApiRoot("/projects", {
4336
+ const query = new URLSearchParams({ teamId: input.teamId });
4337
+ return this.requestApiRoot(`/projects?${query.toString()}`, {
4336
4338
  method: "POST",
4337
4339
  body: JSON.stringify(input)
4338
4340
  }).then((payload) => payload.project);
@@ -4399,7 +4401,8 @@ var OpenPondSandboxClient = class extends OpenPondSandboxInstanceClient {
4399
4401
  return this.requestApiRoot(`/agents?${query.toString()}`).then((payload) => payload.agents);
4400
4402
  }
4401
4403
  upsertAgent(input) {
4402
- return this.requestApiRoot("/agents", {
4404
+ const query = new URLSearchParams({ teamId: input.teamId });
4405
+ return this.requestApiRoot(`/agents?${query.toString()}`, {
4403
4406
  method: "POST",
4404
4407
  body: JSON.stringify(input)
4405
4408
  }).then((payload) => payload.agent);
@@ -4421,12 +4424,14 @@ var OpenPondSandboxClient = class extends OpenPondSandboxInstanceClient {
4421
4424
  }).then((payload) => payload.agent);
4422
4425
  }
4423
4426
  runAgent(agentId, input) {
4424
- return this.requestApiRoot(`/agents/${encodeURIComponent(agentId)}/run`, {
4427
+ const query = new URLSearchParams({ teamId: input.teamId });
4428
+ const { teamId: _teamId, ...body } = input;
4429
+ return this.requestApiRoot(`/agents/${encodeURIComponent(agentId)}/run?${query.toString()}`, {
4425
4430
  method: "POST",
4426
4431
  headers: {
4427
4432
  Prefer: "respond-async"
4428
4433
  },
4429
- body: JSON.stringify(input)
4434
+ body: JSON.stringify(body)
4430
4435
  });
4431
4436
  }
4432
4437
  getAgentSourceDeployPlan(agentId, input) {
@@ -4444,9 +4449,15 @@ var OpenPondSandboxClient = class extends OpenPondSandboxInstanceClient {
4444
4449
  const { teamId: _teamId, ...body } = input;
4445
4450
  return this.requestApiRoot(`/agents/${encodeURIComponent(agentId)}/source/checks?${query.toString()}`, {
4446
4451
  method: "POST",
4447
- body: JSON.stringify(body)
4452
+ body: JSON.stringify(body),
4453
+ timeoutMs: 15 * 60 * 1e3
4448
4454
  });
4449
4455
  }
4456
+ configureAgentSourceSetup(agentId, input) {
4457
+ const query = new URLSearchParams({ teamId: input.teamId });
4458
+ const { teamId: _teamId, ...body } = input;
4459
+ return this.requestApiRoot(`/agents/${encodeURIComponent(agentId)}/source/setup?${query.toString()}`, { method: "POST", body: JSON.stringify(body) });
4460
+ }
4450
4461
  publishAgentSource(agentId, input) {
4451
4462
  const query = new URLSearchParams({ teamId: input.teamId });
4452
4463
  const { teamId: _teamId, ...body } = input;
@@ -1,5 +1,5 @@
1
1
  import type { OpenPondSandboxClient } from "./client.js";
2
- import type { SandboxAgentRunInput, SandboxAgentSourceChecksRequestInput, SandboxAgentSourcePublishInput, SandboxAgentUpdateInput, SandboxAgentUpsertInput, SandboxCreateInput, SandboxAsyncRequestOptions, SandboxProjectUpdateInput, SandboxProjectUpsertInput, SandboxProjectSourceUploadInput, SandboxRuntime, SandboxRuntimeCheckpointInput, SandboxRuntimeCreateInput, SandboxRuntimeEventInput, SandboxRuntimePromoteInput, SandboxRuntimeSourcePreserveInput, SandboxRuntimeSandboxCreateInput, SandboxRuntimeTransitionInput, OpenPondHostedProfilePushInput, OpenPondHostedProfilePushResponse, OpenPondHostedProfileSummary } from "./types/index.js";
2
+ import type { SandboxAgentRunInput, SandboxAgentSourceChecksRequestInput, SandboxAgentSourcePublishInput, SandboxAgentSourceSetupConfigureInput, SandboxAgentUpdateInput, SandboxAgentUpsertInput, SandboxCreateInput, SandboxAsyncRequestOptions, SandboxProjectUpdateInput, SandboxProjectUpsertInput, SandboxProjectSourceUploadInput, SandboxRuntime, SandboxRuntimeCheckpointInput, SandboxRuntimeCreateInput, SandboxRuntimeEventInput, SandboxRuntimePromoteInput, SandboxRuntimeSourcePreserveInput, SandboxRuntimeSandboxCreateInput, SandboxRuntimeTransitionInput, OpenPondHostedProfilePushInput, OpenPondHostedProfilePushResponse, OpenPondHostedProfileSummary } from "./types/index.js";
3
3
  export declare function createSandboxRuntimeNamespace(client: OpenPondSandboxClient): {
4
4
  list: (input?: {
5
5
  teamId?: string;
@@ -96,5 +96,6 @@ export declare function createSandboxAgentNamespace(client: OpenPondSandboxClien
96
96
  limit?: number;
97
97
  }) => Promise<import("openpond-sdk").SandboxAgentManifestSnapshot[]>;
98
98
  requestSourceChecks: (agentId: string, input: SandboxAgentSourceChecksRequestInput) => Promise<import("openpond-sdk").SandboxAgentSourceChecksRequestResult>;
99
+ configureSourceSetup: (agentId: string, input: SandboxAgentSourceSetupConfigureInput) => Promise<import("openpond-sdk").SandboxAgentSourceSetupConfigureResult>;
99
100
  publishSource: (agentId: string, input: SandboxAgentSourcePublishInput) => Promise<import("openpond-sdk").SandboxAgentSourcePublishResult>;
100
101
  };
@@ -1,5 +1,5 @@
1
1
  import { OpenPondSandboxInstanceClient } from "./sandbox-instance-client.js";
2
- import type { SandboxIntegrationConnectionStatusFilter, SandboxAsyncRequestOptions, SandboxScheduleCreateInput, SandboxScheduleUpdateInput, SandboxForkInput, SandboxForkOptions, SandboxTemplateLaunchInput, SandboxPublishedSnapshotBuildCreateInput, SandboxPublishedSnapshotBuildRecord, SandboxSecretMetadata, SandboxSecretCreateInput, SandboxSecretRotateInput, SandboxSecretAttachInput, SandboxSnapshotTemplateVisibility, SandboxTemplateBuildCreateInput, SandboxTemplateBuildRecord, OpenPondOrganization, OpenPondOrganizationCreateInput, OpenPondOrganizationUpdateInput, OpenPondOrganizationMember, OpenPondOrganizationMemberUpsertInput, OpenPondOrganizationMcpServer, OpenPondOrganizationMcpGenerateInput, SandboxProject, OpenPondHostedProfilePushInput, OpenPondHostedProfilePushResponse, OpenPondHostedProfileSummary, SandboxAgent, SandboxProjectUpsertInput, SandboxProjectUpdateInput, SandboxProjectSourceUploadInput, SandboxProjectGitRemoteResponse, SandboxAgentUpsertInput, SandboxAgentUpdateInput, SandboxAgentRunInput, SandboxAgentSourceChecksRequestInput, SandboxAgentSourceChecksRequestResult, SandboxAgentSourceDeployPlan, SandboxAgentSourcePublishInput, SandboxAgentSourcePublishResult, SandboxAgentManifestSnapshot, SandboxAgentRunResponse, MicrosoftTeamsBotOverview, MicrosoftTeamsBotBindingTargetInput, MicrosoftTeamsBotBindingResponse, MicrosoftTeamsBotDiagnosticRunInput, MicrosoftTeamsBotDiagnosticRunResponse, SandboxRecord, SandboxSnapshotCatalogResponse, SandboxPublishedSnapshotCatalogResponse, SandboxTemplateCatalogResponse, SandboxRuntime, SandboxRuntimeCreateInput, SandboxRuntimeSandboxCreateInput, SandboxRuntimeEventInput, SandboxRuntimeCheckpointInput, SandboxRuntimePromoteInput, SandboxRuntimeSourcePreserveInput, SandboxRuntimeTransitionInput, SandboxRuntimeSandboxResponse, SandboxRuntimeEventResponse, SandboxRuntimeEventsResponse, SandboxRuntimePromoteResponse, SandboxRuntimeSourcePreserveResponse, SandboxIntegrationConnectionsResponse, SandboxForkResponse, SandboxPublishedSnapshotLaunchResponse, SandboxTemplateLaunchResponse, SandboxScheduleListResponse, SandboxScheduleResponse, SandboxScheduleRunListResponse, SandboxScheduleRunResponse, SandboxReplayInput, SandboxReplayResponse, SandboxReplayListResponse, SandboxReplayLogsResponse, SandboxReplayArtifactsResponse, SandboxPublishedSnapshotBuildLogsResponse, SandboxTemplateBuildLogsResponse, SandboxSmokeOptions, SandboxSmokeSummary, OpenPondSandboxClientOptions, OpenPondSandboxMcpServerConfig, OpenPondSandboxRuntimeHandle } from "./types/index.js";
2
+ import type { SandboxIntegrationConnectionStatusFilter, SandboxAsyncRequestOptions, SandboxScheduleCreateInput, SandboxScheduleUpdateInput, SandboxForkInput, SandboxForkOptions, SandboxTemplateLaunchInput, SandboxPublishedSnapshotBuildCreateInput, SandboxPublishedSnapshotBuildRecord, SandboxSecretMetadata, SandboxSecretCreateInput, SandboxSecretRotateInput, SandboxSecretAttachInput, SandboxSnapshotTemplateVisibility, SandboxTemplateBuildCreateInput, SandboxTemplateBuildRecord, OpenPondOrganization, OpenPondOrganizationCreateInput, OpenPondOrganizationUpdateInput, OpenPondOrganizationMember, OpenPondOrganizationMemberUpsertInput, OpenPondOrganizationMcpServer, OpenPondOrganizationMcpGenerateInput, SandboxProject, OpenPondHostedProfilePushInput, OpenPondHostedProfilePushResponse, OpenPondHostedProfileSummary, SandboxAgent, SandboxProjectUpsertInput, SandboxProjectUpdateInput, SandboxProjectSourceUploadInput, SandboxProjectGitRemoteResponse, SandboxAgentUpsertInput, SandboxAgentUpdateInput, SandboxAgentRunInput, SandboxAgentSourceChecksRequestInput, SandboxAgentSourceChecksRequestResult, SandboxAgentSourceDeployPlan, SandboxAgentSourcePublishInput, SandboxAgentSourcePublishResult, SandboxAgentSourceSetupConfigureInput, SandboxAgentSourceSetupConfigureResult, SandboxAgentManifestSnapshot, SandboxAgentRunResponse, MicrosoftTeamsBotOverview, MicrosoftTeamsBotBindingTargetInput, MicrosoftTeamsBotBindingResponse, MicrosoftTeamsBotDiagnosticRunInput, MicrosoftTeamsBotDiagnosticRunResponse, SandboxRecord, SandboxSnapshotCatalogResponse, SandboxPublishedSnapshotCatalogResponse, SandboxTemplateCatalogResponse, SandboxRuntime, SandboxRuntimeCreateInput, SandboxRuntimeSandboxCreateInput, SandboxRuntimeEventInput, SandboxRuntimeCheckpointInput, SandboxRuntimePromoteInput, SandboxRuntimeSourcePreserveInput, SandboxRuntimeTransitionInput, SandboxRuntimeSandboxResponse, SandboxRuntimeEventResponse, SandboxRuntimeEventsResponse, SandboxRuntimePromoteResponse, SandboxRuntimeSourcePreserveResponse, SandboxIntegrationConnectionsResponse, SandboxForkResponse, SandboxPublishedSnapshotLaunchResponse, SandboxTemplateLaunchResponse, SandboxScheduleListResponse, SandboxScheduleResponse, SandboxScheduleRunListResponse, SandboxScheduleRunResponse, SandboxReplayInput, SandboxReplayResponse, SandboxReplayListResponse, SandboxReplayLogsResponse, SandboxReplayArtifactsResponse, SandboxPublishedSnapshotBuildLogsResponse, SandboxTemplateBuildLogsResponse, SandboxSmokeOptions, SandboxSmokeSummary, OpenPondSandboxClientOptions, OpenPondSandboxMcpServerConfig, OpenPondSandboxRuntimeHandle } from "./types/index.js";
3
3
  export declare class OpenPondSandboxClient extends OpenPondSandboxInstanceClient {
4
4
  readonly runtimes: {
5
5
  list: (input?: {
@@ -97,6 +97,7 @@ export declare class OpenPondSandboxClient extends OpenPondSandboxInstanceClient
97
97
  limit?: number;
98
98
  }) => Promise<SandboxAgentManifestSnapshot[]>;
99
99
  requestSourceChecks: (agentId: string, input: SandboxAgentSourceChecksRequestInput) => Promise<SandboxAgentSourceChecksRequestResult>;
100
+ configureSourceSetup: (agentId: string, input: SandboxAgentSourceSetupConfigureInput) => Promise<SandboxAgentSourceSetupConfigureResult>;
100
101
  publishSource: (agentId: string, input: SandboxAgentSourcePublishInput) => Promise<SandboxAgentSourcePublishResult>;
101
102
  };
102
103
  list(input?: {
@@ -182,6 +183,7 @@ export declare class OpenPondSandboxClient extends OpenPondSandboxInstanceClient
182
183
  limit?: number;
183
184
  }): Promise<SandboxAgentManifestSnapshot[]>;
184
185
  requestAgentSourceChecks(agentId: string, input: SandboxAgentSourceChecksRequestInput): Promise<SandboxAgentSourceChecksRequestResult>;
186
+ configureAgentSourceSetup(agentId: string, input: SandboxAgentSourceSetupConfigureInput): Promise<SandboxAgentSourceSetupConfigureResult>;
185
187
  publishAgentSource(agentId: string, input: SandboxAgentSourcePublishInput): Promise<SandboxAgentSourcePublishResult>;
186
188
  getMicrosoftTeamsBotOverview(input: {
187
189
  teamId: string;
@@ -1,3 +1,4 @@
1
+ import { type ApiFetchOptions } from "../api/core.js";
1
2
  import type { SandboxIntegrationConnectionLeaseInput, SandboxCreateInput, SandboxCreateOptions, SandboxAsyncRequestOptions, SandboxForkInput, SandboxExecInput, SandboxProcessStartInput, SandboxPtyStartInput, SandboxPtyInput, SandboxOpenPortInput, SandboxGitDiffInput, SandboxGitPatchExportInput, SandboxGitBranchInput, SandboxGitCommitInput, SandboxGitPullInput, SandboxGitPushInput, SandboxFileDownloadInput, SandboxFileListInput, SandboxFileMkdirInput, SandboxFileMoveInput, SandboxFileSearchInput, SandboxReceipt, SandboxSnapshotValidateInput, SandboxSnapshotUpdateInput, SandboxSnapshotInput, SandboxRecord, SandboxIntegrationLeasesResponse, SandboxExecResponse, SandboxProcessStartResponse, SandboxProcessListResponse, SandboxProcessStatusResponse, SandboxProcessStopResponse, SandboxPtyStartResponse, SandboxPtyListResponse, SandboxPtyStatusResponse, SandboxPtyInputResponse, SandboxPtyStopResponse, SandboxOpenPortResponse, SandboxSnapshotResponse, SandboxSnapshotValidationResponse, SandboxForkResponse, SandboxReceiptResponse, SandboxLifecycleAcceptedResponse, SandboxStartResponse, SandboxRestoreResponse, SandboxGitStatusResponse, SandboxGitDiffResponse, SandboxGitPatchExportResponse, SandboxGitBranchResponse, SandboxGitCommitResponse, SandboxGitPullResponse, SandboxGitPushResponse, SandboxFileUploadResponse, SandboxFileDownloadResponse, SandboxFileListResponse, SandboxFileDeleteResponse, SandboxFileMkdirResponse, SandboxFileMoveResponse, SandboxFileStatResponse, SandboxFileSearchResponse, SandboxBillingStatusResponse, SandboxPricingResponse, SandboxCostSummaryResponse, OpenPondSandboxClientOptions } from "./types/index.js";
2
3
  export declare class OpenPondSandboxInstanceClient {
3
4
  readonly apiKey: string;
@@ -68,5 +69,5 @@ export declare class OpenPondSandboxInstanceClient {
68
69
  attachIntegrationConnection(sandboxId: string, input: SandboxIntegrationConnectionLeaseInput): Promise<SandboxIntegrationLeasesResponse>;
69
70
  removeIntegrationLease(sandboxId: string, leaseId: string): Promise<SandboxIntegrationLeasesResponse>;
70
71
  request<T>(path: string, init?: RequestInit): Promise<T>;
71
- requestApiRoot<T>(path: string, init?: RequestInit): Promise<T>;
72
+ requestApiRoot<T>(path: string, init?: ApiFetchOptions): Promise<T>;
72
73
  }
@@ -1,4 +1,4 @@
1
- import type { SandboxRecord, SandboxWorkflowMode, SandboxRuntimePromotionPolicy } from "./index.js";
1
+ import type { SandboxIntegrationConnectionLeaseInput, SandboxIntegrationLeaseInput, SandboxRecord, SandboxWorkflowMode, SandboxRuntimePromotionPolicy } from "./index.js";
2
2
  export type OpenPondOrganizationRole = "owner" | "admin" | "member";
3
3
  export type OpenPondOrganizationStatus = "active" | "disabled" | "archived";
4
4
  export type OpenPondOrganization = {
@@ -7,7 +7,11 @@ export type OpenPondOrganization = {
7
7
  name: string;
8
8
  displayName: string;
9
9
  role: OpenPondOrganizationRole;
10
+ workspaceKind?: "personal" | "shared";
10
11
  status: OpenPondOrganizationStatus;
12
+ kind?: "personal_default" | "managed_client" | "team";
13
+ isPersonalDefault?: boolean;
14
+ isManagedClient?: boolean;
11
15
  primaryContactEmail: string | null;
12
16
  customDomain: string | null;
13
17
  createdAt: string;
@@ -339,6 +343,19 @@ export type SandboxAgentSourceChecksRequestResult = Record<string, unknown> & {
339
343
  error: string | null;
340
344
  };
341
345
  };
346
+ export type SandboxAgentSourceSetupConfigureInput = {
347
+ teamId: string;
348
+ integrationBindings?: Array<{
349
+ provider: string;
350
+ ref?: string | null;
351
+ mode?: "connected" | "connect_later";
352
+ connectionMode?: "member_connection" | "workspace_connection";
353
+ grantPolicy?: "read_only" | "ask_before_write" | "allow_write_for_action";
354
+ allowedActions?: string[];
355
+ enabled?: boolean;
356
+ }>;
357
+ };
358
+ export type SandboxAgentSourceSetupConfigureResult = Record<string, unknown>;
342
359
  export type SandboxAgentSourcePublishInput = {
343
360
  teamId: string;
344
361
  expectedManifestHash?: string | null;
@@ -436,13 +453,18 @@ export type SandboxAgentUpdateInput = {
436
453
  export type SandboxAgentRunInput = {
437
454
  teamId: string;
438
455
  conversationId?: string | null;
456
+ createConversation?: boolean;
457
+ conversationTitle?: string | null;
439
458
  idempotencyKey?: string | null;
440
459
  targetProjectId?: string | null;
441
460
  targetProject?: {
442
461
  id: string;
443
462
  } | null;
444
463
  triggerType?: SandboxAgentTriggerType;
464
+ entrypoint?: Partial<SandboxAgentSelectedEntrypoint> | null;
445
465
  input?: Record<string, unknown>;
466
+ integrationLeases?: SandboxIntegrationLeaseInput[];
467
+ integrationConnectionLeases?: SandboxIntegrationConnectionLeaseInput[];
446
468
  metadata?: Record<string, unknown>;
447
469
  workflowMode?: SandboxWorkflowMode;
448
470
  runtimeSourcePolicy?: SandboxAgentRuntimeSourcePolicy;
@@ -1 +1 @@
1
- import{r as s,j as w}from"./index-DHxBMQIJ.js";const d=[],v=["button:not([disabled])","[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","[tabindex]:not([tabindex='-1'])","[contenteditable='true']"].join(",");function T({ariaLabel:r,backdropClassName:o="training-dialog-backdrop",children:a,className:i,contained:t=!1,dismissDisabled:e=!1,initialFocusKey:u,inertExclusionSelector:p,onClose:m}){const f=s.useRef(null),A=s.useRef(Symbol("app-dialog")),b=s.useRef(null),h=s.useRef(e),g=s.useRef(m);h.current=e,g.current=m,s.useEffect(()=>{const n=A.current;b.current=document.activeElement instanceof HTMLElement?document.activeElement:null,d.push(n);const l=t?f.current?.closest(".main-pane")??null:null,E=I(f.current,l,p);function y(c){if(d.at(-1)===n){if(c.key==="Escape"){c.preventDefault(),c.stopPropagation(),h.current||g.current();return}c.key!=="Tab"||t||F(c,f.current)}}return document.addEventListener("keydown",y,!0),()=>{document.removeEventListener("keydown",y,!0);const c=d.lastIndexOf(n);c>=0&&d.splice(c,1),E();const x=b.current;x?.isConnected&&x.focus()}},[t,p]),s.useEffect(()=>{const n=window.requestAnimationFrame(()=>{const l=f.current;(l?.querySelector("[data-autofocus]")??l)?.focus()});return()=>window.cancelAnimationFrame(n)},[u]);function R(n){n.target===n.currentTarget&&!e&&m()}function k(n){n.key==="Escape"&&n.stopPropagation()}return w.jsx("div",{className:o,role:"presentation",onMouseDown:R,children:w.jsx("section",{ref:f,"aria-busy":e||void 0,"aria-label":r,"aria-modal":t?void 0:"true",className:i,role:"dialog",tabIndex:-1,onKeyDown:k,onMouseDown:n=>n.stopPropagation(),children:a})})}function D(r){return r?Array.from(r.querySelectorAll(v)).filter(o=>!o.hidden&&o.getAttribute("aria-hidden")!=="true"):[]}function F(r,o){if(!o)return;const a=D(o);if(a.length===0){r.preventDefault(),o.focus();return}const i=a.indexOf(document.activeElement),t=r.shiftKey?i<=0?a.length-1:i-1:i<0||i===a.length-1?0:i+1;r.preventDefault(),a[t]?.focus()}function I(r,o=null,a){if(!r)return()=>{};const i=[];let t=r.parentElement??r;for(;t.parentElement&&t!==document.body;){const e=t.parentElement;for(const u of Array.from(e.children))u===t||!(u instanceof HTMLElement)||a&&u.matches(a)||(i.push({element:u,ariaHidden:u.getAttribute("aria-hidden"),inert:u.inert}),u.inert=!0,u.setAttribute("aria-hidden","true"));if(t=e,o&&t===o)break}return()=>{for(const e of i.reverse())e.element.inert=e.inert,e.ariaHidden===null?e.element.removeAttribute("aria-hidden"):e.element.setAttribute("aria-hidden",e.ariaHidden)}}export{T as A};
1
+ import{r as s,j as w}from"./index-Dcpm2LlR.js";const d=[],v=["button:not([disabled])","[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","[tabindex]:not([tabindex='-1'])","[contenteditable='true']"].join(",");function T({ariaLabel:r,backdropClassName:o="training-dialog-backdrop",children:a,className:i,contained:t=!1,dismissDisabled:e=!1,initialFocusKey:u,inertExclusionSelector:p,onClose:m}){const f=s.useRef(null),A=s.useRef(Symbol("app-dialog")),b=s.useRef(null),h=s.useRef(e),g=s.useRef(m);h.current=e,g.current=m,s.useEffect(()=>{const n=A.current;b.current=document.activeElement instanceof HTMLElement?document.activeElement:null,d.push(n);const l=t?f.current?.closest(".main-pane")??null:null,E=I(f.current,l,p);function y(c){if(d.at(-1)===n){if(c.key==="Escape"){c.preventDefault(),c.stopPropagation(),h.current||g.current();return}c.key!=="Tab"||t||F(c,f.current)}}return document.addEventListener("keydown",y,!0),()=>{document.removeEventListener("keydown",y,!0);const c=d.lastIndexOf(n);c>=0&&d.splice(c,1),E();const x=b.current;x?.isConnected&&x.focus()}},[t,p]),s.useEffect(()=>{const n=window.requestAnimationFrame(()=>{const l=f.current;(l?.querySelector("[data-autofocus]")??l)?.focus()});return()=>window.cancelAnimationFrame(n)},[u]);function R(n){n.target===n.currentTarget&&!e&&m()}function k(n){n.key==="Escape"&&n.stopPropagation()}return w.jsx("div",{className:o,role:"presentation",onMouseDown:R,children:w.jsx("section",{ref:f,"aria-busy":e||void 0,"aria-label":r,"aria-modal":t?void 0:"true",className:i,role:"dialog",tabIndex:-1,onKeyDown:k,onMouseDown:n=>n.stopPropagation(),children:a})})}function D(r){return r?Array.from(r.querySelectorAll(v)).filter(o=>!o.hidden&&o.getAttribute("aria-hidden")!=="true"):[]}function F(r,o){if(!o)return;const a=D(o);if(a.length===0){r.preventDefault(),o.focus();return}const i=a.indexOf(document.activeElement),t=r.shiftKey?i<=0?a.length-1:i-1:i<0||i===a.length-1?0:i+1;r.preventDefault(),a[t]?.focus()}function I(r,o=null,a){if(!r)return()=>{};const i=[];let t=r.parentElement??r;for(;t.parentElement&&t!==document.body;){const e=t.parentElement;for(const u of Array.from(e.children))u===t||!(u instanceof HTMLElement)||a&&u.matches(a)||(i.push({element:u,ariaHidden:u.getAttribute("aria-hidden"),inert:u.inert}),u.inert=!0,u.setAttribute("aria-hidden","true"));if(t=e,o&&t===o)break}return()=>{for(const e of i.reverse())e.element.inert=e.inert,e.ariaHidden===null?e.element.removeAttribute("aria-hidden"):e.element.setAttribute("aria-hidden",e.ariaHidden)}}export{T as A};
@@ -1 +1 @@
1
- import{r,bw as b,n as L,j as e,an as I,a as k,X as P,O as E,a2 as F,b1 as U,bx as T,g as R}from"./index-DHxBMQIJ.js";const O=["For agents","Featured","Productivity","Developer tools"],D=new Set(["slack","google","github","mcp"]);function J({account:s,connection:n,defaultTeamId:a,onToast:o}){const[c,f]=r.useState(null),[p,v]=r.useState(""),[i,w]=r.useState("For agents"),[u,h]=r.useState(()=>b()),[g,d]=r.useState("idle"),[y,x]=r.useState(null),S=s?.baseUrl??s?.activeProfile?.baseUrl??null,C=M(a,y),N=r.useMemo(()=>u.filter(t=>z(t,i)).filter(t=>q(t,p)),[i,p,u]);r.useEffect(()=>{let t=!0;return n?(d("loading"),L.connectedAppStatus(n,{status:"all"}).then(l=>{t&&(h(l.apps),x(l.teamId?.trim()||null),d("ready"))}).catch(l=>{t&&(console.warn("Unable to load connected app status.",l),h(b()),x(null),d("error"))}),()=>{t=!1}):(h(b()),d("idle"),x(null),()=>{t=!1})},[n]);function A(t){const l=T({appId:t.id,baseUrl:S,teamId:C});V(l).catch(j=>{o?.(j instanceof Error?j.message:String(j),"error")})}return e.jsxs("section",{className:"connected-apps-view","aria-label":"Apps",children:[e.jsxs("div",{className:"connected-apps-header",children:[e.jsxs("div",{children:[e.jsx("h1",{children:"Apps"}),e.jsx("p",{children:"Connect apps that agents can use for chat, knowledge, files, and workflow actions."})]}),e.jsxs("label",{className:"connected-apps-search",children:[e.jsx(I,{size:15}),e.jsx("input",{"aria-label":"Search apps",onChange:t=>v(t.target.value),placeholder:"Search apps",type:"search",value:p})]})]}),e.jsxs("div",{className:`connected-apps-status-strip ${g}`,children:[e.jsx("span",{children:W(g)}),e.jsxs("span",{children:[X(u)," connected"]})]}),e.jsxs("section",{className:"connected-apps-hero","aria-label":"App context",children:[e.jsxs("div",{className:"connected-apps-hero-copy",children:[e.jsx("span",{className:"connected-apps-hero-icon",children:e.jsx(m,{appId:"github"})}),e.jsx("h2",{children:"Work with your apps"}),e.jsx("p",{children:"Bring repositories, documents, chat, calendars, and custom MCP tools into OpenPond."})]}),e.jsxs("div",{className:"connected-apps-context-card","aria-hidden":"true",children:[e.jsx("strong",{children:"Agent context"}),e.jsxs("div",{children:[e.jsx("span",{className:"files",children:"Files"}),e.jsx("span",{className:"chat",children:"Chat"}),e.jsx("span",{className:"oauth",children:"OAuth"}),e.jsx("span",{className:"mcp",children:"MCP"})]})]})]}),e.jsx("div",{className:"connected-apps-filters",role:"tablist","aria-label":"App categories",children:O.map(t=>e.jsx("button",{"aria-selected":i===t,className:i===t?"active":"",onClick:()=>w(t),role:"tab",type:"button",children:t},t))}),e.jsxs("div",{className:"connected-apps-list",children:[N.map(t=>e.jsx(_,{app:t,onSelect:()=>f(t)},t.id)),N.length===0?e.jsx("div",{className:"connected-apps-empty",children:"No apps match the current search."}):null]}),c?e.jsx($,{app:c,onClose:()=>f(null),onInstall:()=>A(c)}):null]})}function M(s,n){const a=s?.trim();return a||n?.trim()||null}function _({app:s,onSelect:n}){return e.jsxs("button",{className:"connected-app-row",onClick:n,type:"button",children:[e.jsxs("span",{className:"connected-app-row-main",children:[e.jsx(m,{appId:s.id}),e.jsxs("span",{className:"connected-app-copy",children:[e.jsxs("span",{className:"connected-app-title",children:[e.jsx("strong",{children:s.label}),e.jsxs("span",{children:[s.shortLabel!==s.label?s.shortLabel:s.category," / ",s.setupSurfaceLabel]})]}),e.jsx("span",{children:s.description}),e.jsxs("span",{className:"connected-app-capability-row",children:[s.capabilityLabels.slice(0,2).map(a=>e.jsx("span",{children:a},a)),s.capabilityLabels.length>2?e.jsxs("span",{children:["+",s.capabilityLabels.length-2]}):null]})]})]}),e.jsx("span",{className:`connected-app-status-pill ${s.status}`,children:s.statusLabel}),e.jsx(k,{size:16})]})}function $({app:s,onClose:n,onInstall:a}){const o=s.connections.filter(c=>c.status==="active");return e.jsx("div",{className:"connected-app-dialog-backdrop",role:"presentation",onMouseDown:c=>{c.target===c.currentTarget&&n()},children:e.jsxs("section",{className:"connected-app-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"connected-app-dialog-title",children:[e.jsx("button",{className:"connected-app-dialog-close",type:"button","aria-label":"Close app details",onClick:n,children:e.jsx(P,{size:17})}),e.jsxs("div",{className:"connected-app-dialog-identity",children:[e.jsx("span",{className:"openpond-mark",children:e.jsx("img",{alt:"",src:E})}),e.jsxs("span",{className:"connection-dots","aria-hidden":"true",children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]}),e.jsx(m,{appId:s.id})]}),e.jsxs("h2",{id:"connected-app-dialog-title",children:["Connect ",s.label]}),e.jsxs("div",{className:"connected-app-approval",children:[e.jsx(F,{size:16}),e.jsx("span",{children:s.statusLabel})]}),e.jsxs("div",{className:"connected-app-dialog-body",children:[e.jsxs("section",{children:[e.jsx("h3",{children:s.setupSurfaceLabel}),e.jsx("p",{children:"The web flow shows the provider account, workspace, and requested access before anything is connected."})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Connected account"}),e.jsx("p",{children:G(o)})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Available capabilities"}),e.jsx("div",{className:"connected-app-dialog-capabilities",children:s.capabilities.map(c=>e.jsx("span",{children:c.label},c.id))})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Sandbox lease policy"}),e.jsx("p",{children:s.leasePolicy.leaseable?`Leaseable for ${s.leasePolicy.defaultTtlSeconds??0} seconds with scoped proxy access.`:"Managed as setup or tool discovery; no OAuth lease is required."})]})]}),e.jsxs("button",{className:"connected-app-dialog-primary",type:"button",onClick:a,children:[e.jsx("span",{children:s.installLabel}),e.jsx(U,{size:15})]})]})})}function m({appId:s}){return e.jsx("span",{className:`connected-app-icon app-${s}`,children:e.jsx("img",{alt:"",src:B(s)})})}function z(s,n){return n==="For agents"?!0:n==="Featured"?D.has(s.id):n==="Productivity"?s.category==="Productivity"||s.category==="Chat":s.category==="Developer tools"||s.id==="mcp"}function q(s,n){const a=n.trim().toLowerCase();return a?[s.id,s.label,s.shortLabel,s.category,s.description,s.providerFamily,s.setupSurface].some(o=>o.toLowerCase().includes(a)):!0}function B(s){return R(s)}async function V(s){const n=window.openpond?.browser;if(n){const a=await n.openExternal({conversationId:"connected-apps",url:s});if(!a.ok)throw new Error(a.error??"Unable to open app setup.");return}window.open(s,"_blank","noopener,noreferrer")}function W(s){return s==="loading"?"Checking connections":s==="ready"?"Connection status current":s==="error"?"Connection status unavailable":"Connection status pending"}function X(s){return s.filter(n=>n.connected).length}function G(s){return s.length===0?"No active OAuth connection for this setup surface.":s.map(n=>{const a=n.accountLabel??"Connected account";return n.workspaceLabel?`${a} / ${n.workspaceLabel}`:a}).join(", ")}export{J as AppsView,_ as ConnectedAppRow,M as connectedAppSetupTeamId};
1
+ import{r,bF as b,p as L,j as e,ar as I,a as k,X as P,O as F,a4 as E,ba as U,bG as T,h as R}from"./index-Dcpm2LlR.js";const O=["For agents","Featured","Productivity","Developer tools"],D=new Set(["slack","google","github","mcp"]);function J({account:s,connection:n,defaultTeamId:a,onToast:o}){const[c,f]=r.useState(null),[p,v]=r.useState(""),[i,y]=r.useState("For agents"),[u,h]=r.useState(()=>b()),[g,d]=r.useState("idle"),[w,x]=r.useState(null),S=s?.baseUrl??s?.activeProfile?.baseUrl??null,C=M(a,w),N=r.useMemo(()=>u.filter(t=>z(t,i)).filter(t=>q(t,p)),[i,p,u]);r.useEffect(()=>{let t=!0;return n?(d("loading"),L.connectedAppStatus(n,{status:"all"}).then(l=>{t&&(h(l.apps),x(l.teamId?.trim()||null),d("ready"))}).catch(l=>{t&&(console.warn("Unable to load connected app status.",l),h(b()),x(null),d("error"))}),()=>{t=!1}):(h(b()),d("idle"),x(null),()=>{t=!1})},[n]);function A(t){const l=T({appId:t.id,baseUrl:S,teamId:C});G(l).catch(j=>{o?.(j instanceof Error?j.message:String(j),"error")})}return e.jsxs("section",{className:"connected-apps-view","aria-label":"Apps",children:[e.jsxs("div",{className:"connected-apps-header",children:[e.jsxs("div",{children:[e.jsx("h1",{children:"Apps"}),e.jsx("p",{children:"Connect apps that agents can use for chat, knowledge, files, and workflow actions."})]}),e.jsxs("label",{className:"connected-apps-search",children:[e.jsx(I,{size:15}),e.jsx("input",{"aria-label":"Search apps",onChange:t=>v(t.target.value),placeholder:"Search apps",type:"search",value:p})]})]}),e.jsxs("div",{className:`connected-apps-status-strip ${g}`,children:[e.jsx("span",{children:V(g)}),e.jsxs("span",{children:[W(u)," connected"]})]}),e.jsxs("section",{className:"connected-apps-hero","aria-label":"App context",children:[e.jsxs("div",{className:"connected-apps-hero-copy",children:[e.jsx("span",{className:"connected-apps-hero-icon",children:e.jsx(m,{appId:"github"})}),e.jsx("h2",{children:"Work with your apps"}),e.jsx("p",{children:"Bring repositories, documents, chat, calendars, and custom MCP tools into OpenPond."})]}),e.jsxs("div",{className:"connected-apps-context-card","aria-hidden":"true",children:[e.jsx("strong",{children:"Agent context"}),e.jsxs("div",{children:[e.jsx("span",{className:"files",children:"Files"}),e.jsx("span",{className:"chat",children:"Chat"}),e.jsx("span",{className:"oauth",children:"OAuth"}),e.jsx("span",{className:"mcp",children:"MCP"})]})]})]}),e.jsx("div",{className:"connected-apps-filters",role:"tablist","aria-label":"App categories",children:O.map(t=>e.jsx("button",{"aria-selected":i===t,className:i===t?"active":"",onClick:()=>y(t),role:"tab",type:"button",children:t},t))}),e.jsxs("div",{className:"connected-apps-list",children:[N.map(t=>e.jsx(_,{app:t,onSelect:()=>f(t)},t.id)),N.length===0?e.jsx("div",{className:"connected-apps-empty",children:"No apps match the current search."}):null]}),c?e.jsx($,{app:c,onClose:()=>f(null),onInstall:()=>A(c)}):null]})}function M(s,n){const a=s?.trim();return a||n?.trim()||null}function _({app:s,onSelect:n}){return e.jsxs("button",{className:"connected-app-row",onClick:n,type:"button",children:[e.jsxs("span",{className:"connected-app-row-main",children:[e.jsx(m,{appId:s.id}),e.jsxs("span",{className:"connected-app-copy",children:[e.jsxs("span",{className:"connected-app-title",children:[e.jsx("strong",{children:s.label}),e.jsxs("span",{children:[s.shortLabel!==s.label?s.shortLabel:s.category," / ",s.setupSurfaceLabel]})]}),e.jsx("span",{children:s.description}),e.jsxs("span",{className:"connected-app-capability-row",children:[s.capabilityLabels.slice(0,2).map(a=>e.jsx("span",{children:a},a)),s.capabilityLabels.length>2?e.jsxs("span",{children:["+",s.capabilityLabels.length-2]}):null]})]})]}),e.jsx("span",{className:`connected-app-status-pill ${s.status}`,children:s.statusLabel}),e.jsx(k,{size:16})]})}function $({app:s,onClose:n,onInstall:a}){const o=s.connections.filter(c=>c.status==="active");return e.jsx("div",{className:"connected-app-dialog-backdrop",role:"presentation",onMouseDown:c=>{c.target===c.currentTarget&&n()},children:e.jsxs("section",{className:"connected-app-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"connected-app-dialog-title",children:[e.jsx("button",{className:"connected-app-dialog-close",type:"button","aria-label":"Close app details",onClick:n,children:e.jsx(P,{size:17})}),e.jsxs("div",{className:"connected-app-dialog-identity",children:[e.jsx("span",{className:"openpond-mark",children:e.jsx("img",{alt:"",src:F})}),e.jsxs("span",{className:"connection-dots","aria-hidden":"true",children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]}),e.jsx(m,{appId:s.id})]}),e.jsxs("h2",{id:"connected-app-dialog-title",children:["Connect ",s.label]}),e.jsxs("div",{className:"connected-app-approval",children:[e.jsx(E,{size:16}),e.jsx("span",{children:s.statusLabel})]}),e.jsxs("div",{className:"connected-app-dialog-body",children:[e.jsxs("section",{children:[e.jsx("h3",{children:s.setupSurfaceLabel}),e.jsx("p",{children:"The web flow shows the provider account, workspace, and requested access before anything is connected."})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Connected account"}),e.jsx("p",{children:X(o)})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Available capabilities"}),e.jsx("div",{className:"connected-app-dialog-capabilities",children:s.capabilities.map(c=>e.jsx("span",{children:c.label},c.id))})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Sandbox lease policy"}),e.jsx("p",{children:s.leasePolicy.leaseable?`Leaseable for ${s.leasePolicy.defaultTtlSeconds??0} seconds with scoped proxy access.`:"Managed as setup or tool discovery; no OAuth lease is required."})]})]}),e.jsxs("button",{className:"connected-app-dialog-primary",type:"button",onClick:a,children:[e.jsx("span",{children:s.installLabel}),e.jsx(U,{size:15})]})]})})}function m({appId:s}){return e.jsx("span",{className:`connected-app-icon app-${s}`,children:e.jsx("img",{alt:"",src:B(s)})})}function z(s,n){return n==="For agents"?!0:n==="Featured"?D.has(s.id):n==="Productivity"?s.category==="Productivity"||s.category==="Chat":s.category==="Developer tools"||s.id==="mcp"}function q(s,n){const a=n.trim().toLowerCase();return a?[s.id,s.label,s.shortLabel,s.category,s.description,s.providerFamily,s.setupSurface].some(o=>o.toLowerCase().includes(a)):!0}function B(s){return R(s)}async function G(s){const n=window.openpond?.browser;if(n){const a=await n.openExternal({conversationId:"connected-apps",url:s});if(!a.ok)throw new Error(a.error??"Unable to open app setup.");return}window.open(s,"_blank","noopener,noreferrer")}function V(s){return s==="loading"?"Checking connections":s==="ready"?"Connection status current":s==="error"?"Connection status unavailable":"Connection status pending"}function W(s){return s.filter(n=>n.connected).length}function X(s){return s.length===0?"No active OAuth connection for this setup surface.":s.map(n=>{const a=n.accountLabel??"Connected account";return n.workspaceLabel?`${a} / ${n.workspaceLabel}`:a}).join(", ")}export{J as AppsView,_ as ConnectedAppRow,M as connectedAppSetupTeamId};
@@ -0,0 +1 @@
1
+ import{r as c,c2 as v,j as a,a1 as f,X as k,P as j,A as C,ba as g,bp as B}from"./index-Dcpm2LlR.js";import{A as y}from"./MarkdownText-DgS9KdyT.js";import{R as N}from"./refresh-cw-CRZeaNu7.js";import{S as T}from"./square-CSULphDY.js";const x=[];function P(r){const e=window.openpond?.browser,[b,l]=c.useState(()=>({conversationId:r,activeTabId:null,tabs:x}));c.useEffect(()=>{if(l({conversationId:r,activeTabId:null,tabs:x}),!e)return;let s=!1;e.getState({conversationId:r}).then(o=>{s||l(o)});const i=e.onState(o=>{o.conversationId===r&&l(o)});return()=>{s=!0,i()}},[e,r]);const u=c.useMemo(()=>b.tabs.find(s=>s.id===b.activeTabId)??null,[b.activeTabId,b.tabs]),t=c.useCallback(async(s,i={})=>{if(!e)return!1;const o=v(s,{explicitFile:i.explicitFile});return o?(i.newTab?await e.newTab({conversationId:r,url:o,explicitFile:i.explicitFile}):await e.open({conversationId:r,url:o,explicitFile:i.explicitFile}),!0):!1},[e,r]),n=u?{conversationId:r,tabId:u.id}:null;return{activeTab:u,available:!!e,bridge:e,state:b,back:()=>e&&n?e.back(n):Promise.resolve({ok:!1}),clearData:()=>e?e.clearData({conversationId:r}):Promise.resolve({ok:!1}),closeTab:s=>e?e.closeTab({conversationId:r,tabId:s}):Promise.resolve({ok:!1}),forward:()=>e&&n?e.forward(n):Promise.resolve({ok:!1}),newTab:s=>e?e.newTab({conversationId:r,url:s}):Promise.resolve({ok:!1}),open:t,openExternal:()=>e&&n?e.openExternal(n):Promise.resolve({ok:!1}),reload:()=>e&&n?e.reload(n):Promise.resolve({ok:!1}),snapshot:(s={})=>e?e.snapshot({conversationId:r,...s}):Promise.resolve({ok:!1,output:"Desktop browser bridge unavailable."}),moveCursor:s=>e?e.moveCursor({conversationId:r,...s}):Promise.resolve({ok:!1,output:"Desktop browser bridge unavailable."}),click:s=>e?e.click({conversationId:r,...s}):Promise.resolve({ok:!1,output:"Desktop browser bridge unavailable."}),typeText:s=>e?e.typeText({conversationId:r,...s}):Promise.resolve({ok:!1,output:"Desktop browser bridge unavailable."}),key:s=>e?e.key({conversationId:r,...s}):Promise.resolve({ok:!1,output:"Desktop browser bridge unavailable."}),scroll:s=>e?e.scroll({conversationId:r,...s}):Promise.resolve({ok:!1,output:"Desktop browser bridge unavailable."}),selectTab:s=>e?e.selectTab({conversationId:r,tabId:s}):Promise.resolve({ok:!1}),setBounds:s=>e?e.setBounds({conversationId:r,bounds:s}):Promise.resolve({ok:!1}),stop:()=>e&&n?e.stop(n):Promise.resolve({ok:!1})}}function R({activeTabId:r,tabs:e,onCloseTab:b,onNewTab:l,onSelectTab:u}){return a.jsxs("div",{className:"browser-tabs",role:"tablist","aria-label":"Browser tabs",children:[e.map(t=>a.jsxs("div",{className:`browser-tab ${t.id===r?"active":""}`,children:[a.jsx("span",{className:"browser-tab-favicon","aria-hidden":"true",children:t.faviconUrl?a.jsx("img",{alt:"",referrerPolicy:"no-referrer",src:t.faviconUrl}):a.jsx(f,{size:13})}),a.jsx("button",{type:"button",className:"browser-tab-main",role:"tab","aria-selected":t.id===r,title:t.url,onClick:()=>u(t.id),children:E(t)}),a.jsx("button",{type:"button",className:"browser-tab-close",title:"Close tab","aria-label":"Close tab",onClick:()=>b(t.id),children:a.jsx(k,{size:12})})]},t.id)),a.jsx("button",{type:"button",className:"browser-tab-add",title:"New tab","aria-label":"New tab",onClick:l,children:a.jsx(j,{size:14})})]})}function E(r){if(r.title?.trim())return r.title.trim();try{return new URL(r.url).host||r.url}catch{return r.url||"New tab"}}function z({activeTab:r,available:e,onBack:b,onClearData:l,onForward:u,onNavigate:t,onOpenExternal:n,onReload:s,onStop:i}){const[o,d]=c.useState(""),[p,m]=c.useState(!1);c.useEffect(()=>{d(r?.url??"")},[r?.url]);function h(w){w.preventDefault(),t(o)}return a.jsxs("div",{className:"browser-toolbar",children:[a.jsxs("div",{className:"browser-nav-actions",children:[a.jsx("button",{type:"button",title:"Back","aria-label":"Back",disabled:!r?.canGoBack,onClick:b,children:a.jsx(C,{size:15})}),a.jsx("button",{type:"button",title:"Forward","aria-label":"Forward",disabled:!r?.canGoForward,onClick:u,children:a.jsx(y,{size:15})}),a.jsx("button",{type:"button",title:r?.loading?"Stop":"Reload","aria-label":r?.loading?"Stop":"Reload",disabled:!r,onClick:r?.loading?i:s,children:r?.loading?a.jsx(T,{size:13}):a.jsx(N,{size:14})})]}),a.jsx("form",{className:"browser-address-form",onSubmit:h,children:a.jsx("input",{"aria-label":"Browser address",disabled:!e,placeholder:e?"Search or enter address":"Desktop browser unavailable",spellCheck:!1,value:o,onChange:w=>d(w.target.value)})}),a.jsxs("div",{className:"browser-panel-actions",children:[a.jsx("button",{type:"button",title:"Open external","aria-label":"Open external",disabled:!r,onClick:n,children:a.jsx(g,{size:14})}),a.jsxs("div",{className:"browser-menu-anchor",children:[a.jsx("button",{type:"button",title:"Browser actions","aria-label":"Browser actions",onClick:()=>m(w=>!w),children:a.jsx(B,{size:15})}),p&&a.jsx("div",{className:"browser-options-menu",role:"menu",children:a.jsx("button",{type:"button",role:"menuitem",onClick:()=>{m(!1),l()},children:"Clear Browser Data..."})})]})]})]})}function D({active:r,onBounds:e}){const b=c.useRef(null),l=c.useRef(null),u=c.useRef(null),t=c.useCallback(i=>{const o=i?`${i.x}:${i.y}:${i.width}:${i.height}`:"null";l.current!==o&&(l.current=o,e(i))},[e]),n=c.useCallback(()=>{const i=b.current;if(!r||!i){t(null);return}const o=i.getBoundingClientRect(),d=Math.max(0,Math.round(o.width)),p=Math.max(0,Math.round(o.height));if(d===0||p===0){t(null);return}t({x:Math.round(o.left),y:Math.round(o.top),width:d,height:p})},[r,t]),s=c.useCallback(()=>{u.current===null&&(u.current=window.requestAnimationFrame(()=>{u.current=null,n()}))},[n]);return c.useLayoutEffect(()=>{l.current=null,n();const i=b.current;if(!r||!i)return t(null),()=>t(null);const o=new ResizeObserver(s);return o.observe(i),window.addEventListener("resize",s),window.addEventListener("scroll",s,!0),()=>{u.current!==null&&(window.cancelAnimationFrame(u.current),u.current=null),o.disconnect(),window.removeEventListener("resize",s),window.removeEventListener("scroll",s,!0),t(null)}},[r,t,n,s]),a.jsx("div",{className:"browser-viewport",ref:b})}function A({conversationId:r,expanded:e,onResizeStart:b}){const l=P(r),u=c.useCallback(s=>{window.openpond?.browser?.setBounds({conversationId:r,bounds:s})},[r]),t=c.useCallback(s=>{l.open(s,{explicitFile:!0})},[l]),n=c.useCallback(()=>{window.confirm("Clear browser data for this conversation? Tabs, cookies, cache, and local storage for this conversation will be removed.")&&l.clearData()},[l]);return a.jsxs("aside",{className:`workspace-diff-panel browser-sidebar-panel ${e?"expanded":""}`,"aria-label":"Browser",children:[!e&&a.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize browser panel",onPointerDown:b}),a.jsx(R,{activeTabId:l.state.activeTabId,tabs:l.state.tabs,onCloseTab:s=>{l.closeTab(s)},onNewTab:()=>{l.newTab()},onSelectTab:s=>{l.selectTab(s)}}),a.jsx(z,{activeTab:l.activeTab,available:l.available,onBack:()=>{l.back()},onClearData:n,onForward:()=>{l.forward()},onNavigate:t,onOpenExternal:()=>{l.openExternal()},onReload:()=>{l.reload()},onStop:()=>{l.stop()}}),a.jsxs("div",{className:"browser-content",children:[l.available?l.state.tabs.length===0?a.jsxs("div",{className:"browser-empty-state",children:[a.jsx(f,{size:18}),a.jsx("span",{children:"Enter a URL to open a browser tab for this conversation."})]}):null:a.jsxs("div",{className:"browser-empty-state",children:[a.jsx(f,{size:18}),a.jsx("span",{children:"Desktop browser bridge unavailable."})]}),a.jsx(D,{active:l.available&&l.state.tabs.length>0,onBounds:u})]})]})}export{A as BrowserSidebar};
@@ -0,0 +1 @@
1
+ import{r as j,j as e,ar as g,as as b,at as x,e as k,F as v,au as C,av as P,a2 as w,aw as M,ax as L}from"./index-Dcpm2LlR.js";function F({open:s,query:r,projects:n,sessions:o,onQueryChange:t,onClose:d,onNewChat:f,onOpenProject:u,onOpenSession:m}){const c=r.trim().toLowerCase(),l=j.useMemo(()=>S(o,c,10),[c,o]),i=j.useMemo(()=>z(n,c,8),[c,n]);if(!s)return null;const N=()=>{const a=i[0];if(a){u(a);return}const p=l[0];p&&m(p)};return e.jsx("div",{className:"command-overlay",role:"presentation",onMouseDown:d,children:e.jsxs("section",{className:"command-menu",role:"dialog","aria-modal":"true","aria-label":"Search chats and projects",onMouseDown:a=>a.stopPropagation(),children:[e.jsxs("div",{className:"command-input-row",children:[e.jsx(g,{size:17}),e.jsx("input",{autoFocus:!0,value:r,onChange:a=>t(a.target.value),onKeyDown:a=>{a.key==="Enter"&&(a.preventDefault(),N()),a.key==="Escape"&&(a.preventDefault(),d())},placeholder:"Search chats and projects"}),e.jsx("kbd",{children:"Esc"})]}),e.jsxs("div",{className:"command-results",children:[e.jsxs("button",{className:"command-result command-create",onClick:f,children:[e.jsx(b,{size:15}),e.jsx("span",{children:"New local task"}),e.jsx("small",{children:"General"})]}),e.jsxs(h,{label:"Projects",children:[i.map(a=>e.jsxs("button",{className:"command-result",onClick:()=>u(a),children:[x(a)?e.jsx(k,{size:15}):e.jsx(v,{size:15}),e.jsx("span",{children:a.project.name}),e.jsx("small",{children:D(a)})]},a.project.id)),i.length===0&&e.jsx("div",{className:"command-empty",children:"No projects found"})]}),e.jsxs(h,{label:"Chats",children:[l.map(a=>e.jsxs("button",{className:"command-result",onClick:()=>m(a),children:[a.pinned?e.jsx(C,{size:15}):a.savedForLater?e.jsx(P,{size:15}):e.jsx(w,{size:15}),e.jsx("span",{children:a.title}),e.jsx("small",{children:a.appName??M(a.updatedAt)})]},a.id)),l.length===0&&e.jsx("div",{className:"command-empty",children:"No chats found"})]})]})]})})}function S(s,r,n){const o=[];for(const t of s)if((!r||`${t.title} ${t.appName??""}`.toLowerCase().includes(r))&&(o.push(t),o.length>=n))break;return o}function z(s,r,n){const o=[];for(const t of s)if((!r||$(t).toLowerCase().includes(r))&&(o.push(t),o.length>=n))break;return o}function $(s){return L(s)?`${s.project.name} ${s.project.path} ${s.project.workspacePath}`:`${s.project.name} ${s.project.sourceLabel??""} ${s.project.organizationName??""}`}function D(s){return x(s)?s.project.organizationName??"Cloud Project":s.project.linkedOpenPondApp?"OpenPond project":s.project.source==="git"?"Local Git":"Local folder"}function h({label:s,children:r}){return e.jsxs("div",{className:"command-group",children:[e.jsx("div",{className:"command-group-label",children:s}),r]})}export{F as CommandMenu};
@@ -0,0 +1 @@
1
+ import{r as l,j as e,X as H,as as Z,ay as M,co as O}from"./index-Dcpm2LlR.js";import{S as ee,W as se,B as ne,a as te}from"./wifi-off-BZpON33U.js";import{R as F}from"./refresh-cw-CRZeaNu7.js";import{i as ie,j as ae,k as le,l as oe,r as re,m as ce,R as de}from"./MainPane-o4HIxmNz.js";import{T as me,b as J}from"./MarkdownText-DgS9KdyT.js";import"./cloud-upload-Bgv1fA6E.js";import"./arrow-up-right-wvL_rSwe.js";import"./square-CSULphDY.js";import"./folder-open-CRAYp6pW.js";const ue=2e4,R=10,he=12*1024*1024,ye=new Set(["image/png","image/jpeg","image/webp","image/gif"]);function ge(s){const[n,m]=l.useState(""),[a,y]=l.useState(0),[c,u]=l.useState([]),[f,i]=l.useState(null),[b,h]=l.useState(!1),[p,C]=l.useState([]),[N,v]=l.useState(0),[o,I]=l.useState(null),k=l.useRef(null),E=l.useRef(null),D=l.useRef(c);D.current=c;const g=l.useMemo(()=>xe(n,a),[n,a]),S=g?`${g.start}:${g.end}:${g.query}`:null,T=g?.query??null,w=l.useMemo(()=>{if(!g)return[];const t=new Map;for(const d of[...s.members,...p])t.set(d.userId,d);const r=g.query.toLowerCase();return[...t.values()].filter(d=>`${d.handle??""} ${d.name??""}`.toLowerCase().includes(r)).slice(0,8)},[g,s.members,p]),B=!!(g&&S!==o&&w.length>0),L=!!(s.disabled||s.busy||b),U=!L&&(!!n.trim()||c.length>0);l.useEffect(()=>{if(T==null){C([]);return}let t=!0;const r=window.setTimeout(()=>{s.onSearchMembers(T).then(d=>{t&&C(d)},()=>{t&&C([])})},150);return()=>{t=!1,window.clearTimeout(r)}},[T,s.onSearchMembers]),l.useEffect(()=>{v(0)},[S]),l.useEffect(()=>()=>K(D.current),[]);async function $(t){if(t?.preventDefault(),!!U){i(null),h(!0);try{const r=await Promise.all(c.map(re));if(!await s.onSend({body:n,mentionUserIds:fe(n,s.members),attachments:r,replyToMessageId:s.replyTo?.id??null}))return;K(c),m(""),y(0),u([]),s.onCancelReply()}catch(r){i(r instanceof Error?r.message:String(r))}finally{h(!1)}}}function V(t){if(B){if(t.key==="ArrowDown"){t.preventDefault(),v(r=>(r+1)%w.length);return}if(t.key==="ArrowUp"){t.preventDefault(),v(r=>(r-1+w.length)%w.length);return}if(t.key==="Enter"||t.key==="Tab"){t.preventDefault(),z(w[N]??w[0]);return}if(t.key==="Escape"){t.preventDefault(),I(S);return}}t.key!=="Enter"||t.shiftKey||t.nativeEvent.isComposing||(t.preventDefault(),$())}function G(t){if(!t)return;i(null);const r=Math.max(0,R-c.length);if(r===0){i(`You can attach up to ${R} images.`),A();return}const d=[...t],j=d.slice(0,r),P=j.find(x=>!ye.has(x.type)),q=j.find(x=>x.size<=0||x.size>he);if(P){i(`${P.name} is not a supported image type.`),A();return}if(q){i(`${q.name} must be smaller than 12 MB.`),A();return}const Q=j.map(x=>({id:ce(),file:x,name:x.name,mediaType:x.type,sizeBytes:x.size,kind:"image",previewUrl:URL.createObjectURL(x)}));u(x=>[...x,...Q]),d.length>r&&i(`Only ${R} images can be attached to one message.`),A()}function W(t){u(r=>{const d=r.find(j=>j.id===t);return d?.previewUrl&&URL.revokeObjectURL(d.previewUrl),r.filter(j=>j.id!==t)})}function A(){k.current&&(k.current.value="")}function z(t){if(!g)return;const r=`@${X(t)} `,d=`${n.slice(0,g.start)}${r}${n.slice(g.end)}`,j=g.start+r.length;m(d),y(j),I(null),window.requestAnimationFrame(()=>E.current?.focusAtPromptIndex(j))}return e.jsxs("form",{className:`composer dock community-composer${c.length>0?" has-attachments":""}${f?" has-attachment-error":""}`,onSubmit:$,children:[s.replyTo?e.jsxs("div",{className:"community-composer-reply",children:[e.jsxs("span",{children:[e.jsx("strong",{children:"Replying to"}),s.replyTo.body.slice(0,100)||"message"]}),e.jsx("button",{type:"button","aria-label":"Cancel reply",onClick:s.onCancelReply,children:e.jsx(H,{size:13})})]}):null,B?e.jsx("div",{className:"community-mention-menu",role:"listbox","aria-label":"Community members",children:w.map((t,r)=>e.jsxs("button",{type:"button",role:"option","aria-selected":r===N,onMouseDown:d=>d.preventDefault(),onClick:()=>z(t),children:[e.jsx("strong",{children:t.name??t.handle??"Community member"}),t.handle?e.jsxs("small",{children:["@",t.handle]}):null]},t.userId))}):null,e.jsxs("div",{className:"composer-input-shell",children:[c.length>0?e.jsx("div",{className:"composer-attachments","aria-label":"Selected attachments",children:c.map(t=>e.jsx(ie,{attachment:t,onRemove:()=>W(t.id)},t.id))}):null,f?e.jsx("div",{className:"composer-attachment-error",role:"status",children:f}):null,e.jsx("div",{className:"composer-textarea-frame",onClick:t=>{t.target===t.currentTarget&&E.current?.focusAtPromptIndex(a)},children:e.jsx(ae,{ref:E,disabled:L,onCursorChange:y,onKeyDown:V,onPromptChange:(t,r)=>{const d=t.slice(0,ue);m(d),y(Math.min(r,d.length))},onTokenPositionChange:()=>{},placeholder:s.disabled?"Accept the community rules to post":"Message community",prompt:n,token:null})}),e.jsxs("div",{className:"composer-primary-controls team-chat-composer-controls",children:[e.jsx("input",{ref:k,className:"composer-file-input",hidden:!0,type:"file",accept:"image/png,image/jpeg,image/webp,image/gif",multiple:!0,onChange:t=>G(t.currentTarget.files)}),e.jsx("button",{type:"button",className:"composer-icon","aria-label":"Attach images",disabled:L||c.length>=R,onClick:()=>k.current?.click(),children:e.jsx(le,{size:17})}),e.jsx("div",{className:"composer-spacer"}),e.jsx("button",{type:"submit",className:"send-button","aria-label":"Send message",disabled:!U,children:e.jsx(oe,{size:17})})]})]})]})}function xe(s,n=s.length){const m=Math.max(0,Math.min(n,s.length)),a=/(?:^|\s)@([\w-]*)$/.exec(s.slice(0,m));return!a||a.index==null?null:{start:a.index+a[0].indexOf("@"),end:m,query:a[1]??""}}function fe(s,n){const m=new Set([...s.matchAll(/(?:^|\s)@([\w-]+)/g)].map(a=>a[1]?.toLowerCase()));return n.filter(a=>m.has(X(a).toLowerCase())).map(a=>a.userId)}function X(s){return s.handle??s.name?.replace(/[^\w-]/g,"")??s.userId}function K(s){for(const n of s)n.previewUrl&&URL.revokeObjectURL(n.previewUrl)}function be(s){const[n,m]=l.useState(!1),[a,y]=l.useState(s.message.body),c=s.message.refs.find(i=>i.refType==="message_reply"),u=c?s.messagesById.get(c.refId)??null:null,f=u?.authorUserId?s.membersById.get(u.authorUserId)??null:null;return e.jsxs("article",{className:`community-message${s.own?" own":""}`,id:`community-message-${s.message.id}`,children:[e.jsx("div",{className:"community-avatar",children:je(s.author?.name??s.author?.handle??"?")}),e.jsxs("div",{className:"community-message-content",children:[e.jsxs("header",{children:[e.jsx("strong",{children:s.author?.name??s.author?.handle??"Community member"}),e.jsx("time",{dateTime:s.message.createdAt,children:pe(s.message.createdAt)}),s.message.editedAt?e.jsx("span",{children:"edited"}):null,s.message.deletedAt?null:e.jsxs("div",{className:"community-message-actions",children:[e.jsx("button",{type:"button","aria-label":"Reply",onClick:()=>s.onReply(s.message),children:e.jsx(de,{size:13})}),s.own?e.jsx("button",{type:"button","aria-label":"Edit",onClick:()=>m(!0),children:e.jsx(Z,{size:13})}):null,s.own?e.jsx("button",{type:"button","aria-label":"Delete",onClick:()=>{s.onDelete(s.message.id)},children:e.jsx(me,{size:13})}):null]})]}),c?e.jsxs("button",{type:"button",className:"community-reply-quote",onClick:()=>document.getElementById(`community-message-${c.refId}`)?.scrollIntoView({behavior:"smooth",block:"center"}),children:[e.jsx("strong",{children:f?.name??"Community member"}),e.jsx("span",{children:u?.deletedAt?"Message deleted":u?.body??String(c.preview.body??"Earlier message")})]}):null,n?e.jsxs("form",{className:"community-message-edit",onSubmit:i=>{i.preventDefault(),s.onEdit(s.message.id,a).then(b=>{b&&m(!1)})},children:[e.jsx("textarea",{autoFocus:!0,value:a,onChange:i=>y(i.currentTarget.value)}),e.jsxs("div",{children:[e.jsx("button",{type:"button",onClick:()=>m(!1),children:"Cancel"}),e.jsx("button",{type:"submit",disabled:!a.trim(),children:"Save"})]})]}):s.message.deletedAt?e.jsx("div",{className:"community-message-deleted",children:"Message deleted"}):e.jsx(J,{content:s.message.body}),!s.message.deletedAt&&s.message.attachments.length>0?e.jsx("div",{className:"community-message-attachments",children:s.message.attachments.map(i=>s.attachmentsAccessible?e.jsxs("button",{type:"button",onClick:()=>{s.onDownloadAttachment(i.id)},children:[e.jsx("span",{children:i.name}),e.jsx("small",{children:_(i.sizeBytes)})]},i.id):e.jsxs("div",{className:"community-attachment-placeholder",children:[e.jsx("span",{children:i.name}),e.jsxs("small",{children:["Join to view · ",_(i.sizeBytes)]})]},i.id))}):null]})]})}function je(s){return s.split(/\s+/).slice(0,2).map(n=>n[0]?.toUpperCase()??"").join("")||"?"}function pe(s){const n=new Date(s);return Number.isNaN(n.getTime())?"":n.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function _(s){return s<1024?`${s} B`:s<1024*1024?`${Math.round(s/1024)} KB`:`${(s/1024/1024).toFixed(1)} MB`}function ve(s){const[n,m]=l.useState(!1),a=l.useRef(null),y=l.useRef(s.onClose);l.useEffect(()=>m(!1),[s.rules.id]),l.useEffect(()=>{y.current=s.onClose},[s.onClose]),l.useEffect(()=>{const u=document.activeElement instanceof HTMLElement?document.activeElement:null,f=a.current,i=()=>[...f?.querySelectorAll('button:not([disabled]), input:not([disabled]), [href], [tabindex]:not([tabindex="-1"])')??[]];i()[0]?.focus();const b=h=>{if(h.key==="Escape"){h.preventDefault(),y.current();return}if(h.key!=="Tab")return;const p=i();if(p.length===0){h.preventDefault(),f?.focus();return}const C=p[0],N=p.at(-1);h.shiftKey&&document.activeElement===C?(h.preventDefault(),N.focus()):!h.shiftKey&&document.activeElement===N&&(h.preventDefault(),C.focus())};return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b),u?.focus()}},[]);const c=s.mode!=="review";return e.jsx("div",{className:"community-dialog-backdrop",role:"presentation",onMouseDown:s.onClose,children:e.jsxs("section",{ref:a,className:"community-rules-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"community-rules-title",tabIndex:-1,onMouseDown:u=>u.stopPropagation(),children:[e.jsxs("header",{children:[e.jsxs("div",{children:[e.jsxs("small",{children:["Community rules · version ",s.rules.version]}),e.jsx("h2",{id:"community-rules-title",children:s.rules.title})]}),e.jsx("button",{type:"button","aria-label":"Close rules",onClick:s.onClose,children:e.jsx(H,{size:16})})]}),e.jsx("div",{className:"community-rules-body",children:e.jsx(J,{content:s.rules.bodyMarkdown})}),e.jsxs("footer",{children:[c?e.jsxs("label",{className:"community-rules-acceptance",children:[e.jsx("input",{type:"checkbox",checked:n,onChange:u=>m(u.currentTarget.checked)}),e.jsx("span",{children:"I have read and agree to follow these rules."})]}):e.jsx("span",{}),e.jsxs("div",{children:[e.jsx("button",{type:"button",className:"secondary",onClick:s.onClose,children:"Cancel"}),c?e.jsx("button",{type:"button",disabled:!n||s.busy,onClick:()=>{s.onAccept().then(u=>{u&&s.onClose()})},children:s.busy?"Saving…":s.mode==="join"?"Agree and join":"Accept updated rules"}):null]})]})]})})}function Le({communities:s,chat:n,currentUserId:m}){M(s.discoveryError),M(s.previewError),M(s.membershipError?.message),M(n.channelsError,{prefix:"Channels"}),M(n.messagesError,{prefix:"Messages"}),M(n.actionError);const[a,y]=l.useState(null),[c,u]=l.useState(null),f=l.useRef(null),i=s.preview,b=i?.membership?.status==="active",h=!!i?.capabilities.requiresRulesAcceptance,p=l.useMemo(()=>new Map(n.members.map(o=>[o.userId,o])),[n.members]),C=l.useMemo(()=>new Map(n.messages.map(o=>[o.id,o])),[n.messages]),N=n.messages.at(-1)?.sequence??0;if(l.useEffect(()=>{const o=f.current;o&&(o.scrollTop=o.scrollHeight)},[n.selectedChannelId,N]),l.useEffect(()=>{u(null),h&&i?.currentRules&&y("reaccept")},[i?.currentRules,h]),!s.selectedSummary)return e.jsx("section",{className:"community-empty-page",children:e.jsxs("div",{className:"community-discovery-card",children:[e.jsx(O,{size:30}),e.jsx("h1",{children:"Discover communities"}),e.jsx("p",{children:s.discoveryLoading&&s.items.length===0?"Finding communities…":"Preview public conversations and join after accepting each community's rules."}),s.items.length>0?e.jsx("div",{className:"community-discovery-list",children:s.items.map(o=>e.jsxs("button",{type:"button",onClick:()=>s.selectCommunity(o.id),children:[e.jsx(Y,{name:o.displayName,imageUrl:o.imageUrl}),e.jsxs("span",{children:[e.jsx("strong",{children:o.displayName}),e.jsx("small",{children:o.description})]}),e.jsx("em",{children:o.membership?.status==="active"?"Joined":o.featuredAt?"Featured":`${o.memberCount.toLocaleString()} members`})]},o.id))}):s.discoveryLoading?null:e.jsx("div",{className:"community-state",children:"No public communities are available yet."}),e.jsxs("div",{className:"community-discovery-actions",children:[e.jsxs("button",{type:"button",onClick:()=>{s.refresh()},disabled:s.discoveryLoading,children:[e.jsx(F,{size:14})," Refresh"]}),s.nextCursor?e.jsx("button",{type:"button",className:"secondary",onClick:()=>{s.loadMore()},disabled:s.discoveryLoading,children:"Load more"}):null]})]})});if(!i&&s.previewLoading)return e.jsx("section",{className:"community-empty-page",children:e.jsxs("div",{className:"community-empty-card",children:[e.jsx("span",{className:"community-spinner"})," Loading community…"]})});if(!i)return e.jsx("section",{className:"community-empty-page",children:e.jsxs("div",{className:"community-empty-card",children:[e.jsx("h1",{children:s.selectedSummary.displayName}),e.jsx("div",{className:"community-state",children:"This community preview is unavailable."}),e.jsxs("button",{type:"button",onClick:()=>s.selectCommunity(s.selectedSummary.id),children:[e.jsx(F,{size:14})," Retry preview"]})]})});const v=i.currentRules;return e.jsxs("section",{className:"community-view",children:[e.jsxs("header",{className:"community-header",children:[e.jsxs("div",{className:"community-heading",children:[e.jsx(Y,{name:i.displayName,imageUrl:i.imageUrl}),e.jsxs("div",{children:[e.jsx("small",{children:i.displayName}),e.jsx("h1",{children:n.selectedChannel?`# ${n.selectedChannel.displayName}`:i.displayName}),e.jsx("p",{children:n.selectedChannel?.topic||i.description})]})]}),e.jsxs("div",{className:"community-header-actions",children:[e.jsxs("span",{className:"community-member-count",children:[e.jsx(O,{size:14})," ",i.memberCount.toLocaleString()]}),v?e.jsxs("button",{type:"button",className:"secondary",onClick:()=>y("review"),children:[e.jsx(ee,{size:14})," Rules"]}):null,b?e.jsx(Ce,{mode:i.membership?.notificationMode??"mentions",busy:s.membershipBusy,onMode:s.updateNotifications,onLeave:s.leave}):null]})]}),e.jsxs("div",{className:"community-chat-main conversation-surface-main",children:[e.jsxs("div",{className:"community-chat-notices",children:[b?h?e.jsxs("div",{className:"community-preview-banner warning",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"The rules have changed"}),e.jsx("span",{children:"Accept the current rules to continue reading live updates and posting."})]}),e.jsx("button",{type:"button",disabled:!v||s.membershipBusy,onClick:()=>y("reaccept"),children:"Review updated rules"})]}):null:e.jsxs("div",{className:"community-preview-banner",children:[e.jsxs("div",{children:[e.jsxs("strong",{children:["Previewing ",i.displayName]}),e.jsx("span",{children:"Read the public conversation, then accept the rules to join and post."})]}),e.jsx("button",{type:"button",disabled:!v||s.membershipBusy,onClick:()=>y("join"),children:"Join community"})]}),n.realtimeError&&b&&!h?e.jsxs("div",{className:"community-realtime-state",children:[e.jsx(se,{size:14}),e.jsx("span",{children:"Live updates are reconnecting. Loaded messages are still available."})]}):null,n.lostMembership?e.jsx("div",{className:"community-state error",children:"Your membership changed. Refresh the community before continuing."}):null,n.channelsError?e.jsx("button",{type:"button",className:"community-state",onClick:()=>{n.loadChannels()},children:"Retry loading channels"}):null]}),e.jsxs("div",{className:"community-message-pane conversation-message-scroll",ref:f,role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":n.messagesLoading,"aria-label":n.selectedChannel?`${i.displayName}, ${n.selectedChannel.displayName}`:i.displayName,tabIndex:0,children:[n.hasMoreBefore?e.jsx("button",{type:"button",className:"community-load-older",disabled:n.olderMessagesLoading,onClick:()=>{n.loadOlder()},children:n.olderMessagesLoading?"Loading…":"Load earlier messages"}):null,n.messagesLoading&&n.messages.length===0?e.jsx("div",{className:"community-message-state",children:"Loading messages…"}):null,n.messagesError?e.jsxs("div",{className:"community-message-state",children:["Messages are unavailable. ",e.jsx("button",{type:"button",onClick:()=>{n.loadMessages()},children:"Retry"})]}):null,!n.messagesLoading&&!n.messagesError&&n.messages.length===0?e.jsx("div",{className:"community-message-state",children:"No messages in this channel yet."}):null,n.messages.map(o=>e.jsx(be,{message:o,author:o.authorUserId?p.get(o.authorUserId)??null:null,own:o.authorUserId===m,attachmentsAccessible:!n.previewMode,membersById:p,messagesById:C,onReply:u,onEdit:n.editMessage,onDelete:n.deleteMessage,onDownloadAttachment:n.downloadAttachment},o.id))]}),b?e.jsxs("div",{className:"community-composer-wrap conversation-composer-shell",children:[n.failedSend?e.jsxs("div",{className:"community-failed-send",children:[e.jsx("span",{children:"Message not sent."}),e.jsx("button",{type:"button",disabled:n.sending,onClick:()=>{n.retrySend()},children:"Retry"}),e.jsx("button",{type:"button",onClick:n.dismissFailedSend,children:"Dismiss"})]}):null,e.jsx(ge,{members:n.members,replyTo:c,busy:n.sending,disabled:h||n.lostMembership||!n.selectedChannel||n.selectedChannel.postingPolicy==="admins"&&i.membership?.role==="member",onCancelReply:()=>u(null),onSearchMembers:n.searchMembers,onSend:n.sendMessage})]}):null]}),a&&v?e.jsx(ve,{rules:v,mode:a,busy:s.membershipBusy,onAccept:a==="join"?s.join:s.acceptRules,onClose:()=>y(null)}):null]})}function Ce(s){const[n,m]=l.useState(!1);return e.jsxs("div",{className:"community-membership-menu",children:[e.jsxs("button",{type:"button",className:"secondary","aria-expanded":n,onClick:()=>m(a=>!a),children:[s.mode==="none"?e.jsx(ne,{size:14}):e.jsx(te,{size:14})," Joined"]}),n?e.jsxs("div",{className:"community-membership-popover",children:[e.jsx("strong",{children:"Notifications"}),["mentions","all","none"].map(a=>e.jsxs("label",{children:[e.jsx("input",{type:"radio",name:"community-notifications",checked:s.mode===a,disabled:s.busy,onChange:()=>{s.onMode(a)}})," ",a==="mentions"?"Mentions":a==="all"?"All messages":"Nothing"]},a)),e.jsx("button",{type:"button",className:"danger",disabled:s.busy,onClick:()=>{window.confirm("Leave this community? You can join again later by accepting the current rules.")&&s.onLeave().then(a=>{a&&m(!1)})},children:"Leave community"})]}):null]})}function Y({name:s,imageUrl:n}){return n?e.jsx("img",{className:"community-icon",src:n,alt:""}):e.jsx("span",{className:"community-icon fallback",children:s.slice(0,2).toUpperCase()})}export{Le as CommunityView};
@@ -0,0 +1 @@
1
+ import{r as v,j as e,aK as _,cp as A,aS as P,i as x,X as j,d as y,bk as w}from"./index-Dcpm2LlR.js";import{P as q}from"./MarkdownText-DgS9KdyT.js";import{P as C}from"./play-B8en8HVG.js";import{R as k}from"./refresh-cw-CRZeaNu7.js";function K({runtime:s}){const[a,i]=v.useState(!1),[o,l]=v.useState(""),[n,u]=v.useState(null),t=s.run,h=t.plan,g=N(t),c={run:t},f=E(t.state),r=I(t),R=r?.git?.pullRequest??t.releaseOutcome.pullRequest;v.useEffect(()=>{i(!1),l(""),u(null)},[t.id,t.revision,t.state,h?.id,g?.id]);async function d(p,b){if(!(!b||n)){u(p);try{await b()}finally{u(null)}}}return e.jsxs("section",{className:`composer-create-strip ${f}`,"aria-label":"Create or improve status",children:[e.jsxs("div",{className:"composer-create-strip-heading",children:[f==="danger"?e.jsx(_,{size:15}):t.state==="awaiting_questions"?e.jsx(A,{size:15}):S(t.state)?e.jsx(P,{className:"composer-create-spin",size:15}):e.jsx(x,{size:15}),e.jsx("span",{children:z(t)}),e.jsx("small",{children:t.target.kind})]}),t.state==="awaiting_questions"&&g?e.jsxs("div",{className:"composer-create-question",children:[e.jsx("p",{children:g.prompt}),e.jsx("div",{className:"composer-create-options",children:g.options.map(p=>e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d(`answer:${p.id}`,()=>s.onAnswerQuestion?s.onAnswerQuestion(c,g.id,p.value):Promise.resolve())},children:[e.jsx("span",{children:n===`answer:${p.id}`?"Saving":p.label}),p.description?e.jsx("small",{children:p.description}):null]},p.id))})]}):t.state==="awaiting_plan_approval"&&h?e.jsxs("div",{className:"composer-create-plan-summary",children:[e.jsx("p",{children:h.summary}),e.jsx(m,{run:t}),a?e.jsxs("div",{className:"composer-create-revision",children:[e.jsx("textarea",{rows:2,value:o,placeholder:"Describe the plan revision",onChange:p=>l(p.currentTarget.value)}),e.jsxs("div",{children:[e.jsxs("button",{type:"button",disabled:!o.trim()||!!n,onClick:()=>{d("revise",()=>s.onRevise?s.onRevise(c,o):Promise.resolve())},children:[e.jsx(x,{size:13}),e.jsx("span",{children:n==="revise"?"Saving":"Save revision"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>i(!1),children:[e.jsx(j,{size:13}),e.jsx("span",{children:"Close"})]})]})]}):e.jsxs("div",{className:"composer-create-actions",children:[e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("approve",()=>s.onApprove?s.onApprove(c):Promise.resolve())},children:[e.jsx(y,{size:13}),e.jsx("span",{children:n==="approve"?"Confirming":"Confirm plan"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>i(!0),children:[e.jsx(x,{size:13}),e.jsx("span",{children:"Edit plan"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("cancel",()=>s.onCancel?s.onCancel(c):Promise.resolve())},children:[e.jsx(j,{size:13}),e.jsx("span",{children:n==="cancel"?"Cancelling":"Cancel"})]})]})]}):t.state==="paused"?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:"This work is paused. Resume it when you are ready to continue."}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("resume",()=>s.onResume?s.onResume(c):Promise.resolve())},children:[e.jsx(C,{size:13}),e.jsx("span",{children:n==="resume"?"Resuming":"Resume"})]})]}):t.state==="awaiting_promotion"&&r?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:T(t,r.id)}),e.jsxs("div",{className:"composer-create-actions",children:[e.jsxs("button",{type:"button",disabled:!!n||!$(t,r.id),onClick:()=>{d("apply-candidate",()=>s.onApplyCandidate?s.onApplyCandidate(c,r.id):Promise.resolve())},children:[e.jsx(y,{size:13}),e.jsx("span",{children:n==="apply-candidate"?"Applying":"Apply update"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reject-candidate",()=>s.onRejectCandidate?s.onRejectCandidate(c,r.id):Promise.resolve())},children:[e.jsx(j,{size:13}),e.jsx("span",{children:n==="reject-candidate"?"Keeping current version":"Keep current version"})]})]})]}):t.state==="pull_request_open"&&r&&R?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:t.target.kind==="agent"?"An Agent update review is open. Finish or close it, then refresh its status.":"An external review is open. Merge or close it, then refresh its status."}),e.jsxs("div",{className:"composer-create-actions",children:[e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reconcile-pr",()=>s.onReconcilePullRequest?s.onReconcilePullRequest(c,r.id):Promise.resolve())},children:[e.jsx(k,{size:13}),e.jsx("span",{children:n==="reconcile-pr"?"Checking":"Refresh review"})]}),e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reject-candidate",()=>s.onRejectCandidate?s.onRejectCandidate(c,r.id):Promise.resolve())},children:[e.jsx(j,{size:13}),e.jsx("span",{children:n==="reject-candidate"?"Closing":"Close review"})]})]})]}):t.state==="blocked"||t.state==="failed"||t.state==="cancelled"?e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:t.blockedReason??"This work stopped before it was ready."}),t.state==="blocked"&&r?.git?.worktreePath&&["draft","checking"].includes(r.status)?e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("resume",()=>s.onResume?s.onResume(c):Promise.resolve())},children:[e.jsx(C,{size:13}),e.jsx("span",{children:n==="resume"?"Continuing":"Continue update"})]}):t.state==="blocked"&&r?.git?.pullRequest?.state==="merged"?e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("reconcile-pr",()=>s.onReconcilePullRequest?s.onReconcilePullRequest(c,r.id):Promise.resolve())},children:[e.jsx(k,{size:13}),e.jsx("span",{children:n==="reconcile-pr"?"Checking":"Re-run verification"})]}):null]}):t.state==="released"||t.state==="rejected"||t.state==="ready_local"||t.state==="ready"||t.state==="published_hosted"?e.jsxs("div",{className:"composer-create-status-body composer-create-status-body-reveals",children:[e.jsx("p",{children:t.state==="released"?"The Agent update is saved and its Evals passed.":t.state==="rejected"?"The Agent update was not applied.":t.state==="published_hosted"?"Published to the hosted Profile.":"The Agent and its actions are ready to use."}),e.jsx("div",{className:"composer-create-hover-details",children:e.jsx(m,{run:t})})]}):e.jsxs("div",{className:"composer-create-status-body",children:[e.jsx("p",{children:B(t)}),e.jsx(m,{run:t}),t.executionPolicy.pauseAllowed&&s.onPause?e.jsxs("button",{type:"button",disabled:!!n,onClick:()=>{d("pause",()=>s.onPause?.(c)??Promise.resolve())},children:[e.jsx(q,{size:13}),e.jsx("span",{children:n==="pause"?"Pausing":"Pause"})]}):null]})]})}function N(s){return s.questions.find(a=>a.status==="pending"&&a.required)??s.questions.find(a=>a.status==="pending")??null}function m({run:s}){const a=s.plan,i=s.target.kind==="agent",o=i?null:s.sourceRefs[0]??a?.sourcePlan[0]?.path??null,l=s.checkRefs.length||a?.checks.length||0,n=i?0:a?.requirements.length??0,u=i?[]:[...s.sourceRefs,...s.checkRefs].slice(0,4),t=w(a?.metadata);return!o&&l===0&&n===0&&u.length===0&&!t?null:e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"composer-create-facts",children:[t?e.jsx("span",{title:t.detail,children:t.label}):null,o?e.jsx("span",{title:o,children:o}):null,l?e.jsx("span",{children:i?`${l} Evals`:s.checkRefs.length?`${s.checkRefs.length} check refs`:`${l} checks`}):null,n?e.jsxs("span",{children:[n," setup rows"]}):null]}),u.length?e.jsx("ul",{className:"composer-create-refs","aria-label":"Source and check refs",children:u.map(h=>e.jsx("li",{children:e.jsx("code",{title:h,children:h})},h))}):null]})}function z(s){const a=s.target.kind==="agent";return s.state==="awaiting_questions"?"Question":s.state==="awaiting_plan_approval"?"Plan":s.state==="applying_source"?a?"Saving Agent":"Applying source":s.state==="running_checks"?"Running Evals":s.state==="evaluating"?a?"Checking Agent":"Evaluating":s.state==="awaiting_promotion"?a?"Update ready":"Candidate ready":s.state==="opening_pull_request"?"Opening review":s.state==="pull_request_open"?"Review open":s.state==="reconciling_release"?a?"Applying update":"Merging change":s.state==="released"?a?"Agent updated":"Released":s.state==="rejected"?a?"Current Agent kept":"Rejected":s.state==="paused"?"Paused":s.state==="ready"||s.state==="ready_local"?"Ready":s.state==="published_hosted"?"Published":s.state==="cancelled"?"Cancelled":s.state==="blocked"?"Blocked":s.state==="failed"?"Failed":s.operation==="improve"?"Improve":"Create"}function B(s){const a=s.state,i=s.target.kind==="agent";return a==="applying_source"?i?"Saving the approved Agent plan.":"Applying the approved source changes.":a==="running_checks"?i?"Running Evals against the Agent.":"Running checks against the candidate.":a==="evaluating"?i?"Checking the Agent's behavior.":"Evaluating the candidate against its Evals.":a==="opening_pull_request"?i?"Preparing the Agent update review.":"Opening the candidate review.":a==="reconciling_release"?"Applying the change and verifying the active Profile.":a==="pushing_hosted"?"Pushing the Profile source.":a==="running_hosted_checks"?i?"Running hosted Evals.":"Running hosted checks.":"Preparing the work."}function E(s){return["released","ready","ready_local","published_hosted"].includes(s)?"success":["rejected","blocked","failed","cancelled"].includes(s)?"danger":["awaiting_questions","awaiting_plan_approval","awaiting_promotion","pull_request_open","paused"].includes(s)?"warning":"info"}function S(s){return["planning","applying_source","running_checks","evaluating","opening_pull_request","reconciling_release","pushing_hosted","running_hosted_checks"].includes(s)}function I(s){return[...s.candidates].reverse().find(a=>a.target.kind==="agent")??null}function $(s,a){const i=s.evaluationReceipts.filter(o=>o.candidateId===a&&o.subject==="candidate");return i.length>0&&i.every(o=>o.status==="passed"&&o.publishGate!=="failed")}function T(s,a){const i=s.evaluationReceipts.find(n=>n.candidateId===a&&n.subject==="active"),o=s.evaluationReceipts.find(n=>n.candidateId===a&&n.subject==="candidate"),l=n=>n?.summaryCounts?`${n.summaryCounts.passed}/${n.summaryCounts.total}`:n?.status??"not run";return s.target.kind==="agent"?`Current Agent: ${l(i)} Evals passed. Updated Agent: ${l(o)} Evals passed.`:`Base Evals: ${l(i)} passed. Candidate Evals: ${l(o)} passed.`}export{K as ComposerCreateImproveStrip};