// Generated by notion tool-core codegen-script-types --connections. Do not edit. import type { ConnectionActionInvoker } from "./connection-actions.js" /** * Script input for the "Find shared Box item" effect (`box.findSharedItem`), * derived from its Tool Core definition's call_function input projection. * * Resolve a Box shared link to an item ID and type. */ export type FindSharedItemScriptInput = { /** * The full Box shared link URL. */ sharedLink: string } /** * Canonical Tool Core output for the "Find shared Box item" effect (`box.findSharedItem`). * This is the definition's output schema; the effect's script surface may * re-encode it before returning. */ export type FindSharedItemScriptOutput = { itemId: string /** * One of: `file`, `folder` */ itemType: "file" | "folder" name: string size: number modifiedAt: string owner: string } /** * Script input for the "Load Box file" effect (`box.loadFile`), * derived from its Tool Core definition's call_function input projection. * * Load a Box file by its file ID. */ export type LoadFileScriptInput = { /** * The Box file ID. */ fileId: string } /** * Canonical Tool Core output for the "Load Box file" effect (`box.loadFile`). * This is the definition's output schema; the effect's script surface may * re-encode it before returning. */ export type LoadFileScriptOutput = { /** * Always `box-file` */ type: "box-file" title: string blocks: Array fileId: string } /** * Script input for the "List Box folder" effect (`box.lsFolder`), * derived from its Tool Core definition's call_function input projection. * * List files and subfolders in a Box folder. */ export type LsFolderScriptInput = { /** * The Box folder ID to list contents of. */ folderId: string } /** * Canonical Tool Core output for the "List Box folder" effect (`box.lsFolder`). * This is the definition's output schema; the effect's script surface may * re-encode it before returning. */ export type LsFolderScriptOutput = { items: Array<{ id: string /** * One of: `file`, `folder` */ type: "file" | "folder" name: string size: number modifiedAt: string }> } /** * Script input for the "Search Box" effect (`box.search`), * derived from its Tool Core definition's call_function input projection. * * Search Box via the configured connector. */ export type SearchScriptInput = { /** * A single, focused question to search for. */ question: string /** * Brief keywords capturing the core entities. */ keywords?: string /** * Optional time window. Use only "default", "all_time", a duration matching /^\d+[dwmy]$/ (for example, "7d", "2w", "3m", or "1y"), or a date in "YYYY-MM-DD" format. Do not use natural-language durations or combine units. */ lookback?: string /** * Optional list of Box folder IDs to scope the search to. Use findSharedItem or searchFolders to get folder IDs. */ folderIds?: Array } /** * Canonical Tool Core output for the "Search Box" effect (`box.search`). * This is the definition's output schema; the effect's script surface may * re-encode it before returning. */ export type SearchScriptOutput = { results: Array<{ id: string title: string path: string text: string lastEdited: string isPrivate: boolean pageId: string fileType: string fileId: string }> } /** * Script input for the "Search Box folders" effect (`box.searchFolders`), * derived from its Tool Core definition's call_function input projection. * * Search Box folders by name. */ export type SearchFoldersScriptInput = { /** * The search query for finding folders. */ question: string /** * Optional additional keywords to refine the folder search. */ keywords?: string } /** * Canonical Tool Core output for the "Search Box folders" effect (`box.searchFolders`). * This is the definition's output schema; the effect's script surface may * re-encode it before returning. */ export type SearchFoldersScriptOutput = { results: Array<{ id: string name: string folderId: string }> } export class BoxConnectionClient { constructor(private readonly invoke: ConnectionActionInvoker) {} findSharedItem( args: FindSharedItemScriptInput, ): Promise { return this.invoke("findSharedItem", args) } loadFile(args: LoadFileScriptInput): Promise { return this.invoke("loadFile", args) } lsFolder(args: LsFolderScriptInput): Promise { return this.invoke("lsFolder", args) } search(args: SearchScriptInput): Promise { return this.invoke("search", args) } searchFolders( args: SearchFoldersScriptInput, ): Promise { return this.invoke("searchFolders", args) } }