@zaip-ai/cli 1.4.1 → 1.4.2

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 (22) hide show
  1. package/package.json +1 -1
  2. package/templates/.agents/dashboard/.zaip-managed.json +9 -1
  3. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-runtime-selection.mjs +36 -0
  4. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-runtime-selection.test.mjs +63 -0
  5. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.mjs +31 -28
  6. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  7. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  8. package/templates/.agents/requirements/comparative-audit.md +1 -1
  9. package/templates/.agents/requirements/context-engine.md +1 -1
  10. package/templates/.agents/requirements/cost-observability.md +1 -1
  11. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  12. package/templates/.agents/requirements/data-export.md +1 -1
  13. package/templates/.agents/requirements/design-system.md +1 -1
  14. package/templates/.agents/requirements/execution-engine.md +1 -1
  15. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  16. package/templates/.agents/requirements/model-orchestration.md +1 -1
  17. package/templates/.agents/requirements/public-distribution.md +1 -1
  18. package/templates/.agents/requirements/software-architecture.md +1 -1
  19. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  20. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  21. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  22. package/templates/template-manifest.json +29 -21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/cli",
3
- "version": "1.4.1",
3
+ "version": "1.4.2",
4
4
  "description": "CLI oficial para instalar e configurar o ZAIP-AIOS em qualquer repositório",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -1954,13 +1954,21 @@
1954
1954
  "path": "packages/local-runtime/start-dashboard-refresh.mjs",
1955
1955
  "sha256": "1f95c6e8f97dccae997adbe6bce0761966adc3f4e61f57f9bc13d6b7608ce711"
1956
1956
  },
1957
+ {
1958
+ "path": "packages/local-runtime/start-dashboard-runtime-selection.mjs",
1959
+ "sha256": "1d246e878b43623f3776d16ef10a04c05b9814f52af19330e35f6e80ad8973e4"
1960
+ },
1961
+ {
1962
+ "path": "packages/local-runtime/start-dashboard-runtime-selection.test.mjs",
1963
+ "sha256": "d6b5f5f2906764b44b831a033ed424e2bc7631fb93a75ff7eeb95b3e9bbe377e"
1964
+ },
1957
1965
  {
1958
1966
  "path": "packages/local-runtime/start-dashboard-server.mjs",
1959
1967
  "sha256": "bd048c19fa6686e9de81d3b25626baf1d54c7fba1033d43418d12dd0c691dc93"
1960
1968
  },
1961
1969
  {
1962
1970
  "path": "packages/local-runtime/start-dashboard.mjs",
1963
- "sha256": "6de1d96848c5b00cad236469893c277ca7660da4d79215abb1917ce5ed1543a3"
1971
+ "sha256": "b1748ab59a760004fbe33c8ea6e07486818b9eb638ed164bc5b3bcdb311ed350"
1964
1972
  },
1965
1973
  {
1966
1974
  "path": "packages/local-runtime/start-dashboard.test.mjs",
@@ -0,0 +1,36 @@
1
+ import { readFile, stat } from "node:fs/promises";
2
+ import { resolve } from "node:path";
3
+
4
+ async function exists(path) {
5
+ return stat(path).then(
6
+ () => true,
7
+ () => false,
8
+ );
9
+ }
10
+
11
+ export async function isDashboardSourceWorkspace(root) {
12
+ if (!(await exists(resolve(root, "pnpm-workspace.yaml")))) return false;
13
+ try {
14
+ return (
15
+ JSON.parse(await readFile(resolve(root, "package.json"), "utf8"))?.name === "@zaip-ai/aios"
16
+ );
17
+ } catch {
18
+ return false;
19
+ }
20
+ }
21
+
22
+ export async function dashboardServerPathForWorkspace({ root, sourcePath, installedPath }) {
23
+ return (await isDashboardSourceWorkspace(root)) && (await exists(sourcePath))
24
+ ? sourcePath
25
+ : installedPath;
26
+ }
27
+
28
+ export async function assertInstalledDashboardArtifacts(paths) {
29
+ const missing = (
30
+ await Promise.all(paths.map(async (path) => ((await exists(path)) ? null : path)))
31
+ ).filter(Boolean);
32
+ if (missing.length > 0)
33
+ throw new Error(
34
+ "Dashboard package artifacts are missing; reinstall ZAIP-AIOS to restore the bundled dashboard.",
35
+ );
36
+ }
@@ -0,0 +1,63 @@
1
+ import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { afterEach, describe, expect, it } from "vitest";
5
+ import { dashboardServerPathForWorkspace, isDashboardSourceWorkspace } from "./start-dashboard.mjs";
6
+ import { assertInstalledDashboardArtifacts } from "./start-dashboard-runtime-selection.mjs";
7
+
8
+ const roots = [];
9
+
10
+ afterEach(async () => {
11
+ await Promise.all(roots.splice(0).map((root) => rm(root, { recursive: true, force: true })));
12
+ });
13
+
14
+ describe("installed dashboard runtime selection", () => {
15
+ it("uses the installed runtime for a consumer with partial build tooling", async () => {
16
+ const root = await mkdtemp(join(tmpdir(), "zaip-dashboard-consumer-"));
17
+ roots.push(root);
18
+ const sourcePath = join(root, ".agents/dashboard/packages/local-runtime/dist/server.cjs");
19
+ const installedPath = join(root, ".agents/dashboard/packages/local-runtime/server.mjs");
20
+ await Promise.all([
21
+ mkdir(join(root, ".agents/dashboard/apps/frontend/dist"), { recursive: true }),
22
+ mkdir(join(root, ".agents/dashboard/packages/local-runtime/dist"), { recursive: true }),
23
+ ]);
24
+ await Promise.all([
25
+ mkdir(join(root, "node_modules/esbuild"), { recursive: true }),
26
+ mkdir(join(root, "node_modules/vite"), { recursive: true }),
27
+ writeFile(join(root, "package.json"), '{"name":"consumer-project"}\n'),
28
+ writeFile(join(root, "pnpm-workspace.yaml"), "packages: []\n"),
29
+ writeFile(join(root, ".agents/dashboard/apps/frontend/dist/index.html"), "bundle\n"),
30
+ writeFile(sourcePath, "source\n"),
31
+ writeFile(installedPath, "installed\n"),
32
+ ]);
33
+
34
+ expect(await isDashboardSourceWorkspace(root)).toBe(false);
35
+ await expect(
36
+ dashboardServerPathForWorkspace({ root, sourcePath, installedPath }),
37
+ ).resolves.toBe(installedPath);
38
+ });
39
+
40
+ it("selects source only for the explicit ZAIP workspace identity", async () => {
41
+ const root = await mkdtemp(join(tmpdir(), "zaip-dashboard-source-"));
42
+ roots.push(root);
43
+ const sourcePath = join(root, "server.cjs");
44
+ const installedPath = join(root, "server.mjs");
45
+ await Promise.all([
46
+ writeFile(join(root, "package.json"), '{"name":"@zaip-ai/aios"}\n'),
47
+ writeFile(join(root, "pnpm-workspace.yaml"), "packages: []\n"),
48
+ writeFile(sourcePath, "source\n"),
49
+ writeFile(installedPath, "installed\n"),
50
+ ]);
51
+
52
+ expect(await isDashboardSourceWorkspace(root)).toBe(true);
53
+ await expect(
54
+ dashboardServerPathForWorkspace({ root, sourcePath, installedPath }),
55
+ ).resolves.toBe(sourcePath);
56
+ });
57
+
58
+ it("rejects an incomplete consumer bundle without attempting a source build", async () => {
59
+ await expect(
60
+ assertInstalledDashboardArtifacts(["missing-server.mjs", "missing-index.html"]),
61
+ ).rejects.toThrow("reinstall ZAIP-AIOS");
62
+ });
63
+ });
@@ -22,6 +22,11 @@ import {
22
22
  stopProcessTree,
23
23
  teardownWarning,
24
24
  } from "./start-dashboard-processes.mjs";
25
+ import {
26
+ assertInstalledDashboardArtifacts,
27
+ isDashboardSourceWorkspace as hasDashboardSourceWorkspace,
28
+ dashboardServerPathForWorkspace as selectDashboardServerPath,
29
+ } from "./start-dashboard-runtime-selection.mjs";
25
30
  import {
26
31
  isPortFree,
27
32
  startDashboardServer as launchDashboardServer,
@@ -557,31 +562,22 @@ export async function refreshDashboardBuildTargets({
557
562
  return { artifacts: Object.values(targets).flatMap((target) => target.artifacts), builtTargets };
558
563
  }
559
564
  async function ensureFreshDashboardBuild(onProgress = () => {}) {
560
- // npm consumers receive a ready-to-run server and frontend bundle. They do
561
- // not receive development-only esbuild, so never turn the first dashboard
562
- // click into a pnpm-install requirement when that packaged runtime exists.
563
- const buildTool = resolve(workspaceRoot, "node_modules/esbuild");
564
- if (!(await exists(buildTool))) {
565
+ if (!(await hasDashboardSourceWorkspace(workspaceRoot))) {
565
566
  const packagedArtifacts = [installedServer, resolve(frontendRoot, "index.html")];
566
- if (
567
- await Promise.all(packagedArtifacts.map((path) => exists(path))).then((entries) =>
568
- entries.every(Boolean),
569
- )
570
- ) {
571
- buildProgress(
572
- onProgress,
573
- 39,
574
- "Usando runtime empacotado",
575
- "O pacote npm já inclui o dashboard pronto; nenhuma instalação de desenvolvimento é necessária.",
576
- );
577
- const signature = await Promise.all(
578
- [...packagedArtifacts, resolve(packageRoot, "start-dashboard.mjs")].map(async (path) => {
579
- const details = await stat(path);
580
- return `${path}:${details.size}:${details.mtimeMs}`;
581
- }),
582
- );
583
- return createHash("sha256").update(signature.join("|")).digest("hex");
584
- }
567
+ await assertInstalledDashboardArtifacts(packagedArtifacts);
568
+ buildProgress(
569
+ onProgress,
570
+ 39,
571
+ "Usando runtime empacotado",
572
+ "O pacote npm já inclui o dashboard pronto; nenhuma instalação de desenvolvimento é necessária.",
573
+ );
574
+ const signature = await Promise.all(
575
+ [...packagedArtifacts, resolve(packageRoot, "start-dashboard.mjs")].map(async (path) => {
576
+ const details = await stat(path);
577
+ return `${path}:${details.size}:${details.mtimeMs}`;
578
+ }),
579
+ );
580
+ return createHash("sha256").update(signature.join("|")).digest("hex");
585
581
  }
586
582
  const { artifacts } = await refreshDashboardBuildTargets({ onProgress });
587
583
  const artifactFingerprint = await Promise.all(
@@ -592,6 +588,16 @@ async function ensureFreshDashboardBuild(onProgress = () => {}) {
592
588
  );
593
589
  return createHash("sha256").update(artifactFingerprint.join("|")).digest("hex");
594
590
  }
591
+ export async function isDashboardSourceWorkspace(root = workspaceRoot) {
592
+ return hasDashboardSourceWorkspace(root);
593
+ }
594
+ export async function dashboardServerPathForWorkspace({
595
+ root = workspaceRoot,
596
+ sourcePath = sourceServer,
597
+ installedPath = installedServer,
598
+ } = {}) {
599
+ return selectDashboardServerPath({ root, sourcePath, installedPath });
600
+ }
595
601
  export async function withLauncherLock(
596
602
  action,
597
603
  {
@@ -766,10 +772,7 @@ async function redirectLaunchPage(launchPage, target) {
766
772
  launchPage.closeAfterHandoffGrace();
767
773
  }
768
774
  async function assertRuntimeReady() {
769
- const serverPath =
770
- (await exists(resolve(workspaceRoot, "node_modules/esbuild"))) && (await exists(sourceServer))
771
- ? sourceServer
772
- : installedServer;
775
+ const serverPath = await dashboardServerPathForWorkspace();
773
776
  if (!(await exists(serverPath))) {
774
777
  throw new Error(
775
778
  "Dashboard server bundle is missing; run the ZAIP release build or reinstall ZAIP-AIOS",
@@ -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.4.1"
9
+ source_release: "1.4.2"
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: "1.4.1"
9
+ source_release: "1.4.2"
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: "1.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
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.4.1"
9
+ source_release: "1.4.2"
10
10
  ---
11
11
 
12
12
  # Evidências, custo por Task e autonomia por SPEC
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "templateVersion": "1.4.1",
4
- "minimumCliVersion": "1.4.1",
3
+ "templateVersion": "1.4.2",
4
+ "minimumCliVersion": "1.4.2",
5
5
  "source": "portable projection of ZAIP Rules, Requirements, skills, design catalog and dashboard runtime",
6
- "sourceFilesSha256": "c418748029ab4c1de1d34e2552ef813059e618eec9085fe91125d100f58b9d76",
6
+ "sourceFilesSha256": "c79a9bfd298939a0c3b0277472a565907730dfacc6762fe3527f11a0c3a10272",
7
7
  "files": [
8
8
  {
9
9
  "path": ".agents/.env.example",
@@ -140,7 +140,7 @@
140
140
  },
141
141
  {
142
142
  "path": ".agents/dashboard/.zaip-managed.json",
143
- "sha256": "082dc6db9853ab29f12a1e5e0ef84f0b698596626699a4aae7f9a4f36863d265"
143
+ "sha256": "0deb177f3ca88065b87877d3d395d433de70622b38543d9e234e47e77bd99d3f"
144
144
  },
145
145
  {
146
146
  "path": ".agents/dashboard/apps/frontend/dist/assets/cost-monitor-DbaLbU2q.js",
@@ -2096,13 +2096,21 @@
2096
2096
  "path": ".agents/dashboard/packages/local-runtime/start-dashboard-refresh.mjs",
2097
2097
  "sha256": "1f95c6e8f97dccae997adbe6bce0761966adc3f4e61f57f9bc13d6b7608ce711"
2098
2098
  },
2099
+ {
2100
+ "path": ".agents/dashboard/packages/local-runtime/start-dashboard-runtime-selection.mjs",
2101
+ "sha256": "1d246e878b43623f3776d16ef10a04c05b9814f52af19330e35f6e80ad8973e4"
2102
+ },
2103
+ {
2104
+ "path": ".agents/dashboard/packages/local-runtime/start-dashboard-runtime-selection.test.mjs",
2105
+ "sha256": "d6b5f5f2906764b44b831a033ed424e2bc7631fb93a75ff7eeb95b3e9bbe377e"
2106
+ },
2099
2107
  {
2100
2108
  "path": ".agents/dashboard/packages/local-runtime/start-dashboard-server.mjs",
2101
2109
  "sha256": "bd048c19fa6686e9de81d3b25626baf1d54c7fba1033d43418d12dd0c691dc93"
2102
2110
  },
2103
2111
  {
2104
2112
  "path": ".agents/dashboard/packages/local-runtime/start-dashboard.mjs",
2105
- "sha256": "6de1d96848c5b00cad236469893c277ca7660da4d79215abb1917ce5ed1543a3"
2113
+ "sha256": "b1748ab59a760004fbe33c8ea6e07486818b9eb638ed164bc5b3bcdb311ed350"
2106
2114
  },
2107
2115
  {
2108
2116
  "path": ".agents/dashboard/packages/local-runtime/start-dashboard.test.mjs",
@@ -2640,67 +2648,67 @@
2640
2648
  },
2641
2649
  {
2642
2650
  "path": ".agents/requirements/autonomous-assurance.md",
2643
- "sha256": "50421746860aaf3679fca1e5944920388927ca2a2977082d1b3f274800e5f8f0"
2651
+ "sha256": "6c08ece5c3148496aaee4f0eb488eac603212921409be9776d26765691f7ef22"
2644
2652
  },
2645
2653
  {
2646
2654
  "path": ".agents/requirements/cloud-hostinger-autonomy.md",
2647
- "sha256": "22a1497b7a9bcadf2783504ec0189f0e61c05052ede36f5d15680d8fae8a5a73"
2655
+ "sha256": "96cafa73250d8c5151a47f842936c26f53c8204b7f97cecaca9640dae59ca91b"
2648
2656
  },
2649
2657
  {
2650
2658
  "path": ".agents/requirements/comparative-audit.md",
2651
- "sha256": "33785706dc62e3bd102876ac2aaf1f61549bb92e46d7a905ffa70509d9b1328b"
2659
+ "sha256": "a878b01d5eaa162050f76543229d32e3c2b6f0530beeba5b041544af983c3f9f"
2652
2660
  },
2653
2661
  {
2654
2662
  "path": ".agents/requirements/context-engine.md",
2655
- "sha256": "daffcfe105135462a94d1577ff2eb0334ffd035e56791b44a98cd46e595a644e"
2663
+ "sha256": "839decc31deeb88b42a270cd759bd4ab359c196e471d3224593fe16f252ab8cb"
2656
2664
  },
2657
2665
  {
2658
2666
  "path": ".agents/requirements/cost-observability.md",
2659
- "sha256": "4f3844eae8f6cf7094e3f084711f72e06362186ec940ade18347b6f792110e5e"
2667
+ "sha256": "d402dfadbe7f3d3bd6ef4d2a39def8fd8f70fa54ae4c46824343329fd431b9c8"
2660
2668
  },
2661
2669
  {
2662
2670
  "path": ".agents/requirements/dashboard-launch.md",
2663
- "sha256": "fd5f768f165a84f1a9684894e6e4e2f492f7f3d32d931daf68ef9e6c25c05c55"
2671
+ "sha256": "5f8dc0b033a3691a9d84b533d287a75bdf1f0103f17e6715b68b6dd870447448"
2664
2672
  },
2665
2673
  {
2666
2674
  "path": ".agents/requirements/data-export.md",
2667
- "sha256": "eaa633ef73caa7de8605fb2ed2a0a30908005ea7980b9d602f241ee4a845b14c"
2675
+ "sha256": "b40818e323e9cf661c5fb35a3ece64985ea5edcd7ccf7f32c5ec2e3fda3fa5d1"
2668
2676
  },
2669
2677
  {
2670
2678
  "path": ".agents/requirements/design-system.md",
2671
- "sha256": "0fc194f6d5ee22542971142a210e64e83fe14cb1636709e4be4ff176d4cc047b"
2679
+ "sha256": "ce288b06809338f0a439f0d52eb1aa93c64e880330e49e9ab4a5a6fd55a3e321"
2672
2680
  },
2673
2681
  {
2674
2682
  "path": ".agents/requirements/execution-engine.md",
2675
- "sha256": "5ce2b0d24647eee5b7691cc70a0b84de46538c1c69a224e07126465086f3b7a1"
2683
+ "sha256": "990eab8f2a28de01c92041d9a0ee767cf68becc58957520400242dbd8b0d8099"
2676
2684
  },
2677
2685
  {
2678
2686
  "path": ".agents/requirements/kanban-dashboard.md",
2679
- "sha256": "334fe12ba9e80a30a2b5bea1aaa8381f5ad0252022f8849a55a4d76d19243b3b"
2687
+ "sha256": "5538c829bb59978bd2a6a3bc503f15357036e9012dc8d363b15c2f3602fe21cf"
2680
2688
  },
2681
2689
  {
2682
2690
  "path": ".agents/requirements/model-orchestration.md",
2683
- "sha256": "7a6b6a0711910d748df937ea2558a382763de6127de259c6a29e92b02f60ab8c"
2691
+ "sha256": "570f5ff3d98046fa018dd8f01718ead94db2f26bb24f62989b5b2e8e302344a7"
2684
2692
  },
2685
2693
  {
2686
2694
  "path": ".agents/requirements/public-distribution.md",
2687
- "sha256": "cdb3bc921966ce748b28ff3a576e5a530763030e000705f4529f33358b5e31aa"
2695
+ "sha256": "90440a969629112b1256f67bd03c7aa0cc360b9958e247d90346a81b719c38cd"
2688
2696
  },
2689
2697
  {
2690
2698
  "path": ".agents/requirements/software-architecture.md",
2691
- "sha256": "951fe42a07845f4368f843ad5b8772eb0ebf2b24d1519dc80d2158e05a81db53"
2699
+ "sha256": "d62766424eae80e3b930c2339b9f6f3572a74a542931cd44d7e0f1e2540e3801"
2692
2700
  },
2693
2701
  {
2694
2702
  "path": ".agents/requirements/strategic-improvements.md",
2695
- "sha256": "90dddf17f0c3b700762150f9137d228a32c71885085bceeb0fedc2966b1d7a94"
2703
+ "sha256": "ff7ee8f67f802c06de6aeed10ec84b1a22a71183b732b13d240a095f607209a8"
2696
2704
  },
2697
2705
  {
2698
2706
  "path": ".agents/requirements/work-lifecycle.md",
2699
- "sha256": "56b67bfcaba3d7116c695f7c1687f6ee5cc23f1d1edfc1f7b5690abd8d57d574"
2707
+ "sha256": "8c364f8c217513bd9916b9dd7658ae280e6b653425ba0e7d6ee6db7dd5cc7717"
2700
2708
  },
2701
2709
  {
2702
2710
  "path": ".agents/requirements/zaip-strategic-95.md",
2703
- "sha256": "236944193197c9588a9253ead9e3e91c05e3c14ce695beb756cf2c7a4509164a"
2711
+ "sha256": "7ac30271194e4a3830f65d88f858ff4dea1e126daa7a50e024444f1d5db12b5c"
2704
2712
  },
2705
2713
  {
2706
2714
  "path": ".agents/rules/architecture.md",