@hasna/todos 0.11.92 → 0.11.94
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/dist/cli/cloud-router.d.ts +11 -1
- package/dist/cli/cloud-router.d.ts.map +1 -1
- package/dist/cli/commands/task-commands.d.ts.map +1 -1
- package/dist/cli/index.js +289 -210
- package/dist/contracts.js +1 -1
- package/dist/index.js +56 -3
- package/dist/mcp/index.js +231 -4
- package/dist/mcp/tools/task-crud.d.ts.map +1 -1
- package/dist/mcp/tools/task-meta-tools.d.ts.map +1 -1
- package/dist/mcp/tools/task-project-tools.d.ts.map +1 -1
- package/dist/mcp.js +1 -1
- package/dist/registry.js +1 -1
- package/dist/release-provenance.json +5 -5
- package/dist/sdk/v1.generated.d.ts +2 -0
- package/dist/sdk/v1.generated.d.ts.map +1 -1
- package/dist/server/cloud.d.ts +10 -0
- package/dist/server/cloud.d.ts.map +1 -1
- package/dist/server/index.js +237 -4
- package/dist/server/openapi.d.ts +8 -0
- package/dist/server/openapi.d.ts.map +1 -1
- package/dist/server/v1.d.ts.map +1 -1
- package/dist/storage/interfaces.d.ts +10 -0
- package/dist/storage/interfaces.d.ts.map +1 -1
- package/dist/storage/local-sqlite.d.ts.map +1 -1
- package/dist/storage/postgres-adapter.d.ts.map +1 -1
- package/dist/storage/postgres-sync.d.ts +22 -0
- package/dist/storage/postgres-sync.d.ts.map +1 -1
- package/dist/storage.js +55 -2
- package/package.json +1 -1
package/dist/contracts.js
CHANGED
|
@@ -10756,7 +10756,7 @@ var init_tasks = __esm(() => {
|
|
|
10756
10756
|
// package.json
|
|
10757
10757
|
var package_default = {
|
|
10758
10758
|
name: "@hasna/todos",
|
|
10759
|
-
version: "0.11.
|
|
10759
|
+
version: "0.11.94",
|
|
10760
10760
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
10761
10761
|
type: "module",
|
|
10762
10762
|
main: "dist/index.js",
|
package/dist/index.js
CHANGED
|
@@ -10861,7 +10861,7 @@ var init_dispatches = __esm(() => {
|
|
|
10861
10861
|
// package.json
|
|
10862
10862
|
var package_default = {
|
|
10863
10863
|
name: "@hasna/todos",
|
|
10864
|
-
version: "0.11.
|
|
10864
|
+
version: "0.11.94",
|
|
10865
10865
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
10866
10866
|
type: "module",
|
|
10867
10867
|
main: "dist/index.js",
|
|
@@ -23488,6 +23488,27 @@ function clockColumnsForTable(table) {
|
|
|
23488
23488
|
}
|
|
23489
23489
|
|
|
23490
23490
|
// src/storage/local-sqlite.ts
|
|
23491
|
+
var TASK_UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
23492
|
+
function resolveTaskRefLocal(db, ref) {
|
|
23493
|
+
const raw = ref.trim().toLowerCase();
|
|
23494
|
+
if (!raw)
|
|
23495
|
+
return null;
|
|
23496
|
+
if (TASK_UUID_RE.test(raw))
|
|
23497
|
+
return getTask(raw, db);
|
|
23498
|
+
const prefixRows = db.query("SELECT id FROM tasks WHERE LOWER(id) LIKE ? ESCAPE '\\' LIMIT 2").all(`${raw.replace(/[\\%_]/g, (c) => `\\${c}`)}%`);
|
|
23499
|
+
if (prefixRows.length > 1) {
|
|
23500
|
+
throw new Error(`Task reference is ambiguous: "${ref}"`);
|
|
23501
|
+
}
|
|
23502
|
+
if (prefixRows.length === 1)
|
|
23503
|
+
return getTask(prefixRows[0].id, db);
|
|
23504
|
+
const shortIdRows = db.query("SELECT id FROM tasks WHERE LOWER(short_id) = ? LIMIT 2").all(raw);
|
|
23505
|
+
if (shortIdRows.length > 1) {
|
|
23506
|
+
throw new Error(`Task reference is ambiguous: "${ref}"`);
|
|
23507
|
+
}
|
|
23508
|
+
if (shortIdRows.length === 1)
|
|
23509
|
+
return getTask(shortIdRows[0].id, db);
|
|
23510
|
+
return null;
|
|
23511
|
+
}
|
|
23491
23512
|
function createLocalSqliteTodosStorageAdapter(options = {}) {
|
|
23492
23513
|
const database = () => options.db ?? getDatabase();
|
|
23493
23514
|
let adapter;
|
|
@@ -23503,6 +23524,7 @@ function createLocalSqliteTodosStorageAdapter(options = {}) {
|
|
|
23503
23524
|
tasks: {
|
|
23504
23525
|
create: (input) => createTask(input, database()),
|
|
23505
23526
|
get: (id) => getTask(id, database()),
|
|
23527
|
+
resolveRef: (ref) => resolveTaskRefLocal(database(), ref),
|
|
23506
23528
|
list: (filter = {}) => listTasks(filter, database()),
|
|
23507
23529
|
count: (filter = {}) => countTasks(filter, database()),
|
|
23508
23530
|
update: (id, input) => updateTask(id, input, database()),
|
|
@@ -23733,7 +23755,6 @@ function postgresTodosCommentCursorIndexSql(tableName = DEFAULT_TODOS_POSTGRES_S
|
|
|
23733
23755
|
ON ${tableName} (service, (payload->>'task_id'), (payload->>'created_at'), object_id)
|
|
23734
23756
|
WHERE object_type = 'comments' AND deleted_at IS NULL`;
|
|
23735
23757
|
}
|
|
23736
|
-
|
|
23737
23758
|
class PostgresTodosSyncStore {
|
|
23738
23759
|
client;
|
|
23739
23760
|
service;
|
|
@@ -24020,6 +24041,7 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
24020
24041
|
tasks: {
|
|
24021
24042
|
create: (input, context) => createTask2(input, store, context),
|
|
24022
24043
|
get: (id) => store.get("tasks", id),
|
|
24044
|
+
resolveRef: (ref) => store.resolveTaskRef(ref),
|
|
24023
24045
|
list: (filter = {}) => store.listTasks(filter),
|
|
24024
24046
|
count: (filter = {}) => store.countTasks(filter),
|
|
24025
24047
|
update: (id, input) => updateTask2(id, input, store),
|
|
@@ -24272,6 +24294,37 @@ class PostgresJsonRecordStore {
|
|
|
24272
24294
|
const row = result.rows[0];
|
|
24273
24295
|
return row ? payloadRecord2(row.payload) : null;
|
|
24274
24296
|
}
|
|
24297
|
+
async resolveTaskRef(ref) {
|
|
24298
|
+
await this.ensureSchema();
|
|
24299
|
+
const raw = ref.trim().toLowerCase();
|
|
24300
|
+
if (!raw)
|
|
24301
|
+
return null;
|
|
24302
|
+
const lastCode = raw.charCodeAt(raw.length - 1);
|
|
24303
|
+
if (lastCode < 65535) {
|
|
24304
|
+
const upper = raw.slice(0, -1) + String.fromCharCode(lastCode + 1);
|
|
24305
|
+
const prefixResult = await this.options.client.query(`/* todos:resolve-task-ref-prefix */ SELECT payload FROM ${this.tableName}
|
|
24306
|
+
WHERE service = $1 AND object_type = 'tasks' AND deleted_at IS NULL
|
|
24307
|
+
AND object_id COLLATE "C" >= $2 AND object_id COLLATE "C" < $3
|
|
24308
|
+
LIMIT 2`, [this.service, raw, upper]);
|
|
24309
|
+
if (prefixResult.rows.length > 1) {
|
|
24310
|
+
throw new Error(`Task reference is ambiguous: "${ref}"`);
|
|
24311
|
+
}
|
|
24312
|
+
if (prefixResult.rows.length === 1) {
|
|
24313
|
+
return payloadRecord2(prefixResult.rows[0].payload);
|
|
24314
|
+
}
|
|
24315
|
+
}
|
|
24316
|
+
const shortIdResult = await this.options.client.query(`/* todos:resolve-task-ref-short-id */ SELECT payload FROM ${this.tableName}
|
|
24317
|
+
WHERE service = $1 AND object_type = 'tasks' AND deleted_at IS NULL
|
|
24318
|
+
AND LOWER(payload->>'short_id') = $2
|
|
24319
|
+
LIMIT 2`, [this.service, raw]);
|
|
24320
|
+
if (shortIdResult.rows.length > 1) {
|
|
24321
|
+
throw new Error(`Task reference is ambiguous: "${ref}"`);
|
|
24322
|
+
}
|
|
24323
|
+
if (shortIdResult.rows.length === 1) {
|
|
24324
|
+
return payloadRecord2(shortIdResult.rows[0].payload);
|
|
24325
|
+
}
|
|
24326
|
+
return null;
|
|
24327
|
+
}
|
|
24275
24328
|
async countTasks(filter) {
|
|
24276
24329
|
await this.ensureSchema();
|
|
24277
24330
|
const { where, params } = this.buildTaskFilterSql(filter);
|
|
@@ -24693,7 +24746,7 @@ async function updateTask2(id, input, store) {
|
|
|
24693
24746
|
tags: input.tags ?? existing.tags,
|
|
24694
24747
|
metadata: input.metadata ?? existing.metadata,
|
|
24695
24748
|
requires_approval: input.requires_approval ?? existing.requires_approval,
|
|
24696
|
-
task_list_id: input.task_list_id
|
|
24749
|
+
task_list_id: input.task_list_id !== undefined ? input.task_list_id : existing.task_list_id
|
|
24697
24750
|
};
|
|
24698
24751
|
await store.upsert("tasks", task2);
|
|
24699
24752
|
return task2;
|
package/dist/mcp/index.js
CHANGED
|
@@ -16658,6 +16658,7 @@ var init_token_utils = __esm(() => {
|
|
|
16658
16658
|
|
|
16659
16659
|
// src/cli/cloud-router.ts
|
|
16660
16660
|
import { resolveStorageClient } from "@hasna/contracts/client/storage";
|
|
16661
|
+
import { resolve as resolvePath } from "path";
|
|
16661
16662
|
function cleanMode(value) {
|
|
16662
16663
|
const normalized = value?.trim().toLowerCase();
|
|
16663
16664
|
return normalized || null;
|
|
@@ -16940,6 +16941,39 @@ async function cloudListProjects(client) {
|
|
|
16940
16941
|
const envelope = res.raw;
|
|
16941
16942
|
return Array.isArray(envelope?.projects) ? envelope.projects : res.items;
|
|
16942
16943
|
}
|
|
16944
|
+
function cloudProjectSlug(value) {
|
|
16945
|
+
return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
16946
|
+
}
|
|
16947
|
+
function cloudProjectPathBasename(value) {
|
|
16948
|
+
return value.replace(/[\\/]+$/, "").split(/[\\/]/).pop() ?? value;
|
|
16949
|
+
}
|
|
16950
|
+
function uniqueProjectMatches(projects, predicate) {
|
|
16951
|
+
return [...new Map(projects.filter(predicate).map((project) => [project.id, project])).values()];
|
|
16952
|
+
}
|
|
16953
|
+
function resolveCloudProjectRef(projects, ref) {
|
|
16954
|
+
const input = ref.trim();
|
|
16955
|
+
const normalizedRef = input.toLowerCase();
|
|
16956
|
+
const pathLike = input.startsWith(".") || input.includes("/") || input.includes("\\");
|
|
16957
|
+
const normalizedPath = pathLike ? resolvePath(input) : undefined;
|
|
16958
|
+
const slug = cloudProjectSlug(pathLike ? cloudProjectPathBasename(input) : input);
|
|
16959
|
+
const matchGroups = [
|
|
16960
|
+
uniqueProjectMatches(projects, (project) => project.id.toLowerCase() === normalizedRef),
|
|
16961
|
+
uniqueProjectMatches(projects, (project) => project.path === input || normalizedPath !== undefined && resolvePath(project.path) === normalizedPath),
|
|
16962
|
+
uniqueProjectMatches(projects, (project) => project.name.toLowerCase() === normalizedRef),
|
|
16963
|
+
uniqueProjectMatches(projects, (project) => project.task_list_id === input || cloudProjectSlug(project.name) === slug || cloudProjectSlug(cloudProjectPathBasename(project.path)) === slug),
|
|
16964
|
+
uniqueProjectMatches(projects, (project) => project.id.toLowerCase().startsWith(normalizedRef))
|
|
16965
|
+
];
|
|
16966
|
+
for (const matches of matchGroups) {
|
|
16967
|
+
if (matches.length === 1)
|
|
16968
|
+
return matches[0].id;
|
|
16969
|
+
if (matches.length > 1)
|
|
16970
|
+
throw new Error(`Project reference is ambiguous: "${input}"`);
|
|
16971
|
+
}
|
|
16972
|
+
throw new Error(`Project not found: "${input}"`);
|
|
16973
|
+
}
|
|
16974
|
+
async function cloudResolveProjectRef(client, ref) {
|
|
16975
|
+
return resolveCloudProjectRef(await cloudListProjects(client), ref);
|
|
16976
|
+
}
|
|
16943
16977
|
async function cloudAddComment(client, taskId, input) {
|
|
16944
16978
|
const raw = await client.transport.post(`/tasks/${encodeURIComponent(taskId)}/comments`, input);
|
|
16945
16979
|
const comment = raw && typeof raw === "object" && "comment" in raw ? raw.comment : raw;
|
|
@@ -16984,9 +17018,46 @@ async function cloudReleaseAgent(client, idOrName, sessionId) {
|
|
|
16984
17018
|
const env = raw ?? {};
|
|
16985
17019
|
return { agent: env.agent ?? null, released: env.released !== false };
|
|
16986
17020
|
}
|
|
16987
|
-
|
|
17021
|
+
async function cloudListTaskLists(client, projectId) {
|
|
17022
|
+
const query = projectId ? { project_id: projectId } : {};
|
|
17023
|
+
const raw = await requiredRemoteRoute(client, "/v1/task-lists", () => client.transport.get("/task-lists", { query }));
|
|
17024
|
+
const envelope = raw ?? {};
|
|
17025
|
+
if (Array.isArray(envelope.task_lists))
|
|
17026
|
+
return envelope.task_lists;
|
|
17027
|
+
if (Array.isArray(envelope.taskLists))
|
|
17028
|
+
return envelope.taskLists;
|
|
17029
|
+
return Array.isArray(raw) ? raw : [];
|
|
17030
|
+
}
|
|
17031
|
+
async function cloudResolveTaskListRef(client, ref, projectId) {
|
|
17032
|
+
const input = ref.trim();
|
|
17033
|
+
const normalizedIdRef = input.toLowerCase();
|
|
17034
|
+
if (UUID_RE.test(input) && !projectId)
|
|
17035
|
+
return normalizedIdRef;
|
|
17036
|
+
const lists = await cloudListTaskLists(client, projectId);
|
|
17037
|
+
const exactIds = lists.filter((list) => list.id.toLowerCase() === normalizedIdRef);
|
|
17038
|
+
if (exactIds.length === 1)
|
|
17039
|
+
return exactIds[0].id;
|
|
17040
|
+
if (exactIds.length > 1) {
|
|
17041
|
+
throw new Error(`Task list reference is ambiguous: "${input}"`);
|
|
17042
|
+
}
|
|
17043
|
+
const slugs = lists.filter((list) => list.slug === input);
|
|
17044
|
+
if (slugs.length === 1)
|
|
17045
|
+
return slugs[0].id;
|
|
17046
|
+
if (slugs.length > 1) {
|
|
17047
|
+
throw new Error(`Task list reference is ambiguous: "${input}"`);
|
|
17048
|
+
}
|
|
17049
|
+
const prefixes = lists.filter((list) => list.id.toLowerCase().startsWith(normalizedIdRef));
|
|
17050
|
+
if (prefixes.length === 1)
|
|
17051
|
+
return prefixes[0].id;
|
|
17052
|
+
if (prefixes.length > 1) {
|
|
17053
|
+
throw new Error(`Task list reference is ambiguous: "${input}"`);
|
|
17054
|
+
}
|
|
17055
|
+
throw new Error(`Task list not found: "${input}"`);
|
|
17056
|
+
}
|
|
17057
|
+
var UUID_RE, CLOUD_MODES, VALID_STORAGE_MODES, completionCapabilityCache;
|
|
16988
17058
|
var init_cloud_router = __esm(() => {
|
|
16989
17059
|
init_redaction();
|
|
17060
|
+
UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
16990
17061
|
CLOUD_MODES = new Set(["self_hosted", "cloud", "remote", "hybrid"]);
|
|
16991
17062
|
VALID_STORAGE_MODES = new Set(["local", ...CLOUD_MODES]);
|
|
16992
17063
|
completionCapabilityCache = new Map;
|
|
@@ -17273,6 +17344,17 @@ ${task.description}` : null
|
|
|
17273
17344
|
patch.estimated_minutes = estimate;
|
|
17274
17345
|
if (deadline !== undefined)
|
|
17275
17346
|
patch.due_at = deadline;
|
|
17347
|
+
if (typeof patch.project_id === "string" && patch.project_id) {
|
|
17348
|
+
patch.project_id = await cloudResolveProjectRef(cloud, patch.project_id);
|
|
17349
|
+
}
|
|
17350
|
+
if (typeof patch.task_list_id === "string" && patch.task_list_id) {
|
|
17351
|
+
let scope = typeof patch.project_id === "string" ? patch.project_id : undefined;
|
|
17352
|
+
if (!scope) {
|
|
17353
|
+
const current = await cloudGetTask(cloud, task_id2);
|
|
17354
|
+
scope = current?.project_id ?? undefined;
|
|
17355
|
+
}
|
|
17356
|
+
patch.task_list_id = await cloudResolveTaskListRef(cloud, patch.task_list_id, scope);
|
|
17357
|
+
}
|
|
17276
17358
|
if (version2 !== undefined)
|
|
17277
17359
|
patch.version = version2;
|
|
17278
17360
|
const updated = await cloudUpdateTask(cloud, task_id2, patch);
|
|
@@ -23286,6 +23368,63 @@ function registerTaskProjectTools(server, ctx) {
|
|
|
23286
23368
|
}
|
|
23287
23369
|
});
|
|
23288
23370
|
}
|
|
23371
|
+
if (shouldRegisterTool("move_task")) {
|
|
23372
|
+
server.tool("move_task", "Re-parent a task to another project and/or task list, preserving its id and history. " + "A task list is project-scoped, so moving to a new project detaches the old list unless to_list is given.", {
|
|
23373
|
+
task_id: exports_external.string().describe("Task ID"),
|
|
23374
|
+
to_project: exports_external.string().optional().describe("Destination project ID, slug, or path"),
|
|
23375
|
+
to_list: exports_external.string().optional().describe("Destination task list (UUID, or slug resolved in the destination project)"),
|
|
23376
|
+
clear_list: exports_external.boolean().optional().describe("Detach from its task list (set task_list_id to null)"),
|
|
23377
|
+
version: exports_external.number().optional().describe("Expected version for optimistic locking")
|
|
23378
|
+
}, async ({ task_id, to_project, to_list, clear_list, version }) => {
|
|
23379
|
+
try {
|
|
23380
|
+
if (!to_project && !to_list && !clear_list) {
|
|
23381
|
+
throw new Error("Nothing to move: pass to_project, to_list, or clear_list.");
|
|
23382
|
+
}
|
|
23383
|
+
if (to_list && clear_list) {
|
|
23384
|
+
throw new Error("Use either to_list or clear_list, not both.");
|
|
23385
|
+
}
|
|
23386
|
+
const cloud = getTodosCloudClient();
|
|
23387
|
+
if (cloud) {
|
|
23388
|
+
const current2 = await cloudGetTask(cloud, task_id);
|
|
23389
|
+
if (!current2)
|
|
23390
|
+
throw new Error(`Task not found: ${task_id}`);
|
|
23391
|
+
const targetProjectId2 = to_project ? await cloudResolveProjectRef(cloud, to_project) : undefined;
|
|
23392
|
+
const scope = targetProjectId2 ?? current2.project_id ?? undefined;
|
|
23393
|
+
const patch = {};
|
|
23394
|
+
if (targetProjectId2 !== undefined)
|
|
23395
|
+
patch.project_id = targetProjectId2;
|
|
23396
|
+
if (to_list)
|
|
23397
|
+
patch.task_list_id = await cloudResolveTaskListRef(cloud, to_list, scope);
|
|
23398
|
+
else if (clear_list)
|
|
23399
|
+
patch.task_list_id = null;
|
|
23400
|
+
else if (targetProjectId2 && targetProjectId2 !== current2.project_id)
|
|
23401
|
+
patch.task_list_id = null;
|
|
23402
|
+
if (version !== undefined)
|
|
23403
|
+
patch.version = version;
|
|
23404
|
+
const task2 = await cloudUpdateTask(cloud, task_id, patch);
|
|
23405
|
+
return { content: [{ type: "text", text: formatTask(task2) }] };
|
|
23406
|
+
}
|
|
23407
|
+
const resolvedId = resolveId(task_id);
|
|
23408
|
+
const current = getTask(resolvedId);
|
|
23409
|
+
if (!current)
|
|
23410
|
+
throw new Error(`Task not found: ${task_id}`);
|
|
23411
|
+
const targetProjectId = to_project ? resolveId(to_project, "projects") : undefined;
|
|
23412
|
+
const updates = {};
|
|
23413
|
+
if (targetProjectId !== undefined)
|
|
23414
|
+
updates.project_id = targetProjectId;
|
|
23415
|
+
if (to_list)
|
|
23416
|
+
updates.task_list_id = resolveId(to_list, "task_lists");
|
|
23417
|
+
else if (clear_list)
|
|
23418
|
+
updates.task_list_id = null;
|
|
23419
|
+
else if (targetProjectId && targetProjectId !== current.project_id)
|
|
23420
|
+
updates.task_list_id = null;
|
|
23421
|
+
const task = updateWithOptionalVersion(resolvedId, updates, version);
|
|
23422
|
+
return { content: [{ type: "text", text: formatTask(task) }] };
|
|
23423
|
+
} catch (e) {
|
|
23424
|
+
return { content: [{ type: "text", text: formatError(e) }], isError: true };
|
|
23425
|
+
}
|
|
23426
|
+
});
|
|
23427
|
+
}
|
|
23289
23428
|
if (shouldRegisterTool("reschedule_task")) {
|
|
23290
23429
|
server.tool("reschedule_task", "Update a task's deadline.", {
|
|
23291
23430
|
task_id: exports_external.string().describe("Task ID"),
|
|
@@ -27608,6 +27747,7 @@ function registerTaskMetaTools(server, ctx) {
|
|
|
27608
27747
|
complete_task: "complete_task \u2014 Mark task completed. Params: task_id, confidence, completed_at, version",
|
|
27609
27748
|
cancel_task: "cancel_task \u2014 Cancel a task. Params: task_id, version",
|
|
27610
27749
|
reassign_task: "reassign_task \u2014 Change task assignee. Params: task_id, new_assignee, version",
|
|
27750
|
+
move_task: "move_task \u2014 Re-parent a task to another project and/or task list (keeps its id and history). Params: task_id (required), to_project, to_list, clear_list, version",
|
|
27611
27751
|
reschedule_task: "reschedule_task \u2014 Update deadline. Params: task_id, deadline, version",
|
|
27612
27752
|
prioritize_task: "prioritize_task \u2014 Set priority. Params: task_id, priority, version",
|
|
27613
27753
|
search_tasks: "search_tasks \u2014 Full-text search. Params: query, project_id, status, limit",
|
|
@@ -30647,7 +30787,7 @@ var package_default;
|
|
|
30647
30787
|
var init_package = __esm(() => {
|
|
30648
30788
|
package_default = {
|
|
30649
30789
|
name: "@hasna/todos",
|
|
30650
|
-
version: "0.11.
|
|
30790
|
+
version: "0.11.94",
|
|
30651
30791
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
30652
30792
|
type: "module",
|
|
30653
30793
|
main: "dist/index.js",
|
|
@@ -40347,6 +40487,26 @@ var init_sqlite_snapshot = __esm(() => {
|
|
|
40347
40487
|
});
|
|
40348
40488
|
|
|
40349
40489
|
// src/storage/local-sqlite.ts
|
|
40490
|
+
function resolveTaskRefLocal(db, ref) {
|
|
40491
|
+
const raw = ref.trim().toLowerCase();
|
|
40492
|
+
if (!raw)
|
|
40493
|
+
return null;
|
|
40494
|
+
if (TASK_UUID_RE.test(raw))
|
|
40495
|
+
return getTask(raw, db);
|
|
40496
|
+
const prefixRows = db.query("SELECT id FROM tasks WHERE LOWER(id) LIKE ? ESCAPE '\\' LIMIT 2").all(`${raw.replace(/[\\%_]/g, (c) => `\\${c}`)}%`);
|
|
40497
|
+
if (prefixRows.length > 1) {
|
|
40498
|
+
throw new Error(`Task reference is ambiguous: "${ref}"`);
|
|
40499
|
+
}
|
|
40500
|
+
if (prefixRows.length === 1)
|
|
40501
|
+
return getTask(prefixRows[0].id, db);
|
|
40502
|
+
const shortIdRows = db.query("SELECT id FROM tasks WHERE LOWER(short_id) = ? LIMIT 2").all(raw);
|
|
40503
|
+
if (shortIdRows.length > 1) {
|
|
40504
|
+
throw new Error(`Task reference is ambiguous: "${ref}"`);
|
|
40505
|
+
}
|
|
40506
|
+
if (shortIdRows.length === 1)
|
|
40507
|
+
return getTask(shortIdRows[0].id, db);
|
|
40508
|
+
return null;
|
|
40509
|
+
}
|
|
40350
40510
|
function createLocalSqliteTodosStorageAdapter(options = {}) {
|
|
40351
40511
|
const database = () => options.db ?? getDatabase();
|
|
40352
40512
|
let adapter;
|
|
@@ -40362,6 +40522,7 @@ function createLocalSqliteTodosStorageAdapter(options = {}) {
|
|
|
40362
40522
|
tasks: {
|
|
40363
40523
|
create: (input) => createTask(input, database()),
|
|
40364
40524
|
get: (id) => getTask(id, database()),
|
|
40525
|
+
resolveRef: (ref) => resolveTaskRefLocal(database(), ref),
|
|
40365
40526
|
list: (filter = {}) => listTasks(filter, database()),
|
|
40366
40527
|
count: (filter = {}) => countTasks(filter, database()),
|
|
40367
40528
|
update: (id, input) => updateTask(id, input, database()),
|
|
@@ -40450,6 +40611,7 @@ function createLocalSqliteTodosStorageAdapter(options = {}) {
|
|
|
40450
40611
|
};
|
|
40451
40612
|
return adapter;
|
|
40452
40613
|
}
|
|
40614
|
+
var TASK_UUID_RE;
|
|
40453
40615
|
var init_local_sqlite = __esm(() => {
|
|
40454
40616
|
init_tasks();
|
|
40455
40617
|
init_projects();
|
|
@@ -40461,6 +40623,7 @@ var init_local_sqlite = __esm(() => {
|
|
|
40461
40623
|
init_comments();
|
|
40462
40624
|
init_database();
|
|
40463
40625
|
init_sqlite_snapshot();
|
|
40626
|
+
TASK_UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
40464
40627
|
});
|
|
40465
40628
|
|
|
40466
40629
|
// src/storage/postgres-sync.ts
|
|
@@ -40583,6 +40746,18 @@ function postgresTodosCommentCursorIndexSql(tableName = DEFAULT_TODOS_POSTGRES_S
|
|
|
40583
40746
|
ON ${tableName} (service, (payload->>'task_id'), (payload->>'created_at'), object_id)
|
|
40584
40747
|
WHERE object_type = 'comments' AND deleted_at IS NULL`;
|
|
40585
40748
|
}
|
|
40749
|
+
function postgresTodosTaskShortIdIndexSql(tableName = DEFAULT_TODOS_POSTGRES_SYNC_TABLE) {
|
|
40750
|
+
assertSafeIdentifier(tableName);
|
|
40751
|
+
return `CREATE INDEX CONCURRENTLY IF NOT EXISTS ${tableName}_task_short_id_idx
|
|
40752
|
+
ON ${tableName} ((LOWER(payload->>'short_id')))
|
|
40753
|
+
WHERE object_type = 'tasks' AND deleted_at IS NULL`;
|
|
40754
|
+
}
|
|
40755
|
+
function postgresTodosTaskObjectIdIndexSql(tableName = DEFAULT_TODOS_POSTGRES_SYNC_TABLE) {
|
|
40756
|
+
assertSafeIdentifier(tableName);
|
|
40757
|
+
return `CREATE INDEX CONCURRENTLY IF NOT EXISTS ${tableName}_task_object_id_c_idx
|
|
40758
|
+
ON ${tableName} (service, (object_id COLLATE "C"))
|
|
40759
|
+
WHERE object_type = 'tasks' AND deleted_at IS NULL`;
|
|
40760
|
+
}
|
|
40586
40761
|
|
|
40587
40762
|
class PostgresTodosSyncStore {
|
|
40588
40763
|
client;
|
|
@@ -42190,6 +42365,7 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
42190
42365
|
tasks: {
|
|
42191
42366
|
create: (input, context) => createTask3(input, store, context),
|
|
42192
42367
|
get: (id) => store.get("tasks", id),
|
|
42368
|
+
resolveRef: (ref) => store.resolveTaskRef(ref),
|
|
42193
42369
|
list: (filter = {}) => store.listTasks(filter),
|
|
42194
42370
|
count: (filter = {}) => store.countTasks(filter),
|
|
42195
42371
|
update: (id, input) => updateTask2(id, input, store),
|
|
@@ -42442,6 +42618,37 @@ class PostgresJsonRecordStore {
|
|
|
42442
42618
|
const row = result.rows[0];
|
|
42443
42619
|
return row ? payloadRecord2(row.payload) : null;
|
|
42444
42620
|
}
|
|
42621
|
+
async resolveTaskRef(ref) {
|
|
42622
|
+
await this.ensureSchema();
|
|
42623
|
+
const raw = ref.trim().toLowerCase();
|
|
42624
|
+
if (!raw)
|
|
42625
|
+
return null;
|
|
42626
|
+
const lastCode = raw.charCodeAt(raw.length - 1);
|
|
42627
|
+
if (lastCode < 65535) {
|
|
42628
|
+
const upper = raw.slice(0, -1) + String.fromCharCode(lastCode + 1);
|
|
42629
|
+
const prefixResult = await this.options.client.query(`/* todos:resolve-task-ref-prefix */ SELECT payload FROM ${this.tableName}
|
|
42630
|
+
WHERE service = $1 AND object_type = 'tasks' AND deleted_at IS NULL
|
|
42631
|
+
AND object_id COLLATE "C" >= $2 AND object_id COLLATE "C" < $3
|
|
42632
|
+
LIMIT 2`, [this.service, raw, upper]);
|
|
42633
|
+
if (prefixResult.rows.length > 1) {
|
|
42634
|
+
throw new Error(`Task reference is ambiguous: "${ref}"`);
|
|
42635
|
+
}
|
|
42636
|
+
if (prefixResult.rows.length === 1) {
|
|
42637
|
+
return payloadRecord2(prefixResult.rows[0].payload);
|
|
42638
|
+
}
|
|
42639
|
+
}
|
|
42640
|
+
const shortIdResult = await this.options.client.query(`/* todos:resolve-task-ref-short-id */ SELECT payload FROM ${this.tableName}
|
|
42641
|
+
WHERE service = $1 AND object_type = 'tasks' AND deleted_at IS NULL
|
|
42642
|
+
AND LOWER(payload->>'short_id') = $2
|
|
42643
|
+
LIMIT 2`, [this.service, raw]);
|
|
42644
|
+
if (shortIdResult.rows.length > 1) {
|
|
42645
|
+
throw new Error(`Task reference is ambiguous: "${ref}"`);
|
|
42646
|
+
}
|
|
42647
|
+
if (shortIdResult.rows.length === 1) {
|
|
42648
|
+
return payloadRecord2(shortIdResult.rows[0].payload);
|
|
42649
|
+
}
|
|
42650
|
+
return null;
|
|
42651
|
+
}
|
|
42445
42652
|
async countTasks(filter) {
|
|
42446
42653
|
await this.ensureSchema();
|
|
42447
42654
|
const { where, params } = this.buildTaskFilterSql(filter);
|
|
@@ -42863,7 +43070,7 @@ async function updateTask2(id, input, store) {
|
|
|
42863
43070
|
tags: input.tags ?? existing.tags,
|
|
42864
43071
|
metadata: input.metadata ?? existing.metadata,
|
|
42865
43072
|
requires_approval: input.requires_approval ?? existing.requires_approval,
|
|
42866
|
-
task_list_id: input.task_list_id
|
|
43073
|
+
task_list_id: input.task_list_id !== undefined ? input.task_list_id : existing.task_list_id
|
|
42867
43074
|
};
|
|
42868
43075
|
await store.upsert("tasks", task2);
|
|
42869
43076
|
return task2;
|
|
@@ -43631,6 +43838,8 @@ __export(exports_cloud, {
|
|
|
43631
43838
|
getCloudVerifier: () => getCloudVerifier,
|
|
43632
43839
|
getCloudStorageAdapter: () => getCloudStorageAdapter,
|
|
43633
43840
|
getApiKeyStore: () => getApiKeyStore,
|
|
43841
|
+
ensureCloudTaskShortIdIndex: () => ensureCloudTaskShortIdIndex,
|
|
43842
|
+
ensureCloudTaskObjectIdIndex: () => ensureCloudTaskObjectIdIndex,
|
|
43634
43843
|
ensureCloudScopedSlugUniqueIndexes: () => ensureCloudScopedSlugUniqueIndexes,
|
|
43635
43844
|
ensureCloudSchema: () => ensureCloudSchema,
|
|
43636
43845
|
ensureCloudCommentCursorIndex: () => ensureCloudCommentCursorIndex,
|
|
@@ -43718,6 +43927,12 @@ async function ensureCloudSchema() {
|
|
|
43718
43927
|
async function ensureCloudCommentCursorIndex() {
|
|
43719
43928
|
await getClient().query(postgresTodosCommentCursorIndexSql());
|
|
43720
43929
|
}
|
|
43930
|
+
async function ensureCloudTaskShortIdIndex() {
|
|
43931
|
+
await getClient().query(postgresTodosTaskShortIdIndexSql());
|
|
43932
|
+
}
|
|
43933
|
+
async function ensureCloudTaskObjectIdIndex() {
|
|
43934
|
+
await getClient().query(postgresTodosTaskObjectIdIndexSql());
|
|
43935
|
+
}
|
|
43721
43936
|
async function ensureCloudScopedSlugUniqueIndexes() {
|
|
43722
43937
|
await ensurePostgresScopedSlugUniqueIndexes(getClient());
|
|
43723
43938
|
}
|
|
@@ -43800,6 +44015,8 @@ function buildV1OpenApiDocument(version = getPackageVersion()) {
|
|
|
43800
44015
|
status: { type: "string" },
|
|
43801
44016
|
priority: { type: "string" },
|
|
43802
44017
|
assigned_to: { type: "string" },
|
|
44018
|
+
project_id: { type: "string", nullable: true },
|
|
44019
|
+
task_list_id: { type: "string", nullable: true },
|
|
43803
44020
|
version: { type: "number" }
|
|
43804
44021
|
}
|
|
43805
44022
|
},
|
|
@@ -45012,7 +45229,17 @@ async function handleV1Request(req, url, dependencies = {}) {
|
|
|
45012
45229
|
return error(404, `unknown task action: ${action}`);
|
|
45013
45230
|
}
|
|
45014
45231
|
if (method === "GET") {
|
|
45015
|
-
|
|
45232
|
+
let task2 = await store.tasks.get(id);
|
|
45233
|
+
if (!task2 && typeof store.tasks.resolveRef === "function") {
|
|
45234
|
+
try {
|
|
45235
|
+
task2 = await store.tasks.resolveRef(id);
|
|
45236
|
+
} catch (e) {
|
|
45237
|
+
const msg = e.message || "";
|
|
45238
|
+
if (/ambiguous/i.test(msg))
|
|
45239
|
+
return error(409, msg);
|
|
45240
|
+
throw e;
|
|
45241
|
+
}
|
|
45242
|
+
}
|
|
45016
45243
|
return task2 ? json2({ task: task2 }) : error(404, "task not found");
|
|
45017
45244
|
}
|
|
45018
45245
|
if (method === "PATCH" || method === "PUT") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-crud.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-crud.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"task-crud.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-crud.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAejD,UAAU,eAAe;IACvB,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3F;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,QAkW5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-meta-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-meta-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,UAAU,eAAe;IACvB,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACzC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"task-meta-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-meta-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,UAAU,eAAe;IACvB,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACzC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,QAoO5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-project-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-project-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"task-project-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-project-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AA2JjD,UAAU,kBAAkB;IAC1B,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3F;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,QAy7FlF"}
|
package/dist/mcp.js
CHANGED
|
@@ -41,7 +41,7 @@ var __require = import.meta.require;
|
|
|
41
41
|
// package.json
|
|
42
42
|
var package_default = {
|
|
43
43
|
name: "@hasna/todos",
|
|
44
|
-
version: "0.11.
|
|
44
|
+
version: "0.11.94",
|
|
45
45
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
46
46
|
type: "module",
|
|
47
47
|
main: "dist/index.js",
|
package/dist/registry.js
CHANGED
|
@@ -10756,7 +10756,7 @@ var init_tasks = __esm(() => {
|
|
|
10756
10756
|
// package.json
|
|
10757
10757
|
var package_default = {
|
|
10758
10758
|
name: "@hasna/todos",
|
|
10759
|
-
version: "0.11.
|
|
10759
|
+
version: "0.11.94",
|
|
10760
10760
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
10761
10761
|
type: "module",
|
|
10762
10762
|
main: "dist/index.js",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"packageName": "@hasna/todos",
|
|
3
|
-
"packageVersion": "0.11.
|
|
3
|
+
"packageVersion": "0.11.94",
|
|
4
4
|
"repository": "https://github.com/hasna/todos.git",
|
|
5
|
-
"gitCommit": "
|
|
6
|
-
"gitTree": "
|
|
7
|
-
"sourceTreeSha256": "
|
|
8
|
-
"generatedAt": "2026-07-
|
|
5
|
+
"gitCommit": "a98841fdf3dcaae217b6e0a3128f85893f01fab9",
|
|
6
|
+
"gitTree": "6b7899a49b09bccf94a002580d408bac8194fdcd",
|
|
7
|
+
"sourceTreeSha256": "e00fb3da590c92f542c8c06d9fee1eb77293edaa1d17748147008863bd8a8e80",
|
|
8
|
+
"generatedAt": "2026-07-20T11:49:06.000Z"
|
|
9
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v1.generated.d.ts","sourceRoot":"","sources":["../../src/sdk/v1.generated.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"v1.generated.d.ts","sourceRoot":"","sources":["../../src/sdk/v1.generated.ts"],"names":[],"mappings":"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"}
|
package/dist/server/cloud.d.ts
CHANGED
|
@@ -40,6 +40,16 @@ export declare function ensureCloudSchema(): Promise<void>;
|
|
|
40
40
|
* `CREATE INDEX CONCURRENTLY` to execute outside an explicit transaction.
|
|
41
41
|
*/
|
|
42
42
|
export declare function ensureCloudCommentCursorIndex(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Optional latency index for case-insensitive short_id resolution. CONCURRENTLY,
|
|
45
|
+
* outside a transaction — a deployment migration, not request-path schema work.
|
|
46
|
+
*/
|
|
47
|
+
export declare function ensureCloudTaskShortIdIndex(): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Optional byte-order index for the id-prefix branch of short-reference
|
|
50
|
+
* resolution. CONCURRENTLY, outside a transaction — a deployment migration.
|
|
51
|
+
*/
|
|
52
|
+
export declare function ensureCloudTaskObjectIdIndex(): Promise<void>;
|
|
43
53
|
/** Audit duplicates, then establish project/task-list slug invariants concurrently. */
|
|
44
54
|
export declare function ensureCloudScopedSlugUniqueIndexes(): Promise<void>;
|
|
45
55
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/server/cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAwB,MAAM,uBAAuB,CAAC;AAG1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/server/cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAwB,MAAM,uBAAuB,CAAC;AAG1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAQpE,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACpC,MAAM,0CAA0C,CAAC;AAElD,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAOhG;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAO7F;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEhF;AAoBD,4EAA4E;AAC5E,wBAAgB,sBAAsB,IAAI,mBAAmB,CAK5D;AAuBD,wBAAgB,cAAc,IAAI,WAAW,CAI5C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAejD;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAUvD;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CAElE;AAED,uFAAuF;AACvF,wBAAsB,kCAAkC,IAAI,OAAO,CAAC,IAAI,CAAC,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAS9D;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,8BAA8B,CAAC,CAEzC;AAED,iEAAiE;AACjE,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAIlD;AAED,4BAA4B;AAC5B,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAOhD"}
|