obsidian-accomplishments-mcp 0.1.9 → 0.1.11

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 (269) hide show
  1. package/README.md +154 -182
  2. package/dist/index.js +207 -38
  3. package/dist/index.js.map +1 -1
  4. package/dist/integration.test.d.ts +8 -0
  5. package/dist/integration.test.d.ts.map +1 -0
  6. package/dist/integration.test.js +979 -0
  7. package/dist/integration.test.js.map +1 -0
  8. package/dist/models/types.d.ts +1 -2
  9. package/dist/models/types.d.ts.map +1 -1
  10. package/dist/models/types.js.map +1 -1
  11. package/dist/models/v2-types.d.ts +460 -0
  12. package/dist/models/v2-types.d.ts.map +1 -0
  13. package/dist/models/v2-types.js +137 -0
  14. package/dist/models/v2-types.js.map +1 -0
  15. package/dist/models/v2-types.test.d.ts +5 -0
  16. package/dist/models/v2-types.test.d.ts.map +1 -0
  17. package/dist/models/v2-types.test.js +133 -0
  18. package/dist/models/v2-types.test.js.map +1 -0
  19. package/dist/parsers/canvas-parser.d.ts +1 -1
  20. package/dist/parsers/canvas-parser.d.ts.map +1 -1
  21. package/dist/parsers/canvas-parser.js +1 -1
  22. package/dist/parsers/canvas-parser.js.map +1 -1
  23. package/dist/parsers/markdown-parser.js +9 -9
  24. package/dist/parsers/markdown-parser.js.map +1 -1
  25. package/dist/services/v2/archive-manager.d.ts +96 -0
  26. package/dist/services/v2/archive-manager.d.ts.map +1 -0
  27. package/dist/services/v2/archive-manager.js +281 -0
  28. package/dist/services/v2/archive-manager.js.map +1 -0
  29. package/dist/services/v2/canvas-manager.d.ts +155 -0
  30. package/dist/services/v2/canvas-manager.d.ts.map +1 -0
  31. package/dist/services/v2/canvas-manager.js +540 -0
  32. package/dist/services/v2/canvas-manager.js.map +1 -0
  33. package/dist/services/v2/canvas-manager.test.d.ts +5 -0
  34. package/dist/services/v2/canvas-manager.test.d.ts.map +1 -0
  35. package/dist/services/v2/canvas-manager.test.js +327 -0
  36. package/dist/services/v2/canvas-manager.test.js.map +1 -0
  37. package/dist/services/v2/cascade-manager.d.ts +54 -0
  38. package/dist/services/v2/cascade-manager.d.ts.map +1 -0
  39. package/dist/services/v2/cascade-manager.js +220 -0
  40. package/dist/services/v2/cascade-manager.js.map +1 -0
  41. package/dist/services/v2/cycle-detector.d.ts +76 -0
  42. package/dist/services/v2/cycle-detector.d.ts.map +1 -0
  43. package/dist/services/v2/cycle-detector.js +183 -0
  44. package/dist/services/v2/cycle-detector.js.map +1 -0
  45. package/dist/services/v2/cycle-detector.test.d.ts +7 -0
  46. package/dist/services/v2/cycle-detector.test.d.ts.map +1 -0
  47. package/dist/services/v2/cycle-detector.test.js +125 -0
  48. package/dist/services/v2/cycle-detector.test.js.map +1 -0
  49. package/dist/services/v2/entity-parser.d.ts +54 -0
  50. package/dist/services/v2/entity-parser.d.ts.map +1 -0
  51. package/dist/services/v2/entity-parser.js +418 -0
  52. package/dist/services/v2/entity-parser.js.map +1 -0
  53. package/dist/services/v2/entity-parser.test.d.ts +5 -0
  54. package/dist/services/v2/entity-parser.test.d.ts.map +1 -0
  55. package/dist/services/v2/entity-parser.test.js +637 -0
  56. package/dist/services/v2/entity-parser.test.js.map +1 -0
  57. package/dist/services/v2/entity-serializer.d.ts +94 -0
  58. package/dist/services/v2/entity-serializer.d.ts.map +1 -0
  59. package/dist/services/v2/entity-serializer.js +583 -0
  60. package/dist/services/v2/entity-serializer.js.map +1 -0
  61. package/dist/services/v2/entity-serializer.test.d.ts +5 -0
  62. package/dist/services/v2/entity-serializer.test.d.ts.map +1 -0
  63. package/dist/services/v2/entity-serializer.test.js +241 -0
  64. package/dist/services/v2/entity-serializer.test.js.map +1 -0
  65. package/dist/services/v2/entity-validator.d.ts +65 -0
  66. package/dist/services/v2/entity-validator.d.ts.map +1 -0
  67. package/dist/services/v2/entity-validator.js +573 -0
  68. package/dist/services/v2/entity-validator.js.map +1 -0
  69. package/dist/services/v2/entity-validator.test.d.ts +5 -0
  70. package/dist/services/v2/entity-validator.test.d.ts.map +1 -0
  71. package/dist/services/v2/entity-validator.test.js +519 -0
  72. package/dist/services/v2/entity-validator.test.js.map +1 -0
  73. package/dist/services/v2/file-manager.d.ts +73 -0
  74. package/dist/services/v2/file-manager.d.ts.map +1 -0
  75. package/dist/services/v2/file-manager.js +310 -0
  76. package/dist/services/v2/file-manager.js.map +1 -0
  77. package/dist/services/v2/file-manager.test.d.ts +5 -0
  78. package/dist/services/v2/file-manager.test.d.ts.map +1 -0
  79. package/dist/services/v2/file-manager.test.js +339 -0
  80. package/dist/services/v2/file-manager.test.js.map +1 -0
  81. package/dist/services/v2/index-manager.d.ts +68 -0
  82. package/dist/services/v2/index-manager.d.ts.map +1 -0
  83. package/dist/services/v2/index-manager.js +228 -0
  84. package/dist/services/v2/index-manager.js.map +1 -0
  85. package/dist/services/v2/index-manager.test.d.ts +5 -0
  86. package/dist/services/v2/index-manager.test.d.ts.map +1 -0
  87. package/dist/services/v2/index-manager.test.js +386 -0
  88. package/dist/services/v2/index-manager.test.js.map +1 -0
  89. package/dist/services/v2/index-service.d.ts +82 -0
  90. package/dist/services/v2/index-service.d.ts.map +1 -0
  91. package/dist/services/v2/index-service.js +274 -0
  92. package/dist/services/v2/index-service.js.map +1 -0
  93. package/dist/services/v2/index-service.test.d.ts +5 -0
  94. package/dist/services/v2/index-service.test.d.ts.map +1 -0
  95. package/dist/services/v2/index-service.test.js +117 -0
  96. package/dist/services/v2/index-service.test.js.map +1 -0
  97. package/dist/services/v2/lifecycle-manager.d.ts +59 -0
  98. package/dist/services/v2/lifecycle-manager.d.ts.map +1 -0
  99. package/dist/services/v2/lifecycle-manager.js +310 -0
  100. package/dist/services/v2/lifecycle-manager.js.map +1 -0
  101. package/dist/services/v2/lifecycle-manager.test.d.ts +5 -0
  102. package/dist/services/v2/lifecycle-manager.test.d.ts.map +1 -0
  103. package/dist/services/v2/lifecycle-manager.test.js +141 -0
  104. package/dist/services/v2/lifecycle-manager.test.js.map +1 -0
  105. package/dist/services/v2/path-resolver.d.ts +64 -0
  106. package/dist/services/v2/path-resolver.d.ts.map +1 -0
  107. package/dist/services/v2/path-resolver.js +174 -0
  108. package/dist/services/v2/path-resolver.js.map +1 -0
  109. package/dist/services/v2/progress-computer.d.ts +46 -0
  110. package/dist/services/v2/progress-computer.d.ts.map +1 -0
  111. package/dist/services/v2/progress-computer.js +200 -0
  112. package/dist/services/v2/progress-computer.js.map +1 -0
  113. package/dist/services/v2/search-service.d.ts +68 -0
  114. package/dist/services/v2/search-service.d.ts.map +1 -0
  115. package/dist/services/v2/search-service.js +194 -0
  116. package/dist/services/v2/search-service.js.map +1 -0
  117. package/dist/services/v2/transitive-dependency-remover.d.ts +54 -0
  118. package/dist/services/v2/transitive-dependency-remover.d.ts.map +1 -0
  119. package/dist/services/v2/transitive-dependency-remover.js +156 -0
  120. package/dist/services/v2/transitive-dependency-remover.js.map +1 -0
  121. package/dist/services/v2/transitive-dependency-remover.test.d.ts +7 -0
  122. package/dist/services/v2/transitive-dependency-remover.test.d.ts.map +1 -0
  123. package/dist/services/v2/transitive-dependency-remover.test.js +119 -0
  124. package/dist/services/v2/transitive-dependency-remover.test.js.map +1 -0
  125. package/dist/services/v2/v2-runtime.d.ts +374 -0
  126. package/dist/services/v2/v2-runtime.d.ts.map +1 -0
  127. package/dist/services/v2/v2-runtime.js +1908 -0
  128. package/dist/services/v2/v2-runtime.js.map +1 -0
  129. package/dist/services/v2/v2-runtime.test.d.ts +5 -0
  130. package/dist/services/v2/v2-runtime.test.d.ts.map +1 -0
  131. package/dist/services/v2/v2-runtime.test.js +658 -0
  132. package/dist/services/v2/v2-runtime.test.js.map +1 -0
  133. package/dist/services/v2/workstream-normalizer.d.ts +59 -0
  134. package/dist/services/v2/workstream-normalizer.d.ts.map +1 -0
  135. package/dist/services/v2/workstream-normalizer.js +137 -0
  136. package/dist/services/v2/workstream-normalizer.js.map +1 -0
  137. package/dist/services/v2/workstream-normalizer.test.d.ts +7 -0
  138. package/dist/services/v2/workstream-normalizer.test.d.ts.map +1 -0
  139. package/dist/services/v2/workstream-normalizer.test.js +130 -0
  140. package/dist/services/v2/workstream-normalizer.test.js.map +1 -0
  141. package/dist/test-runner.d.ts +4 -1
  142. package/dist/test-runner.d.ts.map +1 -1
  143. package/dist/test-runner.js +44 -249
  144. package/dist/test-runner.js.map +1 -1
  145. package/dist/tools/batch-operations-tools.d.ts +54 -0
  146. package/dist/tools/batch-operations-tools.d.ts.map +1 -0
  147. package/dist/tools/batch-operations-tools.js +370 -0
  148. package/dist/tools/batch-operations-tools.js.map +1 -0
  149. package/dist/tools/decision-document-tools.d.ts +78 -0
  150. package/dist/tools/decision-document-tools.d.ts.map +1 -0
  151. package/dist/tools/decision-document-tools.js +260 -0
  152. package/dist/tools/decision-document-tools.js.map +1 -0
  153. package/dist/tools/entity-management-tools.d.ts +79 -0
  154. package/dist/tools/entity-management-tools.d.ts.map +1 -0
  155. package/dist/tools/entity-management-tools.js +851 -0
  156. package/dist/tools/entity-management-tools.js.map +1 -0
  157. package/dist/tools/entity-management-tools.test.d.ts +5 -0
  158. package/dist/tools/entity-management-tools.test.d.ts.map +1 -0
  159. package/dist/tools/entity-management-tools.test.js +530 -0
  160. package/dist/tools/entity-management-tools.test.js.map +1 -0
  161. package/dist/tools/index.d.ts +15 -271
  162. package/dist/tools/index.d.ts.map +1 -1
  163. package/dist/tools/index.js +510 -47
  164. package/dist/tools/index.js.map +1 -1
  165. package/dist/tools/index.test.d.ts +8 -0
  166. package/dist/tools/index.test.d.ts.map +1 -0
  167. package/dist/tools/index.test.js +429 -0
  168. package/dist/tools/index.test.js.map +1 -0
  169. package/dist/tools/project-understanding-tools.d.ts +75 -0
  170. package/dist/tools/project-understanding-tools.d.ts.map +1 -0
  171. package/dist/tools/project-understanding-tools.js +751 -0
  172. package/dist/tools/project-understanding-tools.js.map +1 -0
  173. package/dist/tools/search-navigation-tools.d.ts +77 -0
  174. package/dist/tools/search-navigation-tools.d.ts.map +1 -0
  175. package/dist/tools/search-navigation-tools.js +379 -0
  176. package/dist/tools/search-navigation-tools.js.map +1 -0
  177. package/dist/tools/tool-types.d.ts +703 -0
  178. package/dist/tools/tool-types.d.ts.map +1 -0
  179. package/dist/tools/tool-types.js +7 -0
  180. package/dist/tools/tool-types.js.map +1 -0
  181. package/dist/utils/config.d.ts +0 -4
  182. package/dist/utils/config.d.ts.map +1 -1
  183. package/dist/utils/config.js +2 -19
  184. package/dist/utils/config.js.map +1 -1
  185. package/package.json +16 -1
  186. package/dist/services/accomplishment-service.d.ts +0 -33
  187. package/dist/services/accomplishment-service.d.ts.map +0 -1
  188. package/dist/services/accomplishment-service.js +0 -293
  189. package/dist/services/accomplishment-service.js.map +0 -1
  190. package/dist/services/canvas-service.d.ts +0 -96
  191. package/dist/services/canvas-service.d.ts.map +0 -1
  192. package/dist/services/canvas-service.js +0 -231
  193. package/dist/services/canvas-service.js.map +0 -1
  194. package/dist/services/context-doc-service.d.ts +0 -70
  195. package/dist/services/context-doc-service.d.ts.map +0 -1
  196. package/dist/services/context-doc-service.js +0 -229
  197. package/dist/services/context-doc-service.js.map +0 -1
  198. package/dist/services/dependency-service.d.ts +0 -22
  199. package/dist/services/dependency-service.d.ts.map +0 -1
  200. package/dist/services/dependency-service.js +0 -99
  201. package/dist/services/dependency-service.js.map +0 -1
  202. package/dist/services/status-indicator-service.d.ts +0 -40
  203. package/dist/services/status-indicator-service.d.ts.map +0 -1
  204. package/dist/services/status-indicator-service.js +0 -173
  205. package/dist/services/status-indicator-service.js.map +0 -1
  206. package/dist/services/task-service.d.ts +0 -32
  207. package/dist/services/task-service.d.ts.map +0 -1
  208. package/dist/services/task-service.js +0 -152
  209. package/dist/services/task-service.js.map +0 -1
  210. package/dist/test-real-vault.d.ts +0 -6
  211. package/dist/test-real-vault.d.ts.map +0 -1
  212. package/dist/test-real-vault.js +0 -30
  213. package/dist/test-real-vault.js.map +0 -1
  214. package/dist/tools/batch-operations.d.ts +0 -246
  215. package/dist/tools/batch-operations.d.ts.map +0 -1
  216. package/dist/tools/batch-operations.js +0 -235
  217. package/dist/tools/batch-operations.js.map +0 -1
  218. package/dist/tools/get-accomplishment.d.ts +0 -26
  219. package/dist/tools/get-accomplishment.d.ts.map +0 -1
  220. package/dist/tools/get-accomplishment.js +0 -53
  221. package/dist/tools/get-accomplishment.js.map +0 -1
  222. package/dist/tools/get-accomplishments-graph.d.ts +0 -26
  223. package/dist/tools/get-accomplishments-graph.d.ts.map +0 -1
  224. package/dist/tools/get-accomplishments-graph.js +0 -137
  225. package/dist/tools/get-accomplishments-graph.js.map +0 -1
  226. package/dist/tools/get-blocked-items.d.ts +0 -15
  227. package/dist/tools/get-blocked-items.d.ts.map +0 -1
  228. package/dist/tools/get-blocked-items.js +0 -73
  229. package/dist/tools/get-blocked-items.js.map +0 -1
  230. package/dist/tools/get-current-work.d.ts +0 -15
  231. package/dist/tools/get-current-work.d.ts.map +0 -1
  232. package/dist/tools/get-current-work.js +0 -68
  233. package/dist/tools/get-current-work.js.map +0 -1
  234. package/dist/tools/get-project-status.d.ts +0 -26
  235. package/dist/tools/get-project-status.d.ts.map +0 -1
  236. package/dist/tools/get-project-status.js +0 -98
  237. package/dist/tools/get-project-status.js.map +0 -1
  238. package/dist/tools/get-ready-to-start.d.ts +0 -15
  239. package/dist/tools/get-ready-to-start.d.ts.map +0 -1
  240. package/dist/tools/get-ready-to-start.js +0 -47
  241. package/dist/tools/get-ready-to-start.js.map +0 -1
  242. package/dist/tools/list-accomplishments.d.ts +0 -34
  243. package/dist/tools/list-accomplishments.d.ts.map +0 -1
  244. package/dist/tools/list-accomplishments.js +0 -34
  245. package/dist/tools/list-accomplishments.js.map +0 -1
  246. package/dist/tools/manage-accomplishment.d.ts +0 -147
  247. package/dist/tools/manage-accomplishment.d.ts.map +0 -1
  248. package/dist/tools/manage-accomplishment.js +0 -153
  249. package/dist/tools/manage-accomplishment.js.map +0 -1
  250. package/dist/tools/manage-dependency.d.ts +0 -41
  251. package/dist/tools/manage-dependency.d.ts.map +0 -1
  252. package/dist/tools/manage-dependency.js +0 -66
  253. package/dist/tools/manage-dependency.js.map +0 -1
  254. package/dist/tools/manage-task.d.ts +0 -119
  255. package/dist/tools/manage-task.d.ts.map +0 -1
  256. package/dist/tools/manage-task.js +0 -126
  257. package/dist/tools/manage-task.js.map +0 -1
  258. package/dist/tools/reconcile-canvas.d.ts +0 -33
  259. package/dist/tools/reconcile-canvas.d.ts.map +0 -1
  260. package/dist/tools/reconcile-canvas.js +0 -41
  261. package/dist/tools/reconcile-canvas.js.map +0 -1
  262. package/dist/tools/set-work-focus.d.ts +0 -48
  263. package/dist/tools/set-work-focus.d.ts.map +0 -1
  264. package/dist/tools/set-work-focus.js +0 -78
  265. package/dist/tools/set-work-focus.js.map +0 -1
  266. package/dist/tools/sync-dependencies.d.ts +0 -33
  267. package/dist/tools/sync-dependencies.d.ts.map +0 -1
  268. package/dist/tools/sync-dependencies.js +0 -144
  269. package/dist/tools/sync-dependencies.js.map +0 -1
@@ -0,0 +1,703 @@
1
+ /**
2
+ * V2 MCP Tool Type Definitions
3
+ *
4
+ * Input/output types for all V2 MCP tools.
5
+ */
6
+ import { EntityId, EntityType, EntityStatus, Priority } from '../models/v2-types.js';
7
+ export type { EntityStatus, Priority };
8
+ /** Workstream identifier (string alias for clarity) */
9
+ export type Workstream = string;
10
+ export interface EntitySummary {
11
+ id: EntityId;
12
+ type: EntityType;
13
+ title: string;
14
+ status: EntityStatus;
15
+ workstream: Workstream;
16
+ parent?: {
17
+ id: EntityId;
18
+ title: string;
19
+ };
20
+ children_count?: number;
21
+ last_updated: string;
22
+ }
23
+ export interface EntityFull extends EntitySummary {
24
+ content: string;
25
+ priority?: Priority;
26
+ dependencies?: {
27
+ blocks: EntityId[];
28
+ blocked_by: EntityId[];
29
+ };
30
+ task_progress?: {
31
+ total: number;
32
+ completed: number;
33
+ };
34
+ acceptance_criteria?: string[];
35
+ tasks?: TaskInfo[];
36
+ children?: EntitySummary[];
37
+ dependency_details?: {
38
+ blocks: EntitySummary[];
39
+ blocked_by: EntitySummary[];
40
+ };
41
+ implementation_context?: {
42
+ required: EntitySummary[];
43
+ reference: EntitySummary[];
44
+ assumes: string[];
45
+ };
46
+ documents?: EntityId[];
47
+ documented_by?: EntityId[];
48
+ implemented_by?: EntityId[];
49
+ decided_by?: EntityId[];
50
+ test_refs?: string[];
51
+ user_story?: string;
52
+ tier?: string;
53
+ phase?: string;
54
+ }
55
+ export interface TaskInfo {
56
+ title: string;
57
+ goal: string;
58
+ status: string;
59
+ estimate_hrs?: number;
60
+ actual_hrs?: number;
61
+ }
62
+ export interface CreateEntityInput {
63
+ type: EntityType;
64
+ data: {
65
+ title: string;
66
+ workstream: Workstream;
67
+ parent?: EntityId;
68
+ depends_on?: EntityId[];
69
+ implements?: EntityId[];
70
+ enables?: EntityId[];
71
+ [key: string]: unknown;
72
+ };
73
+ options?: {
74
+ canvas_source?: string;
75
+ add_to_canvas?: boolean;
76
+ };
77
+ }
78
+ export interface CreateEntityOutput {
79
+ id: EntityId;
80
+ entity: EntityFull;
81
+ dependencies_created: number;
82
+ canvas_node_added: boolean;
83
+ /** Messages from automatic processing (e.g., workstream normalization) */
84
+ messages?: string[];
85
+ }
86
+ export interface UpdateEntityInput {
87
+ id: EntityId;
88
+ data?: Record<string, unknown>;
89
+ add_dependencies?: EntityId[];
90
+ remove_dependencies?: EntityId[];
91
+ add_to?: {
92
+ implements?: EntityId[];
93
+ affects?: EntityId[];
94
+ };
95
+ remove_from?: {
96
+ implements?: EntityId[];
97
+ affects?: EntityId[];
98
+ };
99
+ status?: EntityStatus;
100
+ status_note?: string;
101
+ cascade?: boolean;
102
+ archived?: boolean;
103
+ archive_options?: {
104
+ force?: boolean;
105
+ cascade?: boolean;
106
+ archive_folder?: string;
107
+ remove_from_canvas?: boolean;
108
+ canvas_source?: string;
109
+ };
110
+ restore_options?: {
111
+ restore_children?: boolean;
112
+ add_to_canvas?: boolean;
113
+ canvas_source?: string;
114
+ };
115
+ }
116
+ /** Represents a single field change in an update operation */
117
+ export interface FieldChange {
118
+ field: string;
119
+ before: unknown;
120
+ after: unknown;
121
+ /** For array fields: items added */
122
+ added?: unknown[];
123
+ /** For array fields: items removed */
124
+ removed?: unknown[];
125
+ }
126
+ export interface UpdateEntityOutput {
127
+ id: EntityId;
128
+ entity: EntityFull;
129
+ /** List of field changes made (before/after diff) */
130
+ changes?: FieldChange[];
131
+ dependencies_added: number;
132
+ dependencies_removed: number;
133
+ /** Messages from automatic processing (e.g., workstream normalization) */
134
+ messages?: string[];
135
+ status_changed?: {
136
+ old_status: EntityStatus;
137
+ new_status: EntityStatus;
138
+ cascaded_updates: EntityId[];
139
+ };
140
+ archive_result?: {
141
+ archived: boolean;
142
+ archive_path?: string;
143
+ archived_children?: EntityId[];
144
+ };
145
+ restore_result?: {
146
+ restored: boolean;
147
+ restored_children?: EntityId[];
148
+ };
149
+ }
150
+ export interface UpdateEntityStatusInput {
151
+ id: EntityId;
152
+ status: EntityStatus;
153
+ note?: string;
154
+ cascade?: boolean;
155
+ }
156
+ export interface UpdateEntityStatusOutput {
157
+ id: EntityId;
158
+ old_status: EntityStatus;
159
+ new_status: EntityStatus;
160
+ cascaded_updates: EntityId[];
161
+ }
162
+ export interface ArchiveEntityInput {
163
+ id: EntityId;
164
+ force?: boolean;
165
+ remove_from_canvas?: boolean;
166
+ canvas_source?: string;
167
+ }
168
+ export interface ArchiveEntityOutput {
169
+ id: EntityId;
170
+ archived: boolean;
171
+ archive_path: string;
172
+ }
173
+ export interface ArchiveMilestoneInput {
174
+ milestone_id: EntityId;
175
+ archive_folder?: string;
176
+ remove_from_canvas?: boolean;
177
+ canvas_source?: string;
178
+ }
179
+ export interface ArchiveMilestoneOutput {
180
+ milestone_id: EntityId;
181
+ archived_entities: {
182
+ milestones: EntityId[];
183
+ stories: EntityId[];
184
+ tasks: EntityId[];
185
+ };
186
+ total_archived: number;
187
+ archive_path: string;
188
+ }
189
+ export interface RestoreFromArchiveInput {
190
+ id: EntityId;
191
+ restore_children?: boolean;
192
+ add_to_canvas?: boolean;
193
+ canvas_source?: string;
194
+ }
195
+ export interface RestoreFromArchiveOutput {
196
+ id: EntityId;
197
+ restored: boolean;
198
+ restored_children: EntityId[];
199
+ }
200
+ /** Operation type for batch_update */
201
+ export type BatchOpType = 'create' | 'update' | 'archive';
202
+ /** Single operation in a batch_update call */
203
+ export interface BatchOp {
204
+ /** Client-provided ID for idempotency and cross-reference within the batch */
205
+ client_id: string;
206
+ /** Operation type */
207
+ op: BatchOpType;
208
+ /** Entity type (required for create) */
209
+ type?: EntityType;
210
+ /** Entity ID (required for update/archive) */
211
+ id?: EntityId;
212
+ /** Payload for the operation */
213
+ payload: {
214
+ title?: string;
215
+ workstream?: string;
216
+ parent?: string;
217
+ depends_on?: string[];
218
+ implements?: string[];
219
+ enables?: string[];
220
+ status?: EntityStatus;
221
+ content?: string;
222
+ priority?: Priority;
223
+ archived?: boolean;
224
+ cascade?: boolean;
225
+ [key: string]: unknown;
226
+ };
227
+ }
228
+ /** Input for batch_update tool */
229
+ export interface BatchUpdateInput {
230
+ /** Array of operations to perform */
231
+ ops: BatchOp[];
232
+ /** Options for the batch operation */
233
+ options?: {
234
+ /** If true, rollback all on any failure. Default: false */
235
+ atomic?: boolean;
236
+ /** Add created entities to canvas */
237
+ add_to_canvas?: boolean;
238
+ /** Canvas file path */
239
+ canvas_source?: string;
240
+ /** If true, include full entity data in results. Default: false */
241
+ include_entities?: boolean;
242
+ /** Fields to include when include_entities is true. If not specified, returns all fields. */
243
+ fields?: EntityField[];
244
+ /** If true, preview changes without executing them. Default: false */
245
+ dry_run?: boolean;
246
+ };
247
+ }
248
+ /** Preview of changes for dry_run mode */
249
+ export interface DryRunPreview {
250
+ /** Client-provided ID */
251
+ client_id: string;
252
+ /** Entity ID (for updates/archives) */
253
+ id?: EntityId;
254
+ /** Operation type */
255
+ op: 'create' | 'update' | 'archive';
256
+ /** Predicted changes */
257
+ changes: FieldChange[];
258
+ /** Validation errors (if any) */
259
+ validation_errors: string[];
260
+ }
261
+ /** Result of a single operation in batch_update */
262
+ export interface BatchOpResult {
263
+ /** Client-provided ID */
264
+ client_id: string;
265
+ /** Operation status */
266
+ status: 'ok' | 'error';
267
+ /** Entity ID (for successful creates/updates) */
268
+ id?: EntityId;
269
+ /** Error details (for failed operations) */
270
+ error?: {
271
+ code: string;
272
+ message: string;
273
+ field?: string;
274
+ };
275
+ /** Entity data (when include_entities option is true) */
276
+ entity?: Partial<EntityFull>;
277
+ }
278
+ /** Output for batch_update tool */
279
+ export interface BatchUpdateOutput {
280
+ /** Results for each operation */
281
+ results: BatchOpResult[];
282
+ /** Summary of the batch operation */
283
+ summary: {
284
+ total: number;
285
+ succeeded: number;
286
+ failed: number;
287
+ };
288
+ /** Dry run mode indicator */
289
+ dry_run?: boolean;
290
+ /** Preview of changes (only in dry_run mode) */
291
+ would_update?: DryRunPreview[];
292
+ }
293
+ export interface GetProjectOverviewInput {
294
+ include_completed?: boolean;
295
+ include_archived?: boolean;
296
+ canvas_source?: string;
297
+ workstream?: Workstream;
298
+ group_by?: 'status' | 'type' | 'priority';
299
+ }
300
+ export interface GetProjectOverviewOutput {
301
+ summary: {
302
+ milestones: {
303
+ total: number;
304
+ completed: number;
305
+ in_progress: number;
306
+ blocked: number;
307
+ };
308
+ stories: {
309
+ total: number;
310
+ completed: number;
311
+ in_progress: number;
312
+ blocked: number;
313
+ };
314
+ tasks: {
315
+ total: number;
316
+ completed: number;
317
+ in_progress: number;
318
+ blocked: number;
319
+ };
320
+ decisions: {
321
+ total: number;
322
+ pending: number;
323
+ decided: number;
324
+ };
325
+ documents: {
326
+ total: number;
327
+ draft: number;
328
+ approved: number;
329
+ };
330
+ };
331
+ workstreams: Record<string, {
332
+ health: 'healthy' | 'at_risk' | 'blocked';
333
+ progress_percent: number;
334
+ blocked_count: number;
335
+ }>;
336
+ pending_decisions: number;
337
+ ready_for_implementation: number;
338
+ workstream_detail?: {
339
+ workstream: Workstream;
340
+ summary: {
341
+ total: number;
342
+ by_status: Record<string, number>;
343
+ by_type: Record<string, number>;
344
+ blocked_count: number;
345
+ cross_workstream_dependencies: number;
346
+ };
347
+ groups: Array<{
348
+ group_key: string;
349
+ entities: EntitySummary[];
350
+ }>;
351
+ blocking_other_workstreams: EntitySummary[];
352
+ blocked_by_other_workstreams: EntitySummary[];
353
+ };
354
+ }
355
+ export interface GetWorkstreamStatusInput {
356
+ workstream: Workstream;
357
+ include_completed?: boolean;
358
+ group_by?: 'status' | 'type' | 'priority';
359
+ }
360
+ export interface GetWorkstreamStatusOutput {
361
+ workstream: Workstream;
362
+ summary: {
363
+ total: number;
364
+ by_status: Record<string, number>;
365
+ by_type: Record<string, number>;
366
+ blocked_count: number;
367
+ cross_workstream_dependencies: number;
368
+ };
369
+ groups: Array<{
370
+ group_key: string;
371
+ entities: EntitySummary[];
372
+ }>;
373
+ blocking_other_workstreams: EntitySummary[];
374
+ blocked_by_other_workstreams: EntitySummary[];
375
+ }
376
+ export interface AnalyzeProjectStateInput {
377
+ workstream?: Workstream;
378
+ focus?: 'blockers' | 'actions' | 'both';
379
+ depth?: 'summary' | 'detailed';
380
+ }
381
+ export interface AnalyzeProjectStateOutput {
382
+ health: {
383
+ overall: 'healthy' | 'at_risk' | 'blocked';
384
+ workstreams: Record<string, {
385
+ status: string;
386
+ progress: number;
387
+ blocker_count: number;
388
+ }>;
389
+ };
390
+ blockers: {
391
+ critical_path: Array<{
392
+ blocker: EntitySummary;
393
+ impact: {
394
+ directly_blocks: EntityId[];
395
+ cascade_blocks: EntityId[];
396
+ total_blocked: number;
397
+ workstreams_affected: Workstream[];
398
+ };
399
+ suggested_resolution: string;
400
+ days_blocked: number;
401
+ }>;
402
+ by_type: {
403
+ pending_decisions: EntitySummary[];
404
+ incomplete_specs: EntitySummary[];
405
+ external_dependencies: EntitySummary[];
406
+ };
407
+ stale_items: EntitySummary[];
408
+ };
409
+ suggested_actions: Array<{
410
+ priority: number;
411
+ action: string;
412
+ reason: string;
413
+ effort: 'low' | 'medium' | 'high';
414
+ owner_hint: string;
415
+ }>;
416
+ stats: {
417
+ decisions_pending: number;
418
+ specs_ready: number;
419
+ items_blocked: number;
420
+ items_completed_this_week: number;
421
+ };
422
+ }
423
+ export interface SearchEntitiesInput {
424
+ query?: string;
425
+ from_id?: EntityId;
426
+ direction?: 'up' | 'down' | 'siblings' | 'dependencies';
427
+ depth?: number;
428
+ filters?: {
429
+ type?: EntityType[];
430
+ status?: EntityStatus[];
431
+ workstream?: Workstream[];
432
+ archived?: boolean;
433
+ };
434
+ limit?: number;
435
+ offset?: number;
436
+ include_content?: boolean;
437
+ fields?: EntityField[];
438
+ }
439
+ /** Search result item - fields are dynamic based on input.fields */
440
+ export interface SearchResultItem {
441
+ id: EntityId;
442
+ type?: EntityType;
443
+ title?: string;
444
+ status?: EntityStatus;
445
+ workstream?: Workstream;
446
+ relevance_score?: number;
447
+ snippet?: string;
448
+ parent?: EntityId | {
449
+ id: EntityId;
450
+ title: string;
451
+ };
452
+ path?: string;
453
+ last_updated?: string;
454
+ priority?: string;
455
+ phase?: string;
456
+ tier?: string;
457
+ content?: string;
458
+ [key: string]: unknown;
459
+ }
460
+ export interface SearchEntitiesOutput {
461
+ results: SearchResultItem[];
462
+ total_matches: number;
463
+ pagination?: {
464
+ offset: number;
465
+ limit: number;
466
+ has_more: boolean;
467
+ };
468
+ origin?: EntitySummary;
469
+ path_description?: string;
470
+ }
471
+ /**
472
+ * Available fields for get_entity:
473
+ * - id, type, title, status, workstream, last_updated (always included in summary)
474
+ * - parent, children_count (basic hierarchy)
475
+ * - content (full markdown content)
476
+ * - effort, priority (planning fields)
477
+ * - dependencies (blocks/blocked_by IDs)
478
+ * - dependency_details (blocks/blocked_by with summaries)
479
+ * - task_progress (for stories)
480
+ * - acceptance_criteria (for stories/tasks)
481
+ * - children (child entity summaries)
482
+ * - implementation_context (for implementation handoff)
483
+ */
484
+ export type EntityField = 'id' | 'type' | 'title' | 'status' | 'workstream' | 'last_updated' | 'parent' | 'children_count' | 'content' | 'priority' | 'dependencies' | 'dependency_details' | 'task_progress' | 'acceptance_criteria' | 'children' | 'implementation_context' | 'documents' | 'documented_by' | 'implemented_by' | 'decided_by' | 'test_refs' | 'user_story' | 'tier' | 'phase';
485
+ export interface GetEntityInput {
486
+ id: EntityId;
487
+ /** Fields to include in response. If not specified, returns summary fields. */
488
+ fields?: EntityField[];
489
+ }
490
+ export interface GetEntityOutput {
491
+ id: EntityId;
492
+ type: EntityType;
493
+ title: string;
494
+ status: EntityStatus;
495
+ workstream: Workstream;
496
+ last_updated: string;
497
+ parent?: {
498
+ id: EntityId;
499
+ title: string;
500
+ };
501
+ children_count?: number;
502
+ content?: string;
503
+ priority?: Priority;
504
+ dependencies?: {
505
+ blocks: EntityId[];
506
+ blocked_by: EntityId[];
507
+ };
508
+ dependency_details?: {
509
+ blocks: EntitySummary[];
510
+ blocked_by: EntitySummary[];
511
+ };
512
+ task_progress?: {
513
+ total: number;
514
+ completed: number;
515
+ };
516
+ acceptance_criteria?: string[];
517
+ children?: EntitySummary[];
518
+ implementation_context?: {
519
+ required: EntitySummary[];
520
+ reference: EntitySummary[];
521
+ assumes: string[];
522
+ };
523
+ documents?: EntityId[];
524
+ documented_by?: EntityId[];
525
+ implemented_by?: EntityId[];
526
+ decided_by?: EntityId[];
527
+ test_refs?: string[];
528
+ user_story?: string;
529
+ tier?: string;
530
+ phase?: string;
531
+ /** Info about requested fields that don't apply to this entity type. Only included when non-empty. */
532
+ _field_info?: {
533
+ inapplicable: string[];
534
+ };
535
+ }
536
+ export interface GetEntitiesInput {
537
+ /** Array of entity IDs to retrieve */
538
+ ids: EntityId[];
539
+ /** Fields to include in response. If not specified, returns summary fields. */
540
+ fields?: EntityField[];
541
+ }
542
+ export interface GetEntitiesOutput {
543
+ /** Retrieved entities keyed by ID */
544
+ entities: Record<EntityId, GetEntityOutput>;
545
+ /** IDs that were not found */
546
+ not_found: EntityId[];
547
+ }
548
+ export type ManageDocumentsAction = 'get_decision_history' | 'supersede_document' | 'get_document_history' | 'check_freshness';
549
+ export interface ManageDocumentsInput {
550
+ action: ManageDocumentsAction;
551
+ topic?: string;
552
+ workstream?: Workstream;
553
+ include_superseded?: boolean;
554
+ include_archived?: boolean;
555
+ document_id?: EntityId;
556
+ decision_id?: EntityId;
557
+ new_content?: string;
558
+ change_summary?: string;
559
+ }
560
+ export type ManageDocumentsOutput = {
561
+ action: 'get_decision_history';
562
+ } & GetDecisionHistoryOutput | {
563
+ action: 'supersede_document';
564
+ } & SupersedeDocumentOutput | {
565
+ action: 'get_document_history';
566
+ } & GetDocumentHistoryOutput | {
567
+ action: 'check_freshness';
568
+ } & CheckDocumentFreshnessOutput;
569
+ export interface GetDecisionHistoryInput {
570
+ topic?: string;
571
+ workstream?: Workstream;
572
+ include_superseded?: boolean;
573
+ include_archived?: boolean;
574
+ }
575
+ export interface GetDecisionHistoryOutput {
576
+ decisions: Array<{
577
+ id: EntityId;
578
+ title: string;
579
+ status: string;
580
+ decided_on: string;
581
+ affects: EntityId[];
582
+ superseded_by?: EntityId;
583
+ }>;
584
+ decision_chains: Array<{
585
+ current: EntityId;
586
+ history: EntityId[];
587
+ }>;
588
+ }
589
+ export interface SupersedeDocumentInput {
590
+ document_id: EntityId;
591
+ decision_id: EntityId;
592
+ new_content: string;
593
+ change_summary: string;
594
+ }
595
+ export interface SupersedeDocumentOutput {
596
+ document_id: EntityId;
597
+ new_version: number;
598
+ decision_id: EntityId;
599
+ previous_version_ref: string;
600
+ }
601
+ export interface GetDocumentHistoryInput {
602
+ document_id: EntityId;
603
+ }
604
+ export interface GetDocumentHistoryOutput {
605
+ document_id: EntityId;
606
+ current_version: number;
607
+ history: Array<{
608
+ version: number;
609
+ date: string;
610
+ supersedes_decision?: EntityId;
611
+ change_summary: string;
612
+ git_ref?: string;
613
+ }>;
614
+ }
615
+ export interface CheckDocumentFreshnessInput {
616
+ document_id: EntityId;
617
+ }
618
+ export interface CheckDocumentFreshnessOutput {
619
+ document_id: EntityId;
620
+ is_fresh: boolean;
621
+ stale_reasons: Array<{
622
+ type: 'newer_decision' | 'referenced_doc_changed' | 'todo_items';
623
+ detail: string;
624
+ entity_id?: EntityId;
625
+ }>;
626
+ suggested_updates: string[];
627
+ }
628
+ export interface GetFeatureCoverageInput {
629
+ phase?: 'MVP' | '0' | '1' | '2' | '3' | '4' | '5';
630
+ tier?: 'OSS' | 'Premium';
631
+ include_tests?: boolean;
632
+ /** If true, return only summary without features array. Reduces response size significantly. */
633
+ summary_only?: boolean;
634
+ /** Filter to specific feature IDs. When specified, only these features are included. */
635
+ feature_ids?: EntityId[];
636
+ /** Fields to include in each feature. If not specified, returns all fields. */
637
+ fields?: ('id' | 'title' | 'tier' | 'phase' | 'status' | 'implementation' | 'documentation' | 'testing')[];
638
+ }
639
+ export interface FeatureCoverageItem {
640
+ id: EntityId;
641
+ title: string;
642
+ tier: 'OSS' | 'Premium';
643
+ phase: 'MVP' | '0' | '1' | '2' | '3' | '4' | '5';
644
+ status: 'Planned' | 'In Progress' | 'Complete' | 'Deferred';
645
+ implementation: {
646
+ milestones: EntityId[];
647
+ stories: EntityId[];
648
+ progress_percent: number;
649
+ };
650
+ documentation: {
651
+ specs: EntityId[];
652
+ guides: EntityId[];
653
+ coverage: 'full' | 'partial' | 'none';
654
+ };
655
+ testing?: {
656
+ test_refs: string[];
657
+ has_tests: boolean;
658
+ };
659
+ }
660
+ export interface GetFeatureCoverageOutput {
661
+ /** Feature coverage items. Omitted when summary_only is true. */
662
+ features?: FeatureCoverageItem[];
663
+ summary: {
664
+ total: number;
665
+ implemented: number;
666
+ documented: number;
667
+ tested: number;
668
+ gaps: {
669
+ missing_implementation: EntityId[];
670
+ missing_docs: EntityId[];
671
+ missing_tests: EntityId[];
672
+ };
673
+ };
674
+ }
675
+ export interface GetSchemaInput {
676
+ /** Entity type to get schema for. If not specified, returns all schemas. */
677
+ entity_type?: EntityType;
678
+ /** If true, only return relationship definitions */
679
+ relationships_only?: boolean;
680
+ }
681
+ export interface SchemaFieldDefinition {
682
+ type: string;
683
+ required?: boolean;
684
+ default?: unknown;
685
+ values?: string[];
686
+ description?: string;
687
+ relationship?: {
688
+ target_types: string[];
689
+ inverse?: string;
690
+ auto_sync?: boolean;
691
+ };
692
+ }
693
+ export interface EntitySchema {
694
+ type: EntityType;
695
+ id_pattern: string;
696
+ fields: Record<string, SchemaFieldDefinition>;
697
+ statuses: string[];
698
+ status_transitions?: Record<string, string[]>;
699
+ }
700
+ export interface GetSchemaOutput {
701
+ schemas: EntitySchema[];
702
+ }
703
+ //# sourceMappingURL=tool-types.d.ts.map