@celilo/cli 0.1.8 → 0.1.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celilo/cli",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Celilo — home lab orchestration CLI",
5
5
  "type": "module",
6
6
  "bin": {
@@ -519,7 +519,12 @@ async function buildFirewallChain(
519
519
 
520
520
  // Apply rules by default. Set CELILO_FIREWALL_DRY_RUN=1 to preview without applying.
521
521
  const dryRun = process.env.CELILO_FIREWALL_DRY_RUN === '1';
522
- const downstreamFirewall = provFactory({ firewallIp, natIp, dryRun }, currentUpstream);
522
+ // Third arg (logger) lets iptables route its internal status lines
523
+ // ("[iptables] Rule already exists…", etc.) through the parent
524
+ // celilo's ProgressDisplay instead of dumping to stderr. Older
525
+ // iptables modules ignore it — the factory's signature is
526
+ // backward-compatible.
527
+ const downstreamFirewall = provFactory({ firewallIp, natIp, dryRun }, currentUpstream, logger);
523
528
 
524
529
  debugLog(`firewall chain: wired ${provider.moduleId} → ${hasExternal.moduleId}`);
525
530
  // Wrap each downstream layer with auto-logging.
@@ -77,13 +77,11 @@ const FRAMEWORK_OWNED_PATHS = new Set(['celilo/types.d.ts']);
77
77
  *
78
78
  * `node_modules` exclusion is path-aware: regular npm dependencies are
79
79
  * skipped (size + bun re-installs them at module-import time), but the
80
- * framework's own `@celilo/*` packages stay in. That captures the
81
- * capabilities API the module was authored against, so a module's
82
- * hooks aren't silently broken by a runtime that ships a different
83
- * version of `@celilo/capabilities` than the one on npm.
80
+ * framework's own `@celilo/capabilities` package stays in. That
81
+ * captures the capabilities API the module was authored against, so a
82
+ * module's hooks aren't silently broken by a runtime that ships a
83
+ * different version of `@celilo/capabilities` than the one on npm.
84
84
  */
85
- const BUNDLED_CELILO_PACKAGES = new Set(['capabilities', 'cli-display']);
86
-
87
85
  function shouldExclude(filePath: string): boolean {
88
86
  if (FRAMEWORK_OWNED_PATHS.has(filePath)) return true;
89
87
 
@@ -95,18 +93,15 @@ function shouldExclude(filePath: string): boolean {
95
93
 
96
94
  const nmIdx = segments.indexOf('node_modules');
97
95
  if (nmIdx >= 0) {
98
- // `node_modules` itself: descend so we can pick out @celilo/* SDK
99
- // packages. capabilities is the public surface the module was
100
- // authored against; cli-display is its transitive dep (the
101
- // ProgressDisplay singleton that capability functions reach for to
102
- // route output through the parent celilo's display). Everything
103
- // else is regular npm cruft we'd just re-install on the target
104
- // (or test-only deps inside packages like `@celilo/e2e` we don't
105
- // want to drag in).
96
+ // `node_modules` itself: descend so we can pick out @celilo/capabilities.
97
+ // The capabilities scope is the only thing we ship — it's the framework
98
+ // SDK the module was authored against. Everything else is regular npm
99
+ // cruft we'd just re-install on the target (or test-only deps inside
100
+ // packages like `@celilo/e2e` we don't want to drag in).
106
101
  if (nmIdx + 1 >= segments.length) return false; // node_modules dir itself
107
102
  if (segments[nmIdx + 1] !== '@celilo') return true;
108
103
  if (nmIdx + 2 >= segments.length) return false; // node_modules/@celilo dir itself
109
- return !BUNDLED_CELILO_PACKAGES.has(segments[nmIdx + 2]);
104
+ return segments[nmIdx + 2] !== 'capabilities';
110
105
  }
111
106
 
112
107
  const name = basename(filePath);