{"version":3,"file":"pi.mjs","names":["rootSession","hookBeforeAgentStart","hookContext","hookSessionStart","hookToolCall","resourcePlan","toolCompletePlan","toolRecordDebugEvidence","toolRunFablePlan","toolWritePlan"],"sources":["../../src/extensions/workspaces/sessions/(backend)/root.cli.ts","../../src/extensions/workspaces/sessions/(backend)/hook/beforeAgentStart.cli.ts","../../src/extensions/workspaces/sessions/(backend)/hook/context.cli.ts","../../src/extensions/workspaces/sessions/(backend)/hook/sessionStart.cli.ts","../../src/extensions/workspaces/sessions/(backend)/hook/toolCall.cli.ts","../../src/extensions/workspaces/sessions/(backend)/resource/plan.cli.ts","../../src/extensions/workspaces/sessions/(backend)/tool/completePlan.cli.ts","../../src/extensions/workspaces/sessions/(backend)/tool/recordDebugEvidence.cli.ts","../../src/extensions/workspaces/sessions/(backend)/tool/runFablePlan.cli.ts","../../src/extensions/workspaces/sessions/(backend)/tool/writePlan.cli.ts","../../generated/pi.ts"],"sourcesContent":["import { defineRoot, type RootDeclaration } from '@agimon-ai/doompi-core/extensionFile';\nimport {\n  definePiTool,\n  type PiPluginContext,\n  type PiPluginContributions,\n  type PiToolDeclaration,\n} from '@agimon-ai/doompi-core/piExtension';\n\nimport { createPlanModeRuntime } from '../../../../services/planMode';\n\ntype Scope = Omit<ReturnType<typeof createPlanModeRuntime>, 'tools'> & {\n  readonly tools: readonly PiToolDeclaration[];\n  readonly resources: NonNullable<PiPluginContributions['resources']>;\n};\n\nexport default defineRoot((context: PiPluginContext<undefined>): RootDeclaration<Scope, PiPluginContext<undefined>> => {\n  const runtime = createPlanModeRuntime(context.pi);\n  const value = {\n    ...runtime,\n    tools: runtime.tools.map((tool) => definePiTool(tool)),\n    resources: [\n      {\n        source: '@agimon-ai/doompi-plan',\n        moduleUrl: import.meta.url,\n        skills: [\n          {\n            name: 'doompi-use-plan',\n            description:\n              'Use Doom Pi Plan to draft reviewable normal, debug, or Fable-assisted plans, persist them, and exit safely.',\n          },\n        ],\n      },\n    ],\n  };\n  return {\n    value,\n    services: value.services,\n    onStart: value.onStart,\n    onStop: value.onStop,\n    onDispose: value.onDispose,\n  };\n});\n","import { defineCliHook, type WithRoot } from '@agimon-ai/doompi-core/extensionFile';\n\ntype Root = Awaited<ReturnType<typeof import('../root.cli').default>>['value'];\n\nexport default defineCliHook((context: WithRoot<unknown, Root>) => context.root.events!.before_agent_start!);\n","import { defineCliHook, type WithRoot } from '@agimon-ai/doompi-core/extensionFile';\nimport type { PiEventHandlers } from '@agimon-ai/doompi-core/piExtension';\n\ntype Root = Awaited<ReturnType<typeof import('../root.cli').default>>['value'];\n\nexport default defineCliHook(\n  (context: WithRoot<unknown, Root>): NonNullable<PiEventHandlers['context']> => context.root.events!.context!,\n);\n","import { defineCliHook, type WithRoot } from '@agimon-ai/doompi-core/extensionFile';\n\ntype Root = Awaited<ReturnType<typeof import('../root.cli').default>>['value'];\n\nexport default defineCliHook((context: WithRoot<unknown, Root>) => context.root.events!.session_start!);\n","import { defineCliHook, type WithRoot } from '@agimon-ai/doompi-core/extensionFile';\n\ntype Root = Awaited<ReturnType<typeof import('../root.cli').default>>['value'];\n\nexport default defineCliHook((context: WithRoot<unknown, Root>) => context.root.events!.tool_call!);\n","import { defineResource, type WithRoot } from '@agimon-ai/doompi-core/extensionFile';\n\ntype Root = Awaited<ReturnType<typeof import('../root.cli').default>>['value'];\n\nexport default defineResource((context: WithRoot<unknown, Root>) => context.root.resources![0]!);\n","import { defineCliTool, type WithRoot } from '@agimon-ai/doompi-core/extensionFile';\n\ntype Root = Awaited<ReturnType<typeof import('../root.cli').default>>['value'];\n\nexport default defineCliTool((context: WithRoot<unknown, Root>) => context.root.tools![3]!);\n","import { defineCliTool, type WithRoot } from '@agimon-ai/doompi-core/extensionFile';\n\ntype Root = Awaited<ReturnType<typeof import('../root.cli').default>>['value'];\n\nexport default defineCliTool((context: WithRoot<unknown, Root>) => context.root.tools![0]!);\n","import { defineCliTool, type WithRoot } from '@agimon-ai/doompi-core/extensionFile';\n\ntype Root = Awaited<ReturnType<typeof import('../root.cli').default>>['value'];\n\nexport default defineCliTool((context: WithRoot<unknown, Root>) => context.root.tools![1]!);\n","import { defineCliTool, type WithRoot } from '@agimon-ai/doompi-core/extensionFile';\n\ntype Root = Awaited<ReturnType<typeof import('../root.cli').default>>['value'];\n\nexport default defineCliTool((context: WithRoot<unknown, Root>) => context.root.tools![2]!);\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, type PiPluginContext, type PiPluginContributions } from '@agimon-ai/doompi-core/piExtension';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extensionFile';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.cli';\nimport hookBeforeAgentStart from '../src/extensions/workspaces/sessions/(backend)/hook/beforeAgentStart.cli';\nimport hookContext from '../src/extensions/workspaces/sessions/(backend)/hook/context.cli';\nimport hookSessionStart from '../src/extensions/workspaces/sessions/(backend)/hook/sessionStart.cli';\nimport hookToolCall from '../src/extensions/workspaces/sessions/(backend)/hook/toolCall.cli';\nimport resourcePlan from '../src/extensions/workspaces/sessions/(backend)/resource/plan.cli';\nimport toolCompletePlan from '../src/extensions/workspaces/sessions/(backend)/tool/completePlan.cli';\nimport toolRecordDebugEvidence from '../src/extensions/workspaces/sessions/(backend)/tool/recordDebugEvidence.cli';\nimport toolRunFablePlan from '../src/extensions/workspaces/sessions/(backend)/tool/runFablePlan.cli';\nimport toolWritePlan from '../src/extensions/workspaces/sessions/(backend)/tool/writePlan.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof hookBeforeAgentStart> | OptionsOf<typeof hookContext> | OptionsOf<typeof hookSessionStart> | OptionsOf<typeof hookToolCall> | OptionsOf<typeof resourcePlan> | OptionsOf<typeof toolCompletePlan> | OptionsOf<typeof toolRecordDebugEvidence> | OptionsOf<typeof toolRunFablePlan> | OptionsOf<typeof toolWritePlan>, undefined>;\ntype Intersect<Union> =\n  (Union extends unknown ? (value: Union) => void : never) extends (value: infer Value) => void ? Value : never;\ntype ExtensionOptions = [InferredOptions] extends [never] ? undefined : Intersect<InferredOptions>;\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n  typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T =>\n  (value === undefined ? undefined : { ...identity, ...(value as object) }) as T;\n\nexport const extension = definePiExtension<ExtensionOptions>('@agimon-ai/doompi-plan', async (context) => {\n  const scopeSession = await rootSession(context);\n  const contextSession = { ...context, root: scopeSession.value };\n  return {\n    ...composeRootHooks(scopeSession),\n    events: {\n      before_agent_start: at(hookBeforeAgentStart, contextSession) as NonNullable<PiPluginContributions['events']>['before_agent_start'],\n      context: at(hookContext, contextSession) as NonNullable<PiPluginContributions['events']>['context'],\n      session_start: at(hookSessionStart, contextSession) as NonNullable<PiPluginContributions['events']>['session_start'],\n      tool_call: at(hookToolCall, contextSession) as NonNullable<PiPluginContributions['events']>['tool_call'],\n    },\n    get resources(): PiPluginContributions['resources'] { return [at(resourcePlan, contextSession)]; },\n    ...piToolContributions('@agimon-ai/doompi-plan', [via({ name: 'complete_plan' }, at(toolCompletePlan, contextSession)), via({ name: 'record_debug_evidence' }, at(toolRecordDebugEvidence, contextSession)), via({ name: 'run_fable_plan' }, at(toolRunFablePlan, contextSession)), via({ name: 'write_plan' }, at(toolWritePlan, contextSession))]),\n    services: [...(scopeSession.services ?? [])],\n  };\n});\n\nexport default extension;\n"],"mappings":";;;;AAeA,IAAA,mBAAe,YAAY,YAA4F;CACrH,MAAM,UAAU,sBAAsB,QAAQ,EAAE;CAChD,MAAM,QAAQ;EACZ,GAAG;EACH,OAAO,QAAQ,MAAM,KAAK,SAAS,aAAa,IAAI,CAAC;EACrD,WAAW,CACT;GACE,QAAQ;GACR,WAAW,YAAY;GACvB,QAAQ,CACN;IACE,MAAM;IACN,aACE;GACJ,CACF;EACF,CACF;CACF;CACA,OAAO;EACL;EACA,UAAU,MAAM;EAChB,SAAS,MAAM;EACf,QAAQ,MAAM;EACd,WAAW,MAAM;CACnB;AACF,CAAC;;;ACrCD,IAAA,+BAAe,eAAe,YAAqC,QAAQ,KAAK,OAAQ,kBAAmB;;;ACC3G,IAAA,sBAAe,eACZ,YAA8E,QAAQ,KAAK,OAAQ,OACtG;;;ACHA,IAAA,2BAAe,eAAe,YAAqC,QAAQ,KAAK,OAAQ,aAAc;;;ACAtG,IAAA,uBAAe,eAAe,YAAqC,QAAQ,KAAK,OAAQ,SAAU;;;ACAlG,IAAA,mBAAe,gBAAgB,YAAqC,QAAQ,KAAK,UAAW,EAAG;;;ACA/F,IAAA,2BAAe,eAAe,YAAqC,QAAQ,KAAK,MAAO,EAAG;;;ACA1F,IAAA,kCAAe,eAAe,YAAqC,QAAQ,KAAK,MAAO,EAAG;;;ACA1F,IAAA,2BAAe,eAAe,YAAqC,QAAQ,KAAK,MAAO,EAAG;;;ACA1F,IAAA,wBAAe,eAAe,YAAqC,QAAQ,KAAK,MAAO,EAAG;;;ACkB1F,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,UAChD,UAAU,KAAA,IAAY,KAAA,IAAY;CAAE,GAAG;CAAU,GAAI;AAAiB;AAEzE,MAAa,YAAY,kBAAoC,0BAA0B,OAAO,YAAY;CACxG,MAAM,eAAe,MAAMA,iBAAY,OAAO;CAC9C,MAAM,iBAAiB;EAAE,GAAG;EAAS,MAAM,aAAa;CAAM;CAC9D,OAAO;EACL,GAAG,iBAAiB,YAAY;EAChC,QAAQ;GACN,oBAAoB,GAAGC,8BAAsB,cAAc;GAC3D,SAAS,GAAGC,qBAAa,cAAc;GACvC,eAAe,GAAGC,0BAAkB,cAAc;GAClD,WAAW,GAAGC,sBAAc,cAAc;EAC5C;EACA,IAAI,YAAgD;GAAE,OAAO,CAAC,GAAGC,kBAAc,cAAc,CAAC;EAAG;EACjG,GAAG,oBAAoB,0BAA0B;GAAC,IAAI,EAAE,MAAM,gBAAgB,GAAG,GAAGC,0BAAkB,cAAc,CAAC;GAAG,IAAI,EAAE,MAAM,wBAAwB,GAAG,GAAGC,iCAAyB,cAAc,CAAC;GAAG,IAAI,EAAE,MAAM,iBAAiB,GAAG,GAAGC,0BAAkB,cAAc,CAAC;GAAG,IAAI,EAAE,MAAM,aAAa,GAAG,GAAGC,uBAAe,cAAc,CAAC;EAAC,CAAC;EACnV,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}