@agent-native/dispatch 0.41.1-nightly-20261104110058 → 0.42.0

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 (195) hide show
  1. package/CHANGELOG.md +26 -55
  2. package/dist/actions/get-hosted-apps-settings.d.ts +5 -0
  3. package/dist/actions/get-hosted-apps-settings.d.ts.map +1 -0
  4. package/dist/actions/get-hosted-apps-settings.js +25 -0
  5. package/dist/actions/get-hosted-apps-settings.js.map +1 -0
  6. package/dist/actions/index.d.ts.map +1 -1
  7. package/dist/actions/index.js +4 -0
  8. package/dist/actions/index.js.map +1 -1
  9. package/dist/actions/list-connected-agents.d.ts +1 -0
  10. package/dist/actions/list-connected-agents.js +11 -10
  11. package/dist/actions/list-connected-agents.js.map +1 -1
  12. package/dist/actions/list_apps.js +3 -2
  13. package/dist/actions/list_apps.js.map +1 -1
  14. package/dist/actions/provider-api-register.d.ts +10 -10
  15. package/dist/actions/set-hosted-apps-settings.d.ts +7 -0
  16. package/dist/actions/set-hosted-apps-settings.d.ts.map +1 -0
  17. package/dist/actions/set-hosted-apps-settings.js +35 -0
  18. package/dist/actions/set-hosted-apps-settings.js.map +1 -0
  19. package/dist/components/app-card-tiers.d.ts +13 -0
  20. package/dist/components/app-card-tiers.d.ts.map +1 -0
  21. package/dist/components/app-card-tiers.js +22 -0
  22. package/dist/components/app-card-tiers.js.map +1 -0
  23. package/dist/components/app-list-row.d.ts +12 -4
  24. package/dist/components/app-list-row.d.ts.map +1 -1
  25. package/dist/components/app-list-row.js +19 -4
  26. package/dist/components/app-list-row.js.map +1 -1
  27. package/dist/components/app-open-actions.d.ts +4 -0
  28. package/dist/components/app-open-actions.d.ts.map +1 -1
  29. package/dist/components/app-open-actions.js +9 -0
  30. package/dist/components/app-open-actions.js.map +1 -1
  31. package/dist/components/app-pin-button.d.ts +9 -0
  32. package/dist/components/app-pin-button.d.ts.map +1 -0
  33. package/dist/components/app-pin-button.js +29 -0
  34. package/dist/components/app-pin-button.js.map +1 -0
  35. package/dist/components/app-tier-sections.d.ts +27 -0
  36. package/dist/components/app-tier-sections.d.ts.map +1 -0
  37. package/dist/components/app-tier-sections.js +44 -0
  38. package/dist/components/app-tier-sections.js.map +1 -0
  39. package/dist/components/chat-home-apps.d.ts.map +1 -1
  40. package/dist/components/chat-home-apps.js +19 -26
  41. package/dist/components/chat-home-apps.js.map +1 -1
  42. package/dist/components/connected-app-card.d.ts +3 -1
  43. package/dist/components/connected-app-card.d.ts.map +1 -1
  44. package/dist/components/connected-app-card.js +6 -3
  45. package/dist/components/connected-app-card.js.map +1 -1
  46. package/dist/components/create-app-popover.d.ts +4 -0
  47. package/dist/components/create-app-popover.d.ts.map +1 -1
  48. package/dist/components/create-app-popover.js +6 -0
  49. package/dist/components/create-app-popover.js.map +1 -1
  50. package/dist/components/dispatch-control-plane.d.ts.map +1 -1
  51. package/dist/components/dispatch-control-plane.js +25 -35
  52. package/dist/components/dispatch-control-plane.js.map +1 -1
  53. package/dist/components/hosted-apps-settings-group.d.ts +6 -0
  54. package/dist/components/hosted-apps-settings-group.d.ts.map +1 -0
  55. package/dist/components/hosted-apps-settings-group.js +76 -0
  56. package/dist/components/hosted-apps-settings-group.js.map +1 -0
  57. package/dist/components/layout/Layout.d.ts +6 -4
  58. package/dist/components/layout/Layout.d.ts.map +1 -1
  59. package/dist/components/layout/Layout.js +97 -80
  60. package/dist/components/layout/Layout.js.map +1 -1
  61. package/dist/components/workspace-app-card.d.ts.map +1 -1
  62. package/dist/components/workspace-app-card.js +9 -20
  63. package/dist/components/workspace-app-card.js.map +1 -1
  64. package/dist/components/workspace-app-layout-notice.d.ts +9 -0
  65. package/dist/components/workspace-app-layout-notice.d.ts.map +1 -0
  66. package/dist/components/workspace-app-layout-notice.js +27 -0
  67. package/dist/components/workspace-app-layout-notice.js.map +1 -0
  68. package/dist/components/workspace-app-search.d.ts.map +1 -1
  69. package/dist/components/workspace-app-search.js +11 -5
  70. package/dist/components/workspace-app-search.js.map +1 -1
  71. package/dist/components/workspace-template-card.d.ts.map +1 -1
  72. package/dist/components/workspace-template-card.js +7 -2
  73. package/dist/components/workspace-template-card.js.map +1 -1
  74. package/dist/db/index.d.ts.map +1 -1
  75. package/dist/db/index.js +1 -0
  76. package/dist/db/index.js.map +1 -1
  77. package/dist/lib/other-apps.d.ts +10 -1
  78. package/dist/lib/other-apps.d.ts.map +1 -1
  79. package/dist/lib/other-apps.js +7 -1
  80. package/dist/lib/other-apps.js.map +1 -1
  81. package/dist/lib/workspace-app-layout.d.ts +62 -6
  82. package/dist/lib/workspace-app-layout.d.ts.map +1 -1
  83. package/dist/lib/workspace-app-layout.js +196 -41
  84. package/dist/lib/workspace-app-layout.js.map +1 -1
  85. package/dist/lib/workspace-app-lists.d.ts +17 -0
  86. package/dist/lib/workspace-app-lists.d.ts.map +1 -0
  87. package/dist/lib/workspace-app-lists.js +21 -0
  88. package/dist/lib/workspace-app-lists.js.map +1 -0
  89. package/dist/lib/workspace-apps.d.ts +3 -1
  90. package/dist/lib/workspace-apps.d.ts.map +1 -1
  91. package/dist/lib/workspace-apps.js +5 -1
  92. package/dist/lib/workspace-apps.js.map +1 -1
  93. package/dist/routes/pages/apps.d.ts.map +1 -1
  94. package/dist/routes/pages/apps.js +23 -35
  95. package/dist/routes/pages/apps.js.map +1 -1
  96. package/dist/routes/pages/settings-page.d.ts.map +1 -1
  97. package/dist/routes/pages/settings-page.js +24 -3
  98. package/dist/routes/pages/settings-page.js.map +1 -1
  99. package/dist/server/lib/app-creation-store.d.ts.map +1 -1
  100. package/dist/server/lib/app-creation-store.js +13 -18
  101. package/dist/server/lib/app-creation-store.js.map +1 -1
  102. package/dist/server/lib/app-roles.d.ts +2 -0
  103. package/dist/server/lib/app-roles.d.ts.map +1 -1
  104. package/dist/server/lib/app-roles.js +26 -7
  105. package/dist/server/lib/app-roles.js.map +1 -1
  106. package/dist/server/lib/hosted-apps-settings-schema.d.ts +6 -0
  107. package/dist/server/lib/hosted-apps-settings-schema.d.ts.map +1 -0
  108. package/dist/server/lib/hosted-apps-settings-schema.js +6 -0
  109. package/dist/server/lib/hosted-apps-settings-schema.js.map +1 -0
  110. package/dist/server/lib/hosted-apps-settings.d.ts +27 -0
  111. package/dist/server/lib/hosted-apps-settings.d.ts.map +1 -0
  112. package/dist/server/lib/hosted-apps-settings.js +72 -0
  113. package/dist/server/lib/hosted-apps-settings.js.map +1 -0
  114. package/dist/server/plugins/agent-chat.js +6 -3
  115. package/dist/server/plugins/agent-chat.js.map +1 -1
  116. package/dist/server/plugins/integrations.js +3 -3
  117. package/dist/server/plugins/integrations.js.map +1 -1
  118. package/dist/shared/hosted-apps-settings.d.ts +3 -0
  119. package/dist/shared/hosted-apps-settings.d.ts.map +1 -0
  120. package/dist/shared/hosted-apps-settings.js +3 -0
  121. package/dist/shared/hosted-apps-settings.js.map +1 -0
  122. package/package.json +4 -4
  123. package/src/actions/get-hosted-apps-settings.ts +29 -0
  124. package/src/actions/hosted-apps-settings.spec.ts +100 -0
  125. package/src/actions/index.ts +4 -0
  126. package/src/actions/list-connected-agents.spec.ts +67 -0
  127. package/src/actions/list-connected-agents.ts +14 -15
  128. package/src/actions/list_apps.spec.ts +16 -0
  129. package/src/actions/list_apps.ts +5 -2
  130. package/src/actions/set-hosted-apps-settings.ts +42 -0
  131. package/src/components/app-card-tiers.tsx +85 -0
  132. package/src/components/app-list-row.spec.tsx +54 -0
  133. package/src/components/app-list-row.tsx +50 -8
  134. package/src/components/app-open-actions.tsx +16 -0
  135. package/src/components/app-pin-button.spec.tsx +68 -0
  136. package/src/components/app-pin-button.tsx +66 -0
  137. package/src/components/app-tier-sections.spec.tsx +155 -0
  138. package/src/components/app-tier-sections.tsx +158 -0
  139. package/src/components/chat-home-apps.spec.tsx +135 -29
  140. package/src/components/chat-home-apps.tsx +115 -111
  141. package/src/components/connected-app-card.spec.tsx +18 -2
  142. package/src/components/connected-app-card.tsx +18 -1
  143. package/src/components/create-app-popover.tsx +22 -0
  144. package/src/components/dispatch-control-plane.spec.tsx +89 -20
  145. package/src/components/dispatch-control-plane.tsx +91 -125
  146. package/src/components/hosted-apps-settings-group.spec.tsx +218 -0
  147. package/src/components/hosted-apps-settings-group.tsx +189 -0
  148. package/src/components/layout/Layout.spec.tsx +356 -49
  149. package/src/components/layout/Layout.tsx +189 -142
  150. package/src/components/workspace-app-card.spec.tsx +33 -29
  151. package/src/components/workspace-app-card.tsx +13 -31
  152. package/src/components/workspace-app-layout-notice.spec.tsx +106 -0
  153. package/src/components/workspace-app-layout-notice.tsx +65 -0
  154. package/src/components/workspace-app-search.spec.tsx +53 -0
  155. package/src/components/workspace-app-search.tsx +39 -32
  156. package/src/components/workspace-template-card.spec.tsx +10 -0
  157. package/src/components/workspace-template-card.tsx +7 -2
  158. package/src/db/index.spec.ts +9 -0
  159. package/src/db/index.ts +1 -0
  160. package/src/lib/other-apps.spec.ts +25 -0
  161. package/src/lib/other-apps.ts +9 -0
  162. package/src/lib/workspace-app-layout.spec.ts +61 -3
  163. package/src/lib/workspace-app-layout.store.spec.tsx +261 -0
  164. package/src/lib/workspace-app-layout.ts +265 -48
  165. package/src/lib/workspace-app-lists.ts +32 -0
  166. package/src/lib/workspace-apps.ts +10 -2
  167. package/src/routes/pages/apps.spec.tsx +133 -5
  168. package/src/routes/pages/apps.tsx +79 -140
  169. package/src/routes/pages/chat.spec.tsx +66 -49
  170. package/src/routes/pages/settings-page.tsx +31 -3
  171. package/src/routes/pages/settings.spec.tsx +37 -0
  172. package/src/server/lib/app-creation-store.spec.ts +14 -0
  173. package/src/server/lib/app-creation-store.ts +16 -29
  174. package/src/server/lib/app-creation-store.write-observation.spec.ts +216 -0
  175. package/src/server/lib/app-roles.spec.ts +48 -1
  176. package/src/server/lib/app-roles.ts +44 -12
  177. package/src/server/lib/hosted-apps-settings-schema.ts +6 -0
  178. package/src/server/lib/hosted-apps-settings.spec.ts +154 -0
  179. package/src/server/lib/hosted-apps-settings.ts +108 -0
  180. package/src/server/plugins/agent-chat.spec.ts +16 -0
  181. package/src/server/plugins/agent-chat.ts +7 -2
  182. package/src/server/plugins/integrations.ts +3 -3
  183. package/src/shared/hosted-apps-settings.ts +3 -0
  184. package/src/styles/dispatch.css +40 -11
  185. package/dist/components/available-apps-section.d.ts +0 -9
  186. package/dist/components/available-apps-section.d.ts.map +0 -1
  187. package/dist/components/available-apps-section.js +0 -97
  188. package/dist/components/available-apps-section.js.map +0 -1
  189. package/dist/components/other-apps-section.d.ts +0 -35
  190. package/dist/components/other-apps-section.d.ts.map +0 -1
  191. package/dist/components/other-apps-section.js +0 -79
  192. package/dist/components/other-apps-section.js.map +0 -1
  193. package/src/components/available-apps-section.tsx +0 -239
  194. package/src/components/other-apps-section.spec.ts +0 -50
  195. package/src/components/other-apps-section.tsx +0 -254
@@ -4,12 +4,13 @@ import { useFeatureFlag, useFeatureFlagState, } from "@agent-native/core/client/
4
4
  import { useT } from "@agent-native/core/client/i18n";
5
5
  import { SETTINGS_REDESIGN_FLAG } from "@agent-native/core/feature-flags/registry";
6
6
  import { ChangelogSettingsCard } from "@agent-native/toolkit/app/changelog";
7
- import { OrgMembersPage, TeamPage } from "@agent-native/toolkit/app/org";
7
+ import { OrgAppsPage, OrgMembersPage, TeamPage, } from "@agent-native/toolkit/app/org";
8
8
  import { AccountSettingsCard, CORE_SETTINGS_PAGES, registerSettingsPages, SettingsGroup, SettingsRow, SettingsTabsPage, useAgentSettingsTabs, } from "@agent-native/toolkit/app/settings";
9
9
  import { LanguagePicker } from "@agent-native/toolkit/app/shared";
10
10
  import { IconShield } from "@tabler/icons-react";
11
11
  import { useMemo, useState } from "react";
12
12
  import { Link } from "react-router";
13
+ import { HostedAppsSettingsGroup } from "../../components/hosted-apps-settings-group.js";
13
14
  import { Button } from "../../components/ui/button.js";
14
15
  import { Switch } from "../../components/ui/switch.js";
15
16
  import { dispatchAccessDescriptor } from "../../shared/app-roles.js";
@@ -18,13 +19,33 @@ const coreMembersPage = CORE_SETTINGS_PAGES.find((page) => page.id === "members"
18
19
  if (!coreMembersPage) {
19
20
  throw new Error("Core Settings has no members page for Dispatch app roles");
20
21
  }
22
+ const coreAppsPage = CORE_SETTINGS_PAGES.find((page) => page.id === "apps");
23
+ if (!coreAppsPage) {
24
+ throw new Error("Core Settings has no apps page for Dispatch hosted apps");
25
+ }
21
26
  function DispatchMembersSettingsPage() {
22
27
  return _jsx(OrgMembersPage, { appRoles: dispatchAccessDescriptor });
23
28
  }
24
- // The redesigned Settings shows Members from core; Dispatch's replaces it so
25
- // the app-role column stays.
29
+ function DispatchAppsSettingsPage() {
30
+ return _jsx(OrgAppsPage, { extraGroups: _jsx(HostedAppsSettingsGroup, {}) });
31
+ }
32
+ // The redesigned Settings shows Members and Apps from core; Dispatch's
33
+ // replace them so the app-role column and the hosted apps group stay.
26
34
  registerSettingsPages([
27
35
  { ...coreMembersPage, component: DispatchMembersSettingsPage },
36
+ {
37
+ ...coreAppsPage,
38
+ component: DispatchAppsSettingsPage,
39
+ searchEntries: [
40
+ ...(coreAppsPage.searchEntries ?? []),
41
+ {
42
+ id: "hosted-apps",
43
+ labelKey: "dispatch.pages.showHostedApps",
44
+ keywords: "agent-native.com hosted apps built-in agent-native mail calendar hide",
45
+ anchor: "show-hosted-apps",
46
+ },
47
+ ],
48
+ },
28
49
  ]);
29
50
  export function meta() {
30
51
  return [{ title: "Settings - Dispatch" }];
@@ -1 +1 @@
1
- {"version":3,"file":"settings-page.js","sourceRoot":"","sources":["../../../src/routes/pages/settings-page.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n CHAT_FIRST_MODE_CHANGED_EVENT,\n readChatFirstModeState,\n writeChatFirstMode,\n} from \"@agent-native/core/client/agent-chat\";\nimport {\n useFeatureFlag,\n useFeatureFlagState,\n} from \"@agent-native/core/client/feature-flags\";\nimport { useT } from \"@agent-native/core/client/i18n\";\nimport { SETTINGS_REDESIGN_FLAG } from \"@agent-native/core/feature-flags/registry\";\nimport { ChangelogSettingsCard } from \"@agent-native/toolkit/app/changelog\";\nimport { OrgMembersPage, TeamPage } from \"@agent-native/toolkit/app/org\";\nimport {\n AccountSettingsCard,\n CORE_SETTINGS_PAGES,\n registerSettingsPages,\n SettingsGroup,\n SettingsRow,\n SettingsTabsPage,\n useAgentSettingsTabs,\n type SettingsSearchEntry,\n} from \"@agent-native/toolkit/app/settings\";\nimport { LanguagePicker } from \"@agent-native/toolkit/app/shared\";\nimport { IconShield } from \"@tabler/icons-react\";\nimport { useMemo, useState } from \"react\";\nimport { Link } from \"react-router\";\n\nimport { Button } from \"../../components/ui/button\";\nimport { Switch } from \"../../components/ui/switch\";\nimport { dispatchAccessDescriptor } from \"../../shared/app-roles.js\";\nimport { DISPATCH_CONNECT_APPS_FLAG } from \"../../shared/feature-flags.js\";\n\nconst coreMembersPage = CORE_SETTINGS_PAGES.find(\n (page) => page.id === \"members\",\n);\nif (!coreMembersPage) {\n throw new Error(\"Core Settings has no members page for Dispatch app roles\");\n}\n\nfunction DispatchMembersSettingsPage() {\n return <OrgMembersPage appRoles={dispatchAccessDescriptor} />;\n}\n\n// The redesigned Settings shows Members from core; Dispatch's replaces it so\n// the app-role column stays.\nregisterSettingsPages([\n { ...coreMembersPage, component: DispatchMembersSettingsPage },\n]);\n\nexport function meta() {\n return [{ title: \"Settings - Dispatch\" }];\n}\n\nexport interface DispatchSettingsPageProps {\n /** Raw CHANGELOG.md behind What's new. */\n changelog: string;\n}\n\n/** The template route supplies the app's own changelog. */\nexport function DispatchSettingsPage({ changelog }: DispatchSettingsPageProps) {\n const t = useT();\n const connectAppsEnabled = useFeatureFlag(DISPATCH_CONNECT_APPS_FLAG.key);\n // Core Preferences owns the interface language in the redesigned Settings,\n // whose Dispatch General page shows `generalGroups` instead of `general`.\n const redesign = useFeatureFlagState(SETTINGS_REDESIGN_FLAG.key).enabled;\n const agentSettingsTabs = useAgentSettingsTabs({\n usageAppId: \"dispatch\",\n usageViewAllHref: \"/admin/metrics\",\n organizationContent: (\n <div className=\"mx-auto w-full max-w-3xl\">\n <TeamPage\n showTitle={false}\n appRoles={dispatchAccessDescriptor}\n createOrgDescription=\"Set up a team to share dispatch destinations and approvals with your colleagues.\"\n />\n </div>\n ),\n });\n const settingsTabs = [\n ...agentSettingsTabs,\n {\n id: \"admin\",\n label: t(\"dispatch.nav.admin\", { defaultValue: \"Admin\" }),\n icon: IconShield,\n group: \"Admin\",\n href: \"/admin\",\n content: null,\n },\n ];\n const [chatFirstModeState] = useState(() => readChatFirstModeState());\n const [chatFirstMode, setChatFirstMode] = useState(\n () => chatFirstModeState.enabled,\n );\n const [chatFirstStorageNotice, setChatFirstStorageNotice] = useState<\n string | null\n >(\n chatFirstModeState.availability === \"unavailable\"\n ? t(\"settings.chatFirstStorageUnavailable\")\n : null,\n );\n\n function updateChatFirstMode(enabled: boolean) {\n const result = writeChatFirstMode(enabled);\n if (!result.ok) {\n setChatFirstStorageNotice(t(\"settings.chatFirstStorageBlocked\"));\n return;\n }\n setChatFirstStorageNotice(null);\n setChatFirstMode(enabled);\n window.dispatchEvent(\n new CustomEvent(CHAT_FIRST_MODE_CHANGED_EVENT, {\n detail: { enabled },\n }),\n );\n }\n\n const generalSearchEntries = useMemo<SettingsSearchEntry[]>(\n () => [\n ...(redesign\n ? []\n : [\n {\n id: \"dispatch-language\",\n label: t(\"settings.languageTitle\"),\n keywords: \"language locale translation i18n\",\n hash: \"language\",\n },\n ]),\n {\n id: \"dispatch-workspace\",\n label: redesign\n ? t(\"settings.resourcesTitle\")\n : t(\"settings.workspaceTitle\"),\n keywords: \"workspace resources integrations vault destinations\",\n hash: \"workspace-resources\",\n },\n {\n id: \"dispatch-chat-first\",\n label: t(\"settings.chatFirstTitle\"),\n keywords: \"chat first codex t3 apps pane navigation\",\n hash: \"chat-first\",\n },\n ],\n [redesign, t],\n );\n\n const chatFirstSwitch = (\n <Switch\n aria-label={t(\"settings.chatFirstAriaLabel\")}\n checked={chatFirstMode}\n onCheckedChange={updateChatFirstMode}\n />\n );\n const chatFirstStorageAlert = chatFirstStorageNotice ? (\n <p className=\"text-sm text-destructive\" role=\"alert\">\n {chatFirstStorageNotice}\n </p>\n ) : null;\n const connectAppsRow = connectAppsEnabled ? (\n <SettingsRow\n id=\"connect-apps\"\n label={t(\"settings.connectApps\")}\n description={t(\"settings.connectAppsDescription\")}\n control={\n <Button variant=\"outline\" asChild>\n <Link to=\"/connect\">{t(\"settings.openConnectApps\")}</Link>\n </Button>\n }\n />\n ) : null;\n const resourceSettingsButton = (\n <Button variant=\"outline\" asChild>\n <Link to=\"/workspace\">{t(\"settings.openResourceSettings\")}</Link>\n </Button>\n );\n\n return (\n <SettingsTabsPage\n account={<AccountSettingsCard />}\n extraTabs={settingsTabs}\n generalSearchEntries={generalSearchEntries}\n general={\n <div className=\"mx-auto w-full max-w-2xl space-y-6\">\n <p className=\"text-sm leading-6 text-muted-foreground\">\n {t(\"settings.description\")}\n </p>\n\n <SettingsGroup>\n <SettingsRow\n id=\"language\"\n label={t(\"settings.languageTitle\")}\n description={t(\"settings.languageDescription\")}\n control={\n <div className=\"w-56\">\n <LanguagePicker label={t(\"settings.languageLabel\")} />\n </div>\n }\n />\n <SettingsRow\n id=\"workspace-resources\"\n label={t(\"settings.workspaceTitle\")}\n description={t(\"settings.workspaceDescription\")}\n control={resourceSettingsButton}\n />\n {connectAppsRow}\n </SettingsGroup>\n\n <SettingsGroup id=\"chat-first\">\n <SettingsRow\n label={t(\"settings.chatFirstTitle\")}\n description={t(\"settings.chatFirstDescription\")}\n control={chatFirstSwitch}\n >\n <p className=\"text-sm leading-6 text-muted-foreground\">\n {t(\"settings.chatFirstSessionWatchDescription\")}\n </p>\n {chatFirstStorageAlert}\n </SettingsRow>\n </SettingsGroup>\n </div>\n }\n generalGroups={\n <SettingsGroup id=\"workspace\" title={t(\"settings.workspaceTitle\")}>\n <SettingsRow\n id=\"chat-first\"\n label={t(\"settings.chatFirstTitle\")}\n description={t(\"settings.chatFirstDescription\")}\n control={chatFirstSwitch}\n >\n {chatFirstStorageAlert}\n </SettingsRow>\n <SettingsRow\n id=\"workspace-resources\"\n label={t(\"settings.resourcesTitle\")}\n description={t(\"settings.workspaceDescription\")}\n control={resourceSettingsButton}\n />\n {connectAppsRow}\n </SettingsGroup>\n }\n whatsNew={\n <div className=\"mx-auto w-full max-w-2xl\">\n <ChangelogSettingsCard markdown={changelog} />\n </div>\n }\n whatsNewMarkdown={changelog}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"settings-page.js","sourceRoot":"","sources":["../../../src/routes/pages/settings-page.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n CHAT_FIRST_MODE_CHANGED_EVENT,\n readChatFirstModeState,\n writeChatFirstMode,\n} from \"@agent-native/core/client/agent-chat\";\nimport {\n useFeatureFlag,\n useFeatureFlagState,\n} from \"@agent-native/core/client/feature-flags\";\nimport { useT } from \"@agent-native/core/client/i18n\";\nimport { SETTINGS_REDESIGN_FLAG } from \"@agent-native/core/feature-flags/registry\";\nimport { ChangelogSettingsCard } from \"@agent-native/toolkit/app/changelog\";\nimport {\n OrgAppsPage,\n OrgMembersPage,\n TeamPage,\n} from \"@agent-native/toolkit/app/org\";\nimport {\n AccountSettingsCard,\n CORE_SETTINGS_PAGES,\n registerSettingsPages,\n SettingsGroup,\n SettingsRow,\n SettingsTabsPage,\n useAgentSettingsTabs,\n type SettingsSearchEntry,\n} from \"@agent-native/toolkit/app/settings\";\nimport { LanguagePicker } from \"@agent-native/toolkit/app/shared\";\nimport { IconShield } from \"@tabler/icons-react\";\nimport { useMemo, useState } from \"react\";\nimport { Link } from \"react-router\";\n\nimport { HostedAppsSettingsGroup } from \"../../components/hosted-apps-settings-group\";\nimport { Button } from \"../../components/ui/button\";\nimport { Switch } from \"../../components/ui/switch\";\nimport { dispatchAccessDescriptor } from \"../../shared/app-roles.js\";\nimport { DISPATCH_CONNECT_APPS_FLAG } from \"../../shared/feature-flags.js\";\n\nconst coreMembersPage = CORE_SETTINGS_PAGES.find(\n (page) => page.id === \"members\",\n);\nif (!coreMembersPage) {\n throw new Error(\"Core Settings has no members page for Dispatch app roles\");\n}\n\nconst coreAppsPage = CORE_SETTINGS_PAGES.find((page) => page.id === \"apps\");\nif (!coreAppsPage) {\n throw new Error(\"Core Settings has no apps page for Dispatch hosted apps\");\n}\n\nfunction DispatchMembersSettingsPage() {\n return <OrgMembersPage appRoles={dispatchAccessDescriptor} />;\n}\n\nfunction DispatchAppsSettingsPage() {\n return <OrgAppsPage extraGroups={<HostedAppsSettingsGroup />} />;\n}\n\n// The redesigned Settings shows Members and Apps from core; Dispatch's\n// replace them so the app-role column and the hosted apps group stay.\nregisterSettingsPages([\n { ...coreMembersPage, component: DispatchMembersSettingsPage },\n {\n ...coreAppsPage,\n component: DispatchAppsSettingsPage,\n searchEntries: [\n ...(coreAppsPage.searchEntries ?? []),\n {\n id: \"hosted-apps\",\n labelKey: \"dispatch.pages.showHostedApps\",\n keywords:\n \"agent-native.com hosted apps built-in agent-native mail calendar hide\",\n anchor: \"show-hosted-apps\",\n },\n ],\n },\n]);\n\nexport function meta() {\n return [{ title: \"Settings - Dispatch\" }];\n}\n\nexport interface DispatchSettingsPageProps {\n /** Raw CHANGELOG.md behind What's new. */\n changelog: string;\n}\n\n/** The template route supplies the app's own changelog. */\nexport function DispatchSettingsPage({ changelog }: DispatchSettingsPageProps) {\n const t = useT();\n const connectAppsEnabled = useFeatureFlag(DISPATCH_CONNECT_APPS_FLAG.key);\n // Core Preferences owns the interface language in the redesigned Settings,\n // whose Dispatch General page shows `generalGroups` instead of `general`.\n const redesign = useFeatureFlagState(SETTINGS_REDESIGN_FLAG.key).enabled;\n const agentSettingsTabs = useAgentSettingsTabs({\n usageAppId: \"dispatch\",\n usageViewAllHref: \"/admin/metrics\",\n organizationContent: (\n <div className=\"mx-auto w-full max-w-3xl\">\n <TeamPage\n showTitle={false}\n appRoles={dispatchAccessDescriptor}\n createOrgDescription=\"Set up a team to share dispatch destinations and approvals with your colleagues.\"\n />\n </div>\n ),\n });\n const settingsTabs = [\n ...agentSettingsTabs,\n {\n id: \"admin\",\n label: t(\"dispatch.nav.admin\", { defaultValue: \"Admin\" }),\n icon: IconShield,\n group: \"Admin\",\n href: \"/admin\",\n content: null,\n },\n ];\n const [chatFirstModeState] = useState(() => readChatFirstModeState());\n const [chatFirstMode, setChatFirstMode] = useState(\n () => chatFirstModeState.enabled,\n );\n const [chatFirstStorageNotice, setChatFirstStorageNotice] = useState<\n string | null\n >(\n chatFirstModeState.availability === \"unavailable\"\n ? t(\"settings.chatFirstStorageUnavailable\")\n : null,\n );\n\n function updateChatFirstMode(enabled: boolean) {\n const result = writeChatFirstMode(enabled);\n if (!result.ok) {\n setChatFirstStorageNotice(t(\"settings.chatFirstStorageBlocked\"));\n return;\n }\n setChatFirstStorageNotice(null);\n setChatFirstMode(enabled);\n window.dispatchEvent(\n new CustomEvent(CHAT_FIRST_MODE_CHANGED_EVENT, {\n detail: { enabled },\n }),\n );\n }\n\n const generalSearchEntries = useMemo<SettingsSearchEntry[]>(\n () => [\n ...(redesign\n ? []\n : [\n {\n id: \"dispatch-language\",\n label: t(\"settings.languageTitle\"),\n keywords: \"language locale translation i18n\",\n hash: \"language\",\n },\n ]),\n {\n id: \"dispatch-workspace\",\n label: redesign\n ? t(\"settings.resourcesTitle\")\n : t(\"settings.workspaceTitle\"),\n keywords: \"workspace resources integrations vault destinations\",\n hash: \"workspace-resources\",\n },\n {\n id: \"dispatch-chat-first\",\n label: t(\"settings.chatFirstTitle\"),\n keywords: \"chat first codex t3 apps pane navigation\",\n hash: \"chat-first\",\n },\n ],\n [redesign, t],\n );\n\n const chatFirstSwitch = (\n <Switch\n aria-label={t(\"settings.chatFirstAriaLabel\")}\n checked={chatFirstMode}\n onCheckedChange={updateChatFirstMode}\n />\n );\n const chatFirstStorageAlert = chatFirstStorageNotice ? (\n <p className=\"text-sm text-destructive\" role=\"alert\">\n {chatFirstStorageNotice}\n </p>\n ) : null;\n const connectAppsRow = connectAppsEnabled ? (\n <SettingsRow\n id=\"connect-apps\"\n label={t(\"settings.connectApps\")}\n description={t(\"settings.connectAppsDescription\")}\n control={\n <Button variant=\"outline\" asChild>\n <Link to=\"/connect\">{t(\"settings.openConnectApps\")}</Link>\n </Button>\n }\n />\n ) : null;\n const resourceSettingsButton = (\n <Button variant=\"outline\" asChild>\n <Link to=\"/workspace\">{t(\"settings.openResourceSettings\")}</Link>\n </Button>\n );\n\n return (\n <SettingsTabsPage\n account={<AccountSettingsCard />}\n extraTabs={settingsTabs}\n generalSearchEntries={generalSearchEntries}\n general={\n <div className=\"mx-auto w-full max-w-2xl space-y-6\">\n <p className=\"text-sm leading-6 text-muted-foreground\">\n {t(\"settings.description\")}\n </p>\n\n <SettingsGroup>\n <SettingsRow\n id=\"language\"\n label={t(\"settings.languageTitle\")}\n description={t(\"settings.languageDescription\")}\n control={\n <div className=\"w-56\">\n <LanguagePicker label={t(\"settings.languageLabel\")} />\n </div>\n }\n />\n <SettingsRow\n id=\"workspace-resources\"\n label={t(\"settings.workspaceTitle\")}\n description={t(\"settings.workspaceDescription\")}\n control={resourceSettingsButton}\n />\n {connectAppsRow}\n </SettingsGroup>\n\n <SettingsGroup id=\"chat-first\">\n <SettingsRow\n label={t(\"settings.chatFirstTitle\")}\n description={t(\"settings.chatFirstDescription\")}\n control={chatFirstSwitch}\n >\n <p className=\"text-sm leading-6 text-muted-foreground\">\n {t(\"settings.chatFirstSessionWatchDescription\")}\n </p>\n {chatFirstStorageAlert}\n </SettingsRow>\n </SettingsGroup>\n </div>\n }\n generalGroups={\n <SettingsGroup id=\"workspace\" title={t(\"settings.workspaceTitle\")}>\n <SettingsRow\n id=\"chat-first\"\n label={t(\"settings.chatFirstTitle\")}\n description={t(\"settings.chatFirstDescription\")}\n control={chatFirstSwitch}\n >\n {chatFirstStorageAlert}\n </SettingsRow>\n <SettingsRow\n id=\"workspace-resources\"\n label={t(\"settings.resourcesTitle\")}\n description={t(\"settings.workspaceDescription\")}\n control={resourceSettingsButton}\n />\n {connectAppsRow}\n </SettingsGroup>\n }\n whatsNew={\n <div className=\"mx-auto w-full max-w-2xl\">\n <ChangelogSettingsCard markdown={changelog} />\n </div>\n }\n whatsNewMarkdown={changelog}\n />\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"app-creation-store.d.ts","sourceRoot":"","sources":["../../../src/server/lib/app-creation-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-creation-store.d.ts","sourceRoot":"","sources":["../../../src/server/lib/app-creation-store.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { canonicalA2AAudience, getGlobalA2ASecret, signA2AToken, } from "@agent-native/core/a2a";
6
- import { ActionContractError, isActionContractError, } from "@agent-native/core/action";
6
+ import { ActionContractError, isActionContractError, noteExternalWrite, } from "@agent-native/core/action";
7
7
  import { describeErrorWithCauses } from "@agent-native/core/agent/engine/error-detail";
8
8
  import { getAppConfig } from "@agent-native/core/app-config";
9
9
  import { getDbExec } from "@agent-native/core/db";
@@ -13,7 +13,7 @@ import { CredentialStoreUnavailableError, FeatureNotConfiguredError, createBuild
13
13
  import { getOrgSetting } from "@agent-native/core/settings";
14
14
  import { getSetting, mutateSetting, putSetting, } from "@agent-native/core/settings";
15
15
  import { BUILDER_CONNECT_PROVIDER, BUILDER_CONNECT_PROVIDER_LABEL, assertValidWorkspaceAppId, connectRequiredResult, normalizeWorkspaceAppHomePath, parseAgentProfileMetadata, } from "@agent-native/core/shared";
16
- import { resolveAccess } from "@agent-native/core/sharing";
16
+ import { resolveAccessMany } from "@agent-native/core/sharing";
17
17
  import { getDb } from "../../db/index.js";
18
18
  import { workspaceAppRoute } from "../../shared/workspace-app-route.js";
19
19
  import { isWorkspaceSsoAppUrl } from "../../shared/workspace-sso.js";
@@ -36,7 +36,6 @@ const WORKSPACE_APPS_ENV_KEY = "AGENT_NATIVE_WORKSPACE_APPS_JSON";
36
36
  const WORKSPACE_APPS_MANIFEST_FILE = "workspace-apps.json";
37
37
  const WORKSPACE_APPS_GATEWAY_PATH = "/_workspace/apps";
38
38
  const WORKSPACE_APPS_GATEWAY_TIMEOUT_MS = 2_500;
39
- const WORKSPACE_APP_ACCESS_CONCURRENCY = 8;
40
39
  const MAX_PENDING_APPS = 50;
41
40
  const PENDING_WORKSPACE_APP_TTL_MS = 30 * 24 * 60 * 60 * 1_000;
42
41
  const AGENT_CARD_PATH = "/.well-known/agent-card.json";
@@ -1396,21 +1395,14 @@ async function filterWorkspaceAppsByAccess(apps) {
1396
1395
  }
1397
1396
  candidates.push(app);
1398
1397
  }
1399
- for (let start = 0; start < candidates.length; start += WORKSPACE_APP_ACCESS_CONCURRENCY) {
1400
- const batch = candidates.slice(start, start + WORKSPACE_APP_ACCESS_CONCURRENCY);
1401
- const decisions = await Promise.all(batch.map(async (app) => {
1402
- try {
1403
- const access = await resolveAccess("workspace-app", app.id, { userEmail, orgId }, { skipResourceBody: true });
1404
- return { app, allowed: Boolean(access) };
1405
- }
1406
- catch (error) {
1407
- console.warn("[dispatch] workspace app access lookup failed", error);
1408
- return { app, allowed: false };
1409
- }
1410
- }));
1411
- for (const decision of decisions) {
1412
- if (decision.allowed)
1413
- visibleIds.add(decision.app.id);
1398
+ if (candidates.length > 0) {
1399
+ try {
1400
+ const access = await resolveAccessMany("workspace-app", candidates.map((app) => app.id), { userEmail, ...(orgId ? { orgId } : {}) }, { skipResourceBody: true });
1401
+ for (const id of access.keys())
1402
+ visibleIds.add(id);
1403
+ }
1404
+ catch (error) {
1405
+ console.warn("[dispatch] workspace app access lookup failed", error);
1414
1406
  }
1415
1407
  }
1416
1408
  return apps.filter((app) => visibleIds.has(app.id));
@@ -2145,6 +2137,7 @@ export async function scaffoldWorkspaceAppFromTemplate(input) {
2145
2137
  }
2146
2138
  catch (error) {
2147
2139
  if (fs.existsSync(appDir)) {
2140
+ noteExternalWrite("local-disk");
2148
2141
  fs.rmSync(appDir, { recursive: true, force: true });
2149
2142
  }
2150
2143
  throw error;
@@ -2161,6 +2154,7 @@ export async function scaffoldWorkspaceAppFromTemplate(input) {
2161
2154
  }
2162
2155
  catch (error) {
2163
2156
  if (fs.existsSync(appDir)) {
2157
+ noteExternalWrite("local-disk");
2164
2158
  fs.rmSync(appDir, { recursive: true, force: true });
2165
2159
  }
2166
2160
  throw error;
@@ -2194,6 +2188,7 @@ export async function scaffoldWorkspaceAppFromTemplate(input) {
2194
2188
  }
2195
2189
  function runScaffoldCli(input) {
2196
2190
  return new Promise((resolve, reject) => {
2191
+ noteExternalWrite("child-process");
2197
2192
  // pnpm is a pnpm.cmd shim on Windows, which Node starts only through a
2198
2193
  // shell. The app id is validated and the template comes from an allowlist,
2199
2194
  // so one joined command line is safe there.