@id-wispera/core 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 (154) hide show
  1. package/README.md +268 -0
  2. package/dist/audit.d.ts +68 -0
  3. package/dist/audit.d.ts.map +1 -0
  4. package/dist/audit.js +252 -0
  5. package/dist/audit.js.map +1 -0
  6. package/dist/auth/index.d.ts +8 -0
  7. package/dist/auth/index.d.ts.map +1 -0
  8. package/dist/auth/index.js +8 -0
  9. package/dist/auth/index.js.map +1 -0
  10. package/dist/auth/keychainProvider.d.ts +40 -0
  11. package/dist/auth/keychainProvider.d.ts.map +1 -0
  12. package/dist/auth/keychainProvider.js +98 -0
  13. package/dist/auth/keychainProvider.js.map +1 -0
  14. package/dist/auth/passphraseProvider.d.ts +80 -0
  15. package/dist/auth/passphraseProvider.d.ts.map +1 -0
  16. package/dist/auth/passphraseProvider.js +188 -0
  17. package/dist/auth/passphraseProvider.js.map +1 -0
  18. package/dist/auth/sessionTokenManager.d.ts +106 -0
  19. package/dist/auth/sessionTokenManager.d.ts.map +1 -0
  20. package/dist/auth/sessionTokenManager.js +263 -0
  21. package/dist/auth/sessionTokenManager.js.map +1 -0
  22. package/dist/delegation.d.ts +81 -0
  23. package/dist/delegation.d.ts.map +1 -0
  24. package/dist/delegation.js +299 -0
  25. package/dist/delegation.js.map +1 -0
  26. package/dist/detection.d.ts +35 -0
  27. package/dist/detection.d.ts.map +1 -0
  28. package/dist/detection.js +474 -0
  29. package/dist/detection.js.map +1 -0
  30. package/dist/exec/execManager.d.ts +60 -0
  31. package/dist/exec/execManager.d.ts.map +1 -0
  32. package/dist/exec/execManager.js +226 -0
  33. package/dist/exec/execManager.js.map +1 -0
  34. package/dist/exec/index.d.ts +6 -0
  35. package/dist/exec/index.d.ts.map +1 -0
  36. package/dist/exec/index.js +5 -0
  37. package/dist/exec/index.js.map +1 -0
  38. package/dist/index.d.ts +35 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +98 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/integrations/base.d.ts +64 -0
  43. package/dist/integrations/base.d.ts.map +1 -0
  44. package/dist/integrations/base.js +173 -0
  45. package/dist/integrations/base.js.map +1 -0
  46. package/dist/integrations/envMapping.d.ts +47 -0
  47. package/dist/integrations/envMapping.d.ts.map +1 -0
  48. package/dist/integrations/envMapping.js +174 -0
  49. package/dist/integrations/envMapping.js.map +1 -0
  50. package/dist/integrations/google-a2a.d.ts +48 -0
  51. package/dist/integrations/google-a2a.d.ts.map +1 -0
  52. package/dist/integrations/google-a2a.js +108 -0
  53. package/dist/integrations/google-a2a.js.map +1 -0
  54. package/dist/integrations/index.d.ts +14 -0
  55. package/dist/integrations/index.d.ts.map +1 -0
  56. package/dist/integrations/index.js +14 -0
  57. package/dist/integrations/index.js.map +1 -0
  58. package/dist/integrations/langchain.d.ts +38 -0
  59. package/dist/integrations/langchain.d.ts.map +1 -0
  60. package/dist/integrations/langchain.js +45 -0
  61. package/dist/integrations/langchain.js.map +1 -0
  62. package/dist/integrations/openai-agents.d.ts +76 -0
  63. package/dist/integrations/openai-agents.d.ts.map +1 -0
  64. package/dist/integrations/openai-agents.js +95 -0
  65. package/dist/integrations/openai-agents.js.map +1 -0
  66. package/dist/integrations/slack.d.ts +59 -0
  67. package/dist/integrations/slack.d.ts.map +1 -0
  68. package/dist/integrations/slack.js +113 -0
  69. package/dist/integrations/slack.js.map +1 -0
  70. package/dist/integrations/types.d.ts +107 -0
  71. package/dist/integrations/types.d.ts.map +1 -0
  72. package/dist/integrations/types.js +6 -0
  73. package/dist/integrations/types.js.map +1 -0
  74. package/dist/locations.d.ts +157 -0
  75. package/dist/locations.d.ts.map +1 -0
  76. package/dist/locations.js +733 -0
  77. package/dist/locations.js.map +1 -0
  78. package/dist/passport.d.ts +70 -0
  79. package/dist/passport.d.ts.map +1 -0
  80. package/dist/passport.js +429 -0
  81. package/dist/passport.js.map +1 -0
  82. package/dist/policy.d.ts +80 -0
  83. package/dist/policy.d.ts.map +1 -0
  84. package/dist/policy.js +392 -0
  85. package/dist/policy.js.map +1 -0
  86. package/dist/providers/openclaw.d.ts +80 -0
  87. package/dist/providers/openclaw.d.ts.map +1 -0
  88. package/dist/providers/openclaw.js +712 -0
  89. package/dist/providers/openclaw.js.map +1 -0
  90. package/dist/provisioning/adminPassport.d.ts +51 -0
  91. package/dist/provisioning/adminPassport.d.ts.map +1 -0
  92. package/dist/provisioning/adminPassport.js +101 -0
  93. package/dist/provisioning/adminPassport.js.map +1 -0
  94. package/dist/provisioning/index.d.ts +81 -0
  95. package/dist/provisioning/index.d.ts.map +1 -0
  96. package/dist/provisioning/index.js +141 -0
  97. package/dist/provisioning/index.js.map +1 -0
  98. package/dist/provisioning/provider.d.ts +59 -0
  99. package/dist/provisioning/provider.d.ts.map +1 -0
  100. package/dist/provisioning/provider.js +52 -0
  101. package/dist/provisioning/provider.js.map +1 -0
  102. package/dist/provisioning/providers/anthropic.d.ts +32 -0
  103. package/dist/provisioning/providers/anthropic.d.ts.map +1 -0
  104. package/dist/provisioning/providers/anthropic.js +116 -0
  105. package/dist/provisioning/providers/anthropic.js.map +1 -0
  106. package/dist/provisioning/providers/aws.d.ts +29 -0
  107. package/dist/provisioning/providers/aws.d.ts.map +1 -0
  108. package/dist/provisioning/providers/aws.js +455 -0
  109. package/dist/provisioning/providers/aws.js.map +1 -0
  110. package/dist/provisioning/providers/azure-entra.d.ts +32 -0
  111. package/dist/provisioning/providers/azure-entra.d.ts.map +1 -0
  112. package/dist/provisioning/providers/azure-entra.js +312 -0
  113. package/dist/provisioning/providers/azure-entra.js.map +1 -0
  114. package/dist/provisioning/providers/github.d.ts +24 -0
  115. package/dist/provisioning/providers/github.d.ts.map +1 -0
  116. package/dist/provisioning/providers/github.js +219 -0
  117. package/dist/provisioning/providers/github.js.map +1 -0
  118. package/dist/provisioning/providers/google-cloud.d.ts +34 -0
  119. package/dist/provisioning/providers/google-cloud.d.ts.map +1 -0
  120. package/dist/provisioning/providers/google-cloud.js +366 -0
  121. package/dist/provisioning/providers/google-cloud.js.map +1 -0
  122. package/dist/provisioning/providers/openai.d.ts +29 -0
  123. package/dist/provisioning/providers/openai.d.ts.map +1 -0
  124. package/dist/provisioning/providers/openai.js +263 -0
  125. package/dist/provisioning/providers/openai.js.map +1 -0
  126. package/dist/provisioning/providers/sendgrid.d.ts +27 -0
  127. package/dist/provisioning/providers/sendgrid.d.ts.map +1 -0
  128. package/dist/provisioning/providers/sendgrid.js +186 -0
  129. package/dist/provisioning/providers/sendgrid.js.map +1 -0
  130. package/dist/provisioning/providers/twilio.d.ts +27 -0
  131. package/dist/provisioning/providers/twilio.d.ts.map +1 -0
  132. package/dist/provisioning/providers/twilio.js +194 -0
  133. package/dist/provisioning/providers/twilio.js.map +1 -0
  134. package/dist/provisioning/types.d.ts +274 -0
  135. package/dist/provisioning/types.d.ts.map +1 -0
  136. package/dist/provisioning/types.js +6 -0
  137. package/dist/provisioning/types.js.map +1 -0
  138. package/dist/sharing.d.ts +60 -0
  139. package/dist/sharing.d.ts.map +1 -0
  140. package/dist/sharing.js +305 -0
  141. package/dist/sharing.js.map +1 -0
  142. package/dist/types.d.ts +396 -0
  143. package/dist/types.d.ts.map +1 -0
  144. package/dist/types.js +88 -0
  145. package/dist/types.js.map +1 -0
  146. package/dist/utils.d.ts +45 -0
  147. package/dist/utils.d.ts.map +1 -0
  148. package/dist/utils.js +110 -0
  149. package/dist/utils.js.map +1 -0
  150. package/dist/vault.d.ts +151 -0
  151. package/dist/vault.d.ts.map +1 -0
  152. package/dist/vault.js +499 -0
  153. package/dist/vault.js.map +1 -0
  154. package/package.json +117 -0
@@ -0,0 +1,366 @@
1
+ /**
2
+ * Google Cloud Provisioning Provider
3
+ * Creates API keys and service account keys via Google Cloud APIs.
4
+ * Supports OAuth2 client credentials and service account authentication.
5
+ */
6
+ import { BaseProvisioningProvider } from '../provider.js';
7
+ const GCP_IAM_URL = 'https://iam.googleapis.com/v1';
8
+ const GCP_APIKEYS_URL = 'https://apikeys.googleapis.com/v2';
9
+ const GCP_TOKEN_URL = 'https://oauth2.googleapis.com/token';
10
+ export class GoogleCloudProvider extends BaseProvisioningProvider {
11
+ provider = 'google-cloud';
12
+ capabilities = {
13
+ canCreate: true,
14
+ canConfigurePermissions: true,
15
+ canRotate: true,
16
+ canRevoke: true,
17
+ canList: true,
18
+ supportsExpiry: true,
19
+ supportsScopedKeys: true,
20
+ };
21
+ accessToken;
22
+ async provision(request) {
23
+ this.ensureInitialized();
24
+ const config = request.config;
25
+ if (config.provider !== 'google-cloud') {
26
+ return {
27
+ success: false,
28
+ error: {
29
+ code: 'INVALID_CONFIG',
30
+ message: `Expected google-cloud config, got ${config.provider}`,
31
+ },
32
+ };
33
+ }
34
+ try {
35
+ await this.ensureAccessToken();
36
+ if (config.keyType === 'api-key') {
37
+ return await this.createApiKey(request, config);
38
+ }
39
+ else {
40
+ return await this.createServiceAccountKey(request, config);
41
+ }
42
+ }
43
+ catch (err) {
44
+ const message = err instanceof Error ? err.message : String(err);
45
+ return {
46
+ success: false,
47
+ error: {
48
+ code: 'PROVISIONING_FAILED',
49
+ message: `Google Cloud provisioning failed: ${message}`,
50
+ },
51
+ };
52
+ }
53
+ }
54
+ async list() {
55
+ this.ensureInitialized();
56
+ await this.ensureAccessToken();
57
+ // List service account keys (most common use case)
58
+ // For a comprehensive list, callers should specify a service account
59
+ const response = await fetch(`${GCP_APIKEYS_URL}/projects/-/locations/global/keys`, {
60
+ headers: {
61
+ 'Authorization': `Bearer ${this.accessToken}`,
62
+ },
63
+ });
64
+ if (!response.ok) {
65
+ const errorBody = await response.text();
66
+ throw new Error(`Failed to list Google Cloud keys: ${response.status} ${errorBody}`);
67
+ }
68
+ const data = await response.json();
69
+ return (data.keys ?? []).map((key) => ({
70
+ id: key.uid,
71
+ name: key.displayName ?? key.name,
72
+ createdAt: new Date(key.createTime),
73
+ status: 'active',
74
+ }));
75
+ }
76
+ async rotate(existingKeyId, request) {
77
+ const newCredential = await this.provision(request);
78
+ return {
79
+ newCredential,
80
+ oldKeyId: existingKeyId,
81
+ recommendedRevocationDelay: 120, // 2 minutes for GCP propagation
82
+ };
83
+ }
84
+ async revoke(keyId) {
85
+ this.ensureInitialized();
86
+ try {
87
+ await this.ensureAccessToken();
88
+ // Try API key deletion first, fall back to service account key
89
+ const response = await fetch(`${GCP_APIKEYS_URL}/projects/-/locations/global/keys/${keyId}`, {
90
+ method: 'DELETE',
91
+ headers: {
92
+ 'Authorization': `Bearer ${this.accessToken}`,
93
+ },
94
+ });
95
+ if (!response.ok) {
96
+ const errorBody = await response.text();
97
+ return { success: false, error: `Failed to revoke: ${response.status} ${errorBody}` };
98
+ }
99
+ return { success: true };
100
+ }
101
+ catch (err) {
102
+ const message = err instanceof Error ? err.message : String(err);
103
+ return { success: false, error: message };
104
+ }
105
+ }
106
+ async validateAuth() {
107
+ this.ensureInitialized();
108
+ try {
109
+ await this.ensureAccessToken();
110
+ return { valid: true };
111
+ }
112
+ catch (err) {
113
+ const message = err instanceof Error ? err.message : String(err);
114
+ return { valid: false, error: message };
115
+ }
116
+ }
117
+ async ensureAccessToken() {
118
+ if (this.accessToken)
119
+ return;
120
+ if (this.auth?.type === 'oauth2') {
121
+ this.accessToken = await this.getOAuth2Token();
122
+ }
123
+ else if (this.auth?.type === 'service-account') {
124
+ this.accessToken = await this.getServiceAccountToken();
125
+ }
126
+ else {
127
+ throw new Error('Google Cloud provider requires oauth2 or service-account authentication');
128
+ }
129
+ }
130
+ async getOAuth2Token() {
131
+ const auth = this.auth;
132
+ const response = await fetch(GCP_TOKEN_URL, {
133
+ method: 'POST',
134
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
135
+ body: new URLSearchParams({
136
+ grant_type: 'client_credentials',
137
+ client_id: auth.clientId,
138
+ client_secret: auth.clientSecret,
139
+ scope: 'https://www.googleapis.com/auth/cloud-platform',
140
+ }).toString(),
141
+ });
142
+ if (!response.ok) {
143
+ const error = await response.text();
144
+ throw new Error(`Failed to obtain Google Cloud OAuth2 token: ${response.status} ${error}`);
145
+ }
146
+ const data = await response.json();
147
+ return data.access_token;
148
+ }
149
+ async getServiceAccountToken() {
150
+ const auth = this.auth;
151
+ const keyData = typeof auth.keyFile === 'string' ? JSON.parse(auth.keyFile) : auth.keyFile;
152
+ const now = Math.floor(Date.now() / 1000);
153
+ const header = btoa(JSON.stringify({ alg: 'RS256', typ: 'JWT' }));
154
+ const payload = btoa(JSON.stringify({
155
+ iss: keyData.client_email,
156
+ scope: 'https://www.googleapis.com/auth/cloud-platform',
157
+ aud: GCP_TOKEN_URL,
158
+ iat: now,
159
+ exp: now + 3600,
160
+ }));
161
+ // For service account JWT signing, we use the private key from the key file.
162
+ // Import the PEM key and sign the JWT.
163
+ const pemKey = keyData.private_key;
164
+ const binaryDer = pemToArrayBuffer(pemKey);
165
+ const cryptoKey = await crypto.subtle.importKey('pkcs8', binaryDer, { name: 'RSASSA-PKCS1-v1_5', hash: 'SHA-256' }, false, ['sign']);
166
+ const signInput = new TextEncoder().encode(`${header}.${payload}`);
167
+ const signature = await crypto.subtle.sign('RSASSA-PKCS1-v1_5', cryptoKey, signInput);
168
+ const sig = arrayBufferToBase64Url(signature);
169
+ const jwt = `${header}.${payload}.${sig}`;
170
+ const response = await fetch(GCP_TOKEN_URL, {
171
+ method: 'POST',
172
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
173
+ body: new URLSearchParams({
174
+ grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
175
+ assertion: jwt,
176
+ }).toString(),
177
+ });
178
+ if (!response.ok) {
179
+ const error = await response.text();
180
+ throw new Error(`Failed to obtain Google Cloud service account token: ${response.status} ${error}`);
181
+ }
182
+ const data = await response.json();
183
+ return data.access_token;
184
+ }
185
+ async createApiKey(request, config) {
186
+ const body = {
187
+ displayName: request.name,
188
+ };
189
+ // Add API restrictions if specified
190
+ if (config.apiTargets || config.allowedIps) {
191
+ const restrictions = {};
192
+ if (config.apiTargets) {
193
+ restrictions.apiTargets = config.apiTargets.map((service) => ({
194
+ service,
195
+ }));
196
+ }
197
+ if (config.allowedIps) {
198
+ restrictions.serverKeyRestrictions = {
199
+ allowedIps: config.allowedIps,
200
+ };
201
+ }
202
+ body.restrictions = restrictions;
203
+ }
204
+ const url = `${GCP_APIKEYS_URL}/projects/${config.projectId}/locations/global/keys`;
205
+ const response = await fetch(url, {
206
+ method: 'POST',
207
+ headers: {
208
+ 'Authorization': `Bearer ${this.accessToken}`,
209
+ 'Content-Type': 'application/json',
210
+ },
211
+ body: JSON.stringify(body),
212
+ });
213
+ if (!response.ok) {
214
+ const errorBody = await response.json().catch(() => ({}));
215
+ return {
216
+ success: false,
217
+ error: {
218
+ code: `GCP_${errorBody.error?.code ?? response.status}`,
219
+ message: errorBody.error?.message ?? `HTTP ${response.status}`,
220
+ details: errorBody,
221
+ },
222
+ };
223
+ }
224
+ const data = await response.json();
225
+ const now = new Date().toISOString();
226
+ return {
227
+ success: true,
228
+ credentialValue: data.keyString,
229
+ providerKeyId: data.uid,
230
+ metadata: {
231
+ resourceName: data.name,
232
+ projectId: config.projectId,
233
+ keyType: 'api-key',
234
+ apiTargets: config.apiTargets,
235
+ allowedIps: config.allowedIps,
236
+ },
237
+ passportInput: {
238
+ name: request.name,
239
+ credentialType: 'api-key',
240
+ credentialValue: data.keyString,
241
+ visaType: this.mapToVisaType('google-cloud', false),
242
+ issuingAuthority: 'Google Cloud',
243
+ platforms: [this.mapToPlatform('google-cloud')],
244
+ scope: config.apiTargets ?? ['unrestricted'],
245
+ validFrom: now,
246
+ humanOwner: request.humanOwner,
247
+ agentId: request.agentId,
248
+ delegationChain: request.delegationChain ?? [
249
+ {
250
+ from: request.humanOwner,
251
+ to: request.agentId ?? request.name,
252
+ grantedAt: now,
253
+ scope: config.apiTargets ?? ['unrestricted'],
254
+ notes: `Provisioned via Google Cloud API Keys API (project: ${config.projectId})`,
255
+ },
256
+ ],
257
+ tags: [...(request.tags ?? []), 'provisioned', 'google-cloud', 'api-key'],
258
+ notes: request.notes ?? `Google Cloud API key for project ${config.projectId}`,
259
+ },
260
+ };
261
+ }
262
+ async createServiceAccountKey(request, config) {
263
+ if (!config.serviceAccountEmail) {
264
+ return {
265
+ success: false,
266
+ error: {
267
+ code: 'MISSING_SERVICE_ACCOUNT',
268
+ message: 'serviceAccountEmail is required for service-account-key type',
269
+ },
270
+ };
271
+ }
272
+ const url = `${GCP_IAM_URL}/projects/-/serviceAccounts/${config.serviceAccountEmail}/keys`;
273
+ const response = await fetch(url, {
274
+ method: 'POST',
275
+ headers: {
276
+ 'Authorization': `Bearer ${this.accessToken}`,
277
+ 'Content-Type': 'application/json',
278
+ },
279
+ body: JSON.stringify({
280
+ privateKeyType: 'TYPE_GOOGLE_CREDENTIALS_FILE',
281
+ keyAlgorithm: 'KEY_ALG_RSA_2048',
282
+ }),
283
+ });
284
+ if (!response.ok) {
285
+ const errorBody = await response.json().catch(() => ({}));
286
+ return {
287
+ success: false,
288
+ error: {
289
+ code: `GCP_${errorBody.error?.code ?? response.status}`,
290
+ message: errorBody.error?.message ?? `HTTP ${response.status}`,
291
+ details: errorBody,
292
+ },
293
+ };
294
+ }
295
+ const data = await response.json();
296
+ const now = new Date().toISOString();
297
+ const permissions = request.permissions;
298
+ const hasElevated = permissions?.roles?.some((r) => r.includes('admin') || r.includes('owner') || r.includes('editor')) ?? false;
299
+ // The key ID is the last segment of the resource name
300
+ const keyId = data.name.split('/').pop() ?? data.name;
301
+ return {
302
+ success: true,
303
+ credentialValue: data.privateKeyData,
304
+ providerKeyId: keyId,
305
+ metadata: {
306
+ resourceName: data.name,
307
+ serviceAccountEmail: config.serviceAccountEmail,
308
+ projectId: config.projectId,
309
+ keyType: 'service-account-key',
310
+ keyAlgorithm: data.keyAlgorithm,
311
+ validAfterTime: data.validAfterTime,
312
+ validBeforeTime: data.validBeforeTime,
313
+ },
314
+ expiresAt: data.validBeforeTime ? new Date(data.validBeforeTime) : undefined,
315
+ passportInput: {
316
+ name: request.name,
317
+ credentialType: 'secret',
318
+ credentialValue: data.privateKeyData,
319
+ visaType: this.mapToVisaType('google-cloud', hasElevated),
320
+ issuingAuthority: 'Google Cloud',
321
+ platforms: [this.mapToPlatform('google-cloud')],
322
+ scope: permissions?.roles ?? ['roles/viewer'],
323
+ validFrom: data.validAfterTime ?? now,
324
+ validUntil: data.validBeforeTime,
325
+ humanOwner: request.humanOwner,
326
+ agentId: request.agentId,
327
+ delegationChain: request.delegationChain ?? [
328
+ {
329
+ from: request.humanOwner,
330
+ to: request.agentId ?? request.name,
331
+ grantedAt: now,
332
+ scope: permissions?.roles ?? ['roles/viewer'],
333
+ notes: `Provisioned via Google Cloud IAM API (SA: ${config.serviceAccountEmail})`,
334
+ },
335
+ ],
336
+ tags: [...(request.tags ?? []), 'provisioned', 'google-cloud', 'service-account-key'],
337
+ notes: request.notes ?? `Google Cloud service account key for ${config.serviceAccountEmail}`,
338
+ },
339
+ };
340
+ }
341
+ }
342
+ /**
343
+ * Convert a PEM-encoded key to an ArrayBuffer
344
+ */
345
+ function pemToArrayBuffer(pem) {
346
+ const lines = pem.split('\n').filter((line) => !line.startsWith('-----'));
347
+ const base64 = lines.join('');
348
+ const binary = atob(base64);
349
+ const bytes = new Uint8Array(binary.length);
350
+ for (let i = 0; i < binary.length; i++) {
351
+ bytes[i] = binary.charCodeAt(i);
352
+ }
353
+ return bytes.buffer;
354
+ }
355
+ /**
356
+ * Convert an ArrayBuffer to base64url encoding
357
+ */
358
+ function arrayBufferToBase64Url(buffer) {
359
+ const bytes = new Uint8Array(buffer);
360
+ let binary = '';
361
+ for (let i = 0; i < bytes.length; i++) {
362
+ binary += String.fromCharCode(bytes[i]);
363
+ }
364
+ return btoa(binary).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
365
+ }
366
+ //# sourceMappingURL=google-cloud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-cloud.js","sourceRoot":"","sources":["../../../src/provisioning/providers/google-cloud.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * OpenAI Provisioning Provider
3
+ * Creates API keys via OpenAI's admin API
4
+ */
5
+ import { BaseProvisioningProvider } from '../provider.js';
6
+ import { ProvisioningProvider, ProviderCapabilities, ProvisioningRequest, ProvisioningResult, RotationResult } from '../types.js';
7
+ export declare class OpenAIProvider extends BaseProvisioningProvider {
8
+ readonly provider: ProvisioningProvider;
9
+ readonly capabilities: ProviderCapabilities;
10
+ provision(request: ProvisioningRequest): Promise<ProvisioningResult>;
11
+ list(): Promise<Array<{
12
+ id: string;
13
+ name: string;
14
+ createdAt: Date;
15
+ status: string;
16
+ }>>;
17
+ rotate(existingKeyId: string, request: ProvisioningRequest): Promise<RotationResult>;
18
+ revoke(keyId: string): Promise<{
19
+ success: boolean;
20
+ error?: string;
21
+ }>;
22
+ validateAuth(): Promise<{
23
+ valid: boolean;
24
+ error?: string;
25
+ }>;
26
+ private createServiceAccountKey;
27
+ private createAdminKey;
28
+ }
29
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/provisioning/providers/openai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EAEf,MAAM,aAAa,CAAC;AAkDrB,qBAAa,cAAe,SAAQ,wBAAwB;IAC1D,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAY;IAEnD,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAQzC;IAEI,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0CpE,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IA4BrF,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAWpF,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA4BpE,YAAY,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;YAyBnD,uBAAuB;YA8EvB,cAAc;CAiE7B"}