@zaip-ai/cli 3.1.0 → 3.3.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/README.md +11 -5
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +16 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/services/adapters.d.ts +1 -1
- package/dist/services/adapters.d.ts.map +1 -1
- package/dist/services/adapters.js +2 -1
- package/dist/services/adapters.js.map +1 -1
- package/dist/services/github-setup-status.d.ts +12 -0
- package/dist/services/github-setup-status.d.ts.map +1 -0
- package/dist/services/github-setup-status.js +84 -0
- package/dist/services/github-setup-status.js.map +1 -0
- package/dist/services/github-setup-status.test.d.ts +2 -0
- package/dist/services/github-setup-status.test.d.ts.map +1 -0
- package/dist/services/github-setup-status.test.js +57 -0
- package/dist/services/github-setup-status.test.js.map +1 -0
- package/dist/services/logger.d.ts +10 -1
- package/dist/services/logger.d.ts.map +1 -1
- package/dist/services/logger.js +39 -6
- package/dist/services/logger.js.map +1 -1
- package/dist/services/logger.test.js +50 -5
- package/dist/services/logger.test.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/templates/.agents/README-ENG.md +2 -1
- package/templates/.agents/README.md +2 -1
- package/templates/.agents/config/agents/catalog.yaml +1 -0
- package/templates/.agents/config/agents/discovery.json +2 -2
- package/templates/.agents/config/clients/codex/agents/zaip-agent-builder.toml +2 -2
- package/templates/.agents/dashboard/.zaip-managed.json +60 -52
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{CostCalculationGuidePage-CEDZjl4V.js → CostCalculationGuidePage-BBFDrn64.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-DIWDmvAS.js → DashboardHelpDialog-Cd-qo9w7.js} +4 -3
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-BBRBKaHa.js → PricingSettingsDialog-J7L5m8lk.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-BAvLPAee.js → ProjectSettingsPage-BpsAFy0g.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-C9dDhj34.js → TraceabilityWorkspace-BzVtGLWS.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{cost-monitor-06__WZco.js → cost-monitor--iPcnZdx.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-CoAVMZN6.js → dashboard-localization-jvdDfNKs.js} +2 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-DEmo6Tn2.js → icons-vendor-CWzf_RiP.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-BVzw_Wux.js → index-DfdlGa7c.js} +2 -2
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-CadYsm83.js → react-vendor-CtHdbZk3.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{traceability-BzKK8kK3.js → traceability-BKrDH2TR.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.helpers.tsx +4 -1
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.test.ts +5 -0
- package/templates/.agents/dashboard/modules/operations/src/react/export/xlsx-runtime-e2e.test.ts +55 -31
- 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 +186 -166
- package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +135 -115
- package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +187 -167
- package/templates/.agents/dashboard/packages/local-runtime/src/server-period-macro-metric.test.ts +19 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-read-projections.ts +3 -3
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-cache.test.ts +94 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-cache.ts +32 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-force-canonical.test.ts +58 -3
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-projection.ts +2 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-counts-every-root-execution-day-returns.test.ts +13 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-keeps-orphan-telemetry-out-kanban-without.test.ts +2 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-schema.ts +15 -2
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +2 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-dashboard-views.ts +20 -2
- package/templates/.agents/dashboard/packages/ui/package.json +1 -1
- package/templates/.agents/dashboard/scripts/qualify-macro-overview.mjs +50 -0
- package/templates/.agents/dashboard/tests/e2e/package.json +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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +17 -2
- 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/runtime/VERSION +1 -1
- package/templates/.agents/runtime/bin/zaip.mjs +13 -12
- package/templates/.agents/runtime/checksums.sha256 +5 -5
- package/templates/.agents/runtime/manifest.json +1 -1
- package/templates/.agents/runtime/provenance.json +4 -4
- package/templates/.agents/runtime/sbom.cdx.json +1 -1
- package/templates/.agents/skills/zaip-aios/SKILL.md +0 -1
- package/templates/.agents/skills/zaip-skill-author-skills/scripts/audit-skill-catalog.mjs +1 -0
- package/templates/.agents/skills/zaip-skill-config/SKILL.md +12 -0
- package/templates/.agents/skills/zaip-skill-github-setup/SKILL.md +7 -1
- package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +4 -0
- package/templates/.agents/skills/zaip-skill-setup/SKILL.md +36 -2
- package/templates/.agents/skills/zaip-skill-setup/agents/openai.yaml +2 -2
- package/templates/.agents/skills/zaip-skill-update-version-doc/SKILL.md +39 -0
- package/templates/.agents/skills/zaip-skill-update-version-doc/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-update-version-doc/scripts/update-version-doc.mjs +21 -0
- package/templates/.agents/skills/zaip-skill-update-version-doc/scripts/update-version-doc.test.mjs +32 -0
- package/templates/.agents/zaip-aios/README.md +2 -1
- package/templates/.agents/zaip-aios/VERSION +1 -1
- package/templates/.agents/zaip-aios/guides/20-instalacao-detalhada.md +26 -1
- package/templates/template-manifest.json +120 -96
|
@@ -726,7 +726,8 @@ pnpm build
|
|
|
726
726
|
|
|
727
727
|
Before integrating a relevant change or preparing a release, `pnpm verify` runs the complete repository pipeline, including additional tool, contract, generation, workspace, runtime-parity, and release-test gates. This pipeline only validates the lock; if a managed file was intentionally changed, run sync first. Use the pnpm version fixed in `packageManager` (`corepack pnpm` when available). For a bounded change, choose checks appropriate to its risk and diff; the list does not require repeating every test for each documentation edit. Release qualification uses the complete gates in [guide 26](zaip-aios/guides/26-qualidade-e-release.md) on the exact candidate. Do not conflate `validate:github:prepared`, local execution, push, and a green terminal CI.
|
|
728
728
|
|
|
729
|
-
|
|
729
|
+
<!-- zaip-version-reference -->
|
|
730
|
+
The [candidate identity](https://github.com/zaip-ai/zaip-aios/blob/main/docs/release-identity.md) is generated from the root manifest. It does not mean `latest` has been published or certify production. Release requires the exact revision, terminal CI, TGZ integrity, and a real artifact installation. Attempts and limitations remain in the Change evidence; local results and publication are distinct states.
|
|
730
731
|
|
|
731
732
|
The detailed architecture is summarized in this README's [Application architecture](#application-architecture) section.
|
|
732
733
|
|
|
@@ -761,7 +761,8 @@ Antes de integrar uma mudança relevante ou preparar um release, `pnpm verify` e
|
|
|
761
761
|
|
|
762
762
|
Use a versão de pnpm fixada em `packageManager` (`corepack pnpm` quando disponível). Para uma alteração delimitada, selecione os checks pertinentes ao risco e ao diff; a lista acima não exige repetir todos os testes a cada edição documental. Qualificação de release usa os gates completos do [guia 26](zaip-aios/guides/26-qualidade-e-release.md) no candidato exato. Não confunda `validate:github:prepared`, execução local, push e CI terminal verde.
|
|
763
763
|
|
|
764
|
-
|
|
764
|
+
<!-- zaip-version-reference -->
|
|
765
|
+
A [identidade da candidata](https://github.com/zaip-ai/zaip-aios/blob/main/docs/release-identity.md) é gerada a partir do manifesto raiz. Ela não significa que o `latest` já foi publicado nem certifica produção. A release exige revisão exata, CI terminal, integridade do TGZ e instalação real do artefato. Tentativas e limitações ficam nas evidências da Change; resultados locais e publicação são estados distintos.
|
|
765
766
|
|
|
766
767
|
A arquitetura detalhada está resumida na seção [Arquitetura das aplicações](#arquitetura-das-aplicações) deste README.
|
|
767
768
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_zaip_managed": "zaip-managed generated-do-not-edit source=agent-discovery version=3.
|
|
2
|
+
"_zaip_managed": "zaip-managed generated-do-not-edit source=agent-discovery version=3.3.0 sha256=d3bb47843a1305269aa379da3cfb901248c693d21a81b9d5a02afca92668a369",
|
|
3
3
|
"schema_version": 1,
|
|
4
4
|
"source": {
|
|
5
5
|
"path": ".agents/config/agents/catalog.yaml",
|
|
6
6
|
"kind": "canonical-catalog",
|
|
7
7
|
"revision": "catalog-schema-1",
|
|
8
|
-
"sha256": "
|
|
8
|
+
"sha256": "8d0823619d1d0fd613201245edd4e6a2824c3d4f38f54fda47dbd0dae2bf8683"
|
|
9
9
|
},
|
|
10
10
|
"excluded_path_prefixes": [".local/", ".agents/config/clients/", ".codex/", ".claude/"],
|
|
11
11
|
"agents": [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# zaip-managed generated-do-not-edit source=agent-catalog schema=1 sha256=
|
|
1
|
+
# zaip-managed generated-do-not-edit source=agent-catalog schema=1 sha256=06c87354f792eca69d35639fb8bc8656ef6672df81da526c507e0f94f0e6a441
|
|
2
2
|
name = "zaip-agent-builder"
|
|
3
3
|
description = "Deliver generic technical work and SPEC decomposition, including dashboard or local scope when no specialist is mandatory."
|
|
4
4
|
nickname_candidates = ["rafa_tech_lead_zaip_agent"]
|
|
@@ -10,7 +10,7 @@ Operate as Codex agent zaip-agent-builder (ZAIP catalog id agent-builder) with r
|
|
|
10
10
|
Deliver generic technical work and SPEC decomposition, including dashboard or local scope when no specialist is mandatory.
|
|
11
11
|
Capabilities: project-stack-delivery, test-authoring, spec-creation, spec-refinement, technical-decomposition.
|
|
12
12
|
Allowed tools: apply-patch, shell-read, test-runner, zaip-cli.
|
|
13
|
-
Available skills: zaip-skill-change, zaip-skill-spec, zaip-skill-architecture-design, zaip-skill-dev-environment, zaip-skill-module-scaffold, zaip-skill-testing-strategy, zaip-skill-test-data, zaip-skill-dependency-upgrade; load matching skills only. Change/execution skills apply to persistent delivery; Meta Ads applies only to Meta work.
|
|
13
|
+
Available skills: zaip-skill-change, zaip-skill-spec, zaip-skill-architecture-design, zaip-skill-dev-environment, zaip-skill-module-scaffold, zaip-skill-testing-strategy, zaip-skill-test-data, zaip-skill-dependency-upgrade, zaip-skill-update-version-doc; load matching skills only. Change/execution skills apply to persistent delivery; Meta Ads applies only to Meta work.
|
|
14
14
|
Keep the invoked model and reasoning effort immutable for this Run; report unavailable effective configuration as unavailable.
|
|
15
15
|
Write scopes: packages/*, .agents/records/specs/*, .agents/records/lifecycle/*, .agents/dashboard/*, .local/*.
|
|
16
16
|
The Codex host grants workspace-write at the workspace boundary, not per-path. Treat the declared write scopes as mandatory: do not modify files outside them; report any required expansion to the parent before writing.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"files": [
|
|
5
5
|
{
|
|
6
6
|
"path": "DATA-DICTIONARY.md",
|
|
@@ -11,76 +11,76 @@
|
|
|
11
11
|
"sha256": "eee8a44da4ec5486635e2f2c8d1e53720fd38f7930ceff6bd3eedb39b055ea5d"
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
|
-
"path": "apps/frontend/dist/assets/CostCalculationGuidePage-
|
|
15
|
-
"sha256": "
|
|
14
|
+
"path": "apps/frontend/dist/assets/CostCalculationGuidePage-BBFDrn64.js",
|
|
15
|
+
"sha256": "03e7d551bd31f556ee050e6f4ad0592e7c5c1deeb201314a6a2adb54a95416bc"
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
"path": "apps/frontend/dist/assets/DashboardHelpDialog-
|
|
19
|
-
"sha256": "
|
|
18
|
+
"path": "apps/frontend/dist/assets/DashboardHelpDialog-Cd-qo9w7.js",
|
|
19
|
+
"sha256": "05d0e9b4b9f4b043528b6721b85146e695e274a3b14652aa4d194b3ec042375f"
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"path": "apps/frontend/dist/assets/DashboardHelpDialog-Je5nK-Et.css",
|
|
23
23
|
"sha256": "aafa708825ff8417d2de8ce9f45b94c899aa9ae5c5068bf5ce4def13e9c00643"
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
|
-
"path": "apps/frontend/dist/assets/PricingSettingsDialog-
|
|
27
|
-
"sha256": "
|
|
26
|
+
"path": "apps/frontend/dist/assets/PricingSettingsDialog-J7L5m8lk.js",
|
|
27
|
+
"sha256": "882e6ad311b46cb0049d79054d0fdb1a24cab5d64fea0e6a1736a2b579758dd7"
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
"path": "apps/frontend/dist/assets/ProjectSettingsPage-B9GWkEyN.css",
|
|
31
31
|
"sha256": "4e69173f663a11bf3b4baa7a6f4b694e99552219cf0a3d6a4bc7d3c6d53bfbdb"
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
"path": "apps/frontend/dist/assets/ProjectSettingsPage-
|
|
35
|
-
"sha256": "
|
|
34
|
+
"path": "apps/frontend/dist/assets/ProjectSettingsPage-BpsAFy0g.js",
|
|
35
|
+
"sha256": "b241e0398d3f1e179ad96f16d4e9146ff3505ccf2fda1fff9ea0e3b649f6f548"
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
|
-
"path": "apps/frontend/dist/assets/TraceabilityWorkspace-
|
|
39
|
-
"sha256": "
|
|
38
|
+
"path": "apps/frontend/dist/assets/TraceabilityWorkspace-BzVtGLWS.js",
|
|
39
|
+
"sha256": "9fba9d6b309cc2dde6aea55c8eb96e5d3a4b8a2df740c5adfcfafedea071aefd"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"path": "apps/frontend/dist/assets/TraceabilityWorkspace-DvvavDLY.css",
|
|
43
43
|
"sha256": "2dc93c190042edd2f5c585aab941bcaa5506aa1a8b5f26afa6e99996ce957e35"
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
"path": "apps/frontend/dist/assets/cost-monitor
|
|
47
|
-
"sha256": "
|
|
46
|
+
"path": "apps/frontend/dist/assets/cost-monitor--iPcnZdx.js",
|
|
47
|
+
"sha256": "e947774a4863a30b83989a802a48265d4766d0ab77378d9c1aa228e05b070cfa"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
"path": "apps/frontend/dist/assets/cost-monitor-PoJA2PI1.css",
|
|
51
51
|
"sha256": "158f796dfd3df65cf5bbddcafc1c2c62f4ad01b3df85674136a546640c284901"
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
|
-
"path": "apps/frontend/dist/assets/dashboard-localization-
|
|
55
|
-
"sha256": "
|
|
54
|
+
"path": "apps/frontend/dist/assets/dashboard-localization-jvdDfNKs.js",
|
|
55
|
+
"sha256": "94d463fead7641b6adef2383765470f2324ea761040edaa204daaee07516708c"
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
|
-
"path": "apps/frontend/dist/assets/icons-vendor-
|
|
59
|
-
"sha256": "
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"path": "apps/frontend/dist/assets/index-BVzw_Wux.js",
|
|
63
|
-
"sha256": "54378872be9cc1286afa9fd9e1fa2f1d72d117a1f31e6d88eecfb66d252e6851"
|
|
58
|
+
"path": "apps/frontend/dist/assets/icons-vendor-CWzf_RiP.js",
|
|
59
|
+
"sha256": "b17c3677a46b95844636553c7c2146f13b5df4ea49fffb2bf3b729b2e7060bcd"
|
|
64
60
|
},
|
|
65
61
|
{
|
|
66
62
|
"path": "apps/frontend/dist/assets/index-Cmlx8OYH.css",
|
|
67
63
|
"sha256": "555bd23c75cfa58812d58124f31c3897a581f6b94c7998ec9db7aff9fa8ddd29"
|
|
68
64
|
},
|
|
65
|
+
{
|
|
66
|
+
"path": "apps/frontend/dist/assets/index-DfdlGa7c.js",
|
|
67
|
+
"sha256": "624b31abb59678495ea85cbcf7dff77027ecdda807802e66c86fd67d0f4c59b9"
|
|
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-CtHdbZk3.js",
|
|
75
|
+
"sha256": "76911644b22d0c28e535b5c5869aad0ac21aa0d4d8fed20b299d5eaf9f38f90a"
|
|
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-BKrDH2TR.js",
|
|
83
|
+
"sha256": "8422872c047f74d55ffd8f753ae5e23b2dc8611fac143318230032b9289ee000"
|
|
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": "8adb284a8632f3547a30a21719a05e14d2eed0ad8e931ffb9e44079161806d6f"
|
|
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": "f7f2c0cdb27c242dda874be89fe103e18b306952cdbf43d350522b612939cae1"
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
110
|
"path": "apps/frontend/playwright.dom.config.ts",
|
|
@@ -524,7 +524,7 @@
|
|
|
524
524
|
},
|
|
525
525
|
{
|
|
526
526
|
"path": "modules/cost-monitor/package.json",
|
|
527
|
-
"sha256": "
|
|
527
|
+
"sha256": "c767ab3031404ca0109b99959da1331e1853a2ecd50d0446dce474a3fb57b980"
|
|
528
528
|
},
|
|
529
529
|
{
|
|
530
530
|
"path": "modules/cost-monitor/src/agent-groups.test.ts",
|
|
@@ -892,7 +892,7 @@
|
|
|
892
892
|
},
|
|
893
893
|
{
|
|
894
894
|
"path": "modules/operations/package.json",
|
|
895
|
-
"sha256": "
|
|
895
|
+
"sha256": "e28c0fb373b4ceea8b3eb27f533698cfa25ade3e59ff670a18e9b512f8ddbfd4"
|
|
896
896
|
},
|
|
897
897
|
{
|
|
898
898
|
"path": "modules/operations/src/contracts.ts",
|
|
@@ -972,7 +972,7 @@
|
|
|
972
972
|
},
|
|
973
973
|
{
|
|
974
974
|
"path": "modules/operations/src/react/OperationsOverview.helpers.tsx",
|
|
975
|
-
"sha256": "
|
|
975
|
+
"sha256": "5d18c406e561e5091c95aa192f63d3c53b973aaa144d39db67da0d8856230b05"
|
|
976
976
|
},
|
|
977
977
|
{
|
|
978
978
|
"path": "modules/operations/src/react/OperationsOverview.macro-metrics.test.ts",
|
|
@@ -980,7 +980,7 @@
|
|
|
980
980
|
},
|
|
981
981
|
{
|
|
982
982
|
"path": "modules/operations/src/react/OperationsOverview.test.ts",
|
|
983
|
-
"sha256": "
|
|
983
|
+
"sha256": "524e2f3160f17d2fa79d09e76e97cc464da87d9e0f8d36399df47052149ff229"
|
|
984
984
|
},
|
|
985
985
|
{
|
|
986
986
|
"path": "modules/operations/src/react/OperationsOverview.tsx",
|
|
@@ -1140,7 +1140,7 @@
|
|
|
1140
1140
|
},
|
|
1141
1141
|
{
|
|
1142
1142
|
"path": "modules/operations/src/react/export/xlsx-runtime-e2e.test.ts",
|
|
1143
|
-
"sha256": "
|
|
1143
|
+
"sha256": "f837c1ecfae0b5cb10c69fa4dba80cec2df28b3dd56f2ff6b362b7b8a6fa31b0"
|
|
1144
1144
|
},
|
|
1145
1145
|
{
|
|
1146
1146
|
"path": "modules/operations/src/react/format-card-created-at.test.ts",
|
|
@@ -1544,7 +1544,7 @@
|
|
|
1544
1544
|
},
|
|
1545
1545
|
{
|
|
1546
1546
|
"path": "modules/traceability/package.json",
|
|
1547
|
-
"sha256": "
|
|
1547
|
+
"sha256": "14c2a6849367ddd8b556f5603a320a20a87ae6757829eb64cfe57766834bb676"
|
|
1548
1548
|
},
|
|
1549
1549
|
{
|
|
1550
1550
|
"path": "modules/traceability/src/contracts.ts",
|
|
@@ -1616,7 +1616,7 @@
|
|
|
1616
1616
|
},
|
|
1617
1617
|
{
|
|
1618
1618
|
"path": "packages/branding/package.json",
|
|
1619
|
-
"sha256": "
|
|
1619
|
+
"sha256": "0a5a56b9ba31348c77dd4355488956462209cc589e90dc267958cf59faa64c61"
|
|
1620
1620
|
},
|
|
1621
1621
|
{
|
|
1622
1622
|
"path": "packages/branding/src/index.ts",
|
|
@@ -1628,7 +1628,7 @@
|
|
|
1628
1628
|
},
|
|
1629
1629
|
{
|
|
1630
1630
|
"path": "packages/contracts/package.json",
|
|
1631
|
-
"sha256": "
|
|
1631
|
+
"sha256": "8367b62630bc692b2b37ef210b1cce3b059628ac5b14c1e0bc6b7a007e9ba0c1"
|
|
1632
1632
|
},
|
|
1633
1633
|
{
|
|
1634
1634
|
"path": "packages/contracts/src/export.ts",
|
|
@@ -1648,7 +1648,7 @@
|
|
|
1648
1648
|
},
|
|
1649
1649
|
{
|
|
1650
1650
|
"path": "packages/data-export/package.json",
|
|
1651
|
-
"sha256": "
|
|
1651
|
+
"sha256": "ec3a48c95552804f6c0ccddcac4a940fea9974687038d477c3919e83e1bc85ab"
|
|
1652
1652
|
},
|
|
1653
1653
|
{
|
|
1654
1654
|
"path": "packages/data-export/src/index.test.ts",
|
|
@@ -1672,15 +1672,15 @@
|
|
|
1672
1672
|
},
|
|
1673
1673
|
{
|
|
1674
1674
|
"path": "packages/local-runtime/dist/server.cjs",
|
|
1675
|
-
"sha256": "
|
|
1675
|
+
"sha256": "bea961015c53cd72f7080522fe4f9785f35be4ce25c233f78560a4aecbe74d7e"
|
|
1676
1676
|
},
|
|
1677
1677
|
{
|
|
1678
1678
|
"path": "packages/local-runtime/dist/sqlite-read-model.cjs",
|
|
1679
|
-
"sha256": "
|
|
1679
|
+
"sha256": "a28f6de8d81496b0a6b7aa8ab7bc5e16be6976aaed59ef60efc782f747d366c3"
|
|
1680
1680
|
},
|
|
1681
1681
|
{
|
|
1682
1682
|
"path": "packages/local-runtime/package.json",
|
|
1683
|
-
"sha256": "
|
|
1683
|
+
"sha256": "70f5c2e78782549e353902c8ba26adac6969c5c11cad298292d6abe8328dff60"
|
|
1684
1684
|
},
|
|
1685
1685
|
{
|
|
1686
1686
|
"path": "packages/local-runtime/scripts/build-sqlite-dashboard.mjs",
|
|
@@ -1716,7 +1716,7 @@
|
|
|
1716
1716
|
},
|
|
1717
1717
|
{
|
|
1718
1718
|
"path": "packages/local-runtime/server.mjs",
|
|
1719
|
-
"sha256": "
|
|
1719
|
+
"sha256": "23bf0234c7204d8710c12a27a2439dc1486670518f4088fa5dcb8c61a156f1e9"
|
|
1720
1720
|
},
|
|
1721
1721
|
{
|
|
1722
1722
|
"path": "packages/local-runtime/src/active-codex-telemetry.ts",
|
|
@@ -1852,7 +1852,7 @@
|
|
|
1852
1852
|
},
|
|
1853
1853
|
{
|
|
1854
1854
|
"path": "packages/local-runtime/src/server-period-macro-metric.test.ts",
|
|
1855
|
-
"sha256": "
|
|
1855
|
+
"sha256": "4f05c2b9e0182c0c5a8714253931be891e4789b09ebff4d23b055e3b3faa184c"
|
|
1856
1856
|
},
|
|
1857
1857
|
{
|
|
1858
1858
|
"path": "packages/local-runtime/src/server-period-macro-metric.ts",
|
|
@@ -1868,7 +1868,7 @@
|
|
|
1868
1868
|
},
|
|
1869
1869
|
{
|
|
1870
1870
|
"path": "packages/local-runtime/src/server-read-projections.ts",
|
|
1871
|
-
"sha256": "
|
|
1871
|
+
"sha256": "902d8e3ee3d3e46f2ae59b1753404a0dacc2ebe89af41c78d902877bc77c6ecd"
|
|
1872
1872
|
},
|
|
1873
1873
|
{
|
|
1874
1874
|
"path": "packages/local-runtime/src/server-reconciliation-refresh.test.ts",
|
|
@@ -2062,9 +2062,13 @@
|
|
|
2062
2062
|
"path": "packages/local-runtime/src/sqlite-file-index.test.ts",
|
|
2063
2063
|
"sha256": "1844385ffe7094c9aa3c8159f24e8e10f5612354f4245bf1d528e2384c9f3662"
|
|
2064
2064
|
},
|
|
2065
|
+
{
|
|
2066
|
+
"path": "packages/local-runtime/src/sqlite-first-fold-cache.test.ts",
|
|
2067
|
+
"sha256": "191f78c6ea60361c9041b720cbe4ad7190569a2e4b7948822251873b064a0e83"
|
|
2068
|
+
},
|
|
2065
2069
|
{
|
|
2066
2070
|
"path": "packages/local-runtime/src/sqlite-first-fold-cache.ts",
|
|
2067
|
-
"sha256": "
|
|
2071
|
+
"sha256": "70500faa57d9af5e5bfbc1a2f55dcd4d4e6ca3a13b9a7f4595f4a6e83edc79ad"
|
|
2068
2072
|
},
|
|
2069
2073
|
{
|
|
2070
2074
|
"path": "packages/local-runtime/src/sqlite-first-fold-persistence.ts",
|
|
@@ -2076,7 +2080,7 @@
|
|
|
2076
2080
|
},
|
|
2077
2081
|
{
|
|
2078
2082
|
"path": "packages/local-runtime/src/sqlite-force-canonical.test.ts",
|
|
2079
|
-
"sha256": "
|
|
2083
|
+
"sha256": "f938533e611e756752ab842dde8069a35bf4d7dd294f6f1571471a8d919929ab"
|
|
2080
2084
|
},
|
|
2081
2085
|
{
|
|
2082
2086
|
"path": "packages/local-runtime/src/sqlite-incremental-cache.test.ts",
|
|
@@ -2112,7 +2116,7 @@
|
|
|
2112
2116
|
},
|
|
2113
2117
|
{
|
|
2114
2118
|
"path": "packages/local-runtime/src/sqlite-operations-projection.ts",
|
|
2115
|
-
"sha256": "
|
|
2119
|
+
"sha256": "24994d4ce7385f2b77f4c6e47e1a352ba5190592e354d65b8413f490c4985f73"
|
|
2116
2120
|
},
|
|
2117
2121
|
{
|
|
2118
2122
|
"path": "packages/local-runtime/src/sqlite-operations-work-list.test.ts",
|
|
@@ -2192,7 +2196,7 @@
|
|
|
2192
2196
|
},
|
|
2193
2197
|
{
|
|
2194
2198
|
"path": "packages/local-runtime/src/sqlite-read-model-counts-every-root-execution-day-returns.test.ts",
|
|
2195
|
-
"sha256": "
|
|
2199
|
+
"sha256": "d2e47ac403ae854462015c9bbbc44e6f0f6924d697158823e65b1c00fa082785"
|
|
2196
2200
|
},
|
|
2197
2201
|
{
|
|
2198
2202
|
"path": "packages/local-runtime/src/sqlite-read-model-does-not-convert-delayed-historical-finalizer.test.ts",
|
|
@@ -2208,7 +2212,7 @@
|
|
|
2208
2212
|
},
|
|
2209
2213
|
{
|
|
2210
2214
|
"path": "packages/local-runtime/src/sqlite-read-model-keeps-orphan-telemetry-out-kanban-without.test.ts",
|
|
2211
|
-
"sha256": "
|
|
2215
|
+
"sha256": "9215060a56f1b36ce82325a0c5dd3c368ba8c58c0ae63d86898a18e2a11c7e30"
|
|
2212
2216
|
},
|
|
2213
2217
|
{
|
|
2214
2218
|
"path": "packages/local-runtime/src/sqlite-read-model-launch-progress.ts",
|
|
@@ -2240,7 +2244,7 @@
|
|
|
2240
2244
|
},
|
|
2241
2245
|
{
|
|
2242
2246
|
"path": "packages/local-runtime/src/sqlite-read-model-schema.ts",
|
|
2243
|
-
"sha256": "
|
|
2247
|
+
"sha256": "57d178d51da7df3b0ae4f9aa80ac76d10b60d99488142174904000a4792fff41"
|
|
2244
2248
|
},
|
|
2245
2249
|
{
|
|
2246
2250
|
"path": "packages/local-runtime/src/sqlite-read-model-source-fingerprint.test.ts",
|
|
@@ -2256,7 +2260,7 @@
|
|
|
2256
2260
|
},
|
|
2257
2261
|
{
|
|
2258
2262
|
"path": "packages/local-runtime/src/sqlite-read-model.test.ts",
|
|
2259
|
-
"sha256": "
|
|
2263
|
+
"sha256": "2db914998c71461d0beb978abe8ff7fa2befade6f89b66ab27a5ca19a6124256"
|
|
2260
2264
|
},
|
|
2261
2265
|
{
|
|
2262
2266
|
"path": "packages/local-runtime/src/sqlite-read-model.ts",
|
|
@@ -2272,7 +2276,7 @@
|
|
|
2272
2276
|
},
|
|
2273
2277
|
{
|
|
2274
2278
|
"path": "packages/local-runtime/src/sqlite-schema-dashboard-views.ts",
|
|
2275
|
-
"sha256": "
|
|
2279
|
+
"sha256": "f0a710c6e00ac1b7cd46d3b7ff5581f864b41dbf9bea49559135f8c1c9a4ff7d"
|
|
2276
2280
|
},
|
|
2277
2281
|
{
|
|
2278
2282
|
"path": "packages/local-runtime/src/sqlite-snapshot-cache.ts",
|
|
@@ -2388,7 +2392,7 @@
|
|
|
2388
2392
|
},
|
|
2389
2393
|
{
|
|
2390
2394
|
"path": "packages/ui/package.json",
|
|
2391
|
-
"sha256": "
|
|
2395
|
+
"sha256": "2f787f9d43ca052de7a1f7e696f02e7c6284fd140e59ce228f23d3ae7c67463a"
|
|
2392
2396
|
},
|
|
2393
2397
|
{
|
|
2394
2398
|
"path": "packages/ui/src/DashboardHeader.test.mjs",
|
|
@@ -2466,6 +2470,10 @@
|
|
|
2466
2470
|
"path": "read-model.dbml",
|
|
2467
2471
|
"sha256": "d976b7d04435358bf9eaa1f56425d30a706b72fdf1b8a2f14ab4af51a58a5959"
|
|
2468
2472
|
},
|
|
2473
|
+
{
|
|
2474
|
+
"path": "scripts/qualify-macro-overview.mjs",
|
|
2475
|
+
"sha256": "1ae486cbda12683be996f6283f8808f524bd60133b4ae78288372143574249cb"
|
|
2476
|
+
},
|
|
2469
2477
|
{
|
|
2470
2478
|
"path": "scripts/qualify-observability.mjs",
|
|
2471
2479
|
"sha256": "d304f0788da978a1a4cc58f4777aed7179785e562606634f76e52c70a74918bc"
|
|
@@ -2492,7 +2500,7 @@
|
|
|
2492
2500
|
},
|
|
2493
2501
|
{
|
|
2494
2502
|
"path": "tests/e2e/package.json",
|
|
2495
|
-
"sha256": "
|
|
2503
|
+
"sha256": "b28bee2f8f76c6a4a3d730f29dfd9ae8063cda8e2927ce2d8c000355e30d7f17"
|
|
2496
2504
|
},
|
|
2497
2505
|
{
|
|
2498
2506
|
"path": "tests/e2e/playwright.config.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-06__WZco.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--iPcnZdx.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};
|