diff --git a/packages/agent-toolkit/CHANGELOG.md b/packages/agent-toolkit/CHANGELOG.md index c6818aaf..3b88f748 100644 --- a/packages/agent-toolkit/CHANGELOG.md +++ b/packages/agent-toolkit/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 5.9.1 + +### Asset upload MCP tools + +- Added `get_asset_upload_url` — requests a presigned S3 upload URL for a file. Returns `upload_id`, `upload_url`, and expiry. Includes inline `curl` example for the upload step and ETag capture guidance. +- Added `finalize_asset_upload` — finalizes the upload via `complete_upload` and attaches the asset to a file column on a board item using `change_column_value` (append semantics). Returns `asset_id`, `filename`, `content_type`, `file_size`, `url`, and `filelink`. +- Both tools use `versionOverride: 'dev'` as `create_upload` / `complete_upload` are currently dev-schema-only. + ## 5.7.1 ### form_questions_editor — fix ConditionOperator and remove existing_column_id diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/change-column-value.graphql.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/change-column-value.graphql.ts new file mode 100644 index 00000000..870d85b2 --- /dev/null +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/change-column-value.graphql.ts @@ -0,0 +1,9 @@ +import { gql } from 'graphql-request'; + +export const changeColumnValue = gql` + mutation ChangeColumnValue($boardId: ID!, $itemId: ID!, $columnId: String!, $value: JSON!) { + change_column_value(board_id: $boardId, item_id: $itemId, column_id: $columnId, value: $value) { + id + } + } +`; diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/finalize-asset-upload-tool.test.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/finalize-asset-upload-tool.test.ts new file mode 100644 index 00000000..2c3e93d2 --- /dev/null +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/finalize-asset-upload-tool.test.ts @@ -0,0 +1,103 @@ +import { createMockApiClient } from '../test-utils/mock-api-client'; +import { FinalizeAssetUploadTool } from './finalize-asset-upload-tool'; + +const MOCK_ASSET = { + id: 987654, + filename: 'report.pdf', + content_type: 'application/pdf', + file_size: 1024, + url: '/protected_static/12345/resources/987654/report.pdf', + created_at: '2026-04-17T00:00:00Z', + filelink: 'https://monday.com/files/987654/report.pdf', +}; + +describe('FinalizeAssetUploadTool', () => { + let mocks: ReturnType; + + beforeEach(() => { + mocks = createMockApiClient(); + }); + + it('completes upload, attaches to column, and returns asset details', async () => { + mocks.mockRequest.mockResolvedValueOnce({ complete_upload: MOCK_ASSET }); + mocks.mockRequest.mockResolvedValueOnce({ change_column_value: { id: '42' } }); + + const tool = new FinalizeAssetUploadTool(mocks.mockApiClient); + const result = await tool.execute({ + uploadId: 'uuid-upload-123', + etag: '"abc123etag"', + boardId: '100', + itemId: '42', + columnId: 'file_mkvvv9cm', + }); + + expect(result.content).toEqual({ + asset_id: 987654, + filename: 'report.pdf', + content_type: 'application/pdf', + file_size: 1024, + url: '/protected_static/12345/resources/987654/report.pdf', + filelink: 'https://monday.com/files/987654/report.pdf', + }); + + expect(mocks.mockRequest).toHaveBeenCalledTimes(2); + + expect(mocks.mockRequest).toHaveBeenNthCalledWith( + 1, + expect.anything(), + { + input: { + upload_id: 'uuid-upload-123', + holder: { type: 'ITEM', id: '42' }, + board_id: '100', + parts: [{ part_number: 1, etag: '"abc123etag"' }], + }, + }, + expect.objectContaining({ versionOverride: 'dev' }), + ); + + expect(mocks.mockRequest).toHaveBeenNthCalledWith( + 2, + expect.anything(), + { + boardId: '100', + itemId: '42', + columnId: 'file_mkvvv9cm', + value: JSON.stringify({ + added_file: { + fileType: 'ASSET', + name: 'report.pdf', + assetId: '987654', + }, + }), + }, + ); + }); + + it('propagates complete_upload errors', async () => { + mocks.mockRequest.mockRejectedValueOnce(new Error('Upload not found')); + const tool = new FinalizeAssetUploadTool(mocks.mockApiClient); + + await expect( + tool.execute({ uploadId: 'bad', etag: '"etag"', boardId: '100', itemId: '42', columnId: 'file_mkvvv9cm' }), + ).rejects.toThrow('Upload not found'); + }); + + it('propagates change_column_value errors', async () => { + mocks.mockRequest.mockResolvedValueOnce({ complete_upload: MOCK_ASSET }); + mocks.mockRequest.mockRejectedValueOnce(new Error('Column not found')); + const tool = new FinalizeAssetUploadTool(mocks.mockApiClient); + + await expect( + tool.execute({ uploadId: 'uuid-upload-123', etag: '"abc123etag"', boardId: '100', itemId: '42', columnId: 'bad_col' }), + ).rejects.toThrow('Column not found'); + }); + + it('has correct metadata', () => { + const tool = new FinalizeAssetUploadTool(mocks.mockApiClient); + expect(tool.name).toBe('finalize_asset_upload'); + expect(tool.type).toBe('write'); + expect(tool.getDescription()).toContain('get_asset_upload_url'); + expect(tool.getDescription()).toContain('asset_id'); + }); +}); diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/finalize-asset-upload-tool.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/finalize-asset-upload-tool.ts new file mode 100644 index 00000000..cdfc302a --- /dev/null +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/finalize-asset-upload-tool.ts @@ -0,0 +1,100 @@ +import { z } from 'zod'; +import { ToolInputType, ToolOutputType, ToolType } from '../../../tool'; +import { BaseMondayApiTool, createMondayApiAnnotations } from '../base-monday-api-tool'; +import { completeUploadMutationDev } from './finalize-asset-upload.graphql.dev'; +import { changeColumnValue } from './change-column-value.graphql'; + +export const finalizeAssetUploadSchema = { + uploadId: z.string().describe('The upload_id returned by get_asset_upload_url'), + etag: z.string().describe('The ETag header value from the PUT response when uploading to the presigned URL'), + boardId: z.string().describe("The board's unique identifier"), + itemId: z.string().describe("The item's unique identifier"), + columnId: z.string().describe("The file or doc column's unique identifier to attach the uploaded asset to"), +}; + +interface CompleteUploadMutation { + complete_upload: { + id: number; + filename: string; + content_type: string; + file_size: number; + url: string; + created_at: string; + filelink: string; + }; +} + +interface ChangeColumnValueMutation { + change_column_value?: { id: string }; +} + +export class FinalizeAssetUploadTool extends BaseMondayApiTool { + name = 'finalize_asset_upload'; + type = ToolType.WRITE; + annotations = createMondayApiAnnotations({ + title: 'Finalize Asset Upload', + readOnlyHint: false, + destructiveHint: false, + idempotentHint: false, + }); + + getDescription(): string { + return ( + 'Finalize a file upload and create the asset on monday.com. ' + + 'Call this after uploading the file to the presigned URL from get_asset_upload_url. ' + + 'Requires the etag value from the PUT response headers. ' + + 'Automatically attaches the uploaded asset to the specified file column on the item. ' + + 'Returns the created asset_id.' + ); + } + + getInputSchema(): typeof finalizeAssetUploadSchema { + return finalizeAssetUploadSchema; + } + + protected async executeInternal( + input: ToolInputType, + ): Promise> { + const completeRes = await this.mondayApi.request( + completeUploadMutationDev, + { + input: { + upload_id: input.uploadId, + holder: { type: 'ITEM', id: input.itemId }, + board_id: input.boardId, + parts: [{ part_number: 1, etag: input.etag }], + }, + }, + // complete_upload is only available in the dev schema; remove versionOverride once promoted to stable + { versionOverride: 'dev' }, + ); + + const asset = completeRes.complete_upload; + + const value = JSON.stringify({ + added_file: { + fileType: 'ASSET', + name: asset.filename, + assetId: String(asset.id), + }, + }); + + await this.mondayApi.request(changeColumnValue, { + boardId: input.boardId, + itemId: input.itemId, + columnId: input.columnId, + value, + }); + + return { + content: { + asset_id: asset.id, + filename: asset.filename, + content_type: asset.content_type, + file_size: asset.file_size, + url: asset.url, + filelink: asset.filelink, + }, + }; + } +} diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/finalize-asset-upload.graphql.dev.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/finalize-asset-upload.graphql.dev.ts new file mode 100644 index 00000000..f8f7ad56 --- /dev/null +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/finalize-asset-upload-tool/finalize-asset-upload.graphql.dev.ts @@ -0,0 +1,15 @@ +import { gql } from 'graphql-request'; + +export const completeUploadMutationDev = gql` + mutation CompleteUpload($input: CompleteUploadInput!) { + complete_upload(input: $input) { + id + filename + content_type + file_size + url + created_at + filelink + } + } +`; diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/get-asset-upload-url-tool/get-asset-upload-url-tool.test.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/get-asset-upload-url-tool/get-asset-upload-url-tool.test.ts new file mode 100644 index 00000000..972c55b7 --- /dev/null +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/get-asset-upload-url-tool/get-asset-upload-url-tool.test.ts @@ -0,0 +1,83 @@ +import { createMockApiClient } from '../test-utils/mock-api-client'; +import { GetAssetUploadUrlTool } from './get-asset-upload-url-tool'; + +describe('GetAssetUploadUrlTool', () => { + let mocks: ReturnType; + + beforeEach(() => { + mocks = createMockApiClient(); + }); + + it('returns upload_id, upload_url, and url_expires_at', async () => { + mocks.setResponse({ + create_upload: { + upload_id: 'uuid-123', + parts: [{ part_number: 1, url: 'https://s3.example.com/presigned', size_range_start: 0, size_range_end: 1023 }], + part_size: 1024, + expires_at: '2026-04-17T12:00:00Z', + }, + }); + + const tool = new GetAssetUploadUrlTool(mocks.mockApiClient); + const result = await tool.execute({ fileName: 'test.pdf', contentType: 'application/pdf', fileSize: 1024 }); + + expect(result.content).toEqual({ + upload_id: 'uuid-123', + upload_url: 'https://s3.example.com/presigned', + url_expires_at: '2026-04-17T12:00:00Z', + }); + }); + + it('passes correct variables with versionOverride dev', async () => { + mocks.setResponse({ + create_upload: { + upload_id: 'uuid-456', + parts: [{ part_number: 1, url: 'https://s3.example.com/url2', size_range_start: 0, size_range_end: 2047 }], + part_size: 2048, + expires_at: '2026-04-18T00:00:00Z', + }, + }); + + const tool = new GetAssetUploadUrlTool(mocks.mockApiClient); + await tool.execute({ fileName: 'photo.jpg', contentType: 'image/jpeg', fileSize: 2048 }); + + expect(mocks.mockRequest).toHaveBeenCalledWith( + expect.anything(), + { + input: { + file_name: 'photo.jpg', + content_type: 'image/jpeg', + file_size: 2048, + source: 'mcp', + multipart: false, + }, + }, + expect.objectContaining({ versionOverride: 'dev' }), + ); + }); + + it('throws when parts array is empty', async () => { + mocks.setResponse({ + create_upload: { + upload_id: 'uuid-999', + parts: [], + part_size: 1024, + expires_at: '2026-04-17T12:00:00Z', + }, + }); + + const tool = new GetAssetUploadUrlTool(mocks.mockApiClient); + await expect( + tool.execute({ fileName: 'test.pdf', contentType: 'application/pdf', fileSize: 1024 }), + ).rejects.toThrow('create_upload returned no upload URL'); + }); + + it('has correct metadata', () => { + const tool = new GetAssetUploadUrlTool(mocks.mockApiClient); + expect(tool.name).toBe('get_asset_upload_url'); + expect(tool.type).toBe('write'); + expect(tool.getDescription()).toContain('curl'); + expect(tool.getDescription()).toContain('ETag'); + expect(tool.getDescription()).toContain('finalize_asset_upload'); + }); +}); diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/get-asset-upload-url-tool/get-asset-upload-url-tool.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/get-asset-upload-url-tool/get-asset-upload-url-tool.ts new file mode 100644 index 00000000..a40e110f --- /dev/null +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/get-asset-upload-url-tool/get-asset-upload-url-tool.ts @@ -0,0 +1,80 @@ +import { z } from 'zod'; +import { ToolInputType, ToolOutputType, ToolType } from '../../../tool'; +import { BaseMondayApiTool, createMondayApiAnnotations } from '../base-monday-api-tool'; +import { createUploadMutationDev } from './get-asset-upload-url.graphql.dev'; + +export const getAssetUploadUrlSchema = { + fileName: z.string().describe('The name of the file to upload, including extension (e.g. "report.pdf")'), + contentType: z.string().describe('The MIME type of the file (e.g. "application/pdf", "image/png", "text/plain")'), + fileSize: z.number().int().positive().max(524288000).describe('The file size in bytes. Maximum 500MB (524288000 bytes)'), +}; + +interface CreateUploadMutation { + create_upload: { + upload_id: string; + parts: Array<{ part_number: number; url: string; size_range_start: number; size_range_end: number }>; + part_size: number; + expires_at: string; + }; +} + +export class GetAssetUploadUrlTool extends BaseMondayApiTool { + name = 'get_asset_upload_url'; + type = ToolType.WRITE; + annotations = createMondayApiAnnotations({ + title: 'Get Asset Upload URL', + readOnlyHint: false, + destructiveHint: false, + idempotentHint: false, + }); + + getDescription(): string { + return ( + 'Get a presigned URL to upload a file to monday.com. Returns an upload_id and upload_url.\n\n' + + 'After calling this tool, upload the file to the returned URL using an HTTP PUT request ' + + 'and capture the ETag header from the response:\n\n' + + 'curl -i -X PUT "" \\\n' + + ' -H "Content-Type: " \\\n' + + ' --data-binary @\n\n' + + 'The response includes an ETag header (e.g. ETag: "abc123...") — save this value.\n\n' + + 'Then call finalize_asset_upload with the upload_id, etag, board_id, item_id, and column_id ' + + "to complete the upload and attach the file to an item's file column.\n\n" + + 'Max file size: 500MB.' + ); + } + + getInputSchema(): typeof getAssetUploadUrlSchema { + return getAssetUploadUrlSchema; + } + + protected async executeInternal(input: ToolInputType): Promise> { + const res = await this.mondayApi.request( + createUploadMutationDev, + { + input: { + file_name: input.fileName, + content_type: input.contentType, + file_size: input.fileSize, + source: 'mcp', + multipart: false, + }, + }, + // create_upload is only available in the dev schema; remove versionOverride once promoted to stable + { versionOverride: 'dev' }, + ); + + const upload = res.create_upload; + const uploadUrl = upload.parts[0]?.url; + if (!uploadUrl) { + throw new Error('create_upload returned no upload URL — parts array was empty'); + } + + return { + content: { + upload_id: upload.upload_id, + upload_url: uploadUrl, + url_expires_at: upload.expires_at, + }, + }; + } +} diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/get-asset-upload-url-tool/get-asset-upload-url.graphql.dev.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/get-asset-upload-url-tool/get-asset-upload-url.graphql.dev.ts new file mode 100644 index 00000000..627cbcff --- /dev/null +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/get-asset-upload-url-tool/get-asset-upload-url.graphql.dev.ts @@ -0,0 +1,17 @@ +import { gql } from 'graphql-request'; + +export const createUploadMutationDev = gql` + mutation CreateUpload($input: CreateUploadInput!) { + create_upload(input: $input) { + upload_id + parts { + part_number + url + size_range_start + size_range_end + } + part_size + expires_at + } + } +`; diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/index.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/index.ts index a538945c..16ee3496 100644 --- a/packages/agent-toolkit/src/core/tools/platform-api-tools/index.ts +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/index.ts @@ -60,6 +60,8 @@ import { GetAssetsTool } from './get-assets-tool/get-assets-tool'; import { UserContextTool } from './user-context-tool/user-context-tool'; import { GetNotetakerMeetingsTool } from './get-notetaker-meetings-tool/get-notetaker-meetings-tool'; import { UndoActionTool } from './undo-action-tool/undo-action-tool'; +import { GetAssetUploadUrlTool } from './get-asset-upload-url-tool/get-asset-upload-url-tool'; +import { FinalizeAssetUploadTool } from './finalize-asset-upload-tool/finalize-asset-upload-tool'; import { LinkBoardItemsWorkflowTool } from './link-board-items-workflow-tool/link-board-items-workflow-tool'; import { FetchFileContentTool } from './fetch-file-content-tool/fetch-file-content-tool'; import { GetAgentTool } from './agents-tools/get-agent/get-agent-tool'; @@ -129,6 +131,8 @@ export const allGraphqlApiTools: BaseMondayApiToolConstructor[] = [ ManageObjectSchemaBoardConnectionTool, ManageObjectSchemaColumnsTool, SetObjectSchemaColumnActiveStateTool, + GetAssetUploadUrlTool, + FinalizeAssetUploadTool, LinkBoardItemsWorkflowTool, FetchFileContentTool, // monday Platform Agents (subgraph still on dev API version) @@ -195,6 +199,8 @@ export * from './search-tool/search-tool'; export * from './user-context-tool/user-context-tool'; export * from './update-assets-on-item-tool/update-assets-on-item-tool'; export * from './get-assets-tool/get-assets-tool'; +export * from './get-asset-upload-url-tool/get-asset-upload-url-tool'; +export * from './finalize-asset-upload-tool/finalize-asset-upload-tool'; // Notetaker Tools export * from './get-notetaker-meetings-tool/get-notetaker-meetings-tool'; export * from './fetch-file-content-tool/fetch-file-content-tool'; diff --git a/packages/agent-toolkit/src/monday-graphql/generated/graphql/gql.ts b/packages/agent-toolkit/src/monday-graphql/generated/graphql/gql.ts index 8cff2065..29b833fd 100644 --- a/packages/agent-toolkit/src/monday-graphql/generated/graphql/gql.ts +++ b/packages/agent-toolkit/src/monday-graphql/generated/graphql/gql.ts @@ -36,6 +36,7 @@ type Documents = { "\n mutation CreateDashboard(\n $name: String!\n $workspace_id: ID!\n $board_ids: [ID!]!\n $kind: DashboardKind\n $board_folder_id: ID\n ) {\n create_dashboard(\n name: $name\n workspace_id: $workspace_id\n board_ids: $board_ids\n kind: $kind\n board_folder_id: $board_folder_id\n ) {\n id\n name\n workspace_id\n kind\n board_folder_id\n }\n }\n": typeof types.CreateDashboardDocument, "\n query GetAllWidgetsSchema {\n all_widgets_schema {\n widget_type\n schema\n }\n }\n": typeof types.GetAllWidgetsSchemaDocument, "\n mutation CreateWidget($parent: WidgetParentInput!, $kind: ExternalWidget!, $name: String!, $settings: JSON!) {\n create_widget(parent: $parent, kind: $kind, name: $name, settings: $settings) {\n id\n name\n kind\n parent {\n kind\n id\n }\n }\n }\n": typeof types.CreateWidgetDocument, + "\n mutation ChangeColumnValue($boardId: ID!, $itemId: ID!, $columnId: String!, $value: JSON!) {\n change_column_value(board_id: $boardId, item_id: $itemId, column_id: $columnId, value: $value) {\n id\n }\n }\n": typeof types.ChangeColumnValueDocument, "\n mutation DeleteObjectSchema($id: ID, $name: String) {\n delete_object_schema(id: $id, name: $name) {\n id\n name\n }\n }\n": typeof types.DeleteObjectSchemaDocument, "\n query GetItemAssets($itemId: [ID!]!, $columnId: [String!]!) {\n items(ids: $itemId) {\n assets(column_ids: $columnId) {\n public_url\n name\n file_extension\n }\n }\n }\n": typeof types.GetItemAssetsDocument, "\n query getBoardData($boardId: ID!, $itemsLimit: Int!, $queryParams: ItemsQuery) {\n boards(ids: [$boardId]) {\n id\n name\n items_page(limit: $itemsLimit, query_params: $queryParams) {\n items {\n id\n name\n column_values {\n id\n text\n type\n value\n ... on PeopleValue {\n persons_and_teams {\n id\n kind\n }\n }\n }\n updates {\n id\n creator_id\n text_body\n created_at\n replies {\n id\n text_body\n created_at\n creator_id\n }\n }\n }\n }\n columns {\n id\n title\n type\n settings\n }\n }\n }\n": typeof types.GetBoardDataDocument, @@ -162,6 +163,7 @@ const documents: Documents = { "\n mutation CreateDashboard(\n $name: String!\n $workspace_id: ID!\n $board_ids: [ID!]!\n $kind: DashboardKind\n $board_folder_id: ID\n ) {\n create_dashboard(\n name: $name\n workspace_id: $workspace_id\n board_ids: $board_ids\n kind: $kind\n board_folder_id: $board_folder_id\n ) {\n id\n name\n workspace_id\n kind\n board_folder_id\n }\n }\n": types.CreateDashboardDocument, "\n query GetAllWidgetsSchema {\n all_widgets_schema {\n widget_type\n schema\n }\n }\n": types.GetAllWidgetsSchemaDocument, "\n mutation CreateWidget($parent: WidgetParentInput!, $kind: ExternalWidget!, $name: String!, $settings: JSON!) {\n create_widget(parent: $parent, kind: $kind, name: $name, settings: $settings) {\n id\n name\n kind\n parent {\n kind\n id\n }\n }\n }\n": types.CreateWidgetDocument, + "\n mutation ChangeColumnValue($boardId: ID!, $itemId: ID!, $columnId: String!, $value: JSON!) {\n change_column_value(board_id: $boardId, item_id: $itemId, column_id: $columnId, value: $value) {\n id\n }\n }\n": types.ChangeColumnValueDocument, "\n mutation DeleteObjectSchema($id: ID, $name: String) {\n delete_object_schema(id: $id, name: $name) {\n id\n name\n }\n }\n": types.DeleteObjectSchemaDocument, "\n query GetItemAssets($itemId: [ID!]!, $columnId: [String!]!) {\n items(ids: $itemId) {\n assets(column_ids: $columnId) {\n public_url\n name\n file_extension\n }\n }\n }\n": types.GetItemAssetsDocument, "\n query getBoardData($boardId: ID!, $itemsLimit: Int!, $queryParams: ItemsQuery) {\n boards(ids: [$boardId]) {\n id\n name\n items_page(limit: $itemsLimit, query_params: $queryParams) {\n items {\n id\n name\n column_values {\n id\n text\n type\n value\n ... on PeopleValue {\n persons_and_teams {\n id\n kind\n }\n }\n }\n updates {\n id\n creator_id\n text_body\n created_at\n replies {\n id\n text_body\n created_at\n creator_id\n }\n }\n }\n }\n columns {\n id\n title\n type\n settings\n }\n }\n }\n": types.GetBoardDataDocument, @@ -368,6 +370,10 @@ export function graphql(source: "\n query GetAllWidgetsSchema {\n all_widget * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ export function graphql(source: "\n mutation CreateWidget($parent: WidgetParentInput!, $kind: ExternalWidget!, $name: String!, $settings: JSON!) {\n create_widget(parent: $parent, kind: $kind, name: $name, settings: $settings) {\n id\n name\n kind\n parent {\n kind\n id\n }\n }\n }\n"): (typeof documents)["\n mutation CreateWidget($parent: WidgetParentInput!, $kind: ExternalWidget!, $name: String!, $settings: JSON!) {\n create_widget(parent: $parent, kind: $kind, name: $name, settings: $settings) {\n id\n name\n kind\n parent {\n kind\n id\n }\n }\n }\n"]; +/** + * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function graphql(source: "\n mutation ChangeColumnValue($boardId: ID!, $itemId: ID!, $columnId: String!, $value: JSON!) {\n change_column_value(board_id: $boardId, item_id: $itemId, column_id: $columnId, value: $value) {\n id\n }\n }\n"): (typeof documents)["\n mutation ChangeColumnValue($boardId: ID!, $itemId: ID!, $columnId: String!, $value: JSON!) {\n change_column_value(board_id: $boardId, item_id: $itemId, column_id: $columnId, value: $value) {\n id\n }\n }\n"]; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ diff --git a/packages/agent-toolkit/src/monday-graphql/generated/graphql/graphql.ts b/packages/agent-toolkit/src/monday-graphql/generated/graphql/graphql.ts index f3bf1211..3dea9dea 100644 --- a/packages/agent-toolkit/src/monday-graphql/generated/graphql/graphql.ts +++ b/packages/agent-toolkit/src/monday-graphql/generated/graphql/graphql.ts @@ -11567,6 +11567,16 @@ export type CreateWidgetMutationVariables = Exact<{ export type CreateWidgetMutation = { __typename?: 'Mutation', create_widget?: { __typename?: 'Widget', id?: string | null, name?: string | null, kind?: ExternalWidget | null, parent?: { __typename?: 'WidgetParentOutput', kind?: WidgetParentKind | null, id?: string | null } | null } | null }; +export type ChangeColumnValueMutationVariables = Exact<{ + boardId: Scalars['ID']['input']; + itemId: Scalars['ID']['input']; + columnId: Scalars['String']['input']; + value: Scalars['JSON']['input']; +}>; + + +export type ChangeColumnValueMutation = { __typename?: 'Mutation', change_column_value?: { __typename?: 'Item', id: string } | null }; + export type DeleteObjectSchemaMutationVariables = Exact<{ id?: InputMaybe; name?: InputMaybe; @@ -12394,6 +12404,7 @@ export const CreateWorkspaceDocument = {"kind":"Document","definitions":[{"kind" export const CreateDashboardDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateDashboard"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"workspace_id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"board_ids"}},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kind"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"DashboardKind"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"board_folder_id"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"create_dashboard"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}},{"kind":"Argument","name":{"kind":"Name","value":"workspace_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"workspace_id"}}},{"kind":"Argument","name":{"kind":"Name","value":"board_ids"},"value":{"kind":"Variable","name":{"kind":"Name","value":"board_ids"}}},{"kind":"Argument","name":{"kind":"Name","value":"kind"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kind"}}},{"kind":"Argument","name":{"kind":"Name","value":"board_folder_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"board_folder_id"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"workspace_id"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"board_folder_id"}}]}}]}}]} as unknown as DocumentNode; export const GetAllWidgetsSchemaDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetAllWidgetsSchema"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"all_widgets_schema"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"widget_type"}},{"kind":"Field","name":{"kind":"Name","value":"schema"}}]}}]}}]} as unknown as DocumentNode; export const CreateWidgetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateWidget"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"parent"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"WidgetParentInput"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kind"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ExternalWidget"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"settings"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"JSON"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"create_widget"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"parent"},"value":{"kind":"Variable","name":{"kind":"Name","value":"parent"}}},{"kind":"Argument","name":{"kind":"Name","value":"kind"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kind"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}},{"kind":"Argument","name":{"kind":"Name","value":"settings"},"value":{"kind":"Variable","name":{"kind":"Name","value":"settings"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"parent"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ChangeColumnValueDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"ChangeColumnValue"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"boardId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"itemId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"columnId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"value"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"JSON"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"change_column_value"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"board_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"boardId"}}},{"kind":"Argument","name":{"kind":"Name","value":"item_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"itemId"}}},{"kind":"Argument","name":{"kind":"Name","value":"column_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"columnId"}}},{"kind":"Argument","name":{"kind":"Name","value":"value"},"value":{"kind":"Variable","name":{"kind":"Name","value":"value"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]} as unknown as DocumentNode; export const DeleteObjectSchemaDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteObjectSchema"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"delete_object_schema"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]} as unknown as DocumentNode; export const GetItemAssetsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetItemAssets"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"itemId"}},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"columnId"}},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"items"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"ids"},"value":{"kind":"Variable","name":{"kind":"Name","value":"itemId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"assets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"column_ids"},"value":{"kind":"Variable","name":{"kind":"Name","value":"columnId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"public_url"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"file_extension"}}]}}]}}]}}]} as unknown as DocumentNode; export const GetBoardDataDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"getBoardData"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"boardId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"itemsLimit"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"queryParams"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ItemsQuery"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"boards"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"ids"},"value":{"kind":"ListValue","values":[{"kind":"Variable","name":{"kind":"Name","value":"boardId"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"items_page"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"limit"},"value":{"kind":"Variable","name":{"kind":"Name","value":"itemsLimit"}}},{"kind":"Argument","name":{"kind":"Name","value":"query_params"},"value":{"kind":"Variable","name":{"kind":"Name","value":"queryParams"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"column_values"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"text"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"value"}},{"kind":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PeopleValue"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"persons_and_teams"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"updates"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"creator_id"}},{"kind":"Field","name":{"kind":"Name","value":"text_body"}},{"kind":"Field","name":{"kind":"Name","value":"created_at"}},{"kind":"Field","name":{"kind":"Name","value":"replies"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"text_body"}},{"kind":"Field","name":{"kind":"Name","value":"created_at"}},{"kind":"Field","name":{"kind":"Name","value":"creator_id"}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"columns"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"settings"}}]}}]}}]}}]} as unknown as DocumentNode;