crewly 1.4.38 → 1.4.39

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.
Files changed (64) hide show
  1. package/config/skills/agent/core/complete-task/execute.sh +5 -3
  2. package/config/skills/agent/core/report-status/execute.sh +4 -2
  3. package/dist/backend/backend/src/constants.d.ts +5 -24
  4. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  5. package/dist/backend/backend/src/constants.js +5 -28
  6. package/dist/backend/backend/src/constants.js.map +1 -1
  7. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +20 -0
  8. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  9. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +80 -0
  10. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  11. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -1
  12. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +28 -3
  13. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -1
  14. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +6 -2
  15. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  16. package/dist/backend/backend/src/services/agent/agent-registration.service.js +34 -18
  17. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  18. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -1
  19. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +25 -0
  20. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -1
  21. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +4 -4
  22. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  23. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +21 -9
  24. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  25. package/dist/backend/backend/src/services/cloud/auth/auth.utils.d.ts +0 -4
  26. package/dist/backend/backend/src/services/cloud/auth/auth.utils.d.ts.map +1 -1
  27. package/dist/backend/backend/src/services/cloud/auth/auth.utils.js +0 -7
  28. package/dist/backend/backend/src/services/cloud/auth/auth.utils.js.map +1 -1
  29. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts +2 -0
  30. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts.map +1 -1
  31. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js +5 -0
  32. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js.map +1 -1
  33. package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/cloud/relay-client.service.js +4 -0
  35. package/dist/backend/backend/src/services/cloud/relay-client.service.js.map +1 -1
  36. package/dist/backend/backend/src/services/memory/memory.service.d.ts +10 -0
  37. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/memory/memory.service.js +27 -5
  39. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  40. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts +9 -1
  41. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/messaging/message-queue.service.js +36 -2
  43. package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
  44. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +4 -0
  45. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +8 -1
  47. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  48. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/slack/slack.service.js +6 -1
  50. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  51. package/dist/backend/backend/src/utils/security.d.ts.map +1 -1
  52. package/dist/backend/backend/src/utils/security.js +9 -6
  53. package/dist/backend/backend/src/utils/security.js.map +1 -1
  54. package/dist/cli/backend/src/constants.d.ts +5 -24
  55. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  56. package/dist/cli/backend/src/constants.js +5 -28
  57. package/dist/cli/backend/src/constants.js.map +1 -1
  58. package/dist/cli/backend/src/services/memory/memory.service.d.ts +10 -0
  59. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  60. package/dist/cli/backend/src/services/memory/memory.service.js +27 -5
  61. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  62. package/frontend/dist/assets/{index-8aa61f2c.js → index-e8b8498d.js} +353 -352
  63. package/frontend/dist/index.html +1 -1
  64. package/package.json +1 -1
@@ -216,15 +216,19 @@ export declare class AgentRegistrationService {
216
216
  private loadRegistrationPrompt;
217
217
  /**
218
218
  * Write the registration prompt to a file on disk.
219
- * Returns the file path on success, or undefined on failure.
219
+ *
220
+ * For Claude Code agents (#207): writes to `{projectPath}/.claude/agents/{sessionName}.md`
221
+ * with YAML frontmatter so the `--agent` flag can load it as a custom agent definition.
222
+ * For other runtimes: writes to `~/.crewly/prompts/{sessionName}-init.md`.
220
223
  *
221
224
  * @param sessionName - Session name (used for filename)
222
225
  * @param prompt - The full prompt content
226
+ * @param options - Optional: projectPath, runtimeType, and role for claude-code agent mode
223
227
  * @returns The absolute path to the written file, or undefined on error
224
228
  */
225
229
  private writePromptFile;
226
230
  /**
227
- * Build the unified init prompt path used by all runtimes.
231
+ * Build the unified init prompt path used by non-Claude-Code runtimes.
228
232
  */
229
233
  private getInitPromptFilePath;
230
234
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent-registration.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/agent-registration.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-registration.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/agent-registration.service.ts"],"names":[],"mappings":"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"}
@@ -527,12 +527,14 @@ export class AgentRegistrationService {
527
527
  });
528
528
  }
529
529
  }
530
- // Write prompt file before launching runtime so --append-system-prompt-file works
530
+ // Write prompt file before launching runtime so --agent (Claude Code) or --append-system-prompt-file works
531
531
  let promptFilePath;
532
+ let agentName;
532
533
  if (runtimeType === RUNTIME_TYPES.CLAUDE_CODE) {
533
534
  try {
534
535
  const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
535
- promptFilePath = await this.writePromptFile(sessionName, prompt);
536
+ promptFilePath = await this.writePromptFile(sessionName, prompt, { projectPath, runtimeType, role });
537
+ agentName = sessionName; // #207: pass agent name for --agent flag
536
538
  }
537
539
  catch (promptError) {
538
540
  this.logger.warn('Failed to pre-write prompt file (non-fatal, will fall back to direct delivery)', {
@@ -542,10 +544,8 @@ export class AgentRegistrationService {
542
544
  }
543
545
  }
544
546
  // Reinitialize runtime using the appropriate initialization script (always fresh start)
545
- // runtimeService2: Fresh instance for runtime reinitialization after cleanup
546
- // New instance ensures clean state without cached detection results
547
547
  const runtimeService2 = this.createRuntimeService(runtimeType);
548
- await runtimeService2.executeRuntimeInitScript(sessionName, projectPath, effectiveFlags, promptFilePath);
548
+ await runtimeService2.executeRuntimeInitScript(sessionName, projectPath, effectiveFlags, promptFilePath, agentName);
549
549
  // Wait for runtime to be ready (simplified detection)
550
550
  // Use shorter check interval in test environment, and reasonable interval in production
551
551
  const checkInterval = this.getCheckInterval();
@@ -818,12 +818,14 @@ export class AgentRegistrationService {
818
818
  });
819
819
  }
820
820
  }
821
- // Write prompt file before launching runtime so --append-system-prompt-file works
821
+ // Write prompt file before launching runtime so --agent (Claude Code) or --append-system-prompt-file works
822
822
  let promptFilePath;
823
+ let agentName;
823
824
  if (runtimeType === RUNTIME_TYPES.CLAUDE_CODE) {
824
825
  try {
825
826
  const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
826
- promptFilePath = await this.writePromptFile(sessionName, prompt);
827
+ promptFilePath = await this.writePromptFile(sessionName, prompt, { projectPath, runtimeType, role });
828
+ agentName = sessionName;
827
829
  }
828
830
  catch (promptError) {
829
831
  this.logger.warn('Failed to pre-write prompt file in full recreation (non-fatal)', {
@@ -840,7 +842,7 @@ export class AgentRegistrationService {
840
842
  });
841
843
  // Initialize runtime for orchestrator using script (always fresh start)
842
844
  const runtimeService = this.createRuntimeService(runtimeType);
843
- await runtimeService.executeRuntimeInitScript(sessionName, process.cwd(), effectiveFlags, promptFilePath);
845
+ await runtimeService.executeRuntimeInitScript(sessionName, process.cwd(), effectiveFlags, promptFilePath, agentName);
844
846
  // Wait for runtime to be ready
845
847
  const checkInterval = this.getCheckInterval();
846
848
  // runtimeService3: Separate instance for orchestrator ready-state detection
@@ -886,7 +888,7 @@ export class AgentRegistrationService {
886
888
  // For other roles, create basic session and initialize Claude (always fresh start)
887
889
  await (await this.getSessionHelper()).createSession(sessionName, projectPath || process.cwd());
888
890
  const runtimeService = this.createRuntimeService(runtimeType);
889
- await runtimeService.executeRuntimeInitScript(sessionName, projectPath, effectiveFlags, promptFilePath);
891
+ await runtimeService.executeRuntimeInitScript(sessionName, projectPath, effectiveFlags, promptFilePath, agentName);
890
892
  // Wait for runtime to be ready (simplified detection)
891
893
  const checkInterval = this.getCheckInterval();
892
894
  const isReady = await this.createRuntimeService(runtimeType)
@@ -1261,22 +1263,36 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
1261
1263
  }
1262
1264
  /**
1263
1265
  * Write the registration prompt to a file on disk.
1264
- * Returns the file path on success, or undefined on failure.
1266
+ *
1267
+ * For Claude Code agents (#207): writes to `{projectPath}/.claude/agents/{sessionName}.md`
1268
+ * with YAML frontmatter so the `--agent` flag can load it as a custom agent definition.
1269
+ * For other runtimes: writes to `~/.crewly/prompts/{sessionName}-init.md`.
1265
1270
  *
1266
1271
  * @param sessionName - Session name (used for filename)
1267
1272
  * @param prompt - The full prompt content
1273
+ * @param options - Optional: projectPath, runtimeType, and role for claude-code agent mode
1268
1274
  * @returns The absolute path to the written file, or undefined on error
1269
1275
  */
1270
- async writePromptFile(sessionName, prompt) {
1271
- const promptFilePath = this.getInitPromptFilePath(sessionName);
1276
+ async writePromptFile(sessionName, prompt, options) {
1277
+ const isClaudeAgent = options?.runtimeType === RUNTIME_TYPES.CLAUDE_CODE && options?.projectPath;
1278
+ const promptFilePath = isClaudeAgent
1279
+ ? path.join(options.projectPath, '.claude', 'agents', `${sessionName}.md`)
1280
+ : this.getInitPromptFilePath(sessionName);
1272
1281
  const promptsDir = path.dirname(promptFilePath);
1282
+ // Quote YAML values to prevent injection via sessionName or role containing special chars
1283
+ const yamlSafeName = sessionName.replace(/"/g, '\\"');
1284
+ const yamlSafeRole = (options?.role || 'developer').replace(/"/g, '\\"');
1285
+ const fileContent = isClaudeAgent
1286
+ ? `---\nname: "${yamlSafeName}"\ndescription: "${yamlSafeRole} agent for Crewly orchestration"\n---\n\n${prompt}`
1287
+ : prompt;
1273
1288
  try {
1274
1289
  await mkdir(promptsDir, { recursive: true });
1275
- await writeFile(promptFilePath, prompt, 'utf8');
1290
+ await writeFile(promptFilePath, fileContent, 'utf8');
1276
1291
  this.logger.debug('Wrote init prompt to file', {
1277
1292
  sessionName,
1278
1293
  promptFilePath,
1279
- promptLength: prompt.length,
1294
+ promptLength: fileContent.length,
1295
+ mode: isClaudeAgent ? 'claude-agent' : 'legacy',
1280
1296
  });
1281
1297
  return promptFilePath;
1282
1298
  }
@@ -1290,7 +1306,7 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
1290
1306
  }
1291
1307
  }
1292
1308
  /**
1293
- * Build the unified init prompt path used by all runtimes.
1309
+ * Build the unified init prompt path used by non-Claude-Code runtimes.
1294
1310
  */
1295
1311
  getInitPromptFilePath(sessionName) {
1296
1312
  return path.join(os.homedir(), CREWLY_CONSTANTS.PATHS.CREWLY_HOME, 'prompts', `${sessionName}-init.md`);
@@ -3634,13 +3650,13 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
3634
3650
  return false;
3635
3651
  }
3636
3652
  // Step 2: Build the message to send.
3637
- // Claude Code: prompt was already loaded via --append-system-prompt-file at launch,
3638
- // so the agent already has all instructions as a system prompt. Just send a short
3653
+ // Claude Code: prompt was already loaded via --agent flag at launch (#207),
3654
+ // so the agent already has all instructions as its agent definition. Just send a short
3639
3655
  // kickoff trigger — no need to ask it to read the file again.
3640
3656
  // Gemini CLI / other runtimes: need the file-read instruction since the prompt
3641
3657
  // was NOT loaded via system prompt.
3642
3658
  const messageToSend = isClaudeCode
3643
- ? 'Begin your work now. Follow the instructions you were given and start by doing an initial assessment of the project.'
3659
+ ? 'Begin your work now. Follow the step-by-step instructions in your agent definition EXACTLY — start with Step 1, then Step 2, then Step 3 (register-self). Do NOT skip or reorder steps. Registration is required before the system will deliver messages to you.'
3644
3660
  : `Read the file at ${promptFilePath} and follow all instructions in it.`;
3645
3661
  // Single attempt for all runtimes. Retrying causes duplicate messages because:
3646
3662
  // - Claude Code: returns to its prompt between tool calls, making retry