@agent-native/core 0.78.9 → 0.79.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 (176) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +11 -0
  3. package/corpus/core/docs/content/actions.md +4 -2
  4. package/corpus/core/docs/content/agent-surfaces.md +9 -0
  5. package/corpus/core/docs/content/extensions.md +10 -0
  6. package/corpus/core/docs/content/generative-ui.md +217 -0
  7. package/corpus/core/docs/content/key-concepts.md +2 -2
  8. package/corpus/core/docs/content/mcp-apps.md +3 -5
  9. package/corpus/core/docs/content/native-chat-ui.md +9 -5
  10. package/corpus/core/docs/content/tracking.md +9 -3
  11. package/corpus/core/package.json +1 -1
  12. package/corpus/core/src/action-ui.ts +1 -0
  13. package/corpus/core/src/client/analytics.ts +195 -12
  14. package/corpus/core/src/client/chat/index.ts +1 -0
  15. package/corpus/core/src/client/chat/tool-call-display.tsx +5 -2
  16. package/corpus/core/src/client/chat/widgets/InlineExtensionWidget.tsx +139 -0
  17. package/corpus/core/src/client/chat/widgets/builtin-tool-renderers.tsx +27 -1
  18. package/corpus/core/src/client/conversation/AgentConversation.tsx +38 -0
  19. package/corpus/core/src/client/conversation/code-agent-transcript.ts +9 -0
  20. package/corpus/core/src/client/conversation/types.ts +4 -0
  21. package/corpus/core/src/client/extensions/EmbeddedExtension.tsx +27 -5
  22. package/corpus/core/src/client/extensions/ExtensionViewer.tsx +26 -5
  23. package/corpus/core/src/client/extensions/InlineExtensionFrame.tsx +654 -0
  24. package/corpus/core/src/client/extensions/iframe-bridge.ts +30 -0
  25. package/corpus/core/src/client/extensions/index.ts +5 -0
  26. package/corpus/core/src/client/index.ts +1 -0
  27. package/corpus/core/src/client/session-replay.ts +89 -14
  28. package/corpus/core/src/code-agents/transcript-normalizer.ts +14 -0
  29. package/corpus/core/src/extensions/actions.ts +218 -1
  30. package/corpus/core/src/extensions/html-shell.ts +70 -3
  31. package/corpus/core/src/extensions/routes.ts +12 -4
  32. package/corpus/core/src/index.browser.ts +1 -0
  33. package/corpus/core/src/index.ts +1 -0
  34. package/corpus/core/src/server/agent-chat-plugin.ts +21 -9
  35. package/corpus/core/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +13 -0
  36. package/corpus/core/src/templates/workspace-core/.agents/skills/extensions/references/api.md +2 -0
  37. package/corpus/core/src/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +115 -0
  38. package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +198 -59
  39. package/corpus/templates/analytics/AGENTS.md +12 -0
  40. package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +1105 -0
  41. package/corpus/templates/analytics/actions/dashboard-panel-order.ts +169 -0
  42. package/corpus/templates/analytics/actions/get-sql-dashboard.ts +89 -6
  43. package/corpus/templates/analytics/actions/mutate-dashboard.ts +333 -0
  44. package/corpus/templates/analytics/actions/reorder-dashboard-panels.ts +214 -0
  45. package/corpus/templates/analytics/actions/send-dashboard-report-now.ts +48 -21
  46. package/corpus/templates/analytics/actions/update-dashboard.ts +193 -100
  47. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +11 -0
  48. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +1 -1
  49. package/corpus/templates/analytics/app/global.css +81 -10
  50. package/corpus/templates/analytics/app/i18n-data.ts +249 -4
  51. package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/ChartCard.tsx +3 -3
  52. package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +41 -1
  53. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/EmailReportDialog.tsx +1 -1
  54. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +4 -4
  55. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +48 -18
  56. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dashboard-layout.ts +32 -0
  57. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +204 -70
  58. package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +1101 -227
  59. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +160 -133
  60. package/corpus/templates/analytics/changelog/2026-06-26-agents-can-now-edit-dashboards-through-a-typed-mutation-scri.md +6 -0
  61. package/corpus/templates/analytics/changelog/2026-06-26-dashboard-bar-chart-hovers-stay-subtle-in-dark-mode.md +6 -0
  62. package/corpus/templates/analytics/changelog/2026-06-26-dashboard-chart-moves-are-now-handled-by-panel-id-making-sim.md +6 -0
  63. package/corpus/templates/analytics/changelog/2026-06-26-dashboard-charts-drag-smoothly-with-stable-cards-inactive-ch.md +6 -0
  64. package/corpus/templates/analytics/changelog/2026-06-26-dashboard-charts-show-a-refresh-spinner-while-keeping-existi.md +6 -0
  65. package/corpus/templates/analytics/changelog/2026-06-26-dashboard-edits-stay-stable-while-chart-order-and-deletions-.md +6 -0
  66. package/corpus/templates/analytics/changelog/2026-06-26-dashboard-email-reports-queue-immediate-sends.md +6 -0
  67. package/corpus/templates/analytics/changelog/2026-06-26-explorer-dashboards-now-drag-charts-with-a-stable-preview-an.md +6 -0
  68. package/corpus/templates/analytics/changelog/2026-06-26-session-replay-playback-can-now-be-toggled-by-clicking-the-r.md +6 -0
  69. package/corpus/templates/analytics/changelog/2026-06-26-session-replays-now-open-from-the-full-row-and-play-with-tim.md +6 -0
  70. package/corpus/templates/analytics/server/lib/dashboard-report-subscriptions.ts +21 -0
  71. package/corpus/templates/analytics/server/lib/dashboard-report.ts +41 -17
  72. package/corpus/templates/analytics/server/plugins/agent-chat.ts +5 -0
  73. package/dist/action-ui.d.ts +1 -0
  74. package/dist/action-ui.d.ts.map +1 -1
  75. package/dist/action-ui.js +1 -0
  76. package/dist/action-ui.js.map +1 -1
  77. package/dist/client/analytics.d.ts.map +1 -1
  78. package/dist/client/analytics.js +173 -12
  79. package/dist/client/analytics.js.map +1 -1
  80. package/dist/client/chat/index.d.ts +1 -1
  81. package/dist/client/chat/index.d.ts.map +1 -1
  82. package/dist/client/chat/index.js +1 -1
  83. package/dist/client/chat/index.js.map +1 -1
  84. package/dist/client/chat/tool-call-display.d.ts.map +1 -1
  85. package/dist/client/chat/tool-call-display.js +3 -1
  86. package/dist/client/chat/tool-call-display.js.map +1 -1
  87. package/dist/client/chat/widgets/InlineExtensionWidget.d.ts +17 -0
  88. package/dist/client/chat/widgets/InlineExtensionWidget.d.ts.map +1 -0
  89. package/dist/client/chat/widgets/InlineExtensionWidget.js +85 -0
  90. package/dist/client/chat/widgets/InlineExtensionWidget.js.map +1 -0
  91. package/dist/client/chat/widgets/builtin-tool-renderers.d.ts.map +1 -1
  92. package/dist/client/chat/widgets/builtin-tool-renderers.js +15 -2
  93. package/dist/client/chat/widgets/builtin-tool-renderers.js.map +1 -1
  94. package/dist/client/conversation/AgentConversation.d.ts.map +1 -1
  95. package/dist/client/conversation/AgentConversation.js +33 -0
  96. package/dist/client/conversation/AgentConversation.js.map +1 -1
  97. package/dist/client/conversation/code-agent-transcript.js +8 -0
  98. package/dist/client/conversation/code-agent-transcript.js.map +1 -1
  99. package/dist/client/conversation/types.d.ts +4 -0
  100. package/dist/client/conversation/types.d.ts.map +1 -1
  101. package/dist/client/conversation/types.js.map +1 -1
  102. package/dist/client/extensions/EmbeddedExtension.d.ts.map +1 -1
  103. package/dist/client/extensions/EmbeddedExtension.js +29 -1
  104. package/dist/client/extensions/EmbeddedExtension.js.map +1 -1
  105. package/dist/client/extensions/ExtensionViewer.d.ts.map +1 -1
  106. package/dist/client/extensions/ExtensionViewer.js +28 -1
  107. package/dist/client/extensions/ExtensionViewer.js.map +1 -1
  108. package/dist/client/extensions/InlineExtensionFrame.d.ts +25 -0
  109. package/dist/client/extensions/InlineExtensionFrame.d.ts.map +1 -0
  110. package/dist/client/extensions/InlineExtensionFrame.js +488 -0
  111. package/dist/client/extensions/InlineExtensionFrame.js.map +1 -0
  112. package/dist/client/extensions/iframe-bridge.d.ts +2 -0
  113. package/dist/client/extensions/iframe-bridge.d.ts.map +1 -1
  114. package/dist/client/extensions/iframe-bridge.js +23 -0
  115. package/dist/client/extensions/iframe-bridge.js.map +1 -1
  116. package/dist/client/extensions/index.d.ts +1 -0
  117. package/dist/client/extensions/index.d.ts.map +1 -1
  118. package/dist/client/extensions/index.js +1 -0
  119. package/dist/client/extensions/index.js.map +1 -1
  120. package/dist/client/index.d.ts +1 -1
  121. package/dist/client/index.d.ts.map +1 -1
  122. package/dist/client/index.js +1 -1
  123. package/dist/client/index.js.map +1 -1
  124. package/dist/client/session-replay.d.ts +11 -1
  125. package/dist/client/session-replay.d.ts.map +1 -1
  126. package/dist/client/session-replay.js +74 -14
  127. package/dist/client/session-replay.js.map +1 -1
  128. package/dist/code-agents/transcript-normalizer.d.ts +2 -0
  129. package/dist/code-agents/transcript-normalizer.d.ts.map +1 -1
  130. package/dist/code-agents/transcript-normalizer.js +8 -0
  131. package/dist/code-agents/transcript-normalizer.js.map +1 -1
  132. package/dist/collab/awareness.d.ts +2 -2
  133. package/dist/collab/awareness.d.ts.map +1 -1
  134. package/dist/collab/routes.d.ts +1 -1
  135. package/dist/extensions/actions.d.ts.map +1 -1
  136. package/dist/extensions/actions.js +200 -1
  137. package/dist/extensions/actions.js.map +1 -1
  138. package/dist/extensions/html-shell.d.ts.map +1 -1
  139. package/dist/extensions/html-shell.js +70 -3
  140. package/dist/extensions/html-shell.js.map +1 -1
  141. package/dist/extensions/routes.d.ts.map +1 -1
  142. package/dist/extensions/routes.js +11 -4
  143. package/dist/extensions/routes.js.map +1 -1
  144. package/dist/index.browser.d.ts +1 -1
  145. package/dist/index.browser.d.ts.map +1 -1
  146. package/dist/index.browser.js +1 -1
  147. package/dist/index.browser.js.map +1 -1
  148. package/dist/index.d.ts +1 -1
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/index.js +1 -1
  151. package/dist/index.js.map +1 -1
  152. package/dist/notifications/routes.d.ts +2 -2
  153. package/dist/observability/routes.d.ts +3 -3
  154. package/dist/progress/routes.d.ts +1 -1
  155. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  156. package/dist/resources/handlers.d.ts +3 -3
  157. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  158. package/dist/server/agent-chat-plugin.js +21 -9
  159. package/dist/server/agent-chat-plugin.js.map +1 -1
  160. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  161. package/dist/server/transcribe-voice.d.ts +1 -1
  162. package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +13 -0
  163. package/dist/templates/workspace-core/.agents/skills/extensions/references/api.md +2 -0
  164. package/dist/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +115 -0
  165. package/docs/content/actions.md +4 -2
  166. package/docs/content/agent-surfaces.md +9 -0
  167. package/docs/content/extensions.md +10 -0
  168. package/docs/content/generative-ui.md +217 -0
  169. package/docs/content/key-concepts.md +2 -2
  170. package/docs/content/mcp-apps.md +3 -5
  171. package/docs/content/native-chat-ui.md +9 -5
  172. package/docs/content/tracking.md +9 -3
  173. package/package.json +1 -1
  174. package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +13 -0
  175. package/src/templates/workspace-core/.agents/skills/extensions/references/api.md +2 -0
  176. package/src/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +115 -0
@@ -0,0 +1,115 @@
1
+ ---
2
+ name: generative-ui
3
+ description: >-
4
+ Generate transient or saved inline chat UI with Alpine/Tailwind controls,
5
+ outputs, app state, and extensions. Use for knobs, pickers, calculators,
6
+ dashboards, widgets, or reusable mini-apps.
7
+ ---
8
+
9
+ # Generative UI
10
+
11
+ Generative UI is sandboxed Alpine.js HTML rendered inline in chat. It is not a
12
+ source-code change and does not go through Builder.
13
+
14
+ ## Pick the Lifetime
15
+
16
+ - Use `render-inline-extension` for one-off UI that belongs only in the current
17
+ chat: knobs, controls, pickers, calculators, temporary charts, and previews.
18
+ - Use `create-extension` when the UI should be saved, reusable, or visible in
19
+ the Extensions view. It also renders inline after creation.
20
+ - Use `show-extension-inline` to reopen a saved extension inside chat.
21
+ - Use `update-extension` to edit an existing saved extension.
22
+
23
+ ## Inputs From Chat
24
+
25
+ Pass initial values through the action `context` argument. The iframe reads them
26
+ from `window.slotContext` and can subscribe to changes with
27
+ `window.onSlotContext(fn)`.
28
+
29
+ ```html
30
+ <script>
31
+ Alpine.data("controls", () => ({
32
+ threshold: 50,
33
+ init() {
34
+ this.threshold = Number(window.slotContext?.threshold ?? 50);
35
+ window.onSlotContext?.((ctx) => {
36
+ if (ctx.threshold !== undefined) {
37
+ this.threshold = Number(ctx.threshold);
38
+ }
39
+ });
40
+ },
41
+ }));
42
+ </script>
43
+ ```
44
+
45
+ ## Outputs To The Agent
46
+
47
+ Use passive output when a control's current value should be visible to the agent
48
+ on the next turn without requiring a submit click:
49
+
50
+ ```html
51
+ <input
52
+ type="range"
53
+ min="0"
54
+ max="100"
55
+ x-model.number="threshold"
56
+ @input="agentNative.ui.output({ threshold }, { label: 'Threshold' })"
57
+ />
58
+ ```
59
+
60
+ `agentNative.ui.output(value, opts?)` writes application state at:
61
+
62
+ ```txt
63
+ inline-ui:<extensionId>:output
64
+ ```
65
+
66
+ The id is scoped automatically; the HTML author must not pass it. When the user
67
+ says "use that value", "apply the current setting", or "run it with the current
68
+ selection", read the value with:
69
+
70
+ ```ts
71
+ const output = await readAppState("inline-ui:<id>:output");
72
+ ```
73
+
74
+ The stored payload includes `value`, `updatedAt`, `extensionId`, and
75
+ `source: "inline-ui"`, plus optional `label`, `context`, or `meta`.
76
+
77
+ Use `agentNative.chat.send(message, opts?)` or `sendToAgentChat(message, opts?)`
78
+ for a visible Apply/Submit button that should send a prompt or selected value
79
+ into the chat.
80
+
81
+ ## App Data And State
82
+
83
+ - Prefer `appAction(name, params)` for template data and operations.
84
+ - Use `appFetch(path, options)` only for allowed framework endpoints under
85
+ `/_agent-native/*`, including application-state reads and writes.
86
+ - Do not call template `/api/*` routes from generated UI.
87
+ - Use `dbQuery`/`dbExec` only for known existing SQL tables when no action fits.
88
+ - Use `extensionFetch` for external APIs through the sandbox proxy and secrets.
89
+
90
+ ## Transient extensionData Boundary
91
+
92
+ For saved extensions, `extensionData` uses the authenticated database-backed
93
+ extension data API.
94
+
95
+ For transient inline UIs, `extensionData` is host `localStorage`. The agent
96
+ cannot read it, it does not sync across devices, it does not migrate when a UI
97
+ is promoted to a saved Extension, and the server does not garbage-collect it.
98
+ Use it only for throwaway local UI state.
99
+
100
+ For anything the agent or app must observe, use `agentNative.ui.output`,
101
+ application state through `appFetch`, an `appAction`, or
102
+ `agentNative.chat.send`.
103
+
104
+ ## Styling
105
+
106
+ Use semantic Tailwind classes so the iframe inherits the parent app theme:
107
+
108
+ - `bg-background`, `text-foreground`, `border-border`
109
+ - `bg-card`, `text-card-foreground`
110
+ - `bg-primary`, `text-primary-foreground`
111
+ - `text-muted-foreground`, `bg-accent`
112
+
113
+ Do not hardcode provider tokens, private data, or internal secrets in generated
114
+ HTML. Do not call an LLM directly from the iframe; route AI work through the
115
+ agent chat.