@zaip-ai/cli 3.3.0 → 3.4.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 (263) 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 +260 -116
  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-BpsAFy0g.js → ProjectSettingsPage-DVCPPV75.js} +1 -1
  29. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-BzVtGLWS.js → TraceabilityWorkspace-CqK3Psfy.js} +1 -1
  30. package/templates/.agents/dashboard/apps/frontend/dist/assets/{cost-monitor-PoJA2PI1.css → cost-monitor-BsMfGfQi.css} +1 -1
  31. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-j3aUYH5G.js +68 -0
  32. package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-CWzf_RiP.js → icons-vendor-x8xxL9yW.js} +1 -1
  33. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-Cl5EWx8R.js +2 -0
  34. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-Cwylbh_N.css +1 -0
  35. package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-CtHdbZk3.js → react-vendor-CNOXIJHN.js} +1 -1
  36. package/templates/.agents/dashboard/apps/frontend/dist/assets/{traceability-BKrDH2TR.js → traceability-CcpbpT1s.js} +1 -1
  37. package/templates/.agents/dashboard/apps/frontend/dist/index.html +7 -7
  38. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  39. package/templates/.agents/dashboard/apps/frontend/src/App.tsx +12 -1
  40. package/templates/.agents/dashboard/apps/frontend/src/WorkspaceStatus.test.tsx +33 -0
  41. package/templates/.agents/dashboard/apps/frontend/src/WorkspaceStatus.tsx +58 -0
  42. package/templates/.agents/dashboard/apps/frontend/src/app-work-board-options.ts +41 -0
  43. package/templates/.agents/dashboard/apps/frontend/src/dashboard-runtime-status.ts +25 -0
  44. package/templates/.agents/dashboard/apps/frontend/src/snapshot-coherence.test.ts +1 -1
  45. package/templates/.agents/dashboard/apps/frontend/src/use-app-cost-loaders.ts +5 -1
  46. package/templates/.agents/dashboard/apps/frontend/src/use-app-work-board.test.ts +140 -0
  47. package/templates/.agents/dashboard/apps/frontend/src/use-app-work-board.ts +28 -41
  48. package/templates/.agents/dashboard/apps/frontend/src/use-runtime-status.ts +38 -0
  49. package/templates/.agents/dashboard/apps/frontend/src/workspace-status.css +33 -0
  50. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  51. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CompactLifecycleCostTable.test.ts +25 -3
  52. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CompactLifecycleCostTable.tsx +17 -19
  53. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostFilters.tsx +13 -167
  54. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostGroupsTable.tsx +2 -9
  55. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.test.ts +8 -8
  56. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.tsx +29 -52
  57. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTableLoading.test.ts +1 -1
  58. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables-keeps-legacy-codex-identity-fields-blank.test.ts +2 -2
  59. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.test.ts +4 -27
  60. package/templates/.agents/dashboard/modules/cost-monitor/src/react/MacroCostTable.test.ts +2 -2
  61. package/templates/.agents/dashboard/modules/cost-monitor/src/react/MacroCostTable.tsx +4 -3
  62. package/templates/.agents/dashboard/modules/cost-monitor/src/react/agent-model-presentation.test.ts +26 -0
  63. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-embedded.css +7 -0
  64. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-loaders.ts +173 -0
  65. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-page-props.ts +47 -0
  66. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-page-selectors.ts +1 -7
  67. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-page-range.ts +3 -9
  68. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-monitor-projection.test.ts +44 -83
  69. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-monitor-projection.ts +11 -111
  70. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-summary-projection.test.ts +47 -181
  71. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-summary-projection.ts +63 -91
  72. package/templates/.agents/dashboard/modules/cost-monitor/src/server/cost-monitor-unavailable.test.ts +55 -0
  73. package/templates/.agents/dashboard/modules/cost-monitor/src/server/cost-summary-duration.test.ts +189 -0
  74. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  75. package/templates/.agents/dashboard/modules/operations/src/react/OperationsEntityFilters.tsx +82 -0
  76. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPage.tsx +22 -31
  77. package/templates/.agents/dashboard/modules/operations/src/react/PagedWorkList.test.tsx +13 -1
  78. package/templates/.agents/dashboard/modules/operations/src/react/PagedWorkList.tsx +16 -3
  79. package/templates/.agents/dashboard/modules/operations/src/react/export/ExcelExportAction.test.ts +11 -27
  80. package/templates/.agents/dashboard/modules/operations/src/react/export/ExcelExportAction.tsx +44 -193
  81. package/templates/.agents/dashboard/modules/operations/src/react/export/ExcelExportColumns.ts +186 -0
  82. package/templates/.agents/dashboard/modules/operations/src/react/export/excel-agent-participations.test.ts +28 -0
  83. package/templates/.agents/dashboard/modules/operations/src/react/export/export-layout.test.ts +2 -1
  84. package/templates/.agents/dashboard/modules/operations/src/react/operations-export-duration.ts +13 -0
  85. package/templates/.agents/dashboard/modules/operations/src/react/operations-filter-panel.css +4 -0
  86. package/templates/.agents/dashboard/modules/operations/src/react/use-operation-filter-feedback.ts +18 -0
  87. package/templates/.agents/dashboard/modules/operations/src/react/work-board-model.test.ts +11 -0
  88. package/templates/.agents/dashboard/modules/operations/src/react/work-board-model.ts +10 -2
  89. package/templates/.agents/dashboard/modules/operations/src/work-board-model.ts +1 -1
  90. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  91. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  92. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  93. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  94. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +395 -341
  95. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +346 -294
  96. package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
  97. package/templates/.agents/dashboard/packages/local-runtime/scripts/rebuild-sqlite-read-model.mjs +2 -1
  98. package/templates/.agents/dashboard/packages/local-runtime/scripts/validate-sqlite-read-model.mjs +4 -2
  99. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +395 -341
  100. package/templates/.agents/dashboard/packages/local-runtime/src/active-codex-telemetry.test.ts +95 -0
  101. package/templates/.agents/dashboard/packages/local-runtime/src/active-codex-telemetry.ts +102 -12
  102. package/templates/.agents/dashboard/packages/local-runtime/src/server-board.test.ts +75 -1
  103. package/templates/.agents/dashboard/packages/local-runtime/src/server-costs-routes.ts +10 -0
  104. package/templates/.agents/dashboard/packages/local-runtime/src/server-lifecycle-diagnostics.ts +50 -0
  105. package/templates/.agents/dashboard/packages/local-runtime/src/server-macro-population.test.ts +165 -0
  106. package/templates/.agents/dashboard/packages/local-runtime/src/server-operations-page-filters.ts +65 -0
  107. package/templates/.agents/dashboard/packages/local-runtime/src/server-operations-pages.test.ts +111 -0
  108. package/templates/.agents/dashboard/packages/local-runtime/src/server-operations-pages.ts +53 -63
  109. package/templates/.agents/dashboard/packages/local-runtime/src/server-operations-runs-route.ts +19 -5
  110. package/templates/.agents/dashboard/packages/local-runtime/src/server-period-macro-metric.ts +11 -2
  111. package/templates/.agents/dashboard/packages/local-runtime/src/server-read-projections.ts +16 -9
  112. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-refresh.test.ts +46 -2
  113. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.test.ts +10 -2
  114. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.ts +4 -3
  115. package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +43 -1
  116. package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +46 -11
  117. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-filter-matrix.test.ts +188 -0
  118. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-summary-details.test.ts +85 -0
  119. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-summary-details.ts +147 -0
  120. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-cache.ts +64 -54
  121. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-macro-classification.test.ts +172 -0
  122. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-projections.ts +1 -1
  123. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-projection.ts +2 -1
  124. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.test.ts +7 -7
  125. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.ts +2 -1
  126. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-period-averages.ts +10 -1
  127. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-agent-dimension.ts +18 -82
  128. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-cached-cost-page.ts +169 -0
  129. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-developer.ts +205 -0
  130. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-entity-group.ts +13 -4
  131. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-filtered-dimension.ts +22 -23
  132. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-financial.ts +42 -209
  133. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-model-dimension.ts +18 -4
  134. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-provider-dimension.ts +9 -2
  135. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-summary.ts +76 -83
  136. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-view-page.ts +25 -161
  137. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-canonical.ts +18 -45
  138. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-counts-every-root-execution-day-returns.test.ts +2 -2
  139. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-filesystem.ts +16 -16
  140. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-multi-provider.test.ts +1 -1
  141. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-rebuild.ts +47 -22
  142. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-schema.ts +3 -2
  143. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +11 -0
  144. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-rebuild-result.ts +15 -0
  145. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-base-views.ts +4 -4
  146. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-dashboard-views.ts +15 -56
  147. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-macro-classification.ts +48 -0
  148. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-summary-cursor.ts +15 -0
  149. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-token-active-allocation.ts +46 -0
  150. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-work-stages.ts +60 -0
  151. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-history.mjs +5 -1
  152. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-launch-claims.test.mjs +7 -1
  153. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-launch-page.mjs +17 -2
  154. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-ownership.mjs +65 -0
  155. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-ownership.test.mjs +72 -0
  156. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-processes.mjs +32 -9
  157. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.mjs +39 -45
  158. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.test.mjs +5 -2
  159. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  160. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  161. package/templates/.agents/dashboard/tests/e2e/specs/dashboard-performance-matrix.spec.ts +1 -18
  162. package/templates/.agents/dashboard/tests/e2e/specs/export-row-identity.spec.ts +20 -0
  163. package/templates/.agents/dashboard/tests/e2e/specs/export-row-identity.ts +20 -0
  164. package/templates/.agents/design/.zaip-managed.json +82 -74
  165. package/templates/.agents/design/apps/catalog/dist/assets/index-0W0Gj_Gs.css +1 -0
  166. package/templates/.agents/design/apps/catalog/dist/assets/index-32GZO95T.js +72 -0
  167. package/templates/.agents/design/apps/catalog/dist/assets/{index-D_lfqoyx.js → index-BP8IxOxt.js} +3 -3
  168. package/templates/.agents/design/apps/catalog/dist/assets/{index-BOjCcUaU.js → index-QJsgr9Ht.js} +3 -3
  169. package/templates/.agents/design/apps/catalog/dist/index.html +2 -2
  170. package/templates/.agents/design/apps/catalog/dist/storybook/assets/CatalogShell-CvaciY0C.js +1 -0
  171. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{Color-6AOWCN3U-Cm-yJJz_.js → Color-6AOWCN3U-DwBV1A1Y.js} +1 -1
  172. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Components.stories-3dqK5g3e.js +142 -0
  173. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DesignSystem.stories-2OCgtT0I.js +1 -0
  174. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{DocsRenderer-JROSPFPF-Belk4jRr.js → DocsRenderer-JROSPFPF-CODg0rSl.js} +4 -4
  175. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Primitives-BmeKjJW4.js +1 -0
  176. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{WithTooltip-7X4HQR7L-DoPvjkS1.js → WithTooltip-7X4HQR7L-C5MI-3uZ.js} +1 -1
  177. package/templates/.agents/design/apps/catalog/dist/storybook/assets/WorkspaceStatus.stories-Tb_iQqVK.js +17 -0
  178. package/templates/.agents/design/apps/catalog/dist/storybook/assets/WorkspaceStatusSpecimen-CD54pw0-.js +1 -0
  179. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{chunk-DRQKCCAG-B1itKXEN.js → chunk-DRQKCCAG-KSn75jcy.js} +1 -1
  180. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{chunk-W22LQPXL-C-Eb5SPY.js → chunk-W22LQPXL-C4LS1Thf.js} +1 -1
  181. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{components-DnyKLwhj.js → components-DV1BRgMY.js} +5 -5
  182. package/templates/.agents/design/apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-BU_68im1.js +1 -0
  183. package/templates/.agents/design/apps/catalog/dist/storybook/assets/iframe-0W0Gj_Gs.css +1 -0
  184. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{iframe-DcXBsFPz.js → iframe-CBbPFx5G.js} +4 -4
  185. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{react-18-CRM89QRf.js → react-18-C9IPGXtb.js} +1 -1
  186. package/templates/.agents/design/apps/catalog/dist/storybook/assets/react-CEv2qkJT.js +1 -0
  187. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{syntaxhighlighter-YFXUGROL-B03jQGTF.js → syntaxhighlighter-YFXUGROL-ZgDQjyWI.js} +1 -1
  188. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{theming-4ZyufAga.js → theming-Cx9-gH6l.js} +1 -1
  189. package/templates/.agents/design/apps/catalog/dist/storybook/iframe.html +2 -2
  190. package/templates/.agents/design/apps/catalog/dist/storybook/index.json +1 -1
  191. package/templates/.agents/design/apps/catalog/dist/storybook/sb-addons/a11y-2/manager-bundle.js +3 -3
  192. package/templates/.agents/design/apps/catalog/dist/storybook/sb-addons/docs-1/manager-bundle.js +4 -4
  193. package/templates/.agents/design/apps/catalog/dist/storybook/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +60 -60
  194. package/templates/.agents/design/apps/catalog/package.json +1 -1
  195. package/templates/.agents/design/apps/catalog/src/components/DashboardFiltersSpecimen.tsx +61 -0
  196. package/templates/.agents/design/apps/catalog/src/components/Primitives.tsx +24 -0
  197. package/templates/.agents/design/apps/catalog/src/components/WorkspaceStatusSpecimen.tsx +26 -0
  198. package/templates/.agents/design/apps/catalog/src/design-contract.test.ts +27 -13
  199. package/templates/.agents/design/apps/catalog/src/pages/ComponentsPage.tsx +38 -0
  200. package/templates/.agents/design/apps/catalog/src/pages/DesignSystemPage.tsx +15 -1
  201. package/templates/.agents/design/apps/catalog/src/stories/Components.stories.tsx +18 -0
  202. package/templates/.agents/design/apps/catalog/src/stories/DashboardFilters.stories.tsx +7 -0
  203. package/templates/.agents/design/apps/catalog/src/stories/WorkspaceStatus.stories.tsx +9 -0
  204. package/templates/.agents/design/apps/catalog/src/styles/components.css +83 -2
  205. package/templates/.agents/design/apps/catalog/src/styles.css +2 -0
  206. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  207. package/templates/.agents/design/tokens.json +32 -0
  208. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  209. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  210. package/templates/.agents/requirements/comparative-audit.md +1 -1
  211. package/templates/.agents/requirements/context-engine.md +1 -1
  212. package/templates/.agents/requirements/cost-observability.md +1 -1
  213. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  214. package/templates/.agents/requirements/data-export.md +1 -1
  215. package/templates/.agents/requirements/design-system.md +1 -1
  216. package/templates/.agents/requirements/execution-engine.md +1 -1
  217. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  218. package/templates/.agents/requirements/model-orchestration.md +1 -1
  219. package/templates/.agents/requirements/public-distribution.md +9 -3
  220. package/templates/.agents/requirements/software-architecture.md +1 -1
  221. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  222. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  223. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  224. package/templates/.agents/rules/autonomy-decision.md +1 -0
  225. package/templates/.agents/rules/workflow.md +1 -1
  226. package/templates/.agents/runtime/VERSION +1 -1
  227. package/templates/.agents/runtime/bin/zaip.mjs +25 -24
  228. package/templates/.agents/runtime/checksums.sha256 +5 -5
  229. package/templates/.agents/runtime/manifest.json +1 -1
  230. package/templates/.agents/runtime/provenance.json +4 -4
  231. package/templates/.agents/runtime/sbom.cdx.json +1 -1
  232. package/templates/.agents/skills/zaip-skill-execution/SKILL.md +13 -0
  233. package/templates/.agents/skills/zaip-skill-execution/references/autonomous-continuation.md +17 -0
  234. package/templates/.agents/skills/zaip-skill-execution/references/correction-cycle.md +2 -2
  235. package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +4 -2
  236. package/templates/.agents/skills/zaip-skill-github-deploy/references/deployment-workflow.md +4 -2
  237. package/templates/.agents/skills/zaip-skill-github-deploy/references/release-identity.md +2 -2
  238. package/templates/.agents/skills/zaip-skill-move-prd/SKILL.md +4 -0
  239. package/templates/.agents/skills/zaip-skill-move-spec/SKILL.md +4 -0
  240. package/templates/.agents/skills/zaip-skill-prd/SKILL.md +3 -3
  241. package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +11 -8
  242. package/templates/.agents/skills/zaip-skill-release-qualification/references/local-preparation.md +13 -12
  243. package/templates/.agents/skills/zaip-skill-setup/SKILL.md +17 -2
  244. package/templates/.agents/skills/zaip-skill-setup/agents/openai.yaml +1 -1
  245. package/templates/.agents/skills/zaip-skill-spec/SKILL.md +2 -2
  246. package/templates/.agents/zaip-aios/VERSION +1 -1
  247. package/templates/template-manifest.json +392 -236
  248. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor--iPcnZdx.js +0 -68
  249. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-Cmlx8OYH.css +0 -1
  250. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-DfdlGa7c.js +0 -2
  251. package/templates/.agents/design/apps/catalog/dist/assets/index-BEmIE7WE.css +0 -1
  252. package/templates/.agents/design/apps/catalog/dist/assets/index-BJV597iq.js +0 -72
  253. package/templates/.agents/design/apps/catalog/dist/assets/index-B_WhrCZe.js +0 -72
  254. package/templates/.agents/design/apps/catalog/dist/assets/index-CqqYWY2f.js +0 -9
  255. package/templates/.agents/design/apps/catalog/dist/assets/index-CqtYXZfV.js +0 -72
  256. package/templates/.agents/design/apps/catalog/dist/assets/index-D9pj7Jlf.js +0 -9
  257. package/templates/.agents/design/apps/catalog/dist/assets/index-i_PO2k9R.js +0 -9
  258. package/templates/.agents/design/apps/catalog/dist/storybook/assets/CatalogShell-Cstn1UwA.js +0 -1
  259. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Components.stories-D1WopB2L.js +0 -137
  260. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DesignSystem.stories-DQ9PJ3N3.js +0 -1
  261. package/templates/.agents/design/apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-D0OSgxWz.js +0 -1
  262. package/templates/.agents/design/apps/catalog/dist/storybook/assets/iframe-BEmIE7WE.css +0 -1
  263. 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.4.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.4.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.4.0",
4
4
  "files": [
5
5
  {
6
6
  "path": "DESIGN.md",
@@ -19,72 +19,64 @@
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-QJsgr9Ht.js",
35
+ "sha256": "0dd8ae107fc9742dc9da1ddff3e736521dc47729c9f33018c5ff87ef91f7b2bf"
36
36
  },
37
37
  {
38
- "path": "apps/catalog/dist/assets/index-CqqYWY2f.js",
39
- "sha256": "8316a3bfa4c0fdf4128c850b5ab0724e54fe1d71c3368a6d31db4ba7172b9006"
40
- },
41
- {
42
- "path": "apps/catalog/dist/assets/index-CqtYXZfV.js",
43
- "sha256": "3e33cde89232dfdd2c2168e662c4f19e02c389e1b337a0d52ff5c3a98d543d8a"
44
- },
45
- {
46
- "path": "apps/catalog/dist/assets/index-D9pj7Jlf.js",
47
- "sha256": "5d6ff092c238ebc0df8587c753271d5f6561f723c6271b7ef26a855667079fb4"
38
+ "path": "apps/catalog/dist/index.html",
39
+ "sha256": "c33cb3706e2c4beae7c1adeb8f38953c241b5607b96484b9c1129db10ec01b5a"
48
40
  },
49
41
  {
50
- "path": "apps/catalog/dist/assets/index-D_lfqoyx.js",
51
- "sha256": "dcc34d6f634d6d743e4d2f274356102883b99b0ec51cab2c4be73fa165f04d07"
42
+ "path": "apps/catalog/dist/logo_novo_azul.png",
43
+ "sha256": "bb6043bda9fc53a111aaea4d6a004559b9ce8a3569691c060d217a7c6aafa0ae"
52
44
  },
53
45
  {
54
- "path": "apps/catalog/dist/assets/index-i_PO2k9R.js",
55
- "sha256": "44394c96e7b5193e08a5f7d726beee39384d4dc64025dbb29e99e5fd8f5acf41"
46
+ "path": "apps/catalog/dist/storybook/assets/CatalogShell-CvaciY0C.js",
47
+ "sha256": "42fd1af692297d2cded2ffbef0cd48c71b52ad7ad48b80b8b02943cafb463215"
56
48
  },
57
49
  {
58
- "path": "apps/catalog/dist/index.html",
59
- "sha256": "18ff187bda3952dc4a33817417f51b676e7e65b81da7994210ffb532b7cadf4d"
50
+ "path": "apps/catalog/dist/storybook/assets/Color-6AOWCN3U-DwBV1A1Y.js",
51
+ "sha256": "c181eb01f1e51a25bbc4d9b8b907c21cba824cda3f8e2e15596bd1c053a6cf37"
60
52
  },
61
53
  {
62
- "path": "apps/catalog/dist/logo_novo_azul.png",
63
- "sha256": "bb6043bda9fc53a111aaea4d6a004559b9ce8a3569691c060d217a7c6aafa0ae"
54
+ "path": "apps/catalog/dist/storybook/assets/Components.stories-3dqK5g3e.js",
55
+ "sha256": "2dd06b81cf6fd933734d334ce941bb16bb0bb5bc4698fc73f335ed7cbd937c1f"
64
56
  },
65
57
  {
66
- "path": "apps/catalog/dist/storybook/assets/CatalogShell-Cstn1UwA.js",
67
- "sha256": "8e0579004ab4c0762e8b146027245e25e8a4b08636bf442d3baeb088df165c38"
58
+ "path": "apps/catalog/dist/storybook/assets/DesignSystem.stories-2OCgtT0I.js",
59
+ "sha256": "8366b7460c7b539b6e65a6c5c2508ae57f1f33f65fd514cf59fa80fd86d0f297"
68
60
  },
69
61
  {
70
- "path": "apps/catalog/dist/storybook/assets/Color-6AOWCN3U-Cm-yJJz_.js",
71
- "sha256": "23f476e91f11645780ffe4f087c38984ea0965abde8643d1bdca86557a5709ed"
62
+ "path": "apps/catalog/dist/storybook/assets/DocsRenderer-JROSPFPF-CODg0rSl.js",
63
+ "sha256": "7b65fa404b6fd5c47d10c015cb01af0057744480339e5448b58d2763512370b0"
72
64
  },
73
65
  {
74
- "path": "apps/catalog/dist/storybook/assets/Components.stories-D1WopB2L.js",
75
- "sha256": "2543b4ee66c023533961b9b2819df1037fd9ad7325161b101d34aad65930336a"
66
+ "path": "apps/catalog/dist/storybook/assets/Primitives-BmeKjJW4.js",
67
+ "sha256": "2e7f6d5e571b8064dc083175a14956faa4283ef05329812edca96012328e94b8"
76
68
  },
77
69
  {
78
- "path": "apps/catalog/dist/storybook/assets/DesignSystem.stories-DQ9PJ3N3.js",
79
- "sha256": "9eda01f608291b76264c5be12d7705ceb0f98b3db5d0b233115924616879e54f"
70
+ "path": "apps/catalog/dist/storybook/assets/WithTooltip-7X4HQR7L-C5MI-3uZ.js",
71
+ "sha256": "479d76b8da59623d05192421cf7e35c3d1c70048b2a5af0e5861e8e4b0704064"
80
72
  },
81
73
  {
82
- "path": "apps/catalog/dist/storybook/assets/DocsRenderer-JROSPFPF-Belk4jRr.js",
83
- "sha256": "8523cd25ceeadf333725b3b3ce040da3085c8f000aab78253be23d005044ef54"
74
+ "path": "apps/catalog/dist/storybook/assets/WorkspaceStatus.stories-Tb_iQqVK.js",
75
+ "sha256": "226f7ed7b3a451b95aa83823fb865171474a0ac8f002fcb457ae24f8b149ba21"
84
76
  },
85
77
  {
86
- "path": "apps/catalog/dist/storybook/assets/WithTooltip-7X4HQR7L-DoPvjkS1.js",
87
- "sha256": "e8f1f5ba181489d068dbdc3827f2ad5ffee3dc5c0a0b1b5adf879e248d10eda8"
78
+ "path": "apps/catalog/dist/storybook/assets/WorkspaceStatusSpecimen-CD54pw0-.js",
79
+ "sha256": "5ff79665250b1d1a374f772fd5e17216fba1de8e5e469e22116cb0ab6264016d"
88
80
  },
89
81
  {
90
82
  "path": "apps/catalog/dist/storybook/assets/axe-Bk3eEgJf.js",
@@ -95,32 +87,32 @@
95
87
  "sha256": "99518b5bd7da5186fe889de049274f734939938a15b2a6ff4fd72b09b89ddf3b"
96
88
  },
97
89
  {
98
- "path": "apps/catalog/dist/storybook/assets/chunk-DRQKCCAG-B1itKXEN.js",
99
- "sha256": "27542bdba914092f8cf4689ad4dcbfb685a5ee4f58da5e1c0b9d88fcfd73567e"
90
+ "path": "apps/catalog/dist/storybook/assets/chunk-DRQKCCAG-KSn75jcy.js",
91
+ "sha256": "1ddf56aff6afec49604a167d5c7367d1d82ac6fabd608d61dcb714958602f983"
100
92
  },
101
93
  {
102
94
  "path": "apps/catalog/dist/storybook/assets/chunk-QQBDHPVZ-nYh9QWsm.js",
103
95
  "sha256": "9ffd7aa2b8e7fab1f375c22fdb4b4755ccfc867e7665f99f997792d0f54de00f"
104
96
  },
105
97
  {
106
- "path": "apps/catalog/dist/storybook/assets/chunk-W22LQPXL-C-Eb5SPY.js",
107
- "sha256": "271931e984ef5a8ae88a0656891a09759e35317a03e822feba30b007c9f41ad8"
98
+ "path": "apps/catalog/dist/storybook/assets/chunk-W22LQPXL-C4LS1Thf.js",
99
+ "sha256": "1c4aa529308403adee40d3a62596018ed96acb25da2cd089f0e7d98dc2e64912"
108
100
  },
109
101
  {
110
- "path": "apps/catalog/dist/storybook/assets/components-DnyKLwhj.js",
111
- "sha256": "ac5912a25c27494ad9a29ae1a9bf40e029dcb8e5c791afbdf4c187e334c9219f"
102
+ "path": "apps/catalog/dist/storybook/assets/components-DV1BRgMY.js",
103
+ "sha256": "04a560a2018ae67cd6a54314b4475f9bff409fcddeca0918f0bdb18f8bee2fcb"
112
104
  },
113
105
  {
114
- "path": "apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-D0OSgxWz.js",
115
- "sha256": "9d4d56b3d4a0c056061d50222b4decd82678e8e8761b05f59f813482eecbe72e"
106
+ "path": "apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-BU_68im1.js",
107
+ "sha256": "05dabb3761a9ea84bc74b45fdfc85bb49ff5421f9875455b2ab7f66a8dbc4971"
116
108
  },
117
109
  {
118
- "path": "apps/catalog/dist/storybook/assets/iframe-BEmIE7WE.css",
119
- "sha256": "0dec92315d3d26a016136093c1db4172c38f4a502e4c57eecbb59a7bc03491ce"
110
+ "path": "apps/catalog/dist/storybook/assets/iframe-0W0Gj_Gs.css",
111
+ "sha256": "642cc76853da26c967aefafae6c0ba09a193b57b28f629f4b274c653747cbef9"
120
112
  },
121
113
  {
122
- "path": "apps/catalog/dist/storybook/assets/iframe-DcXBsFPz.js",
123
- "sha256": "40b5d200ef9399e02ecb80556abf037c22440ec63f6f4cff4bba398728a65be0"
114
+ "path": "apps/catalog/dist/storybook/assets/iframe-CBbPFx5G.js",
115
+ "sha256": "15e4057d836f2cce74dde1cedb05958584cb071e9df66b5fdfe3244f4948cfa7"
124
116
  },
125
117
  {
126
118
  "path": "apps/catalog/dist/storybook/assets/jsx-runtime-f3rHp9ZU.js",
@@ -135,20 +127,20 @@
135
127
  "sha256": "d010fa8d2cdceaf3b253755a2361c1bfe3aec58a535addad704b993439203d0a"
136
128
  },
137
129
  {
138
- "path": "apps/catalog/dist/storybook/assets/react-18-CRM89QRf.js",
139
- "sha256": "6649cba74dcb232a0eb2a0dae30fc14e89feb1a2ce058d739eee60f179fc3367"
130
+ "path": "apps/catalog/dist/storybook/assets/react-18-C9IPGXtb.js",
131
+ "sha256": "b41b8738fe5fadfc04527e9cbaebde8f495249c6cbedfc7fc40bbb915638d4b6"
140
132
  },
141
133
  {
142
- "path": "apps/catalog/dist/storybook/assets/react-C3tkVMIp.js",
143
- "sha256": "b09a358f062f4384248dbc36ac02f10ccadef817d5f8e99c868f8b4b01186ecc"
134
+ "path": "apps/catalog/dist/storybook/assets/react-CEv2qkJT.js",
135
+ "sha256": "2b4d5f9f5526c4e2875e01efd23f4c5a1abaa66620c87b446bf9b28f2d807db4"
144
136
  },
145
137
  {
146
- "path": "apps/catalog/dist/storybook/assets/syntaxhighlighter-YFXUGROL-B03jQGTF.js",
147
- "sha256": "f11d6edf9a82c4b9cbc17bd1634536693ea6f3d4a6790077304e9d2284653ca7"
138
+ "path": "apps/catalog/dist/storybook/assets/syntaxhighlighter-YFXUGROL-ZgDQjyWI.js",
139
+ "sha256": "209e7ae4d4a542a69fdadddf564573796b80d7eb75d721d691a9d47f6ef5c108"
148
140
  },
149
141
  {
150
- "path": "apps/catalog/dist/storybook/assets/theming-4ZyufAga.js",
151
- "sha256": "f75b8877a9ee69ee36cc4e682409007e67ab9a88b6e10f477fccbbf5b6b34d5e"
142
+ "path": "apps/catalog/dist/storybook/assets/theming-Cx9-gH6l.js",
143
+ "sha256": "39b124ebdaa0f46a7952dd930bc42ffd374bf4dfe151567ac813a290330dfc75"
152
144
  },
153
145
  {
154
146
  "path": "apps/catalog/dist/storybook/favicon-wrapper.svg",
@@ -160,7 +152,7 @@
160
152
  },
161
153
  {
162
154
  "path": "apps/catalog/dist/storybook/iframe.html",
163
- "sha256": "fee23dc8cd65234edfceab7fbb0eae7f4fd37b1835a1238c91dfaed9247928b9"
155
+ "sha256": "e5dfa8bda8c1f3a328bcffc87917bdaaded98b29e59b9710da6fbeb87e719e9d"
164
156
  },
165
157
  {
166
158
  "path": "apps/catalog/dist/storybook/index.html",
@@ -168,7 +160,7 @@
168
160
  },
169
161
  {
170
162
  "path": "apps/catalog/dist/storybook/index.json",
171
- "sha256": "1055b3e9b85dbeb01c13d59621863c0ca990e7356648258cb17ff9be91d821a3"
163
+ "sha256": "2d06be812834ac7b64afdb5608e95d121a66f52f89c286d60889eec9bd8eefd2"
172
164
  },
173
165
  {
174
166
  "path": "apps/catalog/dist/storybook/logo_novo_azul.png",
@@ -192,15 +184,15 @@
192
184
  },
193
185
  {
194
186
  "path": "apps/catalog/dist/storybook/sb-addons/a11y-2/manager-bundle.js",
195
- "sha256": "65b16db0224448742664a62f0d2096bee81867b62b2b3c20e6f72e6ae9542c47"
187
+ "sha256": "98fa83d49bf6de42b46a01e224ce2c15b222207de3745e553b8df51e8a2f4052"
196
188
  },
197
189
  {
198
190
  "path": "apps/catalog/dist/storybook/sb-addons/docs-1/manager-bundle.js",
199
- "sha256": "87321e7b05d890f3e5ce0906b4839907b0c8a88bfbc2b6e4b3455ffeef158985"
191
+ "sha256": "74d196487d043f69045b799b9a1c233372a5a8d4fa764d4e1d6dff8f832ab3dd"
200
192
  },
201
193
  {
202
194
  "path": "apps/catalog/dist/storybook/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js",
203
- "sha256": "6fb789ee0c7879b1402a45d2cf943d6832b3d958327c246acf975c191a7f8237"
195
+ "sha256": "063d529a317f0f91691e5bec0adcc7f47c8cd8870279b98520077b29f08a28f9"
204
196
  },
205
197
  {
206
198
  "path": "apps/catalog/dist/storybook/sb-common-assets/favicon-wrapper.svg",
@@ -252,7 +244,7 @@
252
244
  },
253
245
  {
254
246
  "path": "apps/catalog/package.json",
255
- "sha256": "a5f6cdd1f87cd6476ddfee45685be8daa2769ac1275ae201a725aac53f11739c"
247
+ "sha256": "012070a5c02a04d83c5a7239753291cae6ac967a8900398a7e31165b112f4c70"
256
248
  },
257
249
  {
258
250
  "path": "apps/catalog/public/logo_novo_azul.png",
@@ -278,18 +270,26 @@
278
270
  "path": "apps/catalog/src/components/CostPopulationSpecimen.tsx",
279
271
  "sha256": "d92bc8d55660b020db6ba9d47037a782fbbeba9b76febf7869718064d1928170"
280
272
  },
273
+ {
274
+ "path": "apps/catalog/src/components/DashboardFiltersSpecimen.tsx",
275
+ "sha256": "c0dfa12f1ad8017226b7b012beb6fe65a2b968316e1dad3a79487759a83fe1e2"
276
+ },
281
277
  {
282
278
  "path": "apps/catalog/src/components/EstimatedCostSpecimen.tsx",
283
279
  "sha256": "9350423a97fec486c54eeadd1f74bbdb066ef830cc8b980385c389c1f001feda"
284
280
  },
285
281
  {
286
282
  "path": "apps/catalog/src/components/Primitives.tsx",
287
- "sha256": "68d65caaa90818b7e942db30cd2fd6f68912e63b974c940ce694b93fa1bdc5ce"
283
+ "sha256": "e62f6f8f064deb4c13b8c4744aa6b644b99b54243c040eda8b94ce8d3745449b"
288
284
  },
289
285
  {
290
286
  "path": "apps/catalog/src/components/ProjectStatusSpecimen.tsx",
291
287
  "sha256": "3ff413dad7e8e9e127c8c2cfebe685afcfe0e7840742960c1d9408cadaf3f092"
292
288
  },
289
+ {
290
+ "path": "apps/catalog/src/components/WorkspaceStatusSpecimen.tsx",
291
+ "sha256": "9c094b862210d91eaf0f9935dfcc11de72c747da2abff17d4536815eda11cdaf"
292
+ },
293
293
  {
294
294
  "path": "apps/catalog/src/components/dialog-focus.test.ts",
295
295
  "sha256": "b62a5209b8554a4500ff241fb3d0cb67bff4ff751b8eddbda2dfd17dd9b6beed"
@@ -300,7 +300,7 @@
300
300
  },
301
301
  {
302
302
  "path": "apps/catalog/src/design-contract.test.ts",
303
- "sha256": "e1854f467f0f98c418daf44a723e0d095df2af2917f51858c67afef708ad776e"
303
+ "sha256": "8688d9a03d9c10796a48eb9c4abed3bba2afb76f7d9caf55c929834a816a699a"
304
304
  },
305
305
  {
306
306
  "path": "apps/catalog/src/main.tsx",
@@ -308,23 +308,31 @@
308
308
  },
309
309
  {
310
310
  "path": "apps/catalog/src/pages/ComponentsPage.tsx",
311
- "sha256": "7d2173517ecb0469bc197aeef93e6d9fb79bc0c0eaaca9ed1ffe1481c0310664"
311
+ "sha256": "959d6a03d39cc16b708f5915aed414a4f49f8a72e0133f166b1face045feb1d3"
312
312
  },
313
313
  {
314
314
  "path": "apps/catalog/src/pages/DesignSystemPage.tsx",
315
- "sha256": "e2eb9e6300c362ab662b60da38ff5fbdc5f0e32d5caea5d3ceb007a22bb5bd8e"
315
+ "sha256": "f4d073c82508728d65488f2dcd0cd56e8fbaef6b17ca4ba0ce9dbd3c2fcf547e"
316
316
  },
317
317
  {
318
318
  "path": "apps/catalog/src/stories/Components.stories.tsx",
319
- "sha256": "b8c891b3473f710bd45aea316a76639f6ac49e5f5f2e0c7e823f3e8d8b4eb495"
319
+ "sha256": "d1ec9a85e54425c5b0734ef15e11a286c01dff125040b35697feeb98cde227ba"
320
+ },
321
+ {
322
+ "path": "apps/catalog/src/stories/DashboardFilters.stories.tsx",
323
+ "sha256": "6c5074199139279c905b15944f31efc8322cda0411e175a2bec25d34f54694bd"
320
324
  },
321
325
  {
322
326
  "path": "apps/catalog/src/stories/DesignSystem.stories.tsx",
323
327
  "sha256": "7a749e9fb516818fa476f9f829e46713bb14b26bbbcc4028dc5a9e0f56988ab9"
324
328
  },
329
+ {
330
+ "path": "apps/catalog/src/stories/WorkspaceStatus.stories.tsx",
331
+ "sha256": "a0b0542d00beb58207e0f049c25db81dcd5c6641bd8f88a618386189ce0ac4b0"
332
+ },
325
333
  {
326
334
  "path": "apps/catalog/src/styles.css",
327
- "sha256": "f12773e60a483a7b94700fafa3e3131372e461dffb6cb24e89a12e6eeac5d690"
335
+ "sha256": "5c45893bb9118a0539c5f732a044eeaf0854c9517ada3fdc4b5b939a68d74518"
328
336
  },
329
337
  {
330
338
  "path": "apps/catalog/src/styles/catalog.css",
@@ -332,7 +340,7 @@
332
340
  },
333
341
  {
334
342
  "path": "apps/catalog/src/styles/components.css",
335
- "sha256": "22eb844316688dfb0b937a007917eb2fb4b35a7032a21c0b1db3082a95995b78"
343
+ "sha256": "640d8d6152c106aa7b4f3f61b0551c6db2d56d2726f06405b7e4e2a188383e1b"
336
344
  },
337
345
  {
338
346
  "path": "apps/catalog/src/styles/design-system.css",
@@ -352,7 +360,7 @@
352
360
  },
353
361
  {
354
362
  "path": "packages/local-runtime/package.json",
355
- "sha256": "7afa7584db17c5e4e7584da707b0d7cbb38affa1940a1d989ee4d267df80d33d"
363
+ "sha256": "262b0d33739c839483111ea601296ec82475ee2bb822c7bd341144d8e10b953d"
356
364
  },
357
365
  {
358
366
  "path": "packages/local-runtime/runtime.mjs",
@@ -376,7 +384,7 @@
376
384
  },
377
385
  {
378
386
  "path": "tokens.json",
379
- "sha256": "215b210cda19928b9749dcce38f539fb2ad876653d6753432dd168303291ecaa"
387
+ "sha256": "34a499880b0ac16e51a63a819a7895b14fcda891c7ddbb58063367964d73a2c9"
380
388
  },
381
389
  {
382
390
  "path": "zaip-design.exe",