MCPcopy Index your code
hub / github.com/TanStack/ai / parseContainerRunRequest

Function parseContainerRunRequest

packages/ai-sandbox-cloudflare/src/protocol.ts:123–171  ·  view source on GitHub ↗
(value: unknown)

Source from the content-addressed store, hash-verified

121 * with a clear error on a malformed request.
122 */
123export function parseContainerRunRequest(value: unknown): ContainerRunRequest {
124 if (!isRecord(value)) {
125 throw new Error('run request must be a JSON object')
126 }
127 const runId = requireNonEmptyString(value, 'runId')
128 const threadId = requireNonEmptyString(value, 'threadId')
129 const model = requireNonEmptyString(value, 'model')
130 const toolExecUrl = requireNonEmptyString(value, 'toolExecUrl')
131 const toolExecToken = requireNonEmptyString(value, 'toolExecToken')
132
133 const messages = value['messages']
134 if (
135 !Array.isArray(messages) ||
136 messages.length === 0 ||
137 !messages.every(isModelMessage)
138 ) {
139 throw new Error('run request: messages must be a non-empty ModelMessage[]')
140 }
141
142 const harness = value['harness']
143 if (!isHarnessId(harness)) {
144 throw new Error('run request: harness must be a known harness id')
145 }
146
147 const workspace = value['workspace']
148 if (!isWorkspaceDefinition(workspace)) {
149 throw new Error('run request: workspace must be a WorkspaceDefinition')
150 }
151
152 const toolDescriptors = value['toolDescriptors']
153 if (
154 !Array.isArray(toolDescriptors) ||
155 !toolDescriptors.every(isToolDescriptor)
156 ) {
157 throw new Error('run request: toolDescriptors must be a ToolDescriptor[]')
158 }
159
160 return {
161 runId,
162 threadId,
163 messages,
164 harness,
165 model,
166 workspace,
167 toolDescriptors,
168 toolExecUrl,
169 toolExecToken,
170 }
171}

Callers 2

handleRunFunction · 0.90
protocol.test.tsFile · 0.90

Calls 4

requireNonEmptyStringFunction · 0.85
isHarnessIdFunction · 0.85
isWorkspaceDefinitionFunction · 0.85
isRecordFunction · 0.70

Tested by

no test coverage detected