{"version":3,"file":"server.mjs","names":["hookAgentSettled","hookBeforeAgentStart","hookSessionShutdown","hookToolResult","resourceDoompiAuthorHook"],"sources":["../../src/services/serverHooks/index.ts","../../src/extensions/workspaces/sessions/(backend)/hook/agent-settled.server.ts","../../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server.ts","../../src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.ts","../../src/extensions/workspaces/sessions/(backend)/hook/tool-result.server.ts","../../src/extensions/workspaces/sessions/(backend)/resource/doompi-author-hook.server.ts","../../generated/server.ts"],"sourcesContent":["import { type DoomHeadlessHook, type DoomHeadlessResource } from '@agimon-ai/doompi-core/headless';\nimport { readPackageResource } from '@agimon-ai/doompi-core/serverFacet';\n\nfunction hookEntry(event: Readonly<Record<string, unknown>>): Record<string, unknown> {\n  return {\n    version: 1,\n    event: typeof event.type === 'string' ? event.type : 'headless-hook',\n    data: event,\n  };\n}\n\nexport const hookResource: DoomHeadlessResource = {\n  name: 'doompi-author-hook',\n  kind: 'skill',\n  read: () => readPackageResource(import.meta.url, 'src/prompts/doompi-author-hook/SKILL.md'),\n};\n\nexport const serverHooks: DoomHeadlessHook[] = [\n  {\n    event: 'before_agent_start',\n    handle: (event, execution) => execution.session.appendCustomEntry('doom-hook', hookEntry(event)),\n  },\n  {\n    event: 'tool_result',\n    handle: (event, execution) => execution.session.appendCustomEntry('doom-hook', hookEntry(event)),\n  },\n  {\n    event: 'agent_settled',\n    handle: (event, execution) => execution.session.appendCustomEntry('doom-hook', hookEntry(event)),\n  },\n  {\n    event: 'session_shutdown',\n    handle(_event, execution) {\n      execution.client.setStatus('doom-hook', undefined);\n    },\n  },\n];\n","import { defineHook } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { serverHooks } from '../../../../../services/serverHooks';\nexport default defineHook(serverHooks[2]!);\n","import { defineHook } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { serverHooks } from '../../../../../services/serverHooks';\nexport default defineHook(serverHooks[0]!);\n","import { defineHook } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { serverHooks } from '../../../../../services/serverHooks';\nexport default defineHook(serverHooks[3]!);\n","import { defineHook } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { serverHooks } from '../../../../../services/serverHooks';\nexport default defineHook(serverHooks[1]!);\n","import { defineResource } from '@agimon-ai/doompi-core/extensionFile';\nimport { readPackageResource } from '@agimon-ai/doompi-core/serverFacet';\n\nexport default defineResource({\n  name: 'doompi-author-hook',\n  kind: 'skill' as const,\n  read: () => readPackageResource(import.meta.url, 'src/prompts/doompi-author-hook/SKILL.md'),\n});\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineServerPlugin, type DoomServerSessionPlugin } from '@agimon-ai/doompi-core/serverFacet';\n\nimport hookAgentSettled from '../src/extensions/workspaces/sessions/(backend)/hook/agent-settled.server';\nimport hookBeforeAgentStart from '../src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.server';\nimport hookSessionShutdown from '../src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server';\nimport hookToolResult from '../src/extensions/workspaces/sessions/(backend)/hook/tool-result.server';\nimport resourceDoompiAuthorHook from '../src/extensions/workspaces/sessions/(backend)/resource/doompi-author-hook.server';\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 => ({ ...identity, ...(value as object) }) as T;\n\nexport const facet = defineServerPlugin({\n  name: '@agimon-ai/doompi-hook',\n  session: (context) => ({\n    get hooks(): DoomServerSessionPlugin['hooks'] { return [via({ event: 'agent_settled' }, at(hookAgentSettled, context)), via({ event: 'before_agent_start' }, at(hookBeforeAgentStart, context)), via({ event: 'session_shutdown' }, at(hookSessionShutdown, context)), via({ event: 'tool_result' }, at(hookToolResult, context))]; },\n    get resources(): DoomServerSessionPlugin['resources'] { return [at(resourceDoompiAuthorHook, context)]; },\n  }),\n});\n\nexport default facet;\n"],"mappings":";;;AAGA,SAAS,UAAU,OAAmE;CACpF,OAAO;EACL,SAAS;EACT,OAAO,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO;EACrD,MAAM;CACR;AACF;AAQA,MAAa,cAAkC;CAC7C;EACE,OAAO;EACP,SAAS,OAAO,cAAc,UAAU,QAAQ,kBAAkB,aAAa,UAAU,KAAK,CAAC;CACjG;CACA;EACE,OAAO;EACP,SAAS,OAAO,cAAc,UAAU,QAAQ,kBAAkB,aAAa,UAAU,KAAK,CAAC;CACjG;CACA;EACE,OAAO;EACP,SAAS,OAAO,cAAc,UAAU,QAAQ,kBAAkB,aAAa,UAAU,KAAK,CAAC;CACjG;CACA;EACE,OAAO;EACP,OAAO,QAAQ,WAAW;GACxB,UAAU,OAAO,UAAU,aAAa,KAAA,CAAS;EACnD;CACF;AACF;;;ACjCA,IAAA,+BAAe,WAAW,YAAY,EAAG;;;ACAzC,IAAA,oCAAe,WAAW,YAAY,EAAG;;;ACAzC,IAAA,kCAAe,WAAW,YAAY,EAAG;;;ACAzC,IAAA,6BAAe,WAAW,YAAY,EAAG;;;ACAzC,IAAA,oCAAe,eAAe;CAC5B,MAAM;CACN,MAAM;CACN,YAAY,oBAAoB,YAAY,KAAK,yCAAyC;AAC5F,CAAC;;;ACGD,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,QAAQ,mBAAmB;CACtC,MAAM;CACN,UAAU,aAAa;EACrB,IAAI,QAA0C;GAAE,OAAO;IAAC,IAAI,EAAE,OAAO,gBAAgB,GAAG,GAAGA,8BAAkB,OAAO,CAAC;IAAG,IAAI,EAAE,OAAO,qBAAqB,GAAG,GAAGC,mCAAsB,OAAO,CAAC;IAAG,IAAI,EAAE,OAAO,mBAAmB,GAAG,GAAGC,iCAAqB,OAAO,CAAC;IAAG,IAAI,EAAE,OAAO,cAAc,GAAG,GAAGC,4BAAgB,OAAO,CAAC;GAAC;EAAG;EACpU,IAAI,YAAkD;GAAE,OAAO,CAAC,GAAGC,mCAA0B,OAAO,CAAC;EAAG;CAC1G;AACF,CAAC"}