clitrigger 0.2.15 → 0.2.17

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.
@@ -1,6 +1,9 @@
1
1
  import { Router } from 'express';
2
- import { createPersonalItem, getPersonalItems, getPersonalItemById, updatePersonalItem, deletePersonalItem, getAllUpcomingSchedules, getAllPlannerDueItems, getAppSetting, setAppSetting, } from '../db/queries.js';
3
- import { jiraMyself, jiraSearch } from '../lib/jira-client.js';
2
+ import path from 'path';
3
+ import fs from 'fs';
4
+ import { createPersonalItem, getPersonalItems, getPersonalItemById, updatePersonalItem, deletePersonalItem, getAllUpcomingSchedules, getAllPlannerDueItems, getAppSetting, setAppSetting, getProjectById, createPlannerItem, updatePlannerItem, } from '../db/queries.js';
5
+ import { jiraMyself, jiraSearch, jiraStatuses } from '../lib/jira-client.js';
6
+ import { cleanupPersonalImages } from './images.js';
4
7
  const router = Router();
5
8
  // ── Agenda Jira connection (global, dedicated to "My Schedule") ────────────
6
9
  const JIRA_KEY = 'agenda.jira';
@@ -17,6 +20,21 @@ function jiraConn(j) {
17
20
  return null;
18
21
  return { baseUrl: j.base_url, email: j.email, apiToken: j.api_token };
19
22
  }
23
+ // Issue keys the user has hidden from the agenda. Fetched issues are filtered
24
+ // against this so dismissed ones never reappear on the next refresh.
25
+ const JIRA_DISMISS_KEY = 'agenda.jira.dismissed';
26
+ function readDismissed() {
27
+ try {
28
+ const v = JSON.parse(getAppSetting(JIRA_DISMISS_KEY) || '[]');
29
+ return Array.isArray(v) ? v.filter((s) => typeof s === 'string') : [];
30
+ }
31
+ catch {
32
+ return [];
33
+ }
34
+ }
35
+ function writeDismissed(keys) {
36
+ setAppSetting(JIRA_DISMISS_KEY, JSON.stringify([...new Set(keys)]));
37
+ }
20
38
  // ── Personal items CRUD (global, no project, no execution) ─────────────────
21
39
  router.get('/personal-items', (_req, res) => {
22
40
  try {
@@ -28,11 +46,16 @@ router.get('/personal-items', (_req, res) => {
28
46
  });
29
47
  router.post('/personal-items', (req, res) => {
30
48
  try {
31
- const { title, description, due_at, all_day, priority, tags } = req.body ?? {};
49
+ const { title, description, start_at, end_at, priority, tags } = req.body ?? {};
32
50
  if (typeof title !== 'string' || !title.trim()) {
33
51
  return res.status(400).json({ error: 'title is required' });
34
52
  }
35
- const item = createPersonalItem(title.trim(), typeof description === 'string' ? description : undefined, due_at ?? null, all_day === 0 ? 0 : 1, Number.isFinite(priority) ? priority : 0, tags != null ? (typeof tags === 'string' ? tags : JSON.stringify(tags)) : null);
53
+ const start = typeof start_at === 'string' && start_at ? start_at.slice(0, 10) : null;
54
+ // No end (or end before start) → single-day memo on the start date.
55
+ const end = start
56
+ ? (typeof end_at === 'string' && end_at && end_at.slice(0, 10) >= start ? end_at.slice(0, 10) : start)
57
+ : null;
58
+ const item = createPersonalItem(title.trim(), typeof description === 'string' ? description : undefined, start, end, Number.isFinite(priority) ? priority : 0, tags != null ? (typeof tags === 'string' ? tags : JSON.stringify(tags)) : null);
36
59
  res.status(201).json(item);
37
60
  }
38
61
  catch (err) {
@@ -44,16 +67,21 @@ router.put('/personal-items/:id', (req, res) => {
44
67
  const id = String(req.params.id);
45
68
  if (!getPersonalItemById(id))
46
69
  return res.status(404).json({ error: 'not found' });
47
- const { title, description, due_at, all_day, status, priority, tags } = req.body ?? {};
70
+ const { title, description, start_at, end_at, status, priority, tags } = req.body ?? {};
48
71
  const updates = {};
49
72
  if (title !== undefined)
50
73
  updates.title = String(title);
51
74
  if (description !== undefined)
52
75
  updates.description = description;
53
- if (due_at !== undefined)
54
- updates.due_at = due_at;
55
- if (all_day !== undefined)
56
- updates.all_day = all_day ? 1 : 0;
76
+ // start_at/end_at travel together from the form; normalize as a pair.
77
+ if (start_at !== undefined || end_at !== undefined) {
78
+ const s = typeof start_at === 'string' && start_at ? start_at.slice(0, 10) : null;
79
+ const e = s
80
+ ? (typeof end_at === 'string' && end_at && end_at.slice(0, 10) >= s ? end_at.slice(0, 10) : s)
81
+ : null;
82
+ updates.start_at = s;
83
+ updates.end_at = e;
84
+ }
57
85
  if (status !== undefined)
58
86
  updates.status = status;
59
87
  if (priority !== undefined)
@@ -68,6 +96,7 @@ router.put('/personal-items/:id', (req, res) => {
68
96
  });
69
97
  router.delete('/personal-items/:id', (req, res) => {
70
98
  try {
99
+ cleanupPersonalImages(String(req.params.id));
71
100
  const ok = deletePersonalItem(String(req.params.id));
72
101
  if (!ok)
73
102
  return res.status(404).json({ error: 'not found' });
@@ -77,6 +106,78 @@ router.delete('/personal-items/:id', (req, res) => {
77
106
  res.status(500).json({ error: err instanceof Error ? err.message : 'Unknown error' });
78
107
  }
79
108
  });
109
+ // Bulk-delete personal memos for cleanup. Dated memos are matched when their
110
+ // [start_at, end_at] range overlaps [from, to]; undated backlog memos are only
111
+ // touched when include_backlog is set; done_only restricts to completed memos.
112
+ router.post('/personal-items/bulk-delete', (req, res) => {
113
+ try {
114
+ const from = typeof req.body?.from === 'string' ? req.body.from.trim() : '';
115
+ const to = typeof req.body?.to === 'string' ? req.body.to.trim() : '';
116
+ const doneOnly = !!req.body?.done_only;
117
+ const includeBacklog = !!req.body?.include_backlog;
118
+ const matches = (p) => {
119
+ if (doneOnly && p.status !== 'done')
120
+ return false;
121
+ if (!p.start_at)
122
+ return includeBacklog;
123
+ if (!from || !to)
124
+ return false;
125
+ const s = p.start_at.slice(0, 10);
126
+ const e = (p.end_at || p.start_at).slice(0, 10);
127
+ return s <= to && e >= from; // ranges overlap
128
+ };
129
+ const targets = getPersonalItems().filter(matches);
130
+ for (const p of targets) {
131
+ cleanupPersonalImages(p.id);
132
+ deletePersonalItem(p.id);
133
+ }
134
+ res.json({ deleted: targets.length });
135
+ }
136
+ catch (err) {
137
+ res.status(500).json({ error: err instanceof Error ? err.message : 'Unknown error' });
138
+ }
139
+ });
140
+ // Move a personal item into a project's planner (carries over images, tags,
141
+ // due date and completion state), then remove the source personal item.
142
+ router.post('/personal-items/:id/move-to-planner', (req, res) => {
143
+ try {
144
+ const id = String(req.params.id);
145
+ const item = getPersonalItemById(id);
146
+ if (!item)
147
+ return res.status(404).json({ error: 'not found' });
148
+ const projectId = String(req.body?.project_id ?? '');
149
+ if (!projectId || !getProjectById(projectId))
150
+ return res.status(400).json({ error: 'invalid project_id' });
151
+ const dueDate = item.start_at ? item.start_at.slice(0, 10) : undefined;
152
+ const created = createPlannerItem(projectId, item.title, item.description ?? undefined, item.tags ?? undefined, dueDate, item.priority);
153
+ // Carry images over: copy the files and reuse the same images JSON so the
154
+ // image ids/filenames keep resolving under the new planner item.
155
+ if (item.images) {
156
+ try {
157
+ const metas = JSON.parse(item.images);
158
+ const srcDir = path.resolve(process.cwd(), 'data', 'uploads', 'personal', id);
159
+ const destDir = path.resolve(process.cwd(), 'data', 'uploads', 'planner', created.id);
160
+ if (!fs.existsSync(destDir))
161
+ fs.mkdirSync(destDir, { recursive: true });
162
+ for (const m of metas) {
163
+ const src = path.join(srcDir, m.filename);
164
+ if (fs.existsSync(src))
165
+ fs.copyFileSync(src, path.join(destDir, m.filename));
166
+ }
167
+ updatePlannerItem(created.id, { images: item.images });
168
+ }
169
+ catch { /* ignore image copy failure */ }
170
+ }
171
+ if (item.status === 'done')
172
+ updatePlannerItem(created.id, { status: 'done' });
173
+ cleanupPersonalImages(id);
174
+ deletePersonalItem(id);
175
+ res.status(201).json({ plannerItem: created });
176
+ }
177
+ catch (err) {
178
+ res.status(500).json({ error: err instanceof Error ? err.message : 'Unknown error' });
179
+ }
180
+ });
80
181
  // ── Aggregated agenda (read-only: personal + project schedules + planner) ──
81
182
  router.get('/agenda', (req, res) => {
82
183
  try {
@@ -91,7 +192,17 @@ router.get('/agenda', (req, res) => {
91
192
  return false;
92
193
  return true;
93
194
  };
94
- const personal = getPersonalItems().filter((p) => p.due_at && inRange(p.due_at));
195
+ const personal = getPersonalItems().filter((p) => {
196
+ if (!p.start_at)
197
+ return false;
198
+ const s = p.start_at.slice(0, 10);
199
+ const e = (p.end_at || p.start_at).slice(0, 10);
200
+ if (from && e < from)
201
+ return false; // ends before window
202
+ if (to && s > to)
203
+ return false; // starts after window
204
+ return true;
205
+ });
95
206
  const schedules = getAllUpcomingSchedules().filter((s) => inRange(s.at));
96
207
  const planner = getAllPlannerDueItems().filter((p) => inRange(p.due_date));
97
208
  res.json({ personal, schedules, planner });
@@ -101,13 +212,25 @@ router.get('/agenda', (req, res) => {
101
212
  }
102
213
  });
103
214
  // Config (never returns the raw token)
215
+ function jiraConfigResponse(j) {
216
+ return {
217
+ enabled: !!j.enabled,
218
+ base_url: j.base_url || '',
219
+ email: j.email || '',
220
+ hasToken: !!j.api_token,
221
+ assignee_me: j.assignee_me !== false, // default true
222
+ include_done: !!j.include_done,
223
+ projects: j.projects || '',
224
+ statuses: Array.isArray(j.statuses) ? j.statuses : [],
225
+ extra_jql: j.extra_jql || '',
226
+ };
227
+ }
104
228
  router.get('/agenda/jira-config', (_req, res) => {
105
- const j = readJira();
106
- res.json({ enabled: !!j.enabled, base_url: j.base_url || '', email: j.email || '', hasToken: !!j.api_token });
229
+ res.json(jiraConfigResponse(readJira()));
107
230
  });
108
231
  router.put('/agenda/jira-config', (req, res) => {
109
232
  try {
110
- const { enabled, base_url, email, api_token } = req.body ?? {};
233
+ const { enabled, base_url, email, api_token, assignee_me, include_done, projects, statuses, extra_jql } = req.body ?? {};
111
234
  const cur = readJira();
112
235
  const next = {
113
236
  enabled: !!enabled,
@@ -115,9 +238,16 @@ router.put('/agenda/jira-config', (req, res) => {
115
238
  email: typeof email === 'string' ? email.trim() : cur.email,
116
239
  // Empty/omitted token keeps the existing one.
117
240
  api_token: (typeof api_token === 'string' && api_token.length) ? api_token : cur.api_token,
241
+ assignee_me: assignee_me === undefined ? cur.assignee_me : !!assignee_me,
242
+ include_done: include_done === undefined ? cur.include_done : !!include_done,
243
+ projects: typeof projects === 'string' ? projects.trim() : cur.projects,
244
+ statuses: Array.isArray(statuses)
245
+ ? statuses.filter((s) => typeof s === 'string' && s.trim().length > 0)
246
+ : cur.statuses,
247
+ extra_jql: typeof extra_jql === 'string' ? extra_jql.trim() : cur.extra_jql,
118
248
  };
119
249
  setAppSetting(JIRA_KEY, JSON.stringify(next));
120
- res.json({ enabled: !!next.enabled, base_url: next.base_url || '', email: next.email || '', hasToken: !!next.api_token });
250
+ res.json(jiraConfigResponse(next));
121
251
  }
122
252
  catch (err) {
123
253
  res.status(500).json({ error: err instanceof Error ? err.message : 'Unknown error' });
@@ -135,10 +265,42 @@ router.get('/agenda/jira-test', async (_req, res) => {
135
265
  res.status(502).json({ ok: false, error: err instanceof Error ? err.message : 'Unknown error' });
136
266
  }
137
267
  });
268
+ // Available workflow statuses, for the import-criteria status picker.
269
+ router.get('/agenda/jira/statuses', async (_req, res) => {
270
+ const conn = jiraConn(readJira());
271
+ if (!conn)
272
+ return res.status(400).json({ error: 'not configured', statuses: [] });
273
+ try {
274
+ res.json({ statuses: await jiraStatuses(conn) });
275
+ }
276
+ catch (err) {
277
+ res.status(502).json({ error: err instanceof Error ? err.message : 'Unknown error', statuses: [] });
278
+ }
279
+ });
280
+ // Hidden issue keys — managed purely on our side; never touches Jira.
281
+ router.get('/agenda/jira/dismissed', (_req, res) => {
282
+ res.json({ keys: readDismissed() });
283
+ });
284
+ router.post('/agenda/jira/dismiss', (req, res) => {
285
+ const key = typeof req.body?.key === 'string' ? req.body.key.trim() : '';
286
+ if (!key)
287
+ return res.status(400).json({ error: 'key required', keys: readDismissed() });
288
+ const keys = readDismissed();
289
+ if (!keys.includes(key))
290
+ keys.push(key);
291
+ writeDismissed(keys);
292
+ res.json({ keys });
293
+ });
294
+ router.post('/agenda/jira/undismiss', (req, res) => {
295
+ const key = typeof req.body?.key === 'string' ? req.body.key.trim() : '';
296
+ writeDismissed(readDismissed().filter((k) => k !== key));
297
+ res.json({ keys: readDismissed() });
298
+ });
138
299
  // Assigned-to-me open issues: due-dated ones in [from, to] plus ones with no
139
300
  // due date (so they can be listed even when the calendar can't place them).
140
301
  router.get('/agenda/jira', async (req, res) => {
141
- const conn = jiraConn(readJira());
302
+ const j = readJira();
303
+ const conn = jiraConn(j);
142
304
  if (!conn)
143
305
  return res.json({ issues: [] });
144
306
  const from = req.query.from?.trim();
@@ -149,11 +311,37 @@ router.get('/agenda/jira', async (req, res) => {
149
311
  if (to)
150
312
  range.push(`duedate <= "${to}"`);
151
313
  const inRange = range.length ? `(${range.join(' AND ')})` : 'duedate IS NOT NULL';
152
- const jql = `assignee = currentUser() AND statusCategory != Done AND (duedate IS EMPTY OR ${inRange}) ORDER BY duedate ASC`;
314
+ // Build the JQL from the user's criteria (defaults preserve the original
315
+ // "assigned to me, not done" behavior). Undated issues are always pulled too
316
+ // so they can be listed even when the calendar can't place them.
317
+ const parts = [];
318
+ if (j.assignee_me !== false)
319
+ parts.push('assignee = currentUser()');
320
+ // Explicit status selection wins over the include_done category filter.
321
+ const selStatuses = Array.isArray(j.statuses) ? j.statuses.filter((s) => s && s.trim()) : [];
322
+ if (selStatuses.length) {
323
+ const names = selStatuses.map((s) => `"${s.replace(/"/g, '\\"')}"`).join(', ');
324
+ parts.push(`status in (${names})`);
325
+ }
326
+ else if (!j.include_done) {
327
+ parts.push('statusCategory != Done');
328
+ }
329
+ if (j.projects && j.projects.trim()) {
330
+ const keys = j.projects.split(/[,\s]+/).filter(Boolean).map((k) => `"${k}"`).join(', ');
331
+ if (keys)
332
+ parts.push(`project in (${keys})`);
333
+ }
334
+ if (j.extra_jql && j.extra_jql.trim())
335
+ parts.push(`(${j.extra_jql.trim()})`);
336
+ parts.push(`(duedate IS EMPTY OR ${inRange})`);
337
+ const jql = `${parts.join(' AND ')} ORDER BY duedate ASC`;
153
338
  try {
154
339
  const data = await jiraSearch(conn, jql, 'summary,status,duedate', 100);
155
340
  const base = conn.baseUrl.replace(/\/+$/, '');
156
- const issues = data.issues.map((i) => {
341
+ const dismissed = new Set(readDismissed());
342
+ const issues = data.issues
343
+ .filter((i) => !dismissed.has(i.key))
344
+ .map((i) => {
157
345
  const f = i.fields;
158
346
  return {
159
347
  key: i.key,
@@ -176,12 +364,32 @@ router.post('/agenda/jira/import', (req, res) => {
176
364
  if (typeof summary !== 'string' || !summary.trim())
177
365
  return res.status(400).json({ error: 'summary is required' });
178
366
  const desc = url ? String(url) : (key ? String(key) : undefined);
179
- const item = createPersonalItem(summary.trim(), desc, typeof duedate === 'string' && duedate ? duedate : null, 1, 0, JSON.stringify(['jira', ...(key ? [String(key)] : [])]));
367
+ const due = typeof duedate === 'string' && duedate ? duedate.slice(0, 10) : null;
368
+ const item = createPersonalItem(summary.trim(), desc, due, due, 0, JSON.stringify(['jira', ...(key ? [String(key)] : [])]));
180
369
  res.status(201).json(item);
181
370
  }
182
371
  catch (err) {
183
372
  res.status(500).json({ error: err instanceof Error ? err.message : 'Unknown error' });
184
373
  }
185
374
  });
375
+ // Import a Jira issue directly into a project's planner (Jira issue untouched).
376
+ router.post('/agenda/jira/import-to-planner', (req, res) => {
377
+ try {
378
+ const { project_id, key, summary, duedate, url } = req.body ?? {};
379
+ const projectId = String(project_id ?? '');
380
+ if (!projectId || !getProjectById(projectId))
381
+ return res.status(400).json({ error: 'invalid project_id' });
382
+ if (typeof summary !== 'string' || !summary.trim())
383
+ return res.status(400).json({ error: 'summary is required' });
384
+ const desc = url ? String(url) : (key ? String(key) : undefined);
385
+ const tags = JSON.stringify(['jira', ...(key ? [String(key)] : [])]);
386
+ const dueDate = typeof duedate === 'string' && duedate ? duedate.slice(0, 10) : undefined;
387
+ const created = createPlannerItem(projectId, summary.trim(), desc, tags, dueDate, 0);
388
+ res.status(201).json({ plannerItem: created });
389
+ }
390
+ catch (err) {
391
+ res.status(500).json({ error: err instanceof Error ? err.message : 'Unknown error' });
392
+ }
393
+ });
186
394
  export default router;
187
395
  //# sourceMappingURL=personal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"personal.js","sourceRoot":"","sources":["../../../src/server/routes/personal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"personal.js","sourceRoot":"","sources":["../../../src/server/routes/personal.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clitrigger",
3
- "version": "0.2.15",
3
+ "version": "0.2.17",
4
4
  "description": "Spawn isolated git worktrees and orchestrate Claude/Gemini/Codex CLI tasks in parallel from a web UI.",
5
5
  "keywords": [
6
6
  "claude",
@@ -37,7 +37,7 @@
37
37
  "README_KR.md"
38
38
  ],
39
39
  "engines": {
40
- "node": ">=20"
40
+ "node": ">=22"
41
41
  },
42
42
  "scripts": {
43
43
  "dev": "concurrently \"npm run dev:server\" \"npm run dev:client\"",
@@ -71,7 +71,7 @@
71
71
  "dependencies": {
72
72
  "@iarna/toml": "^2.2.5",
73
73
  "@types/iarna__toml": "^2.0.5",
74
- "better-sqlite3": "^11.7.0",
74
+ "better-sqlite3": "^12.10.0",
75
75
  "cloudflared": "^0.7.1",
76
76
  "cors": "^2.8.5",
77
77
  "dotenv": "^16.4.7",