@sentry/junior 0.250.0 → 0.252.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/{admin-DMKyXi83.js → admin-C_-XEdym.js} +1 -1
  2. package/dist/{agent-hooks-CtZuJPTU.js → agent-hooks-DcoKnnxn.js} +36 -13
  3. package/dist/{agent-runner-CNiTpIpb.js → agent-runner-B-7S_DCS.js} +357 -99
  4. package/dist/api/schema.d.ts +46 -32
  5. package/dist/api/schema.js +2 -2
  6. package/dist/api.js +50 -65
  7. package/dist/app.js +52 -81
  8. package/dist/{assistant-reply-K5r1pcgJ.js → assistant-reply-DbPLvsnL.js} +1 -1
  9. package/dist/{briefs-8xyS3oeV.js → briefs-D4SMqc-r.js} +4 -4
  10. package/dist/{catalog-runtime-BQ3g3OX_.js → catalog-runtime-BQQiwwA7.js} +1 -1
  11. package/dist/cli/chat.js +15 -15
  12. package/dist/cli/check.js +3 -3
  13. package/dist/cli/main.js +2 -2
  14. package/dist/cli/plugins.js +4 -4
  15. package/dist/cli/snapshot-create.js +3 -3
  16. package/dist/cli/upgrade.js +3 -3
  17. package/dist/{client-Q27hki0Y.js → client-ROZeVjq0.js} +2 -2
  18. package/dist/{config-Cb--Qs-g.js → config-DNNkxfGS.js} +2 -2
  19. package/dist/{connections-DZ70JeSN.js → connections-DJV6mLrH.js} +9 -9
  20. package/dist/{conversation-NutPJ8S8.js → conversation-T18Xlkx9.js} +9 -1
  21. package/dist/{conversation-privacy-BIDN1sW3.js → conversation-privacy-B19umzIL.js} +1 -1
  22. package/dist/{credential-sync-CyAN-Gos.js → credential-sync-CEd2F5PS.js} +14 -14
  23. package/dist/{executor-D8y7v95s.js → executor-_4bdoCxe.js} +59 -19
  24. package/dist/{images-BkGhqKIK.js → images-BAN7DHuO.js} +3 -3
  25. package/dist/instrumentation.js +2 -2
  26. package/dist/{job-queue-uGq6Grnt.js → job-queue-DSQx1qFY.js} +1 -1
  27. package/dist/{logging-C22RdmU8.js → logging-COUsTFIL.js} +1 -1
  28. package/dist/{message-D0RPetp-.js → message-CtDDEwwV.js} +3 -3
  29. package/dist/nitro.js +3 -3
  30. package/dist/{oauth-callback-server-DF_Odkvh.js → oauth-callback-server-CCiKrS0s.js} +2 -2
  31. package/dist/{pending-auth-Bg3A1-pE.js → pending-auth-DDx3EU4M.js} +2 -2
  32. package/dist/{profile-DK9umvav.js → profile-DP4LKL6V.js} +4 -4
  33. package/dist/{prompt-kYP1FAX_.js → prompt-C04mP1hu.js} +1 -1
  34. package/dist/{registry-BvsLuoLK.js → registry-CeEpPna6.js} +1 -1
  35. package/dist/{resolve-C9btOXju.js → resolve-B5ma3igH.js} +2 -2
  36. package/dist/{result-CcdQ2iau.js → result-Da0RVuWG.js} +7 -7
  37. package/dist/{runner-Bem4DUHN.js → runner-se1W_jGZ.js} +10 -10
  38. package/dist/{sandbox-egress-signals-Bl-4cF7E.js → sandbox-egress-signals-CS959-wm.js} +1 -1
  39. package/dist/{schema-DELmAdjR.js → schema-C9Vnyb_f.js} +1 -1
  40. package/dist/{session-stop-DteRDRCi.js → session-stop-DlRDisF5.js} +11 -11
  41. package/dist/{skills-CVwSL6Gc.js → skills-CSzgs0EC.js} +2 -2
  42. package/dist/{spawn-CA0YYtzr.js → spawn-DT9fMjtd.js} +2 -2
  43. package/dist/{store-Dw3eBN9S.js → store-Dx1U69mm.js} +6 -6
  44. package/dist/{task-queue-C7cyjcVj.js → task-queue-BX9YrIsw.js} +3 -3
  45. package/dist/{task-runner-BbSyWmOq.js → task-runner-CO55Olal.js} +46 -13
  46. package/dist/{tasks-B8nH3ND_.js → tasks-DwGlFX9i.js} +166 -212
  47. package/dist/{thread-state-BTOLzCM-.js → thread-state-Ces6tXmB.js} +6 -6
  48. package/dist/{turn-failure-response-BwNfO8Xt.js → turn-failure-response-B4VCvEQf.js} +8 -8
  49. package/dist/{turn-lifecycle-DSN0xGW7.js → turn-lifecycle-B1VV58Yo.js} +1 -1
  50. package/dist/{turn-session-routing-BRKYIn6n.js → turn-session-routing-Dw2Kamg9.js} +1 -1
  51. package/dist/{validation-CBkyzKCP.js → validation-yJF9LKOv.js} +1 -1
  52. package/dist/{version-CkwwLVLb.js → version-CZYqvIFh.js} +1 -1
  53. package/dist/version.js +1 -1
  54. package/dist/{viewer-DdzigZQh.js → viewer-D96vo_42.js} +3 -3
  55. package/dist/{web-input-BjdnnpuN.js → web-input-5mls-41-.js} +105 -104
  56. package/dist/{work-qQEjtmlv.js → work-D2M2-zCO.js} +9 -9
  57. package/dist/{worker-C-CSZMy_.js → worker-BwCpf8tB.js} +5 -5
  58. package/migrations/0055_automations.sql +125 -0
  59. package/migrations/meta/0055_snapshot.json +3948 -0
  60. package/migrations/meta/_journal.json +8 -1
  61. package/package.json +5 -5
@@ -478,6 +478,13 @@ declare const conversationSourceTaskSchema: z.ZodObject<{
478
478
  }>;
479
479
  label: z.ZodOptional<z.ZodString>;
480
480
  title: z.ZodOptional<z.ZodString>;
481
+ triggerMessageId: z.ZodOptional<z.ZodString>;
482
+ triggerLabel: z.ZodOptional<z.ZodString>;
483
+ credentialMode: z.ZodOptional<z.ZodEnum<{
484
+ system: "system";
485
+ creator: "creator";
486
+ }>>;
487
+ credentialUser: z.ZodOptional<z.ZodString>;
481
488
  }, z.core.$strict>;
482
489
  export declare const conversationActivityPreviewSchema: z.ZodObject<{
483
490
  createdAt: z.ZodString;
@@ -1830,6 +1837,13 @@ export declare const conversationDetailReportSchema: z.ZodObject<{
1830
1837
  }>;
1831
1838
  label: z.ZodOptional<z.ZodString>;
1832
1839
  title: z.ZodOptional<z.ZodString>;
1840
+ triggerMessageId: z.ZodOptional<z.ZodString>;
1841
+ triggerLabel: z.ZodOptional<z.ZodString>;
1842
+ credentialMode: z.ZodOptional<z.ZodEnum<{
1843
+ system: "system";
1844
+ creator: "creator";
1845
+ }>>;
1846
+ credentialUser: z.ZodOptional<z.ZodString>;
1833
1847
  }, z.core.$strict>>;
1834
1848
  }, z.core.$strict>;
1835
1849
  export declare const conversationEventPageSchema: z.ZodObject<{
@@ -4315,14 +4329,6 @@ export declare const automationVersionSchema: z.ZodDiscriminatedUnion<[z.ZodObje
4315
4329
  system: "system";
4316
4330
  creator: "creator";
4317
4331
  }>;
4318
- outcomes: z.ZodArray<z.ZodObject<{
4319
- action: z.ZodLiteral<"send_message">;
4320
- destination: z.ZodObject<{
4321
- teamId: z.ZodString;
4322
- channelId: z.ZodString;
4323
- platform: z.ZodLiteral<"slack">;
4324
- }, z.core.$strict>;
4325
- }, z.core.$strict>>;
4326
4332
  schedule: z.ZodObject<{
4327
4333
  description: z.ZodString;
4328
4334
  kind: z.ZodEnum<{
@@ -4348,6 +4354,14 @@ export declare const automationVersionSchema: z.ZodDiscriminatedUnion<[z.ZodObje
4348
4354
  }, z.core.$strict>>;
4349
4355
  timezone: z.ZodString;
4350
4356
  }, z.core.$strict>;
4357
+ outcomes: z.ZodArray<z.ZodObject<{
4358
+ action: z.ZodLiteral<"send_message">;
4359
+ destination: z.ZodObject<{
4360
+ teamId: z.ZodString;
4361
+ channelId: z.ZodString;
4362
+ platform: z.ZodLiteral<"slack">;
4363
+ }, z.core.$strict>;
4364
+ }, z.core.$strict>>;
4351
4365
  title: z.ZodNullable<z.ZodString>;
4352
4366
  instruction: z.ZodString;
4353
4367
  }, z.core.$strict>;
@@ -4411,14 +4425,6 @@ export declare const automationVersionListSchema: z.ZodObject<{
4411
4425
  system: "system";
4412
4426
  creator: "creator";
4413
4427
  }>;
4414
- outcomes: z.ZodArray<z.ZodObject<{
4415
- action: z.ZodLiteral<"send_message">;
4416
- destination: z.ZodObject<{
4417
- teamId: z.ZodString;
4418
- channelId: z.ZodString;
4419
- platform: z.ZodLiteral<"slack">;
4420
- }, z.core.$strict>;
4421
- }, z.core.$strict>>;
4422
4428
  schedule: z.ZodObject<{
4423
4429
  description: z.ZodString;
4424
4430
  kind: z.ZodEnum<{
@@ -4444,6 +4450,14 @@ export declare const automationVersionListSchema: z.ZodObject<{
4444
4450
  }, z.core.$strict>>;
4445
4451
  timezone: z.ZodString;
4446
4452
  }, z.core.$strict>;
4453
+ outcomes: z.ZodArray<z.ZodObject<{
4454
+ action: z.ZodLiteral<"send_message">;
4455
+ destination: z.ZodObject<{
4456
+ teamId: z.ZodString;
4457
+ channelId: z.ZodString;
4458
+ platform: z.ZodLiteral<"slack">;
4459
+ }, z.core.$strict>;
4460
+ }, z.core.$strict>>;
4447
4461
  title: z.ZodNullable<z.ZodString>;
4448
4462
  instruction: z.ZodString;
4449
4463
  }, z.core.$strict>;
@@ -4631,25 +4645,11 @@ export declare const automationEditSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
4631
4645
  /** Partial edits require the revision returned by the edit read. */
4632
4646
  export declare const automationUpdateSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4633
4647
  title: z.ZodOptional<z.ZodString>;
4648
+ instruction: z.ZodOptional<z.ZodString>;
4634
4649
  credentialMode: z.ZodOptional<z.ZodEnum<{
4635
4650
  system: "system";
4636
4651
  creator: "creator";
4637
4652
  }>>;
4638
- outcomes: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
4639
- action: z.ZodLiteral<"send_message">;
4640
- destination: z.ZodEnum<{
4641
- current_conversation: "current_conversation";
4642
- task_creator: "task_creator";
4643
- }>;
4644
- }, z.core.$strict>, z.ZodObject<{
4645
- action: z.ZodLiteral<"send_message">;
4646
- destination: z.ZodObject<{
4647
- platform: z.ZodLiteral<"slack">;
4648
- teamId: z.ZodString;
4649
- channelId: z.ZodString;
4650
- threadTs: z.ZodOptional<z.ZodString>;
4651
- }, z.core.$strict>;
4652
- }, z.core.$strict>]>>>;
4653
4653
  schedule: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
4654
4654
  kind: z.ZodLiteral<"one_off">;
4655
4655
  timezone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -4692,7 +4692,21 @@ export declare const automationUpdateSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
4692
4692
  startDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4693
4693
  timezone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4694
4694
  }, z.core.$strict>]>>;
4695
- instruction: z.ZodOptional<z.ZodString>;
4695
+ outcomes: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
4696
+ action: z.ZodLiteral<"send_message">;
4697
+ destination: z.ZodEnum<{
4698
+ current_conversation: "current_conversation";
4699
+ task_creator: "task_creator";
4700
+ }>;
4701
+ }, z.core.$strict>, z.ZodObject<{
4702
+ action: z.ZodLiteral<"send_message">;
4703
+ destination: z.ZodObject<{
4704
+ platform: z.ZodLiteral<"slack">;
4705
+ teamId: z.ZodString;
4706
+ channelId: z.ZodString;
4707
+ threadTs: z.ZodOptional<z.ZodString>;
4708
+ }, z.core.$strict>;
4709
+ }, z.core.$strict>]>>>;
4696
4710
  kind: z.ZodLiteral<"scheduled">;
4697
4711
  revision: z.ZodString;
4698
4712
  }, z.core.$strict>, z.ZodObject<{
@@ -1,6 +1,6 @@
1
1
  import { a as conversationTurnFailureReasonSchema, i as conversationTurnFailureCodeSchema } from "../history-9pO1Zd4Y.js";
2
- import { A as forkConversationBodySchema, C as conversationReportEventSchema, E as conversationSummaryReportSchema, I as INPUT_IMAGE_TYPES, K as messageCardText, M as conversationChildAgentTotalsSchema, N as MAX_INPUT_IMAGES, O as createConversationBodySchema, P as MAX_INPUT_IMAGE_BYTES, S as conversationReportEventDataSchema, T as conversationStatsReportSchema, Y as resolveMessageCards, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, b as conversationPendingMessageSchema, d as conversationDetailReportSchema, f as conversationEventHistorySchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, j as forkConversationResponseSchema, k as createConversationMessageBodySchema, l as conversationAuxiliaryCostsSchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, s as conversationActivityPreviewSchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, v as conversationPendingAuthorizationSchema, x as conversationPendingMessagesReportSchema, y as conversationPendingMessageDeliverySchema } from "../conversation-NutPJ8S8.js";
2
+ import { A as forkConversationBodySchema, C as conversationReportEventSchema, E as conversationSummaryReportSchema, I as INPUT_IMAGE_TYPES, K as messageCardText, M as conversationChildAgentTotalsSchema, N as MAX_INPUT_IMAGES, O as createConversationBodySchema, P as MAX_INPUT_IMAGE_BYTES, S as conversationReportEventDataSchema, T as conversationStatsReportSchema, Y as resolveMessageCards, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, b as conversationPendingMessageSchema, d as conversationDetailReportSchema, f as conversationEventHistorySchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, j as forkConversationResponseSchema, k as createConversationMessageBodySchema, l as conversationAuxiliaryCostsSchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, s as conversationActivityPreviewSchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, v as conversationPendingAuthorizationSchema, x as conversationPendingMessagesReportSchema, y as conversationPendingMessageDeliverySchema } from "../conversation-T18Xlkx9.js";
3
3
  import { C as eventAutomationSummarySchema, S as automationVersionSchema, _ as automationSummarySchema, a as automationExecutionSchema, b as automationVersionListSchema, d as automationParamsSchema, f as automationRunListSchema, g as automationSchedulePreviewSchema, h as automationScheduleIntentSchema, i as automationExecutionListSchema, l as automationListQuerySchema, m as automationRunWindowsSchema, n as automationEditSchema, o as automationExecutionStatusDaySchema, p as automationRunSchema, r as automationEventCatalogSchema, s as automationExecutionStatusSchema, t as automationEditErrorSchema, u as automationListSchema, v as automationUpdateSchema, w as scheduledAutomationSummarySchema, x as automationVersionParamsSchema, y as automationVersionActivateSchema } from "../automation-gznOMaQ2.js";
4
4
  import { C as skillReportsSchema, S as skillReportSchema, _ as pluginPackageContentItemReportSchema, b as pluginsSchema, g as pluginOperationalReportSchema, h as pluginOperationalReportFeedSchema, m as healthReportSchema, t as webMessageId, v as pluginPackageContentReportSchema, x as runtimeInfoReportSchema, y as pluginSchema } from "../web-message-id-xPI_EFSC.js";
5
- import { A as connectionSchema, B as codeRepositorySummarySchema, C as locationParamsSchema, D as dailyConversationActivitySchema, F as codeChangeSummarySchema, H as conversationChildAgentsReportSchema, I as codeOverviewReportSchema, L as codePersonReportSchema, M as startConnectionResponseSchema, N as codeActivityDaySchema, O as connectionListSchema, P as codeChangeSummaryReportSchema, R as codeRepositoryParamsSchema, S as locationDirectoryReportSchema, U as stopConversationTurnResponseSchema, V as conversationChildAgentSchema, W as apiErrorSchema, _ as actorProfileReportSchema, a as workspaceBodySchema, b as locationActivityDayReportSchema, c as workspaceRepoSchema, d as createdPersonalTokenSchema, f as personalTokenListSchema, g as actorDirectoryReportSchema, h as revokePersonalTokenResponseSchema, i as deleteWorkspaceResponseSchema, j as disconnectConnectionResponseSchema, k as connectionParamsSchema, l as workspaceSchema, m as personalTokenParamsSchema, n as statsReportSchema, o as workspaceListSchema, p as personalTokenMetadataSchema, r as baselineSnapshotSchema, s as workspaceParamsSchema, t as statSchema, u as createPersonalTokenBodySchema, v as personParamsSchema, x as locationDetailReportSchema, y as personalSpendReportSchema, z as codeRepositoryReportSchema } from "../schema-DELmAdjR.js";
5
+ import { A as connectionSchema, B as codeRepositorySummarySchema, C as locationParamsSchema, D as dailyConversationActivitySchema, F as codeChangeSummarySchema, H as conversationChildAgentsReportSchema, I as codeOverviewReportSchema, L as codePersonReportSchema, M as startConnectionResponseSchema, N as codeActivityDaySchema, O as connectionListSchema, P as codeChangeSummaryReportSchema, R as codeRepositoryParamsSchema, S as locationDirectoryReportSchema, U as stopConversationTurnResponseSchema, V as conversationChildAgentSchema, W as apiErrorSchema, _ as actorProfileReportSchema, a as workspaceBodySchema, b as locationActivityDayReportSchema, c as workspaceRepoSchema, d as createdPersonalTokenSchema, f as personalTokenListSchema, g as actorDirectoryReportSchema, h as revokePersonalTokenResponseSchema, i as deleteWorkspaceResponseSchema, j as disconnectConnectionResponseSchema, k as connectionParamsSchema, l as workspaceSchema, m as personalTokenParamsSchema, n as statsReportSchema, o as workspaceListSchema, p as personalTokenMetadataSchema, r as baselineSnapshotSchema, s as workspaceParamsSchema, t as statSchema, u as createPersonalTokenBodySchema, v as personParamsSchema, x as locationDetailReportSchema, y as personalSpendReportSchema, z as codeRepositoryReportSchema } from "../schema-C9Vnyb_f.js";
6
6
  export { INPUT_IMAGE_TYPES, MAX_INPUT_IMAGES, MAX_INPUT_IMAGE_BYTES, acceptedConversationMessageSchema, actorDirectoryReportSchema, actorProfileReportSchema, apiErrorSchema, archiveConversationBodySchema, archiveConversationResponseSchema, automationEditErrorSchema, automationEditSchema, automationEventCatalogSchema, automationExecutionListSchema, automationExecutionSchema, automationExecutionStatusDaySchema, automationExecutionStatusSchema, automationListQuerySchema, automationListSchema, automationParamsSchema, automationRunListSchema, automationRunSchema, automationRunWindowsSchema, automationScheduleIntentSchema, automationSchedulePreviewSchema, automationSummarySchema, automationUpdateSchema, automationVersionActivateSchema, automationVersionListSchema, automationVersionParamsSchema, automationVersionSchema, baselineSnapshotSchema, cancelConversationPendingMessagesBodySchema, cancelConversationPendingMessagesResponseSchema, codeActivityDaySchema, codeChangeSummaryReportSchema, codeChangeSummarySchema, codeOverviewReportSchema, codePersonReportSchema, codeRepositoryParamsSchema, codeRepositoryReportSchema, codeRepositorySummarySchema, connectionListSchema, connectionParamsSchema, connectionSchema, conversationActivityPreviewSchema, conversationAuxiliaryCostsSchema, conversationChildAgentSchema, conversationChildAgentTotalsSchema, conversationChildAgentsReportSchema, conversationDetailQuerySchema, conversationDetailReportSchema, conversationEventHistorySchema, conversationEventPageSchema, conversationEventsQuerySchema, conversationFeedQuerySchema, conversationFeedSchema, conversationParamsSchema, conversationPendingAuthorizationSchema, conversationPendingMessageDeliverySchema, conversationPendingMessageSchema, conversationPendingMessagesReportSchema, conversationReportEventDataSchema, conversationReportEventSchema, conversationStatsReportSchema, conversationSummaryReportSchema, conversationTurnFailureCodeSchema, conversationTurnFailureReasonSchema, createConversationBodySchema, createConversationMessageBodySchema, createPersonalTokenBodySchema, createdPersonalTokenSchema, dailyConversationActivitySchema, deleteWorkspaceResponseSchema, disconnectConnectionResponseSchema, eventAutomationSummarySchema, forkConversationBodySchema, forkConversationResponseSchema, healthReportSchema, locationActivityDayReportSchema, locationDetailReportSchema, locationDirectoryReportSchema, locationParamsSchema, messageCardText, personParamsSchema, personalSpendReportSchema, personalTokenListSchema, personalTokenMetadataSchema, personalTokenParamsSchema, pluginOperationalReportFeedSchema, pluginOperationalReportSchema, pluginPackageContentItemReportSchema, pluginPackageContentReportSchema, pluginSchema, pluginsSchema, resolveMessageCards, revokePersonalTokenResponseSchema, runtimeInfoReportSchema, scheduledAutomationSummarySchema, skillReportSchema, skillReportsSchema, startConnectionResponseSchema, statSchema, statsReportSchema, stopConversationTurnResponseSchema, webMessageId, workspaceBodySchema, workspaceListSchema, workspaceParamsSchema, workspaceRepoSchema, workspaceSchema };
package/dist/api.js CHANGED
@@ -1,27 +1,27 @@
1
- import { Ft as createUserTokenStore, K as listChildAgents, L as editEventAutomation, O as parseSlackThreadId, P as editScheduledAutomation, R as AutomationEditError, T as readLiveAttachment, V as resolveTaskOutcomes, g as readStats, ot as getChildAgentLabel, z as eventAutomationTriggerAvailable } from "./agent-runner-CNiTpIpb.js";
2
- import { d as logException, f as logInfo, p as logWarn } from "./logging-C22RdmU8.js";
1
+ import { K as listChildAgents, L as editEventAutomation, Lt as createUserTokenStore, O as parseSlackThreadId, P as editScheduledAutomation, R as AutomationEditError, T as readLiveAttachment, V as resolveTaskOutcomes, bt as conversationSubtreeColumns, g as readStats, ot as getChildAgentLabel, yt as conversationSubtree, z as eventAutomationTriggerAvailable } from "./agent-runner-B-7S_DCS.js";
2
+ import { d as logException, f as logInfo, p as logWarn } from "./logging-COUsTFIL.js";
3
3
  import { d as parseSlackTeamId, g as parseSlackMessageTs, l as parseSlackChannelId } from "./actor-BTtLaeWy.js";
4
- import { E as resolveRootConversationId, T as hasAgentTurnUsage, _ as locationFromRow, b as parseSessionSource, c as getConversationEventStore, d as getDb, f as getSqlExecutor, i as resolveViewerUser, m as withConversationEventLock, o as updateViewerDisplayName, t as findUserByEmail, u as getConversationStore, w as agentTurnUsageSchema, x as addAgentTurnUsage } from "./viewer-DdzigZQh.js";
4
+ import { E as resolveRootConversationId, T as hasAgentTurnUsage, _ as locationFromRow, b as parseSessionSource, c as getConversationEventStore, d as getDb, f as getSqlExecutor, i as resolveViewerUser, m as withConversationEventLock, o as updateViewerDisplayName, t as findUserByEmail, u as getConversationStore, w as agentTurnUsageSchema, x as addAgentTurnUsage } from "./viewer-D96vo_42.js";
5
5
  import { c as juniorIdentities, d as juniorDestinations, l as juniorUsers, o as conversationReadColumns, s as juniorConversations } from "./agent-invocations-D_YoNnAn.js";
6
- import { _ as juniorConversationEvents, b as juniorCodeChanges, f as juniorConversationParticipants, g as juniorConversationMetrics, m as juniorConversationBriefs, v as juniorApiTokens, x as juniorCodeRepositories } from "./executor-D8y7v95s.js";
6
+ import { _ as juniorApiTokens, b as juniorCodeRepositories, d as juniorConversationParticipants, g as juniorConversationEvents, h as juniorConversationMetrics, p as juniorConversationBriefs, y as juniorCodeChanges } from "./executor-_4bdoCxe.js";
7
7
  import { d as contextProvenance } from "./history-9pO1Zd4Y.js";
8
- import { A as requireAutomationRevision, D as sameDefinitionValue, E as readAutomationVersion, O as AutomationConflictError, a as readScheduledAutomation, b as saveEventAutomation, g as getEventAutomation, jt as loadTurnProjection, k as automationRevision, m as eventAutomationBelongsToUser, mn as piMessageFromHistoryItem, o as saveScheduledAutomation, w as automationDefinition, x as setEventAutomationStatus } from "./tasks-B8nH3ND_.js";
9
- import { C as WorkspaceValidationError, Ct as readConversationEventPage, It as lookupSlackUser, Kt as withSlackRetries, M as workspaceRepoCheckoutPath, Mt as listConversationAnnotations, Nt as listConversationAnnotationsById, O as SANDBOX_RUNTIME, S as updateWorkspace, St as readLatestConversationBrief, Vt as getSlackClient, _ as deleteWorkspace, _t as conversationHasParticipantUser, b as listWorkspaces, bt as viewerConversationMembership, dt as createPluginLogger, ft as readConversationAccessFromSql, g as createWorkspace, gt as conversationHasParticipantEmail, ht as conversationArchivedForUser, mt as conversationArchivedForEmail, pt as conversationArchiveTimes, u as getPlugins, v as getWorkspace, vt as conversationNotArchivedForEmail, wt as buildSentryConversationUrl, x as listWorkspacesByRepository, yt as conversationNotArchivedForUser } from "./agent-hooks-CtZuJPTU.js";
10
- import { A as forkConversationBodySchema, F as readMessageAttachments, I as INPUT_IMAGE_TYPES, O as createConversationBodySchema, T as conversationStatsReportSchema, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, c as conversationAttachmentParamsSchema, d as conversationDetailReportSchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, j as forkConversationResponseSchema, k as createConversationMessageBodySchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, x as conversationPendingMessagesReportSchema } from "./conversation-NutPJ8S8.js";
11
- import { n as hash, t as create } from "./profile-DK9umvav.js";
12
- import { l as getEventCatalog, v as automationEventCatalog } from "./session-stop-DteRDRCi.js";
8
+ import { A as requireAutomationRevision, D as sameDefinitionValue, E as readAutomationVersion, O as AutomationConflictError, a as readScheduledAutomation, b as saveEventAutomation, g as getEventAutomation, jt as loadTurnProjection, k as automationRevision, m as eventAutomationBelongsToUser, mn as piMessageFromHistoryItem, o as saveScheduledAutomation, w as automationDefinition, x as setEventAutomationStatus } from "./tasks-DwGlFX9i.js";
9
+ import { C as WorkspaceValidationError, Ct as readLatestConversationBrief, Ht as getSlackClient, Lt as lookupSlackUser, M as workspaceRepoCheckoutPath, Nt as listConversationAnnotations, O as SANDBOX_RUNTIME, Pt as listConversationAnnotationsById, S as updateWorkspace, Tt as buildSentryConversationUrl, _ as deleteWorkspace, _t as conversationHasParticipantEmail, b as listWorkspaces, bt as conversationNotArchivedForUser, ft as createPluginLogger, g as createWorkspace, gt as conversationArchivedForUser, ht as conversationArchivedForEmail, mt as conversationArchiveTimes, pt as readConversationAccessFromSql, qt as withSlackRetries, u as getPlugins, v as getWorkspace, vt as conversationHasParticipantUser, wt as readConversationEventPage, x as listWorkspacesByRepository, xt as viewerConversationMembership, yt as conversationNotArchivedForEmail } from "./agent-hooks-DcoKnnxn.js";
10
+ import { A as forkConversationBodySchema, F as readMessageAttachments, I as INPUT_IMAGE_TYPES, O as createConversationBodySchema, T as conversationStatsReportSchema, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, c as conversationAttachmentParamsSchema, d as conversationDetailReportSchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, j as forkConversationResponseSchema, k as createConversationMessageBodySchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, x as conversationPendingMessagesReportSchema } from "./conversation-T18Xlkx9.js";
11
+ import { n as hash, t as create } from "./profile-DP4LKL6V.js";
12
+ import { l as getEventCatalog, v as automationEventCatalog } from "./session-stop-DlRDisF5.js";
13
13
  import { t as getFirstRunAtMs } from "./cadence-D00SCzT1.js";
14
- import { t as getCachedSnapshot } from "./resolve-C9btOXju.js";
15
- import { a as getVercelConversationWorkQueue } from "./job-queue-uGq6Grnt.js";
16
- import { a as cancelHumanFacingPendingMessages, h as getConversation } from "./store-Dw3eBN9S.js";
14
+ import { t as getCachedSnapshot } from "./resolve-B5ma3igH.js";
15
+ import { a as getVercelConversationWorkQueue } from "./job-queue-DSQx1qFY.js";
16
+ import { a as cancelHumanFacingPendingMessages, h as getConversation } from "./store-Dx1U69mm.js";
17
17
  import { M as compileScheduleIntent, P as weekdaySchema, _ as automationSummarySchema, b as automationVersionListSchema, c as automationLifecycleSchema, d as automationParamsSchema, f as automationRunListSchema, g as automationSchedulePreviewSchema, h as automationScheduleIntentSchema, i as automationExecutionListSchema, j as ScheduleIntentError, l as automationListQuerySchema, n as automationEditSchema, r as automationEventCatalogSchema, t as automationEditErrorSchema, u as automationListSchema, v as automationUpdateSchema, x as automationVersionParamsSchema, y as automationVersionActivateSchema } from "./automation-gznOMaQ2.js";
18
18
  import { C as skillReportsSchema, a as fillUtcHours, b as pluginsSchema, c as sumUtcHoursIntoSixHours, d as trailingUtcSixHourWindow, f as utcDayKey, h as pluginOperationalReportFeedSchema, i as fillUtcDays, l as trailingUtcDayWindow, m as healthReportSchema, n as DAY_MS$1, o as fillUtcSixHours, p as utcHourKey, r as HOUR_MS$1, s as startOfUtcHour, u as trailingUtcHourWindow, x as runtimeInfoReportSchema } from "./web-message-id-xPI_EFSC.js";
19
- import { B as readHealthReport, I as createVercelAttachmentStorage, _ as readViewerAutomationRuns, a as recordWebConversationActivity, b as readViewerAutomations, d as resolveSlackConversationContextFromThreadId, g as readViewerAutomationExecutions, h as readConversationSourceTask, i as createConversationId, j as stopConversationTurn, l as getProductionSlackAdapter, m as deleteViewerTask, o as webActorFromEmail, p as ViewerTaskNotFoundError, r as createAndEnqueueConversation, t as appendAndEnqueueWebMessage, u as formatSlackConversationRedactedLabel, v as readViewerAutomationSummary, w as clearSlackPendingReactions, x as resolveViewerTaskCandidate, y as readViewerAutomationVersions } from "./web-input-BjdnnpuN.js";
20
- import { A as conversationActiveDaysColumn, M as conversationRangeColumns, j as conversationAggregateColumns } from "./task-runner-BbSyWmOq.js";
21
- import { d as legacyWebMailboxMetadataSchema } from "./result-CcdQ2iau.js";
22
- import { a as startConnection, l as getWebAuthorization, n as isConnectableProvider, r as listConnections, t as disconnectConnection } from "./connections-DZ70JeSN.js";
23
- import { t as decodeInputImages } from "./images-BkGhqKIK.js";
24
- import { C as locationParamsSchema, E as activitySixHours$1, H as conversationChildAgentsReportSchema, I as codeOverviewReportSchema, L as codePersonReportSchema, M as startConnectionResponseSchema, O as connectionListSchema, R as codeRepositoryParamsSchema, S as locationDirectoryReportSchema, T as activityHours$1, U as stopConversationTurnResponseSchema, W as apiErrorSchema, _ as actorProfileReportSchema, a as workspaceBodySchema, d as createdPersonalTokenSchema, f as personalTokenListSchema, g as actorDirectoryReportSchema, h as revokePersonalTokenResponseSchema, i as deleteWorkspaceResponseSchema, j as disconnectConnectionResponseSchema, k as connectionParamsSchema, l as workspaceSchema, m as personalTokenParamsSchema, n as statsReportSchema, o as workspaceListSchema, s as workspaceParamsSchema, u as createPersonalTokenBodySchema, v as personParamsSchema, w as activityDays$1, x as locationDetailReportSchema, y as personalSpendReportSchema, z as codeRepositoryReportSchema } from "./schema-DELmAdjR.js";
19
+ import { B as readHealthReport, I as createVercelAttachmentStorage, _ as readViewerAutomationRuns, a as recordWebConversationActivity, b as readViewerAutomations, d as resolveSlackConversationContextFromThreadId, g as readViewerAutomationExecutions, h as readConversationSourceTask, i as createConversationId, j as stopConversationTurn, l as getProductionSlackAdapter, m as deleteViewerTask, o as webActorFromEmail, p as ViewerTaskNotFoundError, r as createAndEnqueueConversation, t as appendAndEnqueueWebMessage, u as formatSlackConversationRedactedLabel, v as readViewerAutomationSummary, w as clearSlackPendingReactions, x as resolveViewerTaskCandidate, y as readViewerAutomationVersions } from "./web-input-5mls-41-.js";
20
+ import { A as readAutomationTitlesByConversationId, M as conversationActiveDaysColumn, N as conversationAggregateColumns, P as conversationRangeColumns } from "./task-runner-CO55Olal.js";
21
+ import { d as legacyWebMailboxMetadataSchema } from "./result-Da0RVuWG.js";
22
+ import { a as startConnection, l as getWebAuthorization, n as isConnectableProvider, r as listConnections, t as disconnectConnection } from "./connections-DJV6mLrH.js";
23
+ import { t as decodeInputImages } from "./images-BAN7DHuO.js";
24
+ import { C as locationParamsSchema, E as activitySixHours$1, H as conversationChildAgentsReportSchema, I as codeOverviewReportSchema, L as codePersonReportSchema, M as startConnectionResponseSchema, O as connectionListSchema, R as codeRepositoryParamsSchema, S as locationDirectoryReportSchema, T as activityHours$1, U as stopConversationTurnResponseSchema, W as apiErrorSchema, _ as actorProfileReportSchema, a as workspaceBodySchema, d as createdPersonalTokenSchema, f as personalTokenListSchema, g as actorDirectoryReportSchema, h as revokePersonalTokenResponseSchema, i as deleteWorkspaceResponseSchema, j as disconnectConnectionResponseSchema, k as connectionParamsSchema, l as workspaceSchema, m as personalTokenParamsSchema, n as statsReportSchema, o as workspaceListSchema, s as workspaceParamsSchema, u as createPersonalTokenBodySchema, v as personParamsSchema, w as activityDays$1, x as locationDetailReportSchema, y as personalSpendReportSchema, z as codeRepositoryReportSchema } from "./schema-C9Vnyb_f.js";
25
25
  import { Hono } from "hono";
26
26
  import path from "node:path";
27
27
  import { z } from "zod";
@@ -134,39 +134,6 @@ async function archiveConversation(viewer, conversationId, body) {
134
134
  throwApiError(409, "Conversation received new activity.");
135
135
  }
136
136
  //#endregion
137
- //#region src/chat/conversations/sql/subtree.ts
138
- /** Columns of the `conversation_subtree` table that `conversationSubtree` returns. */
139
- const conversationSubtreeColumns = {
140
- conversationId: sql`conversation_subtree.conversation_id`,
141
- scopeConversationId: sql`conversation_subtree.scope_conversation_id`
142
- };
143
- /**
144
- * Return a joinable `conversation_subtree` table. It maps each selected
145
- * Conversation to itself and to each descendant child Conversation at any
146
- * depth. Reports use it so that a total for a Conversation always includes the
147
- * work of all its child agents.
148
- *
149
- * A descendant must have the same root as the selected Conversation. Thus a
150
- * Conversation that has no valid root gets only its own work.
151
- */
152
- function conversationSubtree(conversationIds) {
153
- const selectedIds = sql.join(conversationIds.map((conversationId) => sql`${conversationId}`), sql`, `);
154
- return sql`(
155
- with recursive tree(scope_conversation_id, conversation_id, root_conversation_id) as (
156
- select selected.conversation_id, selected.conversation_id, selected.root_conversation_id
157
- from junior_conversations selected
158
- where selected.conversation_id in (${selectedIds})
159
- union
160
- select tree.scope_conversation_id, child.conversation_id, child.root_conversation_id
161
- from junior_conversations child
162
- join tree
163
- on child.parent_conversation_id = tree.conversation_id
164
- and child.root_conversation_id = tree.root_conversation_id
165
- )
166
- select scope_conversation_id, conversation_id from tree
167
- ) conversation_subtree`;
168
- }
169
- //#endregion
170
137
  //#region src/chat/conversations/fork.ts
171
138
  /** Event key of the agent note that follows the copied events in a fork. */
172
139
  const FORK_NOTE_KEY = "fork:note";
@@ -999,10 +966,10 @@ function titleFromConversation(args) {
999
966
  channelName: effectiveChannelName,
1000
967
  ...args.visibility ? { visibility: args.visibility } : void 0
1001
968
  });
1002
- return (args.canViewPrivateContent ? void 0 : privateConversationLabel(slackConversation)) ?? args.conversation.title ?? slackStatsLocationLabel({
969
+ return (args.canViewPrivateContent ? void 0 : privateConversationLabel(slackConversation)) ?? args.conversation.title ?? args.automationTitle ?? slackStatsLocationLabel({
1003
970
  channel: slackThread?.channelId,
1004
971
  channelName: effectiveChannelName
1005
- }) ?? surfaceFallbackLabel(args.surface);
972
+ }) ?? (args.conversation.source === "plugin" ? "Automation run" : surfaceFallbackLabel(args.surface));
1006
973
  }
1007
974
  function channelNameFromConversation(conversation, canViewPrivateContent, visibility) {
1008
975
  const effectiveChannelName = conversation.channelName;
@@ -1053,6 +1020,7 @@ function conversationSummaryFromStoredConversation(args) {
1053
1020
  conversationId: conversation.conversationId,
1054
1021
  cumulativeDurationMs: durationMs,
1055
1022
  displayTitle: titleFromConversation({
1023
+ automationTitle: args.automationTitle,
1056
1024
  canViewPrivateContent,
1057
1025
  conversation,
1058
1026
  surface,
@@ -1392,7 +1360,7 @@ async function readConversationFeedFromSql(options = {}) {
1392
1360
  } : void 0);
1393
1361
  const conversations = rows.map((row) => conversationFromRow(row));
1394
1362
  const conversationIds = conversations.map((conversation) => conversation.conversationId);
1395
- const [accessByConversation, archiveTimesByConversation, annotationsByConversation, auxiliaryCostsByRoot, metricsByRoot, participantsByConversation, teamDomainByTeamId, conversationWork, lastUserMessageAtByConversation, activityPreviewByConversation] = await Promise.all([
1363
+ const [accessByConversation, archiveTimesByConversation, annotationsByConversation, auxiliaryCostsByRoot, metricsByRoot, participantsByConversation, teamDomainByTeamId, conversationWork, lastUserMessageAtByConversation, activityPreviewByConversation, automationTitleByConversation] = await Promise.all([
1396
1364
  readConversationAccessFromSql(db, conversationIds, options.viewer),
1397
1365
  conversationArchiveTimes(db, conversationIds, filter?.kind === "viewer" ? { userId: filter.userId } : filter?.kind === "actorEmail" ? { email: filter.email } : void 0),
1398
1366
  listConversationAnnotationsById(db, conversationIds),
@@ -1402,7 +1370,8 @@ async function readConversationFeedFromSql(options = {}) {
1402
1370
  resolveSlackTeamDomains(conversations.flatMap((conversation) => conversation.location?.provider === "slack" ? [conversation.location.teamId] : [])),
1403
1371
  listConversationWork(conversationIds),
1404
1372
  readLastUserMessageAtByConversation(db, conversationIds),
1405
- readConversationActivityPreviews(db, conversationIds)
1373
+ readConversationActivityPreviews(db, conversationIds),
1374
+ readAutomationTitlesByConversationId(conversations)
1406
1375
  ]);
1407
1376
  const sidebarAnnotationsByConversation = await listConversationSidebarAnnotations(conversationIds, new Map(conversationIds.map((conversationId) => [conversationId, accessByConversation.get(conversationId)?.canViewPrivateContent ? annotationsByConversation.get(conversationId) ?? [] : []])));
1408
1377
  const assignedWork = new Set(conversationWork.assignedIds);
@@ -1417,6 +1386,7 @@ async function readConversationFeedFromSql(options = {}) {
1417
1386
  const archivedAtMs = archiveTimesByConversation.get(conversation.conversationId);
1418
1387
  const summary = conversationSummaryFromStoredConversation({
1419
1388
  ...archivedAtMs === void 0 ? void 0 : { archivedAtMs },
1389
+ automationTitle: automationTitleByConversation.get(conversation.conversationId),
1420
1390
  conversation,
1421
1391
  access,
1422
1392
  auxiliaryCosts: auxiliaryCosts?.total,
@@ -1536,13 +1506,14 @@ async function readConversationAgentTree(conversationId, viewer) {
1536
1506
  }
1537
1507
  if (ids.length < 2) return;
1538
1508
  const root = parentId ? void 0 : await getConversationStore().get({ conversationId: ids[0] });
1539
- const access = await readConversationAccessFromSql(getDb(), ids, viewer);
1509
+ const [access, automationTitleByConversation] = await Promise.all([readConversationAccessFromSql(getDb(), ids, viewer), readAutomationTitlesByConversationId(root ? [root] : [])]);
1540
1510
  return await Promise.all(ids.map(async (id) => {
1541
1511
  const itemAccess = access.get(id);
1542
1512
  if (root?.conversationId === id) return {
1543
1513
  conversationId: id,
1544
1514
  label: conversationSummaryFromStoredConversation({
1545
1515
  access: itemAccess,
1516
+ automationTitle: automationTitleByConversation.get(id),
1546
1517
  conversation: root,
1547
1518
  durationMs: 0
1548
1519
  }).displayTitle
@@ -1572,6 +1543,7 @@ function projectConversationDetail(args) {
1572
1543
  ...conversationSummaryFromStoredConversation({
1573
1544
  access: args.access,
1574
1545
  ...args.archivedAtMs === void 0 ? void 0 : { archivedAtMs: args.archivedAtMs },
1546
+ automationTitle: args.automationTitle,
1575
1547
  auxiliaryCosts: args.auxiliaryCosts,
1576
1548
  ...args.childAgentTotals ? { childAgentTotals: args.childAgentTotals } : void 0,
1577
1549
  conversation,
@@ -1604,9 +1576,10 @@ async function readConversationDetailFromSql(conversationId, options) {
1604
1576
  if (!record) return void 0;
1605
1577
  const archivedAtMs = options.viewer ? await readConversationArchivedAt(options.viewer, conversationId) : void 0;
1606
1578
  const executor = getSqlExecutor();
1607
- const [accessByConversation, annotations, auxiliaryCostsByConversation, briefVersion, modelUsage, metricsByConversation, participantsByConversation, sourceTask, teamDomainByTeamId] = await Promise.all([
1579
+ const [accessByConversation, annotations, automationTitleByConversation, auxiliaryCostsByConversation, briefVersion, modelUsage, metricsByConversation, participantsByConversation, sourceTask, teamDomainByTeamId] = await Promise.all([
1608
1580
  readConversationAccessFromSql(getDb(), [conversationId], options.viewer),
1609
1581
  listConversationAnnotations(getDb(), conversationId),
1582
+ readAutomationTitlesByConversationId([record.conversation]),
1610
1583
  readConversationAuxiliaryCostsFromSql(getDb(), [conversationId]),
1611
1584
  readLatestConversationBrief(getDb(), conversationId),
1612
1585
  record.conversation.transcriptPurgedAtMs === void 0 ? readConversationModelUsageFromSql(executor, { conversationId }) : Promise.resolve([]),
@@ -1632,6 +1605,7 @@ async function readConversationDetailFromSql(conversationId, options) {
1632
1605
  ...record,
1633
1606
  access,
1634
1607
  ...archivedAtMs === void 0 ? void 0 : { archivedAtMs },
1608
+ automationTitle: automationTitleByConversation.get(conversationId),
1635
1609
  annotations,
1636
1610
  sidebarAnnotations,
1637
1611
  auxiliaryCosts: auxiliaryCosts?.total,
@@ -2913,6 +2887,7 @@ function summaryFromRow(row, options = {}) {
2913
2887
  };
2914
2888
  return conversationSummaryFromStoredConversation({
2915
2889
  access: options.access,
2890
+ automationTitle: options.automationTitle,
2916
2891
  conversation,
2917
2892
  durationMs: options.metrics?.durationMs ?? row.durationMs,
2918
2893
  ...options.access?.visibility === "public" && row.destinationId ? { locationId: row.destinationId } : void 0,
@@ -3215,7 +3190,11 @@ async function readLocationDetailFromSql(locationId, options = {}) {
3215
3190
  const activity = activityDays$1(days, nowMs, ACTIVITY_DAYS$1);
3216
3191
  const hourlyActivity = activityHours$1(hours, nowMs);
3217
3192
  const recentConversationIds = recentRows.map((row) => row.conversationId);
3218
- const [accessByConversation, metricsByRoot] = await Promise.all([readConversationAccessFromSql(getDb(), recentConversationIds, options.viewer), readConversationTreeMetricsFromSql(getDb(), recentConversationIds)]);
3193
+ const [accessByConversation, metricsByRoot, automationTitleByConversation] = await Promise.all([
3194
+ readConversationAccessFromSql(getDb(), recentConversationIds, options.viewer),
3195
+ readConversationTreeMetricsFromSql(getDb(), recentConversationIds),
3196
+ readAutomationTitlesByConversationId(recentRows)
3197
+ ]);
3219
3198
  return {
3220
3199
  ...location,
3221
3200
  activityDays: activity,
@@ -3225,6 +3204,7 @@ async function readLocationDetailFromSql(locationId, options = {}) {
3225
3204
  generatedAt: new Date(nowMs).toISOString(),
3226
3205
  recentConversations: recentRows.map((row) => summaryFromRow(row, {
3227
3206
  access: accessByConversation.get(row.conversationId),
3207
+ automationTitle: automationTitleByConversation.get(row.conversationId),
3228
3208
  metrics: metricsByRoot.get(row.conversationId)
3229
3209
  })),
3230
3210
  source: "conversation_index",
@@ -3612,7 +3592,7 @@ async function readPeoplePluginReports(args) {
3612
3592
  reports: [],
3613
3593
  source: "plugins"
3614
3594
  });
3615
- const { getPluginProfileReports } = await import("./agent-hooks-CtZuJPTU.js").then((n) => n.t);
3595
+ const { getPluginProfileReports } = await import("./agent-hooks-DcoKnnxn.js").then((n) => n.t);
3616
3596
  return pluginOperationalReportFeedSchema.parse({
3617
3597
  generatedAt: new Date(nowMs).toISOString(),
3618
3598
  reports: await getPluginProfileReports({
@@ -3763,7 +3743,11 @@ async function readPeopleProfileFromSql(email, options = {}) {
3763
3743
  const surfaces = /* @__PURE__ */ new Map();
3764
3744
  for (const row of surfaceRows) addAggregate(surfaces, surfaceLabel(row.surface), row);
3765
3745
  const recentConversationIds = recentRows.map((row) => row.conversationId);
3766
- const [accessByConversation, metricsByRoot] = await Promise.all([readConversationAccessFromSql(getDb(), recentConversationIds, options.viewer), readConversationTreeMetricsFromSql(getDb(), recentConversationIds)]);
3746
+ const [accessByConversation, metricsByRoot, automationTitleByConversation] = await Promise.all([
3747
+ readConversationAccessFromSql(getDb(), recentConversationIds, options.viewer),
3748
+ readConversationTreeMetricsFromSql(getDb(), recentConversationIds),
3749
+ readAutomationTitlesByConversationId(recentRows)
3750
+ ]);
3767
3751
  return {
3768
3752
  activityDays: activityDays(days, nowMs),
3769
3753
  activityHours: activityHours(hours, nowMs),
@@ -3772,6 +3756,7 @@ async function readPeopleProfileFromSql(email, options = {}) {
3772
3756
  locations: statsItems(locations),
3773
3757
  recentConversations: recentRows.map((row) => summaryFromRow(row, {
3774
3758
  access: accessByConversation.get(row.conversationId),
3759
+ automationTitle: automationTitleByConversation.get(row.conversationId),
3775
3760
  metrics: metricsByRoot.get(row.conversationId)
3776
3761
  })),
3777
3762
  actor,
@@ -4229,7 +4214,7 @@ async function restorableOutcomes(current, outcomes) {
4229
4214
  async function activateViewerAutomationVersion(user, kind, id, input) {
4230
4215
  const current = await requireEditableAutomation(user, kind, id);
4231
4216
  requireAutomationRevision(current.task, input.revision);
4232
- const saved = await readAutomationVersion(getDb(), kind, id, input.version);
4217
+ const saved = await readAutomationVersion(getDb(), id, input.version);
4233
4218
  if (!saved) throw new AutomationEditError("This version does not exist.", "version");
4234
4219
  const { definition } = saved;
4235
4220
  if (sameDefinitionValue(definition, automationDefinition(current.task))) return editView(current, current.ownedByViewer);
@@ -4580,7 +4565,7 @@ function readDescriptionText(home) {
4580
4565
  }
4581
4566
  /** Read discovered skill names for authenticated runtime diagnostics. */
4582
4567
  async function readSkillReports() {
4583
- const { discoverSkills } = await import("./skills-CVwSL6Gc.js").then((n) => n.o);
4568
+ const { discoverSkills } = await import("./skills-CSzgs0EC.js").then((n) => n.o);
4584
4569
  const skills = await discoverSkills();
4585
4570
  return skillReportsSchema.parse(skills.map((skill) => ({
4586
4571
  name: skill.name,
@@ -4589,7 +4574,7 @@ async function readSkillReports() {
4589
4574
  }
4590
4575
  /** Read safe configured plugin metadata for authenticated runtime diagnostics. */
4591
4576
  async function readPlugins() {
4592
- const { pluginCatalogRuntime } = await import("./catalog-runtime-BQ3g3OX_.js").then((n) => n.t);
4577
+ const { pluginCatalogRuntime } = await import("./catalog-runtime-BQQiwwA7.js").then((n) => n.t);
4593
4578
  return pluginsSchema.parse(pluginCatalogRuntime.getProviders().map((plugin) => ({
4594
4579
  configKeys: plugin.manifest.configKeys ?? [],
4595
4580
  description: plugin.manifest.description,
@@ -4601,7 +4586,7 @@ async function readPlugins() {
4601
4586
  async function readRuntimeInfoReport() {
4602
4587
  const [{ homeDir }, { pluginCatalogRuntime }, plugins, skills] = await Promise.all([
4603
4588
  import("./package-discovery-BVvSnQBB.js").then((n) => n.r),
4604
- import("./catalog-runtime-BQ3g3OX_.js").then((n) => n.t),
4589
+ import("./catalog-runtime-BQQiwwA7.js").then((n) => n.t),
4605
4590
  readPlugins(),
4606
4591
  readSkillReports()
4607
4592
  ]);
@@ -4618,7 +4603,7 @@ async function readRuntimeInfoReport() {
4618
4603
  /** Read sanitized operational summaries contributed by plugins. */
4619
4604
  async function readPluginOperationalReportFeed() {
4620
4605
  const nowMs = Date.now();
4621
- const { getPluginOperationalReports } = await import("./agent-hooks-CtZuJPTU.js").then((n) => n.t);
4606
+ const { getPluginOperationalReports } = await import("./agent-hooks-DcoKnnxn.js").then((n) => n.t);
4622
4607
  return pluginOperationalReportFeedSchema.parse({
4623
4608
  source: "plugins",
4624
4609
  generatedAt: new Date(nowMs).toISOString(),