@agent-native/core 0.127.1 → 0.128.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 (431) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +92 -0
  3. package/corpus/core/README.md +5 -26
  4. package/corpus/core/docs/content/actions.mdx +47 -4
  5. package/corpus/core/docs/content/native-chat-ui.mdx +7 -0
  6. package/corpus/core/docs/content/organizations-teams-permissions.mdx +109 -3
  7. package/corpus/core/docs/content/template-design-collaboration-and-full-apps.mdx +15 -0
  8. package/corpus/core/docs/content/toolkit-org-team.mdx +72 -12
  9. package/corpus/core/package.json +1 -1
  10. package/corpus/core/src/a2a/artifact-response.ts +36 -29
  11. package/corpus/core/src/action.ts +83 -2
  12. package/corpus/core/src/chat-threads/store.ts +48 -43
  13. package/corpus/core/src/cli/skills-content/design-visual-edit-skill.ts +46 -3
  14. package/corpus/core/src/cli/template-sync.ts +96 -0
  15. package/corpus/core/src/client/AgentPanel.tsx +26 -6
  16. package/corpus/core/src/client/AssistantChat.tsx +63 -7
  17. package/corpus/core/src/client/DefaultSpinner.tsx +29 -0
  18. package/corpus/core/src/client/org/TeamPage.tsx +161 -6
  19. package/corpus/core/src/client/org/hooks.ts +67 -0
  20. package/corpus/core/src/client/org/index.ts +9 -0
  21. package/corpus/core/src/client/transcription/use-live-transcription.ts +62 -10
  22. package/corpus/core/src/db/client.ts +42 -3
  23. package/corpus/core/src/db/ensure-additive-columns.ts +60 -33
  24. package/corpus/core/src/deploy/build.ts +31 -2
  25. package/corpus/core/src/mcp-client/routes.ts +10 -1
  26. package/corpus/core/src/org/app-roles-handlers.ts +152 -0
  27. package/corpus/core/src/org/app-roles.ts +355 -0
  28. package/corpus/core/src/org/index.ts +27 -1
  29. package/corpus/core/src/org/migrations.ts +22 -0
  30. package/corpus/core/src/org/plugin.ts +27 -0
  31. package/corpus/core/src/org/schema.ts +15 -0
  32. package/corpus/core/src/scripts/docs/search.ts +17 -0
  33. package/corpus/core/src/scripts/docs/source-search.ts +10 -0
  34. package/corpus/core/src/server/agent-chat/script-entries.ts +3 -0
  35. package/corpus/core/src/server/agent-chat-plugin.ts +53 -52
  36. package/corpus/core/src/server/builder-design-systems.ts +1 -1
  37. package/corpus/core/src/server/core-routes-plugin.ts +6 -1
  38. package/corpus/core/src/server/framework-request-handler.ts +44 -6
  39. package/corpus/core/src/templates/default/.agents/skills/actions/SKILL.md +32 -0
  40. package/corpus/core/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +7 -0
  41. package/corpus/core/src/templates/default/.agents/skills/security/SKILL.md +31 -0
  42. package/corpus/core/src/templates/headless/.agents/skills/actions/SKILL.md +32 -0
  43. package/corpus/core/src/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -0
  44. package/corpus/core/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +7 -0
  45. package/corpus/core/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +40 -0
  46. package/corpus/core/src/templates/workspace-core/.agents/skills/security/SKILL.md +31 -0
  47. package/corpus/core/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +4 -0
  48. package/corpus/templates/analytics/.agents/skills/actions/SKILL.md +32 -0
  49. package/corpus/templates/analytics/.agents/skills/security/SKILL.md +31 -0
  50. package/corpus/templates/analytics/.agents/skills/sharing/SKILL.md +4 -0
  51. package/corpus/templates/analytics/actions/data-source-status.ts +21 -12
  52. package/corpus/templates/analytics/app/global.css +7 -7
  53. package/corpus/templates/analytics/app/i18n-data.ts +30 -0
  54. package/corpus/templates/analytics/app/lib/data-source-status.ts +2 -1
  55. package/corpus/templates/analytics/app/pages/DataSources.tsx +54 -10
  56. package/corpus/templates/analytics/changelog/2026-07-28-analytics-pages-load-reliably-with-large-dashboard-workspaces.md +6 -0
  57. package/corpus/templates/analytics/changelog/2026-07-28-dashboard-loading-shimmer-now-flows-smoothly-in-one-directi.md +6 -0
  58. package/corpus/templates/analytics/server/lib/first-party-dashboard-repair.ts +5 -4
  59. package/corpus/templates/analytics/server/plugins/agent-chat.ts +54 -42
  60. package/corpus/templates/analytics/server/plugins/db.ts +1 -18
  61. package/corpus/templates/assets/.agents/skills/actions/SKILL.md +32 -0
  62. package/corpus/templates/assets/.agents/skills/security/SKILL.md +31 -0
  63. package/corpus/templates/assets/.agents/skills/sharing/SKILL.md +4 -0
  64. package/corpus/templates/brain/.agents/skills/actions/SKILL.md +32 -0
  65. package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +7 -0
  66. package/corpus/templates/brain/.agents/skills/security/SKILL.md +31 -0
  67. package/corpus/templates/brain/.agents/skills/sharing/SKILL.md +4 -0
  68. package/corpus/templates/calendar/.agents/skills/actions/SKILL.md +32 -0
  69. package/corpus/templates/calendar/.agents/skills/security/SKILL.md +31 -0
  70. package/corpus/templates/calendar/.agents/skills/sharing/SKILL.md +4 -0
  71. package/corpus/templates/chat/.agents/skills/actions/SKILL.md +32 -0
  72. package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +7 -0
  73. package/corpus/templates/chat/.agents/skills/security/SKILL.md +31 -0
  74. package/corpus/templates/chat/.agents/skills/sharing/SKILL.md +4 -0
  75. package/corpus/templates/chat/_gitignore +2 -0
  76. package/corpus/templates/clips/.agents/skills/actions/SKILL.md +32 -0
  77. package/corpus/templates/clips/.agents/skills/security/SKILL.md +31 -0
  78. package/corpus/templates/clips/actions/request-transcript.ts +77 -11
  79. package/corpus/templates/clips/actions/save-browser-transcript.ts +28 -7
  80. package/corpus/templates/clips/app/routes/record.tsx +11 -3
  81. package/corpus/templates/clips/changelog/2026-07-28-browser-recordings-no-longer-save-a-truncated-transcript-as-.md +6 -0
  82. package/corpus/templates/clips/changelog/2026-07-28-browser-recordings-no-longer-stop-transcribing-partway-throu.md +6 -0
  83. package/corpus/templates/clips/changelog/2026-07-28-desktop-full-screen-clips-now-get-an-instant-local-transcrip.md +6 -0
  84. package/corpus/templates/clips/changelog/2026-07-28-long-transcriptions-no-longer-show-a-false-transcription-sto.md +6 -0
  85. package/corpus/templates/clips/changelog/2026-07-28-restarting-for-an-update-now-installs-the-newest-release-ins.md +6 -0
  86. package/corpus/templates/clips/changelog/2026-07-28-the-meeting-recording-pill-now-anchors-to-the-right-edge-of-.md +6 -0
  87. package/corpus/templates/clips/desktop/src/lib/audio-meter.ts +31 -2
  88. package/corpus/templates/clips/desktop/src/lib/recorder.ts +114 -13
  89. package/corpus/templates/clips/desktop/src/lib/updater.ts +12 -4
  90. package/corpus/templates/clips/desktop/src/overlays/live-audio-bars.tsx +40 -15
  91. package/corpus/templates/clips/desktop/src/styles.css +10 -7
  92. package/corpus/templates/clips/desktop/src-tauri/src/recording_indicator.rs +21 -14
  93. package/corpus/templates/clips/shared/transcript-status.ts +10 -0
  94. package/corpus/templates/content/.agents/skills/actions/SKILL.md +32 -0
  95. package/corpus/templates/content/.agents/skills/security/SKILL.md +31 -0
  96. package/corpus/templates/content/.agents/skills/sharing/SKILL.md +4 -0
  97. package/corpus/templates/crm/.agents/skills/sharing/SKILL.md +4 -0
  98. package/corpus/templates/design/.agents/skills/actions/SKILL.md +32 -0
  99. package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +23 -0
  100. package/corpus/templates/design/.agents/skills/security/SKILL.md +31 -0
  101. package/corpus/templates/design/.agents/skills/sharing/SKILL.md +4 -0
  102. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +46 -3
  103. package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +7 -5
  104. package/corpus/templates/design/actions/create-file.ts +15 -0
  105. package/corpus/templates/design/actions/generate-design.ts +40 -0
  106. package/corpus/templates/design/actions/present-design-variants.ts +16 -0
  107. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +2 -2
  108. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +7 -4
  109. package/corpus/templates/design/app/components/design/keyboard-shortcuts.ts +1 -1
  110. package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +10 -4
  111. package/corpus/templates/design/app/lib/design-ui-events.ts +5 -0
  112. package/corpus/templates/design/app/pages/design-editor/save-failure.ts +7 -1
  113. package/corpus/templates/design/app/root.tsx +18 -1
  114. package/corpus/templates/design/changelog/2026-07-28-generated-designs-with-malformed-html-are-now-rejected-at-sa.md +6 -0
  115. package/corpus/templates/design/changelog/2026-07-28-show-or-hide-design-editing-chrome-with-cmd-on-apple-devices.md +6 -0
  116. package/corpus/templates/design/server/source-workspace.ts +1 -0
  117. package/corpus/templates/design/shared/html-integrity.ts +608 -18
  118. package/corpus/templates/dispatch/.agents/skills/actions/SKILL.md +32 -0
  119. package/corpus/templates/dispatch/.agents/skills/security/SKILL.md +31 -0
  120. package/corpus/templates/dispatch/.agents/skills/sharing/SKILL.md +4 -0
  121. package/corpus/templates/forms/.agents/skills/actions/SKILL.md +32 -0
  122. package/corpus/templates/forms/.agents/skills/security/SKILL.md +31 -0
  123. package/corpus/templates/forms/.agents/skills/sharing/SKILL.md +4 -0
  124. package/corpus/templates/macros/.agents/skills/security/SKILL.md +31 -0
  125. package/corpus/templates/macros/.agents/skills/sharing/SKILL.md +4 -0
  126. package/corpus/templates/mail/.agents/skills/actions/SKILL.md +32 -0
  127. package/corpus/templates/mail/.agents/skills/security/SKILL.md +31 -0
  128. package/corpus/templates/mail/.agents/skills/sharing/SKILL.md +4 -0
  129. package/corpus/templates/plan/.agents/skills/actions/SKILL.md +32 -0
  130. package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +7 -0
  131. package/corpus/templates/plan/.agents/skills/security/SKILL.md +31 -0
  132. package/corpus/templates/plan/.agents/skills/sharing/SKILL.md +4 -0
  133. package/corpus/templates/slides/.agents/skills/actions/SKILL.md +32 -0
  134. package/corpus/templates/slides/.agents/skills/security/SKILL.md +31 -0
  135. package/corpus/templates/slides/.agents/skills/sharing/SKILL.md +4 -0
  136. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +2 -6
  137. package/corpus/templates/tasks/.agents/skills/actions/SKILL.md +32 -0
  138. package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +7 -0
  139. package/corpus/templates/tasks/.agents/skills/security/SKILL.md +31 -0
  140. package/corpus/templates/tasks/.agents/skills/sharing/SKILL.md +4 -0
  141. package/dist/a2a/artifact-response.d.ts.map +1 -1
  142. package/dist/a2a/artifact-response.js +30 -29
  143. package/dist/a2a/artifact-response.js.map +1 -1
  144. package/dist/action.d.ts +36 -0
  145. package/dist/action.d.ts.map +1 -1
  146. package/dist/action.js +37 -2
  147. package/dist/action.js.map +1 -1
  148. package/dist/chat-threads/store.d.ts +12 -0
  149. package/dist/chat-threads/store.d.ts.map +1 -1
  150. package/dist/chat-threads/store.js +48 -42
  151. package/dist/chat-threads/store.js.map +1 -1
  152. package/dist/cli/skills-content/design-visual-edit-skill.d.ts +1 -1
  153. package/dist/cli/skills-content/design-visual-edit-skill.d.ts.map +1 -1
  154. package/dist/cli/skills-content/design-visual-edit-skill.js +46 -3
  155. package/dist/cli/skills-content/design-visual-edit-skill.js.map +1 -1
  156. package/dist/cli/template-sync.d.ts.map +1 -1
  157. package/dist/cli/template-sync.js +88 -0
  158. package/dist/cli/template-sync.js.map +1 -1
  159. package/dist/client/AgentPanel.d.ts +3 -1
  160. package/dist/client/AgentPanel.d.ts.map +1 -1
  161. package/dist/client/AgentPanel.js +11 -9
  162. package/dist/client/AgentPanel.js.map +1 -1
  163. package/dist/client/AssistantChat.d.ts.map +1 -1
  164. package/dist/client/AssistantChat.js +57 -6
  165. package/dist/client/AssistantChat.js.map +1 -1
  166. package/dist/client/DefaultSpinner.d.ts +7 -0
  167. package/dist/client/DefaultSpinner.d.ts.map +1 -1
  168. package/dist/client/DefaultSpinner.js +25 -1
  169. package/dist/client/DefaultSpinner.js.map +1 -1
  170. package/dist/client/org/TeamPage.d.ts +13 -1
  171. package/dist/client/org/TeamPage.d.ts.map +1 -1
  172. package/dist/client/org/TeamPage.js +41 -11
  173. package/dist/client/org/TeamPage.js.map +1 -1
  174. package/dist/client/org/hooks.d.ts +37 -0
  175. package/dist/client/org/hooks.d.ts.map +1 -1
  176. package/dist/client/org/hooks.js +37 -0
  177. package/dist/client/org/hooks.js.map +1 -1
  178. package/dist/client/org/index.d.ts +3 -2
  179. package/dist/client/org/index.d.ts.map +1 -1
  180. package/dist/client/org/index.js +1 -1
  181. package/dist/client/org/index.js.map +1 -1
  182. package/dist/client/transcription/use-live-transcription.d.ts +8 -0
  183. package/dist/client/transcription/use-live-transcription.d.ts.map +1 -1
  184. package/dist/client/transcription/use-live-transcription.js +38 -11
  185. package/dist/client/transcription/use-live-transcription.js.map +1 -1
  186. package/dist/collab/routes.d.ts +1 -1
  187. package/dist/collab/struct-routes.d.ts +1 -1
  188. package/dist/db/client.d.ts +12 -0
  189. package/dist/db/client.d.ts.map +1 -1
  190. package/dist/db/client.js +40 -3
  191. package/dist/db/client.js.map +1 -1
  192. package/dist/db/ensure-additive-columns.d.ts.map +1 -1
  193. package/dist/db/ensure-additive-columns.js +54 -32
  194. package/dist/db/ensure-additive-columns.js.map +1 -1
  195. package/dist/deploy/build.d.ts +1 -0
  196. package/dist/deploy/build.d.ts.map +1 -1
  197. package/dist/deploy/build.js +23 -2
  198. package/dist/deploy/build.js.map +1 -1
  199. package/dist/mcp-client/routes.d.ts +3 -1
  200. package/dist/mcp-client/routes.d.ts.map +1 -1
  201. package/dist/mcp-client/routes.js +8 -2
  202. package/dist/mcp-client/routes.js.map +1 -1
  203. package/dist/notifications/routes.d.ts +1 -1
  204. package/dist/observability/routes.d.ts +3 -3
  205. package/dist/org/app-roles-handlers.d.ts +27 -0
  206. package/dist/org/app-roles-handlers.d.ts.map +1 -0
  207. package/dist/org/app-roles-handlers.js +125 -0
  208. package/dist/org/app-roles-handlers.js.map +1 -0
  209. package/dist/org/app-roles.d.ts +136 -0
  210. package/dist/org/app-roles.d.ts.map +1 -0
  211. package/dist/org/app-roles.js +216 -0
  212. package/dist/org/app-roles.js.map +1 -0
  213. package/dist/org/index.d.ts +4 -1
  214. package/dist/org/index.d.ts.map +1 -1
  215. package/dist/org/index.js +3 -1
  216. package/dist/org/index.js.map +1 -1
  217. package/dist/org/migrations.d.ts.map +1 -1
  218. package/dist/org/migrations.js +22 -0
  219. package/dist/org/migrations.js.map +1 -1
  220. package/dist/org/plugin.d.ts +2 -0
  221. package/dist/org/plugin.d.ts.map +1 -1
  222. package/dist/org/plugin.js +20 -0
  223. package/dist/org/plugin.js.map +1 -1
  224. package/dist/org/schema.d.ts +143 -0
  225. package/dist/org/schema.d.ts.map +1 -1
  226. package/dist/org/schema.js +14 -0
  227. package/dist/org/schema.js.map +1 -1
  228. package/dist/provider-api/actions/custom-provider-registration.d.ts +4 -4
  229. package/dist/provider-api/actions/provider-api.d.ts +12 -12
  230. package/dist/resources/handlers.d.ts +1 -1
  231. package/dist/scripts/docs/search.d.ts.map +1 -1
  232. package/dist/scripts/docs/search.js +15 -0
  233. package/dist/scripts/docs/search.js.map +1 -1
  234. package/dist/scripts/docs/source-search.d.ts +7 -0
  235. package/dist/scripts/docs/source-search.d.ts.map +1 -1
  236. package/dist/scripts/docs/source-search.js +9 -0
  237. package/dist/scripts/docs/source-search.js.map +1 -1
  238. package/dist/server/agent-chat/script-entries.d.ts.map +1 -1
  239. package/dist/server/agent-chat/script-entries.js +3 -0
  240. package/dist/server/agent-chat/script-entries.js.map +1 -1
  241. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  242. package/dist/server/agent-chat-plugin.js +46 -48
  243. package/dist/server/agent-chat-plugin.js.map +1 -1
  244. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  245. package/dist/server/builder-design-systems.js +1 -1
  246. package/dist/server/builder-design-systems.js.map +1 -1
  247. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  248. package/dist/server/core-routes-plugin.js +6 -1
  249. package/dist/server/core-routes-plugin.js.map +1 -1
  250. package/dist/server/framework-request-handler.d.ts.map +1 -1
  251. package/dist/server/framework-request-handler.js +42 -6
  252. package/dist/server/framework-request-handler.js.map +1 -1
  253. package/dist/server/transcribe-voice.d.ts +1 -1
  254. package/dist/templates/chat/.agents/skills/actions/SKILL.md +32 -0
  255. package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +7 -0
  256. package/dist/templates/chat/.agents/skills/security/SKILL.md +31 -0
  257. package/dist/templates/chat/.agents/skills/sharing/SKILL.md +4 -0
  258. package/dist/templates/chat/_gitignore +2 -0
  259. package/dist/templates/default/.agents/skills/actions/SKILL.md +32 -0
  260. package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +7 -0
  261. package/dist/templates/default/.agents/skills/security/SKILL.md +31 -0
  262. package/dist/templates/headless/.agents/skills/actions/SKILL.md +32 -0
  263. package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -0
  264. package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +7 -0
  265. package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +40 -0
  266. package/dist/templates/workspace-core/.agents/skills/security/SKILL.md +31 -0
  267. package/dist/templates/workspace-core/.agents/skills/sharing/SKILL.md +4 -0
  268. package/docs/content/actions.mdx +47 -4
  269. package/docs/content/native-chat-ui.mdx +7 -0
  270. package/docs/content/organizations-teams-permissions.mdx +109 -3
  271. package/docs/content/template-design-collaboration-and-full-apps.mdx +15 -0
  272. package/docs/content/toolkit-org-team.mdx +72 -12
  273. package/package.json +1 -1
  274. package/src/a2a/artifact-response.ts +36 -29
  275. package/src/action.ts +83 -2
  276. package/src/chat-threads/store.ts +48 -43
  277. package/src/cli/skills-content/design-visual-edit-skill.ts +46 -3
  278. package/src/cli/template-sync.ts +96 -0
  279. package/src/client/AgentPanel.tsx +26 -6
  280. package/src/client/AssistantChat.tsx +63 -7
  281. package/src/client/DefaultSpinner.tsx +29 -0
  282. package/src/client/org/TeamPage.tsx +161 -6
  283. package/src/client/org/hooks.ts +67 -0
  284. package/src/client/org/index.ts +9 -0
  285. package/src/client/transcription/use-live-transcription.ts +62 -10
  286. package/src/db/client.ts +42 -3
  287. package/src/db/ensure-additive-columns.ts +60 -33
  288. package/src/deploy/build.ts +31 -2
  289. package/src/mcp-client/routes.ts +10 -1
  290. package/src/org/app-roles-handlers.ts +152 -0
  291. package/src/org/app-roles.ts +355 -0
  292. package/src/org/index.ts +27 -1
  293. package/src/org/migrations.ts +22 -0
  294. package/src/org/plugin.ts +27 -0
  295. package/src/org/schema.ts +15 -0
  296. package/src/scripts/docs/search.ts +17 -0
  297. package/src/scripts/docs/source-search.ts +10 -0
  298. package/src/server/agent-chat/script-entries.ts +3 -0
  299. package/src/server/agent-chat-plugin.ts +53 -52
  300. package/src/server/builder-design-systems.ts +1 -1
  301. package/src/server/core-routes-plugin.ts +6 -1
  302. package/src/server/framework-request-handler.ts +44 -6
  303. package/src/templates/chat/.agents/skills/actions/SKILL.md +32 -0
  304. package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +7 -0
  305. package/src/templates/chat/.agents/skills/security/SKILL.md +31 -0
  306. package/src/templates/chat/.agents/skills/sharing/SKILL.md +4 -0
  307. package/src/templates/chat/_gitignore +2 -0
  308. package/src/templates/default/.agents/skills/actions/SKILL.md +32 -0
  309. package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +7 -0
  310. package/src/templates/default/.agents/skills/security/SKILL.md +31 -0
  311. package/src/templates/headless/.agents/skills/actions/SKILL.md +32 -0
  312. package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -0
  313. package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +7 -0
  314. package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +40 -0
  315. package/src/templates/workspace-core/.agents/skills/security/SKILL.md +31 -0
  316. package/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +4 -0
  317. package/corpus/core/src/templates/chat/.agents/skills/actions/SKILL.md +0 -530
  318. package/corpus/core/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +0 -191
  319. package/corpus/core/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +0 -115
  320. package/corpus/core/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +0 -177
  321. package/corpus/core/src/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  322. package/corpus/core/src/templates/chat/.agents/skills/create-skill/SKILL.md +0 -221
  323. package/corpus/core/src/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +0 -220
  324. package/corpus/core/src/templates/chat/.agents/skills/delegate-to-agent/SKILL.md +0 -263
  325. package/corpus/core/src/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  326. package/corpus/core/src/templates/chat/.agents/skills/frontend-design/SKILL.md +0 -174
  327. package/corpus/core/src/templates/chat/.agents/skills/real-time-sync/SKILL.md +0 -232
  328. package/corpus/core/src/templates/chat/.agents/skills/security/SKILL.md +0 -282
  329. package/corpus/core/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +0 -119
  330. package/corpus/core/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +0 -123
  331. package/corpus/core/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -122
  332. package/corpus/core/src/templates/chat/.env.example +0 -5
  333. package/corpus/core/src/templates/chat/.ignore +0 -0
  334. package/corpus/core/src/templates/chat/.oxfmtrc.json +0 -8
  335. package/corpus/core/src/templates/chat/AGENTS.md +0 -77
  336. package/corpus/core/src/templates/chat/CHANGELOG.md +0 -10
  337. package/corpus/core/src/templates/chat/DEVELOPING.md +0 -185
  338. package/corpus/core/src/templates/chat/README.md +0 -32
  339. package/corpus/core/src/templates/chat/_gitignore +0 -44
  340. package/corpus/core/src/templates/chat/actions/hello.ts +0 -13
  341. package/corpus/core/src/templates/chat/actions/navigate.ts +0 -41
  342. package/corpus/core/src/templates/chat/actions/run.ts +0 -2
  343. package/corpus/core/src/templates/chat/actions/view-screen.ts +0 -31
  344. package/corpus/core/src/templates/chat/app/components/layout/Header.tsx +0 -60
  345. package/corpus/core/src/templates/chat/app/components/layout/Layout.tsx +0 -188
  346. package/corpus/core/src/templates/chat/app/components/layout/Sidebar.tsx +0 -505
  347. package/corpus/core/src/templates/chat/app/components/ui/button.tsx +0 -1
  348. package/corpus/core/src/templates/chat/app/components/ui/card.tsx +0 -1
  349. package/corpus/core/src/templates/chat/app/components/ui/dropdown-menu.tsx +0 -1
  350. package/corpus/core/src/templates/chat/app/components/ui/input.tsx +0 -1
  351. package/corpus/core/src/templates/chat/app/components/ui/label.tsx +0 -1
  352. package/corpus/core/src/templates/chat/app/components/ui/sheet.tsx +0 -1
  353. package/corpus/core/src/templates/chat/app/components/ui/toolkit-provider.tsx +0 -17
  354. package/corpus/core/src/templates/chat/app/components/ui/tooltip.tsx +0 -1
  355. package/corpus/core/src/templates/chat/app/design-system.ts +0 -3
  356. package/corpus/core/src/templates/chat/app/entry.client.tsx +0 -22
  357. package/corpus/core/src/templates/chat/app/entry.server.tsx +0 -10
  358. package/corpus/core/src/templates/chat/app/global.css +0 -93
  359. package/corpus/core/src/templates/chat/app/hooks/use-navigation-state.ts +0 -93
  360. package/corpus/core/src/templates/chat/app/i18n/ar-SA.ts +0 -68
  361. package/corpus/core/src/templates/chat/app/i18n/de-DE.ts +0 -71
  362. package/corpus/core/src/templates/chat/app/i18n/en-US.ts +0 -70
  363. package/corpus/core/src/templates/chat/app/i18n/es-ES.ts +0 -71
  364. package/corpus/core/src/templates/chat/app/i18n/fr-FR.ts +0 -71
  365. package/corpus/core/src/templates/chat/app/i18n/hi-IN.ts +0 -69
  366. package/corpus/core/src/templates/chat/app/i18n/index.ts +0 -34
  367. package/corpus/core/src/templates/chat/app/i18n/ja-JP.ts +0 -70
  368. package/corpus/core/src/templates/chat/app/i18n/ko-KR.ts +0 -70
  369. package/corpus/core/src/templates/chat/app/i18n/pt-BR.ts +0 -71
  370. package/corpus/core/src/templates/chat/app/i18n/zh-CN.ts +0 -66
  371. package/corpus/core/src/templates/chat/app/i18n/zh-TW.ts +0 -66
  372. package/corpus/core/src/templates/chat/app/i18n-data.ts +0 -556
  373. package/corpus/core/src/templates/chat/app/lib/agent-page.tsx +0 -49
  374. package/corpus/core/src/templates/chat/app/lib/app-config.ts +0 -11
  375. package/corpus/core/src/templates/chat/app/lib/tab-id.ts +0 -1
  376. package/corpus/core/src/templates/chat/app/lib/utils.ts +0 -1
  377. package/corpus/core/src/templates/chat/app/root.tsx +0 -173
  378. package/corpus/core/src/templates/chat/app/routes/_index.tsx +0 -94
  379. package/corpus/core/src/templates/chat/app/routes/agent.tsx +0 -24
  380. package/corpus/core/src/templates/chat/app/routes/chat.$threadId.tsx +0 -1
  381. package/corpus/core/src/templates/chat/app/routes/database.tsx +0 -17
  382. package/corpus/core/src/templates/chat/app/routes/extensions.$id.$slug.tsx +0 -2
  383. package/corpus/core/src/templates/chat/app/routes/extensions.$id.tsx +0 -11
  384. package/corpus/core/src/templates/chat/app/routes/extensions._index.tsx +0 -11
  385. package/corpus/core/src/templates/chat/app/routes/extensions.tsx +0 -5
  386. package/corpus/core/src/templates/chat/app/routes/observability.tsx +0 -19
  387. package/corpus/core/src/templates/chat/app/routes/settings.tsx +0 -89
  388. package/corpus/core/src/templates/chat/app/routes/team.tsx +0 -11
  389. package/corpus/core/src/templates/chat/app/routes.ts +0 -4
  390. package/corpus/core/src/templates/chat/app/vite-env.d.ts +0 -6
  391. package/corpus/core/src/templates/chat/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +0 -6
  392. package/corpus/core/src/templates/chat/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +0 -6
  393. package/corpus/core/src/templates/chat/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +0 -6
  394. package/corpus/core/src/templates/chat/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +0 -6
  395. package/corpus/core/src/templates/chat/changelog/2026-06-29-chat-layouts-adapt-when-the-agent-sidebar-is-open.md +0 -6
  396. package/corpus/core/src/templates/chat/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +0 -5
  397. package/corpus/core/src/templates/chat/changelog/2026-07-10-chat-now-makes-ai-connection-setup-clear-without-shifting-th.md +0 -6
  398. package/corpus/core/src/templates/chat/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +0 -6
  399. package/corpus/core/src/templates/chat/changelog/2026-07-14-chat-opens-reliably-on-hosted-deployments-instead-of-failing.md +0 -6
  400. package/corpus/core/src/templates/chat/changelog/2026-07-14-fixed-chat-template-startup-with-older-core-versions.md +0 -6
  401. package/corpus/core/src/templates/chat/changelog/2026-07-15-chat-navigation-focuses-on-chat-and-agent.md +0 -6
  402. package/corpus/core/src/templates/chat/changelog/2026-07-17-the-agent-chat-sidebar-stays-closed-until-you-open-it-or-sta.md +0 -6
  403. package/corpus/core/src/templates/chat/changelog/2026-07-22-compact-sidebar-footer.md +0 -6
  404. package/corpus/core/src/templates/chat/changelog/2026-07-22-full-page-chat-keeps-the-active-conversation-when-moving-to-.md +0 -6
  405. package/corpus/core/src/templates/chat/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +0 -6
  406. package/corpus/core/src/templates/chat/changelog/2026-07-22-recent-chats-are-easier-to-scan-and-expand.md +0 -6
  407. package/corpus/core/src/templates/chat/changelog/2026-07-23-full-page-chat-is-better-centered-with-quieter-chat-history-.md +0 -6
  408. package/corpus/core/src/templates/chat/changelog/2026-07-24-borderless-secondary-surfaces.md +0 -6
  409. package/corpus/core/src/templates/chat/changelog/2026-07-24-sidebar-footer-controls-follow-a-consistent-order.md +0 -6
  410. package/corpus/core/src/templates/chat/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +0 -6
  411. package/corpus/core/src/templates/chat/components.json +0 -20
  412. package/corpus/core/src/templates/chat/learnings.defaults.md +0 -5
  413. package/corpus/core/src/templates/chat/netlify.toml +0 -11
  414. package/corpus/core/src/templates/chat/package.json +0 -92
  415. package/corpus/core/src/templates/chat/public/agent-native-icon-dark.svg +0 -10
  416. package/corpus/core/src/templates/chat/public/agent-native-icon-light.svg +0 -10
  417. package/corpus/core/src/templates/chat/public/agent-native-logo-dark.svg +0 -21
  418. package/corpus/core/src/templates/chat/public/agent-native-logo-light.svg +0 -21
  419. package/corpus/core/src/templates/chat/public/favicon.svg +0 -1
  420. package/corpus/core/src/templates/chat/public/icon-180.svg +0 -1
  421. package/corpus/core/src/templates/chat/public/icon-192.svg +0 -1
  422. package/corpus/core/src/templates/chat/public/icon-512.svg +0 -1
  423. package/corpus/core/src/templates/chat/public/manifest.json +0 -21
  424. package/corpus/core/src/templates/chat/react-router.config.ts +0 -7
  425. package/corpus/core/src/templates/chat/server/middleware/auth.ts +0 -15
  426. package/corpus/core/src/templates/chat/server/plugins/agent-chat.ts +0 -21
  427. package/corpus/core/src/templates/chat/server/plugins/auth.ts +0 -17
  428. package/corpus/core/src/templates/chat/server/routes/[...page].get.ts +0 -5
  429. package/corpus/core/src/templates/chat/ssr-entry.ts +0 -15
  430. package/corpus/core/src/templates/chat/tsconfig.json +0 -21
  431. package/corpus/core/src/templates/chat/vite.config.ts +0 -19
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-response.js","sourceRoot":"","sources":["../../src/a2a/artifact-response.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHmac, timingSafeEqual } from \"node:crypto\";\n\nexport interface A2AToolResultSummary {\n tool: string;\n result: string;\n isError?: boolean;\n completedSideEffect?: boolean;\n}\n\nexport interface A2AArtifactResponseOptions {\n baseUrl?: string;\n includeReferencedArtifacts?: boolean;\n includePersistedArtifactMarker?: boolean;\n persistedArtifactSecret?: string;\n}\n\nexport interface GuardedA2AArtifactResponse {\n text: string;\n rejectedUnverifiedArtifactReferences: boolean;\n}\n\nexport interface A2AArtifactIdentityOptions {\n persistedArtifactSecrets?: readonly string[];\n}\n\nexport interface A2AArtifactIdentity {\n resourceType:\n | \"document\"\n | \"deck\"\n | \"dashboard\"\n | \"analysis\"\n | \"image\"\n | \"design\"\n | \"monitor\"\n | \"form\";\n id: string;\n sourceAction: string;\n titleAtAction?: string;\n url?: string;\n}\n\nconst ARTIFACT_IDENTITY_WRITE_TOOLS = new Set([\n \"save-monitor\",\n \"create-form\",\n \"submit-content-database-form\",\n \"add-database-item\",\n \"create-document\",\n \"update-document\",\n \"set-document-property\",\n \"create-deck\",\n \"duplicate-deck\",\n \"add-slide\",\n \"update-dashboard\",\n \"rename-dashboard\",\n \"save-analysis\",\n \"generate-image\",\n \"edit-image\",\n \"refine-image\",\n \"restyle-image\",\n \"save-generated-image\",\n \"save-generated-asset\",\n \"export-image\",\n \"export-asset\",\n \"generate-image-batch\",\n \"create-design\",\n \"generate-design\",\n \"create-file\",\n \"duplicate-design\",\n]);\n\nconst PERSISTED_ARTIFACT_MARKER = \"agent-native:persisted-artifacts=\";\nconst PERSISTED_ARTIFACT_MARKER_PATTERN =\n /\\s*<!--\\s*agent-native:persisted-artifacts=[A-Za-z0-9_-]+\\.[a-f0-9]{64}\\s*-->/g;\nconst ARTIFACT_RESOURCE_TYPES = new Set<A2AArtifactIdentity[\"resourceType\"]>([\n \"document\",\n \"deck\",\n \"dashboard\",\n \"analysis\",\n \"image\",\n \"design\",\n \"monitor\",\n \"form\",\n]);\n\nfunction persistedArtifactIdentitiesFromMarker(\n result: string,\n secrets: readonly string[] = process.env.A2A_SECRET\n ? [process.env.A2A_SECRET]\n : [],\n): A2AArtifactIdentity[] {\n if (secrets.length === 0) return [];\n const match = result.match(\n /<!--\\s*agent-native:persisted-artifacts=([A-Za-z0-9_-]+)\\.([a-f0-9]{64})\\s*-->/,\n );\n if (!match) return [];\n try {\n const payload = match[1];\n const supplied = Buffer.from(match[2], \"hex\");\n const verified = secrets.some((secret) => {\n const expected = createHmac(\"sha256\", secret).update(payload).digest();\n return (\n supplied.length === expected.length &&\n timingSafeEqual(supplied, expected)\n );\n });\n if (!verified) {\n return [];\n }\n const parsed = JSON.parse(Buffer.from(payload, \"base64url\").toString());\n if (!Array.isArray(parsed)) return [];\n return parsed\n .slice(0, 12)\n .filter((identity): identity is A2AArtifactIdentity => {\n const item = asRecord(identity);\n return (\n !!item &&\n ARTIFACT_RESOURCE_TYPES.has(\n item.resourceType as A2AArtifactIdentity[\"resourceType\"],\n ) &&\n typeof item.id === \"string\" &&\n typeof item.sourceAction === \"string\"\n );\n });\n } catch {\n return [];\n }\n}\n\nfunction withPersistedArtifactMarker(\n text: string,\n toolResults: A2AToolResultSummary[],\n secret = process.env.A2A_SECRET,\n): string {\n const verificationSecrets = [secret, process.env.A2A_SECRET].filter(\n (value, index, values): value is string =>\n !!value && values.indexOf(value) === index,\n );\n const identities = extractA2AArtifactIdentities(toolResults, {\n persistedArtifactSecrets: verificationSecrets,\n }).slice(0, 12);\n if (identities.length === 0 || !secret) return text;\n const payload = Buffer.from(JSON.stringify(identities)).toString(\"base64url\");\n const signature = createHmac(\"sha256\", secret).update(payload).digest(\"hex\");\n const marker = `<!-- ${PERSISTED_ARTIFACT_MARKER}${payload}.${signature} -->`;\n return text ? `${text}\\n\\n${marker}` : marker;\n}\n\nexport function stripA2APersistedArtifactMarkers(text: string): string {\n return text.replace(PERSISTED_ARTIFACT_MARKER_PATTERN, \"\").trim();\n}\n\ninterface CreatedDocumentArtifact {\n id: string;\n title?: string;\n url?: string;\n}\n\ninterface CreatedDesignShell {\n id: string;\n title?: string;\n}\n\ninterface GeneratedDesignArtifact {\n id: string;\n fileCount: number;\n url?: string;\n}\n\ninterface CreatedDeckArtifact {\n id: string;\n url?: string;\n}\n\ninterface CreatedDashboardArtifact {\n id: string;\n title?: string;\n url?: string;\n}\n\ninterface CreatedAnalysisArtifact {\n id: string;\n title?: string;\n url?: string;\n}\n\ninterface CreatedImageArtifact {\n id: string;\n runId?: string;\n title?: string;\n url?: string;\n}\n\ninterface CreatedMonitorArtifact {\n id: string;\n name?: string;\n url: string;\n}\n\ninterface CreatedFormArtifact {\n id: string;\n title?: string;\n url: string;\n anonymous: boolean;\n}\n\ntype ReferencedArtifactKind =\n | \"deck\"\n | \"design\"\n | \"document\"\n | \"dashboard\"\n | \"analysis\"\n | \"image\";\n\ninterface ReferencedArtifact {\n kind: ReferencedArtifactKind;\n id: string;\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | null {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : null;\n}\n\nfunction stringValue(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n}\n\nfunction parseToolResultJson(result: string): Record<string, unknown> | null {\n const trimmed = result.trim();\n if (!trimmed || /^Error(?:\\s|:)/i.test(trimmed)) return null;\n\n try {\n return asRecord(JSON.parse(trimmed));\n } catch {\n // Dev shell wrappers may include console output before the returned JSON.\n const firstBrace = trimmed.indexOf(\"{\");\n const lastBrace = trimmed.lastIndexOf(\"}\");\n if (firstBrace < 0 || lastBrace <= firstBrace) return null;\n try {\n return asRecord(JSON.parse(trimmed.slice(firstBrace, lastBrace + 1)));\n } catch {\n return null;\n }\n }\n}\n\nfunction normalizeBaseUrl(baseUrl: string | undefined): string | undefined {\n const trimmed = baseUrl?.trim();\n return trimmed ? trimmed.replace(/\\/+$/, \"\") : undefined;\n}\n\nfunction artifactUrl(baseUrl: string | undefined, path: string): string {\n const base = normalizeBaseUrl(baseUrl);\n return base ? `${base}${path}` : path;\n}\n\nfunction artifactUrlFromResult(\n parsed: Record<string, unknown>,\n fallbackPath: string,\n baseUrl: string | undefined,\n): string {\n const explicitUrl = stringValue(parsed.url) ?? stringValue(parsed.urlPath);\n if (!explicitUrl) return artifactUrl(baseUrl, fallbackPath);\n if (explicitUrl.startsWith(\"/\")) return artifactUrl(baseUrl, explicitUrl);\n try {\n return new URL(explicitUrl).toString();\n } catch {\n return artifactUrl(baseUrl, fallbackPath);\n }\n}\n\nfunction responseAlreadyMentionsPath(text: string, path: string): boolean {\n return text.includes(path);\n}\n\nfunction responseMentionsDesignShell(\n text: string,\n shell: CreatedDesignShell,\n): boolean {\n if (!text.trim()) return true;\n return text.includes(shell.id) || text.includes(`/design/${shell.id}`);\n}\n\nfunction responseAlreadyWarnsIncompleteDesign(text: string): boolean {\n return /(?:not ready|still working|processing|no renderable|no files|failed|could not|cannot|can't)/i.test(\n text,\n );\n}\n\nfunction isRenderableDesignFile(value: unknown): boolean {\n const file = asRecord(value);\n if (!file) return false;\n\n const filename = stringValue(file.filename);\n const fileType = stringValue(file.fileType);\n const hasRenderableType =\n fileType === \"html\" ||\n fileType === \"jsx\" ||\n filename?.endsWith(\".html\") ||\n filename?.endsWith(\".jsx\");\n if (!hasRenderableType) return false;\n\n return typeof file.content !== \"string\" || file.content.trim().length > 0;\n}\n\nfunction countRenderableDesignFiles(files: unknown): number {\n if (!Array.isArray(files)) return 0;\n return files.filter(isRenderableDesignFile).length;\n}\n\nfunction numberValue(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value)\n ? value\n : undefined;\n}\n\nfunction deckIdValue(parsed: Record<string, unknown>): string | undefined {\n return stringValue(parsed.id) ?? stringValue(parsed.deckId);\n}\n\nfunction dashboardIdValue(parsed: Record<string, unknown>): string | undefined {\n return stringValue(parsed.id) ?? stringValue(parsed.dashboardId);\n}\n\nfunction analysisIdValue(parsed: Record<string, unknown>): string | undefined {\n return stringValue(parsed.id) ?? stringValue(parsed.analysisId);\n}\n\nfunction imageIdValue(parsed: Record<string, unknown>): string | undefined {\n return (\n stringValue(parsed.assetId) ??\n stringValue(parsed.imageId) ??\n stringValue(parsed.id)\n );\n}\n\nfunction contentDatabaseSubmissionArtifact(\n parsed: Record<string, unknown>,\n): CreatedDocumentArtifact | null {\n const id = stringValue(parsed.createdDocumentId);\n if (!id) return null;\n\n const verification = asRecord(parsed.verification);\n const candidates = [\n stringValue(parsed.url),\n stringValue(parsed.urlPath),\n stringValue(parsed.createdDocumentUrl),\n stringValue(verification?.url),\n stringValue(verification?.urlPath),\n ].filter((value): value is string => !!value);\n const url = candidates.find((candidate) =>\n artifactUrlReferencesId(candidate, \"document\", id),\n );\n\n const items = Array.isArray(parsed.items) ? parsed.items : [];\n const createdItem = items.map(asRecord).find((item) => {\n const document = asRecord(item?.document);\n return stringValue(document?.id) === id;\n });\n const createdDocument = asRecord(createdItem?.document);\n\n return {\n id,\n title:\n stringValue(parsed.createdDocumentTitle) ??\n stringValue(createdDocument?.title),\n url,\n };\n}\n\nfunction documentUrlForId(\n parsed: Record<string, unknown>,\n id: string,\n additionalCandidates: Array<string | undefined> = [],\n options: { requireContentOrigin?: boolean } = {},\n): string | undefined {\n const candidates = [\n stringValue(parsed.url),\n stringValue(parsed.urlPath),\n stringValue(parsed.deepLink),\n stringValue(parsed.pageUrl),\n stringValue(parsed.documentUrl),\n ...additionalCandidates,\n ].filter((value): value is string => !!value);\n\n return candidates.find((candidate) => {\n if (!artifactUrlReferencesId(candidate, \"document\", id)) return false;\n return !options.requireContentOrigin || isContentDocumentUrl(candidate);\n });\n}\n\nfunction isContentDocumentUrl(rawUrl: string): boolean {\n try {\n return new URL(rawUrl).origin === \"https://content.agent-native.com\";\n } catch {\n return false;\n }\n}\n\nfunction addDocumentReadArtifact(\n documents: Map<string, CreatedDocumentArtifact>,\n parsed: Record<string, unknown>,\n options: {\n allowWithoutUrl: boolean;\n additionalUrlCandidates?: Array<string | undefined>;\n requireContentOrigin?: boolean;\n },\n): void {\n const id = stringValue(parsed.documentId) ?? stringValue(parsed.id);\n if (!id) return;\n\n const url = documentUrlForId(parsed, id, options.additionalUrlCandidates, {\n requireContentOrigin: options.requireContentOrigin,\n });\n if (!url && !options.allowWithoutUrl) return;\n\n documents.set(id, {\n id,\n title: stringValue(parsed.title) ?? stringValue(parsed.name),\n url,\n });\n}\n\nfunction addContentDatabaseReadArtifacts(\n documents: Map<string, CreatedDocumentArtifact>,\n parsed: Record<string, unknown>,\n): void {\n const resultUrls = [\n stringValue(parsed.url),\n stringValue(parsed.urlPath),\n stringValue(parsed.deepLink),\n ];\n const database = asRecord(parsed.database);\n if (database) {\n addDocumentReadArtifact(documents, database, {\n allowWithoutUrl: true,\n requireContentOrigin: true,\n additionalUrlCandidates: resultUrls,\n });\n } else {\n // Unavailable database reads still return a documentId, but they do not\n // prove that the page exists and must not authorize an artifact URL.\n if (parsed.available !== false) {\n addDocumentReadArtifact(documents, parsed, {\n allowWithoutUrl: true,\n requireContentOrigin: true,\n });\n }\n }\n\n if (!Array.isArray(parsed.items)) return;\n for (const item of parsed.items) {\n const itemRecord = asRecord(item);\n const document = asRecord(itemRecord?.document);\n if (!document) continue;\n addDocumentReadArtifact(documents, document, {\n allowWithoutUrl: true,\n requireContentOrigin: true,\n additionalUrlCandidates: [\n stringValue(itemRecord?.url),\n stringValue(itemRecord?.urlPath),\n stringValue(itemRecord?.deepLink),\n ],\n });\n }\n}\n\nfunction isGenericReadTool(tool: string): boolean {\n return /^(?:find|get|list|query|read|search)-/i.test(tool);\n}\n\nfunction addGenericDocumentReadArtifact(\n documents: Map<string, CreatedDocumentArtifact>,\n parsed: Record<string, unknown>,\n): void {\n // Unknown read actions are accepted only when their result pairs a document\n // ID with a canonical page URL containing that exact ID. An ID by itself is\n // insufficient, preserving the fabrication guard for unrelated actions.\n addDocumentReadArtifact(documents, parsed, {\n allowWithoutUrl: false,\n requireContentOrigin: true,\n });\n\n const document = asRecord(parsed.document);\n if (!document) return;\n addDocumentReadArtifact(documents, document, {\n allowWithoutUrl: false,\n requireContentOrigin: true,\n additionalUrlCandidates: [\n stringValue(parsed.url),\n stringValue(parsed.urlPath),\n stringValue(parsed.deepLink),\n ],\n });\n}\n\nfunction addImageArtifact(\n images: Map<string, CreatedImageArtifact>,\n parsed: Record<string, unknown>,\n): void {\n const id = imageIdValue(parsed);\n if (!id) return;\n images.set(id, {\n id,\n runId: stringValue(parsed.runId) ?? stringValue(parsed.generationRunId),\n title: stringValue(parsed.title),\n url:\n stringValue(parsed.pageUrl) ??\n stringValue(parsed.detailUrl) ??\n stringValue(parsed.url) ??\n stringValue(parsed.urlPath),\n });\n}\n\nfunction isReadyDeckArtifact(parsed: Record<string, unknown>): boolean {\n const slideCount = numberValue(parsed.slideCount);\n if (slideCount !== undefined) return slideCount > 0;\n if (Array.isArray(parsed.slides)) return parsed.slides.length > 0;\n return true;\n}\n\nfunction addDeckArtifact(\n decks: Map<string, CreatedDeckArtifact>,\n parsed: Record<string, unknown>,\n options: { requireReady: boolean },\n): void {\n const id = deckIdValue(parsed);\n if (!id) return;\n if (options.requireReady && !isReadyDeckArtifact(parsed)) return;\n decks.set(id, {\n id,\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n}\n\nfunction addListedDeckArtifacts(\n decks: Map<string, CreatedDeckArtifact>,\n parsed: Record<string, unknown>,\n): void {\n const items = parsed.decks;\n if (!Array.isArray(items)) return;\n for (const item of items) {\n const deck = asRecord(item);\n if (!deck) continue;\n addDeckArtifact(decks, deck, { requireReady: false });\n }\n}\n\nfunction collectArtifacts(results: A2AToolResultSummary[]): {\n documents: CreatedDocumentArtifact[];\n decks: CreatedDeckArtifact[];\n dashboards: CreatedDashboardArtifact[];\n analyses: CreatedAnalysisArtifact[];\n images: CreatedImageArtifact[];\n designShells: CreatedDesignShell[];\n generatedDesigns: GeneratedDesignArtifact[];\n monitors: CreatedMonitorArtifact[];\n forms: CreatedFormArtifact[];\n} {\n const documents = new Map<string, CreatedDocumentArtifact>();\n const decks = new Map<string, CreatedDeckArtifact>();\n const dashboards = new Map<string, CreatedDashboardArtifact>();\n const analyses = new Map<string, CreatedAnalysisArtifact>();\n const images = new Map<string, CreatedImageArtifact>();\n const designShells = new Map<string, CreatedDesignShell>();\n const generatedDesigns = new Map<string, GeneratedDesignArtifact>();\n const monitors = new Map<string, CreatedMonitorArtifact>();\n const forms = new Map<string, CreatedFormArtifact>();\n\n for (const toolResult of results) {\n if (toolResult.isError === true || toolResult.completedSideEffect === false)\n continue;\n if (toolResult.tool === \"call-agent\") {\n for (const artifact of parseDownstreamArtifactBlock(toolResult.result)) {\n if (artifact.kind === \"deck\") {\n decks.set(artifact.id, {\n id: artifact.id,\n url: artifact.url,\n });\n } else if (artifact.kind === \"document\") {\n documents.set(artifact.id, {\n id: artifact.id,\n title: artifact.title,\n url: artifact.url,\n });\n } else if (artifact.kind === \"dashboard\") {\n dashboards.set(artifact.id, {\n id: artifact.id,\n title: artifact.title,\n url: artifact.url,\n });\n } else if (artifact.kind === \"analysis\") {\n analyses.set(artifact.id, {\n id: artifact.id,\n title: artifact.title,\n url: artifact.url,\n });\n } else if (artifact.kind === \"image\") {\n images.set(artifact.id, {\n id: artifact.id,\n title: artifact.title,\n url: artifact.url,\n runId: artifact.runId,\n });\n } else if (artifact.kind === \"design\" && artifact.fileCount > 0) {\n generatedDesigns.set(artifact.id, {\n id: artifact.id,\n fileCount: artifact.fileCount,\n url: artifact.url,\n });\n }\n }\n continue;\n }\n\n const parsed = parseToolResultJson(toolResult.result);\n if (!parsed) continue;\n\n if (toolResult.tool === \"save-monitor\") {\n const id = stringValue(parsed.id);\n const url = stringValue(parsed.monitorAppUrl);\n if (id && url) {\n monitors.set(id, {\n id,\n name: stringValue(parsed.name),\n url,\n });\n }\n continue;\n }\n\n if (toolResult.tool === \"create-form\") {\n const id = stringValue(parsed.id);\n const url = stringValue(parsed.publicUrl);\n if (id && url && stringValue(parsed.status) === \"published\") {\n const settings = asRecord(parsed.settings);\n forms.set(id, {\n id,\n title: stringValue(parsed.title),\n url,\n anonymous: settings?.anonymous === true,\n });\n }\n continue;\n }\n\n if (\n toolResult.tool === \"submit-content-database-form\" ||\n toolResult.tool === \"add-database-item\"\n ) {\n const artifact = contentDatabaseSubmissionArtifact(parsed);\n if (artifact) documents.set(artifact.id, artifact);\n continue;\n }\n\n if (\n toolResult.tool === \"create-document\" ||\n toolResult.tool === \"update-document\"\n ) {\n if (parsed.conflict === true) continue;\n const id = stringValue(parsed.id);\n if (id) {\n documents.set(id, {\n id,\n title: stringValue(parsed.title),\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n continue;\n }\n\n if (toolResult.tool === \"set-document-property\") {\n const id = stringValue(parsed.documentId);\n if (id) {\n documents.set(id, {\n id,\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n continue;\n }\n\n if (\n toolResult.tool === \"get-document\" ||\n toolResult.tool === \"get-content-document\"\n ) {\n const document = asRecord(parsed.document);\n addDocumentReadArtifact(documents, document ?? parsed, {\n allowWithoutUrl: true,\n requireContentOrigin: true,\n additionalUrlCandidates: document\n ? [\n stringValue(parsed.url),\n stringValue(parsed.urlPath),\n stringValue(parsed.deepLink),\n ]\n : [],\n });\n continue;\n }\n\n if (toolResult.tool === \"get-content-database\") {\n addContentDatabaseReadArtifacts(documents, parsed);\n continue;\n }\n\n if (isGenericReadTool(toolResult.tool)) {\n addGenericDocumentReadArtifact(documents, parsed);\n }\n\n if (\n toolResult.tool === \"create-deck\" ||\n toolResult.tool === \"duplicate-deck\"\n ) {\n addDeckArtifact(decks, parsed, { requireReady: true });\n continue;\n }\n\n if (toolResult.tool === \"get-deck\") {\n addDeckArtifact(decks, parsed, { requireReady: false });\n continue;\n }\n\n if (toolResult.tool === \"list-decks\") {\n addListedDeckArtifacts(decks, parsed);\n continue;\n }\n\n if (toolResult.tool === \"add-slide\") {\n const id = stringValue(parsed.deckId);\n const slideCount = numberValue(parsed.slideCount);\n if (id && slideCount !== undefined && slideCount > 0) {\n decks.set(id, {\n id,\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n continue;\n }\n\n if (\n toolResult.tool === \"update-dashboard\" ||\n toolResult.tool === \"rename-dashboard\" ||\n toolResult.tool === \"get-dashboard\"\n ) {\n const id = dashboardIdValue(parsed);\n if (id) {\n dashboards.set(id, {\n id,\n title: stringValue(parsed.name) ?? stringValue(parsed.title),\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n continue;\n }\n\n if (\n toolResult.tool === \"save-analysis\" ||\n toolResult.tool === \"get-analysis\"\n ) {\n const id = analysisIdValue(parsed);\n if (id) {\n analyses.set(id, {\n id,\n title: stringValue(parsed.name) ?? stringValue(parsed.title),\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n continue;\n }\n\n if (\n toolResult.tool === \"generate-image\" ||\n toolResult.tool === \"edit-image\" ||\n toolResult.tool === \"refine-image\" ||\n toolResult.tool === \"restyle-image\" ||\n toolResult.tool === \"get-asset\" ||\n toolResult.tool === \"save-generated-image\" ||\n toolResult.tool === \"save-generated-asset\" ||\n toolResult.tool === \"export-image\"\n ) {\n addImageArtifact(images, parsed);\n continue;\n }\n\n if (toolResult.tool === \"export-asset\") {\n if (stringValue(parsed.artifactType) === \"image\") {\n addImageArtifact(images, parsed);\n }\n continue;\n }\n\n if (toolResult.tool === \"generate-image-batch\") {\n if (Array.isArray(parsed.images)) {\n for (const item of parsed.images) {\n const image = asRecord(item);\n if (!image || image.ok === false) continue;\n addImageArtifact(images, image);\n }\n }\n continue;\n }\n\n if (toolResult.tool === \"create-design\") {\n const id = stringValue(parsed.id);\n if (id) {\n designShells.set(id, { id, title: stringValue(parsed.title) });\n }\n continue;\n }\n\n if (toolResult.tool === \"get-design\") {\n const id = stringValue(parsed.id);\n if (!id) continue;\n\n const renderableFileCount = countRenderableDesignFiles(parsed.files);\n if (renderableFileCount > 0) {\n generatedDesigns.set(id, {\n id,\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n fileCount: Array.isArray(parsed.files)\n ? parsed.files.length\n : renderableFileCount,\n });\n } else {\n designShells.set(id, { id, title: stringValue(parsed.title) });\n }\n continue;\n }\n\n if (toolResult.tool === \"generate-design\") {\n const id = stringValue(parsed.designId);\n if (!id) continue;\n\n const savedFiles = Array.isArray(parsed.savedFiles)\n ? parsed.savedFiles\n : [];\n const fileCount = numberValue(parsed.fileCount) ?? savedFiles.length;\n\n if (fileCount > 0) {\n generatedDesigns.set(id, {\n id,\n fileCount,\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n continue;\n }\n\n if (toolResult.tool === \"create-file\") {\n const id = stringValue(parsed.designId);\n if (!id) continue;\n const renderable =\n parsed.renderable === true ||\n stringValue(parsed.fileType) === \"html\" ||\n stringValue(parsed.fileType) === \"jsx\";\n\n if (renderable) {\n const previous = generatedDesigns.get(id);\n generatedDesigns.set(id, {\n id,\n url:\n stringValue(parsed.url) ??\n stringValue(parsed.urlPath) ??\n previous?.url,\n fileCount: (previous?.fileCount ?? 0) + 1,\n });\n }\n }\n\n if (toolResult.tool === \"duplicate-design\") {\n const id = stringValue(parsed.id);\n const fileCount = numberValue(parsed.fileCount);\n if (id && fileCount && fileCount > 0) {\n generatedDesigns.set(id, {\n id,\n fileCount,\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n }\n }\n\n return {\n documents: [...documents.values()],\n decks: [...decks.values()],\n dashboards: [...dashboards.values()],\n analyses: [...analyses.values()],\n images: [...images.values()],\n designShells: [...designShells.values()],\n generatedDesigns: [...generatedDesigns.values()],\n monitors: [...monitors.values()],\n forms: [...forms.values()],\n };\n}\n\n/**\n * Extract a compact, verified identity ledger from successful artifact tools.\n * The ledger deliberately excludes raw tool results so it is safe to retain in\n * long-lived thread context and stable even when a resource is later renamed.\n */\nexport function extractA2AArtifactIdentities(\n results: A2AToolResultSummary[],\n options: A2AArtifactIdentityOptions = {},\n): A2AArtifactIdentity[] {\n const identities = new Map<string, A2AArtifactIdentity>();\n\n const remember = (identity: A2AArtifactIdentity) => {\n identities.set(`${identity.resourceType}:${identity.id}`, identity);\n };\n\n for (const result of results) {\n if (result.isError === true || result.completedSideEffect === false)\n continue;\n if (result.tool === \"call-agent\") {\n for (const identity of persistedArtifactIdentitiesFromMarker(\n result.result,\n options.persistedArtifactSecrets,\n )) {\n remember({ ...identity, sourceAction: \"call-agent\" });\n }\n continue;\n }\n if (!ARTIFACT_IDENTITY_WRITE_TOOLS.has(result.tool)) continue;\n const artifacts = collectArtifacts([result]);\n for (const document of artifacts.documents) {\n remember({\n resourceType: \"document\",\n id: document.id,\n sourceAction: result.tool,\n titleAtAction: document.title,\n url: document.url,\n });\n }\n for (const deck of artifacts.decks) {\n remember({\n resourceType: \"deck\",\n id: deck.id,\n sourceAction: result.tool,\n url: deck.url,\n });\n }\n for (const dashboard of artifacts.dashboards) {\n remember({\n resourceType: \"dashboard\",\n id: dashboard.id,\n sourceAction: result.tool,\n titleAtAction: dashboard.title,\n url: dashboard.url,\n });\n }\n for (const analysis of artifacts.analyses) {\n remember({\n resourceType: \"analysis\",\n id: analysis.id,\n sourceAction: result.tool,\n titleAtAction: analysis.title,\n url: analysis.url,\n });\n }\n for (const image of artifacts.images) {\n remember({\n resourceType: \"image\",\n id: image.id,\n sourceAction: result.tool,\n titleAtAction: image.title,\n url: image.url,\n });\n }\n for (const design of artifacts.designShells) {\n remember({\n resourceType: \"design\",\n id: design.id,\n sourceAction: result.tool,\n titleAtAction: design.title,\n });\n }\n for (const design of artifacts.generatedDesigns) {\n remember({\n resourceType: \"design\",\n id: design.id,\n sourceAction: result.tool,\n url: design.url,\n });\n }\n for (const monitor of artifacts.monitors) {\n remember({\n resourceType: \"monitor\",\n id: monitor.id,\n sourceAction: result.tool,\n titleAtAction: monitor.name,\n url: monitor.url,\n });\n }\n for (const form of artifacts.forms) {\n remember({\n resourceType: \"form\",\n id: form.id,\n sourceAction: result.tool,\n titleAtAction: form.title,\n url: form.url,\n });\n }\n }\n\n return [...identities.values()];\n}\n\ntype DownstreamArtifact =\n | { kind: \"deck\"; id: string; url: string }\n | { kind: \"document\"; id: string; url: string; title?: string }\n | { kind: \"dashboard\"; id: string; url: string; title?: string }\n | { kind: \"analysis\"; id: string; url: string; title?: string }\n | { kind: \"image\"; id: string; url: string; title?: string; runId?: string }\n | { kind: \"design\"; id: string; url: string; fileCount: number };\n\nfunction parseDownstreamArtifactBlock(result: string): DownstreamArtifact[] {\n const artifacts: DownstreamArtifact[] = [];\n for (const line of downstreamArtifactLines(result)) {\n const deck = line.match(\n /^- Deck(?:\\s+\"[^\"]+\")?(?:\\s+\\([^)]*\\))?:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+)\\)$/,\n );\n if (deck) {\n const id = deck[2];\n if (!artifactUrlReferencesId(deck[1], \"deck\", id)) continue;\n artifacts.push({\n kind: \"deck\",\n url: deck[1],\n id,\n });\n continue;\n }\n\n const document = line.match(\n /^- Document(?:\\s+\"([^\"]+)\")?:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+)\\)$/,\n );\n if (document) {\n const id = document[3];\n if (!artifactUrlReferencesId(document[2], \"document\", id)) continue;\n artifacts.push({\n kind: \"document\",\n title: document[1],\n url: document[2],\n id,\n });\n continue;\n }\n\n const dashboard = line.match(\n /^- Dashboard(?:\\s+\"([^\"]+)\")?:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+)\\)$/,\n );\n if (dashboard) {\n const id = dashboard[3];\n if (!artifactUrlReferencesId(dashboard[2], \"dashboard\", id)) continue;\n artifacts.push({\n kind: \"dashboard\",\n title: dashboard[1],\n url: dashboard[2],\n id,\n });\n continue;\n }\n\n const analysis = line.match(\n /^- (?:Analysis|Report)(?:\\s+\"([^\"]+)\")?:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+)\\)$/,\n );\n if (analysis) {\n const id = analysis[3];\n if (!artifactUrlReferencesId(analysis[2], \"analysis\", id)) continue;\n artifacts.push({\n kind: \"analysis\",\n title: analysis[1],\n url: analysis[2],\n id,\n });\n continue;\n }\n\n const image = line.match(\n /^- Image(?:\\s+\"([^\"]+)\")?:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+)(?:,\\s*Run:\\s*([A-Za-z0-9_-]+))?\\)$/,\n );\n if (image) {\n const id = image[3];\n if (!artifactUrlReferencesId(image[2], \"image\", id)) continue;\n artifacts.push({\n kind: \"image\",\n title: image[1],\n url: image[2],\n id,\n runId: image[4],\n });\n continue;\n }\n\n const design = line.match(\n /^- Design:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+),\\s*(\\d+)\\s+files?\\)$/,\n );\n if (design) {\n const id = design[2];\n if (!artifactUrlReferencesId(design[1], \"design\", id)) continue;\n artifacts.push({\n kind: \"design\",\n url: design[1],\n id,\n fileCount: Number(design[3]),\n });\n }\n }\n return artifacts;\n}\n\nfunction downstreamArtifactLines(result: string): string[] {\n const lines = result.split(/\\r?\\n/);\n const artifactLines: string[] = [];\n\n for (let i = 0; i < lines.length; i += 1) {\n if (lines[i].trim() !== \"Artifacts:\") continue;\n\n let sawBlockLine = false;\n for (let j = i + 1; j < lines.length; j += 1) {\n const trimmed = lines[j].trim();\n if (!trimmed) {\n if (!sawBlockLine) continue;\n break;\n }\n if (!trimmed.startsWith(\"- \")) break;\n sawBlockLine = true;\n artifactLines.push(trimmed);\n }\n }\n\n return artifactLines;\n}\n\nfunction artifactUrlReferencesId(\n rawUrl: string,\n kind: ReferencedArtifactKind,\n id: string,\n): boolean {\n const reference = parseArtifactReferenceUrl(rawUrl);\n return reference?.kind === kind && reference.id === id;\n}\n\nfunction parseArtifactReferenceUrl(rawUrl: string): ReferencedArtifact | null {\n let url: URL;\n try {\n url = new URL(rawUrl, \"https://agent-native-artifact.invalid\");\n } catch {\n return null;\n }\n\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") return null;\n\n const path = url.pathname.replace(/\\/+$/, \"\");\n const deck = path.match(/(?:^|\\/)deck\\/([A-Za-z0-9_-]+)(?:\\/present)?$/);\n if (deck) return { kind: \"deck\", id: deck[1] };\n\n const design = path.match(/(?:^|\\/)design\\/([A-Za-z0-9_-]+)$/);\n if (design) return { kind: \"design\", id: design[1] };\n\n const document = path.match(/(?:^|\\/)page\\/([A-Za-z0-9_-]+)$/);\n if (document) return { kind: \"document\", id: document[1] };\n\n const dashboard = path.match(/(?:^|\\/)adhoc\\/([A-Za-z0-9_-]+)$/);\n if (dashboard) return { kind: \"dashboard\", id: dashboard[1] };\n\n const analysis = path.match(/(?:^|\\/)analyses\\/([A-Za-z0-9_-]+)$/);\n if (analysis) return { kind: \"analysis\", id: analysis[1] };\n\n const image = path.match(/(?:^|\\/)image\\/([A-Za-z0-9_-]+)$/);\n if (image) return { kind: \"image\", id: image[1] };\n\n const imageEmbed = path.match(/(?:^|\\/)asset\\/([A-Za-z0-9_-]+)\\/embed$/);\n if (imageEmbed) return { kind: \"image\", id: imageEmbed[1] };\n\n const imageContent = path.match(\n /(?:^|\\/)api\\/assets\\/([A-Za-z0-9_-]+)\\/content$/,\n );\n if (imageContent) return { kind: \"image\", id: imageContent[1] };\n\n return null;\n}\n\nfunction formatDocumentLine(\n document: CreatedDocumentArtifact,\n baseUrl: string | undefined,\n): string {\n const label = document.title ? `Document \"${document.title}\"` : \"Document\";\n return `- ${label}: ${artifactUrlFromResult({ url: document.url }, `/page/${document.id}`, baseUrl)} (ID: ${document.id})`;\n}\n\nfunction formatDeckLine(\n deck: CreatedDeckArtifact,\n baseUrl: string | undefined,\n): string {\n return `- Deck: ${artifactUrlFromResult({ url: deck.url }, `/deck/${deck.id}`, baseUrl)} (ID: ${deck.id})`;\n}\n\nfunction formatDashboardLine(\n dashboard: CreatedDashboardArtifact,\n baseUrl: string | undefined,\n): string {\n const label = dashboard.title\n ? `Dashboard \"${dashboard.title}\"`\n : \"Dashboard\";\n return `- ${label}: ${artifactUrlFromResult({ url: dashboard.url }, `/adhoc/${dashboard.id}`, baseUrl)} (ID: ${dashboard.id})`;\n}\n\nfunction formatAnalysisLine(\n analysis: CreatedAnalysisArtifact,\n baseUrl: string | undefined,\n): string {\n const label = analysis.title ? `Report \"${analysis.title}\"` : \"Report\";\n return `- ${label}: ${artifactUrlFromResult({ url: analysis.url }, `/analyses/${analysis.id}`, baseUrl)} (ID: ${analysis.id})`;\n}\n\nfunction formatImageLine(\n image: CreatedImageArtifact,\n baseUrl: string | undefined,\n): string {\n const label = image.title ? `Image \"${image.title}\"` : \"Image\";\n const run = image.runId ? `, Run: ${image.runId}` : \"\";\n return `- ${label}: ${artifactUrlFromResult({ url: image.url }, `/image/${image.id}`, baseUrl)} (ID: ${image.id}${run})`;\n}\n\nfunction formatDesignLine(\n design: GeneratedDesignArtifact,\n baseUrl: string | undefined,\n): string {\n const fileLabel =\n design.fileCount === 1 ? \"1 file\" : `${design.fileCount} files`;\n return `- Design: ${artifactUrlFromResult({ url: design.url }, `/design/${design.id}`, baseUrl)} (ID: ${design.id}, ${fileLabel})`;\n}\n\nfunction formatMonitorLine(monitor: CreatedMonitorArtifact): string {\n const label = monitor.name ? `Monitor \"${monitor.name}\"` : \"Monitor\";\n return `- ${label}: ${monitor.url} (ID: ${monitor.id})`;\n}\n\nfunction formatFormLine(form: CreatedFormArtifact): string {\n const kind = form.anonymous ? \"Anonymous form\" : \"Public form\";\n const label = form.title ? `${kind} \"${form.title}\"` : kind;\n return `- ${label}: ${form.url} (ID: ${form.id})`;\n}\n\nfunction formatIncompleteDesignMessage(shells: CreatedDesignShell[]): string {\n const ids = shells.map((shell) => shell.id).join(\", \");\n const noun = shells.length === 1 ? \"project shell\" : \"project shells\";\n return (\n `The design is not ready yet. Design ${noun} ${ids} ` +\n \"exists, but no renderable files were saved, so I cannot return it as a completed artifact.\"\n );\n}\n\nfunction collectReferencedArtifacts(\n text: string,\n baseUrl: string | undefined,\n): ReferencedArtifact[] {\n const refs = new Map<string, ReferencedArtifact>();\n const baseOrigin = safeOrigin(baseUrl);\n const artifactUrlPattern =\n /(?:(https?:\\/\\/[^/\\s<>()]+))?(?:\\/[^\\s<>()]*)?\\/(deck|design|page|adhoc|analyses|image|asset|assets)\\/([A-Za-z0-9_-]+)/g;\n\n for (const match of text.matchAll(artifactUrlPattern)) {\n const origin = safeOrigin(match[1]);\n const route = match[2];\n const id = match[3];\n const kind: ReferencedArtifactKind =\n route === \"deck\"\n ? \"deck\"\n : route === \"design\"\n ? \"design\"\n : route === \"page\"\n ? \"document\"\n : route === \"adhoc\"\n ? \"dashboard\"\n : route === \"analyses\"\n ? \"analysis\"\n : \"image\";\n if (!shouldValidateArtifactReference(origin, baseOrigin, kind)) continue;\n refs.set(`${kind}:${id}`, { kind, id });\n }\n\n return [...refs.values()];\n}\n\nfunction safeOrigin(url: string | undefined): string | undefined {\n if (!url) return undefined;\n try {\n return new URL(url).origin;\n } catch {\n return undefined;\n }\n}\n\nconst KNOWN_AGENT_NATIVE_ARTIFACT_HOSTS: Record<\n ReferencedArtifactKind,\n ReadonlySet<string>\n> = {\n deck: new Set([\"slides.agent-native.com\"]),\n design: new Set([\"design.agent-native.com\"]),\n document: new Set([\"content.agent-native.com\"]),\n dashboard: new Set([\"analytics.agent-native.com\"]),\n analysis: new Set([\"analytics.agent-native.com\"]),\n image: new Set([\"assets.agent-native.com\", \"images.agent-native.com\"]),\n};\n\nfunction safeHostnameFromOrigin(\n origin: string | undefined,\n): string | undefined {\n if (!origin) return undefined;\n try {\n return new URL(origin).hostname.toLowerCase();\n } catch {\n return undefined;\n }\n}\n\nfunction shouldValidateArtifactReference(\n origin: string | undefined,\n baseOrigin: string | undefined,\n kind: ReferencedArtifactKind,\n): boolean {\n if (!origin || !baseOrigin || origin === baseOrigin) return true;\n\n const hostname = safeHostnameFromOrigin(origin);\n return !!hostname && KNOWN_AGENT_NATIVE_ARTIFACT_HOSTS[kind].has(hostname);\n}\n\nfunction findUnverifiedArtifactReferences(\n text: string,\n baseUrl: string | undefined,\n documents: CreatedDocumentArtifact[],\n decks: CreatedDeckArtifact[],\n dashboards: CreatedDashboardArtifact[],\n analyses: CreatedAnalysisArtifact[],\n images: CreatedImageArtifact[],\n generatedDesigns: GeneratedDesignArtifact[],\n): ReferencedArtifact[] {\n const documentIds = new Set(documents.map((document) => document.id));\n const deckIds = new Set(decks.map((deck) => deck.id));\n const dashboardIds = new Set(dashboards.map((dashboard) => dashboard.id));\n const analysisIds = new Set(analyses.map((analysis) => analysis.id));\n const imageIds = new Set(images.map((image) => image.id));\n const designIds = new Set(generatedDesigns.map((design) => design.id));\n\n return collectReferencedArtifacts(text, baseUrl).filter((ref) => {\n if (ref.kind === \"document\") return !documentIds.has(ref.id);\n if (ref.kind === \"deck\") return !deckIds.has(ref.id);\n if (ref.kind === \"dashboard\") return !dashboardIds.has(ref.id);\n if (ref.kind === \"analysis\") return !analysisIds.has(ref.id);\n if (ref.kind === \"image\") return !imageIds.has(ref.id);\n return !designIds.has(ref.id);\n });\n}\n\nfunction formatUnverifiedArtifactMessage(\n refs: ReferencedArtifact[],\n documents: CreatedDocumentArtifact[],\n decks: CreatedDeckArtifact[],\n dashboards: CreatedDashboardArtifact[],\n analyses: CreatedAnalysisArtifact[],\n images: CreatedImageArtifact[],\n generatedDesigns: GeneratedDesignArtifact[],\n baseUrl: string | undefined,\n): string {\n const hasOnlyDesigns = refs.every((ref) => ref.kind === \"design\");\n const hasOnlyDocuments = refs.every((ref) => ref.kind === \"document\");\n const hasOnlyDecks = refs.every((ref) => ref.kind === \"deck\");\n const hasOnlyDashboards = refs.every((ref) => ref.kind === \"dashboard\");\n const hasOnlyAnalyses = refs.every((ref) => ref.kind === \"analysis\");\n const hasOnlyImages = refs.every((ref) => ref.kind === \"image\");\n const label = hasOnlyDesigns\n ? \"design URL\"\n : hasOnlyDocuments\n ? \"document URL\"\n : hasOnlyDecks\n ? \"deck URL\"\n : hasOnlyDashboards\n ? \"dashboard URL\"\n : hasOnlyAnalyses\n ? \"report URL\"\n : hasOnlyImages\n ? \"image URL\"\n : \"artifact URL\";\n const plural = refs.length === 1 ? label : `${label}s`;\n const message = `I could not verify the ${plural} in the final answer against a successful artifact action that saved app data, so I cannot return it.`;\n const verifiedLines = [\n ...documents.map((document) => formatDocumentLine(document, baseUrl)),\n ...decks.map((deck) => formatDeckLine(deck, baseUrl)),\n ...dashboards.map((dashboard) => formatDashboardLine(dashboard, baseUrl)),\n ...analyses.map((analysis) => formatAnalysisLine(analysis, baseUrl)),\n ...images.map((image) => formatImageLine(image, baseUrl)),\n ...generatedDesigns.map((design) => formatDesignLine(design, baseUrl)),\n ];\n\n return verifiedLines.length > 0\n ? `${message}\\n\\nArtifacts:\\n${verifiedLines.join(\"\\n\")}`\n : message;\n}\n\nexport function guardA2AArtifactResponse(\n responseText: string,\n toolResults: A2AToolResultSummary[],\n options: A2AArtifactResponseOptions = {},\n): GuardedA2AArtifactResponse {\n const baseUrl = normalizeBaseUrl(options.baseUrl);\n const includeReferencedArtifacts =\n options.includeReferencedArtifacts ?? false;\n const finalize = (value: string) =>\n options.includePersistedArtifactMarker\n ? withPersistedArtifactMarker(\n value,\n toolResults,\n options.persistedArtifactSecret ?? process.env.A2A_SECRET,\n )\n : value;\n const {\n documents,\n decks,\n dashboards,\n analyses,\n images,\n designShells,\n generatedDesigns,\n monitors,\n forms,\n } = collectArtifacts(toolResults);\n const generatedDesignIds = new Set(\n generatedDesigns.map((design) => design.id),\n );\n const incompleteShells = designShells.filter(\n (shell) => !generatedDesignIds.has(shell.id),\n );\n\n let text = responseText.trim() === \"(no response)\" ? \"\" : responseText.trim();\n\n if (\n generatedDesigns.length === 0 &&\n incompleteShells.length > 0 &&\n !responseAlreadyWarnsIncompleteDesign(text) &&\n (incompleteShells.some((shell) =>\n responseMentionsDesignShell(text, shell),\n ) ||\n /\\b(?:done|created|ready|here(?:'s| is)|complete|finished)\\b/i.test(text))\n ) {\n return {\n text: finalize(formatIncompleteDesignMessage(incompleteShells)),\n rejectedUnverifiedArtifactReferences: false,\n };\n }\n\n const unverifiedRefs = findUnverifiedArtifactReferences(\n text,\n baseUrl,\n documents,\n decks,\n dashboards,\n analyses,\n images,\n generatedDesigns,\n );\n if (unverifiedRefs.length > 0) {\n return {\n text: finalize(\n formatUnverifiedArtifactMessage(\n unverifiedRefs,\n documents,\n decks,\n dashboards,\n analyses,\n images,\n generatedDesigns,\n baseUrl,\n ),\n ),\n rejectedUnverifiedArtifactReferences: true,\n };\n }\n\n const missingLines: string[] = [];\n for (const document of documents) {\n const path = `/page/${document.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatDocumentLine(document, baseUrl));\n }\n }\n for (const deck of decks) {\n const path = `/deck/${deck.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatDeckLine(deck, baseUrl));\n }\n }\n for (const dashboard of dashboards) {\n const path = `/adhoc/${dashboard.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatDashboardLine(dashboard, baseUrl));\n }\n }\n for (const analysis of analyses) {\n const path = `/analyses/${analysis.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatAnalysisLine(analysis, baseUrl));\n }\n }\n for (const image of images) {\n const path = `/image/${image.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatImageLine(image, baseUrl));\n }\n }\n for (const design of generatedDesigns) {\n const path = `/design/${design.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatDesignLine(design, baseUrl));\n }\n }\n for (const monitor of monitors) {\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, monitor.url)\n ) {\n missingLines.push(formatMonitorLine(monitor));\n }\n }\n for (const form of forms) {\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, form.url)\n ) {\n missingLines.push(formatFormLine(form));\n }\n }\n\n if (missingLines.length === 0) {\n return {\n text: finalize(text),\n rejectedUnverifiedArtifactReferences: false,\n };\n }\n\n const artifactBlock = `Artifacts:\\n${missingLines.join(\"\\n\")}`;\n return {\n text: finalize(text ? `${text}\\n\\n${artifactBlock}` : artifactBlock),\n rejectedUnverifiedArtifactReferences: false,\n };\n}\n\nexport function appendA2AArtifactLinks(\n responseText: string,\n toolResults: A2AToolResultSummary[],\n options: A2AArtifactResponseOptions = {},\n): string {\n return guardA2AArtifactResponse(responseText, toolResults, options).text;\n}\n\nexport function buildA2ARecoverableArtifactMessage(\n toolResults: A2AToolResultSummary[],\n options: A2AArtifactResponseOptions = {},\n): string | null {\n const baseUrl = normalizeBaseUrl(options.baseUrl);\n const {\n documents,\n decks,\n dashboards,\n analyses,\n images,\n generatedDesigns,\n monitors,\n forms,\n } = collectArtifacts(toolResults);\n const lines = [\n ...documents.map((document) => formatDocumentLine(document, baseUrl)),\n ...decks.map((deck) => formatDeckLine(deck, baseUrl)),\n ...dashboards.map((dashboard) => formatDashboardLine(dashboard, baseUrl)),\n ...analyses.map((analysis) => formatAnalysisLine(analysis, baseUrl)),\n ...images.map((image) => formatImageLine(image, baseUrl)),\n ...generatedDesigns.map((design) => formatDesignLine(design, baseUrl)),\n ...monitors.map(formatMonitorLine),\n ...forms.map(formatFormLine),\n ];\n\n if (lines.length === 0) return null;\n return [\n \"The agent is still working on the full response, but these verified artifacts already exist:\",\n \"\",\n \"Artifacts:\",\n ...lines,\n ].join(\"\\n\");\n}\n\nfunction mutationReceiptUrl(\n identity: A2AArtifactIdentity,\n baseUrl: string | undefined,\n): string | undefined {\n if (\n identity.sourceAction === \"call-agent\" &&\n (!identity.url || identity.url.startsWith(\"/\"))\n ) {\n return undefined;\n }\n if (identity.url) {\n return identity.url.startsWith(\"/\")\n ? artifactUrl(baseUrl, identity.url)\n : identity.url;\n }\n\n const path =\n identity.resourceType === \"document\"\n ? `/page/${identity.id}`\n : identity.resourceType === \"deck\"\n ? `/deck/${identity.id}`\n : identity.resourceType === \"dashboard\"\n ? `/adhoc/${identity.id}`\n : identity.resourceType === \"analysis\"\n ? `/analyses/${identity.id}`\n : identity.resourceType === \"image\"\n ? `/image/${identity.id}`\n : identity.resourceType === \"design\"\n ? `/design/${identity.id}`\n : undefined;\n return path ? artifactUrl(baseUrl, path) : undefined;\n}\n\n/**\n * Build a bounded participant-facing receipt from authenticated artifact writes.\n * Unlike generic artifact recovery, this only trusts identities extracted from\n * successful write actions (or a signed downstream write ledger), so a read or\n * an unverified URL cannot be rounded up to a successful mutation.\n */\nexport function buildA2AVerifiedMutationReceipt(\n toolResults: A2AToolResultSummary[],\n options: A2AArtifactResponseOptions = {},\n): string | null {\n const baseUrl = normalizeBaseUrl(options.baseUrl);\n const identities = extractA2AArtifactIdentities(toolResults);\n if (identities.length === 0) return null;\n\n const lines = identities.map((identity) => {\n const label =\n identity.resourceType.charAt(0).toUpperCase() +\n identity.resourceType.slice(1);\n const url = mutationReceiptUrl(identity, baseUrl);\n return url\n ? `- ${label}: ${url} (ID: ${identity.id})`\n : `- ${label} ID: ${identity.id}`;\n });\n\n return [\n \"A verified change was saved, but I couldn't generate the detailed summary.\",\n \"\",\n \"Saved artifacts:\",\n ...lines,\n ].join(\"\\n\");\n}\n"]}
1
+ {"version":3,"file":"artifact-response.js","sourceRoot":"","sources":["../../src/a2a/artifact-response.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHmac, timingSafeEqual } from \"node:crypto\";\n\nexport interface A2AToolResultSummary {\n tool: string;\n result: string;\n isError?: boolean;\n completedSideEffect?: boolean;\n}\n\nexport interface A2AArtifactResponseOptions {\n baseUrl?: string;\n includeReferencedArtifacts?: boolean;\n includePersistedArtifactMarker?: boolean;\n persistedArtifactSecret?: string;\n}\n\nexport interface GuardedA2AArtifactResponse {\n text: string;\n rejectedUnverifiedArtifactReferences: boolean;\n}\n\nexport interface A2AArtifactIdentityOptions {\n persistedArtifactSecrets?: readonly string[];\n}\n\nexport interface A2AArtifactIdentity {\n resourceType:\n | \"document\"\n | \"deck\"\n | \"dashboard\"\n | \"analysis\"\n | \"image\"\n | \"design\"\n | \"monitor\"\n | \"form\";\n id: string;\n sourceAction: string;\n titleAtAction?: string;\n url?: string;\n}\n\nconst ARTIFACT_IDENTITY_WRITE_TOOLS = new Set([\n \"save-monitor\",\n \"create-form\",\n \"submit-content-database-form\",\n \"add-database-item\",\n \"create-document\",\n \"update-document\",\n \"set-document-property\",\n \"create-deck\",\n \"duplicate-deck\",\n \"add-slide\",\n \"update-slide\",\n \"patch-deck\",\n \"save-deck\",\n \"import-pptx\",\n \"restore-deck-version\",\n \"update-dashboard\",\n \"rename-dashboard\",\n \"save-analysis\",\n \"generate-image\",\n \"edit-image\",\n \"refine-image\",\n \"restyle-image\",\n \"save-generated-image\",\n \"save-generated-asset\",\n \"export-image\",\n \"export-asset\",\n \"generate-image-batch\",\n \"create-design\",\n \"generate-design\",\n \"create-file\",\n \"duplicate-design\",\n]);\n\nconst PERSISTED_ARTIFACT_MARKER = \"agent-native:persisted-artifacts=\";\nconst PERSISTED_ARTIFACT_MARKER_PATTERN =\n /\\s*<!--\\s*agent-native:persisted-artifacts=[A-Za-z0-9_-]+\\.[a-f0-9]{64}\\s*-->/g;\nconst ARTIFACT_RESOURCE_TYPES = new Set<A2AArtifactIdentity[\"resourceType\"]>([\n \"document\",\n \"deck\",\n \"dashboard\",\n \"analysis\",\n \"image\",\n \"design\",\n \"monitor\",\n \"form\",\n]);\n\nfunction persistedArtifactIdentitiesFromMarker(\n result: string,\n secrets: readonly string[] = process.env.A2A_SECRET\n ? [process.env.A2A_SECRET]\n : [],\n): A2AArtifactIdentity[] {\n if (secrets.length === 0) return [];\n const match = result.match(\n /<!--\\s*agent-native:persisted-artifacts=([A-Za-z0-9_-]+)\\.([a-f0-9]{64})\\s*-->/,\n );\n if (!match) return [];\n try {\n const payload = match[1];\n const supplied = Buffer.from(match[2], \"hex\");\n const verified = secrets.some((secret) => {\n const expected = createHmac(\"sha256\", secret).update(payload).digest();\n return (\n supplied.length === expected.length &&\n timingSafeEqual(supplied, expected)\n );\n });\n if (!verified) {\n return [];\n }\n const parsed = JSON.parse(Buffer.from(payload, \"base64url\").toString());\n if (!Array.isArray(parsed)) return [];\n return parsed\n .slice(0, 12)\n .filter((identity): identity is A2AArtifactIdentity => {\n const item = asRecord(identity);\n return (\n !!item &&\n ARTIFACT_RESOURCE_TYPES.has(\n item.resourceType as A2AArtifactIdentity[\"resourceType\"],\n ) &&\n typeof item.id === \"string\" &&\n typeof item.sourceAction === \"string\"\n );\n });\n } catch {\n return [];\n }\n}\n\nfunction withPersistedArtifactMarker(\n text: string,\n toolResults: A2AToolResultSummary[],\n secret = process.env.A2A_SECRET,\n): string {\n const verificationSecrets = [secret, process.env.A2A_SECRET].filter(\n (value, index, values): value is string =>\n !!value && values.indexOf(value) === index,\n );\n const identities = extractA2AArtifactIdentities(toolResults, {\n persistedArtifactSecrets: verificationSecrets,\n }).slice(0, 12);\n if (identities.length === 0 || !secret) return text;\n const payload = Buffer.from(JSON.stringify(identities)).toString(\"base64url\");\n const signature = createHmac(\"sha256\", secret).update(payload).digest(\"hex\");\n const marker = `<!-- ${PERSISTED_ARTIFACT_MARKER}${payload}.${signature} -->`;\n return text ? `${text}\\n\\n${marker}` : marker;\n}\n\nexport function stripA2APersistedArtifactMarkers(text: string): string {\n return text.replace(PERSISTED_ARTIFACT_MARKER_PATTERN, \"\").trim();\n}\n\ninterface CreatedDocumentArtifact {\n id: string;\n title?: string;\n url?: string;\n}\n\ninterface CreatedDesignShell {\n id: string;\n title?: string;\n}\n\ninterface GeneratedDesignArtifact {\n id: string;\n fileCount: number;\n url?: string;\n}\n\ninterface CreatedDeckArtifact {\n id: string;\n url?: string;\n}\n\ninterface CreatedDashboardArtifact {\n id: string;\n title?: string;\n url?: string;\n}\n\ninterface CreatedAnalysisArtifact {\n id: string;\n title?: string;\n url?: string;\n}\n\ninterface CreatedImageArtifact {\n id: string;\n runId?: string;\n title?: string;\n url?: string;\n}\n\ninterface CreatedMonitorArtifact {\n id: string;\n name?: string;\n url: string;\n}\n\ninterface CreatedFormArtifact {\n id: string;\n title?: string;\n url: string;\n anonymous: boolean;\n}\n\ntype ReferencedArtifactKind =\n | \"deck\"\n | \"design\"\n | \"document\"\n | \"dashboard\"\n | \"analysis\"\n | \"image\";\n\ninterface ReferencedArtifact {\n kind: ReferencedArtifactKind;\n id: string;\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | null {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : null;\n}\n\nfunction stringValue(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n}\n\nfunction parseToolResultJson(result: string): Record<string, unknown> | null {\n const trimmed = result.trim();\n if (!trimmed || /^Error(?:\\s|:)/i.test(trimmed)) return null;\n\n try {\n return asRecord(JSON.parse(trimmed));\n } catch {\n // Dev shell wrappers may include console output before the returned JSON.\n const firstBrace = trimmed.indexOf(\"{\");\n const lastBrace = trimmed.lastIndexOf(\"}\");\n if (firstBrace < 0 || lastBrace <= firstBrace) return null;\n try {\n return asRecord(JSON.parse(trimmed.slice(firstBrace, lastBrace + 1)));\n } catch {\n return null;\n }\n }\n}\n\nfunction normalizeBaseUrl(baseUrl: string | undefined): string | undefined {\n const trimmed = baseUrl?.trim();\n return trimmed ? trimmed.replace(/\\/+$/, \"\") : undefined;\n}\n\nfunction artifactUrl(baseUrl: string | undefined, path: string): string {\n const base = normalizeBaseUrl(baseUrl);\n return base ? `${base}${path}` : path;\n}\n\nfunction artifactUrlFromResult(\n parsed: Record<string, unknown>,\n fallbackPath: string,\n baseUrl: string | undefined,\n): string {\n const explicitUrl = stringValue(parsed.url) ?? stringValue(parsed.urlPath);\n if (!explicitUrl) return artifactUrl(baseUrl, fallbackPath);\n if (explicitUrl.startsWith(\"/\")) return artifactUrl(baseUrl, explicitUrl);\n try {\n return new URL(explicitUrl).toString();\n } catch {\n return artifactUrl(baseUrl, fallbackPath);\n }\n}\n\nfunction responseAlreadyMentionsPath(text: string, path: string): boolean {\n return text.includes(path);\n}\n\nfunction responseMentionsDesignShell(\n text: string,\n shell: CreatedDesignShell,\n): boolean {\n if (!text.trim()) return true;\n return text.includes(shell.id) || text.includes(`/design/${shell.id}`);\n}\n\nfunction responseAlreadyWarnsIncompleteDesign(text: string): boolean {\n return /(?:not ready|still working|processing|no renderable|no files|failed|could not|cannot|can't)/i.test(\n text,\n );\n}\n\nfunction isRenderableDesignFile(value: unknown): boolean {\n const file = asRecord(value);\n if (!file) return false;\n\n const filename = stringValue(file.filename);\n const fileType = stringValue(file.fileType);\n const hasRenderableType =\n fileType === \"html\" ||\n fileType === \"jsx\" ||\n filename?.endsWith(\".html\") ||\n filename?.endsWith(\".jsx\");\n if (!hasRenderableType) return false;\n\n return typeof file.content !== \"string\" || file.content.trim().length > 0;\n}\n\nfunction countRenderableDesignFiles(files: unknown): number {\n if (!Array.isArray(files)) return 0;\n return files.filter(isRenderableDesignFile).length;\n}\n\nfunction numberValue(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value)\n ? value\n : undefined;\n}\n\nfunction deckIdValue(parsed: Record<string, unknown>): string | undefined {\n return stringValue(parsed.id) ?? stringValue(parsed.deckId);\n}\n\nfunction dashboardIdValue(parsed: Record<string, unknown>): string | undefined {\n return stringValue(parsed.id) ?? stringValue(parsed.dashboardId);\n}\n\nfunction analysisIdValue(parsed: Record<string, unknown>): string | undefined {\n return stringValue(parsed.id) ?? stringValue(parsed.analysisId);\n}\n\nfunction imageIdValue(parsed: Record<string, unknown>): string | undefined {\n return (\n stringValue(parsed.assetId) ??\n stringValue(parsed.imageId) ??\n stringValue(parsed.id)\n );\n}\n\nfunction contentDatabaseSubmissionArtifact(\n parsed: Record<string, unknown>,\n): CreatedDocumentArtifact | null {\n const id = stringValue(parsed.createdDocumentId);\n if (!id) return null;\n\n const verification = asRecord(parsed.verification);\n const candidates = [\n stringValue(parsed.url),\n stringValue(parsed.urlPath),\n stringValue(parsed.createdDocumentUrl),\n stringValue(verification?.url),\n stringValue(verification?.urlPath),\n ].filter((value): value is string => !!value);\n const url = candidates.find((candidate) =>\n artifactUrlReferencesId(candidate, \"document\", id),\n );\n\n const items = Array.isArray(parsed.items) ? parsed.items : [];\n const createdItem = items.map(asRecord).find((item) => {\n const document = asRecord(item?.document);\n return stringValue(document?.id) === id;\n });\n const createdDocument = asRecord(createdItem?.document);\n\n return {\n id,\n title:\n stringValue(parsed.createdDocumentTitle) ??\n stringValue(createdDocument?.title),\n url,\n };\n}\n\nfunction documentUrlForId(\n parsed: Record<string, unknown>,\n id: string,\n additionalCandidates: Array<string | undefined> = [],\n options: { requireContentOrigin?: boolean } = {},\n): string | undefined {\n const candidates = [\n stringValue(parsed.url),\n stringValue(parsed.urlPath),\n stringValue(parsed.deepLink),\n stringValue(parsed.pageUrl),\n stringValue(parsed.documentUrl),\n ...additionalCandidates,\n ].filter((value): value is string => !!value);\n\n return candidates.find((candidate) => {\n if (!artifactUrlReferencesId(candidate, \"document\", id)) return false;\n return !options.requireContentOrigin || isContentDocumentUrl(candidate);\n });\n}\n\nfunction isContentDocumentUrl(rawUrl: string): boolean {\n try {\n return new URL(rawUrl).origin === \"https://content.agent-native.com\";\n } catch {\n return false;\n }\n}\n\nfunction addDocumentReadArtifact(\n documents: Map<string, CreatedDocumentArtifact>,\n parsed: Record<string, unknown>,\n options: {\n allowWithoutUrl: boolean;\n additionalUrlCandidates?: Array<string | undefined>;\n requireContentOrigin?: boolean;\n },\n): void {\n const id = stringValue(parsed.documentId) ?? stringValue(parsed.id);\n if (!id) return;\n\n const url = documentUrlForId(parsed, id, options.additionalUrlCandidates, {\n requireContentOrigin: options.requireContentOrigin,\n });\n if (!url && !options.allowWithoutUrl) return;\n\n documents.set(id, {\n id,\n title: stringValue(parsed.title) ?? stringValue(parsed.name),\n url,\n });\n}\n\nfunction addContentDatabaseReadArtifacts(\n documents: Map<string, CreatedDocumentArtifact>,\n parsed: Record<string, unknown>,\n): void {\n const resultUrls = [\n stringValue(parsed.url),\n stringValue(parsed.urlPath),\n stringValue(parsed.deepLink),\n ];\n const database = asRecord(parsed.database);\n if (database) {\n addDocumentReadArtifact(documents, database, {\n allowWithoutUrl: true,\n requireContentOrigin: true,\n additionalUrlCandidates: resultUrls,\n });\n } else {\n // Unavailable database reads still return a documentId, but they do not\n // prove that the page exists and must not authorize an artifact URL.\n if (parsed.available !== false) {\n addDocumentReadArtifact(documents, parsed, {\n allowWithoutUrl: true,\n requireContentOrigin: true,\n });\n }\n }\n\n if (!Array.isArray(parsed.items)) return;\n for (const item of parsed.items) {\n const itemRecord = asRecord(item);\n const document = asRecord(itemRecord?.document);\n if (!document) continue;\n addDocumentReadArtifact(documents, document, {\n allowWithoutUrl: true,\n requireContentOrigin: true,\n additionalUrlCandidates: [\n stringValue(itemRecord?.url),\n stringValue(itemRecord?.urlPath),\n stringValue(itemRecord?.deepLink),\n ],\n });\n }\n}\n\nfunction isGenericReadTool(tool: string): boolean {\n return /^(?:find|get|list|query|read|search)-/i.test(tool);\n}\n\nfunction addGenericDocumentReadArtifact(\n documents: Map<string, CreatedDocumentArtifact>,\n parsed: Record<string, unknown>,\n): void {\n // Unknown read actions are accepted only when their result pairs a document\n // ID with a canonical page URL containing that exact ID. An ID by itself is\n // insufficient, preserving the fabrication guard for unrelated actions.\n addDocumentReadArtifact(documents, parsed, {\n allowWithoutUrl: false,\n requireContentOrigin: true,\n });\n\n const document = asRecord(parsed.document);\n if (!document) return;\n addDocumentReadArtifact(documents, document, {\n allowWithoutUrl: false,\n requireContentOrigin: true,\n additionalUrlCandidates: [\n stringValue(parsed.url),\n stringValue(parsed.urlPath),\n stringValue(parsed.deepLink),\n ],\n });\n}\n\nfunction addImageArtifact(\n images: Map<string, CreatedImageArtifact>,\n parsed: Record<string, unknown>,\n): void {\n const id = imageIdValue(parsed);\n if (!id) return;\n images.set(id, {\n id,\n runId: stringValue(parsed.runId) ?? stringValue(parsed.generationRunId),\n title: stringValue(parsed.title),\n url:\n stringValue(parsed.pageUrl) ??\n stringValue(parsed.detailUrl) ??\n stringValue(parsed.url) ??\n stringValue(parsed.urlPath),\n });\n}\n\nfunction addDeckArtifact(\n decks: Map<string, CreatedDeckArtifact>,\n parsed: Record<string, unknown>,\n): void {\n const id = deckIdValue(parsed);\n if (!id) return;\n decks.set(id, {\n id,\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n}\n\n// Deck writes are spread across a dozen actions (create-deck, add-slide,\n// patch-deck, save-deck, update-slide, import-*, restore-deck-version), so a\n// per-tool allow-list refuses a real deck URL every time an action is added.\n// Trust any successful result that names a deck the way the deck routes do: an\n// explicit deckId, or a canonical /deck/<id> URL the action itself returned.\nfunction addDeckArtifactFromAnyResult(\n decks: Map<string, CreatedDeckArtifact>,\n parsed: Record<string, unknown>,\n): void {\n const url = stringValue(parsed.url) ?? stringValue(parsed.urlPath);\n const deckId = stringValue(parsed.deckId);\n if (deckId) {\n decks.set(deckId, {\n id: deckId,\n url:\n url && artifactUrlReferencesId(url, \"deck\", deckId) ? url : undefined,\n });\n }\n\n const reference = url ? parseArtifactReferenceUrl(url) : null;\n if (reference?.kind === \"deck\") {\n decks.set(reference.id, { id: reference.id, url });\n }\n}\n\nfunction addListedDeckArtifacts(\n decks: Map<string, CreatedDeckArtifact>,\n parsed: Record<string, unknown>,\n): void {\n const items = parsed.decks;\n if (!Array.isArray(items)) return;\n for (const item of items) {\n const deck = asRecord(item);\n if (!deck) continue;\n addDeckArtifact(decks, deck);\n }\n}\n\nfunction collectArtifacts(results: A2AToolResultSummary[]): {\n documents: CreatedDocumentArtifact[];\n decks: CreatedDeckArtifact[];\n dashboards: CreatedDashboardArtifact[];\n analyses: CreatedAnalysisArtifact[];\n images: CreatedImageArtifact[];\n designShells: CreatedDesignShell[];\n generatedDesigns: GeneratedDesignArtifact[];\n monitors: CreatedMonitorArtifact[];\n forms: CreatedFormArtifact[];\n} {\n const documents = new Map<string, CreatedDocumentArtifact>();\n const decks = new Map<string, CreatedDeckArtifact>();\n const dashboards = new Map<string, CreatedDashboardArtifact>();\n const analyses = new Map<string, CreatedAnalysisArtifact>();\n const images = new Map<string, CreatedImageArtifact>();\n const designShells = new Map<string, CreatedDesignShell>();\n const generatedDesigns = new Map<string, GeneratedDesignArtifact>();\n const monitors = new Map<string, CreatedMonitorArtifact>();\n const forms = new Map<string, CreatedFormArtifact>();\n\n for (const toolResult of results) {\n if (toolResult.isError === true || toolResult.completedSideEffect === false)\n continue;\n if (toolResult.tool === \"call-agent\") {\n for (const artifact of parseDownstreamArtifactBlock(toolResult.result)) {\n if (artifact.kind === \"deck\") {\n decks.set(artifact.id, {\n id: artifact.id,\n url: artifact.url,\n });\n } else if (artifact.kind === \"document\") {\n documents.set(artifact.id, {\n id: artifact.id,\n title: artifact.title,\n url: artifact.url,\n });\n } else if (artifact.kind === \"dashboard\") {\n dashboards.set(artifact.id, {\n id: artifact.id,\n title: artifact.title,\n url: artifact.url,\n });\n } else if (artifact.kind === \"analysis\") {\n analyses.set(artifact.id, {\n id: artifact.id,\n title: artifact.title,\n url: artifact.url,\n });\n } else if (artifact.kind === \"image\") {\n images.set(artifact.id, {\n id: artifact.id,\n title: artifact.title,\n url: artifact.url,\n runId: artifact.runId,\n });\n } else if (artifact.kind === \"design\" && artifact.fileCount > 0) {\n generatedDesigns.set(artifact.id, {\n id: artifact.id,\n fileCount: artifact.fileCount,\n url: artifact.url,\n });\n }\n }\n continue;\n }\n\n const parsed = parseToolResultJson(toolResult.result);\n if (!parsed) continue;\n\n addDeckArtifactFromAnyResult(decks, parsed);\n\n if (toolResult.tool === \"save-monitor\") {\n const id = stringValue(parsed.id);\n const url = stringValue(parsed.monitorAppUrl);\n if (id && url) {\n monitors.set(id, {\n id,\n name: stringValue(parsed.name),\n url,\n });\n }\n continue;\n }\n\n if (toolResult.tool === \"create-form\") {\n const id = stringValue(parsed.id);\n const url = stringValue(parsed.publicUrl);\n if (id && url && stringValue(parsed.status) === \"published\") {\n const settings = asRecord(parsed.settings);\n forms.set(id, {\n id,\n title: stringValue(parsed.title),\n url,\n anonymous: settings?.anonymous === true,\n });\n }\n continue;\n }\n\n if (\n toolResult.tool === \"submit-content-database-form\" ||\n toolResult.tool === \"add-database-item\"\n ) {\n const artifact = contentDatabaseSubmissionArtifact(parsed);\n if (artifact) documents.set(artifact.id, artifact);\n continue;\n }\n\n if (\n toolResult.tool === \"create-document\" ||\n toolResult.tool === \"update-document\"\n ) {\n if (parsed.conflict === true) continue;\n const id = stringValue(parsed.id);\n if (id) {\n documents.set(id, {\n id,\n title: stringValue(parsed.title),\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n continue;\n }\n\n if (toolResult.tool === \"set-document-property\") {\n const id = stringValue(parsed.documentId);\n if (id) {\n documents.set(id, {\n id,\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n continue;\n }\n\n if (\n toolResult.tool === \"get-document\" ||\n toolResult.tool === \"get-content-document\"\n ) {\n const document = asRecord(parsed.document);\n addDocumentReadArtifact(documents, document ?? parsed, {\n allowWithoutUrl: true,\n requireContentOrigin: true,\n additionalUrlCandidates: document\n ? [\n stringValue(parsed.url),\n stringValue(parsed.urlPath),\n stringValue(parsed.deepLink),\n ]\n : [],\n });\n continue;\n }\n\n if (toolResult.tool === \"get-content-database\") {\n addContentDatabaseReadArtifacts(documents, parsed);\n continue;\n }\n\n if (isGenericReadTool(toolResult.tool)) {\n addGenericDocumentReadArtifact(documents, parsed);\n }\n\n if (\n toolResult.tool === \"create-deck\" ||\n toolResult.tool === \"duplicate-deck\" ||\n toolResult.tool === \"get-deck\"\n ) {\n addDeckArtifact(decks, parsed);\n continue;\n }\n\n if (toolResult.tool === \"list-decks\") {\n addListedDeckArtifacts(decks, parsed);\n continue;\n }\n\n if (\n toolResult.tool === \"update-dashboard\" ||\n toolResult.tool === \"rename-dashboard\" ||\n toolResult.tool === \"get-dashboard\"\n ) {\n const id = dashboardIdValue(parsed);\n if (id) {\n dashboards.set(id, {\n id,\n title: stringValue(parsed.name) ?? stringValue(parsed.title),\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n continue;\n }\n\n if (\n toolResult.tool === \"save-analysis\" ||\n toolResult.tool === \"get-analysis\"\n ) {\n const id = analysisIdValue(parsed);\n if (id) {\n analyses.set(id, {\n id,\n title: stringValue(parsed.name) ?? stringValue(parsed.title),\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n continue;\n }\n\n if (\n toolResult.tool === \"generate-image\" ||\n toolResult.tool === \"edit-image\" ||\n toolResult.tool === \"refine-image\" ||\n toolResult.tool === \"restyle-image\" ||\n toolResult.tool === \"get-asset\" ||\n toolResult.tool === \"save-generated-image\" ||\n toolResult.tool === \"save-generated-asset\" ||\n toolResult.tool === \"export-image\"\n ) {\n addImageArtifact(images, parsed);\n continue;\n }\n\n if (toolResult.tool === \"export-asset\") {\n if (stringValue(parsed.artifactType) === \"image\") {\n addImageArtifact(images, parsed);\n }\n continue;\n }\n\n if (toolResult.tool === \"generate-image-batch\") {\n if (Array.isArray(parsed.images)) {\n for (const item of parsed.images) {\n const image = asRecord(item);\n if (!image || image.ok === false) continue;\n addImageArtifact(images, image);\n }\n }\n continue;\n }\n\n if (toolResult.tool === \"create-design\") {\n const id = stringValue(parsed.id);\n if (id) {\n designShells.set(id, { id, title: stringValue(parsed.title) });\n }\n continue;\n }\n\n if (toolResult.tool === \"get-design\") {\n const id = stringValue(parsed.id);\n if (!id) continue;\n\n const renderableFileCount = countRenderableDesignFiles(parsed.files);\n if (renderableFileCount > 0) {\n generatedDesigns.set(id, {\n id,\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n fileCount: Array.isArray(parsed.files)\n ? parsed.files.length\n : renderableFileCount,\n });\n } else {\n designShells.set(id, { id, title: stringValue(parsed.title) });\n }\n continue;\n }\n\n if (toolResult.tool === \"generate-design\") {\n const id = stringValue(parsed.designId);\n if (!id) continue;\n\n const savedFiles = Array.isArray(parsed.savedFiles)\n ? parsed.savedFiles\n : [];\n const fileCount = numberValue(parsed.fileCount) ?? savedFiles.length;\n\n if (fileCount > 0) {\n generatedDesigns.set(id, {\n id,\n fileCount,\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n continue;\n }\n\n if (toolResult.tool === \"create-file\") {\n const id = stringValue(parsed.designId);\n if (!id) continue;\n const renderable =\n parsed.renderable === true ||\n stringValue(parsed.fileType) === \"html\" ||\n stringValue(parsed.fileType) === \"jsx\";\n\n if (renderable) {\n const previous = generatedDesigns.get(id);\n generatedDesigns.set(id, {\n id,\n url:\n stringValue(parsed.url) ??\n stringValue(parsed.urlPath) ??\n previous?.url,\n fileCount: (previous?.fileCount ?? 0) + 1,\n });\n }\n }\n\n if (toolResult.tool === \"duplicate-design\") {\n const id = stringValue(parsed.id);\n const fileCount = numberValue(parsed.fileCount);\n if (id && fileCount && fileCount > 0) {\n generatedDesigns.set(id, {\n id,\n fileCount,\n url: stringValue(parsed.url) ?? stringValue(parsed.urlPath),\n });\n }\n }\n }\n\n return {\n documents: [...documents.values()],\n decks: [...decks.values()],\n dashboards: [...dashboards.values()],\n analyses: [...analyses.values()],\n images: [...images.values()],\n designShells: [...designShells.values()],\n generatedDesigns: [...generatedDesigns.values()],\n monitors: [...monitors.values()],\n forms: [...forms.values()],\n };\n}\n\n/**\n * Extract a compact, verified identity ledger from successful artifact tools.\n * The ledger deliberately excludes raw tool results so it is safe to retain in\n * long-lived thread context and stable even when a resource is later renamed.\n */\nexport function extractA2AArtifactIdentities(\n results: A2AToolResultSummary[],\n options: A2AArtifactIdentityOptions = {},\n): A2AArtifactIdentity[] {\n const identities = new Map<string, A2AArtifactIdentity>();\n\n const remember = (identity: A2AArtifactIdentity) => {\n identities.set(`${identity.resourceType}:${identity.id}`, identity);\n };\n\n for (const result of results) {\n if (result.isError === true || result.completedSideEffect === false)\n continue;\n if (result.tool === \"call-agent\") {\n for (const identity of persistedArtifactIdentitiesFromMarker(\n result.result,\n options.persistedArtifactSecrets,\n )) {\n remember({ ...identity, sourceAction: \"call-agent\" });\n }\n continue;\n }\n if (!ARTIFACT_IDENTITY_WRITE_TOOLS.has(result.tool)) continue;\n const artifacts = collectArtifacts([result]);\n for (const document of artifacts.documents) {\n remember({\n resourceType: \"document\",\n id: document.id,\n sourceAction: result.tool,\n titleAtAction: document.title,\n url: document.url,\n });\n }\n for (const deck of artifacts.decks) {\n remember({\n resourceType: \"deck\",\n id: deck.id,\n sourceAction: result.tool,\n url: deck.url,\n });\n }\n for (const dashboard of artifacts.dashboards) {\n remember({\n resourceType: \"dashboard\",\n id: dashboard.id,\n sourceAction: result.tool,\n titleAtAction: dashboard.title,\n url: dashboard.url,\n });\n }\n for (const analysis of artifacts.analyses) {\n remember({\n resourceType: \"analysis\",\n id: analysis.id,\n sourceAction: result.tool,\n titleAtAction: analysis.title,\n url: analysis.url,\n });\n }\n for (const image of artifacts.images) {\n remember({\n resourceType: \"image\",\n id: image.id,\n sourceAction: result.tool,\n titleAtAction: image.title,\n url: image.url,\n });\n }\n for (const design of artifacts.designShells) {\n remember({\n resourceType: \"design\",\n id: design.id,\n sourceAction: result.tool,\n titleAtAction: design.title,\n });\n }\n for (const design of artifacts.generatedDesigns) {\n remember({\n resourceType: \"design\",\n id: design.id,\n sourceAction: result.tool,\n url: design.url,\n });\n }\n for (const monitor of artifacts.monitors) {\n remember({\n resourceType: \"monitor\",\n id: monitor.id,\n sourceAction: result.tool,\n titleAtAction: monitor.name,\n url: monitor.url,\n });\n }\n for (const form of artifacts.forms) {\n remember({\n resourceType: \"form\",\n id: form.id,\n sourceAction: result.tool,\n titleAtAction: form.title,\n url: form.url,\n });\n }\n }\n\n return [...identities.values()];\n}\n\ntype DownstreamArtifact =\n | { kind: \"deck\"; id: string; url: string }\n | { kind: \"document\"; id: string; url: string; title?: string }\n | { kind: \"dashboard\"; id: string; url: string; title?: string }\n | { kind: \"analysis\"; id: string; url: string; title?: string }\n | { kind: \"image\"; id: string; url: string; title?: string; runId?: string }\n | { kind: \"design\"; id: string; url: string; fileCount: number };\n\nfunction parseDownstreamArtifactBlock(result: string): DownstreamArtifact[] {\n const artifacts: DownstreamArtifact[] = [];\n for (const line of downstreamArtifactLines(result)) {\n const deck = line.match(\n /^- Deck(?:\\s+\"[^\"]+\")?(?:\\s+\\([^)]*\\))?:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+)\\)$/,\n );\n if (deck) {\n const id = deck[2];\n if (!artifactUrlReferencesId(deck[1], \"deck\", id)) continue;\n artifacts.push({\n kind: \"deck\",\n url: deck[1],\n id,\n });\n continue;\n }\n\n const document = line.match(\n /^- Document(?:\\s+\"([^\"]+)\")?:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+)\\)$/,\n );\n if (document) {\n const id = document[3];\n if (!artifactUrlReferencesId(document[2], \"document\", id)) continue;\n artifacts.push({\n kind: \"document\",\n title: document[1],\n url: document[2],\n id,\n });\n continue;\n }\n\n const dashboard = line.match(\n /^- Dashboard(?:\\s+\"([^\"]+)\")?:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+)\\)$/,\n );\n if (dashboard) {\n const id = dashboard[3];\n if (!artifactUrlReferencesId(dashboard[2], \"dashboard\", id)) continue;\n artifacts.push({\n kind: \"dashboard\",\n title: dashboard[1],\n url: dashboard[2],\n id,\n });\n continue;\n }\n\n const analysis = line.match(\n /^- (?:Analysis|Report)(?:\\s+\"([^\"]+)\")?:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+)\\)$/,\n );\n if (analysis) {\n const id = analysis[3];\n if (!artifactUrlReferencesId(analysis[2], \"analysis\", id)) continue;\n artifacts.push({\n kind: \"analysis\",\n title: analysis[1],\n url: analysis[2],\n id,\n });\n continue;\n }\n\n const image = line.match(\n /^- Image(?:\\s+\"([^\"]+)\")?:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+)(?:,\\s*Run:\\s*([A-Za-z0-9_-]+))?\\)$/,\n );\n if (image) {\n const id = image[3];\n if (!artifactUrlReferencesId(image[2], \"image\", id)) continue;\n artifacts.push({\n kind: \"image\",\n title: image[1],\n url: image[2],\n id,\n runId: image[4],\n });\n continue;\n }\n\n const design = line.match(\n /^- Design:\\s+(\\S+)\\s+\\(ID:\\s*([A-Za-z0-9_-]+),\\s*(\\d+)\\s+files?\\)$/,\n );\n if (design) {\n const id = design[2];\n if (!artifactUrlReferencesId(design[1], \"design\", id)) continue;\n artifacts.push({\n kind: \"design\",\n url: design[1],\n id,\n fileCount: Number(design[3]),\n });\n }\n }\n return artifacts;\n}\n\nfunction downstreamArtifactLines(result: string): string[] {\n const lines = result.split(/\\r?\\n/);\n const artifactLines: string[] = [];\n\n for (let i = 0; i < lines.length; i += 1) {\n if (lines[i].trim() !== \"Artifacts:\") continue;\n\n let sawBlockLine = false;\n for (let j = i + 1; j < lines.length; j += 1) {\n const trimmed = lines[j].trim();\n if (!trimmed) {\n if (!sawBlockLine) continue;\n break;\n }\n if (!trimmed.startsWith(\"- \")) break;\n sawBlockLine = true;\n artifactLines.push(trimmed);\n }\n }\n\n return artifactLines;\n}\n\nfunction artifactUrlReferencesId(\n rawUrl: string,\n kind: ReferencedArtifactKind,\n id: string,\n): boolean {\n const reference = parseArtifactReferenceUrl(rawUrl);\n return reference?.kind === kind && reference.id === id;\n}\n\nfunction parseArtifactReferenceUrl(rawUrl: string): ReferencedArtifact | null {\n let url: URL;\n try {\n url = new URL(rawUrl, \"https://agent-native-artifact.invalid\");\n } catch {\n return null;\n }\n\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") return null;\n\n const path = url.pathname.replace(/\\/+$/, \"\");\n const deck = path.match(/(?:^|\\/)deck\\/([A-Za-z0-9_-]+)(?:\\/present)?$/);\n if (deck) return { kind: \"deck\", id: deck[1] };\n\n const design = path.match(/(?:^|\\/)design\\/([A-Za-z0-9_-]+)$/);\n if (design) return { kind: \"design\", id: design[1] };\n\n const document = path.match(/(?:^|\\/)page\\/([A-Za-z0-9_-]+)$/);\n if (document) return { kind: \"document\", id: document[1] };\n\n const dashboard = path.match(/(?:^|\\/)adhoc\\/([A-Za-z0-9_-]+)$/);\n if (dashboard) return { kind: \"dashboard\", id: dashboard[1] };\n\n const analysis = path.match(/(?:^|\\/)analyses\\/([A-Za-z0-9_-]+)$/);\n if (analysis) return { kind: \"analysis\", id: analysis[1] };\n\n const image = path.match(/(?:^|\\/)image\\/([A-Za-z0-9_-]+)$/);\n if (image) return { kind: \"image\", id: image[1] };\n\n const imageEmbed = path.match(/(?:^|\\/)asset\\/([A-Za-z0-9_-]+)\\/embed$/);\n if (imageEmbed) return { kind: \"image\", id: imageEmbed[1] };\n\n const imageContent = path.match(\n /(?:^|\\/)api\\/assets\\/([A-Za-z0-9_-]+)\\/content$/,\n );\n if (imageContent) return { kind: \"image\", id: imageContent[1] };\n\n return null;\n}\n\nfunction formatDocumentLine(\n document: CreatedDocumentArtifact,\n baseUrl: string | undefined,\n): string {\n const label = document.title ? `Document \"${document.title}\"` : \"Document\";\n return `- ${label}: ${artifactUrlFromResult({ url: document.url }, `/page/${document.id}`, baseUrl)} (ID: ${document.id})`;\n}\n\nfunction formatDeckLine(\n deck: CreatedDeckArtifact,\n baseUrl: string | undefined,\n): string {\n return `- Deck: ${artifactUrlFromResult({ url: deck.url }, `/deck/${deck.id}`, baseUrl)} (ID: ${deck.id})`;\n}\n\nfunction formatDashboardLine(\n dashboard: CreatedDashboardArtifact,\n baseUrl: string | undefined,\n): string {\n const label = dashboard.title\n ? `Dashboard \"${dashboard.title}\"`\n : \"Dashboard\";\n return `- ${label}: ${artifactUrlFromResult({ url: dashboard.url }, `/adhoc/${dashboard.id}`, baseUrl)} (ID: ${dashboard.id})`;\n}\n\nfunction formatAnalysisLine(\n analysis: CreatedAnalysisArtifact,\n baseUrl: string | undefined,\n): string {\n const label = analysis.title ? `Report \"${analysis.title}\"` : \"Report\";\n return `- ${label}: ${artifactUrlFromResult({ url: analysis.url }, `/analyses/${analysis.id}`, baseUrl)} (ID: ${analysis.id})`;\n}\n\nfunction formatImageLine(\n image: CreatedImageArtifact,\n baseUrl: string | undefined,\n): string {\n const label = image.title ? `Image \"${image.title}\"` : \"Image\";\n const run = image.runId ? `, Run: ${image.runId}` : \"\";\n return `- ${label}: ${artifactUrlFromResult({ url: image.url }, `/image/${image.id}`, baseUrl)} (ID: ${image.id}${run})`;\n}\n\nfunction formatDesignLine(\n design: GeneratedDesignArtifact,\n baseUrl: string | undefined,\n): string {\n const fileLabel =\n design.fileCount === 1 ? \"1 file\" : `${design.fileCount} files`;\n return `- Design: ${artifactUrlFromResult({ url: design.url }, `/design/${design.id}`, baseUrl)} (ID: ${design.id}, ${fileLabel})`;\n}\n\nfunction formatMonitorLine(monitor: CreatedMonitorArtifact): string {\n const label = monitor.name ? `Monitor \"${monitor.name}\"` : \"Monitor\";\n return `- ${label}: ${monitor.url} (ID: ${monitor.id})`;\n}\n\nfunction formatFormLine(form: CreatedFormArtifact): string {\n const kind = form.anonymous ? \"Anonymous form\" : \"Public form\";\n const label = form.title ? `${kind} \"${form.title}\"` : kind;\n return `- ${label}: ${form.url} (ID: ${form.id})`;\n}\n\nfunction formatIncompleteDesignMessage(shells: CreatedDesignShell[]): string {\n const ids = shells.map((shell) => shell.id).join(\", \");\n const noun = shells.length === 1 ? \"project shell\" : \"project shells\";\n return (\n `The design is not ready yet. Design ${noun} ${ids} ` +\n \"exists, but no renderable files were saved, so I cannot return it as a completed artifact.\"\n );\n}\n\nfunction collectReferencedArtifacts(\n text: string,\n baseUrl: string | undefined,\n): ReferencedArtifact[] {\n const refs = new Map<string, ReferencedArtifact>();\n const baseOrigin = safeOrigin(baseUrl);\n const artifactUrlPattern =\n /(?:(https?:\\/\\/[^/\\s<>()]+))?(?:\\/[^\\s<>()]*)?\\/(deck|design|page|adhoc|analyses|image|asset|assets)\\/([A-Za-z0-9_-]+)/g;\n\n for (const match of text.matchAll(artifactUrlPattern)) {\n const origin = safeOrigin(match[1]);\n const route = match[2];\n const id = match[3];\n const kind: ReferencedArtifactKind =\n route === \"deck\"\n ? \"deck\"\n : route === \"design\"\n ? \"design\"\n : route === \"page\"\n ? \"document\"\n : route === \"adhoc\"\n ? \"dashboard\"\n : route === \"analyses\"\n ? \"analysis\"\n : \"image\";\n if (!shouldValidateArtifactReference(origin, baseOrigin, kind)) continue;\n refs.set(`${kind}:${id}`, { kind, id });\n }\n\n return [...refs.values()];\n}\n\nfunction safeOrigin(url: string | undefined): string | undefined {\n if (!url) return undefined;\n try {\n return new URL(url).origin;\n } catch {\n return undefined;\n }\n}\n\nconst KNOWN_AGENT_NATIVE_ARTIFACT_HOSTS: Record<\n ReferencedArtifactKind,\n ReadonlySet<string>\n> = {\n deck: new Set([\"slides.agent-native.com\"]),\n design: new Set([\"design.agent-native.com\"]),\n document: new Set([\"content.agent-native.com\"]),\n dashboard: new Set([\"analytics.agent-native.com\"]),\n analysis: new Set([\"analytics.agent-native.com\"]),\n image: new Set([\"assets.agent-native.com\", \"images.agent-native.com\"]),\n};\n\nfunction safeHostnameFromOrigin(\n origin: string | undefined,\n): string | undefined {\n if (!origin) return undefined;\n try {\n return new URL(origin).hostname.toLowerCase();\n } catch {\n return undefined;\n }\n}\n\nfunction shouldValidateArtifactReference(\n origin: string | undefined,\n baseOrigin: string | undefined,\n kind: ReferencedArtifactKind,\n): boolean {\n if (!origin || !baseOrigin || origin === baseOrigin) return true;\n\n const hostname = safeHostnameFromOrigin(origin);\n return !!hostname && KNOWN_AGENT_NATIVE_ARTIFACT_HOSTS[kind].has(hostname);\n}\n\nfunction findUnverifiedArtifactReferences(\n text: string,\n baseUrl: string | undefined,\n documents: CreatedDocumentArtifact[],\n decks: CreatedDeckArtifact[],\n dashboards: CreatedDashboardArtifact[],\n analyses: CreatedAnalysisArtifact[],\n images: CreatedImageArtifact[],\n generatedDesigns: GeneratedDesignArtifact[],\n): ReferencedArtifact[] {\n const documentIds = new Set(documents.map((document) => document.id));\n const deckIds = new Set(decks.map((deck) => deck.id));\n const dashboardIds = new Set(dashboards.map((dashboard) => dashboard.id));\n const analysisIds = new Set(analyses.map((analysis) => analysis.id));\n const imageIds = new Set(images.map((image) => image.id));\n const designIds = new Set(generatedDesigns.map((design) => design.id));\n\n return collectReferencedArtifacts(text, baseUrl).filter((ref) => {\n if (ref.kind === \"document\") return !documentIds.has(ref.id);\n if (ref.kind === \"deck\") return !deckIds.has(ref.id);\n if (ref.kind === \"dashboard\") return !dashboardIds.has(ref.id);\n if (ref.kind === \"analysis\") return !analysisIds.has(ref.id);\n if (ref.kind === \"image\") return !imageIds.has(ref.id);\n return !designIds.has(ref.id);\n });\n}\n\nfunction formatUnverifiedArtifactMessage(\n refs: ReferencedArtifact[],\n documents: CreatedDocumentArtifact[],\n decks: CreatedDeckArtifact[],\n dashboards: CreatedDashboardArtifact[],\n analyses: CreatedAnalysisArtifact[],\n images: CreatedImageArtifact[],\n generatedDesigns: GeneratedDesignArtifact[],\n baseUrl: string | undefined,\n): string {\n const hasOnlyDesigns = refs.every((ref) => ref.kind === \"design\");\n const hasOnlyDocuments = refs.every((ref) => ref.kind === \"document\");\n const hasOnlyDecks = refs.every((ref) => ref.kind === \"deck\");\n const hasOnlyDashboards = refs.every((ref) => ref.kind === \"dashboard\");\n const hasOnlyAnalyses = refs.every((ref) => ref.kind === \"analysis\");\n const hasOnlyImages = refs.every((ref) => ref.kind === \"image\");\n const label = hasOnlyDesigns\n ? \"design URL\"\n : hasOnlyDocuments\n ? \"document URL\"\n : hasOnlyDecks\n ? \"deck URL\"\n : hasOnlyDashboards\n ? \"dashboard URL\"\n : hasOnlyAnalyses\n ? \"report URL\"\n : hasOnlyImages\n ? \"image URL\"\n : \"artifact URL\";\n const plural = refs.length === 1 ? label : `${label}s`;\n const message = `I could not verify the ${plural} in the final answer against a successful artifact action that saved app data, so I cannot return it.`;\n const verifiedLines = [\n ...documents.map((document) => formatDocumentLine(document, baseUrl)),\n ...decks.map((deck) => formatDeckLine(deck, baseUrl)),\n ...dashboards.map((dashboard) => formatDashboardLine(dashboard, baseUrl)),\n ...analyses.map((analysis) => formatAnalysisLine(analysis, baseUrl)),\n ...images.map((image) => formatImageLine(image, baseUrl)),\n ...generatedDesigns.map((design) => formatDesignLine(design, baseUrl)),\n ];\n\n return verifiedLines.length > 0\n ? `${message}\\n\\nArtifacts:\\n${verifiedLines.join(\"\\n\")}`\n : message;\n}\n\nexport function guardA2AArtifactResponse(\n responseText: string,\n toolResults: A2AToolResultSummary[],\n options: A2AArtifactResponseOptions = {},\n): GuardedA2AArtifactResponse {\n const baseUrl = normalizeBaseUrl(options.baseUrl);\n const includeReferencedArtifacts =\n options.includeReferencedArtifacts ?? false;\n const finalize = (value: string) =>\n options.includePersistedArtifactMarker\n ? withPersistedArtifactMarker(\n value,\n toolResults,\n options.persistedArtifactSecret ?? process.env.A2A_SECRET,\n )\n : value;\n const {\n documents,\n decks,\n dashboards,\n analyses,\n images,\n designShells,\n generatedDesigns,\n monitors,\n forms,\n } = collectArtifacts(toolResults);\n const generatedDesignIds = new Set(\n generatedDesigns.map((design) => design.id),\n );\n const incompleteShells = designShells.filter(\n (shell) => !generatedDesignIds.has(shell.id),\n );\n\n let text = responseText.trim() === \"(no response)\" ? \"\" : responseText.trim();\n\n if (\n generatedDesigns.length === 0 &&\n incompleteShells.length > 0 &&\n !responseAlreadyWarnsIncompleteDesign(text) &&\n (incompleteShells.some((shell) =>\n responseMentionsDesignShell(text, shell),\n ) ||\n /\\b(?:done|created|ready|here(?:'s| is)|complete|finished)\\b/i.test(text))\n ) {\n return {\n text: finalize(formatIncompleteDesignMessage(incompleteShells)),\n rejectedUnverifiedArtifactReferences: false,\n };\n }\n\n const unverifiedRefs = findUnverifiedArtifactReferences(\n text,\n baseUrl,\n documents,\n decks,\n dashboards,\n analyses,\n images,\n generatedDesigns,\n );\n if (unverifiedRefs.length > 0) {\n return {\n text: finalize(\n formatUnverifiedArtifactMessage(\n unverifiedRefs,\n documents,\n decks,\n dashboards,\n analyses,\n images,\n generatedDesigns,\n baseUrl,\n ),\n ),\n rejectedUnverifiedArtifactReferences: true,\n };\n }\n\n const missingLines: string[] = [];\n for (const document of documents) {\n const path = `/page/${document.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatDocumentLine(document, baseUrl));\n }\n }\n for (const deck of decks) {\n const path = `/deck/${deck.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatDeckLine(deck, baseUrl));\n }\n }\n for (const dashboard of dashboards) {\n const path = `/adhoc/${dashboard.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatDashboardLine(dashboard, baseUrl));\n }\n }\n for (const analysis of analyses) {\n const path = `/analyses/${analysis.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatAnalysisLine(analysis, baseUrl));\n }\n }\n for (const image of images) {\n const path = `/image/${image.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatImageLine(image, baseUrl));\n }\n }\n for (const design of generatedDesigns) {\n const path = `/design/${design.id}`;\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, path)\n ) {\n missingLines.push(formatDesignLine(design, baseUrl));\n }\n }\n for (const monitor of monitors) {\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, monitor.url)\n ) {\n missingLines.push(formatMonitorLine(monitor));\n }\n }\n for (const form of forms) {\n if (\n includeReferencedArtifacts ||\n !responseAlreadyMentionsPath(text, form.url)\n ) {\n missingLines.push(formatFormLine(form));\n }\n }\n\n if (missingLines.length === 0) {\n return {\n text: finalize(text),\n rejectedUnverifiedArtifactReferences: false,\n };\n }\n\n const artifactBlock = `Artifacts:\\n${missingLines.join(\"\\n\")}`;\n return {\n text: finalize(text ? `${text}\\n\\n${artifactBlock}` : artifactBlock),\n rejectedUnverifiedArtifactReferences: false,\n };\n}\n\nexport function appendA2AArtifactLinks(\n responseText: string,\n toolResults: A2AToolResultSummary[],\n options: A2AArtifactResponseOptions = {},\n): string {\n return guardA2AArtifactResponse(responseText, toolResults, options).text;\n}\n\nexport function buildA2ARecoverableArtifactMessage(\n toolResults: A2AToolResultSummary[],\n options: A2AArtifactResponseOptions = {},\n): string | null {\n const baseUrl = normalizeBaseUrl(options.baseUrl);\n const {\n documents,\n decks,\n dashboards,\n analyses,\n images,\n generatedDesigns,\n monitors,\n forms,\n } = collectArtifacts(toolResults);\n const lines = [\n ...documents.map((document) => formatDocumentLine(document, baseUrl)),\n ...decks.map((deck) => formatDeckLine(deck, baseUrl)),\n ...dashboards.map((dashboard) => formatDashboardLine(dashboard, baseUrl)),\n ...analyses.map((analysis) => formatAnalysisLine(analysis, baseUrl)),\n ...images.map((image) => formatImageLine(image, baseUrl)),\n ...generatedDesigns.map((design) => formatDesignLine(design, baseUrl)),\n ...monitors.map(formatMonitorLine),\n ...forms.map(formatFormLine),\n ];\n\n if (lines.length === 0) return null;\n return [\n \"The agent is still working on the full response, but these verified artifacts already exist:\",\n \"\",\n \"Artifacts:\",\n ...lines,\n ].join(\"\\n\");\n}\n\nfunction mutationReceiptUrl(\n identity: A2AArtifactIdentity,\n baseUrl: string | undefined,\n): string | undefined {\n if (\n identity.sourceAction === \"call-agent\" &&\n (!identity.url || identity.url.startsWith(\"/\"))\n ) {\n return undefined;\n }\n if (identity.url) {\n return identity.url.startsWith(\"/\")\n ? artifactUrl(baseUrl, identity.url)\n : identity.url;\n }\n\n const path =\n identity.resourceType === \"document\"\n ? `/page/${identity.id}`\n : identity.resourceType === \"deck\"\n ? `/deck/${identity.id}`\n : identity.resourceType === \"dashboard\"\n ? `/adhoc/${identity.id}`\n : identity.resourceType === \"analysis\"\n ? `/analyses/${identity.id}`\n : identity.resourceType === \"image\"\n ? `/image/${identity.id}`\n : identity.resourceType === \"design\"\n ? `/design/${identity.id}`\n : undefined;\n return path ? artifactUrl(baseUrl, path) : undefined;\n}\n\n/**\n * Build a bounded participant-facing receipt from authenticated artifact writes.\n * Unlike generic artifact recovery, this only trusts identities extracted from\n * successful write actions (or a signed downstream write ledger), so a read or\n * an unverified URL cannot be rounded up to a successful mutation.\n */\nexport function buildA2AVerifiedMutationReceipt(\n toolResults: A2AToolResultSummary[],\n options: A2AArtifactResponseOptions = {},\n): string | null {\n const baseUrl = normalizeBaseUrl(options.baseUrl);\n const identities = extractA2AArtifactIdentities(toolResults);\n if (identities.length === 0) return null;\n\n const lines = identities.map((identity) => {\n const label =\n identity.resourceType.charAt(0).toUpperCase() +\n identity.resourceType.slice(1);\n const url = mutationReceiptUrl(identity, baseUrl);\n return url\n ? `- ${label}: ${url} (ID: ${identity.id})`\n : `- ${label} ID: ${identity.id}`;\n });\n\n return [\n \"A verified change was saved, but I couldn't generate the detailed summary.\",\n \"\",\n \"Saved artifacts:\",\n ...lines,\n ].join(\"\\n\");\n}\n"]}
package/dist/action.d.ts CHANGED
@@ -103,6 +103,15 @@ export interface ActionRunContext {
103
103
  runId?: string;
104
104
  turnId?: string;
105
105
  }
106
+ /**
107
+ * Pre-run authorization gate. Throw to deny with a specific message (the
108
+ * framework's `ForbiddenError` carries a 403), or return `false` for a generic
109
+ * denial. Returning `undefined` allows the call — a guard that forgets to
110
+ * return is therefore permissive, which is why `false` is honoured at all:
111
+ * `(args) => someCheck(args)` written against a boolean helper would otherwise
112
+ * pass silently on every denial.
113
+ */
114
+ export type ActionAuthorize<TArgs> = (args: TArgs, ctx?: ActionRunContext) => void | boolean | Promise<void | boolean>;
106
115
  export interface AgentActionStopOptions {
107
116
  /** Optional stable code surfaced in run metadata and tests. */
108
117
  errorCode?: string;
@@ -393,6 +402,30 @@ interface DefineActionWithSchema<TSchema extends StandardSchemaV1, TReturn = any
393
402
  * as "approval required" (fail closed).
394
403
  */
395
404
  needsApproval?: boolean | ((args: StandardSchemaV1.InferOutput<TSchema>, ctx?: ActionRunContext) => boolean | Promise<boolean>);
405
+ /**
406
+ * Authorization gate that runs before `run()` on **every** caller — agent
407
+ * tool, HTTP, frontend, MCP, A2A, and CLI. It wraps `run` itself rather than
408
+ * hanging off the action entry, because a flag consulted by the dispatcher
409
+ * only guards the dispatchers that remember to consult it.
410
+ *
411
+ * This is *authorization*, not approval: `needsApproval` asks a human to
412
+ * bless one call the caller is already allowed to make, while `authorize`
413
+ * decides whether they are allowed at all. It also does not replace
414
+ * `accessFilter` / `assertAccess` — those scope which rows a permitted caller
415
+ * may see; this decides whether the operation is open to them.
416
+ *
417
+ * ```ts
418
+ * import { coachAccess } from "../lib/access.js";
419
+ *
420
+ * export default defineAction({
421
+ * description: "Archive a training plan.",
422
+ * schema,
423
+ * authorize: coachAccess.requireAny("coach-admin"),
424
+ * run: async (args) => { ... },
425
+ * });
426
+ * ```
427
+ */
428
+ authorize?: ActionAuthorize<StandardSchemaV1.InferOutput<TSchema>>;
396
429
  /**
397
430
  * Audit-log configuration. **Default-on for mutating actions** — you only
398
431
  * need this to tune capture: declare the mutated `target` (so the change
@@ -465,6 +498,9 @@ interface DefineActionWithParams<TParams extends Record<string, ParameterSchema>
465
498
  /** Opt-in human-in-the-loop approval gate (default off). See the schema
466
499
  * overload above for full semantics. */
467
500
  needsApproval?: boolean | ((args: InferParams<TParams>, ctx?: ActionRunContext) => boolean | Promise<boolean>);
501
+ /** Pre-run authorization gate applied to every caller. See the schema
502
+ * overload above for full semantics. */
503
+ authorize?: ActionAuthorize<InferParams<TParams>>;
468
504
  /** Audit-log configuration (default-on for mutations). See the schema
469
505
  * overload above and the `audit-log` skill. */
470
506
  audit?: ActionAuditConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAEV,mBAAmB,EACnB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,UAAU,GACV,KAAK,GACL,KAAK,GACL,KAAK,GACL,YAAY,CAAC;AAEjB;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,mCAAmC;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,kEAAkE;IAClE,eAAe,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,cAAc,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACpC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,eAAe,QAAQ;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,EAKhE;CACF;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,oBAAoB,CAU7B;AAED,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,8EAA8E;AAC9E,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;mEACmE;AACnE,MAAM,WAAW,cAAc;IAC7B;;kFAE8E;IAC9E,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;kDAGkD;AAClD,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE;IACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC;CACb,KAAK,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;AAExC,eAAO,MAAM,oBAAoB,EAAG,4BAAqC,CAAC;AAC1E,eAAO,MAAM,iBAAiB,EAAG,2BAAoC,CAAC;AACtE,eAAO,MAAM,6BAA6B,EAAG,gBAAyB,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEjD,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,EAAE,eAAe,GAAG,sBAAsB,CAAC;IAC/C,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,KAAK,MAAM,CAAC;AAEb,MAAM,WAAW,0BAA0B;IACzC,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAC;IACvC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACpC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,eAAe,GAAG,sBAAsB,CAAC;IAC/C,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,0BAA0B,CAAC;IACtC;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;IACpC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wEAAwE;AACxE,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,IACpE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACrC;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM;CAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAMvE,UAAU,sBAAsB,CAC9B,OAAO,SAAS,gBAAgB,EAChC,OAAO,GAAG,GAAG,EACb,aAAa,SAAS,gBAAgB,GAAG,SAAS,GAAG,SAAS;IAE9D,WAAW,EAAE,MAAM,CAAC;IACpB;;4EAEwE;IACxE,MAAM,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;iFAG6E;IAC7E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;IAChD;0DACsD;IACtD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,GAAG,EAAE,CACH,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,EAC3C,GAAG,CAAC,EAAE,gBAAgB,KACnB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,IAAI,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAChC;;4EAEwE;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;sCAEkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;2FAQuF;IACvF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;oFAGgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;kFAE8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;yDAGqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;gDAM4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;gDAU4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;+EAE2E;IAC3E,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC;;;mFAG+E;IAC/E,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB;;oCAEgC;IAChC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;uEACmE;IACnE,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,EACV,OAAO,GACP,CAAC,CACC,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,EAC3C,GAAG,CAAC,EAAE,gBAAgB,KACnB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAMD,UAAU,sBAAsB,CAC9B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,GACvD,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAC/B,SAAS,EACb,OAAO,GAAG,GAAG;IAEb,WAAW,EAAE,MAAM,CAAC;IACpB;oEACgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mDAAmD;IACnD,MAAM,CAAC,EAAE,KAAK,CAAC;IACf;;iBAEa;IACb,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB;;6DAEyD;IACzD,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;IAChD;0DACsD;IACtD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,GAAG,EAAE,CACH,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAC1B,GAAG,CAAC,EAAE,gBAAgB,KACnB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,IAAI,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAChC;2DACuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;yCACqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;gFAE4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;iFAC6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;wEACoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;gFAC4E;IAC5E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;8DAC0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;wDAEoD;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,gEAAgE;IAChE,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;6CACyC;IACzC,aAAa,CAAC,EACV,OAAO,GACP,CAAC,CACC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAC1B,GAAG,CAAC,EAAE,gBAAgB,KACnB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC;oDACgD;IAChD,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAMD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB,CAAC,MAAM,EAAE,OAAO;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,CACZ,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,gBAAgB,KACnB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,OAAO,kBAAkB,EAAE,UAAU,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;gFAC4E;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IACzC;qCACiC;IACjC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;IACzD,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;2DAEuD;IACvD,QAAQ,CAAC,aAAa,CAAC,EACnB,OAAO,GACP,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,gBAAgB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E;;yBAEqB;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,YAAY,CAC1B,OAAO,SAAS,gBAAgB,EAChC,OAAO,EACP,aAAa,SAAS,gBAAgB,GAAG,SAAS,GAAG,SAAS,EAE9D,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,GAC/D,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AACnE,wBAAgB,YAAY,CAC1B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC3D,OAAO,EAEP,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,GAChD,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"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"}