@mondaydotcomorg/atp-client 0.17.14

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 (92) hide show
  1. package/README.md +397 -0
  2. package/dist/client.d.ts +125 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +129 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/core/api-operations.d.ts +37 -0
  7. package/dist/core/api-operations.d.ts.map +1 -0
  8. package/dist/core/api-operations.js +90 -0
  9. package/dist/core/api-operations.js.map +1 -0
  10. package/dist/core/execution-operations.d.ts +34 -0
  11. package/dist/core/execution-operations.d.ts.map +1 -0
  12. package/dist/core/execution-operations.js +237 -0
  13. package/dist/core/execution-operations.js.map +1 -0
  14. package/dist/core/index.d.ts +8 -0
  15. package/dist/core/index.d.ts.map +1 -0
  16. package/dist/core/index.js +7 -0
  17. package/dist/core/index.js.map +1 -0
  18. package/dist/core/provenance-registry.d.ts +40 -0
  19. package/dist/core/provenance-registry.d.ts.map +1 -0
  20. package/dist/core/provenance-registry.js +108 -0
  21. package/dist/core/provenance-registry.js.map +1 -0
  22. package/dist/core/service-providers.d.ts +29 -0
  23. package/dist/core/service-providers.d.ts.map +1 -0
  24. package/dist/core/service-providers.js +139 -0
  25. package/dist/core/service-providers.js.map +1 -0
  26. package/dist/core/session.d.ts +50 -0
  27. package/dist/core/session.d.ts.map +1 -0
  28. package/dist/core/session.js +138 -0
  29. package/dist/core/session.js.map +1 -0
  30. package/dist/core/types.d.ts +73 -0
  31. package/dist/core/types.d.ts.map +1 -0
  32. package/dist/core/types.js +2 -0
  33. package/dist/core/types.js.map +1 -0
  34. package/dist/errors.d.ts +22 -0
  35. package/dist/errors.d.ts.map +1 -0
  36. package/dist/errors.js +25 -0
  37. package/dist/errors.js.map +1 -0
  38. package/dist/generator.d.ts +7 -0
  39. package/dist/generator.d.ts.map +1 -0
  40. package/dist/generator.js +12 -0
  41. package/dist/generator.js.map +1 -0
  42. package/dist/index.d.ts +10 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +8 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/tools/execute-code.d.ts +20 -0
  47. package/dist/tools/execute-code.d.ts.map +1 -0
  48. package/dist/tools/execute-code.js +57 -0
  49. package/dist/tools/execute-code.js.map +1 -0
  50. package/dist/tools/explore-api.d.ts +14 -0
  51. package/dist/tools/explore-api.d.ts.map +1 -0
  52. package/dist/tools/explore-api.js +47 -0
  53. package/dist/tools/explore-api.js.map +1 -0
  54. package/dist/tools/fetch-all-apis.d.ts +14 -0
  55. package/dist/tools/fetch-all-apis.d.ts.map +1 -0
  56. package/dist/tools/fetch-all-apis.js +31 -0
  57. package/dist/tools/fetch-all-apis.js.map +1 -0
  58. package/dist/tools/index.d.ts +6 -0
  59. package/dist/tools/index.d.ts.map +1 -0
  60. package/dist/tools/index.js +6 -0
  61. package/dist/tools/index.js.map +1 -0
  62. package/dist/tools/search-api.d.ts +14 -0
  63. package/dist/tools/search-api.d.ts.map +1 -0
  64. package/dist/tools/search-api.js +36 -0
  65. package/dist/tools/search-api.js.map +1 -0
  66. package/dist/tools/types.d.ts +23 -0
  67. package/dist/tools/types.d.ts.map +1 -0
  68. package/dist/tools/types.js +7 -0
  69. package/dist/tools/types.js.map +1 -0
  70. package/dist/tools.d.ts +8 -0
  71. package/dist/tools.d.ts.map +1 -0
  72. package/dist/tools.js +14 -0
  73. package/dist/tools.js.map +1 -0
  74. package/package.json +46 -0
  75. package/src/client.ts +194 -0
  76. package/src/core/api-operations.ts +130 -0
  77. package/src/core/execution-operations.ts +301 -0
  78. package/src/core/index.ts +13 -0
  79. package/src/core/provenance-registry.ts +129 -0
  80. package/src/core/service-providers.ts +176 -0
  81. package/src/core/session.ts +180 -0
  82. package/src/core/types.ts +79 -0
  83. package/src/errors.ts +24 -0
  84. package/src/generator.ts +15 -0
  85. package/src/index.ts +10 -0
  86. package/src/tools/execute-code.ts +76 -0
  87. package/src/tools/explore-api.ts +63 -0
  88. package/src/tools/fetch-all-apis.ts +43 -0
  89. package/src/tools/index.ts +5 -0
  90. package/src/tools/search-api.ts +48 -0
  91. package/src/tools/types.ts +24 -0
  92. package/src/tools.ts +21 -0
@@ -0,0 +1,90 @@
1
+ export class APIOperations {
2
+ session;
3
+ apiDefinitions;
4
+ constructor(session) {
5
+ this.session = session;
6
+ }
7
+ /**
8
+ * Connects to the server and retrieves API definitions.
9
+ */
10
+ async connect(options) {
11
+ await this.session.ensureInitialized();
12
+ const params = new URLSearchParams();
13
+ if (options?.apiGroups) {
14
+ params.set('apiGroups', options.apiGroups.join(','));
15
+ }
16
+ const url = `${this.session.getBaseUrl()}/api/definitions?${params}`;
17
+ const headers = await this.session.prepareHeaders('GET', url);
18
+ const response = await fetch(url, { headers });
19
+ if (!response.ok) {
20
+ throw new Error(`Connection failed: ${response.status} ${response.statusText}`);
21
+ }
22
+ const data = (await response.json());
23
+ this.apiDefinitions = data.typescript;
24
+ return {
25
+ serverVersion: data.version,
26
+ capabilities: {},
27
+ apiGroups: data.apiGroups,
28
+ };
29
+ }
30
+ /**
31
+ * Gets the TypeScript type definitions for available APIs.
32
+ */
33
+ getTypeDefinitions() {
34
+ if (!this.apiDefinitions) {
35
+ throw new Error('Not connected. Call connect() first.');
36
+ }
37
+ return this.apiDefinitions;
38
+ }
39
+ /**
40
+ * Searches for available API functions.
41
+ */
42
+ async searchAPI(query, options) {
43
+ await this.session.ensureInitialized();
44
+ const url = `${this.session.getBaseUrl()}/api/search`;
45
+ const body = JSON.stringify({ query, ...options });
46
+ const headers = await this.session.prepareHeaders('POST', url, body);
47
+ const response = await fetch(url, {
48
+ method: 'POST',
49
+ headers,
50
+ body,
51
+ });
52
+ if (!response.ok) {
53
+ throw new Error(`Search failed: ${response.status} ${response.statusText}`);
54
+ }
55
+ const data = (await response.json());
56
+ return data.results;
57
+ }
58
+ /**
59
+ * Explores the API filesystem at the given path.
60
+ */
61
+ async exploreAPI(path) {
62
+ await this.session.ensureInitialized();
63
+ const url = `${this.session.getBaseUrl()}/api/explore`;
64
+ const body = JSON.stringify({ path });
65
+ const headers = await this.session.prepareHeaders('POST', url, body);
66
+ const response = await fetch(url, {
67
+ method: 'POST',
68
+ headers,
69
+ body,
70
+ });
71
+ if (!response.ok) {
72
+ throw new Error(`Explore failed: ${response.status} ${response.statusText}`);
73
+ }
74
+ return (await response.json());
75
+ }
76
+ /**
77
+ * Gets information about the server.
78
+ */
79
+ async getServerInfo() {
80
+ await this.session.ensureInitialized();
81
+ const url = `${this.session.getBaseUrl()}/api/info`;
82
+ const headers = await this.session.prepareHeaders('GET', url);
83
+ const response = await fetch(url, { headers });
84
+ if (!response.ok) {
85
+ throw new Error(`Failed to get server info: ${response.status}`);
86
+ }
87
+ return (await response.json());
88
+ }
89
+ }
90
+ //# sourceMappingURL=api-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-operations.js","sourceRoot":"","sources":["../../src/core/api-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { ExecutionResult, ExecutionConfig } from '@mondaydotcomorg/atp-protocol';
2
+ import type { ClientSession } from './session.js';
3
+ import type { ServiceProviders } from './service-providers';
4
+ export declare class ExecutionOperations {
5
+ private session;
6
+ private serviceProviders;
7
+ private tokenRegistry;
8
+ constructor(session: ClientSession, serviceProviders: ServiceProviders);
9
+ /**
10
+ * Executes code on the server with real-time progress updates via SSE.
11
+ */
12
+ executeStream(code: string, config?: Partial<ExecutionConfig>, onProgress?: (message: string, fraction: number) => void): Promise<ExecutionResult>;
13
+ /**
14
+ * Executes code on the server in a sandboxed environment.
15
+ */
16
+ execute(code: string, config?: Partial<ExecutionConfig>): Promise<ExecutionResult>;
17
+ /**
18
+ * Handles batch callbacks by executing them in parallel and resuming.
19
+ */
20
+ private handleBatchCallbacksAndResume;
21
+ /**
22
+ * Handles a paused execution by processing the callback and resuming.
23
+ */
24
+ private handlePauseAndResume;
25
+ /**
26
+ * Resumes a paused execution with a callback result.
27
+ */
28
+ resume(executionId: string, callbackResult: unknown): Promise<ExecutionResult>;
29
+ /**
30
+ * Resumes a paused execution with batch callback results.
31
+ */
32
+ private resumeWithBatchResults;
33
+ }
34
+ //# sourceMappingURL=execution-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-operations.d.ts","sourceRoot":"","sources":["../../src/core/execution-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,aAAa,CAA0B;gBAEnC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB;IAMtE;;OAEG;IACG,aAAa,CAClB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GACtD,OAAO,CAAC,eAAe,CAAC;IAiF3B;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAoDxF;;OAEG;YACW,6BAA6B;IAoB3C;;OAEG;YACW,oBAAoB;IA2BlC;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAuCpF;;OAEG;YACW,sBAAsB;CAyCpC"}
@@ -0,0 +1,237 @@
1
+ import { ExecutionStatus } from '@mondaydotcomorg/atp-protocol';
2
+ import { ClientCallbackError } from '../errors.js';
3
+ import { ProvenanceTokenRegistry } from './provenance-registry.js';
4
+ export class ExecutionOperations {
5
+ session;
6
+ serviceProviders;
7
+ tokenRegistry;
8
+ constructor(session, serviceProviders) {
9
+ this.session = session;
10
+ this.serviceProviders = serviceProviders;
11
+ this.tokenRegistry = new ProvenanceTokenRegistry();
12
+ }
13
+ /**
14
+ * Executes code on the server with real-time progress updates via SSE.
15
+ */
16
+ async executeStream(code, config, onProgress) {
17
+ await this.session.ensureInitialized();
18
+ const url = `${this.session.getBaseUrl()}/api/execute/stream`;
19
+ const body = JSON.stringify({ code, config });
20
+ const headers = await this.session.prepareHeaders('POST', url, body);
21
+ return new Promise((resolve, reject) => {
22
+ const fetchImpl = typeof fetch !== 'undefined' ? fetch : require('undici').fetch;
23
+ fetchImpl(url, {
24
+ method: 'POST',
25
+ headers,
26
+ body,
27
+ })
28
+ .then(async (response) => {
29
+ if (!response.ok) {
30
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
31
+ }
32
+ const reader = response.body?.getReader();
33
+ if (!reader) {
34
+ throw new Error('Response body is not readable');
35
+ }
36
+ const decoder = new TextDecoder();
37
+ let buffer = '';
38
+ let result = null;
39
+ while (true) {
40
+ const { done, value } = await reader.read();
41
+ if (done)
42
+ break;
43
+ buffer += decoder.decode(value, { stream: true });
44
+ const lines = buffer.split('\n');
45
+ buffer = lines.pop() || '';
46
+ for (let i = 0; i < lines.length; i++) {
47
+ const line = lines[i];
48
+ if (line && line.startsWith('event:')) {
49
+ const event = line.substring(6).trim();
50
+ for (let j = i + 1; j < lines.length; j++) {
51
+ const dataLine = lines[j];
52
+ if (dataLine && dataLine.startsWith('data:')) {
53
+ const dataStr = dataLine.substring(5).trim();
54
+ if (dataStr) {
55
+ try {
56
+ const data = JSON.parse(dataStr);
57
+ if (event === 'progress' && onProgress) {
58
+ onProgress(data.message, data.fraction);
59
+ }
60
+ else if (event === 'result') {
61
+ result = data;
62
+ }
63
+ else if (event === 'error') {
64
+ reject(new Error(data.message));
65
+ return;
66
+ }
67
+ }
68
+ catch (e) {
69
+ console.error('Failed to parse SSE data:', dataStr);
70
+ }
71
+ }
72
+ break;
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ if (result) {
79
+ resolve(result);
80
+ }
81
+ else {
82
+ reject(new Error('No result received from server'));
83
+ }
84
+ })
85
+ .catch(reject);
86
+ });
87
+ }
88
+ /**
89
+ * Executes code on the server in a sandboxed environment.
90
+ */
91
+ async execute(code, config) {
92
+ await this.session.ensureInitialized();
93
+ const hints = this.tokenRegistry.getRecentTokens(1000);
94
+ const executionConfig = {
95
+ ...config,
96
+ clientServices: {
97
+ hasLLM: !!this.serviceProviders.getLLM(),
98
+ hasApproval: !!this.serviceProviders.getApproval(),
99
+ hasEmbedding: !!this.serviceProviders.getEmbedding(),
100
+ hasTools: this.serviceProviders.hasTools(),
101
+ },
102
+ provenanceHints: hints.length > 0 ? hints : undefined,
103
+ };
104
+ const url = `${this.session.getBaseUrl()}/api/execute`;
105
+ const body = JSON.stringify({ code, config: executionConfig });
106
+ const headers = await this.session.prepareHeaders('POST', url, body);
107
+ const response = await fetch(url, {
108
+ method: 'POST',
109
+ headers,
110
+ body,
111
+ });
112
+ this.session.updateToken(response);
113
+ if (!response.ok) {
114
+ const error = (await response.json());
115
+ throw new Error(`Execution failed: ${error.error || response.statusText}`);
116
+ }
117
+ const result = (await response.json());
118
+ if (result.provenanceTokens && result.provenanceTokens.length > 0) {
119
+ for (const { token } of result.provenanceTokens) {
120
+ this.tokenRegistry.add(token);
121
+ }
122
+ }
123
+ if (result.status === ExecutionStatus.PAUSED && result.needsCallbacks) {
124
+ return await this.handleBatchCallbacksAndResume(result);
125
+ }
126
+ if (result.status === ExecutionStatus.PAUSED && result.needsCallback) {
127
+ return await this.handlePauseAndResume(result);
128
+ }
129
+ return result;
130
+ }
131
+ /**
132
+ * Handles batch callbacks by executing them in parallel and resuming.
133
+ */
134
+ async handleBatchCallbacksAndResume(pausedResult) {
135
+ if (!pausedResult.needsCallbacks || pausedResult.needsCallbacks.length === 0) {
136
+ throw new Error('No batch callback requests in paused execution');
137
+ }
138
+ const batchResults = await Promise.all(pausedResult.needsCallbacks.map(async (cb) => {
139
+ const callbackResult = await this.serviceProviders.handleCallback(cb.type, {
140
+ ...cb.payload,
141
+ operation: cb.operation,
142
+ });
143
+ return { id: cb.id, result: callbackResult };
144
+ }));
145
+ return await this.resumeWithBatchResults(pausedResult.executionId, batchResults);
146
+ }
147
+ /**
148
+ * Handles a paused execution by processing the callback and resuming.
149
+ */
150
+ async handlePauseAndResume(pausedResult) {
151
+ if (!pausedResult.needsCallback) {
152
+ throw new Error('No callback request in paused execution');
153
+ }
154
+ try {
155
+ const callbackResult = await this.serviceProviders.handleCallback(pausedResult.needsCallback.type, {
156
+ ...pausedResult.needsCallback.payload,
157
+ operation: pausedResult.needsCallback.operation,
158
+ executionId: pausedResult.executionId,
159
+ });
160
+ return await this.resume(pausedResult.executionId, callbackResult);
161
+ }
162
+ catch (error) {
163
+ if (error instanceof ClientCallbackError) {
164
+ throw error;
165
+ }
166
+ return await this.resume(pausedResult.executionId, {
167
+ __error: true,
168
+ message: error instanceof Error ? error.message : String(error),
169
+ });
170
+ }
171
+ }
172
+ /**
173
+ * Resumes a paused execution with a callback result.
174
+ */
175
+ async resume(executionId, callbackResult) {
176
+ await this.session.ensureInitialized();
177
+ const url = `${this.session.getBaseUrl()}/api/resume/${executionId}`;
178
+ const body = JSON.stringify({ result: callbackResult });
179
+ const headers = await this.session.prepareHeaders('POST', url, body);
180
+ const response = await fetch(url, {
181
+ method: 'POST',
182
+ headers,
183
+ body,
184
+ });
185
+ this.session.updateToken(response);
186
+ if (!response.ok) {
187
+ const error = (await response.json());
188
+ throw new Error(`Resume failed: ${error.error || response.statusText}`);
189
+ }
190
+ const result = (await response.json());
191
+ if (result.provenanceTokens && result.provenanceTokens.length > 0) {
192
+ for (const { token } of result.provenanceTokens) {
193
+ this.tokenRegistry.add(token);
194
+ }
195
+ }
196
+ if (result.status === ExecutionStatus.PAUSED && result.needsCallbacks) {
197
+ return await this.handleBatchCallbacksAndResume(result);
198
+ }
199
+ if (result.status === ExecutionStatus.PAUSED && result.needsCallback) {
200
+ return await this.handlePauseAndResume(result);
201
+ }
202
+ return result;
203
+ }
204
+ /**
205
+ * Resumes a paused execution with batch callback results.
206
+ */
207
+ async resumeWithBatchResults(executionId, batchResults) {
208
+ await this.session.ensureInitialized();
209
+ const url = `${this.session.getBaseUrl()}/api/resume/${executionId}`;
210
+ const body = JSON.stringify({ results: batchResults });
211
+ const headers = await this.session.prepareHeaders('POST', url, body);
212
+ const response = await fetch(url, {
213
+ method: 'POST',
214
+ headers,
215
+ body,
216
+ });
217
+ this.session.updateToken(response);
218
+ if (!response.ok) {
219
+ const error = (await response.json());
220
+ throw new Error(`Batch resume failed: ${error.error || response.statusText}`);
221
+ }
222
+ const result = (await response.json());
223
+ if (result.provenanceTokens && result.provenanceTokens.length > 0) {
224
+ for (const { token } of result.provenanceTokens) {
225
+ this.tokenRegistry.add(token);
226
+ }
227
+ }
228
+ if (result.status === ExecutionStatus.PAUSED && result.needsCallbacks) {
229
+ return await this.handleBatchCallbacksAndResume(result);
230
+ }
231
+ if (result.status === ExecutionStatus.PAUSED && result.needsCallback) {
232
+ return await this.handlePauseAndResume(result);
233
+ }
234
+ return result;
235
+ }
236
+ }
237
+ //# sourceMappingURL=execution-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-operations.js","sourceRoot":"","sources":["../../src/core/execution-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export * from './session.js';
2
+ export * from './api-operations.js';
3
+ export * from './execution-operations.js';
4
+ export * from './service-providers.js';
5
+ export * from './types.js';
6
+ export { CallbackType } from '@mondaydotcomorg/atp-protocol';
7
+ export type { ClientLLMHandler, ClientApprovalHandler, ClientEmbeddingHandler, ClientServiceProviders, } from '@mondaydotcomorg/atp-protocol';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,YAAY,EACX,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './session.js';
2
+ export * from './api-operations.js';
3
+ export * from './execution-operations.js';
4
+ export * from './service-providers.js';
5
+ export * from './types.js';
6
+ export { CallbackType } from '@mondaydotcomorg/atp-protocol';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Provenance Token Registry for Client
3
+ *
4
+ * Stores and manages provenance tokens for multi-step tracking
5
+ */
6
+ export interface TokenEntry {
7
+ token: string;
8
+ addedAt: number;
9
+ }
10
+ export declare class ProvenanceTokenRegistry {
11
+ private cache;
12
+ private maxSize;
13
+ private ttl;
14
+ constructor(maxSize?: number, ttlHours?: number);
15
+ /**
16
+ * Add a token to the registry
17
+ */
18
+ add(token: string): void;
19
+ /**
20
+ * Get recent tokens (non-expired, sorted by age, limited)
21
+ */
22
+ getRecentTokens(maxCount?: number): string[];
23
+ /**
24
+ * Clear all tokens
25
+ */
26
+ clear(): void;
27
+ /**
28
+ * Get registry size
29
+ */
30
+ size(): number;
31
+ /**
32
+ * Evict expired tokens
33
+ */
34
+ private evictExpired;
35
+ /**
36
+ * Evict least recently used (oldest) token
37
+ */
38
+ private evictLRU;
39
+ }
40
+ //# sourceMappingURL=provenance-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance-registry.d.ts","sourceRoot":"","sources":["../../src/core/provenance-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,uBAAuB;IACnC,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,GAAE,MAAc,EAAE,QAAQ,GAAE,MAAU;IAKzD;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAgBxB;;OAEG;IACH,eAAe,CAAC,QAAQ,GAAE,MAAa,GAAG,MAAM,EAAE;IAmClD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAehB"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Provenance Token Registry for Client
3
+ *
4
+ * Stores and manages provenance tokens for multi-step tracking
5
+ */
6
+ export class ProvenanceTokenRegistry {
7
+ cache = new Map();
8
+ maxSize;
9
+ ttl;
10
+ constructor(maxSize = 10000, ttlHours = 1) {
11
+ this.maxSize = maxSize;
12
+ this.ttl = ttlHours * 3600 * 1000;
13
+ }
14
+ /**
15
+ * Add a token to the registry
16
+ */
17
+ add(token) {
18
+ // Evict expired tokens first
19
+ this.evictExpired();
20
+ // Check if at capacity and evict LRU if needed
21
+ if (this.cache.size >= this.maxSize) {
22
+ this.evictLRU();
23
+ }
24
+ // Store token
25
+ this.cache.set(token, {
26
+ token,
27
+ addedAt: Date.now(),
28
+ });
29
+ }
30
+ /**
31
+ * Get recent tokens (non-expired, sorted by age, limited)
32
+ */
33
+ getRecentTokens(maxCount = 1000) {
34
+ this.evictExpired();
35
+ const now = Date.now();
36
+ const expiredTokens = [];
37
+ const entries = Array.from(this.cache.values())
38
+ .filter((entry) => {
39
+ try {
40
+ const [body] = entry.token.split('.');
41
+ if (!body) {
42
+ expiredTokens.push(entry.token);
43
+ return false;
44
+ }
45
+ const payload = JSON.parse(Buffer.from(body, 'base64url').toString());
46
+ if (!payload.expiresAt || payload.expiresAt <= now) {
47
+ expiredTokens.push(entry.token);
48
+ return false;
49
+ }
50
+ return true;
51
+ }
52
+ catch {
53
+ expiredTokens.push(entry.token);
54
+ return false;
55
+ }
56
+ })
57
+ .sort((a, b) => b.addedAt - a.addedAt)
58
+ .slice(0, maxCount);
59
+ for (const token of expiredTokens) {
60
+ this.cache.delete(token);
61
+ }
62
+ return entries.map((e) => e.token);
63
+ }
64
+ /**
65
+ * Clear all tokens
66
+ */
67
+ clear() {
68
+ this.cache.clear();
69
+ }
70
+ /**
71
+ * Get registry size
72
+ */
73
+ size() {
74
+ return this.cache.size;
75
+ }
76
+ /**
77
+ * Evict expired tokens
78
+ */
79
+ evictExpired() {
80
+ const now = Date.now();
81
+ const toDelete = [];
82
+ for (const [token, entry] of this.cache.entries()) {
83
+ if (now - entry.addedAt > this.ttl) {
84
+ toDelete.push(token);
85
+ }
86
+ }
87
+ for (const token of toDelete) {
88
+ this.cache.delete(token);
89
+ }
90
+ }
91
+ /**
92
+ * Evict least recently used (oldest) token
93
+ */
94
+ evictLRU() {
95
+ let oldestToken = null;
96
+ let oldestTime = Infinity;
97
+ for (const [token, entry] of this.cache.entries()) {
98
+ if (entry.addedAt < oldestTime) {
99
+ oldestTime = entry.addedAt;
100
+ oldestToken = token;
101
+ }
102
+ }
103
+ if (oldestToken) {
104
+ this.cache.delete(oldestToken);
105
+ }
106
+ }
107
+ }
108
+ //# sourceMappingURL=provenance-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance-registry.js","sourceRoot":"","sources":["../../src/core/provenance-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { CallbackType } from '@mondaydotcomorg/atp-protocol';
2
+ import type { ClientLLMHandler, ClientApprovalHandler, ClientEmbeddingHandler, ClientServiceProviders, ClientTool, ClientToolDefinition } from '@mondaydotcomorg/atp-protocol';
3
+ export declare class ServiceProviders {
4
+ private providers;
5
+ private toolHandlers;
6
+ constructor(providers?: ClientServiceProviders);
7
+ provideLLM(handler: ClientLLMHandler): void;
8
+ provideApproval(handler: ClientApprovalHandler): void;
9
+ provideEmbedding(handler: ClientEmbeddingHandler): void;
10
+ provideTools(tools: ClientTool[]): void;
11
+ getLLM(): ClientLLMHandler | undefined;
12
+ getApproval(): ClientApprovalHandler | undefined;
13
+ getEmbedding(): ClientEmbeddingHandler | undefined;
14
+ getTools(): ClientTool[] | undefined;
15
+ /**
16
+ * Get tool definitions (without handlers) for sending to server
17
+ */
18
+ getToolDefinitions(): ClientToolDefinition[];
19
+ /**
20
+ * Check if client has tools
21
+ */
22
+ hasTools(): boolean;
23
+ /**
24
+ * Check if client has any services or tools
25
+ */
26
+ hasAnyServices(): boolean;
27
+ handleCallback(callbackType: CallbackType, payload: any): Promise<any>;
28
+ }
29
+ //# sourceMappingURL=service-providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-providers.d.ts","sourceRoot":"","sources":["../../src/core/service-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiB,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EACX,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,oBAAoB,EAEpB,MAAM,+BAA+B,CAAC;AAavC,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,YAAY,CAA6C;gBAErD,SAAS,CAAC,EAAE,sBAAsB;IAU9C,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI3C,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAIrD,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAIvD,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI;IAOvC,MAAM,IAAI,gBAAgB,GAAG,SAAS;IAItC,WAAW,IAAI,qBAAqB,GAAG,SAAS;IAIhD,YAAY,IAAI,sBAAsB,GAAG,SAAS;IAIlD,QAAQ,IAAI,UAAU,EAAE,GAAG,SAAS;IAIpC;;OAEG;IACH,kBAAkB,IAAI,oBAAoB,EAAE;IAW5C;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,cAAc,IAAI,OAAO;IASnB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAuE5E"}