Spaces:
Paused
Paused
| import { Command } from "commander"; | |
| import type { ActivityEvent } from "@paperclipai/shared"; | |
| import { | |
| addCommonClientOptions, | |
| formatInlineRecord, | |
| handleCommandError, | |
| printOutput, | |
| resolveCommandContext, | |
| type BaseClientOptions, | |
| } from "./common.js"; | |
| interface ActivityListOptions extends BaseClientOptions { | |
| companyId?: string; | |
| agentId?: string; | |
| entityType?: string; | |
| entityId?: string; | |
| } | |
| export function registerActivityCommands(program: Command): void { | |
| const activity = program.command("activity").description("Activity log operations"); | |
| addCommonClientOptions( | |
| activity | |
| .command("list") | |
| .description("List company activity log entries") | |
| .requiredOption("-C, --company-id <id>", "Company ID") | |
| .option("--agent-id <id>", "Filter by agent ID") | |
| .option("--entity-type <type>", "Filter by entity type") | |
| .option("--entity-id <id>", "Filter by entity ID") | |
| .action(async (opts: ActivityListOptions) => { | |
| try { | |
| const ctx = resolveCommandContext(opts, { requireCompany: true }); | |
| const params = new URLSearchParams(); | |
| if (opts.agentId) params.set("agentId", opts.agentId); | |
| if (opts.entityType) params.set("entityType", opts.entityType); | |
| if (opts.entityId) params.set("entityId", opts.entityId); | |
| const query = params.toString(); | |
| const path = `/api/companies/${ctx.companyId}/activity${query ? `?${query}` : ""}`; | |
| const rows = (await ctx.api.get<ActivityEvent[]>(path)) ?? []; | |
| if (ctx.json) { | |
| printOutput(rows, { json: true }); | |
| return; | |
| } | |
| if (rows.length === 0) { | |
| printOutput([], { json: false }); | |
| return; | |
| } | |
| for (const row of rows) { | |
| console.log( | |
| formatInlineRecord({ | |
| id: row.id, | |
| action: row.action, | |
| actorType: row.actorType, | |
| actorId: row.actorId, | |
| entityType: row.entityType, | |
| entityId: row.entityId, | |
| createdAt: String(row.createdAt), | |
| }), | |
| ); | |
| } | |
| } catch (err) { | |
| handleCommandError(err); | |
| } | |
| }), | |
| { includeCompany: false }, | |
| ); | |
| } | |