@zaip-ai/cli 1.3.4 → 1.3.6

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 (81) hide show
  1. package/dist/services/install-agents-template.d.ts.map +1 -1
  2. package/dist/services/install-agents-template.js +18 -2
  3. package/dist/services/install-agents-template.js.map +1 -1
  4. package/dist/services/template-manifest.d.ts.map +1 -1
  5. package/dist/services/template-manifest.js +2 -0
  6. package/dist/services/template-manifest.js.map +1 -1
  7. package/package.json +1 -1
  8. package/templates/.agents/architecture/.gitkeep +0 -0
  9. package/templates/.agents/branding/.gitkeep +0 -0
  10. package/templates/.agents/dashboard/.zaip-managed.json +63 -51
  11. package/templates/.agents/dashboard/apps/frontend/dist/assets/{CostCalculationGuidePage-BZWjXQB-.js → CostCalculationGuidePage-DwVZOmMV.js} +1 -1
  12. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-D8qqeIPE.js → DashboardHelpDialog-3Lrfq645.js} +1 -1
  13. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-Cm12_A0v.js → PricingSettingsDialog-CyjMXkm8.js} +1 -1
  14. package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-DxO9F8B4.js → ProjectSettingsPage-B_Oj6Dlf.js} +1 -1
  15. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-_x0twOcS.js → TraceabilityWorkspace-diq9g1L8.js} +1 -1
  16. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-C09KmlSw.js +68 -0
  17. package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-CR4Fbf3g.js → icons-vendor-DXBOtWNI.js} +1 -1
  18. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-Deo_W81f.js +2 -0
  19. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-hPPfVGQv.css +1 -0
  20. package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-DRJQbKnp.js → react-vendor-DaNXQPyk.js} +1 -1
  21. package/templates/.agents/dashboard/apps/frontend/dist/assets/{traceability-CMrDYqjR.js → traceability-I4AKqVDX.js} +1 -1
  22. package/templates/.agents/dashboard/apps/frontend/dist/index.html +6 -6
  23. package/templates/.agents/dashboard/apps/frontend/src/App.tsx +43 -15
  24. package/templates/.agents/dashboard/apps/frontend/src/cost-period-refresh.test.ts +18 -3
  25. package/templates/.agents/dashboard/apps/frontend/src/dashboard-capability-nav.css +11 -0
  26. package/templates/.agents/dashboard/apps/frontend/src/operations-period-contract.test.ts +14 -0
  27. package/templates/.agents/dashboard/apps/frontend/src/operations-period.test.ts +22 -7
  28. package/templates/.agents/dashboard/apps/frontend/src/operations-period.ts +11 -2
  29. package/templates/.agents/dashboard/apps/frontend/src/snapshot-coherence.test.ts +7 -4
  30. package/templates/.agents/dashboard/modules/operations/src/react/OperationsFilteredStatusDialog.tsx +131 -0
  31. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.helpers.tsx +2 -1
  32. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.test.ts +12 -4
  33. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.tsx +69 -157
  34. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPage.tsx +19 -4
  35. package/templates/.agents/dashboard/modules/operations/src/react/operation-date-range.test.ts +25 -0
  36. package/templates/.agents/dashboard/modules/operations/src/react/operation-date-range.ts +29 -0
  37. package/templates/.agents/dashboard/modules/operations/src/react/operations-coverage-toast.test.ts +3 -2
  38. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview-period-filter.test.ts +12 -2
  39. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview.status-cards.test.ts +13 -7
  40. package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +1 -1
  41. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-prerequisites.mjs +40 -0
  42. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-prerequisites.test.mjs +38 -0
  43. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.mjs +33 -26
  44. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.test.mjs +5 -8
  45. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-loading.spec.ts +4 -6
  46. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-pagination.spec.ts +4 -0
  47. package/templates/.agents/dashboard/tests/e2e/specs/cost-monitor-period-transition.spec.ts +43 -17
  48. package/templates/.agents/dashboard/tests/e2e/specs/dashboard-performance-matrix.spec.ts +9 -3
  49. package/templates/.agents/dashboard/tests/e2e/specs/dashboard.spec.ts +51 -22
  50. package/templates/.agents/growth/.gitkeep +0 -0
  51. package/templates/.agents/marketing/.gitkeep +0 -0
  52. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  53. package/templates/.agents/requirements/comparative-audit.md +1 -1
  54. package/templates/.agents/requirements/context-engine.md +1 -1
  55. package/templates/.agents/requirements/cost-observability.md +1 -1
  56. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  57. package/templates/.agents/requirements/data-export.md +1 -1
  58. package/templates/.agents/requirements/design-system.md +1 -1
  59. package/templates/.agents/requirements/execution-engine.md +1 -1
  60. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  61. package/templates/.agents/requirements/model-orchestration.md +1 -1
  62. package/templates/.agents/requirements/public-distribution.md +1 -1
  63. package/templates/.agents/requirements/software-architecture.md +1 -1
  64. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  65. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  66. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  67. package/templates/.agents/sales/.gitkeep +0 -0
  68. package/templates/README.md +722 -0
  69. package/templates/template-manifest.json +96 -97
  70. package/templates/.agents/architecture/software-architecture.md +0 -131
  71. package/templates/.agents/branding/brandbook.docx +0 -0
  72. package/templates/.agents/branding/brandbook.md +0 -60
  73. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-Cpp8xFij.js +0 -68
  74. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-B31GMG5O.css +0 -1
  75. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-ncC1rxap.js +0 -2
  76. package/templates/.agents/growth/estrategia-bootstrap-90-dias.md +0 -169
  77. package/templates/.agents/growth/strategy.md +0 -27
  78. package/templates/.agents/marketing/estrategia-marketing-zaip-90-dias.md +0 -197
  79. package/templates/.agents/marketing/strategy.md +0 -29
  80. package/templates/.agents/sales/playbook.md +0 -32
  81. package/templates/.agents/sales/roteiro-comercial-zaip.md +0 -252
@@ -163,10 +163,12 @@ test("exports Kanban, Lista and Cost Monitor through a save picker while the das
163
163
  });
164
164
 
165
165
  test("renders the modern read-only dashboard and meets accessibility gates", async ({ page }) => {
166
- await openDashboard(page);
166
+ const initialResponse = await openDashboard(page);
167
167
  const globalPeriod = page.getByRole("combobox", { name: /Per/ }).first();
168
- await expect(globalPeriod).toHaveValue("this-month");
169
- await selectPopulatedAllTime(page);
168
+ await expect(globalPeriod).toHaveValue("all");
169
+ const initialUrl = new URL(initialResponse.url());
170
+ expect(initialUrl.searchParams.has("from")).toBe(false);
171
+ expect(initialUrl.searchParams.has("to")).toBe(false);
170
172
  await expect(page.getByRole("navigation", { name: "Dashboard Zaip AIOS menu" })).toBeVisible();
171
173
  const capabilityNav = page.getByRole("navigation", { name: "Áreas do dashboard" });
172
174
  const globalControls = page.locator(".dashboard-global-controls");
@@ -182,6 +184,13 @@ test("renders the modern read-only dashboard and meets accessibility gates", asy
182
184
  buttons.map((button) => button.getBoundingClientRect().top),
183
185
  );
184
186
  expect(new Set(buttonBoxes.map((top) => Math.round(top))).size).toBe(1);
187
+ await expect(globalControls.getByRole("textbox", { name: "Busca" })).toBeHidden();
188
+ await expect(globalControls.getByLabel("Data inicial")).toBeHidden();
189
+ await expect(globalControls.getByLabel("Data final")).toBeHidden();
190
+ await expect(globalControls.getByRole("combobox", { name: "Período" })).toBeHidden();
191
+ await expect(page.getByLabel("Kanban de trabalho")).toHaveCount(0);
192
+ await expect(page.locator(".operations-task-card")).toHaveCount(0);
193
+ await selectOperations(page);
185
194
  const searchInput = globalControls.getByRole("textbox", { name: "Busca" });
186
195
  await expect(searchInput).toBeVisible();
187
196
  await expect(globalControls.getByRole("button", { name: "Limpar busca" })).toHaveCount(0);
@@ -207,9 +216,6 @@ test("renders the modern read-only dashboard and meets accessibility gates", asy
207
216
  elements.map((element) => Math.round(element.getBoundingClientRect().bottom)),
208
217
  );
209
218
  expect(new Set(controlRowBottoms).size).toBe(1);
210
- await expect(page.getByLabel("Kanban de trabalho")).toHaveCount(0);
211
- await expect(page.locator(".operations-task-card")).toHaveCount(0);
212
- await selectOperations(page);
213
219
  await expect(page.getByLabel("Kanban de trabalho")).toBeVisible();
214
220
  await expect(page.locator(".operations-risk.is-standard").first()).toBeVisible();
215
221
  const visibleCards = page.locator(".operations-task-card:visible");
@@ -243,7 +249,7 @@ test("renders the modern read-only dashboard and meets accessibility gates", asy
243
249
  await page.getByRole("combobox", { name: "Período nos filtros" }).selectOption("today");
244
250
  await expect(page.getByLabel("Data inicial nos filtros")).toHaveValue(today);
245
251
  await page.getByLabel("Data inicial nos filtros").fill(initialStart);
246
- await expect(page.getByRole("combobox", { name: "Período nos filtros" })).toHaveValue("custom");
252
+ await expect(period).toHaveValue("custom");
247
253
 
248
254
  await period.selectOption("today");
249
255
  await expect(startDate).toHaveValue(today);
@@ -266,6 +272,13 @@ test("renders the modern read-only dashboard and meets accessibility gates", asy
266
272
 
267
273
  const results = await new AxeBuilder({ page }).analyze();
268
274
  expect(results.violations).toEqual([]);
275
+
276
+ await capabilityNav.getByRole("button", { name: /Monitor de Custos/ }).click();
277
+ await expect(page.locator(".cost-tabs")).toBeVisible();
278
+ await expect(searchInput).toBeVisible();
279
+ await expect(startDate).toBeVisible();
280
+ await expect(endDate).toBeVisible();
281
+ await expect(period).toBeVisible();
269
282
  });
270
283
 
271
284
  test("loads a quick Operations summary without full snapshot hydration", async ({ page }) => {
@@ -456,9 +469,11 @@ test("groups macro work in All and reveals descendant Tasks only in Tasks", asyn
456
469
  test("shows the observed all-time macro duration consistently for SPEC and PRD", async ({
457
470
  page,
458
471
  }) => {
459
- await openDashboard(page);
460
- await expect(page.getByRole("combobox", { name: /Per/ }).first()).toHaveValue("this-month");
461
- const response = await selectPopulatedAllTime(page);
472
+ const response = await openDashboard(page);
473
+ await expect(page.getByRole("combobox", { name: /Per/ }).first()).toHaveValue("all");
474
+ const responseUrl = new URL(response.url());
475
+ expect(responseUrl.searchParams.has("from")).toBe(false);
476
+ expect(responseUrl.searchParams.has("to")).toBe(false);
462
477
  const projection = (await response.json()) as {
463
478
  summary: {
464
479
  overview_metrics?: {
@@ -526,20 +541,26 @@ test("loads monthly overview quickly and keeps PRD and SPEC chart totals reconci
526
541
  page,
527
542
  }) => {
528
543
  const openedAt = Date.now();
529
- await openDashboard(page);
544
+ const initialQuickResponse = await openDashboard(page);
530
545
  expect(Date.now() - openedAt).toBeLessThan(3_000);
546
+ await selectOperations(page);
531
547
 
532
548
  const period = page.getByRole("combobox", { name: /Per/ }).first();
533
549
  for (const preset of ["all", "this-month"] as const) {
534
- const response = page.waitForResponse(
535
- (candidate) =>
536
- candidate.status() === 200 &&
537
- candidate.url().includes("/api/v2/operations") &&
538
- candidate.url().includes("scope=quick"),
539
- );
540
550
  const selectedAt = Date.now();
541
- await period.selectOption(preset);
542
- const quickResponse = await response;
551
+ const quickResponse =
552
+ preset === "all"
553
+ ? initialQuickResponse
554
+ : await (async () => {
555
+ const response = page.waitForResponse(
556
+ (candidate) =>
557
+ candidate.status() === 200 &&
558
+ candidate.url().includes("/api/v2/operations") &&
559
+ candidate.url().includes("scope=quick"),
560
+ );
561
+ await period.selectOption(preset);
562
+ return response;
563
+ })();
543
564
  const quickUrl = new URL(quickResponse.url());
544
565
  const dateControls = page.locator(".dashboard-global-controls");
545
566
  const expectedFrom =
@@ -551,7 +572,10 @@ test("loads monthly overview quickly and keeps PRD and SPEC chart totals reconci
551
572
  const quickProjection = (await quickResponse.json()) as {
552
573
  summary: {
553
574
  overview_metrics?: {
554
- macro_metrics?: Record<"specs" | "prds", { total_duration_ms: number | null }>;
575
+ macro_metrics?: Record<
576
+ "specs" | "prds",
577
+ { entity_count: number; total_duration_ms: number | null }
578
+ >;
555
579
  };
556
580
  };
557
581
  };
@@ -581,6 +605,8 @@ test("loads monthly overview quickly and keeps PRD and SPEC chart totals reconci
581
605
  const macroKey = kind === "SPECs" ? "specs" : "prds";
582
606
  const macroDuration =
583
607
  quickProjection.summary.overview_metrics?.macro_metrics?.[macroKey]?.total_duration_ms;
608
+ const macroCount =
609
+ quickProjection.summary.overview_metrics?.macro_metrics?.[macroKey]?.entity_count;
584
610
  expect(macroDuration).not.toBeUndefined();
585
611
  if (macroDuration === null) {
586
612
  await expect(
@@ -589,7 +615,7 @@ test("loads monthly overview quickly and keeps PRD and SPEC chart totals reconci
589
615
  name: new RegExp(`Tempo total de execu[cç][aã]o de ${kind}`),
590
616
  })
591
617
  .locator("strong"),
592
- ).toHaveText("Indisponível");
618
+ ).toHaveText(macroCount === 0 ? "0" : "Indisponível");
593
619
  }
594
620
  }
595
621
  }
@@ -660,6 +686,9 @@ async function openDashboard(page: import("@playwright/test").Page) {
660
686
  }
661
687
 
662
688
  async function selectPopulatedAllTime(page: import("@playwright/test").Page) {
689
+ await selectOperations(page);
690
+ const period = page.getByRole("combobox", { name: /Per/ }).first();
691
+ if ((await period.inputValue()) === "all") return null;
663
692
  const response = page.waitForResponse((candidate) => {
664
693
  if (
665
694
  candidate.status() !== 200 ||
@@ -671,7 +700,7 @@ async function selectPopulatedAllTime(page: import("@playwright/test").Page) {
671
700
  const url = new URL(candidate.url());
672
701
  return !url.searchParams.has("from") && !url.searchParams.has("to");
673
702
  });
674
- await page.getByRole("combobox", { name: /Per/ }).first().selectOption("all");
703
+ await period.selectOption("all");
675
704
  return response;
676
705
  }
677
706
 
File without changes
File without changes
@@ -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: "1.3.4"
9
+ source_release: "1.3.6"
10
10
  ---
11
11
 
12
12
  # Garantia adaptativa e execução autônoma
@@ -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: "1.3.4"
9
+ source_release: "1.3.6"
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: "1.3.4"
9
+ source_release: "1.3.6"
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: "1.3.4"
9
+ source_release: "1.3.6"
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: "1.3.4"
9
+ source_release: "1.3.6"
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: "1.3.4"
9
+ source_release: "1.3.6"
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: 3
8
8
  source_change: null
9
- source_release: "1.3.4"
9
+ source_release: "1.3.6"
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: "1.3.4"
9
+ source_release: "1.3.6"
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: "1.3.4"
9
+ source_release: "1.3.6"
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: 7
8
8
  source_change: null
9
- source_release: "1.3.4"
9
+ source_release: "1.3.6"
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: 3
8
8
  source_change: null
9
- source_release: "1.3.4"
9
+ source_release: "1.3.6"
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: "1.3.4"
9
+ source_release: "1.3.6"
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: "1.3.4"
9
+ source_release: "1.3.6"
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: 24
8
8
  source_change: null
9
- source_release: "1.3.4"
9
+ source_release: "1.3.6"
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: "1.3.4"
9
+ source_release: "1.3.6"
10
10
  ---
11
11
 
12
12
  # Evidências, custo por Task e autonomia por SPEC
File without changes