@sentry/junior 0.233.0 → 0.235.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 (58) hide show
  1. package/dist/{agent-hooks-DATy_Hnt.js → agent-hooks-DS7k0ZWY.js} +17 -10
  2. package/dist/{agent-runner-BKOtZjez.js → agent-runner-BlDI1zV2.js} +354 -813
  3. package/dist/api/schema.d.ts +528 -2
  4. package/dist/api/schema.js +4 -4
  5. package/dist/api.js +350 -55
  6. package/dist/{app-xk2-Id1T.d.ts → app-pGsR__aT.d.ts} +1 -1
  7. package/dist/app.d.ts +1 -1
  8. package/dist/app.js +33 -21
  9. package/dist/{briefs-ClOTHmQ-.js → briefs-C3jhszOz.js} +4 -4
  10. package/dist/{catalog-runtime-xFtmw3oA.js → catalog-runtime-B9u_3-GW.js} +1 -1
  11. package/dist/{checkpoint-zkEB448J.js → checkpoint-DLcJ5mKL.js} +7 -7
  12. package/dist/cli/chat.js +13 -13
  13. package/dist/cli/check.js +3 -3
  14. package/dist/cli/main.js +1 -1
  15. package/dist/cli/plugins.js +3 -3
  16. package/dist/cli/snapshot-create.js +3 -3
  17. package/dist/cli/upgrade.js +3 -3
  18. package/dist/{client-CJUZHY9Y.js → client-BSnNHO0R.js} +2 -2
  19. package/dist/{config-XtycpE-i.js → config-Bmw4xTPK.js} +2 -2
  20. package/dist/{conversation-CPjHYOV5.js → conversation-C_aYrISI.js} +1 -0
  21. package/dist/{conversation-privacy-B30pEcsR.js → conversation-privacy-BV2dtba2.js} +1 -1
  22. package/dist/{credential-sync-vufd6gwK.js → credential-sync-CukzQJ1x.js} +13 -13
  23. package/dist/{executor-BGDb_cM-.js → executor-B9ksWZCv.js} +33 -1
  24. package/dist/{images-zuEwjVKU.js → images-CEXcQ0Id.js} +3 -3
  25. package/dist/instrumentation.js +2 -2
  26. package/dist/{job-queue-C5JaRRcE.js → job-queue-CY1L2YRn.js} +1 -1
  27. package/dist/{logging-BS563NYn.js → logging-F--48Q7Q.js} +1 -1
  28. package/dist/nitro.d.ts +1 -1
  29. package/dist/nitro.js +3 -3
  30. package/dist/{oauth-authorization-DF2dSmNh.js → oauth-authorization-LasSG3Qc.js} +1 -1
  31. package/dist/{oauth-callback-server-CW9COQ9L.js → oauth-callback-server-D07ZzVMs.js} +2 -2
  32. package/dist/{pending-auth-8Kmti8S3.js → pending-auth-DrG9Mkje.js} +1 -1
  33. package/dist/{profile-C4_njQYA.js → profile-DZ2DUdd1.js} +4 -4
  34. package/dist/{prompt-3D0sSbTC.js → prompt-BM_5mAU3.js} +1 -1
  35. package/dist/{registry-BhiLWAY6.js → registry-_JLY0x7b.js} +1 -1
  36. package/dist/{resolve-ZDwJ6a3N.js → resolve-Cuoj3MML.js} +2 -2
  37. package/dist/{runner-D1xeORYM.js → runner-BfelmbMv.js} +9 -9
  38. package/dist/{sandbox-egress-signals-Dx1PzQpy.js → sandbox-egress-signals-D5QUIO7Z.js} +1 -1
  39. package/dist/{schema-DuGfOm4u.js → schema-CrdDxGbx.js} +26 -117
  40. package/dist/{skills-CN-ye6on.js → skills-DAegjk5Y.js} +2 -2
  41. package/dist/{spawn-B8KYOBcU.js → spawn-DCfV7zGK.js} +2 -2
  42. package/dist/{task-queue-DPaZtxld.js → task-queue-GcuFtzor.js} +3 -3
  43. package/dist/{task-runner-D23tSETM.js → task-runner-B0-P_3aq.js} +16 -13
  44. package/dist/{thread-state-BbxSiDa9.js → thread-state-TezcEhuH.js} +5 -5
  45. package/dist/{turn-failure-response-c8irQDMB.js → turn-failure-response-Drhj_-t4.js} +8 -8
  46. package/dist/{turn-lifecycle-DSVG3u_p.js → turn-lifecycle-BpIW3zOx.js} +1 -1
  47. package/dist/{turn-session-routing-B2hNxu_N.js → turn-session-routing-Dg8GDgyc.js} +1 -1
  48. package/dist/types-Du-HbEun.js +621 -0
  49. package/dist/{validation-BrLB5qbC.js → validation-DAkYeKDT.js} +1 -1
  50. package/dist/{version-B2rspCmP.js → version-9CB4Z-J4.js} +1 -1
  51. package/dist/version.js +1 -1
  52. package/dist/{web-authorization-CVSTvY_D.js → web-authorization-Cu33voNg.js} +6 -6
  53. package/dist/{web-input-zUQoZMZw.js → web-input-B3k0J7WB.js} +212 -164
  54. package/dist/web-message-id-CVVCTWUb.js +464 -0
  55. package/dist/{work-BXbJVOZI.js → work-PmkvcY9l.js} +7 -7
  56. package/dist/{worker-ClkQ9S9C.js → worker-COcaq2J6.js} +5 -5
  57. package/package.json +5 -5
  58. package/dist/web-message-id-xPI_EFSC.js +0 -239
package/dist/app.js CHANGED
@@ -1,28 +1,29 @@
1
- import { $ as collectEventAutomationMatchKeys, A as requestAttachmentDeletion, An as getConfigDefaults, Bt as removeActiveConversation, C as readPublicArtifact, Cn as createUserTokenStore, Et as clearExpiredConversationLease, Ft as hasRunnableConversationWork, G as readScheduledAutomation, H as listScheduledAutomations, Ht as requestConversationWork, It as listActiveConversationIds, J as scheduledRunId, Jt as hasRunnableConversationWork$1, Kt as CONVERSATION_WORK_STALE_ENQUEUE_MS, L as logScheduledAutomationRunSkipped, M as parseSlackThreadId, Mt as ensureConversationWake, Nt as getConversation, O as collectAttachmentGarbage, Pt as getConversationWorkState, Q as effectiveTaskOutcomes, R as scheduledAutomationRunAttributes, S as publicArtifactHeaders, Sn as slackExternalRefIdSchema, T as lookupSlackUserProfile, U as listScheduledAutomationsForTeam, Wt as stopConversationWork, X as scheduledRunSchema, Xt as isInvalidConversationRecordError, Y as withScheduledAutomationLock, Zt as renderTaskInput, _t as getEventCatalog, a as isExperimentalFeatureEnabled, an as consumeSandboxEgressAuthRequiredSignal, en as resolveSandboxEgressProviderForHost, f as deleteMcpAuthSessionsForUserProvider, fn as startOAuthFlow, i as getExperimentalFeatures, in as clearSandboxEgressSignals, jn as setConfigDefaults, l as executeCredentialedEgressRequest, ln as formatProviderLabel, m as deleteMcpStoredOAuthCredentials, mt as ingestEvent, nn as shouldPropagateSandboxEgressTrace, nt as findMatchingEventAutomations, o as setExperimentalFeatures, on as consumeSandboxEgressPermissionDeniedSignal, p as deleteMcpServerSessionId, pt as processWorkspaceSnapshotJob, q as saveScheduledAutomationInLock, rn as SANDBOX_EGRESS_PROXY_PATH, s as executeAgentRun, sn as parseSandboxEgressCredentialToken, t as createAgentRunner, tn as normalizeSandboxEgressTracePropagationDomains, vt as eventGuidance, w as unpublishedArtifactHeaders, xn as slackEntitySchema, xt as appendAndEnqueueInboundMessage, z as getNextRunAtMs } from "./agent-runner-BKOtZjez.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-BS563NYn.js";
1
+ import { A as requestAttachmentDeletion, At as clearExpiredConversationLease, B as listScheduledAutomations, Bt as listActiveConversationIds, C as isExperimentalFeatureEnabled, Dn as createUserTokenStore, En as slackExternalRefIdSchema, Fn as setConfigDefaults, G as saveScheduledAutomationInLock, It as ensureConversationWake, Jt as stopConversationWork, K as scheduledRunId, Kt as requestConversationWork, Lt as getConversation, M as parseSlackThreadId, O as collectAttachmentGarbage, Pn as getConfigDefaults, Q as collectEventAutomationMatchKeys, Qt as hasRunnableConversationWork$1, R as logScheduledAutomationRunSkipped, Rt as getConversationWorkState, S as getExperimentalFeatures, T as lookupSlackUserProfile, Tn as slackEntitySchema, Tt as appendAndEnqueueInboundMessage, U as readScheduledAutomation, V as listScheduledAutomationsForTeam, Wt as removeActiveConversation, Xt as CONVERSATION_WORK_STALE_ENQUEUE_MS, Z as effectiveTaskOutcomes, _t as ingestEvent, a as executeCredentialedEgressRequest, an as normalizeSandboxEgressTracePropagationDomains, b as unpublishedArtifactHeaders, bt as getEventCatalog, c as deleteMcpAuthSessionsForUserProvider, cn as clearSandboxEgressSignals, dn as parseSandboxEgressCredentialToken, en as isInvalidConversationRecordError, gn as startOAuthFlow, gt as processWorkspaceSnapshotJob, in as resolveSandboxEgressProviderForHost, l as deleteMcpServerSessionId, ln as consumeSandboxEgressAuthRequiredSignal, on as shouldPropagateSandboxEgressTrace, pn as formatProviderLabel, q as withScheduledAutomationLock, r as executeAgentRun, sn as SANDBOX_EGRESS_PROXY_PATH, t as createAgentRunner, tn as renderTaskInput, tt as findMatchingEventAutomations, u as deleteMcpStoredOAuthCredentials, un as consumeSandboxEgressPermissionDeniedSignal, v as publicArtifactHeaders, w as setExperimentalFeatures, xt as eventGuidance, y as readPublicArtifact, z as scheduledAutomationRunAttributes, zt as hasRunnableConversationWork } from "./agent-runner-BlDI1zV2.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-F--48Q7Q.js";
3
3
  import { r as continueTrace } from "./sentry-CgWZM_kV.js";
4
- import { t as JUNIOR_VERSION } from "./version-B2rspCmP.js";
5
- import { a as getChatConfig, f as setBotModelConfig, i as configureFunctionMaxDurationSeconds, m as setSlackReactionConfig, n as botConfig, p as setProfiles, s as getSlackBotToken, u as getSlackReactionConfig } from "./config-XtycpE-i.js";
4
+ import { t as JUNIOR_VERSION } from "./version-9CB4Z-J4.js";
5
+ import { a as getChatConfig, f as setBotModelConfig, i as configureFunctionMaxDurationSeconds, m as setSlackReactionConfig, n as botConfig, p as setProfiles, s as getSlackBotToken, u as getSlackReactionConfig } from "./config-Bmw4xTPK.js";
6
6
  import { _ as slackChannelIdSchema, g as parseSlackUserId, h as parseSlackTeamId, u as parseActorUserId, v as slackTeamIdSchema, x as slackMessageTsSchema, y as slackUserIdSchema } from "./context-0Et9iVSB.js";
7
- import { $t as getConversationStore, Ct as createPluginLogger, F as bindSlackDirectCredentialSubject, G as isDmChannel, I as verifyEventAutomationCredentialSubject, L as verifyScheduledAutomationCredentialSubject, N as bindEventAutomationCredentialSubject, P as bindScheduledAutomationCredentialSubject, Q as readActorIdentity, R as verifySlackDirectCredentialSubject, U as getSlackClient, Vt as resolveRootVisibility, Wt as listConversationAnnotations, X as runWithWorkspaceTeamId, Y as getWorkspaceTeamId, Zt as getConversationEventStore, a as getPluginRoutes, bt as createPluginState, ct as collectEventMatchKeys, d as setPlugins, en as getDb, f as validatePlugins, ft as findMatchingWatches, gt as getDashboardConversationLink, h as setBriefsConfig, i as getPluginApiRoutes, in as withConversationMutationLock, mn as deleteProviderIdentityForSlackUser, mt as takeDueTimerWatches, ot as cancelSubscriptions, rn as withConversationEventLock, tn as getSqlExecutor, u as getPlugins, vt as getDashboardTaskLink, wt as readConversationAccessFromSql, yt as setDashboardConversationLinkOptions } from "./agent-hooks-DATy_Hnt.js";
7
+ import { $ as readActorIdentity, F as bindScheduledAutomationCredentialSubject, Gt as listConversationAnnotations, Ht as resolveRootVisibility, I as bindSlackDirectCredentialSubject, K as isDmChannel, L as verifyEventAutomationCredentialSubject, P as bindEventAutomationCredentialSubject, Qt as getConversationEventStore, R as verifyScheduledAutomationCredentialSubject, Tt as readConversationAccessFromSql, W as getSlackClient, X as getWorkspaceTeamId, Z as runWithWorkspaceTeamId, _t as getDashboardConversationLink, a as getPluginRoutes, an as withConversationMutationLock, bt as setDashboardConversationLinkOptions, d as setPlugins, en as getConversationStore, f as validatePlugins, h as setBriefsConfig, hn as deleteProviderIdentityForSlackUser, ht as takeDueTimerWatches, i as getPluginApiRoutes, in as withConversationEventLock, lt as collectEventMatchKeys, nn as getSqlExecutor, pt as findMatchingWatches, st as cancelSubscriptions, tn as getDb, u as getPlugins, wt as createPluginLogger, xt as createPluginState, yt as getDashboardTaskLink, z as verifySlackDirectCredentialSubject } from "./agent-hooks-DS7k0ZWY.js";
8
8
  import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
9
- import { E as juniorConversations, a as juniorSchedulerRuns, f as juniorAgentBindings, g as juniorConversationBriefs, o as juniorSchedulerTasks, p as juniorAgentInvocations, y as juniorConversationEvents } from "./executor-BGDb_cM-.js";
10
- import { z as annotationCard } from "./conversation-CPjHYOV5.js";
11
- import { n as pluginCatalogRuntime } from "./catalog-runtime-xFtmw3oA.js";
12
- import { X as projectConversationMessages, q as appendConversationMessages } from "./checkpoint-zkEB448J.js";
13
- import { O as withLock$1, w as getStateAdapter } from "./profile-C4_njQYA.js";
14
- import { f as setSandboxResourceConfig, u as getSandboxResourceConfig } from "./resolve-ZDwJ6a3N.js";
15
- 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-C5JaRRcE.js";
16
- import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "./validation-BrLB5qbC.js";
9
+ import { E as juniorConversations, a as juniorSchedulerRuns, f as juniorAgentBindings, g as juniorConversationBriefs, o as juniorSchedulerTasks, p as juniorAgentInvocations, y as juniorConversationEvents } from "./executor-B9ksWZCv.js";
10
+ import { z as annotationCard } from "./conversation-C_aYrISI.js";
11
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-B9u_3-GW.js";
12
+ import { X as projectConversationMessages, q as appendConversationMessages } from "./checkpoint-DLcJ5mKL.js";
13
+ import { O as withLock$1, w as getStateAdapter } from "./profile-DZ2DUdd1.js";
14
+ import { f as setSandboxResourceConfig, u as getSandboxResourceConfig } from "./resolve-Cuoj3MML.js";
15
+ 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-CY1L2YRn.js";
16
+ import { f as getNextRunAtMs, r as scheduledRunSchema } from "./types-Du-HbEun.js";
17
+ import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "./validation-DAkYeKDT.js";
17
18
  import { a as pluginRuntimeRegistrationsFromPluginSet, n as pluginCatalogConfigFromEnv, r as pluginCatalogConfigFromPluginSet, t as defineJuniorPlugins } from "./plugins-egKWjgue.js";
18
- import { A as THREAD_OPTOUT_ACK, C as verifySlackSignature, D as withNormalizedThreadId, E as normalizeIncomingSlackThreadId, F as createVercelAttachmentStorage, L as enqueueAgentDispatch, M as parseContent, N as getThreadStopDecision, O as getAuthPausedConversationTurnId, P as renderSlackObjectCard, R as GET$3, S as runWithSlackInstallation, T as stopSlackThread, a as webActorFromEmail, b as clearSlackPendingReactions, c as getProductionSlackAdapter, g as readViewerAutomationSummary, i as recordWebConversationActivity, j as startProcessingReaction, n as conversationTurnIdForMessage, o as createProductionConversationWorkOptions, s as createProductionSlackWebhookServices, t as appendAndEnqueueWebMessage, v as recordSkippedConversationMessage, w as isSlackMessageStopped, y as buildSlackInboundMessage } from "./web-input-zUQoZMZw.js";
19
- import { O as recordAutomationExecution, _ as markDispatchFailed, a as confirmDispatchMailboxAppend, d as getPluginDispatchProjection, f as isTerminalDispatchStatus, l as getDispatchRecord, o as createOrGetDispatch, p as listPendingDispatchMailboxAppends, s as getDispatchConversationId } from "./task-runner-D23tSETM.js";
20
- import { c as listPendingAgentInvocationMailboxAppends, r as enqueueAgentInvocation } from "./work-BXbJVOZI.js";
21
- import { s as coerceThreadConversationState } from "./thread-state-BbxSiDa9.js";
22
- import { a as GET$4, i as publishAppHomeView, r as GET$5, t as receiveLocalOAuthCredential } from "./credential-sync-vufd6gwK.js";
23
- import { a as registerVercelPluginTaskDevConsumer, n as createVercelPluginTaskCallback, s as queueCallback } from "./task-queue-DPaZtxld.js";
24
- import { t as processConversationWork } from "./worker-ClkQ9S9C.js";
25
- import { t as bindSpawnAgent } from "./spawn-B8KYOBcU.js";
19
+ import { A as THREAD_OPTOUT_ACK, C as verifySlackSignature, D as withNormalizedThreadId, E as normalizeIncomingSlackThreadId, F as createVercelAttachmentStorage, L as enqueueAgentDispatch, M as parseContent, N as getThreadStopDecision, O as getAuthPausedConversationTurnId, P as renderSlackObjectCard, R as GET$3, S as runWithSlackInstallation, T as stopSlackThread, a as webActorFromEmail, b as clearSlackPendingReactions, c as getProductionSlackAdapter, g as readViewerAutomationSummary, i as recordWebConversationActivity, j as startProcessingReaction, n as conversationTurnIdForMessage, o as createProductionConversationWorkOptions, s as createProductionSlackWebhookServices, t as appendAndEnqueueWebMessage, v as recordSkippedConversationMessage, w as isSlackMessageStopped, y as buildSlackInboundMessage } from "./web-input-B3k0J7WB.js";
20
+ import { O as recordAutomationExecution, _ as markDispatchFailed, a as confirmDispatchMailboxAppend, d as getPluginDispatchProjection, f as isTerminalDispatchStatus, l as getDispatchRecord, o as createOrGetDispatch, p as listPendingDispatchMailboxAppends, s as getDispatchConversationId } from "./task-runner-B0-P_3aq.js";
21
+ import { c as listPendingAgentInvocationMailboxAppends, r as enqueueAgentInvocation } from "./work-PmkvcY9l.js";
22
+ import { s as coerceThreadConversationState } from "./thread-state-TezcEhuH.js";
23
+ import { a as GET$4, i as publishAppHomeView, r as GET$5, t as receiveLocalOAuthCredential } from "./credential-sync-CukzQJ1x.js";
24
+ import { a as registerVercelPluginTaskDevConsumer, n as createVercelPluginTaskCallback, s as queueCallback } from "./task-queue-GcuFtzor.js";
25
+ import { t as processConversationWork } from "./worker-COcaq2J6.js";
26
+ import { t as bindSpawnAgent } from "./spawn-DCfV7zGK.js";
26
27
  import { createRequire } from "node:module";
27
28
  import { pathToFileURL } from "node:url";
28
29
  import { Hono } from "hono";
@@ -575,6 +576,15 @@ async function advanceScheduledAutomationAfterRun(db, args) {
575
576
  await withScheduledAutomationLock(db, args.run.taskId, async (tx) => {
576
577
  const current = await readScheduledAutomation(tx, args.run.taskId);
577
578
  if (!current || current.status === "deleted" || current.status === "completed") return;
579
+ if (current.status === "paused") {
580
+ await saveScheduledAutomationInLock(tx, {
581
+ ...current,
582
+ lastRunAtMs: args.run.scheduledForMs,
583
+ statusReason: args.status === "blocked" ? args.errorMessage : current.statusReason,
584
+ updatedAtMs: args.nowMs
585
+ }, current);
586
+ return;
587
+ }
578
588
  if (current.runNowAtMs === args.run.scheduledForMs) {
579
589
  let nextRunAtMs = current.nextRunAtMs;
580
590
  if (args.status !== "blocked" && typeof current.nextRunAtMs === "number" && current.nextRunAtMs <= args.run.scheduledForMs) nextRunAtMs = getNextRunAtMs(current, current.nextRunAtMs, args.nowMs);
@@ -4910,6 +4920,7 @@ function dashboardHostRoutePaths(dashboard, authenticatedRoutes = []) {
4910
4920
  const pagePaths = [
4911
4921
  basePath,
4912
4922
  pagePath("code"),
4923
+ `${pagePath("code")}/*`,
4913
4924
  conversationsPath,
4914
4925
  `${conversationsPath}/*`,
4915
4926
  pagePath("locations"),
@@ -4952,6 +4963,7 @@ function dashboardHostRoutePaths(dashboard, authenticatedRoutes = []) {
4952
4963
  "/api/automations/*",
4953
4964
  "/api/skills",
4954
4965
  "/api/code",
4966
+ "/api/code/*",
4955
4967
  "/api/stats",
4956
4968
  "/api/conversations",
4957
4969
  "/api/conversations/*",
@@ -1,7 +1,7 @@
1
- import { r as completeObject } from "./client-CJUZHY9Y.js";
1
+ import { r as completeObject } from "./client-BSnNHO0R.js";
2
2
  import { r as defaultModelId } from "./model-profile-BwU8mqwD.js";
3
- import { P as briefCodeChangeSchema, R as parseBriefInput, d as conversationDetailReportSchema, p as conversationEventPageSchema } from "./conversation-CPjHYOV5.js";
4
- import { n as briefEntriesFromReportEvents, s as generateBrief, t as BRIEF_PROMPT } from "./prompt-3D0sSbTC.js";
3
+ import { P as briefCodeChangeSchema, R as parseBriefInput, d as conversationDetailReportSchema, p as conversationEventPageSchema } from "./conversation-C_aYrISI.js";
4
+ import { n as briefEntriesFromReportEvents, s as generateBrief, t as BRIEF_PROMPT } from "./prompt-BM_5mAU3.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-XtycpE-i.js").then((n) => n.r);
272
+ const { botConfig } = await import("./config-Bmw4xTPK.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-BhiLWAY6.js";
2
+ import { t as createPluginCatalogRuntime } from "./registry-_JLY0x7b.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();
@@ -1,10 +1,10 @@
1
- import { d as unwrapCurrentInstruction, f as escapeXml, i as completeText, o as resolveGatewayModel } from "./client-CJUZHY9Y.js";
2
- import { d as logException, o as getActiveTraceId, p as logWarn, t as buildTurnFailureResponse, v as setSpanAttributes } from "./logging-BS563NYn.js";
3
- import { n as botConfig } from "./config-XtycpE-i.js";
1
+ import { d as unwrapCurrentInstruction, f as escapeXml, i as completeText, o as resolveGatewayModel } from "./client-BSnNHO0R.js";
2
+ import { d as logException, o as getActiveTraceId, p as logWarn, t as buildTurnFailureResponse, v as setSpanAttributes } from "./logging-F--48Q7Q.js";
3
+ import { n as botConfig } from "./config-Bmw4xTPK.js";
4
4
  import { b as parseSlackMessageTs, f as toStoredSlackActor } from "./context-0Et9iVSB.js";
5
- import { $t as getConversationStore, Jt as authenticationLinkedEvent, Kt as JUNIOR_NATIVE_EVENT_NAMESPACE, Yt as authenticationUnlinkedEvent, Zt as getConversationEventStore, cn as addAgentTurnUsage, nn as createSqlConversationEventStore, on as bindProviderConversation, qt as agentsInstructionsUpdatedEvent, rn as withConversationEventLock, tn as getSqlExecutor } from "./agent-hooks-DATy_Hnt.js";
6
- import { B as messageCardRef, K as agentHistoryItemSchema, et as contextProvenance, nt as instructionProvenanceFor, tt as instructionActors } from "./conversation-CPjHYOV5.js";
7
- import { D as fenceLock, O as withLock, T as MUTATION_LOCK_TTL_MS, k as sleep, w as getStateAdapter } from "./profile-C4_njQYA.js";
5
+ import { Jt as agentsInstructionsUpdatedEvent, Qt as getConversationEventStore, Xt as authenticationUnlinkedEvent, Yt as authenticationLinkedEvent, en as getConversationStore, in as withConversationEventLock, ln as addAgentTurnUsage, nn as getSqlExecutor, qt as JUNIOR_NATIVE_EVENT_NAMESPACE, rn as createSqlConversationEventStore, sn as bindProviderConversation } from "./agent-hooks-DS7k0ZWY.js";
6
+ import { B as messageCardRef, K as agentHistoryItemSchema, et as contextProvenance, nt as instructionProvenanceFor, tt as instructionActors } from "./conversation-C_aYrISI.js";
7
+ import { D as fenceLock, O as withLock, T as MUTATION_LOCK_TTL_MS, k as sleep, w as getStateAdapter } from "./profile-DZ2DUdd1.js";
8
8
  import { isDeepStrictEqual } from "node:util";
9
9
  import { z } from "zod";
10
10
  import { createHash } from "node:crypto";
@@ -2139,4 +2139,4 @@ async function saveDone(args) {
2139
2139
  });
2140
2140
  }
2141
2141
  //#endregion
2142
- export { fallbackShortTitle as $, commitAcceptedReply as A, recordAuthorizationCompleted as B, isToolResultError as C, stripRuntimeTurnContext as D, retainRuntimeTurnContext as E, loadTurnRoute as F, recordToolExecutionStarted as G, recordGuardianActionReviewed as H, openConversationProjection as I, hydrateConversationMessages as J, recordTurnRoute as K, recordAgentsInstructionsUpdated as L, loadConnectedMcpProviders as M, loadConversationProjection as N, trimTrailingAssistantMessages as O, loadProjection as P, resolveConversationTitle as Q, recordAttachmentsDelivered as R, isContinuablePiBoundary as S, normalizeToolNameFromResult as T, recordMcpProviderConnected as U, recordAuthorizationRequested as V, recordSubscribedReplyRoute as W, projectConversationMessages as X, persistConversationMessages as Y, persistConversationMessageSummaries as Z, getTerminalAssistantMessages as _, piMessageFromHistoryItem as _t, completeTurnRecord as a, estimateConversationContextTokens as at, instructionTextForProjection as b, listTurnSummaries as c, markConversationMessage as ct, TurnSliceLimitExceededError as d, turnHasReply as dt, generateShortTitle as et, assertTurnToolCallLimit as f, upsertConversationMessage as ft, getPiMessageRole as g, historyItemFromPiMessage as gt, extractAssistantText as h, getAgentContextInputLimitTokens as ht, abandonTurnRecord as i, createConversationMemoryService as it, commitMessages as j, TURN_CONTEXT_TAG as k, recordTurnSummary as l, normalizeConversationText as lt, isTurnExecutionLimitExceededError as m, getAgentContextCompactionTriggerTokens as mt, loadTurnCheckpoint as n, appendThreadContextMessages as nt, failTurnRecord as o, getConversationMessageSlackTs as ot, buildTurnErrorResponse as p, estimateTextTokens as pt, appendConversationMessages as q, saveTurnCheckpoint as r, buildConversationContext as rt, getTurnRecord as s, isHumanConversationMessage as st, continuableMessages as t, resolveTaskTitle as tt, persistWithRetry as u, recordDeliveredAssistantMessage as ut, getUserMessageInstructionText as v, isToolResultMessage as w, isAssistantMessage as x, hasRuntimeTurnContext as y, recordAuthenticationLinked as z };
2142
+ export { fallbackShortTitle as $, commitAcceptedReply as A, recordAuthorizationCompleted as B, isToolResultError as C, stripRuntimeTurnContext as D, retainRuntimeTurnContext as E, loadTurnRoute as F, recordToolExecutionStarted as G, recordGuardianActionReviewed as H, openConversationProjection as I, hydrateConversationMessages as J, recordTurnRoute as K, recordAgentsInstructionsUpdated as L, loadConnectedMcpProviders as M, loadConversationProjection as N, trimTrailingAssistantMessages as O, loadProjection as P, resolveConversationTitle as Q, recordAttachmentsDelivered as R, isContinuablePiBoundary as S, normalizeToolNameFromResult as T, recordMcpProviderConnected as U, recordAuthorizationRequested as V, recordSubscribedReplyRoute as W, projectConversationMessages as X, persistConversationMessages as Y, persistConversationMessageSummaries as Z, getTerminalAssistantMessages as _, completeTurnRecord as a, getConversationMessageSlackTs as at, instructionTextForProjection as b, listTurnSummaries as c, normalizeConversationText as ct, TurnSliceLimitExceededError as d, upsertConversationMessage as dt, resolveTaskTitle as et, assertTurnToolCallLimit as f, estimateTextTokens as ft, getPiMessageRole as g, piMessageFromHistoryItem as gt, extractAssistantText as h, historyItemFromPiMessage as ht, abandonTurnRecord as i, estimateConversationContextTokens as it, commitMessages as j, TURN_CONTEXT_TAG as k, recordTurnSummary as l, recordDeliveredAssistantMessage as lt, isTurnExecutionLimitExceededError as m, getAgentContextInputLimitTokens as mt, loadTurnCheckpoint as n, buildConversationContext as nt, failTurnRecord as o, isHumanConversationMessage as ot, buildTurnErrorResponse as p, getAgentContextCompactionTriggerTokens as pt, appendConversationMessages as q, saveTurnCheckpoint as r, createConversationMemoryService as rt, getTurnRecord as s, markConversationMessage as st, continuableMessages as t, appendThreadContextMessages as tt, persistWithRetry as u, turnHasReply as ut, getUserMessageInstructionText as v, isToolResultMessage as w, isAssistantMessage as x, hasRuntimeTurnContext as y, recordAuthenticationLinked as z };
package/dist/cli/chat.js CHANGED
@@ -1,4 +1,4 @@
1
- import { s as executeAgentRun, t as createAgentRunner } from "../agent-runner-BKOtZjez.js";
1
+ import { r as executeAgentRun, t as createAgentRunner } from "../agent-runner-BlDI1zV2.js";
2
2
  import { t as loadAppPluginSet } from "../plugin-module-BKGOXca2.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-DATy_Hnt.js").then((n) => n.t),
104
- import("../catalog-runtime-xFtmw3oA.js").then((n) => n.t),
105
- import("../validation-BrLB5qbC.js").then((n) => n.r),
106
- import("../agent-hooks-DATy_Hnt.js").then((n) => n.Xt)
103
+ import("../agent-hooks-DS7k0ZWY.js").then((n) => n.t),
104
+ import("../catalog-runtime-B9u_3-GW.js").then((n) => n.t),
105
+ import("../validation-DAkYeKDT.js").then((n) => n.r),
106
+ import("../agent-hooks-DS7k0ZWY.js").then((n) => n.Zt)
107
107
  ]);
108
108
  const resolvedPluginSet = pluginSet === void 0 ? await loadLocalPluginSet() : pluginSet ?? void 0;
109
109
  const plugins = pluginsModule.pluginRuntimeRegistrationsFromPluginSet(resolvedPluginSet);
@@ -153,18 +153,18 @@ function localDevServerUrl() {
153
153
  async function prepareLocalChatRun(io, pluginSet) {
154
154
  defaultStateAdapterForLocalChat();
155
155
  await configureLocalChatPlugins(pluginSet);
156
- const { setExperimentalFeatures } = await import("../agent-runner-BKOtZjez.js").then((n) => n.r);
156
+ const { setExperimentalFeatures } = await import("../agent-runner-BlDI1zV2.js").then((n) => n.x);
157
157
  setExperimentalFeatures({ subagents: true });
158
- const { setBriefsConfig } = await import("../agent-hooks-DATy_Hnt.js").then((n) => n.m);
158
+ const { setBriefsConfig } = await import("../agent-hooks-DS7k0ZWY.js").then((n) => n.m);
159
159
  setBriefsConfig({ enabled: true });
160
- const { runLocalAgentTurn } = await import("../runner-D1xeORYM.js");
161
- const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-CW9COQ9L.js");
160
+ const { runLocalAgentTurn } = await import("../runner-BfelmbMv.js");
161
+ const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-D07ZzVMs.js");
162
162
  const { createLocalOAuthState } = await import("../oauth-relay-CdCnu80W.js").then((n) => n.t);
163
- const { createLocalSandboxEgressSignalTransport } = await import("../sandbox-egress-signals-Dx1PzQpy.js");
164
- const { bindSpawnAgent } = await import("../spawn-B8KYOBcU.js").then((n) => n.n);
165
- const { createAgentInvocationWorker, routeAgentInvocationWork } = await import("../work-BXbJVOZI.js").then((n) => n.a);
163
+ const { createLocalSandboxEgressSignalTransport } = await import("../sandbox-egress-signals-D5QUIO7Z.js");
164
+ const { bindSpawnAgent } = await import("../spawn-DCfV7zGK.js").then((n) => n.n);
165
+ const { createAgentInvocationWorker, routeAgentInvocationWork } = await import("../work-PmkvcY9l.js").then((n) => n.a);
166
166
  const { createLocalConversationWork } = await import("../conversation-work-C6y3T5Hx.js");
167
- const { processConversationWork } = await import("../worker-ClkQ9S9C.js").then((n) => n.n);
167
+ const { processConversationWork } = await import("../worker-COcaq2J6.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-BS563NYn.js";
2
- import { f as parseInlinePluginManifest, p as parsePluginManifest } from "../registry-BhiLWAY6.js";
3
- import { i as parseSkillFile } from "../skills-CN-ye6on.js";
1
+ import { D as JUNIOR_HEARTBEAT_ROUTE, M as LEGACY_JUNIOR_CONVERSATION_WORK_FUNCTION, T as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE } from "../logging-F--48Q7Q.js";
2
+ import { f as parseInlinePluginManifest, p as parsePluginManifest } from "../registry-_JLY0x7b.js";
3
+ import { i as parseSkillFile } from "../skills-DAegjk5Y.js";
4
4
  import { pathToFileURL } from "node:url";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs/promises";
package/dist/cli/main.js CHANGED
@@ -25,7 +25,7 @@ async function runChat(argv, pluginSet) {
25
25
  return await (await import("./chat.js")).runChat(argv, void 0, { pluginSet });
26
26
  }
27
27
  async function runBriefs(argv) {
28
- return await (await import("../briefs-ClOTHmQ-.js")).runBriefs(argv);
28
+ return await (await import("../briefs-C3jhszOz.js")).runBriefs(argv);
29
29
  }
30
30
  function topLevelCommand(argv) {
31
31
  return (argv[0] === "--" ? argv.slice(1) : argv)[0];
@@ -1,6 +1,6 @@
1
- import { Ct as createPluginLogger, d as setPlugins, en as getDb, f as validatePlugins } from "../agent-hooks-DATy_Hnt.js";
2
- import { n as pluginCatalogRuntime } from "../catalog-runtime-xFtmw3oA.js";
3
- import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "../validation-BrLB5qbC.js";
1
+ import { d as setPlugins, f as validatePlugins, tn as getDb, wt as createPluginLogger } from "../agent-hooks-DS7k0ZWY.js";
2
+ import { n as pluginCatalogRuntime } from "../catalog-runtime-B9u_3-GW.js";
3
+ import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "../validation-DAkYeKDT.js";
4
4
  import { a as pluginRuntimeRegistrationsFromPluginSet, i as pluginCliRegistrationsFromPluginSet, r as pluginCatalogConfigFromPluginSet } from "../plugins-egKWjgue.js";
5
5
  import { t as loadAppPluginSet } from "../plugin-module-BKGOXca2.js";
6
6
  import { stderr, stdout } from "node:process";
@@ -1,6 +1,6 @@
1
- import { n as pluginCatalogRuntime } from "../catalog-runtime-xFtmw3oA.js";
2
- import { S as disconnectStateAdapter, t as create } from "../profile-C4_njQYA.js";
3
- import { r as resolve } from "../resolve-ZDwJ6a3N.js";
1
+ import { n as pluginCatalogRuntime } from "../catalog-runtime-B9u_3-GW.js";
2
+ import { S as disconnectStateAdapter, t as create } from "../profile-DZ2DUdd1.js";
3
+ import { r as resolve } from "../resolve-Cuoj3MML.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 { a as getChatConfig } from "../config-XtycpE-i.js";
2
- import { t as createJuniorSqlExecutor } from "../executor-BGDb_cM-.js";
3
- import { t as createPluginCatalogRuntime } from "../registry-BhiLWAY6.js";
1
+ import { a as getChatConfig } from "../config-Bmw4xTPK.js";
2
+ import { t as createJuniorSqlExecutor } from "../executor-B9ksWZCv.js";
3
+ import { t as createPluginCatalogRuntime } from "../registry-_JLY0x7b.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-BKGOXca2.js";
6
6
  import { fileURLToPath } from "node:url";
@@ -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-BS563NYn.js";
2
- import { a as toCanonicalInputMessage, n as getCurrentConversationPrivacy, o as toCanonicalOutputMessage, s as toGenAiMessagesTraceAttributes } from "./conversation-privacy-B30pEcsR.js";
1
+ import { d as logException, g as serializeGenAiAttribute, i as extractGenAiUsageAttributes, m as normalizeGenAiFinishReason, p as logWarn, w as withSpan } from "./logging-F--48Q7Q.js";
2
+ import { a as toCanonicalInputMessage, n as getCurrentConversationPrivacy, o as toCanonicalOutputMessage, s as toGenAiMessagesTraceAttributes } from "./conversation-privacy-BV2dtba2.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-CJUZHY9Y.js";
3
- import { p as logWarn } from "./logging-BS563NYn.js";
2
+ import { S as toOptionalTrimmed, o as resolveGatewayModel } from "./client-BSnNHO0R.js";
3
+ import { p as logWarn } from "./logging-F--48Q7Q.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]))?$/;
@@ -786,6 +786,7 @@ const conversationEventsQuerySchema = z.object({
786
786
  }).strict();
787
787
  const conversationFeedQuerySchema = z.object({
788
788
  actorEmail: z.string().trim().email().transform((value) => value.toLowerCase()).optional(),
789
+ codeRepositoryId: z.string().uuid().optional(),
789
790
  q: z.string().trim().max(200).optional(),
790
791
  status: z.enum(["active", "archived"]).default("active")
791
792
  }).strict();
@@ -1,4 +1,4 @@
1
- import { p as logWarn } from "./logging-BS563NYn.js";
1
+ import { p as logWarn } from "./logging-F--48Q7Q.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,18 +1,18 @@
1
- import { Cn as createUserTokenStore, T as lookupSlackUserProfile, _ as putMcpStoredOAuthCredentials, d as deleteMcpAuthSession, dn as resolveBaseUrl, ft as getMcpProviderErrorAttributes, g as getMcpStoredOAuthCredentials, h as getMcpAuthSession, ln as formatProviderLabel, u as finalizeMcpAuthorization, un as parseOAuthStatePayload, x as resolvePluginOAuthAccount, yn as postSlackMessage } from "./agent-runner-BKOtZjez.js";
2
- import { f as escapeXml } from "./client-CJUZHY9Y.js";
3
- import { d as logException, h as runBestEffort, p as logWarn } from "./logging-BS563NYn.js";
4
- import { n as botConfig, o as getRuntimeMetadata } from "./config-XtycpE-i.js";
1
+ import { Cn as postSlackMessage, Dn as createUserTokenStore, T as lookupSlackUserProfile, _ as resolvePluginOAuthAccount, d as getMcpAuthSession, f as getMcpStoredOAuthCredentials, hn as resolveBaseUrl, ht as getMcpProviderErrorAttributes, mn as parseOAuthStatePayload, o as finalizeMcpAuthorization, p as putMcpStoredOAuthCredentials, pn as formatProviderLabel, s as deleteMcpAuthSession } from "./agent-runner-BlDI1zV2.js";
2
+ import { f as escapeXml } from "./client-BSnNHO0R.js";
3
+ import { d as logException, h as runBestEffort, p as logWarn } from "./logging-F--48Q7Q.js";
4
+ import { n as botConfig, o as getRuntimeMetadata } from "./config-Bmw4xTPK.js";
5
5
  import { g as parseSlackUserId } from "./context-0Et9iVSB.js";
6
- import { U as getSlackClient, gn as upsertLinkedIdentity, hn as upsertIdentity, tn as getSqlExecutor } from "./agent-hooks-DATy_Hnt.js";
6
+ import { W as getSlackClient, _n as upsertLinkedIdentity, gn as upsertIdentity, nn as getSqlExecutor } from "./agent-hooks-DS7k0ZWY.js";
7
7
  import { i as homeDir } from "./package-discovery-7a9YqLhE.js";
8
- import { n as buildOAuthTokenRequest, r as parseOAuthTokenResponse, u as hasRequiredOAuthScope } from "./registry-BhiLWAY6.js";
9
- import { n as pluginCatalogRuntime } from "./catalog-runtime-xFtmw3oA.js";
10
- import { t as discoverSkills } from "./skills-CN-ye6on.js";
11
- import { B as recordAuthorizationCompleted, s as getTurnRecord, z as recordAuthenticationLinked } from "./checkpoint-zkEB448J.js";
12
- import { E as acquireActiveLock, w as getStateAdapter } from "./profile-C4_njQYA.js";
13
- import { i as getConversationPendingAuth } from "./pending-auth-8Kmti8S3.js";
14
- import { r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-BbxSiDa9.js";
15
- import { n as deleteWebAuthorization, o as wakeAuthorizedTurn, s as wakePausedTurn } from "./web-authorization-CVSTvY_D.js";
8
+ import { n as buildOAuthTokenRequest, r as parseOAuthTokenResponse, u as hasRequiredOAuthScope } from "./registry-_JLY0x7b.js";
9
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-B9u_3-GW.js";
10
+ import { t as discoverSkills } from "./skills-DAegjk5Y.js";
11
+ import { B as recordAuthorizationCompleted, s as getTurnRecord, z as recordAuthenticationLinked } from "./checkpoint-DLcJ5mKL.js";
12
+ import { E as acquireActiveLock, w as getStateAdapter } from "./profile-DZ2DUdd1.js";
13
+ import { i as getConversationPendingAuth } from "./pending-auth-DrG9Mkje.js";
14
+ import { r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-TezcEhuH.js";
15
+ import { n as deleteWebAuthorization, o as wakeAuthorizedTurn, s as wakePausedTurn } from "./web-authorization-Cu33voNg.js";
16
16
  import { n as relayLocalOAuthCallback } from "./oauth-relay-CdCnu80W.js";
17
17
  import path from "node:path";
18
18
  import { z } from "zod";
@@ -1,5 +1,5 @@
1
1
  import { g as startSpanManual } from "./sentry-CgWZM_kV.js";
2
- import "./config-XtycpE-i.js";
2
+ import "./config-Bmw4xTPK.js";
3
3
  import { n as juniorDestinations, r as timestamptz } from "./destinations-BeBiJeEM.js";
4
4
  import { AsyncLocalStorage } from "node:async_hooks";
5
5
  import { getTableColumns, sql } from "drizzle-orm";
@@ -850,6 +850,7 @@ var NeonExecutor = class {
850
850
  connectionString;
851
851
  transactionClient = new AsyncLocalStorage();
852
852
  savepointId = 0;
853
+ isolatedQueryId = 0;
853
854
  constructor(pool, connectionString) {
854
855
  this.pool = pool;
855
856
  this.connectionString = connectionString;
@@ -863,6 +864,21 @@ var NeonExecutor = class {
863
864
  async query(statement, params = []) {
864
865
  return (await this.queryClient().query(statement, [...params])).rows;
865
866
  }
867
+ async queryIsolated(statement, params = []) {
868
+ const client = traceQueries(await this.pool.connect(), {
869
+ connectionString: this.connectionString,
870
+ driver: "neon"
871
+ });
872
+ try {
873
+ return (await client.query({
874
+ name: `junior_isolated_${++this.isolatedQueryId}`,
875
+ text: statement,
876
+ values: [...params]
877
+ })).rows;
878
+ } finally {
879
+ client.release(true);
880
+ }
881
+ }
866
882
  async migrate(config) {
867
883
  await migrate(drizzle(this.queryClient(), { schema: juniorSqlSchema }), config);
868
884
  }
@@ -955,6 +971,7 @@ var PostgresExecutor = class {
955
971
  connectionString;
956
972
  transactionClient = new AsyncLocalStorage();
957
973
  savepointId = 0;
974
+ isolatedQueryId = 0;
958
975
  constructor(pool, connectionString) {
959
976
  this.pool = pool;
960
977
  this.connectionString = connectionString;
@@ -968,6 +985,21 @@ var PostgresExecutor = class {
968
985
  async query(statement, params = []) {
969
986
  return (await this.queryClient().query(statement, [...params])).rows;
970
987
  }
988
+ async queryIsolated(statement, params = []) {
989
+ const client = traceQueries(await this.pool.connect(), {
990
+ connectionString: this.connectionString,
991
+ driver: "postgres"
992
+ });
993
+ try {
994
+ return (await client.query({
995
+ name: `junior_isolated_${++this.isolatedQueryId}`,
996
+ text: statement,
997
+ values: [...params]
998
+ })).rows;
999
+ } finally {
1000
+ client.release(true);
1001
+ }
1002
+ }
971
1003
  async migrate(config) {
972
1004
  await migrate$1(drizzle$1(this.queryClient(), { schema: juniorSqlSchema }), config);
973
1005
  }
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { j as storeAttachment, k as readLiveAttachment } from "./agent-runner-BKOtZjez.js";
3
- import { tn as getSqlExecutor } from "./agent-hooks-DATy_Hnt.js";
4
- import "./conversation-CPjHYOV5.js";
2
+ import { j as storeAttachment, k as readLiveAttachment } from "./agent-runner-BlDI1zV2.js";
3
+ import { nn as getSqlExecutor } from "./agent-hooks-DS7k0ZWY.js";
4
+ import "./conversation-C_aYrISI.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-BS563NYn.js";
1
+ import { N as getDeploymentServiceVersion, P as getDeploymentTelemetryAttributes } from "./logging-F--48Q7Q.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-B30pEcsR.js";
3
+ import { n as getCurrentConversationPrivacy } from "./conversation-privacy-BV2dtba2.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 { a as getChatConfig } from "./config-XtycpE-i.js";
1
+ import { a as getChatConfig } from "./config-Bmw4xTPK.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-B2rspCmP.js";
2
+ import { t as JUNIOR_VERSION } from "./version-9CB4Z-J4.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.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { n as JuniorDashboardOptions } from "./app-xk2-Id1T.js";
1
+ import { n as JuniorDashboardOptions } from "./app-pGsR__aT.js";
2
2
  import { n as JuniorPluginSet } from "./plugins-BT2l4We3.js";
3
3
  //#region src/nitro.d.ts
4
4
  export type JuniorNitroDashboardOptions = JuniorDashboardOptions;
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-BS563NYn.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-F--48Q7Q.js";
2
2
  import { d as resolvePackageDir, t as discoverInstalledPluginPackageContent, u as isValidPackageName } from "./package-discovery-7a9YqLhE.js";
3
- import { o as resolveConversationWorkQueueTopic, t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-C5JaRRcE.js";
3
+ import { o as resolveConversationWorkQueueTopic, t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-CY1L2YRn.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-DPaZtxld.js";
5
+ import { t as PLUGIN_TASK_QUEUE_TOPIC } from "./task-queue-GcuFtzor.js";
6
6
  import { n as loadPluginSetFromModule, r as resolvePluginModule } from "./plugin-module-BKGOXca2.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 { h as extractAssistantText } from "./checkpoint-zkEB448J.js";
1
+ import { h as extractAssistantText } from "./checkpoint-DLcJ5mKL.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 { Cn as createUserTokenStore } from "./agent-runner-BKOtZjez.js";
2
- import { a as GET, n as syncLocalOAuthCredential, r as GET$1 } from "./credential-sync-vufd6gwK.js";
1
+ import { Dn as createUserTokenStore } from "./agent-runner-BlDI1zV2.js";
2
+ import { a as GET, n as syncLocalOAuthCredential, r as GET$1 } from "./credential-sync-CukzQJ1x.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,4 +1,4 @@
1
- import { i as abandonTurnRecord } from "./checkpoint-zkEB448J.js";
1
+ import { i as abandonTurnRecord } from "./checkpoint-DLcJ5mKL.js";
2
2
  //#region src/chat/state/turn-id.ts
3
3
  /** Build a stable turn identifier from a message ID. */
4
4
  function buildDeterministicTurnId(messageId) {
@@ -1,7 +1,7 @@
1
- import { S as toOptionalTrimmed } from "./client-CJUZHY9Y.js";
2
- import { v as setSpanAttributes, y as setSpanStatus } from "./logging-BS563NYn.js";
3
- import { a as getChatConfig } from "./config-XtycpE-i.js";
4
- import { n as pluginCatalogRuntime } from "./catalog-runtime-xFtmw3oA.js";
1
+ import { S as toOptionalTrimmed } from "./client-BSnNHO0R.js";
2
+ import { v as setSpanAttributes, y as setSpanStatus } from "./logging-F--48Q7Q.js";
3
+ import { a as getChatConfig } from "./config-Bmw4xTPK.js";
4
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-B9u_3-GW.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 { I as briefOutcomeStatusSchema, L as conversationBriefSchema, R as parseBriefInput } from "./conversation-CPjHYOV5.js";
1
+ import { I as briefOutcomeStatusSchema, L as conversationBriefSchema, R as parseBriefInput } from "./conversation-C_aYrISI.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-BS563NYn.js";
1
+ import { f as logInfo, p as logWarn, v as setSpanAttributes } from "./logging-F--48Q7Q.js";
2
2
  import { i as credentialUserSubjectId } from "./context-0Et9iVSB.js";
3
3
  import { n as normalizePluginPackageNames, o as pluginRoots, t as discoverInstalledPluginPackageContent } from "./package-discovery-7a9YqLhE.js";
4
4
  import path from "node:path";
@@ -1,5 +1,5 @@
1
- import { v as setSpanAttributes, w as withSpan } from "./logging-BS563NYn.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-C4_njQYA.js";
1
+ import { v as setSpanAttributes, w as withSpan } from "./logging-F--48Q7Q.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-DZ2DUdd1.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-BS563NYn.js";
1
+ import { C as withLogContext, b as setTags, d as logException } from "./logging-F--48Q7Q.js";
2
2
  import { t as credentialContextForActor } from "./context-0Et9iVSB.js";
3
- import { $t as getConversationStore, Zt as getConversationEventStore } from "./agent-hooks-DATy_Hnt.js";
4
- import { V as messageCardText } from "./conversation-CPjHYOV5.js";
5
- import { A as commitAcceptedReply, B as recordAuthorizationCompleted, J as hydrateConversationMessages, P as loadProjection, Y as persistConversationMessages, ct as markConversationMessage, ft as upsertConversationMessage, lt as normalizeConversationText, r as saveTurnCheckpoint, rt as buildConversationContext, u as persistWithRetry, ut as recordDeliveredAssistantMessage } from "./checkpoint-zkEB448J.js";
6
- import { _ as markTurnFailed, r as getAssistantReplyText, t as authorizationId, v as startActiveTurn } from "./oauth-authorization-DF2dSmNh.js";
7
- import { n as scheduleSessionCompletedPluginTasks, t as processPluginTask } from "./task-runner-D23tSETM.js";
8
- import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-DSVG3u_p.js";
9
- import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-BbxSiDa9.js";
10
- import { d as loadPendingMessageCards, i as completeAuthPauseTurn, l as buildDeliveredTurnStatePatch, t as finalizeFailedTurnReplyWithEvent } from "./turn-failure-response-c8irQDMB.js";
3
+ import { Qt as getConversationEventStore, en as getConversationStore } from "./agent-hooks-DS7k0ZWY.js";
4
+ import { V as messageCardText } from "./conversation-C_aYrISI.js";
5
+ import { A as commitAcceptedReply, B as recordAuthorizationCompleted, J as hydrateConversationMessages, P as loadProjection, Y as persistConversationMessages, ct as normalizeConversationText, dt as upsertConversationMessage, lt as recordDeliveredAssistantMessage, nt as buildConversationContext, r as saveTurnCheckpoint, st as markConversationMessage, u as persistWithRetry } from "./checkpoint-DLcJ5mKL.js";
6
+ import { _ as markTurnFailed, r as getAssistantReplyText, t as authorizationId, v as startActiveTurn } from "./oauth-authorization-LasSG3Qc.js";
7
+ import { n as scheduleSessionCompletedPluginTasks, t as processPluginTask } from "./task-runner-B0-P_3aq.js";
8
+ import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-BpIW3zOx.js";
9
+ import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-TezcEhuH.js";
10
+ import { d as loadPendingMessageCards, i as completeAuthPauseTurn, l as buildDeliveredTurnStatePatch, t as finalizeFailedTurnReplyWithEvent } from "./turn-failure-response-Drhj_-t4.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 { cn as sandboxEgressSignalsResponseSchema } from "./agent-runner-BKOtZjez.js";
1
+ import { fn as sandboxEgressSignalsResponseSchema } from "./agent-runner-BlDI1zV2.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;