{"version":3,"file":"fablePlan.cjs","names":["Type"],"sources":["../../src/schemas/fablePlan.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport { type Static, Type } from 'typebox';\n\nexport const FABLE_PLAN_REQUESTER = '@agimon-ai/doompi-plan' as const;\nexport const FABLE_PLAN_RUNTIME = 'claude' as const;\nexport const FABLE_PLAN_MODEL = 'fable' as const;\nexport const FABLE_PLAN_PROFILE = 'claude/fable-plan-v1' as const;\nexport const DOOM_FABLE_PLAN_SERVICE = 'doom/fable-plan';\n\nconst MAX_OPERATION_ID_LENGTH = 128;\nconst MAX_RUN_ID_LENGTH = 128;\nconst MAX_SOURCE_PATH_LENGTH = 512;\nconst MAX_ITEM_LENGTH = 4_096;\nconst MAX_GOAL_ITEMS = 8;\nconst MAX_CONSTRAINT_ITEMS = 16;\nconst MAX_DECISION_ITEMS = 16;\nconst MAX_FINDING_ITEMS = 24;\nconst MAX_QUESTION_ITEMS = 16;\nconst MAX_PLAN_LENGTH = 16_384;\nconst MAX_OUTPUT_LENGTH = 16_384;\nconst MAX_ERROR_CODE_LENGTH = 128;\nconst MAX_STATUS_LENGTH = 128;\n\nconst OperationIdSchema = Type.String({ minLength: 1, maxLength: MAX_OPERATION_ID_LENGTH });\nconst RunIdSchema = Type.String({ minLength: 1, maxLength: MAX_RUN_ID_LENGTH });\nconst ItemSchema = Type.String({ minLength: 1, maxLength: MAX_ITEM_LENGTH });\n\nexport const FablePlanFindingSchema = Type.Object(\n  {\n    path: Type.String({ minLength: 1, maxLength: MAX_SOURCE_PATH_LENGTH }),\n    finding: ItemSchema,\n  },\n  { additionalProperties: false },\n);\nexport type FablePlanFinding = Static<typeof FablePlanFindingSchema>;\n\nexport const FablePlanPacketSchema = Type.Object(\n  {\n    goal: Type.Array(ItemSchema, { minItems: 1, maxItems: MAX_GOAL_ITEMS }),\n    constraints: Type.Array(ItemSchema, { maxItems: MAX_CONSTRAINT_ITEMS }),\n    decisions: Type.Array(ItemSchema, { maxItems: MAX_DECISION_ITEMS }),\n    verifiedFindings: Type.Array(FablePlanFindingSchema, { maxItems: MAX_FINDING_ITEMS }),\n    inferredFindings: Type.Array(ItemSchema, { maxItems: MAX_FINDING_ITEMS }),\n    unresolvedQuestions: Type.Array(ItemSchema, { maxItems: MAX_QUESTION_ITEMS }),\n    currentPlan: Type.Optional(Type.String({ maxLength: MAX_PLAN_LENGTH })),\n  },\n  { additionalProperties: false },\n);\nexport type FablePlanPacket = Static<typeof FablePlanPacketSchema>;\n\nexport const FablePlanStageSchema = Type.Union([\n  Type.Literal('draft'),\n  Type.Literal('review'),\n  Type.Literal('completed'),\n  Type.Literal('failed'),\n  Type.Literal('cancelled'),\n  Type.Literal('interrupted'),\n]);\nexport type FablePlanStage = Static<typeof FablePlanStageSchema>;\n\nexport const FablePlanStatusSchema = Type.Union([\n  Type.Literal('completed'),\n  Type.Literal('failed'),\n  Type.Literal('timed_out'),\n  Type.Literal('cancelled'),\n  Type.Literal('interrupted'),\n]);\nexport type FablePlanStatus = Static<typeof FablePlanStatusSchema>;\n\nexport const FablePlanStartSchema = Type.Object(\n  {\n    requester: Type.Literal(FABLE_PLAN_REQUESTER),\n    operationId: OperationIdSchema,\n    runtime: Type.Literal(FABLE_PLAN_RUNTIME),\n    model: Type.Literal(FABLE_PLAN_MODEL),\n    profile: Type.Literal(FABLE_PLAN_PROFILE),\n    packet: FablePlanPacketSchema,\n  },\n  { additionalProperties: false },\n);\nexport type FablePlanStartPayload = Static<typeof FablePlanStartSchema>;\n\nexport const FablePlanStartedSchema = Type.Object(\n  {\n    operationId: OperationIdSchema,\n    runId: RunIdSchema,\n    stage: Type.Union([Type.Literal('draft'), Type.Literal('review')]),\n  },\n  { additionalProperties: false },\n);\nexport type FablePlanStartedPayload = Static<typeof FablePlanStartedSchema>;\n\nexport const FablePlanProgressSchema = Type.Object(\n  {\n    operationId: OperationIdSchema,\n    runId: RunIdSchema,\n    stage: Type.Union([Type.Literal('draft'), Type.Literal('review')]),\n    status: Type.String({ minLength: 1, maxLength: MAX_STATUS_LENGTH }),\n    durationMs: Type.Integer({ minimum: 0 }),\n  },\n  { additionalProperties: false },\n);\nexport type FablePlanProgressPayload = Static<typeof FablePlanProgressSchema>;\n\nexport const FablePlanResultSchema = Type.Object(\n  {\n    operationId: OperationIdSchema,\n    status: FablePlanStatusSchema,\n    stage: FablePlanStageSchema,\n    draft: Type.Optional(Type.String({ maxLength: MAX_OUTPUT_LENGTH })),\n    review: Type.Optional(Type.String({ maxLength: MAX_OUTPUT_LENGTH })),\n    draftRunId: Type.Optional(RunIdSchema),\n    reviewRunId: Type.Optional(RunIdSchema),\n    durationMs: Type.Integer({ minimum: 0 }),\n    errorCode: Type.Optional(Type.String({ minLength: 1, maxLength: MAX_ERROR_CODE_LENGTH })),\n  },\n  { additionalProperties: false },\n);\nexport type FablePlanResultPayload = Static<typeof FablePlanResultSchema>;\n\nexport const FablePlanCancelSchema = Type.Object(\n  {\n    requester: Type.Literal(FABLE_PLAN_REQUESTER),\n    operationId: OperationIdSchema,\n    reason: Type.String({ minLength: 1, maxLength: MAX_STATUS_LENGTH }),\n  },\n  { additionalProperties: false },\n);\nexport type FablePlanCancelPayload = Static<typeof FablePlanCancelSchema>;\n\nexport interface DoomFablePlanService {\n  readonly sessionId: string;\n  readonly generation: string;\n  start(request: FablePlanStartPayload, signal: AbortSignal): Promise<FablePlanResultPayload>;\n  cancel(request: FablePlanCancelPayload): void;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n  interface Context {\n    'doom/fable-plan': DoomFablePlanService;\n  }\n}\n\nexport function readDoomFablePlanService(ctx: Context): DoomFablePlanService | undefined {\n  return ctx.get(DOOM_FABLE_PLAN_SERVICE) as DoomFablePlanService | undefined;\n}\n"],"mappings":"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"}