@calltelemetry/cli 0.4.26 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/dist/commands/diag.d.ts.map +1 -1
  2. package/dist/commands/diag.js +29 -0
  3. package/dist/commands/diag.js.map +1 -1
  4. package/dist/commands/k8s.d.ts +3 -0
  5. package/dist/commands/k8s.d.ts.map +1 -0
  6. package/dist/commands/k8s.js +192 -0
  7. package/dist/commands/k8s.js.map +1 -0
  8. package/dist/commands/network.d.ts +3 -0
  9. package/dist/commands/network.d.ts.map +1 -0
  10. package/dist/commands/network.js +135 -0
  11. package/dist/commands/network.js.map +1 -0
  12. package/dist/commands/shell.d.ts +3 -0
  13. package/dist/commands/shell.d.ts.map +1 -0
  14. package/dist/commands/shell.js +10 -0
  15. package/dist/commands/shell.js.map +1 -0
  16. package/dist/index.js +7 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/lib/backend.d.ts +85 -0
  19. package/dist/lib/backend.d.ts.map +1 -0
  20. package/dist/lib/backend.js +6 -0
  21. package/dist/lib/backend.js.map +1 -0
  22. package/dist/lib/compose-backend.d.ts +19 -0
  23. package/dist/lib/compose-backend.d.ts.map +1 -0
  24. package/dist/lib/compose-backend.js +78 -0
  25. package/dist/lib/compose-backend.js.map +1 -0
  26. package/dist/lib/deployment.d.ts +6 -0
  27. package/dist/lib/deployment.d.ts.map +1 -0
  28. package/dist/lib/deployment.js +51 -0
  29. package/dist/lib/deployment.js.map +1 -0
  30. package/dist/lib/doctor.d.ts +13 -0
  31. package/dist/lib/doctor.d.ts.map +1 -0
  32. package/dist/lib/doctor.js +82 -0
  33. package/dist/lib/doctor.js.map +1 -0
  34. package/dist/lib/helmfile.d.ts +14 -0
  35. package/dist/lib/helmfile.d.ts.map +1 -0
  36. package/dist/lib/helmfile.js +78 -0
  37. package/dist/lib/helmfile.js.map +1 -0
  38. package/dist/lib/k8s-backend.d.ts +36 -0
  39. package/dist/lib/k8s-backend.d.ts.map +1 -0
  40. package/dist/lib/k8s-backend.js +301 -0
  41. package/dist/lib/k8s-backend.js.map +1 -0
  42. package/dist/lib/k8s-client.d.ts +14 -0
  43. package/dist/lib/k8s-client.d.ts.map +1 -0
  44. package/dist/lib/k8s-client.js +42 -0
  45. package/dist/lib/k8s-client.js.map +1 -0
  46. package/dist/lib/network.d.ts +8 -0
  47. package/dist/lib/network.d.ts.map +1 -1
  48. package/dist/lib/network.js +17 -0
  49. package/dist/lib/network.js.map +1 -1
  50. package/dist/lib/prefs.d.ts +3 -0
  51. package/dist/lib/prefs.d.ts.map +1 -1
  52. package/dist/lib/prefs.js +9 -1
  53. package/dist/lib/prefs.js.map +1 -1
  54. package/dist/shell/commands/config.d.ts +11 -0
  55. package/dist/shell/commands/config.d.ts.map +1 -0
  56. package/dist/shell/commands/config.js +193 -0
  57. package/dist/shell/commands/config.js.map +1 -0
  58. package/dist/shell/commands/connect.d.ts +18 -0
  59. package/dist/shell/commands/connect.d.ts.map +1 -0
  60. package/dist/shell/commands/connect.js +99 -0
  61. package/dist/shell/commands/connect.js.map +1 -0
  62. package/dist/shell/commands/db.d.ts +11 -0
  63. package/dist/shell/commands/db.d.ts.map +1 -0
  64. package/dist/shell/commands/db.js +237 -0
  65. package/dist/shell/commands/db.js.map +1 -0
  66. package/dist/shell/commands/debug.d.ts +15 -0
  67. package/dist/shell/commands/debug.d.ts.map +1 -0
  68. package/dist/shell/commands/debug.js +310 -0
  69. package/dist/shell/commands/debug.js.map +1 -0
  70. package/dist/shell/commands/diag.d.ts +16 -0
  71. package/dist/shell/commands/diag.d.ts.map +1 -0
  72. package/dist/shell/commands/diag.js +607 -0
  73. package/dist/shell/commands/diag.js.map +1 -0
  74. package/dist/shell/commands/registry.d.ts +7 -0
  75. package/dist/shell/commands/registry.d.ts.map +1 -0
  76. package/dist/shell/commands/registry.js +391 -0
  77. package/dist/shell/commands/registry.js.map +1 -0
  78. package/dist/shell/commands/secrets.d.ts +18 -0
  79. package/dist/shell/commands/secrets.d.ts.map +1 -0
  80. package/dist/shell/commands/secrets.js +100 -0
  81. package/dist/shell/commands/secrets.js.map +1 -0
  82. package/dist/shell/commands/services.d.ts +7 -0
  83. package/dist/shell/commands/services.d.ts.map +1 -0
  84. package/dist/shell/commands/services.js +115 -0
  85. package/dist/shell/commands/services.js.map +1 -0
  86. package/dist/shell/commands/show.d.ts +26 -0
  87. package/dist/shell/commands/show.d.ts.map +1 -0
  88. package/dist/shell/commands/show.js +897 -0
  89. package/dist/shell/commands/show.js.map +1 -0
  90. package/dist/shell/commands/system.d.ts +13 -0
  91. package/dist/shell/commands/system.d.ts.map +1 -0
  92. package/dist/shell/commands/system.js +270 -0
  93. package/dist/shell/commands/system.js.map +1 -0
  94. package/dist/shell/commands/test.d.ts +12 -0
  95. package/dist/shell/commands/test.d.ts.map +1 -0
  96. package/dist/shell/commands/test.js +197 -0
  97. package/dist/shell/commands/test.js.map +1 -0
  98. package/dist/shell/commands/users.d.ts +14 -0
  99. package/dist/shell/commands/users.d.ts.map +1 -0
  100. package/dist/shell/commands/users.js +86 -0
  101. package/dist/shell/commands/users.js.map +1 -0
  102. package/dist/shell/completer.d.ts +17 -0
  103. package/dist/shell/completer.d.ts.map +1 -0
  104. package/dist/shell/completer.js +151 -0
  105. package/dist/shell/completer.js.map +1 -0
  106. package/dist/shell/context.d.ts +12 -0
  107. package/dist/shell/context.d.ts.map +1 -0
  108. package/dist/shell/context.js +2 -0
  109. package/dist/shell/context.js.map +1 -0
  110. package/dist/shell/footer.d.ts +8 -0
  111. package/dist/shell/footer.d.ts.map +1 -0
  112. package/dist/shell/footer.js +47 -0
  113. package/dist/shell/footer.js.map +1 -0
  114. package/dist/shell/formatter.d.ts +47 -0
  115. package/dist/shell/formatter.d.ts.map +1 -0
  116. package/dist/shell/formatter.js +135 -0
  117. package/dist/shell/formatter.js.map +1 -0
  118. package/dist/shell/mcp-bridge.d.ts +13 -0
  119. package/dist/shell/mcp-bridge.d.ts.map +1 -0
  120. package/dist/shell/mcp-bridge.js +23 -0
  121. package/dist/shell/mcp-bridge.js.map +1 -0
  122. package/dist/shell/parser.d.ts +36 -0
  123. package/dist/shell/parser.d.ts.map +1 -0
  124. package/dist/shell/parser.js +110 -0
  125. package/dist/shell/parser.js.map +1 -0
  126. package/dist/shell/repl.d.ts +5 -0
  127. package/dist/shell/repl.d.ts.map +1 -0
  128. package/dist/shell/repl.js +273 -0
  129. package/dist/shell/repl.js.map +1 -0
  130. package/dist/shell/sparkline.d.ts +16 -0
  131. package/dist/shell/sparkline.d.ts.map +1 -0
  132. package/dist/shell/sparkline.js +56 -0
  133. package/dist/shell/sparkline.js.map +1 -0
  134. package/dist/shell/theme.d.ts +72 -0
  135. package/dist/shell/theme.d.ts.map +1 -0
  136. package/dist/shell/theme.js +60 -0
  137. package/dist/shell/theme.js.map +1 -0
  138. package/dist/ui/views/DbHealthView.d.ts +6 -0
  139. package/dist/ui/views/DbHealthView.d.ts.map +1 -0
  140. package/dist/ui/views/DbHealthView.js +180 -0
  141. package/dist/ui/views/DbHealthView.js.map +1 -0
  142. package/dist/ui/views/K8sDeployView.d.ts +8 -0
  143. package/dist/ui/views/K8sDeployView.d.ts.map +1 -0
  144. package/dist/ui/views/K8sDeployView.js +81 -0
  145. package/dist/ui/views/K8sDeployView.js.map +1 -0
  146. package/dist/ui/views/K8sRunbookView.d.ts +8 -0
  147. package/dist/ui/views/K8sRunbookView.d.ts.map +1 -0
  148. package/dist/ui/views/K8sRunbookView.js +181 -0
  149. package/dist/ui/views/K8sRunbookView.js.map +1 -0
  150. package/dist/ui/views/K8sServicesView.d.ts +8 -0
  151. package/dist/ui/views/K8sServicesView.d.ts.map +1 -0
  152. package/dist/ui/views/K8sServicesView.js +106 -0
  153. package/dist/ui/views/K8sServicesView.js.map +1 -0
  154. package/dist/ui/views/K8sStatusView.d.ts +8 -0
  155. package/dist/ui/views/K8sStatusView.d.ts.map +1 -0
  156. package/dist/ui/views/K8sStatusView.js +135 -0
  157. package/dist/ui/views/K8sStatusView.js.map +1 -0
  158. package/dist/ui/views/MainMenu.d.ts.map +1 -1
  159. package/dist/ui/views/MainMenu.js +54 -24
  160. package/dist/ui/views/MainMenu.js.map +1 -1
  161. package/dist/ui/views/SettingsView.d.ts.map +1 -1
  162. package/dist/ui/views/SettingsView.js +19 -1
  163. package/dist/ui/views/SettingsView.js.map +1 -1
  164. package/dist/ui/views/SetupWizardView.d.ts +7 -0
  165. package/dist/ui/views/SetupWizardView.d.ts.map +1 -0
  166. package/dist/ui/views/SetupWizardView.js +244 -0
  167. package/dist/ui/views/SetupWizardView.js.map +1 -0
  168. package/package.json +2 -1
@@ -0,0 +1,301 @@
1
+ /**
2
+ * K8sBackend — Kubernetes implementation of DeploymentBackend
3
+ * using @kubernetes/client-node native TypeScript API.
4
+ */
5
+ import * as k8s from '@kubernetes/client-node';
6
+ import { execa } from 'execa';
7
+ import stream from 'node:stream';
8
+ import { coreApi, appsApi, customObjectsApi, execClient } from './k8s-client.js';
9
+ import { debug } from './log.js';
10
+ const TIMEOUT = 10_000;
11
+ function withTimeout(promise, ms, label) {
12
+ return Promise.race([
13
+ promise,
14
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`${label} timed out after ${ms}ms`)), ms)),
15
+ ]);
16
+ }
17
+ export class K8sBackend {
18
+ namespace;
19
+ mode = 'k3s';
20
+ constructor(namespace = 'ct') {
21
+ this.namespace = namespace;
22
+ }
23
+ async listServices() {
24
+ const res = await coreApi().listNamespacedPod({ namespace: this.namespace });
25
+ return res.items.map(pod => ({
26
+ name: pod.metadata?.name ?? '',
27
+ status: pod.status?.phase ?? 'Unknown',
28
+ ready: this.podReadiness(pod),
29
+ image: pod.spec?.containers?.[0]?.image ?? '',
30
+ restarts: pod.status?.containerStatuses?.[0]?.restartCount ?? 0,
31
+ age: this.podAge(pod),
32
+ }));
33
+ }
34
+ async startService(_name) {
35
+ // K8s doesn't have a direct "start" — scale from 0 to 1
36
+ await this.scaleService(_name, 1);
37
+ }
38
+ async stopService(name) {
39
+ await this.scaleService(name, 0);
40
+ }
41
+ async restartService(name) {
42
+ const patch = {
43
+ spec: {
44
+ template: {
45
+ metadata: {
46
+ annotations: {
47
+ 'kubectl.kubernetes.io/restartedAt': new Date().toISOString(),
48
+ },
49
+ },
50
+ },
51
+ },
52
+ };
53
+ try {
54
+ await appsApi().patchNamespacedDeployment({ name, namespace: this.namespace, body: patch }, k8s.setHeaderOptions('Content-Type', k8s.PatchStrategy.StrategicMergePatch));
55
+ }
56
+ catch (err) {
57
+ // Try as StatefulSet if Deployment not found
58
+ if (err.statusCode === 404) {
59
+ await appsApi().patchNamespacedStatefulSet({ name, namespace: this.namespace, body: patch }, k8s.setHeaderOptions('Content-Type', k8s.PatchStrategy.StrategicMergePatch));
60
+ }
61
+ else {
62
+ throw err;
63
+ }
64
+ }
65
+ }
66
+ async startAll() {
67
+ // Not directly applicable in K8s — use helmfile sync instead
68
+ throw new Error('Use helmfile sync to deploy all services in K8s mode');
69
+ }
70
+ async stopAll() {
71
+ // Scale all deployments to 0
72
+ const deps = await appsApi().listNamespacedDeployment({ namespace: this.namespace });
73
+ await Promise.all(deps.items.map(d => this.scaleService(d.metadata?.name ?? '', 0)));
74
+ }
75
+ async getLogs(service, lines = 100) {
76
+ const pod = await this.findPodByLabel(service);
77
+ if (!pod?.metadata?.name)
78
+ throw new Error(`No pod found for service: ${service}`);
79
+ const res = await coreApi().readNamespacedPodLog({
80
+ name: pod.metadata.name,
81
+ namespace: this.namespace,
82
+ tailLines: lines,
83
+ });
84
+ return typeof res === 'string' ? res : '';
85
+ }
86
+ async getHealth() {
87
+ const errors = {};
88
+ const checks = await Promise.all([
89
+ this.healthCheck('api', async () => {
90
+ const { stdout } = await this.exec('api', ['curl', '-sf', 'http://127.0.0.1:4000/healthz']);
91
+ return stdout.length > 0;
92
+ }, errors),
93
+ this.healthCheck('curri', async () => {
94
+ const { stdout } = await this.exec('api', ['curl', '-sf', 'http://127.0.0.1:4080/healthz']);
95
+ return stdout.length > 0;
96
+ }, errors),
97
+ this.healthCheck('rpc', async () => {
98
+ const { stdout } = await this.exec('api', ['/app/bin/onprem', 'rpc', 'IO.puts("ok")']);
99
+ return stdout.includes('ok');
100
+ }, errors),
101
+ this.healthCheck('db', async () => {
102
+ const { stdout } = await this.exec('api', [
103
+ '/app/bin/onprem', 'rpc',
104
+ 'with {:ok, _} <- Ecto.Adapters.SQL.query(Cdrcisco.Repo, "SELECT 1") do IO.puts("ok") end',
105
+ ]);
106
+ return stdout.includes('ok');
107
+ }, errors),
108
+ this.healthCheck('dbDirect', async () => {
109
+ const pgPod = await this.findPodByLabel('postgresql');
110
+ if (!pgPod?.metadata?.name)
111
+ return false;
112
+ const { exitCode } = await this.execPod(pgPod.metadata.name, ['pg_isready', '-U', 'calltelemetry', '-d', 'calltelemetry']);
113
+ return exitCode === 0;
114
+ }, errors),
115
+ this.healthCheck('curriProxy', async () => {
116
+ const r = await execa('curl', ['-sf', 'http://127.0.0.1:80/healthz'], { timeout: 5000 });
117
+ return r.exitCode === 0;
118
+ }, errors),
119
+ this.healthCheck('adminProxy', async () => {
120
+ const r = await execa('curl', ['-sfk', '-o', '/dev/null', '-w', '%{http_code}', 'https://127.0.0.1:443/'], { timeout: 5000 });
121
+ return r.stdout.trim() !== '000';
122
+ }, errors),
123
+ this.healthCheck('sftp', async () => {
124
+ const { stdout } = await this.exec('api', [
125
+ '/app/bin/onprem', 'rpc',
126
+ 'case Cdrcisco.CTSFTPD.status() do {:error, :down} -> IO.puts("down"); _ -> IO.puts("ok") end',
127
+ ]);
128
+ return stdout.trim() === 'ok';
129
+ }, errors),
130
+ ]);
131
+ const [api, curri, rpc, dbConnected, dbDirect, curriProxy, adminProxy, sftp] = checks;
132
+ const coreAllPass = api && curri && rpc && dbConnected && dbDirect;
133
+ const allPass = coreAllPass && curriProxy && adminProxy && sftp;
134
+ let overall = 'down';
135
+ if (allPass)
136
+ overall = 'healthy';
137
+ else if (api || curri || rpc || dbDirect)
138
+ overall = 'degraded';
139
+ return { api, curri, rpc, dbConnected, dbDirect, curriProxy, adminProxy, sftp, overall, errors };
140
+ }
141
+ async exec(service, command) {
142
+ const pod = await this.findPodByLabel(service);
143
+ if (!pod?.metadata?.name)
144
+ throw new Error(`No pod found for service: ${service}`);
145
+ return this.execPod(pod.metadata.name, command);
146
+ }
147
+ async getNodes() {
148
+ const res = await coreApi().listNode();
149
+ return res.items.map(node => ({
150
+ name: node.metadata?.name ?? '',
151
+ status: this.nodeReady(node) ? 'Ready' : 'NotReady',
152
+ roles: this.nodeRoles(node),
153
+ version: node.status?.nodeInfo?.kubeletVersion ?? '',
154
+ }));
155
+ }
156
+ async scaleService(name, replicas) {
157
+ try {
158
+ await appsApi().patchNamespacedDeploymentScale({ name, namespace: this.namespace, body: { spec: { replicas } } }, k8s.setHeaderOptions('Content-Type', k8s.PatchStrategy.StrategicMergePatch));
159
+ }
160
+ catch (err) {
161
+ if (err.statusCode === 404) {
162
+ await appsApi().patchNamespacedStatefulSetScale({ name, namespace: this.namespace, body: { spec: { replicas } } }, k8s.setHeaderOptions('Content-Type', k8s.PatchStrategy.StrategicMergePatch));
163
+ }
164
+ else {
165
+ throw err;
166
+ }
167
+ }
168
+ }
169
+ async getHelmReleases() {
170
+ try {
171
+ const { stdout } = await execa('helm', ['list', '-n', this.namespace, '-o', 'json']);
172
+ const releases = JSON.parse(stdout || '[]');
173
+ return releases.map((r) => ({
174
+ name: r.name ?? '',
175
+ namespace: r.namespace ?? '',
176
+ revision: r.revision ?? '',
177
+ status: r.status ?? '',
178
+ chart: r.chart ?? '',
179
+ appVersion: r.app_version ?? '',
180
+ }));
181
+ }
182
+ catch (err) {
183
+ debug(`Failed to list helm releases: ${err.message}`);
184
+ return [];
185
+ }
186
+ }
187
+ async getCnpgClusterStatus() {
188
+ const result = await customObjectsApi().getNamespacedCustomObject({
189
+ group: 'postgresql.cnpg.io',
190
+ version: 'v1',
191
+ namespace: this.namespace,
192
+ plural: 'clusters',
193
+ name: 'postgresql',
194
+ });
195
+ const obj = result;
196
+ const status = obj.status ?? {};
197
+ return {
198
+ name: obj.metadata?.name ?? 'postgresql',
199
+ phase: status.phase ?? 'Unknown',
200
+ instances: obj.spec?.instances ?? 0,
201
+ readyInstances: status.readyInstances ?? 0,
202
+ primaryPod: status.writeService ?? '',
203
+ currentPrimary: status.currentPrimary ?? '',
204
+ latestGeneratedNode: status.latestGeneratedNode ?? 0,
205
+ lastBackup: status.lastSuccessfulBackup ?? undefined,
206
+ walArchiving: status.walArchiving?.status ?? undefined,
207
+ };
208
+ }
209
+ async getPVCs() {
210
+ const res = await coreApi().listNamespacedPersistentVolumeClaim({ namespace: this.namespace });
211
+ return res.items.map(pvc => ({
212
+ name: pvc.metadata?.name ?? '',
213
+ status: pvc.status?.phase ?? 'Unknown',
214
+ size: pvc.spec?.resources?.requests?.['storage'] ?? '',
215
+ storageClass: pvc.spec?.storageClassName ?? '',
216
+ }));
217
+ }
218
+ // --- Private helpers ---
219
+ async healthCheck(label, fn, errors) {
220
+ try {
221
+ return await withTimeout(fn(), TIMEOUT, label);
222
+ }
223
+ catch (err) {
224
+ errors[label] = err.message || `${label} check failed`;
225
+ return false;
226
+ }
227
+ }
228
+ async findPodByLabel(service) {
229
+ // Try Helm convention first, then simple app label
230
+ for (const labelSelector of [
231
+ `app.kubernetes.io/name=${service}`,
232
+ `app=${service}`,
233
+ ]) {
234
+ const res = await coreApi().listNamespacedPod({
235
+ namespace: this.namespace,
236
+ labelSelector,
237
+ });
238
+ const running = res.items.find(p => p.status?.phase === 'Running');
239
+ if (running)
240
+ return running;
241
+ if (res.items.length > 0)
242
+ return res.items[0];
243
+ }
244
+ return undefined;
245
+ }
246
+ async execPod(podName, command) {
247
+ return new Promise((resolve, reject) => {
248
+ let stdout = '';
249
+ let stderr = '';
250
+ const outStream = new stream.PassThrough();
251
+ const errStream = new stream.PassThrough();
252
+ outStream.on('data', (chunk) => { stdout += chunk.toString(); });
253
+ errStream.on('data', (chunk) => { stderr += chunk.toString(); });
254
+ const exec = execClient();
255
+ exec.exec(this.namespace, podName, '', // first container
256
+ command, outStream, errStream, null, false, (status) => {
257
+ const exitCode = status.status === 'Success' ? 0 : 1;
258
+ resolve({ stdout, exitCode });
259
+ }).catch(reject);
260
+ });
261
+ }
262
+ podReadiness(pod) {
263
+ const statuses = pod.status?.containerStatuses ?? [];
264
+ if (statuses.length === 0)
265
+ return '0/0';
266
+ const ready = statuses.filter(c => c.ready).length;
267
+ return `${ready}/${statuses.length}`;
268
+ }
269
+ podAge(pod) {
270
+ const created = pod.metadata?.creationTimestamp;
271
+ if (!created)
272
+ return '';
273
+ const now = Date.now();
274
+ const then = new Date(created).getTime();
275
+ const diffMs = now - then;
276
+ const days = Math.floor(diffMs / 86400000);
277
+ if (days > 0)
278
+ return `${days}d`;
279
+ const hours = Math.floor(diffMs / 3600000);
280
+ if (hours > 0)
281
+ return `${hours}h`;
282
+ const minutes = Math.floor(diffMs / 60000);
283
+ return `${minutes}m`;
284
+ }
285
+ nodeReady(node) {
286
+ const conditions = node.status?.conditions ?? [];
287
+ const readyCond = conditions.find(c => c.type === 'Ready');
288
+ return readyCond?.status === 'True';
289
+ }
290
+ nodeRoles(node) {
291
+ const labels = node.metadata?.labels ?? {};
292
+ const roles = [];
293
+ for (const [key, value] of Object.entries(labels)) {
294
+ if (key.startsWith('node-role.kubernetes.io/')) {
295
+ roles.push(key.replace('node-role.kubernetes.io/', '') || value);
296
+ }
297
+ }
298
+ return roles.join(',') || 'worker';
299
+ }
300
+ }
301
+ //# sourceMappingURL=k8s-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"k8s-backend.js","sourceRoot":"","sources":["../../src/lib/k8s-backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * KubeConfig loader and API client factory using @kubernetes/client-node.
3
+ * Centralized so tests can mock individual exports.
4
+ */
5
+ import * as k8s from '@kubernetes/client-node';
6
+ export declare function loadKubeConfig(): k8s.KubeConfig;
7
+ export declare function resetKubeConfigCache(): void;
8
+ export declare function coreApi(): k8s.CoreV1Api;
9
+ export declare function appsApi(): k8s.AppsV1Api;
10
+ export declare function customObjectsApi(): k8s.CustomObjectsApi;
11
+ export declare function execClient(): k8s.Exec;
12
+ export declare function logClient(): k8s.Log;
13
+ export declare function isKubeConfigAvailable(): boolean;
14
+ //# sourceMappingURL=k8s-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"k8s-client.d.ts","sourceRoot":"","sources":["../../src/lib/k8s-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAI/C,wBAAgB,cAAc,IAAI,GAAG,CAAC,UAAU,CAM/C;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,OAAO,IAAI,GAAG,CAAC,SAAS,CAEvC;AAED,wBAAgB,OAAO,IAAI,GAAG,CAAC,SAAS,CAEvC;AAED,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,gBAAgB,CAEvD;AAED,wBAAgB,UAAU,IAAI,GAAG,CAAC,IAAI,CAErC;AAED,wBAAgB,SAAS,IAAI,GAAG,CAAC,GAAG,CAEnC;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAO/C"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * KubeConfig loader and API client factory using @kubernetes/client-node.
3
+ * Centralized so tests can mock individual exports.
4
+ */
5
+ import * as k8s from '@kubernetes/client-node';
6
+ let cachedKc = null;
7
+ export function loadKubeConfig() {
8
+ if (cachedKc)
9
+ return cachedKc;
10
+ const kc = new k8s.KubeConfig();
11
+ kc.loadFromDefault();
12
+ cachedKc = kc;
13
+ return kc;
14
+ }
15
+ export function resetKubeConfigCache() {
16
+ cachedKc = null;
17
+ }
18
+ export function coreApi() {
19
+ return loadKubeConfig().makeApiClient(k8s.CoreV1Api);
20
+ }
21
+ export function appsApi() {
22
+ return loadKubeConfig().makeApiClient(k8s.AppsV1Api);
23
+ }
24
+ export function customObjectsApi() {
25
+ return loadKubeConfig().makeApiClient(k8s.CustomObjectsApi);
26
+ }
27
+ export function execClient() {
28
+ return new k8s.Exec(loadKubeConfig());
29
+ }
30
+ export function logClient() {
31
+ return new k8s.Log(loadKubeConfig());
32
+ }
33
+ export function isKubeConfigAvailable() {
34
+ try {
35
+ loadKubeConfig();
36
+ return true;
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ //# sourceMappingURL=k8s-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"k8s-client.js","sourceRoot":"","sources":["../../src/lib/k8s-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAE/C,IAAI,QAAQ,GAA0B,IAAI,CAAC;AAE3C,MAAM,UAAU,cAAc;IAC5B,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;IAChC,EAAE,CAAC,eAAe,EAAE,CAAC;IACrB,QAAQ,GAAG,EAAE,CAAC;IACd,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,cAAc,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,cAAc,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,cAAc,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC;QACH,cAAc,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -7,6 +7,14 @@ export interface NetworkInterfaceInfo {
7
7
  internal: boolean;
8
8
  }
9
9
  export declare function getNetworkInterfaceList(): NetworkInterfaceInfo[];
10
+ /**
11
+ * Return names of physical ethernet interfaces, excluding bridges, docker,
12
+ * virtual, loopback, tun/tap, and VLAN interfaces.
13
+ *
14
+ * Typical physical names: ens33, ens192, enp0s3, eno1, eth0.
15
+ * Excluded prefixes: lo, docker, br-, virbr, veth, tun, tap, vlan, dummy, bond (virtual).
16
+ */
17
+ export declare function getEthernetInterfaces(): string[];
10
18
  export declare function getSystemHostname(): string;
11
19
  export declare function getPlatformInfo(): {
12
20
  platform: string;
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/lib/network.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,EAAE,CAmBhE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,eAAe,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAMzF;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA8BjE;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CA8ClG;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsEpF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,EAAE,UAAU,SAAI,GAAG,MAAM,EAAE,CAO/E;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqBhE"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/lib/network.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,EAAE,CAmBhE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAQhD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,eAAe,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAMzF;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA8BjE;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CA8ClG;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsEpF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,EAAE,UAAU,SAAI,GAAG,MAAM,EAAE,CAO/E;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqBhE"}
@@ -22,6 +22,23 @@ export function getNetworkInterfaceList() {
22
22
  }
23
23
  return result;
24
24
  }
25
+ /**
26
+ * Return names of physical ethernet interfaces, excluding bridges, docker,
27
+ * virtual, loopback, tun/tap, and VLAN interfaces.
28
+ *
29
+ * Typical physical names: ens33, ens192, enp0s3, eno1, eth0.
30
+ * Excluded prefixes: lo, docker, br-, virbr, veth, tun, tap, vlan, dummy, bond (virtual).
31
+ */
32
+ export function getEthernetInterfaces() {
33
+ const EXCLUDED = /^(lo$|docker|br-|virbr|veth|tun|tap|vlan|dummy|bond|vxlan|ovs|flannel|cali|cilium|wg|wlan|wifi)/i;
34
+ const ifaces = networkInterfaces();
35
+ const seen = new Set();
36
+ for (const [name] of Object.entries(ifaces)) {
37
+ if (!EXCLUDED.test(name))
38
+ seen.add(name);
39
+ }
40
+ return [...seen].sort();
41
+ }
25
42
  export function getSystemHostname() {
26
43
  return hostname();
27
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/lib/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAe,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAW9B,MAAM,UAAU,uBAAuB;IACrC,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,MAAyB;gBACtC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,QAAQ,EAAE,GAAG,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAG;QACrC,IAAI,EAAE,IAAI,EAAE;QACZ,WAAW,EAAE,OAAO,CAAC,OAAO;KAC7B,CAAC;AACJ,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,IAAI,IAAI,GAAa,EAAE,CAAC;IACxB,IAAI,IAAI,GAAa,EAAE,CAAC;IACxB,IAAI,KAAyB,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YACpD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;SACnB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW;YAAE,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3D,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW;YAAE,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;QAE3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAE,QAAQ,CAAC,MAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,KAAK,GAAG,KAAK,IAAI,oBAAoB,CAAC;QACxC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,GAAI,CAAW,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACjD,KAAK;KACN,CAAC;AACJ,CAAC;AAUD,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,SAAS,GAAG,IAAI;IACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,KAAc,EAAE,EAAE;YAC/C,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;YACD,OAAO,CAAC;gBACN,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;gBACjD,KAAK;aACN,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAE9D,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACxB,MAAM,EAAE,OAAO,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,EAAE,iBAAiB,SAAS,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;YACjD,IAAI,MAAc,CAAC;YACnB,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC5B,MAAM,GAAG,yBAAyB,IAAI,IAAI,IAAI,EAAE,CAAC;YACnD,CAAC;iBAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChC,MAAM,GAAG,yBAAyB,IAAI,EAAE,CAAC;YAC3C,CAAC;iBAAM,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBACnC,MAAM,GAAG,qBAAqB,IAAI,EAAE,CAAC;YACvC,CAAC;iBAAM,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAClC,MAAM,GAAG,2BAA2B,IAAI,EAAE,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,mBAAmB,CAAC;YACtD,CAAC;YACD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,SAAS,GAAG,KAAK;IACvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,MAAM,MAAM,GAAG,CAAC,MAAiC,EAAE,EAAE;YACnD,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,CAAC;gBACN,GAAG;gBACH,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;gBACjD,GAAG,MAAM;aACV,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC5E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAsC,CAAC;gBAC1D,IAAI,UAA8B,CAAC;gBACnC,IAAI,UAA8B,CAAC;gBAEnC,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;oBACvD,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC;gBACjD,CAAC;gBAED,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;oBAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBACzC,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;wBACnB,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACrB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,CAAC,EAAE,KAAK,EAAE,iBAAiB,SAAS,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;gBACjD,IAAI,KAAa,CAAC;gBAElB,IAAI,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBACxD,KAAK,GAAG,yBAAyB,GAAG,EAAE,CAAC;gBACzC,CAAC;qBAAM,IAAI,IAAI,KAAK,kBAAkB,IAAI,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;oBAClF,KAAK,GAAG,+BAA+B,GAAG,EAAE,CAAC;gBAC/C,CAAC;qBAAM,IAAI,IAAI,KAAK,iCAAiC,IAAI,IAAI,KAAK,6BAA6B,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACnK,KAAK,GAAG,0BAA0B,GAAG,EAAE,CAAC;gBAC1C,CAAC;qBAAM,IAAI,IAAI,KAAK,8BAA8B,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9E,KAAK,GAAG,0BAA0B,GAAG,EAAE,CAAC;gBAC1C,CAAC;qBAAM,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;oBACnC,KAAK,GAAG,0BAA0B,GAAG,EAAE,CAAC;gBAC1C,CAAC;qBAAM,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;oBACjC,KAAK,GAAG,uBAAuB,GAAG,EAAE,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,KAAK,GAAG,GAAG,IAAI,IAAI,IAAI,sBAAsB,CAAC;gBAChD,CAAC;gBAED,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC;IACnE,IAAI,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC5B,+BAA+B;QAC/B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IACD,0BAA0B;IAC1B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,IAAI,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1E,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1E,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/lib/network.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,9 @@ export interface Preferences {
3
3
  ipv6: boolean;
4
4
  otel: boolean;
5
5
  jtapi: boolean;
6
+ deploymentMode: 'docker-compose' | 'k3s';
7
+ k8sNamespace: string;
8
+ k8sEnvironment: 'ct-dev' | 'ct-prod' | 'ct-test';
6
9
  }
7
10
  /**
8
11
  * Load preferences from ~/.ct/preferences.json.
@@ -1 +1 @@
1
- {"version":3,"file":"prefs.d.ts","sourceRoot":"","sources":["../../src/lib/prefs.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAOD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,WAAW,GAAG,IAAI,CAU9C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAQlD;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CAEtC"}
1
+ {"version":3,"file":"prefs.d.ts","sourceRoot":"","sources":["../../src/lib/prefs.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,gBAAgB,GAAG,KAAK,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;CAClD;AAeD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,WAAW,GAAG,IAAI,CAU9C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAQlD;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CAEtC"}
package/dist/lib/prefs.js CHANGED
@@ -4,7 +4,15 @@ import { homedir } from 'node:os';
4
4
  import { debug } from './log.js';
5
5
  const PREFS_DIR = join(homedir(), '.ct');
6
6
  const PREFS_FILE = join(PREFS_DIR, 'preferences.json');
7
- const DEFAULTS = { autoUpdate: false, ipv6: false, otel: false, jtapi: false };
7
+ const DEFAULTS = {
8
+ autoUpdate: false,
9
+ ipv6: false,
10
+ otel: false,
11
+ jtapi: false,
12
+ deploymentMode: 'docker-compose',
13
+ k8sNamespace: 'ct',
14
+ k8sEnvironment: 'ct-dev',
15
+ };
8
16
  /**
9
17
  * Load preferences from ~/.ct/preferences.json.
10
18
  * Returns null if the file doesn't exist (first run).
@@ -1 +1 @@
1
- {"version":3,"file":"prefs.js","sourceRoot":"","sources":["../../src/lib/prefs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AASjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AACzC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAEvD,MAAM,QAAQ,GAAgB,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAE5F;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAkB;IAC1C,IAAI,CAAC;QACH,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1E,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAS,EAAE,IAAI,QAAQ,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"prefs.js","sourceRoot":"","sources":["../../src/lib/prefs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAYjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AACzC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAEvD,MAAM,QAAQ,GAAgB;IAC5B,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,KAAK;IACZ,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,QAAQ;CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAkB;IAC1C,IAAI,CAAC;QACH,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1E,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAS,EAAE,IAAI,QAAQ,CAAC;AACjC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ShellContext } from '../context.js';
2
+ import type { CommandNode } from '../parser.js';
3
+ export declare function handleLogging(args: string[], _opts: Record<string, string>, _ctx: ShellContext): Promise<void>;
4
+ export declare function handleIpv6(args: string[], _opts: Record<string, string>, _ctx: ShellContext): Promise<void>;
5
+ export declare function handleOtel(args: string[], _opts: Record<string, string>, _ctx: ShellContext): Promise<void>;
6
+ export declare function handlePostgres(args: string[], _opts: Record<string, string>, _ctx: ShellContext): Promise<void>;
7
+ export declare function handleCertsReset(_args: string[], _opts: Record<string, string>, _ctx: ShellContext): Promise<void>;
8
+ export declare function handleAuditRun(_args: string[], _opts: Record<string, string>, _ctx: ShellContext): Promise<void>;
9
+ export declare function handleAuditReport(args: string[], _opts: Record<string, string>, _ctx: ShellContext): Promise<void>;
10
+ export declare function wireConfigHandlers(configNode: CommandNode): void;
11
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/shell/commands/config.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BpH;AAID,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBjH;AAID,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBjH;AAID,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrH;AAID,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxH;AAID,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBtH;AAID,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBxH;AAID,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAoChE"}