@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staged-datasets.js","sourceRoot":"","sources":["../../../src/provider-api/actions/staged-datasets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAmB,MAAM,KAAK,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAyB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QACT,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,cAAc;QACd,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,YAAY;KACb,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC1D,EAAE,EAAE,CAAC;SACF,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;SAC7D,QAAQ,CAAC,uBAAuB,CAAC;IACpC,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6CAA6C,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,UAAU,8BAA8B,CAC5C,OAAO,GAEH,EAAE;IAEN,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,iGAAiG,CAClG;QACH,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,WAAW,CAAC;aAClB,QAAQ,EAAE;aACV,QAAQ,CACP,kJAAkJ,CACnJ;QACH,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACxB,QAAQ,EAAE;aACV,QAAQ,CACP,mEAAmE,CACpE;QACH,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,oBAAoB,CAAC;aAC3B,QAAQ,EAAE;aACV,QAAQ,CACP,yFAAyF,CAC1F;QACH,MAAM,EAAE,CAAC;aACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACxB,QAAQ,EAAE;aACV,QAAQ,CAAC,4CAA4C,CAAC;QACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACtE,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACrB,QAAQ,EAAE;aACV,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM;aACZ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,MAAM,CAAC;aACX,QAAQ,EAAE;aACV,QAAQ,CAAC,kDAAkD,CAAC;KAChE,CAAC;IACF,OAAO,OAAO,CAAC,YAAY;QACzB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,KAAK;YACR,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SACnE,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,OAAO,GAEH,EAAE;IAEN,OAAO,OAAO,CAAC,YAAY;QACzB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;SACpE,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,OAAO,GAEH,EAAE;IAEN,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,mDAAmD,CAAC;KACjE,CAAC;IACF,OAAO,OAAO,CAAC,YAAY;QACzB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,KAAK;YACR,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SACnE,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAwCD,MAAM,cAAc,GAA+B;IACjD,OAAO,EAAE,oBAAoB;IAC7B,OAAO,EAAE,oBAAoB;IAC7B,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,mBAAmB;IAC3B,SAAS,EAAE,iBAAiB;CAC7B,CAAC;AAWF,SAAS,YAAY,CACnB,UAAkB,EAClB,IAAsB,EACtB,OAGC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,UAAU,GAAG,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa;QACtC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE;QACzB,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU;QACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,GAAG,CAAC,CAAC;IACjE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAQD,MAAM,UAAU,8BAA8B,CAI5C,OAAO,GAAmD,EAAE;IAC5D,MAAM,MAAM,GACV,OAAO,CAAC,MAAM;QACd,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,CAAC;IAClD,OAAO,YAAY,CAAC;QAClB,WAAW,EACT,OAAO,CAAC,WAAW;YACnB,+JAA+J;QACjK,MAAM;QACN,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;QAC3B,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,OAA2B,CAAC;YACzC,MAAM,KAAK,GAAG,YAAY,CAAC,sBAAsB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CACb,WAAW,SAAS,mDAAmD,CACxE,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;gBACnE,QAAQ,EAAE,MAAM,CAAC,MAAM;gBACvB,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,UAAU,8BAA8B,CAI5C,OAAO,GAAmD,EAAE;IAC5D,MAAM,MAAM,GACV,OAAO,CAAC,MAAM;QACd,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,CAAC;IAClD,OAAO,YAAY,CAAC;QAClB,WAAW,EACT,OAAO,CAAC,WAAW;YACnB,mFAAmF;QACrF,MAAM;QACN,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;QACvC,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,OAA2B,CAAC;YACzC,MAAM,KAAK,GAAG,YAAY,CAAC,sBAAsB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO;gBACL,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACnC,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;iBACrD,CAAC,CAAC;gBACH,KAAK,EAAE,QAAQ,CAAC,MAAM;aACvB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,UAAU,+BAA+B,CAI7C,OAAO,GAAoD,EAAE;IAC7D,MAAM,MAAM,GACV,OAAO,CAAC,MAAM;QACd,+BAA+B,CAAC,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,CAAC;IAClD,OAAO,YAAY,CAAC;QAClB,WAAW,EACT,OAAO,CAAC,WAAW;YACnB,kHAAkH;QACpH,MAAM;QACN,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;QAC3B,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,OAA2B,CAAC;YACzC,MAAM,KAAK,GAAG,YAAY,CAAC,uBAAuB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,WAAW,SAAS,mDAAmD,CACxE,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACtC,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAoBD,MAAM,UAAU,0BAA0B,CACxC,OAAO,GAAsC,EAAE;IAE/C,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;IACF,OAAO;QACL,KAAK,EAAE,8BAA8B,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACtE,IAAI,EAAE,8BAA8B,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACpE,MAAM,EAAE,+BAA+B,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC","sourcesContent":["import { z, type ZodTypeAny } from \"zod\";\n\nimport { defineAction, type ActionHttpConfig } from \"../../action.js\";\nimport { getCredentialContext } from \"../../server/request-context.js\";\nimport { runAggregateQuery } from \"../staged-datasets-aggregate.js\";\nimport {\n deleteStagedDataset,\n getStagedDatasetMeta,\n getStagedDatasetRows,\n listStagedDatasets,\n} from \"../staged-datasets-store.js\";\n\nconst WhereSchema = z.object({\n column: z.string().min(1),\n op: z.enum([\n \"equals\",\n \"not_equals\",\n \"contains\",\n \"not_contains\",\n \"gt\",\n \"gte\",\n \"lt\",\n \"lte\",\n \"exists\",\n \"not_exists\",\n ]),\n value: z.unknown().optional(),\n});\n\nconst AggregateFieldSchema = z.object({\n column: z.string().min(1).describe(\"Column to aggregate.\"),\n op: z\n .enum([\"sum\", \"avg\", \"count\", \"min\", \"max\", \"count_distinct\"])\n .describe(\"Aggregation function.\"),\n as: z\n .string()\n .optional()\n .describe(\"Output column name. Default: {op}_{column}.\"),\n});\n\nexport function createQueryStagedDatasetSchema(\n options: {\n includeAppId?: boolean;\n } = {},\n) {\n const shape = {\n datasetId: z\n .string()\n .min(1)\n .describe(\n \"Dataset id returned by provider-api-request when stageAs was set, or from list-staged-datasets.\",\n ),\n where: z\n .array(WhereSchema)\n .optional()\n .describe(\n \"Optional row-level filters. All clauses must match (AND). Ops: equals, not_equals, contains, not_contains, gt, gte, lt, lte, exists, not_exists.\",\n ),\n groupBy: z\n .array(z.string().min(1))\n .optional()\n .describe(\n \"Column(s) to group by. Omit for a single aggregate over all rows.\",\n ),\n aggregate: z\n .array(AggregateFieldSchema)\n .optional()\n .describe(\n \"Aggregation fields. When omitted, rows are returned as-is after filters and projection.\",\n ),\n select: z\n .array(z.string().min(1))\n .optional()\n .describe(\"Column projection when aggregate is empty.\"),\n orderBy: z.string().optional().describe(\"Sort output by this column.\"),\n orderDir: z\n .enum([\"asc\", \"desc\"])\n .optional()\n .describe(\"Sort direction (default asc).\"),\n limit: z.coerce\n .number()\n .int()\n .min(1)\n .max(10_000)\n .optional()\n .describe(\"Maximum rows to return (default all, max 10000).\"),\n };\n return options.includeAppId\n ? z.object({\n ...shape,\n appId: z.string().min(1).describe(\"App id that owns the dataset.\"),\n })\n : z.object(shape);\n}\n\nexport function createListStagedDatasetsSchema(\n options: {\n includeAppId?: boolean;\n } = {},\n) {\n return options.includeAppId\n ? z.object({\n appId: z.string().min(1).describe(\"App id that owns the datasets.\"),\n })\n : z.object({});\n}\n\nexport function createDeleteStagedDatasetSchema(\n options: {\n includeAppId?: boolean;\n } = {},\n) {\n const shape = {\n datasetId: z\n .string()\n .min(1)\n .describe(\"Dataset id to delete (from list-staged-datasets).\"),\n };\n return options.includeAppId\n ? z.object({\n ...shape,\n appId: z.string().min(1).describe(\"App id that owns the dataset.\"),\n })\n : z.object(shape);\n}\n\ntype StagedActionArgs = {\n appId?: string;\n datasetId?: string;\n where?: Array<{\n column: string;\n op:\n | \"equals\"\n | \"not_equals\"\n | \"contains\"\n | \"not_contains\"\n | \"gt\"\n | \"gte\"\n | \"lt\"\n | \"lte\"\n | \"exists\"\n | \"not_exists\";\n value?: unknown;\n }>;\n groupBy?: string[];\n aggregate?: Array<{\n column: string;\n op: \"sum\" | \"avg\" | \"count\" | \"min\" | \"max\" | \"count_distinct\";\n as?: string;\n }>;\n select?: string[];\n orderBy?: string;\n orderDir?: \"asc\" | \"desc\";\n limit?: number;\n};\n\nexport interface StagedDatasetActionRuntime {\n getMeta: typeof getStagedDatasetMeta;\n getRows: typeof getStagedDatasetRows;\n list: typeof listStagedDatasets;\n delete: typeof deleteStagedDataset;\n aggregate: typeof runAggregateQuery;\n}\n\nconst defaultRuntime: StagedDatasetActionRuntime = {\n getMeta: getStagedDatasetMeta,\n getRows: getStagedDatasetRows,\n list: listStagedDatasets,\n delete: deleteStagedDataset,\n aggregate: runAggregateQuery,\n};\n\ninterface StagedDatasetActionBaseOptions<TSchema extends ZodTypeAny> {\n appId?: string;\n schema?: TSchema;\n description?: string;\n http?: ActionHttpConfig | false;\n getOwnerEmail?: () => string | null;\n runtime?: StagedDatasetActionRuntime;\n}\n\nfunction resolveScope(\n actionName: string,\n args: StagedActionArgs,\n options: Pick<\n StagedDatasetActionBaseOptions<ZodTypeAny>,\n \"appId\" | \"getOwnerEmail\"\n >,\n) {\n const appId = options.appId ?? args.appId;\n if (!appId) throw new Error(`No app id for ${actionName}.`);\n const ownerEmail = options.getOwnerEmail\n ? options.getOwnerEmail()\n : (getCredentialContext()?.userEmail ?? null);\n if (!ownerEmail)\n throw new Error(`No authenticated context for ${actionName}.`);\n return { appId, ownerEmail };\n}\n\nexport type CreateQueryStagedDatasetActionOptions<\n TSchema extends ZodTypeAny = ReturnType<\n typeof createQueryStagedDatasetSchema\n >,\n> = StagedDatasetActionBaseOptions<TSchema>;\n\nexport function createQueryStagedDatasetAction<\n TSchema extends ZodTypeAny = ReturnType<\n typeof createQueryStagedDatasetSchema\n >,\n>(options: CreateQueryStagedDatasetActionOptions<TSchema> = {}) {\n const schema =\n options.schema ??\n createQueryStagedDatasetSchema({ includeAppId: !options.appId });\n const runtime = options.runtime ?? defaultRuntime;\n return defineAction({\n description:\n options.description ??\n \"Run a filter, aggregate, or projection query over a staged dataset stored by provider-api-request. Aggregation runs in-process and remains database-portable.\",\n schema,\n http: options.http ?? false,\n readOnly: true,\n run: async (rawArgs) => {\n const args = rawArgs as StagedActionArgs;\n const scope = resolveScope(\"query-staged-dataset\", args, options);\n const datasetId = String(args.datasetId ?? \"\");\n const meta = await runtime.getMeta({ id: datasetId, ...scope });\n if (!meta) {\n throw new Error(\n `Dataset ${datasetId} not found (or belongs to a different owner/app).`,\n );\n }\n const rows = await runtime.getRows({ id: datasetId, ...scope });\n const result = runtime.aggregate(rows, {\n where: args.where,\n groupBy: args.groupBy,\n aggregate: args.aggregate,\n select: args.select,\n orderBy: args.orderBy,\n orderDir: args.orderDir,\n limit: args.limit,\n });\n return {\n dataset: { id: meta.id, name: meta.name, totalRows: meta.rowCount },\n rowCount: result.length,\n rows: result,\n };\n },\n });\n}\n\nexport type CreateListStagedDatasetsActionOptions<\n TSchema extends ZodTypeAny = ReturnType<\n typeof createListStagedDatasetsSchema\n >,\n> = StagedDatasetActionBaseOptions<TSchema>;\n\nexport function createListStagedDatasetsAction<\n TSchema extends ZodTypeAny = ReturnType<\n typeof createListStagedDatasetsSchema\n >,\n>(options: CreateListStagedDatasetsActionOptions<TSchema> = {}) {\n const schema =\n options.schema ??\n createListStagedDatasetsSchema({ includeAppId: !options.appId });\n const runtime = options.runtime ?? defaultRuntime;\n return defineAction({\n description:\n options.description ??\n \"List staged datasets stored by provider-api-request for the current user and app.\",\n schema,\n http: options.http ?? { method: \"GET\" },\n readOnly: true,\n run: async (rawArgs) => {\n const args = rawArgs as StagedActionArgs;\n const scope = resolveScope(\"list-staged-datasets\", args, options);\n const datasets = await runtime.list(scope);\n return {\n datasets: datasets.map((dataset) => ({\n id: dataset.id,\n name: dataset.name,\n rowCount: dataset.rowCount,\n columns: dataset.columns,\n byteSize: dataset.byteSize,\n updatedAt: new Date(dataset.updatedAt).toISOString(),\n })),\n total: datasets.length,\n };\n },\n });\n}\n\nexport type CreateDeleteStagedDatasetActionOptions<\n TSchema extends ZodTypeAny = ReturnType<\n typeof createDeleteStagedDatasetSchema\n >,\n> = StagedDatasetActionBaseOptions<TSchema>;\n\nexport function createDeleteStagedDatasetAction<\n TSchema extends ZodTypeAny = ReturnType<\n typeof createDeleteStagedDatasetSchema\n >,\n>(options: CreateDeleteStagedDatasetActionOptions<TSchema> = {}) {\n const schema =\n options.schema ??\n createDeleteStagedDatasetSchema({ includeAppId: !options.appId });\n const runtime = options.runtime ?? defaultRuntime;\n return defineAction({\n description:\n options.description ??\n \"Delete a staged dataset by id, freeing its scratch storage. Only the owner who staged the dataset can delete it.\",\n schema,\n http: options.http ?? false,\n run: async (rawArgs) => {\n const args = rawArgs as StagedActionArgs;\n const scope = resolveScope(\"delete-staged-dataset\", args, options);\n const datasetId = String(args.datasetId ?? \"\");\n const deleted = await runtime.delete({ id: datasetId, ...scope });\n if (!deleted) {\n throw new Error(\n `Dataset ${datasetId} not found (or belongs to a different owner/app).`,\n );\n }\n return { deleted: true, datasetId };\n },\n });\n}\n\nexport interface CreateStagedDatasetActionsOptions {\n appId?: string;\n getOwnerEmail?: () => string | null;\n runtime?: StagedDatasetActionRuntime;\n query?: Omit<\n CreateQueryStagedDatasetActionOptions,\n \"appId\" | \"getOwnerEmail\" | \"runtime\"\n >;\n list?: Omit<\n CreateListStagedDatasetsActionOptions,\n \"appId\" | \"getOwnerEmail\" | \"runtime\"\n >;\n delete?: Omit<\n CreateDeleteStagedDatasetActionOptions,\n \"appId\" | \"getOwnerEmail\" | \"runtime\"\n >;\n}\n\nexport function createStagedDatasetActions(\n options: CreateStagedDatasetActionsOptions = {},\n) {\n const shared = {\n appId: options.appId,\n getOwnerEmail: options.getOwnerEmail,\n runtime: options.runtime,\n };\n return {\n query: createQueryStagedDatasetAction({ ...shared, ...options.query }),\n list: createListStagedDatasetsAction({ ...shared, ...options.list }),\n delete: createDeleteStagedDatasetAction({ ...shared, ...options.delete }),\n };\n}\n"]}
@@ -0,0 +1,44 @@
1
+ export interface GongCallParty {
2
+ name?: string;
3
+ emailAddress?: string;
4
+ [key: string]: unknown;
5
+ }
6
+ export interface GongCallRecord {
7
+ id?: string;
8
+ title?: string;
9
+ started?: string;
10
+ duration?: number;
11
+ direction?: string;
12
+ parties?: GongCallParty[];
13
+ [key: string]: unknown;
14
+ }
15
+ export interface GongCallSummary {
16
+ id?: string;
17
+ title?: string;
18
+ started?: string;
19
+ duration?: number;
20
+ direction?: string;
21
+ parties: Array<{
22
+ name?: string;
23
+ email?: string;
24
+ }>;
25
+ }
26
+ export declare function filterGongCallsByEmail(calls: readonly GongCallRecord[], email: string, limit?: number): GongCallSummary[];
27
+ export interface LookupGongCallsByEmailOptions {
28
+ credential: string;
29
+ email: string;
30
+ lookbackDays?: number;
31
+ limit?: number;
32
+ now?: number;
33
+ fetch?: typeof globalThis.fetch;
34
+ }
35
+ export type GongCallsLookupResult = {
36
+ ok: true;
37
+ calls: GongCallSummary[];
38
+ } | {
39
+ ok: false;
40
+ status: number;
41
+ error: string;
42
+ };
43
+ export declare function lookupGongCallsByEmail(options: LookupGongCallsByEmailOptions): Promise<GongCallsLookupResult>;
44
+ //# sourceMappingURL=gong.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gong.d.ts","sourceRoot":"","sources":["../../src/provider-api/gong.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,KAAK,EAAE,MAAM,EACb,KAAK,SAAK,GACT,eAAe,EAAE,CAoBnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,eAAe,EAAE,CAAA;CAAE,GACtC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,qBAAqB,CAAC,CAyChC"}
@@ -0,0 +1,56 @@
1
+ export function filterGongCallsByEmail(calls, email, limit = 10) {
2
+ const normalizedEmail = email.toLowerCase();
3
+ return calls
4
+ .filter((call) => (call.parties ?? []).some((party) => party.emailAddress?.toLowerCase() === normalizedEmail))
5
+ .slice(0, limit)
6
+ .map((call) => ({
7
+ id: call.id,
8
+ title: call.title,
9
+ started: call.started,
10
+ duration: call.duration,
11
+ direction: call.direction,
12
+ parties: (call.parties ?? []).map((party) => ({
13
+ name: party.name,
14
+ email: party.emailAddress,
15
+ })),
16
+ }));
17
+ }
18
+ export async function lookupGongCallsByEmail(options) {
19
+ const fetchImpl = options.fetch ?? globalThis.fetch;
20
+ const lookbackDays = options.lookbackDays ?? 90;
21
+ const fromDateTime = new Date((options.now ?? Date.now()) - lookbackDays * 24 * 60 * 60 * 1000).toISOString();
22
+ const url = `https://api.gong.io/v2/calls?fromDateTime=${fromDateTime}`;
23
+ const authHeaders = [
24
+ `Bearer ${options.credential}`,
25
+ `Basic ${Buffer.from(options.credential).toString("base64")}`,
26
+ ];
27
+ try {
28
+ let firstStatus = 502;
29
+ for (const [index, authorization] of authHeaders.entries()) {
30
+ const response = await fetchImpl(url, {
31
+ headers: {
32
+ Authorization: authorization,
33
+ "Content-Type": "application/json",
34
+ },
35
+ });
36
+ if (index === 0)
37
+ firstStatus = response.status;
38
+ if (!response.ok)
39
+ continue;
40
+ const data = (await response.json());
41
+ return {
42
+ ok: true,
43
+ calls: filterGongCallsByEmail(data.calls ?? [], options.email, options.limit),
44
+ };
45
+ }
46
+ return {
47
+ ok: false,
48
+ status: firstStatus,
49
+ error: `Gong API error: ${firstStatus}`,
50
+ };
51
+ }
52
+ catch {
53
+ return { ok: false, status: 500, error: "Failed to reach Gong API" };
54
+ }
55
+ }
56
+ //# sourceMappingURL=gong.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gong.js","sourceRoot":"","sources":["../../src/provider-api/gong.ts"],"names":[],"mappings":"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","sourcesContent":["export interface GongCallParty {\n name?: string;\n emailAddress?: string;\n [key: string]: unknown;\n}\n\nexport interface GongCallRecord {\n id?: string;\n title?: string;\n started?: string;\n duration?: number;\n direction?: string;\n parties?: GongCallParty[];\n [key: string]: unknown;\n}\n\nexport interface GongCallSummary {\n id?: string;\n title?: string;\n started?: string;\n duration?: number;\n direction?: string;\n parties: Array<{ name?: string; email?: string }>;\n}\n\nexport function filterGongCallsByEmail(\n calls: readonly GongCallRecord[],\n email: string,\n limit = 10,\n): GongCallSummary[] {\n const normalizedEmail = email.toLowerCase();\n return calls\n .filter((call) =>\n (call.parties ?? []).some(\n (party) => party.emailAddress?.toLowerCase() === normalizedEmail,\n ),\n )\n .slice(0, limit)\n .map((call) => ({\n id: call.id,\n title: call.title,\n started: call.started,\n duration: call.duration,\n direction: call.direction,\n parties: (call.parties ?? []).map((party) => ({\n name: party.name,\n email: party.emailAddress,\n })),\n }));\n}\n\nexport interface LookupGongCallsByEmailOptions {\n credential: string;\n email: string;\n lookbackDays?: number;\n limit?: number;\n now?: number;\n fetch?: typeof globalThis.fetch;\n}\n\nexport type GongCallsLookupResult =\n | { ok: true; calls: GongCallSummary[] }\n | { ok: false; status: number; error: string };\n\nexport async function lookupGongCallsByEmail(\n options: LookupGongCallsByEmailOptions,\n): Promise<GongCallsLookupResult> {\n const fetchImpl = options.fetch ?? globalThis.fetch;\n const lookbackDays = options.lookbackDays ?? 90;\n const fromDateTime = new Date(\n (options.now ?? Date.now()) - lookbackDays * 24 * 60 * 60 * 1000,\n ).toISOString();\n const url = `https://api.gong.io/v2/calls?fromDateTime=${fromDateTime}`;\n const authHeaders = [\n `Bearer ${options.credential}`,\n `Basic ${Buffer.from(options.credential).toString(\"base64\")}`,\n ];\n\n try {\n let firstStatus = 502;\n for (const [index, authorization] of authHeaders.entries()) {\n const response = await fetchImpl(url, {\n headers: {\n Authorization: authorization,\n \"Content-Type\": \"application/json\",\n },\n });\n if (index === 0) firstStatus = response.status;\n if (!response.ok) continue;\n const data = (await response.json()) as { calls?: GongCallRecord[] };\n return {\n ok: true,\n calls: filterGongCallsByEmail(\n data.calls ?? [],\n options.email,\n options.limit,\n ),\n };\n }\n return {\n ok: false,\n status: firstStatus,\n error: `Gong API error: ${firstStatus}`,\n };\n } catch {\n return { ok: false, status: 500, error: \"Failed to reach Gong API\" };\n }\n}\n"]}
@@ -49,8 +49,8 @@ export declare function handleUpdateResource(event: any): Promise<import("./stor
49
49
  }>;
50
50
  /** DELETE /_agent-native/resources/:id — delete a resource */
51
51
  export declare function handleDeleteResource(event: any): Promise<{
52
- ok?: undefined;
53
52
  error: string;
53
+ ok?: undefined;
54
54
  } | {
55
55
  error?: undefined;
56
56
  ok: boolean;
@@ -1,11 +1,12 @@
1
1
  /**
2
2
  * Core script: source-search
3
3
  *
4
- * Search and read the packaged Agent Native source corpus.
4
+ * Search and read the packaged Agent Native Core, Toolkit, and template corpus.
5
5
  * The corpus is generated into @agent-native/core/corpus during package build.
6
6
  *
7
7
  * Usage:
8
8
  * pnpm action source-search --query "defineAction"
9
+ * pnpm action source-search --path toolkit/src/index.ts
9
10
  * pnpm action source-search --path templates/plan/AGENTS.md
10
11
  * pnpm action source-search --list
11
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"source-search.d.ts","sourceRoot":"","sources":["../../../src/scripts/docs/source-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAwSH,wBAA8B,kBAAkB,CAC9C,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,IAAI,CAAC,CAqDf"}
1
+ {"version":3,"file":"source-search.d.ts","sourceRoot":"","sources":["../../../src/scripts/docs/source-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAwSH,wBAA8B,kBAAkB,CAC9C,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,IAAI,CAAC,CAqDf"}
@@ -1,11 +1,12 @@
1
1
  /**
2
2
  * Core script: source-search
3
3
  *
4
- * Search and read the packaged Agent Native source corpus.
4
+ * Search and read the packaged Agent Native Core, Toolkit, and template corpus.
5
5
  * The corpus is generated into @agent-native/core/corpus during package build.
6
6
  *
7
7
  * Usage:
8
8
  * pnpm action source-search --query "defineAction"
9
+ * pnpm action source-search --path toolkit/src/index.ts
9
10
  * pnpm action source-search --path templates/plan/AGENTS.md
10
11
  * pnpm action source-search --list
11
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"source-search.js","sourceRoot":"","sources":["../../../src/scripts/docs/source-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOrD,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,OAAO;IACP,KAAK;IACL,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AAEH,SAAS,aAAa;IACpB,iCAAiC;IACjC,iDAAiD;IACjD,kDAAkD;IAClD,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,CACL,IAAI,KAAK,eAAe;QACxB,IAAI,KAAK,YAAY;QACrB,IAAI,KAAK,SAAS;QAClB,IAAI,KAAK,YAAY;QACrB,IAAI,KAAK,QAAQ;QACjB,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,eAAe;QACxB,IAAI,KAAK,iBAAiB;QAC1B,IAAI,KAAK,aAAa;QACtB,IAAI,KAAK,aAAa;QACtB,IAAI,KAAK,WAAW;QACpB,IAAI,KAAK,eAAe;QACxB,IAAI,KAAK,WAAW;QACpB,IAAI,KAAK,YAAY;QACrB,IAAI,KAAK,YAAY;QACrB,IAAI,KAAK,cAAc;QACvB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,UAAkB,EAClB,YAAoB;IAEpB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,wBAAwB,CAAC,YAAoB;IACpD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5D,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC;YAC/D,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,QAAQ,EAChC,CAAC;YACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,qBAA6B;IAC9D,OAAO,qBAAqB,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;QACxD,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,GAAG,qBAAqB,WAAW,CAAC;AAC1C,CAAC;AAED,SAAS,0BAA0B,CACjC,UAAkB,EAClB,YAAoB;IAEpB,MAAM,YAAY,GAAG,oBAAoB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACpE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACrE,IAAI,CAAC,qBAAqB;QAAE,OAAO,IAAI,CAAC;IAExC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAC9B,UAAU,EACV,GAAG,yBAAyB,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAC/D,CAAC;IACF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAChB,GAAW,EACX,IAAI,GAAG,GAAG,EACV,UAAU,GAAG,aAAa,EAAE;IAE5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,GAAG,CAAC;YAAE,SAAS;QAC3D,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,cAAc,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC;oBACT,YAAY,EAAE,GAAG;oBACjB,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;iBACjE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,KAAe;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,OAAO,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,KAAK;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAClC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;SAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;IAClD,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,GAC1D,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EACjC,EAAE,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IAKjC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK;SAChB,WAAW,EAAE;SACb,KAAK,CAAC,KAAK,CAAC;SACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,OAAO,GACX,EAAE,CAAC;IACL,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAC;YACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACpD,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,KAAK,IAAI,CAAC;YAAE,SAAS;QAEzB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAAE,SAAS;YAC9D,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YACnE,IAAI,QAAQ,CAAC,MAAM,IAAI,qBAAqB;gBAAE,MAAM;QACtD,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC5D,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,wBAAwB,QAAQ,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACvE,OAAO,wBAAwB,QAAQ,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,0BAA0B,QAAQ,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;QACpD,OAAO,0DAA0D,QAAQ,EAAE,CAAC;IAC9E,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,EAAE;aACf,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC5C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAChB,0BAA0B,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CACtE;aACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;aACxE,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpC,OAAO;YACL,KAAK,QAAQ,IAAI,GAAG,EAAE;YACtB,EAAE;YACF,GAAG,KAAK;YACR,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;gBAC3B,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,eAAe;gBACrD,CAAC,CAAC,EAAE;SACP;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAAE,OAAO,4BAA4B,QAAQ,EAAE,CAAC;IAClE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAAE,OAAO,2BAA2B,QAAQ,EAAE,CAAC;IAC9E,IAAI,IAAI,CAAC,IAAI,GAAG,cAAc,EAAE,CAAC;QAC/B,OAAO,2DAA2D,QAAQ,EAAE,CAAC;IAC/E,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,GAAG,CAAC,MAAM,IAAI,cAAc;QAAE,OAAO,GAAG,CAAC;IAC7C,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,wBAAwB,cAAc,iEAAiE,CAAC;AAChJ,CAAC;AAED,SAAS,UAAU;IACjB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YACzC,CAAC,CAAC,EAAE;iBACC,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;iBACjD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;iBAC1B,IAAI,EAAE;YACX,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,OAAO;YACP,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,WAAW,EAAE,QAAQ;SACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAC9C,IAAc;IAEd,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC;;;;;;2CAM2B,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CACT,8BAA8B,UAAU,2FAA2F,CACpI,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,mCAAmC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CACT,SAAS,OAAO,CAAC,MAAM,6BAA6B,MAAM,CAAC,KAAK,MAAM,CACvE,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,YAAY,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YACvD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;AAC7E,CAAC","sourcesContent":["/**\n * Core script: source-search\n *\n * Search and read the packaged Agent Native source corpus.\n * The corpus is generated into @agent-native/core/corpus during package build.\n *\n * Usage:\n * pnpm action source-search --query \"defineAction\"\n * pnpm action source-search --path templates/plan/AGENTS.md\n * pnpm action source-search --list\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { parseSkillFrontmatter } from \"../../server/agents-bundle.js\";\nimport { isValidPath, parseArgs } from \"../utils.js\";\n\ninterface SourceFile {\n relativePath: string;\n absolutePath: string;\n}\n\nconst MAX_FILE_BYTES = 1_000_000;\nconst MAX_READ_CHARS = 40_000;\nconst MAX_RESULTS = 20;\nconst MAX_SNIPPETS_PER_FILE = 3;\nconst TEXT_EXTENSIONS = new Set([\n \".bash\",\n \".cjs\",\n \".cts\",\n \".css\",\n \".csv\",\n \".env\",\n \".example\",\n \".html\",\n \".js\",\n \".json\",\n \".jsonc\",\n \".jsonl\",\n \".jsx\",\n \".md\",\n \".mdc\",\n \".mdx\",\n \".mjs\",\n \".mts\",\n \".plist\",\n \".rs\",\n \".sh\",\n \".sql\",\n \".svg\",\n \".toml\",\n \".ts\",\n \".tsx\",\n \".txt\",\n \".yaml\",\n \".yml\",\n \".zsh\",\n]);\n\nfunction getCorpusRoot(): string {\n // Resolve from the package root:\n // src/scripts/docs/source-search.ts -> corpus/\n // dist/scripts/docs/source-search.js -> corpus/\n return path.resolve(\n path.dirname(fileURLToPath(import.meta.url)),\n \"../../../corpus\",\n );\n}\n\nfunction isProbablyTextFile(filePath: string): boolean {\n const ext = path.extname(filePath).toLowerCase();\n if (TEXT_EXTENSIONS.has(ext)) return true;\n const base = path.basename(filePath);\n return (\n base === \".dockerignore\" ||\n base === \".gitignore\" ||\n base === \".ignore\" ||\n base === \".npmignore\" ||\n base === \".npmrc\" ||\n base === \".oxfmtrc\" ||\n base === \".oxfmtrc.json\" ||\n base === \".prettierignore\" ||\n base === \".prettierrc\" ||\n base === \".taurignore\" ||\n base === \"AGENTS.md\" ||\n base === \"DEVELOPING.md\" ||\n base === \"README.md\" ||\n base === \"_gitignore\" ||\n base === \"_redirects\" ||\n base === \"package.json\" ||\n base.startsWith(\".env.example\") ||\n base.startsWith(\".oxfmt\") ||\n base.startsWith(\".prettier\")\n );\n}\n\nfunction toCorpusRelativePath(\n corpusRoot: string,\n absolutePath: string,\n): string {\n return path.relative(corpusRoot, absolutePath).split(path.sep).join(\"/\");\n}\n\nfunction getSkillRootRelativePath(relativePath: string): string | null {\n const segments = relativePath.split(\"/\").filter(Boolean);\n for (let index = 0; index < segments.length - 2; index += 1) {\n if (\n (segments[index] === \".agents\" || segments[index] === \".agent\") &&\n segments[index + 1] === \"skills\"\n ) {\n return segments.slice(0, index + 3).join(\"/\");\n }\n }\n return null;\n}\n\nfunction getSkillEntryRelativePath(skillRootRelativePath: string): string {\n return skillRootRelativePath.toLowerCase().endsWith(\".md\")\n ? skillRootRelativePath\n : `${skillRootRelativePath}/SKILL.md`;\n}\n\nfunction isRuntimeVisibleCorpusPath(\n corpusRoot: string,\n absolutePath: string,\n): boolean {\n const relativePath = toCorpusRelativePath(corpusRoot, absolutePath);\n const skillRootRelativePath = getSkillRootRelativePath(relativePath);\n if (!skillRootRelativePath) return true;\n\n const skillEntryPath = path.join(\n corpusRoot,\n ...getSkillEntryRelativePath(skillRootRelativePath).split(\"/\"),\n );\n if (!fs.existsSync(skillEntryPath)) return true;\n\n try {\n const raw = fs.readFileSync(skillEntryPath, \"utf-8\");\n return parseSkillFrontmatter(raw).scope !== \"dev\";\n } catch {\n return true;\n }\n}\n\nfunction listFiles(\n dir: string,\n base = dir,\n corpusRoot = getCorpusRoot(),\n): SourceFile[] {\n if (!fs.existsSync(dir)) return [];\n const files: SourceFile[] = [];\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const abs = path.join(dir, entry.name);\n if (!isRuntimeVisibleCorpusPath(corpusRoot, abs)) continue;\n if (entry.isDirectory()) {\n files.push(...listFiles(abs, base, corpusRoot));\n } else if (entry.isFile() && isProbablyTextFile(abs)) {\n const stat = fs.statSync(abs);\n if (stat.size <= MAX_FILE_BYTES) {\n files.push({\n absolutePath: abs,\n relativePath: path.relative(base, abs).split(path.sep).join(\"/\"),\n });\n }\n }\n }\n return files.sort((a, b) => a.relativePath.localeCompare(b.relativePath));\n}\n\nfunction lineSnippet(line: string, terms: string[]): string {\n const trimmed = line.trim();\n if (trimmed.length <= 220) return trimmed;\n const lower = trimmed.toLowerCase();\n const hit = terms\n .map((term) => lower.indexOf(term))\n .filter((index) => index >= 0)\n .sort((a, b) => a - b)[0];\n const start = Math.max(0, (hit ?? 0) - 80);\n const end = Math.min(trimmed.length, start + 220);\n return `${start > 0 ? \"...\" : \"\"}${trimmed.slice(start, end)}${\n end < trimmed.length ? \"...\" : \"\"\n }`;\n}\n\nfunction searchCorpus(query: string): Array<{\n file: string;\n score: number;\n snippets: string[];\n}> {\n const corpusRoot = getCorpusRoot();\n const terms = query\n .toLowerCase()\n .split(/\\s+/)\n .map((term) => term.trim())\n .filter(Boolean);\n if (terms.length === 0) return [];\n\n const results: Array<{ file: string; score: number; snippets: string[] }> =\n [];\n for (const file of listFiles(corpusRoot)) {\n let raw = \"\";\n try {\n raw = fs.readFileSync(file.absolutePath, \"utf-8\");\n } catch {\n continue;\n }\n const lowerPath = file.relativePath.toLowerCase();\n const lowerRaw = raw.toLowerCase();\n let score = 0;\n for (const term of terms) {\n if (lowerPath.includes(term)) score += 8;\n const occurrences = lowerRaw.split(term).length - 1;\n score += Math.min(occurrences, 10);\n }\n if (score <= 0) continue;\n\n const snippets: string[] = [];\n const lines = raw.split(/\\r?\\n/);\n for (let index = 0; index < lines.length; index += 1) {\n const lowerLine = lines[index].toLowerCase();\n if (!terms.some((term) => lowerLine.includes(term))) continue;\n snippets.push(`${index + 1}: ${lineSnippet(lines[index], terms)}`);\n if (snippets.length >= MAX_SNIPPETS_PER_FILE) break;\n }\n\n results.push({ file: file.relativePath, score, snippets });\n }\n\n return results.sort(\n (a, b) => b.score - a.score || a.file.localeCompare(b.file),\n );\n}\n\nfunction readCorpusPath(relative: string): string {\n if (!isValidPath(relative)) {\n return `Invalid corpus path: ${relative}`;\n }\n const corpusRoot = getCorpusRoot();\n const target = path.resolve(corpusRoot, relative);\n if (!target.startsWith(corpusRoot + path.sep) && target !== corpusRoot) {\n return `Invalid corpus path: ${relative}`;\n }\n if (!fs.existsSync(target)) {\n return `Corpus path not found: ${relative}`;\n }\n if (!isRuntimeVisibleCorpusPath(corpusRoot, target)) {\n return `Corpus path is not available to runtime source-search: ${relative}`;\n }\n\n const stat = fs.statSync(target);\n if (stat.isDirectory()) {\n const entries = fs\n .readdirSync(target, { withFileTypes: true })\n .filter((entry) =>\n isRuntimeVisibleCorpusPath(corpusRoot, path.join(target, entry.name)),\n )\n .map((entry) => `${entry.isDirectory() ? \"dir \" : \"file\"} ${entry.name}`)\n .sort();\n const shown = entries.slice(0, 200);\n return [\n `# ${relative || \".\"}`,\n \"\",\n ...shown,\n entries.length > shown.length\n ? `... ${entries.length - shown.length} more entries`\n : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n }\n\n if (!stat.isFile()) return `Unsupported corpus path: ${relative}`;\n if (!isProbablyTextFile(target)) return `Not a text corpus file: ${relative}`;\n if (stat.size > MAX_FILE_BYTES) {\n return `Corpus file is too large to read through source-search: ${relative}`;\n }\n\n const raw = fs.readFileSync(target, \"utf-8\");\n if (raw.length <= MAX_READ_CHARS) return raw;\n return `${raw.slice(0, MAX_READ_CHARS)}\\n\\n... truncated at ${MAX_READ_CHARS} characters. Use a narrower path or direct rg for more context.`;\n}\n\nfunction listCorpus(): unknown {\n const corpusRoot = getCorpusRoot();\n const sections = [\"core\", \"templates\"];\n return sections.map((section) => {\n const sectionRoot = path.join(corpusRoot, section);\n const files = listFiles(sectionRoot);\n const children = fs.existsSync(sectionRoot)\n ? fs\n .readdirSync(sectionRoot, { withFileTypes: true })\n .filter((entry) => entry.isDirectory())\n .map((entry) => entry.name)\n .sort()\n : [];\n return {\n section,\n path: section,\n files: files.length,\n directories: children,\n };\n });\n}\n\nexport default async function sourceSearchScript(\n args: string[],\n): Promise<void> {\n const parsed = parseArgs(args);\n const corpusRoot = getCorpusRoot();\n\n if (parsed.help === \"true\") {\n console.log(`Usage: pnpm action source-search [options]\n\nOptions:\n --query <text> Search source corpus by keyword\n --path <path> Read a corpus file or list a corpus directory\n --list List corpus sections\n --help Show this help message`);\n return;\n }\n\n if (!fs.existsSync(corpusRoot)) {\n console.log(\n `Source corpus not found at ${corpusRoot}. Build or reinstall @agent-native/core so node_modules/@agent-native/core/corpus exists.`,\n );\n return;\n }\n\n if (parsed.list === \"true\") {\n console.log(JSON.stringify(listCorpus(), null, 2));\n return;\n }\n\n if (parsed.path) {\n console.log(readCorpusPath(parsed.path));\n return;\n }\n\n if (parsed.query) {\n const results = searchCorpus(parsed.query);\n if (results.length === 0) {\n console.log(`No source files found matching \"${parsed.query}\".`);\n return;\n }\n console.log(\n `Found ${results.length} source file(s) matching \"${parsed.query}\":\\n`,\n );\n for (const result of results.slice(0, MAX_RESULTS)) {\n console.log(`${result.file} (score ${result.score})`);\n for (const snippet of result.snippets) {\n console.log(` ${snippet}`);\n }\n console.log(\"\");\n }\n console.log(\"Use --path <file> to read a specific corpus file.\");\n return;\n }\n\n console.log(\"Provide --query, --path, or --list. Use --help for details.\");\n}\n"]}
1
+ {"version":3,"file":"source-search.js","sourceRoot":"","sources":["../../../src/scripts/docs/source-search.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Core script: source-search\n *\n * Search and read the packaged Agent Native Core, Toolkit, and template corpus.\n * The corpus is generated into @agent-native/core/corpus during package build.\n *\n * Usage:\n * pnpm action source-search --query \"defineAction\"\n * pnpm action source-search --path toolkit/src/index.ts\n * pnpm action source-search --path templates/plan/AGENTS.md\n * pnpm action source-search --list\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { parseSkillFrontmatter } from \"../../server/agents-bundle.js\";\nimport { isValidPath, parseArgs } from \"../utils.js\";\n\ninterface SourceFile {\n relativePath: string;\n absolutePath: string;\n}\n\nconst MAX_FILE_BYTES = 1_000_000;\nconst MAX_READ_CHARS = 40_000;\nconst MAX_RESULTS = 20;\nconst MAX_SNIPPETS_PER_FILE = 3;\nconst TEXT_EXTENSIONS = new Set([\n \".bash\",\n \".cjs\",\n \".cts\",\n \".css\",\n \".csv\",\n \".env\",\n \".example\",\n \".html\",\n \".js\",\n \".json\",\n \".jsonc\",\n \".jsonl\",\n \".jsx\",\n \".md\",\n \".mdc\",\n \".mdx\",\n \".mjs\",\n \".mts\",\n \".plist\",\n \".rs\",\n \".sh\",\n \".sql\",\n \".svg\",\n \".toml\",\n \".ts\",\n \".tsx\",\n \".txt\",\n \".yaml\",\n \".yml\",\n \".zsh\",\n]);\n\nfunction getCorpusRoot(): string {\n // Resolve from the package root:\n // src/scripts/docs/source-search.ts -> corpus/\n // dist/scripts/docs/source-search.js -> corpus/\n return path.resolve(\n path.dirname(fileURLToPath(import.meta.url)),\n \"../../../corpus\",\n );\n}\n\nfunction isProbablyTextFile(filePath: string): boolean {\n const ext = path.extname(filePath).toLowerCase();\n if (TEXT_EXTENSIONS.has(ext)) return true;\n const base = path.basename(filePath);\n return (\n base === \".dockerignore\" ||\n base === \".gitignore\" ||\n base === \".ignore\" ||\n base === \".npmignore\" ||\n base === \".npmrc\" ||\n base === \".oxfmtrc\" ||\n base === \".oxfmtrc.json\" ||\n base === \".prettierignore\" ||\n base === \".prettierrc\" ||\n base === \".taurignore\" ||\n base === \"AGENTS.md\" ||\n base === \"DEVELOPING.md\" ||\n base === \"README.md\" ||\n base === \"_gitignore\" ||\n base === \"_redirects\" ||\n base === \"package.json\" ||\n base.startsWith(\".env.example\") ||\n base.startsWith(\".oxfmt\") ||\n base.startsWith(\".prettier\")\n );\n}\n\nfunction toCorpusRelativePath(\n corpusRoot: string,\n absolutePath: string,\n): string {\n return path.relative(corpusRoot, absolutePath).split(path.sep).join(\"/\");\n}\n\nfunction getSkillRootRelativePath(relativePath: string): string | null {\n const segments = relativePath.split(\"/\").filter(Boolean);\n for (let index = 0; index < segments.length - 2; index += 1) {\n if (\n (segments[index] === \".agents\" || segments[index] === \".agent\") &&\n segments[index + 1] === \"skills\"\n ) {\n return segments.slice(0, index + 3).join(\"/\");\n }\n }\n return null;\n}\n\nfunction getSkillEntryRelativePath(skillRootRelativePath: string): string {\n return skillRootRelativePath.toLowerCase().endsWith(\".md\")\n ? skillRootRelativePath\n : `${skillRootRelativePath}/SKILL.md`;\n}\n\nfunction isRuntimeVisibleCorpusPath(\n corpusRoot: string,\n absolutePath: string,\n): boolean {\n const relativePath = toCorpusRelativePath(corpusRoot, absolutePath);\n const skillRootRelativePath = getSkillRootRelativePath(relativePath);\n if (!skillRootRelativePath) return true;\n\n const skillEntryPath = path.join(\n corpusRoot,\n ...getSkillEntryRelativePath(skillRootRelativePath).split(\"/\"),\n );\n if (!fs.existsSync(skillEntryPath)) return true;\n\n try {\n const raw = fs.readFileSync(skillEntryPath, \"utf-8\");\n return parseSkillFrontmatter(raw).scope !== \"dev\";\n } catch {\n return true;\n }\n}\n\nfunction listFiles(\n dir: string,\n base = dir,\n corpusRoot = getCorpusRoot(),\n): SourceFile[] {\n if (!fs.existsSync(dir)) return [];\n const files: SourceFile[] = [];\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const abs = path.join(dir, entry.name);\n if (!isRuntimeVisibleCorpusPath(corpusRoot, abs)) continue;\n if (entry.isDirectory()) {\n files.push(...listFiles(abs, base, corpusRoot));\n } else if (entry.isFile() && isProbablyTextFile(abs)) {\n const stat = fs.statSync(abs);\n if (stat.size <= MAX_FILE_BYTES) {\n files.push({\n absolutePath: abs,\n relativePath: path.relative(base, abs).split(path.sep).join(\"/\"),\n });\n }\n }\n }\n return files.sort((a, b) => a.relativePath.localeCompare(b.relativePath));\n}\n\nfunction lineSnippet(line: string, terms: string[]): string {\n const trimmed = line.trim();\n if (trimmed.length <= 220) return trimmed;\n const lower = trimmed.toLowerCase();\n const hit = terms\n .map((term) => lower.indexOf(term))\n .filter((index) => index >= 0)\n .sort((a, b) => a - b)[0];\n const start = Math.max(0, (hit ?? 0) - 80);\n const end = Math.min(trimmed.length, start + 220);\n return `${start > 0 ? \"...\" : \"\"}${trimmed.slice(start, end)}${\n end < trimmed.length ? \"...\" : \"\"\n }`;\n}\n\nfunction searchCorpus(query: string): Array<{\n file: string;\n score: number;\n snippets: string[];\n}> {\n const corpusRoot = getCorpusRoot();\n const terms = query\n .toLowerCase()\n .split(/\\s+/)\n .map((term) => term.trim())\n .filter(Boolean);\n if (terms.length === 0) return [];\n\n const results: Array<{ file: string; score: number; snippets: string[] }> =\n [];\n for (const file of listFiles(corpusRoot)) {\n let raw = \"\";\n try {\n raw = fs.readFileSync(file.absolutePath, \"utf-8\");\n } catch {\n continue;\n }\n const lowerPath = file.relativePath.toLowerCase();\n const lowerRaw = raw.toLowerCase();\n let score = 0;\n for (const term of terms) {\n if (lowerPath.includes(term)) score += 8;\n const occurrences = lowerRaw.split(term).length - 1;\n score += Math.min(occurrences, 10);\n }\n if (score <= 0) continue;\n\n const snippets: string[] = [];\n const lines = raw.split(/\\r?\\n/);\n for (let index = 0; index < lines.length; index += 1) {\n const lowerLine = lines[index].toLowerCase();\n if (!terms.some((term) => lowerLine.includes(term))) continue;\n snippets.push(`${index + 1}: ${lineSnippet(lines[index], terms)}`);\n if (snippets.length >= MAX_SNIPPETS_PER_FILE) break;\n }\n\n results.push({ file: file.relativePath, score, snippets });\n }\n\n return results.sort(\n (a, b) => b.score - a.score || a.file.localeCompare(b.file),\n );\n}\n\nfunction readCorpusPath(relative: string): string {\n if (!isValidPath(relative)) {\n return `Invalid corpus path: ${relative}`;\n }\n const corpusRoot = getCorpusRoot();\n const target = path.resolve(corpusRoot, relative);\n if (!target.startsWith(corpusRoot + path.sep) && target !== corpusRoot) {\n return `Invalid corpus path: ${relative}`;\n }\n if (!fs.existsSync(target)) {\n return `Corpus path not found: ${relative}`;\n }\n if (!isRuntimeVisibleCorpusPath(corpusRoot, target)) {\n return `Corpus path is not available to runtime source-search: ${relative}`;\n }\n\n const stat = fs.statSync(target);\n if (stat.isDirectory()) {\n const entries = fs\n .readdirSync(target, { withFileTypes: true })\n .filter((entry) =>\n isRuntimeVisibleCorpusPath(corpusRoot, path.join(target, entry.name)),\n )\n .map((entry) => `${entry.isDirectory() ? \"dir \" : \"file\"} ${entry.name}`)\n .sort();\n const shown = entries.slice(0, 200);\n return [\n `# ${relative || \".\"}`,\n \"\",\n ...shown,\n entries.length > shown.length\n ? `... ${entries.length - shown.length} more entries`\n : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n }\n\n if (!stat.isFile()) return `Unsupported corpus path: ${relative}`;\n if (!isProbablyTextFile(target)) return `Not a text corpus file: ${relative}`;\n if (stat.size > MAX_FILE_BYTES) {\n return `Corpus file is too large to read through source-search: ${relative}`;\n }\n\n const raw = fs.readFileSync(target, \"utf-8\");\n if (raw.length <= MAX_READ_CHARS) return raw;\n return `${raw.slice(0, MAX_READ_CHARS)}\\n\\n... truncated at ${MAX_READ_CHARS} characters. Use a narrower path or direct rg for more context.`;\n}\n\nfunction listCorpus(): unknown {\n const corpusRoot = getCorpusRoot();\n const sections = [\"core\", \"templates\"];\n return sections.map((section) => {\n const sectionRoot = path.join(corpusRoot, section);\n const files = listFiles(sectionRoot);\n const children = fs.existsSync(sectionRoot)\n ? fs\n .readdirSync(sectionRoot, { withFileTypes: true })\n .filter((entry) => entry.isDirectory())\n .map((entry) => entry.name)\n .sort()\n : [];\n return {\n section,\n path: section,\n files: files.length,\n directories: children,\n };\n });\n}\n\nexport default async function sourceSearchScript(\n args: string[],\n): Promise<void> {\n const parsed = parseArgs(args);\n const corpusRoot = getCorpusRoot();\n\n if (parsed.help === \"true\") {\n console.log(`Usage: pnpm action source-search [options]\n\nOptions:\n --query <text> Search source corpus by keyword\n --path <path> Read a corpus file or list a corpus directory\n --list List corpus sections\n --help Show this help message`);\n return;\n }\n\n if (!fs.existsSync(corpusRoot)) {\n console.log(\n `Source corpus not found at ${corpusRoot}. Build or reinstall @agent-native/core so node_modules/@agent-native/core/corpus exists.`,\n );\n return;\n }\n\n if (parsed.list === \"true\") {\n console.log(JSON.stringify(listCorpus(), null, 2));\n return;\n }\n\n if (parsed.path) {\n console.log(readCorpusPath(parsed.path));\n return;\n }\n\n if (parsed.query) {\n const results = searchCorpus(parsed.query);\n if (results.length === 0) {\n console.log(`No source files found matching \"${parsed.query}\".`);\n return;\n }\n console.log(\n `Found ${results.length} source file(s) matching \"${parsed.query}\":\\n`,\n );\n for (const result of results.slice(0, MAX_RESULTS)) {\n console.log(`${result.file} (score ${result.score})`);\n for (const snippet of result.snippets) {\n console.log(` ${snippet}`);\n }\n console.log(\"\");\n }\n console.log(\"Use --path <file> to read a specific corpus file.\");\n return;\n }\n\n console.log(\"Provide --query, --path, or --list. Use --help for details.\");\n}\n"]}
@@ -0,0 +1,88 @@
1
+ import type { DbExec } from "../db/index.js";
2
+ export declare const DEFAULT_SEARCH_NAMESPACE = "creative_context";
3
+ export declare const PGVECTOR_REQUIRED_MESSAGE = "Vector search requires Postgres with the pgvector extension in the configured DATABASE_URL database.";
4
+ export interface SearchNamespaceIdentifiers {
5
+ namespace: string;
6
+ ftsTable: string;
7
+ ftsIndex: string;
8
+ ftsAudienceIndex: string;
9
+ vectorTable: string;
10
+ vectorIndex: string;
11
+ vectorAudienceIndex: string;
12
+ }
13
+ export interface PgVectorHit {
14
+ vectorKey: string;
15
+ embeddingSetId: string;
16
+ score: number;
17
+ }
18
+ export interface PostgresFtsHit {
19
+ chunkId: string;
20
+ itemVersionId: string;
21
+ score: number;
22
+ }
23
+ export interface RankedCandidate<T> {
24
+ key: string;
25
+ value: T;
26
+ score: number;
27
+ reason?: string;
28
+ }
29
+ export interface FusedCandidate<T> extends RankedCandidate<T> {
30
+ laneRanks: Record<string, number>;
31
+ reasons: string[];
32
+ }
33
+ type PgVectorOptions = boolean | {
34
+ namespace?: string;
35
+ postgres?: boolean;
36
+ /** The caller has already provisioned this namespace and dimension. */
37
+ indexInitialized?: boolean;
38
+ };
39
+ export declare function searchNamespaceIdentifiers(namespace?: string, dimensions?: number): SearchNamespaceIdentifiers;
40
+ export declare function assertPgVectorAvailable(postgres?: boolean): void;
41
+ export declare function ensurePgVectorIndex(db: DbExec, dimensions: number, options?: PgVectorOptions): Promise<void>;
42
+ export declare function upsertPgVector(db: DbExec, input: {
43
+ vectorKey: string;
44
+ embeddingSetId: string;
45
+ dimensions: number;
46
+ vector: readonly number[];
47
+ audienceIds?: readonly string[];
48
+ updatedAt?: string;
49
+ }, options?: PgVectorOptions): Promise<void>;
50
+ export declare function deletePgVectors(db: DbExec, input: {
51
+ dimensions: number;
52
+ vectorKeys: readonly string[];
53
+ namespace?: string;
54
+ }, postgres?: boolean): Promise<number>;
55
+ export declare function queryPgVectorIndex(db: DbExec, input: {
56
+ embeddingSetId: string;
57
+ dimensions: number;
58
+ vector: readonly number[];
59
+ limit?: number;
60
+ allowedVectorKeys?: readonly string[];
61
+ allowedAudienceIds?: readonly string[];
62
+ namespace?: string;
63
+ }, postgres?: boolean): Promise<PgVectorHit[]>;
64
+ export declare function ensurePostgresFts(db: DbExec, namespace?: string): Promise<boolean>;
65
+ export declare function upsertPostgresFtsDocument(db: DbExec, input: {
66
+ chunkId: string;
67
+ itemVersionId: string;
68
+ title: string;
69
+ summary?: string | null;
70
+ body: string;
71
+ audienceIds?: readonly string[];
72
+ updatedAt?: string;
73
+ namespace?: string;
74
+ }): Promise<boolean>;
75
+ export declare function queryPostgresFts(db: DbExec, input: {
76
+ query: string;
77
+ allowedChunkIds?: readonly string[];
78
+ allowedAudienceIds?: readonly string[];
79
+ limit?: number;
80
+ namespace?: string;
81
+ }): Promise<PostgresFtsHit[]>;
82
+ export declare function deletePostgresFtsDocuments(db: DbExec, chunkIds: readonly string[], namespace?: string): Promise<number>;
83
+ export declare function reciprocalRankFusion<T>(lanes: Readonly<Record<string, readonly RankedCandidate<T>[]>>, options?: {
84
+ rankConstant?: number;
85
+ limit?: number;
86
+ }): FusedCandidate<T>[];
87
+ export {};
88
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAC3D,eAAO,MAAM,yBAAyB,yGACkE,CAAC;AAEzG,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,KAAK,eAAe,GAChB,OAAO,GACP;IACE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAMN,wBAAgB,0BAA0B,CACxC,SAAS,SAA2B,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,0BAA0B,CAiB5B;AAkCD,wBAAgB,uBAAuB,CAAC,QAAQ,UAAe,GAAG,IAAI,CAErE;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IACL,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,QAAQ,UAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IACL,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,QAAQ,UAAe,GACtB,OAAO,CAAC,WAAW,EAAE,CAAC,CAuCxB;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,SAAS,SAA2B,GACnC,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAED,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC,OAAO,CAAC,CAqBlB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IACL,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC,cAAc,EAAE,CAAC,CAoC3B;AAOD,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,SAAS,SAA2B,GACnC,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9D,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,cAAc,CAAC,CAAC,CAAC,EAAE,CAsBrB"}