@zaip-ai/cli 1.0.8 → 1.3.1

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 (360) hide show
  1. package/README.md +1 -1
  2. package/dist/services/adapters.d.ts +1 -1
  3. package/dist/services/adapters.js +1 -1
  4. package/dist/services/agent-adapters.js +3 -3
  5. package/dist/services/agent-adapters.js.map +1 -1
  6. package/dist/services/agent-adapters.test.js +7 -1
  7. package/dist/services/agent-adapters.test.js.map +1 -1
  8. package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
  9. package/dist/services/codex-pre-tool-hook-template.js +89 -7
  10. package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
  11. package/dist/services/codex-rules.d.ts +1 -1
  12. package/dist/services/codex-rules.d.ts.map +1 -1
  13. package/dist/services/codex-rules.js +7 -0
  14. package/dist/services/codex-rules.js.map +1 -1
  15. package/dist/services/install-agents-template.d.ts.map +1 -1
  16. package/dist/services/install-agents-template.js +1 -0
  17. package/dist/services/install-agents-template.js.map +1 -1
  18. package/dist/services/logger.test.js +2 -2
  19. package/dist/services/runtime-template.test.js +31 -7
  20. package/dist/services/runtime-template.test.js.map +1 -1
  21. package/dist/services/template-manifest.d.ts.map +1 -1
  22. package/dist/services/template-manifest.js +12 -3
  23. package/dist/services/template-manifest.js.map +1 -1
  24. package/package.json +1 -1
  25. package/templates/.agents/architecture/software-architecture.md +131 -0
  26. package/templates/.agents/branding/brandbook.docx +0 -0
  27. package/templates/.agents/branding/brandbook.md +60 -0
  28. package/templates/.agents/config/agents/catalog.yaml +7 -7
  29. package/templates/.agents/config/clients/codex/agents/zaip-agent-backend.toml +2 -2
  30. package/templates/.agents/config/clients/codex/agents/zaip-agent-designer.toml +2 -2
  31. package/templates/.agents/config/clients/codex/agents/zaip-agent-finalizer.toml +1 -1
  32. package/templates/.agents/config/clients/codex/agents/zaip-agent-frontend.toml +8 -8
  33. package/templates/.agents/config/clients/codex/agents/zaip-agent-orchestrator.toml +1 -1
  34. package/templates/.agents/dashboard/.tmp-run-list.json +254 -0
  35. package/templates/.agents/dashboard/.zaip-managed.json +457 -173
  36. package/templates/.agents/dashboard/apps/frontend/dist/assets/{CostCalculationGuidePage-Z60df2r-.js → CostCalculationGuidePage-ovxurkIk.js} +1 -1
  37. package/templates/.agents/dashboard/apps/frontend/dist/assets/DashboardHelpDialog-BgVgrfhQ.js +2310 -0
  38. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-Coc6pA-1.js → PricingSettingsDialog-vSvvOHQp.js} +1 -1
  39. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-BomxqCBU.css +1 -0
  40. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-zH758vfs.js +3 -0
  41. package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-DLn-Mz2M.js +1 -0
  42. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-CaKwQP43.css → TraceabilityWorkspace-DvvavDLY.css} +1 -1
  43. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-DKwP1stV.js +68 -0
  44. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-PoJA2PI1.css +1 -0
  45. package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-DFBuc_qp.js → icons-vendor-B_lDDHn1.js} +1 -1
  46. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-B31GMG5O.css +1 -0
  47. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-CZQlsLV9.js +2 -0
  48. package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-CCQOHdVI.js → react-vendor-B3TJrD4O.js} +1 -1
  49. package/templates/.agents/dashboard/apps/frontend/dist/assets/{traceability-pC2_0J8x.js → traceability-7f1j5wx3.js} +1 -1
  50. package/templates/.agents/dashboard/apps/frontend/dist/index.html +7 -7
  51. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  52. package/templates/.agents/dashboard/apps/frontend/playwright.dom.config.ts +32 -0
  53. package/templates/.agents/dashboard/apps/frontend/src/App.tsx +199 -140
  54. package/templates/.agents/dashboard/apps/frontend/src/AppOverlays.tsx +0 -21
  55. package/templates/.agents/dashboard/apps/frontend/src/DashboardAlternateContent.tsx +20 -11
  56. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.tsx +14 -7
  57. package/templates/.agents/dashboard/apps/frontend/src/ProjectStackEditor.tsx +4 -2
  58. package/templates/.agents/dashboard/apps/frontend/src/TraceabilityWorkspace.dom.e2e.ts +56 -0
  59. package/templates/.agents/dashboard/apps/frontend/src/TraceabilityWorkspace.test.ts +21 -2
  60. package/templates/.agents/dashboard/apps/frontend/src/TraceabilityWorkspace.tsx +89 -19
  61. package/templates/.agents/dashboard/apps/frontend/src/cost-period-refresh.test.ts +19 -4
  62. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.test.ts +49 -3
  63. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.ts +29 -10
  64. package/templates/.agents/dashboard/apps/frontend/src/operations-period-render.test.ts +4 -4
  65. package/templates/.agents/dashboard/apps/frontend/src/overview-status-page.test.ts +4 -2
  66. package/templates/.agents/dashboard/apps/frontend/src/project-settings-page.css +36 -26
  67. package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +2 -2
  68. package/templates/.agents/dashboard/apps/frontend/src/snapshot-banner-semantics.test.ts +47 -6
  69. package/templates/.agents/dashboard/apps/frontend/src/snapshot-coherence.test.ts +59 -9
  70. package/templates/.agents/dashboard/apps/frontend/src/sqlite-page-export.test.ts +32 -0
  71. package/templates/.agents/dashboard/apps/frontend/src/sqlite-page-export.ts +21 -0
  72. package/templates/.agents/dashboard/apps/frontend/src/styles.css +19 -0
  73. package/templates/.agents/dashboard/apps/frontend/src/traceability-task-pagination.test.ts +32 -0
  74. package/templates/.agents/dashboard/apps/frontend/src/traceability-task-pagination.ts +36 -0
  75. package/templates/.agents/dashboard/apps/frontend/src/traceability-workspace.css +6 -2
  76. package/templates/.agents/dashboard/apps/frontend/src/use-app-cost-loaders.test.ts +137 -23
  77. package/templates/.agents/dashboard/apps/frontend/src/use-app-cost-loaders.ts +229 -35
  78. package/templates/.agents/dashboard/apps/frontend/src/use-app-effects.ts +61 -7
  79. package/templates/.agents/dashboard/apps/frontend/src/use-app-operations-pages.ts +3 -6
  80. package/templates/.agents/dashboard/apps/frontend/src/use-app-trace-documents.ts +7 -1
  81. package/templates/.agents/dashboard/apps/frontend/src/use-app-work-list-page.test.ts +163 -0
  82. package/templates/.agents/dashboard/apps/frontend/src/use-app-work-list-page.ts +136 -0
  83. package/templates/.agents/dashboard/apps/frontend/src/use-operations-detail-export.ts +76 -0
  84. package/templates/.agents/dashboard/apps/frontend/src/work-list-load-dedup.test.ts +23 -0
  85. package/templates/.agents/dashboard/apps/frontend/src/work-list-load-dedup.ts +27 -0
  86. package/templates/.agents/dashboard/apps/frontend/src/work-list-pagination.test.ts +39 -15
  87. package/templates/.agents/dashboard/apps/frontend/src/work-list-pagination.ts +3 -4
  88. package/templates/.agents/dashboard/apps/frontend/vite.config.ts +4 -1
  89. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  90. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CompactLifecycleCostTable.test.ts +89 -19
  91. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CompactLifecycleCostTable.tsx +31 -16
  92. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostCharts.test.ts +43 -14
  93. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostCharts.tsx +5 -5
  94. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostDeveloperAttributionPanel.tsx +60 -0
  95. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostDeveloperAttributionTable.tsx +191 -0
  96. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostFilters.loading.test.ts +14 -0
  97. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostFilters.run-page.test.ts +18 -0
  98. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostFilters.tsx +18 -3
  99. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostModelsAuditTable.tsx +1 -1
  100. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorContent.tsx +75 -44
  101. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorLoadErrors.tsx +35 -0
  102. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.test.ts +162 -40
  103. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.tsx +221 -79
  104. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTableLoading.test.ts +132 -0
  105. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTableLoading.tsx +70 -0
  106. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.test.ts +203 -155
  107. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.tsx +164 -125
  108. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-copy.ts +2 -0
  109. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-views.ts +3 -1
  110. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor.css +5 -2
  111. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-page-range.ts +35 -0
  112. package/templates/.agents/dashboard/modules/cost-monitor/src/react/index.ts +2 -2
  113. package/templates/.agents/dashboard/modules/cost-monitor/src/react/period-cost-groups.ts +2 -1
  114. package/templates/.agents/dashboard/modules/cost-monitor/src/react/use-compact-cost-page.ts +32 -9
  115. package/templates/.agents/dashboard/modules/cost-monitor/src/react/use-cost-group-page.test.ts +37 -2
  116. package/templates/.agents/dashboard/modules/cost-monitor/src/react/use-cost-group-page.ts +131 -9
  117. package/templates/.agents/dashboard/modules/cost-monitor/src/react/use-cost-run-page.ts +34 -17
  118. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-monitor-projection.test.ts +0 -24
  119. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-summary-projection.test.ts +225 -424
  120. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-summary-projection.ts +24 -15
  121. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-summary-terminal-day.test.ts +6 -1
  122. package/templates/.agents/dashboard/modules/cost-monitor/src/server/source-size-cost-server/build-cost-monitor-projection-agents.test.ts +31 -0
  123. package/templates/.agents/dashboard/modules/cost-monitor/src/server/source-size-cost-server/build-cost-summary-projection-duration.test.ts +414 -0
  124. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  125. package/templates/.agents/dashboard/modules/operations/src/contracts.ts +46 -26
  126. package/templates/.agents/dashboard/modules/operations/src/react/DeveloperAttributionPanel.test.ts +54 -0
  127. package/templates/.agents/dashboard/modules/operations/src/react/DeveloperAttributionPanel.tsx +247 -0
  128. package/templates/.agents/dashboard/modules/operations/src/react/EntityTables.tsx +31 -11
  129. package/templates/.agents/dashboard/modules/operations/src/react/OperationsMainContent.tsx +39 -13
  130. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.helpers.tsx +107 -2
  131. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.macro-metrics.test.ts +55 -0
  132. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.test.ts +23 -29
  133. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.tsx +211 -184
  134. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverviewTopPanel.tsx +127 -0
  135. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPage.tsx +60 -51
  136. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPageNavigation.tsx +1 -4
  137. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPageOverview.tsx +3 -0
  138. package/templates/.agents/dashboard/modules/operations/src/react/PagedWorkList.test.tsx +43 -0
  139. package/templates/.agents/dashboard/modules/operations/src/react/PagedWorkList.tsx +181 -0
  140. package/templates/.agents/dashboard/modules/operations/src/react/PeriodSummaryTable.tsx +32 -10
  141. package/templates/.agents/dashboard/modules/operations/src/react/TaskDetailsDialog.tsx +9 -3
  142. package/templates/.agents/dashboard/modules/operations/src/react/UnifiedWorkBoard.tsx +13 -5
  143. package/templates/.agents/dashboard/modules/operations/src/react/UnifiedWorkList.test.ts +16 -6
  144. package/templates/.agents/dashboard/modules/operations/src/react/UnifiedWorkList.tsx +14 -4
  145. package/templates/.agents/dashboard/modules/operations/src/react/conversation-rows.ts +1 -2
  146. package/templates/.agents/dashboard/modules/operations/src/react/developer-identities.test.ts +18 -0
  147. package/templates/.agents/dashboard/modules/operations/src/react/developer-identities.ts +30 -0
  148. package/templates/.agents/dashboard/modules/operations/src/react/execution-metrics.ts +1 -0
  149. package/templates/.agents/dashboard/modules/operations/src/react/export/ExcelExportAction.test.ts +393 -4
  150. package/templates/.agents/dashboard/modules/operations/src/react/export/ExcelExportAction.tsx +484 -61
  151. package/templates/.agents/dashboard/modules/operations/src/react/export/export-layout.test.ts +23 -1
  152. package/templates/.agents/dashboard/modules/operations/src/react/export/xlsx-runtime-e2e.test.ts +248 -0
  153. package/templates/.agents/dashboard/modules/operations/src/react/index.ts +1 -0
  154. package/templates/.agents/dashboard/modules/operations/src/react/operation-duration.test.ts +4 -4
  155. package/templates/.agents/dashboard/modules/operations/src/react/operation-duration.ts +6 -4
  156. package/templates/.agents/dashboard/modules/operations/src/react/operations-coverage-toast.test.ts +4 -3
  157. package/templates/.agents/dashboard/modules/operations/src/react/operations-date-filters.css +1 -1
  158. package/templates/.agents/dashboard/modules/operations/src/react/operations-global-filters.test.ts +4 -1
  159. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview-period-filter.test.ts +22 -12
  160. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview.css +4 -0
  161. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview.status-cards.test.ts +1 -1
  162. package/templates/.agents/dashboard/modules/operations/src/react/operations-page-contract.ts +53 -6
  163. package/templates/.agents/dashboard/modules/operations/src/react/operations-view-order.test.ts +2 -4
  164. package/templates/.agents/dashboard/modules/operations/src/react/period-summary.test.ts +82 -6
  165. package/templates/.agents/dashboard/modules/operations/src/react/period-summary.ts +1 -0
  166. package/templates/.agents/dashboard/modules/operations/src/react/work-board-model.test.ts +2 -1
  167. package/templates/.agents/dashboard/modules/operations/src/react/work-board-model.ts +1 -1
  168. package/templates/.agents/dashboard/modules/operations/src/server/execution-relationship-counts.test.ts +19 -7
  169. package/templates/.agents/dashboard/modules/operations/src/server/execution-relationship-counts.ts +4 -1
  170. package/templates/.agents/dashboard/modules/operations/src/server/metric-coverage.ts +1 -0
  171. package/templates/.agents/dashboard/modules/operations/src/server/quick-daily-operations-projection.ts +11 -5
  172. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  173. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  174. package/templates/.agents/dashboard/packages/branding/src/index.ts +1 -1
  175. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  176. package/templates/.agents/dashboard/packages/contracts/src/index.ts +1 -0
  177. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  178. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +533 -338
  179. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +506 -311
  180. package/templates/.agents/dashboard/packages/local-runtime/gitignore.template +2 -0
  181. package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
  182. package/templates/.agents/dashboard/packages/local-runtime/scripts/build-sqlite-dashboard.mjs +15 -7
  183. package/templates/.agents/dashboard/packages/local-runtime/scripts/build-sqlite-runtime.mjs +44 -13
  184. package/templates/.agents/dashboard/packages/local-runtime/scripts/rebuild-sqlite-read-model.mjs +8 -3
  185. package/templates/.agents/dashboard/packages/local-runtime/scripts/source-size-runtime-scripts/sqlite-read-model-fixture.mjs +397 -0
  186. package/templates/.agents/dashboard/packages/local-runtime/scripts/test-sqlite-read-model.mjs +472 -145
  187. package/templates/.agents/dashboard/packages/local-runtime/scripts/test-unix-launchers.mjs +15 -3
  188. package/templates/.agents/dashboard/packages/local-runtime/scripts/validate-sqlite-read-model.mjs +141 -33
  189. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +533 -338
  190. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.test.ts +6 -2
  191. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.ts +3 -3
  192. package/templates/.agents/dashboard/packages/local-runtime/src/server-board.test.ts +89 -16
  193. package/templates/.agents/dashboard/packages/local-runtime/src/server-board.ts +33 -16
  194. package/templates/.agents/dashboard/packages/local-runtime/src/server-classification-page.test.ts +87 -0
  195. package/templates/.agents/dashboard/packages/local-runtime/src/server-period-macro-metric.test.ts +44 -0
  196. package/templates/.agents/dashboard/packages/local-runtime/src/server-period-macro-metric.ts +125 -0
  197. package/templates/.agents/dashboard/packages/local-runtime/src/server-reconciliation-refresh.test.ts +66 -0
  198. package/templates/.agents/dashboard/packages/local-runtime/src/server-request-authority.test.ts +61 -0
  199. package/templates/.agents/dashboard/packages/local-runtime/src/server-request-authority.ts +18 -0
  200. package/templates/.agents/dashboard/packages/local-runtime/src/server-run-projections.test.ts +42 -0
  201. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-refresh.ts +97 -0
  202. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot.test.ts +22 -5
  203. package/templates/.agents/dashboard/packages/local-runtime/src/server-sqlite-task-trace.ts +91 -0
  204. package/templates/.agents/dashboard/packages/local-runtime/src/server-workspace.ts +7 -3
  205. package/templates/.agents/dashboard/packages/local-runtime/src/server.test-fixtures.ts +36 -0
  206. package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +230 -132
  207. package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +224 -182
  208. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-artifact-counts.ts +28 -0
  209. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-agent-page.test.ts +63 -0
  210. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-agent-page.ts +109 -0
  211. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-aggregates.ts +497 -0
  212. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-fast-page-parity.test-support.ts +65 -0
  213. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-group-page.test.ts +176 -0
  214. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-group-page.ts +119 -0
  215. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-group-projection.ts +41 -0
  216. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-invocation-page.test.ts +16 -0
  217. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-invocation-page.ts +29 -0
  218. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-cache.ts +355 -0
  219. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-persistence.ts +121 -0
  220. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-timing.ts +27 -0
  221. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-metric-contract.ts +16 -2
  222. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-projection.ts +15 -0
  223. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.test.ts +223 -0
  224. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.ts +304 -0
  225. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-cache.test-support.ts +23 -0
  226. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-first-fold-types.ts +89 -0
  227. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-multi-provider-fixture.ts +227 -0
  228. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-multi-provider.test.ts +691 -0
  229. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-source-fingerprint.ts +81 -0
  230. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +1655 -567
  231. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.ts +2168 -1268
  232. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-cache.ts +129 -0
  233. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-install.test.ts +26 -0
  234. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-install.ts +28 -0
  235. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-seed.test.ts +116 -0
  236. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-launch-page.mjs +146 -0
  237. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-launch-page.test.mjs +165 -0
  238. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-refresh.mjs +140 -0
  239. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.mjs +255 -289
  240. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.test.mjs +94 -88
  241. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  242. package/templates/.agents/dashboard/packages/windows-launcher/Program.cs +5 -2
  243. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  244. package/templates/.agents/dashboard/tests/e2e/playwright.config.ts +4 -1
  245. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-loading.spec.ts +142 -0
  246. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-pagination.spec.ts +232 -0
  247. package/templates/.agents/dashboard/tests/e2e/specs/dashboard-performance-matrix.spec.ts +743 -0
  248. package/templates/.agents/dashboard/tests/e2e/specs/dashboard.spec.ts +189 -214
  249. package/templates/.agents/dashboard/zaip-dashboard-windows.exe +0 -0
  250. package/templates/.agents/design/.zaip-managed.json +3 -3
  251. package/templates/.agents/design/apps/catalog/package.json +1 -1
  252. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  253. package/templates/.agents/growth/estrategia-bootstrap-90-dias.md +169 -0
  254. package/templates/.agents/growth/strategy.md +27 -0
  255. package/templates/.agents/marketing/estrategia-marketing-zaip-90-dias.md +197 -0
  256. package/templates/.agents/marketing/strategy.md +29 -0
  257. package/templates/.agents/requirements/autonomous-assurance.md +6 -6
  258. package/templates/.agents/requirements/comparative-audit.md +1 -1
  259. package/templates/.agents/requirements/context-engine.md +1 -1
  260. package/templates/.agents/requirements/cost-observability.md +1 -1
  261. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  262. package/templates/.agents/requirements/data-export.md +1 -1
  263. package/templates/.agents/requirements/design-system.md +1 -1
  264. package/templates/.agents/requirements/execution-engine.md +3 -3
  265. package/templates/.agents/requirements/kanban-dashboard.md +10 -2
  266. package/templates/.agents/requirements/model-orchestration.md +1 -1
  267. package/templates/.agents/requirements/public-distribution.md +1 -1
  268. package/templates/.agents/requirements/software-architecture.md +1 -1
  269. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  270. package/templates/.agents/requirements/work-lifecycle.md +4 -4
  271. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  272. package/templates/.agents/rules/dashboard-ui-consistency.md +14 -0
  273. package/templates/.agents/rules/frontend-lite.md +4 -4
  274. package/templates/.agents/rules/run-lifecycle-closure.md +4 -4
  275. package/templates/.agents/runtime/VERSION +1 -1
  276. package/templates/.agents/runtime/bin/zaip.mjs +1142 -1041
  277. package/templates/.agents/runtime/checksums.sha256 +6 -6
  278. package/templates/.agents/runtime/manifest.json +1 -1
  279. package/templates/.agents/runtime/pnpm-lock.sha256 +1 -1
  280. package/templates/.agents/runtime/provenance.json +5 -5
  281. package/templates/.agents/runtime/sbom.cdx.json +3 -3
  282. package/templates/.agents/sales/playbook.md +32 -0
  283. package/templates/.agents/sales/roteiro-comercial-zaip.md +252 -0
  284. package/templates/.agents/skills/criar-pasta-obsidian/scripts/generate-obsidian-vault.test.mjs +20 -16
  285. package/templates/.agents/skills/zaip-aios/SKILL.md +1 -1
  286. package/templates/.agents/skills/zaip-skill-agent-catalog/SKILL.md +22 -0
  287. package/templates/.agents/skills/zaip-skill-agent-catalog/agents/openai.yaml +4 -0
  288. package/templates/.agents/skills/zaip-skill-author-skills/SKILL.md +3 -2
  289. package/templates/.agents/skills/zaip-skill-author-skills/scripts/audit-skill-catalog.mjs +49 -0
  290. package/templates/.agents/skills/zaip-skill-author-skills/scripts/author-skill-scripts.test.mjs +27 -0
  291. package/templates/.agents/skills/zaip-skill-author-skills/scripts/run-skill-tests.mjs +37 -0
  292. package/templates/.agents/skills/zaip-skill-backend/SKILL.md +1 -0
  293. package/templates/.agents/skills/zaip-skill-brand-governance/SKILL.md +9 -2
  294. package/templates/.agents/skills/zaip-skill-brand-governance/references/brandbook-framework.md +39 -0
  295. package/templates/.agents/skills/zaip-skill-brand-governance/references/brandbook-standards.md +1 -1
  296. package/templates/.agents/skills/zaip-skill-change/SKILL.md +1 -1
  297. package/templates/.agents/skills/zaip-skill-change/references/observable-evidence.md +83 -0
  298. package/templates/.agents/skills/zaip-skill-dashboard-diagnostics/SKILL.md +22 -0
  299. package/templates/.agents/skills/zaip-skill-dashboard-diagnostics/agents/openai.yaml +4 -0
  300. package/templates/.agents/skills/zaip-skill-enforce-architecture/SKILL.md +2 -0
  301. package/templates/.agents/skills/zaip-skill-execution/SKILL.md +1 -1
  302. package/templates/.agents/skills/zaip-skill-frontend/SKILL.md +4 -3
  303. package/templates/.agents/skills/zaip-skill-frontend/agents/openai.yaml +2 -2
  304. package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +10 -10
  305. package/templates/.agents/skills/zaip-skill-growth-strategy-revops/SKILL.md +6 -0
  306. package/templates/.agents/skills/zaip-skill-lifecycle-closure/SKILL.md +27 -0
  307. package/templates/.agents/skills/zaip-skill-lifecycle-closure/agents/openai.yaml +4 -0
  308. package/templates/.agents/skills/zaip-skill-marketing/SKILL.md +6 -0
  309. package/templates/.agents/skills/zaip-skill-prd/SKILL.md +4 -0
  310. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-local-telemetry.mjs +111 -104
  311. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-explicit-recovery.mjs +223 -0
  312. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-lib.mjs +55 -9
  313. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-lib.test.mjs +145 -14
  314. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-remeasurement.mjs +19 -9
  315. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-remeasurement.test.mjs +82 -5
  316. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/source-size-telemetry/model-identity-reconciliation.mjs +77 -0
  317. package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +20 -0
  318. package/templates/.agents/skills/zaip-skill-release-qualification/agents/openai.yaml +4 -0
  319. package/templates/.agents/skills/zaip-skill-review/SKILL.md +5 -0
  320. package/templates/.agents/skills/zaip-skill-rules/SKILL.md +1 -1
  321. package/templates/.agents/skills/zaip-skill-sales-methodology/SKILL.md +6 -0
  322. package/templates/.agents/skills/zaip-skill-spec/SKILL.md +4 -0
  323. package/templates/.agents/skills/zaip-skill-sqlite-read-model/SKILL.md +22 -90
  324. package/templates/.agents/skills/zaip-skill-sqlite-read-model/scripts/ensure-node.mjs +28 -5
  325. package/templates/.agents/zaip-aios/INDEX.md +57 -22
  326. package/templates/.agents/zaip-aios/README.md +24 -13
  327. package/templates/.agents/zaip-aios/VERSION +1 -1
  328. package/templates/.agents/zaip-aios/guides/02-requirements.md +5 -0
  329. package/templates/.agents/zaip-aios/guides/06-execucao.md +13 -4
  330. package/templates/.agents/zaip-aios/guides/07-revisao-e-validacao.md +7 -0
  331. package/templates/.agents/zaip-aios/guides/10-seguranca.md +23 -0
  332. package/templates/.agents/zaip-aios/guides/11-observabilidade-e-custos.md +6 -6
  333. package/templates/.agents/zaip-aios/guides/13-boas-praticas.md +3 -0
  334. package/templates/.agents/zaip-aios/guides/16-lifecycle-e-reconciliacao.md +12 -3
  335. package/templates/.agents/zaip-aios/guides/17-como-o-custo-e-calculado.md +5 -5
  336. package/templates/.agents/zaip-aios/guides/18-catalogo-de-agentes.md +76 -0
  337. package/templates/.agents/zaip-aios/guides/19-assurance-e-autonomia.md +95 -0
  338. package/templates/.agents/zaip-aios/guides/20-instalacao-detalhada.md +366 -0
  339. package/templates/.agents/zaip-aios/guides/21-telemetria-monitor-custos.md +46 -0
  340. package/templates/.agents/zaip-aios/guides/22-fluxos-e-roteamento.md +74 -0
  341. package/templates/.agents/zaip-aios/guides/23-orquestracao-de-modelos.md +483 -0
  342. package/templates/.agents/zaip-aios/guides/24-calculo-de-custos-openai.md +85 -0
  343. package/templates/.agents/zaip-aios/guides/25-fontes-de-precos-openai.md +19 -0
  344. package/templates/.agents/zaip-aios/guides/26-qualidade-e-release.md +111 -0
  345. package/templates/.agents/zaip-aios/guides/27-telemetria-git-native.md +172 -0
  346. package/templates/.agents/zaip-aios/guides/28-lifecycle-completo.md +149 -0
  347. package/templates/.agents/zaip-aios/guides/assets/diagrams/lifecycles-task-spec-prd.png +0 -0
  348. package/templates/.agents/zaip-aios/guides/assets/diagrams/prd-lifecycle.png +0 -0
  349. package/templates/.agents/zaip-aios/guides/assets/diagrams/spec-lifecycle.png +0 -0
  350. package/templates/.agents/zaip-aios/guides/assets/diagrams/task-lifecycle.png +0 -0
  351. package/templates/template-manifest.json +756 -235
  352. package/templates/.agents/dashboard/apps/frontend/dist/assets/DashboardHelpDialog-Cs6dzDmW.js +0 -1505
  353. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-QE1k9yZB.css +0 -1
  354. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-_Pf5DA_A.js +0 -3
  355. package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-BVlz3DLZ.js +0 -1
  356. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-BZ5WdaMN.css +0 -1
  357. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-Cf9ctPVt.js +0 -68
  358. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-8A4DcNXM.js +0 -2
  359. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-DK_enB5Z.css +0 -1
  360. package/templates/.agents/dashboard/apps/frontend/src/use-idle-cost-prefetch.ts +0 -45
@@ -0,0 +1,111 @@
1
+ # Qualidade e qualificação de release
2
+
3
+ O candidato de release precisa passar gates locais, clean-room e distribuição pública sem confundir validação técnica com aprovação de produção.
4
+
5
+ ## Cobertura
6
+
7
+ `pnpm test:coverage` mede os módulos de domínio e aplica um ratchet versionado:
8
+
9
+ - 80% de lines;
10
+ - 80% de functions;
11
+ - 75% de branches;
12
+ - 80% de statements.
13
+
14
+ O composition root executável `packages/cli/src/index.ts` é coberto pelos testes CLI/release E2E. O payload gerado `packages/cli/src/dashboard-template.ts` é coberto pela paridade do template. Ambos ficam fora da cobertura unitária para não misturar integração e geração de distribuição com unidade de domínio.
15
+
16
+ O ratchet usa o maior valor entre o floor atual e o baseline versionado. Uma medição menor falha; o baseline não pode ser atualizado para encobrir regressão.
17
+
18
+ ## Gates agregados e diagnósticos
19
+
20
+ O gate de PR é o job único `github-equivalent` de
21
+ `.github/workflows/quality.yml`, em `ubuntu-latest`: instala dependências,
22
+ instala Chromium e executa `validate:github:prepared`, auditoria de produção,
23
+ cobertura, release E2E e dashboard E2E. Esses subchecks são etapas desse gate
24
+ agregado; não são uma receita adicional que, isoladamente, aprove uma release.
25
+
26
+ O workflow `.github/workflows/publish-cli.yml` é separado: seu job `verify`
27
+ usa matriz real Node 22 e 24 para `pnpm verify`; a auditoria e o artefato de
28
+ release ocorrem somente na linha Node 24, ambas em Ubuntu. Publicação e smoke
29
+ só seguem após a matriz aprovada. Esse `verify` roda dentro de `public-cli`,
30
+ não é o script homônimo da raiz. Os comandos abaixo são do checkout mantenedor;
31
+ não presuma que existam no `package.json` do projeto consumidor.
32
+
33
+ A publicação compara `dist.integrity` do registro com o SHA-512 do tarball
34
+ verificado. Uma versão já existente só é aceita quando o conteúdo é idêntico.
35
+ Somente `E404` estruturado indica ausência; autenticação, rede, resposta
36
+ inválida ou integridade diferente impedem publicar. Após uma publicação
37
+ autorizada, a confirmação do mesmo tarball usa retry finito de propagação.
38
+ Esse controle não publica automaticamente quando a qualificação local passa.
39
+
40
+ | Objetivo | Comando da raiz e alcance |
41
+ | --- | --- |
42
+ | Preparar artefatos | `corepack pnpm release:artifacts` compila e gera runtime/template. Não publica nem qualifica por si só. |
43
+ | Atualizar integridade após mudança gerenciada intencional | `corepack pnpm sync:framework-lock`, depois `corepack pnpm validate:framework-lock`; não usar para aceitar drift desconhecido. |
44
+ | Diagnosticar um check | Executar apenas o teste/check pertinente e registrar seu resultado. Isso não substitui a qualificação completa. |
45
+ | Qualificar localmente | `corepack pnpm release:verify` agrega instalação pública, validação preparada, cobertura, release E2E, dashboard E2E, audit e árvore limpa. |
46
+ | Verificação completa da raiz | `corepack pnpm verify` acrescenta orçamento de Rules e contrato antes de `release:verify`. Não precisa repetir manualmente cada subcomando no mesmo candidato. |
47
+
48
+ Finalize as escritas gerenciadas antes de sincronizar o lock; após alterá-lo,
49
+ sincronize/audite novamente o template público. Execute gates geradores em
50
+ checkout/worktree isolado para preservar trabalho concorrente. Gates locais,
51
+ artefato exato, CI terminal e produção continuam sendo provas distintas.
52
+
53
+ ## Histórico e nova qualificação em 30/08/2026
54
+
55
+ Snapshot bloqueado em 2026-08-30 para o candidato
56
+ `d00851adfd78b4e4af8e888e270d55ace749607e`: não há release verde declarada.
57
+ A tentativa de reparo isolado do runtime passou 9 de 10 testes e
58
+ falhou em `reports a missing runtime and restores it transactionally`:
59
+ `FLAT_FRAMEWORK_RULES` não classifica
60
+ `.agents/rules/dashboard-ui-consistency.md`, embora a regra esteja no template,
61
+ e a restauração transacional retorna `repaired.applied=false`. A correção do
62
+ instalador está fora daquele recorte e não foi aprovada nem validada.
63
+
64
+ Também não está verde o teste completo de orçamento das Rules: a folga exigida
65
+ para `run-lifecycle-closure.md` é 867 e o orçamento atual é 840. Isso é uma
66
+ falha registrada, não um snapshot a ser tratado como aprovação. Sem corrigir e
67
+ reexecutar esses gates no candidato apropriado, não declare clean-room,
68
+ qualificação integral, produção ou release aprovados.
69
+
70
+ O relatório-fonte deste snapshot é
71
+ `.agents/records/changes/2026/08/CHG-2026-08-30-18-18-EVIDENCIAS-OBSERVAVEIS-SEGURAS-K5WJ/artifacts/checks/verification-report.md`
72
+ no repositório mantenedor; ele não é distribuído como histórico do consumidor.
73
+ O status central de readiness não é ligado aqui porque
74
+ `docs/PRODUCTION-COMMERCIAL-READINESS.md` não faz parte do template público
75
+ instalado; um link relativo seria enganoso para consumidores do pacote.
76
+
77
+ A entrega corretiva posterior `TASK-2026-08-30-19-51-LIBERAR-PRODUCAO-SEGURA-2NA6`
78
+ inclui a Rule ausente no instalador e reduz o texto de encerramento sem
79
+ aumentar o orçamento 840. Os cenários focais de reparo e orçamento foram
80
+ reexecutados com sucesso. O snapshot acima é histórico: não deve ser apagado
81
+ nem usado como resultado do novo candidato. A aprovação da candidata nova
82
+ depende de seus próprios gates completos, artefato, SHA e revisão independente.
83
+ Os resultados finais ficam na Change correspondente no checkout mantenedor,
84
+ não no histórico distribuído ao consumidor.
85
+
86
+ ## Arquivos efêmeros
87
+
88
+ `test-results`, `playwright-report`, `coverage`, `.turbo` e `node_modules` nunca pertencem ao pacote portável nem ao manifesto gerenciado. A embalagem e o clean-room aplicam a mesma política de exclusão.
89
+
90
+ Antes de substituir `public-cli/artifacts` ou executar `npm pack`, o guard de
91
+ release compara o inventário público efetivo do Dashboard com os arquivos
92
+ rastreados pelo Git. Somente os dois outputs declarados do build SQLite,
93
+ `packages/local-runtime/dist/server.cjs` e
94
+ `packages/local-runtime/dist/sqlite-read-model.cjs`, podem ser gerados sem
95
+ rastreamento. Outros arquivos não rastreados, inclusive diagnósticos ignorados
96
+ pelo Git, impedem a embalagem. Uma consulta Git indisponível também bloqueia.
97
+ O guard não remove, move, ignora ou adiciona arquivos ao Git; a limpeza deve
98
+ ser resolvida pelo responsável autorizado, preservando os artefatos anteriores.
99
+ Use o checkout limpo do candidato exato e não publique TGZs de diagnóstico.
100
+
101
+ ## Evidência e aprovação
102
+
103
+ Testes passando comprovam validação técnica. Maturidade formal máxima exige ainda:
104
+
105
+ - SHA candidato imutável;
106
+ - reviewer independente do autor;
107
+ - ambiente representativo identificado;
108
+ - observação de produção ligada ao mesmo SHA;
109
+ - CI terminal correspondente ao commit publicado.
110
+
111
+ Ausência de uma dessas provas permanece explícita; não é convertida em sucesso.
@@ -0,0 +1,172 @@
1
+ # Telemetria Git-native do Codex
2
+
3
+ Este documento descreve o comportamento implementado da telemetria do Codex no ZAIP-AIOS. O
4
+ objetivo é preservar métricas auditáveis por invocação de agente sem versionar prompts, respostas,
5
+ reasoning privado, segredos ou o fluxo completo de microeventos.
6
+
7
+ O caminho implementado possui quatro camadas:
8
+
9
+ 1. captura sanitizada e durável em spool local;
10
+ 2. compactação em um resumo por invocação de agente;
11
+ 3. chunks e manifestos mensais rastreados pelo Git;
12
+ 4. leitura manifest-first no Monitor de Custos, complementada pelos dados de lifecycle já lidos dos manifests canônicos.
13
+
14
+ O rollout amplo continua condicionado à cobertura observada. Ter o pipeline instalado não autoriza
15
+ rotular métricas ausentes como completas nem transformar valores desconhecidos em zero. Duração,
16
+ tokens e custo não capturados permanecem explicitamente indisponíveis; uma reconciliação ou
17
+ estimativa só pode aparecer com proveniência e não passa a ser observação da fonte.
18
+
19
+ ## Fluxo dos dados
20
+
21
+ ```text
22
+ evento observável do Codex
23
+ │
24
+ ▼
25
+ spool local sanitizado e ignorado pelo Git
26
+ .local/codex-telemetry-spool/v1/
27
+ │
28
+ ▼
29
+ InvocationSummaryV1 por agent_invocation_id
30
+ │
31
+ ▼
32
+ .agents/records/telemetry/<ano>/<mês>/writers/<writer-id>/
33
+ ├── chunks/<sha256>.jsonl
34
+ └── manifest.json
35
+ │
36
+ ▼
37
+ GET /api/v2/cost-monitor?from=...&to=...
38
+ │
39
+ ├── manifestos e chunks válidos: métricas manifest-first
40
+ └── ausência de resumo aplicável: campos de lifecycle preservados com cobertura explícita
41
+ ```
42
+
43
+ ### Captura
44
+
45
+ O coletor aceita notificações sanitizadas do app-server do Codex quando elas são fornecidas ao
46
+ comando `run usage` por `--codex-app-server-events`. A opção `--disable-codex-raw` desativa essa
47
+ entrada e usa explicitamente o fallback de sessão local.
48
+
49
+ O fallback correlaciona uma sessão somente quando existe vínculo observável com a Run. Para Runs do
50
+ Codex, o `client_turn_id` é a chave canônica; para subagentes, o vínculo usa o `agent_path` e o turn
51
+ filho observado. Uma relação pertencente a outro `agent_invocation_id` é conflito de ownership, não
52
+ uma oportunidade para aproximar timestamps ou nomes.
53
+
54
+ Cada evento do spool:
55
+
56
+ - possui `source_event_key` estável, ID derivado e checksum SHA-256;
57
+ - referencia Run, invocação, raiz, pai e ancestrais de lifecycle conhecidos;
58
+ - limita o envelope sanitizado a 64 KiB;
59
+ - persiste tokens, modelo, provider, tier, effort, status e timestamps somente quando observados;
60
+ - registra contadores de conteúdo descartado;
61
+ - não persiste prompt, texto de resposta, reasoning privado nem valores secretos.
62
+
63
+ Eventos sem correlação suficiente permanecem em `unmatched/`; eles não são atribuídos por
64
+ proximidade temporal. O spool continua sendo a fonte local de recuperação após a compactação e não
65
+ deve ser apagado manualmente.
66
+
67
+ ### Compactação e ledger
68
+
69
+ A compactação só produz um `InvocationSummaryV1` para uma invocação que já possua evento terminal
70
+ ou de erro. Uma repetição da mesma `source_event_key` reutiliza idempotentemente o evento quando o
71
+ conteúdo e a ownership são compatíveis; conteúdo divergente é rejeitado como conflito. Correlação
72
+ de lifecycle divergente também interrompe a compactação.
73
+
74
+ Um resumo preserva:
75
+
76
+ - `agent_invocation_id`, raiz, pai, profundidade e tipo de invocação;
77
+ - IDs de Execution, Task, SPEC, PRD, Change e Run quando conhecidos;
78
+ - agente ZAIP, fase, propósito e status;
79
+ - quantidade de eventos de origem e `source_hash`;
80
+ - `llm_call_count` quando observável;
81
+ - duração, latência e atraso de captura;
82
+ - segmentos separados por provider, modelo, service tier, reasoning effort, cobertura e snapshot de
83
+ custo histórico;
84
+ - `summary_hash` determinístico.
85
+
86
+ O custo histórico é agregado apenas quando preço, câmbio e componentes necessários são
87
+ compatíveis. O leitor não reprecifica silenciosamente uma execução antiga. Se qualquer componente
88
+ necessário estiver ausente, o total correspondente permanece `null`. Modelo e reasoning effort
89
+ efetivos também permanecem indisponíveis quando o host não os informou; não são derivados do
90
+ catálogo, da seleção planejada ou do comportamento aparente.
91
+
92
+ ### Chunks e manifestos
93
+
94
+ Cada workspace recebe um `writer-id` aleatório persistido somente em
95
+ `.local/telemetry-writer-id.json`. Isso separa autores e worktrees e reduz conflitos
96
+ em um manifesto global compartilhado.
97
+
98
+ Os summaries de cada mês são ordenados e escritos em chunk imutável endereçado pelo hash do
99
+ conteúdo. Uma repetição pode reutilizar o mesmo caminho somente se o conteúdo for byte a byte
100
+ idêntico. O `manifest.json` do writer contém:
101
+
102
+ - período, intervalo e quantidade de summaries;
103
+ - hashes dos summaries e do manifesto;
104
+ - cobertura `complete`, `partial` e `unavailable`;
105
+ - métricas com `known_sum`, `unknown_count`, `total_count`, `complete` e `coverage_ratio`;
106
+ - dimensões disponíveis para selecionar chunks;
107
+ - timestamp mais recente da fonte e atraso máximo conhecido.
108
+
109
+ Manifestos são read models reconstruíveis; os summaries nos chunks e o spool local preservado são
110
+ as entradas para recuperação. Não edite chunks ou hashes manualmente.
111
+
112
+ ## Leitura no Dashboard
113
+
114
+ O endpoint local `GET /api/v2/cost-monitor` ativa a leitura manifest-first somente quando recebe
115
+ `from` e `to`. Os filtros `provider`, `model`, `agent`, `phase` e `status` são usados para eliminar
116
+ chunks incompatíveis antes da leitura. O leitor valida:
117
+
118
+ - período e estrutura do manifesto;
119
+ - `manifest_hash`;
120
+ - hash SHA-256 de cada chunk;
121
+ - `summary_hash` de cada resumo;
122
+ - unicidade por `agent_invocation_id`.
123
+
124
+ Quando há summaries válidos para o período, tokens e custos vindos do manifesto são autoritativos.
125
+ Os dados de lifecycle carregados de `records/lifecycle` continuam fornecendo campos que o resumo não
126
+ conhece. Em particular, uma duração de lifecycle delimitada é preservada quando o summary não possui
127
+ duração observável. Essa preservação mantém a proveniência: duração reconciliada, inferida ou
128
+ estimada não deve ser lida como duração capturada. Se não houver summaries aplicáveis, o Dashboard preserva os dados de lifecycle e
129
+ a cobertura disponível; não lê nem recria uma projeção ou arquivo local, e nunca promove a cobertura
130
+ para `complete`.
131
+
132
+ ## Semântica de cobertura
133
+
134
+ | Valor | Significado |
135
+ | --- | --- |
136
+ | `complete` | Todos os componentes exigidos para aquela métrica foram observados na fonte aceita. |
137
+ | `partial` | Existe medição útil, mas pelo menos uma parte ou fonte exigida não está coberta. |
138
+ | `unavailable` | A fonte não forneceu a métrica ou ela não pôde ser correlacionada com segurança. |
139
+
140
+ Cobertura é calculada por dimensão. Uma invocação pode, por exemplo, ter duração conhecida e tokens
141
+ indisponíveis. Por isso:
142
+
143
+ - `known_sum` soma somente valores conhecidos;
144
+ - `unknown_count` permanece visível;
145
+ - `coverage_ratio` informa a fração comprovada;
146
+ - `null` significa desconhecido e nunca é convertido em `0`;
147
+ - “sem custo observado” não significa “custo zero”.
148
+
149
+ ## Operação e recuperação
150
+
151
+ 1. Não edite nem remova manualmente o spool, chunks, manifestos ou writer ID.
152
+ 2. Antes de diagnosticar custo, confirme a cobertura da métrica e o período consultado.
153
+ 3. Se um manifesto ou chunk falhar no hash, preserve os arquivos e execute diagnóstico; não
154
+ substitua o hash para fazer a leitura passar.
155
+ 4. Reprocesse somente a partir do spool sanitizado e das relações canônicas observadas. Não faça
156
+ backfill por vizinhança temporal para Runs que possuem `client_turn_id`.
157
+ 5. Mantenha `unavailable` quando a sessão original não oferece os dados necessários.
158
+ 6. Só promova o caminho novo amplamente após gates de cobertura, integridade e comparação
159
+ aprovados. Rollback de leitura preserva tanto o ledger novo quanto os records legados.
160
+
161
+ Para validar alterações de mantenedor relacionadas a esse pipeline:
162
+
163
+ ```powershell
164
+ corepack pnpm --filter @zaip-ai/decisions test
165
+ corepack pnpm --filter @zaip-ai/costs test
166
+ corepack pnpm --filter @zaip-ai/cli test
167
+ corepack pnpm --filter @zaip-ai/dashboard-local-runtime test
168
+ node scripts/validate-text-encoding.mjs
169
+ ```
170
+
171
+ Os comandos acima são gates de desenvolvimento. A confirmação operacional continua sendo a
172
+ combinação de hashes válidos, cobertura explícita e leitura do período real no Dashboard.
@@ -0,0 +1,149 @@
1
+ # Lifecycle de Conversations, Tasks, SPECs e PRDs
2
+
3
+ Este documento é a referência pública do lifecycle implementado pelo ZAIP-AIOS. Status persistido, Run, coluna do Kanban e reconciliação possuem responsabilidades distintas e não devem ser inferidos uns dos outros.
4
+
5
+ ## Classificação de entrada
6
+
7
+ Aliases são resolvidos com alvo e status persistido, nunca por palavra isolada. `pronto`, `deixe/coloque em Pronto para Executar` e `ready-to-execute` resolvem para `ready`. `finalizar|concluir|finalize|conclude` em PRD/SPEC `draft|ready` lapidam e resolvem para `ready`; em trabalho ativo, “conclua a execução/finalize a implementação” continua Tasks e gates. Somente `entregar|deliver` após gates solicita entrega terminal.
8
+
9
+ `implemente` sem alvo abre somente uma Conversation de planejamento; em `draft` finaliza o plano sem executar, em `ready` executa e em `active|blocked|failed` continua, retoma ou cria rework. `desenvolva|melhore|aprimore` sempre planeja/refina/rework. PRD cancelado é imutável e recebe sucessor `draft` com tag `rework` e `rework_of_prd_id`.
10
+
11
+ ## Criação completa de PRD e SPEC
12
+
13
+ “Me ajude a pensar” é Conversation. “Crie um PRD” revisa o prompt, faz até cinco perguntas críticas por turno durante no máximo três turnos e então persiste PRD `draft`, SPECs técnicas `draft` e PreparedPlan com blueprints de Tasks. Decisões delegáveis restantes são registradas como IA; autoridade externa/destrutiva, credenciais e riscos não delegáveis continuam bloqueantes.
14
+
15
+ Use uma SPEC por padrão. Outra só existe quando pode ser implementada e verificada em paralelo contra contrato estável, sem depender de outra SPEC ou disputar write scopes. Dependências e ordem ficam entre Tasks da mesma SPEC.
16
+
17
+ Antes de `ready`, blueprints aparecem apenas como lista compacta no PRD/SPEC; `prd create --plan` e `spec create --plan` validam o pacote antes da escrita, usam criação exclusiva por arquivo e rollback compensatório se uma etapa falhar, mas não prometem uma transação atômica multiarquivo contra interrupção abrupta. Não existem registros Task, Change ou Execution `delivery` nessa etapa. `prd create|rework|prepare` exige uma Run delegada da Bia (`zaip-agent-analyst`) e `spec create|rework|prepare` exige uma Run delegada do Rafa (`zaip-agent-builder`), sempre ativas e vinculadas ao turno raiz atual, com propósito `execution`. Em criação composta, `prd create --plan --run <bia-run> --spec-run <rafa-run>` exige duas Runs distintas sob o mesmo orquestrador: o PRD recebe a autoria da Bia e as SPECs recebem a autoria do Rafa. Replays históricos e identidades trocadas falham antes de escrever artefatos. Duração, tokens e custo são agregados quando observados ou reconciliados e permanecem `null` quando indisponíveis. `ready` materializa Tasks/Changes/Execution como `planned` em operação idempotente; `execute` inicia o menor grão nomeado.
18
+
19
+ | Entrada | Quando usar | Cria Task? | Estado inicial visível |
20
+ | --- | --- | --- | --- |
21
+ | Conversation | Pergunta, feedback, status ou análise pontual read-only; cria Execution `interaction` | Não | Sem card |
22
+ | Task avulsa executável | Pedido direto de alteração ou resultado independente | Sim | Execução antes da primeira mutação |
23
+ | Task avulsa preparada | Pedido explícito de planejamento sem autorização de executar | Sim | Pronto para Executar |
24
+ | SPEC | Entrega técnica com múltiplos blueprints ou DAG | Tasks em `ready|execute` | Planejamento enquanto `draft` |
25
+ | PRD | Definição de produto organizada em SPECs independentes | Tasks em `ready|execute` | Definição enquanto `draft` |
26
+
27
+ Conversa de análise nunca altera código, documentação ou configuração. A criação ou o refinamento explícito de PRD/SPEC `draft` é a única exceção de definição: a Execution `interaction` pode persistir o macro e seu PreparedPlan sem Task, Change ou Execution `delivery`. Fora dessa exceção, qualquer mutação persistente intencional exige Task materializada e Run raiz de orquestração ativa antes da escrita.
28
+
29
+ São isentos apenas deploy/publicação Git sem mudança de produto, manifests e telemetria ZAIP gerados pelo lifecycle, metadados `.git`, caches, builds, testes e arquivos temporários descartáveis. Editar fontes ou documentação do ZAIP não é isento.
30
+
31
+ ## Colunas do Kanban
32
+
33
+ | Coluna | Regra |
34
+ | --- | --- |
35
+ | Definição | Exclusiva de PRD `draft` |
36
+ | Planejamento | Exclusiva de SPEC `draft` |
37
+ | Pronto para Executar | PRD/SPEC `ready` e toda Task `planned` nunca iniciada ou tentada, avulsa ou vinculada a SPEC |
38
+ | Execução | Task `executing`; SPEC/PRD `active` |
39
+ | Verificação | Task `verifying` ou macro executando gates parentais |
40
+ | Concluído | Task `completed` ou macro `delivered` |
41
+ | Bloqueado | Resultado retomável com condição objetiva |
42
+ | Falhado | Erro técnico impeditivo; exige rework |
43
+ | Cancelado | Cancelamento humano explícito e imutável |
44
+
45
+ Activity local nunca prevalece sobre um status final persistido. Uma invocação obsoleta não pode reviver Task concluída, bloqueada, falhada ou cancelada.
46
+
47
+ ## Trabalho, Execution, Run, Sub-Run e Call
48
+
49
+ As cinco camadas possuem responsabilidades diferentes:
50
+
51
+ | Camada | Responsabilidade |
52
+ | --- | --- |
53
+ | Trabalho | Task, SPEC ou PRD que descreve o resultado e seu lifecycle |
54
+ | Execution | `interaction` registra uma conversa; `delivery` coordena Task, Change e DAG quando aplicável |
55
+ | Run | Chamada raiz do `zaip-agent-orchestrator`; possui `parent_run_id: null` |
56
+ | Sub-Run | Chamada de subagente feita dentro da Run; possui `parent_run_id` |
57
+ | Call | Invocação interna de modelo LLM; herda a configuração da Run/Sub-Run |
58
+
59
+ Run e Sub-Run compartilham o mesmo ledger canônico `RUN-*`; a distinção é derivada de `parent_run_id`, sem entidade duplicada. `run_role` usa somente `intake`, `orchestrator` ou `subagent`; valores históricos `owner` e `contributor` são aceitos apenas na leitura e normalizados imediatamente. `run_purpose` informa se a chamada executa `orchestration`, `execution`, `review`, `audit` ou `finalization`.
60
+
61
+ Cada Run/Sub-Run fixa agente, modelo e effort até terminar. Mudança deliberada de agente, modelo, effort ou fase material abre outra chamada de agente; retry técnico preserva a configuração corrente. Calls podem ser várias dentro da mesma chamada de agente e não possuem lifecycle nem tela própria.
62
+
63
+ Quando o host expõe Calls, a Run/Sub-Run agrega quantidade conhecida, terminais, falhas, cancelamentos, configuração efetiva, tokens e custo. Ausência de telemetria permanece `null`; nunca se presume zero e nunca se cria `CallProjection`.
64
+
65
+ ### Barreira do finalizador
66
+
67
+ Cada Execution usa uma Run raiz do `zaip-agent-orchestrator`. Um executor é escolhido pelas capacidades e pela elegibilidade declarada no catálogo: `zaip-agent-builder` e `zaip-agent-task-executor` podem executar delivery, e `zaip-agent-analyst` pode executar interaction. Revisão, auditoria e integração podem participar. Depois que todos os demais descendentes terminarem, o orquestrador deve chamar `zaip-agent-finalizer` como último Sub-Run, com propósito `finalization`.
68
+
69
+ O finalizador é read-only: avalia resultados, gates e Evidence e retorna somente o status terminal proposto, motivo e referências. A CLI aplica deterministicamente a transição. O início do finalizador cria uma barreira: ele não pode começar com descendentes ativos e nenhum filho novo pode iniciar depois dele. Finalizador ausente, incompleto ou falho resulta em `blocked`, nunca em Task presa em `executing` ou `verifying`.
70
+
71
+ No modo nativo do Codex, a orquestração materializa essa etapa como um envelope de delegação com `purpose: finalization`, `agent_id: agent-finalizer`, escopo de escrita vazio e chave de idempotência própria. Uma Execution em `verifying` só recebe esse envelope; o host deve iniciar a Sub-Run real correspondente e registrar a telemetria dela. O framework não cria Run, Call, custo ou resultado sintético quando o host não a executa.
72
+
73
+ O status técnico da Run/Sub-Run (`completed`, `failed`, `cancelled`) é diferente do resultado da Task (`completed`, `blocked`, `failed`, `cancelled`). Uma Run tecnicamente concluída pode bloquear a Task porque um gate ou Evidence não passou.
74
+
75
+ Uma observação por AC não altera esse lifecycle nem substitui os gates. Ela é
76
+ uma declaração versionada cujo vínculo só pode complementar Evidence quando
77
+ `confirmed` e coerente; os demais estados preservam pendência ou falha. Veja o
78
+ [contrato de prova observável](../../skills/zaip-skill-change/references/observable-evidence.md).
79
+
80
+ Exemplo:
81
+
82
+ ```bash
83
+ zaip run finish RUN-ID \
84
+ --status completed \
85
+ --task-outcome blocked \
86
+ --summary "Gate de integração pendente"
87
+ zaip run closure RUN-ID
88
+ ```
89
+
90
+ ## Fechamento e retomada de Tasks
91
+
92
+ Antes de uma Run raiz terminar, sua Task deve estar em um destes estados:
93
+
94
+ - `completed`: resultado e gates aprovados;
95
+ - `blocked`: inconclusão retomável, dependência externa ou gate insuficiente;
96
+ - `failed`: erro técnico/integridade que impediu a execução válida;
97
+ - `cancelled`: pedido humano explícito.
98
+
99
+ `executing` e `verifying` nunca são estados válidos no fim da tentativa. Use `task resume` para `blocked` e `task rework` para `failed`; ambas preservam a Task, e cada nova entrada em execução incrementa a tentativa. `completed` e `cancelled` não reabrem.
100
+
101
+ Interromper a geração é uma interrupção retomável e resulta em `blocked`. “Cancelar a Task” é uma decisão explícita e resulta em `cancelled`.
102
+
103
+ ## Agregação de SPEC e PRD
104
+
105
+ Quando a primeira Task filha inicia, SPEC e PRD relacionados passam para `active` e permanecem em Execução enquanto restar trabalho macro, inclusive entre Runs. O resultado isolado de uma Task não terminaliza o pai.
106
+
107
+ - Task bloqueada/falhada mantém o macro em Execução para que outras Tasks e decisões parentais continuem.
108
+ - SPEC/PRD aguardam todas as Tasks e Runs filhas.
109
+ - Depois que todas as Tasks concluem, o macro entra em Verificação.
110
+ - Delivery exige gates, integração, Acceptance Criteria, outcomes e Evidence próprios do pai.
111
+
112
+ ## Reconciliação manual
113
+
114
+ O dashboard executa `zaip run reconcile --open --json` somente depois que o usuário confirma o popup Reconciliar. Não há reconciliação global ao abrir o dashboard, em cada turno ou em intervalo automático.
115
+
116
+ O algoritmo é idempotente e conservador:
117
+
118
+ - `task_complete` local exato permite finalizar tecnicamente a Run e tentar os gates;
119
+ - gate insuficiente produz `blocked`, nunca sucesso inventado;
120
+ - Run sem invocação ativa por dez minutos é órfã e termina como `failed`;
121
+ - `cancelled` nunca é inferido;
122
+ - Tasks apenas prontas, sem Run terminal atribuída, não são reavaliadas como travadas.
123
+
124
+ O hook pre-write é diferente da reconciliação: ele verifica localmente se o turno atual possui Run raiz e Task em execução antes de permitir mutação. Essa checagem não chama modelo, não consome tokens e não percorre o backlog.
125
+
126
+ ## Projeção no dashboard
127
+
128
+ Em Operação e Monitor de Custos, “Chamadas do agente orquestrador” e “Chamadas de subagentes” possuem filtros separados. A tabela de Executions agrega, sem dupla contagem, Runs de orquestrador, Sub-Runs, Sub-Runs finalizadores, Tasks finalizadas e Calls de LLM conhecidas. Quando nem todas as Calls são observáveis, a contagem é marcada como parcial em vez de assumir zero.
129
+
130
+ Trabalho possui duas leituras da mesma projeção: Trabalho (Kanban), por estágio, e Trabalho (Lista), tabular. As duas mantêm os filtros Todas as Tarefas, Visão Unificada Geral, PRDs, SPECs e Tarefas Avulsas. A lista expõe indicadores operacionais por item, incluindo status, origem, Runs, Sub-Runs, duração, tokens, custo e cobertura.
131
+
132
+ Cada segmento de telemetria possui uma chave de origem e só pode ser atribuído uma vez. Correções de duplicidade preservam o evento histórico e registram uma supersessão; projeções nunca devem somar os dois eventos.
133
+
134
+ ## Persistência compacta da telemetria
135
+
136
+ Microeventos observáveis do Codex são sanitizados e gravados primeiro no spool local ignorado pelo
137
+ Git. Depois de um terminal ou erro, eles são compactados em um `InvocationSummaryV1` por invocação
138
+ de agente. Os summaries são organizados em chunks imutáveis e manifestos mensais por writer em
139
+ `.agents/records/telemetry/<ano>/<mês>/writers/<writer-id>/`.
140
+
141
+ Essa compactação não substitui o ledger `RUN-*`: a Run continua sendo a fonte de lifecycle,
142
+ atribuição e evidência. O summary é a fonte compacta de métricas observadas. O Dashboard combina as
143
+ duas leituras sem dupla contagem; tokens e custos do summary são autoritativos quando válidos, mas
144
+ uma duração delimitada do lifecycle é preservada se a fonte compacta não conhece a duração.
145
+
146
+ Cobertura é independente por métrica. Tokens, Calls, custo, duração e latência podem ter estados
147
+ diferentes na mesma invocação. `known_sum`, `unknown_count` e `coverage_ratio` precisam viajar
148
+ juntos; `null` nunca é normalizado para zero. Detalhes de armazenamento, integridade, fallback e
149
+ recuperação estão em [Telemetria Git-native do Codex](27-telemetria-git-native.md).