@sentry/junior 0.176.2 → 0.178.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 (92) hide show
  1. package/dist/{agent-hooks-LQZFBXBK.js → agent-hooks-PBT4NNBV.js} +12 -12
  2. package/dist/api/conversations/archive.d.ts +5 -2
  3. package/dist/api/conversations/list.d.ts +0 -1
  4. package/dist/api/conversations/membership.d.ts +14 -0
  5. package/dist/api/conversations/projection.d.ts +2 -1
  6. package/dist/api/locations/detail.d.ts +1 -1
  7. package/dist/api/people/shared.d.ts +2 -2
  8. package/dist/api/schema/conversation.d.ts +4 -4
  9. package/dist/api/schema/location.d.ts +1 -1
  10. package/dist/api/schema/person.d.ts +1 -1
  11. package/dist/api/schema.js +1 -1
  12. package/dist/api.js +245 -166
  13. package/dist/app.js +52 -57
  14. package/dist/{catalog-runtime-P3DBC3XM.js → catalog-runtime-M7QGKPFZ.js} +5 -5
  15. package/dist/chat/agent/sandbox.d.ts +2 -0
  16. package/dist/chat/conversations/sql/participants.d.ts +1 -0
  17. package/dist/chat/conversations/store.d.ts +0 -1
  18. package/dist/chat/resource-events/notification.d.ts +6 -1
  19. package/dist/chat/sandbox/errors.d.ts +4 -0
  20. package/dist/chat/sandbox/noninteractive-command.d.ts +1 -0
  21. package/dist/chat/sandbox/prepare-workspace.d.ts +27 -3
  22. package/dist/chat/sandbox/sandbox.d.ts +2 -0
  23. package/dist/chat/sandbox/session.d.ts +2 -0
  24. package/dist/chat/sandbox/snapshot/builder-sandbox.d.ts +5 -0
  25. package/dist/chat/sandbox/snapshot/install.d.ts +2 -2
  26. package/dist/chat/sandbox/snapshot/span.d.ts +3 -0
  27. package/dist/chat/sandbox/snapshot/store.d.ts +20 -17
  28. package/dist/chat/sandbox/snapshot/waiting-error.d.ts +15 -0
  29. package/dist/chat/sandbox/snapshot/workspace.d.ts +17 -0
  30. package/dist/chat/services/workspace-snapshot-wait.d.ts +27 -0
  31. package/dist/chat/workspaces/types.d.ts +1 -0
  32. package/dist/{chunk-2PWBS4JK.js → chunk-22T3HB44.js} +1 -1
  33. package/dist/{chunk-LNV3NNDO.js → chunk-3ZZEPLLB.js} +2 -2
  34. package/dist/{chunk-DBXTXY2Z.js → chunk-4K6VNP3S.js} +9 -9
  35. package/dist/{chunk-SZWILPFG.js → chunk-534BO42N.js} +45 -276
  36. package/dist/{chunk-QWPKRFG6.js → chunk-6OYVH66J.js} +1 -1
  37. package/dist/{chunk-ESIS6NVJ.js → chunk-ABLODWPO.js} +1 -1
  38. package/dist/{chunk-LY6QWCJI.js → chunk-AGJ4OQ2V.js} +1 -1
  39. package/dist/{chunk-KKY2R2QF.js → chunk-AQHSXA3J.js} +331 -2
  40. package/dist/{chunk-JRDM64UU.js → chunk-AVRWMQ4U.js} +1 -1
  41. package/dist/{chunk-B2RBW7CX.js → chunk-BFLMRTPD.js} +6 -6
  42. package/dist/{chunk-HXX3CSGJ.js → chunk-BHHWCNXI.js} +5 -5
  43. package/dist/{chunk-H5SVUUPE.js → chunk-BUGO42R6.js} +4 -4
  44. package/dist/{chunk-2XQ45FB2.js → chunk-D3UJTX4U.js} +1 -1
  45. package/dist/{chunk-V4SBMRZ3.js → chunk-FQ6BMP5P.js} +767 -81
  46. package/dist/{chunk-AJ6M3LLM.js → chunk-G3CQEUHI.js} +5 -5
  47. package/dist/{chunk-RHNT2FYF.js → chunk-H6ZXBFGX.js} +1 -1
  48. package/dist/{chunk-FLBOMXLS.js → chunk-IQRPDKPJ.js} +1 -1
  49. package/dist/{chunk-OOH45KJS.js → chunk-JVXZ3WDH.js} +6 -6
  50. package/dist/{chunk-HLEE6JNT.js → chunk-KEQAA42D.js} +1 -1
  51. package/dist/{chunk-E7MUDWFH.js → chunk-LAOP4EPL.js} +6 -6
  52. package/dist/{chunk-FIWDSKL2.js → chunk-OGRD5PFM.js} +1 -1
  53. package/dist/{chunk-MNKXBIIA.js → chunk-PRDKO3QB.js} +124 -13
  54. package/dist/{chunk-YAB6CALP.js → chunk-QCCLDJHB.js} +8 -8
  55. package/dist/{chunk-FDA3E627.js → chunk-RE4XWXBV.js} +6 -6
  56. package/dist/{chunk-WVDCJ26T.js → chunk-RGV6KHDM.js} +4 -4
  57. package/dist/{chunk-73FXUNOB.js → chunk-RGXOLPWO.js} +1 -1
  58. package/dist/{chunk-ELEAIRTG.js → chunk-TKB25A3L.js} +2 -2
  59. package/dist/{chunk-UZM72ORS.js → chunk-U3UDPGZG.js} +2 -2
  60. package/dist/{chunk-PLJ3UO67.js → chunk-UGWBJAGN.js} +1 -1
  61. package/dist/{chunk-OJQTYDDD.js → chunk-UMG7M32G.js} +19 -19
  62. package/dist/{chunk-MOVIDCPX.js → chunk-XCNS3CXE.js} +11 -17
  63. package/dist/{chunk-TRG4RCTT.js → chunk-XWUJWHFD.js} +204 -100
  64. package/dist/{chunk-2KSPJ6EE.js → chunk-ZCHHVTMF.js} +14 -5
  65. package/dist/cli/chat.js +31 -30
  66. package/dist/cli/check.js +6 -6
  67. package/dist/cli/plugins.js +13 -13
  68. package/dist/cli/snapshot-create.js +10 -10
  69. package/dist/cli/upgrade.js +7 -7
  70. package/dist/db/schema/conversation-participants.d.ts +17 -0
  71. package/dist/db/schema/conversations.d.ts +629 -1
  72. package/dist/db/schema/snapshots.d.ts +1 -1
  73. package/dist/db/schema.d.ts +18 -1
  74. package/dist/{db-ATGRVFSI.js → db-QVYOWATH.js} +7 -7
  75. package/dist/instrumentation.js +4 -4
  76. package/dist/nitro.js +2 -2
  77. package/dist/{oauth-callback-server-55TYSRIZ.js → oauth-callback-server-PLPAFXO6.js} +23 -23
  78. package/dist/{runner-FD4BRECW.js → runner-AGNEIOZS.js} +15 -15
  79. package/dist/{skills-5YY7QYV6.js → skills-U5KQ66EM.js} +6 -6
  80. package/dist/spawn-ZRYYZP2B.js +37 -0
  81. package/dist/{validation-KH5UQUV4.js → validation-QE4U45KS.js} +6 -6
  82. package/dist/version.js +1 -1
  83. package/dist/{work-5LWDUEO4.js → work-ATAXAHJJ.js} +18 -18
  84. package/dist/worker-LIL5AOER.js +24 -0
  85. package/migrations/0033_workspace_snapshot_active_build.sql +1 -0
  86. package/migrations/0034_strong_randall.sql +31 -0
  87. package/migrations/meta/0033_snapshot.json +2914 -0
  88. package/migrations/meta/0034_snapshot.json +3038 -0
  89. package/migrations/meta/_journal.json +15 -1
  90. package/package.json +5 -5
  91. package/dist/spawn-6IS46YNW.js +0 -37
  92. package/dist/worker-XKVLTAI2.js +0 -24
@@ -1,6 +1,13 @@
1
+ import {
2
+ toOptionalTrimmed
3
+ } from "./chunk-3ZZEPLLB.js";
1
4
  import {
2
5
  pluginCatalogRuntime
3
- } from "./chunk-ESIS6NVJ.js";
6
+ } from "./chunk-ABLODWPO.js";
7
+ import {
8
+ setSpanAttributes,
9
+ setSpanStatus
10
+ } from "./chunk-UGWBJAGN.js";
4
11
 
5
12
  // src/chat/sandbox/paths.ts
6
13
  function normalizeWorkspaceRoot(input) {
@@ -93,7 +100,8 @@ async function runNonInteractiveCommand(sandbox, input) {
93
100
  ...buildNonInteractiveCommand(input),
94
101
  ...input.cwd ? { cwd: input.cwd } : {},
95
102
  ...input.signal ? { signal: input.signal } : {},
96
- ...input.sudo !== void 0 ? { sudo: input.sudo } : {}
103
+ ...input.sudo !== void 0 ? { sudo: input.sudo } : {},
104
+ ...input.timeoutMs !== void 0 ? { timeoutMs: input.timeoutMs } : {}
97
105
  };
98
106
  return await sandbox.runCommand(command);
99
107
  }
@@ -380,6 +388,313 @@ function sleep(ms, signal) {
380
388
  });
381
389
  }
382
390
 
391
+ // src/chat/sandbox/credentials.ts
392
+ function getVercelSandboxCredentials() {
393
+ const token = toOptionalTrimmed(process.env.VERCEL_TOKEN);
394
+ const teamId = toOptionalTrimmed(process.env.VERCEL_TEAM_ID);
395
+ const projectId = toOptionalTrimmed(process.env.VERCEL_PROJECT_ID);
396
+ if (token && teamId && projectId) {
397
+ return { token, teamId, projectId };
398
+ }
399
+ return void 0;
400
+ }
401
+
402
+ // src/chat/sandbox/snapshot/waiting-error.ts
403
+ var WorkspaceSnapshotWaitingError = class extends Error {
404
+ code = "workspace_snapshot_waiting";
405
+ workspaceName;
406
+ constructor(workspaceName) {
407
+ super(
408
+ `Workspace ${workspaceName} snapshot is still building; yielded for requeue`
409
+ );
410
+ this.name = "WorkspaceSnapshotWaitingError";
411
+ this.workspaceName = workspaceName;
412
+ }
413
+ };
414
+ function isWorkspaceSnapshotWaitingResult(details) {
415
+ if (!details || typeof details !== "object" || Array.isArray(details)) {
416
+ return false;
417
+ }
418
+ const record = details;
419
+ return record.timed_out === true && record.waiting === "workspace_snapshot" && typeof record.workspace?.name === "string" && record.workspace.name.length > 0;
420
+ }
421
+ function workspaceNameFromWaitingResult(details) {
422
+ if (!isWorkspaceSnapshotWaitingResult(details)) return void 0;
423
+ const name = details.workspace?.name;
424
+ return typeof name === "string" ? name : void 0;
425
+ }
426
+ function isWorkspaceSnapshotWaitingError(error) {
427
+ const seen = /* @__PURE__ */ new Set();
428
+ let current = error;
429
+ while (current && !seen.has(current)) {
430
+ if (current instanceof WorkspaceSnapshotWaitingError) return true;
431
+ if (current instanceof Error && (current.name === "WorkspaceSnapshotWaitingError" || current.code === "workspace_snapshot_waiting")) {
432
+ return true;
433
+ }
434
+ seen.add(current);
435
+ current = typeof current === "object" ? current.cause : void 0;
436
+ }
437
+ return false;
438
+ }
439
+
440
+ // src/chat/sandbox/http-error-details.ts
441
+ var DEFAULT_PREVIEW_LIMIT = 512;
442
+ function toTrimmedString(value, maxChars) {
443
+ if (typeof value !== "string") {
444
+ return void 0;
445
+ }
446
+ const normalized = value.trim();
447
+ if (!normalized) {
448
+ return void 0;
449
+ }
450
+ return normalized.length > maxChars ? `${normalized.slice(0, maxChars)}\u2026` : normalized;
451
+ }
452
+ function extractHttpErrorDetails(error, options = {}) {
453
+ const prefix = options.attributePrefix ?? "app.http_error";
454
+ const previewLimit = options.previewLimit ?? DEFAULT_PREVIEW_LIMIT;
455
+ const normalizedError = error instanceof Error ? error : new Error(String(error));
456
+ const err = error ?? {};
457
+ const attributes = {
458
+ "error.type": normalizedError.name || "Error",
459
+ "exception.message": toTrimmedString(normalizedError.message, previewLimit) ?? "HTTP error"
460
+ };
461
+ const response = err.response;
462
+ const statusCode = typeof response?.status === "number" ? response.status : void 0;
463
+ const statusText = toTrimmedString(response?.statusText, previewLimit);
464
+ const responseUrl = toTrimmedString(response?.url, previewLimit);
465
+ const responseText = toTrimmedString(err.text, previewLimit);
466
+ const responseJson = toTrimmedString(
467
+ err.json && typeof err.json === "object" ? JSON.stringify(err.json) : void 0,
468
+ previewLimit
469
+ );
470
+ const contentType = toTrimmedString(
471
+ response?.headers?.get?.("content-type"),
472
+ previewLimit
473
+ );
474
+ const requestIdHeader = toTrimmedString(
475
+ response?.headers?.get?.("x-request-id"),
476
+ previewLimit
477
+ );
478
+ const vercelIdHeader = toTrimmedString(
479
+ response?.headers?.get?.("x-vercel-id"),
480
+ previewLimit
481
+ );
482
+ const requestId = requestIdHeader ?? vercelIdHeader;
483
+ if (statusCode !== void 0) {
484
+ attributes["http.response.status_code"] = statusCode;
485
+ }
486
+ if (statusText) {
487
+ attributes[`${prefix}.status_text`] = statusText;
488
+ }
489
+ if (responseUrl) {
490
+ attributes["url.full"] = responseUrl;
491
+ }
492
+ if (contentType) {
493
+ attributes["http.response.header.content-type"] = [contentType];
494
+ }
495
+ if (requestIdHeader) {
496
+ attributes["http.response.header.x-request-id"] = [requestIdHeader];
497
+ }
498
+ if (vercelIdHeader) {
499
+ attributes["http.response.header.x-vercel-id"] = [vercelIdHeader];
500
+ }
501
+ if (responseText) {
502
+ attributes[`${prefix}.response_text_preview`] = responseText;
503
+ attributes[`${prefix}.response_text_length`] = responseText.length;
504
+ }
505
+ if (responseJson) {
506
+ attributes[`${prefix}.response_json_preview`] = responseJson;
507
+ }
508
+ const summaryParts = [];
509
+ if (statusCode !== void 0) {
510
+ summaryParts.push(`status=${statusCode}`);
511
+ }
512
+ if (statusText) {
513
+ summaryParts.push(`statusText=${statusText}`);
514
+ }
515
+ if (responseUrl) {
516
+ summaryParts.push(`url=${responseUrl}`);
517
+ }
518
+ if (requestId) {
519
+ summaryParts.push(`requestId=${requestId}`);
520
+ }
521
+ for (const field of options.extraFields ?? []) {
522
+ const value = toTrimmedString(err[field.sourceKey], previewLimit);
523
+ if (!value) {
524
+ continue;
525
+ }
526
+ attributes[`${prefix}.${field.attributeKey}`] = value;
527
+ summaryParts.push(`${field.summaryKey ?? field.attributeKey}=${value}`);
528
+ }
529
+ if (responseJson) {
530
+ summaryParts.push(`json=${responseJson}`);
531
+ } else if (responseText) {
532
+ summaryParts.push(`text=${responseText}`);
533
+ }
534
+ const searchableText = `${normalizedError.message} ${responseText ?? ""} ${responseJson ?? ""}`.toLowerCase();
535
+ return {
536
+ attributes,
537
+ summary: summaryParts.join(", "),
538
+ searchableText
539
+ };
540
+ }
541
+
542
+ // src/chat/sandbox/errors.ts
543
+ var SANDBOX_ERROR_FIELDS = [
544
+ {
545
+ sourceKey: "sandboxId",
546
+ attributeKey: "sandbox_id",
547
+ summaryKey: "sandboxId"
548
+ }
549
+ ];
550
+ function getSandboxErrorDetails(error) {
551
+ return extractHttpErrorDetails(error, {
552
+ attributePrefix: "app.sandbox.api_error",
553
+ extraFields: [...SANDBOX_ERROR_FIELDS]
554
+ });
555
+ }
556
+ function findInErrorChain(error, predicate) {
557
+ const seen = /* @__PURE__ */ new Set();
558
+ let current = error;
559
+ while (current && !seen.has(current)) {
560
+ if (predicate(current)) {
561
+ return true;
562
+ }
563
+ seen.add(current);
564
+ current = typeof current === "object" ? current.cause : void 0;
565
+ }
566
+ return false;
567
+ }
568
+ function isRecord(value) {
569
+ return typeof value === "object" && value !== null;
570
+ }
571
+ function isInvalidSandboxSessionError(error) {
572
+ if (!isRecord(error)) {
573
+ return false;
574
+ }
575
+ if (isRecord(error.json) && error.json.invalidToken === true) {
576
+ return true;
577
+ }
578
+ const response = error.response;
579
+ return isRecord(response) && response.status === 403 && typeof response.url === "string" && response.url.includes("/sandboxes/sessions");
580
+ }
581
+ function getFirstErrorMessage(error) {
582
+ const seen = /* @__PURE__ */ new Set();
583
+ let current = error;
584
+ while (current && !seen.has(current)) {
585
+ if (current instanceof Error) {
586
+ const message = current.message.trim();
587
+ if (message) {
588
+ return message;
589
+ }
590
+ }
591
+ seen.add(current);
592
+ current = typeof current === "object" ? current.cause : void 0;
593
+ }
594
+ return void 0;
595
+ }
596
+ function isAlreadyExistsError(error) {
597
+ const details = getSandboxErrorDetails(error);
598
+ return details.searchableText.includes("already exists") || details.searchableText.includes("file exists") || details.searchableText.includes("eexist");
599
+ }
600
+ function isSandboxUnavailableError(error) {
601
+ return findInErrorChain(error, (candidate) => {
602
+ if (isInvalidSandboxSessionError(candidate)) {
603
+ return true;
604
+ }
605
+ const details = getSandboxErrorDetails(candidate);
606
+ const searchable = `${details.searchableText} ${details.summary}`.toLowerCase();
607
+ return searchable.includes("sandbox_stopped") || searchable.includes("status=410") || searchable.includes("status code 410") || searchable.includes("no longer available") || searchable.includes("stream was closed and is not accepting commands");
608
+ });
609
+ }
610
+ function isSandboxMissingError(error) {
611
+ return findInErrorChain(error, (candidate) => {
612
+ const details = getSandboxErrorDetails(candidate);
613
+ const searchable = `${details.searchableText} ${details.summary}`.toLowerCase();
614
+ return searchable.includes("status=404") || searchable.includes("status code 404") || searchable.includes("snapshot_not_found");
615
+ });
616
+ }
617
+ function isSnapshottingError(error) {
618
+ return findInErrorChain(error, (candidate) => {
619
+ const details = getSandboxErrorDetails(candidate);
620
+ const searchable = `${details.searchableText} ${details.summary}`.toLowerCase();
621
+ return searchable.includes("sandbox_snapshotting") || searchable.includes("creating a snapshot") || searchable.includes("stopped shortly");
622
+ });
623
+ }
624
+ function isAbortError(error) {
625
+ return findInErrorChain(error, (candidate) => {
626
+ if (typeof DOMException !== "undefined" && candidate instanceof DOMException) {
627
+ return candidate.name === "AbortError";
628
+ }
629
+ if (!(candidate instanceof Error)) return false;
630
+ if (candidate.name === "AbortError") return true;
631
+ const message = candidate.message.toLowerCase();
632
+ return message === "api turn cancelled" || message === "api turn canceled" || message.startsWith("executeagentrun timed out after");
633
+ });
634
+ }
635
+ function isSandboxApiTransientError(error) {
636
+ return findInErrorChain(error, (candidate) => {
637
+ const details = getSandboxErrorDetails(candidate);
638
+ const searchable = `${details.searchableText} ${details.summary}`.toLowerCase();
639
+ if (searchable.includes("internal_server_error") || searchable.includes("status=500") || searchable.includes("status code 500") || searchable.includes("status=502") || searchable.includes("status code 502") || searchable.includes("status=503") || searchable.includes("status code 503") || searchable.includes("status=504") || searchable.includes("status code 504")) {
640
+ return true;
641
+ }
642
+ if (!isRecord(candidate)) return false;
643
+ const response = candidate.response;
644
+ return isRecord(response) && typeof response.status === "number" && response.status >= 500 && response.status < 600;
645
+ });
646
+ }
647
+ function isSandboxCommandStreamInterruptedError(error) {
648
+ return findInErrorChain(error, (candidate) => {
649
+ if (!(candidate instanceof Error)) {
650
+ return false;
651
+ }
652
+ return candidate.name === "StreamError" && candidate.message.toLowerCase().includes("stream ended before command finished");
653
+ });
654
+ }
655
+ function wrapSandboxSetupError(error) {
656
+ if (isWorkspaceSnapshotWaitingError(error)) {
657
+ return error instanceof Error ? error : new Error(String(error));
658
+ }
659
+ try {
660
+ const details = getSandboxErrorDetails(error);
661
+ if (details.summary) {
662
+ return new Error(`sandbox setup failed (${details.summary})`, {
663
+ cause: error
664
+ });
665
+ }
666
+ } catch {
667
+ }
668
+ let causeMessage;
669
+ try {
670
+ causeMessage = getFirstErrorMessage(error);
671
+ } catch (cause) {
672
+ causeMessage = cause instanceof Error ? cause.message : void 0;
673
+ }
674
+ if (causeMessage && causeMessage.trim() && causeMessage !== "sandbox setup failed") {
675
+ const oneLine = causeMessage.replace(/\s+/g, " ").trim();
676
+ return new Error(`sandbox setup failed (${oneLine})`, { cause: error });
677
+ }
678
+ return new Error("sandbox setup failed", { cause: error });
679
+ }
680
+ function throwSandboxOperationError(action, error, includeMissingPath = false) {
681
+ const details = getSandboxErrorDetails(error);
682
+ setSpanAttributes({
683
+ ...details.attributes,
684
+ ...includeMissingPath ? {
685
+ "app.sandbox.api_error.missing_path": details.searchableText.includes("no such file") || details.searchableText.includes("enoent")
686
+ } : {},
687
+ "app.sandbox.success": false
688
+ });
689
+ setSpanStatus("error");
690
+ throw new Error(
691
+ details.summary ? `${action} failed (${details.summary})` : `${action} failed`,
692
+ {
693
+ cause: error
694
+ }
695
+ );
696
+ }
697
+
383
698
  export {
384
699
  SANDBOX_WORKSPACE_ROOT,
385
700
  SANDBOX_REPOS_ROOT,
@@ -388,10 +703,24 @@ export {
388
703
  sandboxSkillDir,
389
704
  sandboxSkillFile,
390
705
  sandboxSkillPathResolution,
706
+ WorkspaceSnapshotWaitingError,
707
+ isWorkspaceSnapshotWaitingResult,
708
+ workspaceNameFromWaitingResult,
709
+ isWorkspaceSnapshotWaitingError,
391
710
  sleep,
392
711
  buildCommandScript,
393
712
  buildNonInteractiveShellScript,
394
713
  runNonInteractiveCommand,
714
+ getVercelSandboxCredentials,
715
+ isAlreadyExistsError,
716
+ isSandboxUnavailableError,
717
+ isSandboxMissingError,
718
+ isSnapshottingError,
719
+ isAbortError,
720
+ isSandboxApiTransientError,
721
+ isSandboxCommandStreamInterruptedError,
722
+ wrapSandboxSetupError,
723
+ throwSandboxOperationError,
395
724
  ensureDockerDaemon,
396
725
  create,
397
726
  hash,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getStateAdapter
3
- } from "./chunk-RHNT2FYF.js";
3
+ } from "./chunk-H6ZXBFGX.js";
4
4
  import {
5
5
  getClient
6
6
  } from "./chunk-6GWA276C.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-PDO5BLNM.js";
4
4
  import {
5
5
  ToolInputError
6
- } from "./chunk-TRG4RCTT.js";
6
+ } from "./chunk-XWUJWHFD.js";
7
7
  import {
8
8
  agentHistoryItemSchema,
9
9
  bindProviderConversation,
@@ -16,25 +16,25 @@ import {
16
16
  instructionProvenanceFor,
17
17
  sanitizePostgresJson,
18
18
  withConversationEventLock
19
- } from "./chunk-MOVIDCPX.js";
19
+ } from "./chunk-XCNS3CXE.js";
20
20
  import {
21
21
  SANDBOX_REPOS_ROOT,
22
22
  SANDBOX_WORKSPACE_ROOT,
23
23
  sleep
24
- } from "./chunk-KKY2R2QF.js";
24
+ } from "./chunk-AQHSXA3J.js";
25
25
  import {
26
26
  MUTATION_LOCK_TTL_MS,
27
27
  fenceLock,
28
28
  getStateAdapter,
29
29
  withLock
30
- } from "./chunk-RHNT2FYF.js";
30
+ } from "./chunk-H6ZXBFGX.js";
31
31
  import {
32
32
  botConfig,
33
33
  completeText,
34
34
  escapeXml,
35
35
  resolveGatewayModel,
36
36
  unwrapCurrentInstruction
37
- } from "./chunk-LNV3NNDO.js";
37
+ } from "./chunk-3ZZEPLLB.js";
38
38
  import {
39
39
  parseSlackMessageTs,
40
40
  toStoredSlackActor
@@ -44,7 +44,7 @@ import {
44
44
  logException,
45
45
  logWarn,
46
46
  setSpanAttributes
47
- } from "./chunk-PLJ3UO67.js";
47
+ } from "./chunk-UGWBJAGN.js";
48
48
 
49
49
  // src/chat/turn-context-tag.ts
50
50
  var TURN_CONTEXT_TAG = "runtime-turn-context";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  formatProviderLabel,
6
6
  startOAuthFlow
7
- } from "./chunk-OOH45KJS.js";
7
+ } from "./chunk-JVXZ3WDH.js";
8
8
  import {
9
9
  parseSandboxEgressAuthRequiredSignal
10
10
  } from "./chunk-6ZWRNC4D.js";
@@ -12,16 +12,16 @@ import {
12
12
  abandonReplacedPendingAuth,
13
13
  canReusePendingAuthLink,
14
14
  recordAuthorizationRequested
15
- } from "./chunk-B2RBW7CX.js";
15
+ } from "./chunk-BFLMRTPD.js";
16
16
  import {
17
17
  AGENT_INVOCATION_MAILBOX_STATUSES
18
- } from "./chunk-2KSPJ6EE.js";
18
+ } from "./chunk-ZCHHVTMF.js";
19
19
  import {
20
20
  TURN_REASONING_LEVELS
21
- } from "./chunk-LNV3NNDO.js";
21
+ } from "./chunk-3ZZEPLLB.js";
22
22
  import {
23
23
  pluginCatalogRuntime
24
- } from "./chunk-ESIS6NVJ.js";
24
+ } from "./chunk-ABLODWPO.js";
25
25
  import {
26
26
  credentialContextSchema
27
27
  } from "./chunk-CGA4ERJ5.js";
@@ -8,14 +8,14 @@ import {
8
8
  getConversationStore,
9
9
  parseDestination,
10
10
  sameDestination
11
- } from "./chunk-MOVIDCPX.js";
11
+ } from "./chunk-XCNS3CXE.js";
12
12
  import {
13
13
  getDefaultRedisStateAdapterFor,
14
14
  getStateAdapter
15
- } from "./chunk-RHNT2FYF.js";
15
+ } from "./chunk-H6ZXBFGX.js";
16
16
  import {
17
17
  getChatConfig
18
- } from "./chunk-LNV3NNDO.js";
18
+ } from "./chunk-3ZZEPLLB.js";
19
19
  import {
20
20
  parseStoredSlackActor
21
21
  } from "./chunk-M63DETLL.js";
@@ -23,7 +23,7 @@ import {
23
23
  isRecord,
24
24
  toOptionalNumber,
25
25
  toOptionalString
26
- } from "./chunk-PLJ3UO67.js";
26
+ } from "./chunk-UGWBJAGN.js";
27
27
 
28
28
  // src/chat/task-execution/state.ts
29
29
  import { randomUUID } from "crypto";
@@ -5,7 +5,7 @@ import {
5
5
  logInfo,
6
6
  logWarn,
7
7
  setSpanAttributes
8
- } from "./chunk-PLJ3UO67.js";
8
+ } from "./chunk-UGWBJAGN.js";
9
9
  import {
10
10
  discoverInstalledPluginPackageContent,
11
11
  normalizePluginPackageNames