@stigmer/react 3.2.2 → 3.3.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 (513) hide show
  1. package/agent/AgentDetailView.d.ts.map +1 -1
  2. package/agent/AgentDetailView.js +6 -3
  3. package/agent/AgentDetailView.js.map +1 -1
  4. package/agent/steps/ReviewStep.d.ts.map +1 -1
  5. package/agent/steps/ReviewStep.js +2 -3
  6. package/agent/steps/ReviewStep.js.map +1 -1
  7. package/billing/BaselineEditor.d.ts +9 -0
  8. package/billing/BaselineEditor.d.ts.map +1 -0
  9. package/billing/BaselineEditor.js +253 -0
  10. package/billing/BaselineEditor.js.map +1 -0
  11. package/billing/ModelCatalogPanel.d.ts +28 -0
  12. package/billing/ModelCatalogPanel.d.ts.map +1 -0
  13. package/billing/ModelCatalogPanel.js +102 -0
  14. package/billing/ModelCatalogPanel.js.map +1 -0
  15. package/billing/ModelGovernanceDetail.d.ts +8 -0
  16. package/billing/ModelGovernanceDetail.d.ts.map +1 -0
  17. package/billing/ModelGovernanceDetail.js +64 -0
  18. package/billing/ModelGovernanceDetail.js.map +1 -0
  19. package/billing/OperatorAccessNotice.d.ts +12 -0
  20. package/billing/OperatorAccessNotice.d.ts.map +1 -0
  21. package/billing/OperatorAccessNotice.js +15 -0
  22. package/billing/OperatorAccessNotice.js.map +1 -0
  23. package/billing/PricingGovernanceConsole.d.ts +57 -0
  24. package/billing/PricingGovernanceConsole.d.ts.map +1 -0
  25. package/billing/PricingGovernanceConsole.js +164 -0
  26. package/billing/PricingGovernanceConsole.js.map +1 -0
  27. package/billing/PricingGovernancePanel.d.ts +26 -0
  28. package/billing/PricingGovernancePanel.d.ts.map +1 -0
  29. package/billing/PricingGovernancePanel.js +64 -0
  30. package/billing/PricingGovernancePanel.js.map +1 -0
  31. package/billing/RetireConfirm.d.ts +9 -0
  32. package/billing/RetireConfirm.d.ts.map +1 -0
  33. package/billing/RetireConfirm.js +19 -0
  34. package/billing/RetireConfirm.js.map +1 -0
  35. package/billing/form-primitives.d.ts +18 -0
  36. package/billing/form-primitives.d.ts.map +1 -0
  37. package/billing/form-primitives.js +19 -0
  38. package/billing/form-primitives.js.map +1 -0
  39. package/billing/governance-primitives.d.ts +33 -0
  40. package/billing/governance-primitives.d.ts.map +1 -0
  41. package/billing/governance-primitives.js +43 -0
  42. package/billing/governance-primitives.js.map +1 -0
  43. package/billing/index.d.ts +18 -0
  44. package/billing/index.d.ts.map +1 -1
  45. package/billing/index.js +9 -0
  46. package/billing/index.js.map +1 -1
  47. package/billing/pricing-format.d.ts +12 -0
  48. package/billing/pricing-format.d.ts.map +1 -0
  49. package/billing/pricing-format.js +50 -0
  50. package/billing/pricing-format.js.map +1 -0
  51. package/billing/useDecidePricingOverride.d.ts +46 -0
  52. package/billing/useDecidePricingOverride.d.ts.map +1 -0
  53. package/billing/useDecidePricingOverride.js +44 -0
  54. package/billing/useDecidePricingOverride.js.map +1 -0
  55. package/billing/useModelGovernanceView.d.ts +103 -0
  56. package/billing/useModelGovernanceView.d.ts.map +1 -0
  57. package/billing/useModelGovernanceView.js +144 -0
  58. package/billing/useModelGovernanceView.js.map +1 -0
  59. package/billing/useModelPricingBaselines.d.ts +40 -0
  60. package/billing/useModelPricingBaselines.d.ts.map +1 -0
  61. package/billing/useModelPricingBaselines.js +32 -0
  62. package/billing/useModelPricingBaselines.js.map +1 -0
  63. package/billing/usePricingGovernance.d.ts +39 -0
  64. package/billing/usePricingGovernance.d.ts.map +1 -0
  65. package/billing/usePricingGovernance.js +31 -0
  66. package/billing/usePricingGovernance.js.map +1 -0
  67. package/billing/useRetireModelPricingBaseline.d.ts +31 -0
  68. package/billing/useRetireModelPricingBaseline.d.ts.map +1 -0
  69. package/billing/useRetireModelPricingBaseline.js +36 -0
  70. package/billing/useRetireModelPricingBaseline.js.map +1 -0
  71. package/billing/useUpsertModelPricingBaseline.d.ts +38 -0
  72. package/billing/useUpsertModelPricingBaseline.d.ts.map +1 -0
  73. package/billing/useUpsertModelPricingBaseline.js +37 -0
  74. package/billing/useUpsertModelPricingBaseline.js.map +1 -0
  75. package/channel/AgentChannelsPanel.d.ts.map +1 -1
  76. package/channel/AgentChannelsPanel.js +11 -5
  77. package/channel/AgentChannelsPanel.js.map +1 -1
  78. package/composer/SessionComposer.d.ts +1 -1
  79. package/cursor-accounts/CursorAccountEditor.d.ts +28 -0
  80. package/cursor-accounts/CursorAccountEditor.d.ts.map +1 -0
  81. package/cursor-accounts/CursorAccountEditor.js +51 -0
  82. package/cursor-accounts/CursorAccountEditor.js.map +1 -0
  83. package/cursor-accounts/CursorAccountsAccessNotice.d.ts +11 -0
  84. package/cursor-accounts/CursorAccountsAccessNotice.d.ts.map +1 -0
  85. package/cursor-accounts/CursorAccountsAccessNotice.js +14 -0
  86. package/cursor-accounts/CursorAccountsAccessNotice.js.map +1 -0
  87. package/cursor-accounts/CursorAccountsConsole.d.ts +28 -0
  88. package/cursor-accounts/CursorAccountsConsole.d.ts.map +1 -0
  89. package/cursor-accounts/CursorAccountsConsole.js +275 -0
  90. package/cursor-accounts/CursorAccountsConsole.js.map +1 -0
  91. package/cursor-accounts/cursor-account-format.d.ts +10 -0
  92. package/cursor-accounts/cursor-account-format.d.ts.map +1 -0
  93. package/cursor-accounts/cursor-account-format.js +26 -0
  94. package/cursor-accounts/cursor-account-format.js.map +1 -0
  95. package/cursor-accounts/index.d.ts +18 -0
  96. package/cursor-accounts/index.d.ts.map +1 -0
  97. package/cursor-accounts/index.js +13 -0
  98. package/cursor-accounts/index.js.map +1 -0
  99. package/cursor-accounts/useCursorAccountView.d.ts +30 -0
  100. package/cursor-accounts/useCursorAccountView.d.ts.map +1 -0
  101. package/cursor-accounts/useCursorAccountView.js +25 -0
  102. package/cursor-accounts/useCursorAccountView.js.map +1 -0
  103. package/cursor-accounts/useCursorAccounts.d.ts +33 -0
  104. package/cursor-accounts/useCursorAccounts.d.ts.map +1 -0
  105. package/cursor-accounts/useCursorAccounts.js +25 -0
  106. package/cursor-accounts/useCursorAccounts.js.map +1 -0
  107. package/cursor-accounts/useCursorMemberKeyActions.d.ts +49 -0
  108. package/cursor-accounts/useCursorMemberKeyActions.d.ts.map +1 -0
  109. package/cursor-accounts/useCursorMemberKeyActions.js +38 -0
  110. package/cursor-accounts/useCursorMemberKeyActions.js.map +1 -0
  111. package/cursor-accounts/useDeleteCursorAccount.d.ts +30 -0
  112. package/cursor-accounts/useDeleteCursorAccount.d.ts.map +1 -0
  113. package/cursor-accounts/useDeleteCursorAccount.js +32 -0
  114. package/cursor-accounts/useDeleteCursorAccount.js.map +1 -0
  115. package/cursor-accounts/useSyncCursorAccount.d.ts +23 -0
  116. package/cursor-accounts/useSyncCursorAccount.d.ts.map +1 -0
  117. package/cursor-accounts/useSyncCursorAccount.js +31 -0
  118. package/cursor-accounts/useSyncCursorAccount.js.map +1 -0
  119. package/cursor-accounts/useUpsertCursorAccount.d.ts +26 -0
  120. package/cursor-accounts/useUpsertCursorAccount.d.ts.map +1 -0
  121. package/cursor-accounts/useUpsertCursorAccount.js +34 -0
  122. package/cursor-accounts/useUpsertCursorAccount.js.map +1 -0
  123. package/datastore/CollectionRecordsBrowser.d.ts +34 -0
  124. package/datastore/CollectionRecordsBrowser.d.ts.map +1 -0
  125. package/datastore/CollectionRecordsBrowser.js +209 -0
  126. package/datastore/CollectionRecordsBrowser.js.map +1 -0
  127. package/datastore/CollectionSchemaView.d.ts +29 -0
  128. package/datastore/CollectionSchemaView.d.ts.map +1 -0
  129. package/datastore/CollectionSchemaView.js +93 -0
  130. package/datastore/CollectionSchemaView.js.map +1 -0
  131. package/datastore/DatastoreDetailView.d.ts +44 -0
  132. package/datastore/DatastoreDetailView.d.ts.map +1 -0
  133. package/datastore/DatastoreDetailView.js +76 -0
  134. package/datastore/DatastoreDetailView.js.map +1 -0
  135. package/datastore/DatastoreSyncReport.d.ts +19 -0
  136. package/datastore/DatastoreSyncReport.d.ts.map +1 -0
  137. package/datastore/DatastoreSyncReport.js +45 -0
  138. package/datastore/DatastoreSyncReport.js.map +1 -0
  139. package/datastore/DeleteDatastoreDialog.d.ts +35 -0
  140. package/datastore/DeleteDatastoreDialog.d.ts.map +1 -0
  141. package/datastore/DeleteDatastoreDialog.js +90 -0
  142. package/datastore/DeleteDatastoreDialog.js.map +1 -0
  143. package/datastore/FieldValueControl.d.ts +55 -0
  144. package/datastore/FieldValueControl.d.ts.map +1 -0
  145. package/datastore/FieldValueControl.js +138 -0
  146. package/datastore/FieldValueControl.js.map +1 -0
  147. package/datastore/RecordFilterBuilder.d.ts +30 -0
  148. package/datastore/RecordFilterBuilder.d.ts.map +1 -0
  149. package/datastore/RecordFilterBuilder.js +122 -0
  150. package/datastore/RecordFilterBuilder.js.map +1 -0
  151. package/datastore/RecordFormPanel.d.ts +45 -0
  152. package/datastore/RecordFormPanel.d.ts.map +1 -0
  153. package/datastore/RecordFormPanel.js +215 -0
  154. package/datastore/RecordFormPanel.js.map +1 -0
  155. package/datastore/index.d.ts +43 -0
  156. package/datastore/index.d.ts.map +1 -0
  157. package/datastore/index.js +22 -0
  158. package/datastore/index.js.map +1 -0
  159. package/datastore/recordFilter.d.ts +54 -0
  160. package/datastore/recordFilter.d.ts.map +1 -0
  161. package/datastore/recordFilter.js +93 -0
  162. package/datastore/recordFilter.js.map +1 -0
  163. package/datastore/recordValues.d.ts +85 -0
  164. package/datastore/recordValues.d.ts.map +1 -0
  165. package/datastore/recordValues.js +282 -0
  166. package/datastore/recordValues.js.map +1 -0
  167. package/datastore/useDatastore.d.ts +39 -0
  168. package/datastore/useDatastore.d.ts.map +1 -0
  169. package/datastore/useDatastore.js +44 -0
  170. package/datastore/useDatastore.js.map +1 -0
  171. package/datastore/useDatastoreCount.d.ts +48 -0
  172. package/datastore/useDatastoreCount.d.ts.map +1 -0
  173. package/datastore/useDatastoreCount.js +27 -0
  174. package/datastore/useDatastoreCount.js.map +1 -0
  175. package/datastore/useDatastoreDescription.d.ts +54 -0
  176. package/datastore/useDatastoreDescription.d.ts.map +1 -0
  177. package/datastore/useDatastoreDescription.js +50 -0
  178. package/datastore/useDatastoreDescription.js.map +1 -0
  179. package/datastore/useDatastoreList.d.ts +57 -0
  180. package/datastore/useDatastoreList.d.ts.map +1 -0
  181. package/datastore/useDatastoreList.js +29 -0
  182. package/datastore/useDatastoreList.js.map +1 -0
  183. package/datastore/useDatastoreSearch.d.ts +19 -0
  184. package/datastore/useDatastoreSearch.d.ts.map +1 -0
  185. package/datastore/useDatastoreSearch.js +22 -0
  186. package/datastore/useDatastoreSearch.js.map +1 -0
  187. package/datastore/useDeleteDatastore.d.ts +53 -0
  188. package/datastore/useDeleteDatastore.d.ts.map +1 -0
  189. package/datastore/useDeleteDatastore.js +40 -0
  190. package/datastore/useDeleteDatastore.js.map +1 -0
  191. package/datastore/useDeleteRecord.d.ts +34 -0
  192. package/datastore/useDeleteRecord.d.ts.map +1 -0
  193. package/datastore/useDeleteRecord.js +43 -0
  194. package/datastore/useDeleteRecord.js.map +1 -0
  195. package/datastore/useInsertRecord.d.ts +50 -0
  196. package/datastore/useInsertRecord.d.ts.map +1 -0
  197. package/datastore/useInsertRecord.js +55 -0
  198. package/datastore/useInsertRecord.js.map +1 -0
  199. package/datastore/useRecordCollection.d.ts +104 -0
  200. package/datastore/useRecordCollection.d.ts.map +1 -0
  201. package/datastore/useRecordCollection.js +136 -0
  202. package/datastore/useRecordCollection.js.map +1 -0
  203. package/datastore/useRecordList.d.ts +66 -0
  204. package/datastore/useRecordList.d.ts.map +1 -0
  205. package/datastore/useRecordList.js +58 -0
  206. package/datastore/useRecordList.js.map +1 -0
  207. package/datastore/useUpdateRecord.d.ts +52 -0
  208. package/datastore/useUpdateRecord.d.ts.map +1 -0
  209. package/datastore/useUpdateRecord.js +55 -0
  210. package/datastore/useUpdateRecord.js.map +1 -0
  211. package/environment/EnvironmentListPanel.d.ts.map +1 -1
  212. package/environment/EnvironmentListPanel.js +12 -7
  213. package/environment/EnvironmentListPanel.js.map +1 -1
  214. package/execution/index.d.ts +1 -2
  215. package/execution/index.d.ts.map +1 -1
  216. package/execution/index.js +0 -1
  217. package/execution/index.js.map +1 -1
  218. package/execution/useLiveAgentExecution.d.ts +17 -1
  219. package/execution/useLiveAgentExecution.d.ts.map +1 -1
  220. package/execution/useLiveAgentExecution.js +19 -4
  221. package/execution/useLiveAgentExecution.js.map +1 -1
  222. package/iam-policy/index.d.ts +1 -1
  223. package/iam-policy/index.d.ts.map +1 -1
  224. package/iam-policy/index.js.map +1 -1
  225. package/iam-policy/useCheckPermission.d.ts +32 -11
  226. package/iam-policy/useCheckPermission.d.ts.map +1 -1
  227. package/iam-policy/useCheckPermission.js +24 -19
  228. package/iam-policy/useCheckPermission.js.map +1 -1
  229. package/index.d.ts +16 -10
  230. package/index.d.ts.map +1 -1
  231. package/index.js +16 -5
  232. package/index.js.map +1 -1
  233. package/internal/useInViewport.d.ts +24 -0
  234. package/internal/useInViewport.d.ts.map +1 -0
  235. package/internal/useInViewport.js +49 -0
  236. package/internal/useInViewport.js.map +1 -0
  237. package/library/VisibilitySelector.d.ts +22 -6
  238. package/library/VisibilitySelector.d.ts.map +1 -1
  239. package/library/VisibilitySelector.js +12 -4
  240. package/library/VisibilitySelector.js.map +1 -1
  241. package/library/index.d.ts +1 -8
  242. package/library/index.d.ts.map +1 -1
  243. package/library/index.js +0 -4
  244. package/library/index.js.map +1 -1
  245. package/library/useApplyResource.d.ts +12 -12
  246. package/library/useApplyResource.d.ts.map +1 -1
  247. package/library/useApplyResource.js +16 -25
  248. package/library/useApplyResource.js.map +1 -1
  249. package/library/useExportResource.d.ts +13 -9
  250. package/library/useExportResource.d.ts.map +1 -1
  251. package/library/useExportResource.js +18 -36
  252. package/library/useExportResource.js.map +1 -1
  253. package/manifest/ApplyManifestDialog.d.ts +48 -0
  254. package/manifest/ApplyManifestDialog.d.ts.map +1 -0
  255. package/manifest/ApplyManifestDialog.js +135 -0
  256. package/manifest/ApplyManifestDialog.js.map +1 -0
  257. package/manifest/EditResourceYamlDialog.d.ts +51 -0
  258. package/manifest/EditResourceYamlDialog.d.ts.map +1 -0
  259. package/manifest/EditResourceYamlDialog.js +104 -0
  260. package/manifest/EditResourceYamlDialog.js.map +1 -0
  261. package/manifest/RedactedSecretsNotice.d.ts +14 -0
  262. package/manifest/RedactedSecretsNotice.d.ts.map +1 -0
  263. package/manifest/RedactedSecretsNotice.js +14 -0
  264. package/manifest/RedactedSecretsNotice.js.map +1 -0
  265. package/manifest/YamlEditor.d.ts +44 -0
  266. package/manifest/YamlEditor.d.ts.map +1 -0
  267. package/manifest/YamlEditor.js +216 -0
  268. package/manifest/YamlEditor.js.map +1 -0
  269. package/manifest/index.d.ts +13 -0
  270. package/manifest/index.d.ts.map +1 -0
  271. package/manifest/index.js +13 -0
  272. package/manifest/index.js.map +1 -0
  273. package/manifest/useApplyManifest.d.ts +82 -0
  274. package/manifest/useApplyManifest.d.ts.map +1 -0
  275. package/manifest/useApplyManifest.js +180 -0
  276. package/manifest/useApplyManifest.js.map +1 -0
  277. package/manifest/useEditResourceYaml.d.ts +106 -0
  278. package/manifest/useEditResourceYaml.d.ts.map +1 -0
  279. package/manifest/useEditResourceYaml.js +168 -0
  280. package/manifest/useEditResourceYaml.js.map +1 -0
  281. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  282. package/mcp-server/McpServerDetailView.js +4 -3
  283. package/mcp-server/McpServerDetailView.js.map +1 -1
  284. package/mcp-server/steps/ReviewStep.d.ts.map +1 -1
  285. package/mcp-server/steps/ReviewStep.js +2 -3
  286. package/mcp-server/steps/ReviewStep.js.map +1 -1
  287. package/package.json +4 -4
  288. package/resource-creation/templates/workflow-templates.js +4 -4
  289. package/session/SessionViewer.js +8 -1
  290. package/session/SessionViewer.js.map +1 -1
  291. package/session/audience.d.ts +6 -1
  292. package/session/audience.d.ts.map +1 -1
  293. package/session/useEditSessionPrep.js +3 -3
  294. package/session/useEditSessionPrep.js.map +1 -1
  295. package/settings/index.d.ts +2 -1
  296. package/settings/index.d.ts.map +1 -1
  297. package/settings/index.js +2 -1
  298. package/settings/index.js.map +1 -1
  299. package/settings/settings-nav.d.ts +22 -0
  300. package/settings/settings-nav.d.ts.map +1 -1
  301. package/settings/settings-nav.js +32 -1
  302. package/settings/settings-nav.js.map +1 -1
  303. package/settings/useSettingsNavGroups.d.ts +29 -0
  304. package/settings/useSettingsNavGroups.d.ts.map +1 -0
  305. package/settings/useSettingsNavGroups.js +61 -0
  306. package/settings/useSettingsNavGroups.js.map +1 -0
  307. package/skill/SkillDetailView.d.ts.map +1 -1
  308. package/skill/SkillDetailView.js +4 -3
  309. package/skill/SkillDetailView.js.map +1 -1
  310. package/src/access/__tests__/useManageAccess.test.tsx +104 -0
  311. package/src/agent/AgentDetailView.tsx +9 -3
  312. package/src/agent/steps/ReviewStep.tsx +2 -3
  313. package/src/billing/BaselineEditor.tsx +619 -0
  314. package/src/billing/ModelCatalogPanel.tsx +283 -0
  315. package/src/billing/ModelGovernanceDetail.tsx +289 -0
  316. package/src/billing/OperatorAccessNotice.tsx +32 -0
  317. package/src/billing/PricingGovernanceConsole.tsx +465 -0
  318. package/src/billing/PricingGovernancePanel.tsx +166 -0
  319. package/src/billing/RetireConfirm.tsx +82 -0
  320. package/src/billing/__tests__/ModelCatalogPanel.test.tsx +253 -0
  321. package/src/billing/__tests__/PricingGovernanceConsole.test.tsx +410 -0
  322. package/src/billing/__tests__/useModelGovernanceView.test.tsx +308 -0
  323. package/src/billing/form-primitives.tsx +68 -0
  324. package/src/billing/governance-primitives.tsx +133 -0
  325. package/src/billing/index.ts +37 -0
  326. package/src/billing/pricing-format.ts +53 -0
  327. package/src/billing/useDecidePricingOverride.ts +78 -0
  328. package/src/billing/useModelGovernanceView.ts +290 -0
  329. package/src/billing/useModelPricingBaselines.ts +69 -0
  330. package/src/billing/usePricingGovernance.ts +57 -0
  331. package/src/billing/useRetireModelPricingBaseline.ts +65 -0
  332. package/src/billing/useUpsertModelPricingBaseline.ts +72 -0
  333. package/src/channel/AgentChannelsPanel.tsx +27 -1
  334. package/src/composer/SessionComposer.tsx +1 -1
  335. package/src/cursor-accounts/CursorAccountEditor.tsx +181 -0
  336. package/src/cursor-accounts/CursorAccountsAccessNotice.tsx +36 -0
  337. package/src/cursor-accounts/CursorAccountsConsole.tsx +810 -0
  338. package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +384 -0
  339. package/src/cursor-accounts/cursor-account-format.ts +29 -0
  340. package/src/cursor-accounts/index.ts +29 -0
  341. package/src/cursor-accounts/useCursorAccountView.ts +49 -0
  342. package/src/cursor-accounts/useCursorAccounts.ts +49 -0
  343. package/src/cursor-accounts/useCursorMemberKeyActions.ts +106 -0
  344. package/src/cursor-accounts/useDeleteCursorAccount.ts +62 -0
  345. package/src/cursor-accounts/useSyncCursorAccount.ts +54 -0
  346. package/src/cursor-accounts/useUpsertCursorAccount.ts +57 -0
  347. package/src/datastore/CollectionRecordsBrowser.tsx +544 -0
  348. package/src/datastore/CollectionSchemaView.tsx +247 -0
  349. package/src/datastore/DatastoreDetailView.tsx +201 -0
  350. package/src/datastore/DatastoreSyncReport.tsx +105 -0
  351. package/src/datastore/DeleteDatastoreDialog.tsx +202 -0
  352. package/src/datastore/FieldValueControl.tsx +289 -0
  353. package/src/datastore/RecordFilterBuilder.tsx +411 -0
  354. package/src/datastore/RecordFormPanel.tsx +432 -0
  355. package/src/datastore/__tests__/CollectionRecordsBrowser.test.tsx +207 -0
  356. package/src/datastore/__tests__/DeleteDatastoreDialog.test.tsx +133 -0
  357. package/src/datastore/__tests__/FieldValueControl.test.tsx +160 -0
  358. package/src/datastore/__tests__/RecordFilterBuilder.test.tsx +141 -0
  359. package/src/datastore/__tests__/RecordFormPanel.test.tsx +227 -0
  360. package/src/datastore/__tests__/recordFilter.test.ts +156 -0
  361. package/src/datastore/__tests__/recordMutations.test.tsx +195 -0
  362. package/src/datastore/__tests__/recordValues.test.ts +359 -0
  363. package/src/datastore/__tests__/schemaAndSyncViews.test.tsx +142 -0
  364. package/src/datastore/__tests__/useDatastoreDescription.test.tsx +143 -0
  365. package/src/datastore/__tests__/useRecordCollection.test.tsx +250 -0
  366. package/src/datastore/__tests__/useRecordList.test.tsx +85 -0
  367. package/src/datastore/index.ts +111 -0
  368. package/src/datastore/recordFilter.ts +140 -0
  369. package/src/datastore/recordValues.ts +327 -0
  370. package/src/datastore/useDatastore.ts +67 -0
  371. package/src/datastore/useDatastoreCount.ts +67 -0
  372. package/src/datastore/useDatastoreDescription.ts +90 -0
  373. package/src/datastore/useDatastoreList.ts +79 -0
  374. package/src/datastore/useDatastoreSearch.ts +39 -0
  375. package/src/datastore/useDeleteDatastore.ts +87 -0
  376. package/src/datastore/useDeleteRecord.ts +77 -0
  377. package/src/datastore/useInsertRecord.ts +92 -0
  378. package/src/datastore/useRecordCollection.ts +256 -0
  379. package/src/datastore/useRecordList.ts +131 -0
  380. package/src/datastore/useUpdateRecord.ts +95 -0
  381. package/src/environment/EnvironmentListPanel.tsx +24 -0
  382. package/src/execution/__tests__/useArtifactInspection.test.tsx +12 -2
  383. package/src/execution/__tests__/useLiveAgentExecution.test.tsx +125 -0
  384. package/src/execution/index.ts +4 -7
  385. package/src/execution/useLiveAgentExecution.ts +41 -3
  386. package/src/iam-policy/__tests__/useCheckPermission.test.tsx +221 -0
  387. package/src/iam-policy/index.ts +1 -0
  388. package/src/iam-policy/useCheckPermission.ts +45 -19
  389. package/src/index.ts +167 -18
  390. package/src/internal/__tests__/useInViewport.test.tsx +115 -0
  391. package/src/internal/useInViewport.ts +63 -0
  392. package/src/library/VisibilitySelector.tsx +50 -9
  393. package/src/library/__tests__/VisibilitySelector.test.tsx +38 -0
  394. package/src/library/index.ts +4 -21
  395. package/src/library/useApplyResource.ts +27 -34
  396. package/src/library/useExportResource.ts +21 -40
  397. package/src/manifest/ApplyManifestDialog.tsx +315 -0
  398. package/src/manifest/EditResourceYamlDialog.tsx +265 -0
  399. package/src/manifest/RedactedSecretsNotice.tsx +30 -0
  400. package/src/manifest/YamlEditor.tsx +272 -0
  401. package/src/manifest/__tests__/EditResourceYamlDialog.test.tsx +118 -0
  402. package/src/manifest/__tests__/useApplyManifest.test.tsx +237 -0
  403. package/src/manifest/__tests__/useEditResourceYaml.test.tsx +252 -0
  404. package/src/manifest/index.ts +33 -0
  405. package/src/manifest/useApplyManifest.ts +270 -0
  406. package/src/manifest/useEditResourceYaml.ts +273 -0
  407. package/src/mcp-server/McpServerDetailView.tsx +7 -3
  408. package/src/mcp-server/steps/ReviewStep.tsx +2 -3
  409. package/src/resource-creation/templates/workflow-templates.ts +4 -4
  410. package/src/session/SessionViewer.tsx +7 -1
  411. package/src/session/__tests__/audienceWiring.test.tsx +31 -1
  412. package/src/session/audience.ts +6 -1
  413. package/src/session/useEditSessionPrep.ts +3 -3
  414. package/src/settings/__tests__/useSettingsNavGroups.test.tsx +138 -0
  415. package/src/settings/index.ts +5 -1
  416. package/src/settings/settings-nav.ts +43 -0
  417. package/src/settings/useSettingsNavGroups.ts +81 -0
  418. package/src/skill/SkillDetailView.tsx +7 -3
  419. package/src/workflow/WorkflowAgentCallTranscript.tsx +279 -0
  420. package/src/workflow/WorkflowDetailView.tsx +7 -3
  421. package/src/workflow/WorkflowExecutionViewer.tsx +20 -77
  422. package/src/workflow/WorkflowTaskApprovalSummary.tsx +45 -8
  423. package/src/workflow/WorkflowYamlEditor.tsx +6 -270
  424. package/src/workflow/__tests__/WorkflowAgentCallTranscript.liveregion.test.tsx +124 -0
  425. package/src/workflow/__tests__/{WorkflowAgentExecutionDocument.test.tsx → WorkflowAgentCallTranscript.test.tsx} +146 -121
  426. package/src/workflow/__tests__/WorkflowExecutionViewer.approvals.test.tsx +81 -220
  427. package/src/workflow/__tests__/WorkflowExecutionViewer.reconciliation.test.tsx +17 -16
  428. package/src/workflow/__tests__/WorkflowTaskApprovalSummary.test.tsx +52 -2
  429. package/src/workflow/__tests__/WorkflowTaskThread.test.tsx +168 -185
  430. package/src/workflow/__tests__/agent-call-live-experience.test.ts +4 -4
  431. package/src/workflow/__tests__/task-approval.test.ts +119 -0
  432. package/src/workflow/__tests__/task-presentation.test.ts +35 -1
  433. package/src/workflow/__tests__/useWorkflowExecutionPanel.test.ts +0 -57
  434. package/src/workflow/index.ts +6 -3
  435. package/src/workflow/task-detail/index.ts +3 -0
  436. package/src/workflow/task-detail/task-approval.ts +95 -1
  437. package/src/workflow/thread/WorkflowTaskThread.tsx +96 -252
  438. package/src/workflow/thread/task-presentation.ts +8 -2
  439. package/src/workflow/useWorkflowExecutionPanel.ts +0 -47
  440. package/styles.css +1 -1
  441. package/workflow/CanvasTransitionEdge.d.ts +1 -1
  442. package/workflow/WorkflowAgentCallTranscript.d.ts +87 -0
  443. package/workflow/WorkflowAgentCallTranscript.d.ts.map +1 -0
  444. package/workflow/WorkflowAgentCallTranscript.js +98 -0
  445. package/workflow/WorkflowAgentCallTranscript.js.map +1 -0
  446. package/workflow/WorkflowDetailView.d.ts.map +1 -1
  447. package/workflow/WorkflowDetailView.js +4 -3
  448. package/workflow/WorkflowDetailView.js.map +1 -1
  449. package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
  450. package/workflow/WorkflowExecutionViewer.js +23 -52
  451. package/workflow/WorkflowExecutionViewer.js.map +1 -1
  452. package/workflow/WorkflowTaskApprovalSummary.d.ts +1 -1
  453. package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
  454. package/workflow/WorkflowTaskApprovalSummary.js +18 -1
  455. package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
  456. package/workflow/WorkflowYamlEditor.d.ts +2 -42
  457. package/workflow/WorkflowYamlEditor.d.ts.map +1 -1
  458. package/workflow/WorkflowYamlEditor.js +5 -214
  459. package/workflow/WorkflowYamlEditor.js.map +1 -1
  460. package/workflow/index.d.ts +2 -2
  461. package/workflow/index.d.ts.map +1 -1
  462. package/workflow/index.js +2 -2
  463. package/workflow/index.js.map +1 -1
  464. package/workflow/task-detail/index.d.ts +1 -1
  465. package/workflow/task-detail/index.d.ts.map +1 -1
  466. package/workflow/task-detail/index.js +1 -1
  467. package/workflow/task-detail/index.js.map +1 -1
  468. package/workflow/task-detail/task-approval.d.ts +44 -1
  469. package/workflow/task-detail/task-approval.d.ts.map +1 -1
  470. package/workflow/task-detail/task-approval.js +47 -0
  471. package/workflow/task-detail/task-approval.js.map +1 -1
  472. package/workflow/thread/WorkflowTaskThread.d.ts +17 -25
  473. package/workflow/thread/WorkflowTaskThread.d.ts.map +1 -1
  474. package/workflow/thread/WorkflowTaskThread.js +60 -105
  475. package/workflow/thread/WorkflowTaskThread.js.map +1 -1
  476. package/workflow/thread/task-presentation.d.ts.map +1 -1
  477. package/workflow/thread/task-presentation.js +7 -2
  478. package/workflow/thread/task-presentation.js.map +1 -1
  479. package/workflow/useWorkflowExecutionPanel.d.ts +0 -12
  480. package/workflow/useWorkflowExecutionPanel.d.ts.map +1 -1
  481. package/workflow/useWorkflowExecutionPanel.js +0 -12
  482. package/workflow/useWorkflowExecutionPanel.js.map +1 -1
  483. package/execution/agent-execution-document.d.ts +0 -31
  484. package/execution/agent-execution-document.d.ts.map +0 -1
  485. package/execution/agent-execution-document.js +0 -48
  486. package/execution/agent-execution-document.js.map +0 -1
  487. package/library/ImportResourceDialog.d.ts +0 -43
  488. package/library/ImportResourceDialog.d.ts.map +0 -1
  489. package/library/ImportResourceDialog.js +0 -90
  490. package/library/ImportResourceDialog.js.map +0 -1
  491. package/library/parse-resource-yaml.d.ts +0 -63
  492. package/library/parse-resource-yaml.d.ts.map +0 -1
  493. package/library/parse-resource-yaml.js +0 -407
  494. package/library/parse-resource-yaml.js.map +0 -1
  495. package/library/serialize-resource-yaml.d.ts +0 -103
  496. package/library/serialize-resource-yaml.d.ts.map +0 -1
  497. package/library/serialize-resource-yaml.js +0 -565
  498. package/library/serialize-resource-yaml.js.map +0 -1
  499. package/library/useImportResource.d.ts +0 -84
  500. package/library/useImportResource.d.ts.map +0 -1
  501. package/library/useImportResource.js +0 -188
  502. package/library/useImportResource.js.map +0 -1
  503. package/src/execution/__tests__/agent-execution-document.test.ts +0 -45
  504. package/src/execution/agent-execution-document.ts +0 -54
  505. package/src/library/ImportResourceDialog.tsx +0 -227
  506. package/src/library/parse-resource-yaml.ts +0 -630
  507. package/src/library/serialize-resource-yaml.ts +0 -756
  508. package/src/library/useImportResource.ts +0 -253
  509. package/src/workflow/WorkflowAgentExecutionDocument.tsx +0 -283
  510. package/workflow/WorkflowAgentExecutionDocument.d.ts +0 -79
  511. package/workflow/WorkflowAgentExecutionDocument.d.ts.map +0 -1
  512. package/workflow/WorkflowAgentExecutionDocument.js +0 -87
  513. package/workflow/WorkflowAgentExecutionDocument.js.map +0 -1
@@ -0,0 +1,282 @@
1
+ // Canonical value semantics of declared datastore fields, at the UI
2
+ // boundary.
3
+ //
4
+ // The authoritative implementation lives in the record layer (OSS
5
+ // `pkg/domain/datastore/schema` + `records/filter.go`, mirrored
6
+ // byte-identically in the cloud Java service — the DD-004 cross-edition
7
+ // contract). This module is a client-side PROJECTION of that contract:
8
+ // it lets forms fail fast with friendly messages and lets the filter
9
+ // builder offer only servable operators. The server remains the
10
+ // enforcer — a stale or buggy projection degrades to a clean server
11
+ // denial, never a false allow (DD-008 invariant 3).
12
+ //
13
+ // Canonical encodings (DD-004):
14
+ // - string: the string itself (enum_values membership checked)
15
+ // - integer: integral JSON number
16
+ // - number: JSON number
17
+ // - bool: JSON boolean
18
+ // - timestamp: RFC 3339 UTC, e.g. "2026-07-21T04:30:00Z"
19
+ // - date: "YYYY-MM-DD" (lexicographically chronological)
20
+ // - time: "HH:MM:SS" zero-padded ("HH:MM" input canonicalized)
21
+ // - json: any JSON value, stored as-is
22
+ //
23
+ // google.protobuf.Struct fields are plain `JsonObject` values in
24
+ // protobuf-es v2, so record payloads need no proto conversion — the
25
+ // entire client-side value story is validation + canonicalization of
26
+ // these JSON shapes.
27
+ import { FieldType, } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/spec_pb";
28
+ import { RecordConditionOp } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/record_io_pb";
29
+ /**
30
+ * Record-envelope system field names (plus the cloud tenancy column and
31
+ * the DD-010 partition label). Never declarable, never caller-writable.
32
+ */
33
+ export const RESERVED_FIELD_NAMES = new Set([
34
+ "id",
35
+ "created_at",
36
+ "updated_at",
37
+ "created_by",
38
+ "org",
39
+ "partition",
40
+ ]);
41
+ const ok = (value) => ({ ok: true, value });
42
+ const fail = (error) => ({ ok: false, error });
43
+ // Zero-padded HH:MM or HH:MM:SS with valid ranges (mirrors the Go
44
+ // canonicalizeTime, which rejects unpadded input).
45
+ const TIME_RE = /^([01]\d|2[0-3]):([0-5]\d)(:([0-5]\d))?$/;
46
+ const DATE_RE = /^(\d{4})-(\d{2})-(\d{2})$/;
47
+ // RFC 3339 date-time: requires the "T" separator and an explicit UTC
48
+ // "Z" or numeric offset — the same shape Go's time.RFC3339Nano accepts.
49
+ const TIMESTAMP_RE = /^\d{4}-\d{2}-\d{2}[Tt]\d{2}:\d{2}:\d{2}(\.\d+)?([Zz]|[+-]\d{2}:\d{2})$/;
50
+ /**
51
+ * Validate a caller-supplied field value against its declaration and
52
+ * return the canonical JSON encoding (see module doc). `null` means
53
+ * explicit null — valid here for any field; required-ness is write-path
54
+ * policy (updates only see the supplied subset), exactly as in the
55
+ * server's CanonicalizeValue.
56
+ *
57
+ * Error messages match the server's shape (`field "x" must be …`) so a
58
+ * client-side rejection reads the same as the server rejection it
59
+ * pre-empts.
60
+ */
61
+ export function coerceFieldValue(field, value) {
62
+ if (value === null)
63
+ return ok(null);
64
+ const name = field.name;
65
+ switch (field.type) {
66
+ case FieldType.string: {
67
+ if (typeof value !== "string")
68
+ return fail(`field "${name}" must be a string`);
69
+ const enums = field.enumValues;
70
+ if (enums.length > 0 && !enums.includes(value)) {
71
+ return fail(`field "${name}" must be one of [${enums.join(" ")}]`);
72
+ }
73
+ return ok(value);
74
+ }
75
+ case FieldType.integer: {
76
+ if (typeof value !== "number" || !Number.isInteger(value)) {
77
+ return fail(`field "${name}" must be an integer`);
78
+ }
79
+ // int64 on the server; reject values JS cannot carry exactly
80
+ // rather than silently submitting a rounded number.
81
+ if (!Number.isSafeInteger(value)) {
82
+ return fail(`field "${name}" is too large to represent exactly`);
83
+ }
84
+ return ok(value);
85
+ }
86
+ case FieldType.number: {
87
+ if (typeof value !== "number" || !Number.isFinite(value)) {
88
+ return fail(`field "${name}" must be a number`);
89
+ }
90
+ return ok(value);
91
+ }
92
+ case FieldType.bool: {
93
+ if (typeof value !== "boolean")
94
+ return fail(`field "${name}" must be a boolean`);
95
+ return ok(value);
96
+ }
97
+ case FieldType.timestamp: {
98
+ if (typeof value !== "string" || !TIMESTAMP_RE.test(value) || Number.isNaN(Date.parse(value))) {
99
+ return fail(`field "${name}" must be an RFC 3339 timestamp (e.g. 2026-07-21T04:30:00Z)`);
100
+ }
101
+ // The server canonicalizes to UTC on write; submitting the parsed
102
+ // RFC 3339 value as-is (offset included) is valid input.
103
+ return ok(value);
104
+ }
105
+ case FieldType.date: {
106
+ if (typeof value !== "string" || !isValidCalendarDate(value)) {
107
+ return fail(`field "${name}" must be a valid YYYY-MM-DD date`);
108
+ }
109
+ return ok(value);
110
+ }
111
+ case FieldType.time: {
112
+ if (typeof value !== "string") {
113
+ return fail(`field "${name}" must be an HH:MM[:SS] time string`);
114
+ }
115
+ const m = TIME_RE.exec(value);
116
+ if (!m) {
117
+ return fail(`field "${name}" must be a valid zero-padded HH:MM[:SS] time`);
118
+ }
119
+ // Canonicalize HH:MM → HH:MM:SS so values compare lexicographically.
120
+ return ok(m[3] === undefined ? `${value}:00` : value);
121
+ }
122
+ case FieldType.json:
123
+ return ok(value);
124
+ default:
125
+ return fail(`field "${name}" has an unsupported type`);
126
+ }
127
+ }
128
+ /** Whether a YYYY-MM-DD string names a real calendar date (rejects 2026-02-30). */
129
+ function isValidCalendarDate(s) {
130
+ const m = DATE_RE.exec(s);
131
+ if (!m)
132
+ return false;
133
+ const [, y, mo, d] = m;
134
+ const date = new Date(Date.UTC(Number(y), Number(mo) - 1, Number(d)));
135
+ return (date.getUTCFullYear() === Number(y) &&
136
+ date.getUTCMonth() === Number(mo) - 1 &&
137
+ date.getUTCDate() === Number(d));
138
+ }
139
+ /**
140
+ * Format a canonical field value for grid-cell display. Values render
141
+ * in their DD-004 canonical encodings (honest, timezone-free); the one
142
+ * concession to readability is trimming a timestamp's zero fractional
143
+ * seconds (storage pads to nine digits for lexicographic ordering —
144
+ * "…T04:30:00.000000000Z" and "…T04:30:00Z" are the same RFC 3339 UTC
145
+ * instant).
146
+ */
147
+ export function formatFieldValue(type, value) {
148
+ if (value === null || value === undefined)
149
+ return "";
150
+ switch (type) {
151
+ case FieldType.timestamp:
152
+ return typeof value === "string" ? trimZeroFraction(value) : String(value);
153
+ case FieldType.json:
154
+ return JSON.stringify(value);
155
+ case FieldType.bool:
156
+ return value === true ? "true" : "false";
157
+ default:
158
+ return String(value);
159
+ }
160
+ }
161
+ /** Also used for the envelope's created_at/updated_at system columns. */
162
+ export function formatSystemTimestamp(value) {
163
+ return trimZeroFraction(value);
164
+ }
165
+ function trimZeroFraction(ts) {
166
+ return ts.replace(/\.0+Z$/, "Z");
167
+ }
168
+ /**
169
+ * The per-type operator matrix (record_io.proto @internal, DD-005 SD-2)
170
+ * — a projection of the server's opsForFieldType. The filter builder
171
+ * offers exactly these, making an unservable operator structurally
172
+ * unofferable (DD-008 invariant 2):
173
+ *
174
+ * string (incl. enum): eq, neq, is_in, not_in
175
+ * bool: eq, neq
176
+ * integer, number,
177
+ * timestamp, date, time: eq, neq, gt, gte, lt, lte
178
+ * json: not filterable
179
+ * + is_null / not_null on any optional (non-required) field
180
+ */
181
+ export function operatorsForField(field) {
182
+ const base = baseOperatorsForType(field.type);
183
+ if (base.length === 0)
184
+ return [];
185
+ return field.required
186
+ ? base
187
+ : [...base, RecordConditionOp.is_null, RecordConditionOp.not_null];
188
+ }
189
+ function baseOperatorsForType(type) {
190
+ switch (type) {
191
+ case FieldType.string:
192
+ return [
193
+ RecordConditionOp.eq,
194
+ RecordConditionOp.neq,
195
+ RecordConditionOp.is_in,
196
+ RecordConditionOp.not_in,
197
+ ];
198
+ case FieldType.bool:
199
+ return [RecordConditionOp.eq, RecordConditionOp.neq];
200
+ case FieldType.integer:
201
+ case FieldType.number:
202
+ case FieldType.timestamp:
203
+ case FieldType.date:
204
+ case FieldType.time:
205
+ return [
206
+ RecordConditionOp.eq,
207
+ RecordConditionOp.neq,
208
+ RecordConditionOp.gt,
209
+ RecordConditionOp.gte,
210
+ RecordConditionOp.lt,
211
+ RecordConditionOp.lte,
212
+ ];
213
+ default:
214
+ // json (and unspecified) are not filterable.
215
+ return [];
216
+ }
217
+ }
218
+ /**
219
+ * The filterable system fields and their operator sets (mirrors the
220
+ * server's buildSystemCondition): `id` by identity, the audit
221
+ * timestamps by range. `created_by`, `org`, and `partition` are not
222
+ * filterable — attribution is the grant system's privacy boundary and
223
+ * partition is ambient scope, never data.
224
+ */
225
+ export const SYSTEM_FIELD_OPERATORS = new Map([
226
+ ["id", [RecordConditionOp.eq, RecordConditionOp.is_in]],
227
+ [
228
+ "created_at",
229
+ [RecordConditionOp.gt, RecordConditionOp.gte, RecordConditionOp.lt, RecordConditionOp.lte],
230
+ ],
231
+ [
232
+ "updated_at",
233
+ [RecordConditionOp.gt, RecordConditionOp.gte, RecordConditionOp.lt, RecordConditionOp.lte],
234
+ ],
235
+ ]);
236
+ /** Operators that take no value (null tests). */
237
+ export function isValuelessOperator(op) {
238
+ return op === RecordConditionOp.is_null || op === RecordConditionOp.not_null;
239
+ }
240
+ /** Operators that take a value list (`values`) rather than a scalar. */
241
+ export function isListOperator(op) {
242
+ return op === RecordConditionOp.is_in || op === RecordConditionOp.not_in;
243
+ }
244
+ /**
245
+ * Human labels for the filter builder and chips. `is_in` is displayed
246
+ * as "in" — the proto spelling exists only because `in` is reserved in
247
+ * Java/Python, a substrate detail operators never see.
248
+ */
249
+ export const OPERATOR_LABELS = new Map([
250
+ [RecordConditionOp.eq, "="],
251
+ [RecordConditionOp.neq, "≠"],
252
+ [RecordConditionOp.gt, ">"],
253
+ [RecordConditionOp.gte, "≥"],
254
+ [RecordConditionOp.lt, "<"],
255
+ [RecordConditionOp.lte, "≤"],
256
+ [RecordConditionOp.is_in, "in"],
257
+ [RecordConditionOp.not_in, "not in"],
258
+ [RecordConditionOp.is_null, "is empty"],
259
+ [RecordConditionOp.not_null, "is not empty"],
260
+ ]);
261
+ /**
262
+ * Sortable fields: any declared non-json field, plus the system id and
263
+ * audit timestamps (mirrors the server's BuildOrderBy).
264
+ */
265
+ export function isSortableField(field) {
266
+ return field.type !== FieldType.json && field.type !== FieldType.field_type_unspecified;
267
+ }
268
+ /**
269
+ * Build an update payload from per-field edits (DD-005 partial merge).
270
+ * The RPC's tri-state: a key present with a value replaces the field, a
271
+ * key present with `null` explicitly clears it, an absent key leaves
272
+ * the stored value untouched. Callers pass only the dirty fields —
273
+ * cleared ones as `null`.
274
+ */
275
+ export function buildUpdateFields(edits) {
276
+ const out = {};
277
+ for (const [name, value] of edits) {
278
+ out[name] = value;
279
+ }
280
+ return out;
281
+ }
282
+ //# sourceMappingURL=recordValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordValues.js","sourceRoot":"","sources":["../../src/datastore/recordValues.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { Datastore } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/api_pb";
2
+ /** Return value of {@link useDatastore}. */
3
+ export interface UseDatastoreReturn {
4
+ /** The resolved datastore, or `null` while loading, on error, or when not found. */
5
+ readonly datastore: Datastore | null;
6
+ /** `true` while the initial fetch is in flight. */
7
+ readonly isLoading: boolean;
8
+ /** `true` while a background refetch is in flight. */
9
+ readonly isRefetching: boolean;
10
+ /** Error from the last failed request, or `null` when healthy. */
11
+ readonly error: Error | null;
12
+ /** Discard cached data and re-fetch the datastore from the server. */
13
+ readonly refetch: () => void;
14
+ }
15
+ /**
16
+ * Data hook that fetches a single Datastore by organization and slug.
17
+ *
18
+ * Wraps `stigmer.datastore.getByReference()` with loading, error, and
19
+ * not-found state management. The loaded resource carries the spec
20
+ * (collections, fields, constraints, authorization) and status (sync
21
+ * report, per-collection record counts) — the authoritative source for
22
+ * every structural view (DD-008 SD-5: spec for structure, status for
23
+ * health; `describeDatastore` is consulted only for caller-effective
24
+ * verbs — see {@link useDatastoreDescription}).
25
+ *
26
+ * Pass `null` for either `org` or `slug` to skip fetching (stable
27
+ * no-op).
28
+ *
29
+ * **Not-found handling:** a NOT_FOUND response sets `datastore` to
30
+ * `null` without raising an error; `datastore === null && !isLoading
31
+ * && !error` means the resource does not exist.
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * const { datastore, isLoading, error } = useDatastore("acme", "clinic");
36
+ * ```
37
+ */
38
+ export declare function useDatastore(org: string | null, slug: string | null): UseDatastoreReturn;
39
+ //# sourceMappingURL=useDatastore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDatastore.d.ts","sourceRoot":"","sources":["../../src/datastore/useDatastore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wDAAwD,CAAC;AAKxF,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,kBAAkB,CAmBpB"}
@@ -0,0 +1,44 @@
1
+ "use client";
2
+ import { isNotFound } from "@stigmer/sdk";
3
+ import { useStigmer } from "../hooks.js";
4
+ import { useFetch } from "../internal/useFetch.js";
5
+ /**
6
+ * Data hook that fetches a single Datastore by organization and slug.
7
+ *
8
+ * Wraps `stigmer.datastore.getByReference()` with loading, error, and
9
+ * not-found state management. The loaded resource carries the spec
10
+ * (collections, fields, constraints, authorization) and status (sync
11
+ * report, per-collection record counts) — the authoritative source for
12
+ * every structural view (DD-008 SD-5: spec for structure, status for
13
+ * health; `describeDatastore` is consulted only for caller-effective
14
+ * verbs — see {@link useDatastoreDescription}).
15
+ *
16
+ * Pass `null` for either `org` or `slug` to skip fetching (stable
17
+ * no-op).
18
+ *
19
+ * **Not-found handling:** a NOT_FOUND response sets `datastore` to
20
+ * `null` without raising an error; `datastore === null && !isLoading
21
+ * && !error` means the resource does not exist.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * const { datastore, isLoading, error } = useDatastore("acme", "clinic");
26
+ * ```
27
+ */
28
+ export function useDatastore(org, slug) {
29
+ const stigmer = useStigmer();
30
+ const { data: datastore, isLoading, isRefetching, error, refetch } = useFetch(org && slug
31
+ ? async () => {
32
+ try {
33
+ return await stigmer.datastore.getByReference({ org, slug });
34
+ }
35
+ catch (err) {
36
+ if (isNotFound(err))
37
+ return null;
38
+ throw err;
39
+ }
40
+ }
41
+ : null, [org, slug, stigmer], null);
42
+ return { datastore, isLoading, isRefetching, error, refetch };
43
+ }
44
+ //# sourceMappingURL=useDatastore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDatastore.js","sourceRoot":"","sources":["../../src/datastore/useDatastore.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAgBnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAkB,EAClB,IAAmB;IAEnB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAC3E,GAAG,IAAI,IAAI;QACT,CAAC,CAAC,KAAK,IAAI,EAAE;YACT,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,UAAU,CAAC,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACjC,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACH,CAAC,CAAC,IAAI,EACR,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EACpB,IAAI,CACL,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAChE,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { type ResourceListScope } from "../search/index.js";
2
+ /** Options for {@link useDatastoreCount}. */
3
+ export interface UseDatastoreCountOptions {
4
+ /** Text query to filter datastores before counting. */
5
+ readonly query?: string;
6
+ /**
7
+ * Controls which datastores are counted.
8
+ *
9
+ * - `"org"` — only datastores owned by the given organization.
10
+ * - `"all"` — includes public/platform datastores.
11
+ *
12
+ * @default "org"
13
+ */
14
+ readonly scope?: ResourceListScope;
15
+ }
16
+ /** Return value of {@link useDatastoreCount}. */
17
+ export interface UseDatastoreCountReturn {
18
+ /**
19
+ * Total number of datastores matching the current filters. `undefined`
20
+ * until the first successful fetch completes.
21
+ */
22
+ readonly count: number | undefined;
23
+ /** `true` while the count fetch is in flight. */
24
+ readonly isLoading: boolean;
25
+ /** Error from the last failed request, or `null` when healthy. */
26
+ readonly error: Error | null;
27
+ /** Discard cached data and re-fetch the count from the server. */
28
+ readonly refetch: () => void;
29
+ }
30
+ /**
31
+ * Data hook that fetches the total count of datastores.
32
+ *
33
+ * Issues a minimal `stigmer.datastore.list()` call to retrieve only the
34
+ * total count — no datastore entries are returned or stored. Useful for
35
+ * the Library landing card and dashboard widgets.
36
+ *
37
+ * For the full paginated datastore list, use {@link useDatastoreList}
38
+ * instead.
39
+ *
40
+ * Pass `null` as `org` to skip fetching (stable no-op).
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * const { count, isLoading } = useDatastoreCount("acme");
45
+ * ```
46
+ */
47
+ export declare function useDatastoreCount(org: string | null, options?: UseDatastoreCountOptions): UseDatastoreCountReturn;
48
+ //# sourceMappingURL=useDatastoreCount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDatastoreCount.d.ts","sourceRoot":"","sources":["../../src/datastore/useDatastoreCount.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,iDAAiD;IACjD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,OAAO,CAAC,EAAE,wBAAwB,GACjC,uBAAuB,CAUzB"}
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import { useCallback } from "react";
3
+ import { useStigmer } from "../hooks.js";
4
+ import { useResourceCount } from "../search/index.js";
5
+ /**
6
+ * Data hook that fetches the total count of datastores.
7
+ *
8
+ * Issues a minimal `stigmer.datastore.list()` call to retrieve only the
9
+ * total count — no datastore entries are returned or stored. Useful for
10
+ * the Library landing card and dashboard widgets.
11
+ *
12
+ * For the full paginated datastore list, use {@link useDatastoreList}
13
+ * instead.
14
+ *
15
+ * Pass `null` as `org` to skip fetching (stable no-op).
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * const { count, isLoading } = useDatastoreCount("acme");
20
+ * ```
21
+ */
22
+ export function useDatastoreCount(org, options) {
23
+ const stigmer = useStigmer();
24
+ const listFn = useCallback((params) => stigmer.datastore.list(params), [stigmer]);
25
+ return useResourceCount(listFn, org, options);
26
+ }
27
+ //# sourceMappingURL=useDatastoreCount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDatastoreCount.js","sourceRoot":"","sources":["../../src/datastore/useDatastoreCount.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAA0B,MAAM,oBAAoB,CAAC;AAgC9E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAkB,EAClB,OAAkC;IAElC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,MAAoD,EAAE,EAAE,CACvD,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAChC,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { type DatastoreDescription } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/record_io_pb";
2
+ /** The partition every datastore starts with (DD-010). */
3
+ export declare const DEFAULT_PARTITION = "default";
4
+ /** Return value of {@link useDatastoreDescription}. */
5
+ export interface UseDatastoreDescriptionReturn {
6
+ /** The caller-effective description, or `null` while loading or on error. */
7
+ readonly description: DatastoreDescription | null;
8
+ /**
9
+ * Selectable data partitions: the datastore's partition catalog with
10
+ * `"default"` always present. The catalog materializes with the first
11
+ * record write, so on an empty datastore it reports nothing — but the
12
+ * default partition is always addressable (DD-010: unset partition
13
+ * means `"default"`), so the picker must always offer it.
14
+ */
15
+ readonly partitions: readonly string[];
16
+ /** `true` while the initial fetch is in flight. */
17
+ readonly isLoading: boolean;
18
+ /** `true` while a background refetch is in flight. */
19
+ readonly isRefetching: boolean;
20
+ /** Error from the last failed request, or `null` when healthy. */
21
+ readonly error: Error | null;
22
+ /** Discard cached data and re-fetch the description from the server. */
23
+ readonly refetch: () => void;
24
+ }
25
+ /**
26
+ * Data hook that fetches the caller-effective view of a datastore via
27
+ * `describeDatastore`.
28
+ *
29
+ * This is the console's **only** source of caller-effective record
30
+ * verbs (DD-008 SD-2): record grants are datastore domain logic, not
31
+ * FGA, so resource-layer permission checks structurally cannot answer
32
+ * "may I insert into bookings?". Every record write affordance gates on
33
+ * the per-collection `access` lists returned here — and those lists are
34
+ * projections, never authority: the server's record layer remains the
35
+ * enforcer, so a stale projection degrades to a clean denial.
36
+ *
37
+ * **Denied-state semantics** (DD-008 SD-3): a caller with resource
38
+ * visibility but no record grants gets a successful response with
39
+ * empty `access` lists — deny-by-default renders as empty access,
40
+ * never an error. A reach-level `PERMISSION_DENIED` (no
41
+ * `can_use_records` in cloud) surfaces as `error`; consumers render
42
+ * both as the Records-tab denied panel, not a page-level failure.
43
+ *
44
+ * Pass `null` for `org` or `datastore` to skip fetching (stable no-op).
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * const { description, partitions } = useDatastoreDescription("acme", "clinic");
49
+ * const bookings = description?.collections.find((c) => c.name === "bookings");
50
+ * const canInsert = bookings?.access.some((a) => a.verb === DatastoreVerb.insert);
51
+ * ```
52
+ */
53
+ export declare function useDatastoreDescription(org: string | null, datastore: string | null): UseDatastoreDescriptionReturn;
54
+ //# sourceMappingURL=useDatastoreDescription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDatastoreDescription.d.ts","sourceRoot":"","sources":["../../src/datastore/useDatastoreDescription.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,8DAA8D,CAAC;AAItE,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,uDAAuD;AACvD,MAAM,WAAW,6BAA6B;IAC5C,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,6BAA6B,CAsB/B"}
@@ -0,0 +1,50 @@
1
+ "use client";
2
+ import { useMemo } from "react";
3
+ import { create } from "@bufbuild/protobuf";
4
+ import { DescribeDatastoreRequestSchema, } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/record_io_pb";
5
+ import { useStigmer } from "../hooks.js";
6
+ import { useFetch } from "../internal/useFetch.js";
7
+ /** The partition every datastore starts with (DD-010). */
8
+ export const DEFAULT_PARTITION = "default";
9
+ /**
10
+ * Data hook that fetches the caller-effective view of a datastore via
11
+ * `describeDatastore`.
12
+ *
13
+ * This is the console's **only** source of caller-effective record
14
+ * verbs (DD-008 SD-2): record grants are datastore domain logic, not
15
+ * FGA, so resource-layer permission checks structurally cannot answer
16
+ * "may I insert into bookings?". Every record write affordance gates on
17
+ * the per-collection `access` lists returned here — and those lists are
18
+ * projections, never authority: the server's record layer remains the
19
+ * enforcer, so a stale projection degrades to a clean denial.
20
+ *
21
+ * **Denied-state semantics** (DD-008 SD-3): a caller with resource
22
+ * visibility but no record grants gets a successful response with
23
+ * empty `access` lists — deny-by-default renders as empty access,
24
+ * never an error. A reach-level `PERMISSION_DENIED` (no
25
+ * `can_use_records` in cloud) surfaces as `error`; consumers render
26
+ * both as the Records-tab denied panel, not a page-level failure.
27
+ *
28
+ * Pass `null` for `org` or `datastore` to skip fetching (stable no-op).
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * const { description, partitions } = useDatastoreDescription("acme", "clinic");
33
+ * const bookings = description?.collections.find((c) => c.name === "bookings");
34
+ * const canInsert = bookings?.access.some((a) => a.verb === DatastoreVerb.insert);
35
+ * ```
36
+ */
37
+ export function useDatastoreDescription(org, datastore) {
38
+ const stigmer = useStigmer();
39
+ const { data: description, isLoading, isRefetching, error, refetch } = useFetch(org && datastore
40
+ ? () => stigmer.datastore.describeDatastore(create(DescribeDatastoreRequestSchema, { org, datastore }))
41
+ : null, [org, datastore, stigmer], null);
42
+ const partitions = useMemo(() => {
43
+ const catalog = description?.partitions ?? [];
44
+ return catalog.includes(DEFAULT_PARTITION)
45
+ ? catalog
46
+ : [DEFAULT_PARTITION, ...catalog];
47
+ }, [description]);
48
+ return { description, partitions, isLoading, isRefetching, error, refetch };
49
+ }
50
+ //# sourceMappingURL=useDatastoreDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDatastoreDescription.js","sourceRoot":"","sources":["../../src/datastore/useDatastoreDescription.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,8BAA8B,GAE/B,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAwB3C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAkB,EAClB,SAAwB;IAExB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAC7E,GAAG,IAAI,SAAS;QACd,CAAC,CAAC,GAAG,EAAE,CACH,OAAO,CAAC,SAAS,CAAC,iBAAiB,CACjC,MAAM,CAAC,8BAA8B,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAC3D;QACL,CAAC,CAAC,IAAI,EACR,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EACzB,IAAI,CACL,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,MAAM,OAAO,GAAG,WAAW,EAAE,UAAU,IAAI,EAAE,CAAC;QAC9C,OAAO,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACxC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,OAAO,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { SearchResult } from "@stigmer/protos/ai/stigmer/search/v1/io_pb";
2
+ import { type ResourceListScope } from "../search/index.js";
3
+ /** Options for {@link useDatastoreList}. */
4
+ export interface UseDatastoreListOptions {
5
+ /** Maximum datastores per page. @default 20 */
6
+ readonly pageSize?: number;
7
+ /** Page number (1-indexed). @default 1 */
8
+ readonly page?: number;
9
+ /** Text query to filter datastores by name, description, or tags. */
10
+ readonly query?: string;
11
+ /**
12
+ * Controls which datastores are visible.
13
+ *
14
+ * - `"org"` — only datastores owned by the given organization.
15
+ * - `"all"` — includes public/platform datastores.
16
+ *
17
+ * @default "org"
18
+ */
19
+ readonly scope?: ResourceListScope;
20
+ }
21
+ /** Return value of {@link useDatastoreList}. */
22
+ export interface UseDatastoreListReturn {
23
+ /** Paginated datastore entries for the current page. */
24
+ readonly datastores: readonly SearchResult[];
25
+ /** Total number of datastores matching the current filters. */
26
+ readonly totalCount: number;
27
+ /** Total pages available at the current page size. */
28
+ readonly totalPages: number;
29
+ /** The current page number (mirrors the `page` option). */
30
+ readonly currentPage: number;
31
+ /** `true` while the initial fetch or a refetch is in flight. */
32
+ readonly isLoading: boolean;
33
+ /** Error from the last failed request, or `null` when healthy. */
34
+ readonly error: Error | null;
35
+ /** Discard cached data and re-fetch the current page from the server. */
36
+ readonly refetch: () => void;
37
+ }
38
+ /**
39
+ * Data hook that fetches a paginated list of datastores for the Library.
40
+ *
41
+ * Wraps `stigmer.datastore.list()` (SearchService-backed) with
42
+ * pagination, scope filtering, and text search. All parameters are
43
+ * externally controlled — the consumer manages page state, query
44
+ * debouncing, and scope toggling.
45
+ *
46
+ * Pass `null` as `org` to skip fetching (stable no-op).
47
+ *
48
+ * @example
49
+ * ```tsx
50
+ * const { datastores, totalCount, isLoading } = useDatastoreList("acme", {
51
+ * page: 1,
52
+ * pageSize: 20,
53
+ * });
54
+ * ```
55
+ */
56
+ export declare function useDatastoreList(org: string | null, options?: UseDatastoreListOptions): UseDatastoreListReturn;
57
+ //# sourceMappingURL=useDatastoreList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDatastoreList.d.ts","sourceRoot":"","sources":["../../src/datastore/useDatastoreList.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE/E,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IAC7C,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,OAAO,CAAC,EAAE,uBAAuB,GAChC,sBAAsB,CAaxB"}