@sentry/junior 0.120.0 → 0.122.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 (69) hide show
  1. package/dist/{agent-hooks-5DDPWRYO.js → agent-hooks-HJMLQLCB.js} +8 -8
  2. package/dist/api.js +14 -14
  3. package/dist/app.js +604 -997
  4. package/dist/{catalog-runtime-5KR5XBMJ.js → catalog-runtime-CYPZUYJD.js} +5 -5
  5. package/dist/chat/agent/index.d.ts +19 -2
  6. package/dist/chat/agent/request.d.ts +8 -8
  7. package/dist/chat/agent/resume.d.ts +1 -3
  8. package/dist/chat/agent/retry-usage.d.ts +8 -0
  9. package/dist/chat/agent/skills.d.ts +0 -9
  10. package/dist/chat/conversations/messages.d.ts +7 -0
  11. package/dist/chat/conversations/projection.d.ts +16 -0
  12. package/dist/chat/logging.d.ts +46 -13
  13. package/dist/chat/runtime/processing-reaction.d.ts +2 -4
  14. package/dist/chat/runtime/slack-runtime.d.ts +2 -2
  15. package/dist/chat/sandbox/noninteractive-command.d.ts +1 -0
  16. package/dist/chat/sandbox/session.d.ts +2 -2
  17. package/dist/chat/sandbox/snapshot/install.d.ts +2 -2
  18. package/dist/chat/sandbox/snapshot/resolve.d.ts +1 -0
  19. package/dist/chat/sandbox/workspace.d.ts +3 -1
  20. package/dist/chat/services/assistant-reply.d.ts +16 -0
  21. package/dist/chat/services/empty-output-continuation.d.ts +20 -0
  22. package/dist/chat/services/turn-failure-response.d.ts +1 -3
  23. package/dist/chat/services/turn-result.d.ts +0 -5
  24. package/dist/chat/services/turn-session-record.d.ts +0 -11
  25. package/dist/chat/tool-support/zod-tool.d.ts +11 -6
  26. package/dist/chat/tools/execute-tool.d.ts +1 -33
  27. package/dist/chat/tools/execution/tool-error-handler.d.ts +2 -2
  28. package/dist/chat/tools/query-conversation-events.d.ts +3 -1
  29. package/dist/chat/tools/sandbox/bash.d.ts +1 -33
  30. package/dist/chat/tools/sandbox/edit-file.d.ts +1 -33
  31. package/dist/chat/tools/sandbox/find-files.d.ts +1 -33
  32. package/dist/chat/tools/sandbox/grep.d.ts +1 -33
  33. package/dist/chat/tools/sandbox/list-dir.d.ts +1 -33
  34. package/dist/chat/tools/sandbox/read-file.d.ts +1 -33
  35. package/dist/chat/tools/sandbox/write-file.d.ts +1 -33
  36. package/dist/{chunk-VURFJVFH.js → chunk-2RFM7STT.js} +11 -22
  37. package/dist/{chunk-6WX5SPI3.js → chunk-32FPGM2V.js} +1 -1
  38. package/dist/{chunk-ALYQOZG7.js → chunk-4SPRQJOW.js} +37 -45
  39. package/dist/{chunk-QOQPPRFS.js → chunk-4TGVC42X.js} +133 -206
  40. package/dist/{chunk-Q3RL6A4E.js → chunk-BDE5RZVF.js} +2 -2
  41. package/dist/{chunk-DJDGDJDF.js → chunk-CYW4M6IV.js} +44 -23
  42. package/dist/{chunk-M243JMZH.js → chunk-DOB5RVMH.js} +2 -2
  43. package/dist/{chunk-EIVE6GL4.js → chunk-E5SRLZQV.js} +14 -29
  44. package/dist/{chunk-YEAOUT5W.js → chunk-GFTZKOTP.js} +1 -1
  45. package/dist/{chunk-XAI2HNAY.js → chunk-GN6WW7WR.js} +16 -31
  46. package/dist/{chunk-DMKHRBI6.js → chunk-ISQYBTPG.js} +3 -3
  47. package/dist/{chunk-DWOH57FW.js → chunk-L2KJ2GNL.js} +1 -1
  48. package/dist/{chunk-ERYVNWNE.js → chunk-NIJG6G6X.js} +621 -735
  49. package/dist/{chunk-JQWP6V22.js → chunk-NNGYYGX5.js} +2061 -2015
  50. package/dist/{chunk-GNNV3UTY.js → chunk-OKUZIXQM.js} +1 -1
  51. package/dist/{chunk-HDFGNU5E.js → chunk-S7G34U75.js} +3 -1
  52. package/dist/{chunk-ALAKN7LR.js → chunk-TZVZCIYL.js} +1 -1
  53. package/dist/{chunk-24B5R6OU.js → chunk-USKP7IM2.js} +49 -92
  54. package/dist/{chunk-BHXW734F.js → chunk-V6XPIKYA.js} +13 -19
  55. package/dist/{chunk-TKUCRFNX.js → chunk-VCC7XFX2.js} +22 -45
  56. package/dist/cli/chat.js +22 -22
  57. package/dist/cli/check.js +6 -6
  58. package/dist/cli/plugins.js +11 -11
  59. package/dist/cli/snapshot-create.js +9 -9
  60. package/dist/cli/upgrade.js +6 -6
  61. package/dist/{db-T4ZY64PB.js → db-E6O2DXUQ.js} +6 -6
  62. package/dist/instrumentation.js +3 -3
  63. package/dist/nitro.js +2 -2
  64. package/dist/{oauth-callback-server-LQ6DFI26.js → oauth-callback-server-6SCPUFFD.js} +15 -15
  65. package/dist/{runner-D3ZU6TJH.js → runner-JFKCMVVY.js} +62 -51
  66. package/dist/{skills-JMXY7LIY.js → skills-RD66F2OB.js} +6 -6
  67. package/dist/{validation-OEPJS7JX.js → validation-XVRNX6IU.js} +6 -6
  68. package/dist/version.js +1 -1
  69. package/package.json +8 -8
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-PE44LDDQ.js";
4
4
  import {
5
5
  normalizeSlackConversationId
6
- } from "./chunk-24B5R6OU.js";
6
+ } from "./chunk-USKP7IM2.js";
7
7
  import {
8
8
  parseSlackThreadId
9
- } from "./chunk-HDFGNU5E.js";
9
+ } from "./chunk-S7G34U75.js";
10
10
 
11
11
  // src/handlers/health.ts
12
12
  function readHealthReport() {
@@ -2,18 +2,18 @@ import {
2
2
  SANDBOX_WORKSPACE_ROOT,
3
3
  getStateAdapter,
4
4
  sleep
5
- } from "./chunk-ALAKN7LR.js";
5
+ } from "./chunk-TZVZCIYL.js";
6
6
  import {
7
7
  toOptionalTrimmed
8
- } from "./chunk-VURFJVFH.js";
8
+ } from "./chunk-2RFM7STT.js";
9
9
  import {
10
10
  pluginCatalogRuntime
11
- } from "./chunk-GNNV3UTY.js";
11
+ } from "./chunk-OKUZIXQM.js";
12
12
  import {
13
13
  setSpanAttributes,
14
14
  setSpanStatus,
15
15
  withSpan
16
- } from "./chunk-ALYQOZG7.js";
16
+ } from "./chunk-4SPRQJOW.js";
17
17
 
18
18
  // src/chat/sandbox/snapshot/profile.ts
19
19
  import { createHash } from "crypto";
@@ -196,6 +196,7 @@ async function runNonInteractiveCommand(sandbox, input) {
196
196
  const command = {
197
197
  ...buildNonInteractiveCommand(input),
198
198
  ...input.cwd ? { cwd: input.cwd } : {},
199
+ ...input.signal ? { signal: input.signal } : {},
199
200
  ...input.sudo !== void 0 ? { sudo: input.sudo } : {}
200
201
  };
201
202
  return await sandbox.runCommand(command);
@@ -219,10 +220,11 @@ async function tryRun(sandbox, params) {
219
220
  const result = await runNonInteractiveCommand(sandbox, params);
220
221
  return result.exitCode === 0;
221
222
  }
222
- async function installGh(sandbox) {
223
+ async function installGh(sandbox, signal) {
223
224
  const installed = await tryRun(sandbox, {
224
225
  cmd: "dnf",
225
226
  args: ["install", "-y", "gh"],
227
+ signal,
226
228
  sudo: true
227
229
  });
228
230
  if (installed) {
@@ -235,6 +237,7 @@ async function installGh(sandbox) {
235
237
  "addrepo",
236
238
  "--from-repofile=https://cli.github.com/packages/rpm/gh-cli.repo"
237
239
  ],
240
+ signal,
238
241
  sudo: true
239
242
  });
240
243
  if (!repoAdded) {
@@ -243,6 +246,7 @@ async function installGh(sandbox) {
243
246
  {
244
247
  cmd: "dnf",
245
248
  args: ["install", "-y", "dnf-command(config-manager)"],
249
+ signal,
246
250
  sudo: true
247
251
  },
248
252
  "dnf install dnf-command(config-manager)"
@@ -256,6 +260,7 @@ async function installGh(sandbox) {
256
260
  "--add-repo",
257
261
  "https://cli.github.com/packages/rpm/gh-cli.repo"
258
262
  ],
263
+ signal,
259
264
  sudo: true
260
265
  },
261
266
  "dnf config-manager --add-repo gh-cli.repo"
@@ -266,6 +271,7 @@ async function installGh(sandbox) {
266
271
  {
267
272
  cmd: "dnf",
268
273
  args: ["install", "-y", "gh", "--repo", "gh-cli"],
274
+ signal,
269
275
  sudo: true
270
276
  },
271
277
  "dnf install gh --repo gh-cli"
@@ -283,19 +289,21 @@ function filePath(url, sha256) {
283
289
  const sanitized = basename.replace(/[^a-zA-Z0-9._-]/g, "_");
284
290
  return `/tmp/junior-runtime-${sha256.slice(0, 12)}-${sanitized}`;
285
291
  }
286
- async function installUrl(sandbox, dependency) {
292
+ async function installUrl(sandbox, dependency, signal) {
287
293
  const rpmPath = filePath(dependency.url, dependency.sha256);
288
294
  await runOrThrow(
289
295
  sandbox,
290
296
  {
291
297
  cmd: "curl",
292
- args: ["-fsSL", dependency.url, "-o", rpmPath]
298
+ args: ["-fsSL", dependency.url, "-o", rpmPath],
299
+ signal
293
300
  },
294
301
  `curl download ${dependency.url}`
295
302
  );
296
303
  const checksum = await runNonInteractiveCommand(sandbox, {
297
304
  cmd: "sha256sum",
298
- args: [rpmPath]
305
+ args: [rpmPath],
306
+ signal
299
307
  });
300
308
  const expected = dependency.sha256;
301
309
  const actual = checksum.stdout.trim().split(/\s+/)[0]?.toLowerCase();
@@ -316,12 +324,13 @@ async function installUrl(sandbox, dependency) {
316
324
  {
317
325
  cmd: "dnf",
318
326
  args: ["install", "-y", rpmPath],
327
+ signal,
319
328
  sudo: true
320
329
  },
321
330
  `dnf install ${dependency.url}`
322
331
  );
323
332
  }
324
- async function dependencies(sandbox, values) {
333
+ async function dependencies(sandbox, values, signal) {
325
334
  const system = values.filter(
326
335
  (dependency) => dependency.type === "system"
327
336
  );
@@ -337,16 +346,18 @@ async function dependencies(sandbox, values) {
337
346
  },
338
347
  async () => {
339
348
  for (const dependency of system) {
349
+ signal?.throwIfAborted();
340
350
  if ("url" in dependency) {
341
- await installUrl(sandbox, dependency);
351
+ await installUrl(sandbox, dependency, signal);
342
352
  } else if (dependency.package === "gh") {
343
- await installGh(sandbox);
353
+ await installGh(sandbox, signal);
344
354
  } else {
345
355
  await runOrThrow(
346
356
  sandbox,
347
357
  {
348
358
  cmd: "dnf",
349
359
  args: ["install", "-y", dependency.package],
360
+ signal,
350
361
  sudo: true
351
362
  },
352
363
  `dnf install ${dependency.package}`
@@ -374,7 +385,8 @@ async function dependencies(sandbox, values) {
374
385
  "--prefix",
375
386
  `${SANDBOX_WORKSPACE_ROOT}/.junior`,
376
387
  ...npm
377
- ]
388
+ ],
389
+ signal
378
390
  },
379
391
  "npm install"
380
392
  );
@@ -382,7 +394,7 @@ async function dependencies(sandbox, values) {
382
394
  );
383
395
  }
384
396
  }
385
- async function postinstall(sandbox, commands) {
397
+ async function postinstall(sandbox, commands, signal) {
386
398
  if (commands.length === 0) {
387
399
  return;
388
400
  }
@@ -394,11 +406,13 @@ async function postinstall(sandbox, commands) {
394
406
  },
395
407
  async () => {
396
408
  for (const command of commands) {
409
+ signal?.throwIfAborted();
397
410
  const result = await runNonInteractiveCommand(sandbox, {
398
411
  cmd: command.cmd,
399
412
  args: command.args,
400
413
  login: true,
401
414
  pathPrefix: `${SANDBOX_WORKSPACE_ROOT}/.junior/bin:$PATH`,
415
+ signal,
402
416
  ...command.sudo !== void 0 ? { sudo: command.sudo } : {}
403
417
  });
404
418
  if (result.exitCode !== 0) {
@@ -719,9 +733,9 @@ function createSandboxSession(sandbox, options) {
719
733
  stderr
720
734
  };
721
735
  },
722
- snapshot() {
736
+ snapshot(options2) {
723
737
  return run(async () => {
724
- const snapshot = await session.snapshot();
738
+ const snapshot = await session.snapshot(options2);
725
739
  return { snapshotId: snapshot.snapshotId };
726
740
  });
727
741
  },
@@ -784,7 +798,7 @@ async function setCachedSnapshot(entry) {
784
798
  SNAPSHOT_CACHE_TTL_MS
785
799
  );
786
800
  }
787
- async function build(value, runtime, timeoutMs) {
801
+ async function build(value, runtime, timeoutMs, signal) {
788
802
  return await trace(
789
803
  "sandbox.snapshot.build",
790
804
  "sandbox.snapshot.build",
@@ -799,13 +813,14 @@ async function build(value, runtime, timeoutMs) {
799
813
  await Sandbox.create({
800
814
  timeout: timeoutMs,
801
815
  runtime,
816
+ signal,
802
817
  ...sandboxCredentials ?? {},
803
818
  ...resources ? { resources } : {}
804
819
  })
805
820
  );
806
821
  try {
807
- await dependencies(sandbox, value.dependencies);
808
- await postinstall(sandbox, value.postinstall);
822
+ await dependencies(sandbox, value.dependencies, signal);
823
+ await postinstall(sandbox, value.postinstall, signal);
809
824
  return await trace(
810
825
  "sandbox.snapshot.capture",
811
826
  "sandbox.snapshot.capture",
@@ -813,7 +828,7 @@ async function build(value, runtime, timeoutMs) {
813
828
  "app.sandbox.snapshot.dependency_count": value.dependencyCount
814
829
  },
815
830
  async () => {
816
- const snapshot = await sandbox.snapshot();
831
+ const snapshot = await sandbox.snapshot({ signal });
817
832
  return snapshot.snapshotId;
818
833
  }
819
834
  );
@@ -826,7 +841,8 @@ async function build(value, runtime, timeoutMs) {
826
841
  }
827
842
  );
828
843
  }
829
- async function withBuildLock(profileHash, timeoutMs, callback, canUseCachedSnapshot, onWaitingForLock) {
844
+ async function withBuildLock(profileHash, timeoutMs, callback, canUseCachedSnapshot, onWaitingForLock, signal) {
845
+ signal?.throwIfAborted();
830
846
  const state = getStateAdapter();
831
847
  await state.connect();
832
848
  const lockKey = profileLockKey(profileHash);
@@ -850,6 +866,7 @@ async function withBuildLock(profileHash, timeoutMs, callback, canUseCachedSnaps
850
866
  await onWaitingForLock?.();
851
867
  const waitUntil = Date.now() + lockTtlMs + SNAPSHOT_WAIT_FOR_LOCK_BUFFER_MS;
852
868
  while (Date.now() < waitUntil) {
869
+ signal?.throwIfAborted();
853
870
  const cached2 = await getCachedSnapshot(profileHash);
854
871
  if (cached2?.snapshotId && canUseCachedSnapshot(cached2)) {
855
872
  return {
@@ -869,8 +886,9 @@ async function withBuildLock(profileHash, timeoutMs, callback, canUseCachedSnaps
869
886
  await state.releaseLock(lock);
870
887
  }
871
888
  }
872
- await sleep(500);
889
+ await sleep(500, signal);
873
890
  }
891
+ signal?.throwIfAborted();
874
892
  const cached = await getCachedSnapshot(profileHash);
875
893
  if (cached?.snapshotId && canUseCachedSnapshot(cached)) {
876
894
  return {
@@ -909,6 +927,7 @@ async function resolve(params) {
909
927
  "app.sandbox.snapshot.force_rebuild": Boolean(params.forceRebuild)
910
928
  },
911
929
  async () => {
930
+ params.signal?.throwIfAborted();
912
931
  await params.onProgress?.("resolve_start");
913
932
  const currentProfile = create(params.runtime);
914
933
  if (!currentProfile) {
@@ -963,7 +982,8 @@ async function resolve(params) {
963
982
  const nextSnapshotId = await build(
964
983
  currentProfile,
965
984
  params.runtime,
966
- params.timeoutMs
985
+ params.timeoutMs,
986
+ params.signal
967
987
  );
968
988
  await setCachedSnapshot({
969
989
  profileHash: currentProfile.hash,
@@ -978,7 +998,8 @@ async function resolve(params) {
978
998
  canUseCachedSnapshot,
979
999
  async () => {
980
1000
  await params.onProgress?.("waiting_for_lock");
981
- }
1001
+ },
1002
+ params.signal
982
1003
  );
983
1004
  return {
984
1005
  snapshotId: lockResult.snapshotId,
@@ -9,13 +9,13 @@ import {
9
9
  TURN_REASONING_LEVELS,
10
10
  getChatConfig,
11
11
  modelProfileSchema
12
- } from "./chunk-VURFJVFH.js";
12
+ } from "./chunk-2RFM7STT.js";
13
13
  import {
14
14
  juniorDestinations
15
15
  } from "./chunk-VFUK3X5B.js";
16
16
  import {
17
17
  normalizeIdentityEmail
18
- } from "./chunk-ALYQOZG7.js";
18
+ } from "./chunk-4SPRQJOW.js";
19
19
  import {
20
20
  parseSlackChannelReferenceId,
21
21
  parseSlackTeamId
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  pluginCatalogRuntime
3
- } from "./chunk-GNNV3UTY.js";
3
+ } from "./chunk-OKUZIXQM.js";
4
4
  import {
5
5
  logWarn
6
- } from "./chunk-ALYQOZG7.js";
6
+ } from "./chunk-4SPRQJOW.js";
7
7
  import {
8
8
  skillRoots
9
9
  } from "./chunk-H4HBKISO.js";
@@ -223,15 +223,10 @@ async function readSkillDirectory(skillDir) {
223
223
  const raw = await fs.readFile(skillFile, "utf8");
224
224
  const parsed = parseSkillFile(raw, path.basename(skillDir));
225
225
  if (!parsed.ok) {
226
- logWarn(
227
- "skill_frontmatter_invalid",
228
- {},
229
- {
230
- "file.path": skillDir,
231
- "exception.message": parsed.error
232
- },
233
- "Invalid skill frontmatter"
234
- );
226
+ logWarn("skill.frontmatter.invalid", {
227
+ "file.path": skillDir,
228
+ "exception.message": parsed.error
229
+ });
235
230
  return null;
236
231
  }
237
232
  const { name, description, allowedTools, disableModelInvocation } = parsed.skill;
@@ -245,15 +240,10 @@ async function readSkillDirectory(skillDir) {
245
240
  ...disableModelInvocation ? { disableModelInvocation } : {}
246
241
  };
247
242
  } catch (error) {
248
- logWarn(
249
- "skill_directory_read_failed",
250
- {},
251
- {
252
- "file.path": skillDir,
253
- "exception.message": error instanceof Error ? error.message : String(error)
254
- },
255
- "Failed to read skill directory"
256
- );
243
+ logWarn("skill.directory.read.failed", {
244
+ "file.path": skillDir,
245
+ "exception.message": error instanceof Error ? error.message : String(error)
246
+ });
257
247
  return null;
258
248
  }
259
249
  }
@@ -281,15 +271,10 @@ async function discoverSkills(options) {
281
271
  }
282
272
  }
283
273
  } catch (error) {
284
- logWarn(
285
- "skill_root_read_failed",
286
- {},
287
- {
288
- "file.directory": root,
289
- "exception.message": error instanceof Error ? error.message : String(error)
290
- },
291
- "Failed to read skill root"
292
- );
274
+ logWarn("skill.root.read.failed", {
275
+ "file.directory": root,
276
+ "exception.message": error instanceof Error ? error.message : String(error)
277
+ });
293
278
  }
294
279
  }
295
280
  const sorted = discovered.sort((a, b) => a.name.localeCompare(b.name));
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pluginCatalogRuntime
3
- } from "./chunk-GNNV3UTY.js";
3
+ } from "./chunk-OKUZIXQM.js";
4
4
 
5
5
  // src/chat/plugins/validation.ts
6
6
  import { isDeepStrictEqual } from "util";
@@ -5,7 +5,7 @@ import {
5
5
  logInfo,
6
6
  logWarn,
7
7
  setSpanAttributes
8
- } from "./chunk-ALYQOZG7.js";
8
+ } from "./chunk-4SPRQJOW.js";
9
9
  import {
10
10
  discoverInstalledPluginPackageContent,
11
11
  normalizePluginPackageNames
@@ -1837,15 +1837,10 @@ function buildLoadedPluginState(source, config) {
1837
1837
  try {
1838
1838
  rootStat = statSync(pluginsRoot);
1839
1839
  } catch (error) {
1840
- logWarn(
1841
- "plugin_root_read_failed",
1842
- {},
1843
- {
1844
- "file.directory": pluginsRoot,
1845
- "exception.message": error instanceof Error ? error.message : String(error)
1846
- },
1847
- "Failed to read plugin root"
1848
- );
1840
+ logWarn("plugin.root.read.failed", {
1841
+ "file.directory": pluginsRoot,
1842
+ "exception.message": error instanceof Error ? error.message : String(error)
1843
+ });
1849
1844
  continue;
1850
1845
  }
1851
1846
  if (rootStat.isDirectory()) {
@@ -1865,15 +1860,10 @@ function buildLoadedPluginState(source, config) {
1865
1860
  try {
1866
1861
  entries = readdirSync(pluginsRoot);
1867
1862
  } catch (error) {
1868
- logWarn(
1869
- "plugin_root_read_failed",
1870
- {},
1871
- {
1872
- "file.directory": pluginsRoot,
1873
- "exception.message": error instanceof Error ? error.message : String(error)
1874
- },
1875
- "Failed to read plugin root"
1876
- );
1863
+ logWarn("plugin.root.read.failed", {
1864
+ "file.directory": pluginsRoot,
1865
+ "exception.message": error instanceof Error ? error.message : String(error)
1866
+ });
1877
1867
  continue;
1878
1868
  }
1879
1869
  for (const entry of entries.sort()) {
@@ -1912,18 +1902,13 @@ function logLoadedPlugins(state) {
1912
1902
  continue;
1913
1903
  }
1914
1904
  loggedPluginNames.add(plugin.manifest.name);
1915
- logInfo(
1916
- "plugin_loaded",
1917
- {},
1918
- {
1919
- "app.plugin.name": plugin.manifest.name,
1920
- "app.plugin.config_key_count": plugin.manifest.configKeys.length,
1921
- "app.plugin.has_mcp": Boolean(plugin.manifest.mcp),
1922
- "file.directory": plugin.dir,
1923
- ...plugin.skillsDir ? { "app.file.skill_directory": plugin.skillsDir } : {}
1924
- },
1925
- "Loaded plugin"
1926
- );
1905
+ logInfo("plugin.loaded", {
1906
+ "app.plugin.name": plugin.manifest.name,
1907
+ "app.plugin.config_key_count": plugin.manifest.configKeys.length,
1908
+ "app.plugin.has_mcp": Boolean(plugin.manifest.mcp),
1909
+ "file.directory": plugin.dir,
1910
+ ...plugin.skillsDir ? { "app.file.skill_directory": plugin.skillsDir } : {}
1911
+ });
1927
1912
  }
1928
1913
  }
1929
1914
  function ensurePluginsLoaded(runtime) {
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var package_default = {
3
3
  name: "@sentry/junior",
4
- version: "0.120.0",
4
+ version: "0.122.0",
5
5
  private: false,
6
6
  publishConfig: {
7
7
  access: "public"
@@ -70,8 +70,8 @@ var package_default = {
70
70
  "@chat-adapter/slack": "4.29.0",
71
71
  "@chat-adapter/state-memory": "4.29.0",
72
72
  "@chat-adapter/state-redis": "4.29.0",
73
- "@earendil-works/pi-agent-core": "0.80.6",
74
- "@earendil-works/pi-ai": "0.80.6",
73
+ "@earendil-works/pi-agent-core": "catalog:",
74
+ "@earendil-works/pi-ai": "catalog:",
75
75
  "@logtape/logtape": "^2.1.1",
76
76
  "@modelcontextprotocol/sdk": "1.29.0",
77
77
  "@neondatabase/serverless": "^1.1.0",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  JUNIOR_VERSION
3
- } from "./chunk-DMKHRBI6.js";
3
+ } from "./chunk-ISQYBTPG.js";
4
4
 
5
5
  // src/deployment.ts
6
6
  var JUNIOR_HEARTBEAT_ROUTE = "/api/internal/heartbeat";