@mondaydotcomorg/atp-client 0.19.5 → 0.19.7
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.
- package/dist/client.d.ts +23 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +26 -5
- package/dist/client.js.map +1 -1
- package/dist/core/api-operations.d.ts +4 -2
- package/dist/core/api-operations.d.ts.map +1 -1
- package/dist/core/api-operations.js +25 -1
- package/dist/core/api-operations.js.map +1 -1
- package/dist/core/execution-operations.d.ts +4 -2
- package/dist/core/execution-operations.d.ts.map +1 -1
- package/dist/core/execution-operations.js +60 -40
- package/dist/core/execution-operations.js.map +1 -1
- package/dist/core/in-process-session.d.ts +96 -0
- package/dist/core/in-process-session.d.ts.map +1 -0
- package/dist/core/in-process-session.js +175 -0
- package/dist/core/in-process-session.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/provenance-registry.d.ts +3 -0
- package/dist/core/provenance-registry.d.ts.map +1 -1
- package/dist/core/provenance-registry.js +12 -6
- package/dist/core/provenance-registry.js.map +1 -1
- package/dist/core/session.d.ts +24 -1
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +8 -5
- package/src/client.ts +47 -7
- package/src/core/api-operations.ts +35 -3
- package/src/core/execution-operations.ts +69 -45
- package/src/core/in-process-session.ts +294 -0
- package/src/core/index.ts +1 -0
- package/src/core/provenance-registry.ts +14 -6
- package/src/core/session.ts +20 -1
- package/src/index.ts +2 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
export class InProcessSession {
|
|
2
|
+
server;
|
|
3
|
+
clientId;
|
|
4
|
+
clientToken;
|
|
5
|
+
initialized = false;
|
|
6
|
+
initPromise;
|
|
7
|
+
constructor(server) {
|
|
8
|
+
this.server = server;
|
|
9
|
+
}
|
|
10
|
+
async init(clientInfo, tools, services) {
|
|
11
|
+
if (this.initPromise) {
|
|
12
|
+
await this.initPromise;
|
|
13
|
+
return {
|
|
14
|
+
clientId: this.clientId,
|
|
15
|
+
token: this.clientToken,
|
|
16
|
+
expiresAt: 0,
|
|
17
|
+
tokenRotateAt: 0,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
this.initPromise = (async () => {
|
|
21
|
+
await this.server.start();
|
|
22
|
+
const ctx = this.createContext({
|
|
23
|
+
method: 'POST',
|
|
24
|
+
path: '/api/init',
|
|
25
|
+
body: {
|
|
26
|
+
clientInfo,
|
|
27
|
+
tools: tools || [],
|
|
28
|
+
services,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
const result = (await this.server.handleInit(ctx));
|
|
32
|
+
this.clientId = result.clientId;
|
|
33
|
+
this.clientToken = result.token;
|
|
34
|
+
this.initialized = true;
|
|
35
|
+
})();
|
|
36
|
+
await this.initPromise;
|
|
37
|
+
return {
|
|
38
|
+
clientId: this.clientId,
|
|
39
|
+
token: this.clientToken,
|
|
40
|
+
expiresAt: 0,
|
|
41
|
+
tokenRotateAt: 0,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
getClientId() {
|
|
45
|
+
if (!this.clientId) {
|
|
46
|
+
throw new Error('Client not initialized. Call init() first.');
|
|
47
|
+
}
|
|
48
|
+
return this.clientId;
|
|
49
|
+
}
|
|
50
|
+
async ensureInitialized() {
|
|
51
|
+
if (!this.initialized) {
|
|
52
|
+
throw new Error('Client not initialized. Call init() first.');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
getHeaders() {
|
|
56
|
+
const headers = {
|
|
57
|
+
'content-type': 'application/json',
|
|
58
|
+
};
|
|
59
|
+
if (this.clientId) {
|
|
60
|
+
headers['x-client-id'] = this.clientId;
|
|
61
|
+
}
|
|
62
|
+
if (this.clientToken) {
|
|
63
|
+
headers['authorization'] = `Bearer ${this.clientToken}`;
|
|
64
|
+
}
|
|
65
|
+
return headers;
|
|
66
|
+
}
|
|
67
|
+
getBaseUrl() {
|
|
68
|
+
return '';
|
|
69
|
+
}
|
|
70
|
+
updateToken(_response) {
|
|
71
|
+
// No-op for in-process - tokens are managed directly
|
|
72
|
+
}
|
|
73
|
+
async prepareHeaders(_method, _url, _body) {
|
|
74
|
+
return this.getHeaders();
|
|
75
|
+
}
|
|
76
|
+
async getDefinitions(options) {
|
|
77
|
+
await this.ensureInitialized();
|
|
78
|
+
const ctx = this.createContext({
|
|
79
|
+
method: 'GET',
|
|
80
|
+
path: '/api/definitions',
|
|
81
|
+
query: options?.apiGroups ? { apiGroups: options.apiGroups.join(',') } : {},
|
|
82
|
+
});
|
|
83
|
+
return (await this.server.getDefinitions(ctx));
|
|
84
|
+
}
|
|
85
|
+
async getRuntimeDefinitions(options) {
|
|
86
|
+
await this.ensureInitialized();
|
|
87
|
+
const ctx = this.createContext({
|
|
88
|
+
method: 'GET',
|
|
89
|
+
path: '/api/runtime',
|
|
90
|
+
query: options?.apis?.length ? { apis: options.apis.join(',') } : {},
|
|
91
|
+
});
|
|
92
|
+
return await this.server.getRuntimeDefinitions(ctx);
|
|
93
|
+
}
|
|
94
|
+
async getServerInfo() {
|
|
95
|
+
await this.ensureInitialized();
|
|
96
|
+
return this.server.getInfo();
|
|
97
|
+
}
|
|
98
|
+
async search(query, options) {
|
|
99
|
+
await this.ensureInitialized();
|
|
100
|
+
const ctx = this.createContext({
|
|
101
|
+
method: 'POST',
|
|
102
|
+
path: '/api/search',
|
|
103
|
+
body: { query, ...options },
|
|
104
|
+
});
|
|
105
|
+
return (await this.server.handleSearch(ctx));
|
|
106
|
+
}
|
|
107
|
+
async explore(path) {
|
|
108
|
+
await this.ensureInitialized();
|
|
109
|
+
const ctx = this.createContext({
|
|
110
|
+
method: 'POST',
|
|
111
|
+
path: '/api/explore',
|
|
112
|
+
body: { path },
|
|
113
|
+
});
|
|
114
|
+
return await this.server.handleExplore(ctx);
|
|
115
|
+
}
|
|
116
|
+
async execute(code, config) {
|
|
117
|
+
await this.ensureInitialized();
|
|
118
|
+
const ctx = this.createContext({
|
|
119
|
+
method: 'POST',
|
|
120
|
+
path: '/api/execute',
|
|
121
|
+
body: { code, config },
|
|
122
|
+
});
|
|
123
|
+
return await this.server.handleExecute(ctx);
|
|
124
|
+
}
|
|
125
|
+
async resume(executionId, callbackResult) {
|
|
126
|
+
await this.ensureInitialized();
|
|
127
|
+
const ctx = this.createContext({
|
|
128
|
+
method: 'POST',
|
|
129
|
+
path: `/api/resume/${executionId}`,
|
|
130
|
+
body: { result: callbackResult },
|
|
131
|
+
});
|
|
132
|
+
return await this.server.handleResume(ctx, executionId);
|
|
133
|
+
}
|
|
134
|
+
async resumeWithBatchResults(executionId, batchResults) {
|
|
135
|
+
await this.ensureInitialized();
|
|
136
|
+
const ctx = this.createContext({
|
|
137
|
+
method: 'POST',
|
|
138
|
+
path: `/api/resume/${executionId}`,
|
|
139
|
+
body: { results: batchResults },
|
|
140
|
+
});
|
|
141
|
+
return await this.server.handleResume(ctx, executionId);
|
|
142
|
+
}
|
|
143
|
+
createContext(options) {
|
|
144
|
+
const noopLogger = {
|
|
145
|
+
debug: () => { },
|
|
146
|
+
info: () => { },
|
|
147
|
+
warn: () => { },
|
|
148
|
+
error: () => { },
|
|
149
|
+
};
|
|
150
|
+
return {
|
|
151
|
+
method: options.method,
|
|
152
|
+
path: options.path,
|
|
153
|
+
query: options.query || {},
|
|
154
|
+
headers: this.getHeaders(),
|
|
155
|
+
body: options.body,
|
|
156
|
+
clientId: this.clientId,
|
|
157
|
+
clientToken: this.clientToken,
|
|
158
|
+
logger: noopLogger,
|
|
159
|
+
status: 200,
|
|
160
|
+
responseBody: null,
|
|
161
|
+
throw: (status, message) => {
|
|
162
|
+
const error = new Error(message);
|
|
163
|
+
error.status = status;
|
|
164
|
+
throw error;
|
|
165
|
+
},
|
|
166
|
+
assert: (condition, message) => {
|
|
167
|
+
if (!condition) {
|
|
168
|
+
throw new Error(message);
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
set: () => { },
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=in-process-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-process-session.js","sourceRoot":"","sources":["../../src/core/in-process-session.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,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"}
|
package/dist/core/index.js
CHANGED
package/dist/core/index.js.map
CHANGED
|
@@ -1 +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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
export interface TokenEntry {
|
|
7
7
|
token: string;
|
|
8
8
|
addedAt: number;
|
|
9
|
+
sequence: number;
|
|
9
10
|
}
|
|
10
11
|
export declare class ProvenanceTokenRegistry {
|
|
11
12
|
private cache;
|
|
12
13
|
private maxSize;
|
|
13
14
|
private ttl;
|
|
15
|
+
private sequenceCounter;
|
|
14
16
|
constructor(maxSize?: number, ttlHours?: number);
|
|
15
17
|
/**
|
|
16
18
|
* Add a token to the registry
|
|
@@ -18,6 +20,7 @@ export declare class ProvenanceTokenRegistry {
|
|
|
18
20
|
add(token: string): void;
|
|
19
21
|
/**
|
|
20
22
|
* Get recent tokens (non-expired, sorted by age, limited)
|
|
23
|
+
* Returns tokens in chronological order (oldest first, most recent last)
|
|
21
24
|
*/
|
|
22
25
|
getRecentTokens(maxCount?: number): string[];
|
|
23
26
|
/**
|
|
@@ -1 +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;
|
|
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;IAChB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,uBAAuB;IACnC,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,eAAe,CAAa;gBAExB,OAAO,GAAE,MAAc,EAAE,QAAQ,GAAE,MAAU;IAKzD;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBxB;;;OAGG;IACH,eAAe,CAAC,QAAQ,GAAE,MAAa,GAAG,MAAM,EAAE;IAuClD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAehB"}
|
|
@@ -7,6 +7,7 @@ export class ProvenanceTokenRegistry {
|
|
|
7
7
|
cache = new Map();
|
|
8
8
|
maxSize;
|
|
9
9
|
ttl;
|
|
10
|
+
sequenceCounter = 0;
|
|
10
11
|
constructor(maxSize = 10000, ttlHours = 1) {
|
|
11
12
|
this.maxSize = maxSize;
|
|
12
13
|
this.ttl = ttlHours * 3600 * 1000;
|
|
@@ -21,16 +22,21 @@ export class ProvenanceTokenRegistry {
|
|
|
21
22
|
if (this.cache.size >= this.maxSize) {
|
|
22
23
|
this.evictLRU();
|
|
23
24
|
}
|
|
24
|
-
// Store token
|
|
25
|
+
// Store token with sequence number for stable ordering
|
|
25
26
|
this.cache.set(token, {
|
|
26
27
|
token,
|
|
27
28
|
addedAt: Date.now(),
|
|
29
|
+
sequence: this.sequenceCounter++,
|
|
28
30
|
});
|
|
29
31
|
}
|
|
30
32
|
/**
|
|
31
33
|
* Get recent tokens (non-expired, sorted by age, limited)
|
|
34
|
+
* Returns tokens in chronological order (oldest first, most recent last)
|
|
32
35
|
*/
|
|
33
36
|
getRecentTokens(maxCount = 1000) {
|
|
37
|
+
if (maxCount <= 0) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
34
40
|
this.evictExpired();
|
|
35
41
|
const now = Date.now();
|
|
36
42
|
const expiredTokens = [];
|
|
@@ -54,8 +60,8 @@ export class ProvenanceTokenRegistry {
|
|
|
54
60
|
return false;
|
|
55
61
|
}
|
|
56
62
|
})
|
|
57
|
-
.sort((a, b) =>
|
|
58
|
-
.slice(
|
|
63
|
+
.sort((a, b) => a.sequence - b.sequence)
|
|
64
|
+
.slice(-maxCount);
|
|
59
65
|
for (const token of expiredTokens) {
|
|
60
66
|
this.cache.delete(token);
|
|
61
67
|
}
|
|
@@ -93,10 +99,10 @@ export class ProvenanceTokenRegistry {
|
|
|
93
99
|
*/
|
|
94
100
|
evictLRU() {
|
|
95
101
|
let oldestToken = null;
|
|
96
|
-
let
|
|
102
|
+
let oldestSequence = Infinity;
|
|
97
103
|
for (const [token, entry] of this.cache.entries()) {
|
|
98
|
-
if (entry.
|
|
99
|
-
|
|
104
|
+
if (entry.sequence < oldestSequence) {
|
|
105
|
+
oldestSequence = entry.sequence;
|
|
100
106
|
oldestToken = token;
|
|
101
107
|
}
|
|
102
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance-registry.js","sourceRoot":"","sources":["../../src/core/provenance-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"provenance-registry.js","sourceRoot":"","sources":["../../src/core/provenance-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/core/session.d.ts
CHANGED
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
import type { ClientHooks } from './types.js';
|
|
2
2
|
import type { ClientToolDefinition } from '@mondaydotcomorg/atp-protocol';
|
|
3
|
-
export
|
|
3
|
+
export interface ISession {
|
|
4
|
+
init(clientInfo?: {
|
|
5
|
+
name?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}, tools?: ClientToolDefinition[], services?: {
|
|
9
|
+
hasLLM: boolean;
|
|
10
|
+
hasApproval: boolean;
|
|
11
|
+
hasEmbedding: boolean;
|
|
12
|
+
hasTools: boolean;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
clientId: string;
|
|
15
|
+
token: string;
|
|
16
|
+
expiresAt: number;
|
|
17
|
+
tokenRotateAt: number;
|
|
18
|
+
}>;
|
|
19
|
+
getClientId(): string;
|
|
20
|
+
ensureInitialized(): Promise<void>;
|
|
21
|
+
getHeaders(): Record<string, string>;
|
|
22
|
+
getBaseUrl(): string;
|
|
23
|
+
updateToken(response: Response): void;
|
|
24
|
+
prepareHeaders(method: string, url: string, body?: unknown): Promise<Record<string, string>>;
|
|
25
|
+
}
|
|
26
|
+
export declare class ClientSession implements ISession {
|
|
4
27
|
private baseUrl;
|
|
5
28
|
private customHeaders;
|
|
6
29
|
private clientId?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,MAAM,WAAW,QAAQ;IACxB,IAAI,CACH,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EACxE,KAAK,CAAC,EAAE,oBAAoB,EAAE,EAC9B,QAAQ,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAC5F,OAAO,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,WAAW,IAAI,MAAM,CAAC;IACtB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,IAAI,MAAM,CAAC;IACrB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7F;AAED,qBAAa,aAAc,YAAW,QAAQ;IAC7C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,KAAK,CAAC,CAAc;gBAEhB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW;IAMlF;;;;;;;OAOG;IACG,IAAI,CACT,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EACxE,KAAK,CAAC,EAAE,oBAAoB,EAAE,EAC9B,QAAQ,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAC5F,OAAO,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;KACtB,CAAC;IAmDF;;OAEG;IACH,WAAW,IAAI,MAAM;IAOrB;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxC;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAiBpC,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOrC;;OAEG;IACG,cAAc,CACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,GACZ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAqClC"}
|
package/dist/core/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,4 +8,6 @@ export type { RuntimeAPIName } from '@mondaydotcomorg/atp-runtime';
|
|
|
8
8
|
export type { Tool, ToolName } from './tools/types.js';
|
|
9
9
|
export { ToolNames } from './tools/types.js';
|
|
10
10
|
export type { AgentToolProtocolClientOptions } from './client.js';
|
|
11
|
+
export { InProcessSession } from './core/in-process-session.js';
|
|
12
|
+
export type { ISession } from './core/session.js';
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,YAAY,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,YAAY,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,4 +5,5 @@ export * from './core/types.js';
|
|
|
5
5
|
export * from './errors.js';
|
|
6
6
|
export { ExecutionStatus } from '@mondaydotcomorg/atp-protocol';
|
|
7
7
|
export { ToolNames } from './tools/types.js';
|
|
8
|
+
export { InProcessSession } from './core/in-process-session.js';
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mondaydotcomorg/atp-client",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.7",
|
|
4
4
|
"description": "Client SDK for Agent Tool Protocol",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -44,14 +44,17 @@
|
|
|
44
44
|
},
|
|
45
45
|
"license": "MIT",
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@mondaydotcomorg/atp-protocol": "0.19.
|
|
48
|
-
"@mondaydotcomorg/atp-runtime": "0.19.
|
|
47
|
+
"@mondaydotcomorg/atp-protocol": "0.19.7",
|
|
48
|
+
"@mondaydotcomorg/atp-runtime": "0.19.7",
|
|
49
49
|
"undici": "*",
|
|
50
|
-
"zod": "^3.25.0",
|
|
51
50
|
"zod-to-json-schema": "^3.24.6"
|
|
52
51
|
},
|
|
52
|
+
"peerDependencies": {
|
|
53
|
+
"zod": "^3.25.0"
|
|
54
|
+
},
|
|
53
55
|
"devDependencies": {
|
|
54
56
|
"typescript": "^5.3.3",
|
|
55
|
-
"vitest": "^1.2.1"
|
|
57
|
+
"vitest": "^1.2.1",
|
|
58
|
+
"zod": "^3.25.0"
|
|
56
59
|
}
|
|
57
60
|
}
|
package/src/client.ts
CHANGED
|
@@ -15,7 +15,9 @@ import {
|
|
|
15
15
|
type ClientEmbeddingHandler,
|
|
16
16
|
type ClientServiceProviders,
|
|
17
17
|
type ClientHooks,
|
|
18
|
+
type ISession,
|
|
18
19
|
ClientSession,
|
|
20
|
+
InProcessSession,
|
|
19
21
|
APIOperations,
|
|
20
22
|
ExecutionOperations,
|
|
21
23
|
ServiceProviders,
|
|
@@ -28,12 +30,26 @@ import {
|
|
|
28
30
|
createExploreApiTool,
|
|
29
31
|
} from './tools/index.js';
|
|
30
32
|
|
|
33
|
+
interface InProcessServer {
|
|
34
|
+
start(): Promise<void>;
|
|
35
|
+
handleInit(ctx: unknown): Promise<unknown>;
|
|
36
|
+
getDefinitions(ctx?: unknown): Promise<unknown>;
|
|
37
|
+
getRuntimeDefinitions(ctx?: unknown): Promise<string>;
|
|
38
|
+
getInfo(): unknown;
|
|
39
|
+
handleSearch(ctx: unknown): Promise<unknown>;
|
|
40
|
+
handleExplore(ctx: unknown): Promise<unknown>;
|
|
41
|
+
handleExecute(ctx: unknown): Promise<unknown>;
|
|
42
|
+
handleResume(ctx: unknown, executionId: string): Promise<unknown>;
|
|
43
|
+
}
|
|
44
|
+
|
|
31
45
|
/**
|
|
32
46
|
* Options for creating an AgentToolProtocolClient
|
|
33
47
|
*/
|
|
34
48
|
export interface AgentToolProtocolClientOptions {
|
|
35
|
-
/** Base URL of the Agent Tool Protocol server */
|
|
36
|
-
baseUrl
|
|
49
|
+
/** Base URL of the Agent Tool Protocol server (HTTP mode) */
|
|
50
|
+
baseUrl?: string;
|
|
51
|
+
/** Server instance for in-process mode (no HTTP, no port binding) */
|
|
52
|
+
server?: InProcessServer;
|
|
37
53
|
/** Optional headers for authentication (e.g., { Authorization: 'Bearer token' }) */
|
|
38
54
|
headers?: Record<string, string>;
|
|
39
55
|
/** Optional client-provided services (LLM, approval, embedding) */
|
|
@@ -47,7 +63,8 @@ export interface AgentToolProtocolClientOptions {
|
|
|
47
63
|
* Agent Tool Protocol servers and executing code.
|
|
48
64
|
*/
|
|
49
65
|
export class AgentToolProtocolClient {
|
|
50
|
-
private session:
|
|
66
|
+
private session: ISession;
|
|
67
|
+
private inProcessSession?: InProcessSession;
|
|
51
68
|
private apiOps: APIOperations;
|
|
52
69
|
private execOps: ExecutionOperations;
|
|
53
70
|
private serviceProviders: ServiceProviders;
|
|
@@ -57,6 +74,7 @@ export class AgentToolProtocolClient {
|
|
|
57
74
|
*
|
|
58
75
|
* @example
|
|
59
76
|
* ```typescript
|
|
77
|
+
* // HTTP mode
|
|
60
78
|
* const client = new AgentToolProtocolClient({
|
|
61
79
|
* baseUrl: 'http://localhost:3333',
|
|
62
80
|
* headers: { Authorization: 'Bearer token' },
|
|
@@ -67,14 +85,36 @@ export class AgentToolProtocolClient {
|
|
|
67
85
|
* }
|
|
68
86
|
* }
|
|
69
87
|
* });
|
|
88
|
+
*
|
|
89
|
+
* // In-process mode (no port binding)
|
|
90
|
+
* const server = createServer();
|
|
91
|
+
* server.use(myApiGroup);
|
|
92
|
+
* const client = new AgentToolProtocolClient({ server });
|
|
70
93
|
* ```
|
|
71
94
|
*/
|
|
72
95
|
constructor(options: AgentToolProtocolClientOptions) {
|
|
73
|
-
const { baseUrl, headers, serviceProviders, hooks } = options;
|
|
74
|
-
|
|
96
|
+
const { baseUrl, server, headers, serviceProviders, hooks } = options;
|
|
97
|
+
|
|
98
|
+
if (!baseUrl && !server) {
|
|
99
|
+
throw new Error('Either baseUrl or server must be provided');
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (baseUrl && server) {
|
|
103
|
+
throw new Error('Cannot provide both baseUrl and server');
|
|
104
|
+
}
|
|
105
|
+
|
|
75
106
|
this.serviceProviders = new ServiceProviders(serviceProviders);
|
|
76
|
-
|
|
77
|
-
|
|
107
|
+
|
|
108
|
+
if (server) {
|
|
109
|
+
this.inProcessSession = new InProcessSession(server);
|
|
110
|
+
this.session = this.inProcessSession;
|
|
111
|
+
this.apiOps = new APIOperations(this.session, this.inProcessSession);
|
|
112
|
+
this.execOps = new ExecutionOperations(this.session, this.serviceProviders, this.inProcessSession);
|
|
113
|
+
} else {
|
|
114
|
+
this.session = new ClientSession(baseUrl!, headers, hooks);
|
|
115
|
+
this.apiOps = new APIOperations(this.session);
|
|
116
|
+
this.execOps = new ExecutionOperations(this.session, this.serviceProviders);
|
|
117
|
+
}
|
|
78
118
|
}
|
|
79
119
|
|
|
80
120
|
/**
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import type { SearchOptions, SearchResult, ExploreResult } from '@mondaydotcomorg/atp-protocol';
|
|
2
2
|
import type { RuntimeAPIName } from '@mondaydotcomorg/atp-runtime';
|
|
3
|
-
import type {
|
|
3
|
+
import type { ISession } from './session.js';
|
|
4
|
+
import type { InProcessSession } from './in-process-session.js';
|
|
4
5
|
|
|
5
6
|
export class APIOperations {
|
|
6
|
-
private session:
|
|
7
|
+
private session: ISession;
|
|
8
|
+
private inProcessSession?: InProcessSession;
|
|
7
9
|
private apiDefinitions?: string;
|
|
8
10
|
|
|
9
|
-
constructor(session:
|
|
11
|
+
constructor(session: ISession, inProcessSession?: InProcessSession) {
|
|
10
12
|
this.session = session;
|
|
13
|
+
this.inProcessSession = inProcessSession;
|
|
11
14
|
}
|
|
12
15
|
|
|
13
16
|
/**
|
|
@@ -20,6 +23,16 @@ export class APIOperations {
|
|
|
20
23
|
}> {
|
|
21
24
|
await this.session.ensureInitialized();
|
|
22
25
|
|
|
26
|
+
if (this.inProcessSession) {
|
|
27
|
+
const data = await this.inProcessSession.getDefinitions(options);
|
|
28
|
+
this.apiDefinitions = data.typescript;
|
|
29
|
+
return {
|
|
30
|
+
serverVersion: data.version,
|
|
31
|
+
capabilities: {},
|
|
32
|
+
apiGroups: data.apiGroups,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
23
36
|
const params = new URLSearchParams();
|
|
24
37
|
if (options?.apiGroups) {
|
|
25
38
|
params.set('apiGroups', options.apiGroups.join(','));
|
|
@@ -64,6 +77,11 @@ export class APIOperations {
|
|
|
64
77
|
async searchAPI(query: string, options?: SearchOptions): Promise<SearchResult[]> {
|
|
65
78
|
await this.session.ensureInitialized();
|
|
66
79
|
|
|
80
|
+
if (this.inProcessSession) {
|
|
81
|
+
const data = await this.inProcessSession.search(query, options as unknown as Record<string, unknown>);
|
|
82
|
+
return data.results as SearchResult[];
|
|
83
|
+
}
|
|
84
|
+
|
|
67
85
|
const url = `${this.session.getBaseUrl()}/api/search`;
|
|
68
86
|
const body = JSON.stringify({ query, ...options });
|
|
69
87
|
const headers = await this.session.prepareHeaders('POST', url, body);
|
|
@@ -88,6 +106,10 @@ export class APIOperations {
|
|
|
88
106
|
async exploreAPI(path: string): Promise<ExploreResult> {
|
|
89
107
|
await this.session.ensureInitialized();
|
|
90
108
|
|
|
109
|
+
if (this.inProcessSession) {
|
|
110
|
+
return (await this.inProcessSession.explore(path)) as ExploreResult;
|
|
111
|
+
}
|
|
112
|
+
|
|
91
113
|
const url = `${this.session.getBaseUrl()}/api/explore`;
|
|
92
114
|
const body = JSON.stringify({ path });
|
|
93
115
|
const headers = await this.session.prepareHeaders('POST', url, body);
|
|
@@ -114,6 +136,10 @@ export class APIOperations {
|
|
|
114
136
|
}> {
|
|
115
137
|
await this.session.ensureInitialized();
|
|
116
138
|
|
|
139
|
+
if (this.inProcessSession) {
|
|
140
|
+
return await this.inProcessSession.getServerInfo();
|
|
141
|
+
}
|
|
142
|
+
|
|
117
143
|
const url = `${this.session.getBaseUrl()}/api/info`;
|
|
118
144
|
const headers = await this.session.prepareHeaders('GET', url);
|
|
119
145
|
|
|
@@ -145,6 +171,12 @@ export class APIOperations {
|
|
|
145
171
|
async getRuntimeDefinitions(options?: { apis?: RuntimeAPIName[] }): Promise<string> {
|
|
146
172
|
await this.session.ensureInitialized();
|
|
147
173
|
|
|
174
|
+
if (this.inProcessSession) {
|
|
175
|
+
return await this.inProcessSession.getRuntimeDefinitions(
|
|
176
|
+
options?.apis ? { apis: options.apis } : undefined
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
|
|
148
180
|
const params = new URLSearchParams();
|
|
149
181
|
if (options?.apis && options.apis.length > 0) {
|
|
150
182
|
params.set('apis', options.apis.join(','));
|