@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,326 @@
1
+ /**
2
+ * D-P18 — tools MCP host-only pour workflows tâches IA.
3
+ * Partagé TF/CV (ex-jumeaux hono-host-tools). Métier marque reste hors kit.
4
+ *
5
+ * Prérequis : `configureTasksBrand()` déjà appelé (users + runtime kanban).
6
+ */
7
+ import { z } from "zod";
8
+ import { requireTasksBrand } from "./brand/config.js";
9
+ import { createTask, getTask, listTasks, updateTask, } from "./kanban-service.js";
10
+ import { enqueueAiRunForTask, ensureAiRunnerLoop, getAiActivityForUser, hostBridgeReady, parseRecurringSchedule, processAiTaskQueue, } from "./ai-task-runner.js";
11
+ import { getTaskRun, listAgentLogs, listTaskRunsForTask, resumeHitlRun, } from "./task-runs.js";
12
+ export const CREEZIO_AI_TASK_HOST_MCP_TOOL_NAMES = [
13
+ "list_ai_collaborators",
14
+ "create_ai_task",
15
+ "get_ai_task",
16
+ "get_ai_run_logs",
17
+ "answer_ai_question",
18
+ ];
19
+ /** Optionnel (Certivan) — liste kanban générique. */
20
+ export const CREEZIO_LIST_TASKS_MCP_TOOL_NAME = "list_tasks";
21
+ /**
22
+ * JSON Schema d'un `inputSchema` de tool host (zod v4 `toJSONSchema`).
23
+ * Exposé ici pour que les intégrateurs (façade MCP kit, marques) n'aient pas
24
+ * besoin d'importer la même instance zod que @creezio/tasks.
25
+ */
26
+ export function aiTaskToolJsonSchema(shape) {
27
+ try {
28
+ const schema = z.toJSONSchema(z.object(shape));
29
+ delete schema["$schema"];
30
+ return schema;
31
+ }
32
+ catch {
33
+ return { type: "object" };
34
+ }
35
+ }
36
+ /** Valide/normalise des arguments contre un `inputSchema` de tool host. */
37
+ export function parseAiTaskToolInput(shape, args) {
38
+ if (!Object.keys(shape).length)
39
+ return { ok: true, input: args || {} };
40
+ const parsed = z.object(shape).safeParse(args || {});
41
+ if (!parsed.success) {
42
+ return {
43
+ ok: false,
44
+ error: `invalid_arguments: ${parsed.error.issues
45
+ .map((i) => `${i.path.join(".") || "(racine)"} ${i.message}`)
46
+ .join(" ; ")}`,
47
+ };
48
+ }
49
+ return { ok: true, input: parsed.data };
50
+ }
51
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
52
+ function jsonResult(data) {
53
+ return {
54
+ content: [{ type: "text", text: JSON.stringify(data, null, 1) }],
55
+ };
56
+ }
57
+ function errorResult(message) {
58
+ return {
59
+ content: [
60
+ {
61
+ type: "text",
62
+ text: JSON.stringify({ error: message }),
63
+ },
64
+ ],
65
+ isError: true,
66
+ };
67
+ }
68
+ /**
69
+ * Gate acteur des tools host « qui agissent » : l'acteur doit être l'owner.
70
+ *
71
+ * Décision H1 (« Hermes cerveau unique ») : la clé CRM service Hermes
72
+ * (provisionnée par `ensure-crm-key-db`, `user_id NULL` + scopes `full`) est
73
+ * MAPPÉE SUR L'OWNER par le résolveur Bearer de la façade MCP
74
+ * (`createApiKeyBearerActorResolver`, @creezio/app-runtime) — même niveau de
75
+ * confiance que l'API REST CRM complète qu'elle ouvre déjà (parité TF2 gold).
76
+ * Pas de scope `tasks:run` dédié : `normalizeScopes` côté auth ne conserve
77
+ * que `full`/`crm:*`, et une clé restreinte (`crm:read`/`crm:write`) n'est
78
+ * PAS mappée owner → refusée ici (fail-closed).
79
+ */
80
+ export function actorIsOwner(actorId) {
81
+ if (!actorId)
82
+ return false;
83
+ const { users } = requireTasksBrand();
84
+ const actor = users.getById(actorId);
85
+ const owner = users.getOwner();
86
+ return Boolean(actor && owner && actor.role === "owner" && actor.id === owner.id);
87
+ }
88
+ /**
89
+ * Enregistre les tools MCP host tâches IA (SoT kit).
90
+ * Retourne la liste des noms enregistrés.
91
+ */
92
+ export function createAiTaskHostMcpTools(options) {
93
+ const { registerTool, getActorUserId, includeListTasks = false } = options;
94
+ const registered = [];
95
+ if (includeListTasks) {
96
+ registerTool(CREEZIO_LIST_TASKS_MCP_TOOL_NAME, {
97
+ title: "Lister les tâches",
98
+ description: "Liste les tâches du kanban CRM (humaines et IA), avec filtres optionnels.",
99
+ inputSchema: {
100
+ status: z.string().optional(),
101
+ assignee_user_id: z.string().optional(),
102
+ executor: z.string().optional(),
103
+ include_cancelled: z.boolean().optional(),
104
+ },
105
+ }, async (input) => {
106
+ const tasks = listTasks({
107
+ status: input.status,
108
+ assigneeUserId: input.assignee_user_id,
109
+ executor: input.executor,
110
+ includeCancelled: Boolean(input.include_cancelled),
111
+ }).map((task) => ({
112
+ id: task.id,
113
+ title: task.title,
114
+ status: task.status,
115
+ executor_kind: task.executor_kind,
116
+ assignee_user_id: task.assignee_user_id,
117
+ priority: task.priority,
118
+ updated_at: task.updated_at,
119
+ created_at: task.created_at,
120
+ }));
121
+ return jsonResult({ tasks, total: tasks.length });
122
+ });
123
+ registered.push(CREEZIO_LIST_TASKS_MCP_TOOL_NAME);
124
+ }
125
+ registerTool("list_ai_collaborators", {
126
+ title: "Lister les collaborateurs IA",
127
+ description: "Liste les collaborateurs IA actifs. À appeler avant create_ai_task.",
128
+ inputSchema: {},
129
+ }, async () => {
130
+ const { users } = requireTasksBrand();
131
+ const ais = users.list().filter((u) => u.kind === "ai" && u.active);
132
+ const collaborators = ais.map((u) => {
133
+ const { run, task } = getAiActivityForUser(u.id);
134
+ return {
135
+ id: u.id,
136
+ username: u.username,
137
+ permissions: u.permissions,
138
+ busy: Boolean(run),
139
+ current_task: task
140
+ ? { id: task.id, title: task.title, status: task.status }
141
+ : null,
142
+ };
143
+ });
144
+ return jsonResult({
145
+ collaborators,
146
+ host_bridge_ready: hostBridgeReady(),
147
+ });
148
+ });
149
+ registered.push("list_ai_collaborators");
150
+ registerTool("create_ai_task", {
151
+ title: "Créer une tâche pour un collaborateur IA",
152
+ description: "Crée (et lance par défaut) une tâche exécutée par un collaborateur IA. Réservé owner.",
153
+ inputSchema: {
154
+ title: z.string().min(1).max(300).describe("Titre court de la tâche"),
155
+ brief: z.string().max(8000).optional(),
156
+ assignee: z.string().optional(),
157
+ launch: z.boolean().default(true),
158
+ require_confirmation: z.boolean().optional(),
159
+ recurring: z.string().max(60).optional(),
160
+ },
161
+ }, async (input) => {
162
+ const actorId = getActorUserId();
163
+ if (!actorIsOwner(actorId)) {
164
+ return errorResult("Réservé au compte principal (owner)");
165
+ }
166
+ const { users } = requireTasksBrand();
167
+ const ais = users.list().filter((u) => u.kind === "ai" && u.active);
168
+ if (ais.length === 0)
169
+ return errorResult("Aucun collaborateur IA actif");
170
+ let assignee = ais[0];
171
+ if (input.assignee) {
172
+ const wanted = String(input.assignee).trim();
173
+ const found = ais.find((u) => u.id === wanted ||
174
+ u.username.toLowerCase() === wanted.toLowerCase());
175
+ if (!found) {
176
+ return errorResult(`Collaborateur IA « ${wanted} » introuvable ou inactif`);
177
+ }
178
+ assignee = found;
179
+ }
180
+ let brief = typeof input.brief === "string" ? input.brief : "";
181
+ if (input.require_confirmation && !/\[\[(confirm|hitl)\]\]/i.test(brief)) {
182
+ brief = `${brief}\n\n[[confirm]]`.trim();
183
+ }
184
+ const recurring = typeof input.recurring === "string" ? input.recurring.trim() : "";
185
+ if (recurring && !parseRecurringSchedule(recurring)) {
186
+ return errorResult(`Récurrence « ${recurring} » invalide`);
187
+ }
188
+ try {
189
+ const { task } = await createTask({
190
+ title: input.title,
191
+ body: brief,
192
+ executorKind: "ai",
193
+ assigneeUserId: assignee.id,
194
+ createdBy: actorId,
195
+ source: "assistant",
196
+ recurringSchedule: recurring || null,
197
+ });
198
+ let run = null;
199
+ if (input.launch !== false) {
200
+ if (task.status === "backlog") {
201
+ await updateTask(task.id, { status: "in_progress" });
202
+ }
203
+ run = enqueueAiRunForTask(task.id);
204
+ ensureAiRunnerLoop();
205
+ void processAiTaskQueue();
206
+ }
207
+ const bridgeReady = hostBridgeReady();
208
+ return jsonResult({
209
+ ok: true,
210
+ task_id: task.id,
211
+ run_id: run?.id || null,
212
+ status: getTask(task.id)?.status || task.status,
213
+ assignee: { id: assignee.id, username: assignee.username },
214
+ host_bridge_ready: bridgeReady,
215
+ warning: bridgeReady
216
+ ? null
217
+ : "Aucun hôte desktop connecté pour l'instant",
218
+ hint: "Appelle get_ai_task(task_id) toutes les 15-30 s jusqu'à status done/failed.",
219
+ });
220
+ }
221
+ catch (error) {
222
+ return errorResult(error instanceof Error ? error.message : String(error));
223
+ }
224
+ });
225
+ registered.push("create_ai_task");
226
+ registerTool("get_ai_task", {
227
+ title: "État et résultat d'une tâche IA",
228
+ description: "Poll jusqu'à done/failed. wait_seconds ≤ 20.",
229
+ inputSchema: {
230
+ task_id: z.string().min(1),
231
+ wait_seconds: z.coerce.number().int().min(0).max(20).default(0),
232
+ logs_after_seq: z.coerce.number().int().min(0).optional(),
233
+ },
234
+ }, async (input) => {
235
+ const task = getTask(input.task_id);
236
+ if (!task)
237
+ return errorResult(`tâche ${input.task_id} introuvable`);
238
+ const runs = listTaskRunsForTask(task.id);
239
+ let run = runs[0] ?? null;
240
+ const deadline = Date.now() + (input.wait_seconds || 0) * 1000;
241
+ const initialStatus = run?.status || null;
242
+ while (run &&
243
+ (run.status === "queued" || run.status === "running") &&
244
+ run.status === initialStatus &&
245
+ Date.now() < deadline) {
246
+ await sleep(1000);
247
+ run = getTaskRun(run.id);
248
+ const fresh = getTask(task.id);
249
+ if (fresh && fresh.status === "done")
250
+ break;
251
+ }
252
+ const fresh = getTask(task.id) || task;
253
+ const afterSeq = input.logs_after_seq ?? 0;
254
+ const logs = run
255
+ ? listAgentLogs(run.id, afterSeq, 30).map((l) => ({
256
+ seq: l.seq,
257
+ level: l.level,
258
+ event_type: l.event_type,
259
+ message: l.message.slice(0, 500),
260
+ }))
261
+ : [];
262
+ return jsonResult({
263
+ task_id: fresh.id,
264
+ title: fresh.title,
265
+ status: fresh.status,
266
+ result: fresh.result || null,
267
+ run: run
268
+ ? {
269
+ id: run.id,
270
+ status: run.status,
271
+ last_error: run.last_error,
272
+ step_count: run.step_count,
273
+ hitl_prompt: run.hitl_prompt,
274
+ }
275
+ : null,
276
+ logs,
277
+ awaiting_human: Boolean(run?.hitl_prompt),
278
+ });
279
+ });
280
+ registered.push("get_ai_task");
281
+ registerTool("get_ai_run_logs", {
282
+ title: "Logs d'un run IA",
283
+ description: "Journal détaillé d'un run IA.",
284
+ inputSchema: {
285
+ run_id: z.string().min(1),
286
+ after_seq: z.coerce.number().int().min(0).default(0),
287
+ },
288
+ }, async (input) => {
289
+ const run = getTaskRun(input.run_id);
290
+ if (!run)
291
+ return errorResult(`run ${input.run_id} introuvable`);
292
+ const logs = listAgentLogs(run.id, input.after_seq || 0, 100).map((l) => ({
293
+ seq: l.seq,
294
+ level: l.level,
295
+ event_type: l.event_type,
296
+ message: l.message.slice(0, 800),
297
+ }));
298
+ const last = logs[logs.length - 1];
299
+ return jsonResult({
300
+ run_id: run.id,
301
+ status: run.status,
302
+ logs,
303
+ last_seq: last ? last.seq : input.after_seq || 0,
304
+ });
305
+ });
306
+ registered.push("get_ai_run_logs");
307
+ registerTool("answer_ai_question", {
308
+ title: "Répondre à une question d'un collaborateur IA (HITL)",
309
+ description: "Reprend un run en pause HITL. Réservé owner.",
310
+ inputSchema: {
311
+ run_id: z.string().min(1),
312
+ response: z.string().min(1).max(2000),
313
+ },
314
+ }, async (input) => {
315
+ if (!actorIsOwner(getActorUserId())) {
316
+ return errorResult("Réservé au compte principal (owner)");
317
+ }
318
+ const run = resumeHitlRun(input.run_id, input.response);
319
+ if (!run)
320
+ return errorResult("Aucune pause HITL active sur ce run");
321
+ return jsonResult({ ok: true, run_id: run.id, status: run.status });
322
+ });
323
+ registered.push("answer_ai_question");
324
+ return registered;
325
+ }
326
+ //# sourceMappingURL=mcp-host-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-host-tools.js","sourceRoot":"","sources":["../src/mcp-host-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type AiTaskHostMcpRegisterFn } from "./mcp-host-tools.js";
2
+ export declare const CREEZIO_AI_WORKSPACE_MCP_TOOL_NAMES: readonly ["workspace.open_tab", "workspace.list_tabs", "workspace.web_list_targets", "workspace.web_click", "workspace.web_type", "workspace.web_scroll", "workspace.web_read", "workspace.web_screenshot", "platform.ask_human", "platform.get_human_answer"];
3
+ export type CreezioAiWorkspaceMcpToolName = (typeof CREEZIO_AI_WORKSPACE_MCP_TOOL_NAMES)[number];
4
+ export type CreateAiWorkspaceMcpToolsOptions = {
5
+ /** Enregistrement (même contrat que createAiTaskHostMcpTools). */
6
+ registerTool: AiTaskHostMcpRegisterFn;
7
+ /** `userId` de l'acteur du call MCP (Bearer / API key). */
8
+ getActorUserId: () => string | null | undefined;
9
+ };
10
+ /**
11
+ * Enregistre les tools MCP workspace + HITL async (SoT kit).
12
+ * Retourne les noms enregistrés.
13
+ */
14
+ export declare function createAiWorkspaceMcpTools(options: CreateAiWorkspaceMcpToolsOptions): readonly string[];
15
+ //# sourceMappingURL=mcp-workspace-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-workspace-tools.d.ts","sourceRoot":"","sources":["../src/mcp-workspace-tools.ts"],"names":[],"mappings":"AA8BA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,mCAAmC,gQAWtC,CAAC;AAEX,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,MAAM,MAAM,gCAAgC,GAAG;IAC7C,kEAAkE;IAClE,YAAY,EAAE,uBAAuB,CAAC;IACtC,2DAA2D;IAC3D,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACjD,CAAC;AAqFF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC,SAAS,MAAM,EAAE,CA4RnB"}