@stigmer/react 3.2.3 → 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 (402) 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/BaselineEditor.d.ts +9 -0
  5. package/billing/BaselineEditor.d.ts.map +1 -0
  6. package/billing/BaselineEditor.js +253 -0
  7. package/billing/BaselineEditor.js.map +1 -0
  8. package/billing/ModelCatalogPanel.d.ts +28 -0
  9. package/billing/ModelCatalogPanel.d.ts.map +1 -0
  10. package/billing/ModelCatalogPanel.js +102 -0
  11. package/billing/ModelCatalogPanel.js.map +1 -0
  12. package/billing/ModelGovernanceDetail.d.ts +8 -0
  13. package/billing/ModelGovernanceDetail.d.ts.map +1 -0
  14. package/billing/ModelGovernanceDetail.js +64 -0
  15. package/billing/ModelGovernanceDetail.js.map +1 -0
  16. package/billing/OperatorAccessNotice.d.ts +12 -0
  17. package/billing/OperatorAccessNotice.d.ts.map +1 -0
  18. package/billing/OperatorAccessNotice.js +15 -0
  19. package/billing/OperatorAccessNotice.js.map +1 -0
  20. package/billing/PricingGovernanceConsole.d.ts +57 -0
  21. package/billing/PricingGovernanceConsole.d.ts.map +1 -0
  22. package/billing/PricingGovernanceConsole.js +164 -0
  23. package/billing/PricingGovernanceConsole.js.map +1 -0
  24. package/billing/PricingGovernancePanel.d.ts +26 -0
  25. package/billing/PricingGovernancePanel.d.ts.map +1 -0
  26. package/billing/PricingGovernancePanel.js +64 -0
  27. package/billing/PricingGovernancePanel.js.map +1 -0
  28. package/billing/RetireConfirm.d.ts +9 -0
  29. package/billing/RetireConfirm.d.ts.map +1 -0
  30. package/billing/RetireConfirm.js +19 -0
  31. package/billing/RetireConfirm.js.map +1 -0
  32. package/billing/form-primitives.d.ts +18 -0
  33. package/billing/form-primitives.d.ts.map +1 -0
  34. package/billing/form-primitives.js +19 -0
  35. package/billing/form-primitives.js.map +1 -0
  36. package/billing/governance-primitives.d.ts +33 -0
  37. package/billing/governance-primitives.d.ts.map +1 -0
  38. package/billing/governance-primitives.js +43 -0
  39. package/billing/governance-primitives.js.map +1 -0
  40. package/billing/index.d.ts +18 -0
  41. package/billing/index.d.ts.map +1 -1
  42. package/billing/index.js +9 -0
  43. package/billing/index.js.map +1 -1
  44. package/billing/pricing-format.d.ts +12 -0
  45. package/billing/pricing-format.d.ts.map +1 -0
  46. package/billing/pricing-format.js +50 -0
  47. package/billing/pricing-format.js.map +1 -0
  48. package/billing/useDecidePricingOverride.d.ts +46 -0
  49. package/billing/useDecidePricingOverride.d.ts.map +1 -0
  50. package/billing/useDecidePricingOverride.js +44 -0
  51. package/billing/useDecidePricingOverride.js.map +1 -0
  52. package/billing/useModelGovernanceView.d.ts +103 -0
  53. package/billing/useModelGovernanceView.d.ts.map +1 -0
  54. package/billing/useModelGovernanceView.js +144 -0
  55. package/billing/useModelGovernanceView.js.map +1 -0
  56. package/billing/useModelPricingBaselines.d.ts +40 -0
  57. package/billing/useModelPricingBaselines.d.ts.map +1 -0
  58. package/billing/useModelPricingBaselines.js +32 -0
  59. package/billing/useModelPricingBaselines.js.map +1 -0
  60. package/billing/usePricingGovernance.d.ts +39 -0
  61. package/billing/usePricingGovernance.d.ts.map +1 -0
  62. package/billing/usePricingGovernance.js +31 -0
  63. package/billing/usePricingGovernance.js.map +1 -0
  64. package/billing/useRetireModelPricingBaseline.d.ts +31 -0
  65. package/billing/useRetireModelPricingBaseline.d.ts.map +1 -0
  66. package/billing/useRetireModelPricingBaseline.js +36 -0
  67. package/billing/useRetireModelPricingBaseline.js.map +1 -0
  68. package/billing/useUpsertModelPricingBaseline.d.ts +38 -0
  69. package/billing/useUpsertModelPricingBaseline.d.ts.map +1 -0
  70. package/billing/useUpsertModelPricingBaseline.js +37 -0
  71. package/billing/useUpsertModelPricingBaseline.js.map +1 -0
  72. package/channel/AgentChannelsPanel.d.ts.map +1 -1
  73. package/channel/AgentChannelsPanel.js +11 -5
  74. package/channel/AgentChannelsPanel.js.map +1 -1
  75. package/composer/SessionComposer.d.ts +1 -1
  76. package/cursor-accounts/CursorAccountEditor.d.ts +28 -0
  77. package/cursor-accounts/CursorAccountEditor.d.ts.map +1 -0
  78. package/cursor-accounts/CursorAccountEditor.js +51 -0
  79. package/cursor-accounts/CursorAccountEditor.js.map +1 -0
  80. package/cursor-accounts/CursorAccountsAccessNotice.d.ts +11 -0
  81. package/cursor-accounts/CursorAccountsAccessNotice.d.ts.map +1 -0
  82. package/cursor-accounts/CursorAccountsAccessNotice.js +14 -0
  83. package/cursor-accounts/CursorAccountsAccessNotice.js.map +1 -0
  84. package/cursor-accounts/CursorAccountsConsole.d.ts +28 -0
  85. package/cursor-accounts/CursorAccountsConsole.d.ts.map +1 -0
  86. package/cursor-accounts/CursorAccountsConsole.js +275 -0
  87. package/cursor-accounts/CursorAccountsConsole.js.map +1 -0
  88. package/cursor-accounts/cursor-account-format.d.ts +10 -0
  89. package/cursor-accounts/cursor-account-format.d.ts.map +1 -0
  90. package/cursor-accounts/cursor-account-format.js +26 -0
  91. package/cursor-accounts/cursor-account-format.js.map +1 -0
  92. package/cursor-accounts/index.d.ts +18 -0
  93. package/cursor-accounts/index.d.ts.map +1 -0
  94. package/cursor-accounts/index.js +13 -0
  95. package/cursor-accounts/index.js.map +1 -0
  96. package/cursor-accounts/useCursorAccountView.d.ts +30 -0
  97. package/cursor-accounts/useCursorAccountView.d.ts.map +1 -0
  98. package/cursor-accounts/useCursorAccountView.js +25 -0
  99. package/cursor-accounts/useCursorAccountView.js.map +1 -0
  100. package/cursor-accounts/useCursorAccounts.d.ts +33 -0
  101. package/cursor-accounts/useCursorAccounts.d.ts.map +1 -0
  102. package/cursor-accounts/useCursorAccounts.js +25 -0
  103. package/cursor-accounts/useCursorAccounts.js.map +1 -0
  104. package/cursor-accounts/useCursorMemberKeyActions.d.ts +49 -0
  105. package/cursor-accounts/useCursorMemberKeyActions.d.ts.map +1 -0
  106. package/cursor-accounts/useCursorMemberKeyActions.js +38 -0
  107. package/cursor-accounts/useCursorMemberKeyActions.js.map +1 -0
  108. package/cursor-accounts/useDeleteCursorAccount.d.ts +30 -0
  109. package/cursor-accounts/useDeleteCursorAccount.d.ts.map +1 -0
  110. package/cursor-accounts/useDeleteCursorAccount.js +32 -0
  111. package/cursor-accounts/useDeleteCursorAccount.js.map +1 -0
  112. package/cursor-accounts/useSyncCursorAccount.d.ts +23 -0
  113. package/cursor-accounts/useSyncCursorAccount.d.ts.map +1 -0
  114. package/cursor-accounts/useSyncCursorAccount.js +31 -0
  115. package/cursor-accounts/useSyncCursorAccount.js.map +1 -0
  116. package/cursor-accounts/useUpsertCursorAccount.d.ts +26 -0
  117. package/cursor-accounts/useUpsertCursorAccount.d.ts.map +1 -0
  118. package/cursor-accounts/useUpsertCursorAccount.js +34 -0
  119. package/cursor-accounts/useUpsertCursorAccount.js.map +1 -0
  120. package/datastore/CollectionRecordsBrowser.d.ts +34 -0
  121. package/datastore/CollectionRecordsBrowser.d.ts.map +1 -0
  122. package/datastore/CollectionRecordsBrowser.js +209 -0
  123. package/datastore/CollectionRecordsBrowser.js.map +1 -0
  124. package/datastore/CollectionSchemaView.d.ts +29 -0
  125. package/datastore/CollectionSchemaView.d.ts.map +1 -0
  126. package/datastore/CollectionSchemaView.js +93 -0
  127. package/datastore/CollectionSchemaView.js.map +1 -0
  128. package/datastore/DatastoreDetailView.d.ts +44 -0
  129. package/datastore/DatastoreDetailView.d.ts.map +1 -0
  130. package/datastore/DatastoreDetailView.js +76 -0
  131. package/datastore/DatastoreDetailView.js.map +1 -0
  132. package/datastore/DatastoreSyncReport.d.ts +19 -0
  133. package/datastore/DatastoreSyncReport.d.ts.map +1 -0
  134. package/datastore/DatastoreSyncReport.js +45 -0
  135. package/datastore/DatastoreSyncReport.js.map +1 -0
  136. package/datastore/DeleteDatastoreDialog.d.ts +35 -0
  137. package/datastore/DeleteDatastoreDialog.d.ts.map +1 -0
  138. package/datastore/DeleteDatastoreDialog.js +90 -0
  139. package/datastore/DeleteDatastoreDialog.js.map +1 -0
  140. package/datastore/FieldValueControl.d.ts +55 -0
  141. package/datastore/FieldValueControl.d.ts.map +1 -0
  142. package/datastore/FieldValueControl.js +138 -0
  143. package/datastore/FieldValueControl.js.map +1 -0
  144. package/datastore/RecordFilterBuilder.d.ts +30 -0
  145. package/datastore/RecordFilterBuilder.d.ts.map +1 -0
  146. package/datastore/RecordFilterBuilder.js +122 -0
  147. package/datastore/RecordFilterBuilder.js.map +1 -0
  148. package/datastore/RecordFormPanel.d.ts +45 -0
  149. package/datastore/RecordFormPanel.d.ts.map +1 -0
  150. package/datastore/RecordFormPanel.js +215 -0
  151. package/datastore/RecordFormPanel.js.map +1 -0
  152. package/datastore/index.d.ts +43 -0
  153. package/datastore/index.d.ts.map +1 -0
  154. package/datastore/index.js +22 -0
  155. package/datastore/index.js.map +1 -0
  156. package/datastore/recordFilter.d.ts +54 -0
  157. package/datastore/recordFilter.d.ts.map +1 -0
  158. package/datastore/recordFilter.js +93 -0
  159. package/datastore/recordFilter.js.map +1 -0
  160. package/datastore/recordValues.d.ts +85 -0
  161. package/datastore/recordValues.d.ts.map +1 -0
  162. package/datastore/recordValues.js +282 -0
  163. package/datastore/recordValues.js.map +1 -0
  164. package/datastore/useDatastore.d.ts +39 -0
  165. package/datastore/useDatastore.d.ts.map +1 -0
  166. package/datastore/useDatastore.js +44 -0
  167. package/datastore/useDatastore.js.map +1 -0
  168. package/datastore/useDatastoreCount.d.ts +48 -0
  169. package/datastore/useDatastoreCount.d.ts.map +1 -0
  170. package/datastore/useDatastoreCount.js +27 -0
  171. package/datastore/useDatastoreCount.js.map +1 -0
  172. package/datastore/useDatastoreDescription.d.ts +54 -0
  173. package/datastore/useDatastoreDescription.d.ts.map +1 -0
  174. package/datastore/useDatastoreDescription.js +50 -0
  175. package/datastore/useDatastoreDescription.js.map +1 -0
  176. package/datastore/useDatastoreList.d.ts +57 -0
  177. package/datastore/useDatastoreList.d.ts.map +1 -0
  178. package/datastore/useDatastoreList.js +29 -0
  179. package/datastore/useDatastoreList.js.map +1 -0
  180. package/datastore/useDatastoreSearch.d.ts +19 -0
  181. package/datastore/useDatastoreSearch.d.ts.map +1 -0
  182. package/datastore/useDatastoreSearch.js +22 -0
  183. package/datastore/useDatastoreSearch.js.map +1 -0
  184. package/datastore/useDeleteDatastore.d.ts +53 -0
  185. package/datastore/useDeleteDatastore.d.ts.map +1 -0
  186. package/datastore/useDeleteDatastore.js +40 -0
  187. package/datastore/useDeleteDatastore.js.map +1 -0
  188. package/datastore/useDeleteRecord.d.ts +34 -0
  189. package/datastore/useDeleteRecord.d.ts.map +1 -0
  190. package/datastore/useDeleteRecord.js +43 -0
  191. package/datastore/useDeleteRecord.js.map +1 -0
  192. package/datastore/useInsertRecord.d.ts +50 -0
  193. package/datastore/useInsertRecord.d.ts.map +1 -0
  194. package/datastore/useInsertRecord.js +55 -0
  195. package/datastore/useInsertRecord.js.map +1 -0
  196. package/datastore/useRecordCollection.d.ts +104 -0
  197. package/datastore/useRecordCollection.d.ts.map +1 -0
  198. package/datastore/useRecordCollection.js +136 -0
  199. package/datastore/useRecordCollection.js.map +1 -0
  200. package/datastore/useRecordList.d.ts +66 -0
  201. package/datastore/useRecordList.d.ts.map +1 -0
  202. package/datastore/useRecordList.js +58 -0
  203. package/datastore/useRecordList.js.map +1 -0
  204. package/datastore/useUpdateRecord.d.ts +52 -0
  205. package/datastore/useUpdateRecord.d.ts.map +1 -0
  206. package/datastore/useUpdateRecord.js +55 -0
  207. package/datastore/useUpdateRecord.js.map +1 -0
  208. package/environment/EnvironmentListPanel.d.ts.map +1 -1
  209. package/environment/EnvironmentListPanel.js +12 -7
  210. package/environment/EnvironmentListPanel.js.map +1 -1
  211. package/iam-policy/index.d.ts +1 -1
  212. package/iam-policy/index.d.ts.map +1 -1
  213. package/iam-policy/index.js.map +1 -1
  214. package/iam-policy/useCheckPermission.d.ts +32 -11
  215. package/iam-policy/useCheckPermission.d.ts.map +1 -1
  216. package/iam-policy/useCheckPermission.js +24 -19
  217. package/iam-policy/useCheckPermission.js.map +1 -1
  218. package/index.d.ts +12 -6
  219. package/index.d.ts.map +1 -1
  220. package/index.js +14 -3
  221. package/index.js.map +1 -1
  222. package/library/index.d.ts +0 -7
  223. package/library/index.d.ts.map +1 -1
  224. package/library/index.js +0 -4
  225. package/library/index.js.map +1 -1
  226. package/library/useApplyResource.d.ts +12 -12
  227. package/library/useApplyResource.d.ts.map +1 -1
  228. package/library/useApplyResource.js +16 -25
  229. package/library/useApplyResource.js.map +1 -1
  230. package/library/useExportResource.d.ts +13 -9
  231. package/library/useExportResource.d.ts.map +1 -1
  232. package/library/useExportResource.js +18 -36
  233. package/library/useExportResource.js.map +1 -1
  234. package/manifest/ApplyManifestDialog.d.ts +48 -0
  235. package/manifest/ApplyManifestDialog.d.ts.map +1 -0
  236. package/manifest/ApplyManifestDialog.js +135 -0
  237. package/manifest/ApplyManifestDialog.js.map +1 -0
  238. package/manifest/EditResourceYamlDialog.d.ts +51 -0
  239. package/manifest/EditResourceYamlDialog.d.ts.map +1 -0
  240. package/manifest/EditResourceYamlDialog.js +104 -0
  241. package/manifest/EditResourceYamlDialog.js.map +1 -0
  242. package/manifest/RedactedSecretsNotice.d.ts +14 -0
  243. package/manifest/RedactedSecretsNotice.d.ts.map +1 -0
  244. package/manifest/RedactedSecretsNotice.js +14 -0
  245. package/manifest/RedactedSecretsNotice.js.map +1 -0
  246. package/manifest/YamlEditor.d.ts +44 -0
  247. package/manifest/YamlEditor.d.ts.map +1 -0
  248. package/manifest/YamlEditor.js +216 -0
  249. package/manifest/YamlEditor.js.map +1 -0
  250. package/manifest/index.d.ts +13 -0
  251. package/manifest/index.d.ts.map +1 -0
  252. package/manifest/index.js +13 -0
  253. package/manifest/index.js.map +1 -0
  254. package/manifest/useApplyManifest.d.ts +82 -0
  255. package/manifest/useApplyManifest.d.ts.map +1 -0
  256. package/manifest/useApplyManifest.js +180 -0
  257. package/manifest/useApplyManifest.js.map +1 -0
  258. package/manifest/useEditResourceYaml.d.ts +106 -0
  259. package/manifest/useEditResourceYaml.d.ts.map +1 -0
  260. package/manifest/useEditResourceYaml.js +168 -0
  261. package/manifest/useEditResourceYaml.js.map +1 -0
  262. package/mcp-server/steps/ReviewStep.d.ts.map +1 -1
  263. package/mcp-server/steps/ReviewStep.js +2 -3
  264. package/mcp-server/steps/ReviewStep.js.map +1 -1
  265. package/package.json +4 -4
  266. package/resource-creation/templates/workflow-templates.js +4 -4
  267. package/session/useEditSessionPrep.js +3 -3
  268. package/session/useEditSessionPrep.js.map +1 -1
  269. package/settings/index.d.ts +2 -1
  270. package/settings/index.d.ts.map +1 -1
  271. package/settings/index.js +2 -1
  272. package/settings/index.js.map +1 -1
  273. package/settings/settings-nav.d.ts +22 -0
  274. package/settings/settings-nav.d.ts.map +1 -1
  275. package/settings/settings-nav.js +32 -1
  276. package/settings/settings-nav.js.map +1 -1
  277. package/settings/useSettingsNavGroups.d.ts +29 -0
  278. package/settings/useSettingsNavGroups.d.ts.map +1 -0
  279. package/settings/useSettingsNavGroups.js +61 -0
  280. package/settings/useSettingsNavGroups.js.map +1 -0
  281. package/src/agent/steps/ReviewStep.tsx +2 -3
  282. package/src/billing/BaselineEditor.tsx +619 -0
  283. package/src/billing/ModelCatalogPanel.tsx +283 -0
  284. package/src/billing/ModelGovernanceDetail.tsx +289 -0
  285. package/src/billing/OperatorAccessNotice.tsx +32 -0
  286. package/src/billing/PricingGovernanceConsole.tsx +465 -0
  287. package/src/billing/PricingGovernancePanel.tsx +166 -0
  288. package/src/billing/RetireConfirm.tsx +82 -0
  289. package/src/billing/__tests__/ModelCatalogPanel.test.tsx +253 -0
  290. package/src/billing/__tests__/PricingGovernanceConsole.test.tsx +410 -0
  291. package/src/billing/__tests__/useModelGovernanceView.test.tsx +308 -0
  292. package/src/billing/form-primitives.tsx +68 -0
  293. package/src/billing/governance-primitives.tsx +133 -0
  294. package/src/billing/index.ts +37 -0
  295. package/src/billing/pricing-format.ts +53 -0
  296. package/src/billing/useDecidePricingOverride.ts +78 -0
  297. package/src/billing/useModelGovernanceView.ts +290 -0
  298. package/src/billing/useModelPricingBaselines.ts +69 -0
  299. package/src/billing/usePricingGovernance.ts +57 -0
  300. package/src/billing/useRetireModelPricingBaseline.ts +65 -0
  301. package/src/billing/useUpsertModelPricingBaseline.ts +72 -0
  302. package/src/channel/AgentChannelsPanel.tsx +27 -1
  303. package/src/composer/SessionComposer.tsx +1 -1
  304. package/src/cursor-accounts/CursorAccountEditor.tsx +181 -0
  305. package/src/cursor-accounts/CursorAccountsAccessNotice.tsx +36 -0
  306. package/src/cursor-accounts/CursorAccountsConsole.tsx +810 -0
  307. package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +384 -0
  308. package/src/cursor-accounts/cursor-account-format.ts +29 -0
  309. package/src/cursor-accounts/index.ts +29 -0
  310. package/src/cursor-accounts/useCursorAccountView.ts +49 -0
  311. package/src/cursor-accounts/useCursorAccounts.ts +49 -0
  312. package/src/cursor-accounts/useCursorMemberKeyActions.ts +106 -0
  313. package/src/cursor-accounts/useDeleteCursorAccount.ts +62 -0
  314. package/src/cursor-accounts/useSyncCursorAccount.ts +54 -0
  315. package/src/cursor-accounts/useUpsertCursorAccount.ts +57 -0
  316. package/src/datastore/CollectionRecordsBrowser.tsx +544 -0
  317. package/src/datastore/CollectionSchemaView.tsx +247 -0
  318. package/src/datastore/DatastoreDetailView.tsx +201 -0
  319. package/src/datastore/DatastoreSyncReport.tsx +105 -0
  320. package/src/datastore/DeleteDatastoreDialog.tsx +202 -0
  321. package/src/datastore/FieldValueControl.tsx +289 -0
  322. package/src/datastore/RecordFilterBuilder.tsx +411 -0
  323. package/src/datastore/RecordFormPanel.tsx +432 -0
  324. package/src/datastore/__tests__/CollectionRecordsBrowser.test.tsx +207 -0
  325. package/src/datastore/__tests__/DeleteDatastoreDialog.test.tsx +133 -0
  326. package/src/datastore/__tests__/FieldValueControl.test.tsx +160 -0
  327. package/src/datastore/__tests__/RecordFilterBuilder.test.tsx +141 -0
  328. package/src/datastore/__tests__/RecordFormPanel.test.tsx +227 -0
  329. package/src/datastore/__tests__/recordFilter.test.ts +156 -0
  330. package/src/datastore/__tests__/recordMutations.test.tsx +195 -0
  331. package/src/datastore/__tests__/recordValues.test.ts +359 -0
  332. package/src/datastore/__tests__/schemaAndSyncViews.test.tsx +142 -0
  333. package/src/datastore/__tests__/useDatastoreDescription.test.tsx +143 -0
  334. package/src/datastore/__tests__/useRecordCollection.test.tsx +250 -0
  335. package/src/datastore/__tests__/useRecordList.test.tsx +85 -0
  336. package/src/datastore/index.ts +111 -0
  337. package/src/datastore/recordFilter.ts +140 -0
  338. package/src/datastore/recordValues.ts +327 -0
  339. package/src/datastore/useDatastore.ts +67 -0
  340. package/src/datastore/useDatastoreCount.ts +67 -0
  341. package/src/datastore/useDatastoreDescription.ts +90 -0
  342. package/src/datastore/useDatastoreList.ts +79 -0
  343. package/src/datastore/useDatastoreSearch.ts +39 -0
  344. package/src/datastore/useDeleteDatastore.ts +87 -0
  345. package/src/datastore/useDeleteRecord.ts +77 -0
  346. package/src/datastore/useInsertRecord.ts +92 -0
  347. package/src/datastore/useRecordCollection.ts +256 -0
  348. package/src/datastore/useRecordList.ts +131 -0
  349. package/src/datastore/useUpdateRecord.ts +95 -0
  350. package/src/environment/EnvironmentListPanel.tsx +24 -0
  351. package/src/execution/__tests__/useArtifactInspection.test.tsx +12 -2
  352. package/src/iam-policy/__tests__/useCheckPermission.test.tsx +221 -0
  353. package/src/iam-policy/index.ts +1 -0
  354. package/src/iam-policy/useCheckPermission.ts +45 -19
  355. package/src/index.ts +163 -13
  356. package/src/library/index.ts +0 -20
  357. package/src/library/useApplyResource.ts +27 -34
  358. package/src/library/useExportResource.ts +21 -40
  359. package/src/manifest/ApplyManifestDialog.tsx +315 -0
  360. package/src/manifest/EditResourceYamlDialog.tsx +265 -0
  361. package/src/manifest/RedactedSecretsNotice.tsx +30 -0
  362. package/src/manifest/YamlEditor.tsx +272 -0
  363. package/src/manifest/__tests__/EditResourceYamlDialog.test.tsx +118 -0
  364. package/src/manifest/__tests__/useApplyManifest.test.tsx +237 -0
  365. package/src/manifest/__tests__/useEditResourceYaml.test.tsx +252 -0
  366. package/src/manifest/index.ts +33 -0
  367. package/src/manifest/useApplyManifest.ts +270 -0
  368. package/src/manifest/useEditResourceYaml.ts +273 -0
  369. package/src/mcp-server/steps/ReviewStep.tsx +2 -3
  370. package/src/resource-creation/templates/workflow-templates.ts +4 -4
  371. package/src/session/useEditSessionPrep.ts +3 -3
  372. package/src/settings/__tests__/useSettingsNavGroups.test.tsx +138 -0
  373. package/src/settings/index.ts +5 -1
  374. package/src/settings/settings-nav.ts +43 -0
  375. package/src/settings/useSettingsNavGroups.ts +81 -0
  376. package/src/workflow/WorkflowYamlEditor.tsx +6 -270
  377. package/styles.css +1 -1
  378. package/workflow/CanvasTransitionEdge.d.ts +1 -1
  379. package/workflow/WorkflowYamlEditor.d.ts +2 -42
  380. package/workflow/WorkflowYamlEditor.d.ts.map +1 -1
  381. package/workflow/WorkflowYamlEditor.js +5 -214
  382. package/workflow/WorkflowYamlEditor.js.map +1 -1
  383. package/library/ImportResourceDialog.d.ts +0 -43
  384. package/library/ImportResourceDialog.d.ts.map +0 -1
  385. package/library/ImportResourceDialog.js +0 -90
  386. package/library/ImportResourceDialog.js.map +0 -1
  387. package/library/parse-resource-yaml.d.ts +0 -63
  388. package/library/parse-resource-yaml.d.ts.map +0 -1
  389. package/library/parse-resource-yaml.js +0 -407
  390. package/library/parse-resource-yaml.js.map +0 -1
  391. package/library/serialize-resource-yaml.d.ts +0 -103
  392. package/library/serialize-resource-yaml.d.ts.map +0 -1
  393. package/library/serialize-resource-yaml.js +0 -565
  394. package/library/serialize-resource-yaml.js.map +0 -1
  395. package/library/useImportResource.d.ts +0 -84
  396. package/library/useImportResource.d.ts.map +0 -1
  397. package/library/useImportResource.js +0 -188
  398. package/library/useImportResource.js.map +0 -1
  399. package/src/library/ImportResourceDialog.tsx +0 -227
  400. package/src/library/parse-resource-yaml.ts +0 -630
  401. package/src/library/serialize-resource-yaml.ts +0 -756
  402. package/src/library/useImportResource.ts +0 -253
@@ -0,0 +1,180 @@
1
+ "use client";
2
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
+ import { containsRedactedSecrets, parseManifest, } from "@stigmer/sdk";
4
+ import { useStigmer } from "../hooks.js";
5
+ import { toError } from "../internal/toError.js";
6
+ // Validation parses + resolves existence server-side; wait for a typing pause.
7
+ const VALIDATE_DEBOUNCE_MS = 500;
8
+ /**
9
+ * Headless "apply a YAML manifest" flow for any registry-supported kind —
10
+ * the console counterpart of `stigmer apply -f`.
11
+ *
12
+ * Orchestrates: paste or upload → strict parse against generated proto
13
+ * schemas ({@link parseManifest}) → per-document create-vs-update preview
14
+ * (server existence check) → sequential apply in dependency order with
15
+ * live per-document status.
16
+ *
17
+ * Accepts multi-document manifests (`---` separators) and JSON content
18
+ * (YAML is a superset). The target `org` is injected into documents that
19
+ * omit `metadata.org`; documents naming a *different* org are honored and
20
+ * apply there (matching `stigmer apply` semantics — the org-mismatch
21
+ * warning surfaces on the parsed document).
22
+ *
23
+ * @param org - Target organization slug for `metadata.org` injection.
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * const manifest = useApplyManifest(activeOrg);
28
+ *
29
+ * <textarea value={manifest.content}
30
+ * onChange={(e) => manifest.setContent(e.target.value)} />
31
+ * {manifest.entries?.map((e) => (
32
+ * <PreviewRow key={e.document.slug} entry={e} />
33
+ * ))}
34
+ * <button onClick={manifest.applyAll} disabled={!manifest.entries}>Apply</button>
35
+ * ```
36
+ *
37
+ * @see {@link ApplyManifestDialog} for the styled component composing this hook
38
+ * @see {@link useEditResourceYaml} for the edit-in-place counterpart
39
+ */
40
+ export function useApplyManifest(org) {
41
+ const stigmer = useStigmer();
42
+ const [content, setContentState] = useState("");
43
+ const [entries, setEntries] = useState(null);
44
+ const [validationError, setValidationError] = useState(null);
45
+ const [isValidating, setIsValidating] = useState(false);
46
+ const [isApplying, setIsApplying] = useState(false);
47
+ const orgRef = useRef(org);
48
+ orgRef.current = org;
49
+ const setContent = useCallback((value) => {
50
+ setContentState(value);
51
+ }, []);
52
+ const readFile = useCallback(async (file) => {
53
+ let text;
54
+ try {
55
+ text = await file.text();
56
+ }
57
+ catch {
58
+ setContentState("");
59
+ setEntries(null);
60
+ setValidationError(`Failed to read ${file.name}.`);
61
+ return;
62
+ }
63
+ setContentState(text);
64
+ }, []);
65
+ const reset = useCallback(() => {
66
+ setContentState("");
67
+ setEntries(null);
68
+ setValidationError(null);
69
+ setIsValidating(false);
70
+ setIsApplying(false);
71
+ }, []);
72
+ // Debounced validation + existence resolution, cancellation-safe. Applies
73
+ // freeze the preview: entries carry live statuses the validator must not
74
+ // clobber mid-run.
75
+ const validateSeq = useRef(0);
76
+ useEffect(() => {
77
+ if (isApplying)
78
+ return;
79
+ const seq = ++validateSeq.current;
80
+ if (!content.trim()) {
81
+ setEntries(null);
82
+ setValidationError(null);
83
+ setIsValidating(false);
84
+ return;
85
+ }
86
+ setIsValidating(true);
87
+ const timer = setTimeout(async () => {
88
+ let documents;
89
+ try {
90
+ documents = parseManifest(content, { org: orgRef.current });
91
+ }
92
+ catch (err) {
93
+ if (validateSeq.current === seq) {
94
+ setEntries(null);
95
+ setValidationError(toError(err).message);
96
+ setIsValidating(false);
97
+ }
98
+ return;
99
+ }
100
+ const resolved = await Promise.all(documents.map(async (document) => {
101
+ let action;
102
+ try {
103
+ const existing = await stigmer.manifest.getByReference(document.handler.yamlKind, document.org, document.slug);
104
+ action = existing !== null ? "update" : "create";
105
+ }
106
+ catch {
107
+ action = "unknown";
108
+ }
109
+ return { document, action, status: "pending" };
110
+ }));
111
+ if (validateSeq.current === seq) {
112
+ setEntries(resolved);
113
+ setValidationError(null);
114
+ setIsValidating(false);
115
+ }
116
+ }, VALIDATE_DEBOUNCE_MS);
117
+ return () => clearTimeout(timer);
118
+ }, [content, stigmer, isApplying]);
119
+ const applyAll = useCallback(async () => {
120
+ if (!entries || entries.length === 0)
121
+ return false;
122
+ // Invalidate any in-flight validation so it cannot clobber apply statuses.
123
+ validateSeq.current++;
124
+ setIsApplying(true);
125
+ // Local working copy — React state is updated per transition so the
126
+ // dialog renders progress live.
127
+ const working = entries.map((entry) => ({ ...entry, status: "pending" }));
128
+ const commit = () => setEntries([...working]);
129
+ let allApplied = true;
130
+ for (let i = 0; i < working.length; i++) {
131
+ if (!allApplied) {
132
+ working[i] = { ...working[i], status: "skipped" };
133
+ continue;
134
+ }
135
+ working[i] = { ...working[i], status: "applying" };
136
+ commit();
137
+ try {
138
+ const result = await stigmer.manifest.apply(working[i].document);
139
+ working[i] = { ...working[i], status: "applied", result };
140
+ }
141
+ catch (err) {
142
+ working[i] = {
143
+ ...working[i],
144
+ status: "failed",
145
+ errorMessage: toError(err).message,
146
+ };
147
+ allApplied = false;
148
+ }
149
+ commit();
150
+ }
151
+ commit();
152
+ setIsApplying(false);
153
+ return allApplied;
154
+ }, [entries, stigmer]);
155
+ const hasRedactedSecrets = useMemo(() => containsRedactedSecrets(content), [content]);
156
+ return useMemo(() => ({
157
+ content,
158
+ setContent,
159
+ readFile,
160
+ entries,
161
+ validationError,
162
+ isValidating,
163
+ hasRedactedSecrets,
164
+ applyAll,
165
+ isApplying,
166
+ reset,
167
+ }), [
168
+ content,
169
+ setContent,
170
+ readFile,
171
+ entries,
172
+ validationError,
173
+ isValidating,
174
+ hasRedactedSecrets,
175
+ applyAll,
176
+ isApplying,
177
+ reset,
178
+ ]);
179
+ }
180
+ //# sourceMappingURL=useApplyManifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useApplyManifest.js","sourceRoot":"","sources":["../../src/manifest/useApplyManifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import type { Message } from "@bufbuild/protobuf";
2
+ import { type AppliedManifest, type ManifestDocument } from "@stigmer/sdk";
3
+ /**
4
+ * Result of validating the edited YAML against the source resource.
5
+ *
6
+ * Discriminated on `status` so consumers can render exactly one of:
7
+ * a disabled state (`empty`), an inline error (`invalid`), or the
8
+ * apply affordance (`valid`).
9
+ */
10
+ export type EditYamlValidation = {
11
+ readonly status: "empty";
12
+ } | {
13
+ readonly status: "invalid";
14
+ readonly message: string;
15
+ } | {
16
+ readonly status: "valid";
17
+ readonly document: ManifestDocument;
18
+ };
19
+ /**
20
+ * What applying the current content will do — resolved against live
21
+ * server state so renames surface as "create" before the user commits.
22
+ */
23
+ export type EditYamlTarget = {
24
+ readonly action: "update";
25
+ readonly slug: string;
26
+ } | {
27
+ readonly action: "create";
28
+ readonly slug: string;
29
+ }
30
+ /** Existence lookup failed (offline, permissions) — wording degrades. */
31
+ | {
32
+ readonly action: "unknown";
33
+ readonly slug: string;
34
+ };
35
+ /** Options for {@link useEditResourceYaml}. */
36
+ export interface UseEditResourceYamlOptions {
37
+ /**
38
+ * The resource to edit, as returned by the server (e.g. from `useAgent`
39
+ * or a list panel row). `null` while the resource is loading — the hook
40
+ * seeds the editor when it arrives.
41
+ */
42
+ readonly resource: Message | null;
43
+ }
44
+ /** Return value of {@link useEditResourceYaml}. */
45
+ export interface UseEditResourceYamlReturn {
46
+ /** Current editor content. */
47
+ readonly yaml: string;
48
+ /** Update the editor content (wire to the YAML editor's `onChange`). */
49
+ readonly setYaml: (value: string) => void;
50
+ /** `true` when the content differs from the seeded serialization. */
51
+ readonly isDirty: boolean;
52
+ /** Live validation of the current content. */
53
+ readonly validation: EditYamlValidation;
54
+ /**
55
+ * Create-vs-update preview for the current content, or `null` while
56
+ * validation fails or the existence check is in flight.
57
+ */
58
+ readonly target: EditYamlTarget | null;
59
+ /** `true` when the content contains `***REDACTED***` secret markers. */
60
+ readonly hasRedactedSecrets: boolean;
61
+ /**
62
+ * Apply the edited YAML. Resolves with the applied resource, or `null`
63
+ * when the content is not currently valid (check `validation`).
64
+ */
65
+ readonly apply: () => Promise<AppliedManifest | null>;
66
+ /** `true` while the apply RPC is in flight. */
67
+ readonly isApplying: boolean;
68
+ /** Error from the last failed apply, or `null` when healthy. */
69
+ readonly error: Error | null;
70
+ /** Clear the apply error (e.g. when the user edits again). */
71
+ readonly clearError: () => void;
72
+ /** Discard edits and reseed from the resource. */
73
+ readonly reset: () => void;
74
+ }
75
+ /**
76
+ * Behavior hook for editing an existing resource as YAML and applying the
77
+ * result — the console's kind-agnostic "Edit YAML" flow.
78
+ *
79
+ * Seeds the editor from {@link serializeManifest} (full fidelity minus
80
+ * system-managed state), validates every edit against the kind's generated
81
+ * proto schema via {@link parseManifest} (strict — unknown fields fail
82
+ * loudly), previews create-vs-update by resolving the edited document's
83
+ * reference against the server, and applies through
84
+ * `stigmer.manifest.apply()`.
85
+ *
86
+ * Guardrails beyond the raw engine:
87
+ * - the edited document must stay the same kind as the source resource
88
+ * (pasting an Environment into an Agent editor is an error, not an apply)
89
+ * - the edited manifest must contain exactly one document
90
+ *
91
+ * @example
92
+ * ```tsx
93
+ * const edit = useEditResourceYaml({ resource: agent });
94
+ *
95
+ * <YamlEditor value={edit.yaml} onChange={edit.setYaml} />
96
+ * {edit.validation.status === "invalid" && <p>{edit.validation.message}</p>}
97
+ * <button disabled={edit.validation.status !== "valid"} onClick={edit.apply}>
98
+ * {edit.target?.action === "create" ? "Create" : "Apply changes"}
99
+ * </button>
100
+ * ```
101
+ *
102
+ * @see {@link EditResourceYamlDialog} for the styled component composing this hook
103
+ * @see {@link useApplyManifest} for the paste/upload counterpart
104
+ */
105
+ export declare function useEditResourceYaml({ resource, }: UseEditResourceYamlOptions): UseEditResourceYamlReturn;
106
+ //# sourceMappingURL=useEditResourceYaml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditResourceYaml.d.ts","sourceRoot":"","sources":["../../src/manifest/useEditResourceYaml.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAItB;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACtD,yEAAyE;GACvE;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,mDAAmD;AACnD,MAAM,WAAW,yBAAyB;IACxC,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,wEAAwE;IACxE,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACtD,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,GACT,EAAE,0BAA0B,GAAG,yBAAyB,CA+JxD"}
@@ -0,0 +1,168 @@
1
+ "use client";
2
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
+ import { containsRedactedSecrets, parseManifest, serializeManifest, } from "@stigmer/sdk";
4
+ import { useStigmer } from "../hooks.js";
5
+ import { toError } from "../internal/toError.js";
6
+ // Existence checks run against live server state; wait for a typing pause.
7
+ const TARGET_CHECK_DEBOUNCE_MS = 400;
8
+ /**
9
+ * Behavior hook for editing an existing resource as YAML and applying the
10
+ * result — the console's kind-agnostic "Edit YAML" flow.
11
+ *
12
+ * Seeds the editor from {@link serializeManifest} (full fidelity minus
13
+ * system-managed state), validates every edit against the kind's generated
14
+ * proto schema via {@link parseManifest} (strict — unknown fields fail
15
+ * loudly), previews create-vs-update by resolving the edited document's
16
+ * reference against the server, and applies through
17
+ * `stigmer.manifest.apply()`.
18
+ *
19
+ * Guardrails beyond the raw engine:
20
+ * - the edited document must stay the same kind as the source resource
21
+ * (pasting an Environment into an Agent editor is an error, not an apply)
22
+ * - the edited manifest must contain exactly one document
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * const edit = useEditResourceYaml({ resource: agent });
27
+ *
28
+ * <YamlEditor value={edit.yaml} onChange={edit.setYaml} />
29
+ * {edit.validation.status === "invalid" && <p>{edit.validation.message}</p>}
30
+ * <button disabled={edit.validation.status !== "valid"} onClick={edit.apply}>
31
+ * {edit.target?.action === "create" ? "Create" : "Apply changes"}
32
+ * </button>
33
+ * ```
34
+ *
35
+ * @see {@link EditResourceYamlDialog} for the styled component composing this hook
36
+ * @see {@link useApplyManifest} for the paste/upload counterpart
37
+ */
38
+ export function useEditResourceYaml({ resource, }) {
39
+ const stigmer = useStigmer();
40
+ // The serialized source of truth. Recomputed when the resource changes;
41
+ // only reseeds the editor while the user hasn't started editing.
42
+ const seeded = useMemo(() => (resource ? serializeManifest(resource) : ""), [resource]);
43
+ const [yaml, setYamlState] = useState(seeded);
44
+ const [isDirty, setIsDirty] = useState(false);
45
+ const [isApplying, setIsApplying] = useState(false);
46
+ const [error, setError] = useState(null);
47
+ const [target, setTarget] = useState(null);
48
+ useEffect(() => {
49
+ if (!isDirty)
50
+ setYamlState(seeded);
51
+ }, [seeded, isDirty]);
52
+ const setYaml = useCallback((value) => {
53
+ setYamlState(value);
54
+ setIsDirty(value !== seeded);
55
+ }, [seeded]);
56
+ const reset = useCallback(() => {
57
+ setYamlState(seeded);
58
+ setIsDirty(false);
59
+ setError(null);
60
+ }, [seeded]);
61
+ const clearError = useCallback(() => setError(null), []);
62
+ const sourceKind = useMemo(() => {
63
+ if (!resource)
64
+ return null;
65
+ // The seeded YAML's kind is authoritative for the source resource; a
66
+ // parse of our own serialization cannot fail.
67
+ return seeded ? parseManifest(seeded)[0].handler.yamlKind : null;
68
+ }, [resource, seeded]);
69
+ const validation = useMemo(() => {
70
+ if (!yaml.trim())
71
+ return { status: "empty" };
72
+ let documents;
73
+ try {
74
+ documents = parseManifest(yaml);
75
+ }
76
+ catch (err) {
77
+ return { status: "invalid", message: toError(err).message };
78
+ }
79
+ if (documents.length > 1) {
80
+ return {
81
+ status: "invalid",
82
+ message: "This editor applies a single resource. Remove the extra " +
83
+ "documents, or use Apply YAML in the Library for multi-document manifests.",
84
+ };
85
+ }
86
+ const document = documents[0];
87
+ if (sourceKind !== null && document.handler.yamlKind !== sourceKind) {
88
+ return {
89
+ status: "invalid",
90
+ message: `The document's kind changed from ${sourceKind} to ` +
91
+ `${document.handler.yamlKind}. To apply a different resource kind, ` +
92
+ "use Apply YAML in the Library instead.",
93
+ };
94
+ }
95
+ return { status: "valid", document };
96
+ }, [yaml, sourceKind]);
97
+ // Resolve create-vs-update against live state whenever the content
98
+ // becomes valid, debounced across keystrokes and cancellation-safe.
99
+ const checkSeq = useRef(0);
100
+ useEffect(() => {
101
+ if (validation.status !== "valid") {
102
+ setTarget(null);
103
+ return;
104
+ }
105
+ const { document } = validation;
106
+ const seq = ++checkSeq.current;
107
+ setTarget(null);
108
+ const timer = setTimeout(async () => {
109
+ let action;
110
+ try {
111
+ const existing = await stigmer.manifest.getByReference(document.handler.yamlKind, document.org, document.slug);
112
+ action = existing !== null ? "update" : "create";
113
+ }
114
+ catch {
115
+ action = "unknown";
116
+ }
117
+ if (checkSeq.current === seq) {
118
+ setTarget({ action, slug: document.slug });
119
+ }
120
+ }, TARGET_CHECK_DEBOUNCE_MS);
121
+ return () => clearTimeout(timer);
122
+ }, [validation, stigmer]);
123
+ const apply = useCallback(async () => {
124
+ if (validation.status !== "valid")
125
+ return null;
126
+ setIsApplying(true);
127
+ setError(null);
128
+ try {
129
+ const applied = await stigmer.manifest.apply(validation.document);
130
+ setIsDirty(false);
131
+ return applied;
132
+ }
133
+ catch (err) {
134
+ setError(toError(err));
135
+ throw err;
136
+ }
137
+ finally {
138
+ setIsApplying(false);
139
+ }
140
+ }, [validation, stigmer]);
141
+ const hasRedactedSecrets = useMemo(() => containsRedactedSecrets(yaml), [yaml]);
142
+ return useMemo(() => ({
143
+ yaml,
144
+ setYaml,
145
+ isDirty,
146
+ validation,
147
+ target,
148
+ hasRedactedSecrets,
149
+ apply,
150
+ isApplying,
151
+ error,
152
+ clearError,
153
+ reset,
154
+ }), [
155
+ yaml,
156
+ setYaml,
157
+ isDirty,
158
+ validation,
159
+ target,
160
+ hasRedactedSecrets,
161
+ apply,
162
+ isApplying,
163
+ error,
164
+ clearError,
165
+ reset,
166
+ ]);
167
+ }
168
+ //# sourceMappingURL=useEditResourceYaml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditResourceYaml.js","sourceRoot":"","sources":["../../src/manifest/useEditResourceYaml.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReviewStep.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/steps/ReviewStep.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,IAAI,EACJ,UAAU,EACV,KAAK,GACN,EAAE,eAAe,2CA2GjB;AAoCD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,mBAAmB,GACxB,cAAc,CAuFhB"}
1
+ {"version":3,"file":"ReviewStep.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/steps/ReviewStep.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,IAAI,EACJ,UAAU,EACV,KAAK,GACN,EAAE,eAAe,2CA2GjB;AAoCD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,mBAAmB,GACxB,cAAc,CAuFhB"}
@@ -2,8 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useMemo } from "react";
4
4
  import { cn } from "@stigmer/theme";
5
- import { getUserMessage } from "@stigmer/sdk";
6
- import { serializeMcpServerInputYaml } from "../../library/serialize-resource-yaml.js";
5
+ import { buildMcpServerProto, getUserMessage, serializeManifest } from "@stigmer/sdk";
7
6
  /**
8
7
  * Wizard step 3: Review and create.
9
8
  *
@@ -13,7 +12,7 @@ import { serializeMcpServerInputYaml } from "../../library/serialize-resource-ya
13
12
  */
14
13
  export function ReviewStep({ org, data, isCreating, error, }) {
15
14
  const mcpServerInput = useMemo(() => buildMcpServerInput(org, data), [org, data]);
16
- const yamlPreview = useMemo(() => serializeMcpServerInputYaml(mcpServerInput), [mcpServerInput]);
15
+ const yamlPreview = useMemo(() => serializeManifest(buildMcpServerProto(mcpServerInput)), [mcpServerInput]);
17
16
  const transportSummary = data.transportType === "http"
18
17
  ? data.httpUrl || "(no URL)"
19
18
  : `${data.stdioCommand}${data.stdioArgs ? ` ${data.stdioArgs}` : ""}` || "(no command)";
@@ -1 +1 @@
1
- {"version":3,"file":"ReviewStep.js","sourceRoot":"","sources":["../../../src/mcp-server/steps/ReviewStep.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAWvF;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,GAAG,EACH,IAAI,EACJ,UAAU,EACV,KAAK,GACW;IAChB,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,EACpC,CAAC,GAAG,EAAE,IAAI,CAAC,CACZ,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,2BAA2B,CAAC,cAAc,CAAC,EACjD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,gBAAgB,GACpB,IAAI,CAAC,aAAa,KAAK,MAAM;QAC3B,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,UAAU;QAC5B,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,cAAc,CAAC;IAE5F,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,0BACE,aAAI,SAAS,EAAC,uCAAuC,gCAEhD,EACL,YAAG,SAAS,EAAC,oCAAoC,2EAE7C,IACA,EAGN,cAAK,SAAS,EAAC,qCAAqC,YAClD,cAAI,SAAS,EAAC,6CAA6C,aACzD,KAAC,WAAW,IAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAI,EAC9C,KAAC,WAAW,IAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,SAAG,EACnD,KAAC,WAAW,IAAC,KAAK,EAAC,cAAc,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,SAAG,EACrD,KAAC,WAAW,IACV,KAAK,EAAC,YAAY,EAClB,KAAK,EAAE,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,GAC1D,EACF,KAAC,WAAW,IACV,KAAK,EAAC,WAAW,EACjB,KAAK,EAAE,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GACvD,EACF,KAAC,WAAW,IACV,KAAK,EAAE,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACxD,KAAK,EAAE,gBAAgB,EACvB,IAAI,SACJ,EACD,IAAI,CAAC,WAAW,IAAI,CACnB,KAAC,WAAW,IACV,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,SAAS,EAAC,eAAe,GACzB,CACH,EACA,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CACtB,KAAC,WAAW,IACV,KAAK,EAAC,eAAe,EACrB,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,WAAW,GACpC,CACH,EACA,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAC5C,KAAC,WAAW,IACV,KAAK,EAAC,OAAO,EACb,KAAK,EACH,IAAI,CAAC,eAAe;gCAClB,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;gCACpD,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAE3B,IAAI,SACJ,CACH,IACE,GACD,EAGN,eAAK,SAAS,EAAC,WAAW,aACxB,aAAI,SAAS,EAAC,oEAAoE,6BAE7E,EACL,cAAK,SAAS,EAAC,uEAAuE,YACpF,cAAK,SAAS,EAAC,uDAAuD,YACnE,WAAW,GACR,GACF,IACF,EAGL,KAAK,IAAI,CACR,eACE,SAAS,EAAC,+DAA+D,EACzE,IAAI,EAAC,OAAO,aAEZ,YAAG,SAAS,EAAC,sCAAsC,4CAE/C,EACJ,YAAG,SAAS,EAAC,oCAAoC,YAC9C,cAAc,CAAC,KAAK,CAAC,GACpB,IACA,CACP,EAGA,UAAU,IAAI,CACb,YAAG,SAAS,EAAC,+BAA+B,eAAW,QAAQ,0CAE3D,CACL,IACG,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,WAAW,CAAC,EACnB,KAAK,EACL,KAAK,EACL,IAAI,EACJ,SAAS,GAMV;IACC,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,aACvB,aAAI,SAAS,EAAC,+BAA+B,YAAE,KAAK,GAAM,EAC1D,aACE,SAAS,EAAE,EAAE,CACX,gCAAgC,EAChC,IAAI,IAAI,WAAW,CACpB,YAEA,KAAK,GACH,IACD,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAW,EACX,IAAyB;IAEzB,MAAM,KAAK,GAAmB;QAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACtB,GAAG;QACH,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;KACtD,CAAC;IAEF,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClD,MAAM,IAAI,GAA2B;YACnC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;SACzB,CAAC;QAEF,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAChD,CAAC;QAED,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACxD,MAAM,KAAK,GAA4B;YACrC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;SAClC,CAAC;QAEF,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACjD,CAAC;QAED,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAuC,EAAE,CAAC;QACnD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,GAAG;gBAAE,SAAS;YACzB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;gBACf,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACzC,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC5D,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;aAC1C,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,IAAI,GAAwC,EAAE,CAAC;QAErD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG;gBACjB,GAAG,EAAE,IAAI,CAAC,eAAe;gBACzB,IAAI,EAAE,IAAI,CAAC,gBAAgB;aAC5B,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5C,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACtD,CAAC;QACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5C,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,eAAe,CACtB,OAAkD;IAElD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACrB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK;SACT,IAAI,EAAE;SACN,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"ReviewStep.js","sourceRoot":"","sources":["../../../src/mcp-server/steps/ReviewStep.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/react",
3
- "version": "3.2.3",
3
+ "version": "3.3.0",
4
4
  "description": "React provider and client hook for the Stigmer platform SDK",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -37,7 +37,7 @@
37
37
  "dependencies": {
38
38
  "@bufbuild/protovalidate": "^1.1.1",
39
39
  "@dagrejs/dagre": "^1.1.4",
40
- "@stigmer/theme": "3.2.3",
40
+ "@stigmer/theme": "3.3.0",
41
41
  "diff": "^8.0.3",
42
42
  "fflate": "^0.8.2",
43
43
  "hast-util-to-jsx-runtime": "^2.3.6",
@@ -60,8 +60,8 @@
60
60
  "@codemirror/state": "^6.0.0",
61
61
  "@codemirror/view": "^6.0.0",
62
62
  "@lezer/highlight": "^1.0.0",
63
- "@stigmer/protos": "3.2.3",
64
- "@stigmer/sdk": "3.2.3",
63
+ "@stigmer/protos": "3.3.0",
64
+ "@stigmer/sdk": "3.3.0",
65
65
  "@tanstack/react-table": "^8.20.0",
66
66
  "@xyflow/react": "^12.0.0",
67
67
  "elkjs": "^0.9.0",
@@ -108,7 +108,7 @@ spec:
108
108
  - name: extract_findings
109
109
  kind: llm_call
110
110
  task_config:
111
- model: "gpt-4o-mini"
111
+ model: "claude-haiku-4.5"
112
112
  system_prompt: "Extract structured key findings from the analysis."
113
113
  prompt: >
114
114
  Extract the key findings from this analysis as structured data:
@@ -264,7 +264,7 @@ spec:
264
264
  - name: classify_ticket
265
265
  kind: llm_call
266
266
  task_config:
267
- model: "gpt-4o-mini"
267
+ model: "claude-haiku-4.5"
268
268
  system_prompt: >
269
269
  You are a support ticket classifier. Analyze the ticket and classify
270
270
  it by severity and category. Be conservative with critical/high
@@ -899,7 +899,7 @@ spec:
899
899
  - name: diagnose_error
900
900
  kind: llm_call
901
901
  task_config:
902
- model: "gpt-4o-mini"
902
+ model: "claude-haiku-4.5"
903
903
  system_prompt: >
904
904
  You are an API integration specialist. Given an error from
905
905
  an HTTP call, provide a brief, actionable diagnosis.
@@ -984,7 +984,7 @@ spec:
984
984
  description: "Comma-separated list of topics the response should cover"
985
985
  optional: true
986
986
  MODEL_UNDER_TEST:
987
- description: "Model to evaluate (default: gpt-4o-mini)"
987
+ description: "Model to evaluate (default: claude-haiku-4.5)"
988
988
  optional: true
989
989
  budget:
990
990
  max_cost_micros: 2000000
@@ -6,7 +6,7 @@ import { useStigmer } from "../hooks.js";
6
6
  import { useAgent } from "../agent/index.js";
7
7
  import { useMcpServer } from "../mcp-server/index.js";
8
8
  import { useSkill } from "../skill/index.js";
9
- import { serializeAgentYaml, serializeMcpServerYaml } from "../library/index.js";
9
+ import { serializeManifest } from "@stigmer/sdk";
10
10
  /**
11
11
  * Prepares initial attachment files for an edit-mode draft session.
12
12
  *
@@ -36,7 +36,7 @@ export function useEditSessionPrep(draftType, editRef) {
36
36
  if (draftType === "agent" && editAgent) {
37
37
  built.current = true;
38
38
  try {
39
- const yaml = serializeAgentYaml(editAgent);
39
+ const yaml = serializeManifest(editAgent);
40
40
  const slug = editAgent.metadata?.slug ?? "agent";
41
41
  setFiles([new File([yaml], `${slug}.yaml`, { type: "text/yaml" })]);
42
42
  }
@@ -47,7 +47,7 @@ export function useEditSessionPrep(draftType, editRef) {
47
47
  if (draftType === "mcp-server" && editMcpServer) {
48
48
  built.current = true;
49
49
  try {
50
- const yaml = serializeMcpServerYaml(editMcpServer);
50
+ const yaml = serializeManifest(editMcpServer);
51
51
  const slug = editMcpServer.metadata?.slug ?? "mcp-server";
52
52
  setFiles([new File([yaml], `${slug}.yaml`, { type: "text/yaml" })]);
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useEditSessionPrep.js","sourceRoot":"","sources":["../../src/session/useEditSessionPrep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useEditSessionPrep.js","sourceRoot":"","sources":["../../src/session/useEditSessionPrep.ts"],"names":[],"mappings":"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"}