@agent-native/core 0.111.4 → 0.113.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 (574) hide show
  1. package/corpus/README.md +4 -2
  2. package/corpus/core/CHANGELOG.md +34 -0
  3. package/corpus/core/docs/AGENTS.md +7 -0
  4. package/corpus/core/docs/content/integrations.mdx +63 -2
  5. package/corpus/core/docs/design/provider-integration-authority.md +117 -0
  6. package/corpus/core/package.json +8 -1
  7. package/corpus/core/scripts/materialize-source-corpus.mjs +9 -2
  8. package/corpus/core/src/cli/atomic-json-file.ts +324 -0
  9. package/corpus/core/src/cli/claude-code-participant.ts +515 -0
  10. package/corpus/core/src/cli/code-agent-executor.ts +35 -15
  11. package/corpus/core/src/cli/code-agent-runs.concurrent-worker.ts +33 -0
  12. package/corpus/core/src/cli/code-agent-runs.ts +70 -36
  13. package/corpus/core/src/cli/codex-cli-participant.ts +496 -0
  14. package/corpus/core/src/cli/multi-frontier-runs.ts +1952 -0
  15. package/corpus/core/src/client/chat/ChatHistoryList.tsx +7 -404
  16. package/corpus/core/src/coding-tools/index.ts +27 -8
  17. package/corpus/core/src/embeddings/index.ts +233 -0
  18. package/corpus/core/src/index.ts +2 -0
  19. package/corpus/core/src/integrations/index.ts +10 -0
  20. package/corpus/core/src/integrations/slack-oauth.ts +1 -0
  21. package/corpus/core/src/integrations/webhook-delivery.ts +55 -0
  22. package/corpus/core/src/notifications/channels.ts +4 -10
  23. package/corpus/core/src/provider-api/actions/custom-provider-registration.ts +197 -0
  24. package/corpus/core/src/provider-api/actions/delete-staged-dataset.ts +3 -42
  25. package/corpus/core/src/provider-api/actions/list-staged-datasets.ts +3 -45
  26. package/corpus/core/src/provider-api/actions/provider-api-audit.ts +88 -0
  27. package/corpus/core/src/provider-api/actions/provider-api.ts +460 -0
  28. package/corpus/core/src/provider-api/actions/query-staged-dataset.ts +3 -140
  29. package/corpus/core/src/provider-api/actions/staged-datasets.ts +359 -0
  30. package/corpus/core/src/provider-api/gong.ts +108 -0
  31. package/corpus/core/src/scripts/docs/source-search.ts +2 -1
  32. package/corpus/core/src/search/index.ts +413 -0
  33. package/corpus/core/src/server/google-oauth-credentials.ts +80 -3
  34. package/corpus/core/src/server/index.ts +6 -0
  35. package/corpus/core/src/styles/chat-history-list.css +1 -313
  36. package/corpus/core/src/templates/default/.agents/skills/actions/SKILL.md +32 -12
  37. package/corpus/core/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +10 -0
  38. package/corpus/core/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  39. package/corpus/core/src/templates/default/.agents/skills/integration-webhooks/SKILL.md +323 -0
  40. package/corpus/core/src/templates/default/.agents/skills/onboarding/SKILL.md +56 -0
  41. package/corpus/core/src/templates/default/.agents/skills/secrets/SKILL.md +273 -0
  42. package/corpus/core/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +11 -2
  43. package/corpus/core/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  44. package/corpus/core/src/templates/default/AGENTS.md +25 -18
  45. package/corpus/core/src/templates/headless/.agents/skills/actions/SKILL.md +512 -0
  46. package/corpus/core/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +10 -0
  47. package/corpus/core/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  48. package/corpus/core/src/templates/headless/.agents/skills/integration-webhooks/SKILL.md +323 -0
  49. package/corpus/core/src/templates/headless/.agents/skills/secrets/SKILL.md +273 -0
  50. package/corpus/core/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  51. package/corpus/core/src/templates/headless/AGENTS.md +7 -0
  52. package/corpus/core/src/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -12
  53. package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +10 -0
  54. package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  55. package/corpus/core/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  56. package/corpus/core/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +11 -2
  57. package/corpus/core/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  58. package/corpus/core/src/templates/workspace-core/AGENTS.md +4 -0
  59. package/corpus/core/src/templates/workspace-root/AGENTS.md +4 -0
  60. package/corpus/templates/analytics/.agents/skills/actions/SKILL.md +32 -12
  61. package/corpus/templates/analytics/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  62. package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +11 -2
  63. package/corpus/templates/analytics/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  64. package/corpus/templates/analytics/actions/delete-staged-dataset.ts +3 -23
  65. package/corpus/templates/analytics/actions/list-staged-datasets.ts +3 -27
  66. package/corpus/templates/analytics/actions/provider-api-catalog.ts +16 -19
  67. package/corpus/templates/analytics/actions/provider-api-docs.ts +3 -5
  68. package/corpus/templates/analytics/actions/provider-api-request.ts +162 -185
  69. package/corpus/templates/analytics/actions/query-staged-dataset.ts +3 -47
  70. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +52 -161
  71. package/corpus/templates/assets/.agents/skills/actions/SKILL.md +32 -12
  72. package/corpus/templates/assets/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  73. package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +11 -2
  74. package/corpus/templates/assets/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  75. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +63 -160
  76. package/corpus/templates/brain/.agents/skills/actions/SKILL.md +32 -12
  77. package/corpus/templates/brain/.agents/skills/brain/RUNBOOK.md +48 -5
  78. package/corpus/templates/brain/.agents/skills/brain/SKILL.md +46 -14
  79. package/corpus/templates/brain/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  80. package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +11 -2
  81. package/corpus/templates/brain/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  82. package/corpus/templates/brain/README.md +34 -3
  83. package/corpus/templates/brain/actions/_schemas.ts +13 -7
  84. package/corpus/templates/brain/actions/approve-proposal.ts +2 -0
  85. package/corpus/templates/brain/actions/claim-distillation.ts +24 -27
  86. package/corpus/templates/brain/actions/create-source.ts +1 -1
  87. package/corpus/templates/brain/actions/delete-staged-dataset.ts +3 -24
  88. package/corpus/templates/brain/actions/get-knowledge.ts +6 -2
  89. package/corpus/templates/brain/actions/get-pilot-report.ts +44 -8
  90. package/corpus/templates/brain/actions/import-capture.ts +21 -9
  91. package/corpus/templates/brain/actions/import-transcript.ts +42 -14
  92. package/corpus/templates/brain/actions/list-captures.ts +10 -1
  93. package/corpus/templates/brain/actions/list-distillation-queue.ts +39 -14
  94. package/corpus/templates/brain/actions/list-projects.ts +51 -0
  95. package/corpus/templates/brain/actions/list-proposals.ts +80 -4
  96. package/corpus/templates/brain/actions/list-sources.ts +17 -3
  97. package/corpus/templates/brain/actions/list-staged-datasets.ts +3 -28
  98. package/corpus/templates/brain/actions/manage-project.ts +118 -0
  99. package/corpus/templates/brain/actions/mark-capture-distilled.ts +68 -20
  100. package/corpus/templates/brain/actions/navigate.ts +1 -0
  101. package/corpus/templates/brain/actions/provider-api-catalog.ts +5 -11
  102. package/corpus/templates/brain/actions/provider-api-docs.ts +3 -5
  103. package/corpus/templates/brain/actions/provider-api-request.ts +3 -37
  104. package/corpus/templates/brain/actions/query-staged-dataset.ts +3 -48
  105. package/corpus/templates/brain/actions/reject-proposal.ts +6 -1
  106. package/corpus/templates/brain/actions/resanitize-captures.ts +159 -33
  107. package/corpus/templates/brain/actions/review-proposal.ts +2 -0
  108. package/corpus/templates/brain/actions/search-everything.ts +10 -1
  109. package/corpus/templates/brain/actions/search-knowledge.ts +1 -1
  110. package/corpus/templates/brain/actions/set-settings.ts +36 -1
  111. package/corpus/templates/brain/actions/update-proposal.ts +2 -0
  112. package/corpus/templates/brain/actions/update-source.ts +5 -1
  113. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +48 -154
  114. package/corpus/templates/brain/app/hooks/use-distillation-bridge.ts +18 -9
  115. package/corpus/templates/brain/app/hooks/use-navigation-state.ts +3 -0
  116. package/corpus/templates/brain/app/i18n-data.ts +731 -2
  117. package/corpus/templates/brain/app/lib/brain.ts +88 -1
  118. package/corpus/templates/brain/app/lib/ingest-handoff.ts +35 -0
  119. package/corpus/templates/brain/app/routes/ops.tsx +47 -0
  120. package/corpus/templates/brain/app/routes/review.tsx +41 -2
  121. package/corpus/templates/brain/app/routes/search.tsx +33 -2
  122. package/corpus/templates/brain/app/routes/settings.tsx +158 -0
  123. package/corpus/templates/brain/app/routes/sources.tsx +31 -0
  124. package/corpus/templates/brain/changelog/2026-07-19-added-private-source-safe-semantic-search.md +6 -0
  125. package/corpus/templates/brain/changelog/2026-07-19-slack-backfills-can-now-join-configured-public-channels-befo.md +6 -0
  126. package/corpus/templates/brain/changelog/2026-07-19-slack-backfills-now-continue-across-the-configured-number-of.md +6 -0
  127. package/corpus/templates/brain/changelog/2026-07-19-slack-backfills-now-start-with-a-safe-four-week-window-and-r.md +6 -0
  128. package/corpus/templates/brain/jobs/process-ingest-queue.ts +270 -36
  129. package/corpus/templates/brain/package.json +1 -0
  130. package/corpus/templates/brain/server/db/index.ts +18 -0
  131. package/corpus/templates/brain/server/db/schema.ts +197 -1
  132. package/corpus/templates/brain/server/jobs/distillation-queue.ts +12 -5
  133. package/corpus/templates/brain/server/lib/audiences.ts +708 -0
  134. package/corpus/templates/brain/server/lib/brain-health.ts +251 -38
  135. package/corpus/templates/brain/server/lib/brain.ts +877 -50
  136. package/corpus/templates/brain/server/lib/capture-sanitization.ts +217 -53
  137. package/corpus/templates/brain/server/lib/connectors.ts +609 -72
  138. package/corpus/templates/brain/server/lib/demo.ts +17 -4
  139. package/corpus/templates/brain/server/lib/hybrid-search.ts +363 -0
  140. package/corpus/templates/brain/server/lib/ingest-queue.ts +104 -0
  141. package/corpus/templates/brain/server/lib/privacy-readiness.ts +24 -0
  142. package/corpus/templates/brain/server/lib/search-index-contracts.ts +72 -0
  143. package/corpus/templates/brain/server/lib/search-index.ts +714 -0
  144. package/corpus/templates/brain/server/lib/search.ts +120 -4
  145. package/corpus/templates/brain/server/lib/sensitivity-policy.ts +174 -0
  146. package/corpus/templates/brain/server/lib/slack-channel-membership.ts +44 -0
  147. package/corpus/templates/brain/server/lib/slack-events.ts +281 -0
  148. package/corpus/templates/brain/server/onboarding.ts +29 -0
  149. package/corpus/templates/brain/server/plugins/db.ts +204 -0
  150. package/corpus/templates/brain/server/register-secrets.ts +46 -0
  151. package/corpus/templates/brain/server/routes/api/_agent-native/brain/ingest.post.ts +36 -16
  152. package/corpus/templates/brain/server/routes/api/_agent-native/brain/slack-events.post.ts +28 -0
  153. package/corpus/templates/brain/shared/slack-source-config.ts +60 -0
  154. package/corpus/templates/brain/shared/types.ts +10 -0
  155. package/corpus/templates/calendar/.agents/skills/actions/SKILL.md +32 -12
  156. package/corpus/templates/calendar/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  157. package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +11 -2
  158. package/corpus/templates/calendar/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  159. package/corpus/templates/calendar/actions/delete-staged-dataset.ts +3 -24
  160. package/corpus/templates/calendar/actions/list-staged-datasets.ts +3 -28
  161. package/corpus/templates/calendar/actions/provider-api-catalog.ts +5 -11
  162. package/corpus/templates/calendar/actions/provider-api-docs.ts +3 -5
  163. package/corpus/templates/calendar/actions/provider-api-request.ts +3 -37
  164. package/corpus/templates/calendar/actions/query-staged-dataset.ts +3 -48
  165. package/corpus/templates/calendar/server/handlers/gong.ts +6 -61
  166. package/corpus/templates/calendar/server/handlers/google-auth.ts +10 -8
  167. package/corpus/templates/calendar/server/lib/google-calendar.ts +7 -45
  168. package/corpus/templates/chat/.agents/skills/actions/SKILL.md +32 -12
  169. package/corpus/templates/chat/.agents/skills/agent-native-docs/SKILL.md +10 -0
  170. package/corpus/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  171. package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +11 -2
  172. package/corpus/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  173. package/corpus/templates/chat/AGENTS.md +5 -2
  174. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +51 -157
  175. package/corpus/templates/clips/.agents/skills/actions/SKILL.md +32 -12
  176. package/corpus/templates/clips/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  177. package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +11 -2
  178. package/corpus/templates/clips/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  179. package/corpus/templates/clips/AGENTS.md +11 -0
  180. package/corpus/templates/clips/actions/export-to-brain.ts +505 -171
  181. package/corpus/templates/clips/changelog/2026-07-19-ready-clips-transcripts-can-be-backfilled-to-brain-for-a-bou.md +6 -0
  182. package/corpus/templates/clips/server/lib/calendar-event-meetings.ts +1 -1
  183. package/corpus/templates/clips/server/lib/google-calendar-client.ts +12 -22
  184. package/corpus/templates/clips/server/lib/google-calendar-oauth.ts +9 -6
  185. package/corpus/templates/clips/server/lib/slack-oauth.ts +12 -47
  186. package/corpus/templates/clips/server/routes/_agent-native/google/auth-url.get.ts +2 -6
  187. package/corpus/templates/clips/server/routes/api/auth/google-calendar.get.ts +4 -4
  188. package/corpus/templates/content/.agents/skills/actions/SKILL.md +32 -12
  189. package/corpus/templates/content/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  190. package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +11 -2
  191. package/corpus/templates/content/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  192. package/corpus/templates/content/actions/delete-staged-dataset.ts +3 -24
  193. package/corpus/templates/content/actions/list-staged-datasets.ts +3 -28
  194. package/corpus/templates/content/actions/provider-api-catalog.ts +5 -11
  195. package/corpus/templates/content/actions/provider-api-docs.ts +3 -5
  196. package/corpus/templates/content/actions/provider-api-request.ts +3 -37
  197. package/corpus/templates/content/actions/query-staged-dataset.ts +3 -48
  198. package/corpus/templates/design/.agents/skills/actions/SKILL.md +32 -12
  199. package/corpus/templates/design/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  200. package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +11 -2
  201. package/corpus/templates/design/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  202. package/corpus/templates/design/actions/delete-staged-dataset.ts +4 -23
  203. package/corpus/templates/design/actions/list-staged-datasets.ts +4 -27
  204. package/corpus/templates/design/actions/provider-api-catalog.ts +15 -18
  205. package/corpus/templates/design/actions/provider-api-docs.ts +57 -48
  206. package/corpus/templates/design/actions/provider-api-request.ts +140 -164
  207. package/corpus/templates/design/actions/query-staged-dataset.ts +4 -47
  208. package/corpus/templates/dispatch/.agents/skills/actions/SKILL.md +32 -12
  209. package/corpus/templates/dispatch/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  210. package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +11 -2
  211. package/corpus/templates/dispatch/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  212. package/corpus/templates/dispatch/actions/delete-staged-dataset.ts +4 -23
  213. package/corpus/templates/dispatch/actions/list-staged-datasets.ts +4 -30
  214. package/corpus/templates/dispatch/actions/provider-api-catalog.ts +15 -18
  215. package/corpus/templates/dispatch/actions/provider-api-docs.ts +57 -48
  216. package/corpus/templates/dispatch/actions/provider-api-request.ts +138 -163
  217. package/corpus/templates/dispatch/actions/query-staged-dataset.ts +4 -47
  218. package/corpus/templates/forms/.agents/skills/actions/SKILL.md +32 -12
  219. package/corpus/templates/forms/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  220. package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +11 -2
  221. package/corpus/templates/forms/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  222. package/corpus/templates/forms/server/lib/integrations.ts +23 -22
  223. package/corpus/templates/macros/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  224. package/corpus/templates/macros/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  225. package/corpus/templates/mail/.agents/skills/actions/SKILL.md +32 -12
  226. package/corpus/templates/mail/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  227. package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +11 -2
  228. package/corpus/templates/mail/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  229. package/corpus/templates/mail/actions/delete-staged-dataset.ts +4 -23
  230. package/corpus/templates/mail/actions/list-staged-datasets.ts +4 -27
  231. package/corpus/templates/mail/actions/provider-api-catalog.ts +15 -18
  232. package/corpus/templates/mail/actions/provider-api-docs.ts +57 -48
  233. package/corpus/templates/mail/actions/provider-api-request.ts +146 -173
  234. package/corpus/templates/mail/actions/query-staged-dataset.ts +4 -47
  235. package/corpus/templates/mail/server/handlers/gong.ts +6 -61
  236. package/corpus/templates/mail/server/lib/google-auth.ts +10 -13
  237. package/corpus/templates/plan/.agents/skills/actions/SKILL.md +32 -12
  238. package/corpus/templates/plan/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  239. package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +11 -2
  240. package/corpus/templates/plan/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  241. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +47 -156
  242. package/corpus/templates/slides/.agents/skills/actions/SKILL.md +32 -12
  243. package/corpus/templates/slides/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  244. package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +11 -2
  245. package/corpus/templates/slides/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  246. package/corpus/templates/slides/actions/delete-staged-dataset.ts +4 -23
  247. package/corpus/templates/slides/actions/list-staged-datasets.ts +4 -27
  248. package/corpus/templates/slides/actions/provider-api-catalog.ts +15 -18
  249. package/corpus/templates/slides/actions/provider-api-docs.ts +57 -48
  250. package/corpus/templates/slides/actions/provider-api-request.ts +145 -172
  251. package/corpus/templates/slides/actions/query-staged-dataset.ts +4 -47
  252. package/corpus/templates/slides/server/lib/google-docs-oauth.ts +11 -36
  253. package/corpus/templates/tasks/.agents/skills/actions/SKILL.md +32 -12
  254. package/corpus/templates/tasks/.agents/skills/agent-native-docs/SKILL.md +10 -0
  255. package/corpus/templates/tasks/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  256. package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +11 -2
  257. package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  258. package/corpus/toolkit/CHANGELOG.md +125 -0
  259. package/corpus/toolkit/README.md +60 -0
  260. package/corpus/toolkit/export-snapshot.json +35 -0
  261. package/corpus/toolkit/migration-manifest.json +4 -0
  262. package/corpus/toolkit/package.json +281 -0
  263. package/corpus/toolkit/scripts/finalize-build.mjs +55 -0
  264. package/corpus/toolkit/src/app-shell/header-actions.tsx +84 -0
  265. package/corpus/toolkit/src/app-shell/index.ts +1 -0
  266. package/corpus/toolkit/src/chat-history/ChatHistoryList.tsx +469 -0
  267. package/corpus/toolkit/src/chat-history/index.ts +7 -0
  268. package/corpus/toolkit/src/chat-history.css +314 -0
  269. package/corpus/toolkit/src/collab-ui/AgentPresenceChip.tsx +69 -0
  270. package/corpus/toolkit/src/collab-ui/LiveCursorOverlay.tsx +241 -0
  271. package/corpus/toolkit/src/collab-ui/PresenceBar.tsx +346 -0
  272. package/corpus/toolkit/src/collab-ui/RecentEditHighlights.tsx +225 -0
  273. package/corpus/toolkit/src/collab-ui/RemoteSelectionRings.tsx +227 -0
  274. package/corpus/toolkit/src/collab-ui/agent-identity.ts +16 -0
  275. package/corpus/toolkit/src/collab-ui/index.ts +39 -0
  276. package/corpus/toolkit/src/collab-ui/lead-client.ts +32 -0
  277. package/corpus/toolkit/src/collab-ui/types.ts +96 -0
  278. package/corpus/toolkit/src/composer/AgentComposerFrame.tsx +59 -0
  279. package/corpus/toolkit/src/composer/ComposerPlusMenu.tsx +983 -0
  280. package/corpus/toolkit/src/composer/MentionPopover.tsx +412 -0
  281. package/corpus/toolkit/src/composer/PastedTextChip.tsx +150 -0
  282. package/corpus/toolkit/src/composer/PromptComposer.tsx +718 -0
  283. package/corpus/toolkit/src/composer/RealtimeVoiceMode.tsx +856 -0
  284. package/corpus/toolkit/src/composer/TiptapComposer.tsx +2936 -0
  285. package/corpus/toolkit/src/composer/VoiceButton.tsx +255 -0
  286. package/corpus/toolkit/src/composer/asset-picker-url.ts +80 -0
  287. package/corpus/toolkit/src/composer/attachment-accept.ts +71 -0
  288. package/corpus/toolkit/src/composer/draft-key.ts +7 -0
  289. package/corpus/toolkit/src/composer/extensions/FileReference.tsx +55 -0
  290. package/corpus/toolkit/src/composer/extensions/MentionReference.tsx +93 -0
  291. package/corpus/toolkit/src/composer/extensions/SkillReference.tsx +56 -0
  292. package/corpus/toolkit/src/composer/index.ts +79 -0
  293. package/corpus/toolkit/src/composer/pasted-text.ts +160 -0
  294. package/corpus/toolkit/src/composer/prompt-attachments.ts +93 -0
  295. package/corpus/toolkit/src/composer/realtime-voice-audio-level.ts +64 -0
  296. package/corpus/toolkit/src/composer/realtime-voice-transcript.ts +134 -0
  297. package/corpus/toolkit/src/composer/runtime-adapters.tsx +343 -0
  298. package/corpus/toolkit/src/composer/types.ts +66 -0
  299. package/corpus/toolkit/src/composer/use-file-search.ts +64 -0
  300. package/corpus/toolkit/src/composer/use-mention-search.ts +90 -0
  301. package/corpus/toolkit/src/composer/use-skills.ts +45 -0
  302. package/corpus/toolkit/src/composer/useRealtimeVoiceMode.tsx +2117 -0
  303. package/corpus/toolkit/src/composer/useVoiceDictation.ts +1191 -0
  304. package/corpus/toolkit/src/context-ui/ContextMeter.tsx +101 -0
  305. package/corpus/toolkit/src/context-ui/ContextSegmentRow.tsx +184 -0
  306. package/corpus/toolkit/src/context-ui/ContextTreemap.tsx +125 -0
  307. package/corpus/toolkit/src/context-ui/ContextXRayPanel.tsx +377 -0
  308. package/corpus/toolkit/src/context-ui/format.ts +42 -0
  309. package/corpus/toolkit/src/context-ui/index.ts +15 -0
  310. package/corpus/toolkit/src/context-ui/types.ts +43 -0
  311. package/corpus/toolkit/src/design-tweaks/index.ts +1 -0
  312. package/corpus/toolkit/src/design-tweaks/visual-style-controls.tsx +1084 -0
  313. package/corpus/toolkit/src/editor/BubbleToolbar.tsx +253 -0
  314. package/corpus/toolkit/src/editor/CodeBlockNode.tsx +254 -0
  315. package/corpus/toolkit/src/editor/DragHandle.ts +1437 -0
  316. package/corpus/toolkit/src/editor/ImageExtension.ts +306 -0
  317. package/corpus/toolkit/src/editor/RegistryBlockContext.tsx +107 -0
  318. package/corpus/toolkit/src/editor/RegistryBlockNode.tsx +652 -0
  319. package/corpus/toolkit/src/editor/RichMarkdownEditor.tsx +81 -0
  320. package/corpus/toolkit/src/editor/RunId.ts +61 -0
  321. package/corpus/toolkit/src/editor/SharedRichEditor.tsx +321 -0
  322. package/corpus/toolkit/src/editor/SlashCommandMenu.tsx +310 -0
  323. package/corpus/toolkit/src/editor/extensions.ts +402 -0
  324. package/corpus/toolkit/src/editor/gfmDoc.ts +92 -0
  325. package/corpus/toolkit/src/editor/index.ts +93 -0
  326. package/corpus/toolkit/src/editor/registrySlashCommands.ts +131 -0
  327. package/corpus/toolkit/src/editor/surgical-apply.ts +192 -0
  328. package/corpus/toolkit/src/editor/useCollabReconcile.ts +589 -0
  329. package/corpus/toolkit/src/editor.css +510 -0
  330. package/corpus/toolkit/src/hooks/index.ts +2 -0
  331. package/corpus/toolkit/src/hooks/use-mobile.tsx +21 -0
  332. package/corpus/toolkit/src/hooks/use-toast.ts +188 -0
  333. package/corpus/toolkit/src/index.ts +8 -0
  334. package/corpus/toolkit/src/onboarding/index.ts +1 -0
  335. package/corpus/toolkit/src/provider.tsx +47 -0
  336. package/corpus/toolkit/src/sharing/VisibilityBadge.tsx +37 -0
  337. package/corpus/toolkit/src/sharing/index.ts +4 -0
  338. package/corpus/toolkit/src/styles.css +21 -0
  339. package/corpus/toolkit/src/ui/accordion.tsx +56 -0
  340. package/corpus/toolkit/src/ui/alert-dialog.tsx +141 -0
  341. package/corpus/toolkit/src/ui/alert.tsx +59 -0
  342. package/corpus/toolkit/src/ui/aspect-ratio.tsx +5 -0
  343. package/corpus/toolkit/src/ui/avatar.tsx +48 -0
  344. package/corpus/toolkit/src/ui/badge.tsx +37 -0
  345. package/corpus/toolkit/src/ui/breadcrumb.tsx +115 -0
  346. package/corpus/toolkit/src/ui/button.tsx +78 -0
  347. package/corpus/toolkit/src/ui/calendar.tsx +214 -0
  348. package/corpus/toolkit/src/ui/card.tsx +86 -0
  349. package/corpus/toolkit/src/ui/carousel.tsx +260 -0
  350. package/corpus/toolkit/src/ui/chart.tsx +375 -0
  351. package/corpus/toolkit/src/ui/checkbox.tsx +28 -0
  352. package/corpus/toolkit/src/ui/collapsible.tsx +9 -0
  353. package/corpus/toolkit/src/ui/command.tsx +174 -0
  354. package/corpus/toolkit/src/ui/context-menu.tsx +202 -0
  355. package/corpus/toolkit/src/ui/date-picker.tsx +64 -0
  356. package/corpus/toolkit/src/ui/dialog.tsx +146 -0
  357. package/corpus/toolkit/src/ui/drawer.tsx +126 -0
  358. package/corpus/toolkit/src/ui/dropdown-menu.tsx +218 -0
  359. package/corpus/toolkit/src/ui/form.tsx +177 -0
  360. package/corpus/toolkit/src/ui/hover-card.tsx +27 -0
  361. package/corpus/toolkit/src/ui/index.ts +52 -0
  362. package/corpus/toolkit/src/ui/input-otp.tsx +69 -0
  363. package/corpus/toolkit/src/ui/input.tsx +22 -0
  364. package/corpus/toolkit/src/ui/label.tsx +24 -0
  365. package/corpus/toolkit/src/ui/logo.tsx +36 -0
  366. package/corpus/toolkit/src/ui/menubar.tsx +235 -0
  367. package/corpus/toolkit/src/ui/navigation-menu.tsx +128 -0
  368. package/corpus/toolkit/src/ui/pagination.tsx +121 -0
  369. package/corpus/toolkit/src/ui/popover.tsx +44 -0
  370. package/corpus/toolkit/src/ui/progress.tsx +26 -0
  371. package/corpus/toolkit/src/ui/radio-group.tsx +42 -0
  372. package/corpus/toolkit/src/ui/resizable.tsx +43 -0
  373. package/corpus/toolkit/src/ui/scroll-area.tsx +46 -0
  374. package/corpus/toolkit/src/ui/select.tsx +158 -0
  375. package/corpus/toolkit/src/ui/separator.tsx +29 -0
  376. package/corpus/toolkit/src/ui/sheet.tsx +160 -0
  377. package/corpus/toolkit/src/ui/sidebar.tsx +777 -0
  378. package/corpus/toolkit/src/ui/skeleton.tsx +18 -0
  379. package/corpus/toolkit/src/ui/slider.tsx +26 -0
  380. package/corpus/toolkit/src/ui/sonner.tsx +58 -0
  381. package/corpus/toolkit/src/ui/spinner.tsx +17 -0
  382. package/corpus/toolkit/src/ui/switch.tsx +27 -0
  383. package/corpus/toolkit/src/ui/table.tsx +117 -0
  384. package/corpus/toolkit/src/ui/tabs.tsx +53 -0
  385. package/corpus/toolkit/src/ui/textarea.tsx +23 -0
  386. package/corpus/toolkit/src/ui/toast.tsx +127 -0
  387. package/corpus/toolkit/src/ui/toaster.tsx +33 -0
  388. package/corpus/toolkit/src/ui/toggle-group.tsx +59 -0
  389. package/corpus/toolkit/src/ui/toggle.tsx +43 -0
  390. package/corpus/toolkit/src/ui/tooltip.tsx +53 -0
  391. package/corpus/toolkit/src/ui/use-toast.ts +3 -0
  392. package/corpus/toolkit/src/utils.ts +8 -0
  393. package/corpus/toolkit/tsconfig.json +23 -0
  394. package/dist/cli/atomic-json-file.d.ts +30 -0
  395. package/dist/cli/atomic-json-file.d.ts.map +1 -0
  396. package/dist/cli/atomic-json-file.js +240 -0
  397. package/dist/cli/atomic-json-file.js.map +1 -0
  398. package/dist/cli/claude-code-participant.d.ts +77 -0
  399. package/dist/cli/claude-code-participant.d.ts.map +1 -0
  400. package/dist/cli/claude-code-participant.js +355 -0
  401. package/dist/cli/claude-code-participant.js.map +1 -0
  402. package/dist/cli/code-agent-executor.d.ts +8 -9
  403. package/dist/cli/code-agent-executor.d.ts.map +1 -1
  404. package/dist/cli/code-agent-executor.js +27 -13
  405. package/dist/cli/code-agent-executor.js.map +1 -1
  406. package/dist/cli/code-agent-runs.concurrent-worker.d.ts +2 -0
  407. package/dist/cli/code-agent-runs.concurrent-worker.d.ts.map +1 -0
  408. package/dist/cli/code-agent-runs.concurrent-worker.js +32 -0
  409. package/dist/cli/code-agent-runs.concurrent-worker.js.map +1 -0
  410. package/dist/cli/code-agent-runs.d.ts +5 -0
  411. package/dist/cli/code-agent-runs.d.ts.map +1 -1
  412. package/dist/cli/code-agent-runs.js +51 -33
  413. package/dist/cli/code-agent-runs.js.map +1 -1
  414. package/dist/cli/codex-cli-participant.d.ts +77 -0
  415. package/dist/cli/codex-cli-participant.d.ts.map +1 -0
  416. package/dist/cli/codex-cli-participant.js +354 -0
  417. package/dist/cli/codex-cli-participant.js.map +1 -0
  418. package/dist/cli/multi-frontier-runs.d.ts +246 -0
  419. package/dist/cli/multi-frontier-runs.d.ts.map +1 -0
  420. package/dist/cli/multi-frontier-runs.js +1247 -0
  421. package/dist/cli/multi-frontier-runs.js.map +1 -0
  422. package/dist/client/chat/ChatHistoryList.d.ts +1 -87
  423. package/dist/client/chat/ChatHistoryList.d.ts.map +1 -1
  424. package/dist/client/chat/ChatHistoryList.js +1 -82
  425. package/dist/client/chat/ChatHistoryList.js.map +1 -1
  426. package/dist/coding-tools/index.d.ts +1 -0
  427. package/dist/coding-tools/index.d.ts.map +1 -1
  428. package/dist/coding-tools/index.js +25 -7
  429. package/dist/coding-tools/index.js.map +1 -1
  430. package/dist/collab/awareness.d.ts +2 -2
  431. package/dist/collab/awareness.d.ts.map +1 -1
  432. package/dist/embeddings/index.d.ts +24 -0
  433. package/dist/embeddings/index.d.ts.map +1 -0
  434. package/dist/embeddings/index.js +172 -0
  435. package/dist/embeddings/index.js.map +1 -0
  436. package/dist/index.d.ts +2 -0
  437. package/dist/index.d.ts.map +1 -1
  438. package/dist/index.js +2 -0
  439. package/dist/index.js.map +1 -1
  440. package/dist/integrations/index.d.ts +2 -1
  441. package/dist/integrations/index.d.ts.map +1 -1
  442. package/dist/integrations/index.js +2 -1
  443. package/dist/integrations/index.js.map +1 -1
  444. package/dist/integrations/slack-manifest.d.ts +1 -1
  445. package/dist/integrations/slack-oauth.d.ts +1 -1
  446. package/dist/integrations/slack-oauth.d.ts.map +1 -1
  447. package/dist/integrations/slack-oauth.js +1 -0
  448. package/dist/integrations/slack-oauth.js.map +1 -1
  449. package/dist/integrations/webhook-delivery.d.ts +23 -0
  450. package/dist/integrations/webhook-delivery.d.ts.map +1 -0
  451. package/dist/integrations/webhook-delivery.js +32 -0
  452. package/dist/integrations/webhook-delivery.js.map +1 -0
  453. package/dist/notifications/channels.d.ts.map +1 -1
  454. package/dist/notifications/channels.js +4 -9
  455. package/dist/notifications/channels.js.map +1 -1
  456. package/dist/notifications/routes.d.ts +3 -3
  457. package/dist/progress/routes.d.ts +1 -1
  458. package/dist/provider-api/actions/custom-provider-registration.d.ts +136 -0
  459. package/dist/provider-api/actions/custom-provider-registration.d.ts.map +1 -0
  460. package/dist/provider-api/actions/custom-provider-registration.js +154 -0
  461. package/dist/provider-api/actions/custom-provider-registration.js.map +1 -0
  462. package/dist/provider-api/actions/delete-staged-dataset.d.ts +1 -1
  463. package/dist/provider-api/actions/delete-staged-dataset.d.ts.map +1 -1
  464. package/dist/provider-api/actions/delete-staged-dataset.js +3 -34
  465. package/dist/provider-api/actions/delete-staged-dataset.js.map +1 -1
  466. package/dist/provider-api/actions/list-staged-datasets.d.ts +2 -3
  467. package/dist/provider-api/actions/list-staged-datasets.d.ts.map +1 -1
  468. package/dist/provider-api/actions/list-staged-datasets.js +3 -40
  469. package/dist/provider-api/actions/list-staged-datasets.js.map +1 -1
  470. package/dist/provider-api/actions/provider-api-audit.d.ts +7 -0
  471. package/dist/provider-api/actions/provider-api-audit.d.ts.map +1 -0
  472. package/dist/provider-api/actions/provider-api-audit.js +74 -0
  473. package/dist/provider-api/actions/provider-api-audit.js.map +1 -0
  474. package/dist/provider-api/actions/provider-api.d.ts +370 -0
  475. package/dist/provider-api/actions/provider-api.d.ts.map +1 -0
  476. package/dist/provider-api/actions/provider-api.js +280 -0
  477. package/dist/provider-api/actions/provider-api.js.map +1 -0
  478. package/dist/provider-api/actions/query-staged-dataset.d.ts +1 -1
  479. package/dist/provider-api/actions/query-staged-dataset.d.ts.map +1 -1
  480. package/dist/provider-api/actions/query-staged-dataset.js +3 -116
  481. package/dist/provider-api/actions/query-staged-dataset.js.map +1 -1
  482. package/dist/provider-api/actions/staged-datasets.d.ts +190 -0
  483. package/dist/provider-api/actions/staged-datasets.d.ts.map +1 -0
  484. package/dist/provider-api/actions/staged-datasets.js +210 -0
  485. package/dist/provider-api/actions/staged-datasets.js.map +1 -0
  486. package/dist/provider-api/gong.d.ts +44 -0
  487. package/dist/provider-api/gong.d.ts.map +1 -0
  488. package/dist/provider-api/gong.js +56 -0
  489. package/dist/provider-api/gong.js.map +1 -0
  490. package/dist/resources/handlers.d.ts +1 -1
  491. package/dist/scripts/docs/source-search.d.ts +2 -1
  492. package/dist/scripts/docs/source-search.d.ts.map +1 -1
  493. package/dist/scripts/docs/source-search.js +2 -1
  494. package/dist/scripts/docs/source-search.js.map +1 -1
  495. package/dist/search/index.d.ts +88 -0
  496. package/dist/search/index.d.ts.map +1 -0
  497. package/dist/search/index.js +267 -0
  498. package/dist/search/index.js.map +1 -0
  499. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  500. package/dist/server/google-oauth-credentials.d.ts +35 -0
  501. package/dist/server/google-oauth-credentials.d.ts.map +1 -1
  502. package/dist/server/google-oauth-credentials.js +48 -2
  503. package/dist/server/google-oauth-credentials.js.map +1 -1
  504. package/dist/server/index.d.ts +1 -1
  505. package/dist/server/index.d.ts.map +1 -1
  506. package/dist/server/index.js +1 -1
  507. package/dist/server/index.js.map +1 -1
  508. package/dist/styles/chat-history-list.css +1 -313
  509. package/dist/templates/chat/.agents/skills/actions/SKILL.md +32 -12
  510. package/dist/templates/chat/.agents/skills/agent-native-docs/SKILL.md +10 -0
  511. package/dist/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  512. package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +11 -2
  513. package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  514. package/dist/templates/chat/AGENTS.md +5 -2
  515. package/dist/templates/chat/app/components/layout/Sidebar.tsx +51 -157
  516. package/dist/templates/default/.agents/skills/actions/SKILL.md +32 -12
  517. package/dist/templates/default/.agents/skills/agent-native-docs/SKILL.md +10 -0
  518. package/dist/templates/default/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  519. package/dist/templates/default/.agents/skills/integration-webhooks/SKILL.md +323 -0
  520. package/dist/templates/default/.agents/skills/onboarding/SKILL.md +56 -0
  521. package/dist/templates/default/.agents/skills/secrets/SKILL.md +273 -0
  522. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +11 -2
  523. package/dist/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  524. package/dist/templates/default/AGENTS.md +25 -18
  525. package/dist/templates/headless/.agents/skills/actions/SKILL.md +512 -0
  526. package/dist/templates/headless/.agents/skills/agent-native-docs/SKILL.md +10 -0
  527. package/dist/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  528. package/dist/templates/headless/.agents/skills/integration-webhooks/SKILL.md +323 -0
  529. package/dist/templates/headless/.agents/skills/secrets/SKILL.md +273 -0
  530. package/dist/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  531. package/dist/templates/headless/AGENTS.md +7 -0
  532. package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -12
  533. package/dist/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +10 -0
  534. package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  535. package/dist/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  536. package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +11 -2
  537. package/dist/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  538. package/dist/templates/workspace-core/AGENTS.md +4 -0
  539. package/dist/templates/workspace-root/AGENTS.md +4 -0
  540. package/docs/AGENTS.md +7 -0
  541. package/docs/content/integrations.mdx +63 -2
  542. package/docs/design/provider-integration-authority.md +117 -0
  543. package/package.json +9 -2
  544. package/src/templates/chat/.agents/skills/actions/SKILL.md +32 -12
  545. package/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +10 -0
  546. package/src/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  547. package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +11 -2
  548. package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  549. package/src/templates/chat/AGENTS.md +5 -2
  550. package/src/templates/chat/app/components/layout/Sidebar.tsx +51 -157
  551. package/src/templates/default/.agents/skills/actions/SKILL.md +32 -12
  552. package/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +10 -0
  553. package/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  554. package/src/templates/default/.agents/skills/integration-webhooks/SKILL.md +323 -0
  555. package/src/templates/default/.agents/skills/onboarding/SKILL.md +56 -0
  556. package/src/templates/default/.agents/skills/secrets/SKILL.md +273 -0
  557. package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +11 -2
  558. package/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  559. package/src/templates/default/AGENTS.md +25 -18
  560. package/src/templates/headless/.agents/skills/actions/SKILL.md +512 -0
  561. package/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +10 -0
  562. package/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  563. package/src/templates/headless/.agents/skills/integration-webhooks/SKILL.md +323 -0
  564. package/src/templates/headless/.agents/skills/secrets/SKILL.md +273 -0
  565. package/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  566. package/src/templates/headless/AGENTS.md +7 -0
  567. package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -12
  568. package/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +10 -0
  569. package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  570. package/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +102 -0
  571. package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +11 -2
  572. package/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
  573. package/src/templates/workspace-core/AGENTS.md +4 -0
  574. package/src/templates/workspace-root/AGENTS.md +4 -0
@@ -16,7 +16,6 @@ import {
16
16
  IconArchive,
17
17
  IconActivity,
18
18
  IconHeartbeat,
19
- IconPin,
20
19
  IconPlus,
21
20
  IconLock,
22
21
  IconLink,
@@ -43,7 +42,6 @@ import {
43
42
  useRef,
44
43
  useMemo,
45
44
  Fragment,
46
- type FormEvent,
47
45
  } from "react";
48
46
  import { Link, useLocation, useNavigate } from "react-router";
49
47
  import { toast } from "sonner";
@@ -99,6 +97,10 @@ import {
99
97
  import { LanguagePicker, useT } from "@agent-native/core/client/i18n";
100
98
  import { OrgSwitcher } from "@agent-native/core/client/org";
101
99
  import { FeedbackButton } from "@agent-native/core/client/ui";
100
+ import {
101
+ ChatHistoryList,
102
+ type ChatHistoryItem,
103
+ } from "@agent-native/toolkit/chat-history";
102
104
 
103
105
  import {
104
106
  AlertDialog,
@@ -1326,10 +1328,6 @@ function AnalyticsChatsSection({ isAskRoute }: { isAskRoute: boolean }) {
1326
1328
  autoCreate: false,
1327
1329
  restoreActiveThread: false,
1328
1330
  });
1329
- const [renamingThreadId, setRenamingThreadId] = useState<string | null>(null);
1330
- const [renameDraft, setRenameDraft] = useState("");
1331
- const renameInputRef = useRef<HTMLInputElement | null>(null);
1332
- const committingRenameRef = useRef(false);
1333
1331
 
1334
1332
  const visibleThreads = useMemo(
1335
1333
  () =>
@@ -1339,6 +1337,25 @@ function AnalyticsChatsSection({ isAskRoute }: { isAskRoute: boolean }) {
1339
1337
  .slice(0, SIDEBAR_PREVIEW_COUNT),
1340
1338
  [threads],
1341
1339
  );
1340
+ const chatItems = useMemo<ChatHistoryItem[]>(
1341
+ () =>
1342
+ visibleThreads.map((thread) => ({
1343
+ id: thread.id,
1344
+ title: threadTitle(thread, t("chat.untitledChat")),
1345
+ titleText: threadTitle(thread, t("chat.untitledChat")),
1346
+ timestamp:
1347
+ isAskRoute &&
1348
+ (thread.id === activeThreadId ||
1349
+ thread.id === persistedAnalyticsThreadId())
1350
+ ? undefined
1351
+ : formatThreadAge(threadUpdatedAt(thread)),
1352
+ pinned: Boolean(thread.pinnedAt),
1353
+ })),
1354
+ [activeThreadId, isAskRoute, t, visibleThreads],
1355
+ );
1356
+ const displayedActiveThreadId = isAskRoute
1357
+ ? (activeThreadId ?? persistedAnalyticsThreadId())
1358
+ : null;
1342
1359
 
1343
1360
  useEffect(() => {
1344
1361
  const refresh = () => refreshThreads();
@@ -1359,14 +1376,6 @@ function AnalyticsChatsSection({ isAskRoute }: { isAskRoute: boolean }) {
1359
1376
  };
1360
1377
  }, [refreshThreads]);
1361
1378
 
1362
- useEffect(() => {
1363
- if (!renamingThreadId) return;
1364
- requestAnimationFrame(() => {
1365
- renameInputRef.current?.focus();
1366
- renameInputRef.current?.select();
1367
- });
1368
- }, [renamingThreadId]);
1369
-
1370
1379
  function openThread(threadId: string, options?: { isNew?: boolean }) {
1371
1380
  switchThread(threadId);
1372
1381
  navigateWithAgentChatViewTransition(navigate, "/ask");
@@ -1397,36 +1406,10 @@ function AnalyticsChatsSection({ isAskRoute }: { isAskRoute: boolean }) {
1397
1406
  }
1398
1407
  }
1399
1408
 
1400
- function startRenameThread(thread: ChatThreadSummary) {
1401
- committingRenameRef.current = false;
1402
- setRenameDraft(threadTitle(thread, t("chat.untitledChat")));
1403
- setRenamingThreadId(thread.id);
1404
- }
1405
-
1406
- function cancelRenameThread() {
1407
- committingRenameRef.current = true;
1408
- setRenamingThreadId(null);
1409
- setRenameDraft("");
1410
- }
1411
-
1412
- async function commitRenameThread() {
1413
- if (committingRenameRef.current) return;
1414
- const threadId = renamingThreadId;
1415
- const title = renameDraft.trim();
1416
- if (!threadId) return;
1417
- committingRenameRef.current = true;
1418
- setRenamingThreadId(null);
1419
- setRenameDraft("");
1420
- if (title) {
1421
- const renamed = await renameThread(threadId, title);
1409
+ function handleRenameThread(threadId: string, title: string) {
1410
+ void renameThread(threadId, title).then((renamed) => {
1422
1411
  if (!renamed) toast.error(t("chat.renameFailed"));
1423
- }
1424
- committingRenameRef.current = false;
1425
- }
1426
-
1427
- function handleRenameSubmit(event: FormEvent<HTMLFormElement>) {
1428
- event.preventDefault();
1429
- void commitRenameThread();
1412
+ });
1430
1413
  }
1431
1414
 
1432
1415
  return (
@@ -1450,124 +1433,32 @@ function AnalyticsChatsSection({ isAskRoute }: { isAskRoute: boolean }) {
1450
1433
  />
1451
1434
  </div>
1452
1435
  ))}
1453
- {visibleThreads.map((thread) => {
1454
- const title = threadTitle(thread, t("chat.untitledChat"));
1455
- const isActive =
1456
- isAskRoute &&
1457
- (thread.id === activeThreadId ||
1458
- thread.id === persistedAnalyticsThreadId());
1459
- const isRenaming = thread.id === renamingThreadId;
1460
- return (
1461
- <div
1462
- key={thread.id}
1463
- className={cn(
1464
- "group/item relative flex min-w-0 items-center rounded-lg transition-colors",
1465
- isActive
1466
- ? "bg-sidebar-accent text-sidebar-accent-foreground"
1467
- : "text-muted-foreground hover:bg-sidebar-accent/50 hover:text-primary",
1468
- )}
1469
- >
1470
- {isRenaming ? (
1471
- <form
1472
- onSubmit={handleRenameSubmit}
1473
- className="flex min-w-0 flex-1 items-center px-1"
1474
- >
1475
- <Input
1476
- ref={renameInputRef}
1477
- value={renameDraft}
1478
- onChange={(event) => setRenameDraft(event.target.value)}
1479
- onBlur={() => void commitRenameThread()}
1480
- onKeyDown={(event) => {
1481
- if (event.key === "Escape") {
1482
- event.preventDefault();
1483
- cancelRenameThread();
1484
- }
1485
- }}
1486
- maxLength={160}
1487
- aria-label={t("chat.renameThread", { title })}
1488
- className="h-6 min-w-0 rounded-sm border-sidebar-border bg-background px-1.5 text-xs"
1489
- />
1490
- </form>
1491
- ) : (
1492
- <>
1493
- <Tooltip>
1494
- <TooltipTrigger asChild>
1495
- <button
1496
- type="button"
1497
- onClick={() => openThread(thread.id)}
1498
- className="min-w-0 flex-1 px-2 py-1.5 pe-12 text-start text-xs outline-none focus-visible:ring-2 focus-visible:ring-ring"
1499
- >
1500
- <span className="flex min-w-0 items-center gap-1.5">
1501
- {thread.pinnedAt ? (
1502
- <IconPin
1503
- aria-hidden="true"
1504
- className="size-3 shrink-0 text-current opacity-60"
1505
- />
1506
- ) : null}
1507
- <span className="block min-w-0 truncate">{title}</span>
1508
- </span>
1509
- </button>
1510
- </TooltipTrigger>
1511
- <TooltipContent side="right">{title}</TooltipContent>
1512
- </Tooltip>
1513
- <div className="pointer-events-none absolute end-1 top-1/2 flex -translate-y-1/2 items-center gap-0.5">
1514
- <span className="pointer-events-none pe-1 text-[11px] text-muted-foreground/60 transition-opacity group-hover/item:opacity-0 group-focus-within/item:opacity-0">
1515
- {isActive ? "" : formatThreadAge(threadUpdatedAt(thread))}
1516
- </span>
1517
- <DropdownMenu>
1518
- <Tooltip>
1519
- <TooltipTrigger asChild>
1520
- <DropdownMenuTrigger asChild>
1521
- <button
1522
- type="button"
1523
- aria-label={t("chat.optionsFor", { title })}
1524
- className="pointer-events-auto rounded p-0.5 text-muted-foreground/50 opacity-0 transition-[opacity,color,background-color] hover:text-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring group-hover/item:opacity-100 group-focus-within/item:opacity-100 data-[state=open]:opacity-100 data-[state=open]:text-foreground"
1525
- >
1526
- <IconDots className="h-3 w-3" />
1527
- </button>
1528
- </DropdownMenuTrigger>
1529
- </TooltipTrigger>
1530
- <TooltipContent side="right">
1531
- {t("chat.optionsFor", { title })}
1532
- </TooltipContent>
1533
- </Tooltip>
1534
- <DropdownMenuContent
1535
- side="right"
1536
- align="start"
1537
- className="w-44"
1538
- >
1539
- <DropdownMenuItem
1540
- onSelect={() => startRenameThread(thread)}
1541
- >
1542
- <IconPencil className="me-2 h-3.5 w-3.5" />
1543
- {t("chat.renameChat")}
1544
- </DropdownMenuItem>
1545
- <DropdownMenuItem
1546
- onSelect={() =>
1547
- void pinThread(thread.id, !thread.pinnedAt)
1548
- }
1549
- >
1550
- <IconPin className="me-2 h-3.5 w-3.5" />
1551
- {thread.pinnedAt
1552
- ? t("chat.unpinChat")
1553
- : t("chat.pinChat")}
1554
- </DropdownMenuItem>
1555
- <DropdownMenuSeparator />
1556
- <DropdownMenuItem
1557
- onSelect={() => void handleArchiveThread(thread.id)}
1558
- className="text-destructive focus:text-destructive"
1559
- >
1560
- <IconArchive className="me-2 h-3.5 w-3.5" />
1561
- {t("chat.archiveChat")}
1562
- </DropdownMenuItem>
1563
- </DropdownMenuContent>
1564
- </DropdownMenu>
1565
- </div>
1566
- </>
1567
- )}
1568
- </div>
1569
- );
1570
- })}
1436
+ {visibleThreads.length > 0 && (
1437
+ <ChatHistoryList
1438
+ items={chatItems}
1439
+ activeId={displayedActiveThreadId}
1440
+ onSelect={(threadId) => openThread(threadId)}
1441
+ renameMaxLength={160}
1442
+ onTogglePin={(threadId) => {
1443
+ const thread = visibleThreads.find((item) => item.id === threadId);
1444
+ if (thread) void pinThread(threadId, !thread.pinnedAt);
1445
+ }}
1446
+ onRename={handleRenameThread}
1447
+ onDelete={(threadId) => void handleArchiveThread(threadId)}
1448
+ labels={{
1449
+ options: (item) =>
1450
+ t("chat.optionsFor", { title: item.titleText ?? "" }),
1451
+ renameInput: (item) =>
1452
+ t("chat.renameThread", { title: item.titleText ?? "" }),
1453
+ rename: t("chat.renameChat"),
1454
+ pin: t("chat.pinChat"),
1455
+ unpin: t("chat.unpinChat"),
1456
+ delete: t("chat.archiveChat"),
1457
+ }}
1458
+ variant="rail"
1459
+ className="min-w-0"
1460
+ />
1461
+ )}
1571
1462
  <button
1572
1463
  type="button"
1573
1464
  onClick={() => void handleNewChat()}
@@ -121,18 +121,38 @@ action trio instead:
121
121
  provider host, injects configured credentials, blocks private/internal URLs,
122
122
  and redacts secrets.
123
123
 
124
- Use `@agent-native/core/provider-api` as the shared substrate. A template should
125
- only add a thin credential adapter when it has app-specific credential lookup
126
- rules. If the app stores a built-in provider's OAuth grant under a narrower
127
- local provider id, use the runtime's `oauthProviderOverrides` instead of
128
- duplicating the provider config. If credentials are stored on shareable/resource
129
- rows rather than in the shared credential or OAuth-token stores, build a resolver
130
- that enforces those access checks before exposing raw provider requests. Keep
131
- `provider-api-request` `http: false` unless you have a separate UI permission
132
- model for arbitrary provider writes. Specific actions such as `search-records`,
133
- `search-emails`, or `sync-source` are convenience shortcuts, not capability
134
- limits; agents should fall back to the provider API trio when a question
135
- requires an endpoint or filter that the shortcut does not model.
124
+ Use `@agent-native/core/provider-api` as the shared substrate, and build these
125
+ actions as thin factory imports rather than copying `defineAction` schemas and
126
+ handlers into each template:
127
+
128
+ ```ts
129
+ import {
130
+ createProviderApiCatalogAction,
131
+ createProviderApiDocsAction,
132
+ createProviderApiRequestAction,
133
+ } from "@agent-native/core/provider-api/actions/provider-api";
134
+ import {
135
+ createDeleteStagedDatasetAction,
136
+ createListStagedDatasetsAction,
137
+ createQueryStagedDatasetAction,
138
+ } from "@agent-native/core/provider-api/actions/staged-datasets";
139
+ ```
140
+
141
+ Pass the app's existing provider runtime to the provider factories, and pass
142
+ its app id to the staged-dataset factories. Keep app-specific descriptions,
143
+ provider allow-lists, HTTP/tool-callability settings, and credential adapters
144
+ as factory options. Only add a thin credential adapter when the app has
145
+ app-specific credential lookup rules. If the app stores a built-in provider's
146
+ OAuth grant under a narrower local provider id, use the runtime's
147
+ `oauthProviderOverrides` instead of duplicating provider config. If credentials
148
+ are stored on shareable/resource rows rather than in the shared credential or
149
+ OAuth-token stores, build a resolver that enforces those access checks before
150
+ exposing raw provider requests. Keep `provider-api-request` `http: false`
151
+ unless a separate UI permission model authorizes arbitrary provider writes.
152
+ Specific actions such as `search-records`, `search-emails`, or `sync-source`
153
+ are convenience shortcuts, not capability limits; agents should fall back to
154
+ the provider API trio when a question requires an endpoint or filter that the
155
+ shortcut does not model.
136
156
 
137
157
  This is a framework tenet. The safety boundary should be provider host
138
158
  allow-listing, credential scoping, auth injection, private-network blocking,
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: customizing-agent-native
3
+ description: >-
4
+ How to adopt, compose, or selectively copy Agent Native UI into app-owned
5
+ code. Use when overriding shared components, customizing a template, adding
6
+ UI to chat or headless apps, or inspecting installed framework source.
7
+ scope: dev
8
+ metadata:
9
+ internal: true
10
+ ---
11
+
12
+ # Customizing Agent Native
13
+
14
+ ## Rule
15
+
16
+ Start with the public component and its props, slots, callbacks, and stable
17
+ class names. If those seams are not enough, copy the smallest useful reference
18
+ implementation into the app and make that copy app-owned. Never edit
19
+ `node_modules`, deep-import a private source file at runtime, or patch an
20
+ `@agent-native/*` package.
21
+
22
+ Use this order:
23
+
24
+ 1. Configure the public component.
25
+ 2. Compose public primitives behind a local app component.
26
+ 3. Copy one component or helper into app source and change the app import.
27
+ 4. Propose a new Toolkit seam when the same override is useful in two apps.
28
+
29
+ Copying is for intentional product customization, not for hiding an upgrade
30
+ failure or replacing Core runtime behavior.
31
+
32
+ ## Find The Installed Implementation
33
+
34
+ Use the source that matches the installed package version:
35
+
36
+ ```bash
37
+ pnpm action docs-search --query "<component or feature>"
38
+ pnpm action source-search --query "<component or symbol>"
39
+ rg -n "<component or symbol>" node_modules/@agent-native/toolkit/src
40
+ rg -n "<component or symbol>" node_modules/@agent-native/core/corpus
41
+ ```
42
+
43
+ - Toolkit publishes readable TypeScript under
44
+ `node_modules/@agent-native/toolkit/src/` for selective UI adoption.
45
+ - Core and first-party template source lives under
46
+ `node_modules/@agent-native/core/corpus/core/` and
47
+ `node_modules/@agent-native/core/corpus/templates/`.
48
+ - Treat those trees as read-only references. Copy files into an app directory
49
+ such as `app/components/`, then import the local copy.
50
+
51
+ When a copied component imports sibling helpers, copy only the required
52
+ siblings or replace them with public package imports. Do not copy an entire
53
+ package or template to change one surface.
54
+
55
+ ## Preserve The Agent-Native Contract
56
+
57
+ UI ownership may change; product contracts should not:
58
+
59
+ - Keep app operations in `defineAction` actions and call them through
60
+ `useActionQuery`, `useActionMutation`, or another named client helper.
61
+ - Keep navigation, selection, and focused-object state visible through the
62
+ existing application-state keys.
63
+ - Keep AI work in the shared agent chat instead of adding direct LLM calls.
64
+ - Keep auth, access checks, persistence, chat transport, and agent execution in
65
+ Core. Do not copy those runtimes into the app.
66
+ - Keep local adapters narrow so package upgrades still improve every surface
67
+ the app has not intentionally taken ownership of.
68
+
69
+ ## App Shapes
70
+
71
+ - **Template app:** begin with its existing local adapters and domain UI. Use
72
+ Toolkit for repeated workspace UI; copy only the piece being customized.
73
+ - **Chat app:** keep `AgentChatSurface`, thread state, and chat transport in
74
+ Core. Compose or copy Toolkit presentation such as chat-history UI around it.
75
+ - **Headless app:** stay action-first while no UI is needed. When adding a UI,
76
+ use the Chat template as the on-ramp or add Toolkit components without
77
+ replacing the existing actions.
78
+ - **Workspace:** put one-app overrides in that app. Promote a local component
79
+ to `packages/shared` only when multiple workspace apps use it.
80
+
81
+ ## After Copying
82
+
83
+ - Remove unused dependencies and imports from the copied file.
84
+ - Keep visible text in the app's localization catalogs.
85
+ - Run the app's formatter, typecheck, and focused tests.
86
+ - Re-check the installed source during future package upgrades; the app-owned
87
+ copy does not receive upstream fixes automatically.
88
+
89
+ ## Don't
90
+
91
+ - Don't edit or import from `node_modules/@agent-native/*/src` at runtime.
92
+ - Don't add `pnpm.overrides`, patches, or resolutions for Agent Native packages.
93
+ - Don't copy Core auth, DB, action, agent-loop, or transport internals.
94
+ - Don't fork a full template when a prop, slot, wrapper, or one-file copy works.
95
+
96
+ ## Related Skills
97
+
98
+ - `agent-native-docs` — version-matched docs and source lookup
99
+ - `agent-native-toolkit` — shared-vs-app-owned architecture boundary
100
+ - `self-modifying-code` — safe app source edits
101
+ - `upgrade-agent-native` — supported package upgrade path
102
+ - `adding-a-feature` — UI/action/instructions/application-state parity
@@ -35,8 +35,14 @@ Tier 4 includes **all** of the following — not only editing package source:
35
35
  - Files under `node_modules/@agent-native/*` (core, dispatch, scheduling, …)
36
36
  - `pnpm.overrides`, `overrides`, `resolutions`, or `patchedDependencies` that
37
37
  target any `@agent-native/*` package
38
- - Local patches, vendored copies, or invented "dispatch/core behavior"
39
- shims meant to paper over a version skew or failed upgrade
38
+ - Local package patches or invented "dispatch/core behavior" shims meant to
39
+ paper over a version skew or failed upgrade
40
+
41
+ This does not prohibit intentional app-owned UI customization. When public
42
+ props and composition are insufficient, the `customizing-agent-native` skill
43
+ allows copying the smallest reference UI component from the installed source
44
+ into the app. The copy must use public runtime contracts and must not replace
45
+ Core auth, DB, actions, agent execution, or transport behavior.
40
46
 
41
47
  When an older branch needs current packages, use **`agent-native upgrade`**
42
48
  (see the `upgrade-agent-native` skill). If upgrade or typecheck fails, fix
@@ -88,6 +94,8 @@ inline strings in components.
88
94
  - Don't modify `.env` files or files containing secrets
89
95
  - Don't modify `@agent-native/core`, `@agent-native/dispatch`, or other
90
96
  `@agent-native/*` package internals (including under `node_modules`)
97
+ - Don't confuse a read-only reference copy with editing package internals: use
98
+ `customizing-agent-native` for selective app-owned UI adoption
91
99
  - Don't add `pnpm.overrides` / `patchedDependencies` / `resolutions` for
92
100
  `@agent-native/*` to "make the app run" after a version bump
93
101
  - Don't invent local dispatch/core behavior overrides when upgrade fails —
@@ -99,6 +107,7 @@ inline strings in components.
99
107
  ## Related Skills
100
108
 
101
109
  - **upgrade-agent-native** — supported path to bring an older app/workspace current
110
+ - **customizing-agent-native** — safe selective adoption of installed reference UI
102
111
  - **storing-data** — Tier 1 modifications (data files) are the safest and most common
103
112
  - **actions** — The agent can create or modify actions to add new capabilities
104
113
  - **delegate-to-agent** — Self-modification requests come through the agent chat
@@ -63,6 +63,11 @@ install → refresh scaffold skills → verify, then fix **app** code only.
63
63
  - Re-run `agent-native upgrade` or `pnpm typecheck`
64
64
  - Stop and ask the user if you cannot fix the app-level error
65
65
 
66
+ Intentional app-level UI customization is a separate workflow. Read
67
+ `customizing-agent-native` when the product needs to own a selectively
68
+ copied component; do not use that path to reproduce framework runtime
69
+ behavior or hide version skew.
70
+
66
71
  4. **Dry-run / partial runs**
67
72
 
68
73
  ```bash
@@ -91,4 +96,5 @@ install → refresh scaffold skills → verify, then fix **app** code only.
91
96
 
92
97
  - **self-modifying-code** — Tier 4: framework packages are off limits
93
98
  - **agent-native-docs** — version-matched docs after the bump
99
+ - **customizing-agent-native** — intentional app-owned UI copies, not upgrade patches
94
100
  - **portability** — keep app code provider-agnostic across upgrades