{"version":3,"file":"delegationPlatform-DZ4SZ8a5.mjs","names":[],"sources":["../src/services/contextContribution/index.ts","../src/services/delegationPlatform/index.ts"],"sourcesContent":["import type { DoomContextContribution } from '@agimon-ai/doompi-core/contextContributions';\n\nimport type { Task } from '../../models/task';\n\nexport const TASK_CONTEXT_CONTRIBUTION_SOURCE = '@agimon-ai/doompi-task';\nexport const TASK_CONTEXT_CONTRIBUTION_ID = 'active-tasks';\nexport const TASK_CONTEXT_CONTRIBUTION_LABEL = 'Active tasks';\nexport const TASK_CONTEXT_CONTRIBUTION_ORDER = 100;\n\ninterface TaskContextSnapshot {\n  readonly id: number;\n  readonly status: Task['status'];\n  readonly subject: string;\n  readonly activeForm?: string;\n  readonly owner?: string;\n  readonly blockedBy?: readonly number[];\n  readonly delegation?: {\n    readonly agent: string;\n    readonly state: NonNullable<Task['delegation']>['state'];\n    readonly error?: string;\n  };\n}\n\nexport function activeTaskSnapshots(tasks: readonly Task[]): TaskContextSnapshot[] {\n  return tasks\n    .filter((task) => task.status === 'pending' || task.status === 'in_progress' || task.status === 'failed')\n    .map((task) => ({\n      id: task.id,\n      status: task.status,\n      subject: task.subject,\n      ...(task.activeForm ? { activeForm: task.activeForm } : {}),\n      ...(task.owner ? { owner: task.owner } : {}),\n      ...(task.blockedBy?.length ? { blockedBy: task.blockedBy } : {}),\n      ...(task.delegation\n        ? {\n            delegation: {\n              agent: task.delegation.agent,\n              state: task.delegation.state,\n              ...(task.delegation.result?.error ? { error: task.delegation.result.error } : {}),\n            },\n          }\n        : {}),\n    }));\n}\n\nexport function formatTaskSnapshots(tasks: readonly TaskContextSnapshot[]): string {\n  if (tasks.length === 0) return '(no active tasks)';\n  return tasks\n    .map((task) => {\n      const details = [\n        task.activeForm ? `active: ${task.activeForm}` : undefined,\n        task.owner ? `owner: ${task.owner}` : undefined,\n        task.blockedBy?.length ? `blocked by: ${task.blockedBy.join(', ')}` : undefined,\n        task.delegation ? `delegation: ${task.delegation.agent} (${task.delegation.state})` : undefined,\n        task.delegation?.error ? `error: ${task.delegation.error}` : undefined,\n      ].filter((value): value is string => Boolean(value));\n      return `- #${task.id} [${task.status}] ${task.subject}${details.length > 0 ? ` | ${details.join(' | ')}` : ''}`;\n    })\n    .join('\\n');\n}\n\n/** Builds Task's bounded, synchronous contribution from its in-memory store snapshot. */\nexport function createTaskContextContribution(readTasks: () => readonly Task[]): DoomContextContribution {\n  return Object.freeze({\n    source: TASK_CONTEXT_CONTRIBUTION_SOURCE,\n    id: TASK_CONTEXT_CONTRIBUTION_ID,\n    label: TASK_CONTEXT_CONTRIBUTION_LABEL,\n    order: TASK_CONTEXT_CONTRIBUTION_ORDER,\n    snapshot: () => formatTaskSnapshots(activeTaskSnapshots(readTasks())),\n  });\n}\n","import { randomUUID } from 'node:crypto';\nimport path from 'node:path';\n\nimport type { DelegationPlatform } from '../delegation';\n\nfunction formatBriefPath(entry: string, cwd: string): string {\n  if (!path.isAbsolute(entry)) return path.normalize(entry);\n  const relative = path.relative(cwd, entry);\n  // Outside the run directory the original beats a `../../` chain.\n  return relative && !relative.startsWith('..') ? relative : entry;\n}\n\n/** Supply Node-owned process and path facilities to the host-neutral manager. */\nexport function createNodeDelegationPlatform(\n  environment: Readonly<Record<string, string | undefined>> = process.env,\n): DelegationPlatform {\n  return {\n    environment,\n    processId: process.pid,\n    createRequestId: randomUUID,\n    formatBriefPath,\n  };\n}\n"],"mappings":";;;AAIA,MAAa,mCAAmC;AAChD,MAAa,+BAA+B;AAC5C,MAAa,kCAAkC;AAiB/C,SAAgB,oBAAoB,OAA+C;CACjF,OAAO,MACJ,QAAQ,SAAS,KAAK,WAAW,aAAa,KAAK,WAAW,iBAAiB,KAAK,WAAW,QAAQ,CAAC,CACxG,KAAK,UAAU;EACd,IAAI,KAAK;EACT,QAAQ,KAAK;EACb,SAAS,KAAK;EACd,GAAI,KAAK,aAAa,EAAE,YAAY,KAAK,WAAW,IAAI,CAAC;EACzD,GAAI,KAAK,QAAQ,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC;EAC1C,GAAI,KAAK,WAAW,SAAS,EAAE,WAAW,KAAK,UAAU,IAAI,CAAC;EAC9D,GAAI,KAAK,aACL,EACE,YAAY;GACV,OAAO,KAAK,WAAW;GACvB,OAAO,KAAK,WAAW;GACvB,GAAI,KAAK,WAAW,QAAQ,QAAQ,EAAE,OAAO,KAAK,WAAW,OAAO,MAAM,IAAI,CAAC;EACjF,EACF,IACA,CAAC;CACP,EAAE;AACN;AAEA,SAAgB,oBAAoB,OAA+C;CACjF,IAAI,MAAM,WAAW,GAAG,OAAO;CAC/B,OAAO,MACJ,KAAK,SAAS;EACb,MAAM,UAAU;GACd,KAAK,aAAa,WAAW,KAAK,eAAe,KAAA;GACjD,KAAK,QAAQ,UAAU,KAAK,UAAU,KAAA;GACtC,KAAK,WAAW,SAAS,eAAe,KAAK,UAAU,KAAK,IAAI,MAAM,KAAA;GACtE,KAAK,aAAa,eAAe,KAAK,WAAW,MAAM,IAAI,KAAK,WAAW,MAAM,KAAK,KAAA;GACtF,KAAK,YAAY,QAAQ,UAAU,KAAK,WAAW,UAAU,KAAA;EAC/D,CAAC,CAAC,QAAQ,UAA2B,QAAQ,KAAK,CAAC;EACnD,OAAO,MAAM,KAAK,GAAG,IAAI,KAAK,OAAO,IAAI,KAAK,UAAU,QAAQ,SAAS,IAAI,MAAM,QAAQ,KAAK,KAAK,MAAM;CAC7G,CAAC,CAAC,CACD,KAAK,IAAI;AACd;;AAGA,SAAgB,8BAA8B,WAA2D;CACvG,OAAO,OAAO,OAAO;EACnB,QAAQ;EACR,IAAI;EACJ,OAAO;EACP,OAAA;EACA,gBAAgB,oBAAoB,oBAAoB,UAAU,CAAC,CAAC;CACtE,CAAC;AACH;;;ACjEA,SAAS,gBAAgB,OAAe,KAAqB;CAC3D,IAAI,CAAC,KAAK,WAAW,KAAK,GAAG,OAAO,KAAK,UAAU,KAAK;CACxD,MAAM,WAAW,KAAK,SAAS,KAAK,KAAK;CAEzC,OAAO,YAAY,CAAC,SAAS,WAAW,IAAI,IAAI,WAAW;AAC7D;;AAGA,SAAgB,6BACd,cAA4D,QAAQ,KAChD;CACpB,OAAO;EACL;EACA,WAAW,QAAQ;EACnB,iBAAiB;EACjB;CACF;AACF"}