@zaip-ai/cli 4.7.0 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/adapters.d.ts +1 -1
- package/dist/services/adapters.js +1 -1
- package/dist/services/codex-hook-activation.d.ts.map +1 -1
- package/dist/services/codex-hook-activation.js +12 -0
- package/dist/services/codex-hook-activation.js.map +1 -1
- package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
- package/dist/services/codex-pre-tool-hook-template.js +86 -10
- package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
- package/dist/services/codex-pre-tool-hook-template.test.js +72 -0
- package/dist/services/codex-pre-tool-hook-template.test.js.map +1 -1
- package/dist/services/codex-pre-tool-support-template.d.ts.map +1 -1
- package/dist/services/codex-pre-tool-support-template.js +19 -2
- package/dist/services/codex-pre-tool-support-template.js.map +1 -1
- package/dist/services/codex-subagent-hook-template.d.ts +1 -1
- package/dist/services/codex-subagent-hook-template.d.ts.map +1 -1
- package/dist/services/codex-subagent-hook-template.js +46 -13
- package/dist/services/codex-subagent-hook-template.js.map +1 -1
- package/dist/services/codex-validation-runtime-template.d.ts.map +1 -1
- package/dist/services/codex-validation-runtime-template.js +31 -10
- package/dist/services/codex-validation-runtime-template.js.map +1 -1
- package/dist/services/global-codex-config-migration-rollback.test.d.ts +2 -0
- package/dist/services/global-codex-config-migration-rollback.test.d.ts.map +1 -0
- package/dist/services/global-codex-config-migration-rollback.test.js +88 -0
- package/dist/services/global-codex-config-migration-rollback.test.js.map +1 -0
- package/dist/services/global-codex-config-migration.test.js +69 -82
- package/dist/services/global-codex-config-migration.test.js.map +1 -1
- package/dist/services/global-codex-config-transaction.test.js +5 -1
- package/dist/services/global-codex-config-transaction.test.js.map +1 -1
- package/dist/services/global-codex-config.d.ts.map +1 -1
- package/dist/services/global-codex-config.js +32 -53
- package/dist/services/global-codex-config.js.map +1 -1
- package/dist/services/global-codex-toml.d.ts +9 -0
- package/dist/services/global-codex-toml.d.ts.map +1 -0
- package/dist/services/global-codex-toml.js +53 -0
- package/dist/services/global-codex-toml.js.map +1 -0
- package/dist/services/logger.js +1 -1
- package/dist/services/logger.js.map +1 -1
- package/dist/services/logger.test.js +2 -2
- package/dist/services/logger.test.js.map +1 -1
- package/dist/services/runtime-template.test.js +3 -1
- package/dist/services/runtime-template.test.js.map +1 -1
- package/package.json +1 -1
- package/templates/.agents/README.md +6 -2
- package/templates/.agents/config/agents/discovery.json +1 -1
- package/templates/.agents/dashboard/.zaip-managed.json +48 -44
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{CostCalculationGuidePage-OUjdwEcM.js → CostCalculationGuidePage-BW7Vy1cp.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-Cei1ChjE.js → DashboardHelpDialog-Cp_hEVd8.js} +45 -10
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-_woNCrTT.js → PricingSettingsDialog-Prcs-ydy.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-B2_7MVOP.js → ProjectSettingsPage-Cu40wAFF.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-C_jCsSZe.js → TraceabilityWorkspace-Bh3YBd3C.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{cost-monitor-C8zQDBT7.js → cost-monitor-Co2Jiuzh.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-iMPXot7Y.js → icons-vendor-DOhy6D2-.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-DiCwz0sr.js → index-qVSJnJ0_.js} +2 -2
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-721Re3Ss.js → react-vendor-CkPC-yMz.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{traceability-BjdTkWS0.js → traceability-BEdGoIDm.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/index.html +5 -5
- package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
- package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
- package/templates/.agents/dashboard/modules/operations/package.json +1 -1
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.macro-metrics.test.ts +2 -1
- package/templates/.agents/dashboard/modules/operations/src/react/overview-duration-hint.ts +1 -3
- package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
- package/templates/.agents/dashboard/packages/branding/package.json +1 -1
- package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
- package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +226 -221
- package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +147 -147
- package/templates/.agents/dashboard/packages/local-runtime/package.json +3 -3
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +226 -221
- package/templates/.agents/dashboard/packages/local-runtime/src/active-codex-telemetry.test.ts +17 -5
- package/templates/.agents/dashboard/packages/local-runtime/src/active-codex-telemetry.ts +44 -14
- package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +9 -3
- package/templates/.agents/dashboard/packages/local-runtime/vitest.config.ts +12 -0
- package/templates/.agents/dashboard/packages/ui/package.json +1 -1
- package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
- package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-pagination.spec.ts +13 -6
- package/templates/.agents/dashboard/tests/e2e/specs/dashboard.spec.ts +1 -1
- package/templates/.agents/design/.zaip-managed.json +3 -3
- package/templates/.agents/design/apps/catalog/package.json +1 -1
- package/templates/.agents/design/packages/local-runtime/package.json +1 -1
- package/templates/.agents/requirements/autonomous-assurance.md +30 -3
- package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
- package/templates/.agents/requirements/comparative-audit.md +1 -1
- package/templates/.agents/requirements/context-engine.md +3 -3
- package/templates/.agents/requirements/cost-observability.md +1 -1
- package/templates/.agents/requirements/dashboard-launch.md +1 -1
- package/templates/.agents/requirements/data-export.md +1 -1
- package/templates/.agents/requirements/design-system.md +1 -1
- package/templates/.agents/requirements/execution-engine.md +11 -2
- package/templates/.agents/requirements/kanban-dashboard.md +1 -1
- package/templates/.agents/requirements/model-orchestration.md +1 -1
- package/templates/.agents/requirements/public-distribution.md +11 -9
- package/templates/.agents/requirements/software-architecture.md +1 -1
- package/templates/.agents/requirements/strategic-improvements.md +1 -1
- package/templates/.agents/requirements/work-lifecycle.md +1 -1
- package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
- package/templates/.agents/rules/cloud-hostinger-autonomy.md +1 -1
- package/templates/.agents/rules/production-readiness.md +24 -0
- package/templates/.agents/rules/security.md +2 -2
- package/templates/.agents/rules/workflow.md +3 -3
- package/templates/.agents/runtime/VERSION +1 -1
- package/templates/.agents/runtime/bin/zaip.mjs +313 -140
- package/templates/.agents/runtime/checksums.sha256 +6 -6
- package/templates/.agents/runtime/manifest.json +1 -1
- package/templates/.agents/runtime/pnpm-lock.sha256 +1 -1
- package/templates/.agents/runtime/provenance.json +5 -5
- package/templates/.agents/runtime/sbom.cdx.json +13 -13
- package/templates/.agents/skills/zaip-skill-execution/SKILL.md +4 -2
- package/templates/.agents/skills/zaip-skill-execution/references/controlled-release-recovery.md +30 -0
- package/templates/.agents/skills/zaip-skill-execution/references/runtime-governance.md +1 -1
- package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +2 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/references/release-gate-matrix.md +15 -20
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.mjs +36 -3
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.test.mjs +63 -4
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs +8 -6
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/guarded-commits.mjs +5 -3
- package/templates/.agents/skills/zaip-skill-lifecycle-closure/SKILL.md +7 -0
- package/templates/.agents/skills/zaip-skill-prd/SKILL.md +6 -0
- package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +24 -0
- package/templates/.agents/skills/zaip-skill-release-qualification/references/local-preparation.md +9 -3
- package/templates/.agents/skills/zaip-skill-spec/SKILL.md +9 -0
- package/templates/.agents/skills/zaip-skill-testing-strategy/SKILL.md +15 -0
- package/templates/.agents/zaip-aios/VERSION +1 -1
- package/templates/.agents/zaip-aios/guides/11-observabilidade-e-custos.md +22 -0
- package/templates/.agents/zaip-aios/guides/14-troubleshooting.md +2 -2
- package/templates/.agents/zaip-aios/guides/26-qualidade-e-release.md +14 -5
- package/templates/template-manifest.json +111 -99
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.9.0",
|
|
4
4
|
"files": [
|
|
5
5
|
{
|
|
6
6
|
"path": "DATA-DICTIONARY.md",
|
|
@@ -11,32 +11,32 @@
|
|
|
11
11
|
"sha256": "3d5a8a4f326ee34cefe23803c2e4f5d30e938933cc85f411c44cb5a746a369f7"
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
|
-
"path": "apps/frontend/dist/assets/CostCalculationGuidePage-
|
|
15
|
-
"sha256": "
|
|
14
|
+
"path": "apps/frontend/dist/assets/CostCalculationGuidePage-BW7Vy1cp.js",
|
|
15
|
+
"sha256": "5ccc7ae97c10bb21f0ee78d06a76314d7783d1129d44f1c456e0cdffdad5fa7f"
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
"path": "apps/frontend/dist/assets/DashboardHelpDialog-
|
|
19
|
-
"sha256": "
|
|
18
|
+
"path": "apps/frontend/dist/assets/DashboardHelpDialog-Cp_hEVd8.js",
|
|
19
|
+
"sha256": "5517978dff37d120956d28d614335296cca7c083a0ce2c7e8ea424590120f213"
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"path": "apps/frontend/dist/assets/DashboardHelpDialog-DRI_XwUf.css",
|
|
23
23
|
"sha256": "95dbb5c26ad73831f36f2a51d5e08ef5eee7ca85190764a3e63bf1e700fbadf8"
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
|
-
"path": "apps/frontend/dist/assets/PricingSettingsDialog-
|
|
27
|
-
"sha256": "
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"path": "apps/frontend/dist/assets/ProjectSettingsPage-B2_7MVOP.js",
|
|
31
|
-
"sha256": "a8baf3884255533b9e18913193e3b9a5a50efef384681aa3961a30c65d620c80"
|
|
26
|
+
"path": "apps/frontend/dist/assets/PricingSettingsDialog-Prcs-ydy.js",
|
|
27
|
+
"sha256": "ee4235b469215b298898968c776f0d800c677023409ee2a03bc9302ab6354afa"
|
|
32
28
|
},
|
|
33
29
|
{
|
|
34
30
|
"path": "apps/frontend/dist/assets/ProjectSettingsPage-CQMhvzvJ.css",
|
|
35
31
|
"sha256": "10e875c4e3ab6c252983822e25a85db3d707d903c0fcf39812909fdd1d013f48"
|
|
36
32
|
},
|
|
37
33
|
{
|
|
38
|
-
"path": "apps/frontend/dist/assets/
|
|
39
|
-
"sha256": "
|
|
34
|
+
"path": "apps/frontend/dist/assets/ProjectSettingsPage-Cu40wAFF.js",
|
|
35
|
+
"sha256": "8db1e01960b9645e10ed714c5c3051c46986864e978fd6c0adb126b31704e008"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"path": "apps/frontend/dist/assets/TraceabilityWorkspace-Bh3YBd3C.js",
|
|
39
|
+
"sha256": "93c81207f6772e8fa0448a24d68d19ca5e5b0e965001ca589e409a95d915780a"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"path": "apps/frontend/dist/assets/TraceabilityWorkspace-DvvavDLY.css",
|
|
@@ -47,40 +47,40 @@
|
|
|
47
47
|
"sha256": "90be9550e3b6719ffc7a029ac35a93a4f14e95263b3996ad6c06dbfc0490f307"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
"path": "apps/frontend/dist/assets/cost-monitor-
|
|
51
|
-
"sha256": "
|
|
50
|
+
"path": "apps/frontend/dist/assets/cost-monitor-Co2Jiuzh.js",
|
|
51
|
+
"sha256": "bee4e6b048a95dcc1c9eab5ac8320cbe790dcb864b96abeb3ec46415adbcd015"
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
"path": "apps/frontend/dist/assets/dashboard-localization-CF7B1Hjn.js",
|
|
55
55
|
"sha256": "b3f247723734af8b8b6ab2717a6fd07cf49fe5da8cf2c0780844d03381ee0f91"
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
|
-
"path": "apps/frontend/dist/assets/icons-vendor-
|
|
59
|
-
"sha256": "
|
|
58
|
+
"path": "apps/frontend/dist/assets/icons-vendor-DOhy6D2-.js",
|
|
59
|
+
"sha256": "be8b9c463c68fa0e5923d804befa1f757b582f3491a620a2f83caf64f2e04a31"
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"path": "apps/frontend/dist/assets/index-DZhppOIk.css",
|
|
63
63
|
"sha256": "cd290085a95d9108f11e94406b2253bfd2109e116d5d7e82460a2f4aecdaba04"
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
|
-
"path": "apps/frontend/dist/assets/index-
|
|
67
|
-
"sha256": "
|
|
66
|
+
"path": "apps/frontend/dist/assets/index-qVSJnJ0_.js",
|
|
67
|
+
"sha256": "ff997b8d9ffb7cee6ad0f713fc0f6eaa5ebf520eaef78e8728e407113bfc9bd4"
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
"path": "apps/frontend/dist/assets/logo_novo_azul-BBx5pA2B.png",
|
|
71
71
|
"sha256": "bb6043bda9fc53a111aaea4d6a004559b9ce8a3569691c060d217a7c6aafa0ae"
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
|
-
"path": "apps/frontend/dist/assets/react-vendor-
|
|
75
|
-
"sha256": "
|
|
74
|
+
"path": "apps/frontend/dist/assets/react-vendor-CkPC-yMz.js",
|
|
75
|
+
"sha256": "a9f759de008a86f22732bc5076f5b823324bfc0e11424c4c2988b2895a514bc3"
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
"path": "apps/frontend/dist/assets/rolldown-runtime-Bh1tDfsg.js",
|
|
79
79
|
"sha256": "1b13387cb23dc39bf70e31677c21f6db5cad3377b96f286b6ee444496e5bfea7"
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
|
-
"path": "apps/frontend/dist/assets/traceability-
|
|
83
|
-
"sha256": "
|
|
82
|
+
"path": "apps/frontend/dist/assets/traceability-BEdGoIDm.js",
|
|
83
|
+
"sha256": "f0df3a08dbd0dcd2532a76a90ff3b8946f826d5f6ff2b89fea663b85f7924b6f"
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
86
|
"path": "apps/frontend/dist/assets/traceability-DFY7ZDlu.css",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
},
|
|
93
93
|
{
|
|
94
94
|
"path": "apps/frontend/dist/index.html",
|
|
95
|
-
"sha256": "
|
|
95
|
+
"sha256": "d589897d8f964a92460ec4f8dc4615883d906fbf3a75b0742c098820e9d6b13d"
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
"path": "apps/frontend/dist/logo_novo_azul.png",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
106
|
"path": "apps/frontend/package.json",
|
|
107
|
-
"sha256": "
|
|
107
|
+
"sha256": "f74d924fb63535fe2d86317d1b8571d5e7adc6ef015125a4001947f86a8fe077"
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
110
|
"path": "apps/frontend/playwright.dom.config.ts",
|
|
@@ -592,7 +592,7 @@
|
|
|
592
592
|
},
|
|
593
593
|
{
|
|
594
594
|
"path": "modules/cost-monitor/package.json",
|
|
595
|
-
"sha256": "
|
|
595
|
+
"sha256": "3cd9ee1c450d146fb783e46f6ea75fad686abd74513eb5110eff323be98676d3"
|
|
596
596
|
},
|
|
597
597
|
{
|
|
598
598
|
"path": "modules/cost-monitor/src/agent-groups.test.ts",
|
|
@@ -1000,7 +1000,7 @@
|
|
|
1000
1000
|
},
|
|
1001
1001
|
{
|
|
1002
1002
|
"path": "modules/operations/package.json",
|
|
1003
|
-
"sha256": "
|
|
1003
|
+
"sha256": "82af063c9f0fadd3a2c064276f02eb4966915a539988228ec156e820d4204aab"
|
|
1004
1004
|
},
|
|
1005
1005
|
{
|
|
1006
1006
|
"path": "modules/operations/src/contracts.ts",
|
|
@@ -1088,7 +1088,7 @@
|
|
|
1088
1088
|
},
|
|
1089
1089
|
{
|
|
1090
1090
|
"path": "modules/operations/src/react/OperationsOverview.macro-metrics.test.ts",
|
|
1091
|
-
"sha256": "
|
|
1091
|
+
"sha256": "c4579b65625d4744b4e367f130db41be5f982b72e3b3084dd6c11f4f0629d7f5"
|
|
1092
1092
|
},
|
|
1093
1093
|
{
|
|
1094
1094
|
"path": "modules/operations/src/react/OperationsOverview.test.ts",
|
|
@@ -1436,7 +1436,7 @@
|
|
|
1436
1436
|
},
|
|
1437
1437
|
{
|
|
1438
1438
|
"path": "modules/operations/src/react/overview-duration-hint.ts",
|
|
1439
|
-
"sha256": "
|
|
1439
|
+
"sha256": "950af0e7f67967ebde1bc0d4eaca2e02dd5afe637949bd3e193a60650fe295ea"
|
|
1440
1440
|
},
|
|
1441
1441
|
{
|
|
1442
1442
|
"path": "modules/operations/src/react/overview-metric-format.test.ts",
|
|
@@ -1716,7 +1716,7 @@
|
|
|
1716
1716
|
},
|
|
1717
1717
|
{
|
|
1718
1718
|
"path": "modules/traceability/package.json",
|
|
1719
|
-
"sha256": "
|
|
1719
|
+
"sha256": "241c26715af83b273f13a4b789072014e8557af133b50193cadd8649484e01df"
|
|
1720
1720
|
},
|
|
1721
1721
|
{
|
|
1722
1722
|
"path": "modules/traceability/src/contracts.ts",
|
|
@@ -1788,7 +1788,7 @@
|
|
|
1788
1788
|
},
|
|
1789
1789
|
{
|
|
1790
1790
|
"path": "packages/branding/package.json",
|
|
1791
|
-
"sha256": "
|
|
1791
|
+
"sha256": "987a1ded791be38fb57b880e14083c78af21db2fe7cc6f77d3d926e689111bf4"
|
|
1792
1792
|
},
|
|
1793
1793
|
{
|
|
1794
1794
|
"path": "packages/branding/src/index.ts",
|
|
@@ -1800,7 +1800,7 @@
|
|
|
1800
1800
|
},
|
|
1801
1801
|
{
|
|
1802
1802
|
"path": "packages/contracts/package.json",
|
|
1803
|
-
"sha256": "
|
|
1803
|
+
"sha256": "2e17e5026fbee882ac89466e9a1f1a2b136fd126feddd7e397304b34ff72b156"
|
|
1804
1804
|
},
|
|
1805
1805
|
{
|
|
1806
1806
|
"path": "packages/contracts/src/export.ts",
|
|
@@ -1820,7 +1820,7 @@
|
|
|
1820
1820
|
},
|
|
1821
1821
|
{
|
|
1822
1822
|
"path": "packages/data-export/package.json",
|
|
1823
|
-
"sha256": "
|
|
1823
|
+
"sha256": "a23e9ce7afb32f5c3607ae560afb95d3958b29b2043f63b3cc90bacd0a73e978"
|
|
1824
1824
|
},
|
|
1825
1825
|
{
|
|
1826
1826
|
"path": "packages/data-export/src/index.test.ts",
|
|
@@ -1860,15 +1860,15 @@
|
|
|
1860
1860
|
},
|
|
1861
1861
|
{
|
|
1862
1862
|
"path": "packages/local-runtime/dist/server.cjs",
|
|
1863
|
-
"sha256": "
|
|
1863
|
+
"sha256": "c103201295a4ee683d6da53cd61709f9992e18349f2a54e949043421deaf74de"
|
|
1864
1864
|
},
|
|
1865
1865
|
{
|
|
1866
1866
|
"path": "packages/local-runtime/dist/sqlite-read-model.cjs",
|
|
1867
|
-
"sha256": "
|
|
1867
|
+
"sha256": "f3d9c7d82675e52b4a36d443ea8e33273165a47124240fd050532ff3243faf57"
|
|
1868
1868
|
},
|
|
1869
1869
|
{
|
|
1870
1870
|
"path": "packages/local-runtime/package.json",
|
|
1871
|
-
"sha256": "
|
|
1871
|
+
"sha256": "9b3e4cd8b49748439670fde914db7f12ae00f3c43c7f7568fa2f86226cf6741f"
|
|
1872
1872
|
},
|
|
1873
1873
|
{
|
|
1874
1874
|
"path": "packages/local-runtime/scripts/build-sqlite-dashboard.mjs",
|
|
@@ -1920,15 +1920,15 @@
|
|
|
1920
1920
|
},
|
|
1921
1921
|
{
|
|
1922
1922
|
"path": "packages/local-runtime/server.mjs",
|
|
1923
|
-
"sha256": "
|
|
1923
|
+
"sha256": "371ababb369cc01590965a0affdc4174b084bd594f7ef4cfbdca229e40ea85c9"
|
|
1924
1924
|
},
|
|
1925
1925
|
{
|
|
1926
1926
|
"path": "packages/local-runtime/src/active-codex-telemetry.test.ts",
|
|
1927
|
-
"sha256": "
|
|
1927
|
+
"sha256": "9d3226a5b796fefc091ebb3c0a4db7b44fae1175b8170990aabc8b5fac0788d5"
|
|
1928
1928
|
},
|
|
1929
1929
|
{
|
|
1930
1930
|
"path": "packages/local-runtime/src/active-codex-telemetry.ts",
|
|
1931
|
-
"sha256": "
|
|
1931
|
+
"sha256": "ca44ac47eb52d78bbd4aa47813ba5a318e913dde9fee27270c3aab8db4c13265"
|
|
1932
1932
|
},
|
|
1933
1933
|
{
|
|
1934
1934
|
"path": "packages/local-runtime/src/agent-adapter-sync.ts",
|
|
@@ -2240,7 +2240,7 @@
|
|
|
2240
2240
|
},
|
|
2241
2241
|
{
|
|
2242
2242
|
"path": "packages/local-runtime/src/server.ts",
|
|
2243
|
-
"sha256": "
|
|
2243
|
+
"sha256": "60e985d6398604a6e81728bb7559873b3f847563d8dc57d5a0179653b08bd02e"
|
|
2244
2244
|
},
|
|
2245
2245
|
{
|
|
2246
2246
|
"path": "packages/local-runtime/src/sqlite-agent-productivity.test.ts",
|
|
@@ -2762,9 +2762,13 @@
|
|
|
2762
2762
|
"path": "packages/local-runtime/tsconfig.json",
|
|
2763
2763
|
"sha256": "bdcece06a72a845fbe1ebaacc28d407280511749c447992a74ad5fa6f16c2d75"
|
|
2764
2764
|
},
|
|
2765
|
+
{
|
|
2766
|
+
"path": "packages/local-runtime/vitest.config.ts",
|
|
2767
|
+
"sha256": "7698a9c7a27e4a10a056cf3fc75480f0a562e2cf837966db697718392d7f5759"
|
|
2768
|
+
},
|
|
2765
2769
|
{
|
|
2766
2770
|
"path": "packages/ui/package.json",
|
|
2767
|
-
"sha256": "
|
|
2771
|
+
"sha256": "10dade8d43864244444cc5df780cabc3f921d76ac443dc46b238c4d0df457b65"
|
|
2768
2772
|
},
|
|
2769
2773
|
{
|
|
2770
2774
|
"path": "packages/ui/src/DashboardHeader.test.mjs",
|
|
@@ -2872,7 +2876,7 @@
|
|
|
2872
2876
|
},
|
|
2873
2877
|
{
|
|
2874
2878
|
"path": "tests/e2e/package.json",
|
|
2875
|
-
"sha256": "
|
|
2879
|
+
"sha256": "3db460fd09bd49f205d0ecd164b28c33867721624458c6a14832634dfa4c08e8"
|
|
2876
2880
|
},
|
|
2877
2881
|
{
|
|
2878
2882
|
"path": "tests/e2e/playwright.config.ts",
|
|
@@ -2888,7 +2892,7 @@
|
|
|
2888
2892
|
},
|
|
2889
2893
|
{
|
|
2890
2894
|
"path": "tests/e2e/specs/cost-monitor-pagination.spec.ts",
|
|
2891
|
-
"sha256": "
|
|
2895
|
+
"sha256": "d9ea28ca5182b7defc850b96fb4d792e2c296a43e6957606513aa72f2f1abec9"
|
|
2892
2896
|
},
|
|
2893
2897
|
{
|
|
2894
2898
|
"path": "tests/e2e/specs/cost-monitor-period-transition.spec.ts",
|
|
@@ -2904,7 +2908,7 @@
|
|
|
2904
2908
|
},
|
|
2905
2909
|
{
|
|
2906
2910
|
"path": "tests/e2e/specs/dashboard.spec.ts",
|
|
2907
|
-
"sha256": "
|
|
2911
|
+
"sha256": "289bf9b901a2eb09963eb7b87cca05773072bd92a901d05f60b08617439d90d5"
|
|
2908
2912
|
},
|
|
2909
2913
|
{
|
|
2910
2914
|
"path": "tests/e2e/specs/export-row-identity.spec.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-C8zQDBT7.js";var r=e(t(),1),i=n(),a={input:1e5,cache:4e4,output:2e4,reasoning:8e3},o=e=>Math.round(e*1e6)/1e6;function s(e,t,n,r,i){let a=o(Math.max(e.input-e.cache,0)/1e6*t.input*n),s=o(e.cache/1e6*(t.cache??0)*n),c=o(e.output/1e6*t.output*r),l=o(a+s+c);return{usage:e,rates:t,inputMultiplier:n,outputMultiplier:r,inputUsd:a,cacheUsd:s,outputUsd:c,reasoningUsd:0,totalUsd:l,totalBrl:i===null?null:o(l*i)}}function c(e,t){if(t===`standard`)return{input:e.input_per_million_usd,cache:e.cached_input_per_million_usd,output:e.output_per_million_usd};let n=e.priority_input_per_million_usd,r=e.priority_output_per_million_usd;return n==null||r==null?null:{input:n,cache:e.priority_cached_input_per_million_usd??null,output:r}}function l(e,t,n){let r=c(e,t);return r===null?null:s(a,r,1,1,n)}function u(e,t){return e.long_context_threshold_tokens===null?null:s({input:e.long_context_threshold_tokens+5e4,cache:a.cache,output:a.output,reasoning:a.reasoning},c(e,`standard`),e.long_context_input_multiplier,e.long_context_output_multiplier,t)}var d={"pt-BR":{eyebrow:`CONFIGURAÇÕES · TRANSPARÊNCIA`,title:`Como o custo é calculado`,intro:`Do menor grão — uma chamada LLM — até o total: veja quais tokens entram na conta e como modelo, esforço, contexto e velocidade mudam o resultado.`,back:`Voltar ao dashboard`,model:`Modelo usado nos exemplos`,currency:`Moeda`,unavailable:`Indisponível`,millionRate:`por 1 milhão de tokens`,rateTitle:`1. Comece pelas tarifas do modelo`,rateIntro:`O modelo escolhe a tabela de preços. Priority/Fast usa outra tabela quando o catálogo publica essas tarifas.`,standard:`Standard`,priority:`Priority / Fast`,input:`Input`,cache:`Cache`,output:`Output`,reasoning:`Reasoning`,ratio:`Priority ÷ Standard`,included:`Incluído no output (+0)`,noPublishedRate:`Sem tarifa publicada (custo adicional 0)`,conceptsTitle:`2. Entenda cada parte da chamada`,concepts:[[`Chamada LLM`,`É o menor grão do cálculo: uma requisição ao provedor, com um modelo e um tier de serviço.`],[`Input tokens`,`Tudo que entra no modelo: instruções, histórico, contexto, ferramentas e a mensagem atual.`],[`Cache tokens`,`São parte do input, não tokens extras. Primeiro subtraímos o cache do input e depois aplicamos sua tarifa própria.`],[`Output tokens`,`É o total produzido pelo modelo. O custo usa o output total informado pela telemetria.`],[`Reasoning tokens`,`São parte do output. O cálculo atual cobra o output uma vez e mantém reasoningUsd = 0, evitando cobrança dupla.`],[`Modelo e esforço`,`O modelo muda as tarifas. O esforço não tem multiplicador próprio, mas pode gerar mais reasoning, output ou ciclos e aumentar o custo indiretamente.`],[`Multiplicador de contexto`,`Acima do limite do modelo, o multiplicador de input vale também para cache; o multiplicador de output vale para todo o output.`],[`Multiplicador de velocidade`,`É a razão derivada entre o total Priority/Fast e o Standard. Serve para comparar; nunca é multiplicado de novo no total.`]],exampleTitle:`3. Exemplo simples, parcela por parcela`,exampleIntro:`Uma chamada com 100 mil tokens de input, dos quais 40 mil vieram do cache, e 20 mil tokens de output, dos quais 8 mil são reasoning.`,billableInput:`Input faturável`,operation:`Operação`,cost:`Custo`,total:`Total da chamada`,speedMultiplier:`Multiplicador de velocidade derivado`,longTitle:`4. Exemplo com contexto longo`,longIntro:`Para realmente ultrapassar o limite, o exemplo usa o threshold do modelo + 50 mil tokens de input. A conta abaixo continua no tier Standard.`,threshold:`Limite do modelo`,longInput:`Input do exemplo longo`,priorityLong:`Priority/Fast + contexto longo`,priorityLongNote:`Indisponível: sem uma combinação publicada no catálogo, o dashboard não inventa uma tarifa.`,finalNote:`Regra prática: escolha o modelo e o tier, separe input de cache, cobre o output total uma única vez e só então aplique câmbio. Mais esforço só aumenta o custo quando aumenta o uso registrado.`},"en-US":{eyebrow:`SETTINGS · TRANSPARENCY`,title:`How cost is calculated`,intro:`From the smallest grain — one LLM call — to the total: see which tokens enter the calculation and how model, effort, context, and speed affect it.`,back:`Back to dashboard`,model:`Model used in the examples`,currency:`Currency`,unavailable:`Unavailable`,millionRate:`per 1 million tokens`,rateTitle:`1. Start with the model rates`,rateIntro:`The model selects the price table. Priority/Fast uses a different table when the catalog publishes those rates.`,standard:`Standard`,priority:`Priority / Fast`,input:`Input`,cache:`Cache`,output:`Output`,reasoning:`Reasoning`,ratio:`Priority ÷ Standard`,included:`Included in output (+0)`,noPublishedRate:`No published rate (additional cost 0)`,conceptsTitle:`2. Understand each part of the call`,concepts:[[`LLM call`,`The smallest calculation grain: one provider request with one model and one service tier.`],[`Input tokens`,`Everything sent to the model: instructions, history, context, tools, and the current message.`],[`Cache tokens`,`They are part of input, not extra tokens. Cache is subtracted from input first, then its own rate is applied.`],[`Output tokens`,`Everything produced by the model. Cost uses the total output reported by telemetry.`],[`Reasoning tokens`,`They are part of output. Current math charges output once and keeps reasoningUsd = 0, preventing double billing.`],[`Model and effort`,`The model changes rates. Effort has no direct multiplier, but it can produce more reasoning, output, or cycles and indirectly raise cost.`],[`Context multiplier`,`Above the model threshold, the input multiplier also applies to cache; the output multiplier applies to all output.`],[`Speed multiplier`,`It is the derived ratio between Priority/Fast and Standard totals. It is only a comparison and is never multiplied into the total again.`]],exampleTitle:`3. A simple example, component by component`,exampleIntro:`One call with 100 thousand input tokens, including 40 thousand cache tokens, and 20 thousand output tokens, including 8 thousand reasoning tokens.`,billableInput:`Billable input`,operation:`Operation`,cost:`Cost`,total:`Call total`,speedMultiplier:`Derived speed multiplier`,longTitle:`4. Long-context example`,longIntro:`To actually exceed the limit, this example uses the model threshold + 50 thousand input tokens. The calculation remains on Standard tier.`,threshold:`Model threshold`,longInput:`Long-example input`,priorityLong:`Priority/Fast + long context`,priorityLongNote:`Unavailable: without a published combination in the catalog, the dashboard does not invent a rate.`,finalNote:`Rule of thumb: choose model and tier, separate input from cache, charge total output once, then apply FX. Higher effort only raises cost when it raises recorded usage.`}};function f(e,t,n,r){if(t===`BRL`&&n===null)return r;let i=t===`BRL`?e*n:e;return new Intl.NumberFormat(t===`BRL`?`pt-BR`:`en-US`,{style:`currency`,currency:t,minimumFractionDigits:2,maximumFractionDigits:6}).format(i)}function p(e,t,n,r,i){return e==null?i:f(e,t,n,r)}function m(e,t){return new Intl.NumberFormat(t).format(e)}function h({example:e,currency:t,fxRate:n,locale:r,labels:a}){let o=a.unavailable,s=Math.max(e.usage.input-e.usage.cache,0),c=e.inputMultiplier===1?``:` × ${e.inputMultiplier}`,l=e.outputMultiplier===1?``:` × ${e.outputMultiplier}`,u=e.rates.cache??0,d=[{label:a.billableInput,operation:`${m(e.usage.input,r)} − ${m(e.usage.cache,r)} = ${m(s,r)} tokens`,cost:null},{label:a.input,operation:`${m(s,r)} ÷ 1M × ${p(e.rates.input,t,n,o,a.noPublishedRate)}${c}`,cost:e.inputUsd},{label:a.cache,operation:`${m(e.usage.cache,r)} ÷ 1M × ${p(u,t,n,o,a.noPublishedRate)}${c}`,cost:e.cacheUsd},{label:a.output,operation:`${m(e.usage.output,r)} ÷ 1M × ${p(e.rates.output,t,n,o,a.noPublishedRate)}${l}`,cost:e.outputUsd},{label:a.reasoning,operation:`${m(e.usage.reasoning,r)} tokens ⊂ ${a.output} → +0`,cost:e.reasoningUsd}];return(0,i.jsxs)(`div`,{className:`cost-guide-calculation`,children:[(0,i.jsxs)(`div`,{className:`cost-guide-calculation-head`,"aria-hidden":`true`,children:[(0,i.jsx)(`span`,{}),(0,i.jsx)(`span`,{children:a.operation}),(0,i.jsx)(`span`,{children:a.cost})]}),d.map(e=>(0,i.jsxs)(`div`,{className:`cost-guide-calculation-line`,children:[(0,i.jsx)(`strong`,{children:e.label}),(0,i.jsx)(`code`,{children:e.operation}),(0,i.jsx)(`span`,{children:e.cost===null?`—`:f(e.cost,t,n,o)})]},e.label)),(0,i.jsxs)(`div`,{className:`cost-guide-calculation-total`,children:[(0,i.jsx)(`strong`,{children:a.total}),(0,i.jsx)(`span`,{children:f(e.totalUsd,t,n,o)})]})]})}function g({catalog:e,fxRate:t,locale:n,onClose:a}){let o=d[n],[s,c]=(0,r.useState)(e.models[0]?.id??``),[f,g]=(0,r.useState)(`USD`),_=(0,r.useMemo)(()=>e.models.find(e=>e.id===s)??e.models[0]??null,[e.models,s]);if(_===null)return(0,i.jsxs)(`main`,{className:`cost-guide`,children:[(0,i.jsxs)(`button`,{onClick:a,type:`button`,children:[`← `,o.back]}),(0,i.jsx)(`h1`,{children:o.title}),(0,i.jsx)(`p`,{children:o.unavailable})]});let v=t?.rate??null,y=l(_,`standard`,v),b=l(_,`priority`,v),x=u(_,v),S=b!==null&&y.totalUsd>0?b.totalUsd/y.totalUsd:null,C=[{label:o.input,standard:_.input_per_million_usd,priority:_.priority_input_per_million_usd},{label:o.cache,standard:_.cached_input_per_million_usd,priority:_.priority_cached_input_per_million_usd},{label:o.output,standard:_.output_per_million_usd,priority:_.priority_output_per_million_usd}];return(0,i.jsxs)(`main`,{className:`cost-guide`,children:[(0,i.jsxs)(`header`,{children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`small`,{children:o.eyebrow}),(0,i.jsx)(`h1`,{children:o.title}),(0,i.jsx)(`p`,{children:o.intro})]}),(0,i.jsxs)(`button`,{onClick:a,type:`button`,children:[`← `,o.back]})]}),(0,i.jsxs)(`section`,{className:`cost-guide-controls`,"aria-label":o.model,children:[(0,i.jsxs)(`label`,{children:[o.model,(0,i.jsx)(`select`,{value:_.id,onChange:e=>c(e.target.value),children:e.models.map(e=>(0,i.jsx)(`option`,{value:e.id,children:e.id},e.id))})]}),(0,i.jsxs)(`label`,{children:[o.currency,(0,i.jsxs)(`select`,{value:f,onChange:e=>g(e.target.value),children:[(0,i.jsx)(`option`,{value:`USD`,children:`USD`}),(0,i.jsxs)(`option`,{value:`BRL`,children:[`BRL `,v===null?`(${o.unavailable})`:`(1 USD = ${v.toFixed(4)} BRL)`]})]})]})]}),(0,i.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,i.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,i.jsx)(`h2`,{children:o.rateTitle}),(0,i.jsx)(`p`,{children:o.rateIntro})]}),(0,i.jsx)(`div`,{className:`cost-guide-table-wrap`,children:(0,i.jsxs)(`table`,{children:[(0,i.jsxs)(`caption`,{children:[_.id,` · `,o.millionRate]}),(0,i.jsx)(`thead`,{children:(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{scope:`col`}),(0,i.jsx)(`th`,{scope:`col`,children:o.standard}),(0,i.jsx)(`th`,{scope:`col`,children:o.priority}),(0,i.jsx)(`th`,{scope:`col`,children:o.ratio})]})}),(0,i.jsxs)(`tbody`,{children:[C.map(e=>(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{scope:`row`,children:e.label}),(0,i.jsx)(`td`,{children:p(e.standard,f,v,o.unavailable,o.noPublishedRate)}),(0,i.jsx)(`td`,{children:p(e.priority,f,v,o.unavailable,o.noPublishedRate)}),(0,i.jsx)(`td`,{children:e.standard!==null&&e.standard>0&&e.priority!==null&&e.priority!==void 0?`${(e.priority/e.standard).toFixed(2)}×`:o.unavailable})]},e.label)),(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{scope:`row`,children:o.reasoning}),(0,i.jsx)(`td`,{colSpan:3,children:o.included})]})]})]})})]}),(0,i.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,i.jsx)(`div`,{className:`cost-guide-section-heading`,children:(0,i.jsx)(`h2`,{children:o.conceptsTitle})}),(0,i.jsx)(`div`,{className:`cost-guide-blocks`,children:o.concepts.map(([e,t])=>(0,i.jsxs)(`article`,{children:[(0,i.jsx)(`strong`,{children:e}),(0,i.jsx)(`p`,{children:t})]},e))})]}),(0,i.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,i.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,i.jsx)(`h2`,{children:o.exampleTitle}),(0,i.jsx)(`p`,{children:o.exampleIntro})]}),(0,i.jsxs)(`div`,{className:`cost-guide-example-grid`,children:[(0,i.jsxs)(`article`,{className:`cost-guide-example-card`,children:[(0,i.jsx)(`h3`,{children:o.standard}),(0,i.jsx)(h,{example:y,currency:f,fxRate:v,locale:n,labels:o})]}),(0,i.jsxs)(`article`,{className:`cost-guide-example-card`,children:[(0,i.jsx)(`h3`,{children:o.priority}),b===null?(0,i.jsx)(`p`,{className:`cost-guide-unavailable`,children:o.unavailable}):(0,i.jsx)(h,{example:b,currency:f,fxRate:v,locale:n,labels:o})]})]}),(0,i.jsxs)(`div`,{className:`cost-guide-speed`,children:[(0,i.jsx)(`span`,{children:o.speedMultiplier}),(0,i.jsx)(`strong`,{children:S===null?o.unavailable:`${S.toFixed(2)}×`}),(0,i.jsxs)(`code`,{children:[o.priority,` `,o.total,` ÷ `,o.standard,` `,o.total]})]})]}),(0,i.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,i.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,i.jsx)(`h2`,{children:o.longTitle}),(0,i.jsx)(`p`,{children:o.longIntro})]}),(0,i.jsxs)(`div`,{className:`cost-guide-context-summary`,children:[(0,i.jsxs)(`span`,{children:[o.threshold,`:`,` `,(0,i.jsx)(`strong`,{children:_.long_context_threshold_tokens===null?o.unavailable:m(_.long_context_threshold_tokens,n)})]}),(0,i.jsxs)(`span`,{children:[o.longInput,`:`,` `,(0,i.jsx)(`strong`,{children:x===null?o.unavailable:m(x.usage.input,n)})]}),(0,i.jsxs)(`span`,{children:[`Input/cache: `,(0,i.jsxs)(`strong`,{children:[_.long_context_input_multiplier,`×`]})]}),(0,i.jsxs)(`span`,{children:[`Output: `,(0,i.jsxs)(`strong`,{children:[_.long_context_output_multiplier,`×`]})]})]}),x===null?(0,i.jsx)(`p`,{className:`cost-guide-unavailable`,children:o.unavailable}):(0,i.jsx)(h,{example:x,currency:f,fxRate:v,locale:n,labels:o}),(0,i.jsxs)(`div`,{className:`cost-guide-unavailable-combination`,children:[(0,i.jsxs)(`strong`,{children:[o.priorityLong,`: `,o.unavailable]}),(0,i.jsx)(`p`,{children:o.priorityLongNote})]})]}),(0,i.jsx)(`aside`,{className:`cost-guide-final-note`,children:o.finalNote})]})}export{g as CostCalculationGuidePage};
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-Co2Jiuzh.js";var r=e(t(),1),i=n(),a={input:1e5,cache:4e4,output:2e4,reasoning:8e3},o=e=>Math.round(e*1e6)/1e6;function s(e,t,n,r,i){let a=o(Math.max(e.input-e.cache,0)/1e6*t.input*n),s=o(e.cache/1e6*(t.cache??0)*n),c=o(e.output/1e6*t.output*r),l=o(a+s+c);return{usage:e,rates:t,inputMultiplier:n,outputMultiplier:r,inputUsd:a,cacheUsd:s,outputUsd:c,reasoningUsd:0,totalUsd:l,totalBrl:i===null?null:o(l*i)}}function c(e,t){if(t===`standard`)return{input:e.input_per_million_usd,cache:e.cached_input_per_million_usd,output:e.output_per_million_usd};let n=e.priority_input_per_million_usd,r=e.priority_output_per_million_usd;return n==null||r==null?null:{input:n,cache:e.priority_cached_input_per_million_usd??null,output:r}}function l(e,t,n){let r=c(e,t);return r===null?null:s(a,r,1,1,n)}function u(e,t){return e.long_context_threshold_tokens===null?null:s({input:e.long_context_threshold_tokens+5e4,cache:a.cache,output:a.output,reasoning:a.reasoning},c(e,`standard`),e.long_context_input_multiplier,e.long_context_output_multiplier,t)}var d={"pt-BR":{eyebrow:`CONFIGURAÇÕES · TRANSPARÊNCIA`,title:`Como o custo é calculado`,intro:`Do menor grão — uma chamada LLM — até o total: veja quais tokens entram na conta e como modelo, esforço, contexto e velocidade mudam o resultado.`,back:`Voltar ao dashboard`,model:`Modelo usado nos exemplos`,currency:`Moeda`,unavailable:`Indisponível`,millionRate:`por 1 milhão de tokens`,rateTitle:`1. Comece pelas tarifas do modelo`,rateIntro:`O modelo escolhe a tabela de preços. Priority/Fast usa outra tabela quando o catálogo publica essas tarifas.`,standard:`Standard`,priority:`Priority / Fast`,input:`Input`,cache:`Cache`,output:`Output`,reasoning:`Reasoning`,ratio:`Priority ÷ Standard`,included:`Incluído no output (+0)`,noPublishedRate:`Sem tarifa publicada (custo adicional 0)`,conceptsTitle:`2. Entenda cada parte da chamada`,concepts:[[`Chamada LLM`,`É o menor grão do cálculo: uma requisição ao provedor, com um modelo e um tier de serviço.`],[`Input tokens`,`Tudo que entra no modelo: instruções, histórico, contexto, ferramentas e a mensagem atual.`],[`Cache tokens`,`São parte do input, não tokens extras. Primeiro subtraímos o cache do input e depois aplicamos sua tarifa própria.`],[`Output tokens`,`É o total produzido pelo modelo. O custo usa o output total informado pela telemetria.`],[`Reasoning tokens`,`São parte do output. O cálculo atual cobra o output uma vez e mantém reasoningUsd = 0, evitando cobrança dupla.`],[`Modelo e esforço`,`O modelo muda as tarifas. O esforço não tem multiplicador próprio, mas pode gerar mais reasoning, output ou ciclos e aumentar o custo indiretamente.`],[`Multiplicador de contexto`,`Acima do limite do modelo, o multiplicador de input vale também para cache; o multiplicador de output vale para todo o output.`],[`Multiplicador de velocidade`,`É a razão derivada entre o total Priority/Fast e o Standard. Serve para comparar; nunca é multiplicado de novo no total.`]],exampleTitle:`3. Exemplo simples, parcela por parcela`,exampleIntro:`Uma chamada com 100 mil tokens de input, dos quais 40 mil vieram do cache, e 20 mil tokens de output, dos quais 8 mil são reasoning.`,billableInput:`Input faturável`,operation:`Operação`,cost:`Custo`,total:`Total da chamada`,speedMultiplier:`Multiplicador de velocidade derivado`,longTitle:`4. Exemplo com contexto longo`,longIntro:`Para realmente ultrapassar o limite, o exemplo usa o threshold do modelo + 50 mil tokens de input. A conta abaixo continua no tier Standard.`,threshold:`Limite do modelo`,longInput:`Input do exemplo longo`,priorityLong:`Priority/Fast + contexto longo`,priorityLongNote:`Indisponível: sem uma combinação publicada no catálogo, o dashboard não inventa uma tarifa.`,finalNote:`Regra prática: escolha o modelo e o tier, separe input de cache, cobre o output total uma única vez e só então aplique câmbio. Mais esforço só aumenta o custo quando aumenta o uso registrado.`},"en-US":{eyebrow:`SETTINGS · TRANSPARENCY`,title:`How cost is calculated`,intro:`From the smallest grain — one LLM call — to the total: see which tokens enter the calculation and how model, effort, context, and speed affect it.`,back:`Back to dashboard`,model:`Model used in the examples`,currency:`Currency`,unavailable:`Unavailable`,millionRate:`per 1 million tokens`,rateTitle:`1. Start with the model rates`,rateIntro:`The model selects the price table. Priority/Fast uses a different table when the catalog publishes those rates.`,standard:`Standard`,priority:`Priority / Fast`,input:`Input`,cache:`Cache`,output:`Output`,reasoning:`Reasoning`,ratio:`Priority ÷ Standard`,included:`Included in output (+0)`,noPublishedRate:`No published rate (additional cost 0)`,conceptsTitle:`2. Understand each part of the call`,concepts:[[`LLM call`,`The smallest calculation grain: one provider request with one model and one service tier.`],[`Input tokens`,`Everything sent to the model: instructions, history, context, tools, and the current message.`],[`Cache tokens`,`They are part of input, not extra tokens. Cache is subtracted from input first, then its own rate is applied.`],[`Output tokens`,`Everything produced by the model. Cost uses the total output reported by telemetry.`],[`Reasoning tokens`,`They are part of output. Current math charges output once and keeps reasoningUsd = 0, preventing double billing.`],[`Model and effort`,`The model changes rates. Effort has no direct multiplier, but it can produce more reasoning, output, or cycles and indirectly raise cost.`],[`Context multiplier`,`Above the model threshold, the input multiplier also applies to cache; the output multiplier applies to all output.`],[`Speed multiplier`,`It is the derived ratio between Priority/Fast and Standard totals. It is only a comparison and is never multiplied into the total again.`]],exampleTitle:`3. A simple example, component by component`,exampleIntro:`One call with 100 thousand input tokens, including 40 thousand cache tokens, and 20 thousand output tokens, including 8 thousand reasoning tokens.`,billableInput:`Billable input`,operation:`Operation`,cost:`Cost`,total:`Call total`,speedMultiplier:`Derived speed multiplier`,longTitle:`4. Long-context example`,longIntro:`To actually exceed the limit, this example uses the model threshold + 50 thousand input tokens. The calculation remains on Standard tier.`,threshold:`Model threshold`,longInput:`Long-example input`,priorityLong:`Priority/Fast + long context`,priorityLongNote:`Unavailable: without a published combination in the catalog, the dashboard does not invent a rate.`,finalNote:`Rule of thumb: choose model and tier, separate input from cache, charge total output once, then apply FX. Higher effort only raises cost when it raises recorded usage.`}};function f(e,t,n,r){if(t===`BRL`&&n===null)return r;let i=t===`BRL`?e*n:e;return new Intl.NumberFormat(t===`BRL`?`pt-BR`:`en-US`,{style:`currency`,currency:t,minimumFractionDigits:2,maximumFractionDigits:6}).format(i)}function p(e,t,n,r,i){return e==null?i:f(e,t,n,r)}function m(e,t){return new Intl.NumberFormat(t).format(e)}function h({example:e,currency:t,fxRate:n,locale:r,labels:a}){let o=a.unavailable,s=Math.max(e.usage.input-e.usage.cache,0),c=e.inputMultiplier===1?``:` × ${e.inputMultiplier}`,l=e.outputMultiplier===1?``:` × ${e.outputMultiplier}`,u=e.rates.cache??0,d=[{label:a.billableInput,operation:`${m(e.usage.input,r)} − ${m(e.usage.cache,r)} = ${m(s,r)} tokens`,cost:null},{label:a.input,operation:`${m(s,r)} ÷ 1M × ${p(e.rates.input,t,n,o,a.noPublishedRate)}${c}`,cost:e.inputUsd},{label:a.cache,operation:`${m(e.usage.cache,r)} ÷ 1M × ${p(u,t,n,o,a.noPublishedRate)}${c}`,cost:e.cacheUsd},{label:a.output,operation:`${m(e.usage.output,r)} ÷ 1M × ${p(e.rates.output,t,n,o,a.noPublishedRate)}${l}`,cost:e.outputUsd},{label:a.reasoning,operation:`${m(e.usage.reasoning,r)} tokens ⊂ ${a.output} → +0`,cost:e.reasoningUsd}];return(0,i.jsxs)(`div`,{className:`cost-guide-calculation`,children:[(0,i.jsxs)(`div`,{className:`cost-guide-calculation-head`,"aria-hidden":`true`,children:[(0,i.jsx)(`span`,{}),(0,i.jsx)(`span`,{children:a.operation}),(0,i.jsx)(`span`,{children:a.cost})]}),d.map(e=>(0,i.jsxs)(`div`,{className:`cost-guide-calculation-line`,children:[(0,i.jsx)(`strong`,{children:e.label}),(0,i.jsx)(`code`,{children:e.operation}),(0,i.jsx)(`span`,{children:e.cost===null?`—`:f(e.cost,t,n,o)})]},e.label)),(0,i.jsxs)(`div`,{className:`cost-guide-calculation-total`,children:[(0,i.jsx)(`strong`,{children:a.total}),(0,i.jsx)(`span`,{children:f(e.totalUsd,t,n,o)})]})]})}function g({catalog:e,fxRate:t,locale:n,onClose:a}){let o=d[n],[s,c]=(0,r.useState)(e.models[0]?.id??``),[f,g]=(0,r.useState)(`USD`),_=(0,r.useMemo)(()=>e.models.find(e=>e.id===s)??e.models[0]??null,[e.models,s]);if(_===null)return(0,i.jsxs)(`main`,{className:`cost-guide`,children:[(0,i.jsxs)(`button`,{onClick:a,type:`button`,children:[`← `,o.back]}),(0,i.jsx)(`h1`,{children:o.title}),(0,i.jsx)(`p`,{children:o.unavailable})]});let v=t?.rate??null,y=l(_,`standard`,v),b=l(_,`priority`,v),x=u(_,v),S=b!==null&&y.totalUsd>0?b.totalUsd/y.totalUsd:null,C=[{label:o.input,standard:_.input_per_million_usd,priority:_.priority_input_per_million_usd},{label:o.cache,standard:_.cached_input_per_million_usd,priority:_.priority_cached_input_per_million_usd},{label:o.output,standard:_.output_per_million_usd,priority:_.priority_output_per_million_usd}];return(0,i.jsxs)(`main`,{className:`cost-guide`,children:[(0,i.jsxs)(`header`,{children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`small`,{children:o.eyebrow}),(0,i.jsx)(`h1`,{children:o.title}),(0,i.jsx)(`p`,{children:o.intro})]}),(0,i.jsxs)(`button`,{onClick:a,type:`button`,children:[`← `,o.back]})]}),(0,i.jsxs)(`section`,{className:`cost-guide-controls`,"aria-label":o.model,children:[(0,i.jsxs)(`label`,{children:[o.model,(0,i.jsx)(`select`,{value:_.id,onChange:e=>c(e.target.value),children:e.models.map(e=>(0,i.jsx)(`option`,{value:e.id,children:e.id},e.id))})]}),(0,i.jsxs)(`label`,{children:[o.currency,(0,i.jsxs)(`select`,{value:f,onChange:e=>g(e.target.value),children:[(0,i.jsx)(`option`,{value:`USD`,children:`USD`}),(0,i.jsxs)(`option`,{value:`BRL`,children:[`BRL `,v===null?`(${o.unavailable})`:`(1 USD = ${v.toFixed(4)} BRL)`]})]})]})]}),(0,i.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,i.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,i.jsx)(`h2`,{children:o.rateTitle}),(0,i.jsx)(`p`,{children:o.rateIntro})]}),(0,i.jsx)(`div`,{className:`cost-guide-table-wrap`,children:(0,i.jsxs)(`table`,{children:[(0,i.jsxs)(`caption`,{children:[_.id,` · `,o.millionRate]}),(0,i.jsx)(`thead`,{children:(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{scope:`col`}),(0,i.jsx)(`th`,{scope:`col`,children:o.standard}),(0,i.jsx)(`th`,{scope:`col`,children:o.priority}),(0,i.jsx)(`th`,{scope:`col`,children:o.ratio})]})}),(0,i.jsxs)(`tbody`,{children:[C.map(e=>(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{scope:`row`,children:e.label}),(0,i.jsx)(`td`,{children:p(e.standard,f,v,o.unavailable,o.noPublishedRate)}),(0,i.jsx)(`td`,{children:p(e.priority,f,v,o.unavailable,o.noPublishedRate)}),(0,i.jsx)(`td`,{children:e.standard!==null&&e.standard>0&&e.priority!==null&&e.priority!==void 0?`${(e.priority/e.standard).toFixed(2)}×`:o.unavailable})]},e.label)),(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{scope:`row`,children:o.reasoning}),(0,i.jsx)(`td`,{colSpan:3,children:o.included})]})]})]})})]}),(0,i.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,i.jsx)(`div`,{className:`cost-guide-section-heading`,children:(0,i.jsx)(`h2`,{children:o.conceptsTitle})}),(0,i.jsx)(`div`,{className:`cost-guide-blocks`,children:o.concepts.map(([e,t])=>(0,i.jsxs)(`article`,{children:[(0,i.jsx)(`strong`,{children:e}),(0,i.jsx)(`p`,{children:t})]},e))})]}),(0,i.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,i.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,i.jsx)(`h2`,{children:o.exampleTitle}),(0,i.jsx)(`p`,{children:o.exampleIntro})]}),(0,i.jsxs)(`div`,{className:`cost-guide-example-grid`,children:[(0,i.jsxs)(`article`,{className:`cost-guide-example-card`,children:[(0,i.jsx)(`h3`,{children:o.standard}),(0,i.jsx)(h,{example:y,currency:f,fxRate:v,locale:n,labels:o})]}),(0,i.jsxs)(`article`,{className:`cost-guide-example-card`,children:[(0,i.jsx)(`h3`,{children:o.priority}),b===null?(0,i.jsx)(`p`,{className:`cost-guide-unavailable`,children:o.unavailable}):(0,i.jsx)(h,{example:b,currency:f,fxRate:v,locale:n,labels:o})]})]}),(0,i.jsxs)(`div`,{className:`cost-guide-speed`,children:[(0,i.jsx)(`span`,{children:o.speedMultiplier}),(0,i.jsx)(`strong`,{children:S===null?o.unavailable:`${S.toFixed(2)}×`}),(0,i.jsxs)(`code`,{children:[o.priority,` `,o.total,` ÷ `,o.standard,` `,o.total]})]})]}),(0,i.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,i.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,i.jsx)(`h2`,{children:o.longTitle}),(0,i.jsx)(`p`,{children:o.longIntro})]}),(0,i.jsxs)(`div`,{className:`cost-guide-context-summary`,children:[(0,i.jsxs)(`span`,{children:[o.threshold,`:`,` `,(0,i.jsx)(`strong`,{children:_.long_context_threshold_tokens===null?o.unavailable:m(_.long_context_threshold_tokens,n)})]}),(0,i.jsxs)(`span`,{children:[o.longInput,`:`,` `,(0,i.jsx)(`strong`,{children:x===null?o.unavailable:m(x.usage.input,n)})]}),(0,i.jsxs)(`span`,{children:[`Input/cache: `,(0,i.jsxs)(`strong`,{children:[_.long_context_input_multiplier,`×`]})]}),(0,i.jsxs)(`span`,{children:[`Output: `,(0,i.jsxs)(`strong`,{children:[_.long_context_output_multiplier,`×`]})]})]}),x===null?(0,i.jsx)(`p`,{className:`cost-guide-unavailable`,children:o.unavailable}):(0,i.jsx)(h,{example:x,currency:f,fxRate:v,locale:n,labels:o}),(0,i.jsxs)(`div`,{className:`cost-guide-unavailable-combination`,children:[(0,i.jsxs)(`strong`,{children:[o.priorityLong,`: `,o.unavailable]}),(0,i.jsx)(`p`,{children:o.priorityLongNote})]})]}),(0,i.jsx)(`aside`,{className:`cost-guide-final-note`,children:o.finalNote})]})}export{g as CostCalculationGuidePage};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-Co2Jiuzh.js";import{t as r}from"./dashboard-localization-CF7B1Hjn.js";var i=`# Primeiros passos
|
|
2
2
|
|
|
3
3
|
1. Leia \`.agents/config/project.yaml\` e \`.agents/rules/core.md\`.
|
|
4
4
|
2. Consulte \`.agents/records/lifecycle/\` para descobrir o estado atual pelos manifests canônicos.
|
|
@@ -616,6 +616,28 @@ exportações e contas preservam \`null\`/cobertura, sem somar esse zero visual.
|
|
|
616
616
|
|
|
617
617
|
## Contagem de autonomia e consultas compactas
|
|
618
618
|
|
|
619
|
+
### Tempo observado, duração ativa e distribuição por dia
|
|
620
|
+
|
|
621
|
+
O Top 5 SPECs usa a união dos intervalos observados das Runs-raiz vinculadas a
|
|
622
|
+
cada SPEC. Não soma novamente os filhos e não substitui o tempo decorrido pela
|
|
623
|
+
duração ativa atribuída a tokens. O subtítulo é **“Tempo observado por SPEC.”**;
|
|
624
|
+
as explicações de cálculo pertencem ao guia e aos detalhes da métrica.
|
|
625
|
+
SPECs distintas podem compartilhar intervalos: a soma por SPEC não é tempo
|
|
626
|
+
global exclusivo. Nenhuma hora é criada a partir do tempo de processamento do
|
|
627
|
+
print sem timestamps e vínculo observáveis.
|
|
628
|
+
|
|
629
|
+
No Monitor de Custos, o tempo diário é a união dos intervalos das atividades
|
|
630
|
+
elegíveis, divididos nas viradas de dia de São Paulo, sem duplicar sobreposições.
|
|
631
|
+
Filtros de dimensão são aplicados antes da união; atividades sem duração
|
|
632
|
+
conhecida mantêm cobertura parcial. Uma execução de cerca de 21 horas que cruza
|
|
633
|
+
a meia-noite pode aparecer distribuída em dois dias, sem exigir 21 horas em cada
|
|
634
|
+
linha. Tempo decorrido, duração ativa e soma de invocações são métricas diferentes.
|
|
635
|
+
|
|
636
|
+
A correção entregue na v4.7 e preservada na v4.8 percorre fonte canônica,
|
|
637
|
+
SQLite, API e UI. Regressões incluem uma Run-raiz de aproximadamente 21 horas,
|
|
638
|
+
seus filhos e a divisão diária. Números e screenshots históricos continuam
|
|
639
|
+
vinculados à execução observada; não são prova automática de um novo candidato.
|
|
640
|
+
|
|
619
641
|
### Leitura dos números do Dashboard
|
|
620
642
|
|
|
621
643
|
O total operacional de Tasks, a distribuição por risco e as contagens temporais
|
|
@@ -815,12 +837,12 @@ com o hook ativo e compare o motivo, a sessão e o turno da nova execução.
|
|
|
815
837
|
| Caso | Comportamento esperado e teste |
|
|
816
838
|
| --- | --- |
|
|
817
839
|
| Stop com \`invalid stop hook JSON output\` | A saída usa \`{}\` ou \`decision: block\` com \`reason\`, nunca um \`hookSpecificOutput\` de Stop. Testar todos os caminhos de saída, inclusive erro e continuação. |
|
|
818
|
-
| Resposta útil substituída por aviso de telemetria no Stop | Pendência de transcript, contabilização, lock ou CLI fica no recibo e retorna \`{}\`, sem criar outro prompt.
|
|
840
|
+
| Resposta útil substituída por aviso de telemetria no Stop | Pendência de transcript, contabilização, lock ou CLI fica no recibo e retorna \`{}\`, sem criar outro prompt. Stop nunca pede continuação automática nem substitui a resposta; o responsável recupera a execução autorizada antes de encerrar, ou informa um bloqueio real com condição de retomada. |
|
|
819
841
|
| Transcript local \`\\\\?\\C:\\...\` | Normalizar o namespace local nas duas camadas de verificação. UNC de rede, devices, links e sessão divergente continuam recusados. |
|
|
820
842
|
| Executor nativo bloqueado por correlação | Conferir sessão do pai + turno do filho, além da sessão nativa do filho. Registrar somente vínculo comprovado; não usar a Task global mais recente. |
|
|
821
843
|
| Busca textual por \`AC-...\`, \`Remove-Item\` ou \`;\` | Diferenciar argumento literal de comando executável. Leituras literais não viram mutação por palavras na pesquisa; redirecionamentos e composição destrutiva continuam protegidos. |
|
|
822
844
|
| Git com separadores | Um separador dentro de argumento entre aspas é texto. Separadores fora das aspas continuam exigindo chamadas Git separadas. |
|
|
823
|
-
| Hook repetido em Usuário e Projeto | O instalador
|
|
845
|
+
| Hook repetido em Usuário e Projeto | O instalador retira registros globais reconhecidamente ZAIP com backup somente depois de verificar os hooks do projeto, preserva hooks de terceiros e mantém os hooks ZAIP em \`.codex/config.toml\` e \`.codex/hooks/\` do projeto. Se a verificação local falhar, preserva o hook global legado e informa o bloqueio. Se a migração não reconhecer um hook antigo, revise apenas esse registro; não instale fallback global. |
|
|
824
846
|
|
|
825
847
|
O vínculo local do executor é conferido contra os escopos e o estado da Task
|
|
826
848
|
canônica. Ele não permite que o filho edite seus próprios bindings ou registros
|
|
@@ -1847,9 +1869,12 @@ impacto; instalador/segurança diretamente alterados mantêm seus testes discrim
|
|
|
1847
1869
|
Somente o SHA limpo aprovado recebe recibo assinado, manifesto, SBOM e TGZ.
|
|
1848
1870
|
Falha ou dados incompletos não produzem aprovação.
|
|
1849
1871
|
|
|
1850
|
-
No GitHub,
|
|
1851
|
-
completa (\`qualify-cli.yml\`) ficam manuais.
|
|
1852
|
-
|
|
1872
|
+
No GitHub, os workflows separados de fonte (\`quality.yml\`), commits
|
|
1873
|
+
(\`commit-policy.yml\`) e matriz completa (\`qualify-cli.yml\`) ficam manuais.
|
|
1874
|
+
Isso não desativa \`pre-main-candidate.yml\`: cada push em \`main\` dispara checks de
|
|
1875
|
+
integridade, lint, tipos, identidade dos commits e regressões selecionadas por impacto.
|
|
1876
|
+
Os checks locais antecedem o push; o CI do SHA enviado precisa terminar verde
|
|
1877
|
+
antes de publicar a Release, sem criar branch remota candidata.
|
|
1853
1878
|
|
|
1854
1879
|
Após qualificação local assinada e cadastro autorizado da chave pública/política,
|
|
1855
1880
|
o mantenedor ativa \`ZAIP_LOCAL_RELEASE_ENABLED=true\`. O deploy publica os quatro
|
|
@@ -2067,9 +2092,15 @@ defina uma medição independente com artefatos identificados e falhas observada
|
|
|
2067
2092
|
|
|
2068
2093
|
O manifesto versionado \`.agents/config/release-cycle.json\` identifica \`current_release\` e estado \`open\`/\`frozen\` (4.5 e 4.5.0 são normalizados). Drafts de PRD/SPEC futuros são permitidos; ready/execução, novas Tasks e código exigem o release corrente. Depois de conciliar Tasks atuais, prove \`main\`, branches, worktrees e registros antes do candidato. Branch/worktree isolados são fechados com backup local recuperável; checkout compartilhado com diff de proveniência mista bloqueia. A existência de \`main\` ou de um teste verde isolado não qualifica a release.
|
|
2069
2094
|
|
|
2070
|
-
Para congelar, use \`node scripts/release-cycle-gate.mjs freeze --repository ROOT --version
|
|
2095
|
+
Para congelar, use \`node scripts/release-cycle-gate.mjs freeze --repository ROOT --version VERSAO\`. A exceção da Task de coordenação exige risco crítico, alvo corrente, IDs explícitos \`--release-task TASK-ID --release-run RUN-ID\` e vínculos canônicos válidos. O manifesto frozen registra esses IDs. Há três contratos distintos:
|
|
2071
2096
|
|
|
2072
|
-
|
|
2097
|
+
- **Coordenação simples:** escopos exclusivos de release e Run raiz; após freeze, conclua Task/Run e integre os records antes de \`audit\`. \`audit\` e \`advance\` exigem estado concluído.
|
|
2098
|
+
- **Coordenação integrada:** acrescente \`--integrated-task\` ao freeze. A Task raiz de delivery fica \`executing\`, sua Run permanece ativa e os escopos incluem a configuração do ciclo. O manifesto registra \`release_mode: integrated_task\`; \`audit\` e \`advance\` verificam os records da Task no SHA e excluem somente a coordenação declarada do gate de trabalho aberto. Essa modalidade admite ajustes do corte nos escopos autorizados, sem fingir conclusão antes da publicação.
|
|
2099
|
+
- **Coordenação delegada de SPEC:** o gate verifica ancestralidade, Execution, SPEC e predecessores concluídos. A Task/Run responsável permanece ativa durante publicação/avanço; os records de coordenação exigidos precisam estar integrados no SHA. A exceção não se estende a outras Tasks ou SPECs abertas.
|
|
2100
|
+
|
|
2101
|
+
Nos modos ativos, depois das provas de publicação, registre validações e Evidence, realize revisão quando exigida e obtenha Gui como último filho. O host autorizado persiste a decisão real e o fechamento. Um commit posterior somente de records/metadata pode guardar esse encerramento; ele não requalifica o produto nem move a tag. O contrato executável está em \`scripts/release-cycle-coordination.mjs\` e \`scripts/release-cycle-gate.mjs\` no repositório mantenedor.
|
|
2102
|
+
|
|
2103
|
+
Com candidato limpo em SHA exato, execute \`node scripts/release-cycle-gate.mjs audit --repository ROOT --version VERSAO --sha SHA\`. O deploy crítico/de release executa os checks locais nesse SHA, envia apenas \`main\` ao GitHub e espera \`pre-main-candidate.yml\` verde para o push exato antes da Release. Falha local bloqueia o push; falha de CI ou credenciais bloqueia a Release e exige reparo autorizado em \`main\`. Após observar tag, GitHub Release, main e CI exatos, \`node scripts/release-cycle-gate.mjs advance --repository ROOT --from VERSAO --to PROXIMA --sha SHA --ci-run-id ID\` registra a transição. As outras Tasks correntes devem estar terminais; somente a coordenação ativa validada acima pode permanecer aberta. Cada superfície, inclusive npm ou provedor, tem prova própria. O avanço não conclui automaticamente a Task de coordenação nem permite iniciar trabalho futuro antes da transição auditada.
|
|
2073
2104
|
`,A=`# Telemetria Git-native do Codex
|
|
2074
2105
|
|
|
2075
2106
|
Este documento descreve o comportamento implementado da telemetria do Codex no ZAIP-AIOS. O
|
|
@@ -2341,7 +2372,9 @@ Este README e o [handbook](.agents/zaip-aios/INDEX.md) descrevem o código-fonte
|
|
|
2341
2372
|
|
|
2342
2373
|
A atualização documental não aprova uma release. Consulte o [registro de limites de qualificação](docs/PRODUCTION-COMMERCIAL-READINESS.md#limites-conhecidos-da-qualificação) antes de promover o código; testes locais, paridade, CI e validação em produção devem ser comprovados separadamente.
|
|
2343
2374
|
|
|
2344
|
-
|
|
2375
|
+
A preparação local assinada usa \`essential-v3\` por padrão; \`full-v2\` é uma qualificação estendida explícita. Após os checks locais, o envio à \`main\` dispara \`pre-main-candidate.yml\`, com integridade, lint, tipos, identidade dos commits e regressões por impacto. A Release exige esse CI verde no SHA exato. O publicador verifica os artefatos assinados, executa um smoke Linux do pacote antes do npm e confirma a integridade no registry; a instalação estendida após publicação é opcional. Veja o [guia de qualidade e release](.agents/zaip-aios/guides/26-qualidade-e-release.md). Lacunas históricas de telemetria permanecem explícitas, sem inventar números ou dispensar testes de dados novos.
|
|
2376
|
+
|
|
2377
|
+
As mudanças, decisões e provas da versão publicada estão consolidadas no [registro da v4.8](docs/releases/v4.8.md), incluindo hooks exclusivos do projeto, continuidade da execução, limpeza das frentes e duração observada no Dashboard.
|
|
2345
2378
|
|
|
2346
2379
|
## Instalação em um comando
|
|
2347
2380
|
|
|
@@ -3190,7 +3223,9 @@ Uma branch guarda uma linha de commits; um worktree é outra pasta de checkout.
|
|
|
3190
3223
|
|
|
3191
3224
|
Ao encerrar frente isolada, o ZAIP inventaria arquivos, verifica bundle e snapshot locais em \`.local/backup-branchs\` e \`.local/backup-worktrees\`, testa restauração e só então fecha branch/worktree. Trabalho sem proveniência no checkout compartilhado ou backup inválido bloqueia a limpeza, com motivo para reconciliação. Os backups ficam ignorados pelo Git para consulta; a remoção deles é manual.
|
|
3192
3225
|
|
|
3193
|
-
\`.agents/config/release-cycle.json\` define o release executável. PRD/SPEC
|
|
3226
|
+
\`.agents/config/release-cycle.json\` define o release executável. PRD/SPEC futuros podem ficar em draft; seu início exige o ciclo corrente. Para publicar, concilie e feche as frentes atuais, congele e audite o SHA candidato, execute os checks locais, envie apenas \`main\` e espere CI verde nesse SHA antes da Release. Branch remota candidata não é criada. Tag, GitHub Release, npm e destino de deploy aplicável têm provas distintas.
|
|
3227
|
+
|
|
3228
|
+
A Task de coordenação do corte pode continuar executando durante publicação e avanço somente nos modos previstos: raiz integrada com IDs explícitos no manifesto frozen e \`release_mode: integrated_task\`, ou coordenação delegada de SPEC com ancestralidade validada. As demais Tasks correntes precisam estar terminais. O gate confere os records no SHA candidato, e o responsável conclui Evidence, revisão aplicável e Gui depois das provas de publicação. A coordenação simples, sem esses modos, precisa estar concluída antes da auditoria. Veja os [contratos e comandos do corte](.agents/zaip-aios/guides/26-qualidade-e-release.md#ciclo-corrente-limpeza-e-ci-da-main-antes-da-release). Não declarar a Task concluída antes do finalizador para conseguir publicar.
|
|
3194
3229
|
`,P=n(),F=Object.assign({"../../../../zaip-aios/guides/01-primeiros-passos.md":i,"../../../../zaip-aios/guides/02-requirements.md":a,"../../../../zaip-aios/guides/03-tasks.md":o,"../../../../zaip-aios/guides/04-specs.md":s,"../../../../zaip-aios/guides/05-prds.md":c,"../../../../zaip-aios/guides/06-execucao.md":l,"../../../../zaip-aios/guides/07-revisao-e-validacao.md":u,"../../../../zaip-aios/guides/08-contexto-e-tokens.md":d,"../../../../zaip-aios/guides/09-agentes-e-squads.md":f,"../../../../zaip-aios/guides/10-seguranca.md":p,"../../../../zaip-aios/guides/11-observabilidade-e-custos.md":m,"../../../../zaip-aios/guides/12-instalacao-e-upgrade.md":h,"../../../../zaip-aios/guides/13-boas-praticas.md":g,"../../../../zaip-aios/guides/14-troubleshooting.md":_,"../../../../zaip-aios/guides/15-tools-e-codex.md":v,"../../../../zaip-aios/guides/16-lifecycle-e-reconciliacao.md":y,"../../../../zaip-aios/guides/17-como-o-custo-e-calculado.md":b,"../../../../zaip-aios/guides/18-catalogo-de-agentes.md":x,"../../../../zaip-aios/guides/19-assurance-e-autonomia.md":S,"../../../../zaip-aios/guides/20-instalacao-detalhada.md":C,"../../../../zaip-aios/guides/21-telemetria-monitor-custos.md":w,"../../../../zaip-aios/guides/22-fluxos-e-roteamento.md":T,"../../../../zaip-aios/guides/23-orquestracao-de-modelos.md":E,"../../../../zaip-aios/guides/24-calculo-de-custos-openai.md":D,"../../../../zaip-aios/guides/25-fontes-de-precos-openai.md":O,"../../../../zaip-aios/guides/26-qualidade-e-release.md":k,"../../../../zaip-aios/guides/27-telemetria-git-native.md":A,"../../../../zaip-aios/guides/28-lifecycle-completo.md":j});function I({locale:e,onClose:t}){let n=(0,M.useMemo)(()=>r(e,N,F),[e]),i=n.filter(e=>e.id!==`readme`),[a,o]=(0,M.useState)(`readme`),[s,c]=(0,M.useState)(`rendered`),l=n.find(e=>e.id===a)??n[0];return(0,P.jsx)(`div`,{className:`dashboard-help-backdrop`,children:(0,P.jsxs)(`section`,{"aria-label":e===`pt-BR`?`Ajuda do ZAIP-AIOS`:`ZAIP-AIOS help`,"aria-modal":`true`,className:`dashboard-help`,role:`dialog`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{children:e===`pt-BR`?`Documentação local`:`Local documentation`}),(0,P.jsx)(`h2`,{children:e===`pt-BR`?`Ajuda e guides do framework`:`Framework help and guides`})]}),(0,P.jsx)(`button`,{"aria-label":e===`pt-BR`?`Fechar ajuda`:`Close help`,onClick:t,type:`button`,children:`×`})]}),(0,P.jsxs)(`div`,{className:`dashboard-help-layout`,children:[(0,P.jsxs)(`nav`,{"aria-label":e===`pt-BR`?`Documentos de ajuda`:`Help documents`,children:[(0,P.jsx)(`strong`,{children:e===`pt-BR`?`Visão geral`:`Overview`}),(0,P.jsx)(`button`,{className:a===`readme`?`is-active`:void 0,onClick:()=>o(`readme`),type:`button`,children:`README · ZAIP-AIOS`}),(0,P.jsx)(`strong`,{children:e===`pt-BR`?`Aprofundar no framework`:`Framework guides`}),i.map(e=>(0,P.jsx)(`button`,{className:a===e.id?`is-active`:void 0,onClick:()=>o(e.id),type:`button`,children:e.title},e.id))]}),(0,P.jsxs)(`article`,{children:[(0,P.jsxs)(`div`,{className:`dashboard-help-document-header`,children:[(0,P.jsx)(`h3`,{children:l?.title}),(0,P.jsxs)(`fieldset`,{"aria-label":e===`pt-BR`?`Visualização do documento`:`Document view`,children:[(0,P.jsx)(`button`,{"aria-pressed":s===`rendered`,className:s===`rendered`?`is-active`:void 0,onClick:()=>c(`rendered`),type:`button`,children:e===`pt-BR`?`Renderizado`:`Rendered`}),(0,P.jsx)(`button`,{"aria-pressed":s===`source`,className:s===`source`?`is-active`:void 0,onClick:()=>c(`source`),type:`button`,children:`Markdown`})]})]}),(0,P.jsx)(`div`,{className:`dashboard-help-sections`,children:W(l?.content??``,e).map(e=>(0,P.jsxs)(`section`,{children:[(0,P.jsx)(`h4`,{children:e.title}),s===`rendered`?(0,P.jsx)(L,{content:e.content}):(0,P.jsx)(`pre`,{children:e.content})]},e.title))})]})]})]})})}function L({content:e}){return U(R(e),H).map(({key:e,value:t})=>t.kind===`table`?(0,P.jsx)(`div`,{className:`dashboard-help-table-scroll`,children:(0,P.jsxs)(`table`,{children:[(0,P.jsx)(`thead`,{children:(0,P.jsx)(`tr`,{children:U(t.headers,e=>e).map(({key:e,value:t})=>(0,P.jsx)(`th`,{children:V(t)},e))})}),(0,P.jsx)(`tbody`,{children:U(t.rows,e=>e.join(``)).map(({key:e,value:t})=>(0,P.jsx)(`tr`,{children:U(t,e=>e).map(({key:e,value:t})=>(0,P.jsx)(`td`,{children:V(t)},e))},e))})]})},e):(0,P.jsx)(`pre`,{children:t.content},e))}function R(e){let t=e.split(`
|
|
3195
3230
|
`),n=[],r=[],i=()=>{let e=r.join(`
|
|
3196
3231
|
`).trim();e&&n.push({kind:`text`,content:e}),r=[]};for(let e=0;e<t.length;e+=1){let a=t[e],o=t[e+1];if(a?.includes(`|`)&&o&&z(o)){i();let r=B(a),o=[];for(e+=2;e<t.length&&t[e]?.includes(`|`);)o.push(B(t[e]??``)),e+=1;--e,n.push({kind:`table`,headers:r,rows:o});continue}r.push(a??``)}return i(),n}function z(e){return B(e).every(e=>/^:?-{3,}:?$/.test(e.replace(/\s/g,``)))}function B(e){return e.trim().replace(/^\|/,``).replace(/\|$/,``).split(`|`).map(e=>e.trim())}function V(e){return U(e.split(/(\*\*[^*]+\*\*)/g),e=>e).map(({key:e,value:t})=>t.startsWith(`**`)&&t.endsWith(`**`)?(0,P.jsx)(`strong`,{children:t.slice(2,-2)},e):(0,P.jsx)(M.Fragment,{children:t},e))}function H(e){return e.kind===`text`?`text:${e.content}`:`table:${e.headers.join(``)}:${e.rows.map(e=>e.join(``)).join(``)}`}function U(e,t){let n=new Map;return e.map(e=>{let r=t(e),i=(n.get(r)??0)+1;return n.set(r,i),{key:`${r}#${i}`,value:e}})}function W(e,t){return e.split(/\n(?=##?\s)/).filter(Boolean).map((e,n)=>{let r=e.trim().split(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-Co2Jiuzh.js";import{n as r}from"./dashboard-localization-CF7B1Hjn.js";var i=e(t(),1),a=n();function o({catalog:e,fxRate:t,locale:n,onClose:o,onSave:c,onSaveFxRate:l}){let u=r[n],[d,f]=(0,i.useState)(e),[p,m]=(0,i.useState)(t?.rate??0),[h,g]=(0,i.useState)(!1),_=(e,t)=>f(n=>({...n,models:n.models.map((n,r)=>r===e?{...n,...t}:n)})),v=e=>Math.max(0,Number(e)||0);return(0,a.jsx)(`main`,{className:`pricing-backdrop`,children:(0,a.jsxs)(`section`,{"aria-labelledby":`pricing-page-title`,className:`pricing-dialog`,children:[(0,a.jsxs)(`header`,{children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`small`,{children:u.eyebrow}),(0,a.jsx)(`h1`,{id:`pricing-page-title`,children:u.title}),(0,a.jsx)(`p`,{children:u.description})]}),(0,a.jsxs)(`button`,{className:`pricing-back-button`,onClick:o,type:`button`,children:[(0,a.jsx)(`span`,{"aria-hidden":`true`,children:`←`}),` `,u.back]})]}),(0,a.jsxs)(`div`,{className:`pricing-fx-settings`,children:[(0,a.jsxs)(`div`,{className:`pricing-fx-copy`,children:[(0,a.jsx)(`strong`,{children:u.fxTitle}),(0,a.jsx)(`p`,{children:u.fxDescription})]}),(0,a.jsxs)(`label`,{children:[(0,a.jsx)(`span`,{children:u.fxLabel}),(0,a.jsxs)(`div`,{className:`pricing-fx-input`,children:[(0,a.jsx)(`span`,{children:`R$`}),(0,a.jsx)(`input`,{"aria-label":u.fxAriaLabel,min:`0.0001`,onChange:e=>m(Math.max(1e-4,Number(e.target.value)||0)),step:`0.0001`,type:`number`,value:p})]})]})]}),(0,a.jsxs)(`div`,{className:`pricing-table-heading`,children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`strong`,{children:u.catalog}),(0,a.jsx)(`p`,{children:u.pricesPerMillion})]}),(0,a.jsxs)(`span`,{children:[d.models.length,` `,u.models]})]}),(0,a.jsx)(`div`,{className:`pricing-table-wrap`,children:(0,a.jsxs)(`table`,{children:[(0,a.jsx)(`thead`,{children:(0,a.jsxs)(`tr`,{children:[(0,a.jsx)(`th`,{children:u.model}),(0,a.jsx)(`th`,{children:u.provider}),(0,a.jsx)(`th`,{children:u.input}),(0,a.jsx)(`th`,{children:u.cache}),(0,a.jsx)(`th`,{children:u.output}),(0,a.jsx)(`th`,{children:u.reasoning}),(0,a.jsx)(`th`,{children:u.priorityInput}),(0,a.jsx)(`th`,{children:u.priorityCache}),(0,a.jsx)(`th`,{children:u.priorityOutput}),(0,a.jsx)(`th`,{children:u.priorityReasoning}),(0,a.jsx)(`th`,{children:u.contextLimit}),(0,a.jsx)(`th`,{children:u.inputMultiplier}),(0,a.jsx)(`th`,{children:u.outputMultiplier}),(0,a.jsx)(`th`,{})]})}),(0,a.jsx)(`tbody`,{children:d.models.map((e,t)=>(0,a.jsxs)(`tr`,{children:[(0,a.jsxs)(`td`,{children:[(0,a.jsx)(`input`,{"aria-label":u.model,onChange:e=>_(t,{id:e.target.value}),value:e.id}),(0,a.jsx)(`small`,{children:e.aliases.join(`, `)||u.noAliases})]}),(0,a.jsx)(`td`,{children:(0,a.jsxs)(`select`,{onChange:e=>_(t,{provider:e.target.value}),value:e.provider,children:[(0,a.jsx)(`option`,{value:`openai`,children:`OpenAI`}),(0,a.jsx)(`option`,{value:`anthropic`,children:`Anthropic`})]})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{input_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.input_per_million_usd})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{cached_input_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.cached_input_per_million_usd??0})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{output_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.output_per_million_usd})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{reasoning_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.reasoning_per_million_usd??0})}),[`priority_input_per_million_usd`,`priority_cached_input_per_million_usd`,`priority_output_per_million_usd`,`priority_reasoning_per_million_usd`].map(n=>(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{[n]:v(e.target.value)}),step:`0.001`,type:`number`,value:e[n]??0})},n)),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{long_context_threshold_tokens:v(e.target.value)||null}),step:`1`,type:`number`,value:e.long_context_threshold_tokens??0})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0.001`,onChange:e=>_(t,{long_context_input_multiplier:Math.max(.001,Number(e.target.value)||1)}),step:`0.1`,type:`number`,value:e.long_context_input_multiplier})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0.001`,onChange:e=>_(t,{long_context_output_multiplier:Math.max(.001,Number(e.target.value)||1)}),step:`0.1`,type:`number`,value:e.long_context_output_multiplier})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`button`,{"aria-label":u.removeModel,onClick:()=>f(e=>({...e,models:e.models.filter((e,n)=>n!==t)})),type:`button`,children:`×`})})]},e.id))})]})}),(0,a.jsxs)(`footer`,{children:[(0,a.jsxs)(`button`,{onClick:()=>f(e=>({...e,models:[...e.models,s(n)]})),type:`button`,children:[`+ `,u.addModel]}),(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`button`,{onClick:o,type:`button`,children:u.cancel}),(0,a.jsx)(`button`,{disabled:h,onClick:async()=>{g(!0);try{await c(d),await l(p),o()}finally{g(!1)}},type:`button`,children:h?u.saving:u.save})]})]})]})})}function s(e=`pt-BR`){let t=r[e];return{id:t.newModel,provider:`openai`,aliases:[],input_per_million_usd:0,cached_input_per_million_usd:0,output_per_million_usd:0,reasoning_per_million_usd:0,priority_input_per_million_usd:null,priority_cached_input_per_million_usd:null,priority_output_per_million_usd:null,priority_reasoning_per_million_usd:null,reasoning_billed_separately:!1,long_context_threshold_tokens:null,long_context_input_multiplier:1,long_context_output_multiplier:1,source_label:t.manualOverride,source_url:`https://developers.openai.com/api/docs/pricing`,notes:[t.editedNote]}}export{o as PricingSettingsPage};
|