@mcp-graph-workflow/mcp-graph 5.2.0 → 5.4.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 (244) hide show
  1. package/dist/api/router.d.ts +0 -1
  2. package/dist/api/router.d.ts.map +1 -1
  3. package/dist/api/router.js +4 -5
  4. package/dist/api/router.js.map +1 -1
  5. package/dist/api/routes/benchmark.d.ts.map +1 -1
  6. package/dist/api/routes/benchmark.js +47 -2
  7. package/dist/api/routes/benchmark.js.map +1 -1
  8. package/dist/api/routes/code-graph.d.ts +12 -0
  9. package/dist/api/routes/code-graph.d.ts.map +1 -0
  10. package/dist/api/routes/code-graph.js +154 -0
  11. package/dist/api/routes/code-graph.js.map +1 -0
  12. package/dist/api/routes/context.d.ts.map +1 -1
  13. package/dist/api/routes/context.js +75 -0
  14. package/dist/api/routes/context.js.map +1 -1
  15. package/dist/api/routes/folder.d.ts +1 -4
  16. package/dist/api/routes/folder.d.ts.map +1 -1
  17. package/dist/api/routes/folder.js +19 -17
  18. package/dist/api/routes/folder.js.map +1 -1
  19. package/dist/api/routes/integrations.d.ts.map +1 -1
  20. package/dist/api/routes/integrations.js +60 -16
  21. package/dist/api/routes/integrations.js.map +1 -1
  22. package/dist/api/routes/knowledge.js +1 -1
  23. package/dist/api/routes/knowledge.js.map +1 -1
  24. package/dist/api/routes/skills.d.ts +2 -1
  25. package/dist/api/routes/skills.d.ts.map +1 -1
  26. package/dist/api/routes/skills.js +194 -4
  27. package/dist/api/routes/skills.js.map +1 -1
  28. package/dist/cli/commands/index-cmd.js +5 -5
  29. package/dist/cli/commands/index-cmd.js.map +1 -1
  30. package/dist/core/code/code-indexer.d.ts +20 -0
  31. package/dist/core/code/code-indexer.d.ts.map +1 -0
  32. package/dist/core/code/code-indexer.js +161 -0
  33. package/dist/core/code/code-indexer.js.map +1 -0
  34. package/dist/core/code/code-search.d.ts +16 -0
  35. package/dist/core/code/code-search.d.ts.map +1 -0
  36. package/dist/core/code/code-search.js +77 -0
  37. package/dist/core/code/code-search.js.map +1 -0
  38. package/dist/core/code/code-store.d.ts +35 -0
  39. package/dist/core/code/code-store.d.ts.map +1 -0
  40. package/dist/core/code/code-store.js +228 -0
  41. package/dist/core/code/code-store.js.map +1 -0
  42. package/dist/core/code/code-types.d.ts +209 -0
  43. package/dist/core/code/code-types.d.ts.map +1 -0
  44. package/dist/core/code/code-types.js +94 -0
  45. package/dist/core/code/code-types.js.map +1 -0
  46. package/dist/core/code/graph-traversal.d.ts +27 -0
  47. package/dist/core/code/graph-traversal.d.ts.map +1 -0
  48. package/dist/core/code/graph-traversal.js +122 -0
  49. package/dist/core/code/graph-traversal.js.map +1 -0
  50. package/dist/core/code/process-detector.d.ts +11 -0
  51. package/dist/core/code/process-detector.d.ts.map +1 -0
  52. package/dist/core/code/process-detector.js +65 -0
  53. package/dist/core/code/process-detector.js.map +1 -0
  54. package/dist/core/code/ts-analyzer.d.ts +12 -0
  55. package/dist/core/code/ts-analyzer.d.ts.map +1 -0
  56. package/dist/core/code/ts-analyzer.js +331 -0
  57. package/dist/core/code/ts-analyzer.js.map +1 -0
  58. package/dist/core/config/ai-memory-generator.d.ts.map +1 -1
  59. package/dist/core/config/ai-memory-generator.js +149 -61
  60. package/dist/core/config/ai-memory-generator.js.map +1 -1
  61. package/dist/core/config/config-loader.d.ts.map +1 -1
  62. package/dist/core/config/config-loader.js +2 -10
  63. package/dist/core/config/config-loader.js.map +1 -1
  64. package/dist/core/config/config-schema.d.ts +1 -2
  65. package/dist/core/config/config-schema.d.ts.map +1 -1
  66. package/dist/core/config/config-schema.js +2 -3
  67. package/dist/core/config/config-schema.js.map +1 -1
  68. package/dist/core/context/compact-context.d.ts +51 -0
  69. package/dist/core/context/compact-context.d.ts.map +1 -1
  70. package/dist/core/context/compact-context.js +292 -0
  71. package/dist/core/context/compact-context.js.map +1 -1
  72. package/dist/core/context/context-assembler.d.ts +1 -1
  73. package/dist/core/context/context-assembler.js +1 -1
  74. package/dist/core/doctor/doctor-checks.d.ts +1 -1
  75. package/dist/core/doctor/doctor-checks.js +21 -21
  76. package/dist/core/doctor/doctor-checks.js.map +1 -1
  77. package/dist/core/events/event-types.d.ts +18 -1
  78. package/dist/core/events/event-types.d.ts.map +1 -1
  79. package/dist/core/graph/graph-types.d.ts +1 -0
  80. package/dist/core/graph/graph-types.d.ts.map +1 -1
  81. package/dist/core/insights/bottleneck-detector.js +1 -1
  82. package/dist/core/insights/bottleneck-detector.js.map +1 -1
  83. package/dist/core/integrations/enriched-context.d.ts +10 -6
  84. package/dist/core/integrations/enriched-context.d.ts.map +1 -1
  85. package/dist/core/integrations/enriched-context.js +35 -35
  86. package/dist/core/integrations/enriched-context.js.map +1 -1
  87. package/dist/core/integrations/integration-orchestrator.js +2 -2
  88. package/dist/core/integrations/integration-orchestrator.js.map +1 -1
  89. package/dist/core/integrations/mcp-deps-installer.d.ts +1 -1
  90. package/dist/core/integrations/mcp-deps-installer.d.ts.map +1 -1
  91. package/dist/core/integrations/mcp-deps-installer.js +1 -60
  92. package/dist/core/integrations/mcp-deps-installer.js.map +1 -1
  93. package/dist/core/integrations/mcp-servers-config.d.ts +1 -1
  94. package/dist/core/integrations/mcp-servers-config.d.ts.map +1 -1
  95. package/dist/core/integrations/mcp-servers-config.js +0 -17
  96. package/dist/core/integrations/mcp-servers-config.js.map +1 -1
  97. package/dist/core/integrations/tool-status.d.ts +8 -3
  98. package/dist/core/integrations/tool-status.d.ts.map +1 -1
  99. package/dist/core/integrations/tool-status.js +38 -48
  100. package/dist/core/integrations/tool-status.js.map +1 -1
  101. package/dist/core/memory/memory-migrator.d.ts +15 -0
  102. package/dist/core/memory/memory-migrator.d.ts.map +1 -0
  103. package/dist/core/memory/memory-migrator.js +64 -0
  104. package/dist/core/memory/memory-migrator.js.map +1 -0
  105. package/dist/core/memory/memory-reader.d.ts +30 -0
  106. package/dist/core/memory/memory-reader.d.ts.map +1 -0
  107. package/dist/core/memory/memory-reader.js +106 -0
  108. package/dist/core/memory/memory-reader.js.map +1 -0
  109. package/dist/core/planner/lifecycle-phase.d.ts +1 -0
  110. package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
  111. package/dist/core/planner/lifecycle-phase.js +11 -8
  112. package/dist/core/planner/lifecycle-phase.js.map +1 -1
  113. package/dist/core/rag/memory-indexer.d.ts +16 -0
  114. package/dist/core/rag/memory-indexer.d.ts.map +1 -0
  115. package/dist/core/rag/{serena-indexer.js → memory-indexer.js} +12 -12
  116. package/dist/core/rag/memory-indexer.js.map +1 -0
  117. package/dist/core/rag/{serena-rag-query.d.ts → memory-rag-query.d.ts} +11 -9
  118. package/dist/core/rag/memory-rag-query.d.ts.map +1 -0
  119. package/dist/core/rag/{serena-rag-query.js → memory-rag-query.js} +18 -15
  120. package/dist/core/rag/memory-rag-query.js.map +1 -0
  121. package/dist/core/rag/skill-indexer.d.ts +16 -0
  122. package/dist/core/rag/skill-indexer.d.ts.map +1 -0
  123. package/dist/core/rag/skill-indexer.js +98 -0
  124. package/dist/core/rag/skill-indexer.js.map +1 -0
  125. package/dist/core/skills/built-in-skills.d.ts +26 -0
  126. package/dist/core/skills/built-in-skills.d.ts.map +1 -0
  127. package/dist/core/skills/built-in-skills.js +467 -0
  128. package/dist/core/skills/built-in-skills.js.map +1 -0
  129. package/dist/core/skills/self-healing-listener.d.ts +22 -0
  130. package/dist/core/skills/self-healing-listener.d.ts.map +1 -0
  131. package/dist/core/skills/self-healing-listener.js +102 -0
  132. package/dist/core/skills/self-healing-listener.js.map +1 -0
  133. package/dist/core/skills/skill-store.d.ts +14 -0
  134. package/dist/core/skills/skill-store.d.ts.map +1 -0
  135. package/dist/core/skills/skill-store.js +109 -0
  136. package/dist/core/skills/skill-store.js.map +1 -0
  137. package/dist/core/store/knowledge-store.d.ts +1 -1
  138. package/dist/core/store/knowledge-store.js +1 -1
  139. package/dist/core/store/migrations.d.ts.map +1 -1
  140. package/dist/core/store/migrations.js +128 -0
  141. package/dist/core/store/migrations.js.map +1 -1
  142. package/dist/core/store/path-resolver.d.ts +38 -0
  143. package/dist/core/store/path-resolver.d.ts.map +1 -0
  144. package/dist/core/store/path-resolver.js +92 -0
  145. package/dist/core/store/path-resolver.js.map +1 -0
  146. package/dist/core/store/sqlite-store.d.ts +21 -0
  147. package/dist/core/store/sqlite-store.d.ts.map +1 -1
  148. package/dist/core/store/sqlite-store.js +81 -30
  149. package/dist/core/store/sqlite-store.js.map +1 -1
  150. package/dist/core/store/tool-token-store.d.ts +39 -0
  151. package/dist/core/store/tool-token-store.d.ts.map +1 -0
  152. package/dist/core/store/tool-token-store.js +79 -0
  153. package/dist/core/store/tool-token-store.js.map +1 -0
  154. package/dist/core/utils/constants.d.ts +10 -0
  155. package/dist/core/utils/constants.d.ts.map +1 -1
  156. package/dist/core/utils/constants.js +12 -0
  157. package/dist/core/utils/constants.js.map +1 -1
  158. package/dist/mcp/app-factory.d.ts +0 -1
  159. package/dist/mcp/app-factory.d.ts.map +1 -1
  160. package/dist/mcp/app-factory.js +2 -2
  161. package/dist/mcp/app-factory.js.map +1 -1
  162. package/dist/mcp/lifecycle-wrapper.d.ts +3 -1
  163. package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
  164. package/dist/mcp/lifecycle-wrapper.js +41 -1
  165. package/dist/mcp/lifecycle-wrapper.js.map +1 -1
  166. package/dist/mcp/server.js +19 -14
  167. package/dist/mcp/server.js.map +1 -1
  168. package/dist/mcp/tools/index.d.ts.map +1 -1
  169. package/dist/mcp/tools/index.js +6 -0
  170. package/dist/mcp/tools/index.js.map +1 -1
  171. package/dist/mcp/tools/list-skills.d.ts +7 -0
  172. package/dist/mcp/tools/list-skills.d.ts.map +1 -0
  173. package/dist/mcp/tools/list-skills.js +68 -0
  174. package/dist/mcp/tools/list-skills.js.map +1 -0
  175. package/dist/mcp/tools/manage-skill.d.ts +8 -0
  176. package/dist/mcp/tools/manage-skill.d.ts.map +1 -0
  177. package/dist/mcp/tools/manage-skill.js +149 -0
  178. package/dist/mcp/tools/manage-skill.js.map +1 -0
  179. package/dist/mcp/tools/memory.d.ts +8 -0
  180. package/dist/mcp/tools/memory.d.ts.map +1 -0
  181. package/dist/mcp/tools/memory.js +106 -0
  182. package/dist/mcp/tools/memory.js.map +1 -0
  183. package/dist/mcp/tools/reindex-knowledge.d.ts.map +1 -1
  184. package/dist/mcp/tools/reindex-knowledge.js +11 -7
  185. package/dist/mcp/tools/reindex-knowledge.js.map +1 -1
  186. package/dist/schemas/graph.schema.d.ts +2 -0
  187. package/dist/schemas/graph.schema.d.ts.map +1 -1
  188. package/dist/schemas/graph.schema.js +1 -0
  189. package/dist/schemas/graph.schema.js.map +1 -1
  190. package/dist/schemas/knowledge.schema.d.ts +4 -0
  191. package/dist/schemas/knowledge.schema.d.ts.map +1 -1
  192. package/dist/schemas/knowledge.schema.js +1 -1
  193. package/dist/schemas/knowledge.schema.js.map +1 -1
  194. package/dist/schemas/skill.schema.d.ts +57 -0
  195. package/dist/schemas/skill.schema.d.ts.map +1 -0
  196. package/dist/schemas/skill.schema.js +24 -0
  197. package/dist/schemas/skill.schema.js.map +1 -0
  198. package/dist/web/dashboard/dist/assets/benchmark-tab-BW4QxI49.js +1 -0
  199. package/dist/web/dashboard/dist/assets/constants-kpH_c6vY.js +1 -0
  200. package/dist/web/dashboard/dist/assets/context-tab-C5RAlXNW.js +1 -0
  201. package/dist/web/dashboard/dist/assets/gitnexus-tab-BnxxYl2F.js +430 -0
  202. package/dist/web/dashboard/dist/assets/graph-tab-Cv_wQ6Az.js +1 -0
  203. package/dist/web/dashboard/dist/assets/graph-utils-Ds1zJyD1.js +7 -0
  204. package/dist/web/dashboard/dist/assets/index-BAeZDWWy.js +53 -0
  205. package/dist/web/dashboard/dist/assets/index-Bic_URMs.js +17 -0
  206. package/dist/web/dashboard/dist/assets/index-DQqYFXms.css +1 -0
  207. package/dist/web/dashboard/dist/assets/insights-tab-U_ATOqPu.js +52 -0
  208. package/dist/web/dashboard/dist/assets/{logs-tab-Cxpcv_ni.js → logs-tab-B8psCXuB.js} +1 -1
  209. package/dist/web/dashboard/dist/assets/memories-tab-DcWok2by.js +1 -0
  210. package/dist/web/dashboard/dist/assets/prd-backlog-tab-CjftveTc.js +1 -0
  211. package/dist/web/dashboard/dist/assets/skills-tab-Ddp1w4vS.js +1 -0
  212. package/dist/web/dashboard/dist/index.html +2 -2
  213. package/package.json +2 -2
  214. package/dist/api/routes/gitnexus.d.ts +0 -12
  215. package/dist/api/routes/gitnexus.d.ts.map +0 -1
  216. package/dist/api/routes/gitnexus.js +0 -164
  217. package/dist/api/routes/gitnexus.js.map +0 -1
  218. package/dist/core/integrations/gitnexus-launcher.d.ts +0 -67
  219. package/dist/core/integrations/gitnexus-launcher.d.ts.map +0 -1
  220. package/dist/core/integrations/gitnexus-launcher.js +0 -268
  221. package/dist/core/integrations/gitnexus-launcher.js.map +0 -1
  222. package/dist/core/integrations/gitnexus-queries.d.ts +0 -55
  223. package/dist/core/integrations/gitnexus-queries.d.ts.map +0 -1
  224. package/dist/core/integrations/gitnexus-queries.js +0 -168
  225. package/dist/core/integrations/gitnexus-queries.js.map +0 -1
  226. package/dist/core/integrations/serena-reader.d.ts +0 -18
  227. package/dist/core/integrations/serena-reader.d.ts.map +0 -1
  228. package/dist/core/integrations/serena-reader.js +0 -68
  229. package/dist/core/integrations/serena-reader.js.map +0 -1
  230. package/dist/core/rag/serena-indexer.d.ts +0 -16
  231. package/dist/core/rag/serena-indexer.d.ts.map +0 -1
  232. package/dist/core/rag/serena-indexer.js.map +0 -1
  233. package/dist/core/rag/serena-rag-query.d.ts.map +0 -1
  234. package/dist/core/rag/serena-rag-query.js.map +0 -1
  235. package/dist/web/dashboard/dist/assets/benchmark-tab-DE6hAHVG.js +0 -1
  236. package/dist/web/dashboard/dist/assets/constants-BIEJOBya.js +0 -1
  237. package/dist/web/dashboard/dist/assets/gitnexus-tab-DsBjJHx8.js +0 -312
  238. package/dist/web/dashboard/dist/assets/graph-tab-C09DzeZ_.js +0 -1
  239. package/dist/web/dashboard/dist/assets/graph-utils-D4LFspTf.js +0 -23
  240. package/dist/web/dashboard/dist/assets/index-B2fTJ4AS.js +0 -53
  241. package/dist/web/dashboard/dist/assets/index-CkqEqKiH.css +0 -1
  242. package/dist/web/dashboard/dist/assets/insights-tab-Bm7CDckb.js +0 -1
  243. package/dist/web/dashboard/dist/assets/prd-backlog-tab-X84Rj-IB.js +0 -1
  244. package/dist/web/dashboard/dist/assets/serena-tab-BunULNvw.js +0 -1
@@ -0,0 +1,68 @@
1
+ /**
2
+ * MCP Tool — list_skills
3
+ * Lists built-in skills with optional phase filter.
4
+ */
5
+ import { z } from "zod/v4";
6
+ import { getBuiltInSkills, getSkillsByPhase, getSkillByName } from "../../core/skills/built-in-skills.js";
7
+ import { logger } from "../../core/utils/logger.js";
8
+ export function registerListSkills(server) {
9
+ server.tool("list_skills", "List built-in skills (prompts/workflows) mapped to lifecycle phases. Filter by phase or get a specific skill by name.", {
10
+ phase: z
11
+ .enum(["ANALYZE", "DESIGN", "PLAN", "IMPLEMENT", "VALIDATE", "REVIEW", "HANDOFF", "LISTENING"])
12
+ .optional()
13
+ .describe("Filter skills by lifecycle phase"),
14
+ name: z
15
+ .string()
16
+ .optional()
17
+ .describe("Get a specific skill by name (returns full instructions)"),
18
+ }, async ({ phase, name }) => {
19
+ logger.debug("tool:list_skills", { phase, name });
20
+ // Single skill lookup with full instructions
21
+ if (name) {
22
+ const skill = getSkillByName(name);
23
+ if (!skill) {
24
+ return {
25
+ content: [{
26
+ type: "text",
27
+ text: JSON.stringify({ error: `Skill '${name}' not found` }, null, 2),
28
+ }],
29
+ isError: true,
30
+ };
31
+ }
32
+ return {
33
+ content: [{
34
+ type: "text",
35
+ text: JSON.stringify({
36
+ name: skill.name,
37
+ description: skill.description,
38
+ category: skill.category,
39
+ phases: skill.phases,
40
+ instructions: skill.instructions,
41
+ }, null, 2),
42
+ }],
43
+ };
44
+ }
45
+ // List skills (optionally filtered by phase)
46
+ const skills = phase
47
+ ? getSkillsByPhase(phase)
48
+ : getBuiltInSkills();
49
+ const summary = skills.map((s) => ({
50
+ name: s.name,
51
+ description: s.description,
52
+ category: s.category,
53
+ phases: s.phases,
54
+ }));
55
+ logger.info("tool:list_skills:ok", { count: summary.length, phase: phase ?? "all" });
56
+ return {
57
+ content: [{
58
+ type: "text",
59
+ text: JSON.stringify({
60
+ total: summary.length,
61
+ ...(phase ? { phase } : {}),
62
+ skills: summary,
63
+ }, null, 2),
64
+ }],
65
+ };
66
+ });
67
+ }
68
+ //# sourceMappingURL=list-skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-skills.js","sourceRoot":"","sources":["../../../src/mcp/tools/list-skills.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE1G,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,IAAI,CACT,aAAa,EACb,uHAAuH,EACvH;QACE,KAAK,EAAE,CAAC;aACL,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;aAC9F,QAAQ,EAAE;aACV,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0DAA0D,CAAC;KACxE,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QACxB,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAElD,6CAA6C;QAC7C,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,IAAI,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtE,CAAC;oBACF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,WAAW,EAAE,KAAK,CAAC,WAAW;4BAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,MAAM,EAAE,KAAK,CAAC,MAAM;4BACpB,YAAY,EAAE,KAAK,CAAC,YAAY;yBACjC,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,MAAM,MAAM,GAAG,KAAK;YAClB,CAAC,CAAC,gBAAgB,CAAC,KAAuB,CAAC;YAC3C,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAEvB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CAAC,CAAC;QAEJ,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;QACrF,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,OAAO,CAAC,MAAM;wBACrB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC3B,MAAM,EAAE,OAAO;qBAChB,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP Tool — manage_skill
3
+ * Enable/disable skills and CRUD custom skills via agent.
4
+ */
5
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import type { SqliteStore } from "../../core/store/sqlite-store.js";
7
+ export declare function registerManageSkill(server: McpServer, store: SqliteStore): void;
8
+ //# sourceMappingURL=manage-skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manage-skill.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/manage-skill.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAapE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAsJ/E"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * MCP Tool — manage_skill
3
+ * Enable/disable skills and CRUD custom skills via agent.
4
+ */
5
+ import { z } from "zod/v4";
6
+ import { setSkillEnabled, getSkillPreferences, createCustomSkill, updateCustomSkill, deleteCustomSkill, getCustomSkills, getCustomSkillByName, } from "../../core/skills/skill-store.js";
7
+ import { CustomSkillInputSchema } from "../../schemas/skill.schema.js";
8
+ import { logger } from "../../core/utils/logger.js";
9
+ export function registerManageSkill(server, store) {
10
+ server.tool("manage_skill", "Manage skills: enable/disable built-in skills, CRUD custom skills (know-me, project-specific).", {
11
+ action: z
12
+ .enum(["enable", "disable", "create", "update", "delete", "list_custom", "get_preferences"])
13
+ .describe("Action to perform"),
14
+ skillName: z
15
+ .string()
16
+ .optional()
17
+ .describe("Skill name (for enable/disable/delete_by_name)"),
18
+ skillId: z
19
+ .string()
20
+ .optional()
21
+ .describe("Skill ID (for update/delete)"),
22
+ data: z
23
+ .object({
24
+ name: z.string().optional(),
25
+ description: z.string().optional(),
26
+ category: z.string().optional(),
27
+ phases: z.array(z.string()).optional(),
28
+ instructions: z.string().optional(),
29
+ })
30
+ .optional()
31
+ .describe("Skill data (for create/update)"),
32
+ }, async ({ action, skillName, skillId, data }) => {
33
+ logger.debug("tool:manage_skill", { action, skillName, skillId });
34
+ const project = store.getProject();
35
+ if (!project) {
36
+ return {
37
+ content: [{ type: "text", text: JSON.stringify({ error: "No active project. Run init first." }) }],
38
+ isError: true,
39
+ };
40
+ }
41
+ const db = store.getDb();
42
+ const projectId = project.id;
43
+ try {
44
+ switch (action) {
45
+ case "enable":
46
+ case "disable": {
47
+ if (!skillName) {
48
+ return {
49
+ content: [{ type: "text", text: JSON.stringify({ error: "skillName required for enable/disable" }) }],
50
+ isError: true,
51
+ };
52
+ }
53
+ setSkillEnabled(db, projectId, skillName, action === "enable");
54
+ return {
55
+ content: [{ type: "text", text: JSON.stringify({ ok: true, skillName, enabled: action === "enable" }) }],
56
+ };
57
+ }
58
+ case "create": {
59
+ if (!data) {
60
+ return {
61
+ content: [{ type: "text", text: JSON.stringify({ error: "data required for create" }) }],
62
+ isError: true,
63
+ };
64
+ }
65
+ const parsed = CustomSkillInputSchema.safeParse(data);
66
+ if (!parsed.success) {
67
+ return {
68
+ content: [{ type: "text", text: JSON.stringify({ error: "Validation failed", details: parsed.error.issues }) }],
69
+ isError: true,
70
+ };
71
+ }
72
+ const created = createCustomSkill(db, projectId, parsed.data);
73
+ logger.info("tool:manage_skill:created", { id: created.id, name: created.name });
74
+ return {
75
+ content: [{ type: "text", text: JSON.stringify(created, null, 2) }],
76
+ };
77
+ }
78
+ case "update": {
79
+ if (!skillId || !data) {
80
+ return {
81
+ content: [{ type: "text", text: JSON.stringify({ error: "skillId and data required for update" }) }],
82
+ isError: true,
83
+ };
84
+ }
85
+ const updated = updateCustomSkill(db, projectId, skillId, data);
86
+ return {
87
+ content: [{ type: "text", text: JSON.stringify(updated, null, 2) }],
88
+ };
89
+ }
90
+ case "delete": {
91
+ if (!skillId && !skillName) {
92
+ return {
93
+ content: [{ type: "text", text: JSON.stringify({ error: "skillId or skillName required for delete" }) }],
94
+ isError: true,
95
+ };
96
+ }
97
+ if (skillId) {
98
+ deleteCustomSkill(db, projectId, skillId);
99
+ }
100
+ else if (skillName) {
101
+ const skill = getCustomSkillByName(db, projectId, skillName);
102
+ if (!skill) {
103
+ return {
104
+ content: [{ type: "text", text: JSON.stringify({ error: `Custom skill '${skillName}' not found` }) }],
105
+ isError: true,
106
+ };
107
+ }
108
+ deleteCustomSkill(db, projectId, skill.id);
109
+ }
110
+ return {
111
+ content: [{ type: "text", text: JSON.stringify({ ok: true, deleted: skillId ?? skillName }) }],
112
+ };
113
+ }
114
+ case "list_custom": {
115
+ const customs = getCustomSkills(db, projectId);
116
+ return {
117
+ content: [{
118
+ type: "text",
119
+ text: JSON.stringify({ total: customs.length, skills: customs }, null, 2),
120
+ }],
121
+ };
122
+ }
123
+ case "get_preferences": {
124
+ const prefs = getSkillPreferences(db, projectId);
125
+ const obj = {};
126
+ for (const [k, v] of prefs)
127
+ obj[k] = v;
128
+ return {
129
+ content: [{ type: "text", text: JSON.stringify({ preferences: obj }, null, 2) }],
130
+ };
131
+ }
132
+ default:
133
+ return {
134
+ content: [{ type: "text", text: JSON.stringify({ error: `Unknown action: ${action}` }) }],
135
+ isError: true,
136
+ };
137
+ }
138
+ }
139
+ catch (err) {
140
+ const message = err instanceof Error ? err.message : String(err);
141
+ logger.error("tool:manage_skill:error", { action, error: message });
142
+ return {
143
+ content: [{ type: "text", text: JSON.stringify({ error: message }) }],
144
+ isError: true,
145
+ };
146
+ }
147
+ });
148
+ }
149
+ //# sourceMappingURL=manage-skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manage-skill.js","sourceRoot":"","sources":["../../../src/mcp/tools/manage-skill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP Tools — Native Memory CRUD.
3
+ * Provides write_memory, read_memory, list_memories, delete_memory.
4
+ */
5
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import type { SqliteStore } from "../../core/store/sqlite-store.js";
7
+ export declare function registerMemory(server: McpServer, store: SqliteStore): void;
8
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAWpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAgI1E"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * MCP Tools — Native Memory CRUD.
3
+ * Provides write_memory, read_memory, list_memories, delete_memory.
4
+ */
5
+ import { z } from "zod/v4";
6
+ import { KnowledgeStore } from "../../core/store/knowledge-store.js";
7
+ import { listMemories, readMemory, writeMemory, deleteMemory, } from "../../core/memory/memory-reader.js";
8
+ import { indexMemories } from "../../core/rag/memory-indexer.js";
9
+ import { logger } from "../../core/utils/logger.js";
10
+ export function registerMemory(server, store) {
11
+ // ── write_memory ─────────────────────────────
12
+ server.tool("write_memory", "Write a project memory to workflow-graph/memories/{name}.md. Auto-indexes into the knowledge store for RAG search.", {
13
+ name: z.string().describe("Memory name (without .md extension). Supports nested paths like 'architecture/overview'."),
14
+ content: z.string().describe("Memory content (markdown)."),
15
+ }, async ({ name, content }) => {
16
+ logger.debug("tool:write_memory", { name });
17
+ const basePath = process.cwd();
18
+ await writeMemory(basePath, name, content);
19
+ // Auto-index into knowledge store
20
+ const knowledgeStore = new KnowledgeStore(store.getDb());
21
+ const indexResult = await indexMemories(knowledgeStore, basePath);
22
+ return {
23
+ content: [{
24
+ type: "text",
25
+ text: JSON.stringify({
26
+ ok: true,
27
+ name,
28
+ sizeBytes: Buffer.byteLength(content, "utf-8"),
29
+ indexed: indexResult.documentsIndexed,
30
+ }, null, 2),
31
+ }],
32
+ };
33
+ });
34
+ // ── read_memory ──────────────────────────────
35
+ server.tool("read_memory", "Read a project memory from workflow-graph/memories/{name}.md.", {
36
+ name: z.string().describe("Memory name (without .md extension)."),
37
+ }, async ({ name }) => {
38
+ logger.debug("tool:read_memory", { name });
39
+ const basePath = process.cwd();
40
+ const memory = await readMemory(basePath, name);
41
+ if (!memory) {
42
+ return {
43
+ content: [{
44
+ type: "text",
45
+ text: JSON.stringify({ error: `Memory not found: ${name}` }),
46
+ }],
47
+ isError: true,
48
+ };
49
+ }
50
+ return {
51
+ content: [{
52
+ type: "text",
53
+ text: JSON.stringify(memory, null, 2),
54
+ }],
55
+ };
56
+ });
57
+ // ── list_memories ────────────────────────────
58
+ server.tool("list_memories", "List all project memories available in workflow-graph/memories/.", {}, async () => {
59
+ logger.debug("tool:list_memories", {});
60
+ const basePath = process.cwd();
61
+ const names = await listMemories(basePath);
62
+ return {
63
+ content: [{
64
+ type: "text",
65
+ text: JSON.stringify({
66
+ count: names.length,
67
+ memories: names,
68
+ }, null, 2),
69
+ }],
70
+ };
71
+ });
72
+ // ── delete_memory ────────────────────────────
73
+ server.tool("delete_memory", "Delete a project memory from workflow-graph/memories/{name}.md and remove from knowledge store.", {
74
+ name: z.string().describe("Memory name to delete (without .md extension)."),
75
+ }, async ({ name }) => {
76
+ logger.debug("tool:delete_memory", { name });
77
+ const basePath = process.cwd();
78
+ const deleted = await deleteMemory(basePath, name);
79
+ if (!deleted) {
80
+ return {
81
+ content: [{
82
+ type: "text",
83
+ text: JSON.stringify({ error: `Memory not found: ${name}` }),
84
+ }],
85
+ isError: true,
86
+ };
87
+ }
88
+ // Remove from knowledge store
89
+ const knowledgeStore = new KnowledgeStore(store.getDb());
90
+ const docs = knowledgeStore.list({ sourceType: "memory" });
91
+ let removed = 0;
92
+ for (const doc of docs) {
93
+ if (doc.sourceId === `memory:${name}`) {
94
+ knowledgeStore.delete(doc.id);
95
+ removed++;
96
+ }
97
+ }
98
+ return {
99
+ content: [{
100
+ type: "text",
101
+ text: JSON.stringify({ ok: true, name, knowledgeDocsRemoved: removed }),
102
+ }],
103
+ };
104
+ });
105
+ }
106
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/mcp/tools/memory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reindex-knowledge.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/reindex-knowledge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AASpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAkDpF"}
1
+ {"version":3,"file":"reindex-knowledge.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/reindex-knowledge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAUpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAsDpF"}
@@ -2,33 +2,37 @@ import { z } from "zod/v4";
2
2
  import { KnowledgeStore } from "../../core/store/knowledge-store.js";
3
3
  import { DocsCacheStore } from "../../core/docs/docs-cache-store.js";
4
4
  import { EmbeddingStore } from "../../core/rag/embedding-store.js";
5
- import { indexSerenaMemories } from "../../core/rag/serena-indexer.js";
5
+ import { indexMemories } from "../../core/rag/memory-indexer.js";
6
6
  import { indexCachedDocs } from "../../core/rag/docs-indexer.js";
7
+ import { indexSkills } from "../../core/rag/skill-indexer.js";
7
8
  import { indexAllEmbeddings } from "../../core/rag/rag-pipeline.js";
8
9
  import { logger } from "../../core/utils/logger.js";
9
10
  export function registerReindexKnowledge(server, store) {
10
- server.tool("reindex_knowledge", "Reindex all knowledge sources (Serena memories, cached docs) into the unified knowledge store and rebuild embeddings.", {
11
+ server.tool("reindex_knowledge", "Reindex all knowledge sources (memories, cached docs) into the unified knowledge store and rebuild embeddings.", {
11
12
  basePath: z
12
13
  .string()
13
14
  .optional()
14
- .describe("Project base path for finding Serena memories (default: cwd)"),
15
+ .describe("Project base path for finding memories (default: cwd)"),
15
16
  sources: z
16
- .array(z.enum(["serena", "docs", "embeddings"]))
17
+ .array(z.enum(["memory", "serena", "docs", "skills", "embeddings"]))
17
18
  .optional()
18
- .describe("Which sources to reindex (default: all)"),
19
+ .describe("Which sources to reindex. 'serena' is an alias for 'memory'. (default: all)"),
19
20
  }, async ({ basePath, sources }) => {
20
21
  logger.debug("tool:reindex_knowledge", {});
21
22
  const projectPath = basePath ?? process.cwd();
22
23
  const allSources = !sources || sources.length === 0;
23
24
  const knowledgeStore = new KnowledgeStore(store.getDb());
24
25
  const results = {};
25
- if (allSources || sources?.includes("serena")) {
26
- results.serena = await indexSerenaMemories(knowledgeStore, projectPath);
26
+ if (allSources || sources?.includes("memory") || sources?.includes("serena")) {
27
+ results.memories = await indexMemories(knowledgeStore, projectPath);
27
28
  }
28
29
  if (allSources || sources?.includes("docs")) {
29
30
  const docsCacheStore = new DocsCacheStore(store.getDb());
30
31
  results.docs = indexCachedDocs(knowledgeStore, docsCacheStore);
31
32
  }
33
+ if (allSources || sources?.includes("skills")) {
34
+ results.skills = await indexSkills(knowledgeStore, projectPath);
35
+ }
32
36
  if (allSources || sources?.includes("embeddings")) {
33
37
  const embeddingStore = new EmbeddingStore(store);
34
38
  embeddingStore.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"reindex-knowledge.js","sourceRoot":"","sources":["../../../src/mcp/tools/reindex-knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,KAAkB;IAC5E,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,uHAAuH,EACvH;QACE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;QAC3E,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;aAC/C,QAAQ,EAAE;aACV,QAAQ,CAAC,yCAAyC,CAAC;KACvD,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9B,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAEzD,MAAM,OAAO,GAA4B,EAAE,CAAC;QAE5C,IAAI,UAAU,IAAI,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,MAAM,GAAG,MAAM,mBAAmB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,UAAU,IAAI,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,UAAU,IAAI,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAClD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;YACjD,cAAc,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,UAAU,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;QAEhD,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACrF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"reindex-knowledge.js","sourceRoot":"","sources":["../../../src/mcp/tools/reindex-knowledge.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export declare const GraphIndexesSchema: z.ZodObject<{
8
8
  export declare const GraphProjectSchema: z.ZodObject<{
9
9
  id: z.ZodString;
10
10
  name: z.ZodString;
11
+ fsPath: z.ZodOptional<z.ZodString>;
11
12
  createdAt: z.ZodString;
12
13
  updatedAt: z.ZodString;
13
14
  }, z.core.$strip>;
@@ -20,6 +21,7 @@ export declare const GraphDocumentSchema: z.ZodObject<{
20
21
  project: z.ZodObject<{
21
22
  id: z.ZodString;
22
23
  name: z.ZodString;
24
+ fsPath: z.ZodOptional<z.ZodString>;
23
25
  createdAt: z.ZodString;
24
26
  updatedAt: z.ZodString;
25
27
  }, z.core.$strip>;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/graph.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,eAAe;;;iBAG1B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO9B,CAAC"}
1
+ {"version":3,"file":"graph.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/graph.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;iBAM7B,CAAC;AAEH,eAAO,MAAM,eAAe;;;iBAG1B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO9B,CAAC"}
@@ -10,6 +10,7 @@ export const GraphIndexesSchema = z.object({
10
10
  export const GraphProjectSchema = z.object({
11
11
  id: z.string(),
12
12
  name: z.string(),
13
+ fsPath: z.string().optional(),
13
14
  createdAt: z.string(),
14
15
  updatedAt: z.string(),
15
16
  });
@@ -1 +1 @@
1
- {"version":3,"file":"graph.schema.js","sourceRoot":"","sources":["../../src/schemas/graph.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACtC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,kBAAkB;IAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAC/B,OAAO,EAAE,kBAAkB;IAC3B,IAAI,EAAE,eAAe;CACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"graph.schema.js","sourceRoot":"","sources":["../../src/schemas/graph.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACtC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,kBAAkB;IAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAC/B,OAAO,EAAE,kBAAkB;IAC3B,IAAI,EAAE,eAAe;CACtB,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import { z } from "zod/v4";
2
2
  export declare const KnowledgeSourceTypeSchema: z.ZodEnum<{
3
3
  upload: "upload";
4
4
  serena: "serena";
5
+ memory: "memory";
5
6
  code_context: "code_context";
6
7
  docs: "docs";
7
8
  web_capture: "web_capture";
@@ -9,12 +10,14 @@ export declare const KnowledgeSourceTypeSchema: z.ZodEnum<{
9
10
  design: "design";
10
11
  sprint_plan: "sprint_plan";
11
12
  phase_summary: "phase_summary";
13
+ skill: "skill";
12
14
  }>;
13
15
  export declare const KnowledgeDocumentSchema: z.ZodObject<{
14
16
  id: z.ZodString;
15
17
  sourceType: z.ZodEnum<{
16
18
  upload: "upload";
17
19
  serena: "serena";
20
+ memory: "memory";
18
21
  code_context: "code_context";
19
22
  docs: "docs";
20
23
  web_capture: "web_capture";
@@ -22,6 +25,7 @@ export declare const KnowledgeDocumentSchema: z.ZodObject<{
22
25
  design: "design";
23
26
  sprint_plan: "sprint_plan";
24
27
  phase_summary: "phase_summary";
28
+ skill: "skill";
25
29
  }>;
26
30
  sourceId: z.ZodString;
27
31
  title: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/knowledge.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,yBAAyB;;;;;;;;;;EAEpC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;iBAWlC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"knowledge.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/knowledge.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,yBAAyB;;;;;;;;;;;;EAEpC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;iBAWlC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod/v4";
2
2
  export const KnowledgeSourceTypeSchema = z.enum([
3
- "upload", "serena", "code_context", "docs", "web_capture", "prd", "design", "sprint_plan", "phase_summary",
3
+ "upload", "serena", "memory", "code_context", "docs", "web_capture", "prd", "design", "sprint_plan", "phase_summary", "skill",
4
4
  ]);
5
5
  export const KnowledgeDocumentSchema = z.object({
6
6
  id: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.schema.js","sourceRoot":"","sources":["../../src/schemas/knowledge.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9C,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe;CAC3G,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,UAAU,EAAE,yBAAyB;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"knowledge.schema.js","sourceRoot":"","sources":["../../src/schemas/knowledge.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO;CAC9H,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,UAAU,EAAE,yBAAyB;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { z } from "zod/v4";
2
+ export declare const LifecyclePhaseEnum: z.ZodEnum<{
3
+ ANALYZE: "ANALYZE";
4
+ DESIGN: "DESIGN";
5
+ PLAN: "PLAN";
6
+ IMPLEMENT: "IMPLEMENT";
7
+ VALIDATE: "VALIDATE";
8
+ REVIEW: "REVIEW";
9
+ HANDOFF: "HANDOFF";
10
+ LISTENING: "LISTENING";
11
+ }>;
12
+ export declare const SkillPreferenceSchema: z.ZodObject<{
13
+ projectId: z.ZodString;
14
+ skillName: z.ZodString;
15
+ enabled: z.ZodBoolean;
16
+ updatedAt: z.ZodString;
17
+ }, z.core.$strip>;
18
+ export type SkillPreference = z.infer<typeof SkillPreferenceSchema>;
19
+ export declare const CustomSkillInputSchema: z.ZodObject<{
20
+ name: z.ZodString;
21
+ description: z.ZodString;
22
+ category: z.ZodDefault<z.ZodString>;
23
+ phases: z.ZodArray<z.ZodEnum<{
24
+ ANALYZE: "ANALYZE";
25
+ DESIGN: "DESIGN";
26
+ PLAN: "PLAN";
27
+ IMPLEMENT: "IMPLEMENT";
28
+ VALIDATE: "VALIDATE";
29
+ REVIEW: "REVIEW";
30
+ HANDOFF: "HANDOFF";
31
+ LISTENING: "LISTENING";
32
+ }>>;
33
+ instructions: z.ZodString;
34
+ }, z.core.$strip>;
35
+ export type CustomSkillInput = z.infer<typeof CustomSkillInputSchema>;
36
+ export declare const CustomSkillSchema: z.ZodObject<{
37
+ name: z.ZodString;
38
+ description: z.ZodString;
39
+ category: z.ZodDefault<z.ZodString>;
40
+ phases: z.ZodArray<z.ZodEnum<{
41
+ ANALYZE: "ANALYZE";
42
+ DESIGN: "DESIGN";
43
+ PLAN: "PLAN";
44
+ IMPLEMENT: "IMPLEMENT";
45
+ VALIDATE: "VALIDATE";
46
+ REVIEW: "REVIEW";
47
+ HANDOFF: "HANDOFF";
48
+ LISTENING: "LISTENING";
49
+ }>>;
50
+ instructions: z.ZodString;
51
+ id: z.ZodString;
52
+ projectId: z.ZodString;
53
+ createdAt: z.ZodString;
54
+ updatedAt: z.ZodString;
55
+ }, z.core.$strip>;
56
+ export type CustomSkill = z.infer<typeof CustomSkillSchema>;
57
+ //# sourceMappingURL=skill.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/skill.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,kBAAkB;;;;;;;;;EAE7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;iBAMjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;iBAK5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { z } from "zod/v4";
2
+ export const LifecyclePhaseEnum = z.enum([
3
+ "ANALYZE", "DESIGN", "PLAN", "IMPLEMENT", "VALIDATE", "REVIEW", "HANDOFF", "LISTENING",
4
+ ]);
5
+ export const SkillPreferenceSchema = z.object({
6
+ projectId: z.string(),
7
+ skillName: z.string(),
8
+ enabled: z.boolean(),
9
+ updatedAt: z.string(),
10
+ });
11
+ export const CustomSkillInputSchema = z.object({
12
+ name: z.string().min(1).max(100),
13
+ description: z.string().min(1),
14
+ category: z.string().default("know-me"),
15
+ phases: z.array(LifecyclePhaseEnum),
16
+ instructions: z.string().min(1),
17
+ });
18
+ export const CustomSkillSchema = CustomSkillInputSchema.extend({
19
+ id: z.string(),
20
+ projectId: z.string(),
21
+ createdAt: z.string(),
22
+ updatedAt: z.string(),
23
+ });
24
+ //# sourceMappingURL=skill.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.schema.js","sourceRoot":"","sources":["../../src/schemas/skill.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC;IACvC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW;CACvF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAChC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAC7D,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC"}