@zaip-ai/cli 5.2.0 → 5.4.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 (74) hide show
  1. package/dist/services/adapters.d.ts +1 -1
  2. package/dist/services/adapters.js +1 -1
  3. package/dist/services/codex-literal-read-sequence-template.d.ts +2 -0
  4. package/dist/services/codex-literal-read-sequence-template.d.ts.map +1 -0
  5. package/dist/services/codex-literal-read-sequence-template.js +91 -0
  6. package/dist/services/codex-literal-read-sequence-template.js.map +1 -0
  7. package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
  8. package/dist/services/codex-pre-tool-hook-template.js +49 -10
  9. package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
  10. package/dist/services/codex-pre-tool-host-context-template.d.ts.map +1 -1
  11. package/dist/services/codex-pre-tool-host-context-template.js +2 -0
  12. package/dist/services/codex-pre-tool-host-context-template.js.map +1 -1
  13. package/dist/services/codex-pre-tool-support-template.d.ts.map +1 -1
  14. package/dist/services/codex-pre-tool-support-template.js +2 -65
  15. package/dist/services/codex-pre-tool-support-template.js.map +1 -1
  16. package/package.json +1 -1
  17. package/templates/.agents/README-ENG.md +19 -0
  18. package/templates/.agents/README.md +19 -0
  19. package/templates/.agents/config/agents/discovery.json +1 -1
  20. package/templates/.agents/dashboard/.zaip-managed.json +29 -29
  21. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-CDUKVlrH.js → DashboardHelpDialog-Bw42VT15.js} +20 -1
  22. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-Czs55K79.js → PricingSettingsDialog-C3Y-jqQe.js} +1 -1
  23. package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-DhpaKwjC.js → ProjectSettingsPage-Bx54lj7x.js} +1 -1
  24. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-DPxfH469.js → TraceabilityWorkspace-BNxFpGCt.js} +1 -1
  25. package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-BE_Zqtym.js → dashboard-localization-BQDxpGq0.js} +19 -0
  26. package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-D5HmMZ27.js → index-CsSv72iu.js} +2 -2
  27. package/templates/.agents/dashboard/apps/frontend/dist/index.html +1 -1
  28. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  29. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  30. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  31. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  32. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  33. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  34. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  35. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +127 -127
  36. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +72 -72
  37. package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
  38. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +128 -128
  39. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  40. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  41. package/templates/.agents/design/.zaip-managed.json +3 -3
  42. package/templates/.agents/design/apps/catalog/package.json +1 -1
  43. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  44. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  45. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  46. package/templates/.agents/requirements/comparative-audit.md +1 -1
  47. package/templates/.agents/requirements/context-engine.md +1 -1
  48. package/templates/.agents/requirements/cost-observability.md +1 -1
  49. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  50. package/templates/.agents/requirements/data-export.md +1 -1
  51. package/templates/.agents/requirements/design-system.md +1 -1
  52. package/templates/.agents/requirements/execution-engine.md +1 -1
  53. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  54. package/templates/.agents/requirements/model-orchestration.md +1 -1
  55. package/templates/.agents/requirements/public-distribution.md +1 -1
  56. package/templates/.agents/requirements/software-architecture.md +1 -1
  57. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  58. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  59. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  60. package/templates/.agents/runtime/VERSION +1 -1
  61. package/templates/.agents/runtime/bin/zaip.mjs +162 -96
  62. package/templates/.agents/runtime/checksums.sha256 +5 -5
  63. package/templates/.agents/runtime/manifest.json +1 -1
  64. package/templates/.agents/runtime/provenance.json +4 -4
  65. package/templates/.agents/runtime/sbom.cdx.json +1 -1
  66. package/templates/.agents/skills/zaip-skill-execution/references/runtime-governance.md +1 -0
  67. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.mjs +25 -0
  68. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-publication-intent.test.mjs +56 -0
  69. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs +1 -0
  70. package/templates/.agents/skills/zaip-skill-lifecycle-closure/SKILL.md +8 -0
  71. package/templates/.agents/skills/zaip-skill-lifecycle-closure/references/post-publication-task-first.md +119 -0
  72. package/templates/.agents/skills/zaip-skill-task/references/commit-policy.md +9 -0
  73. package/templates/.agents/zaip-aios/VERSION +1 -1
  74. package/templates/template-manifest.json +75 -67
@@ -1,6 +1,6 @@
1
1
  import { type PublicAgentCatalog } from "./agent-adapters.js";
2
2
  export { isManagedAdapter } from "./managed-adapter.js";
3
- export declare const ADAPTERS_VERSION = "5.2.0";
3
+ export declare const ADAPTERS_VERSION = "5.4.0";
4
4
  export interface AdapterFile {
5
5
  path: string;
6
6
  content: string;
@@ -11,7 +11,7 @@ export { isManagedAdapter } from "./managed-adapter.js";
11
11
  import { CODEX_GITHUB_DEPLOY_RULES, CODEX_SECURITY_RULES } from "./codex-rules.js";
12
12
  import { codexWindowsHookCommand } from "./codex-windows-hook-command.js";
13
13
  import { applyTransactionalChanges, assertSafeDestination } from "./transactional-files.js";
14
- export const ADAPTERS_VERSION = "5.2.0";
14
+ export const ADAPTERS_VERSION = "5.4.0";
15
15
  const ROOT_GUIDANCE = `# ZAIP-AIOS
16
16
 
17
17
  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/\`.
@@ -0,0 +1,2 @@
1
+ export declare const CODEX_LITERAL_READ_SEQUENCE: string;
2
+ //# sourceMappingURL=codex-literal-read-sequence-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-literal-read-sequence-template.d.ts","sourceRoot":"","sources":["../../src/services/codex-literal-read-sequence-template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,QAyFvC,CAAC"}
@@ -0,0 +1,91 @@
1
+ export const CODEX_LITERAL_READ_SEQUENCE = String.raw `export function createLiteralReadSequence({ shellSyntax, tokenizeLiteralCommand }) {
2
+ // Recognize only literal read-only pipelines/sequences. Quoted search text is data,
3
+ // not a PowerShell alias (for example the AC prefix in acceptance-criterion IDs).
4
+ function isLiteralGitRead(values) {
5
+ if (!/^(?:git|git\.exe)$/i.test(values[0])) return false;
6
+ // Deliberately narrow: only the fixed fsmonitor=false override, no aliases, routing, pagers, external diff,
7
+ // textconv, output files, or mutating subcommands in a read sequence.
8
+ const args = values.slice(1);
9
+ if (args.shift() !== "--no-pager" || args.shift() !== "-c" || args.shift() !== "core.fsmonitor=false") return false;
10
+ const subcommand = args.shift();
11
+ if (!["status", "log", "rev-parse", "diff"].includes(subcommand)) return false;
12
+ if (["diff", "log"].includes(subcommand) && !["--no-ext-diff", "--no-textconv"].every(flag => args.includes(flag))) return false;
13
+ if (subcommand === "log" && !["--no-patch", "--no-show-signature"].every(flag => args.includes(flag))) return false;
14
+ if (subcommand === "diff" && !["--name-only", "--name-status", "--stat", "--check"].some(flag => args.includes(flag))) return false;
15
+ const options = {
16
+ status: /^(?:-s|-b|--short|--branch|--porcelain(?:=v?[12])?|--untracked-files(?:=(?:no|normal|all))?|--ignored(?:=(?:traditional|matching|no))?)$/,
17
+ log: /^(?:--no-ext-diff|--no-textconv|--no-patch|--no-show-signature|--oneline|--all|--decorate(?:=(?:short|full|no))?|--no-decorate|--date-order|--topo-order|--reverse|--no-merges|--merges|--max-count=\d+|-\d+|--format=(?:%H|%h|%s|%H%x09%s))$/,
18
+ "rev-parse": /^(?:--show-toplevel|--git-common-dir|--absolute-git-dir|--is-inside-work-tree|--show-prefix|--verify|--short(?:=\d+)?|--symbolic-full-name|--abbrev-ref|--end-of-options)$/,
19
+ diff: /^(?:--name-only|--name-status|--stat|--check|--cached|--staged|--no-ext-diff|--no-textconv|--exit-code|--quiet)$/,
20
+ };
21
+ return args.every(value => value.startsWith("-") ? options[subcommand].test(value) :
22
+ // Plain revisions/pathspecs only; shell syntax was already parsed separately.
23
+ /^[A-Za-z0-9_./@~^:\\-]+$/.test(value));
24
+ }
25
+ function isLiteralReadSequence(command) {
26
+ const syntax = shellSyntax(command);
27
+ if (syntax.interpolation || syntax.redirection || syntax.grouping) return false;
28
+ const parts = [];
29
+ let start = 0, quote = null;
30
+ for (let index = 0; index < command.length; index++) {
31
+ const char = command[index];
32
+ if (quote !== null) {
33
+ if (char === quote) {
34
+ if (quote === "'" && command[index + 1] === "'" && process.platform === "win32") index++;
35
+ else quote = null;
36
+ }
37
+ } else if (char === "'" || char === '"') quote = char;
38
+ else if (char === ";" || char === "|") { parts.push(command.slice(start, index)); start = index + 1; }
39
+ }
40
+ if (quote !== null) return false;
41
+ parts.push(command.slice(start));
42
+ return parts.every(part => {
43
+ const values = tokenizeLiteralCommand(part);
44
+ if (!values?.length) return false;
45
+ if (isLiteralGitRead(values)) return true;
46
+ if (/^Get-Item$/i.test(values[0])) {
47
+ const args = values.slice(1);
48
+ const path = args[0] === "-LiteralPath" ? args[1] : args[0];
49
+ return args.length === (args[0] === "-LiteralPath" ? 2 : 1) &&
50
+ !!path && !/^(?:[a-z][\w-]*:)(?![\/])/i.test(path) && !/[*?]/.test(path);
51
+ }
52
+ if (/^Select-Object$/i.test(values[0])) {
53
+ const args = values.slice(1);
54
+ const metadata = /^(?:Name|FullName|Length|LastWriteTime|LastWriteTimeUtc|CreationTime|Attributes|IsReadOnly|LinkType|Target)(?:,(?:Name|FullName|Length|LastWriteTime|LastWriteTimeUtc|CreationTime|Attributes|IsReadOnly|LinkType|Target))*$/i;
55
+ const slice = args.length > 0 && args.length % 2 === 0 && args.every((value, index) =>
56
+ index % 2 === 0 ? /^(?:-First|-Last|-Skip)$/i.test(value) : /^\d+$/.test(value));
57
+ return slice ||
58
+ (args.length === 2 && args[0] === "-ExpandProperty" && args[1] === "Target") ||
59
+ (args.length === 2 && args[0] === "-Property" && metadata.test(args[1])) ||
60
+ (args.length === 1 && metadata.test(args[0]));
61
+ }
62
+ if (/^Select-String$/i.test(values[0])) {
63
+ const flags = /^(?:-SimpleMatch|-CaseSensitive|-Quiet|-List|-AllMatches|-NotMatch|-Raw)$/i;
64
+ const valued = /^(?:-Pattern|-Path|-LiteralPath|-Context|-Encoding)$/i;
65
+ for (let index = 1; index < values.length; index++) {
66
+ const value = values[index];
67
+ if (flags.test(value)) continue;
68
+ if (valued.test(value) && values[index + 1] !== undefined) { index++; continue; }
69
+ return false;
70
+ }
71
+ return values.length > 1;
72
+ }
73
+ if (/^(?:gh|gh\.exe)$/i.test(values[0])) {
74
+ if (!["run", "release"].includes(values[1]) || values[2] !== "view") return false;
75
+ const args = values.slice(3);
76
+ if (args[0] && /^[A-Za-z0-9._-]+$/.test(args[0]) && !args[0].startsWith("-")) args.shift();
77
+ for (let index = 0; index < args.length; index += 2) {
78
+ if (!["--json", "--jq"].includes(args[index]) || !args[index + 1]) return false;
79
+ }
80
+ return true;
81
+ }
82
+ if (/^(?:Get-Content|Measure-Object)$/i.test(values[0])) return true;
83
+ if (!/^(?:rg|rg\.exe)$/i.test(values[0])) return false;
84
+ return !values.slice(1).some(value => /^--(?:pre|hostname-bin)(?:=|$)/i.test(value));
85
+ });
86
+ }
87
+
88
+ return isLiteralReadSequence;
89
+ }
90
+ `;
91
+ //# sourceMappingURL=codex-literal-read-sequence-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-literal-read-sequence-template.js","sourceRoot":"","sources":["../../src/services/codex-literal-read-sequence-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-pre-tool-hook-template.d.ts","sourceRoot":"","sources":["../../src/services/codex-pre-tool-hook-template.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,QA+mB/B,CAAC"}
1
+ {"version":3,"file":"codex-pre-tool-hook-template.d.ts","sourceRoot":"","sources":["../../src/services/codex-pre-tool-hook-template.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,QAspB/B,CAAC"}
@@ -214,8 +214,11 @@ async function validateExplicitFilesystemReferences(command, cwd, reviewedPaths
214
214
  if (jsonPath) { if (path.includes("\\") || !isWithinRepository(resolve(path))) deny("Explicit filesystem path escapes the repository boundary."); continue; }
215
215
  if (path.includes("\\") || !isWithinRepository(resolve(path)) || (match[2] && before && !(/\s/.test(before) || before === "=" || jsonPath)) || (after && !/\s/.test(after) && !jsonPath)) deny("Explicit operating-system paths outside the repository are blocked.");
216
216
  }
217
- if (process.platform === "win32" && /(?:^|[\s"'=(,])\\(?!\\)[^\s\\/"'<>|;]+(?:\\[^\s"'<>|;]+|\.[A-Za-z0-9]{1,10})/.test(checked)) {
218
- deny("Drive-rooted filesystem paths outside the repository are blocked.");
217
+ if (process.platform === "win32") {
218
+ for (const match of checked.matchAll(/(?:^|[\s"'=(,])(\\(?!\\)[^\s\\/"'<>|;]+(?:\\[^\s"'<>|;]+|\.[A-Za-z0-9]{1,10}))/g)) {
219
+ if (principalFullAccess) { await assertCanonicalLiteralPath(match[1], cwd); continue; }
220
+ deny("Drive-rooted filesystem paths outside the repository are blocked.");
221
+ }
219
222
  }
220
223
  for (const candidate of explicitPathCandidates(checked)) {
221
224
  if (principalFullAccess) { await assertCanonicalLiteralPath(candidate, cwd); continue; }
@@ -302,6 +305,41 @@ async function validateGitPublication(command) {
302
305
  }
303
306
  }
304
307
 
308
+ // These CLI values are data, never shell programs. Only one literal invocation of
309
+ // the canonical runtime qualifies; interpolation, pipelines and other scripts do not.
310
+ function executionPolicyCommand(command) {
311
+ const tokens = tokenizeLiteralCommand(command);
312
+ if (!tokens || !/^(?:.*[\\/])?node(?:\.exe)?$/i.test(tokens[0] ?? "") ||
313
+ resolve(event.cwd, tokens[1] ?? "") !== resolve(repositoryRoot, ".agents/runtime/bin/zaip.mjs") ||
314
+ tokens[2] !== "conversation" || tokens[3] !== "finish") return command;
315
+ const result = [...tokens];
316
+ for (let index = 4; index < result.length; index++) {
317
+ if (result[index] === "--summary" && index + 1 < result.length) result[++index] = "literal-summary";
318
+ else if (result[index].startsWith("--summary=")) result[index] = "--summary=literal-summary";
319
+ }
320
+ return result.map(token => JSON.stringify(token)).join(" ");
321
+ }
322
+
323
+ async function isCurrentRepositoryRead(command) {
324
+ const tokens = tokenizeLiteralCommand(command);
325
+ if (!tokens || !/^gh(?:\.exe)?$/i.test(tokens[0] ?? "")) return false;
326
+ const rest = [], repositories = [];
327
+ for (let index = 0; index < tokens.length; index++) {
328
+ const token = tokens[index];
329
+ if (token === "--repo" || token === "-R") repositories.push(tokens[++index]);
330
+ else if (token.startsWith("--repo=")) repositories.push(token.slice(7));
331
+ else if (token.startsWith("-R") && token.length > 2) repositories.push(token.slice(2));
332
+ else rest.push(token);
333
+ }
334
+ if (repositories.length !== 1 || !/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(repositories[0] ?? "") ||
335
+ rest.some(token => token.includes("'")) || !isLiteralReadSequence(rest.map(token => "'" + token + "'").join(" "))) return false;
336
+ try {
337
+ const origin = (await execute("git", ["remote", "get-url", "origin"], { cwd: repositoryRoot, encoding: "utf8", windowsHide: true })).stdout.trim();
338
+ const match = /^(?:git@github\.com:|https:\/\/github\.com\/|ssh:\/\/git@github\.com\/)([^/]+\/[^/]+?)\.git$|^(?:git@github\.com:|https:\/\/github\.com\/|ssh:\/\/git@github\.com\/)([^/]+\/[^/]+?)\/?$/.exec(origin);
339
+ return !!match && (match[1] ?? match[2]).toLowerCase() === repositories[0].toLowerCase();
340
+ } catch { return false; }
341
+ }
342
+
305
343
  function validateHashicorpRead(command) {
306
344
  const tokens = tokenizeLiteralCommand(command);
307
345
  if (!tokens || !/^(?:curl(?:\.exe)?|Invoke-WebRequest|Invoke-RestMethod|iwr|irm)$/i.test(tokens[0]))
@@ -609,14 +647,15 @@ else {
609
647
  ...await reviewedContextReadPaths(command, credentialReferencePattern, installedRoot), ...await (nativeAuthority?.reviewedValidationRuntimePaths?.(command, tokenizeLiteralCommand, repositoryRoot) ?? []),
610
648
  ];
611
649
  await validateExplicitFilesystemReferences(command, event.cwd, reviewedPaths);
612
- validateInlineExecution(command, deny);
613
- if (!isLiteralReadSequence(command)) {
614
- await validateGitPublication(command);
615
- await validateCloudRunner(command);
616
- validateDirectCloudProviderMutation(command);
617
- validateExplicitNetwork(command);
618
- await validateShellDeletion(command, event.cwd);
619
- checkDestructivePatterns(command, destructivePatterns, deny);
650
+ const policyCommand = executionPolicyCommand(command);
651
+ validateInlineExecution(policyCommand, deny);
652
+ if (!isLiteralReadSequence(policyCommand) && !await isCurrentRepositoryRead(policyCommand)) {
653
+ await validateGitPublication(policyCommand);
654
+ await validateCloudRunner(policyCommand);
655
+ validateDirectCloudProviderMutation(policyCommand);
656
+ validateExplicitNetwork(policyCommand);
657
+ await validateShellDeletion(policyCommand, event.cwd);
658
+ checkDestructivePatterns(policyCommand, destructivePatterns, deny);
620
659
  }
621
660
  try { const updated = await captureCliTurn(repositoryRoot, event, command); if (updated) writeSync(1, JSON.stringify(rewriteCliInput(toolInput, updated, commandFromCmd)) + "\n"); }
622
661
  catch (error) { deny(error.message); }
@@ -1 +1 @@
1
- {"version":3,"file":"codex-pre-tool-hook-template.js","sourceRoot":"","sources":["../../src/services/codex-pre-tool-hook-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEjF,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0W3C,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqQ5B,CAAC"}
1
+ {"version":3,"file":"codex-pre-tool-hook-template.js","sourceRoot":"","sources":["../../src/services/codex-pre-tool-hook-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEjF,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgZ3C,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsQ5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-pre-tool-host-context-template.d.ts","sourceRoot":"","sources":["../../src/services/codex-pre-tool-host-context-template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gCAAgC,QAwK5C,CAAC"}
1
+ {"version":3,"file":"codex-pre-tool-host-context-template.d.ts","sourceRoot":"","sources":["../../src/services/codex-pre-tool-host-context-template.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gCAAgC,QAyK5C,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { CODEX_LITERAL_READ_SEQUENCE } from "./codex-literal-read-sequence-template.js";
1
2
  export const CODEX_PRE_TOOL_HOST_CONTEXT_HOOK = String.raw `import { execFile } from "node:child_process";
2
3
  import { lstat, realpath } from "node:fs/promises";
3
4
  import { dirname, isAbsolute, resolve, toNamespacedPath } from "node:path";
@@ -166,5 +167,6 @@ async function selectHookExecutionWorkspace(installedRoot, event, allowExternal
166
167
 
167
168
  return { configuredPermissionProfile, selectHookRepositoryRoot, selectHookExecutionWorkspace };
168
169
  }
170
+ ${CODEX_LITERAL_READ_SEQUENCE}
169
171
  `;
170
172
  //# sourceMappingURL=codex-pre-tool-host-context-template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-pre-tool-host-context-template.js","sourceRoot":"","sources":["../../src/services/codex-pre-tool-host-context-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwKzD,CAAC"}
1
+ {"version":3,"file":"codex-pre-tool-host-context-template.js","sourceRoot":"","sources":["../../src/services/codex-pre-tool-host-context-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAExF,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwKxD,2BAA2B;CAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-pre-tool-support-template.d.ts","sourceRoot":"","sources":["../../src/services/codex-pre-tool-support-template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,QA6YvC,CAAC"}
1
+ {"version":3,"file":"codex-pre-tool-support-template.d.ts","sourceRoot":"","sources":["../../src/services/codex-pre-tool-support-template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,QA8UvC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export const CODEX_PRE_TOOL_SUPPORT_HOOK = String.raw `import { lstat, readFile, realpath } from "node:fs/promises";
2
2
  import { dirname, isAbsolute, relative, resolve, toNamespacedPath } from "node:path";
3
3
  import { homedir } from "node:os";
4
- import { createHostContext } from "./zaip-pre-tool-host-context.mjs";
4
+ import { createHostContext, createLiteralReadSequence } from "./zaip-pre-tool-host-context.mjs";
5
5
  import { createCliTurnCapture } from "./zaip-pre-tool-cli-capture.mjs";
6
6
  export { readAuthorityRunRecords, checkDestructivePatterns, configuredDeploymentBranches } from "./zaip-native-tool-authority.mjs";
7
7
  const pathIdentity = value => process.platform === "win32" ? toNamespacedPath(resolve(value)).toLowerCase() : resolve(value);
@@ -99,70 +99,7 @@ export function requiresShellMutationRun(command, tokens, cwd, repositoryRoot) {
99
99
  return (tokens && isSedMutation(tokens)) || shellMutationPattern.test(command) || syntax.redirection;
100
100
  }
101
101
 
102
- // Recognize only literal read-only pipelines/sequences. Quoted search text is data,
103
- // not a PowerShell alias (for example the AC prefix in acceptance-criterion IDs).
104
- function isLiteralGitRead(values) {
105
- if (!/^(?:git|git\.exe)$/i.test(values[0])) return false;
106
- // Deliberately narrow: only the fixed fsmonitor=false override, no aliases, routing, pagers, external diff,
107
- // textconv, output files, or mutating subcommands in a read sequence.
108
- const args = values.slice(1);
109
- if (args.shift() !== "--no-pager" || args.shift() !== "-c" || args.shift() !== "core.fsmonitor=false") return false;
110
- const subcommand = args.shift();
111
- if (!["status", "log", "rev-parse", "diff"].includes(subcommand)) return false;
112
- if (["diff", "log"].includes(subcommand) && !["--no-ext-diff", "--no-textconv"].every(flag => args.includes(flag))) return false;
113
- if (subcommand === "log" && !["--no-patch", "--no-show-signature"].every(flag => args.includes(flag))) return false;
114
- if (subcommand === "diff" && !["--name-only", "--name-status", "--stat", "--check"].some(flag => args.includes(flag))) return false;
115
- const options = {
116
- status: /^(?:-s|-b|--short|--branch|--porcelain(?:=v?[12])?|--untracked-files(?:=(?:no|normal|all))?|--ignored(?:=(?:traditional|matching|no))?)$/,
117
- log: /^(?:--no-ext-diff|--no-textconv|--no-patch|--no-show-signature|--oneline|--all|--decorate(?:=(?:short|full|no))?|--no-decorate|--date-order|--topo-order|--reverse|--no-merges|--merges|--max-count=\d+|-\d+|--format=(?:%H|%h|%s|%H%x09%s))$/,
118
- "rev-parse": /^(?:--show-toplevel|--git-common-dir|--absolute-git-dir|--is-inside-work-tree|--show-prefix|--verify|--short(?:=\d+)?|--symbolic-full-name|--abbrev-ref|--end-of-options)$/,
119
- diff: /^(?:--name-only|--name-status|--stat|--check|--cached|--staged|--no-ext-diff|--no-textconv|--exit-code|--quiet)$/,
120
- };
121
- return args.every(value => value.startsWith("-") ? options[subcommand].test(value) :
122
- // Plain revisions/pathspecs only; shell syntax was already parsed separately.
123
- /^[A-Za-z0-9_./@~^:\\-]+$/.test(value));
124
- }
125
- export function isLiteralReadSequence(command) {
126
- const syntax = shellSyntax(command);
127
- if (syntax.interpolation || syntax.redirection || syntax.grouping) return false;
128
- const parts = [];
129
- let start = 0, quote = null;
130
- for (let index = 0; index < command.length; index++) {
131
- const char = command[index];
132
- if (quote !== null) {
133
- if (char === quote) {
134
- if (quote === "'" && command[index + 1] === "'" && process.platform === "win32") index++;
135
- else quote = null;
136
- }
137
- } else if (char === "'" || char === '"') quote = char;
138
- else if (char === ";" || char === "|") { parts.push(command.slice(start, index)); start = index + 1; }
139
- }
140
- if (quote !== null) return false;
141
- parts.push(command.slice(start));
142
- return parts.every(part => {
143
- const values = tokenizeLiteralCommand(part);
144
- if (!values?.length) return false;
145
- if (isLiteralGitRead(values)) return true;
146
- if (/^Get-Item$/i.test(values[0])) {
147
- const args = values.slice(1);
148
- const path = args[0] === "-LiteralPath" ? args[1] : args[0];
149
- return args.length === (args[0] === "-LiteralPath" ? 2 : 1) &&
150
- !!path && !/^(?:[a-z][\w-]*:)(?![\/])/i.test(path) && !/[*?]/.test(path);
151
- }
152
- if (/^Select-Object$/i.test(values[0])) {
153
- const args = values.slice(1);
154
- const metadata = /^(?:Name|FullName|Length|LastWriteTime|LastWriteTimeUtc|CreationTime|Attributes|IsReadOnly|LinkType|Target)(?:,(?:Name|FullName|Length|LastWriteTime|LastWriteTimeUtc|CreationTime|Attributes|IsReadOnly|LinkType|Target))*$/i;
155
- return (args.length === 2 && args[0] === "-First" && /^\d+$/.test(args[1])) ||
156
- (args.length === 2 && args[0] === "-ExpandProperty" && args[1] === "Target") ||
157
- (args.length === 2 && args[0] === "-Property" && metadata.test(args[1])) ||
158
- (args.length === 1 && metadata.test(args[0]));
159
- }
160
- if (/^(?:Get-Content|Measure-Object)$/i.test(values[0])) return true;
161
- if (!/^(?:rg|rg\.exe)$/i.test(values[0])) return false;
162
- return !values.slice(1).some(value => /^--(?:pre|hostname-bin)(?:=|$)/i.test(value));
163
- });
164
- }
165
-
102
+ export const isLiteralReadSequence = createLiteralReadSequence({ shellSyntax, tokenizeLiteralCommand });
166
103
  function isSedMutation(tokens) {
167
104
  const executable = ((tokens[0] ?? "").split(/[\\/]/).pop() ?? "").replace(/\.(?:exe|cmd|bat)$/i, "");
168
105
  return /^sed$/i.test(executable) && tokens.slice(1).some((token) =>
@@ -1 +1 @@
1
- {"version":3,"file":"codex-pre-tool-support-template.js","sourceRoot":"","sources":["../../src/services/codex-pre-tool-support-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6YpD,CAAC"}
1
+ {"version":3,"file":"codex-pre-tool-support-template.js","sourceRoot":"","sources":["../../src/services/codex-pre-tool-support-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8UpD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/cli",
3
- "version": "5.2.0",
3
+ "version": "5.4.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",
@@ -6,6 +6,12 @@ English | [Português](README.md)
6
6
 
7
7
  ## Quick overview
8
8
 
9
+ The [v5.4 guide](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v54-fechamento-cache-hooks.md) describes restricted
10
+ administrative closure after publication, the distinction between text and commands
11
+ in hooks, GitHub queries targeting the current repository, and objective acceptance
12
+ criteria. Partial evidence and historical outcomes remain visible; tests are rerun
13
+ when a change or finding invalidates the corresponding proof.
14
+
9
15
  The [rework prevention guide](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v51-eficiencia-e-publicacao.md)
10
16
  documents complete checks before finalization, bounded Run reads, conservative
11
17
  test reuse, content-based Dashboard builds and separate npm confirmation.
@@ -22,6 +28,19 @@ records bounded Git discovery in the Windows launcher, observation recovery
22
28
  after maintenance, thread-scoped Run queries, and validation cache measurements.
23
29
  Evidence distinguishes local tests, independent review, and package publication.
24
30
 
31
+ The [v5.3 governance and recovery contract](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v53-governanca-e-retomada.md)
32
+ defines recovery for published Task-first deliveries, Run continuity,
33
+ authenticated remote resumption, and criteria for measuring actual test savings.
34
+ Legacy failure reconciliation uses complete signed reruns, preserves history,
35
+ and prevents resolved failures from imposing indefinite retests. It does not
36
+ waive impact checks or turn an unverified installation into a cache HIT.
37
+ Literal audit queries using `Select-String`, numeric `Select-Object` slices,
38
+ and `gh run view`/`gh release view` are reads; interpolation, remote writes,
39
+ redirection, and secret access retain their controls.
40
+ On Windows, rooted paths used by the principal in `zaip-aios-full-access` undergo
41
+ canonical validation; literal search patterns are not blocked merely because
42
+ they contain a backslash. Traversal and protected destinations remain denied.
43
+
25
44
  > **Source, candidate, and publication:** this README describes the checkout's
26
45
  > contracts and features. The [evolution matrix](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v50-documentacao-editorial.md)
27
46
  > identifies implementation and evidence. Local qualification, consumer hook
@@ -6,6 +6,12 @@
6
6
 
7
7
  ## Visão rápida
8
8
 
9
+ O [guia da v5.4](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v54-fechamento-cache-hooks.md) descreve o fechamento
10
+ administrativo restrito após publicação, a distinção entre texto e comandos nos
11
+ hooks, consultas GitHub ao repositório atual e os critérios objetivos de aceite.
12
+ Evidências parciais e estados históricos permanecem visíveis; testes são repetidos
13
+ quando uma mudança ou finding invalida a prova correspondente.
14
+
9
15
  O [guia de prevenção de retrabalho](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v51-eficiencia-e-publicacao.md)
10
16
  documenta o pré-check completo antes da finalização, as leituras limitadas de Runs,
11
17
  o reuso conservador de testes, o build do Dashboard por conteúdo e a confirmação
@@ -23,6 +29,19 @@ registra a descoberta Git limitada no launcher Windows, a retomada da observaç
23
29
  após manutenção, a consulta de Runs por chat e a medição do cache de validação.
24
30
  As evidências distinguem testes locais, revisão e publicação do pacote.
25
31
 
32
+ O [contrato de governança e retomada da v5.3](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v53-governanca-e-retomada.md)
33
+ define a recuperação de entregas Task-first publicadas, a continuidade de Runs,
34
+ a retomada remota autenticada e os critérios para medir economia real de testes.
35
+ A reconciliação de falhas antigas usa reexecuções completas e assinadas, preserva
36
+ o histórico e evita que uma falha já resolvida imponha retestes indefinidamente.
37
+ Isso não dispensa os testes por impacto nem transforma uma instalação não verificada em HIT.
38
+ Consultas literais de auditoria com `Select-String`, recortes numéricos de
39
+ `Select-Object` e `gh run view`/`gh release view` são leituras; interpolação,
40
+ escrita remota, redirecionamento e acesso a segredos conservam seus controles.
41
+ No Windows, caminhos rooted do principal em `zaip-aios-full-access` passam pela
42
+ validação canônica; padrões literais de busca não causam bloqueio apenas por
43
+ conter uma barra invertida. Travessia e destinos protegidos continuam recusados.
44
+
26
45
  > **Fonte, candidato e publicação:** este README descreve os contratos e recursos
27
46
  > do checkout. A [matriz de evolução](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v50-documentacao-editorial.md)
28
47
  > identifica a implementação e suas provas. Qualificação local, ativação dos
@@ -1,5 +1,5 @@
1
1
  {
2
- "_zaip_managed": "zaip-managed generated-do-not-edit source=agent-discovery version=5.2.0 sha256=3def7a2b43c1a751f8e68754ef94cb107a80b5d26e11f065af2b4cc145fc8897",
2
+ "_zaip_managed": "zaip-managed generated-do-not-edit source=agent-discovery version=5.4.0 sha256=3def7a2b43c1a751f8e68754ef94cb107a80b5d26e11f065af2b4cc145fc8897",
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": "5.2.0",
3
+ "version": "5.4.0",
4
4
  "files": [
5
5
  {
6
6
  "path": "DATA-DICTIONARY.md",
@@ -15,28 +15,28 @@
15
15
  "sha256": "d0366ee0d847fe681de0971a14c80ee3a6af1430c0e9c5eb4f84f14a4b734b82"
16
16
  },
17
17
  {
18
- "path": "apps/frontend/dist/assets/DashboardHelpDialog-CDUKVlrH.js",
19
- "sha256": "bbf13f0ff0788e92a3497eebfbf55ba50d4d5049a232ce8a1bf76eddf5ce2f27"
18
+ "path": "apps/frontend/dist/assets/DashboardHelpDialog-Bw42VT15.js",
19
+ "sha256": "a783e3da41818c3b756f52ca13b5055cff73c128476e8774bb388cbf450acb3b"
20
20
  },
21
21
  {
22
22
  "path": "apps/frontend/dist/assets/DashboardHelpDialog-DRI_XwUf.css",
23
23
  "sha256": "95dbb5c26ad73831f36f2a51d5e08ef5eee7ca85190764a3e63bf1e700fbadf8"
24
24
  },
25
25
  {
26
- "path": "apps/frontend/dist/assets/PricingSettingsDialog-Czs55K79.js",
27
- "sha256": "a7b033808de2f224ef57a25f54cd010248409aee921739d8d9aaf2c0350a3866"
26
+ "path": "apps/frontend/dist/assets/PricingSettingsDialog-C3Y-jqQe.js",
27
+ "sha256": "378ef7877d5a017d95fae04687ce72a3795e943992d959552bf475c0101bd54d"
28
28
  },
29
29
  {
30
- "path": "apps/frontend/dist/assets/ProjectSettingsPage-CQMhvzvJ.css",
31
- "sha256": "10e875c4e3ab6c252983822e25a85db3d707d903c0fcf39812909fdd1d013f48"
30
+ "path": "apps/frontend/dist/assets/ProjectSettingsPage-Bx54lj7x.js",
31
+ "sha256": "a5902a5abf2437bbf7d1883419fde1bd62070e53d83bc9e04c3e0cb9d5b9eb6d"
32
32
  },
33
33
  {
34
- "path": "apps/frontend/dist/assets/ProjectSettingsPage-DhpaKwjC.js",
35
- "sha256": "1a5c8c57b23ab8348c5538644dbb3b7067e8c17db6207a3b8ab473d16abe458e"
34
+ "path": "apps/frontend/dist/assets/ProjectSettingsPage-CQMhvzvJ.css",
35
+ "sha256": "10e875c4e3ab6c252983822e25a85db3d707d903c0fcf39812909fdd1d013f48"
36
36
  },
37
37
  {
38
- "path": "apps/frontend/dist/assets/TraceabilityWorkspace-DPxfH469.js",
39
- "sha256": "869219fb3134c6bedc64160bb34dd9ae3e08b10d5026b3e6744d423dd0967d44"
38
+ "path": "apps/frontend/dist/assets/TraceabilityWorkspace-BNxFpGCt.js",
39
+ "sha256": "51899fe52c732793df9cb29379931176c509018b48668f55dc642e3613da2a2d"
40
40
  },
41
41
  {
42
42
  "path": "apps/frontend/dist/assets/TraceabilityWorkspace-DvvavDLY.css",
@@ -51,16 +51,16 @@
51
51
  "sha256": "90be9550e3b6719ffc7a029ac35a93a4f14e95263b3996ad6c06dbfc0490f307"
52
52
  },
53
53
  {
54
- "path": "apps/frontend/dist/assets/dashboard-localization-BE_Zqtym.js",
55
- "sha256": "ca81cef8daca1266f83cc5eaeb114418031b51b531c7ecc9725d29c508f713f1"
54
+ "path": "apps/frontend/dist/assets/dashboard-localization-BQDxpGq0.js",
55
+ "sha256": "0bba0031539780611dcb2d6013975d28afffe14d36adb48d899976f72764c886"
56
56
  },
57
57
  {
58
58
  "path": "apps/frontend/dist/assets/icons-vendor-CjGGux6h.js",
59
59
  "sha256": "0f615bc6eaeb21d12fc0457867d6acbfe9434ebae0ebecea9444262e46b972e9"
60
60
  },
61
61
  {
62
- "path": "apps/frontend/dist/assets/index-D5HmMZ27.js",
63
- "sha256": "116813c811425cbddd8daeaf10f685529bd39f1addf13ad0817e200eb92e4da4"
62
+ "path": "apps/frontend/dist/assets/index-CsSv72iu.js",
63
+ "sha256": "b77d3ec46eb6ef76265b8435b60237f71615dba33eb977e32d1c20a8fa1a92f5"
64
64
  },
65
65
  {
66
66
  "path": "apps/frontend/dist/assets/index-DZhppOIk.css",
@@ -92,7 +92,7 @@
92
92
  },
93
93
  {
94
94
  "path": "apps/frontend/dist/index.html",
95
- "sha256": "afa794b12e75a74533290aaacad53a7cedf0195915b59adf97c66614ab200df2"
95
+ "sha256": "131bba5c5dd50297a046ef0ae1794540fe8db8b8e8526e50f9d828d4a345b13f"
96
96
  },
97
97
  {
98
98
  "path": "apps/frontend/dist/logo_novo_azul.png",
@@ -104,7 +104,7 @@
104
104
  },
105
105
  {
106
106
  "path": "apps/frontend/package.json",
107
- "sha256": "4d7ac554045ecc7a746ca6ab08ba7e648937d287e63b7de3ce168c0f5ed5dd41"
107
+ "sha256": "8e6978a93314bf237edfa58a5e74a29e3f9a426c31078d154b293e49c8dbb62d"
108
108
  },
109
109
  {
110
110
  "path": "apps/frontend/playwright.dom.config.ts",
@@ -600,7 +600,7 @@
600
600
  },
601
601
  {
602
602
  "path": "modules/cost-monitor/package.json",
603
- "sha256": "cb6e9ea88e67bc2d995ab1f8e3e5b094cef307789767565ac8aaafd5863d3413"
603
+ "sha256": "ee000ea96ddda721096ac3814301a947786aaa82121af3e1bdecde099a78e719"
604
604
  },
605
605
  {
606
606
  "path": "modules/cost-monitor/src/agent-groups.test.ts",
@@ -1012,7 +1012,7 @@
1012
1012
  },
1013
1013
  {
1014
1014
  "path": "modules/operations/package.json",
1015
- "sha256": "1cdade9fcf22258e1d3a381cc44b296b85c0fa470ef735fdf013bf6b912f7783"
1015
+ "sha256": "825b2668a3836982e80d19c0b7acead8bd89f5d50a790687745a9a46a1ea4660"
1016
1016
  },
1017
1017
  {
1018
1018
  "path": "modules/operations/src/contracts.ts",
@@ -1752,7 +1752,7 @@
1752
1752
  },
1753
1753
  {
1754
1754
  "path": "modules/traceability/package.json",
1755
- "sha256": "a567d3b79ed93f40f32b8e869abae93b839588c3d376f985a41f8e070a17a032"
1755
+ "sha256": "77d2707dc0116c0bbca917a1886f6fc07fc654410a2043d8ffacb006aa04af21"
1756
1756
  },
1757
1757
  {
1758
1758
  "path": "modules/traceability/src/contracts.ts",
@@ -1824,7 +1824,7 @@
1824
1824
  },
1825
1825
  {
1826
1826
  "path": "packages/branding/package.json",
1827
- "sha256": "c87a2648416f60079b50642a5eda2522b6166b2215e2bbfe0d3f204e2aa34828"
1827
+ "sha256": "451eba3b4f2ebc0d2c3094bf25bbf7098373e820b7d2eec9e7e6df857b182264"
1828
1828
  },
1829
1829
  {
1830
1830
  "path": "packages/branding/src/index.ts",
@@ -1836,7 +1836,7 @@
1836
1836
  },
1837
1837
  {
1838
1838
  "path": "packages/contracts/package.json",
1839
- "sha256": "e92b8965d8158388abb46266bab5dd8b9f3f9cffe1ea4fa11f0730b38fdf1c72"
1839
+ "sha256": "5beb981d7c1f4d448ef584fa93237dce7b1d85ff16d3b01dc6ce51d3f9890552"
1840
1840
  },
1841
1841
  {
1842
1842
  "path": "packages/contracts/src/export.ts",
@@ -1856,7 +1856,7 @@
1856
1856
  },
1857
1857
  {
1858
1858
  "path": "packages/data-export/package.json",
1859
- "sha256": "5f964cfadd84f8b2acd652ef30fe9994eedb95c3d9882eb8f0fab4748c9ae161"
1859
+ "sha256": "e61913ebcd0508e883b5e3576732a6781ed97aebed2151abd44223eea905a03d"
1860
1860
  },
1861
1861
  {
1862
1862
  "path": "packages/data-export/src/index.test.ts",
@@ -1904,15 +1904,15 @@
1904
1904
  },
1905
1905
  {
1906
1906
  "path": "packages/local-runtime/dist/server.cjs",
1907
- "sha256": "b120e6413f119dbb495680c4656d794951049d6b4800f6df4d6be882778dafbe"
1907
+ "sha256": "cda7a18aa202d782aa6168064bb3b05c765df8991c07f960669b101efd1c64c4"
1908
1908
  },
1909
1909
  {
1910
1910
  "path": "packages/local-runtime/dist/sqlite-read-model.cjs",
1911
- "sha256": "3a39825058ef54ddf71b1d4c9234b25a97ae8135b58ca1467e20d9dbe6d4dab3"
1911
+ "sha256": "76d6bbfa4712f1bfb22faf0bd83886db06fbcdc3efae913e7988c832b77a86a0"
1912
1912
  },
1913
1913
  {
1914
1914
  "path": "packages/local-runtime/package.json",
1915
- "sha256": "8da451715ec125a910f6982fde8f70ff001c0e91deeb97022dddcd373b5eb2c2"
1915
+ "sha256": "ece14cb50871d8b14559061627ba748e4ece7e5b035551f147a57432b67efce4"
1916
1916
  },
1917
1917
  {
1918
1918
  "path": "packages/local-runtime/scripts/build-frontend.mjs",
@@ -1968,7 +1968,7 @@
1968
1968
  },
1969
1969
  {
1970
1970
  "path": "packages/local-runtime/server.mjs",
1971
- "sha256": "034097a697015e5c364f6f9714484e40797b5c407e36049c15b5f8950a0912c7"
1971
+ "sha256": "40f1234a02292f13e6f552e70b7c8d0c0a9a1e471b1721a3d7f733f6a26dd587"
1972
1972
  },
1973
1973
  {
1974
1974
  "path": "packages/local-runtime/src/active-capture-failure.test.ts",
@@ -2848,7 +2848,7 @@
2848
2848
  },
2849
2849
  {
2850
2850
  "path": "packages/ui/package.json",
2851
- "sha256": "02b9926927d97b3c09b1676c42f83a938082dae5f46f2d5b02e6ecddce7e4935"
2851
+ "sha256": "01f16550fe270897d2fdb33c0cc00e2e6bfd1d43b8a3003c11120f7e0aa93b68"
2852
2852
  },
2853
2853
  {
2854
2854
  "path": "packages/ui/src/DashboardHeader.test.mjs",
@@ -2956,7 +2956,7 @@
2956
2956
  },
2957
2957
  {
2958
2958
  "path": "tests/e2e/package.json",
2959
- "sha256": "c0239143bafab4cafcae58d1224748fecd0ab4d6270b753bc6ab718b0b2b20d5"
2959
+ "sha256": "06416ed38e888fdbc6e4870600bbc4725bcb917d17014c647ef808dd80daf849"
2960
2960
  },
2961
2961
  {
2962
2962
  "path": "tests/e2e/playwright.config.ts",