@skillcap/gdh 0.21.1 → 0.23.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 (64) hide show
  1. package/INSTALL-BUNDLE.json +1 -1
  2. package/README.md +1 -1
  3. package/RELEASE-SPAN-UPDATE-CONTRACTS.json +141 -0
  4. package/node_modules/@gdh/adapters/dist/authoring-hook-render.d.ts.map +1 -1
  5. package/node_modules/@gdh/adapters/dist/authoring-hook-render.js +7 -50
  6. package/node_modules/@gdh/adapters/dist/authoring-hook-render.js.map +1 -1
  7. package/node_modules/@gdh/adapters/dist/claude-settings-patch.d.ts.map +1 -1
  8. package/node_modules/@gdh/adapters/dist/claude-settings-patch.js +16 -14
  9. package/node_modules/@gdh/adapters/dist/claude-settings-patch.js.map +1 -1
  10. package/node_modules/@gdh/adapters/dist/index.d.ts +6 -1
  11. package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
  12. package/node_modules/@gdh/adapters/dist/index.js +30 -11
  13. package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
  14. package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts +4 -1
  15. package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts.map +1 -1
  16. package/node_modules/@gdh/adapters/dist/skill-rendering.js +52 -1
  17. package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
  18. package/node_modules/@gdh/adapters/package.json +8 -8
  19. package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.d.ts +112 -0
  20. package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.d.ts.map +1 -0
  21. package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.js +264 -0
  22. package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.js.map +1 -0
  23. package/node_modules/@gdh/authoring/dist/diagnostics-broker.d.ts +92 -0
  24. package/node_modules/@gdh/authoring/dist/diagnostics-broker.d.ts.map +1 -0
  25. package/node_modules/@gdh/authoring/dist/diagnostics-broker.js +532 -0
  26. package/node_modules/@gdh/authoring/dist/diagnostics-broker.js.map +1 -0
  27. package/node_modules/@gdh/authoring/dist/index.d.ts +1 -0
  28. package/node_modules/@gdh/authoring/dist/index.d.ts.map +1 -1
  29. package/node_modules/@gdh/authoring/dist/index.js +1 -0
  30. package/node_modules/@gdh/authoring/dist/index.js.map +1 -1
  31. package/node_modules/@gdh/authoring/dist/lsp-client.d.ts +16 -0
  32. package/node_modules/@gdh/authoring/dist/lsp-client.d.ts.map +1 -1
  33. package/node_modules/@gdh/authoring/dist/lsp-client.js +24 -0
  34. package/node_modules/@gdh/authoring/dist/lsp-client.js.map +1 -1
  35. package/node_modules/@gdh/authoring/dist/lsp.d.ts.map +1 -1
  36. package/node_modules/@gdh/authoring/dist/lsp.js +123 -2
  37. package/node_modules/@gdh/authoring/dist/lsp.js.map +1 -1
  38. package/node_modules/@gdh/authoring/package.json +2 -2
  39. package/node_modules/@gdh/cli/dist/index.d.ts.map +1 -1
  40. package/node_modules/@gdh/cli/dist/index.js +179 -3
  41. package/node_modules/@gdh/cli/dist/index.js.map +1 -1
  42. package/node_modules/@gdh/cli/dist/migrate.d.ts.map +1 -1
  43. package/node_modules/@gdh/cli/dist/migrate.js +5 -3
  44. package/node_modules/@gdh/cli/dist/migrate.js.map +1 -1
  45. package/node_modules/@gdh/cli/dist/setup.js +1 -1
  46. package/node_modules/@gdh/cli/package.json +10 -10
  47. package/node_modules/@gdh/core/dist/index.d.ts +115 -4
  48. package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
  49. package/node_modules/@gdh/core/dist/index.js +8 -3
  50. package/node_modules/@gdh/core/dist/index.js.map +1 -1
  51. package/node_modules/@gdh/core/package.json +1 -1
  52. package/node_modules/@gdh/docs/dist/guidance.d.ts.map +1 -1
  53. package/node_modules/@gdh/docs/dist/guidance.js +13 -8
  54. package/node_modules/@gdh/docs/dist/guidance.js.map +1 -1
  55. package/node_modules/@gdh/docs/package.json +2 -2
  56. package/node_modules/@gdh/mcp/dist/index.d.ts.map +1 -1
  57. package/node_modules/@gdh/mcp/dist/index.js +100 -18
  58. package/node_modules/@gdh/mcp/dist/index.js.map +1 -1
  59. package/node_modules/@gdh/mcp/package.json +8 -8
  60. package/node_modules/@gdh/observability/package.json +2 -2
  61. package/node_modules/@gdh/runtime/package.json +2 -2
  62. package/node_modules/@gdh/scan/package.json +3 -3
  63. package/node_modules/@gdh/verify/package.json +7 -7
  64. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"skill-rendering.js","sourceRoot":"","sources":["../src/skill-rendering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-rendering.js","sourceRoot":"","sources":["../src/skill-rendering.ts"],"names":[],"mappings":"AA6BA,MAAM,sBAAsB,GAAG,iCAAiC,CAAC;AAEjE,SAAS,kBAAkB,CAAC,KAAoB,EAAE,SAAiB;IACjE,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,IAAI,SAAS,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,SAAS,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAoB,EAAE,SAAiB;IACxE,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC;AACzD,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAoB;IACrD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,qKAAqK,CAAC;IAC/K,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,8OAA8O,CAAC;IACxP,CAAC;IACD,OAAO,0LAA0L,CAAC;AACpM,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,gEAAgE;IAChE,2IAA2I;IAC3I,6GAA6G;IAC7G,oIAAoI;IACpI,+FAA+F;IAC/F,0HAA0H;IAC1H,gGAAgG;IAChG,uFAAuF;IACvF,4GAA4G;IAC5G,iJAAiJ;CACzI,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,sHAAsH;IACtH,+GAA+G;IAC/G,4FAA4F;IAC5F,iFAAiF;IACjF,6IAA6I;IAC7I,gIAAgI;IAChI,oIAAoI;CAC5H,CAAC;AAEX,MAAM,UAAU,GAAG;IACjB,iGAAiG;IACjG,iHAAiH;IACjH,+HAA+H;IAC/H,6HAA6H;IAC7H,+FAA+F;CACvF,CAAC;AAEX,MAAM,aAAa,GAAG;IACpB,wGAAwG;IACxG,yIAAyI;IACzI,mIAAmI;IACnI,gIAAgI;IAChI,yFAAyF;CACjF,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,wFAAwF;IACxF,+FAA+F;IAC/F,oGAAoG;IACpG,0GAA0G;IAC1G,oIAAoI;IACpI,kGAAkG;CAC1F,CAAC;AAEX,MAAM,WAAW,GAAG;IAClB,6GAA6G;IAC7G,gGAAgG;IAChG,0GAA0G;IAC1G,kGAAkG;IAClG,gIAAgI;IAChI,+GAA+G;CACvG,CAAC;AAEX,MAAM,aAAa,GAAG;IACpB,sDAAsD;IACtD,6GAA6G;IAC7G,kHAAkH;IAClH,+GAA+G;IAC/G,yHAAyH;IACzH,6FAA6F;IAC7F,iFAAiF;CACzE,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB,+IAA+I;IAC/I,wHAAwH;IACxH,gIAAgI;IAChI,wIAAwI;IACxI,kKAAkK;CAC1J,CAAC;AAEX,SAAS,GAAG,CAAC,OAAe,EAAE,OAAoB,QAAQ;IACxD,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,wBAAwB,OAAO,EAAE,CAAC;AAC/F,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAA2C;IAC3E,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,uDAAuD;QACpE,SAAS,EACP,yIAAyI;QAC3I,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAChE,aAAa,EAAE;YACb,0FAA0F;YAC1F,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,4DAA4D,GAAG,CAAC,OAAO,CAAC,YAAY;YACpF,oIAAoI;YACpI,oCAAoC,GAAG,CAAC,OAAO,CAAC,4BAA4B,GAAG,CAAC,OAAO,CAAC,8BAA8B;YACtH,8MAA8M;YAC9M,kNAAkN;YAClN,SAAS,GAAG,CAAC,OAAO,CAAC,wJAAwJ;YAC7K,SAAS,GAAG,CAAC,OAAO,CAAC,+NAA+N;YACpP,aAAa,GAAG,CAAC,OAAO,CAAC,4BAA4B,GAAG,CAAC,OAAO,CAAC,iFAAiF;YAClJ,qaAAqa;YACra,uEAAuE;YACvE,2EAA2E;SAC5E;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,mFAAmF;YACnF,qDAAqD;YACrD,+CAA+C;YAC/C,qGAAqG;SACtG;KACF;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,6EAA6E;QAC1F,SAAS,EACP,kGAAkG;QACpG,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC7C,aAAa,EAAE;YACb,oFAAoF;YACpF,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,SAAS,GAAG,CAAC,OAAO,CAAC,0GAA0G;YAC/H,4LAA4L;YAC5L,qWAAqW;YACrW,iMAAiM;YACjM,mKAAmK;YACnK,SAAS,GAAG,CAAC,OAAO,CAAC,yMAAyM;YAC9N,GAAG,sBAAsB,6GAA6G;YACtI,6GAA6G;YAC7G,2QAA2Q;YAC3Q,+HAA+H;YAC/H,8HAA8H;SAC/H;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,4BAA4B;YAC5B,qDAAqD;YACrD,oCAAoC;YACpC,qGAAqG;SACtG;KACF;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,gEAAgE;QAC7E,gBAAgB,EAAE,qCAAqC;QACvD,SAAS,EACP,qHAAqH;QACvH,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC7C,aAAa,EAAE;YACb,oFAAoF;YACpF,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,SAAS,GAAG,CAAC,OAAO,CAAC,0EAA0E;YAC/F,oHAAoH;YACpH,iIAAiI;YACjI,+HAA+H;YAC/H,iIAAiI;YACjI,+JAA+J;SAChK;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,+CAA+C;YAC/C,kFAAkF;YAClF,sKAAsK;YACtK,qGAAqG;SACtG;KACF;IACD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,0CAA0C;QACvD,SAAS,EAAE,8EAA8E;QACzF,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAChE,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE;YACb,wCAAwC;YACxC,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,SAAS,GAAG,CAAC,OAAO,CAAC,qHAAqH;YAC1I,oKAAoK;YACpK,uJAAuJ;YACvJ,oKAAoK;YACpK,iJAAiJ;YACjJ,gPAAgP;YAChP,4QAA4Q;YAC5Q,2IAA2I;YAC3I,kUAAkU;YAClU,6BAA6B,GAAG,CAAC,OAAO,CAAC,kGAAkG;YAC3I,2LAA2L;YAC3L,mHAAmH;YACnH,6FAA6F;YAC7F,4LAA4L;YAC5L,0TAA0T;YAC1T,yFAAyF;SAC1F;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAClB,wDAAwD;YACxD,gCAAgC;YAChC,2GAA2G,GAAG,CAAC,OAAO,CAAC,0CAA0C;YACjK,sGAAsG;YACtG,4BAA4B;SAC7B;KACF;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,2EAA2E;QACxF,gBAAgB,EAAE,0BAA0B;QAC5C,SAAS,EACP,mGAAmG;QACrG,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAChD,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE;YACb,8DAA8D;YAC9D,gLAAgL;YAChL,6GAA6G;YAC7G,0DAA0D;SAC3D;QACD,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5B,4LAA4L;YAC5L,6MAA6M;YAC7M,yMAAyM;YACzM,oLAAoL;YACpL,oOAAoO;YACpO,yBAAyB,CAAC,KAAK,CAAC;YAChC,oMAAoM,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM;YACjP,iNAAiN;YACjN,qMAAqM;YACrM,iQAAiQ;YACjQ,0OAA0O;YAC1O,4tBAA4tB;YAC5tB,mQAAmQ;YACnQ,0EAA0E;YAC1E,4LAA4L;YAC5L,qRAAqR;YACrR,yFAAyF;SAC1F;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,wKAAwK;YACxK,4FAA4F;YAC5F,mIAAmI;YACnI,mIAAmI;YACnI,yKAAyK;YACzK,6FAA6F;YAC7F,0GAA0G;YAC1G,oHAAoH;SACrH;KACF;IACD,KAAK,EAAE;QACL,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,kDAAkD;QAC/D,SAAS,EAAE,2EAA2E;QACtF,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC7C,aAAa,EAAE;YACb,oFAAoF;YACpF,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,SAAS,GAAG,CAAC,OAAO,CAAC,0FAA0F;YAC/G,SAAS,GAAG,CAAC,OAAO,CAAC,2JAA2J;YAChL,yJAAyJ;YACzJ,kJAAkJ;YAClJ,2DAA2D;YAC3D,8EAA8E,GAAG,CAAC,OAAO,CAAC,oBAAoB,GAAG,CAAC,OAAO,CAAC,qBAAqB,GAAG,CAAC,OAAO,CAAC,sBAAsB,GAAG,CAAC,OAAO,CAAC,sDAAsD;YACnP,sDAAsD;SACvD;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,+CAA+C;YAC/C,qEAAqE;YACrE,8GAA8G;YAC9G,qFAAqF;YACrF,8CAA8C;YAC9C,gGAAgG;YAChG,8OAA8O;YAC9O,sDAAsD;SACvD;KACF;IACD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,sDAAsD;QACnE,SAAS,EAAE,oFAAoF;QAC/F,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAChE,aAAa,EAAE;YACb,yEAAyE;YACzE,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,SAAS,GAAG,CAAC,OAAO,CAAC,yKAAyK;YAC9L,8JAA8J;YAC9J,4HAA4H;YAC5H,gHAAgH;YAChH,6aAA6a;YAC7a,0LAA0L;YAC1L,0DAA0D,GAAG,CAAC,OAAO,CAAC,iEAAiE;YACvI,mCAAmC,GAAG,CAAC,OAAO,CAAC,wFAAwF;SACxI;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,4BAA4B;YAC5B,sHAAsH;YACtH,mKAAmK;YACnK,gJAAgJ;YAChJ,iEAAiE;SAClE;KACF;IACD,UAAU,EAAE;QACV,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,kDAAkD;QAC/D,gBAAgB,EAAE,sBAAsB;QACxC,SAAS,EACP,kJAAkJ;QACpJ,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAChE,aAAa,EAAE;YACb,0FAA0F;YAC1F,4FAA4F;SAC7F;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,kQAAkQ;YAClQ,oSAAoS;YACpS,SAAS,GAAG,CAAC,OAAO,CAAC,6FAA6F;YAClH,6CAA6C,GAAG,CAAC,OAAO,CAAC,+LAA+L;YACxP,gQAAgQ;YAChQ,SAAS,GAAG,CAAC,OAAO,CAAC,kKAAkK;YACvL,SAAS,GAAG,CAAC,OAAO,CAAC,qKAAqK;YAC1L,8MAA8M;YAC9M,oCAAoC,GAAG,CAAC,OAAO,CAAC,sLAAsL;YACtO,gEAAgE,GAAG,CAAC,OAAO,CAAC,8EAA8E,GAAG,CAAC,OAAO,CAAC,0YAA0Y;YAChjB,2ZAA2Z;YAC3Z,gPAAgP;SACjP;QACD,KAAK,EAAE,GAAG,EAAE,CAAC;YACX,uFAAuF;YACvF,sGAAsG;YACtG,6FAA6F;YAC7F,4GAA4G;YAC5G,oGAAoG;YACpG,+HAA+H;SAChI;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAA0B,CAAC;AAEzF,MAAM,CAAC,MAAM,8BAA8B,GAAG,yBAAyB,CAAC;AAExE,MAAM,UAAU,cAAc,CAC5B,KAAoB,EACpB,OAAmB,EACnB,aAAqB;IAErB,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG;QACZ,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC;QACvC,EAAE;QACF,QAAQ,8BAA8B,aAAa,KAAK,UAAU,UAAU,CAAC,IAAI,MAAM;QACvF,EAAE;QACF,UAAU;QACV,yNAAyN;QACzN,EAAE;QACF,eAAe;QACf,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;QACtC,EAAE;QACF,cAAc;QACd,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC;QAC9E,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,QAAQ;YAC5B,CAAC,CAAC;gBACE,0CAA0C,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,8DAA8D;aAC1J;YACH,CAAC,CAAC,EAAE,CAAC;QACP,EAAE;QACF,oBAAoB;QACpB,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,EAAE;QACF,YAAY;QACZ,oBAAoB;QACpB,EAAE;QACF,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QACzF,EAAE;QACF,UAAU;QACV,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7D,EAAE;KACH,CAAC;IACF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAoB,EAAE,SAAiB;IAC9E,OAAO,QAAQ,8BAA8B,aAAa,KAAK,UAAU,SAAS,MAAM,CAAC;AAC3F,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAoB,EACpB,UAA8B;IAE9B,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO;YACL,KAAK;YACL,UAAU,UAAU,CAAC,IAAI,GAAG;YAC5B,iBAAiB,UAAU,CAAC,WAAW,GAAG;YAC1C,WAAW;YACX,yBAAyB,UAAU,CAAC,gBAAgB,IAAI,UAAU,CAAC,WAAW,GAAG;YACjF,KAAK;SACN,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,EAAE,SAAS,UAAU,CAAC,IAAI,EAAE,EAAE,iBAAiB,UAAU,CAAC,WAAW,GAAG,EAAE,KAAK,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,WAAW,GAAG;QAClB,KAAK;QACL,SAAS,UAAU,CAAC,IAAI,EAAE;QAC1B,gBAAgB,UAAU,CAAC,WAAW,EAAE;KACzC,CAAC;IACF,IAAI,UAAU,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACzC,WAAW,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAoB,EACpB,UAA8B;IAE9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG;QACZ,4DAA4D,OAAO,KAAK;KACzE,CAAC;IACF,IAAI,UAAU,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CACR,4CAA4C,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,8DAA8D,CAC5J,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,6CAA6C,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,UAAU,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,aAAqB;IAC1D,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAAqB;IACzD,OAAO,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,aAAqB;IACxD,OAAO,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAAqB;IACzD,OAAO,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,aAAqB;IAC1D,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,aAAqB;IAC1D,OAAO,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAAqB;IACzD,OAAO,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,aAAqB;IAC1D,OAAO,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB;IAC3D,OAAO,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAAqB;IAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAC7D,CAAC"}
@@ -11,13 +11,13 @@
11
11
  }
12
12
  },
13
13
  "dependencies": {
14
- "@gdh/authoring": "0.21.1",
15
- "@gdh/core": "0.21.1",
16
- "@gdh/docs": "0.21.1",
17
- "@gdh/observability": "0.21.1",
18
- "@gdh/runtime": "0.21.1",
19
- "@gdh/scan": "0.21.1",
20
- "@gdh/verify": "0.21.1"
14
+ "@gdh/authoring": "0.23.0",
15
+ "@gdh/core": "0.23.0",
16
+ "@gdh/docs": "0.23.0",
17
+ "@gdh/observability": "0.23.0",
18
+ "@gdh/runtime": "0.23.0",
19
+ "@gdh/scan": "0.23.0",
20
+ "@gdh/verify": "0.23.0"
21
21
  },
22
- "version": "0.21.1"
22
+ "version": "0.23.0"
23
23
  }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Authoring Diagnostics Broker Contract
3
+ *
4
+ * Defines the types, constants, identity normalization helpers, and health
5
+ * classification logic for the persistent diagnostics broker.
6
+ *
7
+ * The broker is target/worktree scoped, local-only (loopback), and
8
+ * token-protected. Its state lives under `.gdh-state/authoring/diagnostics-broker/`.
9
+ * It builds on the existing managed LSP lifecycle rather than introducing
10
+ * a second Godot editor process.
11
+ *
12
+ * Raw LSP payloads are provenance only. All product-facing shapes use
13
+ * `GdhAuthoringDiagnostic` from `@gdh/core`.
14
+ *
15
+ * Pattern reference: packages/runtime/src/bridge-broker-contract.ts
16
+ * ADR: docs/adrs/0003-lsp-based-authoring-validation.md (Persistent Diagnostics Broker Addendum)
17
+ */
18
+ import type { GdhDiagnosticsBrokerHealth, GdhDiagnosticsBrokerMetadata, GdhDiagnosticsBrokerTargetIdentity, GdhDiagnosticsFreshnessState, GdhDiagnosticsFileSnapshot, GdhDiagnosticsSnapshot } from "@gdh/core";
19
+ import { GDH_DIAGNOSTICS_BROKER_DEFAULT_HEARTBEAT_STALE_AFTER_MS, GDH_DIAGNOSTICS_BROKER_LOOPBACK_HOST, GDH_DIAGNOSTICS_BROKER_PROTOCOL_VERSION, GDH_DIAGNOSTICS_BROKER_STATE_RELATIVE_PATH } from "@gdh/core";
20
+ export { GDH_DIAGNOSTICS_BROKER_DEFAULT_HEARTBEAT_STALE_AFTER_MS, GDH_DIAGNOSTICS_BROKER_LOOPBACK_HOST, GDH_DIAGNOSTICS_BROKER_PROTOCOL_VERSION, GDH_DIAGNOSTICS_BROKER_STATE_RELATIVE_PATH, };
21
+ export declare const DIAGNOSTICS_BROKER_DEFAULT_FRESHNESS_STALE_AFTER_MS = 60000;
22
+ export type GdhDiagnosticsBrokerPathStyle = "posix" | "win32";
23
+ export interface NormalizeDiagnosticsBrokerTargetIdentityInput {
24
+ readonly targetRootPath: string;
25
+ readonly godotProjectRootPath: string;
26
+ readonly stateRootPath: string;
27
+ readonly pathStyle?: GdhDiagnosticsBrokerPathStyle;
28
+ }
29
+ /**
30
+ * Normalize target/worktree identity for the diagnostics broker.
31
+ *
32
+ * Uses the same path-normalization approach as the runtime bridge broker
33
+ * contract to ensure consistent identity keys across OS path variants,
34
+ * trailing separators, and relative segments.
35
+ */
36
+ export declare function normalizeDiagnosticsBrokerTargetIdentity(input: NormalizeDiagnosticsBrokerTargetIdentityInput): GdhDiagnosticsBrokerTargetIdentity;
37
+ export interface ValidateDiagnosticsBrokerHandshakeInput {
38
+ readonly expectedIdentity: GdhDiagnosticsBrokerTargetIdentity;
39
+ readonly metadata: GdhDiagnosticsBrokerMetadata | null;
40
+ readonly expectedGdhVersion: string;
41
+ readonly tokenPresent: boolean;
42
+ readonly pidAlive: boolean;
43
+ readonly nowMs?: number;
44
+ readonly heartbeatStaleAfterMs?: number;
45
+ }
46
+ /**
47
+ * Validate broker metadata and classify its health state.
48
+ *
49
+ * Returns `missing` if metadata is null.
50
+ * Returns `incompatible` for protocol, GDH version, or identity mismatches.
51
+ * Returns `stale` for token, heartbeat, or process failures.
52
+ * Returns `ready` when all checks pass.
53
+ */
54
+ export declare function validateDiagnosticsBrokerHandshake(input: ValidateDiagnosticsBrokerHandshakeInput): GdhDiagnosticsBrokerHealth;
55
+ export interface ClassifyDiagnosticsFreshnessInput {
56
+ readonly fileSnapshot: GdhDiagnosticsFileSnapshot | null;
57
+ readonly nowMs?: number;
58
+ readonly staleAfterMs?: number;
59
+ }
60
+ /**
61
+ * Classify the freshness state of a file's diagnostics snapshot.
62
+ *
63
+ * - `missing`: no snapshot exists for this file
64
+ * - `unavailable`: snapshot exists but LSP instance identity is missing (broker degraded)
65
+ * - `stale`: snapshot is older than the configured staleness threshold
66
+ * - `fresh`: snapshot is within the staleness threshold
67
+ */
68
+ export declare function classifyDiagnosticsFreshness(input: ClassifyDiagnosticsFreshnessInput): GdhDiagnosticsFreshnessState;
69
+ export interface ClassifySnapshotFreshnessInput {
70
+ readonly files: readonly GdhDiagnosticsFileSnapshot[];
71
+ readonly requestedUris?: readonly string[];
72
+ readonly nowMs?: number;
73
+ readonly staleAfterMs?: number;
74
+ }
75
+ /**
76
+ * Roll up freshness across all files in a snapshot.
77
+ *
78
+ * - `missing`: no files in snapshot
79
+ * - `unavailable`: all files are unavailable
80
+ * - `scope_limited`: some requested URIs are not covered
81
+ * - `stale`: at least one file is stale and none is missing
82
+ * - `fresh`: all files are fresh
83
+ */
84
+ export declare function classifySnapshotFreshness(input: ClassifySnapshotFreshnessInput): GdhDiagnosticsFreshnessState;
85
+ /**
86
+ * Count diagnostics by severity across all file snapshots.
87
+ */
88
+ export declare function countDiagnosticsInSnapshot(files: readonly GdhDiagnosticsFileSnapshot[]): {
89
+ errorCount: number;
90
+ warningCount: number;
91
+ infoCount: number;
92
+ };
93
+ /**
94
+ * Build a complete `GdhDiagnosticsSnapshot` from a health result and file list.
95
+ */
96
+ export declare function buildDiagnosticsSnapshot(health: GdhDiagnosticsBrokerHealth, files: readonly GdhDiagnosticsFileSnapshot[], options?: {
97
+ readonly requestedUris?: readonly string[];
98
+ readonly nowMs?: number;
99
+ readonly staleAfterMs?: number;
100
+ }): GdhDiagnosticsSnapshot;
101
+ /**
102
+ * Resolve the standard file paths used by the diagnostics broker under
103
+ * `.gdh-state/authoring/diagnostics-broker/`.
104
+ */
105
+ export declare function resolveDiagnosticsBrokerPaths(stateRootPath: string): {
106
+ readonly brokerDir: string;
107
+ readonly metadataPath: string;
108
+ readonly tokenFilePath: string;
109
+ readonly heartbeatPath: string;
110
+ readonly snapshotPath: string;
111
+ };
112
+ //# sourceMappingURL=diagnostics-broker-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics-broker-contract.d.ts","sourceRoot":"","sources":["../src/diagnostics-broker-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,264 @@
1
+ /**
2
+ * Authoring Diagnostics Broker Contract
3
+ *
4
+ * Defines the types, constants, identity normalization helpers, and health
5
+ * classification logic for the persistent diagnostics broker.
6
+ *
7
+ * The broker is target/worktree scoped, local-only (loopback), and
8
+ * token-protected. Its state lives under `.gdh-state/authoring/diagnostics-broker/`.
9
+ * It builds on the existing managed LSP lifecycle rather than introducing
10
+ * a second Godot editor process.
11
+ *
12
+ * Raw LSP payloads are provenance only. All product-facing shapes use
13
+ * `GdhAuthoringDiagnostic` from `@gdh/core`.
14
+ *
15
+ * Pattern reference: packages/runtime/src/bridge-broker-contract.ts
16
+ * ADR: docs/adrs/0003-lsp-based-authoring-validation.md (Persistent Diagnostics Broker Addendum)
17
+ */
18
+ import path from "node:path";
19
+ import { GDH_DIAGNOSTICS_BROKER_DEFAULT_HEARTBEAT_STALE_AFTER_MS, GDH_DIAGNOSTICS_BROKER_LOOPBACK_HOST, GDH_DIAGNOSTICS_BROKER_PROTOCOL_VERSION, GDH_DIAGNOSTICS_BROKER_STATE_RELATIVE_PATH, } from "@gdh/core";
20
+ export { GDH_DIAGNOSTICS_BROKER_DEFAULT_HEARTBEAT_STALE_AFTER_MS, GDH_DIAGNOSTICS_BROKER_LOOPBACK_HOST, GDH_DIAGNOSTICS_BROKER_PROTOCOL_VERSION, GDH_DIAGNOSTICS_BROKER_STATE_RELATIVE_PATH, };
21
+ export const DIAGNOSTICS_BROKER_DEFAULT_FRESHNESS_STALE_AFTER_MS = 60_000;
22
+ /**
23
+ * Normalize target/worktree identity for the diagnostics broker.
24
+ *
25
+ * Uses the same path-normalization approach as the runtime bridge broker
26
+ * contract to ensure consistent identity keys across OS path variants,
27
+ * trailing separators, and relative segments.
28
+ */
29
+ export function normalizeDiagnosticsBrokerTargetIdentity(input) {
30
+ const pathStyle = input.pathStyle ?? (process.platform === "win32" ? "win32" : "posix");
31
+ const normalizedTargetRootPath = normalizeBrokerPath(input.targetRootPath, pathStyle);
32
+ const normalizedGodotProjectRootPath = normalizeBrokerPath(input.godotProjectRootPath, pathStyle);
33
+ const normalizedStateRootPath = normalizeBrokerPath(input.stateRootPath, pathStyle);
34
+ return {
35
+ targetRootPath: input.targetRootPath,
36
+ godotProjectRootPath: input.godotProjectRootPath,
37
+ stateRootPath: input.stateRootPath,
38
+ normalizedTargetRootPath,
39
+ normalizedGodotProjectRootPath,
40
+ normalizedStateRootPath,
41
+ pathStyle,
42
+ identityKey: [
43
+ `target=${normalizedTargetRootPath}`,
44
+ `godot=${normalizedGodotProjectRootPath}`,
45
+ `state=${normalizedStateRootPath}`,
46
+ `style=${pathStyle}`,
47
+ ].join("|"),
48
+ };
49
+ }
50
+ /**
51
+ * Validate broker metadata and classify its health state.
52
+ *
53
+ * Returns `missing` if metadata is null.
54
+ * Returns `incompatible` for protocol, GDH version, or identity mismatches.
55
+ * Returns `stale` for token, heartbeat, or process failures.
56
+ * Returns `ready` when all checks pass.
57
+ */
58
+ export function validateDiagnosticsBrokerHandshake(input) {
59
+ const reasons = [];
60
+ const metadata = input.metadata;
61
+ if (metadata === null) {
62
+ return {
63
+ lifecycle: "missing",
64
+ reasons: ["broker_metadata_missing"],
65
+ metadata: null,
66
+ };
67
+ }
68
+ if (metadata.protocolVersion !== GDH_DIAGNOSTICS_BROKER_PROTOCOL_VERSION) {
69
+ reasons.push("broker_protocol_mismatch");
70
+ }
71
+ if (metadata.gdhVersion !== input.expectedGdhVersion) {
72
+ reasons.push("broker_gdh_version_mismatch");
73
+ }
74
+ if (metadata.targetIdentity.normalizedTargetRootPath !==
75
+ input.expectedIdentity.normalizedTargetRootPath) {
76
+ reasons.push("broker_target_mismatch");
77
+ }
78
+ if (metadata.targetIdentity.normalizedGodotProjectRootPath !==
79
+ input.expectedIdentity.normalizedGodotProjectRootPath) {
80
+ reasons.push("broker_godot_project_mismatch");
81
+ }
82
+ if (metadata.targetIdentity.normalizedStateRootPath !==
83
+ input.expectedIdentity.normalizedStateRootPath) {
84
+ reasons.push("broker_state_root_mismatch");
85
+ }
86
+ if (!input.tokenPresent) {
87
+ reasons.push("broker_token_missing");
88
+ }
89
+ if (!input.pidAlive) {
90
+ reasons.push("broker_process_not_alive");
91
+ }
92
+ if (metadata.host !== GDH_DIAGNOSTICS_BROKER_LOOPBACK_HOST) {
93
+ // Not currently a typed reason since host is fixed by the protocol.
94
+ // Treat it as a protocol mismatch if host is non-loopback.
95
+ reasons.push("broker_protocol_mismatch");
96
+ }
97
+ const nowMs = input.nowMs ?? Date.now();
98
+ const heartbeatMs = Date.parse(metadata.lastHeartbeatAt);
99
+ const heartbeatStaleAfterMs = input.heartbeatStaleAfterMs ?? GDH_DIAGNOSTICS_BROKER_DEFAULT_HEARTBEAT_STALE_AFTER_MS;
100
+ if (!Number.isFinite(heartbeatMs) || nowMs - heartbeatMs > heartbeatStaleAfterMs) {
101
+ reasons.push("broker_heartbeat_stale");
102
+ }
103
+ const lifecycle = classifyDiagnosticsBrokerLifecycle(reasons);
104
+ return {
105
+ lifecycle,
106
+ reasons: reasons.length === 0 ? ["broker_ready"] : reasons,
107
+ metadata,
108
+ };
109
+ }
110
+ function classifyDiagnosticsBrokerLifecycle(reasons) {
111
+ if (reasons.length === 0)
112
+ return "ready";
113
+ if (reasons.some((r) => [
114
+ "broker_protocol_mismatch",
115
+ "broker_gdh_version_mismatch",
116
+ "broker_target_mismatch",
117
+ "broker_godot_project_mismatch",
118
+ "broker_state_root_mismatch",
119
+ ].includes(r))) {
120
+ return "incompatible";
121
+ }
122
+ if (reasons.some((r) => ["broker_token_missing", "broker_heartbeat_stale", "broker_process_not_alive"].includes(r))) {
123
+ return "stale";
124
+ }
125
+ return "unavailable";
126
+ }
127
+ /**
128
+ * Classify the freshness state of a file's diagnostics snapshot.
129
+ *
130
+ * - `missing`: no snapshot exists for this file
131
+ * - `unavailable`: snapshot exists but LSP instance identity is missing (broker degraded)
132
+ * - `stale`: snapshot is older than the configured staleness threshold
133
+ * - `fresh`: snapshot is within the staleness threshold
134
+ */
135
+ export function classifyDiagnosticsFreshness(input) {
136
+ const { fileSnapshot, nowMs = Date.now(), staleAfterMs = DIAGNOSTICS_BROKER_DEFAULT_FRESHNESS_STALE_AFTER_MS } = input;
137
+ if (fileSnapshot === null) {
138
+ return "missing";
139
+ }
140
+ if (fileSnapshot.lspInstanceId === null) {
141
+ return "unavailable";
142
+ }
143
+ if (fileSnapshot.lastUpdatedAt === null) {
144
+ return "missing";
145
+ }
146
+ const updatedMs = Date.parse(fileSnapshot.lastUpdatedAt);
147
+ if (!Number.isFinite(updatedMs) || nowMs - updatedMs > staleAfterMs) {
148
+ return "stale";
149
+ }
150
+ return "fresh";
151
+ }
152
+ /**
153
+ * Roll up freshness across all files in a snapshot.
154
+ *
155
+ * - `missing`: no files in snapshot
156
+ * - `unavailable`: all files are unavailable
157
+ * - `scope_limited`: some requested URIs are not covered
158
+ * - `stale`: at least one file is stale and none is missing
159
+ * - `fresh`: all files are fresh
160
+ */
161
+ export function classifySnapshotFreshness(input) {
162
+ const { files, requestedUris, nowMs, staleAfterMs } = input;
163
+ if (files.length === 0) {
164
+ return "missing";
165
+ }
166
+ const fileByUri = new Map(files.map((f) => [f.uri, f]));
167
+ // If caller specified requested URIs, check for scope gap first.
168
+ if (requestedUris !== undefined && requestedUris.length > 0) {
169
+ const covered = requestedUris.filter((uri) => fileByUri.has(uri));
170
+ if (covered.length < requestedUris.length) {
171
+ return "scope_limited";
172
+ }
173
+ }
174
+ const freshnesses = files.map((f) => classifyDiagnosticsFreshness({
175
+ fileSnapshot: f,
176
+ ...(nowMs !== undefined && { nowMs }),
177
+ ...(staleAfterMs !== undefined && { staleAfterMs }),
178
+ }));
179
+ if (freshnesses.every((s) => s === "unavailable"))
180
+ return "unavailable";
181
+ if (freshnesses.some((s) => s === "missing"))
182
+ return "missing";
183
+ if (freshnesses.some((s) => s === "stale"))
184
+ return "stale";
185
+ return "fresh";
186
+ }
187
+ // ─── Snapshot Summary Helpers ─────────────────────────────────────────────────
188
+ /**
189
+ * Count diagnostics by severity across all file snapshots.
190
+ */
191
+ export function countDiagnosticsInSnapshot(files) {
192
+ let errorCount = 0;
193
+ let warningCount = 0;
194
+ let infoCount = 0;
195
+ for (const file of files) {
196
+ for (const diag of file.diagnostics) {
197
+ if (diag.severity === "error")
198
+ errorCount++;
199
+ else if (diag.severity === "warning")
200
+ warningCount++;
201
+ else
202
+ infoCount++;
203
+ }
204
+ }
205
+ return { errorCount, warningCount, infoCount };
206
+ }
207
+ /**
208
+ * Build a complete `GdhDiagnosticsSnapshot` from a health result and file list.
209
+ */
210
+ export function buildDiagnosticsSnapshot(health, files, options = {}) {
211
+ const { requestedUris, nowMs = Date.now(), staleAfterMs } = options;
212
+ const freshness = classifySnapshotFreshness({
213
+ files,
214
+ ...(requestedUris !== undefined && { requestedUris }),
215
+ nowMs,
216
+ ...(staleAfterMs !== undefined && { staleAfterMs }),
217
+ });
218
+ const scope = health.metadata?.snapshotScope ?? "unknown";
219
+ const { errorCount, warningCount, infoCount } = countDiagnosticsInSnapshot(files);
220
+ return {
221
+ health,
222
+ scope,
223
+ freshness,
224
+ files,
225
+ observedAt: new Date(nowMs).toISOString(),
226
+ errorCount,
227
+ warningCount,
228
+ infoCount,
229
+ };
230
+ }
231
+ // ─── Metadata Path Helpers ────────────────────────────────────────────────────
232
+ /**
233
+ * Resolve the standard file paths used by the diagnostics broker under
234
+ * `.gdh-state/authoring/diagnostics-broker/`.
235
+ */
236
+ export function resolveDiagnosticsBrokerPaths(stateRootPath) {
237
+ const brokerDir = path.join(stateRootPath, GDH_DIAGNOSTICS_BROKER_STATE_RELATIVE_PATH);
238
+ return {
239
+ brokerDir,
240
+ metadataPath: path.join(brokerDir, "metadata.json"),
241
+ tokenFilePath: path.join(brokerDir, "token"),
242
+ heartbeatPath: path.join(brokerDir, "heartbeat"),
243
+ snapshotPath: path.join(brokerDir, "snapshot.json"),
244
+ };
245
+ }
246
+ // ─── Internal Path Normalization ──────────────────────────────────────────────
247
+ function normalizeBrokerPath(value, pathStyle) {
248
+ const pathModule = pathStyle === "win32" ? path.win32 : path.posix;
249
+ const resolved = pathModule.resolve(value);
250
+ const normalized = pathModule.normalize(resolved);
251
+ const withoutTrailingSeparator = stripTrailingSeparators(normalized, pathModule.parse(normalized).root, pathStyle);
252
+ return pathStyle === "win32"
253
+ ? withoutTrailingSeparator.replaceAll("/", "\\").toLowerCase()
254
+ : withoutTrailingSeparator;
255
+ }
256
+ function stripTrailingSeparators(value, root, pathStyle) {
257
+ let next = value;
258
+ const separators = pathStyle === "win32" ? ["\\", "/"] : ["/"];
259
+ while (next.length > root.length && separators.some((sep) => next.endsWith(sep))) {
260
+ next = next.slice(0, -1);
261
+ }
262
+ return next;
263
+ }
264
+ //# sourceMappingURL=diagnostics-broker-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics-broker-contract.js","sourceRoot":"","sources":["../src/diagnostics-broker-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAW7B,OAAO,EACL,uDAAuD,EACvD,oCAAoC,EACpC,uCAAuC,EACvC,0CAA0C,GAC3C,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,uDAAuD,EACvD,oCAAoC,EACpC,uCAAuC,EACvC,0CAA0C,GAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,mDAAmD,GAAG,MAAM,CAAC;AAa1E;;;;;;GAMG;AACH,MAAM,UAAU,wCAAwC,CACtD,KAAoD;IAEpD,MAAM,SAAS,GACb,KAAK,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAExE,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACtF,MAAM,8BAA8B,GAAG,mBAAmB,CACxD,KAAK,CAAC,oBAAoB,EAC1B,SAAS,CACV,CAAC;IACF,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAEpF,OAAO;QACL,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,wBAAwB;QACxB,8BAA8B;QAC9B,uBAAuB;QACvB,SAAS;QACT,WAAW,EAAE;YACX,UAAU,wBAAwB,EAAE;YACpC,SAAS,8BAA8B,EAAE;YACzC,SAAS,uBAAuB,EAAE;YAClC,SAAS,SAAS,EAAE;SACrB,CAAC,IAAI,CAAC,GAAG,CAAC;KACZ,CAAC;AACJ,CAAC;AAcD;;;;;;;GAOG;AACH,MAAM,UAAU,kCAAkC,CAChD,KAA8C;IAE9C,MAAM,OAAO,GAAiC,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEhC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;YACL,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,CAAC,yBAAyB,CAAC;YACpC,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,eAAe,KAAK,uCAAuC,EAAE,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC9C,CAAC;IACD,IACE,QAAQ,CAAC,cAAc,CAAC,wBAAwB;QAChD,KAAK,CAAC,gBAAgB,CAAC,wBAAwB,EAC/C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACzC,CAAC;IACD,IACE,QAAQ,CAAC,cAAc,CAAC,8BAA8B;QACtD,KAAK,CAAC,gBAAgB,CAAC,8BAA8B,EACrD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAChD,CAAC;IACD,IACE,QAAQ,CAAC,cAAc,CAAC,uBAAuB;QAC/C,KAAK,CAAC,gBAAgB,CAAC,uBAAuB,EAC9C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,oCAAoC,EAAE,CAAC;QAC3D,oEAAoE;QACpE,2DAA2D;QAC3D,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,MAAM,qBAAqB,GACzB,KAAK,CAAC,qBAAqB,IAAI,uDAAuD,CAAC;IACzF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,GAAG,WAAW,GAAG,qBAAqB,EAAE,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,SAAS,GAAG,kCAAkC,CAAC,OAAO,CAAC,CAAC;IAE9D,OAAO;QACL,SAAS;QACT,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO;QAC1D,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC,CACzC,OAA8C;IAE9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAEzC,IACE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACjB;QACE,0BAA0B;QAC1B,6BAA6B;QAC7B,wBAAwB;QACxB,+BAA+B;QAC/B,4BAA4B;KAC7B,CAAC,QAAQ,CAAC,CAAC,CAAC,CACd,EACD,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IACE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACjB,CAAC,sBAAsB,EAAE,wBAAwB,EAAE,0BAA0B,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC3F,EACD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAUD;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,KAAwC;IAExC,MAAM,EAAE,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,GAAG,mDAAmD,EAAE,GAC5G,KAAK,CAAC;IAER,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,GAAG,SAAS,GAAG,YAAY,EAAE,CAAC;QACpE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAWD;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAqC;IAErC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAE5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD,iEAAiE;IACjE,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,IAAI,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;YAC1C,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,4BAA4B,CAAC;QAC3B,YAAY,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;QACrC,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;KACpD,CAAC,CACH,CAAC;IAEF,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC;QAAE,OAAO,aAAa,CAAC;IACxE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/D,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,iFAAiF;AAEjF;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAA4C;IAKrF,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO;gBAAE,UAAU,EAAE,CAAC;iBACvC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,YAAY,EAAE,CAAC;;gBAChD,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAkC,EAClC,KAA4C,EAC5C,UAII,EAAE;IAEN,MAAM,EAAE,aAAa,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEpE,MAAM,SAAS,GAAG,yBAAyB,CAAC;QAC1C,KAAK;QACL,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,CAAC;QACrD,KAAK;QACL,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;KACpD,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,SAAS,CAAC;IAC1D,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAElF,OAAO;QACL,MAAM;QACN,KAAK;QACL,SAAS;QACT,KAAK;QACL,UAAU,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;QACzC,UAAU;QACV,YAAY;QACZ,SAAS;KACV,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,aAAqB;IAOjE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,0CAA0C,CAAC,CAAC;IACvF,OAAO;QACL,SAAS;QACT,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;QACnD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5C,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;QAChD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,SAAS,mBAAmB,CAAC,KAAa,EAAE,SAAwC;IAClF,MAAM,UAAU,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACnE,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,wBAAwB,GAAG,uBAAuB,CACtD,UAAU,EACV,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EACjC,SAAS,CACV,CAAC;IACF,OAAO,SAAS,KAAK,OAAO;QAC1B,CAAC,CAAC,wBAAwB,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE;QAC9D,CAAC,CAAC,wBAAwB,CAAC;AAC/B,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAa,EACb,IAAY,EACZ,SAAwC;IAExC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,MAAM,UAAU,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACjF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Authoring Diagnostics Broker Service
3
+ *
4
+ * Provides broker status, current snapshot, refresh, doctor, and prune operations
5
+ * for the persistent diagnostics broker.
6
+ *
7
+ * The broker reuses the existing managed Godot LSP lifecycle. It does NOT launch
8
+ * a second Godot editor process. State is stored under:
9
+ * `.gdh-state/authoring/diagnostics-broker/snapshot.json`
10
+ *
11
+ * This file implements the service layer on top of:
12
+ * - packages/authoring/src/diagnostics-broker-contract.ts (pure functions/types)
13
+ * - packages/authoring/src/lsp.ts (managed LSP lifecycle)
14
+ * - packages/authoring/src/lsp-client.ts (TCP LSP client with diagnostics store)
15
+ *
16
+ * ADR: docs/adrs/0003-lsp-based-authoring-validation.md (Persistent Diagnostics Broker Addendum)
17
+ */
18
+ import type { GdhAuthoringStatusResult, GdhDiagnosticsSnapshot, GdhManagedLspStatusResult, GdhProjectConfig } from "@gdh/core";
19
+ export interface GetAuthoringDiagnosticsStatusInput {
20
+ readonly targetPath: string;
21
+ readonly status: GdhAuthoringStatusResult;
22
+ readonly projectConfig: GdhProjectConfig | null;
23
+ }
24
+ export interface GetCurrentAuthoringDiagnosticsInput {
25
+ readonly targetPath: string;
26
+ readonly status: GdhAuthoringStatusResult;
27
+ readonly projectConfig: GdhProjectConfig | null;
28
+ readonly requestedUris?: readonly string[];
29
+ readonly staleAfterMs?: number;
30
+ }
31
+ export interface RefreshAuthoringDiagnosticsInput {
32
+ readonly targetPath: string;
33
+ readonly status: GdhAuthoringStatusResult;
34
+ readonly projectConfig: GdhProjectConfig | null;
35
+ readonly changedFiles?: readonly string[];
36
+ }
37
+ export interface RefreshAuthoringDiagnosticsResult {
38
+ readonly snapshot: GdhDiagnosticsSnapshot;
39
+ readonly filesRefreshed: number;
40
+ readonly lspInstanceId: string | null;
41
+ readonly summary: string;
42
+ }
43
+ export interface DoctorAuthoringDiagnosticsInput {
44
+ readonly targetPath: string;
45
+ readonly status: GdhAuthoringStatusResult;
46
+ readonly projectConfig: GdhProjectConfig | null;
47
+ }
48
+ export interface DoctorAuthoringDiagnosticsResult {
49
+ readonly snapshot: GdhDiagnosticsSnapshot | null;
50
+ readonly lspStatus: GdhManagedLspStatusResult;
51
+ readonly recommendations: readonly string[];
52
+ readonly summary: string;
53
+ }
54
+ export interface PruneAuthoringDiagnosticsInput {
55
+ readonly targetPath: string;
56
+ readonly status: GdhAuthoringStatusResult;
57
+ readonly projectConfig: GdhProjectConfig | null;
58
+ }
59
+ export interface PruneAuthoringDiagnosticsResult {
60
+ readonly pruned: boolean;
61
+ readonly summary: string;
62
+ }
63
+ /**
64
+ * Return a lightweight status summary for the broker: whether a snapshot exists,
65
+ * how many files are tracked, and the snapshot's freshness.
66
+ */
67
+ export declare function getAuthoringDiagnosticsStatus(input: GetAuthoringDiagnosticsStatusInput): Promise<GdhDiagnosticsSnapshot>;
68
+ /**
69
+ * Return the latest stored diagnostics snapshot for this target/worktree.
70
+ * Classifies freshness relative to the staleness threshold.
71
+ * Does not trigger a new LSP refresh.
72
+ */
73
+ export declare function getCurrentAuthoringDiagnostics(input: GetCurrentAuthoringDiagnosticsInput): Promise<GdhDiagnosticsSnapshot>;
74
+ /**
75
+ * Open/refresh the specified (or all project) GDScript files through the managed
76
+ * LSP instance, collect the published diagnostics, and persist the snapshot.
77
+ *
78
+ * The broker does NOT launch a second Godot editor — it reuses the existing
79
+ * managed LSP lifecycle.
80
+ */
81
+ export declare function refreshAuthoringDiagnostics(input: RefreshAuthoringDiagnosticsInput): Promise<RefreshAuthoringDiagnosticsResult>;
82
+ /**
83
+ * Explain the broker's current state without mutating anything.
84
+ * Surfaces recommendations for missing, stale, or unavailable broker states.
85
+ */
86
+ export declare function doctorAuthoringDiagnostics(input: DoctorAuthoringDiagnosticsInput): Promise<DoctorAuthoringDiagnosticsResult>;
87
+ /**
88
+ * Remove the broker snapshot file. Does not affect the managed LSP lifecycle.
89
+ * Bounded to GDH-owned metadata only.
90
+ */
91
+ export declare function pruneAuthoringDiagnostics(input: PruneAuthoringDiagnosticsInput): Promise<PruneAuthoringDiagnosticsResult>;
92
+ //# sourceMappingURL=diagnostics-broker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics-broker.d.ts","sourceRoot":"","sources":["../src/diagnostics-broker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,KAAK,EAEV,wBAAwB,EAGxB,sBAAsB,EAEtB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AAuCnB,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAID;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,sBAAsB,CAAC,CAoBjC;AAID;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,mCAAmC,GACzC,OAAO,CAAC,sBAAsB,CAAC,CAuBjC;AAID;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,iCAAiC,CAAC,CAkH5C;AAID;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,gCAAgC,CAAC,CA2E3C;AAID;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,+BAA+B,CAAC,CA0B1C"}