@sentry/junior 0.243.0 → 0.244.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 (59) hide show
  1. package/dist/{admin-DHOGoI03.js → admin-CF9lQg0M.js} +1 -1
  2. package/dist/{agent-hooks-Cqo6ULp6.js → agent-hooks-Cj_rSeWd.js} +22 -12
  3. package/dist/{agent-invocations-BzRAZ_nj.js → agent-invocations-BO6ddZax.js} +1 -0
  4. package/dist/{agent-runner-BZOjoMlZ.js → agent-runner-DtEtbaOb.js} +48 -24
  5. package/dist/api/schema.d.ts +15 -1
  6. package/dist/api/schema.js +3 -3
  7. package/dist/api.js +23 -22
  8. package/dist/app.js +24 -24
  9. package/dist/{briefs-C4GogKaB.js → briefs-BMzTiGJO.js} +4 -4
  10. package/dist/{catalog-runtime-jazDa-oO.js → catalog-runtime-CpxhLwZG.js} +1 -1
  11. package/dist/cli/chat.js +12 -12
  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-Es79bknZ.js → client-BVaGEb1-.js} +2 -2
  18. package/dist/{config-gype19qQ.js → config-q9xXVN_5.js} +2 -2
  19. package/dist/{conversation-mt3yJ09u.js → conversation-BxvgH64Q.js} +4 -1
  20. package/dist/{conversation-privacy-BIplVfmz.js → conversation-privacy-Dyh_63Ee.js} +1 -1
  21. package/dist/{credential-sync-BY97dkST.js → credential-sync-Bsn-6m16.js} +14 -14
  22. package/dist/{executor-C7bsEF-c.js → executor-DA7eHhmC.js} +3 -3
  23. package/dist/{history-DlsoHsoe.js → history-Nte1oVed.js} +3 -0
  24. package/dist/{images-WmrEAtto.js → images-CvMreau5.js} +3 -3
  25. package/dist/instrumentation.js +2 -2
  26. package/dist/{job-queue-DQDesz8a.js → job-queue-mVyF9jgv.js} +1 -1
  27. package/dist/{logging-CdZ1LQJ7.js → logging-z7_w-KN_.js} +1 -1
  28. package/dist/nitro.js +3 -3
  29. package/dist/{oauth-authorization-Di0KlyoJ.js → oauth-authorization-Db1yGVvG.js} +1 -1
  30. package/dist/{oauth-callback-server-Cmog7Q3T.js → oauth-callback-server-_MfOtSxS.js} +2 -2
  31. package/dist/{pending-auth-CNAlGOyl.js → pending-auth-OndKPW4M.js} +2 -2
  32. package/dist/{profile-qqt_2di0.js → profile-yeKVNECl.js} +4 -4
  33. package/dist/{prompt-D_cg2iqi.js → prompt-CX36ZlbV.js} +1 -1
  34. package/dist/{registry-WOJKAIRI.js → registry-DvzzL8-v.js} +1 -1
  35. package/dist/{resolve-C8VvY0lg.js → resolve-4u5gEU04.js} +2 -2
  36. package/dist/{runner-DojxjGmt.js → runner-Y6A6pww4.js} +10 -10
  37. package/dist/{sandbox-egress-signals-B7azPnsm.js → sandbox-egress-signals-D7AOkuoe.js} +1 -1
  38. package/dist/{schema-nQRsPWSr.js → schema-Dyyi9oRc.js} +6 -5
  39. package/dist/{skills-Zj-9pbSU.js → skills-DFduSvuO.js} +2 -2
  40. package/dist/{spawn-DDJ5z9IC.js → spawn-DYg7jhhR.js} +4 -3
  41. package/dist/{task-queue-CAi-XM8x.js → task-queue-BQ0vnumm.js} +3 -3
  42. package/dist/{task-runner-CIP2asjP.js → task-runner-D4jvUpFV.js} +12 -12
  43. package/dist/{tasks-Qx6Fos_R.js → tasks-DBZAgTx7.js} +10 -10
  44. package/dist/{thread-state-BN_5S1bx.js → thread-state-hj70P2Cp.js} +7 -7
  45. package/dist/{turn-failure-response-B1UW2T7a.js → turn-failure-response-S2pwtR8b.js} +9 -9
  46. package/dist/{turn-lifecycle-BzeE4sVD.js → turn-lifecycle-CNFOMAJq.js} +1 -1
  47. package/dist/{turn-session-routing-DsvU39zW.js → turn-session-routing-1eTgv6ns.js} +1 -1
  48. package/dist/{validation-Dklx_nds.js → validation-DcsBjzdi.js} +1 -1
  49. package/dist/{version-BvG02ZTN.js → version-DVCHJYcY.js} +1 -1
  50. package/dist/version.js +1 -1
  51. package/dist/{viewer-B7qDM2DM.js → viewer-BBnCMR1g.js} +5 -5
  52. package/dist/{web-authorization-Cqv7bP19.js → web-authorization-CTltRLsB.js} +6 -6
  53. package/dist/{web-input-CqnqSfzI.js → web-input-CIsRGF07.js} +26 -26
  54. package/dist/{work-D_BBvd4I.js → work-fje9VXgQ.js} +6 -6
  55. package/dist/{worker-BWdV_5Ys.js → worker-Byd2Et9r.js} +5 -5
  56. package/migrations/0052_agent_invocation_title.sql +1 -0
  57. package/migrations/meta/0052_snapshot.json +3765 -0
  58. package/migrations/meta/_journal.json +7 -0
  59. package/package.json +4 -4
package/dist/cli/chat.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as executeAgentRun, t as createAgentRunner } from "../agent-runner-BZOjoMlZ.js";
1
+ import { n as executeAgentRun, t as createAgentRunner } from "../agent-runner-DtEtbaOb.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-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)
103
+ import("../agent-hooks-Cj_rSeWd.js").then((n) => n.t),
104
+ import("../catalog-runtime-CpxhLwZG.js").then((n) => n.t),
105
+ import("../validation-DcsBjzdi.js").then((n) => n.r),
106
+ import("../viewer-BBnCMR1g.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-Cqo6ULp6.js").then((n) => n.m);
158
+ const { setBriefsConfig } = await import("../agent-hooks-Cj_rSeWd.js").then((n) => n.m);
159
159
  setBriefsConfig({ enabled: true });
160
- const { runLocalAgentTurn } = await import("../runner-DojxjGmt.js");
161
- const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-Cmog7Q3T.js");
160
+ const { runLocalAgentTurn } = await import("../runner-Y6A6pww4.js");
161
+ const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-_MfOtSxS.js");
162
162
  const { createLocalOAuthState } = await import("../oauth-relay-CdCnu80W.js").then((n) => n.t);
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);
163
+ const { createLocalSandboxEgressSignalTransport } = await import("../sandbox-egress-signals-D7AOkuoe.js");
164
+ const { bindSpawnAgent } = await import("../spawn-DYg7jhhR.js").then((n) => n.n);
165
+ const { createAgentInvocationWorker, routeAgentInvocationWork } = await import("../work-fje9VXgQ.js").then((n) => n.a);
166
166
  const { createLocalConversationWork } = await import("../conversation-work-C6y3T5Hx.js");
167
- const { processConversationWork } = await import("../worker-BWdV_5Ys.js").then((n) => n.n);
167
+ const { processConversationWork } = await import("../worker-Byd2Et9r.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-CdZ1LQJ7.js";
2
- import { _ as parsePluginManifest, g as parseInlinePluginManifest } from "../registry-WOJKAIRI.js";
3
- import { i as parseSkillFile } from "../skills-Zj-9pbSU.js";
1
+ import { D as JUNIOR_HEARTBEAT_ROUTE, M as LEGACY_JUNIOR_CONVERSATION_WORK_FUNCTION, T as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE } from "../logging-z7_w-KN_.js";
2
+ import { _ as parsePluginManifest, g as parseInlinePluginManifest } from "../registry-DvzzL8-v.js";
3
+ import { i as parseSkillFile } from "../skills-DFduSvuO.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-DHOGoI03.js")).runAdmin(argv);
28
+ return await (await import("../admin-CF9lQg0M.js")).runAdmin(argv);
29
29
  }
30
30
  async function runBriefs(argv) {
31
- return await (await import("../briefs-C4GogKaB.js")).runBriefs(argv);
31
+ return await (await import("../briefs-BMzTiGJO.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-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";
1
+ import { d as getDb } from "../viewer-BBnCMR1g.js";
2
+ import { n as pluginCatalogRuntime } from "../catalog-runtime-CpxhLwZG.js";
3
+ import { d as setPlugins, f as validatePlugins, lt as createPluginLogger } from "../agent-hooks-Cj_rSeWd.js";
4
+ import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "../validation-DcsBjzdi.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-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";
1
+ import { n as pluginCatalogRuntime } from "../catalog-runtime-CpxhLwZG.js";
2
+ import { S as disconnectStateAdapter, t as create } from "../profile-yeKVNECl.js";
3
+ import { r as resolve } from "../resolve-4u5gEU04.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-gype19qQ.js";
2
- import { t as createJuniorSqlExecutor } from "../executor-C7bsEF-c.js";
3
- import { t as createPluginCatalogRuntime } from "../registry-WOJKAIRI.js";
1
+ import { i as getChatConfig } from "../config-q9xXVN_5.js";
2
+ import { t as createJuniorSqlExecutor } from "../executor-DA7eHhmC.js";
3
+ import { t as createPluginCatalogRuntime } from "../registry-DvzzL8-v.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-CdZ1LQJ7.js";
2
- import { a as toCanonicalInputMessage, n as getCurrentConversationPrivacy, o as toCanonicalOutputMessage, s as toGenAiMessagesTraceAttributes } from "./conversation-privacy-BIplVfmz.js";
1
+ import { d as logException, g as serializeGenAiAttribute, i as extractGenAiUsageAttributes, m as normalizeGenAiFinishReason, p as logWarn, w as withSpan } from "./logging-z7_w-KN_.js";
2
+ import { a as toCanonicalInputMessage, n as getCurrentConversationPrivacy, o as toCanonicalOutputMessage, s as toGenAiMessagesTraceAttributes } from "./conversation-privacy-Dyh_63Ee.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-Es79bknZ.js";
3
- import { p as logWarn } from "./logging-CdZ1LQJ7.js";
2
+ import { S as toOptionalTrimmed, o as resolveGatewayModel } from "./client-BVaGEb1-.js";
3
+ import { p as logWarn } from "./logging-z7_w-KN_.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]))?$/;
@@ -1,4 +1,4 @@
1
- import { a as conversationTurnFailureReasonSchema, i as conversationTurnFailureCodeSchema, m as usageSchema } from "./history-DlsoHsoe.js";
1
+ import { a as conversationTurnFailureReasonSchema, i as conversationTurnFailureCodeSchema, m as usageSchema } from "./history-Nte1oVed.js";
2
2
  import { z } from "zod";
3
3
  import { codeChangeStateSchema, conversationAnnotationInputSchema, conversationEventPresentationSchema, conversationSidebarAnnotationSchema, objectFactFields, objectTypeSchema } from "@sentry/junior-plugin-api";
4
4
  //#region src/chat/automations/card.ts
@@ -623,6 +623,9 @@ const conversationReportSubagentEventDataSchema = z.object({
623
623
  startedAt: z.string().datetime(),
624
624
  childConversationId: z.string().min(1),
625
625
  subagentKind: z.string().min(1),
626
+ agentName: z.string().min(1).optional(),
627
+ task: z.string().min(1).optional(),
628
+ title: z.string().min(1).optional(),
626
629
  parentToolCallId: z.string().min(1).optional(),
627
630
  status: z.enum([
628
631
  "running",
@@ -1,4 +1,4 @@
1
- import { p as logWarn } from "./logging-CdZ1LQJ7.js";
1
+ import { p as logWarn } from "./logging-z7_w-KN_.js";
2
2
  import { AsyncLocalStorage } from "node:async_hooks";
3
3
  //#region src/chat/conversation-privacy.ts
4
4
  const SAFE_METADATA_KEY_LIMIT = 20;
@@ -1,19 +1,19 @@
1
- import { _ as resolvePluginOAuthAccount, cn as formatProviderLabel, d as getMcpAuthSession, f as getMcpStoredOAuthCredentials, fn as createUserTokenStore, ln as parseOAuthStatePayload, lt as getMcpProviderErrorAttributes, o as finalizeMcpAuthorization, p as putMcpStoredOAuthCredentials, s as deleteMcpAuthSession, un as resolveBaseUrl, x as lookupSlackUserProfile } from "./agent-runner-BZOjoMlZ.js";
2
- import { f as escapeXml } from "./client-Es79bknZ.js";
3
- import { d as logException, h as runBestEffort, p as logWarn } from "./logging-CdZ1LQJ7.js";
4
- import { a as getRuntimeMetadata, n as botConfig } from "./config-gype19qQ.js";
1
+ import { _ as resolvePluginOAuthAccount, cn as formatProviderLabel, d as getMcpAuthSession, f as getMcpStoredOAuthCredentials, fn as createUserTokenStore, ln as parseOAuthStatePayload, lt as getMcpProviderErrorAttributes, o as finalizeMcpAuthorization, p as putMcpStoredOAuthCredentials, s as deleteMcpAuthSession, un as resolveBaseUrl, x as lookupSlackUserProfile } from "./agent-runner-DtEtbaOb.js";
2
+ import { f as escapeXml } from "./client-BVaGEb1-.js";
3
+ import { d as logException, h as runBestEffort, p as logWarn } from "./logging-z7_w-KN_.js";
4
+ import { a as getRuntimeMetadata, n as botConfig } from "./config-q9xXVN_5.js";
5
5
  import { f as parseSlackUserId } from "./actor-BTtLaeWy.js";
6
- import { A as upsertIdentity, f as getSqlExecutor, j as upsertLinkedIdentity } from "./viewer-B7qDM2DM.js";
6
+ import { A as upsertIdentity, f as getSqlExecutor, j as upsertLinkedIdentity } from "./viewer-BBnCMR1g.js";
7
7
  import { i as homeDir } from "./package-discovery-BVvSnQBB.js";
8
- import { n as buildOAuthTokenRequest, r as parseOAuthTokenResponse, u as hasRequiredOAuthScope } from "./registry-WOJKAIRI.js";
9
- import { n as pluginCatalogRuntime } from "./catalog-runtime-jazDa-oO.js";
10
- import { t as discoverSkills } from "./skills-Zj-9pbSU.js";
11
- import { Mt as recordAuthorizationCompleted, X as getTurnRecord, jt as recordAuthenticationLinked, z as postSlackMessage } from "./tasks-Qx6Fos_R.js";
12
- import { zt as getSlackClient } from "./agent-hooks-Cqo6ULp6.js";
13
- import { E as acquireActiveLock, w as getStateAdapter } from "./profile-qqt_2di0.js";
14
- import { i as getConversationPendingAuth } from "./pending-auth-CNAlGOyl.js";
15
- import { r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-BN_5S1bx.js";
16
- import { n as deleteWebAuthorization, o as wakeAuthorizedTurn, s as wakePausedTurn } from "./web-authorization-Cqv7bP19.js";
8
+ import { n as buildOAuthTokenRequest, r as parseOAuthTokenResponse, u as hasRequiredOAuthScope } from "./registry-DvzzL8-v.js";
9
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-CpxhLwZG.js";
10
+ import { t as discoverSkills } from "./skills-DFduSvuO.js";
11
+ import { Mt as recordAuthorizationCompleted, X as getTurnRecord, jt as recordAuthenticationLinked, z as postSlackMessage } from "./tasks-DBZAgTx7.js";
12
+ import { zt as getSlackClient } from "./agent-hooks-Cj_rSeWd.js";
13
+ import { E as acquireActiveLock, w as getStateAdapter } from "./profile-yeKVNECl.js";
14
+ import { i as getConversationPendingAuth } from "./pending-auth-OndKPW4M.js";
15
+ import { r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-hj70P2Cp.js";
16
+ import { n as deleteWebAuthorization, o as wakeAuthorizedTurn, s as wakePausedTurn } from "./web-authorization-CTltRLsB.js";
17
17
  import { n as relayLocalOAuthCallback } from "./oauth-relay-CdCnu80W.js";
18
18
  import path from "node:path";
19
19
  import { z } from "zod";
@@ -1,7 +1,7 @@
1
- import { d as logException } from "./logging-CdZ1LQJ7.js";
1
+ import { d as logException } from "./logging-z7_w-KN_.js";
2
2
  import { g as startSpanManual } from "./sentry-CgWZM_kV.js";
3
- import "./config-gype19qQ.js";
4
- import { a as juniorAgentInvocations, c as juniorIdentities, d as juniorDestinations, f as timestamptz, i as juniorAgentBindings, l as juniorUsers, s as juniorConversations } from "./agent-invocations-BzRAZ_nj.js";
3
+ import "./config-q9xXVN_5.js";
4
+ import { a as juniorAgentInvocations, c as juniorIdentities, d as juniorDestinations, f as timestamptz, i as juniorAgentBindings, l as juniorUsers, s as juniorConversations } from "./agent-invocations-BO6ddZax.js";
5
5
  import { AsyncLocalStorage } from "node:async_hooks";
6
6
  import { sql } from "drizzle-orm";
7
7
  import { bigint, boolean, check, date, doublePrecision, foreignKey, index, integer, jsonb, pgTable, primaryKey, text, uniqueIndex, uuid } from "drizzle-orm/pg-core";
@@ -377,6 +377,9 @@ const subagentStartedEventDataSchema = z.object({
377
377
  type: z.literal("subagent_started"),
378
378
  subagentInvocationId: z.string().min(1),
379
379
  subagentKind: z.string().min(1),
380
+ agentName: z.string().min(1).optional(),
381
+ task: z.string().min(1).optional(),
382
+ title: z.string().min(1).optional(),
380
383
  modelId: z.string().min(1).optional(),
381
384
  parentToolCallId: z.string().min(1).optional(),
382
385
  reasoningLevel: z.string().min(1).optional(),
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { D as storeAttachment, T as readLiveAttachment } from "./agent-runner-BZOjoMlZ.js";
3
- import { f as getSqlExecutor } from "./viewer-B7qDM2DM.js";
4
- import "./conversation-mt3yJ09u.js";
2
+ import { D as storeAttachment, T as readLiveAttachment } from "./agent-runner-DtEtbaOb.js";
3
+ import { f as getSqlExecutor } from "./viewer-BBnCMR1g.js";
4
+ import "./conversation-BxvgH64Q.js";
5
5
  //#region src/chat/attachments/images.ts
6
6
  var images_exports = /* @__PURE__ */ __exportAll({
7
7
  decodeInputImages: () => decodeInputImages,
@@ -1,6 +1,6 @@
1
- import { N as getDeploymentServiceVersion, P as getDeploymentTelemetryAttributes } from "./logging-CdZ1LQJ7.js";
1
+ import { N as getDeploymentServiceVersion, P as getDeploymentTelemetryAttributes } from "./logging-z7_w-KN_.js";
2
2
  import { _ as vercelAIIntegration, a as getClient, b as withStreamedSpan, c as init, o as getGlobalScope } from "./sentry-CgWZM_kV.js";
3
- import { n as getCurrentConversationPrivacy } from "./conversation-privacy-BIplVfmz.js";
3
+ import { n as getCurrentConversationPrivacy } from "./conversation-privacy-Dyh_63Ee.js";
4
4
  import { t as consumePrivateTraceResultMarker } from "./private-trace-result-BLvBjy_e.js";
5
5
  //#region src/chat/sentry-payload-filter.ts
6
6
  const PAYLOAD_ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
@@ -1,4 +1,4 @@
1
- import { i as getChatConfig } from "./config-gype19qQ.js";
1
+ import { i as getChatConfig } from "./config-q9xXVN_5.js";
2
2
  import { AsyncLocalStorage } from "node:async_hooks";
3
3
  import { z } from "zod";
4
4
  import { createHash, createHmac, timingSafeEqual } from "node:crypto";
@@ -1,5 +1,5 @@
1
1
  import { d as setTag, f as setUser, h as startSpan, i as getActiveSpan, l as logger, n as captureMessage, p as spanToJSON, s as getTraceData, t as captureException, y as withScope } from "./sentry-CgWZM_kV.js";
2
- import { t as JUNIOR_VERSION } from "./version-BvG02ZTN.js";
2
+ import { t as JUNIOR_VERSION } from "./version-DVCHJYcY.js";
3
3
  import path from "node:path";
4
4
  import { styleText } from "node:util";
5
5
  import { ConfigError, configureSync, getConfig, getLogger } from "@logtape/logtape";
package/dist/nitro.js CHANGED
@@ -1,8 +1,8 @@
1
- import { A as JUNIOR_RETENTION_ROUTE, D as JUNIOR_HEARTBEAT_ROUTE, E as JUNIOR_HEARTBEAT_CRON_SCHEDULE, O as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, T as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE, j as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, k as JUNIOR_RETENTION_CRON_SCHEDULE } from "./logging-CdZ1LQJ7.js";
1
+ import { A as JUNIOR_RETENTION_ROUTE, D as JUNIOR_HEARTBEAT_ROUTE, E as JUNIOR_HEARTBEAT_CRON_SCHEDULE, O as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, T as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE, j as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, k as JUNIOR_RETENTION_CRON_SCHEDULE } from "./logging-z7_w-KN_.js";
2
2
  import { d as resolvePackageDir, t as discoverInstalledPluginPackageContent, u as isValidPackageName } from "./package-discovery-BVvSnQBB.js";
3
- import { o as resolveConversationWorkQueueTopic, t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-DQDesz8a.js";
3
+ import { o as resolveConversationWorkQueueTopic, t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-mVyF9jgv.js";
4
4
  import { a as pluginRuntimeRegistrationsFromPluginSet, r as pluginCatalogConfigFromPluginSet } from "./plugins-egKWjgue.js";
5
- import { t as PLUGIN_TASK_QUEUE_TOPIC } from "./task-queue-CAi-XM8x.js";
5
+ import { t as PLUGIN_TASK_QUEUE_TOPIC } from "./task-queue-BQ0vnumm.js";
6
6
  import { n as loadPluginSetFromModule, r as resolvePluginModule } from "./plugin-module-CVvEUSMH.js";
7
7
  import path from "node:path";
8
8
  import { cpSync, existsSync, mkdirSync, readdirSync, statSync } from "node:fs";
@@ -1,4 +1,4 @@
1
- import { it as extractAssistantText } from "./tasks-Qx6Fos_R.js";
1
+ import { it as extractAssistantText } from "./tasks-DBZAgTx7.js";
2
2
  //#region src/chat/runtime/turn.ts
3
3
  /** Classified Slack turn failure carrying the owning Sentry capture outward. */
4
4
  var ConversationTurnBoundaryError = class extends Error {
@@ -1,5 +1,5 @@
1
- import { fn as createUserTokenStore } from "./agent-runner-BZOjoMlZ.js";
2
- import { a as GET, n as syncLocalOAuthCredential, r as GET$1 } from "./credential-sync-BY97dkST.js";
1
+ import { fn as createUserTokenStore } from "./agent-runner-DtEtbaOb.js";
2
+ import { a as GET, n as syncLocalOAuthCredential, r as GET$1 } from "./credential-sync-Bsn-6m16.js";
3
3
  import { createServer } from "node:http";
4
4
  //#region src/chat/local/oauth-callback-server.ts
5
5
  const LOCAL_OAUTH_TIMEOUT_MS = 6e5;
@@ -1,5 +1,5 @@
1
- import { v as isProviderRetryError } from "./client-Es79bknZ.js";
2
- import { an as estimateTextTokens, q as abandonTurnRecord } from "./tasks-Qx6Fos_R.js";
1
+ import { v as isProviderRetryError } from "./client-BVaGEb1-.js";
2
+ import { an as estimateTextTokens, q as abandonTurnRecord } from "./tasks-DBZAgTx7.js";
3
3
  import { r as isExperimentalFeatureEnabled } from "./experimental-Qn9rKLgx.js";
4
4
  import { z } from "zod";
5
5
  //#region src/chat/state/turn-id.ts
@@ -1,7 +1,7 @@
1
- import { S as toOptionalTrimmed } from "./client-Es79bknZ.js";
2
- import { v as setSpanAttributes, y as setSpanStatus } from "./logging-CdZ1LQJ7.js";
3
- import { i as getChatConfig } from "./config-gype19qQ.js";
4
- import { n as pluginCatalogRuntime } from "./catalog-runtime-jazDa-oO.js";
1
+ import { S as toOptionalTrimmed } from "./client-BVaGEb1-.js";
2
+ import { v as setSpanAttributes, y as setSpanStatus } from "./logging-z7_w-KN_.js";
3
+ import { i as getChatConfig } from "./config-q9xXVN_5.js";
4
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-CpxhLwZG.js";
5
5
  import { createHash } from "node:crypto";
6
6
  import { createMemoryState } from "@chat-adapter/state-memory";
7
7
  import { createRedisState } from "@chat-adapter/state-redis";
@@ -1,4 +1,4 @@
1
- import { B as parseBriefInput, R as briefOutcomeStatusSchema, z as conversationBriefSchema } from "./conversation-mt3yJ09u.js";
1
+ import { B as parseBriefInput, R as briefOutcomeStatusSchema, z as conversationBriefSchema } from "./conversation-BxvgH64Q.js";
2
2
  import { z } from "zod";
3
3
  //#region src/chat/briefs/generate.ts
4
4
  const MAX_INPUT_CHARS = 6e4;
@@ -1,4 +1,4 @@
1
- import { f as logInfo, p as logWarn, v as setSpanAttributes } from "./logging-CdZ1LQJ7.js";
1
+ import { f as logInfo, p as logWarn, v as setSpanAttributes } from "./logging-z7_w-KN_.js";
2
2
  import { o as parseActorUserId } from "./actor-BTtLaeWy.js";
3
3
  import { n as normalizePluginPackageNames, o as pluginRoots, t as discoverInstalledPluginPackageContent } from "./package-discovery-BVvSnQBB.js";
4
4
  import path from "node:path";
@@ -1,5 +1,5 @@
1
- import { v as setSpanAttributes, w as withSpan } from "./logging-CdZ1LQJ7.js";
2
- import { N as SANDBOX_WORKSPACE_ROOT, k as sleep, r as isStale, t as create, u as isSandboxUnavailableError, v as getVercelSandboxCredentials, w as getStateAdapter, x as runNonInteractiveCommand } from "./profile-qqt_2di0.js";
1
+ import { v as setSpanAttributes, w as withSpan } from "./logging-z7_w-KN_.js";
2
+ import { N as SANDBOX_WORKSPACE_ROOT, k as sleep, r as isStale, t as create, u as isSandboxUnavailableError, v as getVercelSandboxCredentials, w as getStateAdapter, x as runNonInteractiveCommand } from "./profile-yeKVNECl.js";
3
3
  import { z } from "zod";
4
4
  import { FileSystem, Sandbox } from "@vercel/sandbox";
5
5
  //#region src/chat/sandbox/resources.ts
@@ -1,13 +1,13 @@
1
- import { C as withLogContext, b as setTags, d as logException } from "./logging-CdZ1LQJ7.js";
2
- import { c as getConversationEventStore, u as getConversationStore } from "./viewer-B7qDM2DM.js";
3
- import { d as credentialContextForActor } from "./registry-WOJKAIRI.js";
4
- import { $ as persistWithRetry, Bt as hydrateConversationMessages, K as saveTurnCheckpoint, Mt as recordAuthorizationCompleted, Tt as loadProjection, Vt as persistConversationMessages, Yt as buildConversationContext, bt as commitAcceptedReply, en as markConversationMessage, in as upsertConversationMessage, nn as recordDeliveredAssistantMessage, tn as normalizeConversationText } from "./tasks-Qx6Fos_R.js";
5
- import { U as messageCardText } from "./conversation-mt3yJ09u.js";
6
- import { _ as markTurnFailed, r as getAssistantReplyText, t as authorizationId, v as startActiveTurn } from "./oauth-authorization-Di0KlyoJ.js";
7
- import { n as scheduleSessionCompletedPluginTasks, t as processPluginTask } from "./task-runner-CIP2asjP.js";
8
- import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-BzeE4sVD.js";
9
- import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-BN_5S1bx.js";
10
- import { d as loadPendingMessageCards, i as completeAuthPauseTurn, l as buildDeliveredTurnStatePatch, t as finalizeFailedTurnReplyWithEvent } from "./turn-failure-response-B1UW2T7a.js";
1
+ import { C as withLogContext, b as setTags, d as logException } from "./logging-z7_w-KN_.js";
2
+ import { c as getConversationEventStore, u as getConversationStore } from "./viewer-BBnCMR1g.js";
3
+ import { d as credentialContextForActor } from "./registry-DvzzL8-v.js";
4
+ import { $ as persistWithRetry, Bt as hydrateConversationMessages, K as saveTurnCheckpoint, Mt as recordAuthorizationCompleted, Tt as loadProjection, Vt as persistConversationMessages, Yt as buildConversationContext, bt as commitAcceptedReply, en as markConversationMessage, in as upsertConversationMessage, nn as recordDeliveredAssistantMessage, tn as normalizeConversationText } from "./tasks-DBZAgTx7.js";
5
+ import { U as messageCardText } from "./conversation-BxvgH64Q.js";
6
+ import { _ as markTurnFailed, r as getAssistantReplyText, t as authorizationId, v as startActiveTurn } from "./oauth-authorization-Db1yGVvG.js";
7
+ import { n as scheduleSessionCompletedPluginTasks, t as processPluginTask } from "./task-runner-D4jvUpFV.js";
8
+ import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-CNFOMAJq.js";
9
+ import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-hj70P2Cp.js";
10
+ import { d as loadPendingMessageCards, i as completeAuthPauseTurn, l as buildDeliveredTurnStatePatch, t as finalizeFailedTurnReplyWithEvent } from "./turn-failure-response-S2pwtR8b.js";
11
11
  import { randomUUID } from "node:crypto";
12
12
  import { createLocalSource, localDestinationSchema } from "@sentry/junior-plugin-api";
13
13
  //#region src/chat/local/runner.ts
@@ -1,4 +1,4 @@
1
- import { sn as sandboxEgressSignalsResponseSchema } from "./agent-runner-BZOjoMlZ.js";
1
+ import { sn as sandboxEgressSignalsResponseSchema } from "./agent-runner-DtEtbaOb.js";
2
2
  //#region src/chat/local/sandbox-egress-signals.ts
3
3
  const SANDBOX_EGRESS_SIGNALS_PATH = "/api/internal/sandbox-egress/signals";
4
4
  const LOCAL_DEV_SERVER_TIMEOUT_MS = 1e3;
@@ -1,5 +1,5 @@
1
- import { r as AGENT_INVOCATION_STATUSES, u as juniorDestinationKindSchema } from "./agent-invocations-BzRAZ_nj.js";
2
- import { E as conversationSummaryReportSchema, n as actorIdentitySchema, w as conversationStatsItemSchema } from "./conversation-mt3yJ09u.js";
1
+ import { r as AGENT_INVOCATION_STATUSES, u as juniorDestinationKindSchema } from "./agent-invocations-BO6ddZax.js";
2
+ import { E as conversationSummaryReportSchema, n as actorIdentitySchema, w as conversationStatsItemSchema } from "./conversation-BxvgH64Q.js";
3
3
  import "./automation-gznOMaQ2.js";
4
4
  import { a as fillUtcHours, c as sumUtcHoursIntoSixHours, i as fillUtcDays } from "./web-message-id-xPI_EFSC.js";
5
5
  import { z } from "zod";
@@ -13,7 +13,7 @@ const apiErrorSchema = z.object({ error: z.string().min(1) }).strict();
13
13
  * One direct child agent of a Conversation, from agent invocation records.
14
14
  *
15
15
  * Viewers who cannot see private content get the status and time, but not the
16
- * name, task, or error.
16
+ * name, task, title, or error.
17
17
  */
18
18
  const conversationChildAgentSchema = z.object({
19
19
  conversationId: z.string().min(1),
@@ -22,15 +22,16 @@ const conversationChildAgentSchema = z.object({
22
22
  redacted: z.literal(true).optional(),
23
23
  status: z.enum(AGENT_INVOCATION_STATUSES),
24
24
  task: z.string().optional(),
25
+ title: z.string().min(1).optional(),
25
26
  updatedAt: z.string().datetime()
26
27
  }).strict().superRefine((data, context) => {
27
28
  if (data.task === void 0 === (data.redacted !== true)) context.addIssue({
28
29
  code: "custom",
29
30
  message: "child agent task must be text or explicitly redacted"
30
31
  });
31
- if (data.redacted && (data.name || data.error)) context.addIssue({
32
+ if (data.redacted && (data.name || data.title || data.error)) context.addIssue({
32
33
  code: "custom",
33
- message: "redacted child agents must not expose a name or error"
34
+ message: "redacted child agents must not expose a name, title, or error"
34
35
  });
35
36
  });
36
37
  /** Direct child agents of one Conversation, newest activity first. */
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { p as logWarn } from "./logging-CdZ1LQJ7.js";
2
+ import { p as logWarn } from "./logging-z7_w-KN_.js";
3
3
  import { s as skillRoots } from "./package-discovery-BVvSnQBB.js";
4
- import { n as pluginCatalogRuntime } from "./catalog-runtime-jazDa-oO.js";
4
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-CpxhLwZG.js";
5
5
  import path from "node:path";
6
6
  import { z } from "zod";
7
7
  import fs from "node:fs/promises";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { gn as toolInvocationDestination, hn as actorFromRun } from "./agent-runner-BZOjoMlZ.js";
3
- import { n as createAndEnqueueAgentInvocation } from "./work-D_BBvd4I.js";
2
+ import { gn as toolInvocationDestination, hn as actorFromRun } from "./agent-runner-DtEtbaOb.js";
3
+ import { n as createAndEnqueueAgentInvocation } from "./work-fje9VXgQ.js";
4
4
  //#region src/chat/agent-invocations/spawn.ts
5
5
  var spawn_exports = /* @__PURE__ */ __exportAll({ bindSpawnAgent: () => bindSpawnAgent });
6
6
  /** Bind a Run's Actor and credentials to new Agent invocations. */
@@ -19,7 +19,8 @@ function bindSpawnAgent(run, options) {
19
19
  input: input.task,
20
20
  parentConversationId: run.conversationId,
21
21
  parentToolCallId: call.toolCallId,
22
- ...input.reasoningLevel ? { reasoningLevel: input.reasoningLevel } : void 0
22
+ ...input.reasoningLevel ? { reasoningLevel: input.reasoningLevel } : void 0,
23
+ ...input.title ? { title: input.title } : void 0
23
24
  }, {
24
25
  ...options,
25
26
  queue
@@ -1,5 +1,5 @@
1
- import { p as logWarn } from "./logging-CdZ1LQJ7.js";
2
- import { c as QUEUE_SIGNATURE_MAX_AGE_MS, d as createVercelQueueClient, l as signQueueMessage, p as runWithTurnRequestDeadline, u as verifyQueueMessage } from "./job-queue-DQDesz8a.js";
1
+ import { p as logWarn } from "./logging-z7_w-KN_.js";
2
+ import { c as QUEUE_SIGNATURE_MAX_AGE_MS, d as createVercelQueueClient, l as signQueueMessage, p as runWithTurnRequestDeadline, u as verifyQueueMessage } from "./job-queue-mVyF9jgv.js";
3
3
  import { z } from "zod";
4
4
  import { createHash } from "node:crypto";
5
5
  import { handleCallback, registerDevConsumer } from "@vercel/queue";
@@ -115,7 +115,7 @@ function pluginTaskCallback() {
115
115
  maxDeliveries: PLUGIN_TASK_MAX_DELIVERIES,
116
116
  onRejected: logPluginTaskQueueMessageRejected,
117
117
  run: async (message) => {
118
- const { processPluginTask } = await import("./task-runner-CIP2asjP.js").then((n) => n.r);
118
+ const { processPluginTask } = await import("./task-runner-D4jvUpFV.js").then((n) => n.r);
119
119
  await processPluginTask(message);
120
120
  },
121
121
  topic: PLUGIN_TASK_QUEUE_TOPIC,
@@ -1,17 +1,17 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { h as runBestEffort, p as logWarn } from "./logging-CdZ1LQJ7.js";
2
+ import { h as runBestEffort, p as logWarn } from "./logging-z7_w-KN_.js";
3
3
  import { g as parseSlackMessageTs } from "./actor-BTtLaeWy.js";
4
- import { C as agentTurnTotalTokens, S as agentTurnCostUsd, d as getDb, r as readActorIdentity, u as getConversationStore } from "./viewer-B7qDM2DM.js";
5
- import { s as juniorConversations } from "./agent-invocations-BzRAZ_nj.js";
6
- import { c as juniorAutomationExecutions } from "./executor-C7bsEF-c.js";
7
- import { p as sameActorIdentity } from "./history-DlsoHsoe.js";
8
- import { p as credentialSubjectSchema } from "./registry-WOJKAIRI.js";
9
- import { A as formatSlackLink, Bt as hydrateConversationMessages, Kt as fallbackShortTitle, L as openSlackDirectMessage, X as getTurnRecord, a as readScheduledAutomation, at as getPiMessageRole, ft as isToolResultError, g as getEventAutomation, gt as stripRuntimeTurnContext, k as escapeSlackMrkdwnText, lt as instructionTextForProjection, mt as normalizeToolNameFromResult, pt as isToolResultMessage, u as blockEventAutomation, z as postSlackMessage } from "./tasks-Qx6Fos_R.js";
10
- import { ct as createPluginModel, it as getDashboardTaskLink, lt as createPluginLogger, ot as createPluginState, p as coreTaskRegistrations, st as createPluginEmbedder, tt as JUNIOR_THREAD_STATE_TTL_MS, u as getPlugins, yt as createPluginConversationEvents } from "./agent-hooks-Cqo6ULp6.js";
11
- import { w as getStateAdapter } from "./profile-qqt_2di0.js";
12
- import { r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-BN_5S1bx.js";
13
- import { t as resolveConversationRouting } from "./turn-session-routing-DsvU39zW.js";
14
- import { i as pluginTaskParamsSchema, o as sendVercelPluginTask, r as pluginTaskId } from "./task-queue-CAi-XM8x.js";
4
+ import { C as agentTurnTotalTokens, S as agentTurnCostUsd, d as getDb, r as readActorIdentity, u as getConversationStore } from "./viewer-BBnCMR1g.js";
5
+ import { s as juniorConversations } from "./agent-invocations-BO6ddZax.js";
6
+ import { c as juniorAutomationExecutions } from "./executor-DA7eHhmC.js";
7
+ import { p as sameActorIdentity } from "./history-Nte1oVed.js";
8
+ import { p as credentialSubjectSchema } from "./registry-DvzzL8-v.js";
9
+ import { A as formatSlackLink, Bt as hydrateConversationMessages, Kt as fallbackShortTitle, L as openSlackDirectMessage, X as getTurnRecord, a as readScheduledAutomation, at as getPiMessageRole, ft as isToolResultError, g as getEventAutomation, gt as stripRuntimeTurnContext, k as escapeSlackMrkdwnText, lt as instructionTextForProjection, mt as normalizeToolNameFromResult, pt as isToolResultMessage, u as blockEventAutomation, z as postSlackMessage } from "./tasks-DBZAgTx7.js";
10
+ import { ct as createPluginModel, it as getDashboardTaskLink, lt as createPluginLogger, ot as createPluginState, p as coreTaskRegistrations, st as createPluginEmbedder, tt as JUNIOR_THREAD_STATE_TTL_MS, u as getPlugins, yt as createPluginConversationEvents } from "./agent-hooks-Cj_rSeWd.js";
11
+ import { w as getStateAdapter } from "./profile-yeKVNECl.js";
12
+ import { r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-hj70P2Cp.js";
13
+ import { t as resolveConversationRouting } from "./turn-session-routing-1eTgv6ns.js";
14
+ import { i as pluginTaskParamsSchema, o as sendVercelPluginTask, r as pluginTaskId } from "./task-queue-BQ0vnumm.js";
15
15
  import { z } from "zod";
16
16
  import { createHash } from "node:crypto";
17
17
  import { and, asc, count, desc, eq, gte, inArray, lte, max, or, sql } from "drizzle-orm";
@@ -1,15 +1,15 @@
1
- import { d as unwrapCurrentInstruction, f as escapeXml, i as completeText, o as resolveGatewayModel } from "./client-Es79bknZ.js";
2
- import { d as logException, o as getActiveTraceId, p as logWarn, s as getLogContextAttributes, t as buildTurnFailureResponse, v as setSpanAttributes } from "./logging-CdZ1LQJ7.js";
1
+ import { d as unwrapCurrentInstruction, f as escapeXml, i as completeText, o as resolveGatewayModel } from "./client-BVaGEb1-.js";
2
+ import { d as logException, o as getActiveTraceId, p as logWarn, s as getLogContextAttributes, t as buildTurnFailureResponse, v as setSpanAttributes } from "./logging-z7_w-KN_.js";
3
3
  import { n as captureMessage } from "./sentry-CgWZM_kV.js";
4
- import { n as botConfig, v as normalizeSlackEmojiName } from "./config-gype19qQ.js";
4
+ import { n as botConfig, v as normalizeSlackEmojiName } from "./config-q9xXVN_5.js";
5
5
  import { c as toStoredSlackActor, f as parseSlackUserId, g as parseSlackMessageTs } from "./actor-BTtLaeWy.js";
6
- import { c as getConversationEventStore, f as getSqlExecutor, m as withConversationEventLock, p as createSqlConversationEventStore, u as getConversationStore, v as startLocationThread, x as addAgentTurnUsage, y as bindProviderConversation } from "./viewer-B7qDM2DM.js";
7
- import { a as juniorSchedulerRuns, o as juniorSchedulerTasks, s as juniorAutomationVersions, u as juniorEventAutomations } from "./executor-C7bsEF-c.js";
8
- import { d as instructionActors, f as instructionProvenanceFor, n as agentHistoryItemSchema, u as contextProvenance } from "./history-DlsoHsoe.js";
9
- import { p as credentialSubjectSchema } from "./registry-WOJKAIRI.js";
10
- import { Ft as SlackActionError, Ht as normalizeSlackConversationId, Jt as agentsInstructionsUpdatedEvent, Wt as withSlackRetries, Xt as authenticationUnlinkedEvent, Yt as authenticationLinkedEvent, n as applyPluginFormatMarkdown, qt as JUNIOR_NATIVE_EVENT_NAMESPACE, zt as getSlackClient } from "./agent-hooks-Cqo6ULp6.js";
11
- import { H as messageCardRef } from "./conversation-mt3yJ09u.js";
12
- import { D as fenceLock, O as withLock, T as MUTATION_LOCK_TTL_MS, k as sleep, w as getStateAdapter } from "./profile-qqt_2di0.js";
6
+ import { c as getConversationEventStore, f as getSqlExecutor, m as withConversationEventLock, p as createSqlConversationEventStore, u as getConversationStore, v as startLocationThread, x as addAgentTurnUsage, y as bindProviderConversation } from "./viewer-BBnCMR1g.js";
7
+ import { a as juniorSchedulerRuns, o as juniorSchedulerTasks, s as juniorAutomationVersions, u as juniorEventAutomations } from "./executor-DA7eHhmC.js";
8
+ import { d as instructionActors, f as instructionProvenanceFor, n as agentHistoryItemSchema, u as contextProvenance } from "./history-Nte1oVed.js";
9
+ import { p as credentialSubjectSchema } from "./registry-DvzzL8-v.js";
10
+ import { Ft as SlackActionError, Ht as normalizeSlackConversationId, Jt as agentsInstructionsUpdatedEvent, Wt as withSlackRetries, Xt as authenticationUnlinkedEvent, Yt as authenticationLinkedEvent, n as applyPluginFormatMarkdown, qt as JUNIOR_NATIVE_EVENT_NAMESPACE, zt as getSlackClient } from "./agent-hooks-Cj_rSeWd.js";
11
+ import { H as messageCardRef } from "./conversation-BxvgH64Q.js";
12
+ import { D as fenceLock, O as withLock, T as MUTATION_LOCK_TTL_MS, k as sleep, w as getStateAdapter } from "./profile-yeKVNECl.js";
13
13
  import { A as eventAutomationSchema, D as scheduledRunSchema, E as scheduledAutomationSchema, S as automationVersionSchema } from "./automation-gznOMaQ2.js";
14
14
  import { isDeepStrictEqual } from "node:util";
15
15
  import { z } from "zod";
@@ -1,10 +1,10 @@
1
- import { I as isRecord, L as toOptionalNumber, R as toOptionalString } from "./logging-CdZ1LQJ7.js";
2
- import { d as getDb } from "./viewer-B7qDM2DM.js";
3
- import { d as juniorDestinations } from "./agent-invocations-BzRAZ_nj.js";
4
- import { d as juniorLocationConfigurations } from "./executor-C7bsEF-c.js";
5
- import { Vt as persistConversationMessages } from "./tasks-Qx6Fos_R.js";
6
- import { tt as JUNIOR_THREAD_STATE_TTL_MS } from "./agent-hooks-Cqo6ULp6.js";
7
- import { w as getStateAdapter } from "./profile-qqt_2di0.js";
1
+ import { I as isRecord, L as toOptionalNumber, R as toOptionalString } from "./logging-z7_w-KN_.js";
2
+ import { d as getDb } from "./viewer-BBnCMR1g.js";
3
+ import { d as juniorDestinations } from "./agent-invocations-BO6ddZax.js";
4
+ import { d as juniorLocationConfigurations } from "./executor-DA7eHhmC.js";
5
+ import { Vt as persistConversationMessages } from "./tasks-DBZAgTx7.js";
6
+ import { tt as JUNIOR_THREAD_STATE_TTL_MS } from "./agent-hooks-Cj_rSeWd.js";
7
+ import { w as getStateAdapter } from "./profile-yeKVNECl.js";
8
8
  import { z } from "zod";
9
9
  import { randomUUID } from "node:crypto";
10
10
  import { and, eq, sql } from "drizzle-orm";
@@ -1,13 +1,13 @@
1
- import { _ as getProviderErrorUserMessage, g as getProviderErrorAttributes, h as findProviderError, p as ProviderError } from "./client-Es79bknZ.js";
2
- import { I as isRecord, t as buildTurnFailureResponse } from "./logging-CdZ1LQJ7.js";
1
+ import { _ as getProviderErrorUserMessage, g as getProviderErrorAttributes, h as findProviderError, p as ProviderError } from "./client-BVaGEb1-.js";
2
+ import { I as isRecord, t as buildTurnFailureResponse } from "./logging-z7_w-KN_.js";
3
3
  import { g as parseSlackMessageTs } from "./actor-BTtLaeWy.js";
4
- import { c as getConversationEventStore, d as getDb } from "./viewer-B7qDM2DM.js";
5
- import { Bt as hydrateConversationMessages, en as markConversationMessage } from "./tasks-Qx6Fos_R.js";
6
- import { At as listConversationAnnotations } from "./agent-hooks-Cqo6ULp6.js";
7
- import { G as removedCardSchema, K as resolveMessageCards, W as readMessageCardRefs } from "./conversation-mt3yJ09u.js";
8
- import { r as clearPendingAuth, u as buildDeterministicTurnId } from "./pending-auth-CNAlGOyl.js";
9
- import { g as markTurnCompleted, h as markTurnClosed } from "./oauth-authorization-Di0KlyoJ.js";
10
- import { o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-BN_5S1bx.js";
4
+ import { c as getConversationEventStore, d as getDb } from "./viewer-BBnCMR1g.js";
5
+ import { Bt as hydrateConversationMessages, en as markConversationMessage } from "./tasks-DBZAgTx7.js";
6
+ import { At as listConversationAnnotations } from "./agent-hooks-Cj_rSeWd.js";
7
+ import { G as removedCardSchema, K as resolveMessageCards, W as readMessageCardRefs } from "./conversation-BxvgH64Q.js";
8
+ import { r as clearPendingAuth, u as buildDeterministicTurnId } from "./pending-auth-OndKPW4M.js";
9
+ import { g as markTurnCompleted, h as markTurnClosed } from "./oauth-authorization-Db1yGVvG.js";
10
+ import { o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-hj70P2Cp.js";
11
11
  //#region src/chat/conversations/pending-cards.ts
12
12
  /** Select undelivered cards and load their latest saved facts. */
13
13
  async function loadPendingMessageCards(conversationId) {
@@ -1,4 +1,4 @@
1
- import { c as getConversationEventStore } from "./viewer-B7qDM2DM.js";
1
+ import { c as getConversationEventStore } from "./viewer-BBnCMR1g.js";
2
2
  //#region src/chat/conversations/turn-lifecycle.ts
3
3
  /** Persist correlated turn lifecycle facts with retry-safe terminal exclusion. */
4
4
  var ConversationTurnLifecycleService = class {
@@ -34,7 +34,7 @@ function slackSourceForDestination(args) {
34
34
  * Reads parent Conversations when this Conversation has no Destination.
35
35
  */
36
36
  async function resolveConversationRouting(args) {
37
- const conversationStore = args.conversationStore ?? (await import("./viewer-B7qDM2DM.js").then((n) => n.s)).getConversationStore();
37
+ const conversationStore = args.conversationStore ?? (await import("./viewer-BBnCMR1g.js").then((n) => n.s)).getConversationStore();
38
38
  const chain = await loadConversationChain(args.conversationId, conversationStore);
39
39
  let destination;
40
40
  let source;
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { n as pluginCatalogRuntime } from "./catalog-runtime-jazDa-oO.js";
2
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-CpxhLwZG.js";
3
3
  import { isDeepStrictEqual } from "node:util";
4
4
  //#region src/chat/plugins/validation.ts
5
5
  var validation_exports = /* @__PURE__ */ __exportAll({