@grafema/mcp 0.2.11 → 0.3.0-beta

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 (158) hide show
  1. package/dist/analysis-worker.d.ts +4 -3
  2. package/dist/analysis-worker.d.ts.map +1 -1
  3. package/dist/analysis-worker.js +8 -203
  4. package/dist/analysis-worker.js.map +1 -1
  5. package/dist/analysis.d.ts +10 -3
  6. package/dist/analysis.d.ts.map +1 -1
  7. package/dist/analysis.js +130 -62
  8. package/dist/analysis.js.map +1 -1
  9. package/dist/config.d.ts +5 -11
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +6 -128
  12. package/dist/config.js.map +1 -1
  13. package/dist/definitions/analysis-tools.d.ts +6 -0
  14. package/dist/definitions/analysis-tools.d.ts.map +1 -0
  15. package/dist/definitions/analysis-tools.js +125 -0
  16. package/dist/definitions/analysis-tools.js.map +1 -0
  17. package/dist/definitions/context-tools.d.ts +6 -0
  18. package/dist/definitions/context-tools.d.ts.map +1 -0
  19. package/dist/definitions/context-tools.js +144 -0
  20. package/dist/definitions/context-tools.js.map +1 -0
  21. package/dist/definitions/graph-tools.d.ts +7 -0
  22. package/dist/definitions/graph-tools.d.ts.map +1 -0
  23. package/dist/definitions/graph-tools.js +124 -0
  24. package/dist/definitions/graph-tools.js.map +1 -0
  25. package/dist/definitions/graphql-tools.d.ts +6 -0
  26. package/dist/definitions/graphql-tools.d.ts.map +1 -0
  27. package/dist/definitions/graphql-tools.js +62 -0
  28. package/dist/definitions/graphql-tools.js.map +1 -0
  29. package/dist/definitions/guarantee-tools.d.ts +6 -0
  30. package/dist/definitions/guarantee-tools.d.ts.map +1 -0
  31. package/dist/definitions/guarantee-tools.js +136 -0
  32. package/dist/definitions/guarantee-tools.js.map +1 -0
  33. package/dist/definitions/index.d.ts +7 -0
  34. package/dist/definitions/index.d.ts.map +1 -0
  35. package/dist/definitions/index.js +24 -0
  36. package/dist/definitions/index.js.map +1 -0
  37. package/dist/definitions/knowledge-tools.d.ts +10 -0
  38. package/dist/definitions/knowledge-tools.d.ts.map +1 -0
  39. package/dist/definitions/knowledge-tools.js +300 -0
  40. package/dist/definitions/knowledge-tools.js.map +1 -0
  41. package/dist/definitions/notation-tools.d.ts +9 -0
  42. package/dist/definitions/notation-tools.d.ts.map +1 -0
  43. package/dist/definitions/notation-tools.js +62 -0
  44. package/dist/definitions/notation-tools.js.map +1 -0
  45. package/dist/definitions/project-tools.d.ts +6 -0
  46. package/dist/definitions/project-tools.d.ts.map +1 -0
  47. package/dist/definitions/project-tools.js +181 -0
  48. package/dist/definitions/project-tools.js.map +1 -0
  49. package/dist/definitions/query-tools.d.ts +6 -0
  50. package/dist/definitions/query-tools.d.ts.map +1 -0
  51. package/dist/definitions/query-tools.js +245 -0
  52. package/dist/definitions/query-tools.js.map +1 -0
  53. package/dist/definitions/types.d.ts +21 -0
  54. package/dist/definitions/types.d.ts.map +1 -0
  55. package/dist/definitions/types.js +5 -0
  56. package/dist/definitions/types.js.map +1 -0
  57. package/dist/dev-proxy.d.ts +29 -0
  58. package/dist/dev-proxy.d.ts.map +1 -0
  59. package/dist/dev-proxy.js +267 -0
  60. package/dist/dev-proxy.js.map +1 -0
  61. package/dist/handlers/analysis-handlers.d.ts.map +1 -1
  62. package/dist/handlers/analysis-handlers.js +34 -4
  63. package/dist/handlers/analysis-handlers.js.map +1 -1
  64. package/dist/handlers/context-handlers.d.ts +5 -6
  65. package/dist/handlers/context-handlers.d.ts.map +1 -1
  66. package/dist/handlers/context-handlers.js +19 -16
  67. package/dist/handlers/context-handlers.js.map +1 -1
  68. package/dist/handlers/coverage-handlers.js +1 -1
  69. package/dist/handlers/dataflow-handlers.d.ts +2 -0
  70. package/dist/handlers/dataflow-handlers.d.ts.map +1 -1
  71. package/dist/handlers/dataflow-handlers.js +68 -46
  72. package/dist/handlers/dataflow-handlers.js.map +1 -1
  73. package/dist/handlers/documentation-handlers.d.ts.map +1 -1
  74. package/dist/handlers/documentation-handlers.js +56 -2
  75. package/dist/handlers/documentation-handlers.js.map +1 -1
  76. package/dist/handlers/graph-handlers.d.ts +23 -0
  77. package/dist/handlers/graph-handlers.d.ts.map +1 -0
  78. package/dist/handlers/graph-handlers.js +155 -0
  79. package/dist/handlers/graph-handlers.js.map +1 -0
  80. package/dist/handlers/graphql-handlers.d.ts +9 -0
  81. package/dist/handlers/graphql-handlers.d.ts.map +1 -0
  82. package/dist/handlers/graphql-handlers.js +57 -0
  83. package/dist/handlers/graphql-handlers.js.map +1 -0
  84. package/dist/handlers/guarantee-handlers.js +1 -1
  85. package/dist/handlers/guard-handlers.d.ts.map +1 -1
  86. package/dist/handlers/guard-handlers.js +6 -3
  87. package/dist/handlers/guard-handlers.js.map +1 -1
  88. package/dist/handlers/index.d.ts +4 -0
  89. package/dist/handlers/index.d.ts.map +1 -1
  90. package/dist/handlers/index.js +6 -0
  91. package/dist/handlers/index.js.map +1 -1
  92. package/dist/handlers/issue-handlers.d.ts.map +1 -1
  93. package/dist/handlers/issue-handlers.js +10 -15
  94. package/dist/handlers/issue-handlers.js.map +1 -1
  95. package/dist/handlers/knowledge-handlers.d.ts +25 -0
  96. package/dist/handlers/knowledge-handlers.d.ts.map +1 -0
  97. package/dist/handlers/knowledge-handlers.js +208 -0
  98. package/dist/handlers/knowledge-handlers.js.map +1 -0
  99. package/dist/handlers/notation-handlers.d.ts +6 -0
  100. package/dist/handlers/notation-handlers.d.ts.map +1 -0
  101. package/dist/handlers/notation-handlers.js +53 -0
  102. package/dist/handlers/notation-handlers.js.map +1 -0
  103. package/dist/handlers/project-handlers.js +1 -1
  104. package/dist/handlers/query-handlers.d.ts.map +1 -1
  105. package/dist/handlers/query-handlers.js +166 -20
  106. package/dist/handlers/query-handlers.js.map +1 -1
  107. package/dist/prompts.js +1 -1
  108. package/dist/server.d.ts +19 -1
  109. package/dist/server.d.ts.map +1 -1
  110. package/dist/server.js +93 -3
  111. package/dist/server.js.map +1 -1
  112. package/dist/state.d.ts +10 -1
  113. package/dist/state.d.ts.map +1 -1
  114. package/dist/state.js +61 -8
  115. package/dist/state.js.map +1 -1
  116. package/dist/types.d.ts +75 -3
  117. package/dist/types.d.ts.map +1 -1
  118. package/dist/utils.d.ts +4 -0
  119. package/dist/utils.d.ts.map +1 -1
  120. package/dist/utils.js +18 -1
  121. package/dist/utils.js.map +1 -1
  122. package/package.json +4 -3
  123. package/src/analysis-worker.ts +9 -301
  124. package/src/analysis.ts +151 -77
  125. package/src/config.ts +6 -193
  126. package/src/definitions/analysis-tools.ts +127 -0
  127. package/src/definitions/context-tools.ts +147 -0
  128. package/src/definitions/graph-tools.ts +126 -0
  129. package/src/definitions/graphql-tools.ts +64 -0
  130. package/src/definitions/guarantee-tools.ts +138 -0
  131. package/src/definitions/index.ts +28 -0
  132. package/src/definitions/knowledge-tools.ts +302 -0
  133. package/src/definitions/notation-tools.ts +64 -0
  134. package/src/definitions/project-tools.ts +183 -0
  135. package/src/definitions/query-tools.ts +247 -0
  136. package/src/definitions/types.ts +22 -0
  137. package/src/dev-proxy.ts +336 -0
  138. package/src/handlers/analysis-handlers.ts +35 -4
  139. package/src/handlers/context-handlers.ts +19 -15
  140. package/src/handlers/coverage-handlers.ts +1 -1
  141. package/src/handlers/dataflow-handlers.ts +74 -56
  142. package/src/handlers/documentation-handlers.ts +56 -2
  143. package/src/handlers/graph-handlers.ts +212 -0
  144. package/src/handlers/graphql-handlers.ts +70 -0
  145. package/src/handlers/guarantee-handlers.ts +1 -1
  146. package/src/handlers/guard-handlers.ts +7 -3
  147. package/src/handlers/index.ts +6 -0
  148. package/src/handlers/issue-handlers.ts +10 -15
  149. package/src/handlers/knowledge-handlers.ts +242 -0
  150. package/src/handlers/notation-handlers.ts +71 -0
  151. package/src/handlers/project-handlers.ts +1 -1
  152. package/src/handlers/query-handlers.ts +186 -22
  153. package/src/prompts.ts +1 -1
  154. package/src/server.ts +126 -2
  155. package/src/state.ts +68 -8
  156. package/src/types.ts +98 -3
  157. package/src/utils.ts +22 -1
  158. package/src/definitions.ts +0 -665
@@ -1 +1 @@
1
- {"version":3,"file":"guard-handlers.js","sourceRoot":"","sources":["../../src/handlers/guard-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACL,eAAe,EACf,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAC;AAOrB,gCAAgC;AAEhC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAoB;IACzD,MAAM,EAAE,GAAG,MAAM,kBAAkB,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExB,4BAA4B;IAC5B,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,SAAS,GAAG,MAAM,CAAC;IAEvB,+BAA+B;IAC/B,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,MAAM;QAClC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEvB,wCAAwC;QACxC,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACzE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QAEtC,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtC,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE9C,IAAI,CAAC,UAAU;YAAE,MAAM;QAEvB,uCAAuC;QACvC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3B,wCAAwC;YACxC,IAAI,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;YACzC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACxC,CAAC;gBAAC,MAAM,CAAC;oBACP,mCAAmC;gBACrC,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,UAAU,CAAC,EAAE;gBACtB,SAAS,EAAG,UAAU,CAAC,SAAoB,IAAI,SAAS;gBACxD,SAAS,EAAE,UAAU,CAAC,SAA+B;gBACrD,WAAW,EAAE,WAAoC;gBACjD,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE;gBAC3B,IAAI,EAAG,UAAU,CAAC,IAAe,IAAI,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;QAED,SAAS,GAAG,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,UAAU,CACf,6BAA6B,MAAM,IAAI;YACvC,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE;YAC/D,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,iBAAiB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,UAAU,CACf,SAAS,MAAM,CAAC,MAAM,uBAAuB,MAAM,IAAI;QACvD,4BAA4B;QAC5B,OAAO;QACP,MAAM;QACN,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CACjD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"guard-handlers.js","sourceRoot":"","sources":["../../src/handlers/guard-handlers.ts"],"names":[],"mappings":"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"}
@@ -11,4 +11,8 @@ export { handleGetCoverage } from './coverage-handlers.js';
11
11
  export { handleFindGuards } from './guard-handlers.js';
12
12
  export { handleGetDocumentation } from './documentation-handlers.js';
13
13
  export { handleReportIssue } from './issue-handlers.js';
14
+ export { handleGetNode, handleGetNeighbors, handleTraverseGraph } from './graph-handlers.js';
15
+ export { handleAddKnowledge, handleQueryKnowledge, handleQueryDecisions, handleSupersedeFact, handleGetKnowledgeStats } from './knowledge-handlers.js';
16
+ export { handleDescribe } from './notation-handlers.js';
17
+ export { handleGraphQLQuery } from './graphql-handlers.js';
14
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGvJ,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -11,4 +11,10 @@ export { handleGetCoverage } from './coverage-handlers.js';
11
11
  export { handleFindGuards } from './guard-handlers.js';
12
12
  export { handleGetDocumentation } from './documentation-handlers.js';
13
13
  export { handleReportIssue } from './issue-handlers.js';
14
+ export { handleGetNode, handleGetNeighbors, handleTraverseGraph } from './graph-handlers.js';
15
+ export { handleAddKnowledge, handleQueryKnowledge, handleQueryDecisions, handleSupersedeFact, handleGetKnowledgeStats } from './knowledge-handlers.js';
16
+ // Disabled: requires git-ingest (US-17). See US-17 in AI-AGENT-STORIES.md
17
+ // export { handleGitChurn, handleGitCoChange, handleGitOwnership, handleGitArchaeology } from './knowledge-handlers.js';
18
+ export { handleDescribe } from './notation-handlers.js';
19
+ export { handleGraphQLQuery } from './graphql-handlers.js';
14
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvJ,0EAA0E;AAC1E,yHAAyH;AACzH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"issue-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/issue-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EAChB,MAAM,aAAa,CAAC;AAIrB,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAkElF"}
1
+ {"version":3,"file":"issue-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/issue-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EAChB,MAAM,aAAa,CAAC;AAIrB,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA6DlF"}
@@ -5,9 +5,7 @@ import { textResult, } from '../utils.js';
5
5
  // === BUG REPORTING ===
6
6
  export async function handleReportIssue(args) {
7
7
  const { title, description, context, labels = ['bug'] } = args;
8
- // Use user's token if provided, otherwise fall back to project's issue-only token
9
- const GRAFEMA_ISSUE_TOKEN = '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';
10
- const githubToken = process.env.GITHUB_TOKEN || GRAFEMA_ISSUE_TOKEN;
8
+ const githubToken = process.env.GITHUB_TOKEN;
11
9
  const repo = 'Disentinel/grafema';
12
10
  // Build issue body
13
11
  const body = `## Description
@@ -15,12 +13,11 @@ ${description}
15
13
 
16
14
  ${context ? `## Context\n\`\`\`\n${context}\n\`\`\`\n` : ''}
17
15
  ## Environment
18
- - Grafema version: 0.1.0-alpha.1
19
16
  - Reported via: MCP tool
20
17
 
21
18
  ---
22
- *This issue was automatically created via Grafema MCP server.*`;
23
- // Try GitHub API if token is available
19
+ *This issue was created via Grafema MCP server.*`;
20
+ // Try GitHub API if user has a token configured
24
21
  if (githubToken) {
25
22
  try {
26
23
  const response = await fetch(`https://api.github.com/repos/${repo}/issues`, {
@@ -38,9 +35,7 @@ ${context ? `## Context\n\`\`\`\n${context}\n\`\`\`\n` : ''}
38
35
  });
39
36
  if (response.ok) {
40
37
  const issue = await response.json();
41
- return textResult(`✅ Issue created successfully!\n\n` +
42
- `**Issue #${issue.number}**: ${issue.html_url}\n\n` +
43
- `Thank you for reporting this issue.`);
38
+ return textResult(`Issue created: #${issue.number} ${issue.html_url}`);
44
39
  }
45
40
  else {
46
41
  const error = await response.text();
@@ -48,19 +43,19 @@ ${context ? `## Context\n\`\`\`\n${context}\n\`\`\`\n` : ''}
48
43
  }
49
44
  }
50
45
  catch (error) {
51
- // Fall through to manual template if API fails
52
46
  console.error('[report_issue] GitHub API failed:', error);
53
47
  }
54
48
  }
55
- // Fallback: return template for manual submission
49
+ // Return template for manual submission
56
50
  const issueUrl = `https://github.com/${repo}/issues/new`;
57
51
  const encodedTitle = encodeURIComponent(title);
58
52
  const encodedBody = encodeURIComponent(body);
59
53
  const encodedLabels = encodeURIComponent(labels.join(','));
60
54
  const directUrl = `${issueUrl}?title=${encodedTitle}&body=${encodedBody}&labels=${encodedLabels}`;
61
- return textResult(`⚠️ Failed to create issue automatically. Please create it manually:\n\n` +
62
- `**Quick link** (may truncate long descriptions):\n${directUrl}\n\n` +
63
- `**Or copy this template to** ${issueUrl}:\n\n` +
64
- `---\n**Title:** ${title}\n\n${body}\n---`);
55
+ return textResult(`Create issue manually:\n\n` +
56
+ `**Link:** ${directUrl}\n\n` +
57
+ `Or copy to ${issueUrl}:\n\n` +
58
+ `---\n**Title:** ${title}\n\n${body}\n---\n\n` +
59
+ `Tip: Set GITHUB_TOKEN env var to create issues automatically.`);
65
60
  }
66
61
  //# sourceMappingURL=issue-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue-handlers.js","sourceRoot":"","sources":["../../src/handlers/issue-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,GACX,MAAM,aAAa,CAAC;AAMrB,wBAAwB;AAExB,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAqB;IAC3D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;IAC/D,kFAAkF;IAClF,MAAM,mBAAmB,GAAG,+FAA+F,CAAC;IAC5H,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,mBAAmB,CAAC;IACpE,MAAM,IAAI,GAAG,oBAAoB,CAAC;IAElC,mBAAmB;IACnB,MAAM,IAAI,GAAG;EACb,WAAW;;EAEX,OAAO,CAAC,CAAC,CAAC,uBAAuB,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE;;;;;;+DAMI,CAAC;IAE9D,uCAAuC;IACvC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gCAAgC,IAAI,SAAS,EAAE;gBAC1E,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,eAAe,EAAE,SAAS,WAAW,EAAE;oBACvC,cAAc,EAAE,kBAAkB;oBAClC,QAAQ,EAAE,gCAAgC;iBAC3C;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK;oBACL,IAAI;oBACJ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC5F,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA0C,CAAC;gBAC5E,OAAO,UAAU,CACf,mCAAmC;oBACnC,YAAY,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,QAAQ,MAAM;oBACnD,qCAAqC,CACtC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,MAAM,KAAK,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,+CAA+C;YAC/C,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,MAAM,QAAQ,GAAG,sBAAsB,IAAI,aAAa,CAAC;IACzD,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,GAAG,QAAQ,UAAU,YAAY,SAAS,WAAW,WAAW,aAAa,EAAE,CAAC;IAElG,OAAO,UAAU,CACf,yEAAyE;QACzE,qDAAqD,SAAS,MAAM;QACpE,gCAAgC,QAAQ,OAAO;QAC/C,mBAAmB,KAAK,OAAO,IAAI,OAAO,CAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"issue-handlers.js","sourceRoot":"","sources":["../../src/handlers/issue-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,GACX,MAAM,aAAa,CAAC;AAMrB,wBAAwB;AAExB,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAqB;IAC3D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;IAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC7C,MAAM,IAAI,GAAG,oBAAoB,CAAC;IAElC,mBAAmB;IACnB,MAAM,IAAI,GAAG;EACb,WAAW;;EAEX,OAAO,CAAC,CAAC,CAAC,uBAAuB,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE;;;;;iDAKV,CAAC;IAEhD,gDAAgD;IAChD,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gCAAgC,IAAI,SAAS,EAAE;gBAC1E,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,eAAe,EAAE,SAAS,WAAW,EAAE;oBACvC,cAAc,EAAE,kBAAkB;oBAClC,QAAQ,EAAE,gCAAgC;iBAC3C;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK;oBACL,IAAI;oBACJ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC5F,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA0C,CAAC;gBAC5E,OAAO,UAAU,CACf,mBAAmB,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CACpD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,MAAM,KAAK,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,QAAQ,GAAG,sBAAsB,IAAI,aAAa,CAAC;IACzD,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,GAAG,QAAQ,UAAU,YAAY,SAAS,WAAW,WAAW,aAAa,EAAE,CAAC;IAElG,OAAO,UAAU,CACf,4BAA4B;QAC5B,aAAa,SAAS,MAAM;QAC5B,cAAc,QAAQ,OAAO;QAC7B,mBAAmB,KAAK,OAAO,IAAI,WAAW;QAC9C,+DAA+D,CAChE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * MCP Knowledge Handlers
3
+ */
4
+ import type { ToolResult, AddKnowledgeArgs, QueryKnowledgeArgs, QueryDecisionsArgs, SupersedeFactArgs } from '../types.js';
5
+ /**
6
+ * Add a new knowledge node.
7
+ */
8
+ export declare function handleAddKnowledge(args: AddKnowledgeArgs): Promise<ToolResult>;
9
+ /**
10
+ * Query knowledge nodes with filters.
11
+ */
12
+ export declare function handleQueryKnowledge(args: QueryKnowledgeArgs): Promise<ToolResult>;
13
+ /**
14
+ * Query decisions, optionally filtered by module or status.
15
+ */
16
+ export declare function handleQueryDecisions(args: QueryDecisionsArgs): Promise<ToolResult>;
17
+ /**
18
+ * Supersede an existing fact with a new version.
19
+ */
20
+ export declare function handleSupersedeFact(args: SupersedeFactArgs): Promise<ToolResult>;
21
+ /**
22
+ * Get knowledge base statistics.
23
+ */
24
+ export declare function handleGetKnowledgeStats(): Promise<ToolResult>;
25
+ //# sourceMappingURL=knowledge-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/knowledge-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAMlB,MAAM,aAAa,CAAC;AAKrB;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CA+BpF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CA+CxF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAuCxF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBtF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,UAAU,CAAC,CAyDnE"}
@@ -0,0 +1,208 @@
1
+ /**
2
+ * MCP Knowledge Handlers
3
+ */
4
+ import { getOrCreateKnowledgeBase } from '../state.js';
5
+ import { textResult, errorResult } from '../utils.js';
6
+ // Disabled: requires git-ingest (US-17). See US-17 in AI-AGENT-STORIES.md
7
+ // import { getChurn, getCoChanges, getOwnership, getArchaeology } from '@grafema/util';
8
+ /**
9
+ * Add a new knowledge node.
10
+ */
11
+ export async function handleAddKnowledge(args) {
12
+ try {
13
+ const kb = await getOrCreateKnowledgeBase();
14
+ const node = await kb.addNode({
15
+ type: args.type,
16
+ content: args.content,
17
+ slug: args.slug,
18
+ subtype: args.subtype,
19
+ scope: args.scope,
20
+ projections: args.projections,
21
+ relates_to: args.relates_to,
22
+ status: args.status,
23
+ confidence: args.confidence,
24
+ effective_from: args.effective_from,
25
+ applies_to: args.applies_to,
26
+ task_id: args.task_id,
27
+ });
28
+ return textResult(`Created ${node.type} node: ${node.id}\n` +
29
+ `File: ${node.filePath}\n` +
30
+ `Lifecycle: ${node.lifecycle}\n` +
31
+ (node.content.length > 200
32
+ ? `Content: ${node.content.slice(0, 200)}...`
33
+ : `Content: ${node.content}`));
34
+ }
35
+ catch (error) {
36
+ const message = error instanceof Error ? error.message : String(error);
37
+ return errorResult(`Failed to add knowledge: ${message}`);
38
+ }
39
+ }
40
+ /**
41
+ * Query knowledge nodes with filters.
42
+ */
43
+ export async function handleQueryKnowledge(args) {
44
+ try {
45
+ const kb = await getOrCreateKnowledgeBase();
46
+ const nodes = await kb.queryNodes({
47
+ type: args.type,
48
+ projection: args.projection,
49
+ relates_to: args.relates_to,
50
+ text: args.text,
51
+ include_dangling_only: args.include_dangling_only,
52
+ });
53
+ if (nodes.length === 0) {
54
+ return textResult('No matching knowledge nodes found.');
55
+ }
56
+ const lines = [`Found ${nodes.length} node(s):\n`];
57
+ for (const node of nodes) {
58
+ lines.push(`## ${node.id}`);
59
+ lines.push(`Type: ${node.type} | Lifecycle: ${node.lifecycle}`);
60
+ if (node.projections.length > 0)
61
+ lines.push(`Projections: ${node.projections.join(', ')}`);
62
+ if (node.type === 'DECISION') {
63
+ const d = node;
64
+ lines.push(`Status: ${d.status}`);
65
+ if (d.applies_to?.length)
66
+ lines.push(`Applies to: ${d.applies_to.join(', ')}`);
67
+ }
68
+ // Include resolution status for code references
69
+ const resolved = await kb.resolveReferences(node);
70
+ if (resolved.length > 0) {
71
+ lines.push('Code refs:');
72
+ for (const r of resolved) {
73
+ const icon = r.status === 'resolved' ? 'OK' : 'DANGLING';
74
+ lines.push(` [${icon}] ${r.address}${r.codeNodeId ? ` → ${r.codeNodeId}` : ''}`);
75
+ }
76
+ }
77
+ lines.push('');
78
+ lines.push(node.content.length > 500 ? node.content.slice(0, 500) + '...' : node.content);
79
+ lines.push('');
80
+ }
81
+ return textResult(lines.join('\n'));
82
+ }
83
+ catch (error) {
84
+ const message = error instanceof Error ? error.message : String(error);
85
+ return errorResult(`Failed to query knowledge: ${message}`);
86
+ }
87
+ }
88
+ /**
89
+ * Query decisions, optionally filtered by module or status.
90
+ */
91
+ export async function handleQueryDecisions(args) {
92
+ try {
93
+ const kb = await getOrCreateKnowledgeBase();
94
+ let decisions;
95
+ if (args.module) {
96
+ decisions = await kb.activeDecisionsFor(args.module);
97
+ if (args.status) {
98
+ decisions = decisions.filter(d => d.status === args.status);
99
+ }
100
+ }
101
+ else {
102
+ const nodes = await kb.queryNodes({
103
+ type: 'DECISION',
104
+ status: args.status,
105
+ });
106
+ decisions = nodes;
107
+ }
108
+ if (decisions.length === 0) {
109
+ return textResult('No matching decisions found.');
110
+ }
111
+ const lines = [`Found ${decisions.length} decision(s):\n`];
112
+ for (const d of decisions) {
113
+ lines.push(`## ${d.id} [${d.status}]`);
114
+ if (d.applies_to?.length)
115
+ lines.push(`Applies to: ${d.applies_to.join(', ')}`);
116
+ if (d.effective_from)
117
+ lines.push(`Effective from: ${d.effective_from}`);
118
+ if (d.superseded_by)
119
+ lines.push(`Superseded by: ${d.superseded_by}`);
120
+ lines.push('');
121
+ lines.push(d.content);
122
+ lines.push('');
123
+ }
124
+ return textResult(lines.join('\n'));
125
+ }
126
+ catch (error) {
127
+ const message = error instanceof Error ? error.message : String(error);
128
+ return errorResult(`Failed to query decisions: ${message}`);
129
+ }
130
+ }
131
+ /**
132
+ * Supersede an existing fact with a new version.
133
+ */
134
+ export async function handleSupersedeFact(args) {
135
+ try {
136
+ const kb = await getOrCreateKnowledgeBase();
137
+ const result = await kb.supersedeFact(args.old_id, args.new_content, args.new_slug);
138
+ return textResult(`Superseded fact:\n` +
139
+ `Old: ${result.old.id} (now has superseded_by: ${result.old.superseded_by})\n` +
140
+ `New: ${result.new.id}\n` +
141
+ `File: ${result.new.filePath}`);
142
+ }
143
+ catch (error) {
144
+ const message = error instanceof Error ? error.message : String(error);
145
+ return errorResult(`Failed to supersede fact: ${message}`);
146
+ }
147
+ }
148
+ /**
149
+ * Get knowledge base statistics.
150
+ */
151
+ export async function handleGetKnowledgeStats() {
152
+ try {
153
+ const kb = await getOrCreateKnowledgeBase();
154
+ const stats = await kb.getStats();
155
+ const lines = [
156
+ `## Knowledge Base Stats\n`,
157
+ `Total nodes: ${stats.totalNodes}`,
158
+ `Total edges: ${stats.totalEdges}`,
159
+ ];
160
+ if (Object.keys(stats.byType).length > 0) {
161
+ lines.push('\n### By Type');
162
+ for (const [type, count] of Object.entries(stats.byType)) {
163
+ lines.push(`- ${type}: ${count}`);
164
+ }
165
+ }
166
+ if (Object.keys(stats.byLifecycle).length > 0) {
167
+ lines.push('\n### By Lifecycle');
168
+ for (const [lifecycle, count] of Object.entries(stats.byLifecycle)) {
169
+ lines.push(`- ${lifecycle}: ${count}`);
170
+ }
171
+ }
172
+ if (Object.keys(stats.edgesByType).length > 0) {
173
+ lines.push('\n### Edges by Type');
174
+ for (const [type, count] of Object.entries(stats.edgesByType)) {
175
+ lines.push(`- ${type}: ${count}`);
176
+ }
177
+ }
178
+ if (stats.danglingRefs.length > 0) {
179
+ lines.push(`\n### Dangling KB References (${stats.danglingRefs.length})`);
180
+ for (const ref of stats.danglingRefs.slice(0, 10)) {
181
+ lines.push(`- ${ref}`);
182
+ }
183
+ if (stats.danglingRefs.length > 10) {
184
+ lines.push(`... and ${stats.danglingRefs.length - 10} more`);
185
+ }
186
+ }
187
+ if (stats.danglingCodeRefs.length > 0) {
188
+ lines.push(`\n### Dangling Code References (${stats.danglingCodeRefs.length})`);
189
+ for (const ref of stats.danglingCodeRefs.slice(0, 10)) {
190
+ lines.push(`- ${ref.nodeId} → ${ref.address}`);
191
+ }
192
+ if (stats.danglingCodeRefs.length > 10) {
193
+ lines.push(`... and ${stats.danglingCodeRefs.length - 10} more`);
194
+ }
195
+ }
196
+ return textResult(lines.join('\n'));
197
+ }
198
+ catch (error) {
199
+ const message = error instanceof Error ? error.message : String(error);
200
+ return errorResult(`Failed to get knowledge stats: ${message}`);
201
+ }
202
+ }
203
+ // Disabled: requires git-ingest (US-17). See US-17 in AI-AGENT-STORIES.md
204
+ // export async function handleGitChurn(args: GitChurnArgs): Promise<ToolResult> { ... }
205
+ // export async function handleGitCoChange(args: GitCoChangeArgs): Promise<ToolResult> { ... }
206
+ // export async function handleGitOwnership(args: GitOwnershipArgs): Promise<ToolResult> { ... }
207
+ // export async function handleGitArchaeology(args: GitArchaeologyArgs): Promise<ToolResult> { ... }
208
+ //# sourceMappingURL=knowledge-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-handlers.js","sourceRoot":"","sources":["../../src/handlers/knowledge-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * MCP Notation Handlers — describe tool
3
+ */
4
+ import type { ToolResult, DescribeArgs } from '../types.js';
5
+ export declare function handleDescribe(args: DescribeArgs): Promise<ToolResult>;
6
+ //# sourceMappingURL=notation-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notation-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/notation-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE5D,wBAAsB,cAAc,CAClC,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,UAAU,CAAC,CA0DrB"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * MCP Notation Handlers — describe tool
3
+ */
4
+ import { ensureAnalyzed } from '../analysis.js';
5
+ import { renderNotation, extractSubgraph, PERSPECTIVES, generateLegend, isGrafemaUri, toCompactSemanticId } from '@grafema/util';
6
+ import { textResult, errorResult } from '../utils.js';
7
+ export async function handleDescribe(args) {
8
+ const db = await ensureAnalyzed();
9
+ const { target, depth = 1, perspective } = args;
10
+ // Step 1: Resolve target → node ID
11
+ let node = await db.getNode(target);
12
+ // If not found by semantic ID, try queryNodes for file path or name
13
+ if (!node) {
14
+ // Try as file path (MODULE node)
15
+ for await (const n of db.queryNodes({ file: target, type: 'MODULE' })) {
16
+ node = n;
17
+ break;
18
+ }
19
+ }
20
+ if (!node) {
21
+ // Try by name (any type)
22
+ for await (const n of db.queryNodes({ name: target })) {
23
+ node = n;
24
+ break;
25
+ }
26
+ }
27
+ if (!node) {
28
+ const displayTarget = isGrafemaUri(target) ? toCompactSemanticId(target) : target;
29
+ return errorResult(`Target not found: "${displayTarget}"\n` +
30
+ `Try: semantic ID (from find_nodes), file path, or node name.`);
31
+ }
32
+ // Step 2: Extract subgraph
33
+ const subgraph = await extractSubgraph(db, node.id, depth);
34
+ // Step 3: Build options
35
+ const options = {
36
+ depth,
37
+ includeLocations: depth >= 2,
38
+ };
39
+ if (perspective && PERSPECTIVES[perspective]) {
40
+ options.archetypeFilter = PERSPECTIVES[perspective];
41
+ }
42
+ // Step 4: Render
43
+ const notation = renderNotation(subgraph, options);
44
+ if (!notation.trim()) {
45
+ return textResult(`[${node.type}] ${node.name ?? node.id}\nNo relationships found at depth=${depth}.`);
46
+ }
47
+ // Append legend (generated from archetypes.ts — single source of truth) + LOD hint
48
+ const depthHint = depth < 3
49
+ ? `Showing depth=${depth}. Use depth=${depth + 1} for more detail.`
50
+ : `Showing depth=${depth}.`;
51
+ return textResult(`${notation}\n\n${generateLegend()}\n${depthHint}`);
52
+ }
53
+ //# sourceMappingURL=notation-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notation-handlers.js","sourceRoot":"","sources":["../../src/handlers/notation-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEjI,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGtD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAkB;IAElB,MAAM,EAAE,GAAG,MAAM,cAAc,EAAE,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAEhD,mCAAmC;IACnC,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpC,oEAAoE;IACpE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,iCAAiC;QACjC,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YACtE,IAAI,GAAG,CAAC,CAAC;YACT,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,yBAAyB;QACzB,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,CAAC,CAAC;YACT,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAClF,OAAO,WAAW,CAChB,sBAAsB,aAAa,KAAK;YACxC,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAE3D,wBAAwB;IACxB,MAAM,OAAO,GAAoB;QAC/B,KAAK;QACL,gBAAgB,EAAE,KAAK,IAAI,CAAC;KAC7B,CAAC;IACF,IAAI,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,OAAO,UAAU,CACf,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,qCAAqC,KAAK,GAAG,CACpF,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC;QACzB,CAAC,CAAC,iBAAiB,KAAK,eAAe,KAAK,GAAG,CAAC,mBAAmB;QACnE,CAAC,CAAC,iBAAiB,KAAK,GAAG,CAAC;IAE9B,OAAO,UAAU,CAAC,GAAG,QAAQ,OAAO,cAAc,EAAE,KAAK,SAAS,EAAE,CAAC,CAAC;AACxE,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * MCP Project Handlers
3
3
  */
4
4
  import { getProjectPath } from '../state.js';
5
- import { validateServices, validatePatterns, validateWorkspace, GRAFEMA_VERSION, getSchemaVersion } from '@grafema/core';
5
+ import { validateServices, validatePatterns, validateWorkspace, GRAFEMA_VERSION, getSchemaVersion } from '@grafema/util';
6
6
  import { existsSync, readdirSync, statSync, writeFileSync, mkdirSync } from 'fs';
7
7
  import { join, basename } from 'path';
8
8
  import { stringify as stringifyYAML } from 'yaml';
@@ -1 +1 @@
1
- {"version":3,"file":"query-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/query-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EAId,MAAM,aAAa,CAAC;AAIrB,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CA8EhF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CA0E9E;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAiD9E"}
1
+ {"version":3,"file":"query-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/query-handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EAId,MAAM,aAAa,CAAC;AAIrB,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CA0LhF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAiF9E;AAgDD,wBAAsB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAkD9E"}