@zaip-ai/cli 5.2.0 → 5.3.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 (73) 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 +5 -2
  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 +13 -0
  18. package/templates/.agents/README.md +13 -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-URSe1IiF.js} +14 -1
  22. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-Czs55K79.js → PricingSettingsDialog-8znf56to.js} +1 -1
  23. package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-DhpaKwjC.js → ProjectSettingsPage-O68yx0KF.js} +1 -1
  24. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-DPxfH469.js → TraceabilityWorkspace-DlYlyBhz.js} +1 -1
  25. package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-BE_Zqtym.js → dashboard-localization-DhvlkPf2.js} +13 -0
  26. package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-D5HmMZ27.js → index-CWcci-bM.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 +126 -126
  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 +127 -127
  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 +117 -87
  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 +42 -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/zaip-aios/VERSION +1 -1
  73. package/templates/template-manifest.json +74 -66
@@ -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.3.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.3.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,QAknB/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; }
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6W3C,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqQ5B,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.3.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",
@@ -22,6 +22,19 @@ records bounded Git discovery in the Windows launcher, observation recovery
22
22
  after maintenance, thread-scoped Run queries, and validation cache measurements.
23
23
  Evidence distinguishes local tests, independent review, and package publication.
24
24
 
25
+ The [v5.3 governance and recovery contract](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v53-governanca-e-retomada.md)
26
+ defines recovery for published Task-first deliveries, Run continuity,
27
+ authenticated remote resumption, and criteria for measuring actual test savings.
28
+ Legacy failure reconciliation uses complete signed reruns, preserves history,
29
+ and prevents resolved failures from imposing indefinite retests. It does not
30
+ waive impact checks or turn an unverified installation into a cache HIT.
31
+ Literal audit queries using `Select-String`, numeric `Select-Object` slices,
32
+ and `gh run view`/`gh release view` are reads; interpolation, remote writes,
33
+ redirection, and secret access retain their controls.
34
+ On Windows, rooted paths used by the principal in `zaip-aios-full-access` undergo
35
+ canonical validation; literal search patterns are not blocked merely because
36
+ they contain a backslash. Traversal and protected destinations remain denied.
37
+
25
38
  > **Source, candidate, and publication:** this README describes the checkout's
26
39
  > contracts and features. The [evolution matrix](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v50-documentacao-editorial.md)
27
40
  > identifies implementation and evidence. Local qualification, consumer hook
@@ -23,6 +23,19 @@ registra a descoberta Git limitada no launcher Windows, a retomada da observaç
23
23
  após manutenção, a consulta de Runs por chat e a medição do cache de validação.
24
24
  As evidências distinguem testes locais, revisão e publicação do pacote.
25
25
 
26
+ 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)
27
+ define a recuperação de entregas Task-first publicadas, a continuidade de Runs,
28
+ a retomada remota autenticada e os critérios para medir economia real de testes.
29
+ A reconciliação de falhas antigas usa reexecuções completas e assinadas, preserva
30
+ o histórico e evita que uma falha já resolvida imponha retestes indefinidamente.
31
+ Isso não dispensa os testes por impacto nem transforma uma instalação não verificada em HIT.
32
+ Consultas literais de auditoria com `Select-String`, recortes numéricos de
33
+ `Select-Object` e `gh run view`/`gh release view` são leituras; interpolação,
34
+ escrita remota, redirecionamento e acesso a segredos conservam seus controles.
35
+ No Windows, caminhos rooted do principal em `zaip-aios-full-access` passam pela
36
+ validação canônica; padrões literais de busca não causam bloqueio apenas por
37
+ conter uma barra invertida. Travessia e destinos protegidos continuam recusados.
38
+
26
39
  > **Fonte, candidato e publicação:** este README descreve os contratos e recursos
27
40
  > do checkout. A [matriz de evolução](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v50-documentacao-editorial.md)
28
41
  > 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.3.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.3.0",
4
4
  "files": [
5
5
  {
6
6
  "path": "DATA-DICTIONARY.md",
@@ -14,29 +14,29 @@
14
14
  "path": "apps/frontend/dist/assets/CostCalculationGuidePage-uR-asJv_.js",
15
15
  "sha256": "d0366ee0d847fe681de0971a14c80ee3a6af1430c0e9c5eb4f84f14a4b734b82"
16
16
  },
17
- {
18
- "path": "apps/frontend/dist/assets/DashboardHelpDialog-CDUKVlrH.js",
19
- "sha256": "bbf13f0ff0788e92a3497eebfbf55ba50d4d5049a232ce8a1bf76eddf5ce2f27"
20
- },
21
17
  {
22
18
  "path": "apps/frontend/dist/assets/DashboardHelpDialog-DRI_XwUf.css",
23
19
  "sha256": "95dbb5c26ad73831f36f2a51d5e08ef5eee7ca85190764a3e63bf1e700fbadf8"
24
20
  },
25
21
  {
26
- "path": "apps/frontend/dist/assets/PricingSettingsDialog-Czs55K79.js",
27
- "sha256": "a7b033808de2f224ef57a25f54cd010248409aee921739d8d9aaf2c0350a3866"
22
+ "path": "apps/frontend/dist/assets/DashboardHelpDialog-URSe1IiF.js",
23
+ "sha256": "839426eba580dadf4aa997cf8640a8dcbae1d5a15c6299b2baa8c9cd0e1ffb55"
24
+ },
25
+ {
26
+ "path": "apps/frontend/dist/assets/PricingSettingsDialog-8znf56to.js",
27
+ "sha256": "3309d87f8a4aa0034170c055d852701f803f03a530fc93b74e87f082652cae34"
28
28
  },
29
29
  {
30
30
  "path": "apps/frontend/dist/assets/ProjectSettingsPage-CQMhvzvJ.css",
31
31
  "sha256": "10e875c4e3ab6c252983822e25a85db3d707d903c0fcf39812909fdd1d013f48"
32
32
  },
33
33
  {
34
- "path": "apps/frontend/dist/assets/ProjectSettingsPage-DhpaKwjC.js",
35
- "sha256": "1a5c8c57b23ab8348c5538644dbb3b7067e8c17db6207a3b8ab473d16abe458e"
34
+ "path": "apps/frontend/dist/assets/ProjectSettingsPage-O68yx0KF.js",
35
+ "sha256": "4d5a48c85607228dafcb6e59686b381e5074a70dcba3d0e7dcea902b7418dcea"
36
36
  },
37
37
  {
38
- "path": "apps/frontend/dist/assets/TraceabilityWorkspace-DPxfH469.js",
39
- "sha256": "869219fb3134c6bedc64160bb34dd9ae3e08b10d5026b3e6744d423dd0967d44"
38
+ "path": "apps/frontend/dist/assets/TraceabilityWorkspace-DlYlyBhz.js",
39
+ "sha256": "cca017f263ac8f67ab7bc6cc1517203ba0d4cdda87c0f30e032465967fe8c90a"
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-DhvlkPf2.js",
55
+ "sha256": "928fab618d343a17e2a48dc25787d90999428ed9e20a928b7ca445900c771929"
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-CWcci-bM.js",
63
+ "sha256": "dae6c3d18ea8c53c0501ff562d1ce56cd90ef377ace20e06546c1ba5db7e50d1"
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": "6b554d2f868e2b7ef4c4ca24137c57df3f5edb2207a9655cc0e9c5f574faf4a5"
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": "09c4ae40f98fc648c919cf4ec85767ef0263c2f5d821fe3359f1795d1f2ef2fa"
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": "a18b9f7706294b6085a643ccfb81dc8d818203126afa865770157eeff5569545"
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": "cb0be833f380084e2efc8274ea2c0ba0bd96c5742bfce4aa1dcddb9c0077b2d9"
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": "39f3060fdedb8bacd0df9c43d47882978af6b32eab0f060281b1a6bb194c9060"
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": "b46a065fab82a98fd0493e33e3a074172c8a1347647f146410abed7ee47b4011"
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": "f2ec95706dfff6ee17fb347208ac0079bb8f18f0251274fb5a4c630856b85e7b"
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": "76485695a42a02fd16ded2f74650da2206c48fa8b0f84736c682eb6ea4e9d375"
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": "ac2b1c9b95fa21bd652f065f435ed48caff813e1104d88619b763488f0181d0e"
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": "e2f62b92c1558b019db6ebe32e3b2e9af4602580a9ff127c5cc1c1e379e4ca6d"
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": "24ebd186494f1fb672b904b31768dfa1f6f199e868fd102d9dfb0cd197d0ad59"
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": "0c4a43ada2d7c8b8df32830d5b5df9931e0c5fa7eea542023228f131a7927a57"
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": "47be21a7c7b045005cc67ac032cb66b879536c2a7ed957ce379e80e342a5e67e"
2960
2960
  },
2961
2961
  {
2962
2962
  "path": "tests/e2e/playwright.config.ts",
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-B0Jwz_rk.js";import{t as r}from"./dashboard-localization-BE_Zqtym.js";var i=`# Primeiros passos
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-B0Jwz_rk.js";import{t as r}from"./dashboard-localization-DhvlkPf2.js";var i=`# Primeiros passos
2
2
 
3
3
  1. Leia \`.agents/config/project.yaml\` e \`.agents/rules/core.md\`.
4
4
  2. Consulte \`.agents/records/lifecycle/\` para descobrir o estado atual pelos manifests canônicos.
@@ -2360,6 +2360,19 @@ registra a descoberta Git limitada no launcher Windows, a retomada da observaç
2360
2360
  após manutenção, a consulta de Runs por chat e a medição do cache de validação.
2361
2361
  As evidências distinguem testes locais, revisão e publicação do pacote.
2362
2362
 
2363
+ O [contrato de governança e retomada da v5.3](docs/quality/v53-governanca-e-retomada.md)
2364
+ define a recuperação de entregas Task-first publicadas, a continuidade de Runs,
2365
+ a retomada remota autenticada e os critérios para medir economia real de testes.
2366
+ A reconciliação de falhas antigas usa reexecuções completas e assinadas, preserva
2367
+ o histórico e evita que uma falha já resolvida imponha retestes indefinidamente.
2368
+ Isso não dispensa os testes por impacto nem transforma uma instalação não verificada em HIT.
2369
+ Consultas literais de auditoria com \`Select-String\`, recortes numéricos de
2370
+ \`Select-Object\` e \`gh run view\`/\`gh release view\` são leituras; interpolação,
2371
+ escrita remota, redirecionamento e acesso a segredos conservam seus controles.
2372
+ No Windows, caminhos rooted do principal em \`zaip-aios-full-access\` passam pela
2373
+ validação canônica; padrões literais de busca não causam bloqueio apenas por
2374
+ conter uma barra invertida. Travessia e destinos protegidos continuam recusados.
2375
+
2363
2376
  > **Fonte, candidato e publicação:** este README descreve os contratos e recursos
2364
2377
  > do checkout. A [matriz de evolução](docs/quality/v50-documentacao-editorial.md)
2365
2378
  > identifica a implementação e suas provas. Qualificação local, ativação dos
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-B0Jwz_rk.js";import{n as r}from"./dashboard-localization-BE_Zqtym.js";var i=e(t(),1),a=n();function o({catalog:e,fxRate:t,locale:n,onClose:o,onSave:c,onSaveFxRate:l}){let u=r[n],[d,f]=(0,i.useState)(e),[p,m]=(0,i.useState)(t?.rate??0),[h,g]=(0,i.useState)(!1),_=(e,t)=>f(n=>({...n,models:n.models.map((n,r)=>r===e?{...n,...t}:n)})),v=e=>Math.max(0,Number(e)||0);return(0,a.jsx)(`main`,{className:`pricing-backdrop`,children:(0,a.jsxs)(`section`,{"aria-labelledby":`pricing-page-title`,className:`pricing-dialog`,children:[(0,a.jsxs)(`header`,{children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`small`,{children:u.eyebrow}),(0,a.jsx)(`h1`,{id:`pricing-page-title`,children:u.title}),(0,a.jsx)(`p`,{children:u.description})]}),(0,a.jsxs)(`button`,{className:`pricing-back-button`,onClick:o,type:`button`,children:[(0,a.jsx)(`span`,{"aria-hidden":`true`,children:`←`}),` `,u.back]})]}),(0,a.jsxs)(`div`,{className:`pricing-fx-settings`,children:[(0,a.jsxs)(`div`,{className:`pricing-fx-copy`,children:[(0,a.jsx)(`strong`,{children:u.fxTitle}),(0,a.jsx)(`p`,{children:u.fxDescription})]}),(0,a.jsxs)(`label`,{children:[(0,a.jsx)(`span`,{children:u.fxLabel}),(0,a.jsxs)(`div`,{className:`pricing-fx-input`,children:[(0,a.jsx)(`span`,{children:`R$`}),(0,a.jsx)(`input`,{"aria-label":u.fxAriaLabel,min:`0.0001`,onChange:e=>m(Math.max(1e-4,Number(e.target.value)||0)),step:`0.0001`,type:`number`,value:p})]})]})]}),(0,a.jsxs)(`div`,{className:`pricing-table-heading`,children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`strong`,{children:u.catalog}),(0,a.jsx)(`p`,{children:u.pricesPerMillion})]}),(0,a.jsxs)(`span`,{children:[d.models.length,` `,u.models]})]}),(0,a.jsx)(`div`,{className:`pricing-table-wrap`,children:(0,a.jsxs)(`table`,{children:[(0,a.jsx)(`thead`,{children:(0,a.jsxs)(`tr`,{children:[(0,a.jsx)(`th`,{children:u.model}),(0,a.jsx)(`th`,{children:u.provider}),(0,a.jsx)(`th`,{children:u.input}),(0,a.jsx)(`th`,{children:u.cache}),(0,a.jsx)(`th`,{children:u.output}),(0,a.jsx)(`th`,{children:u.reasoning}),(0,a.jsx)(`th`,{children:u.priorityInput}),(0,a.jsx)(`th`,{children:u.priorityCache}),(0,a.jsx)(`th`,{children:u.priorityOutput}),(0,a.jsx)(`th`,{children:u.priorityReasoning}),(0,a.jsx)(`th`,{children:u.contextLimit}),(0,a.jsx)(`th`,{children:u.inputMultiplier}),(0,a.jsx)(`th`,{children:u.outputMultiplier}),(0,a.jsx)(`th`,{})]})}),(0,a.jsx)(`tbody`,{children:d.models.map((e,t)=>(0,a.jsxs)(`tr`,{children:[(0,a.jsxs)(`td`,{children:[(0,a.jsx)(`input`,{"aria-label":u.model,onChange:e=>_(t,{id:e.target.value}),value:e.id}),(0,a.jsx)(`small`,{children:e.aliases.join(`, `)||u.noAliases})]}),(0,a.jsx)(`td`,{children:(0,a.jsxs)(`select`,{onChange:e=>_(t,{provider:e.target.value}),value:e.provider,children:[(0,a.jsx)(`option`,{value:`openai`,children:`OpenAI`}),(0,a.jsx)(`option`,{value:`anthropic`,children:`Anthropic`})]})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{input_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.input_per_million_usd})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{cached_input_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.cached_input_per_million_usd??0})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{output_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.output_per_million_usd})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{reasoning_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.reasoning_per_million_usd??0})}),[`priority_input_per_million_usd`,`priority_cached_input_per_million_usd`,`priority_output_per_million_usd`,`priority_reasoning_per_million_usd`].map(n=>(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{[n]:v(e.target.value)}),step:`0.001`,type:`number`,value:e[n]??0})},n)),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{long_context_threshold_tokens:v(e.target.value)||null}),step:`1`,type:`number`,value:e.long_context_threshold_tokens??0})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0.001`,onChange:e=>_(t,{long_context_input_multiplier:Math.max(.001,Number(e.target.value)||1)}),step:`0.1`,type:`number`,value:e.long_context_input_multiplier})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0.001`,onChange:e=>_(t,{long_context_output_multiplier:Math.max(.001,Number(e.target.value)||1)}),step:`0.1`,type:`number`,value:e.long_context_output_multiplier})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`button`,{"aria-label":u.removeModel,onClick:()=>f(e=>({...e,models:e.models.filter((e,n)=>n!==t)})),type:`button`,children:`×`})})]},e.id))})]})}),(0,a.jsxs)(`footer`,{children:[(0,a.jsxs)(`button`,{onClick:()=>f(e=>({...e,models:[...e.models,s(n)]})),type:`button`,children:[`+ `,u.addModel]}),(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`button`,{onClick:o,type:`button`,children:u.cancel}),(0,a.jsx)(`button`,{disabled:h,onClick:async()=>{g(!0);try{await c(d),await l(p),o()}finally{g(!1)}},type:`button`,children:h?u.saving:u.save})]})]})]})})}function s(e=`pt-BR`){let t=r[e];return{id:t.newModel,provider:`openai`,aliases:[],input_per_million_usd:0,cached_input_per_million_usd:0,output_per_million_usd:0,reasoning_per_million_usd:0,priority_input_per_million_usd:null,priority_cached_input_per_million_usd:null,priority_output_per_million_usd:null,priority_reasoning_per_million_usd:null,reasoning_billed_separately:!1,long_context_threshold_tokens:null,long_context_input_multiplier:1,long_context_output_multiplier:1,source_label:t.manualOverride,source_url:`https://developers.openai.com/api/docs/pricing`,notes:[t.editedNote]}}export{o as PricingSettingsPage};
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{E as t,w as n}from"./cost-monitor-B0Jwz_rk.js";import{n as r}from"./dashboard-localization-DhvlkPf2.js";var i=e(t(),1),a=n();function o({catalog:e,fxRate:t,locale:n,onClose:o,onSave:c,onSaveFxRate:l}){let u=r[n],[d,f]=(0,i.useState)(e),[p,m]=(0,i.useState)(t?.rate??0),[h,g]=(0,i.useState)(!1),_=(e,t)=>f(n=>({...n,models:n.models.map((n,r)=>r===e?{...n,...t}:n)})),v=e=>Math.max(0,Number(e)||0);return(0,a.jsx)(`main`,{className:`pricing-backdrop`,children:(0,a.jsxs)(`section`,{"aria-labelledby":`pricing-page-title`,className:`pricing-dialog`,children:[(0,a.jsxs)(`header`,{children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`small`,{children:u.eyebrow}),(0,a.jsx)(`h1`,{id:`pricing-page-title`,children:u.title}),(0,a.jsx)(`p`,{children:u.description})]}),(0,a.jsxs)(`button`,{className:`pricing-back-button`,onClick:o,type:`button`,children:[(0,a.jsx)(`span`,{"aria-hidden":`true`,children:`←`}),` `,u.back]})]}),(0,a.jsxs)(`div`,{className:`pricing-fx-settings`,children:[(0,a.jsxs)(`div`,{className:`pricing-fx-copy`,children:[(0,a.jsx)(`strong`,{children:u.fxTitle}),(0,a.jsx)(`p`,{children:u.fxDescription})]}),(0,a.jsxs)(`label`,{children:[(0,a.jsx)(`span`,{children:u.fxLabel}),(0,a.jsxs)(`div`,{className:`pricing-fx-input`,children:[(0,a.jsx)(`span`,{children:`R$`}),(0,a.jsx)(`input`,{"aria-label":u.fxAriaLabel,min:`0.0001`,onChange:e=>m(Math.max(1e-4,Number(e.target.value)||0)),step:`0.0001`,type:`number`,value:p})]})]})]}),(0,a.jsxs)(`div`,{className:`pricing-table-heading`,children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`strong`,{children:u.catalog}),(0,a.jsx)(`p`,{children:u.pricesPerMillion})]}),(0,a.jsxs)(`span`,{children:[d.models.length,` `,u.models]})]}),(0,a.jsx)(`div`,{className:`pricing-table-wrap`,children:(0,a.jsxs)(`table`,{children:[(0,a.jsx)(`thead`,{children:(0,a.jsxs)(`tr`,{children:[(0,a.jsx)(`th`,{children:u.model}),(0,a.jsx)(`th`,{children:u.provider}),(0,a.jsx)(`th`,{children:u.input}),(0,a.jsx)(`th`,{children:u.cache}),(0,a.jsx)(`th`,{children:u.output}),(0,a.jsx)(`th`,{children:u.reasoning}),(0,a.jsx)(`th`,{children:u.priorityInput}),(0,a.jsx)(`th`,{children:u.priorityCache}),(0,a.jsx)(`th`,{children:u.priorityOutput}),(0,a.jsx)(`th`,{children:u.priorityReasoning}),(0,a.jsx)(`th`,{children:u.contextLimit}),(0,a.jsx)(`th`,{children:u.inputMultiplier}),(0,a.jsx)(`th`,{children:u.outputMultiplier}),(0,a.jsx)(`th`,{})]})}),(0,a.jsx)(`tbody`,{children:d.models.map((e,t)=>(0,a.jsxs)(`tr`,{children:[(0,a.jsxs)(`td`,{children:[(0,a.jsx)(`input`,{"aria-label":u.model,onChange:e=>_(t,{id:e.target.value}),value:e.id}),(0,a.jsx)(`small`,{children:e.aliases.join(`, `)||u.noAliases})]}),(0,a.jsx)(`td`,{children:(0,a.jsxs)(`select`,{onChange:e=>_(t,{provider:e.target.value}),value:e.provider,children:[(0,a.jsx)(`option`,{value:`openai`,children:`OpenAI`}),(0,a.jsx)(`option`,{value:`anthropic`,children:`Anthropic`})]})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{input_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.input_per_million_usd})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{cached_input_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.cached_input_per_million_usd??0})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{output_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.output_per_million_usd})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{reasoning_per_million_usd:v(e.target.value)}),step:`0.001`,type:`number`,value:e.reasoning_per_million_usd??0})}),[`priority_input_per_million_usd`,`priority_cached_input_per_million_usd`,`priority_output_per_million_usd`,`priority_reasoning_per_million_usd`].map(n=>(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{[n]:v(e.target.value)}),step:`0.001`,type:`number`,value:e[n]??0})},n)),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0`,onChange:e=>_(t,{long_context_threshold_tokens:v(e.target.value)||null}),step:`1`,type:`number`,value:e.long_context_threshold_tokens??0})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0.001`,onChange:e=>_(t,{long_context_input_multiplier:Math.max(.001,Number(e.target.value)||1)}),step:`0.1`,type:`number`,value:e.long_context_input_multiplier})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`input`,{min:`0.001`,onChange:e=>_(t,{long_context_output_multiplier:Math.max(.001,Number(e.target.value)||1)}),step:`0.1`,type:`number`,value:e.long_context_output_multiplier})}),(0,a.jsx)(`td`,{children:(0,a.jsx)(`button`,{"aria-label":u.removeModel,onClick:()=>f(e=>({...e,models:e.models.filter((e,n)=>n!==t)})),type:`button`,children:`×`})})]},e.id))})]})}),(0,a.jsxs)(`footer`,{children:[(0,a.jsxs)(`button`,{onClick:()=>f(e=>({...e,models:[...e.models,s(n)]})),type:`button`,children:[`+ `,u.addModel]}),(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`button`,{onClick:o,type:`button`,children:u.cancel}),(0,a.jsx)(`button`,{disabled:h,onClick:async()=>{g(!0);try{await c(d),await l(p),o()}finally{g(!1)}},type:`button`,children:h?u.saving:u.save})]})]})]})})}function s(e=`pt-BR`){let t=r[e];return{id:t.newModel,provider:`openai`,aliases:[],input_per_million_usd:0,cached_input_per_million_usd:0,output_per_million_usd:0,reasoning_per_million_usd:0,priority_input_per_million_usd:null,priority_cached_input_per_million_usd:null,priority_output_per_million_usd:null,priority_reasoning_per_million_usd:null,reasoning_billed_separately:!1,long_context_threshold_tokens:null,long_context_input_multiplier:1,long_context_output_multiplier:1,source_label:t.manualOverride,source_url:`https://developers.openai.com/api/docs/pricing`,notes:[t.editedNote]}}export{o as PricingSettingsPage};