@agent-native/core 0.122.4 → 0.123.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 (1340) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +538 -0
  3. package/corpus/core/docs/content/actions.mdx +33 -20
  4. package/corpus/core/docs/content/agent-mentions.mdx +30 -19
  5. package/corpus/core/docs/content/agent-native-toolkit.mdx +8 -6
  6. package/corpus/core/docs/content/agent-resources.mdx +11 -0
  7. package/corpus/core/docs/content/agent-surfaces.mdx +41 -30
  8. package/corpus/core/docs/content/audit-log.mdx +78 -0
  9. package/corpus/core/docs/content/authentication.mdx +7 -5
  10. package/corpus/core/docs/content/automations.mdx +15 -9
  11. package/corpus/core/docs/content/client.mdx +11 -11
  12. package/corpus/core/docs/content/cloneable-saas.mdx +7 -1
  13. package/corpus/core/docs/content/code-agents-ui.mdx +9 -1
  14. package/corpus/core/docs/content/components.mdx +7 -0
  15. package/corpus/core/docs/content/context-awareness.mdx +1 -0
  16. package/corpus/core/docs/content/creating-templates.mdx +9 -1
  17. package/corpus/core/docs/content/custom-design-system.mdx +8 -0
  18. package/corpus/core/docs/content/data-programs.mdx +6 -0
  19. package/corpus/core/docs/content/deployment.mdx +2 -0
  20. package/corpus/core/docs/content/doctor.mdx +5 -3
  21. package/corpus/core/docs/content/extensions.mdx +26 -0
  22. package/corpus/core/docs/content/external-agents-catalog.mdx +533 -0
  23. package/corpus/core/docs/content/external-agents.mdx +20 -514
  24. package/corpus/core/docs/content/faq.mdx +2 -2
  25. package/corpus/core/docs/content/file-uploads.mdx +44 -0
  26. package/corpus/core/docs/content/frames.mdx +2 -2
  27. package/corpus/core/docs/content/generative-ui.mdx +8 -0
  28. package/corpus/core/docs/content/getting-started.mdx +45 -17
  29. package/corpus/core/docs/content/human-approval.mdx +9 -0
  30. package/corpus/core/docs/content/integrations.mdx +4 -3
  31. package/corpus/core/docs/content/internationalization.mdx +4 -11
  32. package/corpus/core/docs/content/key-concepts.mdx +1 -1
  33. package/corpus/core/docs/content/local-file-mode.mdx +5 -0
  34. package/corpus/core/docs/content/mcp-apps.mdx +2 -1
  35. package/corpus/core/docs/content/mcp-clients.mdx +32 -1
  36. package/corpus/core/docs/content/mcp-protocol.mdx +4 -3
  37. package/corpus/core/docs/content/messaging-internals.mdx +328 -0
  38. package/corpus/core/docs/content/messaging-recipes.mdx +194 -0
  39. package/corpus/core/docs/content/messaging.mdx +9 -307
  40. package/corpus/core/docs/content/multi-app-workspace.mdx +1 -1
  41. package/corpus/core/docs/content/multi-tenancy.mdx +1 -0
  42. package/corpus/core/docs/content/native-chat-ui.mdx +8 -0
  43. package/corpus/core/docs/content/notifications.mdx +18 -20
  44. package/corpus/core/docs/content/observability.mdx +1 -0
  45. package/corpus/core/docs/content/onboarding.mdx +20 -6
  46. package/corpus/core/docs/content/organizations-teams-permissions.mdx +99 -124
  47. package/corpus/core/docs/content/package-lifecycle.mdx +19 -7
  48. package/corpus/core/docs/content/progress.mdx +11 -0
  49. package/corpus/core/docs/content/real-time-collaboration.mdx +44 -3
  50. package/corpus/core/docs/content/recurring-jobs.mdx +14 -1
  51. package/corpus/core/docs/content/security.mdx +5 -2
  52. package/corpus/core/docs/content/server.mdx +2 -1
  53. package/corpus/core/docs/content/sharing.mdx +22 -3
  54. package/corpus/core/docs/content/skills-guide.mdx +62 -19
  55. package/corpus/core/docs/content/syncing-template-changes.mdx +9 -0
  56. package/corpus/core/docs/content/template-analytics-connectors.mdx +75 -0
  57. package/corpus/core/docs/content/template-analytics-dashboards.mdx +106 -0
  58. package/corpus/core/docs/content/template-analytics-developers.mdx +287 -0
  59. package/corpus/core/docs/content/template-analytics-monitoring-and-sessions.mdx +109 -0
  60. package/corpus/core/docs/content/template-analytics.mdx +21 -263
  61. package/corpus/core/docs/content/template-assets-developers.mdx +456 -0
  62. package/corpus/core/docs/content/template-assets-generation.mdx +147 -0
  63. package/corpus/core/docs/content/template-assets-integrations.mdx +319 -0
  64. package/corpus/core/docs/content/template-assets-presets.mdx +185 -0
  65. package/corpus/core/docs/content/template-assets.mdx +12 -562
  66. package/corpus/core/docs/content/template-brain-agent.mdx +103 -0
  67. package/corpus/core/docs/content/template-brain-developers.mdx +379 -0
  68. package/corpus/core/docs/content/template-brain-knowledge.mdx +50 -0
  69. package/corpus/core/docs/content/template-brain-sources.mdx +163 -0
  70. package/corpus/core/docs/content/template-brain.mdx +30 -390
  71. package/corpus/core/docs/content/template-calendar-agent.mdx +133 -0
  72. package/corpus/core/docs/content/template-calendar-booking-links.mdx +73 -0
  73. package/corpus/core/docs/content/template-calendar-developers.mdx +366 -0
  74. package/corpus/core/docs/content/template-calendar-scheduling.mdx +128 -0
  75. package/corpus/core/docs/content/template-calendar.mdx +13 -260
  76. package/corpus/core/docs/content/template-chat-developers.mdx +88 -0
  77. package/corpus/core/docs/content/template-chat-first-edits.mdx +145 -0
  78. package/corpus/core/docs/content/template-chat.mdx +12 -77
  79. package/corpus/core/docs/content/template-clips-ai-and-editing.mdx +114 -0
  80. package/corpus/core/docs/content/template-clips-capture-everywhere.mdx +120 -0
  81. package/corpus/core/docs/content/template-clips-developers.mdx +373 -0
  82. package/corpus/core/docs/content/template-clips-sharing-and-teams.mdx +182 -0
  83. package/corpus/core/docs/content/template-clips.mdx +19 -508
  84. package/corpus/core/docs/content/template-content-databases.mdx +406 -0
  85. package/corpus/core/docs/content/template-content-developers.mdx +364 -0
  86. package/corpus/core/docs/content/template-content-editing.mdx +60 -0
  87. package/corpus/core/docs/content/template-content-sync.mdx +149 -0
  88. package/corpus/core/docs/content/template-content.mdx +21 -561
  89. package/corpus/core/docs/content/template-design-brand-and-figma.mdx +150 -0
  90. package/corpus/core/docs/content/template-design-collaboration-and-full-apps.mdx +125 -0
  91. package/corpus/core/docs/content/template-design-developers.mdx +358 -0
  92. package/corpus/core/docs/content/template-design-quality-and-components.mdx +95 -0
  93. package/corpus/core/docs/content/template-design.mdx +20 -344
  94. package/corpus/core/docs/content/template-dispatch-developers.mdx +121 -0
  95. package/corpus/core/docs/content/template-dispatch-messaging-routing.mdx +114 -0
  96. package/corpus/core/docs/content/template-dispatch-operations.mdx +160 -0
  97. package/corpus/core/docs/content/template-dispatch-vault-integrations.mdx +316 -0
  98. package/corpus/core/docs/content/template-dispatch.mdx +24 -283
  99. package/corpus/core/docs/content/template-forms-building-publishing.mdx +135 -0
  100. package/corpus/core/docs/content/template-forms-developers.mdx +195 -0
  101. package/corpus/core/docs/content/template-forms-responses.mdx +120 -0
  102. package/corpus/core/docs/content/template-forms.mdx +21 -230
  103. package/corpus/core/docs/content/template-mail-agent.mdx +114 -0
  104. package/corpus/core/docs/content/template-mail-developers.mdx +356 -0
  105. package/corpus/core/docs/content/template-mail-drafts-and-queue.mdx +103 -0
  106. package/corpus/core/docs/content/template-mail-inbox.mdx +118 -0
  107. package/corpus/core/docs/content/template-mail.mdx +23 -274
  108. package/corpus/core/docs/content/template-plan-automations.mdx +213 -0
  109. package/corpus/core/docs/content/template-plan-developers.mdx +703 -0
  110. package/corpus/core/docs/content/template-plan-local-and-desktop.mdx +236 -0
  111. package/corpus/core/docs/content/template-plan-review-workflow.mdx +180 -0
  112. package/corpus/core/docs/content/template-plan.mdx +60 -910
  113. package/corpus/core/docs/content/template-slides-agent.mdx +102 -0
  114. package/corpus/core/docs/content/template-slides-design-and-media.mdx +94 -0
  115. package/corpus/core/docs/content/template-slides-developers.mdx +488 -0
  116. package/corpus/core/docs/content/template-slides-editing.mdx +56 -0
  117. package/corpus/core/docs/content/template-slides.mdx +20 -362
  118. package/corpus/core/docs/content/toolkit-capability-packages.mdx +38 -13
  119. package/corpus/core/docs/content/toolkit-context-knowledge.mdx +49 -9
  120. package/corpus/core/docs/content/toolkit-editors-canvases.mdx +72 -10
  121. package/corpus/core/docs/content/toolkit-resources.mdx +16 -0
  122. package/corpus/core/docs/content/toolkit-settings.mdx +3 -3
  123. package/corpus/core/docs/content/toolkit-sharing.mdx +5 -7
  124. package/corpus/core/docs/content/using-your-agent.mdx +25 -2
  125. package/corpus/core/docs/content/voice-input.mdx +11 -7
  126. package/corpus/core/docs/content/what-is-agent-native.mdx +1 -0
  127. package/corpus/core/docs/content/workspace-connections.mdx +21 -11
  128. package/corpus/core/docs/content/workspace-management.mdx +1 -1
  129. package/corpus/core/package.json +1 -3
  130. package/corpus/core/src/a2a/client.ts +4 -2
  131. package/corpus/core/src/agent/action-warnings.ts +103 -0
  132. package/corpus/core/src/agent/durable-background.ts +42 -5
  133. package/corpus/core/src/agent/engine/ai-sdk-engine.ts +58 -6
  134. package/corpus/core/src/agent/engine/anthropic-engine.ts +51 -8
  135. package/corpus/core/src/agent/engine/builder-engine.ts +56 -18
  136. package/corpus/core/src/agent/engine/continuation-dispatch-retry.ts +10 -9
  137. package/corpus/core/src/agent/engine/credential-errors.ts +11 -0
  138. package/corpus/core/src/agent/engine/error-detail.ts +39 -0
  139. package/corpus/core/src/agent/engine/prompt-cache.ts +44 -0
  140. package/corpus/core/src/agent/engine/registry.ts +22 -30
  141. package/corpus/core/src/agent/engine/tool-call-journal-seed.ts +2 -1
  142. package/corpus/core/src/agent/engine/translate-anthropic.ts +99 -0
  143. package/corpus/core/src/agent/loop-settings.ts +94 -7
  144. package/corpus/core/src/agent/production-agent.ts +667 -157
  145. package/corpus/core/src/agent/run-loop-with-resume.ts +27 -1
  146. package/corpus/core/src/agent/run-manager.ts +229 -39
  147. package/corpus/core/src/agent/run-store.ts +397 -64
  148. package/corpus/core/src/agent/thread-data-builder.ts +5 -1
  149. package/corpus/core/src/agent/types.ts +23 -6
  150. package/corpus/core/src/application-state/script-helpers.ts +5 -2
  151. package/corpus/core/src/cli/agents.ts +69 -1
  152. package/corpus/core/src/cli/app-skill.ts +1 -1
  153. package/corpus/core/src/cli/code-agent-executor.ts +7 -3
  154. package/corpus/core/src/cli/design-connect.ts +82 -8
  155. package/corpus/core/src/cli/skills-content/design-visual-edit-skill.ts +169 -24
  156. package/corpus/core/src/client/AssistantChat.tsx +623 -607
  157. package/corpus/core/src/client/agent-chat-adapter.ts +176 -29
  158. package/corpus/core/src/client/chat/message-components.tsx +13 -0
  159. package/corpus/core/src/client/embed-auth.ts +3 -1
  160. package/corpus/core/src/client/integrations/IntegrationCard.tsx +41 -24
  161. package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +37 -21
  162. package/corpus/core/src/client/integrations/webhook-url.ts +29 -0
  163. package/corpus/core/src/client/org/OrgSwitcher.tsx +41 -27
  164. package/corpus/core/src/client/org/RequireActiveOrg.tsx +7 -0
  165. package/corpus/core/src/client/org/TeamPage.tsx +144 -14
  166. package/corpus/core/src/client/org/hooks.ts +27 -0
  167. package/corpus/core/src/client/org/index.ts +2 -0
  168. package/corpus/core/src/client/require-session.tsx +40 -29
  169. package/corpus/core/src/client/session-replay.ts +1 -1
  170. package/corpus/core/src/client/settings/DemoModeSection.tsx +0 -5
  171. package/corpus/core/src/client/settings/SecretsSection.tsx +47 -42
  172. package/corpus/core/src/client/settings/VoiceTranscriptionSection.tsx +0 -5
  173. package/corpus/core/src/client/sse-event-processor.ts +83 -8
  174. package/corpus/core/src/client/use-action.ts +22 -13
  175. package/corpus/core/src/client/use-agent-engine-configured.ts +36 -4
  176. package/corpus/core/src/client/use-db-sync.ts +21 -1
  177. package/corpus/core/src/credentials/index.ts +124 -2
  178. package/corpus/core/src/deploy/build.ts +93 -30
  179. package/corpus/core/src/deploy/workspace-deploy.ts +21 -16
  180. package/corpus/core/src/guards/no-localhost-fallback.ts +76 -14
  181. package/corpus/core/src/integrations/google-docs-poller.ts +19 -12
  182. package/corpus/core/src/integrations/webhook-handler.ts +56 -33
  183. package/corpus/core/src/jobs/scheduler.ts +57 -23
  184. package/corpus/core/src/localization/default-messages.ts +23 -1
  185. package/corpus/core/src/observability/evals.ts +7 -8
  186. package/corpus/core/src/observability/traces.ts +2 -0
  187. package/corpus/core/src/org/accept-pending.ts +2 -2
  188. package/corpus/core/src/org/active-org.ts +73 -0
  189. package/corpus/core/src/org/auto-join-domain.ts +7 -2
  190. package/corpus/core/src/org/context.ts +169 -66
  191. package/corpus/core/src/org/handlers.ts +148 -10
  192. package/corpus/core/src/org/plugin.ts +8 -1
  193. package/corpus/core/src/org/types.ts +6 -1
  194. package/corpus/core/src/provider-api/index.ts +6 -1
  195. package/corpus/core/src/resources/handlers.ts +2 -6
  196. package/corpus/core/src/resources/script-helpers.ts +2 -1
  197. package/corpus/core/src/scripts/chat/search-chats.ts +5 -2
  198. package/corpus/core/src/scripts/describe-workspace-apps.ts +59 -0
  199. package/corpus/core/src/scripts/resources/delete-memory.ts +5 -2
  200. package/corpus/core/src/scripts/resources/delete.ts +5 -2
  201. package/corpus/core/src/scripts/resources/effective.ts +5 -2
  202. package/corpus/core/src/scripts/resources/list.ts +5 -2
  203. package/corpus/core/src/scripts/resources/read.ts +5 -2
  204. package/corpus/core/src/scripts/resources/save-memory.ts +5 -2
  205. package/corpus/core/src/scripts/resources/write.ts +5 -2
  206. package/corpus/core/src/server/agent-capabilities.ts +147 -0
  207. package/corpus/core/src/server/agent-chat/framework-prompts.ts +11 -13
  208. package/corpus/core/src/server/agent-chat/prompt-resources.ts +183 -57
  209. package/corpus/core/src/server/agent-chat/script-entries.ts +20 -7
  210. package/corpus/core/src/server/agent-chat-plugin.ts +27 -0
  211. package/corpus/core/src/server/auth.ts +38 -32
  212. package/corpus/core/src/server/core-routes-plugin.ts +229 -179
  213. package/corpus/core/src/server/credential-provider.ts +196 -44
  214. package/corpus/core/src/server/embed-session.ts +10 -0
  215. package/corpus/core/src/server/framework-request-handler.ts +43 -0
  216. package/corpus/core/src/server/google-auth-plugin.ts +13 -450
  217. package/corpus/core/src/server/index.ts +4 -1
  218. package/corpus/core/src/server/onboarding-html.ts +20 -56
  219. package/corpus/core/src/server/open-route.ts +6 -1
  220. package/corpus/core/src/server/poll.ts +1 -1
  221. package/corpus/core/src/server/prompts/framework-core-compact.ts +5 -5
  222. package/corpus/core/src/server/prompts/framework-core.ts +7 -9
  223. package/corpus/core/src/server/prompts/shared-rules.ts +20 -9
  224. package/corpus/core/src/server/request-context.ts +58 -2
  225. package/corpus/core/src/server/scoped-key-storage.ts +1 -1
  226. package/corpus/core/src/settings/org-settings.ts +9 -0
  227. package/corpus/core/src/settings/store.ts +29 -0
  228. package/corpus/core/src/shared/index.ts +13 -0
  229. package/corpus/core/src/shared/sign-in-journey.ts +331 -0
  230. package/corpus/core/src/styles/agent-native.css +8 -0
  231. package/corpus/core/src/templates/chat/.agents/skills/actions/SKILL.md +19 -1
  232. package/corpus/core/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +2 -0
  233. package/corpus/core/src/templates/chat/.agents/skills/frontend-design/SKILL.md +20 -6
  234. package/corpus/core/src/templates/chat/.agents/skills/security/SKILL.md +2 -0
  235. package/corpus/core/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +4 -3
  236. package/corpus/core/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +7 -3
  237. package/corpus/core/src/templates/chat/AGENTS.md +8 -0
  238. package/corpus/core/src/templates/chat/app/entry.client.tsx +3 -0
  239. package/corpus/core/src/templates/chat/changelog/2026-07-24-borderless-secondary-surfaces.md +6 -0
  240. package/corpus/core/src/templates/chat/changelog/2026-07-24-sidebar-footer-controls-follow-a-consistent-order.md +6 -0
  241. package/corpus/core/src/templates/chat/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
  242. package/corpus/core/src/templates/default/.agents/skills/actions/SKILL.md +19 -1
  243. package/corpus/core/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +2 -0
  244. package/corpus/core/src/templates/default/.agents/skills/frontend-design/SKILL.md +20 -6
  245. package/corpus/core/src/templates/default/.agents/skills/security/SKILL.md +2 -0
  246. package/corpus/core/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +4 -3
  247. package/corpus/core/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +7 -3
  248. package/corpus/core/src/templates/default/AGENTS.md +68 -195
  249. package/corpus/core/src/templates/default/app/entry.client.tsx +3 -0
  250. package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +8 -0
  251. package/corpus/core/src/templates/default/app/i18n/de-DE.ts +8 -0
  252. package/corpus/core/src/templates/default/app/i18n/en-US.ts +8 -0
  253. package/corpus/core/src/templates/default/app/i18n/es-ES.ts +8 -0
  254. package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +8 -0
  255. package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +8 -0
  256. package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +8 -0
  257. package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +8 -0
  258. package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +8 -0
  259. package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +8 -0
  260. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +8 -0
  261. package/corpus/core/src/templates/headless/.agents/skills/actions/SKILL.md +19 -1
  262. package/corpus/core/src/templates/workspace-core/.agents/skills/actions/SKILL.md +19 -1
  263. package/corpus/core/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +2 -0
  264. package/corpus/core/src/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +100 -0
  265. package/corpus/core/src/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +2 -1
  266. package/corpus/core/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +28 -0
  267. package/corpus/core/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +14 -1
  268. package/corpus/core/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +20 -6
  269. package/corpus/core/src/templates/workspace-core/.agents/skills/qa/SKILL.md +6 -3
  270. package/corpus/core/src/templates/workspace-core/.agents/skills/security/SKILL.md +2 -0
  271. package/corpus/core/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +4 -3
  272. package/corpus/core/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +7 -3
  273. package/corpus/core/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +91 -0
  274. package/corpus/core/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +60 -0
  275. package/corpus/core/src/templates/workspace-core/AGENTS.md +62 -124
  276. package/corpus/core/src/templates/workspace-root/AGENTS.md +6 -1
  277. package/corpus/core/src/triggers/dispatcher.ts +28 -17
  278. package/corpus/core/src/vite/client.ts +20 -8
  279. package/corpus/templates/analytics/.agents/skills/actions/SKILL.md +19 -1
  280. package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +41 -1
  281. package/corpus/templates/analytics/.agents/skills/dashboard-ops/SKILL.md +50 -22
  282. package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +1 -1
  283. package/corpus/templates/analytics/.agents/skills/data-querying/references/inline-chart-embeds.md +8 -0
  284. package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +20 -6
  285. package/corpus/templates/analytics/.agents/skills/security/SKILL.md +2 -0
  286. package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +4 -3
  287. package/corpus/templates/analytics/.agents/skills/shadcn-ui/SKILL.md +7 -3
  288. package/corpus/templates/analytics/.agents/skills/sharing/SKILL.md +228 -0
  289. package/corpus/templates/analytics/.builder/skills/charts/SKILL.md +2 -2
  290. package/corpus/templates/analytics/actions/delete-dashboard-view.ts +24 -0
  291. package/corpus/templates/analytics/actions/delete-user-pref.ts +22 -0
  292. package/corpus/templates/analytics/actions/generate-chart.ts +8 -245
  293. package/corpus/templates/analytics/actions/get-theme.ts +27 -0
  294. package/corpus/templates/analytics/actions/get-user-pref.ts +22 -0
  295. package/corpus/templates/analytics/actions/list-dashboard-views.ts +25 -0
  296. package/corpus/templates/analytics/actions/save-dashboard-view.ts +33 -0
  297. package/corpus/templates/analytics/actions/set-theme.ts +22 -0
  298. package/corpus/templates/analytics/actions/set-user-pref.ts +24 -0
  299. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +134 -27
  300. package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +2 -9
  301. package/corpus/templates/analytics/app/components/layout/Layout.tsx +0 -17
  302. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +10 -5
  303. package/corpus/templates/analytics/app/hooks/use-dashboard-views.ts +22 -52
  304. package/corpus/templates/analytics/app/hooks/use-user-pref.ts +21 -31
  305. package/corpus/templates/analytics/app/i18n-data.ts +10 -0
  306. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +2 -1
  307. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dual-axis.ts +73 -0
  308. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +8 -27
  309. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/report-panel-window.ts +0 -57
  310. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/types.ts +8 -0
  311. package/corpus/templates/analytics/app/root.tsx +0 -28
  312. package/corpus/templates/analytics/changelog/2026-07-26-error-issues-now-group-by-message-as-well-as-stack-frame-and.md +6 -0
  313. package/corpus/templates/analytics/changelog/2026-07-26-line-area-and-bar-dashboard-panels-can-plot-series-on-a-seco.md +6 -0
  314. package/corpus/templates/analytics/changelog/2026-07-26-scheduled-dashboard-email-reports-now-arrive-complete-and-re.md +6 -0
  315. package/corpus/templates/analytics/changelog/2026-07-26-session-replays-now-detect-rage-clicks-so-the-rage-click-fil.md +6 -0
  316. package/corpus/templates/analytics/docs/error-capture.md +8 -4
  317. package/corpus/templates/analytics/package.json +1 -2
  318. package/corpus/templates/analytics/scripts/preview-dashboard-report.ts +221 -0
  319. package/corpus/templates/analytics/server/jobs/dashboard-report.ts +39 -32
  320. package/corpus/templates/analytics/server/lib/dashboard-report-render.ts +1168 -0
  321. package/corpus/templates/analytics/server/lib/dashboard-report.ts +111 -1358
  322. package/corpus/templates/analytics/server/lib/error-capture.ts +32 -15
  323. package/corpus/templates/analytics/server/lib/report-chart-svg.ts +901 -0
  324. package/corpus/templates/analytics/server/lib/session-replay.ts +77 -1
  325. package/corpus/templates/analytics/shared/dashboard-report-timeouts.ts +3 -4
  326. package/corpus/templates/assets/.agents/skills/a2a-assets/SKILL.md +28 -0
  327. package/corpus/templates/assets/.agents/skills/actions/SKILL.md +19 -1
  328. package/corpus/templates/assets/.agents/skills/assets-navigation/SKILL.md +46 -0
  329. package/corpus/templates/assets/.agents/skills/creative-context/SKILL.md +12 -0
  330. package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +20 -6
  331. package/corpus/templates/assets/.agents/skills/image-generation/SKILL.md +28 -0
  332. package/corpus/templates/assets/.agents/skills/library-management/SKILL.md +9 -0
  333. package/corpus/templates/assets/.agents/skills/logo-composite/SKILL.md +11 -0
  334. package/corpus/templates/assets/.agents/skills/security/SKILL.md +2 -0
  335. package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +4 -3
  336. package/corpus/templates/assets/.agents/skills/shadcn-ui/SKILL.md +7 -3
  337. package/corpus/templates/assets/.agents/skills/sharing/SKILL.md +228 -0
  338. package/corpus/templates/assets/AGENTS.md +58 -125
  339. package/corpus/templates/assets/actions/variant-slots.ts +8 -4
  340. package/corpus/templates/assets/app/entry.client.tsx +3 -0
  341. package/corpus/templates/assets/package.json +0 -2
  342. package/corpus/templates/brain/.agents/skills/actions/SKILL.md +19 -1
  343. package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +2 -0
  344. package/corpus/templates/brain/.agents/skills/brain/SKILL.md +78 -4
  345. package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +20 -6
  346. package/corpus/templates/brain/.agents/skills/ingestion-and-connectors/SKILL.md +15 -3
  347. package/corpus/templates/brain/.agents/skills/security/SKILL.md +2 -0
  348. package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +4 -3
  349. package/corpus/templates/brain/.agents/skills/shadcn-ui/SKILL.md +7 -3
  350. package/corpus/templates/brain/.agents/skills/sharing/SKILL.md +228 -0
  351. package/corpus/templates/brain/.agents/skills/storing-data/SKILL.md +178 -0
  352. package/corpus/templates/brain/AGENTS.md +73 -119
  353. package/corpus/templates/brain/app/entry.client.tsx +3 -0
  354. package/corpus/templates/calendar/.agents/skills/actions/SKILL.md +19 -1
  355. package/corpus/templates/calendar/.agents/skills/event-management/SKILL.md +56 -3
  356. package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +20 -6
  357. package/corpus/templates/calendar/.agents/skills/security/SKILL.md +2 -0
  358. package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +4 -3
  359. package/corpus/templates/calendar/.agents/skills/shadcn-ui/SKILL.md +7 -3
  360. package/corpus/templates/calendar/.agents/skills/sharing/SKILL.md +228 -0
  361. package/corpus/templates/calendar/AGENTS.md +22 -45
  362. package/corpus/templates/calendar/app/entry.client.tsx +3 -0
  363. package/corpus/templates/calendar/server/handlers/events.ts +0 -364
  364. package/corpus/templates/chat/.agents/skills/actions/SKILL.md +19 -1
  365. package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +2 -0
  366. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +20 -6
  367. package/corpus/templates/chat/.agents/skills/security/SKILL.md +2 -0
  368. package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +4 -3
  369. package/corpus/templates/chat/.agents/skills/shadcn-ui/SKILL.md +7 -3
  370. package/corpus/templates/chat/.agents/skills/sharing/SKILL.md +228 -0
  371. package/corpus/templates/chat/.agents/skills/storing-data/SKILL.md +178 -0
  372. package/corpus/templates/chat/AGENTS.md +8 -0
  373. package/corpus/templates/chat/app/entry.client.tsx +3 -0
  374. package/corpus/templates/clips/.agents/skills/actions/SKILL.md +19 -1
  375. package/corpus/templates/clips/.agents/skills/ai-video-tools/SKILL.md +42 -0
  376. package/corpus/templates/clips/.agents/skills/brain-export/SKILL.md +59 -0
  377. package/corpus/templates/clips/.agents/skills/bug-reports/SKILL.md +37 -0
  378. package/corpus/templates/clips/.agents/skills/crm-call-evidence/SKILL.md +41 -0
  379. package/corpus/templates/clips/.agents/skills/dictate/SKILL.md +4 -0
  380. package/corpus/templates/clips/.agents/skills/external-integrations/SKILL.md +45 -0
  381. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +20 -6
  382. package/corpus/templates/clips/.agents/skills/meetings/SKILL.md +9 -0
  383. package/corpus/templates/clips/.agents/skills/recording/SKILL.md +45 -0
  384. package/corpus/templates/clips/.agents/skills/screen-memory/SKILL.md +43 -0
  385. package/corpus/templates/clips/.agents/skills/security/SKILL.md +2 -0
  386. package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +4 -3
  387. package/corpus/templates/clips/.agents/skills/shadcn-ui/SKILL.md +7 -3
  388. package/corpus/templates/clips/.agents/skills/video-sharing/SKILL.md +38 -1
  389. package/corpus/templates/clips/AGENTS.md +82 -224
  390. package/corpus/templates/clips/actions/create-recording.ts +4 -0
  391. package/corpus/templates/clips/app/components/player/sign-in-prompt-dialog.tsx +6 -10
  392. package/corpus/templates/clips/app/routes/invite.$token.tsx +6 -5
  393. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +4 -5
  394. package/corpus/templates/clips/app/routes/share.$shareId.tsx +8 -8
  395. package/corpus/templates/clips/changelog/2026-07-26-long-agent-chat-turns-now-finish-instead-of-stopping-partway.md +6 -0
  396. package/corpus/templates/clips/changelog/2026-07-26-recordings-no-longer-get-stuck-on-uploading-uploads-now-hold.md +6 -0
  397. package/corpus/templates/clips/server/db/schema.ts +3 -0
  398. package/corpus/templates/clips/server/jobs/brain-export.ts +4 -0
  399. package/corpus/templates/clips/server/lib/recording-upload-state.ts +0 -52
  400. package/corpus/templates/clips/server/lib/upload-lease.ts +241 -0
  401. package/corpus/templates/clips/server/plugins/agent-chat.ts +4 -0
  402. package/corpus/templates/clips/server/plugins/db.ts +18 -347
  403. package/corpus/templates/clips/server/routes/api/clips/brain-export/run.post.ts +7 -1
  404. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +123 -126
  405. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/reset-chunks.post.ts +4 -0
  406. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/resume.get.ts +118 -0
  407. package/corpus/templates/clips/server/routes/api/uploads/reap.post.ts +69 -0
  408. package/corpus/templates/content/.agents/skills/actions/SKILL.md +19 -1
  409. package/corpus/templates/content/.agents/skills/content/SKILL.md +4 -0
  410. package/corpus/templates/content/.agents/skills/creative-context/SKILL.md +8 -0
  411. package/corpus/templates/content/.agents/skills/document-editing/SKILL.md +55 -0
  412. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +20 -6
  413. package/corpus/templates/content/.agents/skills/notion-integration/SKILL.md +12 -1
  414. package/corpus/templates/content/.agents/skills/security/SKILL.md +2 -0
  415. package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +4 -3
  416. package/corpus/templates/content/.agents/skills/shadcn-ui/SKILL.md +7 -3
  417. package/corpus/templates/content/.agents/skills/sharing/SKILL.md +228 -0
  418. package/corpus/templates/content/AGENTS.md +63 -131
  419. package/corpus/templates/content/app/routes/_app.tsx +4 -4
  420. package/corpus/templates/content/server/routes/api/notion/callback.get.ts +6 -24
  421. package/corpus/templates/design/.agents/skills/actions/SKILL.md +19 -1
  422. package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +16 -0
  423. package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +15 -0
  424. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +20 -6
  425. package/corpus/templates/design/.agents/skills/full-app-build/SKILL.md +12 -0
  426. package/corpus/templates/design/.agents/skills/security/SKILL.md +2 -0
  427. package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +4 -3
  428. package/corpus/templates/design/.agents/skills/shadcn-ui/SKILL.md +7 -3
  429. package/corpus/templates/design/.agents/skills/sharing/SKILL.md +228 -0
  430. package/corpus/templates/design/.agents/skills/storing-data/SKILL.md +178 -0
  431. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +201 -102
  432. package/corpus/templates/design/AGENTS.md +58 -71
  433. package/corpus/templates/design/actions/open-visual-edit.ts +111 -2
  434. package/corpus/templates/design/app/components/design/AddLocalhostScreenDialog.tsx +236 -0
  435. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +1 -1
  436. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +2 -2
  437. package/corpus/templates/design/app/entry.client.tsx +3 -0
  438. package/corpus/templates/design/app/i18n-data.ts +180 -0
  439. package/corpus/templates/design/app/pages/Present.tsx +6 -9
  440. package/corpus/templates/design/app/pages/VisualEdit.tsx +4 -7
  441. package/corpus/templates/design/app/pages/design-editor/design-data-geometry-utils.ts +20 -0
  442. package/corpus/templates/dispatch/.agents/skills/actions/SKILL.md +19 -1
  443. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +20 -6
  444. package/corpus/templates/dispatch/.agents/skills/security/SKILL.md +2 -0
  445. package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +4 -3
  446. package/corpus/templates/dispatch/.agents/skills/shadcn-ui/SKILL.md +7 -3
  447. package/corpus/templates/dispatch/.agents/skills/sharing/SKILL.md +228 -0
  448. package/corpus/templates/dispatch/.agents/skills/storing-data/SKILL.md +178 -0
  449. package/corpus/templates/dispatch/app/entry.client.tsx +3 -0
  450. package/corpus/templates/dispatch/server/plugins/identity-sso.ts +27 -16
  451. package/corpus/templates/forms/.agents/skills/actions/SKILL.md +19 -1
  452. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +20 -6
  453. package/corpus/templates/forms/.agents/skills/security/SKILL.md +2 -0
  454. package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +4 -3
  455. package/corpus/templates/forms/.agents/skills/shadcn-ui/SKILL.md +7 -3
  456. package/corpus/templates/forms/.agents/skills/sharing/SKILL.md +228 -0
  457. package/corpus/templates/forms/DEVELOPING.md +1 -1
  458. package/corpus/templates/forms/app/entry.client.tsx +3 -0
  459. package/corpus/templates/forms/app/pages/FormsListPage.tsx +3 -5
  460. package/corpus/templates/forms/app/routes/_app.tsx +4 -4
  461. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +20 -6
  462. package/corpus/templates/macros/.agents/skills/security/SKILL.md +2 -0
  463. package/corpus/templates/macros/.agents/skills/shadcn-ui/SKILL.md +7 -3
  464. package/corpus/templates/macros/.agents/skills/sharing/SKILL.md +228 -0
  465. package/corpus/templates/macros/.agents/skills/storing-data/SKILL.md +178 -0
  466. package/corpus/templates/macros/app/entry.client.tsx +3 -0
  467. package/corpus/templates/mail/.agents/skills/actions/SKILL.md +19 -1
  468. package/corpus/templates/mail/.agents/skills/contacts-and-crm/SKILL.md +10 -0
  469. package/corpus/templates/mail/.agents/skills/draft-queue/SKILL.md +3 -0
  470. package/corpus/templates/mail/.agents/skills/email-drafts/SKILL.md +26 -2
  471. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +20 -6
  472. package/corpus/templates/mail/.agents/skills/inbox-automations/SKILL.md +37 -0
  473. package/corpus/templates/mail/.agents/skills/inbox-reads-and-triage/SKILL.md +58 -0
  474. package/corpus/templates/mail/.agents/skills/mail-backends/SKILL.md +33 -0
  475. package/corpus/templates/mail/.agents/skills/provider-api-scans/SKILL.md +39 -0
  476. package/corpus/templates/mail/.agents/skills/security/SKILL.md +2 -0
  477. package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +4 -3
  478. package/corpus/templates/mail/.agents/skills/shadcn-ui/SKILL.md +7 -3
  479. package/corpus/templates/mail/.agents/skills/sharing/SKILL.md +228 -0
  480. package/corpus/templates/mail/AGENTS.md +74 -143
  481. package/corpus/templates/mail/actions/create-alias.ts +36 -0
  482. package/corpus/templates/mail/actions/create-automation.ts +28 -0
  483. package/corpus/templates/mail/actions/create-scheduled-job.ts +45 -0
  484. package/corpus/templates/mail/actions/delete-alias.ts +26 -0
  485. package/corpus/templates/mail/actions/delete-automation.ts +21 -0
  486. package/corpus/templates/mail/actions/get-automation-settings.ts +32 -0
  487. package/corpus/templates/mail/actions/get-mail-preferences.ts +18 -0
  488. package/corpus/templates/mail/actions/list-aliases.ts +17 -0
  489. package/corpus/templates/mail/actions/list-automations.ts +18 -0
  490. package/corpus/templates/mail/actions/list-scheduled-jobs.ts +18 -0
  491. package/corpus/templates/mail/actions/update-alias.ts +37 -0
  492. package/corpus/templates/mail/actions/update-automation-settings.ts +33 -0
  493. package/corpus/templates/mail/actions/update-automation.ts +33 -0
  494. package/corpus/templates/mail/actions/update-mail-preferences.ts +68 -0
  495. package/corpus/templates/mail/actions/update-scheduled-job.ts +25 -0
  496. package/corpus/templates/mail/app/entry.client.tsx +3 -0
  497. package/corpus/templates/mail/app/hooks/use-aliases.ts +6 -36
  498. package/corpus/templates/mail/app/hooks/use-automations.ts +9 -16
  499. package/corpus/templates/mail/app/hooks/use-emails.ts +6 -5
  500. package/corpus/templates/mail/app/hooks/use-scheduled-jobs.ts +12 -15
  501. package/corpus/templates/mail/app/pages/SettingsPage.tsx +15 -9
  502. package/corpus/templates/mail/server/handlers/automations.ts +5 -142
  503. package/corpus/templates/mail/server/handlers/emails.ts +1 -56
  504. package/corpus/templates/mail/server/handlers/scheduled-jobs.ts +0 -134
  505. package/corpus/templates/mail/server/lib/aliases.ts +18 -0
  506. package/corpus/templates/mail/server/lib/automations.ts +104 -0
  507. package/corpus/templates/mail/server/lib/jobs.ts +34 -0
  508. package/corpus/templates/mail/server/lib/mail-settings.ts +43 -0
  509. package/corpus/templates/mail/shared/automation-schema.ts +10 -0
  510. package/corpus/templates/plan/.agents/skills/actions/SKILL.md +19 -1
  511. package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +2 -0
  512. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +20 -6
  513. package/corpus/templates/plan/.agents/skills/plan-authoring-flow/SKILL.md +98 -0
  514. package/corpus/templates/plan/.agents/skills/plan-browser-editing/SKILL.md +42 -0
  515. package/corpus/templates/plan/.agents/skills/plan-comments-and-feedback/SKILL.md +68 -0
  516. package/corpus/templates/plan/.agents/skills/plan-events/SKILL.md +22 -0
  517. package/corpus/templates/plan/.agents/skills/plan-hosted-writes/SKILL.md +42 -0
  518. package/corpus/templates/plan/.agents/skills/plan-local-codebase-chat/SKILL.md +38 -0
  519. package/corpus/templates/plan/.agents/skills/plan-review-recaps/SKILL.md +25 -0
  520. package/corpus/templates/plan/.agents/skills/plan-source-sync/SKILL.md +68 -0
  521. package/corpus/templates/plan/.agents/skills/plan-version-history/SKILL.md +25 -0
  522. package/corpus/templates/plan/.agents/skills/security/SKILL.md +2 -0
  523. package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +4 -3
  524. package/corpus/templates/plan/.agents/skills/shadcn-ui/SKILL.md +7 -3
  525. package/corpus/templates/plan/.agents/skills/sharing/SKILL.md +228 -0
  526. package/corpus/templates/plan/.agents/skills/storing-data/SKILL.md +178 -0
  527. package/corpus/templates/plan/AGENTS.md +64 -296
  528. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +9 -8
  529. package/corpus/templates/plan/app/pages/PlansPage.tsx +5 -10
  530. package/corpus/templates/slides/.agents/skills/actions/SKILL.md +19 -1
  531. package/corpus/templates/slides/.agents/skills/deck-management/SKILL.md +7 -7
  532. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +20 -6
  533. package/corpus/templates/slides/.agents/skills/security/SKILL.md +2 -0
  534. package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +4 -3
  535. package/corpus/templates/slides/.agents/skills/shadcn-ui/SKILL.md +7 -3
  536. package/corpus/templates/slides/.agents/skills/sharing/SKILL.md +228 -0
  537. package/corpus/templates/slides/.agents/skills/slide-editing/SKILL.md +3 -2
  538. package/corpus/templates/slides/.agents/skills/storing-data/SKILL.md +178 -0
  539. package/corpus/templates/slides/DEVELOPING.md +3 -3
  540. package/corpus/templates/slides/actions/_deck-write.ts +52 -0
  541. package/corpus/templates/slides/actions/add-deck.ts +73 -0
  542. package/corpus/templates/slides/actions/delete-deck.ts +60 -0
  543. package/corpus/templates/slides/actions/get-deck.ts +3 -1
  544. package/corpus/templates/slides/actions/save-deck.ts +144 -0
  545. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +27 -20
  546. package/corpus/templates/slides/app/context/DeckContext.tsx +173 -100
  547. package/corpus/templates/slides/app/pages/Index.tsx +3 -6
  548. package/corpus/templates/slides/app/routes/slide.tsx +16 -12
  549. package/corpus/templates/slides/changelog/2026-07-26-a-newly-created-deck-now-appears-in-the-deck-list-right-away.md +6 -0
  550. package/corpus/templates/slides/server/handlers/decks.ts +2 -378
  551. package/corpus/templates/tasks/.agents/skills/action-reference/SKILL.md +47 -0
  552. package/corpus/templates/tasks/.agents/skills/actions/SKILL.md +19 -1
  553. package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +2 -0
  554. package/corpus/templates/tasks/.agents/skills/change-summary/SKILL.md +19 -1
  555. package/corpus/templates/tasks/.agents/skills/custom-fields/SKILL.md +63 -0
  556. package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +20 -6
  557. package/corpus/templates/tasks/.agents/skills/security/SKILL.md +2 -0
  558. package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +4 -3
  559. package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +7 -3
  560. package/corpus/templates/tasks/.agents/skills/sharing/SKILL.md +228 -0
  561. package/corpus/templates/tasks/.agents/skills/store-conventions/SKILL.md +45 -0
  562. package/corpus/templates/tasks/.agents/skills/storing-data/SKILL.md +178 -0
  563. package/corpus/templates/tasks/.agents/skills/task-inbox-workflow/SKILL.md +66 -0
  564. package/corpus/templates/tasks/AGENTS.md +48 -113
  565. package/corpus/templates/tasks/app/entry.client.tsx +3 -0
  566. package/corpus/toolkit/CHANGELOG.md +12 -0
  567. package/corpus/toolkit/package.json +1 -1
  568. package/corpus/toolkit/src/composer/PromptComposer.tsx +23 -20
  569. package/dist/a2a/client.d.ts +3 -1
  570. package/dist/a2a/client.d.ts.map +1 -1
  571. package/dist/a2a/client.js +4 -2
  572. package/dist/a2a/client.js.map +1 -1
  573. package/dist/agent/action-warnings.d.ts +27 -0
  574. package/dist/agent/action-warnings.d.ts.map +1 -0
  575. package/dist/agent/action-warnings.js +73 -0
  576. package/dist/agent/action-warnings.js.map +1 -0
  577. package/dist/agent/durable-background.d.ts +8 -0
  578. package/dist/agent/durable-background.d.ts.map +1 -1
  579. package/dist/agent/durable-background.js +37 -5
  580. package/dist/agent/durable-background.js.map +1 -1
  581. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
  582. package/dist/agent/engine/ai-sdk-engine.js +47 -6
  583. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  584. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  585. package/dist/agent/engine/anthropic-engine.js +41 -9
  586. package/dist/agent/engine/anthropic-engine.js.map +1 -1
  587. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  588. package/dist/agent/engine/builder-engine.js +46 -19
  589. package/dist/agent/engine/builder-engine.js.map +1 -1
  590. package/dist/agent/engine/continuation-dispatch-retry.d.ts.map +1 -1
  591. package/dist/agent/engine/continuation-dispatch-retry.js +11 -9
  592. package/dist/agent/engine/continuation-dispatch-retry.js.map +1 -1
  593. package/dist/agent/engine/credential-errors.d.ts +6 -0
  594. package/dist/agent/engine/credential-errors.d.ts.map +1 -1
  595. package/dist/agent/engine/credential-errors.js +10 -0
  596. package/dist/agent/engine/credential-errors.js.map +1 -1
  597. package/dist/agent/engine/error-detail.d.ts +2 -0
  598. package/dist/agent/engine/error-detail.d.ts.map +1 -0
  599. package/dist/agent/engine/error-detail.js +37 -0
  600. package/dist/agent/engine/error-detail.js.map +1 -0
  601. package/dist/agent/engine/prompt-cache.d.ts +34 -0
  602. package/dist/agent/engine/prompt-cache.d.ts.map +1 -0
  603. package/dist/agent/engine/prompt-cache.js +39 -0
  604. package/dist/agent/engine/prompt-cache.js.map +1 -0
  605. package/dist/agent/engine/registry.d.ts.map +1 -1
  606. package/dist/agent/engine/registry.js +23 -33
  607. package/dist/agent/engine/registry.js.map +1 -1
  608. package/dist/agent/engine/tool-call-journal-seed.d.ts +1 -1
  609. package/dist/agent/engine/tool-call-journal-seed.d.ts.map +1 -1
  610. package/dist/agent/engine/tool-call-journal-seed.js +2 -2
  611. package/dist/agent/engine/tool-call-journal-seed.js.map +1 -1
  612. package/dist/agent/engine/translate-anthropic.d.ts +28 -0
  613. package/dist/agent/engine/translate-anthropic.d.ts.map +1 -1
  614. package/dist/agent/engine/translate-anthropic.js +75 -0
  615. package/dist/agent/engine/translate-anthropic.js.map +1 -1
  616. package/dist/agent/loop-settings.d.ts +35 -2
  617. package/dist/agent/loop-settings.d.ts.map +1 -1
  618. package/dist/agent/loop-settings.js +71 -8
  619. package/dist/agent/loop-settings.js.map +1 -1
  620. package/dist/agent/production-agent.d.ts +105 -20
  621. package/dist/agent/production-agent.d.ts.map +1 -1
  622. package/dist/agent/production-agent.js +516 -123
  623. package/dist/agent/production-agent.js.map +1 -1
  624. package/dist/agent/run-loop-with-resume.d.ts.map +1 -1
  625. package/dist/agent/run-loop-with-resume.js +24 -2
  626. package/dist/agent/run-loop-with-resume.js.map +1 -1
  627. package/dist/agent/run-manager.d.ts +52 -9
  628. package/dist/agent/run-manager.d.ts.map +1 -1
  629. package/dist/agent/run-manager.js +191 -36
  630. package/dist/agent/run-manager.js.map +1 -1
  631. package/dist/agent/run-store.d.ts +87 -14
  632. package/dist/agent/run-store.d.ts.map +1 -1
  633. package/dist/agent/run-store.js +331 -59
  634. package/dist/agent/run-store.js.map +1 -1
  635. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  636. package/dist/agent/thread-data-builder.js +6 -1
  637. package/dist/agent/thread-data-builder.js.map +1 -1
  638. package/dist/agent/types.d.ts +18 -6
  639. package/dist/agent/types.d.ts.map +1 -1
  640. package/dist/agent/types.js +9 -5
  641. package/dist/agent/types.js.map +1 -1
  642. package/dist/application-state/script-helpers.d.ts.map +1 -1
  643. package/dist/application-state/script-helpers.js +2 -2
  644. package/dist/application-state/script-helpers.js.map +1 -1
  645. package/dist/cli/agents.d.ts +2 -0
  646. package/dist/cli/agents.d.ts.map +1 -1
  647. package/dist/cli/agents.js +48 -1
  648. package/dist/cli/agents.js.map +1 -1
  649. package/dist/cli/app-skill.js +1 -1
  650. package/dist/cli/app-skill.js.map +1 -1
  651. package/dist/cli/code-agent-executor.d.ts.map +1 -1
  652. package/dist/cli/code-agent-executor.js +3 -3
  653. package/dist/cli/code-agent-executor.js.map +1 -1
  654. package/dist/cli/design-connect.d.ts.map +1 -1
  655. package/dist/cli/design-connect.js +73 -8
  656. package/dist/cli/design-connect.js.map +1 -1
  657. package/dist/cli/skills-content/design-visual-edit-skill.d.ts +1 -1
  658. package/dist/cli/skills-content/design-visual-edit-skill.d.ts.map +1 -1
  659. package/dist/cli/skills-content/design-visual-edit-skill.js +169 -24
  660. package/dist/cli/skills-content/design-visual-edit-skill.js.map +1 -1
  661. package/dist/client/AssistantChat.d.ts.map +1 -1
  662. package/dist/client/AssistantChat.js +135 -125
  663. package/dist/client/AssistantChat.js.map +1 -1
  664. package/dist/client/agent-chat-adapter.d.ts +17 -0
  665. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  666. package/dist/client/agent-chat-adapter.js +141 -31
  667. package/dist/client/agent-chat-adapter.js.map +1 -1
  668. package/dist/client/chat/message-components.d.ts +9 -1
  669. package/dist/client/chat/message-components.d.ts.map +1 -1
  670. package/dist/client/chat/message-components.js +12 -1
  671. package/dist/client/chat/message-components.js.map +1 -1
  672. package/dist/client/embed-auth.d.ts.map +1 -1
  673. package/dist/client/embed-auth.js +3 -1
  674. package/dist/client/embed-auth.js.map +1 -1
  675. package/dist/client/integrations/IntegrationCard.d.ts.map +1 -1
  676. package/dist/client/integrations/IntegrationCard.js +9 -4
  677. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  678. package/dist/client/integrations/IntegrationsPanel.d.ts.map +1 -1
  679. package/dist/client/integrations/IntegrationsPanel.js +13 -7
  680. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  681. package/dist/client/integrations/webhook-url.d.ts +7 -0
  682. package/dist/client/integrations/webhook-url.d.ts.map +1 -0
  683. package/dist/client/integrations/webhook-url.js +32 -0
  684. package/dist/client/integrations/webhook-url.js.map +1 -0
  685. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  686. package/dist/client/org/OrgSwitcher.js +13 -11
  687. package/dist/client/org/OrgSwitcher.js.map +1 -1
  688. package/dist/client/org/RequireActiveOrg.d.ts.map +1 -1
  689. package/dist/client/org/RequireActiveOrg.js +2 -2
  690. package/dist/client/org/RequireActiveOrg.js.map +1 -1
  691. package/dist/client/org/TeamPage.d.ts.map +1 -1
  692. package/dist/client/org/TeamPage.js +52 -13
  693. package/dist/client/org/TeamPage.js.map +1 -1
  694. package/dist/client/org/hooks.d.ts +9 -0
  695. package/dist/client/org/hooks.d.ts.map +1 -1
  696. package/dist/client/org/hooks.js +24 -0
  697. package/dist/client/org/hooks.js.map +1 -1
  698. package/dist/client/org/index.d.ts +1 -1
  699. package/dist/client/org/index.d.ts.map +1 -1
  700. package/dist/client/org/index.js +1 -1
  701. package/dist/client/org/index.js.map +1 -1
  702. package/dist/client/require-session.d.ts +12 -17
  703. package/dist/client/require-session.d.ts.map +1 -1
  704. package/dist/client/require-session.js +36 -23
  705. package/dist/client/require-session.js.map +1 -1
  706. package/dist/client/session-replay.js +1 -1
  707. package/dist/client/session-replay.js.map +1 -1
  708. package/dist/client/settings/DemoModeSection.d.ts +0 -1
  709. package/dist/client/settings/DemoModeSection.d.ts.map +1 -1
  710. package/dist/client/settings/DemoModeSection.js +0 -4
  711. package/dist/client/settings/DemoModeSection.js.map +1 -1
  712. package/dist/client/settings/SecretsSection.d.ts.map +1 -1
  713. package/dist/client/settings/SecretsSection.js +12 -8
  714. package/dist/client/settings/SecretsSection.js.map +1 -1
  715. package/dist/client/settings/VoiceTranscriptionSection.d.ts +0 -1
  716. package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -1
  717. package/dist/client/settings/VoiceTranscriptionSection.js +1 -4
  718. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  719. package/dist/client/sse-event-processor.d.ts +33 -1
  720. package/dist/client/sse-event-processor.d.ts.map +1 -1
  721. package/dist/client/sse-event-processor.js +83 -8
  722. package/dist/client/sse-event-processor.js.map +1 -1
  723. package/dist/client/use-action.d.ts.map +1 -1
  724. package/dist/client/use-action.js +23 -14
  725. package/dist/client/use-action.js.map +1 -1
  726. package/dist/client/use-agent-engine-configured.d.ts +9 -3
  727. package/dist/client/use-agent-engine-configured.d.ts.map +1 -1
  728. package/dist/client/use-agent-engine-configured.js +30 -3
  729. package/dist/client/use-agent-engine-configured.js.map +1 -1
  730. package/dist/client/use-db-sync.d.ts +3 -0
  731. package/dist/client/use-db-sync.d.ts.map +1 -1
  732. package/dist/client/use-db-sync.js +18 -1
  733. package/dist/client/use-db-sync.js.map +1 -1
  734. package/dist/collab/awareness.d.ts +2 -2
  735. package/dist/collab/awareness.d.ts.map +1 -1
  736. package/dist/collab/routes.d.ts +1 -1
  737. package/dist/credentials/index.d.ts +29 -1
  738. package/dist/credentials/index.d.ts.map +1 -1
  739. package/dist/credentials/index.js +111 -2
  740. package/dist/credentials/index.js.map +1 -1
  741. package/dist/deploy/build.d.ts +14 -3
  742. package/dist/deploy/build.d.ts.map +1 -1
  743. package/dist/deploy/build.js +81 -24
  744. package/dist/deploy/build.js.map +1 -1
  745. package/dist/deploy/workspace-deploy.d.ts +15 -0
  746. package/dist/deploy/workspace-deploy.d.ts.map +1 -1
  747. package/dist/deploy/workspace-deploy.js +19 -18
  748. package/dist/deploy/workspace-deploy.js.map +1 -1
  749. package/dist/file-upload/actions/upload-image.d.ts +2 -2
  750. package/dist/guards/no-localhost-fallback.d.ts +7 -0
  751. package/dist/guards/no-localhost-fallback.d.ts.map +1 -1
  752. package/dist/guards/no-localhost-fallback.js +75 -16
  753. package/dist/guards/no-localhost-fallback.js.map +1 -1
  754. package/dist/integrations/google-docs-poller.d.ts.map +1 -1
  755. package/dist/integrations/google-docs-poller.js +8 -3
  756. package/dist/integrations/google-docs-poller.js.map +1 -1
  757. package/dist/integrations/webhook-handler.d.ts.map +1 -1
  758. package/dist/integrations/webhook-handler.js +22 -4
  759. package/dist/integrations/webhook-handler.js.map +1 -1
  760. package/dist/jobs/scheduler.d.ts +17 -0
  761. package/dist/jobs/scheduler.d.ts.map +1 -1
  762. package/dist/jobs/scheduler.js +60 -33
  763. package/dist/jobs/scheduler.js.map +1 -1
  764. package/dist/localization/default-messages.d.ts +17 -1
  765. package/dist/localization/default-messages.d.ts.map +1 -1
  766. package/dist/localization/default-messages.js +17 -1
  767. package/dist/localization/default-messages.js.map +1 -1
  768. package/dist/notifications/routes.d.ts +1 -1
  769. package/dist/observability/evals.d.ts.map +1 -1
  770. package/dist/observability/evals.js +7 -10
  771. package/dist/observability/evals.js.map +1 -1
  772. package/dist/observability/routes.d.ts +1 -1
  773. package/dist/observability/traces.d.ts +2 -0
  774. package/dist/observability/traces.d.ts.map +1 -1
  775. package/dist/observability/traces.js.map +1 -1
  776. package/dist/org/accept-pending.js +2 -2
  777. package/dist/org/accept-pending.js.map +1 -1
  778. package/dist/org/active-org.d.ts +16 -0
  779. package/dist/org/active-org.d.ts.map +1 -0
  780. package/dist/org/active-org.js +57 -0
  781. package/dist/org/active-org.js.map +1 -0
  782. package/dist/org/auto-join-domain.d.ts.map +1 -1
  783. package/dist/org/auto-join-domain.js +3 -2
  784. package/dist/org/auto-join-domain.js.map +1 -1
  785. package/dist/org/context.d.ts +19 -1
  786. package/dist/org/context.d.ts.map +1 -1
  787. package/dist/org/context.js +159 -71
  788. package/dist/org/context.js.map +1 -1
  789. package/dist/org/handlers.d.ts +24 -1
  790. package/dist/org/handlers.d.ts.map +1 -1
  791. package/dist/org/handlers.js +129 -10
  792. package/dist/org/handlers.js.map +1 -1
  793. package/dist/org/plugin.d.ts +2 -0
  794. package/dist/org/plugin.d.ts.map +1 -1
  795. package/dist/org/plugin.js +9 -2
  796. package/dist/org/plugin.js.map +1 -1
  797. package/dist/org/types.d.ts +6 -1
  798. package/dist/org/types.d.ts.map +1 -1
  799. package/dist/org/types.js.map +1 -1
  800. package/dist/progress/routes.d.ts +1 -1
  801. package/dist/provider-api/actions/custom-provider-registration.d.ts +9 -9
  802. package/dist/provider-api/actions/provider-api.d.ts +11 -11
  803. package/dist/provider-api/index.d.ts.map +1 -1
  804. package/dist/provider-api/index.js +3 -2
  805. package/dist/provider-api/index.js.map +1 -1
  806. package/dist/resources/handlers.d.ts.map +1 -1
  807. package/dist/resources/handlers.js +2 -7
  808. package/dist/resources/handlers.js.map +1 -1
  809. package/dist/resources/script-helpers.d.ts.map +1 -1
  810. package/dist/resources/script-helpers.js +2 -2
  811. package/dist/resources/script-helpers.js.map +1 -1
  812. package/dist/scripts/chat/search-chats.d.ts.map +1 -1
  813. package/dist/scripts/chat/search-chats.js +2 -2
  814. package/dist/scripts/chat/search-chats.js.map +1 -1
  815. package/dist/scripts/describe-workspace-apps.d.ts +4 -0
  816. package/dist/scripts/describe-workspace-apps.d.ts.map +1 -0
  817. package/dist/scripts/describe-workspace-apps.js +34 -0
  818. package/dist/scripts/describe-workspace-apps.js.map +1 -0
  819. package/dist/scripts/resources/delete-memory.d.ts.map +1 -1
  820. package/dist/scripts/resources/delete-memory.js +2 -2
  821. package/dist/scripts/resources/delete-memory.js.map +1 -1
  822. package/dist/scripts/resources/delete.d.ts.map +1 -1
  823. package/dist/scripts/resources/delete.js +2 -2
  824. package/dist/scripts/resources/delete.js.map +1 -1
  825. package/dist/scripts/resources/effective.d.ts.map +1 -1
  826. package/dist/scripts/resources/effective.js +2 -2
  827. package/dist/scripts/resources/effective.js.map +1 -1
  828. package/dist/scripts/resources/list.d.ts.map +1 -1
  829. package/dist/scripts/resources/list.js +2 -2
  830. package/dist/scripts/resources/list.js.map +1 -1
  831. package/dist/scripts/resources/read.d.ts.map +1 -1
  832. package/dist/scripts/resources/read.js +2 -2
  833. package/dist/scripts/resources/read.js.map +1 -1
  834. package/dist/scripts/resources/save-memory.d.ts.map +1 -1
  835. package/dist/scripts/resources/save-memory.js +2 -2
  836. package/dist/scripts/resources/save-memory.js.map +1 -1
  837. package/dist/scripts/resources/write.d.ts.map +1 -1
  838. package/dist/scripts/resources/write.js +2 -2
  839. package/dist/scripts/resources/write.js.map +1 -1
  840. package/dist/secrets/routes.d.ts +9 -9
  841. package/dist/server/agent-capabilities.d.ts +21 -0
  842. package/dist/server/agent-capabilities.d.ts.map +1 -0
  843. package/dist/server/agent-capabilities.js +106 -0
  844. package/dist/server/agent-capabilities.js.map +1 -0
  845. package/dist/server/agent-chat/framework-prompts.d.ts.map +1 -1
  846. package/dist/server/agent-chat/framework-prompts.js +11 -13
  847. package/dist/server/agent-chat/framework-prompts.js.map +1 -1
  848. package/dist/server/agent-chat/prompt-resources.d.ts +32 -0
  849. package/dist/server/agent-chat/prompt-resources.d.ts.map +1 -1
  850. package/dist/server/agent-chat/prompt-resources.js +117 -56
  851. package/dist/server/agent-chat/prompt-resources.js.map +1 -1
  852. package/dist/server/agent-chat/script-entries.d.ts.map +1 -1
  853. package/dist/server/agent-chat/script-entries.js +18 -8
  854. package/dist/server/agent-chat/script-entries.js.map +1 -1
  855. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  856. package/dist/server/agent-chat-plugin.js +27 -1
  857. package/dist/server/agent-chat-plugin.js.map +1 -1
  858. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  859. package/dist/server/auth.d.ts +9 -9
  860. package/dist/server/auth.d.ts.map +1 -1
  861. package/dist/server/auth.js +32 -33
  862. package/dist/server/auth.js.map +1 -1
  863. package/dist/server/core-routes-plugin.d.ts +45 -0
  864. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  865. package/dist/server/core-routes-plugin.js +162 -139
  866. package/dist/server/core-routes-plugin.js.map +1 -1
  867. package/dist/server/credential-provider.d.ts +35 -2
  868. package/dist/server/credential-provider.d.ts.map +1 -1
  869. package/dist/server/credential-provider.js +155 -40
  870. package/dist/server/credential-provider.js.map +1 -1
  871. package/dist/server/embed-session.d.ts.map +1 -1
  872. package/dist/server/embed-session.js +10 -0
  873. package/dist/server/embed-session.js.map +1 -1
  874. package/dist/server/framework-request-handler.d.ts.map +1 -1
  875. package/dist/server/framework-request-handler.js +38 -0
  876. package/dist/server/framework-request-handler.js.map +1 -1
  877. package/dist/server/google-auth-plugin.d.ts.map +1 -1
  878. package/dist/server/google-auth-plugin.js +12 -444
  879. package/dist/server/google-auth-plugin.js.map +1 -1
  880. package/dist/server/index.d.ts +2 -2
  881. package/dist/server/index.d.ts.map +1 -1
  882. package/dist/server/index.js +2 -2
  883. package/dist/server/index.js.map +1 -1
  884. package/dist/server/onboarding-html.d.ts.map +1 -1
  885. package/dist/server/onboarding-html.js +20 -56
  886. package/dist/server/onboarding-html.js.map +1 -1
  887. package/dist/server/open-route.d.ts.map +1 -1
  888. package/dist/server/open-route.js +6 -1
  889. package/dist/server/open-route.js.map +1 -1
  890. package/dist/server/poll.js +1 -1
  891. package/dist/server/poll.js.map +1 -1
  892. package/dist/server/prompts/framework-core-compact.d.ts.map +1 -1
  893. package/dist/server/prompts/framework-core-compact.js +5 -6
  894. package/dist/server/prompts/framework-core-compact.js.map +1 -1
  895. package/dist/server/prompts/framework-core.d.ts.map +1 -1
  896. package/dist/server/prompts/framework-core.js +7 -10
  897. package/dist/server/prompts/framework-core.js.map +1 -1
  898. package/dist/server/prompts/shared-rules.d.ts +20 -2
  899. package/dist/server/prompts/shared-rules.d.ts.map +1 -1
  900. package/dist/server/prompts/shared-rules.js +20 -10
  901. package/dist/server/prompts/shared-rules.js.map +1 -1
  902. package/dist/server/request-context.d.ts +26 -1
  903. package/dist/server/request-context.d.ts.map +1 -1
  904. package/dist/server/request-context.js +52 -2
  905. package/dist/server/request-context.js.map +1 -1
  906. package/dist/server/scoped-key-storage.js +1 -1
  907. package/dist/server/scoped-key-storage.js.map +1 -1
  908. package/dist/settings/org-settings.d.ts +2 -0
  909. package/dist/settings/org-settings.d.ts.map +1 -1
  910. package/dist/settings/org-settings.js +5 -1
  911. package/dist/settings/org-settings.js.map +1 -1
  912. package/dist/settings/store.d.ts +6 -0
  913. package/dist/settings/store.d.ts.map +1 -1
  914. package/dist/settings/store.js +25 -0
  915. package/dist/settings/store.js.map +1 -1
  916. package/dist/shared/index.d.ts +1 -0
  917. package/dist/shared/index.d.ts.map +1 -1
  918. package/dist/shared/index.js +1 -0
  919. package/dist/shared/index.js.map +1 -1
  920. package/dist/shared/sign-in-journey.d.ts +102 -0
  921. package/dist/shared/sign-in-journey.d.ts.map +1 -0
  922. package/dist/shared/sign-in-journey.js +269 -0
  923. package/dist/shared/sign-in-journey.js.map +1 -0
  924. package/dist/styles/agent-native.css +8 -0
  925. package/dist/templates/chat/.agents/skills/actions/SKILL.md +19 -1
  926. package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +2 -0
  927. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +20 -6
  928. package/dist/templates/chat/.agents/skills/security/SKILL.md +2 -0
  929. package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +4 -3
  930. package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +7 -3
  931. package/dist/templates/chat/.agents/skills/sharing/SKILL.md +228 -0
  932. package/dist/templates/chat/.agents/skills/storing-data/SKILL.md +178 -0
  933. package/dist/templates/chat/AGENTS.md +8 -0
  934. package/dist/templates/chat/app/entry.client.tsx +3 -0
  935. package/dist/templates/default/.agents/skills/actions/SKILL.md +19 -1
  936. package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +2 -0
  937. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +20 -6
  938. package/dist/templates/default/.agents/skills/security/SKILL.md +2 -0
  939. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +4 -3
  940. package/dist/templates/default/.agents/skills/shadcn-ui/SKILL.md +7 -3
  941. package/dist/templates/default/AGENTS.md +68 -195
  942. package/dist/templates/default/app/entry.client.tsx +3 -0
  943. package/dist/templates/default/app/i18n/ar-SA.ts +8 -0
  944. package/dist/templates/default/app/i18n/de-DE.ts +8 -0
  945. package/dist/templates/default/app/i18n/en-US.ts +8 -0
  946. package/dist/templates/default/app/i18n/es-ES.ts +8 -0
  947. package/dist/templates/default/app/i18n/fr-FR.ts +8 -0
  948. package/dist/templates/default/app/i18n/hi-IN.ts +8 -0
  949. package/dist/templates/default/app/i18n/ja-JP.ts +8 -0
  950. package/dist/templates/default/app/i18n/ko-KR.ts +8 -0
  951. package/dist/templates/default/app/i18n/pt-BR.ts +8 -0
  952. package/dist/templates/default/app/i18n/zh-CN.ts +8 -0
  953. package/dist/templates/default/app/i18n/zh-TW.ts +8 -0
  954. package/dist/templates/headless/.agents/skills/actions/SKILL.md +19 -1
  955. package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +19 -1
  956. package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +2 -0
  957. package/dist/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +100 -0
  958. package/dist/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +2 -1
  959. package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +28 -0
  960. package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +14 -1
  961. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +20 -6
  962. package/dist/templates/workspace-core/.agents/skills/qa/SKILL.md +6 -3
  963. package/dist/templates/workspace-core/.agents/skills/security/SKILL.md +2 -0
  964. package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +4 -3
  965. package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +7 -3
  966. package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +91 -0
  967. package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +60 -0
  968. package/dist/templates/workspace-core/AGENTS.md +62 -124
  969. package/dist/templates/workspace-root/AGENTS.md +6 -1
  970. package/dist/triggers/dispatcher.d.ts.map +1 -1
  971. package/dist/triggers/dispatcher.js +10 -3
  972. package/dist/triggers/dispatcher.js.map +1 -1
  973. package/dist/vite/client.d.ts.map +1 -1
  974. package/dist/vite/client.js +18 -8
  975. package/dist/vite/client.js.map +1 -1
  976. package/docs/content/actions.mdx +33 -20
  977. package/docs/content/agent-mentions.mdx +30 -19
  978. package/docs/content/agent-native-toolkit.mdx +8 -6
  979. package/docs/content/agent-resources.mdx +11 -0
  980. package/docs/content/agent-surfaces.mdx +41 -30
  981. package/docs/content/audit-log.mdx +78 -0
  982. package/docs/content/authentication.mdx +7 -5
  983. package/docs/content/automations.mdx +15 -9
  984. package/docs/content/client.mdx +11 -11
  985. package/docs/content/cloneable-saas.mdx +7 -1
  986. package/docs/content/code-agents-ui.mdx +9 -1
  987. package/docs/content/components.mdx +7 -0
  988. package/docs/content/context-awareness.mdx +1 -0
  989. package/docs/content/creating-templates.mdx +9 -1
  990. package/docs/content/custom-design-system.mdx +8 -0
  991. package/docs/content/data-programs.mdx +6 -0
  992. package/docs/content/deployment.mdx +2 -0
  993. package/docs/content/doctor.mdx +5 -3
  994. package/docs/content/extensions.mdx +26 -0
  995. package/docs/content/external-agents-catalog.mdx +533 -0
  996. package/docs/content/external-agents.mdx +20 -514
  997. package/docs/content/faq.mdx +2 -2
  998. package/docs/content/file-uploads.mdx +44 -0
  999. package/docs/content/frames.mdx +2 -2
  1000. package/docs/content/generative-ui.mdx +8 -0
  1001. package/docs/content/getting-started.mdx +45 -17
  1002. package/docs/content/human-approval.mdx +9 -0
  1003. package/docs/content/integrations.mdx +4 -3
  1004. package/docs/content/internationalization.mdx +4 -11
  1005. package/docs/content/key-concepts.mdx +1 -1
  1006. package/docs/content/local-file-mode.mdx +5 -0
  1007. package/docs/content/mcp-apps.mdx +2 -1
  1008. package/docs/content/mcp-clients.mdx +32 -1
  1009. package/docs/content/mcp-protocol.mdx +4 -3
  1010. package/docs/content/messaging-internals.mdx +328 -0
  1011. package/docs/content/messaging-recipes.mdx +194 -0
  1012. package/docs/content/messaging.mdx +9 -307
  1013. package/docs/content/multi-app-workspace.mdx +1 -1
  1014. package/docs/content/multi-tenancy.mdx +1 -0
  1015. package/docs/content/native-chat-ui.mdx +8 -0
  1016. package/docs/content/notifications.mdx +18 -20
  1017. package/docs/content/observability.mdx +1 -0
  1018. package/docs/content/onboarding.mdx +20 -6
  1019. package/docs/content/organizations-teams-permissions.mdx +99 -124
  1020. package/docs/content/package-lifecycle.mdx +19 -7
  1021. package/docs/content/progress.mdx +11 -0
  1022. package/docs/content/real-time-collaboration.mdx +44 -3
  1023. package/docs/content/recurring-jobs.mdx +14 -1
  1024. package/docs/content/security.mdx +5 -2
  1025. package/docs/content/server.mdx +2 -1
  1026. package/docs/content/sharing.mdx +22 -3
  1027. package/docs/content/skills-guide.mdx +62 -19
  1028. package/docs/content/syncing-template-changes.mdx +9 -0
  1029. package/docs/content/template-analytics-connectors.mdx +75 -0
  1030. package/docs/content/template-analytics-dashboards.mdx +106 -0
  1031. package/docs/content/template-analytics-developers.mdx +287 -0
  1032. package/docs/content/template-analytics-monitoring-and-sessions.mdx +109 -0
  1033. package/docs/content/template-analytics.mdx +21 -263
  1034. package/docs/content/template-assets-developers.mdx +456 -0
  1035. package/docs/content/template-assets-generation.mdx +147 -0
  1036. package/docs/content/template-assets-integrations.mdx +319 -0
  1037. package/docs/content/template-assets-presets.mdx +185 -0
  1038. package/docs/content/template-assets.mdx +12 -562
  1039. package/docs/content/template-brain-agent.mdx +103 -0
  1040. package/docs/content/template-brain-developers.mdx +379 -0
  1041. package/docs/content/template-brain-knowledge.mdx +50 -0
  1042. package/docs/content/template-brain-sources.mdx +163 -0
  1043. package/docs/content/template-brain.mdx +30 -390
  1044. package/docs/content/template-calendar-agent.mdx +133 -0
  1045. package/docs/content/template-calendar-booking-links.mdx +73 -0
  1046. package/docs/content/template-calendar-developers.mdx +366 -0
  1047. package/docs/content/template-calendar-scheduling.mdx +128 -0
  1048. package/docs/content/template-calendar.mdx +13 -260
  1049. package/docs/content/template-chat-developers.mdx +88 -0
  1050. package/docs/content/template-chat-first-edits.mdx +145 -0
  1051. package/docs/content/template-chat.mdx +12 -77
  1052. package/docs/content/template-clips-ai-and-editing.mdx +114 -0
  1053. package/docs/content/template-clips-capture-everywhere.mdx +120 -0
  1054. package/docs/content/template-clips-developers.mdx +373 -0
  1055. package/docs/content/template-clips-sharing-and-teams.mdx +182 -0
  1056. package/docs/content/template-clips.mdx +19 -508
  1057. package/docs/content/template-content-databases.mdx +406 -0
  1058. package/docs/content/template-content-developers.mdx +364 -0
  1059. package/docs/content/template-content-editing.mdx +60 -0
  1060. package/docs/content/template-content-sync.mdx +149 -0
  1061. package/docs/content/template-content.mdx +21 -561
  1062. package/docs/content/template-design-brand-and-figma.mdx +150 -0
  1063. package/docs/content/template-design-collaboration-and-full-apps.mdx +125 -0
  1064. package/docs/content/template-design-developers.mdx +358 -0
  1065. package/docs/content/template-design-quality-and-components.mdx +95 -0
  1066. package/docs/content/template-design.mdx +20 -344
  1067. package/docs/content/template-dispatch-developers.mdx +121 -0
  1068. package/docs/content/template-dispatch-messaging-routing.mdx +114 -0
  1069. package/docs/content/template-dispatch-operations.mdx +160 -0
  1070. package/docs/content/template-dispatch-vault-integrations.mdx +316 -0
  1071. package/docs/content/template-dispatch.mdx +24 -283
  1072. package/docs/content/template-forms-building-publishing.mdx +135 -0
  1073. package/docs/content/template-forms-developers.mdx +195 -0
  1074. package/docs/content/template-forms-responses.mdx +120 -0
  1075. package/docs/content/template-forms.mdx +21 -230
  1076. package/docs/content/template-mail-agent.mdx +114 -0
  1077. package/docs/content/template-mail-developers.mdx +356 -0
  1078. package/docs/content/template-mail-drafts-and-queue.mdx +103 -0
  1079. package/docs/content/template-mail-inbox.mdx +118 -0
  1080. package/docs/content/template-mail.mdx +23 -274
  1081. package/docs/content/template-plan-automations.mdx +213 -0
  1082. package/docs/content/template-plan-developers.mdx +703 -0
  1083. package/docs/content/template-plan-local-and-desktop.mdx +236 -0
  1084. package/docs/content/template-plan-review-workflow.mdx +180 -0
  1085. package/docs/content/template-plan.mdx +60 -910
  1086. package/docs/content/template-slides-agent.mdx +102 -0
  1087. package/docs/content/template-slides-design-and-media.mdx +94 -0
  1088. package/docs/content/template-slides-developers.mdx +488 -0
  1089. package/docs/content/template-slides-editing.mdx +56 -0
  1090. package/docs/content/template-slides.mdx +20 -362
  1091. package/docs/content/toolkit-capability-packages.mdx +38 -13
  1092. package/docs/content/toolkit-context-knowledge.mdx +49 -9
  1093. package/docs/content/toolkit-editors-canvases.mdx +72 -10
  1094. package/docs/content/toolkit-resources.mdx +16 -0
  1095. package/docs/content/toolkit-settings.mdx +3 -3
  1096. package/docs/content/toolkit-sharing.mdx +5 -7
  1097. package/docs/content/using-your-agent.mdx +25 -2
  1098. package/docs/content/voice-input.mdx +11 -7
  1099. package/docs/content/what-is-agent-native.mdx +1 -0
  1100. package/docs/content/workspace-connections.mdx +21 -11
  1101. package/docs/content/workspace-management.mdx +1 -1
  1102. package/package.json +2 -4
  1103. package/src/a2a/client.ts +4 -2
  1104. package/src/agent/action-warnings.ts +103 -0
  1105. package/src/agent/durable-background.ts +42 -5
  1106. package/src/agent/engine/ai-sdk-engine.ts +58 -6
  1107. package/src/agent/engine/anthropic-engine.ts +51 -8
  1108. package/src/agent/engine/builder-engine.ts +56 -18
  1109. package/src/agent/engine/continuation-dispatch-retry.ts +10 -9
  1110. package/src/agent/engine/credential-errors.ts +11 -0
  1111. package/src/agent/engine/error-detail.ts +39 -0
  1112. package/src/agent/engine/prompt-cache.ts +44 -0
  1113. package/src/agent/engine/registry.ts +22 -30
  1114. package/src/agent/engine/tool-call-journal-seed.ts +2 -1
  1115. package/src/agent/engine/translate-anthropic.ts +99 -0
  1116. package/src/agent/loop-settings.ts +94 -7
  1117. package/src/agent/production-agent.ts +667 -157
  1118. package/src/agent/run-loop-with-resume.ts +27 -1
  1119. package/src/agent/run-manager.ts +229 -39
  1120. package/src/agent/run-store.ts +397 -64
  1121. package/src/agent/thread-data-builder.ts +5 -1
  1122. package/src/agent/types.ts +23 -6
  1123. package/src/application-state/script-helpers.ts +5 -2
  1124. package/src/cli/agents.ts +69 -1
  1125. package/src/cli/app-skill.ts +1 -1
  1126. package/src/cli/code-agent-executor.ts +7 -3
  1127. package/src/cli/design-connect.ts +82 -8
  1128. package/src/cli/skills-content/design-visual-edit-skill.ts +169 -24
  1129. package/src/client/AssistantChat.tsx +623 -607
  1130. package/src/client/agent-chat-adapter.ts +176 -29
  1131. package/src/client/chat/message-components.tsx +13 -0
  1132. package/src/client/embed-auth.ts +3 -1
  1133. package/src/client/integrations/IntegrationCard.tsx +41 -24
  1134. package/src/client/integrations/IntegrationsPanel.tsx +37 -21
  1135. package/src/client/integrations/webhook-url.ts +29 -0
  1136. package/src/client/org/OrgSwitcher.tsx +41 -27
  1137. package/src/client/org/RequireActiveOrg.tsx +7 -0
  1138. package/src/client/org/TeamPage.tsx +144 -14
  1139. package/src/client/org/hooks.ts +27 -0
  1140. package/src/client/org/index.ts +2 -0
  1141. package/src/client/require-session.tsx +40 -29
  1142. package/src/client/session-replay.ts +1 -1
  1143. package/src/client/settings/DemoModeSection.tsx +0 -5
  1144. package/src/client/settings/SecretsSection.tsx +47 -42
  1145. package/src/client/settings/VoiceTranscriptionSection.tsx +0 -5
  1146. package/src/client/sse-event-processor.ts +83 -8
  1147. package/src/client/use-action.ts +22 -13
  1148. package/src/client/use-agent-engine-configured.ts +36 -4
  1149. package/src/client/use-db-sync.ts +21 -1
  1150. package/src/credentials/index.ts +124 -2
  1151. package/src/deploy/build.ts +93 -30
  1152. package/src/deploy/workspace-deploy.ts +21 -16
  1153. package/src/guards/no-localhost-fallback.ts +76 -14
  1154. package/src/integrations/google-docs-poller.ts +19 -12
  1155. package/src/integrations/webhook-handler.ts +56 -33
  1156. package/src/jobs/scheduler.ts +57 -23
  1157. package/src/localization/default-messages.ts +23 -1
  1158. package/src/observability/evals.ts +7 -8
  1159. package/src/observability/traces.ts +2 -0
  1160. package/src/org/accept-pending.ts +2 -2
  1161. package/src/org/active-org.ts +73 -0
  1162. package/src/org/auto-join-domain.ts +7 -2
  1163. package/src/org/context.ts +169 -66
  1164. package/src/org/handlers.ts +148 -10
  1165. package/src/org/plugin.ts +8 -1
  1166. package/src/org/types.ts +6 -1
  1167. package/src/provider-api/index.ts +6 -1
  1168. package/src/resources/handlers.ts +2 -6
  1169. package/src/resources/script-helpers.ts +2 -1
  1170. package/src/scripts/chat/search-chats.ts +5 -2
  1171. package/src/scripts/describe-workspace-apps.ts +59 -0
  1172. package/src/scripts/resources/delete-memory.ts +5 -2
  1173. package/src/scripts/resources/delete.ts +5 -2
  1174. package/src/scripts/resources/effective.ts +5 -2
  1175. package/src/scripts/resources/list.ts +5 -2
  1176. package/src/scripts/resources/read.ts +5 -2
  1177. package/src/scripts/resources/save-memory.ts +5 -2
  1178. package/src/scripts/resources/write.ts +5 -2
  1179. package/src/server/__snapshots__/agent-chat-plugin.surface.spec.ts.snap +11 -31
  1180. package/src/server/agent-capabilities.ts +147 -0
  1181. package/src/server/agent-chat/framework-prompts.ts +11 -13
  1182. package/src/server/agent-chat/prompt-resources.ts +183 -57
  1183. package/src/server/agent-chat/script-entries.ts +20 -7
  1184. package/src/server/agent-chat-plugin.ts +27 -0
  1185. package/src/server/auth.ts +38 -32
  1186. package/src/server/core-routes-plugin.ts +229 -179
  1187. package/src/server/credential-provider.ts +196 -44
  1188. package/src/server/embed-session.ts +10 -0
  1189. package/src/server/framework-request-handler.ts +43 -0
  1190. package/src/server/google-auth-plugin.ts +13 -450
  1191. package/src/server/index.ts +4 -1
  1192. package/src/server/onboarding-html.ts +20 -56
  1193. package/src/server/open-route.ts +6 -1
  1194. package/src/server/poll.ts +1 -1
  1195. package/src/server/prompts/framework-core-compact.ts +5 -5
  1196. package/src/server/prompts/framework-core.ts +7 -9
  1197. package/src/server/prompts/shared-rules.ts +20 -9
  1198. package/src/server/request-context.ts +58 -2
  1199. package/src/server/scoped-key-storage.ts +1 -1
  1200. package/src/settings/org-settings.ts +9 -0
  1201. package/src/settings/store.ts +29 -0
  1202. package/src/shared/index.ts +13 -0
  1203. package/src/shared/sign-in-journey.ts +331 -0
  1204. package/src/styles/agent-native.css +8 -0
  1205. package/src/templates/chat/.agents/skills/actions/SKILL.md +19 -1
  1206. package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +2 -0
  1207. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +20 -6
  1208. package/src/templates/chat/.agents/skills/security/SKILL.md +2 -0
  1209. package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +4 -3
  1210. package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +7 -3
  1211. package/src/templates/chat/.agents/skills/sharing/SKILL.md +228 -0
  1212. package/src/templates/chat/.agents/skills/storing-data/SKILL.md +178 -0
  1213. package/src/templates/chat/AGENTS.md +8 -0
  1214. package/src/templates/chat/app/entry.client.tsx +3 -0
  1215. package/src/templates/default/.agents/skills/actions/SKILL.md +19 -1
  1216. package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +2 -0
  1217. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +20 -6
  1218. package/src/templates/default/.agents/skills/security/SKILL.md +2 -0
  1219. package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +4 -3
  1220. package/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +7 -3
  1221. package/src/templates/default/AGENTS.md +68 -195
  1222. package/src/templates/default/app/entry.client.tsx +3 -0
  1223. package/src/templates/default/app/i18n/ar-SA.ts +8 -0
  1224. package/src/templates/default/app/i18n/de-DE.ts +8 -0
  1225. package/src/templates/default/app/i18n/en-US.ts +8 -0
  1226. package/src/templates/default/app/i18n/es-ES.ts +8 -0
  1227. package/src/templates/default/app/i18n/fr-FR.ts +8 -0
  1228. package/src/templates/default/app/i18n/hi-IN.ts +8 -0
  1229. package/src/templates/default/app/i18n/ja-JP.ts +8 -0
  1230. package/src/templates/default/app/i18n/ko-KR.ts +8 -0
  1231. package/src/templates/default/app/i18n/pt-BR.ts +8 -0
  1232. package/src/templates/default/app/i18n/zh-CN.ts +8 -0
  1233. package/src/templates/default/app/i18n/zh-TW.ts +8 -0
  1234. package/src/templates/headless/.agents/skills/actions/SKILL.md +19 -1
  1235. package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +19 -1
  1236. package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +2 -0
  1237. package/src/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +100 -0
  1238. package/src/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +2 -1
  1239. package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +28 -0
  1240. package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +14 -1
  1241. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +20 -6
  1242. package/src/templates/workspace-core/.agents/skills/qa/SKILL.md +6 -3
  1243. package/src/templates/workspace-core/.agents/skills/security/SKILL.md +2 -0
  1244. package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +4 -3
  1245. package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +7 -3
  1246. package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +91 -0
  1247. package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +60 -0
  1248. package/src/templates/workspace-core/AGENTS.md +62 -124
  1249. package/src/templates/workspace-root/AGENTS.md +6 -1
  1250. package/src/triggers/dispatcher.ts +28 -17
  1251. package/src/vite/client.ts +20 -8
  1252. package/corpus/core/src/client/components/MissingKeyCard.tsx +0 -61
  1253. package/corpus/core/src/client/extensions/agent-native-extension-runtime.ts +0 -495
  1254. package/corpus/core/src/client/settings/BackgroundAgentSection.tsx +0 -193
  1255. package/corpus/core/src/client/settings/BrowserSection.tsx +0 -110
  1256. package/corpus/templates/analytics/app/components/InlineMetric.tsx +0 -31
  1257. package/corpus/templates/analytics/app/components/auth/LoginScreen.tsx +0 -4
  1258. package/corpus/templates/analytics/app/components/dashboard/CumulativeNetChart.tsx +0 -128
  1259. package/corpus/templates/analytics/app/components/dashboard/DataTable.tsx +0 -264
  1260. package/corpus/templates/analytics/app/components/dashboard/RecentActivity.tsx +0 -84
  1261. package/corpus/templates/analytics/app/components/dashboard/RevenueChart.tsx +0 -92
  1262. package/corpus/templates/analytics/app/components/dashboard/RevenueComparisonChart.tsx +0 -154
  1263. package/corpus/templates/analytics/app/components/dashboard/StatsCard.tsx +0 -49
  1264. package/corpus/templates/analytics/app/components/dashboard/TimeSeriesChart.tsx +0 -120
  1265. package/corpus/templates/analytics/server/handlers/dashboard-views.ts +0 -85
  1266. package/corpus/templates/analytics/server/handlers/user-prefs.ts +0 -58
  1267. package/corpus/templates/analytics/server/routes/api/dashboard-views/[dashboardId]/[viewId].delete.ts +0 -1
  1268. package/corpus/templates/analytics/server/routes/api/dashboard-views/[dashboardId].get.ts +0 -1
  1269. package/corpus/templates/analytics/server/routes/api/dashboard-views/[dashboardId].post.ts +0 -1
  1270. package/corpus/templates/analytics/server/routes/api/theme.get.ts +0 -17
  1271. package/corpus/templates/analytics/server/routes/api/theme.post.ts +0 -15
  1272. package/corpus/templates/analytics/server/routes/api/user-prefs/[key].delete.ts +0 -1
  1273. package/corpus/templates/analytics/server/routes/api/user-prefs/[key].get.ts +0 -1
  1274. package/corpus/templates/analytics/server/routes/api/user-prefs/[key].put.ts +0 -1
  1275. package/corpus/templates/assets/app/components/library/CreateLibraryDialog.tsx +0 -156
  1276. package/corpus/templates/assets/app/components/library/LibraryCard.tsx +0 -213
  1277. package/corpus/templates/calendar/app/components/calendar/GoogleSyncButton.tsx +0 -49
  1278. package/corpus/templates/calendar/server/routes/api/events/[id].delete.ts +0 -1
  1279. package/corpus/templates/calendar/server/routes/api/events/[id].get.ts +0 -1
  1280. package/corpus/templates/calendar/server/routes/api/events/[id].put.ts +0 -1
  1281. package/corpus/templates/content/app/components/layout/AppLayout.tsx +0 -9
  1282. package/corpus/templates/content/server/routes/api/comments/[id].delete.ts +0 -69
  1283. package/corpus/templates/content/server/routes/api/comments/[id].patch.ts +0 -109
  1284. package/corpus/templates/content/server/routes/api/documents/[id]/versions.get.ts +0 -53
  1285. package/corpus/templates/design/app/components/design/code-workbench/ActivityBar.tsx +0 -85
  1286. package/corpus/templates/design/app/components/design-system/DesignSystemCard.tsx +0 -129
  1287. package/corpus/templates/forms/app/components/layout/AppLayout.tsx +0 -9
  1288. package/corpus/templates/mail/app/components/email/SnoozePopover.tsx +0 -213
  1289. package/corpus/templates/mail/server/handlers/aliases.ts +0 -98
  1290. package/corpus/templates/mail/server/routes/api/aliases/[id].delete.ts +0 -1
  1291. package/corpus/templates/mail/server/routes/api/aliases/[id].patch.ts +0 -1
  1292. package/corpus/templates/mail/server/routes/api/aliases/index.get.ts +0 -1
  1293. package/corpus/templates/mail/server/routes/api/aliases/index.post.ts +0 -1
  1294. package/corpus/templates/mail/server/routes/api/automations/[id].delete.ts +0 -1
  1295. package/corpus/templates/mail/server/routes/api/automations/[id].patch.ts +0 -1
  1296. package/corpus/templates/mail/server/routes/api/automations/index.get.ts +0 -1
  1297. package/corpus/templates/mail/server/routes/api/automations/index.post.ts +0 -1
  1298. package/corpus/templates/mail/server/routes/api/automations/settings.get.ts +0 -22
  1299. package/corpus/templates/mail/server/routes/api/automations/settings.put.ts +0 -25
  1300. package/corpus/templates/mail/server/routes/api/scheduled-jobs/[id].delete.ts +0 -1
  1301. package/corpus/templates/mail/server/routes/api/scheduled-jobs/[id].patch.ts +0 -1
  1302. package/corpus/templates/mail/server/routes/api/scheduled-jobs/index.get.ts +0 -1
  1303. package/corpus/templates/mail/server/routes/api/scheduled-jobs/index.post.ts +0 -1
  1304. package/corpus/templates/mail/server/routes/api/settings.get.ts +0 -1
  1305. package/corpus/templates/mail/server/routes/api/settings.patch.ts +0 -1
  1306. package/corpus/templates/slides/app/components/deck/BuilderLogo.tsx +0 -22
  1307. package/corpus/templates/slides/app/components/design-system/DesignSystemPreview.tsx +0 -176
  1308. package/corpus/templates/slides/app/components/editor/GenerateSlidesDialog.tsx +0 -244
  1309. package/corpus/templates/slides/app/components/editor/ImportButton.tsx +0 -84
  1310. package/corpus/templates/slides/server/routes/api/comments/[id].delete.ts +0 -43
  1311. package/corpus/templates/slides/server/routes/api/comments/[id].patch.ts +0 -50
  1312. package/corpus/templates/slides/server/routes/api/decks/[id].delete.ts +0 -1
  1313. package/corpus/templates/slides/server/routes/api/decks/[id].get.ts +0 -1
  1314. package/corpus/templates/slides/server/routes/api/decks/[id].put.ts +0 -1
  1315. package/corpus/templates/slides/server/routes/api/decks/index.get.ts +0 -1
  1316. package/corpus/templates/slides/server/routes/api/decks/index.post.ts +0 -1
  1317. package/dist/client/components/MissingKeyCard.d.ts +0 -7
  1318. package/dist/client/components/MissingKeyCard.d.ts.map +0 -1
  1319. package/dist/client/components/MissingKeyCard.js +0 -32
  1320. package/dist/client/components/MissingKeyCard.js.map +0 -1
  1321. package/dist/client/extensions/agent-native-extension-runtime.d.ts +0 -69
  1322. package/dist/client/extensions/agent-native-extension-runtime.d.ts.map +0 -1
  1323. package/dist/client/extensions/agent-native-extension-runtime.js +0 -348
  1324. package/dist/client/extensions/agent-native-extension-runtime.js.map +0 -1
  1325. package/dist/client/settings/BackgroundAgentSection.d.ts +0 -2
  1326. package/dist/client/settings/BackgroundAgentSection.d.ts.map +0 -1
  1327. package/dist/client/settings/BackgroundAgentSection.js +0 -68
  1328. package/dist/client/settings/BackgroundAgentSection.js.map +0 -1
  1329. package/dist/client/settings/BrowserSection.d.ts +0 -2
  1330. package/dist/client/settings/BrowserSection.d.ts.map +0 -1
  1331. package/dist/client/settings/BrowserSection.js +0 -40
  1332. package/dist/client/settings/BrowserSection.js.map +0 -1
  1333. package/dist/templates/chat/.react-router/types/+server-build.d.ts +0 -18
  1334. package/dist/templates/chat/.react-router/types/app/+types/root.ts +0 -68
  1335. package/src/client/components/MissingKeyCard.tsx +0 -61
  1336. package/src/client/extensions/agent-native-extension-runtime.ts +0 -495
  1337. package/src/client/settings/BackgroundAgentSection.tsx +0 -193
  1338. package/src/client/settings/BrowserSection.tsx +0 -110
  1339. package/src/templates/chat/.react-router/types/+server-build.d.ts +0 -18
  1340. package/src/templates/chat/.react-router/types/app/+types/root.ts +0 -68
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-resources.js","sourceRoot":"","sources":["../../../src/server/agent-chat/prompt-resources.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,8EAA8E;AAC9E,uEAAuE;AACvE,mEAAmE;AACnE,uEAAuE;AACvE,oEAAoE;AACpE,8EAA8E;AAE9E,MAAM,gCAAgC,GAAG,MAAM,CAAC;AAChD,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AACvD,MAAM,wCAAwC,GAAG,MAAM,CAAC;AACxD,MAAM,iCAAiC,GAAG,KAAK,CAAC;AA4BhD,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAiC,CAAC;AAExE,4EAA4E;AAC5E,MAAM,UAAU,6BAA6B,CAC3C,QAA+B;IAE/B,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,CAAC;IACvC,sBAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC3C,OAAO,GAAG,EAAE;QACV,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,UAAU,EAAE,CAAC;YAClD,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,OAAqC;IAErC,MAAM,SAAS,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CACzB,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjC,QAAQ;QACR,YAAY,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;KAC3C,CAAC,CAAC,CACJ,CAAC;IACF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;YAAE,SAAS;QAC5C,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QAChD,IAAI,CAAC,YAAY;YAAE,SAAS;QAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,cAAc,GAClB,OAAO,CAAC,MAAM,IAAI,iCAAiC;YACjD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,iCAAiC,CAAC,sBAAsB,iCAAiC,CAAC,cAAc,EAAE,cAAc,CAAC;QACnJ,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,iBAAiB,CAAC;QAChE,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,WAAW,CAAC;QAC1D,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC;QACxE,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC;QACvE,MAAM,CAAC,IAAI,CACT,gCAAgC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,UAAU,iBAAiB,UAAU,YAAY,kBAAkB,CAAC,WAAW,CAAC,WAAW,kBAAkB,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,+BAA+B,EAAE,kCAAkC,CAAC,8BAA8B,CAC/W,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,QAAgB;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;AAC3C,CAAC;AACD,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAC5C,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAC5C,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAUjD,SAAS,8BAA8B,CAAC,IAAY;IAClD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;IAC/C,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,8BAA8B,CACrC,KAAa,EACb,IAAY,EACZ,KAAa;IAKb,MAAM,cAAc,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,UAAU,EACR,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,CAAC;gBAClC,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,eAAe;YACrB,UAAU,EACR,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;SAClE,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,UAAU,EAAE,cAAc,KAAK,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;YACzE,UAAU,EAAE,MAAM;SACnB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,UAAU,EACR,cAAc,KAAK,cAAc;gBAC/B,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,oBAAoB;YAC1B,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,MAAc;IAEd,MAAM,QAAQ,GAAoC,EAAE,CAAC;IACrD,MAAM,eAAe,GAAG,4CAA4C,CAAC;IACrE,IAAI,KAA6B,CAAC;IAClC,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC;QACzD,MAAM,IAAI,GACR,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;YACzC,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC1B,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,CAAC,CAAC;QACR,MAAM,cAAc,GAAG,8BAA8B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,IAAI;YACX,GAAG,cAAc;YACjB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YACvB,SAAS,EAAE;gBACT,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,KAAK;aACN;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GACnB,0EAA0E,CAAC;IAC7E,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,yBAAyB,CAAC;QAClE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC1D,MAAM,UAAU,GACd;YACE,gBAAgB;YAChB,gBAAgB;YAChB,UAAU;YACV,2BAA2B;YAC3B,eAAe;YACf,oBAAoB;YACpB,cAAc;YACd,UAAU;YACV,QAAQ;YACR,WAAW;YACX,OAAO;YACP,eAAe;YACf,iBAAiB;SAEpB,CAAC,QAAQ,CAAC,eAA0C,CAAC;YACpD,CAAC,CAAE,eAA2C;YAC9C,CAAC,CAAC,iBAAiB,CAAC;QACtB,MAAM,UAAU,GAAI,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAW,CAAC,QAAQ,CACtE,eAAwC,CACzC;YACC,CAAC,CAAE,eAAyC;YAC5C,CAAC,CAAC,WAAW,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK;YACL,UAAU;YACV,UAAU;YACV,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YACvB,SAAS,EAAE;gBACT,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;gBACvC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,UAAU;aAClD;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,cAAc,GAAG;QACrB;YACE,GAAG,EAAE,gBAAgB;YACrB,KAAK,EAAE,wBAAwB;YAC/B,UAAU,EAAE,UAAmB;YAC/B,UAAU,EAAE,WAAoB;SACjC;QACD;YACE,GAAG,EAAE,iBAAiB;YACtB,KAAK,EAAE,2BAA2B;YAClC,UAAU,EAAE,UAAmB;YAC/B,UAAU,EAAE,WAAoB;SACjC;QACD;YACE,GAAG,EAAE,uBAAuB;YAC5B,KAAK,EAAE,6BAA6B;YACpC,UAAU,EAAE,eAAwB;YACpC,UAAU,EAAE,WAAoB;SACjC;QACD;YACE,GAAG,EAAE,qBAAqB;YAC1B,KAAK,EAAE,+BAA+B;YACtC,UAAU,EAAE,eAAwB;YACpC,UAAU,EAAE,WAAoB;SACjC;QACD;YACE,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,4BAA4B;YACnC,UAAU,EAAE,gBAAyB;YACrC,UAAU,EAAE,UAAmB;SAChC;QACD;YACE,GAAG,EAAE,qBAAqB;YAC1B,KAAK,EAAE,qBAAqB;YAC5B,UAAU,EAAE,gBAAyB;YACrC,UAAU,EAAE,UAAmB;SAChC;QACD;YACE,GAAG,EAAE,gBAAgB;YACrB,KAAK,EAAE,0BAA0B;YACjC,UAAU,EAAE,OAAgB;YAC5B,UAAU,EAAE,UAAmB;SAChC;KACF,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,IAAI,MAAM,CAAC,GAAG,0BAA0B,MAAM,CAAC,GAAG,GAAG,EACrD,GAAG,CACJ,CAAC;QACF,IAAI,WAAmC,CAAC;QACxC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,WAAW,GACf,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnE,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,oBAAoB,GACxB,MAAM,CAAC,GAAG,KAAK,uBAAuB,IAAI,WAAW;gBACnD,CAAC,CAAC,8BAA8B,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpD,CAAC,CAAC;oBACE,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;iBAC9B,CAAC;YACR,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,GAAG,oBAAoB;gBACvB,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC7B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAsE,EACtE,KAAc;IAEd,OAAO,8CAA8C,MAAM,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAChG,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,SAAS,IAAI;SACjB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,6BAA6B,CACpC,OAAe,EACf,IAAY,EACZ,QAAQ,GAAG,gCAAgC,EAC3C,QAAiB;IAEjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC1C,MAAM,IAAI,GACR,QAAQ;QACR,gBAAgB,CACd,MAAM,EACN,YAAY,IAAI,uDAAuD,CACxE,CAAC;IACJ,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,IAAI,oBAAoB,QAAQ,CAAC,cAAc,EAAE,gBAAgB,OAAO,CAAC,cAAc,EAAE,wBAAwB,IAAI,GAAG,CAAC;AAChL,CAAC;AAED,SAAS,mBAAmB,CAAC,KAO5B;IACC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI;QAC/B,CAAC,CAAC,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,OAAO,GAAG,6BAA6B,CAC3C,KAAK,CAAC,OAAO,EACb,cAAc,IAAI,KAAK,CAAC,IAAI,EAC5B,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,QAAQ,CACf,CAAC;IACF,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,cAAc;QAC7B,CAAC,CAAC,UAAU,kBAAkB,CAAC,cAAc,CAAC,GAAG;QACjD,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,mBAAmB,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,QAAQ,MAAM,OAAO,eAAe,CAAC;AAC9I,CAAC;AAED,SAAS,gCAAgC,CACvC,QAAkB,EAClB,QAAgB;IAEhB,MAAM,YAAY,GAAG,uQAAuQ,CAAC;IAC7R,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,IAAI,GAAG,cAAc,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY;IAC/C,MAAM,UAAU,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY;IAC/C,MAAM,UAAU,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,CACL,UAAU,KAAK,WAAW;QAC1B,UAAU,KAAK,cAAc;QAC7B,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC;QACtC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAChC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAChC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACvC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;QAC9B,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO,CACL,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QAC5B,QAAQ,KAAK,kBAAkB;QAC/B,QAAQ,KAAK,kBAAkB;QAC/B,QAAQ,KAAK,oBAAoB,CAClC,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,OAAe;IACpD,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,KAAK,GACT,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC;QACzC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACpE,IAAI,KAAK,IAAI,WAAW;QAAE,OAAO,GAAG,KAAK,KAAK,WAAW,EAAE,CAAC;IAC5D,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,OAAO,GAAG,OAAO;SACpB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,YAAqB;IAErB,IAAI,KAAK,KAAK,eAAe;QAAE,OAAO,WAAW,CAAC;IAClD,IAAI,KAAK,KAAK,YAAY,IAAI,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,YAAY,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,UAAU,CAAC;IAC9D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,KAAa,EACb,KAAa,EACb,QAAQ,GAAG,gCAAgC;IAE3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,mBAAmB,CAAC;YACzB,IAAI,EAAE,WAAW;YACjB,KAAK;YACL,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iCAAiC,CAC9C,KAAa,EACb,KAAa,EACb,QAAQ,GAAG,gCAAgC,EAC3C,WAAW,GAAG,KAAK;IAEnB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,SAAS;aACrB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAChE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACnC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;gBACjD,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;oBAC5B,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,QAAQ,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CACtB,CAAC,QAAQ,EAAE,EAAE,CACX,OAAO,QAAQ,CAAC,IAAI,QAAQ,gBAAgB,CAAC,MAAM,EAAE,YAAY,QAAQ,CAAC,IAAI,qBAAqB,aAAa,qBAAqB,CAAC,EAAE,CAC3I,CAAC;YACF,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CACR,QAAQ,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,4BAA4B,gBAAgB,CAAC,MAAM,EAAE,aAAa,aAAa,qCAAqC,CAAC,EAAE,CAC7J,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,iCAAiC,kBAAkB,CAAC,KAAK,CAAC,wJAAwJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B;aAC/P,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CACrE,CAAC;QACF,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;YAChC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAAE,SAAS;YACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK;gBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ;aACT,CAAC,CAAC;YACH,IAAI,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC1C,KAAa,EACb,KAAqB;IAErB,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,SAAS,GACb,KAAK,KAAK,YAAY;YACpB,CAAC,CAAC;gBACE,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBAChD,GAAG,CAAC,MAAM,YAAY,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;aACpD;YACH,CAAC,CAAC,MAAM,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,UAAU,GACd,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK;gBAChB,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,iBAAiB;oBAC7B,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY;wBACxB,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,eAAe;4BAC3B,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK;oBAChB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,iBAAiB;wBAC7B,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY;4BACxB,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,eAAe;gCAC3B,CAAC,CAAC,CAAC;gCACH,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC;YACxC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvC,QAAQ;YACR,IAAI,EAAE,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SACvD,CAAC,CAAC,CACJ,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,EAAE,OAAO;gBAAE,SAAS;YAC7B,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK;gBAAE,SAAS;YAC3C,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;gBAAE,SAAS;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,iBAAiB,CACnC,IAAI,CAAC,WAAW,IAAI,kBAAkB,EACtC,oCAAoC,CACrC,CAAC;YACF,KAAK,CAAC,IAAI,CACR,OAAO,IAAI,oBAAoB,QAAQ,CAAC,IAAI,OAAO,KAAK,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAC5G,MAAM,EACN,YAAY,QAAQ,CAAC,IAAI,qBAAqB,KAAK,0CAA0C,CAC9F,EAAE,CACJ,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,IAAI,0BAA0B;gBAAE,MAAM;QACxD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,IACE,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM;YACtC,MAAM,CAAC,MAAM,GAAG,0BAA0B,EAC1C,CAAC;YACD,KAAK,CAAC,IAAI,CACR,sDAAsD,gBAAgB,CAAC,MAAM,EAAE,iDAAiD,CAAC,EAAE,CACpI,CAAC;QACJ,CAAC;QACD,OAAO,sPAAsP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACtS,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,KAAa,EACb,KAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;aAC1C,MAAM,CACL,CAAC,QAAQ,EAAE,EAAE,CACX,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3C,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxC;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAExC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CACrE,CAAC;QACF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;YAChC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO;gBAC3B,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC7C,CAAC,CAAC,IAAI,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CACR,QAAQ,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,SAAS,KAAK,eAAe,gBAAgB,CACnF,MAAM,EACN,aAAa,KAAK,qBAAqB,CACxC,EAAE,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GACT,KAAK,KAAK,WAAW;YACnB,CAAC,CAAC,kJAAkJ;YACpJ,CAAC,CAAC,6FAA6F,CAAC;QACpG,OAAO,+BAA+B,KAAK,OAAO,KAAK,IAAI,gBAAgB,CACzE,MAAM,EACN,kCAAkC,KAAK,oCAAoC,CAC5E,uEAAuE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC;IACrH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAa,EACb,OAAO,GAAG,KAAK,EACf,SAAkB,EAClB,KAAK,GAAkB,eAAe,EAAE,IAAI,IAAI;IAEhD,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAEpC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,sBAAsB,GAAG,OAAO;QACpC,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,gCAAgC,CAAC;IAErC,mEAAmE;IACnE,IAAI,CAAC;QACH,MAAM,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,GACrE,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAExC,uEAAuE;QACvE,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;YAChE,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,MAAM,CAAC,iBAAiB;gBACjC,QAAQ,EAAE,sBAAsB;gBAChC,QAAQ,EACN,iFAAiF;aACpF,CAAC,CAAC;YACH,IAAI,KAAK;gBAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,4EAA4E;QAC5E,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,MAAM,CAAC,QAAQ;gBACxB,QAAQ,EAAE,sBAAsB;gBAChC,QAAQ,EACN,+EAA+E;aAClF,CAAC,CAAC;YACH,IAAI,KAAK;gBAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,kEAAkE;QAClE,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,WAAW;gBAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;YACxE,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;oBAC5C,CAAC,CAAC,MAAM,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC,EAAE;oBACrG,CAAC,CAAC,EAAE,CAAC;gBACP,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,oCAAoC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,2CAA2C,CAAC;YACrJ,CAAC,CAAC,CAAC;YACH,IAAI,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC/C,KAAK,CAAC,IAAI,CACR,QAAQ,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,4FAA4F,CAC/I,CAAC;YACJ,CAAC;YACD,QAAQ,CAAC,IAAI,CACX,4LAA4L,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAClO,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,yEAAyE;IACzE,6EAA6E;IAC7E,qCAAqC;IACrC,MAAM,eAAe,GAAG,MAAM,2BAA2B,CACvD,eAAe,EACf,WAAW,EACX,sBAAsB,CACvB,CAAC;IACF,IAAI,eAAe;QAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,CACX,GAAG,CAAC,MAAM,iCAAiC,CACzC,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,OAAO,CACR,CAAC,CACH,CAAC;IAEF,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAErD,sEAAsE;IACtE,sEAAsE;IACtE,qBAAqB;IACrB,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,CACxD,YAAY,EACZ,iBAAiB,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAC7D,sBAAsB,CACvB,CAAC;IACF,IAAI,gBAAgB;QAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACtD,QAAQ,CAAC,IAAI,CACX,GAAG,CAAC,MAAM,iCAAiC,CACzC,YAAY,EACZ,iBAAiB,KAAK,YAAY;QAChC,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,yBAAyB,EAC7B,sBAAsB,EACtB,OAAO,CACR,CAAC,CACH,CAAC;IAEF,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,iBAAiB,KAAK,YAAY,EAAE,CAAC;QACvC,MAAM,kBAAkB,GAAG,MAAM,2BAA2B,CAC1D,iBAAiB,EACjB,cAAc,EACd,sBAAsB,CACvB,CAAC;QACF,IAAI,kBAAkB;YAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1D,QAAQ,CAAC,IAAI,CACX,GAAG,CAAC,MAAM,iCAAiC,CACzC,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,OAAO,CACR,CAAC,CACH,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,uEAAuE;IACvE,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;QACxD,MAAM,cAAc,GAAG,MAAM,2BAA2B,CACtD,KAAK,EACL,UAAU,EACV,sBAAsB,CACvB,CAAC;QACF,IAAI,cAAc;YAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClD,QAAQ,CAAC,IAAI,CACX,GAAG,CAAC,MAAM,iCAAiC,CACzC,KAAK,EACL,sBAAsB,EACtB,sBAAsB,EACtB,OAAO,CACR,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,mBAAmB,GAAG,MAAM,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9E,IAAI,mBAAmB;QAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAE5D,IAAI,eAAe,GAAkD,IAAI,CAAC;IAC1E,IAAI,CAAC;QACH,eAAe;YACb,CAAC,iBAAiB,KAAK,YAAY;gBACjC,CAAC,CAAC,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,cAAc,CAAC;gBAC5D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,iBAAiB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,IAAI,OAAO,EAAE,CAAC;QACZ,0EAA0E;QAC1E,sEAAsE;QACtE,wEAAwE;QACxE,yEAAyE;QACzE,UAAU;QACV,IAAI,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,eAAe,CAAC,OAAO;gBAChC,QAAQ,EAAE,iCAAiC;aAC5C,CAAC,CAAC;YACH,IAAI,KAAK;gBAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,QAAQ,CAAC,IAAI,CACX,mQAAmQ,CACpQ,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,sEAAsE;QACtE,sEAAsE;QACtE,uEAAuE;QACvE,IAAI,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,eAAe,CAAC,OAAO;gBAChC,QAAQ,EAAE,gCAAgC;aAC3C,CAAC,CAAC;YACH,IAAI,KAAK;gBAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,mEAAmE;QACnE,uEAAuE;QACvE,mEAAmE;QACnE,WAAW;QACX,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACvE,IAAI,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,mBAAmB,CAAC;wBAChC,IAAI,EAAE,kBAAkB;wBACxB,KAAK,EAAE,UAAU;wBACjB,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,QAAQ,EAAE,gCAAgC;qBAC3C,CAAC,CAAC;oBACH,IAAI,KAAK;wBAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,sBAAsB,GAAG,MAAM,0BAA0B,CAC7D,eAAe,EACf,WAAW,CACZ,CAAC;IACF,IAAI,sBAAsB;QAAE,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAElE,MAAM,uBAAuB,GAAG,MAAM,0BAA0B,CAC9D,YAAY,EACZ,QAAQ,CACT,CAAC;IACF,IAAI,uBAAuB;QAAE,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpE,IAAI,iBAAiB,KAAK,YAAY,EAAE,CAAC;QACvC,MAAM,yBAAyB,GAAG,MAAM,0BAA0B,CAChE,iBAAiB,EACjB,QAAQ,CACT,CAAC;QACF,IAAI,yBAAyB;YAAE,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC1E,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,GAAG,CAAC,MAAM,+BAA+B,CAAC;QACxC,KAAK;QACL,OAAO;QACP,SAAS;QACT,KAAK;KACN,CAAC,CAAC,CACJ,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CACtB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC,WAAW,IAAI,mBAAmB,EAAE,CAChF,CAAC;YACF,QAAQ,CAAC,IAAI,CACX,oEAAoE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yKAAyK,CAC9P,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,gBAAgB,GAAG,OAAO;QAC9B,CAAC,CAAC,gCAAgC,CAC9B,QAAQ,EACR,wCAAwC,CACzC;QACH,CAAC,CAAC,QAAQ,CAAC;IACb,OAAO,CACL,wIAAwI;QACxI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAC9B,CAAC;AACJ,CAAC","sourcesContent":["import {\n getFrontmatterValue,\n getSkillNameFromPath,\n parseFrontmatter,\n} from \"../../resources/metadata.js\";\nimport {\n ensurePersonalDefaults,\n organizationIdFromResourceOwner,\n resourceGet,\n resourceGetByPath,\n resourceList,\n resourceListAccessible,\n SHARED_OWNER,\n sharedResourceOwner,\n WORKSPACE_OWNER,\n} from \"../../resources/store.js\";\nimport type {\n ContextGovernanceTier,\n ContextManifestSourceRef,\n ContextSystemProvenance,\n} from \"../../shared/context-xray.js\";\nimport { discoverAgents } from \"../agent-discovery.js\";\nimport { getRequestOrgId } from \"../request-context.js\";\nimport { parseSkillFrontmatter } from \"./skill-frontmatter.js\";\n\n// ---------------------------------------------------------------------------\n// System-prompt resource loading: AGENTS.md, instructions/*.md, skills\n// summaries, and the shared/workspace resource index. Assembled by\n// `loadResourcesForPrompt`, the top-level orchestrator called once per\n// request to build the \"here's what you should know\" context block.\n// ---------------------------------------------------------------------------\n\nconst SHARED_PROMPT_RESOURCE_MAX_CHARS = 30_000;\nexport const COMPACT_PROMPT_RESOURCE_MAX_CHARS = 6_000;\nconst COMPACT_PROMPT_RESOURCES_TOTAL_MAX_CHARS = 48_000;\nconst PROMPT_CONTEXT_PROVIDER_MAX_CHARS = 8_000;\n\nexport interface PromptContextProviderContext {\n owner: string;\n compact: boolean;\n selfAppId?: string;\n orgId: string | null;\n}\n\nexport interface PromptContextProviderContribution {\n content: string;\n label?: string;\n provenance?: ContextSystemProvenance;\n governance?: ContextGovernanceTier;\n sourceRef?: ContextManifestSourceRef;\n}\n\nexport interface PromptContextProvider {\n id: string;\n load(\n context: PromptContextProviderContext,\n ):\n | Promise<PromptContextProviderContribution | null | undefined>\n | PromptContextProviderContribution\n | null\n | undefined;\n}\n\nconst promptContextProviders = new Map<string, PromptContextProvider>();\n\n/** Register a package-owned, request-scoped system-context contribution. */\nexport function registerPromptContextProvider(\n provider: PromptContextProvider,\n): () => void {\n const id = provider.id.trim();\n if (!/^[a-z][a-z0-9-]{1,63}$/.test(id)) {\n throw new Error(\n \"Prompt context provider ids must be 2-64 lowercase letters, digits, or hyphens\",\n );\n }\n const registered = { ...provider, id };\n promptContextProviders.set(id, registered);\n return () => {\n if (promptContextProviders.get(id) === registered) {\n promptContextProviders.delete(id);\n }\n };\n}\n\nfunction xmlAttributeEscape(value: string): string {\n return value\n .replace(/&/g, \"&amp;\")\n .replace(/\"/g, \"&quot;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\");\n}\n\nasync function loadPromptContextProviderBlocks(\n context: PromptContextProviderContext,\n): Promise<string[]> {\n const providers = [...promptContextProviders.values()].sort((a, b) =>\n a.id.localeCompare(b.id),\n );\n const settled = await Promise.allSettled(\n providers.map(async (provider) => ({\n provider,\n contribution: await provider.load(context),\n })),\n );\n const blocks: string[] = [];\n for (const result of settled) {\n if (result.status !== \"fulfilled\") continue;\n const { provider, contribution } = result.value;\n if (!contribution) continue;\n const content = contribution.content.trim();\n if (!content) continue;\n const boundedContent =\n content.length <= PROMPT_CONTEXT_PROVIDER_MAX_CHARS\n ? content\n : `${content.slice(0, PROMPT_CONTEXT_PROVIDER_MAX_CHARS)}\\n[truncated after ${PROMPT_CONTEXT_PROVIDER_MAX_CHARS.toLocaleString()} characters]`;\n const label = contribution.label?.trim() || provider.id;\n const provenance = contribution.provenance ?? \"runtime-context\";\n const governance = contribution.governance ?? \"inherited\";\n const sourceScope = contribution.sourceRef?.scope?.trim() || \"provider\";\n const sourcePath = contribution.sourceRef?.path?.trim() || provider.id;\n blocks.push(\n `<prompt-context-provider id=\"${xmlAttributeEscape(provider.id)}\" label=\"${xmlAttributeEscape(label)}\" provenance=\"${provenance}\" governance=\"${governance}\" scope=\"${xmlAttributeEscape(sourceScope)}\" path=\"${xmlAttributeEscape(sourcePath)}\">\\n${boundedContent.replace(/<\\/prompt-context-provider>/gi, \"&lt;/prompt-context-provider&gt;\")}\\n</prompt-context-provider>`,\n );\n }\n return blocks;\n}\n\nexport function compactPromptLine(value: string, maxChars: number): string {\n const line = value.replace(/\\s+/g, \" \").trim();\n if (line.length <= maxChars) return line;\n return `${line.slice(0, maxChars - 1)}…`;\n}\nconst SHARED_RESOURCE_INDEX_LIMIT = 40;\nconst PROMPT_SKILL_SUMMARY_LIMIT = 40;\nconst PROMPT_SKILL_METADATA_READ_LIMIT = 80;\nconst PROMPT_INSTRUCTION_SUMMARY_LIMIT = 20;\nconst PROMPT_SUMMARY_DESCRIPTION_MAX_CHARS = 180;\n\nexport interface PromptResourceManifestSection {\n label: string;\n provenance: ContextSystemProvenance;\n governance: ContextGovernanceTier;\n content: string;\n sourceRef?: ContextManifestSourceRef;\n}\n\nfunction normalizeResourcePathForPrompt(path: string): string {\n return path.replace(/^\\/+/, \"\").trim();\n}\n\nfunction xmlAttribute(attrs: string, name: string): string | undefined {\n const match = new RegExp(`\\\\b${name}=\"([^\"]*)\"`).exec(attrs);\n return match?.[1];\n}\n\nfunction resourceManifestClassification(\n scope: string,\n path: string,\n index: number,\n): {\n provenance: ContextSystemProvenance;\n governance: ContextGovernanceTier;\n} {\n const normalizedPath = normalizeResourcePathForPrompt(path);\n if (scope === \"template\") {\n return { provenance: \"template\", governance: \"inherited\" };\n }\n if (scope.startsWith(\"workspace\")) {\n return {\n provenance:\n scope === \"workspace\" && index === 0\n ? \"enterprise-workspace-core\"\n : \"sql-workspace\",\n governance:\n scope === \"workspace\" && index === 0 ? \"required\" : \"inherited\",\n };\n }\n if (scope.startsWith(\"personal\")) {\n return {\n provenance: normalizedPath === \"memory/MEMORY.md\" ? \"memory\" : \"personal\",\n governance: \"user\",\n };\n }\n if (scope.startsWith(\"app-default\")) {\n return { provenance: \"legacy-app-default\", governance: \"inherited\" };\n }\n if (scope.startsWith(\"organization\")) {\n return { provenance: \"organization\", governance: \"inherited\" };\n }\n if (scope.startsWith(\"shared\")) {\n return {\n provenance:\n normalizedPath === \"LEARNINGS.md\"\n ? \"organization\"\n : \"legacy-app-default\",\n governance: \"inherited\",\n };\n }\n return { provenance: \"template\", governance: \"inherited\" };\n}\n\n/**\n * Extracts bounded-in-memory metadata from the already-composed resource\n * prompt. The caller turns these inputs into hashed/previews before anything\n * is persisted; this helper never writes or returns the full manifest.\n */\nexport function promptResourceManifestSections(\n prompt: string,\n): PromptResourceManifestSection[] {\n const sections: PromptResourceManifestSection[] = [];\n const resourcePattern = /<resource\\b([^>]*)>([\\s\\S]*?)<\\/resource>/g;\n let match: RegExpExecArray | null;\n let workspaceIndex = 0;\n let sharedIndex = 0;\n while ((match = resourcePattern.exec(prompt))) {\n const attrs = match[1] ?? \"\";\n const scope = xmlAttribute(attrs, \"scope\") ?? \"resource\";\n const path =\n xmlAttribute(attrs, \"path\") ?? xmlAttribute(attrs, \"name\") ?? \"\";\n const name = xmlAttribute(attrs, \"name\") ?? (path || \"resource\");\n const index = scope.startsWith(\"workspace\")\n ? workspaceIndex++\n : scope.startsWith(\"shared\")\n ? sharedIndex++\n : 0;\n const classification = resourceManifestClassification(scope, path, index);\n sections.push({\n label: name,\n ...classification,\n content: match[2] ?? \"\",\n sourceRef: {\n ...(path ? { path } : {}),\n scope,\n },\n });\n }\n\n const providerPattern =\n /<prompt-context-provider\\b([^>]*)>([\\s\\S]*?)<\\/prompt-context-provider>/g;\n while ((match = providerPattern.exec(prompt))) {\n const attrs = match[1] ?? \"\";\n const id = xmlAttribute(attrs, \"id\") ?? \"prompt-context-provider\";\n const label = xmlAttribute(attrs, \"label\") ?? id;\n const provenanceValue = xmlAttribute(attrs, \"provenance\");\n const governanceValue = xmlAttribute(attrs, \"governance\");\n const provenance = (\n [\n \"framework-core\",\n \"actions-prompt\",\n \"template\",\n \"enterprise-workspace-core\",\n \"sql-workspace\",\n \"legacy-app-default\",\n \"organization\",\n \"personal\",\n \"memory\",\n \"db-schema\",\n \"tools\",\n \"model-overlay\",\n \"runtime-context\",\n ] as const\n ).includes(provenanceValue as ContextSystemProvenance)\n ? (provenanceValue as ContextSystemProvenance)\n : \"runtime-context\";\n const governance = ([\"required\", \"inherited\", \"user\"] as const).includes(\n governanceValue as ContextGovernanceTier,\n )\n ? (governanceValue as ContextGovernanceTier)\n : \"inherited\";\n sections.push({\n label,\n provenance,\n governance,\n content: match[2] ?? \"\",\n sourceRef: {\n path: xmlAttribute(attrs, \"path\") ?? id,\n scope: xmlAttribute(attrs, \"scope\") ?? \"provider\",\n },\n });\n }\n\n const taggedSections = [\n {\n tag: \"skills-summary\",\n label: \"Workspace skills index\",\n provenance: \"template\" as const,\n governance: \"inherited\" as const,\n },\n {\n tag: \"resource-skills\",\n label: \"Workspace resource skills\",\n provenance: \"template\" as const,\n governance: \"inherited\" as const,\n },\n {\n tag: \"instruction-resources\",\n label: \"Instruction resources index\",\n provenance: \"sql-workspace\" as const,\n governance: \"inherited\" as const,\n },\n {\n tag: \"workspace-resources\",\n label: \"Workspace reference resources\",\n provenance: \"sql-workspace\" as const,\n governance: \"inherited\" as const,\n },\n {\n tag: \"context-note\",\n label: \"Resource availability note\",\n provenance: \"framework-core\" as const,\n governance: \"required\" as const,\n },\n {\n tag: \"context-budget-note\",\n label: \"Context budget note\",\n provenance: \"framework-core\" as const,\n governance: \"required\" as const,\n },\n {\n tag: \"available-apps\",\n label: \"Available workspace apps\",\n provenance: \"tools\" as const,\n governance: \"required\" as const,\n },\n ];\n for (const tagged of taggedSections) {\n const pattern = new RegExp(\n `<${tagged.tag}\\\\b[^>]*>([\\\\s\\\\S]*?)</${tagged.tag}>`,\n \"g\",\n );\n let taggedMatch: RegExpExecArray | null;\n while ((taggedMatch = pattern.exec(prompt))) {\n const taggedAttrs =\n taggedMatch[0]?.slice(tagged.tag.length + 1).split(\">\")[0] ?? \"\";\n const taggedScope = xmlAttribute(taggedAttrs, \"scope\");\n const taggedClassification =\n tagged.tag === \"instruction-resources\" && taggedScope\n ? resourceManifestClassification(taggedScope, \"\", 0)\n : {\n provenance: tagged.provenance,\n governance: tagged.governance,\n };\n sections.push({\n label: tagged.label,\n ...taggedClassification,\n content: taggedMatch[1] ?? \"\",\n ...(taggedScope ? { sourceRef: { scope: taggedScope } } : {}),\n });\n }\n }\n return sections;\n}\n\nfunction resourceToolHint(\n action: \"list\" | \"read\" | \"effective\" | \"write\" | \"delete\" | \"promote\",\n extra?: string,\n): string {\n return `Use the \\`resources\\` tool with \\`action: \"${action}\"\\`${extra ? `, ${extra}` : \"\"}.`;\n}\n\nfunction skillDocsSlug(name: string): string {\n return `skill-${name\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\")}`;\n}\n\nfunction ensureSentence(value: string): string {\n const trimmed = value.trim();\n if (!trimmed) return \"\";\n return /[.!?]$/.test(trimmed) ? trimmed : `${trimmed}.`;\n}\n\nfunction escapeXmlAttribute(value: string): string {\n return value.replace(/&/g, \"&amp;\").replace(/\"/g, \"&quot;\");\n}\n\nfunction truncatePromptResourceContent(\n content: string,\n path: string,\n maxChars = SHARED_PROMPT_RESOURCE_MAX_CHARS,\n readHint?: string,\n): string {\n const trimmed = content.trim();\n if (trimmed.length <= maxChars) return trimmed;\n const omitted = trimmed.length - maxChars;\n const hint =\n readHint ??\n resourceToolHint(\n \"read\",\n `\\`path: \"${path}\"\\` and the resource's \\`scope\\` for the full content`,\n );\n return `${trimmed.slice(0, maxChars)}\\n\\n[Resource ${path} truncated after ${maxChars.toLocaleString()} characters; ${omitted.toLocaleString()} characters omitted. ${hint}]`;\n}\n\nfunction promptResourceBlock(input: {\n name: string;\n scope: string;\n content: string;\n path?: string;\n maxChars?: number;\n readHint?: string;\n}): string | null {\n const normalizedPath = input.path\n ? normalizeResourcePathForPrompt(input.path)\n : undefined;\n const content = truncatePromptResourceContent(\n input.content,\n normalizedPath ?? input.name,\n input.maxChars,\n input.readHint,\n );\n if (!content) return null;\n const pathAttr = normalizedPath\n ? ` path=\"${escapeXmlAttribute(normalizedPath)}\"`\n : \"\";\n return `<resource name=\"${escapeXmlAttribute(input.name)}\" scope=\"${escapeXmlAttribute(input.scope)}\"${pathAttr}>\\n${content}\\n</resource>`;\n}\n\nfunction selectPromptSectionsWithinBudget(\n sections: string[],\n maxChars: number,\n): string[] {\n const omissionNote = `<context-budget-note>Some startup context sections were omitted to keep the first model request responsive. Use \\`resources\\` with \\`action: \"list\"\\` or \\`\"read\"\\`, \\`docs-search\\`, and \\`tool-search\\` to retrieve relevant depth on demand.</context-budget-note>`;\n const contentBudget = Math.max(0, maxChars - omissionNote.length - 2);\n const selected: string[] = [];\n let used = 0;\n let omitted = 0;\n\n for (const section of sections) {\n const separatorChars = selected.length > 0 ? 2 : 0;\n if (used + separatorChars + section.length <= contentBudget) {\n selected.push(section);\n used += separatorChars + section.length;\n } else {\n omitted++;\n }\n }\n\n if (omitted > 0) selected.push(omissionNote);\n return selected;\n}\n\nfunction isAutoLoadedInstructionPath(path: string): boolean {\n const normalized = normalizeResourcePathForPrompt(path);\n return normalized.startsWith(\"instructions/\") && normalized.endsWith(\".md\");\n}\n\nfunction isSpecialPromptResourcePath(path: string): boolean {\n const normalized = normalizeResourcePathForPrompt(path);\n return (\n normalized === \"AGENTS.md\" ||\n normalized === \"LEARNINGS.md\" ||\n normalized.startsWith(\"instructions/\") ||\n normalized.startsWith(\"skills/\") ||\n normalized.startsWith(\"agents/\") ||\n normalized.startsWith(\"remote-agents/\") ||\n normalized.startsWith(\"jobs/\") ||\n normalized.startsWith(\"memory/\")\n );\n}\n\nfunction isTextLikeResource(mimeType: string): boolean {\n return (\n mimeType.startsWith(\"text/\") ||\n mimeType === \"application/json\" ||\n mimeType === \"application/yaml\" ||\n mimeType === \"application/x-yaml\"\n );\n}\n\nfunction getResourceSummaryFromContent(content: string): string | null {\n const frontmatter = parseFrontmatter(content);\n const title =\n getFrontmatterValue(frontmatter, \"title\") ||\n getFrontmatterValue(frontmatter, \"name\");\n const description = getFrontmatterValue(frontmatter, \"description\");\n if (title && description) return `${title}: ${description}`;\n if (title) return title;\n if (description) return description;\n\n const heading = content\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .find((line) => /^#{1,3}\\s+\\S/.test(line));\n if (heading) return heading.replace(/^#{1,3}\\s+/, \"\").trim();\n return null;\n}\n\nexport function resourceScopeForOwner(\n owner: string,\n currentOwner?: string,\n): string {\n if (owner === WORKSPACE_OWNER) return \"workspace\";\n if (owner === SHARED_OWNER || organizationIdFromResourceOwner(owner)) {\n return \"shared\";\n }\n if (currentOwner && owner === currentOwner) return \"personal\";\n return \"resource\";\n}\n\nasync function loadAgentsResourceForPrompt(\n owner: string,\n scope: string,\n maxChars = SHARED_PROMPT_RESOURCE_MAX_CHARS,\n): Promise<string | null> {\n try {\n const agents = await resourceGetByPath(owner, \"AGENTS.md\");\n if (!agents?.content?.trim()) return null;\n return promptResourceBlock({\n name: \"AGENTS.md\",\n scope,\n path: \"AGENTS.md\",\n content: agents.content,\n maxChars,\n });\n } catch {\n return null;\n }\n}\n\nasync function loadInstructionResourcesForPrompt(\n owner: string,\n scope: string,\n maxChars = SHARED_PROMPT_RESOURCE_MAX_CHARS,\n summaryOnly = false,\n): Promise<string[]> {\n try {\n const resources = await resourceList(owner, \"instructions/\");\n const sorted = resources\n .filter((resource) => isAutoLoadedInstructionPath(resource.path))\n .sort((a, b) => a.path.localeCompare(b.path));\n\n if (summaryOnly) {\n if (sorted.length === 0) return [];\n const resourceScope = scope.startsWith(\"workspace\")\n ? \"workspace\"\n : scope.startsWith(\"personal\")\n ? \"personal\"\n : \"shared\";\n const listed = sorted.slice(0, PROMPT_INSTRUCTION_SUMMARY_LIMIT);\n const lines = listed.map(\n (resource) =>\n `- \\`${resource.path}\\` - ${resourceToolHint(\"read\", `\\`path: \"${resource.path}\"\\` and \\`scope: \"${resourceScope}\"\\` when it applies`)}`,\n );\n if (sorted.length > listed.length) {\n lines.push(\n `- ...${sorted.length - listed.length} more instruction files. ${resourceToolHint(\"list\", `\\`scope: \"${resourceScope}\"\\` and \\`prefix: \"instructions/\"\\``)}`,\n );\n }\n return [\n `<instruction-resources scope=\"${escapeXmlAttribute(scope)}\">\\nDetailed instruction files are loaded on demand so the first model request stays compact. Read a relevant file before following its workflow.\\n\\n${lines.join(\"\\n\")}\\n</instruction-resources>`,\n ];\n }\n\n const fullResources = await Promise.all(\n sorted.map((resource) => resourceGet(resource.id).catch(() => null)),\n );\n const blocks: string[] = [];\n for (let index = 0; index < sorted.length; index++) {\n const resource = sorted[index]!;\n const full = fullResources[index];\n if (!full?.content?.trim()) continue;\n const block = promptResourceBlock({\n name: resource.path,\n scope,\n path: resource.path,\n content: full.content,\n maxChars,\n });\n if (block) blocks.push(block);\n }\n return blocks;\n } catch {\n return [];\n }\n}\n\nasync function loadResourceSkillsPromptBlock(\n owner: string,\n orgId?: string | null,\n): Promise<string | null> {\n try {\n const organizationOwner = sharedResourceOwner(orgId);\n const resources =\n owner === SHARED_OWNER\n ? [\n ...(await resourceList(SHARED_OWNER, \"skills/\")),\n ...(await resourceList(WORKSPACE_OWNER, \"skills/\")),\n ]\n : await resourceListAccessible(owner, \"skills/\", { orgId });\n const sorted = resources.sort((a, b) => {\n const ownerOrder =\n (a.owner === owner\n ? 0\n : a.owner === organizationOwner\n ? 1\n : a.owner === SHARED_OWNER\n ? 2\n : a.owner === WORKSPACE_OWNER\n ? 3\n : 4) -\n (b.owner === owner\n ? 0\n : b.owner === organizationOwner\n ? 1\n : b.owner === SHARED_OWNER\n ? 2\n : b.owner === WORKSPACE_OWNER\n ? 3\n : 4);\n if (ownerOrder !== 0) return ownerOrder;\n return a.path.localeCompare(b.path);\n });\n const skillCandidates = sorted.slice(0, PROMPT_SKILL_METADATA_READ_LIMIT);\n const loaded = await Promise.all(\n skillCandidates.map(async (resource) => ({\n resource,\n full: await resourceGet(resource.id).catch(() => null),\n })),\n );\n const seen = new Set<string>();\n const lines: string[] = [];\n for (const { resource, full } of loaded) {\n if (!full?.content) continue;\n const meta = parseSkillFrontmatter(full.content);\n if (meta.userInvocable === false) continue;\n if (meta.scope === \"dev\") continue;\n const name = meta.name || getSkillNameFromPath(resource.path);\n if (!name || seen.has(name)) continue;\n seen.add(name);\n const scope = resourceScopeForOwner(resource.owner, owner);\n const description = compactPromptLine(\n meta.description || \"(no description)\",\n PROMPT_SUMMARY_DESCRIPTION_MAX_CHARS,\n );\n lines.push(\n `- \\`${name}\\` at resource \\`${resource.path}\\` (${scope}) - ${ensureSentence(description)} ${resourceToolHint(\n \"read\",\n `\\`path: \"${resource.path}\"\\` and \\`scope: \"${scope}\"\\` before starting a task it applies to`,\n )}`,\n );\n if (lines.length >= PROMPT_SKILL_SUMMARY_LIMIT) break;\n }\n if (lines.length === 0) return null;\n if (\n sorted.length > skillCandidates.length ||\n loaded.length > PROMPT_SKILL_SUMMARY_LIMIT\n ) {\n lines.push(\n `- ...more skills omitted from the startup summary. ${resourceToolHint(\"list\", '`prefix: \"skills/\"` to inspect the full catalog')}`,\n );\n }\n return `<resource-skills>\\nThe following workspace skills are available in addition to codebase skills. They may come from SQL resources, Dispatch workspace resources, or local file mode. Read a matching skill before starting a task it applies to.\\n\\n${lines.join(\"\\n\")}\\n</resource-skills>`;\n } catch {\n return null;\n }\n}\n\nasync function loadResourceIndexForPrompt(\n owner: string,\n scope: \"workspace\" | \"shared\",\n): Promise<string | null> {\n try {\n const resources = (await resourceList(owner))\n .filter(\n (resource) =>\n !isSpecialPromptResourcePath(resource.path) &&\n isTextLikeResource(resource.mimeType),\n )\n .sort((a, b) => a.path.localeCompare(b.path));\n if (resources.length === 0) return null;\n\n const listed = resources.slice(0, SHARED_RESOURCE_INDEX_LIMIT);\n const lines: string[] = [];\n const fullResources = await Promise.all(\n listed.map((resource) => resourceGet(resource.id).catch(() => null)),\n );\n for (let index = 0; index < listed.length; index++) {\n const resource = listed[index]!;\n const full = fullResources[index];\n const summary = full?.content\n ? getResourceSummaryFromContent(full.content)\n : null;\n lines.push(`- \\`${resource.path}\\`${summary ? ` - ${summary}` : \"\"}`);\n }\n if (resources.length > listed.length) {\n lines.push(\n `- ...${resources.length - listed.length} more ${scope} resources. ${resourceToolHint(\n \"list\",\n `\\`scope: \"${scope}\"\\` to inspect them`,\n )}`,\n );\n }\n\n const label =\n scope === \"workspace\"\n ? \"Workspace reference resources are inherited by every app and are available for company, brand, positioning, persona, product, or domain context.\"\n : \"Shared app/organization reference resources are available for app-specific or team context.\";\n return `<workspace-resources scope=\"${scope}\">\\n${label} ${resourceToolHint(\n \"read\",\n `\\`path: <path>\\` and \\`scope: \"${scope}\"\\` when a task may depend on them`,\n )} Do not assume their contents without reading the relevant file.\\n\\n${lines.join(\"\\n\")}\\n</workspace-resources>`;\n } catch {\n return null;\n }\n}\n\n/**\n * Pre-load the agent's context: AGENTS.md (workspace/template/runtime\n * instructions), the skills index, shared LEARNINGS.md (team notes), a shared\n * resource index, and memory/MEMORY.md (personal structured memory index).\n * These all get appended to the system prompt so the agent has everything it\n * needs from the first turn.\n *\n * Six sources are layered:\n *\n * 1. `<workspace>` — AGENTS.md from the enterprise workspace core.\n * 2. `<template>` — AGENTS.md + skills index from the Vite plugin bundle.\n * 3. `<workspace>` — SQL workspace AGENTS.md and instructions/*.md.\n * Runtime global defaults managed from Dispatch and inherited by apps.\n * 4. `<app-default>` — legacy app-wide SQL defaults.\n * 5. `<shared>` — organization AGENTS.md, instructions, and LEARNINGS.md.\n * These are isolated by active org and override app/workspace defaults.\n * 6. `<personal>` — memory/MEMORY.md from the SQL personal scope. The\n * current user's structured memory index.\n *\n * Each source is read independently — no copying between them. Editing\n * AGENTS.md and restarting the server is all it takes; Vite HMR invalidates\n * the bundle in dev so changes land instantly.\n */\nexport async function loadResourcesForPrompt(\n owner: string,\n compact = false,\n selfAppId?: string,\n orgId: string | null = getRequestOrgId() ?? null,\n): Promise<string> {\n await ensurePersonalDefaults(owner);\n\n const sections: string[] = [];\n const promptResourceMaxChars = compact\n ? COMPACT_PROMPT_RESOURCE_MAX_CHARS\n : SHARED_PROMPT_RESOURCE_MAX_CHARS;\n\n // 1. Workspace AGENTS.md + skills merged into the template bundle.\n try {\n const { loadAgentsBundle, generateSkillsPromptBlock, getRuntimeSkills } =\n await import(\"../agents-bundle.js\");\n const bundle = await loadAgentsBundle();\n\n // Workspace-core AGENTS.md (enterprise-wide instructions), if present.\n if (bundle.workspaceAgentsMd && bundle.workspaceAgentsMd.trim()) {\n const block = promptResourceBlock({\n name: \"AGENTS.md\",\n scope: \"workspace\",\n path: \"AGENTS.md\",\n content: bundle.workspaceAgentsMd,\n maxChars: promptResourceMaxChars,\n readHint:\n 'Use docs-search --slug \"agents-workspace\" to read the full workspace AGENTS.md.',\n });\n if (block) sections.push(block);\n }\n\n // 2. Template AGENTS.md — always included (critical template instructions).\n if (bundle.agentsMd.trim()) {\n const block = promptResourceBlock({\n name: \"AGENTS.md\",\n scope: \"template\",\n path: \"AGENTS.md\",\n content: bundle.agentsMd,\n maxChars: promptResourceMaxChars,\n readHint:\n 'Use docs-search --slug \"agents-template\" to read the full template AGENTS.md.',\n });\n if (block) sections.push(block);\n }\n\n // In compact mode, skip the full skills block — the agent can use\n // `docs-search` to find skills when it needs them. Either way, `scope: dev`\n // skills are excluded: they're for the human's coding agent, not runtime.\n const runtimeSkills = getRuntimeSkills(bundle);\n if (!compact) {\n const skillsBlock = generateSkillsPromptBlock(bundle);\n if (skillsBlock) sections.push(skillsBlock);\n } else if (runtimeSkills.length > 0) {\n const listedSkills = runtimeSkills.slice(0, PROMPT_SKILL_SUMMARY_LIMIT);\n const lines = listedSkills.map((s) => {\n const description = s.meta.description?.trim()\n ? ` - ${ensureSentence(compactPromptLine(s.meta.description, PROMPT_SUMMARY_DESCRIPTION_MAX_CHARS))}`\n : \"\";\n return `- \\`${s.meta.name}\\`${description} Read with \\`docs-search --slug \"${skillDocsSlug(s.meta.name)}\"\\` before starting a task it applies to.`;\n });\n if (runtimeSkills.length > listedSkills.length) {\n lines.push(\n `- ...${runtimeSkills.length - listedSkills.length} more codebase skills. Use \\`docs-search --query \"<topic>\"\\` to discover the relevant one.`,\n );\n }\n sections.push(\n `<skills-summary>\\nCodebase skills bundled from \\`.agents/skills/\\` (or legacy \\`.agent/skills/\\`) are available as docs-search pages. Do not use MCP resource reads for these skills.\\n\\n${lines.join(\"\\n\")}\\n</skills-summary>`,\n );\n }\n } catch {}\n\n // 3. Runtime workspace resources. These are global defaults inherited by\n // every app in the workspace, not copied into app scopes. They may come from\n // SQL, Dispatch, or local file mode.\n const workspaceAgents = await loadAgentsResourceForPrompt(\n WORKSPACE_OWNER,\n \"workspace\",\n promptResourceMaxChars,\n );\n if (workspaceAgents) sections.push(workspaceAgents);\n sections.push(\n ...(await loadInstructionResourcesForPrompt(\n WORKSPACE_OWNER,\n \"workspace-instruction\",\n promptResourceMaxChars,\n compact,\n )),\n );\n\n const organizationOwner = sharedResourceOwner(orgId);\n\n // 4. Legacy app-wide defaults. Existing deployments keep their seeded\n // shared guidance as an inherited fallback; organization writes never\n // mutate this owner.\n const appDefaultAgents = await loadAgentsResourceForPrompt(\n SHARED_OWNER,\n organizationOwner === SHARED_OWNER ? \"shared\" : \"app-default\",\n promptResourceMaxChars,\n );\n if (appDefaultAgents) sections.push(appDefaultAgents);\n sections.push(\n ...(await loadInstructionResourcesForPrompt(\n SHARED_OWNER,\n organizationOwner === SHARED_OWNER\n ? \"shared-instruction\"\n : \"app-default-instruction\",\n promptResourceMaxChars,\n compact,\n )),\n );\n\n // 5. Active organization resources. These are the durable team rules and\n // learnings that Slack/integration runs share with interactive app chat.\n if (organizationOwner !== SHARED_OWNER) {\n const organizationAgents = await loadAgentsResourceForPrompt(\n organizationOwner,\n \"organization\",\n promptResourceMaxChars,\n );\n if (organizationAgents) sections.push(organizationAgents);\n sections.push(\n ...(await loadInstructionResourcesForPrompt(\n organizationOwner,\n \"organization-instruction\",\n promptResourceMaxChars,\n compact,\n )),\n );\n }\n\n // 6. Personal SQL resources. These come last in the instruction stack so a\n // user can narrow or override organization/app and workspace defaults.\n if (owner !== SHARED_OWNER && owner !== WORKSPACE_OWNER) {\n const personalAgents = await loadAgentsResourceForPrompt(\n owner,\n \"personal\",\n promptResourceMaxChars,\n );\n if (personalAgents) sections.push(personalAgents);\n sections.push(\n ...(await loadInstructionResourcesForPrompt(\n owner,\n \"personal-instruction\",\n promptResourceMaxChars,\n compact,\n )),\n );\n }\n\n const resourceSkillsBlock = await loadResourceSkillsPromptBlock(owner, orgId);\n if (resourceSkillsBlock) sections.push(resourceSkillsBlock);\n\n let sharedLearnings: Awaited<ReturnType<typeof resourceGetByPath>> = null;\n try {\n sharedLearnings =\n (organizationOwner !== SHARED_OWNER\n ? await resourceGetByPath(organizationOwner, \"LEARNINGS.md\")\n : null) ?? (await resourceGetByPath(SHARED_OWNER, \"LEARNINGS.md\"));\n } catch {}\n\n if (compact) {\n // Integration/Slack turns use compact context, but organization learnings\n // are operational routing input, not optional background. Preload the\n // bounded shared file so canonical destinations/fields are available on\n // the first turn; keep personal memory on-demand to preserve the compact\n // budget.\n if (sharedLearnings?.content?.trim()) {\n const block = promptResourceBlock({\n name: \"LEARNINGS.md\",\n scope: \"shared\",\n path: \"LEARNINGS.md\",\n content: sharedLearnings.content,\n maxChars: COMPACT_PROMPT_RESOURCE_MAX_CHARS,\n });\n if (block) sections.push(block);\n }\n sections.push(\n `<context-note>Organization learnings above and your personal memory (memory/MEMORY.md) are available via the \\`resources\\` tool. Save durable team facts and routing conventions to shared LEARNINGS.md; keep personal preferences in save-memory.</context-note>`,\n );\n } else {\n // LEARNINGS.md from SQL (template-level instructions are in AGENTS.md\n // above). Capped like every other prompt resource — an unbounded team\n // notes file would otherwise inline in full on every non-lazy request.\n if (sharedLearnings?.content?.trim()) {\n const block = promptResourceBlock({\n name: \"LEARNINGS.md\",\n scope: \"shared\",\n path: \"LEARNINGS.md\",\n content: sharedLearnings.content,\n maxChars: SHARED_PROMPT_RESOURCE_MAX_CHARS,\n });\n if (block) sections.push(block);\n }\n\n // 3. Personal memory index (skip if owner is the shared sentinel).\n // Same cap as LEARNINGS.md — a large personal MEMORY.md index must not\n // inline without bound just because this request opted out of lazy\n // context.\n if (owner !== SHARED_OWNER) {\n try {\n const memoryIndex = await resourceGetByPath(owner, \"memory/MEMORY.md\");\n if (memoryIndex?.content?.trim()) {\n const block = promptResourceBlock({\n name: \"memory/MEMORY.md\",\n scope: \"personal\",\n path: \"memory/MEMORY.md\",\n content: memoryIndex.content,\n maxChars: SHARED_PROMPT_RESOURCE_MAX_CHARS,\n });\n if (block) sections.push(block);\n }\n } catch {}\n }\n }\n\n const workspaceResourceIndex = await loadResourceIndexForPrompt(\n WORKSPACE_OWNER,\n \"workspace\",\n );\n if (workspaceResourceIndex) sections.push(workspaceResourceIndex);\n\n const appDefaultResourceIndex = await loadResourceIndexForPrompt(\n SHARED_OWNER,\n \"shared\",\n );\n if (appDefaultResourceIndex) sections.push(appDefaultResourceIndex);\n if (organizationOwner !== SHARED_OWNER) {\n const organizationResourceIndex = await loadResourceIndexForPrompt(\n organizationOwner,\n \"shared\",\n );\n if (organizationResourceIndex) sections.push(organizationResourceIndex);\n }\n\n sections.push(\n ...(await loadPromptContextProviderBlocks({\n owner,\n compact,\n selfAppId,\n orgId,\n })),\n );\n\n try {\n const agents = (await discoverAgents(selfAppId)).slice(0, 30);\n if (agents.length > 0) {\n const lines = agents.map(\n (agent) =>\n `- ${agent.name} (${agent.id}) — ${agent.description || \"Connected A2A app\"}`,\n );\n sections.push(\n `<available-apps>\\nWorkspace apps available over A2A/call-agent:\\n${lines.join(\"\\n\")}\\n\\nUse \\`call-agent\\` with the app id when another app owns the work or data. Use tool-search or app-specific actions for details only when needed.\\n</available-apps>`,\n );\n }\n } catch {\n // Agent discovery is helpful context, not required for the run.\n }\n\n if (sections.length === 0) return \"\";\n const selectedSections = compact\n ? selectPromptSectionsWithinBudget(\n sections,\n COMPACT_PROMPT_RESOURCES_TOTAL_MAX_CHARS,\n )\n : sections;\n return (\n \"\\n\\nThe following resources contain template-specific instructions and user context. Use the information in them to help the user.\\n\\n\" +\n selectedSections.join(\"\\n\\n\")\n );\n}\n"]}
1
+ {"version":3,"file":"prompt-resources.js","sourceRoot":"","sources":["../../../src/server/agent-chat/prompt-resources.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,8EAA8E;AAC9E,uEAAuE;AACvE,mEAAmE;AACnE,uEAAuE;AACvE,oEAAoE;AACpE,8EAA8E;AAE9E,MAAM,gCAAgC,GAAG,MAAM,CAAC;AAChD,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AACvD,MAAM,wCAAwC,GAAG,MAAM,CAAC;AACxD,MAAM,iCAAiC,GAAG,KAAK,CAAC;AA4BhD,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAiC,CAAC;AAExE,4EAA4E;AAC5E,MAAM,UAAU,6BAA6B,CAC3C,QAA+B;IAE/B,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,CAAC;IACvC,sBAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC3C,OAAO,GAAG,EAAE;QACV,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,UAAU,EAAE,CAAC;YAClD,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,OAAqC;IAErC,MAAM,SAAS,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CACzB,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjC,QAAQ;QACR,YAAY,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;KAC3C,CAAC,CAAC,CACJ,CAAC;IACF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;YAAE,SAAS;QAC5C,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QAChD,IAAI,CAAC,YAAY;YAAE,SAAS;QAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,cAAc,GAClB,OAAO,CAAC,MAAM,IAAI,iCAAiC;YACjD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,iCAAiC,CAAC,sBAAsB,iCAAiC,CAAC,cAAc,EAAE,cAAc,CAAC;QACnJ,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,iBAAiB,CAAC;QAChE,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,WAAW,CAAC;QAC1D,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC;QACxE,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC;QACvE,MAAM,CAAC,IAAI,CACT,gCAAgC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,UAAU,iBAAiB,UAAU,YAAY,kBAAkB,CAAC,WAAW,CAAC,WAAW,kBAAkB,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,+BAA+B,EAAE,kCAAkC,CAAC,8BAA8B,CAC/W,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,QAAgB;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;AAC3C,CAAC;AACD,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAC5C,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAC5C,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAUjD,SAAS,8BAA8B,CAAC,IAAY;IAClD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;IAC/C,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,8BAA8B,CACrC,KAAa,EACb,IAAY,EACZ,KAAa;IAKb,MAAM,cAAc,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,UAAU,EACR,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,CAAC;gBAClC,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,eAAe;YACrB,UAAU,EACR,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;SAClE,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,UAAU,EAAE,cAAc,KAAK,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;YACzE,UAAU,EAAE,MAAM;SACnB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,UAAU,EACR,cAAc,KAAK,cAAc;gBAC/B,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,oBAAoB;YAC1B,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,MAAc;IAEd,MAAM,QAAQ,GAAoC,EAAE,CAAC;IACrD,MAAM,eAAe,GAAG,4CAA4C,CAAC;IACrE,IAAI,KAA6B,CAAC;IAClC,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC;QACzD,MAAM,IAAI,GACR,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;YACzC,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC1B,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,CAAC,CAAC;QACR,MAAM,cAAc,GAAG,8BAA8B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,IAAI;YACX,GAAG,cAAc;YACjB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YACvB,SAAS,EAAE;gBACT,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,KAAK;aACN;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GACnB,0EAA0E,CAAC;IAC7E,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,yBAAyB,CAAC;QAClE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC1D,MAAM,UAAU,GACd;YACE,gBAAgB;YAChB,gBAAgB;YAChB,UAAU;YACV,2BAA2B;YAC3B,eAAe;YACf,oBAAoB;YACpB,cAAc;YACd,UAAU;YACV,QAAQ;YACR,WAAW;YACX,OAAO;YACP,eAAe;YACf,iBAAiB;SAEpB,CAAC,QAAQ,CAAC,eAA0C,CAAC;YACpD,CAAC,CAAE,eAA2C;YAC9C,CAAC,CAAC,iBAAiB,CAAC;QACtB,MAAM,UAAU,GAAI,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAW,CAAC,QAAQ,CACtE,eAAwC,CACzC;YACC,CAAC,CAAE,eAAyC;YAC5C,CAAC,CAAC,WAAW,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK;YACL,UAAU;YACV,UAAU;YACV,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YACvB,SAAS,EAAE;gBACT,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;gBACvC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,UAAU;aAClD;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,cAAc,GAAG;QACrB;YACE,GAAG,EAAE,gBAAgB;YACrB,KAAK,EAAE,wBAAwB;YAC/B,UAAU,EAAE,UAAmB;YAC/B,UAAU,EAAE,WAAoB;SACjC;QACD;YACE,GAAG,EAAE,iBAAiB;YACtB,KAAK,EAAE,2BAA2B;YAClC,UAAU,EAAE,UAAmB;YAC/B,UAAU,EAAE,WAAoB;SACjC;QACD;YACE,GAAG,EAAE,uBAAuB;YAC5B,KAAK,EAAE,6BAA6B;YACpC,UAAU,EAAE,eAAwB;YACpC,UAAU,EAAE,WAAoB;SACjC;QACD;YACE,GAAG,EAAE,qBAAqB;YAC1B,KAAK,EAAE,+BAA+B;YACtC,UAAU,EAAE,eAAwB;YACpC,UAAU,EAAE,WAAoB;SACjC;QACD;YACE,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,4BAA4B;YACnC,UAAU,EAAE,gBAAyB;YACrC,UAAU,EAAE,UAAmB;SAChC;QACD;YACE,GAAG,EAAE,qBAAqB;YAC1B,KAAK,EAAE,qBAAqB;YAC5B,UAAU,EAAE,gBAAyB;YACrC,UAAU,EAAE,UAAmB;SAChC;QACD;YACE,GAAG,EAAE,gBAAgB;YACrB,KAAK,EAAE,0BAA0B;YACjC,UAAU,EAAE,OAAgB;YAC5B,UAAU,EAAE,UAAmB;SAChC;KACF,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,IAAI,MAAM,CAAC,GAAG,0BAA0B,MAAM,CAAC,GAAG,GAAG,EACrD,GAAG,CACJ,CAAC;QACF,IAAI,WAAmC,CAAC;QACxC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,WAAW,GACf,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnE,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,oBAAoB,GACxB,MAAM,CAAC,GAAG,KAAK,uBAAuB,IAAI,WAAW;gBACnD,CAAC,CAAC,8BAA8B,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpD,CAAC,CAAC;oBACE,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;iBAC9B,CAAC;YACR,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,GAAG,oBAAoB;gBACvB,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC7B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAsE,EACtE,KAAc;IAEd,OAAO,8CAA8C,MAAM,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAChG,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,SAAS,IAAI;SACjB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,6BAA6B,CACpC,OAAe,EACf,IAAY,EACZ,QAAQ,GAAG,gCAAgC,EAC3C,QAAiB;IAEjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC1C,MAAM,IAAI,GACR,QAAQ;QACR,gBAAgB,CACd,MAAM,EACN,YAAY,IAAI,uDAAuD,CACxE,CAAC;IACJ,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,IAAI,oBAAoB,QAAQ,CAAC,cAAc,EAAE,gBAAgB,OAAO,CAAC,cAAc,EAAE,wBAAwB,IAAI,GAAG,CAAC;AAChL,CAAC;AAED,SAAS,mBAAmB,CAAC,KAO5B;IACC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI;QAC/B,CAAC,CAAC,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,OAAO,GAAG,6BAA6B,CAC3C,KAAK,CAAC,OAAO,EACb,cAAc,IAAI,KAAK,CAAC,IAAI,EAC5B,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,QAAQ,CACf,CAAC;IACF,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,cAAc;QAC7B,CAAC,CAAC,UAAU,kBAAkB,CAAC,cAAc,CAAC,GAAG;QACjD,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,mBAAmB,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,QAAQ,MAAM,OAAO,eAAe,CAAC;AAC9I,CAAC;AAyBD,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,IAAI,GAAG,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI;QAAE,OAAO,4BAA4B,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAA+B,EAC/B,QAAgB;IAEhB,MAAM,MAAM,GAAG,iBAAiB,CAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAClD,0BAA0B,CAC3B,CAAC;IACF,OAAO,0DAA0D,OAAO,CAAC,MAAM,+BAA+B,QAAQ,CAAC,cAAc,EAAE,qDAAqD,MAAM,gNAAgN,CAAC;AACrZ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gCAAgC,CAC9C,QAAyB,EACzB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAC9B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU,CAC/C,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CACxB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAClD,CAAC,CACF,CAAC;IACF,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC5B,MAAM,WAAW,GACf,IAAI,GAAG,KAAK,GAAG,wBAAwB,CAAC,MAAM,GAAG,mBAAmB;QACpE,QAAQ,CAAC;IAEX,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GACb,IAAI;YACJ,OAAO,CAAC,OAAO,CAAC,MAAM;YACtB,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,wBAAwB,CAAC,MAAM;YAC7C,mBAAmB,CAAC;QACtB,IAAI,WAAW,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC1C,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;aAC9B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ;SACtB,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,UAAU,GACd,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,wBAAwB,CAAC,MAAM,CAAC;IACrE,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,OAAO;QACP,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;KACpE,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY;IAC/C,MAAM,UAAU,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY;IAC/C,MAAM,UAAU,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,CACL,UAAU,KAAK,WAAW;QAC1B,UAAU,KAAK,cAAc;QAC7B,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC;QACtC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAChC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAChC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACvC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;QAC9B,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO,CACL,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QAC5B,QAAQ,KAAK,kBAAkB;QAC/B,QAAQ,KAAK,kBAAkB;QAC/B,QAAQ,KAAK,oBAAoB,CAClC,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,OAAe;IACpD,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,KAAK,GACT,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC;QACzC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACpE,IAAI,KAAK,IAAI,WAAW;QAAE,OAAO,GAAG,KAAK,KAAK,WAAW,EAAE,CAAC;IAC5D,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,OAAO,GAAG,OAAO;SACpB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,YAAqB;IAErB,IAAI,KAAK,KAAK,eAAe;QAAE,OAAO,WAAW,CAAC;IAClD,IAAI,KAAK,KAAK,YAAY,IAAI,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,YAAY,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,UAAU,CAAC;IAC9D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,KAAa,EACb,KAAa,EACb,QAAQ,GAAG,gCAAgC;IAE3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,mBAAmB,CAAC;YACzB,IAAI,EAAE,WAAW;YACjB,KAAK;YACL,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iCAAiC,CAC9C,KAAa,EACb,KAAa,EACb,QAAQ,GAAG,gCAAgC,EAC3C,WAAW,GAAG,KAAK;IAEnB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,SAAS;aACrB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAChE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACnC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;gBACjD,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;oBAC5B,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,QAAQ,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CACtB,CAAC,QAAQ,EAAE,EAAE,CACX,OAAO,QAAQ,CAAC,IAAI,QAAQ,gBAAgB,CAAC,MAAM,EAAE,YAAY,QAAQ,CAAC,IAAI,qBAAqB,aAAa,qBAAqB,CAAC,EAAE,CAC3I,CAAC;YACF,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CACR,QAAQ,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,4BAA4B,gBAAgB,CAAC,MAAM,EAAE,aAAa,aAAa,qCAAqC,CAAC,EAAE,CAC7J,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,iCAAiC,kBAAkB,CAAC,KAAK,CAAC,wJAAwJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B;aAC/P,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CACrE,CAAC;QACF,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;YAChC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAAE,SAAS;YACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK;gBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ;aACT,CAAC,CAAC;YACH,IAAI,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC1C,KAAa,EACb,KAAqB;IAErB,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,SAAS,GACb,KAAK,KAAK,YAAY;YACpB,CAAC,CAAC;gBACE,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBAChD,GAAG,CAAC,MAAM,YAAY,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;aACpD;YACH,CAAC,CAAC,MAAM,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,UAAU,GACd,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK;gBAChB,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,iBAAiB;oBAC7B,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY;wBACxB,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,eAAe;4BAC3B,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK;oBAChB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,iBAAiB;wBAC7B,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY;4BACxB,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,eAAe;gCAC3B,CAAC,CAAC,CAAC;gCACH,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC;YACxC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvC,QAAQ;YACR,IAAI,EAAE,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SACvD,CAAC,CAAC,CACJ,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,EAAE,OAAO;gBAAE,SAAS;YAC7B,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK;gBAAE,SAAS;YAC3C,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;gBAAE,SAAS;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,iBAAiB,CACnC,IAAI,CAAC,WAAW,IAAI,kBAAkB,EACtC,oCAAoC,CACrC,CAAC;YACF,KAAK,CAAC,IAAI,CACR,OAAO,IAAI,oBAAoB,QAAQ,CAAC,IAAI,OAAO,KAAK,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAC5G,MAAM,EACN,YAAY,QAAQ,CAAC,IAAI,qBAAqB,KAAK,0CAA0C,CAC9F,EAAE,CACJ,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,IAAI,0BAA0B;gBAAE,MAAM;QACxD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,IACE,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM;YACtC,MAAM,CAAC,MAAM,GAAG,0BAA0B,EAC1C,CAAC;YACD,KAAK,CAAC,IAAI,CACR,sDAAsD,gBAAgB,CAAC,MAAM,EAAE,iDAAiD,CAAC,EAAE,CACpI,CAAC;QACJ,CAAC;QACD,OAAO,sPAAsP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACtS,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,KAAa,EACb,KAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;aAC1C,MAAM,CACL,CAAC,QAAQ,EAAE,EAAE,CACX,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3C,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxC;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAExC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CACrE,CAAC;QACF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;YAChC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO;gBAC3B,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC7C,CAAC,CAAC,IAAI,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CACR,QAAQ,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,SAAS,KAAK,eAAe,gBAAgB,CACnF,MAAM,EACN,aAAa,KAAK,qBAAqB,CACxC,EAAE,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GACT,KAAK,KAAK,WAAW;YACnB,CAAC,CAAC,kJAAkJ;YACpJ,CAAC,CAAC,6FAA6F,CAAC;QACpG,OAAO,+BAA+B,KAAK,OAAO,KAAK,IAAI,gBAAgB,CACzE,MAAM,EACN,kCAAkC,KAAK,oCAAoC,CAC5E,uEAAuE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC;IACrH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAa,EACb,OAAO,GAAG,KAAK,EACf,SAAkB,EAClB,KAAK,GAAkB,eAAe,EAAE,IAAI,IAAI;IAEhD,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAEpC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,CACjB,OAAkC,EAClC,UAAU,GAA0B,WAAW,EACzC,EAAE;QACR,IAAI,OAAO,EAAE,IAAI,EAAE;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAClB,MAAgB,EAChB,UAAU,GAA0B,WAAW,EACzC,EAAE;QACR,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC,CAAC;IACF,MAAM,sBAAsB,GAAG,OAAO;QACpC,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,gCAAgC,CAAC;IAErC,mEAAmE;IACnE,IAAI,CAAC;QACH,MAAM,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,GACrE,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAExC,uEAAuE;QACvE,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;YAChE,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,MAAM,CAAC,iBAAiB;gBACjC,QAAQ,EAAE,sBAAsB;gBAChC,QAAQ,EACN,iFAAiF;aACpF,CAAC,CAAC;YACH,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAChC,CAAC;QAED,4EAA4E;QAC5E,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,MAAM,CAAC,QAAQ;gBACxB,QAAQ,EAAE,sBAAsB;gBAChC,QAAQ,EACN,+EAA+E;aAClF,CAAC,CAAC;YACH,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QAED,kEAAkE;QAClE,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;YACtD,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;YACxE,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;oBAC5C,CAAC,CAAC,MAAM,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC,EAAE;oBACrG,CAAC,CAAC,EAAE,CAAC;gBACP,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,oCAAoC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,2CAA2C,CAAC;YACrJ,CAAC,CAAC,CAAC;YACH,IAAI,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC/C,KAAK,CAAC,IAAI,CACR,QAAQ,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,4FAA4F,CAC/I,CAAC;YACJ,CAAC;YACD,UAAU,CACR,4LAA4L,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAClO,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,yEAAyE;IACzE,6EAA6E;IAC7E,qCAAqC;IACrC,MAAM,eAAe,GAAG,MAAM,2BAA2B,CACvD,eAAe,EACf,WAAW,EACX,sBAAsB,CACvB,CAAC;IACF,UAAU,CAAC,eAAe,CAAC,CAAC;IAC5B,WAAW,CACT,MAAM,iCAAiC,CACrC,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,OAAO,CACR,CACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAErD,sEAAsE;IACtE,sEAAsE;IACtE,qBAAqB;IACrB,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,CACxD,YAAY,EACZ,iBAAiB,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAC7D,sBAAsB,CACvB,CAAC;IACF,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7B,WAAW,CACT,MAAM,iCAAiC,CACrC,YAAY,EACZ,iBAAiB,KAAK,YAAY;QAChC,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,yBAAyB,EAC7B,sBAAsB,EACtB,OAAO,CACR,CACF,CAAC;IAEF,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,iBAAiB,KAAK,YAAY,EAAE,CAAC;QACvC,MAAM,kBAAkB,GAAG,MAAM,2BAA2B,CAC1D,iBAAiB,EACjB,cAAc,EACd,sBAAsB,CACvB,CAAC;QACF,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC/B,WAAW,CACT,MAAM,iCAAiC,CACrC,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,OAAO,CACR,CACF,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,uEAAuE;IACvE,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;QACxD,MAAM,cAAc,GAAG,MAAM,2BAA2B,CACtD,KAAK,EACL,UAAU,EACV,sBAAsB,CACvB,CAAC;QACF,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACnC,WAAW,CACT,MAAM,iCAAiC,CACrC,KAAK,EACL,sBAAsB,EACtB,sBAAsB,EACtB,OAAO,CACR,EACD,MAAM,CACP,CAAC;IACJ,CAAC;IAED,MAAM,mBAAmB,GAAG,MAAM,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9E,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAEhC,IAAI,eAAe,GAAkD,IAAI,CAAC;IAC1E,IAAI,CAAC;QACH,eAAe;YACb,CAAC,iBAAiB,KAAK,YAAY;gBACjC,CAAC,CAAC,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,cAAc,CAAC;gBAC5D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,iBAAiB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,IAAI,OAAO,EAAE,CAAC;QACZ,0EAA0E;QAC1E,sEAAsE;QACtE,wEAAwE;QACxE,yEAAyE;QACzE,UAAU;QACV,IAAI,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,eAAe,CAAC,OAAO;gBAChC,QAAQ,EAAE,iCAAiC;aAC5C,CAAC,CAAC;YACH,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,2EAA2E;QAC3E,8DAA8D;QAC9D,UAAU,CACR,mQAAmQ,EACnQ,UAAU,CACX,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,sEAAsE;QACtE,sEAAsE;QACtE,uEAAuE;QACvE,IAAI,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,eAAe,CAAC,OAAO;gBAChC,QAAQ,EAAE,gCAAgC;aAC3C,CAAC,CAAC;YACH,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QAED,mEAAmE;QACnE,uEAAuE;QACvE,mEAAmE;QACnE,WAAW;QACX,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACvE,IAAI,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,mBAAmB,CAAC;wBAChC,IAAI,EAAE,kBAAkB;wBACxB,KAAK,EAAE,UAAU;wBACjB,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,QAAQ,EAAE,gCAAgC;qBAC3C,CAAC,CAAC;oBACH,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,sBAAsB,GAAG,MAAM,0BAA0B,CAC7D,eAAe,EACf,WAAW,CACZ,CAAC;IACF,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAEnC,MAAM,uBAAuB,GAAG,MAAM,0BAA0B,CAC9D,YAAY,EACZ,QAAQ,CACT,CAAC;IACF,UAAU,CAAC,uBAAuB,CAAC,CAAC;IACpC,IAAI,iBAAiB,KAAK,YAAY,EAAE,CAAC;QACvC,MAAM,yBAAyB,GAAG,MAAM,0BAA0B,CAChE,iBAAiB,EACjB,QAAQ,CACT,CAAC;QACF,UAAU,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC;IAED,WAAW,CACT,MAAM,+BAA+B,CAAC;QACpC,KAAK;QACL,OAAO;QACP,SAAS;QACT,KAAK;KACN,CAAC,CACH,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CACtB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC,WAAW,IAAI,mBAAmB,EAAE,CAChF,CAAC;YACF,yEAAyE;YACzE,wEAAwE;YACxE,oEAAoE;YACpE,UAAU,CACR,oEAAoE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,0lBAA0lB,EAC9qB,UAAU,CACX,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,gCAAgC,CAC7C,QAAQ,EACR,wCAAwC,CACzC,CAAC;QACF,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;QACnC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CACV,+CAA+C,wCAAwC,CAAC,cAAc,EAAE,iCAAiC,SAAS,IAAI,KAAK,aAAa,MAAM,CAAC,OAAO,CAAC,MAAM,8BAA8B,MAAM,CAAC,OAAO;iBACtO,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,SAAS,CAAC;iBAC7D,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CACV,+EAA+E,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,mBAAmB,SAAS,IAAI,KAAK,wIAAwI,CAClS,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,CACL,wIAAwI;QACxI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAC9B,CAAC;AACJ,CAAC","sourcesContent":["import {\n getFrontmatterValue,\n getSkillNameFromPath,\n parseFrontmatter,\n} from \"../../resources/metadata.js\";\nimport {\n ensurePersonalDefaults,\n organizationIdFromResourceOwner,\n resourceGet,\n resourceGetByPath,\n resourceList,\n resourceListAccessible,\n SHARED_OWNER,\n sharedResourceOwner,\n WORKSPACE_OWNER,\n} from \"../../resources/store.js\";\nimport type {\n ContextGovernanceTier,\n ContextManifestSourceRef,\n ContextSystemProvenance,\n} from \"../../shared/context-xray.js\";\nimport { discoverAgents } from \"../agent-discovery.js\";\nimport { getRequestOrgId } from \"../request-context.js\";\nimport { parseSkillFrontmatter } from \"./skill-frontmatter.js\";\n\n// ---------------------------------------------------------------------------\n// System-prompt resource loading: AGENTS.md, instructions/*.md, skills\n// summaries, and the shared/workspace resource index. Assembled by\n// `loadResourcesForPrompt`, the top-level orchestrator called once per\n// request to build the \"here's what you should know\" context block.\n// ---------------------------------------------------------------------------\n\nconst SHARED_PROMPT_RESOURCE_MAX_CHARS = 30_000;\nexport const COMPACT_PROMPT_RESOURCE_MAX_CHARS = 6_000;\nconst COMPACT_PROMPT_RESOURCES_TOTAL_MAX_CHARS = 48_000;\nconst PROMPT_CONTEXT_PROVIDER_MAX_CHARS = 8_000;\n\nexport interface PromptContextProviderContext {\n owner: string;\n compact: boolean;\n selfAppId?: string;\n orgId: string | null;\n}\n\nexport interface PromptContextProviderContribution {\n content: string;\n label?: string;\n provenance?: ContextSystemProvenance;\n governance?: ContextGovernanceTier;\n sourceRef?: ContextManifestSourceRef;\n}\n\nexport interface PromptContextProvider {\n id: string;\n load(\n context: PromptContextProviderContext,\n ):\n | Promise<PromptContextProviderContribution | null | undefined>\n | PromptContextProviderContribution\n | null\n | undefined;\n}\n\nconst promptContextProviders = new Map<string, PromptContextProvider>();\n\n/** Register a package-owned, request-scoped system-context contribution. */\nexport function registerPromptContextProvider(\n provider: PromptContextProvider,\n): () => void {\n const id = provider.id.trim();\n if (!/^[a-z][a-z0-9-]{1,63}$/.test(id)) {\n throw new Error(\n \"Prompt context provider ids must be 2-64 lowercase letters, digits, or hyphens\",\n );\n }\n const registered = { ...provider, id };\n promptContextProviders.set(id, registered);\n return () => {\n if (promptContextProviders.get(id) === registered) {\n promptContextProviders.delete(id);\n }\n };\n}\n\nfunction xmlAttributeEscape(value: string): string {\n return value\n .replace(/&/g, \"&amp;\")\n .replace(/\"/g, \"&quot;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\");\n}\n\nasync function loadPromptContextProviderBlocks(\n context: PromptContextProviderContext,\n): Promise<string[]> {\n const providers = [...promptContextProviders.values()].sort((a, b) =>\n a.id.localeCompare(b.id),\n );\n const settled = await Promise.allSettled(\n providers.map(async (provider) => ({\n provider,\n contribution: await provider.load(context),\n })),\n );\n const blocks: string[] = [];\n for (const result of settled) {\n if (result.status !== \"fulfilled\") continue;\n const { provider, contribution } = result.value;\n if (!contribution) continue;\n const content = contribution.content.trim();\n if (!content) continue;\n const boundedContent =\n content.length <= PROMPT_CONTEXT_PROVIDER_MAX_CHARS\n ? content\n : `${content.slice(0, PROMPT_CONTEXT_PROVIDER_MAX_CHARS)}\\n[truncated after ${PROMPT_CONTEXT_PROVIDER_MAX_CHARS.toLocaleString()} characters]`;\n const label = contribution.label?.trim() || provider.id;\n const provenance = contribution.provenance ?? \"runtime-context\";\n const governance = contribution.governance ?? \"inherited\";\n const sourceScope = contribution.sourceRef?.scope?.trim() || \"provider\";\n const sourcePath = contribution.sourceRef?.path?.trim() || provider.id;\n blocks.push(\n `<prompt-context-provider id=\"${xmlAttributeEscape(provider.id)}\" label=\"${xmlAttributeEscape(label)}\" provenance=\"${provenance}\" governance=\"${governance}\" scope=\"${xmlAttributeEscape(sourceScope)}\" path=\"${xmlAttributeEscape(sourcePath)}\">\\n${boundedContent.replace(/<\\/prompt-context-provider>/gi, \"&lt;/prompt-context-provider&gt;\")}\\n</prompt-context-provider>`,\n );\n }\n return blocks;\n}\n\nexport function compactPromptLine(value: string, maxChars: number): string {\n const line = value.replace(/\\s+/g, \" \").trim();\n if (line.length <= maxChars) return line;\n return `${line.slice(0, maxChars - 1)}…`;\n}\nconst SHARED_RESOURCE_INDEX_LIMIT = 40;\nconst PROMPT_SKILL_SUMMARY_LIMIT = 40;\nconst PROMPT_SKILL_METADATA_READ_LIMIT = 80;\nconst PROMPT_INSTRUCTION_SUMMARY_LIMIT = 20;\nconst PROMPT_SUMMARY_DESCRIPTION_MAX_CHARS = 180;\n\nexport interface PromptResourceManifestSection {\n label: string;\n provenance: ContextSystemProvenance;\n governance: ContextGovernanceTier;\n content: string;\n sourceRef?: ContextManifestSourceRef;\n}\n\nfunction normalizeResourcePathForPrompt(path: string): string {\n return path.replace(/^\\/+/, \"\").trim();\n}\n\nfunction xmlAttribute(attrs: string, name: string): string | undefined {\n const match = new RegExp(`\\\\b${name}=\"([^\"]*)\"`).exec(attrs);\n return match?.[1];\n}\n\nfunction resourceManifestClassification(\n scope: string,\n path: string,\n index: number,\n): {\n provenance: ContextSystemProvenance;\n governance: ContextGovernanceTier;\n} {\n const normalizedPath = normalizeResourcePathForPrompt(path);\n if (scope === \"template\") {\n return { provenance: \"template\", governance: \"inherited\" };\n }\n if (scope.startsWith(\"workspace\")) {\n return {\n provenance:\n scope === \"workspace\" && index === 0\n ? \"enterprise-workspace-core\"\n : \"sql-workspace\",\n governance:\n scope === \"workspace\" && index === 0 ? \"required\" : \"inherited\",\n };\n }\n if (scope.startsWith(\"personal\")) {\n return {\n provenance: normalizedPath === \"memory/MEMORY.md\" ? \"memory\" : \"personal\",\n governance: \"user\",\n };\n }\n if (scope.startsWith(\"app-default\")) {\n return { provenance: \"legacy-app-default\", governance: \"inherited\" };\n }\n if (scope.startsWith(\"organization\")) {\n return { provenance: \"organization\", governance: \"inherited\" };\n }\n if (scope.startsWith(\"shared\")) {\n return {\n provenance:\n normalizedPath === \"LEARNINGS.md\"\n ? \"organization\"\n : \"legacy-app-default\",\n governance: \"inherited\",\n };\n }\n return { provenance: \"template\", governance: \"inherited\" };\n}\n\n/**\n * Extracts bounded-in-memory metadata from the already-composed resource\n * prompt. The caller turns these inputs into hashed/previews before anything\n * is persisted; this helper never writes or returns the full manifest.\n */\nexport function promptResourceManifestSections(\n prompt: string,\n): PromptResourceManifestSection[] {\n const sections: PromptResourceManifestSection[] = [];\n const resourcePattern = /<resource\\b([^>]*)>([\\s\\S]*?)<\\/resource>/g;\n let match: RegExpExecArray | null;\n let workspaceIndex = 0;\n let sharedIndex = 0;\n while ((match = resourcePattern.exec(prompt))) {\n const attrs = match[1] ?? \"\";\n const scope = xmlAttribute(attrs, \"scope\") ?? \"resource\";\n const path =\n xmlAttribute(attrs, \"path\") ?? xmlAttribute(attrs, \"name\") ?? \"\";\n const name = xmlAttribute(attrs, \"name\") ?? (path || \"resource\");\n const index = scope.startsWith(\"workspace\")\n ? workspaceIndex++\n : scope.startsWith(\"shared\")\n ? sharedIndex++\n : 0;\n const classification = resourceManifestClassification(scope, path, index);\n sections.push({\n label: name,\n ...classification,\n content: match[2] ?? \"\",\n sourceRef: {\n ...(path ? { path } : {}),\n scope,\n },\n });\n }\n\n const providerPattern =\n /<prompt-context-provider\\b([^>]*)>([\\s\\S]*?)<\\/prompt-context-provider>/g;\n while ((match = providerPattern.exec(prompt))) {\n const attrs = match[1] ?? \"\";\n const id = xmlAttribute(attrs, \"id\") ?? \"prompt-context-provider\";\n const label = xmlAttribute(attrs, \"label\") ?? id;\n const provenanceValue = xmlAttribute(attrs, \"provenance\");\n const governanceValue = xmlAttribute(attrs, \"governance\");\n const provenance = (\n [\n \"framework-core\",\n \"actions-prompt\",\n \"template\",\n \"enterprise-workspace-core\",\n \"sql-workspace\",\n \"legacy-app-default\",\n \"organization\",\n \"personal\",\n \"memory\",\n \"db-schema\",\n \"tools\",\n \"model-overlay\",\n \"runtime-context\",\n ] as const\n ).includes(provenanceValue as ContextSystemProvenance)\n ? (provenanceValue as ContextSystemProvenance)\n : \"runtime-context\";\n const governance = ([\"required\", \"inherited\", \"user\"] as const).includes(\n governanceValue as ContextGovernanceTier,\n )\n ? (governanceValue as ContextGovernanceTier)\n : \"inherited\";\n sections.push({\n label,\n provenance,\n governance,\n content: match[2] ?? \"\",\n sourceRef: {\n path: xmlAttribute(attrs, \"path\") ?? id,\n scope: xmlAttribute(attrs, \"scope\") ?? \"provider\",\n },\n });\n }\n\n const taggedSections = [\n {\n tag: \"skills-summary\",\n label: \"Workspace skills index\",\n provenance: \"template\" as const,\n governance: \"inherited\" as const,\n },\n {\n tag: \"resource-skills\",\n label: \"Workspace resource skills\",\n provenance: \"template\" as const,\n governance: \"inherited\" as const,\n },\n {\n tag: \"instruction-resources\",\n label: \"Instruction resources index\",\n provenance: \"sql-workspace\" as const,\n governance: \"inherited\" as const,\n },\n {\n tag: \"workspace-resources\",\n label: \"Workspace reference resources\",\n provenance: \"sql-workspace\" as const,\n governance: \"inherited\" as const,\n },\n {\n tag: \"context-note\",\n label: \"Resource availability note\",\n provenance: \"framework-core\" as const,\n governance: \"required\" as const,\n },\n {\n tag: \"context-budget-note\",\n label: \"Context budget note\",\n provenance: \"framework-core\" as const,\n governance: \"required\" as const,\n },\n {\n tag: \"available-apps\",\n label: \"Available workspace apps\",\n provenance: \"tools\" as const,\n governance: \"required\" as const,\n },\n ];\n for (const tagged of taggedSections) {\n const pattern = new RegExp(\n `<${tagged.tag}\\\\b[^>]*>([\\\\s\\\\S]*?)</${tagged.tag}>`,\n \"g\",\n );\n let taggedMatch: RegExpExecArray | null;\n while ((taggedMatch = pattern.exec(prompt))) {\n const taggedAttrs =\n taggedMatch[0]?.slice(tagged.tag.length + 1).split(\">\")[0] ?? \"\";\n const taggedScope = xmlAttribute(taggedAttrs, \"scope\");\n const taggedClassification =\n tagged.tag === \"instruction-resources\" && taggedScope\n ? resourceManifestClassification(taggedScope, \"\", 0)\n : {\n provenance: tagged.provenance,\n governance: tagged.governance,\n };\n sections.push({\n label: tagged.label,\n ...taggedClassification,\n content: taggedMatch[1] ?? \"\",\n ...(taggedScope ? { sourceRef: { scope: taggedScope } } : {}),\n });\n }\n }\n return sections;\n}\n\nfunction resourceToolHint(\n action: \"list\" | \"read\" | \"effective\" | \"write\" | \"delete\" | \"promote\",\n extra?: string,\n): string {\n return `Use the \\`resources\\` tool with \\`action: \"${action}\"\\`${extra ? `, ${extra}` : \"\"}.`;\n}\n\nfunction skillDocsSlug(name: string): string {\n return `skill-${name\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\")}`;\n}\n\nfunction ensureSentence(value: string): string {\n const trimmed = value.trim();\n if (!trimmed) return \"\";\n return /[.!?]$/.test(trimmed) ? trimmed : `${trimmed}.`;\n}\n\nfunction escapeXmlAttribute(value: string): string {\n return value.replace(/&/g, \"&amp;\").replace(/\"/g, \"&quot;\");\n}\n\nfunction truncatePromptResourceContent(\n content: string,\n path: string,\n maxChars = SHARED_PROMPT_RESOURCE_MAX_CHARS,\n readHint?: string,\n): string {\n const trimmed = content.trim();\n if (trimmed.length <= maxChars) return trimmed;\n const omitted = trimmed.length - maxChars;\n const hint =\n readHint ??\n resourceToolHint(\n \"read\",\n `\\`path: \"${path}\"\\` and the resource's \\`scope\\` for the full content`,\n );\n return `${trimmed.slice(0, maxChars)}\\n\\n[Resource ${path} truncated after ${maxChars.toLocaleString()} characters; ${omitted.toLocaleString()} characters omitted. ${hint}]`;\n}\n\nfunction promptResourceBlock(input: {\n name: string;\n scope: string;\n content: string;\n path?: string;\n maxChars?: number;\n readHint?: string;\n}): string | null {\n const normalizedPath = input.path\n ? normalizeResourcePathForPrompt(input.path)\n : undefined;\n const content = truncatePromptResourceContent(\n input.content,\n normalizedPath ?? input.name,\n input.maxChars,\n input.readHint,\n );\n if (!content) return null;\n const pathAttr = normalizedPath\n ? ` path=\"${escapeXmlAttribute(normalizedPath)}\"`\n : \"\";\n return `<resource name=\"${escapeXmlAttribute(input.name)}\" scope=\"${escapeXmlAttribute(input.scope)}\"${pathAttr}>\\n${content}\\n</resource>`;\n}\n\n/**\n * One assembled startup-context block plus the governance tier the context\n * manifest reports for it (`ContextGovernanceTier`). `required` is the tier\n * that already meant \"not opt-out-able\" in the manifest; the budget fitter\n * honours it as \"reserve before anything else competes\".\n */\nexport interface PromptSection {\n content: string;\n governance: ContextGovernanceTier;\n}\n\nexport interface SkippedPromptSection {\n label: string;\n chars: number;\n}\n\nexport interface PromptSectionBudgetResult {\n sections: string[];\n skipped: SkippedPromptSection[];\n /** Chars by which required sections alone exceeded `maxChars`, else 0. */\n overflowChars: number;\n}\n\nconst PROMPT_SECTION_SEPARATOR = \"\\n\\n\";\nconst TRIM_NOTE_LABELS_MAX_CHARS = 300;\nconst TRIM_NOTE_MAX_CHARS = 700;\n\nfunction promptSectionLabel(content: string): string {\n const open = /^<([a-z][a-z0-9-]*)\\b([^>]*)>/i.exec(content.trimStart());\n if (!open) return \"unlabelled context section\";\n const attrs = open[2] ?? \"\";\n const name = xmlAttribute(attrs, \"name\") ?? xmlAttribute(attrs, \"id\");\n const scope = xmlAttribute(attrs, \"scope\");\n if (name) return scope ? `${name} (${scope})` : name;\n return scope ? `${open[1]} (${scope})` : (open[1] ?? \"context section\");\n}\n\nfunction promptBudgetTrimNote(\n skipped: SkippedPromptSection[],\n maxChars: number,\n): string {\n const labels = compactPromptLine(\n skipped.map((section) => section.label).join(\", \"),\n TRIM_NOTE_LABELS_MAX_CHARS,\n );\n return `<context-budget-note>Your startup context was trimmed: ${skipped.length} section(s) did not fit the ${maxChars.toLocaleString()}-character first-request budget and were omitted (${labels}). Treat them as unread, not as absent — use \\`resources\\` with \\`action: \"list\"\\` or \\`\"read\"\\`, \\`docs-search\\`, and \\`tool-search\\` before telling the user something does not exist.</context-budget-note>`;\n}\n\n/**\n * Fits assembled startup context into `maxChars`, reserving `required`\n * sections before discretionary ones compete for the remainder, and reporting\n * every omission so an over-budget request is never silent.\n *\n * Required sections are never truncated and never dropped: a half-rendered\n * list of workspace apps or governance rules reads to the model as a complete\n * one, which is worse than an explicit note that a section is missing. If they\n * alone exceed the budget, the budget is exceeded deliberately, every\n * discretionary section is dropped, and `overflowChars` reports by how much.\n */\nexport function selectPromptSectionsWithinBudget(\n sections: PromptSection[],\n maxChars: number,\n): PromptSectionBudgetResult {\n const required = sections.filter(\n (section) => section.governance === \"required\",\n );\n const keep = new Set<number>();\n const skipped: SkippedPromptSection[] = [];\n let used = required.reduce(\n (total, section) => total + section.content.length,\n 0,\n );\n let count = required.length;\n const requiredFit =\n used + count * PROMPT_SECTION_SEPARATOR.length + TRIM_NOTE_MAX_CHARS <=\n maxChars;\n\n for (const [index, section] of sections.entries()) {\n if (section.governance === \"required\") {\n keep.add(index);\n continue;\n }\n const projected =\n used +\n section.content.length +\n (count + 1) * PROMPT_SECTION_SEPARATOR.length +\n TRIM_NOTE_MAX_CHARS;\n if (requiredFit && projected <= maxChars) {\n keep.add(index);\n used += section.content.length;\n count++;\n } else {\n skipped.push({\n label: promptSectionLabel(section.content),\n chars: section.content.length,\n });\n }\n }\n\n const selected = sections\n .filter((_section, index) => keep.has(index))\n .map((section) => section.content);\n if (skipped.length > 0) {\n selected.push(promptBudgetTrimNote(skipped, maxChars));\n }\n\n const totalChars =\n selected.reduce((total, section) => total + section.length, 0) +\n Math.max(0, selected.length - 1) * PROMPT_SECTION_SEPARATOR.length;\n return {\n sections: selected,\n skipped,\n overflowChars: requiredFit ? 0 : Math.max(0, totalChars - maxChars),\n };\n}\n\nfunction isAutoLoadedInstructionPath(path: string): boolean {\n const normalized = normalizeResourcePathForPrompt(path);\n return normalized.startsWith(\"instructions/\") && normalized.endsWith(\".md\");\n}\n\nfunction isSpecialPromptResourcePath(path: string): boolean {\n const normalized = normalizeResourcePathForPrompt(path);\n return (\n normalized === \"AGENTS.md\" ||\n normalized === \"LEARNINGS.md\" ||\n normalized.startsWith(\"instructions/\") ||\n normalized.startsWith(\"skills/\") ||\n normalized.startsWith(\"agents/\") ||\n normalized.startsWith(\"remote-agents/\") ||\n normalized.startsWith(\"jobs/\") ||\n normalized.startsWith(\"memory/\")\n );\n}\n\nfunction isTextLikeResource(mimeType: string): boolean {\n return (\n mimeType.startsWith(\"text/\") ||\n mimeType === \"application/json\" ||\n mimeType === \"application/yaml\" ||\n mimeType === \"application/x-yaml\"\n );\n}\n\nfunction getResourceSummaryFromContent(content: string): string | null {\n const frontmatter = parseFrontmatter(content);\n const title =\n getFrontmatterValue(frontmatter, \"title\") ||\n getFrontmatterValue(frontmatter, \"name\");\n const description = getFrontmatterValue(frontmatter, \"description\");\n if (title && description) return `${title}: ${description}`;\n if (title) return title;\n if (description) return description;\n\n const heading = content\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .find((line) => /^#{1,3}\\s+\\S/.test(line));\n if (heading) return heading.replace(/^#{1,3}\\s+/, \"\").trim();\n return null;\n}\n\nexport function resourceScopeForOwner(\n owner: string,\n currentOwner?: string,\n): string {\n if (owner === WORKSPACE_OWNER) return \"workspace\";\n if (owner === SHARED_OWNER || organizationIdFromResourceOwner(owner)) {\n return \"shared\";\n }\n if (currentOwner && owner === currentOwner) return \"personal\";\n return \"resource\";\n}\n\nasync function loadAgentsResourceForPrompt(\n owner: string,\n scope: string,\n maxChars = SHARED_PROMPT_RESOURCE_MAX_CHARS,\n): Promise<string | null> {\n try {\n const agents = await resourceGetByPath(owner, \"AGENTS.md\");\n if (!agents?.content?.trim()) return null;\n return promptResourceBlock({\n name: \"AGENTS.md\",\n scope,\n path: \"AGENTS.md\",\n content: agents.content,\n maxChars,\n });\n } catch {\n return null;\n }\n}\n\nasync function loadInstructionResourcesForPrompt(\n owner: string,\n scope: string,\n maxChars = SHARED_PROMPT_RESOURCE_MAX_CHARS,\n summaryOnly = false,\n): Promise<string[]> {\n try {\n const resources = await resourceList(owner, \"instructions/\");\n const sorted = resources\n .filter((resource) => isAutoLoadedInstructionPath(resource.path))\n .sort((a, b) => a.path.localeCompare(b.path));\n\n if (summaryOnly) {\n if (sorted.length === 0) return [];\n const resourceScope = scope.startsWith(\"workspace\")\n ? \"workspace\"\n : scope.startsWith(\"personal\")\n ? \"personal\"\n : \"shared\";\n const listed = sorted.slice(0, PROMPT_INSTRUCTION_SUMMARY_LIMIT);\n const lines = listed.map(\n (resource) =>\n `- \\`${resource.path}\\` - ${resourceToolHint(\"read\", `\\`path: \"${resource.path}\"\\` and \\`scope: \"${resourceScope}\"\\` when it applies`)}`,\n );\n if (sorted.length > listed.length) {\n lines.push(\n `- ...${sorted.length - listed.length} more instruction files. ${resourceToolHint(\"list\", `\\`scope: \"${resourceScope}\"\\` and \\`prefix: \"instructions/\"\\``)}`,\n );\n }\n return [\n `<instruction-resources scope=\"${escapeXmlAttribute(scope)}\">\\nDetailed instruction files are loaded on demand so the first model request stays compact. Read a relevant file before following its workflow.\\n\\n${lines.join(\"\\n\")}\\n</instruction-resources>`,\n ];\n }\n\n const fullResources = await Promise.all(\n sorted.map((resource) => resourceGet(resource.id).catch(() => null)),\n );\n const blocks: string[] = [];\n for (let index = 0; index < sorted.length; index++) {\n const resource = sorted[index]!;\n const full = fullResources[index];\n if (!full?.content?.trim()) continue;\n const block = promptResourceBlock({\n name: resource.path,\n scope,\n path: resource.path,\n content: full.content,\n maxChars,\n });\n if (block) blocks.push(block);\n }\n return blocks;\n } catch {\n return [];\n }\n}\n\nasync function loadResourceSkillsPromptBlock(\n owner: string,\n orgId?: string | null,\n): Promise<string | null> {\n try {\n const organizationOwner = sharedResourceOwner(orgId);\n const resources =\n owner === SHARED_OWNER\n ? [\n ...(await resourceList(SHARED_OWNER, \"skills/\")),\n ...(await resourceList(WORKSPACE_OWNER, \"skills/\")),\n ]\n : await resourceListAccessible(owner, \"skills/\", { orgId });\n const sorted = resources.sort((a, b) => {\n const ownerOrder =\n (a.owner === owner\n ? 0\n : a.owner === organizationOwner\n ? 1\n : a.owner === SHARED_OWNER\n ? 2\n : a.owner === WORKSPACE_OWNER\n ? 3\n : 4) -\n (b.owner === owner\n ? 0\n : b.owner === organizationOwner\n ? 1\n : b.owner === SHARED_OWNER\n ? 2\n : b.owner === WORKSPACE_OWNER\n ? 3\n : 4);\n if (ownerOrder !== 0) return ownerOrder;\n return a.path.localeCompare(b.path);\n });\n const skillCandidates = sorted.slice(0, PROMPT_SKILL_METADATA_READ_LIMIT);\n const loaded = await Promise.all(\n skillCandidates.map(async (resource) => ({\n resource,\n full: await resourceGet(resource.id).catch(() => null),\n })),\n );\n const seen = new Set<string>();\n const lines: string[] = [];\n for (const { resource, full } of loaded) {\n if (!full?.content) continue;\n const meta = parseSkillFrontmatter(full.content);\n if (meta.userInvocable === false) continue;\n if (meta.scope === \"dev\") continue;\n const name = meta.name || getSkillNameFromPath(resource.path);\n if (!name || seen.has(name)) continue;\n seen.add(name);\n const scope = resourceScopeForOwner(resource.owner, owner);\n const description = compactPromptLine(\n meta.description || \"(no description)\",\n PROMPT_SUMMARY_DESCRIPTION_MAX_CHARS,\n );\n lines.push(\n `- \\`${name}\\` at resource \\`${resource.path}\\` (${scope}) - ${ensureSentence(description)} ${resourceToolHint(\n \"read\",\n `\\`path: \"${resource.path}\"\\` and \\`scope: \"${scope}\"\\` before starting a task it applies to`,\n )}`,\n );\n if (lines.length >= PROMPT_SKILL_SUMMARY_LIMIT) break;\n }\n if (lines.length === 0) return null;\n if (\n sorted.length > skillCandidates.length ||\n loaded.length > PROMPT_SKILL_SUMMARY_LIMIT\n ) {\n lines.push(\n `- ...more skills omitted from the startup summary. ${resourceToolHint(\"list\", '`prefix: \"skills/\"` to inspect the full catalog')}`,\n );\n }\n return `<resource-skills>\\nThe following workspace skills are available in addition to codebase skills. They may come from SQL resources, Dispatch workspace resources, or local file mode. Read a matching skill before starting a task it applies to.\\n\\n${lines.join(\"\\n\")}\\n</resource-skills>`;\n } catch {\n return null;\n }\n}\n\nasync function loadResourceIndexForPrompt(\n owner: string,\n scope: \"workspace\" | \"shared\",\n): Promise<string | null> {\n try {\n const resources = (await resourceList(owner))\n .filter(\n (resource) =>\n !isSpecialPromptResourcePath(resource.path) &&\n isTextLikeResource(resource.mimeType),\n )\n .sort((a, b) => a.path.localeCompare(b.path));\n if (resources.length === 0) return null;\n\n const listed = resources.slice(0, SHARED_RESOURCE_INDEX_LIMIT);\n const lines: string[] = [];\n const fullResources = await Promise.all(\n listed.map((resource) => resourceGet(resource.id).catch(() => null)),\n );\n for (let index = 0; index < listed.length; index++) {\n const resource = listed[index]!;\n const full = fullResources[index];\n const summary = full?.content\n ? getResourceSummaryFromContent(full.content)\n : null;\n lines.push(`- \\`${resource.path}\\`${summary ? ` - ${summary}` : \"\"}`);\n }\n if (resources.length > listed.length) {\n lines.push(\n `- ...${resources.length - listed.length} more ${scope} resources. ${resourceToolHint(\n \"list\",\n `\\`scope: \"${scope}\"\\` to inspect them`,\n )}`,\n );\n }\n\n const label =\n scope === \"workspace\"\n ? \"Workspace reference resources are inherited by every app and are available for company, brand, positioning, persona, product, or domain context.\"\n : \"Shared app/organization reference resources are available for app-specific or team context.\";\n return `<workspace-resources scope=\"${scope}\">\\n${label} ${resourceToolHint(\n \"read\",\n `\\`path: <path>\\` and \\`scope: \"${scope}\"\\` when a task may depend on them`,\n )} Do not assume their contents without reading the relevant file.\\n\\n${lines.join(\"\\n\")}\\n</workspace-resources>`;\n } catch {\n return null;\n }\n}\n\n/**\n * Pre-load the agent's context: AGENTS.md (workspace/template/runtime\n * instructions), the skills index, shared LEARNINGS.md (team notes), a shared\n * resource index, and memory/MEMORY.md (personal structured memory index).\n * These all get appended to the system prompt so the agent has everything it\n * needs from the first turn.\n *\n * Six sources are layered:\n *\n * 1. `<workspace>` — AGENTS.md from the enterprise workspace core.\n * 2. `<template>` — AGENTS.md + skills index from the Vite plugin bundle.\n * 3. `<workspace>` — SQL workspace AGENTS.md and instructions/*.md.\n * Runtime global defaults managed from Dispatch and inherited by apps.\n * 4. `<app-default>` — legacy app-wide SQL defaults.\n * 5. `<shared>` — organization AGENTS.md, instructions, and LEARNINGS.md.\n * These are isolated by active org and override app/workspace defaults.\n * 6. `<personal>` — memory/MEMORY.md from the SQL personal scope. The\n * current user's structured memory index.\n *\n * Each source is read independently — no copying between them. Editing\n * AGENTS.md and restarting the server is all it takes; Vite HMR invalidates\n * the bundle in dev so changes land instantly.\n */\nexport async function loadResourcesForPrompt(\n owner: string,\n compact = false,\n selfAppId?: string,\n orgId: string | null = getRequestOrgId() ?? null,\n): Promise<string> {\n await ensurePersonalDefaults(owner);\n\n const sections: PromptSection[] = [];\n const addSection = (\n content: string | null | undefined,\n governance: ContextGovernanceTier = \"inherited\",\n ): void => {\n if (content?.trim()) sections.push({ content, governance });\n };\n const addSections = (\n blocks: string[],\n governance: ContextGovernanceTier = \"inherited\",\n ): void => {\n for (const block of blocks) addSection(block, governance);\n };\n const promptResourceMaxChars = compact\n ? COMPACT_PROMPT_RESOURCE_MAX_CHARS\n : SHARED_PROMPT_RESOURCE_MAX_CHARS;\n\n // 1. Workspace AGENTS.md + skills merged into the template bundle.\n try {\n const { loadAgentsBundle, generateSkillsPromptBlock, getRuntimeSkills } =\n await import(\"../agents-bundle.js\");\n const bundle = await loadAgentsBundle();\n\n // Workspace-core AGENTS.md (enterprise-wide instructions), if present.\n if (bundle.workspaceAgentsMd && bundle.workspaceAgentsMd.trim()) {\n const block = promptResourceBlock({\n name: \"AGENTS.md\",\n scope: \"workspace\",\n path: \"AGENTS.md\",\n content: bundle.workspaceAgentsMd,\n maxChars: promptResourceMaxChars,\n readHint:\n 'Use docs-search --slug \"agents-workspace\" to read the full workspace AGENTS.md.',\n });\n addSection(block, \"required\");\n }\n\n // 2. Template AGENTS.md — always included (critical template instructions).\n if (bundle.agentsMd.trim()) {\n const block = promptResourceBlock({\n name: \"AGENTS.md\",\n scope: \"template\",\n path: \"AGENTS.md\",\n content: bundle.agentsMd,\n maxChars: promptResourceMaxChars,\n readHint:\n 'Use docs-search --slug \"agents-template\" to read the full template AGENTS.md.',\n });\n addSection(block);\n }\n\n // In compact mode, skip the full skills block — the agent can use\n // `docs-search` to find skills when it needs them. Either way, `scope: dev`\n // skills are excluded: they're for the human's coding agent, not runtime.\n const runtimeSkills = getRuntimeSkills(bundle);\n if (!compact) {\n const skillsBlock = generateSkillsPromptBlock(bundle);\n addSection(skillsBlock);\n } else if (runtimeSkills.length > 0) {\n const listedSkills = runtimeSkills.slice(0, PROMPT_SKILL_SUMMARY_LIMIT);\n const lines = listedSkills.map((s) => {\n const description = s.meta.description?.trim()\n ? ` - ${ensureSentence(compactPromptLine(s.meta.description, PROMPT_SUMMARY_DESCRIPTION_MAX_CHARS))}`\n : \"\";\n return `- \\`${s.meta.name}\\`${description} Read with \\`docs-search --slug \"${skillDocsSlug(s.meta.name)}\"\\` before starting a task it applies to.`;\n });\n if (runtimeSkills.length > listedSkills.length) {\n lines.push(\n `- ...${runtimeSkills.length - listedSkills.length} more codebase skills. Use \\`docs-search --query \"<topic>\"\\` to discover the relevant one.`,\n );\n }\n addSection(\n `<skills-summary>\\nCodebase skills bundled from \\`.agents/skills/\\` (or legacy \\`.agent/skills/\\`) are available as docs-search pages. Do not use MCP resource reads for these skills.\\n\\n${lines.join(\"\\n\")}\\n</skills-summary>`,\n );\n }\n } catch {}\n\n // 3. Runtime workspace resources. These are global defaults inherited by\n // every app in the workspace, not copied into app scopes. They may come from\n // SQL, Dispatch, or local file mode.\n const workspaceAgents = await loadAgentsResourceForPrompt(\n WORKSPACE_OWNER,\n \"workspace\",\n promptResourceMaxChars,\n );\n addSection(workspaceAgents);\n addSections(\n await loadInstructionResourcesForPrompt(\n WORKSPACE_OWNER,\n \"workspace-instruction\",\n promptResourceMaxChars,\n compact,\n ),\n );\n\n const organizationOwner = sharedResourceOwner(orgId);\n\n // 4. Legacy app-wide defaults. Existing deployments keep their seeded\n // shared guidance as an inherited fallback; organization writes never\n // mutate this owner.\n const appDefaultAgents = await loadAgentsResourceForPrompt(\n SHARED_OWNER,\n organizationOwner === SHARED_OWNER ? \"shared\" : \"app-default\",\n promptResourceMaxChars,\n );\n addSection(appDefaultAgents);\n addSections(\n await loadInstructionResourcesForPrompt(\n SHARED_OWNER,\n organizationOwner === SHARED_OWNER\n ? \"shared-instruction\"\n : \"app-default-instruction\",\n promptResourceMaxChars,\n compact,\n ),\n );\n\n // 5. Active organization resources. These are the durable team rules and\n // learnings that Slack/integration runs share with interactive app chat.\n if (organizationOwner !== SHARED_OWNER) {\n const organizationAgents = await loadAgentsResourceForPrompt(\n organizationOwner,\n \"organization\",\n promptResourceMaxChars,\n );\n addSection(organizationAgents);\n addSections(\n await loadInstructionResourcesForPrompt(\n organizationOwner,\n \"organization-instruction\",\n promptResourceMaxChars,\n compact,\n ),\n );\n }\n\n // 6. Personal SQL resources. These come last in the instruction stack so a\n // user can narrow or override organization/app and workspace defaults.\n if (owner !== SHARED_OWNER && owner !== WORKSPACE_OWNER) {\n const personalAgents = await loadAgentsResourceForPrompt(\n owner,\n \"personal\",\n promptResourceMaxChars,\n );\n addSection(personalAgents, \"user\");\n addSections(\n await loadInstructionResourcesForPrompt(\n owner,\n \"personal-instruction\",\n promptResourceMaxChars,\n compact,\n ),\n \"user\",\n );\n }\n\n const resourceSkillsBlock = await loadResourceSkillsPromptBlock(owner, orgId);\n addSection(resourceSkillsBlock);\n\n let sharedLearnings: Awaited<ReturnType<typeof resourceGetByPath>> = null;\n try {\n sharedLearnings =\n (organizationOwner !== SHARED_OWNER\n ? await resourceGetByPath(organizationOwner, \"LEARNINGS.md\")\n : null) ?? (await resourceGetByPath(SHARED_OWNER, \"LEARNINGS.md\"));\n } catch {}\n\n if (compact) {\n // Integration/Slack turns use compact context, but organization learnings\n // are operational routing input, not optional background. Preload the\n // bounded shared file so canonical destinations/fields are available on\n // the first turn; keep personal memory on-demand to preserve the compact\n // budget.\n if (sharedLearnings?.content?.trim()) {\n const block = promptResourceBlock({\n name: \"LEARNINGS.md\",\n scope: \"shared\",\n path: \"LEARNINGS.md\",\n content: sharedLearnings.content,\n maxChars: COMPACT_PROMPT_RESOURCE_MAX_CHARS,\n });\n addSection(block);\n }\n // The pointer to on-demand learnings/memory must survive trimming: without\n // it the agent has no way to learn those scopes exist at all.\n addSection(\n `<context-note>Organization learnings above and your personal memory (memory/MEMORY.md) are available via the \\`resources\\` tool. Save durable team facts and routing conventions to shared LEARNINGS.md; keep personal preferences in save-memory.</context-note>`,\n \"required\",\n );\n } else {\n // LEARNINGS.md from SQL (template-level instructions are in AGENTS.md\n // above). Capped like every other prompt resource — an unbounded team\n // notes file would otherwise inline in full on every non-lazy request.\n if (sharedLearnings?.content?.trim()) {\n const block = promptResourceBlock({\n name: \"LEARNINGS.md\",\n scope: \"shared\",\n path: \"LEARNINGS.md\",\n content: sharedLearnings.content,\n maxChars: SHARED_PROMPT_RESOURCE_MAX_CHARS,\n });\n addSection(block);\n }\n\n // 3. Personal memory index (skip if owner is the shared sentinel).\n // Same cap as LEARNINGS.md — a large personal MEMORY.md index must not\n // inline without bound just because this request opted out of lazy\n // context.\n if (owner !== SHARED_OWNER) {\n try {\n const memoryIndex = await resourceGetByPath(owner, \"memory/MEMORY.md\");\n if (memoryIndex?.content?.trim()) {\n const block = promptResourceBlock({\n name: \"memory/MEMORY.md\",\n scope: \"personal\",\n path: \"memory/MEMORY.md\",\n content: memoryIndex.content,\n maxChars: SHARED_PROMPT_RESOURCE_MAX_CHARS,\n });\n addSection(block, \"user\");\n }\n } catch {}\n }\n }\n\n const workspaceResourceIndex = await loadResourceIndexForPrompt(\n WORKSPACE_OWNER,\n \"workspace\",\n );\n addSection(workspaceResourceIndex);\n\n const appDefaultResourceIndex = await loadResourceIndexForPrompt(\n SHARED_OWNER,\n \"shared\",\n );\n addSection(appDefaultResourceIndex);\n if (organizationOwner !== SHARED_OWNER) {\n const organizationResourceIndex = await loadResourceIndexForPrompt(\n organizationOwner,\n \"shared\",\n );\n addSection(organizationResourceIndex);\n }\n\n addSections(\n await loadPromptContextProviderBlocks({\n owner,\n compact,\n selfAppId,\n orgId,\n }),\n );\n\n try {\n const agents = (await discoverAgents(selfAppId)).slice(0, 30);\n if (agents.length > 0) {\n const lines = agents.map(\n (agent) =>\n `- ${agent.name} (${agent.id}) — ${agent.description || \"Connected A2A app\"}`,\n );\n // Nothing else in the prompt or the initial tool surface tells the agent\n // which peer apps exist, so this block is not droppable: without it the\n // agent reports cross-app work as impossible instead of delegating.\n addSection(\n `<available-apps>\\nWorkspace apps available over A2A/call-agent:\\n${lines.join(\"\\n\")}\\n\\nUse \\`call-agent\\` with the app id when another app owns the work or data. Use tool-search or app-specific actions for details only when needed.\\n\\nThese one-liners are the only cross-app detail in this prompt. Before building a capability another app may already own, before telling the user what is or is not possible across apps, and whenever the user asks which app to use, call \\`describe-workspace-apps\\` — it reads each peer's live agent card and returns their exact callable actions. Never hand-maintain a list of workspace apps in code or docs; it goes stale silently.\\n</available-apps>`,\n \"required\",\n );\n }\n } catch {\n // Agent discovery is helpful context, not required for the run.\n }\n\n if (sections.length === 0) return \"\";\n let selectedSections = sections.map((section) => section.content);\n if (compact) {\n const budget = selectPromptSectionsWithinBudget(\n sections,\n COMPACT_PROMPT_RESOURCES_TOTAL_MAX_CHARS,\n );\n selectedSections = budget.sections;\n if (budget.skipped.length > 0) {\n console.warn(\n `[agent-native] startup context exceeded the ${COMPACT_PROMPT_RESOURCES_TOTAL_MAX_CHARS.toLocaleString()}-character compact budget for ${selfAppId ?? \"app\"}; omitted ${budget.skipped.length} discretionary section(s): ${budget.skipped\n .map((section) => `${section.label} (${section.chars} chars)`)\n .join(\", \")}`,\n );\n }\n if (budget.overflowChars > 0) {\n console.warn(\n `[agent-native] required startup context alone exceeds the compact budget by ${budget.overflowChars.toLocaleString()} characters for ${selfAppId ?? \"app\"}; sending it over budget rather than truncating required context. Shrink workspace-core AGENTS.md or reduce discovered workspace apps.`,\n );\n }\n }\n return (\n \"\\n\\nThe following resources contain template-specific instructions and user context. Use the information in them to help the user.\\n\\n\" +\n selectedSections.join(\"\\n\\n\")\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"script-entries.d.ts","sourceRoot":"","sources":["../../../src/server/agent-chat/script-entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAQnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAwDvE;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,GAAE,iBAA0B,EAChC,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAkJtC;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CACtD,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAC5B,CAwEA;AAED;;GAEG;AACH,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAW3E;AAED,wBAAsB,2BAA2B,IAAI,OAAO,CAC1D,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAC5B,CAuPA;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CACtD,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAC5B,CAqJA;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAqBtC;AAED;;;GAGG;AACH,wBAAsB,oCAAoC,IAAI,OAAO,CACnE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAC5B,CAUA;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAYtC"}
1
+ {"version":3,"file":"script-entries.d.ts","sourceRoot":"","sources":["../../../src/server/agent-chat/script-entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAQnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAyDvE;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,GAAE,iBAA0B,EAChC,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAkJtC;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CACtD,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAC5B,CAwEA;AAED;;GAEG;AACH,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAW3E;AAED,wBAAsB,2BAA2B,IAAI,OAAO,CAC1D,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAC5B,CAuPA;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CACtD,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAC5B,CAqJA;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAqBtC;AAED;;;GAGG;AACH,wBAAsB,oCAAoC,IAAI,OAAO,CACnE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAC5B,CAUA;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAwBtC"}
@@ -1,7 +1,7 @@
1
1
  import { renameThread, resolveThreadAccess, setThreadArchived, setThreadPinned, } from "../../chat-threads/store.js";
2
2
  import { dbExecToolParameters } from "../../scripts/db/tool-schemas.js";
3
3
  import { captureCliOutput } from "../cli-capture.js";
4
- import { getRequestOrgId, getRequestRunContext, getRequestUserEmail, } from "../request-context.js";
4
+ import { getAmbientUserEmail, getRequestOrgId, getRequestRunContext, getRequestUserEmail, } from "../request-context.js";
5
5
  // ---------------------------------------------------------------------------
6
6
  // CLI-script-backed action entries: db-*, docs-search/source-search,
7
7
  // resources/save-memory/delete-memory, chat-history, manage-agent-engine,
@@ -375,7 +375,7 @@ export async function createResourceScriptEntries() {
375
375
  ? store.sharedResourceOwner(getRequestOrgId())
376
376
  : (getRequestRunContext()?.owner ??
377
377
  getRequestUserEmail() ??
378
- process.env.AGENT_USER_EMAIL);
378
+ getAmbientUserEmail());
379
379
  if (!owner) {
380
380
  return "Error: promote requires an authenticated user";
381
381
  }
@@ -631,17 +631,27 @@ export async function createAgentLoopSettingsScriptEntries() {
631
631
  * Binds selfAppId so the agent cannot call itself via call-agent.
632
632
  */
633
633
  export async function createCallAgentScriptEntry(selfAppId) {
634
+ const entries = {};
634
635
  try {
635
636
  const mod = await import("../../scripts/call-agent.js");
636
- return {
637
- "call-agent": {
638
- tool: mod.tool,
639
- run: (args, context) => mod.run(args, context, selfAppId),
640
- },
637
+ entries["call-agent"] = {
638
+ tool: mod.tool,
639
+ run: (args, context) => mod.run(args, context, selfAppId),
641
640
  };
642
641
  }
643
642
  catch {
644
- return {};
643
+ // A missing built-in leaves the rest of the toolset usable.
645
644
  }
645
+ try {
646
+ const mod = await import("../../scripts/describe-workspace-apps.js");
647
+ entries["describe-workspace-apps"] = {
648
+ tool: mod.tool,
649
+ run: (args, context) => mod.run(args, context, selfAppId),
650
+ };
651
+ }
652
+ catch {
653
+ // A missing built-in leaves the rest of the toolset usable.
654
+ }
655
+ return entries;
646
656
  }
647
657
  //# sourceMappingURL=script-entries.js.map