@zaip-ai/cli 1.3.5 → 1.3.7

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 (76) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +7 -0
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/services/install-agents-template.d.ts.map +1 -1
  6. package/dist/services/install-agents-template.js +18 -2
  7. package/dist/services/install-agents-template.js.map +1 -1
  8. package/dist/services/sqlite-bootstrap.d.ts +29 -0
  9. package/dist/services/sqlite-bootstrap.d.ts.map +1 -0
  10. package/dist/services/sqlite-bootstrap.js +141 -0
  11. package/dist/services/sqlite-bootstrap.js.map +1 -0
  12. package/dist/services/template-manifest.d.ts.map +1 -1
  13. package/dist/services/template-manifest.js +2 -0
  14. package/dist/services/template-manifest.js.map +1 -1
  15. package/package.json +2 -2
  16. package/templates/.agents/architecture/.gitkeep +0 -0
  17. package/templates/.agents/branding/.gitkeep +0 -0
  18. package/templates/.agents/dashboard/.zaip-managed.json +51 -39
  19. package/templates/.agents/dashboard/apps/frontend/dist/assets/{CostCalculationGuidePage-D1mpyYwh.js → CostCalculationGuidePage-DwVZOmMV.js} +1 -1
  20. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-CKO47D5s.js → DashboardHelpDialog--czwAlcH.js} +723 -723
  21. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-BuSlCbyZ.js → PricingSettingsDialog-CyjMXkm8.js} +1 -1
  22. package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-CUHFkAhZ.js → ProjectSettingsPage-B_Oj6Dlf.js} +1 -1
  23. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-BmASq2gW.js → TraceabilityWorkspace-CAqYVin1.js} +1 -1
  24. package/templates/.agents/dashboard/apps/frontend/dist/assets/{cost-monitor-Csj6LiAt.js → cost-monitor-C09KmlSw.js} +1 -1
  25. package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-VyTTl_ph.js → icons-vendor-DXBOtWNI.js} +1 -1
  26. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-CblPpexd.js +2 -0
  27. package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-CTC6vtln.js → react-vendor-DaNXQPyk.js} +1 -1
  28. package/templates/.agents/dashboard/apps/frontend/dist/assets/{traceability-9Mtvbwrg.js → traceability-I4AKqVDX.js} +1 -1
  29. package/templates/.agents/dashboard/apps/frontend/dist/index.html +5 -5
  30. package/templates/.agents/dashboard/apps/frontend/src/App.tsx +17 -8
  31. package/templates/.agents/dashboard/apps/frontend/src/cost-period-refresh.test.ts +8 -3
  32. package/templates/.agents/dashboard/apps/frontend/src/operations-period.test.ts +19 -1
  33. package/templates/.agents/dashboard/apps/frontend/src/operations-period.ts +8 -0
  34. package/templates/.agents/dashboard/apps/frontend/src/snapshot-coherence.test.ts +7 -4
  35. package/templates/.agents/dashboard/modules/operations/src/react/OperationsFilteredStatusDialog.tsx +131 -0
  36. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.tsx +2 -133
  37. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview.status-cards.test.ts +13 -7
  38. package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +1 -1
  39. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-prerequisites.mjs +40 -0
  40. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-prerequisites.test.mjs +46 -0
  41. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.mjs +33 -26
  42. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.test.mjs +5 -8
  43. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-loading.spec.ts +4 -6
  44. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-period-transition.spec.ts +37 -17
  45. package/templates/.agents/dashboard/tests/e2e/specs/dashboard-performance-matrix.spec.ts +5 -3
  46. package/templates/.agents/dashboard/tests/e2e/specs/dashboard.spec.ts +12 -5
  47. package/templates/.agents/growth/.gitkeep +0 -0
  48. package/templates/.agents/marketing/.gitkeep +0 -0
  49. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  50. package/templates/.agents/requirements/comparative-audit.md +1 -1
  51. package/templates/.agents/requirements/context-engine.md +1 -1
  52. package/templates/.agents/requirements/cost-observability.md +1 -1
  53. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  54. package/templates/.agents/requirements/data-export.md +1 -1
  55. package/templates/.agents/requirements/design-system.md +1 -1
  56. package/templates/.agents/requirements/execution-engine.md +1 -1
  57. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  58. package/templates/.agents/requirements/model-orchestration.md +1 -1
  59. package/templates/.agents/requirements/public-distribution.md +1 -1
  60. package/templates/.agents/requirements/software-architecture.md +1 -1
  61. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  62. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  63. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  64. package/templates/.agents/sales/.gitkeep +0 -0
  65. package/templates/README.md +722 -0
  66. package/templates/template-manifest.json +84 -85
  67. package/templates/.agents/architecture/software-architecture.md +0 -131
  68. package/templates/.agents/branding/brandbook.docx +0 -0
  69. package/templates/.agents/branding/brandbook.md +0 -60
  70. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-DIwDvCu5.js +0 -2
  71. package/templates/.agents/growth/estrategia-bootstrap-90-dias.md +0 -169
  72. package/templates/.agents/growth/strategy.md +0 -27
  73. package/templates/.agents/marketing/estrategia-marketing-zaip-90-dias.md +0 -197
  74. package/templates/.agents/marketing/strategy.md +0 -29
  75. package/templates/.agents/sales/playbook.md +0 -32
  76. package/templates/.agents/sales/roteiro-comercial-zaip.md +0 -252
@@ -1 +1 @@
1
- import{S as e,b as t}from"./cost-monitor-Csj6LiAt.js";import{n}from"./dashboard-localization-CLJ0lT9v.js";var r=e(),i=t();function a({catalog:e,fxRate:t,locale:a,onClose:s,onSave:c,onSaveFxRate:l}){let u=n[a],[d,f]=(0,r.useState)(e),[p,m]=(0,r.useState)(t?.rate??0),[h,g]=(0,r.useState)(!1),_=(e,t)=>f(n=>({...n,models:n.models.map((n,r)=>r===e?{...n,...t}:n)})),v=e=>Math.max(0,Number(e)||0);return(0,i.jsx)(`main`,{className:`pricing-backdrop`,children:(0,i.jsxs)(`section`,{"aria-labelledby":`pricing-page-title`,className:`pricing-dialog`,children:[(0,i.jsxs)(`header`,{children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`small`,{children:u.eyebrow}),(0,i.jsx)(`h1`,{id:`pricing-page-title`,children:u.title}),(0,i.jsx)(`p`,{children:u.description})]}),(0,i.jsxs)(`button`,{className:`pricing-back-button`,onClick:s,type:`button`,children:[(0,i.jsx)(`span`,{"aria-hidden":`true`,children:`←`}),` `,u.back]})]}),(0,i.jsxs)(`div`,{className:`pricing-fx-settings`,children:[(0,i.jsxs)(`div`,{className:`pricing-fx-copy`,children:[(0,i.jsx)(`strong`,{children:u.fxTitle}),(0,i.jsx)(`p`,{children:u.fxDescription})]}),(0,i.jsxs)(`label`,{children:[(0,i.jsx)(`span`,{children:u.fxLabel}),(0,i.jsxs)(`div`,{className:`pricing-fx-input`,children:[(0,i.jsx)(`span`,{children:`R$`}),(0,i.jsx)(`input`,{"aria-label":u.fxAriaLabel,min:`0.0001`,onChange:e=>m(Math.max(1e-4,Number(e.target.value)||0)),step:`0.0001`,type:`number`,value:p})]})]})]}),(0,i.jsxs)(`div`,{className:`pricing-table-heading`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`strong`,{children:u.catalog}),(0,i.jsx)(`p`,{children:u.pricesPerMillion})]}),(0,i.jsxs)(`span`,{children:[d.models.length,` `,u.models]})]}),(0,i.jsx)(`div`,{className:`pricing-table-wrap`,children:(0,i.jsxs)(`table`,{children:[(0,i.jsx)(`thead`,{children:(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{children:u.model}),(0,i.jsx)(`th`,{children:u.provider}),(0,i.jsx)(`th`,{children:u.input}),(0,i.jsx)(`th`,{children:u.cache}),(0,i.jsx)(`th`,{children:u.output}),(0,i.jsx)(`th`,{children:u.reasoning}),(0,i.jsx)(`th`,{children:u.priorityInput}),(0,i.jsx)(`th`,{children:u.priorityCache}),(0,i.jsx)(`th`,{children:u.priorityOutput}),(0,i.jsx)(`th`,{children:u.priorityReasoning}),(0,i.jsx)(`th`,{children:u.contextLimit}),(0,i.jsx)(`th`,{children:u.inputMultiplier}),(0,i.jsx)(`th`,{children:u.outputMultiplier}),(0,i.jsx)(`th`,{})]})}),(0,i.jsx)(`tbody`,{children:d.models.map((e,t)=>(0,i.jsxs)(`tr`,{children:[(0,i.jsxs)(`td`,{children:[(0,i.jsx)(`input`,{"aria-label":u.model,onChange:e=>_(t,{id:e.target.value}),value:e.id}),(0,i.jsx)(`small`,{children:e.aliases.join(`, `)||u.noAliases})]}),(0,i.jsx)(`td`,{children:(0,i.jsxs)(`select`,{onChange:e=>_(t,{provider:e.target.value}),value:e.provider,children:[(0,i.jsx)(`option`,{value:`openai`,children:`OpenAI`}),(0,i.jsx)(`option`,{value:`anthropic`,children:`Anthropic`})]})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{input_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.input_per_million_usd})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{cached_input_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.cached_input_per_million_usd??0})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{output_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.output_per_million_usd})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{reasoning_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.reasoning_per_million_usd??0})}),[`priority_input_per_million_usd`,`priority_cached_input_per_million_usd`,`priority_output_per_million_usd`,`priority_reasoning_per_million_usd`].map(n=>(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{[n]:v(e.target.value)}),step:`0.001`,type:`number`,value:e[n]??0})},n)),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{long_context_threshold_tokens:v(e.target.value)||null}),step:`1`,type:`number`,value:e.long_context_threshold_tokens??0})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0.001`,onChange:e=>_(t,{long_context_input_multiplier:Math.max(.001,Number(e.target.value)||1)}),step:`0.1`,type:`number`,value:e.long_context_input_multiplier})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0.001`,onChange:e=>_(t,{long_context_output_multiplier:Math.max(.001,Number(e.target.value)||1)}),step:`0.1`,type:`number`,value:e.long_context_output_multiplier})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`button`,{"aria-label":u.removeModel,onClick:()=>f(e=>({...e,models:e.models.filter((e,n)=>n!==t)})),type:`button`,children:`×`})})]},e.id))})]})}),(0,i.jsxs)(`footer`,{children:[(0,i.jsxs)(`button`,{onClick:()=>f(e=>({...e,models:[...e.models,o(a)]})),type:`button`,children:[`+ `,u.addModel]}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`button`,{onClick:s,type:`button`,children:u.cancel}),(0,i.jsx)(`button`,{disabled:h,onClick:async()=>{g(!0);try{await c(d),await l(p),s()}finally{g(!1)}},type:`button`,children:h?u.saving:u.save})]})]})]})})}function o(e=`pt-BR`){let t=n[e];return{id:t.newModel,provider:`openai`,aliases:[],input_per_million_usd:0,cached_input_per_million_usd:0,output_per_million_usd:0,reasoning_per_million_usd:0,priority_input_per_million_usd:null,priority_cached_input_per_million_usd:null,priority_output_per_million_usd:null,priority_reasoning_per_million_usd:null,reasoning_billed_separately:!1,long_context_threshold_tokens:null,long_context_input_multiplier:1,long_context_output_multiplier:1,source_label:t.manualOverride,source_url:`https://developers.openai.com/api/docs/pricing`,notes:[t.editedNote]}}export{a as PricingSettingsPage};
1
+ import{S as e,b as t}from"./cost-monitor-C09KmlSw.js";import{n}from"./dashboard-localization-CLJ0lT9v.js";var r=e(),i=t();function a({catalog:e,fxRate:t,locale:a,onClose:s,onSave:c,onSaveFxRate:l}){let u=n[a],[d,f]=(0,r.useState)(e),[p,m]=(0,r.useState)(t?.rate??0),[h,g]=(0,r.useState)(!1),_=(e,t)=>f(n=>({...n,models:n.models.map((n,r)=>r===e?{...n,...t}:n)})),v=e=>Math.max(0,Number(e)||0);return(0,i.jsx)(`main`,{className:`pricing-backdrop`,children:(0,i.jsxs)(`section`,{"aria-labelledby":`pricing-page-title`,className:`pricing-dialog`,children:[(0,i.jsxs)(`header`,{children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`small`,{children:u.eyebrow}),(0,i.jsx)(`h1`,{id:`pricing-page-title`,children:u.title}),(0,i.jsx)(`p`,{children:u.description})]}),(0,i.jsxs)(`button`,{className:`pricing-back-button`,onClick:s,type:`button`,children:[(0,i.jsx)(`span`,{"aria-hidden":`true`,children:`←`}),` `,u.back]})]}),(0,i.jsxs)(`div`,{className:`pricing-fx-settings`,children:[(0,i.jsxs)(`div`,{className:`pricing-fx-copy`,children:[(0,i.jsx)(`strong`,{children:u.fxTitle}),(0,i.jsx)(`p`,{children:u.fxDescription})]}),(0,i.jsxs)(`label`,{children:[(0,i.jsx)(`span`,{children:u.fxLabel}),(0,i.jsxs)(`div`,{className:`pricing-fx-input`,children:[(0,i.jsx)(`span`,{children:`R$`}),(0,i.jsx)(`input`,{"aria-label":u.fxAriaLabel,min:`0.0001`,onChange:e=>m(Math.max(1e-4,Number(e.target.value)||0)),step:`0.0001`,type:`number`,value:p})]})]})]}),(0,i.jsxs)(`div`,{className:`pricing-table-heading`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`strong`,{children:u.catalog}),(0,i.jsx)(`p`,{children:u.pricesPerMillion})]}),(0,i.jsxs)(`span`,{children:[d.models.length,` `,u.models]})]}),(0,i.jsx)(`div`,{className:`pricing-table-wrap`,children:(0,i.jsxs)(`table`,{children:[(0,i.jsx)(`thead`,{children:(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{children:u.model}),(0,i.jsx)(`th`,{children:u.provider}),(0,i.jsx)(`th`,{children:u.input}),(0,i.jsx)(`th`,{children:u.cache}),(0,i.jsx)(`th`,{children:u.output}),(0,i.jsx)(`th`,{children:u.reasoning}),(0,i.jsx)(`th`,{children:u.priorityInput}),(0,i.jsx)(`th`,{children:u.priorityCache}),(0,i.jsx)(`th`,{children:u.priorityOutput}),(0,i.jsx)(`th`,{children:u.priorityReasoning}),(0,i.jsx)(`th`,{children:u.contextLimit}),(0,i.jsx)(`th`,{children:u.inputMultiplier}),(0,i.jsx)(`th`,{children:u.outputMultiplier}),(0,i.jsx)(`th`,{})]})}),(0,i.jsx)(`tbody`,{children:d.models.map((e,t)=>(0,i.jsxs)(`tr`,{children:[(0,i.jsxs)(`td`,{children:[(0,i.jsx)(`input`,{"aria-label":u.model,onChange:e=>_(t,{id:e.target.value}),value:e.id}),(0,i.jsx)(`small`,{children:e.aliases.join(`, `)||u.noAliases})]}),(0,i.jsx)(`td`,{children:(0,i.jsxs)(`select`,{onChange:e=>_(t,{provider:e.target.value}),value:e.provider,children:[(0,i.jsx)(`option`,{value:`openai`,children:`OpenAI`}),(0,i.jsx)(`option`,{value:`anthropic`,children:`Anthropic`})]})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{input_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.input_per_million_usd})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{cached_input_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.cached_input_per_million_usd??0})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{output_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.output_per_million_usd})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{reasoning_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.reasoning_per_million_usd??0})}),[`priority_input_per_million_usd`,`priority_cached_input_per_million_usd`,`priority_output_per_million_usd`,`priority_reasoning_per_million_usd`].map(n=>(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{[n]:v(e.target.value)}),step:`0.001`,type:`number`,value:e[n]??0})},n)),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0`,onChange:e=>_(t,{long_context_threshold_tokens:v(e.target.value)||null}),step:`1`,type:`number`,value:e.long_context_threshold_tokens??0})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0.001`,onChange:e=>_(t,{long_context_input_multiplier:Math.max(.001,Number(e.target.value)||1)}),step:`0.1`,type:`number`,value:e.long_context_input_multiplier})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`input`,{min:`0.001`,onChange:e=>_(t,{long_context_output_multiplier:Math.max(.001,Number(e.target.value)||1)}),step:`0.1`,type:`number`,value:e.long_context_output_multiplier})}),(0,i.jsx)(`td`,{children:(0,i.jsx)(`button`,{"aria-label":u.removeModel,onClick:()=>f(e=>({...e,models:e.models.filter((e,n)=>n!==t)})),type:`button`,children:`×`})})]},e.id))})]})}),(0,i.jsxs)(`footer`,{children:[(0,i.jsxs)(`button`,{onClick:()=>f(e=>({...e,models:[...e.models,o(a)]})),type:`button`,children:[`+ `,u.addModel]}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`button`,{onClick:s,type:`button`,children:u.cancel}),(0,i.jsx)(`button`,{disabled:h,onClick:async()=>{g(!0);try{await c(d),await l(p),s()}finally{g(!1)}},type:`button`,children:h?u.saving:u.save})]})]})]})})}function o(e=`pt-BR`){let t=n[e];return{id:t.newModel,provider:`openai`,aliases:[],input_per_million_usd:0,cached_input_per_million_usd:0,output_per_million_usd:0,reasoning_per_million_usd:0,priority_input_per_million_usd:null,priority_cached_input_per_million_usd:null,priority_output_per_million_usd:null,priority_reasoning_per_million_usd:null,reasoning_billed_separately:!1,long_context_threshold_tokens:null,long_context_input_multiplier:1,long_context_output_multiplier:1,source_label:t.manualOverride,source_url:`https://developers.openai.com/api/docs/pricing`,notes:[t.editedNote]}}export{a as PricingSettingsPage};
@@ -1,3 +1,3 @@
1
- import{S as e,b as t}from"./cost-monitor-Csj6LiAt.js";var n=e(),r=[{id:`primary_language`,defaultName:`TypeScript`,scope:`backend`},{id:`backend_runtime`,defaultName:`Node.js`,scope:`backend`},{id:`backend_api`,defaultName:`Hono`,scope:`backend`},{id:`query_builder`,defaultName:`Kysely`,scope:`backend`},{id:`database`,defaultName:`PostgreSQL via Supabase`,scope:`backend`},{id:`auth_storage`,defaultName:`Supabase Auth + Storage`,scope:`backend`},{id:`cache_messaging`,defaultName:`Redis`,scope:`backend`},{id:`async_queue`,defaultName:`BullMQ`,scope:`backend`},{id:`backend_infrastructure`,defaultName:`Hostinger VPS`,scope:`backend`},{id:`web_framework`,defaultName:`React`,scope:`frontend`},{id:`web_language`,defaultName:`TypeScript`,scope:`frontend`},{id:`web_build`,defaultName:`Vite`,scope:`frontend`},{id:`frontend_hosting`,defaultName:`Cloudflare Pages`,scope:`frontend`},{id:`site_framework`,defaultName:`Astro`,scope:`site`},{id:`site_language`,defaultName:`TypeScript`,scope:`site`},{id:`site_islands`,defaultName:`React Islands`,scope:`site`},{id:`site_build`,defaultName:`Vite`,scope:`site`},{id:`site_hosting`,defaultName:`Cloudflare Pages`,scope:`site`}];function i(e){let{languages:t,components:n,...i}=e.stack.overrides,a=p(n)?n:{};return{components:Object.fromEntries(r.map(e=>{let t=a[e.id],n=p(t)?t:{};return[e.id,{name:f(n.name)||e.defaultName,version:f(n.version),reference:f(n.reference)}]})),otherOverrides:JSON.stringify(i,null,2)}}function a(e,t){let n=new Map(t.filter(e=>e.verification===`exact`&&e.version!==null).map(e=>[e.name.toLowerCase(),e.version]));return Object.fromEntries(r.map(t=>{let r=e[t.id],i=n.get(u(t.id));return[t.id,r.version!==``||i===void 0?r:{...r,version:i}]}))}function o(e,t,n){let i=JSON.parse(n);if(!p(i))throw Error(`Demais overrides deve ser um objeto JSON.`);let{languages:a,components:o,...s}=i;for(let e of r){let n=t[e.id].version.trim();if(n!==``&&!/^\d+\.\d+(?:\.\d+)?(?:[-+][0-9A-Za-z.-]+)?$/.test(n))throw Error(`A versão de ${t[e.id].name||e.defaultName} deve ser exata, como 22.16.0 ou 17.6, sem ^, ~, >= ou latest.`)}let c=Object.fromEntries(r.map(e=>[e.id,{name:t[e.id].name.trim()||e.defaultName,version:t[e.id].version.trim(),reference:t[e.id].reference.trim()}]));return{...e,stack:{...e.stack,overrides:{...s,components:c,languages:{frontend:d(c,`frontend`),backend:d(c,`backend`),site:d(c,`site`)}}}}}function s(e){return[...new Set(e.split(/\r?\n/).map(e=>e.trim()).filter(Boolean))]}function c(){return{runtime:`autonomous`,autonomous:{provider:`codex`,model:`gpt-5.6-terra`,max_parallelism:1,lease_ms:6e4}}}function l(e){let t=e?.match(/^v?(\d+)\.(\d+)\.\d+(?:[-+][0-9A-Za-z.-]+)?$/);return t?`v${t[1]}.${t[2]}`:null}function u(e){return e===`backend_runtime`?`node.js`:e===`backend_api`?`hono`:e===`site_framework`?`astro`:e===`cache_messaging`?`redis`:e===`async_queue`?`bullmq`:e===`web_framework`||e===`site_islands`?`react`:e===`web_build`||e===`site_build`?`vite`:e===`primary_language`||e===`web_language`||e===`site_language`?`typescript`:``}function d(e,t){return[...new Set(r.filter(e=>e.scope===t).map(t=>e[t.id].name.trim()).filter(Boolean))]}function f(e){return typeof e==`string`?e:``}function p(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var m=t(),h={primary_language:{pt:`Linguagem principal`,en:`Primary language`},backend_runtime:{pt:`Runtime backend`,en:`Backend runtime`},backend_api:{pt:`Framework backend / API`,en:`Backend framework / API`},query_builder:{pt:`Query builder`,en:`Query builder`},database:{pt:`Banco de dados`,en:`Database`},auth_storage:{pt:`Autenticação e Storage`,en:`Authentication and Storage`},cache_messaging:{pt:`Cache e mensageria`,en:`Cache and messaging`},async_queue:{pt:`Filas e processamento assíncrono`,en:`Queues and async processing`},backend_infrastructure:{pt:`Infraestrutura backend`,en:`Backend infrastructure`},web_framework:{pt:`Framework do Web App`,en:`Web App framework`},web_language:{pt:`Linguagem do Web App`,en:`Web App language`},web_build:{pt:`Build do Web App`,en:`Web App build`},frontend_hosting:{pt:`Hospedagem do frontend`,en:`Frontend hosting`},site_framework:{pt:`Framework do site`,en:`Site framework`},site_language:{pt:`Linguagem do site`,en:`Site language`},site_islands:{pt:`Componentes interativos`,en:`Interactive components`},site_build:{pt:`Build do site`,en:`Site build`},site_hosting:{pt:`Hospedagem do site`,en:`Site hosting`}};function g({components:e,locale:t,onChange:n,referenceHint:i,versionHint:a}){let o=[{scope:`backend`,title:t===`pt-BR`?`Backend e dados`:`Backend and data`},{scope:`frontend`,title:`Web App`},{scope:`site`,title:t===`pt-BR`?`Site e landing pages`:`Site and landing pages`}],s=(t,r,i)=>n({...e,[t]:{...e[t],[r]:i}});return(0,m.jsxs)(`div`,{className:`project-stack-editor`,children:[o.map(n=>(0,m.jsxs)(`section`,{children:[(0,m.jsx)(`h3`,{children:n.title}),(0,m.jsxs)(`div`,{className:`project-stack-table`,children:[(0,m.jsxs)(`div`,{className:`project-stack-table-head`,"aria-hidden":`true`,children:[(0,m.jsx)(`span`,{children:`Item`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Tecnologia`:`Technology`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Versão exata`:`Exact version`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Pacote / imagem / serviço`:`Package / image / service`})]}),r.filter(e=>e.scope===n.scope).map(n=>(0,m.jsxs)(`div`,{className:`project-stack-row`,children:[(0,m.jsx)(`strong`,{children:h[n.id][t===`pt-BR`?`pt`:`en`]}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: tecnologia`,value:e[n.id].name,onChange:e=>s(n.id,`name`,e.target.value)}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: versão exata`,inputMode:`decimal`,placeholder:`x.y.z`,value:e[n.id].version,onChange:e=>s(n.id,`version`,e.target.value)}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: referência`,placeholder:`npm:pacote ou service:nome`,value:e[n.id].reference,onChange:e=>s(n.id,`reference`,e.target.value)})]},n.id))]})]},n.scope)),(0,m.jsxs)(`div`,{className:`project-stack-format-help`,children:[(0,m.jsxs)(`p`,{children:[(0,m.jsx)(`strong`,{children:t===`pt-BR`?`Formato da versão:`:`Version format:`}),` `,a]}),(0,m.jsxs)(`p`,{children:[(0,m.jsx)(`strong`,{children:t===`pt-BR`?`Formato da referência:`:`Reference format:`}),` `,i]})]})]})}function _({components:e,text:t}){return e.length===0?null:(0,m.jsxs)(`section`,{className:`project-stack-versions`,"aria-label":t.versions,children:[(0,m.jsx)(`h3`,{children:t.versions}),(0,m.jsx)(`div`,{children:e.map(e=>(0,m.jsxs)(`article`,{children:[(0,m.jsxs)(`div`,{className:`project-stack-version-identity`,children:[(0,m.jsx)(`strong`,{children:e.name}),(0,m.jsx)(`code`,{children:e.version??t.versionUnavailable})]}),(0,m.jsx)(`span`,{className:`is-${e.verification}`,children:e.verification===`exact`?t.exact:e.verification===`constraint`?t.constraint:t.versionUnavailable}),e.source?(0,m.jsx)(`small`,{children:e.source}):null]},e.name))})]})}var v={"pt-BR":{eyebrow:`Configurações`,title:`Configuração do projeto`,intro:`Edite o arquivo central do projeto com validação do schema antes da gravação.`,loading:`Carregando…`,back:`Voltar ao dashboard`,save:`Salvar configurações`,saving:`Validando e salvando…`,saved:`Configurações salvas e validadas.`,framework:`Framework ZAIP-AIOS`,frameworkHint:`Ativa ou desativa o framework para este projeto.`,identity:`Identidade do projeto`,stack:`Stack e linguagens`,execution:`Execução`,assurance:`Assurance`,executionToggleHint:`Grava ou remove o bloco execution. Sem ele, o projeto usa execução manual.`,runtimeHint:`Manual apenas materializa o trabalho; autonomous executa a DAG pelo provider configurado quando as precondições passam.`,providerHint:`Provider que inicia os agentes da execução autônoma: Codex ou Claude.`,executionModelHint:`Modelo-base do runtime autônomo. A política automática de PRD/SPEC ainda pode selecionar um modelo permitido por agente.`,parallelismHint:`Teto de agentes simultâneos. O valor efetivo é o menor limite entre projeto, DAG, provider e squad.`,leaseHint:`Valor persistido no projeto. O coordenador atual ainda usa internamente um lease fixo de 60 segundos.`,assuranceToggleHint:`Ativa ou remove os gates de evidência, revisão e qualidade do projeto. Recomenda-se manter ativo.`,assuranceVersionHint:`Versão do contrato de assurance. É fixa e somente leitura.`,assuranceDepthHint:`Auto ajusta o rigor ao escopo; base exige o conjunto padrão; elevated amplia validações para mudanças mais abrangentes.`,finalCommitHint:`Exige que as evidências comprovem o commit final integrado. Sinais de produção ou migração ainda podem exigir isso mesmo quando desativado.`,context:`Contexto`,overview:`Visão geral do projeto`,available:`Criado`,unavailable:`Ainda não criado`,componentGuide:`Preencha cada responsabilidade separadamente. A versão fica sem prefixos (^, ~, >=) e a referência identifica o pacote, imagem ou serviço.`,versionHint:`Versão exata: 22.16.0 ou 17.6. Deixe vazio para serviços sem versão fixada.`,referenceHint:`Ex.: npm:hono, docker:node:22.16.0-bookworm-slim, service:supabase ou provider:cloudflare-pages.`,overrides:`Opções avançadas (JSON)`,overridesHint:`Use apenas fatos técnicos transversais confirmados. Deixe vazio quando não houver exceções.`,versions:`Versões verificadas no workspace`,exact:`Verificada`,constraint:`Requisito`,versionUnavailable:`Não encontrada`,contextGuide:`O contexto começa pelas fontes canônicas e inclui somente arquivos relevantes para a tarefa. Saídas geradas são consultadas apenas em setup, release ou checagem de paridade.`,contextDomains:`Branding, Marketing, Growth e Sales são usados sob demanda pelos respectivos especialistas, quando houver uma tarefa e artefatos desses domínios. Não os adicione aqui apenas por existirem como capacidades.`},"en-US":{eyebrow:`Settings`,title:`Project settings`,intro:`Edit the central project file with schema validation before writing.`,loading:`Loading project settings…`,back:`Back to dashboard`,save:`Save settings`,saving:`Validating and saving…`,saved:`Settings saved and validated.`,framework:`ZAIP-AIOS framework`,frameworkHint:`Enable or disable the framework for this project.`,identity:`Project identity`,stack:`Stack and languages`,execution:`Execution`,assurance:`Assurance`,executionToggleHint:`Writes or removes the execution block. Without it, the project uses manual execution.`,runtimeHint:`Manual only materializes work; autonomous runs the DAG through the configured provider after preconditions pass.`,providerHint:`Provider that starts autonomous execution agents: Codex or Claude.`,executionModelHint:`Base model for the autonomous runtime. PRD/SPEC automatic policy may still select an allowed model per agent.`,parallelismHint:`Maximum simultaneous agents. Effective parallelism is the smallest project, DAG, provider, and squad limit.`,leaseHint:`Value persisted in the project. The current coordinator still uses a fixed internal 60-second lease.`,assuranceToggleHint:`Enables or removes project evidence, review, and quality gates. Keeping it enabled is recommended.`,assuranceVersionHint:`Assurance contract version. It is fixed and read-only.`,assuranceDepthHint:`Auto adapts rigor to scope; base uses the standard set; elevated expands validation for broader changes.`,finalCommitHint:`Requires evidence for the final integrated commit. Production or migration signals may still require it when disabled.`,context:`Context`,overview:`Project overview`,available:`Created`,unavailable:`Not created yet`,componentGuide:`Fill each responsibility separately. Versions have no prefixes (^, ~, >=), and the reference identifies the package, image, or service.`,versionHint:`Exact version: 22.16.0 or 17.6. Leave blank for services without a pinned version.`,referenceHint:`E.g. npm:hono, docker:node:22.16.0-bookworm-slim, service:supabase, or provider:cloudflare-pages.`,overrides:`Advanced options (JSON)`,overridesHint:`Use only confirmed cross-cutting technical facts. Leave empty when there are no exceptions.`,versions:`Versions verified in the workspace`,exact:`Verified`,constraint:`Requirement`,versionUnavailable:`Not found`,contextGuide:`Context starts from canonical sources and includes only files relevant to the task. Generated outputs are consulted only for setup, release, or parity checks.`,contextDomains:`Branding, Marketing, Growth, and Sales are used on demand by their respective specialists when there is a task and artifacts in those domains. Do not add them here merely because they exist as capabilities.`}};function y({api:e,locale:t,onClose:r}){let u=v[t],[d,f]=(0,n.useState)(null),[p,h]=(0,n.useState)(null),[y,T]=(0,n.useState)(null),[E,D]=(0,n.useState)(`{}`),[O,k]=(0,n.useState)(!1),[A,j]=(0,n.useState)(null),[M,N]=(0,n.useState)(null);(0,n.useEffect)(()=>{Promise.all([e.projectSettings(),e.projectOverview()]).then(([e,t])=>{let n=i(e);f(e),h(t),T(a(n.components,t.stack_components)),D(n.otherOverrides)}).catch(e=>j(e instanceof Error?e.message:String(e)))},[e]);async function P(t){if(t.preventDefault(),d!==null){k(!0),j(null),N(null);try{let t=await e.saveProjectSettings(o(d,y??i(d).components,E)),n=await e.projectOverview(),r=i(t);f(t),h(n),T(r.components),D(r.otherOverrides),N(u.saved)}catch(e){j(e instanceof Error?e.message:String(e))}finally{k(!1)}}}if(d===null){let e=A===null;return(0,m.jsx)(`main`,{"aria-busy":e,className:`project-settings-state`,children:(0,m.jsxs)(`div`,{"aria-live":e?`polite`:`assertive`,className:`project-settings-state-card`,role:e?`status`:`alert`,children:[e?(0,m.jsx)(`span`,{"aria-hidden":`true`,className:`project-settings-loader`}):null,(0,m.jsx)(`p`,{children:u.eyebrow}),(0,m.jsx)(`h1`,{children:A??u.loading}),(0,m.jsxs)(`button`,{onClick:r,type:`button`,children:[`← `,u.back]})]})})}return(0,m.jsx)(`main`,{className:`project-settings-page`,children:(0,m.jsxs)(`form`,{onSubmit:P,children:[(0,m.jsxs)(`header`,{className:`project-settings-header`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`p`,{children:u.eyebrow}),(0,m.jsx)(`h1`,{children:u.title}),(0,m.jsx)(`span`,{children:u.intro})]}),(0,m.jsxs)(`button`,{className:`project-settings-back`,onClick:r,type:`button`,children:[`← `,u.back]})]}),A?(0,m.jsx)(`div`,{className:`project-settings-message is-error`,children:A}):null,M?(0,m.jsx)(`div`,{className:`project-settings-message is-success`,role:`status`,children:M}):null,(0,m.jsxs)(`section`,{className:`project-settings-feature`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsxs)(`h2`,{children:[u.framework,l(p?.framework_version)?` - ${l(p?.framework_version)}`:``]}),(0,m.jsx)(`p`,{children:u.frameworkHint})]}),(0,m.jsx)(S,{checked:d.zaip?.enabled===!0,label:t===`pt-BR`?`Framework ativo`:`Framework enabled`,onChange:e=>f({...d,zaip:{enabled:e}})})]}),(0,m.jsx)(`section`,{className:`project-settings-summary`,"aria-label":u.overview,children:p?.metrics.map(e=>(0,m.jsxs)(`div`,{className:`project-settings-metric`,children:[(0,m.jsx)(`strong`,{children:e.value}),(0,m.jsx)(`span`,{children:e.label})]},e.id))}),(0,m.jsx)(b,{className:`is-wide`,title:u.overview,children:(0,m.jsx)(`div`,{className:`project-overview`,"aria-live":`polite`,children:p?.areas.map(e=>(0,m.jsxs)(`div`,{className:`project-overview-item`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`strong`,{children:e.label}),(0,m.jsx)(`code`,{children:e.artifact})]}),(0,m.jsx)(`span`,{className:e.available?`is-available`:`is-unavailable`,children:e.available?u.available:u.unavailable})]},e.id))})}),(0,m.jsxs)(`div`,{className:`project-settings-grid`,children:[(0,m.jsxs)(b,{className:`is-wide project-identity-card`,title:u.identity,children:[(0,m.jsx)(x,{label:`Schema`,children:(0,m.jsx)(`input`,{readOnly:!0,value:d.schema_version})}),(0,m.jsx)(x,{label:t===`pt-BR`?`ID do projeto`:`Project ID`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.id,onChange:e=>f({...d,project:{...d.project,id:e.target.value}})})}),(0,m.jsx)(x,{label:t===`pt-BR`?`Nome do projeto`:`Project name`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.name,onChange:e=>f({...d,project:{...d.project,name:e.target.value}})})}),(0,m.jsx)(x,{label:`Timezone IANA`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.timezone,onChange:e=>f({...d,project:{...d.project,timezone:e.target.value}})})})]}),(0,m.jsxs)(b,{className:`is-wide`,title:u.stack,children:[(0,m.jsx)(`p`,{className:`project-stack-guide`,children:u.componentGuide}),y?(0,m.jsx)(g,{components:y,locale:t,onChange:T,referenceHint:u.referenceHint,versionHint:u.versionHint}):null,(0,m.jsx)(_,{components:p?.stack_components??[],text:u}),(0,m.jsxs)(`details`,{className:`project-settings-advanced`,children:[(0,m.jsx)(`summary`,{children:u.overrides}),(0,m.jsx)(x,{hint:u.overridesHint,label:`Overrides`,children:(0,m.jsx)(`textarea`,{rows:7,value:E,onChange:e=>D(e.target.value)})})]})]}),(0,m.jsxs)(b,{title:u.execution,children:[(0,m.jsx)(C,{checked:d.execution!==void 0,hint:u.executionToggleHint,label:t===`pt-BR`?`Incluir configuração de execução`:`Include execution configuration`,onChange:e=>f({...d,execution:e?{runtime:`manual`}:void 0})}),d.execution?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:u.runtimeHint,label:`Runtime`,children:(0,m.jsxs)(`select`,{value:d.execution.runtime,onChange:e=>f({...d,execution:e.target.value===`manual`?{runtime:`manual`}:c()}),children:[(0,m.jsx)(`option`,{value:`manual`,children:`manual`}),(0,m.jsx)(`option`,{value:`autonomous`,children:`autonomous`})]})}),d.execution.runtime===`autonomous`?(0,m.jsx)(w,{config:d,setConfig:f,text:u}):null]}):null]}),(0,m.jsxs)(b,{title:u.assurance,children:[(0,m.jsx)(C,{checked:d.assurance!==void 0,hint:u.assuranceToggleHint,label:t===`pt-BR`?`Incluir assurance`:`Include assurance`,onChange:e=>f({...d,assurance:e?{version:1,standard_depth:`auto`,require_final_commit:!0}:void 0})}),d.assurance?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:u.assuranceVersionHint,label:t===`pt-BR`?`Versão`:`Version`,children:(0,m.jsx)(`input`,{readOnly:!0,value:d.assurance.version})}),(0,m.jsx)(x,{hint:u.assuranceDepthHint,label:t===`pt-BR`?`Profundidade padrão`:`Standard depth`,children:(0,m.jsxs)(`select`,{value:d.assurance.standard_depth,onChange:e=>f({...d,assurance:{...d.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},standard_depth:e.target.value}}),children:[(0,m.jsx)(`option`,{value:`auto`,children:`auto`}),(0,m.jsx)(`option`,{value:`base`,children:`base`}),(0,m.jsx)(`option`,{value:`elevated`,children:`elevated`})]})}),(0,m.jsx)(S,{checked:d.assurance.require_final_commit,hint:u.finalCommitHint,label:t===`pt-BR`?`Exigir commit final`:`Require final commit`,onChange:e=>f({...d,assurance:{...d.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},require_final_commit:e}})})]}):null]}),(0,m.jsxs)(b,{className:`is-wide`,title:u.context,children:[(0,m.jsx)(C,{checked:d.context!==void 0,label:t===`pt-BR`?`Incluir raízes de contexto`:`Include context roots`,onChange:e=>f({...d,context:e?{canonical_roots:[`packages`],projection_roots:[]}:void 0})}),d.context?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`div`,{className:`project-settings-guidance`,children:[(0,m.jsx)(`p`,{children:u.contextGuide}),(0,m.jsx)(`p`,{children:u.contextDomains})]}),(0,m.jsxs)(`div`,{className:`project-settings-fields two-columns`,children:[(0,m.jsx)(x,{hint:t===`pt-BR`?`Uma pasta por linha. Estas são as fontes principais do projeto.`:`One folder per line. These are the project's primary sources.`,label:t===`pt-BR`?`Fontes canônicas`:`Canonical sources`,children:(0,m.jsx)(`textarea`,{required:!0,rows:5,value:d.context.canonical_roots.join(`
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.verification===`exact`&&e.version!==null).map(e=>[e.name.toLowerCase(),e.version]));return Object.fromEntries(r.map(t=>{let r=e[t.id],i=n.get(u(t.id));return[t.id,r.version!==``||i===void 0?r:{...r,version:i}]}))}function o(e,t,n){let i=JSON.parse(n);if(!p(i))throw Error(`Demais overrides deve ser um objeto JSON.`);let{languages:a,components:o,...s}=i;for(let e of r){let n=t[e.id].version.trim();if(n!==``&&!/^\d+\.\d+(?:\.\d+)?(?:[-+][0-9A-Za-z.-]+)?$/.test(n))throw Error(`A versão de ${t[e.id].name||e.defaultName} deve ser exata, como 22.16.0 ou 17.6, sem ^, ~, >= ou latest.`)}let c=Object.fromEntries(r.map(e=>[e.id,{name:t[e.id].name.trim()||e.defaultName,version:t[e.id].version.trim(),reference:t[e.id].reference.trim()}]));return{...e,stack:{...e.stack,overrides:{...s,components:c,languages:{frontend:d(c,`frontend`),backend:d(c,`backend`),site:d(c,`site`)}}}}}function s(e){return[...new Set(e.split(/\r?\n/).map(e=>e.trim()).filter(Boolean))]}function c(){return{runtime:`autonomous`,autonomous:{provider:`codex`,model:`gpt-5.6-terra`,max_parallelism:1,lease_ms:6e4}}}function l(e){let t=e?.match(/^v?(\d+)\.(\d+)\.\d+(?:[-+][0-9A-Za-z.-]+)?$/);return t?`v${t[1]}.${t[2]}`:null}function u(e){return e===`backend_runtime`?`node.js`:e===`backend_api`?`hono`:e===`site_framework`?`astro`:e===`cache_messaging`?`redis`:e===`async_queue`?`bullmq`:e===`web_framework`||e===`site_islands`?`react`:e===`web_build`||e===`site_build`?`vite`:e===`primary_language`||e===`web_language`||e===`site_language`?`typescript`:``}function d(e,t){return[...new Set(r.filter(e=>e.scope===t).map(t=>e[t.id].name.trim()).filter(Boolean))]}function f(e){return typeof e==`string`?e:``}function p(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var m=t(),h={primary_language:{pt:`Linguagem principal`,en:`Primary language`},backend_runtime:{pt:`Runtime backend`,en:`Backend runtime`},backend_api:{pt:`Framework backend / API`,en:`Backend framework / API`},query_builder:{pt:`Query builder`,en:`Query builder`},database:{pt:`Banco de dados`,en:`Database`},auth_storage:{pt:`Autenticação e Storage`,en:`Authentication and Storage`},cache_messaging:{pt:`Cache e mensageria`,en:`Cache and messaging`},async_queue:{pt:`Filas e processamento assíncrono`,en:`Queues and async processing`},backend_infrastructure:{pt:`Infraestrutura backend`,en:`Backend infrastructure`},web_framework:{pt:`Framework do Web App`,en:`Web App framework`},web_language:{pt:`Linguagem do Web App`,en:`Web App language`},web_build:{pt:`Build do Web App`,en:`Web App build`},frontend_hosting:{pt:`Hospedagem do frontend`,en:`Frontend hosting`},site_framework:{pt:`Framework do site`,en:`Site framework`},site_language:{pt:`Linguagem do site`,en:`Site language`},site_islands:{pt:`Componentes interativos`,en:`Interactive components`},site_build:{pt:`Build do site`,en:`Site build`},site_hosting:{pt:`Hospedagem do site`,en:`Site hosting`}};function g({components:e,locale:t,onChange:n,referenceHint:i,versionHint:a}){let o=[{scope:`backend`,title:t===`pt-BR`?`Backend e dados`:`Backend and data`},{scope:`frontend`,title:`Web App`},{scope:`site`,title:t===`pt-BR`?`Site e landing pages`:`Site and landing pages`}],s=(t,r,i)=>n({...e,[t]:{...e[t],[r]:i}});return(0,m.jsxs)(`div`,{className:`project-stack-editor`,children:[o.map(n=>(0,m.jsxs)(`section`,{children:[(0,m.jsx)(`h3`,{children:n.title}),(0,m.jsxs)(`div`,{className:`project-stack-table`,children:[(0,m.jsxs)(`div`,{className:`project-stack-table-head`,"aria-hidden":`true`,children:[(0,m.jsx)(`span`,{children:`Item`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Tecnologia`:`Technology`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Versão exata`:`Exact version`}),(0,m.jsx)(`span`,{children:t===`pt-BR`?`Pacote / imagem / serviço`:`Package / image / service`})]}),r.filter(e=>e.scope===n.scope).map(n=>(0,m.jsxs)(`div`,{className:`project-stack-row`,children:[(0,m.jsx)(`strong`,{children:h[n.id][t===`pt-BR`?`pt`:`en`]}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: tecnologia`,value:e[n.id].name,onChange:e=>s(n.id,`name`,e.target.value)}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: versão exata`,inputMode:`decimal`,placeholder:`x.y.z`,value:e[n.id].version,onChange:e=>s(n.id,`version`,e.target.value)}),(0,m.jsx)(`input`,{"aria-label":`${h[n.id].pt}: referência`,placeholder:`npm:pacote ou service:nome`,value:e[n.id].reference,onChange:e=>s(n.id,`reference`,e.target.value)})]},n.id))]})]},n.scope)),(0,m.jsxs)(`div`,{className:`project-stack-format-help`,children:[(0,m.jsxs)(`p`,{children:[(0,m.jsx)(`strong`,{children:t===`pt-BR`?`Formato da versão:`:`Version format:`}),` `,a]}),(0,m.jsxs)(`p`,{children:[(0,m.jsx)(`strong`,{children:t===`pt-BR`?`Formato da referência:`:`Reference format:`}),` `,i]})]})]})}function _({components:e,text:t}){return e.length===0?null:(0,m.jsxs)(`section`,{className:`project-stack-versions`,"aria-label":t.versions,children:[(0,m.jsx)(`h3`,{children:t.versions}),(0,m.jsx)(`div`,{children:e.map(e=>(0,m.jsxs)(`article`,{children:[(0,m.jsxs)(`div`,{className:`project-stack-version-identity`,children:[(0,m.jsx)(`strong`,{children:e.name}),(0,m.jsx)(`code`,{children:e.version??t.versionUnavailable})]}),(0,m.jsx)(`span`,{className:`is-${e.verification}`,children:e.verification===`exact`?t.exact:e.verification===`constraint`?t.constraint:t.versionUnavailable}),e.source?(0,m.jsx)(`small`,{children:e.source}):null]},e.name))})]})}var v={"pt-BR":{eyebrow:`Configurações`,title:`Configuração do projeto`,intro:`Edite o arquivo central do projeto com validação do schema antes da gravação.`,loading:`Carregando…`,back:`Voltar ao dashboard`,save:`Salvar configurações`,saving:`Validando e salvando…`,saved:`Configurações salvas e validadas.`,framework:`Framework ZAIP-AIOS`,frameworkHint:`Ativa ou desativa o framework para este projeto.`,identity:`Identidade do projeto`,stack:`Stack e linguagens`,execution:`Execução`,assurance:`Assurance`,executionToggleHint:`Grava ou remove o bloco execution. Sem ele, o projeto usa execução manual.`,runtimeHint:`Manual apenas materializa o trabalho; autonomous executa a DAG pelo provider configurado quando as precondições passam.`,providerHint:`Provider que inicia os agentes da execução autônoma: Codex ou Claude.`,executionModelHint:`Modelo-base do runtime autônomo. A política automática de PRD/SPEC ainda pode selecionar um modelo permitido por agente.`,parallelismHint:`Teto de agentes simultâneos. O valor efetivo é o menor limite entre projeto, DAG, provider e squad.`,leaseHint:`Valor persistido no projeto. O coordenador atual ainda usa internamente um lease fixo de 60 segundos.`,assuranceToggleHint:`Ativa ou remove os gates de evidência, revisão e qualidade do projeto. Recomenda-se manter ativo.`,assuranceVersionHint:`Versão do contrato de assurance. É fixa e somente leitura.`,assuranceDepthHint:`Auto ajusta o rigor ao escopo; base exige o conjunto padrão; elevated amplia validações para mudanças mais abrangentes.`,finalCommitHint:`Exige que as evidências comprovem o commit final integrado. Sinais de produção ou migração ainda podem exigir isso mesmo quando desativado.`,context:`Contexto`,overview:`Visão geral do projeto`,available:`Criado`,unavailable:`Ainda não criado`,componentGuide:`Preencha cada responsabilidade separadamente. A versão fica sem prefixos (^, ~, >=) e a referência identifica o pacote, imagem ou serviço.`,versionHint:`Versão exata: 22.16.0 ou 17.6. Deixe vazio para serviços sem versão fixada.`,referenceHint:`Ex.: npm:hono, docker:node:22.16.0-bookworm-slim, service:supabase ou provider:cloudflare-pages.`,overrides:`Opções avançadas (JSON)`,overridesHint:`Use apenas fatos técnicos transversais confirmados. Deixe vazio quando não houver exceções.`,versions:`Versões verificadas no workspace`,exact:`Verificada`,constraint:`Requisito`,versionUnavailable:`Não encontrada`,contextGuide:`O contexto começa pelas fontes canônicas e inclui somente arquivos relevantes para a tarefa. Saídas geradas são consultadas apenas em setup, release ou checagem de paridade.`,contextDomains:`Branding, Marketing, Growth e Sales são usados sob demanda pelos respectivos especialistas, quando houver uma tarefa e artefatos desses domínios. Não os adicione aqui apenas por existirem como capacidades.`},"en-US":{eyebrow:`Settings`,title:`Project settings`,intro:`Edit the central project file with schema validation before writing.`,loading:`Loading project settings…`,back:`Back to dashboard`,save:`Save settings`,saving:`Validating and saving…`,saved:`Settings saved and validated.`,framework:`ZAIP-AIOS framework`,frameworkHint:`Enable or disable the framework for this project.`,identity:`Project identity`,stack:`Stack and languages`,execution:`Execution`,assurance:`Assurance`,executionToggleHint:`Writes or removes the execution block. Without it, the project uses manual execution.`,runtimeHint:`Manual only materializes work; autonomous runs the DAG through the configured provider after preconditions pass.`,providerHint:`Provider that starts autonomous execution agents: Codex or Claude.`,executionModelHint:`Base model for the autonomous runtime. PRD/SPEC automatic policy may still select an allowed model per agent.`,parallelismHint:`Maximum simultaneous agents. Effective parallelism is the smallest project, DAG, provider, and squad limit.`,leaseHint:`Value persisted in the project. The current coordinator still uses a fixed internal 60-second lease.`,assuranceToggleHint:`Enables or removes project evidence, review, and quality gates. Keeping it enabled is recommended.`,assuranceVersionHint:`Assurance contract version. It is fixed and read-only.`,assuranceDepthHint:`Auto adapts rigor to scope; base uses the standard set; elevated expands validation for broader changes.`,finalCommitHint:`Requires evidence for the final integrated commit. Production or migration signals may still require it when disabled.`,context:`Context`,overview:`Project overview`,available:`Created`,unavailable:`Not created yet`,componentGuide:`Fill each responsibility separately. Versions have no prefixes (^, ~, >=), and the reference identifies the package, image, or service.`,versionHint:`Exact version: 22.16.0 or 17.6. Leave blank for services without a pinned version.`,referenceHint:`E.g. npm:hono, docker:node:22.16.0-bookworm-slim, service:supabase, or provider:cloudflare-pages.`,overrides:`Advanced options (JSON)`,overridesHint:`Use only confirmed cross-cutting technical facts. Leave empty when there are no exceptions.`,versions:`Versions verified in the workspace`,exact:`Verified`,constraint:`Requirement`,versionUnavailable:`Not found`,contextGuide:`Context starts from canonical sources and includes only files relevant to the task. Generated outputs are consulted only for setup, release, or parity checks.`,contextDomains:`Branding, Marketing, Growth, and Sales are used on demand by their respective specialists when there is a task and artifacts in those domains. Do not add them here merely because they exist as capabilities.`}};function y({api:e,locale:t,onClose:r}){let u=v[t],[d,f]=(0,n.useState)(null),[p,h]=(0,n.useState)(null),[y,T]=(0,n.useState)(null),[E,D]=(0,n.useState)(`{}`),[O,k]=(0,n.useState)(!1),[A,j]=(0,n.useState)(null),[M,N]=(0,n.useState)(null);(0,n.useEffect)(()=>{Promise.all([e.projectSettings(),e.projectOverview()]).then(([e,t])=>{let n=i(e);f(e),h(t),T(a(n.components,t.stack_components)),D(n.otherOverrides)}).catch(e=>j(e instanceof Error?e.message:String(e)))},[e]);async function P(t){if(t.preventDefault(),d!==null){k(!0),j(null),N(null);try{let t=await e.saveProjectSettings(o(d,y??i(d).components,E)),n=await e.projectOverview(),r=i(t);f(t),h(n),T(r.components),D(r.otherOverrides),N(u.saved)}catch(e){j(e instanceof Error?e.message:String(e))}finally{k(!1)}}}if(d===null){let e=A===null;return(0,m.jsx)(`main`,{"aria-busy":e,className:`project-settings-state`,children:(0,m.jsxs)(`div`,{"aria-live":e?`polite`:`assertive`,className:`project-settings-state-card`,role:e?`status`:`alert`,children:[e?(0,m.jsx)(`span`,{"aria-hidden":`true`,className:`project-settings-loader`}):null,(0,m.jsx)(`p`,{children:u.eyebrow}),(0,m.jsx)(`h1`,{children:A??u.loading}),(0,m.jsxs)(`button`,{onClick:r,type:`button`,children:[`← `,u.back]})]})})}return(0,m.jsx)(`main`,{className:`project-settings-page`,children:(0,m.jsxs)(`form`,{onSubmit:P,children:[(0,m.jsxs)(`header`,{className:`project-settings-header`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`p`,{children:u.eyebrow}),(0,m.jsx)(`h1`,{children:u.title}),(0,m.jsx)(`span`,{children:u.intro})]}),(0,m.jsxs)(`button`,{className:`project-settings-back`,onClick:r,type:`button`,children:[`← `,u.back]})]}),A?(0,m.jsx)(`div`,{className:`project-settings-message is-error`,children:A}):null,M?(0,m.jsx)(`div`,{className:`project-settings-message is-success`,role:`status`,children:M}):null,(0,m.jsxs)(`section`,{className:`project-settings-feature`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsxs)(`h2`,{children:[u.framework,l(p?.framework_version)?` - ${l(p?.framework_version)}`:``]}),(0,m.jsx)(`p`,{children:u.frameworkHint})]}),(0,m.jsx)(S,{checked:d.zaip?.enabled===!0,label:t===`pt-BR`?`Framework ativo`:`Framework enabled`,onChange:e=>f({...d,zaip:{enabled:e}})})]}),(0,m.jsx)(`section`,{className:`project-settings-summary`,"aria-label":u.overview,children:p?.metrics.map(e=>(0,m.jsxs)(`div`,{className:`project-settings-metric`,children:[(0,m.jsx)(`strong`,{children:e.value}),(0,m.jsx)(`span`,{children:e.label})]},e.id))}),(0,m.jsx)(b,{className:`is-wide`,title:u.overview,children:(0,m.jsx)(`div`,{className:`project-overview`,"aria-live":`polite`,children:p?.areas.map(e=>(0,m.jsxs)(`div`,{className:`project-overview-item`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`strong`,{children:e.label}),(0,m.jsx)(`code`,{children:e.artifact})]}),(0,m.jsx)(`span`,{className:e.available?`is-available`:`is-unavailable`,children:e.available?u.available:u.unavailable})]},e.id))})}),(0,m.jsxs)(`div`,{className:`project-settings-grid`,children:[(0,m.jsxs)(b,{className:`is-wide project-identity-card`,title:u.identity,children:[(0,m.jsx)(x,{label:`Schema`,children:(0,m.jsx)(`input`,{readOnly:!0,value:d.schema_version})}),(0,m.jsx)(x,{label:t===`pt-BR`?`ID do projeto`:`Project ID`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.id,onChange:e=>f({...d,project:{...d.project,id:e.target.value}})})}),(0,m.jsx)(x,{label:t===`pt-BR`?`Nome do projeto`:`Project name`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.name,onChange:e=>f({...d,project:{...d.project,name:e.target.value}})})}),(0,m.jsx)(x,{label:`Timezone IANA`,children:(0,m.jsx)(`input`,{required:!0,value:d.project.timezone,onChange:e=>f({...d,project:{...d.project,timezone:e.target.value}})})})]}),(0,m.jsxs)(b,{className:`is-wide`,title:u.stack,children:[(0,m.jsx)(`p`,{className:`project-stack-guide`,children:u.componentGuide}),y?(0,m.jsx)(g,{components:y,locale:t,onChange:T,referenceHint:u.referenceHint,versionHint:u.versionHint}):null,(0,m.jsx)(_,{components:p?.stack_components??[],text:u}),(0,m.jsxs)(`details`,{className:`project-settings-advanced`,children:[(0,m.jsx)(`summary`,{children:u.overrides}),(0,m.jsx)(x,{hint:u.overridesHint,label:`Overrides`,children:(0,m.jsx)(`textarea`,{rows:7,value:E,onChange:e=>D(e.target.value)})})]})]}),(0,m.jsxs)(b,{title:u.execution,children:[(0,m.jsx)(C,{checked:d.execution!==void 0,hint:u.executionToggleHint,label:t===`pt-BR`?`Incluir configuração de execução`:`Include execution configuration`,onChange:e=>f({...d,execution:e?{runtime:`manual`}:void 0})}),d.execution?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:u.runtimeHint,label:`Runtime`,children:(0,m.jsxs)(`select`,{value:d.execution.runtime,onChange:e=>f({...d,execution:e.target.value===`manual`?{runtime:`manual`}:c()}),children:[(0,m.jsx)(`option`,{value:`manual`,children:`manual`}),(0,m.jsx)(`option`,{value:`autonomous`,children:`autonomous`})]})}),d.execution.runtime===`autonomous`?(0,m.jsx)(w,{config:d,setConfig:f,text:u}):null]}):null]}),(0,m.jsxs)(b,{title:u.assurance,children:[(0,m.jsx)(C,{checked:d.assurance!==void 0,hint:u.assuranceToggleHint,label:t===`pt-BR`?`Incluir assurance`:`Include assurance`,onChange:e=>f({...d,assurance:e?{version:1,standard_depth:`auto`,require_final_commit:!0}:void 0})}),d.assurance?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:u.assuranceVersionHint,label:t===`pt-BR`?`Versão`:`Version`,children:(0,m.jsx)(`input`,{readOnly:!0,value:d.assurance.version})}),(0,m.jsx)(x,{hint:u.assuranceDepthHint,label:t===`pt-BR`?`Profundidade padrão`:`Standard depth`,children:(0,m.jsxs)(`select`,{value:d.assurance.standard_depth,onChange:e=>f({...d,assurance:{...d.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},standard_depth:e.target.value}}),children:[(0,m.jsx)(`option`,{value:`auto`,children:`auto`}),(0,m.jsx)(`option`,{value:`base`,children:`base`}),(0,m.jsx)(`option`,{value:`elevated`,children:`elevated`})]})}),(0,m.jsx)(S,{checked:d.assurance.require_final_commit,hint:u.finalCommitHint,label:t===`pt-BR`?`Exigir commit final`:`Require final commit`,onChange:e=>f({...d,assurance:{...d.assurance??{version:1,standard_depth:`auto`,require_final_commit:!0},require_final_commit:e}})})]}):null]}),(0,m.jsxs)(b,{className:`is-wide`,title:u.context,children:[(0,m.jsx)(C,{checked:d.context!==void 0,label:t===`pt-BR`?`Incluir raízes de contexto`:`Include context roots`,onChange:e=>f({...d,context:e?{canonical_roots:[`packages`],projection_roots:[]}:void 0})}),d.context?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`div`,{className:`project-settings-guidance`,children:[(0,m.jsx)(`p`,{children:u.contextGuide}),(0,m.jsx)(`p`,{children:u.contextDomains})]}),(0,m.jsxs)(`div`,{className:`project-settings-fields two-columns`,children:[(0,m.jsx)(x,{hint:t===`pt-BR`?`Uma pasta por linha. Estas são as fontes principais do projeto.`:`One folder per line. These are the project's primary sources.`,label:t===`pt-BR`?`Fontes canônicas`:`Canonical sources`,children:(0,m.jsx)(`textarea`,{required:!0,rows:5,value:d.context.canonical_roots.join(`
2
2
  `),onChange:e=>f({...d,context:{...d.context??{canonical_roots:[`packages`],projection_roots:[]},canonical_roots:s(e.target.value)}})})}),(0,m.jsx)(x,{hint:t===`pt-BR`?`Uma pasta por linha. São saídas geradas, não fontes de contexto normal.`:`One folder per line. These are generated outputs, not normal context sources.`,label:t===`pt-BR`?`Saídas geradas/publicadas`:`Generated/published outputs`,children:(0,m.jsx)(`textarea`,{rows:5,value:d.context.projection_roots.join(`
3
3
  `),onChange:e=>f({...d,context:{...d.context??{canonical_roots:[`packages`],projection_roots:[]},projection_roots:s(e.target.value)}})})})]})]}):null]})]}),(0,m.jsxs)(`footer`,{className:`project-settings-footer`,children:[(0,m.jsx)(`span`,{children:`.agents/config/project.yaml`}),(0,m.jsx)(`button`,{disabled:O,type:`submit`,children:O?u.saving:u.save})]})]})})}function b({children:e,className:t=``,title:n}){return(0,m.jsxs)(`section`,{className:`project-settings-card ${t}`,children:[(0,m.jsx)(`h2`,{children:n}),(0,m.jsx)(`div`,{className:`project-settings-fields`,children:e})]})}function x({children:e,hint:t,label:n}){return(0,m.jsxs)(`div`,{className:`project-settings-field`,children:[(0,m.jsx)(`span`,{children:n}),e,t?(0,m.jsx)(`small`,{children:t}):null]})}function S({checked:e,hint:t,label:n,onChange:r}){return(0,m.jsxs)(`div`,{className:`project-settings-toggle-field`,children:[(0,m.jsxs)(`label`,{className:`project-settings-toggle`,children:[(0,m.jsx)(`input`,{checked:e,onChange:e=>r(e.target.checked),type:`checkbox`}),(0,m.jsx)(`span`,{"aria-hidden":`true`}),(0,m.jsx)(`strong`,{children:n})]}),t?(0,m.jsx)(`small`,{children:t}):null]})}function C(e){return(0,m.jsx)(S,{...e})}function w({config:e,setConfig:t,text:n}){let r=e.execution?.runtime===`autonomous`?e.execution:c(),i=n=>t({...e,execution:{runtime:`autonomous`,autonomous:n}});return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x,{hint:n.providerHint,label:`Provider`,children:(0,m.jsxs)(`select`,{value:r.autonomous.provider,onChange:e=>i({...r.autonomous,provider:e.target.value}),children:[(0,m.jsx)(`option`,{value:`codex`,children:`codex`}),(0,m.jsx)(`option`,{value:`claude`,children:`claude`})]})}),(0,m.jsx)(x,{hint:n.executionModelHint,label:`Model`,children:(0,m.jsx)(`input`,{required:!0,value:r.autonomous.model,onChange:e=>i({...r.autonomous,model:e.target.value})})}),(0,m.jsx)(x,{hint:n.parallelismHint,label:`Max parallelism`,children:(0,m.jsx)(`input`,{max:8,min:1,type:`number`,value:r.autonomous.max_parallelism,onChange:e=>i({...r.autonomous,max_parallelism:Number(e.target.value)})})}),(0,m.jsx)(x,{hint:n.leaseHint,label:`Lease (ms)`,children:(0,m.jsx)(`input`,{max:36e5,min:5e3,step:1e3,type:`number`,value:r.autonomous.lease_ms,onChange:e=>i({...r.autonomous,lease_ms:Number(e.target.value)})})})]})}export{y as ProjectSettingsPage};
@@ -1 +1 @@
1
- import{S as e,b as t}from"./cost-monitor-Csj6LiAt.js";import{n}from"./traceability-9Mtvbwrg.js";import{t as r}from"./index-DIwDvCu5.js";var i=e(),a=t();function o(e,t){let n=t.trim().toLocaleLowerCase();return n===``?[...e]:e.filter(e=>`${e.title} ${e.id}`.toLocaleLowerCase().includes(n))}function s(e,t,n){return n?[...e]:o(e,t)}function c(e){return`traceability-task-option-${e}`}function l({locale:e,loadingTaskId:t,hasMoreTasks:o,isLoadingTasks:l,onLoadMoreTasks:u,onSelectTask:d,onOpenChange:f,onOpenPrd:p,onOpenSpec:m,selectedTaskId:h,tasks:g,trace:_}){let v=[...g].sort((e,t)=>Date.parse(t.created_at)-Date.parse(e.created_at)),y=v.find(e=>e.id===h),[b,x]=(0,i.useState)(()=>y?.title??h),[S,C]=(0,i.useState)(!1),[w,T]=(0,i.useState)(!1),[E,D]=(0,i.useState)(0),[O,k]=(0,i.useState)(12),A=(0,i.useMemo)(()=>s(v,b,w),[b,w,v]),j=A.slice(0,O),M=j.length<A.length,N=`traceability-task-search`,P=`traceability-task-results`,F=e===`pt-BR`?`Task selecionada`:`Selected task`,I=e===`pt-BR`?`Buscar task por nome ou ID`:`Search task by name or ID`,L=S?A[E]?.id:void 0;(0,i.useEffect)(()=>{x(y?.title??h),D(0)},[y?.title,h]);let R=e=>{x(e.title),C(!1),T(!1),d(e.id)},z=(e=!0)=>{C(!0),T(!0),e&&(D(0),k(12))};return(0,a.jsxs)(`section`,{className:`traceability-workspace`,children:[(0,a.jsxs)(`header`,{children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`label`,{htmlFor:N,children:F}),(0,a.jsx)(`input`,{"aria-activedescendant":L===void 0?void 0:c(L),"aria-autocomplete":`list`,"aria-controls":P,"aria-expanded":S,"aria-label":I,id:N,onChange:e=>{x(e.target.value),D(0),T(!1),k(12),C(!0)},onClick:()=>z(),onFocus:()=>z(),onKeyDown:e=>{if(e.key===`ArrowDown`)e.preventDefault(),z(!1),D(e=>Math.min(e+1,Math.max(0,v.length-1)));else if(e.key===`ArrowUp`)e.preventDefault(),z(!1),D(e=>Math.max(0,e-1));else if(e.key===`Enter`&&S){let t=A[E];t!==void 0&&(e.preventDefault(),R(t))}else e.key===`Escape`&&C(!1)},role:`combobox`,type:`search`,value:b}),S?(0,a.jsx)(`div`,{"aria-label":I,className:`traceability-task-results`,id:P,onScroll:e=>{let{clientHeight:t,scrollHeight:n,scrollTop:i}=e.currentTarget;i+t<n-32||(o&&u(),j.length<A.length&&k(e=>r(e,A.length,12)))},role:`listbox`,children:A.length>0?j.map((e,t)=>(0,a.jsx)(`div`,{role:`presentation`,children:(0,a.jsx)(`button`,{"aria-selected":e.id===h,className:t===E?`is-active`:void 0,id:c(e.id),onClick:()=>R(e),role:`option`,type:`button`,children:(0,a.jsx)(`strong`,{children:e.title})})},e.id)):(0,a.jsx)(`div`,{className:`traceability-task-no-results`,role:`status`,children:e===`pt-BR`?`Nenhuma task encontrada.`:`No tasks found.`})}):null,S&&A.length>0?(0,a.jsx)(`p`,{"aria-live":`polite`,className:`traceability-task-pagination-status`,role:`status`,children:l?e===`pt-BR`?`Carregando mais tasks…`:`Loading more tasks…`:M||o?e===`pt-BR`?`${j.length} de ${A.length} tasks exibidas. Role para carregar mais.`:`${j.length} of ${A.length} tasks shown. Scroll to load more.`:e===`pt-BR`?`${A.length} tasks exibidas. Fim da lista.`:`${A.length} tasks shown. End of list.`}):null]}),(0,a.jsx)(`small`,{children:e===`pt-BR`?`Selecione pelo nome para visualizar o ciclo completo sem precisar do ID.`:`Select by name to inspect the complete lifecycle without knowing the ID.`})]}),t?(0,a.jsx)(`div`,{"aria-live":`polite`,className:`traceability-workspace-loading`,children:e===`pt-BR`?`Carregando as 6 etapas…`:`Loading all 6 stages…`}):_?(0,a.jsx)(n,{embedded:!0,locale:e,onClose:()=>void 0,onOpenChange:f,onOpenPrd:p,onOpenSpec:m,trace:_}):(0,a.jsx)(`p`,{children:e===`pt-BR`?`Nenhuma task disponível.`:`No task available.`})]})}export{l as TraceabilityWorkspace};
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-CblPpexd.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};