@camunda8/cli 2.6.1 → 2.7.0-alpha.10

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 (144) hide show
  1. package/README.md +80 -1
  2. package/dist/command-dispatch.d.ts +16 -0
  3. package/dist/command-dispatch.d.ts.map +1 -0
  4. package/dist/command-dispatch.js +129 -0
  5. package/dist/command-dispatch.js.map +1 -0
  6. package/dist/command-framework.d.ts +248 -0
  7. package/dist/command-framework.d.ts.map +1 -0
  8. package/dist/command-framework.js +229 -0
  9. package/dist/command-framework.js.map +1 -0
  10. package/dist/command-registry.d.ts +2089 -0
  11. package/dist/command-registry.d.ts.map +1 -0
  12. package/dist/command-registry.js +1482 -0
  13. package/dist/command-registry.js.map +1 -0
  14. package/dist/command-validation.d.ts +30 -4
  15. package/dist/command-validation.d.ts.map +1 -1
  16. package/dist/command-validation.js +90 -4
  17. package/dist/command-validation.js.map +1 -1
  18. package/dist/commands/completion.d.ts +25 -1
  19. package/dist/commands/completion.d.ts.map +1 -1
  20. package/dist/commands/completion.js +590 -1223
  21. package/dist/commands/completion.js.map +1 -1
  22. package/dist/commands/deployments.d.ts +2 -0
  23. package/dist/commands/deployments.d.ts.map +1 -1
  24. package/dist/commands/deployments.js +13 -2
  25. package/dist/commands/deployments.js.map +1 -1
  26. package/dist/commands/forms.d.ts +2 -20
  27. package/dist/commands/forms.d.ts.map +1 -1
  28. package/dist/commands/forms.js +76 -79
  29. package/dist/commands/forms.js.map +1 -1
  30. package/dist/commands/help.d.ts +4 -88
  31. package/dist/commands/help.d.ts.map +1 -1
  32. package/dist/commands/help.js +574 -1941
  33. package/dist/commands/help.js.map +1 -1
  34. package/dist/commands/identity-authorizations.d.ts +5 -24
  35. package/dist/commands/identity-authorizations.d.ts.map +1 -1
  36. package/dist/commands/identity-authorizations.js +113 -137
  37. package/dist/commands/identity-authorizations.js.map +1 -1
  38. package/dist/commands/identity-groups.d.ts +5 -26
  39. package/dist/commands/identity-groups.d.ts.map +1 -1
  40. package/dist/commands/identity-groups.js +91 -124
  41. package/dist/commands/identity-groups.js.map +1 -1
  42. package/dist/commands/identity-mapping-rules.d.ts +5 -30
  43. package/dist/commands/identity-mapping-rules.d.ts.map +1 -1
  44. package/dist/commands/identity-mapping-rules.js +106 -136
  45. package/dist/commands/identity-mapping-rules.js.map +1 -1
  46. package/dist/commands/identity-roles.d.ts +5 -26
  47. package/dist/commands/identity-roles.d.ts.map +1 -1
  48. package/dist/commands/identity-roles.js +91 -124
  49. package/dist/commands/identity-roles.js.map +1 -1
  50. package/dist/commands/identity-tenants.d.ts +5 -26
  51. package/dist/commands/identity-tenants.d.ts.map +1 -1
  52. package/dist/commands/identity-tenants.js +92 -126
  53. package/dist/commands/identity-tenants.js.map +1 -1
  54. package/dist/commands/identity-users.d.ts +5 -29
  55. package/dist/commands/identity-users.d.ts.map +1 -1
  56. package/dist/commands/identity-users.js +95 -129
  57. package/dist/commands/identity-users.js.map +1 -1
  58. package/dist/commands/identity.d.ts +6 -6
  59. package/dist/commands/identity.d.ts.map +1 -1
  60. package/dist/commands/identity.js +6 -7
  61. package/dist/commands/identity.js.map +1 -1
  62. package/dist/commands/incidents.d.ts +3 -16
  63. package/dist/commands/incidents.d.ts.map +1 -1
  64. package/dist/commands/incidents.js +71 -98
  65. package/dist/commands/incidents.js.map +1 -1
  66. package/dist/commands/jobs.d.ts +4 -26
  67. package/dist/commands/jobs.d.ts.map +1 -1
  68. package/dist/commands/jobs.js +143 -159
  69. package/dist/commands/jobs.js.map +1 -1
  70. package/dist/commands/mcp-proxy.d.ts +1 -0
  71. package/dist/commands/mcp-proxy.d.ts.map +1 -1
  72. package/dist/commands/mcp-proxy.js +10 -2
  73. package/dist/commands/mcp-proxy.js.map +1 -1
  74. package/dist/commands/messages.d.ts +2 -12
  75. package/dist/commands/messages.d.ts.map +1 -1
  76. package/dist/commands/messages.js +87 -81
  77. package/dist/commands/messages.js.map +1 -1
  78. package/dist/commands/open.d.ts +4 -0
  79. package/dist/commands/open.d.ts.map +1 -1
  80. package/dist/commands/open.js +18 -0
  81. package/dist/commands/open.js.map +1 -1
  82. package/dist/commands/plugins.d.ts +7 -9
  83. package/dist/commands/plugins.d.ts.map +1 -1
  84. package/dist/commands/plugins.js +32 -25
  85. package/dist/commands/plugins.js.map +1 -1
  86. package/dist/commands/process-definitions.d.ts +2 -14
  87. package/dist/commands/process-definitions.d.ts.map +1 -1
  88. package/dist/commands/process-definitions.js +57 -80
  89. package/dist/commands/process-definitions.js.map +1 -1
  90. package/dist/commands/process-instances.d.ts +8 -37
  91. package/dist/commands/process-instances.d.ts.map +1 -1
  92. package/dist/commands/process-instances.js +242 -193
  93. package/dist/commands/process-instances.js.map +1 -1
  94. package/dist/commands/profiles.d.ts +4 -0
  95. package/dist/commands/profiles.d.ts.map +1 -1
  96. package/dist/commands/profiles.js +29 -0
  97. package/dist/commands/profiles.js.map +1 -1
  98. package/dist/commands/run.d.ts +2 -0
  99. package/dist/commands/run.d.ts.map +1 -1
  100. package/dist/commands/run.js +10 -0
  101. package/dist/commands/run.js.map +1 -1
  102. package/dist/commands/search.d.ts +7 -100
  103. package/dist/commands/search.d.ts.map +1 -1
  104. package/dist/commands/search.js +530 -694
  105. package/dist/commands/search.js.map +1 -1
  106. package/dist/commands/session.d.ts +3 -0
  107. package/dist/commands/session.d.ts.map +1 -1
  108. package/dist/commands/session.js +30 -0
  109. package/dist/commands/session.js.map +1 -1
  110. package/dist/commands/topology.d.ts +1 -3
  111. package/dist/commands/topology.d.ts.map +1 -1
  112. package/dist/commands/topology.js +11 -18
  113. package/dist/commands/topology.js.map +1 -1
  114. package/dist/commands/user-tasks.d.ts +2 -16
  115. package/dist/commands/user-tasks.d.ts.map +1 -1
  116. package/dist/commands/user-tasks.js +73 -101
  117. package/dist/commands/user-tasks.js.map +1 -1
  118. package/dist/commands/watch.d.ts +1 -0
  119. package/dist/commands/watch.d.ts.map +1 -1
  120. package/dist/commands/watch.js +15 -0
  121. package/dist/commands/watch.js.map +1 -1
  122. package/dist/config.d.ts.map +1 -1
  123. package/dist/config.js +5 -0
  124. package/dist/config.js.map +1 -1
  125. package/dist/default-plugins/cluster/README.md +1 -1
  126. package/dist/default-plugins/cluster/c8ctl-plugin.js +281 -59
  127. package/dist/index.d.ts +0 -4
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +111 -1023
  130. package/dist/index.js.map +1 -1
  131. package/dist/logger.d.ts +5 -0
  132. package/dist/logger.d.ts.map +1 -1
  133. package/dist/logger.js +7 -1
  134. package/dist/logger.js.map +1 -1
  135. package/dist/plugin-loader.d.ts +5 -0
  136. package/dist/plugin-loader.d.ts.map +1 -1
  137. package/dist/plugin-loader.js +1 -0
  138. package/dist/plugin-loader.js.map +1 -1
  139. package/dist/update-check.d.ts +67 -0
  140. package/dist/update-check.d.ts.map +1 -0
  141. package/dist/update-check.js +284 -0
  142. package/dist/update-check.js.map +1 -0
  143. package/package.json +3 -2
  144. /package/dist/templates/{tsconfig.json → tsconfig.json.template} +0 -0
package/dist/config.js CHANGED
@@ -227,6 +227,11 @@ export function removeProfile(name) {
227
227
  return false;
228
228
  }
229
229
  saveProfiles(filtered);
230
+ // If the removed profile was the active session profile, clear it
231
+ // so `which profile` doesn't report a ghost profile.
232
+ if (c8ctl.activeProfile === name) {
233
+ clearActiveProfile();
234
+ }
230
235
  return true;
231
236
  }
232
237
  // ============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ A default [c8ctl](https://github.com/camunda/c8ctl) plugin that provides an opin
8
8
  # Start with a specific version
9
9
  c8ctl cluster start 8.9.0-alpha5
10
10
 
11
- # Start using a version alias (dynamically resolved)
11
+ # Start using a version alias
12
12
  c8ctl cluster start stable
13
13
  c8ctl cluster start alpha
14
14
 
@@ -81,14 +81,18 @@ export async function discoverLatestVersions() {
81
81
  * - Minor version directories (e.g. "8.8/", "8.9/") are rolling releases
82
82
  * updated in-place.
83
83
  * - An alpha train exists when there are "X.Y.0-alphaN/" directories
84
- * for a given minor. The highest minor with alphas is the alpha alias.
85
- * - The highest minor without alphas is the stable alias.
84
+ * for a given minor that has NOT yet shipped a GA release (X.Y.0/).
85
+ * The highest such minor is the alpha train.
86
+ * - stable = highest minor that is NOT in the alpha train.
87
+ * - alpha = highest minor overall (regardless of alpha train membership).
86
88
  */
87
89
  export function parseVersionsFromHtml(html) {
88
90
  // Match minor-version directories like "8.8/", "8.9/"
89
91
  const minorMatches = [...html.matchAll(/href="(\d+\.\d+)\/"/g)].map(m => m[1]);
90
92
  // Match alpha directories like "8.9.0-alpha5/"
91
93
  const alphaMatches = [...html.matchAll(/href="(\d+\.\d+)\.0-alpha\d+\/"/g)].map(m => m[1]);
94
+ // Match GA release directories like "8.9.0/"
95
+ const gaMatches = [...html.matchAll(/href="(\d+\.\d+)\.0\/"/g)].map(m => m[1]);
92
96
 
93
97
  if (minorMatches.length === 0) return null;
94
98
 
@@ -99,22 +103,17 @@ export function parseVersionsFromHtml(html) {
99
103
  };
100
104
 
101
105
  const sortedMinors = [...new Set(minorMatches)].sort(compareSemver);
102
- const alphaSet = new Set(alphaMatches);
106
+ const gaSet = new Set(gaMatches);
103
107
 
104
- const highestMinor = sortedMinors[sortedMinors.length - 1];
108
+ // A minor is only in the alpha train if it has alpha dirs but NO GA release yet.
109
+ // Once X.Y.0/ exists, that minor has graduated.
110
+ const alphaOnlyMinors = [...new Set(alphaMatches)].filter(v => !gaSet.has(v));
111
+ const alphaSet = new Set(alphaOnlyMinors);
105
112
 
106
- // The alpha train is the highest minor that has alpha directories.
107
- // The stable release is the minor just below the alpha train,
108
- // or the highest minor if no alpha train exists.
109
- const highestAlphaMinor = [...alphaSet].sort(compareSemver).pop();
113
+ const highestMinor = sortedMinors[sortedMinors.length - 1];
110
114
 
111
- let stable;
112
- if (highestAlphaMinor) {
113
- // Stable = the highest minor that is lower than the alpha train
114
- stable = sortedMinors.filter(v => compareSemver(v, highestAlphaMinor) < 0).pop() || highestMinor;
115
- } else {
116
- stable = highestMinor;
117
- }
115
+ // Stable = highest minor that is NOT in the alpha train
116
+ const stable = sortedMinors.filter(v => !alphaSet.has(v)).pop() || highestMinor;
118
117
 
119
118
  return {
120
119
  stable,
@@ -132,24 +131,34 @@ async function getDynamicAliases() {
132
131
  return _dynamicAliases;
133
132
  }
134
133
 
135
- async function resolveVersion(versionSpec, { preferLocal = false, cacheDir } = {}) {
134
+ export async function resolveVersion(versionSpec, { preferLocal = false, cacheDir } = {}) {
136
135
  if (!isVersionAlias(versionSpec)) return versionSpec;
137
136
 
138
- // When preferLocal is set (e.g. start), try the persisted alias mapping first
137
+ // start: use cached alias if the version is installed (deterministic)
139
138
  if (preferLocal && cacheDir) {
140
139
  const local = readLocalAliasMapping(cacheDir, versionSpec);
141
140
  if (local) return local;
142
141
  }
143
142
 
143
+ // Try remote discovery
144
144
  const dynamic = await getDynamicAliases();
145
- const resolved = dynamic?.[versionSpec] ?? _fallbackAliases[versionSpec] ?? versionSpec;
146
145
 
147
- // Persist the resolved mapping for future offline use
148
- if (cacheDir && dynamic?.[versionSpec]) {
149
- storeLocalAliasMapping(cacheDir, versionSpec, resolved);
146
+ if (dynamic?.[versionSpec]) {
147
+ // Persist for offline use and future preferLocal lookups
148
+ if (cacheDir) {
149
+ storeLocalAliasMapping(cacheDir, versionSpec, dynamic[versionSpec]);
150
+ }
151
+ return dynamic[versionSpec];
150
152
  }
151
153
 
152
- return resolved;
154
+ // Remote unavailable — fall back to persisted alias if the version is installed
155
+ if (!preferLocal && cacheDir) {
156
+ const local = readLocalAliasMapping(cacheDir, versionSpec);
157
+ if (local) return local;
158
+ }
159
+
160
+ // Last resort: hardcoded fallback from package.json
161
+ return _fallbackAliases[versionSpec] ?? versionSpec;
153
162
  }
154
163
 
155
164
  function getAliasMappingPath(cacheDir, alias) {
@@ -169,7 +178,7 @@ function readLocalAliasMapping(cacheDir, alias) {
169
178
  }
170
179
  }
171
180
 
172
- function storeLocalAliasMapping(cacheDir, alias, resolved) {
181
+ export function storeLocalAliasMapping(cacheDir, alias, resolved) {
173
182
  try {
174
183
  mkdirSync(cacheDir, { recursive: true });
175
184
  writeFileSync(getAliasMappingPath(cacheDir, alias), resolved);
@@ -184,11 +193,66 @@ async function getVersionAliasEntries() {
184
193
  return Object.entries(aliases);
185
194
  }
186
195
 
196
+ /**
197
+ * Synchronous variant that uses only the cached discovery result or fallback.
198
+ * Used for help output so it never blocks on a network request.
199
+ */
200
+ function getVersionAliasEntriesSync() {
201
+ const aliases = _dynamicAliases || _fallbackAliases;
202
+ return Object.entries(aliases);
203
+ }
204
+
187
205
  /** Reset the cached dynamic aliases (for testing). */
188
206
  export function _resetDynamicAliasCache() {
189
207
  _dynamicAliases = undefined;
190
208
  }
191
209
 
210
+ /**
211
+ * Non-blocking background check: query the remote download server and print
212
+ * a hint if the remote alias resolves to a different (newer) version.
213
+ *
214
+ * Important: does NOT update the persisted alias mapping. The mapping is only
215
+ * updated when the user explicitly runs `cluster install`, keeping `start`
216
+ * deterministic across runs.
217
+ *
218
+ * Returns the fire-and-forget promise (for testing).
219
+ */
220
+ export function checkBackgroundAliasFreshness(versionSpec, resolvedVersion) {
221
+ const logger = getLogger();
222
+ const controller = new AbortController();
223
+ const timeoutId = setTimeout(() => controller.abort(), 5000);
224
+ return fireAndForget(
225
+ fetch(DOWNLOAD_BASE_URL, { signal: controller.signal })
226
+ .then((res) => res.ok ? res.text() : null)
227
+ .then((html) => {
228
+ if (html) {
229
+ const remote = parseVersionsFromHtml(html);
230
+ const remoteVersion = remote?.[versionSpec];
231
+ if (remoteVersion && remoteVersion !== resolvedVersion) {
232
+ logger.info(
233
+ `A newer "${versionSpec}" release is available (${remoteVersion}). ` +
234
+ `Install it with: c8ctl cluster install ${versionSpec}`,
235
+ );
236
+ }
237
+ }
238
+ })
239
+ .finally(() => clearTimeout(timeoutId)),
240
+ );
241
+ }
242
+
243
+ // ---------------------------------------------------------------------------
244
+ // Helpers – fire-and-forget
245
+ // ---------------------------------------------------------------------------
246
+
247
+ /**
248
+ * Run a promise without blocking the caller. Errors are always swallowed so
249
+ * fire-and-forget chains never produce unhandled-rejection warnings.
250
+ * Returns the guarded promise (useful in tests).
251
+ */
252
+ function fireAndForget(promise) {
253
+ return promise.catch(() => {});
254
+ }
255
+
192
256
  // ---------------------------------------------------------------------------
193
257
  // Plugin metadata
194
258
  // ---------------------------------------------------------------------------
@@ -200,6 +264,17 @@ export const metadata = {
200
264
  'cluster': {
201
265
  description:
202
266
  'Manage local Camunda 8 cluster — start, stop, status, logs, install, delete, or list versions',
267
+ subcommands: [
268
+ { name: 'start', description: 'Start local Camunda 8 cluster' },
269
+ { name: 'stop', description: 'Stop local Camunda 8 cluster' },
270
+ { name: 'status', description: 'Show cluster status' },
271
+ { name: 'list', description: 'List locally cached versions' },
272
+ { name: 'list-remote', description: 'List remote versions' },
273
+ { name: 'install', description: 'Download a version' },
274
+ { name: 'delete', description: 'Remove a cached version' },
275
+ { name: 'log', description: 'Stream cluster logs' },
276
+ { name: 'logs', description: 'Stream cluster logs' },
277
+ ],
203
278
  examples: [
204
279
  { command: 'c8ctl cluster start', description: 'Start a local Camunda 8 cluster (latest stable)' },
205
280
  { command: 'c8ctl cluster start 8.8', description: 'Start the latest cached 8.8.x release' },
@@ -615,17 +690,16 @@ export async function ensureC8RunInstalled(config) {
615
690
  // For rolling versions on start, do a bounded non-blocking check and hint.
616
691
  // We store the promise so tests can await it, but we don't block the caller.
617
692
  if (config.checkForUpdateHint) {
618
- config._hintPromise = hasNewerVersionAvailable(config)
619
- .then((hasUpdate) => {
620
- if (hasUpdate) {
621
- logger.info(
622
- `A newer server version is available. Install it with: c8ctl cluster install ${config.version}`,
623
- );
624
- }
625
- })
626
- .catch(() => {
627
- // Swallow — offline or timeout, don't bother the user
628
- });
693
+ config._hintPromise = fireAndForget(
694
+ hasNewerVersionAvailable(config)
695
+ .then((hasUpdate) => {
696
+ if (hasUpdate) {
697
+ logger.info(
698
+ `A newer server version is available. Install it with: c8ctl cluster install ${config.version}`,
699
+ );
700
+ }
701
+ }),
702
+ );
629
703
  }
630
704
 
631
705
  return;
@@ -722,6 +796,7 @@ function printSummary(rawOutput, version) {
722
796
  async function startC8Run(config, debug = false) {
723
797
  const logger = getLogger();
724
798
  const binaryPath = getC8RunBinaryPath(config);
799
+ const logDir = join(dirname(binaryPath), 'log');
725
800
 
726
801
  if (!existsSync(binaryPath)) {
727
802
  throw new Error(`c8run binary not found at ${binaryPath}`);
@@ -750,7 +825,9 @@ async function startC8Run(config, debug = false) {
750
825
  });
751
826
 
752
827
  if (typeof proc.pid !== 'number') {
753
- logger.error('Failed to start cluster process: no PID received from c8run. Check logs for details.');
828
+ logger.error('Failed to start cluster process: no PID received from c8run.');
829
+ logger.error(`Check logs in: ${logDir}`);
830
+ logger.info(`Print logs with: cat "${logDir}"/*.log`);
754
831
  process.exit(1);
755
832
  }
756
833
 
@@ -807,18 +884,123 @@ async function startC8Run(config, debug = false) {
807
884
  printSummary(startupOutput, config.version);
808
885
  } else {
809
886
  logger.error(
810
- 'Cluster failed to start within timeout. Check logs for details.',
887
+ 'Cluster failed to start within timeout.',
811
888
  );
889
+ logger.error(`Check logs in: ${logDir}`);
890
+ logger.info(`Print logs with: cat "${logDir}"/*.log`);
812
891
  process.exit(1);
813
892
  }
814
893
  }
815
894
 
816
- async function stopC8Run(config) {
895
+ export function hasRunningClusterPidfiles(cacheDir) {
896
+ if (!existsSync(cacheDir)) {
897
+ return false;
898
+ }
899
+
900
+ const versionDirs = readdirSync(cacheDir, { withFileTypes: true })
901
+ .filter(
902
+ (entry) =>
903
+ entry.isDirectory() && entry.name.startsWith('c8run-'),
904
+ )
905
+ .map((entry) => join(cacheDir, entry.name));
906
+
907
+ // Scan each version dir and its immediate subdirectories (max depth 1)
908
+ // rather than a full recursive DFS — c8run installs can contain large
909
+ // extracted trees, logs, and data that would make a deep walk slow.
910
+ for (const versionDir of versionDirs) {
911
+ let entries;
912
+ try {
913
+ entries = readdirSync(versionDir, { withFileTypes: true });
914
+ } catch {
915
+ continue;
916
+ }
917
+
918
+ // Collect directories at this level to also check one level deeper.
919
+ const dirsToCheck = [versionDir];
920
+ for (const entry of entries) {
921
+ if (entry.isDirectory()) {
922
+ dirsToCheck.push(join(versionDir, entry.name));
923
+ }
924
+ }
925
+
926
+ for (const dir of dirsToCheck) {
927
+ let dirEntries;
928
+ try {
929
+ dirEntries = readdirSync(dir, { withFileTypes: true });
930
+ } catch {
931
+ continue;
932
+ }
933
+
934
+ for (const entry of dirEntries) {
935
+ if (!entry.isFile() || !entry.name.endsWith('.process')) {
936
+ continue;
937
+ }
938
+
939
+ const entryPath = join(dir, entry.name);
940
+
941
+ let pid;
942
+ try {
943
+ pid = Number.parseInt(readFileSync(entryPath, 'utf-8').trim(), 10);
944
+ } catch {
945
+ // Pidfile may have been removed between listing and reading.
946
+ continue;
947
+ }
948
+
949
+ if (!Number.isInteger(pid) || pid <= 0) {
950
+ continue;
951
+ }
952
+
953
+ try {
954
+ process.kill(pid, 0);
955
+ return true;
956
+ } catch (error) {
957
+ if (error && error.code === 'EPERM') {
958
+ return true;
959
+ }
960
+ }
961
+ }
962
+ }
963
+ }
964
+
965
+ return false;
966
+ }
967
+
968
+ export async function stopC8Run(config, debug = false) {
817
969
  const logger = getLogger();
818
970
  const markerFile = join(config.cacheDir, ACTIVE_MARKER_FILE);
819
971
  const versionFile = join(config.cacheDir, VERSION_MARKER_FILE);
820
972
 
821
973
  const markerExists = existsSync(markerFile);
974
+ const clusterAppearsRunning = hasRunningClusterPidfiles(config.cacheDir);
975
+
976
+ if (!markerExists && !clusterAppearsRunning) {
977
+ logger.warn(
978
+ 'No cluster is currently running.',
979
+ );
980
+ return;
981
+ }
982
+
983
+ if (markerExists && !clusterAppearsRunning) {
984
+ // Stale marker left behind (e.g. crash or forced kill). Clean up and
985
+ // return early — there is nothing to stop.
986
+ logger.warn(
987
+ 'Cluster marker file found, but no running cluster processes detected. Cleaning up stale marker.',
988
+ );
989
+ if (existsSync(markerFile)) {
990
+ rmSync(markerFile);
991
+ }
992
+ if (existsSync(versionFile)) {
993
+ rmSync(versionFile);
994
+ }
995
+ return;
996
+ }
997
+
998
+ if (!markerExists && clusterAppearsRunning) {
999
+ logger.warn(
1000
+ 'Cluster marker file is missing, but running cluster processes were detected. Proceeding with stop.',
1001
+ );
1002
+ }
1003
+
822
1004
  const installedVersions = existsSync(config.cacheDir)
823
1005
  ? readdirSync(config.cacheDir, { withFileTypes: true })
824
1006
  .filter(
@@ -829,13 +1011,6 @@ async function stopC8Run(config) {
829
1011
  .sort()
830
1012
  : [];
831
1013
 
832
- if (!markerExists && installedVersions.length === 0) {
833
- logger.warn(
834
- 'No running cluster found (use "c8ctl cluster start" to start one).',
835
- );
836
- return;
837
- }
838
-
839
1014
  const versionsToTry = [];
840
1015
 
841
1016
  if (existsSync(versionFile)) {
@@ -870,18 +1045,53 @@ async function stopC8Run(config) {
870
1045
 
871
1046
  attempted += 1;
872
1047
 
873
- const { code: exitCode, signal: exitSignal } = await new Promise(
1048
+ const { code: exitCode, signal: exitSignal, stdout: procStdout, stderr: procStderr } = await new Promise(
874
1049
  (resolve, reject) => {
875
1050
  const proc = spawn(binaryPath, ['stop'], {
876
- stdio: 'inherit',
1051
+ stdio: ['ignore', 'pipe', 'pipe'],
877
1052
  cwd: dirname(binaryPath),
878
1053
  });
879
- proc.on('exit', (code, signal) => resolve({ code, signal }));
1054
+
1055
+ const stdoutChunks = [];
1056
+ const stderrChunks = [];
1057
+ let stdoutLen = 0;
1058
+ let stderrLen = 0;
1059
+ const MAX_BUFFER = 64 * 1024; // 64 KB cap per stream
1060
+
1061
+ proc.stdout?.on('data', (chunk) => {
1062
+ const text = typeof chunk === 'string' ? chunk : chunk.toString('utf-8');
1063
+ if (debug) {
1064
+ process.stdout.write(text);
1065
+ }
1066
+ if (stdoutLen < MAX_BUFFER) {
1067
+ stdoutChunks.push(text);
1068
+ stdoutLen += text.length;
1069
+ }
1070
+ });
1071
+ proc.stderr?.on('data', (chunk) => {
1072
+ const text = typeof chunk === 'string' ? chunk : chunk.toString('utf-8');
1073
+ if (debug) {
1074
+ process.stderr.write(text);
1075
+ }
1076
+ if (stderrLen < MAX_BUFFER) {
1077
+ stderrChunks.push(text);
1078
+ stderrLen += text.length;
1079
+ }
1080
+ });
1081
+
1082
+ proc.on('close', (code, signal) =>
1083
+ resolve({
1084
+ code,
1085
+ signal,
1086
+ stdout: stdoutChunks.join(''),
1087
+ stderr: stderrChunks.join(''),
1088
+ }),
1089
+ );
880
1090
  proc.on('error', reject);
881
1091
  },
882
1092
  ).catch((error) => {
883
1093
  lastError = error instanceof Error ? error : new Error(String(error));
884
- return { code: -1, signal: null };
1094
+ return { code: -1, signal: null, stdout: '', stderr: '' };
885
1095
  });
886
1096
 
887
1097
  if (exitCode === 0 || (exitCode === null && !exitSignal)) {
@@ -892,7 +1102,10 @@ async function stopC8Run(config) {
892
1102
  `Stop command terminated by signal ${exitSignal}`,
893
1103
  );
894
1104
  } else if (exitCode !== -1) {
895
- lastError = new Error(`Stop command failed with code ${exitCode}`);
1105
+ const output = [procStdout, procStderr].filter(Boolean).join('\n');
1106
+ lastError = new Error(
1107
+ `Stop command failed with code ${exitCode}${output ? `:\n${output}` : ''}`,
1108
+ );
896
1109
  }
897
1110
  }
898
1111
 
@@ -1033,7 +1246,7 @@ export async function listInstalledVersions(cacheDir) {
1033
1246
  }
1034
1247
 
1035
1248
  console.log('');
1036
- console.log('Version aliases (dynamically resolved):');
1249
+ console.log('Version aliases:');
1037
1250
  for (const [alias, resolved] of aliasEntries) {
1038
1251
  console.log(` ${alias.padEnd(ALIAS_COLUMN_WIDTH)} → ${resolved}`);
1039
1252
  }
@@ -1092,7 +1305,7 @@ export async function listRemoteVersions() {
1092
1305
  }
1093
1306
 
1094
1307
  console.log('');
1095
- console.log('Version aliases (dynamically resolved):');
1308
+ console.log('Version aliases:');
1096
1309
  for (const [alias, resolved] of aliasEntries) {
1097
1310
  console.log(` ${alias.padEnd(ALIAS_COLUMN_WIDTH)} → ${resolved}`);
1098
1311
  }
@@ -1114,9 +1327,11 @@ export async function deleteVersion(cacheDir, versionSpec) {
1114
1327
  validateVersionSpec(versionSpec);
1115
1328
 
1116
1329
  // Resolve named aliases (stable/alpha) to the actual cached version name.
1330
+ // Use preferLocal so we delete the version that's actually installed,
1331
+ // not whatever the remote currently resolves the alias to.
1117
1332
  // Major.minor patterns like 8.8 are used as-is since the cache dir is named c8run-8.8.
1118
1333
  const resolvedVersion = isVersionAlias(versionSpec)
1119
- ? await resolveVersion(versionSpec)
1334
+ ? await resolveVersion(versionSpec, { preferLocal: true, cacheDir })
1120
1335
  : versionSpec;
1121
1336
 
1122
1337
  // Prevent deleting a currently running version
@@ -1308,15 +1523,15 @@ export const commands = {
1308
1523
  console.log(' --debug Stream raw c8run output during start');
1309
1524
  console.log('');
1310
1525
  console.log('A <version> can be:');
1311
- console.log(' stable / alpha Named aliases (dynamically resolved to latest)');
1526
+ console.log(' stable / alpha Named aliases');
1312
1527
  console.log(' 8.8, 8.9 Major.minor — rolling release for that minor');
1313
1528
  console.log(' 8.9.0-alpha5 Exact pinned version');
1314
1529
  console.log('');
1315
- console.log(' start uses a local version if available (no remote check).');
1530
+ console.log(' start uses a locally installed version if available.');
1316
1531
  console.log(' install always checks the remote for a newer rolling release.');
1317
1532
  console.log('');
1318
- console.log('Version aliases (dynamically resolved):')
1319
- for (const [alias, resolved] of await getVersionAliasEntries()) {
1533
+ console.log('Version aliases:');
1534
+ for (const [alias, resolved] of getVersionAliasEntriesSync()) {
1320
1535
  console.log(` ${alias.padEnd(ALIAS_COLUMN_WIDTH)} → ${resolved}`);
1321
1536
  }
1322
1537
  console.log('');
@@ -1405,14 +1620,21 @@ export const commands = {
1405
1620
  process.exit(1);
1406
1621
  }
1407
1622
  const theCacheDir = getCacheDir();
1623
+ const isStart = parsed.subcommand === 'start';
1408
1624
  const version = await resolveVersion(versionSpec, {
1409
- // start: prefer locally-cached alias mapping to avoid a network fetch when already installed
1410
- preferLocal: parsed.subcommand === 'start',
1625
+ // start: use cached alias if installed (deterministic behavior)
1626
+ preferLocal: isStart,
1411
1627
  cacheDir: theCacheDir,
1412
1628
  });
1413
1629
  if (isVersionAlias(versionSpec)) {
1414
1630
  logger.info(`Resolved alias "${versionSpec}" → ${version}`);
1415
1631
  }
1632
+
1633
+ // For start with a named alias, check in the background whether the
1634
+ // remote resolves to a different (newer) version and hint if so.
1635
+ if (isStart && isVersionAlias(versionSpec)) {
1636
+ checkBackgroundAliasFreshness(versionSpec, version);
1637
+ }
1416
1638
  const rolling = isRollingVersion(versionSpec);
1417
1639
  const config = {
1418
1640
  cacheDir: theCacheDir,
@@ -1434,7 +1656,7 @@ export const commands = {
1434
1656
  }
1435
1657
  } else if (parsed.subcommand === 'stop') {
1436
1658
  try {
1437
- await stopC8Run(config);
1659
+ await stopC8Run(config, parsed.debug);
1438
1660
  } catch (error) {
1439
1661
  logger.error(`Failed to stop cluster: ${error}`);
1440
1662
  process.exit(1);
package/dist/index.d.ts CHANGED
@@ -3,10 +3,6 @@
3
3
  * c8ctl - Camunda 8 CLI
4
4
  * Main entry point
5
5
  */
6
- /**
7
- * Type guard: narrow unknown to Record<string, unknown>.
8
- */
9
- export declare function isRecord(value: unknown): value is Record<string, unknown>;
10
6
  /**
11
7
  * Resolve process definition ID from --id, --processDefinitionId, or --bpmnProcessId flag
12
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAuJH;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAkHD;;GAEG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,GAAG,SAAS,CAMpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAgFH;;GAEG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,GAAG,SAAS,CAMpB"}