@shardworks/loom-apparatus 0.1.123 → 0.1.125

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.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * See: docs/specification.md (loom)
9
9
  */
10
- export { type LoomApi, type WeaveRequest, type AnimaWeave, type LoomConfig, type RoleDefinition, createLoom, } from './loom.ts';
10
+ export { type LoomApi, type WeaveRequest, type AnimaWeave, type LoomConfig, type RoleDefinition, type KitRoleDefinition, type LoomKit, createLoom, } from './loom.ts';
11
11
  import type { LoomConfig } from './loom.ts';
12
12
  declare module '@shardworks/nexus-core' {
13
13
  interface GuildConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,UAAU,GACX,MAAM,WAAW,CAAC;AAMnB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,WAAW;QACnB,IAAI,CAAC,EAAE,UAAU,CAAC;KACnB;CACF;;AAID,wBAA4B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,UAAU,GACX,MAAM,WAAW,CAAC;AAMnB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,WAAW;QACnB,IAAI,CAAC,EAAE,UAAU,CAAC;KACnB;CACF;;AAID,wBAA4B"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,wEAAwE;AAExE,OAAO,EAML,UAAU,GACX,MAAM,WAAW,CAAC;AAanB,yEAAyE;AAEzE,eAAe,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,wEAAwE;AAExE,OAAO,EAQL,UAAU,GACX,MAAM,WAAW,CAAC;AAanB,yEAAyE;AAEzE,eAAe,UAAU,EAAE,CAAC"}
package/dist/loom.d.ts CHANGED
@@ -77,11 +77,34 @@ export interface LoomConfig {
77
77
  /** Role definitions keyed by role name. */
78
78
  roles?: Record<string, RoleDefinition>;
79
79
  }
80
+ /** Role definition contributed by a kit or apparatus supportKit. */
81
+ export interface KitRoleDefinition {
82
+ /** Permission grants in `plugin:level` format. */
83
+ permissions: string[];
84
+ /**
85
+ * When true, permissionless tools are excluded unless the role grants
86
+ * `plugin:*` or `*:*` for the tool's plugin. Default: false.
87
+ */
88
+ strict?: boolean;
89
+ /** Inline role instructions injected into the system prompt. */
90
+ instructions?: string;
91
+ /**
92
+ * Path to an instructions file, relative to the kit's npm package root.
93
+ * Resolved at registration time. Mutually exclusive with `instructions`
94
+ * (if both are present, `instructions` wins).
95
+ */
96
+ instructionsFile?: string;
97
+ }
98
+ /** Kit contribution interface for role definitions. */
99
+ export interface LoomKit {
100
+ roles?: Record<string, KitRoleDefinition>;
101
+ }
80
102
  /**
81
103
  * Create the Loom apparatus plugin.
82
104
  *
83
105
  * Returns a Plugin with:
84
106
  * - `requires: ['tools']` — needs the Instrumentarium for tool resolution
107
+ * - `consumes: ['roles']` — declares that the Loom consumes kit role contributions
85
108
  * - `provides: LoomApi` — the context composition API
86
109
  */
87
110
  export declare function createLoom(): Plugin;
@@ -1 +1 @@
1
- {"version":3,"file":"loom.d.ts","sourceRoot":"","sources":["../src/loom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,wBAAwB,CAAC;AAErE,OAAO,KAAK,EAAsB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAMpF,MAAM,WAAW,YAAY;IAC3B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kGAAkG;IAClG,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,qDAAqD;AACrD,MAAM,WAAW,OAAO;IACtB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACnD;AAID,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACxC;AAID;;;;;;GAMG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAuHnC"}
1
+ {"version":3,"file":"loom.d.ts","sourceRoot":"","sources":["../src/loom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAgC,MAAM,wBAAwB,CAAC;AAEnF,OAAO,KAAK,EAAsB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAMpF,MAAM,WAAW,YAAY;IAC3B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kGAAkG;IAClG,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,qDAAqD;AACrD,MAAM,WAAW,OAAO;IACtB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACnD;AAID,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACxC;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,uDAAuD;AACvD,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC3C;AAID;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAqOnC"}
package/dist/loom.js CHANGED
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * See: docs/specification.md (loom)
16
16
  */
17
- import { guild } from '@shardworks/nexus-core';
17
+ import { guild, isLoadedApparatus } from '@shardworks/nexus-core';
18
18
  import fs from 'node:fs';
19
19
  import path from 'node:path';
20
20
  // ── Apparatus factory ─────────────────────────────────────────────────
@@ -23,18 +23,85 @@ import path from 'node:path';
23
23
  *
24
24
  * Returns a Plugin with:
25
25
  * - `requires: ['tools']` — needs the Instrumentarium for tool resolution
26
+ * - `consumes: ['roles']` — declares that the Loom consumes kit role contributions
26
27
  * - `provides: LoomApi` — the context composition API
27
28
  */
28
29
  export function createLoom() {
29
30
  let config = {};
30
31
  let charterContent;
31
32
  let roleInstructions = new Map();
33
+ let kitRoles = new Map();
34
+ function registerKitRoles(pluginId, packageName, kit, home) {
35
+ const rawRoles = kit.roles;
36
+ if (typeof rawRoles !== 'object' || rawRoles === null || Array.isArray(rawRoles))
37
+ return;
38
+ // Compute allowed plugin IDs for dependency-scoped validation
39
+ const allowedPlugins = new Set([
40
+ pluginId,
41
+ ...(kit.requires ?? []),
42
+ ...(kit.recommends ?? []),
43
+ ]);
44
+ for (const [roleName, rawDef] of Object.entries(rawRoles)) {
45
+ // Skip non-object entries silently
46
+ if (typeof rawDef !== 'object' || rawDef === null || Array.isArray(rawDef))
47
+ continue;
48
+ const def = rawDef;
49
+ // Validate permissions field exists and is an array
50
+ if (!Array.isArray(def.permissions)) {
51
+ console.warn(`[loom] Kit "${pluginId}" role "${roleName}" is missing required "permissions" array — skipped`);
52
+ continue;
53
+ }
54
+ const qualifiedName = `${pluginId}.${roleName}`;
55
+ // Guild override check at registration time — skip if guild defines this role
56
+ if (config.roles && config.roles[qualifiedName])
57
+ continue;
58
+ // Dependency-scoped permission filtering
59
+ const validPermissions = [];
60
+ for (const perm of def.permissions) {
61
+ if (typeof perm !== 'string')
62
+ continue;
63
+ const colonIdx = perm.indexOf(':');
64
+ if (colonIdx === -1) {
65
+ console.warn(`[loom] Kit "${pluginId}" role "${roleName}" permission "${perm}" has no colon separator — dropped`);
66
+ continue;
67
+ }
68
+ const permPluginId = perm.slice(0, colonIdx);
69
+ if (permPluginId === '*' || !allowedPlugins.has(permPluginId)) {
70
+ console.warn(`[loom] Kit "${pluginId}" role "${roleName}" permission "${perm}" references undeclared plugin "${permPluginId}" — dropped`);
71
+ continue;
72
+ }
73
+ validPermissions.push(perm);
74
+ }
75
+ // Register the role
76
+ kitRoles.set(qualifiedName, {
77
+ permissions: validPermissions,
78
+ ...(def.strict === true ? { strict: true } : {}),
79
+ });
80
+ // Resolve instructions — inline takes precedence over file
81
+ if (typeof def.instructions === 'string' && def.instructions) {
82
+ roleInstructions.set(qualifiedName, def.instructions);
83
+ }
84
+ else if (typeof def.instructionsFile === 'string' && def.instructionsFile) {
85
+ const filePath = path.join(home, 'node_modules', packageName, def.instructionsFile);
86
+ try {
87
+ const content = fs.readFileSync(filePath, 'utf-8');
88
+ if (content) {
89
+ roleInstructions.set(qualifiedName, content);
90
+ }
91
+ }
92
+ catch {
93
+ console.warn(`[loom] Could not read instructions file for kit "${pluginId}" role "${roleName}": ${filePath}`);
94
+ }
95
+ }
96
+ }
97
+ }
32
98
  const api = {
33
99
  async weave(request) {
34
100
  const weave = {};
35
101
  // Resolve tools if a role is provided and has a definition.
36
- if (request.role && config.roles) {
37
- const roleDef = config.roles[request.role];
102
+ // Guild-defined roles take precedence over kit-contributed roles.
103
+ if (request.role) {
104
+ const roleDef = config.roles?.[request.role] ?? kitRoles.get(request.role);
38
105
  if (roleDef) {
39
106
  try {
40
107
  const instrumentarium = guild().apparatus('tools');
@@ -84,8 +151,9 @@ export function createLoom() {
84
151
  return {
85
152
  apparatus: {
86
153
  requires: ['tools'],
154
+ consumes: ['roles'],
87
155
  provides: api,
88
- start(_ctx) {
156
+ start(ctx) {
89
157
  const g = guild();
90
158
  config = g.guildConfig().loom ?? {};
91
159
  const home = g.home;
@@ -117,7 +185,7 @@ export function createLoom() {
117
185
  // No charter/ directory either — silently omit.
118
186
  }
119
187
  }
120
- // Read role instruction files at startup for all configured roles.
188
+ // Read role instruction files at startup for all configured (guild) roles.
121
189
  roleInstructions = new Map();
122
190
  if (config.roles) {
123
191
  for (const roleName of Object.keys(config.roles)) {
@@ -133,6 +201,28 @@ export function createLoom() {
133
201
  }
134
202
  }
135
203
  }
204
+ // ── Kit role scanning ──────────────────────────────────────────
205
+ kitRoles = new Map();
206
+ // Phase 1a: Scan all already-loaded standalone kits.
207
+ for (const kit of g.kits()) {
208
+ registerKitRoles(kit.id, kit.packageName, kit.kit, home);
209
+ }
210
+ // Phase 1b: Scan already-started apparatus for supportKit roles.
211
+ // The Loom requires ['tools'], so apparatus that started before it
212
+ // (e.g. Instrumentarium) have already fired plugin:initialized.
213
+ for (const app of g.apparatuses()) {
214
+ if (app.apparatus.supportKit) {
215
+ registerKitRoles(app.id, app.packageName, app.apparatus.supportKit, home);
216
+ }
217
+ }
218
+ // Phase 2: Subscribe to plugin:initialized for apparatus supportKits
219
+ // that start after the Loom in the dependency order.
220
+ ctx.on('plugin:initialized', (plugin) => {
221
+ const loaded = plugin;
222
+ if (isLoadedApparatus(loaded) && loaded.apparatus.supportKit) {
223
+ registerKitRoles(loaded.id, loaded.packageName, loaded.apparatus.supportKit, home);
224
+ }
225
+ });
136
226
  },
137
227
  },
138
228
  };
package/dist/loom.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"loom.js","sourceRoot":"","sources":["../src/loom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loom.js","sourceRoot":"","sources":["../src/loom.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shardworks/loom-apparatus",
3
- "version": "0.1.123",
3
+ "version": "0.1.125",
4
4
  "license": "ISC",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,8 +17,8 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "zod": "4.3.6",
20
- "@shardworks/nexus-core": "0.1.123",
21
- "@shardworks/tools-apparatus": "0.1.123"
20
+ "@shardworks/nexus-core": "0.1.125",
21
+ "@shardworks/tools-apparatus": "0.1.125"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "25.5.0"