opalserve 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 (158) hide show
  1. package/.env.example +19 -0
  2. package/AGENTS.md +23 -0
  3. package/README.md +109 -0
  4. package/config/servers.example.yaml +67 -0
  5. package/config/servers.yaml +2 -0
  6. package/dist/cli/discover.d.ts +3 -0
  7. package/dist/cli/discover.d.ts.map +1 -0
  8. package/dist/cli/discover.js +160 -0
  9. package/dist/cli/discover.js.map +1 -0
  10. package/dist/cli/index.d.ts +3 -0
  11. package/dist/cli/index.d.ts.map +1 -0
  12. package/dist/cli/index.js +32 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/connectors/base.d.ts +49 -0
  15. package/dist/connectors/base.d.ts.map +1 -0
  16. package/dist/connectors/base.js +45 -0
  17. package/dist/connectors/base.js.map +1 -0
  18. package/dist/connectors/custom.d.ts +19 -0
  19. package/dist/connectors/custom.d.ts.map +1 -0
  20. package/dist/connectors/custom.js +129 -0
  21. package/dist/connectors/custom.js.map +1 -0
  22. package/dist/connectors/github.d.ts +18 -0
  23. package/dist/connectors/github.d.ts.map +1 -0
  24. package/dist/connectors/github.js +188 -0
  25. package/dist/connectors/github.js.map +1 -0
  26. package/dist/connectors/google-drive.d.ts +18 -0
  27. package/dist/connectors/google-drive.d.ts.map +1 -0
  28. package/dist/connectors/google-drive.js +209 -0
  29. package/dist/connectors/google-drive.js.map +1 -0
  30. package/dist/connectors/index.d.ts +11 -0
  31. package/dist/connectors/index.d.ts.map +1 -0
  32. package/dist/connectors/index.js +76 -0
  33. package/dist/connectors/index.js.map +1 -0
  34. package/dist/connectors/postgres.d.ts +18 -0
  35. package/dist/connectors/postgres.d.ts.map +1 -0
  36. package/dist/connectors/postgres.js +140 -0
  37. package/dist/connectors/postgres.js.map +1 -0
  38. package/dist/connectors/slack.d.ts +18 -0
  39. package/dist/connectors/slack.d.ts.map +1 -0
  40. package/dist/connectors/slack.js +181 -0
  41. package/dist/connectors/slack.js.map +1 -0
  42. package/dist/core/auth.d.ts +26 -0
  43. package/dist/core/auth.d.ts.map +1 -0
  44. package/dist/core/auth.js +81 -0
  45. package/dist/core/auth.js.map +1 -0
  46. package/dist/core/registry.d.ts +33 -0
  47. package/dist/core/registry.d.ts.map +1 -0
  48. package/dist/core/registry.js +237 -0
  49. package/dist/core/registry.js.map +1 -0
  50. package/dist/core/tokenizer.d.ts +16 -0
  51. package/dist/core/tokenizer.d.ts.map +1 -0
  52. package/dist/core/tokenizer.js +29 -0
  53. package/dist/core/tokenizer.js.map +1 -0
  54. package/dist/governance/audit.d.ts +27 -0
  55. package/dist/governance/audit.d.ts.map +1 -0
  56. package/dist/governance/audit.js +149 -0
  57. package/dist/governance/audit.js.map +1 -0
  58. package/dist/governance/index.d.ts +5 -0
  59. package/dist/governance/index.d.ts.map +1 -0
  60. package/dist/governance/index.js +5 -0
  61. package/dist/governance/index.js.map +1 -0
  62. package/dist/governance/policy.d.ts +20 -0
  63. package/dist/governance/policy.d.ts.map +1 -0
  64. package/dist/governance/policy.js +162 -0
  65. package/dist/governance/policy.js.map +1 -0
  66. package/dist/governance/rate-limiter.d.ts +20 -0
  67. package/dist/governance/rate-limiter.d.ts.map +1 -0
  68. package/dist/governance/rate-limiter.js +73 -0
  69. package/dist/governance/rate-limiter.js.map +1 -0
  70. package/dist/governance/types.d.ts +246 -0
  71. package/dist/governance/types.d.ts.map +1 -0
  72. package/dist/governance/types.js +72 -0
  73. package/dist/governance/types.js.map +1 -0
  74. package/dist/identity/access-control.d.ts +15 -0
  75. package/dist/identity/access-control.d.ts.map +1 -0
  76. package/dist/identity/access-control.js +81 -0
  77. package/dist/identity/access-control.js.map +1 -0
  78. package/dist/identity/index.d.ts +4 -0
  79. package/dist/identity/index.d.ts.map +1 -0
  80. package/dist/identity/index.js +4 -0
  81. package/dist/identity/index.js.map +1 -0
  82. package/dist/identity/manager.d.ts +29 -0
  83. package/dist/identity/manager.d.ts.map +1 -0
  84. package/dist/identity/manager.js +167 -0
  85. package/dist/identity/manager.js.map +1 -0
  86. package/dist/identity/types.d.ts +237 -0
  87. package/dist/identity/types.d.ts.map +1 -0
  88. package/dist/identity/types.js +80 -0
  89. package/dist/identity/types.js.map +1 -0
  90. package/dist/index.d.ts +13 -0
  91. package/dist/index.d.ts.map +1 -0
  92. package/dist/index.js +10 -0
  93. package/dist/index.js.map +1 -0
  94. package/dist/registry/server.d.ts +14 -0
  95. package/dist/registry/server.d.ts.map +1 -0
  96. package/dist/registry/server.js +173 -0
  97. package/dist/registry/server.js.map +1 -0
  98. package/dist/types/index.d.ts +639 -0
  99. package/dist/types/index.d.ts.map +1 -0
  100. package/dist/types/index.js +76 -0
  101. package/dist/types/index.js.map +1 -0
  102. package/dist/utils/config.d.ts +29 -0
  103. package/dist/utils/config.d.ts.map +1 -0
  104. package/dist/utils/config.js +47 -0
  105. package/dist/utils/config.js.map +1 -0
  106. package/dist/utils/index.d.ts +7 -0
  107. package/dist/utils/index.d.ts.map +1 -0
  108. package/dist/utils/index.js +44 -0
  109. package/dist/utils/index.js.map +1 -0
  110. package/dist/workflow/engine.d.ts +18 -0
  111. package/dist/workflow/engine.d.ts.map +1 -0
  112. package/dist/workflow/engine.js +155 -0
  113. package/dist/workflow/engine.js.map +1 -0
  114. package/dist/workflow/index.d.ts +4 -0
  115. package/dist/workflow/index.d.ts.map +1 -0
  116. package/dist/workflow/index.js +4 -0
  117. package/dist/workflow/index.js.map +1 -0
  118. package/dist/workflow/templates.d.ts +4 -0
  119. package/dist/workflow/templates.d.ts.map +1 -0
  120. package/dist/workflow/templates.js +218 -0
  121. package/dist/workflow/templates.js.map +1 -0
  122. package/dist/workflow/types.d.ts +255 -0
  123. package/dist/workflow/types.d.ts.map +1 -0
  124. package/dist/workflow/types.js +48 -0
  125. package/dist/workflow/types.js.map +1 -0
  126. package/eslint.config.js +25 -0
  127. package/package.json +78 -0
  128. package/src/cli/discover.ts +223 -0
  129. package/src/cli/index.ts +40 -0
  130. package/src/connectors/base.ts +75 -0
  131. package/src/connectors/custom.ts +139 -0
  132. package/src/connectors/github.ts +195 -0
  133. package/src/connectors/google-drive.ts +217 -0
  134. package/src/connectors/index.ts +86 -0
  135. package/src/connectors/postgres.ts +148 -0
  136. package/src/connectors/slack.ts +188 -0
  137. package/src/core/auth.ts +109 -0
  138. package/src/core/registry.ts +301 -0
  139. package/src/core/tokenizer.ts +40 -0
  140. package/src/governance/audit.ts +182 -0
  141. package/src/governance/index.ts +4 -0
  142. package/src/governance/policy.ts +187 -0
  143. package/src/governance/rate-limiter.ts +95 -0
  144. package/src/governance/types.ts +100 -0
  145. package/src/identity/access-control.ts +119 -0
  146. package/src/identity/index.ts +3 -0
  147. package/src/identity/manager.ts +207 -0
  148. package/src/identity/types.ts +91 -0
  149. package/src/index.ts +16 -0
  150. package/src/registry/server.ts +195 -0
  151. package/src/types/index.ts +128 -0
  152. package/src/utils/config.ts +78 -0
  153. package/src/utils/index.ts +47 -0
  154. package/src/workflow/engine.ts +187 -0
  155. package/src/workflow/index.ts +3 -0
  156. package/src/workflow/templates.ts +220 -0
  157. package/src/workflow/types.ts +89 -0
  158. package/tsconfig.json +25 -0
@@ -0,0 +1,129 @@
1
+ import { BaseConnector } from './base.js';
2
+ const CUSTOM_TOOL_DEFS = [
3
+ {
4
+ name: 'custom_http_request',
5
+ description: 'Make HTTP requests to external APIs',
6
+ inputSchema: {
7
+ type: 'object',
8
+ properties: {
9
+ method: { type: 'string', enum: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'], default: 'GET' },
10
+ url: { type: 'string', description: 'Request URL' },
11
+ headers: { type: 'object', description: 'HTTP headers' },
12
+ body: { type: 'object', description: 'Request body' },
13
+ timeout: { type: 'number', default: 30000 },
14
+ },
15
+ required: ['method', 'url'],
16
+ },
17
+ tags: ['http', 'api', 'custom', 'request'],
18
+ capabilities: ['read', 'write', 'http'],
19
+ authRequirements: { optional: ['api_key', 'bearer_token'] },
20
+ contextRequirements: { minTokens: 50, maxTokens: 500 },
21
+ },
22
+ {
23
+ name: 'custom_webhook_trigger',
24
+ description: 'Trigger a webhook with custom payload',
25
+ inputSchema: {
26
+ type: 'object',
27
+ properties: {
28
+ url: { type: 'string', description: 'Webhook URL' },
29
+ event: { type: 'string', description: 'Event name' },
30
+ payload: { type: 'object', description: 'Event payload' },
31
+ secret: { type: 'string', description: 'Webhook secret for signing' },
32
+ },
33
+ required: ['url', 'event'],
34
+ },
35
+ tags: ['webhook', 'custom', 'trigger', 'events'],
36
+ capabilities: ['write', 'trigger'],
37
+ authRequirements: { optional: ['webhook_secret'] },
38
+ contextRequirements: { minTokens: 30, maxTokens: 300 },
39
+ },
40
+ {
41
+ name: 'custom_transform_data',
42
+ description: 'Transform and process data with custom logic',
43
+ inputSchema: {
44
+ type: 'object',
45
+ properties: {
46
+ operation: { type: 'string', enum: ['map', 'filter', 'reduce', 'sort', 'group'] },
47
+ data: { type: 'array', description: 'Input data array' },
48
+ expression: { type: 'string', description: 'Transformation expression' },
49
+ },
50
+ required: ['operation', 'data'],
51
+ },
52
+ tags: ['transform', 'custom', 'data', 'process'],
53
+ capabilities: ['read', 'transform'],
54
+ contextRequirements: { minTokens: 50, maxTokens: 500 },
55
+ },
56
+ {
57
+ name: 'custom_aggregate_metrics',
58
+ description: 'Aggregate and summarize metrics from input data',
59
+ inputSchema: {
60
+ type: 'object',
61
+ properties: {
62
+ data: { type: 'array', description: 'Data to aggregate' },
63
+ metrics: { type: 'array', items: { type: 'string' }, description: 'Metric names to calculate' },
64
+ groupBy: { type: 'array', items: { type: 'string' }, description: 'Fields to group by' },
65
+ },
66
+ required: ['data', 'metrics'],
67
+ },
68
+ tags: ['metrics', 'custom', 'aggregate', 'analytics'],
69
+ capabilities: ['read', 'analyze'],
70
+ contextRequirements: { minTokens: 50, maxTokens: 400 },
71
+ },
72
+ {
73
+ name: 'custom_send_email',
74
+ description: 'Send an email via configured email service',
75
+ inputSchema: {
76
+ type: 'object',
77
+ properties: {
78
+ to: { type: 'array', items: { type: 'string' }, description: 'Recipient emails' },
79
+ subject: { type: 'string', description: 'Email subject' },
80
+ body: { type: 'string', description: 'Email body (plain text)' },
81
+ html: { type: 'string', description: 'Email body (HTML)' },
82
+ from: { type: 'string', description: 'Sender email' },
83
+ replyTo: { type: 'string', description: 'Reply-to email' },
84
+ attachments: { type: 'array', description: 'Attachment URLs' },
85
+ },
86
+ required: ['to', 'subject', 'body'],
87
+ },
88
+ tags: ['email', 'custom', 'notification', 'send'],
89
+ capabilities: ['write', 'notify'],
90
+ authRequirements: { optional: ['smtp_credentials', 'email_api_key'] },
91
+ contextRequirements: { minTokens: 30, maxTokens: 300 },
92
+ },
93
+ ];
94
+ export class CustomConnector extends BaseConnector {
95
+ id = 'custom';
96
+ name = 'Custom Tools';
97
+ type = 'custom';
98
+ constructor(config) {
99
+ super(config);
100
+ this.tools = this.buildTools();
101
+ }
102
+ async connect() {
103
+ this.connected = true;
104
+ }
105
+ async disconnect() {
106
+ this.connected = false;
107
+ }
108
+ async healthCheck() {
109
+ return { healthy: true };
110
+ }
111
+ async refreshTools() {
112
+ return this.tools;
113
+ }
114
+ registerCustomTool(definition) {
115
+ this.tools.push(this.createTool(definition));
116
+ }
117
+ unregisterCustomTool(name) {
118
+ const index = this.tools.findIndex(t => t.name === name);
119
+ if (index !== -1) {
120
+ this.tools.splice(index, 1);
121
+ return true;
122
+ }
123
+ return false;
124
+ }
125
+ buildTools() {
126
+ return CUSTOM_TOOL_DEFS.map(def => this.createTool(def));
127
+ }
128
+ }
129
+ //# sourceMappingURL=custom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.js","sourceRoot":"","sources":["../../src/connectors/custom.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { BaseConnector } from './base.js';
2
+ import { ConnectorConfig, Tool } from '../types/index.js';
3
+ export declare class GitHubConnector extends BaseConnector {
4
+ id: string;
5
+ name: string;
6
+ type: string;
7
+ private token?;
8
+ constructor(config: ConnectorConfig);
9
+ connect(): Promise<void>;
10
+ disconnect(): Promise<void>;
11
+ healthCheck(): Promise<{
12
+ healthy: boolean;
13
+ latencyMs?: number;
14
+ }>;
15
+ refreshTools(): Promise<Tool[]>;
16
+ private buildTools;
17
+ }
18
+ //# sourceMappingURL=github.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/connectors/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,IAAI,EAAkB,MAAM,mBAAmB,CAAC;AA2J1E,qBAAa,eAAgB,SAAQ,aAAa;IAChD,EAAE,SAAY;IACd,IAAI,SAAY;IAChB,IAAI,SAAY;IAChB,OAAO,CAAC,KAAK,CAAC,CAAS;gBAEX,MAAM,EAAE,eAAe;IAM7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,WAAW,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAWhE,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAIrC,OAAO,CAAC,UAAU;CAGnB"}
@@ -0,0 +1,188 @@
1
+ import { BaseConnector } from './base.js';
2
+ const GITHUB_TOOL_DEFS = [
3
+ {
4
+ name: 'github_search_repositories',
5
+ description: 'Search for GitHub repositories by query, language, stars, and other criteria',
6
+ inputSchema: {
7
+ type: 'object',
8
+ properties: {
9
+ q: { type: 'string', description: 'Search query' },
10
+ language: { type: 'string', description: 'Programming language filter' },
11
+ sort: { type: 'string', enum: ['stars', 'forks', 'updated'] },
12
+ },
13
+ required: ['q'],
14
+ },
15
+ tags: ['search', 'repositories', 'github'],
16
+ capabilities: ['read', 'search'],
17
+ authRequirements: { required: ['github_token'] },
18
+ contextRequirements: { minTokens: 50, maxTokens: 500 },
19
+ },
20
+ {
21
+ name: 'github_get_file_contents',
22
+ description: 'Get the contents of a file or directory from a GitHub repository',
23
+ inputSchema: {
24
+ type: 'object',
25
+ properties: {
26
+ owner: { type: 'string', description: 'Repository owner' },
27
+ repo: { type: 'string', description: 'Repository name' },
28
+ path: { type: 'string', description: 'Path to file or directory' },
29
+ branch: { type: 'string', description: 'Branch name' },
30
+ },
31
+ required: ['owner', 'repo', 'path'],
32
+ },
33
+ tags: ['files', 'repository', 'github'],
34
+ capabilities: ['read'],
35
+ authRequirements: { required: ['github_token'] },
36
+ contextRequirements: { minTokens: 50, maxTokens: 1000 },
37
+ },
38
+ {
39
+ name: 'github_list_issues',
40
+ description: 'List issues in a GitHub repository with filtering options',
41
+ inputSchema: {
42
+ type: 'object',
43
+ properties: {
44
+ owner: { type: 'string', description: 'Repository owner' },
45
+ repo: { type: 'string', description: 'Repository name' },
46
+ state: { type: 'string', enum: ['open', 'closed', 'all'] },
47
+ labels: { type: 'array', items: { type: 'string' } },
48
+ sort: { type: 'string', enum: ['created', 'updated', 'comments'] },
49
+ },
50
+ required: ['owner', 'repo'],
51
+ },
52
+ tags: ['issues', 'tickets', 'github'],
53
+ capabilities: ['read', 'list'],
54
+ authRequirements: { required: ['github_token'] },
55
+ contextRequirements: { minTokens: 50, maxTokens: 500 },
56
+ },
57
+ {
58
+ name: 'github_create_issue',
59
+ description: 'Create a new issue in a GitHub repository',
60
+ inputSchema: {
61
+ type: 'object',
62
+ properties: {
63
+ owner: { type: 'string', description: 'Repository owner' },
64
+ repo: { type: 'string', description: 'Repository name' },
65
+ title: { type: 'string', description: 'Issue title' },
66
+ body: { type: 'string', description: 'Issue body' },
67
+ labels: { type: 'array', items: { type: 'string' } },
68
+ assignees: { type: 'array', items: { type: 'string' } },
69
+ },
70
+ required: ['owner', 'repo', 'title'],
71
+ },
72
+ tags: ['issues', 'create', 'github'],
73
+ capabilities: ['write', 'create'],
74
+ authRequirements: { required: ['github_token'] },
75
+ contextRequirements: { minTokens: 50, maxTokens: 200 },
76
+ },
77
+ {
78
+ name: 'github_list_pull_requests',
79
+ description: 'List and filter pull requests in a GitHub repository',
80
+ inputSchema: {
81
+ type: 'object',
82
+ properties: {
83
+ owner: { type: 'string', description: 'Repository owner' },
84
+ repo: { type: 'string', description: 'Repository name' },
85
+ state: { type: 'string', enum: ['open', 'closed', 'all'] },
86
+ sort: { type: 'string', enum: ['created', 'updated', 'popularity'] },
87
+ head: { type: 'string', description: 'Filter by head branch' },
88
+ },
89
+ required: ['owner', 'repo'],
90
+ },
91
+ tags: ['pull-requests', 'code-review', 'github'],
92
+ capabilities: ['read', 'list'],
93
+ authRequirements: { required: ['github_token'] },
94
+ contextRequirements: { minTokens: 50, maxTokens: 500 },
95
+ },
96
+ {
97
+ name: 'github_create_pull_request',
98
+ description: 'Create a new pull request in a GitHub repository',
99
+ inputSchema: {
100
+ type: 'object',
101
+ properties: {
102
+ owner: { type: 'string', description: 'Repository owner' },
103
+ repo: { type: 'string', description: 'Repository name' },
104
+ title: { type: 'string', description: 'PR title' },
105
+ body: { type: 'string', description: 'PR body' },
106
+ head: { type: 'string', description: 'Head branch' },
107
+ base: { type: 'string', description: 'Base branch', default: 'main' },
108
+ draft: { type: 'boolean', description: 'Create as draft PR' },
109
+ },
110
+ required: ['owner', 'repo', 'title', 'head', 'base'],
111
+ },
112
+ tags: ['pull-requests', 'create', 'github'],
113
+ capabilities: ['write', 'create'],
114
+ authRequirements: { required: ['github_token'] },
115
+ contextRequirements: { minTokens: 50, maxTokens: 300 },
116
+ },
117
+ {
118
+ name: 'github_list_commits',
119
+ description: 'Get list of commits from a branch in a GitHub repository',
120
+ inputSchema: {
121
+ type: 'object',
122
+ properties: {
123
+ owner: { type: 'string', description: 'Repository owner' },
124
+ repo: { type: 'string', description: 'Repository name' },
125
+ sha: { type: 'string', description: 'Branch or commit SHA' },
126
+ per_page: { type: 'number', description: 'Results per page', default: 30 },
127
+ page: { type: 'number', description: 'Page number', default: 1 },
128
+ },
129
+ required: ['owner', 'repo'],
130
+ },
131
+ tags: ['commits', 'history', 'github'],
132
+ capabilities: ['read', 'list'],
133
+ authRequirements: { required: ['github_token'] },
134
+ contextRequirements: { minTokens: 50, maxTokens: 800 },
135
+ },
136
+ {
137
+ name: 'github_search_code',
138
+ description: 'Search for code across GitHub repositories',
139
+ inputSchema: {
140
+ type: 'object',
141
+ properties: {
142
+ q: { type: 'string', description: 'Search query with code-specific syntax' },
143
+ language: { type: 'string', description: 'Language filter' },
144
+ repo: { type: 'string', description: 'Limit search to repository' },
145
+ },
146
+ required: ['q'],
147
+ },
148
+ tags: ['search', 'code', 'github'],
149
+ capabilities: ['read', 'search'],
150
+ authRequirements: { required: ['github_token'] },
151
+ contextRequirements: { minTokens: 50, maxTokens: 500 },
152
+ },
153
+ ];
154
+ export class GitHubConnector extends BaseConnector {
155
+ id = 'github';
156
+ name = 'GitHub';
157
+ type = 'github';
158
+ token;
159
+ constructor(config) {
160
+ super(config);
161
+ this.token = config.auth?.credentials?.token;
162
+ this.tools = this.buildTools();
163
+ }
164
+ async connect() {
165
+ this.connected = true;
166
+ }
167
+ async disconnect() {
168
+ this.connected = false;
169
+ }
170
+ async healthCheck() {
171
+ const { result, latencyMs } = await this.measureLatency(async () => {
172
+ if (!this.token)
173
+ return true;
174
+ const response = await fetch('https://api.github.com/rate_limit', {
175
+ headers: { Authorization: `Bearer ${this.token}` },
176
+ });
177
+ return response.ok;
178
+ });
179
+ return { healthy: result, latencyMs };
180
+ }
181
+ async refreshTools() {
182
+ return this.tools;
183
+ }
184
+ buildTools() {
185
+ return GITHUB_TOOL_DEFS.map(def => this.createTool(def));
186
+ }
187
+ }
188
+ //# sourceMappingURL=github.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/connectors/github.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { BaseConnector } from './base.js';
2
+ import { ConnectorConfig, Tool } from '../types/index.js';
3
+ export declare class GoogleDriveConnector extends BaseConnector {
4
+ id: string;
5
+ name: string;
6
+ type: string;
7
+ private serviceAccountPath?;
8
+ constructor(config: ConnectorConfig);
9
+ connect(): Promise<void>;
10
+ disconnect(): Promise<void>;
11
+ healthCheck(): Promise<{
12
+ healthy: boolean;
13
+ latencyMs?: number;
14
+ }>;
15
+ refreshTools(): Promise<Tool[]>;
16
+ private buildTools;
17
+ }
18
+ //# sourceMappingURL=google-drive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-drive.d.ts","sourceRoot":"","sources":["../../src/connectors/google-drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,IAAI,EAAkB,MAAM,mBAAmB,CAAC;AAgL1E,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,EAAE,SAAkB;IACpB,IAAI,SAAkB;IACtB,IAAI,SAAkB;IACtB,OAAO,CAAC,kBAAkB,CAAC,CAAS;gBAExB,MAAM,EAAE,eAAe;IAM7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,WAAW,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAOhE,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAIrC,OAAO,CAAC,UAAU;CAGnB"}
@@ -0,0 +1,209 @@
1
+ import { BaseConnector } from './base.js';
2
+ const GOOGLE_DRIVE_TOOL_DEFS = [
3
+ {
4
+ name: 'drive_list_files',
5
+ description: 'List files in Google Drive with optional filters',
6
+ inputSchema: {
7
+ type: 'object',
8
+ properties: {
9
+ folderId: { type: 'string', description: 'Parent folder ID' },
10
+ mimeType: { type: 'string', description: 'Filter by MIME type' },
11
+ query: { type: 'string', description: 'Search query' },
12
+ pageSize: { type: 'number', default: 100 },
13
+ orderBy: { type: 'string', description: 'Sort order' },
14
+ },
15
+ },
16
+ tags: ['files', 'drive', 'google', 'list'],
17
+ capabilities: ['read', 'list'],
18
+ authRequirements: { required: ['google_service_account'] },
19
+ contextRequirements: { minTokens: 30, maxTokens: 400 },
20
+ },
21
+ {
22
+ name: 'drive_get_file',
23
+ description: 'Get metadata for a specific file',
24
+ inputSchema: {
25
+ type: 'object',
26
+ properties: {
27
+ fileId: { type: 'string', description: 'File ID' },
28
+ fields: { type: 'string', description: 'Fields to return' },
29
+ },
30
+ required: ['fileId'],
31
+ },
32
+ tags: ['files', 'drive', 'google', 'metadata'],
33
+ capabilities: ['read', 'metadata'],
34
+ authRequirements: { required: ['google_service_account'] },
35
+ contextRequirements: { minTokens: 30, maxTokens: 200 },
36
+ },
37
+ {
38
+ name: 'drive_download_file',
39
+ description: 'Download file content from Google Drive',
40
+ inputSchema: {
41
+ type: 'object',
42
+ properties: {
43
+ fileId: { type: 'string', description: 'File ID' },
44
+ mimeType: { type: 'string', description: 'Expected MIME type' },
45
+ },
46
+ required: ['fileId'],
47
+ },
48
+ tags: ['files', 'drive', 'google', 'download'],
49
+ capabilities: ['read', 'download'],
50
+ authRequirements: { required: ['google_service_account'] },
51
+ contextRequirements: { minTokens: 30, maxTokens: 500 },
52
+ },
53
+ {
54
+ name: 'drive_create_file',
55
+ description: 'Create a new file in Google Drive',
56
+ inputSchema: {
57
+ type: 'object',
58
+ properties: {
59
+ name: { type: 'string', description: 'File name' },
60
+ mimeType: { type: 'string', description: 'MIME type' },
61
+ parentFolderId: { type: 'string', description: 'Parent folder ID' },
62
+ content: { type: 'string', description: 'File content' },
63
+ },
64
+ required: ['name', 'mimeType'],
65
+ },
66
+ tags: ['files', 'drive', 'google', 'create'],
67
+ capabilities: ['write', 'create'],
68
+ authRequirements: { required: ['google_service_account'] },
69
+ contextRequirements: { minTokens: 30, maxTokens: 300 },
70
+ },
71
+ {
72
+ name: 'drive_update_file',
73
+ description: 'Update file metadata or content',
74
+ inputSchema: {
75
+ type: 'object',
76
+ properties: {
77
+ fileId: { type: 'string', description: 'File ID' },
78
+ name: { type: 'string', description: 'New file name' },
79
+ content: { type: 'string', description: 'New content' },
80
+ addParents: { type: 'array', items: { type: 'string' }, description: 'Parent folder IDs to add' },
81
+ removeParents: { type: 'array', items: { type: 'string' }, description: 'Parent folder IDs to remove' },
82
+ },
83
+ required: ['fileId'],
84
+ },
85
+ tags: ['files', 'drive', 'google', 'update'],
86
+ capabilities: ['write', 'update'],
87
+ authRequirements: { required: ['google_service_account'] },
88
+ contextRequirements: { minTokens: 30, maxTokens: 300 },
89
+ },
90
+ {
91
+ name: 'drive_delete_file',
92
+ description: 'Move a file to trash or permanently delete it',
93
+ inputSchema: {
94
+ type: 'object',
95
+ properties: {
96
+ fileId: { type: 'string', description: 'File ID' },
97
+ permanent: { type: 'boolean', default: false, description: 'Permanently delete vs trash' },
98
+ },
99
+ required: ['fileId'],
100
+ },
101
+ tags: ['files', 'drive', 'google', 'delete'],
102
+ capabilities: ['write', 'delete'],
103
+ authRequirements: { required: ['google_service_account'] },
104
+ contextRequirements: { minTokens: 30, maxTokens: 100 },
105
+ },
106
+ {
107
+ name: 'drive_list_folders',
108
+ description: 'List folders in Google Drive',
109
+ inputSchema: {
110
+ type: 'object',
111
+ properties: {
112
+ folderId: { type: 'string', description: 'Parent folder ID' },
113
+ query: { type: 'string', description: 'Search query' },
114
+ },
115
+ },
116
+ tags: ['folders', 'drive', 'google', 'list'],
117
+ capabilities: ['read', 'list'],
118
+ authRequirements: { required: ['google_service_account'] },
119
+ contextRequirements: { minTokens: 30, maxTokens: 300 },
120
+ },
121
+ {
122
+ name: 'drive_create_folder',
123
+ description: 'Create a new folder in Google Drive',
124
+ inputSchema: {
125
+ type: 'object',
126
+ properties: {
127
+ name: { type: 'string', description: 'Folder name' },
128
+ parentFolderId: { type: 'string', description: 'Parent folder ID' },
129
+ },
130
+ required: ['name'],
131
+ },
132
+ tags: ['folders', 'drive', 'google', 'create'],
133
+ capabilities: ['write', 'create'],
134
+ authRequirements: { required: ['google_service_account'] },
135
+ contextRequirements: { minTokens: 30, maxTokens: 100 },
136
+ },
137
+ {
138
+ name: 'drive_share_file',
139
+ description: 'Share a file with specific users or make it public',
140
+ inputSchema: {
141
+ type: 'object',
142
+ properties: {
143
+ fileId: { type: 'string', description: 'File ID' },
144
+ role: { type: 'string', enum: ['reader', 'commenter', 'writer', 'owner'] },
145
+ type: { type: 'string', enum: ['user', 'group', 'domain', 'anyone'] },
146
+ email: { type: 'string', description: 'Email for user/group type' },
147
+ domain: { type: 'string', description: 'Domain for domain type' },
148
+ transferOwnership: { type: 'boolean', default: false },
149
+ },
150
+ required: ['fileId', 'role', 'type'],
151
+ },
152
+ tags: ['files', 'drive', 'google', 'sharing', 'permissions'],
153
+ capabilities: ['write', 'share'],
154
+ authRequirements: { required: ['google_service_account'] },
155
+ contextRequirements: { minTokens: 30, maxTokens: 200 },
156
+ },
157
+ {
158
+ name: 'drive_search_files',
159
+ description: 'Search for files using Google Drive query syntax',
160
+ inputSchema: {
161
+ type: 'object',
162
+ properties: {
163
+ query: { type: 'string', description: 'Search query (Drive query syntax)' },
164
+ pageSize: { type: 'number', default: 100 },
165
+ orderBy: { type: 'string' },
166
+ },
167
+ required: ['query'],
168
+ },
169
+ tags: ['search', 'files', 'drive', 'google'],
170
+ capabilities: ['read', 'search'],
171
+ authRequirements: { required: ['google_service_account'] },
172
+ contextRequirements: { minTokens: 30, maxTokens: 400 },
173
+ },
174
+ ];
175
+ export class GoogleDriveConnector extends BaseConnector {
176
+ id = 'google-drive';
177
+ name = 'Google Drive';
178
+ type = 'google-drive';
179
+ serviceAccountPath;
180
+ constructor(config) {
181
+ super(config);
182
+ this.serviceAccountPath = config.auth?.credentials?.service_account_path;
183
+ this.tools = this.buildTools();
184
+ }
185
+ async connect() {
186
+ if (!this.serviceAccountPath) {
187
+ console.warn('Google service account not configured');
188
+ this.connected = true;
189
+ return;
190
+ }
191
+ this.connected = true;
192
+ }
193
+ async disconnect() {
194
+ this.connected = false;
195
+ }
196
+ async healthCheck() {
197
+ const { result, latencyMs } = await this.measureLatency(async () => {
198
+ return this.connected;
199
+ });
200
+ return { healthy: result, latencyMs };
201
+ }
202
+ async refreshTools() {
203
+ return this.tools;
204
+ }
205
+ buildTools() {
206
+ return GOOGLE_DRIVE_TOOL_DEFS.map(def => this.createTool(def));
207
+ }
208
+ }
209
+ //# sourceMappingURL=google-drive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-drive.js","sourceRoot":"","sources":["../../src/connectors/google-drive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export { BaseConnector, Connector } from './base.js';
2
+ export { GitHubConnector } from './github.js';
3
+ export { SlackConnector } from './slack.js';
4
+ export { PostgresConnector } from './postgres.js';
5
+ export { GoogleDriveConnector } from './google-drive.js';
6
+ export { CustomConnector } from './custom.js';
7
+ import type { ConnectorConfig, MCPServer, Server } from '../types/index.js';
8
+ export declare function createConnector(type: string, config: ConnectorConfig): MCPServer;
9
+ export declare function createAllConnectors(): Map<string, MCPServer>;
10
+ export declare function createServerFromConnector(connector: MCPServer): Server;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAO9C,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE5E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,SAAS,CAehF;AAED,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CA6B5D;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAuBtE"}