@creezio/tasks 0.22.0

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 (106) hide show
  1. package/README.md +279 -0
  2. package/dist/.creezio-src-hash.json +4 -0
  3. package/dist/ai-task-agent.d.ts +47 -0
  4. package/dist/ai-task-agent.d.ts.map +1 -0
  5. package/dist/ai-task-agent.js +558 -0
  6. package/dist/ai-task-agent.js.map +1 -0
  7. package/dist/ai-task-runner.d.ts +78 -0
  8. package/dist/ai-task-runner.d.ts.map +1 -0
  9. package/dist/ai-task-runner.js +645 -0
  10. package/dist/ai-task-runner.js.map +1 -0
  11. package/dist/api-mount.d.ts +4 -0
  12. package/dist/api-mount.d.ts.map +1 -0
  13. package/dist/api-mount.js +91 -0
  14. package/dist/api-mount.js.map +1 -0
  15. package/dist/assistant-adapter.d.ts +7 -0
  16. package/dist/assistant-adapter.d.ts.map +1 -0
  17. package/dist/assistant-adapter.js +96 -0
  18. package/dist/assistant-adapter.js.map +1 -0
  19. package/dist/brand/config.d.ts +165 -0
  20. package/dist/brand/config.d.ts.map +1 -0
  21. package/dist/brand/config.js +39 -0
  22. package/dist/brand/config.js.map +1 -0
  23. package/dist/env-bridge.d.ts +12 -0
  24. package/dist/env-bridge.d.ts.map +1 -0
  25. package/dist/env-bridge.js +33 -0
  26. package/dist/env-bridge.js.map +1 -0
  27. package/dist/hono-routes.d.ts +8 -0
  28. package/dist/hono-routes.d.ts.map +1 -0
  29. package/dist/hono-routes.js +563 -0
  30. package/dist/hono-routes.js.map +1 -0
  31. package/dist/index.d.ts +29 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +21 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/kanban-service.d.ts +136 -0
  36. package/dist/kanban-service.d.ts.map +1 -0
  37. package/dist/kanban-service.js +580 -0
  38. package/dist/kanban-service.js.map +1 -0
  39. package/dist/mcp-host-tools.d.ts +59 -0
  40. package/dist/mcp-host-tools.d.ts.map +1 -0
  41. package/dist/mcp-host-tools.js +326 -0
  42. package/dist/mcp-host-tools.js.map +1 -0
  43. package/dist/mcp-workspace-tools.d.ts +15 -0
  44. package/dist/mcp-workspace-tools.d.ts.map +1 -0
  45. package/dist/mcp-workspace-tools.js +338 -0
  46. package/dist/mcp-workspace-tools.js.map +1 -0
  47. package/dist/memory-store.d.ts +3 -0
  48. package/dist/memory-store.d.ts.map +1 -0
  49. package/dist/memory-store.js +75 -0
  50. package/dist/memory-store.js.map +1 -0
  51. package/dist/sqlite-driver.d.ts +13 -0
  52. package/dist/sqlite-driver.d.ts.map +1 -0
  53. package/dist/sqlite-driver.js +13 -0
  54. package/dist/sqlite-driver.js.map +1 -0
  55. package/dist/sqlite-store.d.ts +15 -0
  56. package/dist/sqlite-store.d.ts.map +1 -0
  57. package/dist/sqlite-store.js +113 -0
  58. package/dist/sqlite-store.js.map +1 -0
  59. package/dist/task-runs.d.ts +108 -0
  60. package/dist/task-runs.d.ts.map +1 -0
  61. package/dist/task-runs.js +427 -0
  62. package/dist/task-runs.js.map +1 -0
  63. package/dist/types.d.ts +35 -0
  64. package/dist/types.d.ts.map +1 -0
  65. package/dist/types.js +15 -0
  66. package/dist/types.js.map +1 -0
  67. package/dist-cjs/ai-task-agent.js +569 -0
  68. package/dist-cjs/ai-task-agent.js.map +1 -0
  69. package/dist-cjs/ai-task-runner.js +660 -0
  70. package/dist-cjs/ai-task-runner.js.map +1 -0
  71. package/dist-cjs/api-mount.js +94 -0
  72. package/dist-cjs/api-mount.js.map +1 -0
  73. package/dist-cjs/assistant-adapter.js +99 -0
  74. package/dist-cjs/assistant-adapter.js.map +1 -0
  75. package/dist-cjs/brand/config.js +47 -0
  76. package/dist-cjs/brand/config.js.map +1 -0
  77. package/dist-cjs/env-bridge.js +36 -0
  78. package/dist-cjs/env-bridge.js.map +1 -0
  79. package/dist-cjs/hono-routes.js +566 -0
  80. package/dist-cjs/hono-routes.js.map +1 -0
  81. package/dist-cjs/index.js +117 -0
  82. package/dist-cjs/index.js.map +1 -0
  83. package/dist-cjs/kanban-service.js +601 -0
  84. package/dist-cjs/kanban-service.js.map +1 -0
  85. package/dist-cjs/mcp-host-tools.js +333 -0
  86. package/dist-cjs/mcp-host-tools.js.map +1 -0
  87. package/dist-cjs/mcp-workspace-tools.js +342 -0
  88. package/dist-cjs/mcp-workspace-tools.js.map +1 -0
  89. package/dist-cjs/memory-store.js +81 -0
  90. package/dist-cjs/memory-store.js.map +1 -0
  91. package/dist-cjs/package.json +3 -0
  92. package/dist-cjs/sqlite-driver.js +16 -0
  93. package/dist-cjs/sqlite-driver.js.map +1 -0
  94. package/dist-cjs/sqlite-store.js +119 -0
  95. package/dist-cjs/sqlite-store.js.map +1 -0
  96. package/dist-cjs/task-runs.js +457 -0
  97. package/dist-cjs/task-runs.js.map +1 -0
  98. package/dist-cjs/types.js +18 -0
  99. package/dist-cjs/types.js.map +1 -0
  100. package/package.json +79 -0
  101. package/scripts/port-from-tempoflow.mjs +405 -0
  102. package/ui/ai-activity-panel.tsx +559 -0
  103. package/ui/index.ts +7 -0
  104. package/ui/task-detail-sheet.tsx +668 -0
  105. package/ui/tasks-kanban-client.tsx +647 -0
  106. package/ui/tasks-types.ts +120 -0
@@ -0,0 +1,457 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RUN_STATUSES = void 0;
4
+ exports.subscribeAgentLogs = subscribeAgentLogs;
5
+ exports.subscribeTaskRuns = subscribeTaskRuns;
6
+ exports.taskRunsReady = taskRunsReady;
7
+ exports.taskRunsHitlReady = taskRunsHitlReady;
8
+ exports.taskRunsTokensReady = taskRunsTokensReady;
9
+ exports.countRunsCreatedToday = countRunsCreatedToday;
10
+ exports.sumUsageTokensToday = sumUsageTokensToday;
11
+ exports.getTaskRun = getTaskRun;
12
+ exports.listTaskRunsForTask = listTaskRunsForTask;
13
+ exports.getActiveRunForAssignee = getActiveRunForAssignee;
14
+ exports.countRunningRuns = countRunningRuns;
15
+ exports.listRunningRuns = listRunningRuns;
16
+ exports.getRunningRun = getRunningRun;
17
+ exports.maxConcurrentAiRuns = maxConcurrentAiRuns;
18
+ exports.enqueueTaskRun = enqueueTaskRun;
19
+ exports.openDetachedHitlRun = openDetachedHitlRun;
20
+ exports.claimNextQueuedRun = claimNextQueuedRun;
21
+ exports.finishTaskRun = finishTaskRun;
22
+ exports.setHitlPrompt = setHitlPrompt;
23
+ exports.resumeHitlRun = resumeHitlRun;
24
+ exports.clearHitlResponse = clearHitlResponse;
25
+ exports.cancelTaskRun = cancelTaskRun;
26
+ exports.bumpRunStepCount = bumpRunStepCount;
27
+ exports.appendAgentLog = appendAgentLog;
28
+ exports.listAgentLogs = listAgentLogs;
29
+ exports.purgeAgentLogsOlderThan = purgeAgentLogsOlderThan;
30
+ exports.isHitlPaused = isHitlPaused;
31
+ /**
32
+ * Runs d'exécution des tâches IA + logs session agent.
33
+ */
34
+ const node_crypto_1 = require("node:crypto");
35
+ const config_js_1 = require("./brand/config.js");
36
+ function getWriteDb() {
37
+ return (0, config_js_1.requireTasksBrand)().db.getWriteDb();
38
+ }
39
+ function queryAll(sql, params = []) {
40
+ return (0, config_js_1.requireTasksBrand)().db.queryAll(sql, params);
41
+ }
42
+ function queryOne(sql, params = []) {
43
+ return (0, config_js_1.requireTasksBrand)().db.queryOne(sql, params);
44
+ }
45
+ function tableExists(name) {
46
+ return (0, config_js_1.requireTasksBrand)().db.tableExists(name);
47
+ }
48
+ exports.RUN_STATUSES = [
49
+ "queued",
50
+ "running",
51
+ "succeeded",
52
+ "failed",
53
+ "cancelled",
54
+ ];
55
+ const g = globalThis;
56
+ const logListeners = g.__creezioTasksAgentLogListeners ?? new Map();
57
+ g.__creezioTasksAgentLogListeners = logListeners;
58
+ const runListeners = g.__creezioTasksAgentRunListeners ?? new Map();
59
+ g.__creezioTasksAgentRunListeners = runListeners;
60
+ function notifyLog(ev) {
61
+ const keys = [ev.run.id, ev.run.assignee_user_id, "*"];
62
+ for (const key of keys) {
63
+ const set = logListeners.get(key);
64
+ if (!set)
65
+ continue;
66
+ for (const fn of Array.from(set)) {
67
+ try {
68
+ fn(ev);
69
+ }
70
+ catch {
71
+ /* ignore */
72
+ }
73
+ }
74
+ }
75
+ }
76
+ function notifyRun(run) {
77
+ const keys = [run.id, run.assignee_user_id, "*"];
78
+ for (const key of keys) {
79
+ const set = runListeners.get(key);
80
+ if (!set)
81
+ continue;
82
+ for (const fn of Array.from(set)) {
83
+ try {
84
+ fn(run);
85
+ }
86
+ catch {
87
+ /* ignore */
88
+ }
89
+ }
90
+ }
91
+ }
92
+ /** Abonne aux logs d'un run, d'un user (assignee) ou `*` (tous). */
93
+ function subscribeAgentLogs(key, fn) {
94
+ let set = logListeners.get(key);
95
+ if (!set) {
96
+ set = new Set();
97
+ logListeners.set(key, set);
98
+ }
99
+ set.add(fn);
100
+ return () => {
101
+ set.delete(fn);
102
+ if (set.size === 0)
103
+ logListeners.delete(key);
104
+ };
105
+ }
106
+ function subscribeTaskRuns(key, fn) {
107
+ let set = runListeners.get(key);
108
+ if (!set) {
109
+ set = new Set();
110
+ runListeners.set(key, set);
111
+ }
112
+ set.add(fn);
113
+ return () => {
114
+ set.delete(fn);
115
+ if (set.size === 0)
116
+ runListeners.delete(key);
117
+ };
118
+ }
119
+ function normalizeRun(row) {
120
+ if (!row)
121
+ return null;
122
+ return {
123
+ ...row,
124
+ hitl_prompt: row.hitl_prompt ?? null,
125
+ hitl_response: row.hitl_response ?? null,
126
+ retry_of: row.retry_of ?? null,
127
+ };
128
+ }
129
+ function taskRunsReady() {
130
+ return tableExists("task_runs") && tableExists("agent_session_logs");
131
+ }
132
+ function taskRunsHitlReady() {
133
+ if (!taskRunsReady())
134
+ return false;
135
+ try {
136
+ const cols = queryAll(`PRAGMA table_info(task_runs)`);
137
+ return cols.some((c) => c.name === "hitl_prompt");
138
+ }
139
+ catch {
140
+ return false;
141
+ }
142
+ }
143
+ /** Colonne usage_tokens présente (migration 031). */
144
+ function taskRunsTokensReady() {
145
+ if (!taskRunsReady())
146
+ return false;
147
+ try {
148
+ const cols = queryAll(`PRAGMA table_info(task_runs)`);
149
+ return cols.some((c) => c.name === "usage_tokens");
150
+ }
151
+ catch {
152
+ return false;
153
+ }
154
+ }
155
+ /** Runs créés depuis minuit UTC (quota MAX_RUNS_PER_DAY (envPrefix)). */
156
+ function countRunsCreatedToday() {
157
+ if (!taskRunsReady())
158
+ return 0;
159
+ const row = queryOne(`SELECT COUNT(*) AS c FROM task_runs WHERE created_at >= date('now')`);
160
+ return row?.c ?? 0;
161
+ }
162
+ /** Tokens LLM consommés depuis minuit UTC (quota MAX_TOKENS_PER_DAY (envPrefix)). */
163
+ function sumUsageTokensToday() {
164
+ if (!taskRunsTokensReady())
165
+ return 0;
166
+ const row = queryOne(`SELECT COALESCE(SUM(usage_tokens), 0) AS s FROM task_runs
167
+ WHERE created_at >= date('now')`);
168
+ return row?.s ?? 0;
169
+ }
170
+ function getTaskRun(id) {
171
+ if (!taskRunsReady())
172
+ return null;
173
+ return normalizeRun(queryOne(`SELECT * FROM task_runs WHERE id = ?`, [id]) ?? null);
174
+ }
175
+ function listTaskRunsForTask(taskId) {
176
+ if (!taskRunsReady())
177
+ return [];
178
+ return queryAll(`SELECT * FROM task_runs WHERE task_id = ? ORDER BY created_at DESC`, [taskId]).map((r) => normalizeRun(r));
179
+ }
180
+ function getActiveRunForAssignee(assigneeUserId) {
181
+ if (!taskRunsReady())
182
+ return null;
183
+ return normalizeRun(queryOne(`SELECT * FROM task_runs
184
+ WHERE assignee_user_id = ? AND status IN ('queued','running')
185
+ ORDER BY
186
+ CASE status WHEN 'running' THEN 0 ELSE 1 END,
187
+ created_at ASC
188
+ LIMIT 1`, [assigneeUserId]) ?? null);
189
+ }
190
+ function countRunningRuns() {
191
+ if (!taskRunsReady())
192
+ return 0;
193
+ const row = queryOne(`SELECT COUNT(*) AS c FROM task_runs WHERE status = 'running'`);
194
+ return row?.c ?? 0;
195
+ }
196
+ function listRunningRuns() {
197
+ if (!taskRunsReady())
198
+ return [];
199
+ return queryAll(`SELECT * FROM task_runs WHERE status = 'running' ORDER BY started_at ASC`).map((r) => normalizeRun(r));
200
+ }
201
+ function getRunningRun() {
202
+ return listRunningRuns()[0] ?? null;
203
+ }
204
+ /** Défaut 2 ; plafond dur 8. Env MAX_CONCURRENT (envPrefix). */
205
+ function maxConcurrentAiRuns() {
206
+ const raw = Number((0, config_js_1.tasksEnv)("MAX_CONCURRENT", "2") || "2");
207
+ if (!Number.isFinite(raw) || raw < 1)
208
+ return 2;
209
+ return Math.min(8, Math.floor(raw));
210
+ }
211
+ function enqueueTaskRun(input) {
212
+ if (!taskRunsReady()) {
213
+ throw new Error("schéma task_runs plateforme requis (task_runs)");
214
+ }
215
+ const existing = queryOne(`SELECT * FROM task_runs
216
+ WHERE task_id = ? AND status IN ('queued','running')
217
+ LIMIT 1`, [input.taskId]);
218
+ if (existing)
219
+ return normalizeRun(existing);
220
+ const id = (0, node_crypto_1.randomUUID)();
221
+ if (taskRunsHitlReady()) {
222
+ getWriteDb()
223
+ .prepare(`INSERT INTO task_runs (id, task_id, assignee_user_id, status, retry_of)
224
+ VALUES (?, ?, ?, 'queued', ?)`)
225
+ .run(id, input.taskId, input.assigneeUserId, input.retryOf ?? null);
226
+ }
227
+ else {
228
+ getWriteDb()
229
+ .prepare(`INSERT INTO task_runs (id, task_id, assignee_user_id, status)
230
+ VALUES (?, ?, ?, 'queued')`)
231
+ .run(id, input.taskId, input.assigneeUserId);
232
+ }
233
+ const run = getTaskRun(id);
234
+ notifyRun(run);
235
+ return run;
236
+ }
237
+ /**
238
+ * H4 « Hermes cerveau unique » — run HITL DÉTACHÉ : question posée par un
239
+ * service (tool MCP `platform.ask_human`) sans boucle agent derrière.
240
+ *
241
+ * Réutilise l'infra `task_runs.hitl_prompt` (choix documenté : même canal de
242
+ * réponse humain que le runner — kanban « en attente humain » +
243
+ * `answer_ai_question`/`resumeHitlRun` — zéro table ni UI parallèle). Le run
244
+ * est inséré directement en `running` + `hitl_prompt` (jamais `queued`, pour
245
+ * que la boucle runner ne le claim pas). La réponse est relue par
246
+ * `platform.get_human_answer`, qui clôt le run.
247
+ */
248
+ function openDetachedHitlRun(input) {
249
+ if (!taskRunsReady() || !taskRunsHitlReady())
250
+ return null;
251
+ const id = (0, node_crypto_1.randomUUID)();
252
+ getWriteDb()
253
+ .prepare(`INSERT INTO task_runs
254
+ (id, task_id, assignee_user_id, status, started_at, hitl_prompt)
255
+ VALUES (?, ?, ?, 'running', datetime('now'), ?)`)
256
+ .run(id, input.taskId, input.assigneeUserId, input.prompt.slice(0, 4000));
257
+ const run = getTaskRun(id);
258
+ if (run)
259
+ notifyRun(run);
260
+ return run;
261
+ }
262
+ /**
263
+ * Claim atomique d'un run queued si le nombre de runs running < maxConcurrent.
264
+ */
265
+ function claimNextQueuedRun(maxConcurrent = maxConcurrentAiRuns()) {
266
+ if (!taskRunsReady())
267
+ return null;
268
+ if (countRunningRuns() >= maxConcurrent)
269
+ return null;
270
+ const next = queryOne(`SELECT * FROM task_runs WHERE status = 'queued'
271
+ ORDER BY created_at ASC LIMIT 1`);
272
+ if (!next)
273
+ return null;
274
+ const r = getWriteDb()
275
+ .prepare(`UPDATE task_runs
276
+ SET status = 'running',
277
+ started_at = datetime('now'),
278
+ updated_at = datetime('now')
279
+ WHERE id = ? AND status = 'queued'
280
+ AND (
281
+ SELECT COUNT(*) FROM task_runs WHERE status = 'running' AND id != ?
282
+ ) < ?`)
283
+ .run(next.id, next.id, maxConcurrent);
284
+ if (r.changes === 0)
285
+ return null;
286
+ const run = getTaskRun(next.id);
287
+ if (run)
288
+ notifyRun(run);
289
+ return run;
290
+ }
291
+ function finishTaskRun(id, result) {
292
+ if (!taskRunsReady())
293
+ return null;
294
+ if (typeof result.usageTokens === "number" &&
295
+ result.usageTokens > 0 &&
296
+ taskRunsTokensReady()) {
297
+ getWriteDb()
298
+ .prepare(`UPDATE task_runs SET usage_tokens = ? WHERE id = ?`)
299
+ .run(Math.round(result.usageTokens), id);
300
+ }
301
+ if (taskRunsHitlReady()) {
302
+ getWriteDb()
303
+ .prepare(`UPDATE task_runs
304
+ SET status = ?,
305
+ last_error = ?,
306
+ host_device_id = COALESCE(?, host_device_id),
307
+ step_count = COALESCE(?, step_count),
308
+ hitl_prompt = NULL,
309
+ finished_at = datetime('now'),
310
+ updated_at = datetime('now')
311
+ WHERE id = ?`)
312
+ .run(result.status, result.lastError ?? null, result.hostDeviceId ?? null, result.stepCount ?? null, id);
313
+ }
314
+ else {
315
+ getWriteDb()
316
+ .prepare(`UPDATE task_runs
317
+ SET status = ?,
318
+ last_error = ?,
319
+ host_device_id = COALESCE(?, host_device_id),
320
+ step_count = COALESCE(?, step_count),
321
+ finished_at = datetime('now'),
322
+ updated_at = datetime('now')
323
+ WHERE id = ?`)
324
+ .run(result.status, result.lastError ?? null, result.hostDeviceId ?? null, result.stepCount ?? null, id);
325
+ }
326
+ const run = getTaskRun(id);
327
+ if (run)
328
+ notifyRun(run);
329
+ return run;
330
+ }
331
+ function setHitlPrompt(id, prompt) {
332
+ if (!taskRunsHitlReady())
333
+ return null;
334
+ getWriteDb()
335
+ .prepare(`UPDATE task_runs
336
+ SET hitl_prompt = ?,
337
+ hitl_response = NULL,
338
+ updated_at = datetime('now')
339
+ WHERE id = ? AND status = 'running'`)
340
+ .run(prompt, id);
341
+ const run = getTaskRun(id);
342
+ if (run)
343
+ notifyRun(run);
344
+ return run;
345
+ }
346
+ function resumeHitlRun(id, response = "ok") {
347
+ if (!taskRunsHitlReady())
348
+ return null;
349
+ const current = getTaskRun(id);
350
+ if (!current || current.status !== "running" || !current.hitl_prompt) {
351
+ return null;
352
+ }
353
+ getWriteDb()
354
+ .prepare(`UPDATE task_runs
355
+ SET hitl_prompt = NULL,
356
+ hitl_response = ?,
357
+ updated_at = datetime('now')
358
+ WHERE id = ? AND status = 'running'`)
359
+ .run(response.slice(0, 2000), id);
360
+ const run = getTaskRun(id);
361
+ if (run)
362
+ notifyRun(run);
363
+ return run;
364
+ }
365
+ function clearHitlResponse(id) {
366
+ if (!taskRunsHitlReady())
367
+ return;
368
+ getWriteDb()
369
+ .prepare(`UPDATE task_runs SET hitl_response = NULL, updated_at = datetime('now')
370
+ WHERE id = ?`)
371
+ .run(id);
372
+ }
373
+ function cancelTaskRun(id) {
374
+ const run = getTaskRun(id);
375
+ if (!run)
376
+ return null;
377
+ if (run.status !== "queued" && run.status !== "running")
378
+ return run;
379
+ return finishTaskRun(id, {
380
+ status: "cancelled",
381
+ lastError: "cancelled_by_user",
382
+ });
383
+ }
384
+ function bumpRunStepCount(id) {
385
+ getWriteDb()
386
+ .prepare(`UPDATE task_runs
387
+ SET step_count = step_count + 1, updated_at = datetime('now')
388
+ WHERE id = ?`)
389
+ .run(id);
390
+ const row = getTaskRun(id);
391
+ return row?.step_count ?? 0;
392
+ }
393
+ function appendAgentLog(input) {
394
+ if (!taskRunsReady()) {
395
+ throw new Error("schéma task_runs plateforme requis (agent_session_logs)");
396
+ }
397
+ const seqRow = queryOne(`SELECT MAX(seq) AS m FROM agent_session_logs WHERE run_id = ?`, [input.runId]);
398
+ const seq = (seqRow?.m ?? 0) + 1;
399
+ const id = (0, node_crypto_1.randomUUID)();
400
+ let payloadJson = null;
401
+ if (input.payload !== undefined) {
402
+ try {
403
+ payloadJson = JSON.stringify(input.payload);
404
+ }
405
+ catch {
406
+ payloadJson = null;
407
+ }
408
+ }
409
+ getWriteDb()
410
+ .prepare(`INSERT INTO agent_session_logs
411
+ (id, run_id, seq, level, event_type, message, payload_json)
412
+ VALUES (?, ?, ?, ?, ?, ?, ?)`)
413
+ .run(id, input.runId, seq, input.level || "info", input.eventType, input.message, payloadJson);
414
+ bumpRunStepCount(input.runId);
415
+ const log = {
416
+ id,
417
+ run_id: input.runId,
418
+ seq,
419
+ level: input.level || "info",
420
+ event_type: input.eventType,
421
+ message: input.message,
422
+ payload_json: payloadJson,
423
+ created_at: new Date().toISOString(),
424
+ };
425
+ const run = getTaskRun(input.runId);
426
+ if (run)
427
+ notifyLog({ run, log });
428
+ return log;
429
+ }
430
+ function listAgentLogs(runId, afterSeq = 0, limit = 200) {
431
+ if (!taskRunsReady())
432
+ return [];
433
+ return queryAll(`SELECT * FROM agent_session_logs
434
+ WHERE run_id = ? AND seq > ?
435
+ ORDER BY seq ASC
436
+ LIMIT ?`, [runId, afterSeq, limit]);
437
+ }
438
+ /** Purge logs (+ runs terminés) plus vieux que N jours. */
439
+ function purgeAgentLogsOlderThan(days) {
440
+ if (!taskRunsReady())
441
+ return { logsDeleted: 0, runsDeleted: 0 };
442
+ const d = Math.max(1, Math.floor(days));
443
+ const logs = getWriteDb()
444
+ .prepare(`DELETE FROM agent_session_logs
445
+ WHERE created_at < datetime('now', ?)`)
446
+ .run(`-${d} days`);
447
+ const runs = getWriteDb()
448
+ .prepare(`DELETE FROM task_runs
449
+ WHERE status IN ('succeeded','failed','cancelled')
450
+ AND COALESCE(finished_at, created_at) < datetime('now', ?)`)
451
+ .run(`-${d} days`);
452
+ return { logsDeleted: logs.changes, runsDeleted: runs.changes };
453
+ }
454
+ function isHitlPaused(run) {
455
+ return Boolean(run?.status === "running" && run.hitl_prompt);
456
+ }
457
+ //# sourceMappingURL=task-runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-runs.js","sourceRoot":"","sources":["../src/task-runs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PLATFORM_TASKS_CORE_SQL = void 0;
4
+ /** DDL optionnel sqlite core. */
5
+ exports.PLATFORM_TASKS_CORE_SQL = `
6
+ CREATE TABLE IF NOT EXISTS creezio_platform_tasks (
7
+ id TEXT PRIMARY KEY,
8
+ user_id TEXT NOT NULL,
9
+ title TEXT NOT NULL,
10
+ body TEXT NOT NULL DEFAULT '',
11
+ status TEXT NOT NULL DEFAULT 'open',
12
+ created_at TEXT NOT NULL,
13
+ updated_at TEXT NOT NULL
14
+ );
15
+ CREATE INDEX IF NOT EXISTS idx_creezio_platform_tasks_user
16
+ ON creezio_platform_tasks(user_id, status);
17
+ `;
18
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAuCA,iCAAiC;AACpB,QAAA,uBAAuB,GAAG;;;;;;;;;;;;CAYtC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "@creezio/tasks",
3
+ "version": "0.22.0",
4
+ "description": "Tâches natives plateforme Creezio — kanban human/ai/hermes + runs + AI (hors PluginTaskRecord product-hub)",
5
+ "type": "module",
6
+ "main": "./dist-cjs/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "require": "./dist-cjs/index.js",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./ui": {
16
+ "types": "./ui/index.ts",
17
+ "import": "./ui/index.ts",
18
+ "default": "./ui/index.ts"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "dist-cjs",
24
+ "ui",
25
+ "scripts"
26
+ ],
27
+ "scripts": {
28
+ "build": "tsc -p tsconfig.json",
29
+ "typecheck": "tsc -p tsconfig.json --noEmit"
30
+ },
31
+ "dependencies": {
32
+ "@creezio/api-kernel": "^0.22.0",
33
+ "@creezio/assistant": "^0.22.0",
34
+ "@creezio/auth": "^0.22.0",
35
+ "@creezio/platform-core": "^0.22.0",
36
+ "@creezio/shell-ui": "^0.22.0",
37
+ "hono": "^4.12.32",
38
+ "zod": "^4.4.3"
39
+ },
40
+ "devDependencies": {
41
+ "@types/node": "^22.15.3",
42
+ "@types/react": "^18.3.12",
43
+ "typescript": "^5.8.3"
44
+ },
45
+ "peerDependencies": {
46
+ "date-fns": ">=2.0.0",
47
+ "lucide-react": ">=0.400.0",
48
+ "react": "^18.0.0 || ^19.0.0",
49
+ "sonner": ">=1.0.0"
50
+ },
51
+ "peerDependenciesMeta": {
52
+ "date-fns": {
53
+ "optional": true
54
+ },
55
+ "lucide-react": {
56
+ "optional": true
57
+ },
58
+ "react": {
59
+ "optional": true
60
+ },
61
+ "sonner": {
62
+ "optional": true
63
+ }
64
+ },
65
+ "license": "UNLICENSED",
66
+ "module": "./dist/index.js",
67
+ "publishConfig": {
68
+ "registry": "https://registry.npmjs.org",
69
+ "access": "public"
70
+ },
71
+ "repository": {
72
+ "type": "git",
73
+ "url": "https://github.com/creezio/creezio.git",
74
+ "directory": "packages/tasks"
75
+ },
76
+ "engines": {
77
+ "node": ">=22.5"
78
+ }
79
+ }