@sentry/junior 0.4.1 → 0.5.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.
@@ -4,8 +4,8 @@ import {
4
4
  createNormalizingStream,
5
5
  resetBotDepsForTests,
6
6
  setBotDepsForTests
7
- } from "./chunk-RFUE5VBK.js";
8
- import "./chunk-OZFXD5IG.js";
7
+ } from "./chunk-3ENACZ27.js";
8
+ import "./chunk-BKYYVLVN.js";
9
9
  import "./chunk-PY4AI2GZ.js";
10
10
  import "./chunk-Z5E25LRN.js";
11
11
  export {
@@ -26,7 +26,7 @@ import {
26
26
  skillRoots,
27
27
  soulPathCandidates,
28
28
  upsertAgentTurnSessionCheckpoint
29
- } from "./chunk-OZFXD5IG.js";
29
+ } from "./chunk-BKYYVLVN.js";
30
30
  import {
31
31
  logError,
32
32
  logException,
@@ -972,6 +972,7 @@ function buildSystemPrompt(params) {
972
972
  "- Use `imageGenerate` when the user asks for image creation.",
973
973
  "- Use `slackCanvasCreate` for long-form docs/specs and `slackCanvasUpdate` for doc follow-ups.",
974
974
  "- `slackCanvasUpdate` targets the active artifact-context canvas automatically; do not ask the user for `canvas_id`.",
975
+ "- When you create or update a Slack artifact in this turn (for example a canvas, list, posted message, or attached file), mention it explicitly in the final reply and include its link when the tool returned one.",
975
976
  "- Use `slackListCreate`, `slackListAddItems`, and `slackListUpdateItem` for actionable task tracking.",
976
977
  "- `slackListAddItems`, `slackListGetItems`, and `slackListUpdateItem` target the active artifact-context list automatically; do not ask the user for `list_id`.",
977
978
  "- If the user explicitly asks to post/send/share/say/show/announce/broadcast in the channel (outside this thread), call `slackChannelPostMessage` with the requested text instead of only replying in-thread.",
@@ -991,7 +992,7 @@ function buildSystemPrompt(params) {
991
992
  renderTag(
992
993
  "skills",
993
994
  [
994
- "- Explicit skill triggers may appear as `/skillname` or `!skillname`.",
995
+ "- Explicit skill triggers may appear as `/skillname`.",
995
996
  "- If explicitly invoked skill instructions are already present in <loaded_skills>, apply them immediately.",
996
997
  "- Otherwise, for an explicitly invoked skill, call `loadSkill` for that exact skill before applying skill-specific behavior.",
997
998
  "- For requests without an explicit trigger where a skill clearly matches, call `loadSkill` before applying skill-specific behavior.",
@@ -1020,7 +1021,7 @@ function buildSystemPrompt(params) {
1020
1021
  activeSkillsSection,
1021
1022
  renderTag(
1022
1023
  "invocation-context",
1023
- invocation ? invocation.source === "hard_bang" ? `Explicit skill trigger detected: !${invocation.skillName}` : `Legacy slash hint detected: /${invocation.skillName} (non-authoritative)` : "No explicit skill trigger detected."
1024
+ invocation ? `Explicit skill trigger detected: /${invocation.skillName}` : "No explicit skill trigger detected."
1024
1025
  )
1025
1026
  ];
1026
1027
  return sections.join("\n\n");
@@ -2604,31 +2605,18 @@ async function discoverSkills(options) {
2604
2605
  }
2605
2606
  function parseSkillInvocation(messageText, availableSkills) {
2606
2607
  const trimmed = messageText.trim();
2607
- const toInvocation = (match, source) => {
2608
- if (!match) {
2609
- return null;
2610
- }
2611
- const skillName = match[1].toLowerCase();
2612
- if (!availableSkills.some((skill) => skill.name === skillName)) {
2613
- return null;
2614
- }
2615
- return {
2616
- skillName,
2617
- args: (match[2] ?? "").trim(),
2618
- source
2619
- };
2620
- };
2621
- const hardBangInvocation = toInvocation(
2622
- /(?:^|\s)!([a-z0-9]+(?:-[a-z0-9]+)*)(?:\s+([\s\S]*))?/i.exec(trimmed),
2623
- "hard_bang"
2624
- );
2625
- if (hardBangInvocation) {
2626
- return hardBangInvocation;
2608
+ const match = /(?:^|\s)\/([a-z0-9]+(?:-[a-z0-9]+)*)(?:\s+([\s\S]*))?/i.exec(trimmed);
2609
+ if (!match) {
2610
+ return null;
2627
2611
  }
2628
- return toInvocation(
2629
- /(?:^|\s)\/([a-z0-9]+(?:-[a-z0-9]+)*)(?:\s+([\s\S]*))?/i.exec(trimmed),
2630
- "legacy_slash"
2631
- );
2612
+ const skillName = match[1].toLowerCase();
2613
+ if (!availableSkills.some((skill) => skill.name === skillName)) {
2614
+ return null;
2615
+ }
2616
+ return {
2617
+ skillName,
2618
+ args: (match[2] ?? "").trim()
2619
+ };
2632
2620
  }
2633
2621
  function findSkillByName(skillName, available) {
2634
2622
  return available.find((skill) => skill.name === skillName) ?? null;
@@ -6749,7 +6737,7 @@ async function generateAssistantReply(messageText, context = {}) {
6749
6737
  lastKnownSandboxDependencyProfileHash = sandboxExecutor.getDependencyProfileHash();
6750
6738
  sandboxExecutor.configureSkills(availableSkills);
6751
6739
  const sandbox = await sandboxExecutor.createSandbox();
6752
- if (invokedSkill && skillInvocation?.source === "hard_bang") {
6740
+ if (invokedSkill) {
6753
6741
  const preloaded = await skillSandbox.loadSkill(invokedSkill.name);
6754
6742
  if (preloaded) {
6755
6743
  activeSkills.push(preloaded);
@@ -8277,7 +8265,7 @@ async function buildSkillsSummaryText() {
8277
8265
  return "No skills installed.";
8278
8266
  }
8279
8267
  const visible = skills.slice(0, MAX_HOME_SKILLS);
8280
- const lines = visible.map((skill) => `\u2022 \`!${skill.name}\` \u2014 ${skill.description}`);
8268
+ const lines = visible.map((skill) => `\u2022 *${skill.name}* \u2014 ${skill.description}`);
8281
8269
  if (skills.length > visible.length) {
8282
8270
  lines.push(`\u2022 \u2026and ${skills.length - visible.length} more`);
8283
8271
  }