@shardworks/nexus-core 0.1.81 → 0.1.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/events.d.ts +1 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +2 -3
- package/dist/events.js.map +1 -1
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +2 -5
- package/dist/id.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/init-guild.d.ts +1 -1
- package/dist/init-guild.d.ts.map +1 -1
- package/dist/init-guild.js +17 -19
- package/dist/init-guild.js.map +1 -1
- package/dist/migrate.d.ts +1 -1
- package/dist/migrate.js +1 -1
- package/dist/nexus-home.d.ts +1 -1
- package/dist/nexus-home.d.ts.map +1 -1
- package/dist/nexus-home.js +1 -1
- package/dist/nexus-home.js.map +1 -1
- package/dist/session.d.ts +3 -3
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +1 -1
- package/dist/workshop.d.ts +2 -2
- package/dist/workshop.d.ts.map +1 -1
- package/dist/workshop.js +3 -3
- package/dist/workshop.js.map +1 -1
- package/dist/worktree.d.ts +18 -20
- package/dist/worktree.d.ts.map +1 -1
- package/dist/worktree.js +25 -24
- package/dist/worktree.js.map +1 -1
- package/dist/writ.d.ts +21 -3
- package/dist/writ.d.ts.map +1 -1
- package/dist/writ.js +57 -43
- package/dist/writ.js.map +1 -1
- package/migrations/004-remove-commissions.sql +24 -0
- package/package.json +2 -2
- package/dist/commission.d.ts +0 -102
- package/dist/commission.d.ts.map +0 -1
- package/dist/commission.js +0 -237
- package/dist/commission.js.map +0 -1
package/dist/commission.d.ts
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
export interface CommissionOptions {
|
|
2
|
-
/** Absolute path to the guild root. */
|
|
3
|
-
home: string;
|
|
4
|
-
/** Commission specification — what needs to be done. */
|
|
5
|
-
spec: string;
|
|
6
|
-
/** Target workshop for the commission. */
|
|
7
|
-
workshop: string;
|
|
8
|
-
}
|
|
9
|
-
export interface CommissionResult {
|
|
10
|
-
/** The ID of the created commission. */
|
|
11
|
-
commissionId: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Update a commission's status and reason in the Ledger.
|
|
15
|
-
*/
|
|
16
|
-
export declare function updateCommissionStatus(home: string, commissionId: string, status: string, reason: string): void;
|
|
17
|
-
/**
|
|
18
|
-
* Read a commission record from the Ledger.
|
|
19
|
-
*/
|
|
20
|
-
export declare function readCommission(home: string, commissionId: string): {
|
|
21
|
-
id: string;
|
|
22
|
-
content: string;
|
|
23
|
-
status: string;
|
|
24
|
-
workshop: string;
|
|
25
|
-
statusReason: string | null;
|
|
26
|
-
} | null;
|
|
27
|
-
export interface CompletionCheck {
|
|
28
|
-
complete: boolean;
|
|
29
|
-
total: number;
|
|
30
|
-
done: number;
|
|
31
|
-
pending: number;
|
|
32
|
-
failed: number;
|
|
33
|
-
}
|
|
34
|
-
export interface CompletionResult {
|
|
35
|
-
changed: boolean;
|
|
36
|
-
newStatus: string;
|
|
37
|
-
}
|
|
38
|
-
export interface CommissionSummary {
|
|
39
|
-
id: string;
|
|
40
|
-
content: string;
|
|
41
|
-
status: string;
|
|
42
|
-
workshop: string;
|
|
43
|
-
statusReason: string | null;
|
|
44
|
-
createdAt: string;
|
|
45
|
-
updatedAt: string;
|
|
46
|
-
}
|
|
47
|
-
/** Extended commission detail with assignments and linked sessions. */
|
|
48
|
-
export interface CommissionDetail {
|
|
49
|
-
id: string;
|
|
50
|
-
content: string;
|
|
51
|
-
status: string;
|
|
52
|
-
workshop: string;
|
|
53
|
-
statusReason: string | null;
|
|
54
|
-
createdAt: string;
|
|
55
|
-
updatedAt: string;
|
|
56
|
-
assignments: Array<{
|
|
57
|
-
animaId: string;
|
|
58
|
-
animaName: string;
|
|
59
|
-
assignedAt: string;
|
|
60
|
-
}>;
|
|
61
|
-
sessions: Array<{
|
|
62
|
-
sessionId: string;
|
|
63
|
-
animaId: string;
|
|
64
|
-
startedAt: string;
|
|
65
|
-
endedAt: string | null;
|
|
66
|
-
}>;
|
|
67
|
-
}
|
|
68
|
-
export interface ListCommissionsOptions {
|
|
69
|
-
status?: string;
|
|
70
|
-
workshop?: string;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* List commissions with optional filters.
|
|
74
|
-
*/
|
|
75
|
-
export declare function listCommissions(home: string, opts?: ListCommissionsOptions): CommissionSummary[];
|
|
76
|
-
/**
|
|
77
|
-
* Show detailed commission information, including assignments and linked sessions.
|
|
78
|
-
*/
|
|
79
|
-
export declare function showCommission(home: string, commissionId: string): CommissionDetail | null;
|
|
80
|
-
/**
|
|
81
|
-
* Check commission completion via its mandate writ's children.
|
|
82
|
-
*
|
|
83
|
-
* @deprecated Commission completion is now handled automatically by the writ
|
|
84
|
-
* system's completion rollup. When a mandate writ completes, the framework
|
|
85
|
-
* marks the corresponding commission as completed. This function is retained
|
|
86
|
-
* for backward compatibility with existing tools.
|
|
87
|
-
*/
|
|
88
|
-
export declare function checkCommissionCompletion(home: string, commissionId: string): CompletionCheck;
|
|
89
|
-
/**
|
|
90
|
-
* @deprecated Commission completion is now handled by writ completion rollup.
|
|
91
|
-
* When a mandate writ completes, the framework marks the commission as completed.
|
|
92
|
-
*/
|
|
93
|
-
export declare function completeCommissionIfReady(home: string, commissionId: string): CompletionResult;
|
|
94
|
-
/**
|
|
95
|
-
* Post a commission to the guild.
|
|
96
|
-
*
|
|
97
|
-
* Creates a commission in the Ledger with status "posted" and signals
|
|
98
|
-
* commission.posted for the Clockworks to pick up. Everything downstream
|
|
99
|
-
* is driven by standing orders.
|
|
100
|
-
*/
|
|
101
|
-
export declare function commission(opts: CommissionOptions): CommissionResult;
|
|
102
|
-
//# sourceMappingURL=commission.d.ts.map
|
package/dist/commission.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commission.d.ts","sourceRoot":"","sources":["../src/commission.ts"],"names":[],"mappings":"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"}
|
package/dist/commission.js
DELETED
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* commission — core logic for posting commissions to the guild.
|
|
3
|
-
*
|
|
4
|
-
* Creates a commission record in the Ledger and signals commission.posted
|
|
5
|
-
* for the Clockworks. Everything downstream (worktree setup, anima summoning,
|
|
6
|
-
* post-session merge) is handled by standing orders.
|
|
7
|
-
*/
|
|
8
|
-
import Database from 'better-sqlite3';
|
|
9
|
-
import { booksPath } from "./nexus-home.js";
|
|
10
|
-
import { readGuildConfig } from "./guild-config.js";
|
|
11
|
-
import { signalEvent } from "./events.js";
|
|
12
|
-
import { generateId } from "./id.js";
|
|
13
|
-
import { createWrit, failWrit } from "./writ.js";
|
|
14
|
-
/**
|
|
15
|
-
* Update a commission's status and reason in the Ledger.
|
|
16
|
-
*/
|
|
17
|
-
export function updateCommissionStatus(home, commissionId, status, reason) {
|
|
18
|
-
const db = new Database(booksPath(home));
|
|
19
|
-
db.pragma('foreign_keys = ON');
|
|
20
|
-
try {
|
|
21
|
-
db.prepare(`UPDATE commissions SET status = ?, status_reason = ?, updated_at = datetime('now') WHERE id = ?`).run(status, reason, commissionId);
|
|
22
|
-
// When a commission fails, cascade failure to its mandate writ.
|
|
23
|
-
// Mirror of completeMandateCommission() in writ.ts — the failure bridge.
|
|
24
|
-
if (status === 'failed') {
|
|
25
|
-
const row = db.prepare(`SELECT writ_id FROM commissions WHERE id = ?`).get(commissionId);
|
|
26
|
-
if (row?.writ_id) {
|
|
27
|
-
// Close db before calling failWrit (it opens its own connection)
|
|
28
|
-
db.close();
|
|
29
|
-
try {
|
|
30
|
-
failWrit(home, row.writ_id);
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
// Writ may already be in a terminal state — that's fine
|
|
34
|
-
}
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
finally {
|
|
40
|
-
try {
|
|
41
|
-
db.close();
|
|
42
|
-
}
|
|
43
|
-
catch { /* already closed in failure cascade path */ }
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Read a commission record from the Ledger.
|
|
48
|
-
*/
|
|
49
|
-
export function readCommission(home, commissionId) {
|
|
50
|
-
const db = new Database(booksPath(home));
|
|
51
|
-
db.pragma('foreign_keys = ON');
|
|
52
|
-
try {
|
|
53
|
-
const row = db.prepare(`SELECT id, content, status, workshop, status_reason FROM commissions WHERE id = ?`).get(commissionId);
|
|
54
|
-
if (!row)
|
|
55
|
-
return null;
|
|
56
|
-
return {
|
|
57
|
-
id: row.id,
|
|
58
|
-
content: row.content,
|
|
59
|
-
status: row.status,
|
|
60
|
-
workshop: row.workshop,
|
|
61
|
-
statusReason: row.status_reason,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
finally {
|
|
65
|
-
db.close();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* List commissions with optional filters.
|
|
70
|
-
*/
|
|
71
|
-
export function listCommissions(home, opts = {}) {
|
|
72
|
-
const db = new Database(booksPath(home));
|
|
73
|
-
db.pragma('foreign_keys = ON');
|
|
74
|
-
try {
|
|
75
|
-
let query = `SELECT id, content, status, workshop, status_reason, created_at, updated_at FROM commissions`;
|
|
76
|
-
const conditions = [];
|
|
77
|
-
const params = [];
|
|
78
|
-
if (opts.status) {
|
|
79
|
-
conditions.push(`status = ?`);
|
|
80
|
-
params.push(opts.status);
|
|
81
|
-
}
|
|
82
|
-
if (opts.workshop) {
|
|
83
|
-
conditions.push(`workshop = ?`);
|
|
84
|
-
params.push(opts.workshop);
|
|
85
|
-
}
|
|
86
|
-
if (conditions.length > 0) {
|
|
87
|
-
query += ` WHERE ${conditions.join(' AND ')}`;
|
|
88
|
-
}
|
|
89
|
-
query += ` ORDER BY created_at DESC`;
|
|
90
|
-
const rows = db.prepare(query).all(...params);
|
|
91
|
-
return rows.map(row => ({
|
|
92
|
-
id: row.id,
|
|
93
|
-
content: row.content,
|
|
94
|
-
status: row.status,
|
|
95
|
-
workshop: row.workshop,
|
|
96
|
-
statusReason: row.status_reason,
|
|
97
|
-
createdAt: row.created_at,
|
|
98
|
-
updatedAt: row.updated_at,
|
|
99
|
-
}));
|
|
100
|
-
}
|
|
101
|
-
finally {
|
|
102
|
-
db.close();
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Show detailed commission information, including assignments and linked sessions.
|
|
107
|
-
*/
|
|
108
|
-
export function showCommission(home, commissionId) {
|
|
109
|
-
const db = new Database(booksPath(home));
|
|
110
|
-
db.pragma('foreign_keys = ON');
|
|
111
|
-
try {
|
|
112
|
-
const row = db.prepare(`SELECT id, content, status, workshop, status_reason, created_at, updated_at
|
|
113
|
-
FROM commissions WHERE id = ?`).get(commissionId);
|
|
114
|
-
if (!row)
|
|
115
|
-
return null;
|
|
116
|
-
const assignments = db.prepare(`SELECT ca.anima_id, a.name, ca.assigned_at
|
|
117
|
-
FROM commission_assignments ca
|
|
118
|
-
JOIN animas a ON a.id = ca.anima_id
|
|
119
|
-
WHERE ca.commission_id = ?
|
|
120
|
-
ORDER BY ca.assigned_at`).all(commissionId);
|
|
121
|
-
const sessions = db.prepare(`SELECT cs.session_id, s.anima_id, s.started_at, s.ended_at
|
|
122
|
-
FROM commission_sessions cs
|
|
123
|
-
JOIN sessions s ON s.id = cs.session_id
|
|
124
|
-
WHERE cs.commission_id = ?
|
|
125
|
-
ORDER BY s.started_at`).all(commissionId);
|
|
126
|
-
return {
|
|
127
|
-
id: row.id,
|
|
128
|
-
content: row.content,
|
|
129
|
-
status: row.status,
|
|
130
|
-
workshop: row.workshop,
|
|
131
|
-
statusReason: row.status_reason,
|
|
132
|
-
createdAt: row.created_at,
|
|
133
|
-
updatedAt: row.updated_at,
|
|
134
|
-
assignments: assignments.map(a => ({ animaId: a.anima_id, animaName: a.name, assignedAt: a.assigned_at })),
|
|
135
|
-
sessions: sessions.map(s => ({ sessionId: s.session_id, animaId: s.anima_id, startedAt: s.started_at, endedAt: s.ended_at })),
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
finally {
|
|
139
|
-
db.close();
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Check commission completion via its mandate writ's children.
|
|
144
|
-
*
|
|
145
|
-
* @deprecated Commission completion is now handled automatically by the writ
|
|
146
|
-
* system's completion rollup. When a mandate writ completes, the framework
|
|
147
|
-
* marks the corresponding commission as completed. This function is retained
|
|
148
|
-
* for backward compatibility with existing tools.
|
|
149
|
-
*/
|
|
150
|
-
export function checkCommissionCompletion(home, commissionId) {
|
|
151
|
-
const db = new Database(booksPath(home));
|
|
152
|
-
db.pragma('foreign_keys = ON');
|
|
153
|
-
try {
|
|
154
|
-
// Find the mandate writ for this commission
|
|
155
|
-
const commission = db.prepare(`SELECT writ_id FROM commissions WHERE id = ?`).get(commissionId);
|
|
156
|
-
if (!commission?.writ_id) {
|
|
157
|
-
return { complete: false, total: 0, done: 0, pending: 0, failed: 0 };
|
|
158
|
-
}
|
|
159
|
-
const rows = db.prepare(`SELECT status, COUNT(*) as cnt FROM writs WHERE parent_id = ? GROUP BY status`).all(commission.writ_id);
|
|
160
|
-
let total = 0, done = 0, pending = 0, failed = 0;
|
|
161
|
-
for (const r of rows) {
|
|
162
|
-
total += r.cnt;
|
|
163
|
-
if (r.status === 'completed' || r.status === 'cancelled')
|
|
164
|
-
done += r.cnt;
|
|
165
|
-
else if (r.status === 'failed')
|
|
166
|
-
failed += r.cnt;
|
|
167
|
-
else
|
|
168
|
-
pending += r.cnt;
|
|
169
|
-
}
|
|
170
|
-
return { complete: total > 0 && pending === 0 && failed === 0, total, done, pending, failed };
|
|
171
|
-
}
|
|
172
|
-
finally {
|
|
173
|
-
db.close();
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* @deprecated Commission completion is now handled by writ completion rollup.
|
|
178
|
-
* When a mandate writ completes, the framework marks the commission as completed.
|
|
179
|
-
*/
|
|
180
|
-
export function completeCommissionIfReady(home, commissionId) {
|
|
181
|
-
const check = checkCommissionCompletion(home, commissionId);
|
|
182
|
-
if (!check.complete || check.total === 0) {
|
|
183
|
-
const current = readCommission(home, commissionId);
|
|
184
|
-
return { changed: false, newStatus: current?.status ?? 'unknown' };
|
|
185
|
-
}
|
|
186
|
-
const current = readCommission(home, commissionId);
|
|
187
|
-
if (!current || current.status === 'completed') {
|
|
188
|
-
return { changed: false, newStatus: current?.status ?? 'unknown' };
|
|
189
|
-
}
|
|
190
|
-
updateCommissionStatus(home, commissionId, 'completed', 'all writs completed');
|
|
191
|
-
signalEvent(home, 'commission.completed', { commissionId }, 'framework');
|
|
192
|
-
return { changed: true, newStatus: 'completed' };
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Post a commission to the guild.
|
|
196
|
-
*
|
|
197
|
-
* Creates a commission in the Ledger with status "posted" and signals
|
|
198
|
-
* commission.posted for the Clockworks to pick up. Everything downstream
|
|
199
|
-
* is driven by standing orders.
|
|
200
|
-
*/
|
|
201
|
-
export function commission(opts) {
|
|
202
|
-
const { home, spec, workshop } = opts;
|
|
203
|
-
// Validate workshop exists in guild.json
|
|
204
|
-
const config = readGuildConfig(home);
|
|
205
|
-
if (!(workshop in config.workshops)) {
|
|
206
|
-
const available = Object.keys(config.workshops).join(', ') || '(none)';
|
|
207
|
-
throw new Error(`Workshop "${workshop}" not found in guild.json. Available workshops: ${available}`);
|
|
208
|
-
}
|
|
209
|
-
const db = new Database(booksPath(home));
|
|
210
|
-
db.pragma('foreign_keys = ON');
|
|
211
|
-
try {
|
|
212
|
-
const statusReason = 'posted by patron';
|
|
213
|
-
const commissionId = generateId('c');
|
|
214
|
-
// Create commission
|
|
215
|
-
db.prepare(`INSERT INTO commissions (id, content, status, status_reason, workshop) VALUES (?, ?, ?, ?, ?)`).run(commissionId, spec, 'posted', statusReason, workshop);
|
|
216
|
-
// Audit log
|
|
217
|
-
db.prepare(`INSERT INTO audit_log (id, actor, action, target_type, target_id, detail) VALUES (?, ?, ?, ?, ?, ?)`).run(generateId('aud'), 'patron', 'commission_posted', 'commission', commissionId, JSON.stringify({ workshop }));
|
|
218
|
-
// Signal for Clockworks — commission system event (pre-writ)
|
|
219
|
-
signalEvent(home, 'commission.posted', { commissionId, workshop }, 'framework');
|
|
220
|
-
// Create the mandate writ — bridges commission system to writ system.
|
|
221
|
-
// Events are FIFO: commission.posted handlers (e.g. workshop-prepare) run
|
|
222
|
-
// before mandate.ready handlers (e.g. summon artificer).
|
|
223
|
-
const title = spec.split('\n')[0].substring(0, 200);
|
|
224
|
-
const mandate = createWrit(home, {
|
|
225
|
-
type: 'mandate',
|
|
226
|
-
title,
|
|
227
|
-
description: spec,
|
|
228
|
-
});
|
|
229
|
-
// Link commission to its mandate writ
|
|
230
|
-
db.prepare(`UPDATE commissions SET writ_id = ? WHERE id = ?`).run(mandate.id, commissionId);
|
|
231
|
-
return { commissionId };
|
|
232
|
-
}
|
|
233
|
-
finally {
|
|
234
|
-
db.close();
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
//# sourceMappingURL=commission.js.map
|
package/dist/commission.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commission.js","sourceRoot":"","sources":["../src/commission.ts"],"names":[],"mappings":"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"}
|