@zaip-ai/cli 3.6.0 → 3.7.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 (55) hide show
  1. package/dist/services/adapters.d.ts +1 -1
  2. package/dist/services/adapters.js +1 -1
  3. package/dist/services/codex-conversation-lifecycle-hook.d.ts.map +1 -1
  4. package/dist/services/codex-conversation-lifecycle-hook.js +37 -6
  5. package/dist/services/codex-conversation-lifecycle-hook.js.map +1 -1
  6. package/package.json +1 -1
  7. package/templates/.agents/config/agents/discovery.json +1 -1
  8. package/templates/.agents/dashboard/.zaip-managed.json +14 -38
  9. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  10. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  11. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  12. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  13. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  14. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  15. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  16. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +122 -122
  17. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +2 -2
  18. package/templates/.agents/dashboard/packages/local-runtime/package.json +2 -2
  19. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +124 -124
  20. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  21. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  22. package/templates/.agents/design/.zaip-managed.json +3 -3
  23. package/templates/.agents/design/apps/catalog/package.json +2 -2
  24. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  25. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  26. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  27. package/templates/.agents/requirements/comparative-audit.md +1 -1
  28. package/templates/.agents/requirements/context-engine.md +1 -1
  29. package/templates/.agents/requirements/cost-observability.md +1 -1
  30. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  31. package/templates/.agents/requirements/data-export.md +1 -1
  32. package/templates/.agents/requirements/design-system.md +1 -1
  33. package/templates/.agents/requirements/execution-engine.md +1 -1
  34. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  35. package/templates/.agents/requirements/model-orchestration.md +1 -1
  36. package/templates/.agents/requirements/public-distribution.md +1 -1
  37. package/templates/.agents/requirements/software-architecture.md +1 -1
  38. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  39. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  40. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  41. package/templates/.agents/runtime/VERSION +1 -1
  42. package/templates/.agents/runtime/bin/zaip.mjs +21 -21
  43. package/templates/.agents/runtime/checksums.sha256 +6 -6
  44. package/templates/.agents/runtime/manifest.json +1 -1
  45. package/templates/.agents/runtime/pnpm-lock.sha256 +1 -1
  46. package/templates/.agents/runtime/provenance.json +5 -5
  47. package/templates/.agents/runtime/sbom.cdx.json +144 -162
  48. package/templates/.agents/zaip-aios/VERSION +1 -1
  49. package/templates/template-manifest.json +46 -70
  50. package/templates/.agents/dashboard/apps/frontend/dist/assets/DashboardHelpDialog-CCMVnkkI.js +0 -2938
  51. package/templates/.agents/dashboard/apps/frontend/dist/assets/DashboardHelpDialog-Je5nK-Et.css +0 -1
  52. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-D46WWIKr.js +0 -3
  53. package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-BKBpJyLh.js +0 -1
  54. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-Bas2TVju.js +0 -2
  55. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-CxrG_wRI.css +0 -1
@@ -1,5 +1,5 @@
1
1
  import { type PublicAgentCatalog } from "./agent-adapters.js";
2
- export declare const ADAPTERS_VERSION = "3.6.0";
2
+ export declare const ADAPTERS_VERSION = "3.7.0";
3
3
  export interface AdapterFile {
4
4
  path: string;
5
5
  content: string;
@@ -6,7 +6,7 @@ import { codexAgentConfig, parsePublicAgentCatalog, publicAgentAdapterFiles, } f
6
6
  import { formatAgentDiscovery, serializeAgentDiscovery } from "./agent-discovery.js";
7
7
  import { CODEX_GITHUB_DEPLOY_RULES, CODEX_SECURITY_RULES } from "./codex-rules.js";
8
8
  import { applyTransactionalWrites, assertSafeDestination } from "./transactional-files.js";
9
- export const ADAPTERS_VERSION = "3.6.0";
9
+ export const ADAPTERS_VERSION = "3.7.0";
10
10
  const ROOT_GUIDANCE = `# ZAIP-AIOS
11
11
 
12
12
  Read \`.agents/config/project.yaml\` first. Apply ZAIP only for literal boolean \`zaip.enabled: true\`, except framework maintenance or \`zaip enable\`. \`AGENTS.md\` is a bootstrap; canonical guidance lives in \`.agents/\`.
@@ -1 +1 @@
1
- {"version":3,"file":"codex-conversation-lifecycle-hook.d.ts","sourceRoot":"","sources":["../../src/services/codex-conversation-lifecycle-hook.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,QAuK7C,CAAC"}
1
+ {"version":3,"file":"codex-conversation-lifecycle-hook.d.ts","sourceRoot":"","sources":["../../src/services/codex-conversation-lifecycle-hook.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,QAsM7C,CAAC"}
@@ -4,21 +4,21 @@ import { createHash, randomUUID } from "node:crypto";
4
4
  import { spawn } from "node:child_process";
5
5
  import { dirname, isAbsolute, relative, resolve } from "node:path";
6
6
  import { fileURLToPath } from "node:url";
7
- const root = resolve(dirname(fileURLToPath(import.meta.url)), "..", "..");
8
- const local = resolve(root, ".local/hooks");
7
+ const hookRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..", "..");
8
+ let root = hookRoot, local;
9
9
  const deadline = Date.now() + 8000;
10
10
  const readChunkBytes = 1024 * 1024, maxLineBytes = 8 * 1024 * 1024, maxReadBytes = 16 * 1024 * 1024;
11
11
  const hash = value => createHash("sha256").update(value).digest("hex");
12
12
  const parse = value => { try { return JSON.parse(value); } catch { return null; } };
13
13
  const text = value => typeof value === "string" && value.length > 0 && value.length <= 4096 ? value : null;
14
- const inside = path => { const p = relative(root, resolve(path)); return p === "" || (!p.startsWith("..") && !isAbsolute(p)); };
14
+ const inside = (path, base = root) => { const p = relative(base, resolve(path)); return p === "" || (!p.startsWith("..") && !isAbsolute(p)); };
15
15
  let raw = ""; for await (const chunk of process.stdin) raw += chunk;
16
16
  const event = parse(raw), session = text(event?.session_id), turn = text(event?.turn_id);
17
17
  let receipt, receiptPath, lease;
18
18
  function reply(pending = false) {
19
19
  const result = { hookSpecificOutput: { hookEventName: "Stop" } };
20
20
  // One continuation at most. Persistent failures remain an explicit durable pending event.
21
- if (pending && event?.stop_hook_active !== true) Object.assign(result, { decision: "block", reason: "ZAIP closure or telemetry is pending. Retry this exact turn using its durable Stop receipt; do not report Task completion before canonical closure." });
21
+ if (pending && event?.stop_hook_active !== true) Object.assign(result, { decision: "block", reason: receipt?.error === "owned_task_active" ? "ZAIP owned Task is still executing or verifying. Continue this turn, inspect every launched process by fresh PID/session status, collect terminal exit and output, and resume from any failure. Never claim a process is still running from stale state." : "ZAIP closure or telemetry is pending. Retry this exact turn using its durable Stop receipt; do not report Task completion before canonical closure." });
22
22
  writeSync(1, JSON.stringify(result) + "\n");
23
23
  }
24
24
  async function save(path, value) {
@@ -118,9 +118,35 @@ function call(cli, args, path) {
118
118
  child.once("error", () => finish(1)); child.once("close", code => finish(code ?? 1));
119
119
  });
120
120
  }
121
+ function gitWorktrees() {
122
+ return new Promise(done => {
123
+ const child = spawn("git", ["-C", hookRoot, "worktree", "list", "--porcelain"], { cwd: hookRoot, windowsHide: true, stdio: ["ignore", "pipe", "ignore"] });
124
+ let out = "", settled = false;
125
+ const finish = value => { if (settled) return; settled = true; clearTimeout(timer); done(value); };
126
+ const timer = setTimeout(() => { child.kill(); finish([hookRoot]); }, Math.min(1500, Math.max(100, deadline - Date.now() - 6500)));
127
+ child.stdout.on("data", data => { out = (out + String(data)).slice(0, 1048576); });
128
+ child.once("error", () => finish([hookRoot]));
129
+ child.once("close", code => finish(code === 0 ? [...new Set(out.split(/\r?\n/).filter(line => line.startsWith("worktree ")).map(line => resolve(line.slice(9))).concat(hookRoot))] : [hookRoot]));
130
+ });
131
+ }
132
+ async function selectWorkspace(correlationKey, worktrees) {
133
+ const matches = [];
134
+ for (const candidate of worktrees.slice(0, 256)) {
135
+ const correlation = parse(await readFile(resolve(candidate, ".local/codex-telemetry-spool/v1/correlations", correlationKey + ".json"), "utf8").catch(() => ""));
136
+ if (correlation?.schema_version === 1 && correlation.thread_id === session && correlation.turn_id === turn && correlation.agent_path === null && typeof correlation.run_id === "string") matches.push(candidate);
137
+ }
138
+ if (matches.length > 1) throw new Error("workspace_correlation_ambiguous");
139
+ return matches[0] ?? hookRoot;
140
+ }
121
141
  try {
142
+ if (event?.hook_event_name !== "Stop" || !session || !turn || !text(event.cwd)) { reply(); process.exit(0); }
143
+ const worktrees = await gitWorktrees();
144
+ if (!worktrees.some(candidate => inside(event.cwd, candidate))) { reply(); process.exit(0); }
145
+ const correlationKey = hash(JSON.stringify(["codex", session, turn, null, null]));
146
+ root = await selectWorkspace(correlationKey, worktrees);
147
+ local = resolve(root, ".local/hooks");
122
148
  const config = await readFile(resolve(root, ".agents/config/project.yaml"), "utf8");
123
- if (event?.hook_event_name !== "Stop" || !session || !turn || !text(event.cwd) || !inside(event.cwd) || !/zaip:\s*\r?\n\s*enabled:\s*true\s*(?:\r?\n|$)/.test(config)) { reply(); process.exit(0); }
149
+ if (!/zaip:\s*\r?\n\s*enabled:\s*true\s*(?:\r?\n|$)/.test(config)) { reply(); process.exit(0); }
124
150
  await mkdir(local, { recursive: true });
125
151
  receiptPath = resolve(local, "stop-" + hash(JSON.stringify([session, turn])) + ".json");
126
152
  lease = await acquire(receiptPath + ".lock");
@@ -134,7 +160,6 @@ try {
134
160
  for (const delay of [0, 250, 750]) { if (delay) await new Promise(r => setTimeout(r, delay)); status = await terminal(text(event.transcript_path)); if (status) break; }
135
161
  if (!status) throw new Error("transcript_pending");
136
162
  const cli = resolve(root, ".agents/runtime/bin/zaip.mjs");
137
- const correlationKey = hash(JSON.stringify(["codex", session, turn, null, null]));
138
163
  const correlation = parse(await readFile(resolve(root, ".local/codex-telemetry-spool/v1/correlations", correlationKey + ".json"), "utf8").catch(() => ""));
139
164
  let intake;
140
165
  if (correlation?.schema_version === 1 && correlation.thread_id === session && correlation.turn_id === turn && correlation.agent_path === null && typeof correlation.run_id === "string") {
@@ -147,6 +172,12 @@ try {
147
172
  const run = intake?.run?.run_id;
148
173
  if (typeof run !== "string" || (intake.task !== null && typeof intake.task?.id !== "string")) throw new Error("start_pending");
149
174
  receipt.run_id = run; await save(receiptPath, receipt);
175
+ if (intake.task !== null && status === "completed" && event?.stop_hook_active !== true) {
176
+ const shown = await call(cli, ["task", "show", intake.task.id], text(event.transcript_path));
177
+ const taskStatus = parse(shown.out)?.task?.status;
178
+ if (shown.code !== 0 || typeof taskStatus !== "string") throw new Error("task_state_pending");
179
+ if (["executing", "verifying"].includes(taskStatus)) throw new Error("owned_task_active");
180
+ }
150
181
  const result = await call(cli, ["subagent", "reconcile-stop", "--session", session, "--turn", turn], text(event.transcript_path));
151
182
  const outcome = parse(result.out);
152
183
  const terminalStates = ["completed", "blocked", "failed", "cancelled"];
@@ -1 +1 @@
1
- {"version":3,"file":"codex-conversation-lifecycle-hook.js","sourceRoot":"","sources":["../../src/services/codex-conversation-lifecycle-hook.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuK1D,CAAC"}
1
+ {"version":3,"file":"codex-conversation-lifecycle-hook.js","sourceRoot":"","sources":["../../src/services/codex-conversation-lifecycle-hook.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsM1D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/cli",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
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",
@@ -1,5 +1,5 @@
1
1
  {
2
- "_zaip_managed": "zaip-managed generated-do-not-edit source=agent-discovery version=3.6.0 sha256=d3bb47843a1305269aa379da3cfb901248c693d21a81b9d5a02afca92668a369",
2
+ "_zaip_managed": "zaip-managed generated-do-not-edit source=agent-discovery version=3.7.0 sha256=d3bb47843a1305269aa379da3cfb901248c693d21a81b9d5a02afca92668a369",
3
3
  "schema_version": 1,
4
4
  "source": {
5
5
  "path": ".agents/config/agents/catalog.yaml",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "files": [
5
5
  {
6
6
  "path": "DATA-DICTIONARY.md",
@@ -18,18 +18,10 @@
18
18
  "path": "apps/frontend/dist/assets/DashboardHelpDialog-BDQR0U4a.js",
19
19
  "sha256": "13a53d6a8a4c85688d8ceba69649008576b5f534364f073135fe96c81290b796"
20
20
  },
21
- {
22
- "path": "apps/frontend/dist/assets/DashboardHelpDialog-CCMVnkkI.js",
23
- "sha256": "13a53d6a8a4c85688d8ceba69649008576b5f534364f073135fe96c81290b796"
24
- },
25
21
  {
26
22
  "path": "apps/frontend/dist/assets/DashboardHelpDialog-DRI_XwUf.css",
27
23
  "sha256": "95dbb5c26ad73831f36f2a51d5e08ef5eee7ca85190764a3e63bf1e700fbadf8"
28
24
  },
29
- {
30
- "path": "apps/frontend/dist/assets/DashboardHelpDialog-Je5nK-Et.css",
31
- "sha256": "aafa708825ff8417d2de8ce9f45b94c899aa9ae5c5068bf5ce4def13e9c00643"
32
- },
33
25
  {
34
26
  "path": "apps/frontend/dist/assets/PricingSettingsDialog-CGYcJ5EB.js",
35
27
  "sha256": "9d8a261bb3cdf7f45d6d95de487114c4170fe5259ed32fd424f74012f9b65d74"
@@ -38,18 +30,10 @@
38
30
  "path": "apps/frontend/dist/assets/ProjectSettingsPage-CQMhvzvJ.css",
39
31
  "sha256": "10e875c4e3ab6c252983822e25a85db3d707d903c0fcf39812909fdd1d013f48"
40
32
  },
41
- {
42
- "path": "apps/frontend/dist/assets/ProjectSettingsPage-D46WWIKr.js",
43
- "sha256": "1945d9fadeb055c4ed38115fbda65a00e6e80df3b74b9db06de956aa7b2d162a"
44
- },
45
33
  {
46
34
  "path": "apps/frontend/dist/assets/ProjectSettingsPage-OulA4CoX.js",
47
35
  "sha256": "de7b5e6f1dd05a949cc875c6fe6d5a3681bb62f527caa0e4678bd6b76b1d96de"
48
36
  },
49
- {
50
- "path": "apps/frontend/dist/assets/TraceabilityWorkspace-BKBpJyLh.js",
51
- "sha256": "fdb21d3f592e5baa9bc0e2a73f5a52ae9828a794d07dcdba1ff8436b4636b2b0"
52
- },
53
37
  {
54
38
  "path": "apps/frontend/dist/assets/TraceabilityWorkspace-Ckxk_izu.js",
55
39
  "sha256": "4802444024515df000d9c55d5cef081fd2895371589167721ac88e5cdd5a91fd"
@@ -74,18 +58,10 @@
74
58
  "path": "apps/frontend/dist/assets/icons-vendor-x8xxL9yW.js",
75
59
  "sha256": "12d70f2fbcba71ff76f47f9eff38aa6de57890881f62654545c6d6db8dae1cf7"
76
60
  },
77
- {
78
- "path": "apps/frontend/dist/assets/index-Bas2TVju.js",
79
- "sha256": "a158426c97697e2fbcaa0b48ba7b9e2521c62e3afcaa3267109cb5cb01b46e44"
80
- },
81
61
  {
82
62
  "path": "apps/frontend/dist/assets/index-CqfSgtk9.js",
83
63
  "sha256": "1124cbe112daf81b9ab9175139864664c173ed24288c2ea5c7b998f8f8f3b8af"
84
64
  },
85
- {
86
- "path": "apps/frontend/dist/assets/index-CxrG_wRI.css",
87
- "sha256": "83e7fcf065b2ae7394de6b1aa543616b5a233c5ccc549190e96dbf3ad848a755"
88
- },
89
65
  {
90
66
  "path": "apps/frontend/dist/assets/index-OBJXZOwe.css",
91
67
  "sha256": "43de3012ecb2f5ffd2e8096c0543f35b390066d0d2033440b81682b01e560e89"
@@ -128,7 +104,7 @@
128
104
  },
129
105
  {
130
106
  "path": "apps/frontend/package.json",
131
- "sha256": "9e2efa54cac237e702742b65e5407b4c6b553313106a43a74aa51ae605221530"
107
+ "sha256": "1bc93266b2eb2dbf25c44cd03dcf432453d6dd024838af8ce515945f508bda58"
132
108
  },
133
109
  {
134
110
  "path": "apps/frontend/playwright.dom.config.ts",
@@ -588,7 +564,7 @@
588
564
  },
589
565
  {
590
566
  "path": "modules/cost-monitor/package.json",
591
- "sha256": "cdeb2f0fc2608dd539bb0d86d2ab104756f772ba24ed28e56c3aa7567f913d62"
567
+ "sha256": "de5be7bd96a09ab368ca00e51839d12df600fe8b82b71eb5c1f1f1e7affd530c"
592
568
  },
593
569
  {
594
570
  "path": "modules/cost-monitor/src/agent-groups.test.ts",
@@ -976,7 +952,7 @@
976
952
  },
977
953
  {
978
954
  "path": "modules/operations/package.json",
979
- "sha256": "db4a166d930f5deb49ccda61330195cc50e9d157e967264c1b44e4613d6f8726"
955
+ "sha256": "cab0313f30893bc22287025dd75662419885fae42bef89243559ea161ea5fdc8"
980
956
  },
981
957
  {
982
958
  "path": "modules/operations/src/contracts.ts",
@@ -1648,7 +1624,7 @@
1648
1624
  },
1649
1625
  {
1650
1626
  "path": "modules/traceability/package.json",
1651
- "sha256": "42e30ba19f0fe21a0907b0273663fe5caa2926c6ccb1f52237a84bc8132a4b33"
1627
+ "sha256": "5e35417f76a80a19e65f10fe6eb8034a3fe8a8622216e4eb7982eb86a6357300"
1652
1628
  },
1653
1629
  {
1654
1630
  "path": "modules/traceability/src/contracts.ts",
@@ -1720,7 +1696,7 @@
1720
1696
  },
1721
1697
  {
1722
1698
  "path": "packages/branding/package.json",
1723
- "sha256": "c1bf83ab855623f7be542c5a1234f478d4c893bf908d63942037e5f2f1d43f6b"
1699
+ "sha256": "af454a9cd31522b56aa7e336e8d8a85ed005aaee374b92d5a8cec9ddcc32a9e1"
1724
1700
  },
1725
1701
  {
1726
1702
  "path": "packages/branding/src/index.ts",
@@ -1732,7 +1708,7 @@
1732
1708
  },
1733
1709
  {
1734
1710
  "path": "packages/contracts/package.json",
1735
- "sha256": "4f1cb029433de89c08a28eb40be8160c4eff7274e9964a6a30f4559d0d5fd56c"
1711
+ "sha256": "ba6c01be191de6a2686cb97d838d2c999a46f0c3e5a52eb8e80486f51aa12649"
1736
1712
  },
1737
1713
  {
1738
1714
  "path": "packages/contracts/src/export.ts",
@@ -1752,7 +1728,7 @@
1752
1728
  },
1753
1729
  {
1754
1730
  "path": "packages/data-export/package.json",
1755
- "sha256": "c567fc641e5480793f43e82bbbf8ad3f02c14c4130a7430533c46852a5a9079a"
1731
+ "sha256": "2c4c5519ecc2526664fbd88215d09978898dece5926132a7244a489468fa134f"
1756
1732
  },
1757
1733
  {
1758
1734
  "path": "packages/data-export/src/index.test.ts",
@@ -1776,15 +1752,15 @@
1776
1752
  },
1777
1753
  {
1778
1754
  "path": "packages/local-runtime/dist/server.cjs",
1779
- "sha256": "33722fcddce826fc39b9205ac86565a96a26b68859cc970e16a6ca9440d90ecc"
1755
+ "sha256": "4b7fd806f422490658d65c4423c6995c8e211edb668dda985bcb305a8f88735b"
1780
1756
  },
1781
1757
  {
1782
1758
  "path": "packages/local-runtime/dist/sqlite-read-model.cjs",
1783
- "sha256": "cc163dadd7e40bc475c4839954eb7badd3adb7e1560f19572f993666d8b550aa"
1759
+ "sha256": "e3e13d7e0b2bf4ae741f53d02db71f9113fc43f1605ac7f6f72fdf9639c6fecc"
1784
1760
  },
1785
1761
  {
1786
1762
  "path": "packages/local-runtime/package.json",
1787
- "sha256": "6b38188167ab1349909c19b75df692bda0a9dc7fdf86e6ce70fa41cfa7488c94"
1763
+ "sha256": "62751e0fb423ec4aaa7e4014a77874f4ad538a11733eb851ea7133386d0a9b26"
1788
1764
  },
1789
1765
  {
1790
1766
  "path": "packages/local-runtime/scripts/build-sqlite-dashboard.mjs",
@@ -1820,7 +1796,7 @@
1820
1796
  },
1821
1797
  {
1822
1798
  "path": "packages/local-runtime/server.mjs",
1823
- "sha256": "47a2f79b86260b33569798fda864404153dc4b42159ccf48feda1e274d9cdc3f"
1799
+ "sha256": "b45d2b69e66e7edac8e7320d9cb761896e7e44928aff628046cbacff1a8dbcad"
1824
1800
  },
1825
1801
  {
1826
1802
  "path": "packages/local-runtime/src/active-codex-telemetry.test.ts",
@@ -2568,7 +2544,7 @@
2568
2544
  },
2569
2545
  {
2570
2546
  "path": "packages/ui/package.json",
2571
- "sha256": "ed15f292f390651c475206b988bceafa3b08a06a073a25ce871d843873416be5"
2547
+ "sha256": "c31b5427254e51ace8ff688a104a07b46b18be2cc23a1cb6f31e7033ae007b8b"
2572
2548
  },
2573
2549
  {
2574
2550
  "path": "packages/ui/src/DashboardHeader.test.mjs",
@@ -2676,7 +2652,7 @@
2676
2652
  },
2677
2653
  {
2678
2654
  "path": "tests/e2e/package.json",
2679
- "sha256": "01d1a078d5a383a14c69a3ad8e6b41fbc60246740981eb50efa9d6a644e73def"
2655
+ "sha256": "3311deceefdd1119e99a9fbd380de9276f98bfdd0965acd2ed9605abb24332cd"
2680
2656
  },
2681
2657
  {
2682
2658
  "path": "tests/e2e/playwright.config.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/dashboard-frontend",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/dashboard-cost-monitor",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/dashboard-operations",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/dashboard-traceability",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/dashboard-branding",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/dashboard-contracts",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/dashboard-data-export",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": {