@zaip-ai/cli 3.1.0 → 3.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.
- package/README.md +11 -5
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +16 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/services/adapters.d.ts +1 -1
- package/dist/services/adapters.d.ts.map +1 -1
- package/dist/services/adapters.js +2 -1
- package/dist/services/adapters.js.map +1 -1
- package/dist/services/github-setup-status.d.ts +12 -0
- package/dist/services/github-setup-status.d.ts.map +1 -0
- package/dist/services/github-setup-status.js +84 -0
- package/dist/services/github-setup-status.js.map +1 -0
- package/dist/services/github-setup-status.test.d.ts +2 -0
- package/dist/services/github-setup-status.test.d.ts.map +1 -0
- package/dist/services/github-setup-status.test.js +57 -0
- package/dist/services/github-setup-status.test.js.map +1 -0
- package/dist/services/logger.d.ts +10 -1
- package/dist/services/logger.d.ts.map +1 -1
- package/dist/services/logger.js +39 -6
- package/dist/services/logger.js.map +1 -1
- package/dist/services/logger.test.js +50 -5
- package/dist/services/logger.test.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/templates/.agents/README-ENG.md +2 -1
- package/templates/.agents/README.md +2 -1
- package/templates/.agents/config/agents/catalog.yaml +1 -0
- package/templates/.agents/config/agents/discovery.json +2 -2
- package/templates/.agents/config/clients/codex/agents/zaip-agent-builder.toml +2 -2
- package/templates/.agents/dashboard/.zaip-managed.json +60 -52
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{CostCalculationGuidePage-CEDZjl4V.js → CostCalculationGuidePage-BBFDrn64.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-DIWDmvAS.js → DashboardHelpDialog-Cd-qo9w7.js} +4 -3
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-BBRBKaHa.js → PricingSettingsDialog-J7L5m8lk.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-BAvLPAee.js → ProjectSettingsPage-BpsAFy0g.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-C9dDhj34.js → TraceabilityWorkspace-BzVtGLWS.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{cost-monitor-06__WZco.js → cost-monitor--iPcnZdx.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-CoAVMZN6.js → dashboard-localization-jvdDfNKs.js} +2 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-DEmo6Tn2.js → icons-vendor-CWzf_RiP.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-BVzw_Wux.js → index-DfdlGa7c.js} +2 -2
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-CadYsm83.js → react-vendor-CtHdbZk3.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{traceability-BzKK8kK3.js → traceability-BKrDH2TR.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/index.html +5 -5
- package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
- package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
- package/templates/.agents/dashboard/modules/operations/package.json +1 -1
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.helpers.tsx +4 -1
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.test.ts +5 -0
- package/templates/.agents/dashboard/modules/operations/src/react/export/xlsx-runtime-e2e.test.ts +55 -31
- package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
- package/templates/.agents/dashboard/packages/branding/package.json +1 -1
- package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
- package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +186 -166
- package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +135 -115
- package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +187 -167
- package/templates/.agents/dashboard/packages/local-runtime/src/server-period-macro-metric.test.ts +19 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-read-projections.ts +3 -3
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-cache.test.ts +94 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-first-fold-cache.ts +32 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-force-canonical.test.ts +58 -3
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-projection.ts +2 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-counts-every-root-execution-day-returns.test.ts +13 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-keeps-orphan-telemetry-out-kanban-without.test.ts +2 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-schema.ts +15 -2
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +2 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-dashboard-views.ts +20 -2
- package/templates/.agents/dashboard/packages/ui/package.json +1 -1
- package/templates/.agents/dashboard/scripts/qualify-macro-overview.mjs +50 -0
- package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
- package/templates/.agents/design/.zaip-managed.json +3 -3
- package/templates/.agents/design/apps/catalog/package.json +1 -1
- package/templates/.agents/design/packages/local-runtime/package.json +1 -1
- package/templates/.agents/requirements/autonomous-assurance.md +1 -1
- package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
- package/templates/.agents/requirements/comparative-audit.md +1 -1
- package/templates/.agents/requirements/context-engine.md +1 -1
- package/templates/.agents/requirements/cost-observability.md +1 -1
- package/templates/.agents/requirements/dashboard-launch.md +1 -1
- package/templates/.agents/requirements/data-export.md +1 -1
- package/templates/.agents/requirements/design-system.md +1 -1
- package/templates/.agents/requirements/execution-engine.md +1 -1
- package/templates/.agents/requirements/kanban-dashboard.md +1 -1
- package/templates/.agents/requirements/model-orchestration.md +1 -1
- package/templates/.agents/requirements/public-distribution.md +17 -2
- package/templates/.agents/requirements/software-architecture.md +1 -1
- package/templates/.agents/requirements/strategic-improvements.md +1 -1
- package/templates/.agents/requirements/work-lifecycle.md +1 -1
- package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
- package/templates/.agents/runtime/VERSION +1 -1
- package/templates/.agents/runtime/bin/zaip.mjs +13 -12
- package/templates/.agents/runtime/checksums.sha256 +5 -5
- package/templates/.agents/runtime/manifest.json +1 -1
- package/templates/.agents/runtime/provenance.json +4 -4
- package/templates/.agents/runtime/sbom.cdx.json +1 -1
- package/templates/.agents/skills/zaip-aios/SKILL.md +0 -1
- package/templates/.agents/skills/zaip-skill-author-skills/scripts/audit-skill-catalog.mjs +1 -0
- package/templates/.agents/skills/zaip-skill-config/SKILL.md +12 -0
- package/templates/.agents/skills/zaip-skill-github-setup/SKILL.md +7 -1
- package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +4 -0
- package/templates/.agents/skills/zaip-skill-setup/SKILL.md +36 -2
- package/templates/.agents/skills/zaip-skill-setup/agents/openai.yaml +2 -2
- package/templates/.agents/skills/zaip-skill-update-version-doc/SKILL.md +39 -0
- package/templates/.agents/skills/zaip-skill-update-version-doc/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-update-version-doc/scripts/update-version-doc.mjs +21 -0
- package/templates/.agents/skills/zaip-skill-update-version-doc/scripts/update-version-doc.test.mjs +32 -0
- package/templates/.agents/zaip-aios/README.md +2 -1
- package/templates/.agents/zaip-aios/VERSION +1 -1
- package/templates/.agents/zaip-aios/guides/20-instalacao-detalhada.md +26 -1
- package/templates/template-manifest.json +120 -96
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
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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":"
|
|
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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/services/adapters.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,qBAAqB,CAAC;AAK7B,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/services/adapters.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,qBAAqB,CAAC;AAK7B,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAqLD,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,SAAS,WAAW,EAAE,CAqDxB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACzD,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B,CAAC,CAYD;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,UAAQ,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC,CAiB7D;AASD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAuBvE"}
|
|
@@ -6,12 +6,13 @@ 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.
|
|
9
|
+
export const ADAPTERS_VERSION = "3.3.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/\`.
|
|
13
13
|
|
|
14
14
|
- Read \`.agents/rules/core.md\`, Rules marked \`always\`, applicable Rules with prerequisites, and governing Requirements/Acceptance Criteria. Open applicable canonical \`.agents/skills/<skill-name>/SKILL.md\`; wrappers do not replace them. Reuse unchanged context; inspect manifests then explicit record IDs, never bulk history.
|
|
15
|
+
- After init, read \`.agents/skills/zaip-skill-setup/SKILL.md\`: mandatory final chat response template with Markdown bullets, installed-version npm link and exactly one final setup question.
|
|
15
16
|
- Never restart or shut down the user's local computer, directly or indirectly. All skills and subagents obey the host protection in RULE-CORE; leave any required OS restart to the user.
|
|
16
17
|
- Capture once, idempotently per observed client turn: questions/analysis use \`conversation\`; continuation reuses same-thread focus; independent persistent work uses semantic \`new-work\`. A childless read-only interaction responds directly without artificial Task or delegation.
|
|
17
18
|
- Before mutation or delegation, load workflow, closure and execution guidance from core. Materialize Task, Change, delivery Execution and root Run before independent product edits; draft/Git-only exceptions follow workflow. Preserve authorization, scoped writes, observed evidence and unavailable telemetry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/services/adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iCAAiC,EACjC,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAEhB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAE3F,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAOxC,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/services/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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
|
-
|
|
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;
|
|
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"}
|
package/dist/services/logger.js
CHANGED
|
@@ -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,44 @@ 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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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, "\nPara a resposta no chat: reproduza o resumo abaixo em Markdown, mantendo bullets, link npm e a pergunta final; não o transforme em parágrafos. Consulte .agents/skills/zaip-skill-setup/SKILL.md antes de responder.\n");
|
|
46
|
+
write(stream, "\nZAIP-AIOS foi instalado com sucesso no projeto atual usando `npx @zaip-ai/cli@latest init`.\n\nResumo:\n\n");
|
|
47
|
+
write(stream, `- Versão instalada: [v${version}](https://www.npmjs.com/package/@zaip-ai/cli/v/${npmVersion})\n`);
|
|
48
|
+
write(stream, `- ${result.created.length} arquivos adicionados\n`);
|
|
49
|
+
write(stream, `- ${result.overwritten.length} arquivos existentes sobrescritos\n`);
|
|
50
|
+
write(stream, "- Dashboard SQLite configurado\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\nDeseja ajuda para realizar a configuração inicial do ZAIP-AIOS?\n"
|
|
54
|
+
: `- ${pendingGitDescription(summary.github.reason)} Você pode configurar o GitHub depois.\n\nDeseja ajuda para configurar seu repositório Git?\n`);
|
|
55
|
+
}
|
|
56
|
+
function pendingGitDescription(reason) {
|
|
57
|
+
switch (reason) {
|
|
58
|
+
case "git-unavailable":
|
|
59
|
+
return "Git não está disponível.";
|
|
60
|
+
case "not-a-repository":
|
|
61
|
+
return "O diretório ainda não possui um repositório Git configurado.";
|
|
62
|
+
case "identity-missing":
|
|
63
|
+
return "A identidade Git ainda precisa ser configurada.";
|
|
64
|
+
case "origin-missing":
|
|
65
|
+
return "O repositório ainda não está vinculado ao GitHub.";
|
|
66
|
+
case "origin-not-github":
|
|
67
|
+
return "O remote configurado não aponta para o GitHub.";
|
|
68
|
+
default:
|
|
69
|
+
return "A configuração do GitHub está pendente.";
|
|
70
|
+
}
|
|
38
71
|
}
|
|
39
72
|
function printPaths(stream, label, paths) {
|
|
40
73
|
if (paths.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"
|
|
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("
|
|
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,31 @@ describe("printResult", () => {
|
|
|
18
18
|
backupPath: null,
|
|
19
19
|
dryRun: false,
|
|
20
20
|
applied: true,
|
|
21
|
-
}, "
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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("[v3.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(/Deseja ajuda para configurar seu repositório Git\?$/u);
|
|
29
|
+
expect(text.slice(text.indexOf("ZAIP-AIOS foi instalado com sucesso"))).toBe([
|
|
30
|
+
"ZAIP-AIOS foi instalado com sucesso no projeto atual usando `npx @zaip-ai/cli@latest init`.",
|
|
31
|
+
"",
|
|
32
|
+
"Resumo:",
|
|
33
|
+
"",
|
|
34
|
+
"- Versão instalada: [v3.1.0](https://www.npmjs.com/package/@zaip-ai/cli/v/3.1.0)",
|
|
35
|
+
"- 0 arquivos adicionados",
|
|
36
|
+
"- 0 arquivos existentes sobrescritos",
|
|
37
|
+
"- Dashboard SQLite configurado",
|
|
38
|
+
"- `doctor --json`: válido, sem problemas",
|
|
39
|
+
"- Git não está disponível. Você pode configurar o GitHub depois.",
|
|
40
|
+
"",
|
|
41
|
+
"Deseja ajuda para configurar seu repositório Git?",
|
|
42
|
+
"",
|
|
43
|
+
].join("\n"));
|
|
44
|
+
expect(text).toContain("não o transforme em parágrafos");
|
|
45
|
+
expect(text).toContain(".agents/skills/zaip-skill-setup/SKILL.md");
|
|
25
46
|
});
|
|
26
47
|
it("guides a safe retry without advising a catalog copy when global reconciliation fails", () => {
|
|
27
48
|
const output = new PassThrough();
|
|
@@ -83,5 +104,29 @@ describe("printResult", () => {
|
|
|
83
104
|
expect(text).toContain("2 registros removidos");
|
|
84
105
|
expect(text).not.toContain("Catálogo global legado do Codex instalado");
|
|
85
106
|
});
|
|
107
|
+
it("ends configured GitHub installations with the project setup CTA", () => {
|
|
108
|
+
const output = new PassThrough();
|
|
109
|
+
let text = "";
|
|
110
|
+
output.on("data", (chunk) => {
|
|
111
|
+
text += chunk.toString("utf8");
|
|
112
|
+
});
|
|
113
|
+
printResult(output, {
|
|
114
|
+
root: "C:/work/project",
|
|
115
|
+
gitRootFound: true,
|
|
116
|
+
created: ["a"],
|
|
117
|
+
existing: ["b"],
|
|
118
|
+
conflicts: [],
|
|
119
|
+
overwritten: ["c"],
|
|
120
|
+
backupPath: null,
|
|
121
|
+
dryRun: false,
|
|
122
|
+
applied: true,
|
|
123
|
+
}, "3.2.0", false, {
|
|
124
|
+
sqlite: { path: ".agents/dashboard/data/zaip.db", cache: "reused", schema: {} },
|
|
125
|
+
doctor: { root: "C:/work/project", valid: true, findings: [] },
|
|
126
|
+
github: { configured: true, reason: "configured" },
|
|
127
|
+
});
|
|
128
|
+
expect(text).toContain("1 arquivos adicionados");
|
|
129
|
+
expect(text.trimEnd()).toMatch(/Deseja ajuda para realizar a configuração inicial do ZAIP-AIOS\?$/u);
|
|
130
|
+
});
|
|
86
131
|
});
|
|
87
132
|
//# 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,
|
|
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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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;
|
|
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.
|
|
3
|
+
"version": "3.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",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
37
37
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
38
38
|
"template:runtime:sync": "node scripts/sync-runtime-template.mjs",
|
|
39
|
-
"prepack": "pnpm run build && pnpm --dir ../../.. --filter @zaip-ai/cli build && node ../../../scripts/build-release.mjs --runtime-only && node ../../../.agents/dashboard/packages/local-runtime/scripts/build-sqlite-runtime.mjs && node ../../scripts/sync-template.mjs --silent && pnpm --dir ../.. exec vitest run tests/unit/adapter-parity.test.ts && node ../../scripts/audit-template.mjs"
|
|
39
|
+
"prepack": "node ../../../scripts/update-version-doc.mjs check && pnpm run build && pnpm --dir ../../.. --filter @zaip-ai/cli build && node ../../../scripts/build-release.mjs --runtime-only && node ../../../.agents/dashboard/packages/local-runtime/scripts/build-sqlite-runtime.mjs && node ../../scripts/sync-template.mjs --silent && pnpm --dir ../.. exec vitest run tests/unit/adapter-parity.test.ts && node ../../scripts/audit-template.mjs"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"commander": "14.0.2",
|