@yemi33/minions 0.1.1752 → 0.1.1753

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/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.1753 (2026-05-06)
4
+
5
+ ### Other
6
+ - refactor(doc-chat): drop brittle regex action gate in favour of sysprompt
7
+
3
8
  ## 0.1.1752 (2026-05-06)
4
9
 
5
10
  ### Features
package/dashboard.js CHANGED
@@ -1510,34 +1510,6 @@ function stripCCActionSyntax(text) {
1510
1510
  return displayText.replace(/`{3,}\s*action\s*\r?\n[\s\S]*?`{3,}\n?/g, '').trim();
1511
1511
  }
1512
1512
 
1513
- function _messageRequestsOrchestration(message) {
1514
- const text = String(message || '').toLowerCase();
1515
- if (!text.trim()) return false;
1516
-
1517
- const docTarget = '\\b(document|doc|text|selection|selected text|selected paragraph|selected section|paragraph|section|wording|copy|markdown|plan)\\b';
1518
- const docEditVerb = '\\b(edit|rewrite|revise|update|change|rephrase|polish|format|shorten|expand|summarize|correct|add|write)\\b';
1519
- const explicitDocEdit = new RegExp(`${docEditVerb}[\\s\\S]{0,120}${docTarget}|${docTarget}[\\s\\S]{0,120}${docEditVerb}`).test(text)
1520
- || /\bfix\b[\s\S]{0,80}\b(typo|typos|grammar|spelling|wording|copy|markdown)\b[\s\S]{0,80}\b(document|doc|text|selection|paragraph|section|plan)\b/.test(text);
1521
- const actionTerm = '\\b(dispatch|delegate|assign|orchestrate|hand off|handoff|work item|ticket|agent|minions|watch|monitor|schedule|pipeline|meeting)\\b';
1522
- const untrustedActionMention = new RegExp(
1523
- `${docTarget}[\\s\\S]{0,120}\\b(says|contains|mentions|includes|reads|states|instructs|asks|tells|literal|literally)\\b[\\s\\S]{0,160}${actionTerm}`
1524
- ).test(text)
1525
- || new RegExp(`\\b(summarize|explain|quote|describe|analyze|extract)\\b[\\s\\S]{0,160}${docTarget}[\\s\\S]{0,160}${actionTerm}`).test(text);
1526
- const explicitFollowupAction = /\b(and|then|also)\b[\s\S]{0,80}\b(dispatch|delegate|assign|orchestrate|hand off|handoff|work item|ticket|agent|minions|watch|monitor|schedule|pipeline|meeting)\b/.test(text);
1527
- if (untrustedActionMention && !explicitFollowupAction) return false;
1528
-
1529
- const dispatchAction = /\b(dispatch|delegate|assign|orchestrate|hand off|handoff)\b[\s\S]{0,120}\b(agent|dallas|ripley|lambert|rebecca|ralph|work item|task|fix|implement|explore|investigate|audit|review|test|verify|build)\b/.test(text);
1530
- const workItemAction = /\b(create|open|file|add)\b[\s\S]{0,80}\b(work item|task|ticket)\b/.test(text);
1531
- const stateAction = /\b(create|add|set up|start)\b[\s\S]{0,80}\b(watch|monitor|schedule|pipeline|meeting)\b/.test(text)
1532
- || /\b(watch|monitor|keep an eye on)\b[\s\S]{0,100}\b(pr|pull request|work item|build)\b/.test(text)
1533
- || /\b(cancel|retry|reopen|archive|pause|approve|reject|execute|resume|steer)\b[\s\S]{0,100}\b(plan|work item|agent|pr|pull request|schedule|pipeline)\b/.test(text);
1534
- const agentEngineeringAction = /\b(minions|agent|dallas|ripley|lambert|rebecca|ralph)\b[\s\S]{0,120}\b(fix|debug|repair|investigate|audit|review|test|verify|build|refactor|implement)\b/.test(text)
1535
- || /\b(fix|debug|repair|investigate|audit|review|test|verify|build|refactor|implement)\b[\s\S]{0,120}\b(minions|agent|dallas|ripley|lambert|rebecca|ralph)\b/.test(text);
1536
- const explicitActionIntent = dispatchAction || workItemAction || stateAction || agentEngineeringAction;
1537
- if (explicitDocEdit && !explicitActionIntent) return false;
1538
- return explicitActionIntent;
1539
- }
1540
-
1541
1513
  function _escapeRegExp(str) {
1542
1514
  return String(str).replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
1543
1515
  }
@@ -2517,13 +2489,11 @@ function contentFingerprint(str) {
2517
2489
  return str.length + ':' + str.charCodeAt(0) + ':' + str.charCodeAt(mid) + ':' + str.charCodeAt(str.length - 1);
2518
2490
  }
2519
2491
 
2520
- function _parseDocChatResultText(text, { allowActions = false } = {}) {
2492
+ function _parseDocChatResultText(text) {
2521
2493
  const docDelimiter = findDocChatDocumentDelimiter(text);
2522
2494
  if (docDelimiter) {
2523
2495
  const answerPart = text.slice(0, docDelimiter.index).trim();
2524
- const parsedActions = allowActions
2525
- ? parseCCActions(answerPart)
2526
- : { text: stripCCActionSyntax(answerPart), actions: [] };
2496
+ const parsedActions = parseCCActions(answerPart);
2527
2497
  const { text: answer, actions } = parsedActions;
2528
2498
  let content = text.slice(docDelimiter.index + docDelimiter.length).trim();
2529
2499
  content = content.replace(/^```\w*\n?/, '').replace(/\n?```$/, '').trim();
@@ -2534,9 +2504,7 @@ function _parseDocChatResultText(text, { allowActions = false } = {}) {
2534
2504
  ...(parsedActions._actionParseError ? { actionParseError: parsedActions._actionParseError } : {}),
2535
2505
  };
2536
2506
  }
2537
- const parsedActions = allowActions
2538
- ? parseCCActions(text)
2539
- : { text: stripCCActionSyntax(text), actions: [] };
2507
+ const parsedActions = parseCCActions(text);
2540
2508
  const { text: stripped, actions } = parsedActions;
2541
2509
  return {
2542
2510
  answer: stripped,
@@ -2546,8 +2514,8 @@ function _parseDocChatResultText(text, { allowActions = false } = {}) {
2546
2514
  };
2547
2515
  }
2548
2516
 
2549
- function _docChatDisplayText(text, opts) {
2550
- return _parseDocChatResultText(text, opts).answer;
2517
+ function _docChatDisplayText(text) {
2518
+ return _parseDocChatResultText(text).answer;
2551
2519
  }
2552
2520
 
2553
2521
  function _formatDocChatContext({ document, title, filePath, selection, canEdit, isJson, docUnchanged }) {
@@ -2643,8 +2611,6 @@ async function ccDocCall({ message, document, title, filePath, selection, canEdi
2643
2611
  // Skip persistDocSessions() here — the post-call cleanup below handles persistence.
2644
2612
  }
2645
2613
 
2646
- const allowActions = _messageRequestsOrchestration(message);
2647
-
2648
2614
  const runOnce = async () => {
2649
2615
  const { extraContext } = _buildDocChatPass({
2650
2616
  docSlice, title, filePath, selection, canEdit, isJson, sessionKey, freshSession,
@@ -2691,7 +2657,7 @@ async function ccDocCall({ message, document, title, filePath, selection, canEdi
2691
2657
  return _docChatFailureResponse('doc-chat', filePath, result, sessionPreserved);
2692
2658
  }
2693
2659
 
2694
- return _parseDocChatResultText(result.text, { allowActions });
2660
+ return _parseDocChatResultText(result.text);
2695
2661
  }
2696
2662
 
2697
2663
  async function ccDocCallStreaming({ message, document, title, filePath, selection, canEdit, isJson, model, freshSession, onAbortReady, onChunk, onToolUse, onRetry }) {
@@ -2702,8 +2668,6 @@ async function ccDocCallStreaming({ message, document, title, filePath, selectio
2702
2668
  docSessions.delete(sessionKey);
2703
2669
  }
2704
2670
 
2705
- const allowActions = _messageRequestsOrchestration(message);
2706
-
2707
2671
  const runOnce = async () => {
2708
2672
  const { extraContext } = _buildDocChatPass({
2709
2673
  docSlice, title, filePath, selection, canEdit, isJson, sessionKey, freshSession,
@@ -2720,7 +2684,7 @@ async function ccDocCallStreaming({ message, document, title, filePath, selectio
2720
2684
  systemPrompt: DOC_CHAT_SYSTEM_PROMPT,
2721
2685
  ...(model ? { model } : {}),
2722
2686
  onAbortReady,
2723
- onChunk: (text) => { if (onChunk) onChunk(_docChatDisplayText(text, { allowActions })); },
2687
+ onChunk: (text) => { if (onChunk) onChunk(_docChatDisplayText(text)); },
2724
2688
  onToolUse,
2725
2689
  onRetry,
2726
2690
  });
@@ -2749,7 +2713,7 @@ async function ccDocCallStreaming({ message, document, title, filePath, selectio
2749
2713
  return _docChatFailureResponse('doc-chat-stream', filePath, result, sessionPreserved);
2750
2714
  }
2751
2715
 
2752
- return _parseDocChatResultText(result.text, { allowActions });
2716
+ return _parseDocChatResultText(result.text);
2753
2717
  }
2754
2718
 
2755
2719
  // -- POST helpers --
@@ -7435,7 +7399,6 @@ module.exports = {
7435
7399
  _meetingParticipantsFromAction: meetingParticipantsFromAction,
7436
7400
  parsePinnedEntries,
7437
7401
  _parseDocChatResultText,
7438
- _messageRequestsOrchestration,
7439
7402
  _formatDocChatContext,
7440
7403
  _linkPullRequestForTracking: linkPullRequestForTracking,
7441
7404
  _resolveSkillReadPath,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "runtime": "copilot",
3
3
  "models": null,
4
- "cachedAt": "2026-05-06T20:30:44.726Z"
4
+ "cachedAt": "2026-05-06T21:07:27.809Z"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1752",
3
+ "version": "0.1.1753",
4
4
  "description": "Multi-agent AI dev team that runs from ~/.minions/ — five autonomous agents share a single engine, dashboard, and knowledge base",
5
5
  "bin": {
6
6
  "minions": "bin/minions.js"