agent-tasks 1.6.0 → 1.6.1

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 (91) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +181 -188
  3. package/package.json +84 -84
  4. package/dist/context.d.ts +0 -21
  5. package/dist/context.d.ts.map +0 -1
  6. package/dist/context.js +0 -48
  7. package/dist/context.js.map +0 -1
  8. package/dist/db.d.ts +0 -10
  9. package/dist/db.d.ts.map +0 -1
  10. package/dist/db.js +0 -112
  11. package/dist/db.js.map +0 -1
  12. package/dist/domain/agent-bridge.d.ts +0 -13
  13. package/dist/domain/agent-bridge.d.ts.map +0 -1
  14. package/dist/domain/agent-bridge.js +0 -99
  15. package/dist/domain/agent-bridge.js.map +0 -1
  16. package/dist/domain/approvals.d.ts +0 -19
  17. package/dist/domain/approvals.d.ts.map +0 -1
  18. package/dist/domain/approvals.js +0 -99
  19. package/dist/domain/approvals.js.map +0 -1
  20. package/dist/domain/cleanup.d.ts +0 -28
  21. package/dist/domain/cleanup.d.ts.map +0 -1
  22. package/dist/domain/cleanup.js +0 -68
  23. package/dist/domain/cleanup.js.map +0 -1
  24. package/dist/domain/collaborators.d.ts +0 -15
  25. package/dist/domain/collaborators.d.ts.map +0 -1
  26. package/dist/domain/collaborators.js +0 -72
  27. package/dist/domain/collaborators.js.map +0 -1
  28. package/dist/domain/comments.d.ts +0 -14
  29. package/dist/domain/comments.d.ts.map +0 -1
  30. package/dist/domain/comments.js +0 -66
  31. package/dist/domain/comments.js.map +0 -1
  32. package/dist/domain/events.d.ts +0 -10
  33. package/dist/domain/events.d.ts.map +0 -1
  34. package/dist/domain/events.js +0 -61
  35. package/dist/domain/events.js.map +0 -1
  36. package/dist/domain/rules.d.ts +0 -2
  37. package/dist/domain/rules.d.ts.map +0 -1
  38. package/dist/domain/rules.js +0 -67
  39. package/dist/domain/rules.js.map +0 -1
  40. package/dist/domain/tasks.d.ts +0 -66
  41. package/dist/domain/tasks.d.ts.map +0 -1
  42. package/dist/domain/tasks.js +0 -655
  43. package/dist/domain/tasks.js.map +0 -1
  44. package/dist/domain/validate.d.ts +0 -16
  45. package/dist/domain/validate.d.ts.map +0 -1
  46. package/dist/domain/validate.js +0 -32
  47. package/dist/domain/validate.js.map +0 -1
  48. package/dist/event-bus.d.ts +0 -10
  49. package/dist/event-bus.d.ts.map +0 -1
  50. package/dist/event-bus.js +0 -38
  51. package/dist/event-bus.js.map +0 -1
  52. package/dist/index.d.ts +0 -3
  53. package/dist/index.d.ts.map +0 -1
  54. package/dist/index.js +0 -132
  55. package/dist/index.js.map +0 -1
  56. package/dist/server.d.ts +0 -10
  57. package/dist/server.d.ts.map +0 -1
  58. package/dist/server.js +0 -95
  59. package/dist/server.js.map +0 -1
  60. package/dist/session.d.ts +0 -7
  61. package/dist/session.d.ts.map +0 -1
  62. package/dist/session.js +0 -11
  63. package/dist/session.js.map +0 -1
  64. package/dist/storage/database.d.ts +0 -15
  65. package/dist/storage/database.d.ts.map +0 -1
  66. package/dist/storage/database.js +0 -224
  67. package/dist/storage/database.js.map +0 -1
  68. package/dist/tasks.d.ts +0 -32
  69. package/dist/tasks.d.ts.map +0 -1
  70. package/dist/tasks.js +0 -410
  71. package/dist/tasks.js.map +0 -1
  72. package/dist/transport/mcp.d.ts +0 -6
  73. package/dist/transport/mcp.d.ts.map +0 -1
  74. package/dist/transport/mcp.js +0 -731
  75. package/dist/transport/mcp.js.map +0 -1
  76. package/dist/transport/rest.d.ts +0 -4
  77. package/dist/transport/rest.d.ts.map +0 -1
  78. package/dist/transport/rest.js +0 -534
  79. package/dist/transport/rest.js.map +0 -1
  80. package/dist/transport/ws.d.ts +0 -10
  81. package/dist/transport/ws.d.ts.map +0 -1
  82. package/dist/transport/ws.js +0 -191
  83. package/dist/transport/ws.js.map +0 -1
  84. package/dist/types.d.ts +0 -147
  85. package/dist/types.d.ts.map +0 -1
  86. package/dist/types.js +0 -35
  87. package/dist/types.js.map +0 -1
  88. package/dist/ui/app.js +0 -1973
  89. package/dist/ui/index.html +0 -172
  90. package/dist/ui/morphdom.min.js +0 -1
  91. package/dist/ui/styles.css +0 -2435
@@ -1,191 +0,0 @@
1
- // =============================================================================
2
- // agent-tasks — WebSocket transport
3
- //
4
- // Real-time event streaming to connected UI clients.
5
- // Full state sent on connect. Uses DB polling (2s) to detect changes
6
- // from other MCP processes, since each has its own in-memory EventBus.
7
- // =============================================================================
8
- import { WebSocketServer, WebSocket } from 'ws';
9
- import { readFileSync } from 'fs';
10
- import { join, dirname } from 'path';
11
- import { fileURLToPath } from 'url';
12
- const __dirname_ws = dirname(fileURLToPath(import.meta.url));
13
- const pkgVersion = JSON.parse(readFileSync(join(__dirname_ws, '..', '..', 'package.json'), 'utf8')).version;
14
- const MAX_WS_MESSAGE_SIZE = 4096;
15
- const MAX_WS_CONNECTIONS = 50;
16
- const PING_INTERVAL_MS = 30_000;
17
- const DB_POLL_INTERVAL_MS = 2_000;
18
- const VALID_EVENT_TYPES = new Set([
19
- '*',
20
- 'task:created',
21
- 'task:updated',
22
- 'task:claimed',
23
- 'task:advanced',
24
- 'task:regressed',
25
- 'task:completed',
26
- 'task:failed',
27
- 'task:cancelled',
28
- 'task:deleted',
29
- 'artifact:created',
30
- 'dependency:added',
31
- 'dependency:removed',
32
- 'pipeline:configured',
33
- 'comment:created',
34
- 'collaborator:added',
35
- 'collaborator:removed',
36
- 'approval:requested',
37
- 'approval:approved',
38
- 'approval:rejected',
39
- ]);
40
- export function setupWebSocket(httpServer, ctx) {
41
- const wss = new WebSocketServer({ server: httpServer, maxPayload: MAX_WS_MESSAGE_SIZE });
42
- const clients = new Map();
43
- wss.on('connection', (ws) => {
44
- if (wss.clients.size > MAX_WS_CONNECTIONS) {
45
- ws.close(1013, 'Too many connections');
46
- return;
47
- }
48
- const state = {
49
- alive: true,
50
- subscribedEvents: new Set(),
51
- };
52
- clients.set(ws, state);
53
- sendFullState(ws, ctx);
54
- ws.on('pong', () => {
55
- state.alive = true;
56
- });
57
- ws.on('message', (raw) => {
58
- let parsed;
59
- try {
60
- parsed = JSON.parse(raw.toString());
61
- }
62
- catch {
63
- ws.send(JSON.stringify({ type: 'error', message: 'Invalid JSON' }));
64
- return;
65
- }
66
- if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
67
- ws.send(JSON.stringify({ type: 'error', message: 'Message must be a JSON object' }));
68
- return;
69
- }
70
- const msg = parsed;
71
- if (typeof msg.type !== 'string') {
72
- ws.send(JSON.stringify({ type: 'error', message: 'Missing type field' }));
73
- return;
74
- }
75
- switch (msg.type) {
76
- case 'refresh':
77
- sendFullState(ws, ctx);
78
- break;
79
- case 'subscribe': {
80
- const events = msg.events;
81
- if (!Array.isArray(events)) {
82
- ws.send(JSON.stringify({
83
- type: 'error',
84
- message: '"events" must be an array of event type strings',
85
- }));
86
- break;
87
- }
88
- state.subscribedEvents.clear();
89
- for (const e of events) {
90
- if (typeof e === 'string' && VALID_EVENT_TYPES.has(e)) {
91
- state.subscribedEvents.add(e);
92
- }
93
- }
94
- ws.send(JSON.stringify({ type: 'subscribed', events: [...state.subscribedEvents] }));
95
- break;
96
- }
97
- default: {
98
- const safeType = String(msg.type)
99
- .slice(0, 64)
100
- .replace(/[<>&"']/g, '');
101
- ws.send(JSON.stringify({ type: 'error', message: `Unknown message type: ${safeType}` }));
102
- }
103
- }
104
- });
105
- ws.on('error', () => {
106
- clients.delete(ws);
107
- });
108
- ws.on('close', () => {
109
- clients.delete(ws);
110
- });
111
- });
112
- const pingInterval = setInterval(() => {
113
- for (const [ws, state] of clients) {
114
- if (!state.alive) {
115
- ws.terminate();
116
- clients.delete(ws);
117
- continue;
118
- }
119
- state.alive = false;
120
- ws.ping();
121
- }
122
- }, PING_INTERVAL_MS);
123
- pingInterval.unref();
124
- // Poll DB for changes from other processes (MCP stdio servers write directly).
125
- // Computes a lightweight fingerprint of tasks and pushes full state on change.
126
- let lastFingerprint = '';
127
- const dbPollInterval = setInterval(() => {
128
- if (clients.size === 0)
129
- return;
130
- try {
131
- const row = ctx.db.queryOne(`SELECT
132
- (SELECT COUNT(*) || ':' || COALESCE(MAX(updated_at),'') || ':' || COALESCE(MAX(id),0) FROM tasks)
133
- || '|' ||
134
- (SELECT COALESCE(MAX(id),0) FROM task_comments)
135
- || '|' ||
136
- (SELECT COALESCE(MAX(id),0) FROM task_artifacts)
137
- as fp`);
138
- const fp = row?.fp ?? '';
139
- if (fp !== lastFingerprint) {
140
- lastFingerprint = fp;
141
- for (const [ws] of clients) {
142
- if (ws.readyState === WebSocket.OPEN) {
143
- sendFullState(ws, ctx);
144
- }
145
- }
146
- }
147
- }
148
- catch {
149
- /* ignore */
150
- }
151
- }, DB_POLL_INTERVAL_MS);
152
- dbPollInterval.unref();
153
- return {
154
- wss,
155
- broadcast(message) {
156
- for (const [ws] of clients) {
157
- if (ws.readyState === WebSocket.OPEN) {
158
- ws.send(message);
159
- }
160
- }
161
- },
162
- close() {
163
- clearInterval(pingInterval);
164
- clearInterval(dbPollInterval);
165
- for (const [ws] of clients) {
166
- ws.close(1001, 'Server shutting down');
167
- }
168
- clients.clear();
169
- wss.close();
170
- },
171
- };
172
- }
173
- function sendFullState(ws, ctx) {
174
- try {
175
- ws.send(JSON.stringify({
176
- type: 'state',
177
- version: pkgVersion,
178
- tasks: ctx.tasks.list(),
179
- dependencies: ctx.tasks.getAllDependencies(),
180
- artifactCounts: ctx.tasks.getArtifactCounts(),
181
- commentCounts: ctx.comments.countByTask(),
182
- subtaskProgress: ctx.tasks.getAllSubtaskProgress(),
183
- stages: ctx.tasks.getPipelineStages(),
184
- collaborators: ctx.collaborators.listAllByTask(),
185
- }));
186
- }
187
- catch {
188
- /* ignore send errors on closed sockets */
189
- }
190
- }
191
- //# sourceMappingURL=ws.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../src/transport/ws.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,oCAAoC;AACpC,EAAE;AACF,qDAAqD;AACrD,qEAAqE;AACrE,uEAAuE;AACvE,gFAAgF;AAEhF,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAIpC,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,UAAU,GAAW,IAAI,CAAC,KAAK,CACnC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACrE,CAAC,OAAO,CAAC;AAEV,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAalC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAS;IAC7D,GAAG;IACH,cAAc;IACd,cAAc;IACd,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,qBAAqB;IACrB,iBAAiB;IACjB,oBAAoB;IACpB,sBAAsB;IACtB,oBAAoB;IACpB,mBAAmB;IACnB,mBAAmB;CACpB,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,GAAe;IAChE,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAElD,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAa,EAAE,EAAE;QACrC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,kBAAkB,EAAE,CAAC;YAC1C,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAgB;YACzB,KAAK,EAAE,IAAI;YACX,gBAAgB,EAAE,IAAI,GAAG,EAAE;SAC5B,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAEvB,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAEvB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACjB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE;YAC/B,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;gBACpE,OAAO;YACT,CAAC;YAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3E,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC,CAAC;gBACrF,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,MAAkD,CAAC;YAE/D,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAED,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,SAAS;oBACZ,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACvB,MAAM;gBAER,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;oBAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC3B,EAAE,CAAC,IAAI,CACL,IAAI,CAAC,SAAS,CAAC;4BACb,IAAI,EAAE,OAAO;4BACb,OAAO,EAAE,iDAAiD;yBAC3D,CAAC,CACH,CAAC;wBACF,MAAM;oBACR,CAAC;oBACD,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;oBAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;wBACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;4BACtD,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAoB,CAAC,CAAC;wBACnD,CAAC;oBACH,CAAC;oBACD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrF,MAAM;gBACR,CAAC;gBAED,OAAO,CAAC,CAAC,CAAC;oBACR,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;yBAC9B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;yBACZ,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBAC3B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,yBAAyB,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjB,EAAE,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;YACD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACpB,EAAE,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACrB,YAAY,CAAC,KAAK,EAAE,CAAC;IAErB,+EAA+E;IAC/E,+EAA+E;IAC/E,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CACzB;;;;;;eAMO,CACR,CAAC;YACF,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;YACzB,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,eAAe,GAAG,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;oBAC3B,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;wBACrC,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACxB,cAAc,CAAC,KAAK,EAAE,CAAC;IAEvB,OAAO;QACL,GAAG;QACH,SAAS,CAAC,OAAe;YACvB,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK;YACH,aAAa,CAAC,YAAY,CAAC,CAAC;YAC5B,aAAa,CAAC,cAAc,CAAC,CAAC;YAC9B,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC3B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,EAAa,EAAE,GAAe;IACnD,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CACL,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YACvB,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE;YAC5C,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC7C,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE;YACzC,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE;YAClD,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE;YACrC,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC,aAAa,EAAE;SACjD,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;AACH,CAAC"}
package/dist/types.d.ts DELETED
@@ -1,147 +0,0 @@
1
- export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'cancelled';
2
- export interface Task {
3
- readonly id: number;
4
- readonly title: string;
5
- readonly description: string | null;
6
- readonly created_by: string;
7
- readonly assigned_to: string | null;
8
- readonly status: TaskStatus;
9
- readonly stage: string;
10
- readonly priority: number;
11
- readonly project: string | null;
12
- readonly tags: string | null;
13
- readonly result: string | null;
14
- readonly parent_id: number | null;
15
- readonly created_at: string;
16
- readonly updated_at: string;
17
- }
18
- export interface TaskCreateInput {
19
- title: string;
20
- description?: string;
21
- assign_to?: string;
22
- stage?: string;
23
- priority?: number;
24
- project?: string;
25
- tags?: string[];
26
- parent_id?: number;
27
- }
28
- export interface TaskUpdateInput {
29
- title?: string;
30
- description?: string;
31
- priority?: number;
32
- project?: string;
33
- tags?: string[];
34
- assigned_to?: string;
35
- }
36
- export interface TaskListFilter {
37
- status?: TaskStatus;
38
- assigned_to?: string;
39
- stage?: string;
40
- project?: string;
41
- parent_id?: number;
42
- root_only?: boolean;
43
- collaborator?: string;
44
- limit?: number;
45
- offset?: number;
46
- }
47
- export interface TaskArtifact {
48
- readonly id: number;
49
- readonly task_id: number;
50
- readonly stage: string;
51
- readonly name: string;
52
- readonly content: string;
53
- readonly created_by: string;
54
- readonly version: number;
55
- readonly previous_id: number | null;
56
- readonly created_at: string;
57
- }
58
- export interface TaskComment {
59
- readonly id: number;
60
- readonly task_id: number;
61
- readonly agent_id: string;
62
- readonly content: string;
63
- readonly parent_comment_id: number | null;
64
- readonly created_at: string;
65
- }
66
- export type CollaboratorRole = 'collaborator' | 'reviewer' | 'watcher';
67
- export interface TaskCollaborator {
68
- readonly task_id: number;
69
- readonly agent_id: string;
70
- readonly role: CollaboratorRole;
71
- readonly added_at: string;
72
- }
73
- export type ApprovalStatus = 'pending' | 'approved' | 'rejected';
74
- export interface TaskApproval {
75
- readonly id: number;
76
- readonly task_id: number;
77
- readonly stage: string;
78
- readonly status: ApprovalStatus;
79
- readonly reviewer: string | null;
80
- readonly requested_at: string;
81
- readonly resolved_at: string | null;
82
- readonly comment: string | null;
83
- }
84
- export type TaskRelationshipType = 'blocks' | 'related' | 'duplicate';
85
- export interface TaskDependency {
86
- readonly task_id: number;
87
- readonly depends_on: number;
88
- readonly relationship: TaskRelationshipType;
89
- }
90
- export interface PipelineConfig {
91
- readonly project: string;
92
- readonly stages: string;
93
- readonly approval_config: string | null;
94
- readonly assignment_config: string | null;
95
- readonly updated_at: string;
96
- }
97
- export interface SearchResult {
98
- readonly task: Task;
99
- readonly snippet: string;
100
- readonly rank: number;
101
- }
102
- export type EventType = 'task:created' | 'task:updated' | 'task:claimed' | 'task:advanced' | 'task:regressed' | 'task:completed' | 'task:failed' | 'task:cancelled' | 'task:deleted' | 'artifact:created' | 'dependency:added' | 'dependency:removed' | 'pipeline:configured' | 'comment:created' | 'collaborator:added' | 'collaborator:removed' | 'approval:requested' | 'approval:approved' | 'approval:rejected';
103
- export interface TasksEvent {
104
- readonly type: EventType;
105
- readonly timestamp: string;
106
- readonly data: Record<string, unknown>;
107
- }
108
- export declare class TasksError extends Error {
109
- readonly code: string;
110
- readonly statusCode: number;
111
- constructor(message: string, code: string, statusCode?: number);
112
- }
113
- export declare class NotFoundError extends TasksError {
114
- constructor(entity: string, id: string | number);
115
- }
116
- export declare class ConflictError extends TasksError {
117
- constructor(message: string);
118
- }
119
- export declare class ValidationError extends TasksError {
120
- constructor(message: string);
121
- }
122
- export interface JsonRpcRequest {
123
- jsonrpc: '2.0';
124
- id: number | string;
125
- method: string;
126
- params?: Record<string, unknown>;
127
- }
128
- export interface JsonRpcResponse {
129
- jsonrpc: '2.0';
130
- id: number | string | null;
131
- result?: unknown;
132
- error?: {
133
- code: number;
134
- message: string;
135
- data?: unknown;
136
- };
137
- }
138
- export interface ToolDefinition {
139
- name: string;
140
- description: string;
141
- inputSchema: {
142
- type: 'object';
143
- properties: Record<string, unknown>;
144
- required?: string[];
145
- };
146
- }
147
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js DELETED
@@ -1,35 +0,0 @@
1
- // =============================================================================
2
- // agent-tasks — Core type definitions
3
- // =============================================================================
4
- // ---------------------------------------------------------------------------
5
- // Errors
6
- // ---------------------------------------------------------------------------
7
- export class TasksError extends Error {
8
- code;
9
- statusCode;
10
- constructor(message, code, statusCode = 400) {
11
- super(message);
12
- this.code = code;
13
- this.statusCode = statusCode;
14
- this.name = 'TasksError';
15
- }
16
- }
17
- export class NotFoundError extends TasksError {
18
- constructor(entity, id) {
19
- super(`${entity} not found: ${id}`, 'NOT_FOUND', 404);
20
- this.name = 'NotFoundError';
21
- }
22
- }
23
- export class ConflictError extends TasksError {
24
- constructor(message) {
25
- super(message, 'CONFLICT', 409);
26
- this.name = 'ConflictError';
27
- }
28
- }
29
- export class ValidationError extends TasksError {
30
- constructor(message) {
31
- super(message, 'VALIDATION_ERROR', 422);
32
- this.name = 'ValidationError';
33
- }
34
- }
35
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,sCAAsC;AACtC,gFAAgF;AAqLhF,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,OAAO,UAAW,SAAQ,KAAK;IAGjB;IACA;IAHlB,YACE,OAAe,EACC,IAAY,EACZ,aAAqB,GAAG;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAc;QAGxC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3C,YAAY,MAAc,EAAE,EAAmB;QAC7C,KAAK,CAAC,GAAG,MAAM,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}