gitops-ai 1.2.0 → 1.2.2

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,255 @@
1
+ /**
2
+ * Kubernetes API access via @kubernetes/client-node
3
+ */
4
+ import { Buffer } from "node:buffer";
5
+ import { Writable } from "node:stream";
6
+ import * as k8s from "@kubernetes/client-node";
7
+ export const FLUX_SYSTEM_NS = "flux-system";
8
+ export const FLUX_INSTANCE_GROUP = "fluxcd.controlplane.io";
9
+ export const FLUX_INSTANCE_VERSION = "v1";
10
+ export const FLUX_INSTANCE_PLURAL = "fluxinstances";
11
+ function sleep(ms) {
12
+ return new Promise((r) => setTimeout(r, ms));
13
+ }
14
+ export function kubeConfigFromDefault() {
15
+ const kc = new k8s.KubeConfig();
16
+ kc.loadFromDefault();
17
+ return kc;
18
+ }
19
+ export function makeClients(kc) {
20
+ return {
21
+ core: kc.makeApiClient(k8s.CoreV1Api),
22
+ apps: kc.makeApiClient(k8s.AppsV1Api),
23
+ custom: kc.makeApiClient(k8s.CustomObjectsApi),
24
+ };
25
+ }
26
+ export async function isClusterReachableApi(kc) {
27
+ try {
28
+ const { core } = makeClients(kc);
29
+ await core.listNamespace({ limit: 1 });
30
+ return true;
31
+ }
32
+ catch {
33
+ return false;
34
+ }
35
+ }
36
+ export async function waitForAllNodesReady(kc, timeoutMs) {
37
+ const { core } = makeClients(kc);
38
+ const deadline = Date.now() + timeoutMs;
39
+ while (Date.now() < deadline) {
40
+ const list = await core.listNode();
41
+ const items = list.items ?? [];
42
+ if (items.length > 0) {
43
+ const allReady = items.every((n) => n.status?.conditions?.some((c) => c.type === "Ready" && c.status === "True"));
44
+ if (allReady)
45
+ return;
46
+ }
47
+ await sleep(2000);
48
+ }
49
+ throw new Error(`Timed out after ${timeoutMs}ms waiting for all nodes to be Ready`);
50
+ }
51
+ export async function createNamespaceApi(kc, name) {
52
+ const { core } = makeClients(kc);
53
+ try {
54
+ await core.createNamespace({
55
+ body: { metadata: { name } },
56
+ });
57
+ }
58
+ catch (e) {
59
+ const code = e?.code
60
+ ?? e?.body?.code;
61
+ if (code === 409)
62
+ return;
63
+ throw e;
64
+ }
65
+ }
66
+ export async function createSecretLiteralsApi(kc, name, namespace, data) {
67
+ const { core } = makeClients(kc);
68
+ const body = {
69
+ metadata: { name, namespace },
70
+ stringData: data,
71
+ };
72
+ try {
73
+ await core.createNamespacedSecret({ namespace, body });
74
+ }
75
+ catch (e) {
76
+ const code = e?.code;
77
+ if (code === 409) {
78
+ await core.deleteNamespacedSecret({ name, namespace });
79
+ await core.createNamespacedSecret({ namespace, body });
80
+ return;
81
+ }
82
+ throw e;
83
+ }
84
+ }
85
+ export async function secretExistsApi(kc, name, namespace) {
86
+ const { core } = makeClients(kc);
87
+ try {
88
+ await core.readNamespacedSecret({ name, namespace });
89
+ return true;
90
+ }
91
+ catch {
92
+ return false;
93
+ }
94
+ }
95
+ export async function deleteSecretApi(kc, name, namespace) {
96
+ const { core } = makeClients(kc);
97
+ try {
98
+ await core.deleteNamespacedSecret({ name, namespace });
99
+ }
100
+ catch (e) {
101
+ const code = e?.code;
102
+ if (code === 404)
103
+ return;
104
+ throw e;
105
+ }
106
+ }
107
+ export async function createSecretFromFilesApi(kc, name, namespace, files) {
108
+ const fs = await import("node:fs");
109
+ const stringData = {};
110
+ for (const [key, path] of Object.entries(files)) {
111
+ stringData[key] = fs.readFileSync(path, "utf-8");
112
+ }
113
+ await createSecretLiteralsApi(kc, name, namespace, stringData);
114
+ }
115
+ async function podNameForDeployment(kc, namespace, deploymentName) {
116
+ const { apps, core } = makeClients(kc);
117
+ const dep = await apps.readNamespacedDeployment({
118
+ name: deploymentName,
119
+ namespace,
120
+ });
121
+ const match = dep.spec?.selector?.matchLabels;
122
+ if (!match || Object.keys(match).length === 0)
123
+ return null;
124
+ const labelSelector = Object.entries(match)
125
+ .map(([k, v]) => `${k}=${String(v)}`)
126
+ .join(",");
127
+ const pods = await core.listNamespacedPod({ namespace, labelSelector });
128
+ const pick = pods.items?.find((p) => p.status?.phase === "Running") ?? pods.items?.[0];
129
+ return pick?.metadata?.name ?? null;
130
+ }
131
+ function statusExitCode(status) {
132
+ if (status.status === "Success")
133
+ return 0;
134
+ const c = status.code;
135
+ return typeof c === "number" ? c : 1;
136
+ }
137
+ /**
138
+ * Run a command in a pod (by deployment name). Returns captured stdout/stderr.
139
+ */
140
+ export async function execInDeploymentContainer(kc, namespace, deploymentName, containerName, command) {
141
+ const podName = await podNameForDeployment(kc, namespace, deploymentName);
142
+ if (!podName) {
143
+ throw new Error(`No pod found for Deployment ${namespace}/${deploymentName}`);
144
+ }
145
+ const execApi = new k8s.Exec(kc);
146
+ const stdoutChunks = [];
147
+ const stderrChunks = [];
148
+ const stdout = new Writable({
149
+ write(chunk, _enc, cb) {
150
+ stdoutChunks.push(Buffer.from(chunk));
151
+ cb();
152
+ },
153
+ });
154
+ const stderr = new Writable({
155
+ write(chunk, _enc, cb) {
156
+ stderrChunks.push(Buffer.from(chunk));
157
+ cb();
158
+ },
159
+ });
160
+ let exitCode = 0;
161
+ await new Promise((resolve, reject) => {
162
+ execApi
163
+ .exec(namespace, podName, containerName, command, stdout, stderr, null, false, (status) => {
164
+ exitCode = statusExitCode(status);
165
+ resolve();
166
+ })
167
+ .catch(reject);
168
+ });
169
+ return {
170
+ stdout: Buffer.concat(stdoutChunks).toString("utf8"),
171
+ stderr: Buffer.concat(stderrChunks).toString("utf8"),
172
+ exitCode,
173
+ };
174
+ }
175
+ /**
176
+ * Stream exec to process stdout/stderr (for interactive listing).
177
+ */
178
+ export async function execInDeploymentContainerTty(kc, namespace, deploymentName, containerName, command) {
179
+ const podName = await podNameForDeployment(kc, namespace, deploymentName);
180
+ if (!podName) {
181
+ throw new Error(`No pod found for Deployment ${namespace}/${deploymentName}`);
182
+ }
183
+ const execApi = new k8s.Exec(kc);
184
+ let exitCode = 0;
185
+ await new Promise((resolve, reject) => {
186
+ execApi
187
+ .exec(namespace, podName, containerName, command, process.stdout, process.stderr, null, false, (status) => {
188
+ exitCode = statusExitCode(status);
189
+ resolve();
190
+ })
191
+ .catch(reject);
192
+ });
193
+ return exitCode;
194
+ }
195
+ export async function listPodsStatusLines(kc, namespace) {
196
+ const { core } = makeClients(kc);
197
+ const list = await core.listNamespacedPod({ namespace });
198
+ const lines = [];
199
+ for (const pod of list.items ?? []) {
200
+ const name = pod.metadata?.name ?? "?";
201
+ const phase = pod.status?.phase ?? "?";
202
+ const ready = pod.status?.conditions?.find((c) => c.type === "Ready")?.status ===
203
+ "True";
204
+ lines.push(`${name}\t${phase}\t${ready ? "True" : "False"}`);
205
+ }
206
+ return lines.join("\n");
207
+ }
208
+ function fluxInstanceReady(obj) {
209
+ const o = obj;
210
+ return (o.status?.conditions?.some((c) => c.type === "Ready" && c.status === "True") ?? false);
211
+ }
212
+ export async function waitForFluxInstanceReady(kc, timeoutMs) {
213
+ const { custom } = makeClients(kc);
214
+ const deadline = Date.now() + timeoutMs;
215
+ while (Date.now() < deadline) {
216
+ const obj = await custom.getNamespacedCustomObject({
217
+ group: FLUX_INSTANCE_GROUP,
218
+ version: FLUX_INSTANCE_VERSION,
219
+ namespace: FLUX_SYSTEM_NS,
220
+ plural: FLUX_INSTANCE_PLURAL,
221
+ name: "flux",
222
+ });
223
+ if (fluxInstanceReady(obj))
224
+ return;
225
+ await sleep(2000);
226
+ }
227
+ throw new Error(`Timed out after ${timeoutMs}ms waiting for FluxInstance flux to be Ready`);
228
+ }
229
+ export async function reconcileFluxInstance(kc, timeoutMs) {
230
+ const { custom } = makeClients(kc);
231
+ const ts = Math.floor(Date.now() / 1000);
232
+ const existing = await custom.getNamespacedCustomObject({
233
+ group: FLUX_INSTANCE_GROUP,
234
+ version: FLUX_INSTANCE_VERSION,
235
+ namespace: FLUX_SYSTEM_NS,
236
+ plural: FLUX_INSTANCE_PLURAL,
237
+ name: "flux",
238
+ });
239
+ const merged = existing;
240
+ const meta = (merged.metadata ?? {});
241
+ const ann = (meta.annotations ?? {});
242
+ ann["reconcile.fluxcd.io/requestedAt"] = String(ts);
243
+ meta.annotations = ann;
244
+ merged.metadata = meta;
245
+ await custom.replaceNamespacedCustomObject({
246
+ group: FLUX_INSTANCE_GROUP,
247
+ version: FLUX_INSTANCE_VERSION,
248
+ namespace: FLUX_SYSTEM_NS,
249
+ plural: FLUX_INSTANCE_PLURAL,
250
+ name: "flux",
251
+ body: merged,
252
+ });
253
+ await waitForFluxInstanceReady(kc, timeoutMs);
254
+ }
255
+ //# sourceMappingURL=k8s-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"k8s-api.js","sourceRoot":"","sources":["../../src/core/k8s-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAG/C,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAC5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAEpD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;IAChC,EAAE,CAAC,eAAe,EAAE,CAAC;IACrB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAkB;IAC5C,OAAO;QACL,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;QACrC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;QACrC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAAkB;IAC5D,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,EAAkB,EAClB,SAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CACjD,CACF,CAAC;YACF,IAAI,QAAQ;gBAAE,OAAO;QACvB,CAAC;QACD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,sCAAsC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAkB,EAClB,IAAY;IAEZ,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,eAAe,CAAC;YACzB,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,GAAI,CAAiD,EAAE,IAAI;eAC/D,CAAkC,EAAE,IAAI,EAAE,IAAI,CAAC;QACrD,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO;QACzB,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,EAAkB,EAClB,IAAY,EACZ,SAAiB,EACjB,IAA4B;IAE5B,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,GAAa;QACrB,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC7B,UAAU,EAAE,IAAI;KACjB,CAAC;IACF,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,GAAI,CAAuB,EAAE,IAAI,CAAC;QAC5C,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAkB,EAClB,IAAY,EACZ,SAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAkB,EAClB,IAAY,EACZ,SAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,GAAI,CAAuB,EAAE,IAAI,CAAC;QAC5C,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO;QACzB,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,EAAkB,EAClB,IAAY,EACZ,SAAiB,EACjB,KAA6B;IAE7B,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,uBAAuB,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,EAAkB,EAClB,SAAiB,EACjB,cAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC;QAC9C,IAAI,EAAE,cAAc;QACpB,SAAS;KACV,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;IAC9C,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;IACxE,MAAM,IAAI,GACR,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC;AACtC,CAAC;AAED,SAAS,cAAc,CAAC,MAAgB;IACtC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;IACtB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,EAAkB,EAClB,SAAiB,EACjB,cAAsB,EACtB,aAAqB,EACrB,OAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,+BAA+B,SAAS,IAAI,cAAc,EAAE,CAC7D,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;QAC1B,KAAK,CAAC,KAAsB,EAAE,IAAI,EAAE,EAAE;YACpC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,EAAE,EAAE,CAAC;QACP,CAAC;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;QAC1B,KAAK,CAAC,KAAsB,EAAE,IAAI,EAAE,EAAE;YACpC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,EAAE,EAAE,CAAC;QACP,CAAC;KACF,CAAC,CAAC;IACH,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,OAAO;aACJ,IAAI,CACH,SAAS,EACT,OAAO,EACP,aAAa,EACb,OAAO,EACP,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,CAAC,MAAgB,EAAE,EAAE;YACnB,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC,CACF;aACA,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpD,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,EAAkB,EAClB,SAAiB,EACjB,cAAsB,EACtB,aAAqB,EACrB,OAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,+BAA+B,SAAS,IAAI,cAAc,EAAE,CAC7D,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,OAAO;aACJ,IAAI,CACH,SAAS,EACT,OAAO,EACP,aAAa,EACb,OAAO,EACP,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,EACd,IAAI,EACJ,KAAK,EACL,CAAC,MAAgB,EAAE,EAAE;YACnB,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC,CACF;aACA,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAkB,EAClB,SAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,GAAG,CAAC;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,GAAG,CAAC;QACvC,MAAM,KAAK,GACT,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,MAAM;YAC/D,MAAM,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,MAAM,CAAC,GAAG,GAET,CAAC;IACF,OAAO,CACL,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CACjD,IAAI,KAAK,CACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,EAAkB,EAClB,SAAiB;IAEjB,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC;YACjD,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,qBAAqB;YAC9B,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,IAAI,iBAAiB,CAAC,GAAG,CAAC;YAAE,OAAO;QACnC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,KAAK,CACb,mBAAmB,SAAS,8CAA8C,CAC3E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAAkB,EAClB,SAAiB;IAEjB,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC;QACtD,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EAAE,qBAAqB;QAC9B,SAAS,EAAE,cAAc;QACzB,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,QAAmC,CAAC;IACnD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;IAChE,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAA2B,CAAC;IAC/D,GAAG,CAAC,iCAAiC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;IACvB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,MAAM,MAAM,CAAC,6BAA6B,CAAC;QACzC,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EAAE,qBAAqB;QAC9B,SAAS,EAAE,cAAc;QACzB,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IACH,MAAM,wBAAwB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAChD,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare function isClusterReachable(): boolean;
1
+ export declare function isClusterReachable(): Promise<boolean>;
2
2
  export interface ExistingCluster {
3
3
  type: "k3d" | "k3s";
4
4
  names: string[];
@@ -13,7 +13,7 @@ export declare function setupKubeconfig(clusterName: string): string;
13
13
  export declare function waitForCluster(): Promise<void>;
14
14
  export declare function createNamespace(name: string): Promise<void>;
15
15
  export declare function createSecret(name: string, namespace: string, data: Record<string, string>): Promise<void>;
16
- export declare function secretExists(name: string, namespace: string): boolean;
16
+ export declare function secretExists(name: string, namespace: string): Promise<boolean>;
17
17
  export declare function deleteSecret(name: string, namespace: string): Promise<void>;
18
18
  export declare function createSecretFromFile(name: string, namespace: string, key: string, filePath: string): Promise<void>;
19
19
  export declare function createSshSecret(name: string, namespace: string, privateKey: string, publicKey: string, knownHosts: string): Promise<void>;
@@ -1,11 +1,13 @@
1
- import { mkdirSync, writeFileSync, rmSync } from "node:fs";
1
+ import { mkdirSync, writeFileSync, rmSync, mkdtempSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
2
4
  import { exec, execAsync, execSafe } from "../utils/shell.js";
3
5
  import { isMacOS, isCI } from "../utils/platform.js";
4
6
  import { log, withSpinner } from "../utils/log.js";
5
7
  import { KUBERNETES_VERSION } from "../schemas.js";
6
- export function isClusterReachable() {
7
- const { exitCode } = execSafe("kubectl cluster-info 2>/dev/null");
8
- return exitCode === 0;
8
+ import * as k8sApi from "./k8s-api.js";
9
+ export async function isClusterReachable() {
10
+ return k8sApi.isClusterReachableApi(k8sApi.kubeConfigFromDefault());
9
11
  }
10
12
  export function detectExistingClusters() {
11
13
  if (isMacOS() || isCI()) {
@@ -81,48 +83,42 @@ export function setupKubeconfig(clusterName) {
81
83
  export async function waitForCluster() {
82
84
  await withSpinner("Waiting for cluster to be ready", async () => {
83
85
  await new Promise((r) => setTimeout(r, 5000));
84
- await execAsync("kubectl wait --for=condition=Ready node --all --timeout=120s");
86
+ const kc = k8sApi.kubeConfigFromDefault();
87
+ await k8sApi.waitForAllNodesReady(kc, 120_000);
85
88
  });
86
89
  }
87
90
  export async function createNamespace(name) {
88
- await execAsync(`kubectl create namespace ${name} --dry-run=client -o yaml | kubectl apply -f -`);
91
+ await k8sApi.createNamespaceApi(k8sApi.kubeConfigFromDefault(), name);
89
92
  }
90
93
  export async function createSecret(name, namespace, data) {
91
- const literals = Object.entries(data)
92
- .map(([k, v]) => `--from-literal=${k}='${v}'`)
93
- .join(" ");
94
- const cmd = `kubectl create secret generic ${name} --namespace=${namespace} ${literals}`;
95
- log.detail(`kubectl create secret generic ${name} --namespace=${namespace}`);
96
- await execAsync(cmd);
94
+ log.detail(`create secret ${name} --namespace=${namespace}`);
95
+ await k8sApi.createSecretLiteralsApi(k8sApi.kubeConfigFromDefault(), name, namespace, data);
97
96
  }
98
- export function secretExists(name, namespace) {
99
- const { exitCode } = execSafe(`kubectl get secret ${name} -n ${namespace} 2>/dev/null`);
100
- return exitCode === 0;
97
+ export async function secretExists(name, namespace) {
98
+ return k8sApi.secretExistsApi(k8sApi.kubeConfigFromDefault(), name, namespace);
101
99
  }
102
100
  export async function deleteSecret(name, namespace) {
103
- await execAsync(`kubectl delete secret ${name} -n ${namespace}`);
101
+ await k8sApi.deleteSecretApi(k8sApi.kubeConfigFromDefault(), name, namespace);
104
102
  }
105
103
  export async function createSecretFromFile(name, namespace, key, filePath) {
106
- const cmd = `kubectl create secret generic ${name} --namespace=${namespace} --from-file=${key}="${filePath}"`;
107
- log.detail(`kubectl create secret generic ${name} --namespace=${namespace} --from-file=${key}`);
108
- await execAsync(cmd);
104
+ log.detail(`create secret generic ${name} --namespace=${namespace} --from-file=${key}`);
105
+ await k8sApi.createSecretFromFilesApi(k8sApi.kubeConfigFromDefault(), name, namespace, { [key]: filePath });
109
106
  }
110
107
  export async function createSshSecret(name, namespace, privateKey, publicKey, knownHosts) {
111
- const tmpDir = "/tmp/flux-ssh-secret";
112
- mkdirSync(tmpDir, { recursive: true });
108
+ const tmpDir = mkdtempSync(join(tmpdir(), "flux-ssh-"));
113
109
  try {
114
- writeFileSync(`${tmpDir}/identity`, privateKey, { mode: 0o600 });
115
- writeFileSync(`${tmpDir}/identity.pub`, publicKey);
116
- writeFileSync(`${tmpDir}/known_hosts`, knownHosts);
117
- const cmd = [
118
- `kubectl create secret generic ${name}`,
119
- `--namespace=${namespace}`,
120
- `--from-file=identity="${tmpDir}/identity"`,
121
- `--from-file=identity.pub="${tmpDir}/identity.pub"`,
122
- `--from-file=known_hosts="${tmpDir}/known_hosts"`,
123
- ].join(" ");
124
- log.detail(`kubectl create secret generic ${name} --namespace=${namespace} (SSH)`);
125
- await execAsync(cmd);
110
+ const identity = join(tmpDir, "identity");
111
+ const identityPub = join(tmpDir, "identity.pub");
112
+ const knownHostsPath = join(tmpDir, "known_hosts");
113
+ writeFileSync(identity, privateKey, { mode: 0o600 });
114
+ writeFileSync(identityPub, publicKey);
115
+ writeFileSync(knownHostsPath, knownHosts);
116
+ log.detail(`create secret generic ${name} --namespace=${namespace} (SSH)`);
117
+ await k8sApi.createSecretFromFilesApi(k8sApi.kubeConfigFromDefault(), name, namespace, {
118
+ identity,
119
+ "identity.pub": identityPub,
120
+ known_hosts: knownHostsPath,
121
+ });
126
122
  }
127
123
  finally {
128
124
  rmSync(tmpDir, { recursive: true, force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"kubernetes.js","sourceRoot":"","sources":["../../src/core/kubernetes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kubernetes.js","sourceRoot":"","sources":["../../src/core/kubernetes.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- /** HTTPS URL for the canonical GitOps template (GitLab). */
2
- export declare const UPSTREAM_GIT_URL = "https://gitlab.com/everythings-gonna-be-alright/fluxcd_ai_template.git";
1
+ /** HTTPS URL for the canonical GitOps template on GitHub. */
2
+ export declare const UPSTREAM_GIT_URL = "https://github.com/GitOpsAI/gitops-ai-template.git";
3
3
  export declare function readPackageVersion(): string;
4
4
  /**
5
5
  * Read `version:` from repo-root template-sync-metadata.yaml if present (template semver).
@@ -3,10 +3,10 @@ import { dirname, join } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { log, withSpinner } from "../utils/log.js";
5
5
  import { execAsync, execSafe } from "../utils/shell.js";
6
- import { SOURCE_GITLAB_HOST, SOURCE_PROJECT_PATH, } from "../schemas.js";
6
+ import { SOURCE_TEMPLATE_HOST, SOURCE_PROJECT_PATH, } from "../schemas.js";
7
7
  const __dirname = dirname(fileURLToPath(import.meta.url));
8
- /** HTTPS URL for the canonical GitOps template (GitLab). */
9
- export const UPSTREAM_GIT_URL = `https://${SOURCE_GITLAB_HOST}/${SOURCE_PROJECT_PATH}.git`;
8
+ /** HTTPS URL for the canonical GitOps template on GitHub. */
9
+ export const UPSTREAM_GIT_URL = `https://${SOURCE_TEMPLATE_HOST}/${SOURCE_PROJECT_PATH}.git`;
10
10
  export function readPackageVersion() {
11
11
  try {
12
12
  const pkgPath = join(__dirname, "..", "..", "package.json");
@@ -65,10 +65,16 @@ function unrelatedHistoryHint(repoRoot) {
65
65
  // Fetch upstream tags (shared between bootstrap wizard and sync TUI)
66
66
  // ---------------------------------------------------------------------------
67
67
  export async function fetchTemplateTags() {
68
- const encoded = encodeURIComponent(SOURCE_PROJECT_PATH);
69
- const url = `https://${SOURCE_GITLAB_HOST}/api/v4/projects/${encoded}/repository/tags?per_page=50&order_by=version&sort=desc`;
68
+ const url = `https://api.github.com/repos/${SOURCE_PROJECT_PATH}/tags?per_page=100`;
69
+ const headers = {
70
+ Accept: "application/vnd.github+json",
71
+ "X-GitHub-Api-Version": "2022-11-28",
72
+ };
73
+ const token = process.env.GITHUB_TOKEN ?? process.env.GH_TOKEN;
74
+ if (token)
75
+ headers.Authorization = `Bearer ${token}`;
70
76
  try {
71
- const res = await fetch(url);
77
+ const res = await fetch(url, { headers });
72
78
  if (!res.ok)
73
79
  return [];
74
80
  const tags = (await res.json());
@@ -109,7 +115,7 @@ export async function fetchUpstream(repoRoot, remoteName, ref) {
109
115
  });
110
116
  }
111
117
  const HIGH_TOUCH_PATTERNS = [
112
- /^flux-instance-values\.yaml$/,
118
+ /^flux-instance\.yaml$/,
113
119
  /^\.sops\.yaml$/,
114
120
  /secret-.*\.yaml$/,
115
121
  /cluster-sync\.yaml$/,
@@ -234,7 +240,7 @@ export async function mergeUpstreamTemplate(options) {
234
240
  return;
235
241
  }
236
242
  if (!hasCommonAncestor(repoRoot) && !allowUnrelatedHistories) {
237
- throw new Error("No common Git ancestor with the upstream template on GitLab. " +
243
+ throw new Error("No common Git ancestor with the upstream template on GitHub. " +
238
244
  unrelatedHistoryHint(repoRoot) +
239
245
  " `--ref` is the branch/tag on upstream; `--remote` is only the local remote name (default: upstream).");
240
246
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template-sync.js","sourceRoot":"","sources":["../../src/core/template-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-sync.js","sourceRoot":"","sources":["../../src/core/template-sync.ts"],"names":[],"mappings":"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"}
package/dist/schemas.d.ts CHANGED
@@ -55,9 +55,17 @@ export declare const DNS_TLS_COMPONENT_IDS: string[];
55
55
  export declare const MONITORING_COMPONENT_IDS: string[];
56
56
  export declare const OPTIONAL_COMPONENTS: ComponentDef[];
57
57
  export declare const KUBERNETES_VERSION = "1.35.1";
58
- export declare const SOURCE_GITLAB_HOST = "gitlab.com";
59
- export declare const SOURCE_PROJECT_PATH = "everythings-gonna-be-alright/fluxcd_ai_template";
58
+ /** Host for the canonical GitOps template repository (clone + template sync upstream). */
59
+ export declare const SOURCE_TEMPLATE_HOST = "github.com";
60
+ /** owner/repo for the template (used in HTTPS URL and GitHub API paths). */
61
+ export declare const SOURCE_PROJECT_PATH = "GitOpsAI/gitops-ai-template";
60
62
  export declare const INSTALL_PLAN_PATH = "/tmp/installplan.json";
61
63
  export declare function isShortLivedGitHubToken(token: string): boolean;
62
64
  export declare function shouldUseSshDeployKey(config: BootstrapConfig): boolean;
65
+ /**
66
+ * Username for the Flux GitRepository HTTPS secret (`username` / `password` keys).
67
+ * GitHub rejects generic usernames with PATs in many clients — use `x-access-token`.
68
+ * GitLab expects `oauth2` for HTTPS + token.
69
+ */
70
+ export declare function httpsGitCredentialUsername(config: Pick<BootstrapConfig, "gitProvider">): string;
63
71
  export declare function defaultSopsConfig(repoRoot: string): SopsConfig;
package/dist/schemas.js CHANGED
@@ -45,8 +45,10 @@ export const OPTIONAL_COMPONENTS = COMPONENTS.filter((c) => !c.required && !DNS_
45
45
  // Constants
46
46
  // ---------------------------------------------------------------------------
47
47
  export const KUBERNETES_VERSION = "1.35.1";
48
- export const SOURCE_GITLAB_HOST = "gitlab.com";
49
- export const SOURCE_PROJECT_PATH = "everythings-gonna-be-alright/fluxcd_ai_template";
48
+ /** Host for the canonical GitOps template repository (clone + template sync upstream). */
49
+ export const SOURCE_TEMPLATE_HOST = "github.com";
50
+ /** owner/repo for the template (used in HTTPS URL and GitHub API paths). */
51
+ export const SOURCE_PROJECT_PATH = "GitOpsAI/gitops-ai-template";
50
52
  export const INSTALL_PLAN_PATH = "/tmp/installplan.json";
51
53
  export function isShortLivedGitHubToken(token) {
52
54
  return token.startsWith("gho_") || token.startsWith("ghu_");
@@ -56,6 +58,14 @@ export function shouldUseSshDeployKey(config) {
56
58
  isShortLivedGitHubToken(config.gitToken) &&
57
59
  !config.gitFluxToken);
58
60
  }
61
+ /**
62
+ * Username for the Flux GitRepository HTTPS secret (`username` / `password` keys).
63
+ * GitHub rejects generic usernames with PATs in many clients — use `x-access-token`.
64
+ * GitLab expects `oauth2` for HTTPS + token.
65
+ */
66
+ export function httpsGitCredentialUsername(config) {
67
+ return config.gitProvider === "github" ? "x-access-token" : "oauth2";
68
+ }
59
69
  export function defaultSopsConfig(repoRoot) {
60
70
  const keyDir = process.env.SOPS_AGE_KEY_DIR ?? `${process.env.HOME}/.sops`;
61
71
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
package/dist/utils/log.js CHANGED
@@ -16,11 +16,42 @@ export function header(title, subtitle) {
16
16
  p.log.info(pc.dim(subtitle));
17
17
  }
18
18
  }
19
+ /** Max characters per line for values before wrapping (tokens, long URLs). */
20
+ const SUMMARY_VALUE_WRAP = 56;
21
+ function formatSummaryLines(entries) {
22
+ const list = Object.entries(entries);
23
+ if (list.length === 0)
24
+ return "";
25
+ const labelWithColon = (k) => `${k}:`;
26
+ const labelWidth = Math.max(...list.map(([k]) => labelWithColon(k).length), 0);
27
+ const gap = 2;
28
+ const indent = " ".repeat(labelWidth + gap);
29
+ const out = [];
30
+ for (const [key, raw] of list) {
31
+ const label = labelWithColon(key).padEnd(labelWidth + gap);
32
+ const value = raw ?? "";
33
+ if (value.length === 0 || value.length <= SUMMARY_VALUE_WRAP) {
34
+ out.push(`${pc.bold(label)}${pc.cyan(value)}`);
35
+ continue;
36
+ }
37
+ let pos = 0;
38
+ let first = true;
39
+ while (pos < value.length) {
40
+ const chunk = value.slice(pos, pos + SUMMARY_VALUE_WRAP);
41
+ pos += SUMMARY_VALUE_WRAP;
42
+ if (first) {
43
+ out.push(`${pc.bold(label)}${pc.cyan(chunk)}`);
44
+ first = false;
45
+ }
46
+ else {
47
+ out.push(`${indent}${pc.cyan(chunk)}`);
48
+ }
49
+ }
50
+ }
51
+ return out.join("\n");
52
+ }
19
53
  export function summary(title, entries) {
20
- const lines = Object.entries(entries)
21
- .map(([key, value]) => `${pc.bold(key + ":")} ${pc.cyan(value)}`)
22
- .join("\n");
23
- p.note(lines, title);
54
+ p.note(formatSummaryLines(entries), title);
24
55
  }
25
56
  export function nextSteps(steps) {
26
57
  const lines = steps