@shardworks/nexus-core 0.1.38 → 0.1.39

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.
Files changed (64) hide show
  1. package/dist/anima.d.ts +44 -0
  2. package/dist/anima.d.ts.map +1 -0
  3. package/dist/anima.js +156 -0
  4. package/dist/anima.js.map +1 -0
  5. package/dist/clockworks.d.ts +2 -2
  6. package/dist/clockworks.d.ts.map +1 -1
  7. package/dist/clockworks.js +6 -5
  8. package/dist/clockworks.js.map +1 -1
  9. package/dist/commission.d.ts +21 -4
  10. package/dist/commission.d.ts.map +1 -1
  11. package/dist/commission.js +45 -8
  12. package/dist/commission.js.map +1 -1
  13. package/dist/engine.d.ts +1 -1
  14. package/dist/events.d.ts +4 -4
  15. package/dist/events.d.ts.map +1 -1
  16. package/dist/events.js +13 -11
  17. package/dist/events.js.map +1 -1
  18. package/dist/id.d.ts +8 -0
  19. package/dist/id.d.ts.map +1 -0
  20. package/dist/id.js +28 -0
  21. package/dist/id.js.map +1 -0
  22. package/dist/index.d.ts +9 -2
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +9 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/instantiate.d.ts +1 -1
  27. package/dist/instantiate.d.ts.map +1 -1
  28. package/dist/instantiate.js +10 -10
  29. package/dist/instantiate.js.map +1 -1
  30. package/dist/job.d.ts +32 -0
  31. package/dist/job.d.ts.map +1 -0
  32. package/dist/job.js +122 -0
  33. package/dist/job.js.map +1 -0
  34. package/dist/manifest.d.ts +1 -1
  35. package/dist/manifest.js +2 -2
  36. package/dist/manifest.js.map +1 -1
  37. package/dist/piece.d.ts +28 -0
  38. package/dist/piece.d.ts.map +1 -0
  39. package/dist/piece.js +108 -0
  40. package/dist/piece.js.map +1 -0
  41. package/dist/session.d.ts +3 -3
  42. package/dist/session.d.ts.map +1 -1
  43. package/dist/session.js +8 -6
  44. package/dist/session.js.map +1 -1
  45. package/dist/stroke.d.ts +27 -0
  46. package/dist/stroke.d.ts.map +1 -0
  47. package/dist/stroke.js +101 -0
  48. package/dist/stroke.js.map +1 -0
  49. package/dist/tool-registry.d.ts +12 -0
  50. package/dist/tool-registry.d.ts.map +1 -0
  51. package/dist/tool-registry.js +28 -0
  52. package/dist/tool-registry.js.map +1 -0
  53. package/dist/work.d.ts +28 -0
  54. package/dist/work.d.ts.map +1 -0
  55. package/dist/work.js +109 -0
  56. package/dist/work.js.map +1 -0
  57. package/dist/workshop.d.ts +10 -0
  58. package/dist/workshop.d.ts.map +1 -1
  59. package/dist/workshop.js +34 -0
  60. package/dist/workshop.js.map +1 -1
  61. package/dist/worktree.d.ts +3 -3
  62. package/dist/worktree.js +2 -2
  63. package/dist/worktree.js.map +1 -1
  64. package/package.json +1 -1
@@ -0,0 +1,44 @@
1
+ export interface AnimaSummary {
2
+ id: string;
3
+ name: string;
4
+ status: string;
5
+ roles: string[];
6
+ createdAt: string;
7
+ }
8
+ export interface AnimaDetail {
9
+ id: string;
10
+ name: string;
11
+ status: string;
12
+ roles: string[];
13
+ curriculumName: string;
14
+ curriculumVersion: string;
15
+ temperamentName: string;
16
+ temperamentVersion: string;
17
+ createdAt: string;
18
+ updatedAt: string;
19
+ }
20
+ export interface ListAnimasOptions {
21
+ status?: string;
22
+ role?: string;
23
+ }
24
+ export interface UpdateAnimaOptions {
25
+ status?: string;
26
+ roles?: string[];
27
+ }
28
+ /**
29
+ * List animas with optional filters.
30
+ */
31
+ export declare function listAnimas(home: string, opts?: ListAnimasOptions): AnimaSummary[];
32
+ /**
33
+ * Show detailed information about a single anima by ID.
34
+ */
35
+ export declare function showAnima(home: string, animaId: string): AnimaDetail | null;
36
+ /**
37
+ * Update an anima's status and/or roles.
38
+ */
39
+ export declare function updateAnima(home: string, animaId: string, opts: UpdateAnimaOptions): AnimaDetail;
40
+ /**
41
+ * Remove (retire) an anima. Sets status to 'retired' and removes roster entries.
42
+ */
43
+ export declare function removeAnima(home: string, animaId: string): void;
44
+ //# sourceMappingURL=anima.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anima.d.ts","sourceRoot":"","sources":["../src/anima.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAID;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,YAAY,EAAE,CA2CrF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAuC3E;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,GACvB,WAAW,CA0Eb;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA8B/D"}
package/dist/anima.js ADDED
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Anima CRUD — list, show, update, and remove operations for guild animas.
3
+ *
4
+ * Create is handled by instantiate.ts (complex composition logic).
5
+ * Read-by-name is handled by manifest.ts's readAnima() (used at manifest time).
6
+ * This module provides the remaining CRUD surface.
7
+ */
8
+ import Database from 'better-sqlite3';
9
+ import { booksPath } from "./nexus-home.js";
10
+ import { generateId } from "./id.js";
11
+ // ── Functions ──────────────────────────────────────────────────────────
12
+ /**
13
+ * List animas with optional filters.
14
+ */
15
+ export function listAnimas(home, opts = {}) {
16
+ const db = new Database(booksPath(home));
17
+ db.pragma('foreign_keys = ON');
18
+ try {
19
+ let query = `SELECT a.id, a.name, a.status, a.created_at FROM animas a`;
20
+ const conditions = [];
21
+ const params = [];
22
+ if (opts.role) {
23
+ query += ` JOIN roster r ON r.anima_id = a.id`;
24
+ conditions.push(`r.role = ?`);
25
+ params.push(opts.role);
26
+ }
27
+ if (opts.status) {
28
+ conditions.push(`a.status = ?`);
29
+ params.push(opts.status);
30
+ }
31
+ if (conditions.length > 0) {
32
+ query += ` WHERE ${conditions.join(' AND ')}`;
33
+ }
34
+ query += ` GROUP BY a.id ORDER BY a.created_at`;
35
+ const rows = db.prepare(query).all(...params);
36
+ // Fetch roles for each anima
37
+ const getRoles = db.prepare(`SELECT role FROM roster WHERE anima_id = ? ORDER BY role`);
38
+ return rows.map(row => ({
39
+ id: row.id,
40
+ name: row.name,
41
+ status: row.status,
42
+ roles: getRoles.all(row.id).map(r => r.role),
43
+ createdAt: row.created_at,
44
+ }));
45
+ }
46
+ finally {
47
+ db.close();
48
+ }
49
+ }
50
+ /**
51
+ * Show detailed information about a single anima by ID.
52
+ */
53
+ export function showAnima(home, animaId) {
54
+ const db = new Database(booksPath(home));
55
+ db.pragma('foreign_keys = ON');
56
+ try {
57
+ const row = db.prepare(`SELECT a.id, a.name, a.status, a.created_at, a.updated_at,
58
+ c.curriculum_name, c.curriculum_version,
59
+ c.temperament_name, c.temperament_version
60
+ FROM animas a
61
+ LEFT JOIN anima_compositions c ON c.anima_id = a.id
62
+ WHERE a.id = ? OR a.name = ?`).get(animaId, animaId);
63
+ if (!row)
64
+ return null;
65
+ const roles = db.prepare(`SELECT role FROM roster WHERE anima_id = ? ORDER BY role`).all(row.id).map(r => r.role);
66
+ return {
67
+ id: row.id,
68
+ name: row.name,
69
+ status: row.status,
70
+ roles,
71
+ curriculumName: row.curriculum_name ?? '',
72
+ curriculumVersion: row.curriculum_version ?? '',
73
+ temperamentName: row.temperament_name ?? '',
74
+ temperamentVersion: row.temperament_version ?? '',
75
+ createdAt: row.created_at,
76
+ updatedAt: row.updated_at,
77
+ };
78
+ }
79
+ finally {
80
+ db.close();
81
+ }
82
+ }
83
+ /**
84
+ * Update an anima's status and/or roles.
85
+ */
86
+ export function updateAnima(home, animaId, opts) {
87
+ const db = new Database(booksPath(home));
88
+ db.pragma('foreign_keys = ON');
89
+ try {
90
+ return db.transaction(() => {
91
+ // Resolve by id or name
92
+ const existing = db.prepare(`SELECT id, name FROM animas WHERE id = ? OR name = ?`).get(animaId, animaId);
93
+ if (!existing) {
94
+ throw new Error(`Anima "${animaId}" not found.`);
95
+ }
96
+ if (opts.status) {
97
+ db.prepare(`UPDATE animas SET status = ?, updated_at = datetime('now') WHERE id = ?`).run(opts.status, existing.id);
98
+ }
99
+ if (opts.roles) {
100
+ // Replace all roles
101
+ db.prepare(`DELETE FROM roster WHERE anima_id = ?`).run(existing.id);
102
+ const insertRole = db.prepare(`INSERT INTO roster (id, anima_id, role) VALUES (?, ?, ?)`);
103
+ for (const role of opts.roles) {
104
+ insertRole.run(generateId('r'), existing.id, role);
105
+ }
106
+ }
107
+ // Audit
108
+ db.prepare(`INSERT INTO audit_log (id, actor, action, target_type, target_id, detail) VALUES (?, ?, ?, ?, ?, ?)`).run(generateId('aud'), 'operator', 'anima_updated', 'anima', existing.id, JSON.stringify(opts));
109
+ // Read updated record inline (same connection, inside transaction)
110
+ const row = db.prepare(`SELECT a.id, a.name, a.status, a.created_at, a.updated_at,
111
+ c.curriculum_name, c.curriculum_version,
112
+ c.temperament_name, c.temperament_version
113
+ FROM animas a
114
+ LEFT JOIN anima_compositions c ON c.anima_id = a.id
115
+ WHERE a.id = ?`).get(existing.id);
116
+ const roles = db.prepare(`SELECT role FROM roster WHERE anima_id = ? ORDER BY role`).all(existing.id).map(r => r.role);
117
+ return {
118
+ id: row.id,
119
+ name: row.name,
120
+ status: row.status,
121
+ roles,
122
+ curriculumName: row.curriculum_name ?? '',
123
+ curriculumVersion: row.curriculum_version ?? '',
124
+ temperamentName: row.temperament_name ?? '',
125
+ temperamentVersion: row.temperament_version ?? '',
126
+ createdAt: row.created_at,
127
+ updatedAt: row.updated_at,
128
+ };
129
+ })();
130
+ }
131
+ finally {
132
+ db.close();
133
+ }
134
+ }
135
+ /**
136
+ * Remove (retire) an anima. Sets status to 'retired' and removes roster entries.
137
+ */
138
+ export function removeAnima(home, animaId) {
139
+ const db = new Database(booksPath(home));
140
+ db.pragma('foreign_keys = ON');
141
+ try {
142
+ db.transaction(() => {
143
+ const existing = db.prepare(`SELECT id, name FROM animas WHERE id = ? OR name = ?`).get(animaId, animaId);
144
+ if (!existing) {
145
+ throw new Error(`Anima "${animaId}" not found.`);
146
+ }
147
+ db.prepare(`UPDATE animas SET status = 'retired', updated_at = datetime('now') WHERE id = ?`).run(existing.id);
148
+ db.prepare(`DELETE FROM roster WHERE anima_id = ?`).run(existing.id);
149
+ db.prepare(`INSERT INTO audit_log (id, actor, action, target_type, target_id, detail) VALUES (?, ?, ?, ?, ?, ?)`).run(generateId('aud'), 'operator', 'anima_removed', 'anima', existing.id, JSON.stringify({ name: existing.name }));
150
+ })();
151
+ }
152
+ finally {
153
+ db.close();
154
+ }
155
+ }
156
+ //# sourceMappingURL=anima.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anima.js","sourceRoot":"","sources":["../src/anima.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /** Result of processing a single event. */
2
2
  export interface TickResult {
3
- eventId: number;
3
+ eventId: string;
4
4
  eventName: string;
5
5
  dispatches: DispatchSummary[];
6
6
  }
@@ -23,7 +23,7 @@ export interface ClockRunResult {
23
23
  * @param eventId - Specific event id to process, or undefined for next pending.
24
24
  * @returns Processing result, or null if no events to process.
25
25
  */
26
- export declare function clockTick(home: string, eventId?: number): Promise<TickResult | null>;
26
+ export declare function clockTick(home: string, eventId?: string): Promise<TickResult | null>;
27
27
  /**
28
28
  * Process all pending events until the queue is empty.
29
29
  *
@@ -1 +1 @@
1
- {"version":3,"file":"clockworks.d.ts","sourceRoot":"","sources":["../src/clockworks.ts"],"names":[],"mappings":"AA+BA,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAuVD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAa1F;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAkBpE"}
1
+ {"version":3,"file":"clockworks.d.ts","sourceRoot":"","sources":["../src/clockworks.ts"],"names":[],"mappings":"AAgCA,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAuVD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAa1F;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAkBpE"}
@@ -24,7 +24,8 @@ import Database from 'better-sqlite3';
24
24
  import { readGuildConfig } from "./guild-config.js";
25
25
  import { readPendingEvents, readEvent, markEventProcessed, recordDispatch, signalEvent, } from "./events.js";
26
26
  import { isClockworkEngine, resolveEngineFromExport } from "./engine.js";
27
- import { ledgerPath } from "./nexus-home.js";
27
+ import { booksPath } from "./nexus-home.js";
28
+ import { generateId } from "./id.js";
28
29
  import { updateCommissionStatus, readCommission } from "./commission.js";
29
30
  import { manifest } from "./manifest.js";
30
31
  import { launchSession, resolveWorkspace, getSessionProvider } from "./session.js";
@@ -139,7 +140,7 @@ async function executeEngineOrder(home, event, engineName, config) {
139
140
  * Throws if no active anima holds the role.
140
141
  */
141
142
  function resolveAnimaByRole(home, role) {
142
- const db = new Database(ledgerPath(home));
143
+ const db = new Database(booksPath(home));
143
144
  db.pragma('foreign_keys = ON');
144
145
  try {
145
146
  const row = db.prepare(`
@@ -197,12 +198,12 @@ async function executeAnimaOrder(home, event, roleName, noticeType) {
197
198
  const commissionId = payload?.commissionId;
198
199
  if (commissionId != null && noticeType === 'summon') {
199
200
  // Write commission assignment
200
- const db = new Database(ledgerPath(home));
201
+ const db = new Database(booksPath(home));
201
202
  db.pragma('foreign_keys = ON');
202
203
  try {
203
204
  const animaRow = db.prepare(`SELECT id FROM animas WHERE name = ?`).get(animaName);
204
205
  if (animaRow) {
205
- db.prepare(`INSERT OR IGNORE INTO commission_assignments (commission_id, anima_id) VALUES (?, ?)`).run(commissionId, animaRow.id);
206
+ db.prepare(`INSERT OR IGNORE INTO commission_assignments (id, commission_id, anima_id) VALUES (?, ?, ?)`).run(generateId('ca'), commissionId, animaRow.id);
206
207
  }
207
208
  }
208
209
  finally {
@@ -236,7 +237,7 @@ async function executeAnimaOrder(home, event, roleName, noticeType) {
236
237
  // Write commission_sessions join row if applicable
237
238
  if (commissionId != null) {
238
239
  try {
239
- const db = new Database(ledgerPath(home));
240
+ const db = new Database(booksPath(home));
240
241
  db.pragma('foreign_keys = ON');
241
242
  try {
242
243
  db.prepare(`INSERT OR IGNORE INTO commission_sessions (commission_id, session_id) VALUES (?, ?)`).run(commissionId, sessionResult.sessionId);
@@ -1 +1 @@
1
- {"version":3,"file":"clockworks.js","sourceRoot":"","sources":["../src/clockworks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clockworks.js","sourceRoot":"","sources":["../src/clockworks.ts"],"names":[],"mappings":"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"}
@@ -8,22 +8,39 @@ export interface CommissionOptions {
8
8
  }
9
9
  export interface CommissionResult {
10
10
  /** The ID of the created commission. */
11
- commissionId: number;
11
+ commissionId: string;
12
12
  }
13
13
  /**
14
14
  * Update a commission's status and reason in the Ledger.
15
15
  */
16
- export declare function updateCommissionStatus(home: string, commissionId: number, status: string, reason: string): void;
16
+ export declare function updateCommissionStatus(home: string, commissionId: string, status: string, reason: string): void;
17
17
  /**
18
18
  * Read a commission record from the Ledger.
19
19
  */
20
- export declare function readCommission(home: string, commissionId: number): {
21
- id: number;
20
+ export declare function readCommission(home: string, commissionId: string): {
21
+ id: string;
22
22
  content: string;
23
23
  status: string;
24
24
  workshop: string;
25
25
  statusReason: string | null;
26
26
  } | null;
27
+ export interface CommissionSummary {
28
+ id: string;
29
+ content: string;
30
+ status: string;
31
+ workshop: string;
32
+ statusReason: string | null;
33
+ createdAt: string;
34
+ updatedAt: string;
35
+ }
36
+ export interface ListCommissionsOptions {
37
+ status?: string;
38
+ workshop?: string;
39
+ }
40
+ /**
41
+ * List commissions with optional filters.
42
+ */
43
+ export declare function listCommissions(home: string, opts?: ListCommissionsOptions): CommissionSummary[];
27
44
  /**
28
45
  * Post a commission to the guild.
29
46
  *
@@ -1 +1 @@
1
- {"version":3,"file":"commission.d.ts","sourceRoot":"","sources":["../src/commission.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI,CAWN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CA2BvG;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,CA2CpE"}
1
+ {"version":3,"file":"commission.d.ts","sourceRoot":"","sources":["../src/commission.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI,CAWN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CA2BvG;AAID,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B,GAAG,iBAAiB,EAAE,CAwCpG;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,CA2CpE"}
@@ -6,14 +6,15 @@
6
6
  * post-session merge) is handled by standing orders.
7
7
  */
8
8
  import Database from 'better-sqlite3';
9
- import { ledgerPath } from "./nexus-home.js";
9
+ import { booksPath } from "./nexus-home.js";
10
10
  import { readGuildConfig } from "./guild-config.js";
11
11
  import { signalEvent } from "./events.js";
12
+ import { generateId } from "./id.js";
12
13
  /**
13
14
  * Update a commission's status and reason in the Ledger.
14
15
  */
15
16
  export function updateCommissionStatus(home, commissionId, status, reason) {
16
- const db = new Database(ledgerPath(home));
17
+ const db = new Database(booksPath(home));
17
18
  db.pragma('foreign_keys = ON');
18
19
  try {
19
20
  db.prepare(`UPDATE commissions SET status = ?, status_reason = ?, updated_at = datetime('now') WHERE id = ?`).run(status, reason, commissionId);
@@ -26,7 +27,7 @@ export function updateCommissionStatus(home, commissionId, status, reason) {
26
27
  * Read a commission record from the Ledger.
27
28
  */
28
29
  export function readCommission(home, commissionId) {
29
- const db = new Database(ledgerPath(home));
30
+ const db = new Database(booksPath(home));
30
31
  db.pragma('foreign_keys = ON');
31
32
  try {
32
33
  const row = db.prepare(`SELECT id, content, status, workshop, status_reason FROM commissions WHERE id = ?`).get(commissionId);
@@ -44,6 +45,43 @@ export function readCommission(home, commissionId) {
44
45
  db.close();
45
46
  }
46
47
  }
48
+ /**
49
+ * List commissions with optional filters.
50
+ */
51
+ export function listCommissions(home, opts = {}) {
52
+ const db = new Database(booksPath(home));
53
+ db.pragma('foreign_keys = ON');
54
+ try {
55
+ let query = `SELECT id, content, status, workshop, status_reason, created_at, updated_at FROM commissions`;
56
+ const conditions = [];
57
+ const params = [];
58
+ if (opts.status) {
59
+ conditions.push(`status = ?`);
60
+ params.push(opts.status);
61
+ }
62
+ if (opts.workshop) {
63
+ conditions.push(`workshop = ?`);
64
+ params.push(opts.workshop);
65
+ }
66
+ if (conditions.length > 0) {
67
+ query += ` WHERE ${conditions.join(' AND ')}`;
68
+ }
69
+ query += ` ORDER BY created_at DESC`;
70
+ const rows = db.prepare(query).all(...params);
71
+ return rows.map(row => ({
72
+ id: row.id,
73
+ content: row.content,
74
+ status: row.status,
75
+ workshop: row.workshop,
76
+ statusReason: row.status_reason,
77
+ createdAt: row.created_at,
78
+ updatedAt: row.updated_at,
79
+ }));
80
+ }
81
+ finally {
82
+ db.close();
83
+ }
84
+ }
47
85
  /**
48
86
  * Post a commission to the guild.
49
87
  *
@@ -59,16 +97,15 @@ export function commission(opts) {
59
97
  const available = Object.keys(config.workshops).join(', ') || '(none)';
60
98
  throw new Error(`Workshop "${workshop}" not found in guild.json. Available workshops: ${available}`);
61
99
  }
62
- const db = new Database(ledgerPath(home));
100
+ const db = new Database(booksPath(home));
63
101
  db.pragma('foreign_keys = ON');
64
102
  try {
65
103
  const statusReason = 'posted by patron';
104
+ const commissionId = generateId('c');
66
105
  // Create commission
67
- const insertCommission = db.prepare(`INSERT INTO commissions (content, status, status_reason, workshop) VALUES (?, ?, ?, ?)`);
68
- const commissionResult = insertCommission.run(spec, 'posted', statusReason, workshop);
69
- const commissionId = Number(commissionResult.lastInsertRowid);
106
+ db.prepare(`INSERT INTO commissions (id, content, status, status_reason, workshop) VALUES (?, ?, ?, ?, ?)`).run(commissionId, spec, 'posted', statusReason, workshop);
70
107
  // Audit log
71
- db.prepare(`INSERT INTO audit_log (actor, action, target_type, target_id, detail) VALUES (?, ?, ?, ?, ?)`).run('patron', 'commission_posted', 'commission', commissionId, JSON.stringify({ workshop }));
108
+ 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 }));
72
109
  // Signal for Clockworks
73
110
  signalEvent(home, 'commission.posted', { commissionId, workshop }, 'framework');
74
111
  return { commissionId };
@@ -1 +1 @@
1
- {"version":3,"file":"commission.js","sourceRoot":"","sources":["../src/commission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commission.js","sourceRoot":"","sources":["../src/commission.ts"],"names":[],"mappings":"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"}
package/dist/engine.d.ts CHANGED
@@ -32,7 +32,7 @@
32
32
  */
33
33
  /** An immutable fact from the event log — the input to clockwork engines. */
34
34
  export interface GuildEvent {
35
- id: number;
35
+ id: string;
36
36
  name: string;
37
37
  payload: unknown;
38
38
  emitter: string;
package/dist/events.d.ts CHANGED
@@ -19,7 +19,7 @@ export declare function validateCustomEvent(home: string, name: string): void;
19
19
  * @param emitter - Who signaled it: anima name, engine name, or "framework".
20
20
  * @returns The event id.
21
21
  */
22
- export declare function signalEvent(home: string, name: string, payload: unknown, emitter: string): number;
22
+ export declare function signalEvent(home: string, name: string, payload: unknown, emitter: string): string;
23
23
  /**
24
24
  * Read pending (unprocessed) events from the Clockworks event queue, ordered by fired_at.
25
25
  */
@@ -27,16 +27,16 @@ export declare function readPendingEvents(home: string): GuildEvent[];
27
27
  /**
28
28
  * Read a single event by id.
29
29
  */
30
- export declare function readEvent(home: string, id: number): GuildEvent | null;
30
+ export declare function readEvent(home: string, id: string): GuildEvent | null;
31
31
  /**
32
32
  * Mark an event as processed.
33
33
  */
34
- export declare function markEventProcessed(home: string, eventId: number): void;
34
+ export declare function markEventProcessed(home: string, eventId: string): void;
35
35
  /**
36
36
  * Record an event dispatch in the event_dispatches table.
37
37
  */
38
38
  export declare function recordDispatch(home: string, opts: {
39
- eventId: number;
39
+ eventId: string;
40
40
  handlerType: 'engine' | 'anima';
41
41
  handlerName: string;
42
42
  targetRole?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAa9C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAiBpE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAmB5D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAqBrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAStE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,IAAI,CAsBN"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAa9C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAiBpE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,CAcR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAmB5D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAqBrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAStE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,IAAI,CAuBN"}
package/dist/events.js CHANGED
@@ -6,8 +6,9 @@
6
6
  * separately via `nsg clock`.
7
7
  */
8
8
  import Database from 'better-sqlite3';
9
- import { ledgerPath } from "./nexus-home.js";
9
+ import { booksPath } from "./nexus-home.js";
10
10
  import { readGuildConfig } from "./guild-config.js";
11
+ import { generateId } from "./id.js";
11
12
  /** Reserved framework event namespaces. Animas cannot signal these. */
12
13
  const FRAMEWORK_NAMESPACES = [
13
14
  'anima.',
@@ -53,11 +54,12 @@ export function validateCustomEvent(home, name) {
53
54
  * @returns The event id.
54
55
  */
55
56
  export function signalEvent(home, name, payload, emitter) {
56
- const db = new Database(ledgerPath(home));
57
+ const db = new Database(booksPath(home));
57
58
  db.pragma('foreign_keys = ON');
58
59
  try {
59
- const result = db.prepare(`INSERT INTO events (name, payload, emitter) VALUES (?, ?, ?)`).run(name, payload != null ? JSON.stringify(payload) : null, emitter);
60
- return Number(result.lastInsertRowid);
60
+ const id = generateId('evt');
61
+ db.prepare(`INSERT INTO events (id, name, payload, emitter) VALUES (?, ?, ?, ?)`).run(id, name, payload != null ? JSON.stringify(payload) : null, emitter);
62
+ return id;
61
63
  }
62
64
  finally {
63
65
  db.close();
@@ -67,10 +69,10 @@ export function signalEvent(home, name, payload, emitter) {
67
69
  * Read pending (unprocessed) events from the Clockworks event queue, ordered by fired_at.
68
70
  */
69
71
  export function readPendingEvents(home) {
70
- const db = new Database(ledgerPath(home));
72
+ const db = new Database(booksPath(home));
71
73
  db.pragma('foreign_keys = ON');
72
74
  try {
73
- const rows = db.prepare(`SELECT id, name, payload, emitter, fired_at FROM events WHERE processed = 0 ORDER BY fired_at, id`).all();
75
+ const rows = db.prepare(`SELECT id, name, payload, emitter, fired_at FROM events WHERE processed = 0 ORDER BY fired_at, rowid`).all();
74
76
  return rows.map(row => ({
75
77
  id: row.id,
76
78
  name: row.name,
@@ -87,7 +89,7 @@ export function readPendingEvents(home) {
87
89
  * Read a single event by id.
88
90
  */
89
91
  export function readEvent(home, id) {
90
- const db = new Database(ledgerPath(home));
92
+ const db = new Database(booksPath(home));
91
93
  db.pragma('foreign_keys = ON');
92
94
  try {
93
95
  const row = db.prepare(`SELECT id, name, payload, emitter, fired_at FROM events WHERE id = ?`).get(id);
@@ -109,7 +111,7 @@ export function readEvent(home, id) {
109
111
  * Mark an event as processed.
110
112
  */
111
113
  export function markEventProcessed(home, eventId) {
112
- const db = new Database(ledgerPath(home));
114
+ const db = new Database(booksPath(home));
113
115
  db.pragma('foreign_keys = ON');
114
116
  try {
115
117
  db.prepare(`UPDATE events SET processed = 1 WHERE id = ?`).run(eventId);
@@ -122,11 +124,11 @@ export function markEventProcessed(home, eventId) {
122
124
  * Record an event dispatch in the event_dispatches table.
123
125
  */
124
126
  export function recordDispatch(home, opts) {
125
- const db = new Database(ledgerPath(home));
127
+ const db = new Database(booksPath(home));
126
128
  db.pragma('foreign_keys = ON');
127
129
  try {
128
- db.prepare(`INSERT INTO event_dispatches (event_id, handler_type, handler_name, target_role, notice_type, started_at, ended_at, status, error)
129
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(opts.eventId, opts.handlerType, opts.handlerName, opts.targetRole ?? null, opts.noticeType ?? null, opts.startedAt, opts.endedAt, opts.status, opts.error ?? null);
130
+ db.prepare(`INSERT INTO event_dispatches (id, event_id, handler_type, handler_name, target_role, notice_type, started_at, ended_at, status, error)
131
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(generateId('ed'), opts.eventId, opts.handlerType, opts.handlerName, opts.targetRole ?? null, opts.noticeType ?? null, opts.startedAt, opts.endedAt, opts.status, opts.error ?? null);
130
132
  }
131
133
  finally {
132
134
  db.close();
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}