@agent-native/core 0.141.7 → 0.144.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/agent-native.eject.json +9 -0
  2. package/corpus/README.md +1 -1
  3. package/corpus/templates/analytics/.agents/skills/provider-api/SKILL.md +19 -0
  4. package/corpus/templates/analytics/.agents/skills/turn-into-app/SKILL.md +296 -0
  5. package/corpus/templates/analytics/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  6. package/corpus/templates/analytics/.agents/skills/turn-into-skill/SKILL.md +112 -0
  7. package/corpus/templates/analytics/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  8. package/corpus/templates/analytics/AGENTS.md +35 -38
  9. package/corpus/templates/analytics/actions/ensure-native-v2-dashboards.ts +1 -1
  10. package/corpus/templates/analytics/actions/list-dashboard-usage-stats.ts +17 -22
  11. package/corpus/templates/analytics/actions/migrate-first-party-analytics-to-bigquery.ts +1 -1
  12. package/corpus/templates/analytics/actions/navigate.ts +4 -5
  13. package/corpus/templates/analytics/actions/provider-api-register.ts +50 -0
  14. package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +44 -11
  15. package/corpus/templates/analytics/actions/test-custom-api-connection.ts +106 -0
  16. package/corpus/templates/analytics/app/components/CustomApiCard.tsx +430 -0
  17. package/corpus/templates/analytics/app/i18n-data.ts +680 -0
  18. package/corpus/templates/analytics/app/lib/native-mcp-exclusions.ts +6 -0
  19. package/corpus/templates/analytics/app/lib/sql-query.ts +33 -6
  20. package/corpus/templates/analytics/app/pages/DataSources.tsx +4 -0
  21. package/corpus/templates/analytics/changelog/2026-08-06-analytics-dashboards-load-reliably-during-background-data-sw.md +6 -0
  22. package/corpus/templates/analytics/changelog/2026-08-06-analytics-dashboards-remain-responsive-while-historical-data.md +6 -0
  23. package/corpus/templates/analytics/changelog/2026-08-06-analytics-query-results-now-render-as-a-table-with-csv-downl.md +6 -0
  24. package/corpus/templates/analytics/changelog/2026-08-06-connect-public-https-custom-apis-and-hand-tested-endpoints-t.md +6 -0
  25. package/corpus/templates/analytics/changelog/2026-08-06-durable-agent-worker-memory.md +6 -0
  26. package/corpus/templates/analytics/changelog/2026-08-06-live-dashboard-panels-use-the-shared-query-timeout.md +6 -0
  27. package/corpus/templates/analytics/changelog/2026-08-06-on-demand-billing-is-available-as-a-native-dashboard-with-ta.md +6 -0
  28. package/corpus/templates/analytics/changelog/2026-08-06-visible-dashboard-names-are-unique.md +6 -0
  29. package/corpus/templates/analytics/netlify.toml +7 -0
  30. package/corpus/templates/analytics/scripts/emit-netlify-dashboard-report-cron.ts +4 -0
  31. package/corpus/templates/analytics/server/db/index.ts +27 -0
  32. package/corpus/templates/analytics/server/db/schema.ts +10 -0
  33. package/corpus/templates/analytics/server/lib/dashboards-store.ts +227 -60
  34. package/corpus/templates/analytics/server/lib/first-party-analytics-backend.ts +156 -45
  35. package/corpus/templates/analytics/server/lib/native-v2-dashboards.ts +227 -1
  36. package/corpus/templates/analytics/server/plugins/agent-chat.ts +5 -0
  37. package/corpus/templates/analytics/server/plugins/analytics-rollup-backfill-jobs.ts +1 -0
  38. package/corpus/templates/analytics/server/plugins/db.ts +52 -18
  39. package/corpus/templates/assets/.agents/skills/asset-generation/SKILL.md +28 -2
  40. package/corpus/templates/assets/.agents/skills/image-generation/SKILL.md +16 -1
  41. package/corpus/templates/assets/.agents/skills/turn-into-app/SKILL.md +296 -0
  42. package/corpus/templates/assets/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  43. package/corpus/templates/assets/.agents/skills/turn-into-skill/SKILL.md +112 -0
  44. package/corpus/templates/assets/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  45. package/corpus/templates/brain/.agents/skills/turn-into-app/SKILL.md +296 -0
  46. package/corpus/templates/brain/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  47. package/corpus/templates/brain/.agents/skills/turn-into-skill/SKILL.md +112 -0
  48. package/corpus/templates/brain/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  49. package/corpus/templates/brain/actions/list-connection-providers.ts +24 -3
  50. package/corpus/templates/brain/app/lib/dispatch-links.ts +44 -0
  51. package/corpus/templates/brain/app/routes/sources.tsx +15 -7
  52. package/corpus/templates/brain/changelog/2026-08-06-brain-provider-setup-links-open-dispatch-correctly-in-standa.md +6 -0
  53. package/corpus/templates/brain/server/plugins/agent-chat.ts +1 -0
  54. package/corpus/templates/calendar/.agents/skills/event-management/SKILL.md +26 -0
  55. package/corpus/templates/calendar/.agents/skills/turn-into-app/SKILL.md +296 -0
  56. package/corpus/templates/calendar/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  57. package/corpus/templates/calendar/.agents/skills/turn-into-skill/SKILL.md +112 -0
  58. package/corpus/templates/calendar/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  59. package/corpus/templates/calendar/AGENTS.md +11 -32
  60. package/corpus/templates/calendar/actions/update-event.ts +107 -1
  61. package/corpus/templates/calendar/app/components/calendar/EventCalendarSelect.tsx +83 -0
  62. package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +57 -0
  63. package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +59 -73
  64. package/corpus/templates/calendar/app/hooks/use-events.ts +4 -1
  65. package/corpus/templates/calendar/app/i18n-data.ts +20 -0
  66. package/corpus/templates/calendar/changelog/2026-08-06-delegated-requests-continue-in-the-background.md +6 -0
  67. package/corpus/templates/calendar/changelog/2026-08-06-existing-events-can-move-between-connected-google-account-ca.md +6 -0
  68. package/corpus/templates/calendar/server/lib/google-calendar.ts +101 -0
  69. package/corpus/templates/calendar/server/plugins/agent-chat.ts +7 -1
  70. package/corpus/templates/chat/.agents/skills/turn-into-app/SKILL.md +296 -0
  71. package/corpus/templates/chat/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  72. package/corpus/templates/chat/.agents/skills/turn-into-skill/SKILL.md +112 -0
  73. package/corpus/templates/chat/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  74. package/corpus/templates/clips/.agents/skills/turn-into-app/SKILL.md +296 -0
  75. package/corpus/templates/clips/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  76. package/corpus/templates/clips/.agents/skills/turn-into-skill/SKILL.md +112 -0
  77. package/corpus/templates/clips/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  78. package/corpus/templates/clips/app/components/editor/editor-layout.tsx +9 -24
  79. package/corpus/templates/clips/app/components/editor/timeline-geometry.ts +15 -0
  80. package/corpus/templates/clips/app/components/editor/waveform.tsx +4 -17
  81. package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +14 -3
  82. package/corpus/templates/clips/app/components/player/player-controls.tsx +0 -3
  83. package/corpus/templates/clips/app/components/player/scrubber.tsx +2 -33
  84. package/corpus/templates/clips/app/components/player/video-player.tsx +58 -11
  85. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +28 -38
  86. package/corpus/templates/clips/app/routes/share.$shareId.tsx +21 -27
  87. package/corpus/templates/clips/changelog/2026-08-06-clips-recovers-from-stalled-recording-setup-without-requirin.md +6 -0
  88. package/corpus/templates/clips/changelog/2026-08-06-clips-starts-faster-after-a-deploy-or-idle-period-startup-no.md +6 -0
  89. package/corpus/templates/clips/changelog/2026-08-06-deleting-a-recording-returns-cleanly-to-the-library-and-fit-.md +6 -0
  90. package/corpus/templates/clips/changelog/2026-08-06-hide-clip-insights-from-viewers-without-analytics-access.md +6 -0
  91. package/corpus/templates/clips/changelog/2026-08-06-trimmed-clips-play-on-a-clean-timeline-without-cut-markers.md +6 -0
  92. package/corpus/templates/clips/desktop/src/app.tsx +48 -20
  93. package/corpus/templates/clips/desktop/src/lib/recorder.ts +275 -74
  94. package/corpus/templates/clips/desktop/src/lib/recording-start-guard.ts +84 -0
  95. package/corpus/templates/clips/desktop/src/overlays/toolbar.tsx +14 -4
  96. package/corpus/templates/clips/server/plugins/db.ts +214 -26
  97. package/corpus/templates/content/.agents/skills/turn-into-app/SKILL.md +296 -0
  98. package/corpus/templates/content/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  99. package/corpus/templates/content/.agents/skills/turn-into-skill/SKILL.md +112 -0
  100. package/corpus/templates/content/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  101. package/corpus/templates/crm/.agents/skills/turn-into-app/SKILL.md +296 -0
  102. package/corpus/templates/crm/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  103. package/corpus/templates/crm/.agents/skills/turn-into-skill/SKILL.md +112 -0
  104. package/corpus/templates/crm/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  105. package/corpus/templates/crm/changelog/2026-08-06-crm-starts-faster-after-a-deploy-or-idle-period-one-time-dat.md +6 -0
  106. package/corpus/templates/crm/server/plugins/db.ts +11 -8
  107. package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +36 -1
  108. package/corpus/templates/design/.agents/skills/turn-into-app/SKILL.md +296 -0
  109. package/corpus/templates/design/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  110. package/corpus/templates/design/.agents/skills/turn-into-skill/SKILL.md +112 -0
  111. package/corpus/templates/design/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  112. package/corpus/templates/design/actions/import-from-url.ts +1 -1
  113. package/corpus/templates/design/app/components/design/LayersPanel.tsx +27 -18
  114. package/corpus/templates/design/app/pages/Index.tsx +6 -2
  115. package/corpus/templates/design/changelog/2026-08-05-deleting-a-design-from-the-home-page-no-longer-leaves-the-ap.md +6 -0
  116. package/corpus/templates/design/changelog/2026-08-05-renaming-a-layer-now-focuses-its-name-field-automatically.md +6 -0
  117. package/corpus/templates/design/server/plugins/agent-chat.ts +2 -0
  118. package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +296 -0
  119. package/corpus/templates/dispatch/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  120. package/corpus/templates/dispatch/.agents/skills/turn-into-skill/SKILL.md +112 -0
  121. package/corpus/templates/dispatch/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  122. package/corpus/templates/dispatch/AGENTS.md +8 -1
  123. package/corpus/templates/dispatch/app/dispatch-extensions.tsx +1 -0
  124. package/corpus/templates/dispatch/app/hooks/use-navigation-state.ts +30 -15
  125. package/corpus/templates/dispatch/app/i18n-data.ts +131 -0
  126. package/corpus/templates/dispatch/app/routes/admin._index.tsx +4 -0
  127. package/corpus/templates/dispatch/app/routes/admin.agents.tsx +1 -0
  128. package/corpus/templates/dispatch/app/routes/admin.approvals.tsx +1 -0
  129. package/corpus/templates/dispatch/app/routes/admin.apps.$appId.tsx +1 -0
  130. package/corpus/templates/dispatch/app/routes/admin.apps.tsx +1 -0
  131. package/corpus/templates/dispatch/app/routes/admin.audit.tsx +1 -0
  132. package/corpus/templates/dispatch/app/routes/admin.automations.tsx +1 -0
  133. package/corpus/templates/dispatch/app/routes/admin.destinations.tsx +4 -0
  134. package/corpus/templates/dispatch/app/routes/admin.dreams.tsx +1 -0
  135. package/corpus/templates/dispatch/app/routes/admin.identities.tsx +1 -0
  136. package/corpus/templates/dispatch/app/routes/admin.integrations.tsx +4 -0
  137. package/corpus/templates/dispatch/app/routes/admin.messaging.tsx +1 -0
  138. package/corpus/templates/dispatch/app/routes/admin.metrics.tsx +1 -0
  139. package/corpus/templates/dispatch/app/routes/admin.new-app.tsx +1 -0
  140. package/corpus/templates/dispatch/app/routes/admin.operations.tsx +1 -0
  141. package/corpus/templates/dispatch/app/routes/admin.thread-debug.tsx +4 -0
  142. package/corpus/templates/dispatch/app/routes/admin.transactional-email.$appId.$id.tsx +4 -0
  143. package/corpus/templates/dispatch/app/routes/admin.transactional-email.tsx +4 -0
  144. package/corpus/templates/dispatch/app/routes/admin.tsx +1 -0
  145. package/corpus/templates/dispatch/app/routes/admin.vault.tsx +1 -0
  146. package/corpus/templates/dispatch/app/routes/admin.workspace.tsx +1 -0
  147. package/corpus/templates/dispatch/changelog/2026-08-06-dispatch-keeps-everyday-navigation-focused-while-management-.md +6 -0
  148. package/corpus/templates/dispatch/changelog/2026-08-06-ready-workspace-apps-stay-one-click-away-in-a-compact-dispat.md +6 -0
  149. package/corpus/templates/dispatch/changelog/2026-08-06-shared-vault-values-and-management-are-now-restricted-to-wor.md +6 -0
  150. package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +296 -0
  151. package/corpus/templates/factory/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  152. package/corpus/templates/factory/.agents/skills/turn-into-skill/SKILL.md +112 -0
  153. package/corpus/templates/factory/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  154. package/corpus/templates/forms/.agents/skills/turn-into-app/SKILL.md +296 -0
  155. package/corpus/templates/forms/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  156. package/corpus/templates/forms/.agents/skills/turn-into-skill/SKILL.md +112 -0
  157. package/corpus/templates/forms/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  158. package/corpus/templates/forms/changelog/2026-08-06-delegated-requests-continue-in-the-background.md +6 -0
  159. package/corpus/templates/forms/server/plugins/agent-chat.ts +4 -0
  160. package/corpus/templates/macros/.agents/skills/turn-into-app/SKILL.md +296 -0
  161. package/corpus/templates/macros/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  162. package/corpus/templates/macros/.agents/skills/turn-into-skill/SKILL.md +112 -0
  163. package/corpus/templates/macros/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  164. package/corpus/templates/mail/.agents/skills/turn-into-app/SKILL.md +296 -0
  165. package/corpus/templates/mail/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  166. package/corpus/templates/mail/.agents/skills/turn-into-skill/SKILL.md +112 -0
  167. package/corpus/templates/mail/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  168. package/corpus/templates/mail/changelog/2026-08-06-delegated-requests-continue-in-the-background.md +6 -0
  169. package/corpus/templates/mail/server/plugins/agent-chat.ts +6 -0
  170. package/corpus/templates/plan/.agents/skills/turn-into-app/SKILL.md +296 -0
  171. package/corpus/templates/plan/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  172. package/corpus/templates/plan/.agents/skills/turn-into-skill/SKILL.md +112 -0
  173. package/corpus/templates/plan/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  174. package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +48 -5
  175. package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +37 -1
  176. package/corpus/templates/slides/.agents/skills/image-generation-via-a2a/SKILL.md +6 -0
  177. package/corpus/templates/slides/.agents/skills/slide-editing/SKILL.md +15 -2
  178. package/corpus/templates/slides/.agents/skills/slide-images/SKILL.md +29 -24
  179. package/corpus/templates/slides/.agents/skills/turn-into-app/SKILL.md +296 -0
  180. package/corpus/templates/slides/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  181. package/corpus/templates/slides/.agents/skills/turn-into-skill/SKILL.md +112 -0
  182. package/corpus/templates/slides/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  183. package/corpus/templates/slides/AGENTS.md +17 -21
  184. package/corpus/templates/slides/_gitignore +1 -0
  185. package/corpus/templates/slides/actions/export-pptx.ts +470 -36
  186. package/corpus/templates/slides/actions/get-deck.ts +12 -0
  187. package/corpus/templates/slides/actions/import-file.ts +175 -139
  188. package/corpus/templates/slides/actions/import-google-slides-reference.ts +271 -12
  189. package/corpus/templates/slides/actions/import-pptx.ts +193 -68
  190. package/corpus/templates/slides/actions/patch-deck.ts +51 -0
  191. package/corpus/templates/slides/actions/update-slide.ts +29 -3
  192. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +10 -13
  193. package/corpus/templates/slides/app/components/editor/AddSlidePopover.tsx +5 -1
  194. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +25 -12
  195. package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +112 -57
  196. package/corpus/templates/slides/app/components/editor/GoogleDriveConnectionCta.tsx +202 -0
  197. package/corpus/templates/slides/app/components/editor/GoogleSlidesReferenceImport.tsx +26 -14
  198. package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +173 -0
  199. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +182 -141
  200. package/corpus/templates/slides/app/components/editor/canvas-interactions/index.ts +1 -0
  201. package/corpus/templates/slides/app/components/editor/canvas-interactions/slides-canvas-adapter.ts +18 -0
  202. package/corpus/templates/slides/app/components/editor/slide-text-targets.ts +85 -0
  203. package/corpus/templates/slides/app/components/layout/Layout.tsx +3 -0
  204. package/corpus/templates/slides/app/components/onboarding/FirstDeckOnboardingFlow.tsx +15 -0
  205. package/corpus/templates/slides/app/components/presentation/PresentationView.tsx +27 -1
  206. package/corpus/templates/slides/app/i18n/en-US.ts +1 -0
  207. package/corpus/templates/slides/app/lib/create-deck-generation.ts +72 -11
  208. package/corpus/templates/slides/app/lib/deck-preview-frame.ts +15 -0
  209. package/corpus/templates/slides/app/lib/deck-share-links.ts +9 -0
  210. package/corpus/templates/slides/app/lib/export-pptx-client.ts +89 -0
  211. package/corpus/templates/slides/app/lib/import-uploaded-deck.ts +89 -0
  212. package/corpus/templates/slides/app/lib/slide-animation-elements.ts +3 -0
  213. package/corpus/templates/slides/app/pages/Index.tsx +172 -15
  214. package/corpus/templates/slides/changelog/2026-08-06-clicking-the-gray-canvas-around-a-slide-clears-its-selection.md +6 -0
  215. package/corpus/templates/slides/changelog/2026-08-06-deck-thumbnails-keep-a-consistent-listing-frame-across-aspec.md +6 -0
  216. package/corpus/templates/slides/changelog/2026-08-06-deep-linked-decks-open-directly-instead-of-being-interrupted.md +6 -0
  217. package/corpus/templates/slides/changelog/2026-08-06-google-slides-exports-now-show-clear-import-steps-when-direc.md +6 -0
  218. package/corpus/templates/slides/changelog/2026-08-06-import-pdf-google-slides-and-powerpoint-decks-directly-from-.md +6 -0
  219. package/corpus/templates/slides/changelog/2026-08-06-imported-powerpoint-exports-keep-text-and-images-editable-an.md +6 -0
  220. package/corpus/templates/slides/changelog/2026-08-06-presentation-prompts-continue-adding-rendered-slides-until-t.md +6 -0
  221. package/corpus/templates/slides/changelog/2026-08-06-public-decks-now-share-read-only-presentation-links-by-defau.md +6 -0
  222. package/corpus/templates/slides/changelog/2026-08-06-slides-offers-a-direct-connect-google-button-when-a-drive-co.md +6 -0
  223. package/corpus/templates/slides/changelog/2026-08-06-slides-preserve-uploaded-pdf-layouts-accept-larger-reference.md +6 -0
  224. package/corpus/templates/slides/changelog/2026-08-06-styled-words-stay-part-of-their-text-box-instead-of-becoming.md +6 -0
  225. package/corpus/templates/slides/changelog/2026-08-06-uploaded-decks-keep-their-slides-and-visuals-when-you-improv.md +6 -0
  226. package/corpus/templates/slides/server/handlers/google-docs-auth.ts +7 -20
  227. package/corpus/templates/slides/server/handlers/import/html-converter.ts +247 -13
  228. package/corpus/templates/slides/server/handlers/import/pptx-assets.ts +67 -0
  229. package/corpus/templates/slides/server/handlers/import/pptx-parser.ts +2 -0
  230. package/corpus/templates/slides/server/handlers/uploads.ts +7 -3
  231. package/corpus/templates/slides/server/lib/chat-attachments.ts +7 -4
  232. package/corpus/templates/slides/server/lib/emails.ts +7 -2
  233. package/corpus/templates/slides/server/lib/google-docs-error.ts +50 -0
  234. package/corpus/templates/slides/server/lib/google-docs-oauth.ts +1 -0
  235. package/corpus/templates/slides/server/lib/import-asset-storage.ts +127 -0
  236. package/corpus/templates/slides/server/lib/source-import.ts +167 -0
  237. package/corpus/templates/slides/server/plugins/agent-chat.ts +12 -3
  238. package/corpus/templates/slides/server/routes/api/import-assets/[token].get.ts +70 -0
  239. package/corpus/templates/slides/shared/upload-types.ts +3 -0
  240. package/corpus/templates/tasks/.agents/skills/turn-into-app/SKILL.md +296 -0
  241. package/corpus/templates/tasks/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  242. package/corpus/templates/tasks/.agents/skills/turn-into-skill/SKILL.md +112 -0
  243. package/corpus/templates/tasks/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  244. package/dist/agent/production-agent.d.ts +17 -0
  245. package/dist/agent/production-agent.js +72 -1
  246. package/dist/cli/agent-plugin.d.ts +112 -0
  247. package/dist/cli/agent-plugin.js +1081 -0
  248. package/dist/cli/app-skill.js +39 -1
  249. package/dist/cli/code-agent-executor.d.ts +3 -0
  250. package/dist/cli/code-agent-executor.js +51 -13
  251. package/dist/cli/index.js +13 -0
  252. package/dist/cli/templates-meta.js +1 -1
  253. package/dist/client/AgentPanel.d.ts +3 -1
  254. package/dist/client/AgentPanel.js +9 -2
  255. package/dist/client/AssistantChat.d.ts +8 -0
  256. package/dist/client/AssistantChat.js +23 -8
  257. package/dist/client/NewWorkspaceAppFlow.js +1 -0
  258. package/dist/client/agent-chat-adapter.js +123 -4
  259. package/dist/client/assistant-ui-recovery.d.ts +2 -1
  260. package/dist/client/assistant-ui-recovery.js +7 -3
  261. package/dist/client/onboarding/FirstRunOnboarding.js +11 -4
  262. package/dist/client/org/TeamPage.js +1 -1
  263. package/dist/client/require-session.js +1 -1
  264. package/dist/client/resources/McpConnectionSuggestion.d.ts +1 -0
  265. package/dist/client/resources/McpConnectionSuggestion.js +27 -10
  266. package/dist/client/resources/McpIntegrationDialog.js +77 -45
  267. package/dist/client/resources/mcp-integration-catalog.d.ts +13 -1
  268. package/dist/client/resources/mcp-integration-catalog.js +255 -2
  269. package/dist/client/resources/mcp-integration-logos.js +18 -2
  270. package/dist/client/settings/AccountSettingsCard.js +2 -1
  271. package/dist/collab/struct-routes.d.ts +1 -1
  272. package/dist/db/client.d.ts +9 -0
  273. package/dist/db/client.js +51 -16
  274. package/dist/db/create-get-db.js +2 -2
  275. package/dist/db/ddl-guard.d.ts +11 -10
  276. package/dist/db/ddl-guard.js +40 -12
  277. package/dist/deploy/build.d.ts +2 -0
  278. package/dist/deploy/build.js +97 -4
  279. package/dist/deploy/workspace-deploy.js +0 -2
  280. package/dist/file-upload/actions/upload-image.d.ts +1 -1
  281. package/dist/guards/no-env-credentials.js +9 -0
  282. package/dist/ingestion/index.d.ts +1 -1
  283. package/dist/ingestion/pptx.d.ts +68 -0
  284. package/dist/ingestion/pptx.js +660 -213
  285. package/dist/integrations/plugin.js +9 -6
  286. package/dist/jobs/scheduler.js +79 -23
  287. package/dist/localization/default-messages.d.ts +54 -0
  288. package/dist/localization/default-messages.js +57 -2
  289. package/dist/mcp/screen-memory-stdio.d.ts +7 -7
  290. package/dist/mcp-client/oauth-routes.d.ts +2 -0
  291. package/dist/mcp-client/oauth-routes.js +73 -6
  292. package/dist/observability/routes.d.ts +5 -5
  293. package/dist/onboarding/app-profile.js +11 -0
  294. package/dist/progress/routes.d.ts +1 -1
  295. package/dist/resources/handlers.d.ts +1 -1
  296. package/dist/resources/store.js +15 -1
  297. package/dist/scripts/call-agent.js +34 -4
  298. package/dist/secrets/routes.d.ts +3 -3
  299. package/dist/server/agent-chat/action-filters-a2a.d.ts +1 -1
  300. package/dist/server/agent-chat/action-filters-a2a.js +36 -1
  301. package/dist/server/agent-chat-plugin.js +29 -8
  302. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  303. package/dist/server/auth.js +47 -11
  304. package/dist/server/better-auth-instance.js +5 -3
  305. package/dist/server/core-routes-plugin.d.ts +8 -1
  306. package/dist/server/core-routes-plugin.js +28 -3
  307. package/dist/server/credential-provider.d.ts +3 -3
  308. package/dist/server/credential-provider.js +90 -4
  309. package/dist/server/onboarding-html.d.ts +2 -0
  310. package/dist/server/onboarding-html.js +115 -29
  311. package/dist/server/realtime-token.d.ts +1 -1
  312. package/dist/server/self-dispatch.d.ts +5 -4
  313. package/dist/server/self-dispatch.js +25 -14
  314. package/dist/server/ssr-handler.d.ts +1 -1
  315. package/dist/server/ssr-handler.js +1 -1
  316. package/dist/server/transcribe-voice.d.ts +1 -1
  317. package/dist/shared/cache-control.d.ts +26 -2
  318. package/dist/shared/cache-control.js +43 -2
  319. package/dist/shared/password-policy.d.ts +3 -0
  320. package/dist/shared/password-policy.js +3 -0
  321. package/dist/sharing/actions/set-resource-visibility.js +16 -4
  322. package/dist/sharing/registry.d.ts +14 -0
  323. package/dist/styles/agent-native.css +6 -0
  324. package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +296 -0
  325. package/dist/templates/chat/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  326. package/dist/templates/chat/.agents/skills/turn-into-skill/SKILL.md +112 -0
  327. package/dist/templates/chat/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  328. package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +296 -0
  329. package/dist/templates/default/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  330. package/dist/templates/default/.agents/skills/turn-into-skill/SKILL.md +112 -0
  331. package/dist/templates/default/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  332. package/dist/templates/headless/.agents/skills/turn-into-app/SKILL.md +296 -0
  333. package/dist/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  334. package/dist/templates/headless/.agents/skills/turn-into-skill/SKILL.md +112 -0
  335. package/dist/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  336. package/dist/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +6 -0
  337. package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +51 -0
  338. package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +296 -0
  339. package/dist/templates/workspace-core/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  340. package/dist/templates/workspace-core/.agents/skills/turn-into-skill/SKILL.md +112 -0
  341. package/dist/templates/workspace-core/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  342. package/dist/templates/workspace-root/AGENTS.md +7 -0
  343. package/dist/user-profile/actions/change-password.js +8 -3
  344. package/dist/user-profile/actions/set-password.js +5 -1
  345. package/dist/vite/action-types-plugin.js +59 -0
  346. package/docs/content/creating-templates.mdx +1 -1
  347. package/docs/content/getting-started-actions.mdx +38 -189
  348. package/docs/content/getting-started-database.mdx +80 -164
  349. package/docs/content/getting-started-pages.mdx +44 -155
  350. package/docs/content/getting-started.mdx +26 -106
  351. package/docs/content/skills-guide.mdx +13 -0
  352. package/package.json +6 -2
  353. package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +296 -0
  354. package/src/templates/chat/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  355. package/src/templates/chat/.agents/skills/turn-into-skill/SKILL.md +112 -0
  356. package/src/templates/chat/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  357. package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +296 -0
  358. package/src/templates/default/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  359. package/src/templates/default/.agents/skills/turn-into-skill/SKILL.md +112 -0
  360. package/src/templates/default/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  361. package/src/templates/headless/.agents/skills/turn-into-app/SKILL.md +296 -0
  362. package/src/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  363. package/src/templates/headless/.agents/skills/turn-into-skill/SKILL.md +112 -0
  364. package/src/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  365. package/src/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +6 -0
  366. package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +51 -0
  367. package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +296 -0
  368. package/src/templates/workspace-core/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  369. package/src/templates/workspace-core/.agents/skills/turn-into-skill/SKILL.md +112 -0
  370. package/src/templates/workspace-core/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  371. package/src/templates/workspace-root/AGENTS.md +7 -0
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: turn-into-skill
3
+ description: >-
4
+ Capture a proven thread or workflow as a reusable Agent-Native skill and save
5
+ it as a personal or organization resource. Use when a user invokes
6
+ `/turn-into-skill` or asks to save a workflow for reuse.
7
+ user-invocable: true
8
+ scope: both
9
+ metadata:
10
+ internal: true
11
+ ---
12
+
13
+ # Turn Into Skill
14
+
15
+ This is a packaging-and-save workflow, not a request for a proposal. A skill
16
+ is the lightweight path for a repeatable job that mostly needs guidance and
17
+ existing app actions. Use `turn-into-app` when the job needs a dedicated UI,
18
+ new persistent domain state, or a distinct app route.
19
+
20
+ ## Default behavior
21
+
22
+ - With no argument, use the current thread as the source.
23
+ - With a named skill, local workflow, transcript path, or attachment, read that
24
+ source and package it immediately.
25
+ - Do not ask the user to restate context already present in the source.
26
+ - Default to a personal skill unless the user explicitly asks for a team,
27
+ organization, or all-app skill, or passes `shared` as the scope.
28
+ - If the current thread only discusses creating a skill, do not package that
29
+ meta-workflow unless the user explicitly asks for it.
30
+ - Treat an explicit `/turn-into-skill` invocation as authorization to save the
31
+ resulting skill, but never overwrite an existing skill at the target path
32
+ unless the user clearly asks to update it.
33
+
34
+ ## 1. Extract the repeatable workflow
35
+
36
+ Read the full source before writing. Reduce it to a concise working brief:
37
+
38
+ - the repeatable job and the user outcome;
39
+ - when the skill should trigger;
40
+ - required inputs, context, permissions, and integrations;
41
+ - the ordered steps and the one to three judgment-heavy decisions;
42
+ - expected outputs, verification, retry, and failure boundaries.
43
+
44
+ Preserve the useful judgment from the source, not its transcript. Do not turn
45
+ one-off answers, private data, customer data, secrets, or unverified claims into
46
+ the skill's contract. If no repeatable job can be identified, stop and report
47
+ what is missing instead of inventing generic guidance.
48
+
49
+ ## 2. Author the skill
50
+
51
+ Create a single `SKILL.md` with:
52
+
53
+ - a short hyphen-case name and a description under 40 words that says what the
54
+ skill does and when to use it;
55
+ - `user-invocable: true` so it can be selected from the app's `/` picker;
56
+ - `scope: both` so the saved skill can guide the app runtime and connected
57
+ coding agents;
58
+ - concise sections for purpose, trigger, inputs, workflow, verification, and
59
+ failure or retry behavior.
60
+
61
+ Write imperative, reusable instructions. Keep exact action names, field rules,
62
+ and decision criteria when they matter. Use placeholders for credentials and
63
+ provider data. Do not paste the source transcript, large dumps, or ephemeral
64
+ thread details into the saved skill.
65
+
66
+ Choose a new slug when the target path already exists. Read an existing skill
67
+ before changing it, and update it only when the user explicitly requested an
68
+ update.
69
+
70
+ ## 3. Save at the requested scope
71
+
72
+ Skills are resources at `skills/<slug>/SKILL.md`.
73
+
74
+ | User intent | Save path |
75
+ | --- | --- |
76
+ | Just me or personal reuse | Use the `resources` tool with `action: "write"`, `scope: "personal"`, `visibility: "workspace"`, and the generated skill content. |
77
+ | Shared organization or app reuse | Use the `resources` tool with `action: "write"`, `scope: "shared"`, `visibility: "workspace"`, and the generated skill content. |
78
+ | Every workspace app | Use `create-workspace-resource` with `kind: "skill"`, `scope: "all"`, the generated path, name, description, and content. |
79
+ | Only selected apps | Use the workspace resource flow with `scope: "selected"` only when the user names the app set. |
80
+
81
+ For an all-app workspace skill, use the workspace resource action when it is
82
+ available. If the current app does not expose it, discover or delegate to the
83
+ configured Dispatch workspace agent. Do not silently save a personal skill and
84
+ report it as shared. If organization approval is queued, report that the skill
85
+ is pending approval rather than claiming it is active.
86
+
87
+ Set `visibility: "workspace"` for an explicitly requested saved skill. Use
88
+ `agent_scratch` only for temporary drafting, then promote or rewrite it before
89
+ reporting the skill as saved.
90
+
91
+ ## 4. Verify and hand off
92
+
93
+ After saving, read the exact `skills/<slug>/SKILL.md` resource back at the
94
+ target scope. Confirm that the frontmatter name, trigger description, and full
95
+ workflow body are present. If the read-back fails or the save returned an
96
+ approval request, say so plainly and include the actual pending state.
97
+
98
+ Report:
99
+
100
+ - the skill name and path;
101
+ - whether it is personal, organization-wide, or selected-app;
102
+ - the trigger users can invoke from `/`;
103
+ - the verification result and any approval or setup still required.
104
+
105
+ ## Related skills
106
+
107
+ - `turn-into-app` — package the same source as a UI-bearing app with buttons,
108
+ agent handoffs, and a domain workflow.
109
+ - `create-skill` — general skill format and authoring rules.
110
+ - `capture-learnings` — lightweight memory for preferences and corrections,
111
+ rather than reusable workflows.
112
+ - `self-modifying-code` — safety boundaries when the agent edits app source.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Turn Into Skill"
3
+ short_description: "Save a proven workflow as a reusable skill"
4
+ default_prompt: "Read the current thread, distill the repeatable workflow into a concise user-invocable skill, save it at personal or organization scope, verify the saved resource, and report its path."
@@ -520,6 +520,23 @@ export declare function isCachedToolResultVisibleInContext(contextMessages: Engi
520
520
  name: string;
521
521
  input: unknown;
522
522
  }, cachedResult: string): boolean;
523
+ /**
524
+ * Same tool, same error, ANY arguments. `MAX_IDENTICAL_TOOL_ERRORS` keys on the
525
+ * arguments too, so it only catches a model that repeats itself verbatim — and
526
+ * a model that is genuinely lost does the opposite: it keeps changing the
527
+ * arguments. Every variation mints a fresh key, the count never reaches three,
528
+ * and nothing stops it. That is how a delegated turn burned five minutes
529
+ * against an app that answers the same question in twenty-seven seconds.
530
+ *
531
+ * Higher than the exact-repeat limit on purpose: a capable model reads a schema
532
+ * error and fixes its arguments within a try or two, so this must not cut off
533
+ * honest correction. It only fires once a tool has rejected six attempts the
534
+ * same way, which no amount of further guessing is going to fix.
535
+ *
536
+ * This is the floor that has to hold on ANY model. A stronger model recovering
537
+ * on its own is not a substitute for it — it just hides its absence.
538
+ */
539
+ export declare const MAX_SAME_ERROR_ACROSS_ARGUMENTS = 6;
523
540
  /**
524
541
  * Identical (tool, arguments) invocations tolerated in one turn before the turn
525
542
  * is stopped, whether or not they errored.
@@ -1883,6 +1883,23 @@ export function isCachedToolResultVisibleInContext(contextMessages, toolCall, ca
1883
1883
  const INTERRUPTED_TOOL_RESULT_MARKER = "Interrupted before this tool returned a result.";
1884
1884
  const MAX_WRITE_TOOL_INTERRUPTIONS = 2;
1885
1885
  const MAX_IDENTICAL_TOOL_ERRORS = 3;
1886
+ /**
1887
+ * Same tool, same error, ANY arguments. `MAX_IDENTICAL_TOOL_ERRORS` keys on the
1888
+ * arguments too, so it only catches a model that repeats itself verbatim — and
1889
+ * a model that is genuinely lost does the opposite: it keeps changing the
1890
+ * arguments. Every variation mints a fresh key, the count never reaches three,
1891
+ * and nothing stops it. That is how a delegated turn burned five minutes
1892
+ * against an app that answers the same question in twenty-seven seconds.
1893
+ *
1894
+ * Higher than the exact-repeat limit on purpose: a capable model reads a schema
1895
+ * error and fixes its arguments within a try or two, so this must not cut off
1896
+ * honest correction. It only fires once a tool has rejected six attempts the
1897
+ * same way, which no amount of further guessing is going to fix.
1898
+ *
1899
+ * This is the floor that has to hold on ANY model. A stronger model recovering
1900
+ * on its own is not a substitute for it — it just hides its absence.
1901
+ */
1902
+ export const MAX_SAME_ERROR_ACROSS_ARGUMENTS = 6;
1886
1903
  /**
1887
1904
  * Identical (tool, arguments) invocations tolerated in one turn before the turn
1888
1905
  * is stopped, whether or not they errored.
@@ -2279,8 +2296,29 @@ async function waitForInterruptedToolLedgerEntry(opts) {
2279
2296
  }
2280
2297
  return null;
2281
2298
  }
2299
+ /**
2300
+ * Collapse an error to the part that identifies the FAULT, dropping the part
2301
+ * that merely echoes this attempt's arguments.
2302
+ *
2303
+ * `toolInputSchemaErrorResult` embeds `Received: {…the arguments…}` in every
2304
+ * schema rejection, so a model that keeps changing its arguments produces a new
2305
+ * error string every time. Any breaker keyed on the raw text then sees each
2306
+ * attempt as a first attempt and never counts — which is precisely the
2307
+ * keeps-guessing spiral the argument-independent breaker exists to stop. An
2308
+ * executed counterexample ran 61 turns without it firing.
2309
+ *
2310
+ * Dropping the echoed input costs nothing: the fault is already named by the
2311
+ * sentence before it, and two failures that differ ONLY in the arguments they
2312
+ * echo are the same failure.
2313
+ */
2282
2314
  function normalizeToolErrorForBreaker(error) {
2283
- return error.replace(/\s+/g, " ").trim();
2315
+ return (error
2316
+ // The argument echo, up to the next sentence boundary.
2317
+ .replace(/Received:\s*[\s\S]*?\.\s(?=Expected:|The tool was not executed)/g, "")
2318
+ // Bare JSON payloads some providers inline instead of a Received: span.
2319
+ .replace(/\{[\s\S]{0,2000}?\}/g, "{}")
2320
+ .replace(/\s+/g, " ")
2321
+ .trim());
2284
2322
  }
2285
2323
  function rateLimitRecoveryHint(message) {
2286
2324
  if (!/\b(?:429|rate[-\s]?limit|rate limited|quota exceeded|too many requests|calls limit exceeded)\b/i.test(message)) {
@@ -2935,6 +2973,21 @@ export async function runAgentLoop(opts) {
2935
2973
  const duplicateReadOnlyToolCalls = seedDuplicateReadOnlyToolCallsFromHistory(messages, actions);
2936
2974
  const writeToolInterruptions = seedWriteToolInterruptionsFromHistory(messages, actions);
2937
2975
  const repeatedToolErrors = new Map();
2976
+ // Keyed WITHOUT the arguments — see MAX_SAME_ERROR_ACROSS_ARGUMENTS.
2977
+ //
2978
+ // SEEDED from earlier chunks of this turn, like `toolCallHistory` and
2979
+ // `toolResultHistory` above. A fresh Map here would make the limit per-CHUNK
2980
+ // rather than per-turn, and a turn may chain up to MAX_RUN_LOOP_CONTINUATIONS
2981
+ // (6) or MAX_BACKGROUND_RUN_LOOP_CONTINUATIONS (20) of them — so the real
2982
+ // ceiling would be 36 or 120 identical failures, not 6, and a spiral would
2983
+ // resume with a clean slate at every chunk boundary.
2984
+ const repeatedToolErrorsAnyArgs = new Map();
2985
+ for (const prior of toolResultHistory) {
2986
+ if (!prior.isError)
2987
+ continue;
2988
+ const key = `${prior.name}:${normalizeToolErrorForBreaker(prior.content)}`;
2989
+ repeatedToolErrorsAnyArgs.set(key, (repeatedToolErrorsAnyArgs.get(key) ?? 0) + 1);
2990
+ }
2938
2991
  const repeatedToolCalls = new Map();
2939
2992
  let finalGuardRetries = 0;
2940
2993
  let emptyFinalResponseRetries = 0;
@@ -3721,6 +3774,24 @@ export async function runAgentLoop(opts) {
3721
3774
  const errorKey = `${toolCallCacheKey(toolCall.name, toolCall.input)}:${normalizeToolErrorForBreaker(sanitizedResult)}`;
3722
3775
  const count = (repeatedToolErrors.get(errorKey) ?? 0) + 1;
3723
3776
  repeatedToolErrors.set(errorKey, count);
3777
+ // Same tool, same error, arguments ignored. Catches the lost-model
3778
+ // shape the exact-match counter above cannot: new arguments every
3779
+ // attempt, so every attempt looks like a first attempt.
3780
+ const anyArgsKey = `${toolCall.name}:${normalizeToolErrorForBreaker(sanitizedResult)}`;
3781
+ const anyArgsCount = (repeatedToolErrorsAnyArgs.get(anyArgsKey) ?? 0) + 1;
3782
+ repeatedToolErrorsAnyArgs.set(anyArgsKey, anyArgsCount);
3783
+ if (count < MAX_IDENTICAL_TOOL_ERRORS &&
3784
+ anyArgsCount >= MAX_SAME_ERROR_ACROSS_ARGUMENTS) {
3785
+ const result = `Stopped after ${anyArgsCount} attempts at ${toolCall.name} that all failed the same way ` +
3786
+ `with different arguments. Last error: ${sanitizedResult}`;
3787
+ requestedActionStop ??= {
3788
+ message: `I stopped because the ${toolCall.name} action rejected ${anyArgsCount} different attempts the same way, ` +
3789
+ "so changing the arguments again would not have worked. Anything completed before this is saved. " +
3790
+ `Error: ${sanitizedResult}`,
3791
+ errorCode: "repeated_tool_error_across_arguments",
3792
+ };
3793
+ return result;
3794
+ }
3724
3795
  if (count < MAX_IDENTICAL_TOOL_ERRORS)
3725
3796
  return sanitizedResult;
3726
3797
  const result = `Stopped after ${count} identical errors from ${toolCall.name} with the same arguments. ` +
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Import and validate the portable Agent Plugin format.
3
+ *
4
+ * The importer intentionally handles only local plugin directories. Skills are
5
+ * copied as inert files, and remote Streamable HTTP MCP entries are translated
6
+ * to the Agent-Native `mcp.config.json` shape without copying package headers.
7
+ * A plugin package is not a credential store and this command never executes
8
+ * a plugin's scripts or stdio servers.
9
+ */
10
+ export declare const AGENT_PLUGIN_SCHEMA = "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json";
11
+ export declare const AGENT_PLUGIN_MCP_SCHEMA = "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json";
12
+ export interface AgentPluginManifest {
13
+ name: string;
14
+ version?: string;
15
+ description?: string;
16
+ author?: string | {
17
+ name: string;
18
+ url?: string;
19
+ };
20
+ homepage?: string;
21
+ repository?: string;
22
+ license?: string;
23
+ keywords?: string[];
24
+ }
25
+ export interface AgentPluginSkillFile {
26
+ relativePath: string;
27
+ content: Buffer;
28
+ mode: number;
29
+ }
30
+ export interface LoadedAgentPluginSkill {
31
+ name: string;
32
+ description: string;
33
+ relativePath: string;
34
+ directory: string;
35
+ files: AgentPluginSkillFile[];
36
+ }
37
+ export type AgentPluginMcpTransport = "streamable-http" | "sse" | "stdio";
38
+ export interface LoadedAgentPluginMcpServer {
39
+ name: string;
40
+ type: AgentPluginMcpTransport;
41
+ url?: string;
42
+ command?: string;
43
+ args?: string[];
44
+ cwd?: string;
45
+ headerCount: number;
46
+ }
47
+ export interface AgentPluginSkippedComponent {
48
+ component: "skill" | "mcp";
49
+ name?: string;
50
+ reason: string;
51
+ }
52
+ export interface LoadedAgentPlugin {
53
+ rootDir: string;
54
+ manifestFile: string;
55
+ mcpFile?: string;
56
+ manifest: AgentPluginManifest;
57
+ pluginHash: string;
58
+ skills: LoadedAgentPluginSkill[];
59
+ mcpServers: LoadedAgentPluginMcpServer[];
60
+ skipped: AgentPluginSkippedComponent[];
61
+ warnings: string[];
62
+ }
63
+ export interface AgentPluginImportOptions {
64
+ targetDir?: string;
65
+ force?: boolean;
66
+ dryRun?: boolean;
67
+ }
68
+ export type AgentPluginImportItemStatus = "imported" | "unchanged" | "overwritten" | "would-import" | "would-overwrite";
69
+ export interface AgentPluginImportSkillResult {
70
+ name: string;
71
+ sourcePath: string;
72
+ destination: string;
73
+ files: number;
74
+ status: AgentPluginImportItemStatus;
75
+ }
76
+ export interface AgentPluginImportMcpResult {
77
+ name: string;
78
+ id: string;
79
+ url: string;
80
+ headersIgnored: number;
81
+ status: AgentPluginImportItemStatus;
82
+ }
83
+ export interface AgentPluginImportResult {
84
+ plugin: {
85
+ name: string;
86
+ version?: string;
87
+ hash: string;
88
+ sourceDir: string;
89
+ };
90
+ targetDir: string;
91
+ metadataPath: string;
92
+ mcpConfigPath: string;
93
+ skills: AgentPluginImportSkillResult[];
94
+ mcpServers: AgentPluginImportMcpResult[];
95
+ skipped: AgentPluginSkippedComponent[];
96
+ warnings: string[];
97
+ dryRun: boolean;
98
+ }
99
+ export interface ParsedAgentPluginArgs {
100
+ command: "import" | "help";
101
+ source?: string;
102
+ into?: string;
103
+ force: boolean;
104
+ dryRun: boolean;
105
+ printJson: boolean;
106
+ yes: boolean;
107
+ }
108
+ export declare function loadAgentPlugin(input: string): LoadedAgentPlugin;
109
+ export declare function importedMcpServerId(pluginName: string, serverName: string, existingIds?: Iterable<string>): string;
110
+ export declare function importAgentPlugin(input: string, options?: AgentPluginImportOptions): AgentPluginImportResult;
111
+ export declare function parseAgentPluginArgs(argv: string[]): ParsedAgentPluginArgs;
112
+ export declare function runAgentPlugin(argv: string[]): Promise<void>;