@enterpriseai/cli 3.16.0 → 3.18.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.
@@ -0,0 +1,379 @@
1
+ import { execFile } from "node:child_process";
2
+ import { createHash } from "node:crypto";
3
+ import { access, lstat, readFile, realpath } from "node:fs/promises";
4
+ import { dirname, join, relative, resolve } from "node:path";
5
+ import { promisify } from "node:util";
6
+ import { findProjectRoot } from "./config.js";
7
+ const exec = promisify(execFile);
8
+ const MAX_DIFF_BYTES = 32_000;
9
+ const MAX_TOTAL_DIFF_BYTES = 512_000;
10
+ const MAX_TEXT_FILE_BYTES = 256_000;
11
+ const POLICIES = [
12
+ { id: "tooling", category: "tooling", purpose: "Merge required packages, scripts, compiler settings, and developer checks.", dependencies: [] },
13
+ { id: "platform-runtime", category: "runtime", purpose: "Configure the EAI application runtime, environment contract, and framework integration.", dependencies: ["tooling"] },
14
+ { id: "platform-sdk", category: "platform", purpose: "Provide typed EAI clients, errors, resource routing, and service modules.", dependencies: ["platform-runtime"] },
15
+ { id: "authentication-session", category: "authentication", purpose: "Connect EAI sign-in, server sessions, and protected access.", dependencies: ["platform-runtime", "platform-sdk"] },
16
+ { id: "public-api-bff", category: "platform", purpose: "Route authenticated server requests to EAI PublicAPI with tenant context.", dependencies: ["authentication-session", "platform-runtime", "platform-sdk"] },
17
+ { id: "tenant-data", category: "data", purpose: "Define tenant configuration, object types, storage, and typed resource access.", dependencies: ["platform-sdk", "public-api-bff"] },
18
+ { id: "workflow-runtime", category: "runtime", purpose: "Support generated workflows, submissions, documents, and assistant interactions.", dependencies: ["tenant-data", "public-api-bff"] },
19
+ { id: "readiness", category: "runtime", purpose: "Expose local and deployed checks for EAI runtime readiness.", dependencies: ["platform-runtime", "public-api-bff"] },
20
+ { id: "deployment", category: "deployment", purpose: "Describe and validate the portable EAI deployment contract.", dependencies: ["readiness"] },
21
+ { id: "presentation", category: "presentation", purpose: "Reference presentation patterns without replacing the existing experience.", dependencies: [] },
22
+ { id: "general", category: "general", purpose: "Review supporting template material that has no platform-specific classification.", dependencies: [] },
23
+ ];
24
+ async function exists(path) {
25
+ try {
26
+ await access(path);
27
+ return true;
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ }
33
+ async function nearestPackageRoot(from, boundary) {
34
+ let current = resolve(from);
35
+ const stop = boundary ? resolve(boundary) : resolve("/");
36
+ while (!boundary || current === stop || !relative(stop, current).startsWith("..")) {
37
+ if (await exists(join(current, "package.json")))
38
+ return current;
39
+ if (current === stop || current === dirname(current))
40
+ break;
41
+ current = dirname(current);
42
+ }
43
+ return null;
44
+ }
45
+ export async function resolveTemplateAssessmentRoot(from = process.cwd()) {
46
+ const canonicalFrom = await realpath(from);
47
+ const eaiRoot = await findProjectRoot(canonicalFrom);
48
+ if (eaiRoot)
49
+ return { root: await realpath(eaiRoot), kind: "eai-project" };
50
+ const gitRoot = await (async () => {
51
+ try {
52
+ const result = await exec("git", ["-C", canonicalFrom, "rev-parse", "--show-toplevel"]);
53
+ return await realpath(result.stdout.trim());
54
+ }
55
+ catch {
56
+ return null;
57
+ }
58
+ })();
59
+ if (gitRoot) {
60
+ const packageRoot = await nearestPackageRoot(canonicalFrom, gitRoot);
61
+ return packageRoot
62
+ ? { root: await realpath(packageRoot), kind: "git-package" }
63
+ : { root: gitRoot, kind: "git-repository" };
64
+ }
65
+ const packageRoot = await nearestPackageRoot(canonicalFrom);
66
+ return packageRoot
67
+ ? { root: await realpath(packageRoot), kind: "package" }
68
+ : null;
69
+ }
70
+ function sha256(contents) {
71
+ return createHash("sha256").update(contents).digest("hex");
72
+ }
73
+ function isPresentationPath(path) {
74
+ if (/^(?:src\/)?app\/api\//.test(path))
75
+ return false;
76
+ return (/^(?:src\/)?components\//.test(path) ||
77
+ /^(?:src\/)?app\/(?:.*\/)?(?:page|layout)\.(?:tsx?|jsx?)$/.test(path) ||
78
+ /\.(?:css|scss|sass|less)$/.test(path) ||
79
+ /^(?:public|assets)\//.test(path) ||
80
+ /favicon\./.test(path));
81
+ }
82
+ function policyForPath(path) {
83
+ const find = (id) => POLICIES.find((item) => item.id === id);
84
+ if (isPresentationPath(path))
85
+ return find("presentation");
86
+ if (/^(?:eai\.runtime\.json|next\.config\.|\.env\.example)/.test(path))
87
+ return find("platform-runtime");
88
+ if (/^(?:src\/)?auth\.ts$|^src\/app\/api\/auth\/|session-resolve|middleware\.ts$/.test(path))
89
+ return find("authentication-session");
90
+ if (/^src\/app\/api\/eai\/\[\[\.\.\.rest\]\]|publicapi-|api-helpers/.test(path))
91
+ return find("public-api-bff");
92
+ if (/^packages\/platform-sdk\//.test(path))
93
+ return find("platform-sdk");
94
+ if (/^src\/eai\.config\/|use(?:Resources|Documents|Chat)|seed-object-types|storage-provisioning|schema-provenance/.test(path))
95
+ return find("tenant-data");
96
+ if (/generated-workflow|workflow-(?:assistant|submissions)/.test(path))
97
+ return find("workflow-runtime");
98
+ if (/readiness|(?:^|\/)health\//.test(path))
99
+ return find("readiness");
100
+ if (/^\.github\/workflows\/eai-app\.yml$|deployment-contract|source-unknown-deployment|^eai\.runtime\.json$/.test(path))
101
+ return find("deployment");
102
+ if (/^(?:package(?:-lock)?\.json|tsconfig\.json|next\.config\.|eslint\.config\.|jest\.|playwright\.|run\.)/.test(path))
103
+ return find("tooling");
104
+ return find("general");
105
+ }
106
+ function roleForPath(path, policy) {
107
+ if (policy.category === "presentation")
108
+ return "presentation";
109
+ if (/\.(?:test|spec)\.|^tests\//.test(path))
110
+ return "test";
111
+ if (/^(?:README|docs\/)|\.md$/.test(path))
112
+ return "documentation";
113
+ if (/config|package|runtime|\.ya?ml$|\.json$/.test(path))
114
+ return "configuration";
115
+ return "integration";
116
+ }
117
+ function decisionFor(item, policy, preserveUi, frameworkCompatible) {
118
+ if (item.state === "unchanged")
119
+ return "already-present";
120
+ if (item.state === "blocked-symlink")
121
+ return "blocked";
122
+ if (policy.category === "presentation" && preserveUi)
123
+ return "preserve-existing";
124
+ if (!frameworkCompatible &&
125
+ !["presentation", "tooling", "general"].includes(policy.category))
126
+ return "blocked";
127
+ if (item.state === "missing" && !["tooling", "data", "deployment"].includes(policy.category))
128
+ return "safe-add";
129
+ return "semantic-merge";
130
+ }
131
+ function instructionsFor(item, policy, decision) {
132
+ if (decision === "preserve-existing") {
133
+ return [
134
+ "Keep the repository's layout, styles, tokens, content, components, and interaction patterns.",
135
+ "Use this template file only as a behavior reference. Connect EAI through existing UI boundaries.",
136
+ ];
137
+ }
138
+ if (decision === "blocked") {
139
+ return item.state === "blocked-symlink"
140
+ ? [
141
+ "Inspect this symbolic link and its target before planning any adoption.",
142
+ "Do not read, replace, or follow a path that can escape the assessed repository.",
143
+ ]
144
+ : [
145
+ "Do not copy this Next.js implementation into an incompatible framework.",
146
+ "Design a framework-native adapter that satisfies the same EAI capability contract.",
147
+ ];
148
+ }
149
+ if (decision === "safe-add") {
150
+ return [
151
+ "Add this nonvisual integration file with its companion capability prerequisites.",
152
+ "Resolve route, import, and framework collisions before committing the addition.",
153
+ ];
154
+ }
155
+ if (decision === "semantic-merge") {
156
+ return [
157
+ "Merge the required keys and behavior into the existing file. Do not replace the whole file.",
158
+ policy.category === "authentication"
159
+ ? "Preserve any stricter existing access and session rules."
160
+ : "Preserve project-specific configuration and unrelated behavior.",
161
+ ];
162
+ }
163
+ return ["No file change is required. Verify that the existing behavior still satisfies the capability contract."];
164
+ }
165
+ async function boundedDiff(projectPath, templatePath, relativePath, state, remainingBudget, allowContent) {
166
+ if (state === "unchanged")
167
+ return { kind: "none", truncated: false };
168
+ if (state === "blocked-symlink")
169
+ return { kind: "none", truncated: false };
170
+ if (remainingBudget <= 0)
171
+ return { kind: "omitted-budget", truncated: true };
172
+ if (!allowContent)
173
+ return { kind: "omitted-untrusted-source", truncated: false };
174
+ const template = await readFile(templatePath);
175
+ const project = state === "missing" ? Buffer.alloc(0) : await readFile(projectPath);
176
+ if (template.includes(0) || project.includes(0))
177
+ return { kind: "omitted-binary", truncated: false };
178
+ if (template.byteLength > MAX_TEXT_FILE_BYTES || project.byteLength > MAX_TEXT_FILE_BYTES) {
179
+ return { kind: "omitted-size", truncated: false };
180
+ }
181
+ let text;
182
+ if (state === "missing") {
183
+ const lines = template.toString("utf-8").split("\n");
184
+ text = [`--- a/${relativePath}`, `+++ b/${relativePath}`, `@@ -0,0 +1,${lines.length} @@`, ...lines.map((line) => `+${line}`)].join("\n");
185
+ }
186
+ else {
187
+ try {
188
+ await exec("git", ["diff", "--no-index", "--no-ext-diff", "--unified=3", "--", projectPath, templatePath], { maxBuffer: 2_000_000 });
189
+ text = "";
190
+ }
191
+ catch (error) {
192
+ const stdout = typeof error === "object" && error && "stdout" in error ? String(error.stdout) : "";
193
+ const hunk = stdout.indexOf("@@");
194
+ const proposedLines = hunk >= 0
195
+ ? stdout.slice(hunk).split("\n").filter((line) => line.startsWith("@@") || (line.startsWith("+") && !line.startsWith("+++")))
196
+ : [];
197
+ text = [`--- existing/${relativePath} (contents withheld)`, `+++ template/${relativePath}`, ...proposedLines].join("\n").trimEnd();
198
+ }
199
+ }
200
+ const encoded = Buffer.from(text, "utf-8");
201
+ const limit = Math.min(MAX_DIFF_BYTES, remainingBudget);
202
+ const truncated = encoded.byteLength > limit;
203
+ return {
204
+ kind: "unified",
205
+ text: truncated ? encoded.subarray(0, limit).toString("utf-8") : text,
206
+ truncated,
207
+ };
208
+ }
209
+ async function readPackage(path) {
210
+ try {
211
+ if ((await lstat(path)).isSymbolicLink())
212
+ return null;
213
+ return JSON.parse(await readFile(path, "utf-8"));
214
+ }
215
+ catch {
216
+ return null;
217
+ }
218
+ }
219
+ async function inventoryRepository(root) {
220
+ const pkg = await readPackage(join(root, "package.json"));
221
+ const dependencies = { ...pkg?.dependencies, ...pkg?.devDependencies };
222
+ const frameworks = ["next", "react", "vue", "nuxt", "svelte", "@angular/core"].filter((name) => dependencies[name]);
223
+ const designSystems = ["tailwindcss", "@mui/material", "@chakra-ui/react", "antd", "shadcn"].filter((name) => dependencies[name]);
224
+ const uiRoots = (await Promise.all(["src/app", "app", "src/components", "components", "src/pages", "pages"].map(async (path) => (await exists(join(root, path)) ? path : null)))).filter((path) => Boolean(path));
225
+ let packageManager = pkg?.packageManager?.split("@")[0] ?? null;
226
+ if (!packageManager) {
227
+ if (await exists(join(root, "pnpm-lock.yaml")))
228
+ packageManager = "pnpm";
229
+ else if (await exists(join(root, "yarn.lock")))
230
+ packageManager = "yarn";
231
+ else if (await exists(join(root, "package-lock.json")))
232
+ packageManager = "npm";
233
+ }
234
+ const git = await (async () => {
235
+ try {
236
+ const head = (await exec("git", ["-C", root, "rev-parse", "HEAD"])).stdout.trim();
237
+ const dirty = Boolean((await exec("git", ["-C", root, "status", "--porcelain"])).stdout.trim());
238
+ return { head, dirty };
239
+ }
240
+ catch {
241
+ return { head: null, dirty: null };
242
+ }
243
+ })();
244
+ return {
245
+ frameworks,
246
+ packageManager,
247
+ scripts: Object.keys(pkg?.scripts ?? {}).sort(),
248
+ designSystems,
249
+ uiRoots,
250
+ git,
251
+ };
252
+ }
253
+ function validationFor(policy, scripts, packageManager) {
254
+ const validations = [];
255
+ const runner = packageManager === "pnpm" ? "pnpm" : packageManager === "yarn" ? "yarn" : "npm run";
256
+ if (scripts.includes("typecheck"))
257
+ validations.push({ command: `${runner} typecheck`, purpose: "Check merged types and server/client boundaries." });
258
+ if (scripts.includes("test"))
259
+ validations.push({ command: `${runner} test`, purpose: `Verify the ${policy.id} behavior and existing regressions.` });
260
+ if (scripts.includes("build"))
261
+ validations.push({ command: `${runner} build`, purpose: "Verify the production application build." });
262
+ return validations;
263
+ }
264
+ function safeTemplateIdentifier(source) {
265
+ try {
266
+ const parsed = new URL(source);
267
+ if (parsed.protocol !== "https:" && parsed.protocol !== "http:")
268
+ return "custom-template-source";
269
+ parsed.username = "";
270
+ parsed.password = "";
271
+ parsed.search = "";
272
+ parsed.hash = "";
273
+ return parsed.toString();
274
+ }
275
+ catch {
276
+ return "custom-template-source";
277
+ }
278
+ }
279
+ export async function buildTemplateAiPlan(options) {
280
+ const inventory = await inventoryRepository(options.assessment.root);
281
+ const allowTemplateContent = /^https:\/\/github\.com\/eai-support\/eai-app-template(?:\.git)?\/?$/.test(options.templateRepo);
282
+ const frameworkCompatible = options.assessment.kind === "eai-project" || inventory.frameworks.includes("next");
283
+ const grouped = new Map();
284
+ let remainingDiffBudget = MAX_TOTAL_DIFF_BYTES;
285
+ for (const item of [...options.items].sort((left, right) => left.relativePath.localeCompare(right.relativePath))) {
286
+ const policy = policyForPath(item.relativePath);
287
+ const decision = decisionFor(item, policy, options.preserveUi, frameworkCompatible);
288
+ const templatePath = join(options.templateRoot, item.relativePath);
289
+ const projectPath = join(options.assessment.root, item.relativePath);
290
+ const templateContents = await readFile(templatePath);
291
+ const projectContents = item.state === "missing" || item.state === "blocked-symlink"
292
+ ? null
293
+ : await readFile(projectPath);
294
+ const diff = await boundedDiff(projectPath, templatePath, item.relativePath, item.state, remainingDiffBudget, allowTemplateContent);
295
+ remainingDiffBudget -= Buffer.byteLength(diff.text ?? "", "utf-8");
296
+ const operation = {
297
+ path: item.relativePath,
298
+ state: item.state,
299
+ decision,
300
+ fileRole: roleForPath(item.relativePath, policy),
301
+ confidence: "medium",
302
+ risk: policy.category === "presentation" || policy.category === "authentication" ? "high" : decision === "safe-add" ? "low" : "medium",
303
+ purpose: policy.purpose,
304
+ instructions: instructionsFor(item, policy, decision),
305
+ companions: policy.dependencies,
306
+ projectSha256: projectContents ? sha256(projectContents) : null,
307
+ templateSha256: sha256(templateContents),
308
+ diff,
309
+ };
310
+ grouped.set(policy.id, [...(grouped.get(policy.id) ?? []), operation]);
311
+ }
312
+ const capabilities = POLICIES
313
+ .filter((policy) => grouped.has(policy.id))
314
+ .map((policy) => ({
315
+ id: policy.id,
316
+ category: policy.category,
317
+ purpose: policy.purpose,
318
+ dependencies: policy.dependencies,
319
+ operations: grouped.get(policy.id),
320
+ validation: validationFor(policy, inventory.scripts, inventory.packageManager),
321
+ }));
322
+ const summary = {
323
+ "safe-add": 0,
324
+ "semantic-merge": 0,
325
+ "preserve-existing": 0,
326
+ "already-present": 0,
327
+ "blocked": 0,
328
+ };
329
+ for (const capability of capabilities) {
330
+ for (const operation of capability.operations)
331
+ summary[operation.decision] += 1;
332
+ }
333
+ const activeCapabilities = capabilities.filter((capability) => capability.id !== "presentation");
334
+ return {
335
+ schemaVersion: "eai.template-ai-plan.v1",
336
+ mode: "ai-plan",
337
+ generatedAt: new Date().toISOString(),
338
+ readOnly: true,
339
+ policy: {
340
+ preserveUi: options.preserveUi,
341
+ allowAutomaticWrites: false,
342
+ rules: [
343
+ "Keep existing layout, styles, design tokens, content, components, and interaction patterns.",
344
+ "Use template presentation files as references only when UI preservation is active.",
345
+ "Add platform capabilities in dependency order and validate after each capability.",
346
+ "Do not copy secrets or environment values from either repository.",
347
+ "Require human review before any repository write.",
348
+ ],
349
+ },
350
+ project: {
351
+ root: ".",
352
+ kind: options.assessment.kind,
353
+ provenance: options.provenance,
354
+ inventory,
355
+ },
356
+ template: {
357
+ repo: safeTemplateIdentifier(options.templateRepo),
358
+ ref: options.templateRef,
359
+ commit: options.templateCommit,
360
+ policySource: "cli-built-in-v1",
361
+ },
362
+ summary,
363
+ capabilities,
364
+ safeguards: [
365
+ "This plan is advisory and read-only.",
366
+ "Bounded diffs omit binary files and text files larger than 256 KiB.",
367
+ "The total emitted diff budget is 512 KiB. Hashes remain available when later diffs are omitted.",
368
+ "A safe-add decision still requires its listed capability dependencies and repository validation.",
369
+ "Authentication changes must preserve stricter existing access controls.",
370
+ "Stored EAI object-type slugs remain authoritative and must not be regenerated from display names.",
371
+ ],
372
+ nextSteps: activeCapabilities.map((capability, index) => ({
373
+ order: index + 1,
374
+ capabilityId: capability.id,
375
+ action: `Review ${capability.id} operations, satisfy ${capability.dependencies.length ? capability.dependencies.join(", ") : "repository prerequisites"}, then run the listed validation.`,
376
+ })),
377
+ };
378
+ }
379
+ //# sourceMappingURL=template-ai-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-ai-plan.js","sourceRoot":"","sources":["../../src/lib/template-ai-plan.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  export type ProjectMaintenanceMode = "check" | "apply";
2
2
  export interface ProjectUpdateMaintenanceOptions {
3
3
  readonly mode: ProjectMaintenanceMode;
4
- readonly offerTemplateCheck?: boolean;
5
4
  readonly runTemplateCheck?: () => Promise<boolean>;
6
5
  }
7
6
  export interface ProjectUpdateMaintenanceResult {
@@ -1 +1 @@
1
- {"version":3,"file":"update-maintenance.d.ts","sourceRoot":"","sources":["../../src/lib/update-maintenance.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAChE,QAAQ,CAAC,QAAQ,EACb,SAAS,GACT,SAAS,GACT,oBAAoB,GACpB,eAAe,GACf,WAAW,CAAC;CACjB;AAkJD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,8BAA8B,CAAC,CA4DzC;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAmB9E;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,6BAA6B,CAc/B;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAehF"}
1
+ {"version":3,"file":"update-maintenance.d.ts","sourceRoot":"","sources":["../../src/lib/update-maintenance.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAChE,QAAQ,CAAC,QAAQ,EACb,SAAS,GACT,SAAS,GACT,oBAAoB,GACpB,eAAe,GACf,WAAW,CAAC;CACjB;AAoID,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,8BAA8B,CAAC,CAwDzC;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAmB9E;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,6BAA6B,CAc/B;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAehF"}
@@ -1,18 +1,12 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import process from "node:process";
3
3
  import chalk from "chalk";
4
- import inquirer from "inquirer";
5
4
  import { findProjectRoot } from "./config.js";
6
5
  import { applyGoferRefresh, planGoferRefresh } from "./gofer-refresh.js";
7
6
  import { resolveProjectManifest } from "./project-manifest.js";
8
7
  import * as out from "./output.js";
9
8
  import { isDefaultTemplateSource, resolveTemplateClonePlan } from "../commands/init.js";
10
9
  const DEFAULT_TEMPLATE_SOURCE = "https://github.com/eai-support/eai-app-template.git";
11
- function isInteractiveTerminal() {
12
- return Boolean(process.stdin.isTTY &&
13
- process.stdout.isTTY &&
14
- !process.env["CI"]);
15
- }
16
10
  function hasGoferWork(summary) {
17
11
  return (summary.added > 0 ||
18
12
  summary.updated > 0 ||
@@ -42,23 +36,18 @@ function describeTemplateSnapshot(template) {
42
36
  }
43
37
  return template.repo || "unknown";
44
38
  }
45
- async function maybeOfferTemplateCheck(options) {
46
- if (!options.offerTemplateCheck || !options.runTemplateCheck || !isInteractiveTerminal()) {
39
+ async function runAutomaticTemplateCheck(options) {
40
+ if (!options.runTemplateCheck) {
47
41
  return;
48
42
  }
49
- const { runTemplateCheck } = await inquirer.prompt([
50
- {
51
- type: "confirm",
52
- name: "runTemplateCheck",
53
- message: "Run `eai template check` now to review app-template drift?",
54
- default: true,
55
- },
56
- ]);
57
- if (runTemplateCheck) {
58
- await options.runTemplateCheck();
43
+ out.blank();
44
+ out.info("Running the read-only app-template drift check...");
45
+ const succeeded = await options.runTemplateCheck();
46
+ if (!succeeded) {
47
+ out.warn("The automatic template check could not complete. Gofer maintenance succeeded; run `eai template check` to retry the read-only review.");
59
48
  }
60
49
  }
61
- async function renderTemplateStatus(projectRoot, options) {
50
+ async function renderTemplateStatus(projectRoot) {
62
51
  const resolvedManifest = await resolveProjectManifest(projectRoot);
63
52
  const manifest = resolvedManifest.manifest;
64
53
  if (!manifest?.template) {
@@ -87,7 +76,6 @@ async function renderTemplateStatus(projectRoot, options) {
87
76
  out.warn(`App-template snapshot has changed since this project was initialized: ${projectTemplateLabel} -> ${bundledTemplateLabel}`);
88
77
  out.info("Template and UI files are not auto-merged into existing apps. Review the diff before copying anything.");
89
78
  out.dim(` Review: ${chalk.cyan("eai template check")}`);
90
- await maybeOfferTemplateCheck(options);
91
79
  return "review-recommended";
92
80
  }
93
81
  if (!manifest.template.commit || !bundledTemplate.pinnedCommit) {
@@ -124,28 +112,26 @@ export async function runProjectUpdateMaintenance(options) {
124
112
  else {
125
113
  out.success("Gofer-managed assets are already up to date.");
126
114
  }
127
- const template = await renderTemplateStatus(projectRoot, options);
115
+ const template = await renderTemplateStatus(projectRoot);
128
116
  return {
129
117
  projectRoot,
130
118
  gofer: hasGoferWork(plan.summary) || plan.firstRefresh ? "checked" : "current",
131
119
  template,
132
120
  };
133
121
  }
134
- const applyResult = await applyGoferRefresh(plan, { force: false });
122
+ const applyResult = await applyGoferRefresh(plan, { force: true });
135
123
  if (hasGoferWork(applyResult.summary) || plan.firstRefresh) {
136
124
  out.success("Gofer-managed assets refreshed.");
137
125
  renderGoferSummary(applyResult.summary);
138
126
  if (applyResult.backupDirectory) {
139
127
  out.info(`Backup directory: ${applyResult.backupDirectory}`);
140
128
  }
141
- if (applyResult.summary.conflicted > 0) {
142
- out.warn("Some managed files were left untouched because they have local edits. Re-run `eai gofer refresh --force` only after reviewing the backups.");
143
- }
144
129
  }
145
130
  else {
146
131
  out.success("Gofer-managed assets are already up to date.");
147
132
  }
148
- const template = await renderTemplateStatus(projectRoot, options);
133
+ const template = await renderTemplateStatus(projectRoot);
134
+ await runAutomaticTemplateCheck(options);
149
135
  return {
150
136
  projectRoot,
151
137
  gofer: "refreshed",
@@ -1 +1 @@
1
- {"version":3,"file":"update-maintenance.js","sourceRoot":"","sources":["../../src/lib/update-maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAExF,MAAM,uBAAuB,GAC3B,qDAAqD,CAAC;AAqBxD,SAAS,qBAAqB;IAC5B,OAAO,OAAO,CACZ,OAAO,CAAC,KAAK,CAAC,KAAK;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK;QACpB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CACrB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAKrB;IACC,OAAO,CACL,OAAO,CAAC,KAAK,GAAG,CAAC;QACjB,OAAO,CAAC,OAAO,GAAG,CAAC;QACnB,OAAO,CAAC,OAAO,GAAG,CAAC;QACnB,OAAO,CAAC,UAAU,GAAG,CAAC,CACvB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAO3B;IACC,GAAG,CAAC,KAAK,CAAC;QACR,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YACpC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAqB,CAAC;YAC7D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;YACnC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAqB,CAAC;YAC5D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,QAIjC;IACC,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,aAAa,CAAC;IAChC,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,OAAO,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,OAAwC;IAExC,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QACzF,OAAO;IACT,CAAC;IAED,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACjD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,4DAA4D;YACrE,OAAO,EAAE,IAAI;SACd;KACF,CAAmC,CAAC;IAErC,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,WAAmB,EACnB,OAAwC;IAExC,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAE3C,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CACN,2JAA2J,CAC5J,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,eAAe,GAAG,wBAAwB,CAAC,uBAAuB,CAAC,CAAC;IAC1E,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;QACpD,IAAI,EAAE,eAAe,CAAC,WAAW;QACjC,MAAM,EAAE,eAAe,CAAC,YAAY;QACpC,aAAa,EAAE,eAAe,CAAC,aAAa;KAC7C,CAAC,CAAC;IAEH,IACE,QAAQ,CAAC,QAAQ,CAAC,IAAI;QACtB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChD,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe,CAAC,WAAW,EACtD,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,4BAA4B,oBAAoB,EAAE,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,qCAAqC,oBAAoB,EAAE,CAAC,CAAC;QACtE,GAAG,CAAC,IAAI,CACN,4FAA4F,CAC7F,CAAC;QACF,GAAG,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACzD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IACE,QAAQ,CAAC,QAAQ,CAAC,MAAM;QACxB,eAAe,CAAC,YAAY;QAC5B,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,eAAe,CAAC,YAAY,EACzD,CAAC;QACD,GAAG,CAAC,IAAI,CACN,yEAAyE,oBAAoB,OAAO,oBAAoB,EAAE,CAC3H,CAAC;QACF,GAAG,CAAC,IAAI,CACN,wGAAwG,CACzG,CAAC;QACF,GAAG,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QAC/D,GAAG,CAAC,IAAI,CACN,sBAAsB,oBAAoB,SAAS,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,qCAAqC,CACzH,CAAC;QACF,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,iCAAiC,oBAAoB,EAAE,CAAC,CAAC;IACrE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAwC;IAExC,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QACvF,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,SAAS;SACpB,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnC,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAEvD,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,QAAQ,EAAE;QAC1E,eAAe,EAAE,cAAc;KAChC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACtD,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO;YACL,WAAW;YACX,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC9E,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,IAAI,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QAC/C,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,qBAAqB,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CACN,4IAA4I,CAC7I,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClE,OAAO;QACL,WAAW;QACX,KAAK,EAAE,WAAW;QAClB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAuB;IAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE;YACtD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,kBAAkB,EAAE,GAAG;aACxB;SACF,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,UAAU,kCAAkC,CAChD,IAAuB,EACvB,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAC5C,KAAK,EAAE,KAAK;SACb,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACf,KAAK,EAAE,KAAK;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAuB;IAC5D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,kCAAkC,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;YAC/C,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,kBAAkB,EAAE,GAAG;aACxB;SACF,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"update-maintenance.js","sourceRoot":"","sources":["../../src/lib/update-maintenance.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enterpriseai/cli",
3
- "version": "3.16.0",
3
+ "version": "3.18.0",
4
4
  "description": "EnterpriseAI CLI for app setup, validation, deployment readiness, and platform operations",
5
5
  "type": "module",
6
6
  "bin": {
@@ -7,8 +7,8 @@
7
7
  },
8
8
  "appTemplate": {
9
9
  "repo": "https://github.com/eai-support/eai-app-template.git",
10
- "version": "v1.0.0",
11
- "commit": "4ba8f8041d25646b96281f36f67a07d9884c486a",
10
+ "version": "v1.0.2",
11
+ "commit": "6e80fa365f8b880e1c4a813ff505916096144aee",
12
12
  "packageLockSha256": "53bcca84143b94ade17d39416b699b21defbbedf9f5c7c962c4706bf95b33b3b",
13
13
  "enterpriseRegistry": "https://enterpriseaigroup.github.io/enterpriseai-packages/registry",
14
14
  "enterprisePackageFingerprint": "3286fdf91d6a25a55a4d84de21bf5c592bcf11abffb96dc2be90e93414eeb646",