@shardworks/nexus 0.1.82 → 0.1.84

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.
@@ -0,0 +1,2 @@
1
+ export declare function makeWritCommand(): import("commander").Command;
2
+ //# sourceMappingURL=writ.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writ.d.ts","sourceRoot":"","sources":["../../src/commands/writ.ts"],"names":[],"mappings":"AAQA,wBAAgB,eAAe,gCAkL9B"}
@@ -0,0 +1,169 @@
1
+ import { createCommand } from 'commander';
2
+ import { createWrit, readWrit, listWrits, failWrit, cancelWrit, getWritChildren, signalEvent, readGuildConfig, interruptWrit, } from '@shardworks/nexus-core';
3
+ import { resolveHome } from "../resolve-home.js";
4
+ export function makeWritCommand() {
5
+ const cmd = createCommand('writ')
6
+ .description('Manage writs');
7
+ // nsg writ post <spec> --workshop <name>
8
+ // nsg writ post <spec> --no-workshop
9
+ const postCmd = createCommand('post')
10
+ .description('Post a new writ to the guild')
11
+ .argument('<spec>', 'Writ specification — what needs to be done')
12
+ .option('--workshop <workshop>', 'Target workshop (workspace-bound work)')
13
+ .option('--no-workshop', 'Knowledge/planning work (no workspace)')
14
+ .option('--type <type>', 'Writ type (default: uses first declared type or "summon")')
15
+ .action((spec, options, cmd) => {
16
+ const home = resolveHome(cmd);
17
+ try {
18
+ // Validate workshop option: one of --workshop <name> or --no-workshop required
19
+ const workshop = options.workshop;
20
+ if (workshop === undefined) {
21
+ console.error('Error: specify --workshop <name> for workspace-bound work, or --no-workshop for knowledge/planning work.');
22
+ process.exitCode = 1;
23
+ return;
24
+ }
25
+ // --no-workshop sets workshop to false
26
+ const workshopName = workshop === false ? undefined : workshop;
27
+ // Validate workshop exists if provided
28
+ if (workshopName) {
29
+ const config = readGuildConfig(home);
30
+ if (!(workshopName in config.workshops)) {
31
+ const available = Object.keys(config.workshops).join(', ') || '(none)';
32
+ console.error(`Error: Workshop "${workshopName}" not found in guild.json. Available: ${available}`);
33
+ process.exitCode = 1;
34
+ return;
35
+ }
36
+ }
37
+ const title = spec.split('\n')[0].substring(0, 200);
38
+ const writ = createWrit(home, {
39
+ type: options.type, // undefined → createWrit defaults to 'writ'
40
+ title,
41
+ description: spec,
42
+ workshop: workshopName,
43
+ sourceType: 'patron',
44
+ });
45
+ // Signal writ.posted for the Clockworks
46
+ signalEvent(home, 'writ.posted', {
47
+ writId: writ.id,
48
+ workshop: writ.workshop,
49
+ }, 'framework');
50
+ console.log(`Writ ${writ.id} posted${writ.workshop ? ` to workshop "${writ.workshop}"` : ' (no workspace)'}`);
51
+ console.log(` Run \`nsg clock run\` to process through Clockworks.`);
52
+ }
53
+ catch (err) {
54
+ console.error(`Error: ${err.message}`);
55
+ process.exitCode = 1;
56
+ }
57
+ });
58
+ cmd.addCommand(postCmd);
59
+ // nsg writ list [--type <type>] [--status <status>] [--parent <id>] [--workshop <name>]
60
+ cmd.addCommand(createCommand('list')
61
+ .description('List writs')
62
+ .option('--type <type>', 'Filter by writ type')
63
+ .option('--status <status>', 'Filter by status')
64
+ .option('--parent <id>', 'Filter by parent writ ID')
65
+ .option('--workshop <workshop>', 'Filter by workshop')
66
+ .action((options, cmd) => {
67
+ const home = resolveHome(cmd);
68
+ try {
69
+ const items = listWrits(home, {
70
+ type: options.type,
71
+ status: options.status,
72
+ parentId: options.parent,
73
+ workshop: options.workshop,
74
+ });
75
+ if (items.length === 0) {
76
+ console.log('No writs found.');
77
+ return;
78
+ }
79
+ console.log(`${items.length} writ${items.length === 1 ? '' : 's'}:\n`);
80
+ for (const w of items) {
81
+ const workshopLabel = w.workshop ? w.workshop : 'no-workspace';
82
+ console.log(` ${w.id} [${w.status}] ${w.type} ${workshopLabel}`);
83
+ console.log(` ${w.title}`);
84
+ }
85
+ }
86
+ catch (err) {
87
+ console.error(`Error: ${err.message}`);
88
+ process.exitCode = 1;
89
+ }
90
+ }));
91
+ // nsg writ show <id>
92
+ cmd.addCommand(createCommand('show')
93
+ .description('Show details of a writ')
94
+ .argument('<id>', 'Writ ID')
95
+ .action((id, _, cmd) => {
96
+ const home = resolveHome(cmd);
97
+ try {
98
+ const writ = readWrit(home, id);
99
+ if (!writ) {
100
+ console.error(`Writ "${id}" not found.`);
101
+ process.exitCode = 1;
102
+ return;
103
+ }
104
+ console.log(`Writ ${writ.id}`);
105
+ console.log(` Type: ${writ.type}`);
106
+ console.log(` Status: ${writ.status}`);
107
+ console.log(` Workshop: ${writ.workshop ?? '(none)'}`);
108
+ console.log(` Source: ${writ.sourceType}${writ.sourceId ? ` (${writ.sourceId})` : ''}`);
109
+ if (writ.parentId)
110
+ console.log(` Parent: ${writ.parentId}`);
111
+ if (writ.sessionId)
112
+ console.log(` Session: ${writ.sessionId}`);
113
+ console.log(` Created: ${writ.createdAt}`);
114
+ console.log(` Updated: ${writ.updatedAt}`);
115
+ console.log(` Title: ${writ.title}`);
116
+ if (writ.description) {
117
+ console.log(` Description:`);
118
+ console.log(` ${writ.description.split('\n').join('\n ')}`);
119
+ }
120
+ const children = getWritChildren(home, id);
121
+ if (children.length > 0) {
122
+ console.log(`\n Children (${children.length}):`);
123
+ for (const c of children) {
124
+ const suffix = c.childCount > 0
125
+ ? `(${c.completedCount}/${c.childCount} sub-items done)`
126
+ : '';
127
+ console.log(` ${c.id} [${c.status}] ${c.type} ${c.title} ${suffix}`);
128
+ }
129
+ }
130
+ }
131
+ catch (err) {
132
+ console.error(`Error: ${err.message}`);
133
+ process.exitCode = 1;
134
+ }
135
+ }));
136
+ // nsg writ update <id> --action <fail|cancel|reopen>
137
+ cmd.addCommand(createCommand('update')
138
+ .description('Update a writ status')
139
+ .argument('<id>', 'Writ ID')
140
+ .requiredOption('--action <action>', 'Action: fail, cancel, or reopen')
141
+ .action((id, options, cmd) => {
142
+ const home = resolveHome(cmd);
143
+ try {
144
+ switch (options.action) {
145
+ case 'fail':
146
+ failWrit(home, id);
147
+ console.log(`Writ ${id} failed.`);
148
+ break;
149
+ case 'cancel':
150
+ cancelWrit(home, id);
151
+ console.log(`Writ ${id} cancelled.`);
152
+ break;
153
+ case 'reopen':
154
+ interruptWrit(home, id);
155
+ console.log(`Writ ${id} reopened (status: ready).`);
156
+ break;
157
+ default:
158
+ console.error(`Error: unknown action "${options.action}". Use: fail, cancel, reopen.`);
159
+ process.exitCode = 1;
160
+ }
161
+ }
162
+ catch (err) {
163
+ console.error(`Error: ${err.message}`);
164
+ process.exitCode = 1;
165
+ }
166
+ }));
167
+ return cmd;
168
+ }
169
+ //# sourceMappingURL=writ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writ.js","sourceRoot":"","sources":["../../src/commands/writ.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EACrD,eAAe,EAAE,WAAW,EAAE,eAAe,EAC7C,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;SAC9B,WAAW,CAAC,cAAc,CAAC,CAAC;IAE/B,yCAAyC;IACzC,qCAAqC;IACrC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;SAClC,WAAW,CAAC,8BAA8B,CAAC;SAC3C,QAAQ,CAAC,QAAQ,EAAE,4CAA4C,CAAC;SAChE,MAAM,CAAC,uBAAuB,EAAE,wCAAwC,CAAC;SACzE,MAAM,CAAC,eAAe,EAAE,wCAAwC,CAAC;SACjE,MAAM,CAAC,eAAe,EAAE,2DAA2D,CAAC;SACpF,MAAM,CAAC,CAAC,IAAY,EAAE,OAAuD,EAAE,GAAG,EAAE,EAAE;QACrF,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,+EAA+E;YAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,0GAA0G,CAAC,CAAC;gBAC1H,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,uCAAuC;YACvC,MAAM,YAAY,GAAG,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,QAAmB,CAAC;YAE3E,uCAAuC;YACvC,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;oBACvE,OAAO,CAAC,KAAK,CAAC,oBAAoB,YAAY,yCAAyC,SAAS,EAAE,CAAC,CAAC;oBACpG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACrB,OAAO;gBACT,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE;gBAC5B,IAAI,EAAE,OAAO,CAAC,IAAI,EAAG,4CAA4C;gBACjE,KAAK;gBACL,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,YAAY;gBACtB,UAAU,EAAE,QAAQ;aACrB,CAAC,CAAC;YAEH,wCAAwC;YACxC,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE;gBAC/B,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,EAAE,WAAW,CAAC,CAAC;YAEhB,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC9G,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IACL,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAExB,wFAAwF;IACxF,GAAG,CAAC,UAAU,CACZ,aAAa,CAAC,MAAM,CAAC;SAClB,WAAW,CAAC,YAAY,CAAC;SACzB,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;SAC9C,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;SAC/C,MAAM,CAAC,eAAe,EAAE,0BAA0B,CAAC;SACnD,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;SACrD,MAAM,CAAC,CAAC,OAA+E,EAAE,GAAG,EAAE,EAAE;QAC/F,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE;gBAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAa;gBAC7B,QAAQ,EAAE,OAAO,CAAC,MAAM;gBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACvE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CACL,CAAC;IAEF,qBAAqB;IACrB,GAAG,CAAC,UAAU,CACZ,aAAa,CAAC,MAAM,CAAC;SAClB,WAAW,CAAC,wBAAwB,CAAC;SACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;SAC3B,MAAM,CAAC,CAAC,EAAU,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gBACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5F,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;gBAClD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC;wBAC7B,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,UAAU,kBAAkB;wBACxD,CAAC,CAAC,EAAE,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CACL,CAAC;IAEF,qDAAqD;IACrD,GAAG,CAAC,UAAU,CACZ,aAAa,CAAC,QAAQ,CAAC;SACpB,WAAW,CAAC,sBAAsB,CAAC;SACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;SAC3B,cAAc,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;SACtE,MAAM,CAAC,CAAC,EAAU,EAAE,OAA2B,EAAE,GAAG,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,KAAK,MAAM;oBACT,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAClC,MAAM;gBACR,KAAK,QAAQ;oBACX,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBACrC,MAAM;gBACR,KAAK,QAAQ;oBACX,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;oBACpD,MAAM;gBACR;oBACE,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,CAAC,MAAM,+BAA+B,CAAC,CAAC;oBACvF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC"}
package/dist/program.js CHANGED
@@ -4,7 +4,7 @@ import { claudeCodeProvider } from '@shardworks/claude-code-session-provider';
4
4
  import { makeInitCommand } from "./commands/init.js";
5
5
  import { makeToolCommand } from "./commands/tool.js";
6
6
  import { makeRestoreCommand } from "./commands/rehydrate.js";
7
- import { makeCommissionCommand } from "./commands/commission.js";
7
+ import { makeWritCommand } from "./commands/writ.js";
8
8
  import { makeStatusCommand } from "./commands/status.js";
9
9
  import { makeConsultCommand } from "./commands/consult.js";
10
10
  import { makeSignalCommand } from "./commands/signal.js";
@@ -46,8 +46,8 @@ program.addCommand(makeWorkshopCommand());
46
46
  program.addCommand(makeToolCommand());
47
47
  // nsg anima [create|list|show|update|remove|manifest]
48
48
  program.addCommand(makeAnimaCommand());
49
- // nsg commission [create|list|show|update]
50
- program.addCommand(makeCommissionCommand());
49
+ // nsg writ [post|list|show|update]
50
+ program.addCommand(makeWritCommand());
51
51
  // nsg clock [list|tick|run|start|stop|status]
52
52
  program.addCommand(makeClockCommand());
53
53
  // nsg session [list|show]
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@shardworks/nexus",
3
- "version": "0.1.82",
3
+ "version": "0.1.84",
4
4
  "license": "ISC",
5
5
  "repository": {
6
6
  "type": "git",
7
- "url": "https://github.com/shardworks/nexus-mk2",
7
+ "url": "https://github.com/shardworks/nexus",
8
8
  "directory": "packages/cli"
9
9
  },
10
10
  "description": "Nexus Mk 2.1 — CLI for the guild system",
@@ -27,9 +27,9 @@
27
27
  "@shardworks/guild-monitor": "0.1.10",
28
28
  "better-sqlite3": "12.8.0",
29
29
  "commander": "14.0.3",
30
- "@shardworks/claude-code-session-provider": "0.1.82",
31
- "@shardworks/nexus-core": "0.1.82",
32
- "@shardworks/nexus-stdlib": "0.1.82"
30
+ "@shardworks/claude-code-session-provider": "0.1.84",
31
+ "@shardworks/nexus-stdlib": "0.1.84",
32
+ "@shardworks/nexus-core": "0.1.84"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@commander-js/extra-typings": "14.0.0",
@@ -1,2 +0,0 @@
1
- export declare function makeCommissionCommand(): import("commander").Command;
2
- //# sourceMappingURL=commission.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commission.d.ts","sourceRoot":"","sources":["../../src/commands/commission.ts"],"names":[],"mappings":"AAOA,wBAAgB,qBAAqB,gCAyIpC"}
@@ -1,129 +0,0 @@
1
- import { createCommand } from 'commander';
2
- import { commission, showCommission, updateCommissionStatus, listCommissions, checkCommissionCompletion, } from '@shardworks/nexus-core';
3
- import { resolveHome } from "../resolve-home.js";
4
- export function makeCommissionCommand() {
5
- const cmd = createCommand('commission')
6
- .description('Manage commissions');
7
- // nsg commission create <spec> --workshop <name>
8
- const createCmd = createCommand('create')
9
- .description('Post a commission to the guild')
10
- .argument('<spec>', 'Commission specification — what needs to be done')
11
- .requiredOption('--workshop <workshop>', 'Target workshop')
12
- .action((spec, options, cmd) => {
13
- const home = resolveHome(cmd);
14
- try {
15
- const result = commission({ home, spec, workshop: options.workshop });
16
- console.log(`Commission ${result.commissionId} posted to workshop "${options.workshop}"`);
17
- console.log(` Run \`nsg clock run\` to process through Clockworks.`);
18
- }
19
- catch (err) {
20
- console.error(`Error: ${err.message}`);
21
- process.exitCode = 1;
22
- }
23
- });
24
- cmd.addCommand(createCmd);
25
- // nsg commission list [--status <status>] [--workshop <workshop>]
26
- cmd.addCommand(createCommand('list')
27
- .description('List commissions')
28
- .option('--status <status>', 'Filter by status')
29
- .option('--workshop <workshop>', 'Filter by workshop')
30
- .action((options, cmd) => {
31
- const home = resolveHome(cmd);
32
- try {
33
- const items = listCommissions(home, options);
34
- if (items.length === 0) {
35
- console.log('No commissions found.');
36
- return;
37
- }
38
- console.log(`${items.length} commission${items.length === 1 ? '' : 's'}:\n`);
39
- for (const c of items) {
40
- const summary = c.content.length > 60 ? c.content.slice(0, 60) + '...' : c.content;
41
- console.log(` ${c.id} [${c.status}] ${c.workshop}`);
42
- console.log(` ${summary}`);
43
- }
44
- }
45
- catch (err) {
46
- console.error(`Error: ${err.message}`);
47
- process.exitCode = 1;
48
- }
49
- }));
50
- // nsg commission show <id>
51
- cmd.addCommand(createCommand('show')
52
- .description('Show details of a commission (including assignments and sessions)')
53
- .argument('<id>', 'Commission ID')
54
- .action((id, _, cmd) => {
55
- const home = resolveHome(cmd);
56
- try {
57
- const result = showCommission(home, id);
58
- if (!result) {
59
- console.error(`Commission "${id}" not found.`);
60
- process.exitCode = 1;
61
- return;
62
- }
63
- console.log(`Commission ${result.id}`);
64
- console.log(` Status: ${result.status}`);
65
- if (result.statusReason)
66
- console.log(` Reason: ${result.statusReason}`);
67
- console.log(` Workshop: ${result.workshop}`);
68
- console.log(` Created: ${result.createdAt}`);
69
- console.log(` Updated: ${result.updatedAt}`);
70
- console.log(` Content: ${result.content}`);
71
- if (result.assignments.length > 0) {
72
- console.log(`\n Assignments:`);
73
- for (const a of result.assignments) {
74
- console.log(` ${a.animaName} (${a.animaId}) — assigned ${a.assignedAt}`);
75
- }
76
- }
77
- if (result.sessions.length > 0) {
78
- console.log(`\n Sessions:`);
79
- for (const s of result.sessions) {
80
- const status = s.endedAt ? `ended ${s.endedAt}` : 'active';
81
- console.log(` ${s.sessionId} ${s.animaId} started ${s.startedAt} ${status}`);
82
- }
83
- }
84
- }
85
- catch (err) {
86
- console.error(`Error: ${err.message}`);
87
- process.exitCode = 1;
88
- }
89
- }));
90
- // nsg commission check <id>
91
- cmd.addCommand(createCommand('check')
92
- .description('Check work completion for a commission')
93
- .argument('<id>', 'Commission ID')
94
- .action((id, _, cmd) => {
95
- const home = resolveHome(cmd);
96
- try {
97
- const check = checkCommissionCompletion(home, id);
98
- console.log(`Commission ${id} — work completion:`);
99
- console.log(` Total: ${check.total}`);
100
- console.log(` Done: ${check.done}`);
101
- console.log(` Pending: ${check.pending}`);
102
- console.log(` Failed: ${check.failed}`);
103
- console.log(` Complete: ${check.complete ? 'yes' : 'no'}`);
104
- }
105
- catch (err) {
106
- console.error(`Error: ${err.message}`);
107
- process.exitCode = 1;
108
- }
109
- }));
110
- // nsg commission update <id> --status <status> --reason <reason>
111
- cmd.addCommand(createCommand('update')
112
- .description('Update a commission\'s status')
113
- .argument('<id>', 'Commission ID')
114
- .requiredOption('--status <status>', 'New status')
115
- .requiredOption('--reason <reason>', 'Reason for status change')
116
- .action((id, options, cmd) => {
117
- const home = resolveHome(cmd);
118
- try {
119
- updateCommissionStatus(home, id, options.status, options.reason);
120
- console.log(`Commission ${id} updated to "${options.status}".`);
121
- }
122
- catch (err) {
123
- console.error(`Error: ${err.message}`);
124
- process.exitCode = 1;
125
- }
126
- }));
127
- return cmd;
128
- }
129
- //# sourceMappingURL=commission.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commission.js","sourceRoot":"","sources":["../../src/commands/commission.ts"],"names":[],"mappings":"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"}