@getmodus/sdk 0.2.1 → 0.2.2
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/CHANGELOG.md +5 -3
- package/README.md +4 -0
- package/dist/{chunk-UOBVSNOW.js → chunk-OUFN2O5C.js} +124 -93
- package/dist/chunk-OUFN2O5C.js.map +1 -0
- package/dist/{conversations-DoyTcWk6.d.cts → conversations-BP2sI3Q5.d.cts} +108 -90
- package/dist/{conversations-DoyTcWk6.d.ts → conversations-BP2sI3Q5.d.ts} +108 -90
- package/dist/index.cjs +237 -125
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +26 -10
- package/dist/index.d.ts +26 -10
- package/dist/index.js +114 -34
- package/dist/index.js.map +1 -1
- package/dist/management/index.cjs +129 -93
- package/dist/management/index.cjs.map +1 -1
- package/dist/management/index.d.cts +1 -1
- package/dist/management/index.d.ts +1 -1
- package/dist/management/index.js +7 -2
- package/dist/management/index.js.map +1 -1
- package/package.json +2 -1
- package/dist/chunk-UOBVSNOW.js.map +0 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/_generated/operations.ts","../src/_exceptions.ts","../src/_streaming.ts","../src/_generated/write-body-keys.ts","../src/_validation.ts","../src/_chat.ts","../src/_pagination.ts","../src/types/conversations.ts","../src/_auth.ts","../src/_config.ts","../src/_http.ts","../src/_client-base.ts","../src/_openapi-invoke.ts","../src/_retry.ts","../src/_request.ts","../src/resources/agents/runs.ts","../src/resources/agents/workflow-actions.ts","../src/resources/agents.ts","../src/resources/connections.ts","../src/resources/context/custom-items.ts","../src/resources/context/items.ts","../src/resources/context/context.ts","../src/resources/modus/conversations.ts","../src/resources/modus/modus.ts","../src/resources/skills/conversations.ts","../src/resources/skills.ts","../src/resources/suggestions.ts"],"sourcesContent":["/**\n * @getmodus/sdk — official TypeScript client for Modus.\n */\n\nexport type { components, paths, operations } from './_generated/v1.js'\nexport type { OperationId, OperationSpec } from './_generated/operations.js'\nexport { OPERATIONS } from './_generated/operations.js'\n\nexport {\n APIConnectionError,\n AuthenticationError,\n ConflictError,\n InternalServerError,\n ModusError,\n NotFoundError,\n PermissionDeniedError,\n RateLimitError,\n RunCancelledError,\n StreamTimeoutError,\n UnprocessableError,\n ValidationError,\n} from './_exceptions.js'\n\nexport { ChatStream } from './_chat.js'\nexport { Page } from './_pagination.js'\nexport type {\n AssistantContentResetEvent,\n CancelledEvent,\n DoneEvent,\n ErrorEvent,\n RunEvent,\n StreamTimeoutEvent,\n TokenEvent,\n} from './types/runs.js'\nexport type { ChatModel, ChatRequest, ChatResult } from './types/chat.js'\nexport type { ModusOptions } from './_config.js'\nexport type { Skill, SkillStatus, SkillVariation } from './types/skills.js'\nexport type { Agent, AgentType } from './types/agents.js'\nexport type {\n AgentRun,\n AgentRunCreateRequest,\n AgentRunListItem,\n ApprovalScope,\n CancelRunRequest,\n CreateAgentRunRequest,\n EditQueuedRunRequest,\n InterruptRunRequest,\n ModusRunCreateRequest,\n ResumeRunRequest,\n RunStatus,\n RunTimeframe,\n SkillRunCreateRequest,\n WorkflowActionRequest,\n} from './types/agent-runs.js'\nexport type { AgentRunStream } from './resources/agents/runs.js'\nexport type {\n Conversation,\n ConversationKind,\n ConversationListItem,\n Message,\n} from './types/conversations.js'\nexport { conversationSkillId } from './types/conversations.js'\nexport type { Connection } from './types/connections.js'\nexport type { VariationView } from './types/views.js'\nexport type {\n ContextItem,\n ContextItemLookupRow,\n ContextType,\n} from './types/context.js'\nexport type { ContextValueRow } from './types/context-values.js'\nexport type {\n ComposeSkillContextRequest,\n ModusContextComposition,\n ModusContextRequest,\n SkillContextComposition,\n} from './types/context-compose.js'\nexport type {\n RecordSuggestionEventRequest,\n SuggestionEventSource,\n SuggestionEventType,\n SuggestionQuestion,\n} from './types/suggestions.js'\n\nimport { ModusClientBase } from './_client-base.js'\nimport { WorkflowsResource } from './resources/agents.js'\nimport { ConnectionsResource } from './resources/connections.js'\nimport { ContextResource } from './resources/context/context.js'\nimport { ModusResource } from './resources/modus/modus.js'\nimport { ScopesResource } from './resources/skills.js'\nimport { SuggestionsResource } from './resources/suggestions.js'\n\n/** Read / invoke client for Modus scopes, workflows, connections, and more. */\nexport class Modus extends ModusClientBase {\n readonly scopes: ScopesResource\n readonly modus: ModusResource\n readonly workflows: WorkflowsResource\n readonly context: ContextResource\n readonly connections: ConnectionsResource\n readonly suggestions: SuggestionsResource\n\n constructor(options: import('./_config.js').ModusOptions = {}) {\n super(options)\n this.scopes = new ScopesResource(this.http, this.config)\n this.modus = new ModusResource(this.http, this.config)\n this.workflows = new WorkflowsResource(this.http, this.config)\n this.context = new ContextResource(this.http, this.config)\n this.connections = new ConnectionsResource(this.http, this.config)\n this.suggestions = new SuggestionsResource(this.http, this.config)\n }\n}\n","// Auto-generated operation registry. Do not edit by hand.\n\nexport type OperationMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'\n\nexport interface OperationSpec {\n method: OperationMethod\n path: string\n service: string\n serverUrl: string | null\n pathParams: readonly string[]\n queryParams: readonly string[]\n requestSchema: string | null\n responseSchema: string | null\n}\n\nexport const OPERATIONS = {\n \"ConnectionsController_list\": {\n method: \"GET\",\n path: \"/api/v1/connections\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"type\"],\n requestSchema: null,\n responseSchema: \"ListConnectionsResponseDto\",\n },\n \"ContextCreatorsController_createLink\": {\n method: \"POST\",\n path: \"/api/v1/context/links\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateLinkDto\",\n responseSchema: \"CreatedContextItemResponseDto\",\n },\n \"ContextCreatorsController_createNote\": {\n method: \"POST\",\n path: \"/api/v1/context/notes\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateNoteDto\",\n responseSchema: \"CreatedContextItemResponseDto\",\n },\n \"ContextCreatorsController_createSavedQuery\": {\n method: \"POST\",\n path: \"/api/v1/context/saved-queries\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateSavedQueryDto\",\n responseSchema: \"CreatedContextItemResponseDto\",\n },\n \"ContextItemsController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/context/items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"uid\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"DeleteContextItemResponseDto\",\n },\n \"ContextItemsController_get\": {\n method: \"GET\",\n path: \"/api/v1/context/items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"uid\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"ContextItemDto\",\n },\n \"ContextItemsController_list\": {\n method: \"GET\",\n path: \"/api/v1/context/items\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"contextTypes\",\"verificationStatuses\",\"searchQuery\",\"topics\"],\n requestSchema: null,\n responseSchema: \"ListContextItemsResponseDto\",\n },\n \"ContextItemsController_listValues\": {\n method: \"GET\",\n path: \"/api/v1/context/items/{uid}/values\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"uid\"],\n queryParams: [\"contextType\",\"contentKeyPath\",\"pageSize\",\"offset\",\"pageToken\",\"searchQuery\",\"dataPathPrefix\"],\n requestSchema: null,\n responseSchema: \"ListContextItemValuesResponseDto\",\n },\n \"ContextItemsController_lookup\": {\n method: \"POST\",\n path: \"/api/v1/context/items/lookup\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"LookupContextItemDto\",\n responseSchema: \"LookupContextItemResponseDto\",\n },\n \"ContextItemsController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/context/items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"uid\"],\n queryParams: [\"updateMask\"],\n requestSchema: \"UpdateContextItemDto\",\n responseSchema: null,\n },\n \"CustomContextItemsController_batchCreate\": {\n method: \"POST\",\n path: \"/api/v1/context/custom-items/batch\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"BatchCreateCustomContextItemsDto\",\n responseSchema: \"BatchCreateCustomContextItemsResponseDto\",\n },\n \"CustomContextItemsController_create\": {\n method: \"POST\",\n path: \"/api/v1/context/custom-items\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateCustomContextItemDto\",\n responseSchema: \"CreatedCustomContextItemResponseDto\",\n },\n \"CustomContextItemsController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/context/custom-items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"uid\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"DeleteContextItemResponseDto\",\n },\n \"CustomContextItemsController_get\": {\n method: \"GET\",\n path: \"/api/v1/context/custom-items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"uid\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"ContextItemDto\",\n },\n \"CustomContextItemsController_list\": {\n method: \"GET\",\n path: \"/api/v1/context/custom-items\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"contextTypes\",\"verificationStatuses\",\"searchQuery\",\"topics\"],\n requestSchema: null,\n responseSchema: \"ListCustomContextItemsResponseDto\",\n },\n \"CustomContextItemsController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/context/custom-items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"uid\"],\n queryParams: [],\n requestSchema: \"UpdateCustomContextItemDto\",\n responseSchema: null,\n },\n \"EvaluationsController_getConfig\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/evaluations/config\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"EvaluationConfigDto\",\n },\n \"EvaluationsController_getRun\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/evaluations/runs/{runId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\",\"runId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"EvaluationRunWithResultsDto\",\n },\n \"EvaluationsController_listRuns\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/evaluations/runs\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [\"pageSize\",\"pageToken\"],\n requestSchema: null,\n responseSchema: \"ListEvaluationRunsResponseDto\",\n },\n \"EvaluationsController_triggerRun\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/evaluations/runs\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"TriggerEvaluationRunResponseDto\",\n },\n \"EvaluationsController_updateConfig\": {\n method: \"PUT\",\n path: \"/api/v1/scopes/{id}/evaluations/config\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"UpdateEvaluationConfigDto\",\n responseSchema: \"EvaluationConfigDto\",\n },\n \"MemberGroupsController_list\": {\n method: \"GET\",\n path: \"/api/v1/users/member-groups\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [\"pageSize\",\"pageToken\"],\n requestSchema: null,\n responseSchema: \"ListMemberGroupsResponseDto\",\n },\n \"ModusChatController_chat\": {\n method: \"POST\",\n path: \"/api/v1/modus/chat\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"ModusChatRequestDto\",\n responseSchema: \"ModusChatResponseDto\",\n },\n \"ModusChatController_chatContinue\": {\n method: \"POST\",\n path: \"/api/v1/modus/conversations/{threadId}/chat\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"threadId\"],\n queryParams: [],\n requestSchema: \"ModusChatRequestDto\",\n responseSchema: \"ModusChatResponseDto\",\n },\n \"ModusContextController_compose\": {\n method: \"POST\",\n path: \"/api/v1/modus/context\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"ModusContextRequestDto\",\n responseSchema: \"ModusContextResponseDto\",\n },\n \"ModusConversationsController_get\": {\n method: \"GET\",\n path: \"/api/v1/modus/conversations/{threadId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"threadId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"ConversationDto\",\n },\n \"ModusConversationsController_list\": {\n method: \"GET\",\n path: \"/api/v1/modus/conversations\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"page\",\"pageSize\",\"userId\",\"toolName\",\"timeframe\",\"includeTools\",\"kind\"],\n requestSchema: null,\n responseSchema: \"ListConversationsResponseDto\",\n },\n \"ModusRunsController_create\": {\n method: \"POST\",\n path: \"/agent/v1/modus/runs\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"ModusRunDto\",\n responseSchema: null,\n },\n \"OrgMembersController_list\": {\n method: \"GET\",\n path: \"/api/v1/users/org-members\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [\"pageSize\",\"pageToken\"],\n requestSchema: null,\n responseSchema: \"ListOrgMembersResponseDto\",\n },\n \"OrganizationController_deleteOrganization\": {\n method: \"DELETE\",\n path: \"/api/v1/users/organization\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"ResumeRunsController_create\": {\n method: \"POST\",\n path: \"/agent/v1/runs/{runId}/resume\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: \"ResumeRunDto\",\n responseSchema: null,\n },\n \"RunLifecycleController_active\": {\n method: \"GET\",\n path: \"/agent/v1/runs/active\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\"],\n requestSchema: null,\n responseSchema: \"ActiveRunsResponseDto\",\n },\n \"RunLifecycleController_activeBySession\": {\n method: \"POST\",\n path: \"/agent/v1/runs/active-by-session\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"ActiveRunsBySessionDto\",\n responseSchema: \"ActiveRunsBySessionResponseDto\",\n },\n \"RunLifecycleController_cancel\": {\n method: \"POST\",\n path: \"/agent/v1/runs/{runId}/cancel\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: \"CancelRunDto\",\n responseSchema: null,\n },\n \"RunLifecycleController_editQueued\": {\n method: \"POST\",\n path: \"/agent/v1/runs/{runId}/queue-edit\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: \"EditQueuedRunDto\",\n responseSchema: null,\n },\n \"RunLifecycleController_events\": {\n method: \"GET\",\n path: \"/agent/v1/runs/{runId}/events\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"RunLifecycleController_interrupt\": {\n method: \"POST\",\n path: \"/agent/v1/runs/{runId}/interrupt\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: \"InterruptRunDto\",\n responseSchema: null,\n },\n \"RunLifecycleController_stream\": {\n method: \"GET\",\n path: \"/agent/v1/runs/{runId}/stream\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"ScopeChatController_chat\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/chat\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"SkillChatRequestDto\",\n responseSchema: \"SkillChatResponseDto\",\n },\n \"ScopeChatController_chatContinue\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/conversations/{threadId}/chat\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\",\"threadId\"],\n queryParams: [],\n requestSchema: \"SkillChatRequestDto\",\n responseSchema: \"SkillChatResponseDto\",\n },\n \"ScopeContextController_compose\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/context\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"ComposeSkillContextRequestDto\",\n responseSchema: \"ComposeSkillContextResponseDto\",\n },\n \"ScopeConversationsController_get\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/conversations/{threadId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\",\"threadId\"],\n queryParams: [\"messageLimit\",\"beforeMessageIndex\"],\n requestSchema: null,\n responseSchema: \"ConversationDto\",\n },\n \"ScopeConversationsController_list\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/conversations\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [\"pageToken\",\"page\",\"pageSize\",\"userId\",\"toolName\",\"timeframe\",\"includeTools\"],\n requestSchema: null,\n responseSchema: \"ListConversationsResponseDto\",\n },\n \"ScopeMemoriesController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/scopes/{id}/memories/{memoryId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\",\"memoryId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"ScopeMemoriesController_list\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/memories\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [\"pageToken\",\"pageSize\",\"userId\",\"limit\"],\n requestSchema: null,\n responseSchema: \"ListMemoriesResponseDto\",\n },\n \"ScopeMemoriesController_search\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/memories/search\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"SearchMemoriesRequestDto\",\n responseSchema: \"ListMemoriesResponseDto\",\n },\n \"ScopeMemoriesController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/scopes/{id}/memories/{memoryId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\",\"memoryId\"],\n queryParams: [\"updateMask\"],\n requestSchema: \"UpdateMemoryRequestDto\",\n responseSchema: null,\n },\n \"ScopeRunsController_create\": {\n method: \"POST\",\n path: \"/agent/v1/scopes/{id}/runs\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"SkillRunDto\",\n responseSchema: null,\n },\n \"ScopeSupervisionController_get\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/supervision\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [\"view\"],\n requestSchema: null,\n responseSchema: \"SupervisionDto\",\n },\n \"ScopeSupervisionController_set\": {\n method: \"PUT\",\n path: \"/api/v1/scopes/{id}/supervision\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"SetSupervisionRequestDto\",\n responseSchema: \"SupervisionDto\",\n },\n \"ScopeSupervisionController_setActive\": {\n method: \"PUT\",\n path: \"/api/v1/scopes/{id}/supervision/active\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"SetSupervisionRequestDto\",\n responseSchema: \"SupervisionDto\",\n },\n \"ScopesController_acceptOwnershipTransfer\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/transfer-ownership/accept\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_cancelOwnershipTransfer\": {\n method: \"DELETE\",\n path: \"/api/v1/scopes/{id}/transfer-ownership\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_create\": {\n method: \"POST\",\n path: \"/api/v1/scopes\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateSkillDto\",\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/scopes/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"ScopesController_deploy\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/deploy\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"DeploySkillDto\",\n responseSchema: \"DeployResponseDto\",\n },\n \"ScopesController_get\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [\"view\"],\n requestSchema: null,\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_getVariation\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/variations/{variationUid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\",\"variationUid\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_list\": {\n method: \"GET\",\n path: \"/api/v1/scopes\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"view\",\"search\",\"managerId\",\"includeVariation\"],\n requestSchema: null,\n responseSchema: \"ListSkillsResponseDto\",\n },\n \"ScopesController_patchMcpConfig\": {\n method: \"PATCH\",\n path: \"/api/v1/scopes/{id}/mcp-config\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"PatchSkillMcpConfigDto\",\n responseSchema: \"PatchSkillMcpConfigResponseDto\",\n },\n \"ScopesController_requestOwnershipTransfer\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/transfer-ownership\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"TransferOwnershipDto\",\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_restore\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/restore\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/scopes/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [\"updateMask\"],\n requestSchema: \"UpdateSkillDto\",\n responseSchema: \"SkillDto\",\n },\n \"SuggestionsController_listApproved\": {\n method: \"GET\",\n path: \"/api/v1/suggestions/questions\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"skill_id\",\"skill_ids\"],\n requestSchema: null,\n responseSchema: \"ListSuggestionQuestionsResponseDto\",\n },\n \"SuggestionsController_recordEvent\": {\n method: \"POST\",\n path: \"/api/v1/suggestions/questions/{id}/events\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"RecordSuggestionEventDto\",\n responseSchema: null,\n },\n \"UsageController_list\": {\n method: \"GET\",\n path: \"/api/v1/usage\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [\"since\",\"until\",\"rollup\",\"model\",\"group_by\",\"skill_id\",\"agent_id\",\"user_id\",\"interface\"],\n requestSchema: null,\n responseSchema: \"ListUsageResponseDto\",\n },\n \"WorkflowActionsController_cancel\": {\n method: \"POST\",\n path: \"/agent/v1/workflow-actions/{runId}/cancel\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: \"CancelRunDto\",\n responseSchema: null,\n },\n \"WorkflowActionsController_execute\": {\n method: \"POST\",\n path: \"/agent/v1/workflow-actions\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"WorkflowActionDto\",\n responseSchema: null,\n },\n \"WorkflowInterfacesController_add\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/interfaces\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"AddAgentInterfaceDto\",\n responseSchema: \"AgentInterfaceDto\",\n },\n \"WorkflowInterfacesController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/workflows/{id}/interfaces/{interfaceId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\",\"interfaceId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"WorkflowInterfacesController_deleteAll\": {\n method: \"DELETE\",\n path: \"/api/v1/workflows/{id}/interfaces\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"WorkflowInterfacesController_list\": {\n method: \"GET\",\n path: \"/api/v1/workflows/{id}/interfaces\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [\"pageSize\",\"pageToken\"],\n requestSchema: null,\n responseSchema: \"ListAgentInterfacesResponseDto\",\n },\n \"WorkflowInterfacesController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/workflows/{id}/interfaces/{interfaceId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\",\"interfaceId\"],\n queryParams: [\"updateMask\"],\n requestSchema: \"UpdateAgentInterfaceDto\",\n responseSchema: \"AgentInterfaceDto\",\n },\n \"WorkflowRunsController_create\": {\n method: \"POST\",\n path: \"/agent/v1/workflows/{id}/runs\",\n service: \"agent-service\",\n serverUrl: \"https://agent.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"AgentRunDto\",\n responseSchema: null,\n },\n \"WorkflowRunsController_get\": {\n method: \"GET\",\n path: \"/api/v1/workflows/{id}/runs/{runId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\",\"runId\"],\n queryParams: [\"temporalRunId\"],\n requestSchema: null,\n responseSchema: \"GetAutomationRunResponseDto\",\n },\n \"WorkflowRunsController_list\": {\n method: \"GET\",\n path: \"/api/v1/workflows/{id}/runs\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [\"status\",\"timeframe\",\"approvalScope\",\"search\",\"pageSize\",\"pageToken\"],\n requestSchema: null,\n responseSchema: \"ListAutomationRunsResponseDto\",\n },\n \"WorkflowsController_acceptOwnershipTransfer\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/transfer-ownership/accept\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_cancelOwnershipTransfer\": {\n method: \"DELETE\",\n path: \"/api/v1/workflows/{id}/transfer-ownership\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_create\": {\n method: \"POST\",\n path: \"/api/v1/workflows\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateAgentDto\",\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/workflows/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"WorkflowsController_deploy\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/deploy\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"DeployAgentDto\",\n responseSchema: \"AgentDeployResponseDto\",\n },\n \"WorkflowsController_get\": {\n method: \"GET\",\n path: \"/api/v1/workflows/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [\"view\"],\n requestSchema: null,\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_list\": {\n method: \"GET\",\n path: \"/api/v1/workflows\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"view\",\"type\",\"search\",\"includeVariation\"],\n requestSchema: null,\n responseSchema: \"ListAgentsResponseDto\",\n },\n \"WorkflowsController_requestOwnershipTransfer\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/transfer-ownership\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"TransferOwnershipDto\",\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_restore\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/restore\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_toggle\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/toggle\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"ToggleAgentDto\",\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/workflows/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.modus.com\",\n pathParams: [\"id\"],\n queryParams: [\"updateMask\"],\n requestSchema: \"UpdateAgentDto\",\n responseSchema: \"AgentDto\",\n },\n} as const satisfies Record<string, OperationSpec>\n\nexport type OperationId = keyof typeof OPERATIONS\n","export class ModusError extends Error {\n readonly statusCode?: number\n readonly requestId?: string\n readonly responseHeaders?: Record<string, string>\n readonly body?: string\n readonly code?: string\n\n constructor(\n message: string,\n options: {\n statusCode?: number\n requestId?: string\n responseHeaders?: Record<string, string>\n body?: string\n code?: string\n } = {},\n ) {\n super(message)\n this.name = 'ModusError'\n this.message = message\n this.statusCode = options.statusCode\n this.requestId = options.requestId\n this.responseHeaders = options.responseHeaders\n this.body = options.body\n this.code = options.code\n }\n}\n\nexport class APIConnectionError extends ModusError {\n constructor(message: string) {\n super(message)\n this.name = 'APIConnectionError'\n }\n}\n\nexport class AuthenticationError extends ModusError {\n constructor(message: string, options: ConstructorParameters<typeof ModusError>[1] = {}) {\n super(message, { ...options, statusCode: 401 })\n this.name = 'AuthenticationError'\n }\n}\n\nexport class PermissionDeniedError extends ModusError {\n constructor(message: string, options: ConstructorParameters<typeof ModusError>[1] = {}) {\n super(message, { ...options, statusCode: 403 })\n this.name = 'PermissionDeniedError'\n }\n}\n\nexport class NotFoundError extends ModusError {\n constructor(message: string, options: ConstructorParameters<typeof ModusError>[1] = {}) {\n super(message, { ...options, statusCode: 404 })\n this.name = 'NotFoundError'\n }\n}\n\nexport class ConflictError extends ModusError {\n constructor(message: string, options: ConstructorParameters<typeof ModusError>[1] = {}) {\n super(message, { ...options, statusCode: 409 })\n this.name = 'ConflictError'\n }\n}\n\nexport class UnprocessableError extends ModusError {\n readonly errors?: unknown\n\n constructor(\n message: string,\n options: ConstructorParameters<typeof ModusError>[1] & { errors?: unknown } = {},\n ) {\n super(message, { ...options, statusCode: 422 })\n this.name = 'UnprocessableError'\n this.errors = options.errors\n }\n}\n\nexport class RateLimitError extends ModusError {\n readonly retryAfter?: number\n\n constructor(\n message: string,\n options: ConstructorParameters<typeof ModusError>[1] & { retryAfter?: number } = {},\n ) {\n super(message, { ...options, statusCode: 429 })\n this.name = 'RateLimitError'\n this.retryAfter = options.retryAfter\n }\n}\n\nexport class InternalServerError extends ModusError {\n constructor(message: string, statusCode: number, options: ConstructorParameters<typeof ModusError>[1] = {}) {\n super(message, { ...options, statusCode })\n this.name = 'InternalServerError'\n }\n}\n\nexport class RunCancelledError extends ModusError {\n constructor(message = 'Run was cancelled.') {\n super(message)\n this.name = 'RunCancelledError'\n }\n}\n\nexport class StreamTimeoutError extends ModusError {\n constructor(message = 'Stream timed out.') {\n super(message)\n this.name = 'StreamTimeoutError'\n }\n}\n\nexport class ValidationError extends ModusError {\n constructor(message: string) {\n super(message)\n this.name = 'ValidationError'\n }\n}\n","import type {\n AssistantContentResetEvent,\n CancelledEvent,\n DoneEvent,\n ErrorEvent,\n RunEvent,\n StreamTimeoutEvent,\n TokenEvent,\n} from './types/runs.js'\n\nconst SILENTLY_IGNORED = new Set([\n 'heartbeat',\n 'ws_chunk',\n 'unknown',\n 'tool_start',\n 'tool_end',\n 'tool_chunk',\n 'agent_thinking',\n 'warning',\n 'selected_final_content',\n])\n\nfunction parseLine(line: string): Record<string, unknown> | undefined {\n if (!line.startsWith('data:')) return undefined\n const raw = line.slice(5).trimStart()\n if (!raw || raw === '[DONE]') return undefined\n try {\n const data = JSON.parse(raw) as unknown\n if (data && typeof data === 'object' && !Array.isArray(data)) {\n return data as Record<string, unknown>\n }\n } catch {\n return undefined\n }\n return undefined\n}\n\nfunction isAsyncIterable<T>(value: Iterable<T> | AsyncIterable<T>): value is AsyncIterable<T> {\n return Symbol.asyncIterator in Object(value)\n}\n\nfunction* parseData(data: Record<string, unknown>): Generator<RunEvent> {\n const eventType = typeof data.type === 'string' ? data.type : 'unknown'\n\n if (eventType === 'token') {\n const event: TokenEvent = {\n type: 'token',\n content: typeof data.content === 'string' ? data.content : '',\n }\n yield event\n } else if (eventType === 'done') {\n const event: DoneEvent = {\n type: 'done',\n runId: typeof data.runId === 'string' ? data.runId : '',\n threadId: typeof data.threadId === 'string' ? data.threadId : '',\n }\n yield event\n } else if (eventType === 'error') {\n const msg =\n data.error ?? data.message ?? data.content ?? 'Unknown run error'\n const event: ErrorEvent = { type: 'error', message: String(msg) }\n yield event\n } else if (eventType === 'cancelled') {\n const event: CancelledEvent = { type: 'cancelled' }\n yield event\n } else if (eventType === 'stream_timeout') {\n const event: StreamTimeoutEvent = { type: 'stream_timeout' }\n yield event\n } else if (eventType === 'assistant_content_reset') {\n if (typeof data.content !== 'string') return\n const event: AssistantContentResetEvent = {\n type: 'assistant_content_reset',\n content: data.content,\n ...(typeof data.visibleContent === 'string'\n ? { visibleContent: data.visibleContent }\n : {}),\n attempt: typeof data.attempt === 'number' ? data.attempt : 1,\n reason: 'provider_stream_failed',\n }\n yield event\n } else if (!SILENTLY_IGNORED.has(eventType)) {\n // Unknown future event types ignored for forward compatibility.\n return\n }\n}\n\nfunction* parseSyncSseLines(lines: Iterable<string>): Generator<RunEvent> {\n for (const line of lines) {\n const data = parseLine(line)\n if (data !== undefined) yield* parseData(data)\n }\n}\n\nasync function* parseAsyncSseLines(lines: AsyncIterable<string>): AsyncGenerator<RunEvent> {\n for await (const line of lines) {\n const data = parseLine(line)\n if (data !== undefined) yield* parseData(data)\n }\n}\n\n/** Convert raw SSE lines into typed run events (forward-compatible). */\nexport function parseSseStream(lines: Iterable<string>): Generator<RunEvent>\nexport function parseSseStream(lines: AsyncIterable<string>): AsyncGenerator<RunEvent>\nexport function parseSseStream(\n lines: Iterable<string> | AsyncIterable<string>,\n): Generator<RunEvent> | AsyncGenerator<RunEvent> {\n return isAsyncIterable(lines) ? parseAsyncSseLines(lines) : parseSyncSseLines(lines)\n}\n","/** Generated by emit-openapi-write-body-keys.mjs — do not edit. */\nimport type { OperationId } from './operations.js'\n\nexport const WRITE_BODY_ALLOWED_KEYS: Partial<Record<OperationId, readonly string[]>> = {\n ContextCreatorsController_createLink: [\"url\", \"title\", \"isCrawl\", \"pageLimit\"],\n ContextCreatorsController_createNote: [\"title\", \"content\"],\n ContextCreatorsController_createSavedQuery: [\"name\", \"connectionId\", \"query\", \"description\", \"path\"],\n ContextItemsController_lookup: [\"contextType\", \"dataPath\", \"contentProjection\"],\n ContextItemsController_update: [\"contextType\", \"content\", \"description\", \"userFeedback\", \"topics\"],\n CustomContextItemsController_batchCreate: [\"items\"],\n CustomContextItemsController_create: [\"kind\", \"sourceId\", \"sourceName\", \"collectionId\", \"collectionName\", \"externalId\", \"fieldName\", \"name\", \"entityType\", \"description\", \"content\", \"url\", \"attributes\", \"dataType\", \"value\", \"samples\", \"raw\", \"topics\", \"idempotencyKey\", \"access\"],\n CustomContextItemsController_update: [\"name\", \"entityType\", \"description\", \"content\", \"url\", \"attributes\", \"dataType\", \"value\", \"samples\", \"raw\", \"topics\"],\n EvaluationsController_updateConfig: [\"enabled\", \"cadence\", \"judgeModel\", \"judgeGuidance\", \"notifications\"],\n ModusChatController_chat: [\"message\", \"model\"],\n ModusContextController_compose: [\"message\", \"limit\"],\n ModusRunsController_create: [\"message\", \"sessionId\", \"organizationId\", \"version\", \"fileThreadId\", \"config\", \"attachments\", \"userContext\", \"source\", \"runId\", \"subordinateSkillIds\"],\n ResumeRunsController_create: [\"message\", \"sessionId\", \"organizationId\", \"version\", \"fileThreadId\", \"config\", \"attachments\", \"userContext\", \"source\", \"runId\", \"decision\"],\n RunLifecycleController_activeBySession: [\"sessionIds\"],\n RunLifecycleController_cancel: [],\n RunLifecycleController_editQueued: [],\n RunLifecycleController_interrupt: [],\n ScopeChatController_chat: [\"message\", \"model\"],\n ScopeContextController_compose: [\"message\", \"limit\"],\n ScopeMemoriesController_search: [\"query\", \"userId\", \"limit\"],\n ScopeMemoriesController_update: [\"memory\", \"metadata\"],\n ScopeRunsController_create: [\"message\", \"sessionId\", \"organizationId\", \"version\", \"fileThreadId\", \"config\", \"attachments\", \"userContext\", \"source\", \"runId\", \"subordinateSkillIds\"],\n ScopesController_acceptOwnershipTransfer: [],\n ScopesController_create: [\"name\", \"description\", \"expectedOutput\", \"instructions\", \"toolset\", \"model\", \"connectionSet\", \"contextSelections\", \"interfaces\", \"accessConfig\"],\n ScopesController_deploy: [],\n ScopesController_patchMcpConfig: [\"config\"],\n ScopesController_requestOwnershipTransfer: [\"newOwnerUserId\"],\n ScopesController_restore: [],\n ScopesController_update: [\"name\", \"description\", \"expectedOutput\", \"instructions\", \"toolset\", \"model\", \"connectionSet\", \"contextSelections\", \"interfaces\", \"accessConfig\", \"managerId\", \"evaluations\", \"supervisionSubordinateDescriptions\"],\n ScopeSupervisionController_set: [\"subordinateAgentIds\"],\n ScopeSupervisionController_setActive: [\"subordinateAgentIds\"],\n SuggestionsController_recordEvent: [\"event_type\", \"source\", \"skill_id\", \"thread_id\", \"metadata\"],\n WorkflowActionsController_cancel: [],\n WorkflowActionsController_execute: [\"organizationId\", \"sessionId\", \"fileThreadId\", \"workflowAction\", \"previousOutputs\", \"userTimezone\", \"runId\", \"automationId\", \"source\"],\n WorkflowInterfacesController_add: [\"type\", \"name\", \"config\"],\n WorkflowInterfacesController_update: [\"name\", \"config\"],\n WorkflowRunsController_create: [\"message\", \"sessionId\", \"organizationId\", \"version\", \"fileThreadId\", \"config\", \"attachments\", \"userContext\", \"source\", \"runId\"],\n WorkflowsController_acceptOwnershipTransfer: [],\n WorkflowsController_create: [\"name\", \"type\", \"description\", \"trigger\", \"agentSelection\", \"workflowStructure\", \"accessConfig\"],\n WorkflowsController_deploy: [],\n WorkflowsController_requestOwnershipTransfer: [\"newOwnerUserId\"],\n WorkflowsController_restore: [],\n WorkflowsController_toggle: [\"active\"],\n WorkflowsController_update: [\"name\", \"type\", \"description\", \"trigger\", \"agentSelection\", \"workflowStructure\", \"accessConfig\"],\n}\n","import type { OperationId } from './_generated/operations.js'\nimport { WRITE_BODY_ALLOWED_KEYS } from './_generated/write-body-keys.js'\nimport { ValidationError } from './_exceptions.js'\n\nexport const DEFAULT_MAX_PAGE_SIZE = 200\n\nexport function validatePageSize(pageSize: number, maxPageSize?: number): void {\n if (!Number.isInteger(pageSize) || pageSize < 1) {\n throw new Error(`page_size must be a positive int, got ${pageSize}`)\n }\n if (maxPageSize !== undefined && pageSize > maxPageSize) {\n throw new Error(`page_size must be <= ${maxPageSize}, got ${pageSize}`)\n }\n}\n\nexport function validateId(resourceId: number | string, name = 'id'): void {\n if (typeof resourceId === 'string' && !resourceId.trim()) {\n throw new Error(`${name} must be a non-empty string or int`)\n }\n}\n\n// Keep in sync with SkillChatRequestDto.model in the public API contract.\nconst ALLOWED_CHAT_MODELS = new Set([\n 'claude-sonnet-5',\n 'claude-sonnet-4.6',\n 'claude-opus-4.8',\n 'gpt-5.2',\n 'gpt-5.5',\n 'gpt-5-mini',\n 'gpt-oss-120b',\n 'gpt-oss-20b',\n 'qwen3-235b-a22b-2507',\n 'qwen3-coder',\n 'qwen3-32b',\n 'deepseek-chat-v3.1',\n 'minimax-m2.7',\n 'llama-4-maverick',\n 'llama-4-scout',\n 'llama-3.3-70b-instruct',\n 'gemini-3.1-pro-preview',\n 'gemini-3-flash-preview',\n 'grok-4.3-fast',\n 'grok-4.3',\n])\n\nexport function validateChatModel(model: string): void {\n if (!ALLOWED_CHAT_MODELS.has(model)) {\n const supported = [...ALLOWED_CHAT_MODELS].sort().join(', ')\n throw new Error(`Unsupported model ${JSON.stringify(model)}. Choose one of: ${supported}.`)\n }\n}\n\nexport function assertWriteBodyKeys(operationId: OperationId, body: unknown): void {\n const allowed = WRITE_BODY_ALLOWED_KEYS[operationId]\n if (allowed === undefined) return\n if (body === undefined || body === null) return\n if (typeof body !== 'object' || Array.isArray(body)) {\n throw new ValidationError(`Request body must be a plain object for ${operationId}`)\n }\n const allowedSet = new Set(allowed)\n const extra = Object.keys(body as Record<string, unknown>).filter((k) => !allowedSet.has(k))\n if (extra.length > 0) {\n throw new ValidationError(\n `${operationId}: disallowed request body field(s): ${extra.sort().join(', ')}`,\n )\n }\n}\n","import {\n ModusError,\n RunCancelledError,\n StreamTimeoutError,\n} from './_exceptions.js'\nimport type { HttpClient } from './_http.js'\nimport { parseSseStream } from './_streaming.js'\nimport { validateChatModel, validateId } from './_validation.js'\nimport type { ChatModel, ChatResult } from './types/chat.js'\nimport type { RunEvent } from './types/runs.js'\n\nfunction effectiveThreadId(threadId?: string): string | undefined {\n if (threadId === undefined) return undefined\n if (!threadId.trim()) return undefined\n return threadId\n}\n\nfunction chatPath(\n resource: string,\n resourceId: number | string,\n options: { threadId?: string; stream: boolean },\n): string {\n const safeId = encodeURIComponent(String(resourceId))\n const suffix = options.stream ? '/stream' : ''\n const tid = effectiveThreadId(options.threadId)\n if (tid !== undefined) {\n const safeTid = encodeURIComponent(tid)\n return `/api/v1/${resource}/${safeId}/conversations/${safeTid}/chat${suffix}`\n }\n return `/api/v1/${resource}/${safeId}/chat${suffix}`\n}\n\nfunction modusChatPath(options: { threadId?: string; stream: boolean }): string {\n const suffix = options.stream ? '/stream' : ''\n const tid = effectiveThreadId(options.threadId)\n if (tid !== undefined) {\n validateId(tid, 'thread_id')\n return `/api/v1/modus/conversations/${encodeURIComponent(tid)}/chat${suffix}`\n }\n return `/api/v1/modus/chat${suffix}`\n}\n\nfunction chatBody(message: string, model: ChatModel): Record<string, string> {\n return { message, model }\n}\n\nfunction raiseForEvent(event: RunEvent): RunEvent {\n if (event.type === 'error') throw new ModusError(event.message)\n if (event.type === 'cancelled') throw new RunCancelledError()\n if (event.type === 'stream_timeout') throw new StreamTimeoutError()\n return event\n}\n\nexport class ChatStream {\n private final?: ChatResult\n private readonly textParts: string[] = []\n\n constructor(\n private readonly http: HttpClient,\n private readonly path: string,\n private readonly body: Record<string, unknown>,\n ) {}\n\n async *textStream(): AsyncGenerator<string> {\n for await (const event of this.events(false)) {\n if (event.type === 'token') yield event.content\n }\n }\n\n async *eventStream(): AsyncGenerator<RunEvent> {\n yield* this.events(true)\n }\n\n private async *events(supportsReset: boolean): AsyncGenerator<RunEvent> {\n const body = supportsReset\n ? { ...this.body, streamProtocolVersion: 2 }\n : this.body\n for await (const line of this.http.streamPost(this.path, body)) {\n for (const event of parseSseStream([line])) {\n const normalized = raiseForEvent(event)\n if (normalized.type === 'token') this.textParts.push(normalized.content)\n if (normalized.type === 'assistant_content_reset') {\n this.textParts.length = 0\n this.textParts.push(normalized.content)\n }\n if (normalized.type === 'done') {\n this.final = {\n content: this.textParts.join(''),\n threadId: normalized.threadId,\n runId: normalized.runId,\n }\n yield normalized\n return\n }\n yield normalized\n }\n }\n }\n\n getFinalResult(): ChatResult {\n if (this.final === undefined) {\n throw new ModusError(\n 'Stream ended without a done event; call getFinalResult() only after consuming textStream() or eventStream().',\n )\n }\n return this.final\n }\n}\n\nexport async function chatBuffered(\n http: HttpClient,\n resource: string,\n resourceId: number | string,\n message: string,\n options: { model: ChatModel; threadId?: string },\n): Promise<ChatResult> {\n validateId(resourceId, `${resource}_id`)\n validateChatModel(options.model)\n const path = chatPath(resource, resourceId, {\n threadId: options.threadId,\n stream: false,\n })\n const data = await http.post(path, chatBody(message, options.model))\n return data as ChatResult\n}\n\nexport function chatStreamSession(\n http: HttpClient,\n resource: string,\n resourceId: number | string,\n message: string,\n options: { model: ChatModel; threadId?: string },\n): ChatStream {\n validateId(resourceId, `${resource}_id`)\n validateChatModel(options.model)\n const path = chatPath(resource, resourceId, {\n threadId: options.threadId,\n stream: true,\n })\n return new ChatStream(http, path, chatBody(message, options.model))\n}\n\nexport async function modusChatBuffered(\n http: HttpClient,\n message: string,\n options: { model: ChatModel; threadId?: string },\n): Promise<ChatResult> {\n validateChatModel(options.model)\n const path = modusChatPath({ threadId: options.threadId, stream: false })\n const data = await http.post(path, chatBody(message, options.model))\n return data as ChatResult\n}\n\nexport function modusChatStreamSession(\n http: HttpClient,\n message: string,\n options: { model: ChatModel; threadId?: string },\n): ChatStream {\n validateChatModel(options.model)\n const path = modusChatPath({ threadId: options.threadId, stream: true })\n return new ChatStream(http, path, chatBody(message, options.model))\n}\n","import { ModusError } from './_exceptions.js'\n\nexport class Page<T> {\n readonly items: T[]\n readonly nextPageToken?: string\n private readonly fetchPage: (token: string) => Page<T> | Promise<Page<T>>\n\n constructor(\n items: T[],\n nextPageToken: string | undefined,\n fetchPage: (token: string) => Page<T> | Promise<Page<T>>,\n ) {\n this.items = items\n this.nextPageToken = normalizePageToken(nextPageToken)\n this.fetchPage = fetchPage\n }\n\n hasNextPage(): boolean {\n return this.nextPageToken !== undefined\n }\n\n async getNextPage(): Promise<Page<T>> {\n if (this.nextPageToken === undefined) {\n throw new Error(\n 'No next page available. Check hasNextPage() before calling getNextPage().',\n )\n }\n return this.fetchPage(this.nextPageToken)\n }\n\n async *autoPagingIter(): AsyncGenerator<T> {\n for (const item of this.items) yield item\n let nextPageToken = this.nextPageToken\n while (nextPageToken !== undefined) {\n const page = await this.fetchPage(nextPageToken)\n for (const item of page.items) yield item\n nextPageToken = page.nextPageToken\n }\n }\n\n [Symbol.iterator](): Iterator<T> {\n return this.items[Symbol.iterator]()\n }\n}\n\nexport function normalizePageToken(token?: string | null): string | undefined {\n if (token === undefined || token === null || !String(token).trim()) return undefined\n return token\n}\n\nexport function aipListParams(\n pageSize: number,\n pageToken?: string,\n extra: Record<string, unknown> = {},\n): Record<string, unknown> {\n const params: Record<string, unknown> = { pageSize, ...extra }\n const token = normalizePageToken(pageToken)\n if (token !== undefined) params.pageToken = token\n return params\n}\n\nexport function nextPageTokenFromResponse(data: Record<string, unknown>): string | undefined {\n return normalizePageToken(\n typeof data.nextPageToken === 'string' ? data.nextPageToken : undefined,\n )\n}\n\nexport function requireItemsList(data: Record<string, unknown>, itemsKey: string): unknown[] {\n const value = data[itemsKey]\n if (!Array.isArray(value)) {\n throw new ModusError(\n `Unexpected list response shape: ${itemsKey} must be a list, got ${typeof value}. This is likely a backend error.`,\n )\n }\n return value\n}\n\nexport function buildAipPage<T>(\n data: Record<string, unknown>,\n itemsKey: string,\n mapItem: (raw: unknown) => T,\n fetchPage: (token: string) => Page<T> | Promise<Page<T>>,\n): Page<T> {\n if (typeof data !== 'object' || data === null || !(itemsKey in data)) {\n throw new ModusError(\n `Unexpected list response shape: missing ${itemsKey}. Got: ${typeof data}. This is likely a backend error.`,\n )\n }\n const items = requireItemsList(data, itemsKey).map(mapItem)\n return new Page(items, nextPageTokenFromResponse(data), fetchPage)\n}\n","import type { components } from '../_generated/v1.js'\n\nexport type Conversation = components['schemas']['ConversationDto']\nexport type ConversationListItem = components['schemas']['ConversationListItemDto']\nexport type Message = components['schemas']['ConversationMessageDto']\nexport type ConversationKind = 'all' | 'modus' | 'skills'\n\n/** Skill id for a list item, or undefined for direct Modus chats (skillId 0). */\nexport function conversationSkillId(item: ConversationListItem): number | undefined {\n return item.skillId === 0 ? undefined : item.skillId\n}\n","import { AuthenticationError } from './_exceptions.js'\n\nconst ENV_API_KEY = 'MODUS_API_KEY'\nconst ENV_BASE_URL = 'MODUS_BASE_URL'\nconst ENV_TIMEOUT = 'MODUS_TIMEOUT'\nconst ENV_MAX_RETRIES = 'MODUS_MAX_RETRIES'\nconst KEY_PREFIX = 'modus_'\n\nexport function resolveApiKey(apiKey?: string): string {\n const key = apiKey ?? process.env[ENV_API_KEY]\n if (!key) {\n throw new AuthenticationError(\n `No API key provided. Pass apiKey or set the ${ENV_API_KEY} environment variable. ` +\n 'Create a token at app.modus.com → Settings → API Tokens.',\n )\n }\n if (!key.startsWith(KEY_PREFIX)) {\n throw new AuthenticationError(\n `Invalid API key format. Modus API keys start with '${KEY_PREFIX}'. ` +\n 'Create a token at app.modus.com → Settings → API Tokens.',\n )\n }\n return key\n}\n\nexport function resolveBaseUrl(baseUrl?: string): string | undefined {\n return baseUrl ?? process.env[ENV_BASE_URL] ?? undefined\n}\n\nexport function resolveTimeoutMs(explicitMs?: number): number | undefined {\n if (explicitMs !== undefined) return explicitMs\n const raw = process.env[ENV_TIMEOUT]\n if (raw === undefined) return undefined\n const seconds = Number(raw)\n return Number.isFinite(seconds) ? seconds * 1000 : undefined\n}\n\nexport function resolveMaxRetries(explicit?: number): number | undefined {\n if (explicit !== undefined) {\n if (explicit < 0) throw new Error(`max_retries must be >= 0, got ${explicit}`)\n return explicit\n }\n const raw = process.env[ENV_MAX_RETRIES]\n if (raw === undefined) return undefined\n const value = Number.parseInt(raw, 10)\n return Number.isFinite(value) && value >= 0 ? value : undefined\n}\n\nexport function authHeaders(apiKey: string): Record<string, string> {\n return { Authorization: `Bearer ${apiKey}` }\n}\n","import {\n resolveApiKey,\n resolveBaseUrl,\n resolveMaxRetries,\n resolveTimeoutMs,\n} from './_auth.js'\n\nexport const DEFAULT_BASE_URL = 'https://api.modus.com'\nexport const DEFAULT_TIMEOUT_MS = 300_000\nexport const DEFAULT_MAX_RETRIES = 2\n\nexport interface ModusOptions {\n apiKey?: string\n baseUrl?: string\n /**\n * Override service-specific API origins, for example:\n * `{ 'agent-service': 'http://localhost:3130' }`.\n */\n baseUrls?: Record<string, string>\n /** Request timeout in milliseconds. */\n timeoutMs?: number\n maxRetries?: number\n /** Test injection only. */\n fetch?: typeof fetch\n}\n\nexport interface ModusConfig {\n readonly apiKey: string\n readonly baseUrl: string\n readonly baseUrls: Readonly<Record<string, string>>\n readonly timeoutMs: number\n readonly maxRetries: number\n readonly fetch: typeof fetch\n}\n\nfunction normalizeBaseUrl(baseUrl: string): string {\n return baseUrl.replace(/\\/$/, '')\n}\n\nfunction normalizeBaseUrls(baseUrls: Record<string, string> | undefined): Record<string, string> {\n return Object.fromEntries(\n Object.entries(baseUrls ?? {}).map(([service, baseUrl]) => [\n service,\n normalizeBaseUrl(baseUrl),\n ]),\n )\n}\n\nexport function createModusConfig(options: ModusOptions = {}): ModusConfig {\n const maxRetries = resolveMaxRetries(options.maxRetries) ?? DEFAULT_MAX_RETRIES\n if (!Number.isInteger(maxRetries) || maxRetries < 0) {\n throw new Error(`max_retries must be a non-negative int, got ${maxRetries}`)\n }\n const baseUrl = normalizeBaseUrl(resolveBaseUrl(options.baseUrl) ?? DEFAULT_BASE_URL)\n return Object.freeze({\n apiKey: resolveApiKey(options.apiKey),\n baseUrl,\n baseUrls: Object.freeze({ 'modus-api': baseUrl, ...normalizeBaseUrls(options.baseUrls) }),\n timeoutMs: resolveTimeoutMs(options.timeoutMs) ?? DEFAULT_TIMEOUT_MS,\n maxRetries,\n fetch: options.fetch ?? globalThis.fetch.bind(globalThis),\n })\n}\n\nexport function resolveServiceBaseUrl(\n config: ModusConfig,\n service: string,\n generatedBaseUrl?: string | null,\n): string {\n return config.baseUrls[service] ?? generatedBaseUrl ?? config.baseUrl\n}\n\nexport function formatConfigForLog(config: ModusConfig): string {\n const masked = config.apiKey.length > 10 ? `${config.apiKey.slice(0, 10)}***` : '***'\n return `ModusConfig(apiKey=${JSON.stringify(masked)}, baseUrl=${JSON.stringify(config.baseUrl)}, timeoutMs=${config.timeoutMs}, maxRetries=${config.maxRetries})`\n}\n","import { authHeaders } from './_auth.js'\nimport type { ModusConfig } from './_config.js'\nimport {\n APIConnectionError,\n AuthenticationError,\n ConflictError,\n InternalServerError,\n ModusError,\n NotFoundError,\n PermissionDeniedError,\n RateLimitError,\n UnprocessableError,\n} from './_exceptions.js'\n\nconst USER_AGENT = `modus-typescript/${__SDK_VERSION__} (node/${process.version}; ${process.platform})`\n\ntype QueryValue = string | number | boolean | null | undefined | readonly (string | number)[]\ntype QueryParams = Record<string, QueryValue>\ntype RequestOptions = {\n baseUrl?: string\n headers?: Record<string, string>\n}\n\nfunction buildUrl(baseUrl: string, path: string, params?: QueryParams): string {\n const url = new URL(path.startsWith('/') ? path : `/${path}`, baseUrl)\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null) continue\n if (Array.isArray(value)) {\n for (const item of value) url.searchParams.append(key, String(item))\n } else {\n url.searchParams.set(key, String(value))\n }\n }\n }\n return url.toString()\n}\n\nfunction headersToRecord(headers: Headers): Record<string, string> {\n const out: Record<string, string> = {}\n headers.forEach((value, key) => {\n out[key] = value\n })\n return out\n}\n\nfunction messageFromBody(raw: string, statusCode: number): string {\n if (!raw) return `HTTP ${statusCode}`\n try {\n const body = JSON.parse(raw) as unknown\n if (body && typeof body === 'object') {\n const record = body as Record<string, unknown>\n const envelope = record.error\n if (envelope && typeof envelope === 'object') {\n const msg = (envelope as Record<string, unknown>).message\n if (typeof msg === 'string' && msg) return msg\n }\n const msg = record.message ?? record.error\n if (Array.isArray(msg)) return msg.map(String).join('; ')\n if (typeof msg === 'string' && msg) return msg\n }\n } catch {\n // non-JSON body\n }\n return raw\n}\n\nfunction errorCodeFromBody(raw: string): string | undefined {\n try {\n const body = JSON.parse(raw) as { error?: { code?: string } }\n return typeof body.error?.code === 'string' ? body.error.code : undefined\n } catch {\n return undefined\n }\n}\n\nexport function raiseForStatus(response: Response, body: string): void {\n if (response.ok) return\n const message = messageFromBody(body, response.status)\n const requestId =\n response.headers.get('x-request-id') ?? response.headers.get('X-Request-ID') ?? undefined\n const headers = headersToRecord(response.headers)\n const code = errorCodeFromBody(body)\n const base = { requestId, responseHeaders: headers, body, code }\n\n switch (response.status) {\n case 401:\n throw new AuthenticationError(message, base)\n case 403:\n throw new PermissionDeniedError(message, base)\n case 404:\n throw new NotFoundError(message, base)\n case 409:\n throw new ConflictError(message, base)\n case 422: {\n let errors: unknown\n try {\n errors = JSON.parse(body)\n } catch {\n errors = undefined\n }\n throw new UnprocessableError(message, { ...base, errors })\n }\n case 429: {\n const retryHeader = response.headers.get('retry-after') ?? ''\n const retryAfter = /^\\d+$/.test(retryHeader) ? Number.parseInt(retryHeader, 10) : undefined\n throw new RateLimitError(message, { ...base, retryAfter })\n }\n default:\n if (response.status >= 500) {\n throw new InternalServerError(message, response.status, base)\n }\n throw new ModusError(message, { ...base, statusCode: response.status })\n }\n}\n\nfunction wrapNetworkError(error: unknown, baseUrl: string): APIConnectionError {\n const detail = error instanceof Error ? error.message : String(error)\n return new APIConnectionError(\n `Network error communicating with Modus API at ${JSON.stringify(baseUrl)}: ${detail}. ` +\n 'Check connectivity and that baseUrl is correct.',\n )\n}\n\nasync function readBody(response: Response): Promise<string> {\n return response.text()\n}\n\nexport class HttpClient {\n readonly config: ModusConfig\n\n constructor(config: ModusConfig) {\n this.config = config\n }\n\n private defaultHeaders(): Record<string, string> {\n return {\n ...authHeaders(this.config.apiKey),\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'User-Agent': USER_AGENT,\n }\n }\n\n private async request(\n method: string,\n path: string,\n options: { params?: QueryParams; json?: unknown } & RequestOptions = {},\n ): Promise<unknown> {\n const baseUrl = options.baseUrl ?? this.config.baseUrl\n const url = buildUrl(baseUrl, path, options.params)\n try {\n const response = await this.config.fetch(url, {\n method,\n headers: { ...this.defaultHeaders(), ...options.headers },\n body: options.json !== undefined ? JSON.stringify(options.json) : undefined,\n signal: AbortSignal.timeout(this.config.timeoutMs),\n })\n const body = await readBody(response)\n raiseForStatus(response, body)\n if (response.status === 204 || !body) return null\n return JSON.parse(body) as unknown\n } catch (error) {\n if (error instanceof ModusError) throw error\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw wrapNetworkError(new Error('Request timed out'), baseUrl)\n }\n throw wrapNetworkError(error, baseUrl)\n }\n }\n\n get(path: string, params?: QueryParams, options: RequestOptions = {}): Promise<unknown> {\n return this.request('GET', path, { params, ...options })\n }\n\n post(path: string, json?: unknown, options: RequestOptions = {}): Promise<unknown> {\n return this.request('POST', path, { json, ...options })\n }\n\n patch(\n path: string,\n json?: unknown,\n params?: QueryParams,\n options: RequestOptions = {},\n ): Promise<unknown> {\n return this.request('PATCH', path, { json, params, ...options })\n }\n\n delete(path: string, options: RequestOptions = {}): Promise<unknown> {\n return this.request('DELETE', path, options)\n }\n\n private async *stream(\n method: 'GET' | 'POST',\n path: string,\n options: { json?: unknown; params?: QueryParams } & RequestOptions = {},\n ): AsyncGenerator<string> {\n const baseUrl = options.baseUrl ?? this.config.baseUrl\n const url = buildUrl(baseUrl, path, options.params)\n try {\n const response = await this.config.fetch(url, {\n method,\n headers: { ...this.defaultHeaders(), ...options.headers },\n body: options.json !== undefined ? JSON.stringify(options.json) : undefined,\n signal: AbortSignal.timeout(this.config.timeoutMs),\n })\n if (!response.ok) {\n const body = await readBody(response)\n raiseForStatus(response, body)\n return\n }\n if (!response.body) return\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let buffer = ''\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n buffer += decoder.decode(value, { stream: true })\n const lines = buffer.split('\\n')\n buffer = lines.pop() ?? ''\n for (const line of lines) {\n if (line.trim()) yield line\n }\n }\n if (buffer.trim()) yield buffer\n } catch (error) {\n if (error instanceof ModusError) throw error\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw wrapNetworkError(new Error('Request timed out'), baseUrl)\n }\n throw wrapNetworkError(error, baseUrl)\n }\n }\n\n streamGet(path: string, params?: QueryParams, options: RequestOptions = {}): AsyncGenerator<string> {\n return this.stream('GET', path, { params, ...options })\n }\n\n streamPost(path: string, json?: unknown, options: RequestOptions = {}): AsyncGenerator<string> {\n return this.stream('POST', path, { json, ...options })\n }\n}\n","import { createModusConfig, formatConfigForLog, type ModusOptions } from './_config.js'\nimport type { HttpClient } from './_http.js'\nimport { HttpClient as HttpClientImpl } from './_http.js'\n\n/**\n * Shared client wiring for Modus and ModusManagement.\n * Resources attach in Phase 5.\n */\nexport abstract class ModusClientBase {\n protected readonly _config: ReturnType<typeof createModusConfig>\n protected readonly _http: HttpClient\n\n constructor(options: ModusOptions = {}) {\n this._config = createModusConfig(options)\n this._http = new HttpClientImpl(this._config)\n }\n\n get config(): Readonly<typeof this._config> {\n return this._config\n }\n\n /** @internal */\n get http(): HttpClient {\n return this._http\n }\n\n toString(): string {\n return formatConfigForLog(this._config)\n }\n}\n","import { resolveServiceBaseUrl } from './_config.js'\nimport { OPERATIONS, type OperationId, type OperationSpec } from './_generated/operations.js'\nimport type { HttpClient } from './_http.js'\n\nexport function getOperation(operationId: string): OperationSpec {\n if (!(operationId in OPERATIONS)) {\n throw new Error(\n `Unknown API operation ${JSON.stringify(operationId)}. Upgrade @getmodus/sdk or report a version mismatch.`,\n )\n }\n return OPERATIONS[operationId as OperationId]\n}\n\nfunction formatPath(template: string, pathParams: Record<string, unknown>): string {\n return template\n .split('/')\n .map((segment) => {\n if (!segment.startsWith('{') || !segment.endsWith('}')) return segment\n const key = segment.slice(1, -1)\n if (!(key in pathParams)) {\n throw new Error(`Missing path parameter ${JSON.stringify(key)} for ${JSON.stringify(template)}`)\n }\n return encodeURIComponent(String(pathParams[key]))\n })\n .join('/')\n}\n\nexport function operationBaseUrl(http: HttpClient, operation: OperationSpec): string {\n return resolveServiceBaseUrl(http.config, operation.service, operation.serverUrl)\n}\n\nexport function formatOperationPath(\n operationId: OperationId,\n pathParams: Record<string, unknown> = {},\n): string {\n return formatPath(getOperation(operationId).path, pathParams)\n}\n\ntype QueryValue =\n | string\n | number\n | boolean\n | null\n | undefined\n | readonly (string | number)[]\n\nexport async function invokeOperation(\n http: HttpClient,\n operationId: OperationId,\n options: {\n pathParams?: Record<string, unknown>\n query?: Record<string, QueryValue>\n jsonBody?: unknown\n headers?: Record<string, string>\n } = {},\n): Promise<unknown> {\n const op = getOperation(operationId)\n const path = formatPath(op.path, options.pathParams ?? {})\n const params = options.query\n const requestOptions = {\n baseUrl: operationBaseUrl(http, op),\n headers: options.headers,\n }\n\n switch (op.method) {\n case 'GET':\n return http.get(path, params, requestOptions)\n case 'POST':\n return http.post(path, options.jsonBody, requestOptions)\n case 'PATCH':\n return http.patch(path, options.jsonBody, params, requestOptions)\n case 'DELETE':\n return http.delete(path, requestOptions)\n default:\n throw new Error(`Unsupported HTTP method ${JSON.stringify(op.method)}`)\n }\n}\n","import {\n APIConnectionError,\n InternalServerError,\n NotFoundError,\n RateLimitError,\n} from './_exceptions.js'\n\nconst DEPLOY_NOT_FOUND_BACKOFF_MS = 500\nconst MAX_DEPLOY_NOT_FOUND_RETRIES = 1\n\nexport interface WithRetryOptions {\n /** Read-after-write on deploy; one short retry on 404. */\n retryNotFoundOnDeploy?: boolean\n}\n\nconst RETRYABLE = [RateLimitError, InternalServerError, APIConnectionError] as const\n\nfunction isRetryable(error: unknown): error is InstanceType<(typeof RETRYABLE)[number]> {\n return RETRYABLE.some((Cls) => error instanceof Cls)\n}\n\nfunction backoffSeconds(attempt: number, error: unknown): number {\n if (error instanceof RateLimitError && error.retryAfter !== undefined) {\n return Math.max(0, error.retryAfter)\n }\n if (attempt === 0) return 0\n return Math.max(0.5, 2 ** (attempt - 1) + (Math.random() * 0.6 - 0.3))\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nexport async function withRetry<T>(\n fn: () => Promise<T>,\n maxRetries: number,\n options: WithRetryOptions = {},\n): Promise<T> {\n let deployNotFoundRetries = 0\n let attempt = 0\n while (true) {\n try {\n return await fn()\n } catch (error) {\n if (\n options.retryNotFoundOnDeploy &&\n error instanceof NotFoundError &&\n deployNotFoundRetries < MAX_DEPLOY_NOT_FOUND_RETRIES\n ) {\n deployNotFoundRetries++\n await sleep(DEPLOY_NOT_FOUND_BACKOFF_MS)\n continue\n }\n if (!isRetryable(error) || attempt >= maxRetries) throw error\n await sleep(backoffSeconds(attempt, error) * 1000)\n attempt++\n }\n }\n}\n","import type { ModusConfig } from './_config.js'\nimport type { OperationId } from './_generated/operations.js'\nimport type { HttpClient } from './_http.js'\nimport { invokeOperation } from './_openapi-invoke.js'\nimport { withRetry } from './_retry.js'\nimport { assertWriteBodyKeys } from './_validation.js'\n\nexport async function invokeWithRetry(\n config: ModusConfig,\n http: HttpClient,\n operationId: OperationId,\n options: {\n pathParams?: Record<string, unknown>\n query?: Record<string, string | number | boolean | readonly (string | number)[] | undefined | null>\n jsonBody?: unknown\n headers?: Record<string, string>\n } = {},\n): Promise<unknown> {\n if (options.jsonBody !== undefined) {\n assertWriteBodyKeys(operationId, options.jsonBody)\n }\n return withRetry(() => invokeOperation(http, operationId, options), config.maxRetries, {\n retryNotFoundOnDeploy: operationId.endsWith('_deploy'),\n })\n}\n\nexport function omitUndefined<T extends Record<string, unknown>>(obj: T): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(obj).filter((entry): entry is [string, unknown] => entry[1] !== undefined),\n )\n}\n\nexport function asRecord(data: unknown): Record<string, unknown> {\n if (typeof data === 'object' && data !== null && !Array.isArray(data)) {\n return data as Record<string, unknown>\n }\n throw new Error(`Expected object response, got ${typeof data}`)\n}\n","import type { ModusConfig } from '../../_config.js'\nimport { ModusError } from '../../_exceptions.js'\nimport type { OperationId } from '../../_generated/operations.js'\nimport {\n formatOperationPath,\n getOperation,\n operationBaseUrl,\n} from '../../_openapi-invoke.js'\nimport type { HttpClient } from '../../_http.js'\nimport { Page, normalizePageToken } from '../../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../../_request.js'\nimport { parseSseStream } from '../../_streaming.js'\nimport { validateId, validatePageSize } from '../../_validation.js'\nimport type {\n AgentRun,\n AgentRunListItem,\n AgentRunCreateRequest,\n ApprovalScope,\n CreateAgentRunRequest,\n ModusRunCreateRequest,\n ResumeRunRequest,\n RunStatus,\n RunTimeframe,\n SkillRunCreateRequest,\n} from '../../types/agent-runs.js'\nimport type { ActiveConversationRun, RunEvent } from '../../types/runs.js'\n\nconst RUNS_MAX_PAGE_SIZE = 100\n\nfunction runsListParams(\n pageSize: number,\n pageToken: string | undefined,\n status?: RunStatus,\n timeframe?: RunTimeframe,\n approvalScope?: ApprovalScope,\n search?: string,\n): Record<string, string | number | boolean | undefined | null> {\n const params: Record<string, string | number | boolean | undefined | null> = { pageSize }\n const token = normalizePageToken(pageToken)\n if (token !== undefined) params.pageToken = token\n if (status !== undefined) params.status = status\n if (timeframe !== undefined) params.timeframe = timeframe\n if (approvalScope !== undefined) params.approvalScope = approvalScope\n if (search !== undefined) params.search = search\n return params\n}\n\nfunction activeRunsParams(\n pageSize: number,\n pageToken: string | undefined,\n): Record<string, string | number> {\n const params: Record<string, string | number> = { pageSize }\n const token = normalizePageToken(pageToken)\n if (token !== undefined) params.pageToken = token\n return params\n}\n\nfunction parseRun(raw: unknown): AgentRun {\n return raw as AgentRun\n}\n\nfunction parseActiveRunsArray(raw: unknown): ActiveConversationRun[] {\n const data = asRecord(raw)\n const runs = data.runs\n if (!Array.isArray(runs)) {\n throw new ModusError(\n `Unexpected active runs response shape: runs must be a list, got ${typeof runs}.`,\n )\n }\n return runs as ActiveConversationRun[]\n}\n\nfunction parseActiveRunsPage(\n raw: unknown,\n fetchPage: (token: string) => Promise<Page<ActiveConversationRun>>,\n): Page<ActiveConversationRun> {\n const data = asRecord(raw)\n const runs = data.runs\n if (!Array.isArray(runs)) {\n throw new ModusError(\n `Unexpected active runs response shape: runs must be a list, got ${typeof runs}.`,\n )\n }\n return new Page(\n runs as ActiveConversationRun[],\n normalizePageToken(\n typeof data.nextPageToken === 'string' ? data.nextPageToken : undefined,\n ),\n fetchPage,\n )\n}\n\nfunction randomRunId(): string {\n return crypto.randomUUID()\n}\n\nexport interface AgentRunStream {\n readonly runId: string\n readonly events: AsyncIterable<RunEvent>\n}\n\nexport class WorkflowRunsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(\n workflowId: number | string,\n options: {\n pageSize?: number\n pageToken?: string\n status?: RunStatus\n timeframe?: RunTimeframe\n approvalScope?: ApprovalScope\n search?: string\n } = {},\n ): Promise<Page<AgentRunListItem>> {\n validateId(workflowId, 'workflow_id')\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize, RUNS_MAX_PAGE_SIZE)\n return this.listPage(workflowId, pageSize, options.pageToken, options)\n }\n\n private async listPage(\n workflowId: number | string,\n pageSize: number,\n pageToken: string | undefined,\n filters: {\n status?: RunStatus\n timeframe?: RunTimeframe\n approvalScope?: ApprovalScope\n search?: string\n },\n ): Promise<Page<AgentRunListItem>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'WorkflowRunsController_list', {\n pathParams: { id: workflowId },\n query: runsListParams(\n pageSize,\n pageToken,\n filters.status,\n filters.timeframe,\n filters.approvalScope,\n filters.search,\n ),\n }),\n )\n const runs = data.runs\n if (!Array.isArray(runs)) {\n throw new ModusError(\n `Unexpected list response shape: runs must be a list, got ${typeof runs}.`,\n )\n }\n return new Page(\n runs as AgentRunListItem[],\n normalizePageToken(\n typeof data.nextPageToken === 'string' ? data.nextPageToken : undefined,\n ),\n (token: string) => this.listPage(workflowId, pageSize, token, filters),\n )\n }\n\n async get(\n workflowId: number | string,\n runId: string,\n options: { temporalRunId?: string } = {},\n ): Promise<AgentRun> {\n validateId(workflowId, 'workflow_id')\n if (!runId.trim()) throw new Error('run_id must be a non-empty string')\n const query =\n options.temporalRunId !== undefined\n ? { temporalRunId: options.temporalRunId }\n : undefined\n const data = await invokeWithRetry(this.config, this.http, 'WorkflowRunsController_get', {\n pathParams: { id: workflowId, runId },\n query,\n })\n return parseRun(data)\n }\n\n async create(\n workflowId: number | string,\n body: CreateAgentRunRequest,\n options: { idempotencyKey?: string } = {},\n ): Promise<AgentRunStream> {\n validateId(workflowId, 'workflow_id')\n return this.createRun('WorkflowRunsController_create', body, { id: workflowId }, options)\n }\n\n async createScope(\n scopeId: number | string,\n body: SkillRunCreateRequest,\n options: { idempotencyKey?: string } = {},\n ): Promise<AgentRunStream> {\n validateId(scopeId, 'scope_id')\n return this.createRun('ScopeRunsController_create', body, { id: scopeId }, options)\n }\n\n async createModus(\n body: ModusRunCreateRequest,\n options: { idempotencyKey?: string } = {},\n ): Promise<AgentRunStream> {\n return this.createRun('ModusRunsController_create', body, {}, options)\n }\n\n async resume(\n runId: string,\n body: ResumeRunRequest,\n options: { idempotencyKey?: string } = {},\n ): Promise<AgentRunStream> {\n validateId(runId, 'run_id')\n return this.createRun('ResumeRunsController_create', body, { runId }, options)\n }\n\n async cancel(runId: string): Promise<void> {\n validateId(runId, 'run_id')\n await invokeWithRetry(this.config, this.http, 'RunLifecycleController_cancel', {\n pathParams: { runId },\n jsonBody: {},\n })\n }\n\n async events(runId: string): Promise<unknown> {\n validateId(runId, 'run_id')\n return invokeWithRetry(this.config, this.http, 'RunLifecycleController_events', {\n pathParams: { runId },\n })\n }\n\n async interrupt(runId: string): Promise<void> {\n validateId(runId, 'run_id')\n await invokeWithRetry(this.config, this.http, 'RunLifecycleController_interrupt', {\n pathParams: { runId },\n jsonBody: {},\n })\n }\n\n async editQueued(runId: string): Promise<void> {\n validateId(runId, 'run_id')\n await invokeWithRetry(this.config, this.http, 'RunLifecycleController_editQueued', {\n pathParams: { runId },\n jsonBody: {},\n })\n }\n\n active(options: {\n pageSize?: number\n pageToken?: string\n } = {}): Promise<Page<ActiveConversationRun>> {\n const pageSize = options.pageSize ?? 50\n validatePageSize(pageSize, RUNS_MAX_PAGE_SIZE)\n return this.activePage(pageSize, options.pageToken)\n }\n\n private async activePage(\n pageSize: number,\n pageToken: string | undefined,\n ): Promise<Page<ActiveConversationRun>> {\n return parseActiveRunsPage(\n await invokeWithRetry(this.config, this.http, 'RunLifecycleController_active', {\n query: activeRunsParams(pageSize, pageToken),\n }),\n (token: string) => this.activePage(pageSize, token),\n )\n }\n\n async activeBySession(sessionIds: readonly string[]): Promise<ActiveConversationRun[]> {\n const uniqueSessionIds = [...new Set(sessionIds.map((id) => id.trim()).filter(Boolean))]\n if (uniqueSessionIds.length > 100) {\n throw new Error('sessionIds must contain at most 100 ids')\n }\n return parseActiveRunsArray(\n await invokeWithRetry(this.config, this.http, 'RunLifecycleController_activeBySession', {\n jsonBody: { sessionIds: uniqueSessionIds },\n }),\n )\n }\n\n stream(runId: string, options: { lastEventId?: string } = {}): AgentRunStream {\n validateId(runId, 'run_id')\n const op = getOperation('RunLifecycleController_stream')\n const path = formatOperationPath('RunLifecycleController_stream', { runId })\n const lines = this.http.streamGet(path, undefined, {\n baseUrl: operationBaseUrl(this.http, op),\n headers: options.lastEventId ? { 'Last-Event-ID': options.lastEventId } : undefined,\n })\n return { runId, events: this.parseEvents(lines) }\n }\n\n private createRun(\n operationId: OperationId,\n body: AgentRunCreateRequest | SkillRunCreateRequest | ModusRunCreateRequest | ResumeRunRequest,\n pathParams: Record<string, unknown>,\n options: { idempotencyKey?: string },\n ): AgentRunStream {\n const runId = options.idempotencyKey?.trim() || body.runId?.trim() || randomRunId()\n const op = getOperation(operationId)\n const path = formatOperationPath(operationId, pathParams)\n const lines = this.http.streamPost(path, {\n ...body,\n streamProtocolVersion: 2,\n }, {\n baseUrl: operationBaseUrl(this.http, op),\n headers: { 'Idempotency-Key': runId },\n })\n return { runId, events: this.parseEvents(lines) }\n }\n\n private async *parseEvents(lines: AsyncIterable<string>): AsyncGenerator<RunEvent> {\n yield* parseSseStream(lines)\n }\n}\n","import type { ModusConfig } from '../../_config.js'\nimport {\n formatOperationPath,\n getOperation,\n operationBaseUrl,\n} from '../../_openapi-invoke.js'\nimport type { HttpClient } from '../../_http.js'\nimport { invokeWithRetry } from '../../_request.js'\nimport { parseSseStream } from '../../_streaming.js'\nimport { validateId } from '../../_validation.js'\nimport type { WorkflowActionRequest } from '../../types/agent-runs.js'\nimport type { RunEvent } from '../../types/runs.js'\nimport type { AgentRunStream } from './runs.js'\n\nfunction randomRunId(): string {\n return crypto.randomUUID()\n}\n\nexport class AgentWorkflowActionsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n async execute(\n body: WorkflowActionRequest,\n options: { idempotencyKey?: string } = {},\n ): Promise<AgentRunStream> {\n const runId = options.idempotencyKey?.trim() || body.runId?.trim() || randomRunId()\n const op = getOperation('WorkflowActionsController_execute')\n const path = formatOperationPath('WorkflowActionsController_execute')\n const lines = this.http.streamPost(path, body, {\n baseUrl: operationBaseUrl(this.http, op),\n headers: { 'Idempotency-Key': runId },\n })\n return { runId, events: this.parseEvents(lines) }\n }\n\n async cancel(runId: string): Promise<void> {\n validateId(runId, 'run_id')\n await invokeWithRetry(this.config, this.http, 'WorkflowActionsController_cancel', {\n pathParams: { runId },\n jsonBody: {},\n })\n }\n\n private async *parseEvents(lines: AsyncIterable<string>): AsyncGenerator<RunEvent> {\n yield* parseSseStream(lines)\n }\n}\n","import type { ModusConfig } from '../_config.js'\nimport type { HttpClient } from '../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../_request.js'\nimport { validateId, validatePageSize } from '../_validation.js'\nimport type { Agent, AgentType } from '../types/agents.js'\nimport type { VariationView } from '../types/views.js'\nimport { WorkflowRunsResource } from './agents/runs.js'\nimport { AgentWorkflowActionsResource } from './agents/workflow-actions.js'\n\nfunction workflowsListParams(\n pageSize: number,\n pageToken: string | undefined,\n search?: string,\n type?: AgentType,\n view?: VariationView,\n includeVariation?: boolean,\n): Record<string, string | number | boolean | undefined | null> {\n const extra: Record<string, string | number | boolean | undefined | null> = {}\n if (search !== undefined) extra.search = search\n if (type !== undefined) extra.type = type\n if (view !== undefined) extra.view = view\n if (includeVariation !== undefined) extra.includeVariation = includeVariation\n return aipListParams(pageSize, pageToken, extra) as Record<\n string,\n string | number | boolean | undefined | null\n >\n}\n\nfunction parseWorkflow(raw: unknown): Agent {\n return raw as Agent\n}\n\n/** Read / invoke access to Modus workflows (`/api/v1/workflows`). */\nexport class WorkflowsResource {\n readonly runs: WorkflowRunsResource\n readonly workflowActions: AgentWorkflowActionsResource\n\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {\n this.runs = new WorkflowRunsResource(http, config)\n this.workflowActions = new AgentWorkflowActionsResource(http, config)\n }\n\n list(options: {\n pageSize?: number\n pageToken?: string\n search?: string\n type?: AgentType\n view?: VariationView\n includeVariation?: boolean\n } = {}): Promise<Page<Agent>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(\n pageSize,\n options.pageToken,\n options.search,\n options.type,\n options.view,\n options.includeVariation,\n )\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n search?: string,\n type?: AgentType,\n view?: VariationView,\n includeVariation?: boolean,\n ): Promise<Page<Agent>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'WorkflowsController_list', {\n query: workflowsListParams(\n pageSize,\n pageToken,\n search,\n type,\n view,\n includeVariation,\n ),\n }),\n )\n // Envelope key is the server DTO property name — unchanged by the rename\n // (only paths/opIds/tags moved to the workflows vocab).\n return buildAipPage(data, 'agents', parseWorkflow, (token) =>\n this.listPage(pageSize, token, search, type, view, includeVariation),\n )\n }\n\n async get(\n workflowId: number | string,\n options: { view?: VariationView; includeVariation?: boolean } = {},\n ): Promise<Agent> {\n validateId(workflowId, 'workflow_id')\n const query: Record<string, string | boolean> = {}\n if (options.view !== undefined) query.view = options.view\n if (options.includeVariation !== undefined) {\n query.includeVariation = options.includeVariation\n }\n const data = await invokeWithRetry(this.config, this.http, 'WorkflowsController_get', {\n pathParams: { id: workflowId },\n query: Object.keys(query).length > 0 ? query : undefined,\n })\n return parseWorkflow(data)\n }\n}\n","import type { ModusConfig } from '../_config.js'\nimport type { HttpClient } from '../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../_request.js'\nimport { validatePageSize } from '../_validation.js'\nimport type { Connection } from '../types/connections.js'\n\nfunction connectionsListParams(\n pageSize: number,\n pageToken: string | undefined,\n type?: string,\n): Record<string, string | number | boolean | undefined | null> {\n const extra: Record<string, string | number | boolean | undefined | null> = {}\n if (type !== undefined) extra.type = type\n return aipListParams(pageSize, pageToken, extra) as Record<\n string,\n string | number | boolean | undefined | null\n >\n}\n\nfunction parseConnection(raw: unknown): Connection {\n return raw as Connection\n}\n\nexport class ConnectionsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(options: {\n pageSize?: number\n pageToken?: string\n type?: string\n } = {}): Promise<Page<Connection>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(pageSize, options.pageToken, options.type)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n type?: string,\n ): Promise<Page<Connection>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ConnectionsController_list', {\n query: connectionsListParams(pageSize, pageToken, type),\n }),\n )\n return buildAipPage(data, 'connections', parseConnection, (token) =>\n this.listPage(pageSize, token, type),\n )\n }\n\n async find(options: {\n name: string\n type?: string\n pageSize?: number\n }): Promise<Connection | undefined> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n const target = options.name.trim().toLowerCase()\n let token: string | undefined\n do {\n const page = await this.listPage(pageSize, token, options.type)\n const match = page.items.find((c) => c.name?.toLowerCase() === target)\n if (match) return match\n if (!page.hasNextPage()) break\n token = page.nextPageToken\n } while (token !== undefined)\n return undefined\n }\n}\n","import type { ModusConfig } from '../../_config.js'\nimport type { HttpClient } from '../../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../../_pagination.js'\nimport { asRecord, invokeWithRetry, omitUndefined } from '../../_request.js'\nimport { validatePageSize } from '../../_validation.js'\nimport type { ContextItem } from '../../types/context.js'\n\nexport type CustomContextItemKind =\n | 'source'\n | 'collection'\n | 'entity'\n | 'field'\n | 'entity_samples'\n\nexport interface CustomAttributeInput {\n name: string\n dataType?: string\n value?: unknown\n}\n\nexport interface CreateCustomContextItemInput {\n kind: CustomContextItemKind\n sourceId: string\n sourceName?: string\n collectionId?: string\n collectionName?: string\n externalId?: string\n fieldName?: string\n name?: string\n entityType?: string\n description?: string\n content?: unknown\n url?: string\n attributes?: CustomAttributeInput[]\n dataType?: string\n value?: unknown\n samples?: unknown[]\n raw?: Record<string, unknown>\n topics?: string[]\n idempotencyKey?: string\n}\n\nexport type UpdateCustomContextItemInput = Omit<\n Partial<CreateCustomContextItemInput>,\n 'kind' | 'sourceId' | 'sourceName' | 'collectionId' | 'collectionName' | 'externalId' | 'fieldName' | 'idempotencyKey'\n>\n\nexport interface CreatedCustomContextItem {\n contextItemId: string\n contextType: string\n dataPath: string[]\n title: string | null\n}\n\nexport interface CustomContextItemDeletion {\n uid: string\n contextType: string\n}\n\nfunction parseContextItem(raw: unknown): ContextItem {\n return raw as ContextItem\n}\n\nfunction parseCreatedCustomContextItem(raw: unknown): CreatedCustomContextItem {\n return raw as CreatedCustomContextItem\n}\n\nfunction parseDeletion(raw: unknown): CustomContextItemDeletion {\n return raw as CustomContextItemDeletion\n}\n\nexport class CustomContextItemsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(options: {\n pageSize?: number\n pageToken?: string\n searchQuery?: string\n topics?: string[]\n } = {}): Promise<Page<ContextItem>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(pageSize, options.pageToken, options)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n options: { searchQuery?: string; topics?: string[] },\n ): Promise<Page<ContextItem>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_list', {\n query: aipListParams(pageSize, pageToken, {\n searchQuery: options.searchQuery,\n topics: options.topics,\n }) as Record<string, string | number | boolean | readonly string[] | undefined | null>,\n }),\n )\n return buildAipPage(data, 'contextItems', parseContextItem, (token) =>\n this.listPage(pageSize, token, options),\n )\n }\n\n async get(uid: string): Promise<ContextItem> {\n return parseContextItem(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_get', {\n pathParams: { uid },\n }),\n )\n }\n\n async create(input: CreateCustomContextItemInput): Promise<CreatedCustomContextItem> {\n return parseCreatedCustomContextItem(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_create', {\n jsonBody: omitUndefined(input as unknown as Record<string, unknown>),\n }),\n )\n }\n\n async batchCreate(inputs: CreateCustomContextItemInput[]): Promise<CreatedCustomContextItem[]> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_batchCreate', {\n jsonBody: {\n items: inputs.map((input) => omitUndefined(input as unknown as Record<string, unknown>)),\n },\n }),\n )\n const items = data.contextItems\n return Array.isArray(items) ? items.map(parseCreatedCustomContextItem) : []\n }\n\n async update(uid: string, input: UpdateCustomContextItemInput): Promise<{ uid: string }> {\n return asRecord(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_update', {\n pathParams: { uid },\n jsonBody: omitUndefined(input as unknown as Record<string, unknown>),\n }),\n ) as { uid: string }\n }\n\n async delete(uid: string): Promise<CustomContextItemDeletion> {\n return parseDeletion(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_delete', {\n pathParams: { uid },\n }),\n )\n }\n}\n","import type { ModusConfig } from '../../_config.js'\nimport { NotFoundError } from '../../_exceptions.js'\nimport type { HttpClient } from '../../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../../_pagination.js'\nimport { asRecord, invokeWithRetry, omitUndefined } from '../../_request.js'\nimport { DEFAULT_MAX_PAGE_SIZE, validatePageSize } from '../../_validation.js'\nimport type { ContextItem, ContextItemLookupRow } from '../../types/context.js'\nimport type { ContextValueRow } from '../../types/context-values.js'\nimport type { ContentProjection, JsonObjectInput } from '../../types/json-blob.js'\n\nfunction contextListParams(\n pageSize: number,\n pageToken: string | undefined,\n contextType?: string,\n): Record<string, string | number | boolean | readonly string[] | undefined | null> {\n const extra: Record<string, string | readonly string[]> = {}\n if (contextType !== undefined) extra.contextTypes = [contextType]\n return aipListParams(pageSize, pageToken, extra) as Record<\n string,\n string | number | boolean | readonly string[] | undefined | null\n >\n}\n\nfunction parseContextItem(raw: unknown): ContextItem {\n return raw as ContextItem\n}\n\nfunction parseContextValueRow(raw: unknown): ContextValueRow {\n return raw as ContextValueRow\n}\n\nfunction parseLookupResponse(raw: Record<string, unknown>): ContextItemLookupRow | undefined {\n const item = raw.item\n if (item === null || item === undefined) return undefined\n return item as ContextItemLookupRow\n}\n\nexport class ContextItemsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(options: {\n pageSize?: number\n pageToken?: string\n contextType?: string\n } = {}): Promise<Page<ContextItem>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(pageSize, options.pageToken, options.contextType)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n contextType?: string,\n ): Promise<Page<ContextItem>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ContextItemsController_list', {\n query: contextListParams(pageSize, pageToken, contextType),\n }),\n )\n return buildAipPage(data, 'contextItems', parseContextItem, (token) =>\n this.listPage(pageSize, token, contextType),\n )\n }\n\n async get(uid: string): Promise<ContextItem> {\n const data = await invokeWithRetry(this.config, this.http, 'ContextItemsController_get', {\n pathParams: { uid },\n })\n return parseContextItem(data)\n }\n\n async lookup(options: {\n contextType: string\n dataPath: string[]\n contentProjection?: JsonObjectInput | ContentProjection\n }): Promise<ContextItemLookupRow | undefined> {\n const body = omitUndefined({\n contextType: options.contextType,\n dataPath: options.dataPath,\n contentProjection: options.contentProjection,\n })\n try {\n const raw = asRecord(\n await invokeWithRetry(this.config, this.http, 'ContextItemsController_lookup', {\n jsonBody: body,\n }),\n )\n return parseLookupResponse(raw)\n } catch (error) {\n if (error instanceof NotFoundError) return undefined\n throw error\n }\n }\n\n listValues(\n uid: string,\n contextType: string,\n contentKeyPath: string,\n options: { pageSize?: number; pageToken?: string } = {},\n ): Promise<Page<ContextValueRow>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize, DEFAULT_MAX_PAGE_SIZE)\n return this.listValuesPage(uid, contextType, contentKeyPath, pageSize, options.pageToken)\n }\n\n listValuesFor(\n item: ContextItem,\n contentKeyPath: string,\n options: { pageSize?: number; pageToken?: string } = {},\n ): Promise<Page<ContextValueRow>> {\n return this.listValues(item.uid, item.contextType, contentKeyPath, options)\n }\n\n private async listValuesPage(\n uid: string,\n contextType: string,\n contentKeyPath: string,\n pageSize: number,\n pageToken: string | undefined,\n ): Promise<Page<ContextValueRow>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ContextItemsController_listValues', {\n pathParams: { uid },\n query: aipListParams(pageSize, pageToken, {\n contextType,\n contentKeyPath,\n }) as Record<string, string | number | boolean | undefined | null>,\n }),\n )\n return buildAipPage(data, 'values', parseContextValueRow, (token) =>\n this.listValuesPage(uid, contextType, contentKeyPath, pageSize, token),\n )\n }\n}\n","import type { ModusConfig } from '../../_config.js'\nimport type { HttpClient } from '../../_http.js'\nimport { CustomContextItemsResource } from './custom-items.js'\nimport { ContextItemsResource } from './items.js'\n\n/** Read access to the Modus knowledge base. */\nexport class ContextResource {\n readonly items: ContextItemsResource\n readonly customItems: CustomContextItemsResource\n\n constructor(http: HttpClient, config: ModusConfig) {\n this.items = new ContextItemsResource(http, config)\n this.customItems = new CustomContextItemsResource(http, config)\n }\n}\n","import type { ModusConfig } from '../../_config.js'\nimport type { HttpClient } from '../../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../../_request.js'\nimport { validateId, validatePageSize } from '../../_validation.js'\nimport type {\n Conversation,\n ConversationKind,\n ConversationListItem,\n} from '../../types/conversations.js'\n\nconst ALLOWED_KINDS = new Set<ConversationKind>(['all', 'modus', 'skills'])\n\nfunction listParams(\n pageSize: number,\n pageToken: string | undefined,\n kind?: ConversationKind,\n): Record<string, string | number | boolean | undefined | null> {\n if (kind !== undefined && !ALLOWED_KINDS.has(kind)) {\n throw new Error(\n `kind must be one of ${[...ALLOWED_KINDS].sort().join(', ')}, got ${JSON.stringify(kind)}`,\n )\n }\n const extra: Record<string, string> = {}\n if (kind !== undefined) extra.kind = kind\n return aipListParams(pageSize, pageToken, extra) as Record<\n string,\n string | number | boolean | undefined | null\n >\n}\n\nfunction parseListItem(raw: unknown): ConversationListItem {\n return raw as ConversationListItem\n}\n\nfunction parseConversation(raw: unknown): Conversation {\n return raw as Conversation\n}\n\nexport class ModusConversationsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(options: {\n pageSize?: number\n pageToken?: string\n kind?: ConversationKind\n } = {}): Promise<Page<ConversationListItem>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(pageSize, options.pageToken, options.kind)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n kind?: ConversationKind,\n ): Promise<Page<ConversationListItem>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ModusConversationsController_list', {\n query: listParams(pageSize, pageToken, kind),\n }),\n )\n return buildAipPage(data, 'conversations', parseListItem, (token) =>\n this.listPage(pageSize, token, kind),\n )\n }\n\n async get(threadId: string): Promise<Conversation> {\n validateId(threadId, 'thread_id')\n const data = await invokeWithRetry(this.config, this.http, 'ModusConversationsController_get', {\n pathParams: { threadId },\n })\n return parseConversation(data)\n }\n}\n","import { modusChatBuffered, modusChatStreamSession, type ChatStream } from '../../_chat.js'\nimport type { ModusConfig } from '../../_config.js'\nimport type { HttpClient } from '../../_http.js'\nimport { invokeWithRetry, omitUndefined } from '../../_request.js'\nimport type { ChatModel, ChatResult } from '../../types/chat.js'\nimport type { ModusContextComposition } from '../../types/context-compose.js'\n\nimport { ModusConversationsResource } from './conversations.js'\n\n/** Org-wide Modus assistant. */\nexport class ModusResource {\n readonly conversations: ModusConversationsResource\n\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {\n this.conversations = new ModusConversationsResource(http, config)\n }\n\n async getContext(\n message: string,\n options: { limit?: number } = {},\n ): Promise<ModusContextComposition> {\n const data = await invokeWithRetry(this.config, this.http, 'ModusContextController_compose', {\n jsonBody: omitUndefined({ message, limit: options.limit }),\n })\n return data as ModusContextComposition\n }\n\n chat(message: string, options: { model: ChatModel; threadId?: string }): Promise<ChatResult> {\n return modusChatBuffered(this.http, message, options)\n }\n\n chatStream(message: string, options: { model: ChatModel; threadId?: string }): ChatStream {\n return modusChatStreamSession(this.http, message, options)\n }\n}\n","import type { ModusConfig } from '../../_config.js'\nimport type { HttpClient } from '../../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../../_request.js'\nimport { validateId, validatePageSize } from '../../_validation.js'\nimport type { Conversation, ConversationListItem } from '../../types/conversations.js'\n\nfunction parseListItem(raw: unknown): ConversationListItem {\n return raw as ConversationListItem\n}\n\nfunction parseConversation(raw: unknown): Conversation {\n return raw as Conversation\n}\n\n/** Read access to a scope's conversation threads (`/api/v1/scopes/:id/conversations`). */\nexport class ScopeConversationsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n private readonly scopeId: number | string,\n ) {}\n\n list(options: { pageSize?: number; pageToken?: string } = {}): Promise<Page<ConversationListItem>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(pageSize, options.pageToken)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n ): Promise<Page<ConversationListItem>> {\n validateId(this.scopeId, 'scope_id')\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ScopeConversationsController_list', {\n pathParams: { id: this.scopeId },\n query: aipListParams(pageSize, pageToken) as Record<\n string,\n string | number | boolean | undefined | null\n >,\n }),\n )\n return buildAipPage(data, 'conversations', parseListItem, (token) =>\n this.listPage(pageSize, token),\n )\n }\n\n async get(\n threadId: string,\n options: { messageLimit?: number; beforeMessageIndex?: number } = {},\n ): Promise<Conversation> {\n validateId(this.scopeId, 'scope_id')\n validateId(threadId, 'thread_id')\n if (options.beforeMessageIndex !== undefined && options.messageLimit === undefined) {\n throw new Error('beforeMessageIndex requires messageLimit')\n }\n const data = await invokeWithRetry(this.config, this.http, 'ScopeConversationsController_get', {\n pathParams: { id: this.scopeId, threadId },\n query: {\n messageLimit: options.messageLimit,\n beforeMessageIndex: options.beforeMessageIndex,\n },\n })\n return parseConversation(data)\n }\n}\n","import { chatBuffered, chatStreamSession, type ChatStream } from '../_chat.js'\nimport type { ModusConfig } from '../_config.js'\nimport type { HttpClient } from '../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../_pagination.js'\nimport { asRecord, invokeWithRetry, omitUndefined } from '../_request.js'\nimport { validateId, validatePageSize } from '../_validation.js'\nimport type { ChatModel, ChatResult } from '../types/chat.js'\nimport type { SkillContextComposition } from '../types/context-compose.js'\nimport type { Skill } from '../types/skills.js'\nimport type { VariationView } from '../types/views.js'\nimport { ScopeConversationsResource } from './skills/conversations.js'\n\nfunction scopesListParams(\n pageSize: number,\n pageToken: string | undefined,\n search?: string,\n view?: VariationView,\n managerId?: number,\n): Record<string, string | number | boolean | undefined | null> {\n const extra: Record<string, string | number | boolean | undefined | null> = {}\n if (search !== undefined) extra.search = search\n if (view !== undefined) extra.view = view\n if (managerId !== undefined) extra.managerId = managerId\n return aipListParams(pageSize, pageToken, extra) as Record<\n string,\n string | number | boolean | undefined | null\n >\n}\n\nfunction parseScope(raw: unknown): Skill {\n return raw as Skill\n}\n\n/** Read / invoke access to Modus scopes (`/api/v1/scopes`). */\nexport class ScopesResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n conversations(scopeId: number | string): ScopeConversationsResource {\n return new ScopeConversationsResource(this.http, this.config, scopeId)\n }\n\n list(options: {\n pageSize?: number\n pageToken?: string\n search?: string\n view?: VariationView\n managerId?: number\n } = {}): Promise<Page<Skill>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(\n pageSize,\n options.pageToken,\n options.search,\n options.view,\n options.managerId,\n )\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n search?: string,\n view?: VariationView,\n managerId?: number,\n ): Promise<Page<Skill>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ScopesController_list', {\n query: scopesListParams(pageSize, pageToken, search, view, managerId),\n }),\n )\n // The list response envelope key is the server DTO property name, which\n // this rename intentionally left as `skills` (only paths/opIds/tags moved\n // to the scopes vocab — response body schemas are unchanged).\n return buildAipPage(data, 'skills', parseScope, (token) =>\n this.listPage(pageSize, token, search, view, managerId),\n )\n }\n\n async get(\n scopeId: number | string,\n options: { view?: VariationView } = {},\n ): Promise<Skill> {\n validateId(scopeId, 'scope_id')\n const query = options.view !== undefined ? { view: options.view } : undefined\n const data = await invokeWithRetry(this.config, this.http, 'ScopesController_get', {\n pathParams: { id: scopeId },\n query,\n })\n return parseScope(data)\n }\n\n async getContext(\n scopeId: number | string,\n message: string,\n options: { limit?: number } = {},\n ): Promise<SkillContextComposition> {\n validateId(scopeId, 'scope_id')\n const data = await invokeWithRetry(this.config, this.http, 'ScopeContextController_compose', {\n pathParams: { id: scopeId },\n jsonBody: omitUndefined({ message, limit: options.limit }),\n })\n return data as SkillContextComposition\n }\n\n chat(\n scopeId: number | string,\n message: string,\n options: { model: ChatModel; threadId?: string },\n ): Promise<ChatResult> {\n return chatBuffered(this.http, 'scopes', scopeId, message, options)\n }\n\n chatStream(\n scopeId: number | string,\n message: string,\n options: { model: ChatModel; threadId?: string },\n ): ChatStream {\n return chatStreamSession(this.http, 'scopes', scopeId, message, options)\n }\n}\n","import type { ModusConfig } from '../_config.js'\nimport type { HttpClient } from '../_http.js'\nimport { buildAipPage, type Page } from '../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../_request.js'\nimport { validateId, validatePageSize } from '../_validation.js'\nimport type { RecordSuggestionEventRequest, SuggestionQuestion } from '../types/suggestions.js'\n\nconst DEFAULT_SUGGESTIONS_PAGE_SIZE = 5\nconst MAX_SUGGESTIONS_PAGE_SIZE = 12\n\nfunction parseSuggestion(raw: unknown): SuggestionQuestion {\n return raw as SuggestionQuestion\n}\n\nfunction suggestionListParams(options: {\n pageSize: number\n pageToken?: string\n skillId?: number\n skillIds?: readonly number[]\n}): Record<string, string | number | undefined> {\n return {\n pageSize: options.pageSize,\n pageToken: options.pageToken,\n skill_id: options.skillId,\n skill_ids: options.skillIds?.join(','),\n }\n}\n\nexport class SuggestionsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(options: {\n pageSize?: number\n pageToken?: string\n skillId?: number\n skillIds?: readonly number[]\n } = {}): Promise<Page<SuggestionQuestion>> {\n const pageSize = options.pageSize ?? DEFAULT_SUGGESTIONS_PAGE_SIZE\n validatePageSize(pageSize, MAX_SUGGESTIONS_PAGE_SIZE)\n return this.listPage(pageSize, options.pageToken, options.skillId, options.skillIds)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n skillId: number | undefined,\n skillIds: readonly number[] | undefined,\n ): Promise<Page<SuggestionQuestion>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'SuggestionsController_listApproved', {\n query: suggestionListParams({ pageSize, pageToken, skillId, skillIds }),\n }),\n )\n return buildAipPage(data, 'suggestions', parseSuggestion, (token) =>\n this.listPage(pageSize, token, skillId, skillIds),\n )\n }\n\n async recordEvent(id: string, event: RecordSuggestionEventRequest): Promise<void> {\n validateId(id, 'id')\n await invokeWithRetry(this.config, this.http, 'SuggestionsController_recordEvent', {\n pathParams: { id },\n jsonBody: event,\n })\n }\n}\n"],"mappings":"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","names":["msg","randomRunId","parseContextItem","parseListItem","parseConversation"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/_generated/operations.ts","../src/_exceptions.ts","../src/_chat.ts","../src/_streaming.ts","../src/_generated/write-body-keys.ts","../src/_validation.ts","../src/_pagination.ts","../src/types/agents.ts","../src/types/conversations.ts","../src/_auth.ts","../src/_config.ts","../src/_http.ts","../src/_client-base.ts","../src/_openapi-invoke.ts","../src/_retry.ts","../src/_request.ts","../src/resources/agents/runs.ts","../src/resources/agents/workflow-actions.ts","../src/resources/agents.ts","../src/resources/connections.ts","../src/resources/context/custom-items.ts","../src/resources/context/items.ts","../src/resources/context/context.ts","../src/resources/modus/conversations.ts","../src/resources/modus/modus.ts","../src/resources/skills/conversations.ts","../src/resources/skills.ts","../src/types/suggestions.ts","../src/resources/suggestions.ts"],"sourcesContent":["/**\n * @getmodus/sdk — official TypeScript client for Modus.\n */\n\nexport type { components, paths, operations } from './_generated/v1.js'\nexport type { OperationId, OperationSpec } from './_generated/operations.js'\nexport { OPERATIONS } from './_generated/operations.js'\n\nexport {\n APIConnectionError,\n AuthenticationError,\n ConflictError,\n InternalServerError,\n ModusError,\n NotFoundError,\n PermissionDeniedError,\n RateLimitError,\n RunCancelledError,\n StreamTimeoutError,\n UnprocessableError,\n ValidationError,\n} from './_exceptions.js'\n\nexport { ChatStream } from './_chat.js'\nexport { Page } from './_pagination.js'\nexport type {\n AssistantContentResetEvent,\n CancelledEvent,\n DoneEvent,\n ErrorEvent,\n RunEvent,\n StreamTimeoutEvent,\n TokenEvent,\n} from './types/runs.js'\nexport type { ChatModel, ChatRequest, ChatResult } from './types/chat.js'\nexport type { ModusOptions } from './_config.js'\nexport type { Skill, SkillStatus, SkillVariation } from './types/skills.js'\nexport type { Agent } from './types/agents.js'\nexport { AgentType } from './types/agents.js'\nexport type {\n AgentRun,\n AgentRunCreateRequest,\n AgentRunListItem,\n ApprovalScope,\n CancelRunRequest,\n CreateAgentRunRequest,\n EditQueuedRunRequest,\n InterruptRunRequest,\n ModusRunCreateRequest,\n ResumeRunRequest,\n RunStatus,\n RunTimeframe,\n SkillRunCreateRequest,\n WorkflowActionRequest,\n} from './types/agent-runs.js'\nexport type { AgentRunStream } from './resources/agents/runs.js'\nexport type {\n Conversation,\n ConversationKind,\n ConversationListItem,\n Message,\n} from './types/conversations.js'\nexport { conversationSkillId } from './types/conversations.js'\nexport type { Connection } from './types/connections.js'\nexport type { VariationView } from './types/views.js'\nexport type {\n ContextItem,\n ContextItemLookupRow,\n ContextType,\n} from './types/context.js'\nexport type { ContextValueRow } from './types/context-values.js'\nexport type {\n ComposeSkillContextRequest,\n ModusContextComposition,\n ModusContextRequest,\n SkillContextComposition,\n} from './types/context-compose.js'\nexport type {\n RecordSuggestionEventRequest,\n SuggestionEventSource,\n SuggestionEventType,\n SuggestionQuestion,\n} from './types/suggestions.js'\n\nimport { ModusClientBase } from './_client-base.js'\nimport { WorkflowsResource } from './resources/agents.js'\nimport { ConnectionsResource } from './resources/connections.js'\nimport { ContextResource } from './resources/context/context.js'\nimport { ModusResource } from './resources/modus/modus.js'\nimport { ScopesResource } from './resources/skills.js'\nimport { SuggestionsResource } from './resources/suggestions.js'\n\n/** Read / invoke client for Modus scopes, workflows, connections, and more. */\nexport class Modus extends ModusClientBase {\n readonly scopes: ScopesResource\n readonly modus: ModusResource\n readonly workflows: WorkflowsResource\n readonly context: ContextResource\n readonly connections: ConnectionsResource\n readonly suggestions: SuggestionsResource\n\n constructor(options: import('./_config.js').ModusOptions = {}) {\n super(options)\n this.scopes = new ScopesResource(this.http, this.config)\n this.modus = new ModusResource(this.http, this.config)\n this.workflows = new WorkflowsResource(this.http, this.config)\n this.context = new ContextResource(this.http, this.config)\n this.connections = new ConnectionsResource(this.http, this.config)\n this.suggestions = new SuggestionsResource(this.http, this.config)\n }\n}\n","// Auto-generated operation registry. Do not edit by hand.\n\nexport type OperationMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'\n\nexport interface OperationSpec {\n method: OperationMethod\n path: string\n service: string\n serverUrl: string | null\n pathParams: readonly string[]\n queryParams: readonly string[]\n requestSchema: string | null\n responseSchema: string | null\n}\n\nexport const OPERATIONS = {\n \"ConnectionsController_list\": {\n method: \"GET\",\n path: \"/api/v1/connections\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"type\"],\n requestSchema: null,\n responseSchema: \"ListConnectionsResponseDto\",\n },\n \"ContextCreatorsController_createLink\": {\n method: \"POST\",\n path: \"/api/v1/context/links\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateLinkDto\",\n responseSchema: \"CreatedContextItemResponseDto\",\n },\n \"ContextCreatorsController_createNote\": {\n method: \"POST\",\n path: \"/api/v1/context/notes\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateNoteDto\",\n responseSchema: \"CreatedContextItemResponseDto\",\n },\n \"ContextCreatorsController_createSavedQuery\": {\n method: \"POST\",\n path: \"/api/v1/context/saved-queries\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateSavedQueryDto\",\n responseSchema: \"CreatedContextItemResponseDto\",\n },\n \"ContextItemsController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/context/items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"uid\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"DeleteContextItemResponseDto\",\n },\n \"ContextItemsController_get\": {\n method: \"GET\",\n path: \"/api/v1/context/items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"uid\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"ContextItemDto\",\n },\n \"ContextItemsController_list\": {\n method: \"GET\",\n path: \"/api/v1/context/items\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"contextTypes\",\"verificationStatuses\",\"searchQuery\",\"topics\"],\n requestSchema: null,\n responseSchema: \"ListContextItemsResponseDto\",\n },\n \"ContextItemsController_listValues\": {\n method: \"GET\",\n path: \"/api/v1/context/items/{uid}/values\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"uid\"],\n queryParams: [\"contextType\",\"contentKeyPath\",\"pageSize\",\"offset\",\"pageToken\",\"searchQuery\",\"dataPathPrefix\"],\n requestSchema: null,\n responseSchema: \"ListContextItemValuesResponseDto\",\n },\n \"ContextItemsController_lookup\": {\n method: \"POST\",\n path: \"/api/v1/context/items/lookup\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"LookupContextItemDto\",\n responseSchema: \"LookupContextItemResponseDto\",\n },\n \"ContextItemsController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/context/items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"uid\"],\n queryParams: [\"updateMask\"],\n requestSchema: \"UpdateContextItemDto\",\n responseSchema: null,\n },\n \"CustomContextItemsController_batchCreate\": {\n method: \"POST\",\n path: \"/api/v1/context/custom-items/batch\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"BatchCreateCustomContextItemsDto\",\n responseSchema: \"BatchCreateCustomContextItemsResponseDto\",\n },\n \"CustomContextItemsController_create\": {\n method: \"POST\",\n path: \"/api/v1/context/custom-items\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateCustomContextItemDto\",\n responseSchema: \"CreatedCustomContextItemResponseDto\",\n },\n \"CustomContextItemsController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/context/custom-items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"uid\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"DeleteContextItemResponseDto\",\n },\n \"CustomContextItemsController_get\": {\n method: \"GET\",\n path: \"/api/v1/context/custom-items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"uid\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"ContextItemDto\",\n },\n \"CustomContextItemsController_list\": {\n method: \"GET\",\n path: \"/api/v1/context/custom-items\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"contextTypes\",\"verificationStatuses\",\"searchQuery\",\"topics\"],\n requestSchema: null,\n responseSchema: \"ListCustomContextItemsResponseDto\",\n },\n \"CustomContextItemsController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/context/custom-items/{uid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"uid\"],\n queryParams: [],\n requestSchema: \"UpdateCustomContextItemDto\",\n responseSchema: null,\n },\n \"EvaluationsController_getConfig\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/evaluations/config\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"EvaluationConfigDto\",\n },\n \"EvaluationsController_getRun\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/evaluations/runs/{runId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\",\"runId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"EvaluationRunWithResultsDto\",\n },\n \"EvaluationsController_listRuns\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/evaluations/runs\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [\"pageSize\",\"pageToken\"],\n requestSchema: null,\n responseSchema: \"ListEvaluationRunsResponseDto\",\n },\n \"EvaluationsController_triggerRun\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/evaluations/runs\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"TriggerEvaluationRunResponseDto\",\n },\n \"EvaluationsController_updateConfig\": {\n method: \"PUT\",\n path: \"/api/v1/scopes/{id}/evaluations/config\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"UpdateEvaluationConfigDto\",\n responseSchema: \"EvaluationConfigDto\",\n },\n \"MemberGroupsController_list\": {\n method: \"GET\",\n path: \"/api/v1/users/member-groups\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [\"pageSize\",\"pageToken\"],\n requestSchema: null,\n responseSchema: \"ListMemberGroupsResponseDto\",\n },\n \"ModusChatController_chat\": {\n method: \"POST\",\n path: \"/api/v1/modus/chat\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"ModusChatRequestDto\",\n responseSchema: \"ModusChatResponseDto\",\n },\n \"ModusChatController_chatContinue\": {\n method: \"POST\",\n path: \"/api/v1/modus/conversations/{threadId}/chat\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"threadId\"],\n queryParams: [],\n requestSchema: \"ModusChatRequestDto\",\n responseSchema: \"ModusChatResponseDto\",\n },\n \"ModusContextController_compose\": {\n method: \"POST\",\n path: \"/api/v1/modus/context\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"ModusContextRequestDto\",\n responseSchema: \"ModusContextResponseDto\",\n },\n \"ModusConversationsController_get\": {\n method: \"GET\",\n path: \"/api/v1/modus/conversations/{threadId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"threadId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"ConversationDto\",\n },\n \"ModusConversationsController_list\": {\n method: \"GET\",\n path: \"/api/v1/modus/conversations\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"page\",\"pageSize\",\"userId\",\"toolName\",\"timeframe\",\"includeTools\",\"kind\"],\n requestSchema: null,\n responseSchema: \"ListConversationsResponseDto\",\n },\n \"ModusRunsController_create\": {\n method: \"POST\",\n path: \"/agent/v1/modus/runs\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"ModusRunDto\",\n responseSchema: null,\n },\n \"OrgMembersController_list\": {\n method: \"GET\",\n path: \"/api/v1/users/org-members\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [\"pageSize\",\"pageToken\"],\n requestSchema: null,\n responseSchema: \"ListOrgMembersResponseDto\",\n },\n \"OrganizationController_deleteOrganization\": {\n method: \"DELETE\",\n path: \"/api/v1/users/organization\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"ResumeRunsController_create\": {\n method: \"POST\",\n path: \"/agent/v1/runs/{runId}/resume\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: \"ResumeRunDto\",\n responseSchema: null,\n },\n \"RunLifecycleController_active\": {\n method: \"GET\",\n path: \"/agent/v1/runs/active\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\"],\n requestSchema: null,\n responseSchema: \"ActiveRunsResponseDto\",\n },\n \"RunLifecycleController_activeBySession\": {\n method: \"POST\",\n path: \"/agent/v1/runs/active-by-session\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"ActiveRunsBySessionDto\",\n responseSchema: \"ActiveRunsBySessionResponseDto\",\n },\n \"RunLifecycleController_cancel\": {\n method: \"POST\",\n path: \"/agent/v1/runs/{runId}/cancel\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: \"CancelRunDto\",\n responseSchema: null,\n },\n \"RunLifecycleController_editQueued\": {\n method: \"POST\",\n path: \"/agent/v1/runs/{runId}/queue-edit\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: \"EditQueuedRunDto\",\n responseSchema: null,\n },\n \"RunLifecycleController_events\": {\n method: \"GET\",\n path: \"/agent/v1/runs/{runId}/events\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"RunLifecycleController_interrupt\": {\n method: \"POST\",\n path: \"/agent/v1/runs/{runId}/interrupt\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: \"InterruptRunDto\",\n responseSchema: null,\n },\n \"RunLifecycleController_stream\": {\n method: \"GET\",\n path: \"/agent/v1/runs/{runId}/stream\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"ScopeChatController_chat\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/chat\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"SkillChatRequestDto\",\n responseSchema: \"SkillChatResponseDto\",\n },\n \"ScopeChatController_chatContinue\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/conversations/{threadId}/chat\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\",\"threadId\"],\n queryParams: [],\n requestSchema: \"SkillChatRequestDto\",\n responseSchema: \"SkillChatResponseDto\",\n },\n \"ScopeContextController_compose\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/context\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"ComposeSkillContextRequestDto\",\n responseSchema: \"ComposeSkillContextResponseDto\",\n },\n \"ScopeConversationsController_get\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/conversations/{threadId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\",\"threadId\"],\n queryParams: [\"messageLimit\",\"beforeMessageIndex\"],\n requestSchema: null,\n responseSchema: \"ConversationDto\",\n },\n \"ScopeConversationsController_list\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/conversations\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [\"pageToken\",\"page\",\"pageSize\",\"userId\",\"toolName\",\"timeframe\",\"includeTools\"],\n requestSchema: null,\n responseSchema: \"ListConversationsResponseDto\",\n },\n \"ScopeMemoriesController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/scopes/{id}/memories/{memoryId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\",\"memoryId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"ScopeMemoriesController_list\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/memories\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [\"pageToken\",\"pageSize\",\"userId\",\"limit\"],\n requestSchema: null,\n responseSchema: \"ListMemoriesResponseDto\",\n },\n \"ScopeMemoriesController_search\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/memories/search\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"SearchMemoriesRequestDto\",\n responseSchema: \"ListMemoriesResponseDto\",\n },\n \"ScopeMemoriesController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/scopes/{id}/memories/{memoryId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\",\"memoryId\"],\n queryParams: [\"updateMask\"],\n requestSchema: \"UpdateMemoryRequestDto\",\n responseSchema: null,\n },\n \"ScopeRunsController_create\": {\n method: \"POST\",\n path: \"/agent/v1/scopes/{id}/runs\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"SkillRunDto\",\n responseSchema: null,\n },\n \"ScopeSupervisionController_get\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/supervision\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [\"view\"],\n requestSchema: null,\n responseSchema: \"SupervisionDto\",\n },\n \"ScopeSupervisionController_set\": {\n method: \"PUT\",\n path: \"/api/v1/scopes/{id}/supervision\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"SetSupervisionRequestDto\",\n responseSchema: \"SupervisionDto\",\n },\n \"ScopeSupervisionController_setActive\": {\n method: \"PUT\",\n path: \"/api/v1/scopes/{id}/supervision/active\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"SetSupervisionRequestDto\",\n responseSchema: \"SupervisionDto\",\n },\n \"ScopesController_acceptOwnershipTransfer\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/transfer-ownership/accept\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_cancelOwnershipTransfer\": {\n method: \"DELETE\",\n path: \"/api/v1/scopes/{id}/transfer-ownership\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_create\": {\n method: \"POST\",\n path: \"/api/v1/scopes\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateSkillDto\",\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/scopes/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"ScopesController_deploy\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/deploy\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"DeploySkillDto\",\n responseSchema: \"DeployResponseDto\",\n },\n \"ScopesController_get\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [\"view\"],\n requestSchema: null,\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_getVariation\": {\n method: \"GET\",\n path: \"/api/v1/scopes/{id}/variations/{variationUid}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\",\"variationUid\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_list\": {\n method: \"GET\",\n path: \"/api/v1/scopes\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"view\",\"search\",\"managerId\",\"includeVariation\"],\n requestSchema: null,\n responseSchema: \"ListSkillsResponseDto\",\n },\n \"ScopesController_patchMcpConfig\": {\n method: \"PATCH\",\n path: \"/api/v1/scopes/{id}/mcp-config\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"PatchSkillMcpConfigDto\",\n responseSchema: \"PatchSkillMcpConfigResponseDto\",\n },\n \"ScopesController_requestOwnershipTransfer\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/transfer-ownership\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"TransferOwnershipDto\",\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_restore\": {\n method: \"POST\",\n path: \"/api/v1/scopes/{id}/restore\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"SkillDto\",\n },\n \"ScopesController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/scopes/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [\"updateMask\"],\n requestSchema: \"UpdateSkillDto\",\n responseSchema: \"SkillDto\",\n },\n \"SuggestionsController_listApproved\": {\n method: \"GET\",\n path: \"/api/v1/suggestions/questions\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"skill_id\",\"skill_ids\"],\n requestSchema: null,\n responseSchema: \"ListSuggestionQuestionsResponseDto\",\n },\n \"SuggestionsController_recordEvent\": {\n method: \"POST\",\n path: \"/api/v1/suggestions/questions/{id}/events\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"RecordSuggestionEventDto\",\n responseSchema: null,\n },\n \"UsageController_list\": {\n method: \"GET\",\n path: \"/api/v1/usage\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [\"since\",\"until\",\"rollup\",\"model\",\"group_by\",\"skill_id\",\"agent_id\",\"user_id\",\"interface\"],\n requestSchema: null,\n responseSchema: \"ListUsageResponseDto\",\n },\n \"WorkflowActionsController_cancel\": {\n method: \"POST\",\n path: \"/agent/v1/workflow-actions/{runId}/cancel\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [\"runId\"],\n queryParams: [],\n requestSchema: \"CancelRunDto\",\n responseSchema: null,\n },\n \"WorkflowActionsController_execute\": {\n method: \"POST\",\n path: \"/agent/v1/workflow-actions\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"WorkflowActionDto\",\n responseSchema: null,\n },\n \"WorkflowInterfacesController_add\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/interfaces\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"AddAgentInterfaceDto\",\n responseSchema: \"AgentInterfaceDto\",\n },\n \"WorkflowInterfacesController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/workflows/{id}/interfaces/{interfaceId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\",\"interfaceId\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"WorkflowInterfacesController_deleteAll\": {\n method: \"DELETE\",\n path: \"/api/v1/workflows/{id}/interfaces\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"WorkflowInterfacesController_list\": {\n method: \"GET\",\n path: \"/api/v1/workflows/{id}/interfaces\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [\"pageSize\",\"pageToken\"],\n requestSchema: null,\n responseSchema: \"ListAgentInterfacesResponseDto\",\n },\n \"WorkflowInterfacesController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/workflows/{id}/interfaces/{interfaceId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\",\"interfaceId\"],\n queryParams: [\"updateMask\"],\n requestSchema: \"UpdateAgentInterfaceDto\",\n responseSchema: \"AgentInterfaceDto\",\n },\n \"WorkflowRunsController_create\": {\n method: \"POST\",\n path: \"/agent/v1/workflows/{id}/runs\",\n service: \"agent-service\",\n serverUrl: \"https://agent.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"AgentRunDto\",\n responseSchema: null,\n },\n \"WorkflowRunsController_get\": {\n method: \"GET\",\n path: \"/api/v1/workflows/{id}/runs/{runId}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\",\"runId\"],\n queryParams: [\"temporalRunId\"],\n requestSchema: null,\n responseSchema: \"GetAutomationRunResponseDto\",\n },\n \"WorkflowRunsController_list\": {\n method: \"GET\",\n path: \"/api/v1/workflows/{id}/runs\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [\"status\",\"timeframe\",\"approvalScope\",\"search\",\"pageSize\",\"pageToken\"],\n requestSchema: null,\n responseSchema: \"ListAutomationRunsResponseDto\",\n },\n \"WorkflowsController_acceptOwnershipTransfer\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/transfer-ownership/accept\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_cancelOwnershipTransfer\": {\n method: \"DELETE\",\n path: \"/api/v1/workflows/{id}/transfer-ownership\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_create\": {\n method: \"POST\",\n path: \"/api/v1/workflows\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [],\n requestSchema: \"CreateAgentDto\",\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_delete\": {\n method: \"DELETE\",\n path: \"/api/v1/workflows/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: null,\n },\n \"WorkflowsController_deploy\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/deploy\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"DeployAgentDto\",\n responseSchema: \"AgentDeployResponseDto\",\n },\n \"WorkflowsController_get\": {\n method: \"GET\",\n path: \"/api/v1/workflows/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [\"view\"],\n requestSchema: null,\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_list\": {\n method: \"GET\",\n path: \"/api/v1/workflows\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [],\n queryParams: [\"pageToken\",\"pageSize\",\"view\",\"type\",\"search\",\"includeVariation\"],\n requestSchema: null,\n responseSchema: \"ListAgentsResponseDto\",\n },\n \"WorkflowsController_requestOwnershipTransfer\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/transfer-ownership\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"TransferOwnershipDto\",\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_restore\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/restore\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: null,\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_toggle\": {\n method: \"POST\",\n path: \"/api/v1/workflows/{id}/toggle\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [],\n requestSchema: \"ToggleAgentDto\",\n responseSchema: \"AgentDto\",\n },\n \"WorkflowsController_update\": {\n method: \"PATCH\",\n path: \"/api/v1/workflows/{id}\",\n service: \"modus-api\",\n serverUrl: \"https://api.getmodus.com\",\n pathParams: [\"id\"],\n queryParams: [\"updateMask\"],\n requestSchema: \"UpdateAgentDto\",\n responseSchema: \"AgentDto\",\n },\n} as const satisfies Record<string, OperationSpec>\n\nexport type OperationId = keyof typeof OPERATIONS\n","export class ModusError extends Error {\n readonly statusCode?: number\n readonly requestId?: string\n readonly responseHeaders?: Record<string, string>\n readonly body?: string\n readonly code?: string\n\n constructor(\n message: string,\n options: {\n statusCode?: number\n requestId?: string\n responseHeaders?: Record<string, string>\n body?: string\n code?: string\n } = {},\n ) {\n super(message)\n this.name = 'ModusError'\n this.message = message\n this.statusCode = options.statusCode\n this.requestId = options.requestId\n this.responseHeaders = options.responseHeaders\n this.body = options.body\n this.code = options.code\n }\n}\n\nexport class APIConnectionError extends ModusError {\n constructor(message: string) {\n super(message)\n this.name = 'APIConnectionError'\n }\n}\n\nexport class AuthenticationError extends ModusError {\n constructor(message: string, options: ConstructorParameters<typeof ModusError>[1] = {}) {\n super(message, { ...options, statusCode: 401 })\n this.name = 'AuthenticationError'\n }\n}\n\nexport class PermissionDeniedError extends ModusError {\n constructor(message: string, options: ConstructorParameters<typeof ModusError>[1] = {}) {\n super(message, { ...options, statusCode: 403 })\n this.name = 'PermissionDeniedError'\n }\n}\n\nexport class NotFoundError extends ModusError {\n constructor(message: string, options: ConstructorParameters<typeof ModusError>[1] = {}) {\n super(message, { ...options, statusCode: 404 })\n this.name = 'NotFoundError'\n }\n}\n\nexport class ConflictError extends ModusError {\n constructor(message: string, options: ConstructorParameters<typeof ModusError>[1] = {}) {\n super(message, { ...options, statusCode: 409 })\n this.name = 'ConflictError'\n }\n}\n\nexport class UnprocessableError extends ModusError {\n readonly errors?: unknown\n\n constructor(\n message: string,\n options: ConstructorParameters<typeof ModusError>[1] & { errors?: unknown } = {},\n ) {\n super(message, { ...options, statusCode: 422 })\n this.name = 'UnprocessableError'\n this.errors = options.errors\n }\n}\n\nexport class RateLimitError extends ModusError {\n readonly retryAfter?: number\n\n constructor(\n message: string,\n options: ConstructorParameters<typeof ModusError>[1] & { retryAfter?: number } = {},\n ) {\n super(message, { ...options, statusCode: 429 })\n this.name = 'RateLimitError'\n this.retryAfter = options.retryAfter\n }\n}\n\nexport class InternalServerError extends ModusError {\n constructor(message: string, statusCode: number, options: ConstructorParameters<typeof ModusError>[1] = {}) {\n super(message, { ...options, statusCode })\n this.name = 'InternalServerError'\n }\n}\n\nexport class RunCancelledError extends ModusError {\n constructor(message = 'Run was cancelled.') {\n super(message)\n this.name = 'RunCancelledError'\n }\n}\n\nexport class StreamTimeoutError extends ModusError {\n constructor(message = 'Stream timed out.') {\n super(message)\n this.name = 'StreamTimeoutError'\n }\n}\n\nexport class ValidationError extends ModusError {\n constructor(message: string) {\n super(message)\n this.name = 'ValidationError'\n }\n}\n","import { randomUUID } from 'node:crypto'\nimport {\n ModusError,\n RunCancelledError,\n StreamTimeoutError,\n} from './_exceptions.js'\nimport type { ModusConfig } from './_config.js'\nimport type { HttpClient } from './_http.js'\nimport { parseSseStream } from './_streaming.js'\nimport { validateChatModel, validateId } from './_validation.js'\nimport type { ChatModel, ChatResult } from './types/chat.js'\nimport type { RunEvent } from './types/runs.js'\n\nfunction effectiveThreadId(threadId?: string): string | undefined {\n if (threadId === undefined) return undefined\n if (!threadId.trim()) return undefined\n return threadId\n}\n\nfunction resolveSessionId(threadId?: string): string {\n return effectiveThreadId(threadId) ?? randomUUID()\n}\n\nfunction chatPath(\n resource: string,\n resourceId: number | string,\n options: { threadId?: string },\n): string {\n const safeId = encodeURIComponent(String(resourceId))\n const tid = effectiveThreadId(options.threadId)\n if (tid !== undefined) {\n const safeTid = encodeURIComponent(tid)\n return `/api/v1/${resource}/${safeId}/conversations/${safeTid}/chat`\n }\n return `/api/v1/${resource}/${safeId}/chat`\n}\n\nfunction modusChatPath(options: { threadId?: string }): string {\n const tid = effectiveThreadId(options.threadId)\n if (tid !== undefined) {\n validateId(tid, 'thread_id')\n return `/api/v1/modus/conversations/${encodeURIComponent(tid)}/chat`\n }\n return `/api/v1/modus/chat`\n}\n\nfunction agentHostRunsPath(\n resource: 'modus' | 'scopes' | 'workflows',\n resourceId?: number | string,\n): string {\n if (resource === 'modus') return '/agent/v1/modus/runs'\n const safeId = encodeURIComponent(String(resourceId))\n return `/agent/v1/${resource}/${safeId}/runs`\n}\n\nfunction chatBody(message: string, model: ChatModel): Record<string, string> {\n return { message, model }\n}\n\nfunction agentRunsBody(\n message: string,\n model: ChatModel,\n options: { sessionId: string; organizationId?: string; version?: string },\n): Record<string, unknown> {\n const body: Record<string, unknown> = {\n message,\n config: { model },\n sessionId: options.sessionId,\n }\n if (options.organizationId !== undefined) {\n body.organizationId = options.organizationId\n }\n if (options.version !== undefined) {\n body.version = options.version\n }\n return body\n}\n\nfunction raiseForEvent(event: RunEvent): RunEvent {\n if (event.type === 'error') throw new ModusError(event.message)\n if (event.type === 'cancelled') throw new RunCancelledError()\n if (event.type === 'stream_timeout') throw new StreamTimeoutError()\n return event\n}\n\nexport class ChatStream {\n private final?: ChatResult\n private readonly textParts: string[] = []\n\n constructor(\n private readonly http: HttpClient,\n private readonly path: string,\n private readonly body: Record<string, unknown>,\n private readonly baseUrl?: string,\n ) {}\n\n async *textStream(): AsyncGenerator<string> {\n for await (const event of this.events(false)) {\n if (event.type === 'token') yield event.content\n }\n }\n\n async *eventStream(): AsyncGenerator<RunEvent> {\n yield* this.events(true)\n }\n\n private async *events(supportsReset: boolean): AsyncGenerator<RunEvent> {\n const body = supportsReset\n ? { ...this.body, streamProtocolVersion: 2 }\n : this.body\n for await (const line of this.http.streamPost(this.path, body, {\n baseUrl: this.baseUrl,\n })) {\n for (const event of parseSseStream([line])) {\n const normalized = raiseForEvent(event)\n if (normalized.type === 'token') this.textParts.push(normalized.content)\n if (normalized.type === 'assistant_content_reset') {\n this.textParts.length = 0\n this.textParts.push(normalized.content)\n }\n if (normalized.type === 'done') {\n this.final = {\n content: this.textParts.join(''),\n threadId: normalized.threadId,\n runId: normalized.runId,\n }\n yield normalized\n return\n }\n yield normalized\n }\n }\n }\n\n getFinalResult(): ChatResult {\n if (this.final === undefined) {\n throw new ModusError(\n 'Stream ended without a done event; call getFinalResult() only after consuming textStream() or eventStream().',\n )\n }\n return this.final\n }\n}\n\nexport async function chatBuffered(\n http: HttpClient,\n resource: string,\n resourceId: number | string,\n message: string,\n options: { model: ChatModel; threadId?: string },\n): Promise<ChatResult> {\n validateId(resourceId, `${resource}_id`)\n validateChatModel(options.model)\n const path = chatPath(resource, resourceId, {\n threadId: options.threadId,\n })\n const data = await http.post(path, chatBody(message, options.model))\n return data as ChatResult\n}\n\nexport function chatStreamSession(\n http: HttpClient,\n config: ModusConfig,\n resource: 'scopes' | 'workflows',\n resourceId: number | string,\n message: string,\n options: { model: ChatModel; threadId?: string; version?: string },\n): ChatStream {\n validateId(resourceId, `${resource}_id`)\n validateChatModel(options.model)\n const path = agentHostRunsPath(resource, resourceId)\n return new ChatStream(\n http,\n path,\n agentRunsBody(message, options.model, {\n sessionId: resolveSessionId(options.threadId),\n organizationId: config.organizationId,\n version: options.version,\n }),\n config.agentHost,\n )\n}\n\nexport async function modusChatBuffered(\n http: HttpClient,\n message: string,\n options: { model: ChatModel; threadId?: string },\n): Promise<ChatResult> {\n validateChatModel(options.model)\n const path = modusChatPath({ threadId: options.threadId })\n const data = await http.post(path, chatBody(message, options.model))\n return data as ChatResult\n}\n\nexport function modusChatStreamSession(\n http: HttpClient,\n config: ModusConfig,\n message: string,\n options: { model: ChatModel; threadId?: string },\n): ChatStream {\n validateChatModel(options.model)\n return new ChatStream(\n http,\n agentHostRunsPath('modus'),\n agentRunsBody(message, options.model, {\n sessionId: resolveSessionId(options.threadId),\n organizationId: config.organizationId,\n }),\n config.agentHost,\n )\n}\n","import type {\n AssistantContentResetEvent,\n CancelledEvent,\n DoneEvent,\n ErrorEvent,\n RunEvent,\n StreamTimeoutEvent,\n TokenEvent,\n} from './types/runs.js'\n\nconst SILENTLY_IGNORED = new Set([\n 'heartbeat',\n 'ws_chunk',\n 'unknown',\n 'tool_start',\n 'tool_end',\n 'tool_chunk',\n 'agent_thinking',\n 'warning',\n 'selected_final_content',\n])\n\nfunction parseLine(line: string): Record<string, unknown> | undefined {\n if (!line.startsWith('data:')) return undefined\n const raw = line.slice(5).trimStart()\n if (!raw || raw === '[DONE]') return undefined\n try {\n const data = JSON.parse(raw) as unknown\n if (data && typeof data === 'object' && !Array.isArray(data)) {\n return data as Record<string, unknown>\n }\n } catch {\n return undefined\n }\n return undefined\n}\n\nfunction isAsyncIterable<T>(value: Iterable<T> | AsyncIterable<T>): value is AsyncIterable<T> {\n return Symbol.asyncIterator in Object(value)\n}\n\nfunction* parseData(data: Record<string, unknown>): Generator<RunEvent> {\n const eventType = typeof data.type === 'string' ? data.type : 'unknown'\n\n if (eventType === 'token') {\n const event: TokenEvent = {\n type: 'token',\n content: typeof data.content === 'string' ? data.content : '',\n }\n yield event\n } else if (eventType === 'done') {\n const event: DoneEvent = {\n type: 'done',\n runId: typeof data.runId === 'string' ? data.runId : '',\n threadId: typeof data.threadId === 'string' ? data.threadId : '',\n }\n yield event\n } else if (eventType === 'error') {\n const msg =\n data.error ?? data.message ?? data.content ?? 'Unknown run error'\n const event: ErrorEvent = { type: 'error', message: String(msg) }\n yield event\n } else if (eventType === 'cancelled') {\n const event: CancelledEvent = { type: 'cancelled' }\n yield event\n } else if (eventType === 'stream_timeout') {\n const event: StreamTimeoutEvent = { type: 'stream_timeout' }\n yield event\n } else if (eventType === 'assistant_content_reset') {\n if (typeof data.content !== 'string') return\n const event: AssistantContentResetEvent = {\n type: 'assistant_content_reset',\n content: data.content,\n ...(typeof data.visibleContent === 'string'\n ? { visibleContent: data.visibleContent }\n : {}),\n attempt: typeof data.attempt === 'number' ? data.attempt : 1,\n reason: 'provider_stream_failed',\n }\n yield event\n } else if (!SILENTLY_IGNORED.has(eventType)) {\n // Unknown future event types ignored for forward compatibility.\n return\n }\n}\n\nfunction* parseSyncSseLines(lines: Iterable<string>): Generator<RunEvent> {\n for (const line of lines) {\n const data = parseLine(line)\n if (data !== undefined) yield* parseData(data)\n }\n}\n\nasync function* parseAsyncSseLines(lines: AsyncIterable<string>): AsyncGenerator<RunEvent> {\n for await (const line of lines) {\n const data = parseLine(line)\n if (data !== undefined) yield* parseData(data)\n }\n}\n\n/** Convert raw SSE lines into typed run events (forward-compatible). */\nexport function parseSseStream(lines: Iterable<string>): Generator<RunEvent>\nexport function parseSseStream(lines: AsyncIterable<string>): AsyncGenerator<RunEvent>\nexport function parseSseStream(\n lines: Iterable<string> | AsyncIterable<string>,\n): Generator<RunEvent> | AsyncGenerator<RunEvent> {\n return isAsyncIterable(lines) ? parseAsyncSseLines(lines) : parseSyncSseLines(lines)\n}\n","/** Generated by emit-openapi-write-body-keys.mjs — do not edit. */\nimport type { OperationId } from './operations.js'\n\nexport const WRITE_BODY_ALLOWED_KEYS: Partial<Record<OperationId, readonly string[]>> = {\n ContextCreatorsController_createLink: [\"url\", \"title\", \"isCrawl\", \"pageLimit\"],\n ContextCreatorsController_createNote: [\"title\", \"content\"],\n ContextCreatorsController_createSavedQuery: [\"name\", \"connectionId\", \"query\", \"description\", \"path\"],\n ContextItemsController_lookup: [\"contextType\", \"dataPath\", \"contentProjection\"],\n ContextItemsController_update: [\"contextType\", \"content\", \"description\", \"userFeedback\", \"topics\"],\n CustomContextItemsController_batchCreate: [\"items\"],\n CustomContextItemsController_create: [\"kind\", \"sourceId\", \"sourceName\", \"collectionId\", \"collectionName\", \"externalId\", \"fieldName\", \"name\", \"entityType\", \"description\", \"content\", \"url\", \"attributes\", \"dataType\", \"value\", \"samples\", \"raw\", \"topics\", \"idempotencyKey\", \"access\"],\n CustomContextItemsController_update: [\"name\", \"entityType\", \"description\", \"content\", \"url\", \"attributes\", \"dataType\", \"value\", \"samples\", \"raw\", \"topics\"],\n EvaluationsController_updateConfig: [\"enabled\", \"cadence\", \"judgeModel\", \"judgeGuidance\", \"notifications\"],\n ModusChatController_chat: [\"message\", \"model\"],\n ModusContextController_compose: [\"message\", \"limit\"],\n ModusRunsController_create: [\"message\", \"sessionId\", \"organizationId\", \"version\", \"fileThreadId\", \"config\", \"attachments\", \"userContext\", \"source\", \"runId\", \"subordinateSkillIds\"],\n ResumeRunsController_create: [\"message\", \"sessionId\", \"organizationId\", \"version\", \"fileThreadId\", \"config\", \"attachments\", \"userContext\", \"source\", \"runId\", \"decision\"],\n RunLifecycleController_activeBySession: [\"sessionIds\"],\n RunLifecycleController_cancel: [],\n RunLifecycleController_editQueued: [],\n RunLifecycleController_interrupt: [],\n ScopeChatController_chat: [\"message\", \"model\"],\n ScopeContextController_compose: [\"message\", \"limit\"],\n ScopeMemoriesController_search: [\"query\", \"userId\", \"limit\"],\n ScopeMemoriesController_update: [\"memory\", \"metadata\"],\n ScopeRunsController_create: [\"message\", \"sessionId\", \"organizationId\", \"version\", \"fileThreadId\", \"config\", \"attachments\", \"userContext\", \"source\", \"runId\", \"subordinateSkillIds\"],\n ScopesController_acceptOwnershipTransfer: [],\n ScopesController_create: [\"name\", \"description\", \"expectedOutput\", \"instructions\", \"toolset\", \"model\", \"connectionSet\", \"contextSelections\", \"interfaces\", \"accessConfig\"],\n ScopesController_deploy: [],\n ScopesController_patchMcpConfig: [\"config\"],\n ScopesController_requestOwnershipTransfer: [\"newOwnerUserId\"],\n ScopesController_restore: [],\n ScopesController_update: [\"name\", \"description\", \"expectedOutput\", \"instructions\", \"toolset\", \"model\", \"connectionSet\", \"contextSelections\", \"interfaces\", \"accessConfig\", \"managerId\", \"evaluations\", \"supervisionSubordinateDescriptions\"],\n ScopeSupervisionController_set: [\"subordinateAgentIds\"],\n ScopeSupervisionController_setActive: [\"subordinateAgentIds\"],\n SuggestionsController_recordEvent: [\"event_type\", \"source\", \"skill_id\", \"thread_id\", \"metadata\"],\n WorkflowActionsController_cancel: [],\n WorkflowActionsController_execute: [\"organizationId\", \"sessionId\", \"fileThreadId\", \"workflowAction\", \"previousOutputs\", \"userTimezone\", \"runId\", \"automationId\", \"source\"],\n WorkflowInterfacesController_add: [\"type\", \"name\", \"config\"],\n WorkflowInterfacesController_update: [\"name\", \"config\"],\n WorkflowRunsController_create: [\"message\", \"sessionId\", \"organizationId\", \"version\", \"fileThreadId\", \"config\", \"attachments\", \"userContext\", \"source\", \"runId\"],\n WorkflowsController_acceptOwnershipTransfer: [],\n WorkflowsController_create: [\"name\", \"type\", \"description\", \"trigger\", \"agentSelection\", \"workflowStructure\", \"accessConfig\"],\n WorkflowsController_deploy: [],\n WorkflowsController_requestOwnershipTransfer: [\"newOwnerUserId\"],\n WorkflowsController_restore: [],\n WorkflowsController_toggle: [\"active\"],\n WorkflowsController_update: [\"name\", \"type\", \"description\", \"trigger\", \"agentSelection\", \"workflowStructure\", \"accessConfig\"],\n}\n","import type { OperationId } from './_generated/operations.js'\nimport { WRITE_BODY_ALLOWED_KEYS } from './_generated/write-body-keys.js'\nimport { ValidationError } from './_exceptions.js'\n\nexport const DEFAULT_MAX_PAGE_SIZE = 200\n\nexport function validatePageSize(pageSize: number, maxPageSize?: number): void {\n if (!Number.isInteger(pageSize) || pageSize < 1) {\n throw new Error(`page_size must be a positive int, got ${pageSize}`)\n }\n if (maxPageSize !== undefined && pageSize > maxPageSize) {\n throw new Error(`page_size must be <= ${maxPageSize}, got ${pageSize}`)\n }\n}\n\nexport function validateId(resourceId: number | string, name = 'id'): void {\n if (typeof resourceId === 'string' && !resourceId.trim()) {\n throw new Error(`${name} must be a non-empty string or int`)\n }\n}\n\n// Keep in sync with SkillChatRequestDto.model in the public API contract.\nconst ALLOWED_CHAT_MODELS = new Set([\n 'claude-sonnet-5',\n 'claude-sonnet-4.6',\n 'claude-opus-4.8',\n 'gpt-5.2',\n 'gpt-5.5',\n 'gpt-5-mini',\n 'gpt-oss-120b',\n 'gpt-oss-20b',\n 'qwen3-235b-a22b-2507',\n 'qwen3-coder',\n 'qwen3-32b',\n 'deepseek-chat-v3.1',\n 'minimax-m2.7',\n 'llama-4-maverick',\n 'llama-4-scout',\n 'llama-3.3-70b-instruct',\n 'gemini-3.1-pro-preview',\n 'gemini-3-flash-preview',\n 'grok-4.3-fast',\n 'grok-4.3',\n])\n\nexport function validateChatModel(model: string): void {\n if (!ALLOWED_CHAT_MODELS.has(model)) {\n const supported = [...ALLOWED_CHAT_MODELS].sort().join(', ')\n throw new Error(`Unsupported model ${JSON.stringify(model)}. Choose one of: ${supported}.`)\n }\n}\n\nexport function assertWriteBodyKeys(operationId: OperationId, body: unknown): void {\n const allowed = WRITE_BODY_ALLOWED_KEYS[operationId]\n if (allowed === undefined) return\n if (body === undefined || body === null) return\n if (typeof body !== 'object' || Array.isArray(body)) {\n throw new ValidationError(`Request body must be a plain object for ${operationId}`)\n }\n const allowedSet = new Set(allowed)\n const extra = Object.keys(body as Record<string, unknown>).filter((k) => !allowedSet.has(k))\n if (extra.length > 0) {\n throw new ValidationError(\n `${operationId}: disallowed request body field(s): ${extra.sort().join(', ')}`,\n )\n }\n}\n","import { ModusError } from './_exceptions.js'\n\nexport class Page<T> {\n readonly items: T[]\n readonly nextPageToken?: string\n private readonly fetchPage: (token: string) => Page<T> | Promise<Page<T>>\n\n constructor(\n items: T[],\n nextPageToken: string | undefined,\n fetchPage: (token: string) => Page<T> | Promise<Page<T>>,\n ) {\n this.items = items\n this.nextPageToken = normalizePageToken(nextPageToken)\n this.fetchPage = fetchPage\n }\n\n hasNextPage(): boolean {\n return this.nextPageToken !== undefined\n }\n\n async getNextPage(): Promise<Page<T>> {\n if (this.nextPageToken === undefined) {\n throw new Error(\n 'No next page available. Check hasNextPage() before calling getNextPage().',\n )\n }\n return this.fetchPage(this.nextPageToken)\n }\n\n async *autoPagingIter(): AsyncGenerator<T> {\n for (const item of this.items) yield item\n let nextPageToken = this.nextPageToken\n while (nextPageToken !== undefined) {\n const page = await this.fetchPage(nextPageToken)\n for (const item of page.items) yield item\n nextPageToken = page.nextPageToken\n }\n }\n\n [Symbol.iterator](): Iterator<T> {\n return this.items[Symbol.iterator]()\n }\n}\n\nexport function normalizePageToken(token?: string | null): string | undefined {\n if (token === undefined || token === null || !String(token).trim()) return undefined\n return token\n}\n\nexport function aipListParams(\n pageSize: number,\n pageToken?: string,\n extra: Record<string, unknown> = {},\n): Record<string, unknown> {\n const params: Record<string, unknown> = { pageSize, ...extra }\n const token = normalizePageToken(pageToken)\n if (token !== undefined) params.pageToken = token\n return params\n}\n\nexport function nextPageTokenFromResponse(data: Record<string, unknown>): string | undefined {\n return normalizePageToken(\n typeof data.nextPageToken === 'string' ? data.nextPageToken : undefined,\n )\n}\n\nexport function requireItemsList(data: Record<string, unknown>, itemsKey: string): unknown[] {\n const value = data[itemsKey]\n if (!Array.isArray(value)) {\n throw new ModusError(\n `Unexpected list response shape: ${itemsKey} must be a list, got ${typeof value}. This is likely a backend error.`,\n )\n }\n return value\n}\n\nexport function buildAipPage<T>(\n data: Record<string, unknown>,\n itemsKey: string,\n mapItem: (raw: unknown) => T,\n fetchPage: (token: string) => Page<T> | Promise<Page<T>>,\n): Page<T> {\n if (typeof data !== 'object' || data === null || !(itemsKey in data)) {\n throw new ModusError(\n `Unexpected list response shape: missing ${itemsKey}. Got: ${typeof data}. This is likely a backend error.`,\n )\n }\n const items = requireItemsList(data, itemsKey).map(mapItem)\n return new Page(items, nextPageTokenFromResponse(data), fetchPage)\n}\n","import type { components } from '../_generated/v1.js'\n\nexport type Agent = components['schemas']['AgentDto']\n\n/** Runtime + type for agent kinds (use `AgentType.task`, not only as a type). */\nexport const AgentType = {\n task: 'task',\n workflow: 'workflow',\n} as const\n\nexport type AgentType = (typeof AgentType)[keyof typeof AgentType]\n","import type { components } from '../_generated/v1.js'\n\nexport type Conversation = components['schemas']['ConversationDto']\nexport type ConversationListItem = components['schemas']['ConversationListItemDto']\nexport type Message = components['schemas']['ConversationMessageDto']\nexport type ConversationKind = 'all' | 'modus' | 'skills'\n\n/** Skill id for a list item, or undefined for direct Modus chats (skillId 0). */\nexport function conversationSkillId(item: ConversationListItem): number | undefined {\n return item.skillId === 0 ? undefined : item.skillId\n}\n","import { AuthenticationError } from './_exceptions.js'\n\nconst ENV_API_KEY = 'MODUS_API_KEY'\nconst ENV_BASE_URL = 'MODUS_BASE_URL'\nconst ENV_AGENT_HOST = 'MODUS_AGENT_HOST'\nconst ENV_ORGANIZATION_ID = 'MODUS_ORGANIZATION_ID'\nconst ENV_TIMEOUT = 'MODUS_TIMEOUT'\nconst ENV_MAX_RETRIES = 'MODUS_MAX_RETRIES'\nconst KEY_PREFIX = 'modus_'\n\nexport function resolveApiKey(apiKey?: string): string {\n const key = apiKey ?? process.env[ENV_API_KEY]\n if (!key) {\n throw new AuthenticationError(\n `No API key provided. Pass apiKey or set the ${ENV_API_KEY} environment variable. ` +\n 'Create a token at app.getmodus.com → Settings → API Tokens.',\n )\n }\n if (!key.startsWith(KEY_PREFIX)) {\n throw new AuthenticationError(\n `Invalid API key format. Modus API keys start with '${KEY_PREFIX}'. ` +\n 'Create a token at app.getmodus.com → Settings → API Tokens.',\n )\n }\n return key\n}\n\nexport function resolveBaseUrl(baseUrl?: string): string | undefined {\n return baseUrl ?? process.env[ENV_BASE_URL] ?? undefined\n}\n\nexport function resolveAgentHost(agentHost?: string): string | undefined {\n return agentHost ?? process.env[ENV_AGENT_HOST] ?? undefined\n}\n\nexport function resolveOrganizationId(organizationId?: string): string | undefined {\n const raw = organizationId ?? process.env[ENV_ORGANIZATION_ID]\n if (raw === undefined) return undefined\n const stripped = raw.trim()\n return stripped || undefined\n}\n\nexport function resolveTimeoutMs(explicitMs?: number): number | undefined {\n if (explicitMs !== undefined) return explicitMs\n const raw = process.env[ENV_TIMEOUT]\n if (raw === undefined) return undefined\n const seconds = Number(raw)\n return Number.isFinite(seconds) ? seconds * 1000 : undefined\n}\n\nexport function resolveMaxRetries(explicit?: number): number | undefined {\n if (explicit !== undefined) {\n if (explicit < 0) throw new Error(`max_retries must be >= 0, got ${explicit}`)\n return explicit\n }\n const raw = process.env[ENV_MAX_RETRIES]\n if (raw === undefined) return undefined\n const value = Number.parseInt(raw, 10)\n return Number.isFinite(value) && value >= 0 ? value : undefined\n}\n\nexport function authHeaders(apiKey: string): Record<string, string> {\n return { Authorization: `Bearer ${apiKey}` }\n}\n","import {\n resolveAgentHost,\n resolveApiKey,\n resolveBaseUrl,\n resolveMaxRetries,\n resolveOrganizationId,\n resolveTimeoutMs,\n} from './_auth.js'\n\nexport const DEFAULT_BASE_URL = 'https://api.getmodus.com'\nexport const DEFAULT_AGENT_HOST = 'https://agent.getmodus.com'\nexport const DEFAULT_TIMEOUT_MS = 300_000\nexport const DEFAULT_MAX_RETRIES = 2\n\nexport interface ModusOptions {\n apiKey?: string\n baseUrl?: string\n /** Agent host origin for streaming runs (default https://agent.getmodus.com). */\n agentHost?: string\n /**\n * Optional Clerk organization id for agent-host run bodies. Usually omit —\n * agent-service uses the PAT principal's org.\n */\n organizationId?: string\n /**\n * Override service-specific API origins, for example:\n * `{ 'agent-service': 'http://localhost:3130' }`.\n */\n baseUrls?: Record<string, string>\n /** Request timeout in milliseconds. */\n timeoutMs?: number\n maxRetries?: number\n /** Test injection only. */\n fetch?: typeof fetch\n}\n\nexport interface ModusConfig {\n readonly apiKey: string\n readonly baseUrl: string\n readonly agentHost: string\n readonly organizationId?: string\n readonly baseUrls: Readonly<Record<string, string>>\n readonly timeoutMs: number\n readonly maxRetries: number\n readonly fetch: typeof fetch\n}\n\nfunction normalizeBaseUrl(baseUrl: string): string {\n return baseUrl.replace(/\\/$/, '')\n}\n\nfunction normalizeBaseUrls(baseUrls: Record<string, string> | undefined): Record<string, string> {\n return Object.fromEntries(\n Object.entries(baseUrls ?? {}).map(([service, baseUrl]) => [\n service,\n normalizeBaseUrl(baseUrl),\n ]),\n )\n}\n\nexport function createModusConfig(options: ModusOptions = {}): ModusConfig {\n const maxRetries = resolveMaxRetries(options.maxRetries) ?? DEFAULT_MAX_RETRIES\n if (!Number.isInteger(maxRetries) || maxRetries < 0) {\n throw new Error(`max_retries must be a non-negative int, got ${maxRetries}`)\n }\n const baseUrl = normalizeBaseUrl(resolveBaseUrl(options.baseUrl) ?? DEFAULT_BASE_URL)\n const baseUrlOverrides = normalizeBaseUrls(options.baseUrls)\n // baseUrls['agent-service'] must drive streaming too (same origin as invoke).\n const agentHost = normalizeBaseUrl(\n baseUrlOverrides['agent-service'] ??\n resolveAgentHost(options.agentHost) ??\n DEFAULT_AGENT_HOST,\n )\n const organizationId = resolveOrganizationId(options.organizationId)\n return Object.freeze({\n apiKey: resolveApiKey(options.apiKey),\n baseUrl,\n agentHost,\n ...(organizationId !== undefined ? { organizationId } : {}),\n baseUrls: Object.freeze({\n 'modus-api': baseUrl,\n 'agent-service': agentHost,\n ...baseUrlOverrides,\n }),\n timeoutMs: resolveTimeoutMs(options.timeoutMs) ?? DEFAULT_TIMEOUT_MS,\n maxRetries,\n fetch: options.fetch ?? globalThis.fetch.bind(globalThis),\n })\n}\n\nexport function resolveServiceBaseUrl(\n config: ModusConfig,\n service: string,\n generatedBaseUrl?: string | null,\n): string {\n // Prefer explicit agentHost / baseUrls over OpenAPI-codegen serverUrl so\n // MODUS_AGENT_HOST and agentHost= always win over stale generated defaults.\n if (service === 'agent-service') {\n return config.baseUrls['agent-service'] ?? config.agentHost ?? generatedBaseUrl ?? config.baseUrl\n }\n return config.baseUrls[service] ?? generatedBaseUrl ?? config.baseUrl\n}\n\nexport function formatConfigForLog(config: ModusConfig): string {\n const masked = config.apiKey.length > 10 ? `${config.apiKey.slice(0, 10)}***` : '***'\n return `ModusConfig(apiKey=${JSON.stringify(masked)}, baseUrl=${JSON.stringify(config.baseUrl)}, timeoutMs=${config.timeoutMs}, maxRetries=${config.maxRetries})`\n}\n","import { authHeaders } from './_auth.js'\nimport type { ModusConfig } from './_config.js'\nimport {\n APIConnectionError,\n AuthenticationError,\n ConflictError,\n InternalServerError,\n ModusError,\n NotFoundError,\n PermissionDeniedError,\n RateLimitError,\n UnprocessableError,\n} from './_exceptions.js'\n\nconst USER_AGENT = `modus-typescript/${__SDK_VERSION__} (node/${process.version}; ${process.platform})`\n\ntype QueryValue = string | number | boolean | null | undefined | readonly (string | number)[]\ntype QueryParams = Record<string, QueryValue>\ntype RequestOptions = {\n baseUrl?: string\n headers?: Record<string, string>\n}\n\nfunction buildUrl(baseUrl: string, path: string, params?: QueryParams): string {\n const url = new URL(path.startsWith('/') ? path : `/${path}`, baseUrl)\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null) continue\n if (Array.isArray(value)) {\n for (const item of value) url.searchParams.append(key, String(item))\n } else {\n url.searchParams.set(key, String(value))\n }\n }\n }\n return url.toString()\n}\n\nfunction headersToRecord(headers: Headers): Record<string, string> {\n const out: Record<string, string> = {}\n headers.forEach((value, key) => {\n out[key] = value\n })\n return out\n}\n\nfunction messageFromBody(raw: string, statusCode: number): string {\n if (!raw) return `HTTP ${statusCode}`\n try {\n const body = JSON.parse(raw) as unknown\n if (body && typeof body === 'object') {\n const record = body as Record<string, unknown>\n const envelope = record.error\n if (envelope && typeof envelope === 'object') {\n const msg = (envelope as Record<string, unknown>).message\n if (typeof msg === 'string' && msg) return msg\n }\n const msg = record.message ?? record.error\n if (Array.isArray(msg)) return msg.map(String).join('; ')\n if (typeof msg === 'string' && msg) return msg\n }\n } catch {\n // non-JSON body\n }\n return raw\n}\n\nfunction errorCodeFromBody(raw: string): string | undefined {\n try {\n const body = JSON.parse(raw) as { error?: { code?: string } }\n return typeof body.error?.code === 'string' ? body.error.code : undefined\n } catch {\n return undefined\n }\n}\n\nexport function raiseForStatus(response: Response, body: string): void {\n if (response.ok) return\n const message = messageFromBody(body, response.status)\n const requestId =\n response.headers.get('x-request-id') ?? response.headers.get('X-Request-ID') ?? undefined\n const headers = headersToRecord(response.headers)\n const code = errorCodeFromBody(body)\n const base = { requestId, responseHeaders: headers, body, code }\n\n switch (response.status) {\n case 401:\n throw new AuthenticationError(message, base)\n case 403:\n throw new PermissionDeniedError(message, base)\n case 404:\n throw new NotFoundError(message, base)\n case 409:\n throw new ConflictError(message, base)\n case 422: {\n let errors: unknown\n try {\n errors = JSON.parse(body)\n } catch {\n errors = undefined\n }\n throw new UnprocessableError(message, { ...base, errors })\n }\n case 429: {\n const retryHeader = response.headers.get('retry-after') ?? ''\n const retryAfter = /^\\d+$/.test(retryHeader) ? Number.parseInt(retryHeader, 10) : undefined\n throw new RateLimitError(message, { ...base, retryAfter })\n }\n default:\n if (response.status >= 500) {\n throw new InternalServerError(message, response.status, base)\n }\n throw new ModusError(message, { ...base, statusCode: response.status })\n }\n}\n\nfunction wrapNetworkError(error: unknown, baseUrl: string): APIConnectionError {\n const detail = error instanceof Error ? error.message : String(error)\n return new APIConnectionError(\n `Network error communicating with Modus API at ${JSON.stringify(baseUrl)}: ${detail}. ` +\n 'Check connectivity and that baseUrl is correct.',\n )\n}\n\nasync function readBody(response: Response): Promise<string> {\n return response.text()\n}\n\nexport class HttpClient {\n readonly config: ModusConfig\n\n constructor(config: ModusConfig) {\n this.config = config\n }\n\n private defaultHeaders(): Record<string, string> {\n return {\n ...authHeaders(this.config.apiKey),\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'User-Agent': USER_AGENT,\n }\n }\n\n private async request(\n method: string,\n path: string,\n options: { params?: QueryParams; json?: unknown } & RequestOptions = {},\n ): Promise<unknown> {\n const baseUrl = options.baseUrl ?? this.config.baseUrl\n const url = buildUrl(baseUrl, path, options.params)\n try {\n const response = await this.config.fetch(url, {\n method,\n headers: { ...this.defaultHeaders(), ...options.headers },\n body: options.json !== undefined ? JSON.stringify(options.json) : undefined,\n signal: AbortSignal.timeout(this.config.timeoutMs),\n })\n const body = await readBody(response)\n raiseForStatus(response, body)\n if (response.status === 204 || !body) return null\n return JSON.parse(body) as unknown\n } catch (error) {\n if (error instanceof ModusError) throw error\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw wrapNetworkError(new Error('Request timed out'), baseUrl)\n }\n throw wrapNetworkError(error, baseUrl)\n }\n }\n\n get(path: string, params?: QueryParams, options: RequestOptions = {}): Promise<unknown> {\n return this.request('GET', path, { params, ...options })\n }\n\n post(path: string, json?: unknown, options: RequestOptions = {}): Promise<unknown> {\n return this.request('POST', path, { json, ...options })\n }\n\n put(path: string, json?: unknown, options: RequestOptions = {}): Promise<unknown> {\n return this.request('PUT', path, { json, ...options })\n }\n\n patch(\n path: string,\n json?: unknown,\n params?: QueryParams,\n options: RequestOptions = {},\n ): Promise<unknown> {\n return this.request('PATCH', path, { json, params, ...options })\n }\n\n delete(path: string, options: RequestOptions = {}): Promise<unknown> {\n return this.request('DELETE', path, options)\n }\n\n private async *stream(\n method: 'GET' | 'POST',\n path: string,\n options: { json?: unknown; params?: QueryParams } & RequestOptions = {},\n ): AsyncGenerator<string> {\n const baseUrl = options.baseUrl ?? this.config.baseUrl\n const url = buildUrl(baseUrl, path, options.params)\n try {\n const response = await this.config.fetch(url, {\n method,\n headers: { ...this.defaultHeaders(), ...options.headers },\n body: options.json !== undefined ? JSON.stringify(options.json) : undefined,\n signal: AbortSignal.timeout(this.config.timeoutMs),\n })\n if (!response.ok) {\n const body = await readBody(response)\n raiseForStatus(response, body)\n return\n }\n if (!response.body) return\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let buffer = ''\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n buffer += decoder.decode(value, { stream: true })\n const lines = buffer.split('\\n')\n buffer = lines.pop() ?? ''\n for (const line of lines) {\n if (line.trim()) yield line\n }\n }\n if (buffer.trim()) yield buffer\n } catch (error) {\n if (error instanceof ModusError) throw error\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw wrapNetworkError(new Error('Request timed out'), baseUrl)\n }\n throw wrapNetworkError(error, baseUrl)\n }\n }\n\n streamGet(path: string, params?: QueryParams, options: RequestOptions = {}): AsyncGenerator<string> {\n return this.stream('GET', path, { params, ...options })\n }\n\n streamPost(path: string, json?: unknown, options: RequestOptions = {}): AsyncGenerator<string> {\n return this.stream('POST', path, { json, ...options })\n }\n}\n","import { createModusConfig, formatConfigForLog, type ModusOptions } from './_config.js'\nimport type { HttpClient } from './_http.js'\nimport { HttpClient as HttpClientImpl } from './_http.js'\n\n/**\n * Shared client wiring for Modus and ModusManagement.\n * Resources attach in Phase 5.\n */\nexport abstract class ModusClientBase {\n protected readonly _config: ReturnType<typeof createModusConfig>\n protected readonly _http: HttpClient\n\n constructor(options: ModusOptions = {}) {\n this._config = createModusConfig(options)\n this._http = new HttpClientImpl(this._config)\n }\n\n get config(): Readonly<typeof this._config> {\n return this._config\n }\n\n /** @internal */\n get http(): HttpClient {\n return this._http\n }\n\n toString(): string {\n return formatConfigForLog(this._config)\n }\n}\n","import { resolveServiceBaseUrl } from './_config.js'\nimport { OPERATIONS, type OperationId, type OperationSpec } from './_generated/operations.js'\nimport type { HttpClient } from './_http.js'\n\nexport function getOperation(operationId: string): OperationSpec {\n if (!(operationId in OPERATIONS)) {\n throw new Error(\n `Unknown API operation ${JSON.stringify(operationId)}. Upgrade @getmodus/sdk or report a version mismatch.`,\n )\n }\n return OPERATIONS[operationId as OperationId]\n}\n\nfunction formatPath(template: string, pathParams: Record<string, unknown>): string {\n return template\n .split('/')\n .map((segment) => {\n if (!segment.startsWith('{') || !segment.endsWith('}')) return segment\n const key = segment.slice(1, -1)\n if (!(key in pathParams)) {\n throw new Error(`Missing path parameter ${JSON.stringify(key)} for ${JSON.stringify(template)}`)\n }\n return encodeURIComponent(String(pathParams[key]))\n })\n .join('/')\n}\n\nexport function operationBaseUrl(http: HttpClient, operation: OperationSpec): string {\n return resolveServiceBaseUrl(http.config, operation.service, operation.serverUrl)\n}\n\nexport function formatOperationPath(\n operationId: OperationId,\n pathParams: Record<string, unknown> = {},\n): string {\n return formatPath(getOperation(operationId).path, pathParams)\n}\n\ntype QueryValue =\n | string\n | number\n | boolean\n | null\n | undefined\n | readonly (string | number)[]\n\nexport async function invokeOperation(\n http: HttpClient,\n operationId: OperationId,\n options: {\n pathParams?: Record<string, unknown>\n query?: Record<string, QueryValue>\n jsonBody?: unknown\n headers?: Record<string, string>\n } = {},\n): Promise<unknown> {\n const op = getOperation(operationId)\n const path = formatPath(op.path, options.pathParams ?? {})\n const params = options.query\n const requestOptions = {\n baseUrl: operationBaseUrl(http, op),\n headers: options.headers,\n }\n\n switch (op.method) {\n case 'GET':\n return http.get(path, params, requestOptions)\n case 'POST':\n return http.post(path, options.jsonBody, requestOptions)\n case 'PUT':\n return http.put(path, options.jsonBody, requestOptions)\n case 'PATCH':\n return http.patch(path, options.jsonBody, params, requestOptions)\n case 'DELETE':\n return http.delete(path, requestOptions)\n default:\n throw new Error(`Unsupported HTTP method ${JSON.stringify(op.method)}`)\n }\n}\n","import {\n APIConnectionError,\n InternalServerError,\n NotFoundError,\n RateLimitError,\n} from './_exceptions.js'\n\nconst DEPLOY_NOT_FOUND_BACKOFF_MS = 500\nconst MAX_DEPLOY_NOT_FOUND_RETRIES = 1\n\nexport interface WithRetryOptions {\n /** Read-after-write on deploy; one short retry on 404. */\n retryNotFoundOnDeploy?: boolean\n}\n\nconst RETRYABLE = [RateLimitError, InternalServerError, APIConnectionError] as const\n\nfunction isRetryable(error: unknown): error is InstanceType<(typeof RETRYABLE)[number]> {\n return RETRYABLE.some((Cls) => error instanceof Cls)\n}\n\nfunction backoffSeconds(attempt: number, error: unknown): number {\n if (error instanceof RateLimitError && error.retryAfter !== undefined) {\n return Math.max(0, error.retryAfter)\n }\n if (attempt === 0) return 0\n return Math.max(0.5, 2 ** (attempt - 1) + (Math.random() * 0.6 - 0.3))\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nexport async function withRetry<T>(\n fn: () => Promise<T>,\n maxRetries: number,\n options: WithRetryOptions = {},\n): Promise<T> {\n let deployNotFoundRetries = 0\n let attempt = 0\n while (true) {\n try {\n return await fn()\n } catch (error) {\n if (\n options.retryNotFoundOnDeploy &&\n error instanceof NotFoundError &&\n deployNotFoundRetries < MAX_DEPLOY_NOT_FOUND_RETRIES\n ) {\n deployNotFoundRetries++\n await sleep(DEPLOY_NOT_FOUND_BACKOFF_MS)\n continue\n }\n if (!isRetryable(error) || attempt >= maxRetries) throw error\n await sleep(backoffSeconds(attempt, error) * 1000)\n attempt++\n }\n }\n}\n","import type { ModusConfig } from './_config.js'\nimport type { OperationId } from './_generated/operations.js'\nimport type { HttpClient } from './_http.js'\nimport { invokeOperation } from './_openapi-invoke.js'\nimport { withRetry } from './_retry.js'\nimport { assertWriteBodyKeys } from './_validation.js'\n\nexport async function invokeWithRetry(\n config: ModusConfig,\n http: HttpClient,\n operationId: OperationId,\n options: {\n pathParams?: Record<string, unknown>\n query?: Record<string, string | number | boolean | readonly (string | number)[] | undefined | null>\n jsonBody?: unknown\n headers?: Record<string, string>\n } = {},\n): Promise<unknown> {\n if (options.jsonBody !== undefined) {\n assertWriteBodyKeys(operationId, options.jsonBody)\n }\n return withRetry(() => invokeOperation(http, operationId, options), config.maxRetries, {\n retryNotFoundOnDeploy: operationId.endsWith('_deploy'),\n })\n}\n\nexport function omitUndefined<T extends Record<string, unknown>>(obj: T): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(obj).filter((entry): entry is [string, unknown] => entry[1] !== undefined),\n )\n}\n\nexport function asRecord(data: unknown): Record<string, unknown> {\n if (typeof data === 'object' && data !== null && !Array.isArray(data)) {\n return data as Record<string, unknown>\n }\n throw new Error(`Expected object response, got ${typeof data}`)\n}\n","import { randomUUID } from 'node:crypto'\nimport type { ModusConfig } from '../../_config.js'\nimport { ModusError } from '../../_exceptions.js'\nimport type { OperationId } from '../../_generated/operations.js'\nimport {\n formatOperationPath,\n getOperation,\n operationBaseUrl,\n} from '../../_openapi-invoke.js'\nimport type { HttpClient } from '../../_http.js'\nimport { Page, normalizePageToken } from '../../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../../_request.js'\nimport { parseSseStream } from '../../_streaming.js'\nimport { validateId, validatePageSize } from '../../_validation.js'\nimport type {\n AgentRun,\n AgentRunListItem,\n AgentRunCreateRequest,\n ApprovalScope,\n CreateAgentRunRequest,\n ModusRunCreateRequest,\n ResumeRunRequest,\n RunStatus,\n RunTimeframe,\n SkillRunCreateRequest,\n} from '../../types/agent-runs.js'\nimport type { ActiveConversationRun, RunEvent } from '../../types/runs.js'\n\nconst RUNS_MAX_PAGE_SIZE = 100\n\nfunction runsListParams(\n pageSize: number,\n pageToken: string | undefined,\n status?: RunStatus,\n timeframe?: RunTimeframe,\n approvalScope?: ApprovalScope,\n search?: string,\n): Record<string, string | number | boolean | undefined | null> {\n const params: Record<string, string | number | boolean | undefined | null> = { pageSize }\n const token = normalizePageToken(pageToken)\n if (token !== undefined) params.pageToken = token\n if (status !== undefined) params.status = status\n if (timeframe !== undefined) params.timeframe = timeframe\n if (approvalScope !== undefined) params.approvalScope = approvalScope\n if (search !== undefined) params.search = search\n return params\n}\n\nfunction activeRunsParams(\n pageSize: number,\n pageToken: string | undefined,\n): Record<string, string | number> {\n const params: Record<string, string | number> = { pageSize }\n const token = normalizePageToken(pageToken)\n if (token !== undefined) params.pageToken = token\n return params\n}\n\nfunction parseRun(raw: unknown): AgentRun {\n return raw as AgentRun\n}\n\nfunction parseActiveRunsArray(raw: unknown): ActiveConversationRun[] {\n const data = asRecord(raw)\n const runs = data.runs\n if (!Array.isArray(runs)) {\n throw new ModusError(\n `Unexpected active runs response shape: runs must be a list, got ${typeof runs}.`,\n )\n }\n return runs as ActiveConversationRun[]\n}\n\nfunction parseActiveRunsPage(\n raw: unknown,\n fetchPage: (token: string) => Promise<Page<ActiveConversationRun>>,\n): Page<ActiveConversationRun> {\n const data = asRecord(raw)\n const runs = data.runs\n if (!Array.isArray(runs)) {\n throw new ModusError(\n `Unexpected active runs response shape: runs must be a list, got ${typeof runs}.`,\n )\n }\n return new Page(\n runs as ActiveConversationRun[],\n normalizePageToken(\n typeof data.nextPageToken === 'string' ? data.nextPageToken : undefined,\n ),\n fetchPage,\n )\n}\n\nfunction randomRunId(): string {\n return randomUUID()\n}\n\nexport interface AgentRunStream extends AsyncIterable<RunEvent> {\n readonly runId: string\n readonly events: AsyncIterable<RunEvent>\n}\n\nexport function makeAgentRunStream(runId: string, events: AsyncIterable<RunEvent>): AgentRunStream {\n return {\n runId,\n events,\n [Symbol.asyncIterator]() {\n return events[Symbol.asyncIterator]()\n },\n }\n}\n\nexport class WorkflowRunsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(\n workflowId: number | string,\n options: {\n pageSize?: number\n pageToken?: string\n status?: RunStatus\n timeframe?: RunTimeframe\n approvalScope?: ApprovalScope\n search?: string\n } = {},\n ): Promise<Page<AgentRunListItem>> {\n validateId(workflowId, 'workflow_id')\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize, RUNS_MAX_PAGE_SIZE)\n return this.listPage(workflowId, pageSize, options.pageToken, options)\n }\n\n private async listPage(\n workflowId: number | string,\n pageSize: number,\n pageToken: string | undefined,\n filters: {\n status?: RunStatus\n timeframe?: RunTimeframe\n approvalScope?: ApprovalScope\n search?: string\n },\n ): Promise<Page<AgentRunListItem>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'WorkflowRunsController_list', {\n pathParams: { id: workflowId },\n query: runsListParams(\n pageSize,\n pageToken,\n filters.status,\n filters.timeframe,\n filters.approvalScope,\n filters.search,\n ),\n }),\n )\n const runs = data.runs\n if (!Array.isArray(runs)) {\n throw new ModusError(\n `Unexpected list response shape: runs must be a list, got ${typeof runs}.`,\n )\n }\n return new Page(\n runs as AgentRunListItem[],\n normalizePageToken(\n typeof data.nextPageToken === 'string' ? data.nextPageToken : undefined,\n ),\n (token: string) => this.listPage(workflowId, pageSize, token, filters),\n )\n }\n\n async get(\n workflowId: number | string,\n runId: string,\n options: { temporalRunId?: string } = {},\n ): Promise<AgentRun> {\n validateId(workflowId, 'workflow_id')\n if (!runId.trim()) throw new Error('run_id must be a non-empty string')\n const query =\n options.temporalRunId !== undefined\n ? { temporalRunId: options.temporalRunId }\n : undefined\n const data = await invokeWithRetry(this.config, this.http, 'WorkflowRunsController_get', {\n pathParams: { id: workflowId, runId },\n query,\n })\n return parseRun(data)\n }\n\n create(\n workflowId: number | string,\n body: CreateAgentRunRequest,\n options: { idempotencyKey?: string } = {},\n ): AgentRunStream {\n validateId(workflowId, 'workflow_id')\n return this.createRun('WorkflowRunsController_create', body, { id: workflowId }, options)\n }\n\n createScope(\n scopeId: number | string,\n body: SkillRunCreateRequest,\n options: { idempotencyKey?: string } = {},\n ): AgentRunStream {\n validateId(scopeId, 'scope_id')\n return this.createRun('ScopeRunsController_create', body, { id: scopeId }, options)\n }\n\n createModus(\n body: ModusRunCreateRequest,\n options: { idempotencyKey?: string } = {},\n ): AgentRunStream {\n return this.createRun('ModusRunsController_create', body, {}, options)\n }\n\n resume(\n runId: string,\n body: ResumeRunRequest,\n options: { idempotencyKey?: string } = {},\n ): AgentRunStream {\n validateId(runId, 'run_id')\n return this.createRun('ResumeRunsController_create', body, { runId }, options)\n }\n\n async cancel(runId: string): Promise<void> {\n validateId(runId, 'run_id')\n await invokeWithRetry(this.config, this.http, 'RunLifecycleController_cancel', {\n pathParams: { runId },\n jsonBody: {},\n })\n }\n\n async events(runId: string): Promise<unknown> {\n validateId(runId, 'run_id')\n return invokeWithRetry(this.config, this.http, 'RunLifecycleController_events', {\n pathParams: { runId },\n })\n }\n\n async interrupt(runId: string): Promise<void> {\n validateId(runId, 'run_id')\n await invokeWithRetry(this.config, this.http, 'RunLifecycleController_interrupt', {\n pathParams: { runId },\n jsonBody: {},\n })\n }\n\n async editQueued(runId: string): Promise<void> {\n validateId(runId, 'run_id')\n await invokeWithRetry(this.config, this.http, 'RunLifecycleController_editQueued', {\n pathParams: { runId },\n jsonBody: {},\n })\n }\n\n active(options: {\n pageSize?: number\n pageToken?: string\n } = {}): Promise<Page<ActiveConversationRun>> {\n const pageSize = options.pageSize ?? 50\n validatePageSize(pageSize, RUNS_MAX_PAGE_SIZE)\n return this.activePage(pageSize, options.pageToken)\n }\n\n private async activePage(\n pageSize: number,\n pageToken: string | undefined,\n ): Promise<Page<ActiveConversationRun>> {\n return parseActiveRunsPage(\n await invokeWithRetry(this.config, this.http, 'RunLifecycleController_active', {\n query: activeRunsParams(pageSize, pageToken),\n }),\n (token: string) => this.activePage(pageSize, token),\n )\n }\n\n async activeBySession(sessionIds: readonly string[]): Promise<ActiveConversationRun[]> {\n const uniqueSessionIds = [...new Set(sessionIds.map((id) => id.trim()).filter(Boolean))]\n if (uniqueSessionIds.length > 100) {\n throw new Error('sessionIds must contain at most 100 ids')\n }\n return parseActiveRunsArray(\n await invokeWithRetry(this.config, this.http, 'RunLifecycleController_activeBySession', {\n jsonBody: { sessionIds: uniqueSessionIds },\n }),\n )\n }\n\n stream(runId: string, options: { lastEventId?: string } = {}): AgentRunStream {\n validateId(runId, 'run_id')\n const op = getOperation('RunLifecycleController_stream')\n const path = formatOperationPath('RunLifecycleController_stream', { runId })\n const lines = this.http.streamGet(path, undefined, {\n baseUrl: operationBaseUrl(this.http, op),\n headers: options.lastEventId ? { 'Last-Event-ID': options.lastEventId } : undefined,\n })\n return makeAgentRunStream(runId, this.parseEvents(lines))\n }\n\n private createRun(\n operationId: OperationId,\n body: AgentRunCreateRequest | SkillRunCreateRequest | ModusRunCreateRequest | ResumeRunRequest,\n pathParams: Record<string, unknown>,\n options: { idempotencyKey?: string },\n ): AgentRunStream {\n const runId = options.idempotencyKey?.trim() || body.runId?.trim() || randomRunId()\n const op = getOperation(operationId)\n const path = formatOperationPath(operationId, pathParams)\n const lines = this.http.streamPost(path, {\n ...body,\n streamProtocolVersion: 2,\n }, {\n baseUrl: operationBaseUrl(this.http, op),\n headers: { 'Idempotency-Key': runId },\n })\n return makeAgentRunStream(runId, this.parseEvents(lines))\n }\n\n private async *parseEvents(lines: AsyncIterable<string>): AsyncGenerator<RunEvent> {\n yield* parseSseStream(lines)\n }\n}\n","import { randomUUID } from 'node:crypto'\nimport type { ModusConfig } from '../../_config.js'\nimport {\n formatOperationPath,\n getOperation,\n operationBaseUrl,\n} from '../../_openapi-invoke.js'\nimport type { HttpClient } from '../../_http.js'\nimport { invokeWithRetry } from '../../_request.js'\nimport { parseSseStream } from '../../_streaming.js'\nimport { validateId } from '../../_validation.js'\nimport type { WorkflowActionRequest } from '../../types/agent-runs.js'\nimport type { RunEvent } from '../../types/runs.js'\nimport { makeAgentRunStream, type AgentRunStream } from './runs.js'\n\nfunction randomRunId(): string {\n return randomUUID()\n}\n\nexport class AgentWorkflowActionsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n execute(\n body: WorkflowActionRequest,\n options: { idempotencyKey?: string } = {},\n ): AgentRunStream {\n const runId = options.idempotencyKey?.trim() || body.runId?.trim() || randomRunId()\n const op = getOperation('WorkflowActionsController_execute')\n const path = formatOperationPath('WorkflowActionsController_execute')\n const lines = this.http.streamPost(path, body, {\n baseUrl: operationBaseUrl(this.http, op),\n headers: { 'Idempotency-Key': runId },\n })\n return makeAgentRunStream(runId, this.parseEvents(lines))\n }\n\n async cancel(runId: string): Promise<void> {\n validateId(runId, 'run_id')\n await invokeWithRetry(this.config, this.http, 'WorkflowActionsController_cancel', {\n pathParams: { runId },\n jsonBody: {},\n })\n }\n\n private async *parseEvents(lines: AsyncIterable<string>): AsyncGenerator<RunEvent> {\n yield* parseSseStream(lines)\n }\n}\n","import { chatBuffered, chatStreamSession, type ChatStream } from '../_chat.js'\nimport type { ModusConfig } from '../_config.js'\nimport type { HttpClient } from '../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../_request.js'\nimport { validateId, validatePageSize } from '../_validation.js'\nimport type { Agent, AgentType } from '../types/agents.js'\nimport type { ChatModel, ChatResult } from '../types/chat.js'\nimport type { VariationView } from '../types/views.js'\nimport { WorkflowRunsResource } from './agents/runs.js'\nimport { AgentWorkflowActionsResource } from './agents/workflow-actions.js'\n\nfunction workflowsListParams(\n pageSize: number,\n pageToken: string | undefined,\n search?: string,\n type?: AgentType,\n view?: VariationView,\n includeVariation?: boolean,\n): Record<string, string | number | boolean | undefined | null> {\n const extra: Record<string, string | number | boolean | undefined | null> = {}\n if (search !== undefined) extra.search = search\n if (type !== undefined) extra.type = type\n if (view !== undefined) extra.view = view\n if (includeVariation !== undefined) extra.includeVariation = includeVariation\n return aipListParams(pageSize, pageToken, extra) as Record<\n string,\n string | number | boolean | undefined | null\n >\n}\n\nfunction parseWorkflow(raw: unknown): Agent {\n return raw as Agent\n}\n\n/** Read / invoke access to Modus workflows (`/api/v1/workflows`). */\nexport class WorkflowsResource {\n readonly runs: WorkflowRunsResource\n readonly workflowActions: AgentWorkflowActionsResource\n\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {\n this.runs = new WorkflowRunsResource(http, config)\n this.workflowActions = new AgentWorkflowActionsResource(http, config)\n }\n\n list(options: {\n pageSize?: number\n pageToken?: string\n search?: string\n type?: AgentType\n view?: VariationView\n includeVariation?: boolean\n } = {}): Promise<Page<Agent>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(\n pageSize,\n options.pageToken,\n options.search,\n options.type,\n options.view,\n options.includeVariation,\n )\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n search?: string,\n type?: AgentType,\n view?: VariationView,\n includeVariation?: boolean,\n ): Promise<Page<Agent>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'WorkflowsController_list', {\n query: workflowsListParams(\n pageSize,\n pageToken,\n search,\n type,\n view,\n includeVariation,\n ),\n }),\n )\n // Envelope key is the server DTO property name — unchanged by the rename\n // (only paths/opIds/tags moved to the workflows vocab).\n return buildAipPage(data, 'agents', parseWorkflow, (token) =>\n this.listPage(pageSize, token, search, type, view, includeVariation),\n )\n }\n\n async get(\n workflowId: number | string,\n options: { view?: VariationView; includeVariation?: boolean } = {},\n ): Promise<Agent> {\n validateId(workflowId, 'workflow_id')\n const query: Record<string, string | boolean> = {}\n if (options.view !== undefined) query.view = options.view\n if (options.includeVariation !== undefined) {\n query.includeVariation = options.includeVariation\n }\n const data = await invokeWithRetry(this.config, this.http, 'WorkflowsController_get', {\n pathParams: { id: workflowId },\n query: Object.keys(query).length > 0 ? query : undefined,\n })\n return parseWorkflow(data)\n }\n\n chat(\n workflowId: number | string,\n message: string,\n options: { model: ChatModel; threadId?: string },\n ): Promise<ChatResult> {\n return chatBuffered(this.http, 'workflows', workflowId, message, options)\n }\n\n chatStream(\n workflowId: number | string,\n message: string,\n options: { model: ChatModel; threadId?: string; version?: string },\n ): ChatStream {\n return chatStreamSession(this.http, this.config, 'workflows', workflowId, message, options)\n }\n}\n","import type { ModusConfig } from '../_config.js'\nimport type { HttpClient } from '../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../_request.js'\nimport { validatePageSize } from '../_validation.js'\nimport type { Connection } from '../types/connections.js'\n\nfunction connectionsListParams(\n pageSize: number,\n pageToken: string | undefined,\n type?: string,\n): Record<string, string | number | boolean | undefined | null> {\n const extra: Record<string, string | number | boolean | undefined | null> = {}\n if (type !== undefined) extra.type = type\n return aipListParams(pageSize, pageToken, extra) as Record<\n string,\n string | number | boolean | undefined | null\n >\n}\n\nfunction parseConnection(raw: unknown): Connection {\n return raw as Connection\n}\n\nexport class ConnectionsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(options: {\n pageSize?: number\n pageToken?: string\n type?: string\n } = {}): Promise<Page<Connection>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(pageSize, options.pageToken, options.type)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n type?: string,\n ): Promise<Page<Connection>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ConnectionsController_list', {\n query: connectionsListParams(pageSize, pageToken, type),\n }),\n )\n return buildAipPage(data, 'connections', parseConnection, (token) =>\n this.listPage(pageSize, token, type),\n )\n }\n\n async find(options: {\n name: string\n type?: string\n pageSize?: number\n }): Promise<Connection | undefined> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n const target = options.name.trim().toLowerCase()\n let token: string | undefined\n do {\n const page = await this.listPage(pageSize, token, options.type)\n const match = page.items.find((c) => c.name?.toLowerCase() === target)\n if (match) return match\n if (!page.hasNextPage()) break\n token = page.nextPageToken\n } while (token !== undefined)\n return undefined\n }\n}\n","import type { ModusConfig } from '../../_config.js'\nimport type { HttpClient } from '../../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../../_pagination.js'\nimport { asRecord, invokeWithRetry, omitUndefined } from '../../_request.js'\nimport { validatePageSize } from '../../_validation.js'\nimport type { ContextItem } from '../../types/context.js'\n\nexport type CustomContextItemKind =\n | 'source'\n | 'collection'\n | 'entity'\n | 'field'\n | 'entity_samples'\n\nexport interface CustomAttributeInput {\n name: string\n dataType?: string\n value?: unknown\n}\n\nexport interface CreateCustomContextItemInput {\n kind: CustomContextItemKind\n sourceId: string\n sourceName?: string\n collectionId?: string\n collectionName?: string\n externalId?: string\n fieldName?: string\n name?: string\n entityType?: string\n description?: string\n content?: unknown\n url?: string\n attributes?: CustomAttributeInput[]\n dataType?: string\n value?: unknown\n samples?: unknown[]\n raw?: Record<string, unknown>\n topics?: string[]\n idempotencyKey?: string\n}\n\nexport type UpdateCustomContextItemInput = Omit<\n Partial<CreateCustomContextItemInput>,\n 'kind' | 'sourceId' | 'sourceName' | 'collectionId' | 'collectionName' | 'externalId' | 'fieldName' | 'idempotencyKey'\n>\n\nexport interface CreatedCustomContextItem {\n contextItemId: string\n contextType: string\n dataPath: string[]\n title: string | null\n}\n\nexport interface CustomContextItemDeletion {\n uid: string\n contextType: string\n}\n\nfunction parseContextItem(raw: unknown): ContextItem {\n return raw as ContextItem\n}\n\nfunction parseCreatedCustomContextItem(raw: unknown): CreatedCustomContextItem {\n return raw as CreatedCustomContextItem\n}\n\nfunction parseDeletion(raw: unknown): CustomContextItemDeletion {\n return raw as CustomContextItemDeletion\n}\n\nexport class CustomContextItemsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(options: {\n pageSize?: number\n pageToken?: string\n searchQuery?: string\n topics?: string[]\n } = {}): Promise<Page<ContextItem>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(pageSize, options.pageToken, options)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n options: { searchQuery?: string; topics?: string[] },\n ): Promise<Page<ContextItem>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_list', {\n query: aipListParams(pageSize, pageToken, {\n searchQuery: options.searchQuery,\n topics: options.topics,\n }) as Record<string, string | number | boolean | readonly string[] | undefined | null>,\n }),\n )\n return buildAipPage(data, 'contextItems', parseContextItem, (token) =>\n this.listPage(pageSize, token, options),\n )\n }\n\n async get(uid: string): Promise<ContextItem> {\n return parseContextItem(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_get', {\n pathParams: { uid },\n }),\n )\n }\n\n async create(input: CreateCustomContextItemInput): Promise<CreatedCustomContextItem> {\n return parseCreatedCustomContextItem(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_create', {\n jsonBody: omitUndefined(input as unknown as Record<string, unknown>),\n }),\n )\n }\n\n async batchCreate(inputs: CreateCustomContextItemInput[]): Promise<CreatedCustomContextItem[]> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_batchCreate', {\n jsonBody: {\n items: inputs.map((input) => omitUndefined(input as unknown as Record<string, unknown>)),\n },\n }),\n )\n const items = data.contextItems\n return Array.isArray(items) ? items.map(parseCreatedCustomContextItem) : []\n }\n\n async update(uid: string, input: UpdateCustomContextItemInput): Promise<{ uid: string }> {\n return asRecord(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_update', {\n pathParams: { uid },\n jsonBody: omitUndefined(input as unknown as Record<string, unknown>),\n }),\n ) as { uid: string }\n }\n\n async delete(uid: string): Promise<CustomContextItemDeletion> {\n return parseDeletion(\n await invokeWithRetry(this.config, this.http, 'CustomContextItemsController_delete', {\n pathParams: { uid },\n }),\n )\n }\n}\n","import type { ModusConfig } from '../../_config.js'\nimport { NotFoundError } from '../../_exceptions.js'\nimport type { HttpClient } from '../../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../../_pagination.js'\nimport { asRecord, invokeWithRetry, omitUndefined } from '../../_request.js'\nimport { DEFAULT_MAX_PAGE_SIZE, validatePageSize } from '../../_validation.js'\nimport type { ContextItem, ContextItemLookupRow } from '../../types/context.js'\nimport type { ContextValueRow } from '../../types/context-values.js'\nimport type { ContentProjection, JsonObjectInput } from '../../types/json-blob.js'\n\nfunction contextListParams(\n pageSize: number,\n pageToken: string | undefined,\n contextType?: string,\n): Record<string, string | number | boolean | readonly string[] | undefined | null> {\n const extra: Record<string, string | readonly string[]> = {}\n if (contextType !== undefined) extra.contextTypes = [contextType]\n return aipListParams(pageSize, pageToken, extra) as Record<\n string,\n string | number | boolean | readonly string[] | undefined | null\n >\n}\n\nfunction parseContextItem(raw: unknown): ContextItem {\n return raw as ContextItem\n}\n\nfunction parseContextValueRow(raw: unknown): ContextValueRow {\n return raw as ContextValueRow\n}\n\nfunction parseLookupResponse(raw: Record<string, unknown>): ContextItemLookupRow | undefined {\n const item = raw.item\n if (item === null || item === undefined) return undefined\n return item as ContextItemLookupRow\n}\n\nexport class ContextItemsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(options: {\n pageSize?: number\n pageToken?: string\n contextType?: string\n } = {}): Promise<Page<ContextItem>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(pageSize, options.pageToken, options.contextType)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n contextType?: string,\n ): Promise<Page<ContextItem>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ContextItemsController_list', {\n query: contextListParams(pageSize, pageToken, contextType),\n }),\n )\n return buildAipPage(data, 'contextItems', parseContextItem, (token) =>\n this.listPage(pageSize, token, contextType),\n )\n }\n\n async get(uid: string): Promise<ContextItem> {\n const data = await invokeWithRetry(this.config, this.http, 'ContextItemsController_get', {\n pathParams: { uid },\n })\n return parseContextItem(data)\n }\n\n async lookup(options: {\n contextType: string\n dataPath: string[]\n contentProjection?: JsonObjectInput | ContentProjection\n }): Promise<ContextItemLookupRow | undefined> {\n const body = omitUndefined({\n contextType: options.contextType,\n dataPath: options.dataPath,\n contentProjection: options.contentProjection,\n })\n try {\n const raw = asRecord(\n await invokeWithRetry(this.config, this.http, 'ContextItemsController_lookup', {\n jsonBody: body,\n }),\n )\n return parseLookupResponse(raw)\n } catch (error) {\n if (error instanceof NotFoundError) return undefined\n throw error\n }\n }\n\n listValues(\n uid: string,\n contextType: string,\n contentKeyPath: string,\n options: { pageSize?: number; pageToken?: string } = {},\n ): Promise<Page<ContextValueRow>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize, DEFAULT_MAX_PAGE_SIZE)\n return this.listValuesPage(uid, contextType, contentKeyPath, pageSize, options.pageToken)\n }\n\n listValuesFor(\n item: ContextItem,\n contentKeyPath: string,\n options: { pageSize?: number; pageToken?: string } = {},\n ): Promise<Page<ContextValueRow>> {\n return this.listValues(item.uid, item.contextType, contentKeyPath, options)\n }\n\n private async listValuesPage(\n uid: string,\n contextType: string,\n contentKeyPath: string,\n pageSize: number,\n pageToken: string | undefined,\n ): Promise<Page<ContextValueRow>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ContextItemsController_listValues', {\n pathParams: { uid },\n query: aipListParams(pageSize, pageToken, {\n contextType,\n contentKeyPath,\n }) as Record<string, string | number | boolean | undefined | null>,\n }),\n )\n return buildAipPage(data, 'values', parseContextValueRow, (token) =>\n this.listValuesPage(uid, contextType, contentKeyPath, pageSize, token),\n )\n }\n}\n","import type { ModusConfig } from '../../_config.js'\nimport type { HttpClient } from '../../_http.js'\nimport { CustomContextItemsResource } from './custom-items.js'\nimport { ContextItemsResource } from './items.js'\n\n/** Read access to the Modus knowledge base. */\nexport class ContextResource {\n readonly items: ContextItemsResource\n readonly customItems: CustomContextItemsResource\n\n constructor(http: HttpClient, config: ModusConfig) {\n this.items = new ContextItemsResource(http, config)\n this.customItems = new CustomContextItemsResource(http, config)\n }\n}\n","import type { ModusConfig } from '../../_config.js'\nimport type { HttpClient } from '../../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../../_request.js'\nimport { validateId, validatePageSize } from '../../_validation.js'\nimport type {\n Conversation,\n ConversationKind,\n ConversationListItem,\n} from '../../types/conversations.js'\n\nconst ALLOWED_KINDS = new Set<ConversationKind>(['all', 'modus', 'skills'])\n\nfunction listParams(\n pageSize: number,\n pageToken: string | undefined,\n kind?: ConversationKind,\n): Record<string, string | number | boolean | undefined | null> {\n if (kind !== undefined && !ALLOWED_KINDS.has(kind)) {\n throw new Error(\n `kind must be one of ${[...ALLOWED_KINDS].sort().join(', ')}, got ${JSON.stringify(kind)}`,\n )\n }\n const extra: Record<string, string> = {}\n if (kind !== undefined) extra.kind = kind\n return aipListParams(pageSize, pageToken, extra) as Record<\n string,\n string | number | boolean | undefined | null\n >\n}\n\nfunction parseListItem(raw: unknown): ConversationListItem {\n return raw as ConversationListItem\n}\n\nfunction parseConversation(raw: unknown): Conversation {\n return raw as Conversation\n}\n\nexport class ModusConversationsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(options: {\n pageSize?: number\n pageToken?: string\n kind?: ConversationKind\n } = {}): Promise<Page<ConversationListItem>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(pageSize, options.pageToken, options.kind)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n kind?: ConversationKind,\n ): Promise<Page<ConversationListItem>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ModusConversationsController_list', {\n query: listParams(pageSize, pageToken, kind),\n }),\n )\n return buildAipPage(data, 'conversations', parseListItem, (token) =>\n this.listPage(pageSize, token, kind),\n )\n }\n\n async get(threadId: string): Promise<Conversation> {\n validateId(threadId, 'thread_id')\n const data = await invokeWithRetry(this.config, this.http, 'ModusConversationsController_get', {\n pathParams: { threadId },\n })\n return parseConversation(data)\n }\n}\n","import { modusChatBuffered, modusChatStreamSession, type ChatStream } from '../../_chat.js'\nimport type { ModusConfig } from '../../_config.js'\nimport type { HttpClient } from '../../_http.js'\nimport { invokeWithRetry, omitUndefined } from '../../_request.js'\nimport type { ChatModel, ChatResult } from '../../types/chat.js'\nimport type { ModusContextComposition } from '../../types/context-compose.js'\n\nimport { ModusConversationsResource } from './conversations.js'\n\n/** Org-wide Modus assistant. */\nexport class ModusResource {\n readonly conversations: ModusConversationsResource\n\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {\n this.conversations = new ModusConversationsResource(http, config)\n }\n\n async getContext(\n message: string,\n options: { limit?: number } = {},\n ): Promise<ModusContextComposition> {\n const data = await invokeWithRetry(this.config, this.http, 'ModusContextController_compose', {\n jsonBody: omitUndefined({ message, limit: options.limit }),\n })\n return data as ModusContextComposition\n }\n\n chat(message: string, options: { model: ChatModel; threadId?: string }): Promise<ChatResult> {\n return modusChatBuffered(this.http, message, options)\n }\n\n chatStream(message: string, options: { model: ChatModel; threadId?: string }): ChatStream {\n return modusChatStreamSession(this.http, this.config, message, options)\n }\n}\n","import type { ModusConfig } from '../../_config.js'\nimport type { HttpClient } from '../../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../../_request.js'\nimport { validateId, validatePageSize } from '../../_validation.js'\nimport type { Conversation, ConversationListItem } from '../../types/conversations.js'\n\nfunction parseListItem(raw: unknown): ConversationListItem {\n return raw as ConversationListItem\n}\n\nfunction parseConversation(raw: unknown): Conversation {\n return raw as Conversation\n}\n\n/** Read access to a scope's conversation threads (`/api/v1/scopes/:id/conversations`). */\nexport class ScopeConversationsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n private readonly scopeId: number | string,\n ) {}\n\n list(options: { pageSize?: number; pageToken?: string } = {}): Promise<Page<ConversationListItem>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(pageSize, options.pageToken)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n ): Promise<Page<ConversationListItem>> {\n validateId(this.scopeId, 'scope_id')\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ScopeConversationsController_list', {\n pathParams: { id: this.scopeId },\n query: aipListParams(pageSize, pageToken) as Record<\n string,\n string | number | boolean | undefined | null\n >,\n }),\n )\n return buildAipPage(data, 'conversations', parseListItem, (token) =>\n this.listPage(pageSize, token),\n )\n }\n\n async get(\n threadId: string,\n options: { messageLimit?: number; beforeMessageIndex?: number } = {},\n ): Promise<Conversation> {\n validateId(this.scopeId, 'scope_id')\n validateId(threadId, 'thread_id')\n if (options.beforeMessageIndex !== undefined && options.messageLimit === undefined) {\n throw new Error('beforeMessageIndex requires messageLimit')\n }\n const data = await invokeWithRetry(this.config, this.http, 'ScopeConversationsController_get', {\n pathParams: { id: this.scopeId, threadId },\n query: {\n messageLimit: options.messageLimit,\n beforeMessageIndex: options.beforeMessageIndex,\n },\n })\n return parseConversation(data)\n }\n}\n","import { chatBuffered, chatStreamSession, type ChatStream } from '../_chat.js'\nimport type { ModusConfig } from '../_config.js'\nimport type { HttpClient } from '../_http.js'\nimport { aipListParams, buildAipPage, type Page } from '../_pagination.js'\nimport { asRecord, invokeWithRetry, omitUndefined } from '../_request.js'\nimport { validateId, validatePageSize } from '../_validation.js'\nimport type { ChatModel, ChatResult } from '../types/chat.js'\nimport type { SkillContextComposition } from '../types/context-compose.js'\nimport type { Skill } from '../types/skills.js'\nimport type { VariationView } from '../types/views.js'\nimport { ScopeConversationsResource } from './skills/conversations.js'\n\nfunction scopesListParams(\n pageSize: number,\n pageToken: string | undefined,\n search?: string,\n view?: VariationView,\n managerId?: number,\n): Record<string, string | number | boolean | undefined | null> {\n const extra: Record<string, string | number | boolean | undefined | null> = {}\n if (search !== undefined) extra.search = search\n if (view !== undefined) extra.view = view\n if (managerId !== undefined) extra.managerId = managerId\n return aipListParams(pageSize, pageToken, extra) as Record<\n string,\n string | number | boolean | undefined | null\n >\n}\n\nfunction parseScope(raw: unknown): Skill {\n return raw as Skill\n}\n\n/** Read / invoke access to Modus scopes (`/api/v1/scopes`). */\nexport class ScopesResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n conversations(scopeId: number | string): ScopeConversationsResource {\n return new ScopeConversationsResource(this.http, this.config, scopeId)\n }\n\n list(options: {\n pageSize?: number\n pageToken?: string\n search?: string\n view?: VariationView\n managerId?: number\n } = {}): Promise<Page<Skill>> {\n const pageSize = options.pageSize ?? 25\n validatePageSize(pageSize)\n return this.listPage(\n pageSize,\n options.pageToken,\n options.search,\n options.view,\n options.managerId,\n )\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n search?: string,\n view?: VariationView,\n managerId?: number,\n ): Promise<Page<Skill>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'ScopesController_list', {\n query: scopesListParams(pageSize, pageToken, search, view, managerId),\n }),\n )\n // The list response envelope key is the server DTO property name, which\n // this rename intentionally left as `skills` (only paths/opIds/tags moved\n // to the scopes vocab — response body schemas are unchanged).\n return buildAipPage(data, 'skills', parseScope, (token) =>\n this.listPage(pageSize, token, search, view, managerId),\n )\n }\n\n async get(\n scopeId: number | string,\n options: { view?: VariationView } = {},\n ): Promise<Skill> {\n validateId(scopeId, 'scope_id')\n const query = options.view !== undefined ? { view: options.view } : undefined\n const data = await invokeWithRetry(this.config, this.http, 'ScopesController_get', {\n pathParams: { id: scopeId },\n query,\n })\n return parseScope(data)\n }\n\n async getContext(\n scopeId: number | string,\n message: string,\n options: { limit?: number } = {},\n ): Promise<SkillContextComposition> {\n validateId(scopeId, 'scope_id')\n const data = await invokeWithRetry(this.config, this.http, 'ScopeContextController_compose', {\n pathParams: { id: scopeId },\n jsonBody: omitUndefined({ message, limit: options.limit }),\n })\n return data as SkillContextComposition\n }\n\n chat(\n scopeId: number | string,\n message: string,\n options: { model: ChatModel; threadId?: string },\n ): Promise<ChatResult> {\n return chatBuffered(this.http, 'scopes', scopeId, message, options)\n }\n\n chatStream(\n scopeId: number | string,\n message: string,\n options: { model: ChatModel; threadId?: string; version?: string },\n ): ChatStream {\n return chatStreamSession(this.http, this.config, 'scopes', scopeId, message, options)\n }\n}\n","import type { components } from '../_generated/v1.js'\n\nexport type SuggestionQuestion = components['schemas']['SuggestionQuestionDto']\nexport type SuggestionEventType = components['schemas']['SuggestionEventType']\nexport type SuggestionEventSource = components['schemas']['SuggestionEventSource']\n\n/** Wire format (snake_case) plus camelCase aliases for DX. */\nexport type RecordSuggestionEventRequest = components['schemas']['RecordSuggestionEventDto'] & {\n eventType?: components['schemas']['SuggestionEventType']\n skillId?: number\n threadId?: string\n}\n\n/** Normalize to the OpenAPI allowlist keys (`event_type`, not `eventType`). */\nexport function normalizeRecordSuggestionEvent(\n event: RecordSuggestionEventRequest,\n): components['schemas']['RecordSuggestionEventDto'] {\n const eventType = event.event_type ?? event.eventType\n if (eventType === undefined) {\n throw new Error('recordEvent requires event_type (or eventType)')\n }\n const body: components['schemas']['RecordSuggestionEventDto'] = {\n event_type: eventType,\n source: event.source,\n }\n const skillId = event.skill_id ?? event.skillId\n if (skillId !== undefined) body.skill_id = skillId\n const threadId = event.thread_id ?? event.threadId\n if (threadId !== undefined) body.thread_id = threadId\n if (event.metadata !== undefined) body.metadata = event.metadata\n return body\n}\n","import type { ModusConfig } from '../_config.js'\nimport type { HttpClient } from '../_http.js'\nimport { buildAipPage, type Page } from '../_pagination.js'\nimport { asRecord, invokeWithRetry } from '../_request.js'\nimport { validateId, validatePageSize } from '../_validation.js'\nimport {\n normalizeRecordSuggestionEvent,\n type RecordSuggestionEventRequest,\n type SuggestionQuestion,\n} from '../types/suggestions.js'\n\nconst DEFAULT_SUGGESTIONS_PAGE_SIZE = 5\nconst MAX_SUGGESTIONS_PAGE_SIZE = 12\n\nfunction parseSuggestion(raw: unknown): SuggestionQuestion {\n return raw as SuggestionQuestion\n}\n\nfunction suggestionListParams(options: {\n pageSize: number\n pageToken?: string\n skillId?: number\n skillIds?: readonly number[]\n}): Record<string, string | number | undefined> {\n return {\n pageSize: options.pageSize,\n pageToken: options.pageToken,\n skill_id: options.skillId,\n skill_ids: options.skillIds?.join(','),\n }\n}\n\nexport class SuggestionsResource {\n constructor(\n private readonly http: HttpClient,\n private readonly config: ModusConfig,\n ) {}\n\n list(options: {\n pageSize?: number\n pageToken?: string\n skillId?: number\n skillIds?: readonly number[]\n } = {}): Promise<Page<SuggestionQuestion>> {\n const pageSize = options.pageSize ?? DEFAULT_SUGGESTIONS_PAGE_SIZE\n validatePageSize(pageSize, MAX_SUGGESTIONS_PAGE_SIZE)\n return this.listPage(pageSize, options.pageToken, options.skillId, options.skillIds)\n }\n\n private async listPage(\n pageSize: number,\n pageToken: string | undefined,\n skillId: number | undefined,\n skillIds: readonly number[] | undefined,\n ): Promise<Page<SuggestionQuestion>> {\n const data = asRecord(\n await invokeWithRetry(this.config, this.http, 'SuggestionsController_listApproved', {\n query: suggestionListParams({ pageSize, pageToken, skillId, skillIds }),\n }),\n )\n return buildAipPage(data, 'suggestions', parseSuggestion, (token) =>\n this.listPage(pageSize, token, skillId, skillIds),\n )\n }\n\n async recordEvent(id: string, event: RecordSuggestionEventRequest): Promise<void> {\n validateId(id, 'id')\n await invokeWithRetry(this.config, this.http, 'SuggestionsController_recordEvent', {\n pathParams: { id },\n jsonBody: normalizeRecordSuggestionEvent(event),\n })\n }\n}\n"],"mappings":"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","names":["msg","import_node_crypto","import_node_crypto","randomRunId","parseContextItem","parseListItem","parseConversation"]}
|