* Parse GH_AW_COPILOT_SDK_SERVER_ARGS for SDK driver mode. * Returns [] when unset or invalid so sidecar defaults remain available. * * @param {string | undefined} serverArgsEnv * @param {{ logger?: (msg: string) => void }} [options] * @returns {string[]}
(serverArgsEnv, options)
| 616 | * @returns {string[]} |
| 617 | */ |
| 618 | function parseCopilotSDKServerArgsFromEnv(serverArgsEnv, options) { |
| 619 | const logger = options?.logger ?? log; |
| 620 | if (!serverArgsEnv) { |
| 621 | logger("copilot-sdk driver mode: GH_AW_COPILOT_SDK_SERVER_ARGS is not set; using sidecar default args"); |
| 622 | return []; |
| 623 | } |
| 624 | |
| 625 | try { |
| 626 | const parsed = JSON.parse(serverArgsEnv); |
| 627 | if (!Array.isArray(parsed) || parsed.some(arg => typeof arg !== "string")) { |
| 628 | logger("copilot-sdk driver mode: GH_AW_COPILOT_SDK_SERVER_ARGS must be a JSON string array; using sidecar default args"); |
| 629 | return []; |
| 630 | } |
| 631 | logger(`copilot-sdk driver mode: parsed ${parsed.length} sidecar args from GH_AW_COPILOT_SDK_SERVER_ARGS`); |
| 632 | return parsed; |
| 633 | } catch (parseErr) { |
| 634 | const preview = serverArgsEnv.length > MAX_ENV_VAR_PREVIEW_LENGTH ? serverArgsEnv.slice(0, MAX_ENV_VAR_PREVIEW_LENGTH) + "…" : serverArgsEnv; |
| 635 | logger(`copilot-sdk driver mode: failed to parse GH_AW_COPILOT_SDK_SERVER_ARGS: ${parseErr} (value: ${preview})`); |
| 636 | return []; |
| 637 | } |
| 638 | } |
| 639 | |
| 640 | /** |
| 641 | * Build a compact fallback prompt that asks the agent to read instructions from disk. |
no test coverage detected