@sentry/junior 0.202.0 → 0.204.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 (174) hide show
  1. package/dist/agent-CMyTD4DD.js +17509 -0
  2. package/dist/agent-hooks-Bbcp9e33.js +4040 -0
  3. package/dist/agent-runner-DNb1A49M.js +678 -0
  4. package/dist/api/schema.d.ts +2728 -2639
  5. package/dist/api/schema.js +4 -169
  6. package/dist/api.d.ts +23 -17
  7. package/dist/api.js +3881 -5326
  8. package/dist/app-B1TOqBI8.d.ts +246 -0
  9. package/dist/app.d.ts +4 -520
  10. package/dist/app.js +9522 -11875
  11. package/dist/auth-pause-state-DosEalIG.js +168 -0
  12. package/dist/catalog-runtime-BReos-D4.js +7 -0
  13. package/dist/checkpoint-CNrPyRJN.js +2450 -0
  14. package/dist/cli/chat.d.ts +20 -0
  15. package/dist/cli/chat.js +229 -336
  16. package/dist/cli/check.d.ts +8 -0
  17. package/dist/cli/check.js +513 -806
  18. package/dist/cli/env.d.ts +13 -0
  19. package/dist/cli/env.js +63 -12
  20. package/dist/cli/init.d.ts +3 -0
  21. package/dist/cli/init.js +90 -159
  22. package/dist/cli/main.d.ts +6 -0
  23. package/dist/cli/main.js +43 -64
  24. package/dist/cli/plugins.d.ts +13 -0
  25. package/dist/cli/plugins.js +148 -227
  26. package/dist/cli/run.d.ts +16 -0
  27. package/dist/cli/run.js +52 -8
  28. package/dist/cli/snapshot-create.d.ts +4 -0
  29. package/dist/cli/snapshot-create.js +71 -125
  30. package/dist/cli/upgrade.d.ts +15 -0
  31. package/dist/cli/upgrade.js +232 -335
  32. package/dist/config-nGCW1OTG.js +941 -0
  33. package/dist/context-B45_WqVX.js +298 -0
  34. package/dist/conversation-privacy-B4voFRSm.js +182 -0
  35. package/dist/conversation-work-C6y3T5Hx.js +51 -0
  36. package/dist/credential-sync-kXr1hvO1.js +2660 -0
  37. package/dist/db-BeyXKJOI.d.ts +5 -0
  38. package/dist/destinations-BeBiJeEM.js +29 -0
  39. package/dist/execution-stats-DWfSihcH.js +373 -0
  40. package/dist/executor-DcMSlI5c.js +721 -0
  41. package/dist/experimental-CIXf7Uye.js +46 -0
  42. package/dist/history-ClE4toxe.d.ts +32 -0
  43. package/dist/history-CqTuSAdI.js +441 -0
  44. package/dist/instrumentation.d.ts +3 -3
  45. package/dist/instrumentation.js +130 -176
  46. package/dist/job-queue-Drn_LXlM.js +63 -0
  47. package/dist/logging-BzAk1S_s.js +1210 -0
  48. package/dist/model-profile-CZmVoGdX.js +49 -0
  49. package/dist/nitro.d.ts +31 -36
  50. package/dist/nitro.js +275 -456
  51. package/dist/oauth-callback-server-JiftokvA.js +130 -0
  52. package/dist/oauth-relay-CdCnu80W.js +62 -0
  53. package/dist/package-discovery-7a9YqLhE.js +455 -0
  54. package/dist/pending-auth-CWmSdZVg.js +185 -0
  55. package/dist/plugin-module-BKGOXca2.js +81 -0
  56. package/dist/plugins-BI9A1vKA.d.ts +95 -0
  57. package/dist/plugins-egKWjgue.js +99 -0
  58. package/dist/private-trace-result-BLvBjy_e.js +16 -0
  59. package/dist/profile-CrT5nXbw.js +861 -0
  60. package/dist/registry-DH1xUo2N.js +1419 -0
  61. package/dist/reporting-schema-DosTN__Q.js +105 -0
  62. package/dist/resolve-CZHnfxaS.js +546 -0
  63. package/dist/rolldown-runtime-B4FMCO8f.js +28 -0
  64. package/dist/runner-CZV2sC46.js +392 -0
  65. package/dist/sandbox-egress-signals-bHZfmhbd.js +46 -0
  66. package/dist/schema-Rn8-XEaN.js +1140 -0
  67. package/dist/sentry-CD3SdJl-.js +26 -0
  68. package/dist/skills-CIcDQSgM.js +316 -0
  69. package/dist/spawn-DdkUFRmq.js +29 -0
  70. package/dist/stats-DTUbAb88.js +2634 -0
  71. package/dist/store-C5qxF2ac.d.ts +208 -0
  72. package/dist/task-queue-CJIR4RF7.js +136 -0
  73. package/dist/task-runner-D-O3A-Cp.js +639 -0
  74. package/dist/thread-state-CRc9jTJS.js +431 -0
  75. package/dist/turn-execution-BkinIdJF.js +47 -0
  76. package/dist/turn-lifecycle-DQV19VTW.js +54 -0
  77. package/dist/usage-D3EbSO7w.js +296 -0
  78. package/dist/usage-schema-CKaDkH_j.js +20 -0
  79. package/dist/validation-C2CR-OX3.js +40 -0
  80. package/dist/vercel-queue-DIkVcfK4.js +167 -0
  81. package/dist/vercel.d.ts +6 -6
  82. package/dist/vercel.js +14 -6
  83. package/dist/version-CnXZ614E.d.ts +5 -0
  84. package/dist/version-DxcWdoKa.js +8 -0
  85. package/dist/version.d.ts +2 -4
  86. package/dist/version.js +2 -6
  87. package/dist/web-authorization-RMBxAR_t.js +76 -0
  88. package/dist/web-input-3EPfpf55.js +494 -0
  89. package/dist/work-fGofI7Op.js +509 -0
  90. package/dist/worker-CsOLq-mR.js +625 -0
  91. package/package.json +9 -9
  92. package/dist/agent-hooks-UXITLYOK.js +0 -51
  93. package/dist/catalog-runtime-BG3JLLK2.js +0 -14
  94. package/dist/chunk-2LYHWMR4.js +0 -46
  95. package/dist/chunk-2MK3QBGA.js +0 -321
  96. package/dist/chunk-3PGQSKJV.js +0 -692
  97. package/dist/chunk-3UI3WFTX.js +0 -519
  98. package/dist/chunk-3Y47VMHV.js +0 -6
  99. package/dist/chunk-4UO6FK4G.js +0 -64
  100. package/dist/chunk-5NOPO64K.js +0 -198
  101. package/dist/chunk-5PKWYPFT.js +0 -2943
  102. package/dist/chunk-63NKKFJL.js +0 -1228
  103. package/dist/chunk-6AYH6252.js +0 -787
  104. package/dist/chunk-6Y5B5PEX.js +0 -80
  105. package/dist/chunk-7DHZP5KJ.js +0 -333
  106. package/dist/chunk-7H2VZTWN.js +0 -103
  107. package/dist/chunk-7NL7T6VU.js +0 -406
  108. package/dist/chunk-A76OIMYN.js +0 -102
  109. package/dist/chunk-AWMS3SPP.js +0 -58
  110. package/dist/chunk-B3LY5RCL.js +0 -229
  111. package/dist/chunk-BD2KT3OB.js +0 -36
  112. package/dist/chunk-BXCX5QKA.js +0 -2086
  113. package/dist/chunk-C6VVF43U.js +0 -81
  114. package/dist/chunk-CEMMLV5L.js +0 -98
  115. package/dist/chunk-CM5HNV2W.js +0 -131
  116. package/dist/chunk-DA2KGZZI.js +0 -13
  117. package/dist/chunk-DBVY6HLX.js +0 -64
  118. package/dist/chunk-DIB4GX3G.js +0 -8
  119. package/dist/chunk-DKIJ2RP5.js +0 -68
  120. package/dist/chunk-DL2KLKVH.js +0 -931
  121. package/dist/chunk-DWPN6SCH.js +0 -172
  122. package/dist/chunk-ELWOYVOY.js +0 -206
  123. package/dist/chunk-EWT7H65X.js +0 -506
  124. package/dist/chunk-FA6POGLH.js +0 -70
  125. package/dist/chunk-HMREVIO2.js +0 -135
  126. package/dist/chunk-IIWUT4FO.js +0 -820
  127. package/dist/chunk-JAL3CH4G.js +0 -27
  128. package/dist/chunk-JSJQEWBJ.js +0 -3295
  129. package/dist/chunk-KHKKHDLD.js +0 -387
  130. package/dist/chunk-LA6R4A7Q.js +0 -706
  131. package/dist/chunk-LOOU2DUR.js +0 -20428
  132. package/dist/chunk-M6FHWXE3.js +0 -700
  133. package/dist/chunk-M76HMB7M.js +0 -1856
  134. package/dist/chunk-MAGNK5J4.js +0 -1520
  135. package/dist/chunk-MTM5IFCY.js +0 -1190
  136. package/dist/chunk-N7TMSOZH.js +0 -235
  137. package/dist/chunk-NHJU2ZAL.js +0 -56
  138. package/dist/chunk-NSXKRGRT.js +0 -717
  139. package/dist/chunk-OWMPFXJA.js +0 -1764
  140. package/dist/chunk-PDO5BLNM.js +0 -22
  141. package/dist/chunk-PEQXYSSE.js +0 -45
  142. package/dist/chunk-PW4P4JYF.js +0 -1135
  143. package/dist/chunk-QB54UQUS.js +0 -320
  144. package/dist/chunk-QP3OGJXF.js +0 -105
  145. package/dist/chunk-RC745GGZ.js +0 -122
  146. package/dist/chunk-REOIRYPR.js +0 -37
  147. package/dist/chunk-SCOZRLZ4.js +0 -164
  148. package/dist/chunk-TXJSXBV5.js +0 -1433
  149. package/dist/chunk-TXKUKMVO.js +0 -417
  150. package/dist/chunk-U2GPUYAL.js +0 -3656
  151. package/dist/chunk-UIE3R5XU.js +0 -17
  152. package/dist/chunk-UXPG6ZIN.js +0 -84
  153. package/dist/chunk-VFUK3X5B.js +0 -50
  154. package/dist/chunk-WQSHDTTI.js +0 -1163
  155. package/dist/chunk-X6GDDWQH.js +0 -60
  156. package/dist/chunk-Y2CM7HXH.js +0 -111
  157. package/dist/chunk-Y7X25LFY.js +0 -15
  158. package/dist/chunk-YDUR3ZYW.js +0 -10
  159. package/dist/conversation-work-VIOQ5ZF3.js +0 -54
  160. package/dist/db-3L2MCVRI.js +0 -26
  161. package/dist/discovery-DWVDM7UK.js +0 -44
  162. package/dist/experimental-P5FZM4CU.js +0 -12
  163. package/dist/oauth-callback-server-YVV6C6T2.js +0 -243
  164. package/dist/oauth-relay-5XPVRPYB.js +0 -8
  165. package/dist/plugins-YTYJMMJF.js +0 -14
  166. package/dist/runner-LQ7RETDP.js +0 -522
  167. package/dist/sandbox-egress-signals-FIL7EGPR.js +0 -73
  168. package/dist/sentry-MB3NL3IR.js +0 -42
  169. package/dist/skills-XRWYEDCD.js +0 -27
  170. package/dist/spawn-RC6SJUAI.js +0 -42
  171. package/dist/task-runner-7DY7ARYH.js +0 -36
  172. package/dist/validation-7MNQGCJA.js +0 -17
  173. package/dist/work-COALHUCG.js +0 -51
  174. package/dist/worker-6MURZIPD.js +0 -24
@@ -1,172 +0,0 @@
1
- import {
2
- discoverNodeModulesDirs,
3
- isDirectory,
4
- isFile,
5
- isValidPackageName,
6
- resolvePackageLocation
7
- } from "./chunk-TXKUKMVO.js";
8
-
9
- // src/chat/plugins/package-discovery.ts
10
- import path from "path";
11
- function normalizeForGlob(targetPath) {
12
- return targetPath.split(path.sep).join("/");
13
- }
14
- function uniqueStringsInOrder(values) {
15
- const seen = /* @__PURE__ */ new Set();
16
- const resolved = [];
17
- for (const value of values) {
18
- if (seen.has(value)) {
19
- continue;
20
- }
21
- seen.add(value);
22
- resolved.push(value);
23
- }
24
- return resolved;
25
- }
26
- function pathForTracingInclude(cwd, targetPath) {
27
- const relative = path.relative(cwd, targetPath);
28
- if (!relative || path.isAbsolute(relative) || relative === ".." || relative.startsWith(`..${path.sep}`)) {
29
- return null;
30
- }
31
- const normalized = normalizeForGlob(relative);
32
- return normalized.startsWith(".") ? normalized : `./${normalized}`;
33
- }
34
- function normalizePluginPackageNames(packageNames) {
35
- if (packageNames === void 0) {
36
- return [];
37
- }
38
- if (!Array.isArray(packageNames)) {
39
- throw new Error("Plugin package names must be an array");
40
- }
41
- const normalized = [];
42
- const seen = /* @__PURE__ */ new Set();
43
- for (const packageName of packageNames) {
44
- const normalizedPackageName = typeof packageName === "string" ? packageName.trim() : "";
45
- if (!normalizedPackageName || !isValidPackageName(normalizedPackageName)) {
46
- throw new Error("Plugin package names must be valid npm package names");
47
- }
48
- if (seen.has(normalizedPackageName)) {
49
- continue;
50
- }
51
- seen.add(normalizedPackageName);
52
- normalized.push(normalizedPackageName);
53
- }
54
- return normalized;
55
- }
56
- function formatNodeModulesDirs(candidateNodeModulesDirs) {
57
- return candidateNodeModulesDirs.length > 0 ? candidateNodeModulesDirs.join(", ") : "none found";
58
- }
59
- function resolvePackageDirFromName(cwd, packageName, candidateNodeModulesDirs) {
60
- return resolvePackageLocation(cwd, packageName, {
61
- nodeModulesDirs: candidateNodeModulesDirs
62
- }) ?? null;
63
- }
64
- function readPluginPackageFlags(dir) {
65
- const hasRootPluginManifest = isFile(path.join(dir, "plugin.yaml"));
66
- const hasMigrationsDir = isDirectory(path.join(dir, "migrations"));
67
- const hasPluginsDir = isDirectory(path.join(dir, "plugins"));
68
- const hasSkillsDir = isDirectory(path.join(dir, "skills"));
69
- if (!hasRootPluginManifest && !hasMigrationsDir && !hasPluginsDir && !hasSkillsDir) {
70
- return null;
71
- }
72
- return {
73
- hasRootPluginManifest,
74
- hasMigrationsDir,
75
- hasPluginsDir,
76
- hasSkillsDir
77
- };
78
- }
79
- function discoverDeclaredPackages(packageNames, candidateNodeModulesDirs, cwd) {
80
- const discovered = [];
81
- const seenPackageDirs = /* @__PURE__ */ new Set();
82
- for (const packageName of packageNames) {
83
- const resolved = resolvePackageDirFromName(
84
- cwd,
85
- packageName,
86
- candidateNodeModulesDirs
87
- );
88
- if (!resolved) {
89
- throw new Error(
90
- `Plugin package "${packageName}" was configured but could not be resolved from node_modules or package resolution (${formatNodeModulesDirs(candidateNodeModulesDirs)})`
91
- );
92
- }
93
- if (seenPackageDirs.has(resolved.dir)) {
94
- continue;
95
- }
96
- const pluginFlags = readPluginPackageFlags(resolved.dir);
97
- if (!pluginFlags) {
98
- throw new Error(
99
- `Plugin package "${packageName}" was configured but does not contain plugin content; expected plugin.yaml, migrations/, plugins/, or skills/ in ${resolved.dir}`
100
- );
101
- }
102
- seenPackageDirs.add(resolved.dir);
103
- discovered.push({
104
- dir: resolved.dir,
105
- nodeModulesDir: resolved.nodeModulesDir,
106
- packageName,
107
- ...pluginFlags
108
- });
109
- }
110
- return discovered;
111
- }
112
- function discoverInstalledPluginPackageContent(cwd = process.cwd(), options) {
113
- const resolvedCwd = path.resolve(cwd);
114
- const packageNames = normalizePluginPackageNames(options?.packageNames);
115
- const nodeModulesDirs = options?.nodeModulesDirs ?? discoverNodeModulesDirs(resolvedCwd);
116
- const discoveredPackages = discoverDeclaredPackages(
117
- packageNames,
118
- nodeModulesDirs,
119
- resolvedCwd
120
- );
121
- const manifestRoots = [];
122
- const skillRoots = [];
123
- const tracingIncludes = [];
124
- for (const pkg of discoveredPackages) {
125
- const tracingBasePath = pkg.nodeModulesDir ? pathForTracingInclude(
126
- resolvedCwd,
127
- path.join(pkg.nodeModulesDir, ...pkg.packageName.split("/"))
128
- ) : pathForTracingInclude(resolvedCwd, pkg.dir);
129
- if (pkg.hasRootPluginManifest) {
130
- manifestRoots.push(pkg.dir);
131
- if (tracingBasePath) {
132
- tracingIncludes.push(`${tracingBasePath}/plugin.yaml`);
133
- }
134
- }
135
- if (pkg.hasMigrationsDir) {
136
- if (tracingBasePath) {
137
- tracingIncludes.push(`${tracingBasePath}/migrations/**/*`);
138
- }
139
- }
140
- if (pkg.hasPluginsDir) {
141
- manifestRoots.push(path.join(pkg.dir, "plugins"));
142
- if (tracingBasePath) {
143
- tracingIncludes.push(`${tracingBasePath}/plugins/**/*`);
144
- }
145
- }
146
- if (pkg.hasSkillsDir) {
147
- skillRoots.push(path.join(pkg.dir, "skills"));
148
- if (tracingBasePath) {
149
- tracingIncludes.push(`${tracingBasePath}/skills/**/*`);
150
- }
151
- }
152
- }
153
- return {
154
- packageNames: uniqueStringsInOrder(
155
- discoveredPackages.map((pkg) => pkg.packageName)
156
- ),
157
- packages: discoveredPackages.map((pkg) => ({
158
- dir: pkg.dir,
159
- hasMigrationsDir: pkg.hasMigrationsDir,
160
- hasSkillsDir: pkg.hasSkillsDir,
161
- packageName: pkg.packageName
162
- })),
163
- manifestRoots: uniqueStringsInOrder(manifestRoots),
164
- skillRoots: uniqueStringsInOrder(skillRoots),
165
- tracingIncludes: uniqueStringsInOrder(tracingIncludes)
166
- };
167
- }
168
-
169
- export {
170
- normalizePluginPackageNames,
171
- discoverInstalledPluginPackageContent
172
- };
@@ -1,206 +0,0 @@
1
- import {
2
- abandonTurnRecord,
3
- extractAssistantText
4
- } from "./chunk-5PKWYPFT.js";
5
- import {
6
- buildDeterministicTurnId
7
- } from "./chunk-DA2KGZZI.js";
8
-
9
- // src/chat/runtime/turn.ts
10
- var ConversationTurnBoundaryError = class extends Error {
11
- eventId;
12
- failureCode;
13
- constructor(args) {
14
- super(
15
- args.cause instanceof Error ? args.cause.message : String(args.cause),
16
- {
17
- cause: args.cause
18
- }
19
- );
20
- this.name = "ConversationTurnBoundaryError";
21
- this.eventId = args.eventId;
22
- this.failureCode = args.failureCode;
23
- }
24
- };
25
- function getConversationTurnBoundaryError(error) {
26
- return error instanceof ConversationTurnBoundaryError ? error : void 0;
27
- }
28
- var CooperativeTurnYieldError = class extends Error {
29
- code = "cooperative_turn_yield";
30
- constructor(message = "Agent turn yielded at a safe boundary") {
31
- super(message);
32
- this.name = "CooperativeTurnYieldError";
33
- }
34
- };
35
- function isCooperativeTurnYieldError(error) {
36
- return error instanceof CooperativeTurnYieldError;
37
- }
38
- var TurnInputCommitLostError = class extends Error {
39
- code = "turn_input_commit_lost";
40
- constructor(message = "Turn input commit lost its durable owner") {
41
- super(message);
42
- this.name = "TurnInputCommitLostError";
43
- }
44
- };
45
- function isTurnInputCommitLostError(error) {
46
- return error instanceof TurnInputCommitLostError;
47
- }
48
- var TurnInputDeferredError = class extends Error {
49
- code = "turn_input_deferred";
50
- constructor(message = "Turn input is deferred until the active resume ends") {
51
- super(message);
52
- this.name = "TurnInputDeferredError";
53
- }
54
- };
55
- function isTurnInputDeferredError(error) {
56
- return error instanceof TurnInputDeferredError;
57
- }
58
- function startActiveTurn(args) {
59
- args.conversation.processing.activeTurnId = args.nextTurnId;
60
- }
61
- function clearActiveTurn(conversation, sessionId) {
62
- if (!sessionId || conversation.processing.activeTurnId === sessionId) {
63
- conversation.processing.activeTurnId = void 0;
64
- }
65
- }
66
- function markTurnClosed(args) {
67
- clearActiveTurn(args.conversation, args.sessionId);
68
- args.conversation.processing.lastCompletedAtMs = args.nowMs;
69
- }
70
- function markTurnCompleted(args) {
71
- clearActiveTurn(args.conversation, args.sessionId);
72
- args.conversation.processing.lastCompletedAtMs = args.nowMs;
73
- }
74
- function markTurnFailed(args) {
75
- clearActiveTurn(args.conversation, args.sessionId);
76
- args.conversation.processing.lastCompletedAtMs = args.nowMs;
77
- args.markConversationMessage(args.conversation, args.userMessageId, {
78
- replied: false,
79
- skippedReason: "reply failed"
80
- });
81
- }
82
-
83
- // src/chat/no-reply.ts
84
- var NO_REPLY_MARKER = "[[NO_REPLY]]";
85
- function isNoReplyMarker(text) {
86
- return text.trimEnd().endsWith(NO_REPLY_MARKER);
87
- }
88
-
89
- // src/chat/services/assistant-reply.ts
90
- var THINKING_XML_BLOCK_PATTERN = /[ \t]*<thinking\b[^>]*>[\s\S]*?<\/thinking>[ \t]*(?:\r?\n)?/gi;
91
- var FENCED_CODE_BLOCK_PATTERN = /```[\s\S]*?```/g;
92
- function sanitizeAssistantText(text) {
93
- let result = "";
94
- let cursor = 0;
95
- for (const match of text.matchAll(FENCED_CODE_BLOCK_PATTERN)) {
96
- const start = match.index;
97
- if (start === void 0) continue;
98
- result += text.slice(cursor, start).replace(THINKING_XML_BLOCK_PATTERN, "");
99
- result += match[0];
100
- cursor = start + match[0].length;
101
- }
102
- return (result + text.slice(cursor).replace(THINKING_XML_BLOCK_PATTERN, "")).trim();
103
- }
104
- function decideReply(message) {
105
- if (message.content.some((part) => part.type === "toolCall")) {
106
- return { kind: "suppress" };
107
- }
108
- const text = sanitizeAssistantText(extractAssistantText(message));
109
- if (!text) return { kind: "empty" };
110
- if (isNoReplyMarker(text)) {
111
- return { kind: "suppress" };
112
- }
113
- return { kind: "deliver", text };
114
- }
115
- function getAssistantReplyText(message) {
116
- const decision = decideReply(message);
117
- return decision.kind === "deliver" ? decision.text : void 0;
118
- }
119
-
120
- // src/chat/services/pending-auth.ts
121
- var AUTH_LINK_REUSE_WINDOW_MS = 10 * 60 * 1e3;
122
- var NON_REQUEST_SKIPPED_REASON_PREFIXES = [
123
- "directed_to_other_party:",
124
- "side_conversation:"
125
- ];
126
- function isSkippedNonRequest(reason) {
127
- return NON_REQUEST_SKIPPED_REASON_PREFIXES.some(
128
- (prefix) => reason?.startsWith(prefix)
129
- );
130
- }
131
- function canReusePendingAuthLink(args) {
132
- const { pendingAuth } = args;
133
- if (!pendingAuth) {
134
- return false;
135
- }
136
- return pendingAuth.kind === args.kind && pendingAuth.provider === args.provider && pendingAuth.actorId === args.actorId && pendingAuth.scope === args.scope && pendingAuth.sessionId === args.sessionId && pendingAuth.linkSentAtMs + AUTH_LINK_REUSE_WINDOW_MS > (args.nowMs ?? Date.now());
137
- }
138
- function getConversationPendingAuth(args) {
139
- const pendingAuth = args.conversation.processing.pendingAuth;
140
- if (!pendingAuth) {
141
- return void 0;
142
- }
143
- if (pendingAuth.kind !== args.kind || pendingAuth.provider !== args.provider || pendingAuth.actorId !== args.actorId || pendingAuth.scope !== args.scope) {
144
- return void 0;
145
- }
146
- return pendingAuth;
147
- }
148
- function clearPendingAuth(conversation, sessionId) {
149
- if (!conversation.processing.pendingAuth) {
150
- return;
151
- }
152
- if (sessionId && conversation.processing.pendingAuth.sessionId !== sessionId) {
153
- return;
154
- }
155
- conversation.processing.pendingAuth = void 0;
156
- }
157
- async function abandonReplacedPendingAuth(args) {
158
- if (args.previousPendingAuth && args.previousPendingAuth.sessionId !== args.nextPendingAuth.sessionId && args.conversationId) {
159
- await abandonTurnRecord({
160
- conversationId: args.conversationId,
161
- turnId: args.previousPendingAuth.sessionId,
162
- errorMessage: "Abandoned by a newer auth-blocked request in the same conversation."
163
- });
164
- }
165
- }
166
- function isPendingAuthLatestRequest(conversation, pendingAuth) {
167
- for (let index = conversation.messages.length - 1; index >= 0; index -= 1) {
168
- const message = conversation.messages[index];
169
- if (message?.role !== "user") {
170
- continue;
171
- }
172
- if (message.author?.isBot) {
173
- continue;
174
- }
175
- if (isSkippedNonRequest(message.meta?.skippedReason)) {
176
- continue;
177
- }
178
- return buildDeterministicTurnId(message.id) === pendingAuth.sessionId;
179
- }
180
- return false;
181
- }
182
-
183
- export {
184
- ConversationTurnBoundaryError,
185
- getConversationTurnBoundaryError,
186
- CooperativeTurnYieldError,
187
- isCooperativeTurnYieldError,
188
- TurnInputCommitLostError,
189
- isTurnInputCommitLostError,
190
- TurnInputDeferredError,
191
- isTurnInputDeferredError,
192
- startActiveTurn,
193
- markTurnClosed,
194
- markTurnCompleted,
195
- markTurnFailed,
196
- NO_REPLY_MARKER,
197
- isNoReplyMarker,
198
- sanitizeAssistantText,
199
- decideReply,
200
- getAssistantReplyText,
201
- canReusePendingAuthLink,
202
- getConversationPendingAuth,
203
- clearPendingAuth,
204
- abandonReplacedPendingAuth,
205
- isPendingAuthLatestRequest
206
- };