@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,139 @@
1
+ import { CallbackType, ToolOperation } from '@mondaydotcomorg/atp-protocol';
2
+ const LLMOperation = {
3
+ CALL: 'call',
4
+ EXTRACT: 'extract',
5
+ CLASSIFY: 'classify',
6
+ };
7
+ const EmbeddingOperation = {
8
+ EMBED: 'embed',
9
+ SEARCH: 'search',
10
+ };
11
+ export class ServiceProviders {
12
+ providers = {};
13
+ toolHandlers = new Map();
14
+ constructor(providers) {
15
+ this.providers = providers || {};
16
+ if (providers?.tools) {
17
+ for (const tool of providers.tools) {
18
+ this.toolHandlers.set(tool.name, tool.handler);
19
+ }
20
+ }
21
+ }
22
+ provideLLM(handler) {
23
+ this.providers.llm = handler;
24
+ }
25
+ provideApproval(handler) {
26
+ this.providers.approval = handler;
27
+ }
28
+ provideEmbedding(handler) {
29
+ this.providers.embedding = handler;
30
+ }
31
+ provideTools(tools) {
32
+ this.providers.tools = tools;
33
+ for (const tool of tools) {
34
+ this.toolHandlers.set(tool.name, tool.handler);
35
+ }
36
+ }
37
+ getLLM() {
38
+ return this.providers.llm;
39
+ }
40
+ getApproval() {
41
+ return this.providers.approval;
42
+ }
43
+ getEmbedding() {
44
+ return this.providers.embedding;
45
+ }
46
+ getTools() {
47
+ return this.providers.tools;
48
+ }
49
+ /**
50
+ * Get tool definitions (without handlers) for sending to server
51
+ */
52
+ getToolDefinitions() {
53
+ if (!this.providers.tools) {
54
+ return [];
55
+ }
56
+ return this.providers.tools.map((tool) => {
57
+ const { handler, ...definition } = tool;
58
+ return definition;
59
+ });
60
+ }
61
+ /**
62
+ * Check if client has tools
63
+ */
64
+ hasTools() {
65
+ return !!(this.providers.tools && this.providers.tools.length > 0);
66
+ }
67
+ /**
68
+ * Check if client has any services or tools
69
+ */
70
+ hasAnyServices() {
71
+ return !!(this.providers.llm ||
72
+ this.providers.approval ||
73
+ this.providers.embedding ||
74
+ this.hasTools());
75
+ }
76
+ async handleCallback(callbackType, payload) {
77
+ if (payload.operation === 'batch_parallel' && payload.calls) {
78
+ return await Promise.all(payload.calls.map(async (call) => {
79
+ return await this.handleCallback(call.type, {
80
+ ...call.payload,
81
+ operation: call.operation,
82
+ });
83
+ }));
84
+ }
85
+ switch (callbackType) {
86
+ case CallbackType.LLM:
87
+ if (!this.providers.llm) {
88
+ throw new Error('LLM service not provided by client');
89
+ }
90
+ if (payload.operation === LLMOperation.CALL) {
91
+ return await this.providers.llm.call(payload.prompt, payload.options);
92
+ }
93
+ else if (payload.operation === LLMOperation.EXTRACT && this.providers.llm.extract) {
94
+ return await this.providers.llm.extract(payload.prompt, payload.schema, payload.options);
95
+ }
96
+ else if (payload.operation === LLMOperation.CLASSIFY && this.providers.llm.classify) {
97
+ return await this.providers.llm.classify(payload.text, payload.categories, payload.options);
98
+ }
99
+ throw new Error(`Unsupported LLM operation: ${payload.operation}`);
100
+ case CallbackType.APPROVAL:
101
+ if (!this.providers.approval) {
102
+ throw new Error('Approval service not provided by client');
103
+ }
104
+ const contextWithExecutionId = payload.context
105
+ ? { ...payload.context, executionId: payload.executionId }
106
+ : { executionId: payload.executionId };
107
+ return await this.providers.approval.request(payload.message, contextWithExecutionId);
108
+ case CallbackType.EMBEDDING:
109
+ if (!this.providers.embedding) {
110
+ throw new Error('Embedding service not provided by client');
111
+ }
112
+ if (payload.operation === EmbeddingOperation.EMBED) {
113
+ return await this.providers.embedding.embed(payload.text);
114
+ }
115
+ else if (payload.operation === EmbeddingOperation.SEARCH) {
116
+ const queryEmbedding = await this.providers.embedding.embed(payload.query);
117
+ return queryEmbedding;
118
+ }
119
+ else if (payload.operation === 'similarity' && this.providers.embedding.similarity) {
120
+ return await this.providers.embedding.similarity(payload.text1, payload.text2);
121
+ }
122
+ throw new Error(`Unsupported embedding operation: ${payload.operation}`);
123
+ case CallbackType.TOOL:
124
+ if (payload.operation === ToolOperation.CALL) {
125
+ const toolName = payload.toolName;
126
+ const handler = this.toolHandlers.get(toolName);
127
+ if (!handler) {
128
+ throw new Error(`Tool '${toolName}' not found in client tools`);
129
+ }
130
+ const result = await handler(payload.input);
131
+ return result;
132
+ }
133
+ throw new Error(`Unsupported tool operation: ${payload.operation}`);
134
+ default:
135
+ throw new Error(`Unknown callback type: ${callbackType}`);
136
+ }
137
+ }
138
+ }
139
+ //# sourceMappingURL=service-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-providers.js","sourceRoot":"","sources":["../../src/core/service-providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { ClientHooks } from './types.js';
2
+ import type { ClientToolDefinition } from '@mondaydotcomorg/atp-protocol';
3
+ export declare class ClientSession {
4
+ private baseUrl;
5
+ private customHeaders;
6
+ private clientId?;
7
+ private clientToken?;
8
+ private initPromise?;
9
+ private hooks?;
10
+ constructor(baseUrl: string, headers?: Record<string, string>, hooks?: ClientHooks);
11
+ /**
12
+ * Initializes the client session with the server.
13
+ * This MUST be called before any other operations.
14
+ * The server generates and returns a unique client ID and token.
15
+ * @param clientInfo - Optional client information
16
+ * @param tools - Optional client tool definitions to register with the server
17
+ */
18
+ init(clientInfo?: {
19
+ name?: string;
20
+ version?: string;
21
+ [key: string]: unknown;
22
+ }, tools?: ClientToolDefinition[]): Promise<{
23
+ clientId: string;
24
+ token: string;
25
+ expiresAt: number;
26
+ tokenRotateAt: number;
27
+ }>;
28
+ /**
29
+ * Gets the unique client ID.
30
+ */
31
+ getClientId(): string;
32
+ /**
33
+ * Ensures the client is initialized before making requests.
34
+ */
35
+ ensureInitialized(): Promise<void>;
36
+ /**
37
+ * Creates HTTP headers for requests.
38
+ */
39
+ getHeaders(): Record<string, string>;
40
+ getBaseUrl(): string;
41
+ /**
42
+ * Updates the client token from response headers (token refresh).
43
+ */
44
+ updateToken(response: Response): void;
45
+ /**
46
+ * Prepares headers for a request, calling preRequest hook if configured
47
+ */
48
+ prepareHeaders(method: string, url: string, body?: unknown): Promise<Record<string, string>>;
49
+ }
50
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +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,qBAAa,aAAa;IACzB,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;;;;;;OAMG;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,GAC5B,OAAO,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;KACtB,CAAC;IAkDF;;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"}
@@ -0,0 +1,138 @@
1
+ export class ClientSession {
2
+ baseUrl;
3
+ customHeaders;
4
+ clientId;
5
+ clientToken;
6
+ initPromise;
7
+ hooks;
8
+ constructor(baseUrl, headers, hooks) {
9
+ this.baseUrl = baseUrl;
10
+ this.customHeaders = headers || {};
11
+ this.hooks = hooks;
12
+ }
13
+ /**
14
+ * Initializes the client session with the server.
15
+ * This MUST be called before any other operations.
16
+ * The server generates and returns a unique client ID and token.
17
+ * @param clientInfo - Optional client information
18
+ * @param tools - Optional client tool definitions to register with the server
19
+ */
20
+ async init(clientInfo, tools) {
21
+ if (this.initPromise) {
22
+ await this.initPromise;
23
+ return {
24
+ clientId: this.clientId,
25
+ token: this.clientToken,
26
+ expiresAt: 0,
27
+ tokenRotateAt: 0,
28
+ };
29
+ }
30
+ this.initPromise = (async () => {
31
+ const url = `${this.baseUrl}/api/init`;
32
+ const body = JSON.stringify({
33
+ clientInfo,
34
+ tools: tools || [],
35
+ });
36
+ const headers = await this.prepareHeaders('POST', url, body);
37
+ const response = await fetch(url, {
38
+ method: 'POST',
39
+ headers,
40
+ body,
41
+ });
42
+ if (!response.ok) {
43
+ throw new Error(`Client initialization failed: ${response.status} ${response.statusText}`);
44
+ }
45
+ const data = (await response.json());
46
+ this.clientId = data.clientId;
47
+ this.clientToken = data.token;
48
+ })();
49
+ await this.initPromise;
50
+ return {
51
+ clientId: this.clientId,
52
+ token: this.clientToken,
53
+ expiresAt: 0,
54
+ tokenRotateAt: 0,
55
+ };
56
+ }
57
+ /**
58
+ * Gets the unique client ID.
59
+ */
60
+ getClientId() {
61
+ if (!this.clientId) {
62
+ throw new Error('Client not initialized. Call init() first.');
63
+ }
64
+ return this.clientId;
65
+ }
66
+ /**
67
+ * Ensures the client is initialized before making requests.
68
+ */
69
+ async ensureInitialized() {
70
+ if (!this.clientId) {
71
+ throw new Error('Client not initialized. Call init() first.');
72
+ }
73
+ }
74
+ /**
75
+ * Creates HTTP headers for requests.
76
+ */
77
+ getHeaders() {
78
+ const headers = {
79
+ 'Content-Type': 'application/json',
80
+ ...this.customHeaders,
81
+ };
82
+ if (this.clientId) {
83
+ headers['X-Client-ID'] = this.clientId;
84
+ }
85
+ if (this.clientToken) {
86
+ headers['Authorization'] = `Bearer ${this.clientToken}`;
87
+ }
88
+ return headers;
89
+ }
90
+ getBaseUrl() {
91
+ return this.baseUrl;
92
+ }
93
+ /**
94
+ * Updates the client token from response headers (token refresh).
95
+ */
96
+ updateToken(response) {
97
+ const newToken = response.headers.get('X-ATP-Token');
98
+ if (newToken) {
99
+ this.clientToken = newToken;
100
+ }
101
+ }
102
+ /**
103
+ * Prepares headers for a request, calling preRequest hook if configured
104
+ */
105
+ async prepareHeaders(method, url, body) {
106
+ let headers = {
107
+ 'Content-Type': 'application/json',
108
+ ...this.customHeaders,
109
+ };
110
+ if (this.clientId) {
111
+ headers['X-Client-ID'] = this.clientId;
112
+ }
113
+ if (this.clientToken) {
114
+ headers['Authorization'] = `Bearer ${this.clientToken}`;
115
+ }
116
+ if (this.hooks?.preRequest) {
117
+ try {
118
+ const result = await this.hooks.preRequest({
119
+ url,
120
+ method,
121
+ currentHeaders: headers,
122
+ body,
123
+ });
124
+ if (result.abort) {
125
+ throw new Error(result.abortReason || 'Request aborted by preRequest hook');
126
+ }
127
+ if (result.headers) {
128
+ headers = result.headers;
129
+ }
130
+ }
131
+ catch (error) {
132
+ throw error;
133
+ }
134
+ }
135
+ return headers;
136
+ }
137
+ }
138
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ export interface PreRequestContext {
2
+ /** Request URL */
3
+ url: string;
4
+ /** HTTP method */
5
+ method: string;
6
+ /** Current headers that will be sent */
7
+ currentHeaders: Record<string, string>;
8
+ /** Request body (if any) */
9
+ body?: unknown;
10
+ }
11
+ export interface PreRequestResult {
12
+ /** Updated headers to use for this request */
13
+ headers?: Record<string, string>;
14
+ /** If true, abort the request and throw an error */
15
+ abort?: boolean;
16
+ /** Optional error message if aborting */
17
+ abortReason?: string;
18
+ }
19
+ /**
20
+ * Hook called before every HTTP request to the ATP server
21
+ *
22
+ * Use this to:
23
+ * - Refresh short-lived tokens
24
+ * - Add tracing/correlation headers
25
+ * - Log requests
26
+ * - Implement custom authentication flows
27
+ * - Conditionally abort requests
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const preRequest = async (context) => {
32
+ * // Refresh token before each request
33
+ * const token = await auth.getAccessToken();
34
+ *
35
+ * // Log the request
36
+ * console.log(`[ATP] ${context.method} ${context.url}`);
37
+ *
38
+ * return {
39
+ * headers: {
40
+ * ...context.currentHeaders,
41
+ * Authorization: `Bearer ${token}`,
42
+ * 'X-Trace-Id': generateTraceId()
43
+ * }
44
+ * };
45
+ * };
46
+ * ```
47
+ */
48
+ export type PreRequestHook = (context: PreRequestContext) => Promise<PreRequestResult>;
49
+ /**
50
+ * Client hooks for intercepting and modifying behavior
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const hooks: ClientHooks = {
55
+ * preRequest: async (context) => {
56
+ * const token = await auth.getAccessToken();
57
+ * return {
58
+ * headers: {
59
+ * ...context.currentHeaders,
60
+ * Authorization: `Bearer ${token}`
61
+ * }
62
+ * };
63
+ * }
64
+ * };
65
+ *
66
+ * const client = new AgentToolProtocolClient(serverUrl, {}, undefined, hooks);
67
+ * ```
68
+ */
69
+ export interface ClientHooks {
70
+ /** Hook called before every HTTP request */
71
+ preRequest?: PreRequestHook;
72
+ }
73
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IACjC,kBAAkB;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAChC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEvF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,WAAW;IAC3B,4CAA4C;IAC5C,UAAU,CAAC,EAAE,cAAc,CAAC;CAK5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Base error class for exceptions thrown by client callbacks that should
3
+ * be propagated through the execution flow rather than being caught and
4
+ * converted to error results.
5
+ *
6
+ * Use this when client-side service providers need to interrupt normal
7
+ * execution flow (e.g., for human-in-the-loop workflows, custom control flow).
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * class CustomInterruptException extends ClientCallbackError {
12
+ * constructor(message: string, public data: any) {
13
+ * super(message);
14
+ * this.name = 'CustomInterruptException';
15
+ * }
16
+ * }
17
+ * ```
18
+ */
19
+ export declare class ClientCallbackError extends Error {
20
+ constructor(message: string);
21
+ }
22
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI3B"}
package/dist/errors.js ADDED
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Base error class for exceptions thrown by client callbacks that should
3
+ * be propagated through the execution flow rather than being caught and
4
+ * converted to error results.
5
+ *
6
+ * Use this when client-side service providers need to interrupt normal
7
+ * execution flow (e.g., for human-in-the-loop workflows, custom control flow).
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * class CustomInterruptException extends ClientCallbackError {
12
+ * constructor(message: string, public data: any) {
13
+ * super(message);
14
+ * this.name = 'CustomInterruptException';
15
+ * }
16
+ * }
17
+ * ```
18
+ */
19
+ export class ClientCallbackError extends Error {
20
+ constructor(message) {
21
+ super(message);
22
+ this.name = 'ClientCallbackError';
23
+ }
24
+ }
25
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACnC,CAAC;CACD"}
@@ -0,0 +1,7 @@
1
+ import { AgentToolProtocolClient } from './client.js';
2
+ export declare class CodeGenerator {
3
+ private client;
4
+ constructor(client: AgentToolProtocolClient);
5
+ generateCode(intent: string, parameters?: unknown): Promise<string>;
6
+ }
7
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAA0B;gBAE5B,MAAM,EAAE,uBAAuB;IAIrC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAKzE"}
@@ -0,0 +1,12 @@
1
+ export class CodeGenerator {
2
+ client;
3
+ constructor(client) {
4
+ this.client = client;
5
+ }
6
+ async generateCode(intent, parameters) {
7
+ const types = this.client.getTypeDefinitions();
8
+ console.log('Generating code for intent:', intent, parameters, types);
9
+ return '// Generated code';
10
+ }
11
+ }
12
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACjB,MAAM,CAA0B;IAExC,YAAY,MAA+B;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,UAAoB;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,mBAAmB,CAAC;IAC5B,CAAC;CACD"}
@@ -0,0 +1,10 @@
1
+ export * from './client.js';
2
+ export * from './generator.js';
3
+ export * from './tools.js';
4
+ export * from './core/types.js';
5
+ export * from './errors.js';
6
+ export { ExecutionStatus } from '@mondaydotcomorg/atp-protocol';
7
+ export type { Tool, ToolName } from './tools/types.js';
8
+ export { ToolNames } from './tools/types.js';
9
+ export type { AgentToolProtocolClientOptions } from './client.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,YAAY,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export * from './client.js';
2
+ export * from './generator.js';
3
+ export * from './tools.js';
4
+ export * from './core/types.js';
5
+ export * from './errors.js';
6
+ export { ExecutionStatus } from '@mondaydotcomorg/atp-protocol';
7
+ export { ToolNames } from './tools/types.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ import type { AgentToolProtocolClient } from '../client.js';
3
+ import { type Tool } from './types';
4
+ declare const executeCodeInputSchema: z.ZodObject<{
5
+ code: z.ZodString;
6
+ timeout: z.ZodOptional<z.ZodNumber>;
7
+ maxMemory: z.ZodOptional<z.ZodNumber>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ code: string;
10
+ timeout?: number | undefined;
11
+ maxMemory?: number | undefined;
12
+ }, {
13
+ code: string;
14
+ timeout?: number | undefined;
15
+ maxMemory?: number | undefined;
16
+ }>;
17
+ type ExecuteCodeInput = z.infer<typeof executeCodeInputSchema>;
18
+ export declare function createExecuteCodeTool(client: AgentToolProtocolClient): Tool<ExecuteCodeInput>;
19
+ export {};
20
+ //# sourceMappingURL=execute-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-code.d.ts","sourceRoot":"","sources":["../../src/tools/execute-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/C,QAAA,MAAM,sBAAsB;;;;;;;;;;;;EAI1B,CAAC;AAEH,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,CAAC,CA6D7F"}
@@ -0,0 +1,57 @@
1
+ import { z } from 'zod';
2
+ import { zodToJsonSchema } from 'zod-to-json-schema';
3
+ import { ExecutionStatus } from '@mondaydotcomorg/atp-protocol';
4
+ import { ToolNames } from './types';
5
+ const executeCodeInputSchema = z.object({
6
+ code: z.string().describe('The JavaScript/TypeScript code to execute'),
7
+ timeout: z.number().optional().describe('Execution timeout in milliseconds (default: 30000)'),
8
+ maxMemory: z.number().optional().describe('Maximum memory in bytes (default: 128MB)'),
9
+ });
10
+ export function createExecuteCodeTool(client) {
11
+ return {
12
+ name: ToolNames.EXECUTE_CODE,
13
+ description: "Execute JavaScript/TypeScript code to call APIs. IMPORTANT: Code MUST use 'return' statement to see results. Examples: 'return api.groupName.functionName({})' or 'const result = api.group.func({}); return result'. Use bracket notation for dynamic names: api['groupName']['functionName']({}).",
14
+ inputSchema: zodToJsonSchema(executeCodeInputSchema),
15
+ func: async (input) => {
16
+ try {
17
+ const result = await client.execute(input.code, {
18
+ timeout: input.timeout,
19
+ maxMemory: input.maxMemory,
20
+ });
21
+ if (result.status === ExecutionStatus.COMPLETED) {
22
+ return JSON.stringify({
23
+ success: true,
24
+ result: result.result,
25
+ stats: {
26
+ duration: result.stats.duration,
27
+ memoryUsed: result.stats.memoryUsed,
28
+ },
29
+ }, null, 2);
30
+ }
31
+ else if (result.status === ExecutionStatus.FAILED) {
32
+ return JSON.stringify({
33
+ success: false,
34
+ error: result.error?.message || 'Execution failed',
35
+ stack: result.error?.stack,
36
+ message: 'Code execution failed. Check syntax and fix errors.',
37
+ }, null, 2);
38
+ }
39
+ else {
40
+ return JSON.stringify({
41
+ success: false,
42
+ error: 'Execution timed out',
43
+ message: 'Code took too long. Simplify or optimize.',
44
+ }, null, 2);
45
+ }
46
+ }
47
+ catch (error) {
48
+ return JSON.stringify({
49
+ success: false,
50
+ error: error.message,
51
+ message: 'Failed to execute code',
52
+ }, null, 2);
53
+ }
54
+ },
55
+ };
56
+ }
57
+ //# sourceMappingURL=execute-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-code.js","sourceRoot":"","sources":["../../src/tools/execute-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAa,MAAM,SAAS,CAAC;AAE/C,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC7F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACrF,CAAC,CAAC;AAIH,MAAM,UAAU,qBAAqB,CAAC,MAA+B;IACpE,OAAO;QACN,IAAI,EAAE,SAAS,CAAC,YAAY;QAC5B,WAAW,EACV,qSAAqS;QACtS,WAAW,EAAE,eAAe,CAAC,sBAAsB,CAAQ;QAC3D,IAAI,EAAE,KAAK,EAAE,KAAuB,EAAE,EAAE;YACvC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;oBAC/C,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC1B,CAAC,CAAC;gBAEH,IAAI,MAAM,CAAC,MAAM,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;oBACjD,OAAO,IAAI,CAAC,SAAS,CACpB;wBACC,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,KAAK,EAAE;4BACN,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;4BAC/B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;yBACnC;qBACD,EACD,IAAI,EACJ,CAAC,CACD,CAAC;gBACH,CAAC;qBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;oBACrD,OAAO,IAAI,CAAC,SAAS,CACpB;wBACC,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,kBAAkB;wBAClD,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK;wBAC1B,OAAO,EAAE,qDAAqD;qBAC9D,EACD,IAAI,EACJ,CAAC,CACD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACP,OAAO,IAAI,CAAC,SAAS,CACpB;wBACC,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,2CAA2C;qBACpD,EACD,IAAI,EACJ,CAAC,CACD,CAAC;gBACH,CAAC;YACF,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC,SAAS,CACpB;oBACC,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,KAAK,CAAC,OAAO;oBACpB,OAAO,EAAE,wBAAwB;iBACjC,EACD,IAAI,EACJ,CAAC,CACD,CAAC;YACH,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import type { AgentToolProtocolClient } from '../client.js';
3
+ import { type Tool } from './types.js';
4
+ declare const exploreApiInputSchema: z.ZodObject<{
5
+ path: z.ZodString;
6
+ }, "strip", z.ZodTypeAny, {
7
+ path: string;
8
+ }, {
9
+ path: string;
10
+ }>;
11
+ type ExploreApiInput = z.infer<typeof exploreApiInputSchema>;
12
+ export declare function createExploreApiTool(client: AgentToolProtocolClient): Tool<ExploreApiInput>;
13
+ export {};
14
+ //# sourceMappingURL=explore-api.d.ts.map