@shardworks/clerk-apparatus 0.1.216 → 0.1.217

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/README.md CHANGED
@@ -112,6 +112,46 @@ Each entry includes:
112
112
 
113
113
  Source precedence: guild config entries fully shadow kit contributions with the same name (including description).
114
114
 
115
+ ### `link(sourceId, targetId, type, semanticMeaning?): Promise<WritLinkDoc>`
116
+
117
+ Create a directional link between two writs.
118
+
119
+ ```typescript
120
+ // Casual label — attach any open-string relationship type.
121
+ await clerk.link(src.id, tgt.id, 'fixes');
122
+
123
+ // Load-bearing — attach a registered semantic meaning id.
124
+ await clerk.link(src.id, tgt.id, 'refines', 'astrolabe:refines');
125
+ ```
126
+
127
+ Link rows carry two complementary identifiers:
128
+
129
+ - **`type`** — a casual, human-facing label. Open string. Normalized at write time via a syntactic pipeline (lowercase → trim → camelCase split → snake_case/kebab-case split → whitespace collapse). Variant spellings of the same label (`depends-on`, `dependsOn`, `depends_on`) collapse to a single composite id; distinct labels (`requires` vs `depends on`) remain distinct. Normalization is **not** synonymy.
130
+ - **`semanticMeaning`** — a stable, plugin-owned id from the kit-contributed meaning registry. The load-bearing identifier for downstream consumers. `null` when no meaning is attached. Unknown ids are rejected.
131
+
132
+ Upsert semantics: calling `link()` again for the same `(sourceId, targetId, type)` returns the existing row. When a `semanticMeaning` is supplied on the repeat call, it replaces the existing meaning; when omitted, the existing meaning is preserved.
133
+
134
+ ### `unlink(sourceId, targetId, type): Promise<void>`
135
+
136
+ Remove a link. The `type` argument is normalized before deletion, so any spelling variant of the canonical form removes the same link. Idempotent — no error if the link does not exist.
137
+
138
+ ### `links(writId): Promise<WritLinks>`
139
+
140
+ Return every link for a writ in both directions: `outbound` (this writ is the source) and `inbound` (this writ is the target).
141
+
142
+ ### `listMeanings(): Promise<MeaningDoc[]>`
143
+
144
+ List every kit-contributed link meaning in the registry. Each record includes the fully-qualified meaning id, the contributing plugin, and a human-readable description.
145
+
146
+ ```typescript
147
+ const meanings = await clerk.listMeanings();
148
+ // [
149
+ // { id: 'astrolabe:refines', ownerPlugin: 'astrolabe', description: 'Source refines target' },
150
+ // ]
151
+ ```
152
+
153
+ Kit authors register meanings under the `linkMeanings` key of their `ClerkKit` (or an apparatus's `supportKit`). Each entry is `{ id, description }`; the id must be prefixed with the contributing plugin id (`{pluginId}:{kebab-suffix}`). Malformed entries, duplicate ids, and plugin-prefix mismatches hard-fail at startup.
154
+
115
155
  ### `edit(request): Promise<WritDoc>`
116
156
 
117
157
  Edit a writ, updating one or more fields. Only the provided fields are updated.
@@ -251,8 +291,10 @@ The Clerk contributes books, tools, and pages to the guild:
251
291
  | `writ-fail` | `clerk:write` | Fail a writ (open/stuck → failed) |
252
292
  | `writ-cancel` | `clerk:write` | Cancel a writ (new/open/stuck → cancelled) |
253
293
  | `writ-publish` | `clerk:write` | Publish a draft writ (new → open) |
254
- | `writ-link` | `clerk:write` | Create a typed link between writs |
294
+ | `writ-link` | `clerk:write` | Create a typed link between writs (`--meaning <id>` to attach a registered semantic meaning) |
255
295
  | `writ-unlink` | `clerk:write` | Remove a typed link between writs |
296
+ | `writ-link-meanings` | `clerk:read` | List registered link meanings (`--json` for raw array) |
297
+ | `writ-link-meanings-show` | `clerk:read` | Show a single link meaning by id |
256
298
  | `writ-types` | `clerk:read` | List available writ types |
257
299
 
258
300
  ---
@@ -306,6 +348,33 @@ interface WritTypeInfo {
306
348
  source: string; // "builtin", "guild", or plugin id
307
349
  isDefault: boolean; // whether this is the default type
308
350
  }
351
+
352
+ interface WritLinkDoc {
353
+ id: string; // `{sourceId}:{targetId}:{normalized type}`
354
+ sourceId: string;
355
+ targetId: string;
356
+ type: string; // casual label, syntactically normalized
357
+ semanticMeaning: string | null; // load-bearing meaning id (null when unattached)
358
+ createdAt: string; // ISO timestamp
359
+ }
360
+
361
+ interface WritLinks {
362
+ outbound: WritLinkDoc[]; // this writ → other writs
363
+ inbound: WritLinkDoc[]; // other writs → this writ
364
+ }
365
+
366
+ // Kit-input shape for linkMeanings contributions on ClerkKit.
367
+ interface MeaningEntry {
368
+ id: string; // `{pluginId}:{kebab-suffix}`
369
+ description: string;
370
+ }
371
+
372
+ // Registry-projection shape returned by listMeanings().
373
+ interface MeaningDoc {
374
+ id: string;
375
+ ownerPlugin: string;
376
+ description: string;
377
+ }
309
378
  ```
310
379
 
311
380
  See `src/types.ts` for the complete type definitions.
package/dist/clerk.d.ts CHANGED
@@ -14,11 +14,19 @@
14
14
  * See: docs/architecture/apparatus/clerk.md
15
15
  */
16
16
  import type { Plugin } from '@shardworks/nexus-core';
17
- import type { WritTypeEntry } from './types.ts';
17
+ import type { WritTypeEntry, MeaningEntry } from './types.ts';
18
18
  /** Kit contribution interface for the Clerk's writ type system. */
19
19
  export interface ClerkKit {
20
20
  /** Writ type descriptors to register with the Clerk. Names are unqualified. */
21
21
  writTypes?: WritTypeEntry[];
22
+ /**
23
+ * Link-meaning descriptors to register with the Clerk. Meaning ids must be
24
+ * prefixed with the contributing plugin id (e.g. `astrolabe:refines`).
25
+ * Kit authors supply `{ id, description }`; the registry-projection view
26
+ * (returned by `listMeanings()`) embeds the resolved owner plugin id on
27
+ * each record as `ownerPlugin`.
28
+ */
29
+ linkMeanings?: MeaningEntry[];
22
30
  }
23
31
  /**
24
32
  * Resolution string applied to non-terminal children that are cancelled by
@@ -1 +1 @@
1
- {"version":3,"file":"clerk.d.ts","sourceRoot":"","sources":["../src/clerk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,wBAAwB,CAAC;AAKrE,OAAO,KAAK,EAWV,aAAa,EACd,MAAM,YAAY,CAAC;AAkBpB,mEAAmE;AACnE,MAAM,WAAW,QAAQ;IACvB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;CAC7B;AAQD;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC,sDACG,CAAC;AAoBtD,wBAAgB,WAAW,IAAI,MAAM,CA6epC"}
1
+ {"version":3,"file":"clerk.d.ts","sourceRoot":"","sources":["../src/clerk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,wBAAwB,CAAC;AAKrE,OAAO,KAAK,EAWV,aAAa,EACb,YAAY,EAEb,MAAM,YAAY,CAAC;AAsBpB,mEAAmE;AACnE,MAAM,WAAW,QAAQ;IACvB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B;AAQD;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC,sDACG,CAAC;AAoBtD,wBAAgB,WAAW,IAAI,MAAM,CA6rBpC"}
package/dist/clerk.js CHANGED
@@ -15,7 +15,8 @@
15
15
  */
16
16
  import { guild, generateId } from '@shardworks/nexus-core';
17
17
  import { tool } from '@shardworks/tools-apparatus';
18
- import { commissionPost, pieceAdd, writShow, writList, writEdit, writComplete, writFail, writCancel, writPublish, writLink, writUnlink, } from "./tools/index.js";
18
+ import { commissionPost, pieceAdd, writShow, writList, writEdit, writComplete, writFail, writCancel, writPublish, writLink, writUnlink, writLinkMeanings, writLinkMeaningsShow, } from "./tools/index.js";
19
+ import { normalizeLinkType } from "./link-normalize.js";
19
20
  // ── Built-in writ types ──────────────────────────────────────────────
20
21
  const BUILTIN_TYPES = new Set(['mandate']);
21
22
  // ── Cascade resolution constants ─────────────────────────────────────
@@ -48,6 +49,15 @@ export function createClerk() {
48
49
  let mergedWritTypes = new Map([...BUILTIN_TYPES].map((name) => [name, { source: 'builtin' }]));
49
50
  /** Config-declared writ type names, for override checking during kit registration. */
50
51
  let configWritTypeNames = new Set();
52
+ /** Registry of kit-contributed link meanings, keyed by meaning id. */
53
+ let linkMeaningRegistry = new Map();
54
+ /**
55
+ * Grammar for meaning-id suffixes after the `{pluginId}:` prefix.
56
+ *
57
+ * Kebab-case only: lowercase letters, digits, and hyphens. Must not start
58
+ * or end with a hyphen and must have at least one character.
59
+ */
60
+ const MEANING_SUFFIX_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
51
61
  // ── Helpers ──────────────────────────────────────────────────────
52
62
  function resolveClerkConfig() {
53
63
  return guild().guildConfig().clerk ?? {};
@@ -111,6 +121,47 @@ export function createClerk() {
111
121
  });
112
122
  }
113
123
  }
124
+ function registerKitLinkMeanings(kitEntry) {
125
+ const pluginId = kitEntry.pluginId;
126
+ const raw = kitEntry.value;
127
+ if (!Array.isArray(raw)) {
128
+ throw new Error(`[clerk] Kit "${pluginId}" linkMeanings: expected an array, got ${typeof raw}.`);
129
+ }
130
+ for (const entry of raw) {
131
+ if (typeof entry !== 'object' || entry === null) {
132
+ throw new Error(`[clerk] Kit "${pluginId}" linkMeanings: entry is not an object (got ${entry === null ? 'null' : typeof entry}).`);
133
+ }
134
+ const rec = entry;
135
+ const id = rec.id;
136
+ const description = rec.description;
137
+ if (typeof id !== 'string' || id.length === 0) {
138
+ throw new Error(`[clerk] Kit "${pluginId}" linkMeanings: entry is missing a non-empty string "id" field.`);
139
+ }
140
+ if (typeof description !== 'string' || description.length === 0) {
141
+ throw new Error(`[clerk] Kit "${pluginId}" linkMeanings: entry "${id}" is missing a non-empty string "description" field.`);
142
+ }
143
+ const colonIdx = id.indexOf(':');
144
+ if (colonIdx <= 0 || colonIdx === id.length - 1) {
145
+ throw new Error(`[clerk] Kit "${pluginId}" linkMeanings: entry "${id}" must be of the form "{pluginId}:{kebab-suffix}".`);
146
+ }
147
+ const prefix = id.slice(0, colonIdx);
148
+ const suffix = id.slice(colonIdx + 1);
149
+ if (prefix !== pluginId) {
150
+ throw new Error(`[clerk] Kit "${pluginId}" linkMeanings: entry "${id}" has prefix "${prefix}" but must match the contributing plugin id "${pluginId}".`);
151
+ }
152
+ if (!MEANING_SUFFIX_RE.test(suffix)) {
153
+ throw new Error(`[clerk] Kit "${pluginId}" linkMeanings: entry "${id}" suffix "${suffix}" must be kebab-case (lowercase letters, digits, and hyphens, not starting or ending with "-").`);
154
+ }
155
+ if (linkMeaningRegistry.has(id)) {
156
+ const existing = linkMeaningRegistry.get(id);
157
+ throw new Error(`[clerk] Kit "${pluginId}" linkMeanings: duplicate meaning id "${id}" — already registered by kit "${existing.ownerPlugin}".`);
158
+ }
159
+ linkMeaningRegistry.set(id, {
160
+ ownerPlugin: pluginId,
161
+ description,
162
+ });
163
+ }
164
+ }
114
165
  // ── API ──────────────────────────────────────────────────────────
115
166
  const api = {
116
167
  async post(request) {
@@ -193,13 +244,25 @@ export function createClerk() {
193
244
  const where = buildWhereClause(filters);
194
245
  return writs.count(where);
195
246
  },
196
- async link(sourceId, targetId, type) {
247
+ async link(sourceId, targetId, type, semanticMeaning) {
197
248
  if (sourceId === targetId) {
198
249
  throw new Error(`Cannot link a writ to itself: "${sourceId}".`);
199
250
  }
200
- if (!type || !type.trim()) {
251
+ // D2: normalize first, then reject empty canonical form. An all-
252
+ // whitespace input canonicalizes to '' and is rejected here.
253
+ const normalizedType = normalizeLinkType(type);
254
+ if (!normalizedType) {
201
255
  throw new Error('Link type must be a non-empty string.');
202
256
  }
257
+ // If a semanticMeaning was supplied, validate it against the registry
258
+ // before touching the store.
259
+ if (semanticMeaning !== undefined) {
260
+ if (!linkMeaningRegistry.has(semanticMeaning)) {
261
+ throw new Error(`Unknown semanticMeaning "${semanticMeaning}". Registered meanings: ${linkMeaningRegistry.size === 0
262
+ ? '(none)'
263
+ : [...linkMeaningRegistry.keys()].join(', ')}.`);
264
+ }
265
+ }
203
266
  const source = await writs.get(sourceId);
204
267
  if (!source) {
205
268
  throw new Error(`Writ "${sourceId}" not found.`);
@@ -208,16 +271,24 @@ export function createClerk() {
208
271
  if (!target) {
209
272
  throw new Error(`Writ "${targetId}" not found.`);
210
273
  }
211
- const id = `${sourceId}:${targetId}:${type}`;
274
+ const id = `${sourceId}:${targetId}:${normalizedType}`;
212
275
  const existing = await links.get(id);
213
276
  if (existing) {
277
+ // Upsert: when the caller supplied a semanticMeaning, update the
278
+ // existing row's meaning. When no meaning was supplied, leave the
279
+ // existing row untouched (preserves prior meaning assignments made
280
+ // by earlier callers).
281
+ if (semanticMeaning !== undefined && existing.semanticMeaning !== semanticMeaning) {
282
+ return links.patch(id, { semanticMeaning });
283
+ }
214
284
  return existing;
215
285
  }
216
286
  const doc = {
217
287
  id,
218
288
  sourceId,
219
289
  targetId,
220
- type,
290
+ type: normalizedType,
291
+ semanticMeaning: semanticMeaning ?? null,
221
292
  createdAt: new Date().toISOString(),
222
293
  };
223
294
  await links.put(doc);
@@ -231,7 +302,15 @@ export function createClerk() {
231
302
  return { outbound, inbound };
232
303
  },
233
304
  async unlink(sourceId, targetId, type) {
234
- const id = `${sourceId}:${targetId}:${type}`;
305
+ // Normalize first so variant spellings of the same type resolve to the
306
+ // same composite id as link() used.
307
+ const normalizedType = normalizeLinkType(type);
308
+ if (!normalizedType) {
309
+ // No-op when the canonical form is empty — unlink() is idempotent, so
310
+ // returning silently is correct even for an unreachable composite id.
311
+ return;
312
+ }
313
+ const id = `${sourceId}:${targetId}:${normalizedType}`;
235
314
  await links.delete(id);
236
315
  },
237
316
  listWritTypes() {
@@ -243,6 +322,13 @@ export function createClerk() {
243
322
  isDefault: name === defaultType,
244
323
  }));
245
324
  },
325
+ async listMeanings() {
326
+ return [...linkMeaningRegistry.entries()].map(([id, meta]) => ({
327
+ id,
328
+ ownerPlugin: meta.ownerPlugin,
329
+ description: meta.description,
330
+ }));
331
+ },
246
332
  async edit(request) {
247
333
  const writ = await writs.get(request.id);
248
334
  if (!writ) {
@@ -365,7 +451,7 @@ export function createClerk() {
365
451
  apparatus: {
366
452
  requires: ['stacks'],
367
453
  recommends: ['oculus'],
368
- consumes: ['writTypes'],
454
+ consumes: ['writTypes', 'linkMeanings'],
369
455
  supportKit: {
370
456
  books: {
371
457
  writs: {
@@ -387,6 +473,8 @@ export function createClerk() {
387
473
  writPublish,
388
474
  writLink,
389
475
  writUnlink,
476
+ writLinkMeanings,
477
+ writLinkMeaningsShow,
390
478
  writTypesTool,
391
479
  ],
392
480
  pages: [
@@ -411,6 +499,14 @@ export function createClerk() {
411
499
  for (const entry of ctx.kits('writTypes')) {
412
500
  registerKitWritTypes(entry);
413
501
  }
502
+ // Scan all kit-contributed link meanings via the Wire-phase snapshot.
503
+ // Unlike writTypes, malformed entries here hard-fail the start() call
504
+ // — a reserved meaning id that silently disappears would be worse
505
+ // than a startup failure, because downstream consumers key on it.
506
+ linkMeaningRegistry = new Map();
507
+ for (const entry of ctx.kits('linkMeanings')) {
508
+ registerKitLinkMeanings(entry);
509
+ }
414
510
  // ── CDC: parent/child cascade ───────────────────────────────
415
511
  stacks.watch('clerk', 'writs', async (event) => {
416
512
  if (event.type !== 'update')
@@ -444,6 +540,65 @@ export function createClerk() {
444
540
  });
445
541
  }
446
542
  }
543
+ // ── One-shot migration: normalize link rows ──────────────────
544
+ // Two-pass flow per D7:
545
+ // Pass 1 — scan every link row, group by (sourceId, targetId,
546
+ // normalizedType). A group with multiple rows is a collision:
547
+ // variant spellings that collapse to the same canonical form.
548
+ // Pass 2 — per group, keep the row with the earliest createdAt;
549
+ // warn and delete the younger siblings (older wins,
550
+ // deterministic regardless of iteration order). Rewrite the
551
+ // survivor's id and type to the canonical form and set
552
+ // `semanticMeaning = null` when absent.
553
+ //
554
+ // Safe to run inside start(): stacks only seals the CDC registry
555
+ // at phase:started (after every apparatus has started), so these
556
+ // writes don't lock out downstream apparatuses that register
557
+ // watchers in their own start(). Writes here fire no links-book
558
+ // watcher today but could in the future.
559
+ const allLinks = await links.find({});
560
+ const groups = new Map();
561
+ for (const row of allLinks) {
562
+ const normalized = normalizeLinkType(row.type);
563
+ const key = `${row.sourceId}:${row.targetId}:${normalized}`;
564
+ const bucket = groups.get(key) ?? [];
565
+ bucket.push(row);
566
+ groups.set(key, bucket);
567
+ }
568
+ for (const [canonicalId, bucket] of groups) {
569
+ // Sort by createdAt ascending — the first element is the oldest.
570
+ bucket.sort((a, b) => (a.createdAt < b.createdAt ? -1 : a.createdAt > b.createdAt ? 1 : 0));
571
+ const [survivor, ...losers] = bucket;
572
+ if (!survivor)
573
+ continue;
574
+ for (const loser of losers) {
575
+ console.warn(`[clerk] Link migration: collapsing duplicate link ` +
576
+ `"${loser.id}" into canonical "${canonicalId}" ` +
577
+ `(source="${loser.sourceId}", target="${loser.targetId}"); ` +
578
+ `older row kept, this one discarded.`);
579
+ await links.delete(loser.id);
580
+ }
581
+ const normalizedType = canonicalId.slice((survivor.sourceId.length + 1) + (survivor.targetId.length + 1));
582
+ const needsRewrite = survivor.id !== canonicalId ||
583
+ survivor.type !== normalizedType ||
584
+ survivor.semanticMeaning === undefined;
585
+ if (!needsRewrite)
586
+ continue;
587
+ // The composite id is immutable — delete-then-put the survivor to
588
+ // replace it with the canonical document.
589
+ const migrated = {
590
+ id: canonicalId,
591
+ sourceId: survivor.sourceId,
592
+ targetId: survivor.targetId,
593
+ type: normalizedType,
594
+ semanticMeaning: survivor.semanticMeaning ?? null,
595
+ createdAt: survivor.createdAt,
596
+ };
597
+ if (survivor.id !== canonicalId) {
598
+ await links.delete(survivor.id);
599
+ }
600
+ await links.put(migrated);
601
+ }
447
602
  },
448
603
  },
449
604
  };
package/dist/clerk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"clerk.js","sourceRoot":"","sources":["../src/clerk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clerk.js","sourceRoot":"","sources":["../src/clerk.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * See: docs/architecture/apparatus/clerk.md
10
10
  */
11
- export { type ClerkApi, type ClerkConfig, type WritTypeEntry, type WritDoc, type WritLinkDoc, type WritLinks, type WritStatus, type PostCommissionRequest, type EditWritRequest, type WritFilters, type WritTypeInfo, } from './types.ts';
11
+ export { type ClerkApi, type ClerkConfig, type WritTypeEntry, type WritDoc, type WritLinkDoc, type WritLinks, type WritStatus, type PostCommissionRequest, type EditWritRequest, type WritFilters, type WritTypeInfo, type MeaningEntry, type MeaningDoc, } from './types.ts';
12
12
  export { createClerk, CASCADE_PARENT_TERMINATION_RESOLUTION } from './clerk.ts';
13
13
  export type { ClerkKit } from './clerk.ts';
14
14
  declare const _default: import("@shardworks/nexus-core").Plugin;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,qCAAqC,EAAE,MAAM,YAAY,CAAC;AAChF,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;;AAI3C,wBAA6B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,qCAAqC,EAAE,MAAM,YAAY,CAAC;AAChF,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;;AAI3C,wBAA6B"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,yEAAyE;AAEzE,OAAO,EAYN,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,qCAAqC,EAAE,MAAM,YAAY,CAAC;AAGhF,yEAAyE;AAEzE,eAAe,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,yEAAyE;AAEzE,OAAO,EAcN,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,qCAAqC,EAAE,MAAM,YAAY,CAAC;AAGhF,yEAAyE;AAEzE,eAAe,WAAW,EAAE,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Link-type normalization.
3
+ *
4
+ * The Clerk's `WritLinkDoc.type` is an open string used as a casual label, and
5
+ * callers spell the "same" relationship many different ways: `fixes`, `Fixes`,
6
+ * `depends-on`, `dependsOn`, `depends_on`, `depends on`. Left alone, each of
7
+ * those produces a distinct composite-id link document — which destroys any
8
+ * mechanism that wants to react to a *specific* relationship.
9
+ *
10
+ * This module exposes a single pure function, `normalizeLinkType`, that
11
+ * collapses variant spellings of the same label to a single canonical form.
12
+ * Normalization is purely syntactic — it is NOT synonymy. `requires` and
13
+ * `depends on` normalize to distinct strings; callers that want to treat them
14
+ * as the same relationship should attach the same `semanticMeaning` to both.
15
+ *
16
+ * The pipeline, in order:
17
+ *
18
+ * 1. Lowercase every character.
19
+ * 2. Split camelCase boundaries by inserting a space between a lowercase
20
+ * or digit character and the following uppercase character. (Performed
21
+ * before lowercasing in the implementation by doing the split against
22
+ * the original string, because otherwise the boundaries disappear.)
23
+ * 3. Replace snake_case `_` and kebab-case `-` separators with a space.
24
+ * 4. Collapse any run of whitespace (spaces, tabs, newlines) to a single
25
+ * space.
26
+ * 5. Trim leading and trailing whitespace.
27
+ *
28
+ * An all-whitespace or empty input canonicalizes to the empty string `''`;
29
+ * callers must validate the result if they require a non-empty canonical
30
+ * form.
31
+ */
32
+ /**
33
+ * Normalize a link-type string to its canonical form.
34
+ *
35
+ * @param input - The raw type string supplied by a caller.
36
+ * @returns The canonical lowercase, space-separated form.
37
+ */
38
+ export declare function normalizeLinkType(input: string): string;
39
+ //# sourceMappingURL=link-normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-normalize.d.ts","sourceRoot":"","sources":["../src/link-normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoBvD"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Link-type normalization.
3
+ *
4
+ * The Clerk's `WritLinkDoc.type` is an open string used as a casual label, and
5
+ * callers spell the "same" relationship many different ways: `fixes`, `Fixes`,
6
+ * `depends-on`, `dependsOn`, `depends_on`, `depends on`. Left alone, each of
7
+ * those produces a distinct composite-id link document — which destroys any
8
+ * mechanism that wants to react to a *specific* relationship.
9
+ *
10
+ * This module exposes a single pure function, `normalizeLinkType`, that
11
+ * collapses variant spellings of the same label to a single canonical form.
12
+ * Normalization is purely syntactic — it is NOT synonymy. `requires` and
13
+ * `depends on` normalize to distinct strings; callers that want to treat them
14
+ * as the same relationship should attach the same `semanticMeaning` to both.
15
+ *
16
+ * The pipeline, in order:
17
+ *
18
+ * 1. Lowercase every character.
19
+ * 2. Split camelCase boundaries by inserting a space between a lowercase
20
+ * or digit character and the following uppercase character. (Performed
21
+ * before lowercasing in the implementation by doing the split against
22
+ * the original string, because otherwise the boundaries disappear.)
23
+ * 3. Replace snake_case `_` and kebab-case `-` separators with a space.
24
+ * 4. Collapse any run of whitespace (spaces, tabs, newlines) to a single
25
+ * space.
26
+ * 5. Trim leading and trailing whitespace.
27
+ *
28
+ * An all-whitespace or empty input canonicalizes to the empty string `''`;
29
+ * callers must validate the result if they require a non-empty canonical
30
+ * form.
31
+ */
32
+ /**
33
+ * Normalize a link-type string to its canonical form.
34
+ *
35
+ * @param input - The raw type string supplied by a caller.
36
+ * @returns The canonical lowercase, space-separated form.
37
+ */
38
+ export function normalizeLinkType(input) {
39
+ // Split camelCase boundaries FIRST, against the original casing —
40
+ // otherwise lowercasing erases the boundary between adjacent words.
41
+ // Insert a space whenever a lowercase letter or digit is followed by an
42
+ // uppercase letter. This also handles acronym-like runs (e.g. `XMLParser`
43
+ // → `XML Parser`) via a second pass.
44
+ const camelSplit = input
45
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
46
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2');
47
+ // Lowercase everything so the stored form is case-insensitive.
48
+ const lowered = camelSplit.toLowerCase();
49
+ // Replace snake_case and kebab-case separators with spaces.
50
+ const separatorsReplaced = lowered.replace(/[-_]+/g, ' ');
51
+ // Collapse runs of whitespace to a single space, then trim.
52
+ const collapsed = separatorsReplaced.replace(/\s+/g, ' ').trim();
53
+ return collapsed;
54
+ }
55
+ //# sourceMappingURL=link-normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-normalize.js","sourceRoot":"","sources":["../src/link-normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,kEAAkE;IAClE,oEAAoE;IACpE,wEAAwE;IACxE,0EAA0E;IAC1E,qCAAqC;IACrC,MAAM,UAAU,GAAG,KAAK;SACrB,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAE7C,+DAA+D;IAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAEzC,4DAA4D;IAC5D,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE1D,4DAA4D;IAC5D,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjE,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -9,4 +9,6 @@ export { default as writCancel } from './writ-cancel.ts';
9
9
  export { default as writPublish } from './writ-publish.ts';
10
10
  export { default as writLink } from './writ-link.ts';
11
11
  export { default as writUnlink } from './writ-unlink.ts';
12
+ export { default as writLinkMeanings } from './writ-link-meanings.ts';
13
+ export { default as writLinkMeaningsShow } from './writ-link-meanings-show.ts';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -9,4 +9,6 @@ export { default as writCancel } from "./writ-cancel.js";
9
9
  export { default as writPublish } from "./writ-publish.js";
10
10
  export { default as writLink } from "./writ-link.js";
11
11
  export { default as writUnlink } from "./writ-unlink.js";
12
+ export { default as writLinkMeanings } from "./writ-link-meanings.js";
13
+ export { default as writLinkMeaningsShow } from "./writ-link-meanings-show.js";
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ declare const _default: import("@shardworks/tools-apparatus").ToolDefinition<{
3
+ id: z.ZodString;
4
+ }>;
5
+ export default _default;
6
+ //# sourceMappingURL=writ-link-meanings-show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writ-link-meanings-show.d.ts","sourceRoot":"","sources":["../../src/tools/writ-link-meanings-show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AAKxB,wBAwBG"}
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import { guild } from '@shardworks/nexus-core';
3
+ import { tool } from '@shardworks/tools-apparatus';
4
+ export default tool({
5
+ name: 'writ-link-meanings-show',
6
+ description: 'Show a single link meaning by id',
7
+ instructions: 'Returns the full record for a registered link meaning, including its ' +
8
+ 'owner plugin id and description. Exits with an error if the id is not ' +
9
+ 'present in the registry.',
10
+ params: {
11
+ id: z.string().describe('Fully-qualified meaning id (e.g. "astrolabe:refines")'),
12
+ },
13
+ permission: 'read',
14
+ handler: async (params) => {
15
+ const clerk = guild().apparatus('clerk');
16
+ const meanings = await clerk.listMeanings();
17
+ const match = meanings.find((m) => m.id === params.id);
18
+ if (!match) {
19
+ throw new Error(`Unknown link meaning "${params.id}". Registered meanings: ${meanings.length === 0 ? '(none)' : meanings.map((m) => m.id).join(', ')}.`);
20
+ }
21
+ return match;
22
+ },
23
+ });
24
+ //# sourceMappingURL=writ-link-meanings-show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writ-link-meanings-show.js","sourceRoot":"","sources":["../../src/tools/writ-link-meanings-show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGnD,eAAe,IAAI,CAAC;IAClB,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,kCAAkC;IAC/C,YAAY,EACV,uEAAuE;QACvE,wEAAwE;QACxE,0BAA0B;IAC5B,MAAM,EAAE;QACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;KACjF;IACD,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,SAAS,CAAW,OAAO,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,yBAAyB,MAAM,CAAC,EAAE,2BAChC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CACxE,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ declare const _default: import("@shardworks/tools-apparatus").ToolDefinition<{
3
+ json: z.ZodDefault<z.ZodBoolean>;
4
+ }>;
5
+ export default _default;
6
+ //# sourceMappingURL=writ-link-meanings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writ-link-meanings.d.ts","sourceRoot":"","sources":["../../src/tools/writ-link-meanings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AAkCxB,wBAqBG"}
@@ -0,0 +1,50 @@
1
+ import { z } from 'zod';
2
+ import { guild } from '@shardworks/nexus-core';
3
+ import { tool } from '@shardworks/tools-apparatus';
4
+ /**
5
+ * Format a list of MeaningDocs as a three-column text table with headers
6
+ * `ID`, `OWNER`, `DESCRIPTION`. Columns are space-padded to the widest row
7
+ * (including the header) and separated by two spaces.
8
+ */
9
+ function formatTable(meanings) {
10
+ if (meanings.length === 0) {
11
+ return 'No meanings registered.';
12
+ }
13
+ const rows = [
14
+ ['ID', 'OWNER', 'DESCRIPTION'],
15
+ ...meanings.map((m) => [m.id, m.ownerPlugin, m.description]),
16
+ ];
17
+ const widths = [0, 0, 0];
18
+ for (const row of rows) {
19
+ for (let i = 0; i < 3; i++) {
20
+ if (row[i].length > widths[i])
21
+ widths[i] = row[i].length;
22
+ }
23
+ }
24
+ return rows
25
+ .map((row) => `${row[0].padEnd(widths[0])} ${row[1].padEnd(widths[1])} ${row[2]}`.trimEnd())
26
+ .join('\n');
27
+ }
28
+ export default tool({
29
+ name: 'writ-link-meanings',
30
+ description: 'List registered link meanings',
31
+ instructions: 'Returns the kit-contributed link meaning registry. Each meaning has a ' +
32
+ 'fully-qualified id (prefixed with the contributing plugin id), an owner ' +
33
+ 'plugin, and a human-readable description. By default the output is a ' +
34
+ 'human-readable table; pass --json for the raw array.',
35
+ params: {
36
+ json: z
37
+ .boolean()
38
+ .default(false)
39
+ .describe('Emit the raw array as JSON instead of a formatted table'),
40
+ },
41
+ permission: 'read',
42
+ handler: async (params) => {
43
+ const clerk = guild().apparatus('clerk');
44
+ const meanings = await clerk.listMeanings();
45
+ if (params.json)
46
+ return meanings;
47
+ return formatTable(meanings);
48
+ },
49
+ });
50
+ //# sourceMappingURL=writ-link-meanings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writ-link-meanings.js","sourceRoot":"","sources":["../../src/tools/writ-link-meanings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGnD;;;;GAIG;AACH,SAAS,WAAW,CAAC,QAAsB;IACzC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAoC;QAC5C,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC;QAC9B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAA6B,CAAC;KACzF,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAE,EAAE,CAAC,OAAO,EAAE,CACrF;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,eAAe,IAAI,CAAC;IAClB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,+BAA+B;IAC5C,YAAY,EACV,wEAAwE;QACxE,0EAA0E;QAC1E,uEAAuE;QACvE,sDAAsD;IACxD,MAAM,EAAE;QACN,IAAI,EAAE,CAAC;aACJ,OAAO,EAAE;aACT,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,yDAAyD,CAAC;KACvE;IACD,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,SAAS,CAAW,OAAO,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,IAAI;YAAE,OAAO,QAAQ,CAAC;QACjC,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;CACF,CAAC,CAAC"}
@@ -3,6 +3,7 @@ declare const _default: import("@shardworks/tools-apparatus").ToolDefinition<{
3
3
  sourceId: z.ZodString;
4
4
  targetId: z.ZodString;
5
5
  type: z.ZodString;
6
+ meaning: z.ZodOptional<z.ZodString>;
6
7
  }>;
7
8
  export default _default;
8
9
  //# sourceMappingURL=writ-link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"writ-link.d.ts","sourceRoot":"","sources":["../../src/tools/writ-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;;AAKxB,wBAiBG"}
1
+ {"version":3,"file":"writ-link.d.ts","sourceRoot":"","sources":["../../src/tools/writ-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;;;AAKxB,wBAyBG"}
@@ -6,16 +6,24 @@ export default tool({
6
6
  description: 'Link two writs with a typed relationship',
7
7
  instructions: 'Creates a directional link from source writ to target writ. ' +
8
8
  'The type describes the relationship (e.g. "fixes", "retries", "supersedes", "duplicates"). ' +
9
- 'Idempotent creating the same link twice returns the existing link.',
9
+ 'The type is normalized at write time "depends-on", "dependsOn", and "depends on" all ' +
10
+ 'collapse to the same canonical form. Idempotent — creating the same link twice returns ' +
11
+ 'the existing link. For load-bearing relationships, pass `--meaning <id>` to attach a ' +
12
+ 'registered semantic meaning; the id must appear in the kit-contributed meaning registry ' +
13
+ '(see `writ link-meanings`).',
10
14
  params: {
11
15
  sourceId: z.string().describe('The writ that is the origin of this relationship'),
12
16
  targetId: z.string().describe('The writ that is the target of this relationship'),
13
- type: z.string().describe('Relationship type (e.g. "fixes", "retries", "supersedes", "duplicates")'),
17
+ type: z.string().describe('Relationship type (e.g. "fixes", "retries", "supersedes", "duplicates") — casual label, normalized at write time'),
18
+ meaning: z
19
+ .string()
20
+ .optional()
21
+ .describe('Optional load-bearing semantic meaning id (must be registered — see `writ link-meanings`)'),
14
22
  },
15
23
  permission: 'write',
16
24
  handler: async (params) => {
17
25
  const clerk = guild().apparatus('clerk');
18
- return clerk.link(params.sourceId, params.targetId, params.type);
26
+ return clerk.link(params.sourceId, params.targetId, params.type, params.meaning);
19
27
  },
20
28
  });
21
29
  //# sourceMappingURL=writ-link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"writ-link.js","sourceRoot":"","sources":["../../src/tools/writ-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGnD,eAAe,IAAI,CAAC;IAClB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,0CAA0C;IACvD,YAAY,EACV,8DAA8D;QAC9D,6FAA6F;QAC7F,sEAAsE;IACxE,MAAM,EAAE;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACjF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACjF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;KACrG;IACD,UAAU,EAAE,OAAO;IACnB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,SAAS,CAAW,OAAO,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"writ-link.js","sourceRoot":"","sources":["../../src/tools/writ-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGnD,eAAe,IAAI,CAAC;IAClB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,0CAA0C;IACvD,YAAY,EACV,8DAA8D;QAC9D,6FAA6F;QAC7F,yFAAyF;QACzF,yFAAyF;QACzF,uFAAuF;QACvF,0FAA0F;QAC1F,6BAA6B;IAC/B,MAAM,EAAE;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACjF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACjF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kHAAkH,CAAC;QAC7I,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2FAA2F,CAAC;KACzG;IACD,UAAU,EAAE,OAAO;IACnB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,SAAS,CAAW,OAAO,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACnF,CAAC;CACF,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -135,21 +135,84 @@ declare module '@shardworks/nexus-core' {
135
135
  }
136
136
  /**
137
137
  * A link document as stored in The Stacks (clerk/links book).
138
+ *
139
+ * A writ link has two complementary identifiers for its relationship:
140
+ *
141
+ * - `type` is a casual, human-facing label. It is an open string, normalized
142
+ * at write time via the link-type normalization pipeline (lowercase,
143
+ * trim, camelCase split, snake_case/kebab-case split, whitespace
144
+ * collapse). Variant spellings of the same label collapse to a single
145
+ * canonical form; distinct labels remain distinct. Normalization is
146
+ * purely syntactic — it is NOT synonymy. `requires` and `depends on`
147
+ * normalize to different strings; callers that want to treat them as the
148
+ * same relationship should attach the same `semanticMeaning` to both.
149
+ *
150
+ * - `semanticMeaning` is the load-bearing identifier. It is a stable,
151
+ * plugin-owned id drawn from the kit-contributed meaning registry, and
152
+ * identifies the specific relationship a downstream consumer wants to
153
+ * react to (rendering parent/child, gating publish on `refines`, etc.).
154
+ * `null` when the caller treated this link as a casual label.
138
155
  */
139
156
  export interface WritLinkDoc {
140
157
  /** Index signature required to satisfy BookEntry constraint. */
141
158
  [key: string]: unknown;
142
- /** Deterministic composite key: `{sourceId}:{targetId}:{type}`. */
159
+ /** Deterministic composite key: `{sourceId}:{targetId}:{normalized type}`. */
143
160
  id: string;
144
161
  /** The writ that is the origin of this relationship. */
145
162
  sourceId: string;
146
163
  /** The writ that is the target of this relationship. */
147
164
  targetId: string;
148
- /** Relationship type — an open string (e.g. "fixes", "retries", "supersedes", "duplicates"). */
165
+ /**
166
+ * Casual relationship label — an open string normalized syntactically at
167
+ * write time (e.g. "fixes", "retries", "supersedes", "duplicates",
168
+ * "depends on"). NOT a synonymy layer. For load-bearing identity, use
169
+ * `semanticMeaning`.
170
+ */
149
171
  type: string;
172
+ /**
173
+ * Load-bearing identifier for this relationship. When non-null, references
174
+ * a registered meaning id from the `linkMeanings` kit registry and is the
175
+ * field downstream consumers key on. Always present on each row (`null`
176
+ * when the caller did not attach a meaning).
177
+ */
178
+ semanticMeaning: string | null;
150
179
  /** ISO timestamp when the link was created. */
151
180
  createdAt: string;
152
181
  }
182
+ /**
183
+ * A link-meaning contribution declared by a kit's `linkMeanings` array.
184
+ *
185
+ * Kit authors use this shape when populating `ClerkKit.linkMeanings`. Meaning
186
+ * ids must be prefixed with the contributing plugin's id followed by `:` and
187
+ * a kebab-case suffix — e.g. kit `astrolabe` contributing `astrolabe:refines`.
188
+ * The registry-projection view (returned by `listMeanings()`) is `MeaningDoc`,
189
+ * which embeds the resolved owner plugin id; kit authors do not repeat their
190
+ * plugin id on each entry.
191
+ */
192
+ export interface MeaningEntry {
193
+ /**
194
+ * Fully-qualified meaning id. Must begin with `{pluginId}:` and be followed
195
+ * by a non-empty kebab-case suffix (lowercase letters, digits, and hyphens,
196
+ * not starting or ending with a hyphen).
197
+ */
198
+ id: string;
199
+ /** Human-readable description of the relationship this meaning denotes. */
200
+ description: string;
201
+ }
202
+ /**
203
+ * A link-meaning record as projected by `listMeanings()`.
204
+ *
205
+ * Unlike `MeaningEntry`, this shape embeds the resolved owner plugin id so
206
+ * consumers of the registry do not need to parse it back out of `id`.
207
+ */
208
+ export interface MeaningDoc {
209
+ /** Fully-qualified meaning id. */
210
+ id: string;
211
+ /** Plugin id of the kit that contributed this meaning. */
212
+ ownerPlugin: string;
213
+ /** Human-readable description of this meaning. */
214
+ description: string;
215
+ }
153
216
  /**
154
217
  * Result of querying links for a writ — both directions in one response.
155
218
  */
@@ -202,10 +265,15 @@ export interface ClerkApi {
202
265
  transition(id: string, to: WritStatus, fields?: Partial<WritDoc>): Promise<WritDoc>;
203
266
  /**
204
267
  * Create a typed directional link from one writ to another.
205
- * Both writs must exist. Self-links are rejected. Idempotent returns
206
- * the existing link if the (sourceId, targetId, type) triple already exists.
268
+ * Both writs must exist. Self-links are rejected. The `type` argument is
269
+ * normalized before the composite id is constructed, so variant spellings
270
+ * of the same label collapse to a single link. When a link with the same
271
+ * canonical composite id already exists, the existing row is returned;
272
+ * if `semanticMeaning` is supplied, it is written onto the existing row
273
+ * (upsert). The optional `semanticMeaning` must reference an id registered
274
+ * in the kit-contributed meaning registry; unknown ids are rejected.
207
275
  */
208
- link(sourceId: string, targetId: string, type: string): Promise<WritLinkDoc>;
276
+ link(sourceId: string, targetId: string, type: string, semanticMeaning?: string): Promise<WritLinkDoc>;
209
277
  /**
210
278
  * Query all links for a writ — both outbound (this writ is the source)
211
279
  * and inbound (this writ is the target).
@@ -229,5 +297,12 @@ export interface ClerkApi {
229
297
  * whether it is the default type.
230
298
  */
231
299
  listWritTypes(): WritTypeInfo[];
300
+ /**
301
+ * List all registered link meanings contributed by kits.
302
+ * Returns the registry-projection view of each meaning, including its
303
+ * owner plugin id. Returns an empty array when no meanings have been
304
+ * registered.
305
+ */
306
+ listMeanings(): Promise<MeaningDoc[]>;
232
307
  }
233
308
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAIzF;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,gEAAgE;IAChE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,sFAAsF;IACtF,EAAE,EAAE,MAAM,CAAC;IACX,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;GAEG;AACH;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe;IACf,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACnC,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sFAAsF;IACtF,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,4FAA4F;IAC5F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,WAAW;QACnB,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB;CACF;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,8EAA8E;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,oEAAoE;IACpE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,oEAAoE;IACpE,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAID;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC;CACpB;AAID;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvD;;OAEG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEhD;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpF;;;;;;;;;OASG;IACH,IAAI,CACF,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE1C;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD;;;;;OAKG;IACH,aAAa,IAAI,YAAY,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CACvC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shardworks/clerk-apparatus",
3
- "version": "0.1.216",
3
+ "version": "0.1.217",
4
4
  "license": "ISC",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,12 +20,12 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "zod": "4.3.6",
23
- "@shardworks/stacks-apparatus": "0.1.216",
24
- "@shardworks/tools-apparatus": "0.1.216"
23
+ "@shardworks/stacks-apparatus": "0.1.217",
24
+ "@shardworks/tools-apparatus": "0.1.217"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "25.5.0",
28
- "@shardworks/nexus-core": "0.1.216"
28
+ "@shardworks/nexus-core": "0.1.217"
29
29
  },
30
30
  "files": [
31
31
  "dist",