opalserve 2.0.0 → 3.0.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 (118) hide show
  1. package/README.md +74 -77
  2. package/assets/logo.svg +36 -39
  3. package/dist/auth/api-keys.d.ts +7 -0
  4. package/dist/auth/api-keys.d.ts.map +1 -0
  5. package/dist/auth/api-keys.js +12 -0
  6. package/dist/auth/api-keys.js.map +1 -0
  7. package/dist/auth/index.d.ts +4 -0
  8. package/dist/auth/index.d.ts.map +1 -0
  9. package/dist/auth/index.js +4 -0
  10. package/dist/auth/index.js.map +1 -0
  11. package/dist/auth/middleware.d.ts +11 -0
  12. package/dist/auth/middleware.d.ts.map +1 -0
  13. package/dist/auth/middleware.js +46 -0
  14. package/dist/auth/middleware.js.map +1 -0
  15. package/dist/auth/passwords.d.ts +3 -0
  16. package/dist/auth/passwords.d.ts.map +1 -0
  17. package/dist/auth/passwords.js +33 -0
  18. package/dist/auth/passwords.js.map +1 -0
  19. package/dist/cli/commands/admin.d.ts +13 -0
  20. package/dist/cli/commands/admin.d.ts.map +1 -0
  21. package/dist/cli/commands/admin.js +261 -0
  22. package/dist/cli/commands/admin.js.map +1 -0
  23. package/dist/cli/commands/auth.d.ts +4 -0
  24. package/dist/cli/commands/auth.d.ts.map +1 -0
  25. package/dist/cli/commands/auth.js +77 -0
  26. package/dist/cli/commands/auth.js.map +1 -0
  27. package/dist/cli/commands/context.d.ts +5 -0
  28. package/dist/cli/commands/context.d.ts.map +1 -0
  29. package/dist/cli/commands/context.js +190 -0
  30. package/dist/cli/commands/context.js.map +1 -0
  31. package/dist/cli/commands/sync.d.ts +2 -0
  32. package/dist/cli/commands/sync.d.ts.map +1 -0
  33. package/dist/cli/commands/sync.js +58 -0
  34. package/dist/cli/commands/sync.js.map +1 -0
  35. package/dist/cli/index.js +75 -1
  36. package/dist/cli/index.js.map +1 -1
  37. package/dist/cli/ui/banner.js +2 -2
  38. package/dist/config/credentials.d.ts +10 -0
  39. package/dist/config/credentials.d.ts.map +1 -0
  40. package/dist/config/credentials.js +33 -0
  41. package/dist/config/credentials.js.map +1 -0
  42. package/dist/config/defaults.d.ts.map +1 -1
  43. package/dist/config/defaults.js +2 -0
  44. package/dist/config/defaults.js.map +1 -1
  45. package/dist/constants.d.ts +5 -0
  46. package/dist/constants.d.ts.map +1 -0
  47. package/dist/constants.js +5 -0
  48. package/dist/constants.js.map +1 -0
  49. package/dist/context/chunker.d.ts +2 -0
  50. package/dist/context/chunker.d.ts.map +1 -0
  51. package/dist/context/chunker.js +81 -0
  52. package/dist/context/chunker.js.map +1 -0
  53. package/dist/context/index.d.ts +26 -0
  54. package/dist/context/index.d.ts.map +1 -0
  55. package/dist/context/index.js +97 -0
  56. package/dist/context/index.js.map +1 -0
  57. package/dist/core/registry.d.ts +3 -1
  58. package/dist/core/registry.d.ts.map +1 -1
  59. package/dist/core/registry.js +8 -6
  60. package/dist/core/registry.js.map +1 -1
  61. package/dist/core/secrets.d.ts +4 -0
  62. package/dist/core/secrets.d.ts.map +1 -0
  63. package/dist/core/secrets.js +40 -0
  64. package/dist/core/secrets.js.map +1 -0
  65. package/dist/core/server-manager.js +1 -1
  66. package/dist/dashboard/assets/index-BNOtcUPs.js +257 -0
  67. package/dist/dashboard/assets/index-Duwp34GW.css +1 -0
  68. package/dist/dashboard/index.html +14 -0
  69. package/dist/index.d.ts +13 -2
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +18 -1
  72. package/dist/index.js.map +1 -1
  73. package/dist/integrations/github.d.ts +5 -0
  74. package/dist/integrations/github.d.ts.map +1 -0
  75. package/dist/integrations/github.js +63 -0
  76. package/dist/integrations/github.js.map +1 -0
  77. package/dist/integrations/slack.d.ts +21 -0
  78. package/dist/integrations/slack.d.ts.map +1 -0
  79. package/dist/integrations/slack.js +61 -0
  80. package/dist/integrations/slack.js.map +1 -0
  81. package/dist/monitoring/tracker.d.ts +31 -0
  82. package/dist/monitoring/tracker.d.ts.map +1 -0
  83. package/dist/monitoring/tracker.js +86 -0
  84. package/dist/monitoring/tracker.js.map +1 -0
  85. package/dist/server/app.d.ts.map +1 -1
  86. package/dist/server/app.js +46 -0
  87. package/dist/server/app.js.map +1 -1
  88. package/dist/server/mcp-gateway.js +1 -1
  89. package/dist/server/routes/auth.d.ts +4 -0
  90. package/dist/server/routes/auth.d.ts.map +1 -0
  91. package/dist/server/routes/auth.js +117 -0
  92. package/dist/server/routes/auth.js.map +1 -0
  93. package/dist/server/routes/context.d.ts +4 -0
  94. package/dist/server/routes/context.d.ts.map +1 -0
  95. package/dist/server/routes/context.js +107 -0
  96. package/dist/server/routes/context.js.map +1 -0
  97. package/dist/server/routes/health.js +1 -1
  98. package/dist/server/routes/stats.d.ts +4 -0
  99. package/dist/server/routes/stats.d.ts.map +1 -0
  100. package/dist/server/routes/stats.js +97 -0
  101. package/dist/server/routes/stats.js.map +1 -0
  102. package/dist/server/routes/team-servers.d.ts +4 -0
  103. package/dist/server/routes/team-servers.d.ts.map +1 -0
  104. package/dist/server/routes/team-servers.js +108 -0
  105. package/dist/server/routes/team-servers.js.map +1 -0
  106. package/dist/server/routes/webhooks.d.ts +4 -0
  107. package/dist/server/routes/webhooks.d.ts.map +1 -0
  108. package/dist/server/routes/webhooks.js +77 -0
  109. package/dist/server/routes/webhooks.js.map +1 -0
  110. package/dist/storage/database.d.ts +10 -3
  111. package/dist/storage/database.d.ts.map +1 -1
  112. package/dist/storage/database.js +258 -117
  113. package/dist/storage/database.js.map +1 -1
  114. package/dist/types/index.d.ts +102 -0
  115. package/dist/types/index.d.ts.map +1 -1
  116. package/dist/types/index.js +8 -0
  117. package/dist/types/index.js.map +1 -1
  118. package/package.json +5 -3
@@ -0,0 +1,4 @@
1
+ export declare function encrypt(plaintext: string, masterKey: string): string;
2
+ export declare function decrypt(encrypted: string, masterKey: string): string;
3
+ export declare function getMasterKey(): string;
4
+ //# sourceMappingURL=secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/core/secrets.ts"],"names":[],"mappings":"AAUA,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAapE;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAgBpE;AAED,wBAAgB,YAAY,IAAI,MAAM,CAMrC"}
@@ -0,0 +1,40 @@
1
+ import { createCipheriv, createDecipheriv, randomBytes, createHash } from 'node:crypto';
2
+ const ALGORITHM = 'aes-256-gcm';
3
+ const IV_LENGTH = 12;
4
+ const AUTH_TAG_LENGTH = 16;
5
+ function deriveKey(masterKey) {
6
+ return createHash('sha256').update(masterKey).digest();
7
+ }
8
+ export function encrypt(plaintext, masterKey) {
9
+ const key = deriveKey(masterKey);
10
+ const iv = randomBytes(IV_LENGTH);
11
+ const cipher = createCipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });
12
+ const encrypted = Buffer.concat([cipher.update(plaintext, 'utf-8'), cipher.final()]);
13
+ const authTag = cipher.getAuthTag();
14
+ const ivB64 = iv.toString('base64');
15
+ const authTagB64 = authTag.toString('base64');
16
+ const ciphertextB64 = encrypted.toString('base64');
17
+ return `${ivB64}:${authTagB64}:${ciphertextB64}`;
18
+ }
19
+ export function decrypt(encrypted, masterKey) {
20
+ const key = deriveKey(masterKey);
21
+ const parts = encrypted.split(':');
22
+ if (parts.length !== 3) {
23
+ throw new Error('Invalid encrypted format: expected iv:authTag:ciphertext');
24
+ }
25
+ const iv = Buffer.from(parts[0], 'base64');
26
+ const authTag = Buffer.from(parts[1], 'base64');
27
+ const ciphertext = Buffer.from(parts[2], 'base64');
28
+ const decipher = createDecipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });
29
+ decipher.setAuthTag(authTag);
30
+ const decrypted = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
31
+ return decrypted.toString('utf-8');
32
+ }
33
+ export function getMasterKey() {
34
+ const envKey = process.env.OPALSERVE_MASTER_KEY;
35
+ if (envKey)
36
+ return envKey;
37
+ // Generate a random key (caller should persist this if needed)
38
+ return randomBytes(32).toString('hex');
39
+ }
40
+ //# sourceMappingURL=secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/core/secrets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExF,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,SAAS,SAAS,CAAC,SAAiB;IAClC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,SAAiB,EAAE,SAAiB;IAC1D,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAElC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEpC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEnD,OAAO,GAAG,KAAK,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,SAAiB,EAAE,SAAiB;IAC1D,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC;IAC1F,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjF,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAChD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,+DAA+D;IAC/D,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC"}
@@ -21,7 +21,7 @@ export class ServerManager extends EventEmitter {
21
21
  this.emit('server:connecting', config.name);
22
22
  try {
23
23
  const transport = this.createTransport(config);
24
- const client = new Client({ name: 'opalserve', version: '2.0.0' }, { capabilities: {} });
24
+ const client = new Client({ name: 'opalserve', version: '3.0.0' }, { capabilities: {} });
25
25
  await client.connect(transport);
26
26
  // Discover tools
27
27
  const toolsResult = await client.listTools();