@zaip-ai/cli 2.2.0 → 3.0.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 (571) hide show
  1. package/README.md +36 -13
  2. package/dist/services/adapters.d.ts +1 -1
  3. package/dist/services/adapters.d.ts.map +1 -1
  4. package/dist/services/adapters.js +26 -9
  5. package/dist/services/adapters.js.map +1 -1
  6. package/dist/services/agent-adapters.js +37 -18
  7. package/dist/services/agent-adapters.js.map +1 -1
  8. package/dist/services/agent-discovery.d.ts +27 -0
  9. package/dist/services/agent-discovery.d.ts.map +1 -0
  10. package/dist/services/agent-discovery.js +73 -0
  11. package/dist/services/agent-discovery.js.map +1 -0
  12. package/dist/services/codex-conversation-lifecycle-hook.d.ts.map +1 -1
  13. package/dist/services/codex-conversation-lifecycle-hook.js +164 -24
  14. package/dist/services/codex-conversation-lifecycle-hook.js.map +1 -1
  15. package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
  16. package/dist/services/codex-pre-tool-hook-template.js +146 -72
  17. package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
  18. package/dist/services/codex-rules.d.ts +1 -1
  19. package/dist/services/codex-rules.d.ts.map +1 -1
  20. package/dist/services/codex-rules.js +3 -3
  21. package/dist/services/codex-subagent-hook-template.d.ts +1 -1
  22. package/dist/services/codex-subagent-hook-template.d.ts.map +1 -1
  23. package/dist/services/codex-subagent-hook-template.js +117 -66
  24. package/dist/services/codex-subagent-hook-template.js.map +1 -1
  25. package/dist/services/install-agents-template.d.ts.map +1 -1
  26. package/dist/services/install-agents-template.js +65 -7
  27. package/dist/services/install-agents-template.js.map +1 -1
  28. package/dist/services/logger.js +1 -1
  29. package/dist/services/logger.js.map +1 -1
  30. package/dist/services/logger.test.js +22 -1
  31. package/dist/services/logger.test.js.map +1 -1
  32. package/dist/services/runtime-template.test.js +153 -1
  33. package/dist/services/runtime-template.test.js.map +1 -1
  34. package/dist/services/transactional-files.d.ts.map +1 -1
  35. package/dist/services/transactional-files.js +59 -14
  36. package/dist/services/transactional-files.js.map +1 -1
  37. package/package.json +1 -1
  38. package/templates/.agents/.env.example +9 -3
  39. package/templates/.agents/README-ENG.md +101 -15
  40. package/templates/.agents/README.md +102 -17
  41. package/templates/.agents/architecture/software-architecture.md +1 -59
  42. package/templates/.agents/branding/brandbook.md +3 -0
  43. package/templates/.agents/config/agents/catalog.yaml +25 -10
  44. package/templates/.agents/config/agents/discovery.json +319 -0
  45. package/templates/.agents/config/clients/codex/agents/zaip-agent-analyst.toml +1 -1
  46. package/templates/.agents/config/clients/codex/agents/zaip-agent-auditor.toml +1 -1
  47. package/templates/.agents/config/clients/codex/agents/zaip-agent-backend.toml +3 -3
  48. package/templates/.agents/config/clients/codex/agents/zaip-agent-brand-strategist.toml +1 -1
  49. package/templates/.agents/config/clients/codex/agents/zaip-agent-builder.toml +3 -3
  50. package/templates/.agents/config/clients/codex/agents/zaip-agent-cloud-engineer.toml +12 -9
  51. package/templates/.agents/config/clients/codex/agents/zaip-agent-data-analyst.toml +1 -1
  52. package/templates/.agents/config/clients/codex/agents/zaip-agent-designer.toml +3 -3
  53. package/templates/.agents/config/clients/codex/agents/zaip-agent-finalizer.toml +2 -2
  54. package/templates/.agents/config/clients/codex/agents/zaip-agent-frontend.toml +3 -3
  55. package/templates/.agents/config/clients/codex/agents/zaip-agent-general-operations.toml +1 -1
  56. package/templates/.agents/config/clients/codex/agents/zaip-agent-governance-compliance.toml +1 -1
  57. package/templates/.agents/config/clients/codex/agents/zaip-agent-growth-strategist.toml +1 -1
  58. package/templates/.agents/config/clients/codex/agents/zaip-agent-integrator.toml +1 -1
  59. package/templates/.agents/config/clients/codex/agents/zaip-agent-marketing-analyst.toml +1 -1
  60. package/templates/.agents/config/clients/codex/agents/zaip-agent-orchestrator.toml +13 -10
  61. package/templates/.agents/config/clients/codex/agents/zaip-agent-refactoring-specialist.toml +1 -1
  62. package/templates/.agents/config/clients/codex/agents/zaip-agent-reviewer.toml +1 -1
  63. package/templates/.agents/config/clients/codex/agents/zaip-agent-sales-specialist.toml +1 -1
  64. package/templates/.agents/config/clients/codex/agents/zaip-agent-security-auditor.toml +1 -1
  65. package/templates/.agents/config/clients/codex/agents/zaip-agent-task-executor.toml +3 -3
  66. package/templates/.agents/config/clients/codex/agents/zaip-agent-website-developer.toml +3 -3
  67. package/templates/.agents/config/clients/codex/agents/zaip-agent-writer.toml +1 -1
  68. package/templates/.agents/config/pricing/models.json +9 -5
  69. package/templates/.agents/config/project.yaml +22 -2
  70. package/templates/.agents/dashboard/.zaip-managed.json +530 -138
  71. package/templates/.agents/dashboard/README.md +16 -0
  72. package/templates/.agents/dashboard/apps/frontend/dist/assets/CostCalculationGuidePage-CEDZjl4V.js +1 -0
  73. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-DaSllaJp.js → DashboardHelpDialog-TnrL1ZyZ.js} +967 -578
  74. package/templates/.agents/dashboard/apps/frontend/dist/assets/PricingSettingsDialog-DjQpBqGU.js +1 -0
  75. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-B9GWkEyN.css +1 -0
  76. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-BAvLPAee.js +3 -0
  77. package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-BQZXUnQu.js +1 -0
  78. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-06__WZco.js +68 -0
  79. package/templates/.agents/dashboard/apps/frontend/dist/assets/dashboard-localization-Basaw1NR.js +824 -0
  80. package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-TPUT2IUt.js → icons-vendor-DEmo6Tn2.js} +1 -1
  81. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-BQe3zTvL.js +2 -0
  82. package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-Ct48XHGL.js → react-vendor-CadYsm83.js} +1 -1
  83. package/templates/.agents/dashboard/apps/frontend/dist/assets/rolldown-runtime-Bh1tDfsg.js +1 -0
  84. package/templates/.agents/dashboard/apps/frontend/dist/assets/traceability-BzKK8kK3.js +1 -0
  85. package/templates/.agents/dashboard/apps/frontend/dist/index.html +6 -6
  86. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  87. package/templates/.agents/dashboard/apps/frontend/src/App.tsx +3 -1264
  88. package/templates/.agents/dashboard/apps/frontend/src/AppDashboardContent.tsx +368 -0
  89. package/templates/.agents/dashboard/apps/frontend/src/AutonomySettings.tsx +82 -0
  90. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.dom.test.ts +130 -0
  91. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.tsx +206 -157
  92. package/templates/.agents/dashboard/apps/frontend/src/ProjectStackEditor.tsx +3 -1
  93. package/templates/.agents/dashboard/apps/frontend/src/__tests__/app-composition-support.ts +12 -0
  94. package/templates/.agents/dashboard/apps/frontend/src/cost-monitor-population.test.tsx +149 -0
  95. package/templates/.agents/dashboard/apps/frontend/src/cost-period-refresh.test.ts +9 -7
  96. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api-settings.ts +152 -0
  97. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.test.ts +19 -0
  98. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.ts +50 -154
  99. package/templates/.agents/dashboard/apps/frontend/src/dashboard-app-shell.tsx +33 -0
  100. package/templates/.agents/dashboard/apps/frontend/src/dashboard-cost-facts.test.ts +54 -0
  101. package/templates/.agents/dashboard/apps/frontend/src/dashboard-cost-facts.ts +48 -0
  102. package/templates/.agents/dashboard/apps/frontend/src/dashboard-localization.test.ts +37 -43
  103. package/templates/.agents/dashboard/apps/frontend/src/dashboard-localization.ts +9 -251
  104. package/templates/.agents/dashboard/apps/frontend/src/dashboard-project-overview.ts +35 -2
  105. package/templates/.agents/dashboard/apps/frontend/src/dashboard-retry.ts +17 -0
  106. package/templates/.agents/dashboard/apps/frontend/src/dashboard-setup-route.ts +29 -0
  107. package/templates/.agents/dashboard/apps/frontend/src/dashboard-view-actions.test.ts +51 -0
  108. package/templates/.agents/dashboard/apps/frontend/src/dashboard-view-actions.ts +68 -0
  109. package/templates/.agents/dashboard/apps/frontend/src/operations-period-render.test.ts +38 -2
  110. package/templates/.agents/dashboard/apps/frontend/src/operations-period.test.ts +19 -4
  111. package/templates/.agents/dashboard/apps/frontend/src/operations-period.ts +5 -3
  112. package/templates/.agents/dashboard/apps/frontend/src/overview-status-page.test.ts +2 -2
  113. package/templates/.agents/dashboard/apps/frontend/src/project-installation-status.test.ts +137 -0
  114. package/templates/.agents/dashboard/apps/frontend/src/project-installation-status.ts +66 -0
  115. package/templates/.agents/dashboard/apps/frontend/src/project-settings-copy.ts +181 -0
  116. package/templates/.agents/dashboard/apps/frontend/src/project-settings-model.ts +11 -1
  117. package/templates/.agents/dashboard/apps/frontend/src/project-settings-page.css +102 -51
  118. package/templates/.agents/dashboard/apps/frontend/src/project-settings-state.css +55 -0
  119. package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +14 -2
  120. package/templates/.agents/dashboard/apps/frontend/src/sao-paulo-day-rollover.test.ts +36 -0
  121. package/templates/.agents/dashboard/apps/frontend/src/sao-paulo-day-rollover.ts +30 -0
  122. package/templates/.agents/dashboard/apps/frontend/src/snapshot-banner-semantics.test.ts +2 -5
  123. package/templates/.agents/dashboard/apps/frontend/src/snapshot-coherence.test.ts +31 -20
  124. package/templates/.agents/dashboard/apps/frontend/src/traceability-task-pagination.ts +1 -2
  125. package/templates/.agents/dashboard/apps/frontend/src/use-app-cost-loaders.test.ts +6 -0
  126. package/templates/.agents/dashboard/apps/frontend/src/use-app-cost-loaders.ts +2 -0
  127. package/templates/.agents/dashboard/apps/frontend/src/use-app-effects.ts +9 -1
  128. package/templates/.agents/dashboard/apps/frontend/src/use-app-trace-documents.ts +3 -1
  129. package/templates/.agents/dashboard/apps/frontend/src/use-app-trace-task-pagination.ts +66 -0
  130. package/templates/.agents/dashboard/apps/frontend/src/use-app-work-board.ts +397 -0
  131. package/templates/.agents/dashboard/apps/frontend/src/use-dashboard-app-model.tsx +782 -0
  132. package/templates/.agents/dashboard/apps/frontend/src/use-snapshot-notice.tsx +49 -0
  133. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  134. package/templates/.agents/dashboard/modules/cost-monitor/src/complete-cost-average.test.ts +73 -0
  135. package/templates/.agents/dashboard/modules/cost-monitor/src/contracts.ts +9 -0
  136. package/templates/.agents/dashboard/modules/cost-monitor/src/period-averages.ts +60 -0
  137. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostDeveloperPanelSlot.tsx +16 -0
  138. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostGroupsTable.tsx +459 -0
  139. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorContent.tsx +8 -22
  140. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.test.ts +27 -17
  141. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.tsx +64 -189
  142. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorRunDialog.tsx +20 -0
  143. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostPeriodAverageCards.tsx +32 -8
  144. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables-hides-calls-that-have-no-collected.test.ts +80 -0
  145. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables-keeps-legacy-codex-identity-fields-blank.test.ts +455 -0
  146. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.test.ts +18 -525
  147. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.tsx +32 -508
  148. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-export-sources.ts +74 -0
  149. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-page-actions.ts +19 -0
  150. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-page-selectors.ts +49 -0
  151. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-summary.ts +3 -2
  152. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-table-formatters.ts +115 -0
  153. package/templates/.agents/dashboard/modules/cost-monitor/src/react/period-cost-groups.ts +1 -42
  154. package/templates/.agents/dashboard/modules/cost-monitor/src/react/use-cost-group-page.ts +2 -1
  155. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-monitor-projection.test-fixtures.ts +2 -0
  156. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-monitor-projection.ts +3 -2
  157. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-summary-projection.ts +8 -2
  158. package/templates/.agents/dashboard/modules/cost-monitor/src/server/index.ts +1 -0
  159. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  160. package/templates/.agents/dashboard/modules/operations/src/contracts.ts +4 -0
  161. package/templates/.agents/dashboard/modules/operations/src/react/EntityTableBadges.tsx +34 -0
  162. package/templates/.agents/dashboard/modules/operations/src/react/EntityTables.tsx +8 -38
  163. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview-keeps-structure-classes-mutually-exclusive.test.ts +244 -0
  164. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.helpers.tsx +66 -3
  165. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.test.ts +98 -276
  166. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.tsx +105 -276
  167. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverviewCharts.tsx +171 -0
  168. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverviewPanels.tsx +64 -0
  169. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPage.tsx +9 -17
  170. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPageOverview.tsx +3 -0
  171. package/templates/.agents/dashboard/modules/operations/src/react/OverviewCostKpi.tsx +46 -0
  172. package/templates/.agents/dashboard/modules/operations/src/react/PrdDocumentDialog.test.tsx +2 -1
  173. package/templates/.agents/dashboard/modules/operations/src/react/UnifiedWorkList.test.ts +28 -1
  174. package/templates/.agents/dashboard/modules/operations/src/react/UnifiedWorkList.tsx +11 -4
  175. package/templates/.agents/dashboard/modules/operations/src/react/index.ts +1 -0
  176. package/templates/.agents/dashboard/modules/operations/src/react/manual-work-priority.test.ts +2 -1
  177. package/templates/.agents/dashboard/modules/operations/src/react/operations-coverage-toast.test.ts +8 -4
  178. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview-period-filter.test.ts +34 -22
  179. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview.status-cards.test.ts +3 -1
  180. package/templates/.agents/dashboard/modules/operations/src/react/operations-page-contract.ts +21 -2
  181. package/templates/.agents/dashboard/modules/operations/src/react/overview-cost-card.test.tsx +89 -0
  182. package/templates/.agents/dashboard/modules/operations/src/react/overview-metric-format.ts +32 -0
  183. package/templates/.agents/dashboard/modules/operations/src/react/work-board-model.test.ts +3 -3
  184. package/templates/.agents/dashboard/modules/operations/src/work-board-model.ts +2 -1
  185. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  186. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  187. package/templates/.agents/dashboard/packages/branding/src/index.ts +1 -1
  188. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  189. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  190. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +1625 -1613
  191. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +1592 -1582
  192. package/templates/.agents/dashboard/packages/local-runtime/package.json +3 -2
  193. package/templates/.agents/dashboard/packages/local-runtime/scripts/build-sqlite-runtime.mjs +22 -28
  194. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +1625 -1614
  195. package/templates/.agents/dashboard/packages/local-runtime/src/active-codex-telemetry.ts +25 -0
  196. package/templates/.agents/dashboard/packages/local-runtime/src/agent-catalog-settings.test.ts +1 -1
  197. package/templates/.agents/dashboard/packages/local-runtime/src/project-installation-summary.test.ts +142 -0
  198. package/templates/.agents/dashboard/packages/local-runtime/src/project-installation-summary.ts +190 -0
  199. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.test.ts +118 -8
  200. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.ts +92 -36
  201. package/templates/.agents/dashboard/packages/local-runtime/src/projection-refresh-diagnostics.ts +35 -0
  202. package/templates/.agents/dashboard/packages/local-runtime/src/server-browser-lease.test.ts +91 -0
  203. package/templates/.agents/dashboard/packages/local-runtime/src/server-browser-lease.ts +24 -4
  204. package/templates/.agents/dashboard/packages/local-runtime/src/server-costs-routes.ts +168 -0
  205. package/templates/.agents/dashboard/packages/local-runtime/src/server-dual-reads-manifest-summaries-without-losing.test.ts +344 -0
  206. package/templates/.agents/dashboard/packages/local-runtime/src/server-hono-security.test.ts +17 -0
  207. package/templates/.agents/dashboard/packages/local-runtime/src/server-http-contracts.ts +31 -0
  208. package/templates/.agents/dashboard/packages/local-runtime/src/server-operations-routes.ts +364 -0
  209. package/templates/.agents/dashboard/packages/local-runtime/src/server-read-projections.ts +461 -0
  210. package/templates/.agents/dashboard/packages/local-runtime/src/server-reconciliation-refresh.test.ts +78 -0
  211. package/templates/.agents/dashboard/packages/local-runtime/src/server-route-context.ts +13 -0
  212. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-refresh.test.ts +94 -2
  213. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-refresh.ts +62 -12
  214. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.test.ts +44 -0
  215. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.ts +22 -3
  216. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot.test.ts +22 -21
  217. package/templates/.agents/dashboard/packages/local-runtime/src/server-sqlite-task-trace.test.ts +97 -0
  218. package/templates/.agents/dashboard/packages/local-runtime/src/server-sqlite-task-trace.ts +10 -13
  219. package/templates/.agents/dashboard/packages/local-runtime/src/server-sqlite-view-allowlist.test.ts +25 -0
  220. package/templates/.agents/dashboard/packages/local-runtime/src/server-trace-routes.ts +56 -0
  221. package/templates/.agents/dashboard/packages/local-runtime/src/server-traceability-index.test.ts +84 -0
  222. package/templates/.agents/dashboard/packages/local-runtime/src/server-work-reconciliation.test.ts +2 -30
  223. package/templates/.agents/dashboard/packages/local-runtime/src/server-work-reconciliation.ts +6 -23
  224. package/templates/.agents/dashboard/packages/local-runtime/src/server.test-fixtures.ts +1 -1
  225. package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +2 -330
  226. package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +87 -1060
  227. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-dimension-facts.test.ts +12 -1
  228. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-file-index.test.ts +69 -0
  229. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-cache.ts +3 -1
  230. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-force-canonical.test.ts +3 -1
  231. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-incremental-refresh.test.ts +2 -0
  232. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-first-fold.ts +78 -0
  233. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-projections.ts +570 -0
  234. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-runs.ts +600 -0
  235. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-metric-contract.test.ts +1 -1
  236. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-period-averages.ts +46 -0
  237. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-provider-alias-parity.test.ts +50 -0
  238. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-agent-dimension.ts +269 -0
  239. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-context.ts +32 -0
  240. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-entity-group.ts +244 -0
  241. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-filtered-dimension.ts +303 -0
  242. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-financial.ts +547 -0
  243. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-model-dimension.ts +360 -0
  244. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-provider-dimension.ts +169 -0
  245. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-summary.ts +493 -0
  246. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-temporal-dimension.ts +134 -0
  247. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-timing.ts +299 -0
  248. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-view-page.ts +692 -0
  249. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-counts-every-root-execution-day-returns.test.ts +763 -0
  250. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-does-not-convert-delayed-historical-finalizer.test.ts +706 -0
  251. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-filesystem.ts +762 -0
  252. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-first-fold-types.ts +1 -1
  253. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-keeps-orphan-telemetry-out-kanban-without.test.ts +710 -0
  254. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-marks-token-cost-telemetry-unavailable-when.test.ts +618 -0
  255. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-rebuild.ts +764 -0
  256. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-rebuilds-disposable-snapshot-serves-zaip-records.test.ts +276 -0
  257. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-schema.ts +193 -0
  258. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-source-fingerprint.test.ts +54 -1
  259. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-source-fingerprint.ts +7 -3
  260. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-types.ts +123 -0
  261. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +5 -2806
  262. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.ts +17 -6930
  263. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-risk-population.test.ts +98 -0
  264. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-base-views.ts +390 -0
  265. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-dashboard-views.ts +413 -0
  266. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-seed.test.ts +2 -0
  267. package/templates/.agents/dashboard/packages/local-runtime/src/verify-project-settings.mjs +57 -0
  268. package/templates/.agents/dashboard/packages/local-runtime/src/work-priority-contract.test.ts +4 -3
  269. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-build.mjs +195 -0
  270. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-lifecycle.test.mjs +2 -7
  271. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-logging.mjs +35 -0
  272. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-navigation.mjs +114 -0
  273. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-paths.mjs +90 -0
  274. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.mjs +89 -418
  275. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.test.mjs +22 -12
  276. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  277. package/templates/.agents/dashboard/scripts/qualify-observability.mjs +130 -0
  278. package/templates/.agents/dashboard/scripts/verify-autonomy-settings.mjs +175 -0
  279. package/templates/.agents/dashboard/scripts/verify-observability.mjs +254 -0
  280. package/templates/.agents/dashboard/scripts/verify-project-setup.mjs +64 -0
  281. package/templates/.agents/dashboard/tests/e2e/lease-global-setup.ts +37 -0
  282. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  283. package/templates/.agents/dashboard/tests/e2e/playwright.config.ts +9 -4
  284. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-period-transition.spec.ts +22 -1
  285. package/templates/.agents/dashboard/tests/e2e/specs/dashboard-performance-matrix.spec.ts +17 -8
  286. package/templates/.agents/dashboard/tests/e2e/specs/dashboard.spec.ts +47 -6
  287. package/templates/.agents/dashboard/tests/e2e/specs/lease-lifetime.spec.ts +14 -0
  288. package/templates/.agents/dashboard/tests/observability-fixture.mjs +200 -0
  289. package/templates/.agents/design/.zaip-managed.json +86 -42
  290. package/templates/.agents/design/DESIGN.md +2 -186
  291. package/templates/.agents/design/README.md +12 -2
  292. package/templates/.agents/design/apps/catalog/dist/assets/index-BJV597iq.js +72 -0
  293. package/templates/.agents/design/apps/catalog/dist/assets/index-BOjCcUaU.js +72 -0
  294. package/templates/.agents/design/apps/catalog/dist/assets/index-B_WhrCZe.js +72 -0
  295. package/templates/.agents/design/apps/catalog/dist/assets/index-CqtYXZfV.js +72 -0
  296. package/templates/.agents/design/apps/catalog/dist/assets/index-D_lfqoyx.js +72 -0
  297. package/templates/.agents/design/apps/catalog/dist/assets/index-i_PO2k9R.js +9 -0
  298. package/templates/.agents/design/apps/catalog/dist/index.html +1 -1
  299. package/templates/.agents/design/apps/catalog/dist/storybook/assets/CatalogShell-Cstn1UwA.js +1 -0
  300. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{Color-6AOWCN3U-B-kAgAjB.js → Color-6AOWCN3U-Cm-yJJz_.js} +1 -1
  301. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Components.stories-D1WopB2L.js +137 -0
  302. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DesignSystem.stories-DQ9PJ3N3.js +1 -0
  303. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{DocsRenderer-JROSPFPF-BVN7xHtv.js → DocsRenderer-JROSPFPF-Belk4jRr.js} +4 -4
  304. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{WithTooltip-7X4HQR7L-CDHtKYkz.js → WithTooltip-7X4HQR7L-DoPvjkS1.js} +1 -1
  305. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{chunk-DRQKCCAG-D6AsDkMK.js → chunk-DRQKCCAG-B1itKXEN.js} +1 -1
  306. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{chunk-W22LQPXL-B4m5uloN.js → chunk-W22LQPXL-C-Eb5SPY.js} +1 -1
  307. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{components-CN8YyTUg.js → components-DnyKLwhj.js} +5 -5
  308. package/templates/.agents/design/apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-D0OSgxWz.js +1 -0
  309. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{iframe-9yZfIsdT.js → iframe-DcXBsFPz.js} +3 -3
  310. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{react-18-BoCSnq6H.js → react-18-CRM89QRf.js} +1 -1
  311. package/templates/.agents/design/apps/catalog/dist/storybook/assets/react-C3tkVMIp.js +1 -0
  312. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{syntaxhighlighter-YFXUGROL-Bnn_nMwJ.js → syntaxhighlighter-YFXUGROL-B03jQGTF.js} +1 -1
  313. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{theming-DS_ue2sb.js → theming-4ZyufAga.js} +1 -1
  314. package/templates/.agents/design/apps/catalog/dist/storybook/iframe.html +1 -1
  315. package/templates/.agents/design/apps/catalog/dist/storybook/index.json +1 -1
  316. package/templates/.agents/design/apps/catalog/package.json +2 -2
  317. package/templates/.agents/design/apps/catalog/src/components/AutonomySpecimen.tsx +15 -0
  318. package/templates/.agents/design/apps/catalog/src/components/CostPopulationSpecimen.test.tsx +19 -0
  319. package/templates/.agents/design/apps/catalog/src/components/CostPopulationSpecimen.tsx +45 -0
  320. package/templates/.agents/design/apps/catalog/src/components/EstimatedCostSpecimen.tsx +48 -0
  321. package/templates/.agents/design/apps/catalog/src/components/ProjectStatusSpecimen.tsx +169 -0
  322. package/templates/.agents/design/apps/catalog/src/pages/ComponentsPage.tsx +55 -0
  323. package/templates/.agents/design/apps/catalog/src/stories/Components.stories.tsx +60 -0
  324. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  325. package/templates/.agents/growth/strategy.md +3 -0
  326. package/templates/.agents/marketing/strategy.md +3 -0
  327. package/templates/.agents/requirements/autonomous-assurance.md +2 -1
  328. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  329. package/templates/.agents/requirements/comparative-audit.md +1 -1
  330. package/templates/.agents/requirements/context-engine.md +1 -1
  331. package/templates/.agents/requirements/cost-observability.md +1 -1
  332. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  333. package/templates/.agents/requirements/data-export.md +1 -1
  334. package/templates/.agents/requirements/design-system.md +13 -4
  335. package/templates/.agents/requirements/execution-engine.md +1 -1
  336. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  337. package/templates/.agents/requirements/model-orchestration.md +1 -1
  338. package/templates/.agents/requirements/public-distribution.md +4 -2
  339. package/templates/.agents/requirements/software-architecture.md +1 -1
  340. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  341. package/templates/.agents/requirements/work-lifecycle.md +6 -6
  342. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  343. package/templates/.agents/rules/architecture.md +2 -0
  344. package/templates/.agents/rules/astra-diagnostic.md +3 -1
  345. package/templates/.agents/rules/autonomy-decision.md +12 -2
  346. package/templates/.agents/rules/cloud-hostinger-autonomy.md +2 -0
  347. package/templates/.agents/rules/context.md +2 -1
  348. package/templates/.agents/rules/core.md +15 -4
  349. package/templates/.agents/rules/design-system-central-contract.md +17 -0
  350. package/templates/.agents/rules/evolution.md +3 -1
  351. package/templates/.agents/rules/frontend-lite.md +3 -1
  352. package/templates/.agents/rules/local-sqlite-storage.md +2 -2
  353. package/templates/.agents/rules/meta-mcp.md +3 -1
  354. package/templates/.agents/rules/model-orchestration.md +1 -1
  355. package/templates/.agents/rules/run-lifecycle-closure.md +11 -7
  356. package/templates/.agents/rules/security.md +3 -1
  357. package/templates/.agents/rules/specialist-routing.md +3 -1
  358. package/templates/.agents/rules/text-writing-utf8.md +1 -1
  359. package/templates/.agents/rules/workflow.md +7 -5
  360. package/templates/.agents/runtime/VERSION +1 -1
  361. package/templates/.agents/runtime/bin/zaip.mjs +821 -516
  362. package/templates/.agents/runtime/checksums.sha256 +6 -6
  363. package/templates/.agents/runtime/manifest.json +1 -1
  364. package/templates/.agents/runtime/pnpm-lock.sha256 +1 -1
  365. package/templates/.agents/runtime/provenance.json +5 -5
  366. package/templates/.agents/runtime/sbom.cdx.json +3 -3
  367. package/templates/.agents/sales/playbook.md +3 -0
  368. package/templates/.agents/skills/zaip-aios/SKILL.md +5 -3
  369. package/templates/.agents/skills/zaip-skill-adapt-stack/SKILL.md +1 -0
  370. package/templates/.agents/skills/zaip-skill-api-contracts/SKILL.md +14 -0
  371. package/templates/.agents/skills/zaip-skill-api-contracts/agents/openai.yaml +4 -0
  372. package/templates/.agents/skills/zaip-skill-application-observability/SKILL.md +15 -0
  373. package/templates/.agents/skills/zaip-skill-application-observability/agents/openai.yaml +4 -0
  374. package/templates/.agents/skills/zaip-skill-application-observability/references/signal-design.md +3 -0
  375. package/templates/.agents/skills/zaip-skill-application-readiness/SKILL.md +15 -0
  376. package/templates/.agents/skills/zaip-skill-application-readiness/agents/openai.yaml +4 -0
  377. package/templates/.agents/skills/zaip-skill-application-readiness/references/evidence-matrix.md +3 -0
  378. package/templates/.agents/skills/zaip-skill-architecture-design/SKILL.md +14 -0
  379. package/templates/.agents/skills/zaip-skill-architecture-design/agents/openai.yaml +4 -0
  380. package/templates/.agents/skills/zaip-skill-async-jobs/SKILL.md +14 -0
  381. package/templates/.agents/skills/zaip-skill-async-jobs/agents/openai.yaml +4 -0
  382. package/templates/.agents/skills/zaip-skill-auth-tenancy/SKILL.md +15 -0
  383. package/templates/.agents/skills/zaip-skill-auth-tenancy/agents/openai.yaml +4 -0
  384. package/templates/.agents/skills/zaip-skill-auth-tenancy/references/data-access-paths.md +9 -0
  385. package/templates/.agents/skills/zaip-skill-auth-tenancy/references/worker-scenario.md +5 -0
  386. package/templates/.agents/skills/zaip-skill-auth-tenancy/scripts/worker-contract.test.mjs +27 -0
  387. package/templates/.agents/skills/zaip-skill-author-skills/SKILL.md +2 -0
  388. package/templates/.agents/skills/zaip-skill-author-skills/references/engineering-skill-index.md +9 -0
  389. package/templates/.agents/skills/zaip-skill-author-skills/scripts/audit-skill-catalog.mjs +5 -3
  390. package/templates/.agents/skills/zaip-skill-author-skills/scripts/author-skill-scripts.test.mjs +27 -0
  391. package/templates/.agents/skills/zaip-skill-backend/SKILL.md +4 -0
  392. package/templates/.agents/skills/zaip-skill-backend/references/deployment-environments.md +75 -0
  393. package/templates/.agents/skills/zaip-skill-backend/references/supabase-migration-contract.md +23 -0
  394. package/templates/.agents/skills/zaip-skill-brand-governance/SKILL.md +2 -0
  395. package/templates/.agents/skills/zaip-skill-cache-strategy/SKILL.md +14 -0
  396. package/templates/.agents/skills/zaip-skill-cache-strategy/agents/openai.yaml +4 -0
  397. package/templates/.agents/skills/zaip-skill-change/SKILL.md +1 -1
  398. package/templates/.agents/skills/zaip-skill-cloud-engineering/SKILL.md +7 -0
  399. package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/SKILL.md +37 -0
  400. package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/agents/openai.yaml +6 -0
  401. package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/references/workers-static-assets.md +26 -0
  402. package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/references/workflow-templates.md +71 -0
  403. package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/scripts/cloudflare-github-deploy-contract.test.mjs +77 -0
  404. package/templates/.agents/skills/zaip-skill-config/SKILL.md +21 -11
  405. package/templates/.agents/skills/zaip-skill-config/agents/openai.yaml +2 -2
  406. package/templates/.agents/skills/zaip-skill-container-runtime/SKILL.md +14 -0
  407. package/templates/.agents/skills/zaip-skill-container-runtime/agents/openai.yaml +4 -0
  408. package/templates/.agents/skills/zaip-skill-context/SKILL.md +6 -1
  409. package/templates/.agents/skills/zaip-skill-context/references/prd-spec-task-handoff.md +10 -0
  410. package/templates/.agents/skills/zaip-skill-context/references/rule-selection.md +20 -0
  411. package/templates/.agents/skills/zaip-skill-cqrs/SKILL.md +1 -0
  412. package/templates/.agents/skills/zaip-skill-cybersecurity/SKILL.md +18 -0
  413. package/templates/.agents/skills/zaip-skill-cybersecurity/agents/openai.yaml +4 -0
  414. package/templates/.agents/skills/zaip-skill-cybersecurity/references/audit-contract.md +94 -0
  415. package/templates/.agents/skills/zaip-skill-cybersecurity/scripts/score-audit.mjs +185 -0
  416. package/templates/.agents/skills/zaip-skill-cybersecurity/scripts/score-audit.test.mjs +101 -0
  417. package/templates/.agents/skills/zaip-skill-data-modeling/SKILL.md +14 -0
  418. package/templates/.agents/skills/zaip-skill-data-modeling/agents/openai.yaml +4 -0
  419. package/templates/.agents/skills/zaip-skill-database-migrations/SKILL.md +20 -0
  420. package/templates/.agents/skills/zaip-skill-database-migrations/agents/openai.yaml +4 -0
  421. package/templates/.agents/skills/zaip-skill-database-migrations/references/manual-mode.md +15 -0
  422. package/templates/.agents/skills/zaip-skill-database-migrations/references/promotion-example.md +5 -0
  423. package/templates/.agents/skills/zaip-skill-database-migrations/scripts/export-manual-sql.mjs +145 -0
  424. package/templates/.agents/skills/zaip-skill-database-migrations/scripts/export-manual-sql.test.mjs +178 -0
  425. package/templates/.agents/skills/zaip-skill-dependency-upgrade/SKILL.md +14 -0
  426. package/templates/.agents/skills/zaip-skill-dependency-upgrade/agents/openai.yaml +4 -0
  427. package/templates/.agents/skills/zaip-skill-deployment-pipeline/SKILL.md +15 -0
  428. package/templates/.agents/skills/zaip-skill-deployment-pipeline/agents/openai.yaml +4 -0
  429. package/templates/.agents/skills/zaip-skill-deployment-pipeline/references/runtime-shapes.md +3 -0
  430. package/templates/.agents/skills/zaip-skill-design-system/SKILL.md +20 -9
  431. package/templates/.agents/skills/zaip-skill-dev-environment/SKILL.md +16 -0
  432. package/templates/.agents/skills/zaip-skill-dev-environment/agents/openai.yaml +4 -0
  433. package/templates/.agents/skills/zaip-skill-dev-environment/references/inventory-contract.md +7 -0
  434. package/templates/.agents/skills/zaip-skill-dev-environment/scripts/inventory.mjs +77 -0
  435. package/templates/.agents/skills/zaip-skill-disaster-recovery/SKILL.md +15 -0
  436. package/templates/.agents/skills/zaip-skill-disaster-recovery/agents/openai.yaml +4 -0
  437. package/templates/.agents/skills/zaip-skill-disaster-recovery/references/recovery-scope.md +3 -0
  438. package/templates/.agents/skills/zaip-skill-execution/SKILL.md +31 -8
  439. package/templates/.agents/skills/zaip-skill-execution/references/correction-cycle.md +7 -0
  440. package/templates/.agents/skills/zaip-skill-execution/references/runtime-governance.md +18 -8
  441. package/templates/.agents/skills/zaip-skill-external-integrations/SKILL.md +14 -0
  442. package/templates/.agents/skills/zaip-skill-external-integrations/agents/openai.yaml +4 -0
  443. package/templates/.agents/skills/zaip-skill-frontend/SKILL.md +4 -0
  444. package/templates/.agents/skills/zaip-skill-frontend-componentization/SKILL.md +44 -0
  445. package/templates/.agents/skills/zaip-skill-frontend-componentization/agents/openai.yaml +4 -0
  446. package/templates/.agents/skills/zaip-skill-frontend-data-flows/SKILL.md +14 -0
  447. package/templates/.agents/skills/zaip-skill-frontend-data-flows/agents/openai.yaml +4 -0
  448. package/templates/.agents/skills/zaip-skill-general-operations/SKILL.md +2 -0
  449. package/templates/.agents/skills/zaip-skill-github-actions-setup/SKILL.md +36 -0
  450. package/templates/.agents/skills/zaip-skill-github-actions-setup/agents/openai.yaml +4 -0
  451. package/templates/.agents/skills/zaip-skill-github-actions-setup/references/cloudflare-pages.md +33 -0
  452. package/templates/.agents/skills/zaip-skill-github-actions-setup/references/github.md +63 -0
  453. package/templates/.agents/skills/zaip-skill-github-actions-setup/references/hostinger-vps.md +55 -0
  454. package/templates/.agents/skills/zaip-skill-github-actions-setup/references/npm.md +30 -0
  455. package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/check-skill.mjs +55 -0
  456. package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/verify-cloudflare.mjs +61 -0
  457. package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/verify-cloudflare.test.mjs +128 -0
  458. package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/verify-ssh.integration.test.mjs +106 -0
  459. package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +42 -76
  460. package/templates/.agents/skills/zaip-skill-github-deploy/references/deployment-workflow.md +135 -0
  461. package/templates/.agents/skills/zaip-skill-github-deploy/references/github-release-workflow-template.md +31 -0
  462. package/templates/.agents/skills/zaip-skill-github-deploy/references/release-gate-matrix.md +24 -0
  463. package/templates/.agents/skills/zaip-skill-github-deploy/references/release-identity.md +44 -0
  464. package/templates/.agents/skills/zaip-skill-github-deploy/references/release-notes.md +134 -0
  465. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.mjs +389 -0
  466. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.test.mjs +134 -0
  467. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs +25 -2
  468. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-readiness-api.test.mjs +134 -0
  469. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-readiness.mjs +98 -0
  470. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-readiness.test.mjs +25 -0
  471. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/install-github-readiness-workflow.mjs +159 -0
  472. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/install-github-readiness-workflow.test.mjs +160 -0
  473. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.mjs +149 -12
  474. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.test.mjs +64 -5
  475. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/release-notes-coverage.test.mjs +126 -0
  476. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/resolve-release-identity.mjs +78 -0
  477. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/resolve-release-identity.test.mjs +51 -0
  478. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/validate-release-notes.mjs +184 -0
  479. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/validate-release-notes.test.mjs +109 -0
  480. package/templates/.agents/skills/zaip-skill-growth-strategy-revops/SKILL.md +2 -0
  481. package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/SKILL.md +18 -10
  482. package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/agents/openai.yaml +3 -4
  483. package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/references/aws-cli-terraform.md +62 -0
  484. package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/references/guia-iniciante-hostinger-vps.md +183 -0
  485. package/templates/.agents/skills/zaip-skill-marketing/SKILL.md +2 -0
  486. package/templates/.agents/skills/zaip-skill-module-scaffold/SKILL.md +14 -0
  487. package/templates/.agents/skills/zaip-skill-module-scaffold/agents/openai.yaml +4 -0
  488. package/templates/.agents/skills/zaip-skill-module-scaffold/references/scaffold-contract.md +9 -0
  489. package/templates/.agents/skills/zaip-skill-module-scaffold/scripts/helpers.test.mjs +121 -0
  490. package/templates/.agents/skills/zaip-skill-module-scaffold/scripts/scaffold.mjs +169 -0
  491. package/templates/.agents/skills/zaip-skill-move-prd/SKILL.md +3 -1
  492. package/templates/.agents/skills/zaip-skill-move-spec/SKILL.md +1 -1
  493. package/templates/.agents/skills/zaip-skill-performance-engineering/SKILL.md +14 -0
  494. package/templates/.agents/skills/zaip-skill-performance-engineering/agents/openai.yaml +4 -0
  495. package/templates/.agents/skills/zaip-skill-prd/SKILL.md +3 -1
  496. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-local-telemetry.mjs +1 -0
  497. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-lib.mjs +26 -9
  498. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-lib.test.mjs +39 -13
  499. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-remeasurement.mjs +1 -0
  500. package/templates/.agents/skills/zaip-skill-refactor-landing-page/SKILL.md +66 -0
  501. package/templates/.agents/skills/zaip-skill-refactor-landing-page/agents/openai.yaml +4 -0
  502. package/templates/.agents/skills/zaip-skill-refactor-landing-page/references/behavioral-dry-run.md +23 -0
  503. package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +38 -1
  504. package/templates/.agents/skills/zaip-skill-release-qualification/references/local-preparation.md +122 -0
  505. package/templates/.agents/skills/zaip-skill-review/SKILL.md +1 -0
  506. package/templates/.agents/skills/zaip-skill-rules/SKILL.md +3 -3
  507. package/templates/.agents/skills/zaip-skill-sales-methodology/SKILL.md +2 -0
  508. package/templates/.agents/skills/zaip-skill-setup/SKILL.md +21 -21
  509. package/templates/.agents/skills/zaip-skill-setup/agents/openai.yaml +2 -2
  510. package/templates/.agents/skills/zaip-skill-spec/SKILL.md +3 -2
  511. package/templates/.agents/skills/zaip-skill-storage-uploads/SKILL.md +14 -0
  512. package/templates/.agents/skills/zaip-skill-storage-uploads/agents/openai.yaml +4 -0
  513. package/templates/.agents/skills/zaip-skill-systematic-debugging/SKILL.md +14 -0
  514. package/templates/.agents/skills/zaip-skill-systematic-debugging/agents/openai.yaml +4 -0
  515. package/templates/.agents/skills/zaip-skill-task/SKILL.md +16 -7
  516. package/templates/.agents/skills/zaip-skill-task/references/commit-policy.md +25 -0
  517. package/templates/.agents/skills/zaip-skill-test-data/SKILL.md +14 -0
  518. package/templates/.agents/skills/zaip-skill-test-data/agents/openai.yaml +4 -0
  519. package/templates/.agents/skills/zaip-skill-test-data/scripts/generate.mjs +72 -0
  520. package/templates/.agents/skills/zaip-skill-testing-strategy/SKILL.md +15 -0
  521. package/templates/.agents/skills/zaip-skill-testing-strategy/agents/openai.yaml +4 -0
  522. package/templates/.agents/skills/zaip-skill-testing-strategy/references/example-map.md +3 -0
  523. package/templates/.agents/skills/zaip-skill-tool-setup/SKILL.md +2 -0
  524. package/templates/.agents/skills/zaip-skill-website-readiness/SKILL.md +8 -0
  525. package/templates/.agents/zaip-aios/INDEX.md +9 -1
  526. package/templates/.agents/zaip-aios/README.md +23 -2
  527. package/templates/.agents/zaip-aios/VERSION +1 -1
  528. package/templates/.agents/zaip-aios/guides/01-primeiros-passos.md +5 -1
  529. package/templates/.agents/zaip-aios/guides/03-tasks.md +15 -2
  530. package/templates/.agents/zaip-aios/guides/04-specs.md +13 -0
  531. package/templates/.agents/zaip-aios/guides/05-prds.md +13 -0
  532. package/templates/.agents/zaip-aios/guides/06-execucao.md +19 -4
  533. package/templates/.agents/zaip-aios/guides/07-revisao-e-validacao.md +14 -0
  534. package/templates/.agents/zaip-aios/guides/08-contexto-e-tokens.md +4 -3
  535. package/templates/.agents/zaip-aios/guides/09-agentes-e-squads.md +17 -9
  536. package/templates/.agents/zaip-aios/guides/10-seguranca.md +11 -1
  537. package/templates/.agents/zaip-aios/guides/11-observabilidade-e-custos.md +69 -0
  538. package/templates/.agents/zaip-aios/guides/12-instalacao-e-upgrade.md +9 -4
  539. package/templates/.agents/zaip-aios/guides/13-boas-praticas.md +7 -1
  540. package/templates/.agents/zaip-aios/guides/14-troubleshooting.md +18 -0
  541. package/templates/.agents/zaip-aios/guides/16-lifecycle-e-reconciliacao.md +54 -3
  542. package/templates/.agents/zaip-aios/guides/18-catalogo-de-agentes.md +10 -2
  543. package/templates/.agents/zaip-aios/guides/19-assurance-e-autonomia.md +186 -5
  544. package/templates/.agents/zaip-aios/guides/20-instalacao-detalhada.md +26 -18
  545. package/templates/.agents/zaip-aios/guides/21-telemetria-monitor-custos.md +18 -2
  546. package/templates/.agents/zaip-aios/guides/22-fluxos-e-roteamento.md +14 -2
  547. package/templates/.agents/zaip-aios/guides/23-orquestracao-de-modelos.md +190 -489
  548. package/templates/.agents/zaip-aios/guides/26-qualidade-e-release.md +61 -13
  549. package/templates/.agents/zaip-aios/guides/27-telemetria-git-native.md +18 -0
  550. package/templates/.agents/zaip-aios/guides/28-lifecycle-completo.md +18 -1
  551. package/templates/scripts/validate-cloud-hostinger-contract.mjs +34 -0
  552. package/templates/template-manifest.json +1229 -329
  553. package/templates/.agents/branding/.gitkeep +0 -0
  554. package/templates/.agents/dashboard/apps/frontend/dist/assets/CostCalculationGuidePage-snUCQYTC.js +0 -1
  555. package/templates/.agents/dashboard/apps/frontend/dist/assets/PricingSettingsDialog-BPtVUGgs.js +0 -1
  556. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-3Awyaovx.js +0 -3
  557. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-GgzpZ_PY.css +0 -1
  558. package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-BCvZFMEf.js +0 -1
  559. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-DbaLbU2q.js +0 -68
  560. package/templates/.agents/dashboard/apps/frontend/dist/assets/dashboard-localization-CLJ0lT9v.js +0 -231
  561. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-_MEktQNM.js +0 -2
  562. package/templates/.agents/dashboard/apps/frontend/dist/assets/rolldown-runtime-D9-fqq9M.js +0 -1
  563. package/templates/.agents/dashboard/apps/frontend/dist/assets/traceability-BDe4_Ubl.js +0 -1
  564. package/templates/.agents/design/apps/catalog/dist/storybook/assets/CatalogShell-BWY-80s4.js +0 -1
  565. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Components.stories-Be2mDUQj.js +0 -27
  566. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DesignSystem.stories-DRx9blDs.js +0 -1
  567. package/templates/.agents/design/apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-EwuTh8Zk.js +0 -1
  568. package/templates/.agents/design/apps/catalog/dist/storybook/assets/react-DyL61NPT.js +0 -1
  569. package/templates/.agents/growth/.gitkeep +0 -0
  570. package/templates/.agents/marketing/.gitkeep +0 -0
  571. package/templates/.agents/sales/.gitkeep +0 -0
@@ -0,0 +1,413 @@
1
+ export const dashboardViewSql = ` CREATE VIEW vw_operations_work_list AS SELECT * FROM vw_entities;
2
+ -- Full work summary retains historical activity coverage for internal
3
+ -- entity summaries. It is not the Kanban population.
4
+ CREATE VIEW vw_operations_work_summary AS
5
+ WITH task_lineage AS (
6
+ SELECT DISTINCT
7
+ CAST(task.value AS TEXT) AS task_id,
8
+ COALESCE(c.source_spec_id, CASE WHEN c.source_type='spec' THEN c.source_id END) AS spec_id,
9
+ COALESCE(c.source_prd_id, CASE WHEN c.source_type='prd' THEN c.source_id END) AS prd_id
10
+ FROM canonical_changes c, json_each(c.task_ids_json) AS task
11
+ ), lineage_cardinality AS (
12
+ -- Parent creation Runs are not observed Task Runs. They can be
13
+ -- displayed on a child only when exactly one canonical Task owns
14
+ -- that lineage, preventing a shared macro total from being copied
15
+ -- into sibling cards.
16
+ SELECT spec_id, prd_id, COUNT(*) AS task_count
17
+ FROM task_lineage
18
+ GROUP BY spec_id, prd_id
19
+ ), entity_activity AS (
20
+ SELECT 'task' AS entity_kind, task_id AS entity_id, * FROM activities WHERE task_id IS NOT NULL
21
+ UNION ALL SELECT 'spec', spec_id, * FROM macro_spec_activities
22
+ UNION ALL SELECT 'prd', prd_id, * FROM activities WHERE prd_id IS NOT NULL
23
+ UNION ALL
24
+ SELECT 'task', l.task_id, a.*
25
+ FROM task_lineage l
26
+ JOIN lineage_cardinality cardinality
27
+ ON cardinality.spec_id IS l.spec_id AND cardinality.prd_id IS l.prd_id
28
+ JOIN activities a
29
+ ON a.task_id IS NULL
30
+ AND (
31
+ (l.spec_id IS NOT NULL AND a.spec_id = l.spec_id)
32
+ OR (
33
+ l.spec_id IS NULL
34
+ AND l.prd_id IS NOT NULL
35
+ AND a.spec_id IS NULL
36
+ AND a.prd_id = l.prd_id
37
+ )
38
+ )
39
+ WHERE cardinality.task_count = 1
40
+ AND NOT EXISTS (SELECT 1 FROM activities direct WHERE direct.task_id = l.task_id)
41
+ ), financial AS (
42
+ SELECT entity_kind, entity_id,
43
+ COUNT(*) AS invocation_count,
44
+ SUM(llm_call_count) AS llm_call_count,
45
+ SUM(total_tokens) AS total_tokens,
46
+ SUM(cost_usd) AS total_cost_usd,
47
+ SUM(cost_brl) AS total_cost_brl
48
+ FROM entity_activity GROUP BY entity_kind, entity_id
49
+ ), durations AS (
50
+ SELECT entity_kind, entity_id, ROUND(SUM(duration_ms)) AS total_duration
51
+ FROM entity_activity GROUP BY entity_kind, entity_id
52
+ )
53
+ SELECT w.entity_kind, w.id, w.title, w.status, w.risk, w.occurred_at, w.occurred_day_sp,
54
+ f.invocation_count, f.llm_call_count, d.total_duration,
55
+ f.total_tokens, f.total_cost_usd, f.total_cost_brl
56
+ FROM work_items w
57
+ LEFT JOIN financial f ON f.entity_kind=w.entity_kind AND f.entity_id=w.id
58
+ LEFT JOIN durations d ON d.entity_kind=w.entity_kind AND d.entity_id=w.id;
59
+ -- Kanban is a lifecycle surface: it lists only canonical records.
60
+ -- Telemetry-only identifiers remain Cost Monitor facts but cannot
61
+ -- create a synthetic operational card.
62
+ CREATE VIEW vw_operations_work_kanban AS
63
+ SELECT summary.*
64
+ FROM canonical_work_items canonical
65
+ JOIN vw_operations_work_summary summary
66
+ ON summary.entity_kind=canonical.entity_kind AND summary.id=canonical.id;
67
+ CREATE VIEW vw_operations_executions AS
68
+ WITH metrics AS (
69
+ SELECT i.execution_id,
70
+ CASE COUNT(DISTINCT t.risk) WHEN 0 THEN NULL WHEN 1 THEN MIN(t.risk) ELSE 'mixed' END AS risk,
71
+ MIN(i.occurred_at) AS telemetry_started_at,
72
+ SUM(i.llm_call_count) AS llm_call_count,
73
+ SUM(i.duration_ms) AS duration_ms,
74
+ CASE WHEN COUNT(i.duration_ms) > 0 THEN 'observed' ELSE 'unavailable' END AS duration_provenance,
75
+ SUM(i.total_tokens) AS total_tokens,
76
+ SUM(i.cost_brl) AS total_cost_brl,
77
+ COUNT(*) AS invocation_count
78
+ FROM invocations i LEFT JOIN tasks t ON t.id=i.task_id
79
+ WHERE i.execution_id IS NOT NULL GROUP BY i.execution_id
80
+ )
81
+ SELECT c.id AS execution_id, c.status, m.risk,
82
+ c.created_at AS started_at, c.finished_at,
83
+ c.kind AS execution_kind, c.origin_type,
84
+ CASE WHEN c.origin_type='task' THEN c.origin_id END AS task_id,
85
+ CASE WHEN c.origin_type='interaction' THEN c.origin_id END AS conversation_id,
86
+ m.llm_call_count, m.duration_ms, COALESCE(m.duration_provenance, 'unavailable') AS duration_provenance,
87
+ CASE WHEN c.status IN ('completed', 'failed', 'cancelled') AND c.finished_at IS NOT NULL THEN MAX(0, CAST((julianday(c.finished_at) - julianday(c.created_at)) * 86400000 AS INTEGER)) ELSE NULL END AS lifecycle_elapsed_ms,
88
+ m.total_tokens, m.total_cost_brl,
89
+ COALESCE(m.invocation_count, 0) AS invocation_count,
90
+ c.source_path
91
+ FROM canonical_executions c LEFT JOIN metrics m ON m.execution_id=c.id
92
+ UNION ALL
93
+ SELECT i.execution_id, MAX(i.status),
94
+ CASE COUNT(DISTINCT t.risk) WHEN 0 THEN NULL WHEN 1 THEN MIN(t.risk) ELSE 'mixed' END,
95
+ MIN(i.occurred_at), MAX(i.occurred_at), NULL, NULL, MAX(i.task_id), MAX(i.conversation_id),
96
+ SUM(i.llm_call_count), SUM(i.duration_ms), CASE WHEN COUNT(i.duration_ms) > 0 THEN 'observed' ELSE 'unavailable' END, NULL, SUM(i.total_tokens), SUM(i.cost_brl), COUNT(*), NULL
97
+ FROM invocations i LEFT JOIN tasks t ON t.id=i.task_id
98
+ WHERE i.execution_id IS NOT NULL
99
+ AND NOT EXISTS (SELECT 1 FROM canonical_executions c WHERE c.id=i.execution_id)
100
+ GROUP BY i.execution_id;
101
+ CREATE VIEW vw_operations_agent_invocations AS
102
+ SELECT c.*,
103
+ date(COALESCE(c.source_started_at, c.source_occurred_at, c.occurred_at), '-3 hours') AS source_day_sp,
104
+ t.risk
105
+ FROM vw_cost_agent_invocations c LEFT JOIN tasks t ON t.id=c.task_id;
106
+ CREATE VIEW vw_operations_conversations AS
107
+ SELECT i.conversation_id, c.status,
108
+ CASE COUNT(DISTINCT t.risk) WHEN 0 THEN NULL WHEN 1 THEN MIN(t.risk) ELSE 'mixed' END AS risk,
109
+ MIN(i.occurred_at) AS started_at, MAX(i.occurred_at) AS finished_at,
110
+ SUM(i.llm_call_count) AS llm_call_count, SUM(i.duration_ms) AS total_duration,
111
+ CASE WHEN COUNT(i.duration_ms) > 0 THEN 'observed' ELSE 'unavailable' END AS duration_provenance,
112
+ SUM(i.total_tokens) AS total_tokens, SUM(i.cost_brl) AS total_cost_brl,
113
+ GROUP_CONCAT(DISTINCT CASE WHEN i.model IS NULL OR trim(i.model) = '' OR lower(i.model) = 'unknown' THEN NULL ELSE i.model END) AS model,
114
+ GROUP_CONCAT(DISTINCT CASE WHEN i.reasoning_effort IS NULL OR trim(i.reasoning_effort) = '' OR lower(i.reasoning_effort) = 'unknown' THEN NULL ELSE i.reasoning_effort END) AS reasoning_effort,
115
+ COUNT(*) AS invocation_count
116
+ FROM invocations i LEFT JOIN conversations c ON c.id=i.conversation_id LEFT JOIN tasks t ON t.id=i.task_id
117
+ WHERE i.conversation_id IS NOT NULL GROUP BY i.conversation_id, c.status
118
+ UNION ALL
119
+ SELECT c.id, c.status, NULL, c.occurred_at, NULL, NULL, NULL, 'unavailable', NULL, NULL, NULL, NULL, 0
120
+ FROM conversations c
121
+ WHERE NOT EXISTS (SELECT 1 FROM invocations i WHERE i.conversation_id=c.id);
122
+ CREATE VIEW vw_operations_decisions AS SELECT * FROM decisions;
123
+ CREATE VIEW vw_operations_changes AS SELECT * FROM changes;
124
+ CREATE VIEW vw_operations_daily AS SELECT period_key AS day, * FROM operations_overview WHERE period_kind = 'day';
125
+ CREATE VIEW vw_operations_monthly AS SELECT * FROM operations_overview WHERE period_kind = 'month';
126
+ CREATE VIEW vw_operations_annual AS SELECT * FROM operations_overview WHERE period_kind = 'year';
127
+ CREATE VIEW vw_first_fold_overview AS SELECT * FROM vw_overview_daily;
128
+ CREATE VIEW vw_first_fold_task_status AS SELECT * FROM vw_task_status_daily;
129
+ CREATE VIEW vw_first_fold_task_risk AS SELECT * FROM vw_task_risk_daily;
130
+ CREATE VIEW vw_first_fold_top_tasks AS SELECT t.*, c.total_duration, c.total_tokens, c.total_cost_usd, c.total_cost_brl FROM task_summary t LEFT JOIN (SELECT task_id, SUM(llm_call_count) AS llm_call_count, SUM(duration_ms) AS total_duration, SUM(total_tokens) AS total_tokens, SUM(cost_usd) AS total_cost_usd, SUM(cost_brl) AS total_cost_brl FROM invocations GROUP BY task_id) c ON c.task_id = t.id ORDER BY c.total_duration DESC;
131
+ CREATE VIEW vw_first_fold_overview_all_time AS
132
+ WITH totals AS (
133
+ SELECT MIN(day) AS start_day, MAX(day) AS end_day,
134
+ SUM(total_run_count) AS total_run_count,
135
+ SUM(invocation_count) AS agent_invocation_count,
136
+ SUM(llm_call_count) AS llm_call_count,
137
+ ROUND(SUM(total_duration)) AS total_duration_ms,
138
+ SUM(total_tokens) AS total_tokens,
139
+ SUM(total_cost_usd) AS total_cost_usd,
140
+ SUM(total_cost_brl) AS total_cost_brl,
141
+ SUM(CASE WHEN total_duration IS NOT NULL THEN 1 ELSE 0 END) AS execution_day_count
142
+ FROM daily_aggregates
143
+ ), task_totals AS (
144
+ SELECT COUNT(*) AS task_count,
145
+ SUM(CASE WHEN status='completed' THEN 1 ELSE 0 END) AS completed_task_count,
146
+ MAX(occurred_at) AS latest_task_created_at
147
+ FROM task_summary
148
+ ), spec_totals AS (
149
+ SELECT COUNT(*) AS spec_count,
150
+ SUM(CASE WHEN status IN ('completed','delivered') THEN 1 ELSE 0 END) AS completed_spec_count
151
+ FROM spec_summary
152
+ ), prd_totals AS (
153
+ SELECT COUNT(*) AS prd_count,
154
+ SUM(CASE WHEN status IN ('completed','delivered') THEN 1 ELSE 0 END) AS completed_prd_count
155
+ FROM prd_summary
156
+ )
157
+ SELECT 'all' AS period_key, totals.start_day, totals.end_day,
158
+ task_totals.task_count, task_totals.completed_task_count,
159
+ spec_totals.spec_count, spec_totals.completed_spec_count,
160
+ prd_totals.prd_count, prd_totals.completed_prd_count,
161
+ totals.total_run_count, totals.agent_invocation_count, totals.llm_call_count,
162
+ totals.total_duration_ms, totals.total_tokens,
163
+ totals.total_cost_usd, totals.total_cost_brl, totals.execution_day_count,
164
+ task_totals.latest_task_created_at
165
+ FROM totals CROSS JOIN task_totals CROSS JOIN spec_totals CROSS JOIN prd_totals;
166
+ CREATE VIEW vw_first_fold_task_status_all_time AS
167
+ WITH counts AS (
168
+ SELECT COALESCE(status, 'draft') AS status, COUNT(*) AS task_count
169
+ FROM task_summary GROUP BY COALESCE(status, 'draft')
170
+ ), total AS (SELECT SUM(task_count) AS task_count FROM counts)
171
+ SELECT counts.status, counts.task_count,
172
+ CASE WHEN total.task_count = 0 THEN 0.0 ELSE CAST(counts.task_count AS REAL) / total.task_count END AS task_percentage
173
+ FROM counts CROSS JOIN total;
174
+ CREATE VIEW vw_first_fold_task_risk_all_time AS
175
+ WITH counts AS (
176
+ SELECT COALESCE(risk, 'standard') AS risk, COUNT(*) AS task_count
177
+ FROM task_summary WHERE COALESCE(status, 'draft') <> 'draft'
178
+ GROUP BY COALESCE(risk, 'standard')
179
+ ), total AS (SELECT SUM(task_count) AS task_count FROM counts)
180
+ SELECT counts.risk, counts.task_count,
181
+ CASE WHEN total.task_count = 0 THEN 0.0 ELSE CAST(counts.task_count AS REAL) / total.task_count END AS task_percentage
182
+ FROM counts CROSS JOIN total;
183
+ CREATE VIEW vw_first_fold_task_metrics_all_time AS
184
+ SELECT overview.task_count,
185
+ CASE WHEN overview.task_count = 0 OR overview.total_duration_ms IS NULL THEN NULL ELSE overview.total_duration_ms / overview.task_count END AS average_duration_ms_per_task,
186
+ CASE WHEN overview.task_count = 0 OR overview.total_tokens IS NULL THEN NULL ELSE overview.total_tokens / overview.task_count END AS average_tokens_per_task,
187
+ CASE WHEN overview.task_count = 0 OR overview.total_cost_usd IS NULL THEN NULL ELSE overview.total_cost_usd / overview.task_count END AS average_cost_usd_per_task,
188
+ CASE WHEN overview.task_count = 0 OR overview.total_cost_brl IS NULL THEN NULL ELSE overview.total_cost_brl / overview.task_count END AS average_cost_brl_per_task,
189
+ overview.latest_task_created_at
190
+ FROM vw_first_fold_overview_all_time overview;
191
+ CREATE VIEW vw_first_fold_spec_status_all_time AS
192
+ WITH counts AS (
193
+ SELECT CASE
194
+ WHEN status='cancelled' THEN 'cancelled'
195
+ WHEN status='failed' THEN 'failed'
196
+ WHEN status='blocked' THEN 'blocked'
197
+ WHEN status IN ('delivered','completed') THEN 'completed'
198
+ WHEN status='ready' THEN 'ready'
199
+ WHEN status='draft' THEN 'planning'
200
+ WHEN status='verifying' THEN 'verifying'
201
+ WHEN status IN ('active','executing') THEN 'executing'
202
+ ELSE 'planning'
203
+ END AS stage, COUNT(*) AS entity_count
204
+ FROM spec_summary GROUP BY stage
205
+ ), total AS (SELECT SUM(entity_count) AS entity_count FROM counts)
206
+ SELECT counts.stage, counts.entity_count,
207
+ CASE WHEN total.entity_count=0 THEN 0.0 ELSE CAST(counts.entity_count AS REAL)/total.entity_count END AS entity_percentage
208
+ FROM counts CROSS JOIN total;
209
+ CREATE VIEW vw_first_fold_prd_status_all_time AS
210
+ WITH counts AS (
211
+ SELECT CASE
212
+ WHEN status='cancelled' THEN 'cancelled'
213
+ WHEN status='failed' THEN 'failed'
214
+ WHEN status='blocked' THEN 'blocked'
215
+ WHEN status IN ('delivered','completed') THEN 'completed'
216
+ WHEN status='ready' THEN 'ready'
217
+ WHEN status='draft' THEN 'definition'
218
+ WHEN status='verifying' THEN 'verifying'
219
+ WHEN status IN ('active','executing') THEN 'executing'
220
+ ELSE 'definition'
221
+ END AS stage, COUNT(*) AS entity_count
222
+ FROM prd_summary GROUP BY stage
223
+ ), total AS (SELECT SUM(entity_count) AS entity_count FROM counts)
224
+ SELECT counts.stage, counts.entity_count,
225
+ CASE WHEN total.entity_count=0 THEN 0.0 ELSE CAST(counts.entity_count AS REAL)/total.entity_count END AS entity_percentage
226
+ FROM counts CROSS JOIN total;
227
+ CREATE VIEW vw_first_fold_spec_classification_all_time AS
228
+ WITH rollup AS (
229
+ SELECT s.id, COUNT(DISTINCT a.task_id) AS task_count,
230
+ SUM(CASE WHEN a.work_type='rework' AND a.run_role='root' THEN 1 ELSE 0 END) AS rework_run_count
231
+ FROM spec_summary s LEFT JOIN activities a ON a.spec_id=s.id GROUP BY s.id
232
+ ), counts AS (
233
+ SELECT CASE WHEN rework_run_count>0 THEN 'rework' WHEN task_count>0 THEN 'structured' ELSE 'empty' END AS classification,
234
+ COUNT(*) AS entity_count
235
+ FROM rollup GROUP BY classification
236
+ ), total AS (SELECT SUM(entity_count) AS entity_count FROM counts)
237
+ SELECT counts.classification, counts.entity_count,
238
+ CASE WHEN total.entity_count=0 THEN 0.0 ELSE CAST(counts.entity_count AS REAL)/total.entity_count END AS entity_percentage
239
+ FROM counts CROSS JOIN total;
240
+ CREATE VIEW vw_first_fold_prd_classification_all_time AS
241
+ WITH rollup AS (
242
+ SELECT p.id, COUNT(DISTINCT a.task_id) AS task_count,
243
+ SUM(CASE WHEN a.work_type='rework' AND a.run_role='root' THEN 1 ELSE 0 END) AS rework_run_count
244
+ FROM prd_summary p LEFT JOIN activities a ON a.prd_id=p.id GROUP BY p.id
245
+ ), counts AS (
246
+ SELECT CASE WHEN rework_run_count>0 THEN 'rework' WHEN task_count>0 THEN 'structured' ELSE 'empty' END AS classification,
247
+ COUNT(*) AS entity_count
248
+ FROM rollup GROUP BY classification
249
+ ), total AS (SELECT SUM(entity_count) AS entity_count FROM counts)
250
+ SELECT counts.classification, counts.entity_count,
251
+ CASE WHEN total.entity_count=0 THEN 0.0 ELSE CAST(counts.entity_count AS REAL)/total.entity_count END AS entity_percentage
252
+ FROM counts CROSS JOIN total;
253
+ CREATE VIEW vw_first_fold_spec_metrics_all_time AS
254
+ WITH usage AS (
255
+ SELECT spec_id,
256
+ COUNT(*) AS total_run_count,
257
+ ROUND(SUM(duration_ms)) AS total_duration_ms,
258
+ SUM(total_tokens) AS total_tokens,
259
+ SUM(cost_usd) AS total_cost_usd,
260
+ SUM(cost_brl) AS total_cost_brl
261
+ FROM macro_spec_activities GROUP BY spec_id
262
+ )
263
+ SELECT COUNT(*) AS entity_count,
264
+ SUM(usage.total_run_count) AS total_run_count,
265
+ SUM(usage.total_duration_ms) AS total_duration_ms,
266
+ SUM(usage.total_tokens) AS total_tokens,
267
+ SUM(usage.total_cost_usd) AS total_cost_usd,
268
+ SUM(usage.total_cost_brl) AS total_cost_brl,
269
+ CASE WHEN COUNT(*)=0 THEN NULL ELSE SUM(usage.total_duration_ms)/COUNT(*) END AS average_duration_ms,
270
+ CASE WHEN COUNT(*)=0 THEN NULL ELSE SUM(usage.total_tokens)/COUNT(*) END AS average_tokens,
271
+ CASE WHEN COUNT(*)=0 THEN NULL ELSE SUM(usage.total_cost_usd)/COUNT(*) END AS average_cost_usd,
272
+ CASE WHEN COUNT(*)=0 THEN NULL ELSE SUM(usage.total_cost_brl)/COUNT(*) END AS average_cost_brl,
273
+ MAX(s.occurred_at) AS latest_created_at
274
+ FROM spec_summary s LEFT JOIN usage ON usage.spec_id=s.id;
275
+ CREATE VIEW vw_first_fold_prd_metrics_all_time AS
276
+ WITH usage AS (
277
+ SELECT prd_id,
278
+ COUNT(*) AS total_run_count,
279
+ ROUND(SUM(duration_ms)) AS total_duration_ms,
280
+ SUM(total_tokens) AS total_tokens,
281
+ SUM(cost_usd) AS total_cost_usd,
282
+ SUM(cost_brl) AS total_cost_brl
283
+ FROM activities WHERE prd_id IS NOT NULL GROUP BY prd_id
284
+ )
285
+ SELECT COUNT(*) AS entity_count,
286
+ SUM(usage.total_run_count) AS total_run_count,
287
+ SUM(usage.total_duration_ms) AS total_duration_ms,
288
+ SUM(usage.total_tokens) AS total_tokens,
289
+ SUM(usage.total_cost_usd) AS total_cost_usd,
290
+ SUM(usage.total_cost_brl) AS total_cost_brl,
291
+ CASE WHEN COUNT(*)=0 THEN NULL ELSE SUM(usage.total_duration_ms)/COUNT(*) END AS average_duration_ms,
292
+ CASE WHEN COUNT(*)=0 THEN NULL ELSE SUM(usage.total_tokens)/COUNT(*) END AS average_tokens,
293
+ CASE WHEN COUNT(*)=0 THEN NULL ELSE SUM(usage.total_cost_usd)/COUNT(*) END AS average_cost_usd,
294
+ CASE WHEN COUNT(*)=0 THEN NULL ELSE SUM(usage.total_cost_brl)/COUNT(*) END AS average_cost_brl,
295
+ MAX(p.occurred_at) AS latest_created_at
296
+ FROM prd_summary p LEFT JOIN usage ON usage.prd_id=p.id;
297
+ CREATE VIEW vw_first_fold_top_specs_all_time AS
298
+ WITH usage AS (
299
+ SELECT spec_id,
300
+ COUNT(*) AS total_run_count,
301
+ SUM(llm_call_count) AS llm_call_count,
302
+ ROUND(SUM(duration_ms)) AS total_duration_ms,
303
+ SUM(total_tokens) AS total_tokens,
304
+ SUM(cost_usd) AS total_cost_usd,
305
+ SUM(cost_brl) AS total_cost_brl
306
+ FROM macro_spec_activities GROUP BY spec_id
307
+ ), ranked AS (
308
+ SELECT s.id AS entity_id, s.title, s.status, usage.total_run_count, usage.llm_call_count,
309
+ usage.total_duration_ms, usage.total_tokens, usage.total_cost_usd, usage.total_cost_brl,
310
+ ROW_NUMBER() OVER (ORDER BY usage.total_duration_ms IS NOT NULL DESC, usage.total_duration_ms DESC, usage.total_run_count DESC, s.id) AS rank
311
+ FROM spec_summary s LEFT JOIN usage ON usage.spec_id=s.id
312
+ ), total AS (SELECT SUM(total_duration_ms) AS total_duration_ms FROM ranked)
313
+ SELECT ranked.rank, ranked.entity_id, ranked.title, ranked.status,
314
+ COALESCE(ranked.total_run_count,0) AS total_run_count, ranked.llm_call_count,
315
+ ranked.total_duration_ms, ranked.total_tokens, ranked.total_cost_usd, ranked.total_cost_brl,
316
+ CASE WHEN total.total_duration_ms IS NULL OR total.total_duration_ms=0 OR ranked.total_duration_ms IS NULL THEN 0.0 ELSE ranked.total_duration_ms/total.total_duration_ms END AS duration_share
317
+ FROM ranked CROSS JOIN total WHERE ranked.rank<=5 ORDER BY ranked.rank;
318
+ CREATE VIEW vw_first_fold_top_prds_all_time AS
319
+ WITH usage AS (
320
+ SELECT prd_id,
321
+ COUNT(*) AS total_run_count,
322
+ SUM(llm_call_count) AS llm_call_count,
323
+ ROUND(SUM(duration_ms)) AS total_duration_ms,
324
+ SUM(total_tokens) AS total_tokens,
325
+ SUM(cost_usd) AS total_cost_usd,
326
+ SUM(cost_brl) AS total_cost_brl
327
+ FROM activities WHERE prd_id IS NOT NULL GROUP BY prd_id
328
+ ), ranked AS (
329
+ SELECT p.id AS entity_id, p.title, p.status, usage.total_run_count, usage.llm_call_count,
330
+ usage.total_duration_ms, usage.total_tokens, usage.total_cost_usd, usage.total_cost_brl,
331
+ ROW_NUMBER() OVER (ORDER BY usage.total_duration_ms IS NOT NULL DESC, usage.total_duration_ms DESC, usage.total_run_count DESC, p.id) AS rank
332
+ FROM prd_summary p LEFT JOIN usage ON usage.prd_id=p.id
333
+ ), total AS (SELECT SUM(total_duration_ms) AS total_duration_ms FROM ranked)
334
+ SELECT ranked.rank, ranked.entity_id, ranked.title, ranked.status,
335
+ COALESCE(ranked.total_run_count,0) AS total_run_count, ranked.llm_call_count,
336
+ ranked.total_duration_ms, ranked.total_tokens, ranked.total_cost_usd, ranked.total_cost_brl,
337
+ CASE WHEN total.total_duration_ms IS NULL OR total.total_duration_ms=0 OR ranked.total_duration_ms IS NULL THEN 0.0 ELSE ranked.total_duration_ms/total.total_duration_ms END AS duration_share
338
+ FROM ranked CROSS JOIN total WHERE ranked.rank<=5 ORDER BY ranked.rank;
339
+ CREATE VIEW vw_first_fold_top_tasks_all_time AS
340
+ WITH duration AS (
341
+ SELECT a.task_id, ROUND(SUM(f.attributed_token_active_ms)) AS total_duration_ms
342
+ FROM attributed_token_active_facts f JOIN zaip_aios_activities a USING(activity_row_id)
343
+ WHERE a.task_id IS NOT NULL AND a.phase='execution' GROUP BY a.task_id
344
+ ), usage AS (
345
+ SELECT task_id, COUNT(*) AS total_run_count, SUM(llm_call_count) AS llm_call_count,
346
+ SUM(total_tokens) AS total_tokens, SUM(cost_usd) AS total_cost_usd, SUM(cost_brl) AS total_cost_brl
347
+ FROM activities WHERE task_id IS NOT NULL AND phase='execution' GROUP BY task_id
348
+ ), ranked AS (
349
+ SELECT t.id AS task_id, t.title, t.status, t.risk,
350
+ usage.total_run_count, usage.llm_call_count, duration.total_duration_ms,
351
+ usage.total_tokens, usage.total_cost_usd, usage.total_cost_brl,
352
+ ROW_NUMBER() OVER (ORDER BY duration.total_duration_ms DESC, t.id) AS rank
353
+ FROM duration JOIN task_summary t ON t.id=duration.task_id
354
+ LEFT JOIN usage ON usage.task_id=duration.task_id
355
+ ), total AS (SELECT SUM(total_duration_ms) AS total_duration_ms FROM ranked)
356
+ SELECT ranked.rank, ranked.task_id, ranked.title, ranked.status, ranked.risk,
357
+ ranked.total_run_count, ranked.llm_call_count, ranked.total_duration_ms,
358
+ ranked.total_tokens, ranked.total_cost_usd, ranked.total_cost_brl,
359
+ CASE WHEN total.total_duration_ms IS NULL OR total.total_duration_ms = 0 THEN 0.0 ELSE ranked.total_duration_ms / total.total_duration_ms END AS duration_share
360
+ FROM ranked CROSS JOIN total WHERE ranked.rank <= 5 ORDER BY ranked.rank;
361
+ CREATE VIEW vw_first_fold_task_summary AS SELECT * FROM vw_task_summary;
362
+ CREATE VIEW vw_first_fold_spec_summary AS SELECT * FROM vw_spec_summary;
363
+ CREATE VIEW vw_first_fold_prd_summary AS SELECT * FROM vw_prd_summary;
364
+ CREATE VIEW cost_monitor_daily AS SELECT * FROM vw_cost_daily;
365
+ CREATE VIEW cost_monitor_monthly AS SELECT * FROM vw_cost_monthly;
366
+ CREATE VIEW cost_monitor_annual AS SELECT * FROM vw_cost_annual;
367
+ CREATE VIEW cost_monitor_overview_view AS SELECT * FROM vw_cost_overview;
368
+ CREATE VIEW cost_monitor_executions AS SELECT * FROM vw_cost_executions;
369
+ CREATE VIEW cost_monitor_agent_invocations AS SELECT * FROM vw_cost_agent_invocations;
370
+ CREATE VIEW cost_monitor_zaip_agents AS SELECT * FROM vw_cost_zaip_agents;
371
+ CREATE VIEW cost_monitor_models AS SELECT * FROM vw_cost_models;
372
+ CREATE VIEW cost_monitor_providers AS SELECT * FROM vw_cost_providers;
373
+ CREATE VIEW cost_monitor_tasks AS SELECT * FROM vw_cost_tasks;
374
+ CREATE VIEW cost_monitor_specs AS SELECT * FROM vw_cost_specs;
375
+ CREATE VIEW cost_monitor_prds AS SELECT * FROM vw_cost_prds;
376
+ CREATE VIEW cost_monitor_conversations AS SELECT * FROM vw_cost_conversations;
377
+ CREATE VIEW operations_work_list AS SELECT * FROM vw_operations_work_list;
378
+ CREATE VIEW operations_work_summary AS SELECT * FROM vw_operations_work_summary;
379
+ CREATE VIEW operations_work_kanban AS SELECT * FROM vw_operations_work_kanban;
380
+ CREATE VIEW operations_executions AS SELECT * FROM vw_operations_executions;
381
+ CREATE VIEW operations_agent_invocations AS SELECT * FROM vw_operations_agent_invocations;
382
+ CREATE VIEW operations_conversations AS SELECT * FROM vw_operations_conversations;
383
+ CREATE VIEW operations_decisions AS SELECT * FROM vw_operations_decisions;
384
+ CREATE VIEW operations_changes AS SELECT * FROM vw_operations_changes;
385
+ CREATE VIEW operations_daily AS SELECT * FROM vw_operations_daily;
386
+ CREATE VIEW operations_monthly AS SELECT * FROM vw_operations_monthly;
387
+ CREATE VIEW operations_annual AS SELECT * FROM vw_operations_annual;
388
+ CREATE VIEW first_fold_overview AS SELECT * FROM vw_first_fold_overview;
389
+ CREATE VIEW first_fold_task_status AS SELECT * FROM vw_first_fold_task_status;
390
+ CREATE VIEW first_fold_task_risk AS SELECT * FROM vw_first_fold_task_risk;
391
+ CREATE VIEW first_fold_top_tasks AS SELECT * FROM vw_first_fold_top_tasks;
392
+ CREATE VIEW first_fold_overview_all_time AS SELECT * FROM vw_first_fold_overview_all_time;
393
+ CREATE VIEW first_fold_task_status_all_time AS SELECT * FROM vw_first_fold_task_status_all_time;
394
+ CREATE VIEW first_fold_task_risk_all_time AS SELECT * FROM vw_first_fold_task_risk_all_time;
395
+ CREATE VIEW first_fold_task_metrics_all_time AS SELECT * FROM vw_first_fold_task_metrics_all_time;
396
+ CREATE VIEW first_fold_top_tasks_all_time AS SELECT * FROM vw_first_fold_top_tasks_all_time;
397
+ CREATE VIEW first_fold_spec_status_all_time AS SELECT * FROM vw_first_fold_spec_status_all_time;
398
+ CREATE VIEW first_fold_spec_classification_all_time AS SELECT * FROM vw_first_fold_spec_classification_all_time;
399
+ CREATE VIEW first_fold_spec_metrics_all_time AS SELECT * FROM vw_first_fold_spec_metrics_all_time;
400
+ CREATE VIEW first_fold_top_specs_all_time AS SELECT * FROM vw_first_fold_top_specs_all_time;
401
+ CREATE VIEW first_fold_prd_status_all_time AS SELECT * FROM vw_first_fold_prd_status_all_time;
402
+ CREATE VIEW first_fold_prd_classification_all_time AS SELECT * FROM vw_first_fold_prd_classification_all_time;
403
+ CREATE VIEW first_fold_prd_metrics_all_time AS SELECT * FROM vw_first_fold_prd_metrics_all_time;
404
+ CREATE VIEW first_fold_top_prds_all_time AS SELECT * FROM vw_first_fold_top_prds_all_time;
405
+ CREATE VIEW first_fold_task AS SELECT * FROM vw_first_fold_task_summary;
406
+ CREATE VIEW first_fold_spec AS SELECT * FROM vw_first_fold_spec_summary;
407
+ CREATE VIEW first_fold_prd AS SELECT * FROM vw_first_fold_prd_summary;
408
+ CREATE VIEW task_summary_daily AS SELECT * FROM vw_task_summary_daily;
409
+ CREATE VIEW spec_summary_daily AS SELECT * FROM vw_spec_summary_daily;
410
+ CREATE VIEW prd_summary_daily AS SELECT * FROM vw_prd_summary_daily;
411
+ CREATE VIEW task_status_daily AS SELECT * FROM vw_task_status_daily;
412
+ CREATE VIEW task_risk_daily AS SELECT * FROM vw_task_risk_daily;
413
+ `;
@@ -13,6 +13,7 @@ import {
13
13
  const roots: string[] = [];
14
14
 
15
15
  afterEach(async () => {
16
+ vi.restoreAllMocks();
16
17
  await Promise.all(roots.splice(0).map((root) => rm(root, { recursive: true, force: true })));
17
18
  });
18
19
 
@@ -60,6 +61,7 @@ describe("SQLite snapshot seed publication", () => {
60
61
  await mkdir(join(root, ".agents", "config"), { recursive: true });
61
62
  await writeFile(join(root, ".agents", "config", "project.yaml"), "zaip:\n enabled: true\n");
62
63
  const destination = join(root, ".local", "dashboard-sqlite", "read-model.sqlite");
64
+ vi.spyOn(Date, "now").mockReturnValue(Date.now() + 5_000);
63
65
  vi.stubEnv("ZAIP_SQLITE_DB_PATH", destination);
64
66
  try {
65
67
  await expect(rebuildSqliteReadModel(root)).resolves.toMatchObject({ cache: "rebuilt" });
@@ -0,0 +1,57 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { dirname, resolve } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { stripVTControlCharacters } from "node:util";
6
+
7
+ const here = dirname(fileURLToPath(import.meta.url));
8
+ const root = resolve(here, "../../../../..");
9
+ const prefix = ".agents/dashboard/packages/local-runtime/src/";
10
+ const mode = process.argv[2];
11
+ if (!["test", "integration", "check"].includes(mode))
12
+ throw new Error("Expected test|integration|check");
13
+ if (!existsSync(resolve(root, "node_modules/vitest/vitest.mjs"))) {
14
+ if (spawnSync("git", ["symbolic-ref", "-q", "HEAD"], { cwd: root }).status !== 1)
15
+ throw new Error("Prepare dependencies in the Task checkout first");
16
+ const pnpm = resolve(dirname(process.execPath), "node_modules/corepack/dist/pnpm.js");
17
+ execute([pnpm, "install", "--offline", "--frozen-lockfile", "--ignore-scripts"], 300_000);
18
+ }
19
+ function execute(args, timeout = 120_000) {
20
+ const result = spawnSync(process.execPath, args, {
21
+ cwd: root,
22
+ encoding: "utf8",
23
+ windowsHide: true,
24
+ timeout,
25
+ maxBuffer: 4_000_000,
26
+ });
27
+ const output = stripVTControlCharacters((result.stdout ?? "") + "\n" + (result.stderr ?? ""));
28
+ if (result.status !== 0) {
29
+ process.stderr.write(output);
30
+ throw new Error("Settings validation failed: " + (result.error?.message ?? result.status));
31
+ }
32
+ return output;
33
+ }
34
+ if (mode === "check") {
35
+ execute([
36
+ "node_modules/typescript/bin/tsc",
37
+ "--noEmit",
38
+ "--project",
39
+ ".agents/dashboard/packages/local-runtime/tsconfig.json",
40
+ ]);
41
+ console.log(JSON.stringify({ kind: "settings_typecheck", passed: true, mode }));
42
+ } else {
43
+ const file =
44
+ mode === "test" ? "project-installation-summary.test.ts" : "project-settings.test.ts";
45
+ const output = execute([
46
+ "node_modules/vitest/vitest.mjs",
47
+ "run",
48
+ prefix + file,
49
+ "--maxWorkers=1",
50
+ ]);
51
+ const tests = output
52
+ .split("\n")
53
+ .find((line) => /^\s*Tests\s/.test(line))
54
+ ?.trim();
55
+ if (!tests || !/\b[1-9]\d* passed\b/.test(tests)) throw new Error("No settings tests executed");
56
+ console.log(JSON.stringify({ kind: "settings_" + mode, passed: true, mode, tests, output }));
57
+ }
@@ -15,9 +15,10 @@ describe("work priority API contract", () => {
15
15
  });
16
16
 
17
17
  it("writes priority without building a projection, while reads discard stale IDs", () => {
18
- const route = source.slice(
19
- source.indexOf("app.put(`${API_PREFIX}/work-priority`"),
20
- source.indexOf('app.on(["GET", "HEAD"], `${API_PREFIX}/snapshot`'),
18
+ const routes = readFileSync(new URL("server-operations-routes.ts", import.meta.url), "utf8");
19
+ const route = routes.slice(
20
+ routes.indexOf("app.put(`${API_PREFIX}/work-priority`"),
21
+ routes.indexOf('app.on(["GET", "HEAD"], `${API_PREFIX}/board`'),
21
22
  );
22
23
  expect(route).not.toContain("buildCanonicalOperationsProjection");
23
24
  expect(route).not.toContain("knownWorkIds(");