@stigmer/react 0.4.8 → 0.5.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 (631) hide show
  1. package/action-menu/ActionMenu.d.ts +64 -0
  2. package/action-menu/ActionMenu.d.ts.map +1 -0
  3. package/action-menu/ActionMenu.js +78 -0
  4. package/action-menu/ActionMenu.js.map +1 -0
  5. package/action-menu/index.d.ts +3 -0
  6. package/action-menu/index.d.ts.map +1 -0
  7. package/action-menu/index.js +2 -0
  8. package/action-menu/index.js.map +1 -0
  9. package/action-menu/types.d.ts +65 -0
  10. package/action-menu/types.d.ts.map +1 -0
  11. package/action-menu/types.js +2 -0
  12. package/action-menu/types.js.map +1 -0
  13. package/agent/AgentCreationWizard.d.ts +55 -0
  14. package/agent/AgentCreationWizard.d.ts.map +1 -0
  15. package/agent/AgentCreationWizard.js +115 -0
  16. package/agent/AgentCreationWizard.js.map +1 -0
  17. package/agent/AgentDetailView.d.ts +77 -9
  18. package/agent/AgentDetailView.d.ts.map +1 -1
  19. package/agent/AgentDetailView.js +265 -87
  20. package/agent/AgentDetailView.js.map +1 -1
  21. package/agent/index.d.ts +8 -0
  22. package/agent/index.d.ts.map +1 -1
  23. package/agent/index.js +4 -0
  24. package/agent/index.js.map +1 -1
  25. package/agent/internal/agentToInput.d.ts +12 -0
  26. package/agent/internal/agentToInput.d.ts.map +1 -0
  27. package/agent/internal/agentToInput.js +72 -0
  28. package/agent/internal/agentToInput.js.map +1 -0
  29. package/agent/steps/CapabilitiesStep.d.ts +16 -0
  30. package/agent/steps/CapabilitiesStep.d.ts.map +1 -0
  31. package/agent/steps/CapabilitiesStep.js +80 -0
  32. package/agent/steps/CapabilitiesStep.js.map +1 -0
  33. package/agent/steps/IdentityStep.d.ts +18 -0
  34. package/agent/steps/IdentityStep.d.ts.map +1 -0
  35. package/agent/steps/IdentityStep.js +43 -0
  36. package/agent/steps/IdentityStep.js.map +1 -0
  37. package/agent/steps/ReviewStep.d.ts +23 -0
  38. package/agent/steps/ReviewStep.d.ts.map +1 -0
  39. package/agent/steps/ReviewStep.js +73 -0
  40. package/agent/steps/ReviewStep.js.map +1 -0
  41. package/agent/steps/types.d.ts +35 -0
  42. package/agent/steps/types.d.ts.map +1 -0
  43. package/agent/steps/types.js +16 -0
  44. package/agent/steps/types.js.map +1 -0
  45. package/agent/useCreateAgent.d.ts +45 -0
  46. package/agent/useCreateAgent.d.ts.map +1 -0
  47. package/agent/useCreateAgent.js +50 -0
  48. package/agent/useCreateAgent.js.map +1 -0
  49. package/agent/useUpdateAgent.d.ts +24 -0
  50. package/agent/useUpdateAgent.d.ts.map +1 -0
  51. package/agent/useUpdateAgent.js +35 -0
  52. package/agent/useUpdateAgent.js.map +1 -0
  53. package/dependency-graph/DependencyGraph.d.ts +37 -0
  54. package/dependency-graph/DependencyGraph.d.ts.map +1 -0
  55. package/dependency-graph/DependencyGraph.js +88 -0
  56. package/dependency-graph/DependencyGraph.js.map +1 -0
  57. package/dependency-graph/DependencyTreeNode.d.ts +23 -0
  58. package/dependency-graph/DependencyTreeNode.d.ts.map +1 -0
  59. package/dependency-graph/DependencyTreeNode.js +99 -0
  60. package/dependency-graph/DependencyTreeNode.js.map +1 -0
  61. package/dependency-graph/index.d.ts +4 -0
  62. package/dependency-graph/index.d.ts.map +1 -0
  63. package/dependency-graph/index.js +5 -0
  64. package/dependency-graph/index.js.map +1 -0
  65. package/dependency-graph/types.d.ts +130 -0
  66. package/dependency-graph/types.d.ts.map +1 -0
  67. package/dependency-graph/types.js +2 -0
  68. package/dependency-graph/types.js.map +1 -0
  69. package/dependency-graph/useDependencyGraph.d.ts +27 -0
  70. package/dependency-graph/useDependencyGraph.d.ts.map +1 -0
  71. package/dependency-graph/useDependencyGraph.js +129 -0
  72. package/dependency-graph/useDependencyGraph.js.map +1 -0
  73. package/empty-state/EmptyState.d.ts +29 -0
  74. package/empty-state/EmptyState.d.ts.map +1 -0
  75. package/empty-state/EmptyState.js +45 -0
  76. package/empty-state/EmptyState.js.map +1 -0
  77. package/empty-state/index.d.ts +4 -0
  78. package/empty-state/index.d.ts.map +1 -0
  79. package/empty-state/index.js +3 -0
  80. package/empty-state/index.js.map +1 -0
  81. package/empty-state/types.d.ts +73 -0
  82. package/empty-state/types.d.ts.map +1 -0
  83. package/empty-state/types.js +2 -0
  84. package/empty-state/types.js.map +1 -0
  85. package/empty-state/useEmptyState.d.ts +18 -0
  86. package/empty-state/useEmptyState.d.ts.map +1 -0
  87. package/empty-state/useEmptyState.js +72 -0
  88. package/empty-state/useEmptyState.js.map +1 -0
  89. package/feedback/StigmerToaster.d.ts +18 -0
  90. package/feedback/StigmerToaster.d.ts.map +1 -0
  91. package/feedback/StigmerToaster.js +31 -0
  92. package/feedback/StigmerToaster.js.map +1 -0
  93. package/feedback/index.d.ts +4 -0
  94. package/feedback/index.d.ts.map +1 -0
  95. package/feedback/index.js +3 -0
  96. package/feedback/index.js.map +1 -0
  97. package/feedback/toast.d.ts +14 -0
  98. package/feedback/toast.d.ts.map +1 -0
  99. package/feedback/toast.js +14 -0
  100. package/feedback/toast.js.map +1 -0
  101. package/feedback/types.d.ts +4 -0
  102. package/feedback/types.d.ts.map +1 -0
  103. package/feedback/types.js +2 -0
  104. package/feedback/types.js.map +1 -0
  105. package/index.d.ts +30 -10
  106. package/index.d.ts.map +1 -1
  107. package/index.js +29 -9
  108. package/index.js.map +1 -1
  109. package/inline-edit/InlineEditImage.d.ts +20 -0
  110. package/inline-edit/InlineEditImage.d.ts.map +1 -0
  111. package/inline-edit/InlineEditImage.js +85 -0
  112. package/inline-edit/InlineEditImage.js.map +1 -0
  113. package/inline-edit/InlineEditKeyValue.d.ts +29 -0
  114. package/inline-edit/InlineEditKeyValue.d.ts.map +1 -0
  115. package/inline-edit/InlineEditKeyValue.js +67 -0
  116. package/inline-edit/InlineEditKeyValue.js.map +1 -0
  117. package/inline-edit/InlineEditResourceList.d.ts +34 -0
  118. package/inline-edit/InlineEditResourceList.d.ts.map +1 -0
  119. package/inline-edit/InlineEditResourceList.js +99 -0
  120. package/inline-edit/InlineEditResourceList.js.map +1 -0
  121. package/inline-edit/InlineEditSelect.d.ts +18 -0
  122. package/inline-edit/InlineEditSelect.d.ts.map +1 -0
  123. package/inline-edit/InlineEditSelect.js +54 -0
  124. package/inline-edit/InlineEditSelect.js.map +1 -0
  125. package/inline-edit/InlineEditText.d.ts +23 -0
  126. package/inline-edit/InlineEditText.d.ts.map +1 -0
  127. package/inline-edit/InlineEditText.js +79 -0
  128. package/inline-edit/InlineEditText.js.map +1 -0
  129. package/inline-edit/InlineEditTextarea.d.ts +22 -0
  130. package/inline-edit/InlineEditTextarea.d.ts.map +1 -0
  131. package/inline-edit/InlineEditTextarea.js +83 -0
  132. package/inline-edit/InlineEditTextarea.js.map +1 -0
  133. package/inline-edit/index.d.ts +16 -0
  134. package/inline-edit/index.d.ts.map +1 -0
  135. package/inline-edit/index.js +8 -0
  136. package/inline-edit/index.js.map +1 -0
  137. package/inline-edit/types.d.ts +42 -0
  138. package/inline-edit/types.d.ts.map +1 -0
  139. package/inline-edit/types.js +2 -0
  140. package/inline-edit/types.js.map +1 -0
  141. package/inline-edit/useInlineFieldSave.d.ts +23 -0
  142. package/inline-edit/useInlineFieldSave.d.ts.map +1 -0
  143. package/inline-edit/useInlineFieldSave.js +44 -0
  144. package/inline-edit/useInlineFieldSave.js.map +1 -0
  145. package/internal/Tabs.d.ts +4 -38
  146. package/internal/Tabs.d.ts.map +1 -1
  147. package/internal/Tabs.js +3 -62
  148. package/internal/Tabs.js.map +1 -1
  149. package/library/ImportResourceDialog.d.ts +43 -0
  150. package/library/ImportResourceDialog.d.ts.map +1 -0
  151. package/library/ImportResourceDialog.js +90 -0
  152. package/library/ImportResourceDialog.js.map +1 -0
  153. package/library/index.d.ts +7 -4
  154. package/library/index.d.ts.map +1 -1
  155. package/library/index.js +4 -2
  156. package/library/index.js.map +1 -1
  157. package/library/serialize-resource-yaml.d.ts +53 -0
  158. package/library/serialize-resource-yaml.d.ts.map +1 -1
  159. package/library/serialize-resource-yaml.js +275 -0
  160. package/library/serialize-resource-yaml.js.map +1 -1
  161. package/library/useExportResource.d.ts +56 -0
  162. package/library/useExportResource.d.ts.map +1 -0
  163. package/library/useExportResource.js +137 -0
  164. package/library/useExportResource.js.map +1 -0
  165. package/library/useImportResource.d.ts +84 -0
  166. package/library/useImportResource.d.ts.map +1 -0
  167. package/library/useImportResource.js +188 -0
  168. package/library/useImportResource.js.map +1 -0
  169. package/mcp-server/McpServerCreationWizard.d.ts +55 -0
  170. package/mcp-server/McpServerCreationWizard.d.ts.map +1 -0
  171. package/mcp-server/McpServerCreationWizard.js +121 -0
  172. package/mcp-server/McpServerCreationWizard.js.map +1 -0
  173. package/mcp-server/McpServerDetailView.d.ts +21 -1
  174. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  175. package/mcp-server/McpServerDetailView.js +113 -20
  176. package/mcp-server/McpServerDetailView.js.map +1 -1
  177. package/mcp-server/index.d.ts +8 -0
  178. package/mcp-server/index.d.ts.map +1 -1
  179. package/mcp-server/index.js +4 -0
  180. package/mcp-server/index.js.map +1 -1
  181. package/mcp-server/internal/mcpServerToInput.d.ts +12 -0
  182. package/mcp-server/internal/mcpServerToInput.d.ts.map +1 -0
  183. package/mcp-server/internal/mcpServerToInput.js +81 -0
  184. package/mcp-server/internal/mcpServerToInput.js.map +1 -0
  185. package/mcp-server/steps/EnvironmentAuthStep.d.ts +15 -0
  186. package/mcp-server/steps/EnvironmentAuthStep.d.ts.map +1 -0
  187. package/mcp-server/steps/EnvironmentAuthStep.js +55 -0
  188. package/mcp-server/steps/EnvironmentAuthStep.js.map +1 -0
  189. package/mcp-server/steps/IdentityTransportStep.d.ts +19 -0
  190. package/mcp-server/steps/IdentityTransportStep.d.ts.map +1 -0
  191. package/mcp-server/steps/IdentityTransportStep.js +73 -0
  192. package/mcp-server/steps/IdentityTransportStep.js.map +1 -0
  193. package/mcp-server/steps/ReviewStep.d.ts +23 -0
  194. package/mcp-server/steps/ReviewStep.d.ts.map +1 -0
  195. package/mcp-server/steps/ReviewStep.js +137 -0
  196. package/mcp-server/steps/ReviewStep.js.map +1 -0
  197. package/mcp-server/steps/types.d.ts +56 -0
  198. package/mcp-server/steps/types.d.ts.map +1 -0
  199. package/mcp-server/steps/types.js +27 -0
  200. package/mcp-server/steps/types.js.map +1 -0
  201. package/mcp-server/useCreateMcpServer.d.ts +45 -0
  202. package/mcp-server/useCreateMcpServer.d.ts.map +1 -0
  203. package/mcp-server/useCreateMcpServer.js +50 -0
  204. package/mcp-server/useCreateMcpServer.js.map +1 -0
  205. package/mcp-server/useUpdateMcpServer.d.ts +24 -0
  206. package/mcp-server/useUpdateMcpServer.d.ts.map +1 -0
  207. package/mcp-server/useUpdateMcpServer.js +35 -0
  208. package/mcp-server/useUpdateMcpServer.js.map +1 -0
  209. package/package.json +8 -4
  210. package/resource-creation/CreationPicker.d.ts +60 -0
  211. package/resource-creation/CreationPicker.d.ts.map +1 -0
  212. package/resource-creation/CreationPicker.js +74 -0
  213. package/resource-creation/CreationPicker.js.map +1 -0
  214. package/resource-creation/StepIndicator.d.ts +28 -0
  215. package/resource-creation/StepIndicator.d.ts.map +1 -0
  216. package/resource-creation/StepIndicator.js +40 -0
  217. package/resource-creation/StepIndicator.js.map +1 -0
  218. package/resource-creation/TemplateCard.d.ts +24 -0
  219. package/resource-creation/TemplateCard.d.ts.map +1 -0
  220. package/resource-creation/TemplateCard.js +68 -0
  221. package/resource-creation/TemplateCard.js.map +1 -0
  222. package/resource-creation/TemplateGallery.d.ts +43 -0
  223. package/resource-creation/TemplateGallery.d.ts.map +1 -0
  224. package/resource-creation/TemplateGallery.js +78 -0
  225. package/resource-creation/TemplateGallery.js.map +1 -0
  226. package/resource-creation/WizardNav.d.ts +31 -0
  227. package/resource-creation/WizardNav.d.ts.map +1 -0
  228. package/resource-creation/WizardNav.js +29 -0
  229. package/resource-creation/WizardNav.js.map +1 -0
  230. package/resource-creation/WizardShell.d.ts +41 -0
  231. package/resource-creation/WizardShell.d.ts.map +1 -0
  232. package/resource-creation/WizardShell.js +55 -0
  233. package/resource-creation/WizardShell.js.map +1 -0
  234. package/resource-creation/index.d.ts +21 -0
  235. package/resource-creation/index.d.ts.map +1 -0
  236. package/resource-creation/index.js +14 -0
  237. package/resource-creation/index.js.map +1 -0
  238. package/resource-creation/templates/agent-templates.d.ts +15 -0
  239. package/resource-creation/templates/agent-templates.d.ts.map +1 -0
  240. package/resource-creation/templates/agent-templates.js +148 -0
  241. package/resource-creation/templates/agent-templates.js.map +1 -0
  242. package/resource-creation/templates/index.d.ts +5 -0
  243. package/resource-creation/templates/index.d.ts.map +1 -0
  244. package/resource-creation/templates/index.js +5 -0
  245. package/resource-creation/templates/index.js.map +1 -0
  246. package/resource-creation/templates/mcp-server-templates.d.ts +15 -0
  247. package/resource-creation/templates/mcp-server-templates.d.ts.map +1 -0
  248. package/resource-creation/templates/mcp-server-templates.js +92 -0
  249. package/resource-creation/templates/mcp-server-templates.js.map +1 -0
  250. package/resource-creation/templates/types.d.ts +48 -0
  251. package/resource-creation/templates/types.d.ts.map +1 -0
  252. package/resource-creation/templates/types.js +16 -0
  253. package/resource-creation/templates/types.js.map +1 -0
  254. package/resource-creation/types.d.ts +88 -0
  255. package/resource-creation/types.d.ts.map +1 -0
  256. package/resource-creation/types.js +2 -0
  257. package/resource-creation/types.js.map +1 -0
  258. package/resource-creation/useTemplateFilter.d.ts +43 -0
  259. package/resource-creation/useTemplateFilter.d.ts.map +1 -0
  260. package/resource-creation/useTemplateFilter.js +73 -0
  261. package/resource-creation/useTemplateFilter.js.map +1 -0
  262. package/resource-creation/useWizardState.d.ts +67 -0
  263. package/resource-creation/useWizardState.d.ts.map +1 -0
  264. package/resource-creation/useWizardState.js +143 -0
  265. package/resource-creation/useWizardState.js.map +1 -0
  266. package/resource-detail/ConfirmDialog.d.ts +44 -0
  267. package/resource-detail/ConfirmDialog.d.ts.map +1 -0
  268. package/resource-detail/ConfirmDialog.js +62 -0
  269. package/resource-detail/ConfirmDialog.js.map +1 -0
  270. package/resource-detail/ResourceActionBar.d.ts +42 -0
  271. package/resource-detail/ResourceActionBar.d.ts.map +1 -0
  272. package/resource-detail/ResourceActionBar.js +64 -0
  273. package/resource-detail/ResourceActionBar.js.map +1 -0
  274. package/resource-detail/ResourceDetailShell.d.ts +36 -0
  275. package/resource-detail/ResourceDetailShell.d.ts.map +1 -0
  276. package/resource-detail/ResourceDetailShell.js +65 -0
  277. package/resource-detail/ResourceDetailShell.js.map +1 -0
  278. package/resource-detail/Section.d.ts +18 -0
  279. package/resource-detail/Section.d.ts.map +1 -0
  280. package/resource-detail/Section.js +18 -0
  281. package/resource-detail/Section.js.map +1 -0
  282. package/resource-detail/index.d.ts +15 -0
  283. package/resource-detail/index.d.ts.map +1 -0
  284. package/resource-detail/index.js +10 -0
  285. package/resource-detail/index.js.map +1 -0
  286. package/resource-detail/types.d.ts +146 -0
  287. package/resource-detail/types.d.ts.map +1 -0
  288. package/resource-detail/types.js +2 -0
  289. package/resource-detail/types.js.map +1 -0
  290. package/resource-detail/useConfirmAction.d.ts +41 -0
  291. package/resource-detail/useConfirmAction.d.ts.map +1 -0
  292. package/resource-detail/useConfirmAction.js +30 -0
  293. package/resource-detail/useConfirmAction.js.map +1 -0
  294. package/resource-detail/useCopyResource.d.ts +28 -0
  295. package/resource-detail/useCopyResource.d.ts.map +1 -0
  296. package/resource-detail/useCopyResource.js +46 -0
  297. package/resource-detail/useCopyResource.js.map +1 -0
  298. package/resource-detail/useDeleteResource.d.ts +40 -0
  299. package/resource-detail/useDeleteResource.d.ts.map +1 -0
  300. package/resource-detail/useDeleteResource.js +83 -0
  301. package/resource-detail/useDeleteResource.js.map +1 -0
  302. package/resource-detail/useDetailTabs.d.ts +46 -0
  303. package/resource-detail/useDetailTabs.d.ts.map +1 -0
  304. package/resource-detail/useDetailTabs.js +47 -0
  305. package/resource-detail/useDetailTabs.js.map +1 -0
  306. package/resource-workbench/components/BulkActionBar.d.ts +36 -0
  307. package/resource-workbench/components/BulkActionBar.d.ts.map +1 -0
  308. package/resource-workbench/components/BulkActionBar.js +35 -0
  309. package/resource-workbench/components/BulkActionBar.js.map +1 -0
  310. package/resource-workbench/components/ColumnHeader.d.ts +23 -0
  311. package/resource-workbench/components/ColumnHeader.d.ts.map +1 -0
  312. package/resource-workbench/components/ColumnHeader.js +25 -0
  313. package/resource-workbench/components/ColumnHeader.js.map +1 -0
  314. package/resource-workbench/components/FilterBar.d.ts +33 -0
  315. package/resource-workbench/components/FilterBar.d.ts.map +1 -0
  316. package/resource-workbench/components/FilterBar.js +72 -0
  317. package/resource-workbench/components/FilterBar.js.map +1 -0
  318. package/resource-workbench/components/ResourceAvatar.d.ts +29 -0
  319. package/resource-workbench/components/ResourceAvatar.d.ts.map +1 -0
  320. package/resource-workbench/components/ResourceAvatar.js +51 -0
  321. package/resource-workbench/components/ResourceAvatar.js.map +1 -0
  322. package/resource-workbench/components/ResourceCards.d.ts +39 -0
  323. package/resource-workbench/components/ResourceCards.d.ts.map +1 -0
  324. package/resource-workbench/components/ResourceCards.js +41 -0
  325. package/resource-workbench/components/ResourceCards.js.map +1 -0
  326. package/resource-workbench/components/ResourceInspector.d.ts +26 -0
  327. package/resource-workbench/components/ResourceInspector.d.ts.map +1 -0
  328. package/resource-workbench/components/ResourceInspector.js +22 -0
  329. package/resource-workbench/components/ResourceInspector.js.map +1 -0
  330. package/resource-workbench/components/ResourceList.d.ts +39 -0
  331. package/resource-workbench/components/ResourceList.d.ts.map +1 -0
  332. package/resource-workbench/components/ResourceList.js +41 -0
  333. package/resource-workbench/components/ResourceList.js.map +1 -0
  334. package/resource-workbench/components/ResourceTable.d.ts +47 -0
  335. package/resource-workbench/components/ResourceTable.d.ts.map +1 -0
  336. package/resource-workbench/components/ResourceTable.js +78 -0
  337. package/resource-workbench/components/ResourceTable.js.map +1 -0
  338. package/resource-workbench/components/ResourceWorkbench.d.ts +131 -0
  339. package/resource-workbench/components/ResourceWorkbench.d.ts.map +1 -0
  340. package/resource-workbench/components/ResourceWorkbench.js +170 -0
  341. package/resource-workbench/components/ResourceWorkbench.js.map +1 -0
  342. package/resource-workbench/components/SelectionCheckbox.d.ts +24 -0
  343. package/resource-workbench/components/SelectionCheckbox.d.ts.map +1 -0
  344. package/resource-workbench/components/SelectionCheckbox.js +16 -0
  345. package/resource-workbench/components/SelectionCheckbox.js.map +1 -0
  346. package/resource-workbench/components/StatusBadge.d.ts +31 -0
  347. package/resource-workbench/components/StatusBadge.d.ts.map +1 -0
  348. package/resource-workbench/components/StatusBadge.js +75 -0
  349. package/resource-workbench/components/StatusBadge.js.map +1 -0
  350. package/resource-workbench/components/ViewSwitcher.d.ts +21 -0
  351. package/resource-workbench/components/ViewSwitcher.d.ts.map +1 -0
  352. package/resource-workbench/components/ViewSwitcher.js +37 -0
  353. package/resource-workbench/components/ViewSwitcher.js.map +1 -0
  354. package/resource-workbench/hooks/useResourceCollection.d.ts +93 -0
  355. package/resource-workbench/hooks/useResourceCollection.d.ts.map +1 -0
  356. package/resource-workbench/hooks/useResourceCollection.js +133 -0
  357. package/resource-workbench/hooks/useResourceCollection.js.map +1 -0
  358. package/resource-workbench/hooks/useResourceFilters.d.ts +73 -0
  359. package/resource-workbench/hooks/useResourceFilters.d.ts.map +1 -0
  360. package/resource-workbench/hooks/useResourceFilters.js +105 -0
  361. package/resource-workbench/hooks/useResourceFilters.js.map +1 -0
  362. package/resource-workbench/hooks/useResourceSelection.d.ts +44 -0
  363. package/resource-workbench/hooks/useResourceSelection.d.ts.map +1 -0
  364. package/resource-workbench/hooks/useResourceSelection.js +123 -0
  365. package/resource-workbench/hooks/useResourceSelection.js.map +1 -0
  366. package/resource-workbench/hooks/useViewPreference.d.ts +32 -0
  367. package/resource-workbench/hooks/useViewPreference.d.ts.map +1 -0
  368. package/resource-workbench/hooks/useViewPreference.js +60 -0
  369. package/resource-workbench/hooks/useViewPreference.js.map +1 -0
  370. package/resource-workbench/index.d.ts +34 -0
  371. package/resource-workbench/index.d.ts.map +1 -0
  372. package/resource-workbench/index.js +19 -0
  373. package/resource-workbench/index.js.map +1 -0
  374. package/resource-workbench/types.d.ts +165 -0
  375. package/resource-workbench/types.d.ts.map +1 -0
  376. package/resource-workbench/types.js +2 -0
  377. package/resource-workbench/types.js.map +1 -0
  378. package/runner/RunnerDetailView.d.ts +44 -0
  379. package/runner/RunnerDetailView.d.ts.map +1 -0
  380. package/runner/RunnerDetailView.js +154 -0
  381. package/runner/RunnerDetailView.js.map +1 -0
  382. package/runner/RunnerListPanel.d.ts +26 -1
  383. package/runner/RunnerListPanel.d.ts.map +1 -1
  384. package/runner/RunnerListPanel.js +68 -46
  385. package/runner/RunnerListPanel.js.map +1 -1
  386. package/runner/index.d.ts +7 -1
  387. package/runner/index.d.ts.map +1 -1
  388. package/runner/index.js +3 -0
  389. package/runner/index.js.map +1 -1
  390. package/runner/shared.d.ts +31 -0
  391. package/runner/shared.d.ts.map +1 -0
  392. package/runner/shared.js +55 -0
  393. package/runner/shared.js.map +1 -0
  394. package/runner/useRunner.d.ts +37 -0
  395. package/runner/useRunner.d.ts.map +1 -0
  396. package/runner/useRunner.js +24 -0
  397. package/runner/useRunner.js.map +1 -0
  398. package/session/__tests__/group-sessions.test.js +3 -3
  399. package/session/__tests__/group-sessions.test.js.map +1 -1
  400. package/skill/SkillDetailView.d.ts +70 -7
  401. package/skill/SkillDetailView.d.ts.map +1 -1
  402. package/skill/SkillDetailView.js +107 -39
  403. package/skill/SkillDetailView.js.map +1 -1
  404. package/skill/SkillDiffDialog.d.ts +42 -0
  405. package/skill/SkillDiffDialog.d.ts.map +1 -0
  406. package/skill/SkillDiffDialog.js +72 -0
  407. package/skill/SkillDiffDialog.js.map +1 -0
  408. package/skill/SkillFileBrowser.d.ts +31 -0
  409. package/skill/SkillFileBrowser.d.ts.map +1 -0
  410. package/skill/SkillFileBrowser.js +105 -0
  411. package/skill/SkillFileBrowser.js.map +1 -0
  412. package/skill/SkillUploader.d.ts +39 -0
  413. package/skill/SkillUploader.d.ts.map +1 -0
  414. package/skill/SkillUploader.js +141 -0
  415. package/skill/SkillUploader.js.map +1 -0
  416. package/skill/index.d.ts +18 -0
  417. package/skill/index.d.ts.map +1 -1
  418. package/skill/index.js +9 -0
  419. package/skill/index.js.map +1 -1
  420. package/skill/internal/computeArtifactHash.d.ts +9 -0
  421. package/skill/internal/computeArtifactHash.d.ts.map +1 -0
  422. package/skill/internal/computeArtifactHash.js +14 -0
  423. package/skill/internal/computeArtifactHash.js.map +1 -0
  424. package/skill/internal/fetchAndUnpackArtifact.d.ts +16 -0
  425. package/skill/internal/fetchAndUnpackArtifact.d.ts.map +1 -0
  426. package/skill/internal/fetchAndUnpackArtifact.js +34 -0
  427. package/skill/internal/fetchAndUnpackArtifact.js.map +1 -0
  428. package/skill/usePushSkill.d.ts +53 -0
  429. package/skill/usePushSkill.d.ts.map +1 -0
  430. package/skill/usePushSkill.js +57 -0
  431. package/skill/usePushSkill.js.map +1 -0
  432. package/skill/useSkillArtifact.d.ts +37 -0
  433. package/skill/useSkillArtifact.d.ts.map +1 -0
  434. package/skill/useSkillArtifact.js +76 -0
  435. package/skill/useSkillArtifact.js.map +1 -0
  436. package/skill/useSkillDiff.d.ts +31 -0
  437. package/skill/useSkillDiff.d.ts.map +1 -0
  438. package/skill/useSkillDiff.js +97 -0
  439. package/skill/useSkillDiff.js.map +1 -0
  440. package/skill/useSkillDuplicateCheck.d.ts +34 -0
  441. package/skill/useSkillDuplicateCheck.d.ts.map +1 -0
  442. package/skill/useSkillDuplicateCheck.js +58 -0
  443. package/skill/useSkillDuplicateCheck.js.map +1 -0
  444. package/skill/useSkillUpload.d.ts +69 -0
  445. package/skill/useSkillUpload.d.ts.map +1 -0
  446. package/skill/useSkillUpload.js +157 -0
  447. package/skill/useSkillUpload.js.map +1 -0
  448. package/skill/useSkillVersions.d.ts +46 -0
  449. package/skill/useSkillVersions.d.ts.map +1 -0
  450. package/skill/useSkillVersions.js +104 -0
  451. package/skill/useSkillVersions.js.map +1 -0
  452. package/src/action-menu/ActionMenu.tsx +151 -0
  453. package/src/action-menu/index.ts +9 -0
  454. package/src/action-menu/types.ts +70 -0
  455. package/src/agent/AgentCreationWizard.tsx +201 -0
  456. package/src/agent/AgentDetailView.tsx +817 -321
  457. package/src/agent/index.ts +16 -0
  458. package/src/agent/internal/agentToInput.ts +95 -0
  459. package/src/agent/steps/CapabilitiesStep.tsx +363 -0
  460. package/src/agent/steps/IdentityStep.tsx +259 -0
  461. package/src/agent/steps/ReviewStep.tsx +211 -0
  462. package/src/agent/steps/types.ts +53 -0
  463. package/src/agent/useCreateAgent.ts +76 -0
  464. package/src/agent/useUpdateAgent.ts +55 -0
  465. package/src/dependency-graph/DependencyGraph.tsx +153 -0
  466. package/src/dependency-graph/DependencyTreeNode.tsx +282 -0
  467. package/src/dependency-graph/index.ts +15 -0
  468. package/src/dependency-graph/types.ts +131 -0
  469. package/src/dependency-graph/useDependencyGraph.ts +158 -0
  470. package/src/empty-state/EmptyState.tsx +90 -0
  471. package/src/empty-state/index.ts +9 -0
  472. package/src/empty-state/types.ts +81 -0
  473. package/src/empty-state/useEmptyState.ts +85 -0
  474. package/src/feedback/StigmerToaster.tsx +45 -0
  475. package/src/feedback/index.ts +3 -0
  476. package/src/feedback/toast.ts +13 -0
  477. package/src/feedback/types.ts +7 -0
  478. package/src/index.ts +270 -8
  479. package/src/inline-edit/InlineEditImage.tsx +208 -0
  480. package/src/inline-edit/InlineEditKeyValue.tsx +278 -0
  481. package/src/inline-edit/InlineEditResourceList.tsx +325 -0
  482. package/src/inline-edit/InlineEditSelect.tsx +150 -0
  483. package/src/inline-edit/InlineEditText.tsx +211 -0
  484. package/src/inline-edit/InlineEditTextarea.tsx +209 -0
  485. package/src/inline-edit/index.ts +28 -0
  486. package/src/inline-edit/types.ts +47 -0
  487. package/src/inline-edit/useInlineFieldSave.ts +62 -0
  488. package/src/internal/Tabs.tsx +4 -164
  489. package/src/library/ImportResourceDialog.tsx +227 -0
  490. package/src/library/index.ts +18 -8
  491. package/src/library/serialize-resource-yaml.ts +356 -0
  492. package/src/library/useExportResource.ts +183 -0
  493. package/src/library/useImportResource.ts +253 -0
  494. package/src/mcp-server/McpServerCreationWizard.tsx +206 -0
  495. package/src/mcp-server/McpServerDetailView.tsx +392 -105
  496. package/src/mcp-server/index.ts +16 -0
  497. package/src/mcp-server/internal/mcpServerToInput.ts +95 -0
  498. package/src/mcp-server/steps/EnvironmentAuthStep.tsx +462 -0
  499. package/src/mcp-server/steps/IdentityTransportStep.tsx +531 -0
  500. package/src/mcp-server/steps/ReviewStep.tsx +297 -0
  501. package/src/mcp-server/steps/types.ts +85 -0
  502. package/src/mcp-server/useCreateMcpServer.ts +76 -0
  503. package/src/mcp-server/useUpdateMcpServer.ts +55 -0
  504. package/src/resource-creation/CreationPicker.tsx +292 -0
  505. package/src/resource-creation/StepIndicator.tsx +156 -0
  506. package/src/resource-creation/TemplateCard.tsx +143 -0
  507. package/src/resource-creation/TemplateGallery.tsx +222 -0
  508. package/src/resource-creation/WizardNav.tsx +163 -0
  509. package/src/resource-creation/WizardShell.tsx +124 -0
  510. package/src/resource-creation/index.ts +45 -0
  511. package/src/resource-creation/templates/agent-templates.ts +160 -0
  512. package/src/resource-creation/templates/index.ts +7 -0
  513. package/src/resource-creation/templates/mcp-server-templates.ts +106 -0
  514. package/src/resource-creation/templates/types.ts +64 -0
  515. package/src/resource-creation/types.ts +105 -0
  516. package/src/resource-creation/useTemplateFilter.ts +117 -0
  517. package/src/resource-creation/useWizardState.ts +223 -0
  518. package/src/resource-detail/ConfirmDialog.tsx +127 -0
  519. package/src/resource-detail/ResourceActionBar.tsx +157 -0
  520. package/src/resource-detail/ResourceDetailShell.tsx +184 -0
  521. package/src/resource-detail/Section.tsx +78 -0
  522. package/src/resource-detail/index.ts +34 -0
  523. package/src/resource-detail/types.ts +177 -0
  524. package/src/resource-detail/useConfirmAction.ts +70 -0
  525. package/src/resource-detail/useCopyResource.ts +74 -0
  526. package/src/resource-detail/useDeleteResource.ts +110 -0
  527. package/src/resource-detail/useDetailTabs.ts +93 -0
  528. package/src/resource-workbench/components/BulkActionBar.tsx +122 -0
  529. package/src/resource-workbench/components/ColumnHeader.tsx +105 -0
  530. package/src/resource-workbench/components/FilterBar.tsx +173 -0
  531. package/src/resource-workbench/components/ResourceAvatar.tsx +109 -0
  532. package/src/resource-workbench/components/ResourceCards.tsx +126 -0
  533. package/src/resource-workbench/components/ResourceInspector.tsx +88 -0
  534. package/src/resource-workbench/components/ResourceList.tsx +121 -0
  535. package/src/resource-workbench/components/ResourceTable.tsx +222 -0
  536. package/src/resource-workbench/components/ResourceWorkbench.tsx +695 -0
  537. package/src/resource-workbench/components/SelectionCheckbox.tsx +52 -0
  538. package/src/resource-workbench/components/StatusBadge.tsx +119 -0
  539. package/src/resource-workbench/components/ViewSwitcher.tsx +135 -0
  540. package/src/resource-workbench/hooks/useResourceCollection.ts +261 -0
  541. package/src/resource-workbench/hooks/useResourceFilters.ts +216 -0
  542. package/src/resource-workbench/hooks/useResourceSelection.ts +178 -0
  543. package/src/resource-workbench/hooks/useViewPreference.ts +75 -0
  544. package/src/resource-workbench/index.ts +73 -0
  545. package/src/resource-workbench/types.ts +220 -0
  546. package/src/runner/RunnerDetailView.tsx +410 -0
  547. package/src/runner/RunnerListPanel.tsx +126 -111
  548. package/src/runner/index.ts +13 -1
  549. package/src/runner/shared.tsx +124 -0
  550. package/src/runner/useRunner.ts +59 -0
  551. package/src/session/__tests__/group-sessions.test.ts +5 -3
  552. package/src/skill/SkillDetailView.tsx +371 -165
  553. package/src/skill/SkillDiffDialog.tsx +213 -0
  554. package/src/skill/SkillFileBrowser.tsx +289 -0
  555. package/src/skill/SkillUploader.tsx +481 -0
  556. package/src/skill/index.ts +34 -0
  557. package/src/skill/internal/computeArtifactHash.ts +13 -0
  558. package/src/skill/internal/fetchAndUnpackArtifact.ts +48 -0
  559. package/src/skill/usePushSkill.ts +101 -0
  560. package/src/skill/useSkillArtifact.ts +107 -0
  561. package/src/skill/useSkillDiff.ts +128 -0
  562. package/src/skill/useSkillDuplicateCheck.ts +92 -0
  563. package/src/skill/useSkillUpload.ts +231 -0
  564. package/src/skill/useSkillVersions.ts +165 -0
  565. package/src/styles.css +28 -0
  566. package/src/tabs/Tabs.tsx +184 -0
  567. package/src/tabs/index.ts +2 -0
  568. package/src/version-history/DiffFileList.tsx +111 -0
  569. package/src/version-history/DiffSummary.tsx +61 -0
  570. package/src/version-history/DiffViewer.tsx +163 -0
  571. package/src/version-history/MultiFileDiffView.tsx +114 -0
  572. package/src/version-history/VersionTimeline.tsx +232 -0
  573. package/src/version-history/VersionTimelineEntry.tsx +254 -0
  574. package/src/version-history/computeDiff.ts +61 -0
  575. package/src/version-history/computeMultiFileDiff.ts +97 -0
  576. package/src/version-history/index.ts +22 -0
  577. package/src/version-history/types.ts +129 -0
  578. package/styles.css +1 -1
  579. package/tabs/Tabs.d.ts +58 -0
  580. package/tabs/Tabs.d.ts.map +1 -0
  581. package/tabs/Tabs.js +80 -0
  582. package/tabs/Tabs.js.map +1 -0
  583. package/tabs/index.d.ts +3 -0
  584. package/tabs/index.d.ts.map +1 -0
  585. package/tabs/index.js +2 -0
  586. package/tabs/index.js.map +1 -0
  587. package/version-history/DiffFileList.d.ts +22 -0
  588. package/version-history/DiffFileList.d.ts.map +1 -0
  589. package/version-history/DiffFileList.js +37 -0
  590. package/version-history/DiffFileList.js.map +1 -0
  591. package/version-history/DiffSummary.d.ts +21 -0
  592. package/version-history/DiffSummary.d.ts.map +1 -0
  593. package/version-history/DiffSummary.js +16 -0
  594. package/version-history/DiffSummary.js.map +1 -0
  595. package/version-history/DiffViewer.d.ts +31 -0
  596. package/version-history/DiffViewer.d.ts.map +1 -0
  597. package/version-history/DiffViewer.js +60 -0
  598. package/version-history/DiffViewer.js.map +1 -0
  599. package/version-history/MultiFileDiffView.d.ts +30 -0
  600. package/version-history/MultiFileDiffView.d.ts.map +1 -0
  601. package/version-history/MultiFileDiffView.js +40 -0
  602. package/version-history/MultiFileDiffView.js.map +1 -0
  603. package/version-history/VersionTimeline.d.ts +29 -0
  604. package/version-history/VersionTimeline.d.ts.map +1 -0
  605. package/version-history/VersionTimeline.js +87 -0
  606. package/version-history/VersionTimeline.js.map +1 -0
  607. package/version-history/VersionTimelineEntry.d.ts +22 -0
  608. package/version-history/VersionTimelineEntry.d.ts.map +1 -0
  609. package/version-history/VersionTimelineEntry.js +98 -0
  610. package/version-history/VersionTimelineEntry.js.map +1 -0
  611. package/version-history/computeDiff.d.ts +16 -0
  612. package/version-history/computeDiff.d.ts.map +1 -0
  613. package/version-history/computeDiff.js +54 -0
  614. package/version-history/computeDiff.js.map +1 -0
  615. package/version-history/computeMultiFileDiff.d.ts +15 -0
  616. package/version-history/computeMultiFileDiff.d.ts.map +1 -0
  617. package/version-history/computeMultiFileDiff.js +83 -0
  618. package/version-history/computeMultiFileDiff.js.map +1 -0
  619. package/version-history/index.d.ts +14 -0
  620. package/version-history/index.d.ts.map +1 -0
  621. package/version-history/index.js +9 -0
  622. package/version-history/index.js.map +1 -0
  623. package/version-history/types.d.ts +106 -0
  624. package/version-history/types.d.ts.map +1 -0
  625. package/version-history/types.js +2 -0
  626. package/version-history/types.js.map +1 -0
  627. package/library/ResourceListView.d.ts +0 -174
  628. package/library/ResourceListView.d.ts.map +0 -1
  629. package/library/ResourceListView.js +0 -318
  630. package/library/ResourceListView.js.map +0 -1
  631. package/src/library/ResourceListView.tsx +0 -956
@@ -1,26 +1,37 @@
1
1
  "use client";
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { useEffect, useRef } from "react";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
  import Markdown from "react-markdown";
5
5
  import { cn } from "@stigmer/theme";
6
6
  import { timestampDate } from "@bufbuild/protobuf/wkt";
7
7
  import { SkillState } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/status_pb";
8
8
  import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
9
9
  import { useSkill } from "./useSkill";
10
+ import { SkillFileBrowser } from "./SkillFileBrowser";
10
11
  import { ErrorMessage } from "../error/ErrorMessage";
11
12
  import { VisibilityToggle } from "../library/VisibilityToggle";
12
13
  import { MARKDOWN_COMPONENTS, REMARK_PLUGINS, stripFrontmatter } from "../internal/markdown-components";
14
+ import { ResourceDetailShell } from "../resource-detail/ResourceDetailShell";
15
+ import { Section } from "../resource-detail/Section";
16
+ import { useDetailTabs } from "../resource-detail/useDetailTabs";
17
+ import { InlineEditText } from "../inline-edit/InlineEditText";
18
+ import { InlineEditTextarea } from "../inline-edit/InlineEditTextarea";
19
+ import { useSkillVersions } from "./useSkillVersions";
20
+ import { VersionTimeline } from "../version-history/VersionTimeline";
21
+ import { SkillDiffDialog } from "./SkillDiffDialog";
22
+ const CONTENT_TAB = { id: "content", label: "Content" };
23
+ const VERSIONS_TAB = { id: "versions", label: "Versions" };
13
24
  /**
14
- * Read-only detail view for a Skill knowledge package.
25
+ * Operational detail hub for a Skill knowledge package.
15
26
  *
16
27
  * Fetches the skill via {@link useSkill} internally and renders its
17
- * full content in structured sections: header, SKILL.md content
18
- * (rendered as formatted markdown), and version/provenance info.
19
- * Sections with no data are omitted entirely.
28
+ * content inside a {@link ResourceDetailShell}: a standardized header
29
+ * with action bar, the SKILL.md content with a source/rendered toggle,
30
+ * and version/provenance information.
20
31
  *
21
32
  * The SKILL.md content is the primary value of this view — it IS the
22
- * skill. The markdown is rendered using the same styled component
23
- * overrides used across all SDK markdown surfaces.
33
+ * skill. Users can toggle between rendered markdown and raw source
34
+ * (like GitHub's Preview/Code toggle).
24
35
  *
25
36
  * Handles loading, error, and not-found states automatically.
26
37
  * Zero Console dependencies — safe for platform builder embedding.
@@ -38,8 +49,32 @@ import { MARKDOWN_COMPONENTS, REMARK_PLUGINS, stripFrontmatter } from "../intern
38
49
  * <SkillDetailView org="acme" slug="code-style-guide" version="stable" />
39
50
  * ```
40
51
  */
41
- export function SkillDetailView({ org, slug, version, onResourceLoad, onVisibilityChange, isVisibilityPending, className, }) {
52
+ export function SkillDetailView({ org, slug, version, onResourceLoad, onVisibilityChange, isVisibilityPending, primaryAction, actions, additionalTabs, activeTab, onTabChange, defaultTab, onVersionSelect, editable = false, onResourceUpdated, className, }) {
42
53
  const { skill, isLoading, error, refetch } = useSkill(org, slug, version);
54
+ const { versions, isEmpty: noVersions, getArtifactKey } = useSkillVersions(org, slug);
55
+ const [diffState, setDiffState] = useState(null);
56
+ const builtInTabs = useMemo(() => (noVersions ? [CONTENT_TAB] : [CONTENT_TAB, VERSIONS_TAB]), [noVersions]);
57
+ const { effectiveTabs, effectiveActiveTab, effectiveOnTabChange, activeAdditionalTab, } = useDetailTabs({
58
+ builtInTabs,
59
+ additionalTabs,
60
+ activeTab,
61
+ onTabChange,
62
+ defaultTab,
63
+ });
64
+ const handleVersionSelect = useCallback((id) => onVersionSelect?.(id), [onVersionSelect]);
65
+ const handleCompare = useCallback((fromId, toId) => {
66
+ const fromKey = getArtifactKey(fromId);
67
+ const toKey = getArtifactKey(toId);
68
+ if (!fromKey || !toKey)
69
+ return;
70
+ setDiffState({
71
+ fromArtifactKey: fromKey,
72
+ toArtifactKey: toKey,
73
+ fromLabel: fromId.slice(0, 12),
74
+ toLabel: toId.slice(0, 12),
75
+ });
76
+ }, [getArtifactKey]);
77
+ const closeDiff = useCallback(() => setDiffState(null), []);
43
78
  const onResourceLoadRef = useRef(onResourceLoad);
44
79
  onResourceLoadRef.current = onResourceLoad;
45
80
  useEffect(() => {
@@ -53,37 +88,83 @@ export function SkillDetailView({ org, slug, version, onResourceLoad, onVisibili
53
88
  return _jsx(ErrorMessage, { error: error, retry: refetch, className: className });
54
89
  if (!skill)
55
90
  return _jsx(NotFoundState, { className: className });
91
+ const meta = skill.metadata;
56
92
  const spec = skill.spec;
57
93
  const status = skill.status;
58
94
  const specAudit = status?.audit?.specAudit;
59
- return (_jsxs("div", { className: cn("flex flex-col gap-6", className), children: [_jsx(Header, { skill: skill, createdAt: specAudit?.createdAt ? timestampDate(specAudit.createdAt) : null, updatedAt: specAudit?.updatedAt ? timestampDate(specAudit.updatedAt) : null, onVisibilityChange: onVisibilityChange, isVisibilityPending: isVisibilityPending }), spec?.skillMd && (_jsx(SkillContentSection, { content: spec.skillMd })), status && (status.versionHash || status.gitProvenance) && (_jsx(VersionSection, { versionHash: status.versionHash, gitProvenance: status.gitProvenance }))] }));
95
+ const headerMeta = {
96
+ name: meta?.name || meta?.slug || "Untitled",
97
+ id: meta?.id || "",
98
+ org: meta?.org,
99
+ slug: meta?.slug,
100
+ description: undefined,
101
+ icon: _jsx(SkillIcon, { className: "size-6 text-muted-foreground" }),
102
+ createdAt: specAudit?.createdAt ? timestampDate(specAudit.createdAt) : null,
103
+ updatedAt: specAudit?.updatedAt ? timestampDate(specAudit.updatedAt) : null,
104
+ status: status ? skillStateToPhase(status.state) : undefined,
105
+ statusLabel: status ? skillStateLabel(status.state) : undefined,
106
+ };
107
+ const isPublic = meta?.visibility === ApiResourceVisibility.visibility_public;
108
+ const visibilityControl = onVisibilityChange && meta ? (_jsx(VisibilityToggle, { visibility: meta.visibility, onVisibilityChange: onVisibilityChange, isPending: isVisibilityPending })) : isPublic ? (_jsx("span", { className: "shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground", children: "Public" })) : undefined;
109
+ let tabContent;
110
+ if (activeAdditionalTab) {
111
+ tabContent = activeAdditionalTab.content;
112
+ }
113
+ else if (effectiveActiveTab === "versions" && versions.length > 0) {
114
+ tabContent = (_jsx(VersionTimeline, { entries: versions, onEntrySelect: handleVersionSelect, onCompare: handleCompare }));
115
+ }
116
+ else {
117
+ tabContent = (_jsx(SkillOverview, { spec: spec, status: status, editable: editable }));
118
+ }
119
+ return (_jsxs(_Fragment, { children: [_jsx(ResourceDetailShell, { header: headerMeta, visibilityControl: visibilityControl, primaryAction: primaryAction, actions: actions, tabs: effectiveTabs, activeTab: effectiveTabs ? effectiveActiveTab : undefined, onTabChange: effectiveTabs ? effectiveOnTabChange : undefined, tabsAriaLabel: "Skill detail sections", className: className, children: tabContent }), _jsx(SkillDiffDialog, { state: diffState, onClose: closeDiff })] }));
60
120
  }
61
121
  // ---------------------------------------------------------------------------
62
- // Internal section components
122
+ // Overview content — the skill's built-in "Content" tab
63
123
  // ---------------------------------------------------------------------------
64
- function Header({ skill, createdAt, updatedAt, onVisibilityChange, isVisibilityPending, }) {
65
- const meta = skill.metadata;
66
- const spec = skill.spec;
67
- const status = skill.status;
68
- const displayName = meta?.name || meta?.slug || "Untitled";
69
- const isPublic = meta?.visibility === ApiResourceVisibility.visibility_public;
70
- return (_jsxs("div", { className: "flex items-start gap-3", children: [_jsx(SkillIcon, { className: "mt-1 size-6 shrink-0 text-muted-foreground" }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("h2", { className: "truncate text-lg font-semibold text-foreground", children: displayName }), onVisibilityChange && meta ? (_jsx(VisibilityToggle, { visibility: meta.visibility, onVisibilityChange: onVisibilityChange, isPending: isVisibilityPending })) : (isPublic && (_jsx("span", { className: "shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground", children: "Public" })))] }), _jsxs("div", { className: "mt-0.5 flex flex-wrap items-center gap-x-1.5 text-xs text-muted-foreground", children: [meta?.org && _jsx("span", { children: meta.org }), spec?.tag && (_jsxs(_Fragment, { children: [_jsx(Dot, {}), _jsx("span", { className: "rounded bg-muted px-1.5 py-0.5 font-mono text-[10px] font-medium", children: spec.tag })] })), status && _jsx(SkillStateBadge, { state: status.state }), createdAt && (_jsxs(_Fragment, { children: [_jsx(Dot, {}), _jsxs("span", { children: ["Created ", formatDate(createdAt)] })] })), updatedAt && (_jsxs(_Fragment, { children: [_jsx(Dot, {}), _jsxs("span", { children: ["Updated ", formatDate(updatedAt)] })] }))] }), spec?.description && (_jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: spec.description }))] })] }));
124
+ function SkillOverview({ spec, status, editable, }) {
125
+ return (_jsxs("div", { className: "flex flex-col gap-6", children: [(editable || spec?.description) && (_jsx(Section, { title: "Description", children: editable ? (_jsx("div", { className: "max-h-20 overflow-y-auto p-3", children: _jsx(InlineEditTextarea, { value: spec?.description || "", onSave: async () => false, isSaving: false, placeholder: "Add a description", minRows: 2, disabled: true }) })) : (_jsx("div", { className: "p-3", children: _jsx("pre", { className: "whitespace-pre-wrap break-words text-sm text-foreground font-sans", children: spec?.description }) })) })), (editable || spec?.tag) && (_jsx(Section, { title: "Tag", children: editable ? (_jsx("div", { className: "p-3", children: _jsx(InlineEditText, { value: spec?.tag || "", onSave: async () => false, isSaving: false, placeholder: "Add a tag (e.g. stable, latest)", disabled: true }) })) : (_jsx("div", { className: "flex items-center gap-2 px-3 py-2.5", children: _jsx("span", { className: "rounded bg-muted px-1.5 py-0.5 font-mono text-xs font-medium text-foreground", children: spec?.tag }) })) })), status?.artifactStorageKey ? (_jsx(SkillFileBrowser, { artifactStorageKey: status.artifactStorageKey })) : spec?.skillMd ? (_jsx(SkillContentSection, { content: spec.skillMd })) : null, status && (status.versionHash || status.gitProvenance) && (_jsx(VersionSection, { versionHash: status.versionHash, gitProvenance: status.gitProvenance }))] }));
126
+ }
127
+ // ---------------------------------------------------------------------------
128
+ // Skill state StatusPhase mapping
129
+ // ---------------------------------------------------------------------------
130
+ function skillStateToPhase(state) {
131
+ switch (state) {
132
+ case SkillState.READY:
133
+ return "ready";
134
+ case SkillState.FAILED:
135
+ return "failed";
136
+ case SkillState.UPLOADING:
137
+ return "pending";
138
+ default:
139
+ return undefined;
140
+ }
71
141
  }
72
- function SkillStateBadge({ state }) {
142
+ function skillStateLabel(state) {
73
143
  switch (state) {
74
144
  case SkillState.READY:
75
- return (_jsxs(_Fragment, { children: [_jsx(Dot, {}), _jsxs("span", { className: "inline-flex items-center gap-1 text-emerald-600 dark:text-emerald-400", children: [_jsx(CheckIcon, { className: "size-3" }), "Ready"] })] }));
145
+ return "Ready";
76
146
  case SkillState.FAILED:
77
- return (_jsxs(_Fragment, { children: [_jsx(Dot, {}), _jsx("span", { className: "text-destructive", children: "Failed" })] }));
147
+ return "Failed";
78
148
  case SkillState.UPLOADING:
79
- return (_jsxs(_Fragment, { children: [_jsx(Dot, {}), _jsx("span", { className: "text-amber-600 dark:text-amber-400", children: "Uploading" })] }));
149
+ return "Uploading";
80
150
  default:
81
- return null;
151
+ return undefined;
82
152
  }
83
153
  }
84
154
  function SkillContentSection({ content }) {
85
- return (_jsx(Section, { title: "Skill Content", children: _jsx("div", { className: "p-4", children: _jsx(Markdown, { remarkPlugins: REMARK_PLUGINS, components: MARKDOWN_COMPONENTS, children: stripFrontmatter(content) }) }) }));
155
+ const [viewMode, setViewMode] = useState("rendered");
156
+ return (_jsx(SkillSection, { title: "Skill Content", trailing: _jsx(ContentViewToggle, { value: viewMode, onChange: setViewMode }), children: viewMode === "rendered" ? (_jsx("div", { className: "p-4", children: _jsx(Markdown, { remarkPlugins: REMARK_PLUGINS, components: MARKDOWN_COMPONENTS, children: stripFrontmatter(content) }) })) : (_jsx("pre", { className: "overflow-x-auto p-4 font-mono text-sm leading-relaxed text-foreground", children: content })) }));
157
+ }
158
+ function ContentViewToggle({ value, onChange, }) {
159
+ return (_jsxs("div", { role: "radiogroup", "aria-label": "Content view mode", className: "inline-flex rounded-md border border-input text-[11px]", children: [_jsx("button", { type: "button", role: "radio", "aria-checked": value === "rendered", onClick: () => onChange("rendered"), className: cn("rounded-l-md px-2 py-0.5 font-medium transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", value === "rendered"
160
+ ? "bg-muted text-foreground"
161
+ : "text-muted-foreground hover:text-foreground"), children: "Preview" }), _jsx("button", { type: "button", role: "radio", "aria-checked": value === "source", onClick: () => onChange("source"), className: cn("rounded-r-md border-l border-input px-2 py-0.5 font-medium transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", value === "source"
162
+ ? "bg-muted text-foreground"
163
+ : "text-muted-foreground hover:text-foreground"), children: "Source" })] }));
86
164
  }
165
+ // ---------------------------------------------------------------------------
166
+ // Version section
167
+ // ---------------------------------------------------------------------------
87
168
  function VersionSection({ versionHash, gitProvenance, }) {
88
169
  const truncatedHash = versionHash ? versionHash.slice(0, 12) : null;
89
170
  return (_jsx(Section, { title: "Version", children: _jsxs("div", { className: "flex flex-col gap-3 p-3", children: [truncatedHash && (_jsxs("div", { className: "flex items-baseline gap-2", children: [_jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Hash" }), _jsx("code", { className: "font-mono text-xs text-foreground", title: versionHash, children: truncatedHash })] })), gitProvenance && _jsx(GitProvenanceDisplay, { provenance: gitProvenance })] }) }));
@@ -98,11 +179,8 @@ function GitProvenanceDisplay({ provenance, }) {
98
179
  // ---------------------------------------------------------------------------
99
180
  // Shared layout primitives
100
181
  // ---------------------------------------------------------------------------
101
- function Section({ title, children, }) {
102
- return (_jsxs("section", { children: [_jsx("h3", { className: "mb-2 text-xs font-medium uppercase tracking-wider text-muted-foreground", children: title }), _jsx("div", { className: "overflow-hidden rounded-lg border border-border", children: children })] }));
103
- }
104
- function Dot() {
105
- return (_jsx("span", { className: "shrink-0", "aria-hidden": "true", children: "\u00B7" }));
182
+ function SkillSection({ title, trailing, children, }) {
183
+ return (_jsxs("section", { children: [_jsxs("div", { className: "mb-2 flex items-center justify-between", children: [_jsx("h3", { className: "text-xs font-medium uppercase tracking-wider text-muted-foreground", children: title }), trailing] }), _jsx("div", { className: "overflow-hidden rounded-lg border border-border", children: children })] }));
106
184
  }
107
185
  // ---------------------------------------------------------------------------
108
186
  // Non-happy states
@@ -116,13 +194,6 @@ function NotFoundState({ className }) {
116
194
  // ---------------------------------------------------------------------------
117
195
  // Utilities
118
196
  // ---------------------------------------------------------------------------
119
- function formatDate(date) {
120
- return date.toLocaleDateString("en-US", {
121
- month: "short",
122
- day: "numeric",
123
- year: "numeric",
124
- });
125
- }
126
197
  function normalizeGitUrl(url) {
127
198
  if (!url)
128
199
  return null;
@@ -151,7 +222,4 @@ function formatRepoName(url) {
151
222
  function SkillIcon({ className }) {
152
223
  return (_jsx("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "M9 1.5 4 9h4l-1 5.5L12 7H8l1-5.5Z" }) }));
153
224
  }
154
- function CheckIcon({ className }) {
155
- return (_jsx("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "m3 8.5 3.5 3.5 6.5-8" }) }));
156
- }
157
225
  //# sourceMappingURL=SkillDetailView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkillDetailView.js","sourceRoot":"","sources":["../../src/skill/SkillDetailView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SkillDetailView.js","sourceRoot":"","sources":["../../src/skill/SkillDetailView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /** State passed to {@link SkillDiffDialog} to control its visibility. */
2
+ export interface SkillDiffDialogState {
3
+ /** Artifact storage key for the "before" version. */
4
+ readonly fromArtifactKey: string;
5
+ /** Artifact storage key for the "after" version. */
6
+ readonly toArtifactKey: string;
7
+ /** Truncated hash label for the "before" version (display only). */
8
+ readonly fromLabel: string;
9
+ /** Truncated hash label for the "after" version (display only). */
10
+ readonly toLabel: string;
11
+ }
12
+ /** Props for {@link SkillDiffDialog}. */
13
+ export interface SkillDiffDialogProps {
14
+ /**
15
+ * Dialog state. When non-null, the dialog opens and fetches the diff.
16
+ * When `null`, the dialog is closed.
17
+ */
18
+ readonly state: SkillDiffDialogState | null;
19
+ /** Called when the dialog is dismissed (Escape, backdrop click, close button). */
20
+ readonly onClose: () => void;
21
+ }
22
+ /**
23
+ * Dialog that renders a multi-file diff between two skill versions.
24
+ *
25
+ * Uses native `<dialog>` with `showModal()` for built-in focus trapping,
26
+ * Escape handling, and backdrop — consistent with `ConfirmDialog`.
27
+ *
28
+ * Internally composes `useSkillDiff` (data fetching) and
29
+ * `MultiFileDiffView` (rendering). Handles loading, error, and
30
+ * empty states.
31
+ *
32
+ * Zero Console dependencies — safe for platform builder embedding.
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * const [diffState, setDiffState] = useState<SkillDiffDialogState | null>(null);
37
+ *
38
+ * <SkillDiffDialog state={diffState} onClose={() => setDiffState(null)} />
39
+ * ```
40
+ */
41
+ export declare function SkillDiffDialog({ state, onClose }: SkillDiffDialogProps): import("react/jsx-runtime").JSX.Element | null;
42
+ //# sourceMappingURL=SkillDiffDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillDiffDialog.d.ts","sourceRoot":"","sources":["../../src/skill/SkillDiffDialog.tsx"],"names":[],"mappings":"AAYA,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,oDAAoD;IACpD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC5C,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,oBAAoB,kDAwFvE"}
@@ -0,0 +1,72 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useRef } from "react";
4
+ import { cn } from "@stigmer/theme";
5
+ import { useSkillDiff } from "./useSkillDiff";
6
+ import { MultiFileDiffView } from "../version-history/MultiFileDiffView";
7
+ import { ErrorMessage } from "../error/ErrorMessage";
8
+ // ---------------------------------------------------------------------------
9
+ // Component
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * Dialog that renders a multi-file diff between two skill versions.
13
+ *
14
+ * Uses native `<dialog>` with `showModal()` for built-in focus trapping,
15
+ * Escape handling, and backdrop — consistent with `ConfirmDialog`.
16
+ *
17
+ * Internally composes `useSkillDiff` (data fetching) and
18
+ * `MultiFileDiffView` (rendering). Handles loading, error, and
19
+ * empty states.
20
+ *
21
+ * Zero Console dependencies — safe for platform builder embedding.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * const [diffState, setDiffState] = useState<SkillDiffDialogState | null>(null);
26
+ *
27
+ * <SkillDiffDialog state={diffState} onClose={() => setDiffState(null)} />
28
+ * ```
29
+ */
30
+ export function SkillDiffDialog({ state, onClose }) {
31
+ const dialogRef = useRef(null);
32
+ useEffect(() => {
33
+ const dialog = dialogRef.current;
34
+ if (!dialog)
35
+ return;
36
+ if (state && !dialog.open) {
37
+ dialog.showModal();
38
+ }
39
+ else if (!state && dialog.open) {
40
+ dialog.close();
41
+ }
42
+ }, [state]);
43
+ const handleDialogCancel = useCallback((e) => {
44
+ e.preventDefault();
45
+ onClose();
46
+ }, [onClose]);
47
+ const handleBackdropClick = useCallback((e) => {
48
+ if (e.target === e.currentTarget) {
49
+ onClose();
50
+ }
51
+ }, [onClose]);
52
+ const { diff, isLoading, error } = useSkillDiff(state?.fromArtifactKey ?? null, state?.toArtifactKey ?? null);
53
+ if (!state)
54
+ return null;
55
+ return (_jsx("dialog", { ref: dialogRef, onCancel: handleDialogCancel, onClick: handleBackdropClick, className: cn("fixed inset-0 z-50 m-auto h-[85vh] w-full max-w-4xl 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 h-full flex-col", children: [_jsxs("div", { className: "flex shrink-0 items-center justify-between border-b border-border px-4 py-3", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm", children: [_jsx("span", { className: "font-medium text-foreground", children: "Comparing" }), _jsx("code", { className: "rounded bg-muted px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground", children: state.fromLabel }), _jsx(ArrowIcon, { className: "size-3.5 text-muted-foreground-faint" }), _jsx("code", { className: "rounded bg-muted px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground", children: state.toLabel })] }), _jsx("button", { type: "button", onClick: onClose, "aria-label": "Close diff viewer", className: cn("rounded-md p-1.5 text-muted-foreground transition-colors", "hover:bg-accent-hover hover:text-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"), children: _jsx(CloseIcon, { className: "size-4" }) })] }), _jsx("div", { className: "flex-1 overflow-auto p-4", children: isLoading ? (_jsx(DiffSkeleton, {})) : error ? (_jsx(ErrorMessage, { error: error })) : diff ? (_jsx(MultiFileDiffView, { diff: diff })) : null })] }) }));
56
+ }
57
+ // ---------------------------------------------------------------------------
58
+ // Loading skeleton
59
+ // ---------------------------------------------------------------------------
60
+ function DiffSkeleton() {
61
+ return (_jsxs("div", { className: "flex flex-col gap-4", "aria-busy": "true", "aria-label": "Loading diff", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "h-4 w-36 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-4 w-20 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-4 w-20 animate-pulse rounded bg-muted" })] }), _jsx("div", { className: "h-6 w-full animate-pulse rounded bg-muted" }), [1, 2, 3, 4, 5, 6].map((i) => (_jsxs("div", { className: "flex gap-2", children: [_jsx("div", { className: "h-4 w-10 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-4 w-10 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-4 flex-1 animate-pulse rounded bg-muted" })] }, i)))] }));
62
+ }
63
+ // ---------------------------------------------------------------------------
64
+ // Icons
65
+ // ---------------------------------------------------------------------------
66
+ function ArrowIcon({ className }) {
67
+ return (_jsx("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "M3 8h10M9 4l4 4-4 4" }) }));
68
+ }
69
+ function CloseIcon({ className }) {
70
+ return (_jsx("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "M4 4l8 8M12 4l-8 8" }) }));
71
+ }
72
+ //# sourceMappingURL=SkillDiffDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillDiffDialog.js","sourceRoot":"","sources":["../../src/skill/SkillDiffDialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /** Props for {@link SkillFileBrowser}. */
2
+ export interface SkillFileBrowserProps {
3
+ /** Artifact storage key from `skill.status.artifactStorageKey`. */
4
+ readonly artifactStorageKey: string | null;
5
+ /** Additional CSS classes for the root container. */
6
+ readonly className?: string;
7
+ }
8
+ /**
9
+ * File tree browser with content viewer for skill packages.
10
+ *
11
+ * Fetches the skill's ZIP artifact, unpacks it, and renders:
12
+ * - Left panel: file tree with folder grouping
13
+ * - Right panel: content viewer (rendered Markdown for .md, raw code otherwise)
14
+ *
15
+ * SKILL.md is selected by default on load.
16
+ * Responsive: stacked layout on mobile viewports.
17
+ *
18
+ * Zero Console dependencies — safe for platform builder embedding.
19
+ * All visual properties flow through `--stgm-*` design tokens.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * const { skill } = useSkill(org, slug);
24
+ *
25
+ * <SkillFileBrowser
26
+ * artifactStorageKey={skill?.status?.artifactStorageKey ?? null}
27
+ * />
28
+ * ```
29
+ */
30
+ export declare function SkillFileBrowser({ artifactStorageKey, className, }: SkillFileBrowserProps): import("react/jsx-runtime").JSX.Element | null;
31
+ //# sourceMappingURL=SkillFileBrowser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillFileBrowser.d.ts","sourceRoot":"","sources":["../../src/skill/SkillFileBrowser.tsx"],"names":[],"mappings":"AAaA,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,kBAAkB,EAClB,SAAS,GACV,EAAE,qBAAqB,kDAkGvB"}
@@ -0,0 +1,105 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useMemo, useState } from "react";
4
+ import Markdown from "react-markdown";
5
+ import { cn } from "@stigmer/theme";
6
+ import { MARKDOWN_COMPONENTS, REMARK_PLUGINS, stripFrontmatter } from "../internal/markdown-components";
7
+ import { useSkillArtifact } from "./useSkillArtifact";
8
+ // ---------------------------------------------------------------------------
9
+ // Main component
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * File tree browser with content viewer for skill packages.
13
+ *
14
+ * Fetches the skill's ZIP artifact, unpacks it, and renders:
15
+ * - Left panel: file tree with folder grouping
16
+ * - Right panel: content viewer (rendered Markdown for .md, raw code otherwise)
17
+ *
18
+ * SKILL.md is selected by default on load.
19
+ * Responsive: stacked layout on mobile viewports.
20
+ *
21
+ * Zero Console dependencies — safe for platform builder embedding.
22
+ * All visual properties flow through `--stgm-*` design tokens.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * const { skill } = useSkill(org, slug);
27
+ *
28
+ * <SkillFileBrowser
29
+ * artifactStorageKey={skill?.status?.artifactStorageKey ?? null}
30
+ * />
31
+ * ```
32
+ */
33
+ export function SkillFileBrowser({ artifactStorageKey, className, }) {
34
+ const { files, isLoading, error, getFileContent } = useSkillArtifact(artifactStorageKey);
35
+ const [selectedPath, setSelectedPath] = useState("SKILL.md");
36
+ const treeNodes = useMemo(() => (files ? buildFileTree(files.filter((f) => !f.isDirectory)) : []), [files]);
37
+ const content = useMemo(() => (selectedPath ? getFileContent(selectedPath) : null), [selectedPath, getFileContent]);
38
+ if (!artifactStorageKey)
39
+ return null;
40
+ if (isLoading) {
41
+ return (_jsxs("div", { className: cn("rounded-lg border border-border", className), "aria-busy": "true", "aria-label": "Loading skill package files", children: [_jsx("div", { className: "p-4", children: _jsx("div", { className: "h-3 w-32 animate-pulse rounded bg-muted" }) }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-[200px_1fr] border-t border-border", children: [_jsx("div", { className: "space-y-2 p-3 border-b md:border-b-0 md:border-r border-border", children: [1, 2, 3].map((i) => (_jsx("div", { className: "h-4 w-full animate-pulse rounded bg-muted" }, i))) }), _jsx("div", { className: "p-4", children: _jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "h-4 w-3/4 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-4 w-1/2 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-4 w-2/3 animate-pulse rounded bg-muted" })] }) })] })] }));
42
+ }
43
+ if (error) {
44
+ return (_jsx("div", { className: cn("rounded-lg border border-border p-4", className), children: _jsxs("p", { className: "text-sm text-destructive", children: ["Failed to load skill package: ", error.message] }) }));
45
+ }
46
+ if (!files || files.length === 0)
47
+ return null;
48
+ return (_jsxs("div", { className: cn("rounded-lg border border-border overflow-hidden", className), children: [_jsx("div", { className: "border-b border-border px-4 py-2", children: _jsx("h3", { className: "text-xs font-medium uppercase tracking-wider text-muted-foreground", children: "Package Files" }) }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-[220px_1fr]", children: [_jsx("nav", { className: "border-b border-border md:border-b-0 md:border-r overflow-y-auto", "aria-label": "Skill package file tree", children: _jsx("ul", { className: "py-1", role: "tree", children: treeNodes.map((node) => (_jsx(FileTreeNode, { node: node, selectedPath: selectedPath, onSelect: setSelectedPath, depth: 0 }, node.path))) }) }), _jsx("div", { className: "min-h-[200px] max-h-[400px] overflow-y-auto p-4", children: content !== null ? (_jsx(FileContentViewer, { path: selectedPath, content: content })) : (_jsx("p", { className: "text-sm text-muted-foreground-subtle italic", children: "Select a file to view its contents" })) })] })] }));
49
+ }
50
+ function FileTreeNode({ node, selectedPath, onSelect, depth, }) {
51
+ const [expanded, setExpanded] = useState(true);
52
+ const isFolder = !!node.children;
53
+ const isSelected = node.path === selectedPath;
54
+ const handleClick = useCallback(() => {
55
+ if (isFolder) {
56
+ setExpanded((prev) => !prev);
57
+ }
58
+ else {
59
+ onSelect(node.path);
60
+ }
61
+ }, [isFolder, node.path, onSelect]);
62
+ return (_jsxs("li", { role: "treeitem", "aria-expanded": isFolder ? expanded : undefined, children: [_jsxs("button", { type: "button", onClick: handleClick, className: cn("flex w-full items-center gap-1.5 px-3 py-1 text-left text-xs transition-colors", "hover:bg-muted", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring", isSelected && !isFolder && "bg-muted text-foreground font-medium", !isSelected && "text-muted-foreground"), style: { paddingLeft: `${12 + depth * 12}px` }, "aria-current": isSelected ? "true" : undefined, children: [isFolder && (_jsx("span", { className: "text-[10px] text-muted-foreground-subtle", children: expanded ? "▼" : "▶" })), _jsx("span", { className: cn("truncate", isFolder && "font-medium text-foreground"), children: node.name })] }), isFolder && expanded && node.children && (_jsx("ul", { role: "group", children: node.children.map((child) => (_jsx(FileTreeNode, { node: child, selectedPath: selectedPath, onSelect: onSelect, depth: depth + 1 }, child.path))) }))] }));
63
+ }
64
+ // ---------------------------------------------------------------------------
65
+ // Content viewer
66
+ // ---------------------------------------------------------------------------
67
+ function FileContentViewer({ path, content, }) {
68
+ const isMarkdown = path.endsWith(".md");
69
+ if (isMarkdown) {
70
+ return (_jsx(Markdown, { remarkPlugins: REMARK_PLUGINS, components: MARKDOWN_COMPONENTS, children: stripFrontmatter(content) }));
71
+ }
72
+ return (_jsx("pre", { className: "overflow-x-auto font-mono text-xs leading-relaxed text-foreground whitespace-pre-wrap", children: content }));
73
+ }
74
+ // ---------------------------------------------------------------------------
75
+ // Tree building utility
76
+ // ---------------------------------------------------------------------------
77
+ function buildFileTree(files) {
78
+ const root = [];
79
+ const sorted = [...files].sort((a, b) => a.path.localeCompare(b.path));
80
+ for (const file of sorted) {
81
+ const parts = file.path.split("/");
82
+ if (parts.length === 1) {
83
+ root.push({ name: parts[0], path: file.path });
84
+ }
85
+ else {
86
+ let currentLevel = root;
87
+ for (let i = 0; i < parts.length - 1; i++) {
88
+ const folderName = parts[i];
89
+ let folder = currentLevel.find((n) => n.name === folderName && n.children);
90
+ if (!folder) {
91
+ folder = {
92
+ name: folderName,
93
+ path: parts.slice(0, i + 1).join("/") + "/",
94
+ children: [],
95
+ };
96
+ currentLevel.push(folder);
97
+ }
98
+ currentLevel = folder.children;
99
+ }
100
+ currentLevel.push({ name: parts[parts.length - 1], path: file.path });
101
+ }
102
+ }
103
+ return root;
104
+ }
105
+ //# sourceMappingURL=SkillFileBrowser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillFileBrowser.js","sourceRoot":"","sources":["../../src/skill/SkillFileBrowser.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { Skill } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/api_pb";
2
+ /** Props for {@link SkillUploader}. */
3
+ export interface SkillUploaderProps {
4
+ /** Organization that will own the uploaded skill. */
5
+ readonly org: string;
6
+ /** Optional version tag for the push (e.g. "stable"). */
7
+ readonly tag?: string;
8
+ /** Called after a successful push with the persisted skill resource. */
9
+ readonly onComplete?: (skill: Skill) => void;
10
+ /** Called when the user cancels the upload flow. */
11
+ readonly onCancel?: () => void;
12
+ /** Additional CSS classes for the root container. */
13
+ readonly className?: string;
14
+ }
15
+ /**
16
+ * Skill package upload component with validation and preview.
17
+ *
18
+ * Two-phase flow:
19
+ * 1. **Drop zone** — User drags/drops or clicks to select a .zip file
20
+ * 2. **Preview + confirm** — Validated package summary, file listing,
21
+ * rendered SKILL.md preview, and push button
22
+ *
23
+ * Validates the uploaded ZIP against the Anthropic Agent Skills spec:
24
+ * must contain SKILL.md with valid YAML frontmatter (name, description).
25
+ *
26
+ * Zero Console dependencies — safe for platform builder embedding.
27
+ * All visual properties flow through `--stgm-*` design tokens.
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * <SkillUploader
32
+ * org="acme"
33
+ * onComplete={(skill) => router.push(`/library/skills/${skill.metadata?.org}/${skill.metadata?.slug}`)}
34
+ * onCancel={() => router.back()}
35
+ * />
36
+ * ```
37
+ */
38
+ export declare function SkillUploader({ org, tag, onComplete, onCancel, className, }: SkillUploaderProps): import("react/jsx-runtime").JSX.Element;
39
+ //# sourceMappingURL=SkillUploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillUploader.d.ts","sourceRoot":"","sources":["../../src/skill/SkillUploader.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oDAAoD,CAAC;AAUhF,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7C,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,GAAG,EACH,UAAU,EACV,QAAQ,EACR,SAAS,GACV,EAAE,kBAAkB,2CA4DpB"}