@zaip-ai/cli 3.4.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/services/adapters.d.ts +1 -1
  2. package/dist/services/adapters.js +1 -1
  3. package/package.json +1 -1
  4. package/templates/.agents/config/agents/discovery.json +1 -1
  5. package/templates/.agents/dashboard/.zaip-managed.json +54 -38
  6. package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-B9GWkEyN.css → ProjectSettingsPage-CQMhvzvJ.css} +1 -1
  7. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-D46WWIKr.js +3 -0
  8. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-CqK3Psfy.js → TraceabilityWorkspace-BKBpJyLh.js} +1 -1
  9. package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-Cl5EWx8R.js → index-Bas2TVju.js} +2 -2
  10. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-CxrG_wRI.css +1 -0
  11. package/templates/.agents/dashboard/apps/frontend/dist/index.html +2 -2
  12. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  13. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsCard.tsx +5 -0
  14. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsField.tsx +21 -0
  15. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.dom.test.ts +12 -1
  16. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.tsx +16 -28
  17. package/templates/.agents/dashboard/apps/frontend/src/ProjectStackEditor.tsx +25 -4
  18. package/templates/.agents/dashboard/apps/frontend/src/WorkspaceStatus.test.tsx +26 -8
  19. package/templates/.agents/dashboard/apps/frontend/src/WorkspaceStatus.tsx +9 -28
  20. package/templates/.agents/dashboard/apps/frontend/src/project-settings-copy.ts +13 -4
  21. package/templates/.agents/dashboard/apps/frontend/src/project-settings-model.ts +25 -1
  22. package/templates/.agents/dashboard/apps/frontend/src/project-settings-workspace.css +28 -0
  23. package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +39 -0
  24. package/templates/.agents/dashboard/apps/frontend/src/workspace-status.css +1 -14
  25. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  26. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  27. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  28. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  29. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  30. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  31. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +2 -2
  32. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +73 -73
  33. package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
  34. package/templates/.agents/dashboard/packages/local-runtime/scripts/validate-sqlite-read-model.mjs +38 -6
  35. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +2 -2
  36. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.test.ts +2 -3
  37. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.ts +1 -1
  38. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-pricing-provenance.test.ts +39 -0
  39. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-canonical.ts +2 -2
  40. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  41. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  42. package/templates/.agents/design/.zaip-managed.json +78 -50
  43. package/templates/.agents/design/apps/catalog/dist/assets/index-D1JaPXfV.css +1 -0
  44. package/templates/.agents/design/apps/catalog/dist/assets/index-D2miO4-O.js +72 -0
  45. package/templates/.agents/design/apps/catalog/dist/assets/index-mvD5mwcC.js +72 -0
  46. package/templates/.agents/design/apps/catalog/dist/index.html +2 -2
  47. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{CatalogShell-CvaciY0C.js → CatalogShell-BJ8b4xZr.js} +1 -1
  48. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{Color-6AOWCN3U-DwBV1A1Y.js → Color-6AOWCN3U-CQLHzznn.js} +1 -1
  49. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Components.stories-kxWwSKin.js +146 -0
  50. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DashboardFilters.stories-Chm_dXV7.js +9 -0
  51. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DashboardFiltersSpecimen-9CaCbGIZ.js +1 -0
  52. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{DesignSystem.stories-2OCgtT0I.js → DesignSystem.stories-ED52wFjY.js} +1 -1
  53. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{DocsRenderer-JROSPFPF-CODg0rSl.js → DocsRenderer-JROSPFPF-BcLgM80v.js} +4 -4
  54. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{Primitives-BmeKjJW4.js → Primitives-DV6Bpudf.js} +1 -1
  55. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{WithTooltip-7X4HQR7L-C5MI-3uZ.js → WithTooltip-7X4HQR7L-BKNiAz_E.js} +1 -1
  56. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{WorkspaceStatus.stories-Tb_iQqVK.js → WorkspaceStatus.stories-BL19HGOo.js} +2 -2
  57. package/templates/.agents/design/apps/catalog/dist/storybook/assets/WorkspaceStatusSpecimen-DQnSS6s9.js +1 -0
  58. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{chunk-DRQKCCAG-KSn75jcy.js → chunk-DRQKCCAG-DZBcXL-p.js} +1 -1
  59. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{chunk-W22LQPXL-C4LS1Thf.js → chunk-W22LQPXL-CF3y2mfo.js} +1 -1
  60. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{components-DV1BRgMY.js → components-BVjxMRGq.js} +5 -5
  61. package/templates/.agents/design/apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-Do9sjqiW.js +1 -0
  62. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{iframe-CBbPFx5G.js → iframe-CTWGZcEe.js} +4 -4
  63. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{react-18-C9IPGXtb.js → react-18-B9_a4mHb.js} +1 -1
  64. package/templates/.agents/design/apps/catalog/dist/storybook/assets/react-NrUxok8K.js +1 -0
  65. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{syntaxhighlighter-YFXUGROL-ZgDQjyWI.js → syntaxhighlighter-YFXUGROL-F_p8E2xc.js} +1 -1
  66. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{theming-Cx9-gH6l.js → theming-fbSD9ZLF.js} +1 -1
  67. package/templates/.agents/design/apps/catalog/dist/storybook/iframe.html +1 -1
  68. package/templates/.agents/design/apps/catalog/dist/storybook/index.json +1 -1
  69. package/templates/.agents/design/apps/catalog/dist/storybook/sb-addons/a11y-2/manager-bundle.js +3 -3
  70. package/templates/.agents/design/apps/catalog/dist/storybook/sb-addons/docs-1/manager-bundle.js +4 -4
  71. package/templates/.agents/design/apps/catalog/dist/storybook/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +60 -60
  72. package/templates/.agents/design/apps/catalog/package.json +1 -1
  73. package/templates/.agents/design/apps/catalog/src/components/StackVersionFieldSpecimen.tsx +70 -0
  74. package/templates/.agents/design/apps/catalog/src/components/WorkspaceStatusSpecimen.tsx +23 -7
  75. package/templates/.agents/design/apps/catalog/src/pages/ComponentsPage.tsx +20 -6
  76. package/templates/.agents/design/apps/catalog/src/stories/Components.stories.tsx +14 -0
  77. package/templates/.agents/design/apps/catalog/src/stories/WorkspaceStatus.stories.tsx +5 -2
  78. package/templates/.agents/design/apps/catalog/src/styles/components.css +1 -1
  79. package/templates/.agents/design/apps/catalog/src/styles/stack-version-field.css +17 -0
  80. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  81. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  82. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  83. package/templates/.agents/requirements/comparative-audit.md +1 -1
  84. package/templates/.agents/requirements/context-engine.md +1 -1
  85. package/templates/.agents/requirements/cost-observability.md +1 -1
  86. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  87. package/templates/.agents/requirements/data-export.md +1 -1
  88. package/templates/.agents/requirements/design-system.md +1 -1
  89. package/templates/.agents/requirements/execution-engine.md +1 -1
  90. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  91. package/templates/.agents/requirements/model-orchestration.md +1 -1
  92. package/templates/.agents/requirements/public-distribution.md +1 -1
  93. package/templates/.agents/requirements/software-architecture.md +1 -1
  94. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  95. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  96. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  97. package/templates/.agents/rules/workflow.md +1 -1
  98. package/templates/.agents/runtime/VERSION +1 -1
  99. package/templates/.agents/runtime/bin/zaip.mjs +9 -9
  100. package/templates/.agents/runtime/checksums.sha256 +5 -5
  101. package/templates/.agents/runtime/manifest.json +1 -1
  102. package/templates/.agents/runtime/provenance.json +4 -4
  103. package/templates/.agents/runtime/sbom.cdx.json +1 -1
  104. package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +5 -4
  105. package/templates/.agents/skills/zaip-skill-github-deploy/agents/openai.yaml +1 -1
  106. package/templates/.agents/skills/zaip-skill-github-deploy/references/deployment-workflow.md +7 -7
  107. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.mjs +1 -2
  108. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.test.mjs +9 -1
  109. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs +23 -0
  110. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.mjs +2 -6
  111. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.test.mjs +15 -1
  112. package/templates/.agents/zaip-aios/VERSION +1 -1
  113. package/templates/template-manifest.json +169 -125
  114. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-DVCPPV75.js +0 -3
  115. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-Cwylbh_N.css +0 -1
  116. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Components.stories-3dqK5g3e.js +0 -142
  117. package/templates/.agents/design/apps/catalog/dist/storybook/assets/WorkspaceStatusSpecimen-CD54pw0-.js +0 -1
  118. package/templates/.agents/design/apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-BU_68im1.js +0 -1
  119. package/templates/.agents/design/apps/catalog/dist/storybook/assets/react-CEv2qkJT.js +0 -1
@@ -1,5 +1,5 @@
1
1
  import { type PublicAgentCatalog } from "./agent-adapters.js";
2
- export declare const ADAPTERS_VERSION = "3.4.0";
2
+ export declare const ADAPTERS_VERSION = "3.5.0";
3
3
  export interface AdapterFile {
4
4
  path: string;
5
5
  content: string;
@@ -6,7 +6,7 @@ import { codexAgentConfig, parsePublicAgentCatalog, publicAgentAdapterFiles, } f
6
6
  import { formatAgentDiscovery, serializeAgentDiscovery } from "./agent-discovery.js";
7
7
  import { CODEX_GITHUB_DEPLOY_RULES, CODEX_SECURITY_RULES } from "./codex-rules.js";
8
8
  import { applyTransactionalWrites, assertSafeDestination } from "./transactional-files.js";
9
- export const ADAPTERS_VERSION = "3.4.0";
9
+ export const ADAPTERS_VERSION = "3.5.0";
10
10
  const ROOT_GUIDANCE = `# ZAIP-AIOS
11
11
 
12
12
  Read \`.agents/config/project.yaml\` first. Apply ZAIP only for literal boolean \`zaip.enabled: true\`, except framework maintenance or \`zaip enable\`. \`AGENTS.md\` is a bootstrap; canonical guidance lives in \`.agents/\`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/cli",
3
- "version": "3.4.0",
3
+ "version": "3.5.0",
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",
@@ -1,5 +1,5 @@
1
1
  {
2
- "_zaip_managed": "zaip-managed generated-do-not-edit source=agent-discovery version=3.4.0 sha256=d3bb47843a1305269aa379da3cfb901248c693d21a81b9d5a02afca92668a369",
2
+ "_zaip_managed": "zaip-managed generated-do-not-edit source=agent-discovery version=3.5.0 sha256=d3bb47843a1305269aa379da3cfb901248c693d21a81b9d5a02afca92668a369",
3
3
  "schema_version": 1,
4
4
  "source": {
5
5
  "path": ".agents/config/agents/catalog.yaml",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "3.4.0",
3
+ "version": "3.5.0",
4
4
  "files": [
5
5
  {
6
6
  "path": "DATA-DICTIONARY.md",
@@ -27,16 +27,16 @@
27
27
  "sha256": "9d8a261bb3cdf7f45d6d95de487114c4170fe5259ed32fd424f74012f9b65d74"
28
28
  },
29
29
  {
30
- "path": "apps/frontend/dist/assets/ProjectSettingsPage-B9GWkEyN.css",
31
- "sha256": "4e69173f663a11bf3b4baa7a6f4b694e99552219cf0a3d6a4bc7d3c6d53bfbdb"
30
+ "path": "apps/frontend/dist/assets/ProjectSettingsPage-CQMhvzvJ.css",
31
+ "sha256": "10e875c4e3ab6c252983822e25a85db3d707d903c0fcf39812909fdd1d013f48"
32
32
  },
33
33
  {
34
- "path": "apps/frontend/dist/assets/ProjectSettingsPage-DVCPPV75.js",
35
- "sha256": "d884ecfc3d9a4611d2928a8d6184a1a32ff9b72590daf1572ae40ddee447fb9c"
34
+ "path": "apps/frontend/dist/assets/ProjectSettingsPage-D46WWIKr.js",
35
+ "sha256": "1945d9fadeb055c4ed38115fbda65a00e6e80df3b74b9db06de956aa7b2d162a"
36
36
  },
37
37
  {
38
- "path": "apps/frontend/dist/assets/TraceabilityWorkspace-CqK3Psfy.js",
39
- "sha256": "8441dbe421f9a48e306b60779405ac1755963b36b790dccf10e1c0b5e51b8edf"
38
+ "path": "apps/frontend/dist/assets/TraceabilityWorkspace-BKBpJyLh.js",
39
+ "sha256": "fdb21d3f592e5baa9bc0e2a73f5a52ae9828a794d07dcdba1ff8436b4636b2b0"
40
40
  },
41
41
  {
42
42
  "path": "apps/frontend/dist/assets/TraceabilityWorkspace-DvvavDLY.css",
@@ -59,12 +59,12 @@
59
59
  "sha256": "12d70f2fbcba71ff76f47f9eff38aa6de57890881f62654545c6d6db8dae1cf7"
60
60
  },
61
61
  {
62
- "path": "apps/frontend/dist/assets/index-Cl5EWx8R.js",
63
- "sha256": "e14292b961c41133ef1accd5ee4b864f4075b970e2c9b13c257162fce6f31310"
62
+ "path": "apps/frontend/dist/assets/index-Bas2TVju.js",
63
+ "sha256": "a158426c97697e2fbcaa0b48ba7b9e2521c62e3afcaa3267109cb5cb01b46e44"
64
64
  },
65
65
  {
66
- "path": "apps/frontend/dist/assets/index-Cwylbh_N.css",
67
- "sha256": "c396938b3a8dc71716ca91f90be6bc097d638347b1e5e7d429c996f0a8a9ab4f"
66
+ "path": "apps/frontend/dist/assets/index-CxrG_wRI.css",
67
+ "sha256": "83e7fcf065b2ae7394de6b1aa543616b5a233c5ccc549190e96dbf3ad848a755"
68
68
  },
69
69
  {
70
70
  "path": "apps/frontend/dist/assets/logo_novo_azul-BBx5pA2B.png",
@@ -92,7 +92,7 @@
92
92
  },
93
93
  {
94
94
  "path": "apps/frontend/dist/index.html",
95
- "sha256": "a7420e0105401734d4d506857546fd36f81859ae1986da7ae080014a57b98303"
95
+ "sha256": "c370d152e4d8fd3f0089fe7047d8a92091836849b460871c30e74a8a2569b684"
96
96
  },
97
97
  {
98
98
  "path": "apps/frontend/dist/logo_novo_azul.png",
@@ -104,7 +104,7 @@
104
104
  },
105
105
  {
106
106
  "path": "apps/frontend/package.json",
107
- "sha256": "477e38a6ef6412999c2f70879d32d7eb3827a2c72dfc436308098f5244962142"
107
+ "sha256": "49686d11bec8bef3c9db1ba4b6e0a011d401c766f9664f5fe61ce452e79772f1"
108
108
  },
109
109
  {
110
110
  "path": "apps/frontend/playwright.dom.config.ts",
@@ -178,17 +178,25 @@
178
178
  "path": "apps/frontend/src/PricingSettingsDialog.tsx",
179
179
  "sha256": "9e5a2d91d7978f36438a3e945a923000cfa13457109a45cd9998452f79a8c069"
180
180
  },
181
+ {
182
+ "path": "apps/frontend/src/ProjectSettingsCard.tsx",
183
+ "sha256": "f3b89dc1ba5110fd5f8746f9b9db3f6750828460cea0988a75f395a475a87d29"
184
+ },
185
+ {
186
+ "path": "apps/frontend/src/ProjectSettingsField.tsx",
187
+ "sha256": "eca444ee08d0b7055a768e77b57b4502f3ad09c1c9534bbf0003075ac2cd57bf"
188
+ },
181
189
  {
182
190
  "path": "apps/frontend/src/ProjectSettingsPage.dom.test.ts",
183
- "sha256": "c63c5ff47e0b607a7a185a58b56d8114d1ecdaa996b2758dce8eecbff7d6f1c3"
191
+ "sha256": "825b2b84e971d31d6cc3c86e14f6fa017131d6666f431b38a9fed9d0672c0b35"
184
192
  },
185
193
  {
186
194
  "path": "apps/frontend/src/ProjectSettingsPage.tsx",
187
- "sha256": "25d43904be28f6af3597085cc6ce81b49e7480c4326907571270714eccf53ad7"
195
+ "sha256": "88480d8e71d1fb34716cb6c5a2146afecd45e044f818ffb8117a0f57815f1f88"
188
196
  },
189
197
  {
190
198
  "path": "apps/frontend/src/ProjectStackEditor.tsx",
191
- "sha256": "ca3db001ac297ba1258a89d8dd9e0f11f0f2160e599d99e18d1feeddd63b3837"
199
+ "sha256": "dba1868e20bd5cebb18b5aba8c4eed8a754d37f95ad4660bf1804dcb11994206"
192
200
  },
193
201
  {
194
202
  "path": "apps/frontend/src/TraceabilityWorkspace.dom.e2e.ts",
@@ -204,11 +212,11 @@
204
212
  },
205
213
  {
206
214
  "path": "apps/frontend/src/WorkspaceStatus.test.tsx",
207
- "sha256": "c5de8f87f217987ed7905875fc129c28c57ee02ff6029bc89ee515a3e0fedcd9"
215
+ "sha256": "70bf395e23b2a9c8f55015551312443da553bb5711614b51ba2684a99c72bbeb"
208
216
  },
209
217
  {
210
218
  "path": "apps/frontend/src/WorkspaceStatus.tsx",
211
- "sha256": "37b59438edae77ecf3aafb5234be86bc2454926b992792a4115e9fefaeb6ee8b"
219
+ "sha256": "dec4d91da3569d49b83cbfd1918e956a5b29463817d12e7f727ecae9d31773a2"
212
220
  },
213
221
  {
214
222
  "path": "apps/frontend/src/__tests__/app-composition-support.ts",
@@ -384,11 +392,11 @@
384
392
  },
385
393
  {
386
394
  "path": "apps/frontend/src/project-settings-copy.ts",
387
- "sha256": "e074fc56003e2340f87055a063ad105bd5437ae91c9a56c4cb3fea797fa1f846"
395
+ "sha256": "e76f05f185f42f3185c128b90f6bdfa0c3777ff8ef4479de86dbef10d0fb00d9"
388
396
  },
389
397
  {
390
398
  "path": "apps/frontend/src/project-settings-model.ts",
391
- "sha256": "05603d861b5a501f2602e37351c30c250542dc28562aafd158d3f0b7d36a7ba6"
399
+ "sha256": "5c26bfc20763785cc032d3e9561625f2e26890ef91875c38df5bab80e5b01a8d"
392
400
  },
393
401
  {
394
402
  "path": "apps/frontend/src/project-settings-page.css",
@@ -398,9 +406,13 @@
398
406
  "path": "apps/frontend/src/project-settings-state.css",
399
407
  "sha256": "0d720987c05cb9930d3a77b6776a623db229f2f00667a05708d8471dd6ad6151"
400
408
  },
409
+ {
410
+ "path": "apps/frontend/src/project-settings-workspace.css",
411
+ "sha256": "ab88a6ced92092d70937fd194d7025a13df335f694aefe5fe8e15f5e449cfe4c"
412
+ },
401
413
  {
402
414
  "path": "apps/frontend/src/project-settings.test.ts",
403
- "sha256": "bc11977adad66a8161d67337a0389d85438786c9f74a34049bf80cfe76d4958f"
415
+ "sha256": "292fea9f81f34f087c8983e13998a20a5ce80c22878f54a5b4d7fdc6ba1cb738"
404
416
  },
405
417
  {
406
418
  "path": "apps/frontend/src/project-stack-versions.css",
@@ -532,7 +544,7 @@
532
544
  },
533
545
  {
534
546
  "path": "apps/frontend/src/workspace-status.css",
535
- "sha256": "706e56effdb80a917e7426a64df7826fa7bf226a14870574ec58d890dbcc63df"
547
+ "sha256": "5ccd6e5b9446efd45b9cbef41f02eff215dd8d4cab9e8a01b06875722712c7b8"
536
548
  },
537
549
  {
538
550
  "path": "apps/frontend/tsconfig.json",
@@ -552,7 +564,7 @@
552
564
  },
553
565
  {
554
566
  "path": "modules/cost-monitor/package.json",
555
- "sha256": "9623bcf79087a80b21122e1dee0f001749864289bbd6b222b830ab8df18835a2"
567
+ "sha256": "d517afd20c66228c1e0f5d07b2e6e5af3822fcc1aa3b0f67008bb9fdc8935857"
556
568
  },
557
569
  {
558
570
  "path": "modules/cost-monitor/src/agent-groups.test.ts",
@@ -940,7 +952,7 @@
940
952
  },
941
953
  {
942
954
  "path": "modules/operations/package.json",
943
- "sha256": "f3ee80992d8ed294fd440e82a5599a495300f7dbe0b256b68c73cb06bb89cf20"
955
+ "sha256": "2a1b06ded101c655867f2e848935b2c8ffa841b3a9f18ab1a37a48ee4ecddaef"
944
956
  },
945
957
  {
946
958
  "path": "modules/operations/src/contracts.ts",
@@ -1612,7 +1624,7 @@
1612
1624
  },
1613
1625
  {
1614
1626
  "path": "modules/traceability/package.json",
1615
- "sha256": "a7246b2f595f4e34dfe875d35d1464f9a3c8fdc11e2c042e67e4ca9f77f79b91"
1627
+ "sha256": "2d8f257d3107cbd49694f9579d571b2d9c70fb89c67bc7b1f66f378a2595c464"
1616
1628
  },
1617
1629
  {
1618
1630
  "path": "modules/traceability/src/contracts.ts",
@@ -1684,7 +1696,7 @@
1684
1696
  },
1685
1697
  {
1686
1698
  "path": "packages/branding/package.json",
1687
- "sha256": "e6533c989dd35bd73ba5b0ade0fc6e86159caec2db82395fc73f5fccc4b6558d"
1699
+ "sha256": "25a00e99ade1e49f93cddb536d1dbe499babe5711949a2fd292777226592c7e5"
1688
1700
  },
1689
1701
  {
1690
1702
  "path": "packages/branding/src/index.ts",
@@ -1696,7 +1708,7 @@
1696
1708
  },
1697
1709
  {
1698
1710
  "path": "packages/contracts/package.json",
1699
- "sha256": "3e2c9fff2833f828ee393e22cb2c15bc796435af0376464fa388dd9f0adb7d3a"
1711
+ "sha256": "b886a275b4623bf2479bc08a7af8f70264ed6d68966e55aa510b78a869f9fbe5"
1700
1712
  },
1701
1713
  {
1702
1714
  "path": "packages/contracts/src/export.ts",
@@ -1716,7 +1728,7 @@
1716
1728
  },
1717
1729
  {
1718
1730
  "path": "packages/data-export/package.json",
1719
- "sha256": "9e19d125d153bdc5f5d2d9726a794b087b9f32f812680ccb07632d38e0609c27"
1731
+ "sha256": "23e4d8a21c2747c1b449126dfa40b508b48fd3934cd992a46f0e61b3bdc7c337"
1720
1732
  },
1721
1733
  {
1722
1734
  "path": "packages/data-export/src/index.test.ts",
@@ -1740,15 +1752,15 @@
1740
1752
  },
1741
1753
  {
1742
1754
  "path": "packages/local-runtime/dist/server.cjs",
1743
- "sha256": "901ac97aecfcb8cd04dd06831eab7a3b355730a4ad84359b85a54785c75df7d9"
1755
+ "sha256": "33722fcddce826fc39b9205ac86565a96a26b68859cc970e16a6ca9440d90ecc"
1744
1756
  },
1745
1757
  {
1746
1758
  "path": "packages/local-runtime/dist/sqlite-read-model.cjs",
1747
- "sha256": "77f4906a1d80f4e392b53841e8d04f8a8df934633979dd1818f5b775a2b3cdd3"
1759
+ "sha256": "cc163dadd7e40bc475c4839954eb7badd3adb7e1560f19572f993666d8b550aa"
1748
1760
  },
1749
1761
  {
1750
1762
  "path": "packages/local-runtime/package.json",
1751
- "sha256": "09dc8937186a191dcda9ff40a93fb6c14bfcd9402523c214a92fc16168202e24"
1763
+ "sha256": "cc30054c3de52e99fb74f23b9bcce68bcaeb126f3f3b97d38d95e2335df02e15"
1752
1764
  },
1753
1765
  {
1754
1766
  "path": "packages/local-runtime/scripts/build-sqlite-dashboard.mjs",
@@ -1776,7 +1788,7 @@
1776
1788
  },
1777
1789
  {
1778
1790
  "path": "packages/local-runtime/scripts/validate-sqlite-read-model.mjs",
1779
- "sha256": "6291d03116d06bd53cf6a9e1dc255795bc9681ccbaadd87cc3be540d743846f7"
1791
+ "sha256": "c67087ccf7fdfd130be952e59fc5d46ae819dff1f0a1701da190f8711a3ef275"
1780
1792
  },
1781
1793
  {
1782
1794
  "path": "packages/local-runtime/scripts/verify-persistent-launch.mjs",
@@ -1784,7 +1796,7 @@
1784
1796
  },
1785
1797
  {
1786
1798
  "path": "packages/local-runtime/server.mjs",
1787
- "sha256": "082c4ed29c210e2e6b75a953c48165941bdc6482024628cfa85a7871f68d7edd"
1799
+ "sha256": "47a2f79b86260b33569798fda864404153dc4b42159ccf48feda1e274d9cdc3f"
1788
1800
  },
1789
1801
  {
1790
1802
  "path": "packages/local-runtime/src/active-codex-telemetry.test.ts",
@@ -1824,11 +1836,11 @@
1824
1836
  },
1825
1837
  {
1826
1838
  "path": "packages/local-runtime/src/project-settings.test.ts",
1827
- "sha256": "176adcc03312c8eb33d2aba10b12d69f9f3ba290cc3c925f3a4cfacc0bc33802"
1839
+ "sha256": "5ac44e549cad7ae783034a732a4ae7c9f29d6514bc32f69f266b39c908f2f666"
1828
1840
  },
1829
1841
  {
1830
1842
  "path": "packages/local-runtime/src/project-settings.ts",
1831
- "sha256": "a69e4419a0d0ce654f37f6927a423521dab759481de1ffc52a3907b30052c61f"
1843
+ "sha256": "3d5d5bd9b0ba3c742066b72c1d964cec1cb5f86bd7d8cb423fdb658a5e390f94"
1832
1844
  },
1833
1845
  {
1834
1846
  "path": "packages/local-runtime/src/projection-refresh-diagnostics.ts",
@@ -2230,6 +2242,10 @@
2230
2242
  "path": "packages/local-runtime/src/sqlite-period-averages.ts",
2231
2243
  "sha256": "0b24fabb5ddda18e9af96bb1905311a6addccdb3532a44c208924656ba24a382"
2232
2244
  },
2245
+ {
2246
+ "path": "packages/local-runtime/src/sqlite-pricing-provenance.test.ts",
2247
+ "sha256": "617847a3eb4a732d3f6a087067774b4c267f2af7521d65a8c6dd1527b3900d38"
2248
+ },
2233
2249
  {
2234
2250
  "path": "packages/local-runtime/src/sqlite-provider-alias-parity.test.ts",
2235
2251
  "sha256": "0b2b9f504f10f9db8dbc9cc185bde8b26b7b47fec0ed3ad305993c328926e205"
@@ -2300,7 +2316,7 @@
2300
2316
  },
2301
2317
  {
2302
2318
  "path": "packages/local-runtime/src/sqlite-read-model-canonical.ts",
2303
- "sha256": "25317ff65ac72798301f8d4daed5b8b6ae0a1bb210d632c28a1b6ca81edb9643"
2319
+ "sha256": "d782df9746461ee34ff98b4a5eb22bc6d849d64c0fdb483450299d8e5f34fdda"
2304
2320
  },
2305
2321
  {
2306
2322
  "path": "packages/local-runtime/src/sqlite-read-model-counts-every-root-execution-day-returns.test.ts",
@@ -2528,7 +2544,7 @@
2528
2544
  },
2529
2545
  {
2530
2546
  "path": "packages/ui/package.json",
2531
- "sha256": "94edb4e64ff091383eece84209168de0882568a20f6aa480750fa3d20b3ed80d"
2547
+ "sha256": "c7c71e036329ea3414e3fdfe2fe51169dcad95d5265cadfc79b61d8e201b4f8c"
2532
2548
  },
2533
2549
  {
2534
2550
  "path": "packages/ui/src/DashboardHeader.test.mjs",
@@ -2636,7 +2652,7 @@
2636
2652
  },
2637
2653
  {
2638
2654
  "path": "tests/e2e/package.json",
2639
- "sha256": "b7caede89b96cfa40374f158090d3976b661cbb1cc5420f70bcb1bb7d4922621"
2655
+ "sha256": "2b94b45654c9decbcdb9e08f83c9a125c9d338a3d14449d359c0d33d8c6be3e7"
2640
2656
  },
2641
2657
  {
2642
2658
  "path": "tests/e2e/playwright.config.ts",
@@ -1 +1 @@
1
- .project-settings-page,.project-settings-state{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#0f172a;background:#f5f7fb;min-height:100vh;padding:clamp(20px,4vw,48px)}.project-settings-page form,.project-settings-state-card{width:min(1440px,100%);margin-inline:auto}.project-settings-state{place-items:center;display:grid}.project-settings-state-card{text-align:center;background:#fff;border:1px solid #dbe4ef;border-radius:24px;justify-items:center;gap:12px;max-width:420px;padding:clamp(32px,6vw,48px);display:grid;box-shadow:0 18px 48px #0f172a14}.project-settings-loader{border:3px solid #00b0f02e;border-top-color:#00b0f0;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite project-settings-spin}.project-settings-state-card h1{max-width:18ch;font-size:clamp(1.75rem,5vw,2.25rem)}.project-settings-state-error{color:#b91c1c}.project-settings-state-card button{width:auto;margin-top:12px}.project-settings-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.project-settings-header p,.project-settings-state p{color:#006b91;letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:700}.project-settings-header h1,.project-settings-state h1{letter-spacing:-.035em;margin:0;font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.15}.project-settings-header>div>span{color:#526176;max-width:760px;margin-top:10px;line-height:1.65;display:block}.project-settings-back,.project-settings-footer button,.project-settings-state button{color:#006b91;cursor:pointer;min-height:44px;font:inherit;background:0 0;border:1px solid #00b0f073;border-radius:999px;padding:10px 20px;font-weight:700}.project-settings-footer button{color:#042330;background:linear-gradient(135deg,#00b0f0 0%,#72f4fb 100%);border-color:#0000}.project-settings-back:focus-visible,.project-settings-footer button:focus-visible,.project-settings-state button:focus-visible,.project-settings-field input:focus-visible,.project-settings-field select:focus-visible,.project-settings-field textarea:focus-visible,.project-settings-toggle input:focus-visible+span{outline-offset:3px;outline:3px solid #00b0f06b}.project-settings-message,.project-settings-feature{border-radius:16px;margin-bottom:20px;padding:16px 18px}.project-settings-message.is-error{color:#b91c1c;background:#fef2f2;border:1px solid #dc26264d}.project-settings-message.is-success{color:#166534;background:#f0fdf4;border:1px solid #16a34a4d}.project-settings-feature{background:#00b0f014;border:1px solid #00b0f057;justify-content:space-between;align-items:center;gap:24px;display:flex}.project-settings-feature h2,.project-settings-feature p{margin:0}.project-settings-feature h2{font-size:1rem}.project-settings-summary{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.project-installation-health{color:#526176;grid-column:1/-1;margin:0;font-size:.82rem;font-weight:700}.project-settings-metric{overflow-wrap:anywhere;background:linear-gradient(145deg,#00b0f014,#fff 72%);border:1px solid #dbe4ef;border-radius:16px;align-content:center;gap:4px;min-width:0;min-height:94px;padding:14px 16px;display:grid}.project-settings-metric strong{color:#0f172a;font-variant-numeric:tabular-nums;font-size:1.75rem;line-height:1}.project-settings-metric span{color:#526176;font-size:.78rem;font-weight:700;line-height:1.35}.project-settings-metric.installation-metric.is-complete strong,.project-settings-metric.installation-metric.is-complete span{color:#166534}.project-settings-metric.installation-metric.is-incomplete{background:linear-gradient(145deg,#dc262614,#fff 72%);border-color:#dc26264d}.project-settings-metric.installation-metric.is-incomplete strong,.project-settings-metric.installation-metric.is-incomplete span{color:#b91c1c}.project-settings-metric.installation-metric.is-unknown,.project-settings-metric.installation-metric.is-unavailable,.project-settings-metric.installation-metric.is-not_applicable{background:#f8fafc}.installation-metric.is-unknown strong,.installation-metric.is-unavailable strong,.installation-metric.is-not_applicable strong{font-size:1.125rem;line-height:1.35}.project-settings-metric small{color:#64748b;font-size:.72rem}.project-settings-feature p{color:#526176;margin-top:5px}.project-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;margin-top:32px;display:grid}.project-settings-card{background:#fff;border:1px solid #dbe4ef;border-radius:24px;overflow:hidden;box-shadow:0 10px 28px #0f172a0f}.project-settings-card.is-wide{grid-column:1/-1}.project-identity-card .project-settings-fields{grid-template-columns:minmax(110px,.55fr) minmax(220px,1fr) minmax(220px,1fr) minmax(260px,1.2fr);align-items:end}.project-settings-card>h2{background:linear-gradient(145deg,#00b0f014,#0000 72%);border-bottom:1px solid #dbe4ef;margin:0;padding:18px 22px;font-size:1rem}.project-settings-fields{gap:16px;padding:20px 22px 22px;display:grid}.project-settings-fields .project-settings-fields{padding:0}.project-settings-fields.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.project-stack-guide{color:#526176;border-left:3px solid #00b0f0;margin:0 22px;padding:2px 0 2px 12px;line-height:1.5}.project-stack-editor{gap:22px;padding:20px 22px 22px;display:grid}.project-stack-editor>section{gap:10px;display:grid}.project-stack-editor h3{margin:0;font-size:.95rem}.project-stack-table{background:#fff;border:1px solid #dbe4ef;border-radius:14px;overflow:hidden}.project-stack-table-head,.project-stack-row{grid-template-columns:minmax(170px,.9fr) minmax(170px,1fr) minmax(120px,.55fr) minmax(250px,1.35fr);align-items:center;gap:10px;padding:10px 12px;display:grid}.project-stack-table-head{color:#526176;letter-spacing:.04em;text-transform:uppercase;background:#f1f5f9;font-size:.7rem;font-weight:800}.project-stack-row+.project-stack-row{border-top:1px solid #e8eef5}.project-stack-row strong{color:#334155;font-size:.78rem}.project-stack-row input{color:#0f172a;caret-color:#018abb;min-width:0;font:inherit;-webkit-text-fill-color:#0f172a;background-color:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;padding:9px 10px;font-size:.82rem}.project-stack-row input::placeholder{color:#94a3b8;opacity:1;-webkit-text-fill-color:#94a3b8}.project-stack-row input:hover{background-color:#fff;border-color:#a9bfd3}.project-stack-row input:focus-visible{outline-offset:1px;background-color:#fff;border-color:#00b0f0;outline:3px solid #00b0f033}.project-stack-row input:-webkit-autofill{-webkit-text-fill-color:#0f172a;box-shadow:inset 0 0 0 1000px #f8fafc}.project-stack-row input:-webkit-autofill:hover{-webkit-text-fill-color:#0f172a;box-shadow:inset 0 0 0 1000px #f8fafc}.project-stack-row input:-webkit-autofill:focus{-webkit-text-fill-color:#0f172a;box-shadow:inset 0 0 0 1000px #f8fafc}.project-stack-format-help{color:#3f5268;background:#eff8ff;border-radius:12px;gap:5px;padding:12px 14px;font-size:.78rem;line-height:1.45;display:grid}.project-stack-format-help p{margin:0}.project-settings-advanced{border:1px solid #dbe4ef;border-radius:16px;margin:0 22px 22px;padding:0 16px}.project-stack-architecture{background:#f8fafc;border:1px solid #dbe4ef;border-radius:16px;margin:0 22px 22px;padding:16px}.project-stack-architecture h3{margin:0 0 12px;font-size:.9rem}.project-stack-architecture>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.project-stack-architecture article{gap:5px;min-width:0;display:grid}.project-stack-architecture article strong{color:#334155;font-size:.78rem}.project-stack-architecture article span{color:#526176;font-size:.82rem;line-height:1.45}.project-settings-advanced summary{color:#334155;cursor:pointer;min-height:48px;padding-top:15px;font-weight:700}.project-settings-advanced .project-settings-field{padding-bottom:16px}.project-settings-guidance{color:#526176;border-left:3px solid #00b0f0;gap:10px;margin:20px 22px 0;padding:4px 0 4px 14px;line-height:1.55;display:grid}.project-settings-guidance p{margin:0}.project-settings-field{gap:8px;min-width:0;display:grid}.project-settings-field>span{color:#475569;letter-spacing:.04em;font-size:.75rem;font-weight:700}.project-settings-field input,.project-settings-field select,.project-settings-field textarea{color:#0f172a;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:16px;padding:12px 14px}.project-settings-field input[readonly]{color:#64748b;background:#f8fafc}.project-settings-field textarea{resize:vertical;font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:.82rem;line-height:1.5}.project-settings-field small{color:#64748b;line-height:1.45}.project-settings-toggle-field{gap:2px;width:fit-content;max-width:680px;display:grid}.project-settings-toggle-field>small{color:#64748b;padding-left:57px;line-height:1.45}.project-settings-toggle{cursor:pointer;align-items:center;gap:11px;width:fit-content;min-height:44px;display:inline-flex}.project-settings-toggle input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.project-settings-toggle>span{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:999px;width:46px;height:26px;transition:border-color .16s,background .16s;position:relative}.project-settings-toggle>span:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 2px 5px #0f172a3d}.project-settings-toggle input:checked+span{background:#00b0f0;border-color:#018abb}.project-settings-toggle input:checked+span:after{transform:translate(20px)}.project-settings-toggle strong{color:#334155;font-size:.88rem}.project-settings-fixed{background:#f8fafc;border:1px solid #dbe4ef;border-radius:16px;grid-column:1/-1;gap:7px;padding:14px 16px;display:grid}.project-settings-fixed span{color:#64748b;font-size:.82rem;line-height:1.5}.project-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.project-overview-item{background:#f8fafc;border:1px solid #dbe4ef;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.project-overview-item>div{gap:5px;min-width:0;display:grid}.project-overview-item code{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.project-overview-item>span{border-radius:999px;flex:none;padding:4px 8px;font-size:.75rem;font-weight:700}.project-overview-item>span.is-available{color:#166534;background:#f0fdf4}.project-overview-item>span.is-unavailable{color:#b91c1c;background:#fef2f2}.project-detected-versions{margin-top:18px}.project-detected-versions .project-settings-fields{padding:20px 22px 22px}.project-detected-versions .project-stack-versions{margin:0}.project-installation-toast{z-index:20;color:#b91c1c;background:#fef2f2;border:1px solid #dc262659;border-radius:16px;align-items:center;gap:12px;max-width:min(420px,100vw - 32px);padding:14px 16px;font-weight:700;line-height:1.45;display:flex;position:fixed;bottom:clamp(16px,4vw,48px);right:clamp(16px,4vw,48px);box-shadow:0 18px 48px #0f172a29}.project-installation-toast button{width:32px;min-height:32px;color:inherit;cursor:pointer;font:inherit;background:0 0;border:1px solid;border-radius:999px;flex:none;place-items:center;padding:0;font-size:1.25rem;line-height:1;display:grid}.project-installation-toast button:focus-visible{outline-offset:3px;outline:3px solid #00b0f06b}.project-settings-footer{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border:1px solid #dbe4ef;border-radius:24px;justify-content:space-between;align-items:center;gap:18px;margin-top:24px;padding:16px 20px;display:flex;position:sticky;bottom:0;box-shadow:0 18px 48px #0f172a14}.project-settings-footer span{color:#64748b;font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:.8rem}.project-settings-footer button:disabled{cursor:wait;opacity:.65}@media (width<=1100px){.project-identity-card .project-settings-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.project-settings-footer{position:static}.project-settings-header,.project-settings-feature,.project-settings-footer{flex-direction:column;align-items:stretch}.project-settings-grid,.project-settings-fields.two-columns,.project-identity-card .project-settings-fields,.project-overview{grid-template-columns:1fr}.project-settings-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.project-stack-architecture>div{grid-template-columns:1fr}.project-stack-table{background:0 0;border:0;gap:12px;display:grid;overflow:visible}.project-stack-table-head{display:none}.project-stack-row{background:#fff;border:1px solid #dbe4ef;border-radius:12px;grid-template-columns:1fr;gap:8px;padding:12px}.project-stack-row+.project-stack-row{border-top:1px solid #dbe4ef}.project-settings-card.is-wide{grid-column:auto}.project-settings-back,.project-settings-footer button{width:100%}}@media (prefers-reduced-motion:reduce){.project-settings-toggle>span,.project-settings-toggle>span:after{transition:none}.project-settings-loader{animation:none}}@keyframes project-settings-spin{to{transform:rotate(360deg)}}.project-stack-versions{margin:0 22px 22px}.project-stack-versions h3{margin:0 0 12px;font-size:.9rem}.project-stack-versions>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.project-stack-versions article{background:#f8fafc;border:1px solid #dbe4ef;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"identity badge""source source";align-items:start;gap:7px 12px;min-width:0;padding:9px 12px;display:grid}.project-stack-version-identity{grid-area:identity;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;min-width:0;display:grid}.project-stack-version-identity strong{color:#334155;min-width:0;font-size:.8rem}.project-stack-version-identity code{color:#0f172a;overflow-wrap:anywhere;min-width:0;font-size:.8rem}.project-stack-version-identity code+code{grid-column:2}.project-stack-versions article small{color:#64748b;overflow-wrap:anywhere;grid-area:source;min-width:0;font-size:.68rem;line-height:1.35}.project-stack-versions article span{border-radius:999px;grid-area:badge;width:fit-content;padding:3px 6px;font-size:.68rem;font-weight:700}.project-stack-versions .is-exact{color:#166534;background:#f0fdf4}.project-stack-versions .is-constraint{color:#9a3412;background:#fff7ed}.project-stack-versions .is-unavailable{color:#b91c1c;background:#fef2f2}@media (width<=820px){.project-stack-versions article{grid-template-columns:minmax(0,1fr);grid-template-areas:"identity""badge""source";align-items:start;gap:6px 10px;padding:10px 12px}.project-stack-versions>div,.project-stack-version-identity{grid-template-columns:1fr}.project-stack-version-identity code+code{grid-column:1}.project-stack-versions article span{align-self:start}.project-stack-versions article small{text-align:left}}
1
+ .project-settings-page,.project-settings-state{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#0f172a;background:#f5f7fb;min-height:100vh;padding:clamp(20px,4vw,48px)}.project-settings-page form,.project-settings-state-card{width:min(1440px,100%);margin-inline:auto}.project-settings-state{place-items:center;display:grid}.project-settings-state-card{text-align:center;background:#fff;border:1px solid #dbe4ef;border-radius:24px;justify-items:center;gap:12px;max-width:420px;padding:clamp(32px,6vw,48px);display:grid;box-shadow:0 18px 48px #0f172a14}.project-settings-loader{border:3px solid #00b0f02e;border-top-color:#00b0f0;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite project-settings-spin}.project-settings-state-card h1{max-width:18ch;font-size:clamp(1.75rem,5vw,2.25rem)}.project-settings-state-error{color:#b91c1c}.project-settings-state-card button{width:auto;margin-top:12px}.project-settings-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.project-settings-header p,.project-settings-state p{color:#006b91;letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:700}.project-settings-header h1,.project-settings-state h1{letter-spacing:-.035em;margin:0;font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.15}.project-settings-header>div>span{color:#526176;max-width:760px;margin-top:10px;line-height:1.65;display:block}.project-settings-back,.project-settings-footer button,.project-settings-state button{color:#006b91;cursor:pointer;min-height:44px;font:inherit;background:0 0;border:1px solid #00b0f073;border-radius:999px;padding:10px 20px;font-weight:700}.project-settings-footer button{color:#042330;background:linear-gradient(135deg,#00b0f0 0%,#72f4fb 100%);border-color:#0000}.project-settings-back:focus-visible,.project-settings-footer button:focus-visible,.project-settings-state button:focus-visible,.project-settings-field input:focus-visible,.project-settings-field select:focus-visible,.project-settings-field textarea:focus-visible,.project-settings-toggle input:focus-visible+span{outline-offset:3px;outline:3px solid #00b0f06b}.project-settings-message,.project-settings-feature{border-radius:16px;margin-bottom:20px;padding:16px 18px}.project-settings-message.is-error{color:#b91c1c;background:#fef2f2;border:1px solid #dc26264d}.project-settings-message.is-success{color:#166534;background:#f0fdf4;border:1px solid #16a34a4d}.project-settings-feature{background:#00b0f014;border:1px solid #00b0f057;justify-content:space-between;align-items:center;gap:24px;display:flex}.project-settings-feature h2,.project-settings-feature p{margin:0}.project-settings-feature h2{font-size:1rem}.project-settings-summary{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.project-installation-health{color:#526176;grid-column:1/-1;margin:0;font-size:.82rem;font-weight:700}.project-settings-metric{overflow-wrap:anywhere;background:linear-gradient(145deg,#00b0f014,#fff 72%);border:1px solid #dbe4ef;border-radius:16px;align-content:center;gap:4px;min-width:0;min-height:94px;padding:14px 16px;display:grid}.project-settings-metric strong{color:#0f172a;font-variant-numeric:tabular-nums;font-size:1.75rem;line-height:1}.project-settings-metric span{color:#526176;font-size:.78rem;font-weight:700;line-height:1.35}.project-settings-metric.installation-metric.is-complete strong,.project-settings-metric.installation-metric.is-complete span{color:#166534}.project-settings-metric.installation-metric.is-incomplete{background:linear-gradient(145deg,#dc262614,#fff 72%);border-color:#dc26264d}.project-settings-metric.installation-metric.is-incomplete strong,.project-settings-metric.installation-metric.is-incomplete span{color:#b91c1c}.project-settings-metric.installation-metric.is-unknown,.project-settings-metric.installation-metric.is-unavailable,.project-settings-metric.installation-metric.is-not_applicable{background:#f8fafc}.installation-metric.is-unknown strong,.installation-metric.is-unavailable strong,.installation-metric.is-not_applicable strong{font-size:1.125rem;line-height:1.35}.project-settings-metric small{color:#64748b;font-size:.72rem}.project-settings-feature p{color:#526176;margin-top:5px}.project-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;margin-top:32px;display:grid}.project-settings-card{background:#fff;border:1px solid #dbe4ef;border-radius:24px;overflow:hidden;box-shadow:0 10px 28px #0f172a0f}.project-settings-card.is-wide{grid-column:1/-1}.project-identity-card .project-settings-fields{grid-template-columns:minmax(110px,.55fr) minmax(220px,1fr) minmax(220px,1fr) minmax(260px,1.2fr);align-items:end}.project-settings-card>h2{background:linear-gradient(145deg,#00b0f014,#0000 72%);border-bottom:1px solid #dbe4ef;margin:0;padding:18px 22px;font-size:1rem}.project-settings-fields{gap:16px;padding:20px 22px 22px;display:grid}.project-settings-fields .project-settings-fields{padding:0}.project-settings-fields.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.project-stack-guide{color:#526176;border-left:3px solid #00b0f0;margin:0 22px;padding:2px 0 2px 12px;line-height:1.5}.project-stack-editor{gap:22px;padding:20px 22px 22px;display:grid}.project-stack-editor>section{gap:10px;display:grid}.project-stack-editor h3{margin:0;font-size:.95rem}.project-stack-table{background:#fff;border:1px solid #dbe4ef;border-radius:14px;overflow:hidden}.project-stack-table-head,.project-stack-row{grid-template-columns:minmax(170px,.9fr) minmax(170px,1fr) minmax(120px,.55fr) minmax(250px,1.35fr);align-items:center;gap:10px;padding:10px 12px;display:grid}.project-stack-table-head{color:#526176;letter-spacing:.04em;text-transform:uppercase;background:#f1f5f9;font-size:.7rem;font-weight:800}.project-stack-row+.project-stack-row{border-top:1px solid #e8eef5}.project-stack-row strong{color:#334155;font-size:.78rem}.project-stack-row input{color:#0f172a;caret-color:#018abb;min-width:0;font:inherit;-webkit-text-fill-color:#0f172a;background-color:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;padding:9px 10px;font-size:.82rem}.project-stack-row input::placeholder{color:#94a3b8;opacity:1;-webkit-text-fill-color:#94a3b8}.project-stack-row input:hover{background-color:#fff;border-color:#a9bfd3}.project-stack-row input:focus-visible{outline-offset:1px;background-color:#fff;border-color:#00b0f0;outline:3px solid #00b0f033}.project-stack-row input:-webkit-autofill{-webkit-text-fill-color:#0f172a;box-shadow:inset 0 0 0 1000px #f8fafc}.project-stack-row input:-webkit-autofill:hover{-webkit-text-fill-color:#0f172a;box-shadow:inset 0 0 0 1000px #f8fafc}.project-stack-row input:-webkit-autofill:focus{-webkit-text-fill-color:#0f172a;box-shadow:inset 0 0 0 1000px #f8fafc}.project-stack-format-help{color:#3f5268;background:#eff8ff;border-radius:12px;gap:5px;padding:12px 14px;font-size:.78rem;line-height:1.45;display:grid}.project-stack-format-help p{margin:0}.project-settings-advanced{border:1px solid #dbe4ef;border-radius:16px;margin:0 22px 22px;padding:0 16px}.project-stack-architecture{background:#f8fafc;border:1px solid #dbe4ef;border-radius:16px;margin:0 22px 22px;padding:16px}.project-stack-architecture h3{margin:0 0 12px;font-size:.9rem}.project-stack-architecture>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.project-stack-architecture article{gap:5px;min-width:0;display:grid}.project-stack-architecture article strong{color:#334155;font-size:.78rem}.project-stack-architecture article span{color:#526176;font-size:.82rem;line-height:1.45}.project-settings-advanced summary{color:#334155;cursor:pointer;min-height:48px;padding-top:15px;font-weight:700}.project-settings-advanced .project-settings-field{padding-bottom:16px}.project-settings-guidance{color:#526176;border-left:3px solid #00b0f0;gap:10px;margin:20px 22px 0;padding:4px 0 4px 14px;line-height:1.55;display:grid}.project-settings-guidance p{margin:0}.project-settings-field{gap:8px;min-width:0;display:grid}.project-settings-field>span{color:#475569;letter-spacing:.04em;font-size:.75rem;font-weight:700}.project-settings-field input,.project-settings-field select,.project-settings-field textarea{color:#0f172a;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:16px;padding:12px 14px}.project-settings-field input[readonly]{color:#64748b;background:#f8fafc}.project-settings-field textarea{resize:vertical;font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:.82rem;line-height:1.5}.project-settings-field small{color:#64748b;line-height:1.45}.project-settings-toggle-field{gap:2px;width:fit-content;max-width:680px;display:grid}.project-settings-toggle-field>small{color:#64748b;padding-left:57px;line-height:1.45}.project-settings-toggle{cursor:pointer;align-items:center;gap:11px;width:fit-content;min-height:44px;display:inline-flex}.project-settings-toggle input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.project-settings-toggle>span{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:999px;width:46px;height:26px;transition:border-color .16s,background .16s;position:relative}.project-settings-toggle>span:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 2px 5px #0f172a3d}.project-settings-toggle input:checked+span{background:#00b0f0;border-color:#018abb}.project-settings-toggle input:checked+span:after{transform:translate(20px)}.project-settings-toggle strong{color:#334155;font-size:.88rem}.project-settings-fixed{background:#f8fafc;border:1px solid #dbe4ef;border-radius:16px;grid-column:1/-1;gap:7px;padding:14px 16px;display:grid}.project-settings-fixed span{color:#64748b;font-size:.82rem;line-height:1.5}.project-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.project-overview-item{background:#f8fafc;border:1px solid #dbe4ef;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.project-overview-item>div{gap:5px;min-width:0;display:grid}.project-overview-item code{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.project-overview-item>span{border-radius:999px;flex:none;padding:4px 8px;font-size:.75rem;font-weight:700}.project-overview-item>span.is-available{color:#166534;background:#f0fdf4}.project-overview-item>span.is-unavailable{color:#b91c1c;background:#fef2f2}.project-detected-versions{margin-top:18px}.project-detected-versions .project-settings-fields{padding:20px 22px 22px}.project-detected-versions .project-stack-versions{margin:0}.project-installation-toast{z-index:20;color:#b91c1c;background:#fef2f2;border:1px solid #dc262659;border-radius:16px;align-items:center;gap:12px;max-width:min(420px,100vw - 32px);padding:14px 16px;font-weight:700;line-height:1.45;display:flex;position:fixed;bottom:clamp(16px,4vw,48px);right:clamp(16px,4vw,48px);box-shadow:0 18px 48px #0f172a29}.project-installation-toast button{width:32px;min-height:32px;color:inherit;cursor:pointer;font:inherit;background:0 0;border:1px solid;border-radius:999px;flex:none;place-items:center;padding:0;font-size:1.25rem;line-height:1;display:grid}.project-installation-toast button:focus-visible{outline-offset:3px;outline:3px solid #00b0f06b}.project-settings-footer{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border:1px solid #dbe4ef;border-radius:24px;justify-content:space-between;align-items:center;gap:18px;margin-top:24px;padding:16px 20px;display:flex;position:sticky;bottom:0;box-shadow:0 18px 48px #0f172a14}.project-settings-footer span{color:#64748b;font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:.8rem}.project-settings-footer button:disabled{cursor:wait;opacity:.65}@media (width<=1100px){.project-identity-card .project-settings-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.project-settings-footer{position:static}.project-settings-header,.project-settings-feature,.project-settings-footer{flex-direction:column;align-items:stretch}.project-settings-grid,.project-settings-fields.two-columns,.project-identity-card .project-settings-fields,.project-overview{grid-template-columns:1fr}.project-settings-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.project-stack-architecture>div{grid-template-columns:1fr}.project-stack-table{background:0 0;border:0;gap:12px;display:grid;overflow:visible}.project-stack-table-head{display:none}.project-stack-row{background:#fff;border:1px solid #dbe4ef;border-radius:12px;grid-template-columns:1fr;gap:8px;padding:12px}.project-stack-row+.project-stack-row{border-top:1px solid #dbe4ef}.project-settings-card.is-wide{grid-column:auto}.project-settings-back,.project-settings-footer button{width:100%}}@media (prefers-reduced-motion:reduce){.project-settings-toggle>span,.project-settings-toggle>span:after{transition:none}.project-settings-loader{animation:none}}@keyframes project-settings-spin{to{transform:rotate(360deg)}}.project-stack-versions{margin:0 22px 22px}.project-stack-versions h3{margin:0 0 12px;font-size:.9rem}.project-stack-versions>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.project-stack-versions article{background:#f8fafc;border:1px solid #dbe4ef;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"identity badge""source source";align-items:start;gap:7px 12px;min-width:0;padding:9px 12px;display:grid}.project-stack-version-identity{grid-area:identity;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;min-width:0;display:grid}.project-stack-version-identity strong{color:#334155;min-width:0;font-size:.8rem}.project-stack-version-identity code{color:#0f172a;overflow-wrap:anywhere;min-width:0;font-size:.8rem}.project-stack-version-identity code+code{grid-column:2}.project-stack-versions article small{color:#64748b;overflow-wrap:anywhere;grid-area:source;min-width:0;font-size:.68rem;line-height:1.35}.project-stack-versions article span{border-radius:999px;grid-area:badge;width:fit-content;padding:3px 6px;font-size:.68rem;font-weight:700}.project-stack-versions .is-exact{color:#166534;background:#f0fdf4}.project-stack-versions .is-constraint{color:#9a3412;background:#fff7ed}.project-stack-versions .is-unavailable{color:#b91c1c;background:#fef2f2}@media (width<=820px){.project-stack-versions article{grid-template-columns:minmax(0,1fr);grid-template-areas:"identity""badge""source";align-items:start;gap:6px 10px;padding:10px 12px}.project-stack-versions>div,.project-stack-version-identity{grid-template-columns:1fr}.project-stack-version-identity code+code{grid-column:1}.project-stack-versions article span{align-self:start}.project-stack-versions article small{text-align:left}}.project-settings-workspace-path{overflow-wrap:anywhere;color:#0f172a;background:#f8fafc;border:1px solid #cbd7e5;border-radius:12px;min-width:0;padding:10px 12px;display:block}.project-settings-workspace-field{grid-column:1/-1}.project-stack-row input.is-reference-value{color:#075985;-webkit-text-fill-color:#075985;background-color:#effaff;border-color:#9edcf2;font-weight:650}.project-stack-row input.is-reference-value:hover,.project-stack-row input.is-reference-value:focus-visible{background-color:#f5fcff;border-color:#00b0f0}
@@ -0,0 +1,3 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,_ as n,v as r,w as i,y as a}from"./cost-monitor-j3aUYH5G.js";import{t as o}from"./index-Bas2TVju.js";var s=e(t(),1),c=[{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:`Terraform`,scope:`backend`},{id:`backend_hosting`,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`},{id:`prometheus`,defaultName:`Prometheus`,scope:`observability`},{id:`grafana`,defaultName:`Grafana`,scope:`observability`},{id:`uptime_kuma`,defaultName:`Uptime Kuma`,scope:`observability`},{id:`cadvisor`,defaultName:`cAdvisor`,scope:`observability`},{id:`node_exporter`,defaultName:`node-exporter`,scope:`observability`},{id:`redis_exporter`,defaultName:`Redis Exporter`,scope:`observability`},{id:`k6`,defaultName:`k6`,scope:`testing`},{id:`autocannon`,defaultName:`autocannon`,scope:`testing`}],l=new Set([`database`,`auth_storage`,`backend_hosting`,`frontend_hosting`,`site_hosting`]);function u(e){return l.has(e)}function d(e){let{languages:t,components:n,...r}=e.stack.overrides,i=b(n)?n:{};return{components:Object.fromEntries(c.map(e=>{let t=i[e.id],n=b(t)?t:{};return[e.id,{name:y(n.name)||e.defaultName,version:y(n.version),reference:y(n.reference)}]})),otherOverrides:JSON.stringify(r,null,2)}}function f(e,t){let n=new Map(t.filter(e=>e.installation===`installed`&&e.version!==null).map(e=>[e.name.toLowerCase(),e.version]));return Object.fromEntries(c.map(t=>{let r=e[t.id],i=n.get(_(t.id));return[t.id,r.version!==``||i===void 0?r:{...r,version:i}]}))}function p(e,t,n){if(e.autonomy?.version===1&&e.execution&&e.execution.runtime!==`manual`&&e.execution.autonomous.provider!==`codex`)throw Error(`Autonomy-v1 exige Codex na execução gerenciada / requires Codex for managed execution. Selecione Codex; conversas diretas continuam disponíveis.`);let r=JSON.parse(n);if(!b(r))throw Error(`Demais overrides deve ser um objeto JSON.`);let{languages:i,components:a,...o}=r;for(let e of c){let n=t[e.id].version.trim();if(n!==``&&!u(e.id)&&!/^\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.`);if(u(e.id)&&(n.length>120||/[\r\n]/.test(n)))throw Error(`A referência de ${t[e.id].name||e.defaultName} deve ter uma única linha com até 120 caracteres.`)}let s=Object.fromEntries(c.map(e=>[e.id,{name:t[e.id].name.trim()||e.defaultName,version:t[e.id].version.trim(),reference:t[e.id].reference.trim()}])),l=b(e.stack.overrides.components)?e.stack.overrides.components:{};return{...e,stack:{...e.stack,overrides:{...o,components:{...l,...s},languages:{frontend:v(s,`frontend`),backend:v(s,`backend`),site:v(s,`site`)}}}}}function m(e){return[...new Set(e.split(/\r?\n/).map(e=>e.trim()).filter(Boolean))]}function h(){return{runtime:`autonomous`,autonomous:{provider:`codex`,model:`gpt-5.6-terra`,max_parallelism:1,lease_ms:6e4}}}function g(e){let t=e?.match(/^v?(\d+)\.(\d+)\.\d+(?:[-+][0-9A-Za-z.-]+)?$/);return t?`v${t[1]}.${t[2]}`:null}function _(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 v(e,t){return[...new Set(c.filter(e=>e.scope===t).map(t=>e[t.id].name.trim()).filter(Boolean))]}function y(e){return typeof e==`string`?e:``}function b(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var x=i(),S={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`},backend_hosting:{pt:`Hospedagem do backend`,en:`Backend hosting`},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`},prometheus:{pt:`Coleta de métricas`,en:`Metrics collection`},grafana:{pt:`Dashboards`,en:`Dashboards`},uptime_kuma:{pt:`Monitoramento de disponibilidade`,en:`Availability monitoring`},cadvisor:{pt:`Métricas de containers`,en:`Container metrics`},node_exporter:{pt:`Métricas de host`,en:`Host metrics`},redis_exporter:{pt:`Métricas do Redis`,en:`Redis metrics`},k6:{pt:`Teste de carga`,en:`Load testing`},autocannon:{pt:`Teste HTTP de carga`,en:`HTTP load testing`}};function C({components:e,locale:t,onChange:n,referenceHint:r,versionHint:i}){let a=[{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`},{scope:`observability`,title:t===`pt-BR`?`Observabilidade`:`Observability`},{scope:`testing`,title:t===`pt-BR`?`Testes sob demanda`:`On-demand testing`}],o=(t,r,i)=>n({...e,[t]:{...e[t],[r]:i}});return(0,x.jsxs)(`div`,{className:`project-stack-editor`,children:[a.map(n=>(0,x.jsxs)(`section`,{children:[(0,x.jsx)(`h3`,{children:n.title}),(0,x.jsxs)(`div`,{className:`project-stack-table`,children:[(0,x.jsxs)(`div`,{className:`project-stack-table-head`,"aria-hidden":`true`,children:[(0,x.jsx)(`span`,{children:`Item`}),(0,x.jsx)(`span`,{children:t===`pt-BR`?`Tecnologia`:`Technology`}),(0,x.jsx)(`span`,{children:t===`pt-BR`?`Versão atual / referência`:`Current version / reference`}),(0,x.jsx)(`span`,{children:t===`pt-BR`?`Pacote / imagem / serviço`:`Package / image / service`})]}),c.filter(e=>e.scope===n.scope).map(n=>(0,x.jsxs)(`div`,{className:`project-stack-row`,children:[(0,x.jsx)(`strong`,{children:S[n.id][t===`pt-BR`?`pt`:`en`]}),(0,x.jsx)(`input`,{"aria-label":`${S[n.id].pt}: tecnologia`,value:e[n.id].name,onChange:e=>o(n.id,`name`,e.target.value)}),(0,x.jsx)(`input`,{"aria-label":`${S[n.id].pt}: ${u(n.id)?`versão atual ou referência`:`versão exata`}`,className:u(n.id)?`is-reference-value`:void 0,inputMode:u(n.id)?`text`:`decimal`,placeholder:u(n.id)?t===`pt-BR`?`Serviço em nuvem`:`Cloud service`:`x.y.z`,title:u(n.id)?e[n.id].version:void 0,value:e[n.id].version,onChange:e=>o(n.id,`version`,e.target.value)}),(0,x.jsx)(`input`,{"aria-label":`${S[n.id].pt}: referência`,placeholder:`npm:pacote ou service:nome`,value:e[n.id].reference,onChange:e=>o(n.id,`reference`,e.target.value)})]},n.id))]})]},n.scope)),(0,x.jsxs)(`div`,{className:`project-stack-format-help`,children:[(0,x.jsxs)(`p`,{children:[(0,x.jsx)(`strong`,{children:t===`pt-BR`?`Formato da versão:`:`Version format:`}),` `,i]}),(0,x.jsxs)(`p`,{children:[(0,x.jsx)(`strong`,{children:t===`pt-BR`?`Formato da referência:`:`Reference format:`}),` `,r]})]})]})}function w({components:e,showTitle:t=!0,text:n}){return e.length===0?null:(0,x.jsxs)(`section`,{className:`project-stack-versions`,"aria-label":n.versions,children:[t?(0,x.jsx)(`h3`,{children:n.versions}):null,(0,x.jsx)(`div`,{children:e.map(e=>(0,x.jsxs)(`article`,{children:[(0,x.jsxs)(`div`,{className:`project-stack-version-identity`,children:[(0,x.jsx)(`strong`,{children:e.name}),(0,x.jsxs)(`code`,{children:[n.current,`: `,e.version??n.versionUnavailable]}),e.configured_version!==null&&e.configured_version!==e.version?(0,x.jsxs)(`code`,{children:[n.configured,`: `,e.configured_version]}):null]}),(0,x.jsx)(`span`,{className:`is-${e.verification}`,children:e.installation===`runtime`?n.runtime:e.installation===`installed`?n.installed:e.installation===`bundled`?n.bundled:n.missing}),e.source?(0,x.jsx)(`small`,{children:e.source}):null]},e.name))})]})}function T({children:e,className:t=``,title:n}){return(0,x.jsxs)(`section`,{className:`project-settings-card ${t}`,children:[(0,x.jsx)(`h2`,{children:n}),(0,x.jsx)(`div`,{className:`project-settings-fields`,children:e})]})}function E({children:e,className:t=``,hint:n,label:r}){return(0,x.jsxs)(`div`,{className:`project-settings-field ${t}`,children:[(0,x.jsx)(`span`,{children:r}),e,n?(0,x.jsx)(`small`,{children:n}):null]})}function D(e){return{health:e.health??{state:`unknown`,scope:`settings_runtime`},dependencies:O(e.dependencies,e.dependencies?.installed),documentation:O(e.documentation,e.documentation?.available),profile:e.installation_profile??null,hasMissingDependencies:(k(e.dependencies?.missing)??0)>0}}function O(e,t){let n=e?.state??`unknown`,r=k(e?.percent);return{completed:k(t),total:k(e?.applicable),percentage:(n===`complete`||n===`incomplete`)&&r!==null&&r<=100?r:null,state:n}}function k(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0?e:null}function A(e){return e.filter(e=>![`database`,`installation`].includes(e.id))}var j={"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…`,loadError:`Não foi possível carregar as configurações do projeto.`,retry:`Tentar novamente`,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`,workspacePath:`Caminho do projeto`,workspacePathHint:`Pasta local usada por esta instância do Dashboard.`,workspacePathLoading:`Identificando caminho…`,workspacePathUnavailable:`Caminho indisponível`,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:`Managed gerencia PRDs/SPECs e mantém avulsas diretas. Manual não inicia provider; autonomous permite execução gerenciada também para Task avulsa por comando explícito.`,providerHint:`Provider que inicia os agentes da execução autônoma: Codex ou Claude.`,autonomyProviderHint:`Autonomy-v1 exige Codex para execução gerenciada. Claude continua disponível em conversas diretas ou no protocolo legado.`,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:`Tempo de lease configurado para o coordenador autônomo.`,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`,metricLabels:{agents:`Agentes`,squads:`Squads`,skills:`Skills`,rules:`Rules`,hooks:`Hooks`},areaLabels:{brandbook:`Brandbook`,design_system:`Design System`,software_architecture:`Arquitetura de Software`,growth_strategy:`Estratégia de Growth`,marketing_strategy:`Estratégia de Marketing`,sales_playbook:`Playbook de Sales`},available:`Criado`,artifactUnavailable:`Ainda não criado`,componentGuide:`Preencha cada responsabilidade separadamente. Use a versão exata do software e, para serviços em nuvem ou hospedagem, informe Serviço em nuvem.`,versionHint:`Software: 22.16.0 ou 17.6, sem prefixos (^, ~, >=). Serviço gerenciado: Serviço em nuvem. Hospedagem: Serviço em nuvem.`,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 detectadas no workspace`,exact:`Verificada`,constraint:`Requisito`,versionUnavailable:`Não encontrada`,runtime:`Runtime do Dashboard`,installed:`Instalado no projeto`,missing:`Ausente no projeto`,bundled:`Empacotado no Dashboard`,current:`Atual`,configured:`Configurado`,health:`Saúde`,dependencies:`Dependências técnicas`,documentation:`Documentação`,unknown:`Desconhecido`,unavailable:`Indisponível`,notApplicable:`Não aplicável`,complete:`Completo`,incomplete:`Incompleto`,incompleteInstallation:`Há dependências técnicas locais ausentes neste computador.`,dismiss:`Fechar aviso`,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…`,loadError:`Project settings could not be loaded.`,retry:`Try again`,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`,workspacePath:`Project path`,workspacePathHint:`Local folder used by this Dashboard instance.`,workspacePathLoading:`Identifying path…`,workspacePathUnavailable:`Path unavailable`,stack:`Stack and languages`,execution:`Execution`,assurance:`Assurance`,executionToggleHint:`Writes or removes the execution block. Without it, the project uses manual execution.`,runtimeHint:`Managed runs PRDs/SPECs while standalone Tasks stay direct. Manual never starts a provider; autonomous also permits explicitly commanded managed standalone execution.`,providerHint:`Provider that starts autonomous execution agents: Codex or Claude.`,autonomyProviderHint:`Autonomy-v1 requires Codex for managed execution. Claude remains available for direct conversations or the legacy protocol.`,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:`Lease duration configured for the autonomous coordinator.`,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`,metricLabels:{agents:`Agents`,squads:`Squads`,skills:`Skills`,rules:`Rules`,hooks:`Hooks`},areaLabels:{brandbook:`Brandbook`,design_system:`Design System`,software_architecture:`Software Architecture`,growth_strategy:`Growth Strategy`,marketing_strategy:`Marketing Strategy`,sales_playbook:`Sales Playbook`},available:`Created`,artifactUnavailable:`Not created yet`,componentGuide:`Fill each responsibility separately. Use an exact software version and, for cloud services or hosting, enter Cloud service.`,versionHint:`Software: 22.16.0 or 17.6, without prefixes (^, ~, >=). Managed service: Cloud service. Hosting: Cloud service.`,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 detected in the workspace`,exact:`Verified`,constraint:`Requirement`,versionUnavailable:`Not found`,runtime:`Dashboard runtime`,installed:`Installed in project`,missing:`Missing from project`,bundled:`Bundled in Dashboard`,current:`Current`,configured:`Configured`,health:`Health`,dependencies:`Technical dependencies`,documentation:`Documentation`,unknown:`Unknown`,unavailable:`Unavailable`,notApplicable:`Not applicable`,complete:`Complete`,incomplete:`Incomplete`,incompleteInstallation:`Some local technical dependencies are missing on this computer.`,dismiss:`Dismiss notification`,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.`}},M=`autonomy-v1`,N=n([`essential`,`balanced`,`persistent`]),P=a({version:r(1),preset:N}).strict(),F=Object.freeze({essential:Object.freeze({label:`Essencial`,attempts:4,replans:1,automatic_astra:!1}),balanced:Object.freeze({label:`Equilibrado`,attempts:10,replans:3,automatic_astra:!0}),persistent:Object.freeze({label:`Persistente — ilimitado`,attempts:null,replans:null,automatic_astra:!0})});function I(e){let t=P.parse(e??{version:1,preset:`balanced`});return Object.freeze({version:M,preset:t.preset,...F[t.preset],repairs_per_replan:3})}function L({value:e,onChange:t,disabled:n=!1,locale:r=`pt-BR`}){let i=(0,s.useId)(),a=I(e),o=r===`pt-BR`;return(0,x.jsxs)(`div`,{children:[!e&&(0,x.jsx)(`p`,{children:o?`Projeto legado: selecione e salve um perfil para adotar os novos controles nas novas Tasks.`:`Legacy project: select and save a preset to adopt the new controls for new Tasks.`}),(0,x.jsxs)(`label`,{className:`project-settings-field`,htmlFor:i,children:[(0,x.jsx)(`strong`,{children:o?`Perfil de autonomia`:`Autonomy preset`}),(0,x.jsx)(`select`,{id:i,"aria-describedby":`${i}-detail`,disabled:n,value:a.preset,onChange:e=>t({version:1,preset:N.parse(e.target.value)}),children:N.options.map(e=>(0,x.jsx)(`option`,{value:e,children:o?F[e].label:{essential:`Essential`,balanced:`Balanced`,persistent:`Persistent — unlimited`}[e]},e))})]}),(0,x.jsx)(`p`,{id:`${i}-detail`,role:`status`,children:a.attempts===null?o?`Sem limite de tentativas ou replanejamentos. Pode continuar indefinidamente e consumir créditos até você cancelar.`:`No attempt or replanning limit. May continue indefinitely and consume credits until you cancel.`:o?`${a.attempts} execuções por Task (1 inicial + ${a.attempts-1} reparações), até ${a.replans} replanejamento(s). Sem abandono por tempo.`:`${a.attempts} executions per Task (1 initial + ${a.attempts-1} repairs), up to ${a.replans} replan(s). No time-based abandonment.`}),(0,x.jsx)(`p`,{children:a.automatic_astra?o?`Replanejamento: Sol/high no primeiro, Astra/high a partir do segundo. Astra/high pode executar a partir do terceiro.`:`Replanning: Sol/high first, Astra/high from the second. Astra/high may execute from the third.`:o?`Nunca usa Astra automaticamente. Exceção: agente principal de tarefa avulsa com Astra selecionado por você no Codex.`:`Never selects Astra automatically. Exception: a standalone principal with Astra manually selected in Codex.`}),(0,x.jsx)(`p`,{children:o?`A mudança vale para novas Tasks; as iniciadas conservam o perfil e o histórico. Tarefas avulsas priorizam execução direta. Ao delegar, a ZAIP informa que modelo e esforço dos subagentes podem mudar. Critérios de aceite e permissões não são reduzidos.`:`Changes apply to new Tasks; started Tasks retain their preset and history. Standalone work prefers direct execution. Delegation discloses that subagent model and effort may differ. Acceptance criteria and permissions are not reduced.`})]})}function R({api:e,locale:t,onClose:n}){let r=j[t],[i,a]=(0,s.useState)(null),[c,l]=(0,s.useState)(null),[u,_]=(0,s.useState)(null),[v,y]=(0,s.useState)(`{}`),[b,S]=(0,s.useState)(!1),[O,k]=(0,s.useState)(!0),[M,N]=(0,s.useState)(null),[P,F]=(0,s.useState)(null),[I,R]=(0,s.useState)(!1),z=o(),V=c===null?null:D(c),H=(0,s.useCallback)(async()=>{k(!0),N(null);try{let[t,n]=await Promise.all([e.projectSettings(),e.projectOverview()]),r=d(t);a(t),l(n),_(f(r.components,n.stack_components)),y(r.otherOverrides)}catch(e){N(e instanceof Error?e.message:String(e))}finally{k(!1)}},[e]);(0,s.useEffect)(()=>{H()},[H]),(0,s.useEffect)(()=>{R(c!==null&&D(c).hasMissingDependencies)},[c]);async function K(t){if(t.preventDefault(),i!==null){S(!0),N(null),F(null);try{let t=await e.saveProjectSettings(p(i,u??d(i).components,v)),n=await e.projectOverview(),o=d(t);a(t),l(n),_(o.components),y(o.otherOverrides),F(r.saved)}catch(e){N(e instanceof Error?e.message:String(e))}finally{S(!1)}}}if(i===null){let e=O&&M===null;return(0,x.jsx)(`main`,{"aria-busy":e,className:`project-settings-state`,children:(0,x.jsxs)(`div`,{"aria-live":e?`polite`:`assertive`,className:`project-settings-state-card`,role:e?`status`:`alert`,children:[e?(0,x.jsx)(`span`,{"aria-hidden":`true`,className:`project-settings-loader`}):null,(0,x.jsx)(`p`,{children:r.eyebrow}),(0,x.jsx)(`h1`,{children:M?r.loadError:r.loading}),M?(0,x.jsx)(`p`,{className:`project-settings-state-error`,children:M}):null,M?(0,x.jsx)(`button`,{onClick:()=>void H(),type:`button`,children:r.retry}):null,(0,x.jsxs)(`button`,{onClick:n,type:`button`,children:[`← `,r.back]})]})})}return(0,x.jsxs)(`main`,{className:`project-settings-page`,children:[(0,x.jsxs)(`form`,{onSubmit:K,children:[(0,x.jsxs)(`header`,{className:`project-settings-header`,children:[(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`p`,{children:r.eyebrow}),(0,x.jsx)(`h1`,{children:r.title}),(0,x.jsx)(`span`,{children:r.intro})]}),(0,x.jsxs)(`button`,{className:`project-settings-back`,onClick:n,type:`button`,children:[`← `,r.back]})]}),M?(0,x.jsx)(`div`,{className:`project-settings-message is-error`,role:`alert`,children:M}):null,P?(0,x.jsx)(`div`,{className:`project-settings-message is-success`,role:`status`,children:P}):null,(0,x.jsxs)(`section`,{className:`project-settings-feature`,children:[(0,x.jsxs)(`div`,{children:[(0,x.jsxs)(`h2`,{children:[r.framework,g(c?.framework_version)?` - ${g(c?.framework_version)}`:``]}),(0,x.jsx)(`p`,{children:r.frameworkHint})]}),(0,x.jsx)(U,{checked:i.zaip?.enabled===!0,label:t===`pt-BR`?`Framework ativo`:`Framework enabled`,onChange:e=>a({...i,zaip:{enabled:e}})})]}),(0,x.jsxs)(`section`,{className:`project-settings-summary`,"aria-label":r.overview,children:[c&&A(c.metrics).map(e=>(0,x.jsxs)(`div`,{className:`project-settings-metric`,children:[(0,x.jsx)(`strong`,{children:e.value}),(0,x.jsx)(`span`,{children:r.metricLabels[e.id]})]},e.id)),V?(0,x.jsx)(B,{installation:V,locale:t}):null]}),(0,x.jsx)(T,{className:`is-wide`,title:r.overview,children:(0,x.jsx)(`div`,{className:`project-overview`,"aria-live":`polite`,children:c?.areas.map(e=>(0,x.jsxs)(`div`,{className:`project-overview-item`,children:[(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`strong`,{children:r.areaLabels[e.id]}),(0,x.jsx)(`code`,{children:e.artifact})]}),(0,x.jsx)(`span`,{className:e.available?`is-available`:`is-unavailable`,children:e.available===!0?r.available:e.available===!1?r.artifactUnavailable:r.unavailable})]},e.id))})}),(0,x.jsx)(T,{className:`is-wide project-detected-versions`,title:r.versions,children:(0,x.jsx)(w,{components:c?.stack_components??[],text:r,showTitle:!1})}),(0,x.jsxs)(`div`,{className:`project-settings-grid`,children:[(0,x.jsxs)(T,{className:`is-wide project-identity-card`,title:r.identity,children:[(0,x.jsx)(E,{className:`project-settings-workspace-field`,hint:r.workspacePathHint,label:r.workspacePath,children:(0,x.jsx)(`code`,{className:`project-settings-workspace-path`,children:z.status?.workspace??(z.unavailable?r.workspacePathUnavailable:r.workspacePathLoading)})}),(0,x.jsx)(E,{label:`Schema`,children:(0,x.jsx)(`input`,{readOnly:!0,value:i.schema_version})}),(0,x.jsx)(E,{label:t===`pt-BR`?`ID do projeto`:`Project ID`,children:(0,x.jsx)(`input`,{required:!0,value:i.project.id,onChange:e=>a({...i,project:{...i.project,id:e.target.value}})})}),(0,x.jsx)(E,{label:t===`pt-BR`?`Nome do projeto`:`Project name`,children:(0,x.jsx)(`input`,{required:!0,value:i.project.name,onChange:e=>a({...i,project:{...i.project,name:e.target.value}})})}),(0,x.jsx)(E,{label:`Timezone IANA`,children:(0,x.jsx)(`input`,{required:!0,value:i.project.timezone,onChange:e=>a({...i,project:{...i.project,timezone:e.target.value}})})})]}),(0,x.jsxs)(T,{className:`is-wide`,title:r.stack,children:[(0,x.jsx)(`p`,{className:`project-stack-guide`,children:r.componentGuide}),u?(0,x.jsx)(C,{components:u,locale:t,onChange:_,referenceHint:r.referenceHint,versionHint:r.versionHint}):null,(0,x.jsxs)(`details`,{className:`project-settings-advanced`,children:[(0,x.jsx)(`summary`,{children:r.overrides}),(0,x.jsx)(E,{hint:r.overridesHint,label:`Overrides`,children:(0,x.jsx)(`textarea`,{rows:7,value:v,onChange:e=>y(e.target.value)})})]})]}),(0,x.jsxs)(T,{title:r.execution,children:[(0,x.jsx)(W,{checked:i.execution!==void 0,hint:r.executionToggleHint,label:t===`pt-BR`?`Incluir configuração de execução`:`Include execution configuration`,onChange:e=>a({...i,execution:e?{...h(),runtime:`managed`}:void 0})}),i.execution?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(E,{hint:r.runtimeHint,label:`Runtime`,children:(0,x.jsxs)(`select`,{value:i.execution.runtime,"aria-label":`Runtime`,onChange:e=>a({...i,execution:e.target.value===`manual`?{runtime:`manual`}:{...h(),runtime:e.target.value===`managed`?`managed`:`autonomous`}}),children:[(0,x.jsx)(`option`,{value:`manual`,children:`manual`}),(0,x.jsx)(`option`,{value:`managed`,children:`managed (PRD/SPEC)`}),(0,x.jsx)(`option`,{value:`autonomous`,children:`autonomous`})]})}),i.execution.runtime===`manual`?null:(0,x.jsx)(G,{config:i,setConfig:a,text:r})]}):null]}),(0,x.jsx)(T,{title:t===`pt-BR`?`Autonomia e recuperação`:`Autonomy and recovery`,children:(0,x.jsx)(L,{value:i.autonomy,disabled:b,locale:t,onChange:e=>a({...i,autonomy:e})})}),(0,x.jsxs)(T,{title:r.assurance,children:[(0,x.jsx)(W,{checked:i.assurance!==void 0,hint:r.assuranceToggleHint,label:t===`pt-BR`?`Incluir assurance`:`Include assurance`,onChange:e=>a({...i,assurance:e?{version:1,standard_depth:`auto`,require_final_commit:!0}:void 0})}),i.assurance?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(E,{hint:r.assuranceVersionHint,label:t===`pt-BR`?`Versão`:`Version`,children:(0,x.jsx)(`input`,{readOnly:!0,value:i.assurance.version})}),(0,x.jsx)(E,{hint:r.assuranceDepthHint,label:t===`pt-BR`?`Profundidade padrão`:`Standard depth`,children:(0,x.jsxs)(`select`,{value:i.assurance.standard_depth,onChange:e=>a({...i,assurance:{...i.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},standard_depth:e.target.value}}),children:[(0,x.jsx)(`option`,{value:`auto`,children:`auto`}),(0,x.jsx)(`option`,{value:`base`,children:`base`}),(0,x.jsx)(`option`,{value:`elevated`,children:`elevated`})]})}),(0,x.jsx)(U,{checked:i.assurance.require_final_commit,hint:r.finalCommitHint,label:t===`pt-BR`?`Exigir commit final`:`Require final commit`,onChange:e=>a({...i,assurance:{...i.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},require_final_commit:e}})})]}):null]}),(0,x.jsxs)(T,{className:`is-wide`,title:r.context,children:[(0,x.jsx)(W,{checked:i.context!==void 0,label:t===`pt-BR`?`Incluir raízes de contexto`:`Include context roots`,onChange:e=>a({...i,context:e?{canonical_roots:[`packages`],projection_roots:[]}:void 0})}),i.context?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`project-settings-guidance`,children:[(0,x.jsx)(`p`,{children:r.contextGuide}),(0,x.jsx)(`p`,{children:r.contextDomains})]}),(0,x.jsxs)(`div`,{className:`project-settings-fields two-columns`,children:[(0,x.jsx)(E,{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,x.jsx)(`textarea`,{required:!0,rows:5,value:i.context.canonical_roots.join(`
2
+ `),onChange:e=>a({...i,context:{...i.context??{canonical_roots:[`packages`],projection_roots:[]},canonical_roots:m(e.target.value)}})})}),(0,x.jsx)(E,{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,x.jsx)(`textarea`,{rows:5,value:i.context.projection_roots.join(`
3
+ `),onChange:e=>a({...i,context:{...i.context??{canonical_roots:[`packages`],projection_roots:[]},projection_roots:m(e.target.value)}})})})]})]}):null]})]}),(0,x.jsxs)(`footer`,{className:`project-settings-footer`,children:[(0,x.jsx)(`span`,{children:`.agents/config/project.yaml`}),(0,x.jsx)(`button`,{disabled:b,type:`submit`,children:b?r.saving:r.save})]})]}),I&&V?.hasMissingDependencies?(0,x.jsxs)(`div`,{"aria-live":`assertive`,className:`project-installation-toast`,role:`alert`,children:[(0,x.jsx)(`span`,{children:r.incompleteInstallation}),(0,x.jsx)(`button`,{"aria-label":r.dismiss,onClick:()=>R(!1),type:`button`,children:`×`})]}):null]})}function z(e,t){return`${new Intl.NumberFormat(t,{maximumFractionDigits:2}).format(e)}%`}function B({installation:e,locale:t}){let n=j[t];return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`p`,{className:`project-installation-health`,children:[n.health,`:`,` `,e.health.state===`healthy`?t===`pt-BR`?`Saudável`:`Healthy`:e.health.state===`degraded`?t===`pt-BR`?`Degradada`:`Degraded`:n.unknown]}),(0,x.jsx)(V,{dimension:e.dependencies,label:n.dependencies,locale:t}),(0,x.jsx)(V,{dimension:e.documentation,label:n.documentation,locale:t})]})}function V({dimension:e,label:t,locale:n}){let r=j[n],i=e.state===`not_applicable`?r.notApplicable:e.percentage===null?r.unknown:z(e.percentage,n),a=H(e.state,n);return(0,x.jsxs)(`div`,{className:`project-settings-metric installation-metric is-${e.state}`,children:[(0,x.jsx)(`strong`,{children:i}),(0,x.jsx)(`span`,{children:e.total===null||e.completed===null?t:`${t} · ${e.completed}/${e.total}`}),(0,x.jsx)(`small`,{children:a})]})}function H(e,t){let n=j[t];return e===`complete`?n.complete:e===`incomplete`?n.incomplete:e===`not_applicable`?n.notApplicable:e===`unavailable`?n.unavailable:n.unknown}function U({checked:e,hint:t,label:n,onChange:r}){return(0,x.jsxs)(`div`,{className:`project-settings-toggle-field`,children:[(0,x.jsxs)(`label`,{className:`project-settings-toggle`,children:[(0,x.jsx)(`input`,{checked:e,onChange:e=>r(e.target.checked),type:`checkbox`}),(0,x.jsx)(`span`,{"aria-hidden":`true`}),(0,x.jsx)(`strong`,{children:n})]}),t?(0,x.jsx)(`small`,{children:t}):null]})}function W(e){return(0,x.jsx)(U,{...e})}function G({config:e,setConfig:t,text:n}){let r=e.execution&&e.execution.runtime!==`manual`?e.execution:h(),i=n=>t({...e,execution:{runtime:r.runtime,autonomous:n}});return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(E,{hint:e.autonomy?.version===1?n.autonomyProviderHint:n.providerHint,label:`Provider`,children:(0,x.jsxs)(`select`,{value:r.autonomous.provider,"aria-label":`Provider`,onChange:e=>i({...r.autonomous,provider:e.target.value}),children:[(0,x.jsx)(`option`,{value:`codex`,children:`codex`}),(0,x.jsx)(`option`,{value:`claude`,disabled:e.autonomy?.version===1,children:`claude`})]})}),(0,x.jsx)(E,{hint:n.executionModelHint,label:`Model`,children:(0,x.jsx)(`input`,{required:!0,value:r.autonomous.model,onChange:e=>i({...r.autonomous,model:e.target.value})})}),(0,x.jsx)(E,{hint:n.parallelismHint,label:`Max parallelism`,children:(0,x.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,x.jsx)(E,{hint:n.leaseHint,label:`Lease (ms)`,children:(0,x.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{R as ProjectSettingsPage};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-j3aUYH5G.js";import{n as r}from"./traceability-CcpbpT1s.js";import{t as i}from"./index-Cl5EWx8R.js";var a=e(t(),1),o=n();function s(e,t){let n=t.trim().toLocaleLowerCase();return n===``?[...e]:e.filter(e=>`${e.title} ${e.id}`.toLocaleLowerCase().includes(n))}function c(e,t,n){return n?[...e]:s(e,t)}function l(e){return`traceability-task-option-${e}`}function u({locale:e,loadingTaskId:t,hasMoreTasks:n,isLoadingTasks:s,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,a.useState)(()=>y?.title??h),[S,C]=(0,a.useState)(!1),[w,T]=(0,a.useState)(!1),[E,D]=(0,a.useState)(0),[O,k]=(0,a.useState)(12),A=(0,a.useMemo)(()=>c(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,a.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,o.jsxs)(`section`,{className:`traceability-workspace`,children:[(0,o.jsxs)(`header`,{children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`label`,{htmlFor:N,children:F}),(0,o.jsx)(`input`,{"aria-activedescendant":L===void 0?void 0:l(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,o.jsx)(`div`,{"aria-label":I,className:`traceability-task-results`,id:P,onScroll:e=>{let{clientHeight:t,scrollHeight:r,scrollTop:a}=e.currentTarget;a+t<r-32||(n&&u(),j.length<A.length&&k(e=>i(e,A.length,12)))},role:`listbox`,children:A.length>0?j.map((e,t)=>(0,o.jsx)(`div`,{role:`presentation`,children:(0,o.jsx)(`button`,{"aria-selected":e.id===h,className:t===E?`is-active`:void 0,id:l(e.id),onClick:()=>R(e),role:`option`,type:`button`,children:(0,o.jsx)(`strong`,{children:e.title})})},e.id)):(0,o.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,o.jsx)(`p`,{"aria-live":`polite`,className:`traceability-task-pagination-status`,role:`status`,children:s?e===`pt-BR`?`Carregando mais tasks…`:`Loading more tasks…`:M||n?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,o.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,o.jsx)(`div`,{"aria-live":`polite`,className:`traceability-workspace-loading`,children:e===`pt-BR`?`Carregando as 6 etapas…`:`Loading all 6 stages…`}):_?(0,o.jsx)(r,{embedded:!0,locale:e,onClose:()=>void 0,onOpenChange:f,onOpenPrd:p,onOpenSpec:m,trace:_}):(0,o.jsx)(`p`,{children:e===`pt-BR`?`Nenhuma task disponível.`:`No task available.`})]})}export{u as TraceabilityWorkspace};
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-j3aUYH5G.js";import{n as r}from"./traceability-CcpbpT1s.js";import{n as i}from"./index-Bas2TVju.js";var a=e(t(),1),o=n();function s(e,t){let n=t.trim().toLocaleLowerCase();return n===``?[...e]:e.filter(e=>`${e.title} ${e.id}`.toLocaleLowerCase().includes(n))}function c(e,t,n){return n?[...e]:s(e,t)}function l(e){return`traceability-task-option-${e}`}function u({locale:e,loadingTaskId:t,hasMoreTasks:n,isLoadingTasks:s,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,a.useState)(()=>y?.title??h),[S,C]=(0,a.useState)(!1),[w,T]=(0,a.useState)(!1),[E,D]=(0,a.useState)(0),[O,k]=(0,a.useState)(12),A=(0,a.useMemo)(()=>c(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,a.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,o.jsxs)(`section`,{className:`traceability-workspace`,children:[(0,o.jsxs)(`header`,{children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`label`,{htmlFor:N,children:F}),(0,o.jsx)(`input`,{"aria-activedescendant":L===void 0?void 0:l(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,o.jsx)(`div`,{"aria-label":I,className:`traceability-task-results`,id:P,onScroll:e=>{let{clientHeight:t,scrollHeight:r,scrollTop:a}=e.currentTarget;a+t<r-32||(n&&u(),j.length<A.length&&k(e=>i(e,A.length,12)))},role:`listbox`,children:A.length>0?j.map((e,t)=>(0,o.jsx)(`div`,{role:`presentation`,children:(0,o.jsx)(`button`,{"aria-selected":e.id===h,className:t===E?`is-active`:void 0,id:l(e.id),onClick:()=>R(e),role:`option`,type:`button`,children:(0,o.jsx)(`strong`,{children:e.title})})},e.id)):(0,o.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,o.jsx)(`p`,{"aria-live":`polite`,className:`traceability-task-pagination-status`,role:`status`,children:s?e===`pt-BR`?`Carregando mais tasks…`:`Loading more tasks…`:M||n?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,o.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,o.jsx)(`div`,{"aria-live":`polite`,className:`traceability-workspace-loading`,children:e===`pt-BR`?`Carregando as 6 etapas…`:`Loading all 6 stages…`}):_?(0,o.jsx)(r,{embedded:!0,locale:e,onClose:()=>void 0,onOpenChange:f,onOpenPrd:p,onOpenSpec:m,trace:_}):(0,o.jsx)(`p`,{children:e===`pt-BR`?`Nenhuma task disponível.`:`No task available.`})]})}export{u as TraceabilityWorkspace};