@true-and-useful/janee 0.11.3 → 0.13.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 (71) hide show
  1. package/README.md +2 -0
  2. package/dist/cli/commands/add.d.ts +1 -0
  3. package/dist/cli/commands/add.d.ts.map +1 -1
  4. package/dist/cli/commands/add.js +23 -5
  5. package/dist/cli/commands/add.js.map +1 -1
  6. package/dist/cli/commands/capability.d.ts +12 -10
  7. package/dist/cli/commands/capability.d.ts.map +1 -1
  8. package/dist/cli/commands/capability.js +77 -40
  9. package/dist/cli/commands/capability.js.map +1 -1
  10. package/dist/cli/commands/config.d.ts +7 -0
  11. package/dist/cli/commands/config.d.ts.map +1 -0
  12. package/dist/cli/commands/config.js +135 -0
  13. package/dist/cli/commands/config.js.map +1 -0
  14. package/dist/cli/commands/diagnose.d.ts +7 -0
  15. package/dist/cli/commands/diagnose.d.ts.map +1 -0
  16. package/dist/cli/commands/diagnose.js +133 -0
  17. package/dist/cli/commands/diagnose.js.map +1 -0
  18. package/dist/cli/commands/doctor-bundle.d.ts +6 -0
  19. package/dist/cli/commands/doctor-bundle.d.ts.map +1 -0
  20. package/dist/cli/commands/doctor-bundle.js +108 -0
  21. package/dist/cli/commands/doctor-bundle.js.map +1 -0
  22. package/dist/cli/commands/doctor.d.ts +6 -0
  23. package/dist/cli/commands/doctor.d.ts.map +1 -0
  24. package/dist/cli/commands/doctor.js +163 -0
  25. package/dist/cli/commands/doctor.js.map +1 -0
  26. package/dist/cli/commands/serve-mcp.d.ts.map +1 -1
  27. package/dist/cli/commands/serve-mcp.js +46 -97
  28. package/dist/cli/commands/serve-mcp.js.map +1 -1
  29. package/dist/cli/commands/service-edit.d.ts +16 -0
  30. package/dist/cli/commands/service-edit.d.ts.map +1 -0
  31. package/dist/cli/commands/service-edit.js +187 -0
  32. package/dist/cli/commands/service-edit.js.map +1 -0
  33. package/dist/cli/commands/test.d.ts +6 -0
  34. package/dist/cli/commands/test.d.ts.map +1 -0
  35. package/dist/cli/commands/test.js +101 -0
  36. package/dist/cli/commands/test.js.map +1 -0
  37. package/dist/cli/commands/whoami.d.ts +5 -0
  38. package/dist/cli/commands/whoami.d.ts.map +1 -0
  39. package/dist/cli/commands/whoami.js +91 -0
  40. package/dist/cli/commands/whoami.js.map +1 -0
  41. package/dist/cli/config-yaml.d.ts +15 -15
  42. package/dist/cli/config-yaml.d.ts.map +1 -1
  43. package/dist/cli/config-yaml.js +213 -90
  44. package/dist/cli/config-yaml.js.map +1 -1
  45. package/dist/cli/index.js +97 -8
  46. package/dist/cli/index.js.map +1 -1
  47. package/dist/core/auth.d.ts +25 -0
  48. package/dist/core/auth.d.ts.map +1 -0
  49. package/dist/core/auth.js +136 -0
  50. package/dist/core/auth.js.map +1 -0
  51. package/dist/core/authority.d.ts +5 -1
  52. package/dist/core/authority.d.ts.map +1 -1
  53. package/dist/core/authority.js +93 -38
  54. package/dist/core/authority.js.map +1 -1
  55. package/dist/core/directory.d.ts +2 -0
  56. package/dist/core/directory.d.ts.map +1 -1
  57. package/dist/core/directory.js +23 -0
  58. package/dist/core/directory.js.map +1 -1
  59. package/dist/core/health.d.ts +62 -1
  60. package/dist/core/health.d.ts.map +1 -1
  61. package/dist/core/health.js +242 -8
  62. package/dist/core/health.js.map +1 -1
  63. package/dist/core/mcp-server.d.ts +36 -12
  64. package/dist/core/mcp-server.d.ts.map +1 -1
  65. package/dist/core/mcp-server.js +635 -235
  66. package/dist/core/mcp-server.js.map +1 -1
  67. package/dist/index.d.ts +12 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +28 -0
  70. package/dist/index.js.map +1 -0
  71. package/package.json +8 -1
@@ -1 +1 @@
1
- {"version":3,"file":"authority.js","sourceRoot":"","sources":["../../src/core/authority.ts"],"names":[],"mappings":";;;;;AAoDA,gDAoDC;AAMD,kDAuFC;AAED,wDAqBC;AAED,sDAkBC;AAhPD,sDAA8B;AAC9B,mCAAqD;AACrD,uCAAiF;AACjF,mDAA6E;AAiD7E,SAAgB,kBAAkB,CAAC,MAAc,EAAE,KAAyB;IAC1E,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAE1C,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YAC9C,CAAC,IAAA,wBAAe,EAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAClC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAA4B,CAAC;YAC9C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;gBAC7D,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACnG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAA2B,CAAC;YAC7C,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YACD,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAChG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,MAAsO,EACtO,WAAqE;IAErE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuD,CAAC;IAElF,OAAO;QACL,aAAa,EAAE,KAAK,EAAE,GAAyB,EAAkC,EAAE;YACjF,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC;YACzE,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YACrE,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAExE,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjH,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,OAAO,kCAAkC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,QAAQ,GAAG,IAAA,yBAAe,EAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,0BAA0B,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAEnE,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,gBAA0F,CAAC;YAC/F,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YACtC,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC9H,MAAM,OAAO,GAAyB;oBACpC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;oBACzB,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU;oBACnC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc;iBAC5C,CAAC;gBACF,UAAU,GAAG,MAAM,IAAA,oCAAoB,EAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACvH,gBAAgB,GAAG;oBACjB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;oBAC3B,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS;oBACjC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU;iBACpC,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG,IAAA,sBAAY,EAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;YAChF,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,CAAC;iBAClH,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1C,MAAM,OAAO,GAAG,IAAA,mBAAU,GAAE,CAAC;YAC7B,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3E,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YAEjG,OAAO;gBACL,OAAO;gBACP,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE;gBAC3D,kBAAkB;gBAClB,aAAa;gBACb,WAAW;gBACX,WAAW,EAAE;oBACX,GAAG,EAAE,GAAG,CAAC,OAAO;oBAChB,UAAU,EAAE,IAAA,+BAAqB,EAAC,GAAG,CAAC;oBACtC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB;aACF,CAAC;QACJ,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1C,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/B,WAAW,CAAC,GAAG,CAAC;gBACd,OAAO,EAAE,KAAK,EAAE,YAAY,IAAI,SAAS;gBACzC,MAAM,EAAE,eAAe;gBACvB,IAAI,EAAE,GAAG,CAAC,OAAO;gBACjB,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,SAAS;aAChB,EAAE;gBACD,UAAU,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;gBAC1C,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;oBAC1C,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;iBAC3C,CAAC;aACH,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,YAAoB,EACpB,SAAiB,EACjB,OAA6B;IAE7B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,EAAE;QAC9E,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,oBAAoB,EAAE,SAAS;YAC/B,oBAAoB,EAAE,OAAO,CAAC,SAAS,IAAI,IAAA,mBAAU,GAAE;SACxD;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,EAAoC,CAAC;AACtD,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,YAAoB,EACpB,SAAiB,EACjB,OAA4B;IAE5B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,EAAE;QAC7E,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,oBAAoB,EAAE,SAAS;SAChC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"authority.js","sourceRoot":"","sources":["../../src/core/authority.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export interface ServiceTemplate {
11
11
  type: 'bearer' | 'basic' | 'hmac-mexc' | 'hmac-bybit' | 'hmac-okx' | 'headers' | 'service-account' | 'github-app';
12
12
  fields: string[];
13
13
  };
14
+ /** Lightweight GET path that requires auth — used by `janee test` to verify credentials */
15
+ testPath?: string;
14
16
  docs?: string;
15
17
  tags: string[];
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/core/directory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;QAClH,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAQD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAgO7C,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE,CAYhE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEpE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAY/D"}
1
+ {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/core/directory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;QAClH,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAQD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAuP7C,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE,CAYhE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEpE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAY/D"}
@@ -24,6 +24,7 @@ exports.serviceDirectory = [
24
24
  description: 'Payment processing platform',
25
25
  baseUrl: 'https://api.stripe.com',
26
26
  auth: { type: 'bearer', fields: ['key'] },
27
+ testPath: '/v1/balance',
27
28
  docs: 'https://stripe.com/docs/api',
28
29
  tags: ['payment', 'finance']
29
30
  },
@@ -33,6 +34,7 @@ exports.serviceDirectory = [
33
34
  description: 'Code hosting and collaboration',
34
35
  baseUrl: 'https://api.github.com',
35
36
  auth: { type: 'bearer', fields: ['key'] },
37
+ testPath: '/user',
36
38
  docs: 'https://docs.github.com/en/rest',
37
39
  tags: ['developer', 'git', 'code']
38
40
  },
@@ -41,6 +43,7 @@ exports.serviceDirectory = [
41
43
  description: 'GitHub App with installation tokens (for autonomous agents)',
42
44
  baseUrl: 'https://api.github.com',
43
45
  auth: { type: 'github-app', fields: ['appId', 'pemFile', 'installationId'] },
46
+ testPath: '/app',
44
47
  docs: 'https://docs.github.com/en/apps',
45
48
  tags: ['developer', 'git', 'code']
46
49
  },
@@ -49,6 +52,7 @@ exports.serviceDirectory = [
49
52
  description: 'Issue tracking for software teams',
50
53
  baseUrl: 'https://api.linear.app',
51
54
  auth: { type: 'bearer', fields: ['key'] },
55
+ testPath: '/graphql',
52
56
  docs: 'https://developers.linear.app/docs',
53
57
  tags: ['developer', 'project-management', 'issues']
54
58
  },
@@ -57,6 +61,7 @@ exports.serviceDirectory = [
57
61
  description: 'Frontend deployment platform',
58
62
  baseUrl: 'https://api.vercel.com',
59
63
  auth: { type: 'bearer', fields: ['key'] },
64
+ testPath: '/v9/projects',
60
65
  docs: 'https://vercel.com/docs/rest-api',
61
66
  tags: ['developer', 'deployment', 'hosting']
62
67
  },
@@ -65,6 +70,7 @@ exports.serviceDirectory = [
65
70
  description: 'CDN and edge computing platform',
66
71
  baseUrl: 'https://api.cloudflare.com/client/v4',
67
72
  auth: { type: 'bearer', fields: ['key'] },
73
+ testPath: '/zones',
68
74
  docs: 'https://developers.cloudflare.com/api',
69
75
  tags: ['developer', 'cdn', 'dns']
70
76
  },
@@ -74,6 +80,7 @@ exports.serviceDirectory = [
74
80
  description: 'OpenAI API for GPT and DALL-E',
75
81
  baseUrl: 'https://api.openai.com/v1',
76
82
  auth: { type: 'bearer', fields: ['key'] },
83
+ testPath: '/models',
77
84
  docs: 'https://platform.openai.com/docs/api-reference',
78
85
  tags: ['ai', 'llm', 'ml']
79
86
  },
@@ -82,6 +89,7 @@ exports.serviceDirectory = [
82
89
  description: 'Anthropic Claude API',
83
90
  baseUrl: 'https://api.anthropic.com',
84
91
  auth: { type: 'headers', fields: ['x-api-key'] },
92
+ testPath: '/v1/models',
85
93
  docs: 'https://docs.anthropic.com/en/api',
86
94
  tags: ['ai', 'llm', 'ml']
87
95
  },
@@ -90,6 +98,7 @@ exports.serviceDirectory = [
90
98
  description: 'Run ML models in the cloud',
91
99
  baseUrl: 'https://api.replicate.com/v1',
92
100
  auth: { type: 'bearer', fields: ['key'] },
101
+ testPath: '/models',
93
102
  docs: 'https://replicate.com/docs/reference/http',
94
103
  tags: ['ai', 'ml', 'models']
95
104
  },
@@ -99,6 +108,7 @@ exports.serviceDirectory = [
99
108
  description: 'Cryptocurrency derivatives exchange',
100
109
  baseUrl: 'https://api.bybit.com',
101
110
  auth: { type: 'hmac-bybit', fields: ['apiKey', 'apiSecret'] },
111
+ testPath: '/v5/account/wallet-balance?accountType=UNIFIED',
102
112
  docs: 'https://bybit-exchange.github.io/docs',
103
113
  tags: ['crypto', 'exchange', 'trading']
104
114
  },
@@ -107,6 +117,7 @@ exports.serviceDirectory = [
107
117
  description: 'Cryptocurrency exchange',
108
118
  baseUrl: 'https://www.okx.com',
109
119
  auth: { type: 'hmac-okx', fields: ['apiKey', 'apiSecret', 'passphrase'] },
120
+ testPath: '/api/v5/account/balance',
110
121
  docs: 'https://www.okx.com/docs-v5',
111
122
  tags: ['crypto', 'exchange', 'trading']
112
123
  },
@@ -115,6 +126,7 @@ exports.serviceDirectory = [
115
126
  description: 'Cryptocurrency exchange',
116
127
  baseUrl: 'https://api.mexc.com',
117
128
  auth: { type: 'hmac-mexc', fields: ['apiKey', 'apiSecret'] },
129
+ testPath: '/api/v3/account',
118
130
  docs: 'https://mexcdevelop.github.io/apidocs',
119
131
  tags: ['crypto', 'exchange', 'trading']
120
132
  },
@@ -123,6 +135,7 @@ exports.serviceDirectory = [
123
135
  description: 'Cryptocurrency exchange (Advanced Trade API)',
124
136
  baseUrl: 'https://api.coinbase.com',
125
137
  auth: { type: 'bearer', fields: ['key'] },
138
+ testPath: '/api/v3/brokerage/accounts',
126
139
  docs: 'https://docs.cloud.coinbase.com/advanced-trade-api',
127
140
  tags: ['crypto', 'exchange', 'trading']
128
141
  },
@@ -132,6 +145,7 @@ exports.serviceDirectory = [
132
145
  description: 'Team communication platform',
133
146
  baseUrl: 'https://slack.com/api',
134
147
  auth: { type: 'bearer', fields: ['key'] },
148
+ testPath: '/auth.test',
135
149
  docs: 'https://api.slack.com/methods',
136
150
  tags: ['communication', 'messaging', 'team']
137
151
  },
@@ -140,6 +154,7 @@ exports.serviceDirectory = [
140
154
  description: 'Chat platform for communities',
141
155
  baseUrl: 'https://discord.com/api/v10',
142
156
  auth: { type: 'bearer', fields: ['key'] },
157
+ testPath: '/users/@me',
143
158
  docs: 'https://discord.com/developers/docs',
144
159
  tags: ['communication', 'messaging', 'community']
145
160
  },
@@ -148,6 +163,7 @@ exports.serviceDirectory = [
148
163
  description: 'Email delivery service',
149
164
  baseUrl: 'https://api.sendgrid.com/v3',
150
165
  auth: { type: 'bearer', fields: ['key'] },
166
+ testPath: '/scopes',
151
167
  docs: 'https://docs.sendgrid.com/api-reference',
152
168
  tags: ['email', 'communication']
153
169
  },
@@ -156,6 +172,7 @@ exports.serviceDirectory = [
156
172
  description: 'Communication APIs (SMS, Voice)',
157
173
  baseUrl: 'https://api.twilio.com/2010-04-01',
158
174
  auth: { type: 'basic', fields: ['accountSid', 'authToken'] },
175
+ testPath: '/Accounts.json',
159
176
  docs: 'https://www.twilio.com/docs/usage/api',
160
177
  tags: ['sms', 'voice', 'communication']
161
178
  },
@@ -164,6 +181,7 @@ exports.serviceDirectory = [
164
181
  description: 'Modern email API',
165
182
  baseUrl: 'https://api.resend.com',
166
183
  auth: { type: 'bearer', fields: ['key'] },
184
+ testPath: '/domains',
167
185
  docs: 'https://resend.com/docs/api-reference',
168
186
  tags: ['email', 'communication']
169
187
  },
@@ -181,6 +199,7 @@ exports.serviceDirectory = [
181
199
  description: 'Product analytics platform',
182
200
  baseUrl: 'https://app.posthog.com/api',
183
201
  auth: { type: 'bearer', fields: ['key'] },
202
+ testPath: '/projects/',
184
203
  docs: 'https://posthog.com/docs/api',
185
204
  tags: ['analytics', 'data']
186
205
  },
@@ -206,6 +225,7 @@ exports.serviceDirectory = [
206
225
  description: 'Serverless MySQL platform',
207
226
  baseUrl: 'https://api.planetscale.com/v1',
208
227
  auth: { type: 'bearer', fields: ['key'] },
228
+ testPath: '/organizations',
209
229
  docs: 'https://api-docs.planetscale.com',
210
230
  tags: ['database', 'mysql']
211
231
  },
@@ -215,6 +235,7 @@ exports.serviceDirectory = [
215
235
  description: 'All-in-one workspace',
216
236
  baseUrl: 'https://api.notion.com/v1',
217
237
  auth: { type: 'bearer', fields: ['key'] },
238
+ testPath: '/users/me',
218
239
  docs: 'https://developers.notion.com/reference',
219
240
  tags: ['productivity', 'notes', 'wiki']
220
241
  },
@@ -223,6 +244,7 @@ exports.serviceDirectory = [
223
244
  description: 'Spreadsheet-database hybrid',
224
245
  baseUrl: 'https://api.airtable.com/v0',
225
246
  auth: { type: 'bearer', fields: ['key'] },
247
+ testPath: '/meta/bases',
226
248
  docs: 'https://airtable.com/developers/web/api',
227
249
  tags: ['database', 'spreadsheet', 'productivity']
228
250
  },
@@ -231,6 +253,7 @@ exports.serviceDirectory = [
231
253
  description: 'Cal.com scheduling API',
232
254
  baseUrl: 'https://api.cal.com/v1',
233
255
  auth: { type: 'bearer', fields: ['key'] },
256
+ testPath: '/event-types',
234
257
  docs: 'https://cal.com/docs/enterprise-features/api',
235
258
  tags: ['calendar', 'scheduling']
236
259
  }
@@ -1 +1 @@
1
- {"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/core/directory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/core/directory.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Health check module for Janee services
3
3
  * Provides connectivity and latency checks for configured API backends
4
4
  */
5
+ import { ServiceConfig } from "./mcp-server.js";
5
6
  export interface HealthCheckResult {
6
7
  service: string;
7
8
  healthy: boolean;
@@ -15,7 +16,11 @@ export interface HealthCheckOptions {
15
16
  fetchFn?: typeof fetch;
16
17
  }
17
18
  /**
18
- * Check if a service endpoint is reachable and responding
19
+ * Quick reachability check unauthenticated HEAD against the base URL.
20
+ * Use for uptime monitoring where you just care "is the endpoint up?"
21
+ * Considers 401/403 as reachable (the server answered, auth is just expected).
22
+ *
23
+ * For verifying credentials actually work, use testServiceConnection() instead.
19
24
  */
20
25
  export declare function checkServiceHealth(serviceName: string, baseUrl: string, options?: HealthCheckOptions): Promise<HealthCheckResult>;
21
26
  /**
@@ -24,4 +29,60 @@ export declare function checkServiceHealth(serviceName: string, baseUrl: string,
24
29
  export declare function checkAllServicesHealth(services: Map<string, {
25
30
  baseUrl: string;
26
31
  }>, options?: HealthCheckOptions): Promise<HealthCheckResult[]>;
32
+ export interface ServiceTestResult {
33
+ service: string;
34
+ baseUrl: string;
35
+ testUrl: string;
36
+ reachable: boolean;
37
+ authOk: boolean;
38
+ statusCode?: number;
39
+ latencyMs: number;
40
+ authType: string;
41
+ error?: string;
42
+ /** Truncated upstream response body on failure — helps agents diagnose issues */
43
+ responseBody?: string;
44
+ checkedAt: string;
45
+ }
46
+ export interface ServiceTestOptions {
47
+ /** Auth-required endpoint path to test (e.g. "/v1/balance" for Stripe). Falls back to "/" */
48
+ testPath?: string;
49
+ timeout?: number;
50
+ fetchFn?: typeof fetch;
51
+ }
52
+ /**
53
+ * Resolve the best testPath for a service by matching against the template directory.
54
+ * Returns undefined if no template match is found.
55
+ */
56
+ export declare function resolveTestPath(serviceName: string, baseUrl: string): string | undefined;
57
+ /**
58
+ * Full credential test — authenticated GET against an auth-required endpoint.
59
+ * Use when you need to verify that stored credentials are actually valid.
60
+ * Injects auth headers via buildAuthHeaders() (same path as the proxy).
61
+ *
62
+ * For simple reachability without auth, use checkServiceHealth() instead.
63
+ */
64
+ export declare function testServiceConnection(serviceName: string, serviceConfig: ServiceConfig, options?: ServiceTestOptions): Promise<ServiceTestResult>;
65
+ export interface ExecHealthCheckResult {
66
+ service: string;
67
+ capability: string;
68
+ healthy: boolean;
69
+ checks: {
70
+ binaryExists: boolean;
71
+ binaryPath?: string;
72
+ envResolvable: boolean;
73
+ unresolvedVars?: string[];
74
+ };
75
+ latencyMs: number;
76
+ error?: string;
77
+ checkedAt: string;
78
+ }
79
+ /**
80
+ * Check if an exec-mode capability is functional:
81
+ * - Binary specified in allowCommands exists and is executable
82
+ * - Credential env vars can be resolved (without leaking values)
83
+ */
84
+ export declare function checkExecHealth(serviceName: string, capabilityName: string, capability: {
85
+ allowCommands?: string[];
86
+ env?: Record<string, string>;
87
+ }, credentialAvailable: boolean): Promise<ExecHealthCheckResult>;
27
88
  //# sourceMappingURL=health.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/core/health.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CA6D5B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EAC1C,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAK9B"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/core/health.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CA8D5B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EAC1C,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAK9B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,SAAS,CASpB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CA4G5B;AAID,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QACN,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,OAAO,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE;IACV,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B,EACD,mBAAmB,EAAE,OAAO,GAC3B,OAAO,CAAC,qBAAqB,CAAC,CA2EhC"}
@@ -3,11 +3,54 @@
3
3
  * Health check module for Janee services
4
4
  * Provides connectivity and latency checks for configured API backends
5
5
  */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
6
39
  Object.defineProperty(exports, "__esModule", { value: true });
7
40
  exports.checkServiceHealth = checkServiceHealth;
8
41
  exports.checkAllServicesHealth = checkAllServicesHealth;
42
+ exports.resolveTestPath = resolveTestPath;
43
+ exports.testServiceConnection = testServiceConnection;
44
+ exports.checkExecHealth = checkExecHealth;
45
+ const url_1 = require("url");
46
+ const auth_js_1 = require("./auth.js");
47
+ const directory_js_1 = require("./directory.js");
9
48
  /**
10
- * Check if a service endpoint is reachable and responding
49
+ * Quick reachability check unauthenticated HEAD against the base URL.
50
+ * Use for uptime monitoring where you just care "is the endpoint up?"
51
+ * Considers 401/403 as reachable (the server answered, auth is just expected).
52
+ *
53
+ * For verifying credentials actually work, use testServiceConnection() instead.
11
54
  */
12
55
  async function checkServiceHealth(serviceName, baseUrl, options = {}) {
13
56
  const { timeout = 5000, fetchFn = fetch } = options;
@@ -17,8 +60,8 @@ async function checkServiceHealth(serviceName, baseUrl, options = {}) {
17
60
  service: serviceName,
18
61
  healthy: false,
19
62
  latencyMs: 0,
20
- error: 'No base URL configured',
21
- checkedAt
63
+ error: "No base URL configured",
64
+ checkedAt,
22
65
  };
23
66
  }
24
67
  const start = Date.now();
@@ -26,8 +69,8 @@ async function checkServiceHealth(serviceName, baseUrl, options = {}) {
26
69
  const controller = new AbortController();
27
70
  const timeoutId = setTimeout(() => controller.abort(), timeout);
28
71
  const response = await fetchFn(baseUrl, {
29
- method: 'HEAD',
30
- signal: controller.signal
72
+ method: "HEAD",
73
+ signal: controller.signal,
31
74
  });
32
75
  clearTimeout(timeoutId);
33
76
  const latencyMs = Date.now() - start;
@@ -39,7 +82,7 @@ async function checkServiceHealth(serviceName, baseUrl, options = {}) {
39
82
  healthy: true,
40
83
  statusCode: response.status,
41
84
  latencyMs,
42
- checkedAt
85
+ checkedAt,
43
86
  };
44
87
  }
45
88
  return {
@@ -48,7 +91,7 @@ async function checkServiceHealth(serviceName, baseUrl, options = {}) {
48
91
  statusCode: response.status,
49
92
  latencyMs,
50
93
  error: `HTTP ${response.status} ${response.statusText}`,
51
- checkedAt
94
+ checkedAt,
52
95
  };
53
96
  }
54
97
  catch (err) {
@@ -59,7 +102,7 @@ async function checkServiceHealth(serviceName, baseUrl, options = {}) {
59
102
  healthy: false,
60
103
  latencyMs,
61
104
  error: message,
62
- checkedAt
105
+ checkedAt,
63
106
  };
64
107
  }
65
108
  }
@@ -70,4 +113,195 @@ async function checkAllServicesHealth(services, options = {}) {
70
113
  const checks = Array.from(services.entries()).map(([name, config]) => checkServiceHealth(name, config.baseUrl, options));
71
114
  return Promise.all(checks);
72
115
  }
116
+ /**
117
+ * Resolve the best testPath for a service by matching against the template directory.
118
+ * Returns undefined if no template match is found.
119
+ */
120
+ function resolveTestPath(serviceName, baseUrl) {
121
+ const byName = (0, directory_js_1.getService)(serviceName);
122
+ if (byName?.testPath)
123
+ return byName.testPath;
124
+ // Fall back to matching by baseUrl
125
+ const byUrl = directory_js_1.serviceDirectory.find((t) => t.testPath && baseUrl.startsWith(t.baseUrl));
126
+ return byUrl?.testPath;
127
+ }
128
+ /**
129
+ * Full credential test — authenticated GET against an auth-required endpoint.
130
+ * Use when you need to verify that stored credentials are actually valid.
131
+ * Injects auth headers via buildAuthHeaders() (same path as the proxy).
132
+ *
133
+ * For simple reachability without auth, use checkServiceHealth() instead.
134
+ */
135
+ async function testServiceConnection(serviceName, serviceConfig, options = {}) {
136
+ const { timeout = 10000, fetchFn = fetch } = options;
137
+ const checkedAt = new Date().toISOString();
138
+ const authType = serviceConfig.auth.type;
139
+ if (!serviceConfig.baseUrl) {
140
+ return {
141
+ service: serviceName,
142
+ baseUrl: "",
143
+ testUrl: "",
144
+ reachable: false,
145
+ authOk: false,
146
+ latencyMs: 0,
147
+ authType,
148
+ error: "No base URL configured",
149
+ checkedAt,
150
+ };
151
+ }
152
+ const testPath = options.testPath ||
153
+ serviceConfig.testPath ||
154
+ resolveTestPath(serviceName, serviceConfig.baseUrl);
155
+ const start = Date.now();
156
+ try {
157
+ let baseUrl = serviceConfig.baseUrl;
158
+ if (!baseUrl.endsWith("/"))
159
+ baseUrl += "/";
160
+ let reqPath = testPath || "";
161
+ if (reqPath.startsWith("/"))
162
+ reqPath = reqPath.slice(1);
163
+ const targetUrl = new url_1.URL(reqPath, baseUrl);
164
+ const authResult = await (0, auth_js_1.buildAuthHeaders)(serviceName, serviceConfig, {
165
+ method: "GET",
166
+ targetUrl,
167
+ body: undefined,
168
+ });
169
+ if (authResult.urlParams) {
170
+ for (const [key, value] of Object.entries(authResult.urlParams)) {
171
+ targetUrl.searchParams.set(key, value);
172
+ }
173
+ }
174
+ const controller = new AbortController();
175
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
176
+ const response = await fetchFn(targetUrl.toString(), {
177
+ method: "GET",
178
+ headers: authResult.headers,
179
+ signal: controller.signal,
180
+ });
181
+ clearTimeout(timeoutId);
182
+ const latencyMs = Date.now() - start;
183
+ const reachable = true;
184
+ const authOk = response.ok;
185
+ // On failure, capture upstream response body so agents can diagnose
186
+ let responseBody;
187
+ if (!authOk) {
188
+ try {
189
+ const raw = await response.text();
190
+ responseBody = raw.length > 512 ? raw.slice(0, 512) + "…" : raw;
191
+ }
192
+ catch {
193
+ // best-effort
194
+ }
195
+ }
196
+ return {
197
+ service: serviceName,
198
+ baseUrl: serviceConfig.baseUrl,
199
+ testUrl: targetUrl.toString(),
200
+ reachable,
201
+ authOk,
202
+ statusCode: response.status,
203
+ latencyMs,
204
+ authType,
205
+ ...(response.status === 401 && { error: "Authentication failed (401)" }),
206
+ ...(response.status === 403 && {
207
+ error: "Forbidden (403) — credentials may lack required permissions",
208
+ }),
209
+ ...(!response.ok &&
210
+ response.status !== 401 &&
211
+ response.status !== 403 && {
212
+ error: `HTTP ${response.status} ${response.statusText}`,
213
+ }),
214
+ responseBody,
215
+ checkedAt,
216
+ };
217
+ }
218
+ catch (err) {
219
+ const latencyMs = Date.now() - start;
220
+ const message = err instanceof Error ? err.message : String(err);
221
+ const isTimeout = message.includes("abort");
222
+ return {
223
+ service: serviceName,
224
+ baseUrl: serviceConfig.baseUrl,
225
+ testUrl: serviceConfig.baseUrl + (testPath || ""),
226
+ reachable: false,
227
+ authOk: false,
228
+ latencyMs,
229
+ authType,
230
+ error: isTimeout ? `Timeout after ${timeout}ms` : message,
231
+ checkedAt,
232
+ };
233
+ }
234
+ }
235
+ /**
236
+ * Check if an exec-mode capability is functional:
237
+ * - Binary specified in allowCommands exists and is executable
238
+ * - Credential env vars can be resolved (without leaking values)
239
+ */
240
+ async function checkExecHealth(serviceName, capabilityName, capability, credentialAvailable) {
241
+ const checkedAt = new Date().toISOString();
242
+ const start = Date.now();
243
+ const checks = {
244
+ binaryExists: false,
245
+ binaryPath: undefined,
246
+ envResolvable: false,
247
+ unresolvedVars: undefined,
248
+ };
249
+ // Check binary existence for first allowed command
250
+ if (capability.allowCommands && capability.allowCommands.length > 0) {
251
+ const binary = capability.allowCommands[0];
252
+ try {
253
+ const { execSync } = await Promise.resolve().then(() => __importStar(require("child_process")));
254
+ const whichResult = execSync(`command -v ${binary} 2>/dev/null`, {
255
+ encoding: "utf-8",
256
+ timeout: 5000,
257
+ }).trim();
258
+ checks.binaryExists = true;
259
+ checks.binaryPath = whichResult;
260
+ }
261
+ catch {
262
+ checks.binaryExists = false;
263
+ }
264
+ }
265
+ // Check env var template resolution
266
+ if (capability.env) {
267
+ const templateVars = Object.values(capability.env)
268
+ .flatMap((v) => [...v.matchAll(/\{\{(\w+)\}\}/g)])
269
+ .map((m) => m[1]);
270
+ const unresolved = [];
271
+ for (const varName of templateVars) {
272
+ if (varName === "credential" && !credentialAvailable) {
273
+ unresolved.push("credential");
274
+ }
275
+ if (["apiKey", "apiSecret", "passphrase"].includes(varName) &&
276
+ !credentialAvailable) {
277
+ unresolved.push(varName);
278
+ }
279
+ }
280
+ checks.envResolvable = unresolved.length === 0;
281
+ if (unresolved.length > 0)
282
+ checks.unresolvedVars = unresolved;
283
+ }
284
+ else {
285
+ checks.envResolvable = true;
286
+ }
287
+ const latencyMs = Date.now() - start;
288
+ const healthy = checks.binaryExists && checks.envResolvable;
289
+ const errors = [];
290
+ if (!checks.binaryExists) {
291
+ const binary = capability.allowCommands?.[0] || "unknown";
292
+ errors.push(`Binary '${binary}' not found in PATH`);
293
+ }
294
+ if (!checks.envResolvable && checks.unresolvedVars?.length) {
295
+ errors.push(`Unresolved template vars: ${checks.unresolvedVars.join(", ")}`);
296
+ }
297
+ return {
298
+ service: serviceName,
299
+ capability: capabilityName,
300
+ healthy,
301
+ checks,
302
+ latencyMs,
303
+ error: errors.length > 0 ? errors.join("; ") : undefined,
304
+ checkedAt,
305
+ };
306
+ }
73
307
  //# sourceMappingURL=health.js.map