@shardworks/clerk-apparatus 0.1.161 → 0.1.163

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
@@ -160,7 +160,7 @@ new ──► ready ──────┤──► active ──────┤
160
160
  |---|---|
161
161
  | `ready` | `new`, `waiting` |
162
162
  | `active` | `ready` |
163
- | `completed` | `active` |
163
+ | `completed` | `ready`, `active` |
164
164
  | `failed` | `active`, `waiting` |
165
165
  | `cancelled` | `new`, `ready`, `active`, `waiting` |
166
166
  | `waiting` | `new`, `ready` |
@@ -227,7 +227,7 @@ The Clerk contributes books, tools, and pages to the guild:
227
227
  | `writ-list` | `clerk:read` | List writs with optional filters (status, type, parentId) |
228
228
  | `writ-edit` | `clerk:write` | Edit a writ (title/body any status; type/codex draft only) |
229
229
  | `writ-accept` | `clerk:write` | Accept a writ (ready → active) |
230
- | `writ-complete` | `clerk:write` | Complete a writ (active → completed) |
230
+ | `writ-complete` | `clerk:write` | Complete a writ (ready|active → completed) |
231
231
  | `writ-fail` | `clerk:write` | Fail a writ (active/waiting → failed) |
232
232
  | `writ-cancel` | `clerk:write` | Cancel a writ (new/ready/active/waiting → cancelled) |
233
233
  | `writ-publish` | `clerk:write` | Publish a draft writ (new → ready) |
package/dist/clerk.js CHANGED
@@ -21,7 +21,7 @@ const BUILTIN_TYPES = new Set(['mandate']);
21
21
  const ALLOWED_FROM = {
22
22
  ready: ['new', 'waiting'],
23
23
  active: ['ready'],
24
- completed: ['active'],
24
+ completed: ['ready', 'active'],
25
25
  failed: ['active', 'waiting'],
26
26
  cancelled: ['new', 'ready', 'active', 'waiting'],
27
27
  waiting: ['new', 'ready'],
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"writ-complete.d.ts","sourceRoot":"","sources":["../../src/tools/writ-complete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;AAKxB,wBAgBG"}
1
+ {"version":3,"file":"writ-complete.d.ts","sourceRoot":"","sources":["../../src/tools/writ-complete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;AAKxB,wBAkBG"}
@@ -3,9 +3,11 @@ import { guild } from '@shardworks/nexus-core';
3
3
  import { tool } from '@shardworks/tools-apparatus';
4
4
  export default tool({
5
5
  name: 'writ-complete',
6
- description: 'Complete a writ, transitioning it from active to completed',
6
+ description: 'Complete a writ, transitioning it from ready or active to completed',
7
7
  instructions: 'Marks the writ as successfully completed. ' +
8
- 'Only writs in active status can be completed. ' +
8
+ 'Writs in ready or active status can be completed. ' +
9
+ 'Undispatched writ types (e.g. quest) typically transition ready → completed directly; ' +
10
+ 'dispatch-bound writs (e.g. mandate) usually flow ready → active → completed. ' +
9
11
  'Returns the updated writ.',
10
12
  params: {
11
13
  id: z.string().describe('Writ id'),
@@ -1 +1 @@
1
- {"version":3,"file":"writ-complete.js","sourceRoot":"","sources":["../../src/tools/writ-complete.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,eAAe;IACrB,WAAW,EAAE,4DAA4D;IACzE,YAAY,EACV,4CAA4C;QAC5C,gDAAgD;QAChD,2BAA2B;IAC7B,MAAM,EAAE;QACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KACzE;IACD,UAAU,EAAE,aAAa;IACzB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,SAAS,CAAW,OAAO,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACrF,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"writ-complete.js","sourceRoot":"","sources":["../../src/tools/writ-complete.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,eAAe;IACrB,WAAW,EAAE,qEAAqE;IAClF,YAAY,EACV,4CAA4C;QAC5C,oDAAoD;QACpD,wFAAwF;QACxF,+EAA+E;QAC/E,2BAA2B;IAC7B,MAAM,EAAE;QACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KACzE;IACD,UAAU,EAAE,aAAa;IACzB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,SAAS,CAAW,OAAO,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACrF,CAAC;CACF,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -14,6 +14,7 @@
14
14
  * ready → waiting (child added)
15
15
  * waiting → ready (all children terminal, none failed)
16
16
  * waiting → failed (child failed)
17
+ * ready → completed (complete) — undispatched writ types, e.g. quest
17
18
  * active → completed (complete)
18
19
  * active → failed (fail)
19
20
  * ready | active | waiting → cancelled (cancel)
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shardworks/clerk-apparatus",
3
- "version": "0.1.161",
3
+ "version": "0.1.163",
4
4
  "license": "ISC",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,9 +17,9 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "zod": "4.3.6",
20
- "@shardworks/nexus-core": "0.1.161",
21
- "@shardworks/stacks-apparatus": "0.1.161",
22
- "@shardworks/tools-apparatus": "0.1.161"
20
+ "@shardworks/nexus-core": "0.1.163",
21
+ "@shardworks/tools-apparatus": "0.1.163",
22
+ "@shardworks/stacks-apparatus": "0.1.163"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "25.5.0"
@@ -61,6 +61,10 @@
61
61
  <button class="btn filter-btn" data-status="failed">failed</button>
62
62
  <button class="btn filter-btn" data-status="cancelled">cancelled</button>
63
63
  </span>
64
+ <span id="type-filter-bar" style="display:inline-flex;gap:0.4rem;flex-wrap:wrap;align-items:center">
65
+ <span style="font-size:0.875rem;opacity:0.6">Type:</span>
66
+ <button class="btn type-filter-btn active-filter" data-type="">All</button>
67
+ </span>
64
68
  <input type="text" id="search-input" placeholder="Search title...">
65
69
  </div>
66
70
  </div>
@@ -130,6 +134,7 @@
130
134
  let writs = []; // currently loaded writs array
131
135
  let offset = 0;
132
136
  let currentStatus = ''; // '' = all
137
+ let currentType = ''; // '' = all
133
138
  let searchText = '';
134
139
  let sortCol = 'createdAt';
135
140
  let sortDir = 'desc';
@@ -813,6 +818,7 @@
813
818
 
814
819
  const params = new URLSearchParams({ limit: String(LIMIT), offset: String(offset) });
815
820
  if (currentStatus) params.set('status', currentStatus);
821
+ if (currentType) params.set('type', currentType);
816
822
 
817
823
  let result;
818
824
  try {
@@ -858,6 +864,45 @@
858
864
  if (t.default) opt.selected = true;
859
865
  sel.appendChild(opt);
860
866
  }
867
+
868
+ // Build type-filter buttons
869
+ buildTypeFilterBar(types);
870
+ }
871
+
872
+ function buildTypeFilterBar(types) {
873
+ const bar = document.getElementById('type-filter-bar');
874
+ // Clear existing buttons (keep the label span)
875
+ bar.innerHTML = '<span style="font-size:0.875rem;opacity:0.6">Type:</span>';
876
+
877
+ // "All" button
878
+ const allBtn = document.createElement('button');
879
+ allBtn.className = 'btn type-filter-btn';
880
+ allBtn.dataset.type = '';
881
+ allBtn.textContent = 'All';
882
+ bar.appendChild(allBtn);
883
+
884
+ // One button per known type
885
+ for (const t of types) {
886
+ const btn = document.createElement('button');
887
+ btn.className = 'btn type-filter-btn';
888
+ btn.dataset.type = t.name;
889
+ btn.textContent = t.name;
890
+ if (t.description) btn.title = t.description;
891
+ bar.appendChild(btn);
892
+ }
893
+
894
+ // Wire click handlers
895
+ bar.querySelectorAll('.type-filter-btn').forEach(btn => {
896
+ btn.addEventListener('click', () => setTypeFilter(btn.dataset.type));
897
+ });
898
+
899
+ // Default: select 'mandate' if present, otherwise 'All'
900
+ const hasMandateType = types.some(t => t.name === 'mandate');
901
+ const defaultType = hasMandateType ? 'mandate' : '';
902
+ currentType = defaultType;
903
+ bar.querySelectorAll('.type-filter-btn').forEach(btn => {
904
+ btn.classList.toggle('active-filter', btn.dataset.type === defaultType);
905
+ });
861
906
  }
862
907
 
863
908
  async function loadCodexes() {
@@ -1035,6 +1080,14 @@
1035
1080
  loadWrits(true);
1036
1081
  }
1037
1082
 
1083
+ function setTypeFilter(type) {
1084
+ currentType = type;
1085
+ document.querySelectorAll('.type-filter-btn').forEach(btn => {
1086
+ btn.classList.toggle('active-filter', btn.dataset.type === type);
1087
+ });
1088
+ loadWrits(true);
1089
+ }
1090
+
1038
1091
  // ── Event wiring ────────────────────────────────────────────────────
1039
1092
 
1040
1093
  document.getElementById('btn-new-writ').addEventListener('click', () => {
@@ -1075,11 +1128,13 @@
1075
1128
  });
1076
1129
 
1077
1130
  // ── Init ────────────────────────────────────────────────────────────
1078
- loadWritTypes();
1079
1131
  loadCodexes();
1080
1132
 
1081
1133
  // Deep-link: ?writ=ID
1082
1134
  (async function () {
1135
+ // Load writ types first so currentType default is set before fetching writs
1136
+ await loadWritTypes();
1137
+
1083
1138
  var params = new URLSearchParams(window.location.search);
1084
1139
  var writId = params.get('writ');
1085
1140
 
@@ -0,0 +1,283 @@
1
+ /**
2
+ * Unit tests for writ type filter logic in writs/index.html.
3
+ *
4
+ * Extracts and tests the pure logic behind the type filter bar:
5
+ * - Button generation from writ types
6
+ * - Default type selection (mandate if present, else All)
7
+ * - Filter toggling via setTypeFilter
8
+ *
9
+ * Uses a minimal DOM shim to validate element creation without a browser.
10
+ */
11
+
12
+ import { describe, it, beforeEach } from 'node:test';
13
+ import assert from 'node:assert/strict';
14
+
15
+ // ── Minimal DOM shim ────────────────────────────────────────────────
16
+
17
+ /** Tiny element stub sufficient for the filter bar logic. */
18
+ class FakeElement {
19
+ constructor(tag) {
20
+ this.tagName = tag.toUpperCase();
21
+ this.className = '';
22
+ this.textContent = '';
23
+ this.title = '';
24
+ this.innerHTML = '';
25
+ this.dataset = {};
26
+ this.children = [];
27
+ this._listeners = {};
28
+ }
29
+
30
+ appendChild(child) {
31
+ this.children.push(child);
32
+ return child;
33
+ }
34
+
35
+ querySelectorAll(selector) {
36
+ // Only supports '.type-filter-btn'
37
+ return this.children.filter(c =>
38
+ c.className.includes('type-filter-btn'),
39
+ );
40
+ }
41
+
42
+ addEventListener(event, fn) {
43
+ if (!this._listeners[event]) this._listeners[event] = [];
44
+ this._listeners[event].push(fn);
45
+ }
46
+
47
+ click() {
48
+ for (const fn of this._listeners.click ?? []) fn();
49
+ }
50
+
51
+ get classList() {
52
+ const self = this;
53
+ return {
54
+ toggle(cls, force) {
55
+ const classes = self.className.split(/\s+/).filter(Boolean);
56
+ const idx = classes.indexOf(cls);
57
+ if (force && idx === -1) classes.push(cls);
58
+ if (!force && idx !== -1) classes.splice(idx, 1);
59
+ self.className = classes.join(' ');
60
+ },
61
+ contains(cls) {
62
+ return self.className.split(/\s+/).includes(cls);
63
+ },
64
+ };
65
+ }
66
+ }
67
+
68
+ function createElement(tag) {
69
+ return new FakeElement(tag);
70
+ }
71
+
72
+ // ── Extracted logic (mirrors index.html) ────────────────────────────
73
+
74
+ /**
75
+ * Builds type filter buttons from a types array into a bar element.
76
+ * Returns { bar, defaultType } for testability.
77
+ */
78
+ function buildTypeFilterBar(types, bar) {
79
+ // Clear existing buttons (keep label span)
80
+ bar.innerHTML = '';
81
+ bar.children = [];
82
+
83
+ // Label
84
+ const label = createElement('span');
85
+ label.textContent = 'Type:';
86
+ bar.appendChild(label);
87
+
88
+ // "All" button
89
+ const allBtn = createElement('button');
90
+ allBtn.className = 'btn type-filter-btn';
91
+ allBtn.dataset.type = '';
92
+ allBtn.textContent = 'All';
93
+ bar.appendChild(allBtn);
94
+
95
+ // One button per known type
96
+ for (const t of types) {
97
+ const btn = createElement('button');
98
+ btn.className = 'btn type-filter-btn';
99
+ btn.dataset.type = t.name;
100
+ btn.textContent = t.name;
101
+ if (t.description) btn.title = t.description;
102
+ bar.appendChild(btn);
103
+ }
104
+
105
+ // Default: select 'mandate' if present, otherwise 'All'
106
+ const hasMandateType = types.some(t => t.name === 'mandate');
107
+ const defaultType = hasMandateType ? 'mandate' : '';
108
+
109
+ bar.querySelectorAll('.type-filter-btn').forEach(btn => {
110
+ btn.classList.toggle('active-filter', btn.dataset.type === defaultType);
111
+ });
112
+
113
+ return defaultType;
114
+ }
115
+
116
+ /**
117
+ * Applies a type filter selection to the bar (mirrors setTypeFilter).
118
+ */
119
+ function applyTypeFilter(bar, type) {
120
+ bar.querySelectorAll('.type-filter-btn').forEach(btn => {
121
+ btn.classList.toggle('active-filter', btn.dataset.type === type);
122
+ });
123
+ }
124
+
125
+ // ── Tests ────────────────────────────────────────────────────────────
126
+
127
+ describe('buildTypeFilterBar()', () => {
128
+ let bar;
129
+
130
+ beforeEach(() => {
131
+ bar = createElement('span');
132
+ });
133
+
134
+ it('creates "All" button plus one per type', () => {
135
+ const types = [
136
+ { name: 'mandate' },
137
+ { name: 'task' },
138
+ ];
139
+ buildTypeFilterBar(types, bar);
140
+
141
+ const btns = bar.querySelectorAll('.type-filter-btn');
142
+ assert.equal(btns.length, 3); // All + mandate + task
143
+ assert.equal(btns[0].textContent, 'All');
144
+ assert.equal(btns[0].dataset.type, '');
145
+ assert.equal(btns[1].textContent, 'mandate');
146
+ assert.equal(btns[1].dataset.type, 'mandate');
147
+ assert.equal(btns[2].textContent, 'task');
148
+ assert.equal(btns[2].dataset.type, 'task');
149
+ });
150
+
151
+ it('defaults to mandate when mandate is present', () => {
152
+ const types = [
153
+ { name: 'task' },
154
+ { name: 'mandate' },
155
+ { name: 'bug' },
156
+ ];
157
+ const defaultType = buildTypeFilterBar(types, bar);
158
+
159
+ assert.equal(defaultType, 'mandate');
160
+
161
+ const btns = bar.querySelectorAll('.type-filter-btn');
162
+ // "All" should NOT be active
163
+ const allBtn = btns.find(b => b.dataset.type === '');
164
+ assert.ok(!allBtn.classList.contains('active-filter'), 'All should not be active');
165
+ // "mandate" should be active
166
+ const mandateBtn = btns.find(b => b.dataset.type === 'mandate');
167
+ assert.ok(mandateBtn.classList.contains('active-filter'), 'mandate should be active');
168
+ // others should not be active
169
+ const taskBtn = btns.find(b => b.dataset.type === 'task');
170
+ assert.ok(!taskBtn.classList.contains('active-filter'), 'task should not be active');
171
+ });
172
+
173
+ it('defaults to All when mandate is not present', () => {
174
+ const types = [
175
+ { name: 'task' },
176
+ { name: 'bug' },
177
+ ];
178
+ const defaultType = buildTypeFilterBar(types, bar);
179
+
180
+ assert.equal(defaultType, '');
181
+
182
+ const btns = bar.querySelectorAll('.type-filter-btn');
183
+ const allBtn = btns.find(b => b.dataset.type === '');
184
+ assert.ok(allBtn.classList.contains('active-filter'), 'All should be active');
185
+ const taskBtn = btns.find(b => b.dataset.type === 'task');
186
+ assert.ok(!taskBtn.classList.contains('active-filter'), 'task should not be active');
187
+ });
188
+
189
+ it('handles empty types array — only All button', () => {
190
+ const types = [];
191
+ const defaultType = buildTypeFilterBar(types, bar);
192
+
193
+ assert.equal(defaultType, '');
194
+
195
+ const btns = bar.querySelectorAll('.type-filter-btn');
196
+ assert.equal(btns.length, 1);
197
+ assert.equal(btns[0].textContent, 'All');
198
+ assert.ok(btns[0].classList.contains('active-filter'));
199
+ });
200
+
201
+ it('handles single mandate type', () => {
202
+ const types = [{ name: 'mandate' }];
203
+ const defaultType = buildTypeFilterBar(types, bar);
204
+
205
+ assert.equal(defaultType, 'mandate');
206
+ const btns = bar.querySelectorAll('.type-filter-btn');
207
+ assert.equal(btns.length, 2); // All + mandate
208
+ });
209
+
210
+ it('sets title from description', () => {
211
+ const types = [
212
+ { name: 'task', description: 'A work item' },
213
+ ];
214
+ buildTypeFilterBar(types, bar);
215
+
216
+ const btns = bar.querySelectorAll('.type-filter-btn');
217
+ const taskBtn = btns.find(b => b.dataset.type === 'task');
218
+ assert.equal(taskBtn.title, 'A work item');
219
+ });
220
+
221
+ it('does not set title when no description', () => {
222
+ const types = [{ name: 'task' }];
223
+ buildTypeFilterBar(types, bar);
224
+
225
+ const btns = bar.querySelectorAll('.type-filter-btn');
226
+ const taskBtn = btns.find(b => b.dataset.type === 'task');
227
+ assert.equal(taskBtn.title, '');
228
+ });
229
+
230
+ it('includes label span as first child', () => {
231
+ buildTypeFilterBar([{ name: 'mandate' }], bar);
232
+ assert.equal(bar.children[0].textContent, 'Type:');
233
+ });
234
+ });
235
+
236
+ describe('applyTypeFilter()', () => {
237
+ let bar;
238
+
239
+ beforeEach(() => {
240
+ bar = createElement('span');
241
+ buildTypeFilterBar([
242
+ { name: 'mandate' },
243
+ { name: 'task' },
244
+ { name: 'bug' },
245
+ ], bar);
246
+ });
247
+
248
+ it('switches active state to selected type', () => {
249
+ applyTypeFilter(bar, 'task');
250
+
251
+ const btns = bar.querySelectorAll('.type-filter-btn');
252
+ const taskBtn = btns.find(b => b.dataset.type === 'task');
253
+ const mandateBtn = btns.find(b => b.dataset.type === 'mandate');
254
+ const allBtn = btns.find(b => b.dataset.type === '');
255
+
256
+ assert.ok(taskBtn.classList.contains('active-filter'));
257
+ assert.ok(!mandateBtn.classList.contains('active-filter'));
258
+ assert.ok(!allBtn.classList.contains('active-filter'));
259
+ });
260
+
261
+ it('switches active state to All', () => {
262
+ applyTypeFilter(bar, '');
263
+
264
+ const btns = bar.querySelectorAll('.type-filter-btn');
265
+ const allBtn = btns.find(b => b.dataset.type === '');
266
+ assert.ok(allBtn.classList.contains('active-filter'));
267
+
268
+ // All others should be inactive
269
+ for (const btn of btns) {
270
+ if (btn.dataset.type !== '') {
271
+ assert.ok(!btn.classList.contains('active-filter'), `${btn.dataset.type} should not be active`);
272
+ }
273
+ }
274
+ });
275
+
276
+ it('only one button is active at a time', () => {
277
+ applyTypeFilter(bar, 'bug');
278
+
279
+ const btns = bar.querySelectorAll('.type-filter-btn');
280
+ const activeCount = btns.filter(b => b.classList.contains('active-filter')).length;
281
+ assert.equal(activeCount, 1);
282
+ });
283
+ });