@stigmer/react 3.2.3 → 3.4.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 (460) hide show
  1. package/agent/steps/ReviewStep.d.ts.map +1 -1
  2. package/agent/steps/ReviewStep.js +2 -3
  3. package/agent/steps/ReviewStep.js.map +1 -1
  4. package/billing/index.d.ts.map +1 -1
  5. package/billing/index.js +4 -0
  6. package/billing/index.js.map +1 -1
  7. package/channel/AgentChannelsPanel.d.ts.map +1 -1
  8. package/channel/AgentChannelsPanel.js +11 -5
  9. package/channel/AgentChannelsPanel.js.map +1 -1
  10. package/composer/SessionComposer.d.ts +1 -1
  11. package/cursor-accounts/CursorAccountEditor.d.ts +34 -0
  12. package/cursor-accounts/CursorAccountEditor.d.ts.map +1 -0
  13. package/cursor-accounts/CursorAccountEditor.js +67 -0
  14. package/cursor-accounts/CursorAccountEditor.js.map +1 -0
  15. package/cursor-accounts/CursorAccountsAccessNotice.d.ts +11 -0
  16. package/cursor-accounts/CursorAccountsAccessNotice.d.ts.map +1 -0
  17. package/cursor-accounts/CursorAccountsAccessNotice.js +14 -0
  18. package/cursor-accounts/CursorAccountsAccessNotice.js.map +1 -0
  19. package/cursor-accounts/CursorAccountsConsole.d.ts +32 -0
  20. package/cursor-accounts/CursorAccountsConsole.d.ts.map +1 -0
  21. package/cursor-accounts/CursorAccountsConsole.js +169 -0
  22. package/cursor-accounts/CursorAccountsConsole.js.map +1 -0
  23. package/cursor-accounts/MemberCoverageTable.d.ts +29 -0
  24. package/cursor-accounts/MemberCoverageTable.d.ts.map +1 -0
  25. package/cursor-accounts/MemberCoverageTable.js +150 -0
  26. package/cursor-accounts/MemberCoverageTable.js.map +1 -0
  27. package/cursor-accounts/MemberKeysPanel.d.ts +25 -0
  28. package/cursor-accounts/MemberKeysPanel.d.ts.map +1 -0
  29. package/cursor-accounts/MemberKeysPanel.js +115 -0
  30. package/cursor-accounts/MemberKeysPanel.js.map +1 -0
  31. package/cursor-accounts/badges.d.ts +9 -0
  32. package/cursor-accounts/badges.d.ts.map +1 -0
  33. package/cursor-accounts/badges.js +10 -0
  34. package/cursor-accounts/badges.js.map +1 -0
  35. package/cursor-accounts/cursor-account-coverage.d.ts +41 -0
  36. package/cursor-accounts/cursor-account-coverage.d.ts.map +1 -0
  37. package/cursor-accounts/cursor-account-coverage.js +26 -0
  38. package/cursor-accounts/cursor-account-coverage.js.map +1 -0
  39. package/cursor-accounts/cursor-account-format.d.ts +23 -0
  40. package/cursor-accounts/cursor-account-format.d.ts.map +1 -0
  41. package/cursor-accounts/cursor-account-format.js +41 -0
  42. package/cursor-accounts/cursor-account-format.js.map +1 -0
  43. package/cursor-accounts/index.d.ts +18 -0
  44. package/cursor-accounts/index.d.ts.map +1 -0
  45. package/cursor-accounts/index.js +13 -0
  46. package/cursor-accounts/index.js.map +1 -0
  47. package/cursor-accounts/useCursorAccountView.d.ts +30 -0
  48. package/cursor-accounts/useCursorAccountView.d.ts.map +1 -0
  49. package/cursor-accounts/useCursorAccountView.js +25 -0
  50. package/cursor-accounts/useCursorAccountView.js.map +1 -0
  51. package/cursor-accounts/useCursorAccounts.d.ts +33 -0
  52. package/cursor-accounts/useCursorAccounts.d.ts.map +1 -0
  53. package/cursor-accounts/useCursorAccounts.js +25 -0
  54. package/cursor-accounts/useCursorAccounts.js.map +1 -0
  55. package/cursor-accounts/useCursorMemberKeyActions.d.ts +49 -0
  56. package/cursor-accounts/useCursorMemberKeyActions.d.ts.map +1 -0
  57. package/cursor-accounts/useCursorMemberKeyActions.js +38 -0
  58. package/cursor-accounts/useCursorMemberKeyActions.js.map +1 -0
  59. package/cursor-accounts/useDeleteCursorAccount.d.ts +30 -0
  60. package/cursor-accounts/useDeleteCursorAccount.d.ts.map +1 -0
  61. package/cursor-accounts/useDeleteCursorAccount.js +32 -0
  62. package/cursor-accounts/useDeleteCursorAccount.js.map +1 -0
  63. package/cursor-accounts/useSyncCursorAccount.d.ts +23 -0
  64. package/cursor-accounts/useSyncCursorAccount.d.ts.map +1 -0
  65. package/cursor-accounts/useSyncCursorAccount.js +31 -0
  66. package/cursor-accounts/useSyncCursorAccount.js.map +1 -0
  67. package/cursor-accounts/useUpsertCursorAccount.d.ts +26 -0
  68. package/cursor-accounts/useUpsertCursorAccount.d.ts.map +1 -0
  69. package/cursor-accounts/useUpsertCursorAccount.js +34 -0
  70. package/cursor-accounts/useUpsertCursorAccount.js.map +1 -0
  71. package/datastore/CollectionRecordsBrowser.d.ts +34 -0
  72. package/datastore/CollectionRecordsBrowser.d.ts.map +1 -0
  73. package/datastore/CollectionRecordsBrowser.js +223 -0
  74. package/datastore/CollectionRecordsBrowser.js.map +1 -0
  75. package/datastore/CollectionSchemaView.d.ts +29 -0
  76. package/datastore/CollectionSchemaView.d.ts.map +1 -0
  77. package/datastore/CollectionSchemaView.js +93 -0
  78. package/datastore/CollectionSchemaView.js.map +1 -0
  79. package/datastore/DatastoreDetailView.d.ts +44 -0
  80. package/datastore/DatastoreDetailView.d.ts.map +1 -0
  81. package/datastore/DatastoreDetailView.js +76 -0
  82. package/datastore/DatastoreDetailView.js.map +1 -0
  83. package/datastore/DatastoreSyncReport.d.ts +19 -0
  84. package/datastore/DatastoreSyncReport.d.ts.map +1 -0
  85. package/datastore/DatastoreSyncReport.js +45 -0
  86. package/datastore/DatastoreSyncReport.js.map +1 -0
  87. package/datastore/DeleteDatastoreDialog.d.ts +35 -0
  88. package/datastore/DeleteDatastoreDialog.d.ts.map +1 -0
  89. package/datastore/DeleteDatastoreDialog.js +90 -0
  90. package/datastore/DeleteDatastoreDialog.js.map +1 -0
  91. package/datastore/FieldValueControl.d.ts +55 -0
  92. package/datastore/FieldValueControl.d.ts.map +1 -0
  93. package/datastore/FieldValueControl.js +138 -0
  94. package/datastore/FieldValueControl.js.map +1 -0
  95. package/datastore/RecordFilterBuilder.d.ts +37 -0
  96. package/datastore/RecordFilterBuilder.d.ts.map +1 -0
  97. package/datastore/RecordFilterBuilder.js +122 -0
  98. package/datastore/RecordFilterBuilder.js.map +1 -0
  99. package/datastore/RecordFormPanel.d.ts +45 -0
  100. package/datastore/RecordFormPanel.d.ts.map +1 -0
  101. package/datastore/RecordFormPanel.js +215 -0
  102. package/datastore/RecordFormPanel.js.map +1 -0
  103. package/datastore/index.d.ts +43 -0
  104. package/datastore/index.d.ts.map +1 -0
  105. package/datastore/index.js +22 -0
  106. package/datastore/index.js.map +1 -0
  107. package/datastore/recordFilter.d.ts +62 -0
  108. package/datastore/recordFilter.d.ts.map +1 -0
  109. package/datastore/recordFilter.js +104 -0
  110. package/datastore/recordFilter.js.map +1 -0
  111. package/datastore/recordValues.d.ts +85 -0
  112. package/datastore/recordValues.d.ts.map +1 -0
  113. package/datastore/recordValues.js +282 -0
  114. package/datastore/recordValues.js.map +1 -0
  115. package/datastore/useDatastore.d.ts +39 -0
  116. package/datastore/useDatastore.d.ts.map +1 -0
  117. package/datastore/useDatastore.js +44 -0
  118. package/datastore/useDatastore.js.map +1 -0
  119. package/datastore/useDatastoreCount.d.ts +48 -0
  120. package/datastore/useDatastoreCount.d.ts.map +1 -0
  121. package/datastore/useDatastoreCount.js +27 -0
  122. package/datastore/useDatastoreCount.js.map +1 -0
  123. package/datastore/useDatastoreDescription.d.ts +54 -0
  124. package/datastore/useDatastoreDescription.d.ts.map +1 -0
  125. package/datastore/useDatastoreDescription.js +50 -0
  126. package/datastore/useDatastoreDescription.js.map +1 -0
  127. package/datastore/useDatastoreList.d.ts +57 -0
  128. package/datastore/useDatastoreList.d.ts.map +1 -0
  129. package/datastore/useDatastoreList.js +29 -0
  130. package/datastore/useDatastoreList.js.map +1 -0
  131. package/datastore/useDatastoreSearch.d.ts +19 -0
  132. package/datastore/useDatastoreSearch.d.ts.map +1 -0
  133. package/datastore/useDatastoreSearch.js +22 -0
  134. package/datastore/useDatastoreSearch.js.map +1 -0
  135. package/datastore/useDeleteDatastore.d.ts +53 -0
  136. package/datastore/useDeleteDatastore.d.ts.map +1 -0
  137. package/datastore/useDeleteDatastore.js +40 -0
  138. package/datastore/useDeleteDatastore.js.map +1 -0
  139. package/datastore/useDeleteRecord.d.ts +34 -0
  140. package/datastore/useDeleteRecord.d.ts.map +1 -0
  141. package/datastore/useDeleteRecord.js +43 -0
  142. package/datastore/useDeleteRecord.js.map +1 -0
  143. package/datastore/useInsertRecord.d.ts +50 -0
  144. package/datastore/useInsertRecord.d.ts.map +1 -0
  145. package/datastore/useInsertRecord.js +55 -0
  146. package/datastore/useInsertRecord.js.map +1 -0
  147. package/datastore/useRecordCollection.d.ts +104 -0
  148. package/datastore/useRecordCollection.d.ts.map +1 -0
  149. package/datastore/useRecordCollection.js +136 -0
  150. package/datastore/useRecordCollection.js.map +1 -0
  151. package/datastore/useRecordList.d.ts +66 -0
  152. package/datastore/useRecordList.d.ts.map +1 -0
  153. package/datastore/useRecordList.js +58 -0
  154. package/datastore/useRecordList.js.map +1 -0
  155. package/datastore/useUpdateRecord.d.ts +52 -0
  156. package/datastore/useUpdateRecord.d.ts.map +1 -0
  157. package/datastore/useUpdateRecord.js +55 -0
  158. package/datastore/useUpdateRecord.js.map +1 -0
  159. package/environment/EnvironmentListPanel.d.ts.map +1 -1
  160. package/environment/EnvironmentListPanel.js +12 -7
  161. package/environment/EnvironmentListPanel.js.map +1 -1
  162. package/execution/ExecutionProgress.d.ts.map +1 -1
  163. package/execution/ExecutionProgress.js +13 -4
  164. package/execution/ExecutionProgress.js.map +1 -1
  165. package/execution/MessageThread.d.ts.map +1 -1
  166. package/execution/MessageThread.js +10 -2
  167. package/execution/MessageThread.js.map +1 -1
  168. package/execution/useCreateAgentExecution.d.ts +31 -1
  169. package/execution/useCreateAgentExecution.d.ts.map +1 -1
  170. package/execution/useCreateAgentExecution.js +2 -0
  171. package/execution/useCreateAgentExecution.js.map +1 -1
  172. package/iam-policy/index.d.ts +1 -1
  173. package/iam-policy/index.d.ts.map +1 -1
  174. package/iam-policy/index.js.map +1 -1
  175. package/iam-policy/useCheckPermission.d.ts +32 -11
  176. package/iam-policy/useCheckPermission.d.ts.map +1 -1
  177. package/iam-policy/useCheckPermission.js +24 -19
  178. package/iam-policy/useCheckPermission.js.map +1 -1
  179. package/index.d.ts +12 -4
  180. package/index.d.ts.map +1 -1
  181. package/index.js +18 -3
  182. package/index.js.map +1 -1
  183. package/internal/form-primitives.d.ts +10 -0
  184. package/internal/form-primitives.d.ts.map +1 -0
  185. package/internal/form-primitives.js +15 -0
  186. package/internal/form-primitives.js.map +1 -0
  187. package/library/index.d.ts +0 -7
  188. package/library/index.d.ts.map +1 -1
  189. package/library/index.js +0 -4
  190. package/library/index.js.map +1 -1
  191. package/library/useApplyResource.d.ts +12 -12
  192. package/library/useApplyResource.d.ts.map +1 -1
  193. package/library/useApplyResource.js +16 -25
  194. package/library/useApplyResource.js.map +1 -1
  195. package/library/useExportResource.d.ts +13 -9
  196. package/library/useExportResource.d.ts.map +1 -1
  197. package/library/useExportResource.js +18 -36
  198. package/library/useExportResource.js.map +1 -1
  199. package/manifest/ApplyManifestDialog.d.ts +48 -0
  200. package/manifest/ApplyManifestDialog.d.ts.map +1 -0
  201. package/manifest/ApplyManifestDialog.js +135 -0
  202. package/manifest/ApplyManifestDialog.js.map +1 -0
  203. package/manifest/EditResourceYamlDialog.d.ts +51 -0
  204. package/manifest/EditResourceYamlDialog.d.ts.map +1 -0
  205. package/manifest/EditResourceYamlDialog.js +104 -0
  206. package/manifest/EditResourceYamlDialog.js.map +1 -0
  207. package/manifest/RedactedSecretsNotice.d.ts +14 -0
  208. package/manifest/RedactedSecretsNotice.d.ts.map +1 -0
  209. package/manifest/RedactedSecretsNotice.js +14 -0
  210. package/manifest/RedactedSecretsNotice.js.map +1 -0
  211. package/manifest/YamlEditor.d.ts +44 -0
  212. package/manifest/YamlEditor.d.ts.map +1 -0
  213. package/manifest/YamlEditor.js +216 -0
  214. package/manifest/YamlEditor.js.map +1 -0
  215. package/manifest/index.d.ts +13 -0
  216. package/manifest/index.d.ts.map +1 -0
  217. package/manifest/index.js +13 -0
  218. package/manifest/index.js.map +1 -0
  219. package/manifest/useApplyManifest.d.ts +82 -0
  220. package/manifest/useApplyManifest.d.ts.map +1 -0
  221. package/manifest/useApplyManifest.js +180 -0
  222. package/manifest/useApplyManifest.js.map +1 -0
  223. package/manifest/useEditResourceYaml.d.ts +106 -0
  224. package/manifest/useEditResourceYaml.d.ts.map +1 -0
  225. package/manifest/useEditResourceYaml.js +168 -0
  226. package/manifest/useEditResourceYaml.js.map +1 -0
  227. package/mcp-server/steps/ReviewStep.d.ts.map +1 -1
  228. package/mcp-server/steps/ReviewStep.js +2 -3
  229. package/mcp-server/steps/ReviewStep.js.map +1 -1
  230. package/package.json +4 -4
  231. package/pricing-governance/BaselineEditor.d.ts +9 -0
  232. package/pricing-governance/BaselineEditor.d.ts.map +1 -0
  233. package/pricing-governance/BaselineEditor.js +270 -0
  234. package/pricing-governance/BaselineEditor.js.map +1 -0
  235. package/pricing-governance/ModelCatalogPanel.d.ts +28 -0
  236. package/pricing-governance/ModelCatalogPanel.d.ts.map +1 -0
  237. package/pricing-governance/ModelCatalogPanel.js +102 -0
  238. package/pricing-governance/ModelCatalogPanel.js.map +1 -0
  239. package/pricing-governance/ModelGovernanceDetail.d.ts +8 -0
  240. package/pricing-governance/ModelGovernanceDetail.d.ts.map +1 -0
  241. package/pricing-governance/ModelGovernanceDetail.js +64 -0
  242. package/pricing-governance/ModelGovernanceDetail.js.map +1 -0
  243. package/pricing-governance/OperatorAccessNotice.d.ts +12 -0
  244. package/pricing-governance/OperatorAccessNotice.d.ts.map +1 -0
  245. package/pricing-governance/OperatorAccessNotice.js +15 -0
  246. package/pricing-governance/OperatorAccessNotice.js.map +1 -0
  247. package/pricing-governance/PricingGovernanceConsole.d.ts +57 -0
  248. package/pricing-governance/PricingGovernanceConsole.d.ts.map +1 -0
  249. package/pricing-governance/PricingGovernanceConsole.js +164 -0
  250. package/pricing-governance/PricingGovernanceConsole.js.map +1 -0
  251. package/pricing-governance/PricingGovernancePanel.d.ts +26 -0
  252. package/pricing-governance/PricingGovernancePanel.d.ts.map +1 -0
  253. package/pricing-governance/PricingGovernancePanel.js +64 -0
  254. package/pricing-governance/PricingGovernancePanel.js.map +1 -0
  255. package/pricing-governance/RetireConfirm.d.ts +9 -0
  256. package/pricing-governance/RetireConfirm.d.ts.map +1 -0
  257. package/pricing-governance/RetireConfirm.js +19 -0
  258. package/pricing-governance/RetireConfirm.js.map +1 -0
  259. package/pricing-governance/governance-primitives.d.ts +33 -0
  260. package/pricing-governance/governance-primitives.d.ts.map +1 -0
  261. package/pricing-governance/governance-primitives.js +43 -0
  262. package/pricing-governance/governance-primitives.js.map +1 -0
  263. package/pricing-governance/index.d.ts +19 -0
  264. package/pricing-governance/index.d.ts.map +1 -0
  265. package/pricing-governance/index.js +20 -0
  266. package/pricing-governance/index.js.map +1 -0
  267. package/pricing-governance/pricing-format.d.ts +12 -0
  268. package/pricing-governance/pricing-format.d.ts.map +1 -0
  269. package/pricing-governance/pricing-format.js +50 -0
  270. package/pricing-governance/pricing-format.js.map +1 -0
  271. package/pricing-governance/useDecidePricingOverride.d.ts +46 -0
  272. package/pricing-governance/useDecidePricingOverride.d.ts.map +1 -0
  273. package/pricing-governance/useDecidePricingOverride.js +44 -0
  274. package/pricing-governance/useDecidePricingOverride.js.map +1 -0
  275. package/pricing-governance/useModelGovernanceView.d.ts +103 -0
  276. package/pricing-governance/useModelGovernanceView.d.ts.map +1 -0
  277. package/pricing-governance/useModelGovernanceView.js +144 -0
  278. package/pricing-governance/useModelGovernanceView.js.map +1 -0
  279. package/pricing-governance/useModelPricingBaselines.d.ts +40 -0
  280. package/pricing-governance/useModelPricingBaselines.d.ts.map +1 -0
  281. package/pricing-governance/useModelPricingBaselines.js +32 -0
  282. package/pricing-governance/useModelPricingBaselines.js.map +1 -0
  283. package/pricing-governance/usePricingGovernance.d.ts +39 -0
  284. package/pricing-governance/usePricingGovernance.d.ts.map +1 -0
  285. package/pricing-governance/usePricingGovernance.js +31 -0
  286. package/pricing-governance/usePricingGovernance.js.map +1 -0
  287. package/pricing-governance/useRetireModelPricingBaseline.d.ts +31 -0
  288. package/pricing-governance/useRetireModelPricingBaseline.d.ts.map +1 -0
  289. package/pricing-governance/useRetireModelPricingBaseline.js +36 -0
  290. package/pricing-governance/useRetireModelPricingBaseline.js.map +1 -0
  291. package/pricing-governance/useUpsertModelPricingBaseline.d.ts +38 -0
  292. package/pricing-governance/useUpsertModelPricingBaseline.d.ts.map +1 -0
  293. package/pricing-governance/useUpsertModelPricingBaseline.js +37 -0
  294. package/pricing-governance/useUpsertModelPricingBaseline.js.map +1 -0
  295. package/resource-creation/templates/workflow-templates.js +4 -4
  296. package/session/useCreateSession.d.ts +28 -0
  297. package/session/useCreateSession.d.ts.map +1 -1
  298. package/session/useCreateSession.js +2 -1
  299. package/session/useCreateSession.js.map +1 -1
  300. package/session/useEditSessionPrep.js +3 -3
  301. package/session/useEditSessionPrep.js.map +1 -1
  302. package/session/useNewSessionFlow.d.ts +30 -0
  303. package/session/useNewSessionFlow.d.ts.map +1 -1
  304. package/session/useNewSessionFlow.js +7 -1
  305. package/session/useNewSessionFlow.js.map +1 -1
  306. package/session/useUpdateSession.d.ts +29 -10
  307. package/session/useUpdateSession.d.ts.map +1 -1
  308. package/session/useUpdateSession.js +29 -10
  309. package/session/useUpdateSession.js.map +1 -1
  310. package/settings/index.d.ts +2 -1
  311. package/settings/index.d.ts.map +1 -1
  312. package/settings/index.js +2 -1
  313. package/settings/index.js.map +1 -1
  314. package/settings/settings-nav.d.ts +22 -0
  315. package/settings/settings-nav.d.ts.map +1 -1
  316. package/settings/settings-nav.js +32 -1
  317. package/settings/settings-nav.js.map +1 -1
  318. package/settings/useSettingsNavGroups.d.ts +29 -0
  319. package/settings/useSettingsNavGroups.d.ts.map +1 -0
  320. package/settings/useSettingsNavGroups.js +61 -0
  321. package/settings/useSettingsNavGroups.js.map +1 -0
  322. package/src/agent/steps/ReviewStep.tsx +2 -3
  323. package/src/billing/index.ts +5 -0
  324. package/src/channel/AgentChannelsPanel.tsx +27 -1
  325. package/src/composer/SessionComposer.tsx +1 -1
  326. package/src/cursor-accounts/CursorAccountEditor.tsx +229 -0
  327. package/src/cursor-accounts/CursorAccountsAccessNotice.tsx +36 -0
  328. package/src/cursor-accounts/CursorAccountsConsole.tsx +454 -0
  329. package/src/cursor-accounts/MemberCoverageTable.tsx +439 -0
  330. package/src/cursor-accounts/MemberKeysPanel.tsx +278 -0
  331. package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +680 -0
  332. package/src/cursor-accounts/__tests__/cursor-account-coverage.test.ts +73 -0
  333. package/src/cursor-accounts/badges.tsx +26 -0
  334. package/src/cursor-accounts/cursor-account-coverage.ts +71 -0
  335. package/src/cursor-accounts/cursor-account-format.ts +45 -0
  336. package/src/cursor-accounts/index.ts +29 -0
  337. package/src/cursor-accounts/useCursorAccountView.ts +49 -0
  338. package/src/cursor-accounts/useCursorAccounts.ts +49 -0
  339. package/src/cursor-accounts/useCursorMemberKeyActions.ts +106 -0
  340. package/src/cursor-accounts/useDeleteCursorAccount.ts +62 -0
  341. package/src/cursor-accounts/useSyncCursorAccount.ts +54 -0
  342. package/src/cursor-accounts/useUpsertCursorAccount.ts +57 -0
  343. package/src/datastore/CollectionRecordsBrowser.tsx +570 -0
  344. package/src/datastore/CollectionSchemaView.tsx +247 -0
  345. package/src/datastore/DatastoreDetailView.tsx +201 -0
  346. package/src/datastore/DatastoreSyncReport.tsx +105 -0
  347. package/src/datastore/DeleteDatastoreDialog.tsx +202 -0
  348. package/src/datastore/FieldValueControl.tsx +289 -0
  349. package/src/datastore/RecordFilterBuilder.tsx +422 -0
  350. package/src/datastore/RecordFormPanel.tsx +432 -0
  351. package/src/datastore/__tests__/CollectionRecordsBrowser.test.tsx +245 -0
  352. package/src/datastore/__tests__/DeleteDatastoreDialog.test.tsx +133 -0
  353. package/src/datastore/__tests__/FieldValueControl.test.tsx +160 -0
  354. package/src/datastore/__tests__/RecordFilterBuilder.test.tsx +155 -0
  355. package/src/datastore/__tests__/RecordFormPanel.test.tsx +227 -0
  356. package/src/datastore/__tests__/recordFilter.test.ts +169 -0
  357. package/src/datastore/__tests__/recordMutations.test.tsx +195 -0
  358. package/src/datastore/__tests__/recordValues.test.ts +359 -0
  359. package/src/datastore/__tests__/schemaAndSyncViews.test.tsx +142 -0
  360. package/src/datastore/__tests__/useDatastoreDescription.test.tsx +143 -0
  361. package/src/datastore/__tests__/useRecordCollection.test.tsx +250 -0
  362. package/src/datastore/__tests__/useRecordList.test.tsx +85 -0
  363. package/src/datastore/index.ts +111 -0
  364. package/src/datastore/recordFilter.ts +154 -0
  365. package/src/datastore/recordValues.ts +327 -0
  366. package/src/datastore/useDatastore.ts +67 -0
  367. package/src/datastore/useDatastoreCount.ts +67 -0
  368. package/src/datastore/useDatastoreDescription.ts +90 -0
  369. package/src/datastore/useDatastoreList.ts +79 -0
  370. package/src/datastore/useDatastoreSearch.ts +39 -0
  371. package/src/datastore/useDeleteDatastore.ts +87 -0
  372. package/src/datastore/useDeleteRecord.ts +77 -0
  373. package/src/datastore/useInsertRecord.ts +92 -0
  374. package/src/datastore/useRecordCollection.ts +256 -0
  375. package/src/datastore/useRecordList.ts +131 -0
  376. package/src/datastore/useUpdateRecord.ts +95 -0
  377. package/src/environment/EnvironmentListPanel.tsx +24 -0
  378. package/src/execution/ExecutionProgress.tsx +14 -4
  379. package/src/execution/MessageThread.tsx +10 -2
  380. package/src/execution/__tests__/ExecutionProgress.test.tsx +67 -0
  381. package/src/execution/__tests__/MessageThread.test.tsx +44 -0
  382. package/src/execution/__tests__/useArtifactInspection.test.tsx +12 -2
  383. package/src/execution/__tests__/useCreateAgentExecution.test.tsx +86 -0
  384. package/src/execution/useCreateAgentExecution.ts +41 -6
  385. package/src/iam-policy/__tests__/useCheckPermission.test.tsx +221 -0
  386. package/src/iam-policy/index.ts +1 -0
  387. package/src/iam-policy/useCheckPermission.ts +45 -19
  388. package/src/index.ts +172 -14
  389. package/src/internal/form-primitives.tsx +40 -0
  390. package/src/library/index.ts +0 -20
  391. package/src/library/useApplyResource.ts +27 -34
  392. package/src/library/useExportResource.ts +21 -40
  393. package/src/manifest/ApplyManifestDialog.tsx +315 -0
  394. package/src/manifest/EditResourceYamlDialog.tsx +265 -0
  395. package/src/manifest/RedactedSecretsNotice.tsx +30 -0
  396. package/src/manifest/YamlEditor.tsx +272 -0
  397. package/src/manifest/__tests__/EditResourceYamlDialog.test.tsx +118 -0
  398. package/src/manifest/__tests__/useApplyManifest.test.tsx +237 -0
  399. package/src/manifest/__tests__/useEditResourceYaml.test.tsx +252 -0
  400. package/src/manifest/index.ts +33 -0
  401. package/src/manifest/useApplyManifest.ts +270 -0
  402. package/src/manifest/useEditResourceYaml.ts +273 -0
  403. package/src/mcp-server/steps/ReviewStep.tsx +2 -3
  404. package/src/pricing-governance/BaselineEditor.tsx +652 -0
  405. package/src/pricing-governance/ModelCatalogPanel.tsx +283 -0
  406. package/src/pricing-governance/ModelGovernanceDetail.tsx +289 -0
  407. package/src/pricing-governance/OperatorAccessNotice.tsx +32 -0
  408. package/src/pricing-governance/PricingGovernanceConsole.tsx +465 -0
  409. package/src/pricing-governance/PricingGovernancePanel.tsx +166 -0
  410. package/src/pricing-governance/RetireConfirm.tsx +82 -0
  411. package/src/pricing-governance/__tests__/ModelCatalogPanel.test.tsx +253 -0
  412. package/src/pricing-governance/__tests__/PricingGovernanceConsole.test.tsx +410 -0
  413. package/src/pricing-governance/__tests__/useModelGovernanceView.test.tsx +308 -0
  414. package/src/pricing-governance/governance-primitives.tsx +133 -0
  415. package/src/pricing-governance/index.ts +50 -0
  416. package/src/pricing-governance/pricing-format.ts +53 -0
  417. package/src/pricing-governance/useDecidePricingOverride.ts +78 -0
  418. package/src/pricing-governance/useModelGovernanceView.ts +290 -0
  419. package/src/pricing-governance/useModelPricingBaselines.ts +69 -0
  420. package/src/pricing-governance/usePricingGovernance.ts +57 -0
  421. package/src/pricing-governance/useRetireModelPricingBaseline.ts +65 -0
  422. package/src/pricing-governance/useUpsertModelPricingBaseline.ts +72 -0
  423. package/src/resource-creation/templates/workflow-templates.ts +4 -4
  424. package/src/session/__tests__/useCreateSession.test.tsx +94 -0
  425. package/src/session/__tests__/useNewSessionFlow.test.tsx +33 -0
  426. package/src/session/useCreateSession.ts +30 -0
  427. package/src/session/useEditSessionPrep.ts +3 -3
  428. package/src/session/useNewSessionFlow.ts +45 -1
  429. package/src/session/useUpdateSession.ts +29 -10
  430. package/src/settings/__tests__/useSettingsNavGroups.test.tsx +138 -0
  431. package/src/settings/index.ts +5 -1
  432. package/src/settings/settings-nav.ts +43 -0
  433. package/src/settings/useSettingsNavGroups.ts +81 -0
  434. package/src/workflow/WorkflowYamlEditor.tsx +6 -270
  435. package/styles.css +1 -1
  436. package/workflow/CanvasTransitionEdge.d.ts +1 -1
  437. package/workflow/WorkflowYamlEditor.d.ts +2 -42
  438. package/workflow/WorkflowYamlEditor.d.ts.map +1 -1
  439. package/workflow/WorkflowYamlEditor.js +5 -214
  440. package/workflow/WorkflowYamlEditor.js.map +1 -1
  441. package/library/ImportResourceDialog.d.ts +0 -43
  442. package/library/ImportResourceDialog.d.ts.map +0 -1
  443. package/library/ImportResourceDialog.js +0 -90
  444. package/library/ImportResourceDialog.js.map +0 -1
  445. package/library/parse-resource-yaml.d.ts +0 -63
  446. package/library/parse-resource-yaml.d.ts.map +0 -1
  447. package/library/parse-resource-yaml.js +0 -407
  448. package/library/parse-resource-yaml.js.map +0 -1
  449. package/library/serialize-resource-yaml.d.ts +0 -103
  450. package/library/serialize-resource-yaml.d.ts.map +0 -1
  451. package/library/serialize-resource-yaml.js +0 -565
  452. package/library/serialize-resource-yaml.js.map +0 -1
  453. package/library/useImportResource.d.ts +0 -84
  454. package/library/useImportResource.d.ts.map +0 -1
  455. package/library/useImportResource.js +0 -188
  456. package/library/useImportResource.js.map +0 -1
  457. package/src/library/ImportResourceDialog.tsx +0 -227
  458. package/src/library/parse-resource-yaml.ts +0 -630
  459. package/src/library/serialize-resource-yaml.ts +0 -756
  460. package/src/library/useImportResource.ts +0 -253
@@ -0,0 +1,221 @@
1
+ import { describe, it, expect, vi, afterEach } from "vitest";
2
+ import { cleanup, render, screen, waitFor } from "@testing-library/react";
3
+ import type { ReactNode } from "react";
4
+ import { StigmerContext } from "../../context";
5
+ import {
6
+ useCheckPermission,
7
+ type CheckPermissionOptions,
8
+ type PermissionCheckResource,
9
+ } from "../useCheckPermission";
10
+
11
+ function createMockStigmer(checkMyPermission: ReturnType<typeof vi.fn>) {
12
+ return { iamPolicy: { checkMyPermission } } as never;
13
+ }
14
+
15
+ function wrapper(client: unknown) {
16
+ return function Wrapper({ children }: { children: ReactNode }) {
17
+ return (
18
+ <StigmerContext.Provider value={client as never}>
19
+ {children}
20
+ </StigmerContext.Provider>
21
+ );
22
+ };
23
+ }
24
+
25
+ /** Renders the hook and exposes its state via data attributes. */
26
+ function Probe({
27
+ resource,
28
+ relation = "can_edit",
29
+ options,
30
+ }: {
31
+ resource: PermissionCheckResource | null;
32
+ relation?: string;
33
+ options?: CheckPermissionOptions;
34
+ }) {
35
+ const { allowed, isLoading, error } = useCheckPermission(
36
+ resource,
37
+ relation,
38
+ options,
39
+ );
40
+ return (
41
+ <div
42
+ data-testid="probe"
43
+ data-allowed={String(allowed)}
44
+ data-loading={String(isLoading)}
45
+ data-error={String(error !== null)}
46
+ />
47
+ );
48
+ }
49
+
50
+ const AGENT: PermissionCheckResource = { kind: "agent", id: "agt_1" };
51
+
52
+ /** A checkMyPermission stub that stays pending until resolved manually. */
53
+ function pendingCheck() {
54
+ let resolve!: (value: { isAuthorized: boolean }) => void;
55
+ let reject!: (err: unknown) => void;
56
+ const check = vi.fn().mockReturnValue(
57
+ new Promise((res, rej) => {
58
+ resolve = res;
59
+ reject = rej;
60
+ }),
61
+ );
62
+ return { check, resolve: (v: boolean) => resolve({ isAuthorized: v }), reject: (e: unknown) => reject(e) };
63
+ }
64
+
65
+ afterEach(cleanup);
66
+
67
+ describe("useCheckPermission — fail-open (default)", () => {
68
+ it("is allowed while the check is in flight", async () => {
69
+ const { check } = pendingCheck();
70
+ render(<Probe resource={AGENT} />, {
71
+ wrapper: wrapper(createMockStigmer(check)),
72
+ });
73
+
74
+ const probe = screen.getByTestId("probe");
75
+ expect(probe.getAttribute("data-allowed")).toBe("true");
76
+ await waitFor(() =>
77
+ expect(probe.getAttribute("data-loading")).toBe("true"),
78
+ );
79
+ });
80
+
81
+ it("respects an explicit server denial", async () => {
82
+ const check = vi.fn().mockResolvedValue({ isAuthorized: false });
83
+ render(<Probe resource={AGENT} />, {
84
+ wrapper: wrapper(createMockStigmer(check)),
85
+ });
86
+
87
+ await waitFor(() =>
88
+ expect(screen.getByTestId("probe").getAttribute("data-allowed")).toBe("false"),
89
+ );
90
+ });
91
+
92
+ it("respects an explicit server grant", async () => {
93
+ const check = vi.fn().mockResolvedValue({ isAuthorized: true });
94
+ render(<Probe resource={AGENT} />, {
95
+ wrapper: wrapper(createMockStigmer(check)),
96
+ });
97
+
98
+ const probe = screen.getByTestId("probe");
99
+ await waitFor(() => expect(probe.getAttribute("data-loading")).toBe("false"));
100
+ expect(probe.getAttribute("data-allowed")).toBe("true");
101
+ expect(probe.getAttribute("data-error")).toBe("false");
102
+ });
103
+
104
+ it("fails open on RPC rejection (OSS single-user mode)", async () => {
105
+ const check = vi.fn().mockRejectedValue(new Error("unimplemented"));
106
+ render(<Probe resource={AGENT} />, {
107
+ wrapper: wrapper(createMockStigmer(check)),
108
+ });
109
+
110
+ const probe = screen.getByTestId("probe");
111
+ await waitFor(() => expect(probe.getAttribute("data-error")).toBe("true"));
112
+ expect(probe.getAttribute("data-allowed")).toBe("true");
113
+ expect(probe.getAttribute("data-loading")).toBe("false");
114
+ });
115
+
116
+ it("is allowed when resource is null (check skipped, no RPC)", () => {
117
+ const check = vi.fn();
118
+ render(<Probe resource={null} />, {
119
+ wrapper: wrapper(createMockStigmer(check)),
120
+ });
121
+
122
+ expect(screen.getByTestId("probe").getAttribute("data-allowed")).toBe("true");
123
+ expect(check).not.toHaveBeenCalled();
124
+ });
125
+ });
126
+
127
+ describe("useCheckPermission — fail-closed", () => {
128
+ const CLOSED: CheckPermissionOptions = { fail: "closed" };
129
+
130
+ it("is denied while the check is in flight (no flash of gated UI)", async () => {
131
+ const { check } = pendingCheck();
132
+ render(<Probe resource={AGENT} options={CLOSED} />, {
133
+ wrapper: wrapper(createMockStigmer(check)),
134
+ });
135
+
136
+ const probe = screen.getByTestId("probe");
137
+ expect(probe.getAttribute("data-allowed")).toBe("false");
138
+ await waitFor(() =>
139
+ expect(probe.getAttribute("data-loading")).toBe("true"),
140
+ );
141
+ expect(probe.getAttribute("data-allowed")).toBe("false");
142
+ });
143
+
144
+ it("is allowed only on an explicit server grant", async () => {
145
+ const check = vi.fn().mockResolvedValue({ isAuthorized: true });
146
+ render(<Probe resource={AGENT} options={CLOSED} />, {
147
+ wrapper: wrapper(createMockStigmer(check)),
148
+ });
149
+
150
+ await waitFor(() =>
151
+ expect(screen.getByTestId("probe").getAttribute("data-allowed")).toBe("true"),
152
+ );
153
+ });
154
+
155
+ it("fails closed on RPC rejection", async () => {
156
+ const check = vi.fn().mockRejectedValue(new Error("unimplemented"));
157
+ render(<Probe resource={AGENT} options={CLOSED} />, {
158
+ wrapper: wrapper(createMockStigmer(check)),
159
+ });
160
+
161
+ const probe = screen.getByTestId("probe");
162
+ await waitFor(() => expect(probe.getAttribute("data-error")).toBe("true"));
163
+ expect(probe.getAttribute("data-allowed")).toBe("false");
164
+ expect(probe.getAttribute("data-loading")).toBe("false");
165
+ });
166
+
167
+ it("is denied when resource is null (check skipped)", () => {
168
+ const check = vi.fn();
169
+ render(<Probe resource={null} options={CLOSED} />, {
170
+ wrapper: wrapper(createMockStigmer(check)),
171
+ });
172
+
173
+ expect(screen.getByTestId("probe").getAttribute("data-allowed")).toBe("false");
174
+ expect(check).not.toHaveBeenCalled();
175
+ });
176
+ });
177
+
178
+ describe("useCheckPermission — caching", () => {
179
+ it("serves repeat checks of the same triple from the mount cache", async () => {
180
+ const check = vi.fn().mockResolvedValue({ isAuthorized: true });
181
+ const { rerender } = render(<Probe resource={AGENT} />, {
182
+ wrapper: wrapper(createMockStigmer(check)),
183
+ });
184
+ await waitFor(() =>
185
+ expect(screen.getByTestId("probe").getAttribute("data-allowed")).toBe("true"),
186
+ );
187
+
188
+ // Switch relation (new triple → one more RPC), then switch back
189
+ // (cached triple → served without an RPC).
190
+ rerender(<Probe resource={AGENT} relation="can_delete" />);
191
+ await waitFor(() => expect(check).toHaveBeenCalledTimes(2));
192
+ rerender(<Probe resource={AGENT} relation="can_edit" />);
193
+ await waitFor(() =>
194
+ expect(screen.getByTestId("probe").getAttribute("data-allowed")).toBe("true"),
195
+ );
196
+ expect(check).toHaveBeenCalledTimes(2);
197
+ });
198
+
199
+ it("does not cache a failed check as a verdict", async () => {
200
+ // First mount errors; the error must not be pinned as `true` — a
201
+ // remount (fresh cache) with a healthy server gets the real verdict.
202
+ const failing = vi.fn().mockRejectedValue(new Error("blip"));
203
+ const { unmount } = render(
204
+ <Probe resource={AGENT} options={{ fail: "closed" }} />,
205
+ { wrapper: wrapper(createMockStigmer(failing)) },
206
+ );
207
+ await waitFor(() =>
208
+ expect(screen.getByTestId("probe").getAttribute("data-error")).toBe("true"),
209
+ );
210
+ expect(screen.getByTestId("probe").getAttribute("data-allowed")).toBe("false");
211
+ unmount();
212
+
213
+ const healthy = vi.fn().mockResolvedValue({ isAuthorized: true });
214
+ render(<Probe resource={AGENT} options={{ fail: "closed" }} />, {
215
+ wrapper: wrapper(createMockStigmer(healthy)),
216
+ });
217
+ await waitFor(() =>
218
+ expect(screen.getByTestId("probe").getAttribute("data-allowed")).toBe("true"),
219
+ );
220
+ });
221
+ });
@@ -75,6 +75,7 @@ export {
75
75
 
76
76
  export {
77
77
  useCheckPermission,
78
+ type CheckPermissionOptions,
78
79
  type PermissionCheckResource,
79
80
  type UseCheckPermissionReturn,
80
81
  } from "./useCheckPermission.js";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { useEffect, useMemo, useRef, useState } from "react";
3
+ import { useEffect, useRef, useState } from "react";
4
4
  import { create } from "@bufbuild/protobuf";
5
5
  import {
6
6
  CheckMyPermissionInputSchema,
@@ -18,6 +18,25 @@ export interface PermissionCheckResource {
18
18
  readonly id: string;
19
19
  }
20
20
 
21
+ /** Options for {@link useCheckPermission}. */
22
+ export interface CheckPermissionOptions {
23
+ /**
24
+ * Behavior when authorization cannot be confirmed — the check is in
25
+ * flight, the RPC failed, the resource is `null`, or the server does
26
+ * not implement authorization checks (OSS edition).
27
+ *
28
+ * - `"open"` (default): `allowed` is `true`. Right for gating
29
+ * *capabilities* (buttons, actions) — the server re-checks every
30
+ * request anyway, and all UI stays visible in single-user local
31
+ * mode.
32
+ * - `"closed"`: `allowed` is `false` until the server explicitly
33
+ * authorizes. Right for *discoverability* surfaces (navigation to
34
+ * operator-only areas) that must not appear on deployments where
35
+ * the feature does not exist.
36
+ */
37
+ readonly fail?: "open" | "closed";
38
+ }
39
+
21
40
  /** Return value of {@link useCheckPermission}. */
22
41
  export interface UseCheckPermissionReturn {
23
42
  /** Whether the current user has the specified permission. */
@@ -34,21 +53,24 @@ export interface UseCheckPermissionReturn {
34
53
  *
35
54
  * Wraps `iamPolicy.checkMyPermission()` — the dedicated self-check RPC
36
55
  * where the server derives the principal from the authenticated token
37
- * (the client never names a principal) — with caching and graceful
38
- * degradation. When the server does not support authorization checks
39
- * (OSS edition where the IAM service is not registered), the hook
40
- * returns `allowed: true` ensuring all UI is visible in single-user
41
- * local mode.
56
+ * (the client never names a principal) — with caching and configurable
57
+ * degradation. By default the hook *fails open*: when the server does
58
+ * not support authorization checks (OSS edition where the IAM service
59
+ * is not registered), it returns `allowed: true` so all UI remains
60
+ * visible in single-user local mode. Pass `{ fail: "closed" }` for
61
+ * surfaces that must stay hidden until authorization is confirmed
62
+ * (see {@link CheckPermissionOptions}).
42
63
  *
43
- * Pass `null` as `resource` to skip the check (returns `allowed: true`
44
- * immediately the "no resource yet" case is permissive to avoid
45
- * flashing hidden UI).
64
+ * Pass `null` as `resource` to skip the check the result resolves
65
+ * through the fail mode (`allowed: true` under the default fail-open).
46
66
  *
47
- * Results are cached per (kind, id, relation) triple for the lifetime
48
- * of the component mount. Re-mount or change inputs to re-check.
67
+ * Only genuine server verdicts are cached (per (kind, id, relation)
68
+ * triple, for the lifetime of the component mount). A failed check is
69
+ * never cached, so a transient error does not pin a wrong answer.
49
70
  *
50
71
  * @param resource - The resource to check, or `null` to skip.
51
72
  * @param relation - The permission to check (e.g. "can_edit", "can_grant_access").
73
+ * @param options - Fail-mode configuration; see {@link CheckPermissionOptions}.
52
74
  *
53
75
  * @example
54
76
  * ```tsx
@@ -63,9 +85,13 @@ export interface UseCheckPermissionReturn {
63
85
  export function useCheckPermission(
64
86
  resource: PermissionCheckResource | null,
65
87
  relation: string,
88
+ options?: CheckPermissionOptions,
66
89
  ): UseCheckPermissionReturn {
67
90
  const stigmer = useStigmer();
68
- const [allowed, setAllowed] = useState(true);
91
+ const failMode = options?.fail ?? "open";
92
+ const failValue = failMode === "open";
93
+
94
+ const [allowed, setAllowed] = useState(failValue);
69
95
  const [isLoading, setIsLoading] = useState(false);
70
96
  const [error, setError] = useState<Error | null>(null);
71
97
 
@@ -74,7 +100,7 @@ export function useCheckPermission(
74
100
 
75
101
  useEffect(() => {
76
102
  if (!resource || !cacheKey) {
77
- setAllowed(true);
103
+ setAllowed(failValue);
78
104
  setIsLoading(false);
79
105
  return;
80
106
  }
@@ -87,6 +113,7 @@ export function useCheckPermission(
87
113
  }
88
114
 
89
115
  let cancelled = false;
116
+ setAllowed(failValue);
90
117
  setIsLoading(true);
91
118
 
92
119
  const input = create(CheckMyPermissionInputSchema, {
@@ -108,11 +135,10 @@ export function useCheckPermission(
108
135
  })
109
136
  .catch((err: unknown) => {
110
137
  if (cancelled) return;
111
- // Graceful degradation: if the IAM service is unavailable
112
- // (OSS edition), default to permissive. This ensures all
113
- // UI remains visible in single-user local mode.
114
- cacheRef.current.set(cacheKey, true);
115
- setAllowed(true);
138
+ // Degradation is fail-mode-resolved and deliberately NOT cached:
139
+ // an error is not an authorization verdict, and caching it would
140
+ // pin a possibly-wrong answer for the mount's lifetime.
141
+ setAllowed(failValue);
116
142
  setError(err instanceof Error ? err : new Error(String(err)));
117
143
  })
118
144
  .finally(() => {
@@ -122,7 +148,7 @@ export function useCheckPermission(
122
148
  return () => {
123
149
  cancelled = true;
124
150
  };
125
- }, [cacheKey, resource?.kind, resource?.id, relation, stigmer]);
151
+ }, [cacheKey, resource?.kind, resource?.id, relation, failValue, stigmer]);
126
152
 
127
153
  return { allowed, isLoading, error };
128
154
  }
package/src/index.ts CHANGED
@@ -677,6 +677,88 @@ export type {
677
677
  AgentWizardData,
678
678
  } from "./agent/index.js";
679
679
 
680
+ // Datastore — data hooks (kind family + describe projection), record
681
+ // hooks (find/insert/update/delete + grid collection), guarded delete,
682
+ // the canonical value semantics of declared fields, the typed filter
683
+ // model, and the six styled components (detail view, records browser,
684
+ // filter builder, record form, schema view, sync report, delete dialog)
685
+ export {
686
+ useDatastore,
687
+ useDatastoreList,
688
+ useDatastoreCount,
689
+ useDatastoreSearch,
690
+ useDatastoreDescription,
691
+ DEFAULT_PARTITION,
692
+ useRecordList,
693
+ useInsertRecord,
694
+ useUpdateRecord,
695
+ useDeleteRecord,
696
+ useRecordCollection,
697
+ useDeleteDatastore,
698
+ buildUpdateFields,
699
+ coerceFieldValue,
700
+ formatFieldValue,
701
+ formatSystemTimestamp,
702
+ isListOperator,
703
+ isSortableField,
704
+ isValuelessOperator,
705
+ operatorsForField,
706
+ OPERATOR_LABELS,
707
+ RESERVED_FIELD_NAMES,
708
+ SYSTEM_FIELD_OPERATORS,
709
+ buildRecordFilter,
710
+ filterableFields,
711
+ formatConditionChip,
712
+ isConditionComplete,
713
+ FieldValueControl,
714
+ FIELD_INPUT_CLASSES,
715
+ CollectionSchemaView,
716
+ formatSubject,
717
+ DatastoreSyncReport,
718
+ RecordFilterBuilder,
719
+ RecordFormPanel,
720
+ CollectionRecordsBrowser,
721
+ DeleteDatastoreDialog,
722
+ DatastoreDetailView,
723
+ DatastoreIcon,
724
+ } from "./datastore/index.js";
725
+ export type {
726
+ UseDatastoreReturn,
727
+ UseDatastoreListOptions,
728
+ UseDatastoreListReturn,
729
+ UseDatastoreCountOptions,
730
+ UseDatastoreCountReturn,
731
+ UseDatastoreSearchOptions,
732
+ UseDatastoreSearchReturn,
733
+ UseDatastoreDescriptionReturn,
734
+ RecordScope,
735
+ UseRecordListParams,
736
+ UseRecordListReturn,
737
+ InsertRecordArgs,
738
+ UseInsertRecordReturn,
739
+ UpdateRecordArgs,
740
+ UseUpdateRecordReturn,
741
+ DeleteRecordArgs,
742
+ UseDeleteRecordReturn,
743
+ RecordColumnDef,
744
+ UseRecordCollectionOptions,
745
+ UseRecordCollectionReturn,
746
+ DeleteDatastoreArgs,
747
+ UseDeleteDatastoreReturn,
748
+ CoerceResult,
749
+ FilterableField,
750
+ RecordConditionDraft,
751
+ FieldValueControlProps,
752
+ CollectionSchemaViewProps,
753
+ DatastoreSyncReportProps,
754
+ RecordFilterBuilderProps,
755
+ RecordFormPanelProps,
756
+ CollectionRecordsBrowserProps,
757
+ DeleteDatastoreDialogProps,
758
+ DatastoreDetailTab,
759
+ DatastoreDetailViewProps,
760
+ } from "./datastore/index.js";
761
+
680
762
  // Environment — data hooks, list hook, personal convenience hook, secret reveal, variable management, env var form, system env vars, and styled components
681
763
  export {
682
764
  useEnvironment,
@@ -770,6 +852,7 @@ export type {
770
852
  UseShareFlowReturn,
771
853
  ShareFlowResource,
772
854
  UseCheckPermissionReturn,
855
+ CheckPermissionOptions,
773
856
  PermissionCheckResource,
774
857
  RoleSelectorProps,
775
858
  PrincipalPickerProps,
@@ -826,7 +909,8 @@ export type {
826
909
  OrgSwitcherProps,
827
910
  } from "./organization/index.js";
828
911
 
829
- // Billing — data hooks, behavior hooks, styled components, catalog, and formatting utilities
912
+ // Billing — customer-facing data hooks, behavior hooks, styled components,
913
+ // catalog, and formatting utilities
830
914
  export {
831
915
  useBillingAccount,
832
916
  useCreditLedger,
@@ -873,8 +957,71 @@ export type {
873
957
  CreditPackInfo,
874
958
  } from "./billing/index.js";
875
959
 
960
+ // Pricing governance — platform-operator authoring of the model registry
961
+ // baseline and pricing-override sign-offs (gated on can_manage_model_pricing)
962
+ export {
963
+ usePricingGovernance,
964
+ useModelPricingBaselines,
965
+ useModelGovernanceView,
966
+ useDecidePricingOverride,
967
+ useUpsertModelPricingBaseline,
968
+ useRetireModelPricingBaseline,
969
+ PricingGovernancePanel,
970
+ ModelCatalogPanel,
971
+ PricingGovernanceConsole,
972
+ } from "./pricing-governance/index.js";
973
+ export type {
974
+ UsePricingGovernanceReturn,
975
+ UseModelPricingBaselinesOptions,
976
+ UseModelPricingBaselinesReturn,
977
+ GovernanceFlow,
978
+ ModelGovernanceRow,
979
+ UseModelGovernanceViewReturn,
980
+ DecidePricingOverrideInput,
981
+ UseDecidePricingOverrideReturn,
982
+ UpsertModelPricingBaselineInput,
983
+ UseUpsertModelPricingBaselineReturn,
984
+ RetireModelPricingBaselineInput,
985
+ UseRetireModelPricingBaselineReturn,
986
+ PricingGovernancePanelProps,
987
+ ModelCatalogPanelProps,
988
+ PricingGovernanceConsoleProps,
989
+ PricingGovernanceTab,
990
+ } from "./pricing-governance/index.js";
991
+
992
+ // Cursor accounts — platform-operator management of managed Cursor teams
993
+ // (admin keys, member execution keys, org assignments, roster/spend)
994
+ export {
995
+ useCursorAccounts,
996
+ useCursorAccountView,
997
+ useUpsertCursorAccount,
998
+ useDeleteCursorAccount,
999
+ useCursorMemberKeyActions,
1000
+ useSyncCursorAccount,
1001
+ CursorAccountsConsole,
1002
+ CursorAccountEditor,
1003
+ CursorAccountsAccessNotice,
1004
+ } from "./cursor-accounts/index.js";
1005
+ export type {
1006
+ UseCursorAccountsReturn,
1007
+ UseCursorAccountViewReturn,
1008
+ UseUpsertCursorAccountReturn,
1009
+ DeleteCursorAccountInput,
1010
+ UseDeleteCursorAccountReturn,
1011
+ AddCursorMemberKeyInput,
1012
+ RemoveCursorMemberKeyInput,
1013
+ UseCursorMemberKeyActionsReturn,
1014
+ UseSyncCursorAccountReturn,
1015
+ CursorAccountsConsoleProps,
1016
+ CursorAccountEditorProps,
1017
+ } from "./cursor-accounts/index.js";
1018
+
876
1019
  // Settings — navigation structure + section components shared across app shells
877
- export { SETTINGS_NAV_GROUPS } from "./settings/index.js";
1020
+ export {
1021
+ SETTINGS_NAV_GROUPS,
1022
+ PLATFORM_SETTINGS_NAV_GROUP,
1023
+ useSettingsNavGroups,
1024
+ } from "./settings/index.js";
878
1025
  export type { SettingsNavItem, SettingsNavGroup } from "./settings/index.js";
879
1026
  export { ApiKeysSection } from "./settings/index.js";
880
1027
  export { MembersSection } from "./settings/index.js";
@@ -1138,15 +1285,8 @@ export {
1138
1285
  findStreamingPlan,
1139
1286
  PLAN_ARTIFACT_NAME,
1140
1287
  PLAN_ARTIFACT_SUFFIX,
1141
- parseResourceYaml,
1142
- serializeAgentYaml,
1143
- serializeMcpServerYaml,
1144
- serializeAgentInputYaml,
1145
- serializeMcpServerInputYaml,
1146
1288
  useApplyResource,
1147
1289
  useExportResource,
1148
- useImportResource,
1149
- ImportResourceDialog,
1150
1290
  VisibilitySelector,
1151
1291
  VisibilityBadge,
1152
1292
  blueprintVisibilityLevels,
@@ -1163,16 +1303,11 @@ export type {
1163
1303
  SessionPlan,
1164
1304
  StreamingPlan,
1165
1305
  UseDetectSkillPackageReturn,
1166
- ParsedResource,
1167
1306
  UseApplyResourceReturn,
1168
1307
  ApplyResourceResult,
1169
1308
  PushSkillParams,
1170
1309
  UseExportResourceOptions,
1171
1310
  UseExportResourceReturn,
1172
- ImportFormat,
1173
- ImportPreview,
1174
- UseImportResourceReturn,
1175
- ImportResourceDialogProps,
1176
1311
  VisibilitySelectorProps,
1177
1312
  VisibilityBadgeProps,
1178
1313
  VisibilityLevelOption,
@@ -1181,6 +1316,29 @@ export type {
1181
1316
  UseUpdateVisibilityReturn,
1182
1317
  } from "./library/index.js";
1183
1318
 
1319
+ // Manifest — kind-agnostic YAML edit/apply (editor, hooks, dialogs)
1320
+ export {
1321
+ YamlEditor,
1322
+ useEditResourceYaml,
1323
+ useApplyManifest,
1324
+ EditResourceYamlDialog,
1325
+ ApplyManifestDialog,
1326
+ RedactedSecretsNotice,
1327
+ } from "./manifest/index.js";
1328
+ export type {
1329
+ YamlEditorProps,
1330
+ EditYamlTarget,
1331
+ EditYamlValidation,
1332
+ UseEditResourceYamlOptions,
1333
+ UseEditResourceYamlReturn,
1334
+ ManifestEntryStatus,
1335
+ ManifestPreviewEntry,
1336
+ UseApplyManifestReturn,
1337
+ EditResourceYamlDialogProps,
1338
+ ApplyManifestDialogProps,
1339
+ RedactedSecretsNoticeProps,
1340
+ } from "./manifest/index.js";
1341
+
1184
1342
  // Action menu — compound component for resource item actions
1185
1343
  export { ActionMenu } from "./action-menu/index.js";
1186
1344
  export type {
@@ -0,0 +1,40 @@
1
+ "use client";
2
+
3
+ import { cn } from "@stigmer/theme";
4
+
5
+ // ---------------------------------------------------------------------------
6
+ // Shared form primitives for the operator consoles (pricing-governance
7
+ // editors and search inputs, cursor-accounts editor and key forms).
8
+ // Internal — never exported from the package barrel.
9
+ // ---------------------------------------------------------------------------
10
+
11
+ /** Standard text-input styling for the operator consoles. */
12
+ export const INPUT_CLASSES = cn(
13
+ "w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground",
14
+ "placeholder:text-muted-foreground",
15
+ "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
16
+ "disabled:pointer-events-none disabled:opacity-50",
17
+ );
18
+
19
+ /** Labelled form field wrapper. */
20
+ export function Field({
21
+ label,
22
+ required,
23
+ className,
24
+ children,
25
+ }: {
26
+ readonly label: string;
27
+ readonly required?: boolean;
28
+ readonly className?: string;
29
+ readonly children: React.ReactNode;
30
+ }) {
31
+ return (
32
+ <label className={cn("block space-y-1", className)}>
33
+ <span className="text-[11px] font-medium text-muted-foreground">
34
+ {label}
35
+ {required ? " *" : ""}
36
+ </span>
37
+ {children}
38
+ </label>
39
+ );
40
+ }
@@ -40,16 +40,6 @@ export type { StreamingPlan } from "./detect-streaming-plan.js";
40
40
  export { useDetectSkillPackage } from "./useDetectSkillPackage.js";
41
41
  export type { UseDetectSkillPackageReturn } from "./useDetectSkillPackage.js";
42
42
 
43
- export { parseResourceYaml } from "./parse-resource-yaml.js";
44
- export type { ParsedResource } from "./parse-resource-yaml.js";
45
-
46
- export {
47
- serializeAgentYaml,
48
- serializeMcpServerYaml,
49
- serializeAgentInputYaml,
50
- serializeMcpServerInputYaml,
51
- } from "./serialize-resource-yaml.js";
52
-
53
43
  export { serializeWorkflowYaml, parseWorkflowYaml } from "../workflow/serialize-workflow-yaml.js";
54
44
 
55
45
  export { useApplyResource } from "./useApplyResource.js";
@@ -65,16 +55,6 @@ export type {
65
55
  UseExportResourceReturn,
66
56
  } from "./useExportResource.js";
67
57
 
68
- export { useImportResource } from "./useImportResource.js";
69
- export type {
70
- ImportFormat,
71
- ImportPreview,
72
- UseImportResourceReturn,
73
- } from "./useImportResource.js";
74
-
75
- export { ImportResourceDialog } from "./ImportResourceDialog.js";
76
- export type { ImportResourceDialogProps } from "./ImportResourceDialog.js";
77
-
78
58
  export { VisibilitySelector, VisibilityBadge } from "./VisibilitySelector.js";
79
59
  export type {
80
60
  VisibilitySelectorProps,