@shardworks/nexus-arbor 0.1.119 → 0.1.121

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.
@@ -1 +1 @@
1
- {"version":3,"file":"arbor.d.ts","sourceRoot":"","sources":["../src/arbor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAaH,OAAO,KAAK,EACV,KAAK,EAGN,MAAM,wBAAwB,CAAC;AAahC;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAgI/D"}
1
+ {"version":3,"file":"arbor.d.ts","sourceRoot":"","sources":["../src/arbor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAaH,OAAO,KAAK,EACV,KAAK,EAIN,MAAM,wBAAwB,CAAC;AAchC;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAkJ/D"}
package/dist/arbor.js CHANGED
@@ -24,7 +24,7 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
24
24
  return path;
25
25
  };
26
26
  import { readGuildConfig, writeGuildConfig, findGuildRoot, isKit, isApparatus, setGuild, resolveGuildPackageEntry, resolvePackageNameForPluginId, readGuildPackageJson, } from '@shardworks/nexus-core';
27
- import { validateRequires, topoSort, collectStartupWarnings, buildStartupContext, fireEvent, } from "./guild-lifecycle.js";
27
+ import { validateRequires, filterFailedPlugins, topoSort, collectStartupWarnings, buildStartupContext, fireEvent, } from "./guild-lifecycle.js";
28
28
  // ── Public API ────────────────────────────────────────────────────────
29
29
  /**
30
30
  * Create and start a guild.
@@ -72,7 +72,21 @@ export async function createGuild(root) {
72
72
  }
73
73
  }
74
74
  // ── Validation phase ───────────────────────────────────────────────
75
- validateRequires(kits, apparatuses);
75
+ const allFailures = [];
76
+ const rootFailures = validateRequires(kits, apparatuses);
77
+ allFailures.push(...rootFailures);
78
+ // Remove plugins that transitively depend on failed ones
79
+ if (rootFailures.length > 0) {
80
+ const filtered = filterFailedPlugins(kits, apparatuses, rootFailures);
81
+ kits.length = 0;
82
+ kits.push(...filtered.kits);
83
+ apparatuses.length = 0;
84
+ apparatuses.push(...filtered.apparatuses);
85
+ allFailures.push(...filtered.cascaded);
86
+ for (const f of allFailures) {
87
+ console.warn(`[arbor] ${f.reason}`);
88
+ }
89
+ }
76
90
  // ── Startup warnings ───────────────────────────────────────────────
77
91
  for (const warning of collectStartupWarnings(kits, apparatuses)) {
78
92
  console.warn(warning);
@@ -116,6 +130,7 @@ export async function createGuild(root) {
116
130
  },
117
131
  kits() { return [...kits]; },
118
132
  apparatuses() { return [...orderedApparatuses]; },
133
+ failedPlugins() { return [...allFailures]; },
119
134
  };
120
135
  setGuild(guildInstance);
121
136
  // Fire plugin:initialized for all kits before starting any apparatus
package/dist/arbor.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"arbor.js","sourceRoot":"","sources":["../src/arbor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arbor.js","sourceRoot":"","sources":["../src/arbor.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,11 @@
8
8
  * `createGuild()` in arbor.ts is the orchestrator that performs I/O
9
9
  * (config reading, dynamic imports) then delegates to these functions.
10
10
  */
11
- import type { StartupContext, LoadedKit, LoadedApparatus } from '@shardworks/nexus-core';
11
+ import type { StartupContext, LoadedKit, LoadedApparatus, FailedPlugin } from '@shardworks/nexus-core';
12
12
  export type EventHandlerMap = Map<string, Array<(...args: unknown[]) => void | Promise<void>>>;
13
13
  /**
14
14
  * Validate all `requires` declarations and detect circular dependencies.
15
- * Throws with a descriptive error on the first problem found.
15
+ * Returns an array of FailedPlugin entries describing every problem found.
16
16
  *
17
17
  * Checks:
18
18
  * - Apparatus requires: every named dependency must exist (kit or apparatus).
@@ -20,7 +20,18 @@ export type EventHandlerMap = Map<string, Array<(...args: unknown[]) => void | P
20
20
  * depend on kits).
21
21
  * - Cycle detection: no circular dependency chains among apparatuses.
22
22
  */
23
- export declare function validateRequires(kits: LoadedKit[], apparatuses: LoadedApparatus[]): void;
23
+ export declare function validateRequires(kits: LoadedKit[], apparatuses: LoadedApparatus[]): FailedPlugin[];
24
+ /**
25
+ * Remove plugins that transitively depend on any failed plugin.
26
+ *
27
+ * Iterates until stable, cascading failures through the dependency graph.
28
+ * Returns healthy plugins and any newly-cascaded failures.
29
+ */
30
+ export declare function filterFailedPlugins(kits: LoadedKit[], apparatuses: LoadedApparatus[], rootFailures: FailedPlugin[]): {
31
+ kits: LoadedKit[];
32
+ apparatuses: LoadedApparatus[];
33
+ cascaded: FailedPlugin[];
34
+ };
24
35
  /**
25
36
  * Sort apparatuses in dependency-resolved order using topological sort.
26
37
  * validateRequires() must be called first to ensure the graph is acyclic.
@@ -1 +1 @@
1
- {"version":3,"file":"guild-lifecycle.d.ts","sourceRoot":"","sources":["../src/guild-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAIhC,MAAM,MAAM,eAAe,GAAG,GAAG,CAC/B,MAAM,EACN,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CACpD,CAAC;AAIF;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,EAAE,EACjB,WAAW,EAAE,eAAe,EAAE,GAC7B,IAAI,CA2DN;AAID;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAoB1E;AAID;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAS,SAAS,EAAE,EACxB,WAAW,EAAE,eAAe,EAAE,GAC7B,MAAM,EAAE,CA4CV;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,eAAe,GAC7B,cAAc,CAQhB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,aAAa,EAAE,eAAe,EAC9B,KAAK,EAAU,MAAM,EACrB,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAKf"}
1
+ {"version":3,"file":"guild-lifecycle.d.ts","sourceRoot":"","sources":["../src/guild-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,eAAe,EACf,YAAY,EACb,MAAM,wBAAwB,CAAC;AAIhC,MAAM,MAAM,eAAe,GAAG,GAAG,CAC/B,MAAM,EACN,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CACpD,CAAC;AAIF;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,EAAE,EACjB,WAAW,EAAE,eAAe,EAAE,GAC7B,YAAY,EAAE,CA0FhB;AAID;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,EAAE,EACjB,WAAW,EAAE,eAAe,EAAE,EAC9B,YAAY,EAAE,YAAY,EAAE,GAC3B;IAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAAC,WAAW,EAAE,eAAe,EAAE,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,CA4CjF;AAID;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAoB1E;AAID;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAS,SAAS,EAAE,EACxB,WAAW,EAAE,eAAe,EAAE,GAC7B,MAAM,EAAE,CA4CV;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,eAAe,GAC7B,cAAc,CAQhB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,aAAa,EAAE,eAAe,EAC9B,KAAK,EAAU,MAAM,EACrB,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAKf"}
@@ -11,7 +11,7 @@
11
11
  // ── Validation ───────────────────────────────────────────────────────
12
12
  /**
13
13
  * Validate all `requires` declarations and detect circular dependencies.
14
- * Throws with a descriptive error on the first problem found.
14
+ * Returns an array of FailedPlugin entries describing every problem found.
15
15
  *
16
16
  * Checks:
17
17
  * - Apparatus requires: every named dependency must exist (kit or apparatus).
@@ -20,6 +20,8 @@
20
20
  * - Cycle detection: no circular dependency chains among apparatuses.
21
21
  */
22
22
  export function validateRequires(kits, apparatuses) {
23
+ const failures = [];
24
+ const failedIds = new Set();
23
25
  const apparatusIds = new Set(apparatuses.map((a) => a.id));
24
26
  const allIds = new Set([
25
27
  ...kits.map((k) => k.id),
@@ -29,7 +31,13 @@ export function validateRequires(kits, apparatuses) {
29
31
  for (const app of apparatuses) {
30
32
  for (const dep of app.apparatus.requires ?? []) {
31
33
  if (!allIds.has(dep)) {
32
- throw new Error(`[arbor] "${app.id}" requires "${dep}", which is not installed.`);
34
+ if (!failedIds.has(app.id)) {
35
+ failedIds.add(app.id);
36
+ failures.push({
37
+ id: app.id,
38
+ reason: `"${app.id}" requires "${dep}", which is not installed.`,
39
+ });
40
+ }
33
41
  }
34
42
  }
35
43
  }
@@ -37,23 +45,40 @@ export function validateRequires(kits, apparatuses) {
37
45
  for (const kit of kits) {
38
46
  for (const dep of kit.kit.requires ?? []) {
39
47
  if (!apparatusIds.has(dep)) {
40
- if (!allIds.has(dep)) {
41
- throw new Error(`[arbor] kit "${kit.id}" requires "${dep}", which is not installed.`);
48
+ if (!failedIds.has(kit.id)) {
49
+ failedIds.add(kit.id);
50
+ if (!allIds.has(dep)) {
51
+ failures.push({
52
+ id: kit.id,
53
+ reason: `kit "${kit.id}" requires "${dep}", which is not installed.`,
54
+ });
55
+ }
56
+ else {
57
+ failures.push({
58
+ id: kit.id,
59
+ reason: `kit "${kit.id}" requires "${dep}", but that plugin is a kit, not an apparatus. Kit requires must name apparatus plugins.`,
60
+ });
61
+ }
42
62
  }
43
- throw new Error(`[arbor] kit "${kit.id}" requires "${dep}", but that plugin is a kit, not an apparatus. ` +
44
- `Kit requires must name apparatus plugins.`);
45
63
  }
46
64
  }
47
65
  }
48
66
  // Detect circular dependencies among apparatuses
49
67
  const visiting = new Set();
50
68
  const visited = new Set();
69
+ const cycleParticipants = new Set();
51
70
  function visit(id, chain) {
52
71
  if (visited.has(id))
53
72
  return;
54
73
  if (visiting.has(id)) {
55
- const cycle = [...chain, id].join(' ');
56
- throw new Error(`[arbor] Circular dependency detected: ${cycle}`);
74
+ // Back-edge detected extract cycle participants from chain
75
+ const cycleStart = chain.indexOf(id);
76
+ const cycleNodes = cycleStart >= 0 ? chain.slice(cycleStart) : [...chain];
77
+ cycleNodes.push(id);
78
+ for (const node of cycleNodes) {
79
+ cycleParticipants.add(node);
80
+ }
81
+ return;
57
82
  }
58
83
  visiting.add(id);
59
84
  const app = apparatuses.find((a) => a.id === id);
@@ -68,6 +93,67 @@ export function validateRequires(kits, apparatuses) {
68
93
  for (const app of apparatuses) {
69
94
  visit(app.id, []);
70
95
  }
96
+ for (const id of cycleParticipants) {
97
+ if (!failedIds.has(id)) {
98
+ failedIds.add(id);
99
+ failures.push({
100
+ id,
101
+ reason: `"${id}" is part of a circular dependency chain.`,
102
+ });
103
+ }
104
+ }
105
+ return failures;
106
+ }
107
+ // ── Cascade filtering ─────────────────────────────────────────────────
108
+ /**
109
+ * Remove plugins that transitively depend on any failed plugin.
110
+ *
111
+ * Iterates until stable, cascading failures through the dependency graph.
112
+ * Returns healthy plugins and any newly-cascaded failures.
113
+ */
114
+ export function filterFailedPlugins(kits, apparatuses, rootFailures) {
115
+ const failedIds = new Set(rootFailures.map((f) => f.id));
116
+ const cascaded = [];
117
+ // Apparatus cascade: iterate until no new failures
118
+ let changed = true;
119
+ while (changed) {
120
+ changed = false;
121
+ for (const app of apparatuses) {
122
+ if (failedIds.has(app.id))
123
+ continue;
124
+ for (const dep of app.apparatus.requires ?? []) {
125
+ if (failedIds.has(dep)) {
126
+ failedIds.add(app.id);
127
+ cascaded.push({
128
+ id: app.id,
129
+ reason: `"${app.id}" depends on failed plugin "${dep}".`,
130
+ });
131
+ changed = true;
132
+ break;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ // Kit cascade: single pass (kits can't depend on other kits)
138
+ for (const kit of kits) {
139
+ if (failedIds.has(kit.id))
140
+ continue;
141
+ for (const dep of kit.kit.requires ?? []) {
142
+ if (failedIds.has(dep)) {
143
+ failedIds.add(kit.id);
144
+ cascaded.push({
145
+ id: kit.id,
146
+ reason: `"${kit.id}" depends on failed plugin "${dep}".`,
147
+ });
148
+ break;
149
+ }
150
+ }
151
+ }
152
+ return {
153
+ kits: kits.filter((k) => !failedIds.has(k.id)),
154
+ apparatuses: apparatuses.filter((a) => !failedIds.has(a.id)),
155
+ cascaded,
156
+ };
71
157
  }
72
158
  // ── Dependency ordering ──────────────────────────────────────────────
73
159
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"guild-lifecycle.js","sourceRoot":"","sources":["../src/guild-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guild-lifecycle.js","sourceRoot":"","sources":["../src/guild-lifecycle.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shardworks/nexus-arbor",
3
- "version": "0.1.119",
3
+ "version": "0.1.121",
4
4
  "license": "ISC",
5
5
  "repository": {
6
6
  "type": "git",
@@ -16,7 +16,7 @@
16
16
  }
17
17
  },
18
18
  "dependencies": {
19
- "@shardworks/nexus-core": "0.1.119"
19
+ "@shardworks/nexus-core": "0.1.121"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/node": "25.5.0"