@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 +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/loom.d.ts +23 -0
- package/dist/loom.d.ts.map +1 -1
- package/dist/loom.js +95 -5
- package/dist/loom.js.map +1 -1
- package/package.json +3 -3
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 {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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;
|
package/dist/loom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loom.d.ts","sourceRoot":"","sources":["../src/loom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,
|
|
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
|
-
|
|
37
|
-
|
|
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(
|
|
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":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;
|
|
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.
|
|
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.
|
|
21
|
-
"@shardworks/tools-apparatus": "0.1.
|
|
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"
|