@hasna/todos 0.9.25 → 0.9.26

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 (2) hide show
  1. package/dist/mcp/index.js +11 -9
  2. package/package.json +1 -1
package/dist/mcp/index.js CHANGED
@@ -6093,6 +6093,12 @@ function resolveTaskListId(agent, explicit) {
6093
6093
  return process.env[key] || process.env["TODOS_TASK_LIST_ID"] || getAgentTaskListId(normalized) || "default";
6094
6094
  }
6095
6095
  function formatTask(task) {
6096
+ const id = task.short_id || task.id.slice(0, 8);
6097
+ const assigned = task.assigned_to ? ` -> ${task.assigned_to}` : "";
6098
+ const lock = task.locked_by ? ` [locked:${task.locked_by}]` : "";
6099
+ return `${id} ${task.status.padEnd(11)} ${task.priority.padEnd(8)} ${task.title}${assigned}${lock}`;
6100
+ }
6101
+ function formatTaskDetail(task) {
6096
6102
  const parts = [
6097
6103
  `ID: ${task.id}`,
6098
6104
  `Title: ${task.title}`,
@@ -6151,8 +6157,7 @@ server.tool("create_task", "Create a new task", {
6151
6157
  if (resolved.task_list_id)
6152
6158
  resolved.task_list_id = resolveId(resolved.task_list_id, "task_lists");
6153
6159
  const task = createTask(resolved);
6154
- return { content: [{ type: "text", text: `Task created:
6155
- ${formatTask(task)}` }] };
6160
+ return { content: [{ type: "text", text: `created: ${formatTask(task)}` }] };
6156
6161
  } catch (e) {
6157
6162
  return { content: [{ type: "text", text: formatError(e) }], isError: true };
6158
6163
  }
@@ -6204,7 +6209,7 @@ server.tool("get_task", "Get full task details with relations", {
6204
6209
  const task = getTaskWithRelations(resolvedId);
6205
6210
  if (!task)
6206
6211
  return { content: [{ type: "text", text: `Task not found: ${id}` }], isError: true };
6207
- const parts = [formatTask(task)];
6212
+ const parts = [formatTaskDetail(task)];
6208
6213
  if (task.subtasks.length > 0) {
6209
6214
  parts.push(`
6210
6215
  Subtasks (${task.subtasks.length}):`);
@@ -6260,8 +6265,7 @@ server.tool("update_task", "Update task fields. Version required for optimistic
6260
6265
  try {
6261
6266
  const resolvedId = resolveId(id);
6262
6267
  const task = updateTask(resolvedId, rest);
6263
- return { content: [{ type: "text", text: `Task updated:
6264
- ${formatTask(task)}` }] };
6268
+ return { content: [{ type: "text", text: `updated: ${formatTask(task)}` }] };
6265
6269
  } catch (e) {
6266
6270
  return { content: [{ type: "text", text: formatError(e) }], isError: true };
6267
6271
  }
@@ -6289,8 +6293,7 @@ server.tool("start_task", "Claim, lock, and set task status to in_progress.", {
6289
6293
  try {
6290
6294
  const resolvedId = resolveId(id);
6291
6295
  const task = startTask(resolvedId, agent_id);
6292
- return { content: [{ type: "text", text: `Task started:
6293
- ${formatTask(task)}` }] };
6296
+ return { content: [{ type: "text", text: `started: ${formatTask(task)}` }] };
6294
6297
  } catch (e) {
6295
6298
  return { content: [{ type: "text", text: formatError(e) }], isError: true };
6296
6299
  }
@@ -6302,8 +6305,7 @@ server.tool("complete_task", "Mark task completed and release lock.", {
6302
6305
  try {
6303
6306
  const resolvedId = resolveId(id);
6304
6307
  const task = completeTask(resolvedId, agent_id);
6305
- return { content: [{ type: "text", text: `Task completed:
6306
- ${formatTask(task)}` }] };
6308
+ return { content: [{ type: "text", text: `completed: ${formatTask(task)}` }] };
6307
6309
  } catch (e) {
6308
6310
  return { content: [{ type: "text", text: formatError(e) }], isError: true };
6309
6311
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/todos",
3
- "version": "0.9.25",
3
+ "version": "0.9.26",
4
4
  "description": "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",