@quantod/qq 0.1.7 → 0.1.9

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.
@@ -2,9 +2,9 @@ export * as yaml from 'js-yaml';
2
2
  export declare class QQError extends Error {
3
3
  constructor(message: string);
4
4
  }
5
- export interface Message {
5
+ export interface Item {
6
6
  id: string;
7
- subqueue: string;
7
+ stage: string;
8
8
  claimed: boolean;
9
9
  claimed_by: string | null;
10
10
  seq: number;
@@ -23,26 +23,26 @@ export interface FilterOptions {
23
23
  limit?: number;
24
24
  offset?: number;
25
25
  }
26
- export declare function makeQueue(name?: string): string;
27
- export declare function listQueues(): string[];
28
- export declare function deleteQueue(queue: string): void;
26
+ export declare function makePipeline(name?: string): string;
27
+ export declare function listPipelines(): string[];
28
+ export declare function deletePipeline(pipeline: string): void;
29
29
  export interface PushOptions {
30
30
  payload?: string;
31
31
  priority?: number;
32
32
  }
33
- export declare function push(path: string, id: string, { payload, priority }?: PushOptions): void;
34
- export declare function claim(path: string, agentId?: string): Message | null;
33
+ export declare function push(pipeline: string, stage: string, id?: string, { payload, priority }?: PushOptions): string;
34
+ export declare function claim(pipeline: string, stage: string, agentId?: string): Item | null;
35
35
  export interface ReleaseOptions {
36
36
  target?: string;
37
37
  payload?: string;
38
38
  replace?: boolean;
39
39
  priority?: number;
40
40
  }
41
- export declare function release(queue: string, id: string, { target, payload, replace, priority }?: ReleaseOptions): void;
42
- export declare function batchRead(path: string, filters?: FilterOptions, includePayload?: boolean): Message[];
43
- export declare function stats(queue: string): Record<string, {
41
+ export declare function release(pipeline: string, id: string, { target, payload, replace, priority }?: ReleaseOptions): void;
42
+ export declare function batchRead(pipeline: string, stage: string, filters?: FilterOptions, includePayload?: boolean): Item[];
43
+ export declare function stats(pipeline: string): Record<string, {
44
44
  total: number;
45
45
  claimed: number;
46
46
  }>;
47
- export declare function reap(queue: string, agentId?: string): number;
47
+ export declare function reap(pipeline: string, agentId?: string): number;
48
48
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAIhC,qBAAa,OAAQ,SAAQ,KAAK;gBACpB,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqCD,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAU/C;AAID,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAYrC;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE/C;AAID,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,QAAc,EAAE,GAAE,WAAgB,GAAG,IAAI,CAkBlG;AAID,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAwBpE;AAID,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAE,cAAmB,GAAG,IAAI,CA6BpH;AA8DD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,EAAE,cAAc,UAAO,GAAG,OAAO,EAAE,CAErG;AAID,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAiBvF;AAID,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAiB5D"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAIhC,qBAAa,OAAQ,SAAQ,KAAK;gBACpB,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgCD,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAUlD;AAID,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAYxC;AAID,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAErD;AAID,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,QAAc,EAAE,GAAE,WAAgB,GAAG,MAAM,CAiBxH;AAID,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAoBpF;AAID,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAE,cAAmB,GAAG,IAAI,CA6BvH;AAyDD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,EAAE,cAAc,UAAO,GAAG,IAAI,EAAE,CAErH;AAID,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAiB1F;AAID,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAiB/D"}
package/dist/commands.js CHANGED
@@ -34,9 +34,9 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.QQError = exports.yaml = void 0;
37
- exports.makeQueue = makeQueue;
38
- exports.listQueues = listQueues;
39
- exports.deleteQueue = deleteQueue;
37
+ exports.makePipeline = makePipeline;
38
+ exports.listPipelines = listPipelines;
39
+ exports.deletePipeline = deletePipeline;
40
40
  exports.push = push;
41
41
  exports.claim = claim;
42
42
  exports.release = release;
@@ -57,12 +57,6 @@ class QQError extends Error {
57
57
  }
58
58
  exports.QQError = QQError;
59
59
  // ── internal helpers ───────────────────────────────────────────────────────────
60
- function parsePath(path) {
61
- const slash = path.indexOf('/');
62
- if (slash === -1)
63
- return { queue: path, subqueue: undefined };
64
- return { queue: path.slice(0, slash), subqueue: path.slice(slash + 1) };
65
- }
66
60
  function toGlob(pattern) {
67
61
  return pattern.replace(/\*/g, '%').replace(/\?/g, '_');
68
62
  }
@@ -70,10 +64,10 @@ function nextSeq(db) {
70
64
  const row = db.prepare('SELECT MAX(seq) as m FROM messages').get();
71
65
  return (row.m ?? 0) + 1;
72
66
  }
73
- function rowToMessage(row, includePayload) {
67
+ function rowToItem(row, includePayload) {
74
68
  const msg = {
75
69
  id: row.id,
76
- subqueue: row.subqueue,
70
+ stage: row.subqueue,
77
71
  claimed: Boolean(row.claimed),
78
72
  claimed_by: row.claimed_by ?? null,
79
73
  seq: row.seq,
@@ -85,8 +79,8 @@ function rowToMessage(row, includePayload) {
85
79
  msg.payload = row.payload ?? null;
86
80
  return msg;
87
81
  }
88
- // ── makeQueue ─────────────────────────────────────────────────────────────────
89
- function makeQueue(name) {
82
+ // ── makePipeline ──────────────────────────────────────────────────────────────
83
+ function makePipeline(name) {
90
84
  if (!name) {
91
85
  const now = new Date();
92
86
  const mm = String(now.getMonth() + 1).padStart(2, '0');
@@ -97,8 +91,8 @@ function makeQueue(name) {
97
91
  db.close();
98
92
  return name;
99
93
  }
100
- // ── listQueues ────────────────────────────────────────────────────────────────
101
- function listQueues() {
94
+ // ── listPipelines ─────────────────────────────────────────────────────────────
95
+ function listPipelines() {
102
96
  const dir = (0, db_js_1.dbRoot)();
103
97
  let entries;
104
98
  try {
@@ -112,23 +106,22 @@ function listQueues() {
112
106
  .map(f => f.slice(0, -3))
113
107
  .sort();
114
108
  }
115
- // ── deleteQueue ───────────────────────────────────────────────────────────────
116
- function deleteQueue(queue) {
117
- (0, node_fs_1.rmSync)((0, node_path_1.join)((0, db_js_1.dbRoot)(), `${queue}.db`), { force: true });
109
+ // ── deletePipeline ────────────────────────────────────────────────────────────
110
+ function deletePipeline(pipeline) {
111
+ (0, node_fs_1.rmSync)((0, node_path_1.join)((0, db_js_1.dbRoot)(), `${pipeline}.db`), { force: true });
118
112
  }
119
- function push(path, id, { payload, priority = 0.0 } = {}) {
120
- const { queue, subqueue } = parsePath(path);
121
- if (!subqueue)
122
- throw new QQError('path must include a subqueue: queue/subqueue');
123
- const db = (0, db_js_1.openDb)(queue);
113
+ function push(pipeline, stage, id, { payload, priority = 0.0 } = {}) {
114
+ const db = (0, db_js_1.openDb)(pipeline);
124
115
  try {
125
- (0, db_js_1.inTransaction)(db, () => {
126
- const existing = db.prepare('SELECT id FROM messages WHERE id = ?').get(id);
127
- if (existing)
128
- throw new QQError(`duplicate id: ${id}`);
116
+ return (0, db_js_1.inTransaction)(db, () => {
129
117
  const seq = nextSeq(db);
118
+ const actualId = id ?? String(seq);
119
+ const existing = db.prepare('SELECT id FROM messages WHERE id = ?').get(actualId);
120
+ if (existing)
121
+ throw new QQError(`duplicate id: ${actualId}`);
130
122
  const now = Date.now();
131
- db.prepare('INSERT INTO messages (id, subqueue, claimed, seq, payload, priority, created, last_modified) VALUES (?, ?, 0, ?, ?, ?, ?, ?)').run(id, subqueue, seq, payload ?? null, priority, now, now);
123
+ db.prepare('INSERT INTO messages (id, subqueue, claimed, seq, payload, priority, created, last_modified) VALUES (?, ?, 0, ?, ?, ?, ?, ?)').run(actualId, stage, seq, payload ?? null, priority, now, now);
124
+ return actualId;
132
125
  });
133
126
  }
134
127
  finally {
@@ -136,38 +129,34 @@ function push(path, id, { payload, priority = 0.0 } = {}) {
136
129
  }
137
130
  }
138
131
  // ── claim ─────────────────────────────────────────────────────────────────────
139
- function claim(path, agentId) {
140
- const { queue, subqueue } = parsePath(path);
141
- if (!subqueue)
142
- throw new QQError('path must include a subqueue: queue/subqueue');
143
- const db = (0, db_js_1.openDb)(queue);
132
+ function claim(pipeline, stage, agentId) {
133
+ const db = (0, db_js_1.openDb)(pipeline);
144
134
  try {
145
135
  return (0, db_js_1.inTransaction)(db, () => {
146
- const pattern = toGlob(subqueue);
147
- const row = db.prepare('SELECT * FROM messages WHERE subqueue LIKE ? AND claimed = 0 ORDER BY priority DESC, seq ASC LIMIT 1').get(pattern);
136
+ const row = db.prepare('SELECT * FROM messages WHERE subqueue LIKE ? AND claimed = 0 ORDER BY priority DESC, seq ASC LIMIT 1').get(toGlob(stage));
148
137
  if (!row)
149
138
  return null;
150
139
  const now = Date.now();
151
140
  db.prepare('UPDATE messages SET claimed = 1, claimed_by = ?, last_modified = ? WHERE id = ?').run(agentId ?? null, now, row.id);
152
- return rowToMessage({ ...row, claimed: 1, claimed_by: agentId ?? null }, true);
141
+ return rowToItem({ ...row, claimed: 1, claimed_by: agentId ?? null }, true);
153
142
  });
154
143
  }
155
144
  finally {
156
145
  db.close();
157
146
  }
158
147
  }
159
- function release(queue, id, { target, payload, replace, priority } = {}) {
160
- const db = (0, db_js_1.openDb)(queue);
148
+ function release(pipeline, id, { target, payload, replace, priority } = {}) {
149
+ const db = (0, db_js_1.openDb)(pipeline);
161
150
  try {
162
151
  (0, db_js_1.inTransaction)(db, () => {
163
152
  const row = db.prepare('SELECT * FROM messages WHERE id = ?').get(id);
164
153
  if (!row)
165
- throw new QQError(`message not found: ${id}`);
154
+ throw new QQError(`item not found: ${id}`);
166
155
  if (!row.claimed)
167
- throw new QQError(`only claimed messages can be released: ${id}`);
156
+ throw new QQError(`only claimed items can be released: ${id}`);
168
157
  const seq = nextSeq(db);
169
158
  const now = Date.now();
170
- const newSubqueue = target ?? row.subqueue;
159
+ const newStage = target ?? row.subqueue;
171
160
  const newPriority = priority ?? row.priority ?? 0.0;
172
161
  let newPayload;
173
162
  if (payload !== undefined) {
@@ -178,7 +167,7 @@ function release(queue, id, { target, payload, replace, priority } = {}) {
178
167
  else {
179
168
  newPayload = row.payload ?? null;
180
169
  }
181
- db.prepare('UPDATE messages SET claimed = 0, claimed_by = NULL, seq = ?, subqueue = ?, payload = ?, priority = ?, last_modified = ? WHERE id = ?').run(seq, newSubqueue, newPayload, newPriority, now, id);
170
+ db.prepare('UPDATE messages SET claimed = 0, claimed_by = NULL, seq = ?, subqueue = ?, payload = ?, priority = ?, last_modified = ? WHERE id = ?').run(seq, newStage, newPayload, newPriority, now, id);
182
171
  });
183
172
  }
184
173
  finally {
@@ -186,16 +175,11 @@ function release(queue, id, { target, payload, replace, priority } = {}) {
186
175
  }
187
176
  }
188
177
  // ── list / batchRead ──────────────────────────────────────────────────────────
189
- function queryMessages(path, filters, includePayload) {
190
- const { queue, subqueue } = parsePath(path);
191
- const db = (0, db_js_1.openDb)(queue);
178
+ function queryItems(pipeline, stage, filters, includePayload) {
179
+ const db = (0, db_js_1.openDb)(pipeline);
192
180
  try {
193
- const conditions = [];
194
- const params = [];
195
- if (subqueue) {
196
- conditions.push('subqueue LIKE ?');
197
- params.push(toGlob(subqueue));
198
- }
181
+ const conditions = ['subqueue LIKE ?'];
182
+ const params = [toGlob(stage)];
199
183
  if (filters.claimed !== undefined) {
200
184
  conditions.push('claimed = ?');
201
185
  params.push(filters.claimed ? 1 : 0);
@@ -236,18 +220,18 @@ function queryMessages(path, filters, includePayload) {
236
220
  params.push(filters.offset);
237
221
  }
238
222
  const rows = db.prepare(sql).all(...params);
239
- return rows.map(r => rowToMessage(r, includePayload));
223
+ return rows.map(r => rowToItem(r, includePayload));
240
224
  }
241
225
  finally {
242
226
  db.close();
243
227
  }
244
228
  }
245
- function batchRead(path, filters = {}, includePayload = true) {
246
- return queryMessages(path, filters, includePayload);
229
+ function batchRead(pipeline, stage, filters = {}, includePayload = true) {
230
+ return queryItems(pipeline, stage, filters, includePayload);
247
231
  }
248
232
  // ── stats ─────────────────────────────────────────────────────────────────────
249
- function stats(queue) {
250
- const db = (0, db_js_1.openDb)(queue);
233
+ function stats(pipeline) {
234
+ const db = (0, db_js_1.openDb)(pipeline);
251
235
  try {
252
236
  const rows = db.prepare('SELECT subqueue, claimed, COUNT(*) as count FROM messages GROUP BY subqueue, claimed').all();
253
237
  const result = {};
@@ -265,8 +249,8 @@ function stats(queue) {
265
249
  }
266
250
  }
267
251
  // ── reap ──────────────────────────────────────────────────────────────────────
268
- function reap(queue, agentId) {
269
- const db = (0, db_js_1.openDb)(queue);
252
+ function reap(pipeline, agentId) {
253
+ const db = (0, db_js_1.openDb)(pipeline);
270
254
  try {
271
255
  return (0, db_js_1.inTransaction)(db, () => {
272
256
  const now = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
package/dist/db.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Database from 'better-sqlite3';
2
2
  export declare function dbRoot(): string;
3
- export declare function openDb(queueName: string): Database.Database;
3
+ export declare function openDb(name: string): Database.Database;
4
4
  export declare function inTransaction<T>(db: Database.Database, fn: () => T): T;
5
5
  //# sourceMappingURL=db.d.ts.map
package/dist/db.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAoBtC,wBAAgB,MAAM,IAAI,MAAM,CAI/B;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAW3D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEtE"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAoBtC,wBAAgB,MAAM,IAAI,MAAM,CAI/B;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAWtD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEtE"}
package/dist/db.js CHANGED
@@ -30,10 +30,10 @@ function dbRoot() {
30
30
  return (0, node_path_1.join)(home, '.claude', 'qq');
31
31
  return (0, node_path_1.join)(process.cwd(), '.claude', 'qq');
32
32
  }
33
- function openDb(queueName) {
33
+ function openDb(name) {
34
34
  const dir = dbRoot();
35
35
  (0, node_fs_1.mkdirSync)(dir, { recursive: true });
36
- const db = new better_sqlite3_1.default((0, node_path_1.join)(dir, `${queueName}.db`));
36
+ const db = new better_sqlite3_1.default((0, node_path_1.join)(dir, `${name}.db`));
37
37
  db.pragma('journal_mode = WAL');
38
38
  db.pragma('busy_timeout = 5000');
39
39
  db.exec(DDL);
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":";;;;;AAoBA,wBAIC;AAED,wBAWC;AAED,sCAEC;AAzCD,oEAAsC;AACtC,qCAAoC;AACpC,yCAAiC;AAEjC,MAAM,GAAG,GAAG;;;;;;;;;;;;;;CAcX,CAAC;AAEF,SAAgB,MAAM;IACpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,IAAA,gBAAI,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtE,OAAO,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,MAAM,CAAC,SAAiB;IACtC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,IAAA,mBAAS,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,IAAI,wBAAQ,CAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC;IACtD,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,0EAA0E;IAC1E,IAAI,CAAC;QAAC,EAAE,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACrH,EAAE,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;IACnG,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAgB,aAAa,CAAI,EAAqB,EAAE,EAAW;IACjE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":";;;;;AAoBA,wBAIC;AAED,wBAWC;AAED,sCAEC;AAzCD,oEAAsC;AACtC,qCAAoC;AACpC,yCAAiC;AAEjC,MAAM,GAAG,GAAG;;;;;;;;;;;;;;CAcX,CAAC;AAEF,SAAgB,MAAM;IACpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,IAAA,gBAAI,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtE,OAAO,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,MAAM,CAAC,IAAY;IACjC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,IAAA,mBAAS,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,IAAI,wBAAQ,CAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;IACjD,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,0EAA0E;IAC1E,IAAI,CAAC;QAAC,EAAE,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACrH,EAAE,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;IACnG,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAgB,aAAa,CAAI,EAAqB,EAAE,EAAW;IACjE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;AACxC,CAAC"}
package/dist/index.js CHANGED
@@ -63,106 +63,104 @@ function addFilterOptions(cmd) {
63
63
  .option('--offset <n>', '', parseIntArg);
64
64
  }
65
65
  const program = new commander_1.Command();
66
- program.name('qq').description('Persistent queue for Claude agent pipelines');
66
+ program.name('qq').description('Persistent pipeline for Claude agent workflows');
67
67
  program
68
- .command('make-queue')
68
+ .command('make-pipeline')
69
69
  .option('--name <name>')
70
70
  .action((opts) => {
71
71
  try {
72
- out({ queue: (0, commands_js_1.makeQueue)(opts.name) });
72
+ out({ pipeline: (0, commands_js_1.makePipeline)(opts.name) });
73
73
  }
74
74
  catch (e) {
75
75
  fail(e instanceof Error ? e.message : String(e));
76
76
  }
77
77
  });
78
78
  program
79
- .command('list-queues')
79
+ .command('list-pipelines')
80
80
  .action(() => {
81
81
  try {
82
- out((0, commands_js_1.listQueues)());
82
+ out((0, commands_js_1.listPipelines)());
83
83
  }
84
84
  catch (e) {
85
85
  fail(e instanceof Error ? e.message : String(e));
86
86
  }
87
87
  });
88
88
  program
89
- .command('delete-queue <queue>')
90
- .action((queue) => {
89
+ .command('delete-pipeline <pipeline>')
90
+ .action((pipeline) => {
91
91
  try {
92
- (0, commands_js_1.deleteQueue)(queue);
92
+ (0, commands_js_1.deletePipeline)(pipeline);
93
93
  }
94
94
  catch (e) {
95
95
  fail(e instanceof Error ? e.message : String(e));
96
96
  }
97
97
  });
98
98
  program
99
- .command('push <path> <id>')
100
- .option('--priority <n>', 'message priority (higher = claimed first)', parseFloatArg, 0.0)
101
- .action((path, id, opts) => {
99
+ .command('push <pipeline> <stage> [id]')
100
+ .option('--priority <n>', 'item priority (higher = claimed first)', parseFloatArg, 0.0)
101
+ .action((pipeline, stage, id, opts) => {
102
102
  try {
103
103
  const o = { payload: readStdin() ?? undefined, priority: opts.priority };
104
- (0, commands_js_1.push)(path, id, o);
105
- out({ ok: true });
104
+ out({ id: (0, commands_js_1.push)(pipeline, stage, id, o) });
106
105
  }
107
106
  catch (e) {
108
107
  e instanceof commands_js_1.QQError ? fail(e.message) : fail(String(e));
109
108
  }
110
109
  });
111
110
  program
112
- .command('claim <path>')
111
+ .command('claim <pipeline> <stage>')
113
112
  .option('--agent-id <id>')
114
- .action((path, opts) => {
113
+ .action((pipeline, stage, opts) => {
115
114
  try {
116
- out((0, commands_js_1.claim)(path, opts.agentId) ?? { empty: true });
115
+ out((0, commands_js_1.claim)(pipeline, stage, opts.agentId) ?? { empty: true });
117
116
  }
118
117
  catch (e) {
119
118
  fail(e instanceof Error ? e.message : String(e));
120
119
  }
121
120
  });
122
121
  program
123
- .command('release <queue> <id>')
124
- .option('--target <subqueue>')
125
- .option('--payload', 'read payload from stdin')
122
+ .command('release <pipeline> <id>')
123
+ .option('--target <stage>')
126
124
  .option('--replace')
127
- .option('--priority <n>', 'update message priority', parseFloatArg)
128
- .action((queue, id, opts) => {
125
+ .option('--priority <n>', 'update item priority', parseFloatArg)
126
+ .action((pipeline, id, opts) => {
129
127
  try {
130
- const payload = opts.payload ? readStdin() ?? undefined : undefined;
131
- (0, commands_js_1.release)(queue, id, { target: opts.target, payload, replace: opts.replace, priority: opts.priority });
128
+ const payload = readStdin() ?? undefined;
129
+ (0, commands_js_1.release)(pipeline, id, { target: opts.target, payload, replace: opts.replace, priority: opts.priority });
132
130
  out({ ok: true });
133
131
  }
134
132
  catch (e) {
135
133
  e instanceof commands_js_1.QQError ? fail(e.message) : fail(String(e));
136
134
  }
137
135
  });
138
- addFilterOptions(program.command('batch-read <path>'))
136
+ addFilterOptions(program.command('batch-read <pipeline> <stage>'))
139
137
  .option('--payload', 'include payload in output')
140
- .action((path, opts) => {
138
+ .action((pipeline, stage, opts) => {
141
139
  try {
142
140
  const filters = collectFilters(opts);
143
141
  if (filters.claimed === undefined)
144
142
  filters.claimed = false;
145
- out((0, commands_js_1.batchRead)(path, filters, opts.payload ?? false));
143
+ out((0, commands_js_1.batchRead)(pipeline, stage, filters, opts.payload ?? false));
146
144
  }
147
145
  catch (e) {
148
146
  fail(e instanceof Error ? e.message : String(e));
149
147
  }
150
148
  });
151
149
  program
152
- .command('stats <queue>')
153
- .action((queue) => {
150
+ .command('stats <pipeline>')
151
+ .action((pipeline) => {
154
152
  try {
155
- out((0, commands_js_1.stats)(queue));
153
+ out((0, commands_js_1.stats)(pipeline));
156
154
  }
157
155
  catch (e) {
158
156
  fail(e instanceof Error ? e.message : String(e));
159
157
  }
160
158
  });
161
159
  program
162
- .command('reap <queue> [agent-id]')
163
- .action((queue, agentId) => {
160
+ .command('reap <pipeline> [agent-id]')
161
+ .action((pipeline, agentId) => {
164
162
  try {
165
- out({ reaped: (0, commands_js_1.reap)(queue, agentId) });
163
+ out({ reaped: (0, commands_js_1.reap)(pipeline, agentId) });
166
164
  }
167
165
  catch (e) {
168
166
  fail(e instanceof Error ? e.message : String(e));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quantod/qq",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "Persistent queue for multi-stage Claude agent pipelines",
5
5
  "license": "UNLICENSED",
6
6
  "engines": {
package/src/commands.ts CHANGED
@@ -15,9 +15,9 @@ export class QQError extends Error {
15
15
  }
16
16
  }
17
17
 
18
- export interface Message {
18
+ export interface Item {
19
19
  id: string;
20
- subqueue: string;
20
+ stage: string;
21
21
  claimed: boolean;
22
22
  claimed_by: string | null;
23
23
  seq: number;
@@ -41,11 +41,6 @@ export interface FilterOptions {
41
41
 
42
42
  // ── internal helpers ───────────────────────────────────────────────────────────
43
43
 
44
- function parsePath(path: string): { queue: string; subqueue: string | undefined } {
45
- const slash = path.indexOf('/');
46
- if (slash === -1) return { queue: path, subqueue: undefined };
47
- return { queue: path.slice(0, slash), subqueue: path.slice(slash + 1) };
48
- }
49
44
 
50
45
  function toGlob(pattern: string): string {
51
46
  return pattern.replace(/\*/g, '%').replace(/\?/g, '_');
@@ -56,10 +51,10 @@ function nextSeq(db: Database.Database): number {
56
51
  return (row.m ?? 0) + 1;
57
52
  }
58
53
 
59
- function rowToMessage(row: Record<string, unknown>, includePayload: boolean): Message {
60
- const msg: Message = {
54
+ function rowToItem(row: Record<string, unknown>, includePayload: boolean): Item {
55
+ const msg: Item = {
61
56
  id: row.id as string,
62
- subqueue: row.subqueue as string,
57
+ stage: row.subqueue as string,
63
58
  claimed: Boolean(row.claimed),
64
59
  claimed_by: (row.claimed_by as string | null) ?? null,
65
60
  seq: row.seq as number,
@@ -71,9 +66,9 @@ function rowToMessage(row: Record<string, unknown>, includePayload: boolean): Me
71
66
  return msg;
72
67
  }
73
68
 
74
- // ── makeQueue ─────────────────────────────────────────────────────────────────
69
+ // ── makePipeline ──────────────────────────────────────────────────────────────
75
70
 
76
- export function makeQueue(name?: string): string {
71
+ export function makePipeline(name?: string): string {
77
72
  if (!name) {
78
73
  const now = new Date();
79
74
  const mm = String(now.getMonth() + 1).padStart(2, '0');
@@ -85,9 +80,9 @@ export function makeQueue(name?: string): string {
85
80
  return name;
86
81
  }
87
82
 
88
- // ── listQueues ────────────────────────────────────────────────────────────────
83
+ // ── listPipelines ─────────────────────────────────────────────────────────────
89
84
 
90
- export function listQueues(): string[] {
85
+ export function listPipelines(): string[] {
91
86
  const dir = dbRoot();
92
87
  let entries: string[];
93
88
  try {
@@ -101,10 +96,10 @@ export function listQueues(): string[] {
101
96
  .sort();
102
97
  }
103
98
 
104
- // ── deleteQueue ───────────────────────────────────────────────────────────────
99
+ // ── deletePipeline ────────────────────────────────────────────────────────────
105
100
 
106
- export function deleteQueue(queue: string): void {
107
- rmSync(join(dbRoot(), `${queue}.db`), { force: true });
101
+ export function deletePipeline(pipeline: string): void {
102
+ rmSync(join(dbRoot(), `${pipeline}.db`), { force: true });
108
103
  }
109
104
 
110
105
  // ── push ──────────────────────────────────────────────────────────────────────
@@ -114,20 +109,19 @@ export interface PushOptions {
114
109
  priority?: number;
115
110
  }
116
111
 
117
- export function push(path: string, id: string, { payload, priority = 0.0 }: PushOptions = {}): void {
118
- const { queue, subqueue } = parsePath(path);
119
- if (!subqueue) throw new QQError('path must include a subqueue: queue/subqueue');
120
-
121
- const db = openDb(queue);
112
+ export function push(pipeline: string, stage: string, id?: string, { payload, priority = 0.0 }: PushOptions = {}): string {
113
+ const db = openDb(pipeline);
122
114
  try {
123
- inTransaction(db, () => {
124
- const existing = db.prepare('SELECT id FROM messages WHERE id = ?').get(id);
125
- if (existing) throw new QQError(`duplicate id: ${id}`);
115
+ return inTransaction(db, () => {
126
116
  const seq = nextSeq(db);
117
+ const actualId = id ?? String(seq);
118
+ const existing = db.prepare('SELECT id FROM messages WHERE id = ?').get(actualId);
119
+ if (existing) throw new QQError(`duplicate id: ${actualId}`);
127
120
  const now = Date.now();
128
121
  db.prepare(
129
122
  'INSERT INTO messages (id, subqueue, claimed, seq, payload, priority, created, last_modified) VALUES (?, ?, 0, ?, ?, ?, ?, ?)'
130
- ).run(id, subqueue, seq, payload ?? null, priority, now, now);
123
+ ).run(actualId, stage, seq, payload ?? null, priority, now, now);
124
+ return actualId;
131
125
  });
132
126
  } finally {
133
127
  db.close();
@@ -136,17 +130,13 @@ export function push(path: string, id: string, { payload, priority = 0.0 }: Push
136
130
 
137
131
  // ── claim ─────────────────────────────────────────────────────────────────────
138
132
 
139
- export function claim(path: string, agentId?: string): Message | null {
140
- const { queue, subqueue } = parsePath(path);
141
- if (!subqueue) throw new QQError('path must include a subqueue: queue/subqueue');
142
-
143
- const db = openDb(queue);
133
+ export function claim(pipeline: string, stage: string, agentId?: string): Item | null {
134
+ const db = openDb(pipeline);
144
135
  try {
145
136
  return inTransaction(db, () => {
146
- const pattern = toGlob(subqueue);
147
137
  const row = db.prepare(
148
138
  'SELECT * FROM messages WHERE subqueue LIKE ? AND claimed = 0 ORDER BY priority DESC, seq ASC LIMIT 1'
149
- ).get(pattern) as Record<string, unknown> | undefined;
139
+ ).get(toGlob(stage)) as Record<string, unknown> | undefined;
150
140
 
151
141
  if (!row) return null;
152
142
 
@@ -155,7 +145,7 @@ export function claim(path: string, agentId?: string): Message | null {
155
145
  'UPDATE messages SET claimed = 1, claimed_by = ?, last_modified = ? WHERE id = ?'
156
146
  ).run(agentId ?? null, now, row.id as string);
157
147
 
158
- return rowToMessage({ ...row, claimed: 1, claimed_by: agentId ?? null }, true);
148
+ return rowToItem({ ...row, claimed: 1, claimed_by: agentId ?? null }, true);
159
149
  });
160
150
  } finally {
161
151
  db.close();
@@ -171,17 +161,17 @@ export interface ReleaseOptions {
171
161
  priority?: number;
172
162
  }
173
163
 
174
- export function release(queue: string, id: string, { target, payload, replace, priority }: ReleaseOptions = {}): void {
175
- const db = openDb(queue);
164
+ export function release(pipeline: string, id: string, { target, payload, replace, priority }: ReleaseOptions = {}): void {
165
+ const db = openDb(pipeline);
176
166
  try {
177
167
  inTransaction(db, () => {
178
168
  const row = db.prepare('SELECT * FROM messages WHERE id = ?').get(id) as Record<string, unknown> | undefined;
179
- if (!row) throw new QQError(`message not found: ${id}`);
180
- if (!row.claimed) throw new QQError(`only claimed messages can be released: ${id}`);
169
+ if (!row) throw new QQError(`item not found: ${id}`);
170
+ if (!row.claimed) throw new QQError(`only claimed items can be released: ${id}`);
181
171
 
182
172
  const seq = nextSeq(db);
183
173
  const now = Date.now();
184
- const newSubqueue = target ?? (row.subqueue as string);
174
+ const newStage = target ?? (row.subqueue as string);
185
175
  const newPriority = priority ?? (row.priority as number) ?? 0.0;
186
176
 
187
177
  let newPayload: string | null;
@@ -195,7 +185,7 @@ export function release(queue: string, id: string, { target, payload, replace, p
195
185
 
196
186
  db.prepare(
197
187
  'UPDATE messages SET claimed = 0, claimed_by = NULL, seq = ?, subqueue = ?, payload = ?, priority = ?, last_modified = ? WHERE id = ?'
198
- ).run(seq, newSubqueue, newPayload, newPriority, now, id);
188
+ ).run(seq, newStage, newPayload, newPriority, now, id);
199
189
  });
200
190
  } finally {
201
191
  db.close();
@@ -204,17 +194,12 @@ export function release(queue: string, id: string, { target, payload, replace, p
204
194
 
205
195
  // ── list / batchRead ──────────────────────────────────────────────────────────
206
196
 
207
- function queryMessages(path: string, filters: FilterOptions, includePayload: boolean): Message[] {
208
- const { queue, subqueue } = parsePath(path);
209
- const db = openDb(queue);
197
+ function queryItems(pipeline: string, stage: string, filters: FilterOptions, includePayload: boolean): Item[] {
198
+ const db = openDb(pipeline);
210
199
  try {
211
- const conditions: string[] = [];
212
- const params: (string | number | null)[] = [];
200
+ const conditions: string[] = ['subqueue LIKE ?'];
201
+ const params: (string | number | null)[] = [toGlob(stage)];
213
202
 
214
- if (subqueue) {
215
- conditions.push('subqueue LIKE ?');
216
- params.push(toGlob(subqueue));
217
- }
218
203
  if (filters.claimed !== undefined) {
219
204
  conditions.push('claimed = ?');
220
205
  params.push(filters.claimed ? 1 : 0);
@@ -256,20 +241,20 @@ function queryMessages(path: string, filters: FilterOptions, includePayload: boo
256
241
  }
257
242
 
258
243
  const rows = db.prepare(sql).all(...params) as Record<string, unknown>[];
259
- return rows.map(r => rowToMessage(r, includePayload));
244
+ return rows.map(r => rowToItem(r, includePayload));
260
245
  } finally {
261
246
  db.close();
262
247
  }
263
248
  }
264
249
 
265
- export function batchRead(path: string, filters: FilterOptions = {}, includePayload = true): Message[] {
266
- return queryMessages(path, filters, includePayload);
250
+ export function batchRead(pipeline: string, stage: string, filters: FilterOptions = {}, includePayload = true): Item[] {
251
+ return queryItems(pipeline, stage, filters, includePayload);
267
252
  }
268
253
 
269
254
  // ── stats ─────────────────────────────────────────────────────────────────────
270
255
 
271
- export function stats(queue: string): Record<string, { total: number; claimed: number }> {
272
- const db = openDb(queue);
256
+ export function stats(pipeline: string): Record<string, { total: number; claimed: number }> {
257
+ const db = openDb(pipeline);
273
258
  try {
274
259
  const rows = db.prepare(
275
260
  'SELECT subqueue, claimed, COUNT(*) as count FROM messages GROUP BY subqueue, claimed'
@@ -289,8 +274,8 @@ export function stats(queue: string): Record<string, { total: number; claimed: n
289
274
 
290
275
  // ── reap ──────────────────────────────────────────────────────────────────────
291
276
 
292
- export function reap(queue: string, agentId?: string): number {
293
- const db = openDb(queue);
277
+ export function reap(pipeline: string, agentId?: string): number {
278
+ const db = openDb(pipeline);
294
279
  try {
295
280
  return inTransaction(db, () => {
296
281
  const now = Date.now();
package/src/db.ts CHANGED
@@ -24,10 +24,10 @@ export function dbRoot(): string {
24
24
  return join(process.cwd(), '.claude', 'qq');
25
25
  }
26
26
 
27
- export function openDb(queueName: string): Database.Database {
27
+ export function openDb(name: string): Database.Database {
28
28
  const dir = dbRoot();
29
29
  mkdirSync(dir, { recursive: true });
30
- const db = new Database(join(dir, `${queueName}.db`));
30
+ const db = new Database(join(dir, `${name}.db`));
31
31
  db.pragma('journal_mode = WAL');
32
32
  db.pragma('busy_timeout = 5000');
33
33
  db.exec(DDL);
package/src/index.ts CHANGED
@@ -4,7 +4,7 @@ import { readFileSync } from 'node:fs';
4
4
  import { resolve, join } from 'node:path';
5
5
  import { dump } from 'js-yaml';
6
6
  import {
7
- makeQueue, listQueues, deleteQueue, push, claim, release,
7
+ makePipeline, listPipelines, deletePipeline, push, claim, release,
8
8
  batchRead, stats, reap, QQError,
9
9
  type FilterOptions, type PushOptions, type ReleaseOptions,
10
10
  } from './commands.js';
@@ -62,85 +62,83 @@ function addFilterOptions(cmd: Command): Command {
62
62
  }
63
63
 
64
64
  const program = new Command();
65
- program.name('qq').description('Persistent queue for Claude agent pipelines');
65
+ program.name('qq').description('Persistent pipeline for Claude agent workflows');
66
66
 
67
67
  program
68
- .command('make-queue')
68
+ .command('make-pipeline')
69
69
  .option('--name <name>')
70
70
  .action((opts) => {
71
- try { out({ queue: makeQueue(opts.name) }); }
71
+ try { out({ pipeline: makePipeline(opts.name) }); }
72
72
  catch (e) { fail(e instanceof Error ? e.message : String(e)); }
73
73
  });
74
74
 
75
75
  program
76
- .command('list-queues')
76
+ .command('list-pipelines')
77
77
  .action(() => {
78
- try { out(listQueues()); }
78
+ try { out(listPipelines()); }
79
79
  catch (e) { fail(e instanceof Error ? e.message : String(e)); }
80
80
  });
81
81
 
82
82
  program
83
- .command('delete-queue <queue>')
84
- .action((queue) => {
85
- try { deleteQueue(queue); }
83
+ .command('delete-pipeline <pipeline>')
84
+ .action((pipeline) => {
85
+ try { deletePipeline(pipeline); }
86
86
  catch (e) { fail(e instanceof Error ? e.message : String(e)); }
87
87
  });
88
88
 
89
89
  program
90
- .command('push <path> <id>')
91
- .option('--priority <n>', 'message priority (higher = claimed first)', parseFloatArg, 0.0)
92
- .action((path, id, opts) => {
90
+ .command('push <pipeline> <stage> [id]')
91
+ .option('--priority <n>', 'item priority (higher = claimed first)', parseFloatArg, 0.0)
92
+ .action((pipeline, stage, id, opts) => {
93
93
  try {
94
94
  const o: PushOptions = { payload: readStdin() ?? undefined, priority: opts.priority };
95
- push(path, id, o);
96
- out({ ok: true });
95
+ out({ id: push(pipeline, stage, id, o) });
97
96
  } catch (e) { e instanceof QQError ? fail(e.message) : fail(String(e)); }
98
97
  });
99
98
 
100
99
  program
101
- .command('claim <path>')
100
+ .command('claim <pipeline> <stage>')
102
101
  .option('--agent-id <id>')
103
- .action((path, opts) => {
104
- try { out(claim(path, opts.agentId) ?? { empty: true }); }
102
+ .action((pipeline, stage, opts) => {
103
+ try { out(claim(pipeline, stage, opts.agentId) ?? { empty: true }); }
105
104
  catch (e) { fail(e instanceof Error ? e.message : String(e)); }
106
105
  });
107
106
 
108
107
  program
109
- .command('release <queue> <id>')
110
- .option('--target <subqueue>')
111
- .option('--payload', 'read payload from stdin')
108
+ .command('release <pipeline> <id>')
109
+ .option('--target <stage>')
112
110
  .option('--replace')
113
- .option('--priority <n>', 'update message priority', parseFloatArg)
114
- .action((queue, id, opts) => {
111
+ .option('--priority <n>', 'update item priority', parseFloatArg)
112
+ .action((pipeline, id, opts) => {
115
113
  try {
116
- const payload = opts.payload ? readStdin() ?? undefined : undefined;
117
- release(queue, id, { target: opts.target, payload, replace: opts.replace, priority: opts.priority });
114
+ const payload = readStdin() ?? undefined;
115
+ release(pipeline, id, { target: opts.target, payload, replace: opts.replace, priority: opts.priority });
118
116
  out({ ok: true });
119
117
  } catch (e) { e instanceof QQError ? fail(e.message) : fail(String(e)); }
120
118
  });
121
119
 
122
- addFilterOptions(program.command('batch-read <path>'))
120
+ addFilterOptions(program.command('batch-read <pipeline> <stage>'))
123
121
  .option('--payload', 'include payload in output')
124
- .action((path, opts) => {
122
+ .action((pipeline, stage, opts) => {
125
123
  try {
126
124
  const filters = collectFilters(opts);
127
125
  if (filters.claimed === undefined) filters.claimed = false;
128
- out(batchRead(path, filters, opts.payload ?? false));
126
+ out(batchRead(pipeline, stage, filters, opts.payload ?? false));
129
127
  }
130
128
  catch (e) { fail(e instanceof Error ? e.message : String(e)); }
131
129
  });
132
130
 
133
131
  program
134
- .command('stats <queue>')
135
- .action((queue) => {
136
- try { out(stats(queue)); }
132
+ .command('stats <pipeline>')
133
+ .action((pipeline) => {
134
+ try { out(stats(pipeline)); }
137
135
  catch (e) { fail(e instanceof Error ? e.message : String(e)); }
138
136
  });
139
137
 
140
138
  program
141
- .command('reap <queue> [agent-id]')
142
- .action((queue, agentId) => {
143
- try { out({ reaped: reap(queue, agentId) }); }
139
+ .command('reap <pipeline> [agent-id]')
140
+ .action((pipeline, agentId) => {
141
+ try { out({ reaped: reap(pipeline, agentId) }); }
144
142
  catch (e) { fail(e instanceof Error ? e.message : String(e)); }
145
143
  });
146
144