@hasna/todos 0.11.70 → 0.11.72

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.
@@ -1 +1 @@
1
- {"version":3,"file":"json-schemas.d.ts","sourceRoot":"","sources":["../../src/lib/json-schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-schemas.d.ts","sourceRoot":"","sources":["../../src/lib/json-schemas.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"local-bridge.d.ts","sourceRoot":"","sources":["../../src/lib/local-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-bridge.d.ts","sourceRoot":"","sources":["../../src/lib/local-bridge.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding-fixtures.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding-fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,wCAAwC,eAAe,CAAC;AACrE,eAAO,MAAM,+BAA+B,sCAAsC,CAAC;AAEnF,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,8BAA+B,SAAQ,wBAAwB;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAmXD,wBAAgB,sBAAsB,IAAI,wBAAwB,EAAE,CAMnE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,SAAuB,GAAG,iBAAiB,CAUnF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,SAAuB,GAAG,sBAAsB,CAE9F;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,4BAA4B,CAS3F;AAED,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,8BAAmC,GAC3C,uBAAuB,CAMzB"}
1
+ {"version":3,"file":"onboarding-fixtures.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding-fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,wCAAwC,eAAe,CAAC;AACrE,eAAO,MAAM,+BAA+B,sCAAsC,CAAC;AAEnF,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,8BAA+B,SAAQ,wBAAwB;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoXD,wBAAgB,sBAAsB,IAAI,wBAAwB,EAAE,CAMnE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,SAAuB,GAAG,iBAAiB,CAUnF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,SAAuB,GAAG,sBAAsB,CAE9F;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,4BAA4B,CAS3F;AAED,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,8BAAmC,GAC3C,uBAAuB,CAMzB"}
@@ -11,6 +11,7 @@ export interface ResolvePlanArtifactPathInput {
11
11
  project_id?: string | null;
12
12
  project_ref?: string | null;
13
13
  plan_id?: string | null;
14
+ plan_slug?: string | null;
14
15
  db?: Database;
15
16
  }
16
17
  export interface PlanArtifactTaskReference {
@@ -22,6 +23,7 @@ export interface PlanArtifactTaskReference {
22
23
  export interface PlanArtifactMetadata {
23
24
  schema: typeof PLAN_MARKDOWN_SCHEMA;
24
25
  plan_id: string;
26
+ plan_slug: string | null;
25
27
  project_id: string;
26
28
  task_list_id: string | null;
27
29
  agent_id: string | null;
@@ -58,6 +60,7 @@ export interface WritePlanArtifactResult {
58
60
  path: string;
59
61
  snapshot: PlanArtifactSnapshot;
60
62
  }
63
+ export declare function planArtifactFileName(plan: Pick<Plan, "id" | "name" | "slug">): string;
61
64
  export declare function resolvePlanArtifactProject(input: ResolvePlanArtifactPathInput): Project;
62
65
  export declare function resolvePlanArtifactPaths(input: ResolvePlanArtifactPathInput): PlanArtifactPaths;
63
66
  export declare function buildPlanArtifactSnapshot(plan: Plan, tasks?: Task[], artifactUpdatedAt?: string): PlanArtifactSnapshot;
@@ -1 +1 @@
1
- {"version":3,"file":"plan-artifacts.d.ts","sourceRoot":"","sources":["../../src/lib/plan-artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-artifacts.d.ts","sourceRoot":"","sources":["../../src/lib/plan-artifacts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared-events.d.ts","sourceRoot":"","sources":["../../src/lib/shared-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAKnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAc9C,MAAM,MAAM,oBAAoB,GAC5B,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,aAAa,GACb,cAAc,GACd,eAAe,GACf,qBAAqB,GACrB,gBAAgB,CAAC;AAErB,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BtG;AAmFD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAE/F"}
1
+ {"version":3,"file":"shared-events.d.ts","sourceRoot":"","sources":["../../src/lib/shared-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAKnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAe9C,MAAM,MAAM,oBAAoB,GAC5B,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,aAAa,GACb,cAAc,GACd,eAAe,GACf,qBAAqB,GACrB,gBAAgB,CAAC;AAErB,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BtG;AAuFD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAE/F"}
@@ -27,7 +27,8 @@ export declare function routingAutomationMetadata(task: Pick<Task, "metadata" |
27
27
  export declare function routeEnabledForTask(task: Pick<Task, "metadata" | "tags">, taskList?: Pick<TaskList, "metadata"> | null): boolean | undefined;
28
28
  export declare function workflowPointersFromMetadata(metadata: Record<string, unknown>): TaskWorkflowPointers;
29
29
  export declare function compactWorkflowPointers(pointers: TaskWorkflowPointers): TaskWorkflowPointers;
30
- export declare function classifyProjectKind(path: string): string;
30
+ export declare function projectKindFromMetadata(...records: Array<Record<string, unknown> | undefined | null>): string | null;
31
+ export declare function classifyProjectKind(_path: string, metadata?: Record<string, unknown> | null): string | null;
31
32
  export declare function isWorktreePath(path: string): boolean;
32
33
  export declare function inferRootProjectId(project: Project): string | null;
33
34
  //# sourceMappingURL=task-route-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-route-contract.d.ts","sourceRoot":"","sources":["../../src/lib/task-route-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEjE,eAAO,MAAM,qCAAqC,8BAA8B,CAAC;AACjF,eAAO,MAAM,oCAAoC,mCAAmC,CAAC;AAErF,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAYhE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE/E;AAqBD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAAC,EAClD,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,GAC3C,6BAA6B,GAAG,SAAS,CAsB3C;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,CAO5I;AAMD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,oBAAoB,CAcpG;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,oBAAoB,CAI5F;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAElE"}
1
+ {"version":3,"file":"task-route-contract.d.ts","sourceRoot":"","sources":["../../src/lib/task-route-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEjE,eAAO,MAAM,qCAAqC,8BAA8B,CAAC;AACjF,eAAO,MAAM,oCAAoC,mCAAmC,CAAC;AAErF,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAYhE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE/E;AAqBD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAAC,EAClD,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,GAC3C,6BAA6B,GAAG,SAAS,CAsB3C;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,CAM5I;AAMD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,oBAAoB,CAcpG;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,oBAAoB,CAI5F;AAWD,wBAAgB,uBAAuB,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAMpH;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAE3G;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAElE"}
@@ -0,0 +1,68 @@
1
+ import type { Task } from "../types/index.js";
2
+ import { type TaskRouteState } from "./task-routing.js";
3
+ export declare const TASK_ROUTE_SOURCE_DISCOVERY_SCHEMA_VERSION = "todos.task_route_sources.v1";
4
+ export interface DiscoverTaskRouteSourcesInput {
5
+ sourceRoots?: string[];
6
+ sourceStores?: string[];
7
+ include?: string[];
8
+ exclude?: string[];
9
+ limit?: number;
10
+ }
11
+ export type TaskRouteSourceStoreStatus = "ok" | "missing" | "error";
12
+ export interface TaskRouteSourceError {
13
+ source_store_id: string;
14
+ source_repo_path: string | null;
15
+ source_db_path: string;
16
+ code: "STORE_MISSING" | "STORE_UNREADABLE" | "STORE_INVALID" | "SOURCE_ROOT_MISSING" | "SOURCE_ROOT_UNREADABLE";
17
+ message: string;
18
+ }
19
+ export interface TaskRouteSourceStoreResult {
20
+ source_store_id: string;
21
+ source_repo_path: string | null;
22
+ source_db_path: string;
23
+ status: TaskRouteSourceStoreStatus;
24
+ /** Total ready candidates found in this store before result-level limit truncation. */
25
+ candidate_count: number;
26
+ /** Candidates returned from this store after result-level limit truncation. */
27
+ returned_candidate_count: number;
28
+ errors: TaskRouteSourceError[];
29
+ }
30
+ export interface TaskRouteSourceCandidate {
31
+ source_store_id: string;
32
+ source_repo_path: string | null;
33
+ source_db_path: string;
34
+ source_task_key: string;
35
+ /** True when the store was selected by explicit sourceRoots/sourceStores and include/exclude inputs. Not dispatch authorization. */
36
+ source_selected_by_input: boolean;
37
+ task_id: string;
38
+ task_short_id: string | null;
39
+ title: string;
40
+ status: Task["status"];
41
+ priority: Task["priority"];
42
+ project_path: string | null;
43
+ task_version: number;
44
+ task_updated_at: string;
45
+ task_fingerprint: string | null;
46
+ tags: string[];
47
+ task_intent: {
48
+ auto_route: boolean;
49
+ };
50
+ metadata: Record<string, unknown>;
51
+ route_state: TaskRouteState;
52
+ }
53
+ export interface TaskRouteSourceDiscoveryResult {
54
+ schema_version: typeof TASK_ROUTE_SOURCE_DISCOVERY_SCHEMA_VERSION;
55
+ sourceRoots: string[];
56
+ sourceStores: string[];
57
+ include: string[];
58
+ exclude: string[];
59
+ limit: number | null;
60
+ total_candidate_count: number;
61
+ returned_candidate_count: number;
62
+ truncated: boolean;
63
+ stores: TaskRouteSourceStoreResult[];
64
+ candidates: TaskRouteSourceCandidate[];
65
+ errors: TaskRouteSourceError[];
66
+ }
67
+ export declare function discoverTaskRouteSources(input: DiscoverTaskRouteSourcesInput): TaskRouteSourceDiscoveryResult;
68
+ //# sourceMappingURL=task-route-sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-route-sources.d.ts","sourceRoot":"","sources":["../../src/lib/task-route-sources.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,mBAAmB,CAAC;AAKvD,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE3E,eAAO,MAAM,0CAA0C,gCAAgC,CAAC;AAExF,MAAM,WAAW,6BAA6B;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,eAAe,GAAG,kBAAkB,GAAG,eAAe,GAAG,qBAAqB,GAAG,wBAAwB,CAAC;IAChH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,0BAA0B,CAAC;IACnC,uFAAuF;IACvF,eAAe,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,wBAAwB,EAAE,MAAM,CAAC;IACjC,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,oIAAoI;IACpI,wBAAwB,EAAE,OAAO,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE;QACX,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,8BAA8B;IAC7C,cAAc,EAAE,OAAO,0CAA0C,CAAC;IAClE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,0BAA0B,EAAE,CAAC;IACrC,UAAU,EAAE,wBAAwB,EAAE,CAAC;IACvC,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAoSD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,GAAG,8BAA8B,CA6D7G"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-routing.d.ts","sourceRoot":"","sources":["../../src/lib/task-routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3C,OAAO,KAAK,EAAW,IAAI,EAAY,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAKL,qCAAqC,EAErC,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,OAAO,qCAAqC,CAAC;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAC,CAAC;IAChG,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACjD,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,8BAA8B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+CD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,cAAc,CAwExF;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,4BAA4B,EACnC,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAoCN"}
1
+ {"version":3,"file":"task-routing.d.ts","sourceRoot":"","sources":["../../src/lib/task-routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3C,OAAO,KAAK,EAAW,IAAI,EAAY,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAML,qCAAqC,EAErC,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,OAAO,qCAAqC,CAAC;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAC,CAAC;IAChG,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACjD,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,8BAA8B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA0CD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,cAAc,CAyExF;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,4BAA4B,EACnC,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAoCN"}
package/dist/mcp/index.js CHANGED
@@ -1199,6 +1199,11 @@ var init_migrations = __esm(() => {
1199
1199
  CREATE INDEX IF NOT EXISTS idx_storage_tombstones_object ON storage_tombstones(object_type, object_id);
1200
1200
  CREATE INDEX IF NOT EXISTS idx_storage_tombstones_updated ON storage_tombstones(updated_at);
1201
1201
  INSERT OR IGNORE INTO _migrations (id) VALUES (63);
1202
+ `,
1203
+ `
1204
+ ALTER TABLE plans ADD COLUMN slug TEXT;
1205
+ CREATE INDEX IF NOT EXISTS idx_plans_slug ON plans(slug);
1206
+ INSERT OR IGNORE INTO _migrations (id) VALUES (64);
1202
1207
  `
1203
1208
  ];
1204
1209
  });
@@ -1222,6 +1227,29 @@ function runMigrations(db) {
1222
1227
  }
1223
1228
  ensureSchema(db);
1224
1229
  }
1230
+ function planSlugBase(value) {
1231
+ return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "") || "plan";
1232
+ }
1233
+ function backfillPlanSlugs(db) {
1234
+ try {
1235
+ const rows = db.query("SELECT id, project_id, name, slug FROM plans ORDER BY created_at ASC, id ASC").all();
1236
+ const used = new Set;
1237
+ for (const row of rows) {
1238
+ const scope = row.project_id ?? "__global__";
1239
+ const base = planSlugBase(row.slug || row.name);
1240
+ let candidate = base;
1241
+ let suffix = 2;
1242
+ while (used.has(`${scope}:${candidate}`)) {
1243
+ candidate = `${base}-${suffix}`;
1244
+ suffix += 1;
1245
+ }
1246
+ used.add(`${scope}:${candidate}`);
1247
+ if (row.slug !== candidate) {
1248
+ db.run("UPDATE plans SET slug = ? WHERE id = ?", [candidate, row.id]);
1249
+ }
1250
+ }
1251
+ } catch {}
1252
+ }
1225
1253
  function ensureSchema(db) {
1226
1254
  const ensureColumn = (table, column, type) => {
1227
1255
  try {
@@ -1271,7 +1299,8 @@ function ensureSchema(db) {
1271
1299
  )`);
1272
1300
  ensureTable("plans", `
1273
1301
  CREATE TABLE plans (
1274
- id TEXT PRIMARY KEY, project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
1302
+ id TEXT PRIMARY KEY, slug TEXT,
1303
+ project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
1275
1304
  task_list_id TEXT, agent_id TEXT,
1276
1305
  name TEXT NOT NULL, description TEXT,
1277
1306
  status TEXT NOT NULL DEFAULT 'active' CHECK(status IN ('active', 'completed', 'archived')),
@@ -1786,8 +1815,10 @@ function ensureSchema(db) {
1786
1815
  ensureColumn("agents", "org_id", "TEXT");
1787
1816
  ensureColumn("agents", "capabilities", "TEXT DEFAULT '[]'");
1788
1817
  ensureColumn("projects", "org_id", "TEXT");
1818
+ ensureColumn("plans", "slug", "TEXT");
1789
1819
  ensureColumn("plans", "task_list_id", "TEXT");
1790
1820
  ensureColumn("plans", "agent_id", "TEXT");
1821
+ backfillPlanSlugs(db);
1791
1822
  ensureColumn("task_templates", "variables", "TEXT DEFAULT '[]'");
1792
1823
  ensureColumn("task_templates", "version", "INTEGER NOT NULL DEFAULT 1");
1793
1824
  ensureColumn("template_tasks", "condition", "TEXT");
@@ -1902,6 +1933,8 @@ function ensureSchema(db) {
1902
1933
  ensureIndex("CREATE INDEX IF NOT EXISTS idx_tags_name ON tags(name)");
1903
1934
  ensureIndex("CREATE INDEX IF NOT EXISTS idx_plans_project ON plans(project_id)");
1904
1935
  ensureIndex("CREATE INDEX IF NOT EXISTS idx_plans_status ON plans(status)");
1936
+ ensureIndex("CREATE INDEX IF NOT EXISTS idx_plans_slug ON plans(slug)");
1937
+ ensureIndex("CREATE UNIQUE INDEX IF NOT EXISTS idx_plans_scope_slug ON plans(COALESCE(project_id, ''), slug) WHERE slug IS NOT NULL");
1905
1938
  ensureIndex("CREATE INDEX IF NOT EXISTS idx_plans_task_list ON plans(task_list_id)");
1906
1939
  ensureIndex("CREATE INDEX IF NOT EXISTS idx_plans_agent ON plans(agent_id)");
1907
1940
  ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_history_task ON task_history(task_id)");
@@ -2750,6 +2783,9 @@ function clearExpiredLocks(db) {
2750
2783
  const cutoff = lockExpiryCutoff();
2751
2784
  db.run("UPDATE tasks SET locked_by = NULL, locked_at = NULL WHERE locked_at IS NOT NULL AND locked_at < ?", [cutoff]);
2752
2785
  }
2786
+ function slugifyRef(value) {
2787
+ return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
2788
+ }
2753
2789
  function resolvePartialId(db, table, partialId) {
2754
2790
  if (!ALLOWED_TABLES.has(table)) {
2755
2791
  throw new Error(`Invalid table name: ${table}`);
@@ -2776,6 +2812,16 @@ function resolvePartialId(db, table, partialId) {
2776
2812
  if (slugRow)
2777
2813
  return slugRow.id;
2778
2814
  }
2815
+ if (table === "plans") {
2816
+ const slug = slugifyRef(partialId);
2817
+ if (slug) {
2818
+ const slugRows = db.query("SELECT id FROM plans WHERE slug = ?").all(slug);
2819
+ if (slugRows.length === 1)
2820
+ return slugRows[0].id;
2821
+ if (slugRows.length > 1)
2822
+ return null;
2823
+ }
2824
+ }
2779
2825
  if (table === "projects") {
2780
2826
  const nameRow = db.query("SELECT id FROM projects WHERE lower(name) = ?").get(partialId.toLowerCase());
2781
2827
  if (nameRow)
@@ -9660,8 +9706,6 @@ function routeEnabledForTask(task, taskList) {
9660
9706
  const explicit = booleanField(task.metadata.route_enabled);
9661
9707
  if (explicit !== undefined)
9662
9708
  return explicit;
9663
- if (task.tags.includes("auto:route") || task.tags.includes("route:enabled"))
9664
- return true;
9665
9709
  const taskListDefault = taskList ? booleanField(taskList.metadata.route_enabled) : undefined;
9666
9710
  if (taskListDefault !== undefined)
9667
9711
  return taskListDefault;
@@ -9680,8 +9724,26 @@ function workflowPointersFromMetadata(metadata) {
9680
9724
  workflow_state: stringField(metadata.workflow_state) ?? stringField(nested.workflow_state) ?? stringField(nested.state)
9681
9725
  };
9682
9726
  }
9683
- function classifyProjectKind(path) {
9684
- return path.includes("/hasna/opensource/") ? "open-source" : "unknown";
9727
+ function metadataStringField(record, keys) {
9728
+ if (!record)
9729
+ return;
9730
+ for (const key of keys) {
9731
+ const value = record[key];
9732
+ if (typeof value === "string" && value.trim())
9733
+ return value.trim();
9734
+ }
9735
+ return;
9736
+ }
9737
+ function projectKindFromMetadata(...records) {
9738
+ for (const record of records) {
9739
+ const value = metadataStringField(record ?? undefined, ["project_kind", "projectKind", "source_kind", "sourceKind"]);
9740
+ if (value)
9741
+ return value;
9742
+ }
9743
+ return null;
9744
+ }
9745
+ function classifyProjectKind(_path, metadata) {
9746
+ return projectKindFromMetadata(metadata);
9685
9747
  }
9686
9748
  function isWorktreePath(path) {
9687
9749
  return path.includes("/.codewith/worktrees/") || path.includes("/.worktrees/");
@@ -9754,7 +9816,6 @@ function taskEventMetadata(task) {
9754
9816
  metadata.project_canonical_path = projectPath;
9755
9817
  }
9756
9818
  if (projectPath) {
9757
- metadata.project_kind = classifyProjectKind(projectPath);
9758
9819
  metadata.project_is_worktree = isWorktreePath(projectPath);
9759
9820
  metadata.working_dir = task.working_dir ?? projectPath;
9760
9821
  }
@@ -9766,6 +9827,10 @@ function taskEventMetadata(task) {
9766
9827
  metadata.task_list_project_id = taskList.project_id;
9767
9828
  metadata.task_list_is_project_default = Boolean(project?.task_list_id && taskList.slug === project.task_list_id);
9768
9829
  }
9830
+ const projectKind = projectKindFromMetadata(task.metadata, taskList?.metadata);
9831
+ if (projectKind) {
9832
+ metadata.project_kind = classifyProjectKind(projectPath ?? "", { project_kind: projectKind });
9833
+ }
9769
9834
  const routeEnabled = routeEnabledForTask(task, taskList);
9770
9835
  if (routeEnabled !== undefined) {
9771
9836
  metadata.route_enabled = routeEnabled;
@@ -12788,15 +12853,59 @@ var init_task_relations = __esm(() => {
12788
12853
  });
12789
12854
 
12790
12855
  // src/db/plans.ts
12856
+ function planSlugBase2(value) {
12857
+ return slugify(value) || "plan";
12858
+ }
12859
+ function normalizePlanSlug(value) {
12860
+ const slug = slugify(value);
12861
+ if (!slug)
12862
+ throw new Error("Invalid plan slug");
12863
+ return slug;
12864
+ }
12865
+ function plansBySlug(slug, db, projectId) {
12866
+ if (projectId !== undefined) {
12867
+ if (projectId === null) {
12868
+ return db.query("SELECT * FROM plans WHERE slug = ? AND project_id IS NULL ORDER BY created_at ASC, id ASC").all(slug);
12869
+ }
12870
+ return db.query("SELECT * FROM plans WHERE slug = ? AND project_id = ? ORDER BY created_at ASC, id ASC").all(slug, projectId);
12871
+ }
12872
+ return db.query("SELECT * FROM plans WHERE slug = ? ORDER BY created_at ASC, id ASC").all(slug);
12873
+ }
12874
+ function planSlugExists(slug, projectId, db, excludeId) {
12875
+ const rows = plansBySlug(slug, db, projectId);
12876
+ return rows.some((plan) => plan.id !== excludeId);
12877
+ }
12878
+ function nextPlanSlug(base, projectId, db, excludeId) {
12879
+ let candidate = base;
12880
+ let suffix = 2;
12881
+ while (planSlugExists(candidate, projectId, db, excludeId)) {
12882
+ candidate = `${base}-${suffix}`;
12883
+ suffix += 1;
12884
+ }
12885
+ return candidate;
12886
+ }
12887
+ function resolveCreateSlug(input, projectId, db) {
12888
+ if (input.slug !== undefined) {
12889
+ const slug = normalizePlanSlug(input.slug);
12890
+ if (planSlugExists(slug, projectId, db)) {
12891
+ throw new Error(`Plan slug already exists in this scope: ${slug}`);
12892
+ }
12893
+ return slug;
12894
+ }
12895
+ return nextPlanSlug(planSlugBase2(input.name), projectId, db);
12896
+ }
12791
12897
  function createPlan(input, db) {
12792
12898
  const d = db || getDatabase();
12793
12899
  const id = uuid();
12794
12900
  const timestamp = now();
12901
+ const projectId = input.project_id || null;
12902
+ const slug = resolveCreateSlug(input, projectId, d);
12795
12903
  const machineId = currentStorageMachineId(d);
12796
- d.run(`INSERT INTO plans (id, project_id, task_list_id, agent_id, name, description, status, created_at, updated_at, machine_id)
12797
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
12904
+ d.run(`INSERT INTO plans (id, slug, project_id, task_list_id, agent_id, name, description, status, created_at, updated_at, machine_id)
12905
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
12798
12906
  id,
12799
- input.project_id || null,
12907
+ slug,
12908
+ projectId,
12800
12909
  input.task_list_id || null,
12801
12910
  input.agent_id || null,
12802
12911
  input.name,
@@ -12831,6 +12940,14 @@ function updatePlan(id, input, db) {
12831
12940
  sets.push("name = ?");
12832
12941
  params.push(input.name);
12833
12942
  }
12943
+ if (input.slug !== undefined) {
12944
+ const slug = normalizePlanSlug(input.slug);
12945
+ if (planSlugExists(slug, plan.project_id, d, id)) {
12946
+ throw new Error(`Plan slug already exists in this scope: ${slug}`);
12947
+ }
12948
+ sets.push("slug = ?");
12949
+ params.push(slug);
12950
+ }
12834
12951
  if (input.description !== undefined) {
12835
12952
  sets.push("description = ?");
12836
12953
  params.push(input.description);
@@ -12875,6 +12992,7 @@ var init_plans = __esm(() => {
12875
12992
  init_event_emission_safety();
12876
12993
  init_event_hooks();
12877
12994
  init_database();
12995
+ init_projects();
12878
12996
  init_storage_tombstones();
12879
12997
  });
12880
12998
 
@@ -22445,6 +22563,7 @@ Tasks:` : null,
22445
22563
  if (shouldRegisterTool("create_plan")) {
22446
22564
  server.tool("create_plan", "Create a new plan (sprint/milestone).", {
22447
22565
  name: exports_external.string().describe("Plan name"),
22566
+ slug: exports_external.string().optional().describe("Readable plan slug"),
22448
22567
  project_id: exports_external.string().optional().describe("Project ID"),
22449
22568
  description: exports_external.string().optional(),
22450
22569
  start_date: exports_external.string().optional().describe("ISO date"),
@@ -29506,6 +29625,36 @@ function prepareValue(column, value) {
29506
29625
  return JSON.stringify(value ?? (column === "tags" || column === "files_changed" ? [] : {}));
29507
29626
  return value === undefined ? null : value;
29508
29627
  }
29628
+ function slugifyPlanValue(value) {
29629
+ return typeof value === "string" ? value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "") : "";
29630
+ }
29631
+ function planSlugBase3(plan) {
29632
+ return slugifyPlanValue(plan.slug) || slugifyPlanValue(plan.name) || "plan";
29633
+ }
29634
+ function planSlugScope(projectId) {
29635
+ return typeof projectId === "string" && projectId ? projectId : "__global__";
29636
+ }
29637
+ function planSlugKey(projectId, slug) {
29638
+ return `${planSlugScope(projectId)}:${slug}`;
29639
+ }
29640
+ function normalizeBridgePlanSlugs(plans, db) {
29641
+ const existingRows = db.query("SELECT id, project_id, slug FROM plans WHERE slug IS NOT NULL").all();
29642
+ const existingIds = new Set(existingRows.map((row) => row.id));
29643
+ const used = new Set(existingRows.filter((row) => row.slug).map((row) => planSlugKey(row.project_id, row.slug)));
29644
+ return plans.map((plan) => {
29645
+ if (existingIds.has(plan.id))
29646
+ return plan;
29647
+ const base = planSlugBase3(plan);
29648
+ let candidate = base;
29649
+ let suffix = 2;
29650
+ while (used.has(planSlugKey(plan.project_id, candidate))) {
29651
+ candidate = `${base}-${suffix}`;
29652
+ suffix += 1;
29653
+ }
29654
+ used.add(planSlugKey(plan.project_id, candidate));
29655
+ return { ...plan, slug: candidate };
29656
+ });
29657
+ }
29509
29658
  function insertRecord(db, tableKey, row) {
29510
29659
  const table = tableByKey[tableKey];
29511
29660
  const columns = insertColumns[tableKey];
@@ -29642,6 +29791,7 @@ function importLocalBridgeBundle(bundle, options = {}, db) {
29642
29791
  const conflictStrategy = options.conflictStrategy ?? "skip";
29643
29792
  const data = {
29644
29793
  ...bundle.data,
29794
+ plans: normalizeBridgePlanSlugs(bundle.data.plans, d),
29645
29795
  tasks: sortedTasks(bundle.data.tasks),
29646
29796
  saved_views: bundle.data.saved_views ?? [],
29647
29797
  task_boards: bundle.data.task_boards ?? [],
@@ -29726,7 +29876,7 @@ var init_local_bridge = __esm(() => {
29726
29876
  insertColumns = {
29727
29877
  projects: ["id", "name", "path", "description", "task_list_id", "task_prefix", "task_counter", "created_at", "updated_at", "machine_id", "synced_at"],
29728
29878
  task_lists: ["id", "project_id", "slug", "name", "description", "metadata", "created_at", "updated_at", "machine_id", "synced_at"],
29729
- plans: ["id", "project_id", "task_list_id", "agent_id", "name", "description", "status", "created_at", "updated_at", "machine_id", "synced_at"],
29879
+ plans: ["id", "slug", "project_id", "task_list_id", "agent_id", "name", "description", "status", "created_at", "updated_at", "machine_id", "synced_at"],
29730
29880
  tasks: [
29731
29881
  "id",
29732
29882
  "short_id",
@@ -30228,6 +30378,7 @@ function createAgentProjectDemoBundle() {
30228
30378
  });
30229
30379
  data.plans.push({
30230
30380
  id: ids.plan,
30381
+ slug: "ship-local-demo-workflow",
30231
30382
  project_id: ids.project,
30232
30383
  task_list_id: ids.list,
30233
30384
  agent_id: "demo-agent",
@@ -39238,6 +39389,7 @@ async function handleCreatePlan(req, _ctx, json2) {
39238
39389
  return json2({ error: "Missing 'name'" }, 400);
39239
39390
  const plan = createPlan({
39240
39391
  name: body.name,
39392
+ slug: body.slug,
39241
39393
  description: body.description,
39242
39394
  project_id: body.project_id,
39243
39395
  task_list_id: body.task_list_id,
@@ -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;AAkJjD,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,QA+1FlF"}
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;AAkJjD,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,QAg2FlF"}