@zaip-ai/cli 1.3.4 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/package.json +1 -1
  2. package/templates/.agents/dashboard/.zaip-managed.json +44 -44
  3. package/templates/.agents/dashboard/apps/frontend/dist/assets/{CostCalculationGuidePage-BZWjXQB-.js → CostCalculationGuidePage-D1mpyYwh.js} +1 -1
  4. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-D8qqeIPE.js → DashboardHelpDialog-CKO47D5s.js} +1 -1
  5. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-Cm12_A0v.js → PricingSettingsDialog-BuSlCbyZ.js} +1 -1
  6. package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-DxO9F8B4.js → ProjectSettingsPage-CUHFkAhZ.js} +1 -1
  7. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-_x0twOcS.js → TraceabilityWorkspace-BmASq2gW.js} +1 -1
  8. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-Csj6LiAt.js +68 -0
  9. package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-CR4Fbf3g.js → icons-vendor-VyTTl_ph.js} +1 -1
  10. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-DIwDvCu5.js +2 -0
  11. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-hPPfVGQv.css +1 -0
  12. package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-DRJQbKnp.js → react-vendor-CTC6vtln.js} +1 -1
  13. package/templates/.agents/dashboard/apps/frontend/dist/assets/{traceability-CMrDYqjR.js → traceability-9Mtvbwrg.js} +1 -1
  14. package/templates/.agents/dashboard/apps/frontend/dist/index.html +6 -6
  15. package/templates/.agents/dashboard/apps/frontend/src/App.tsx +32 -13
  16. package/templates/.agents/dashboard/apps/frontend/src/cost-period-refresh.test.ts +13 -3
  17. package/templates/.agents/dashboard/apps/frontend/src/dashboard-capability-nav.css +11 -0
  18. package/templates/.agents/dashboard/apps/frontend/src/operations-period-contract.test.ts +14 -0
  19. package/templates/.agents/dashboard/apps/frontend/src/operations-period.test.ts +3 -6
  20. package/templates/.agents/dashboard/apps/frontend/src/operations-period.ts +3 -2
  21. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.helpers.tsx +2 -1
  22. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.test.ts +12 -4
  23. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.tsx +67 -24
  24. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPage.tsx +19 -4
  25. package/templates/.agents/dashboard/modules/operations/src/react/operation-date-range.test.ts +25 -0
  26. package/templates/.agents/dashboard/modules/operations/src/react/operation-date-range.ts +29 -0
  27. package/templates/.agents/dashboard/modules/operations/src/react/operations-coverage-toast.test.ts +3 -2
  28. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview-period-filter.test.ts +12 -2
  29. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-loading.spec.ts +1 -1
  30. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-pagination.spec.ts +4 -0
  31. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-period-transition.spec.ts +6 -0
  32. package/templates/.agents/dashboard/tests/e2e/specs/dashboard-performance-matrix.spec.ts +4 -0
  33. package/templates/.agents/dashboard/tests/e2e/specs/dashboard.spec.ts +40 -18
  34. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  35. package/templates/.agents/requirements/comparative-audit.md +1 -1
  36. package/templates/.agents/requirements/context-engine.md +1 -1
  37. package/templates/.agents/requirements/cost-observability.md +1 -1
  38. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  39. package/templates/.agents/requirements/data-export.md +1 -1
  40. package/templates/.agents/requirements/design-system.md +1 -1
  41. package/templates/.agents/requirements/execution-engine.md +1 -1
  42. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  43. package/templates/.agents/requirements/model-orchestration.md +1 -1
  44. package/templates/.agents/requirements/public-distribution.md +1 -1
  45. package/templates/.agents/requirements/software-architecture.md +1 -1
  46. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  47. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  48. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  49. package/templates/template-manifest.json +61 -61
  50. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-Cpp8xFij.js +0 -68
  51. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-B31GMG5O.css +0 -1
  52. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-ncC1rxap.js +0 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/cli",
3
- "version": "1.3.4",
3
+ "version": "1.3.5",
4
4
  "description": "CLI oficial para instalar e configurar o ZAIP-AIOS em qualquer repositório",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -11,40 +11,40 @@
11
11
  "sha256": "3143012996b26937008ab04579aac89917acfb5e52a7071c0326a3000b73fb9f"
12
12
  },
13
13
  {
14
- "path": "apps/frontend/dist/assets/CostCalculationGuidePage-BZWjXQB-.js",
15
- "sha256": "1b71f28fa1d74c9e001df318dc65087d820c158468ef737ec438f9b6341de8b8"
14
+ "path": "apps/frontend/dist/assets/CostCalculationGuidePage-D1mpyYwh.js",
15
+ "sha256": "44609fba0211473f614b27378769a2ed2ae4e272e9f399928d5ccb2273fa612c"
16
16
  },
17
17
  {
18
- "path": "apps/frontend/dist/assets/DashboardHelpDialog-D8qqeIPE.js",
19
- "sha256": "34e179a4ead58b079a8d0fe51e4b2144fc45246ecc2f9665860e1f59d5e89612"
18
+ "path": "apps/frontend/dist/assets/DashboardHelpDialog-CKO47D5s.js",
19
+ "sha256": "129804cb511e97f5ac6407d0a0c2a26f531c639ce1e35b756d986c01966c2142"
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-Cm12_A0v.js",
27
- "sha256": "09174ca9b73aef289b5a3158893c070c6513efa6245cc2b80205d467101f2b68"
26
+ "path": "apps/frontend/dist/assets/PricingSettingsDialog-BuSlCbyZ.js",
27
+ "sha256": "4c15f56fd377bf4452beb039c40d40de19ce3702af4ead9e3fcf60f7bddc20f2"
28
28
  },
29
29
  {
30
30
  "path": "apps/frontend/dist/assets/ProjectSettingsPage-BomxqCBU.css",
31
31
  "sha256": "36b1e5da18839d94f78280b5b9e6a4d7b07f2fb8bae757e9496f9ab51ef42e1f"
32
32
  },
33
33
  {
34
- "path": "apps/frontend/dist/assets/ProjectSettingsPage-DxO9F8B4.js",
35
- "sha256": "a5a691a2cecf961e318e811676f2d05860e09f6501df4e538e31b70e6a21a061"
34
+ "path": "apps/frontend/dist/assets/ProjectSettingsPage-CUHFkAhZ.js",
35
+ "sha256": "6244d73dad727ed3e52d9bca00708d2f94bd32b6d05f94b5e67aa99e4bc9076c"
36
36
  },
37
37
  {
38
- "path": "apps/frontend/dist/assets/TraceabilityWorkspace-DvvavDLY.css",
39
- "sha256": "2dc93c190042edd2f5c585aab941bcaa5506aa1a8b5f26afa6e99996ce957e35"
38
+ "path": "apps/frontend/dist/assets/TraceabilityWorkspace-BmASq2gW.js",
39
+ "sha256": "edb68d56f5e5aaaac21d82a420716cff351b2196a82c7f04e3c0fb43b639fb9b"
40
40
  },
41
41
  {
42
- "path": "apps/frontend/dist/assets/TraceabilityWorkspace-_x0twOcS.js",
43
- "sha256": "0fde274aaa53c8477d37517a7695c1cbe1b362d6a17c82319c9dd9467953a1f8"
42
+ "path": "apps/frontend/dist/assets/TraceabilityWorkspace-DvvavDLY.css",
43
+ "sha256": "2dc93c190042edd2f5c585aab941bcaa5506aa1a8b5f26afa6e99996ce957e35"
44
44
  },
45
45
  {
46
- "path": "apps/frontend/dist/assets/cost-monitor-Cpp8xFij.js",
47
- "sha256": "cab8dfd2f6a4574425c51aec2a29a7b22a57e898fab5f483c15c8ea799e5bf20"
46
+ "path": "apps/frontend/dist/assets/cost-monitor-Csj6LiAt.js",
47
+ "sha256": "2ce21e0492cef4045f18646c39b02b977a50058ae9c3ef5273d6a0b250dbf429"
48
48
  },
49
49
  {
50
50
  "path": "apps/frontend/dist/assets/cost-monitor-PoJA2PI1.css",
@@ -55,32 +55,32 @@
55
55
  "sha256": "8cc193dc078b845250b86e2eb5b406bf3a521c2582099f8a60e7b111b417d7e4"
56
56
  },
57
57
  {
58
- "path": "apps/frontend/dist/assets/icons-vendor-CR4Fbf3g.js",
59
- "sha256": "45bc72dacf09484a2d264e13e2f2de28b825e1138d5e07d28dc418b302ef36a9"
58
+ "path": "apps/frontend/dist/assets/icons-vendor-VyTTl_ph.js",
59
+ "sha256": "9644b16bd8b70576536a7c4767257b9d5596a26097571824d19ce20451639333"
60
60
  },
61
61
  {
62
- "path": "apps/frontend/dist/assets/index-B31GMG5O.css",
63
- "sha256": "2d1180a1ac0828c6e68a4e1d5e090e92aa32a9f999b86d7153d0262c83d62a9f"
62
+ "path": "apps/frontend/dist/assets/index-DIwDvCu5.js",
63
+ "sha256": "1bb053e0bd7e27f523af9992f1e212a61c780902efa3fd5e557a7c39376b05d1"
64
64
  },
65
65
  {
66
- "path": "apps/frontend/dist/assets/index-ncC1rxap.js",
67
- "sha256": "11019c572232c8965f5e5a96c0f14db09afa050559c6fd2bce0c3ec385f06497"
66
+ "path": "apps/frontend/dist/assets/index-hPPfVGQv.css",
67
+ "sha256": "3335cf61b93c5f6282ca24aa1cc75c71f723beb0888cd4cfdba5a3ecc0ed59b5"
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-DRJQbKnp.js",
75
- "sha256": "a410725737fa22aef9398d3970e5721391a0da3e63f60972c4b7f1ff4c399c8f"
74
+ "path": "apps/frontend/dist/assets/react-vendor-CTC6vtln.js",
75
+ "sha256": "f9799ce882f588052184ec95339c0b4b6029cd0741ce1c240ede49024e7850b8"
76
76
  },
77
77
  {
78
78
  "path": "apps/frontend/dist/assets/rolldown-runtime-D9-fqq9M.js",
79
79
  "sha256": "a2b9cf4b963756dc2cae1ebdd1c0e51ef5780dd5bf64a55b90e21679c2b2434f"
80
80
  },
81
81
  {
82
- "path": "apps/frontend/dist/assets/traceability-CMrDYqjR.js",
83
- "sha256": "050d9daa66395a4792bce3f5106d5b070a4cc58cc1f417e87c13786aa40756a5"
82
+ "path": "apps/frontend/dist/assets/traceability-9Mtvbwrg.js",
83
+ "sha256": "855fca326df285a74532ea5bbfb8d61a3bbf849bd5987715177db1bb23be214e"
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": "8b86b63583643d3cef9985b193f50c307dcfd60da416a22cd932a8b6c650f6df"
95
+ "sha256": "aaa5dbfaea47276588e8ec8f3585a5698a1b25c5569326670b1c39eec701f885"
96
96
  },
97
97
  {
98
98
  "path": "apps/frontend/dist/logo_novo_azul.png",
@@ -120,7 +120,7 @@
120
120
  },
121
121
  {
122
122
  "path": "apps/frontend/src/App.tsx",
123
- "sha256": "82519d60a8a14417a964b218e466f7dbd8fb97febc901b62748e0ce4eac7e890"
123
+ "sha256": "df76024f6626d7d3d7e8a0dfe8a5287881e7fbc44deba1b457514e48517deda0"
124
124
  },
125
125
  {
126
126
  "path": "apps/frontend/src/AppLoadingBoundary.tsx",
@@ -204,7 +204,7 @@
204
204
  },
205
205
  {
206
206
  "path": "apps/frontend/src/cost-period-refresh.test.ts",
207
- "sha256": "f5025ca92f012ec0aa4d8db9719f6e754c90f6cd2484b8b2954dfc0f5bf74c31"
207
+ "sha256": "563bd746e15b9c0d91817c8af63a532732e323bce16f91440f0e552092b53242"
208
208
  },
209
209
  {
210
210
  "path": "apps/frontend/src/dashboard-api.test.ts",
@@ -216,7 +216,7 @@
216
216
  },
217
217
  {
218
218
  "path": "apps/frontend/src/dashboard-capability-nav.css",
219
- "sha256": "73981be3a7e6893b096b543ad3a7d146c32ace8f61723a94558dbf4a446a467b"
219
+ "sha256": "d74be4e8c0eed444985c296c3121dbf975d18bb67c70d282dcc312365b32f4ce"
220
220
  },
221
221
  {
222
222
  "path": "apps/frontend/src/dashboard-help-dialog.css",
@@ -256,7 +256,7 @@
256
256
  },
257
257
  {
258
258
  "path": "apps/frontend/src/operations-period-contract.test.ts",
259
- "sha256": "8cf936bde516935660a1723584aaee396d1ab28632177c0460a1b6d5de02c304"
259
+ "sha256": "90a5892d0c4d92cbe4e3c59f7b85318d7cb912f7c74a1d9fbc5b1246e80eb5f8"
260
260
  },
261
261
  {
262
262
  "path": "apps/frontend/src/operations-period-render.test.ts",
@@ -264,11 +264,11 @@
264
264
  },
265
265
  {
266
266
  "path": "apps/frontend/src/operations-period.test.ts",
267
- "sha256": "07e010602e99ae501f584294ee2ff033f1067fd6509fe8e4fcfe54b162095b58"
267
+ "sha256": "7bbb0c552169e7ceda1479cacd16f95d101d88e6308370cca6830cc451298a9c"
268
268
  },
269
269
  {
270
270
  "path": "apps/frontend/src/operations-period.ts",
271
- "sha256": "376f20addc4ebcb6176031bdecf39b7e2cd757e7b572df6dd2f8ed4a4021306c"
271
+ "sha256": "08f6633800f6e6b1e81c50372a6fd201a3cb145bace274c40775937be49638ae"
272
272
  },
273
273
  {
274
274
  "path": "apps/frontend/src/overview-status-page.test.ts",
@@ -788,7 +788,7 @@
788
788
  },
789
789
  {
790
790
  "path": "modules/operations/src/react/OperationsOverview.helpers.tsx",
791
- "sha256": "83f6152f2fb30f8a7b9af4f1776b166b55d4cb7e45f7afe095161a160ff615ef"
791
+ "sha256": "05a5171a84d428bd008614979e7188e5783c89edc93a21aab94648045c89bc2b"
792
792
  },
793
793
  {
794
794
  "path": "modules/operations/src/react/OperationsOverview.macro-metrics.test.ts",
@@ -796,11 +796,11 @@
796
796
  },
797
797
  {
798
798
  "path": "modules/operations/src/react/OperationsOverview.test.ts",
799
- "sha256": "e474c1aa31cc15a2418aa8d42661a4595e2de222228271b37739016f88e9a451"
799
+ "sha256": "7addee9b52b49342b7014a51abde7aa0a13df1d5ddb6c7b64f4f5a9d372fff65"
800
800
  },
801
801
  {
802
802
  "path": "modules/operations/src/react/OperationsOverview.tsx",
803
- "sha256": "1145fdb929367b2c4e794e9c46a94d25e345513ab5a9977b6791d0565a570733"
803
+ "sha256": "46da5c1ae9f814f5e5bff773d3be3dd0fa499a8015080d2cd74ad15cbf3bf7c9"
804
804
  },
805
805
  {
806
806
  "path": "modules/operations/src/react/OperationsOverviewTopPanel.tsx",
@@ -808,7 +808,7 @@
808
808
  },
809
809
  {
810
810
  "path": "modules/operations/src/react/OperationsPage.tsx",
811
- "sha256": "53bf2074983d8183496853f5702cdab898f4f47e28902e3f85e75eae6cb032a7"
811
+ "sha256": "78099731784a8eb3b79906f18fa7254ea0032f06cc207de28f93c9401175ebf8"
812
812
  },
813
813
  {
814
814
  "path": "modules/operations/src/react/OperationsPageDetails.tsx",
@@ -1004,11 +1004,11 @@
1004
1004
  },
1005
1005
  {
1006
1006
  "path": "modules/operations/src/react/operation-date-range.test.ts",
1007
- "sha256": "126aeb6b99c997d0db28d342b94bf62481ba578b8b82ce87b44d287331e768e0"
1007
+ "sha256": "ddc0da0fcfbbf0bbb48d2fd8766e11001e955593c9994c451745f48448c2f21a"
1008
1008
  },
1009
1009
  {
1010
1010
  "path": "modules/operations/src/react/operation-date-range.ts",
1011
- "sha256": "ad106bac01c2a709c69dc01176dce49559792d2f5ac26b389c69eaafd41d7384"
1011
+ "sha256": "ba92ed11b352e5ca7c8f1256616c5685ca6481ea7e3b5c74be09922a00e237b5"
1012
1012
  },
1013
1013
  {
1014
1014
  "path": "modules/operations/src/react/operation-duration.test.ts",
@@ -1020,7 +1020,7 @@
1020
1020
  },
1021
1021
  {
1022
1022
  "path": "modules/operations/src/react/operations-coverage-toast.test.ts",
1023
- "sha256": "55284137f535144b6b2c5d6612f44c78924d2ab2b7578e5abbce1f41e27051a3"
1023
+ "sha256": "2f61ee745bedf17906e1d211e78449668c0962b8a7daed80998f210de30c3ce8"
1024
1024
  },
1025
1025
  {
1026
1026
  "path": "modules/operations/src/react/operations-date-filters.css",
@@ -1040,7 +1040,7 @@
1040
1040
  },
1041
1041
  {
1042
1042
  "path": "modules/operations/src/react/operations-overview-period-filter.test.ts",
1043
- "sha256": "7886a0c5707b4b151aebd8a2d6850428057c48794d2957afcf898984e97536e7"
1043
+ "sha256": "cd264362376522898c3660d858916c89d21de45436738736b1e5d97f1fe1bda1"
1044
1044
  },
1045
1045
  {
1046
1046
  "path": "modules/operations/src/react/operations-overview.css",
@@ -1932,23 +1932,23 @@
1932
1932
  },
1933
1933
  {
1934
1934
  "path": "tests/e2e/specs/cost-monitor-loading.spec.ts",
1935
- "sha256": "05195ded2ed44fafef2c9083fec2386cbba31ff287bc08f7719978d69b6f57a1"
1935
+ "sha256": "b454701f3736fff05a9b0755fbe73d369438d0d8c1de17a9e93ccdf61c5636e1"
1936
1936
  },
1937
1937
  {
1938
1938
  "path": "tests/e2e/specs/cost-monitor-pagination.spec.ts",
1939
- "sha256": "e3ec50beafc33911d042d2392186e34c6caca095b104124705c92e247a68dff5"
1939
+ "sha256": "3948c047ae168ae5b0401465c1e743221a82cced2d64edba882fa71a8a28613f"
1940
1940
  },
1941
1941
  {
1942
1942
  "path": "tests/e2e/specs/cost-monitor-period-transition.spec.ts",
1943
- "sha256": "5990bde49ed970c801a7ca819bf803d44ea6caa0a3345db3972f29b109ff6139"
1943
+ "sha256": "63b527f924a4d5f413df8b63858462053ce4904f7ea2d751e2cafdf2eca02d45"
1944
1944
  },
1945
1945
  {
1946
1946
  "path": "tests/e2e/specs/dashboard-performance-matrix.spec.ts",
1947
- "sha256": "b6297cd436c86e7c8e90202e3d425701176b3507902c468117c3706b02fe81c1"
1947
+ "sha256": "957b0b2636cc9a0eefad2da3f77abfea51ca6a27124f1b22aed97ad3726a4c46"
1948
1948
  },
1949
1949
  {
1950
1950
  "path": "tests/e2e/specs/dashboard.spec.ts",
1951
- "sha256": "a96c121e94b3f335e63dc000d9ff7d5b4ce74f8303b05069f4d35f62b06c4f7a"
1951
+ "sha256": "b9e0409fc784916ed1e353fb024bb185c63114b217311085bd8b46f26ba6edc9"
1952
1952
  },
1953
1953
  {
1954
1954
  "path": "tests/e2e/tsconfig.json",
@@ -1 +1 @@
1
- import{S as e,b as t}from"./cost-monitor-Cpp8xFij.js";var n=e(),r=t(),i={input:1e5,cache:4e4,output:2e4,reasoning:8e3},a=e=>Math.round(e*1e6)/1e6;function o(e,t,n,r,i){let o=a(Math.max(e.input-e.cache,0)/1e6*t.input*n),s=a(e.cache/1e6*(t.cache??0)*n),c=a(e.output/1e6*t.output*r),l=a(o+s+c);return{usage:e,rates:t,inputMultiplier:n,outputMultiplier:r,inputUsd:o,cacheUsd:s,outputUsd:c,reasoningUsd:0,totalUsd:l,totalBrl:i===null?null:a(l*i)}}function s(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 c(e,t,n){let r=s(e,t);return r===null?null:o(i,r,1,1,n)}function l(e,t){return e.long_context_threshold_tokens===null?null:o({input:e.long_context_threshold_tokens+5e4,cache:i.cache,output:i.output,reasoning:i.reasoning},s(e,`standard`),e.long_context_input_multiplier,e.long_context_output_multiplier,t)}var u={"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 d(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 f(e,t,n,r,i){return e==null?i:d(e,t,n,r)}function p(e,t){return new Intl.NumberFormat(t).format(e)}function m({example:e,currency:t,fxRate:n,locale:i,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,m=[{label:a.billableInput,operation:`${p(e.usage.input,i)} − ${p(e.usage.cache,i)} = ${p(s,i)} tokens`,cost:null},{label:a.input,operation:`${p(s,i)} ÷ 1M × ${f(e.rates.input,t,n,o,a.noPublishedRate)}${c}`,cost:e.inputUsd},{label:a.cache,operation:`${p(e.usage.cache,i)} ÷ 1M × ${f(u,t,n,o,a.noPublishedRate)}${c}`,cost:e.cacheUsd},{label:a.output,operation:`${p(e.usage.output,i)} ÷ 1M × ${f(e.rates.output,t,n,o,a.noPublishedRate)}${l}`,cost:e.outputUsd},{label:a.reasoning,operation:`${p(e.usage.reasoning,i)} tokens ⊂ ${a.output} → +0`,cost:e.reasoningUsd}];return(0,r.jsxs)(`div`,{className:`cost-guide-calculation`,children:[(0,r.jsxs)(`div`,{className:`cost-guide-calculation-head`,"aria-hidden":`true`,children:[(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{children:a.operation}),(0,r.jsx)(`span`,{children:a.cost})]}),m.map(e=>(0,r.jsxs)(`div`,{className:`cost-guide-calculation-line`,children:[(0,r.jsx)(`strong`,{children:e.label}),(0,r.jsx)(`code`,{children:e.operation}),(0,r.jsx)(`span`,{children:e.cost===null?`—`:d(e.cost,t,n,o)})]},e.label)),(0,r.jsxs)(`div`,{className:`cost-guide-calculation-total`,children:[(0,r.jsx)(`strong`,{children:a.total}),(0,r.jsx)(`span`,{children:d(e.totalUsd,t,n,o)})]})]})}function h({catalog:e,fxRate:t,locale:i,onClose:a}){let o=u[i],[s,d]=(0,n.useState)(e.models[0]?.id??``),[h,g]=(0,n.useState)(`USD`),_=(0,n.useMemo)(()=>e.models.find(e=>e.id===s)??e.models[0]??null,[e.models,s]);if(_===null)return(0,r.jsxs)(`main`,{className:`cost-guide`,children:[(0,r.jsxs)(`button`,{onClick:a,type:`button`,children:[`← `,o.back]}),(0,r.jsx)(`h1`,{children:o.title}),(0,r.jsx)(`p`,{children:o.unavailable})]});let v=t?.rate??null,y=c(_,`standard`,v),b=c(_,`priority`,v),x=l(_,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,r.jsxs)(`main`,{className:`cost-guide`,children:[(0,r.jsxs)(`header`,{children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`small`,{children:o.eyebrow}),(0,r.jsx)(`h1`,{children:o.title}),(0,r.jsx)(`p`,{children:o.intro})]}),(0,r.jsxs)(`button`,{onClick:a,type:`button`,children:[`← `,o.back]})]}),(0,r.jsxs)(`section`,{className:`cost-guide-controls`,"aria-label":o.model,children:[(0,r.jsxs)(`label`,{children:[o.model,(0,r.jsx)(`select`,{value:_.id,onChange:e=>d(e.target.value),children:e.models.map(e=>(0,r.jsx)(`option`,{value:e.id,children:e.id},e.id))})]}),(0,r.jsxs)(`label`,{children:[o.currency,(0,r.jsxs)(`select`,{value:h,onChange:e=>g(e.target.value),children:[(0,r.jsx)(`option`,{value:`USD`,children:`USD`}),(0,r.jsxs)(`option`,{value:`BRL`,children:[`BRL `,v===null?`(${o.unavailable})`:`(1 USD = ${v.toFixed(4)} BRL)`]})]})]})]}),(0,r.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,r.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,r.jsx)(`h2`,{children:o.rateTitle}),(0,r.jsx)(`p`,{children:o.rateIntro})]}),(0,r.jsx)(`div`,{className:`cost-guide-table-wrap`,children:(0,r.jsxs)(`table`,{children:[(0,r.jsxs)(`caption`,{children:[_.id,` · `,o.millionRate]}),(0,r.jsx)(`thead`,{children:(0,r.jsxs)(`tr`,{children:[(0,r.jsx)(`th`,{scope:`col`}),(0,r.jsx)(`th`,{scope:`col`,children:o.standard}),(0,r.jsx)(`th`,{scope:`col`,children:o.priority}),(0,r.jsx)(`th`,{scope:`col`,children:o.ratio})]})}),(0,r.jsxs)(`tbody`,{children:[C.map(e=>(0,r.jsxs)(`tr`,{children:[(0,r.jsx)(`th`,{scope:`row`,children:e.label}),(0,r.jsx)(`td`,{children:f(e.standard,h,v,o.unavailable,o.noPublishedRate)}),(0,r.jsx)(`td`,{children:f(e.priority,h,v,o.unavailable,o.noPublishedRate)}),(0,r.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,r.jsxs)(`tr`,{children:[(0,r.jsx)(`th`,{scope:`row`,children:o.reasoning}),(0,r.jsx)(`td`,{colSpan:3,children:o.included})]})]})]})})]}),(0,r.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,r.jsx)(`div`,{className:`cost-guide-section-heading`,children:(0,r.jsx)(`h2`,{children:o.conceptsTitle})}),(0,r.jsx)(`div`,{className:`cost-guide-blocks`,children:o.concepts.map(([e,t])=>(0,r.jsxs)(`article`,{children:[(0,r.jsx)(`strong`,{children:e}),(0,r.jsx)(`p`,{children:t})]},e))})]}),(0,r.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,r.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,r.jsx)(`h2`,{children:o.exampleTitle}),(0,r.jsx)(`p`,{children:o.exampleIntro})]}),(0,r.jsxs)(`div`,{className:`cost-guide-example-grid`,children:[(0,r.jsxs)(`article`,{className:`cost-guide-example-card`,children:[(0,r.jsx)(`h3`,{children:o.standard}),(0,r.jsx)(m,{example:y,currency:h,fxRate:v,locale:i,labels:o})]}),(0,r.jsxs)(`article`,{className:`cost-guide-example-card`,children:[(0,r.jsx)(`h3`,{children:o.priority}),b===null?(0,r.jsx)(`p`,{className:`cost-guide-unavailable`,children:o.unavailable}):(0,r.jsx)(m,{example:b,currency:h,fxRate:v,locale:i,labels:o})]})]}),(0,r.jsxs)(`div`,{className:`cost-guide-speed`,children:[(0,r.jsx)(`span`,{children:o.speedMultiplier}),(0,r.jsx)(`strong`,{children:S===null?o.unavailable:`${S.toFixed(2)}×`}),(0,r.jsxs)(`code`,{children:[o.priority,` `,o.total,` ÷ `,o.standard,` `,o.total]})]})]}),(0,r.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,r.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,r.jsx)(`h2`,{children:o.longTitle}),(0,r.jsx)(`p`,{children:o.longIntro})]}),(0,r.jsxs)(`div`,{className:`cost-guide-context-summary`,children:[(0,r.jsxs)(`span`,{children:[o.threshold,`:`,` `,(0,r.jsx)(`strong`,{children:_.long_context_threshold_tokens===null?o.unavailable:p(_.long_context_threshold_tokens,i)})]}),(0,r.jsxs)(`span`,{children:[o.longInput,`:`,` `,(0,r.jsx)(`strong`,{children:x===null?o.unavailable:p(x.usage.input,i)})]}),(0,r.jsxs)(`span`,{children:[`Input/cache: `,(0,r.jsxs)(`strong`,{children:[_.long_context_input_multiplier,`×`]})]}),(0,r.jsxs)(`span`,{children:[`Output: `,(0,r.jsxs)(`strong`,{children:[_.long_context_output_multiplier,`×`]})]})]}),x===null?(0,r.jsx)(`p`,{className:`cost-guide-unavailable`,children:o.unavailable}):(0,r.jsx)(m,{example:x,currency:h,fxRate:v,locale:i,labels:o}),(0,r.jsxs)(`div`,{className:`cost-guide-unavailable-combination`,children:[(0,r.jsxs)(`strong`,{children:[o.priorityLong,`: `,o.unavailable]}),(0,r.jsx)(`p`,{children:o.priorityLongNote})]})]}),(0,r.jsx)(`aside`,{className:`cost-guide-final-note`,children:o.finalNote})]})}export{h as CostCalculationGuidePage};
1
+ import{S as e,b as t}from"./cost-monitor-Csj6LiAt.js";var n=e(),r=t(),i={input:1e5,cache:4e4,output:2e4,reasoning:8e3},a=e=>Math.round(e*1e6)/1e6;function o(e,t,n,r,i){let o=a(Math.max(e.input-e.cache,0)/1e6*t.input*n),s=a(e.cache/1e6*(t.cache??0)*n),c=a(e.output/1e6*t.output*r),l=a(o+s+c);return{usage:e,rates:t,inputMultiplier:n,outputMultiplier:r,inputUsd:o,cacheUsd:s,outputUsd:c,reasoningUsd:0,totalUsd:l,totalBrl:i===null?null:a(l*i)}}function s(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 c(e,t,n){let r=s(e,t);return r===null?null:o(i,r,1,1,n)}function l(e,t){return e.long_context_threshold_tokens===null?null:o({input:e.long_context_threshold_tokens+5e4,cache:i.cache,output:i.output,reasoning:i.reasoning},s(e,`standard`),e.long_context_input_multiplier,e.long_context_output_multiplier,t)}var u={"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 d(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 f(e,t,n,r,i){return e==null?i:d(e,t,n,r)}function p(e,t){return new Intl.NumberFormat(t).format(e)}function m({example:e,currency:t,fxRate:n,locale:i,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,m=[{label:a.billableInput,operation:`${p(e.usage.input,i)} − ${p(e.usage.cache,i)} = ${p(s,i)} tokens`,cost:null},{label:a.input,operation:`${p(s,i)} ÷ 1M × ${f(e.rates.input,t,n,o,a.noPublishedRate)}${c}`,cost:e.inputUsd},{label:a.cache,operation:`${p(e.usage.cache,i)} ÷ 1M × ${f(u,t,n,o,a.noPublishedRate)}${c}`,cost:e.cacheUsd},{label:a.output,operation:`${p(e.usage.output,i)} ÷ 1M × ${f(e.rates.output,t,n,o,a.noPublishedRate)}${l}`,cost:e.outputUsd},{label:a.reasoning,operation:`${p(e.usage.reasoning,i)} tokens ⊂ ${a.output} → +0`,cost:e.reasoningUsd}];return(0,r.jsxs)(`div`,{className:`cost-guide-calculation`,children:[(0,r.jsxs)(`div`,{className:`cost-guide-calculation-head`,"aria-hidden":`true`,children:[(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{children:a.operation}),(0,r.jsx)(`span`,{children:a.cost})]}),m.map(e=>(0,r.jsxs)(`div`,{className:`cost-guide-calculation-line`,children:[(0,r.jsx)(`strong`,{children:e.label}),(0,r.jsx)(`code`,{children:e.operation}),(0,r.jsx)(`span`,{children:e.cost===null?`—`:d(e.cost,t,n,o)})]},e.label)),(0,r.jsxs)(`div`,{className:`cost-guide-calculation-total`,children:[(0,r.jsx)(`strong`,{children:a.total}),(0,r.jsx)(`span`,{children:d(e.totalUsd,t,n,o)})]})]})}function h({catalog:e,fxRate:t,locale:i,onClose:a}){let o=u[i],[s,d]=(0,n.useState)(e.models[0]?.id??``),[h,g]=(0,n.useState)(`USD`),_=(0,n.useMemo)(()=>e.models.find(e=>e.id===s)??e.models[0]??null,[e.models,s]);if(_===null)return(0,r.jsxs)(`main`,{className:`cost-guide`,children:[(0,r.jsxs)(`button`,{onClick:a,type:`button`,children:[`← `,o.back]}),(0,r.jsx)(`h1`,{children:o.title}),(0,r.jsx)(`p`,{children:o.unavailable})]});let v=t?.rate??null,y=c(_,`standard`,v),b=c(_,`priority`,v),x=l(_,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,r.jsxs)(`main`,{className:`cost-guide`,children:[(0,r.jsxs)(`header`,{children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`small`,{children:o.eyebrow}),(0,r.jsx)(`h1`,{children:o.title}),(0,r.jsx)(`p`,{children:o.intro})]}),(0,r.jsxs)(`button`,{onClick:a,type:`button`,children:[`← `,o.back]})]}),(0,r.jsxs)(`section`,{className:`cost-guide-controls`,"aria-label":o.model,children:[(0,r.jsxs)(`label`,{children:[o.model,(0,r.jsx)(`select`,{value:_.id,onChange:e=>d(e.target.value),children:e.models.map(e=>(0,r.jsx)(`option`,{value:e.id,children:e.id},e.id))})]}),(0,r.jsxs)(`label`,{children:[o.currency,(0,r.jsxs)(`select`,{value:h,onChange:e=>g(e.target.value),children:[(0,r.jsx)(`option`,{value:`USD`,children:`USD`}),(0,r.jsxs)(`option`,{value:`BRL`,children:[`BRL `,v===null?`(${o.unavailable})`:`(1 USD = ${v.toFixed(4)} BRL)`]})]})]})]}),(0,r.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,r.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,r.jsx)(`h2`,{children:o.rateTitle}),(0,r.jsx)(`p`,{children:o.rateIntro})]}),(0,r.jsx)(`div`,{className:`cost-guide-table-wrap`,children:(0,r.jsxs)(`table`,{children:[(0,r.jsxs)(`caption`,{children:[_.id,` · `,o.millionRate]}),(0,r.jsx)(`thead`,{children:(0,r.jsxs)(`tr`,{children:[(0,r.jsx)(`th`,{scope:`col`}),(0,r.jsx)(`th`,{scope:`col`,children:o.standard}),(0,r.jsx)(`th`,{scope:`col`,children:o.priority}),(0,r.jsx)(`th`,{scope:`col`,children:o.ratio})]})}),(0,r.jsxs)(`tbody`,{children:[C.map(e=>(0,r.jsxs)(`tr`,{children:[(0,r.jsx)(`th`,{scope:`row`,children:e.label}),(0,r.jsx)(`td`,{children:f(e.standard,h,v,o.unavailable,o.noPublishedRate)}),(0,r.jsx)(`td`,{children:f(e.priority,h,v,o.unavailable,o.noPublishedRate)}),(0,r.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,r.jsxs)(`tr`,{children:[(0,r.jsx)(`th`,{scope:`row`,children:o.reasoning}),(0,r.jsx)(`td`,{colSpan:3,children:o.included})]})]})]})})]}),(0,r.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,r.jsx)(`div`,{className:`cost-guide-section-heading`,children:(0,r.jsx)(`h2`,{children:o.conceptsTitle})}),(0,r.jsx)(`div`,{className:`cost-guide-blocks`,children:o.concepts.map(([e,t])=>(0,r.jsxs)(`article`,{children:[(0,r.jsx)(`strong`,{children:e}),(0,r.jsx)(`p`,{children:t})]},e))})]}),(0,r.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,r.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,r.jsx)(`h2`,{children:o.exampleTitle}),(0,r.jsx)(`p`,{children:o.exampleIntro})]}),(0,r.jsxs)(`div`,{className:`cost-guide-example-grid`,children:[(0,r.jsxs)(`article`,{className:`cost-guide-example-card`,children:[(0,r.jsx)(`h3`,{children:o.standard}),(0,r.jsx)(m,{example:y,currency:h,fxRate:v,locale:i,labels:o})]}),(0,r.jsxs)(`article`,{className:`cost-guide-example-card`,children:[(0,r.jsx)(`h3`,{children:o.priority}),b===null?(0,r.jsx)(`p`,{className:`cost-guide-unavailable`,children:o.unavailable}):(0,r.jsx)(m,{example:b,currency:h,fxRate:v,locale:i,labels:o})]})]}),(0,r.jsxs)(`div`,{className:`cost-guide-speed`,children:[(0,r.jsx)(`span`,{children:o.speedMultiplier}),(0,r.jsx)(`strong`,{children:S===null?o.unavailable:`${S.toFixed(2)}×`}),(0,r.jsxs)(`code`,{children:[o.priority,` `,o.total,` ÷ `,o.standard,` `,o.total]})]})]}),(0,r.jsxs)(`section`,{className:`cost-guide-section`,children:[(0,r.jsxs)(`div`,{className:`cost-guide-section-heading`,children:[(0,r.jsx)(`h2`,{children:o.longTitle}),(0,r.jsx)(`p`,{children:o.longIntro})]}),(0,r.jsxs)(`div`,{className:`cost-guide-context-summary`,children:[(0,r.jsxs)(`span`,{children:[o.threshold,`:`,` `,(0,r.jsx)(`strong`,{children:_.long_context_threshold_tokens===null?o.unavailable:p(_.long_context_threshold_tokens,i)})]}),(0,r.jsxs)(`span`,{children:[o.longInput,`:`,` `,(0,r.jsx)(`strong`,{children:x===null?o.unavailable:p(x.usage.input,i)})]}),(0,r.jsxs)(`span`,{children:[`Input/cache: `,(0,r.jsxs)(`strong`,{children:[_.long_context_input_multiplier,`×`]})]}),(0,r.jsxs)(`span`,{children:[`Output: `,(0,r.jsxs)(`strong`,{children:[_.long_context_output_multiplier,`×`]})]})]}),x===null?(0,r.jsx)(`p`,{className:`cost-guide-unavailable`,children:o.unavailable}):(0,r.jsx)(m,{example:x,currency:h,fxRate:v,locale:i,labels:o}),(0,r.jsxs)(`div`,{className:`cost-guide-unavailable-combination`,children:[(0,r.jsxs)(`strong`,{children:[o.priorityLong,`: `,o.unavailable]}),(0,r.jsx)(`p`,{children:o.priorityLongNote})]})]}),(0,r.jsx)(`aside`,{className:`cost-guide-final-note`,children:o.finalNote})]})}export{h as CostCalculationGuidePage};
@@ -1,4 +1,4 @@
1
- import{S as e,b as t}from"./cost-monitor-Cpp8xFij.js";import{t as n}from"./dashboard-localization-CLJ0lT9v.js";var r=`# Primeiros passos
1
+ import{S as e,b as t}from"./cost-monitor-Csj6LiAt.js";import{t as n}from"./dashboard-localization-CLJ0lT9v.js";var r=`# 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.
@@ -1 +1 @@
1
- import{S as e,b as t}from"./cost-monitor-Cpp8xFij.js";import{n}from"./dashboard-localization-CLJ0lT9v.js";var r=e(),i=t();function a({catalog:e,fxRate:t,locale:a,onClose:s,onSave:c,onSaveFxRate:l}){let u=n[a],[d,f]=(0,r.useState)(e),[p,m]=(0,r.useState)(t?.rate??0),[h,g]=(0,r.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,i.jsx)(`main`,{className:`pricing-backdrop`,children:(0,i.jsxs)(`section`,{"aria-labelledby":`pricing-page-title`,className:`pricing-dialog`,children:[(0,i.jsxs)(`header`,{children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`small`,{children:u.eyebrow}),(0,i.jsx)(`h1`,{id:`pricing-page-title`,children:u.title}),(0,i.jsx)(`p`,{children:u.description})]}),(0,i.jsxs)(`button`,{className:`pricing-back-button`,onClick:s,type:`button`,children:[(0,i.jsx)(`span`,{"aria-hidden":`true`,children:`←`}),` `,u.back]})]}),(0,i.jsxs)(`div`,{className:`pricing-fx-settings`,children:[(0,i.jsxs)(`div`,{className:`pricing-fx-copy`,children:[(0,i.jsx)(`strong`,{children:u.fxTitle}),(0,i.jsx)(`p`,{children:u.fxDescription})]}),(0,i.jsxs)(`label`,{children:[(0,i.jsx)(`span`,{children:u.fxLabel}),(0,i.jsxs)(`div`,{className:`pricing-fx-input`,children:[(0,i.jsx)(`span`,{children:`R$`}),(0,i.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,i.jsxs)(`div`,{className:`pricing-table-heading`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`strong`,{children:u.catalog}),(0,i.jsx)(`p`,{children:u.pricesPerMillion})]}),(0,i.jsxs)(`span`,{children:[d.models.length,` `,u.models]})]}),(0,i.jsx)(`div`,{className:`pricing-table-wrap`,children:(0,i.jsxs)(`table`,{children:[(0,i.jsx)(`thead`,{children:(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{children:u.model}),(0,i.jsx)(`th`,{children:u.provider}),(0,i.jsx)(`th`,{children:u.input}),(0,i.jsx)(`th`,{children:u.cache}),(0,i.jsx)(`th`,{children:u.output}),(0,i.jsx)(`th`,{children:u.reasoning}),(0,i.jsx)(`th`,{children:u.priorityInput}),(0,i.jsx)(`th`,{children:u.priorityCache}),(0,i.jsx)(`th`,{children:u.priorityOutput}),(0,i.jsx)(`th`,{children:u.priorityReasoning}),(0,i.jsx)(`th`,{children:u.contextLimit}),(0,i.jsx)(`th`,{children:u.inputMultiplier}),(0,i.jsx)(`th`,{children:u.outputMultiplier}),(0,i.jsx)(`th`,{})]})}),(0,i.jsx)(`tbody`,{children:d.models.map((e,t)=>(0,i.jsxs)(`tr`,{children:[(0,i.jsxs)(`td`,{children:[(0,i.jsx)(`input`,{"aria-label":u.model,onChange:e=>_(t,{id:e.target.value}),value:e.id}),(0,i.jsx)(`small`,{children:e.aliases.join(`, `)||u.noAliases})]}),(0,i.jsx)(`td`,{children:(0,i.jsxs)(`select`,{onChange:e=>_(t,{provider:e.target.value}),value:e.provider,children:[(0,i.jsx)(`option`,{value:`openai`,children:`OpenAI`}),(0,i.jsx)(`option`,{value:`anthropic`,children:`Anthropic`})]})}),(0,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{[n]:v(e.target.value)}),step:`0.001`,type:`number`,value:e[n]??0})},n)),(0,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.jsx)(`button`,{"aria-label":u.removeModel,onClick:()=>f(e=>({...e,models:e.models.filter((e,n)=>n!==t)})),type:`button`,children:`×`})})]},e.id))})]})}),(0,i.jsxs)(`footer`,{children:[(0,i.jsxs)(`button`,{onClick:()=>f(e=>({...e,models:[...e.models,o(a)]})),type:`button`,children:[`+ `,u.addModel]}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`button`,{onClick:s,type:`button`,children:u.cancel}),(0,i.jsx)(`button`,{disabled:h,onClick:async()=>{g(!0);try{await c(d),await l(p),s()}finally{g(!1)}},type:`button`,children:h?u.saving:u.save})]})]})]})})}function o(e=`pt-BR`){let t=n[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{a as PricingSettingsPage};
1
+ import{S as e,b as t}from"./cost-monitor-Csj6LiAt.js";import{n}from"./dashboard-localization-CLJ0lT9v.js";var r=e(),i=t();function a({catalog:e,fxRate:t,locale:a,onClose:s,onSave:c,onSaveFxRate:l}){let u=n[a],[d,f]=(0,r.useState)(e),[p,m]=(0,r.useState)(t?.rate??0),[h,g]=(0,r.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,i.jsx)(`main`,{className:`pricing-backdrop`,children:(0,i.jsxs)(`section`,{"aria-labelledby":`pricing-page-title`,className:`pricing-dialog`,children:[(0,i.jsxs)(`header`,{children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`small`,{children:u.eyebrow}),(0,i.jsx)(`h1`,{id:`pricing-page-title`,children:u.title}),(0,i.jsx)(`p`,{children:u.description})]}),(0,i.jsxs)(`button`,{className:`pricing-back-button`,onClick:s,type:`button`,children:[(0,i.jsx)(`span`,{"aria-hidden":`true`,children:`←`}),` `,u.back]})]}),(0,i.jsxs)(`div`,{className:`pricing-fx-settings`,children:[(0,i.jsxs)(`div`,{className:`pricing-fx-copy`,children:[(0,i.jsx)(`strong`,{children:u.fxTitle}),(0,i.jsx)(`p`,{children:u.fxDescription})]}),(0,i.jsxs)(`label`,{children:[(0,i.jsx)(`span`,{children:u.fxLabel}),(0,i.jsxs)(`div`,{className:`pricing-fx-input`,children:[(0,i.jsx)(`span`,{children:`R$`}),(0,i.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,i.jsxs)(`div`,{className:`pricing-table-heading`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`strong`,{children:u.catalog}),(0,i.jsx)(`p`,{children:u.pricesPerMillion})]}),(0,i.jsxs)(`span`,{children:[d.models.length,` `,u.models]})]}),(0,i.jsx)(`div`,{className:`pricing-table-wrap`,children:(0,i.jsxs)(`table`,{children:[(0,i.jsx)(`thead`,{children:(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{children:u.model}),(0,i.jsx)(`th`,{children:u.provider}),(0,i.jsx)(`th`,{children:u.input}),(0,i.jsx)(`th`,{children:u.cache}),(0,i.jsx)(`th`,{children:u.output}),(0,i.jsx)(`th`,{children:u.reasoning}),(0,i.jsx)(`th`,{children:u.priorityInput}),(0,i.jsx)(`th`,{children:u.priorityCache}),(0,i.jsx)(`th`,{children:u.priorityOutput}),(0,i.jsx)(`th`,{children:u.priorityReasoning}),(0,i.jsx)(`th`,{children:u.contextLimit}),(0,i.jsx)(`th`,{children:u.inputMultiplier}),(0,i.jsx)(`th`,{children:u.outputMultiplier}),(0,i.jsx)(`th`,{})]})}),(0,i.jsx)(`tbody`,{children:d.models.map((e,t)=>(0,i.jsxs)(`tr`,{children:[(0,i.jsxs)(`td`,{children:[(0,i.jsx)(`input`,{"aria-label":u.model,onChange:e=>_(t,{id:e.target.value}),value:e.id}),(0,i.jsx)(`small`,{children:e.aliases.join(`, `)||u.noAliases})]}),(0,i.jsx)(`td`,{children:(0,i.jsxs)(`select`,{onChange:e=>_(t,{provider:e.target.value}),value:e.provider,children:[(0,i.jsx)(`option`,{value:`openai`,children:`OpenAI`}),(0,i.jsx)(`option`,{value:`anthropic`,children:`Anthropic`})]})}),(0,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{[n]:v(e.target.value)}),step:`0.001`,type:`number`,value:e[n]??0})},n)),(0,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.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,i.jsx)(`td`,{children:(0,i.jsx)(`button`,{"aria-label":u.removeModel,onClick:()=>f(e=>({...e,models:e.models.filter((e,n)=>n!==t)})),type:`button`,children:`×`})})]},e.id))})]})}),(0,i.jsxs)(`footer`,{children:[(0,i.jsxs)(`button`,{onClick:()=>f(e=>({...e,models:[...e.models,o(a)]})),type:`button`,children:[`+ `,u.addModel]}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`button`,{onClick:s,type:`button`,children:u.cancel}),(0,i.jsx)(`button`,{disabled:h,onClick:async()=>{g(!0);try{await c(d),await l(p),s()}finally{g(!1)}},type:`button`,children:h?u.saving:u.save})]})]})]})})}function o(e=`pt-BR`){let t=n[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{a as PricingSettingsPage};
@@ -1,3 +1,3 @@
1
- import{S as e,b as t}from"./cost-monitor-Cpp8xFij.js";var n=e(),r=[{id:`primary_language`,defaultName:`TypeScript`,scope:`backend`},{id:`backend_runtime`,defaultName:`Node.js`,scope:`backend`},{id:`backend_api`,defaultName:`Hono`,scope:`backend`},{id:`query_builder`,defaultName:`Kysely`,scope:`backend`},{id:`database`,defaultName:`PostgreSQL via Supabase`,scope:`backend`},{id:`auth_storage`,defaultName:`Supabase Auth + Storage`,scope:`backend`},{id:`cache_messaging`,defaultName:`Redis`,scope:`backend`},{id:`async_queue`,defaultName:`BullMQ`,scope:`backend`},{id:`backend_infrastructure`,defaultName:`Hostinger VPS`,scope:`backend`},{id:`web_framework`,defaultName:`React`,scope:`frontend`},{id:`web_language`,defaultName:`TypeScript`,scope:`frontend`},{id:`web_build`,defaultName:`Vite`,scope:`frontend`},{id:`frontend_hosting`,defaultName:`Cloudflare Pages`,scope:`frontend`},{id:`site_framework`,defaultName:`Astro`,scope:`site`},{id:`site_language`,defaultName:`TypeScript`,scope:`site`},{id:`site_islands`,defaultName:`React Islands`,scope:`site`},{id:`site_build`,defaultName:`Vite`,scope:`site`},{id:`site_hosting`,defaultName:`Cloudflare Pages`,scope:`site`}];function i(e){let{languages:t,components:n,...i}=e.stack.overrides,a=p(n)?n:{};return{components:Object.fromEntries(r.map(e=>{let t=a[e.id],n=p(t)?t:{};return[e.id,{name:f(n.name)||e.defaultName,version:f(n.version),reference:f(n.reference)}]})),otherOverrides:JSON.stringify(i,null,2)}}function a(e,t){let n=new Map(t.filter(e=>e.verification===`exact`&&e.version!==null).map(e=>[e.name.toLowerCase(),e.version]));return Object.fromEntries(r.map(t=>{let r=e[t.id],i=n.get(u(t.id));return[t.id,r.version!==``||i===void 0?r:{...r,version:i}]}))}function o(e,t,n){let i=JSON.parse(n);if(!p(i))throw Error(`Demais overrides deve ser um objeto JSON.`);let{languages:a,components:o,...s}=i;for(let e of r){let n=t[e.id].version.trim();if(n!==``&&!/^\d+\.\d+(?:\.\d+)?(?:[-+][0-9A-Za-z.-]+)?$/.test(n))throw Error(`A versão de ${t[e.id].name||e.defaultName} deve ser exata, como 22.16.0 ou 17.6, sem ^, ~, >= ou latest.`)}let c=Object.fromEntries(r.map(e=>[e.id,{name:t[e.id].name.trim()||e.defaultName,version:t[e.id].version.trim(),reference:t[e.id].reference.trim()}]));return{...e,stack:{...e.stack,overrides:{...s,components:c,languages:{frontend:d(c,`frontend`),backend:d(c,`backend`),site:d(c,`site`)}}}}}function s(e){return[...new Set(e.split(/\r?\n/).map(e=>e.trim()).filter(Boolean))]}function c(){return{runtime:`autonomous`,autonomous:{provider:`codex`,model:`gpt-5.6-terra`,max_parallelism:1,lease_ms:6e4}}}function l(e){let t=e?.match(/^v?(\d+)\.(\d+)\.\d+(?:[-+][0-9A-Za-z.-]+)?$/);return t?`v${t[1]}.${t[2]}`:null}function u(e){return e===`backend_runtime`?`node.js`:e===`backend_api`?`hono`:e===`site_framework`?`astro`:e===`cache_messaging`?`redis`:e===`async_queue`?`bullmq`:e===`web_framework`||e===`site_islands`?`react`:e===`web_build`||e===`site_build`?`vite`:e===`primary_language`||e===`web_language`||e===`site_language`?`typescript`:``}function d(e,t){return[...new Set(r.filter(e=>e.scope===t).map(t=>e[t.id].name.trim()).filter(Boolean))]}function f(e){return typeof e==`string`?e:``}function p(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var m=t(),h={primary_language:{pt:`Linguagem principal`,en:`Primary language`},backend_runtime:{pt:`Runtime backend`,en:`Backend runtime`},backend_api:{pt:`Framework backend / API`,en:`Backend framework / API`},query_builder:{pt:`Query builder`,en:`Query builder`},database:{pt:`Banco de dados`,en:`Database`},auth_storage:{pt:`Autenticação e Storage`,en:`Authentication and Storage`},cache_messaging:{pt:`Cache e mensageria`,en:`Cache and messaging`},async_queue:{pt:`Filas e processamento assíncrono`,en:`Queues and async processing`},backend_infrastructure:{pt:`Infraestrutura backend`,en:`Backend infrastructure`},web_framework:{pt:`Framework do Web App`,en:`Web App framework`},web_language:{pt:`Linguagem do Web App`,en:`Web App language`},web_build:{pt:`Build do Web App`,en:`Web App build`},frontend_hosting:{pt:`Hospedagem do frontend`,en:`Frontend hosting`},site_framework:{pt:`Framework do site`,en:`Site framework`},site_language:{pt:`Linguagem do site`,en:`Site language`},site_islands:{pt:`Componentes interativos`,en:`Interactive components`},site_build:{pt:`Build do site`,en:`Site build`},site_hosting:{pt:`Hospedagem do site`,en:`Site hosting`}};function g({components:e,locale:t,onChange:n,referenceHint:i,versionHint:a}){let o=[{scope:`backend`,title:t===`pt-BR`?`Backend e dados`:`Backend and data`},{scope:`frontend`,title:`Web App`},{scope:`site`,title:t===`pt-BR`?`Site e landing pages`:`Site and landing pages`}],s=(t,r,i)=>n({...e,[t]:{...e[t],[r]:i}});return(0,m.jsxs)(`div`,{className:`project-stack-editor`,children:[o.map(n=>(0,m.jsxs)(`section`,{children:[(0,m.jsx)(`h3`,{children:n.title}),(0,m.jsxs)(`div`,{className:`project-stack-table`,children:[(0,m.jsxs)(`div`,{className:`project-stack-table-head`,"aria-hidden":`true`,children:[(0,m.jsx)(`span`,{children:`Item`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Tecnologia`:`Technology`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Versão exata`:`Exact version`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Pacote / imagem / serviço`:`Package / image / service`})]}),r.filter(e=>e.scope===n.scope).map(n=>(0,m.jsxs)(`div`,{className:`project-stack-row`,children:[(0,m.jsx)(`strong`,{children:h[n.id][t===`pt-BR`?`pt`:`en`]}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: tecnologia`,value:e[n.id].name,onChange:e=>s(n.id,`name`,e.target.value)}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: versão exata`,inputMode:`decimal`,placeholder:`x.y.z`,value:e[n.id].version,onChange:e=>s(n.id,`version`,e.target.value)}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: referência`,placeholder:`npm:pacote ou service:nome`,value:e[n.id].reference,onChange:e=>s(n.id,`reference`,e.target.value)})]},n.id))]})]},n.scope)),(0,m.jsxs)(`div`,{className:`project-stack-format-help`,children:[(0,m.jsxs)(`p`,{children:[(0,m.jsx)(`strong`,{children:t===`pt-BR`?`Formato da versão:`:`Version format:`}),` `,a]}),(0,m.jsxs)(`p`,{children:[(0,m.jsx)(`strong`,{children:t===`pt-BR`?`Formato da referência:`:`Reference format:`}),` `,i]})]})]})}function _({components:e,text:t}){return e.length===0?null:(0,m.jsxs)(`section`,{className:`project-stack-versions`,"aria-label":t.versions,children:[(0,m.jsx)(`h3`,{children:t.versions}),(0,m.jsx)(`div`,{children:e.map(e=>(0,m.jsxs)(`article`,{children:[(0,m.jsxs)(`div`,{className:`project-stack-version-identity`,children:[(0,m.jsx)(`strong`,{children:e.name}),(0,m.jsx)(`code`,{children:e.version??t.versionUnavailable})]}),(0,m.jsx)(`span`,{className:`is-${e.verification}`,children:e.verification===`exact`?t.exact:e.verification===`constraint`?t.constraint:t.versionUnavailable}),e.source?(0,m.jsx)(`small`,{children:e.source}):null]},e.name))})]})}var v={"pt-BR":{eyebrow:`Configurações`,title:`Configuração do projeto`,intro:`Edite o arquivo central do projeto com validação do schema antes da gravação.`,loading:`Carregando…`,back:`Voltar ao dashboard`,save:`Salvar configurações`,saving:`Validando e salvando…`,saved:`Configurações salvas e validadas.`,framework:`Framework ZAIP-AIOS`,frameworkHint:`Ativa ou desativa o framework para este projeto.`,identity:`Identidade do projeto`,stack:`Stack e linguagens`,execution:`Execução`,assurance:`Assurance`,executionToggleHint:`Grava ou remove o bloco execution. Sem ele, o projeto usa execução manual.`,runtimeHint:`Manual apenas materializa o trabalho; autonomous executa a DAG pelo provider configurado quando as precondições passam.`,providerHint:`Provider que inicia os agentes da execução autônoma: Codex ou Claude.`,executionModelHint:`Modelo-base do runtime autônomo. A política automática de PRD/SPEC ainda pode selecionar um modelo permitido por agente.`,parallelismHint:`Teto de agentes simultâneos. O valor efetivo é o menor limite entre projeto, DAG, provider e squad.`,leaseHint:`Valor persistido no projeto. O coordenador atual ainda usa internamente um lease fixo de 60 segundos.`,assuranceToggleHint:`Ativa ou remove os gates de evidência, revisão e qualidade do projeto. Recomenda-se manter ativo.`,assuranceVersionHint:`Versão do contrato de assurance. É fixa e somente leitura.`,assuranceDepthHint:`Auto ajusta o rigor ao escopo; base exige o conjunto padrão; elevated amplia validações para mudanças mais abrangentes.`,finalCommitHint:`Exige que as evidências comprovem o commit final integrado. Sinais de produção ou migração ainda podem exigir isso mesmo quando desativado.`,context:`Contexto`,overview:`Visão geral do projeto`,available:`Criado`,unavailable:`Ainda não criado`,componentGuide:`Preencha cada responsabilidade separadamente. A versão fica sem prefixos (^, ~, >=) e a referência identifica o pacote, imagem ou serviço.`,versionHint:`Versão exata: 22.16.0 ou 17.6. Deixe vazio para serviços sem versão fixada.`,referenceHint:`Ex.: npm:hono, docker:node:22.16.0-bookworm-slim, service:supabase ou provider:cloudflare-pages.`,overrides:`Opções avançadas (JSON)`,overridesHint:`Use apenas fatos técnicos transversais confirmados. Deixe vazio quando não houver exceções.`,versions:`Versões verificadas no workspace`,exact:`Verificada`,constraint:`Requisito`,versionUnavailable:`Não encontrada`,contextGuide:`O contexto começa pelas fontes canônicas e inclui somente arquivos relevantes para a tarefa. Saídas geradas são consultadas apenas em setup, release ou checagem de paridade.`,contextDomains:`Branding, Marketing, Growth e Sales são usados sob demanda pelos respectivos especialistas, quando houver uma tarefa e artefatos desses domínios. Não os adicione aqui apenas por existirem como capacidades.`},"en-US":{eyebrow:`Settings`,title:`Project settings`,intro:`Edit the central project file with schema validation before writing.`,loading:`Loading project settings…`,back:`Back to dashboard`,save:`Save settings`,saving:`Validating and saving…`,saved:`Settings saved and validated.`,framework:`ZAIP-AIOS framework`,frameworkHint:`Enable or disable the framework for this project.`,identity:`Project identity`,stack:`Stack and languages`,execution:`Execution`,assurance:`Assurance`,executionToggleHint:`Writes or removes the execution block. Without it, the project uses manual execution.`,runtimeHint:`Manual only materializes work; autonomous runs the DAG through the configured provider after preconditions pass.`,providerHint:`Provider that starts autonomous execution agents: Codex or Claude.`,executionModelHint:`Base model for the autonomous runtime. PRD/SPEC automatic policy may still select an allowed model per agent.`,parallelismHint:`Maximum simultaneous agents. Effective parallelism is the smallest project, DAG, provider, and squad limit.`,leaseHint:`Value persisted in the project. The current coordinator still uses a fixed internal 60-second lease.`,assuranceToggleHint:`Enables or removes project evidence, review, and quality gates. Keeping it enabled is recommended.`,assuranceVersionHint:`Assurance contract version. It is fixed and read-only.`,assuranceDepthHint:`Auto adapts rigor to scope; base uses the standard set; elevated expands validation for broader changes.`,finalCommitHint:`Requires evidence for the final integrated commit. Production or migration signals may still require it when disabled.`,context:`Context`,overview:`Project overview`,available:`Created`,unavailable:`Not created yet`,componentGuide:`Fill each responsibility separately. Versions have no prefixes (^, ~, >=), and the reference identifies the package, image, or service.`,versionHint:`Exact version: 22.16.0 or 17.6. Leave blank for services without a pinned version.`,referenceHint:`E.g. npm:hono, docker:node:22.16.0-bookworm-slim, service:supabase, or provider:cloudflare-pages.`,overrides:`Advanced options (JSON)`,overridesHint:`Use only confirmed cross-cutting technical facts. Leave empty when there are no exceptions.`,versions:`Versions verified in the workspace`,exact:`Verified`,constraint:`Requirement`,versionUnavailable:`Not found`,contextGuide:`Context starts from canonical sources and includes only files relevant to the task. Generated outputs are consulted only for setup, release, or parity checks.`,contextDomains:`Branding, Marketing, Growth, and Sales are used on demand by their respective specialists when there is a task and artifacts in those domains. Do not add them here merely because they exist as capabilities.`}};function y({api:e,locale:t,onClose:r}){let u=v[t],[d,f]=(0,n.useState)(null),[p,h]=(0,n.useState)(null),[y,T]=(0,n.useState)(null),[E,D]=(0,n.useState)(`{}`),[O,k]=(0,n.useState)(!1),[A,j]=(0,n.useState)(null),[M,N]=(0,n.useState)(null);(0,n.useEffect)(()=>{Promise.all([e.projectSettings(),e.projectOverview()]).then(([e,t])=>{let n=i(e);f(e),h(t),T(a(n.components,t.stack_components)),D(n.otherOverrides)}).catch(e=>j(e instanceof Error?e.message:String(e)))},[e]);async function P(t){if(t.preventDefault(),d!==null){k(!0),j(null),N(null);try{let t=await e.saveProjectSettings(o(d,y??i(d).components,E)),n=await e.projectOverview(),r=i(t);f(t),h(n),T(r.components),D(r.otherOverrides),N(u.saved)}catch(e){j(e instanceof Error?e.message:String(e))}finally{k(!1)}}}if(d===null){let e=A===null;return(0,m.jsx)(`main`,{"aria-busy":e,className:`project-settings-state`,children:(0,m.jsxs)(`div`,{"aria-live":e?`polite`:`assertive`,className:`project-settings-state-card`,role:e?`status`:`alert`,children:[e?(0,m.jsx)(`span`,{"aria-hidden":`true`,className:`project-settings-loader`}):null,(0,m.jsx)(`p`,{children:u.eyebrow}),(0,m.jsx)(`h1`,{children:A??u.loading}),(0,m.jsxs)(`button`,{onClick:r,type:`button`,children:[`← `,u.back]})]})})}return(0,m.jsx)(`main`,{className:`project-settings-page`,children:(0,m.jsxs)(`form`,{onSubmit:P,children:[(0,m.jsxs)(`header`,{className:`project-settings-header`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`p`,{children:u.eyebrow}),(0,m.jsx)(`h1`,{children:u.title}),(0,m.jsx)(`span`,{children:u.intro})]}),(0,m.jsxs)(`button`,{className:`project-settings-back`,onClick:r,type:`button`,children:[`← `,u.back]})]}),A?(0,m.jsx)(`div`,{className:`project-settings-message is-error`,children:A}):null,M?(0,m.jsx)(`div`,{className:`project-settings-message is-success`,role:`status`,children:M}):null,(0,m.jsxs)(`section`,{className:`project-settings-feature`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsxs)(`h2`,{children:[u.framework,l(p?.framework_version)?` - ${l(p?.framework_version)}`:``]}),(0,m.jsx)(`p`,{children:u.frameworkHint})]}),(0,m.jsx)(S,{checked:d.zaip?.enabled===!0,label:t===`pt-BR`?`Framework ativo`:`Framework enabled`,onChange:e=>f({...d,zaip:{enabled:e}})})]}),(0,m.jsx)(`section`,{className:`project-settings-summary`,"aria-label":u.overview,children:p?.metrics.map(e=>(0,m.jsxs)(`div`,{className:`project-settings-metric`,children:[(0,m.jsx)(`strong`,{children:e.value}),(0,m.jsx)(`span`,{children:e.label})]},e.id))}),(0,m.jsx)(b,{className:`is-wide`,title:u.overview,children:(0,m.jsx)(`div`,{className:`project-overview`,"aria-live":`polite`,children:p?.areas.map(e=>(0,m.jsxs)(`div`,{className:`project-overview-item`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`strong`,{children:e.label}),(0,m.jsx)(`code`,{children:e.artifact})]}),(0,m.jsx)(`span`,{className:e.available?`is-available`:`is-unavailable`,children:e.available?u.available:u.unavailable})]},e.id))})}),(0,m.jsxs)(`div`,{className:`project-settings-grid`,children:[(0,m.jsxs)(b,{className:`is-wide project-identity-card`,title:u.identity,children:[(0,m.jsx)(x,{label:`Schema`,children:(0,m.jsx)(`input`,{readOnly:!0,value:d.schema_version})}),(0,m.jsx)(x,{label:t===`pt-BR`?`ID do projeto`:`Project ID`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.id,onChange:e=>f({...d,project:{...d.project,id:e.target.value}})})}),(0,m.jsx)(x,{label:t===`pt-BR`?`Nome do projeto`:`Project name`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.name,onChange:e=>f({...d,project:{...d.project,name:e.target.value}})})}),(0,m.jsx)(x,{label:`Timezone IANA`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.timezone,onChange:e=>f({...d,project:{...d.project,timezone:e.target.value}})})})]}),(0,m.jsxs)(b,{className:`is-wide`,title:u.stack,children:[(0,m.jsx)(`p`,{className:`project-stack-guide`,children:u.componentGuide}),y?(0,m.jsx)(g,{components:y,locale:t,onChange:T,referenceHint:u.referenceHint,versionHint:u.versionHint}):null,(0,m.jsx)(_,{components:p?.stack_components??[],text:u}),(0,m.jsxs)(`details`,{className:`project-settings-advanced`,children:[(0,m.jsx)(`summary`,{children:u.overrides}),(0,m.jsx)(x,{hint:u.overridesHint,label:`Overrides`,children:(0,m.jsx)(`textarea`,{rows:7,value:E,onChange:e=>D(e.target.value)})})]})]}),(0,m.jsxs)(b,{title:u.execution,children:[(0,m.jsx)(C,{checked:d.execution!==void 0,hint:u.executionToggleHint,label:t===`pt-BR`?`Incluir configuração de execução`:`Include execution configuration`,onChange:e=>f({...d,execution:e?{runtime:`manual`}:void 0})}),d.execution?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:u.runtimeHint,label:`Runtime`,children:(0,m.jsxs)(`select`,{value:d.execution.runtime,onChange:e=>f({...d,execution:e.target.value===`manual`?{runtime:`manual`}:c()}),children:[(0,m.jsx)(`option`,{value:`manual`,children:`manual`}),(0,m.jsx)(`option`,{value:`autonomous`,children:`autonomous`})]})}),d.execution.runtime===`autonomous`?(0,m.jsx)(w,{config:d,setConfig:f,text:u}):null]}):null]}),(0,m.jsxs)(b,{title:u.assurance,children:[(0,m.jsx)(C,{checked:d.assurance!==void 0,hint:u.assuranceToggleHint,label:t===`pt-BR`?`Incluir assurance`:`Include assurance`,onChange:e=>f({...d,assurance:e?{version:1,standard_depth:`auto`,require_final_commit:!0}:void 0})}),d.assurance?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:u.assuranceVersionHint,label:t===`pt-BR`?`Versão`:`Version`,children:(0,m.jsx)(`input`,{readOnly:!0,value:d.assurance.version})}),(0,m.jsx)(x,{hint:u.assuranceDepthHint,label:t===`pt-BR`?`Profundidade padrão`:`Standard depth`,children:(0,m.jsxs)(`select`,{value:d.assurance.standard_depth,onChange:e=>f({...d,assurance:{...d.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},standard_depth:e.target.value}}),children:[(0,m.jsx)(`option`,{value:`auto`,children:`auto`}),(0,m.jsx)(`option`,{value:`base`,children:`base`}),(0,m.jsx)(`option`,{value:`elevated`,children:`elevated`})]})}),(0,m.jsx)(S,{checked:d.assurance.require_final_commit,hint:u.finalCommitHint,label:t===`pt-BR`?`Exigir commit final`:`Require final commit`,onChange:e=>f({...d,assurance:{...d.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},require_final_commit:e}})})]}):null]}),(0,m.jsxs)(b,{className:`is-wide`,title:u.context,children:[(0,m.jsx)(C,{checked:d.context!==void 0,label:t===`pt-BR`?`Incluir raízes de contexto`:`Include context roots`,onChange:e=>f({...d,context:e?{canonical_roots:[`packages`],projection_roots:[]}:void 0})}),d.context?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`div`,{className:`project-settings-guidance`,children:[(0,m.jsx)(`p`,{children:u.contextGuide}),(0,m.jsx)(`p`,{children:u.contextDomains})]}),(0,m.jsxs)(`div`,{className:`project-settings-fields two-columns`,children:[(0,m.jsx)(x,{hint:t===`pt-BR`?`Uma pasta por linha. Estas são as fontes principais do projeto.`:`One folder per line. These are the project's primary sources.`,label:t===`pt-BR`?`Fontes canônicas`:`Canonical sources`,children:(0,m.jsx)(`textarea`,{required:!0,rows:5,value:d.context.canonical_roots.join(`
1
+ import{S as e,b as t}from"./cost-monitor-Csj6LiAt.js";var n=e(),r=[{id:`primary_language`,defaultName:`TypeScript`,scope:`backend`},{id:`backend_runtime`,defaultName:`Node.js`,scope:`backend`},{id:`backend_api`,defaultName:`Hono`,scope:`backend`},{id:`query_builder`,defaultName:`Kysely`,scope:`backend`},{id:`database`,defaultName:`PostgreSQL via Supabase`,scope:`backend`},{id:`auth_storage`,defaultName:`Supabase Auth + Storage`,scope:`backend`},{id:`cache_messaging`,defaultName:`Redis`,scope:`backend`},{id:`async_queue`,defaultName:`BullMQ`,scope:`backend`},{id:`backend_infrastructure`,defaultName:`Hostinger VPS`,scope:`backend`},{id:`web_framework`,defaultName:`React`,scope:`frontend`},{id:`web_language`,defaultName:`TypeScript`,scope:`frontend`},{id:`web_build`,defaultName:`Vite`,scope:`frontend`},{id:`frontend_hosting`,defaultName:`Cloudflare Pages`,scope:`frontend`},{id:`site_framework`,defaultName:`Astro`,scope:`site`},{id:`site_language`,defaultName:`TypeScript`,scope:`site`},{id:`site_islands`,defaultName:`React Islands`,scope:`site`},{id:`site_build`,defaultName:`Vite`,scope:`site`},{id:`site_hosting`,defaultName:`Cloudflare Pages`,scope:`site`}];function i(e){let{languages:t,components:n,...i}=e.stack.overrides,a=p(n)?n:{};return{components:Object.fromEntries(r.map(e=>{let t=a[e.id],n=p(t)?t:{};return[e.id,{name:f(n.name)||e.defaultName,version:f(n.version),reference:f(n.reference)}]})),otherOverrides:JSON.stringify(i,null,2)}}function a(e,t){let n=new Map(t.filter(e=>e.verification===`exact`&&e.version!==null).map(e=>[e.name.toLowerCase(),e.version]));return Object.fromEntries(r.map(t=>{let r=e[t.id],i=n.get(u(t.id));return[t.id,r.version!==``||i===void 0?r:{...r,version:i}]}))}function o(e,t,n){let i=JSON.parse(n);if(!p(i))throw Error(`Demais overrides deve ser um objeto JSON.`);let{languages:a,components:o,...s}=i;for(let e of r){let n=t[e.id].version.trim();if(n!==``&&!/^\d+\.\d+(?:\.\d+)?(?:[-+][0-9A-Za-z.-]+)?$/.test(n))throw Error(`A versão de ${t[e.id].name||e.defaultName} deve ser exata, como 22.16.0 ou 17.6, sem ^, ~, >= ou latest.`)}let c=Object.fromEntries(r.map(e=>[e.id,{name:t[e.id].name.trim()||e.defaultName,version:t[e.id].version.trim(),reference:t[e.id].reference.trim()}]));return{...e,stack:{...e.stack,overrides:{...s,components:c,languages:{frontend:d(c,`frontend`),backend:d(c,`backend`),site:d(c,`site`)}}}}}function s(e){return[...new Set(e.split(/\r?\n/).map(e=>e.trim()).filter(Boolean))]}function c(){return{runtime:`autonomous`,autonomous:{provider:`codex`,model:`gpt-5.6-terra`,max_parallelism:1,lease_ms:6e4}}}function l(e){let t=e?.match(/^v?(\d+)\.(\d+)\.\d+(?:[-+][0-9A-Za-z.-]+)?$/);return t?`v${t[1]}.${t[2]}`:null}function u(e){return e===`backend_runtime`?`node.js`:e===`backend_api`?`hono`:e===`site_framework`?`astro`:e===`cache_messaging`?`redis`:e===`async_queue`?`bullmq`:e===`web_framework`||e===`site_islands`?`react`:e===`web_build`||e===`site_build`?`vite`:e===`primary_language`||e===`web_language`||e===`site_language`?`typescript`:``}function d(e,t){return[...new Set(r.filter(e=>e.scope===t).map(t=>e[t.id].name.trim()).filter(Boolean))]}function f(e){return typeof e==`string`?e:``}function p(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var m=t(),h={primary_language:{pt:`Linguagem principal`,en:`Primary language`},backend_runtime:{pt:`Runtime backend`,en:`Backend runtime`},backend_api:{pt:`Framework backend / API`,en:`Backend framework / API`},query_builder:{pt:`Query builder`,en:`Query builder`},database:{pt:`Banco de dados`,en:`Database`},auth_storage:{pt:`Autenticação e Storage`,en:`Authentication and Storage`},cache_messaging:{pt:`Cache e mensageria`,en:`Cache and messaging`},async_queue:{pt:`Filas e processamento assíncrono`,en:`Queues and async processing`},backend_infrastructure:{pt:`Infraestrutura backend`,en:`Backend infrastructure`},web_framework:{pt:`Framework do Web App`,en:`Web App framework`},web_language:{pt:`Linguagem do Web App`,en:`Web App language`},web_build:{pt:`Build do Web App`,en:`Web App build`},frontend_hosting:{pt:`Hospedagem do frontend`,en:`Frontend hosting`},site_framework:{pt:`Framework do site`,en:`Site framework`},site_language:{pt:`Linguagem do site`,en:`Site language`},site_islands:{pt:`Componentes interativos`,en:`Interactive components`},site_build:{pt:`Build do site`,en:`Site build`},site_hosting:{pt:`Hospedagem do site`,en:`Site hosting`}};function g({components:e,locale:t,onChange:n,referenceHint:i,versionHint:a}){let o=[{scope:`backend`,title:t===`pt-BR`?`Backend e dados`:`Backend and data`},{scope:`frontend`,title:`Web App`},{scope:`site`,title:t===`pt-BR`?`Site e landing pages`:`Site and landing pages`}],s=(t,r,i)=>n({...e,[t]:{...e[t],[r]:i}});return(0,m.jsxs)(`div`,{className:`project-stack-editor`,children:[o.map(n=>(0,m.jsxs)(`section`,{children:[(0,m.jsx)(`h3`,{children:n.title}),(0,m.jsxs)(`div`,{className:`project-stack-table`,children:[(0,m.jsxs)(`div`,{className:`project-stack-table-head`,"aria-hidden":`true`,children:[(0,m.jsx)(`span`,{children:`Item`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Tecnologia`:`Technology`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Versão exata`:`Exact version`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Pacote / imagem / serviço`:`Package / image / service`})]}),r.filter(e=>e.scope===n.scope).map(n=>(0,m.jsxs)(`div`,{className:`project-stack-row`,children:[(0,m.jsx)(`strong`,{children:h[n.id][t===`pt-BR`?`pt`:`en`]}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: tecnologia`,value:e[n.id].name,onChange:e=>s(n.id,`name`,e.target.value)}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: versão exata`,inputMode:`decimal`,placeholder:`x.y.z`,value:e[n.id].version,onChange:e=>s(n.id,`version`,e.target.value)}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: referência`,placeholder:`npm:pacote ou service:nome`,value:e[n.id].reference,onChange:e=>s(n.id,`reference`,e.target.value)})]},n.id))]})]},n.scope)),(0,m.jsxs)(`div`,{className:`project-stack-format-help`,children:[(0,m.jsxs)(`p`,{children:[(0,m.jsx)(`strong`,{children:t===`pt-BR`?`Formato da versão:`:`Version format:`}),` `,a]}),(0,m.jsxs)(`p`,{children:[(0,m.jsx)(`strong`,{children:t===`pt-BR`?`Formato da referência:`:`Reference format:`}),` `,i]})]})]})}function _({components:e,text:t}){return e.length===0?null:(0,m.jsxs)(`section`,{className:`project-stack-versions`,"aria-label":t.versions,children:[(0,m.jsx)(`h3`,{children:t.versions}),(0,m.jsx)(`div`,{children:e.map(e=>(0,m.jsxs)(`article`,{children:[(0,m.jsxs)(`div`,{className:`project-stack-version-identity`,children:[(0,m.jsx)(`strong`,{children:e.name}),(0,m.jsx)(`code`,{children:e.version??t.versionUnavailable})]}),(0,m.jsx)(`span`,{className:`is-${e.verification}`,children:e.verification===`exact`?t.exact:e.verification===`constraint`?t.constraint:t.versionUnavailable}),e.source?(0,m.jsx)(`small`,{children:e.source}):null]},e.name))})]})}var v={"pt-BR":{eyebrow:`Configurações`,title:`Configuração do projeto`,intro:`Edite o arquivo central do projeto com validação do schema antes da gravação.`,loading:`Carregando…`,back:`Voltar ao dashboard`,save:`Salvar configurações`,saving:`Validando e salvando…`,saved:`Configurações salvas e validadas.`,framework:`Framework ZAIP-AIOS`,frameworkHint:`Ativa ou desativa o framework para este projeto.`,identity:`Identidade do projeto`,stack:`Stack e linguagens`,execution:`Execução`,assurance:`Assurance`,executionToggleHint:`Grava ou remove o bloco execution. Sem ele, o projeto usa execução manual.`,runtimeHint:`Manual apenas materializa o trabalho; autonomous executa a DAG pelo provider configurado quando as precondições passam.`,providerHint:`Provider que inicia os agentes da execução autônoma: Codex ou Claude.`,executionModelHint:`Modelo-base do runtime autônomo. A política automática de PRD/SPEC ainda pode selecionar um modelo permitido por agente.`,parallelismHint:`Teto de agentes simultâneos. O valor efetivo é o menor limite entre projeto, DAG, provider e squad.`,leaseHint:`Valor persistido no projeto. O coordenador atual ainda usa internamente um lease fixo de 60 segundos.`,assuranceToggleHint:`Ativa ou remove os gates de evidência, revisão e qualidade do projeto. Recomenda-se manter ativo.`,assuranceVersionHint:`Versão do contrato de assurance. É fixa e somente leitura.`,assuranceDepthHint:`Auto ajusta o rigor ao escopo; base exige o conjunto padrão; elevated amplia validações para mudanças mais abrangentes.`,finalCommitHint:`Exige que as evidências comprovem o commit final integrado. Sinais de produção ou migração ainda podem exigir isso mesmo quando desativado.`,context:`Contexto`,overview:`Visão geral do projeto`,available:`Criado`,unavailable:`Ainda não criado`,componentGuide:`Preencha cada responsabilidade separadamente. A versão fica sem prefixos (^, ~, >=) e a referência identifica o pacote, imagem ou serviço.`,versionHint:`Versão exata: 22.16.0 ou 17.6. Deixe vazio para serviços sem versão fixada.`,referenceHint:`Ex.: npm:hono, docker:node:22.16.0-bookworm-slim, service:supabase ou provider:cloudflare-pages.`,overrides:`Opções avançadas (JSON)`,overridesHint:`Use apenas fatos técnicos transversais confirmados. Deixe vazio quando não houver exceções.`,versions:`Versões verificadas no workspace`,exact:`Verificada`,constraint:`Requisito`,versionUnavailable:`Não encontrada`,contextGuide:`O contexto começa pelas fontes canônicas e inclui somente arquivos relevantes para a tarefa. Saídas geradas são consultadas apenas em setup, release ou checagem de paridade.`,contextDomains:`Branding, Marketing, Growth e Sales são usados sob demanda pelos respectivos especialistas, quando houver uma tarefa e artefatos desses domínios. Não os adicione aqui apenas por existirem como capacidades.`},"en-US":{eyebrow:`Settings`,title:`Project settings`,intro:`Edit the central project file with schema validation before writing.`,loading:`Loading project settings…`,back:`Back to dashboard`,save:`Save settings`,saving:`Validating and saving…`,saved:`Settings saved and validated.`,framework:`ZAIP-AIOS framework`,frameworkHint:`Enable or disable the framework for this project.`,identity:`Project identity`,stack:`Stack and languages`,execution:`Execution`,assurance:`Assurance`,executionToggleHint:`Writes or removes the execution block. Without it, the project uses manual execution.`,runtimeHint:`Manual only materializes work; autonomous runs the DAG through the configured provider after preconditions pass.`,providerHint:`Provider that starts autonomous execution agents: Codex or Claude.`,executionModelHint:`Base model for the autonomous runtime. PRD/SPEC automatic policy may still select an allowed model per agent.`,parallelismHint:`Maximum simultaneous agents. Effective parallelism is the smallest project, DAG, provider, and squad limit.`,leaseHint:`Value persisted in the project. The current coordinator still uses a fixed internal 60-second lease.`,assuranceToggleHint:`Enables or removes project evidence, review, and quality gates. Keeping it enabled is recommended.`,assuranceVersionHint:`Assurance contract version. It is fixed and read-only.`,assuranceDepthHint:`Auto adapts rigor to scope; base uses the standard set; elevated expands validation for broader changes.`,finalCommitHint:`Requires evidence for the final integrated commit. Production or migration signals may still require it when disabled.`,context:`Context`,overview:`Project overview`,available:`Created`,unavailable:`Not created yet`,componentGuide:`Fill each responsibility separately. Versions have no prefixes (^, ~, >=), and the reference identifies the package, image, or service.`,versionHint:`Exact version: 22.16.0 or 17.6. Leave blank for services without a pinned version.`,referenceHint:`E.g. npm:hono, docker:node:22.16.0-bookworm-slim, service:supabase, or provider:cloudflare-pages.`,overrides:`Advanced options (JSON)`,overridesHint:`Use only confirmed cross-cutting technical facts. Leave empty when there are no exceptions.`,versions:`Versions verified in the workspace`,exact:`Verified`,constraint:`Requirement`,versionUnavailable:`Not found`,contextGuide:`Context starts from canonical sources and includes only files relevant to the task. Generated outputs are consulted only for setup, release, or parity checks.`,contextDomains:`Branding, Marketing, Growth, and Sales are used on demand by their respective specialists when there is a task and artifacts in those domains. Do not add them here merely because they exist as capabilities.`}};function y({api:e,locale:t,onClose:r}){let u=v[t],[d,f]=(0,n.useState)(null),[p,h]=(0,n.useState)(null),[y,T]=(0,n.useState)(null),[E,D]=(0,n.useState)(`{}`),[O,k]=(0,n.useState)(!1),[A,j]=(0,n.useState)(null),[M,N]=(0,n.useState)(null);(0,n.useEffect)(()=>{Promise.all([e.projectSettings(),e.projectOverview()]).then(([e,t])=>{let n=i(e);f(e),h(t),T(a(n.components,t.stack_components)),D(n.otherOverrides)}).catch(e=>j(e instanceof Error?e.message:String(e)))},[e]);async function P(t){if(t.preventDefault(),d!==null){k(!0),j(null),N(null);try{let t=await e.saveProjectSettings(o(d,y??i(d).components,E)),n=await e.projectOverview(),r=i(t);f(t),h(n),T(r.components),D(r.otherOverrides),N(u.saved)}catch(e){j(e instanceof Error?e.message:String(e))}finally{k(!1)}}}if(d===null){let e=A===null;return(0,m.jsx)(`main`,{"aria-busy":e,className:`project-settings-state`,children:(0,m.jsxs)(`div`,{"aria-live":e?`polite`:`assertive`,className:`project-settings-state-card`,role:e?`status`:`alert`,children:[e?(0,m.jsx)(`span`,{"aria-hidden":`true`,className:`project-settings-loader`}):null,(0,m.jsx)(`p`,{children:u.eyebrow}),(0,m.jsx)(`h1`,{children:A??u.loading}),(0,m.jsxs)(`button`,{onClick:r,type:`button`,children:[`← `,u.back]})]})})}return(0,m.jsx)(`main`,{className:`project-settings-page`,children:(0,m.jsxs)(`form`,{onSubmit:P,children:[(0,m.jsxs)(`header`,{className:`project-settings-header`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`p`,{children:u.eyebrow}),(0,m.jsx)(`h1`,{children:u.title}),(0,m.jsx)(`span`,{children:u.intro})]}),(0,m.jsxs)(`button`,{className:`project-settings-back`,onClick:r,type:`button`,children:[`← `,u.back]})]}),A?(0,m.jsx)(`div`,{className:`project-settings-message is-error`,children:A}):null,M?(0,m.jsx)(`div`,{className:`project-settings-message is-success`,role:`status`,children:M}):null,(0,m.jsxs)(`section`,{className:`project-settings-feature`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsxs)(`h2`,{children:[u.framework,l(p?.framework_version)?` - ${l(p?.framework_version)}`:``]}),(0,m.jsx)(`p`,{children:u.frameworkHint})]}),(0,m.jsx)(S,{checked:d.zaip?.enabled===!0,label:t===`pt-BR`?`Framework ativo`:`Framework enabled`,onChange:e=>f({...d,zaip:{enabled:e}})})]}),(0,m.jsx)(`section`,{className:`project-settings-summary`,"aria-label":u.overview,children:p?.metrics.map(e=>(0,m.jsxs)(`div`,{className:`project-settings-metric`,children:[(0,m.jsx)(`strong`,{children:e.value}),(0,m.jsx)(`span`,{children:e.label})]},e.id))}),(0,m.jsx)(b,{className:`is-wide`,title:u.overview,children:(0,m.jsx)(`div`,{className:`project-overview`,"aria-live":`polite`,children:p?.areas.map(e=>(0,m.jsxs)(`div`,{className:`project-overview-item`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`strong`,{children:e.label}),(0,m.jsx)(`code`,{children:e.artifact})]}),(0,m.jsx)(`span`,{className:e.available?`is-available`:`is-unavailable`,children:e.available?u.available:u.unavailable})]},e.id))})}),(0,m.jsxs)(`div`,{className:`project-settings-grid`,children:[(0,m.jsxs)(b,{className:`is-wide project-identity-card`,title:u.identity,children:[(0,m.jsx)(x,{label:`Schema`,children:(0,m.jsx)(`input`,{readOnly:!0,value:d.schema_version})}),(0,m.jsx)(x,{label:t===`pt-BR`?`ID do projeto`:`Project ID`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.id,onChange:e=>f({...d,project:{...d.project,id:e.target.value}})})}),(0,m.jsx)(x,{label:t===`pt-BR`?`Nome do projeto`:`Project name`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.name,onChange:e=>f({...d,project:{...d.project,name:e.target.value}})})}),(0,m.jsx)(x,{label:`Timezone IANA`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.timezone,onChange:e=>f({...d,project:{...d.project,timezone:e.target.value}})})})]}),(0,m.jsxs)(b,{className:`is-wide`,title:u.stack,children:[(0,m.jsx)(`p`,{className:`project-stack-guide`,children:u.componentGuide}),y?(0,m.jsx)(g,{components:y,locale:t,onChange:T,referenceHint:u.referenceHint,versionHint:u.versionHint}):null,(0,m.jsx)(_,{components:p?.stack_components??[],text:u}),(0,m.jsxs)(`details`,{className:`project-settings-advanced`,children:[(0,m.jsx)(`summary`,{children:u.overrides}),(0,m.jsx)(x,{hint:u.overridesHint,label:`Overrides`,children:(0,m.jsx)(`textarea`,{rows:7,value:E,onChange:e=>D(e.target.value)})})]})]}),(0,m.jsxs)(b,{title:u.execution,children:[(0,m.jsx)(C,{checked:d.execution!==void 0,hint:u.executionToggleHint,label:t===`pt-BR`?`Incluir configuração de execução`:`Include execution configuration`,onChange:e=>f({...d,execution:e?{runtime:`manual`}:void 0})}),d.execution?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:u.runtimeHint,label:`Runtime`,children:(0,m.jsxs)(`select`,{value:d.execution.runtime,onChange:e=>f({...d,execution:e.target.value===`manual`?{runtime:`manual`}:c()}),children:[(0,m.jsx)(`option`,{value:`manual`,children:`manual`}),(0,m.jsx)(`option`,{value:`autonomous`,children:`autonomous`})]})}),d.execution.runtime===`autonomous`?(0,m.jsx)(w,{config:d,setConfig:f,text:u}):null]}):null]}),(0,m.jsxs)(b,{title:u.assurance,children:[(0,m.jsx)(C,{checked:d.assurance!==void 0,hint:u.assuranceToggleHint,label:t===`pt-BR`?`Incluir assurance`:`Include assurance`,onChange:e=>f({...d,assurance:e?{version:1,standard_depth:`auto`,require_final_commit:!0}:void 0})}),d.assurance?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:u.assuranceVersionHint,label:t===`pt-BR`?`Versão`:`Version`,children:(0,m.jsx)(`input`,{readOnly:!0,value:d.assurance.version})}),(0,m.jsx)(x,{hint:u.assuranceDepthHint,label:t===`pt-BR`?`Profundidade padrão`:`Standard depth`,children:(0,m.jsxs)(`select`,{value:d.assurance.standard_depth,onChange:e=>f({...d,assurance:{...d.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},standard_depth:e.target.value}}),children:[(0,m.jsx)(`option`,{value:`auto`,children:`auto`}),(0,m.jsx)(`option`,{value:`base`,children:`base`}),(0,m.jsx)(`option`,{value:`elevated`,children:`elevated`})]})}),(0,m.jsx)(S,{checked:d.assurance.require_final_commit,hint:u.finalCommitHint,label:t===`pt-BR`?`Exigir commit final`:`Require final commit`,onChange:e=>f({...d,assurance:{...d.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},require_final_commit:e}})})]}):null]}),(0,m.jsxs)(b,{className:`is-wide`,title:u.context,children:[(0,m.jsx)(C,{checked:d.context!==void 0,label:t===`pt-BR`?`Incluir raízes de contexto`:`Include context roots`,onChange:e=>f({...d,context:e?{canonical_roots:[`packages`],projection_roots:[]}:void 0})}),d.context?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`div`,{className:`project-settings-guidance`,children:[(0,m.jsx)(`p`,{children:u.contextGuide}),(0,m.jsx)(`p`,{children:u.contextDomains})]}),(0,m.jsxs)(`div`,{className:`project-settings-fields two-columns`,children:[(0,m.jsx)(x,{hint:t===`pt-BR`?`Uma pasta por linha. Estas são as fontes principais do projeto.`:`One folder per line. These are the project's primary sources.`,label:t===`pt-BR`?`Fontes canônicas`:`Canonical sources`,children:(0,m.jsx)(`textarea`,{required:!0,rows:5,value:d.context.canonical_roots.join(`
2
2
  `),onChange:e=>f({...d,context:{...d.context??{canonical_roots:[`packages`],projection_roots:[]},canonical_roots:s(e.target.value)}})})}),(0,m.jsx)(x,{hint:t===`pt-BR`?`Uma pasta por linha. São saídas geradas, não fontes de contexto normal.`:`One folder per line. These are generated outputs, not normal context sources.`,label:t===`pt-BR`?`Saídas geradas/publicadas`:`Generated/published outputs`,children:(0,m.jsx)(`textarea`,{rows:5,value:d.context.projection_roots.join(`
3
3
  `),onChange:e=>f({...d,context:{...d.context??{canonical_roots:[`packages`],projection_roots:[]},projection_roots:s(e.target.value)}})})})]})]}):null]})]}),(0,m.jsxs)(`footer`,{className:`project-settings-footer`,children:[(0,m.jsx)(`span`,{children:`.agents/config/project.yaml`}),(0,m.jsx)(`button`,{disabled:O,type:`submit`,children:O?u.saving:u.save})]})]})})}function b({children:e,className:t=``,title:n}){return(0,m.jsxs)(`section`,{className:`project-settings-card ${t}`,children:[(0,m.jsx)(`h2`,{children:n}),(0,m.jsx)(`div`,{className:`project-settings-fields`,children:e})]})}function x({children:e,hint:t,label:n}){return(0,m.jsxs)(`div`,{className:`project-settings-field`,children:[(0,m.jsx)(`span`,{children:n}),e,t?(0,m.jsx)(`small`,{children:t}):null]})}function S({checked:e,hint:t,label:n,onChange:r}){return(0,m.jsxs)(`div`,{className:`project-settings-toggle-field`,children:[(0,m.jsxs)(`label`,{className:`project-settings-toggle`,children:[(0,m.jsx)(`input`,{checked:e,onChange:e=>r(e.target.checked),type:`checkbox`}),(0,m.jsx)(`span`,{"aria-hidden":`true`}),(0,m.jsx)(`strong`,{children:n})]}),t?(0,m.jsx)(`small`,{children:t}):null]})}function C(e){return(0,m.jsx)(S,{...e})}function w({config:e,setConfig:t,text:n}){let r=e.execution?.runtime===`autonomous`?e.execution:c(),i=n=>t({...e,execution:{runtime:`autonomous`,autonomous:n}});return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:n.providerHint,label:`Provider`,children:(0,m.jsxs)(`select`,{value:r.autonomous.provider,onChange:e=>i({...r.autonomous,provider:e.target.value}),children:[(0,m.jsx)(`option`,{value:`codex`,children:`codex`}),(0,m.jsx)(`option`,{value:`claude`,children:`claude`})]})}),(0,m.jsx)(x,{hint:n.executionModelHint,label:`Model`,children:(0,m.jsx)(`input`,{required:!0,value:r.autonomous.model,onChange:e=>i({...r.autonomous,model:e.target.value})})}),(0,m.jsx)(x,{hint:n.parallelismHint,label:`Max parallelism`,children:(0,m.jsx)(`input`,{max:8,min:1,type:`number`,value:r.autonomous.max_parallelism,onChange:e=>i({...r.autonomous,max_parallelism:Number(e.target.value)})})}),(0,m.jsx)(x,{hint:n.leaseHint,label:`Lease (ms)`,children:(0,m.jsx)(`input`,{max:36e5,min:5e3,step:1e3,type:`number`,value:r.autonomous.lease_ms,onChange:e=>i({...r.autonomous,lease_ms:Number(e.target.value)})})})]})}export{y as ProjectSettingsPage};
@@ -1 +1 @@
1
- import{S as e,b as t}from"./cost-monitor-Cpp8xFij.js";import{n}from"./traceability-CMrDYqjR.js";import{t as r}from"./index-ncC1rxap.js";var i=e(),a=t();function o(e,t){let n=t.trim().toLocaleLowerCase();return n===``?[...e]:e.filter(e=>`${e.title} ${e.id}`.toLocaleLowerCase().includes(n))}function s(e,t,n){return n?[...e]:o(e,t)}function c(e){return`traceability-task-option-${e}`}function l({locale:e,loadingTaskId:t,hasMoreTasks:o,isLoadingTasks:l,onLoadMoreTasks:u,onSelectTask:d,onOpenChange:f,onOpenPrd:p,onOpenSpec:m,selectedTaskId:h,tasks:g,trace:_}){let v=[...g].sort((e,t)=>Date.parse(t.created_at)-Date.parse(e.created_at)),y=v.find(e=>e.id===h),[b,x]=(0,i.useState)(()=>y?.title??h),[S,C]=(0,i.useState)(!1),[w,T]=(0,i.useState)(!1),[E,D]=(0,i.useState)(0),[O,k]=(0,i.useState)(12),A=(0,i.useMemo)(()=>s(v,b,w),[b,w,v]),j=A.slice(0,O),M=j.length<A.length,N=`traceability-task-search`,P=`traceability-task-results`,F=e===`pt-BR`?`Task selecionada`:`Selected task`,I=e===`pt-BR`?`Buscar task por nome ou ID`:`Search task by name or ID`,L=S?A[E]?.id:void 0;(0,i.useEffect)(()=>{x(y?.title??h),D(0)},[y?.title,h]);let R=e=>{x(e.title),C(!1),T(!1),d(e.id)},z=(e=!0)=>{C(!0),T(!0),e&&(D(0),k(12))};return(0,a.jsxs)(`section`,{className:`traceability-workspace`,children:[(0,a.jsxs)(`header`,{children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`label`,{htmlFor:N,children:F}),(0,a.jsx)(`input`,{"aria-activedescendant":L===void 0?void 0:c(L),"aria-autocomplete":`list`,"aria-controls":P,"aria-expanded":S,"aria-label":I,id:N,onChange:e=>{x(e.target.value),D(0),T(!1),k(12),C(!0)},onClick:()=>z(),onFocus:()=>z(),onKeyDown:e=>{if(e.key===`ArrowDown`)e.preventDefault(),z(!1),D(e=>Math.min(e+1,Math.max(0,v.length-1)));else if(e.key===`ArrowUp`)e.preventDefault(),z(!1),D(e=>Math.max(0,e-1));else if(e.key===`Enter`&&S){let t=A[E];t!==void 0&&(e.preventDefault(),R(t))}else e.key===`Escape`&&C(!1)},role:`combobox`,type:`search`,value:b}),S?(0,a.jsx)(`div`,{"aria-label":I,className:`traceability-task-results`,id:P,onScroll:e=>{let{clientHeight:t,scrollHeight:n,scrollTop:i}=e.currentTarget;i+t<n-32||(o&&u(),j.length<A.length&&k(e=>r(e,A.length,12)))},role:`listbox`,children:A.length>0?j.map((e,t)=>(0,a.jsx)(`div`,{role:`presentation`,children:(0,a.jsx)(`button`,{"aria-selected":e.id===h,className:t===E?`is-active`:void 0,id:c(e.id),onClick:()=>R(e),role:`option`,type:`button`,children:(0,a.jsx)(`strong`,{children:e.title})})},e.id)):(0,a.jsx)(`div`,{className:`traceability-task-no-results`,role:`status`,children:e===`pt-BR`?`Nenhuma task encontrada.`:`No tasks found.`})}):null,S&&A.length>0?(0,a.jsx)(`p`,{"aria-live":`polite`,className:`traceability-task-pagination-status`,role:`status`,children:l?e===`pt-BR`?`Carregando mais tasks…`:`Loading more tasks…`:M||o?e===`pt-BR`?`${j.length} de ${A.length} tasks exibidas. Role para carregar mais.`:`${j.length} of ${A.length} tasks shown. Scroll to load more.`:e===`pt-BR`?`${A.length} tasks exibidas. Fim da lista.`:`${A.length} tasks shown. End of list.`}):null]}),(0,a.jsx)(`small`,{children:e===`pt-BR`?`Selecione pelo nome para visualizar o ciclo completo sem precisar do ID.`:`Select by name to inspect the complete lifecycle without knowing the ID.`})]}),t?(0,a.jsx)(`div`,{"aria-live":`polite`,className:`traceability-workspace-loading`,children:e===`pt-BR`?`Carregando as 6 etapas…`:`Loading all 6 stages…`}):_?(0,a.jsx)(n,{embedded:!0,locale:e,onClose:()=>void 0,onOpenChange:f,onOpenPrd:p,onOpenSpec:m,trace:_}):(0,a.jsx)(`p`,{children:e===`pt-BR`?`Nenhuma task disponível.`:`No task available.`})]})}export{l as TraceabilityWorkspace};
1
+ import{S as e,b as t}from"./cost-monitor-Csj6LiAt.js";import{n}from"./traceability-9Mtvbwrg.js";import{t as r}from"./index-DIwDvCu5.js";var i=e(),a=t();function o(e,t){let n=t.trim().toLocaleLowerCase();return n===``?[...e]:e.filter(e=>`${e.title} ${e.id}`.toLocaleLowerCase().includes(n))}function s(e,t,n){return n?[...e]:o(e,t)}function c(e){return`traceability-task-option-${e}`}function l({locale:e,loadingTaskId:t,hasMoreTasks:o,isLoadingTasks:l,onLoadMoreTasks:u,onSelectTask:d,onOpenChange:f,onOpenPrd:p,onOpenSpec:m,selectedTaskId:h,tasks:g,trace:_}){let v=[...g].sort((e,t)=>Date.parse(t.created_at)-Date.parse(e.created_at)),y=v.find(e=>e.id===h),[b,x]=(0,i.useState)(()=>y?.title??h),[S,C]=(0,i.useState)(!1),[w,T]=(0,i.useState)(!1),[E,D]=(0,i.useState)(0),[O,k]=(0,i.useState)(12),A=(0,i.useMemo)(()=>s(v,b,w),[b,w,v]),j=A.slice(0,O),M=j.length<A.length,N=`traceability-task-search`,P=`traceability-task-results`,F=e===`pt-BR`?`Task selecionada`:`Selected task`,I=e===`pt-BR`?`Buscar task por nome ou ID`:`Search task by name or ID`,L=S?A[E]?.id:void 0;(0,i.useEffect)(()=>{x(y?.title??h),D(0)},[y?.title,h]);let R=e=>{x(e.title),C(!1),T(!1),d(e.id)},z=(e=!0)=>{C(!0),T(!0),e&&(D(0),k(12))};return(0,a.jsxs)(`section`,{className:`traceability-workspace`,children:[(0,a.jsxs)(`header`,{children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`label`,{htmlFor:N,children:F}),(0,a.jsx)(`input`,{"aria-activedescendant":L===void 0?void 0:c(L),"aria-autocomplete":`list`,"aria-controls":P,"aria-expanded":S,"aria-label":I,id:N,onChange:e=>{x(e.target.value),D(0),T(!1),k(12),C(!0)},onClick:()=>z(),onFocus:()=>z(),onKeyDown:e=>{if(e.key===`ArrowDown`)e.preventDefault(),z(!1),D(e=>Math.min(e+1,Math.max(0,v.length-1)));else if(e.key===`ArrowUp`)e.preventDefault(),z(!1),D(e=>Math.max(0,e-1));else if(e.key===`Enter`&&S){let t=A[E];t!==void 0&&(e.preventDefault(),R(t))}else e.key===`Escape`&&C(!1)},role:`combobox`,type:`search`,value:b}),S?(0,a.jsx)(`div`,{"aria-label":I,className:`traceability-task-results`,id:P,onScroll:e=>{let{clientHeight:t,scrollHeight:n,scrollTop:i}=e.currentTarget;i+t<n-32||(o&&u(),j.length<A.length&&k(e=>r(e,A.length,12)))},role:`listbox`,children:A.length>0?j.map((e,t)=>(0,a.jsx)(`div`,{role:`presentation`,children:(0,a.jsx)(`button`,{"aria-selected":e.id===h,className:t===E?`is-active`:void 0,id:c(e.id),onClick:()=>R(e),role:`option`,type:`button`,children:(0,a.jsx)(`strong`,{children:e.title})})},e.id)):(0,a.jsx)(`div`,{className:`traceability-task-no-results`,role:`status`,children:e===`pt-BR`?`Nenhuma task encontrada.`:`No tasks found.`})}):null,S&&A.length>0?(0,a.jsx)(`p`,{"aria-live":`polite`,className:`traceability-task-pagination-status`,role:`status`,children:l?e===`pt-BR`?`Carregando mais tasks…`:`Loading more tasks…`:M||o?e===`pt-BR`?`${j.length} de ${A.length} tasks exibidas. Role para carregar mais.`:`${j.length} of ${A.length} tasks shown. Scroll to load more.`:e===`pt-BR`?`${A.length} tasks exibidas. Fim da lista.`:`${A.length} tasks shown. End of list.`}):null]}),(0,a.jsx)(`small`,{children:e===`pt-BR`?`Selecione pelo nome para visualizar o ciclo completo sem precisar do ID.`:`Select by name to inspect the complete lifecycle without knowing the ID.`})]}),t?(0,a.jsx)(`div`,{"aria-live":`polite`,className:`traceability-workspace-loading`,children:e===`pt-BR`?`Carregando as 6 etapas…`:`Loading all 6 stages…`}):_?(0,a.jsx)(n,{embedded:!0,locale:e,onClose:()=>void 0,onOpenChange:f,onOpenPrd:p,onOpenSpec:m,trace:_}):(0,a.jsx)(`p`,{children:e===`pt-BR`?`Nenhuma task disponível.`:`No task available.`})]})}export{l as TraceabilityWorkspace};