{"version":3,"file":"tasks.cli.mjs","names":[],"sources":["../../../../../../../../src/extensions/workspaces/sessions/(backend)/command/_lib/tasks.cli.ts"],"sourcesContent":["import type { WithRoot } from '@agimon-ai/doompi-core/extension-file';\nimport type { PiPluginContext } from '@agimon-ai/doompi-core/pi-extension';\nimport type { ExtensionAPI, ExtensionContext } from '@earendil-works/pi-coding-agent';\n\nimport { COMMAND_NAME, ERR_REQUIRES_INTERACTIVE } from '../../../../../../schemas/task';\nimport type { TaskStore } from '../../../../../../services/taskStore';\nimport type { TaskPiScope } from '../../_lib/root.cli';\n\ntype OpenTaskSpace = (context: ExtensionContext, options: { store: TaskStore }) => Promise<void>;\n\nexport const createTasksContribution =\n  (openTaskSpace: OpenTaskSpace) => (context: WithRoot<PiPluginContext, TaskPiScope>) =>\n    createTasksCommand(context.root.taskStore, openTaskSpace, context.root.waitForSessionReadiness);\n\n/**\n * `/tasks`, reachable from the leader palette as `SPC t l`.\n *\n * The command opens the Task Space overlay rather than printing a listing: the\n * overlay is the readable surface and it can edit, while a transcript dump could\n * only be read.\n */\nexport function createTasksCommand(\n  store: TaskStore,\n  openTaskSpace: OpenTaskSpace,\n  waitUntilReady?: (context: ExtensionContext) => Promise<void>,\n): readonly [string, Parameters<ExtensionAPI['registerCommand']>[1]] {\n  return [\n    COMMAND_NAME,\n    {\n      description: 'Open Task Space for this session tree',\n      handler: async (_args, ctx) => {\n        if (!ctx.hasUI) {\n          ctx.ui.notify(ERR_REQUIRES_INTERACTIVE, 'error');\n          return;\n        }\n\n        await waitUntilReady?.(ctx);\n        store.read();\n        await openTaskSpace(ctx, { store });\n      },\n    },\n  ];\n}\n"],"mappings":";;;AAUA,MAAa,2BACV,mBAAkC,YACjC,mBAAmB,QAAQ,KAAK,WAAW,eAAe,QAAQ,KAAK,uBAAuB;;;;;;;;AASlG,SAAgB,mBACd,OACA,eACA,gBACmE;CACnE,OAAO,CACL,cACA;EACE,aAAa;EACb,SAAS,OAAO,OAAO,QAAQ;GAC7B,IAAI,CAAC,IAAI,OAAO;IACd,IAAI,GAAG,OAAO,0BAA0B,OAAO;IAC/C;GACF;GAEA,MAAM,iBAAiB,GAAG;GAC1B,MAAM,KAAK;GACX,MAAM,cAAc,KAAK,EAAE,MAAM,CAAC;EACpC;CACF,CACF;AACF"}