@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 @@
1
+ {"version":3,"file":"EditResourceYamlDialog.d.ts","sourceRoot":"","sources":["../../src/manifest/EditResourceYamlDialog.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAUpE,gDAAgD;AAChD,MAAM,WAAW,2BAA2B;IAC1C,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,SAAS,GACV,EAAE,2BAA2B,2CA0K7B"}
@@ -0,0 +1,104 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { lazy, Suspense, useCallback, useEffect, useRef } from "react";
4
+ import { cn } from "@stigmer/theme";
5
+ import { getUserMessage } from "@stigmer/sdk";
6
+ import { toast } from "../feedback/toast.js";
7
+ import { RedactedSecretsNotice } from "./RedactedSecretsNotice.js";
8
+ import { useEditResourceYaml } from "./useEditResourceYaml.js";
9
+ // CodeMirror loads only when an editor dialog actually opens (DD-013).
10
+ const LazyYamlEditor = lazy(() => import("./YamlEditor.js").then((m) => ({ default: m.YamlEditor })));
11
+ /**
12
+ * Modal dialog for editing a resource as YAML and applying the changes —
13
+ * the kind-agnostic "Edit YAML" experience for detail pages and panels.
14
+ *
15
+ * Workflow:
16
+ * 1. The resource is serialized to canonical YAML (system-managed state
17
+ * stripped) and seeded into a CodeMirror editor
18
+ * 2. Every edit is validated against the kind's generated proto schema;
19
+ * errors render inline with the exact schema complaint
20
+ * 3. A live summary states what applying will do ("update X" / "create Y"),
21
+ * resolved against server state — so a rename reads as a create
22
+ * 4. Apply calls the kind's `apply` RPC (create-or-update by slug)
23
+ *
24
+ * Redacted secret values (`***REDACTED***`) are explained inline: applying
25
+ * them preserves the stored secrets (the server's marker contract).
26
+ *
27
+ * Uses the native `<dialog>` element for built-in focus trapping, Escape
28
+ * key handling, and backdrop — consistent with {@link ConfirmDialog}.
29
+ *
30
+ * Zero Console dependencies — safe for platform builder embedding.
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * const { agent, refetch } = useAgent(org, slug);
35
+ *
36
+ * <EditResourceYamlDialog
37
+ * open={editOpen}
38
+ * onOpenChange={setEditOpen}
39
+ * resource={agent}
40
+ * onApplied={() => refetch()}
41
+ * />
42
+ * ```
43
+ */
44
+ export function EditResourceYamlDialog({ open, onOpenChange, resource, onApplied, }) {
45
+ const dialogRef = useRef(null);
46
+ const edit = useEditResourceYaml({ resource });
47
+ const { reset } = edit;
48
+ // Sync dialog open state with the native <dialog> element.
49
+ useEffect(() => {
50
+ const dialog = dialogRef.current;
51
+ if (!dialog)
52
+ return;
53
+ if (open && !dialog.open) {
54
+ dialog.showModal();
55
+ }
56
+ else if (!open && dialog.open) {
57
+ dialog.close();
58
+ }
59
+ }, [open]);
60
+ // Discard stale edits from a previous session when the dialog opens.
61
+ useEffect(() => {
62
+ if (open)
63
+ reset();
64
+ }, [open, reset]);
65
+ const handleCancel = useCallback((e) => {
66
+ e.preventDefault();
67
+ onOpenChange(false);
68
+ }, [onOpenChange]);
69
+ const handleApply = useCallback(async () => {
70
+ try {
71
+ const result = await edit.apply();
72
+ if (!result)
73
+ return;
74
+ toast.success(`${result.displayName} "${result.name}" applied`);
75
+ onOpenChange(false);
76
+ onApplied?.(result);
77
+ }
78
+ catch {
79
+ // error state is set by the hook and rendered inline
80
+ }
81
+ }, [edit, onOpenChange, onApplied]);
82
+ const canApply = edit.validation.status === "valid" && edit.isDirty && !edit.isApplying;
83
+ return (_jsx("dialog", { ref: dialogRef, onCancel: handleCancel, className: cn("fixed inset-0 z-50 m-auto w-full max-w-3xl rounded-lg border border-border bg-popover p-0 text-popover-foreground shadow-lg", "backdrop:bg-black/50", "open:animate-in open:fade-in-0 open:zoom-in-95"), children: _jsxs("div", { className: "flex flex-col gap-4 p-6", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("h3", { className: "text-base font-semibold text-foreground", children: "Edit YAML" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Edit the resource definition and apply. Changes are validated against the resource schema as you type." })] }), resource ? (_jsx(Suspense, { fallback: _jsx(EditorLoading, {}), children: _jsx(LazyYamlEditor, { value: edit.yaml, onChange: edit.setYaml, className: "h-80" }) })) : (_jsx(EditorLoading, { label: "Loading resource\u2026" })), edit.hasRedactedSecrets && _jsx(RedactedSecretsNotice, {}), edit.validation.status === "invalid" && (_jsx("div", { role: "alert", className: "rounded-md border border-destructive bg-card px-3 py-2.5 text-sm text-destructive", children: edit.validation.message })), edit.error && (_jsxs("div", { role: "alert", className: "flex items-start gap-3 rounded-md border border-destructive bg-card px-3 py-2.5", children: [_jsx("p", { className: "flex-1 text-sm text-destructive", children: getUserMessage(edit.error) }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [_jsx("button", { type: "button", onClick: handleApply, disabled: edit.validation.status !== "valid" || edit.isApplying, className: cn("rounded-md border border-input bg-background px-2 py-1 text-xs font-medium text-foreground", "hover:bg-accent hover:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50"), children: "Try again" }), _jsx("button", { type: "button", onClick: edit.clearError, "aria-label": "Dismiss error", className: cn("rounded-md px-2 py-1 text-xs font-medium text-muted-foreground", "hover:bg-accent hover:text-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"), children: "Dismiss" })] })] })), _jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("p", { className: "text-xs text-muted-foreground", "aria-live": "polite", children: targetSummary(edit.validation.status, edit.isDirty, edit.target) }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", onClick: () => onOpenChange(false), disabled: edit.isApplying, className: cn("rounded-md px-3 py-1.5 text-sm font-medium transition-colors", "border border-input bg-background text-foreground", "hover:bg-accent hover:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50"), children: "Cancel" }), _jsx("button", { type: "button", onClick: handleApply, disabled: !canApply, className: cn("rounded-md px-3 py-1.5 text-sm font-medium transition-colors", "bg-primary text-primary-foreground hover:bg-primary-hover", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50"), children: edit.isApplying ? "Applying…" : "Apply changes" })] })] })] }) }));
84
+ }
85
+ function targetSummary(validationStatus, isDirty, target) {
86
+ if (validationStatus !== "valid")
87
+ return "";
88
+ if (!isDirty)
89
+ return "No changes yet.";
90
+ if (target === null)
91
+ return "Checking what applying will do…";
92
+ switch (target.action) {
93
+ case "update":
94
+ return `Applying will update ${target.slug}.`;
95
+ case "create":
96
+ return `Applying will create ${target.slug} — the name or slug changed.`;
97
+ case "unknown":
98
+ return `Applying will create or update ${target.slug}.`;
99
+ }
100
+ }
101
+ function EditorLoading({ label = "Loading editor…" }) {
102
+ return (_jsx("div", { className: "flex h-80 items-center justify-center rounded-md border border-border bg-muted text-sm text-muted-foreground", children: label }));
103
+ }
104
+ //# sourceMappingURL=EditResourceYamlDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditResourceYamlDialog.js","sourceRoot":"","sources":["../../src/manifest/EditResourceYamlDialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /** Props for {@link RedactedSecretsNotice}. */
2
+ export interface RedactedSecretsNoticeProps {
3
+ /** Additional CSS classes for the root container. */
4
+ readonly className?: string;
5
+ }
6
+ /**
7
+ * Inline explanation shown when manifest content contains `***REDACTED***`
8
+ * secret markers, so the marker reads as a contract rather than a bug:
9
+ * applying it preserves the stored secret; replacing it sets a new value.
10
+ *
11
+ * Shared by {@link EditResourceYamlDialog} and {@link ApplyManifestDialog}.
12
+ */
13
+ export declare function RedactedSecretsNotice({ className }: RedactedSecretsNoticeProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=RedactedSecretsNotice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedactedSecretsNotice.d.ts","sourceRoot":"","sources":["../../src/manifest/RedactedSecretsNotice.tsx"],"names":[],"mappings":"AAIA,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,EAAE,0BAA0B,2CAY9E"}
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { cn } from "@stigmer/theme";
4
+ /**
5
+ * Inline explanation shown when manifest content contains `***REDACTED***`
6
+ * secret markers, so the marker reads as a contract rather than a bug:
7
+ * applying it preserves the stored secret; replacing it sets a new value.
8
+ *
9
+ * Shared by {@link EditResourceYamlDialog} and {@link ApplyManifestDialog}.
10
+ */
11
+ export function RedactedSecretsNotice({ className }) {
12
+ return (_jsxs("p", { className: cn("rounded-md border border-border bg-muted px-3 py-2 text-xs text-muted-foreground", className), children: ["Secret values are shown as ", _jsx("code", { className: "font-mono", children: "***REDACTED***" }), ". Applying keeps the stored secrets; replace a marker to set a new value."] }));
13
+ }
14
+ //# sourceMappingURL=RedactedSecretsNotice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedactedSecretsNotice.js","sourceRoot":"","sources":["../../src/manifest/RedactedSecretsNotice.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAQpC;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAE,SAAS,EAA8B;IAC7E,OAAO,CACL,aACE,SAAS,EAAE,EAAE,CACX,kFAAkF,EAClF,SAAS,CACV,4CAE0B,eAAM,SAAS,EAAC,WAAW,+BAAsB,iFAE1E,CACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { type CSSProperties } from "react";
2
+ import { type Diagnostic } from "@codemirror/lint";
3
+ /** Props for {@link YamlEditor}. */
4
+ export interface YamlEditorProps {
5
+ /** Current YAML content. */
6
+ readonly value: string;
7
+ /** Called when the editor content changes. */
8
+ readonly onChange?: (value: string) => void;
9
+ /** Validation diagnostics to display as inline markers. */
10
+ readonly diagnostics?: readonly Diagnostic[];
11
+ /** Whether the editor is read-only. @default false */
12
+ readonly readOnly?: boolean;
13
+ /** Additional CSS class names for the root container. */
14
+ readonly className?: string;
15
+ /** Additional inline styles for the root container. */
16
+ readonly style?: CSSProperties;
17
+ }
18
+ /**
19
+ * YAML editor built on CodeMirror 6, shared by every YAML surface in the
20
+ * SDK (workflow editor tab, resource manifest dialogs).
21
+ *
22
+ * Provides syntax highlighting, line numbers, bracket matching,
23
+ * code folding, undo/redo, and inline diagnostic markers driven by
24
+ * external validation (via the `diagnostics` prop).
25
+ *
26
+ * Themed via `--stgm-*` CSS custom properties to respect the host
27
+ * application's design tokens.
28
+ *
29
+ * This is an optional SDK component — it requires CodeMirror peer
30
+ * dependencies. Consumers that render it conditionally should load it
31
+ * via `React.lazy` so the CodeMirror bundle stays out of paths that
32
+ * never open an editor (DD-013).
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * <YamlEditor
37
+ * value={yaml}
38
+ * onChange={setYaml}
39
+ * diagnostics={diagnostics}
40
+ * />
41
+ * ```
42
+ */
43
+ export declare const YamlEditor: import("react").NamedExoticComponent<YamlEditorProps>;
44
+ //# sourceMappingURL=YamlEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YamlEditor.d.ts","sourceRoot":"","sources":["../../src/manifest/YamlEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAOf,OAAO,EAAc,KAAK,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAI/E,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7C,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,UAAU,uDAwHrB,CAAC"}
@@ -0,0 +1,216 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useRef, useEffect, memo, } from "react";
4
+ import { cn } from "@stigmer/theme";
5
+ import { EditorState, Compartment } from "@codemirror/state";
6
+ import { EditorView, keymap, lineNumbers, highlightActiveLine, drawSelection, highlightSpecialChars } from "@codemirror/view";
7
+ import { yaml } from "@codemirror/lang-yaml";
8
+ import { syntaxHighlighting, HighlightStyle, bracketMatching, indentOnInput, foldGutter } from "@codemirror/language";
9
+ import { tags } from "@lezer/highlight";
10
+ import { lintGutter, setDiagnostics } from "@codemirror/lint";
11
+ import { defaultKeymap, indentWithTab, history, historyKeymap } from "@codemirror/commands";
12
+ import { autocompletion } from "@codemirror/autocomplete";
13
+ /**
14
+ * YAML editor built on CodeMirror 6, shared by every YAML surface in the
15
+ * SDK (workflow editor tab, resource manifest dialogs).
16
+ *
17
+ * Provides syntax highlighting, line numbers, bracket matching,
18
+ * code folding, undo/redo, and inline diagnostic markers driven by
19
+ * external validation (via the `diagnostics` prop).
20
+ *
21
+ * Themed via `--stgm-*` CSS custom properties to respect the host
22
+ * application's design tokens.
23
+ *
24
+ * This is an optional SDK component — it requires CodeMirror peer
25
+ * dependencies. Consumers that render it conditionally should load it
26
+ * via `React.lazy` so the CodeMirror bundle stays out of paths that
27
+ * never open an editor (DD-013).
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * <YamlEditor
32
+ * value={yaml}
33
+ * onChange={setYaml}
34
+ * diagnostics={diagnostics}
35
+ * />
36
+ * ```
37
+ */
38
+ export const YamlEditor = memo(function YamlEditor({ value, onChange, diagnostics, readOnly = false, className, style, }) {
39
+ const containerRef = useRef(null);
40
+ const viewRef = useRef(null);
41
+ const readOnlyCompartment = useRef(new Compartment());
42
+ const onChangeRef = useRef(onChange);
43
+ onChangeRef.current = onChange;
44
+ const isInternalUpdate = useRef(false);
45
+ useEffect(() => {
46
+ if (!containerRef.current)
47
+ return;
48
+ const updateListener = EditorView.updateListener.of((update) => {
49
+ if (update.docChanged) {
50
+ isInternalUpdate.current = true;
51
+ onChangeRef.current?.(update.state.doc.toString());
52
+ }
53
+ });
54
+ const state = EditorState.create({
55
+ doc: value,
56
+ extensions: [
57
+ lineNumbers(),
58
+ highlightActiveLine(),
59
+ highlightSpecialChars(),
60
+ drawSelection(),
61
+ bracketMatching(),
62
+ indentOnInput(),
63
+ foldGutter(),
64
+ history(),
65
+ yaml(),
66
+ syntaxHighlighting(stigmerHighlightStyle, { fallback: true }),
67
+ autocompletion(),
68
+ lintGutter(),
69
+ keymap.of([...defaultKeymap, ...historyKeymap, indentWithTab]),
70
+ readOnlyCompartment.current.of(EditorState.readOnly.of(readOnly)),
71
+ stigmerTheme,
72
+ updateListener,
73
+ ],
74
+ });
75
+ const view = new EditorView({
76
+ state,
77
+ parent: containerRef.current,
78
+ });
79
+ viewRef.current = view;
80
+ return () => {
81
+ view.destroy();
82
+ viewRef.current = null;
83
+ };
84
+ }, []);
85
+ // Sync external value changes into the editor
86
+ useEffect(() => {
87
+ const view = viewRef.current;
88
+ if (!view)
89
+ return;
90
+ if (isInternalUpdate.current) {
91
+ isInternalUpdate.current = false;
92
+ return;
93
+ }
94
+ const currentDoc = view.state.doc.toString();
95
+ if (currentDoc !== value) {
96
+ view.dispatch({
97
+ changes: {
98
+ from: 0,
99
+ to: currentDoc.length,
100
+ insert: value,
101
+ },
102
+ });
103
+ }
104
+ }, [value]);
105
+ useEffect(() => {
106
+ const view = viewRef.current;
107
+ if (!view)
108
+ return;
109
+ view.dispatch({
110
+ effects: readOnlyCompartment.current.reconfigure(EditorState.readOnly.of(readOnly)),
111
+ });
112
+ }, [readOnly]);
113
+ // Sync diagnostics into CodeMirror's lint system
114
+ useEffect(() => {
115
+ const view = viewRef.current;
116
+ if (!view)
117
+ return;
118
+ const cmDiags = diagnostics
119
+ ? diagnostics.map((d) => ({
120
+ ...d,
121
+ from: Math.min(d.from, view.state.doc.length),
122
+ to: Math.min(d.to, view.state.doc.length),
123
+ }))
124
+ : [];
125
+ view.dispatch(setDiagnostics(view.state, cmDiags));
126
+ }, [diagnostics]);
127
+ return (_jsx("div", { ref: containerRef, className: cn("stgm-yaml-editor overflow-auto rounded-md border border-border bg-background font-mono text-sm", className), style: style }));
128
+ });
129
+ // ---------------------------------------------------------------------------
130
+ // Syntax highlighting: maps lezer tags to --stgm-syntax-* CSS variables
131
+ // ---------------------------------------------------------------------------
132
+ const stigmerHighlightStyle = HighlightStyle.define([
133
+ { tag: tags.propertyName, color: "var(--stgm-syntax-property, #0550ae)" },
134
+ { tag: tags.tagName, color: "var(--stgm-syntax-tag, #cf222e)" },
135
+ { tag: tags.keyword, color: "var(--stgm-syntax-keyword, #8250df)", fontWeight: "bold" },
136
+ { tag: tags.string, color: "var(--stgm-syntax-string, #0a3069)" },
137
+ { tag: tags.number, color: "var(--stgm-syntax-number, #953800)" },
138
+ { tag: [tags.bool, tags.null], color: "var(--stgm-syntax-bool, #8250df)" },
139
+ { tag: tags.atom, color: "var(--stgm-syntax-atom, #cf222e)" },
140
+ { tag: tags.comment, color: "var(--stgm-syntax-comment, #6e7781)", fontStyle: "italic" },
141
+ { tag: tags.meta, color: "var(--stgm-syntax-meta, #8250df)" },
142
+ { tag: tags.name, color: "var(--stgm-foreground, #1a1a2e)" },
143
+ { tag: tags.definition(tags.name), color: "var(--stgm-syntax-property, #0550ae)" },
144
+ { tag: tags.separator, color: "var(--stgm-muted-foreground, #737373)" },
145
+ { tag: tags.punctuation, color: "var(--stgm-muted-foreground, #737373)" },
146
+ ]);
147
+ // ---------------------------------------------------------------------------
148
+ // CodeMirror theme bridge: maps --stgm-* tokens to editor styles
149
+ // ---------------------------------------------------------------------------
150
+ const stigmerTheme = EditorView.theme({
151
+ "&": {
152
+ height: "100%",
153
+ backgroundColor: "var(--stgm-background, #fff)",
154
+ color: "var(--stgm-foreground, #1a1a2e)",
155
+ fontSize: "13px",
156
+ },
157
+ ".cm-content": {
158
+ caretColor: "var(--stgm-foreground, #1a1a2e)",
159
+ fontFamily: "var(--stgm-font-mono, ui-monospace, monospace)",
160
+ padding: "8px 0",
161
+ },
162
+ ".cm-cursor, .cm-dropCursor": {
163
+ borderLeftColor: "var(--stgm-foreground, #1a1a2e)",
164
+ },
165
+ "&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection": {
166
+ backgroundColor: "var(--stgm-accent, #e0e7ff)",
167
+ },
168
+ ".cm-gutters": {
169
+ backgroundColor: "var(--stgm-muted, #f5f5f5)",
170
+ color: "var(--stgm-muted-foreground, #737373)",
171
+ border: "none",
172
+ borderRight: "1px solid var(--stgm-border, #e5e5e5)",
173
+ },
174
+ ".cm-activeLineGutter": {
175
+ backgroundColor: "var(--stgm-accent, #e0e7ff)",
176
+ },
177
+ ".cm-activeLine": {
178
+ backgroundColor: "color-mix(in srgb, var(--stgm-accent, #e0e7ff) 30%, transparent)",
179
+ },
180
+ ".cm-foldPlaceholder": {
181
+ backgroundColor: "var(--stgm-muted, #f5f5f5)",
182
+ border: "1px solid var(--stgm-border, #e5e5e5)",
183
+ color: "var(--stgm-muted-foreground, #737373)",
184
+ },
185
+ ".cm-tooltip": {
186
+ backgroundColor: "var(--stgm-popover, #fff)",
187
+ color: "var(--stgm-popover-foreground, #1a1a2e)",
188
+ border: "1px solid var(--stgm-border, #e5e5e5)",
189
+ borderRadius: "6px",
190
+ boxShadow: "0 2px 8px rgba(0,0,0,0.08)",
191
+ },
192
+ ".cm-tooltip-autocomplete": {
193
+ "& > ul > li[aria-selected]": {
194
+ backgroundColor: "var(--stgm-accent, #e0e7ff)",
195
+ color: "var(--stgm-accent-foreground, #1a1a2e)",
196
+ },
197
+ },
198
+ ".cm-diagnostic-error": {
199
+ borderLeft: "3px solid var(--stgm-destructive, #ef4444)",
200
+ },
201
+ ".cm-diagnostic-warning": {
202
+ borderLeft: "3px solid var(--stgm-warning, #f59e0b)",
203
+ },
204
+ ".cm-diagnostic-info": {
205
+ borderLeft: "3px solid var(--stgm-primary, #6366f1)",
206
+ },
207
+ ".cm-lint-marker-error": {
208
+ content: "'●'",
209
+ color: "var(--stgm-destructive, #ef4444)",
210
+ },
211
+ ".cm-lint-marker-warning": {
212
+ content: "'●'",
213
+ color: "var(--stgm-warning, #f59e0b)",
214
+ },
215
+ });
216
+ //# sourceMappingURL=YamlEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YamlEditor.js","sourceRoot":"","sources":["../../src/manifest/YamlEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export { YamlEditor } from "./YamlEditor.js";
2
+ export type { YamlEditorProps } from "./YamlEditor.js";
3
+ export { useEditResourceYaml } from "./useEditResourceYaml.js";
4
+ export type { EditYamlTarget, EditYamlValidation, UseEditResourceYamlOptions, UseEditResourceYamlReturn, } from "./useEditResourceYaml.js";
5
+ export { useApplyManifest } from "./useApplyManifest.js";
6
+ export type { ManifestEntryStatus, ManifestPreviewEntry, UseApplyManifestReturn, } from "./useApplyManifest.js";
7
+ export { EditResourceYamlDialog } from "./EditResourceYamlDialog.js";
8
+ export type { EditResourceYamlDialogProps } from "./EditResourceYamlDialog.js";
9
+ export { ApplyManifestDialog } from "./ApplyManifestDialog.js";
10
+ export type { ApplyManifestDialogProps } from "./ApplyManifestDialog.js";
11
+ export { RedactedSecretsNotice } from "./RedactedSecretsNotice.js";
12
+ export type { RedactedSecretsNoticeProps } from "./RedactedSecretsNotice.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Manifest domain: the console-facing YAML edit/apply experience for every
2
+ // registry-supported resource kind, built on the @stigmer/sdk manifest
3
+ // engine (parseManifest / serializeManifest / stigmer.manifest).
4
+ //
5
+ // Headless-first (DD-003): the hooks are independently importable; the
6
+ // dialogs compose them with the shared YamlEditor.
7
+ export { YamlEditor } from "./YamlEditor.js";
8
+ export { useEditResourceYaml } from "./useEditResourceYaml.js";
9
+ export { useApplyManifest } from "./useApplyManifest.js";
10
+ export { EditResourceYamlDialog } from "./EditResourceYamlDialog.js";
11
+ export { ApplyManifestDialog } from "./ApplyManifestDialog.js";
12
+ export { RedactedSecretsNotice } from "./RedactedSecretsNotice.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,uEAAuE;AACvE,iEAAiE;AACjE,EAAE;AACF,uEAAuE;AACvE,mDAAmD;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAQ/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAOzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { type AppliedManifest, type ManifestDocument } from "@stigmer/sdk";
2
+ /** Per-document apply lifecycle within one manifest. */
3
+ export type ManifestEntryStatus = "pending" | "applying" | "applied" | "failed"
4
+ /** A prior document failed; this one was not attempted. */
5
+ | "skipped";
6
+ /** One document of the manifest, with its preview and apply state. */
7
+ export interface ManifestPreviewEntry {
8
+ /** The parsed document (kind handler, message, name/slug/org). */
9
+ readonly document: ManifestDocument;
10
+ /** What applying will do, resolved against live server state. */
11
+ readonly action: "create" | "update" | "unknown";
12
+ /** Apply lifecycle status. */
13
+ readonly status: ManifestEntryStatus;
14
+ /** The applied resource, present when `status` is `"applied"`. */
15
+ readonly result?: AppliedManifest;
16
+ /** User-facing failure message, present when `status` is `"failed"`. */
17
+ readonly errorMessage?: string;
18
+ }
19
+ /** Return value of {@link useApplyManifest}. */
20
+ export interface UseApplyManifestReturn {
21
+ /** Current manifest text (paste target). */
22
+ readonly content: string;
23
+ /** Update the manifest text. Re-validates (debounced). */
24
+ readonly setContent: (value: string) => void;
25
+ /** Read a `.yaml`/`.yml`/`.json` file into `content`. */
26
+ readonly readFile: (file: File) => Promise<void>;
27
+ /**
28
+ * Validated per-document preview in dependency apply order, or `null`
29
+ * while the content is empty or invalid.
30
+ */
31
+ readonly entries: readonly ManifestPreviewEntry[] | null;
32
+ /** Validation error for the current content, or `null` when valid. */
33
+ readonly validationError: string | null;
34
+ /** `true` while the (debounced) validation + existence checks run. */
35
+ readonly isValidating: boolean;
36
+ /** `true` when the content contains `***REDACTED***` secret markers. */
37
+ readonly hasRedactedSecrets: boolean;
38
+ /**
39
+ * Apply all documents sequentially in dependency order. Entries update
40
+ * live. Stops at the first failure (later entries become `"skipped"`).
41
+ * Resolves `true` when every document applied.
42
+ */
43
+ readonly applyAll: () => Promise<boolean>;
44
+ /** `true` while applies are in flight. */
45
+ readonly isApplying: boolean;
46
+ /** Clear all state (content, preview, errors). */
47
+ readonly reset: () => void;
48
+ }
49
+ /**
50
+ * Headless "apply a YAML manifest" flow for any registry-supported kind —
51
+ * the console counterpart of `stigmer apply -f`.
52
+ *
53
+ * Orchestrates: paste or upload → strict parse against generated proto
54
+ * schemas ({@link parseManifest}) → per-document create-vs-update preview
55
+ * (server existence check) → sequential apply in dependency order with
56
+ * live per-document status.
57
+ *
58
+ * Accepts multi-document manifests (`---` separators) and JSON content
59
+ * (YAML is a superset). The target `org` is injected into documents that
60
+ * omit `metadata.org`; documents naming a *different* org are honored and
61
+ * apply there (matching `stigmer apply` semantics — the org-mismatch
62
+ * warning surfaces on the parsed document).
63
+ *
64
+ * @param org - Target organization slug for `metadata.org` injection.
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * const manifest = useApplyManifest(activeOrg);
69
+ *
70
+ * <textarea value={manifest.content}
71
+ * onChange={(e) => manifest.setContent(e.target.value)} />
72
+ * {manifest.entries?.map((e) => (
73
+ * <PreviewRow key={e.document.slug} entry={e} />
74
+ * ))}
75
+ * <button onClick={manifest.applyAll} disabled={!manifest.entries}>Apply</button>
76
+ * ```
77
+ *
78
+ * @see {@link ApplyManifestDialog} for the styled component composing this hook
79
+ * @see {@link useEditResourceYaml} for the edit-in-place counterpart
80
+ */
81
+ export declare function useApplyManifest(org: string): UseApplyManifestReturn;
82
+ //# sourceMappingURL=useApplyManifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useApplyManifest.d.ts","sourceRoot":"","sources":["../../src/manifest/useApplyManifest.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAItB,wDAAwD;AACxD,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ;AACV,2DAA2D;GACzD,SAAS,CAAC;AAEd,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACjD,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,wEAAwE;IACxE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACzD,sEAAsE;IACtE,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,sEAAsE;IACtE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAwKpE"}