@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.
- package/README.md +279 -0
- package/dist/.creezio-src-hash.json +4 -0
- package/dist/ai-task-agent.d.ts +47 -0
- package/dist/ai-task-agent.d.ts.map +1 -0
- package/dist/ai-task-agent.js +558 -0
- package/dist/ai-task-agent.js.map +1 -0
- package/dist/ai-task-runner.d.ts +78 -0
- package/dist/ai-task-runner.d.ts.map +1 -0
- package/dist/ai-task-runner.js +645 -0
- package/dist/ai-task-runner.js.map +1 -0
- package/dist/api-mount.d.ts +4 -0
- package/dist/api-mount.d.ts.map +1 -0
- package/dist/api-mount.js +91 -0
- package/dist/api-mount.js.map +1 -0
- package/dist/assistant-adapter.d.ts +7 -0
- package/dist/assistant-adapter.d.ts.map +1 -0
- package/dist/assistant-adapter.js +96 -0
- package/dist/assistant-adapter.js.map +1 -0
- package/dist/brand/config.d.ts +165 -0
- package/dist/brand/config.d.ts.map +1 -0
- package/dist/brand/config.js +39 -0
- package/dist/brand/config.js.map +1 -0
- package/dist/env-bridge.d.ts +12 -0
- package/dist/env-bridge.d.ts.map +1 -0
- package/dist/env-bridge.js +33 -0
- package/dist/env-bridge.js.map +1 -0
- package/dist/hono-routes.d.ts +8 -0
- package/dist/hono-routes.d.ts.map +1 -0
- package/dist/hono-routes.js +563 -0
- package/dist/hono-routes.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/kanban-service.d.ts +136 -0
- package/dist/kanban-service.d.ts.map +1 -0
- package/dist/kanban-service.js +580 -0
- package/dist/kanban-service.js.map +1 -0
- package/dist/mcp-host-tools.d.ts +59 -0
- package/dist/mcp-host-tools.d.ts.map +1 -0
- package/dist/mcp-host-tools.js +326 -0
- package/dist/mcp-host-tools.js.map +1 -0
- package/dist/mcp-workspace-tools.d.ts +15 -0
- package/dist/mcp-workspace-tools.d.ts.map +1 -0
- package/dist/mcp-workspace-tools.js +338 -0
- package/dist/mcp-workspace-tools.js.map +1 -0
- package/dist/memory-store.d.ts +3 -0
- package/dist/memory-store.d.ts.map +1 -0
- package/dist/memory-store.js +75 -0
- package/dist/memory-store.js.map +1 -0
- package/dist/sqlite-driver.d.ts +13 -0
- package/dist/sqlite-driver.d.ts.map +1 -0
- package/dist/sqlite-driver.js +13 -0
- package/dist/sqlite-driver.js.map +1 -0
- package/dist/sqlite-store.d.ts +15 -0
- package/dist/sqlite-store.d.ts.map +1 -0
- package/dist/sqlite-store.js +113 -0
- package/dist/sqlite-store.js.map +1 -0
- package/dist/task-runs.d.ts +108 -0
- package/dist/task-runs.d.ts.map +1 -0
- package/dist/task-runs.js +427 -0
- package/dist/task-runs.js.map +1 -0
- package/dist/types.d.ts +35 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -0
- package/dist-cjs/ai-task-agent.js +569 -0
- package/dist-cjs/ai-task-agent.js.map +1 -0
- package/dist-cjs/ai-task-runner.js +660 -0
- package/dist-cjs/ai-task-runner.js.map +1 -0
- package/dist-cjs/api-mount.js +94 -0
- package/dist-cjs/api-mount.js.map +1 -0
- package/dist-cjs/assistant-adapter.js +99 -0
- package/dist-cjs/assistant-adapter.js.map +1 -0
- package/dist-cjs/brand/config.js +47 -0
- package/dist-cjs/brand/config.js.map +1 -0
- package/dist-cjs/env-bridge.js +36 -0
- package/dist-cjs/env-bridge.js.map +1 -0
- package/dist-cjs/hono-routes.js +566 -0
- package/dist-cjs/hono-routes.js.map +1 -0
- package/dist-cjs/index.js +117 -0
- package/dist-cjs/index.js.map +1 -0
- package/dist-cjs/kanban-service.js +601 -0
- package/dist-cjs/kanban-service.js.map +1 -0
- package/dist-cjs/mcp-host-tools.js +333 -0
- package/dist-cjs/mcp-host-tools.js.map +1 -0
- package/dist-cjs/mcp-workspace-tools.js +342 -0
- package/dist-cjs/mcp-workspace-tools.js.map +1 -0
- package/dist-cjs/memory-store.js +81 -0
- package/dist-cjs/memory-store.js.map +1 -0
- package/dist-cjs/package.json +3 -0
- package/dist-cjs/sqlite-driver.js +16 -0
- package/dist-cjs/sqlite-driver.js.map +1 -0
- package/dist-cjs/sqlite-store.js +119 -0
- package/dist-cjs/sqlite-store.js.map +1 -0
- package/dist-cjs/task-runs.js +457 -0
- package/dist-cjs/task-runs.js.map +1 -0
- package/dist-cjs/types.js +18 -0
- package/dist-cjs/types.js.map +1 -0
- package/package.json +79 -0
- package/scripts/port-from-tempoflow.mjs +405 -0
- package/ui/ai-activity-panel.tsx +559 -0
- package/ui/index.ts +7 -0
- package/ui/task-detail-sheet.tsx +668 -0
- package/ui/tasks-kanban-client.tsx +647 -0
- package/ui/tasks-types.ts +120 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @creezio/tasks — tâches plateforme (kanban human/ai/hermes + runs + AI).
|
|
3
|
+
* Distinct de PluginTaskRecord (@creezio/product-hub).
|
|
4
|
+
*/
|
|
5
|
+
export { PLATFORM_TASKS_CORE_SQL } from "./types.js";
|
|
6
|
+
export { createMemoryTasksStore } from "./memory-store.js";
|
|
7
|
+
export { createSqliteTasksStore } from "./sqlite-store.js";
|
|
8
|
+
export { openNodeSqliteDatabase } from "./sqlite-driver.js";
|
|
9
|
+
export { createTasksApiMount } from "./api-mount.js";
|
|
10
|
+
export { upsertKitPlatformTask } from "./env-bridge.js";
|
|
11
|
+
export { configureTasksBrand, getTasksBrandConfig, requireTasksBrand, resetTasksBrandForTests, tasksEnv, tasksEnvNumber, } from "./brand/config.js";
|
|
12
|
+
export { createTask, deleteTask, EXECUTOR_KINDS, getTask, getTaskByHermesId, getTaskByIdempotency, getTaskDetail, hermesToTaskStatus, KANBAN_COLUMNS, listRecurringAiTasks, listSubtasks, listTasks, setTaskNextRun, syncHermesTasks, TASK_STATUSES, tasksByColumn, tasksReady, tasksRecurrenceReady, taskToHermesStatus, updateTask, updateTaskLocal, } from "./kanban-service.js";
|
|
13
|
+
export { appendAgentLog, bumpRunStepCount, cancelTaskRun, claimNextQueuedRun, clearHitlResponse, countRunningRuns, countRunsCreatedToday, enqueueTaskRun, finishTaskRun, getActiveRunForAssignee, getRunningRun, getTaskRun, isHitlPaused, listAgentLogs, listRunningRuns, listTaskRunsForTask, maxConcurrentAiRuns, openDetachedHitlRun, purgeAgentLogsOlderThan, resumeHitlRun, RUN_STATUSES, setHitlPrompt, subscribeAgentLogs, subscribeTaskRuns, sumUsageTokensToday, taskRunsHitlReady, taskRunsReady, taskRunsTokensReady, } from "./task-runs.js";
|
|
14
|
+
export { aiTaskMaxSteps, aiTaskMaxTokens, aiTaskModel, aiTaskTimeoutMs, aiWebHostAllowed, buildAiTaskTools, hasAiAgentModel, runAiTaskAgent, setAiTaskModelCaller, } from "./ai-task-agent.js";
|
|
15
|
+
export { aiRunnerEnabled, checkAiRunQuotas, ensureAiRunnerLoop, enqueueAiRunForTask, getAiActivityForUser, hostBridgeReady, parseRecurringSchedule, processAiTaskQueue, processRecurringAiTasks, recoverInterruptedRuns, resolveHostTargetUserId, retryFailedRun, stopAiRunnerLoop, } from "./ai-task-runner.js";
|
|
16
|
+
/* --- HTTP + assistant --- */
|
|
17
|
+
export { createTasksHonoRoutes } from "./hono-routes.js";
|
|
18
|
+
export { createAssistantTasksAdapter } from "./assistant-adapter.js";
|
|
19
|
+
export { CREEZIO_AI_TASK_HOST_MCP_TOOL_NAMES, CREEZIO_LIST_TASKS_MCP_TOOL_NAME, aiTaskToolJsonSchema, createAiTaskHostMcpTools, parseAiTaskToolInput, } from "./mcp-host-tools.js";
|
|
20
|
+
export { CREEZIO_AI_WORKSPACE_MCP_TOOL_NAMES, createAiWorkspaceMcpTools, } from "./mcp-workspace-tools.js";
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAK3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAoBxD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,QAAQ,EACR,cAAc,GACf,MAAM,mBAAmB,CAAC;AAY3B,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,OAAO,EACP,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,8BAA8B;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAUrE,OAAO,EACL,mCAAmC,EACnC,gCAAgC,EAChC,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EACL,mCAAmC,EACnC,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { type HermesKanbanStatus, type HermesKanbanTask, type HermesKanbanTaskDetail } from "@creezio/assistant";
|
|
2
|
+
import { type TasksUser } from "./brand/config.js";
|
|
3
|
+
export declare const TASK_STATUSES: readonly ["backlog", "in_progress", "blocked", "done", "cancelled"];
|
|
4
|
+
export type TaskStatus = (typeof TASK_STATUSES)[number];
|
|
5
|
+
export declare const EXECUTOR_KINDS: readonly ["human", "ai", "hermes"];
|
|
6
|
+
export type ExecutorKind = (typeof EXECUTOR_KINDS)[number];
|
|
7
|
+
export declare const KANBAN_COLUMNS: readonly [{
|
|
8
|
+
readonly id: "backlog";
|
|
9
|
+
readonly label: "Backlog";
|
|
10
|
+
}, {
|
|
11
|
+
readonly id: "in_progress";
|
|
12
|
+
readonly label: "En cours";
|
|
13
|
+
}, {
|
|
14
|
+
readonly id: "blocked";
|
|
15
|
+
readonly label: "Bloqué";
|
|
16
|
+
}, {
|
|
17
|
+
readonly id: "done";
|
|
18
|
+
readonly label: "Terminé";
|
|
19
|
+
}];
|
|
20
|
+
export type TaskSource = "assistant" | "ui" | "sync" | "hermes";
|
|
21
|
+
export type TaskRow = {
|
|
22
|
+
id: string;
|
|
23
|
+
title: string;
|
|
24
|
+
body: string;
|
|
25
|
+
status: TaskStatus;
|
|
26
|
+
position: number;
|
|
27
|
+
executor_kind: ExecutorKind;
|
|
28
|
+
assignee_user_id: string | null;
|
|
29
|
+
parent_task_id: string | null;
|
|
30
|
+
created_by: string | null;
|
|
31
|
+
priority: number;
|
|
32
|
+
hermes_task_id: string | null;
|
|
33
|
+
hermes_cron_id: string | null;
|
|
34
|
+
hermes_status: string | null;
|
|
35
|
+
recurring_schedule: string | null;
|
|
36
|
+
source: TaskSource;
|
|
37
|
+
conversation_id: string | null;
|
|
38
|
+
idempotency_key: string | null;
|
|
39
|
+
result: string | null;
|
|
40
|
+
last_synced_at: string | null;
|
|
41
|
+
/** Prochaine occurrence d'une tâche IA récurrente (migration 031). */
|
|
42
|
+
next_run_at?: string | null;
|
|
43
|
+
created_at: string;
|
|
44
|
+
updated_at: string;
|
|
45
|
+
};
|
|
46
|
+
export type Task = TaskRow & {
|
|
47
|
+
assignee: TasksUser | null;
|
|
48
|
+
};
|
|
49
|
+
/** Statut Hermes (9 états) → statut kanban unifié (5 états). */
|
|
50
|
+
export declare function hermesToTaskStatus(status: string): TaskStatus;
|
|
51
|
+
/** Statut kanban unifié → statut Hermes (pour pousser un drag & drop). */
|
|
52
|
+
export declare function taskToHermesStatus(status: TaskStatus): HermesKanbanStatus;
|
|
53
|
+
export declare const tasksReady: () => boolean;
|
|
54
|
+
export declare function listTasks(opts?: {
|
|
55
|
+
status?: string;
|
|
56
|
+
assigneeUserId?: string;
|
|
57
|
+
executor?: string;
|
|
58
|
+
parentTaskId?: string;
|
|
59
|
+
includeCancelled?: boolean;
|
|
60
|
+
}): Task[];
|
|
61
|
+
export declare const tasksByColumn: (tasks: Task[]) => {
|
|
62
|
+
backlog: Task[];
|
|
63
|
+
in_progress: Task[];
|
|
64
|
+
blocked: Task[];
|
|
65
|
+
done: Task[];
|
|
66
|
+
};
|
|
67
|
+
export declare const getTask: (id: string) => Task | null;
|
|
68
|
+
export declare const getTaskByHermesId: (hermesId: string) => Task | null;
|
|
69
|
+
export declare const getTaskByIdempotency: (key: string) => Task | null;
|
|
70
|
+
export declare const listSubtasks: (parentTaskId: string) => Task[];
|
|
71
|
+
export type CreateTaskInput = {
|
|
72
|
+
title: string;
|
|
73
|
+
body?: string;
|
|
74
|
+
status?: TaskStatus;
|
|
75
|
+
executorKind?: ExecutorKind;
|
|
76
|
+
assigneeUserId?: string | null;
|
|
77
|
+
parentTaskId?: string | null;
|
|
78
|
+
createdBy?: string | null;
|
|
79
|
+
priority?: number;
|
|
80
|
+
source?: TaskSource;
|
|
81
|
+
conversationId?: string | null;
|
|
82
|
+
idempotencyKey?: string | null;
|
|
83
|
+
/** Hermes uniquement — récurrence cron (ex. `every 1d`, `0 9 * * 1`). */
|
|
84
|
+
recurringSchedule?: string | null;
|
|
85
|
+
/** Hermes uniquement — dispatch immédiat (défaut true). */
|
|
86
|
+
dispatch?: boolean;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Crée une tâche. Pour executor=hermes : pousse la carte Hermes ; si Hermes
|
|
90
|
+
* est indisponible la tâche reste `blocked` et sera re-poussée à la synchro.
|
|
91
|
+
*/
|
|
92
|
+
export declare function createTask(input: CreateTaskInput): Promise<{
|
|
93
|
+
task: Task;
|
|
94
|
+
hermes?: HermesKanbanTask;
|
|
95
|
+
warning?: string;
|
|
96
|
+
}>;
|
|
97
|
+
export type UpdateTaskInput = {
|
|
98
|
+
title?: string;
|
|
99
|
+
body?: string;
|
|
100
|
+
status?: TaskStatus;
|
|
101
|
+
assigneeUserId?: string | null;
|
|
102
|
+
priority?: number;
|
|
103
|
+
result?: string;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Met à jour une tâche ; si elle est liée à une carte Hermes, propage le
|
|
107
|
+
* changement (statut traduit) avant l'écriture locale.
|
|
108
|
+
*/
|
|
109
|
+
export declare function updateTask(id: string, patch: UpdateTaskInput): Promise<Task>;
|
|
110
|
+
/** Mise à jour locale directe (runner / interne — pas de propagation Hermes). */
|
|
111
|
+
export declare function updateTaskLocal(id: string, patch: Partial<Pick<TaskRow, "status" | "result">>): Task | null;
|
|
112
|
+
/** Colonne next_run_at présente (migration 031 — récurrence IA). */
|
|
113
|
+
export declare function tasksRecurrenceReady(): boolean;
|
|
114
|
+
/** Tâches IA récurrentes actives (pilotées par le tick du runner). */
|
|
115
|
+
export declare function listRecurringAiTasks(): Task[];
|
|
116
|
+
export declare function setTaskNextRun(id: string, nextRunAt: string | null): void;
|
|
117
|
+
export declare function deleteTask(id: string): Promise<boolean>;
|
|
118
|
+
/**
|
|
119
|
+
* Synchronisation Hermes ↔ tasks :
|
|
120
|
+
* 1. tire le board WebUI → met à jour les tâches liées (statut mappé, résultat) ;
|
|
121
|
+
* 2. importe les cartes inconnues (source `hermes`) ;
|
|
122
|
+
* 3. re-pousse les tâches executor=hermes jamais liées (création hors ligne).
|
|
123
|
+
*/
|
|
124
|
+
export declare function syncHermesTasks(): Promise<{
|
|
125
|
+
updated: number;
|
|
126
|
+
created: number;
|
|
127
|
+
pushed: number;
|
|
128
|
+
errors: string[];
|
|
129
|
+
}>;
|
|
130
|
+
/** Détail tâche + rafraîchissement Hermes si liée. */
|
|
131
|
+
export declare function getTaskDetail(id: string): Promise<{
|
|
132
|
+
task: Task;
|
|
133
|
+
hermes: HermesKanbanTaskDetail | null;
|
|
134
|
+
hermesError: string | null;
|
|
135
|
+
} | null>;
|
|
136
|
+
//# sourceMappingURL=kanban-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-service.d.ts","sourceRoot":"","sources":["../src/kanban-service.ts"],"names":[],"mappings":"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"}
|