@zaip-ai/cli 1.3.6 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +22 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/services/sqlite-bootstrap.d.ts +29 -0
- package/dist/services/sqlite-bootstrap.d.ts.map +1 -0
- package/dist/services/sqlite-bootstrap.js +141 -0
- package/dist/services/sqlite-bootstrap.js.map +1 -0
- package/dist/services/stack-install.d.ts +14 -0
- package/dist/services/stack-install.d.ts.map +1 -0
- package/dist/services/stack-install.js +176 -0
- package/dist/services/stack-install.js.map +1 -0
- package/dist/services/stack-node.d.ts +12 -0
- package/dist/services/stack-node.d.ts.map +1 -0
- package/dist/services/stack-node.js +150 -0
- package/dist/services/stack-node.js.map +1 -0
- package/dist/services/stack-package-manager.d.ts +12 -0
- package/dist/services/stack-package-manager.d.ts.map +1 -0
- package/dist/services/stack-package-manager.js +178 -0
- package/dist/services/stack-package-manager.js.map +1 -0
- package/dist/services/stack-plan.d.ts +33 -0
- package/dist/services/stack-plan.d.ts.map +1 -0
- package/dist/services/stack-plan.js +116 -0
- package/dist/services/stack-plan.js.map +1 -0
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/templates/.agents/dashboard/.zaip-managed.json +35 -27
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-3Lrfq645.js → DashboardHelpDialog-VcLx9iOO.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-BwnJpl02.js +3 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-BomxqCBU.css → ProjectSettingsPage-GgzpZ_PY.css} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-diq9g1L8.js → TraceabilityWorkspace-DFZwIXSC.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-Deo_W81f.js → index-Dyo_wpL4.js} +2 -2
- package/templates/.agents/dashboard/apps/frontend/dist/index.html +1 -1
- package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.tsx +15 -2
- package/templates/.agents/dashboard/apps/frontend/src/ProjectStackEditor.tsx +22 -6
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.ts +2 -0
- package/templates/.agents/dashboard/apps/frontend/src/project-settings-model.ts +1 -1
- package/templates/.agents/dashboard/apps/frontend/src/project-settings-page.css +0 -104
- package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +26 -0
- package/templates/.agents/dashboard/apps/frontend/src/project-stack-versions.css +117 -0
- package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +119 -119
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +119 -119
- package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.test.ts +153 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.ts +161 -40
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-prerequisites.mjs +5 -5
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-prerequisites.test.mjs +8 -0
- package/templates/.agents/dashboard/stack-dependencies.json +14 -0
- package/templates/.agents/requirements/autonomous-assurance.md +1 -1
- package/templates/.agents/requirements/comparative-audit.md +1 -1
- package/templates/.agents/requirements/context-engine.md +1 -1
- package/templates/.agents/requirements/cost-observability.md +1 -1
- package/templates/.agents/requirements/dashboard-launch.md +1 -1
- package/templates/.agents/requirements/data-export.md +1 -1
- package/templates/.agents/requirements/design-system.md +1 -1
- package/templates/.agents/requirements/execution-engine.md +1 -1
- package/templates/.agents/requirements/kanban-dashboard.md +1 -1
- package/templates/.agents/requirements/model-orchestration.md +1 -1
- package/templates/.agents/requirements/public-distribution.md +1 -1
- package/templates/.agents/requirements/software-architecture.md +1 -1
- package/templates/.agents/requirements/strategic-improvements.md +1 -1
- package/templates/.agents/requirements/work-lifecycle.md +1 -1
- package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
- package/templates/README.md +1 -1
- package/templates/template-manifest.json +53 -45
- package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-B_Oj6Dlf.js +0 -3
|
@@ -14,33 +14,33 @@
|
|
|
14
14
|
"path": "apps/frontend/dist/assets/CostCalculationGuidePage-DwVZOmMV.js",
|
|
15
15
|
"sha256": "f23b037ea7fc6f2637a23fcb26ce98947bf0c010afc210d18b576eb69c823433"
|
|
16
16
|
},
|
|
17
|
-
{
|
|
18
|
-
"path": "apps/frontend/dist/assets/DashboardHelpDialog-3Lrfq645.js",
|
|
19
|
-
"sha256": "b6722579101101a263f7886e95b6f2c43ed7cd882bd575616a2f904a73e56c91"
|
|
20
|
-
},
|
|
21
17
|
{
|
|
22
18
|
"path": "apps/frontend/dist/assets/DashboardHelpDialog-Je5nK-Et.css",
|
|
23
19
|
"sha256": "aafa708825ff8417d2de8ce9f45b94c899aa9ae5c5068bf5ce4def13e9c00643"
|
|
24
20
|
},
|
|
21
|
+
{
|
|
22
|
+
"path": "apps/frontend/dist/assets/DashboardHelpDialog-VcLx9iOO.js",
|
|
23
|
+
"sha256": "3fcffc906058b259f405fe76fb2e5b52a73540be941b2115dd60f73556dc60a4"
|
|
24
|
+
},
|
|
25
25
|
{
|
|
26
26
|
"path": "apps/frontend/dist/assets/PricingSettingsDialog-CyjMXkm8.js",
|
|
27
27
|
"sha256": "513303fc87731bdd588162d98a4b15d679df779602f61f022f739e2c031e8dfa"
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
"path": "apps/frontend/dist/assets/ProjectSettingsPage-
|
|
31
|
-
"sha256": "
|
|
30
|
+
"path": "apps/frontend/dist/assets/ProjectSettingsPage-BwnJpl02.js",
|
|
31
|
+
"sha256": "91898a05f2321b6e19d88e2719159bab279b1b4a9abd48fe2f2d3df3d36c1623"
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
"path": "apps/frontend/dist/assets/ProjectSettingsPage-
|
|
35
|
-
"sha256": "
|
|
34
|
+
"path": "apps/frontend/dist/assets/ProjectSettingsPage-GgzpZ_PY.css",
|
|
35
|
+
"sha256": "8f5830a272707f2bf1922a4f80b967a5da589e667bc9d66debf3735f58970e77"
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
|
-
"path": "apps/frontend/dist/assets/TraceabilityWorkspace-
|
|
39
|
-
"sha256": "
|
|
38
|
+
"path": "apps/frontend/dist/assets/TraceabilityWorkspace-DFZwIXSC.js",
|
|
39
|
+
"sha256": "a01b7a27aaed58759f4d0a1627b036c64522617d222bb0e4f8a258aabd076b48"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
|
-
"path": "apps/frontend/dist/assets/TraceabilityWorkspace-
|
|
43
|
-
"sha256": "
|
|
42
|
+
"path": "apps/frontend/dist/assets/TraceabilityWorkspace-DvvavDLY.css",
|
|
43
|
+
"sha256": "2dc93c190042edd2f5c585aab941bcaa5506aa1a8b5f26afa6e99996ce957e35"
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"path": "apps/frontend/dist/assets/cost-monitor-C09KmlSw.js",
|
|
@@ -59,8 +59,8 @@
|
|
|
59
59
|
"sha256": "85e0d82ec83ee57fd8a3d32cbf29d0e6c2dc8a987734f733437788c7f3e2e1dc"
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
|
-
"path": "apps/frontend/dist/assets/index-
|
|
63
|
-
"sha256": "
|
|
62
|
+
"path": "apps/frontend/dist/assets/index-Dyo_wpL4.js",
|
|
63
|
+
"sha256": "e13fa053e13eed7df1fb7805640743e7af55ba18c65b067528fb4ba2ef8fd8e8"
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
66
|
"path": "apps/frontend/dist/assets/index-hPPfVGQv.css",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
},
|
|
93
93
|
{
|
|
94
94
|
"path": "apps/frontend/dist/index.html",
|
|
95
|
-
"sha256": "
|
|
95
|
+
"sha256": "7933b7122cd4e31ddd364a2494d1bd33584fc6bc957660059afc4e2dfb0379b7"
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
"path": "apps/frontend/dist/logo_novo_azul.png",
|
|
@@ -168,11 +168,11 @@
|
|
|
168
168
|
},
|
|
169
169
|
{
|
|
170
170
|
"path": "apps/frontend/src/ProjectSettingsPage.tsx",
|
|
171
|
-
"sha256": "
|
|
171
|
+
"sha256": "7d1ff4cc9753d6fbd70b5cdf78b54f5c10315fb005c4b1b8c35baa01595c01c1"
|
|
172
172
|
},
|
|
173
173
|
{
|
|
174
174
|
"path": "apps/frontend/src/ProjectStackEditor.tsx",
|
|
175
|
-
"sha256": "
|
|
175
|
+
"sha256": "c81d45ec04af0aa46d563860c711dd3fa49d65be21b847216a6209caf01b5a30"
|
|
176
176
|
},
|
|
177
177
|
{
|
|
178
178
|
"path": "apps/frontend/src/TraceabilityWorkspace.dom.e2e.ts",
|
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
},
|
|
213
213
|
{
|
|
214
214
|
"path": "apps/frontend/src/dashboard-api.ts",
|
|
215
|
-
"sha256": "
|
|
215
|
+
"sha256": "457a4dd1eb27cda7deb3fd2fe141325755e24c771136537b87c0cda02d6d0aff"
|
|
216
216
|
},
|
|
217
217
|
{
|
|
218
218
|
"path": "apps/frontend/src/dashboard-capability-nav.css",
|
|
@@ -284,15 +284,19 @@
|
|
|
284
284
|
},
|
|
285
285
|
{
|
|
286
286
|
"path": "apps/frontend/src/project-settings-model.ts",
|
|
287
|
-
"sha256": "
|
|
287
|
+
"sha256": "74dfa3f9073eb051ee7eedb7f36cd1d18cf456507a771ffe9aa7b8c13e5dc270"
|
|
288
288
|
},
|
|
289
289
|
{
|
|
290
290
|
"path": "apps/frontend/src/project-settings-page.css",
|
|
291
|
-
"sha256": "
|
|
291
|
+
"sha256": "5811e5f0106a6680f411f3aea770a541a24fd0645e3c1e4ee4a396fa298279d2"
|
|
292
292
|
},
|
|
293
293
|
{
|
|
294
294
|
"path": "apps/frontend/src/project-settings.test.ts",
|
|
295
|
-
"sha256": "
|
|
295
|
+
"sha256": "bef56d243b96c0236bf6ac2383dced8181c2d03b1fa7aad31a07c599c1b7304b"
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"path": "apps/frontend/src/project-stack-versions.css",
|
|
299
|
+
"sha256": "466f1c8aa7cfa4c13925e51813429e8deccf81e5a0ee1d8ac1584cae239b4d30"
|
|
296
300
|
},
|
|
297
301
|
{
|
|
298
302
|
"path": "apps/frontend/src/snapshot-banner-semantics.test.ts",
|
|
@@ -1472,7 +1476,7 @@
|
|
|
1472
1476
|
},
|
|
1473
1477
|
{
|
|
1474
1478
|
"path": "packages/local-runtime/dist/server.cjs",
|
|
1475
|
-
"sha256": "
|
|
1479
|
+
"sha256": "542948a4f98e926a686b06ad880b80604a9f75176c051098dfab6837fe514a24"
|
|
1476
1480
|
},
|
|
1477
1481
|
{
|
|
1478
1482
|
"path": "packages/local-runtime/dist/sqlite-read-model.cjs",
|
|
@@ -1512,7 +1516,7 @@
|
|
|
1512
1516
|
},
|
|
1513
1517
|
{
|
|
1514
1518
|
"path": "packages/local-runtime/server.mjs",
|
|
1515
|
-
"sha256": "
|
|
1519
|
+
"sha256": "4900cbbc660cadb1a9ba558f2a2f45cc85674d5636777fdcafb1711f7d7e6d9c"
|
|
1516
1520
|
},
|
|
1517
1521
|
{
|
|
1518
1522
|
"path": "packages/local-runtime/src/agent-adapter-sync.ts",
|
|
@@ -1536,11 +1540,11 @@
|
|
|
1536
1540
|
},
|
|
1537
1541
|
{
|
|
1538
1542
|
"path": "packages/local-runtime/src/project-settings.test.ts",
|
|
1539
|
-
"sha256": "
|
|
1543
|
+
"sha256": "a05eba35642c1ebbf3768c9e5fc550115ebce7104e8d3ad5752ba4440ef9a38e"
|
|
1540
1544
|
},
|
|
1541
1545
|
{
|
|
1542
1546
|
"path": "packages/local-runtime/src/project-settings.ts",
|
|
1543
|
-
"sha256": "
|
|
1547
|
+
"sha256": "09f23c417af56a3543995b9d05ee36f8b5ac42ae313b465ea5b1d02b9476657c"
|
|
1544
1548
|
},
|
|
1545
1549
|
{
|
|
1546
1550
|
"path": "packages/local-runtime/src/runtime.mjs",
|
|
@@ -1828,11 +1832,11 @@
|
|
|
1828
1832
|
},
|
|
1829
1833
|
{
|
|
1830
1834
|
"path": "packages/local-runtime/start-dashboard-prerequisites.mjs",
|
|
1831
|
-
"sha256": "
|
|
1835
|
+
"sha256": "d4d8db08332fd72409899a1db02191ed1b5a6cfcb1edb4f3b307b465ec761227"
|
|
1832
1836
|
},
|
|
1833
1837
|
{
|
|
1834
1838
|
"path": "packages/local-runtime/start-dashboard-prerequisites.test.mjs",
|
|
1835
|
-
"sha256": "
|
|
1839
|
+
"sha256": "09b45d72d4940849fa64c94ea5e82928a4f1dc0073d57f38cbb30ac6b997467b"
|
|
1836
1840
|
},
|
|
1837
1841
|
{
|
|
1838
1842
|
"path": "packages/local-runtime/start-dashboard-processes.mjs",
|
|
@@ -1934,6 +1938,10 @@
|
|
|
1934
1938
|
"path": "read-model.dbml",
|
|
1935
1939
|
"sha256": "d976b7d04435358bf9eaa1f56425d30a706b72fdf1b8a2f14ab4af51a58a5959"
|
|
1936
1940
|
},
|
|
1941
|
+
{
|
|
1942
|
+
"path": "stack-dependencies.json",
|
|
1943
|
+
"sha256": "e32728bd2efc2a8c1b5bab1cebc44071dd95c994ae570c727a6cda9509d0b72c"
|
|
1944
|
+
},
|
|
1937
1945
|
{
|
|
1938
1946
|
"path": "tests/e2e/package.json",
|
|
1939
1947
|
"sha256": "22a98f7809edf19e35711dd14fc1b0c6722c0089b425394bbffdc4dc956f8032"
|
|
@@ -1694,7 +1694,7 @@ A atualização documental não aprova uma release. Consulte o [registro de limi
|
|
|
1694
1694
|
|
|
1695
1695
|
## Instalação em um comando
|
|
1696
1696
|
|
|
1697
|
-
Com
|
|
1697
|
+
Com Node.js 22.16.0 ou superior e npm, execute a instalação na raiz do projeto que receberá o ZAIP-AIOS. O \`init\` instala automaticamente as dependências ausentes da stack (TypeScript, Vite, Astro, cliente Redis, BullMQ, Hono, React e React DOM), verifica os runtimes distribuídos e prepara e valida o SQLite local. Um projeto novo recebe \`package.json\` e lockfile; versões locais existentes são preservadas e o retorno informa a versão encontrada e a configurada no ZAIP-AIOS. Não é necessário um driver SQLite separado:
|
|
1698
1698
|
|
|
1699
1699
|
\`\`\`bash
|
|
1700
1700
|
npx @zaip-ai/cli@latest init
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{S as e,b as t}from"./cost-monitor-C09KmlSw.js";var n=e(),r=[{id:`primary_language`,defaultName:`TypeScript`,scope:`backend`},{id:`backend_runtime`,defaultName:`Node.js`,scope:`backend`},{id:`backend_api`,defaultName:`Hono`,scope:`backend`},{id:`query_builder`,defaultName:`Kysely`,scope:`backend`},{id:`database`,defaultName:`PostgreSQL via Supabase`,scope:`backend`},{id:`auth_storage`,defaultName:`Supabase Auth + Storage`,scope:`backend`},{id:`cache_messaging`,defaultName:`Redis`,scope:`backend`},{id:`async_queue`,defaultName:`BullMQ`,scope:`backend`},{id:`backend_infrastructure`,defaultName:`Hostinger VPS`,scope:`backend`},{id:`web_framework`,defaultName:`React`,scope:`frontend`},{id:`web_language`,defaultName:`TypeScript`,scope:`frontend`},{id:`web_build`,defaultName:`Vite`,scope:`frontend`},{id:`frontend_hosting`,defaultName:`Cloudflare Pages`,scope:`frontend`},{id:`site_framework`,defaultName:`Astro`,scope:`site`},{id:`site_language`,defaultName:`TypeScript`,scope:`site`},{id:`site_islands`,defaultName:`React Islands`,scope:`site`},{id:`site_build`,defaultName:`Vite`,scope:`site`},{id:`site_hosting`,defaultName:`Cloudflare Pages`,scope:`site`}];function i(e){let{languages:t,components:n,...i}=e.stack.overrides,a=p(n)?n:{};return{components:Object.fromEntries(r.map(e=>{let t=a[e.id],n=p(t)?t:{};return[e.id,{name:f(n.name)||e.defaultName,version:f(n.version),reference:f(n.reference)}]})),otherOverrides:JSON.stringify(i,null,2)}}function a(e,t){let n=new Map(t.filter(e=>e.installation===`installed`&&e.version!==null).map(e=>[e.name.toLowerCase(),e.version]));return Object.fromEntries(r.map(t=>{let r=e[t.id],i=n.get(u(t.id));return[t.id,r.version!==``||i===void 0?r:{...r,version:i}]}))}function o(e,t,n){let i=JSON.parse(n);if(!p(i))throw Error(`Demais overrides deve ser um objeto JSON.`);let{languages:a,components:o,...s}=i;for(let e of r){let n=t[e.id].version.trim();if(n!==``&&!/^\d+\.\d+(?:\.\d+)?(?:[-+][0-9A-Za-z.-]+)?$/.test(n))throw Error(`A versão de ${t[e.id].name||e.defaultName} deve ser exata, como 22.16.0 ou 17.6, sem ^, ~, >= ou latest.`)}let c=Object.fromEntries(r.map(e=>[e.id,{name:t[e.id].name.trim()||e.defaultName,version:t[e.id].version.trim(),reference:t[e.id].reference.trim()}]));return{...e,stack:{...e.stack,overrides:{...s,components:c,languages:{frontend:d(c,`frontend`),backend:d(c,`backend`),site:d(c,`site`)}}}}}function s(e){return[...new Set(e.split(/\r?\n/).map(e=>e.trim()).filter(Boolean))]}function c(){return{runtime:`autonomous`,autonomous:{provider:`codex`,model:`gpt-5.6-terra`,max_parallelism:1,lease_ms:6e4}}}function l(e){let t=e?.match(/^v?(\d+)\.(\d+)\.\d+(?:[-+][0-9A-Za-z.-]+)?$/);return t?`v${t[1]}.${t[2]}`:null}function u(e){return e===`backend_runtime`?`node.js`:e===`backend_api`?`hono`:e===`site_framework`?`astro`:e===`cache_messaging`?`redis`:e===`async_queue`?`bullmq`:e===`web_framework`||e===`site_islands`?`react`:e===`web_build`||e===`site_build`?`vite`:e===`primary_language`||e===`web_language`||e===`site_language`?`typescript`:``}function d(e,t){return[...new Set(r.filter(e=>e.scope===t).map(t=>e[t.id].name.trim()).filter(Boolean))]}function f(e){return typeof e==`string`?e:``}function p(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var m=t(),h={primary_language:{pt:`Linguagem principal`,en:`Primary language`},backend_runtime:{pt:`Runtime backend`,en:`Backend runtime`},backend_api:{pt:`Framework backend / API`,en:`Backend framework / API`},query_builder:{pt:`Query builder`,en:`Query builder`},database:{pt:`Banco de dados`,en:`Database`},auth_storage:{pt:`Autenticação e Storage`,en:`Authentication and Storage`},cache_messaging:{pt:`Cache e mensageria`,en:`Cache and messaging`},async_queue:{pt:`Filas e processamento assíncrono`,en:`Queues and async processing`},backend_infrastructure:{pt:`Infraestrutura backend`,en:`Backend infrastructure`},web_framework:{pt:`Framework do Web App`,en:`Web App framework`},web_language:{pt:`Linguagem do Web App`,en:`Web App language`},web_build:{pt:`Build do Web App`,en:`Web App build`},frontend_hosting:{pt:`Hospedagem do frontend`,en:`Frontend hosting`},site_framework:{pt:`Framework do site`,en:`Site framework`},site_language:{pt:`Linguagem do site`,en:`Site language`},site_islands:{pt:`Componentes interativos`,en:`Interactive components`},site_build:{pt:`Build do site`,en:`Site build`},site_hosting:{pt:`Hospedagem do site`,en:`Site hosting`}};function g({components:e,locale:t,onChange:n,referenceHint:i,versionHint:a}){let o=[{scope:`backend`,title:t===`pt-BR`?`Backend e dados`:`Backend and data`},{scope:`frontend`,title:`Web App`},{scope:`site`,title:t===`pt-BR`?`Site e landing pages`:`Site and landing pages`}],s=(t,r,i)=>n({...e,[t]:{...e[t],[r]:i}});return(0,m.jsxs)(`div`,{className:`project-stack-editor`,children:[o.map(n=>(0,m.jsxs)(`section`,{children:[(0,m.jsx)(`h3`,{children:n.title}),(0,m.jsxs)(`div`,{className:`project-stack-table`,children:[(0,m.jsxs)(`div`,{className:`project-stack-table-head`,"aria-hidden":`true`,children:[(0,m.jsx)(`span`,{children:`Item`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Tecnologia`:`Technology`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Versão exata`:`Exact version`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Pacote / imagem / serviço`:`Package / image / service`})]}),r.filter(e=>e.scope===n.scope).map(n=>(0,m.jsxs)(`div`,{className:`project-stack-row`,children:[(0,m.jsx)(`strong`,{children:h[n.id][t===`pt-BR`?`pt`:`en`]}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: tecnologia`,value:e[n.id].name,onChange:e=>s(n.id,`name`,e.target.value)}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: versão exata`,inputMode:`decimal`,placeholder:`x.y.z`,value:e[n.id].version,onChange:e=>s(n.id,`version`,e.target.value)}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: referência`,placeholder:`npm:pacote ou service:nome`,value:e[n.id].reference,onChange:e=>s(n.id,`reference`,e.target.value)})]},n.id))]})]},n.scope)),(0,m.jsxs)(`div`,{className:`project-stack-format-help`,children:[(0,m.jsxs)(`p`,{children:[(0,m.jsx)(`strong`,{children:t===`pt-BR`?`Formato da versão:`:`Version format:`}),` `,a]}),(0,m.jsxs)(`p`,{children:[(0,m.jsx)(`strong`,{children:t===`pt-BR`?`Formato da referência:`:`Reference format:`}),` `,i]})]})]})}function _({components:e,text:t}){return e.length===0?null:(0,m.jsxs)(`section`,{className:`project-stack-versions`,"aria-label":t.versions,children:[(0,m.jsx)(`h3`,{children:t.versions}),(0,m.jsx)(`div`,{children:e.map(e=>(0,m.jsxs)(`article`,{children:[(0,m.jsxs)(`div`,{className:`project-stack-version-identity`,children:[(0,m.jsx)(`strong`,{children:e.name}),(0,m.jsxs)(`code`,{children:[t.current,`: `,e.version??t.versionUnavailable]}),e.configured_version!==null&&e.configured_version!==e.version?(0,m.jsxs)(`code`,{children:[t.configured,`: `,e.configured_version]}):null]}),(0,m.jsx)(`span`,{className:`is-${e.verification}`,children:e.installation===`runtime`?t.runtime:e.installation===`installed`?t.installed:e.installation===`bundled`?t.bundled:t.missing}),e.source?(0,m.jsx)(`small`,{children:e.source}):null]},e.name))})]})}var v={"pt-BR":{eyebrow:`Configurações`,title:`Configuração do projeto`,intro:`Edite o arquivo central do projeto com validação do schema antes da gravação.`,loading:`Carregando…`,back:`Voltar ao dashboard`,save:`Salvar configurações`,saving:`Validando e salvando…`,saved:`Configurações salvas e validadas.`,framework:`Framework ZAIP-AIOS`,frameworkHint:`Ativa ou desativa o framework para este projeto.`,identity:`Identidade do projeto`,stack:`Stack e linguagens`,execution:`Execução`,assurance:`Assurance`,executionToggleHint:`Grava ou remove o bloco execution. Sem ele, o projeto usa execução manual.`,runtimeHint:`Manual apenas materializa o trabalho; autonomous executa a DAG pelo provider configurado quando as precondições passam.`,providerHint:`Provider que inicia os agentes da execução autônoma: Codex ou Claude.`,executionModelHint:`Modelo-base do runtime autônomo. A política automática de PRD/SPEC ainda pode selecionar um modelo permitido por agente.`,parallelismHint:`Teto de agentes simultâneos. O valor efetivo é o menor limite entre projeto, DAG, provider e squad.`,leaseHint:`Valor persistido no projeto. O coordenador atual ainda usa internamente um lease fixo de 60 segundos.`,assuranceToggleHint:`Ativa ou remove os gates de evidência, revisão e qualidade do projeto. Recomenda-se manter ativo.`,assuranceVersionHint:`Versão do contrato de assurance. É fixa e somente leitura.`,assuranceDepthHint:`Auto ajusta o rigor ao escopo; base exige o conjunto padrão; elevated amplia validações para mudanças mais abrangentes.`,finalCommitHint:`Exige que as evidências comprovem o commit final integrado. Sinais de produção ou migração ainda podem exigir isso mesmo quando desativado.`,context:`Contexto`,overview:`Visão geral do projeto`,available:`Criado`,unavailable:`Ainda não criado`,componentGuide:`Preencha cada responsabilidade separadamente. A versão fica sem prefixos (^, ~, >=) e a referência identifica o pacote, imagem ou serviço.`,versionHint:`Versão exata: 22.16.0 ou 17.6. Deixe vazio para serviços sem versão fixada.`,referenceHint:`Ex.: npm:hono, docker:node:22.16.0-bookworm-slim, service:supabase ou provider:cloudflare-pages.`,overrides:`Opções avançadas (JSON)`,overridesHint:`Use apenas fatos técnicos transversais confirmados. Deixe vazio quando não houver exceções.`,versions:`Versões 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`,contextGuide:`O contexto começa pelas fontes canônicas e inclui somente arquivos relevantes para a tarefa. Saídas geradas são consultadas apenas em setup, release ou checagem de paridade.`,contextDomains:`Branding, Marketing, Growth e Sales são usados sob demanda pelos respectivos especialistas, quando houver uma tarefa e artefatos desses domínios. Não os adicione aqui apenas por existirem como capacidades.`},"en-US":{eyebrow:`Settings`,title:`Project settings`,intro:`Edit the central project file with schema validation before writing.`,loading:`Loading project settings…`,back:`Back to dashboard`,save:`Save settings`,saving:`Validating and saving…`,saved:`Settings saved and validated.`,framework:`ZAIP-AIOS framework`,frameworkHint:`Enable or disable the framework for this project.`,identity:`Project identity`,stack:`Stack and languages`,execution:`Execution`,assurance:`Assurance`,executionToggleHint:`Writes or removes the execution block. Without it, the project uses manual execution.`,runtimeHint:`Manual only materializes work; autonomous runs the DAG through the configured provider after preconditions pass.`,providerHint:`Provider that starts autonomous execution agents: Codex or Claude.`,executionModelHint:`Base model for the autonomous runtime. PRD/SPEC automatic policy may still select an allowed model per agent.`,parallelismHint:`Maximum simultaneous agents. Effective parallelism is the smallest project, DAG, provider, and squad limit.`,leaseHint:`Value persisted in the project. The current coordinator still uses a fixed internal 60-second lease.`,assuranceToggleHint:`Enables or removes project evidence, review, and quality gates. Keeping it enabled is recommended.`,assuranceVersionHint:`Assurance contract version. It is fixed and read-only.`,assuranceDepthHint:`Auto adapts rigor to scope; base uses the standard set; elevated expands validation for broader changes.`,finalCommitHint:`Requires evidence for the final integrated commit. Production or migration signals may still require it when disabled.`,context:`Context`,overview:`Project overview`,available:`Created`,unavailable:`Not created yet`,componentGuide:`Fill each responsibility separately. Versions have no prefixes (^, ~, >=), and the reference identifies the package, image, or service.`,versionHint:`Exact version: 22.16.0 or 17.6. Leave blank for services without a pinned version.`,referenceHint:`E.g. npm:hono, docker:node:22.16.0-bookworm-slim, service:supabase, or provider:cloudflare-pages.`,overrides:`Advanced options (JSON)`,overridesHint:`Use only confirmed cross-cutting technical facts. Leave empty when there are no exceptions.`,versions:`Versions 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`,contextGuide:`Context starts from canonical sources and includes only files relevant to the task. Generated outputs are consulted only for setup, release, or parity checks.`,contextDomains:`Branding, Marketing, Growth, and Sales are used on demand by their respective specialists when there is a task and artifacts in those domains. Do not add them here merely because they exist as capabilities.`}};function y({api:e,locale:t,onClose:r}){let u=v[t],[d,f]=(0,n.useState)(null),[p,h]=(0,n.useState)(null),[y,T]=(0,n.useState)(null),[E,D]=(0,n.useState)(`{}`),[O,k]=(0,n.useState)(!1),[A,j]=(0,n.useState)(null),[M,N]=(0,n.useState)(null);(0,n.useEffect)(()=>{Promise.all([e.projectSettings(),e.projectOverview()]).then(([e,t])=>{let n=i(e);f(e),h(t),T(a(n.components,t.stack_components)),D(n.otherOverrides)}).catch(e=>j(e instanceof Error?e.message:String(e)))},[e]);async function P(t){if(t.preventDefault(),d!==null){k(!0),j(null),N(null);try{let t=await e.saveProjectSettings(o(d,y??i(d).components,E)),n=await e.projectOverview(),r=i(t);f(t),h(n),T(r.components),D(r.otherOverrides),N(u.saved)}catch(e){j(e instanceof Error?e.message:String(e))}finally{k(!1)}}}if(d===null){let e=A===null;return(0,m.jsx)(`main`,{"aria-busy":e,className:`project-settings-state`,children:(0,m.jsxs)(`div`,{"aria-live":e?`polite`:`assertive`,className:`project-settings-state-card`,role:e?`status`:`alert`,children:[e?(0,m.jsx)(`span`,{"aria-hidden":`true`,className:`project-settings-loader`}):null,(0,m.jsx)(`p`,{children:u.eyebrow}),(0,m.jsx)(`h1`,{children:A??u.loading}),(0,m.jsxs)(`button`,{onClick:r,type:`button`,children:[`← `,u.back]})]})})}return(0,m.jsx)(`main`,{className:`project-settings-page`,children:(0,m.jsxs)(`form`,{onSubmit:P,children:[(0,m.jsxs)(`header`,{className:`project-settings-header`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`p`,{children:u.eyebrow}),(0,m.jsx)(`h1`,{children:u.title}),(0,m.jsx)(`span`,{children:u.intro})]}),(0,m.jsxs)(`button`,{className:`project-settings-back`,onClick:r,type:`button`,children:[`← `,u.back]})]}),A?(0,m.jsx)(`div`,{className:`project-settings-message is-error`,children:A}):null,M?(0,m.jsx)(`div`,{className:`project-settings-message is-success`,role:`status`,children:M}):null,(0,m.jsxs)(`section`,{className:`project-settings-feature`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsxs)(`h2`,{children:[u.framework,l(p?.framework_version)?` - ${l(p?.framework_version)}`:``]}),(0,m.jsx)(`p`,{children:u.frameworkHint})]}),(0,m.jsx)(S,{checked:d.zaip?.enabled===!0,label:t===`pt-BR`?`Framework ativo`:`Framework enabled`,onChange:e=>f({...d,zaip:{enabled:e}})})]}),(0,m.jsx)(`section`,{className:`project-settings-summary`,"aria-label":u.overview,children:p?.metrics.map(e=>(0,m.jsxs)(`div`,{className:`project-settings-metric`,children:[(0,m.jsx)(`strong`,{children:e.value}),(0,m.jsx)(`span`,{children:e.label})]},e.id))}),(0,m.jsx)(b,{className:`is-wide`,title:u.overview,children:(0,m.jsx)(`div`,{className:`project-overview`,"aria-live":`polite`,children:p?.areas.map(e=>(0,m.jsxs)(`div`,{className:`project-overview-item`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`strong`,{children:e.label}),(0,m.jsx)(`code`,{children:e.artifact})]}),(0,m.jsx)(`span`,{className:e.available?`is-available`:`is-unavailable`,children:e.available?u.available:u.unavailable})]},e.id))})}),(0,m.jsxs)(`div`,{className:`project-settings-grid`,children:[(0,m.jsxs)(b,{className:`is-wide project-identity-card`,title:u.identity,children:[(0,m.jsx)(x,{label:`Schema`,children:(0,m.jsx)(`input`,{readOnly:!0,value:d.schema_version})}),(0,m.jsx)(x,{label:t===`pt-BR`?`ID do projeto`:`Project ID`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.id,onChange:e=>f({...d,project:{...d.project,id:e.target.value}})})}),(0,m.jsx)(x,{label:t===`pt-BR`?`Nome do projeto`:`Project name`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.name,onChange:e=>f({...d,project:{...d.project,name:e.target.value}})})}),(0,m.jsx)(x,{label:`Timezone IANA`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.timezone,onChange:e=>f({...d,project:{...d.project,timezone:e.target.value}})})})]}),(0,m.jsxs)(b,{className:`is-wide`,title:u.stack,children:[(0,m.jsx)(`p`,{className:`project-stack-guide`,children:u.componentGuide}),y?(0,m.jsx)(g,{components:y,locale:t,onChange:T,referenceHint:u.referenceHint,versionHint:u.versionHint}):null,(0,m.jsx)(_,{components:p?.stack_components??[],text:u}),(0,m.jsxs)(`details`,{className:`project-settings-advanced`,children:[(0,m.jsx)(`summary`,{children:u.overrides}),(0,m.jsx)(x,{hint:u.overridesHint,label:`Overrides`,children:(0,m.jsx)(`textarea`,{rows:7,value:E,onChange:e=>D(e.target.value)})})]})]}),(0,m.jsxs)(b,{title:u.execution,children:[(0,m.jsx)(C,{checked:d.execution!==void 0,hint:u.executionToggleHint,label:t===`pt-BR`?`Incluir configuração de execução`:`Include execution configuration`,onChange:e=>f({...d,execution:e?{runtime:`manual`}:void 0})}),d.execution?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:u.runtimeHint,label:`Runtime`,children:(0,m.jsxs)(`select`,{value:d.execution.runtime,onChange:e=>f({...d,execution:e.target.value===`manual`?{runtime:`manual`}:c()}),children:[(0,m.jsx)(`option`,{value:`manual`,children:`manual`}),(0,m.jsx)(`option`,{value:`autonomous`,children:`autonomous`})]})}),d.execution.runtime===`autonomous`?(0,m.jsx)(w,{config:d,setConfig:f,text:u}):null]}):null]}),(0,m.jsxs)(b,{title:u.assurance,children:[(0,m.jsx)(C,{checked:d.assurance!==void 0,hint:u.assuranceToggleHint,label:t===`pt-BR`?`Incluir assurance`:`Include assurance`,onChange:e=>f({...d,assurance:e?{version:1,standard_depth:`auto`,require_final_commit:!0}:void 0})}),d.assurance?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:u.assuranceVersionHint,label:t===`pt-BR`?`Versão`:`Version`,children:(0,m.jsx)(`input`,{readOnly:!0,value:d.assurance.version})}),(0,m.jsx)(x,{hint:u.assuranceDepthHint,label:t===`pt-BR`?`Profundidade padrão`:`Standard depth`,children:(0,m.jsxs)(`select`,{value:d.assurance.standard_depth,onChange:e=>f({...d,assurance:{...d.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},standard_depth:e.target.value}}),children:[(0,m.jsx)(`option`,{value:`auto`,children:`auto`}),(0,m.jsx)(`option`,{value:`base`,children:`base`}),(0,m.jsx)(`option`,{value:`elevated`,children:`elevated`})]})}),(0,m.jsx)(S,{checked:d.assurance.require_final_commit,hint:u.finalCommitHint,label:t===`pt-BR`?`Exigir commit final`:`Require final commit`,onChange:e=>f({...d,assurance:{...d.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},require_final_commit:e}})})]}):null]}),(0,m.jsxs)(b,{className:`is-wide`,title:u.context,children:[(0,m.jsx)(C,{checked:d.context!==void 0,label:t===`pt-BR`?`Incluir raízes de contexto`:`Include context roots`,onChange:e=>f({...d,context:e?{canonical_roots:[`packages`],projection_roots:[]}:void 0})}),d.context?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`div`,{className:`project-settings-guidance`,children:[(0,m.jsx)(`p`,{children:u.contextGuide}),(0,m.jsx)(`p`,{children:u.contextDomains})]}),(0,m.jsxs)(`div`,{className:`project-settings-fields two-columns`,children:[(0,m.jsx)(x,{hint:t===`pt-BR`?`Uma pasta por linha. Estas são as fontes principais do projeto.`:`One folder per line. These are the project's primary sources.`,label:t===`pt-BR`?`Fontes canônicas`:`Canonical sources`,children:(0,m.jsx)(`textarea`,{required:!0,rows:5,value:d.context.canonical_roots.join(`
|
|
2
|
+
`),onChange:e=>f({...d,context:{...d.context??{canonical_roots:[`packages`],projection_roots:[]},canonical_roots:s(e.target.value)}})})}),(0,m.jsx)(x,{hint:t===`pt-BR`?`Uma pasta por linha. São saídas geradas, não fontes de contexto normal.`:`One folder per line. These are generated outputs, not normal context sources.`,label:t===`pt-BR`?`Saídas geradas/publicadas`:`Generated/published outputs`,children:(0,m.jsx)(`textarea`,{rows:5,value:d.context.projection_roots.join(`
|
|
3
|
+
`),onChange:e=>f({...d,context:{...d.context??{canonical_roots:[`packages`],projection_roots:[]},projection_roots:s(e.target.value)}})})})]})]}):null]})]}),(0,m.jsxs)(`footer`,{className:`project-settings-footer`,children:[(0,m.jsx)(`span`,{children:`.agents/config/project.yaml`}),(0,m.jsx)(`button`,{disabled:O,type:`submit`,children:O?u.saving:u.save})]})]})})}function b({children:e,className:t=``,title:n}){return(0,m.jsxs)(`section`,{className:`project-settings-card ${t}`,children:[(0,m.jsx)(`h2`,{children:n}),(0,m.jsx)(`div`,{className:`project-settings-fields`,children:e})]})}function x({children:e,hint:t,label:n}){return(0,m.jsxs)(`div`,{className:`project-settings-field`,children:[(0,m.jsx)(`span`,{children:n}),e,t?(0,m.jsx)(`small`,{children:t}):null]})}function S({checked:e,hint:t,label:n,onChange:r}){return(0,m.jsxs)(`div`,{className:`project-settings-toggle-field`,children:[(0,m.jsxs)(`label`,{className:`project-settings-toggle`,children:[(0,m.jsx)(`input`,{checked:e,onChange:e=>r(e.target.checked),type:`checkbox`}),(0,m.jsx)(`span`,{"aria-hidden":`true`}),(0,m.jsx)(`strong`,{children:n})]}),t?(0,m.jsx)(`small`,{children:t}):null]})}function C(e){return(0,m.jsx)(S,{...e})}function w({config:e,setConfig:t,text:n}){let r=e.execution?.runtime===`autonomous`?e.execution:c(),i=n=>t({...e,execution:{runtime:`autonomous`,autonomous:n}});return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:n.providerHint,label:`Provider`,children:(0,m.jsxs)(`select`,{value:r.autonomous.provider,onChange:e=>i({...r.autonomous,provider:e.target.value}),children:[(0,m.jsx)(`option`,{value:`codex`,children:`codex`}),(0,m.jsx)(`option`,{value:`claude`,children:`claude`})]})}),(0,m.jsx)(x,{hint:n.executionModelHint,label:`Model`,children:(0,m.jsx)(`input`,{required:!0,value:r.autonomous.model,onChange:e=>i({...r.autonomous,model:e.target.value})})}),(0,m.jsx)(x,{hint:n.parallelismHint,label:`Max parallelism`,children:(0,m.jsx)(`input`,{max:8,min:1,type:`number`,value:r.autonomous.max_parallelism,onChange:e=>i({...r.autonomous,max_parallelism:Number(e.target.value)})})}),(0,m.jsx)(x,{hint:n.leaseHint,label:`Lease (ms)`,children:(0,m.jsx)(`input`,{max:36e5,min:5e3,step:1e3,type:`number`,value:r.autonomous.lease_ms,onChange:e=>i({...r.autonomous,lease_ms:Number(e.target.value)})})})]})}export{y as ProjectSettingsPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.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-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-settings-metric{background:linear-gradient(145deg,#00b0f014,#fff 72%);border:1px solid #dbe4ef;border-radius:16px;align-content:center;gap:4px;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-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-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;align-items:baseline;gap:8px;min-width:0;display:flex}.project-stack-version-identity strong{color:#334155;min-width:0;font-size:.8rem}.project-stack-version-identity code{color:#0f172a;overflow-wrap:anywhere;flex:none;min-width:0;font-size:.8rem}.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}.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-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-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-versions article{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"identity badge""source source";align-items:start;gap:6px 10px;padding:10px 12px}.project-stack-versions>div{grid-template-columns:1fr}.project-stack-versions article span{align-self:start}.project-stack-versions article small{text-align:left}.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)}}
|
|
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-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-settings-metric{background:linear-gradient(145deg,#00b0f014,#fff 72%);border:1px solid #dbe4ef;border-radius:16px;align-content:center;gap:4px;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-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-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-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 +1 @@
|
|
|
1
|
-
import{S as e,b as t}from"./cost-monitor-C09KmlSw.js";import{n}from"./traceability-I4AKqVDX.js";import{t as r}from"./index-
|
|
1
|
+
import{S as e,b as t}from"./cost-monitor-C09KmlSw.js";import{n}from"./traceability-I4AKqVDX.js";import{t as r}from"./index-Dyo_wpL4.js";var i=e(),a=t();function o(e,t){let n=t.trim().toLocaleLowerCase();return n===``?[...e]:e.filter(e=>`${e.title} ${e.id}`.toLocaleLowerCase().includes(n))}function s(e,t,n){return n?[...e]:o(e,t)}function c(e){return`traceability-task-option-${e}`}function l({locale:e,loadingTaskId:t,hasMoreTasks:o,isLoadingTasks:l,onLoadMoreTasks:u,onSelectTask:d,onOpenChange:f,onOpenPrd:p,onOpenSpec:m,selectedTaskId:h,tasks:g,trace:_}){let v=[...g].sort((e,t)=>Date.parse(t.created_at)-Date.parse(e.created_at)),y=v.find(e=>e.id===h),[b,x]=(0,i.useState)(()=>y?.title??h),[S,C]=(0,i.useState)(!1),[w,T]=(0,i.useState)(!1),[E,D]=(0,i.useState)(0),[O,k]=(0,i.useState)(12),A=(0,i.useMemo)(()=>s(v,b,w),[b,w,v]),j=A.slice(0,O),M=j.length<A.length,N=`traceability-task-search`,P=`traceability-task-results`,F=e===`pt-BR`?`Task selecionada`:`Selected task`,I=e===`pt-BR`?`Buscar task por nome ou ID`:`Search task by name or ID`,L=S?A[E]?.id:void 0;(0,i.useEffect)(()=>{x(y?.title??h),D(0)},[y?.title,h]);let R=e=>{x(e.title),C(!1),T(!1),d(e.id)},z=(e=!0)=>{C(!0),T(!0),e&&(D(0),k(12))};return(0,a.jsxs)(`section`,{className:`traceability-workspace`,children:[(0,a.jsxs)(`header`,{children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`label`,{htmlFor:N,children:F}),(0,a.jsx)(`input`,{"aria-activedescendant":L===void 0?void 0:c(L),"aria-autocomplete":`list`,"aria-controls":P,"aria-expanded":S,"aria-label":I,id:N,onChange:e=>{x(e.target.value),D(0),T(!1),k(12),C(!0)},onClick:()=>z(),onFocus:()=>z(),onKeyDown:e=>{if(e.key===`ArrowDown`)e.preventDefault(),z(!1),D(e=>Math.min(e+1,Math.max(0,v.length-1)));else if(e.key===`ArrowUp`)e.preventDefault(),z(!1),D(e=>Math.max(0,e-1));else if(e.key===`Enter`&&S){let t=A[E];t!==void 0&&(e.preventDefault(),R(t))}else e.key===`Escape`&&C(!1)},role:`combobox`,type:`search`,value:b}),S?(0,a.jsx)(`div`,{"aria-label":I,className:`traceability-task-results`,id:P,onScroll:e=>{let{clientHeight:t,scrollHeight:n,scrollTop:i}=e.currentTarget;i+t<n-32||(o&&u(),j.length<A.length&&k(e=>r(e,A.length,12)))},role:`listbox`,children:A.length>0?j.map((e,t)=>(0,a.jsx)(`div`,{role:`presentation`,children:(0,a.jsx)(`button`,{"aria-selected":e.id===h,className:t===E?`is-active`:void 0,id:c(e.id),onClick:()=>R(e),role:`option`,type:`button`,children:(0,a.jsx)(`strong`,{children:e.title})})},e.id)):(0,a.jsx)(`div`,{className:`traceability-task-no-results`,role:`status`,children:e===`pt-BR`?`Nenhuma task encontrada.`:`No tasks found.`})}):null,S&&A.length>0?(0,a.jsx)(`p`,{"aria-live":`polite`,className:`traceability-task-pagination-status`,role:`status`,children:l?e===`pt-BR`?`Carregando mais tasks…`:`Loading more tasks…`:M||o?e===`pt-BR`?`${j.length} de ${A.length} tasks exibidas. Role para carregar mais.`:`${j.length} of ${A.length} tasks shown. Scroll to load more.`:e===`pt-BR`?`${A.length} tasks exibidas. Fim da lista.`:`${A.length} tasks shown. End of list.`}):null]}),(0,a.jsx)(`small`,{children:e===`pt-BR`?`Selecione pelo nome para visualizar o ciclo completo sem precisar do ID.`:`Select by name to inspect the complete lifecycle without knowing the ID.`})]}),t?(0,a.jsx)(`div`,{"aria-live":`polite`,className:`traceability-workspace-loading`,children:e===`pt-BR`?`Carregando as 6 etapas…`:`Loading all 6 stages…`}):_?(0,a.jsx)(n,{embedded:!0,locale:e,onClose:()=>void 0,onOpenChange:f,onOpenPrd:p,onOpenSpec:m,trace:_}):(0,a.jsx)(`p`,{children:e===`pt-BR`?`Nenhuma task disponível.`:`No task available.`})]})}export{l as TraceabilityWorkspace};
|