@sentry/junior 0.92.1 → 0.94.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 (31) hide show
  1. package/dist/{agent-hooks-KL7I3ZRC.js → agent-hooks-ZG7IDOIN.js} +5 -5
  2. package/dist/api/people/list.js +3 -3
  3. package/dist/api/people/profile.js +3 -3
  4. package/dist/app.js +60 -48
  5. package/dist/chat/egress/credentialed.d.ts +1 -1
  6. package/dist/chat/pi/client.d.ts +1 -1
  7. package/dist/chat/pi/sdk.d.ts +7 -0
  8. package/dist/chat/sandbox/egress/schemas.d.ts +4 -0
  9. package/dist/chat/sandbox/egress/session.d.ts +2 -2
  10. package/dist/{chunk-H7KUZAMZ.js → chunk-6H4PP63X.js} +2 -2
  11. package/dist/{chunk-ZATRYQLR.js → chunk-7STN2ZSK.js} +1 -1
  12. package/dist/{chunk-Z4FOYQXW.js → chunk-HDNWZMUN.js} +3 -3
  13. package/dist/{chunk-56SIBIVF.js → chunk-KRMANDHI.js} +24 -27
  14. package/dist/{chunk-IWKVXO3F.js → chunk-LE5ANBUZ.js} +2 -2
  15. package/dist/{chunk-PGR4WGZW.js → chunk-LNCREA5Z.js} +2 -2
  16. package/dist/{chunk-O6ZYIHFC.js → chunk-MAVOJ54A.js} +7 -7
  17. package/dist/{chunk-3F54A3YM.js → chunk-NAPITCZ6.js} +12 -10
  18. package/dist/{chunk-NIFONS4W.js → chunk-NFXSLTYG.js} +1 -1
  19. package/dist/{chunk-TF5VLGA7.js → chunk-QGEWC27H.js} +2 -2
  20. package/dist/{chunk-OQQU3SD6.js → chunk-QL66APYJ.js} +3 -3
  21. package/dist/{chunk-OZJXGX4U.js → chunk-TNUUATT7.js} +1 -1
  22. package/dist/{chunk-7K3JALTQ.js → chunk-UUB3D2XI.js} +3 -3
  23. package/dist/{chunk-APIVR44P.js → chunk-YJ4OPVNA.js} +1 -1
  24. package/dist/cli/chat.js +13 -13
  25. package/dist/cli/plugins.js +5 -5
  26. package/dist/cli/snapshot-warmup.js +3 -3
  27. package/dist/cli/upgrade.js +5 -5
  28. package/dist/{db-GCK43OO3.js → db-YDN6AFJH.js} +2 -2
  29. package/dist/reporting.js +8 -8
  30. package/dist/{runner-Y73GZ2VE.js → runner-XAZPJNAQ.js} +8 -8
  31. package/package.json +7 -7
@@ -11,12 +11,12 @@ import {
11
11
  getPlugins,
12
12
  setPlugins,
13
13
  validatePlugins
14
- } from "./chunk-7K3JALTQ.js";
15
- import "./chunk-OZJXGX4U.js";
14
+ } from "./chunk-UUB3D2XI.js";
15
+ import "./chunk-TNUUATT7.js";
16
16
  import "./chunk-G3E7SCME.js";
17
- import "./chunk-ZATRYQLR.js";
18
- import "./chunk-NIFONS4W.js";
19
- import "./chunk-3F54A3YM.js";
17
+ import "./chunk-7STN2ZSK.js";
18
+ import "./chunk-NFXSLTYG.js";
19
+ import "./chunk-NAPITCZ6.js";
20
20
  import "./chunk-YYBX2BD5.js";
21
21
  import "./chunk-GHGPTPBL.js";
22
22
  import "./chunk-S6QKIGRM.js";
@@ -9,9 +9,9 @@ import {
9
9
  reportTime,
10
10
  signals,
11
11
  summaryFromRow
12
- } from "../../chunk-APIVR44P.js";
13
- import "../../chunk-NIFONS4W.js";
14
- import "../../chunk-3F54A3YM.js";
12
+ } from "../../chunk-YJ4OPVNA.js";
13
+ import "../../chunk-NFXSLTYG.js";
14
+ import "../../chunk-NAPITCZ6.js";
15
15
  import "../../chunk-YYBX2BD5.js";
16
16
  import "../../chunk-GHGPTPBL.js";
17
17
  import "../../chunk-S6QKIGRM.js";
@@ -18,9 +18,9 @@ import {
18
18
  statsItems,
19
19
  summaryFromRow,
20
20
  surfaceLabel
21
- } from "../../chunk-APIVR44P.js";
22
- import "../../chunk-NIFONS4W.js";
23
- import "../../chunk-3F54A3YM.js";
21
+ } from "../../chunk-YJ4OPVNA.js";
22
+ import "../../chunk-NFXSLTYG.js";
23
+ import "../../chunk-NAPITCZ6.js";
24
24
  import "../../chunk-YYBX2BD5.js";
25
25
  import "../../chunk-GHGPTPBL.js";
26
26
  import "../../chunk-S6QKIGRM.js";
package/dist/app.js CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  scheduleSessionCompletedPluginTasks,
18
18
  updateConversationStats,
19
19
  upsertConversationMessage
20
- } from "./chunk-O6ZYIHFC.js";
20
+ } from "./chunk-MAVOJ54A.js";
21
21
  import {
22
22
  CONVERSATION_WORK_CHECK_IN_INTERVAL_MS,
23
23
  CONVERSATION_WORK_STALE_ENQUEUE_MS,
@@ -41,7 +41,7 @@ import {
41
41
  requestConversationContinuation,
42
42
  requestConversationWork,
43
43
  startConversationWork
44
- } from "./chunk-TF5VLGA7.js";
44
+ } from "./chunk-QGEWC27H.js";
45
45
  import {
46
46
  getVercelConversationWorkQueue,
47
47
  resolveConversationWorkQueueTopic,
@@ -60,7 +60,7 @@ import {
60
60
  resolveSlackChannelTypeFromMessage,
61
61
  resolveSlackConversationContext,
62
62
  setConversationTitle
63
- } from "./chunk-PGR4WGZW.js";
63
+ } from "./chunk-LNCREA5Z.js";
64
64
  import {
65
65
  validatePluginEgressCredentialHooks,
66
66
  validatePluginRegistrations
@@ -106,7 +106,7 @@ import {
106
106
  shouldEmitDevAgentTrace,
107
107
  shouldPropagateSandboxEgressTrace,
108
108
  startOAuthFlow
109
- } from "./chunk-56SIBIVF.js";
109
+ } from "./chunk-KRMANDHI.js";
110
110
  import {
111
111
  CooperativeTurnYieldError,
112
112
  TurnInputCommitLostError,
@@ -133,12 +133,12 @@ import {
133
133
  persistThreadStateById,
134
134
  persistYieldSessionRecord,
135
135
  startActiveTurn
136
- } from "./chunk-Z4FOYQXW.js";
136
+ } from "./chunk-HDNWZMUN.js";
137
137
  import {
138
138
  JUNIOR_THREAD_STATE_TTL_MS,
139
139
  coerceThreadConversationState
140
140
  } from "./chunk-PFXC67GJ.js";
141
- import "./chunk-H7KUZAMZ.js";
141
+ import "./chunk-6H4PP63X.js";
142
142
  import {
143
143
  buildSlackOutputMessage,
144
144
  escapeSlackMrkdwnText,
@@ -146,7 +146,7 @@ import {
146
146
  normalizeSlackStatusText,
147
147
  splitSlackReplyText,
148
148
  truncateStatusText
149
- } from "./chunk-IWKVXO3F.js";
149
+ } from "./chunk-LE5ANBUZ.js";
150
150
  import {
151
151
  abandonAgentTurnSessionRecord,
152
152
  commitMessages,
@@ -159,7 +159,7 @@ import {
159
159
  loadProjectionWithProvenance,
160
160
  recordAgentTurnSessionSummary,
161
161
  recordAuthorizationCompleted
162
- } from "./chunk-OQQU3SD6.js";
162
+ } from "./chunk-QL66APYJ.js";
163
163
  import {
164
164
  SlackActionError,
165
165
  bindSlackDirectCredentialSubject,
@@ -178,20 +178,20 @@ import {
178
178
  setPlugins,
179
179
  validatePlugins,
180
180
  verifySlackDirectCredentialSubject
181
- } from "./chunk-7K3JALTQ.js";
181
+ } from "./chunk-UUB3D2XI.js";
182
182
  import {
183
183
  createPluginLogger,
184
184
  createPluginState
185
- } from "./chunk-OZJXGX4U.js";
185
+ } from "./chunk-TNUUATT7.js";
186
186
  import "./chunk-G3E7SCME.js";
187
187
  import {
188
188
  acquireActiveLock,
189
189
  getStateAdapter
190
- } from "./chunk-ZATRYQLR.js";
190
+ } from "./chunk-7STN2ZSK.js";
191
191
  import {
192
192
  getConversationStore,
193
193
  getDb
194
- } from "./chunk-NIFONS4W.js";
194
+ } from "./chunk-NFXSLTYG.js";
195
195
  import {
196
196
  FUNCTION_TIMEOUT_BUFFER_SECONDS,
197
197
  botConfig,
@@ -211,7 +211,7 @@ import {
211
211
  stripRuntimeTurnContext,
212
212
  trimTrailingAssistantMessages,
213
213
  unwrapCurrentInstruction
214
- } from "./chunk-3F54A3YM.js";
214
+ } from "./chunk-NAPITCZ6.js";
215
215
  import {
216
216
  parseSlackThreadId,
217
217
  readSlackRawMessageContext,
@@ -3916,24 +3916,28 @@ async function resumeSlackTurn(args) {
3916
3916
  }
3917
3917
  const activeReplyContext = runArgs.replyContext;
3918
3918
  if (!activeReplyContext) {
3919
- throw new Error(
3920
- "Resumed turn requires replyContext.routing.actor.userId"
3921
- );
3922
- }
3923
- const resumeActor = activeReplyContext.routing.actor;
3924
- if (!isUserActor(resumeActor)) {
3925
- throw new Error(
3926
- "Resumed turn requires replyContext.routing.actor.userId"
3927
- );
3919
+ throw new Error("Resumed turn requires replyContext");
3928
3920
  }
3929
3921
  const credentialContext = activeReplyContext.routing.credentialContext;
3930
3922
  if (!credentialContext) {
3931
3923
  throw new Error("Resumed turn requires replyContext.credentialContext");
3932
3924
  }
3933
- if (!("type" in credentialContext.actor) || credentialContext.actor.userId !== resumeActor.userId) {
3934
- throw new Error(
3935
- "Resumed turn credential actor must match replyContext.routing.actor.userId"
3936
- );
3925
+ const routingActor = activeReplyContext.routing.actor;
3926
+ let resumeActor;
3927
+ if ("type" in credentialContext.actor) {
3928
+ if (!isUserActor(routingActor) || credentialContext.actor.userId !== routingActor.userId) {
3929
+ throw new Error(
3930
+ "Resumed turn credential actor must match replyContext.routing.actor.userId"
3931
+ );
3932
+ }
3933
+ resumeActor = routingActor;
3934
+ } else {
3935
+ if (routingActor && (routingActor.platform !== "system" || routingActor.name !== credentialContext.actor.name)) {
3936
+ throw new Error(
3937
+ "Resumed turn system credential actor must match replyContext.routing.actor"
3938
+ );
3939
+ }
3940
+ resumeActor = credentialContext.actor;
3937
3941
  }
3938
3942
  if (runArgs.messageTs) {
3939
3943
  processingReaction = await startSlackProcessingReactionForMessage({
@@ -3975,7 +3979,7 @@ async function resumeSlackTurn(args) {
3975
3979
  deferredPauseKind = "auth";
3976
3980
  deferredAuthInfo = {
3977
3981
  providerDisplayName: outcome.providerDisplayName,
3978
- actorId: resumeActor.userId
3982
+ actorId: isUserActor(resumeActor) ? resumeActor.userId : void 0
3979
3983
  };
3980
3984
  deferredPauseHandler = async () => {
3981
3985
  await onAuthPause({
@@ -4027,7 +4031,7 @@ async function resumeSlackTurn(args) {
4027
4031
  currentUsage: reply.diagnostics.usage,
4028
4032
  destination: replyContext.routing.destination,
4029
4033
  source: replyContext.routing.source,
4030
- actor: replyContext.routing.actor,
4034
+ actor: resumeActor,
4031
4035
  surface: "slack",
4032
4036
  logContext: {
4033
4037
  threadId: replyContext.routing.correlation.threadId,
@@ -9836,7 +9840,7 @@ function createReplyToThread(deps) {
9836
9840
  startedAtMs: turnStartedAtMs,
9837
9841
  state: "running",
9838
9842
  surface: "slack",
9839
- actor,
9843
+ actor: executionActor,
9840
9844
  destination,
9841
9845
  destinationVisibility,
9842
9846
  source,
@@ -11162,19 +11166,32 @@ async function continueSlackAgentRun(payload, options) {
11162
11166
  payload.destination,
11163
11167
  "Slack continuation"
11164
11168
  );
11165
- const actor = await resolveContinuationActor({
11166
- conversationId: payload.conversationId,
11167
- sessionRecordActor: activeSessionRecord.actor,
11168
- teamId: destination.teamId,
11169
- userId: userMessage2.author.userId
11170
- });
11171
- if (!actor) {
11172
- await failStrandedSessionWithFallback({
11169
+ const systemActor = activeSessionRecord.actor?.platform === "system" ? activeSessionRecord.actor : void 0;
11170
+ let actor;
11171
+ let credentialContext;
11172
+ if (systemActor) {
11173
+ credentialContext = { actor: systemActor };
11174
+ } else {
11175
+ actor = await resolveContinuationActor({
11173
11176
  conversationId: payload.conversationId,
11174
- errorMessage: "Stored Slack actor missing for continuation",
11175
- sessionRecord: activeSessionRecord
11177
+ sessionRecordActor: activeSessionRecord.actor,
11178
+ teamId: destination.teamId,
11179
+ userId: userMessage2.author.userId
11176
11180
  });
11177
- return false;
11181
+ if (!actor) {
11182
+ await failStrandedSessionWithFallback({
11183
+ conversationId: payload.conversationId,
11184
+ errorMessage: "Stored Slack actor missing for continuation",
11185
+ sessionRecord: activeSessionRecord
11186
+ });
11187
+ return false;
11188
+ }
11189
+ credentialContext = {
11190
+ actor: {
11191
+ type: "user",
11192
+ userId: actor.userId
11193
+ }
11194
+ };
11178
11195
  }
11179
11196
  if (!activeSessionRecord.source) {
11180
11197
  await failAgentTurnSessionRecord({
@@ -11195,13 +11212,8 @@ async function continueSlackAgentRun(payload, options) {
11195
11212
  ...getTurnUserReplyAttachmentContext(userMessage2)
11196
11213
  },
11197
11214
  routing: {
11198
- credentialContext: {
11199
- actor: {
11200
- type: "user",
11201
- userId: actor.userId
11202
- }
11203
- },
11204
- actor,
11215
+ credentialContext,
11216
+ ...actor ? { actor } : {},
11205
11217
  destination: payload.destination,
11206
11218
  source: activeSessionRecord.source,
11207
11219
  correlation: {
@@ -11209,7 +11221,7 @@ async function continueSlackAgentRun(payload, options) {
11209
11221
  turnId: payload.sessionId,
11210
11222
  channelId: thread.channelId,
11211
11223
  threadTs: thread.threadTs,
11212
- actorId: actor.userId
11224
+ ...actor ? { actorId: actor.userId } : {}
11213
11225
  },
11214
11226
  toolChannelId: artifacts.assistantContextChannelId ?? thread.channelId
11215
11227
  },
@@ -15,7 +15,7 @@ export type CredentialedEgressHttpInterceptor = (input: {
15
15
  }) => Promise<Response | undefined>;
16
16
  /** Runtime dependencies for the credentialed provider forwarding step. */
17
17
  export interface CredentialedEgressDeps {
18
- clearCredentialLease?: (provider: string, grantName: string, credentialContext: SandboxEgressCredentialContext) => Promise<void>;
18
+ clearCredentialLease?: (provider: string, grant: SandboxEgressCredentialLease["grant"], credentialContext: SandboxEgressCredentialContext) => Promise<void>;
19
19
  fetch?: typeof fetch;
20
20
  issueCredentialLease?: (provider: string, selection: SandboxEgressGrantSelection, credentialContext: SandboxEgressCredentialContext) => Promise<SandboxEgressCredentialLease>;
21
21
  interceptHttp?: CredentialedEgressHttpInterceptor;
@@ -1,4 +1,4 @@
1
- import { type Message, type Model, type ThinkingLevel } from "@earendil-works/pi-ai";
1
+ import { type Message, type Model, type ThinkingLevel } from "@/chat/pi/sdk";
2
2
  import type { ZodTypeAny, z } from "zod";
3
3
  export declare const GEN_AI_PROVIDER_NAME: "vercel-ai-gateway";
4
4
  export declare const GEN_AI_SERVER_ADDRESS = "ai-gateway.vercel.sh";
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Local Pi SDK boundary. All Pi package imports used by chat/pi/client.ts
3
+ * are re-exported here so tests can mock a single Junior-owned path instead
4
+ * of Pi's internal subpath layout, which changes across SDK versions.
5
+ */
6
+ export { completeSimple, getEnvApiKey, getModels, registerApiProvider, type Message, type Model, type ThinkingLevel, } from "@earendil-works/pi-ai/compat";
7
+ export { stream as streamAnthropic, streamSimple as streamSimpleAnthropic, } from "@earendil-works/pi-ai/api/anthropic-messages";
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export declare const sandboxEgressGrantSchema: z.ZodObject<{
3
3
  access: z.ZodUnion<readonly [z.ZodLiteral<"read">, z.ZodLiteral<"write">]>;
4
+ leaseScope: z.ZodOptional<z.ZodString>;
4
5
  name: z.ZodString;
5
6
  reason: z.ZodOptional<z.ZodString>;
6
7
  requirements: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -45,6 +46,7 @@ export declare const sandboxEgressCredentialLeaseSchema: z.ZodObject<{
45
46
  }, z.core.$strict>>;
46
47
  grant: z.ZodObject<{
47
48
  access: z.ZodUnion<readonly [z.ZodLiteral<"read">, z.ZodLiteral<"write">]>;
49
+ leaseScope: z.ZodOptional<z.ZodString>;
48
50
  name: z.ZodString;
49
51
  reason: z.ZodOptional<z.ZodString>;
50
52
  requirements: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -64,6 +66,7 @@ export declare const sandboxEgressAuthRequiredSignalSchema: z.ZodObject<{
64
66
  }, z.core.$strict>>;
65
67
  grant: z.ZodObject<{
66
68
  access: z.ZodUnion<readonly [z.ZodLiteral<"read">, z.ZodLiteral<"write">]>;
69
+ leaseScope: z.ZodOptional<z.ZodString>;
67
70
  name: z.ZodString;
68
71
  reason: z.ZodOptional<z.ZodString>;
69
72
  requirements: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -85,6 +88,7 @@ export declare const sandboxEgressPermissionDeniedSignalSchema: z.ZodObject<{
85
88
  acceptedPermissions: z.ZodOptional<z.ZodString>;
86
89
  grant: z.ZodObject<{
87
90
  access: z.ZodUnion<readonly [z.ZodLiteral<"read">, z.ZodLiteral<"write">]>;
91
+ leaseScope: z.ZodOptional<z.ZodString>;
88
92
  name: z.ZodString;
89
93
  reason: z.ZodOptional<z.ZodString>;
90
94
  requirements: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -31,9 +31,9 @@ export declare function setSandboxEgressCredentialLease(context: SandboxEgressCr
31
31
  /**
32
32
  * Load cached credential header transforms for the exact actor/context/grant.
33
33
  */
34
- export declare function getSandboxEgressCredentialLease(provider: string, grantName: string, context: SandboxEgressCredentialContext): Promise<SandboxEgressCredentialLease | undefined>;
34
+ export declare function getSandboxEgressCredentialLease(provider: string, grant: SandboxEgressCredentialLease["grant"], context: SandboxEgressCredentialContext): Promise<SandboxEgressCredentialLease | undefined>;
35
35
  /** Clear a cached lease after the upstream provider rejects its auth headers. */
36
- export declare function clearSandboxEgressCredentialLease(provider: string, grantName: string, context: SandboxEgressCredentialContext): Promise<void>;
36
+ export declare function clearSandboxEgressCredentialLease(provider: string, grant: SandboxEgressCredentialLease["grant"], context: SandboxEgressCredentialContext): Promise<void>;
37
37
  /**
38
38
  * Record that credential issuance needs user authorization for this command.
39
39
  *
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-G3E7SCME.js";
4
4
  import {
5
5
  getStateAdapter
6
- } from "./chunk-ZATRYQLR.js";
6
+ } from "./chunk-7STN2ZSK.js";
7
7
  import {
8
8
  toOptionalTrimmed
9
- } from "./chunk-3F54A3YM.js";
9
+ } from "./chunk-NAPITCZ6.js";
10
10
  import {
11
11
  pluginCatalogRuntime
12
12
  } from "./chunk-BTH37NCU.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getChatConfig
3
- } from "./chunk-3F54A3YM.js";
3
+ } from "./chunk-NAPITCZ6.js";
4
4
 
5
5
  // src/chat/state/adapter.ts
6
6
  import { createMemoryState } from "@chat-adapter/state-memory";
@@ -6,14 +6,14 @@ import {
6
6
  abandonAgentTurnSessionRecord,
7
7
  getAgentTurnSessionRecord,
8
8
  upsertAgentTurnSessionRecord
9
- } from "./chunk-OQQU3SD6.js";
9
+ } from "./chunk-QL66APYJ.js";
10
10
  import {
11
11
  getStateAdapter
12
- } from "./chunk-ZATRYQLR.js";
12
+ } from "./chunk-7STN2ZSK.js";
13
13
  import {
14
14
  getPiMessageRole,
15
15
  trimTrailingAssistantMessages
16
- } from "./chunk-3F54A3YM.js";
16
+ } from "./chunk-NAPITCZ6.js";
17
17
  import {
18
18
  getActiveTraceId,
19
19
  logException
@@ -11,7 +11,7 @@ import {
11
11
  persistRunningSessionRecord,
12
12
  persistTimeoutSessionRecord,
13
13
  persistYieldSessionRecord
14
- } from "./chunk-Z4FOYQXW.js";
14
+ } from "./chunk-HDNWZMUN.js";
15
15
  import {
16
16
  JUNIOR_THREAD_STATE_TTL_MS
17
17
  } from "./chunk-PFXC67GJ.js";
@@ -23,7 +23,7 @@ import {
23
23
  isSnapshotMissingError,
24
24
  resolveRuntimeDependencySnapshot,
25
25
  runNonInteractiveCommand
26
- } from "./chunk-H7KUZAMZ.js";
26
+ } from "./chunk-6H4PP63X.js";
27
27
  import {
28
28
  JUNIOR_PERSONALITY,
29
29
  buildPluginSystemPromptContributions,
@@ -33,7 +33,7 @@ import {
33
33
  formatSlackLink,
34
34
  isNoReplyMarker,
35
35
  stripNoReplyMarker
36
- } from "./chunk-IWKVXO3F.js";
36
+ } from "./chunk-LE5ANBUZ.js";
37
37
  import {
38
38
  instructionActors,
39
39
  instructionProvenanceFor,
@@ -43,7 +43,7 @@ import {
43
43
  recordSubagentEnded,
44
44
  recordSubagentStarted,
45
45
  recordToolExecutionStarted
46
- } from "./chunk-OQQU3SD6.js";
46
+ } from "./chunk-QL66APYJ.js";
47
47
  import {
48
48
  SlackActionError,
49
49
  createPluginHookRunner,
@@ -60,10 +60,10 @@ import {
60
60
  normalizeSlackConversationId,
61
61
  resolveChannelCapabilities,
62
62
  withSlackRetries
63
- } from "./chunk-7K3JALTQ.js";
63
+ } from "./chunk-UUB3D2XI.js";
64
64
  import {
65
65
  createPluginLogger
66
- } from "./chunk-OZJXGX4U.js";
66
+ } from "./chunk-TNUUATT7.js";
67
67
  import {
68
68
  SANDBOX_DATA_ROOT,
69
69
  SANDBOX_SKILLS_ROOT,
@@ -74,11 +74,11 @@ import {
74
74
  import {
75
75
  acquireActiveLock,
76
76
  getStateAdapter
77
- } from "./chunk-ZATRYQLR.js";
77
+ } from "./chunk-7STN2ZSK.js";
78
78
  import {
79
79
  getConversationStore,
80
80
  getDb
81
- } from "./chunk-NIFONS4W.js";
81
+ } from "./chunk-NFXSLTYG.js";
82
82
  import {
83
83
  GEN_AI_PROVIDER_NAME,
84
84
  GEN_AI_SERVER_ADDRESS,
@@ -103,7 +103,7 @@ import {
103
103
  renderCurrentInstruction,
104
104
  resolveGatewayModel,
105
105
  stripRuntimeTurnContext
106
- } from "./chunk-3F54A3YM.js";
106
+ } from "./chunk-NAPITCZ6.js";
107
107
  import {
108
108
  parseSlackThreadId,
109
109
  resolveConversationPrivacy,
@@ -453,7 +453,7 @@ var SkillSandbox = class {
453
453
  // src/chat/pi/traced-stream.ts
454
454
  import {
455
455
  streamSimple
456
- } from "@earendil-works/pi-ai";
456
+ } from "@earendil-works/pi-ai/compat";
457
457
  function attributeModeForPrivacy(conversationPrivacy) {
458
458
  return conversationPrivacy === "public" ? "content" : "metadata";
459
459
  }
@@ -7327,7 +7327,7 @@ function createStateAdvisorSessionStore() {
7327
7327
 
7328
7328
  // src/chat/tools/advisor/tool.ts
7329
7329
  import { z as z33 } from "zod";
7330
- var ADVISOR_TOOL_DESCRIPTION = "Second-opinion advisor for hard technical work. Call when you reach a consequential workflow moment: after enough exploration to frame a non-obvious plan; before a non-trivial code change or broad refactor; after repeated failures or when requirements or next steps feel ambiguous or risky; and when verifying a complex change before declaring it done, opening a PR, or reporting results. Ask a focused question and pass curated context: exact evidence, constraints, relevant code snippets, command output, diffs, current plan, and alternatives considered. The advisor has its own history, does not automatically receive the parent transcript, and may use read-only tools to verify. Follow up only with new evidence or changed constraints. Do not use for greetings, simple deterministic edits, routine formatting, or when fresh output makes the next action obvious.";
7330
+ var ADVISOR_TOOL_DESCRIPTION = "High-reasoning technical advisor for planning and reviewing non-trivial work. Use it at two high-leverage checkpoints: (1) after enough investigation to understand the problem, but before implementation, to challenge the proposed approach, architecture, risks, alternatives, and verification plan; and (2) after implementation and initial validation, but before finalizing, committing, opening a PR, or reporting completion, to review the diff and results for correctness, regressions, omissions, and insufficient testing. Also consult it when requirements remain ambiguous, risk is unusually high, or repeated attempts have failed. Ask a focused question and provide self-contained, curated context such as requirements, exact evidence, constraints, relevant code, command output, proposed plan, alternatives considered, diff, and validation results. The advisor does not automatically receive the parent transcript and may use read-only tools to verify supplied context. For follow-ups, include new evidence, changes made, or the specific unresolved concern. Do not use it for greetings, routine formatting, simple deterministic edits, or as a substitute for direct investigation and validation.";
7331
7331
  var ADVISOR_SYSTEM_PROMPT = [
7332
7332
  "You are a senior technical advisor for the executor.",
7333
7333
  "Analyze the executor-supplied context deeply. Use read-only tools when direct inspection or verification would materially improve the advice.",
@@ -8079,7 +8079,7 @@ function createWebFetchTool(hooks, options = {}) {
8079
8079
  import { z as z35 } from "zod";
8080
8080
  import { generateText } from "ai";
8081
8081
  import { createGatewayProvider } from "@ai-sdk/gateway";
8082
- import { getModel } from "@earendil-works/pi-ai";
8082
+ import { getModel } from "@earendil-works/pi-ai/compat";
8083
8083
  var SEARCH_TIMEOUT_MS = 6e4;
8084
8084
  var MAX_RESULTS2 = 5;
8085
8085
  var DEFAULT_SEARCH_MODEL = getModel("vercel-ai-gateway", "openai/gpt-5.4").id;
@@ -9726,10 +9726,11 @@ var SANDBOX_EGRESS_AUTH_SIGNAL_PREFIX = "sandbox-egress-auth-required";
9726
9726
  var SANDBOX_EGRESS_PERMISSION_SIGNAL_PREFIX = "sandbox-egress-permission-denied";
9727
9727
  var SANDBOX_EGRESS_LEASE_PREFIX = "sandbox-egress-lease";
9728
9728
  var DEFAULT_SESSION_TTL_MS = 30 * 60 * 1e3;
9729
- function leaseKey(provider, grantName, context) {
9729
+ function leaseKey(provider, grant, context) {
9730
9730
  const actor = context.credentials.actor;
9731
9731
  const actorKey = "type" in actor ? `user:${actor.userId}` : `system:${actor.name}`;
9732
- return `${SANDBOX_EGRESS_LEASE_PREFIX}:${provider}:${grantName}:${actorKey}:${context.egressId}:${context.contextId}`;
9732
+ const grantKey = grant.leaseScope ? `${grant.name}:${grant.leaseScope}` : grant.name;
9733
+ return `${SANDBOX_EGRESS_LEASE_PREFIX}:${provider}:${grantKey}:${actorKey}:${context.egressId}:${context.contextId}`;
9733
9734
  }
9734
9735
  function authSignalKey(egressId, access) {
9735
9736
  return `${SANDBOX_EGRESS_AUTH_SIGNAL_PREFIX}:${egressId}:${access}`;
@@ -9830,21 +9831,17 @@ async function setSandboxEgressCredentialLease(context, lease) {
9830
9831
  );
9831
9832
  const state = getStateAdapter();
9832
9833
  await state.connect();
9833
- await state.set(
9834
- leaseKey(lease.provider, lease.grant.name, context),
9835
- lease,
9836
- ttlMs2
9837
- );
9834
+ await state.set(leaseKey(lease.provider, lease.grant, context), lease, ttlMs2);
9838
9835
  }
9839
- async function getSandboxEgressCredentialLease(provider, grantName, context) {
9836
+ async function getSandboxEgressCredentialLease(provider, grant, context) {
9840
9837
  const state = getStateAdapter();
9841
9838
  await state.connect();
9842
- return parseLease(await state.get(leaseKey(provider, grantName, context)));
9839
+ return parseLease(await state.get(leaseKey(provider, grant, context)));
9843
9840
  }
9844
- async function clearSandboxEgressCredentialLease(provider, grantName, context) {
9841
+ async function clearSandboxEgressCredentialLease(provider, grant, context) {
9845
9842
  const state = getStateAdapter();
9846
9843
  await state.connect();
9847
- await state.delete(leaseKey(provider, grantName, context));
9844
+ await state.delete(leaseKey(provider, grant, context));
9848
9845
  }
9849
9846
  async function setSandboxEgressAuthRequiredSignal(context, signal) {
9850
9847
  const ttlMs2 = Math.max(1, context.expiresAtMs - Date.now());
@@ -12494,7 +12491,7 @@ async function sandboxEgressCredentialLease(provider, selection, context) {
12494
12491
  const { grant } = selection;
12495
12492
  const cached = await getSandboxEgressCredentialLease(
12496
12493
  provider,
12497
- grant.name,
12494
+ grant,
12498
12495
  context
12499
12496
  );
12500
12497
  if (cached) {
@@ -13096,7 +13093,7 @@ async function executeCredentialedEgressRequest(input) {
13096
13093
  if (!isEgressAuthRequired(error)) {
13097
13094
  throw error;
13098
13095
  }
13099
- await clearCredentialLease(provider, lease.grant.name, credentialContext);
13096
+ await clearCredentialLease(provider, lease.grant, credentialContext);
13100
13097
  await recordAuthRequired({
13101
13098
  credentialContext,
13102
13099
  provider,
@@ -13153,7 +13150,7 @@ async function executeCredentialedEgressRequest(input) {
13153
13150
  upstream.status === UPSTREAM_TOKEN_REJECTION_STATUS ? "Sandbox egress upstream auth rejected injected credential" : "Sandbox egress upstream permission denied"
13154
13151
  );
13155
13152
  if (upstream.status === UPSTREAM_TOKEN_REJECTION_STATUS) {
13156
- await clearCredentialLease(provider, lease.grant.name, credentialContext);
13153
+ await clearCredentialLease(provider, lease.grant, credentialContext);
13157
13154
  await recordAuthRequired({
13158
13155
  credentialContext,
13159
13156
  provider,
@@ -13169,7 +13166,7 @@ async function executeCredentialedEgressRequest(input) {
13169
13166
  `
13170
13167
  });
13171
13168
  } else {
13172
- await clearCredentialLease(provider, lease.grant.name, credentialContext);
13169
+ await clearCredentialLease(provider, lease.grant, credentialContext);
13173
13170
  await recordPermissionDenied({
13174
13171
  credentialContext,
13175
13172
  provider,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getInterruptionMarker
3
- } from "./chunk-OQQU3SD6.js";
3
+ } from "./chunk-QL66APYJ.js";
4
4
  import {
5
5
  SANDBOX_DATA_ROOT,
6
6
  SANDBOX_WORKSPACE_ROOT,
@@ -10,7 +10,7 @@ import {
10
10
  TURN_CONTEXT_TAG,
11
11
  botConfig,
12
12
  escapeXml
13
- } from "./chunk-3F54A3YM.js";
13
+ } from "./chunk-NAPITCZ6.js";
14
14
  import {
15
15
  logInfo,
16
16
  logWarn
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  normalizeSlackConversationId
3
- } from "./chunk-7K3JALTQ.js";
3
+ } from "./chunk-UUB3D2XI.js";
4
4
  import {
5
5
  getStateAdapter
6
- } from "./chunk-ZATRYQLR.js";
6
+ } from "./chunk-7STN2ZSK.js";
7
7
  import {
8
8
  parseSlackThreadId
9
9
  } from "./chunk-YYBX2BD5.js";
@@ -8,29 +8,29 @@ import {
8
8
  getPersistedThreadState,
9
9
  markTurnCompleted,
10
10
  mergeArtifactsState
11
- } from "./chunk-Z4FOYQXW.js";
11
+ } from "./chunk-HDNWZMUN.js";
12
12
  import {
13
13
  coerceThreadConversationState
14
14
  } from "./chunk-PFXC67GJ.js";
15
15
  import {
16
16
  getAgentTurnSessionRecord,
17
17
  getInterruptionMarker
18
- } from "./chunk-OQQU3SD6.js";
18
+ } from "./chunk-QL66APYJ.js";
19
19
  import {
20
20
  createPluginEmbedder,
21
21
  createPluginModel,
22
22
  getPlugins
23
- } from "./chunk-7K3JALTQ.js";
23
+ } from "./chunk-UUB3D2XI.js";
24
24
  import {
25
25
  createPluginLogger,
26
26
  createPluginState
27
- } from "./chunk-OZJXGX4U.js";
27
+ } from "./chunk-TNUUATT7.js";
28
28
  import {
29
29
  getStateAdapter
30
- } from "./chunk-ZATRYQLR.js";
30
+ } from "./chunk-7STN2ZSK.js";
31
31
  import {
32
32
  getDb
33
- } from "./chunk-NIFONS4W.js";
33
+ } from "./chunk-NFXSLTYG.js";
34
34
  import {
35
35
  GEN_AI_PROVIDER_NAME,
36
36
  botConfig,
@@ -42,7 +42,7 @@ import {
42
42
  normalizeToolNameFromResult,
43
43
  resolveGatewayModel,
44
44
  stripRuntimeTurnContext
45
- } from "./chunk-3F54A3YM.js";
45
+ } from "./chunk-NAPITCZ6.js";
46
46
  import {
47
47
  buildTurnFailureResponse,
48
48
  logWarn,
@@ -176,7 +176,7 @@ function stripRuntimeTurnContext(messages) {
176
176
  }
177
177
 
178
178
  // src/chat/config.ts
179
- import { getModel } from "@earendil-works/pi-ai";
179
+ import { getModel } from "@earendil-works/pi-ai/compat";
180
180
 
181
181
  // src/chat/optional-string.ts
182
182
  function toOptionalTrimmed(value) {
@@ -187,19 +187,21 @@ function toOptionalTrimmed(value) {
187
187
  return trimmed.length > 0 ? trimmed : void 0;
188
188
  }
189
189
 
190
- // src/chat/pi/client.ts
190
+ // src/chat/pi/sdk.ts
191
191
  import {
192
192
  completeSimple,
193
193
  getEnvApiKey,
194
194
  getModels,
195
195
  registerApiProvider
196
- } from "@earendil-works/pi-ai";
196
+ } from "@earendil-works/pi-ai/compat";
197
+ import {
198
+ stream,
199
+ streamSimple
200
+ } from "@earendil-works/pi-ai/api/anthropic-messages";
201
+
202
+ // src/chat/pi/client.ts
197
203
  import { createGatewayProvider } from "@ai-sdk/gateway";
198
204
  import { embedMany, generateObject } from "ai";
199
- import {
200
- streamAnthropic,
201
- streamSimpleAnthropic
202
- } from "@earendil-works/pi-ai/anthropic";
203
205
 
204
206
  // src/chat/services/provider-retry.ts
205
207
  var PROVIDER_RETRY_DELAYS_MS = [2e3, 4e3, 8e3];
@@ -252,8 +254,8 @@ function nextProviderRetry(args) {
252
254
  // src/chat/pi/client.ts
253
255
  registerApiProvider({
254
256
  api: "anthropic-messages",
255
- stream: streamAnthropic,
256
- streamSimple: streamSimpleAnthropic
257
+ stream,
258
+ streamSimple
257
259
  });
258
260
  var GATEWAY_PROVIDER = "vercel-ai-gateway";
259
261
  var GEN_AI_PROVIDER_NAME = GATEWAY_PROVIDER;
@@ -641,7 +643,7 @@ var DEFAULT_FAST_MODEL_ID = getModel(
641
643
  ).id;
642
644
  var DEFAULT_ADVISOR_MODEL_ID = getModel(
643
645
  "vercel-ai-gateway",
644
- "openai/gpt-5.5"
646
+ "openai/gpt-5.6-sol"
645
647
  ).id;
646
648
  var DEFAULT_EMBEDDING_MODEL_ID = "openai/text-embedding-3-small";
647
649
  function validateGatewayModelId(raw) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getChatConfig
3
- } from "./chunk-3F54A3YM.js";
3
+ } from "./chunk-NAPITCZ6.js";
4
4
  import {
5
5
  parseDestination,
6
6
  sameDestination
@@ -4,10 +4,10 @@ import {
4
4
  import {
5
5
  getDefaultRedisStateAdapterFor,
6
6
  getStateAdapter
7
- } from "./chunk-ZATRYQLR.js";
7
+ } from "./chunk-7STN2ZSK.js";
8
8
  import {
9
9
  getChatConfig
10
- } from "./chunk-3F54A3YM.js";
10
+ } from "./chunk-NAPITCZ6.js";
11
11
  import {
12
12
  parseDestination,
13
13
  sameDestination
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  getConnectedStateContext,
3
3
  getStateAdapter
4
- } from "./chunk-ZATRYQLR.js";
4
+ } from "./chunk-7STN2ZSK.js";
5
5
  import {
6
6
  getConversationStore
7
- } from "./chunk-NIFONS4W.js";
7
+ } from "./chunk-NFXSLTYG.js";
8
8
  import {
9
9
  getChatConfig
10
- } from "./chunk-3F54A3YM.js";
10
+ } from "./chunk-NAPITCZ6.js";
11
11
  import {
12
12
  parseDestination
13
13
  } from "./chunk-GHGPTPBL.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getStateAdapter
3
- } from "./chunk-ZATRYQLR.js";
3
+ } from "./chunk-7STN2ZSK.js";
4
4
  import {
5
5
  logException,
6
6
  logInfo,
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  createPluginLogger,
3
3
  createPluginState
4
- } from "./chunk-OZJXGX4U.js";
4
+ } from "./chunk-TNUUATT7.js";
5
5
  import {
6
6
  SANDBOX_WORKSPACE_ROOT
7
7
  } from "./chunk-G3E7SCME.js";
8
8
  import {
9
9
  getDb
10
- } from "./chunk-NIFONS4W.js";
10
+ } from "./chunk-NFXSLTYG.js";
11
11
  import {
12
12
  botConfig,
13
13
  completeObject,
14
14
  embedTexts,
15
15
  getSlackBotToken
16
- } from "./chunk-3F54A3YM.js";
16
+ } from "./chunk-NAPITCZ6.js";
17
17
  import {
18
18
  isActorUserId,
19
19
  logInfo,
@@ -4,7 +4,7 @@ import {
4
4
  juniorDestinations,
5
5
  juniorIdentities,
6
6
  juniorUsers
7
- } from "./chunk-NIFONS4W.js";
7
+ } from "./chunk-NFXSLTYG.js";
8
8
 
9
9
  // src/api/people/shared.ts
10
10
  import { and, asc, desc, eq, sql } from "drizzle-orm";
package/dist/cli/chat.js CHANGED
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  createAgentRunner,
3
3
  executeAgentRun
4
- } from "../chunk-56SIBIVF.js";
5
- import "../chunk-Z4FOYQXW.js";
4
+ } from "../chunk-KRMANDHI.js";
5
+ import "../chunk-HDNWZMUN.js";
6
6
  import "../chunk-PFXC67GJ.js";
7
- import "../chunk-H7KUZAMZ.js";
8
- import "../chunk-IWKVXO3F.js";
9
- import "../chunk-OQQU3SD6.js";
7
+ import "../chunk-6H4PP63X.js";
8
+ import "../chunk-LE5ANBUZ.js";
9
+ import "../chunk-QL66APYJ.js";
10
10
  import {
11
11
  loadAppPluginSet
12
12
  } from "../chunk-Y2CM7HXH.js";
13
- import "../chunk-7K3JALTQ.js";
14
- import "../chunk-OZJXGX4U.js";
13
+ import "../chunk-UUB3D2XI.js";
14
+ import "../chunk-TNUUATT7.js";
15
15
  import "../chunk-G3E7SCME.js";
16
- import "../chunk-ZATRYQLR.js";
17
- import "../chunk-NIFONS4W.js";
18
- import "../chunk-3F54A3YM.js";
16
+ import "../chunk-7STN2ZSK.js";
17
+ import "../chunk-NFXSLTYG.js";
18
+ import "../chunk-NAPITCZ6.js";
19
19
  import "../chunk-YYBX2BD5.js";
20
20
  import "../chunk-GHGPTPBL.js";
21
21
  import "../chunk-YTNPU7I2.js";
@@ -147,10 +147,10 @@ async function configureLocalChatPlugins(pluginSet) {
147
147
  databaseModule
148
148
  ] = await Promise.all([
149
149
  import("../plugins-PZMDS7AT.js"),
150
- import("../agent-hooks-KL7I3ZRC.js"),
150
+ import("../agent-hooks-ZG7IDOIN.js"),
151
151
  import("../catalog-runtime-NZHMSMYC.js"),
152
152
  import("../validation-KYAWETI4.js"),
153
- import("../db-GCK43OO3.js")
153
+ import("../db-YDN6AFJH.js")
154
154
  ]);
155
155
  const resolvedPluginSet = pluginSet === void 0 ? await loadLocalPluginSet() : pluginSet ?? void 0;
156
156
  const plugins = pluginsModule.pluginRuntimeRegistrationsFromPluginSet(resolvedPluginSet);
@@ -211,7 +211,7 @@ function newRunConversationId() {
211
211
  async function prepareLocalChatRun(io, pluginSet) {
212
212
  defaultStateAdapterForLocalChat();
213
213
  await configureLocalChatPlugins(pluginSet);
214
- const { runLocalAgentTurn } = await import("../runner-Y73GZ2VE.js");
214
+ const { runLocalAgentTurn } = await import("../runner-XAZPJNAQ.js");
215
215
  const deps = {
216
216
  agentRunner: createAgentRunner(executeAgentRun),
217
217
  deliverReply: async (reply) => {
@@ -13,16 +13,16 @@ import {
13
13
  import {
14
14
  setPlugins,
15
15
  validatePlugins
16
- } from "../chunk-7K3JALTQ.js";
16
+ } from "../chunk-UUB3D2XI.js";
17
17
  import {
18
18
  createPluginLogger
19
- } from "../chunk-OZJXGX4U.js";
19
+ } from "../chunk-TNUUATT7.js";
20
20
  import "../chunk-G3E7SCME.js";
21
- import "../chunk-ZATRYQLR.js";
21
+ import "../chunk-7STN2ZSK.js";
22
22
  import {
23
23
  getDb
24
- } from "../chunk-NIFONS4W.js";
25
- import "../chunk-3F54A3YM.js";
24
+ } from "../chunk-NFXSLTYG.js";
25
+ import "../chunk-NAPITCZ6.js";
26
26
  import "../chunk-YYBX2BD5.js";
27
27
  import "../chunk-GHGPTPBL.js";
28
28
  import {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  resolveRuntimeDependencySnapshot
3
- } from "../chunk-H7KUZAMZ.js";
3
+ } from "../chunk-6H4PP63X.js";
4
4
  import "../chunk-G3E7SCME.js";
5
5
  import {
6
6
  disconnectStateAdapter
7
- } from "../chunk-ZATRYQLR.js";
8
- import "../chunk-3F54A3YM.js";
7
+ } from "../chunk-7STN2ZSK.js";
8
+ import "../chunk-NAPITCZ6.js";
9
9
  import "../chunk-YYBX2BD5.js";
10
10
  import {
11
11
  pluginCatalogRuntime
@@ -4,7 +4,7 @@ import {
4
4
  recordConversationActivity,
5
5
  recordConversationExecution,
6
6
  requestConversationWork
7
- } from "../chunk-TF5VLGA7.js";
7
+ } from "../chunk-QGEWC27H.js";
8
8
  import {
9
9
  defineJuniorPlugins,
10
10
  pluginCatalogConfigFromEnv,
@@ -21,19 +21,19 @@ import {
21
21
  import {
22
22
  createPluginLogger,
23
23
  createPluginState
24
- } from "../chunk-OZJXGX4U.js";
24
+ } from "../chunk-TNUUATT7.js";
25
25
  import {
26
26
  disconnectStateAdapter,
27
27
  getConnectedStateContext
28
- } from "../chunk-ZATRYQLR.js";
28
+ } from "../chunk-7STN2ZSK.js";
29
29
  import {
30
30
  createJuniorSqlExecutor,
31
31
  createSqlStore,
32
32
  getDb
33
- } from "../chunk-NIFONS4W.js";
33
+ } from "../chunk-NFXSLTYG.js";
34
34
  import {
35
35
  getChatConfig
36
- } from "../chunk-3F54A3YM.js";
36
+ } from "../chunk-NAPITCZ6.js";
37
37
  import "../chunk-YYBX2BD5.js";
38
38
  import {
39
39
  parseDestination,
@@ -2,8 +2,8 @@ import {
2
2
  closeDb,
3
3
  getConversationStore,
4
4
  getDb
5
- } from "./chunk-NIFONS4W.js";
6
- import "./chunk-3F54A3YM.js";
5
+ } from "./chunk-NFXSLTYG.js";
6
+ import "./chunk-NAPITCZ6.js";
7
7
  import "./chunk-YYBX2BD5.js";
8
8
  import "./chunk-GHGPTPBL.js";
9
9
  import "./chunk-S6QKIGRM.js";
package/dist/reporting.js CHANGED
@@ -6,30 +6,30 @@ import {
6
6
  getConversationDetails,
7
7
  getConversationDetailsForIds,
8
8
  resolveSlackConversationContextFromThreadId
9
- } from "./chunk-PGR4WGZW.js";
9
+ } from "./chunk-LNCREA5Z.js";
10
10
  import {
11
11
  buildSystemPrompt
12
- } from "./chunk-IWKVXO3F.js";
12
+ } from "./chunk-LE5ANBUZ.js";
13
13
  import {
14
14
  getAgentTurnSessionRecord,
15
15
  listAgentTurnSessionSummariesForConversation,
16
16
  loadActivityEntries,
17
17
  piContentMessageSchema
18
- } from "./chunk-OQQU3SD6.js";
18
+ } from "./chunk-QL66APYJ.js";
19
19
  import {
20
20
  getPluginOperationalReports
21
- } from "./chunk-7K3JALTQ.js";
22
- import "./chunk-OZJXGX4U.js";
21
+ } from "./chunk-UUB3D2XI.js";
22
+ import "./chunk-TNUUATT7.js";
23
23
  import "./chunk-G3E7SCME.js";
24
24
  import {
25
25
  getStateAdapter
26
- } from "./chunk-ZATRYQLR.js";
26
+ } from "./chunk-7STN2ZSK.js";
27
27
  import {
28
28
  getConversationStore
29
- } from "./chunk-NIFONS4W.js";
29
+ } from "./chunk-NFXSLTYG.js";
30
30
  import {
31
31
  unwrapCurrentInstruction
32
- } from "./chunk-3F54A3YM.js";
32
+ } from "./chunk-NAPITCZ6.js";
33
33
  import {
34
34
  canExposeConversationPayload,
35
35
  parseSlackThreadId,
@@ -8,7 +8,7 @@ import {
8
8
  scheduleSessionCompletedPluginTasks,
9
9
  updateConversationStats,
10
10
  upsertConversationMessage
11
- } from "./chunk-O6ZYIHFC.js";
11
+ } from "./chunk-MAVOJ54A.js";
12
12
  import "./chunk-KNFROR7R.js";
13
13
  import {
14
14
  coerceThreadArtifactsState,
@@ -18,23 +18,23 @@ import {
18
18
  markTurnFailed,
19
19
  persistThreadStateById,
20
20
  startActiveTurn
21
- } from "./chunk-Z4FOYQXW.js";
21
+ } from "./chunk-HDNWZMUN.js";
22
22
  import {
23
23
  coerceThreadConversationState
24
24
  } from "./chunk-PFXC67GJ.js";
25
25
  import {
26
26
  commitMessages,
27
27
  loadProjection
28
- } from "./chunk-OQQU3SD6.js";
29
- import "./chunk-7K3JALTQ.js";
30
- import "./chunk-OZJXGX4U.js";
28
+ } from "./chunk-QL66APYJ.js";
29
+ import "./chunk-UUB3D2XI.js";
30
+ import "./chunk-TNUUATT7.js";
31
31
  import "./chunk-G3E7SCME.js";
32
- import "./chunk-ZATRYQLR.js";
33
- import "./chunk-NIFONS4W.js";
32
+ import "./chunk-7STN2ZSK.js";
33
+ import "./chunk-NFXSLTYG.js";
34
34
  import {
35
35
  stripRuntimeTurnContext,
36
36
  trimTrailingAssistantMessages
37
- } from "./chunk-3F54A3YM.js";
37
+ } from "./chunk-NAPITCZ6.js";
38
38
  import "./chunk-YYBX2BD5.js";
39
39
  import "./chunk-GHGPTPBL.js";
40
40
  import {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/junior",
3
- "version": "0.92.1",
3
+ "version": "0.94.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -54,8 +54,8 @@
54
54
  "@chat-adapter/slack": "4.29.0",
55
55
  "@chat-adapter/state-memory": "4.29.0",
56
56
  "@chat-adapter/state-redis": "4.29.0",
57
- "@earendil-works/pi-agent-core": "0.74.2",
58
- "@earendil-works/pi-ai": "0.74.2",
57
+ "@earendil-works/pi-agent-core": "0.80.5",
58
+ "@earendil-works/pi-ai": "0.80.5",
59
59
  "@logtape/logtape": "^2.1.1",
60
60
  "@modelcontextprotocol/sdk": "1.29.0",
61
61
  "@neondatabase/serverless": "^1.1.0",
@@ -78,7 +78,7 @@
78
78
  "pg": "^8.16.3",
79
79
  "yaml": "^2.9.0",
80
80
  "zod": "^4.4.3",
81
- "@sentry/junior-plugin-api": "0.92.1"
81
+ "@sentry/junior-plugin-api": "0.94.0"
82
82
  },
83
83
  "devDependencies": {
84
84
  "@emnapi/core": "^1.10.0",
@@ -94,9 +94,9 @@
94
94
  "typescript": "^6.0.3",
95
95
  "vercel": "^54.4.0",
96
96
  "vitest": "^4.1.7",
97
- "@sentry/junior-github": "0.92.1",
98
- "@sentry/junior-memory": "0.92.1",
99
- "@sentry/junior-scheduler": "0.92.1",
97
+ "@sentry/junior-github": "0.94.0",
98
+ "@sentry/junior-memory": "0.94.0",
99
+ "@sentry/junior-scheduler": "0.94.0",
100
100
  "@sentry/junior-testing": "0.0.0"
101
101
  },
102
102
  "scripts": {