crewly 1.3.20 → 1.3.21

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.
@@ -108,6 +108,16 @@ When monitoring agents (via `get-agent-logs`), you may encounter situations wher
108
108
 
109
109
  **Never restart an agent that is waiting for input.** Restarting loses the agent's context and wastes the work done so far. Always check logs before deciding an agent is stuck.
110
110
 
111
+ ### Trust Team Capabilities — Do NOT Refuse on Behalf of Agents
112
+
113
+ Your agents have MCP tools and skills that give them access to external services (Gmail, Calendar, Slack, browsers, etc.). **When the user asks you to delegate a task to an agent, ALWAYS delegate it.** Do NOT refuse based on your own assumptions about privacy, security, or capability limitations.
114
+
115
+ - If the user says "help me check unread emails" → delegate to an agent with Gmail MCP
116
+ - If the user says "browse this website" → delegate to an agent with browser skills
117
+ - If the user says "summarize my calendar" → delegate to an agent with Calendar MCP
118
+
119
+ **You are a manager, not a security gate.** The user owns the system and has configured their agents' access. Trust their setup. Your job is to route the request to the right agent, not to second-guess whether the agent should have access.
120
+
111
121
  ### Self-Improvement
112
122
  You have access to the `self_improve` tool to safely modify the Crewly codebase:
113
123
  - Always create a plan before making changes
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-output.utils.d.ts","sourceRoot":"","sources":["../../../../../backend/src/utils/terminal-output.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,CAAC;AA0C1B;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4D3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGpF;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;OAEG;gBACS,OAAO,GAAE,MAAW;IAIhC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAclC,+BAA+B;IAC/B,KAAK,IAAI,IAAI;IAIb,uCAAuC;IACvC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACD"}
1
+ {"version":3,"file":"terminal-output.utils.d.ts","sourceRoot":"","sources":["../../../../../backend/src/utils/terminal-output.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,CAAC;AA0C1B;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAuE3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGpF;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;OAEG;gBACS,OAAO,GAAE,MAAW;IAIhC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAclC,+BAA+B;IAC/B,KAAK,IAAI,IAAI;IAIb,uCAAuC;IACvC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACD"}
@@ -68,28 +68,37 @@ export function cleanGoogleChatResponse(raw) {
68
68
  // Step 1: Strip ANSI escape codes
69
69
  let cleaned = stripAnsiCodes(raw);
70
70
  // Step 2: Extract NOTIFY message content if present
71
- // NOTIFY blocks use: [NOTIFY]\n---\ncontent\n---\n[/NOTIFY] or JSON payload with "message" field
72
- const notifyMatch = cleaned.match(/\[NOTIFY\]([\s\S]*?)\[\/NOTIFY\]/);
73
- if (notifyMatch) {
74
- const payload = notifyMatch[1].trim();
71
+ // Terminal output may contain multiple NOTIFY blocks (e.g. acknowledgment + detailed response).
72
+ // Extract body content from ALL blocks and combine them, stripping headers and markers.
73
+ const notifyRegex = /\[NOTIFY\]([\s\S]*?)\[\/NOTIFY\]/g;
74
+ const notifyBodies = [];
75
+ let hasNotify = false;
76
+ for (const match of cleaned.matchAll(notifyRegex)) {
77
+ hasNotify = true;
78
+ const payload = match[1].trim();
75
79
  // Try JSON parse first (structured NOTIFY)
76
80
  try {
77
81
  const parsed = JSON.parse(payload);
78
82
  if (parsed.message) {
79
- cleaned = parsed.message;
83
+ notifyBodies.push(parsed.message);
84
+ continue;
80
85
  }
81
86
  }
82
87
  catch {
83
- // Try --- delimited content (NOTIFY format has single --- separator between headers and body)
84
- const dashMatch = payload.match(/---\s*\n([\s\S]*)/);
85
- if (dashMatch) {
86
- cleaned = dashMatch[1].trim();
87
- }
88
- else {
89
- // Use raw payload as fallback
90
- cleaned = payload;
91
- }
88
+ // Not JSON try --- delimited content
89
+ }
90
+ // --- delimited: headers before ---, body after ---
91
+ const dashMatch = payload.match(/---\s*\n([\s\S]*)/);
92
+ if (dashMatch) {
93
+ notifyBodies.push(dashMatch[1].trim());
92
94
  }
95
+ else {
96
+ // Use raw payload as fallback (no headers)
97
+ notifyBodies.push(payload);
98
+ }
99
+ }
100
+ if (hasNotify) {
101
+ cleaned = notifyBodies.join('\n\n');
93
102
  }
94
103
  // Step 3: Remove spinner characters
95
104
  for (const ch of SPINNER_CHARS) {
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-output.utils.js","sourceRoot":"","sources":["../../../../../backend/src/utils/terminal-output.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-output.utils.js","sourceRoot":"","sources":["../../../../../backend/src/utils/terminal-output.utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-output.utils.d.ts","sourceRoot":"","sources":["../../../../../backend/src/utils/terminal-output.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,CAAC;AA0C1B;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4D3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGpF;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;OAEG;gBACS,OAAO,GAAE,MAAW;IAIhC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAclC,+BAA+B;IAC/B,KAAK,IAAI,IAAI;IAIb,uCAAuC;IACvC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACD"}
1
+ {"version":3,"file":"terminal-output.utils.d.ts","sourceRoot":"","sources":["../../../../../backend/src/utils/terminal-output.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,CAAC;AA0C1B;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAuE3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGpF;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;OAEG;gBACS,OAAO,GAAE,MAAW;IAIhC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAclC,+BAA+B;IAC/B,KAAK,IAAI,IAAI;IAIb,uCAAuC;IACvC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACD"}
@@ -68,28 +68,37 @@ export function cleanGoogleChatResponse(raw) {
68
68
  // Step 1: Strip ANSI escape codes
69
69
  let cleaned = stripAnsiCodes(raw);
70
70
  // Step 2: Extract NOTIFY message content if present
71
- // NOTIFY blocks use: [NOTIFY]\n---\ncontent\n---\n[/NOTIFY] or JSON payload with "message" field
72
- const notifyMatch = cleaned.match(/\[NOTIFY\]([\s\S]*?)\[\/NOTIFY\]/);
73
- if (notifyMatch) {
74
- const payload = notifyMatch[1].trim();
71
+ // Terminal output may contain multiple NOTIFY blocks (e.g. acknowledgment + detailed response).
72
+ // Extract body content from ALL blocks and combine them, stripping headers and markers.
73
+ const notifyRegex = /\[NOTIFY\]([\s\S]*?)\[\/NOTIFY\]/g;
74
+ const notifyBodies = [];
75
+ let hasNotify = false;
76
+ for (const match of cleaned.matchAll(notifyRegex)) {
77
+ hasNotify = true;
78
+ const payload = match[1].trim();
75
79
  // Try JSON parse first (structured NOTIFY)
76
80
  try {
77
81
  const parsed = JSON.parse(payload);
78
82
  if (parsed.message) {
79
- cleaned = parsed.message;
83
+ notifyBodies.push(parsed.message);
84
+ continue;
80
85
  }
81
86
  }
82
87
  catch {
83
- // Try --- delimited content (NOTIFY format has single --- separator between headers and body)
84
- const dashMatch = payload.match(/---\s*\n([\s\S]*)/);
85
- if (dashMatch) {
86
- cleaned = dashMatch[1].trim();
87
- }
88
- else {
89
- // Use raw payload as fallback
90
- cleaned = payload;
91
- }
88
+ // Not JSON try --- delimited content
89
+ }
90
+ // --- delimited: headers before ---, body after ---
91
+ const dashMatch = payload.match(/---\s*\n([\s\S]*)/);
92
+ if (dashMatch) {
93
+ notifyBodies.push(dashMatch[1].trim());
92
94
  }
95
+ else {
96
+ // Use raw payload as fallback (no headers)
97
+ notifyBodies.push(payload);
98
+ }
99
+ }
100
+ if (hasNotify) {
101
+ cleaned = notifyBodies.join('\n\n');
93
102
  }
94
103
  // Step 3: Remove spinner characters
95
104
  for (const ch of SPINNER_CHARS) {
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-output.utils.js","sourceRoot":"","sources":["../../../../../backend/src/utils/terminal-output.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-output.utils.js","sourceRoot":"","sources":["../../../../../backend/src/utils/terminal-output.utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crewly",
3
- "version": "1.3.20",
3
+ "version": "1.3.21",
4
4
  "type": "module",
5
5
  "description": "Multi-agent orchestration platform for AI coding teams — coordinates Claude Code, Gemini CLI, and Codex agents with a real-time web dashboard",
6
6
  "main": "dist/cli/cli/src/index.js",