@specforge/mcp 2.1.6 → 2.3.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 (177) hide show
  1. package/dist/cli/commands/blocked.js +6 -6
  2. package/dist/cli/commands/blocked.js.map +1 -1
  3. package/dist/cli/commands/debug/test.d.ts.map +1 -1
  4. package/dist/cli/commands/debug/test.js +4 -3
  5. package/dist/cli/commands/debug/test.js.map +1 -1
  6. package/dist/cli/commands/doctor.d.ts.map +1 -1
  7. package/dist/cli/commands/doctor.js +39 -23
  8. package/dist/cli/commands/doctor.js.map +1 -1
  9. package/dist/cli/commands/feedback.d.ts +16 -0
  10. package/dist/cli/commands/feedback.d.ts.map +1 -0
  11. package/dist/cli/commands/feedback.js +220 -0
  12. package/dist/cli/commands/feedback.js.map +1 -0
  13. package/dist/cli/commands/feedback.types.d.ts +116 -0
  14. package/dist/cli/commands/feedback.types.d.ts.map +1 -0
  15. package/dist/cli/commands/feedback.types.js +97 -0
  16. package/dist/cli/commands/feedback.types.js.map +1 -0
  17. package/dist/cli/commands/index.d.ts +1 -0
  18. package/dist/cli/commands/index.d.ts.map +1 -1
  19. package/dist/cli/commands/index.js +1 -0
  20. package/dist/cli/commands/index.js.map +1 -1
  21. package/dist/cli/commands/init.d.ts.map +1 -1
  22. package/dist/cli/commands/init.js +7 -3
  23. package/dist/cli/commands/init.js.map +1 -1
  24. package/dist/cli/commands/next.js +3 -3
  25. package/dist/cli/commands/next.js.map +1 -1
  26. package/dist/cli/commands/review/epic-review.js +2 -2
  27. package/dist/cli/commands/review/epic-review.js.map +1 -1
  28. package/dist/cli/commands/review/types.d.ts +1 -1
  29. package/dist/cli/commands/review/types.d.ts.map +1 -1
  30. package/dist/cli/commands/scaffold/agent-types.d.ts +49 -0
  31. package/dist/cli/commands/scaffold/agent-types.d.ts.map +1 -0
  32. package/dist/cli/commands/scaffold/agent-types.js +37 -0
  33. package/dist/cli/commands/scaffold/agent-types.js.map +1 -0
  34. package/dist/cli/commands/scaffold/display.d.ts +31 -2
  35. package/dist/cli/commands/scaffold/display.d.ts.map +1 -1
  36. package/dist/cli/commands/scaffold/display.js +176 -14
  37. package/dist/cli/commands/scaffold/display.js.map +1 -1
  38. package/dist/cli/commands/scaffold/register.d.ts.map +1 -1
  39. package/dist/cli/commands/scaffold/register.js +8 -4
  40. package/dist/cli/commands/scaffold/register.js.map +1 -1
  41. package/dist/cli/commands/scaffold/scaffold.d.ts +1 -1
  42. package/dist/cli/commands/scaffold/scaffold.d.ts.map +1 -1
  43. package/dist/cli/commands/scaffold/scaffold.js +522 -30
  44. package/dist/cli/commands/scaffold/scaffold.js.map +1 -1
  45. package/dist/cli/commands/scaffold/targets.d.ts +12 -0
  46. package/dist/cli/commands/scaffold/targets.d.ts.map +1 -1
  47. package/dist/cli/commands/scaffold/targets.js +33 -0
  48. package/dist/cli/commands/scaffold/targets.js.map +1 -1
  49. package/dist/cli/commands/scaffold/types.d.ts +34 -1
  50. package/dist/cli/commands/scaffold/types.d.ts.map +1 -1
  51. package/dist/cli/commands/scaffold/types.js.map +1 -1
  52. package/dist/cli/commands/scaffold/utils.d.ts +22 -1
  53. package/dist/cli/commands/scaffold/utils.d.ts.map +1 -1
  54. package/dist/cli/commands/scaffold/utils.js +106 -0
  55. package/dist/cli/commands/scaffold/utils.js.map +1 -1
  56. package/dist/cli/commands/session/start.js +1 -1
  57. package/dist/cli/commands/session/start.js.map +1 -1
  58. package/dist/cli/commands/status.types.d.ts +1 -1
  59. package/dist/cli/commands/status.types.d.ts.map +1 -1
  60. package/dist/cli/commands/status.types.js +2 -2
  61. package/dist/cli/commands/status.types.js.map +1 -1
  62. package/dist/cli/commands/ticket/resolver.js +1 -1
  63. package/dist/cli/commands/ticket/resolver.js.map +1 -1
  64. package/dist/cli/commands/tickets.js +1 -1
  65. package/dist/cli/commands/tickets.js.map +1 -1
  66. package/dist/cli/commands/tickets.types.d.ts +1 -1
  67. package/dist/cli/commands/tickets.types.d.ts.map +1 -1
  68. package/dist/cli/config/writer.d.ts +32 -13
  69. package/dist/cli/config/writer.d.ts.map +1 -1
  70. package/dist/cli/config/writer.js +30 -11
  71. package/dist/cli/config/writer.js.map +1 -1
  72. package/dist/cli/index.d.ts.map +1 -1
  73. package/dist/cli/index.js +3 -1
  74. package/dist/cli/index.js.map +1 -1
  75. package/dist/cli/templates/agents/content/core/sfag-implementer.d.ts +8 -0
  76. package/dist/cli/templates/agents/content/core/sfag-implementer.d.ts.map +1 -0
  77. package/dist/cli/templates/agents/content/core/sfag-implementer.js +111 -0
  78. package/dist/cli/templates/agents/content/core/sfag-implementer.js.map +1 -0
  79. package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts +8 -0
  80. package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts.map +1 -0
  81. package/dist/cli/templates/agents/content/core/sfag-orchestrator.js +105 -0
  82. package/dist/cli/templates/agents/content/core/sfag-orchestrator.js.map +1 -0
  83. package/dist/cli/templates/agents/content/core/sfag-spec-creator.d.ts +8 -0
  84. package/dist/cli/templates/agents/content/core/sfag-spec-creator.d.ts.map +1 -0
  85. package/dist/cli/templates/agents/content/core/sfag-spec-creator.js +124 -0
  86. package/dist/cli/templates/agents/content/core/sfag-spec-creator.js.map +1 -0
  87. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts +8 -0
  88. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts.map +1 -0
  89. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js +130 -0
  90. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js.map +1 -0
  91. package/dist/cli/templates/agents/content/research/sfag-package-researcher.d.ts +8 -0
  92. package/dist/cli/templates/agents/content/research/sfag-package-researcher.d.ts.map +1 -0
  93. package/dist/cli/templates/agents/content/research/sfag-package-researcher.js +151 -0
  94. package/dist/cli/templates/agents/content/research/sfag-package-researcher.js.map +1 -0
  95. package/dist/cli/templates/agents/content/task-type/sfag-api-implementer.d.ts +8 -0
  96. package/dist/cli/templates/agents/content/task-type/sfag-api-implementer.d.ts.map +1 -0
  97. package/dist/cli/templates/agents/content/task-type/sfag-api-implementer.js +130 -0
  98. package/dist/cli/templates/agents/content/task-type/sfag-api-implementer.js.map +1 -0
  99. package/dist/cli/templates/agents/content/task-type/sfag-docs-writer.d.ts +8 -0
  100. package/dist/cli/templates/agents/content/task-type/sfag-docs-writer.d.ts.map +1 -0
  101. package/dist/cli/templates/agents/content/task-type/sfag-docs-writer.js +181 -0
  102. package/dist/cli/templates/agents/content/task-type/sfag-docs-writer.js.map +1 -0
  103. package/dist/cli/templates/agents/content/task-type/sfag-frontend-builder.d.ts +8 -0
  104. package/dist/cli/templates/agents/content/task-type/sfag-frontend-builder.d.ts.map +1 -0
  105. package/dist/cli/templates/agents/content/task-type/sfag-frontend-builder.js +139 -0
  106. package/dist/cli/templates/agents/content/task-type/sfag-frontend-builder.js.map +1 -0
  107. package/dist/cli/templates/agents/content/task-type/sfag-infra-architect.d.ts +8 -0
  108. package/dist/cli/templates/agents/content/task-type/sfag-infra-architect.d.ts.map +1 -0
  109. package/dist/cli/templates/agents/content/task-type/sfag-infra-architect.js +147 -0
  110. package/dist/cli/templates/agents/content/task-type/sfag-infra-architect.js.map +1 -0
  111. package/dist/cli/templates/agents/content/task-type/sfag-schema-designer.d.ts +8 -0
  112. package/dist/cli/templates/agents/content/task-type/sfag-schema-designer.d.ts.map +1 -0
  113. package/dist/cli/templates/agents/content/task-type/sfag-schema-designer.js +130 -0
  114. package/dist/cli/templates/agents/content/task-type/sfag-schema-designer.js.map +1 -0
  115. package/dist/cli/templates/agents/content/task-type/sfag-test-writer.d.ts +8 -0
  116. package/dist/cli/templates/agents/content/task-type/sfag-test-writer.d.ts.map +1 -0
  117. package/dist/cli/templates/agents/content/task-type/sfag-test-writer.js +169 -0
  118. package/dist/cli/templates/agents/content/task-type/sfag-test-writer.js.map +1 -0
  119. package/dist/cli/templates/agents/index.d.ts +23 -0
  120. package/dist/cli/templates/agents/index.d.ts.map +1 -0
  121. package/dist/cli/templates/agents/index.js +63 -0
  122. package/dist/cli/templates/agents/index.js.map +1 -0
  123. package/dist/cli/templates/content/sf-create-epics.d.ts +1 -1
  124. package/dist/cli/templates/content/sf-create-epics.d.ts.map +1 -1
  125. package/dist/cli/templates/content/sf-create-epics.js +72 -13
  126. package/dist/cli/templates/content/sf-create-epics.js.map +1 -1
  127. package/dist/cli/templates/content/sf-create-spec.d.ts +1 -1
  128. package/dist/cli/templates/content/sf-create-spec.d.ts.map +1 -1
  129. package/dist/cli/templates/content/sf-create-spec.js +91 -22
  130. package/dist/cli/templates/content/sf-create-spec.js.map +1 -1
  131. package/dist/cli/templates/content/sf-create-tickets.d.ts +1 -1
  132. package/dist/cli/templates/content/sf-create-tickets.d.ts.map +1 -1
  133. package/dist/cli/templates/content/sf-create-tickets.js +90 -18
  134. package/dist/cli/templates/content/sf-create-tickets.js.map +1 -1
  135. package/dist/cli/templates/index.d.ts +2 -1
  136. package/dist/cli/templates/index.d.ts.map +1 -1
  137. package/dist/cli/templates/index.js +4 -1
  138. package/dist/cli/templates/index.js.map +1 -1
  139. package/dist/lib/index.d.ts +1 -0
  140. package/dist/lib/index.d.ts.map +1 -1
  141. package/dist/lib/index.js +1 -0
  142. package/dist/lib/index.js.map +1 -1
  143. package/dist/lib/workflow-definitions.d.ts +41 -0
  144. package/dist/lib/workflow-definitions.d.ts.map +1 -0
  145. package/dist/lib/workflow-definitions.js +511 -0
  146. package/dist/lib/workflow-definitions.js.map +1 -0
  147. package/dist/tools/core/bulk.d.ts.map +1 -1
  148. package/dist/tools/core/bulk.js +5 -30
  149. package/dist/tools/core/bulk.js.map +1 -1
  150. package/dist/tools/core/epic.d.ts.map +1 -1
  151. package/dist/tools/core/epic.js +95 -11
  152. package/dist/tools/core/epic.js.map +1 -1
  153. package/dist/tools/core/feedback.d.ts +110 -0
  154. package/dist/tools/core/feedback.d.ts.map +1 -0
  155. package/dist/tools/core/feedback.js +303 -0
  156. package/dist/tools/core/feedback.js.map +1 -0
  157. package/dist/tools/core/help.d.ts.map +1 -1
  158. package/dist/tools/core/help.js +17 -2
  159. package/dist/tools/core/help.js.map +1 -1
  160. package/dist/tools/core/index.d.ts +2 -0
  161. package/dist/tools/core/index.d.ts.map +1 -1
  162. package/dist/tools/core/index.js +2 -0
  163. package/dist/tools/core/index.js.map +1 -1
  164. package/dist/tools/core/specification.d.ts.map +1 -1
  165. package/dist/tools/core/specification.js +98 -9
  166. package/dist/tools/core/specification.js.map +1 -1
  167. package/dist/tools/core/ticket.d.ts.map +1 -1
  168. package/dist/tools/core/ticket.js +48 -11
  169. package/dist/tools/core/ticket.js.map +1 -1
  170. package/dist/tools/core/workflow-guide.d.ts +13 -0
  171. package/dist/tools/core/workflow-guide.d.ts.map +1 -0
  172. package/dist/tools/core/workflow-guide.js +332 -0
  173. package/dist/tools/core/workflow-guide.js.map +1 -0
  174. package/dist/tools/index.d.ts.map +1 -1
  175. package/dist/tools/index.js +131 -96
  176. package/dist/tools/index.js.map +1 -1
  177. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"epic.d.ts","sourceRoot":"","sources":["../../../src/tools/core/epic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,eAAO,MAAM,QAAQ,EAAE,IAsFtB,CAAC;AAUF,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CA4D3F;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,oEAGrD"}
1
+ {"version":3,"file":"epic.d.ts","sourceRoot":"","sources":["../../../src/tools/core/epic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,eAAO,MAAM,QAAQ,EAAE,IAmItB,CAAC;AAUF,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAmG3F;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,oEAGrD"}
@@ -20,14 +20,33 @@ export const epicTool = {
20
20
  epicId: { type: 'string', description: 'Epic ID' },
21
21
  // For create/list/lookup
22
22
  specificationId: { type: 'string', description: 'Specification ID' },
23
- // For create/update
24
- title: { type: 'string' },
25
- description: { type: 'string' },
26
- objective: { type: 'string' },
27
- status: { type: 'string', enum: ['pending', 'active', 'done', 'archived'] },
28
- priority: { type: 'string', enum: ['critical', 'high', 'medium', 'low'] },
29
- tags: { type: 'array', items: { type: 'string' } },
30
- estimatedHours: { type: 'number' },
23
+ // For create/update - core fields
24
+ title: { type: 'string', description: 'Epic title' },
25
+ description: { type: 'string', description: 'Epic description (required for create)' },
26
+ objective: { type: 'string', description: 'Epic objective/goal (required for create)' },
27
+ content: { type: 'string', description: 'Full epic content (markdown)' },
28
+ scope: { type: 'string', description: "What's in/out of scope for this epic" },
29
+ status: { type: 'string', enum: ['todo', 'in_progress', 'completed'] },
30
+ priority: { type: 'string', enum: ['high', 'medium', 'low'] },
31
+ tags: { type: 'array', items: { type: 'string' }, description: 'Categorization tags' },
32
+ estimatedHours: { type: 'number', description: 'Total estimated hours for epic' },
33
+ // Planning fields
34
+ goals: { type: 'array', items: { type: 'string' }, description: 'Epic-specific goals' },
35
+ acceptanceCriteria: { type: 'array', items: { type: 'string' }, description: 'Epic-level success criteria' },
36
+ guardrails: { type: 'array', items: { type: 'string' }, description: 'What NOT to do' },
37
+ risks: { type: 'array', items: { type: 'string' }, description: 'Risk factors' },
38
+ constraints: { type: 'array', items: { type: 'string' }, description: 'Technical/business constraints' },
39
+ assumptions: { type: 'array', items: { type: 'string' }, description: 'Key assumptions made' },
40
+ // Technical details
41
+ architecture: { type: 'string', description: 'Architectural approach for this epic' },
42
+ fileStructure: { type: 'string', description: 'File/folder organization' },
43
+ techStack: { type: 'array', items: { type: 'string' }, description: 'Technologies used' },
44
+ dependencies: { type: 'array', items: { type: 'string' }, description: 'Required packages/libraries' },
45
+ apiContracts: { type: 'object', description: 'API specifications (if epic defines APIs)' },
46
+ // Pattern Inheritance (F7-003)
47
+ sharedPatterns: { type: 'object', description: 'EpicSharedPatterns - overrides spec patterns' },
48
+ additionalImports: { type: 'array', items: { type: 'string' }, description: 'Additional imports for this epic' },
49
+ commonFiles: { type: 'object', description: 'EpicCommonFiles - shared files across tickets' },
31
50
  // For create - inline tickets
32
51
  tickets: {
33
52
  type: 'array',
@@ -44,7 +63,7 @@ export const epicTool = {
44
63
  },
45
64
  priority: {
46
65
  type: 'string',
47
- enum: ['critical', 'high', 'medium', 'low'],
66
+ enum: ['high', 'medium', 'low'],
48
67
  description: 'Ticket priority',
49
68
  },
50
69
  tags: {
@@ -58,8 +77,34 @@ export const epicTool = {
58
77
  },
59
78
  acceptanceCriteria: {
60
79
  type: 'array',
61
- items: { type: 'object' },
62
- description: 'Acceptance criteria objects',
80
+ items: { type: 'string' },
81
+ description: 'Acceptance criteria strings',
82
+ },
83
+ notes: { type: 'string', description: 'Additional context, warnings, considerations' },
84
+ implementation: { type: 'object', description: 'Detailed implementation steps' },
85
+ technicalDetails: { type: 'object', description: 'Technical details object' },
86
+ codeReferences: {
87
+ type: 'array',
88
+ items: {
89
+ type: 'object',
90
+ properties: {
91
+ name: { type: 'string' },
92
+ code: { type: 'string' },
93
+ language: { type: 'string' },
94
+ },
95
+ },
96
+ description: 'Code snippets as references',
97
+ },
98
+ typeReferences: {
99
+ type: 'array',
100
+ items: {
101
+ type: 'object',
102
+ properties: {
103
+ name: { type: 'string' },
104
+ definition: { type: 'string' },
105
+ },
106
+ },
107
+ description: 'Type definitions as references',
63
108
  },
64
109
  dependsOn: {
65
110
  type: 'array',
@@ -103,9 +148,29 @@ export function createEpicOperations(apiClient) {
103
148
  title: args.title,
104
149
  description: args.description,
105
150
  objective: args.objective,
151
+ content: args.content,
152
+ scope: args.scope,
106
153
  priority: args.priority,
107
154
  tags: args.tags,
108
155
  estimatedHours: args.estimatedHours,
156
+ // Planning fields
157
+ goals: args.goals,
158
+ acceptanceCriteria: args.acceptanceCriteria,
159
+ guardrails: args.guardrails,
160
+ risks: args.risks,
161
+ constraints: args.constraints,
162
+ assumptions: args.assumptions,
163
+ // Technical details
164
+ architecture: args.architecture,
165
+ fileStructure: args.fileStructure,
166
+ techStack: args.techStack,
167
+ dependencies: args.dependencies,
168
+ apiContracts: args.apiContracts,
169
+ // Pattern Inheritance
170
+ sharedPatterns: args.sharedPatterns,
171
+ additionalImports: args.additionalImports,
172
+ commonFiles: args.commonFiles,
173
+ // Inline tickets
109
174
  tickets: args.tickets,
110
175
  });
111
176
  },
@@ -123,10 +188,29 @@ export function createEpicOperations(apiClient) {
123
188
  title: args.title,
124
189
  description: args.description,
125
190
  objective: args.objective,
191
+ content: args.content,
192
+ scope: args.scope,
126
193
  status: args.status,
127
194
  priority: args.priority,
128
195
  tags: args.tags,
129
196
  estimatedHours: args.estimatedHours,
197
+ // Planning fields
198
+ goals: args.goals,
199
+ acceptanceCriteria: args.acceptanceCriteria,
200
+ guardrails: args.guardrails,
201
+ risks: args.risks,
202
+ constraints: args.constraints,
203
+ assumptions: args.assumptions,
204
+ // Technical details
205
+ architecture: args.architecture,
206
+ fileStructure: args.fileStructure,
207
+ techStack: args.techStack,
208
+ dependencies: args.dependencies,
209
+ apiContracts: args.apiContracts,
210
+ // Pattern Inheritance
211
+ sharedPatterns: args.sharedPatterns,
212
+ additionalImports: args.additionalImports,
213
+ commonFiles: args.commonFiles,
130
214
  });
131
215
  },
132
216
  list: async (args, _userId) => {
@@ -1 +1 @@
1
- {"version":3,"file":"epic.js","sourceRoot":"","sources":["../../../src/tools/core/epic.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAG7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAIpD,MAAM,CAAC,MAAM,QAAQ,GAAS;IAC5B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE;;;;;uCAKwB;IACrC,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;gBACnD,WAAW,EAAE,0BAA0B;aACxC;YACD,iBAAiB;YACjB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;YAClD,yBAAyB;YACzB,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACpE,oBAAoB;YACpB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE;YAC3E,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE;YACzE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAClD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClC,8BAA8B;YAC9B,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,wCAAwC;gBACrD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;wBACjE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;wBAClE,UAAU,EAAE;4BACV,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;4BAC5C,WAAW,EAAE,mBAAmB;yBACjC;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;4BAC3C,WAAW,EAAE,iBAAiB;yBAC/B;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,qBAAqB;yBACnC;wBACD,cAAc,EAAE;4BACd,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,6BAA6B;yBAC3C;wBACD,kBAAkB,EAAE;4BAClB,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,6BAA6B;yBAC3C;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,4DAA4D;yBAC1E;qBACF;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACpB;aACF;YACD,aAAa;YACb,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;YACjE,WAAW;YACX,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC3B;aACF;YACD,mBAAmB;YACnB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YAClD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;YACjF,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;SACtD;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,IAA0B,EAAE,GAAG,MAAgB;IACvE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAoB;IACvD,OAAO;QACL,MAAM,EAAE,KAAK,EAAE,IAA0B,EAAE,OAAe,EAAE,EAAE;YAC5D,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;YAC/E,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE;gBACzC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAED,GAAG,EAAE,KAAK,EAAE,IAA0B,EAAE,OAAe,EAAE,EAAE;YACzD,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACjC,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE;gBACtC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,IAA0B,EAAE,OAAe,EAAE,EAAE;YAC5D,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACjC,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE;gBACzC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,EAAE,KAAK,EAAE,IAA0B,EAAE,OAAe,EAAE,EAAE;YAC1D,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAyC,CAAC;YAC9D,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE;gBACxC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM;aACtC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,IAA0B,EAAE,OAAe,EAAE,EAAE;YAC5D,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE;gBACzC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAoB;IACpD,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACnD,OAAO,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"epic.js","sourceRoot":"","sources":["../../../src/tools/core/epic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Feedback Tool
3
+ *
4
+ * MCP tool for submitting and managing structured feedback about MCP tools and operations.
5
+ * Uses local-first storage with future API sync capability.
6
+ */
7
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
8
+ import { ConsolidatedToolArgs, OperationHandler } from './types.js';
9
+ /**
10
+ * Feedback categories
11
+ */
12
+ export type FeedbackCategory = 'bug' | 'feature_request' | 'usability' | 'documentation' | 'performance';
13
+ /**
14
+ * Feedback severity levels
15
+ */
16
+ export type FeedbackSeverity = 'critical' | 'high' | 'medium' | 'low';
17
+ /**
18
+ * Feedback entry stored in local storage
19
+ */
20
+ export interface FeedbackEntry {
21
+ /** Unique feedback ID */
22
+ id: string;
23
+ /** Feedback category */
24
+ category: FeedbackCategory;
25
+ /** Brief summary of the feedback */
26
+ summary: string;
27
+ /** Severity level */
28
+ severity: FeedbackSeverity;
29
+ /** Which MCP tool this relates to (optional) */
30
+ tool?: string;
31
+ /** Specific operation within the tool (optional) */
32
+ toolOperation?: string;
33
+ /** Extended description (optional) */
34
+ details?: string;
35
+ /** Expected behavior (optional) */
36
+ expected?: string;
37
+ /** Actual behavior (optional) */
38
+ actual?: string;
39
+ /** Error message if bug (optional) */
40
+ errorMessage?: string;
41
+ /** Related ticket ID (optional) */
42
+ ticketId?: string;
43
+ /** Timestamp when created */
44
+ createdAt: string;
45
+ /** User ID who submitted */
46
+ userId: string;
47
+ }
48
+ /**
49
+ * Index entry for fast listing
50
+ */
51
+ export interface FeedbackIndexEntry {
52
+ id: string;
53
+ category: FeedbackCategory;
54
+ severity: FeedbackSeverity;
55
+ summary: string;
56
+ tool?: string;
57
+ createdAt: string;
58
+ }
59
+ /**
60
+ * Index file structure
61
+ */
62
+ export interface FeedbackIndex {
63
+ entries: FeedbackIndexEntry[];
64
+ lastUpdated: string;
65
+ }
66
+ export declare const FEEDBACK_CATEGORIES: FeedbackCategory[];
67
+ export declare const FEEDBACK_SEVERITIES: FeedbackSeverity[];
68
+ /**
69
+ * Get the feedback storage directory
70
+ */
71
+ export declare function getFeedbackDir(): string;
72
+ /**
73
+ * Get the entries directory
74
+ */
75
+ export declare function getEntriesDir(): string;
76
+ /**
77
+ * Get the index file path
78
+ */
79
+ export declare function getIndexPath(): string;
80
+ /**
81
+ * Ensure storage directories exist
82
+ */
83
+ export declare function ensureStorageExists(): void;
84
+ /**
85
+ * Generate a unique feedback ID
86
+ */
87
+ export declare function generateFeedbackId(): string;
88
+ /**
89
+ * Read the feedback index
90
+ */
91
+ export declare function readIndex(): FeedbackIndex;
92
+ /**
93
+ * Write the feedback index
94
+ */
95
+ export declare function writeIndex(index: FeedbackIndex): void;
96
+ /**
97
+ * Read a feedback entry by ID
98
+ */
99
+ export declare function readEntry(feedbackId: string): FeedbackEntry | null;
100
+ /**
101
+ * Write a feedback entry
102
+ */
103
+ export declare function writeEntry(entry: FeedbackEntry): void;
104
+ export declare const feedbackTool: Tool;
105
+ export declare function createFeedbackOperations(): Record<string, OperationHandler>;
106
+ /**
107
+ * Create the feedback handler using operation router
108
+ */
109
+ export declare function createFeedbackHandler(): (args: ConsolidatedToolArgs, userId: string) => Promise<unknown>;
110
+ //# sourceMappingURL=feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../../src/tools/core/feedback.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AASpE;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,KAAK,GACL,iBAAiB,GACjB,WAAW,GACX,eAAe,GACf,aAAa,CAAC;AAElB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAMjD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAKjD,CAAC;AAMF;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAW1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,aAAa,CAazC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAIrD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAalE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAIrD;AAMD,eAAO,MAAM,YAAY,EAAE,IA2E1B,CAAC;AAkCF,wBAAgB,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAiG3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,qEAGpC"}
@@ -0,0 +1,303 @@
1
+ // mcp/src/tools/core/feedback.ts
2
+ import { createOperationRouter } from './router.js';
3
+ import * as fs from 'fs';
4
+ import * as path from 'path';
5
+ import * as os from 'os';
6
+ // ============================================================================
7
+ // Constants
8
+ // ============================================================================
9
+ export const FEEDBACK_CATEGORIES = [
10
+ 'bug',
11
+ 'feature_request',
12
+ 'usability',
13
+ 'documentation',
14
+ 'performance',
15
+ ];
16
+ export const FEEDBACK_SEVERITIES = [
17
+ 'critical',
18
+ 'high',
19
+ 'medium',
20
+ 'low',
21
+ ];
22
+ // ============================================================================
23
+ // Storage Helpers
24
+ // ============================================================================
25
+ /**
26
+ * Get the feedback storage directory
27
+ */
28
+ export function getFeedbackDir() {
29
+ return path.join(os.homedir(), '.specforge', 'feedback');
30
+ }
31
+ /**
32
+ * Get the entries directory
33
+ */
34
+ export function getEntriesDir() {
35
+ return path.join(getFeedbackDir(), 'entries');
36
+ }
37
+ /**
38
+ * Get the index file path
39
+ */
40
+ export function getIndexPath() {
41
+ return path.join(getFeedbackDir(), 'index.json');
42
+ }
43
+ /**
44
+ * Ensure storage directories exist
45
+ */
46
+ export function ensureStorageExists() {
47
+ const feedbackDir = getFeedbackDir();
48
+ const entriesDir = getEntriesDir();
49
+ if (!fs.existsSync(feedbackDir)) {
50
+ fs.mkdirSync(feedbackDir, { recursive: true });
51
+ }
52
+ if (!fs.existsSync(entriesDir)) {
53
+ fs.mkdirSync(entriesDir, { recursive: true });
54
+ }
55
+ }
56
+ /**
57
+ * Generate a unique feedback ID
58
+ */
59
+ export function generateFeedbackId() {
60
+ const date = new Date().toISOString().split('T')[0];
61
+ const random = Math.random().toString(36).substring(2, 8);
62
+ return `fb_${date}_${random}`;
63
+ }
64
+ /**
65
+ * Read the feedback index
66
+ */
67
+ export function readIndex() {
68
+ const indexPath = getIndexPath();
69
+ if (!fs.existsSync(indexPath)) {
70
+ return { entries: [], lastUpdated: new Date().toISOString() };
71
+ }
72
+ try {
73
+ const content = fs.readFileSync(indexPath, 'utf-8');
74
+ return JSON.parse(content);
75
+ }
76
+ catch {
77
+ return { entries: [], lastUpdated: new Date().toISOString() };
78
+ }
79
+ }
80
+ /**
81
+ * Write the feedback index
82
+ */
83
+ export function writeIndex(index) {
84
+ ensureStorageExists();
85
+ const indexPath = getIndexPath();
86
+ fs.writeFileSync(indexPath, JSON.stringify(index, null, 2));
87
+ }
88
+ /**
89
+ * Read a feedback entry by ID
90
+ */
91
+ export function readEntry(feedbackId) {
92
+ const entryPath = path.join(getEntriesDir(), `${feedbackId}.json`);
93
+ if (!fs.existsSync(entryPath)) {
94
+ return null;
95
+ }
96
+ try {
97
+ const content = fs.readFileSync(entryPath, 'utf-8');
98
+ return JSON.parse(content);
99
+ }
100
+ catch {
101
+ return null;
102
+ }
103
+ }
104
+ /**
105
+ * Write a feedback entry
106
+ */
107
+ export function writeEntry(entry) {
108
+ ensureStorageExists();
109
+ const entryPath = path.join(getEntriesDir(), `${entry.id}.json`);
110
+ fs.writeFileSync(entryPath, JSON.stringify(entry, null, 2));
111
+ }
112
+ // ============================================================================
113
+ // Tool Definition
114
+ // ============================================================================
115
+ export const feedbackTool = {
116
+ name: 'feedback',
117
+ description: `Submit and manage feedback about MCP tools. Operations:
118
+ - submit: Submit new feedback (requires category, summary)
119
+ - list: List recent feedback entries
120
+ - get: Get a specific feedback entry by ID`,
121
+ inputSchema: {
122
+ type: 'object',
123
+ properties: {
124
+ operation: {
125
+ type: 'string',
126
+ enum: ['submit', 'list', 'get'],
127
+ description: 'The operation to perform',
128
+ },
129
+ // For submit operation
130
+ category: {
131
+ type: 'string',
132
+ enum: ['bug', 'feature_request', 'usability', 'documentation', 'performance'],
133
+ description: 'Feedback category (required for submit)',
134
+ },
135
+ summary: {
136
+ type: 'string',
137
+ description: 'Brief summary of the feedback (required for submit)',
138
+ },
139
+ severity: {
140
+ type: 'string',
141
+ enum: ['critical', 'high', 'medium', 'low'],
142
+ description: 'Severity level (default: medium)',
143
+ },
144
+ tool: {
145
+ type: 'string',
146
+ description: 'Which MCP tool this relates to',
147
+ },
148
+ toolOperation: {
149
+ type: 'string',
150
+ description: 'Specific operation within the tool',
151
+ },
152
+ details: {
153
+ type: 'string',
154
+ description: 'Extended description',
155
+ },
156
+ expected: {
157
+ type: 'string',
158
+ description: 'Expected behavior',
159
+ },
160
+ actual: {
161
+ type: 'string',
162
+ description: 'Actual behavior',
163
+ },
164
+ errorMessage: {
165
+ type: 'string',
166
+ description: 'Error message if reporting a bug',
167
+ },
168
+ ticketId: {
169
+ type: 'string',
170
+ description: 'Related ticket ID',
171
+ },
172
+ // For list operation
173
+ limit: {
174
+ type: 'number',
175
+ description: 'Maximum entries to return (default: 10)',
176
+ },
177
+ categoryFilter: {
178
+ type: 'string',
179
+ enum: ['bug', 'feature_request', 'usability', 'documentation', 'performance'],
180
+ description: 'Filter by category',
181
+ },
182
+ // For get operation
183
+ feedbackId: {
184
+ type: 'string',
185
+ description: 'Feedback ID to retrieve (required for get)',
186
+ },
187
+ },
188
+ required: ['operation'],
189
+ },
190
+ };
191
+ // ============================================================================
192
+ // Validation Helpers
193
+ // ============================================================================
194
+ function validateRequired(args, ...fields) {
195
+ for (const field of fields) {
196
+ if (args[field] === undefined || args[field] === null || args[field] === '') {
197
+ throw new Error(`${field} is required`);
198
+ }
199
+ }
200
+ }
201
+ function validateCategory(category) {
202
+ if (!FEEDBACK_CATEGORIES.includes(category)) {
203
+ throw new Error(`Invalid category '${category}'. Valid: ${FEEDBACK_CATEGORIES.join(', ')}`);
204
+ }
205
+ }
206
+ function validateSeverity(severity) {
207
+ if (!FEEDBACK_SEVERITIES.includes(severity)) {
208
+ throw new Error(`Invalid severity '${severity}'. Valid: ${FEEDBACK_SEVERITIES.join(', ')}`);
209
+ }
210
+ }
211
+ // ============================================================================
212
+ // Operation Handlers
213
+ // ============================================================================
214
+ export function createFeedbackOperations() {
215
+ return {
216
+ submit: async (args, userId) => {
217
+ validateRequired(args, 'category', 'summary');
218
+ const category = args.category;
219
+ const summary = args.summary;
220
+ const severity = args.severity || 'medium';
221
+ validateCategory(category);
222
+ validateSeverity(severity);
223
+ const id = generateFeedbackId();
224
+ const now = new Date().toISOString();
225
+ const entry = {
226
+ id,
227
+ category: category,
228
+ summary,
229
+ severity: severity,
230
+ tool: args.tool,
231
+ toolOperation: args.toolOperation,
232
+ details: args.details,
233
+ expected: args.expected,
234
+ actual: args.actual,
235
+ errorMessage: args.errorMessage,
236
+ ticketId: args.ticketId,
237
+ createdAt: now,
238
+ userId,
239
+ };
240
+ // Write entry file
241
+ writeEntry(entry);
242
+ // Update index
243
+ const index = readIndex();
244
+ index.entries.unshift({
245
+ id,
246
+ category: entry.category,
247
+ severity: entry.severity,
248
+ summary: entry.summary,
249
+ tool: entry.tool,
250
+ createdAt: now,
251
+ });
252
+ index.lastUpdated = now;
253
+ writeIndex(index);
254
+ return {
255
+ success: true,
256
+ feedbackId: id,
257
+ message: `Feedback submitted successfully`,
258
+ entry: {
259
+ id,
260
+ category: entry.category,
261
+ severity: entry.severity,
262
+ summary: entry.summary,
263
+ },
264
+ };
265
+ },
266
+ list: async (args, _userId) => {
267
+ const limit = args.limit || 10;
268
+ const categoryFilter = args.categoryFilter;
269
+ const index = readIndex();
270
+ let entries = index.entries;
271
+ // Apply category filter
272
+ if (categoryFilter) {
273
+ validateCategory(categoryFilter);
274
+ entries = entries.filter((e) => e.category === categoryFilter);
275
+ }
276
+ // Apply limit
277
+ entries = entries.slice(0, limit);
278
+ return {
279
+ entries,
280
+ total: index.entries.length,
281
+ filtered: entries.length,
282
+ filters: categoryFilter ? { category: categoryFilter } : undefined,
283
+ };
284
+ },
285
+ get: async (args, _userId) => {
286
+ validateRequired(args, 'feedbackId');
287
+ const feedbackId = args.feedbackId;
288
+ const entry = readEntry(feedbackId);
289
+ if (!entry) {
290
+ throw new Error(`Feedback not found: ${feedbackId}`);
291
+ }
292
+ return entry;
293
+ },
294
+ };
295
+ }
296
+ /**
297
+ * Create the feedback handler using operation router
298
+ */
299
+ export function createFeedbackHandler() {
300
+ const operations = createFeedbackOperations();
301
+ return createOperationRouter('feedback', operations);
302
+ }
303
+ //# sourceMappingURL=feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../../src/tools/core/feedback.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/tools/core/help.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA2CpE,eAAO,MAAM,QAAQ,EAAE,IAkBtB,CAAC;AAUF,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAyCvE;AAED,wBAAgB,iBAAiB,qEAGhC"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/tools/core/help.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA0DpE,eAAO,MAAM,QAAQ,EAAE,IAkBtB,CAAC;AAUF,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAyCvE;AAED,wBAAgB,iBAAiB,qEAGhC"}