@shardworks/clerk-apparatus 0.1.136 → 0.1.138
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 +74 -19
- package/dist/clerk.d.ts.map +1 -1
- package/dist/clerk.js +112 -8
- package/dist/clerk.js.map +1 -1
- package/dist/tools/commission-post.d.ts +1 -0
- package/dist/tools/commission-post.d.ts.map +1 -1
- package/dist/tools/commission-post.js +10 -1
- package/dist/tools/commission-post.js.map +1 -1
- package/dist/tools/writ-cancel.d.ts.map +1 -1
- package/dist/tools/writ-cancel.js +3 -2
- package/dist/tools/writ-cancel.js.map +1 -1
- package/dist/tools/writ-fail.d.ts.map +1 -1
- package/dist/tools/writ-fail.js +3 -2
- package/dist/tools/writ-fail.js.map +1 -1
- package/dist/tools/writ-list.d.ts +3 -0
- package/dist/tools/writ-list.d.ts.map +1 -1
- package/dist/tools/writ-list.js +3 -1
- package/dist/tools/writ-list.js.map +1 -1
- package/dist/tools/writ-show.d.ts.map +1 -1
- package/dist/tools/writ-show.js +22 -2
- package/dist/tools/writ-show.js.map +1 -1
- package/dist/types.d.ts +17 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# `@shardworks/clerk-apparatus`
|
|
2
2
|
|
|
3
|
-
The Clerk manages the lifecycle of **writs** — lightweight work orders that flow through a fixed status machine. Writs are created as commissions and ultimately completed, failed, or cancelled.
|
|
3
|
+
The Clerk manages the lifecycle of **writs** — lightweight work orders that flow through a fixed status machine. Writs are created as commissions and ultimately completed, failed, or cancelled. Writs can be organized into parent/child hierarchies for decomposing complex work.
|
|
4
4
|
|
|
5
5
|
The Clerk sits downstream of The Stacks: `stacks ← clerk`.
|
|
6
6
|
|
|
@@ -40,6 +40,7 @@ const writ = await clerk.post({
|
|
|
40
40
|
body: 'Move all session logic into a dedicated module',
|
|
41
41
|
type: 'mandate', // optional, defaults to guild defaultType or "mandate"
|
|
42
42
|
codex: 'artificer', // optional target codex
|
|
43
|
+
parentId: parent.id, // optional parent writ for hierarchical decomposition
|
|
43
44
|
});
|
|
44
45
|
```
|
|
45
46
|
|
|
@@ -48,7 +49,14 @@ const writ = await clerk.post({
|
|
|
48
49
|
| `title` | `string` | Short human-readable title |
|
|
49
50
|
| `body` | `string` | Detail text (required) |
|
|
50
51
|
| `type` | `string` | Writ type — must be declared or built-in (optional) |
|
|
51
|
-
| `codex` | `string` | Target codex name (optional) |
|
|
52
|
+
| `codex` | `string` | Target codex name (optional, inherited from parent if omitted) |
|
|
53
|
+
| `parentId` | `string` | Parent writ id for hierarchical decomposition (optional) |
|
|
54
|
+
|
|
55
|
+
When `parentId` is provided:
|
|
56
|
+
- The parent must exist and be in `new`, `ready`, or `waiting` status.
|
|
57
|
+
- The parent is transitioned to `waiting` if it is in `new` or `ready`.
|
|
58
|
+
- The child inherits the parent's `codex` if no explicit codex is provided.
|
|
59
|
+
- The entire operation (child creation + parent transition) is atomic.
|
|
52
60
|
|
|
53
61
|
Throws if the writ type is not declared in the guild config and is not a built-in type (`mandate`, `summon`).
|
|
54
62
|
|
|
@@ -62,12 +70,14 @@ List writs with optional filters, ordered by `createdAt` descending (newest firs
|
|
|
62
70
|
|
|
63
71
|
```typescript
|
|
64
72
|
const activeWrits = await clerk.list({ status: 'active', limit: 10 });
|
|
73
|
+
const children = await clerk.list({ parentId: parent.id });
|
|
65
74
|
```
|
|
66
75
|
|
|
67
76
|
| Filter | Type | Description |
|
|
68
77
|
|---|---|---|
|
|
69
78
|
| `status` | `WritStatus` | Filter by status |
|
|
70
79
|
| `type` | `string` | Filter by writ type |
|
|
80
|
+
| `parentId` | `string` | Filter to children of this parent writ |
|
|
71
81
|
| `limit` | `number` | Maximum results (default: 20) |
|
|
72
82
|
| `offset` | `number` | Number of results to skip |
|
|
73
83
|
|
|
@@ -99,20 +109,50 @@ await clerk.transition(id, 'cancelled', { resolution: 'No longer needed' });
|
|
|
99
109
|
|
|
100
110
|
Throws if the transition is not legal for the writ's current status.
|
|
101
111
|
|
|
112
|
+
**Cascade behavior:** When a writ with children transitions to a terminal status, all non-terminal children are automatically cancelled. When a child fails, its parent is failed and remaining siblings are cancelled.
|
|
113
|
+
|
|
102
114
|
---
|
|
103
115
|
|
|
104
116
|
## Status Machine
|
|
105
117
|
|
|
106
118
|
```
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
119
|
+
┌────────────► waiting ──────────► ready
|
|
120
|
+
│ (children (all children
|
|
121
|
+
│ added) resolved)
|
|
122
|
+
│ │
|
|
123
|
+
new ──► ready ──────┤──► active ──────┤──► completed
|
|
124
|
+
│ │ │ │ │
|
|
125
|
+
│ │ │ └──────────┤──► failed
|
|
126
|
+
│ │ │ │
|
|
127
|
+
└───────┴─────────┴─────────────────┴──► cancelled
|
|
113
128
|
```
|
|
114
129
|
|
|
115
|
-
`completed`, `failed`, and `cancelled` are **terminal** — no transitions out.
|
|
130
|
+
- `completed`, `failed`, and `cancelled` are **terminal** — no transitions out.
|
|
131
|
+
- `waiting` is **non-terminal** — parents wait for children to resolve, then return to `ready`.
|
|
132
|
+
|
|
133
|
+
### Allowed transitions
|
|
134
|
+
|
|
135
|
+
| To | From |
|
|
136
|
+
|---|---|
|
|
137
|
+
| `ready` | `new`, `waiting` |
|
|
138
|
+
| `active` | `ready` |
|
|
139
|
+
| `completed` | `active` |
|
|
140
|
+
| `failed` | `active`, `waiting` |
|
|
141
|
+
| `cancelled` | `new`, `ready`, `active`, `waiting` |
|
|
142
|
+
| `waiting` | `new`, `ready` |
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Parent/Child Hierarchies
|
|
147
|
+
|
|
148
|
+
Writs can be organized into parent/child relationships for decomposing complex work:
|
|
149
|
+
|
|
150
|
+
- **Creating children:** Pass `parentId` to `post()`. The parent transitions to `waiting`.
|
|
151
|
+
- **Completion rollup:** When all children reach terminal status (none failed), the parent returns to `ready`.
|
|
152
|
+
- **Failure cascade:** When a child fails, the parent is failed and remaining non-terminal siblings are cancelled.
|
|
153
|
+
- **Cancellation cascade:** When a parent reaches terminal status, all non-terminal children are cancelled.
|
|
154
|
+
- **Codex inheritance:** Children inherit the parent's codex if none is specified.
|
|
155
|
+
- **Immutability:** `parentId` cannot be changed after creation.
|
|
116
156
|
|
|
117
157
|
---
|
|
118
158
|
|
|
@@ -145,40 +185,46 @@ The built-in types `mandate` and `summon` are always available without declarati
|
|
|
145
185
|
|
|
146
186
|
## Support Kit
|
|
147
187
|
|
|
148
|
-
The Clerk contributes
|
|
188
|
+
The Clerk contributes books, tools, and pages to the guild:
|
|
149
189
|
|
|
150
190
|
### Books
|
|
151
191
|
|
|
152
192
|
| Book | Indexes | Contents |
|
|
153
193
|
|---|---|---|
|
|
154
|
-
| `writs` | `status`, `type`, `createdAt`, `[status, type]`, `[status, createdAt]` | Writ documents |
|
|
194
|
+
| `writs` | `status`, `type`, `createdAt`, `parentId`, `[status, type]`, `[status, createdAt]`, `[parentId, status]` | Writ documents |
|
|
195
|
+
| `links` | `sourceId`, `targetId`, `type`, `[sourceId, type]`, `[targetId, type]` | Writ relationship links |
|
|
155
196
|
|
|
156
197
|
### Tools
|
|
157
198
|
|
|
158
199
|
| Tool | Permission | Description |
|
|
159
200
|
|---|---|---|
|
|
160
|
-
| `commission-post` | `clerk:write` | Post a new commission (create a writ) |
|
|
161
|
-
| `writ-show` | `clerk:read` | Show full detail for a writ |
|
|
162
|
-
| `writ-list` | `clerk:read` | List writs with optional filters |
|
|
201
|
+
| `commission-post` | `clerk:write` | Post a new commission (create a writ, optionally as child) |
|
|
202
|
+
| `writ-show` | `clerk:read` | Show full detail for a writ (includes parent/children context) |
|
|
203
|
+
| `writ-list` | `clerk:read` | List writs with optional filters (status, type, parentId) |
|
|
163
204
|
| `writ-accept` | `clerk:write` | Accept a writ (ready → active) |
|
|
164
205
|
| `writ-complete` | `clerk:write` | Complete a writ (active → completed) |
|
|
165
|
-
| `writ-fail` | `clerk:write` | Fail a writ (active → failed) |
|
|
166
|
-
| `writ-cancel` | `clerk:write` | Cancel a writ (ready
|
|
206
|
+
| `writ-fail` | `clerk:write` | Fail a writ (active/waiting → failed) |
|
|
207
|
+
| `writ-cancel` | `clerk:write` | Cancel a writ (new/ready/active/waiting → cancelled) |
|
|
208
|
+
| `writ-publish` | `clerk:write` | Publish a draft writ (new → ready) |
|
|
209
|
+
| `writ-link` | `clerk:write` | Create a typed link between writs |
|
|
210
|
+
| `writ-unlink` | `clerk:write` | Remove a typed link between writs |
|
|
211
|
+
| `writ-types` | `clerk:read` | List available writ types |
|
|
167
212
|
|
|
168
213
|
---
|
|
169
214
|
|
|
170
215
|
## Key Types
|
|
171
216
|
|
|
172
217
|
```typescript
|
|
173
|
-
type WritStatus = 'ready' | 'active' | 'completed' | 'failed' | 'cancelled';
|
|
218
|
+
type WritStatus = 'new' | 'ready' | 'active' | 'waiting' | 'completed' | 'failed' | 'cancelled';
|
|
174
219
|
|
|
175
220
|
interface WritDoc {
|
|
176
|
-
id: string; // ULID-like, prefixed "
|
|
221
|
+
id: string; // ULID-like, prefixed "w-"
|
|
177
222
|
type: string; // declared or built-in type
|
|
178
223
|
status: WritStatus;
|
|
179
224
|
title: string;
|
|
180
225
|
body: string;
|
|
181
226
|
codex?: string; // target codex name
|
|
227
|
+
parentId?: string; // parent writ id (absent on root writs, immutable)
|
|
182
228
|
createdAt: string; // ISO timestamp
|
|
183
229
|
updatedAt: string; // ISO timestamp, updated on every mutation
|
|
184
230
|
acceptedAt?: string; // ISO timestamp, set when transitioning to active
|
|
@@ -190,7 +236,16 @@ interface PostCommissionRequest {
|
|
|
190
236
|
title: string;
|
|
191
237
|
body: string; // required
|
|
192
238
|
type?: string; // defaults to guild defaultType or "mandate"
|
|
193
|
-
codex?: string;
|
|
239
|
+
codex?: string; // inherited from parent if omitted
|
|
240
|
+
parentId?: string; // create as child of this writ
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
interface WritFilters {
|
|
244
|
+
status?: WritStatus;
|
|
245
|
+
type?: string;
|
|
246
|
+
parentId?: string; // filter to children of this parent
|
|
247
|
+
limit?: number;
|
|
248
|
+
offset?: number;
|
|
194
249
|
}
|
|
195
250
|
```
|
|
196
251
|
|
package/dist/clerk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clerk.d.ts","sourceRoot":"","sources":["../src/clerk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,wBAAwB,CAAC;AAKrE,OAAO,KAAK,EASV,aAAa,EACd,MAAM,YAAY,CAAC;AAiBpB,mEAAmE;AACnE,MAAM,WAAW,QAAQ;IACvB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"clerk.d.ts","sourceRoot":"","sources":["../src/clerk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,wBAAwB,CAAC;AAKrE,OAAO,KAAK,EASV,aAAa,EACd,MAAM,YAAY,CAAC;AAiBpB,mEAAmE;AACnE,MAAM,WAAW,QAAQ;IACvB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;CAC7B;AAyBD,wBAAgB,WAAW,IAAI,MAAM,CAuZpC"}
|
package/dist/clerk.js
CHANGED
|
@@ -19,16 +19,20 @@ import { commissionPost, writShow, writList, writAccept, writComplete, writFail,
|
|
|
19
19
|
const BUILTIN_TYPES = new Set(['mandate']);
|
|
20
20
|
// ── Status machine ───────────────────────────────────────────────────
|
|
21
21
|
const ALLOWED_FROM = {
|
|
22
|
-
ready: ['new'],
|
|
22
|
+
ready: ['new', 'waiting'],
|
|
23
23
|
active: ['ready'],
|
|
24
24
|
completed: ['active'],
|
|
25
|
-
failed: ['active'],
|
|
26
|
-
cancelled: ['new', 'ready', 'active'],
|
|
25
|
+
failed: ['active', 'waiting'],
|
|
26
|
+
cancelled: ['new', 'ready', 'active', 'waiting'],
|
|
27
|
+
waiting: ['new', 'ready'],
|
|
27
28
|
new: [],
|
|
28
29
|
};
|
|
29
30
|
const TERMINAL_STATUSES = new Set(['completed', 'failed', 'cancelled']);
|
|
30
31
|
// ── Factory ──────────────────────────────────────────────────────────
|
|
32
|
+
/** Parent statuses that allow adding children. */
|
|
33
|
+
const CHILD_ALLOWED_PARENT_STATUSES = new Set(['new', 'ready', 'waiting']);
|
|
31
34
|
export function createClerk() {
|
|
35
|
+
let stacks;
|
|
32
36
|
let writs;
|
|
33
37
|
let links;
|
|
34
38
|
/** Merged set of valid writ type names: builtins + config + kit contributions. */
|
|
@@ -54,6 +58,9 @@ export function createClerk() {
|
|
|
54
58
|
if (filters?.type) {
|
|
55
59
|
conditions.push(['type', '=', filters.type]);
|
|
56
60
|
}
|
|
61
|
+
if (filters?.parentId) {
|
|
62
|
+
conditions.push(['parentId', '=', filters.parentId]);
|
|
63
|
+
}
|
|
57
64
|
return conditions.length > 0 ? conditions : undefined;
|
|
58
65
|
}
|
|
59
66
|
function registerKitWritTypes(kitEntry) {
|
|
@@ -89,13 +96,58 @@ export function createClerk() {
|
|
|
89
96
|
throw new Error(`Unknown writ type "${type}". Declared types: ${[...validTypes].join(', ')}.`);
|
|
90
97
|
}
|
|
91
98
|
const now = new Date().toISOString();
|
|
99
|
+
const childId = generateId('w', 6);
|
|
100
|
+
// Determine codex: explicit request > parent inheritance > undefined
|
|
101
|
+
let codex = request.codex;
|
|
102
|
+
if (request.parentId) {
|
|
103
|
+
// Wrap in a transaction for atomicity
|
|
104
|
+
return stacks.transaction(async (tx) => {
|
|
105
|
+
const txWrits = tx.book('clerk', 'writs');
|
|
106
|
+
// Validate parent exists and is in an allowed status
|
|
107
|
+
const parent = await txWrits.get(request.parentId);
|
|
108
|
+
if (!parent) {
|
|
109
|
+
throw new Error(`Parent writ "${request.parentId}" not found.`);
|
|
110
|
+
}
|
|
111
|
+
if (!CHILD_ALLOWED_PARENT_STATUSES.has(parent.status)) {
|
|
112
|
+
throw new Error(`Cannot add children to writ "${request.parentId}": status is "${parent.status}", expected one of: ${[...CHILD_ALLOWED_PARENT_STATUSES].join(', ')}.`);
|
|
113
|
+
}
|
|
114
|
+
// Defensive self-parenting check
|
|
115
|
+
if (request.parentId === childId) {
|
|
116
|
+
throw new Error(`Cannot create a writ as its own parent.`);
|
|
117
|
+
}
|
|
118
|
+
// Inherit codex from parent if not specified
|
|
119
|
+
if (codex === undefined && parent.codex !== undefined) {
|
|
120
|
+
codex = parent.codex;
|
|
121
|
+
}
|
|
122
|
+
const writ = {
|
|
123
|
+
id: childId,
|
|
124
|
+
type,
|
|
125
|
+
status: request.draft === true ? 'new' : 'ready',
|
|
126
|
+
title: request.title,
|
|
127
|
+
body: request.body,
|
|
128
|
+
...(codex !== undefined ? { codex } : {}),
|
|
129
|
+
parentId: request.parentId,
|
|
130
|
+
createdAt: now,
|
|
131
|
+
updatedAt: now,
|
|
132
|
+
};
|
|
133
|
+
await txWrits.put(writ);
|
|
134
|
+
// Transition parent to waiting if it's in new or ready
|
|
135
|
+
if (parent.status === 'new' || parent.status === 'ready') {
|
|
136
|
+
await txWrits.patch(parent.id, {
|
|
137
|
+
status: 'waiting',
|
|
138
|
+
updatedAt: new Date().toISOString(),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return writ;
|
|
142
|
+
});
|
|
143
|
+
}
|
|
92
144
|
const writ = {
|
|
93
|
-
id:
|
|
145
|
+
id: childId,
|
|
94
146
|
type,
|
|
95
147
|
status: request.draft === true ? 'new' : 'ready',
|
|
96
148
|
title: request.title,
|
|
97
149
|
body: request.body,
|
|
98
|
-
...(
|
|
150
|
+
...(codex !== undefined ? { codex } : {}),
|
|
99
151
|
createdAt: now,
|
|
100
152
|
updatedAt: now,
|
|
101
153
|
};
|
|
@@ -178,7 +230,7 @@ export function createClerk() {
|
|
|
178
230
|
const isTerminal = TERMINAL_STATUSES.has(to);
|
|
179
231
|
// Strip managed fields — callers cannot override id, status, or timestamps
|
|
180
232
|
// controlled by the status machine.
|
|
181
|
-
const { id: _id, status: _status, createdAt: _c, updatedAt: _u, acceptedAt: _a, resolvedAt: _r, ...safeFields } = (fields ?? {});
|
|
233
|
+
const { id: _id, status: _status, createdAt: _c, updatedAt: _u, acceptedAt: _a, resolvedAt: _r, parentId: _p, ...safeFields } = (fields ?? {});
|
|
182
234
|
const patch = {
|
|
183
235
|
status: to,
|
|
184
236
|
updatedAt: now,
|
|
@@ -189,6 +241,40 @@ export function createClerk() {
|
|
|
189
241
|
return writs.patch(id, patch);
|
|
190
242
|
},
|
|
191
243
|
};
|
|
244
|
+
// ── CDC cascade handlers ─────────────────────────────────────────
|
|
245
|
+
async function handleChildTerminal(child) {
|
|
246
|
+
if (!child.parentId)
|
|
247
|
+
return;
|
|
248
|
+
const parent = await writs.get(child.parentId);
|
|
249
|
+
if (!parent || parent.status !== 'waiting')
|
|
250
|
+
return;
|
|
251
|
+
if (child.status === 'failed') {
|
|
252
|
+
const childResolution = child.resolution ?? 'unknown';
|
|
253
|
+
await api.transition(parent.id, 'failed', {
|
|
254
|
+
resolution: `Child "${child.id}" failed: ${childResolution}`,
|
|
255
|
+
});
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
// completed or cancelled — check if all siblings are terminal
|
|
259
|
+
const children = await writs.find({ where: [['parentId', '=', parent.id]] });
|
|
260
|
+
const allTerminal = children.every((c) => TERMINAL_STATUSES.has(c.status));
|
|
261
|
+
const noneFailed = !children.some((c) => c.status === 'failed');
|
|
262
|
+
if (allTerminal && noneFailed) {
|
|
263
|
+
await api.transition(parent.id, 'ready');
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
async function handleParentTerminal(parent) {
|
|
267
|
+
const children = await writs.find({ where: [['parentId', '=', parent.id]] });
|
|
268
|
+
if (children.length === 0)
|
|
269
|
+
return;
|
|
270
|
+
for (const child of children) {
|
|
271
|
+
if (!TERMINAL_STATUSES.has(child.status)) {
|
|
272
|
+
await api.transition(child.id, 'cancelled', {
|
|
273
|
+
resolution: 'Automatically cancelled due to sibling failure',
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
192
278
|
// ── writ-types tool ──────────────────────────────────────────────
|
|
193
279
|
const writTypesTool = tool({
|
|
194
280
|
name: 'writ-types',
|
|
@@ -221,7 +307,7 @@ export function createClerk() {
|
|
|
221
307
|
supportKit: {
|
|
222
308
|
books: {
|
|
223
309
|
writs: {
|
|
224
|
-
indexes: ['status', 'type', 'createdAt', ['status', 'type'], ['status', 'createdAt']],
|
|
310
|
+
indexes: ['status', 'type', 'createdAt', 'parentId', ['status', 'type'], ['status', 'createdAt'], ['parentId', 'status']],
|
|
225
311
|
},
|
|
226
312
|
links: {
|
|
227
313
|
indexes: ['sourceId', 'targetId', 'type', ['sourceId', 'type'], ['targetId', 'type']],
|
|
@@ -247,7 +333,7 @@ export function createClerk() {
|
|
|
247
333
|
provides: api,
|
|
248
334
|
start(ctx) {
|
|
249
335
|
const g = guild();
|
|
250
|
-
|
|
336
|
+
stacks = g.apparatus('stacks');
|
|
251
337
|
writs = stacks.book('clerk', 'writs');
|
|
252
338
|
links = stacks.book('clerk', 'links');
|
|
253
339
|
// Initialize merged writ types from builtins + config
|
|
@@ -258,6 +344,24 @@ export function createClerk() {
|
|
|
258
344
|
for (const entry of ctx.kits('writTypes')) {
|
|
259
345
|
registerKitWritTypes(entry);
|
|
260
346
|
}
|
|
347
|
+
// ── CDC: parent/child cascade ───────────────────────────────
|
|
348
|
+
stacks.watch('clerk', 'writs', async (event) => {
|
|
349
|
+
if (event.type !== 'update')
|
|
350
|
+
return;
|
|
351
|
+
const writ = event.entry;
|
|
352
|
+
const prev = event.prev;
|
|
353
|
+
// Only act on status changes
|
|
354
|
+
if (writ.status === prev.status)
|
|
355
|
+
return;
|
|
356
|
+
// ── Upward cascade: child → parent ──
|
|
357
|
+
if (writ.parentId && TERMINAL_STATUSES.has(writ.status)) {
|
|
358
|
+
await handleChildTerminal(writ);
|
|
359
|
+
}
|
|
360
|
+
// ── Downward cascade: parent → children ──
|
|
361
|
+
if (TERMINAL_STATUSES.has(writ.status)) {
|
|
362
|
+
await handleParentTerminal(writ);
|
|
363
|
+
}
|
|
364
|
+
}, { failOnError: true });
|
|
261
365
|
},
|
|
262
366
|
},
|
|
263
367
|
};
|
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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"}
|
|
@@ -5,6 +5,7 @@ declare const _default: import("@shardworks/tools-apparatus").ToolDefinition<{
|
|
|
5
5
|
type: z.ZodOptional<z.ZodString>;
|
|
6
6
|
codex: z.ZodOptional<z.ZodString>;
|
|
7
7
|
draft: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
8
9
|
}>;
|
|
9
10
|
export default _default;
|
|
10
11
|
//# sourceMappingURL=commission-post.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commission-post.d.ts","sourceRoot":"","sources":["../../src/tools/commission-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"commission-post.d.ts","sourceRoot":"","sources":["../../src/tools/commission-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;;;;;AAKxB,wBA4CG"}
|
|
@@ -8,7 +8,9 @@ export default tool({
|
|
|
8
8
|
'immediately. Pass draft: true to create the writ in new (draft) status instead — draft ' +
|
|
9
9
|
'writs are held out of the queue until explicitly published with writ-publish. ' +
|
|
10
10
|
'The writ type must be a type declared in the guild config, or the built-in type "mandate". ' +
|
|
11
|
-
'If type is omitted, the guild\'s configured default type is used (defaults to "mandate").'
|
|
11
|
+
'If type is omitted, the guild\'s configured default type is used (defaults to "mandate"). ' +
|
|
12
|
+
'Use parentId to create this writ as a child of an existing writ. The parent must be in ' +
|
|
13
|
+
'new, ready, or waiting status. Parents in new or ready will be transitioned to waiting.',
|
|
12
14
|
params: {
|
|
13
15
|
title: z.string().describe('Short human-readable title describing the work'),
|
|
14
16
|
body: z.string().describe('Detail text or description'),
|
|
@@ -19,6 +21,12 @@ export default tool({
|
|
|
19
21
|
.optional()
|
|
20
22
|
.describe('When true, create the writ in new (draft) status instead of ready. ' +
|
|
21
23
|
'Draft writs must be published before they enter the execution queue.'),
|
|
24
|
+
parentId: z
|
|
25
|
+
.string()
|
|
26
|
+
.optional()
|
|
27
|
+
.describe('Create this writ as a child of the specified parent writ. ' +
|
|
28
|
+
'The parent must be in new, ready, or waiting status. ' +
|
|
29
|
+
'If the parent is in new or ready, it will be transitioned to waiting.'),
|
|
22
30
|
},
|
|
23
31
|
permission: 'clerk:write',
|
|
24
32
|
handler: async (params) => {
|
|
@@ -29,6 +37,7 @@ export default tool({
|
|
|
29
37
|
type: params.type,
|
|
30
38
|
codex: params.codex,
|
|
31
39
|
draft: params.draft,
|
|
40
|
+
parentId: params.parentId,
|
|
32
41
|
});
|
|
33
42
|
},
|
|
34
43
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commission-post.js","sourceRoot":"","sources":["../../src/tools/commission-post.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,iBAAiB;IACvB,WAAW,EAAE,uEAAuE;IACpF,YAAY,EACV,yFAAyF;QACzF,yFAAyF;QACzF,gFAAgF;QAChF,6FAA6F;QAC7F,
|
|
1
|
+
{"version":3,"file":"commission-post.js","sourceRoot":"","sources":["../../src/tools/commission-post.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,iBAAiB;IACvB,WAAW,EAAE,uEAAuE;IACpF,YAAY,EACV,yFAAyF;QACzF,yFAAyF;QACzF,gFAAgF;QAChF,6FAA6F;QAC7F,4FAA4F;QAC5F,yFAAyF;QACzF,yFAAyF;IAC3F,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACvD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC3F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC1D,KAAK,EAAE,CAAC;aACL,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACP,qEAAqE;YACrE,sEAAsE,CACvE;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4DAA4D;YAC5D,uDAAuD;YACvD,uEAAuE,CACxE;KACJ;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,IAAI,CAAC;YAChB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writ-cancel.d.ts","sourceRoot":"","sources":["../../src/tools/writ-cancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;AAKxB,
|
|
1
|
+
{"version":3,"file":"writ-cancel.d.ts","sourceRoot":"","sources":["../../src/tools/writ-cancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;AAKxB,wBAqBG"}
|
|
@@ -3,9 +3,10 @@ import { guild } from '@shardworks/nexus-core';
|
|
|
3
3
|
import { tool } from '@shardworks/tools-apparatus';
|
|
4
4
|
export default tool({
|
|
5
5
|
name: 'writ-cancel',
|
|
6
|
-
description: 'Cancel a writ, transitioning it from new, ready, or
|
|
7
|
-
instructions: 'Cancels the writ. Writs in new (draft), ready, or
|
|
6
|
+
description: 'Cancel a writ, transitioning it from new, ready, active, or waiting to cancelled',
|
|
7
|
+
instructions: 'Cancels the writ. Writs in new (draft), ready, active, or waiting status can all be cancelled. ' +
|
|
8
8
|
'Optionally record a resolution explaining why. ' +
|
|
9
|
+
'If the writ has non-terminal children, they will be automatically cancelled. ' +
|
|
9
10
|
'Returns the updated writ.',
|
|
10
11
|
params: {
|
|
11
12
|
id: z.string().describe('Writ id'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writ-cancel.js","sourceRoot":"","sources":["../../src/tools/writ-cancel.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,aAAa;IACnB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"writ-cancel.js","sourceRoot":"","sources":["../../src/tools/writ-cancel.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,aAAa;IACnB,WAAW,EAAE,kFAAkF;IAC/F,YAAY,EACV,iGAAiG;QACjG,iDAAiD;QACjD,+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,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;KAC7F;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,CACrB,MAAM,CAAC,EAAE,EACT,WAAW,EACX,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAChF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writ-fail.d.ts","sourceRoot":"","sources":["../../src/tools/writ-fail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;AAKxB,
|
|
1
|
+
{"version":3,"file":"writ-fail.d.ts","sourceRoot":"","sources":["../../src/tools/writ-fail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;AAKxB,wBAiBG"}
|
package/dist/tools/writ-fail.js
CHANGED
|
@@ -3,9 +3,10 @@ import { guild } from '@shardworks/nexus-core';
|
|
|
3
3
|
import { tool } from '@shardworks/tools-apparatus';
|
|
4
4
|
export default tool({
|
|
5
5
|
name: 'writ-fail',
|
|
6
|
-
description: 'Fail a writ, transitioning it from active to failed',
|
|
6
|
+
description: 'Fail a writ, transitioning it from active or waiting to failed',
|
|
7
7
|
instructions: 'Marks the writ as failed. Record a resolution explaining why it failed. ' +
|
|
8
|
-
'
|
|
8
|
+
'Writs in active or waiting status can be failed. ' +
|
|
9
|
+
'If the writ has non-terminal children, they will be automatically cancelled. ' +
|
|
9
10
|
'Returns the updated writ.',
|
|
10
11
|
params: {
|
|
11
12
|
id: z.string().describe('Writ id'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writ-fail.js","sourceRoot":"","sources":["../../src/tools/writ-fail.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,
|
|
1
|
+
{"version":3,"file":"writ-fail.js","sourceRoot":"","sources":["../../src/tools/writ-fail.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,gEAAgE;IAC7E,YAAY,EACV,0EAA0E;QAC1E,mDAAmD;QACnD,+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,gCAAgC,CAAC;KAClE;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,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAClF,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
declare const _default: import("@shardworks/tools-apparatus").ToolDefinition<{
|
|
3
3
|
status: z.ZodOptional<z.ZodEnum<{
|
|
4
|
+
new: "new";
|
|
4
5
|
ready: "ready";
|
|
5
6
|
active: "active";
|
|
7
|
+
waiting: "waiting";
|
|
6
8
|
completed: "completed";
|
|
7
9
|
failed: "failed";
|
|
8
10
|
cancelled: "cancelled";
|
|
9
11
|
}>>;
|
|
10
12
|
type: z.ZodOptional<z.ZodString>;
|
|
13
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
11
14
|
limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
12
15
|
offset: z.ZodOptional<z.ZodNumber>;
|
|
13
16
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writ-list.d.ts","sourceRoot":"","sources":["../../src/tools/writ-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"writ-list.d.ts","sourceRoot":"","sources":["../../src/tools/writ-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;;;;;;;;;;;;AAKxB,wBA2BG"}
|
package/dist/tools/writ-list.js
CHANGED
|
@@ -8,10 +8,11 @@ export default tool({
|
|
|
8
8
|
'Filter by status or type to narrow results.',
|
|
9
9
|
params: {
|
|
10
10
|
status: z
|
|
11
|
-
.enum(['ready', 'active', 'completed', 'failed', 'cancelled'])
|
|
11
|
+
.enum(['new', 'ready', 'active', 'waiting', 'completed', 'failed', 'cancelled'])
|
|
12
12
|
.optional()
|
|
13
13
|
.describe('Filter by writ status'),
|
|
14
14
|
type: z.string().optional().describe('Filter by writ type'),
|
|
15
|
+
parentId: z.string().optional().describe('Filter to children of this parent writ'),
|
|
15
16
|
limit: z.number().optional().default(20).describe('Maximum results (default: 20)'),
|
|
16
17
|
offset: z.number().optional().describe('Number of results to skip'),
|
|
17
18
|
},
|
|
@@ -21,6 +22,7 @@ export default tool({
|
|
|
21
22
|
return clerk.list({
|
|
22
23
|
status: params.status,
|
|
23
24
|
type: params.type,
|
|
25
|
+
parentId: params.parentId,
|
|
24
26
|
limit: params.limit,
|
|
25
27
|
offset: params.offset,
|
|
26
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writ-list.js","sourceRoot":"","sources":["../../src/tools/writ-list.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,kCAAkC;IAC/C,YAAY,EACV,yEAAyE;QACzE,6CAA6C;IAC/C,MAAM,EAAE;QACN,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"writ-list.js","sourceRoot":"","sources":["../../src/tools/writ-list.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,kCAAkC;IAC/C,YAAY,EACV,yEAAyE;QACzE,6CAA6C;IAC/C,MAAM,EAAE;QACN,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;aAC/E,QAAQ,EAAE;aACV,QAAQ,CAAC,uBAAuB,CAAC;QACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC3D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAClF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAClF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KACpE;IACD,UAAU,EAAE,YAAY;IACxB,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;YAChB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writ-show.d.ts","sourceRoot":"","sources":["../../src/tools/writ-show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AAKxB,
|
|
1
|
+
{"version":3,"file":"writ-show.d.ts","sourceRoot":"","sources":["../../src/tools/writ-show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AAKxB,wBAwCG"}
|
package/dist/tools/writ-show.js
CHANGED
|
@@ -4,7 +4,8 @@ import { tool } from '@shardworks/tools-apparatus';
|
|
|
4
4
|
export default tool({
|
|
5
5
|
name: 'writ-show',
|
|
6
6
|
description: 'Show full detail for a writ',
|
|
7
|
-
instructions: 'Returns the complete writ record including its current status, timestamps, body text,
|
|
7
|
+
instructions: 'Returns the complete writ record including its current status, timestamps, body text, ' +
|
|
8
|
+
'resolution, parent context, and children summary.',
|
|
8
9
|
params: {
|
|
9
10
|
id: z.string().describe('Writ id'),
|
|
10
11
|
},
|
|
@@ -15,7 +16,26 @@ export default tool({
|
|
|
15
16
|
clerk.show(params.id),
|
|
16
17
|
clerk.links(params.id),
|
|
17
18
|
]);
|
|
18
|
-
|
|
19
|
+
// Parent context
|
|
20
|
+
let parent = null;
|
|
21
|
+
if (writ.parentId) {
|
|
22
|
+
const parentWrit = await clerk.show(writ.parentId);
|
|
23
|
+
parent = { id: parentWrit.id, title: parentWrit.title, status: parentWrit.status };
|
|
24
|
+
}
|
|
25
|
+
// Children context
|
|
26
|
+
const childWrits = await clerk.list({ parentId: writ.id, limit: 1000 });
|
|
27
|
+
const summary = {};
|
|
28
|
+
const items = [];
|
|
29
|
+
for (const child of childWrits) {
|
|
30
|
+
summary[child.status] = (summary[child.status] ?? 0) + 1;
|
|
31
|
+
items.push({ id: child.id, title: child.title, status: child.status });
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
...writ,
|
|
35
|
+
links,
|
|
36
|
+
parent,
|
|
37
|
+
children: { summary, items },
|
|
38
|
+
};
|
|
19
39
|
},
|
|
20
40
|
});
|
|
21
41
|
//# sourceMappingURL=writ-show.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writ-show.js","sourceRoot":"","sources":["../../src/tools/writ-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,WAAW;IACjB,WAAW,EAAE,6BAA6B;IAC1C,YAAY,
|
|
1
|
+
{"version":3,"file":"writ-show.js","sourceRoot":"","sources":["../../src/tools/writ-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,WAAW;IACjB,WAAW,EAAE,6BAA6B;IAC1C,YAAY,EACV,wFAAwF;QACxF,mDAAmD;IACrD,MAAM,EAAE;QACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;KACnC;IACD,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,SAAS,CAAW,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;SACvB,CAAC,CAAC;QAEH,iBAAiB;QACjB,IAAI,MAAM,GAA6D,IAAI,CAAC;QAC5E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,GAAG,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;QACrF,CAAC;QAED,mBAAmB;QACnB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,KAAK,GAA6D,EAAE,CAAC;QAC3E,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,OAAO;YACL,GAAG,IAAI;YACP,KAAK;YACL,MAAM;YACN,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SAC7B,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,14 +9,19 @@
|
|
|
9
9
|
* Transitions:
|
|
10
10
|
* new → ready (publish) — draft held for review before entering the queue
|
|
11
11
|
* new → cancelled (cancel)
|
|
12
|
+
* new → waiting (child added)
|
|
12
13
|
* ready → active (accept)
|
|
14
|
+
* ready → waiting (child added)
|
|
15
|
+
* waiting → ready (all children terminal, none failed)
|
|
16
|
+
* waiting → failed (child failed)
|
|
13
17
|
* active → completed (complete)
|
|
14
18
|
* active → failed (fail)
|
|
15
|
-
* ready | active → cancelled (cancel)
|
|
19
|
+
* ready | active | waiting → cancelled (cancel)
|
|
16
20
|
*
|
|
17
21
|
* completed, failed, cancelled are terminal — no further transitions.
|
|
22
|
+
* waiting is non-terminal — parents wait for children to resolve.
|
|
18
23
|
*/
|
|
19
|
-
export type WritStatus = 'new' | 'ready' | 'active' | 'completed' | 'failed' | 'cancelled';
|
|
24
|
+
export type WritStatus = 'new' | 'ready' | 'active' | 'waiting' | 'completed' | 'failed' | 'cancelled';
|
|
20
25
|
/**
|
|
21
26
|
* A writ document as stored in The Stacks.
|
|
22
27
|
*/
|
|
@@ -35,6 +40,8 @@ export interface WritDoc {
|
|
|
35
40
|
body: string;
|
|
36
41
|
/** Target codex name. */
|
|
37
42
|
codex?: string;
|
|
43
|
+
/** Parent writ id. Absent on root writs. Immutable after creation. */
|
|
44
|
+
parentId?: string;
|
|
38
45
|
/** ISO timestamp when the writ was created. */
|
|
39
46
|
createdAt: string;
|
|
40
47
|
/** ISO timestamp of the last mutation. */
|
|
@@ -68,6 +75,12 @@ export interface PostCommissionRequest {
|
|
|
68
75
|
* Defaults to false (writ enters the queue immediately).
|
|
69
76
|
*/
|
|
70
77
|
draft?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Create this writ as a child of the specified parent writ.
|
|
80
|
+
* The parent must be in new, ready, or waiting status.
|
|
81
|
+
* If the parent is in new or ready, it will be transitioned to waiting.
|
|
82
|
+
*/
|
|
83
|
+
parentId?: string;
|
|
71
84
|
}
|
|
72
85
|
/**
|
|
73
86
|
* Filters for listing writs.
|
|
@@ -77,6 +90,8 @@ export interface WritFilters {
|
|
|
77
90
|
status?: WritStatus;
|
|
78
91
|
/** Filter by writ type. */
|
|
79
92
|
type?: string;
|
|
93
|
+
/** Filter to children of this parent writ. */
|
|
94
|
+
parentId?: string;
|
|
80
95
|
/** Maximum number of results (default: 20). */
|
|
81
96
|
limit?: number;
|
|
82
97
|
/** Number of results to skip. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH
|
|
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.
|
|
3
|
+
"version": "0.1.138",
|
|
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/stacks-apparatus": "0.1.
|
|
21
|
-
"@shardworks/
|
|
22
|
-
"@shardworks/
|
|
20
|
+
"@shardworks/stacks-apparatus": "0.1.138",
|
|
21
|
+
"@shardworks/nexus-core": "0.1.138",
|
|
22
|
+
"@shardworks/tools-apparatus": "0.1.138"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/node": "25.5.0"
|