@stigmer/react 3.5.3 → 3.7.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 (283) hide show
  1. package/agent/AgentPicker.d.ts +10 -1
  2. package/agent/AgentPicker.d.ts.map +1 -1
  3. package/agent/AgentPicker.js +2 -2
  4. package/agent/AgentPicker.js.map +1 -1
  5. package/billing/CreditLedgerTable.d.ts.map +1 -1
  6. package/billing/CreditLedgerTable.js +2 -7
  7. package/billing/CreditLedgerTable.js.map +1 -1
  8. package/channel/AgentChannelsPanel.d.ts.map +1 -1
  9. package/channel/AgentChannelsPanel.js +22 -5
  10. package/channel/AgentChannelsPanel.js.map +1 -1
  11. package/channel/ChannelTemplatesDialog.d.ts +53 -0
  12. package/channel/ChannelTemplatesDialog.d.ts.map +1 -0
  13. package/channel/ChannelTemplatesDialog.js +150 -0
  14. package/channel/ChannelTemplatesDialog.js.map +1 -0
  15. package/channel/index.d.ts +8 -0
  16. package/channel/index.d.ts.map +1 -1
  17. package/channel/index.js +4 -0
  18. package/channel/index.js.map +1 -1
  19. package/channel/providers.d.ts +12 -0
  20. package/channel/providers.d.ts.map +1 -1
  21. package/channel/providers.js +14 -2
  22. package/channel/providers.js.map +1 -1
  23. package/channel/templatePresentation.d.ts +37 -0
  24. package/channel/templatePresentation.d.ts.map +1 -0
  25. package/channel/templatePresentation.js +69 -0
  26. package/channel/templatePresentation.js.map +1 -0
  27. package/channel/useChannelTemplateList.d.ts +64 -0
  28. package/channel/useChannelTemplateList.d.ts.map +1 -0
  29. package/channel/useChannelTemplateList.js +69 -0
  30. package/channel/useChannelTemplateList.js.map +1 -0
  31. package/channel/useChannelTemplateReadiness.d.ts +53 -0
  32. package/channel/useChannelTemplateReadiness.d.ts.map +1 -0
  33. package/channel/useChannelTemplateReadiness.js +42 -0
  34. package/channel/useChannelTemplateReadiness.js.map +1 -0
  35. package/composer/ComposerToolbar.d.ts +6 -1
  36. package/composer/ComposerToolbar.d.ts.map +1 -1
  37. package/composer/ComposerToolbar.js +2 -2
  38. package/composer/ComposerToolbar.js.map +1 -1
  39. package/composer/SessionComposer.d.ts +9 -0
  40. package/composer/SessionComposer.d.ts.map +1 -1
  41. package/composer/SessionComposer.js +13 -2
  42. package/composer/SessionComposer.js.map +1 -1
  43. package/dashboard/useDashboardFailedRuns.d.ts.map +1 -1
  44. package/dashboard/useDashboardFailedRuns.js +2 -0
  45. package/dashboard/useDashboardFailedRuns.js.map +1 -1
  46. package/execution/useCreateAgentExecution.d.ts +14 -0
  47. package/execution/useCreateAgentExecution.d.ts.map +1 -1
  48. package/execution/useCreateAgentExecution.js +5 -0
  49. package/execution/useCreateAgentExecution.js.map +1 -1
  50. package/index.d.ts +4 -2
  51. package/index.d.ts.map +1 -1
  52. package/index.js +10 -1
  53. package/index.js.map +1 -1
  54. package/internal/Pagination.d.ts +15 -0
  55. package/internal/Pagination.d.ts.map +1 -0
  56. package/internal/Pagination.js +20 -0
  57. package/internal/Pagination.js.map +1 -0
  58. package/library/useExportResource.d.ts +4 -3
  59. package/library/useExportResource.d.ts.map +1 -1
  60. package/library/useExportResource.js +1 -1
  61. package/library/useExportResource.js.map +1 -1
  62. package/models/ModelSelector.d.ts +26 -1
  63. package/models/ModelSelector.d.ts.map +1 -1
  64. package/models/ModelSelector.js +27 -6
  65. package/models/ModelSelector.js.map +1 -1
  66. package/models/index.d.ts +2 -0
  67. package/models/index.d.ts.map +1 -1
  68. package/models/index.js +1 -0
  69. package/models/index.js.map +1 -1
  70. package/models/registry.d.ts +10 -0
  71. package/models/registry.d.ts.map +1 -1
  72. package/models/registry.js +3 -0
  73. package/models/registry.js.map +1 -1
  74. package/models/service-tier.d.ts +27 -0
  75. package/models/service-tier.d.ts.map +1 -0
  76. package/models/service-tier.js +34 -0
  77. package/models/service-tier.js.map +1 -0
  78. package/organization/OrgProvider.d.ts +11 -4
  79. package/organization/OrgProvider.d.ts.map +1 -1
  80. package/organization/OrgProvider.js +28 -4
  81. package/organization/OrgProvider.js.map +1 -1
  82. package/package.json +4 -4
  83. package/resource-detail/useDeleteResource.d.ts +1 -1
  84. package/resource-detail/useDeleteResource.d.ts.map +1 -1
  85. package/resource-detail/useDeleteResource.js +5 -0
  86. package/resource-detail/useDeleteResource.js.map +1 -1
  87. package/resource-workbench/components/ResourceWorkbench.d.ts +10 -1
  88. package/resource-workbench/components/ResourceWorkbench.d.ts.map +1 -1
  89. package/resource-workbench/components/ResourceWorkbench.js +6 -2
  90. package/resource-workbench/components/ResourceWorkbench.js.map +1 -1
  91. package/resource-workbench/hooks/useResourceCollection.d.ts +8 -0
  92. package/resource-workbench/hooks/useResourceCollection.d.ts.map +1 -1
  93. package/resource-workbench/hooks/useResourceCollection.js +2 -2
  94. package/resource-workbench/hooks/useResourceCollection.js.map +1 -1
  95. package/schedule/CadenceField.d.ts +31 -0
  96. package/schedule/CadenceField.d.ts.map +1 -0
  97. package/schedule/CadenceField.js +116 -0
  98. package/schedule/CadenceField.js.map +1 -0
  99. package/schedule/ScheduleDetailView.d.ts +81 -0
  100. package/schedule/ScheduleDetailView.d.ts.map +1 -0
  101. package/schedule/ScheduleDetailView.js +648 -0
  102. package/schedule/ScheduleDetailView.js.map +1 -0
  103. package/schedule/ScheduleForm.d.ts +46 -0
  104. package/schedule/ScheduleForm.d.ts.map +1 -0
  105. package/schedule/ScheduleForm.js +214 -0
  106. package/schedule/ScheduleForm.js.map +1 -0
  107. package/schedule/ScheduleRowActions.d.ts +20 -0
  108. package/schedule/ScheduleRowActions.d.ts.map +1 -0
  109. package/schedule/ScheduleRowActions.js +54 -0
  110. package/schedule/ScheduleRowActions.js.map +1 -0
  111. package/schedule/ScheduleRunsTable.d.ts +72 -0
  112. package/schedule/ScheduleRunsTable.d.ts.map +1 -0
  113. package/schedule/ScheduleRunsTable.js +161 -0
  114. package/schedule/ScheduleRunsTable.js.map +1 -0
  115. package/schedule/TimeZoneField.d.ts +32 -0
  116. package/schedule/TimeZoneField.d.ts.map +1 -0
  117. package/schedule/TimeZoneField.js +104 -0
  118. package/schedule/TimeZoneField.js.map +1 -0
  119. package/schedule/cadence.d.ts +95 -0
  120. package/schedule/cadence.d.ts.map +1 -0
  121. package/schedule/cadence.js +242 -0
  122. package/schedule/cadence.js.map +1 -0
  123. package/schedule/index.d.ts +37 -0
  124. package/schedule/index.d.ts.map +1 -0
  125. package/schedule/index.js +19 -0
  126. package/schedule/index.js.map +1 -0
  127. package/schedule/scheduleColumns.d.ts +26 -0
  128. package/schedule/scheduleColumns.d.ts.map +1 -0
  129. package/schedule/scheduleColumns.js +77 -0
  130. package/schedule/scheduleColumns.js.map +1 -0
  131. package/schedule/scheduleListFn.d.ts +50 -0
  132. package/schedule/scheduleListFn.d.ts.map +1 -0
  133. package/schedule/scheduleListFn.js +65 -0
  134. package/schedule/scheduleListFn.js.map +1 -0
  135. package/schedule/scheduleState.d.ts +43 -0
  136. package/schedule/scheduleState.d.ts.map +1 -0
  137. package/schedule/scheduleState.js +67 -0
  138. package/schedule/scheduleState.js.map +1 -0
  139. package/schedule/useCreateSchedule.d.ts +57 -0
  140. package/schedule/useCreateSchedule.d.ts.map +1 -0
  141. package/schedule/useCreateSchedule.js +61 -0
  142. package/schedule/useCreateSchedule.js.map +1 -0
  143. package/schedule/useResumeSchedule.d.ts +30 -0
  144. package/schedule/useResumeSchedule.d.ts.map +1 -0
  145. package/schedule/useResumeSchedule.js +45 -0
  146. package/schedule/useResumeSchedule.js.map +1 -0
  147. package/schedule/useSchedule.d.ts +39 -0
  148. package/schedule/useSchedule.d.ts.map +1 -0
  149. package/schedule/useSchedule.js +44 -0
  150. package/schedule/useSchedule.js.map +1 -0
  151. package/schedule/useScheduleCount.d.ts +38 -0
  152. package/schedule/useScheduleCount.d.ts.map +1 -0
  153. package/schedule/useScheduleCount.js +30 -0
  154. package/schedule/useScheduleCount.js.map +1 -0
  155. package/schedule/useScheduleList.d.ts +48 -0
  156. package/schedule/useScheduleList.d.ts.map +1 -0
  157. package/schedule/useScheduleList.js +43 -0
  158. package/schedule/useScheduleList.js.map +1 -0
  159. package/schedule/useScheduleRuns.d.ts +44 -0
  160. package/schedule/useScheduleRuns.d.ts.map +1 -0
  161. package/schedule/useScheduleRuns.js +48 -0
  162. package/schedule/useScheduleRuns.js.map +1 -0
  163. package/schedule/useSetScheduleEnabled.d.ts +31 -0
  164. package/schedule/useSetScheduleEnabled.d.ts.map +1 -0
  165. package/schedule/useSetScheduleEnabled.js +53 -0
  166. package/schedule/useSetScheduleEnabled.js.map +1 -0
  167. package/schedule/useTriggerSchedule.d.ts +41 -0
  168. package/schedule/useTriggerSchedule.d.ts.map +1 -0
  169. package/schedule/useTriggerSchedule.js +62 -0
  170. package/schedule/useTriggerSchedule.js.map +1 -0
  171. package/schedule/useUpdateScheduleSpec.d.ts +49 -0
  172. package/schedule/useUpdateScheduleSpec.d.ts.map +1 -0
  173. package/schedule/useUpdateScheduleSpec.js +70 -0
  174. package/schedule/useUpdateScheduleSpec.js.map +1 -0
  175. package/search/useResourceCount.d.ts +2 -1
  176. package/search/useResourceCount.d.ts.map +1 -1
  177. package/search/useResourceCount.js +6 -1
  178. package/search/useResourceCount.js.map +1 -1
  179. package/session/useNewSessionFlow.d.ts.map +1 -1
  180. package/session/useNewSessionFlow.js +1 -0
  181. package/session/useNewSessionFlow.js.map +1 -1
  182. package/session/useSessionConversation.d.ts +11 -0
  183. package/session/useSessionConversation.d.ts.map +1 -1
  184. package/session/useSessionConversation.js +1 -0
  185. package/session/useSessionConversation.js.map +1 -1
  186. package/session/useSessionPageFlow.d.ts.map +1 -1
  187. package/session/useSessionPageFlow.js +1 -0
  188. package/session/useSessionPageFlow.js.map +1 -1
  189. package/src/agent/AgentPicker.tsx +13 -1
  190. package/src/billing/CreditLedgerTable.tsx +3 -42
  191. package/src/channel/AgentChannelsPanel.tsx +43 -1
  192. package/src/channel/ChannelTemplatesDialog.tsx +433 -0
  193. package/src/channel/__tests__/AgentChannelsPanel.test.tsx +73 -0
  194. package/src/channel/__tests__/ChannelTemplatesDialog.test.tsx +292 -0
  195. package/src/channel/__tests__/providers.test.ts +9 -0
  196. package/src/channel/__tests__/templatePresentation.test.ts +96 -0
  197. package/src/channel/__tests__/useChannelTemplateList.test.tsx +216 -0
  198. package/src/channel/__tests__/useChannelTemplateReadiness.test.tsx +124 -0
  199. package/src/channel/index.ts +15 -0
  200. package/src/channel/providers.ts +26 -2
  201. package/src/channel/templatePresentation.ts +82 -0
  202. package/src/channel/useChannelTemplateList.ts +123 -0
  203. package/src/channel/useChannelTemplateReadiness.ts +69 -0
  204. package/src/composer/ComposerToolbar.tsx +9 -0
  205. package/src/composer/SessionComposer.tsx +24 -1
  206. package/src/composer/__tests__/SessionComposer-serviceTier.test.tsx +156 -0
  207. package/src/dashboard/__tests__/useDashboardFailedRuns.test.tsx +106 -0
  208. package/src/dashboard/useDashboardFailedRuns.ts +2 -0
  209. package/src/execution/useCreateAgentExecution.ts +18 -0
  210. package/src/index.ts +70 -0
  211. package/src/internal/Pagination.tsx +72 -0
  212. package/src/library/useExportResource.ts +4 -3
  213. package/src/models/ModelSelector.tsx +100 -3
  214. package/src/models/__tests__/ModelSelector-serviceTier.test.tsx +172 -0
  215. package/src/models/__tests__/useModelRegistry.test.tsx +15 -0
  216. package/src/models/index.ts +2 -0
  217. package/src/models/registry.ts +16 -0
  218. package/src/models/service-tier.ts +49 -0
  219. package/src/organization/OrgProvider.tsx +29 -4
  220. package/src/organization/__tests__/OrgProvider.orgSwitch.test.tsx +89 -0
  221. package/src/resource-detail/useDeleteResource.ts +11 -1
  222. package/src/resource-workbench/__tests__/ResourceWorkbench.test.tsx +112 -0
  223. package/src/resource-workbench/components/ResourceWorkbench.tsx +32 -15
  224. package/src/resource-workbench/hooks/useResourceCollection.ts +11 -1
  225. package/src/schedule/CadenceField.tsx +365 -0
  226. package/src/schedule/ScheduleDetailView.tsx +1651 -0
  227. package/src/schedule/ScheduleForm.tsx +615 -0
  228. package/src/schedule/ScheduleRowActions.tsx +124 -0
  229. package/src/schedule/ScheduleRunsTable.tsx +424 -0
  230. package/src/schedule/TimeZoneField.tsx +199 -0
  231. package/src/schedule/__tests__/ScheduleDetailView.test.tsx +683 -0
  232. package/src/schedule/__tests__/cadence.test.ts +278 -0
  233. package/src/schedule/__tests__/scheduleColumnsRowActions.test.tsx +176 -0
  234. package/src/schedule/__tests__/scheduleCreation.test.tsx +537 -0
  235. package/src/schedule/__tests__/scheduleHooks.test.tsx +399 -0
  236. package/src/schedule/__tests__/scheduleListFn.test.ts +128 -0
  237. package/src/schedule/__tests__/scheduleState.test.ts +133 -0
  238. package/src/schedule/cadence.ts +298 -0
  239. package/src/schedule/index.ts +69 -0
  240. package/src/schedule/scheduleColumns.tsx +118 -0
  241. package/src/schedule/scheduleListFn.ts +108 -0
  242. package/src/schedule/scheduleState.ts +96 -0
  243. package/src/schedule/useCreateSchedule.ts +88 -0
  244. package/src/schedule/useResumeSchedule.ts +67 -0
  245. package/src/schedule/useSchedule.ts +67 -0
  246. package/src/schedule/useScheduleCount.ts +57 -0
  247. package/src/schedule/useScheduleList.ts +83 -0
  248. package/src/schedule/useScheduleRuns.ts +93 -0
  249. package/src/schedule/useSetScheduleEnabled.ts +84 -0
  250. package/src/schedule/useTriggerSchedule.ts +90 -0
  251. package/src/schedule/useUpdateScheduleSpec.ts +108 -0
  252. package/src/search/__tests__/useResourceCount.test.tsx +89 -0
  253. package/src/search/useResourceCount.ts +8 -2
  254. package/src/session/useNewSessionFlow.ts +1 -0
  255. package/src/session/useSessionConversation.ts +12 -0
  256. package/src/session/useSessionPageFlow.ts +1 -0
  257. package/src/workflow/WorkflowDashboard.tsx +1 -0
  258. package/src/workflow/__tests__/inspector-forms.test.tsx +119 -2
  259. package/src/workflow/inspector/forms/AgentCallForm.tsx +260 -37
  260. package/src/workflow/inspector/tabs/RuntimeTab.tsx +72 -33
  261. package/src/workflow/starter-workflow-yaml.ts +2 -1
  262. package/src/workflow/useWorkflowExecutionList.ts +13 -2
  263. package/styles.css +1 -1
  264. package/workflow/CanvasTransitionEdge.d.ts +1 -1
  265. package/workflow/WorkflowDashboard.d.ts.map +1 -1
  266. package/workflow/WorkflowDashboard.js +1 -0
  267. package/workflow/WorkflowDashboard.js.map +1 -1
  268. package/workflow/inspector/forms/AgentCallForm.d.ts +18 -2
  269. package/workflow/inspector/forms/AgentCallForm.d.ts.map +1 -1
  270. package/workflow/inspector/forms/AgentCallForm.js +87 -9
  271. package/workflow/inspector/forms/AgentCallForm.js.map +1 -1
  272. package/workflow/inspector/tabs/RuntimeTab.d.ts +2 -1
  273. package/workflow/inspector/tabs/RuntimeTab.d.ts.map +1 -1
  274. package/workflow/inspector/tabs/RuntimeTab.js +31 -5
  275. package/workflow/inspector/tabs/RuntimeTab.js.map +1 -1
  276. package/workflow/starter-workflow-yaml.d.ts +1 -1
  277. package/workflow/starter-workflow-yaml.d.ts.map +1 -1
  278. package/workflow/starter-workflow-yaml.js +2 -1
  279. package/workflow/starter-workflow-yaml.js.map +1 -1
  280. package/workflow/useWorkflowExecutionList.d.ts +10 -0
  281. package/workflow/useWorkflowExecutionList.d.ts.map +1 -1
  282. package/workflow/useWorkflowExecutionList.js +3 -2
  283. package/workflow/useWorkflowExecutionList.js.map +1 -1
package/channel/index.js CHANGED
@@ -2,6 +2,7 @@ export { useAgentChannelList } from "./useAgentChannelList.js";
2
2
  export { useOrgAgentChannelList } from "./useOrgAgentChannelList.js";
3
3
  export { CHANNEL_PROVIDERS, channelProviderOf } from "./providers.js";
4
4
  export { channelPresentationOf, DEFAULT_CHANNEL_PRESENTATION, } from "./providerPresentation.js";
5
+ export { templateStatusPhase, splitTemplateBody } from "./templatePresentation.js";
5
6
  export { useAgentChannel } from "./useAgentChannel.js";
6
7
  export { useSaveAgentChannel, agentChannelToInput } from "./useSaveAgentChannel.js";
7
8
  export { useCreateAgentChannel } from "./useCreateAgentChannel.js";
@@ -9,11 +10,14 @@ export { useDeleteAgentChannel } from "./useDeleteAgentChannel.js";
9
10
  export { useConnectSlackChannel } from "./useConnectSlackChannel.js";
10
11
  export { useInstallChannel } from "./useInstallChannel.js";
11
12
  export { useChannelToolReadiness } from "./useChannelToolReadiness.js";
13
+ export { useChannelTemplateReadiness } from "./useChannelTemplateReadiness.js";
12
14
  export { useChannelSessions } from "./useChannelSessions.js";
15
+ export { useChannelTemplateList } from "./useChannelTemplateList.js";
13
16
  export { AgentChannelsPanel } from "./AgentChannelsPanel.js";
14
17
  export { ConnectSlackDialog } from "./ConnectSlackDialog.js";
15
18
  export { ConnectWhatsAppDialog } from "./ConnectWhatsAppDialog.js";
16
19
  export { ChannelCredentialsDialog } from "./ChannelCredentialsDialog.js";
17
20
  export { ChannelToolCredentials } from "./ChannelToolCredentials.js";
18
21
  export { ChannelConversationsDialog } from "./ChannelConversationsDialog.js";
22
+ export { ChannelTemplatesDialog } from "./ChannelTemplatesDialog.js";
19
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/channel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAOtE,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAMrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAM3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/channel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAOtE,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAMrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAM3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAG/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAMrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAG7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -40,6 +40,18 @@ export interface ChannelProviderDescriptor {
40
40
  }>;
41
41
  /** How this provider's install flow runs. */
42
42
  readonly installStyle: ChannelInstallStyle;
43
+ /**
44
+ * Whether this provider has a message-template registry the console
45
+ * can list (`listTemplates`). Mirrors the server's proactive-sender
46
+ * registry, which is the de-facto provider filter behind that RPC —
47
+ * a provider with no registered sender answers `PROVIDER_UNSUPPORTED`.
48
+ *
49
+ * `false` for Slack is not a gap: Slack has no template concept at
50
+ * all, so consumers hide the Templates affordance entirely rather
51
+ * than disable it — a disabled item would falsely imply it may work
52
+ * there one day.
53
+ */
54
+ readonly supportsMessageTemplates: boolean;
43
55
  }
44
56
  /**
45
57
  * All channel providers this UI can render, in display order.
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/channel/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAExD;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;CAC5C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,yBAAyB,EAGjE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,yBAAyB,GAAG,IAAI,CAElC"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/channel/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAExD;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;CAC5C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,yBAAyB,EAejE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,yBAAyB,GAAG,IAAI,CAElC"}
@@ -10,8 +10,20 @@ import { WhatsAppMarkIcon } from "./WhatsAppMarkIcon.js";
10
10
  * demos. A third entry is the signal to fold these into a provider menu.
11
11
  */
12
12
  export const CHANNEL_PROVIDERS = [
13
- { id: "slack", label: "Slack", Icon: SlackMarkIcon, installStyle: "redirect" },
14
- { id: "whatsapp", label: "WhatsApp", Icon: WhatsAppMarkIcon, installStyle: "direct" },
13
+ {
14
+ id: "slack",
15
+ label: "Slack",
16
+ Icon: SlackMarkIcon,
17
+ installStyle: "redirect",
18
+ supportsMessageTemplates: false,
19
+ },
20
+ {
21
+ id: "whatsapp",
22
+ label: "WhatsApp",
23
+ Icon: WhatsAppMarkIcon,
24
+ installStyle: "direct",
25
+ supportsMessageTemplates: true,
26
+ },
15
27
  ];
16
28
  /**
17
29
  * Resolve a provider descriptor from a `provider_config` oneof case name.
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/channel/providers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA6CzD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAyC;IACrE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE;IAC9E,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE;CACtF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAgC;IAEhC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,IAAI,IAAI,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/channel/providers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAyDzD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAyC;IACrE;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,UAAU;QACxB,wBAAwB,EAAE,KAAK;KAChC;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,gBAAgB;QACtB,YAAY,EAAE,QAAQ;QACtB,wBAAwB,EAAE,IAAI;KAC/B;CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAgC;IAEhC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,IAAI,IAAI,CAAC;AACtE,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { StatusPhase } from "../resource-workbench/types.js";
2
+ /**
3
+ * Display helpers for provider message templates — the template
4
+ * counterpart of {@link ChannelProviderPresentation}'s module split:
5
+ * `ChannelTemplatesDialog` renders, this module decides how a
6
+ * provider-verbatim template projects onto the SDK's display
7
+ * vocabulary. Pure functions, one writer each.
8
+ */
9
+ /**
10
+ * Map a provider-verbatim template status onto a {@link StatusPhase}
11
+ * for `StatusBadge` coloring.
12
+ *
13
+ * The wire carries the provider's own vocabulary, never a Stigmer enum
14
+ * (DD-003 D6) — so the caller renders the verbatim status string as the
15
+ * badge label and uses this phase only for the color. WhatsApp's
16
+ * observed set exceeds the documented five (IN_APPEAL, LIMIT_EXCEEDED,
17
+ * PENDING_DELETION, DELETED occur, and Meta can add more), so unknown
18
+ * statuses deliberately land on `draft` — a neutral tone that renders
19
+ * the provider's word without claiming to understand it.
20
+ */
21
+ export declare function templateStatusPhase(status: string): StatusPhase;
22
+ /** One segment of a template body: literal text or a `{{...}}` placeholder. */
23
+ export interface TemplateBodySegment {
24
+ readonly kind: "text" | "placeholder";
25
+ /** The verbatim slice, braces included for placeholders (`"{{1}}"`). */
26
+ readonly value: string;
27
+ }
28
+ /**
29
+ * Split a template body into text and placeholder segments so the
30
+ * placeholders — the parts the agent fills at send time — can render
31
+ * visually distinct from the literal copy.
32
+ *
33
+ * The concatenation of all segment values is always the input,
34
+ * verbatim: this function classifies, it never rewrites.
35
+ */
36
+ export declare function splitTemplateBody(body: string): readonly TemplateBodySegment[];
37
+ //# sourceMappingURL=templatePresentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templatePresentation.d.ts","sourceRoot":"","sources":["../../src/channel/templatePresentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE;;;;;;GAMG;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAmB/D;AAED,+EAA+E;AAC/E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC;IACtC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AASD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX,SAAS,mBAAmB,EAAE,CAchC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Display helpers for provider message templates — the template
3
+ * counterpart of {@link ChannelProviderPresentation}'s module split:
4
+ * `ChannelTemplatesDialog` renders, this module decides how a
5
+ * provider-verbatim template projects onto the SDK's display
6
+ * vocabulary. Pure functions, one writer each.
7
+ */
8
+ /**
9
+ * Map a provider-verbatim template status onto a {@link StatusPhase}
10
+ * for `StatusBadge` coloring.
11
+ *
12
+ * The wire carries the provider's own vocabulary, never a Stigmer enum
13
+ * (DD-003 D6) — so the caller renders the verbatim status string as the
14
+ * badge label and uses this phase only for the color. WhatsApp's
15
+ * observed set exceeds the documented five (IN_APPEAL, LIMIT_EXCEEDED,
16
+ * PENDING_DELETION, DELETED occur, and Meta can add more), so unknown
17
+ * statuses deliberately land on `draft` — a neutral tone that renders
18
+ * the provider's word without claiming to understand it.
19
+ */
20
+ export function templateStatusPhase(status) {
21
+ switch (status) {
22
+ case "APPROVED":
23
+ return "ready";
24
+ case "PENDING":
25
+ case "IN_APPEAL":
26
+ return "pending";
27
+ case "PAUSED":
28
+ case "LIMIT_EXCEEDED":
29
+ return "degraded";
30
+ case "REJECTED":
31
+ case "DISABLED":
32
+ return "failed";
33
+ case "PENDING_DELETION":
34
+ case "DELETED":
35
+ return "disabled";
36
+ default:
37
+ return "draft";
38
+ }
39
+ }
40
+ /**
41
+ * The provider's placeholder shape: `{{1}}` (positional) or
42
+ * `{{customer_name}}` (named). Single braces and unbalanced braces are
43
+ * literal text — the provider would not have accepted them either.
44
+ */
45
+ const PLACEHOLDER = /\{\{\s*[A-Za-z0-9_]+\s*\}\}/g;
46
+ /**
47
+ * Split a template body into text and placeholder segments so the
48
+ * placeholders — the parts the agent fills at send time — can render
49
+ * visually distinct from the literal copy.
50
+ *
51
+ * The concatenation of all segment values is always the input,
52
+ * verbatim: this function classifies, it never rewrites.
53
+ */
54
+ export function splitTemplateBody(body) {
55
+ const segments = [];
56
+ let lastIndex = 0;
57
+ for (const match of body.matchAll(PLACEHOLDER)) {
58
+ if (match.index > lastIndex) {
59
+ segments.push({ kind: "text", value: body.slice(lastIndex, match.index) });
60
+ }
61
+ segments.push({ kind: "placeholder", value: match[0] });
62
+ lastIndex = match.index + match[0].length;
63
+ }
64
+ if (lastIndex < body.length) {
65
+ segments.push({ kind: "text", value: body.slice(lastIndex) });
66
+ }
67
+ return segments;
68
+ }
69
+ //# sourceMappingURL=templatePresentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templatePresentation.js","sourceRoot":"","sources":["../../src/channel/templatePresentation.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS,CAAC;QACf,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,gBAAgB;YACnB,OAAO,UAAU,CAAC;QACpB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC;QAClB,KAAK,kBAAkB,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AASD;;;;GAIG;AACH,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY;IAEZ,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAC3C,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC;IACD,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,64 @@
1
+ import type { ChannelTemplate } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/message_io_pb";
2
+ /** Options for {@link useChannelTemplateList}. */
3
+ export interface UseChannelTemplateListOptions {
4
+ /**
5
+ * When `true`, only templates the provider will accept for sending
6
+ * are returned (WhatsApp: status APPROVED). The console leaves it
7
+ * unset to render every status with its badge; agent-composition
8
+ * surfaces set it so a model never drafts against a paused or
9
+ * pending template.
10
+ */
11
+ readonly approvedOnly?: boolean;
12
+ }
13
+ /** Return value of {@link useChannelTemplateList}. */
14
+ export interface UseChannelTemplateListReturn {
15
+ /**
16
+ * The channel provider's templates, verbatim, in provider order.
17
+ * Empty while loading, on error, and when the registry answered with
18
+ * no templates — `templates.length === 0 && !isLoading && !error`
19
+ * means the provider reported none, which callers should phrase as
20
+ * "none found" rather than "none exist" (an empty success is
21
+ * indistinguishable from a filtered or truncated one).
22
+ */
23
+ readonly templates: readonly ChannelTemplate[];
24
+ /** `true` while the initial fetch is in flight and no data is shown. */
25
+ readonly isLoading: boolean;
26
+ /** `true` while a background refetch is in flight and stale data is shown. */
27
+ readonly isRefetching: boolean;
28
+ /** Error from the last failed request, or `null` when healthy. */
29
+ readonly error: Error | null;
30
+ /** Re-fetch the templates from the server. */
31
+ readonly refetch: () => void;
32
+ }
33
+ /**
34
+ * Data hook that lists a channel's message templates as the channel's
35
+ * provider registry reports them (`listTemplates`) — every field
36
+ * provider-verbatim, including approval `status`, the provider's
37
+ * `rejectionReason`, and Stigmer's own `unsupportedReason` (why this
38
+ * platform version cannot send an otherwise-approved template).
39
+ *
40
+ * The channel is addressed by `slug` + `org` (not id), because that is
41
+ * the RPC's key — the provider registry is derived from the channel's
42
+ * phone number, not stored on any Stigmer resource. Pass an empty
43
+ * `channelSlug` or `org` to skip fetching (stable no-op).
44
+ *
45
+ * While any entry is PENDING the hook polls every 60 seconds — the
46
+ * server's registry-cache TTL, so a faster interval would only re-read
47
+ * a cached answer. There is deliberately no `refetchInterval` option:
48
+ * the pending-only conditional poll is the hook's policy, and
49
+ * `approvedOnly` (a wire field) is the only knob exposed.
50
+ *
51
+ * Results are never cached across mounts: a template's approval status
52
+ * can change on the provider's side at any time, and rendering a stale
53
+ * "APPROVED" is exactly what this surface must not do.
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * const { templates, isLoading, error } = useChannelTemplateList(
58
+ * channel.metadata?.slug ?? "",
59
+ * channel.metadata?.org ?? "",
60
+ * );
61
+ * ```
62
+ */
63
+ export declare function useChannelTemplateList(channelSlug: string, org: string, options?: UseChannelTemplateListOptions): UseChannelTemplateListReturn;
64
+ //# sourceMappingURL=useChannelTemplateList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChannelTemplateList.d.ts","sourceRoot":"","sources":["../../src/channel/useChannelTemplateList.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kEAAkE,CAAC;AAKxG,kDAAkD;AAClD,MAAM,WAAW,6BAA6B;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,sDAAsD;AACtD,MAAM,WAAW,4BAA4B;IAC3C;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,6BAA6B,GACtC,4BAA4B,CAuC9B"}
@@ -0,0 +1,69 @@
1
+ "use client";
2
+ import { useEffect, useState } from "react";
3
+ import { create } from "@bufbuild/protobuf";
4
+ import { ListChannelTemplatesInputSchema } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/message_io_pb";
5
+ import { useStigmer } from "../hooks.js";
6
+ import { useFetch } from "../internal/useFetch.js";
7
+ /**
8
+ * How often to re-read the registry while any template is PENDING.
9
+ * Matches the server's template-cache TTL (60s) — polling faster only
10
+ * re-reads a cached answer.
11
+ */
12
+ const PENDING_POLL_INTERVAL_MS = 60_000;
13
+ /**
14
+ * Data hook that lists a channel's message templates as the channel's
15
+ * provider registry reports them (`listTemplates`) — every field
16
+ * provider-verbatim, including approval `status`, the provider's
17
+ * `rejectionReason`, and Stigmer's own `unsupportedReason` (why this
18
+ * platform version cannot send an otherwise-approved template).
19
+ *
20
+ * The channel is addressed by `slug` + `org` (not id), because that is
21
+ * the RPC's key — the provider registry is derived from the channel's
22
+ * phone number, not stored on any Stigmer resource. Pass an empty
23
+ * `channelSlug` or `org` to skip fetching (stable no-op).
24
+ *
25
+ * While any entry is PENDING the hook polls every 60 seconds — the
26
+ * server's registry-cache TTL, so a faster interval would only re-read
27
+ * a cached answer. There is deliberately no `refetchInterval` option:
28
+ * the pending-only conditional poll is the hook's policy, and
29
+ * `approvedOnly` (a wire field) is the only knob exposed.
30
+ *
31
+ * Results are never cached across mounts: a template's approval status
32
+ * can change on the provider's side at any time, and rendering a stale
33
+ * "APPROVED" is exactly what this surface must not do.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * const { templates, isLoading, error } = useChannelTemplateList(
38
+ * channel.metadata?.slug ?? "",
39
+ * channel.metadata?.org ?? "",
40
+ * );
41
+ * ```
42
+ */
43
+ export function useChannelTemplateList(channelSlug, org, options) {
44
+ const stigmer = useStigmer();
45
+ const approvedOnly = options?.approvedOnly ?? false;
46
+ // The pending-only poll rides useFetch's own guarded interval (the
47
+ // ONE polling implementation) rather than a second setInterval here.
48
+ // The interval cannot be derived inline — it depends on the data the
49
+ // same useFetch call returns — so it round-trips through state: data
50
+ // arrives, the effect below flips the interval, useFetch re-arms.
51
+ const [pollInterval, setPollInterval] = useState(false);
52
+ const fetchFn = channelSlug && org
53
+ ? async () => {
54
+ const result = await stigmer.agentChannel.listTemplates(create(ListChannelTemplatesInputSchema, {
55
+ channel: channelSlug,
56
+ org,
57
+ approvedOnly,
58
+ }));
59
+ return result.entries;
60
+ }
61
+ : null;
62
+ const { data: templates, isLoading, isRefetching, error, refetch } = useFetch(fetchFn, [channelSlug, org, approvedOnly, stigmer], [], { refetchInterval: pollInterval });
63
+ const hasPending = templates.some((t) => t.status === "PENDING");
64
+ useEffect(() => {
65
+ setPollInterval(hasPending ? PENDING_POLL_INTERVAL_MS : false);
66
+ }, [hasPending]);
67
+ return { templates, isLoading, isRefetching, error, refetch };
68
+ }
69
+ //# sourceMappingURL=useChannelTemplateList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChannelTemplateList.js","sourceRoot":"","sources":["../../src/channel/useChannelTemplateList.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,kEAAkE,CAAC;AACnH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAmCnD;;;;GAIG;AACH,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAmB,EACnB,GAAW,EACX,OAAuC;IAEvC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,KAAK,CAAC;IAEpD,mEAAmE;IACnE,qEAAqE;IACrE,qEAAqE;IACrE,qEAAqE;IACrE,kEAAkE;IAClE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAiB,KAAK,CAAC,CAAC;IAExE,MAAM,OAAO,GACX,WAAW,IAAI,GAAG;QAChB,CAAC,CAAC,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,aAAa,CACrD,MAAM,CAAC,+BAA+B,EAAE;gBACtC,OAAO,EAAE,WAAW;gBACpB,GAAG;gBACH,YAAY;aACb,CAAC,CACH,CAAC;YACF,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QACH,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAChE,QAAQ,CACN,OAAO,EACP,CAAC,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,EACzC,EAAuB,EACvB,EAAE,eAAe,EAAE,YAAY,EAAE,CAClC,CAAC;IAEJ,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACjE,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAChE,CAAC"}
@@ -0,0 +1,53 @@
1
+ import type { AgentChannel } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/api_pb";
2
+ /**
3
+ * Whether a channel can answer a template-registry read
4
+ * (`listTemplates`), and if not, which precondition fails first.
5
+ *
6
+ * - `cloud-only` — the deployment is not cloud; the template registry
7
+ * is part of the cloud channel runtime.
8
+ * - `not-installed` — the provider install has not completed (covers
9
+ * both pending and revoked; render the per-provider
10
+ * `describeChannel` sentence, which already distinguishes them).
11
+ * - `channel-off` — the owner's serving switch (`spec.enabled`) is off.
12
+ * - `not-proactive` — `spec.proactive_messaging_enabled` is not set;
13
+ * business-initiated messaging (and with it the template surface)
14
+ * is not granted on this channel.
15
+ * - `ready` — the read can be made.
16
+ */
17
+ export type ChannelTemplateReadiness = {
18
+ readonly status: "cloud-only";
19
+ } | {
20
+ readonly status: "not-installed";
21
+ } | {
22
+ readonly status: "channel-off";
23
+ } | {
24
+ readonly status: "not-proactive";
25
+ } | {
26
+ readonly status: "ready";
27
+ };
28
+ /**
29
+ * Resolve whether a channel's template registry can be read, without a
30
+ * network call — the courtesy pre-check for the Templates surface.
31
+ *
32
+ * Mirrors the server's own gate order for `listTemplates`
33
+ * (`ChannelMessagingReach.resolveDirect`: installed → enabled →
34
+ * proactive grant), answering from fields already on the fetched
35
+ * {@link AgentChannel}. The server stays authoritative: a `ready`
36
+ * verdict here only means the call is worth making, and whatever the
37
+ * server then says wins.
38
+ *
39
+ * Two shape choices are deliberate. `channel-off` and `not-proactive`
40
+ * are split although the server collapses them into one refusal —
41
+ * their fixes differ (flip the card's serving switch vs. grant
42
+ * `proactive_messaging_enabled`). And `not-installed` stays coarse
43
+ * across pending/revoked, because `providerPresentation`'s
44
+ * `describeChannel` already renders the right sentence for each.
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * const readiness = useChannelTemplateReadiness(channel);
49
+ * if (readiness.status !== "ready") return <TeachingState ... />;
50
+ * ```
51
+ */
52
+ export declare function useChannelTemplateReadiness(channel: AgentChannel): ChannelTemplateReadiness;
53
+ //# sourceMappingURL=useChannelTemplateReadiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChannelTemplateReadiness.d.ts","sourceRoot":"","sources":["../../src/channel/useChannelTemplateReadiness.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;AAI9F;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,wBAAwB,GAChC;IAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACjC;IAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACpC;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAClC;IAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACpC;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,YAAY,GACpB,wBAAwB,CAc1B"}
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ import { AgentChannelInstallState } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/status_pb";
3
+ import { useDeploymentMode } from "../deployment-mode.js";
4
+ /**
5
+ * Resolve whether a channel's template registry can be read, without a
6
+ * network call — the courtesy pre-check for the Templates surface.
7
+ *
8
+ * Mirrors the server's own gate order for `listTemplates`
9
+ * (`ChannelMessagingReach.resolveDirect`: installed → enabled →
10
+ * proactive grant), answering from fields already on the fetched
11
+ * {@link AgentChannel}. The server stays authoritative: a `ready`
12
+ * verdict here only means the call is worth making, and whatever the
13
+ * server then says wins.
14
+ *
15
+ * Two shape choices are deliberate. `channel-off` and `not-proactive`
16
+ * are split although the server collapses them into one refusal —
17
+ * their fixes differ (flip the card's serving switch vs. grant
18
+ * `proactive_messaging_enabled`). And `not-installed` stays coarse
19
+ * across pending/revoked, because `providerPresentation`'s
20
+ * `describeChannel` already renders the right sentence for each.
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * const readiness = useChannelTemplateReadiness(channel);
25
+ * if (readiness.status !== "ready") return <TeachingState ... />;
26
+ * ```
27
+ */
28
+ export function useChannelTemplateReadiness(channel) {
29
+ const deploymentMode = useDeploymentMode();
30
+ if (deploymentMode !== "cloud")
31
+ return { status: "cloud-only" };
32
+ if (channel.status?.installState !== AgentChannelInstallState.installed) {
33
+ return { status: "not-installed" };
34
+ }
35
+ if (!channel.spec?.enabled)
36
+ return { status: "channel-off" };
37
+ if (!channel.spec.proactiveMessagingEnabled) {
38
+ return { status: "not-proactive" };
39
+ }
40
+ return { status: "ready" };
41
+ }
42
+ //# sourceMappingURL=useChannelTemplateReadiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChannelTemplateReadiness.js","sourceRoot":"","sources":["../../src/channel/useChannelTemplateReadiness.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,wBAAwB,EAAE,MAAM,8DAA8D,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAwB1D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAqB;IAErB,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,IAAI,cAAc,KAAK,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAChE,IACE,OAAO,CAAC,MAAM,EAAE,YAAY,KAAK,wBAAwB,CAAC,SAAS,EACnE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC5C,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { type ConfigureMenuItem } from "./ConfigureMenu.js";
2
2
  import type { HarnessOption } from "../models/harness.js";
3
+ import type { ServiceTierOption } from "../models/service-tier.js";
3
4
  import { type InteractionModeOption } from "./InteractionModePicker.js";
4
5
  export interface ComposerToolbarProps {
5
6
  readonly disabled: boolean;
@@ -23,6 +24,10 @@ export interface ComposerToolbarProps {
23
24
  readonly showModelSelector: boolean;
24
25
  readonly modelId?: string;
25
26
  readonly onModelChange: (id: string) => void;
27
+ /** Current service tier for the selected model (#357). */
28
+ readonly serviceTier?: ServiceTierOption;
29
+ /** Enables the fast-tier toggle inside the model selector. */
30
+ readonly onServiceTierChange?: (tier: ServiceTierOption) => void;
26
31
  readonly showWorkspace: boolean;
27
32
  readonly workspaceCount: number;
28
33
  /** Pre-built workspace editor content for the popover. */
@@ -61,5 +66,5 @@ export interface ComposerToolbarProps {
61
66
  * Gestalt proximity (left = "what," right = "do"), and Nielsen H8 (minimal
62
67
  * visual weight for secondary controls).
63
68
  */
64
- export declare function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, onStop, isStopping, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, onWorkspaceDirectAction, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showHarnessSelector, harness, onHarnessChange, showInteractionModePicker, interactionMode, onInteractionModeChange, showModelSelector, modelId, onModelChange, }: ComposerToolbarProps): import("react/jsx-runtime").JSX.Element;
69
+ export declare function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, onStop, isStopping, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, onWorkspaceDirectAction, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showHarnessSelector, harness, onHarnessChange, showInteractionModePicker, interactionMode, onInteractionModeChange, showModelSelector, modelId, onModelChange, serviceTier, onServiceTierChange, }: ComposerToolbarProps): import("react/jsx-runtime").JSX.Element;
65
70
  //# sourceMappingURL=ComposerToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerToolbar.d.ts","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAS/F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAI9B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAE3D,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACjD,QAAQ,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAExE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAI7C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE9C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IAEnC,QAAQ,CAAC,cAAc,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,gEAAgE;IAChE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CACjE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAkB,EAClB,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,OAAO,EACP,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,OAAO,EACP,aAAa,GACd,EAAE,oBAAoB,2CAqItB"}
1
+ {"version":3,"file":"ComposerToolbar.d.ts","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"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"}
@@ -23,9 +23,9 @@ import { PaperclipIcon, WorkspaceIcon, ArrowUpIcon, SpinnerIcon, StopIcon, } fro
23
23
  * Gestalt proximity (left = "what," right = "do"), and Nielsen H8 (minimal
24
24
  * visual weight for secondary controls).
25
25
  */
26
- export function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, onStop, isStopping = false, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, onWorkspaceDirectAction, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showHarnessSelector, harness, onHarnessChange, showInteractionModePicker, interactionMode, onInteractionModeChange, showModelSelector, modelId, onModelChange, }) {
26
+ export function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, onStop, isStopping = false, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, onWorkspaceDirectAction, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showHarnessSelector, harness, onHarnessChange, showInteractionModePicker, interactionMode, onInteractionModeChange, showModelSelector, modelId, onModelChange, serviceTier, onServiceTierChange, }) {
27
27
  const showHarnessSeparate = showHarnessSelector && !showModelSelector;
28
- return (_jsxs("div", { className: "flex items-center justify-between gap-2 border-t border-border-muted px-3 py-2", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-1.5", children: [showInteractionModePicker && (_jsx(InteractionModePicker, { value: interactionMode ?? "agent", onValueChange: onInteractionModeChange, disabled: disabled })), showHarnessSeparate && (_jsx(HarnessSelector, { value: harness ?? "native", onValueChange: onHarnessChange, disabled: disabled })), showModelSelector && (_jsx(ModelSelector, { value: modelId, onValueChange: onModelChange, harness: showHarnessSelector ? undefined : harness, initialHarness: showHarnessSelector ? harness : undefined, onHarnessChange: showHarnessSelector ? onHarnessChange : undefined, disabled: disabled }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [showWorkspace && (onWorkspaceDirectAction
28
+ return (_jsxs("div", { className: "flex items-center justify-between gap-2 border-t border-border-muted px-3 py-2", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-1.5", children: [showInteractionModePicker && (_jsx(InteractionModePicker, { value: interactionMode ?? "agent", onValueChange: onInteractionModeChange, disabled: disabled })), showHarnessSeparate && (_jsx(HarnessSelector, { value: harness ?? "native", onValueChange: onHarnessChange, disabled: disabled })), showModelSelector && (_jsx(ModelSelector, { value: modelId, onValueChange: onModelChange, harness: showHarnessSelector ? undefined : harness, initialHarness: showHarnessSelector ? harness : undefined, onHarnessChange: showHarnessSelector ? onHarnessChange : undefined, serviceTier: serviceTier, onServiceTierChange: onServiceTierChange, disabled: disabled }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [showWorkspace && (onWorkspaceDirectAction
29
29
  ? _jsx("button", { type: "button", disabled: disabled, onClick: onWorkspaceDirectAction, title: "Workspace", className: cn("inline-flex h-8 w-8 items-center justify-center rounded-md text-xs transition-colors", "text-muted-foreground hover:text-foreground hover:bg-accent-hover", "disabled:pointer-events-none disabled:opacity-50"), "aria-label": "Workspace", children: _jsxs("span", { className: "relative", children: [_jsx(WorkspaceIcon, {}), workspaceCount > 0 && (_jsx("span", { className: "absolute -right-1.5 -top-1.5 flex h-3.5 min-w-3.5 items-center justify-center rounded-full bg-primary px-0.5 text-[0.5rem] font-medium leading-none text-primary-foreground", children: workspaceCount }))] }) })
30
30
  : _jsx(ContextPopover, { icon: _jsx(WorkspaceIcon, {}), label: "Workspace", count: workspaceCount, disabled: disabled, children: workspaceContent })), showAttach && (_jsx("button", { type: "button", disabled: disabled, onClick: onAttachClick, title: "Attach files", className: cn("inline-flex h-8 w-8 items-center justify-center rounded-md text-xs transition-colors", "text-muted-foreground hover:text-foreground hover:bg-accent-hover", "disabled:pointer-events-none disabled:opacity-50"), "aria-label": "Attach files", children: _jsxs("span", { className: "relative", children: [_jsx(PaperclipIcon, {}), attachmentCount > 0 && (_jsx("span", { className: "absolute -right-1.5 -top-1.5 flex h-3.5 min-w-3.5 items-center justify-center rounded-full bg-primary px-0.5 text-[0.5rem] font-medium leading-none text-primary-foreground", children: attachmentCount }))] }) })), _jsx(ConfigureMenu, { open: configOpen, onOpenChange: onConfigOpenChange, activePanel: configActivePanel, onActivePanelChange: onConfigActivePanelChange, items: configureItems, renderPanel: renderConfigPanel, disabled: disabled }), onStop ? (
31
31
  // Circular container (vs. Send's rounded-square) gives the square glyph
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerToolbar.js","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComposerToolbar.js","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type AttachmentInput, type EnvVarInput, type McpServerUsageInput, type ResourceRef } from "@stigmer/sdk";
2
2
  import type { HarnessOption } from "../models/harness.js";
3
+ import type { ServiceTierOption } from "../models/service-tier.js";
3
4
  import type { InteractionModeOption } from "./InteractionModePicker.js";
4
5
  import { type AgentResolution } from "../agent/useAgentSetup.js";
5
6
  import type { UseSessionVariablesReturn } from "../execution/useSessionVariables.js";
@@ -103,6 +104,14 @@ export interface SessionComposerSubmitContext {
103
104
  * Pass to execution creation as `execution_config.interaction_mode`.
104
105
  */
105
106
  readonly interactionMode?: InteractionModeOption;
107
+ /**
108
+ * Service tier the user actively selected for this execution
109
+ * (stigmer/stigmer#357). Only ever `"fast"` — an untouched toggle means
110
+ * "platform default" and is carried as `undefined`, preserving the
111
+ * unspecified-vs-explicit distinction all the way to the ledger.
112
+ * Pass to execution creation as `execution_config.service_tier`.
113
+ */
114
+ readonly serviceTier?: ServiceTierOption;
106
115
  /**
107
116
  * Workspace-relative file paths the user referenced via drag-to-reference.
108
117
  *
@@ -1 +1 @@
1
- {"version":3,"file":"SessionComposer.d.ts","sourceRoot":"","sources":["../../src/composer/SessionComposer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionComposer.d.ts","sourceRoot":"","sources":["../../src/composer/SessionComposer.tsx"],"names":[],"mappings":"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"}