@zaip-ai/cli 3.3.0 → 3.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 (288) hide show
  1. package/dist/services/adapters.d.ts +1 -1
  2. package/dist/services/adapters.d.ts.map +1 -1
  3. package/dist/services/adapters.js +4 -3
  4. package/dist/services/adapters.js.map +1 -1
  5. package/dist/services/agent-catalog-upgrade.d.ts +3 -0
  6. package/dist/services/agent-catalog-upgrade.d.ts.map +1 -0
  7. package/dist/services/agent-catalog-upgrade.js +35 -0
  8. package/dist/services/agent-catalog-upgrade.js.map +1 -0
  9. package/dist/services/install-agents-template.d.ts.map +1 -1
  10. package/dist/services/install-agents-template.js +22 -22
  11. package/dist/services/install-agents-template.js.map +1 -1
  12. package/dist/services/install-template-policy.d.ts +3 -0
  13. package/dist/services/install-template-policy.d.ts.map +1 -0
  14. package/dist/services/install-template-policy.js +21 -0
  15. package/dist/services/install-template-policy.js.map +1 -0
  16. package/dist/services/logger.test.js +12 -2
  17. package/dist/services/logger.test.js.map +1 -1
  18. package/dist/services/sqlite-bootstrap.d.ts +1 -0
  19. package/dist/services/sqlite-bootstrap.d.ts.map +1 -1
  20. package/dist/services/sqlite-bootstrap.js +10 -1
  21. package/dist/services/sqlite-bootstrap.js.map +1 -1
  22. package/package.json +2 -2
  23. package/templates/.agents/config/agents/discovery.json +1 -1
  24. package/templates/.agents/dashboard/.zaip-managed.json +286 -126
  25. package/templates/.agents/dashboard/apps/frontend/dist/assets/{CostCalculationGuidePage-BBFDrn64.js → CostCalculationGuidePage-C5NgEcVh.js} +1 -1
  26. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-Cd-qo9w7.js → DashboardHelpDialog-CCMVnkkI.js} +1 -1
  27. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-J7L5m8lk.js → PricingSettingsDialog-CGYcJ5EB.js} +1 -1
  28. package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-B9GWkEyN.css → ProjectSettingsPage-CQMhvzvJ.css} +1 -1
  29. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-D46WWIKr.js +3 -0
  30. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-BzVtGLWS.js → TraceabilityWorkspace-BKBpJyLh.js} +1 -1
  31. package/templates/.agents/dashboard/apps/frontend/dist/assets/{cost-monitor-PoJA2PI1.css → cost-monitor-BsMfGfQi.css} +1 -1
  32. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-j3aUYH5G.js +68 -0
  33. package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-CWzf_RiP.js → icons-vendor-x8xxL9yW.js} +1 -1
  34. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-Bas2TVju.js +2 -0
  35. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-CxrG_wRI.css +1 -0
  36. package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-CtHdbZk3.js → react-vendor-CNOXIJHN.js} +1 -1
  37. package/templates/.agents/dashboard/apps/frontend/dist/assets/{traceability-BKrDH2TR.js → traceability-CcpbpT1s.js} +1 -1
  38. package/templates/.agents/dashboard/apps/frontend/dist/index.html +7 -7
  39. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  40. package/templates/.agents/dashboard/apps/frontend/src/App.tsx +12 -1
  41. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsCard.tsx +5 -0
  42. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsField.tsx +21 -0
  43. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.dom.test.ts +12 -1
  44. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.tsx +16 -28
  45. package/templates/.agents/dashboard/apps/frontend/src/ProjectStackEditor.tsx +25 -4
  46. package/templates/.agents/dashboard/apps/frontend/src/WorkspaceStatus.test.tsx +51 -0
  47. package/templates/.agents/dashboard/apps/frontend/src/WorkspaceStatus.tsx +39 -0
  48. package/templates/.agents/dashboard/apps/frontend/src/app-work-board-options.ts +41 -0
  49. package/templates/.agents/dashboard/apps/frontend/src/dashboard-runtime-status.ts +25 -0
  50. package/templates/.agents/dashboard/apps/frontend/src/project-settings-copy.ts +13 -4
  51. package/templates/.agents/dashboard/apps/frontend/src/project-settings-model.ts +25 -1
  52. package/templates/.agents/dashboard/apps/frontend/src/project-settings-workspace.css +28 -0
  53. package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +39 -0
  54. package/templates/.agents/dashboard/apps/frontend/src/snapshot-coherence.test.ts +1 -1
  55. package/templates/.agents/dashboard/apps/frontend/src/use-app-cost-loaders.ts +5 -1
  56. package/templates/.agents/dashboard/apps/frontend/src/use-app-work-board.test.ts +140 -0
  57. package/templates/.agents/dashboard/apps/frontend/src/use-app-work-board.ts +28 -41
  58. package/templates/.agents/dashboard/apps/frontend/src/use-runtime-status.ts +38 -0
  59. package/templates/.agents/dashboard/apps/frontend/src/workspace-status.css +20 -0
  60. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  61. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CompactLifecycleCostTable.test.ts +25 -3
  62. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CompactLifecycleCostTable.tsx +17 -19
  63. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostFilters.tsx +13 -167
  64. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostGroupsTable.tsx +2 -9
  65. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.test.ts +8 -8
  66. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.tsx +29 -52
  67. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTableLoading.test.ts +1 -1
  68. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables-keeps-legacy-codex-identity-fields-blank.test.ts +2 -2
  69. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.test.ts +4 -27
  70. package/templates/.agents/dashboard/modules/cost-monitor/src/react/MacroCostTable.test.ts +2 -2
  71. package/templates/.agents/dashboard/modules/cost-monitor/src/react/MacroCostTable.tsx +4 -3
  72. package/templates/.agents/dashboard/modules/cost-monitor/src/react/agent-model-presentation.test.ts +26 -0
  73. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-embedded.css +7 -0
  74. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-loaders.ts +173 -0
  75. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-page-props.ts +47 -0
  76. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-page-selectors.ts +1 -7
  77. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-page-range.ts +3 -9
  78. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-monitor-projection.test.ts +44 -83
  79. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-monitor-projection.ts +11 -111
  80. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-summary-projection.test.ts +47 -181
  81. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-summary-projection.ts +63 -91
  82. package/templates/.agents/dashboard/modules/cost-monitor/src/server/cost-monitor-unavailable.test.ts +55 -0
  83. package/templates/.agents/dashboard/modules/cost-monitor/src/server/cost-summary-duration.test.ts +189 -0
  84. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  85. package/templates/.agents/dashboard/modules/operations/src/react/OperationsEntityFilters.tsx +82 -0
  86. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPage.tsx +22 -31
  87. package/templates/.agents/dashboard/modules/operations/src/react/PagedWorkList.test.tsx +13 -1
  88. package/templates/.agents/dashboard/modules/operations/src/react/PagedWorkList.tsx +16 -3
  89. package/templates/.agents/dashboard/modules/operations/src/react/export/ExcelExportAction.test.ts +11 -27
  90. package/templates/.agents/dashboard/modules/operations/src/react/export/ExcelExportAction.tsx +44 -193
  91. package/templates/.agents/dashboard/modules/operations/src/react/export/ExcelExportColumns.ts +186 -0
  92. package/templates/.agents/dashboard/modules/operations/src/react/export/excel-agent-participations.test.ts +28 -0
  93. package/templates/.agents/dashboard/modules/operations/src/react/export/export-layout.test.ts +2 -1
  94. package/templates/.agents/dashboard/modules/operations/src/react/operations-export-duration.ts +13 -0
  95. package/templates/.agents/dashboard/modules/operations/src/react/operations-filter-panel.css +4 -0
  96. package/templates/.agents/dashboard/modules/operations/src/react/use-operation-filter-feedback.ts +18 -0
  97. package/templates/.agents/dashboard/modules/operations/src/react/work-board-model.test.ts +11 -0
  98. package/templates/.agents/dashboard/modules/operations/src/react/work-board-model.ts +10 -2
  99. package/templates/.agents/dashboard/modules/operations/src/work-board-model.ts +1 -1
  100. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  101. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  102. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  103. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  104. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +395 -341
  105. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +346 -294
  106. package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
  107. package/templates/.agents/dashboard/packages/local-runtime/scripts/rebuild-sqlite-read-model.mjs +2 -1
  108. package/templates/.agents/dashboard/packages/local-runtime/scripts/validate-sqlite-read-model.mjs +42 -8
  109. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +395 -341
  110. package/templates/.agents/dashboard/packages/local-runtime/src/active-codex-telemetry.test.ts +95 -0
  111. package/templates/.agents/dashboard/packages/local-runtime/src/active-codex-telemetry.ts +102 -12
  112. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.test.ts +2 -3
  113. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.ts +1 -1
  114. package/templates/.agents/dashboard/packages/local-runtime/src/server-board.test.ts +75 -1
  115. package/templates/.agents/dashboard/packages/local-runtime/src/server-costs-routes.ts +10 -0
  116. package/templates/.agents/dashboard/packages/local-runtime/src/server-lifecycle-diagnostics.ts +50 -0
  117. package/templates/.agents/dashboard/packages/local-runtime/src/server-macro-population.test.ts +165 -0
  118. package/templates/.agents/dashboard/packages/local-runtime/src/server-operations-page-filters.ts +65 -0
  119. package/templates/.agents/dashboard/packages/local-runtime/src/server-operations-pages.test.ts +111 -0
  120. package/templates/.agents/dashboard/packages/local-runtime/src/server-operations-pages.ts +53 -63
  121. package/templates/.agents/dashboard/packages/local-runtime/src/server-operations-runs-route.ts +19 -5
  122. package/templates/.agents/dashboard/packages/local-runtime/src/server-period-macro-metric.ts +11 -2
  123. package/templates/.agents/dashboard/packages/local-runtime/src/server-read-projections.ts +16 -9
  124. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-refresh.test.ts +46 -2
  125. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.test.ts +10 -2
  126. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.ts +4 -3
  127. package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +43 -1
  128. package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +46 -11
  129. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-filter-matrix.test.ts +188 -0
  130. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-summary-details.test.ts +85 -0
  131. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-summary-details.ts +147 -0
  132. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-cache.ts +64 -54
  133. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-macro-classification.test.ts +172 -0
  134. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-projections.ts +1 -1
  135. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-projection.ts +2 -1
  136. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.test.ts +7 -7
  137. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.ts +2 -1
  138. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-period-averages.ts +10 -1
  139. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-pricing-provenance.test.ts +39 -0
  140. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-agent-dimension.ts +18 -82
  141. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-cached-cost-page.ts +169 -0
  142. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-developer.ts +205 -0
  143. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-entity-group.ts +13 -4
  144. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-filtered-dimension.ts +22 -23
  145. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-financial.ts +42 -209
  146. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-model-dimension.ts +18 -4
  147. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-provider-dimension.ts +9 -2
  148. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-summary.ts +76 -83
  149. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-view-page.ts +25 -161
  150. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-canonical.ts +20 -47
  151. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-counts-every-root-execution-day-returns.test.ts +2 -2
  152. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-filesystem.ts +16 -16
  153. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-multi-provider.test.ts +1 -1
  154. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-rebuild.ts +47 -22
  155. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-schema.ts +3 -2
  156. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +11 -0
  157. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-rebuild-result.ts +15 -0
  158. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-base-views.ts +4 -4
  159. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-dashboard-views.ts +15 -56
  160. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-macro-classification.ts +48 -0
  161. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-summary-cursor.ts +15 -0
  162. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-token-active-allocation.ts +46 -0
  163. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-work-stages.ts +60 -0
  164. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-history.mjs +5 -1
  165. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-launch-claims.test.mjs +7 -1
  166. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-launch-page.mjs +17 -2
  167. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-ownership.mjs +65 -0
  168. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-ownership.test.mjs +72 -0
  169. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-processes.mjs +32 -9
  170. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.mjs +39 -45
  171. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.test.mjs +5 -2
  172. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  173. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  174. package/templates/.agents/dashboard/tests/e2e/specs/dashboard-performance-matrix.spec.ts +1 -18
  175. package/templates/.agents/dashboard/tests/e2e/specs/export-row-identity.spec.ts +20 -0
  176. package/templates/.agents/dashboard/tests/e2e/specs/export-row-identity.ts +20 -0
  177. package/templates/.agents/design/.zaip-managed.json +105 -69
  178. package/templates/.agents/design/apps/catalog/dist/assets/index-0W0Gj_Gs.css +1 -0
  179. package/templates/.agents/design/apps/catalog/dist/assets/index-32GZO95T.js +72 -0
  180. package/templates/.agents/design/apps/catalog/dist/assets/{index-D_lfqoyx.js → index-BP8IxOxt.js} +3 -3
  181. package/templates/.agents/design/apps/catalog/dist/assets/index-D1JaPXfV.css +1 -0
  182. package/templates/.agents/design/apps/catalog/dist/assets/index-D2miO4-O.js +72 -0
  183. package/templates/.agents/design/apps/catalog/dist/assets/{index-BOjCcUaU.js → index-QJsgr9Ht.js} +3 -3
  184. package/templates/.agents/design/apps/catalog/dist/assets/{index-CqtYXZfV.js → index-mvD5mwcC.js} +3 -3
  185. package/templates/.agents/design/apps/catalog/dist/index.html +2 -2
  186. package/templates/.agents/design/apps/catalog/dist/storybook/assets/CatalogShell-BJ8b4xZr.js +1 -0
  187. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{Color-6AOWCN3U-Cm-yJJz_.js → Color-6AOWCN3U-CQLHzznn.js} +1 -1
  188. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Components.stories-kxWwSKin.js +146 -0
  189. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DashboardFilters.stories-Chm_dXV7.js +9 -0
  190. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DashboardFiltersSpecimen-9CaCbGIZ.js +1 -0
  191. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DesignSystem.stories-ED52wFjY.js +1 -0
  192. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{DocsRenderer-JROSPFPF-Belk4jRr.js → DocsRenderer-JROSPFPF-BcLgM80v.js} +4 -4
  193. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Primitives-DV6Bpudf.js +1 -0
  194. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{WithTooltip-7X4HQR7L-DoPvjkS1.js → WithTooltip-7X4HQR7L-BKNiAz_E.js} +1 -1
  195. package/templates/.agents/design/apps/catalog/dist/storybook/assets/WorkspaceStatus.stories-BL19HGOo.js +17 -0
  196. package/templates/.agents/design/apps/catalog/dist/storybook/assets/WorkspaceStatusSpecimen-DQnSS6s9.js +1 -0
  197. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{chunk-DRQKCCAG-B1itKXEN.js → chunk-DRQKCCAG-DZBcXL-p.js} +1 -1
  198. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{chunk-W22LQPXL-C-Eb5SPY.js → chunk-W22LQPXL-CF3y2mfo.js} +1 -1
  199. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{components-DnyKLwhj.js → components-BVjxMRGq.js} +5 -5
  200. package/templates/.agents/design/apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-Do9sjqiW.js +1 -0
  201. package/templates/.agents/design/apps/catalog/dist/storybook/assets/iframe-0W0Gj_Gs.css +1 -0
  202. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{iframe-DcXBsFPz.js → iframe-CTWGZcEe.js} +4 -4
  203. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{react-18-CRM89QRf.js → react-18-B9_a4mHb.js} +1 -1
  204. package/templates/.agents/design/apps/catalog/dist/storybook/assets/react-NrUxok8K.js +1 -0
  205. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{syntaxhighlighter-YFXUGROL-B03jQGTF.js → syntaxhighlighter-YFXUGROL-F_p8E2xc.js} +1 -1
  206. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{theming-4ZyufAga.js → theming-fbSD9ZLF.js} +1 -1
  207. package/templates/.agents/design/apps/catalog/dist/storybook/iframe.html +2 -2
  208. package/templates/.agents/design/apps/catalog/dist/storybook/index.json +1 -1
  209. package/templates/.agents/design/apps/catalog/dist/storybook/sb-addons/a11y-2/manager-bundle.js +3 -3
  210. package/templates/.agents/design/apps/catalog/dist/storybook/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +3 -3
  211. package/templates/.agents/design/apps/catalog/package.json +1 -1
  212. package/templates/.agents/design/apps/catalog/src/components/DashboardFiltersSpecimen.tsx +61 -0
  213. package/templates/.agents/design/apps/catalog/src/components/Primitives.tsx +24 -0
  214. package/templates/.agents/design/apps/catalog/src/components/StackVersionFieldSpecimen.tsx +70 -0
  215. package/templates/.agents/design/apps/catalog/src/components/WorkspaceStatusSpecimen.tsx +42 -0
  216. package/templates/.agents/design/apps/catalog/src/design-contract.test.ts +27 -13
  217. package/templates/.agents/design/apps/catalog/src/pages/ComponentsPage.tsx +52 -0
  218. package/templates/.agents/design/apps/catalog/src/pages/DesignSystemPage.tsx +15 -1
  219. package/templates/.agents/design/apps/catalog/src/stories/Components.stories.tsx +32 -0
  220. package/templates/.agents/design/apps/catalog/src/stories/DashboardFilters.stories.tsx +7 -0
  221. package/templates/.agents/design/apps/catalog/src/stories/WorkspaceStatus.stories.tsx +12 -0
  222. package/templates/.agents/design/apps/catalog/src/styles/components.css +84 -3
  223. package/templates/.agents/design/apps/catalog/src/styles/stack-version-field.css +17 -0
  224. package/templates/.agents/design/apps/catalog/src/styles.css +2 -0
  225. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  226. package/templates/.agents/design/tokens.json +32 -0
  227. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  228. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  229. package/templates/.agents/requirements/comparative-audit.md +1 -1
  230. package/templates/.agents/requirements/context-engine.md +1 -1
  231. package/templates/.agents/requirements/cost-observability.md +1 -1
  232. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  233. package/templates/.agents/requirements/data-export.md +1 -1
  234. package/templates/.agents/requirements/design-system.md +1 -1
  235. package/templates/.agents/requirements/execution-engine.md +1 -1
  236. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  237. package/templates/.agents/requirements/model-orchestration.md +1 -1
  238. package/templates/.agents/requirements/public-distribution.md +9 -3
  239. package/templates/.agents/requirements/software-architecture.md +1 -1
  240. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  241. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  242. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  243. package/templates/.agents/rules/autonomy-decision.md +1 -0
  244. package/templates/.agents/rules/workflow.md +2 -2
  245. package/templates/.agents/runtime/VERSION +1 -1
  246. package/templates/.agents/runtime/bin/zaip.mjs +27 -26
  247. package/templates/.agents/runtime/checksums.sha256 +5 -5
  248. package/templates/.agents/runtime/manifest.json +1 -1
  249. package/templates/.agents/runtime/provenance.json +4 -4
  250. package/templates/.agents/runtime/sbom.cdx.json +1 -1
  251. package/templates/.agents/skills/zaip-skill-execution/SKILL.md +13 -0
  252. package/templates/.agents/skills/zaip-skill-execution/references/autonomous-continuation.md +17 -0
  253. package/templates/.agents/skills/zaip-skill-execution/references/correction-cycle.md +2 -2
  254. package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +9 -6
  255. package/templates/.agents/skills/zaip-skill-github-deploy/agents/openai.yaml +1 -1
  256. package/templates/.agents/skills/zaip-skill-github-deploy/references/deployment-workflow.md +11 -9
  257. package/templates/.agents/skills/zaip-skill-github-deploy/references/release-identity.md +2 -2
  258. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.mjs +1 -2
  259. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.test.mjs +9 -1
  260. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs +23 -0
  261. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.mjs +2 -6
  262. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.test.mjs +15 -1
  263. package/templates/.agents/skills/zaip-skill-move-prd/SKILL.md +4 -0
  264. package/templates/.agents/skills/zaip-skill-move-spec/SKILL.md +4 -0
  265. package/templates/.agents/skills/zaip-skill-prd/SKILL.md +3 -3
  266. package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +11 -8
  267. package/templates/.agents/skills/zaip-skill-release-qualification/references/local-preparation.md +13 -12
  268. package/templates/.agents/skills/zaip-skill-setup/SKILL.md +17 -2
  269. package/templates/.agents/skills/zaip-skill-setup/agents/openai.yaml +1 -1
  270. package/templates/.agents/skills/zaip-skill-spec/SKILL.md +2 -2
  271. package/templates/.agents/zaip-aios/VERSION +1 -1
  272. package/templates/template-manifest.json +445 -245
  273. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-BpsAFy0g.js +0 -3
  274. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor--iPcnZdx.js +0 -68
  275. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-Cmlx8OYH.css +0 -1
  276. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-DfdlGa7c.js +0 -2
  277. package/templates/.agents/design/apps/catalog/dist/assets/index-BEmIE7WE.css +0 -1
  278. package/templates/.agents/design/apps/catalog/dist/assets/index-BJV597iq.js +0 -72
  279. package/templates/.agents/design/apps/catalog/dist/assets/index-B_WhrCZe.js +0 -72
  280. package/templates/.agents/design/apps/catalog/dist/assets/index-CqqYWY2f.js +0 -9
  281. package/templates/.agents/design/apps/catalog/dist/assets/index-D9pj7Jlf.js +0 -9
  282. package/templates/.agents/design/apps/catalog/dist/assets/index-i_PO2k9R.js +0 -9
  283. package/templates/.agents/design/apps/catalog/dist/storybook/assets/CatalogShell-Cstn1UwA.js +0 -1
  284. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Components.stories-D1WopB2L.js +0 -137
  285. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DesignSystem.stories-DQ9PJ3N3.js +0 -1
  286. package/templates/.agents/design/apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-D0OSgxWz.js +0 -1
  287. package/templates/.agents/design/apps/catalog/dist/storybook/assets/iframe-BEmIE7WE.css +0 -1
  288. package/templates/.agents/design/apps/catalog/dist/storybook/assets/react-C3tkVMIp.js +0 -1
@@ -93,6 +93,7 @@ import {
93
93
  presentLaunchFailure,
94
94
  writeLauncherStatus,
95
95
  } from "./start-dashboard-lifecycle.mjs";
96
+ import { inspectDashboardOwnership } from "./start-dashboard-ownership.mjs";
96
97
  import { assertDashboardPrerequisites, exists } from "./start-dashboard-prerequisites.mjs";
97
98
  import {
98
99
  isKnownDashboardLauncher,
@@ -132,7 +133,8 @@ export async function readDashboardSession(path = sessionPath) {
132
133
  }
133
134
  }
134
135
  export async function writeDashboardSession(session, path = sessionPath) {
135
- await writeJsonAtomic(path, session);
136
+ const { snapshotState: _obsoleteSnapshotState, ...identity } = session;
137
+ await writeJsonAtomic(path, identity);
136
138
  }
137
139
  export async function claimDashboardLaunch(
138
140
  { launchPort, token },
@@ -193,6 +195,7 @@ export async function claimDashboardLaunch(
193
195
  if (
194
196
  previous?.kind === claim.kind &&
195
197
  previous?.workspaceKey === workspaceKey &&
198
+ previous?.workspace === workspaceRoot &&
196
199
  Number.isInteger(previous?.launcherPid) &&
197
200
  previous.launcherPid > 0 &&
198
201
  previous.launcherPid !== process.pid
@@ -304,11 +307,11 @@ export async function probeDashboardPort(
304
307
  }
305
308
  export async function findReusableDashboardSession({
306
309
  path = sessionPath,
307
- startPort = preferredPort(),
308
310
  fetchImpl = fetch,
309
311
  expectedWorkspaceKey = workspaceKey,
310
312
  expectedBuildSignature = null,
311
313
  expectedSnapshotState = "current",
314
+ inspectOwnership = inspectDashboardOwnership,
312
315
  } = {}) {
313
316
  const session = await readDashboardSession(path);
314
317
  if (
@@ -321,43 +324,19 @@ export async function findReusableDashboardSession({
321
324
  ) {
322
325
  return null;
323
326
  }
324
- // Session metadata is written before the serving process finishes promoting
325
- // a stale seed. Trust a state transition only after the owned server itself
326
- // reports it; never reuse an unknown or still-updating generation as current.
327
- if (expectedSnapshotState !== null && session.snapshotState !== expectedSnapshotState) {
328
- if (!Number.isInteger(session.port)) return null;
329
- try {
330
- const response = await fetchImpl(dashboardHealthUrl(session.port), {
331
- signal: AbortSignal.timeout(500),
332
- });
333
- const payload = await response.json();
334
- if (
335
- !response.ok ||
336
- payload?.kind !== runtimeKind ||
337
- payload?.workspaceKey !== expectedWorkspaceKey ||
338
- payload?.snapshot_state !== expectedSnapshotState
339
- )
340
- return null;
341
- } catch {
342
- return null;
343
- }
344
- }
327
+ const health = await inspectOwnership(session, {
328
+ workspaceRoot,
329
+ workspaceKey: expectedWorkspaceKey,
330
+ fetchImpl,
331
+ host,
332
+ });
345
333
  if (
346
- Number.isInteger(session.port) &&
347
- (await probeDashboardPort(session.port, fetchImpl, expectedWorkspaceKey))
348
- ) {
349
- return session;
350
- }
351
- const ports = Array.from({ length: maxPortAttempts }, (_, index) => startPort + index).filter(
352
- (port) => port <= 65_535 && port !== session.port,
353
- );
354
- const matches = await Promise.all(
355
- ports.map(async (port) =>
356
- (await probeDashboardPort(port, fetchImpl, expectedWorkspaceKey)) ? port : null,
357
- ),
358
- );
359
- const port = matches.find((candidate) => candidate !== null);
360
- return port === undefined ? null : { ...session, port };
334
+ health === null ||
335
+ health.status !== "ok" ||
336
+ (expectedSnapshotState !== null && health.snapshot_state !== expectedSnapshotState)
337
+ )
338
+ return null;
339
+ return session;
361
340
  }
362
341
  export function requestBackgroundProjectionRefresh(session, fetchImpl = fetch) {
363
342
  return fetchImpl(`http://${host}:${session.port}/api/v2/refresh-projection`, {
@@ -423,7 +402,7 @@ export async function withLauncherLock(
423
402
  }
424
403
 
425
404
  export function startDashboardLaunchPage(port) {
426
- return createDashboardLaunchPage({ port, host, runtimeKind, healthPath, delay });
405
+ return createDashboardLaunchPage({ port, host, runtimeKind, healthPath, delay, workspaceRoot });
427
406
  }
428
407
  async function redirectLaunchPage(launchPage, target) {
429
408
  launchPage.setProgress({
@@ -464,6 +443,7 @@ async function stopOwnedDashboard(session) {
464
443
  fetchImpl: fetch,
465
444
  host,
466
445
  packageRoot,
446
+ workspaceRoot,
467
447
  delay,
468
448
  });
469
449
  }
@@ -471,10 +451,12 @@ export async function previousDashboardSessions({
471
451
  sessionPath: candidateSessionPath = sessionPath,
472
452
  registryPath: candidateRegistryPath = portRegistryPath,
473
453
  probe = (port) => probeDashboardPort(port, fetch, workspaceKey, false),
454
+ inspectOwnership = inspectDashboardOwnership,
474
455
  } = {}) {
475
456
  return collectPreviousDashboardSessions({
476
457
  candidateSessionPath,
477
458
  candidateRegistryPath,
459
+ inspectOwnership,
478
460
  probe,
479
461
  readDashboardSession,
480
462
  readPortRegistry,
@@ -642,10 +624,7 @@ async function main() {
642
624
  dbPath,
643
625
  buildSignature,
644
626
  generationId: `${process.pid}-${child.pid}-${port}-${randomBytes(6).toString("hex")}`,
645
- // The serving process owns the stale-seed refresh and promotes it
646
- // into this session, so a later click can reuse the current
647
- // generation after the health state flips.
648
- snapshotState: snapshotCache === "stale_seed" ? "updating" : "current",
627
+ // Snapshot state belongs exclusively to the live health/ready endpoints.
649
628
  createdAt: new Date().toISOString(),
650
629
  };
651
630
  await assertCurrentLaunch();
@@ -719,12 +698,27 @@ async function waitForDashboard(port, child) {
719
698
  try {
720
699
  const response = await fetch(dashboardHealthUrl(port), { signal: AbortSignal.timeout(750) });
721
700
  const payload = await response.json().catch(() => null);
722
- if (response.ok && payload?.kind === runtimeKind && payload?.workspaceKey === workspaceKey) {
701
+ if (
702
+ payload?.kind === runtimeKind &&
703
+ payload?.workspaceKey === workspaceKey &&
704
+ payload?.workspace === workspaceRoot &&
705
+ payload?.server_pid === child.pid &&
706
+ (response.ok || payload.status === "degraded")
707
+ ) {
723
708
  const readiness = await fetch(`http://${host}:${port}/api/v2/ready`, {
724
709
  signal: AbortSignal.timeout(750),
725
710
  cache: "no-store",
726
711
  });
727
- if (readiness.ok) return;
712
+ const readinessPayload = await readiness
713
+ .clone()
714
+ .json()
715
+ .catch(() => null);
716
+ if (
717
+ readiness.ok ||
718
+ (readinessPayload?.status === "degraded" &&
719
+ ["missing", "invalid"].includes(readinessPayload.lifecycle_manifest_state))
720
+ )
721
+ return;
728
722
  if (readiness.status >= 500) {
729
723
  const detail = await readiness.json().catch(() => null);
730
724
  const unavailable = new Error(
@@ -468,11 +468,13 @@ describe("dashboard executable session", () => {
468
468
  const reusable = await findReusableDashboardSession({
469
469
  path,
470
470
  expectedBuildSignature: "compatible-build",
471
+ inspectOwnership: async () => ({ status: "ok", snapshot_state: "current" }),
471
472
  fetchImpl: async () =>
472
473
  new Response(JSON.stringify({ kind: runtimeKind, workspaceKey }), { status: 200 }),
473
474
  });
474
475
 
475
- expect(reusable).toEqual(session);
476
+ const { snapshotState, ...identity } = session;
477
+ expect(reusable).toEqual(identity);
476
478
  expect(reusable).toMatchObject({ port: 4317, serverPid: 5678 });
477
479
  });
478
480
 
@@ -655,6 +657,7 @@ describe("dashboard executable session", () => {
655
657
  sessionPath: join(directory, "missing-session.json"),
656
658
  registryPath: path,
657
659
  probe: async () => true,
660
+ inspectOwnership: async () => ({ status: "ok" }),
658
661
  }),
659
662
  ).resolves.toEqual([expect.objectContaining({ port: 4317, rootPid: 1234, status: "closed" })]);
660
663
  });
@@ -743,7 +746,7 @@ describe("dashboard executable session", () => {
743
746
  expect(buildSignature).toBeGreaterThan(lock);
744
747
  expect(previous).toBeGreaterThan(buildSignature);
745
748
  expect(source).toContain("newestClickWins: true,");
746
- expect(source).toContain(
749
+ expect(source).not.toContain(
747
750
  'snapshotState: snapshotCache === "stale_seed" ? "updating" : "current",',
748
751
  );
749
752
  expect(source).toContain("presentLaunchFailure(launchPage, error, formatLauncherError)");
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/dashboard-ui",
3
- "version": "3.3.0",
3
+ "version": "3.5.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/dashboard-e2e",
3
- "version": "3.3.0",
3
+ "version": "3.5.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -1,4 +1,5 @@
1
1
  import { expect, type Locator, type Page, test } from "@playwright/test";
2
+ import { exportRowIdentity } from "./export-row-identity.js";
2
3
 
3
4
  type Metric = {
4
5
  surface: string;
@@ -710,24 +711,6 @@ function assertCompleteExport(pages: SqlitePage[]) {
710
711
  expect(pages.at(-1)?.has_more).toBe(false);
711
712
  }
712
713
 
713
- function exportRowIdentity(row: Record<string, unknown>): string {
714
- for (const key of [
715
- "agent_invocation_id",
716
- "execution_id",
717
- "conversation_id",
718
- "task_id",
719
- "spec_id",
720
- "prd_id",
721
- "period_key",
722
- "key",
723
- "id",
724
- ]) {
725
- const value = row[key];
726
- if (typeof value === "string" && value.length > 0) return `${key}:${value}`;
727
- }
728
- return JSON.stringify(row);
729
- }
730
-
731
714
  async function exportCloseCount(page: Page): Promise<number> {
732
715
  return page.evaluate(
733
716
  () => (window as Window & { __zaipExportCloseCount?: number }).__zaipExportCloseCount ?? 0,
@@ -0,0 +1,20 @@
1
+ import { expect, test } from "@playwright/test";
2
+ import { exportRowIdentity } from "./export-row-identity.js";
3
+
4
+ test("export identity distinguishes sibling Tasks and still detects actual duplicates", () => {
5
+ const first = { entity_kind: "task", id: "TASK-A", spec_id: "SPEC-SHARED", prd_id: "PRD-SHARED" };
6
+ const second = { ...first, id: "TASK-B" };
7
+ const identities = [first, second].map(exportRowIdentity);
8
+ expect(new Set(identities).size).toBe(2);
9
+ expect(exportRowIdentity({ ...first })).toBe(identities[0]);
10
+ expect(exportRowIdentity({ ...first, entity_kind: "spec" })).not.toBe(identities[0]);
11
+ });
12
+
13
+ test("cost export keeps its own invocation identity ahead of parent references", () => {
14
+ expect(
15
+ exportRowIdentity({ agent_invocation_id: "AINV-A", task_id: "TASK-A", spec_id: "SPEC-A" }),
16
+ ).toBe("agent_invocation_id:AINV-A");
17
+ expect(exportRowIdentity({ execution_id: "EXEC-A", task_id: "TASK-A" })).toBe(
18
+ "execution_id:EXEC-A",
19
+ );
20
+ });
@@ -0,0 +1,20 @@
1
+ export function exportRowIdentity(row: Record<string, unknown>): string {
2
+ if (typeof row.entity_kind === "string" && typeof row.id === "string" && row.id.length > 0) {
3
+ return `${row.entity_kind}:${row.id}`;
4
+ }
5
+ for (const key of [
6
+ "agent_invocation_id",
7
+ "execution_id",
8
+ "conversation_id",
9
+ "task_id",
10
+ "spec_id",
11
+ "prd_id",
12
+ "period_key",
13
+ "key",
14
+ "id",
15
+ ]) {
16
+ const value = row[key];
17
+ if (typeof value === "string" && value.length > 0) return `${key}:${value}`;
18
+ }
19
+ return JSON.stringify(row);
20
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "3.3.0",
3
+ "version": "3.5.0",
4
4
  "files": [
5
5
  {
6
6
  "path": "DESIGN.md",
@@ -19,72 +19,84 @@
19
19
  "sha256": "746b09b2cc379033c2045afc1575f0456694f110c574f7a6c53fd646106af820"
20
20
  },
21
21
  {
22
- "path": "apps/catalog/dist/assets/index-BEmIE7WE.css",
23
- "sha256": "0dec92315d3d26a016136093c1db4172c38f4a502e4c57eecbb59a7bc03491ce"
22
+ "path": "apps/catalog/dist/assets/index-0W0Gj_Gs.css",
23
+ "sha256": "642cc76853da26c967aefafae6c0ba09a193b57b28f629f4b274c653747cbef9"
24
24
  },
25
25
  {
26
- "path": "apps/catalog/dist/assets/index-BJV597iq.js",
27
- "sha256": "21b800284807d7e24d2cb0158735231a407b4a5320fcdc77e998aa25b11adbac"
26
+ "path": "apps/catalog/dist/assets/index-32GZO95T.js",
27
+ "sha256": "12695d7255f03bf97d35c63efcff5b1ed52319ab36cbeacbf32de815a85cb03a"
28
28
  },
29
29
  {
30
- "path": "apps/catalog/dist/assets/index-BOjCcUaU.js",
31
- "sha256": "6a9b1016f383271faadbfdf1e3ecd7b2f637a1378dcd720fe5b0107db8a8be96"
30
+ "path": "apps/catalog/dist/assets/index-BP8IxOxt.js",
31
+ "sha256": "972731afbaa1a1de2666477d46df0f7af55bfe698cb74bae919bac2718e1fbc8"
32
32
  },
33
33
  {
34
- "path": "apps/catalog/dist/assets/index-B_WhrCZe.js",
35
- "sha256": "e6cb2980664683803b11f825bcfdd26dece46e10645e1dedf3a4b3b1bfc0497e"
34
+ "path": "apps/catalog/dist/assets/index-D1JaPXfV.css",
35
+ "sha256": "0f40951c8f46f8c4c9fbbd70f18a62599c874132d11987dcf8f53371e86f45f7"
36
36
  },
37
37
  {
38
- "path": "apps/catalog/dist/assets/index-CqqYWY2f.js",
39
- "sha256": "8316a3bfa4c0fdf4128c850b5ab0724e54fe1d71c3368a6d31db4ba7172b9006"
38
+ "path": "apps/catalog/dist/assets/index-D2miO4-O.js",
39
+ "sha256": "5f8dfdc456f365253210203870f6a1f21a5f9114d64e7eafac0ffcf360fc185f"
40
40
  },
41
41
  {
42
- "path": "apps/catalog/dist/assets/index-CqtYXZfV.js",
43
- "sha256": "3e33cde89232dfdd2c2168e662c4f19e02c389e1b337a0d52ff5c3a98d543d8a"
42
+ "path": "apps/catalog/dist/assets/index-QJsgr9Ht.js",
43
+ "sha256": "0dd8ae107fc9742dc9da1ddff3e736521dc47729c9f33018c5ff87ef91f7b2bf"
44
44
  },
45
45
  {
46
- "path": "apps/catalog/dist/assets/index-D9pj7Jlf.js",
47
- "sha256": "5d6ff092c238ebc0df8587c753271d5f6561f723c6271b7ef26a855667079fb4"
46
+ "path": "apps/catalog/dist/assets/index-mvD5mwcC.js",
47
+ "sha256": "ade86e3dd2c2844cded955e5664849fb6320d69126ca7efc76bb4f09bc5a424d"
48
48
  },
49
49
  {
50
- "path": "apps/catalog/dist/assets/index-D_lfqoyx.js",
51
- "sha256": "dcc34d6f634d6d743e4d2f274356102883b99b0ec51cab2c4be73fa165f04d07"
50
+ "path": "apps/catalog/dist/index.html",
51
+ "sha256": "8197e028e35d669810c6f34d8532894dd6d4eb05bb895bb69baf2d120314615c"
52
52
  },
53
53
  {
54
- "path": "apps/catalog/dist/assets/index-i_PO2k9R.js",
55
- "sha256": "44394c96e7b5193e08a5f7d726beee39384d4dc64025dbb29e99e5fd8f5acf41"
54
+ "path": "apps/catalog/dist/logo_novo_azul.png",
55
+ "sha256": "bb6043bda9fc53a111aaea4d6a004559b9ce8a3569691c060d217a7c6aafa0ae"
56
56
  },
57
57
  {
58
- "path": "apps/catalog/dist/index.html",
59
- "sha256": "18ff187bda3952dc4a33817417f51b676e7e65b81da7994210ffb532b7cadf4d"
58
+ "path": "apps/catalog/dist/storybook/assets/CatalogShell-BJ8b4xZr.js",
59
+ "sha256": "65acc5bb700b0babcfa6683d056fd37be65a268f6e630a81b482f261237cda63"
60
60
  },
61
61
  {
62
- "path": "apps/catalog/dist/logo_novo_azul.png",
63
- "sha256": "bb6043bda9fc53a111aaea4d6a004559b9ce8a3569691c060d217a7c6aafa0ae"
62
+ "path": "apps/catalog/dist/storybook/assets/Color-6AOWCN3U-CQLHzznn.js",
63
+ "sha256": "d6d2076eedef44f1dcc8077a97797862de911c4f79fecce8749c6015706ab1cd"
64
+ },
65
+ {
66
+ "path": "apps/catalog/dist/storybook/assets/Components.stories-kxWwSKin.js",
67
+ "sha256": "6d5f76ada1a6a471b9ddcf13afcc45f4d4bf77170f5ba87d7549abb9c1953915"
68
+ },
69
+ {
70
+ "path": "apps/catalog/dist/storybook/assets/DashboardFilters.stories-Chm_dXV7.js",
71
+ "sha256": "d1b6cbdc23bc954276cd1f2fe6d848211653aa0b4d3b0562744b6aeb86cea028"
72
+ },
73
+ {
74
+ "path": "apps/catalog/dist/storybook/assets/DashboardFiltersSpecimen-9CaCbGIZ.js",
75
+ "sha256": "7d9a10e6c742b2f8afc53ea952b563ae099581d21edaa729b2e0e933f862e0f3"
64
76
  },
65
77
  {
66
- "path": "apps/catalog/dist/storybook/assets/CatalogShell-Cstn1UwA.js",
67
- "sha256": "8e0579004ab4c0762e8b146027245e25e8a4b08636bf442d3baeb088df165c38"
78
+ "path": "apps/catalog/dist/storybook/assets/DesignSystem.stories-ED52wFjY.js",
79
+ "sha256": "699ca562fd72d0bd0567965c744f30ed9304ab1e1171a87c511c97c9462585ec"
68
80
  },
69
81
  {
70
- "path": "apps/catalog/dist/storybook/assets/Color-6AOWCN3U-Cm-yJJz_.js",
71
- "sha256": "23f476e91f11645780ffe4f087c38984ea0965abde8643d1bdca86557a5709ed"
82
+ "path": "apps/catalog/dist/storybook/assets/DocsRenderer-JROSPFPF-BcLgM80v.js",
83
+ "sha256": "f780449f998ca7c51e9fb766c713d30ed989d898d9fc1fd94af2122b91231791"
72
84
  },
73
85
  {
74
- "path": "apps/catalog/dist/storybook/assets/Components.stories-D1WopB2L.js",
75
- "sha256": "2543b4ee66c023533961b9b2819df1037fd9ad7325161b101d34aad65930336a"
86
+ "path": "apps/catalog/dist/storybook/assets/Primitives-DV6Bpudf.js",
87
+ "sha256": "563810a6fe9a7c8efe9d99fbb976da9419321987532d3e88d817cf8bc3a660a0"
76
88
  },
77
89
  {
78
- "path": "apps/catalog/dist/storybook/assets/DesignSystem.stories-DQ9PJ3N3.js",
79
- "sha256": "9eda01f608291b76264c5be12d7705ceb0f98b3db5d0b233115924616879e54f"
90
+ "path": "apps/catalog/dist/storybook/assets/WithTooltip-7X4HQR7L-BKNiAz_E.js",
91
+ "sha256": "bc23d4e47b090a5fd7c861af0a28f08f6a1601fe730dbaba15cd77d4d5e20efd"
80
92
  },
81
93
  {
82
- "path": "apps/catalog/dist/storybook/assets/DocsRenderer-JROSPFPF-Belk4jRr.js",
83
- "sha256": "8523cd25ceeadf333725b3b3ce040da3085c8f000aab78253be23d005044ef54"
94
+ "path": "apps/catalog/dist/storybook/assets/WorkspaceStatus.stories-BL19HGOo.js",
95
+ "sha256": "580f966539f1b271f7bdf279c55a3ac103e2d87a1853c119dbf8bd678e43da1b"
84
96
  },
85
97
  {
86
- "path": "apps/catalog/dist/storybook/assets/WithTooltip-7X4HQR7L-DoPvjkS1.js",
87
- "sha256": "e8f1f5ba181489d068dbdc3827f2ad5ffee3dc5c0a0b1b5adf879e248d10eda8"
98
+ "path": "apps/catalog/dist/storybook/assets/WorkspaceStatusSpecimen-DQnSS6s9.js",
99
+ "sha256": "853cb96250088c2048a076dafa5bc5d2448380a5078a2e7b2610a6200cb43f6f"
88
100
  },
89
101
  {
90
102
  "path": "apps/catalog/dist/storybook/assets/axe-Bk3eEgJf.js",
@@ -95,32 +107,32 @@
95
107
  "sha256": "99518b5bd7da5186fe889de049274f734939938a15b2a6ff4fd72b09b89ddf3b"
96
108
  },
97
109
  {
98
- "path": "apps/catalog/dist/storybook/assets/chunk-DRQKCCAG-B1itKXEN.js",
99
- "sha256": "27542bdba914092f8cf4689ad4dcbfb685a5ee4f58da5e1c0b9d88fcfd73567e"
110
+ "path": "apps/catalog/dist/storybook/assets/chunk-DRQKCCAG-DZBcXL-p.js",
111
+ "sha256": "a85bda8fbcd38e80591501a72409d62b0ecba005ddc79b74bee1cb21d94330bf"
100
112
  },
101
113
  {
102
114
  "path": "apps/catalog/dist/storybook/assets/chunk-QQBDHPVZ-nYh9QWsm.js",
103
115
  "sha256": "9ffd7aa2b8e7fab1f375c22fdb4b4755ccfc867e7665f99f997792d0f54de00f"
104
116
  },
105
117
  {
106
- "path": "apps/catalog/dist/storybook/assets/chunk-W22LQPXL-C-Eb5SPY.js",
107
- "sha256": "271931e984ef5a8ae88a0656891a09759e35317a03e822feba30b007c9f41ad8"
118
+ "path": "apps/catalog/dist/storybook/assets/chunk-W22LQPXL-CF3y2mfo.js",
119
+ "sha256": "a2811f41a94ca9ee97b44c51c3a0a7456871250e72df6cc2862322afed46daba"
108
120
  },
109
121
  {
110
- "path": "apps/catalog/dist/storybook/assets/components-DnyKLwhj.js",
111
- "sha256": "ac5912a25c27494ad9a29ae1a9bf40e029dcb8e5c791afbdf4c187e334c9219f"
122
+ "path": "apps/catalog/dist/storybook/assets/components-BVjxMRGq.js",
123
+ "sha256": "50f209ad98d5bd0afd1c32f8abd316b5757bf31c30da6ab1e4c2c5d3ea423216"
112
124
  },
113
125
  {
114
- "path": "apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-D0OSgxWz.js",
115
- "sha256": "9d4d56b3d4a0c056061d50222b4decd82678e8e8761b05f59f813482eecbe72e"
126
+ "path": "apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-Do9sjqiW.js",
127
+ "sha256": "8c891d6d52787d182f5cbc578d95d40628fe472d27db01c6ae16e8d42351a313"
116
128
  },
117
129
  {
118
- "path": "apps/catalog/dist/storybook/assets/iframe-BEmIE7WE.css",
119
- "sha256": "0dec92315d3d26a016136093c1db4172c38f4a502e4c57eecbb59a7bc03491ce"
130
+ "path": "apps/catalog/dist/storybook/assets/iframe-0W0Gj_Gs.css",
131
+ "sha256": "642cc76853da26c967aefafae6c0ba09a193b57b28f629f4b274c653747cbef9"
120
132
  },
121
133
  {
122
- "path": "apps/catalog/dist/storybook/assets/iframe-DcXBsFPz.js",
123
- "sha256": "40b5d200ef9399e02ecb80556abf037c22440ec63f6f4cff4bba398728a65be0"
134
+ "path": "apps/catalog/dist/storybook/assets/iframe-CTWGZcEe.js",
135
+ "sha256": "1efc26cd1dea8e50b6193b2ac7036edf5f8dc53eb130884198b6da9b25081cb1"
124
136
  },
125
137
  {
126
138
  "path": "apps/catalog/dist/storybook/assets/jsx-runtime-f3rHp9ZU.js",
@@ -135,20 +147,20 @@
135
147
  "sha256": "d010fa8d2cdceaf3b253755a2361c1bfe3aec58a535addad704b993439203d0a"
136
148
  },
137
149
  {
138
- "path": "apps/catalog/dist/storybook/assets/react-18-CRM89QRf.js",
139
- "sha256": "6649cba74dcb232a0eb2a0dae30fc14e89feb1a2ce058d739eee60f179fc3367"
150
+ "path": "apps/catalog/dist/storybook/assets/react-18-B9_a4mHb.js",
151
+ "sha256": "61713f18ab027286fbe4dae046f4d94142605c9946f1dc170576d85e35d3a362"
140
152
  },
141
153
  {
142
- "path": "apps/catalog/dist/storybook/assets/react-C3tkVMIp.js",
143
- "sha256": "b09a358f062f4384248dbc36ac02f10ccadef817d5f8e99c868f8b4b01186ecc"
154
+ "path": "apps/catalog/dist/storybook/assets/react-NrUxok8K.js",
155
+ "sha256": "edb3db149b56936dc25a733997f764e5f8de9a761b81f2d1420a69611967de5e"
144
156
  },
145
157
  {
146
- "path": "apps/catalog/dist/storybook/assets/syntaxhighlighter-YFXUGROL-B03jQGTF.js",
147
- "sha256": "f11d6edf9a82c4b9cbc17bd1634536693ea6f3d4a6790077304e9d2284653ca7"
158
+ "path": "apps/catalog/dist/storybook/assets/syntaxhighlighter-YFXUGROL-F_p8E2xc.js",
159
+ "sha256": "f51621ea2006137337ede7a069f18efda1a1434649bdfbd90a96021d10bdcd3b"
148
160
  },
149
161
  {
150
- "path": "apps/catalog/dist/storybook/assets/theming-4ZyufAga.js",
151
- "sha256": "f75b8877a9ee69ee36cc4e682409007e67ab9a88b6e10f477fccbbf5b6b34d5e"
162
+ "path": "apps/catalog/dist/storybook/assets/theming-fbSD9ZLF.js",
163
+ "sha256": "d8546bb95fa092a498fbf30371389d55e211d20ec5a7a9eec5cc976c062e7a9c"
152
164
  },
153
165
  {
154
166
  "path": "apps/catalog/dist/storybook/favicon-wrapper.svg",
@@ -160,7 +172,7 @@
160
172
  },
161
173
  {
162
174
  "path": "apps/catalog/dist/storybook/iframe.html",
163
- "sha256": "fee23dc8cd65234edfceab7fbb0eae7f4fd37b1835a1238c91dfaed9247928b9"
175
+ "sha256": "728452b3a32c71bc17641cddb7833d26fbc9fac354cdc107bbfca1e89aa1a3a8"
164
176
  },
165
177
  {
166
178
  "path": "apps/catalog/dist/storybook/index.html",
@@ -168,7 +180,7 @@
168
180
  },
169
181
  {
170
182
  "path": "apps/catalog/dist/storybook/index.json",
171
- "sha256": "1055b3e9b85dbeb01c13d59621863c0ca990e7356648258cb17ff9be91d821a3"
183
+ "sha256": "0ab250ea19497115c9a75f2c129c17e4d45375a136f15c60ae81d99c2d5b04b0"
172
184
  },
173
185
  {
174
186
  "path": "apps/catalog/dist/storybook/logo_novo_azul.png",
@@ -192,7 +204,7 @@
192
204
  },
193
205
  {
194
206
  "path": "apps/catalog/dist/storybook/sb-addons/a11y-2/manager-bundle.js",
195
- "sha256": "65b16db0224448742664a62f0d2096bee81867b62b2b3c20e6f72e6ae9542c47"
207
+ "sha256": "b4280b4e02fb6f45a684e2a795ca5eebc0c624e01c4331e032dff5a598f88400"
196
208
  },
197
209
  {
198
210
  "path": "apps/catalog/dist/storybook/sb-addons/docs-1/manager-bundle.js",
@@ -200,7 +212,7 @@
200
212
  },
201
213
  {
202
214
  "path": "apps/catalog/dist/storybook/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js",
203
- "sha256": "6fb789ee0c7879b1402a45d2cf943d6832b3d958327c246acf975c191a7f8237"
215
+ "sha256": "ba430ac651d680b6884acaaac38f66967984811d61f9d7ddc5c7bcdb4af97113"
204
216
  },
205
217
  {
206
218
  "path": "apps/catalog/dist/storybook/sb-common-assets/favicon-wrapper.svg",
@@ -252,7 +264,7 @@
252
264
  },
253
265
  {
254
266
  "path": "apps/catalog/package.json",
255
- "sha256": "a5f6cdd1f87cd6476ddfee45685be8daa2769ac1275ae201a725aac53f11739c"
267
+ "sha256": "8763a2ee38e7e07bb7eca42d9fa08551b53a73ab98e10975dca4d7ea7c85bda0"
256
268
  },
257
269
  {
258
270
  "path": "apps/catalog/public/logo_novo_azul.png",
@@ -278,18 +290,30 @@
278
290
  "path": "apps/catalog/src/components/CostPopulationSpecimen.tsx",
279
291
  "sha256": "d92bc8d55660b020db6ba9d47037a782fbbeba9b76febf7869718064d1928170"
280
292
  },
293
+ {
294
+ "path": "apps/catalog/src/components/DashboardFiltersSpecimen.tsx",
295
+ "sha256": "c0dfa12f1ad8017226b7b012beb6fe65a2b968316e1dad3a79487759a83fe1e2"
296
+ },
281
297
  {
282
298
  "path": "apps/catalog/src/components/EstimatedCostSpecimen.tsx",
283
299
  "sha256": "9350423a97fec486c54eeadd1f74bbdb066ef830cc8b980385c389c1f001feda"
284
300
  },
285
301
  {
286
302
  "path": "apps/catalog/src/components/Primitives.tsx",
287
- "sha256": "68d65caaa90818b7e942db30cd2fd6f68912e63b974c940ce694b93fa1bdc5ce"
303
+ "sha256": "e62f6f8f064deb4c13b8c4744aa6b644b99b54243c040eda8b94ce8d3745449b"
288
304
  },
289
305
  {
290
306
  "path": "apps/catalog/src/components/ProjectStatusSpecimen.tsx",
291
307
  "sha256": "3ff413dad7e8e9e127c8c2cfebe685afcfe0e7840742960c1d9408cadaf3f092"
292
308
  },
309
+ {
310
+ "path": "apps/catalog/src/components/StackVersionFieldSpecimen.tsx",
311
+ "sha256": "433b11299f84c9ebd0f84ec9030a896d078db0bb9ca0242707c513cd9a6bbbc1"
312
+ },
313
+ {
314
+ "path": "apps/catalog/src/components/WorkspaceStatusSpecimen.tsx",
315
+ "sha256": "6275e010e85452df87079176f79f30e6778ab72d1c463541bf19ac5ec72efb76"
316
+ },
293
317
  {
294
318
  "path": "apps/catalog/src/components/dialog-focus.test.ts",
295
319
  "sha256": "b62a5209b8554a4500ff241fb3d0cb67bff4ff751b8eddbda2dfd17dd9b6beed"
@@ -300,7 +324,7 @@
300
324
  },
301
325
  {
302
326
  "path": "apps/catalog/src/design-contract.test.ts",
303
- "sha256": "e1854f467f0f98c418daf44a723e0d095df2af2917f51858c67afef708ad776e"
327
+ "sha256": "8688d9a03d9c10796a48eb9c4abed3bba2afb76f7d9caf55c929834a816a699a"
304
328
  },
305
329
  {
306
330
  "path": "apps/catalog/src/main.tsx",
@@ -308,23 +332,31 @@
308
332
  },
309
333
  {
310
334
  "path": "apps/catalog/src/pages/ComponentsPage.tsx",
311
- "sha256": "7d2173517ecb0469bc197aeef93e6d9fb79bc0c0eaaca9ed1ffe1481c0310664"
335
+ "sha256": "71174f027831a1056684d910d16cb4869011eda0a193791d5937694993ece575"
312
336
  },
313
337
  {
314
338
  "path": "apps/catalog/src/pages/DesignSystemPage.tsx",
315
- "sha256": "e2eb9e6300c362ab662b60da38ff5fbdc5f0e32d5caea5d3ceb007a22bb5bd8e"
339
+ "sha256": "f4d073c82508728d65488f2dcd0cd56e8fbaef6b17ca4ba0ce9dbd3c2fcf547e"
316
340
  },
317
341
  {
318
342
  "path": "apps/catalog/src/stories/Components.stories.tsx",
319
- "sha256": "b8c891b3473f710bd45aea316a76639f6ac49e5f5f2e0c7e823f3e8d8b4eb495"
343
+ "sha256": "bc3044d7c0826656dd49d81f4128a8c2a5c271192f31ec7428445923676af832"
344
+ },
345
+ {
346
+ "path": "apps/catalog/src/stories/DashboardFilters.stories.tsx",
347
+ "sha256": "6c5074199139279c905b15944f31efc8322cda0411e175a2bec25d34f54694bd"
320
348
  },
321
349
  {
322
350
  "path": "apps/catalog/src/stories/DesignSystem.stories.tsx",
323
351
  "sha256": "7a749e9fb516818fa476f9f829e46713bb14b26bbbcc4028dc5a9e0f56988ab9"
324
352
  },
353
+ {
354
+ "path": "apps/catalog/src/stories/WorkspaceStatus.stories.tsx",
355
+ "sha256": "2759eaafef032ea770c3c2512d01c37a09769f4c6eb673c9cc3528f34e73bf33"
356
+ },
325
357
  {
326
358
  "path": "apps/catalog/src/styles.css",
327
- "sha256": "f12773e60a483a7b94700fafa3e3131372e461dffb6cb24e89a12e6eeac5d690"
359
+ "sha256": "5c45893bb9118a0539c5f732a044eeaf0854c9517ada3fdc4b5b939a68d74518"
328
360
  },
329
361
  {
330
362
  "path": "apps/catalog/src/styles/catalog.css",
@@ -332,12 +364,16 @@
332
364
  },
333
365
  {
334
366
  "path": "apps/catalog/src/styles/components.css",
335
- "sha256": "22eb844316688dfb0b937a007917eb2fb4b35a7032a21c0b1db3082a95995b78"
367
+ "sha256": "e6be32e817b55f553a823273c7211a58a98b6a7836801af6c7980021f3ccb626"
336
368
  },
337
369
  {
338
370
  "path": "apps/catalog/src/styles/design-system.css",
339
371
  "sha256": "0c2d8182cfc69af6f0bc3af33ede1134026f1a63ed5956822f72d842d4163d07"
340
372
  },
373
+ {
374
+ "path": "apps/catalog/src/styles/stack-version-field.css",
375
+ "sha256": "c11be815df1506745e2ae9a6e20734e28c06a4b0bbcaff0fedb24fe2140a9940"
376
+ },
341
377
  {
342
378
  "path": "apps/catalog/tsconfig.json",
343
379
  "sha256": "b58bb116b1e0b6c6b4440b1a27d0375503bfe5b5cba33668fb758ff77d84707f"
@@ -352,7 +388,7 @@
352
388
  },
353
389
  {
354
390
  "path": "packages/local-runtime/package.json",
355
- "sha256": "7afa7584db17c5e4e7584da707b0d7cbb38affa1940a1d989ee4d267df80d33d"
391
+ "sha256": "a8e7d95af78d7ea7515701c025ad824554083d7fb59b962090d2f83ae8d28f42"
356
392
  },
357
393
  {
358
394
  "path": "packages/local-runtime/runtime.mjs",
@@ -376,7 +412,7 @@
376
412
  },
377
413
  {
378
414
  "path": "tokens.json",
379
- "sha256": "215b210cda19928b9749dcce38f539fb2ad876653d6753432dd168303291ecaa"
415
+ "sha256": "34a499880b0ac16e51a63a819a7895b14fcda891c7ddbb58063367964d73a2c9"
380
416
  },
381
417
  {
382
418
  "path": "zaip-design.exe",