@sentry/junior 0.131.0 → 0.133.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 (73) hide show
  1. package/dist/{agent-hooks-M5V454P5.js → agent-hooks-5BUIXVIX.js} +9 -9
  2. package/dist/api/conversations/list.d.ts +13 -2
  3. package/dist/api/schema/task.d.ts +0 -3
  4. package/dist/api/schema.js +1 -1
  5. package/dist/api.js +24 -23
  6. package/dist/app.js +84 -37
  7. package/dist/{catalog-runtime-PI2IFWZ5.js → catalog-runtime-VGB3DWXZ.js} +5 -5
  8. package/dist/chat/config.d.ts +2 -0
  9. package/dist/chat/conversations/location.d.ts +10 -0
  10. package/dist/chat/conversations/projection.d.ts +3 -1
  11. package/dist/chat/conversations/sql/bindings.d.ts +13 -0
  12. package/dist/chat/conversations/sql/location.d.ts +9 -0
  13. package/dist/chat/conversations/sql/store.d.ts +3 -0
  14. package/dist/chat/conversations/store.d.ts +17 -0
  15. package/dist/chat/runtime/reply-executor.d.ts +1 -0
  16. package/dist/chat/runtime/slack-runtime.d.ts +2 -0
  17. package/dist/chat/scheduled-tasks/tool-support.d.ts +2 -5
  18. package/dist/chat/scheduled-tasks/tools/create.d.ts +2 -2
  19. package/dist/chat/scheduled-tasks/tools/delete.d.ts +2 -2
  20. package/dist/chat/scheduled-tasks/tools/list.d.ts +2 -2
  21. package/dist/chat/scheduled-tasks/tools/run-now.d.ts +2 -2
  22. package/dist/chat/scheduled-tasks/tools/update.d.ts +3 -3
  23. package/dist/chat/scheduled-tasks/types.d.ts +1 -1
  24. package/dist/chat/slack/dispatch-turn.d.ts +1 -0
  25. package/dist/chat/slack/reply.d.ts +1 -1
  26. package/dist/{chunk-UYYSD255.js → chunk-5ZAZHLIW.js} +1 -1
  27. package/dist/{chunk-JKHK3LM2.js → chunk-AH5HTUYX.js} +1 -1
  28. package/dist/{chunk-HZ5EVSPV.js → chunk-ECUILEUX.js} +24 -15
  29. package/dist/{chunk-HSPYTFMD.js → chunk-EJRJWBKG.js} +1 -1
  30. package/dist/{chunk-TD2A27ET.js → chunk-FX6BLEDP.js} +1 -1
  31. package/dist/{chunk-7Y2OKB5K.js → chunk-HJ4KDO4N.js} +1 -1
  32. package/dist/{chunk-DRFI6CW3.js → chunk-HTGXUNEC.js} +7 -7
  33. package/dist/{chunk-SVX4JDOR.js → chunk-IKO5LFIU.js} +1 -1
  34. package/dist/{chunk-J4I2GVGH.js → chunk-IVTHTAVK.js} +2 -2
  35. package/dist/{chunk-APUL3Y63.js → chunk-JLN4XSPR.js} +1 -1
  36. package/dist/{chunk-ZMIO64MA.js → chunk-LDRO4OQ4.js} +19 -3
  37. package/dist/{chunk-5ONXE2GF.js → chunk-LNYNTR27.js} +305 -235
  38. package/dist/{chunk-BVKP37NE.js → chunk-QVEXYYFM.js} +1 -1
  39. package/dist/{chunk-KB2M27DL.js → chunk-QWGZ273D.js} +78 -36
  40. package/dist/{chunk-TRKWWIB3.js → chunk-T5FPIBU2.js} +21 -21
  41. package/dist/{chunk-XXGCQCFJ.js → chunk-TBVS7GBE.js} +4 -4
  42. package/dist/{chunk-XMDY52DJ.js → chunk-TLN54TOQ.js} +1 -1
  43. package/dist/{chunk-VMPL77IK.js → chunk-TU7P77FI.js} +36 -24
  44. package/dist/{chunk-NGJEC4MF.js → chunk-V365UVCU.js} +2 -2
  45. package/dist/{chunk-KWYCUXJX.js → chunk-VL7OYSHD.js} +1 -1
  46. package/dist/{chunk-D6ZMP3FC.js → chunk-VQA25AL4.js} +6 -6
  47. package/dist/{chunk-MLIJGLW5.js → chunk-WHEMUEXT.js} +5 -5
  48. package/dist/{chunk-7X62XOC4.js → chunk-XTQGVNM3.js} +54 -19
  49. package/dist/cli/chat.js +24 -24
  50. package/dist/cli/check.js +6 -6
  51. package/dist/cli/init.js +1 -0
  52. package/dist/cli/plugins.js +12 -12
  53. package/dist/cli/snapshot-create.js +9 -9
  54. package/dist/cli/upgrade.js +9 -8
  55. package/dist/db/executor.d.ts +2 -1
  56. package/dist/db/neon.d.ts +1 -0
  57. package/dist/db/postgres.d.ts +1 -0
  58. package/dist/db/schema/conversation-bindings.d.ts +110 -0
  59. package/dist/db/schema.d.ts +111 -1
  60. package/dist/{db-5P6K3ZCM.js → db-RICMPUFT.js} +7 -7
  61. package/dist/instrumentation.js +4 -4
  62. package/dist/nitro.js +2 -2
  63. package/dist/{oauth-callback-server-RIMCKQZX.js → oauth-callback-server-YFVS4SAX.js} +17 -17
  64. package/dist/{runner-CAD3BVML.js → runner-A3LVGZR6.js} +11 -11
  65. package/dist/{skills-WVPCTBUT.js → skills-P7Q6Z6PN.js} +6 -6
  66. package/dist/{validation-GLEXIFFI.js → validation-RYHOWBET.js} +6 -6
  67. package/dist/version.js +1 -1
  68. package/migrations/0017_drop_paused_scheduled_tasks.sql +19 -0
  69. package/migrations/0018_curvy_excalibur.sql +12 -0
  70. package/migrations/meta/0017_snapshot.json +1666 -0
  71. package/migrations/meta/0018_snapshot.json +1756 -0
  72. package/migrations/meta/_journal.json +15 -1
  73. package/package.json +5 -5
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  getConversationEventStore,
3
3
  getDb
4
- } from "./chunk-5ONXE2GF.js";
4
+ } from "./chunk-LNYNTR27.js";
5
5
  import {
6
6
  juniorConversationAnnotations,
7
7
  juniorConversationEvents,
8
8
  juniorIdentities,
9
9
  juniorUsers
10
- } from "./chunk-KB2M27DL.js";
10
+ } from "./chunk-QWGZ273D.js";
11
11
  import {
12
12
  SANDBOX_WORKSPACE_ROOT,
13
13
  getStateAdapter,
14
14
  sleep
15
- } from "./chunk-XMDY52DJ.js";
15
+ } from "./chunk-TLN54TOQ.js";
16
16
  import {
17
17
  botConfig,
18
18
  completeObject,
19
19
  embedTexts,
20
20
  getSlackBotToken,
21
21
  standardModelId
22
- } from "./chunk-ZMIO64MA.js";
22
+ } from "./chunk-LDRO4OQ4.js";
23
23
  import {
24
24
  isActorUserId,
25
25
  parseActorUserId
@@ -37,7 +37,7 @@ import {
37
37
  setSpanAttributes,
38
38
  setSpanStatus,
39
39
  withSpan
40
- } from "./chunk-HSPYTFMD.js";
40
+ } from "./chunk-EJRJWBKG.js";
41
41
 
42
42
  // src/chat/plugins/agent-hooks.ts
43
43
  import {
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  canRouteResourceEvents,
3
3
  getPlugins
4
- } from "./chunk-MLIJGLW5.js";
4
+ } from "./chunk-WHEMUEXT.js";
5
5
  import {
6
6
  getDb
7
- } from "./chunk-5ONXE2GF.js";
7
+ } from "./chunk-LNYNTR27.js";
8
8
  import {
9
9
  juniorEventTasks,
10
10
  juniorSchedulerRuns,
11
11
  juniorSchedulerTasks,
12
12
  juniorStats
13
- } from "./chunk-KB2M27DL.js";
13
+ } from "./chunk-QWGZ273D.js";
14
14
  import {
15
15
  juniorDestinations
16
16
  } from "./chunk-VFUK3X5B.js";
@@ -409,7 +409,7 @@ import {
409
409
  isNotNull,
410
410
  lt,
411
411
  lte as lte2,
412
- ne,
412
+ notInArray,
413
413
  or as or2,
414
414
  sql as sql3
415
415
  } from "drizzle-orm";
@@ -765,7 +765,9 @@ var taskRecordFields = {
765
765
  originalRequest: z6.string().optional(),
766
766
  runNowAtMs: z6.number().optional(),
767
767
  schedule: taskScheduleSchema,
768
- status: z6.enum(["active", "paused", "blocked", "deleted"]),
768
+ // TODO(v0.131.0): Remove paused decoding and SQL list filtering after
769
+ // v0.129.x workers can no longer overlap upgrades.
770
+ status: z6.enum(["active", "blocked", "deleted", "paused"]),
769
771
  statusReason: z6.string().optional(),
770
772
  task: taskSpecSchema,
771
773
  updatedAtMs: z6.number(),
@@ -816,6 +818,15 @@ function buildRunId(taskId, scheduledForMs) {
816
818
  return `${taskId}:${scheduledForMs}`;
817
819
  }
818
820
  var schedulerTaskIndexSchema = z6.array(z6.string().min(1));
821
+ function statusAfterTerminalOccurrence(args) {
822
+ if (args.blocked) {
823
+ return "blocked";
824
+ }
825
+ if (args.nextRunAtMs) {
826
+ return args.previousStatus ?? "active";
827
+ }
828
+ return "deleted";
829
+ }
819
830
  function isStalePendingRun(run, nowMs) {
820
831
  return run?.status === "pending" && run.claimedAtMs + PENDING_CLAIM_STALE_MS <= nowMs;
821
832
  }
@@ -892,8 +903,22 @@ function parseStoredTask(value) {
892
903
  return parsed.success ? stripLegacyTaskFields(parsed.data) : void 0;
893
904
  }
894
905
  function stripLegacyTaskFields(task) {
895
- const { version: _version, ...current } = task;
896
- return current;
906
+ const { version: _version, status, ...current } = task;
907
+ if (status === "paused") {
908
+ const {
909
+ nextRunAtMs: _nextRunAtMs,
910
+ runNowAtMs: _runNowAtMs,
911
+ ...rest
912
+ } = current;
913
+ return {
914
+ ...rest,
915
+ status: "deleted"
916
+ };
917
+ }
918
+ return {
919
+ ...current,
920
+ status
921
+ };
897
922
  }
898
923
  function stripLegacyRunFields(run) {
899
924
  const {
@@ -919,6 +944,9 @@ function parseJsonRecord(value) {
919
944
  function present(value) {
920
945
  return value !== void 0;
921
946
  }
947
+ function listedScheduledTask(task) {
948
+ return task !== void 0 && task.status !== "deleted";
949
+ }
922
950
  function requireStoredTask(task) {
923
951
  const parsed = parseStoredTask(task);
924
952
  if (!parsed) {
@@ -1004,11 +1032,11 @@ async function listTasksFromSql(db) {
1004
1032
  const rows = await db.select({
1005
1033
  creatorIdentityId: juniorSchedulerTasks.creatorIdentityId,
1006
1034
  record: juniorSchedulerTasks.record
1007
- }).from(juniorSchedulerTasks).where(ne(juniorSchedulerTasks.status, "deleted")).orderBy(
1035
+ }).from(juniorSchedulerTasks).where(notInArray(juniorSchedulerTasks.status, ["deleted", "paused"])).orderBy(
1008
1036
  asc3(juniorSchedulerTasks.createdAtMs),
1009
1037
  asc3(juniorSchedulerTasks.id)
1010
1038
  );
1011
- return rows.map(parseSqlTaskRow).filter(present);
1039
+ return rows.map(parseSqlTaskRow).filter(listedScheduledTask);
1012
1040
  }
1013
1041
  async function listTasksCreatedByFromSql(db, input) {
1014
1042
  if (input.identityIds.length === 0) return [];
@@ -1036,7 +1064,7 @@ async function listTasksCreatedByFromSql(db, input) {
1036
1064
  record: juniorSchedulerTasks.record
1037
1065
  }).from(juniorSchedulerTasks).where(
1038
1066
  and3(
1039
- ne(juniorSchedulerTasks.status, "deleted"),
1067
+ notInArray(juniorSchedulerTasks.status, ["deleted", "paused"]),
1040
1068
  inArray2(juniorSchedulerTasks.creatorIdentityId, input.identityIds),
1041
1069
  cursor,
1042
1070
  search
@@ -1045,7 +1073,7 @@ async function listTasksCreatedByFromSql(db, input) {
1045
1073
  desc2(juniorSchedulerTasks.createdAtMs),
1046
1074
  desc2(juniorSchedulerTasks.id)
1047
1075
  ).limit(input.limit);
1048
- tasks.push(...rows.map(parseSqlTaskRow).filter(present));
1076
+ tasks.push(...rows.map(parseSqlTaskRow).filter(listedScheduledTask));
1049
1077
  if (rows.length < input.limit) {
1050
1078
  break;
1051
1079
  }
@@ -1064,13 +1092,13 @@ async function listTasksForTeamFromSql(db, teamId) {
1064
1092
  }).from(juniorSchedulerTasks).where(
1065
1093
  and3(
1066
1094
  eq2(juniorSchedulerTasks.teamId, teamId),
1067
- ne(juniorSchedulerTasks.status, "deleted")
1095
+ notInArray(juniorSchedulerTasks.status, ["deleted", "paused"])
1068
1096
  )
1069
1097
  ).orderBy(
1070
1098
  asc3(juniorSchedulerTasks.createdAtMs),
1071
1099
  asc3(juniorSchedulerTasks.id)
1072
1100
  );
1073
- return rows.map(parseSqlTaskRow).filter(present);
1101
+ return rows.map(parseSqlTaskRow).filter(listedScheduledTask);
1074
1102
  }
1075
1103
  async function listPublicScheduledTasksForTeams(db, teamIds, limit) {
1076
1104
  if (teamIds.length === 0) return [];
@@ -1087,14 +1115,14 @@ async function listPublicScheduledTasksForTeams(db, teamIds, limit) {
1087
1115
  ).where(
1088
1116
  and3(
1089
1117
  inArray2(juniorSchedulerTasks.teamId, teamIds),
1090
- ne(juniorSchedulerTasks.status, "deleted"),
1118
+ notInArray(juniorSchedulerTasks.status, ["deleted", "paused"]),
1091
1119
  eq2(juniorDestinations.visibility, "public")
1092
1120
  )
1093
1121
  ).orderBy(
1094
1122
  desc2(juniorSchedulerTasks.createdAtMs),
1095
1123
  desc2(juniorSchedulerTasks.id)
1096
1124
  ).limit(limit);
1097
- return rows.map(parseSqlTaskRow).filter(present);
1125
+ return rows.map(parseSqlTaskRow).filter(listedScheduledTask);
1098
1126
  }
1099
1127
  async function listIncompleteRunsForTasksFromSql(db, tasks) {
1100
1128
  if (tasks.length === 0) {
@@ -1259,7 +1287,7 @@ var SqlSchedulerStore = class {
1259
1287
  if (!duplicateOf) {
1260
1288
  nextRunAtMs = isRunNow && current.nextRunAtMs !== args.scheduledForMs ? current.nextRunAtMs : current.schedule.kind === "recurring" ? getNextRunAtMs(current, args.scheduledForMs, args.nowMs) : void 0;
1261
1289
  }
1262
- const nextStatus = nextRunAtMs ? "active" : "paused";
1290
+ const nextStatus = statusAfterTerminalOccurrence({ nextRunAtMs });
1263
1291
  await this.saveTaskRecord(
1264
1292
  db,
1265
1293
  {
@@ -1267,7 +1295,7 @@ var SqlSchedulerStore = class {
1267
1295
  nextRunAtMs,
1268
1296
  runNowAtMs: isRunNow ? void 0 : current.runNowAtMs,
1269
1297
  status: nextStatus,
1270
- statusReason: nextStatus === "paused" ? errorMessage : void 0,
1298
+ statusReason: nextStatus === "deleted" ? errorMessage : void 0,
1271
1299
  updatedAtMs: args.nowMs
1272
1300
  },
1273
1301
  current
@@ -1371,7 +1399,11 @@ var SqlSchedulerStore = class {
1371
1399
  lastRunAtMs: args.run.scheduledForMs,
1372
1400
  nextRunAtMs: nextRunAtMs2,
1373
1401
  runNowAtMs: void 0,
1374
- status: args.status === "blocked" ? "blocked" : nextRunAtMs2 ? current.status : "paused",
1402
+ status: statusAfterTerminalOccurrence({
1403
+ blocked: args.status === "blocked",
1404
+ nextRunAtMs: nextRunAtMs2,
1405
+ previousStatus: current.status
1406
+ }),
1375
1407
  statusReason: args.status === "blocked" ? args.errorMessage : void 0,
1376
1408
  updatedAtMs: args.nowMs
1377
1409
  },
@@ -1398,7 +1430,10 @@ var SqlSchedulerStore = class {
1398
1430
  ...current,
1399
1431
  lastRunAtMs: args.run.scheduledForMs,
1400
1432
  nextRunAtMs,
1401
- status: args.status === "blocked" ? "blocked" : nextRunAtMs ? "active" : "paused",
1433
+ status: statusAfterTerminalOccurrence({
1434
+ blocked: args.status === "blocked",
1435
+ nextRunAtMs
1436
+ }),
1402
1437
  statusReason: args.status === "blocked" ? args.errorMessage : void 0,
1403
1438
  updatedAtMs: args.nowMs
1404
1439
  },
package/dist/cli/chat.js CHANGED
@@ -1,39 +1,39 @@
1
1
  import {
2
2
  createAgentRunner,
3
3
  executeAgentRun
4
- } from "../chunk-TRKWWIB3.js";
4
+ } from "../chunk-T5FPIBU2.js";
5
5
  import "../chunk-DIB4GX3G.js";
6
- import "../chunk-DRFI6CW3.js";
7
- import "../chunk-HZ5EVSPV.js";
6
+ import "../chunk-HTGXUNEC.js";
7
+ import "../chunk-ECUILEUX.js";
8
8
  import "../chunk-EPBBYMNE.js";
9
- import "../chunk-XXGCQCFJ.js";
10
- import "../chunk-7X62XOC4.js";
11
- import "../chunk-JKHK3LM2.js";
9
+ import "../chunk-TBVS7GBE.js";
10
+ import "../chunk-XTQGVNM3.js";
11
+ import "../chunk-AH5HTUYX.js";
12
12
  import "../chunk-HX236W2U.js";
13
13
  import "../chunk-PDO5BLNM.js";
14
14
  import "../chunk-UIE3R5XU.js";
15
15
  import {
16
16
  loadAppPluginSet
17
17
  } from "../chunk-Y2CM7HXH.js";
18
- import "../chunk-MLIJGLW5.js";
19
- import "../chunk-5ONXE2GF.js";
20
- import "../chunk-KB2M27DL.js";
21
- import "../chunk-XMDY52DJ.js";
22
- import "../chunk-ZMIO64MA.js";
18
+ import "../chunk-WHEMUEXT.js";
19
+ import "../chunk-LNYNTR27.js";
20
+ import "../chunk-QWGZ273D.js";
21
+ import "../chunk-TLN54TOQ.js";
22
+ import "../chunk-LDRO4OQ4.js";
23
23
  import "../chunk-VFUK3X5B.js";
24
- import "../chunk-KWYCUXJX.js";
25
- import "../chunk-J4I2GVGH.js";
26
- import "../chunk-APUL3Y63.js";
27
- import "../chunk-7Y2OKB5K.js";
24
+ import "../chunk-VL7OYSHD.js";
25
+ import "../chunk-IVTHTAVK.js";
26
+ import "../chunk-JLN4XSPR.js";
27
+ import "../chunk-HJ4KDO4N.js";
28
28
  import "../chunk-77VDLF3Z.js";
29
29
  import "../chunk-HZF5P5UN.js";
30
30
  import "../chunk-F3B2YJ76.js";
31
- import "../chunk-HSPYTFMD.js";
31
+ import "../chunk-EJRJWBKG.js";
32
32
  import "../chunk-6GWA276C.js";
33
33
  import "../chunk-OOUNJNMR.js";
34
34
  import "../chunk-H4HBKISO.js";
35
- import "../chunk-TD2A27ET.js";
36
- import "../chunk-SVX4JDOR.js";
35
+ import "../chunk-FX6BLEDP.js";
36
+ import "../chunk-IKO5LFIU.js";
37
37
  import "../chunk-MLKGABMK.js";
38
38
 
39
39
  // src/cli/chat.ts
@@ -156,10 +156,10 @@ async function configureLocalChatPlugins(pluginSet) {
156
156
  databaseModule
157
157
  ] = await Promise.all([
158
158
  import("../plugins-HW4VWW6G.js"),
159
- import("../agent-hooks-M5V454P5.js"),
160
- import("../catalog-runtime-PI2IFWZ5.js"),
161
- import("../validation-GLEXIFFI.js"),
162
- import("../db-5P6K3ZCM.js")
159
+ import("../agent-hooks-5BUIXVIX.js"),
160
+ import("../catalog-runtime-VGB3DWXZ.js"),
161
+ import("../validation-RYHOWBET.js"),
162
+ import("../db-RICMPUFT.js")
163
163
  ]);
164
164
  const resolvedPluginSet = pluginSet === void 0 ? await loadLocalPluginSet() : pluginSet ?? void 0;
165
165
  const plugins = pluginsModule.pluginRuntimeRegistrationsFromPluginSet(resolvedPluginSet);
@@ -223,8 +223,8 @@ function localDevServerUrl() {
223
223
  async function prepareLocalChatRun(io, pluginSet) {
224
224
  defaultStateAdapterForLocalChat();
225
225
  await configureLocalChatPlugins(pluginSet);
226
- const { runLocalAgentTurn } = await import("../runner-CAD3BVML.js");
227
- const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-RIMCKQZX.js");
226
+ const { runLocalAgentTurn } = await import("../runner-A3LVGZR6.js");
227
+ const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-YFVS4SAX.js");
228
228
  const { createLocalOAuthState } = await import("../oauth-relay-3ZU72UGL.js");
229
229
  const { createLocalSandboxEgressSignalTransport } = await import("../sandbox-egress-signals-A5HWIQH4.js");
230
230
  const agentRunner = createAgentRunner(executeAgentRun);
package/dist/cli/check.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  parseSkillFile
3
- } from "../chunk-J4I2GVGH.js";
4
- import "../chunk-APUL3Y63.js";
3
+ } from "../chunk-IVTHTAVK.js";
4
+ import "../chunk-JLN4XSPR.js";
5
5
  import {
6
6
  parseInlinePluginManifest,
7
7
  parsePluginManifest
8
- } from "../chunk-7Y2OKB5K.js";
8
+ } from "../chunk-HJ4KDO4N.js";
9
9
  import "../chunk-77VDLF3Z.js";
10
10
  import "../chunk-HZF5P5UN.js";
11
11
  import "../chunk-F3B2YJ76.js";
12
- import "../chunk-HSPYTFMD.js";
12
+ import "../chunk-EJRJWBKG.js";
13
13
  import "../chunk-6GWA276C.js";
14
14
  import "../chunk-OOUNJNMR.js";
15
15
  import "../chunk-H4HBKISO.js";
@@ -17,8 +17,8 @@ import {
17
17
  JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE,
18
18
  JUNIOR_HEARTBEAT_ROUTE,
19
19
  LEGACY_JUNIOR_CONVERSATION_WORK_FUNCTION
20
- } from "../chunk-TD2A27ET.js";
21
- import "../chunk-SVX4JDOR.js";
20
+ } from "../chunk-FX6BLEDP.js";
21
+ import "../chunk-IKO5LFIU.js";
22
22
  import "../chunk-MLKGABMK.js";
23
23
 
24
24
  // src/cli/check.ts
package/dist/cli/init.js CHANGED
@@ -221,6 +221,7 @@ AI_VISION_MODEL=
221
221
  AI_WEB_SEARCH_MODEL=
222
222
  DATABASE_URL=
223
223
  JUNIOR_DATABASE_DRIVER=
224
+ JUNIOR_SQL_STATEMENT_TIMEOUT_MS=
224
225
  REDIS_URL=
225
226
  CRON_SECRET=
226
227
  SENTRY_DSN=
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  validatePluginEgressCredentialHooks,
3
3
  validatePluginRegistrations
4
- } from "../chunk-UYYSD255.js";
4
+ } from "../chunk-5ZAZHLIW.js";
5
5
  import {
6
6
  pluginCatalogConfigFromPluginSet,
7
7
  pluginCliRegistrationsFromPluginSet,
@@ -14,28 +14,28 @@ import {
14
14
  createPluginLogger,
15
15
  setPlugins,
16
16
  validatePlugins
17
- } from "../chunk-MLIJGLW5.js";
17
+ } from "../chunk-WHEMUEXT.js";
18
18
  import {
19
19
  getDb
20
- } from "../chunk-5ONXE2GF.js";
21
- import "../chunk-KB2M27DL.js";
22
- import "../chunk-XMDY52DJ.js";
23
- import "../chunk-ZMIO64MA.js";
20
+ } from "../chunk-LNYNTR27.js";
21
+ import "../chunk-QWGZ273D.js";
22
+ import "../chunk-TLN54TOQ.js";
23
+ import "../chunk-LDRO4OQ4.js";
24
24
  import "../chunk-VFUK3X5B.js";
25
- import "../chunk-KWYCUXJX.js";
25
+ import "../chunk-VL7OYSHD.js";
26
26
  import {
27
27
  pluginCatalogRuntime
28
- } from "../chunk-APUL3Y63.js";
29
- import "../chunk-7Y2OKB5K.js";
28
+ } from "../chunk-JLN4XSPR.js";
29
+ import "../chunk-HJ4KDO4N.js";
30
30
  import "../chunk-77VDLF3Z.js";
31
31
  import "../chunk-HZF5P5UN.js";
32
32
  import "../chunk-F3B2YJ76.js";
33
- import "../chunk-HSPYTFMD.js";
33
+ import "../chunk-EJRJWBKG.js";
34
34
  import "../chunk-6GWA276C.js";
35
35
  import "../chunk-OOUNJNMR.js";
36
36
  import "../chunk-H4HBKISO.js";
37
- import "../chunk-TD2A27ET.js";
38
- import "../chunk-SVX4JDOR.js";
37
+ import "../chunk-FX6BLEDP.js";
38
+ import "../chunk-IKO5LFIU.js";
39
39
  import "../chunk-MLKGABMK.js";
40
40
 
41
41
  // src/cli/plugins.ts
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  create,
3
3
  resolve
4
- } from "../chunk-XXGCQCFJ.js";
4
+ } from "../chunk-TBVS7GBE.js";
5
5
  import {
6
6
  disconnectStateAdapter
7
- } from "../chunk-XMDY52DJ.js";
8
- import "../chunk-ZMIO64MA.js";
9
- import "../chunk-KWYCUXJX.js";
7
+ } from "../chunk-TLN54TOQ.js";
8
+ import "../chunk-LDRO4OQ4.js";
9
+ import "../chunk-VL7OYSHD.js";
10
10
  import {
11
11
  pluginCatalogRuntime
12
- } from "../chunk-APUL3Y63.js";
13
- import "../chunk-7Y2OKB5K.js";
12
+ } from "../chunk-JLN4XSPR.js";
13
+ import "../chunk-HJ4KDO4N.js";
14
14
  import "../chunk-77VDLF3Z.js";
15
15
  import "../chunk-HZF5P5UN.js";
16
16
  import "../chunk-F3B2YJ76.js";
17
- import "../chunk-HSPYTFMD.js";
17
+ import "../chunk-EJRJWBKG.js";
18
18
  import "../chunk-6GWA276C.js";
19
19
  import "../chunk-OOUNJNMR.js";
20
20
  import "../chunk-H4HBKISO.js";
21
- import "../chunk-TD2A27ET.js";
22
- import "../chunk-SVX4JDOR.js";
21
+ import "../chunk-FX6BLEDP.js";
22
+ import "../chunk-IKO5LFIU.js";
23
23
  import "../chunk-MLKGABMK.js";
24
24
 
25
25
  // src/cli/snapshot-create.ts
@@ -8,24 +8,24 @@ import {
8
8
  } from "../chunk-Y2CM7HXH.js";
9
9
  import {
10
10
  createJuniorSqlExecutor
11
- } from "../chunk-KB2M27DL.js";
11
+ } from "../chunk-QWGZ273D.js";
12
12
  import {
13
13
  getChatConfig
14
- } from "../chunk-ZMIO64MA.js";
14
+ } from "../chunk-LDRO4OQ4.js";
15
15
  import "../chunk-VFUK3X5B.js";
16
- import "../chunk-KWYCUXJX.js";
16
+ import "../chunk-VL7OYSHD.js";
17
17
  import {
18
18
  createPluginCatalogRuntime
19
- } from "../chunk-7Y2OKB5K.js";
19
+ } from "../chunk-HJ4KDO4N.js";
20
20
  import "../chunk-77VDLF3Z.js";
21
21
  import "../chunk-HZF5P5UN.js";
22
22
  import "../chunk-F3B2YJ76.js";
23
- import "../chunk-HSPYTFMD.js";
23
+ import "../chunk-EJRJWBKG.js";
24
24
  import "../chunk-6GWA276C.js";
25
25
  import "../chunk-OOUNJNMR.js";
26
26
  import "../chunk-H4HBKISO.js";
27
- import "../chunk-TD2A27ET.js";
28
- import "../chunk-SVX4JDOR.js";
27
+ import "../chunk-FX6BLEDP.js";
28
+ import "../chunk-IKO5LFIU.js";
29
29
  import "../chunk-MLKGABMK.js";
30
30
 
31
31
  // src/chat/conversations/sql/migrations.ts
@@ -396,7 +396,8 @@ async function runUpgrade(io = DEFAULT_IO, options = {}) {
396
396
  const { sql } = getChatConfig();
397
397
  const sqlExecutor = createJuniorSqlExecutor({
398
398
  connectionString: sql.databaseUrl,
399
- driver: sql.driver
399
+ driver: sql.driver,
400
+ statementTimeoutMs: false
400
401
  });
401
402
  try {
402
403
  const pluginSet = options.pluginSet === void 0 ? await resolveUpgradePluginSet() : options.pluginSet ?? void 0;
@@ -1,7 +1,8 @@
1
1
  import type { JuniorSqlExecutor } from "./db";
2
- import type { SqlDriver } from "@/chat/config";
2
+ import { type SqlDriver } from "@/chat/config";
3
3
  /** Create the SQL executor appropriate for the configured database URL. */
4
4
  export declare function createJuniorSqlExecutor(args: {
5
5
  connectionString: string;
6
6
  driver: SqlDriver;
7
+ statementTimeoutMs?: number | false;
7
8
  }): JuniorSqlExecutor;
package/dist/db/neon.d.ts CHANGED
@@ -4,4 +4,5 @@ export type NeonJuniorSqlExecutor = JuniorSqlExecutor;
4
4
  /** Create the shared Neon-backed Junior SQL executor. */
5
5
  export declare function createNeonJuniorSqlExecutor(args: {
6
6
  connectionString: string;
7
+ statementTimeoutMs?: number | false;
7
8
  }): NeonJuniorSqlExecutor;
@@ -3,4 +3,5 @@ import type { JuniorSqlExecutor } from "./db";
3
3
  export declare function createPostgresJuniorSqlExecutor(args: {
4
4
  applicationName?: string;
5
5
  connectionString: string;
6
+ statementTimeoutMs?: number | false;
6
7
  }): JuniorSqlExecutor;
@@ -0,0 +1,110 @@
1
+ /** Provider conversation coordinates bound to Junior's opaque durable conversation id. */
2
+ export declare const juniorConversationBindings: import("drizzle-orm/pg-core").PgTableWithColumns<{
3
+ name: "junior_conversation_bindings";
4
+ schema: undefined;
5
+ columns: {
6
+ conversationId: import("drizzle-orm/pg-core").PgColumn<{
7
+ name: "conversation_id";
8
+ tableName: "junior_conversation_bindings";
9
+ dataType: "string";
10
+ columnType: "PgText";
11
+ data: string;
12
+ driverParam: string;
13
+ notNull: true;
14
+ hasDefault: false;
15
+ isPrimaryKey: false;
16
+ isAutoincrement: false;
17
+ hasRuntimeDefault: false;
18
+ enumValues: [string, ...string[]];
19
+ baseColumn: never;
20
+ identity: undefined;
21
+ generated: undefined;
22
+ }, {}, {}>;
23
+ provider: import("drizzle-orm/pg-core").PgColumn<{
24
+ name: "provider";
25
+ tableName: "junior_conversation_bindings";
26
+ dataType: "string";
27
+ columnType: "PgText";
28
+ data: string;
29
+ driverParam: string;
30
+ notNull: true;
31
+ hasDefault: false;
32
+ isPrimaryKey: false;
33
+ isAutoincrement: false;
34
+ hasRuntimeDefault: false;
35
+ enumValues: [string, ...string[]];
36
+ baseColumn: never;
37
+ identity: undefined;
38
+ generated: undefined;
39
+ }, {}, {}>;
40
+ providerTenantId: import("drizzle-orm/pg-core").PgColumn<{
41
+ name: "provider_tenant_id";
42
+ tableName: "junior_conversation_bindings";
43
+ dataType: "string";
44
+ columnType: "PgText";
45
+ data: string;
46
+ driverParam: string;
47
+ notNull: true;
48
+ hasDefault: true;
49
+ isPrimaryKey: false;
50
+ isAutoincrement: false;
51
+ hasRuntimeDefault: false;
52
+ enumValues: [string, ...string[]];
53
+ baseColumn: never;
54
+ identity: undefined;
55
+ generated: undefined;
56
+ }, {}, {}>;
57
+ providerDestinationId: import("drizzle-orm/pg-core").PgColumn<{
58
+ name: "provider_destination_id";
59
+ tableName: "junior_conversation_bindings";
60
+ dataType: "string";
61
+ columnType: "PgText";
62
+ data: string;
63
+ driverParam: string;
64
+ notNull: true;
65
+ hasDefault: false;
66
+ isPrimaryKey: false;
67
+ isAutoincrement: false;
68
+ hasRuntimeDefault: false;
69
+ enumValues: [string, ...string[]];
70
+ baseColumn: never;
71
+ identity: undefined;
72
+ generated: undefined;
73
+ }, {}, {}>;
74
+ providerConversationId: import("drizzle-orm/pg-core").PgColumn<{
75
+ name: "provider_conversation_id";
76
+ tableName: "junior_conversation_bindings";
77
+ dataType: "string";
78
+ columnType: "PgText";
79
+ data: string;
80
+ driverParam: string;
81
+ notNull: true;
82
+ hasDefault: false;
83
+ isPrimaryKey: false;
84
+ isAutoincrement: false;
85
+ hasRuntimeDefault: false;
86
+ enumValues: [string, ...string[]];
87
+ baseColumn: never;
88
+ identity: undefined;
89
+ generated: undefined;
90
+ }, {}, {}>;
91
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
92
+ name: string;
93
+ tableName: "junior_conversation_bindings";
94
+ dataType: "date";
95
+ columnType: "PgTimestamp";
96
+ data: Date;
97
+ driverParam: string;
98
+ notNull: true;
99
+ hasDefault: false;
100
+ isPrimaryKey: false;
101
+ isAutoincrement: false;
102
+ hasRuntimeDefault: false;
103
+ enumValues: undefined;
104
+ baseColumn: never;
105
+ identity: undefined;
106
+ generated: undefined;
107
+ }, {}, {}>;
108
+ };
109
+ dialect: "pg";
110
+ }>;