@sentry/junior 0.242.0 → 0.243.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 (65) hide show
  1. package/dist/{admin-C54kvHVC.js → admin-DHOGoI03.js} +1 -1
  2. package/dist/{agent-hooks-BVttjZvb.js → agent-hooks-Cqo6ULp6.js} +12 -12
  3. package/dist/agent-invocations-BzRAZ_nj.js +176 -0
  4. package/dist/{agent-runner-BTgnxJ7g.js → agent-runner-BZOjoMlZ.js} +621 -69
  5. package/dist/api/schema.d.ts +53 -1
  6. package/dist/api/schema.js +4 -4
  7. package/dist/api.js +52 -22
  8. package/dist/{app-MEd7wbF0.d.ts → app-DRLh-8zs.d.ts} +5 -0
  9. package/dist/app.d.ts +1 -1
  10. package/dist/app.js +41 -24
  11. package/dist/{briefs-CKUsv9F1.js → briefs-C4GogKaB.js} +4 -4
  12. package/dist/{catalog-runtime-C2YkfMZz.js → catalog-runtime-jazDa-oO.js} +1 -1
  13. package/dist/cli/chat.js +12 -12
  14. package/dist/cli/check.js +3 -3
  15. package/dist/cli/main.js +2 -2
  16. package/dist/cli/plugins.js +4 -4
  17. package/dist/cli/snapshot-create.js +3 -3
  18. package/dist/cli/upgrade.js +3 -3
  19. package/dist/{client-D51G-Jdg.js → client-Es79bknZ.js} +2 -2
  20. package/dist/{config-C6Uu3Re9.js → config-gype19qQ.js} +7 -2
  21. package/dist/{conversation-DwD-vquD.js → conversation-mt3yJ09u.js} +2 -1
  22. package/dist/{conversation-privacy-CzL47nXs.js → conversation-privacy-BIplVfmz.js} +1 -1
  23. package/dist/{credential-sync-DvDaE-Uj.js → credential-sync-BY97dkST.js} +14 -14
  24. package/dist/{executor-CGUukwus.js → executor-C7bsEF-c.js} +5 -124
  25. package/dist/{history-BLTUgFYO.js → history-DlsoHsoe.js} +1 -0
  26. package/dist/{images-DSxZt5vk.js → images-WmrEAtto.js} +3 -3
  27. package/dist/instrumentation.js +2 -2
  28. package/dist/{job-queue-hLylM9cy.js → job-queue-DQDesz8a.js} +1 -1
  29. package/dist/{logging-BdZ_mK3q.js → logging-CdZ1LQJ7.js} +1 -1
  30. package/dist/nitro.d.ts +1 -1
  31. package/dist/nitro.js +3 -3
  32. package/dist/{oauth-authorization-BokpeHv-.js → oauth-authorization-Di0KlyoJ.js} +1 -1
  33. package/dist/{oauth-callback-server-C3BOSmT_.js → oauth-callback-server-Cmog7Q3T.js} +2 -2
  34. package/dist/{pending-auth-DOzL4D24.js → pending-auth-CNAlGOyl.js} +2 -2
  35. package/dist/{profile-2gPzzMib.js → profile-qqt_2di0.js} +4 -4
  36. package/dist/{prompt-CMU-B4FA.js → prompt-D_cg2iqi.js} +1 -1
  37. package/dist/{registry-XJkXDNK2.js → registry-WOJKAIRI.js} +1 -1
  38. package/dist/{resolve-DhcdtDt6.js → resolve-C8VvY0lg.js} +2 -2
  39. package/dist/{runner-CGyrnIPm.js → runner-DojxjGmt.js} +10 -10
  40. package/dist/{sandbox-egress-signals-D6F3OZJP.js → sandbox-egress-signals-B7azPnsm.js} +1 -1
  41. package/dist/{schema-Cabm4jcj.js → schema-nQRsPWSr.js} +34 -3
  42. package/dist/{skills-C6PqcBPU.js → skills-Zj-9pbSU.js} +2 -2
  43. package/dist/{spawn-DL9x3T1o.js → spawn-DDJ5z9IC.js} +5 -4
  44. package/dist/{task-queue-vZnBGu9B.js → task-queue-CAi-XM8x.js} +3 -3
  45. package/dist/{task-runner-C-c0t5F5.js → task-runner-CIP2asjP.js} +12 -11
  46. package/dist/{tasks-EqCtmUJ2.js → tasks-Qx6Fos_R.js} +49 -17
  47. package/dist/{thread-state-B8IKs_J8.js → thread-state-BN_5S1bx.js} +7 -7
  48. package/dist/{turn-failure-response-BS7OO1BE.js → turn-failure-response-B1UW2T7a.js} +9 -9
  49. package/dist/{turn-lifecycle-Cxrt8qMD.js → turn-lifecycle-BzeE4sVD.js} +1 -1
  50. package/dist/{turn-session-routing-BlGt2AUb.js → turn-session-routing-DsvU39zW.js} +1 -1
  51. package/dist/{validation-C8hci6pj.js → validation-Dklx_nds.js} +1 -1
  52. package/dist/{version-CjnHQ8aY.js → version-BvG02ZTN.js} +1 -1
  53. package/dist/version.js +1 -1
  54. package/dist/{viewer-BOgEy5zC.js → viewer-B7qDM2DM.js} +6 -8
  55. package/dist/{web-authorization-DSMV5tMK.js → web-authorization-Cqv7bP19.js} +6 -6
  56. package/dist/{web-input-TD5P9jdo.js → web-input-CqnqSfzI.js} +227 -31
  57. package/dist/{work-D39OAwP1.js → work-D_BBvd4I.js} +111 -225
  58. package/dist/{worker-CWiLgCWH.js → worker-BWdV_5Ys.js} +5 -5
  59. package/migrations/0050_agent_invocation_parent_mailbox.sql +4 -0
  60. package/migrations/0051_agent_invocation_parent_tool_call.sql +1 -0
  61. package/migrations/meta/0050_snapshot.json +3753 -0
  62. package/migrations/meta/0051_snapshot.json +3759 -0
  63. package/migrations/meta/_journal.json +15 -1
  64. package/package.json +5 -5
  65. package/dist/destinations-BeBiJeEM.js +0 -29
@@ -874,6 +874,7 @@ export declare const conversationReportEventDataSchema: z.ZodDiscriminatedUnion<
874
874
  status: z.ZodEnum<{
875
875
  error: "error";
876
876
  running: "running";
877
+ blocked: "blocked";
877
878
  completed: "completed";
878
879
  aborted: "aborted";
879
880
  }>;
@@ -1110,6 +1111,7 @@ export declare const conversationReportEventSchema: z.ZodObject<{
1110
1111
  status: z.ZodEnum<{
1111
1112
  error: "error";
1112
1113
  running: "running";
1114
+ blocked: "blocked";
1113
1115
  completed: "completed";
1114
1116
  aborted: "aborted";
1115
1117
  }>;
@@ -1690,6 +1692,7 @@ export declare const conversationDetailReportSchema: z.ZodObject<{
1690
1692
  status: z.ZodEnum<{
1691
1693
  error: "error";
1692
1694
  running: "running";
1695
+ blocked: "blocked";
1693
1696
  completed: "completed";
1694
1697
  aborted: "aborted";
1695
1698
  }>;
@@ -1974,6 +1977,7 @@ export declare const conversationEventPageSchema: z.ZodObject<{
1974
1977
  status: z.ZodEnum<{
1975
1978
  error: "error";
1976
1979
  running: "running";
1980
+ blocked: "blocked";
1977
1981
  completed: "completed";
1978
1982
  aborted: "aborted";
1979
1983
  }>;
@@ -2393,6 +2397,54 @@ type ConversationPendingMessagesReport = z.infer<typeof conversationPendingMessa
2393
2397
  type CancelConversationPendingMessagesBody = z.infer<typeof cancelConversationPendingMessagesBodySchema>;
2394
2398
  type CancelConversationPendingMessagesResponse = z.infer<typeof cancelConversationPendingMessagesResponseSchema>;
2395
2399
  //#endregion
2400
+ //#region src/api/schema/child-agent.d.ts
2401
+ /**
2402
+ * One direct child agent of a Conversation, from agent invocation records.
2403
+ *
2404
+ * Viewers who cannot see private content get the status and time, but not the
2405
+ * name, task, or error.
2406
+ */
2407
+ export declare const conversationChildAgentSchema: z.ZodObject<{
2408
+ conversationId: z.ZodString;
2409
+ error: z.ZodOptional<z.ZodString>;
2410
+ name: z.ZodOptional<z.ZodString>;
2411
+ redacted: z.ZodOptional<z.ZodLiteral<true>>;
2412
+ status: z.ZodEnum<{
2413
+ paused: "paused";
2414
+ failed: "failed";
2415
+ pending: "pending";
2416
+ running: "running";
2417
+ blocked: "blocked";
2418
+ completed: "completed";
2419
+ stopped: "stopped";
2420
+ }>;
2421
+ task: z.ZodOptional<z.ZodString>;
2422
+ updatedAt: z.ZodString;
2423
+ }, z.core.$strict>;
2424
+ /** Direct child agents of one Conversation, newest activity first. */
2425
+ export declare const conversationChildAgentsReportSchema: z.ZodObject<{
2426
+ agents: z.ZodArray<z.ZodObject<{
2427
+ conversationId: z.ZodString;
2428
+ error: z.ZodOptional<z.ZodString>;
2429
+ name: z.ZodOptional<z.ZodString>;
2430
+ redacted: z.ZodOptional<z.ZodLiteral<true>>;
2431
+ status: z.ZodEnum<{
2432
+ paused: "paused";
2433
+ failed: "failed";
2434
+ pending: "pending";
2435
+ running: "running";
2436
+ blocked: "blocked";
2437
+ completed: "completed";
2438
+ stopped: "stopped";
2439
+ }>;
2440
+ task: z.ZodOptional<z.ZodString>;
2441
+ updatedAt: z.ZodString;
2442
+ }, z.core.$strict>>;
2443
+ conversationId: z.ZodString;
2444
+ }, z.core.$strict>;
2445
+ type ConversationChildAgent = z.infer<typeof conversationChildAgentSchema>;
2446
+ type ConversationChildAgentsReport = z.infer<typeof conversationChildAgentsReportSchema>;
2447
+ //#endregion
2396
2448
  //#region src/api/schema/person.d.ts
2397
2449
  export declare const personParamsSchema: z.ZodObject<{
2398
2450
  email: z.ZodString;
@@ -4700,4 +4752,4 @@ type PluginPackageContentReport = z.infer<typeof pluginPackageContentReportSchem
4700
4752
  type PluginOperationalReport = z.infer<typeof pluginOperationalReportSchema>;
4701
4753
  type PluginOperationalReportFeed = z.infer<typeof pluginOperationalReportFeedSchema>;
4702
4754
  //#endregion
4703
- export { type AcceptedConversationMessage, type ActorActivityDayReport, type ActorDirectoryReport, type ActorDirectoryWindows, type ActorIdentity, type ActorProfileReport, type ActorSummaryReport, type ActorTotalsReport, type ActorWindowMetrics, type ApiError, type ArchiveConversationBody, type ArchiveConversationResponse, type AutomationCard, type AutomationEdit, type AutomationExecution, type AutomationExecutionDay, type AutomationExecutionList, type AutomationExecutionStatusDay, type AutomationList, type AutomationListQuery, type AutomationRun, type AutomationRunList, type AutomationRunWindows, type AutomationScheduleIntent, type AutomationSummary, type AutomationUpdate, type AutomationVersion, type AutomationVersionList, type BaselineSnapshotReport, type CancelConversationPendingMessagesBody, type CancelConversationPendingMessagesResponse, type CodeActivityDay, type CodeChangeSummaryReport, type CodeOverviewReport, type CodePersonReport, type CodeRepositoryReport, type CodeRepositorySummary, type ConversationActivityPreview, type ConversationAuxiliaryCosts, type ConversationCost, type ConversationDetailReport, type ConversationEventHistory, type ConversationEventPage, type ConversationFeed, type ConversationMetricDay, type ConversationModelUsage, type ConversationParams, type ConversationPendingMessage, type ConversationPendingMessageDelivery, type ConversationPendingMessagesReport, type ConversationReportEvent, type ConversationReportEventData, type ConversationReportStatus, type ConversationSourceTask, type ConversationStatsItem, type ConversationStatsReport, type ConversationSummaryReport, type ConversationSurface, type ConversationTurnFailureCode, type ConversationTurnFailureReason, type ConversationUsage, type CreateConversationBody, type CreateConversationMessageBody, type DailyConversationActivity, type GuardianMetricDay, type GuardianStats, type HealthReport, type InputImage, type LocationActivityDayReport, type LocationActorSummaryReport, type LocationDetailReport, type LocationDirectoryReport, type LocationParams, type LocationSummaryReport, MAX_INPUT_IMAGES, MAX_INPUT_IMAGE_BYTES, type MessageAttachment, type MessageCard, type OwnedObjectAnnotation, type PeopleActivityDayReport, type PersonParams, type PersonalSpendReport, type PersonalTokenMetadata, type Plugin, type PluginOperationalReport, type PluginOperationalReportFeed, type PluginPackageContentItemReport, type PluginPackageContentReport, type Plugins, type RuntimeInfoReport, type SkillReport, type SkillReports, type StatReport, type StatsReport, type WorkspaceReport, conversationTurnFailureCodeSchema, conversationTurnFailureReasonSchema, messageCardText, resolveMessageCards };
4755
+ export { type AcceptedConversationMessage, type ActorActivityDayReport, type ActorDirectoryReport, type ActorDirectoryWindows, type ActorIdentity, type ActorProfileReport, type ActorSummaryReport, type ActorTotalsReport, type ActorWindowMetrics, type ApiError, type ArchiveConversationBody, type ArchiveConversationResponse, type AutomationCard, type AutomationEdit, type AutomationExecution, type AutomationExecutionDay, type AutomationExecutionList, type AutomationExecutionStatusDay, type AutomationList, type AutomationListQuery, type AutomationRun, type AutomationRunList, type AutomationRunWindows, type AutomationScheduleIntent, type AutomationSummary, type AutomationUpdate, type AutomationVersion, type AutomationVersionList, type BaselineSnapshotReport, type CancelConversationPendingMessagesBody, type CancelConversationPendingMessagesResponse, type CodeActivityDay, type CodeChangeSummaryReport, type CodeOverviewReport, type CodePersonReport, type CodeRepositoryReport, type CodeRepositorySummary, type ConversationActivityPreview, type ConversationAuxiliaryCosts, type ConversationChildAgent, type ConversationChildAgentsReport, type ConversationCost, type ConversationDetailReport, type ConversationEventHistory, type ConversationEventPage, type ConversationFeed, type ConversationMetricDay, type ConversationModelUsage, type ConversationParams, type ConversationPendingMessage, type ConversationPendingMessageDelivery, type ConversationPendingMessagesReport, type ConversationReportEvent, type ConversationReportEventData, type ConversationReportStatus, type ConversationSourceTask, type ConversationStatsItem, type ConversationStatsReport, type ConversationSummaryReport, type ConversationSurface, type ConversationTurnFailureCode, type ConversationTurnFailureReason, type ConversationUsage, type CreateConversationBody, type CreateConversationMessageBody, type DailyConversationActivity, type GuardianMetricDay, type GuardianStats, type HealthReport, type InputImage, type LocationActivityDayReport, type LocationActorSummaryReport, type LocationDetailReport, type LocationDirectoryReport, type LocationParams, type LocationSummaryReport, MAX_INPUT_IMAGES, MAX_INPUT_IMAGE_BYTES, type MessageAttachment, type MessageCard, type OwnedObjectAnnotation, type PeopleActivityDayReport, type PersonParams, type PersonalSpendReport, type PersonalTokenMetadata, type Plugin, type PluginOperationalReport, type PluginOperationalReportFeed, type PluginPackageContentItemReport, type PluginPackageContentReport, type Plugins, type RuntimeInfoReport, type SkillReport, type SkillReports, type StatReport, type StatsReport, type WorkspaceReport, conversationTurnFailureCodeSchema, conversationTurnFailureReasonSchema, messageCardText, resolveMessageCards };
@@ -1,6 +1,6 @@
1
- import { a as conversationTurnFailureReasonSchema, i as conversationTurnFailureCodeSchema } from "../history-BLTUgFYO.js";
2
- import { A as forkConversationResponseSchema, C as conversationReportEventSchema, D as createConversationBodySchema, E as conversationSummaryReportSchema, K as resolveMessageCards, M as MAX_INPUT_IMAGE_BYTES, O as createConversationMessageBodySchema, P as INPUT_IMAGE_TYPES, S as conversationReportEventDataSchema, T as conversationStatsReportSchema, U as messageCardText, _ 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 MAX_INPUT_IMAGES, k as forkConversationBodySchema, 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-DwD-vquD.js";
1
+ import { a as conversationTurnFailureReasonSchema, i as conversationTurnFailureCodeSchema } from "../history-DlsoHsoe.js";
2
+ import { A as forkConversationResponseSchema, C as conversationReportEventSchema, D as createConversationBodySchema, E as conversationSummaryReportSchema, K as resolveMessageCards, M as MAX_INPUT_IMAGE_BYTES, O as createConversationMessageBodySchema, P as INPUT_IMAGE_TYPES, S as conversationReportEventDataSchema, T as conversationStatsReportSchema, U as messageCardText, _ 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 MAX_INPUT_IMAGES, k as forkConversationBodySchema, 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-mt3yJ09u.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 codeChangeSummarySchema, C as locationParamsSchema, D as dailyConversationActivitySchema, F as codeRepositorySummarySchema, I as apiErrorSchema, M as codePersonReportSchema, N as codeRepositoryParamsSchema, O as codeActivityDaySchema, P as codeRepositoryReportSchema, S as locationDirectoryReportSchema, _ 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 codeOverviewReportSchema, k as codeChangeSummaryReportSchema, 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 } from "../schema-Cabm4jcj.js";
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, conversationActivityPreviewSchema, conversationAuxiliaryCostsSchema, conversationDetailQuerySchema, conversationDetailReportSchema, conversationEventHistorySchema, conversationEventPageSchema, conversationEventsQuerySchema, conversationFeedQuerySchema, conversationFeedSchema, conversationParamsSchema, conversationPendingAuthorizationSchema, conversationPendingMessageDeliverySchema, conversationPendingMessageSchema, conversationPendingMessagesReportSchema, conversationReportEventDataSchema, conversationReportEventSchema, conversationStatsReportSchema, conversationSummaryReportSchema, conversationTurnFailureCodeSchema, conversationTurnFailureReasonSchema, createConversationBodySchema, createConversationMessageBodySchema, createPersonalTokenBodySchema, createdPersonalTokenSchema, dailyConversationActivitySchema, deleteWorkspaceResponseSchema, 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, statSchema, statsReportSchema, webMessageId, workspaceBodySchema, workspaceListSchema, workspaceParamsSchema, workspaceRepoSchema, workspaceSchema };
5
+ import { A as codeChangeSummarySchema, C as locationParamsSchema, D as dailyConversationActivitySchema, F as codeRepositorySummarySchema, I as conversationChildAgentSchema, L as conversationChildAgentsReportSchema, M as codePersonReportSchema, N as codeRepositoryParamsSchema, O as codeActivityDaySchema, P as codeRepositoryReportSchema, R as apiErrorSchema, S as locationDirectoryReportSchema, _ 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 codeOverviewReportSchema, k as codeChangeSummaryReportSchema, 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 } from "../schema-nQRsPWSr.js";
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, conversationActivityPreviewSchema, conversationAuxiliaryCostsSchema, conversationChildAgentSchema, 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, 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, statSchema, statsReportSchema, webMessageId, workspaceBodySchema, workspaceListSchema, workspaceParamsSchema, workspaceRepoSchema, workspaceSchema };
package/dist/api.js CHANGED
@@ -1,24 +1,24 @@
1
- import { $ as getEventCatalog, L as editEventAutomation, O as parseSlackThreadId, P as editScheduledAutomation, R as AutomationEditError, T as readLiveAttachment, V as resolveTaskOutcomes, g as readStats, gt as getConversation, ot as cancelHumanFacingPendingMessages, tt as pluginEventCatalog, z as eventAutomationTriggerAvailable } from "./agent-runner-BTgnxJ7g.js";
2
- import { d as logException, p as logWarn } from "./logging-BdZ_mK3q.js";
1
+ import { L as editEventAutomation, Mt as getConversation, O as parseSlackThreadId, P as editScheduledAutomation, R as AutomationEditError, St as cancelHumanFacingPendingMessages, T as readLiveAttachment, V as resolveTaskOutcomes, _t as pluginEventCatalog, g as readStats, ht as getEventCatalog, tt as listChildAgents, z as eventAutomationTriggerAvailable } from "./agent-runner-BZOjoMlZ.js";
2
+ import { d as logException, p as logWarn } from "./logging-CdZ1LQJ7.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 } from "./viewer-BOgEy5zC.js";
5
- import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
6
- import { C as juniorCodeChanges, D as juniorConversations, E as conversationReadColumns, O as juniorIdentities, _ as juniorConversationBriefs, b as juniorConversationEvents, h as juniorConversationParticipants, k as juniorUsers, w as juniorCodeRepositories, x as juniorApiTokens, y as juniorConversationMetrics } from "./executor-CGUukwus.js";
7
- import { u as contextProvenance } from "./history-BLTUgFYO.js";
8
- import { D as automationRevision, E as AutomationConflictError, O as requireAutomationRevision, S as automationDefinition, T as sameDefinitionValue, Tt as loadTurnProjection, a as readScheduledAutomation, b as saveEventAutomation, cn as piMessageFromHistoryItem, g as getEventAutomation, m as eventAutomationBelongsToUser, o as saveScheduledAutomation, w as readAutomationVersion, x as setEventAutomationStatus } from "./tasks-EqCtmUJ2.js";
9
- import { At as listConversationAnnotations, C as WorkspaceValidationError, M as workspaceRepoCheckoutPath, O as SANDBOX_RUNTIME, Pt as lookupSlackUser, S as updateWorkspace, St as buildSentryConversationUrl, Wt as withSlackRetries, _ as deleteWorkspace, _t as conversationNotArchivedForUser, b as listWorkspaces, bt as readLatestConversationBrief, dt as conversationArchiveTimes, ft as conversationArchivedForEmail, g as createWorkspace, gt as conversationNotArchivedForEmail, ht as conversationHasParticipantUser, jt as listConversationAnnotationsById, lt as createPluginLogger, mt as conversationHasParticipantEmail, pt as conversationArchivedForUser, u as getPlugins, ut as readConversationAccessFromSql, v as getWorkspace, vt as viewerConversationMembership, x as listWorkspacesByRepository, xt as readConversationEventPage, zt as getSlackClient } from "./agent-hooks-BVttjZvb.js";
10
- import { A as forkConversationResponseSchema, D as createConversationBodySchema, N as readMessageAttachments, O as createConversationMessageBodySchema, P as INPUT_IMAGE_TYPES, T as conversationStatsReportSchema, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, c as conversationAttachmentParamsSchema, d as conversationDetailReportSchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, k as forkConversationBodySchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, x as conversationPendingMessagesReportSchema } from "./conversation-DwD-vquD.js";
11
- import { n as hash, t as create } from "./profile-2gPzzMib.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 } from "./viewer-B7qDM2DM.js";
5
+ import { c as juniorIdentities, d as juniorDestinations, l as juniorUsers, o as conversationReadColumns, s as juniorConversations } from "./agent-invocations-BzRAZ_nj.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-C7bsEF-c.js";
7
+ import { u as contextProvenance } from "./history-DlsoHsoe.js";
8
+ import { D as automationRevision, E as AutomationConflictError, Et as loadTurnProjection, O as requireAutomationRevision, S as automationDefinition, T as sameDefinitionValue, a as readScheduledAutomation, b as saveEventAutomation, g as getEventAutomation, ln as piMessageFromHistoryItem, m as eventAutomationBelongsToUser, o as saveScheduledAutomation, w as readAutomationVersion, x as setEventAutomationStatus } from "./tasks-Qx6Fos_R.js";
9
+ import { At as listConversationAnnotations, C as WorkspaceValidationError, M as workspaceRepoCheckoutPath, O as SANDBOX_RUNTIME, Pt as lookupSlackUser, S as updateWorkspace, St as buildSentryConversationUrl, Wt as withSlackRetries, _ as deleteWorkspace, _t as conversationNotArchivedForUser, b as listWorkspaces, bt as readLatestConversationBrief, dt as conversationArchiveTimes, ft as conversationArchivedForEmail, g as createWorkspace, gt as conversationNotArchivedForEmail, ht as conversationHasParticipantUser, jt as listConversationAnnotationsById, lt as createPluginLogger, mt as conversationHasParticipantEmail, pt as conversationArchivedForUser, u as getPlugins, ut as readConversationAccessFromSql, v as getWorkspace, vt as viewerConversationMembership, x as listWorkspacesByRepository, xt as readConversationEventPage, zt as getSlackClient } from "./agent-hooks-Cqo6ULp6.js";
10
+ import { A as forkConversationResponseSchema, D as createConversationBodySchema, N as readMessageAttachments, O as createConversationMessageBodySchema, P as INPUT_IMAGE_TYPES, T as conversationStatsReportSchema, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, c as conversationAttachmentParamsSchema, d as conversationDetailReportSchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, k as forkConversationBodySchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, x as conversationPendingMessagesReportSchema } from "./conversation-mt3yJ09u.js";
11
+ import { n as hash, t as create } from "./profile-qqt_2di0.js";
12
12
  import { t as getFirstRunAtMs } from "./cadence-D00SCzT1.js";
13
- import { t as getCachedSnapshot } from "./resolve-DhcdtDt6.js";
14
- import { a as getVercelConversationWorkQueue } from "./job-queue-hLylM9cy.js";
13
+ import { t as getCachedSnapshot } from "./resolve-C8VvY0lg.js";
14
+ import { a as getVercelConversationWorkQueue } from "./job-queue-DQDesz8a.js";
15
15
  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";
16
16
  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";
17
- import { L as createVercelAttachmentStorage, M as legacyWebMailboxMetadataSchema, V as readHealthReport, _ as readViewerAutomationRuns, a as recordWebConversationActivity, b as readViewerAutomations, d as resolveSlackConversationContextFromThreadId, g as readViewerAutomationExecutions, h as readConversationSourceTask, i as createConversationId, 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-TD5P9jdo.js";
18
- import { A as conversationActiveDaysColumn, M as conversationRangeColumns, j as conversationAggregateColumns } from "./task-runner-C-c0t5F5.js";
19
- import { r as getWebAuthorization } from "./web-authorization-DSMV5tMK.js";
20
- import { t as decodeInputImages } from "./images-DSxZt5vk.js";
21
- import { C as locationParamsSchema, E as activitySixHours$1, I as apiErrorSchema, M as codePersonReportSchema, N as codeRepositoryParamsSchema, P as codeRepositoryReportSchema, S as locationDirectoryReportSchema, T as activityHours$1, _ as actorProfileReportSchema, a as workspaceBodySchema, d as createdPersonalTokenSchema, f as personalTokenListSchema, g as actorDirectoryReportSchema, h as revokePersonalTokenResponseSchema, i as deleteWorkspaceResponseSchema, j as codeOverviewReportSchema, 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 } from "./schema-Cabm4jcj.js";
17
+ import { H as readHealthReport, L as createVercelAttachmentStorage, M as legacyWebMailboxMetadataSchema, _ as readViewerAutomationRuns, a as recordWebConversationActivity, b as readViewerAutomations, d as resolveSlackConversationContextFromThreadId, g as readViewerAutomationExecutions, h as readConversationSourceTask, i as createConversationId, 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-CqnqSfzI.js";
18
+ import { A as conversationActiveDaysColumn, M as conversationRangeColumns, j as conversationAggregateColumns } from "./task-runner-CIP2asjP.js";
19
+ import { r as getWebAuthorization } from "./web-authorization-Cqv7bP19.js";
20
+ import { t as decodeInputImages } from "./images-WmrEAtto.js";
21
+ import { C as locationParamsSchema, E as activitySixHours$1, L as conversationChildAgentsReportSchema, M as codePersonReportSchema, N as codeRepositoryParamsSchema, P as codeRepositoryReportSchema, R as apiErrorSchema, S as locationDirectoryReportSchema, T as activityHours$1, _ as actorProfileReportSchema, a as workspaceBodySchema, d as createdPersonalTokenSchema, f as personalTokenListSchema, g as actorDirectoryReportSchema, h as revokePersonalTokenResponseSchema, i as deleteWorkspaceResponseSchema, j as codeOverviewReportSchema, 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 } from "./schema-nQRsPWSr.js";
22
22
  import { Hono } from "hono";
23
23
  import path from "node:path";
24
24
  import { z } from "zod";
@@ -131,6 +131,31 @@ async function archiveConversation(viewer, conversationId, body) {
131
131
  throwApiError(409, "Conversation received new activity.");
132
132
  }
133
133
  //#endregion
134
+ //#region src/api/conversations/child-agents.ts
135
+ /**
136
+ * Load the direct child agents of one Conversation, or throw a standard API
137
+ * not-found error. Viewers who cannot see private content get only the status
138
+ * and time of each child agent.
139
+ */
140
+ async function requireConversationChildAgents(conversationId, options = {}) {
141
+ if (!await getConversationStore().get({ conversationId })) throwApiError(404, "Conversation not found.");
142
+ const canExposePayload = (await readConversationAccessFromSql(getDb(), [conversationId], options.viewer)).get(conversationId)?.canViewPrivateContent ?? false;
143
+ const agents = (await listChildAgents(conversationId)).map((agent) => ({
144
+ conversationId: agent.childConversationId,
145
+ status: agent.status,
146
+ updatedAt: new Date(agent.updatedAtMs).toISOString(),
147
+ ...canExposePayload ? {
148
+ ...agent.agentName ? { name: agent.agentName } : void 0,
149
+ task: agent.task,
150
+ ...agent.errorMessage ? { error: agent.errorMessage } : void 0
151
+ } : { redacted: true }
152
+ }));
153
+ return conversationChildAgentsReportSchema.parse({
154
+ agents,
155
+ conversationId
156
+ });
157
+ }
158
+ //#endregion
134
159
  //#region src/api/conversations/attachments.ts
135
160
  function contentDisposition(filename, contentType) {
136
161
  return `${INPUT_IMAGE_TYPES.some((type) => type === contentType) ? "inline" : "attachment"}; filename="${filename.replace(/[^\x20-\x7e]|["\\]/g, "_")}"; filename*=UTF-8''${encodeURIComponent(filename)}`;
@@ -2098,6 +2123,11 @@ function createConversationRoutes(options) {
2098
2123
  if (!report) throwApiError(404, "Conversation not found.");
2099
2124
  return jsonResponse(conversationEventPageSchema, report);
2100
2125
  });
2126
+ app.get("/:conversationId/agents", validateRequest("param", conversationParamsSchema, "Invalid route parameters."), async (context) => {
2127
+ const { conversationId } = context.req.valid("param");
2128
+ const viewer = context.get("viewer");
2129
+ return jsonResponse(conversationChildAgentsReportSchema, await requireConversationChildAgents(conversationId, { viewer }));
2130
+ });
2101
2131
  app.get("/:conversationId/pending-messages", validateRequest("param", conversationParamsSchema, "Invalid route parameters."), async (context) => {
2102
2132
  const { conversationId } = context.req.valid("param");
2103
2133
  const viewer = context.get("viewer");
@@ -3357,7 +3387,7 @@ async function readPeoplePluginReports(args) {
3357
3387
  reports: [],
3358
3388
  source: "plugins"
3359
3389
  });
3360
- const { getPluginProfileReports } = await import("./agent-hooks-BVttjZvb.js").then((n) => n.t);
3390
+ const { getPluginProfileReports } = await import("./agent-hooks-Cqo6ULp6.js").then((n) => n.t);
3361
3391
  return pluginOperationalReportFeedSchema.parse({
3362
3392
  generatedAt: new Date(nowMs).toISOString(),
3363
3393
  reports: await getPluginProfileReports({
@@ -4325,7 +4355,7 @@ function readDescriptionText(home) {
4325
4355
  }
4326
4356
  /** Read discovered skill names for authenticated runtime diagnostics. */
4327
4357
  async function readSkillReports() {
4328
- const { discoverSkills } = await import("./skills-C6PqcBPU.js").then((n) => n.o);
4358
+ const { discoverSkills } = await import("./skills-Zj-9pbSU.js").then((n) => n.o);
4329
4359
  const skills = await discoverSkills();
4330
4360
  return skillReportsSchema.parse(skills.map((skill) => ({
4331
4361
  name: skill.name,
@@ -4334,7 +4364,7 @@ async function readSkillReports() {
4334
4364
  }
4335
4365
  /** Read safe configured plugin metadata for authenticated runtime diagnostics. */
4336
4366
  async function readPlugins() {
4337
- const { pluginCatalogRuntime } = await import("./catalog-runtime-C2YkfMZz.js").then((n) => n.t);
4367
+ const { pluginCatalogRuntime } = await import("./catalog-runtime-jazDa-oO.js").then((n) => n.t);
4338
4368
  return pluginsSchema.parse(pluginCatalogRuntime.getProviders().map((plugin) => ({
4339
4369
  configKeys: plugin.manifest.configKeys ?? [],
4340
4370
  description: plugin.manifest.description,
@@ -4346,7 +4376,7 @@ async function readPlugins() {
4346
4376
  async function readRuntimeInfoReport() {
4347
4377
  const [{ homeDir }, { pluginCatalogRuntime }, plugins, skills] = await Promise.all([
4348
4378
  import("./package-discovery-BVvSnQBB.js").then((n) => n.r),
4349
- import("./catalog-runtime-C2YkfMZz.js").then((n) => n.t),
4379
+ import("./catalog-runtime-jazDa-oO.js").then((n) => n.t),
4350
4380
  readPlugins(),
4351
4381
  readSkillReports()
4352
4382
  ]);
@@ -4363,7 +4393,7 @@ async function readRuntimeInfoReport() {
4363
4393
  /** Read sanitized operational summaries contributed by plugins. */
4364
4394
  async function readPluginOperationalReportFeed() {
4365
4395
  const nowMs = Date.now();
4366
- const { getPluginOperationalReports } = await import("./agent-hooks-BVttjZvb.js").then((n) => n.t);
4396
+ const { getPluginOperationalReports } = await import("./agent-hooks-Cqo6ULp6.js").then((n) => n.t);
4367
4397
  return pluginOperationalReportFeedSchema.parse({
4368
4398
  source: "plugins",
4369
4399
  generatedAt: new Date(nowMs).toISOString(),
@@ -54,6 +54,11 @@ type CrossActorMidRunMode = "follow_up" | "steer";
54
54
  interface RuntimeLimits {
55
55
  /** Largest model context window used for compaction, in tokens. */
56
56
  contextWindowTokens?: number;
57
+ /**
58
+ * Levels of child agents that can start their own child agents. The
59
+ * default, 0, lets only the root Conversation start child agents.
60
+ */
61
+ maxAgentDepth?: number;
57
62
  /** Automated turns in a row before Junior stops answering automation. */
58
63
  maxConsecutiveAutomatedTurns?: number;
59
64
  /** Run slices one turn may use. */
package/dist/app.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { i as ModelProfileInput, n as createApp, r as JuniorDashboardOptions, t as JuniorAppOptions } from "./app-MEd7wbF0.js";
1
+ import { i as ModelProfileInput, n as createApp, r as JuniorDashboardOptions, t as JuniorAppOptions } from "./app-DRLh-8zs.js";
2
2
  import { i as defineJuniorPlugins, n as JuniorPluginSet, r as JuniorPluginSetOptions, t as JuniorPluginInput } from "./plugins-CjfUP5gJ.js";
3
3
  import { t as JUNIOR_VERSION } from "./version-CnXZ614E.js";
4
4
  export { JUNIOR_VERSION, JuniorAppOptions, type JuniorDashboardOptions, type JuniorPluginInput, type JuniorPluginSet, type JuniorPluginSetOptions, type ModelProfileInput, createApp, defineJuniorPlugins };
package/dist/app.js CHANGED
@@ -1,33 +1,33 @@
1
- import { $ as getEventCatalog, B as effectiveTaskOutcomes, Bt as SANDBOX_EGRESS_PROXY_PATH, Ct as removeActiveConversation, Dt as stopConversationWork, E as requestAttachmentDeletion, F as logScheduledAutomationRunSkipped, Ht as consumeSandboxEgressAuthRequiredSignal, I as scheduledAutomationRunAttributes, J as processWorkspaceSnapshotJob, Kt as formatProviderLabel, Lt as resolveSandboxEgressProviderForHost, Nt as isInvalidConversationRecordError, O as parseSlackThreadId, Pt as renderTaskInput, Rt as normalizeSandboxEgressTracePropagationDomains, Tt as requestConversationWork, Ut as consumeSandboxEgressPermissionDeniedSignal, Vt as clearSandboxEgressSignals, Wt as parseSandboxEgressCredentialToken, Xt as createUserTokenStore, Y as ingestEvent, Yt as startOAuthFlow, _t as getConversationWorkState, b as unpublishedArtifactHeaders, c as deleteMcpAuthSessionsForUserProvider, et as eventGuidance, gt as getConversation, ht as ensureConversationWake, i as executeCredentialedEgressRequest, it as appendAndEnqueueInboundMessage, jt as hasRunnableConversationWork$1, kt as CONVERSATION_WORK_STALE_ENQUEUE_MS, l as deleteMcpServerSessionId, lt as clearExpiredConversationLease, n as executeAgentRun, on as getConfigDefaults, sn as setConfigDefaults, t as createAgentRunner, u as deleteMcpStoredOAuthCredentials, v as publicArtifactHeaders, vt as hasRunnableConversationWork, w as collectAttachmentGarbage, x as lookupSlackUserProfile, y as readPublicArtifact, yt as listActiveConversationIds, zt as shouldPropagateSandboxEgressTrace } from "./agent-runner-BTgnxJ7g.js";
2
- import { C as withLogContext, O as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, S as withContext, d as logException, f as logInfo, j as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, p as logWarn, r as createRequestContext, v as setSpanAttributes, w as withSpan, y as setSpanStatus } from "./logging-BdZ_mK3q.js";
1
+ import { $t as resolveSandboxEgressProviderForHost, B as effectiveTaskOutcomes, Cn as setConfigDefaults, E as requestAttachmentDeletion, F as logScheduledAutomationRunSkipped, Ft as listActiveConversationIds, Gt as CONVERSATION_WORK_STALE_ENQUEUE_MS, I as scheduledAutomationRunAttributes, Mt as getConversation, Nt as getConversationWorkState, O as parseSlackThreadId, Pt as hasRunnableConversationWork, Sn as getConfigDefaults, Tt as clearExpiredConversationLease, U as recordSubagentEnded, Ut as stopConversationWork, Vt as requestConversationWork, Xt as renderTaskInput, Yt as isInvalidConversationRecordError, an as consumeSandboxEgressPermissionDeniedSignal, b as unpublishedArtifactHeaders, bt as appendAndEnqueueInboundMessage, c as deleteMcpAuthSessionsForUserProvider, cn as formatProviderLabel, dn as startOAuthFlow, dt as ingestEvent, en as normalizeSandboxEgressTracePropagationDomains, fn as createUserTokenStore, gt as eventGuidance, ht as getEventCatalog, i as executeCredentialedEgressRequest, in as consumeSandboxEgressAuthRequiredSignal, jt as ensureConversationWake, l as deleteMcpServerSessionId, n as executeAgentRun, nn as SANDBOX_EGRESS_PROXY_PATH, nt as listPendingAgentInvocationMailboxAppends, on as parseSandboxEgressCredentialToken, qt as hasRunnableConversationWork$1, rn as clearSandboxEgressSignals, rt as listPendingAgentInvocationResults, t as createAgentRunner, tn as shouldPropagateSandboxEgressTrace, u as deleteMcpStoredOAuthCredentials, ut as processWorkspaceSnapshotJob, v as publicArtifactHeaders, w as collectAttachmentGarbage, x as lookupSlackUserProfile, y as readPublicArtifact, zt as removeActiveConversation } from "./agent-runner-BZOjoMlZ.js";
2
+ import { C as withLogContext, O as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, S as withContext, d as logException, f as logInfo, j as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, p as logWarn, r as createRequestContext, v as setSpanAttributes, w as withSpan, y as setSpanStatus } from "./logging-CdZ1LQJ7.js";
3
3
  import { r as continueTrace } from "./sentry-CgWZM_kV.js";
4
- import { t as JUNIOR_VERSION } from "./version-CjnHQ8aY.js";
5
- import { _ as snapshotRuntimeConfig, d as restoreRuntimeConfig, f as setBotModelConfig, g as setSlackReactionConfig, h as setRuntimeLimits, i as getChatConfig, m as setProfiles, n as botConfig, o as getSlackBotToken, p as setCrossActorMidRunMode, u as resetRuntimeConfig } from "./config-C6Uu3Re9.js";
4
+ import { t as JUNIOR_VERSION } from "./version-BvG02ZTN.js";
5
+ import { _ as snapshotRuntimeConfig, d as restoreRuntimeConfig, f as setBotModelConfig, g as setSlackReactionConfig, h as setRuntimeLimits, i as getChatConfig, m as setProfiles, n as botConfig, o as getSlackBotToken, p as setCrossActorMidRunMode, u as resetRuntimeConfig } from "./config-gype19qQ.js";
6
6
  import { _ as slackMessageTsSchema, d as parseSlackTeamId, f as parseSlackUserId, h as slackUserIdSchema, m as slackTeamIdSchema, o as parseActorUserId, p as slackChannelIdSchema } from "./actor-BTtLaeWy.js";
7
- import { D as deleteProviderIdentityForSlackUser, c as getConversationEventStore, d as getDb, f as getSqlExecutor, g as withConversationMutationLock, m as withConversationEventLock, r as readActorIdentity, u as getConversationStore } from "./viewer-BOgEy5zC.js";
8
- import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
9
- import { D as juniorConversations, _ as juniorConversationBriefs, a as juniorSchedulerRuns, b as juniorConversationEvents, m as juniorAgentInvocations, o as juniorSchedulerTasks, p as juniorAgentBindings } from "./executor-CGUukwus.js";
10
- import { n as pluginCatalogRuntime } from "./catalog-runtime-C2YkfMZz.js";
11
- import { H as slackEntitySchema, N as slackMention, Rt as appendConversationMessages, U as slackExternalRefIdSchema, Vt as projectConversationMessages, Wt as settleConversationTitleWork, a as readScheduledAutomation, c as scheduledRunId, d as collectEventAutomationMatchKeys, h as findMatchingEventAutomations, l as withScheduledAutomationLock, n as listScheduledAutomations, r as listScheduledAutomationsForTeam, s as saveScheduledAutomationInLock } from "./tasks-EqCtmUJ2.js";
12
- import { $ as verifySlackDirectCredentialSubject, At as listConversationAnnotations, Dt as resolveRootVisibility, G as findMatchingWatches, Gt as getWorkspaceTeamId, J as bindEventAutomationCredentialSubject, Kt as runWithWorkspaceTeamId, Q as verifyScheduledAutomationCredentialSubject, V as collectEventMatchKeys, Vt as isDmChannel, X as bindSlackDirectCredentialSubject, Y as bindScheduledAutomationCredentialSubject, Z as verifyEventAutomationCredentialSubject, a as getPluginRoutes, at as setDashboardConversationLinkOptions, d as setPlugins, f as validatePlugins, h as setBriefsConfig, i as getPluginApiRoutes, it as getDashboardTaskLink, lt as createPluginLogger, nt as getDashboardConversationLink, ot as createPluginState, q as takeDueTimerWatches, u as getPlugins, ut as readConversationAccessFromSql, z as cancelSubscriptions, zt as getSlackClient } from "./agent-hooks-BVttjZvb.js";
13
- import { V as annotationCard } from "./conversation-DwD-vquD.js";
14
- import { O as withLock$1, w as getStateAdapter } from "./profile-2gPzzMib.js";
15
- import { c as getThreadStopDecision } from "./pending-auth-DOzL4D24.js";
7
+ import { D as deleteProviderIdentityForSlackUser, c as getConversationEventStore, d as getDb, f as getSqlExecutor, g as withConversationMutationLock, m as withConversationEventLock, r as readActorIdentity, u as getConversationStore } from "./viewer-B7qDM2DM.js";
8
+ import { a as juniorAgentInvocations, d as juniorDestinations, i as juniorAgentBindings, s as juniorConversations } from "./agent-invocations-BzRAZ_nj.js";
9
+ import { _ as juniorConversationEvents, a as juniorSchedulerRuns, m as juniorConversationBriefs, o as juniorSchedulerTasks } from "./executor-C7bsEF-c.js";
10
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-jazDa-oO.js";
11
+ import { Gt as settleConversationTitleWork, H as slackEntitySchema, Ht as projectConversationMessages, N as slackMention, U as slackExternalRefIdSchema, a as readScheduledAutomation, c as scheduledRunId, d as collectEventAutomationMatchKeys, h as findMatchingEventAutomations, l as withScheduledAutomationLock, n as listScheduledAutomations, r as listScheduledAutomationsForTeam, s as saveScheduledAutomationInLock, zt as appendConversationMessages } from "./tasks-Qx6Fos_R.js";
12
+ import { $ as verifySlackDirectCredentialSubject, At as listConversationAnnotations, Dt as resolveRootVisibility, G as findMatchingWatches, Gt as getWorkspaceTeamId, J as bindEventAutomationCredentialSubject, Kt as runWithWorkspaceTeamId, Q as verifyScheduledAutomationCredentialSubject, V as collectEventMatchKeys, Vt as isDmChannel, X as bindSlackDirectCredentialSubject, Y as bindScheduledAutomationCredentialSubject, Z as verifyEventAutomationCredentialSubject, a as getPluginRoutes, at as setDashboardConversationLinkOptions, d as setPlugins, f as validatePlugins, h as setBriefsConfig, i as getPluginApiRoutes, it as getDashboardTaskLink, lt as createPluginLogger, nt as getDashboardConversationLink, ot as createPluginState, q as takeDueTimerWatches, u as getPlugins, ut as readConversationAccessFromSql, z as cancelSubscriptions, zt as getSlackClient } from "./agent-hooks-Cqo6ULp6.js";
13
+ import { V as annotationCard } from "./conversation-mt3yJ09u.js";
14
+ import { O as withLock$1, w as getStateAdapter } from "./profile-qqt_2di0.js";
15
+ import { c as getThreadStopDecision } from "./pending-auth-CNAlGOyl.js";
16
16
  import { n as getNextRunAtMs } from "./cadence-D00SCzT1.js";
17
- import { f as setSandboxResourceConfig, u as getSandboxResourceConfig } from "./resolve-DhcdtDt6.js";
18
- import { a as getVercelConversationWorkQueue, g as isConversationQueueMessageRejectedError, h as conversationQueueMessageSchema, i as verifyWorkspaceSnapshotJobMessage, o as resolveConversationWorkQueueTopic, s as verifyConversationQueueMessage, t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-hLylM9cy.js";
17
+ import { f as setSandboxResourceConfig, u as getSandboxResourceConfig } from "./resolve-C8VvY0lg.js";
18
+ import { a as getVercelConversationWorkQueue, g as isConversationQueueMessageRejectedError, h as conversationQueueMessageSchema, i as verifyWorkspaceSnapshotJobMessage, o as resolveConversationWorkQueueTopic, s as verifyConversationQueueMessage, t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-DQDesz8a.js";
19
19
  import { D as scheduledRunSchema } from "./automation-gznOMaQ2.js";
20
20
  import { i as setExperimentalFeatures, n as getExperimentalFeatures, r as isExperimentalFeatureEnabled } from "./experimental-Qn9rKLgx.js";
21
- import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "./validation-C8hci6pj.js";
21
+ import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "./validation-Dklx_nds.js";
22
22
  import { a as pluginRuntimeRegistrationsFromPluginSet, n as pluginCatalogConfigFromEnv, r as pluginCatalogConfigFromPluginSet, t as defineJuniorPlugins } from "./plugins-egKWjgue.js";
23
- import { A as withNormalizedThreadId, B as GET$3, C as buildSlackInboundMessage, D as isSlackMessageStopped, E as verifySlackSignature, F as parseContent, I as renderSlackObjectCard, L as createVercelAttachmentStorage, N as THREAD_OPTOUT_ACK, O as stopSlackThread, P as startProcessingReaction, S as recordSkippedConversationMessage, T as runWithSlackInstallation, a as recordWebConversationActivity, c as createProductionSlackWebhookServices, f as createSlackWebApiStatusSender, j as getAuthPausedConversationTurnId, k as normalizeIncomingSlackThreadId, l as getProductionSlackAdapter, n as conversationTurnIdForMessage, o as webActorFromEmail, s as createProductionConversationWorkOptions, t as appendAndEnqueueWebMessage, v as readViewerAutomationSummary, w as clearSlackPendingReactions, z as enqueueAgentDispatch } from "./web-input-TD5P9jdo.js";
24
- import { _ as markDispatchFailed, a as confirmDispatchMailboxAppend, d as getPluginDispatchProjection, f as isTerminalDispatchStatus, k as recordAutomationExecution, l as getDispatchRecord, o as createOrGetDispatch, p as listPendingDispatchMailboxAppends, s as getDispatchConversationId, t as processPluginTask, y as notifyAutomationBlocked } from "./task-runner-C-c0t5F5.js";
25
- import { c as listPendingAgentInvocationMailboxAppends, r as enqueueAgentInvocation } from "./work-D39OAwP1.js";
26
- import { s as coerceThreadConversationState } from "./thread-state-B8IKs_J8.js";
27
- import { a as GET$4, i as publishAppHomeView, r as GET$5, t as receiveLocalOAuthCredential } from "./credential-sync-DvDaE-Uj.js";
28
- import { a as registerVercelPluginTaskDevConsumer, n as createVercelPluginTaskCallback, s as queueCallback } from "./task-queue-vZnBGu9B.js";
29
- import { t as processConversationWork } from "./worker-CWiLgCWH.js";
30
- import { t as bindSpawnAgent } from "./spawn-DL9x3T1o.js";
23
+ import { A as withNormalizedThreadId, B as enqueueAgentDispatch, C as buildSlackInboundMessage, D as isSlackMessageStopped, E as verifySlackSignature, F as parseContent, I as renderSlackObjectCard, L as createVercelAttachmentStorage, N as THREAD_OPTOUT_ACK, O as stopSlackThread, P as startProcessingReaction, R as enqueueAgentInvocationResult, S as recordSkippedConversationMessage, T as runWithSlackInstallation, V as GET$3, a as recordWebConversationActivity, c as createProductionSlackWebhookServices, f as createSlackWebApiStatusSender, j as getAuthPausedConversationTurnId, k as normalizeIncomingSlackThreadId, l as getProductionSlackAdapter, n as conversationTurnIdForMessage, o as webActorFromEmail, s as createProductionConversationWorkOptions, t as appendAndEnqueueWebMessage, v as readViewerAutomationSummary, w as clearSlackPendingReactions } from "./web-input-CqnqSfzI.js";
24
+ import { _ as markDispatchFailed, a as confirmDispatchMailboxAppend, d as getPluginDispatchProjection, f as isTerminalDispatchStatus, k as recordAutomationExecution, l as getDispatchRecord, o as createOrGetDispatch, p as listPendingDispatchMailboxAppends, s as getDispatchConversationId, t as processPluginTask, y as notifyAutomationBlocked } from "./task-runner-CIP2asjP.js";
25
+ import { r as enqueueAgentInvocation } from "./work-D_BBvd4I.js";
26
+ import { s as coerceThreadConversationState } from "./thread-state-BN_5S1bx.js";
27
+ import { a as GET$4, i as publishAppHomeView, r as GET$5, t as receiveLocalOAuthCredential } from "./credential-sync-BY97dkST.js";
28
+ import { a as registerVercelPluginTaskDevConsumer, n as createVercelPluginTaskCallback, s as queueCallback } from "./task-queue-CAi-XM8x.js";
29
+ import { t as processConversationWork } from "./worker-BWdV_5Ys.js";
30
+ import { t as bindSpawnAgent } from "./spawn-DDJ5z9IC.js";
31
31
  import { createRequire } from "node:module";
32
32
  import { Hono } from "hono";
33
33
  import { z } from "zod";
@@ -1052,6 +1052,19 @@ async function recoverPendingAgentInvocationMailboxAppends(args) {
1052
1052
  logException(error, "agent.invocation.mailbox.append_recovery.failed", { "app.agent.invocation_id": invocation.invocationId });
1053
1053
  }
1054
1054
  }
1055
+ /** Repair terminal agent invocation results that never reached their parent. */
1056
+ async function recoverPendingAgentInvocationResults(args) {
1057
+ const invocations = await listPendingAgentInvocationResults(AGENT_INVOCATION_MAILBOX_APPEND_LIMIT);
1058
+ for (const invocation of invocations) try {
1059
+ await recordSubagentEnded(invocation);
1060
+ await enqueueAgentInvocationResult(invocation, {
1061
+ nowMs: args.nowMs,
1062
+ queue: args.conversationWorkQueue
1063
+ });
1064
+ } catch (error) {
1065
+ logException(error, "agent.invocation.result.recovery.failed", { "app.agent.invocation_id": invocation.invocationId });
1066
+ }
1067
+ }
1055
1068
  /** Run the core heartbeat phases. */
1056
1069
  async function runHeartbeat(args) {
1057
1070
  const queue = args.conversationWorkQueue ?? getVercelConversationWorkQueue();
@@ -1067,6 +1080,10 @@ async function runHeartbeat(args) {
1067
1080
  conversationWorkQueue: queue,
1068
1081
  nowMs: args.nowMs
1069
1082
  });
1083
+ await recoverPendingAgentInvocationResults({
1084
+ conversationWorkQueue: queue,
1085
+ nowMs: args.nowMs
1086
+ });
1070
1087
  try {
1071
1088
  const dispatchCount = await runScheduledAutomationHeartbeat({
1072
1089
  conversationWorkQueue: queue,
@@ -1,7 +1,7 @@
1
- import { r as completeObject } from "./client-D51G-Jdg.js";
1
+ import { r as completeObject } from "./client-Es79bknZ.js";
2
2
  import { r as defaultModelId } from "./model-profile-BwU8mqwD.js";
3
- import { B as parseBriefInput, I as briefCodeChangeSchema, d as conversationDetailReportSchema, p as conversationEventPageSchema } from "./conversation-DwD-vquD.js";
4
- import { n as briefEntriesFromReportEvents, s as generateBrief, t as BRIEF_PROMPT } from "./prompt-CMU-B4FA.js";
3
+ import { B as parseBriefInput, I as briefCodeChangeSchema, d as conversationDetailReportSchema, p as conversationEventPageSchema } from "./conversation-mt3yJ09u.js";
4
+ import { n as briefEntriesFromReportEvents, s as generateBrief, t as BRIEF_PROMPT } from "./prompt-D_cg2iqi.js";
5
5
  import { CLI_USAGE } from "./cli/run.js";
6
6
  import path from "node:path";
7
7
  import { z } from "zod";
@@ -269,7 +269,7 @@ async function parseRunOptions(argv) {
269
269
  * `DATABASE_URL` at import, and `briefs pull` must work with only a token.
270
270
  */
271
271
  async function configuredDefaultModelId() {
272
- const { botConfig } = await import("./config-C6Uu3Re9.js").then((n) => n.r);
272
+ const { botConfig } = await import("./config-gype19qQ.js").then((n) => n.r);
273
273
  return defaultModelId(botConfig);
274
274
  }
275
275
  function apiUrl(baseUrl, pathname) {
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { t as createPluginCatalogRuntime } from "./registry-XJkXDNK2.js";
2
+ import { t as createPluginCatalogRuntime } from "./registry-WOJKAIRI.js";
3
3
  //#region src/chat/plugins/catalog-runtime.ts
4
4
  var catalog_runtime_exports = /* @__PURE__ */ __exportAll({ pluginCatalogRuntime: () => pluginCatalogRuntime });
5
5
  const pluginCatalogRuntime = createPluginCatalogRuntime();
package/dist/cli/chat.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as executeAgentRun, t as createAgentRunner } from "../agent-runner-BTgnxJ7g.js";
1
+ import { n as executeAgentRun, t as createAgentRunner } from "../agent-runner-BZOjoMlZ.js";
2
2
  import { t as loadAppPluginSet } from "../plugin-module-CVvEUSMH.js";
3
3
  import path from "node:path";
4
4
  import { createHash, randomUUID } from "node:crypto";
@@ -100,10 +100,10 @@ async function loadLocalPluginSet() {
100
100
  async function configureLocalChatPlugins(pluginSet) {
101
101
  const [pluginsModule, agentHooksModule, catalogRuntimeModule, validationModule, databaseModule] = await Promise.all([
102
102
  import("../plugins-egKWjgue.js").then((n) => n.o),
103
- import("../agent-hooks-BVttjZvb.js").then((n) => n.t),
104
- import("../catalog-runtime-C2YkfMZz.js").then((n) => n.t),
105
- import("../validation-C8hci6pj.js").then((n) => n.r),
106
- import("../viewer-BOgEy5zC.js").then((n) => n.s)
103
+ import("../agent-hooks-Cqo6ULp6.js").then((n) => n.t),
104
+ import("../catalog-runtime-jazDa-oO.js").then((n) => n.t),
105
+ import("../validation-Dklx_nds.js").then((n) => n.r),
106
+ import("../viewer-B7qDM2DM.js").then((n) => n.s)
107
107
  ]);
108
108
  const resolvedPluginSet = pluginSet === void 0 ? await loadLocalPluginSet() : pluginSet ?? void 0;
109
109
  const plugins = pluginsModule.pluginRuntimeRegistrationsFromPluginSet(resolvedPluginSet);
@@ -155,16 +155,16 @@ async function prepareLocalChatRun(io, pluginSet) {
155
155
  await configureLocalChatPlugins(pluginSet);
156
156
  const { setExperimentalFeatures } = await import("../experimental-Qn9rKLgx.js").then((n) => n.t);
157
157
  setExperimentalFeatures({ subagents: true });
158
- const { setBriefsConfig } = await import("../agent-hooks-BVttjZvb.js").then((n) => n.m);
158
+ const { setBriefsConfig } = await import("../agent-hooks-Cqo6ULp6.js").then((n) => n.m);
159
159
  setBriefsConfig({ enabled: true });
160
- const { runLocalAgentTurn } = await import("../runner-CGyrnIPm.js");
161
- const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-C3BOSmT_.js");
160
+ const { runLocalAgentTurn } = await import("../runner-DojxjGmt.js");
161
+ const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-Cmog7Q3T.js");
162
162
  const { createLocalOAuthState } = await import("../oauth-relay-CdCnu80W.js").then((n) => n.t);
163
- const { createLocalSandboxEgressSignalTransport } = await import("../sandbox-egress-signals-D6F3OZJP.js");
164
- const { bindSpawnAgent } = await import("../spawn-DL9x3T1o.js").then((n) => n.n);
165
- const { createAgentInvocationWorker, routeAgentInvocationWork } = await import("../work-D39OAwP1.js").then((n) => n.a);
163
+ const { createLocalSandboxEgressSignalTransport } = await import("../sandbox-egress-signals-B7azPnsm.js");
164
+ const { bindSpawnAgent } = await import("../spawn-DDJ5z9IC.js").then((n) => n.n);
165
+ const { createAgentInvocationWorker, routeAgentInvocationWork } = await import("../work-D_BBvd4I.js").then((n) => n.a);
166
166
  const { createLocalConversationWork } = await import("../conversation-work-C6y3T5Hx.js");
167
- const { processConversationWork } = await import("../worker-CWiLgCWH.js").then((n) => n.n);
167
+ const { processConversationWork } = await import("../worker-BWdV_5Ys.js").then((n) => n.n);
168
168
  let agentRunner;
169
169
  const localConversationWork = createLocalConversationWork(async (message) => {
170
170
  if (!agentRunner) throw new Error("Local agent runner is not ready");
package/dist/cli/check.js CHANGED
@@ -1,6 +1,6 @@
1
- import { D as JUNIOR_HEARTBEAT_ROUTE, M as LEGACY_JUNIOR_CONVERSATION_WORK_FUNCTION, T as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE } from "../logging-BdZ_mK3q.js";
2
- import { _ as parsePluginManifest, g as parseInlinePluginManifest } from "../registry-XJkXDNK2.js";
3
- import { i as parseSkillFile } from "../skills-C6PqcBPU.js";
1
+ import { D as JUNIOR_HEARTBEAT_ROUTE, M as LEGACY_JUNIOR_CONVERSATION_WORK_FUNCTION, T as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE } from "../logging-CdZ1LQJ7.js";
2
+ import { _ as parsePluginManifest, g as parseInlinePluginManifest } from "../registry-WOJKAIRI.js";
3
+ import { i as parseSkillFile } from "../skills-Zj-9pbSU.js";
4
4
  import path from "node:path";
5
5
  import fs from "node:fs/promises";
6
6
  import { pathToFileURL } from "node:url";
package/dist/cli/main.js CHANGED
@@ -25,10 +25,10 @@ async function runChat(argv, pluginSet) {
25
25
  return await (await import("./chat.js")).runChat(argv, void 0, { pluginSet });
26
26
  }
27
27
  async function runAdmin(argv) {
28
- return await (await import("../admin-C54kvHVC.js")).runAdmin(argv);
28
+ return await (await import("../admin-DHOGoI03.js")).runAdmin(argv);
29
29
  }
30
30
  async function runBriefs(argv) {
31
- return await (await import("../briefs-CKUsv9F1.js")).runBriefs(argv);
31
+ return await (await import("../briefs-C4GogKaB.js")).runBriefs(argv);
32
32
  }
33
33
  function topLevelCommand(argv) {
34
34
  return (argv[0] === "--" ? argv.slice(1) : argv)[0];
@@ -1,7 +1,7 @@
1
- import { d as getDb } from "../viewer-BOgEy5zC.js";
2
- import { n as pluginCatalogRuntime } from "../catalog-runtime-C2YkfMZz.js";
3
- import { d as setPlugins, f as validatePlugins, lt as createPluginLogger } from "../agent-hooks-BVttjZvb.js";
4
- import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "../validation-C8hci6pj.js";
1
+ import { d as getDb } from "../viewer-B7qDM2DM.js";
2
+ import { n as pluginCatalogRuntime } from "../catalog-runtime-jazDa-oO.js";
3
+ import { d as setPlugins, f as validatePlugins, lt as createPluginLogger } from "../agent-hooks-Cqo6ULp6.js";
4
+ import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "../validation-Dklx_nds.js";
5
5
  import { a as pluginRuntimeRegistrationsFromPluginSet, i as pluginCliRegistrationsFromPluginSet, r as pluginCatalogConfigFromPluginSet } from "../plugins-egKWjgue.js";
6
6
  import { t as loadAppPluginSet } from "../plugin-module-CVvEUSMH.js";
7
7
  import { stderr, stdout } from "node:process";
@@ -1,6 +1,6 @@
1
- import { n as pluginCatalogRuntime } from "../catalog-runtime-C2YkfMZz.js";
2
- import { S as disconnectStateAdapter, t as create } from "../profile-2gPzzMib.js";
3
- import { r as resolve } from "../resolve-DhcdtDt6.js";
1
+ import { n as pluginCatalogRuntime } from "../catalog-runtime-jazDa-oO.js";
2
+ import { S as disconnectStateAdapter, t as create } from "../profile-qqt_2di0.js";
3
+ import { r as resolve } from "../resolve-C8VvY0lg.js";
4
4
  //#region src/cli/snapshot-create.ts
5
5
  const DEFAULT_RUNTIME = "node22";
6
6
  const DEFAULT_TIMEOUT_MS = 6e5;
@@ -1,6 +1,6 @@
1
- import { i as getChatConfig } from "../config-C6Uu3Re9.js";
2
- import { t as createJuniorSqlExecutor } from "../executor-CGUukwus.js";
3
- import { t as createPluginCatalogRuntime } from "../registry-XJkXDNK2.js";
1
+ import { i as getChatConfig } from "../config-gype19qQ.js";
2
+ import { t as createJuniorSqlExecutor } from "../executor-C7bsEF-c.js";
3
+ import { t as createPluginCatalogRuntime } from "../registry-WOJKAIRI.js";
4
4
  import { n as pluginCatalogConfigFromEnv, r as pluginCatalogConfigFromPluginSet, t as defineJuniorPlugins } from "../plugins-egKWjgue.js";
5
5
  import { t as loadAppPluginSet } from "../plugin-module-CVvEUSMH.js";
6
6
  import { basename, dirname, join, resolve } from "node:path";
@@ -1,5 +1,5 @@
1
- import { d as logException, g as serializeGenAiAttribute, i as extractGenAiUsageAttributes, m as normalizeGenAiFinishReason, p as logWarn, w as withSpan } from "./logging-BdZ_mK3q.js";
2
- import { a as toCanonicalInputMessage, n as getCurrentConversationPrivacy, o as toCanonicalOutputMessage, s as toGenAiMessagesTraceAttributes } from "./conversation-privacy-CzL47nXs.js";
1
+ import { d as logException, g as serializeGenAiAttribute, i as extractGenAiUsageAttributes, m as normalizeGenAiFinishReason, p as logWarn, w as withSpan } from "./logging-CdZ1LQJ7.js";
2
+ import { a as toCanonicalInputMessage, n as getCurrentConversationPrivacy, o as toCanonicalOutputMessage, s as toGenAiMessagesTraceAttributes } from "./conversation-privacy-BIplVfmz.js";
3
3
  import { calculateCost, completeSimple, getEnvApiKey, getModels, registerApiProvider } from "@earendil-works/pi-ai/compat";
4
4
  import { stream as streamAnthropic, streamSimple as streamSimpleAnthropic } from "@earendil-works/pi-ai/api/anthropic-messages";
5
5
  import { createGatewayProvider } from "@ai-sdk/gateway";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { S as toOptionalTrimmed, o as resolveGatewayModel } from "./client-D51G-Jdg.js";
3
- import { p as logWarn } from "./logging-BdZ_mK3q.js";
2
+ import { S as toOptionalTrimmed, o as resolveGatewayModel } from "./client-Es79bknZ.js";
3
+ import { p as logWarn } from "./logging-CdZ1LQJ7.js";
4
4
  import { l as TURN_REASONING_LEVELS, s as modelProfileSchema, t as DEFAULT_MODEL_PROFILES, u as parseTurnReasoningLevel } from "./model-profile-BwU8mqwD.js";
5
5
  //#region src/chat/slack/emoji.ts
6
6
  const SLACK_EMOJI_NAME_RE = /^(?:[a-z0-9_+-]+)(?:::(?:skin-tone-[2-6]))?$/;
@@ -253,6 +253,7 @@ function readBotConfig(env, functionMaxDurationSeconds) {
253
253
  embeddingModelId: validateEmbeddingModelId(env.AI_EMBEDDING_MODEL) ?? DEFAULT_EMBEDDING_MODEL_ID,
254
254
  loadingMessages: parseLoadingMessages(env.JUNIOR_LOADING_MESSAGES),
255
255
  visionModelId: env.AI_VISION_MODEL === void 0 ? DEFAULT_VISION_MODEL_ID : validateGatewayModelId(env.AI_VISION_MODEL),
256
+ maxAgentDepth: 0,
256
257
  maxSlicesPerTurn: MAX_SLICES_PER_TURN,
257
258
  maxToolCallsPerTurn: MAX_TOOL_CALLS_PER_TURN,
258
259
  maxConsecutiveAutomatedTurns: MAX_CONSECUTIVE_AUTOMATED_TURNS,
@@ -364,6 +365,10 @@ function requirePositiveLimit(name, value) {
364
365
  function setRuntimeLimits(limits) {
365
366
  const bot = chatConfig.bot;
366
367
  if (limits?.contextWindowTokens !== void 0) bot.contextWindowTokens = requirePositiveLimit("contextWindowTokens", limits.contextWindowTokens);
368
+ if (limits?.maxAgentDepth !== void 0) {
369
+ if (!Number.isSafeInteger(limits.maxAgentDepth) || limits.maxAgentDepth < 0) throw new Error("limits.maxAgentDepth must be a non-negative integer");
370
+ bot.maxAgentDepth = limits.maxAgentDepth;
371
+ }
367
372
  if (limits?.maxConsecutiveAutomatedTurns !== void 0) bot.maxConsecutiveAutomatedTurns = requirePositiveLimit("maxConsecutiveAutomatedTurns", limits.maxConsecutiveAutomatedTurns);
368
373
  if (limits?.maxSlicesPerTurn !== void 0) bot.maxSlicesPerTurn = requirePositiveLimit("maxSlicesPerTurn", limits.maxSlicesPerTurn);
369
374
  if (limits?.maxToolCallsPerTurn !== void 0) bot.maxToolCallsPerTurn = requirePositiveLimit("maxToolCallsPerTurn", limits.maxToolCallsPerTurn);