{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAiC,KAAK,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,EAAgC,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAA6B,KAAK,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAKtF,MAAM,WAAW,oBAAoB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,GAC3D,uBAAuB,GAAG;IACzB,YAAY,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACnD,WAAW,CAAC,EAAE,oBAAoB,GAAG,KAAK,CAAC;CAC3C,CAAC;AAEH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,gBAAgB,CA2BtF;;AAED,wBAAoC","sourcesContent":["import type { ExtensionFactory } from \"@ch1nyzzz/pi-coding-agent\";\nimport { createEvoAutoImproveExtension } from \"./auto-improve.ts\";\nimport { createEvoCodeFeatureExtension, type EvoCodeFeatureDefinition } from \"./bundle/code-feature.ts\";\nimport { createPolicyRuntimeExtension, type EvoPolicyRuntimeOptions } from \"./bundle/runtime.ts\";\nimport { createEvoCommandExtension, type EvoCommandExtensionOptions } from \"./cli.ts\";\nimport { getEvoPaths } from \"./paths.ts\";\nimport { createRecorderExtension } from \"./recorder/extension.ts\";\nimport { EvoService } from \"./service.ts\";\n\nexport interface EvoAutoImproveTuning {\n\tinitialDelayMs?: number;\n\tcheckIntervalMs?: number;\n}\n\nexport type EvoExtensionOptions = EvoCommandExtensionOptions &\n\tEvoPolicyRuntimeOptions & {\n\t\tcodeFeatures?: readonly EvoCodeFeatureDefinition[];\n\t\tautoImprove?: EvoAutoImproveTuning | false;\n\t};\n\nexport function createEvoExtension(options: EvoExtensionOptions = {}): ExtensionFactory {\n\tconst paths = options.service?.paths ?? options.paths ?? getEvoPaths(options.root);\n\tconst service = options.service ?? new EvoService(paths);\n\tconst policyRuntime = createPolicyRuntimeExtension({ ...options, root: paths.root });\n\tconst recorder = createRecorderExtension({ paths });\n\tconst commands = createEvoCommandExtension({\n\t\t...options,\n\t\tpaths,\n\t\tservice,\n\t\tspawnAgentToolNames: options.spawnAgentToolNames ?? options.spawnAgentTools?.map((tool) => tool.name),\n\t});\n\tconst autoImprove =\n\t\toptions.autoImprove === false\n\t\t\t? undefined\n\t\t\t: createEvoAutoImproveExtension({ ...options, paths, service, ...options.autoImprove });\n\n\treturn async (pi) => {\n\t\t// ExtensionRunner chains before_agent_start results in registration order.\n\t\t// Policy therefore mutates the effective prompt before Recorder observes it.\n\t\tawait policyRuntime(pi);\n\t\tfor (const feature of options.codeFeatures ?? []) {\n\t\t\tawait createEvoCodeFeatureExtension(feature, { root: paths.root })(pi);\n\t\t}\n\t\tawait recorder(pi);\n\t\tawait commands(pi);\n\t\tif (autoImprove) await autoImprove(pi);\n\t};\n}\n\nexport default createEvoExtension();\n"]}