{"version":3,"file":"public-execution.d.ts","sourceRoot":"","sources":["../../../src/extension/public-execution.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,6BAA6B;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,2BAA2B,GAAG,UAAU,GAAG,YAAY,CAAC;AAEpE,MAAM,MAAM,oCAAoC,CAAC,CAAC,IAC/C;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,GACvB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,2BAA2B,CAAA;CAAE,CAAC;AACnE;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,6BAA6B,EACvF,MAAM,EAAE,CAAC,GACP,oCAAoC,CAAC,CAAC,CAAC,CAwHzC","sourcesContent":["export interface PublicSubagentExecutionParams {\n\taction?: unknown;\n\tagent?: unknown;\n\ttask?: unknown;\n\tstep?: unknown;\n\ttasks?: unknown;\n\tchain?: unknown;\n\tparallel?: unknown;\n\tconcurrency?: unknown;\n\tchainDir?: unknown;\n\tworkflowScript?: unknown;\n\tresume?: unknown;\n\tclarify?: unknown;\n}\n\nexport type PublicSubagentExecutionMode = \"workflow\" | \"management\";\n\nexport type PublicSubagentExecutionNormalization<T> =\n\t| { ok: true; params: T }\n\t| { ok: false; error: string; mode: PublicSubagentExecutionMode };\n/**\n * Enforce the public execution boundary before requests reach the executor.\n * Internal workflow children and structured delegation bypass this boundary.\n *\n * Public execution has one direct mode: `{ agent?, task }`. Omit `agent` to\n * use the built-in `worker`; omit `action` so management and execution remain\n * separate. Scripted workflows remain available as the explicit orchestration\n * escape hatch for callers that need one durable background request.\n */\nexport function normalizePublicSubagentExecution<T extends PublicSubagentExecutionParams>(\n\tparams: T,\n): PublicSubagentExecutionNormalization<T> {\n\tconst action = params.action;\n\tif (action !== undefined && (typeof action !== \"string\" || !action.trim())) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: \"action must be a non-empty management/control action, or omit action for direct execution.\",\n\t\t\tmode: \"management\",\n\t\t};\n\t}\n\tconst normalizedAction = typeof action === \"string\" ? action.trim() : undefined;\n\tif (params.clarify !== undefined) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: \"Public execution does not support clarify UI.\",\n\t\t\tmode: \"workflow\",\n\t\t};\n\t}\n\tif (params.resume !== undefined) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: \"Top-level resume execution is not available. Put resume on a workflowScript runs.run/runs.all item.\",\n\t\t\tmode: \"workflow\",\n\t\t};\n\t}\n\tconst hasLegacyOrchestration =\n\t\tparams.tasks !== undefined ||\n\t\tparams.chain !== undefined ||\n\t\tparams.parallel !== undefined ||\n\t\tparams.concurrency !== undefined ||\n\t\tparams.chainDir !== undefined;\n\tif (hasLegacyOrchestration) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: \"Top-level chain and parallel inputs are not public. Call direct agents from the parent, or use workflowScript.\",\n\t\t\tmode: normalizedAction ? \"management\" : \"workflow\",\n\t\t};\n\t}\n\tif (normalizedAction !== undefined) {\n\t\tconst legacyAction = normalizedAction.toLowerCase();\n\t\tif (legacyAction === \"single\") {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: \"Direct execution omits action; pass { agent?, task } directly.\",\n\t\t\t\tmode: \"workflow\",\n\t\t\t};\n\t\t}\n\t\tif (legacyAction === \"parallel\" || legacyAction === \"tasks\" || legacyAction === \"chain\") {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: \"Top-level chain and parallel inputs are not public. Call direct agents from the parent, or use workflowScript.\",\n\t\t\t\tmode: \"workflow\",\n\t\t\t};\n\t\t}\n\t\tif (normalizedAction === \"schedule.create\") {\n\t\t\tif (params.agent !== undefined || params.task !== undefined || params.step !== undefined) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: \"schedule.create requires workflowScript and does not accept direct agent, task, or step execution fields.\",\n\t\t\t\t\tmode: \"management\",\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (typeof params.workflowScript !== \"string\" || !params.workflowScript.trim()) {\n\t\t\t\treturn { ok: false, error: \"schedule.create requires a non-empty workflowScript.\", mode: \"management\" };\n\t\t\t}\n\t\t\treturn { ok: true, params: { ...params, action: normalizedAction } };\n\t\t}\n\t\tif (params.task !== undefined || params.step !== undefined) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: \"Management/control actions cannot include direct task or step fields.\",\n\t\t\t\tmode: \"management\",\n\t\t\t};\n\t\t}\n\t\tif (params.agent !== undefined && (typeof params.agent !== \"string\" || !params.agent.trim())) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: \"Management agent selectors must be non-empty strings.\",\n\t\t\t\tmode: \"management\",\n\t\t\t};\n\t\t}\n\t\tif (params.workflowScript !== undefined) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: \"workflowScript execution must omit action; only schedule.create accepts action with workflowScript.\",\n\t\t\t\tmode: \"management\",\n\t\t\t};\n\t\t}\n\t\treturn { ok: true, params: { ...params, action: normalizedAction } };\n\t}\n\tif (params.step !== undefined) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: \"step is control-only for action='append-step'; use direct { agent?, task } or workflowScript for execution.\",\n\t\t\tmode: \"workflow\",\n\t\t};\n\t}\n\tif (params.agent !== undefined || params.task !== undefined) {\n\t\tif (params.agent !== undefined && (typeof params.agent !== \"string\" || !params.agent.trim())) {\n\t\t\treturn { ok: false, error: \"Direct agent must be a non-empty string.\", mode: \"workflow\" };\n\t\t}\n\t\tif (typeof params.task !== \"string\" || !params.task.trim()) {\n\t\t\treturn { ok: false, error: \"Direct execution requires a non-empty task.\", mode: \"workflow\" };\n\t\t}\n\t\tif (params.workflowScript !== undefined) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: \"Direct execution and workflowScript cannot be combined.\",\n\t\t\t\tmode: \"workflow\",\n\t\t\t};\n\t\t}\n\t\treturn { ok: true, params };\n\t}\n\tif (typeof params.workflowScript !== \"string\" || !params.workflowScript.trim()) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: \"Execution requires either { agent?, task } or a non-empty workflowScript.\",\n\t\t\tmode: \"workflow\",\n\t\t};\n\t}\n\treturn { ok: true, params };\n}\n"]}