@misterhuydo/sentinel 1.4.56 → 1.4.58

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@misterhuydo/sentinel",
3
- "version": "1.4.56",
3
+ "version": "1.4.58",
4
4
  "description": "Sentinel — Autonomous DevOps Agent installer and manager",
5
5
  "bin": {
6
6
  "sentinel": "./bin/sentinel.js"
@@ -238,6 +238,7 @@ Events to subscribe: app_mention, message.im, message.channels
238
238
  Tone: direct, professional, like a senior engineer who owns the system.
239
239
  Don't pad responses. Don't say "Great question!" or "Certainly!".
240
240
  If you don't know something, use a tool to find out before saying you don't know.
241
+ For requests that are clearly not DevOps tasks (jokes, stories, SVGs, general questions, creative tasks) — just answer helpfully and naturally. No need to redirect back to Sentinel's purpose. Have fun with it.
241
242
 
242
243
  When to act vs. when to ask:
243
244
  - Any read/investigate tool (ask_codebase, filter_logs, search_logs, get_status, tail_log, ask_logs,
@@ -2716,9 +2717,12 @@ async def _handle_with_cli(
2716
2717
  if not reply:
2717
2718
  if tools_ran:
2718
2719
  reply = f":white_check_mark: Done ({', '.join(tools_ran)})."
2719
- else:
2720
+ elif len(message.strip()) <= 12 and not any(c.isalpha() and c not in 'helo wrdHELOWRD' for c in message):
2721
+ # Only greet on bare hello/hi/empty — never on real commands
2720
2722
  greeting = f"Hi {user_name}! " if user_name else "Hi! "
2721
2723
  reply = f"{greeting}I'm Sentinel, your autonomous DevOps agent. How can I help you?"
2724
+ else:
2725
+ reply = ":thinking_face: I didn't produce a response — please try rephrasing."
2722
2726
 
2723
2727
  history.append({"role": "user", "content": message})
2724
2728
  history.append({"role": "assistant", "content": reply})
@@ -2892,9 +2896,11 @@ async def _handle_with_api(
2892
2896
  )
2893
2897
  if tools_ran_this_session:
2894
2898
  reply = ":white_check_mark: Done."
2895
- else:
2899
+ elif len(message.strip()) <= 12:
2896
2900
  greeting = f"Hi {user_name}! " if user_name else "Hi! "
2897
2901
  reply = f"{greeting}I'm Sentinel, your autonomous DevOps agent. How can I help you?"
2902
+ else:
2903
+ reply = ":thinking_face: I didn't produce a response — please try rephrasing."
2898
2904
  # Heuristic override: if reply ends with a question, Claude is waiting for input
2899
2905
  if is_done and re.search(r'\?\s*$', reply):
2900
2906
  is_done = False