@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 +5 -0
- package/dashboard.js +8 -45
- package/engine/copilot-models.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
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
|
|
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 =
|
|
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 =
|
|
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
|
|
2550
|
-
return _parseDocChatResultText(text
|
|
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
|
|
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
|
|
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
|
|
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,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
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"
|