@zaip-ai/cli 1.4.2 → 2.0.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/dist/services/adapter-hook-sources.d.ts +1 -0
- package/dist/services/adapter-hook-sources.d.ts.map +1 -1
- package/dist/services/adapter-hook-sources.js +1 -0
- package/dist/services/adapter-hook-sources.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 +17 -4
- package/dist/services/adapters.js.map +1 -1
- package/dist/services/agent-adapters.d.ts +97 -34
- package/dist/services/agent-adapters.d.ts.map +1 -1
- package/dist/services/agent-adapters.js +260 -49
- package/dist/services/agent-adapters.js.map +1 -1
- package/dist/services/codex-conversation-lifecycle-hook.d.ts +2 -0
- package/dist/services/codex-conversation-lifecycle-hook.d.ts.map +1 -0
- package/dist/services/codex-conversation-lifecycle-hook.js +29 -0
- package/dist/services/codex-conversation-lifecycle-hook.js.map +1 -0
- package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
- package/dist/services/codex-pre-tool-hook-template.js +173 -0
- package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
- package/dist/services/codex-subagent-hook-template.d.ts +1 -1
- package/dist/services/codex-subagent-hook-template.d.ts.map +1 -1
- package/dist/services/codex-subagent-hook-template.js +1 -1
- package/dist/services/doctor.js +2 -2
- package/dist/services/install-agents-template.d.ts.map +1 -1
- package/dist/services/install-agents-template.js +126 -5
- package/dist/services/install-agents-template.js.map +1 -1
- package/dist/services/logger.js +1 -1
- package/dist/services/logger.js.map +1 -1
- package/dist/services/logger.test.js +2 -2
- package/dist/services/stack-git.d.ts +3 -0
- package/dist/services/stack-git.d.ts.map +1 -1
- package/dist/services/stack-git.js +24 -3
- package/dist/services/stack-git.js.map +1 -1
- package/dist/services/template-manifest.d.ts.map +1 -1
- package/dist/services/template-manifest.js +3 -1
- package/dist/services/template-manifest.js.map +1 -1
- package/dist/services/transactional-files.d.ts +2 -1
- package/dist/services/transactional-files.d.ts.map +1 -1
- package/dist/services/transactional-files.js +8 -3
- package/dist/services/transactional-files.js.map +1 -1
- package/package.json +2 -2
- package/templates/.agents/README-ENG.md +718 -0
- package/templates/.agents/README.md +42 -42
- package/templates/.agents/architecture/hostinger-cloudflare-terraform.md +90 -0
- package/templates/.agents/architecture/software-architecture.md +61 -0
- package/templates/.agents/config/autonomous-cloud-inputs.json +41 -0
- package/templates/.agents/dashboard/.zaip-managed.json +66 -46
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-oZVlf-l5.js → DashboardHelpDialog-CYfpYsTr.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-BYjVOHI_.js → TraceabilityWorkspace-DHDrd5rE.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/index-BYbpmqmM.js +2 -0
- package/templates/.agents/dashboard/apps/frontend/dist/index.html +2 -2
- package/templates/.agents/dashboard/apps/frontend/index.html +1 -1
- package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
- package/templates/.agents/dashboard/apps/frontend/src/App.tsx +28 -9
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.test.ts +27 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.ts +13 -29
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-identity.test.ts +43 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-identity.ts +32 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-project-overview.ts +28 -0
- package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +2 -2
- 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/traceability/package.json +1 -1
- package/templates/.agents/dashboard/modules/traceability/src/contracts.ts +1 -1
- package/templates/.agents/dashboard/packages/branding/package.json +1 -1
- package/templates/.agents/dashboard/packages/branding/src/index.ts +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 +204 -204
- package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +109 -109
- package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +204 -204
- package/templates/.agents/dashboard/packages/local-runtime/src/server-identity.test.ts +42 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.test.ts +41 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.ts +1 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot.test.ts +2 -2
- package/templates/.agents/dashboard/packages/local-runtime/src/server-sqlite-task-trace.ts +5 -2
- package/templates/.agents/dashboard/packages/local-runtime/src/server-workspace.ts +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/server.test-fixtures.ts +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +1 -13
- package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +11 -3
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-incremental-refresh.test.ts +55 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-canonical.ts +9 -6
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-source-fingerprint.test.ts +22 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-source-fingerprint.ts +10 -8
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +68 -2
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.ts +39 -10
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-seed.test.ts +47 -42
- package/templates/.agents/dashboard/packages/ui/package.json +1 -1
- package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
- package/templates/.agents/design/.zaip-managed.json +41 -41
- 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 +1 -1
- 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 +88 -43
- 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 +4 -2
- package/templates/.agents/skills/zaip-skill-execution/SKILL.md +1 -1
- package/templates/.agents/skills/zaip-skill-execution/references/candidate-workflow.md +23 -0
- package/templates/.agents/skills/zaip-skill-setup/SKILL.md +1 -1
- package/templates/.agents/skills/zaip-skill-task/SKILL.md +1 -0
- package/templates/.agents/zaip-aios/VERSION +1 -1
- package/templates/infra/terraform/terraform.tfvars.example +2 -1
- package/templates/template-manifest.json +144 -108
- package/templates/.agents/dashboard/apps/frontend/dist/assets/index-ZJFXmK7m.js +0 -2
- package/templates/.agents/data/tasks/.gitkeep +0 -0
- /package/templates/.agents/{architecture → records/changes}/.gitkeep +0 -0
- /package/templates/.agents/{data/changes → records/executions}/.gitkeep +0 -0
- /package/templates/.agents/{data/executions → records/prds}/.gitkeep +0 -0
- /package/templates/.agents/{data/prds → records/runs}/.gitkeep +0 -0
- /package/templates/.agents/{data/runs → records/specs}/.gitkeep +0 -0
- /package/templates/.agents/{data/specs → records/tasks}/.gitkeep +0 -0
|
@@ -14,6 +14,20 @@ const allowedExplicitNetworkHosts = new Set([
|
|
|
14
14
|
"::1",
|
|
15
15
|
]);
|
|
16
16
|
const networkClientPattern = /\b(?:curl|wget|Invoke-WebRequest|Invoke-RestMethod|iwr|irm)\b/i;
|
|
17
|
+
const cloudRunnerScript = ".agents/tools/cloud-runner.mjs";
|
|
18
|
+
const cloudContractPath = ".agents/config/autonomous-cloud-contract.json";
|
|
19
|
+
const cloudOperationProviders = new Map([
|
|
20
|
+
["cloudflare:dns:read", "cloudflare"],
|
|
21
|
+
["cloudflare:dns:create", "cloudflare"],
|
|
22
|
+
["cloudflare:dns:edit", "cloudflare"],
|
|
23
|
+
["hostinger:vps:read", "hostinger"],
|
|
24
|
+
["hostinger:ssh:read", "hostinger"],
|
|
25
|
+
["hostinger:ssh:configure", "hostinger"],
|
|
26
|
+
["hostinger:ssh:test", "hostinger"],
|
|
27
|
+
["terraform:plan", "terraform"],
|
|
28
|
+
["terraform:apply", "terraform"],
|
|
29
|
+
["terraform:import", "terraform"],
|
|
30
|
+
]);
|
|
17
31
|
const homeReferencePattern = /(?:\$HOME\b|\$env:(?:USERPROFILE|HOMEDRIVE|HOMEPATH)\b|%(?:USERPROFILE|HOMEDRIVE|HOMEPATH)%|(?:^|[\s"'=])~[\\/])/i;
|
|
18
32
|
const credentialReferencePattern = /(?:^|[\\/\s"'=])(?:\.ssh|\.aws|\.azure|\.kube|\.docker|\.gnupg|\.git-credentials|\.npmrc|\.pypirc|id_(?:rsa|ed25519)|[^\\/\s"']+\.(?:pem|key|p12|pfx))(?:[\\/\s"'=]|$)|(?:^|[\\/\s"'=])\.env(?:\.[A-Za-z0-9_-]+)*(?:[\\/\s"']|$)/i;
|
|
19
33
|
const sensitiveEnvironmentPattern = /(?:\$env:|%|\$)[A-Z0-9_]*(?:TOKEN|SECRET|PASSWORD|API_KEY|PRIVATE_KEY|CREDENTIAL)[A-Z0-9_]*%?/i;
|
|
@@ -312,6 +326,163 @@ function validateExplicitNetwork(command) {
|
|
|
312
326
|
}
|
|
313
327
|
}
|
|
314
328
|
|
|
329
|
+
function optionMap(tokens) {
|
|
330
|
+
if (tokens.length % 2 !== 0) return null;
|
|
331
|
+
const values = new Map();
|
|
332
|
+
for (let index = 0; index < tokens.length; index += 2) {
|
|
333
|
+
const key = tokens[index];
|
|
334
|
+
const value = tokens[index + 1];
|
|
335
|
+
if (!key.startsWith("--") || value.startsWith("--") || values.has(key)) return null;
|
|
336
|
+
values.set(key, value);
|
|
337
|
+
}
|
|
338
|
+
return values;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
function requireExactOptions(options, allowed, required) {
|
|
342
|
+
if ([...options.keys()].some((key) => !allowed.has(key))) return false;
|
|
343
|
+
return [...required].every((key) => typeof options.get(key) === "string" && options.get(key).length > 0);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
function isStringArray(value) {
|
|
347
|
+
return Array.isArray(value) && value.every((item) => typeof item === "string" && item.length > 0);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
async function readCloudContract(options) {
|
|
351
|
+
if (options.get("--contract") !== cloudContractPath) {
|
|
352
|
+
deny("Cloud runner must use the canonical autonomous-cloud contract path.");
|
|
353
|
+
}
|
|
354
|
+
const absolute = resolve(repositoryRoot, cloudContractPath);
|
|
355
|
+
if (!isWithinRepository(absolute)) deny("Cloud runner contract escapes the repository boundary.");
|
|
356
|
+
let contract;
|
|
357
|
+
try {
|
|
358
|
+
contract = JSON.parse(await readFile(absolute, "utf8"));
|
|
359
|
+
} catch {
|
|
360
|
+
deny("Cloud runner contract is absent or malformed.");
|
|
361
|
+
}
|
|
362
|
+
if (
|
|
363
|
+
contract === null ||
|
|
364
|
+
typeof contract !== "object" ||
|
|
365
|
+
contract.version !== 1 ||
|
|
366
|
+
contract.profile !== "autonomous-cloud" ||
|
|
367
|
+
contract.cloudflare === null ||
|
|
368
|
+
typeof contract.cloudflare !== "object" ||
|
|
369
|
+
contract.hostinger === null ||
|
|
370
|
+
typeof contract.hostinger !== "object"
|
|
371
|
+
) {
|
|
372
|
+
deny("Cloud runner contract has no valid autonomous-cloud profile.");
|
|
373
|
+
}
|
|
374
|
+
return contract;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
function cloudflareTargetMatches(contract, options, operation) {
|
|
378
|
+
const cloudflare = contract.cloudflare;
|
|
379
|
+
const record = options.get("--dns-record");
|
|
380
|
+
const managed = isStringArray(cloudflare.dns_records) && cloudflare.dns_records.includes(record);
|
|
381
|
+
const direct = cloudflare.direct_dns_records !== null && typeof cloudflare.direct_dns_records === "object" && Object.hasOwn(cloudflare.direct_dns_records, record);
|
|
382
|
+
return (
|
|
383
|
+
typeof cloudflare.account_id === "string" &&
|
|
384
|
+
typeof cloudflare.zone_id === "string" &&
|
|
385
|
+
isStringArray(cloudflare.allowed_operations) &&
|
|
386
|
+
cloudflare.account_id === options.get("--account-id") &&
|
|
387
|
+
cloudflare.zone_id === options.get("--zone-id") &&
|
|
388
|
+
cloudflare.allowed_operations.includes(operation) &&
|
|
389
|
+
(operation === "cloudflare:dns:read" ? managed || direct : direct && !managed)
|
|
390
|
+
);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
function hostingerTargetMatches(contract, options, operation) {
|
|
394
|
+
const hostinger = contract.hostinger;
|
|
395
|
+
const role = options.get("--vps-role");
|
|
396
|
+
if (
|
|
397
|
+
typeof hostinger.account_id !== "string" ||
|
|
398
|
+
!isStringArray(hostinger.allowed_operations) ||
|
|
399
|
+
hostinger.account_id !== options.get("--account-id") ||
|
|
400
|
+
!hostinger.allowed_operations.includes(operation) ||
|
|
401
|
+
(role !== "edge" && role !== "application") ||
|
|
402
|
+
hostinger.vps === null ||
|
|
403
|
+
typeof hostinger.vps !== "object"
|
|
404
|
+
) {
|
|
405
|
+
return false;
|
|
406
|
+
}
|
|
407
|
+
const target = hostinger.vps[role];
|
|
408
|
+
if (target === null || typeof target !== "object") return false;
|
|
409
|
+
|
|
410
|
+
if (typeof target.id !== "string" || target.id !== options.get("--vps-id")) return false;
|
|
411
|
+
if (operation.startsWith("hostinger:ssh:")) {
|
|
412
|
+
return typeof target.host_key_sha256 === "string" && target.host_key_sha256 === options.get("--host-key-sha256");
|
|
413
|
+
}
|
|
414
|
+
return true;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
function terraformTargetMatches(contract, options, operation) {
|
|
418
|
+
const terraform = contract.terraform;
|
|
419
|
+
if (
|
|
420
|
+
terraform === null ||
|
|
421
|
+
typeof terraform !== "object" ||
|
|
422
|
+
!isStringArray(terraform.allowed_operations) ||
|
|
423
|
+
!terraform.allowed_operations.includes(operation)
|
|
424
|
+
) return false;
|
|
425
|
+
if (operation === "terraform:plan") return terraform.working_directory === options.get("--terraform-directory");
|
|
426
|
+
if (operation === "terraform:apply") {
|
|
427
|
+
const plan = terraform.plan;
|
|
428
|
+
return plan !== null && typeof plan === "object" && typeof plan.path === "string" && typeof plan.sha256 === "string" && typeof plan.policy_result_sha256 === "string" && plan.path === options.get("--plan-path") && plan.sha256 === options.get("--plan-sha256") && plan.policy_result_sha256 === options.get("--policy-result-sha256");
|
|
429
|
+
}
|
|
430
|
+
return terraform.import_targets !== null && typeof terraform.import_targets === "object" && terraform.import_targets[options.get("--resource-address")] === options.get("--resource-id");
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
function validateDirectCloudProviderMutation(command) {
|
|
434
|
+
if (command.includes(cloudRunnerScript)) return;
|
|
435
|
+
if (/\bterraform(?:\.exe)?\s+(?:apply|destroy|import)\b/i.test(command)) deny("Direct Terraform mutation is blocked; use the contract-bound cloud runner.");
|
|
436
|
+
if (/\b(?:wrangler|cloudflare|hostinger)(?:\.exe)?\b/i.test(command)) deny("Direct Cloudflare or Hostinger commands are blocked; use the contract-bound cloud runner.");
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
async function validateCloudRunner(command) {
|
|
440
|
+
const tokens = tokenizeLiteralCommand(command);
|
|
441
|
+
if (tokens === null || tokens.length < 2 || !/^(?:node|node\.exe)$/i.test(tokens[0]) || tokens[1] !== cloudRunnerScript) {
|
|
442
|
+
return false;
|
|
443
|
+
}
|
|
444
|
+
const options = optionMap(tokens.slice(2));
|
|
445
|
+
if (options === null) deny("Cloud runner requires literal, named arguments.");
|
|
446
|
+
const operation = options.get("--operation");
|
|
447
|
+
if (operation === "contract:derive") {
|
|
448
|
+
if (!requireExactOptions(options, new Set(["--operation", "--credentials-source"]), new Set(["--operation", "--credentials-source"]))) {
|
|
449
|
+
deny("Cloud contract derivation has unrecognized arguments.");
|
|
450
|
+
}
|
|
451
|
+
if (options.get("--credentials-source") !== "root") {
|
|
452
|
+
deny("Cloud contract derivation requires the selected root credential source.");
|
|
453
|
+
}
|
|
454
|
+
return true;
|
|
455
|
+
}
|
|
456
|
+
const provider = cloudOperationProviders.get(operation);
|
|
457
|
+
if (provider === undefined) deny("Cloud runner operation is unrecognized or destructive.");
|
|
458
|
+
const common = new Set(["--contract", "--operation", "--provider", "--account-id", "--credentials-source", "--zone-id", "--dns-record", "--vps-role", "--vps-id", "--host-key-sha256", "--terraform-directory", "--plan-path", "--plan-sha256", "--policy-result-sha256", "--resource-address", "--resource-id"]);
|
|
459
|
+
const baseRequired = provider === "terraform"
|
|
460
|
+
? new Set(["--contract", "--operation", "--credentials-source"])
|
|
461
|
+
: new Set(["--contract", "--operation", "--provider", "--account-id", "--credentials-source"]);
|
|
462
|
+
if (!requireExactOptions(options, common, baseRequired)) {
|
|
463
|
+
deny("Cloud runner invocation has unrecognized arguments.");
|
|
464
|
+
}
|
|
465
|
+
if ((provider !== "terraform" && options.get("--provider") !== provider) || !["root", "agents"].includes(options.get("--credentials-source"))) {
|
|
466
|
+
deny("Cloud runner provider or credential source is outside the approved contract.");
|
|
467
|
+
}
|
|
468
|
+
const contract = await readCloudContract(options);
|
|
469
|
+
const valid = provider === "cloudflare"
|
|
470
|
+
? requireExactOptions(options, common, new Set(["--contract", "--operation", "--provider", "--account-id", "--credentials-source", "--zone-id", "--dns-record"])) && cloudflareTargetMatches(contract, options, operation)
|
|
471
|
+
: provider === "hostinger"
|
|
472
|
+
? requireExactOptions(options, common, new Set(["--contract", "--operation", "--provider", "--account-id", "--credentials-source", "--vps-role"])) && hostingerTargetMatches(contract, options, operation)
|
|
473
|
+
: requireExactOptions(
|
|
474
|
+
options,
|
|
475
|
+
common,
|
|
476
|
+
operation === "terraform:plan"
|
|
477
|
+
? new Set(["--contract", "--operation", "--credentials-source", "--terraform-directory"])
|
|
478
|
+
: operation === "terraform:apply"
|
|
479
|
+
? new Set(["--contract", "--operation", "--credentials-source", "--plan-path", "--plan-sha256", "--policy-result-sha256"])
|
|
480
|
+
: new Set(["--contract", "--operation", "--credentials-source", "--resource-address", "--resource-id"]),
|
|
481
|
+
) && terraformTargetMatches(contract, options, operation);
|
|
482
|
+
if (!valid) deny("Cloud runner target, operation, or host identity is outside the approved contract.");
|
|
483
|
+
return true;
|
|
484
|
+
}
|
|
485
|
+
|
|
315
486
|
function tokenizeLiteralCommand(command) {
|
|
316
487
|
if (
|
|
317
488
|
command.includes("\r") ||
|
|
@@ -544,6 +715,8 @@ else {
|
|
|
544
715
|
validateExplicitFilesystemReferences(command, event.cwd);
|
|
545
716
|
validateInlineExecution(command);
|
|
546
717
|
validateGitPublication(command);
|
|
718
|
+
await validateCloudRunner(command);
|
|
719
|
+
validateDirectCloudProviderMutation(command);
|
|
547
720
|
validateExplicitNetwork(command);
|
|
548
721
|
await validateShellDeletion(command, event.cwd);
|
|
549
722
|
for (const entry of destructivePatterns) {
|
|
@@ -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,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"codex-pre-tool-hook-template.js","sourceRoot":"","sources":["../../src/services/codex-pre-tool-hook-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqtB5C,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CODEX_SUBAGENT_LIFECYCLE_HOOK = "import { existsSync } from \"node:fs\";\nimport { promises as fs } from \"node:fs\";\nimport { spawn } from \"node:child_process\";\nimport { dirname, relative, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst hookPath = fileURLToPath(import.meta.url);\nconst repositoryRoot = resolve(dirname(hookPath), \"..\", \"..\");\nconst diagnosticPath = resolve(\n repositoryRoot,\n \".agents\",\n \"local\",\n \"hooks\",\n \"subagent-lifecycle.ndjson\",\n);\n\nif (process.argv[2] === \"--capture-runner\") {\n await runCaptureRunner(process.argv[3], process.argv.slice(4));\n process.exit(0);\n}\n\nlet raw = \"\";\nfor await (const chunk of process.stdin) raw += chunk;\n\ntry {\n const event = JSON.parse(raw);\n const cwd = text(event.cwd);\n const scoped = cwd === null ? \"..\" : relative(repositoryRoot, resolve(cwd));\n if (cwd === null || scoped.startsWith(\"..\")) process.exit(0);\n const eventName = text(event.hook_event_name);\n const lifecycleEvent =\n eventName === \"SubagentStart\" ? \"start\" : eventName === \"SubagentStop\" ? \"stop\" : null;\n const session = text(event.session_id);\n const turn = text(event.turn_id);\n const agentId = text(event.agent_id);\n const agentType = text(event.agent_type);\n const model = text(event.model);\n const reasoningEffort = reasoningEffortValue(\n event.model_reasoning_effort ?? event.reasoning_effort,\n );\n const parentAgentId = text(event.parent_agent_id ?? event.parent_id);\n const parentRunId = text(event.parent_run_id ?? event.root_run_id);\n const status = terminalStatus(event.status);\n const required = [lifecycleEvent, session, turn, agentId, agentType];\n if (lifecycleEvent === null) {\n await diagnostic(\"ignored_unrecognized_event\", { eventName });\n process.exit(0);\n }\n const terminalFallback =\n lifecycleEvent === \"stop\" &&\n status !== null &&\n agentId !== null &&\n parentAgentId !== null &&\n parentRunId !== null &&\n (session === null || turn === null);\n if (\n (!terminalFallback && required.some((value) => value === null)) ||\n (lifecycleEvent === \"start\" && model === null)\n ) {\n await diagnostic(\"ignored_incomplete_event\", {\n eventName,\n session,\n turn,\n agentId,\n agentType,\n missing_model: lifecycleEvent === \"start\" && model === null,\n });\n process.exit(0);\n }\n const candidates = [\n resolve(repositoryRoot, \"packages\", \"cli\", \"dist\", \"index.js\"),\n resolve(repositoryRoot, \".agents\", \"runtime\", \"bin\", \"zaip.mjs\"),\n ];\n const cli = candidates.find(existsSync);\n if (cli === undefined) {\n await diagnostic(\"cli_not_found\", { eventName, candidates });\n process.exit(0);\n }\n const captureArguments = terminalFallback\n ? [\n \"subagent\",\n \"capture-terminal\",\n \"--parent-agent-id\",\n parentAgentId,\n \"--parent-run-id\",\n parentRunId,\n \"--agent-id\",\n agentId,\n \"--agent-type\",\n agentType,\n \"--status\",\n status,\n \"--json\",\n ]\n : [\n \"subagent\",\n \"capture\",\n \"--event\",\n lifecycleEvent,\n \"--session\",\n session,\n \"--turn\",\n turn,\n \"--agent-id\",\n agentId,\n \"--agent-type\",\n agentType,\n ...(model === null ? [] : [\"--model\", model]),\n ...(reasoningEffort === null ? [] : [\"--reasoning-effort\", reasoningEffort]),\n ...(parentAgentId === null ? [] : [\"--parent-agent-id\", parentAgentId]),\n ...(lifecycleEvent !== \"stop\" || status === null ? [] : [\"--status\", status]),\n \"--json\",\n ];\n const runner = spawn(\n process.execPath,\n [hookPath, \"--capture-runner\", cli, ...captureArguments],\n {\n cwd: repositoryRoot,\n detached: true,\n windowsHide: true,\n stdio: \"ignore\",\n },\n );\n runner.once(\"error\", (error) =>\n diagnostic(\"runner_spawn_failed\", { eventName, error: error.message }),\n );\n runner.unref();\n if (lifecycleEvent === \"start\") {\n process.stdout.write(JSON.stringify({\n hookSpecificOutput: {\n hookEventName: \"SubagentStart\",\n additionalContext:\n \"ZAIP delegation policy: work only as a cataloged zaip-agent-NOME identity. Delegation is recursive; do not use default, worker, explorer, or ad-hoc agent types.\",\n },\n }));\n }\n} catch (error) {\n await diagnostic(\"hook_exception\", {\n error: error instanceof Error ? error.message : String(error),\n });\n}\n\nasync function runCaptureRunner(cli, captureArguments) {\n try {\n if (typeof cli !== \"string\" || cli.length === 0) {\n await persistDiagnostic(\"runner_invalid_cli\", {});\n return;\n }\n const child = spawn(process.execPath, [cli, ...captureArguments], {\n cwd: repositoryRoot,\n windowsHide: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n let stdout = \"\";\n let stderr = \"\";\n child.stdout?.on(\"data\", (chunk) => {\n stdout = boundedText(stdout, chunk);\n });\n child.stderr?.on(\"data\", (chunk) => {\n stderr = boundedText(stderr, chunk);\n });\n const outcome = await new Promise((resolveOutcome) => {\n let settled = false;\n const finish = (value) => {\n if (settled) return;\n settled = true;\n clearTimeout(timeout);\n resolveOutcome(value);\n };\n const timeout = setTimeout(() => {\n child.kill();\n finish({ kind: \"timeout\" });\n }, 120_000);\n child.once(\"error\", (error) => finish({ kind: \"error\", error: error.message }));\n child.once(\"close\", (code, signal) => finish({ kind: \"close\", code, signal }));\n });\n if (outcome.kind === \"timeout\") {\n await persistDiagnostic(\"capture_timeout\", { captureArguments: safeIdentity(captureArguments) });\n } else if (outcome.kind === \"error\") {\n await persistDiagnostic(\"capture_spawn_failed\", { error: outcome.error });\n } else if (outcome.code !== 0) {\n await persistDiagnostic(\"capture_exit_nonzero\", {\n code: outcome.code,\n signal: outcome.signal,\n stderr,\n stdout,\n captureArguments: safeIdentity(captureArguments),\n });\n }\n } catch (error) {\n await persistDiagnostic(\"runner_exception\", {\n error: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nfunction safeIdentity(arguments_) {\n const value = (flag) => {\n const index = arguments_.indexOf(flag);\n return index < 0 ? null : text(arguments_[index + 1]);\n };\n return {\n event: value(\"--event\"),\n session: value(\"--session\"),\n turn: value(\"--turn\"),\n agent_id: value(\"--agent-id\"),\n agent_type: value(\"--agent-type\"),\n };\n}\n\nfunction boundedText(current, chunk) {\n return (current + String(chunk)).slice(-8_192);\n}\n\nasync function persistDiagnostic(code, detail) {\n const line = `${JSON.stringify({\n source: \"zaip-subagent-lifecycle-runner\",\n code,\n occurred_at: new Date().toISOString(),\n detail,\n })}\\n`;\n await fs.mkdir(dirname(diagnosticPath), { recursive: true });\n const size = await fs.stat(diagnosticPath).then((entry) => entry.size).catch(() => 0);\n if (size + Buffer.byteLength(line) > 262_144) {\n await fs.writeFile(diagnosticPath, \"\", \"utf8\");\n }\n await fs.appendFile(diagnosticPath, line, \"utf8\");\n}\n\nasync function diagnostic(code, detail) {\n await persistDiagnostic(code, detail);\n process.stderr.write(\n `${JSON.stringify({ source: \"zaip-subagent-lifecycle\", code, detail })}\\n`,\n );\n}\n\nfunction text(value) {\n if (typeof value !== \"string\") return null;\n const normalized = value.trim();\n return normalized.length > 0 && normalized.length <= 200 ? normalized : null;\n}\n\nfunction reasoningEffortValue(value) {\n const normalized = text(value);\n return [\"low\", \"medium\", \"high\", \"xhigh\"].includes(normalized) ? normalized : null;\n}\n\nfunction terminalStatus(value) {\n const normalized = text(value);\n return [\"completed\", \"failed\", \"cancelled\"].includes(normalized) ? normalized : null;\n}\n";
|
|
1
|
+
export declare const CODEX_SUBAGENT_LIFECYCLE_HOOK = "import { existsSync } from \"node:fs\";\nimport { promises as fs } from \"node:fs\";\nimport { spawn } from \"node:child_process\";\nimport { dirname, relative, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst hookPath = fileURLToPath(import.meta.url);\nconst repositoryRoot = resolve(dirname(hookPath), \"..\", \"..\");\nconst diagnosticPath = resolve(\n repositoryRoot,\n \".agents\",\n \"local\",\n \"hooks\",\n \"subagent-lifecycle.ndjson\",\n);\n\nif (process.argv[2] === \"--capture-runner\") {\n await runCaptureRunner(process.argv[3], process.argv.slice(4));\n process.exit(0);\n}\n\nlet raw = \"\";\nfor await (const chunk of process.stdin) raw += chunk;\n\ntry {\n const event = JSON.parse(raw);\n const cwd = text(event.cwd);\n const scoped = cwd === null ? \"..\" : relative(repositoryRoot, resolve(cwd));\n if (cwd === null || scoped.startsWith(\"..\")) process.exit(0);\n const eventName = text(event.hook_event_name);\n const lifecycleEvent =\n eventName === \"SubagentStart\" ? \"start\" : eventName === \"SubagentStop\" ? \"stop\" : null;\n const session = text(event.session_id);\n const turn = text(event.turn_id);\n const agentId = text(event.agent_id);\n const agentType = text(event.agent_type);\n const model = text(event.model);\n const reasoningEffort = reasoningEffortValue(\n event.model_reasoning_effort ?? event.reasoning_effort,\n );\n const parentAgentId = text(event.parent_agent_id ?? event.parent_id);\n const parentRunId = text(event.parent_run_id ?? event.root_run_id);\n const status = terminalStatus(event.status);\n const required = [lifecycleEvent, session, turn, agentId, agentType];\n if (lifecycleEvent === null) {\n await diagnostic(\"ignored_unrecognized_event\", { eventName });\n process.exit(0);\n }\n const terminalFallback =\n lifecycleEvent === \"stop\" &&\n status !== null &&\n agentId !== null &&\n parentAgentId !== null &&\n parentRunId !== null &&\n (session === null || turn === null);\n if (\n (!terminalFallback && required.some((value) => value === null)) ||\n (lifecycleEvent === \"start\" && model === null)\n ) {\n await diagnostic(\"ignored_incomplete_event\", {\n eventName,\n session,\n turn,\n agentId,\n agentType,\n missing_model: lifecycleEvent === \"start\" && model === null,\n });\n process.exit(0);\n }\n const candidates = [\n resolve(repositoryRoot, \"packages\", \"cli\", \"dist\", \"index.js\"),\n resolve(repositoryRoot, \".agents\", \"runtime\", \"bin\", \"zaip.mjs\"),\n ];\n const cli = candidates.find(existsSync);\n if (cli === undefined) {\n await diagnostic(\"cli_not_found\", { eventName, candidates });\n process.exit(0);\n }\n const captureArguments = terminalFallback\n ? [\n \"subagent\",\n \"capture-terminal\",\n \"--parent-agent-id\",\n parentAgentId,\n \"--parent-run-id\",\n parentRunId,\n \"--agent-id\",\n agentId,\n \"--agent-type\",\n agentType,\n \"--status\",\n status,\n \"--json\",\n ]\n : [\n \"subagent\",\n \"capture\",\n \"--event\",\n lifecycleEvent,\n \"--session\",\n session,\n \"--turn\",\n turn,\n \"--agent-id\",\n agentId,\n \"--agent-type\",\n agentType,\n ...(model === null ? [] : [\"--model\", model]),\n ...(reasoningEffort === null ? [] : [\"--reasoning-effort\", reasoningEffort]),\n ...(parentAgentId === null ? [] : [\"--parent-agent-id\", parentAgentId]),\n ...(lifecycleEvent !== \"stop\" || status === null ? [] : [\"--status\", status]),\n \"--json\",\n ];\n const runner = spawn(\n process.execPath,\n [hookPath, \"--capture-runner\", cli, ...captureArguments],\n {\n cwd: repositoryRoot,\n detached: true,\n windowsHide: true,\n stdio: \"ignore\",\n },\n );\n runner.once(\"error\", (error) =>\n diagnostic(\"runner_spawn_failed\", { eventName, error: error.message }),\n );\n runner.unref();\n if (lifecycleEvent === \"start\") {\n process.stdout.write(JSON.stringify({\n hookSpecificOutput: {\n hookEventName: \"SubagentStart\",\n additionalContext:\n \"ZAIP Codex delegation policy: a Sub-Run is only a native collaboration subagent. Do not use create_thread or fork_thread as a Sub-Run, fallback, retry, or delegation proof; those create independent chats and require an explicit user request. If native delegation is unavailable, report the limitation rather than create an independent chat. A catalog name, task_name, title, or prompt is not native ancestry. Before retrying the same bounded dispatch, await or reuse its pending native child; capture only ancestry observed from native host spawn/terminal results or SubagentStart/SubagentStop events, and work only as a cataloged zaip-agent-NOME identity. Delegation is recursive; do not use default, worker, explorer, or ad-hoc agent types.\",\n },\n }));\n }\n} catch (error) {\n await diagnostic(\"hook_exception\", {\n error: error instanceof Error ? error.message : String(error),\n });\n}\n\nasync function runCaptureRunner(cli, captureArguments) {\n try {\n if (typeof cli !== \"string\" || cli.length === 0) {\n await persistDiagnostic(\"runner_invalid_cli\", {});\n return;\n }\n const child = spawn(process.execPath, [cli, ...captureArguments], {\n cwd: repositoryRoot,\n windowsHide: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n let stdout = \"\";\n let stderr = \"\";\n child.stdout?.on(\"data\", (chunk) => {\n stdout = boundedText(stdout, chunk);\n });\n child.stderr?.on(\"data\", (chunk) => {\n stderr = boundedText(stderr, chunk);\n });\n const outcome = await new Promise((resolveOutcome) => {\n let settled = false;\n const finish = (value) => {\n if (settled) return;\n settled = true;\n clearTimeout(timeout);\n resolveOutcome(value);\n };\n const timeout = setTimeout(() => {\n child.kill();\n finish({ kind: \"timeout\" });\n }, 120_000);\n child.once(\"error\", (error) => finish({ kind: \"error\", error: error.message }));\n child.once(\"close\", (code, signal) => finish({ kind: \"close\", code, signal }));\n });\n if (outcome.kind === \"timeout\") {\n await persistDiagnostic(\"capture_timeout\", { captureArguments: safeIdentity(captureArguments) });\n } else if (outcome.kind === \"error\") {\n await persistDiagnostic(\"capture_spawn_failed\", { error: outcome.error });\n } else if (outcome.code !== 0) {\n await persistDiagnostic(\"capture_exit_nonzero\", {\n code: outcome.code,\n signal: outcome.signal,\n stderr,\n stdout,\n captureArguments: safeIdentity(captureArguments),\n });\n }\n } catch (error) {\n await persistDiagnostic(\"runner_exception\", {\n error: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nfunction safeIdentity(arguments_) {\n const value = (flag) => {\n const index = arguments_.indexOf(flag);\n return index < 0 ? null : text(arguments_[index + 1]);\n };\n return {\n event: value(\"--event\"),\n session: value(\"--session\"),\n turn: value(\"--turn\"),\n agent_id: value(\"--agent-id\"),\n agent_type: value(\"--agent-type\"),\n };\n}\n\nfunction boundedText(current, chunk) {\n return (current + String(chunk)).slice(-8_192);\n}\n\nasync function persistDiagnostic(code, detail) {\n const line = `${JSON.stringify({\n source: \"zaip-subagent-lifecycle-runner\",\n code,\n occurred_at: new Date().toISOString(),\n detail,\n })}\\n`;\n await fs.mkdir(dirname(diagnosticPath), { recursive: true });\n const size = await fs.stat(diagnosticPath).then((entry) => entry.size).catch(() => 0);\n if (size + Buffer.byteLength(line) > 262_144) {\n await fs.writeFile(diagnosticPath, \"\", \"utf8\");\n }\n await fs.appendFile(diagnosticPath, line, \"utf8\");\n}\n\nasync function diagnostic(code, detail) {\n await persistDiagnostic(code, detail);\n process.stderr.write(\n `${JSON.stringify({ source: \"zaip-subagent-lifecycle\", code, detail })}\\n`,\n );\n}\n\nfunction text(value) {\n if (typeof value !== \"string\") return null;\n const normalized = value.trim();\n return normalized.length > 0 && normalized.length <= 200 ? normalized : null;\n}\n\nfunction reasoningEffortValue(value) {\n const normalized = text(value);\n return [\"low\", \"medium\", \"high\", \"xhigh\"].includes(normalized) ? normalized : null;\n}\n\nfunction terminalStatus(value) {\n const normalized = text(value);\n return [\"completed\", \"failed\", \"cancelled\"].includes(normalized) ? normalized : null;\n}\n";
|
|
2
2
|
//# sourceMappingURL=codex-subagent-hook-template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-subagent-hook-template.d.ts","sourceRoot":"","sources":["../../src/services/codex-subagent-hook-template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"codex-subagent-hook-template.d.ts","sourceRoot":"","sources":["../../src/services/codex-subagent-hook-template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,kqRA2PzC,CAAC"}
|
|
@@ -130,7 +130,7 @@ try {
|
|
|
130
130
|
hookSpecificOutput: {
|
|
131
131
|
hookEventName: "SubagentStart",
|
|
132
132
|
additionalContext:
|
|
133
|
-
"ZAIP delegation policy: work only as a cataloged zaip-agent-NOME identity. Delegation is recursive; do not use default, worker, explorer, or ad-hoc agent types.",
|
|
133
|
+
"ZAIP Codex delegation policy: a Sub-Run is only a native collaboration subagent. Do not use create_thread or fork_thread as a Sub-Run, fallback, retry, or delegation proof; those create independent chats and require an explicit user request. If native delegation is unavailable, report the limitation rather than create an independent chat. A catalog name, task_name, title, or prompt is not native ancestry. Before retrying the same bounded dispatch, await or reuse its pending native child; capture only ancestry observed from native host spawn/terminal results or SubagentStart/SubagentStop events, and work only as a cataloged zaip-agent-NOME identity. Delegation is recursive; do not use default, worker, explorer, or ad-hoc agent types.",
|
|
134
134
|
},
|
|
135
135
|
}));
|
|
136
136
|
}
|
package/dist/services/doctor.js
CHANGED
|
@@ -75,8 +75,8 @@ export async function doctorProject(directory) {
|
|
|
75
75
|
const lock = await textOrNull(project.root, lockPath);
|
|
76
76
|
let managed = new Map();
|
|
77
77
|
if (lock !== null) {
|
|
78
|
-
if (!/^\s*version:\s*["']?
|
|
79
|
-
findings.push({ severity: "error", path: lockPath, message: "Layout version must be
|
|
78
|
+
if (!/^\s*version:\s*["']?3["']?\s*$/mu.test(section(lock, "layout"))) {
|
|
79
|
+
findings.push({ severity: "error", path: lockPath, message: "Layout version must be 3" });
|
|
80
80
|
}
|
|
81
81
|
managed = new Map(lockEntries(lock));
|
|
82
82
|
for (const [path, expected] of managed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-agents-template.d.ts","sourceRoot":"","sources":["../../src/services/install-agents-template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-agents-template.d.ts","sourceRoot":"","sources":["../../src/services/install-agents-template.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAuD3D,wBAAsB,qBAAqB,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8L1F"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { constants } from "node:fs";
|
|
2
|
-
import { access, chmod, cp, lstat, mkdir, readdir, readFile, writeFile } from "node:fs/promises";
|
|
3
|
-
import { basename, dirname, join, resolve } from "node:path";
|
|
2
|
+
import { access, chmod, cp, lstat, mkdir, readdir, readFile, rmdir, writeFile, } from "node:fs/promises";
|
|
3
|
+
import { basename, dirname, join, relative, resolve } from "node:path";
|
|
4
|
+
import { parse as parseYaml } from "yaml";
|
|
4
5
|
import { adapterFiles, isManagedAdapter } from "./adapters.js";
|
|
5
6
|
import { parsePublicAgentCatalog, publicAgentAdapterFiles, } from "./agent-adapters.js";
|
|
6
7
|
import { findProjectRoot } from "./find-project-root.js";
|
|
7
8
|
import { reconcileGlobalCodexConfig } from "./global-codex-config.js";
|
|
8
9
|
import { applyLegacyLocalStateMigration, planLegacyLocalStateMigration, } from "./local-state-migration.js";
|
|
9
10
|
import { loadTemplate, sha256, validateTemplatePath, } from "./template-manifest.js";
|
|
10
|
-
import { applyTransactionalChanges, assertSafeDestination } from "./transactional-files.js";
|
|
11
|
+
import { applyTransactionalChanges, assertSafeDestination, } from "./transactional-files.js";
|
|
11
12
|
const FLAT_FRAMEWORK_RULES = new Set([
|
|
12
13
|
".agents/rules/core.md",
|
|
13
14
|
".agents/rules/workflow.md",
|
|
@@ -24,6 +25,7 @@ const FLAT_FRAMEWORK_RULES = new Set([
|
|
|
24
25
|
".agents/rules/text-writing-utf8.md",
|
|
25
26
|
".agents/rules/.gitkeep",
|
|
26
27
|
]);
|
|
28
|
+
const STANDARD_ARCHITECTURE_PATH = ".agents/architecture/software-architecture.md";
|
|
27
29
|
export async function installAgentsTemplate(options = {}) {
|
|
28
30
|
const cwd = resolve(options.cwd ?? process.cwd());
|
|
29
31
|
const requested = resolve(cwd, options.directory ?? ".");
|
|
@@ -87,6 +89,14 @@ export async function installAgentsTemplate(options = {}) {
|
|
|
87
89
|
existing.push(file.path);
|
|
88
90
|
continue;
|
|
89
91
|
}
|
|
92
|
+
// The standard architecture establishes a starting point on a fresh install. Once a
|
|
93
|
+
// consumer changes it, it becomes consumer-owned and must survive upgrades, including
|
|
94
|
+
// a forced reconciliation of managed framework files.
|
|
95
|
+
if (file.path === STANDARD_ARCHITECTURE_PATH &&
|
|
96
|
+
currentManaged.get(file.path) !== sha256(current)) {
|
|
97
|
+
existing.push(file.path);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
90
100
|
if (sameContent(current, file.content)) {
|
|
91
101
|
existing.push(file.path);
|
|
92
102
|
continue;
|
|
@@ -129,6 +139,14 @@ export async function installAgentsTemplate(options = {}) {
|
|
|
129
139
|
conflicts.push(path);
|
|
130
140
|
ownershipConflicts.push(path);
|
|
131
141
|
}
|
|
142
|
+
const legacyRecordsMigration = await planV2RecordsMigration(project.root, currentLock);
|
|
143
|
+
writes.push(...legacyRecordsMigration.writes);
|
|
144
|
+
deletes.push(...legacyRecordsMigration.deletes);
|
|
145
|
+
created.push(...legacyRecordsMigration.created);
|
|
146
|
+
const frameworkLockWrite = writes.findIndex((file) => file.path === ".agents/config/framework.lock.yaml");
|
|
147
|
+
if (frameworkLockWrite >= 0) {
|
|
148
|
+
writes.push(writes.splice(frameworkLockWrite, 1)[0]);
|
|
149
|
+
}
|
|
132
150
|
const backupPath = options.force && currentFiles.size > 0
|
|
133
151
|
? await availableBackupPath(project.root, options.now)
|
|
134
152
|
: null;
|
|
@@ -146,7 +164,8 @@ export async function installAgentsTemplate(options = {}) {
|
|
|
146
164
|
if (backupPath !== null)
|
|
147
165
|
await createBackup(project.root, backupPath, currentFiles);
|
|
148
166
|
await applyLegacyLocalStateMigration(localStateMigration);
|
|
149
|
-
await applyTransactionalChanges(project.root, writes, deletes, options.failAfterWrites);
|
|
167
|
+
await applyTransactionalChanges(project.root, writes, deletes, options.failAfterWrites, legacyRecordsMigration.deletes.length > 0);
|
|
168
|
+
await removeEmptyLegacyDataDirectories(project.root, hasV2Layout(currentLock ?? ""));
|
|
150
169
|
await ensureUnixDashboardLaunchersExecutable(project.root);
|
|
151
170
|
const globalCodexConfig = !(options.installGlobalCodexConfig ?? options.templateDirectory === undefined) ||
|
|
152
171
|
agentCatalog === undefined
|
|
@@ -157,6 +176,108 @@ export async function installAgentsTemplate(options = {}) {
|
|
|
157
176
|
...(globalCodexConfig === undefined ? {} : { globalCodexConfig }),
|
|
158
177
|
};
|
|
159
178
|
}
|
|
179
|
+
async function planV2RecordsMigration(root, frameworkLock) {
|
|
180
|
+
if (frameworkLock === null || !hasV2Layout(frameworkLock))
|
|
181
|
+
return { writes: [], deletes: [], created: [] };
|
|
182
|
+
const legacyRoot = resolve(root, ".agents/data");
|
|
183
|
+
const legacyInfo = await lstat(legacyRoot).catch((error) => isNotFound(error) ? null : Promise.reject(error));
|
|
184
|
+
if (legacyInfo === null)
|
|
185
|
+
return { writes: [], deletes: [], created: [] };
|
|
186
|
+
if (legacyInfo.isSymbolicLink() || !legacyInfo.isDirectory())
|
|
187
|
+
throw new Error("Legacy .agents/data must be a real directory before migration");
|
|
188
|
+
const destinations = new Map();
|
|
189
|
+
const writes = [];
|
|
190
|
+
const deletes = [];
|
|
191
|
+
const created = [];
|
|
192
|
+
for (const source of await legacyDataFiles(legacyRoot, root)) {
|
|
193
|
+
const relativeSource = relative(root, source).replaceAll("\\", "/");
|
|
194
|
+
const content = await readFile(source);
|
|
195
|
+
if (/^\.agents\/data\/(?:prds|specs|changes|tasks|executions|runs)\/\.gitkeep$/.test(relativeSource) &&
|
|
196
|
+
content.byteLength === 0) {
|
|
197
|
+
deletes.push({ path: relativeSource, expectedContent: content });
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
const target = v3RecordPath(relativeSource);
|
|
201
|
+
const previous = destinations.get(target.toLowerCase());
|
|
202
|
+
if (previous !== undefined && !previous.equals(content))
|
|
203
|
+
throw new Error(`Legacy V2 records collide at ${target}`);
|
|
204
|
+
destinations.set(target.toLowerCase(), content);
|
|
205
|
+
const current = await readFile(resolve(root, target)).catch((error) => isNotFound(error) ? null : Promise.reject(error));
|
|
206
|
+
if (current !== null && !current.equals(content))
|
|
207
|
+
throw new Error(`Legacy V2 record conflicts with active record: ${target}`);
|
|
208
|
+
if (current === null && previous === undefined) {
|
|
209
|
+
writes.push({ path: target, content, kind: "template" });
|
|
210
|
+
created.push(target);
|
|
211
|
+
}
|
|
212
|
+
const archive = `.local/backups/zaip-layout-v2-to-v3/${relativeSource}`;
|
|
213
|
+
const archived = await readFile(resolve(root, archive)).catch((error) => isNotFound(error) ? null : Promise.reject(error));
|
|
214
|
+
if (archived !== null && !archived.equals(content))
|
|
215
|
+
throw new Error(`Legacy V2 archive conflicts with source: ${archive}`);
|
|
216
|
+
if (archived === null)
|
|
217
|
+
writes.push({ path: archive, content, kind: "template" });
|
|
218
|
+
deletes.push({ path: relativeSource, expectedContent: content });
|
|
219
|
+
}
|
|
220
|
+
return { writes, deletes, created };
|
|
221
|
+
}
|
|
222
|
+
function hasV2Layout(frameworkLock) {
|
|
223
|
+
const parsed = parseYaml(frameworkLock);
|
|
224
|
+
return (typeof parsed === "object" &&
|
|
225
|
+
parsed !== null &&
|
|
226
|
+
"layout" in parsed &&
|
|
227
|
+
typeof parsed.layout === "object" &&
|
|
228
|
+
parsed.layout !== null &&
|
|
229
|
+
"version" in parsed.layout &&
|
|
230
|
+
parsed.layout.version === 2);
|
|
231
|
+
}
|
|
232
|
+
async function legacyDataFiles(directory, root) {
|
|
233
|
+
const files = [];
|
|
234
|
+
for (const entry of await readdir(directory, { withFileTypes: true })) {
|
|
235
|
+
const path = join(directory, entry.name);
|
|
236
|
+
if (entry.isSymbolicLink())
|
|
237
|
+
throw new Error(`Legacy .agents/data contains a symlink: ${relative(root, path)}`);
|
|
238
|
+
if (entry.isDirectory())
|
|
239
|
+
files.push(...(await legacyDataFiles(path, root)));
|
|
240
|
+
else if (entry.isFile())
|
|
241
|
+
files.push(path);
|
|
242
|
+
else
|
|
243
|
+
throw new Error(`Unsupported legacy .agents/data entry: ${relative(root, path)}`);
|
|
244
|
+
}
|
|
245
|
+
return files.sort();
|
|
246
|
+
}
|
|
247
|
+
function v3RecordPath(path) {
|
|
248
|
+
const parts = path.split("/");
|
|
249
|
+
if (parts.length < 7 ||
|
|
250
|
+
parts[0] !== ".agents" ||
|
|
251
|
+
parts[1] !== "data" ||
|
|
252
|
+
!new Set(["prds", "specs", "changes", "tasks", "executions", "runs"]).has(parts[2] ?? "") ||
|
|
253
|
+
!/^\d{4}$/.test(parts[3] ?? "") ||
|
|
254
|
+
!/^\d{2}$/.test(parts[4] ?? "") ||
|
|
255
|
+
!/^\d{2}$/.test(parts[5] ?? ""))
|
|
256
|
+
throw new Error(`Unsupported legacy V2 record path: ${path}`);
|
|
257
|
+
return [".agents", "records", parts[2], parts[3], parts[4], ...parts.slice(6)].join("/");
|
|
258
|
+
}
|
|
259
|
+
async function removeEmptyLegacyDataDirectories(root, migrated) {
|
|
260
|
+
if (!migrated)
|
|
261
|
+
return;
|
|
262
|
+
await removeEmptyDirectory(resolve(root, ".agents/data"), root);
|
|
263
|
+
}
|
|
264
|
+
async function removeEmptyDirectory(directory, root) {
|
|
265
|
+
const info = await lstat(directory).catch((error) => isNotFound(error) ? null : Promise.reject(error));
|
|
266
|
+
if (info === null)
|
|
267
|
+
return;
|
|
268
|
+
if (info.isSymbolicLink() || !info.isDirectory())
|
|
269
|
+
throw new Error(`Legacy data cleanup found unsafe path: ${relative(root, directory)}`);
|
|
270
|
+
for (const entry of await readdir(directory, { withFileTypes: true })) {
|
|
271
|
+
if (!entry.isDirectory())
|
|
272
|
+
continue;
|
|
273
|
+
await removeEmptyDirectory(join(directory, entry.name), root);
|
|
274
|
+
}
|
|
275
|
+
await rmdir(directory).catch((error) => {
|
|
276
|
+
if (error instanceof Error && "code" in error && error.code === "ENOTEMPTY")
|
|
277
|
+
return;
|
|
278
|
+
throw error;
|
|
279
|
+
});
|
|
280
|
+
}
|
|
160
281
|
async function ensureUnixDashboardLaunchersExecutable(root) {
|
|
161
282
|
if (process.platform === "win32")
|
|
162
283
|
return;
|
|
@@ -199,7 +320,7 @@ function frameworkLock(files, frameworkVersion) {
|
|
|
199
320
|
` version: ${yamlString(frameworkVersion)}`,
|
|
200
321
|
" distribution_sha256: null",
|
|
201
322
|
"layout:",
|
|
202
|
-
" version:
|
|
323
|
+
" version: 3",
|
|
203
324
|
"resolved_profile:",
|
|
204
325
|
" id: zaip-aios-stack",
|
|
205
326
|
" sha256: null",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-agents-template.js","sourceRoot":"","sources":["../../src/services/install-agents-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAEL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,YAAY,EACZ,MAAM,EACN,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAQ5F,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,uBAAuB;IACvB,2BAA2B;IAC3B,+BAA+B;IAC/B,oCAAoC;IACpC,2BAA2B;IAC3B,0BAA0B;IAC1B,2CAA2C;IAC3C,4BAA4B;IAC5B,gCAAgC;IAChC,sCAAsC;IACtC,wCAAwC;IACxC,qCAAqC;IACrC,oCAAoC;IACpC,wBAAwB;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAO,GAAgB,EAAE;IACnE,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnF,MAAM,mBAAmB,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,MAAM,QAAQ,CAChC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,oCAAoC,CAAC,EAC3D,MAAM,CACP,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACzB,IAAI,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,cAAc,GAClB,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,sBAAsB,GAC1B,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAC1E,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,MAAM,QAAQ,GAAG;QACf,0FAA0F;QAC1F,6FAA6F;QAC7F,GAAG,cAAc,CACf,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EACtB,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAClC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzD,GAAG,IAAI;YACP,IAAI,EAAE,SAAkB;SACzB,CAAC,CAAC;QACH,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvC,GAAG,IAAI;YACP,IAAI,EAAE,SAAkB;SACzB,CAAC,CAAC;KACJ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,kBAAkB,GAAa,EAAE,CAAC;IACxC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE/C,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtE,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACnE,IAAI,UAAU,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACnC,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC;QAC1C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,kFAAkF;QAClF,+EAA+E;QAC/E,IAAI,IAAI,CAAC,IAAI,KAAK,6BAA6B,EAAE,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,MAAM,oBAAoB,GACxB,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACnF,MAAM,qBAAqB,GACzB,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;QAChF,MAAM,iBAAiB,GACrB,IAAI,CAAC,IAAI,KAAK,oCAAoC,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC;QAChF,IAAI,OAAO,CAAC,KAAK,IAAI,oBAAoB,IAAI,qBAAqB,IAAI,iBAAiB,EAAE,CAAC;YACxF,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACpE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC/D,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC9E,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,4EAA4E;QAC5E,4EAA4E;QAC5E,gBAAgB;QAChB,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QACxE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,UAAU,GACd,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC;QACpC,CAAC,CAAC,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;QACtD,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,OAAO,CAAC,MAAM,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChG,OAAO,MAAM,CACX,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,WAAW,EACX,UAAU,EACV,OAAO,CAAC,MAAM,IAAI,KAAK,EACvB,KAAK,CACN,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACjE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,CAC1C,iBAAiB,QAAQ,CAAC,UAAU,CAAC,wCAAwC,CAC9E,CAAC;QACF,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,UAAU,KAAK,IAAI;QAAE,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACpF,MAAM,8BAA8B,CAAC,mBAAmB,CAAC,CAAC;IAC1D,MAAM,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACxF,MAAM,sCAAsC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,iBAAiB,GACrB,CAAC,CAAC,OAAO,CAAC,wBAAwB,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,CAAC;QAC9E,YAAY,KAAK,SAAS;QACxB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,0BAA0B,CAC9B,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAClE,CAAC;IACR,OAAO;QACL,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC;QACtF,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,sCAAsC,CAAC,IAAY;IAChE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO;IACzC,KAAK,MAAM,IAAI,IAAI;QACjB,2CAA2C;QAC3C,8CAA8C;KAC/C,EAAE,CAAC;QACF,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAoC;IAEpC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,oCAAoC,CAAC,EAAE,OAAO,CAAC;IACjG,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClF,CAAC;AAED,SAAS,cAAc,CACrB,KAAoC,EACpC,WAAmB,EACnB,gBAAwB;IAExB,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAmB,KAAK;SACnC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,oCAAoC,CAAC;SACpE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EACL,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAC9B,CAAC,CAAC,IAAI,CAAC,OAAO;iBACT,UAAU,CAAC,kBAAkB,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;iBACvD,UAAU,CAAC,gBAAgB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC,OAAO;QAClB,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC,CAAC;IACN,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpF,QAAQ,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE,oCAAoC;QAC1C,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,gBAAgB,CAAC;QACjD,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,KAA8B,EAAE,gBAAwB;IAC7E,MAAM,KAAK,GAAG;QACZ,iBAAiB;QACjB,YAAY;QACZ,cAAc,UAAU,CAAC,gBAAgB,CAAC,EAAE;QAC5C,6BAA6B;QAC7B,SAAS;QACT,cAAc;QACd,mBAAmB;QACnB,uBAAuB;QACvB,gBAAgB;QAChB,gBAAgB;KACjB,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,SAAS,GAAG,IAAI,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,MAAM,YAAY,GAAG,6CAA6C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAK,YAAY,CAAC,CAAC,CAAY,EAAE,YAAY,CAAC,CAAC,CAAW,CAAC,CAAC;YACtF,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAC/C,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,OAAO,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAW,CAAC,CAAC;YAC5C,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAY;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACzF,IAAI,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACjC,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,KAAK,CAAC,IAAI,EAAE,CAAC;SAClD,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAY;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACzF,IAAI,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACjC,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC/D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,KAAK,CAAC,IAAI,EAAE,CAAC;SAC7C,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,IAAY,EACZ,UAAkB,EAClB,YAAyC;IAEzC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAClE,IAAI,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,IAAI,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC;QAC9B,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1F,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,SAAS;QAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,QAAyB;IAC7D,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjG,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE;IAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,kBAAkB,KAAK,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;IACvD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,UAAU,GAAG,IAAI;SACpB,SAAS,CAAC,MAAM,CAAC;SACjB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,UAAU,IAAI,cAAc,CAAC;AACtC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CACrB,GAAG,EAAE,CAAC,IAAI,EACV,CAAC,KAAc,EAAE,EAAE;QACjB,IAAI,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,MAAM,KAAK,CAAC;IACd,CAAC,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,MAAoB,EACpB,WAAmB,EACnB,QAAiD;IAEjD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAC7D,KAAK,IAAI,EAAE;QACT,OAAO,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC;YACnB,IAAI,IAAI,CAAC,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAM,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CACF,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC9E,CAAC;AAED,SAAS,MAAM,CACb,OAAgD,EAChD,OAA0B,EAC1B,QAA2B,EAC3B,SAA4B,EAC5B,WAA8B,EAC9B,UAAyB,EACzB,MAAe,EACf,OAAgB;IAEhB,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE;QAC5B,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE;QAC9B,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE;QAChC,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,EAAE;QACpC,UAAU;QACV,MAAM;QACN,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"install-agents-template.js","sourceRoot":"","sources":["../../src/services/install-agents-template.ts"],"names":[],"mappings":"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"}
|
package/dist/services/logger.js
CHANGED
|
@@ -34,7 +34,7 @@ export function printResult(stream, result, version, verbose = false) {
|
|
|
34
34
|
? "\nInstalação bloqueada antes de qualquer alteração. Resolva os conflitos ou use --force --yes após revisar o backup planejado.\n"
|
|
35
35
|
: result.dryRun
|
|
36
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. Execute o agente desejado\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, 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 a skill $github-deploy para validar e publicar quando solicitado; no ZAIP, use $zaip-skill-github-deploy.\n 4. Execute o agente desejado\n");
|
|
38
38
|
}
|
|
39
39
|
function printPaths(stream, label, paths) {
|
|
40
40
|
if (paths.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,WAAW,CACzB,MAAgB,EAChB,MAAkB,EAClB,OAAe,EACf,OAAO,GAAG,KAAK;IAEf,KAAK,CAAC,MAAM,EAAE,kBAAkB,OAAO,MAAM,CAAC,CAAC;IAC/C,KAAK,CACH,MAAM,EACN,MAAM,CAAC,YAAY;QACjB,CAAC,CAAC,6BAA6B,MAAM,CAAC,IAAI,IAAI;QAC9C,CAAC,CAAC,6CAA6C,MAAM,CAAC,IAAI,IAAI,CACjE,CAAC;IACF,KAAK,CAAC,MAAM,EAAE,+CAA+C,CAAC,CAAC;IAC/D,KAAK,CACH,MAAM,EACN,uMAAuM,CACxM,CAAC;IACF,IAAI,MAAM,CAAC,MAAM;QAAE,KAAK,CAAC,MAAM,EAAE,8CAA8C,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC/B,KAAK,CACH,MAAM,EACN,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBAAiB,KAAK,MAAM,CAAC,UAAU,IAAI,CACtF,CAAC;IACJ,CAAC;IACD,KAAK,CACH,MAAM,EACN,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,sBAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAC/G,CAAC;IACF,KAAK,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,0CAA0C,CAAC,CAAC;IACrF,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CACH,MAAM,EACN,KAAK,MAAM,CAAC,SAAS,CAAC,MAAM,gEAAgE,CAC7F,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CACH,MAAM,EACN,KAAK,MAAM,CAAC,WAAW,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,0BAA0B,CAClI,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACxC,KAAK,CACH,MAAM,EACN,MAAM,CAAC,SAAS;YACd,CAAC,CAAC,iDAAiD,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,oBAAoB,yBAAyB;YACvH,CAAC,CAAC,kEAAkE,MAAM,CAAC,IAAI,8KAA8K,MAAM,CAAC,KAAK,IAAI,CAChR,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACpD,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,CACH,MAAM,EACN,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;QAC9D,CAAC,CAAC,kIAAkI;QACpI,CAAC,CAAC,MAAM,CAAC,MAAM;YACb,CAAC,CAAC,qDAAqD;YACvD,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ describe("printResult", () => {
|
|
|
26
26
|
removedRegistrations: 0,
|
|
27
27
|
error: "access denied",
|
|
28
28
|
},
|
|
29
|
-
}, "
|
|
29
|
+
}, "2.0.0");
|
|
30
30
|
expect(text).toContain("C:/users/example/.codex/config.toml");
|
|
31
31
|
expect(text).toContain("Tente novamente");
|
|
32
32
|
expect(text).toContain("aliases codex_name obsoletos declarados no catálogo do projeto");
|
|
@@ -57,7 +57,7 @@ describe("printResult", () => {
|
|
|
57
57
|
removedRegistrations: 2,
|
|
58
58
|
error: null,
|
|
59
59
|
},
|
|
60
|
-
}, "
|
|
60
|
+
}, "2.0.0");
|
|
61
61
|
expect(text).toContain("Catálogo global legado do Codex reconciliado");
|
|
62
62
|
expect(text).toContain("2 registros removidos");
|
|
63
63
|
expect(text).not.toContain("instalado");
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { rename } from "node:fs/promises";
|
|
1
2
|
export type GitForWindowsRelease = {
|
|
2
3
|
tag: string;
|
|
3
4
|
name: string;
|
|
@@ -6,4 +7,6 @@ export type GitForWindowsRelease = {
|
|
|
6
7
|
};
|
|
7
8
|
export declare function resolveGitForWindowsRelease(value: unknown, arch?: NodeJS.Architecture): GitForWindowsRelease;
|
|
8
9
|
export declare function prepareStackGit(root: string, log: (message: string) => void): Promise<void>;
|
|
10
|
+
/** Retries only transient Windows directory-sharing failures during an atomic install. */
|
|
11
|
+
export declare function renameWithRetry(source: string, target: string, operation?: typeof rename, pause?: (milliseconds: number) => Promise<void>): Promise<void>;
|
|
9
12
|
//# sourceMappingURL=stack-git.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-git.d.ts","sourceRoot":"","sources":["../../src/services/stack-git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stack-git.d.ts","sourceRoot":"","sources":["../../src/services/stack-git.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAahF,MAAM,MAAM,oBAAoB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,EACd,IAAI,sBAAe,GAClB,oBAAoB,CAsBtB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEjG;AAKD,0FAA0F;AAC1F,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,OAAO,MAAe,EACjC,KAAK,GAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAS,GACrD,OAAO,CAAC,IAAI,CAAC,CAYf"}
|