{"version":3,"file":"steering-notices.d.ts","sourceRoot":"","sources":["../../../src/extension/steering-notices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExE,eAAO,MAAM,8BAA8B,6BAA6B,CAAC;AAEzE,MAAM,WAAW,8BAA+B,SAAQ,cAAc;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,IAAI,CAAC,8BAA8B,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC,GACxF,MAAM,CAOR;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IACnD,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACtC,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,8BAA8B,CAAC;CACxC,GAAG,IAAI,CAiBP","sourcesContent":["import type { ExtensionAPI } from \"@lpb-work/pi-coding-agent\";\nimport type { SteeringNotice, SubagentState } from \"../shared/types.ts\";\n\nexport const SUBAGENT_STEERING_MESSAGE_TYPE = \"subagent_steering_notice\";\n\nexport interface SubagentSteeringMessageDetails extends SteeringNotice {\n\tsource?: \"async\";\n\tasyncDir?: string;\n\tnoticeText?: string;\n}\n\nexport function formatSteeringNotice(\n\tdetails: Pick<SubagentSteeringMessageDetails, \"runId\" | \"requestId\" | \"state\" | \"message\">,\n): string {\n\treturn [\n\t\t`Subagent steering ${details.state}: ${details.runId}`,\n\t\t`Request: ${details.requestId}`,\n\t\tdetails.message,\n\t\t\"Inspect the run status before sending another correction.\",\n\t].join(\"\\n\");\n}\n\nexport function handleSubagentSteeringNotice(input: {\n\tpi: Pick<ExtensionAPI, \"sendMessage\">;\n\tstate: SubagentState;\n\tdetails: SubagentSteeringMessageDetails;\n}): void {\n\tif (\n\t\t!input.details ||\n\t\t(input.details.state !== \"failed\" && input.details.state !== \"partial\" && input.details.state !== \"recovered\")\n\t)\n\t\treturn;\n\tif (!input.state.currentSessionId || input.details.currentSessionId !== input.state.currentSessionId) return;\n\tconst noticeText = input.details.noticeText ?? formatSteeringNotice(input.details);\n\tinput.pi.sendMessage(\n\t\t{\n\t\t\tcustomType: SUBAGENT_STEERING_MESSAGE_TYPE,\n\t\t\tcontent: noticeText,\n\t\t\tdisplay: true,\n\t\t\tdetails: { ...input.details, noticeText },\n\t\t},\n\t\t{ triggerTurn: true },\n\t);\n}\n"]}