@zaip-ai/cli 1.3.0 → 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 (258) hide show
  1. package/README.md +1 -1
  2. package/dist/services/agent-adapters.js +1 -1
  3. package/dist/services/agent-adapters.js.map +1 -1
  4. package/dist/services/agent-adapters.test.js +2 -1
  5. package/dist/services/agent-adapters.test.js.map +1 -1
  6. package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
  7. package/dist/services/codex-pre-tool-hook-template.js +89 -7
  8. package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
  9. package/dist/services/codex-rules.d.ts +1 -1
  10. package/dist/services/codex-rules.d.ts.map +1 -1
  11. package/dist/services/codex-rules.js +7 -0
  12. package/dist/services/codex-rules.js.map +1 -1
  13. package/dist/services/install-agents-template.d.ts.map +1 -1
  14. package/dist/services/install-agents-template.js +1 -0
  15. package/dist/services/install-agents-template.js.map +1 -1
  16. package/dist/services/runtime-template.test.js +31 -7
  17. package/dist/services/runtime-template.test.js.map +1 -1
  18. package/dist/services/template-manifest.d.ts.map +1 -1
  19. package/dist/services/template-manifest.js +7 -3
  20. package/dist/services/template-manifest.js.map +1 -1
  21. package/package.json +1 -1
  22. package/templates/.agents/config/agents/catalog.yaml +7 -7
  23. package/templates/.agents/config/clients/codex/agents/zaip-agent-backend.toml +2 -2
  24. package/templates/.agents/config/clients/codex/agents/zaip-agent-designer.toml +2 -2
  25. package/templates/.agents/config/clients/codex/agents/zaip-agent-frontend.toml +8 -8
  26. package/templates/.agents/dashboard/.zaip-managed.json +373 -205
  27. package/templates/.agents/dashboard/apps/frontend/dist/assets/{CostCalculationGuidePage-DxR_pgSV.js → CostCalculationGuidePage-ovxurkIk.js} +1 -1
  28. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-4jZLTWE_.js → DashboardHelpDialog-BgVgrfhQ.js} +240 -86
  29. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-CKcsqb-r.js → PricingSettingsDialog-vSvvOHQp.js} +1 -1
  30. package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-DmmJD2Th.js → ProjectSettingsPage-zH758vfs.js} +1 -1
  31. package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-DLn-Mz2M.js +1 -0
  32. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-CaKwQP43.css → TraceabilityWorkspace-DvvavDLY.css} +1 -1
  33. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-DKwP1stV.js +68 -0
  34. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-PoJA2PI1.css +1 -0
  35. package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-C0fj2uU9.js → icons-vendor-B_lDDHn1.js} +1 -1
  36. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-B31GMG5O.css +1 -0
  37. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-CZQlsLV9.js +2 -0
  38. package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-BEsJ-FYH.js → react-vendor-B3TJrD4O.js} +1 -1
  39. package/templates/.agents/dashboard/apps/frontend/dist/assets/{traceability-B6y6Gw12.js → traceability-7f1j5wx3.js} +1 -1
  40. package/templates/.agents/dashboard/apps/frontend/dist/index.html +7 -7
  41. package/templates/.agents/dashboard/apps/frontend/playwright.dom.config.ts +32 -0
  42. package/templates/.agents/dashboard/apps/frontend/src/App.tsx +132 -245
  43. package/templates/.agents/dashboard/apps/frontend/src/AppOverlays.tsx +0 -21
  44. package/templates/.agents/dashboard/apps/frontend/src/DashboardAlternateContent.tsx +9 -0
  45. package/templates/.agents/dashboard/apps/frontend/src/TraceabilityWorkspace.dom.e2e.ts +56 -0
  46. package/templates/.agents/dashboard/apps/frontend/src/TraceabilityWorkspace.test.ts +18 -1
  47. package/templates/.agents/dashboard/apps/frontend/src/TraceabilityWorkspace.tsx +75 -8
  48. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.test.ts +25 -1
  49. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.ts +7 -9
  50. package/templates/.agents/dashboard/apps/frontend/src/operations-period-render.test.ts +4 -4
  51. package/templates/.agents/dashboard/apps/frontend/src/overview-status-page.test.ts +1 -1
  52. package/templates/.agents/dashboard/apps/frontend/src/snapshot-banner-semantics.test.ts +7 -0
  53. package/templates/.agents/dashboard/apps/frontend/src/snapshot-coherence.test.ts +20 -8
  54. package/templates/.agents/dashboard/apps/frontend/src/sqlite-page-export.test.ts +32 -0
  55. package/templates/.agents/dashboard/apps/frontend/src/sqlite-page-export.ts +21 -0
  56. package/templates/.agents/dashboard/apps/frontend/src/styles.css +19 -0
  57. package/templates/.agents/dashboard/apps/frontend/src/traceability-task-pagination.test.ts +32 -0
  58. package/templates/.agents/dashboard/apps/frontend/src/traceability-task-pagination.ts +36 -0
  59. package/templates/.agents/dashboard/apps/frontend/src/traceability-workspace.css +6 -2
  60. package/templates/.agents/dashboard/apps/frontend/src/use-app-cost-loaders.test.ts +48 -0
  61. package/templates/.agents/dashboard/apps/frontend/src/use-app-cost-loaders.ts +31 -27
  62. package/templates/.agents/dashboard/apps/frontend/src/use-app-trace-documents.ts +7 -1
  63. package/templates/.agents/dashboard/apps/frontend/src/use-app-work-list-page.test.ts +163 -0
  64. package/templates/.agents/dashboard/apps/frontend/src/use-app-work-list-page.ts +136 -0
  65. package/templates/.agents/dashboard/apps/frontend/src/use-operations-detail-export.ts +76 -0
  66. package/templates/.agents/dashboard/apps/frontend/src/work-list-load-dedup.test.ts +23 -0
  67. package/templates/.agents/dashboard/apps/frontend/src/work-list-load-dedup.ts +27 -0
  68. package/templates/.agents/dashboard/apps/frontend/src/work-list-pagination.test.ts +38 -14
  69. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostDeveloperAttributionPanel.tsx +60 -0
  70. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostDeveloperAttributionTable.tsx +191 -0
  71. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostFilters.loading.test.ts +14 -0
  72. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostFilters.run-page.test.ts +18 -0
  73. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostFilters.tsx +18 -3
  74. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorContent.tsx +8 -2
  75. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorLoadErrors.tsx +35 -0
  76. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.test.ts +47 -1
  77. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.tsx +50 -58
  78. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTableLoading.test.ts +132 -0
  79. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTableLoading.tsx +70 -0
  80. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.test.ts +128 -138
  81. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.tsx +17 -67
  82. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-copy.ts +2 -0
  83. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-views.ts +3 -1
  84. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-page-range.ts +35 -0
  85. package/templates/.agents/dashboard/modules/cost-monitor/src/react/use-compact-cost-page.ts +16 -4
  86. package/templates/.agents/dashboard/modules/cost-monitor/src/react/use-cost-group-page.test.ts +37 -2
  87. package/templates/.agents/dashboard/modules/cost-monitor/src/react/use-cost-group-page.ts +44 -8
  88. package/templates/.agents/dashboard/modules/cost-monitor/src/react/use-cost-run-page.ts +6 -1
  89. package/templates/.agents/dashboard/modules/operations/src/contracts.ts +20 -3
  90. package/templates/.agents/dashboard/modules/operations/src/react/DeveloperAttributionPanel.test.ts +54 -0
  91. package/templates/.agents/dashboard/modules/operations/src/react/DeveloperAttributionPanel.tsx +247 -0
  92. package/templates/.agents/dashboard/modules/operations/src/react/OperationsMainContent.tsx +39 -13
  93. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.helpers.tsx +107 -2
  94. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.macro-metrics.test.ts +55 -0
  95. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.test.ts +20 -28
  96. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.tsx +162 -165
  97. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverviewTopPanel.tsx +127 -0
  98. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPage.tsx +13 -46
  99. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPageOverview.tsx +3 -0
  100. package/templates/.agents/dashboard/modules/operations/src/react/PagedWorkList.test.tsx +43 -0
  101. package/templates/.agents/dashboard/modules/operations/src/react/PagedWorkList.tsx +181 -0
  102. package/templates/.agents/dashboard/modules/operations/src/react/UnifiedWorkList.test.ts +4 -2
  103. package/templates/.agents/dashboard/modules/operations/src/react/UnifiedWorkList.tsx +13 -0
  104. package/templates/.agents/dashboard/modules/operations/src/react/developer-identities.test.ts +18 -0
  105. package/templates/.agents/dashboard/modules/operations/src/react/developer-identities.ts +30 -0
  106. package/templates/.agents/dashboard/modules/operations/src/react/execution-metrics.ts +1 -0
  107. package/templates/.agents/dashboard/modules/operations/src/react/export/ExcelExportAction.test.ts +8 -0
  108. package/templates/.agents/dashboard/modules/operations/src/react/export/ExcelExportAction.tsx +3 -0
  109. package/templates/.agents/dashboard/modules/operations/src/react/export/export-layout.test.ts +14 -5
  110. package/templates/.agents/dashboard/modules/operations/src/react/index.ts +1 -0
  111. package/templates/.agents/dashboard/modules/operations/src/react/operations-coverage-toast.test.ts +4 -3
  112. package/templates/.agents/dashboard/modules/operations/src/react/operations-date-filters.css +1 -1
  113. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview-period-filter.test.ts +21 -11
  114. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview.css +4 -0
  115. package/templates/.agents/dashboard/modules/operations/src/react/operations-page-contract.ts +8 -1
  116. package/templates/.agents/dashboard/modules/operations/src/react/operations-view-order.test.ts +1 -0
  117. package/templates/.agents/dashboard/modules/operations/src/react/period-summary.ts +1 -0
  118. package/templates/.agents/dashboard/modules/operations/src/server/metric-coverage.ts +1 -0
  119. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +527 -335
  120. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +501 -309
  121. package/templates/.agents/dashboard/packages/local-runtime/gitignore.template +2 -0
  122. package/templates/.agents/dashboard/packages/local-runtime/scripts/rebuild-sqlite-read-model.mjs +3 -1
  123. package/templates/.agents/dashboard/packages/local-runtime/scripts/test-sqlite-read-model.mjs +3 -3
  124. package/templates/.agents/dashboard/packages/local-runtime/scripts/validate-sqlite-read-model.mjs +25 -15
  125. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +527 -335
  126. package/templates/.agents/dashboard/packages/local-runtime/src/server-board.test.ts +34 -0
  127. package/templates/.agents/dashboard/packages/local-runtime/src/server-board.ts +15 -8
  128. package/templates/.agents/dashboard/packages/local-runtime/src/server-classification-page.test.ts +87 -0
  129. package/templates/.agents/dashboard/packages/local-runtime/src/server-period-macro-metric.test.ts +44 -0
  130. package/templates/.agents/dashboard/packages/local-runtime/src/server-period-macro-metric.ts +125 -0
  131. package/templates/.agents/dashboard/packages/local-runtime/src/server-reconciliation-refresh.test.ts +66 -0
  132. package/templates/.agents/dashboard/packages/local-runtime/src/server-request-authority.test.ts +61 -0
  133. package/templates/.agents/dashboard/packages/local-runtime/src/server-request-authority.ts +18 -0
  134. package/templates/.agents/dashboard/packages/local-runtime/src/server-run-projections.test.ts +42 -0
  135. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-refresh.ts +97 -0
  136. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot.test.ts +3 -1
  137. package/templates/.agents/dashboard/packages/local-runtime/src/server-sqlite-task-trace.ts +91 -0
  138. package/templates/.agents/dashboard/packages/local-runtime/src/server.test-fixtures.ts +36 -0
  139. package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +98 -123
  140. package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +111 -135
  141. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-artifact-counts.ts +28 -0
  142. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-agent-page.test.ts +63 -0
  143. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-agent-page.ts +109 -0
  144. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-aggregates.ts +497 -0
  145. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-fast-page-parity.test-support.ts +65 -0
  146. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-group-page.test.ts +176 -0
  147. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-group-page.ts +119 -0
  148. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-group-projection.ts +41 -0
  149. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-invocation-page.test.ts +16 -0
  150. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-invocation-page.ts +29 -0
  151. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-cache.ts +355 -0
  152. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-persistence.ts +121 -0
  153. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-timing.ts +27 -0
  154. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-projection.ts +15 -0
  155. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.test.ts +223 -0
  156. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.ts +304 -0
  157. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-cache.test-support.ts +23 -0
  158. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-first-fold-types.ts +89 -0
  159. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-multi-provider-fixture.ts +227 -0
  160. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-multi-provider.test.ts +691 -0
  161. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-source-fingerprint.ts +81 -0
  162. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +440 -863
  163. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.ts +1120 -1086
  164. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-cache.ts +129 -0
  165. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-install.test.ts +26 -0
  166. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-install.ts +28 -0
  167. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-seed.test.ts +116 -0
  168. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-launch-page.mjs +146 -0
  169. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-launch-page.test.mjs +165 -0
  170. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-refresh.mjs +140 -0
  171. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.mjs +188 -299
  172. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.test.mjs +51 -70
  173. package/templates/.agents/dashboard/packages/windows-launcher/Program.cs +5 -2
  174. package/templates/.agents/dashboard/tests/e2e/playwright.config.ts +4 -1
  175. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-loading.spec.ts +142 -0
  176. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-pagination.spec.ts +232 -0
  177. package/templates/.agents/dashboard/tests/e2e/specs/dashboard-performance-matrix.spec.ts +743 -0
  178. package/templates/.agents/dashboard/tests/e2e/specs/dashboard.spec.ts +183 -210
  179. package/templates/.agents/dashboard/zaip-dashboard-windows.exe +0 -0
  180. package/templates/.agents/requirements/autonomous-assurance.md +6 -6
  181. package/templates/.agents/requirements/comparative-audit.md +1 -1
  182. package/templates/.agents/requirements/context-engine.md +1 -1
  183. package/templates/.agents/requirements/cost-observability.md +1 -1
  184. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  185. package/templates/.agents/requirements/data-export.md +1 -1
  186. package/templates/.agents/requirements/design-system.md +1 -1
  187. package/templates/.agents/requirements/execution-engine.md +3 -3
  188. package/templates/.agents/requirements/kanban-dashboard.md +10 -2
  189. package/templates/.agents/requirements/model-orchestration.md +1 -1
  190. package/templates/.agents/requirements/public-distribution.md +1 -1
  191. package/templates/.agents/requirements/software-architecture.md +1 -1
  192. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  193. package/templates/.agents/requirements/work-lifecycle.md +4 -4
  194. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  195. package/templates/.agents/rules/dashboard-ui-consistency.md +14 -0
  196. package/templates/.agents/rules/frontend-lite.md +4 -4
  197. package/templates/.agents/rules/run-lifecycle-closure.md +4 -4
  198. package/templates/.agents/runtime/bin/zaip.mjs +1137 -1037
  199. package/templates/.agents/runtime/checksums.sha256 +2 -2
  200. package/templates/.agents/runtime/provenance.json +2 -2
  201. package/templates/.agents/skills/criar-pasta-obsidian/scripts/generate-obsidian-vault.test.mjs +20 -16
  202. package/templates/.agents/skills/zaip-skill-agent-catalog/SKILL.md +22 -0
  203. package/templates/.agents/skills/zaip-skill-agent-catalog/agents/openai.yaml +4 -0
  204. package/templates/.agents/skills/zaip-skill-author-skills/SKILL.md +3 -2
  205. package/templates/.agents/skills/zaip-skill-author-skills/scripts/audit-skill-catalog.mjs +49 -0
  206. package/templates/.agents/skills/zaip-skill-author-skills/scripts/author-skill-scripts.test.mjs +27 -0
  207. package/templates/.agents/skills/zaip-skill-author-skills/scripts/run-skill-tests.mjs +37 -0
  208. package/templates/.agents/skills/zaip-skill-backend/SKILL.md +1 -0
  209. package/templates/.agents/skills/zaip-skill-change/SKILL.md +1 -1
  210. package/templates/.agents/skills/zaip-skill-change/references/observable-evidence.md +83 -0
  211. package/templates/.agents/skills/zaip-skill-dashboard-diagnostics/SKILL.md +22 -0
  212. package/templates/.agents/skills/zaip-skill-dashboard-diagnostics/agents/openai.yaml +4 -0
  213. package/templates/.agents/skills/zaip-skill-execution/SKILL.md +1 -1
  214. package/templates/.agents/skills/zaip-skill-frontend/SKILL.md +4 -3
  215. package/templates/.agents/skills/zaip-skill-frontend/agents/openai.yaml +2 -2
  216. package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +10 -10
  217. package/templates/.agents/skills/zaip-skill-lifecycle-closure/SKILL.md +27 -0
  218. package/templates/.agents/skills/zaip-skill-lifecycle-closure/agents/openai.yaml +4 -0
  219. package/templates/.agents/skills/zaip-skill-prd/SKILL.md +4 -0
  220. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-local-telemetry.mjs +72 -22
  221. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-explicit-recovery.mjs +223 -0
  222. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-lib.mjs +42 -1
  223. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-lib.test.mjs +101 -0
  224. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-remeasurement.test.mjs +53 -0
  225. package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +20 -0
  226. package/templates/.agents/skills/zaip-skill-release-qualification/agents/openai.yaml +4 -0
  227. package/templates/.agents/skills/zaip-skill-review/SKILL.md +5 -0
  228. package/templates/.agents/skills/zaip-skill-rules/SKILL.md +1 -1
  229. package/templates/.agents/skills/zaip-skill-spec/SKILL.md +4 -0
  230. package/templates/.agents/skills/zaip-skill-sqlite-read-model/SKILL.md +22 -90
  231. package/templates/.agents/zaip-aios/INDEX.md +57 -32
  232. package/templates/.agents/zaip-aios/README.md +22 -12
  233. package/templates/.agents/zaip-aios/guides/02-requirements.md +5 -0
  234. package/templates/.agents/zaip-aios/guides/06-execucao.md +13 -4
  235. package/templates/.agents/zaip-aios/guides/07-revisao-e-validacao.md +7 -0
  236. package/templates/.agents/zaip-aios/guides/10-seguranca.md +23 -0
  237. package/templates/.agents/zaip-aios/guides/11-observabilidade-e-custos.md +6 -6
  238. package/templates/.agents/zaip-aios/guides/13-boas-praticas.md +3 -0
  239. package/templates/.agents/zaip-aios/guides/16-lifecycle-e-reconciliacao.md +12 -3
  240. package/templates/.agents/zaip-aios/guides/17-como-o-custo-e-calculado.md +5 -5
  241. package/templates/.agents/zaip-aios/guides/19-assurance-e-autonomia.md +23 -0
  242. package/templates/.agents/zaip-aios/guides/20-instalacao-detalhada.md +44 -8
  243. package/templates/.agents/zaip-aios/guides/21-telemetria-monitor-custos.md +8 -14
  244. package/templates/.agents/zaip-aios/guides/22-fluxos-e-roteamento.md +5 -0
  245. package/templates/.agents/zaip-aios/guides/23-orquestracao-de-modelos.md +6 -6
  246. package/templates/.agents/zaip-aios/guides/24-calculo-de-custos-openai.md +8 -8
  247. package/templates/.agents/zaip-aios/guides/25-fontes-de-precos-openai.md +3 -2
  248. package/templates/.agents/zaip-aios/guides/26-qualidade-e-release.md +77 -10
  249. package/templates/.agents/zaip-aios/guides/27-telemetria-git-native.md +8 -3
  250. package/templates/.agents/zaip-aios/guides/28-lifecycle-completo.md +5 -0
  251. package/templates/template-manifest.json +555 -170
  252. package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-BwtitWa_.js +0 -1
  253. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-BZ5WdaMN.css +0 -1
  254. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-N5Csr0RP.js +0 -68
  255. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-C4aIB1PV.js +0 -2
  256. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-DK_enB5Z.css +0 -1
  257. package/templates/.agents/dashboard/apps/frontend/src/use-idle-cost-prefetch.ts +0 -45
  258. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs.metafile.json +0 -7333
@@ -4,24 +4,45 @@ Este guia descreve o modelo de lifecycle V2 no layout V3. Durante a transição,
4
4
 
5
5
  ## Pré-requisitos
6
6
 
7
- - Node.js 22 ou superior;
8
- - pnpm 11;
7
+ - Node.js compatível com o pacote (declara 22+); para Dashboard, confirme `node:sqlite` disponível, como no ambiente de referência 22.16.0;
9
8
  - Git;
10
9
  - permissões de escrita no repositório consumidor.
11
10
 
11
+ O consumidor não precisa compilar o monorepo nem instalar pnpm para executar
12
+ o runtime distribuído. No checkout mantenedor, use o pnpm fixado em
13
+ `packageManager` (11.12.0 neste snapshot), com `corepack pnpm` quando disponível.
14
+
15
+ ## Instalação pública no projeto consumidor
16
+
17
+ Na raiz do projeto-alvo:
18
+
19
+ ```bash
20
+ npx @zaip-ai/cli@latest init --dry-run
21
+ npx @zaip-ai/cli@latest init
22
+ node .agents/runtime/bin/zaip.mjs doctor --json
23
+ ```
24
+
25
+ Revise o dry-run antes da instalação. `@latest` seleciona a versão publicada,
26
+ não alterações ainda locais neste repositório. O binário público `zaip` é o
27
+ instalador; nos exemplos de lifecycle deste guia, `zaip ...` é uma abreviação
28
+ de `node .agents/runtime/bin/zaip.mjs ...` no projeto consumidor. Use o caminho
29
+ explícito para evitar colisão entre os dois CLIs.
30
+
12
31
  ## Construir o CLI
13
32
 
14
- No repositório-fonte:
33
+ Somente no repositório-fonte, para manutenção do framework:
15
34
 
16
35
  ```bash
17
- pnpm install
18
- pnpm build
36
+ corepack pnpm install --frozen-lockfile
37
+ corepack pnpm build
19
38
  node packages/cli/dist/index.js version
20
39
  ```
21
40
 
22
- Nos exemplos abaixo, substitua `zaip` por `node /caminho/zaip-aios/packages/cli/dist/index.js` se o binário ainda não estiver no `PATH`.
41
+ Nesse checkout compilado, use `node packages/cli/dist/index.js ...` para os
42
+ comandos de lifecycle. Em `--workspace`, informe o destino autorizado; não
43
+ confunda a raiz fonte com o projeto consumidor.
23
44
 
24
- ## Instalar ou atualizar
45
+ ## Setup pelo CLI de lifecycle
25
46
 
26
47
  Faça primeiro um dry-run e revise conflitos:
27
48
 
@@ -76,7 +97,16 @@ zaip migrate rollback --workspace /caminho/do/projeto --migration ID
76
97
 
77
98
  Use Task-first para uma alteração pontual e bem delimitada. Use SPEC quando o objetivo técnico exige várias Tasks, dependências ou execução autônoma longa. Use PRD quando é necessário traduzir objetivo de negócio, usuários, métricas e restrições em uma ou mais SPECs.
78
99
 
79
- PRD e SPEC são opcionais. Toda mensagem é capturada por uma Execution e uma Run. Para pergunta, feedback ou análise pontual somente leitura, use `zaip conversation start` e `zaip conversation finish`: é criada uma Execution `interaction`, sem Task ou Change artificial. A criação ou o refinamento explícito de PRD/SPEC `draft` é a exceção de definição e pode persistir o macro e seu PreparedPlan na própria `interaction`, sem Task, Change ou Execution `delivery`. Fora dessa exceção, qualquer alteração intencional e persistente em código, documentação, configuração ou outro arquivo do repositório ou do computador exige uma Execution `delivery`, Task materializada e Run raiz de orquestração ativa antes da primeira escrita.
100
+ PRD e SPEC são opcionais. O intake captura uma vez por turno observável;
101
+ continuação reutiliza o foco válido e publicação puramente Git não cria
102
+ lifecycle. Para pergunta, feedback ou análise read-only, `conversation start`
103
+ e `conversation finish` registram uma interaction sem Task/Change artificial.
104
+ Criar/refinar explicitamente PRD/SPEC `draft` pode persistir macro e PreparedPlan
105
+ na própria interaction, sem delivery. Fora dessa exceção, alterações persistentes
106
+ de código, documentação ou configuração exigem delivery, Task materializada e
107
+ Run raiz ativa antes da escrita; caches/builds e projeções geradas seguem as
108
+ isenções da Rule de workflow. Interaction read-only sem descendentes não exige
109
+ executor nem finalizador.
80
110
 
81
111
  Uma solicitação direta de ação entra em Execução; ela não passa artificialmente por Definição ou Planejamento. Uma Task independente que foi apenas preparada e ainda não começou fica em Pronto para executar. No quadro, Definição é exclusiva de PRDs em draft e Planejamento é exclusivo de SPECs em draft. O contrato completo está em [Lifecycle de trabalho](28-lifecycle-completo.md).
82
112
 
@@ -200,6 +230,12 @@ verificação não se aplica, registre `status: not_applicable` e a justificativ
200
230
  permanece pendência. O dashboard contabiliza testes e considera uma etapa rastreada somente quando
201
231
  existe timestamp de origem, sem substituir ausência pelo horário da consulta.
202
232
 
233
+ Quando houver prova observável por AC, siga o contrato
234
+ [canônico](../../skills/zaip-skill-change/references/observable-evidence.md).
235
+ `validation observe` registra uma declaração sanitizada inline; não abre arquivo
236
+ de entrada, não executa o procedimento e não cria Validation aprovada. Somente
237
+ uma observação `confirmed` e vinculada pode complementar Evidence já compatível.
238
+
203
239
  Decisões curtas ficam inline. Se uma decisão exigir ADR, salve-o em `decisions/` dentro da própria Change ou Execution e mantenha o resumo no Markdown principal.
204
240
 
205
241
  ## Runs e custos
@@ -1,30 +1,24 @@
1
1
  # Contrato de telemetria do Monitor de Custos
2
2
 
3
- Atualizado em 26 de julho de 2026.
3
+ Este guia descreve o contrato e não declara cobertura, totais ou preços de um período como estado atual.
4
4
 
5
5
  ## Escopo
6
6
 
7
- O Monitor de Custos é uma visão financeira de invocações LLM. Cada linha exibida deve possuir:
8
-
9
- - tokens coletados;
10
- - custo BRL calculável a partir dos tokens e do catálogo histórico;
11
- - duração de origem observada.
12
-
13
- Runs de lifecycle não são automaticamente linhas financeiras. Uma Run sem chamada LLM, ou com chamada sem correspondência local verificável, permanece no histórico de Operação e não entra no Monitor. Isso impede que `0` seja usado para esconder falta de coleta.
7
+ O Monitor de Custos é uma visão financeira da população de Runs de Operação. Cada linha preserva a disponibilidade de suas métricas: tokens sem captura, custo sem componentes/tarifa/câmbio suficientes e duração sem fonte permanecem indisponíveis; não são convertidos em `0` nem removidos para produzir uma cobertura artificial. A elegibilidade de uma estimativa de custo exige tokens e identidade de preço verificáveis, mas uma Run de lifecycle não precisa ter chamada LLM para continuar visível com lacunas explícitas.
14
8
 
15
9
  ## Fonte e proveniência
16
10
 
17
11
  A projeção é **manifest-first**: usa os manifests e registros Git como fonte canônica e a telemetria local apenas para uma reconciliação com correspondência exata. O Dashboard não usa SQLite como fonte de dados do Monitor de Custos.
18
12
 
19
- Tokens, custo e duração exibidos no Monitor mantêm proveniência observada. Uma duração limitada de lifecycle com proveniência `legacy_inferred` pode permanecer em Operação e Rastreabilidade, mas não completa uma linha financeira nem entra em seus agregados.
13
+ Tokens, custo e duração devem exibir sua proveniência. Tokens e configuração efetiva de modelo/effort só são observados quando a fonte os informa; defaults planejados não preenchem esses campos. A projeção pode exibir duração `observed`, `reconciled`, `legacy_inferred` ou `estimated`. Apenas `observed` é medição da fonte; as demais são derivadas e não satisfazem um critério que exija duração capturada.
20
14
 
21
15
  ## Cobertura e valores exibidos
22
16
 
23
- `Cobertura de 100%` neste monitor significa que todas as linhas financeiras exibidas têm tokens, custo e duração observada. A contagem e a cobertura precisam ser recalculadas após qualquer mudança no critério de elegibilidade; não reutilize uma auditoria anterior como prova do conjunto novo.
17
+ Cobertura é calculada por métrica e pelo conjunto filtrado. `100%` para tokens, custo ou duração só significa que aquela métrica está completa segundo sua definição e proveniência declarada; não demonstra automaticamente que as outras estão completas ou que a duração foi observada. Recalcule a cobertura após qualquer mudança de critério e não reutilize uma auditoria anterior como prova do conjunto novo.
24
18
 
25
- Os agregados de Conversas, Providers, Agentes, Modelos, Diário, Mensal e Anual usam as mesmas invocações financeiras da tabela. Um agente configurado sem invocações no período é um agregado vazio real e exibe zero. Duração ausente exibe `Indisponível`; o valor bruto e sua proveniência continuam disponíveis para auditoria.
19
+ Os agregados de Conversas, Providers, Agentes, Modelos, Diário, Mensal e Anual usam o mesmo conjunto filtrado da tabela e preservam as lacunas de cada métrica. Um agente configurado sem invocações no período é um agregado vazio real e exibe zero. Duração ausente exibe `Indisponível`; uma duração derivada deve mostrar sua proveniência e não ser lida como captura.
26
20
 
27
- Não se deve converter em zero um registro que esteja fora do conjunto financeiro por ausência de coleta. Na auditoria, 126 Runs de Operação estavam nessa condição: 111 sem chamada LLM e 15 sem correspondência local única. Elas não alteram a cobertura das linhas financeiras.
21
+ Não use contagens, totais ou percentuais de auditorias passadas como diagnóstico atual. Consulte o período e os filtros da execução auditada; uma lacuna de coleta continua sendo lacuna, mesmo quando há estimativa ou reconciliação exibida.
28
22
 
29
23
  ## Filtros e totais
30
24
 
@@ -47,6 +41,6 @@ Filtros preenchidos somente com data são inclusivos: a data inicial começa em
47
41
  node scripts/validate-release-parity.mjs --release
48
42
  ```
49
43
 
50
- 3. Consulte `/api/v2/cost-monitor` no período auditado e confirme, para cada grupo, que `missing_tokens`, `missing_cost_brl` e `missing_duration` são zero. Em seguida, compare o total de custo retornado com o card da Visão geral usando exatamente os mesmos filtros.
44
+ 3. Consulte `/api/v2/cost-monitor` no período auditado. Confirme que os campos de cobertura e proveniência são coerentes com o objetivo da auditoria; para alegar telemetria capturada, exija tokens, custo e duração observados, não apenas totais ou estimativas. Em seguida, compare o total de custo retornado com o card da Visão geral usando exatamente os mesmos filtros.
51
45
 
52
- Se houver uma lacuna, preserve-a como ausência até existir uma correspondência exata e única. Ação de reconciliação não autoriza estimar token, custo ou duração.
46
+ Se houver uma lacuna, preserve-a como ausência até existir uma correspondência exata e única. Reconciliação ou estimativa podem ser exibidas com proveniência, mas não autorizam alegar token, custo ou duração capturados.
@@ -20,6 +20,11 @@ Tentativa → gates e review
20
20
  correção necessária → classificar rework → recalibrar agente, modelo e esforço → nova tentativa
21
21
  ```
22
22
 
23
+ Observação por AC é um checkpoint de prova, não um supervisor de tempo ou um
24
+ atalho de aprovação: o registro não executa o procedimento, não transforma
25
+ resultado pendente em verde e não dispensa review/finalizador. Consulte o
26
+ [contrato canônico](../../skills/zaip-skill-change/references/observable-evidence.md).
27
+
23
28
  Em PRD/SPEC com `model_orchestration.mode:auto`, trabalho simples e delimitado pode usar Luna/low, execução padrão Terra/medium e ambiguidade, transversalidade ou rework estrutural Sol/high ou xhigh. Conversation e Task-first preservam a seleção manual do host/Codex. Criticidade amplia assurance; não eleva modelo mecanicamente.
24
29
 
25
30
  ## Entradas e planejamento
@@ -31,7 +31,7 @@ Quando `model_orchestration.mode` estiver como `manual`, o ZAIP:
31
31
  4. informa a recomendação antes de continuar;
32
32
  5. nunca altera a configuração automaticamente.
33
33
 
34
- O modo manual não usa hook nem tenta coletar a configuração efetiva no transcript. Quando algum valor não estiver disponível, usa `default_model`, `default_effort` e `default_velocity` de `project.yaml`. Nesta versão, os três fallbacks são literalmente `manual`; o aviso nunca usa `não informado` nem infere valores pelo comportamento aparente do modelo.
34
+ O modo manual não usa hook nem tenta coletar a configuração efetiva no transcript. `default_model`, `default_effort` e `default_velocity` podem orientar uma recomendação, mas não comprovam o que o host executou. Quando modelo, effort ou velocidade efetivos não vierem de fonte observada, registre-os como indisponíveis/`unknown`; nunca os infira pelo comportamento aparente do modelo nem os substitua pelo default.
35
35
 
36
36
  Formato recomendado:
37
37
 
@@ -159,7 +159,7 @@ O catálogo mantém IDs internos estáveis como `agent-builder`, enquanto o adap
159
159
  | --- | --- | --- |
160
160
  | `agent-orchestrator` | Terra `low` | Sol `medium` para DAG complexa; `high` para síntese final crítica |
161
161
  | `agent-builder` | Terra `medium` | Sol `medium` para arquitetura, segurança ou migração |
162
- | `agent-reviewer` | Sol `medium` | Sol `high` para revisão complexa delimitada |
162
+ | `agent-reviewer` | Terra `medium` no catálogo | Sol quando a política e os sinais da revisão justificarem elevação; `high` para revisão complexa delimitada |
163
163
  | `agent-integrator` | Terra `medium` | Sol `medium` somente quando outra regra explícita exigir raciocínio transversal |
164
164
  | `agent-auditor` e `agent-security-auditor` | Sol `high` | `xhigh` apenas quando elegível e medido |
165
165
  | `agent-finalizer` | Terra `medium` | sem elevação automática; avalia evidência já produzida |
@@ -404,7 +404,7 @@ policy.runtime_defaults explícito da Execution
404
404
 
405
405
  O runtime anuncia modelos, efforts e velocidades antes do dispatch. Modelo fora da allowlist, effort desconhecido, `ultra`, `max`, velocidade diferente de `standard` ou capacidade incompatível produzem erro tipado; não existe fallback silencioso.
406
406
 
407
- O cabeçalho de cada Run ou Sub-Run preserva a configuração resolvida, e `model.selection.recorded` registra a mesma decisão antes do dispatch; o default do catálogo não pode substituir o modelo realmente invocado. Telemetria efetiva e Calls conhecidas permanecem dentro da mesma chamada de agente. Run raiz é a chamada do orquestrador e possui `parent_run_id: null`; Sub-Run possui pai:
407
+ Quando a seleção foi registrada, o cabeçalho da Run ou Sub-Run preserva a configuração resolvida e `model.selection.recorded` registra a decisão antes do dispatch; o default do catálogo não pode substituir o modelo realmente invocado. Telemetria efetiva e Calls conhecidas permanecem dentro da mesma chamada de agente. Capturas terminais sem metadados ricos mantêm modelo e effort indisponíveis; não devem receber uma seleção reconstruída. Run raiz é a chamada do orquestrador e possui `parent_run_id: null`; Sub-Run possui pai:
408
408
 
409
409
  ```yaml
410
410
  agent_run:
@@ -429,7 +429,7 @@ agent_run:
429
429
  - terra-implementation-baseline
430
430
  ```
431
431
 
432
- Requested e effective não devem ser confundidos, pois o runtime ou serviço pode aplicar fallback ou reroteamento.
432
+ Requested e effective não devem ser confundidos, pois o runtime ou serviço pode aplicar fallback ou reroteamento. `effective_*` só pode ser preenchido por fonte observada; ausência dessa fonte não autoriza copiar `requested_*`.
433
433
 
434
434
  No dashboard, Runs e Sub-Runs são separados por `parent_run_id` e ordenados por `started_at` decrescente, independentemente do shard físico da projeção. A Run raiz usa a identidade visível `zaip-agent-orchestrator`; Sub-Runs usam o `zaip-agent-*` efetivamente selecionado. O Monitor de Custos agrupa e filtra pela identidade visível, mantém o modelo configurado de cada chamada em destaque e mostra o modelo efetivo separadamente. Quando o host não informou a configuração planejada, o modelo efetivo é rotulado como observado, nunca apresentado como se tivesse sido selecionado pelo catálogo.
435
435
 
@@ -443,7 +443,7 @@ O dashboard cria visões separadas para Runs e Sub-Runs, mas não cria entidade
443
443
  4. tokens e custo agregados na Run;
444
444
  5. divergência requested/effective sem dupla contagem.
445
445
 
446
- Todas as Calls da mesma Run reutilizam a configuração planejada. Se o provider aplicar fallback, a diferença aparece como configuração efetiva e não muda o cabeçalho. Valores indisponíveis permanecem `null`; prompt e reasoning privado nunca são armazenados.
446
+ Todas as Calls da mesma Run reutilizam a configuração planejada. Se o provider aplicar fallback, a diferença aparece como configuração efetiva observada e não muda o cabeçalho. Valores indisponíveis permanecem `null`; prompt e reasoning privado nunca são armazenados.
447
447
 
448
448
  ## Garantias implementadas
449
449
 
@@ -451,7 +451,7 @@ Todas as Calls da mesma Run reutilizam a configuração planejada. Se o provider
451
451
  2. `automatic_sources` restringe a política a `spec` e `prd`; o schema rejeita `task`.
452
452
  3. Novos PreparedPlans de PRD/SPEC calculam risco e motivos a partir de sinais persistidos; planos históricos permanecem legíveis.
453
453
  4. O coordenador injeta a política somente em Executions elegíveis e resolve novamente no início de cada Agent Run de Task/fase.
454
- 5. A captura de conversa registra o modelo explicitamente observado ou `unknown`; não infere o baseline automático para Task avulsa.
454
+ 5. A captura de conversa registra o modelo explicitamente observado ou `unknown`; modelo e effort efetivos não são inferidos a partir do baseline automático, do catálogo ou de uma Task avulsa.
455
455
  6. O resolvedor determinístico aplica allowlist, capacidades, overrides e motivos observáveis antes do dispatch.
456
456
  7. Testes cobrem a matriz de risco/modelo/effort, precedência, capacidades, rejeições e atribuição sem inferência.
457
457
  8. O ledger rejeita Calls com modelo, effort ou decisão de seleção solicitados diferentes dentro da mesma Agent Run.
@@ -1,6 +1,6 @@
1
1
  # Auditoria do cálculo de custo equivalente via API
2
2
 
3
- Atualizado em 15 de julho de 2026.
3
+ Este documento usa o snapshot versionado em `.agents/config/pricing/models.json`; não declara que as tarifas ou a cotação de exemplo são atuais fora desse snapshot.
4
4
 
5
5
  ## Objetivo e limite
6
6
 
@@ -17,7 +17,7 @@ O Fast do Codex é consumo de créditos da assinatura e não prova que uma requi
17
17
 
18
18
  ## Invariantes de telemetria
19
19
 
20
- O Monitor de Custos é uma superfície financeira: uma invocação só aparece quando possui tokens, custo e duração de origem observados. Lifecycle e telemetria parcial continuam disponíveis em Operação e Rastreabilidade. `null` permanece `Indisponível`; nunca é convertido em zero. Duração inferida de registros legados pode ser exibida apenas nessas superfícies não financeiras, identificada como inferida.
20
+ O Monitor de Custos preserva a disponibilidade por métrica. Custo equivalente só é calculado quando os tokens, a identidade de preço e a tarifa necessária estão disponíveis. Lifecycle e telemetria parcial continuam visíveis com lacunas explícitas. `null` permanece `Indisponível`; nunca é convertido em zero. A projeção pode mostrar duração reconciliada, inferida ou estimada com proveniência, mas isso não é duração observada nem comprova uma medição da chamada.
21
21
 
22
22
  ```text
23
23
  cached_input <= input
@@ -42,9 +42,9 @@ BRL_total = USD_total × cotação_USD_BRL
42
42
 
43
43
  A conversão para BRL é a última etapa. Quando a moeda exibida é USD, não há conversão.
44
44
 
45
- ## Exemplo prático — GPT-5.6 Sol, Standard
45
+ ## Exemplo didático — GPT-5.6 Sol, Standard
46
46
 
47
- Tarifas atuais do catálogo: input US$5, cache US$0,50 e output US$30 por 1M. Para 1.000.000 input, 800.000 cache, 100.000 output e 70.000 reasoning:
47
+ No snapshot local consultado durante a redação, `gpt-5.6-sol` contém input US$5, cache US$0,50 e output US$30 por 1M. Esses números ilustram a fórmula; confira o catálogo e a fonte registrada antes de usar valores em uma decisão atual. Para 1.000.000 input, 800.000 cache, 100.000 output e 70.000 reasoning:
48
48
 
49
49
  ```text
50
50
  input sem cache = 1.000.000 - 800.000 = 200.000
@@ -55,7 +55,7 @@ reasoning = US$ 0,00 adicional (já está nos 100.000 output)
55
55
  total = US$ 4,40
56
56
  ```
57
57
 
58
- Com USD/BRL 5,45: `4,40 × 5,45 = R$ 23,98`.
58
+ Com uma cotação **hipotética** USD/BRL de 5,45: `4,40 × 5,45 = R$ 23,98`.
59
59
 
60
60
  ## Service tier, contexto e dados incompletos
61
61
 
@@ -63,11 +63,11 @@ Com USD/BRL 5,45: `4,40 × 5,45 = R$ 23,98`.
63
63
  - Priority e contexto longo sem tarifa oficial combinada retornam custo indisponível, em vez de uma multiplicação inventada.
64
64
  - Regras de contexto longo só são usadas para modelos cujo catálogo traz limiar e tarifas publicadas.
65
65
  - Modelo sem correspondência, provedor incompatível ou tarifa ausente retorna `null` para custo.
66
- - Runs históricas sem billing mode, snapshot ou tier efetivo são estimativas equivalentes, nunca valores de fatura.
66
+ - Runs históricas sem billing mode, snapshot ou tier efetivo não comprovam uma cobrança; se faltarem os componentes exigidos pelo cálculo, o custo equivalente permanece indisponível.
67
67
 
68
68
  ## Auditoria por Run
69
69
 
70
- Na aba Runs, confirme nesta ordem: modelo efetivo, velocidade observada, **Cenário velocidade API**, input, cache, output, reasoning, tarifas selecionadas, USD e BRL. `Priority (derivado de Fast)` significa cenário de estimativa, não cobrança API comprovada. `USD/BRL registrado` e `BRL registrado` são a fotografia histórica quando existirem; `Estimativa API (BRL)` usa a cotação global atual.
70
+ Na aba Runs, confirme nesta ordem: fonte do modelo efetivo, velocidade observada, **Cenário velocidade API**, input, cache, output, reasoning, tarifas selecionadas, USD e BRL. Modelo/effort sem fonte observada permanecem indisponíveis. `Priority (derivado de Fast)` significa cenário de estimativa, não cobrança API comprovada. `USD/BRL registrado` e `BRL registrado` são fotografia histórica quando existirem; uma estimativa em BRL deve identificar a cotação usada, sem apresentá-la como valor atual por padrão.
71
71
 
72
72
  ## Prova real agregada por modelo
73
73
 
@@ -75,7 +75,7 @@ A aba **Modelos** não lista Runs. Cada linha agrega todas as Runs do modelo den
75
75
 
76
76
  As tarifas exibidas ali são **efetivas ponderadas**, não uma média simples: `USD do componente × 1.000.000 / tokens cobráveis do componente`. Assim, a taxa reproduz exatamente o custo agregado mesmo quando o modelo tiver Runs com contextos ou tarifas diferentes. Contexto, multiplicador de velocidade e cenário mostram `Misto` quando não forem uniformes; o dashboard não inventa uma média para multiplicadores.
77
77
 
78
- Para conferir a soma: `USD estimado API = USD entrada + USD cache + USD saída + USD raciocínio`; no catálogo atual o último normalmente é zero, porque reasoning já está incluído em output. O câmbio efetivo é `BRL estimado / USD estimado`, calculado somente depois da soma em USD.
78
+ Para conferir a soma: `USD estimado API = USD entrada + USD cache + USD saída + USD raciocínio`; no snapshot local usado pela implementação, reasoning é parte de output e o componente adicional é zero quando `reasoning_billed_separately` é falso. O câmbio efetivo é `BRL estimado / USD estimado`, calculado somente depois da soma em USD.
79
79
 
80
80
  ## Implementação e testes
81
81
 
@@ -1,6 +1,6 @@
1
1
  # Fontes oficiais de preços OpenAI
2
2
 
3
- Consulta em 15 de julho de 2026. Valores operacionais ficam no catálogo versionado `.agents/config/pricing/models.json`; esta página é o registro de auditoria das fontes.
3
+ Registro local de consulta em 15 de julho de 2026. Valores operacionais ficam no catálogo versionado `.agents/config/pricing/models.json`; esta página preserva as fontes usadas naquele registro, não confirma preços atuais sem nova consulta.
4
4
 
5
5
  | Tema | Fonte oficial | Uso na implementação |
6
6
  | --- | --- | --- |
@@ -11,8 +11,9 @@ Consulta em 15 de julho de 2026. Valores operacionais ficam no catálogo version
11
11
 
12
12
  ## Regras de atualização
13
13
 
14
- 1. Atualize primeiro a fonte oficial e a data de consulta.
14
+ 1. Consulte novamente a fonte oficial e registre a data/hora da nova consulta; não promova esta tabela histórica a estado atual.
15
15
  2. Atualize o catálogo em uma alteração separada e registre o snapshot/versão quando disponível.
16
16
  3. Inclua testes com input, cached input e output.
17
17
  4. Não crie tarifa para uma combinação que a tabela oficial não publique.
18
18
  5. Não transforme créditos Codex em USD sem uma regra oficial explícita.
19
+ 6. Preserve modelo, tier e effort efetivos como indisponíveis quando não forem retornados por fonte observada; defaults de configuração não os substituem.
@@ -8,29 +8,96 @@ O candidato de release precisa passar gates locais, clean-room e distribuição
8
8
 
9
9
  - 80% de lines;
10
10
  - 80% de functions;
11
- - 70% de branches;
11
+ - 75% de branches;
12
12
  - 80% de statements.
13
13
 
14
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
15
 
16
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
17
 
18
- ## Ordem de qualificação
18
+ ## Gates agregados e diagnósticos
19
19
 
20
- 1. `pnpm validate:github:prepared`
21
- 2. `pnpm test:coverage`
22
- 3. `pnpm test:release-e2e`
23
- 4. `pnpm turbo run test:e2e --filter=@zaip-ai/dashboard-e2e`
24
- 5. `pnpm audit --prod --audit-level high`
25
- 6. `pnpm --dir public-cli verify`
26
- 7. `pnpm release:verify` no worktree final limpo
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.
27
25
 
28
- `release:artifacts` deve estabilizar os manifests antes de `sync:framework-lock`. Depois do lock, o template público é sincronizado e auditado novamente.
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.
29
85
 
30
86
  ## Arquivos efêmeros
31
87
 
32
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.
33
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
+
34
101
  ## Evidência e aprovação
35
102
 
36
103
  Testes passando comprovam validação técnica. Maturidade formal máxima exige ainda:
@@ -12,7 +12,9 @@ O caminho implementado possui quatro camadas:
12
12
  4. leitura manifest-first no Monitor de Custos, complementada pelos dados de lifecycle já lidos dos manifests canônicos.
13
13
 
14
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.
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.
16
18
 
17
19
  ## Fluxo dos dados
18
20
 
@@ -83,7 +85,9 @@ Um resumo preserva:
83
85
 
84
86
  O custo histórico é agregado apenas quando preço, câmbio e componentes necessários são
85
87
  compatíveis. O leitor não reprecifica silenciosamente uma execução antiga. Se qualquer componente
86
- necessário estiver ausente, o total correspondente permanece `null`.
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.
87
91
 
88
92
  ### Chunks e manifestos
89
93
 
@@ -120,7 +124,8 @@ chunks incompatíveis antes da leitura. O leitor valida:
120
124
  Quando há summaries válidos para o período, tokens e custos vindos do manifesto são autoritativos.
121
125
  Os dados de lifecycle carregados de `records/lifecycle` continuam fornecendo campos que o resumo não
122
126
  conhece. Em particular, uma duração de lifecycle delimitada é preservada quando o summary não possui
123
- duração observável. Se não houver summaries aplicáveis, o Dashboard preserva os dados de lifecycle e
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
124
129
  a cobertura disponível; não lê nem recria uma projeção ou arquivo local, e nunca promove a cobertura
125
130
  para `complete`.
126
131
 
@@ -72,6 +72,11 @@ No modo nativo do Codex, a orquestração materializa essa etapa como um envelop
72
72
 
73
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
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
+
75
80
  Exemplo:
76
81
 
77
82
  ```bash