@zaip-ai/cli 3.1.0 → 3.2.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 (75) hide show
  1. package/README.md +11 -5
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +16 -6
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/services/adapters.d.ts +1 -1
  6. package/dist/services/adapters.js +1 -1
  7. package/dist/services/github-setup-status.d.ts +12 -0
  8. package/dist/services/github-setup-status.d.ts.map +1 -0
  9. package/dist/services/github-setup-status.js +84 -0
  10. package/dist/services/github-setup-status.js.map +1 -0
  11. package/dist/services/github-setup-status.test.d.ts +2 -0
  12. package/dist/services/github-setup-status.test.d.ts.map +1 -0
  13. package/dist/services/github-setup-status.test.js +57 -0
  14. package/dist/services/github-setup-status.test.js.map +1 -0
  15. package/dist/services/logger.d.ts +10 -1
  16. package/dist/services/logger.d.ts.map +1 -1
  17. package/dist/services/logger.js +23 -6
  18. package/dist/services/logger.js.map +1 -1
  19. package/dist/services/logger.test.js +33 -5
  20. package/dist/services/logger.test.js.map +1 -1
  21. package/dist/types.d.ts +3 -0
  22. package/dist/types.d.ts.map +1 -1
  23. package/package.json +1 -1
  24. package/templates/.agents/README-ENG.md +1 -1
  25. package/templates/.agents/README.md +1 -1
  26. package/templates/.agents/config/agents/discovery.json +1 -1
  27. package/templates/.agents/dashboard/.zaip-managed.json +26 -26
  28. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-DIWDmvAS.js → DashboardHelpDialog-BzaUTZDx.js} +3 -3
  29. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-BBRBKaHa.js → PricingSettingsDialog-21cCJik-.js} +1 -1
  30. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-C9dDhj34.js → TraceabilityWorkspace-wqW52uCx.js} +1 -1
  31. package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-CoAVMZN6.js → dashboard-localization-BkAm8-h4.js} +1 -1
  32. package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-BVzw_Wux.js → index-DqZKJS8y.js} +2 -2
  33. package/templates/.agents/dashboard/apps/frontend/dist/index.html +1 -1
  34. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  35. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  36. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  37. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  38. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  39. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  40. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  41. package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
  42. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  43. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  44. package/templates/.agents/design/.zaip-managed.json +3 -3
  45. package/templates/.agents/design/apps/catalog/package.json +1 -1
  46. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  47. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  48. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  49. package/templates/.agents/requirements/comparative-audit.md +1 -1
  50. package/templates/.agents/requirements/context-engine.md +1 -1
  51. package/templates/.agents/requirements/cost-observability.md +1 -1
  52. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  53. package/templates/.agents/requirements/data-export.md +1 -1
  54. package/templates/.agents/requirements/design-system.md +1 -1
  55. package/templates/.agents/requirements/execution-engine.md +1 -1
  56. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  57. package/templates/.agents/requirements/model-orchestration.md +1 -1
  58. package/templates/.agents/requirements/public-distribution.md +9 -2
  59. package/templates/.agents/requirements/software-architecture.md +1 -1
  60. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  61. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  62. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  63. package/templates/.agents/runtime/VERSION +1 -1
  64. package/templates/.agents/runtime/bin/zaip.mjs +4 -4
  65. package/templates/.agents/runtime/checksums.sha256 +5 -5
  66. package/templates/.agents/runtime/manifest.json +1 -1
  67. package/templates/.agents/runtime/provenance.json +4 -4
  68. package/templates/.agents/runtime/sbom.cdx.json +1 -1
  69. package/templates/.agents/skills/zaip-skill-config/SKILL.md +12 -0
  70. package/templates/.agents/skills/zaip-skill-github-setup/SKILL.md +7 -1
  71. package/templates/.agents/skills/zaip-skill-setup/SKILL.md +12 -0
  72. package/templates/.agents/zaip-aios/README.md +1 -1
  73. package/templates/.agents/zaip-aios/VERSION +1 -1
  74. package/templates/.agents/zaip-aios/guides/20-instalacao-detalhada.md +22 -1
  75. package/templates/template-manifest.json +64 -64
package/README.md CHANGED
@@ -137,11 +137,17 @@ Each command saves `stack.overrides.installation_profile` in `.agents/config/pro
137
137
  add development or infrastructure tools later. An invalid profile is rejected before installation.
138
138
  `--dry-run` previews the selected profile without persisting it or downloading tools.
139
139
 
140
- Git is a system capability, not an npm dependency. On Windows, every profile resolves the latest
141
- official Git for Windows release, verifies its SHA-256 when published, and provisions it privately
142
- at `.local/git/cmd/git.exe` for ZAIP hooks. On macOS and Linux, `init` validates the system `git`
143
- command and reports an actionable prerequisite error when it is unavailable. The installer never
144
- changes the global Git installation or PATH.
140
+ Git and GitHub setup can be completed after installation on every platform. No profile requires
141
+ Git, a repository, author identity or an initial commit to finish `init`. Delivery still checks
142
+ its Git prerequisites before execution.
143
+
144
+ The successful installation summary includes observed file counts, SQLite and doctor results,
145
+ and a clickable npm link to the installed version. It ends by asking whether you want help
146
+ configuring GitHub, or configuring the project when local GitHub configuration is already found.
147
+ Local configuration does not prove authentication. In a chat, accepting opens the relevant skill,
148
+ which explains the options and asks for your choices before applying them. GitHub setup is followed
149
+ by the project setup offer. Completing project setup or deferring an offer ends installation
150
+ onboarding. The terminal CTA is text only and never waits for an answer.
145
151
 
146
152
  Terraform is a standalone executable. The full profile reuses a compatible installation or prepares
147
153
  the pinned official Terraform 1.16.1 release locally, verifying its SHA-256 checksum. Provider plugins
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAe,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;CACxC;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,UAAU,CAAC,CAyDrB"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAe,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;CACxC;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,UAAU,CAAC,CAgErB"}
@@ -1,11 +1,12 @@
1
1
  import { resolve } from "node:path";
2
2
  import { createInterface } from "node:readline/promises";
3
+ import { doctorProject } from "../services/doctor.js";
3
4
  import { findProjectRoot } from "../services/find-project-root.js";
5
+ import { inspectGitHubSetup } from "../services/github-setup-status.js";
4
6
  import { installAgentsTemplate } from "../services/install-agents-template.js";
5
7
  import { persistInstallProfile, resolveInstallProfile } from "../services/install-profile.js";
6
8
  import { printResult } from "../services/logger.js";
7
9
  import { assertDashboardBootstrapPreflight, bootstrapDashboardSqlite, } from "../services/sqlite-bootstrap.js";
8
- import { prepareStackGit } from "../services/stack-git.js";
9
10
  import { installStack } from "../services/stack-install.js";
10
11
  import { exposeStackNode, prepareStackNode, usingStackNode } from "../services/stack-node.js";
11
12
  import { describeStack, planStack } from "../services/stack-plan.js";
@@ -31,7 +32,7 @@ export async function executeInit(directory, command, version, runtime = {}) {
31
32
  if (command.force && !command.yes) {
32
33
  options.confirmForce = confirmation(stdin, stdout);
33
34
  }
34
- const target = await findProjectRoot(resolve(options.cwd, directory ?? "."));
35
+ const target = await findProjectRoot(resolve(options.cwd ?? process.cwd(), directory ?? "."));
35
36
  const profile = await resolveInstallProfile(target.root, command.profile);
36
37
  const stack = await planStack(target.root, runtime.templateDirectory, profile);
37
38
  if (!options.dryRun)
@@ -40,7 +41,6 @@ export async function executeInit(directory, command, version, runtime = {}) {
40
41
  if (result.dryRun || result.applied)
41
42
  stdout.write(describeStack(stack, result.dryRun));
42
43
  if (result.applied && !result.dryRun) {
43
- await prepareStackGit(result.root, (message) => stdout.write(message));
44
44
  if (profile !== "lite") {
45
45
  const node = await prepareStackNode(result.root, (message) => stdout.write(message));
46
46
  const dependencies = await installStack(stack, usingStackNode(node, runtime.packageRunner));
@@ -54,10 +54,20 @@ export async function executeInit(directory, command, version, runtime = {}) {
54
54
  const sqlite = await bootstrapDashboardSqlite({ workspaceRoot: result.root });
55
55
  stdout.write(`Dashboard SQLite pronto: ${sqlite.path} (${sqlite.cache}).\n`);
56
56
  await persistInstallProfile(result.root, profile);
57
+ const doctor = await doctorProject(result.root);
58
+ if (!doctor.valid)
59
+ throw new Error("ZAIP-AIOS doctor failed after installation");
60
+ const github = await inspectGitHubSetup(result.root, runtime.githubSetupRunner);
61
+ if (command.projectOnly) {
62
+ stdout.write("Modo project-only: nenhum arquivo em ~/.codex foi lido ou alterado.\n");
63
+ }
64
+ printResult(stdout, result, version, command.verbose, { sqlite, doctor, github });
57
65
  }
58
- printResult(stdout, result, version, command.verbose);
59
- if (command.projectOnly) {
60
- stdout.write("Modo project-only: nenhum arquivo em ~/.codex foi lido ou alterado.\n");
66
+ else {
67
+ printResult(stdout, result, version, command.verbose);
68
+ if (command.projectOnly) {
69
+ stdout.write("Modo project-only: nenhum arquivo em ~/.codex foi lido ou alterado.\n");
70
+ }
61
71
  }
62
72
  if (!result.dryRun && !result.applied && result.conflicts.length > 0) {
63
73
  throw new Error(`Installation blocked by ${result.conflicts.length} conflicting file(s); rerun with --dry-run --verbose or explicitly use --force --yes`);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type PublicAgentCatalog } from "./agent-adapters.js";
2
- export declare const ADAPTERS_VERSION = "3.1.0";
2
+ export declare const ADAPTERS_VERSION = "3.2.0";
3
3
  export interface AdapterFile {
4
4
  path: string;
5
5
  content: string;
@@ -6,7 +6,7 @@ import { codexAgentConfig, parsePublicAgentCatalog, publicAgentAdapterFiles, } f
6
6
  import { formatAgentDiscovery, serializeAgentDiscovery } from "./agent-discovery.js";
7
7
  import { CODEX_GITHUB_DEPLOY_RULES, CODEX_SECURITY_RULES } from "./codex-rules.js";
8
8
  import { applyTransactionalWrites, assertSafeDestination } from "./transactional-files.js";
9
- export const ADAPTERS_VERSION = "3.1.0";
9
+ export const ADAPTERS_VERSION = "3.2.0";
10
10
  const ROOT_GUIDANCE = `# ZAIP-AIOS
11
11
 
12
12
  Read \`.agents/config/project.yaml\` first. Apply ZAIP only for literal boolean \`zaip.enabled: true\`, except framework maintenance or \`zaip enable\`. \`AGENTS.md\` is a bootstrap; canonical guidance lives in \`.agents/\`.
@@ -0,0 +1,12 @@
1
+ export interface GitHubSetupStatus {
2
+ configured: boolean;
3
+ reason: "git-unavailable" | "not-a-repository" | "identity-missing" | "origin-missing" | "origin-not-github" | "configured";
4
+ }
5
+ export type GitRunner = (directory: string, arguments_: readonly string[]) => Promise<string | null>;
6
+ /**
7
+ * Inspects only local Git configuration. It deliberately does not contact GitHub
8
+ * or infer authentication from a remote URL.
9
+ */
10
+ export declare function inspectGitHubSetup(directory: string, runGit?: GitRunner): Promise<GitHubSetupStatus>;
11
+ export declare function isGitHubUrl(url: string): boolean;
12
+ //# sourceMappingURL=github-setup-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-setup-status.d.ts","sourceRoot":"","sources":["../../src/services/github-setup-status.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EACF,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,mBAAmB,GACnB,YAAY,CAAC;CAClB;AAED,MAAM,MAAM,SAAS,GAAG,CACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,SAAS,MAAM,EAAE,KAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5B;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,SAAe,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAgB5B;AAiCD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKhD"}
@@ -0,0 +1,84 @@
1
+ import { execFile } from "node:child_process";
2
+ import { join } from "node:path";
3
+ import { promisify } from "node:util";
4
+ const exec = promisify(execFile);
5
+ /**
6
+ * Inspects only local Git configuration. It deliberately does not contact GitHub
7
+ * or infer authentication from a remote URL.
8
+ */
9
+ export async function inspectGitHubSetup(directory, runGit = git) {
10
+ if (!validGitVersion(await runGit(directory, ["--version"])))
11
+ return pending("git-unavailable");
12
+ if ((await runGit(directory, ["rev-parse", "--is-inside-work-tree"])) !== "true")
13
+ return pending("not-a-repository");
14
+ const [name, email, origin, rewrites] = await Promise.all([
15
+ runGit(directory, ["config", "--get", "user.name"]),
16
+ runGit(directory, ["config", "--get", "user.email"]),
17
+ runGit(directory, ["remote", "get-url", "origin"]),
18
+ runGit(directory, ["config", "--get-regexp", "^url\\..*\\.insteadOf$"]),
19
+ ]);
20
+ if (!name || !email)
21
+ return pending("identity-missing");
22
+ if (!origin)
23
+ return pending("origin-missing");
24
+ return isGitHubUrl(rewriteGitUrl(origin, rewrites))
25
+ ? { configured: true, reason: "configured" }
26
+ : pending("origin-not-github");
27
+ }
28
+ function pending(reason) {
29
+ return { configured: false, reason };
30
+ }
31
+ const git = async (directory, arguments_) => {
32
+ const system = "git";
33
+ if (validGitVersion(await execute(system, directory, ["--version"]))) {
34
+ return execute(system, directory, arguments_);
35
+ }
36
+ const portable = join(directory, ".local", "git", "cmd", "git.exe");
37
+ if (!validGitVersion(await execute(portable, directory, ["--version"])))
38
+ return null;
39
+ return execute(portable, directory, arguments_);
40
+ };
41
+ async function execute(executable, directory, arguments_) {
42
+ try {
43
+ const { stdout } = await exec(executable, [...arguments_], {
44
+ cwd: directory,
45
+ windowsHide: true,
46
+ timeout: 10_000,
47
+ });
48
+ return stdout.trim() || null;
49
+ }
50
+ catch {
51
+ return null;
52
+ }
53
+ }
54
+ export function isGitHubUrl(url) {
55
+ const value = url.trim();
56
+ const web = /^(?:https?|ssh):\/\/(?:[^@/]+@)?github\.com\/(.+)$/iu.exec(value);
57
+ const scp = /^(?:[^@/\s]+@)?github\.com:(.+)$/iu.exec(value);
58
+ return repositoryPath(web?.[1] ?? scp?.[1] ?? "");
59
+ }
60
+ function validGitVersion(value) {
61
+ return value !== null && /^git version \d+\.\d+(?:\.\d+)?(?:[.\s]|$)/iu.test(value);
62
+ }
63
+ function repositoryPath(path) {
64
+ const [owner = "", repository = "", ...remaining] = path.replace(/\.git$/iu, "").split("/");
65
+ return (remaining.length === 0 &&
66
+ /^[A-Za-z\d](?:[A-Za-z\d-]{0,38})$/u.test(owner) &&
67
+ /^[A-Za-z\d_.-]+$/u.test(repository) &&
68
+ !repository.includes(".."));
69
+ }
70
+ function rewriteGitUrl(origin, rewrites) {
71
+ if (!rewrites)
72
+ return origin;
73
+ const candidates = [];
74
+ for (const line of rewrites.split(/\r?\n/u)) {
75
+ const match = /^url\.(.+)\.insteadof\s+(.+)$/iu.exec(line);
76
+ if (match?.[1] && match[2] && origin.startsWith(match[2])) {
77
+ candidates.push({ base: match[1], prefix: match[2] });
78
+ }
79
+ }
80
+ candidates.sort((left, right) => right.prefix.length - left.prefix.length);
81
+ const match = candidates[0];
82
+ return match ? `${match.base}${origin.slice(match.prefix.length)}` : origin;
83
+ }
84
+ //# sourceMappingURL=github-setup-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-setup-status.js","sourceRoot":"","sources":["../../src/services/github-setup-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=github-setup-status.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-setup-status.test.d.ts","sourceRoot":"","sources":["../../src/services/github-setup-status.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { inspectGitHubSetup, isGitHubUrl } from "./github-setup-status.js";
3
+ describe("GitHub setup inspection", () => {
4
+ it("keeps installation onboarding pending when Git is unavailable", async () => {
5
+ await expect(inspectGitHubSetup("C:/project", async () => null)).resolves.toEqual({
6
+ configured: false,
7
+ reason: "git-unavailable",
8
+ });
9
+ await expect(inspectGitHubSetup("C:/project", async () => "unexpected executable output")).resolves.toEqual({ configured: false, reason: "git-unavailable" });
10
+ });
11
+ it("requires a local identity and GitHub origin without requiring a commit", async () => {
12
+ const withoutIdentity = runner({
13
+ "--version": "git version 2.50.0",
14
+ "rev-parse --is-inside-work-tree": "true",
15
+ "remote get-url origin": "git@github.com:zaip-ai/example.git",
16
+ });
17
+ await expect(inspectGitHubSetup("C:/project", withoutIdentity)).resolves.toEqual({
18
+ configured: false,
19
+ reason: "identity-missing",
20
+ });
21
+ const configuredWithoutHead = runner({
22
+ "--version": "git version 2.50.0",
23
+ "rev-parse --is-inside-work-tree": "true",
24
+ "config --get user.name": "ZAIP",
25
+ "config --get user.email": "team@example.test",
26
+ "remote get-url origin": "git@github.com:zaip-ai/example.git",
27
+ });
28
+ await expect(inspectGitHubSetup("C:/project", configuredWithoutHead)).resolves.toEqual({
29
+ configured: true,
30
+ reason: "configured",
31
+ });
32
+ });
33
+ it("recognizes direct and Git-config verified alias GitHub URLs", async () => {
34
+ expect(isGitHubUrl("https://github.com/zaip-ai/example.git")).toBe(true);
35
+ expect(isGitHubUrl("git@github.com:zaip-ai/example.git")).toBe(true);
36
+ expect(isGitHubUrl("https://gitlab.com/zaip-ai/example.git")).toBe(false);
37
+ expect(isGitHubUrl("https://github.com/")).toBe(false);
38
+ expect(isGitHubUrl("https://github.com/zaip-ai/../example.git")).toBe(false);
39
+ expect(isGitHubUrl("https://github.com.example/zaip-ai/example.git")).toBe(false);
40
+ const alias = runner({
41
+ "--version": "git version 2.50.0",
42
+ "rev-parse --is-inside-work-tree": "true",
43
+ "config --get user.name": "ZAIP",
44
+ "config --get user.email": "team@example.test",
45
+ "remote get-url origin": "git@github-work:zaip-ai/example.git",
46
+ "config --get-regexp ^url\\..*\\.insteadOf$": "url.git@github.com:.insteadof git@github-work:",
47
+ });
48
+ await expect(inspectGitHubSetup("C:/project", alias)).resolves.toEqual({
49
+ configured: true,
50
+ reason: "configured",
51
+ });
52
+ });
53
+ });
54
+ function runner(values) {
55
+ return async (_directory, arguments_) => values[arguments_.join(" ")] ?? null;
56
+ }
57
+ //# sourceMappingURL=github-setup-status.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-setup-status.test.js","sourceRoot":"","sources":["../../src/services/github-setup-status.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,13 @@
1
1
  import type { Writable } from "node:stream";
2
2
  import type { InitResult } from "../types.js";
3
- export declare function printResult(stream: Writable, result: InitResult, version: string, verbose?: boolean): void;
3
+ import type { DoctorResult } from "./doctor.js";
4
+ import type { GitHubSetupStatus } from "./github-setup-status.js";
5
+ import type { SqliteBootstrapResult } from "./sqlite-bootstrap.js";
6
+ interface SuccessfulInstallSummary {
7
+ sqlite: SqliteBootstrapResult;
8
+ doctor: DoctorResult;
9
+ github: GitHubSetupStatus;
10
+ }
11
+ export declare function printResult(stream: Writable, result: InitResult, version: string, verbose?: boolean, successfulInstall?: SuccessfulInstallSummary): void;
12
+ export {};
4
13
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,UAAQ,GACd,IAAI,CA4DN"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,UAAU,wBAAwB;IAChC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,UAAQ,EACf,iBAAiB,CAAC,EAAE,wBAAwB,GAC3C,IAAI,CA8DN"}
@@ -1,4 +1,4 @@
1
- export function printResult(stream, result, version, verbose = false) {
1
+ export function printResult(stream, result, version, verbose = false, successfulInstall) {
2
2
  write(stream, `Zaip-AIOS CLI v${version}\n\n`);
3
3
  write(stream, result.gitRootFound
4
4
  ? `✓ Projeto Git encontrado: ${result.root}\n`
@@ -30,11 +30,28 @@ export function printResult(stream, result, version, verbose = false) {
30
30
  printPaths(stream, "Divergentes", result.conflicts);
31
31
  printPaths(stream, "Substituídos", result.overwritten);
32
32
  }
33
- write(stream, !result.applied && result.conflicts.length > 0 && !result.dryRun
34
- ? "\nInstalação bloqueada antes de qualquer alteração. Resolva os conflitos ou use --force --yes após revisar o backup planejado.\n"
35
- : result.dryRun
36
- ? "\nPlano concluído. Remova --dry-run para aplicar.\n"
37
- : "\nZaip-AIOS foi configurado com sucesso.\n\nPróximos passos:\n 1. Revise .agents/config/project.yaml\n 2. Ajuste Rules e Requirements do projeto\n 3. Antes de publicar seu projeto, configure corretamente o GitHub: defina a identidade Git (user.name e user.email), autentique por SSH ou HTTPS e configure o remote origin. Para a configuração inicial, use $zaip-skill-github-setup. Use $zaip-skill-github-deploy para uma publicação GitHub-only; a Release começa em v1.0 e incrementa para v1.1 por padrão. O instalador não faz publicação npm.\n 4. Execute o agente desejado\n");
33
+ if (!result.applied && result.conflicts.length > 0 && !result.dryRun) {
34
+ write(stream, "\nInstalação bloqueada antes de qualquer alteração. Resolva os conflitos ou use --force --yes após revisar o backup planejado.\n");
35
+ }
36
+ else if (result.dryRun) {
37
+ write(stream, "\nPlano concluído. Remova --dry-run para aplicar.\n");
38
+ }
39
+ else if (successfulInstall !== undefined) {
40
+ printSuccessfulInstall(stream, result, version, successfulInstall);
41
+ }
42
+ }
43
+ function printSuccessfulInstall(stream, result, version, summary) {
44
+ const npmVersion = encodeURIComponent(version);
45
+ write(stream, "\nZAIP-AIOS foi instalado com sucesso no projeto atual.\n");
46
+ write(stream, `- Versão instalada: [${version}](https://www.npmjs.com/package/@zaip-ai/cli/v/${npmVersion})\n`);
47
+ write(stream, `- ${result.created.length} arquivos adicionados\n`);
48
+ write(stream, `- ${result.existing.length} arquivos existentes preservados\n`);
49
+ write(stream, `- ${result.overwritten.length} arquivos sobrescritos\n`);
50
+ write(stream, `- Dashboard SQLite configurado: ${summary.sqlite.path} (${summary.sqlite.cache})\n`);
51
+ write(stream, `- doctor --json: ${summary.doctor.valid ? "válido, sem problemas" : "inválido"}\n`);
52
+ write(stream, summary.github.configured
53
+ ? "- GitHub: configuração local encontrada; a autenticação não foi verificada.\n\nGostaria de ajuda com a configuração inicial do projeto?\n"
54
+ : "- GitHub: configuração pendente. Você pode configurar o GitHub depois.\n\nGostaria de ajuda para configurar o GitHub?\n");
38
55
  }
39
56
  function printPaths(stream, label, paths) {
40
57
  if (paths.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { PassThrough } from "node:stream";
2
2
  import { describe, expect, it } from "vitest";
3
3
  import { printResult } from "./logger.js";
4
4
  describe("printResult", () => {
5
- it("distinguishes an installed project's GitHub release from npm publication", () => {
5
+ it("prints an installed-version npm link and the pending GitHub CTA", () => {
6
6
  const output = new PassThrough();
7
7
  let text = "";
8
8
  output.on("data", (chunk) => {
@@ -18,10 +18,14 @@ describe("printResult", () => {
18
18
  backupPath: null,
19
19
  dryRun: false,
20
20
  applied: true,
21
- }, "2.2.0");
22
- expect(text).toContain("GitHub-only");
23
- expect(text).toContain("v1.0");
24
- expect(text).toContain("não faz publicação npm");
21
+ }, "3.1.0", false, {
22
+ sqlite: { path: ".agents/dashboard/data/zaip.db", cache: "created", schema: {} },
23
+ doctor: { root: "C:/work/project", valid: true, findings: [] },
24
+ github: { configured: false, reason: "git-unavailable" },
25
+ });
26
+ expect(text).toContain("[3.1.0](https://www.npmjs.com/package/@zaip-ai/cli/v/3.1.0)");
27
+ expect(text).toContain("doctor --json: válido, sem problemas");
28
+ expect(text.trimEnd()).toMatch(/Gostaria de ajuda para configurar o GitHub\?$/u);
25
29
  });
26
30
  it("guides a safe retry without advising a catalog copy when global reconciliation fails", () => {
27
31
  const output = new PassThrough();
@@ -83,5 +87,29 @@ describe("printResult", () => {
83
87
  expect(text).toContain("2 registros removidos");
84
88
  expect(text).not.toContain("Catálogo global legado do Codex instalado");
85
89
  });
90
+ it("ends configured GitHub installations with the project setup CTA", () => {
91
+ const output = new PassThrough();
92
+ let text = "";
93
+ output.on("data", (chunk) => {
94
+ text += chunk.toString("utf8");
95
+ });
96
+ printResult(output, {
97
+ root: "C:/work/project",
98
+ gitRootFound: true,
99
+ created: ["a"],
100
+ existing: ["b"],
101
+ conflicts: [],
102
+ overwritten: ["c"],
103
+ backupPath: null,
104
+ dryRun: false,
105
+ applied: true,
106
+ }, "3.2.0", false, {
107
+ sqlite: { path: ".agents/dashboard/data/zaip.db", cache: "reused", schema: {} },
108
+ doctor: { root: "C:/work/project", valid: true, findings: [] },
109
+ github: { configured: true, reason: "configured" },
110
+ });
111
+ expect(text).toContain("1 arquivos adicionados");
112
+ expect(text.trimEnd()).toMatch(/Gostaria de ajuda com a configuração inicial do projeto\?$/u);
113
+ });
86
114
  });
87
115
  //# sourceMappingURL=logger.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../src/services/logger.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAClC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,WAAW,CACT,MAAM,EACN;YACE,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;SACd,EACD,OAAO,CACR,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;QAC9F,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAClC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,WAAW,CACT,MAAM,EACN;YACE,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;YACb,iBAAiB,EAAE;gBACjB,IAAI,EAAE,qCAAqC;gBAC3C,UAAU,EAAE,oDAAoD;gBAChE,SAAS,EAAE,KAAK;gBAChB,mBAAmB,EAAE,CAAC;gBACtB,oBAAoB,EAAE,CAAC;gBACvB,KAAK,EAAE,eAAe;aACvB;SACF,EACD,OAAO,CACR,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,gEAAgE,CAAC,CAAC;QACzF,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,oDAAoD,CAAC,CAAC;QACjF,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAClC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,WAAW,CACT,MAAM,EACN;YACE,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;YACb,iBAAiB,EAAE;gBACjB,IAAI,EAAE,qCAAqC;gBAC3C,UAAU,EAAE,oDAAoD;gBAChE,SAAS,EAAE,IAAI;gBACf,mBAAmB,EAAE,CAAC;gBACtB,oBAAoB,EAAE,CAAC;gBACvB,KAAK,EAAE,IAAI;aACZ;SACF,EACD,OAAO,CACR,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,8CAA8C,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../src/services/logger.test.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Readable, Writable } from "node:stream";
2
+ import type { GitRunner } from "./services/github-setup-status.js";
2
3
  import type { PackageRunner } from "./services/stack-package-manager.js";
3
4
  export interface InitOptions {
4
5
  directory?: string;
@@ -47,5 +48,7 @@ export interface CliRuntime {
47
48
  stderr?: Writable;
48
49
  templateDirectory?: string;
49
50
  now?: () => Date;
51
+ /** Injectable local Git inspection for deterministic CLI onboarding tests. */
52
+ githubSetupRunner?: GitRunner;
50
53
  }
51
54
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4FAA4F;IAC5F,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4FAA4F;IAC5F,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,SAAS,CAAC;CAC/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaip-ai/cli",
3
- "version": "3.1.0",
3
+ "version": "3.2.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",
@@ -726,7 +726,7 @@ pnpm build
726
726
 
727
727
  Before integrating a relevant change or preparing a release, `pnpm verify` runs the complete repository pipeline, including additional tool, contract, generation, workspace, runtime-parity, and release-test gates. This pipeline only validates the lock; if a managed file was intentionally changed, run sync first. Use the pnpm version fixed in `packageManager` (`corepack pnpm` when available). For a bounded change, choose checks appropriate to its risk and diff; the list does not require repeating every test for each documentation edit. Release qualification uses the complete gates in [guide 26](zaip-aios/guides/26-qualidade-e-release.md) on the exact candidate. Do not conflate `validate:github:prepared`, local execution, push, and a green terminal CI.
728
728
 
729
- This checkout's manifests identify candidate `3.1.0` (product `3.1`). Candidate identity does not mean `latest` has been published or certify production. Release requires the exact revision, terminal CI, TGZ integrity, and a real artifact installation. Attempts and limitations remain in the Change evidence; local results and publication are distinct states.
729
+ This checkout's manifests identify candidate `3.2.0` (product `3.2`). Candidate identity does not mean `latest` has been published or certify production. Release requires the exact revision, terminal CI, TGZ integrity, and a real artifact installation. Attempts and limitations remain in the Change evidence; local results and publication are distinct states.
730
730
 
731
731
  The detailed architecture is summarized in this README's [Application architecture](#application-architecture) section.
732
732
 
@@ -761,7 +761,7 @@ Antes de integrar uma mudança relevante ou preparar um release, `pnpm verify` e
761
761
 
762
762
  Use a versão de pnpm fixada em `packageManager` (`corepack pnpm` quando disponível). Para uma alteração delimitada, selecione os checks pertinentes ao risco e ao diff; a lista acima não exige repetir todos os testes a cada edição documental. Qualificação de release usa os gates completos do [guia 26](zaip-aios/guides/26-qualidade-e-release.md) no candidato exato. Não confunda `validate:github:prepared`, execução local, push e CI terminal verde.
763
763
 
764
- Os manifests deste checkout registram o candidato `3.1.0` (produto `3.1`). A identificação do candidato não significa que o `latest` já foi publicado nem certifica produção. A release exige revisão exata, CI terminal, integridade do TGZ e instalação real do artefato. Tentativas e limitações ficam nas evidências da Change; resultados locais e publicação são estados distintos.
764
+ Os manifests deste checkout registram o candidato `3.2.0` (produto `3.2`). A identificação do candidato não significa que o `latest` já foi publicado nem certifica produção. A release exige revisão exata, CI terminal, integridade do TGZ e instalação real do artefato. Tentativas e limitações ficam nas evidências da Change; resultados locais e publicação são estados distintos.
765
765
 
766
766
  A arquitetura detalhada está resumida na seção [Arquitetura das aplicações](#arquitetura-das-aplicações) deste README.
767
767
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "_zaip_managed": "zaip-managed generated-do-not-edit source=agent-discovery version=3.1.0 sha256=a44942a0f46acb69ef70da671c8a2eb1cae985abf30fa7dcad59cab4bfbd1034",
2
+ "_zaip_managed": "zaip-managed generated-do-not-edit source=agent-discovery version=3.2.0 sha256=a44942a0f46acb69ef70da671c8a2eb1cae985abf30fa7dcad59cab4bfbd1034",
3
3
  "schema_version": 1,
4
4
  "source": {
5
5
  "path": ".agents/config/agents/catalog.yaml",