core/apps/webapp/app/trigger/spaces/space-assignment.ts
Harshith Mullapudi c869096be8
Feat: Space v3
* feat: space v3

* feat: connected space creation

* fix:

* fix: session_id for memory ingestion

* chore: simplify gitignore patterns for agent directories

---------

Co-authored-by: Manoj <saimanoj58@gmail.com>
2025-10-30 12:30:56 +05:30

45 lines
1.3 KiB
TypeScript

import { queue, task } from "@trigger.dev/sdk/v3";
import { logger } from "~/services/logger.service";
import {
processSpaceAssignment,
type SpaceAssignmentPayload,
} from "~/jobs/spaces/space-assignment.logic";
import { triggerSpaceSummary } from "./space-summary";
export type { SpaceAssignmentPayload };
const spaceAssignmentQueue = queue({
name: "space-assignment-queue",
concurrencyLimit: 1,
});
export const spaceAssignmentTask = task({
id: "space-assignment",
queue: spaceAssignmentQueue,
maxDuration: 1800, // 15 minutes timeout
run: async (payload: SpaceAssignmentPayload) => {
logger.info(`[Trigger.dev] Starting space assignment task`, {
userId: payload.userId,
mode: payload.mode,
});
// Use common business logic with callback for triggering space summaries
return await processSpaceAssignment(
payload,
// Callback to enqueue space summary
async (summaryPayload) => {
return await triggerSpaceSummary(summaryPayload);
},
);
},
});
// Helper function to trigger the task
export async function triggerSpaceAssignment(payload: SpaceAssignmentPayload) {
return await spaceAssignmentTask.trigger(payload, {
queue: "space-assignment-queue",
concurrencyKey: payload.userId,
tags: [payload.userId],
});
}