@calltelemetry/cli 0.7.5 → 0.7.8

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 (142) hide show
  1. package/README.md +104 -2
  2. package/dist/commands/config.d.ts.map +1 -1
  3. package/dist/commands/config.js +13 -0
  4. package/dist/commands/config.js.map +1 -1
  5. package/dist/commands/db.d.ts.map +1 -1
  6. package/dist/commands/db.js +33 -0
  7. package/dist/commands/db.js.map +1 -1
  8. package/dist/commands/diag.d.ts.map +1 -1
  9. package/dist/commands/diag.js +3 -0
  10. package/dist/commands/diag.js.map +1 -1
  11. package/dist/commands/health.d.ts +3 -0
  12. package/dist/commands/health.d.ts.map +1 -0
  13. package/dist/commands/health.js +34 -0
  14. package/dist/commands/health.js.map +1 -0
  15. package/dist/commands/migrate.d.ts.map +1 -1
  16. package/dist/commands/migrate.js +7 -0
  17. package/dist/commands/migrate.js.map +1 -1
  18. package/dist/commands/self-update.d.ts.map +1 -1
  19. package/dist/commands/self-update.js +1 -0
  20. package/dist/commands/self-update.js.map +1 -1
  21. package/dist/commands/syslog.d.ts +3 -0
  22. package/dist/commands/syslog.d.ts.map +1 -0
  23. package/dist/commands/syslog.js +159 -0
  24. package/dist/commands/syslog.js.map +1 -0
  25. package/dist/commands/update.d.ts.map +1 -1
  26. package/dist/commands/update.js +143 -3
  27. package/dist/commands/update.js.map +1 -1
  28. package/dist/index.js +13 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/lib/bundle.d.ts +3 -1
  31. package/dist/lib/bundle.d.ts.map +1 -1
  32. package/dist/lib/bundle.js +90 -15
  33. package/dist/lib/bundle.js.map +1 -1
  34. package/dist/lib/compose.d.ts +10 -0
  35. package/dist/lib/compose.d.ts.map +1 -1
  36. package/dist/lib/compose.js +251 -13
  37. package/dist/lib/compose.js.map +1 -1
  38. package/dist/lib/db-backup.d.ts +23 -0
  39. package/dist/lib/db-backup.d.ts.map +1 -0
  40. package/dist/lib/db-backup.js +80 -0
  41. package/dist/lib/db-backup.js.map +1 -0
  42. package/dist/lib/health-report.d.ts +93 -0
  43. package/dist/lib/health-report.d.ts.map +1 -0
  44. package/dist/lib/health-report.js +391 -0
  45. package/dist/lib/health-report.js.map +1 -0
  46. package/dist/lib/migration-003-nm-heal.js +5 -5
  47. package/dist/lib/migration-003-nm-heal.js.map +1 -1
  48. package/dist/lib/migration-009-bind-mount-files.d.ts +5 -4
  49. package/dist/lib/migration-009-bind-mount-files.d.ts.map +1 -1
  50. package/dist/lib/migration-009-bind-mount-files.js +15 -7
  51. package/dist/lib/migration-009-bind-mount-files.js.map +1 -1
  52. package/dist/lib/migration-010-jtapi-state.js +2 -2
  53. package/dist/lib/migration-010-jtapi-state.js.map +1 -1
  54. package/dist/lib/migration-011-docker-memory-limit.js +2 -2
  55. package/dist/lib/migration-011-docker-memory-limit.js.map +1 -1
  56. package/dist/lib/migration-012-db-pool-sizes.d.ts.map +1 -1
  57. package/dist/lib/migration-012-db-pool-sizes.js +5 -14
  58. package/dist/lib/migration-012-db-pool-sizes.js.map +1 -1
  59. package/dist/lib/migration-013-grafana-password.d.ts.map +1 -1
  60. package/dist/lib/migration-013-grafana-password.js +5 -13
  61. package/dist/lib/migration-013-grafana-password.js.map +1 -1
  62. package/dist/lib/postgres-performance.d.ts +51 -0
  63. package/dist/lib/postgres-performance.d.ts.map +1 -0
  64. package/dist/lib/postgres-performance.js +279 -0
  65. package/dist/lib/postgres-performance.js.map +1 -0
  66. package/dist/lib/release-migration-progress.d.ts +48 -0
  67. package/dist/lib/release-migration-progress.d.ts.map +1 -0
  68. package/dist/lib/release-migration-progress.js +223 -0
  69. package/dist/lib/release-migration-progress.js.map +1 -0
  70. package/dist/lib/services.d.ts.map +1 -1
  71. package/dist/lib/services.js +70 -1
  72. package/dist/lib/services.js.map +1 -1
  73. package/dist/lib/showtech-steps.d.ts +5 -1
  74. package/dist/lib/showtech-steps.d.ts.map +1 -1
  75. package/dist/lib/showtech-steps.js +44 -13
  76. package/dist/lib/showtech-steps.js.map +1 -1
  77. package/dist/lib/syslog.d.ts +5 -0
  78. package/dist/lib/syslog.d.ts.map +1 -0
  79. package/dist/lib/syslog.js +21 -0
  80. package/dist/lib/syslog.js.map +1 -0
  81. package/dist/lib/update-steps.d.ts.map +1 -1
  82. package/dist/lib/update-steps.js +119 -1
  83. package/dist/lib/update-steps.js.map +1 -1
  84. package/dist/lib/update.d.ts +8 -0
  85. package/dist/lib/update.d.ts.map +1 -1
  86. package/dist/lib/update.js +36 -4
  87. package/dist/lib/update.js.map +1 -1
  88. package/dist/lib/version.d.ts +1 -1
  89. package/dist/lib/version.js +1 -1
  90. package/dist/shell/commands/db.d.ts +1 -0
  91. package/dist/shell/commands/db.d.ts.map +1 -1
  92. package/dist/shell/commands/db.js +18 -0
  93. package/dist/shell/commands/db.js.map +1 -1
  94. package/dist/shell/commands/registry.d.ts.map +1 -1
  95. package/dist/shell/commands/registry.js +3 -1
  96. package/dist/shell/commands/registry.js.map +1 -1
  97. package/dist/shell/commands/show.d.ts +1 -0
  98. package/dist/shell/commands/show.d.ts.map +1 -1
  99. package/dist/shell/commands/show.js +37 -1
  100. package/dist/shell/commands/show.js.map +1 -1
  101. package/dist/ui/components/PostgresPerformanceLines.d.ts +7 -0
  102. package/dist/ui/components/PostgresPerformanceLines.d.ts.map +1 -0
  103. package/dist/ui/components/PostgresPerformanceLines.js +7 -0
  104. package/dist/ui/components/PostgresPerformanceLines.js.map +1 -0
  105. package/dist/ui/components/index.d.ts +1 -0
  106. package/dist/ui/components/index.d.ts.map +1 -1
  107. package/dist/ui/components/index.js +1 -0
  108. package/dist/ui/components/index.js.map +1 -1
  109. package/dist/ui/views/DbBackupView.d.ts.map +1 -1
  110. package/dist/ui/views/DbBackupView.js +11 -27
  111. package/dist/ui/views/DbBackupView.js.map +1 -1
  112. package/dist/ui/views/DbHealthView.d.ts.map +1 -1
  113. package/dist/ui/views/DbHealthView.js +10 -3
  114. package/dist/ui/views/DbHealthView.js.map +1 -1
  115. package/dist/ui/views/DbStatusView.d.ts.map +1 -1
  116. package/dist/ui/views/DbStatusView.js +5 -3
  117. package/dist/ui/views/DbStatusView.js.map +1 -1
  118. package/dist/ui/views/DiagDatabaseView.d.ts.map +1 -1
  119. package/dist/ui/views/DiagDatabaseView.js +3 -1
  120. package/dist/ui/views/DiagDatabaseView.js.map +1 -1
  121. package/dist/ui/views/DiagShowTechView.d.ts +3 -1
  122. package/dist/ui/views/DiagShowTechView.d.ts.map +1 -1
  123. package/dist/ui/views/DiagShowTechView.js +3 -3
  124. package/dist/ui/views/DiagShowTechView.js.map +1 -1
  125. package/dist/ui/views/HealthReportView.d.ts +6 -0
  126. package/dist/ui/views/HealthReportView.d.ts.map +1 -0
  127. package/dist/ui/views/HealthReportView.js +82 -0
  128. package/dist/ui/views/HealthReportView.js.map +1 -0
  129. package/dist/ui/views/MainMenu.d.ts.map +1 -1
  130. package/dist/ui/views/MainMenu.js +4 -1
  131. package/dist/ui/views/MainMenu.js.map +1 -1
  132. package/dist/ui/views/MigrateDrainView.d.ts +6 -0
  133. package/dist/ui/views/MigrateDrainView.d.ts.map +1 -0
  134. package/dist/ui/views/MigrateDrainView.js +77 -0
  135. package/dist/ui/views/MigrateDrainView.js.map +1 -0
  136. package/dist/ui/views/MigrateStatusView.d.ts.map +1 -1
  137. package/dist/ui/views/MigrateStatusView.js +16 -7
  138. package/dist/ui/views/MigrateStatusView.js.map +1 -1
  139. package/dist/ui/views/MigrateWatchView.d.ts.map +1 -1
  140. package/dist/ui/views/MigrateWatchView.js +17 -12
  141. package/dist/ui/views/MigrateWatchView.js.map +1 -1
  142. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-performance.js","sourceRoot":"","sources":["../../src/lib/postgres-performance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ export interface MigrationProgressEntry {
2
+ version?: string;
3
+ name?: string;
4
+ filename?: string;
5
+ description?: string;
6
+ startedAt?: string;
7
+ completedAt?: string;
8
+ runtimeMs?: number;
9
+ }
10
+ export interface MigrationProgressArtifacts {
11
+ statusPath?: string;
12
+ eventsPath?: string;
13
+ logPath?: string;
14
+ }
15
+ export interface MigrationProgressSnapshot {
16
+ state?: string;
17
+ repository?: string;
18
+ appliedCount?: number;
19
+ totalCount?: number;
20
+ pendingCount?: number;
21
+ currentVersion?: string;
22
+ latestApplied?: MigrationProgressEntry;
23
+ currentMigration?: MigrationProgressEntry;
24
+ lastCompletedMigration?: MigrationProgressEntry;
25
+ nextMigration?: MigrationProgressEntry;
26
+ updatedAt?: string;
27
+ error?: string;
28
+ artifacts: MigrationProgressArtifacts;
29
+ }
30
+ export interface MigrationProgressResult {
31
+ source: 'artifact' | 'rpc';
32
+ snapshot: MigrationProgressSnapshot;
33
+ output: string;
34
+ }
35
+ export interface MigrationArtifactTails {
36
+ events: string;
37
+ log: string;
38
+ }
39
+ export declare function formatRuntimeMs(runtimeMs?: number): string;
40
+ export declare function parseMigrationProgressArtifact(raw: string): MigrationProgressSnapshot;
41
+ export declare function formatMigrationProgress(snapshot: MigrationProgressSnapshot): string;
42
+ export declare function getMigrationProgress(): Promise<MigrationProgressResult>;
43
+ export declare function tailMigrationArtifacts(snapshot: MigrationProgressSnapshot, options?: {
44
+ eventLines?: number;
45
+ logLines?: number;
46
+ }): Promise<MigrationArtifactTails>;
47
+ export declare function migrationProgressReportRpc(): string;
48
+ //# sourceMappingURL=release-migration-progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-migration-progress.d.ts","sourceRoot":"","sources":["../../src/lib/release-migration-progress.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,0BAA0B,CAAC;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC;IAC3B,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAoCD,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAa1D;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,CAwBrF;AAMD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,MAAM,CAuCnF;AAuDD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CA4B7E;AAeD,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,OAAO,CAAC,sBAAsB,CAAC,CAMjC;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD"}
@@ -0,0 +1,223 @@
1
+ import { composeExec } from './compose.js';
2
+ import { debug } from './log.js';
3
+ import { rpc } from './rpc.js';
4
+ const DEFAULT_PROGRESS_DIR = '/home/app/logs/migrations';
5
+ function numberValue(value) {
6
+ if (typeof value === 'number' && Number.isFinite(value))
7
+ return Math.trunc(value);
8
+ if (typeof value === 'string' && /^\d+$/.test(value.trim()))
9
+ return Number.parseInt(value.trim(), 10);
10
+ return undefined;
11
+ }
12
+ function stringValue(value) {
13
+ if (value === null || value === undefined)
14
+ return undefined;
15
+ const text = String(value).trim();
16
+ return text.length > 0 ? text : undefined;
17
+ }
18
+ function objectValue(value) {
19
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
20
+ return value;
21
+ }
22
+ return undefined;
23
+ }
24
+ function migrationEntry(value) {
25
+ const obj = objectValue(value);
26
+ if (!obj)
27
+ return undefined;
28
+ return {
29
+ version: stringValue(obj.version),
30
+ name: stringValue(obj.name),
31
+ filename: stringValue(obj.filename),
32
+ description: stringValue(obj.description),
33
+ startedAt: stringValue(obj.started_at),
34
+ completedAt: stringValue(obj.completed_at),
35
+ runtimeMs: numberValue(obj.runtime_ms),
36
+ };
37
+ }
38
+ export function formatRuntimeMs(runtimeMs) {
39
+ if (!Number.isFinite(runtimeMs))
40
+ return 'unknown';
41
+ const totalMs = Math.max(0, Math.trunc(runtimeMs ?? 0));
42
+ const totalSeconds = Math.floor(totalMs / 1000);
43
+ const hours = Math.floor(totalSeconds / 3600);
44
+ const minutes = Math.floor((totalSeconds % 3600) / 60);
45
+ const seconds = totalSeconds % 60;
46
+ const ms = totalMs % 1000;
47
+ if (hours > 0)
48
+ return `${hours}h ${minutes}m ${seconds}.${String(ms).padStart(3, '0')}s`;
49
+ if (minutes > 0)
50
+ return `${minutes}m ${seconds}.${String(ms).padStart(3, '0')}s`;
51
+ return `${seconds}.${String(ms).padStart(3, '0')}s`;
52
+ }
53
+ export function parseMigrationProgressArtifact(raw) {
54
+ const data = JSON.parse(raw);
55
+ const currentMigration = migrationEntry(data.current_migration);
56
+ const latestApplied = migrationEntry(data.latest_applied);
57
+ return {
58
+ state: stringValue(data.state ?? data.status),
59
+ repository: stringValue(data.repository),
60
+ appliedCount: numberValue(data.applied_count),
61
+ totalCount: numberValue(data.total_migrations ?? data.total_count),
62
+ pendingCount: numberValue(data.pending_count),
63
+ currentVersion: stringValue(data.current_version) ?? currentMigration?.version,
64
+ latestApplied,
65
+ currentMigration,
66
+ lastCompletedMigration: migrationEntry(data.last_completed_migration),
67
+ nextMigration: migrationEntry(data.next_migration),
68
+ updatedAt: stringValue(data.updated_at),
69
+ error: stringValue(data.error),
70
+ artifacts: {
71
+ statusPath: stringValue(data.artifact_status_path),
72
+ eventsPath: stringValue(data.artifact_events_path),
73
+ logPath: stringValue(data.artifact_log_path),
74
+ },
75
+ };
76
+ }
77
+ function versionAndFile(entry) {
78
+ return `${entry.version ?? 'unknown'} - ${entry.filename ?? entry.name ?? 'unknown'}`;
79
+ }
80
+ export function formatMigrationProgress(snapshot) {
81
+ const lines = ['=== Migration Progress ==='];
82
+ if (snapshot.state)
83
+ lines.push(`State: ${snapshot.state}`);
84
+ if (snapshot.appliedCount !== undefined || snapshot.totalCount !== undefined) {
85
+ lines.push(`Applied migrations: ${snapshot.appliedCount ?? '?'}/${snapshot.totalCount ?? '?'}`);
86
+ }
87
+ if (snapshot.pendingCount !== undefined)
88
+ lines.push(`Pending migrations: ${snapshot.pendingCount}`);
89
+ if (snapshot.latestApplied) {
90
+ lines.push(`Latest applied: ${versionAndFile(snapshot.latestApplied)}`);
91
+ }
92
+ if (snapshot.currentMigration) {
93
+ lines.push(`Current migration: ${versionAndFile(snapshot.currentMigration)}`);
94
+ if (snapshot.currentMigration.description)
95
+ lines.push(`Current description: ${snapshot.currentMigration.description}`);
96
+ if (snapshot.currentMigration.startedAt)
97
+ lines.push(`Current started: ${snapshot.currentMigration.startedAt}`);
98
+ lines.push(`Current runtime: ${formatRuntimeMs(snapshot.currentMigration.runtimeMs)}`);
99
+ }
100
+ if (snapshot.lastCompletedMigration) {
101
+ lines.push(`Last completed: ${versionAndFile(snapshot.lastCompletedMigration)}`);
102
+ if (snapshot.lastCompletedMigration.description)
103
+ lines.push(`Last completed description: ${snapshot.lastCompletedMigration.description}`);
104
+ if (snapshot.lastCompletedMigration.completedAt)
105
+ lines.push(`Last completed at: ${snapshot.lastCompletedMigration.completedAt}`);
106
+ lines.push(`Last completed runtime: ${formatRuntimeMs(snapshot.lastCompletedMigration.runtimeMs)}`);
107
+ }
108
+ if (snapshot.nextMigration) {
109
+ lines.push(`Next pending: ${versionAndFile(snapshot.nextMigration)}`);
110
+ if (snapshot.nextMigration.description)
111
+ lines.push(`Next description: ${snapshot.nextMigration.description}`);
112
+ }
113
+ if (snapshot.updatedAt)
114
+ lines.push(`Updated at: ${snapshot.updatedAt}`);
115
+ if (snapshot.artifacts.statusPath)
116
+ lines.push(`Artifact status: ${snapshot.artifacts.statusPath}`);
117
+ if (snapshot.artifacts.eventsPath)
118
+ lines.push(`Artifact events: ${snapshot.artifacts.eventsPath}`);
119
+ if (snapshot.artifacts.logPath)
120
+ lines.push(`Artifact log: ${snapshot.artifacts.logPath}`);
121
+ if (snapshot.error)
122
+ lines.push(`Error: ${snapshot.error}`);
123
+ return lines.join('\n');
124
+ }
125
+ function markerValue(raw, key) {
126
+ const prefix = `::${key}=`;
127
+ const line = raw.split('\n').find((entry) => entry.startsWith(prefix));
128
+ return line ? line.slice(prefix.length).trim() : undefined;
129
+ }
130
+ /**
131
+ * Parses release-side migration progress output into the minimum structured
132
+ * snapshot the update loop needs. The contract is strict: a numeric
133
+ * `pendingCount` must be derivable from hidden markers, human-readable pending
134
+ * text, or applied/total counts. Without that value the caller cannot know when
135
+ * migrations are complete, so this throws instead of letting the update poll
136
+ * indefinitely.
137
+ */
138
+ function parseRpcMarkers(raw) {
139
+ const markerPendingCount = numberValue(markerValue(raw, 'pending_count'));
140
+ const pendingMatch = raw.match(/Pending migrations:\s+(\d+)/);
141
+ const appliedMatch = raw.match(/Applied migrations:\s+(\d+)\/(\d+)/);
142
+ const appliedCount = appliedMatch ? Number.parseInt(appliedMatch[1], 10) : undefined;
143
+ const totalCount = appliedMatch ? Number.parseInt(appliedMatch[2], 10) : undefined;
144
+ const pendingCount = markerPendingCount
145
+ ?? (pendingMatch ? Number.parseInt(pendingMatch[1], 10) : undefined)
146
+ ?? (appliedCount !== undefined && totalCount !== undefined
147
+ ? Math.max(totalCount - appliedCount, 0)
148
+ : undefined);
149
+ if (pendingCount === undefined) {
150
+ throw new Error('Unable to determine pending migration count from release migration progress report');
151
+ }
152
+ return {
153
+ appliedCount,
154
+ totalCount,
155
+ pendingCount,
156
+ artifacts: {},
157
+ };
158
+ }
159
+ async function readArtifactJson() {
160
+ const artifactDir = process.env.CT_MIGRATION_PROGRESS_DIR ?? DEFAULT_PROGRESS_DIR;
161
+ const result = await composeExec('web', [
162
+ 'sh',
163
+ '-lc',
164
+ 'status_path="$1"; if [ -f "$status_path" ]; then cat "$status_path"; fi',
165
+ '--',
166
+ `${artifactDir}/current_status.json`,
167
+ ], { pipe: true });
168
+ const stdout = String(result.stdout ?? '').trim();
169
+ return stdout.length > 0 ? stdout : null;
170
+ }
171
+ export async function getMigrationProgress() {
172
+ try {
173
+ const artifact = await readArtifactJson();
174
+ if (artifact) {
175
+ const snapshot = parseMigrationProgressArtifact(artifact);
176
+ if (typeof snapshot.pendingCount !== 'number') {
177
+ throw new Error('Migration progress artifact missing pending_count');
178
+ }
179
+ return {
180
+ source: 'artifact',
181
+ snapshot,
182
+ output: formatMigrationProgress(snapshot),
183
+ };
184
+ }
185
+ }
186
+ catch (err) {
187
+ // Fall through to release-side report. Older releases and booting apps may
188
+ // not have written the artifact yet.
189
+ const message = err instanceof Error ? err.message : String(err);
190
+ debug(`Read/parse migration progress artifact failed, falling back to RPC: ${message}`);
191
+ }
192
+ const output = await rpc(migrationProgressReportRpc());
193
+ const snapshot = parseRpcMarkers(output);
194
+ return {
195
+ source: 'rpc',
196
+ snapshot,
197
+ output: output.split('\n').filter((line) => !line.startsWith('::')).join('\n'),
198
+ };
199
+ }
200
+ async function tailArtifact(path, lines) {
201
+ if (!path)
202
+ return '';
203
+ const result = await composeExec('web', [
204
+ 'sh',
205
+ '-lc',
206
+ 'artifact_path="$1"; lines="$2"; if [ -f "$artifact_path" ]; then tail -n "$lines" "$artifact_path"; fi',
207
+ '--',
208
+ path,
209
+ String(lines),
210
+ ], { pipe: true });
211
+ return String(result.stdout ?? '').trim();
212
+ }
213
+ export async function tailMigrationArtifacts(snapshot, options = {}) {
214
+ const [events, log] = await Promise.all([
215
+ tailArtifact(snapshot.artifacts.eventsPath, options.eventLines ?? 2),
216
+ tailArtifact(snapshot.artifacts.logPath, options.logLines ?? 5),
217
+ ]);
218
+ return { events, log };
219
+ }
220
+ export function migrationProgressReportRpc() {
221
+ return 'IO.puts(Cdrcisco.Release.migration_progress_report())';
222
+ }
223
+ //# sourceMappingURL=release-migration-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-migration-progress.js","sourceRoot":"","sources":["../../src/lib/release-migration-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AA6CzD,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACtG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAgC,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAE3B,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;QACjC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;QACzC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;QACtC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC;QAC1C,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAkB;IAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAElD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;IAClC,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC;IAE1B,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,KAAK,KAAK,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;IACzF,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,GAAG,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;IACjF,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAAW;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IACxD,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE1D,OAAO;QACL,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;QAC7C,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;QACxC,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;QAC7C,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,CAAC;QAClE,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;QAC7C,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,EAAE,OAAO;QAC9E,aAAa;QACb,gBAAgB;QAChB,sBAAsB,EAAE,cAAc,CAAC,IAAI,CAAC,wBAAwB,CAAC;QACrE,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;QAClD,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;QACvC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,SAAS,EAAE;YACT,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAClD,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAClD,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC;SAC7C;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAA6B;IACnD,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,SAAS,MAAM,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAmC;IACzE,MAAM,KAAK,GAAa,CAAC,4BAA4B,CAAC,CAAC;IAEvD,IAAI,QAAQ,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3D,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,YAAY,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IAEpG,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,mBAAmB,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,sBAAsB,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC9E,IAAI,QAAQ,CAAC,gBAAgB,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;QACvH,IAAI,QAAQ,CAAC,gBAAgB,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/G,KAAK,CAAC,IAAI,CAAC,oBAAoB,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,mBAAmB,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACjF,IAAI,QAAQ,CAAC,sBAAsB,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,+BAA+B,QAAQ,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1I,IAAI,QAAQ,CAAC,sBAAsB,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,QAAQ,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,CAAC;QACjI,KAAK,CAAC,IAAI,CAAC,2BAA2B,eAAe,CAAC,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,QAAQ,CAAC,aAAa,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,IAAI,QAAQ,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACxE,IAAI,QAAQ,CAAC,SAAS,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACnG,IAAI,QAAQ,CAAC,SAAS,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACnG,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1F,IAAI,QAAQ,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAE3D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,GAAW;IAC3C,MAAM,MAAM,GAAG,KAAK,GAAG,GAAG,CAAC;IAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,kBAAkB,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,YAAY,GAAG,kBAAkB;WAClC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;WAClE,CAAC,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;YACxD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,YAAY,EAAE,CAAC,CAAC;YACxC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACxG,CAAC;IAED,OAAO;QACL,YAAY;QACZ,UAAU;QACV,YAAY;QACZ,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,oBAAoB,CAAC;IAElF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE;QACtC,IAAI;QACJ,KAAK;QACL,yEAAyE;QACzE,IAAI;QACJ,GAAG,WAAW,sBAAsB;KACrC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACvE,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,QAAQ;gBACR,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC;aAC1C,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,2EAA2E;QAC3E,qCAAqC;QACrC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,KAAK,CAAC,uEAAuE,OAAO,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO;QACL,MAAM,EAAE,KAAK;QACb,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAwB,EAAE,KAAa;IACjE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE;QACtC,IAAI;QACJ,KAAK;QACL,wGAAwG;QACxG,IAAI;QACJ,IAAI;QACJ,MAAM,CAAC,KAAK,CAAC;KACd,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACnB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAmC,EACnC,UAAsD,EAAE;IAExD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QACpE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;KAChE,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,uDAAuD,CAAC;AACjE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/lib/services.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAKD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAa/E;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAkB7D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAqBrE;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM;;;;;IAE9C;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM;;;;;IAE7C;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM;;;;;IAEhD;AAED,wBAAsB,gBAAgB;;;;IAErC;AAED,wBAAsB,eAAe;;;;;IAEpC"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/lib/services.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAKD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAa/E;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAkB7D;AA+ED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAqBrE;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM;;;;;IAE9C;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM;;;;;IAE7C;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM;;;;;IAEhD;AAED,wBAAsB,gBAAgB;;;;IAErC;AAED,wBAAsB,eAAe;;;;;IAEpC"}
@@ -1,5 +1,7 @@
1
1
  import { compose, composeUp } from './compose.js';
2
2
  import { debug } from './log.js';
3
+ import { getPaths } from './paths.js';
4
+ import { execa } from 'execa';
3
5
  /** Fetch resolved compose config for all services. Cached per session — config doesn't change at runtime. */
4
6
  let configCache = null;
5
7
  export async function getComposeConfig() {
@@ -23,7 +25,7 @@ export async function getServiceList() {
23
25
  const result = await compose(['ps', '-a', '--format', 'json'], { pipe: true });
24
26
  const raw = (result.stdout ?? '').trim();
25
27
  if (!raw)
26
- return [];
28
+ return getServiceListFromDockerLabels();
27
29
  return raw.split('\n')
28
30
  .filter(line => line.trim())
29
31
  .map(line => {
@@ -38,6 +40,73 @@ export async function getServiceList() {
38
40
  };
39
41
  });
40
42
  }
43
+ function parseHealth(status) {
44
+ if (status.includes('(healthy)'))
45
+ return 'healthy';
46
+ if (status.includes('(unhealthy)'))
47
+ return 'unhealthy';
48
+ if (status.includes('(health: starting)'))
49
+ return 'starting';
50
+ return '';
51
+ }
52
+ function projectScore(project, rows, installDir) {
53
+ const projectRows = rows.filter((row) => row.project === project);
54
+ const services = new Set(projectRows.map((row) => row.service));
55
+ const workingDirScore = Math.max(...projectRows.map((row) => {
56
+ if (row.workingDir === installDir)
57
+ return 3;
58
+ if (row.workingDir.startsWith(`${installDir}/`))
59
+ return 2;
60
+ if (installDir.startsWith(`${row.workingDir}/`))
61
+ return 1;
62
+ return 0;
63
+ }));
64
+ const appScore = (services.has('web') ? 4 : 0) + (services.has('db') ? 3 : 0) + (services.has('nats') ? 1 : 0);
65
+ const defaultProjectScore = project === 'docker-compose' ? 1 : 0;
66
+ return workingDirScore * 10 + appScore + defaultProjectScore;
67
+ }
68
+ async function getServiceListFromDockerLabels() {
69
+ try {
70
+ const { stdout } = await execa('docker', [
71
+ 'ps',
72
+ '-a',
73
+ '--filter',
74
+ 'label=com.docker.compose.project',
75
+ '--format',
76
+ '{{.Names}}\t{{.Image}}\t{{.State}}\t{{.Status}}\t{{.Ports}}\t{{.Label "com.docker.compose.service"}}\t{{.Label "com.docker.compose.project"}}\t{{.Label "com.docker.compose.project.working_dir"}}',
77
+ ], { stdout: 'pipe', stderr: 'pipe' });
78
+ const rows = stdout
79
+ .split('\n')
80
+ .map((line) => line.trim())
81
+ .filter(Boolean)
82
+ .map((line) => {
83
+ const [name = '', image = '', state = '', status = '', ports = '', service = '', project = '', workingDir = ''] = line.split('\t');
84
+ return { name, image, state, status, ports, service, project, workingDir };
85
+ })
86
+ .filter((row) => row.service && row.project);
87
+ if (rows.length === 0)
88
+ return [];
89
+ const { installDir } = getPaths();
90
+ const projects = [...new Set(rows.map((row) => row.project))];
91
+ projects.sort((a, b) => projectScore(b, rows, installDir) - projectScore(a, rows, installDir) || a.localeCompare(b));
92
+ const selectedProject = projects[0];
93
+ return rows
94
+ .filter((row) => row.project === selectedProject)
95
+ .sort((a, b) => a.service.localeCompare(b.service))
96
+ .map((row) => ({
97
+ service: row.service,
98
+ state: row.state,
99
+ health: parseHealth(row.status),
100
+ image: row.image,
101
+ ports: row.ports,
102
+ status: row.status,
103
+ }));
104
+ }
105
+ catch (err) {
106
+ debug(`Docker label service fallback failed: ${err.message}`);
107
+ return [];
108
+ }
109
+ }
41
110
  export async function getServiceListSafe() {
42
111
  try {
43
112
  const services = await getServiceList();
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/lib/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/lib/services.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,9 @@
3
3
  * Returns UpdateStep[] consumed by useStepRunner (TUI) or runStepsCli (CLI).
4
4
  */
5
5
  import type { UpdateStep } from './update-steps.js';
6
- export declare function showtechSteps(bundleDir: string, policyMinutes?: number): UpdateStep[];
6
+ export interface ShowtechOptions {
7
+ policyMinutes?: number;
8
+ includeDiskBenchmark?: boolean;
9
+ }
10
+ export declare function showtechSteps(bundleDir: string, policyOrOptions?: number | ShowtechOptions): UpdateStep[];
7
11
  //# sourceMappingURL=showtech-steps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"showtech-steps.d.ts","sourceRoot":"","sources":["../../src/lib/showtech-steps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AA0CjE,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CA+XrF"}
1
+ {"version":3,"file":"showtech-steps.d.ts","sourceRoot":"","sources":["../../src/lib/showtech-steps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AAuBjE,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AA2BD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,UAAU,EAAE,CAwZzG"}
@@ -19,12 +19,18 @@ import { loadPrefs } from './prefs.js';
19
19
  import { exec } from './exec.js';
20
20
  import { redactSecrets } from './redact.js';
21
21
  import { formatBytes } from './system.js';
22
+ import { buildHealthReport, renderHealthReportText } from './health-report.js';
22
23
  /** All known compose services to collect logs from. */
23
24
  const LOG_SERVICES = ['web', 'db', 'nats', 'seaweedfs', 'jtapi-sidecar', 'ct-media'];
24
25
  /** Helper: write text to a file in the bundle directory. */
25
26
  async function writeBundle(bundleDir, filename, content) {
26
27
  await writeFile(join(bundleDir, filename), content, 'utf-8');
27
28
  }
29
+ function normalizeShowtechOptions(policyOrOptions) {
30
+ if (typeof policyOrOptions === 'number')
31
+ return { policyMinutes: policyOrOptions };
32
+ return policyOrOptions ?? {};
33
+ }
28
34
  /** Helper: safely collect container logs. Returns output + whether the service was reachable. */
29
35
  async function safeComposeLogs(service) {
30
36
  try {
@@ -39,7 +45,9 @@ async function safeComposeLogs(service) {
39
45
  return { output: `[${label}]`, available: false };
40
46
  }
41
47
  }
42
- export function showtechSteps(bundleDir, policyMinutes) {
48
+ export function showtechSteps(bundleDir, policyOrOptions) {
49
+ const options = normalizeShowtechOptions(policyOrOptions);
50
+ const policyMinutes = options.policyMinutes;
43
51
  return [
44
52
  // 0. Prepare bundle directory
45
53
  {
@@ -50,7 +58,30 @@ export function showtechSteps(bundleDir, policyMinutes) {
50
58
  return bundleDir;
51
59
  },
52
60
  },
53
- // 1. System info
61
+ // 1. Health report
62
+ {
63
+ label: 'Health report',
64
+ run: async (ctx) => {
65
+ try {
66
+ const report = await buildHealthReport({ includeDiskBenchmark: options.includeDiskBenchmark !== false });
67
+ await writeBundle(bundleDir, '00-health-report.json', `${JSON.stringify(report, null, 2)}\n`);
68
+ await writeBundle(bundleDir, '00-health-report.txt', renderHealthReportText(report));
69
+ ctx?.log(`${report.reportId}: ${report.summary.status}`);
70
+ return `${report.summary.status} (${report.reportId})`;
71
+ }
72
+ catch (err) {
73
+ const fallback = {
74
+ error: err.message ?? String(err),
75
+ generated_at: new Date().toISOString(),
76
+ };
77
+ await writeBundle(bundleDir, '00-health-report.json', `${JSON.stringify(fallback, null, 2)}\n`);
78
+ await writeBundle(bundleDir, '00-health-report.txt', `Health report unavailable: ${fallback.error}\n`);
79
+ ctx?.log(`Health report unavailable: ${fallback.error}`);
80
+ return 'unavailable';
81
+ }
82
+ },
83
+ },
84
+ // 2. System info
54
85
  {
55
86
  label: 'System info',
56
87
  run: async (ctx) => {
@@ -71,7 +102,7 @@ export function showtechSteps(bundleDir, policyMinutes) {
71
102
  return `${platform()} ${release()}, ${formatBytes(totalmem())} RAM`;
72
103
  },
73
104
  },
74
- // 2. Network interfaces
105
+ // 3. Network interfaces
75
106
  {
76
107
  label: 'Network interfaces',
77
108
  run: async (ctx) => {
@@ -90,7 +121,7 @@ export function showtechSteps(bundleDir, policyMinutes) {
90
121
  return `${ifaces.length} interfaces`;
91
122
  },
92
123
  },
93
- // 3. Docker container status
124
+ // 4. Docker container status
94
125
  {
95
126
  label: 'Docker container status',
96
127
  run: async (ctx) => {
@@ -108,7 +139,7 @@ export function showtechSteps(bundleDir, policyMinutes) {
108
139
  return `${lineCount} lines`;
109
140
  },
110
141
  },
111
- // 4–9. Container logs
142
+ // 5-10. Container logs
112
143
  ...LOG_SERVICES.map((service, idx) => ({
113
144
  label: `Application logs (${service})`,
114
145
  run: async (ctx) => {
@@ -125,7 +156,7 @@ export function showtechSteps(bundleDir, policyMinutes) {
125
156
  return `${lineCount} lines`;
126
157
  },
127
158
  })),
128
- // 10. Systemd journal
159
+ // 11. Systemd journal
129
160
  {
130
161
  label: 'Systemd journal',
131
162
  run: async (ctx) => {
@@ -146,7 +177,7 @@ export function showtechSteps(bundleDir, policyMinutes) {
146
177
  return `${lineCount} lines`;
147
178
  },
148
179
  },
149
- // 11. Database diagnostics
180
+ // 12. Database diagnostics
150
181
  {
151
182
  label: 'Database diagnostics',
152
183
  run: async (ctx) => {
@@ -188,7 +219,7 @@ export function showtechSteps(bundleDir, policyMinutes) {
188
219
  }
189
220
  },
190
221
  },
191
- // 12. App health
222
+ // 13. App health
192
223
  {
193
224
  label: 'App health check',
194
225
  run: async (ctx) => {
@@ -207,7 +238,7 @@ export function showtechSteps(bundleDir, policyMinutes) {
207
238
  }
208
239
  },
209
240
  },
210
- // 13. Migration status
241
+ // 14. Migration status
211
242
  {
212
243
  label: 'Migration status',
213
244
  run: async (ctx) => {
@@ -249,7 +280,7 @@ export function showtechSteps(bundleDir, policyMinutes) {
249
280
  return 'captured';
250
281
  },
251
282
  },
252
- // 14. Install directory listing
283
+ // 15. Install directory listing
253
284
  {
254
285
  label: 'Install directory listing',
255
286
  run: async (ctx) => {
@@ -267,7 +298,7 @@ export function showtechSteps(bundleDir, policyMinutes) {
267
298
  return installDir;
268
299
  },
269
300
  },
270
- // 15. Docker compose files
301
+ // 16. Docker compose files
271
302
  {
272
303
  label: 'Docker compose files',
273
304
  run: async (ctx) => {
@@ -294,7 +325,7 @@ export function showtechSteps(bundleDir, policyMinutes) {
294
325
  return `${count} files`;
295
326
  },
296
327
  },
297
- // 16. CLI preferences
328
+ // 17. CLI preferences
298
329
  {
299
330
  label: 'CLI preferences',
300
331
  run: async (ctx) => {
@@ -307,7 +338,7 @@ export function showtechSteps(bundleDir, policyMinutes) {
307
338
  return prefs ? 'loaded' : 'first run';
308
339
  },
309
340
  },
310
- // 17–18. Greeting policies + policy history (conditional)
341
+ // Greeting policies + policy history (conditional)
311
342
  ...(policyMinutes !== undefined
312
343
  ? [
313
344
  {