@theholocron/cli 3.66.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -295,9 +295,11 @@ interface HolocronConfig {
295
295
  */
296
296
  repo?: RepoConfig;
297
297
  /**
298
- * CI workflow names to install as thin wrappers during `holocron setup`.
299
- * Each name maps to a reusable workflow in `theholocron/.github`.
300
- * Use the object form to pass `with:` inputs to the reusable workflow.
298
+ * The task manifest — what this repo runs. Each entry is a task name
299
+ * (backed by a reusable workflow in `theholocron/.github`), or the object
300
+ * form to pass `with:` inputs. `@theholocron/astromech` reads this as the
301
+ * single source for `holocron run` / `holocron ci` / the generated CI
302
+ * workflows / `package.json` scripts.
301
303
  *
302
304
  * Supported values: "lint" | "test" | "typecheck" | "codeql" | "review" |
303
305
  * "release" | "tag" | "stale" | "greetings" | "dependencies" | "bookkeeping" | "audit" |
@@ -353,7 +355,7 @@ interface HolocronConfig {
353
355
  * ["lint", { "name": "release", "with": { "run-build": false } }]
354
356
  * { "name": "deploy", "with": { "docs": true } }
355
357
  */
356
- workflows?: Array<string | {
358
+ tasks?: Array<string | {
357
359
  name: string;
358
360
  with?: WorkflowWithConfig;
359
361
  paths?: string[];
@@ -426,7 +428,7 @@ interface ResolvedHolocronConfig {
426
428
  org?: string;
427
429
  domain?: string;
428
430
  repo?: RepoConfig;
429
- workflows?: Array<string | {
431
+ tasks?: Array<string | {
430
432
  name: string;
431
433
  with?: WorkflowWithConfig;
432
434
  paths?: string[];
@@ -454,15 +456,15 @@ declare function resolveEntry(key: CapabilityKey, raw: RawProviderEntry): Resolv
454
456
  declare function resolveConfig(raw: HolocronConfig): ResolvedHolocronConfig;
455
457
  //#endregion
456
458
  //#region src/config/compose.d.ts
457
- type WorkflowEntry = NonNullable<HolocronConfig["workflows"]>[number];
459
+ type TaskEntry = NonNullable<HolocronConfig["tasks"]>[number];
458
460
  /** A single composable capability fragment. */
459
461
  interface Capability {
460
462
  /** Unique identifier — used for deduplication and dependency resolution. */
461
463
  id: string;
462
464
  /** Other capability IDs that must be present in the same compose() call. */
463
465
  requires?: string[];
464
- /** Workflow entries contributed by this capability. Merged by name; last writer wins. */
465
- workflows?: WorkflowEntry[];
466
+ /** Task entries contributed by this capability. Merged by name; last writer wins. */
467
+ tasks?: TaskEntry[];
466
468
  /** Provider config. Shallow-merged at the top level; later capabilities override per-key. */
467
469
  providers?: RawProvidersConfig;
468
470
  /** CI check names that must pass. Unioned across all capabilities. */
@@ -478,7 +480,7 @@ interface Capability {
478
480
  }
479
481
  /** The merged result of a compose() call. Spreads into defineConfig(). */
480
482
  interface ComposedPreset {
481
- workflows: WorkflowEntry[];
483
+ tasks: TaskEntry[];
482
484
  providers: RawProvidersConfig;
483
485
  repo: Partial<Omit<RepoConfig, "name">> & {
484
486
  requiredChecks: string[];
package/dist/index.mjs CHANGED
@@ -203,7 +203,7 @@ function resolveConfig(raw) {
203
203
  org: raw.org,
204
204
  domain: raw.domain,
205
205
  repo: raw.repo,
206
- workflows: raw.workflows,
206
+ tasks: raw.tasks,
207
207
  providers,
208
208
  apps: raw.apps ?? [],
209
209
  doctor: raw.doctor ?? {},
@@ -216,7 +216,7 @@ function resolveConfig(raw) {
216
216
  }
217
217
  //#endregion
218
218
  //#region src/config/compose.ts
219
- function workflowName(e) {
219
+ function taskName(e) {
220
220
  return typeof e === "string" ? e : e.name;
221
221
  }
222
222
  /**
@@ -249,8 +249,8 @@ function compose(...args) {
249
249
  const errors = [];
250
250
  for (const cap of caps) for (const req of cap.requires ?? []) if (!available.has(req)) errors.push(`"${cap.id}" requires "${req}"`);
251
251
  if (errors.length > 0) throw new ConfigError(`compose(): unmet dependencies — ${errors.join(", ")}`);
252
- const workflowMap = /* @__PURE__ */ new Map();
253
- for (const cap of caps) for (const entry of cap.workflows ?? []) workflowMap.set(workflowName(entry), entry);
252
+ const taskMap = /* @__PURE__ */ new Map();
253
+ for (const cap of caps) for (const entry of cap.tasks ?? []) taskMap.set(taskName(entry), entry);
254
254
  let providers = {};
255
255
  for (const cap of caps) if (cap.providers) providers = {
256
256
  ...providers,
@@ -293,7 +293,7 @@ function compose(...args) {
293
293
  if (cap.docs !== void 0) docs = cap.docs;
294
294
  }
295
295
  return {
296
- workflows: [...workflowMap.values()],
296
+ tasks: [...taskMap.values()],
297
297
  providers,
298
298
  repo: {
299
299
  ...repo,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theholocron/cli",
3
- "version": "3.66.0",
3
+ "version": "4.0.0",
4
4
  "description": "The Holocron CLI - a pluggable, capability-based orchestrator for spinning up and operating software projects.",
5
5
  "keywords": [
6
6
  "cli",
@@ -52,9 +52,9 @@
52
52
  "ora": "^9.4.1",
53
53
  "posthog-node": "^5.51.6",
54
54
  "yargs": "^18.1.0",
55
- "@theholocron/astromech": "3.66.0",
56
- "@theholocron/logger": "3.66.0",
57
- "@theholocron/datapad": "3.66.0"
55
+ "@theholocron/astromech": "4.0.0",
56
+ "@theholocron/logger": "4.0.0",
57
+ "@theholocron/datapad": "4.0.0"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@theholocron/eslint-config": "^7.32.1",
@@ -71,7 +71,7 @@
71
71
  "tsx": "4.23.12",
72
72
  "typescript": "^5.9.3",
73
73
  "vitest": "^4.1.11",
74
- "@theholocron/rollup-plugin-transform-template": "3.66.0"
74
+ "@theholocron/rollup-plugin-transform-template": "4.0.0"
75
75
  },
76
76
  "engines": {
77
77
  "node": ">=22.0.0"