git-doc-mcp 0.1.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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +543 -0
  3. package/dist/audit/index.d.ts +2 -0
  4. package/dist/audit/index.d.ts.map +1 -0
  5. package/dist/audit/index.js +2 -0
  6. package/dist/audit/index.js.map +1 -0
  7. package/dist/audit/logger.d.ts +81 -0
  8. package/dist/audit/logger.d.ts.map +1 -0
  9. package/dist/audit/logger.js +179 -0
  10. package/dist/audit/logger.js.map +1 -0
  11. package/dist/cli/commands/serve.d.ts +44 -0
  12. package/dist/cli/commands/serve.d.ts.map +1 -0
  13. package/dist/cli/commands/serve.js +360 -0
  14. package/dist/cli/commands/serve.js.map +1 -0
  15. package/dist/cli/index.d.ts +21 -0
  16. package/dist/cli/index.d.ts.map +1 -0
  17. package/dist/cli/index.js +71 -0
  18. package/dist/cli/index.js.map +1 -0
  19. package/dist/http/client.d.ts +39 -0
  20. package/dist/http/client.d.ts.map +1 -0
  21. package/dist/http/client.js +114 -0
  22. package/dist/http/client.js.map +1 -0
  23. package/dist/http/index.d.ts +7 -0
  24. package/dist/http/index.d.ts.map +1 -0
  25. package/dist/http/index.js +7 -0
  26. package/dist/http/index.js.map +1 -0
  27. package/dist/http/redirect-utils.d.ts +27 -0
  28. package/dist/http/redirect-utils.d.ts.map +1 -0
  29. package/dist/http/redirect-utils.js +73 -0
  30. package/dist/http/redirect-utils.js.map +1 -0
  31. package/dist/index.d.ts +36 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +44 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/manifest/index.d.ts +7 -0
  36. package/dist/manifest/index.d.ts.map +1 -0
  37. package/dist/manifest/index.js +7 -0
  38. package/dist/manifest/index.js.map +1 -0
  39. package/dist/manifest/loader.d.ts +55 -0
  40. package/dist/manifest/loader.d.ts.map +1 -0
  41. package/dist/manifest/loader.js +222 -0
  42. package/dist/manifest/loader.js.map +1 -0
  43. package/dist/manifest/schema.d.ts +909 -0
  44. package/dist/manifest/schema.d.ts.map +1 -0
  45. package/dist/manifest/schema.js +148 -0
  46. package/dist/manifest/schema.js.map +1 -0
  47. package/dist/rate-limit/index.d.ts +6 -0
  48. package/dist/rate-limit/index.d.ts.map +1 -0
  49. package/dist/rate-limit/index.js +6 -0
  50. package/dist/rate-limit/index.js.map +1 -0
  51. package/dist/rate-limit/limiter.d.ts +38 -0
  52. package/dist/rate-limit/limiter.d.ts.map +1 -0
  53. package/dist/rate-limit/limiter.js +55 -0
  54. package/dist/rate-limit/limiter.js.map +1 -0
  55. package/dist/sandbox/context.d.ts +69 -0
  56. package/dist/sandbox/context.d.ts.map +1 -0
  57. package/dist/sandbox/context.js +134 -0
  58. package/dist/sandbox/context.js.map +1 -0
  59. package/dist/sandbox/executor.d.ts +50 -0
  60. package/dist/sandbox/executor.d.ts.map +1 -0
  61. package/dist/sandbox/executor.js +259 -0
  62. package/dist/sandbox/executor.js.map +1 -0
  63. package/dist/sandbox/index.d.ts +8 -0
  64. package/dist/sandbox/index.d.ts.map +1 -0
  65. package/dist/sandbox/index.js +8 -0
  66. package/dist/sandbox/index.js.map +1 -0
  67. package/dist/sandbox/url-validator.d.ts +40 -0
  68. package/dist/sandbox/url-validator.d.ts.map +1 -0
  69. package/dist/sandbox/url-validator.js +178 -0
  70. package/dist/sandbox/url-validator.js.map +1 -0
  71. package/dist/secrets/index.d.ts +7 -0
  72. package/dist/secrets/index.d.ts.map +1 -0
  73. package/dist/secrets/index.js +7 -0
  74. package/dist/secrets/index.js.map +1 -0
  75. package/dist/secrets/manager.d.ts +55 -0
  76. package/dist/secrets/manager.d.ts.map +1 -0
  77. package/dist/secrets/manager.js +94 -0
  78. package/dist/secrets/manager.js.map +1 -0
  79. package/dist/secrets/patterns.d.ts +33 -0
  80. package/dist/secrets/patterns.d.ts.map +1 -0
  81. package/dist/secrets/patterns.js +71 -0
  82. package/dist/secrets/patterns.js.map +1 -0
  83. package/dist/server/index.d.ts +6 -0
  84. package/dist/server/index.d.ts.map +1 -0
  85. package/dist/server/index.js +6 -0
  86. package/dist/server/index.js.map +1 -0
  87. package/dist/server/mcp.d.ts +60 -0
  88. package/dist/server/mcp.d.ts.map +1 -0
  89. package/dist/server/mcp.js +173 -0
  90. package/dist/server/mcp.js.map +1 -0
  91. package/dist/worker/index.d.ts +7 -0
  92. package/dist/worker/index.d.ts.map +1 -0
  93. package/dist/worker/index.js +7 -0
  94. package/dist/worker/index.js.map +1 -0
  95. package/dist/worker/process.d.ts +64 -0
  96. package/dist/worker/process.d.ts.map +1 -0
  97. package/dist/worker/process.js +222 -0
  98. package/dist/worker/process.js.map +1 -0
  99. package/dist/worker/protocol.d.ts +83 -0
  100. package/dist/worker/protocol.d.ts.map +1 -0
  101. package/dist/worker/protocol.js +55 -0
  102. package/dist/worker/protocol.js.map +1 -0
  103. package/dist/worker/worker-entry.d.ts +30 -0
  104. package/dist/worker/worker-entry.d.ts.map +1 -0
  105. package/dist/worker/worker-entry.js +136 -0
  106. package/dist/worker/worker-entry.js.map +1 -0
  107. package/package.json +55 -0
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Secret approval and scoping manager.
3
+ * @module secrets/manager
4
+ */
5
+ import { normalizeScopes, validateUrlScope } from './patterns.js';
6
+ /**
7
+ * Secrets manager handles secret approval and scoped access.
8
+ */
9
+ export class SecretsManager {
10
+ approvedSecrets = new Map();
11
+ /**
12
+ * Approve a secret with its value and scope patterns.
13
+ */
14
+ approve(secret, value) {
15
+ this.approvedSecrets.set(secret.name, {
16
+ name: secret.name,
17
+ value,
18
+ scopes: normalizeScopes(secret.scope),
19
+ });
20
+ }
21
+ /**
22
+ * Check if a secret is approved.
23
+ */
24
+ isApproved(name) {
25
+ return this.approvedSecrets.has(name);
26
+ }
27
+ /**
28
+ * Get a secret value if approved and URL is in scope.
29
+ * @returns The secret value, or undefined if not approved or out of scope
30
+ */
31
+ getSecret(name, url) {
32
+ const secret = this.approvedSecrets.get(name);
33
+ if (!secret) {
34
+ return undefined;
35
+ }
36
+ // If URL provided, validate scope
37
+ if (url) {
38
+ try {
39
+ validateUrlScope(url, secret.scopes);
40
+ }
41
+ catch {
42
+ return undefined;
43
+ }
44
+ }
45
+ return secret.value;
46
+ }
47
+ /**
48
+ * Get all approved secrets for a specific URL.
49
+ * Only returns secrets whose scopes include the URL.
50
+ */
51
+ getSecretsForUrl(url) {
52
+ const result = {};
53
+ for (const [name, secret] of this.approvedSecrets) {
54
+ try {
55
+ validateUrlScope(url, secret.scopes);
56
+ result[name] = secret.value;
57
+ }
58
+ catch {
59
+ // Secret not in scope for this URL
60
+ }
61
+ }
62
+ return result;
63
+ }
64
+ /**
65
+ * Get all approved secrets (without scope validation).
66
+ * Use with caution - for passing to worker process only.
67
+ */
68
+ getAllSecrets() {
69
+ const result = {};
70
+ for (const [name, secret] of this.approvedSecrets) {
71
+ result[name] = secret.value;
72
+ }
73
+ return result;
74
+ }
75
+ /**
76
+ * Get scope patterns for a secret.
77
+ */
78
+ getScopes(name) {
79
+ return this.approvedSecrets.get(name)?.scopes;
80
+ }
81
+ /**
82
+ * Clear all approved secrets.
83
+ */
84
+ clear() {
85
+ this.approvedSecrets.clear();
86
+ }
87
+ /**
88
+ * List all approved secret names.
89
+ */
90
+ listApproved() {
91
+ return Array.from(this.approvedSecrets.keys());
92
+ }
93
+ }
94
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/secrets/manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAWlE;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,eAAe,GAAgC,IAAI,GAAG,EAAE,CAAC;IAEjE;;OAEG;IACH,OAAO,CAAC,MAAc,EAAE,KAAa;QACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;YACpC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK;YACL,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,IAAY,EAAE,GAAY;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,kCAAkC;QAClC,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC;gBACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,GAAW;QAC1B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,IAAI,CAAC;gBACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,mCAAmC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC9B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * URL pattern matching for secret scopes.
3
+ * @module secrets/patterns
4
+ */
5
+ /**
6
+ * Check if a URL matches a scope pattern.
7
+ *
8
+ * Pattern syntax:
9
+ * - `https://api.github.com/*` matches all paths under api.github.com
10
+ * - `https://api.github.com/repos/*` matches only /repos/* paths
11
+ * - `https://raw.githubusercontent.com` matches exact origin only
12
+ *
13
+ * Matching rules:
14
+ * - Pattern must match the FULL URL (origin + path)
15
+ * - `*` in path matches any path segment(s), including nested paths
16
+ * - No subdomain matching: `https://api.github.com/*` does NOT match `https://api.github.com.evil.com/`
17
+ * - Query strings and fragments are stripped before matching
18
+ */
19
+ export declare function matchScopePattern(url: string, pattern: string): boolean;
20
+ /**
21
+ * Check if a URL matches any of the scope patterns.
22
+ */
23
+ export declare function matchAnyScopePattern(url: string, patterns: string[]): boolean;
24
+ /**
25
+ * Validate that a URL is within the allowed scopes.
26
+ * @throws Error if URL doesn't match any scope
27
+ */
28
+ export declare function validateUrlScope(url: string, patterns: string[]): void;
29
+ /**
30
+ * Normalize scope patterns to an array.
31
+ */
32
+ export declare function normalizeScopes(scopes: string | string[]): string[];
33
+ //# sourceMappingURL=patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/secrets/patterns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkCvE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAE7E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAMtE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAEnE"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * URL pattern matching for secret scopes.
3
+ * @module secrets/patterns
4
+ */
5
+ /**
6
+ * Check if a URL matches a scope pattern.
7
+ *
8
+ * Pattern syntax:
9
+ * - `https://api.github.com/*` matches all paths under api.github.com
10
+ * - `https://api.github.com/repos/*` matches only /repos/* paths
11
+ * - `https://raw.githubusercontent.com` matches exact origin only
12
+ *
13
+ * Matching rules:
14
+ * - Pattern must match the FULL URL (origin + path)
15
+ * - `*` in path matches any path segment(s), including nested paths
16
+ * - No subdomain matching: `https://api.github.com/*` does NOT match `https://api.github.com.evil.com/`
17
+ * - Query strings and fragments are stripped before matching
18
+ */
19
+ export function matchScopePattern(url, pattern) {
20
+ try {
21
+ const urlObj = new URL(url);
22
+ // Strip query and fragment
23
+ urlObj.search = '';
24
+ urlObj.hash = '';
25
+ // Handle wildcard pattern
26
+ if (pattern.endsWith('/*')) {
27
+ const basePattern = pattern.slice(0, -2);
28
+ const patternObj = new URL(basePattern);
29
+ // Exact origin match required
30
+ if (urlObj.origin !== patternObj.origin) {
31
+ return false;
32
+ }
33
+ // Path must be exactly the base path or start with base path + '/'
34
+ // This prevents /repos-private matching a /repos/* scope
35
+ const basePath = patternObj.pathname;
36
+ if (basePath === '/') {
37
+ // Root wildcard (/*): matches any path on this origin
38
+ return true;
39
+ }
40
+ return urlObj.pathname === basePath || urlObj.pathname.startsWith(basePath + '/');
41
+ }
42
+ // Exact match (no wildcard)
43
+ const patternObj = new URL(pattern);
44
+ return urlObj.origin === patternObj.origin && urlObj.pathname === patternObj.pathname;
45
+ }
46
+ catch {
47
+ return false;
48
+ }
49
+ }
50
+ /**
51
+ * Check if a URL matches any of the scope patterns.
52
+ */
53
+ export function matchAnyScopePattern(url, patterns) {
54
+ return patterns.some((pattern) => matchScopePattern(url, pattern));
55
+ }
56
+ /**
57
+ * Validate that a URL is within the allowed scopes.
58
+ * @throws Error if URL doesn't match any scope
59
+ */
60
+ export function validateUrlScope(url, patterns) {
61
+ if (!matchAnyScopePattern(url, patterns)) {
62
+ throw new Error(`URL "${url}" is not within allowed scopes: ${patterns.join(', ')}`);
63
+ }
64
+ }
65
+ /**
66
+ * Normalize scope patterns to an array.
67
+ */
68
+ export function normalizeScopes(scopes) {
69
+ return Array.isArray(scopes) ? scopes : [scopes];
70
+ }
71
+ //# sourceMappingURL=patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/secrets/patterns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,OAAe;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5B,2BAA2B;QAC3B,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QAEjB,0BAA0B;QAC1B,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;YAExC,8BAA8B;YAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,mEAAmE;YACnE,yDAAyD;YACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;YACrC,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACrB,sDAAsD;gBACtD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;QACpF,CAAC;QAED,4BAA4B;QAC5B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,QAAkB;IAClE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,QAAkB;IAC9D,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,QAAQ,GAAG,mCAAmC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Server module - MCP server setup.
3
+ * @module server
4
+ */
5
+ export * from './mcp.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Server module - MCP server setup.
3
+ * @module server
4
+ */
5
+ export * from './mcp.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,UAAU,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * MCP server setup using @modelcontextprotocol/sdk.
3
+ * @module server/mcp
4
+ */
5
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
+ import { z } from 'zod';
7
+ import { Manifest } from '../manifest/schema.js';
8
+ /**
9
+ * Result from a prompt get handler, matching MCP GetPromptResult shape.
10
+ *
11
+ * For resource content, `resource.text` is required per MCP TextResourceContents.
12
+ * Use empty string if the resource text is not available at prompt resolution time.
13
+ */
14
+ export interface PromptResult {
15
+ description?: string;
16
+ messages: Array<{
17
+ role: 'user' | 'assistant';
18
+ content: {
19
+ type: 'text';
20
+ text: string;
21
+ } | {
22
+ type: 'resource';
23
+ resource: {
24
+ uri: string;
25
+ text: string;
26
+ mimeType?: string;
27
+ };
28
+ };
29
+ }>;
30
+ }
31
+ /**
32
+ * MCP server options.
33
+ */
34
+ export interface McpServerOptions {
35
+ manifest: Manifest;
36
+ /** Tool execution handler */
37
+ onToolCall: (name: string, input: unknown) => Promise<unknown>;
38
+ /** Resource read handler */
39
+ onResourceRead?: (uri: string) => Promise<string>;
40
+ /** Prompt get handler - returns structured messages matching MCP PromptMessage[] */
41
+ onPromptGet?: (name: string, args: Record<string, string>) => Promise<PromptResult>;
42
+ }
43
+ /**
44
+ * Create and configure MCP server from manifest.
45
+ */
46
+ export declare function createMcpServer(options: McpServerOptions): McpServer;
47
+ /**
48
+ * Convert JSON Schema to Zod schema.
49
+ * This is a simplified implementation for basic types.
50
+ */
51
+ export declare function jsonSchemaToZod(schema: {
52
+ type: string;
53
+ properties?: Record<string, unknown>;
54
+ required?: string[];
55
+ }): z.ZodObject<Record<string, z.ZodType>>;
56
+ /**
57
+ * Start the MCP server with stdio transport.
58
+ */
59
+ export declare function startMcpServer(server: McpServer): Promise<void>;
60
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/server/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAA0B,MAAM,uBAAuB,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAC3B,OAAO,EACH;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAC9B;YAAE,IAAI,EAAE,UAAU,CAAC;YAAC,QAAQ,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;KACtF,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,6BAA6B;IAC7B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,4BAA4B;IAC5B,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,oFAAoF;IACpF,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACrF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAsCpE;AA8HD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CA4C3J;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * MCP server setup using @modelcontextprotocol/sdk.
3
+ * @module server/mcp
4
+ */
5
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
7
+ import { z } from 'zod';
8
+ /**
9
+ * Create and configure MCP server from manifest.
10
+ */
11
+ export function createMcpServer(options) {
12
+ const { manifest, onToolCall, onResourceRead, onPromptGet } = options;
13
+ // Build server options
14
+ const serverOptions = {
15
+ capabilities: {
16
+ tools: {},
17
+ resources: {},
18
+ prompts: {},
19
+ },
20
+ ...(manifest.instructions ? { instructions: manifest.instructions } : {}),
21
+ };
22
+ // Create server instance
23
+ const server = new McpServer({
24
+ name: manifest.name,
25
+ version: manifest.version,
26
+ }, serverOptions);
27
+ // Register tools
28
+ for (const tool of manifest.tools ?? []) {
29
+ registerTool(server, tool, onToolCall);
30
+ }
31
+ // Register resources
32
+ for (const resource of manifest.resources ?? []) {
33
+ registerResource(server, resource, onResourceRead);
34
+ }
35
+ // Register prompts
36
+ for (const prompt of manifest.prompts ?? []) {
37
+ registerPrompt(server, prompt, onPromptGet);
38
+ }
39
+ return server;
40
+ }
41
+ /**
42
+ * Register a tool with the MCP server.
43
+ */
44
+ function registerTool(server, tool, onToolCall) {
45
+ // Convert JSON Schema to Zod schema
46
+ const zodSchema = jsonSchemaToZod(tool.inputSchema);
47
+ // Build tool options
48
+ const toolOptions = {
49
+ description: tool.description,
50
+ inputSchema: zodSchema,
51
+ };
52
+ if (tool.title) {
53
+ toolOptions.title = tool.title;
54
+ }
55
+ if (tool.annotations) {
56
+ toolOptions.annotations = tool.annotations;
57
+ }
58
+ server.registerTool(tool.name, toolOptions, async (input) => {
59
+ const result = await onToolCall(tool.name, input);
60
+ return result;
61
+ });
62
+ }
63
+ /**
64
+ * Register a resource with the MCP server.
65
+ */
66
+ function registerResource(server, resource, onResourceRead) {
67
+ if (!onResourceRead)
68
+ return;
69
+ const resourceOptions = {};
70
+ if (resource.description) {
71
+ resourceOptions.description = resource.description;
72
+ }
73
+ if (resource.mimeType) {
74
+ resourceOptions.mimeType = resource.mimeType;
75
+ }
76
+ server.registerResource(resource.name, resource.uri, resourceOptions, async (uri) => {
77
+ const content = await onResourceRead(uri.href);
78
+ const contents = {
79
+ uri: uri.href,
80
+ text: content,
81
+ };
82
+ if (resource.mimeType) {
83
+ contents.mimeType = resource.mimeType;
84
+ }
85
+ return {
86
+ contents: [contents],
87
+ };
88
+ });
89
+ }
90
+ /**
91
+ * Register a prompt with the MCP server.
92
+ */
93
+ function registerPrompt(server, prompt, onPromptGet) {
94
+ if (!onPromptGet)
95
+ return;
96
+ // Build Zod schema from prompt args
97
+ const argsSchemaRecord = {};
98
+ for (const arg of prompt.args ?? []) {
99
+ let schema = z.string();
100
+ if (arg.description) {
101
+ schema = schema.describe(arg.description);
102
+ }
103
+ if (!arg.required) {
104
+ schema = schema.optional();
105
+ }
106
+ argsSchemaRecord[arg.name] = schema;
107
+ }
108
+ server.registerPrompt(prompt.name, {
109
+ description: prompt.description,
110
+ ...(prompt.title ? { title: prompt.title } : {}),
111
+ ...(Object.keys(argsSchemaRecord).length > 0 ? { argsSchema: argsSchemaRecord } : {}),
112
+ }, async (args) => {
113
+ const result = await onPromptGet(prompt.name, args);
114
+ return {
115
+ ...(result.description ? { description: result.description } : {}),
116
+ messages: result.messages.map((msg) => ({
117
+ role: msg.role,
118
+ content: msg.content,
119
+ })),
120
+ };
121
+ });
122
+ }
123
+ /**
124
+ * Convert JSON Schema to Zod schema.
125
+ * This is a simplified implementation for basic types.
126
+ */
127
+ export function jsonSchemaToZod(schema) {
128
+ const shape = {};
129
+ if (schema.type === 'object' && schema.properties) {
130
+ for (const [key, prop] of Object.entries(schema.properties)) {
131
+ const propSchema = prop;
132
+ let zodType;
133
+ switch (propSchema.type) {
134
+ case 'string':
135
+ zodType = z.string();
136
+ break;
137
+ case 'number':
138
+ case 'integer':
139
+ zodType = z.number();
140
+ break;
141
+ case 'boolean':
142
+ zodType = z.boolean();
143
+ break;
144
+ case 'array':
145
+ zodType = z.array(z.unknown());
146
+ break;
147
+ case 'object':
148
+ zodType = z.record(z.unknown());
149
+ break;
150
+ default:
151
+ zodType = z.unknown();
152
+ }
153
+ if (propSchema.description) {
154
+ zodType = zodType.describe(propSchema.description);
155
+ }
156
+ // Check if required
157
+ const isRequired = schema.required?.includes(key);
158
+ if (!isRequired) {
159
+ zodType = zodType.optional();
160
+ }
161
+ shape[key] = zodType;
162
+ }
163
+ }
164
+ return z.object(shape);
165
+ }
166
+ /**
167
+ * Start the MCP server with stdio transport.
168
+ */
169
+ export async function startMcpServer(server) {
170
+ const transport = new StdioServerTransport();
171
+ await server.connect(transport);
172
+ }
173
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/server/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Worker module - process management and IPC protocol.
3
+ * @module worker
4
+ */
5
+ export * from './process.js';
6
+ export * from './protocol.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Worker module - process management and IPC protocol.
3
+ * @module worker
4
+ */
5
+ export * from './process.js';
6
+ export * from './protocol.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Worker process manager.
3
+ * @module worker/process
4
+ */
5
+ import { WorkerRequest, WorkerResponse } from './protocol.js';
6
+ import type { AuditLogger } from '../audit/logger.js';
7
+ /**
8
+ * Worker process options.
9
+ */
10
+ export interface WorkerOptions {
11
+ /** Worker process timeout in ms (default: 60000) */
12
+ timeout?: number;
13
+ /** Maximum restart attempts (default: 2) */
14
+ maxRestarts?: number;
15
+ /** Logger function */
16
+ logger?: (level: string, message: string) => void;
17
+ /** Optional audit logger for forwarding worker audit events */
18
+ auditLogger?: AuditLogger;
19
+ }
20
+ /**
21
+ * Worker process manager.
22
+ * Handles spawning, communication, and lifecycle of worker processes.
23
+ */
24
+ export declare class WorkerManager {
25
+ private worker;
26
+ private isHealthy;
27
+ private pendingRequests;
28
+ private buffer;
29
+ private options;
30
+ constructor(options?: WorkerOptions);
31
+ /**
32
+ * Spawn a new worker process.
33
+ */
34
+ private spawnWorker;
35
+ /**
36
+ * Handle stdout data from worker.
37
+ */
38
+ private handleStdout;
39
+ /**
40
+ * Handle a response from the worker.
41
+ */
42
+ private handleResponse;
43
+ /**
44
+ * Send a request to the worker.
45
+ */
46
+ private sendRequest;
47
+ /**
48
+ * Kill the worker process.
49
+ */
50
+ private killWorker;
51
+ /**
52
+ * Ping the worker to check if it's alive.
53
+ */
54
+ private pingWorker;
55
+ /**
56
+ * Execute an action in the worker.
57
+ */
58
+ executeAction(request: WorkerRequest): Promise<WorkerResponse>;
59
+ /**
60
+ * Shutdown the worker.
61
+ */
62
+ shutdown(): Promise<void>;
63
+ }
64
+ //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/worker/process.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAmBtD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,+DAA+D;IAC/D,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAoBD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAA+E;gBAElF,OAAO,GAAE,aAAkB;IAKvC;;OAEG;YACW,WAAW;IAwDzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAuBtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAyBnB;;OAEG;IACH,OAAO,CAAC,UAAU;IAQlB;;OAEG;YACW,UAAU;IAYxB;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IA2BpE;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBhC"}