@zeliper/zscode-mcp-server 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/errors/index.d.ts +112 -0
  2. package/dist/errors/index.d.ts.map +1 -0
  3. package/dist/errors/index.js +231 -0
  4. package/dist/errors/index.js.map +1 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +50 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/state/manager.d.ts +54 -0
  10. package/dist/state/manager.d.ts.map +1 -0
  11. package/dist/state/manager.js +500 -0
  12. package/dist/state/manager.js.map +1 -0
  13. package/dist/state/schema.d.ts +942 -0
  14. package/dist/state/schema.d.ts.map +1 -0
  15. package/dist/state/schema.js +179 -0
  16. package/dist/state/schema.js.map +1 -0
  17. package/dist/state/types.d.ts +117 -0
  18. package/dist/state/types.d.ts.map +1 -0
  19. package/dist/state/types.js +2 -0
  20. package/dist/state/types.js.map +1 -0
  21. package/dist/tools/archive.d.ts +6 -0
  22. package/dist/tools/archive.d.ts.map +1 -0
  23. package/dist/tools/archive.js +67 -0
  24. package/dist/tools/archive.js.map +1 -0
  25. package/dist/tools/cancel.d.ts +6 -0
  26. package/dist/tools/cancel.d.ts.map +1 -0
  27. package/dist/tools/cancel.js +65 -0
  28. package/dist/tools/cancel.js.map +1 -0
  29. package/dist/tools/context.d.ts +6 -0
  30. package/dist/tools/context.d.ts.map +1 -0
  31. package/dist/tools/context.js +124 -0
  32. package/dist/tools/context.js.map +1 -0
  33. package/dist/tools/index.d.ts +6 -0
  34. package/dist/tools/index.d.ts.map +1 -0
  35. package/dist/tools/index.js +24 -0
  36. package/dist/tools/index.js.map +1 -0
  37. package/dist/tools/plan.d.ts +6 -0
  38. package/dist/tools/plan.d.ts.map +1 -0
  39. package/dist/tools/plan.js +186 -0
  40. package/dist/tools/plan.js.map +1 -0
  41. package/dist/tools/staging.d.ts +6 -0
  42. package/dist/tools/staging.d.ts.map +1 -0
  43. package/dist/tools/staging.js +224 -0
  44. package/dist/tools/staging.js.map +1 -0
  45. package/dist/tools/status.d.ts +6 -0
  46. package/dist/tools/status.d.ts.map +1 -0
  47. package/dist/tools/status.js +144 -0
  48. package/dist/tools/status.js.map +1 -0
  49. package/dist/utils/artifacts.d.ts +57 -0
  50. package/dist/utils/artifacts.d.ts.map +1 -0
  51. package/dist/utils/artifacts.js +180 -0
  52. package/dist/utils/artifacts.js.map +1 -0
  53. package/dist/utils/paths.d.ts +68 -0
  54. package/dist/utils/paths.d.ts.map +1 -0
  55. package/dist/utils/paths.js +122 -0
  56. package/dist/utils/paths.js.map +1 -0
  57. package/package.json +53 -0
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Base error class for ZSCode
3
+ */
4
+ export declare class ZSCodeError extends Error {
5
+ readonly code: string;
6
+ readonly details?: Record<string, unknown>;
7
+ constructor(message: string, code: string, details?: Record<string, unknown>);
8
+ toJSON(): Record<string, unknown>;
9
+ }
10
+ /**
11
+ * State-related errors
12
+ */
13
+ export declare class StateError extends ZSCodeError {
14
+ constructor(message: string, details?: Record<string, unknown>);
15
+ }
16
+ export declare class StateNotFoundError extends StateError {
17
+ constructor(projectRoot: string);
18
+ }
19
+ export declare class StateValidationError extends StateError {
20
+ constructor(validationErrors: unknown[]);
21
+ }
22
+ export declare class ProjectNotInitializedError extends StateError {
23
+ constructor();
24
+ }
25
+ /**
26
+ * Plan-related errors
27
+ */
28
+ export declare class PlanError extends ZSCodeError {
29
+ readonly planId: string;
30
+ constructor(message: string, planId: string, details?: Record<string, unknown>);
31
+ }
32
+ export declare class PlanNotFoundError extends PlanError {
33
+ constructor(planId: string);
34
+ }
35
+ export declare class PlanInvalidStateError extends PlanError {
36
+ constructor(planId: string, currentState: string, expectedStates: string[]);
37
+ }
38
+ export declare class PlanAlreadyExistsError extends PlanError {
39
+ constructor(planId: string);
40
+ }
41
+ /**
42
+ * Staging-related errors
43
+ */
44
+ export declare class StagingError extends ZSCodeError {
45
+ readonly stagingId: string;
46
+ constructor(message: string, stagingId: string, details?: Record<string, unknown>);
47
+ }
48
+ export declare class StagingNotFoundError extends StagingError {
49
+ constructor(stagingId: string);
50
+ }
51
+ export declare class StagingOrderError extends StagingError {
52
+ constructor(stagingId: string, previousStagingId: string);
53
+ }
54
+ export declare class StagingInvalidStateError extends StagingError {
55
+ constructor(stagingId: string, currentState: string, expectedStates: string[]);
56
+ }
57
+ export declare class StagingPlanMismatchError extends StagingError {
58
+ constructor(stagingId: string, expectedPlanId: string, actualPlanId: string);
59
+ }
60
+ /**
61
+ * Task-related errors
62
+ */
63
+ export declare class TaskError extends ZSCodeError {
64
+ readonly taskId: string;
65
+ constructor(message: string, taskId: string, details?: Record<string, unknown>);
66
+ }
67
+ export declare class TaskNotFoundError extends TaskError {
68
+ constructor(taskId: string);
69
+ }
70
+ export declare class TaskInvalidStateError extends TaskError {
71
+ constructor(taskId: string, currentState: string, expectedStates: string[]);
72
+ }
73
+ export declare class TaskDependencyError extends TaskError {
74
+ constructor(taskId: string, unmetDependencies: string[]);
75
+ }
76
+ /**
77
+ * File system errors
78
+ */
79
+ export declare class FileSystemError extends ZSCodeError {
80
+ constructor(operation: string, path: string, originalError?: Error);
81
+ }
82
+ /**
83
+ * Validation errors
84
+ */
85
+ export declare class ValidationError extends ZSCodeError {
86
+ constructor(message: string, field?: string, details?: Record<string, unknown>);
87
+ }
88
+ /**
89
+ * Get suggestion for error
90
+ */
91
+ export declare function getSuggestion(error: ZSCodeError): string | undefined;
92
+ /**
93
+ * Error handler wrapper for tools
94
+ */
95
+ export interface ToolErrorResult {
96
+ success: false;
97
+ error: {
98
+ code: string;
99
+ message: string;
100
+ details?: Record<string, unknown>;
101
+ suggestion?: string;
102
+ };
103
+ }
104
+ export declare function createToolErrorResult(error: unknown): ToolErrorResult;
105
+ /**
106
+ * Async wrapper for tool handlers with error handling
107
+ */
108
+ export declare function withErrorHandling<T>(operation: () => Promise<T>, context: string): Promise<{
109
+ success: true;
110
+ data: T;
111
+ } | ToolErrorResult>;
112
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Base error class for ZSCode
3
+ */
4
+ export class ZSCodeError extends Error {
5
+ code;
6
+ details;
7
+ constructor(message, code, details) {
8
+ super(message);
9
+ this.name = "ZSCodeError";
10
+ this.code = code;
11
+ this.details = details;
12
+ Error.captureStackTrace?.(this, this.constructor);
13
+ }
14
+ toJSON() {
15
+ return {
16
+ error: this.name,
17
+ code: this.code,
18
+ message: this.message,
19
+ details: this.details,
20
+ };
21
+ }
22
+ }
23
+ /**
24
+ * State-related errors
25
+ */
26
+ export class StateError extends ZSCodeError {
27
+ constructor(message, details) {
28
+ super(message, "STATE_ERROR", details);
29
+ this.name = "StateError";
30
+ }
31
+ }
32
+ export class StateNotFoundError extends StateError {
33
+ constructor(projectRoot) {
34
+ super(`state.json not found at ${projectRoot}/.claude/state.json`, {
35
+ projectRoot,
36
+ suggestion: "Run 'npx zscode init' to initialize the project",
37
+ });
38
+ this.name = "StateNotFoundError";
39
+ }
40
+ }
41
+ export class StateValidationError extends StateError {
42
+ constructor(validationErrors) {
43
+ super("state.json validation failed", { validationErrors });
44
+ this.name = "StateValidationError";
45
+ }
46
+ }
47
+ export class ProjectNotInitializedError extends StateError {
48
+ constructor() {
49
+ super("Project not initialized", {
50
+ suggestion: "Run 'npx zscode init' to initialize the project",
51
+ });
52
+ this.name = "ProjectNotInitializedError";
53
+ }
54
+ }
55
+ /**
56
+ * Plan-related errors
57
+ */
58
+ export class PlanError extends ZSCodeError {
59
+ planId;
60
+ constructor(message, planId, details) {
61
+ super(message, "PLAN_ERROR", { planId, ...details });
62
+ this.name = "PlanError";
63
+ this.planId = planId;
64
+ }
65
+ }
66
+ export class PlanNotFoundError extends PlanError {
67
+ constructor(planId) {
68
+ super(`Plan not found: ${planId}`, planId, {
69
+ suggestion: "Use 'zscode:status' to see available plans",
70
+ });
71
+ this.name = "PlanNotFoundError";
72
+ }
73
+ }
74
+ export class PlanInvalidStateError extends PlanError {
75
+ constructor(planId, currentState, expectedStates) {
76
+ super(`Plan ${planId} is in '${currentState}' state, expected one of: ${expectedStates.join(", ")}`, planId, { currentState, expectedStates });
77
+ this.name = "PlanInvalidStateError";
78
+ }
79
+ }
80
+ export class PlanAlreadyExistsError extends PlanError {
81
+ constructor(planId) {
82
+ super(`Plan already exists: ${planId}`, planId);
83
+ this.name = "PlanAlreadyExistsError";
84
+ }
85
+ }
86
+ /**
87
+ * Staging-related errors
88
+ */
89
+ export class StagingError extends ZSCodeError {
90
+ stagingId;
91
+ constructor(message, stagingId, details) {
92
+ super(message, "STAGING_ERROR", { stagingId, ...details });
93
+ this.name = "StagingError";
94
+ this.stagingId = stagingId;
95
+ }
96
+ }
97
+ export class StagingNotFoundError extends StagingError {
98
+ constructor(stagingId) {
99
+ super(`Staging not found: ${stagingId}`, stagingId);
100
+ this.name = "StagingNotFoundError";
101
+ }
102
+ }
103
+ export class StagingOrderError extends StagingError {
104
+ constructor(stagingId, previousStagingId) {
105
+ super(`Cannot start staging ${stagingId}: previous staging ${previousStagingId} is not completed`, stagingId, {
106
+ previousStagingId,
107
+ suggestion: "Complete the previous staging first or use 'zscode:cancel' to skip",
108
+ });
109
+ this.name = "StagingOrderError";
110
+ }
111
+ }
112
+ export class StagingInvalidStateError extends StagingError {
113
+ constructor(stagingId, currentState, expectedStates) {
114
+ super(`Staging ${stagingId} is in '${currentState}' state, expected one of: ${expectedStates.join(", ")}`, stagingId, { currentState, expectedStates });
115
+ this.name = "StagingInvalidStateError";
116
+ }
117
+ }
118
+ export class StagingPlanMismatchError extends StagingError {
119
+ constructor(stagingId, expectedPlanId, actualPlanId) {
120
+ super(`Staging ${stagingId} does not belong to plan ${expectedPlanId}`, stagingId, { expectedPlanId, actualPlanId });
121
+ this.name = "StagingPlanMismatchError";
122
+ }
123
+ }
124
+ /**
125
+ * Task-related errors
126
+ */
127
+ export class TaskError extends ZSCodeError {
128
+ taskId;
129
+ constructor(message, taskId, details) {
130
+ super(message, "TASK_ERROR", { taskId, ...details });
131
+ this.name = "TaskError";
132
+ this.taskId = taskId;
133
+ }
134
+ }
135
+ export class TaskNotFoundError extends TaskError {
136
+ constructor(taskId) {
137
+ super(`Task not found: ${taskId}`, taskId);
138
+ this.name = "TaskNotFoundError";
139
+ }
140
+ }
141
+ export class TaskInvalidStateError extends TaskError {
142
+ constructor(taskId, currentState, expectedStates) {
143
+ super(`Task ${taskId} is in '${currentState}' state, expected one of: ${expectedStates.join(", ")}`, taskId, { currentState, expectedStates });
144
+ this.name = "TaskInvalidStateError";
145
+ }
146
+ }
147
+ export class TaskDependencyError extends TaskError {
148
+ constructor(taskId, unmetDependencies) {
149
+ super(`Task ${taskId} has unmet dependencies: ${unmetDependencies.join(", ")}`, taskId, { unmetDependencies });
150
+ this.name = "TaskDependencyError";
151
+ }
152
+ }
153
+ /**
154
+ * File system errors
155
+ */
156
+ export class FileSystemError extends ZSCodeError {
157
+ constructor(operation, path, originalError) {
158
+ super(`File system error during ${operation}: ${path}`, "FS_ERROR", {
159
+ operation,
160
+ path,
161
+ originalError: originalError?.message,
162
+ });
163
+ this.name = "FileSystemError";
164
+ }
165
+ }
166
+ /**
167
+ * Validation errors
168
+ */
169
+ export class ValidationError extends ZSCodeError {
170
+ constructor(message, field, details) {
171
+ super(message, "VALIDATION_ERROR", { field, ...details });
172
+ this.name = "ValidationError";
173
+ }
174
+ }
175
+ /**
176
+ * Get suggestion for error
177
+ */
178
+ export function getSuggestion(error) {
179
+ const details = error.details;
180
+ if (details && typeof details.suggestion === "string") {
181
+ return details.suggestion;
182
+ }
183
+ switch (error.name) {
184
+ case "StateNotFoundError":
185
+ case "ProjectNotInitializedError":
186
+ return "Run 'npx zscode init' to initialize the project";
187
+ case "PlanNotFoundError":
188
+ return "Use 'zscode:status' to see available plans";
189
+ case "StagingOrderError":
190
+ return "Complete the previous staging first or use 'zscode:cancel' to skip";
191
+ default:
192
+ return undefined;
193
+ }
194
+ }
195
+ export function createToolErrorResult(error) {
196
+ if (error instanceof ZSCodeError) {
197
+ return {
198
+ success: false,
199
+ error: {
200
+ code: error.code,
201
+ message: error.message,
202
+ details: error.details,
203
+ suggestion: getSuggestion(error),
204
+ },
205
+ };
206
+ }
207
+ // Unknown error
208
+ const message = error instanceof Error ? error.message : String(error);
209
+ return {
210
+ success: false,
211
+ error: {
212
+ code: "UNEXPECTED_ERROR",
213
+ message: `Unexpected error: ${message}`,
214
+ details: { originalError: String(error) },
215
+ },
216
+ };
217
+ }
218
+ /**
219
+ * Async wrapper for tool handlers with error handling
220
+ */
221
+ export async function withErrorHandling(operation, context) {
222
+ try {
223
+ const data = await operation();
224
+ return { success: true, data };
225
+ }
226
+ catch (error) {
227
+ console.error(`[${context}] Error:`, error);
228
+ return createToolErrorResult(error);
229
+ }
230
+ }
231
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
+ import { StateManager } from "./state/manager.js";
5
+ import { registerAllTools } from "./tools/index.js";
6
+ import { normalizePath } from "./utils/paths.js";
7
+ const SERVER_NAME = "zscode";
8
+ const SERVER_VERSION = "1.0.0";
9
+ async function main() {
10
+ // Get project root from environment variable or current working directory
11
+ const projectRoot = process.env.ZSCODE_PROJECT_ROOT || process.cwd();
12
+ const normalizedRoot = normalizePath(projectRoot);
13
+ // Log to stderr (stdout is reserved for MCP protocol)
14
+ console.error(`[${SERVER_NAME}] Starting MCP server v${SERVER_VERSION}`);
15
+ console.error(`[${SERVER_NAME}] Project root: ${normalizedRoot}`);
16
+ // Initialize state manager
17
+ try {
18
+ await StateManager.initialize(normalizedRoot);
19
+ console.error(`[${SERVER_NAME}] State manager initialized`);
20
+ }
21
+ catch (error) {
22
+ console.error(`[${SERVER_NAME}] Warning: Could not load state.json (project may not be initialized)`);
23
+ }
24
+ // Create MCP server
25
+ const server = new McpServer({
26
+ name: SERVER_NAME,
27
+ version: SERVER_VERSION,
28
+ });
29
+ // Register all tools
30
+ registerAllTools(server, normalizedRoot);
31
+ console.error(`[${SERVER_NAME}] Tools registered`);
32
+ // Connect via stdio transport
33
+ const transport = new StdioServerTransport();
34
+ await server.connect(transport);
35
+ console.error(`[${SERVER_NAME}] Server connected and ready`);
36
+ // Handle shutdown
37
+ process.on("SIGINT", () => {
38
+ console.error(`[${SERVER_NAME}] Shutting down...`);
39
+ process.exit(0);
40
+ });
41
+ process.on("SIGTERM", () => {
42
+ console.error(`[${SERVER_NAME}] Shutting down...`);
43
+ process.exit(0);
44
+ });
45
+ }
46
+ main().catch((error) => {
47
+ console.error(`[${SERVER_NAME}] Fatal error:`, error);
48
+ process.exit(1);
49
+ });
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,KAAK,UAAU,IAAI;IACjB,0EAA0E;IAC1E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACrE,MAAM,cAAc,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAElD,sDAAsD;IACtD,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,0BAA0B,cAAc,EAAE,CAAC,CAAC;IACzE,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,mBAAmB,cAAc,EAAE,CAAC,CAAC;IAElE,2BAA2B;IAC3B,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,6BAA6B,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,uEAAuE,CAAC,CAAC;IACxG,CAAC;IAED,oBAAoB;IACpB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,qBAAqB;IACrB,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,oBAAoB,CAAC,CAAC;IAEnD,8BAA8B;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,8BAA8B,CAAC,CAAC;IAE7D,kBAAkB;IAClB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,oBAAoB,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,oBAAoB,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { State, Plan, Staging, Task, Project, Decision, TaskStatus, PlanStatus, HistoryEntryType, TaskOutput, IdGenerator } from "./types.js";
2
+ declare const idGenerator: IdGenerator;
3
+ export declare class StateManager {
4
+ private static instance;
5
+ private state;
6
+ private projectRoot;
7
+ private stateFilePath;
8
+ private constructor();
9
+ static initialize(projectRoot: string): Promise<StateManager>;
10
+ static getInstance(): StateManager;
11
+ private load;
12
+ private save;
13
+ getState(): State | null;
14
+ getProject(): Project | null;
15
+ getPlan(planId: string): Plan | undefined;
16
+ getStaging(stagingId: string): Staging | undefined;
17
+ getTask(taskId: string): Task | undefined;
18
+ getAllPlans(): Plan[];
19
+ getStagingsByPlan(planId: string): Staging[];
20
+ getTasksByStaging(stagingId: string): Task[];
21
+ getStagingByOrder(planId: string, order: number): Staging | undefined;
22
+ initializeProject(name: string, description?: string, goals?: string[], constraints?: string[]): Promise<Project>;
23
+ createPlan(title: string, description: string | undefined, stagingConfigs: Array<{
24
+ name: string;
25
+ description?: string;
26
+ execution_type: "parallel" | "sequential";
27
+ tasks: Array<{
28
+ title: string;
29
+ description?: string;
30
+ priority: "high" | "medium" | "low";
31
+ execution_mode: "parallel" | "sequential";
32
+ depends_on_index: number[];
33
+ }>;
34
+ }>): Promise<Plan>;
35
+ updatePlanStatus(planId: string, status: PlanStatus): Promise<void>;
36
+ startStaging(planId: string, stagingId: string): Promise<Staging>;
37
+ completestaging(stagingId: string): Promise<void>;
38
+ updateTaskStatus(taskId: string, status: TaskStatus, notes?: string): Promise<void>;
39
+ saveTaskOutput(taskId: string, output: TaskOutput): Promise<void>;
40
+ getExecutableTasks(stagingId: string): Task[];
41
+ archivePlan(planId: string, reason?: string): Promise<string>;
42
+ cancelPlan(planId: string, reason?: string): Promise<{
43
+ affectedStagings: number;
44
+ affectedTasks: number;
45
+ }>;
46
+ addHistory(type: HistoryEntryType, details: Record<string, unknown>): Promise<void>;
47
+ addDecision(title: string, decision: string, rationale?: string, relatedPlanId?: string, relatedStagingId?: string): Promise<Decision>;
48
+ startSession(): Promise<void>;
49
+ endSession(summary?: string): Promise<void>;
50
+ getProjectRoot(): string;
51
+ isInitialized(): boolean;
52
+ }
53
+ export { idGenerator };
54
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/state/manager.ts"],"names":[],"mappings":"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"}