@hasna/todos 0.11.28 → 0.11.30

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 (69) hide show
  1. package/dist/cli/index.js +26047 -27776
  2. package/dist/db/agents.d.ts.map +1 -1
  3. package/dist/db/checkpoints.d.ts +55 -0
  4. package/dist/db/checkpoints.d.ts.map +1 -0
  5. package/dist/db/database.d.ts.map +1 -1
  6. package/dist/db/migrations.d.ts +2 -0
  7. package/dist/db/migrations.d.ts.map +1 -0
  8. package/dist/db/pg-migrations.d.ts.map +1 -1
  9. package/dist/db/schema.d.ts +0 -1
  10. package/dist/db/schema.d.ts.map +1 -1
  11. package/dist/db/task-crud.d.ts +13 -0
  12. package/dist/db/task-crud.d.ts.map +1 -0
  13. package/dist/db/task-graph.d.ts +27 -0
  14. package/dist/db/task-graph.d.ts.map +1 -0
  15. package/dist/db/task-lifecycle.d.ts +80 -0
  16. package/dist/db/task-lifecycle.d.ts.map +1 -0
  17. package/dist/db/task-relations.d.ts +86 -0
  18. package/dist/db/task-relations.d.ts.map +1 -0
  19. package/dist/db/task-status.d.ts +65 -0
  20. package/dist/db/task-status.d.ts.map +1 -0
  21. package/dist/db/tasks.d.ts +10 -230
  22. package/dist/db/tasks.d.ts.map +1 -1
  23. package/dist/db/webhooks.d.ts +10 -0
  24. package/dist/db/webhooks.d.ts.map +1 -1
  25. package/dist/index.js +3210 -2486
  26. package/dist/lib/github.d.ts +1 -1
  27. package/dist/lib/github.d.ts.map +1 -1
  28. package/dist/lib/north-star.d.ts +33 -0
  29. package/dist/lib/north-star.d.ts.map +1 -0
  30. package/dist/lib/task-runner.d.ts +101 -0
  31. package/dist/lib/task-runner.d.ts.map +1 -0
  32. package/dist/mcp/index.d.ts.map +1 -1
  33. package/dist/mcp/index.js +22857 -26511
  34. package/dist/mcp/tools/cloud.d.ts.map +1 -1
  35. package/dist/mcp/tools/code-tools.d.ts +15 -0
  36. package/dist/mcp/tools/code-tools.d.ts.map +1 -0
  37. package/dist/mcp/tools/task-adv-tools.d.ts +20 -0
  38. package/dist/mcp/tools/task-adv-tools.d.ts.map +1 -0
  39. package/dist/mcp/tools/task-auto-tools.d.ts +20 -0
  40. package/dist/mcp/tools/task-auto-tools.d.ts.map +1 -0
  41. package/dist/mcp/tools/task-crud.d.ts +20 -0
  42. package/dist/mcp/tools/task-crud.d.ts.map +1 -0
  43. package/dist/mcp/tools/task-meta-tools.d.ts +12 -0
  44. package/dist/mcp/tools/task-meta-tools.d.ts.map +1 -0
  45. package/dist/mcp/tools/task-project-tools.d.ts +20 -0
  46. package/dist/mcp/tools/task-project-tools.d.ts.map +1 -0
  47. package/dist/mcp/tools/task-rel-tools.d.ts +19 -0
  48. package/dist/mcp/tools/task-rel-tools.d.ts.map +1 -0
  49. package/dist/mcp/tools/task-resources.d.ts +13 -0
  50. package/dist/mcp/tools/task-resources.d.ts.map +1 -0
  51. package/dist/mcp/tools/task-workflow-tools.d.ts +20 -0
  52. package/dist/mcp/tools/task-workflow-tools.d.ts.map +1 -0
  53. package/dist/mcp/tools/webhooks.d.ts.map +1 -1
  54. package/dist/sdk/client.d.ts +361 -0
  55. package/dist/sdk/client.d.ts.map +1 -0
  56. package/dist/sdk/index.d.ts +14 -0
  57. package/dist/sdk/index.d.ts.map +1 -0
  58. package/dist/sdk/types.d.ts +167 -0
  59. package/dist/sdk/types.d.ts.map +1 -0
  60. package/dist/sdk.d.ts +15 -182
  61. package/dist/sdk.d.ts.map +1 -1
  62. package/dist/server/index.js +2039 -2708
  63. package/dist/server/routes.d.ts +85 -0
  64. package/dist/server/routes.d.ts.map +1 -0
  65. package/dist/server/serve.d.ts +29 -0
  66. package/dist/server/serve.d.ts.map +1 -1
  67. package/dist/types/index.d.ts +105 -0
  68. package/dist/types/index.d.ts.map +1 -1
  69. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;CACrC,CAAC;AAoCF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,OAAO,GAAG,IAAI,CAgX5G"}
1
+ {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;CACrC,CAAC;AAyCF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,OAAO,GAAG,IAAI,CAgX5G"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Code tools for the MCP server.
3
+ * Auto-extracted from src/mcp/index.ts
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import type { Task } from "../../types/index.js";
7
+ interface CodeToolsContext {
8
+ shouldRegisterTool: (name: string) => boolean;
9
+ resolveId: (partialId: string, table?: string) => string;
10
+ formatError: (error: unknown) => string;
11
+ formatTask: (task: Task) => string;
12
+ }
13
+ export declare function registerCodeTools(server: McpServer, ctx: CodeToolsContext): void;
14
+ export {};
15
+ //# sourceMappingURL=code-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/code-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,UAAU,gBAAgB;IACxB,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;CACpC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,gBAAgB,QAmGzE"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Task advanced tools for the MCP server.
3
+ * Auto-extracted from src/mcp/index.ts
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import type { Task } from "../../types/index.js";
7
+ interface TaskAdvContext {
8
+ shouldRegisterTool: (name: string) => boolean;
9
+ resolveId: (partialId: string, table?: string) => string;
10
+ formatError: (error: unknown) => string;
11
+ formatTask: (task: Task) => string;
12
+ formatTaskDetail: (task: Task, maxDescriptionChars?: number) => string;
13
+ getAgentFocus: (agentId: string) => {
14
+ agent_id: string;
15
+ project_id?: string;
16
+ } | undefined;
17
+ }
18
+ export declare function registerTaskAdvTools(server: McpServer, ctx: TaskAdvContext): void;
19
+ export {};
20
+ //# sourceMappingURL=task-adv-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-adv-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-adv-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,UAAU,cAAc;IACtB,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,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,QA8c1E"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Task auto tools for the MCP server.
3
+ * Auto-extracted from src/mcp/index.ts
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import type { Task } from "../../types/index.js";
7
+ interface TaskAutoContext {
8
+ shouldRegisterTool: (name: string) => boolean;
9
+ resolveId: (partialId: string, table?: string) => string;
10
+ formatError: (error: unknown) => string;
11
+ formatTask: (task: Task) => string;
12
+ formatTaskDetail: (task: Task, maxDescriptionChars?: number) => string;
13
+ getAgentFocus: (agentId: string) => {
14
+ agent_id: string;
15
+ project_id?: string;
16
+ } | undefined;
17
+ }
18
+ export declare function registerTaskAutoTools(server: McpServer, ctx: TaskAutoContext): void;
19
+ export {};
20
+ //# sourceMappingURL=task-auto-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-auto-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-auto-tools.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,QA8Q5E"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Task CRUD tools for the MCP server.
3
+ * Auto-extracted from src/mcp/index.ts
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import type { Task } from "../../types/index.js";
7
+ interface TaskCrudContext {
8
+ shouldRegisterTool: (name: string) => boolean;
9
+ resolveId: (partialId: string, table?: string) => string;
10
+ formatError: (error: unknown) => string;
11
+ formatTask: (task: Task) => string;
12
+ formatTaskDetail: (task: Task, maxDescriptionChars?: number) => string;
13
+ getAgentFocus: (agentId: string) => {
14
+ agent_id: string;
15
+ project_id?: string;
16
+ } | undefined;
17
+ }
18
+ export declare function registerTaskCrudTools(server: McpServer, ctx: TaskCrudContext): void;
19
+ export {};
20
+ //# sourceMappingURL=task-crud.d.ts.map
@@ -0,0 +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;AAIjD,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,QAkM5E"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Task meta tools for the MCP server.
3
+ * Auto-extracted from src/mcp/index.ts
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ interface TaskMetaContext {
7
+ shouldRegisterTool: (name: string) => boolean;
8
+ formatError: (error: unknown) => string;
9
+ }
10
+ export declare function registerTaskMetaTools(server: McpServer, ctx: TaskMetaContext): void;
11
+ export {};
12
+ //# sourceMappingURL=task-meta-tools.d.ts.map
@@ -0,0 +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,QAgI5E"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Task project tools for the MCP server.
3
+ * Auto-extracted from src/mcp/index.ts
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import type { Task } from "../../types/index.js";
7
+ interface TaskProjectContext {
8
+ shouldRegisterTool: (name: string) => boolean;
9
+ resolveId: (partialId: string, table?: string) => string;
10
+ formatError: (error: unknown) => string;
11
+ formatTask: (task: Task) => string;
12
+ formatTaskDetail: (task: Task, maxDescriptionChars?: number) => string;
13
+ getAgentFocus: (agentId: string) => {
14
+ agent_id: string;
15
+ project_id?: string;
16
+ } | undefined;
17
+ }
18
+ export declare function registerTaskProjectTools(server: McpServer, ctx: TaskProjectContext): void;
19
+ export {};
20
+ //# sourceMappingURL=task-project-tools.d.ts.map
@@ -0,0 +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;AAmBjD,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,QAg/BlF"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Task relationship tools for the MCP server.
3
+ * Auto-extracted from src/mcp/index.ts
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import type { Task } from "../../types/index.js";
7
+ interface TaskRelContext {
8
+ shouldRegisterTool: (name: string) => boolean;
9
+ resolveId: (partialId: string, table?: string) => string;
10
+ formatError: (error: unknown) => string;
11
+ formatTask: (task: Task) => string;
12
+ getAgentFocus: (agentId: string) => {
13
+ agent_id: string;
14
+ project_id?: string;
15
+ } | undefined;
16
+ }
17
+ export declare function registerTaskRelTools(server: McpServer, ctx: TaskRelContext): void;
18
+ export {};
19
+ //# sourceMappingURL=task-rel-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-rel-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-rel-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAGjD,UAAU,cAAc;IACtB,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,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,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,QAmtB1E"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Task resources tools for the MCP server.
3
+ * Auto-extracted from src/mcp/index.ts
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ interface TaskResourcesContext {
7
+ shouldRegisterTool: (name: string) => boolean;
8
+ resolveId: (partialId: string, table?: string) => string;
9
+ formatError: (error: unknown) => string;
10
+ }
11
+ export declare function registerTaskResources(server: McpServer, ctx: TaskResourcesContext): void;
12
+ export {};
13
+ //# sourceMappingURL=task-resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-resources.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-resources.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,UAAU,oBAAoB;IAC5B,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;CACzC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,oBAAoB,QAsWjF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Task workflow tools for the MCP server.
3
+ * Auto-extracted from src/mcp/index.ts
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import type { Task } from "../../types/index.js";
7
+ interface TaskWorkflowContext {
8
+ shouldRegisterTool: (name: string) => boolean;
9
+ resolveId: (partialId: string, table?: string) => string;
10
+ formatError: (error: unknown) => string;
11
+ formatTask: (task: Task) => string;
12
+ formatTaskDetail: (task: Task, maxDescriptionChars?: number) => string;
13
+ getAgentFocus: (agentId: string) => {
14
+ agent_id: string;
15
+ project_id?: string;
16
+ } | undefined;
17
+ }
18
+ export declare function registerTaskWorkflowTools(server: McpServer, ctx: TaskWorkflowContext): void;
19
+ export {};
20
+ //# sourceMappingURL=task-workflow-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-workflow-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-workflow-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,UAAU,mBAAmB;IAC3B,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,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,QA6JpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;CACrC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,OAAO,GAAG,IAAI,CAwD1G"}
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;CACrC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,OAAO,GAAG,IAAI,CAyD1G"}
@@ -0,0 +1,361 @@
1
+ /**
2
+ * Comprehensive REST SDK Client for @hasna/todos
3
+ *
4
+ * Zero-dependency HTTP client covering ALL REST API endpoints.
5
+ * Typed errors, cursor pagination, batch operations, SSE subscriptions.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { TodosClient } from "@hasna/todos";
10
+ *
11
+ * const client = new TodosClient(); // uses TODOS_URL or localhost:19427
12
+ * const tasks = await client.tasks.list({ status: "pending", limit: 20 });
13
+ * await client.tasks.complete(taskId);
14
+ * ```
15
+ */
16
+ import type { Task, Agent, Project, Plan, Org, Webhook, TaskTemplate, TaskComment, TaskHistory, CreateTaskInput, CreateProjectInput, CreatePlanInput, UpdatePlanInput, CreateOrgInput, CreateWebhookInput, CreateTemplateInput, RegisterAgentInput, DashboardStats, TaskSummary, TaskPriority } from "../types/index.js";
17
+ import type { TodosClientOptions, SSEEvent, TaskStatusResponse, TaskNextResponse, TaskActiveResponse, TaskStaleResponse, TaskChangedResponse, TaskContextResponse, TaskProgressResponse, TaskAttachmentsResponse, TaskFailResponse, TaskBulkResponse, AgentMeResponse, AgentQueueResponse, OrgNode, PlanWithTasks, ReportResponse, DoctorResponse } from "./types.js";
18
+ export type { TodosClientOptions } from "./types.js";
19
+ declare class TasksResource {
20
+ private client;
21
+ constructor(client: TodosClient);
22
+ /** List tasks with optional filters. Supports cursor pagination. */
23
+ list(options?: {
24
+ status?: string;
25
+ project_id?: string;
26
+ session_id?: string;
27
+ agent_id?: string;
28
+ assigned_to?: string;
29
+ limit?: number;
30
+ offset?: number;
31
+ cursor?: string;
32
+ fields?: string;
33
+ }): Promise<TaskSummary[]>;
34
+ /** Get a single task by ID */
35
+ get(id: string): Promise<TaskSummary>;
36
+ /** Get task with full relations (subtasks, dependencies, comments, checklist) */
37
+ getWithRelations(id: string): Promise<Task>;
38
+ /** Create a new task */
39
+ create(data: CreateTaskInput & {
40
+ agent_id?: string;
41
+ }): Promise<TaskSummary>;
42
+ /** Update a task (PATCH — only allowed fields) */
43
+ update(id: string, data: Record<string, unknown>): Promise<TaskSummary>;
44
+ /** Delete a task */
45
+ delete(id: string): Promise<{
46
+ success: boolean;
47
+ }>;
48
+ /** Start a task (pending → in_progress) */
49
+ start(id: string, agentId?: string): Promise<TaskSummary>;
50
+ /** Complete a task */
51
+ complete(id: string, agentId?: string): Promise<TaskSummary>;
52
+ /** Fail a task with optional retry */
53
+ fail(id: string, options?: {
54
+ reason?: string;
55
+ agent_id?: string;
56
+ retry?: boolean;
57
+ error_code?: string;
58
+ }): Promise<TaskFailResponse>;
59
+ /** Log progress on a task */
60
+ logProgress(taskId: string, message: string, pctComplete?: number, agentId?: string): Promise<TaskComment>;
61
+ /** Get progress entries for a task */
62
+ getProgress(id: string): Promise<TaskProgressResponse>;
63
+ /** Get task history (audit log) */
64
+ getHistory(id: string): Promise<TaskHistory[]>;
65
+ /** Get task attachments */
66
+ getAttachments(id: string): Promise<TaskAttachmentsResponse>;
67
+ /** Get task status summary (counts by status, active work, next task) */
68
+ status(options?: {
69
+ project_id?: string;
70
+ agent_id?: string;
71
+ }): Promise<TaskStatusResponse>;
72
+ /** Get next available task for an agent */
73
+ next(options?: {
74
+ project_id?: string;
75
+ agent_id?: string;
76
+ }): Promise<TaskNextResponse>;
77
+ /** Get active (in-progress) work */
78
+ active(projectId?: string): Promise<TaskActiveResponse>;
79
+ /** Get stale tasks (in_progress > N minutes) */
80
+ stale(options?: {
81
+ project_id?: string;
82
+ minutes?: number;
83
+ }): Promise<TaskStaleResponse>;
84
+ /** Get tasks changed since a timestamp */
85
+ changedSince(since: string, projectId?: string): Promise<TaskChangedResponse>;
86
+ /** Get task context (summary text or JSON for agent prompt injection) */
87
+ context(options?: {
88
+ agentId?: string;
89
+ projectId?: string;
90
+ format?: "text" | "compact" | "json";
91
+ }): Promise<TaskContextResponse | string>;
92
+ /** Export tasks as JSON or CSV */
93
+ export(options?: {
94
+ status?: string;
95
+ project_id?: string;
96
+ format?: "json" | "csv";
97
+ }): Promise<TaskSummary[] | string>;
98
+ /** Bulk operations: complete, start, or delete multiple tasks */
99
+ bulk(ids: string[], action: "complete" | "start" | "delete"): Promise<TaskBulkResponse>;
100
+ /** Claim the next available task for an agent */
101
+ claim(agentId: string, projectId?: string): Promise<{
102
+ task: TaskSummary | null;
103
+ }>;
104
+ /** Subscribe to task events via SSE. Returns an AsyncGenerator. */
105
+ subscribe(options?: {
106
+ agentId?: string;
107
+ projectId?: string;
108
+ events?: string[];
109
+ }): AsyncGenerator<SSEEvent, void, unknown>;
110
+ }
111
+ declare class AgentsResource {
112
+ private client;
113
+ constructor(client: TodosClient);
114
+ /** List all agents */
115
+ list(options?: {
116
+ fields?: string;
117
+ }): Promise<Agent[]>;
118
+ /** Register a new agent (or heartbeat existing) */
119
+ register(data: {
120
+ name: string;
121
+ description?: string;
122
+ role?: string;
123
+ session_id?: string;
124
+ working_dir?: string;
125
+ }): Promise<Agent>;
126
+ /** Full agent registration with all fields */
127
+ fullRegister(data: RegisterAgentInput): Promise<Agent | {
128
+ conflict: true;
129
+ message: string;
130
+ }>;
131
+ /** Update an agent */
132
+ update(id: string, data: {
133
+ name?: string;
134
+ description?: string;
135
+ role?: string;
136
+ }): Promise<Agent>;
137
+ /** Delete an agent */
138
+ delete(id: string): Promise<{
139
+ success: boolean;
140
+ }>;
141
+ /** Bulk delete agents */
142
+ bulkDelete(ids: string[]): Promise<{
143
+ succeeded: number;
144
+ failed: number;
145
+ }>;
146
+ /** Get agent info + their tasks (as if they just registered) */
147
+ me(name: string): Promise<AgentMeResponse>;
148
+ /** Get pending task queue for an agent */
149
+ queue(agentId: string): Promise<AgentQueueResponse>;
150
+ /** Get direct reports (team) for an agent */
151
+ team(agentId: string): Promise<Agent[]>;
152
+ /** Get full org chart */
153
+ orgChart(): Promise<OrgNode[]>;
154
+ }
155
+ declare class ProjectsResource {
156
+ private client;
157
+ constructor(client: TodosClient);
158
+ /** List all projects */
159
+ list(options?: {
160
+ fields?: string;
161
+ }): Promise<Project[]>;
162
+ /** Create a project */
163
+ create(data: CreateProjectInput): Promise<Project>;
164
+ /** Delete a project */
165
+ delete(id: string): Promise<{
166
+ success: boolean;
167
+ }>;
168
+ /** Bulk delete projects */
169
+ bulkDelete(ids: string[]): Promise<{
170
+ succeeded: number;
171
+ failed: number;
172
+ }>;
173
+ }
174
+ declare class PlansResource {
175
+ private client;
176
+ constructor(client: TodosClient);
177
+ /** List plans, optionally filtered by project */
178
+ list(projectId?: string): Promise<Plan[]>;
179
+ /** Create a plan */
180
+ create(data: CreatePlanInput): Promise<Plan>;
181
+ /** Get a plan with its tasks */
182
+ get(id: string): Promise<PlanWithTasks>;
183
+ /** Update a plan */
184
+ update(id: string, data: UpdatePlanInput): Promise<Plan>;
185
+ /** Delete a plan */
186
+ delete(id: string): Promise<{
187
+ success: boolean;
188
+ }>;
189
+ /** Bulk delete plans */
190
+ bulkDelete(ids: string[]): Promise<{
191
+ succeeded: number;
192
+ failed: number;
193
+ }>;
194
+ }
195
+ declare class OrgsResource {
196
+ private client;
197
+ constructor(client: TodosClient);
198
+ /** List all orgs */
199
+ list(): Promise<Org[]>;
200
+ /** Create an org */
201
+ create(data: CreateOrgInput): Promise<Org>;
202
+ /** Update an org */
203
+ update(id: string, data: Record<string, unknown>): Promise<Org>;
204
+ /** Delete an org */
205
+ delete(id: string): Promise<{
206
+ success: boolean;
207
+ }>;
208
+ }
209
+ declare class WebhooksResource {
210
+ private client;
211
+ constructor(client: TodosClient);
212
+ /** List all webhooks */
213
+ list(): Promise<Webhook[]>;
214
+ /** Create a webhook */
215
+ create(data: CreateWebhookInput): Promise<Webhook>;
216
+ /** Delete a webhook */
217
+ delete(id: string): Promise<{
218
+ success: boolean;
219
+ }>;
220
+ }
221
+ declare class TemplatesResource {
222
+ private client;
223
+ constructor(client: TodosClient);
224
+ /** List all templates */
225
+ list(): Promise<TaskTemplate[]>;
226
+ /** Create a template */
227
+ create(data: CreateTemplateInput): Promise<TaskTemplate>;
228
+ /** Delete a template */
229
+ delete(id: string): Promise<{
230
+ success: boolean;
231
+ }>;
232
+ }
233
+ export declare class TodosClient {
234
+ readonly baseUrl: string;
235
+ readonly timeout: number;
236
+ readonly apiKey: string | null;
237
+ readonly maxRetries: number;
238
+ readonly retryDelay: number;
239
+ /** Namespaced resource accessors */
240
+ readonly tasks: TasksResource;
241
+ readonly agents: AgentsResource;
242
+ readonly projects: ProjectsResource;
243
+ readonly plans: PlansResource;
244
+ readonly orgs: OrgsResource;
245
+ readonly webhooks: WebhooksResource;
246
+ readonly templates: TemplatesResource;
247
+ constructor(options?: TodosClientOptions);
248
+ /** Create a client from TODOS_URL env var */
249
+ static fromEnv(apiKey?: string): TodosClient;
250
+ /** Raw fetch — for endpoints that don't return JSON (text, CSV, SSE) */
251
+ _fetchRaw(url: string, init?: RequestInit): Promise<Response>;
252
+ private _buildHeaders;
253
+ private _fetchWithRetry;
254
+ private _fetch;
255
+ _get<T>(path: string, query?: string): Promise<T>;
256
+ _post<T>(path: string, body?: Record<string, unknown>): Promise<T>;
257
+ _patch<T>(path: string, body: Record<string, unknown>): Promise<T>;
258
+ _delete<T>(path: string): Promise<T>;
259
+ private _sleep;
260
+ /** Health check */
261
+ getHealth(): Promise<{
262
+ status: "ok" | "warn";
263
+ tasks: number;
264
+ stale: number;
265
+ overdue_recurring: number;
266
+ timestamp: string;
267
+ }>;
268
+ /** Quick alive check */
269
+ isAlive(): Promise<boolean>;
270
+ /** Dashboard stats */
271
+ getStats(): Promise<DashboardStats>;
272
+ /** Report for the last N days */
273
+ getReport(options?: {
274
+ days?: number;
275
+ projectId?: string;
276
+ }): Promise<ReportResponse>;
277
+ /** Doctor — health diagnostics */
278
+ doctor(): Promise<DoctorResponse>;
279
+ /** Recent activity */
280
+ activity(limit?: number): Promise<any[]>;
281
+ /** @deprecated Use client.tasks.list() instead */
282
+ listTasks(filter?: {
283
+ status?: string;
284
+ project_id?: string;
285
+ assigned_to?: string;
286
+ limit?: number;
287
+ offset?: number;
288
+ session_id?: string;
289
+ due_today?: boolean;
290
+ overdue?: boolean;
291
+ }): Promise<TaskSummary[]>;
292
+ /** @deprecated Use client.tasks.get() instead */
293
+ getTask(id: string): Promise<TaskSummary>;
294
+ /** @deprecated Use client.tasks.create() instead */
295
+ createTask(data: {
296
+ title: string;
297
+ description?: string;
298
+ priority?: TaskPriority;
299
+ project_id?: string;
300
+ assigned_to?: string;
301
+ tags?: string[];
302
+ recurrence_rule?: string;
303
+ due_at?: string;
304
+ }): Promise<any>;
305
+ /** @deprecated Use client.tasks.update() instead */
306
+ updateTask(id: string, data: Record<string, unknown>): Promise<any>;
307
+ /** @deprecated Use client.tasks.delete() instead */
308
+ deleteTask(id: string): Promise<void>;
309
+ /** @deprecated Use client.tasks.start() instead */
310
+ startTask(id: string, agentId: string): Promise<any>;
311
+ /** @deprecated Use client.tasks.complete() instead */
312
+ completeTask(id: string, agentId?: string): Promise<any>;
313
+ /** @deprecated Use client.tasks.fail() instead */
314
+ failTask(id: string, options?: {
315
+ reason?: string;
316
+ agent_id?: string;
317
+ retry?: boolean;
318
+ error_code?: string;
319
+ }): Promise<any>;
320
+ /** @deprecated Use client.tasks.logProgress() instead */
321
+ logProgress(taskId: string, message: string, pctComplete?: number, agentId?: string): Promise<any>;
322
+ /** @deprecated Use client.tasks.status() instead */
323
+ getStatus(projectId?: string, agentId?: string): Promise<TaskStatusResponse>;
324
+ /** @deprecated Use client.tasks.active() instead */
325
+ getActiveWork(projectId?: string): Promise<any[]>;
326
+ /** @deprecated Use client.tasks.changedSince() instead */
327
+ getTasksChangedSince(since: string, projectId?: string): Promise<any>;
328
+ /** @deprecated Use client.tasks.stale() instead */
329
+ getStaleTasks(minutes?: number, projectId?: string): Promise<any>;
330
+ /** @deprecated Use client.tasks.context() instead */
331
+ getContext(options?: {
332
+ agentId?: string;
333
+ projectId?: string;
334
+ format?: "text" | "compact" | "json";
335
+ }): Promise<string | any>;
336
+ /** @deprecated Use client.tasks.export() instead */
337
+ exportTasks(filter?: {
338
+ status?: string;
339
+ project_id?: string;
340
+ format?: "json" | "csv";
341
+ }): Promise<any>;
342
+ /** @deprecated Use client.tasks.claim() instead */
343
+ claimNextTask(agentId: string, projectId?: string): Promise<any>;
344
+ /** @deprecated Use client.tasks.getHistory() instead */
345
+ getTaskHistory(id: string): Promise<any[]>;
346
+ /** @deprecated Use client.tasks.getAttachments() instead */
347
+ getTaskAttachments(id: string): Promise<any>;
348
+ /** @deprecated Use client.tasks.getProgress() instead */
349
+ getTaskProgress(id: string): Promise<any>;
350
+ /** @deprecated Use client.tasks.subscribe() instead */
351
+ subscribeToStream(options?: {
352
+ agentId?: string;
353
+ projectId?: string;
354
+ events?: string[];
355
+ }): AsyncGenerator<SSEEvent, void, unknown>;
356
+ /** @deprecated Use client.projects.list() instead */
357
+ getProjects(): Promise<Project[]>;
358
+ }
359
+ /** Create a new TodosClient instance */
360
+ export declare function createClient(options?: TodosClientOptions): TodosClient;
361
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @hasna/todos SDK — comprehensive REST client
3
+ *
4
+ * Import from here for the new namespaced API:
5
+ * import { TodosClient } from "@hasna/todos/sdk";
6
+ *
7
+ * Or from the root for backward compat:
8
+ * import { TodosClient } from "@hasna/todos";
9
+ */
10
+ export { TodosClient, createClient } from "./client.js";
11
+ export type { TodosClientOptions } from "./client.js";
12
+ export { TodosAPIError, TodosNotFoundError, TodosConflictError, TodosUnauthorizedError, TodosRateLimitError, TodosTimeoutError, } from "./types.js";
13
+ export type { SSEEvent, CursorPage, ListOptions, TaskListResponse, TaskStatusResponse, TaskNextResponse, TaskActiveResponse, TaskStaleResponse, TaskChangedResponse, TaskContextResponse, TaskProgressResponse, TaskAttachmentsResponse, TaskFailResponse, TaskBulkResponse, AgentMeResponse, AgentQueueResponse, OrgNode, PlanWithTasks, ReportResponse, DoctorResponse, DoctorIssue, } from "./types.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,YAAY,CAAC"}