MCPcopy
hub / github.com/continuedev/continue / unrollAssistantFromContent

Function unrollAssistantFromContent

packages/config-yaml/src/load/unroll.ts:275–333  ·  view source on GitHub ↗
(
  id: PackageIdentifier,
  rawYaml: string,
  registry: Registry,
  options: UnrollAssistantOptions,
)

Source from the content-addressed store, hash-verified

273}
274
275export async function unrollAssistantFromContent(
276 id: PackageIdentifier,
277 rawYaml: string,
278 registry: Registry,
279 options: UnrollAssistantOptions,
280): Promise<ConfigResult<AssistantUnrolled>> {
281 // Parse string to Zod-validated YAML
282 let parsedYaml = parseMarkdownRuleOrConfigYaml(rawYaml, id);
283
284 // Unroll blocks and convert their secrets to FQSNs
285 const {
286 config: unrolledAssistant,
287 configLoadInterrupted,
288 errors,
289 } = await unrollBlocks(
290 parsedYaml,
291 registry,
292 options.injectBlocks,
293 options.allowlistedBlocks,
294 options.blocklistedBlocks,
295 options.injectRequestOptions,
296 );
297
298 // Back to a string so we can fill in template variables
299 const rawUnrolledYaml = YAML.stringify(unrolledAssistant);
300
301 // Convert all of the template variables to FQSNs
302 // Secrets from the block will have the assistant slug prepended to the FQSN
303 let templatedYaml = renderTemplateData(rawUnrolledYaml, {
304 secrets: extractFQSNMap(rawUnrolledYaml, [id]),
305 });
306
307 if (!options.renderSecrets) {
308 const parsed = parseAssistantUnrolled(templatedYaml);
309 return {
310 config: parsed,
311 errors: [],
312 configLoadInterrupted: false,
313 configName: parsed?.name || undefined,
314 };
315 }
316
317 // Render secret values/locations for client
318 const secrets = await extractRenderedSecretsMap(
319 templatedYaml,
320 options.platformClient,
321 options.alwaysUseProxy,
322 );
323 const renderedYaml = renderTemplateData(templatedYaml, { secrets });
324
325 const renderedConfig = parseAssistantUnrolled(renderedYaml);
326
327 return {
328 config: renderedConfig,
329 errors,
330 configLoadInterrupted,
331 configName: renderedConfig?.name || undefined,
332 };

Callers 3

unrollLocalYamlBlocksFunction · 0.90
unrollAssistantFunction · 0.85

Calls 6

unrollBlocksFunction · 0.85
renderTemplateDataFunction · 0.85
extractFQSNMapFunction · 0.85
parseAssistantUnrolledFunction · 0.85

Tested by

no test coverage detected