@zaip-ai/cli 3.4.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/services/adapters.d.ts +1 -1
  2. package/dist/services/adapters.js +1 -1
  3. package/dist/services/stack-install.d.ts.map +1 -1
  4. package/dist/services/stack-install.js +19 -9
  5. package/dist/services/stack-install.js.map +1 -1
  6. package/dist/services/stack-node.d.ts.map +1 -1
  7. package/dist/services/stack-node.js +1 -1
  8. package/dist/services/stack-node.js.map +1 -1
  9. package/package.json +1 -1
  10. package/templates/.agents/config/agents/discovery.json +1 -1
  11. package/templates/.agents/dashboard/.zaip-managed.json +95 -51
  12. package/templates/.agents/dashboard/apps/frontend/dist/assets/DashboardHelpDialog-BDQR0U4a.js +2938 -0
  13. package/templates/.agents/dashboard/apps/frontend/dist/assets/DashboardHelpDialog-DRI_XwUf.css +1 -0
  14. package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-B9GWkEyN.css → ProjectSettingsPage-CQMhvzvJ.css} +1 -1
  15. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-D46WWIKr.js +3 -0
  16. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-OulA4CoX.js +3 -0
  17. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-CqK3Psfy.js → TraceabilityWorkspace-BKBpJyLh.js} +1 -1
  18. package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-Ckxk_izu.js +1 -0
  19. package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-Cl5EWx8R.js → index-Bas2TVju.js} +2 -2
  20. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-CqfSgtk9.js +2 -0
  21. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-CxrG_wRI.css +1 -0
  22. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-OBJXZOwe.css +1 -0
  23. package/templates/.agents/dashboard/apps/frontend/dist/index.html +2 -2
  24. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  25. package/templates/.agents/dashboard/apps/frontend/src/AppDashboardContent.tsx +0 -2
  26. package/templates/.agents/dashboard/apps/frontend/src/DashboardGlobalSettings.tsx +7 -0
  27. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsCard.tsx +18 -0
  28. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsField.tsx +21 -0
  29. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.dom.test.ts +12 -1
  30. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.tsx +16 -28
  31. package/templates/.agents/dashboard/apps/frontend/src/ProjectStackEditor.tsx +25 -4
  32. package/templates/.agents/dashboard/apps/frontend/src/WorkspaceStatus.test.tsx +26 -8
  33. package/templates/.agents/dashboard/apps/frontend/src/WorkspaceStatus.tsx +9 -28
  34. package/templates/.agents/dashboard/apps/frontend/src/cost-calculation-guide.css +1 -1
  35. package/templates/.agents/dashboard/apps/frontend/src/dashboard-help-dialog.css +2 -2
  36. package/templates/.agents/dashboard/apps/frontend/src/operations-entity-page-projection.ts +4 -1
  37. package/templates/.agents/dashboard/apps/frontend/src/operations-period-contract.test.ts +20 -9
  38. package/templates/.agents/dashboard/apps/frontend/src/pricing-settings-dialog.css +5 -5
  39. package/templates/.agents/dashboard/apps/frontend/src/project-settings-copy.ts +13 -4
  40. package/templates/.agents/dashboard/apps/frontend/src/project-settings-model.ts +25 -1
  41. package/templates/.agents/dashboard/apps/frontend/src/project-settings-workspace.css +28 -0
  42. package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +39 -0
  43. package/templates/.agents/dashboard/apps/frontend/src/use-app-work-board.test.ts +1 -1
  44. package/templates/.agents/dashboard/apps/frontend/src/workspace-status.css +1 -14
  45. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  46. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  47. package/templates/.agents/dashboard/modules/operations/src/react/OperationsEntityFilters.tsx +1 -1
  48. package/templates/.agents/dashboard/modules/operations/src/react/PagedWorkList.tsx +2 -2
  49. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  50. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  51. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  52. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  53. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +2 -2
  54. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +73 -73
  55. package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
  56. package/templates/.agents/dashboard/packages/local-runtime/scripts/validate-sqlite-read-model.mjs +38 -6
  57. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +2 -2
  58. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.test.ts +3 -4
  59. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.ts +1 -1
  60. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-refresh.test.ts +2 -2
  61. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-filter-matrix.test.ts +1 -1
  62. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-pricing-provenance.test.ts +75 -0
  63. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-canonical.ts +2 -2
  64. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  65. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  66. package/templates/.agents/dashboard/tests/e2e/specs/dashboard.spec.ts +4 -6
  67. package/templates/.agents/dashboard/tests/e2e/specs/work-board-hydration.ts +38 -0
  68. package/templates/.agents/design/.zaip-managed.json +83 -51
  69. package/templates/.agents/design/apps/catalog/dist/assets/index-Cv4VfxTQ.js +72 -0
  70. package/templates/.agents/design/apps/catalog/dist/assets/index-D1JaPXfV.css +1 -0
  71. package/templates/.agents/design/apps/catalog/dist/assets/index-D2miO4-O.js +72 -0
  72. package/templates/.agents/design/apps/catalog/dist/assets/index-mvD5mwcC.js +72 -0
  73. package/templates/.agents/design/apps/catalog/dist/index.html +2 -2
  74. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{CatalogShell-CvaciY0C.js → CatalogShell-BJ8b4xZr.js} +1 -1
  75. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{Color-6AOWCN3U-DwBV1A1Y.js → Color-6AOWCN3U-CQLHzznn.js} +1 -1
  76. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Components.stories-kxWwSKin.js +146 -0
  77. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DashboardFilters.stories-Chm_dXV7.js +9 -0
  78. package/templates/.agents/design/apps/catalog/dist/storybook/assets/DashboardFiltersSpecimen-9CaCbGIZ.js +1 -0
  79. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{DesignSystem.stories-2OCgtT0I.js → DesignSystem.stories-ED52wFjY.js} +1 -1
  80. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{DocsRenderer-JROSPFPF-CODg0rSl.js → DocsRenderer-JROSPFPF-BcLgM80v.js} +4 -4
  81. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{Primitives-BmeKjJW4.js → Primitives-DV6Bpudf.js} +1 -1
  82. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{WithTooltip-7X4HQR7L-C5MI-3uZ.js → WithTooltip-7X4HQR7L-BKNiAz_E.js} +1 -1
  83. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{WorkspaceStatus.stories-Tb_iQqVK.js → WorkspaceStatus.stories-BL19HGOo.js} +2 -2
  84. package/templates/.agents/design/apps/catalog/dist/storybook/assets/WorkspaceStatusSpecimen-DQnSS6s9.js +1 -0
  85. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{chunk-DRQKCCAG-KSn75jcy.js → chunk-DRQKCCAG-DZBcXL-p.js} +1 -1
  86. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{chunk-W22LQPXL-C4LS1Thf.js → chunk-W22LQPXL-CF3y2mfo.js} +1 -1
  87. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{components-DV1BRgMY.js → components-BVjxMRGq.js} +5 -5
  88. package/templates/.agents/design/apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-Do9sjqiW.js +1 -0
  89. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{iframe-CBbPFx5G.js → iframe-CTWGZcEe.js} +4 -4
  90. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{react-18-C9IPGXtb.js → react-18-B9_a4mHb.js} +1 -1
  91. package/templates/.agents/design/apps/catalog/dist/storybook/assets/react-NrUxok8K.js +1 -0
  92. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{syntaxhighlighter-YFXUGROL-ZgDQjyWI.js → syntaxhighlighter-YFXUGROL-F_p8E2xc.js} +1 -1
  93. package/templates/.agents/design/apps/catalog/dist/storybook/assets/{theming-Cx9-gH6l.js → theming-fbSD9ZLF.js} +1 -1
  94. package/templates/.agents/design/apps/catalog/dist/storybook/iframe.html +1 -1
  95. package/templates/.agents/design/apps/catalog/dist/storybook/index.json +1 -1
  96. package/templates/.agents/design/apps/catalog/dist/storybook/sb-addons/a11y-2/manager-bundle.js +3 -3
  97. package/templates/.agents/design/apps/catalog/dist/storybook/sb-addons/docs-1/manager-bundle.js +4 -4
  98. package/templates/.agents/design/apps/catalog/dist/storybook/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +60 -60
  99. package/templates/.agents/design/apps/catalog/package.json +1 -1
  100. package/templates/.agents/design/apps/catalog/src/components/DashboardFiltersSpecimen.tsx +26 -21
  101. package/templates/.agents/design/apps/catalog/src/components/StackVersionFieldSpecimen.tsx +66 -0
  102. package/templates/.agents/design/apps/catalog/src/components/WorkspaceStatusSpecimen.tsx +23 -7
  103. package/templates/.agents/design/apps/catalog/src/pages/ComponentsPage.tsx +20 -6
  104. package/templates/.agents/design/apps/catalog/src/stories/Components.stories.tsx +14 -0
  105. package/templates/.agents/design/apps/catalog/src/stories/WorkspaceStatus.stories.tsx +5 -2
  106. package/templates/.agents/design/apps/catalog/src/styles/components.css +1 -1
  107. package/templates/.agents/design/apps/catalog/src/styles/stack-version-field.css +79 -0
  108. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  109. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  110. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  111. package/templates/.agents/requirements/comparative-audit.md +1 -1
  112. package/templates/.agents/requirements/context-engine.md +1 -1
  113. package/templates/.agents/requirements/cost-observability.md +1 -1
  114. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  115. package/templates/.agents/requirements/data-export.md +1 -1
  116. package/templates/.agents/requirements/design-system.md +1 -1
  117. package/templates/.agents/requirements/execution-engine.md +1 -1
  118. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  119. package/templates/.agents/requirements/model-orchestration.md +1 -1
  120. package/templates/.agents/requirements/public-distribution.md +1 -1
  121. package/templates/.agents/requirements/software-architecture.md +1 -1
  122. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  123. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  124. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  125. package/templates/.agents/rules/workflow.md +1 -1
  126. package/templates/.agents/runtime/VERSION +1 -1
  127. package/templates/.agents/runtime/bin/zaip.mjs +46 -15
  128. package/templates/.agents/runtime/checksums.sha256 +5 -5
  129. package/templates/.agents/runtime/manifest.json +1 -1
  130. package/templates/.agents/runtime/provenance.json +4 -4
  131. package/templates/.agents/runtime/sbom.cdx.json +1 -1
  132. package/templates/.agents/skills/zaip-skill-execution/SKILL.md +1 -0
  133. package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +5 -4
  134. package/templates/.agents/skills/zaip-skill-github-deploy/agents/openai.yaml +1 -1
  135. package/templates/.agents/skills/zaip-skill-github-deploy/references/deployment-workflow.md +7 -7
  136. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.mjs +1 -2
  137. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.test.mjs +9 -1
  138. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs +25 -0
  139. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.mjs +2 -6
  140. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.test.mjs +15 -1
  141. package/templates/.agents/zaip-aios/VERSION +1 -1
  142. package/templates/template-manifest.json +216 -140
  143. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-DVCPPV75.js +0 -3
  144. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-Cwylbh_N.css +0 -1
  145. package/templates/.agents/design/apps/catalog/dist/storybook/assets/Components.stories-3dqK5g3e.js +0 -142
  146. package/templates/.agents/design/apps/catalog/dist/storybook/assets/WorkspaceStatusSpecimen-CD54pw0-.js +0 -1
  147. package/templates/.agents/design/apps/catalog/dist/storybook/assets/formatter-L2YTDE3Q-BU_68im1.js +0 -1
  148. package/templates/.agents/design/apps/catalog/dist/storybook/assets/react-CEv2qkJT.js +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/design-catalog",
3
- "version": "3.4.0",
3
+ "version": "3.6.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -31,27 +31,32 @@ export function DashboardFiltersSpecimen({
31
31
  <h3>{fixture.name}</h3>
32
32
  <details open>
33
33
  <summary>Filtros de {fixture.name.toLowerCase()}</summary>
34
- {fixture.labels.map((label) => (
35
- <label key={label} style={{ display: "block", marginBlock: 8 }}>
36
- {label}
37
- {label.startsWith("Busca") ? (
38
- <input
39
- aria-label={label}
40
- value={values[label] ?? ""}
41
- onChange={(e) => setValues({ ...values, [label]: e.target.value })}
42
- />
43
- ) : (
44
- <select
45
- aria-label={label}
46
- value={values[label] ?? ""}
47
- onChange={(e) => setValues({ ...values, [label]: e.target.value })}
48
- >
49
- <option value="">Todos</option>
50
- <option value="example">{label === "Status" ? "Bloqueado" : "Exemplo"}</option>
51
- </select>
52
- )}
53
- </label>
54
- ))}
34
+ {fixture.labels.map((label) => {
35
+ const controlId = `dashboard-filter-${fixture.name}-${label}`;
36
+ return (
37
+ <label htmlFor={controlId} key={label} style={{ display: "block", marginBlock: 8 }}>
38
+ {label}
39
+ {label.startsWith("Busca") ? (
40
+ <input
41
+ aria-label={label}
42
+ id={controlId}
43
+ value={values[label] ?? ""}
44
+ onChange={(e) => setValues({ ...values, [label]: e.target.value })}
45
+ />
46
+ ) : (
47
+ <select
48
+ aria-label={label}
49
+ id={controlId}
50
+ value={values[label] ?? ""}
51
+ onChange={(e) => setValues({ ...values, [label]: e.target.value })}
52
+ >
53
+ <option value="">Todos</option>
54
+ <option value="example">{label === "Status" ? "Bloqueado" : "Exemplo"}</option>
55
+ </select>
56
+ )}
57
+ </label>
58
+ );
59
+ })}
55
60
  <button type="button" onClick={() => setValues({})}>
56
61
  Limpar filtros
57
62
  </button>
@@ -0,0 +1,66 @@
1
+ import { Card } from "./Primitives.js";
2
+
3
+ type VersionKind = "exact" | "reference";
4
+
5
+ export type StackVersionFieldFixture = {
6
+ name: string;
7
+ technology: string;
8
+ value: string;
9
+ kind: VersionKind;
10
+ source: string;
11
+ };
12
+
13
+ /** Stable native adapter for the Setup Project version-or-reference input contract. */
14
+ export const stackVersionFieldFixtures: readonly StackVersionFieldFixture[] = [
15
+ {
16
+ name: "Versão exata",
17
+ technology: "TypeScript",
18
+ value: "7.0.2",
19
+ kind: "exact",
20
+ source: "npm:typescript",
21
+ },
22
+ {
23
+ name: "Serviço em nuvem",
24
+ technology: "PostgreSQL via Supabase",
25
+ value: "Serviço em nuvem",
26
+ kind: "reference",
27
+ source: "service:supabase-postgresql",
28
+ },
29
+ {
30
+ name: "Hospedagem em nuvem",
31
+ technology: "Hostinger VPS",
32
+ value: "Serviço em nuvem",
33
+ kind: "reference",
34
+ source: "provider:hostinger-vps",
35
+ },
36
+ ] as const;
37
+
38
+ export function StackVersionFieldSpecimen({ fixture }: { fixture: StackVersionFieldFixture }) {
39
+ const isReference = fixture.kind === "reference";
40
+ const label = isReference ? "Referência descritiva" : "Versão exata";
41
+
42
+ return (
43
+ <Card>
44
+ <div className="stack-version-field-heading">
45
+ <div>
46
+ <p className="metric-label">{label}</p>
47
+ <h3>{fixture.technology}</h3>
48
+ </div>
49
+ <span className={`stack-version-kind is-${fixture.kind}`}>{label}</span>
50
+ </div>
51
+ <label className="stack-version-field">
52
+ <span>{isReference ? "Versão atual ou referência" : "Versão exata"}</span>
53
+ <input
54
+ aria-describedby={`stack-version-source-${fixture.name}`}
55
+ className={isReference ? "is-reference-value" : undefined}
56
+ defaultValue={fixture.value}
57
+ inputMode={isReference ? "text" : "decimal"}
58
+ readOnly
59
+ />
60
+ </label>
61
+ <p className="stack-version-source" id={`stack-version-source-${fixture.name}`}>
62
+ {fixture.source}
63
+ </p>
64
+ </Card>
65
+ );
66
+ }
@@ -1,10 +1,14 @@
1
1
  import { Card } from "./Primitives.js";
2
2
 
3
3
  export const workspaceStatusFixtures = [
4
- { name: "Inicializado", message: "Lifecycle inicializado" },
5
- { name: "Ausente", message: "Lifecycle não inicializado" },
6
- { name: "Inválido", message: "Manifesto do lifecycle inválido" },
7
- { name: "Indisponível", message: "Não foi possível consultar a saúde do Dashboard" },
4
+ { name: "Configuração", kind: "settings", message: "C:/projetos/zaip-growth" },
5
+ { name: "Ausente", kind: "warning", message: "Lifecycle não inicializado" },
6
+ { name: "Inválido", kind: "warning", message: "Manifesto do lifecycle inválido" },
7
+ {
8
+ name: "Indisponível",
9
+ kind: "warning",
10
+ message: "Não foi possível consultar a saúde do Dashboard",
11
+ },
8
12
  ] as const;
9
13
 
10
14
  /** Native adapter: the catalog cannot depend on the Dashboard application. */
@@ -13,12 +17,24 @@ export function WorkspaceStatusSpecimen({
13
17
  }: {
14
18
  fixture?: (typeof workspaceStatusFixtures)[number];
15
19
  }) {
20
+ if (fixture.kind === "settings") {
21
+ return (
22
+ <Card>
23
+ <h3>{fixture.name}</h3>
24
+ <section aria-label="Configuração do projeto">
25
+ <strong>Caminho do projeto</strong>
26
+ <p>
27
+ <code style={{ overflowWrap: "anywhere" }}>{fixture.message}</code>
28
+ </p>
29
+ </section>
30
+ </Card>
31
+ );
32
+ }
33
+
16
34
  return (
17
35
  <Card>
18
36
  <h3>{fixture.name}</h3>
19
- <aside aria-label="Workspace do Dashboard" style={{ overflowWrap: "anywhere" }}>
20
- <strong>zaip-growth</strong>
21
- <p>C:/projetos/zaip-growth</p>
37
+ <aside aria-label="Saúde do Dashboard" style={{ overflowWrap: "anywhere" }}>
22
38
  <p>{fixture.message}</p>
23
39
  </aside>
24
40
  </Card>
@@ -1,13 +1,13 @@
1
1
  import { AutonomySpecimen, autonomyFixtures } from "../components/AutonomySpecimen.js";
2
- import {
3
- DashboardFiltersSpecimen,
4
- dashboardFilterFixtures,
5
- } from "../components/DashboardFiltersSpecimen.js";
6
2
  import { PageIntro, Section } from "../components/CatalogShell.js";
7
3
  import {
8
4
  CostPopulationSpecimen,
9
5
  costPopulationFixtures,
10
6
  } from "../components/CostPopulationSpecimen.js";
7
+ import {
8
+ DashboardFiltersSpecimen,
9
+ dashboardFilterFixtures,
10
+ } from "../components/DashboardFiltersSpecimen.js";
11
11
  import {
12
12
  EstimatedCostSpecimen,
13
13
  estimatedCostFixtures,
@@ -30,6 +30,10 @@ import {
30
30
  ProjectStatusSpecimen,
31
31
  projectStatusFixtures,
32
32
  } from "../components/ProjectStatusSpecimen.js";
33
+ import {
34
+ StackVersionFieldSpecimen,
35
+ stackVersionFieldFixtures,
36
+ } from "../components/StackVersionFieldSpecimen.js";
33
37
  import {
34
38
  WorkspaceStatusSpecimen,
35
39
  workspaceStatusFixtures,
@@ -75,8 +79,8 @@ export function ComponentsPage() {
75
79
  </EditorialHero>
76
80
  </Section>
77
81
  <Section
78
- title="Workspace do Dashboard"
79
- description="Nome e caminho absolutos sempre visíveis; lifecycle ausente ou inválido impede a exibição de zeros como dados válidos. Adaptador nativo do componente WorkspaceStatus."
82
+ title="Identidade e saúde do Dashboard"
83
+ description="O caminho absoluto fica restrito à Configuração do projeto. A superfície global aparece somente para avisos de saúde; lifecycle ausente ou inválido impede a exibição de zeros como dados válidos."
80
84
  >
81
85
  {workspaceStatusFixtures.map((fixture) => (
82
86
  <WorkspaceStatusSpecimen key={fixture.name} fixture={fixture} />
@@ -109,6 +113,16 @@ export function ComponentsPage() {
109
113
  </div>
110
114
  ))}
111
115
  </Section>
116
+ <Section
117
+ title="Versões e referências da stack"
118
+ description="No Setup Project, versões exatas usam valor técnico curto. Serviços em nuvem e capacidade de hospedagem usam referência descritiva, identificada por texto e tratamento visual próprio — sem parecer uma versão numérica."
119
+ >
120
+ <div className="stack-version-field-grid">
121
+ {stackVersionFieldFixtures.map((fixture) => (
122
+ <StackVersionFieldSpecimen fixture={fixture} key={fixture.name} />
123
+ ))}
124
+ </div>
125
+ </Section>
112
126
  <Section
113
127
  title="Custo estimado compacto"
114
128
  description="Adaptador nativo: título e taxas compactos; cobertura parcial fica na ajuda acessível. Ausência não vira zero nem média de uma população incompleta."
@@ -23,6 +23,10 @@ import {
23
23
  ProjectStatusSpecimen,
24
24
  projectStatusFixtures,
25
25
  } from "../components/ProjectStatusSpecimen.js";
26
+ import {
27
+ StackVersionFieldSpecimen,
28
+ stackVersionFieldFixtures,
29
+ } from "../components/StackVersionFieldSpecimen.js";
26
30
  import { ComponentsPage } from "../pages/ComponentsPage.js";
27
31
 
28
32
  const meta = {
@@ -113,6 +117,16 @@ export const ProjectInstallationStatus: Story = {
113
117
  ),
114
118
  };
115
119
 
120
+ export const StackVersionsAndReferences: Story = {
121
+ render: () => (
122
+ <div className="stack-version-field-grid">
123
+ {stackVersionFieldFixtures.map((fixture) => (
124
+ <StackVersionFieldSpecimen fixture={fixture} key={fixture.name} />
125
+ ))}
126
+ </div>
127
+ ),
128
+ };
129
+
116
130
  export const Tables: Story = {
117
131
  render: () => <DataTable />,
118
132
  };
@@ -2,8 +2,11 @@ import {
2
2
  WorkspaceStatusSpecimen,
3
3
  workspaceStatusFixtures,
4
4
  } from "../components/WorkspaceStatusSpecimen.js";
5
- export default { title: "Components/Workspace do Dashboard", component: WorkspaceStatusSpecimen };
6
- export const Initialized = { args: { fixture: workspaceStatusFixtures[0] } };
5
+ export default {
6
+ title: "Components/Identidade e saúde do Dashboard",
7
+ component: WorkspaceStatusSpecimen,
8
+ };
9
+ export const ProjectSettings = { args: { fixture: workspaceStatusFixtures[0] } };
7
10
  export const Missing = { args: { fixture: workspaceStatusFixtures[1] } };
8
11
  export const Invalid = { args: { fixture: workspaceStatusFixtures[2] } };
9
12
  export const Unavailable = { args: { fixture: workspaceStatusFixtures[3] } };
@@ -1,3 +1,4 @@
1
+ @import "./stack-version-field.css";
1
2
  .card {
2
3
  border: 1px solid var(--border);
3
4
  border-radius: 24px;
@@ -498,7 +499,6 @@ tbody tr:last-child td {
498
499
  width: 100%;
499
500
  }
500
501
  }
501
-
502
502
  @media (prefers-reduced-motion: reduce) {
503
503
  .editorial-hero-orbit {
504
504
  box-shadow: none;
@@ -0,0 +1,79 @@
1
+ .stack-version-field-grid {
2
+ display: grid;
3
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4
+ gap: 18px;
5
+ }
6
+ .stack-version-field-grid > .card:last-child {
7
+ grid-column: span 2;
8
+ }
9
+ .stack-version-field-heading {
10
+ display: flex;
11
+ align-items: flex-start;
12
+ justify-content: space-between;
13
+ gap: 12px;
14
+ }
15
+ .stack-version-field-heading h3 {
16
+ margin: 8px 0 0;
17
+ font-size: 1.1rem;
18
+ }
19
+ .stack-version-kind {
20
+ flex: 0 0 auto;
21
+ border-radius: 999px;
22
+ padding: 5px 8px;
23
+ font-size: 0.72rem;
24
+ font-weight: 700;
25
+ }
26
+ .stack-version-kind.is-exact {
27
+ background: #f0fdf4;
28
+ color: #166534;
29
+ }
30
+ .stack-version-kind.is-reference {
31
+ background: var(--primary-soft);
32
+ color: var(--primary-ink);
33
+ }
34
+ .stack-version-field {
35
+ display: grid;
36
+ gap: 8px;
37
+ margin-top: 18px;
38
+ color: var(--text);
39
+ font-size: 0.82rem;
40
+ font-weight: 700;
41
+ }
42
+ .stack-version-field input {
43
+ width: 100%;
44
+ min-height: 44px;
45
+ border: 1px solid #cbd5e1;
46
+ border-radius: 10px;
47
+ padding: 9px 10px;
48
+ background: var(--surface-muted);
49
+ color: var(--text);
50
+ font: inherit;
51
+ font-size: 0.88rem;
52
+ overflow: hidden;
53
+ text-overflow: ellipsis;
54
+ }
55
+ .stack-version-field input.is-reference-value {
56
+ border-color: #9edcf2;
57
+ background: #effaff;
58
+ color: #075985;
59
+ font-weight: 650;
60
+ }
61
+ .stack-version-field input:focus-visible {
62
+ outline: 3px solid color-mix(in srgb, var(--focus) 38%, transparent);
63
+ outline-offset: 2px;
64
+ }
65
+ .stack-version-source {
66
+ margin: 10px 0 0;
67
+ color: var(--text-muted);
68
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
69
+ font-size: 0.75rem;
70
+ overflow-wrap: anywhere;
71
+ }
72
+
73
+ @media (max-width: 720px) {
74
+ .stack-version-field-grid,
75
+ .stack-version-field-grid > .card:last-child {
76
+ grid-template-columns: 1fr;
77
+ grid-column: auto;
78
+ }
79
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/design-local-runtime",
3
- "version": "3.4.0",
3
+ "version": "3.6.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -6,7 +6,7 @@ title: Garantia adaptativa e execução autônoma
6
6
  status: active
7
7
  version: 3
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Garantia adaptativa e execução autônoma
@@ -6,7 +6,7 @@ title: Autonomia delimitada para Cloudflare e Hostinger
6
6
  status: proposed
7
7
  version: 1
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Cloudflare e Hostinger (proposta de requisito)
@@ -6,7 +6,7 @@ title: Auditoria comparativa e plano de evolução
6
6
  status: active
7
7
  version: 1
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Auditoria comparativa e plano de evolução
@@ -6,7 +6,7 @@ title: Contexto mínimo, seguro e navegável
6
6
  status: active
7
7
  version: 8
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Context engine
@@ -6,7 +6,7 @@ title: Tokens, custos e cobertura
6
6
  status: active
7
7
  version: 10
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Cost observability
@@ -6,7 +6,7 @@ title: Inicialização e hidratação confiável do dashboard
6
6
  status: active
7
7
  version: 1
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Inicialização e hidratação confiável do dashboard
@@ -6,7 +6,7 @@ title: Exportação contextual de dados para Excel
6
6
  status: proposed
7
7
  version: 2
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Exportação contextual de dados
@@ -6,7 +6,7 @@ title: Contrato visual e catálogo executável
6
6
  status: active
7
7
  version: 5
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Design system
@@ -6,7 +6,7 @@ title: Preparação, materialização e DAG
6
6
  status: active
7
7
  version: 11
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Execution engine
@@ -6,7 +6,7 @@ title: Projeções operacionais e analíticas
6
6
  status: active
7
7
  version: 14
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Kanban and dashboard
@@ -6,7 +6,7 @@ title: Seleção automática e observável de modelo e effort
6
6
  status: active
7
7
  version: 8
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Orquestração de modelos
@@ -6,7 +6,7 @@ title: Distribuição pública e ativação
6
6
  status: active
7
7
  version: 8
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Distribuição pública e ativação
@@ -6,7 +6,7 @@ title: Layout modular e limites de código-fonte
6
6
  status: active
7
7
  version: 5
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Software architecture
@@ -6,7 +6,7 @@ title: Melhorias estratégicas de custo, qualidade e resiliência
6
6
  status: active
7
7
  version: 1
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Melhorias estratégicas de custo, qualidade e resiliência
@@ -6,7 +6,7 @@ title: Ciclo de vida do trabalho
6
6
  status: active
7
7
  version: 26
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Work lifecycle
@@ -6,7 +6,7 @@ title: Evidências, custo por Task e autonomia por SPEC
6
6
  status: active
7
7
  version: 1
8
8
  source_change: null
9
- source_release: "3.4.0"
9
+ source_release: "3.6.0"
10
10
  ---
11
11
 
12
12
  # Evidências, custo por Task e autonomia por SPEC
@@ -23,6 +23,6 @@ phases: [planning, execution, verification, evidence]
23
23
  - `RUN-*` identifica invocação física: raiz `orchestrator`, pai nulo/profundidade zero; filha `delegated`, pai/raiz/profundidade positiva, mesmo quando o agente filho orquestra uma Task. Task é a unidade de tentativa; PRD/SPEC coordenam dependências e aceite parental. `MCALL-*` pertence a uma invocação; fechamento e retomada seguem `RULE-RUN-LIFECYCLE-CLOSURE`.
24
24
  - Reconciliação global só após confirmação humana no popup, nunca abrir dashboard/turno/intervalo; usa `task_complete` exato ou falha órfã após dez minutos, sem inferir cancelamento/sucesso. Risco é `lite|standard|critical`; anexos só por risco/Evidence. Assurance V1: standalone lite uma validação/Evidence e teste só lógica/regressão; standard 2–3 validações, teste e Evidence consolidada; critical 3+ e quality review independente. Mutação, rollback, commit final e Evidence/AC dependem de sinais persistidos; sem sinal preserve gate conservador. SPEC/PRD adicionam matriz parental, 3 validações/Evidences, integração e revisão independente.
25
25
  - Novos projetos usam `execution.runtime: managed`: PRD/SPEC gerenciados, avulsas diretas. Ausente/manual não invoca provider; autonomous permite também Task gerenciada explícita. Commit exige Task real e título: `[CODEX|CLAUDE] [P:XXXX] [S:XXXX] [T:XXXX]`, ou `[Task-first:XXXX]` sem PRD/SPEC. Assunto ≤96, título reduz por palavra, IDs completos em trailers `ZAIP-*`. Somente `.agents/records/**` e `.local/**` dispensam identidade; `.agents` inteira não. Nunca escolher última Task global. Política: `.agents/skills/zaip-skill-task/references/commit-policy.md`.
26
- - Pedido explícito de `deploy|push|publicar|publicação GitHub` autoriza `$zaip-skill-github-deploy` a reconciliar branch/worktree selecionados e commitar o diff evidenciado com pathspecs explícitos. Consumidor é GitHub-only e independente. Release inicia `v1.0`, incrementa minor, muda major só por pedido e reutiliza tag só com SHA idêntico. No framework, o helper resolve `vN.N` e pacote `N.N.0`; só GitHub Actions publica npm. Release beta é prerelease sem sufixo; `main` é promoção humana. Use `rebase` por padrão ou `merge` escolhido pelo usuário, com referência recuperável e stash nomeado. Produto exige Task atribuída; publicar commits existentes continua Git-only. Nunca staging amplo, `git add -A`, force, segredos, squash, feature alheia ou outro worktree.
26
+ - Pedido explícito de `deploy|push|publicar|publicação GitHub` autoriza `$zaip-skill-github-deploy` a reconciliar branch/worktree selecionados e commitar o diff evidenciado com pathspecs explícitos. A branch local ou o estado detached identificam a origem; a branch configurada identifica o alvo remoto e não exige checkout local nela. Preserve uma referência recuperável, reconcilie o candidato por SHA e publique somente por refspec explícito. Consumidor é GitHub-only e independente. Release inicia `v1.0`, incrementa minor, muda major só por pedido e reutiliza tag só com SHA idêntico. No framework, o helper resolve `vN.N` e pacote `N.N.0`; só GitHub Actions publica npm. Release beta é prerelease sem sufixo; `main` é promoção humana. Use `rebase` por padrão ou `merge` escolhido pelo usuário, com referência recuperável e stash nomeado. Produto exige Task atribuída; publicar commits existentes continua Git-only. Nunca staging amplo, `git add -A`, force, segredos, squash, feature alheia ou outro worktree.
27
27
  - Executar uma entrega autoriza seu commit local via `task commit TASK --files PATH[,PATH] --run RUN` antes da prova final; preserve o index alheio e resolva sobreposição de autoria. Git, HEAD e identidade devem estar prontos antes de iniciar. Conversas não criam commits artificiais. `validation execute` usa o Node do host e script relativo versionado/revisado no SHA, sem código inline/loaders; a worktree comprova o candidato, não é sandbox do SO. Só essa prova separa alterações concorrentes da entrega intacta; registros manuais mantêm o gate conservador. Documento externo exige revisão identificada ou exportação versionada. Commit não autoriza push nem substitui revisão/finalizador.
28
28
  - Plano visível: `DEFINE:` contexto/resultado/critério, `PLAN:` ciclo/DAG, `EXECUTE:` mudança, `VERIFY:` valida/Evidence/encerra; não use artefato como fase nem narre comandos internos. Registre decisão humana/IA com origem junto de Change/Execution; derive ledger do Git diff e preserve alterações do usuário. Estado novo fica em `.agents/records/<kind>/<ano>/<mês>`; diário, `.agents/data` e V1 são legado só leitura até migração explícita.
@@ -1 +1 @@
1
- 3.4.0
1
+ 3.6.0