crewly 1.0.3 → 1.0.5

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 (189) hide show
  1. package/config/roles/orchestrator/prompt.md +61 -2
  2. package/config/skills/orchestrator/remember/instructions.md +8 -1
  3. package/config/skills/orchestrator/update-team/execute.sh +16 -0
  4. package/config/skills/orchestrator/update-team/instructions.md +21 -0
  5. package/config/skills/orchestrator/update-team/skill.json +20 -0
  6. package/dist/backend/backend/src/controllers/messaging/delivery-logs.controller.d.ts.map +1 -1
  7. package/dist/backend/backend/src/controllers/messaging/delivery-logs.controller.js +4 -2
  8. package/dist/backend/backend/src/controllers/messaging/delivery-logs.controller.js.map +1 -1
  9. package/dist/backend/backend/src/controllers/messaging/scheduled-messages.controller.d.ts.map +1 -1
  10. package/dist/backend/backend/src/controllers/messaging/scheduled-messages.controller.js +10 -8
  11. package/dist/backend/backend/src/controllers/messaging/scheduled-messages.controller.js.map +1 -1
  12. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
  13. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +28 -26
  14. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
  15. package/dist/backend/backend/src/controllers/project/git.controller.d.ts.map +1 -1
  16. package/dist/backend/backend/src/controllers/project/git.controller.js +9 -7
  17. package/dist/backend/backend/src/controllers/project/git.controller.js.map +1 -1
  18. package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
  19. package/dist/backend/backend/src/controllers/project/project.controller.js +52 -50
  20. package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
  21. package/dist/backend/backend/src/controllers/skill/skill.controller.d.ts.map +1 -1
  22. package/dist/backend/backend/src/controllers/skill/skill.controller.js +3 -1
  23. package/dist/backend/backend/src/controllers/skill/skill.controller.js.map +1 -1
  24. package/dist/backend/backend/src/controllers/slack/slack-thread.controller.d.ts.map +1 -1
  25. package/dist/backend/backend/src/controllers/slack/slack-thread.controller.js +3 -1
  26. package/dist/backend/backend/src/controllers/slack/slack-thread.controller.js.map +1 -1
  27. package/dist/backend/backend/src/controllers/system/config.controller.d.ts.map +1 -1
  28. package/dist/backend/backend/src/controllers/system/config.controller.js +3 -1
  29. package/dist/backend/backend/src/controllers/system/config.controller.js.map +1 -1
  30. package/dist/backend/backend/src/controllers/system/errors.controller.d.ts.map +1 -1
  31. package/dist/backend/backend/src/controllers/system/errors.controller.js +7 -5
  32. package/dist/backend/backend/src/controllers/system/errors.controller.js.map +1 -1
  33. package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts.map +1 -1
  34. package/dist/backend/backend/src/controllers/system/scheduler.controller.js +6 -4
  35. package/dist/backend/backend/src/controllers/system/scheduler.controller.js.map +1 -1
  36. package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
  37. package/dist/backend/backend/src/controllers/system/system.controller.js +20 -19
  38. package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
  39. package/dist/backend/backend/src/controllers/task-management/assignments.controller.d.ts.map +1 -1
  40. package/dist/backend/backend/src/controllers/task-management/assignments.controller.js +4 -2
  41. package/dist/backend/backend/src/controllers/task-management/assignments.controller.js.map +1 -1
  42. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.d.ts.map +1 -1
  43. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js +3 -1
  44. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js.map +1 -1
  45. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  46. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +30 -28
  47. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  48. package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts.map +1 -1
  49. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js +7 -5
  50. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js.map +1 -1
  51. package/dist/backend/backend/src/controllers/task-management/tickets.controller.d.ts.map +1 -1
  52. package/dist/backend/backend/src/controllers/task-management/tickets.controller.js +12 -10
  53. package/dist/backend/backend/src/controllers/task-management/tickets.controller.js.map +1 -1
  54. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  55. package/dist/backend/backend/src/controllers/team/team.controller.js +44 -42
  56. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  57. package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
  58. package/dist/backend/backend/src/controllers/team/team.routes.js +1 -0
  59. package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
  60. package/dist/backend/backend/src/index.d.ts.map +1 -1
  61. package/dist/backend/backend/src/index.js +5 -1
  62. package/dist/backend/backend/src/index.js.map +1 -1
  63. package/dist/backend/backend/src/routes/factory.routes.d.ts.map +1 -1
  64. package/dist/backend/backend/src/routes/factory.routes.js +4 -2
  65. package/dist/backend/backend/src/routes/factory.routes.js.map +1 -1
  66. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -1
  67. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +8 -2
  68. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -1
  69. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +6 -0
  70. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  71. package/dist/backend/backend/src/services/agent/agent-registration.service.js +29 -6
  72. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  73. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  74. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +22 -8
  75. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  76. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +9 -3
  78. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  79. package/dist/backend/backend/src/services/ai/context-loader.service.d.ts +1 -0
  80. package/dist/backend/backend/src/services/ai/context-loader.service.d.ts.map +1 -1
  81. package/dist/backend/backend/src/services/ai/context-loader.service.js +9 -7
  82. package/dist/backend/backend/src/services/ai/context-loader.service.js.map +1 -1
  83. package/dist/backend/backend/src/services/ai/prompt-template.service.d.ts +1 -0
  84. package/dist/backend/backend/src/services/ai/prompt-template.service.d.ts.map +1 -1
  85. package/dist/backend/backend/src/services/ai/prompt-template.service.js +7 -5
  86. package/dist/backend/backend/src/services/ai/prompt-template.service.js.map +1 -1
  87. package/dist/backend/backend/src/services/core/config.service.d.ts +6 -0
  88. package/dist/backend/backend/src/services/core/config.service.d.ts.map +1 -1
  89. package/dist/backend/backend/src/services/core/config.service.js +25 -5
  90. package/dist/backend/backend/src/services/core/config.service.js.map +1 -1
  91. package/dist/backend/backend/src/services/core/storage.service.d.ts +10 -2
  92. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  93. package/dist/backend/backend/src/services/core/storage.service.js +45 -29
  94. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  95. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  96. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +50 -33
  97. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  98. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts +4 -1
  99. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts.map +1 -1
  100. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js +28 -14
  101. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js.map +1 -1
  102. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.d.ts +1 -0
  103. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.d.ts.map +1 -1
  104. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.js +22 -20
  105. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.js.map +1 -1
  106. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  107. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +11 -2
  108. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  109. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.d.ts +1 -0
  110. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.d.ts.map +1 -1
  111. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.js +25 -23
  112. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.js.map +1 -1
  113. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.d.ts +1 -0
  114. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.d.ts.map +1 -1
  115. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.js +12 -10
  116. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.js.map +1 -1
  117. package/dist/backend/backend/src/services/orchestrator/slack-bridge-lazy.d.ts +17 -0
  118. package/dist/backend/backend/src/services/orchestrator/slack-bridge-lazy.d.ts.map +1 -0
  119. package/dist/backend/backend/src/services/orchestrator/slack-bridge-lazy.js +30 -0
  120. package/dist/backend/backend/src/services/orchestrator/slack-bridge-lazy.js.map +1 -0
  121. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts +1 -0
  122. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts.map +1 -1
  123. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js +14 -12
  124. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js.map +1 -1
  125. package/dist/backend/backend/src/services/project/active-projects.service.d.ts +1 -0
  126. package/dist/backend/backend/src/services/project/active-projects.service.d.ts.map +1 -1
  127. package/dist/backend/backend/src/services/project/active-projects.service.js +8 -6
  128. package/dist/backend/backend/src/services/project/active-projects.service.js.map +1 -1
  129. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +1 -0
  130. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  131. package/dist/backend/backend/src/services/project/task-tracking.service.js +18 -16
  132. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  133. package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts +1 -0
  134. package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts.map +1 -1
  135. package/dist/backend/backend/src/services/project/ticket-editor.service.js +6 -4
  136. package/dist/backend/backend/src/services/project/ticket-editor.service.js.map +1 -1
  137. package/dist/backend/backend/src/services/settings/role.service.d.ts +1 -0
  138. package/dist/backend/backend/src/services/settings/role.service.d.ts.map +1 -1
  139. package/dist/backend/backend/src/services/settings/role.service.js +3 -1
  140. package/dist/backend/backend/src/services/settings/role.service.js.map +1 -1
  141. package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts +1 -0
  142. package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts.map +1 -1
  143. package/dist/backend/backend/src/services/skill/skill-executor.service.js +4 -2
  144. package/dist/backend/backend/src/services/skill/skill-executor.service.js.map +1 -1
  145. package/dist/backend/backend/src/services/skill/skill.service.d.ts +1 -0
  146. package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
  147. package/dist/backend/backend/src/services/skill/skill.service.js +7 -5
  148. package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
  149. package/dist/backend/backend/src/services/slack/slack-image.service.d.ts +1 -0
  150. package/dist/backend/backend/src/services/slack/slack-image.service.d.ts.map +1 -1
  151. package/dist/backend/backend/src/services/slack/slack-image.service.js +6 -4
  152. package/dist/backend/backend/src/services/slack/slack-image.service.js.map +1 -1
  153. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  154. package/dist/backend/backend/src/services/slack/slack-initializer.js +7 -5
  155. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  156. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +1 -0
  157. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  158. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +25 -20
  159. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  160. package/dist/backend/backend/src/services/slack/slack.service.d.ts +1 -0
  161. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  162. package/dist/backend/backend/src/services/slack/slack.service.js +19 -15
  163. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  164. package/dist/backend/backend/src/utils/process-recovery.d.ts +1 -0
  165. package/dist/backend/backend/src/utils/process-recovery.d.ts.map +1 -1
  166. package/dist/backend/backend/src/utils/process-recovery.js +40 -37
  167. package/dist/backend/backend/src/utils/process-recovery.js.map +1 -1
  168. package/dist/backend/backend/src/utils/prompt-resolver.d.ts.map +1 -1
  169. package/dist/backend/backend/src/utils/prompt-resolver.js +3 -1
  170. package/dist/backend/backend/src/utils/prompt-resolver.js.map +1 -1
  171. package/dist/backend/backend/src/utils/resource-monitor.d.ts +2 -1
  172. package/dist/backend/backend/src/utils/resource-monitor.d.ts.map +1 -1
  173. package/dist/backend/backend/src/utils/resource-monitor.js +34 -24
  174. package/dist/backend/backend/src/utils/resource-monitor.js.map +1 -1
  175. package/dist/cli/cli/src/commands/onboard.d.ts +89 -0
  176. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -0
  177. package/dist/cli/cli/src/commands/onboard.js +268 -0
  178. package/dist/cli/cli/src/commands/onboard.js.map +1 -0
  179. package/dist/cli/cli/src/index.js +5 -0
  180. package/dist/cli/cli/src/index.js.map +1 -1
  181. package/dist/cli/cli/src/utils/marketplace.d.ts +22 -0
  182. package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
  183. package/dist/cli/cli/src/utils/marketplace.js +43 -0
  184. package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
  185. package/frontend/dist/assets/{index-4c56763b.js → index-419da091.js} +2 -2
  186. package/frontend/dist/assets/index-5adb4dff.css +33 -0
  187. package/frontend/dist/index.html +2 -2
  188. package/package.json +2 -1
  189. package/frontend/dist/assets/index-c1dd0b10.css +0 -33
@@ -42,7 +42,55 @@ Study the results carefully. **This is your knowledge base.** You must know:
42
42
  bash config/skills/orchestrator/register-self/execute.sh '{"role":"orchestrator","sessionName":"{{SESSION_ID}}"}'
43
43
  ```
44
44
 
45
- After registering, say "Ready" and wait for the user to send you a chat message.
45
+ After registering, proceed to Step 4.
46
+
47
+ ### Step 4 — Check Active Goals and Report
48
+
49
+ After registration, check for active goals and OKRs:
50
+
51
+ ```bash
52
+ bash config/skills/orchestrator/recall/execute.sh '{"context":"OKR goals active tasks","scope":"both","agentId":"{{SESSION_ID}}","projectPath":"{{PROJECT_PATH}}"}'
53
+ ```
54
+
55
+ **If active OKRs or goals exist:** Report the current status to the user and ask if they want you to take over execution. Do NOT auto-execute unless the user has explicitly activated Autonomous Mode (see below).
56
+
57
+ **If no active goals exist:** Say "Ready" and wait for the user.
58
+
59
+ ## ⚠️ Autonomous Mode — Activated by User
60
+
61
+ **Autonomous Mode is OFF by default.** The orchestrator only enters Autonomous Mode when the user explicitly says so — e.g. "接管", "你来管", "take over", "go autonomous", "你负责推进", or similar instructions that clearly delegate execution authority to you.
62
+
63
+ ### When Autonomous Mode is ON:
64
+
65
+ **You are a manager, not an assistant.** The user's goal/OKR is a standing order. You don't need permission to:
66
+ - Restart agents that went idle when there's still work to do
67
+ - Assign the next task after an agent completes one
68
+ - Break down OKR key results into concrete tasks
69
+ - Monitor progress and course-correct
70
+
71
+ You DO need permission to:
72
+ - Change the OKRs themselves
73
+ - Create new teams or projects
74
+ - Make architectural decisions not covered by the OKR
75
+
76
+ **Continuous Execution Protocol (only when Autonomous Mode is ON):**
77
+
78
+ When an agent completes a task and there are still OKR key results to achieve:
79
+ 1. Check the agent's output and evaluate results
80
+ 2. Identify the next task toward the OKR
81
+ 3. Immediately delegate the next task — do NOT wait for the user to ask
82
+ 4. Report progress to the user (what was completed + what's next)
83
+
84
+ When an agent goes idle/inactive and there's still work:
85
+ 1. Restart the agent
86
+ 2. Assign the next task
87
+ 3. This is YOUR responsibility — the user should never have to say "why did you stop?"
88
+
89
+ ### When Autonomous Mode is OFF (default):
90
+
91
+ - Report status when asked
92
+ - Propose tasks but wait for user approval before delegating
93
+ - Do not restart idle agents without being asked
46
94
 
47
95
  ## ⚠️ CRITICAL: Notification Protocol — ALWAYS RESPOND TO THE USER
48
96
 
@@ -466,6 +514,14 @@ All actions are performed by running bash scripts. Each script outputs JSON to s
466
514
 
467
515
  **Pattern**: `bash config/skills/orchestrator/{skill-name}/execute.sh '{"param":"value"}'`
468
516
 
517
+ **IMPORTANT: Always use skill scripts instead of raw `curl` commands.** The skill scripts use `api_call()` from the common library which:
518
+ - Automatically resolves the correct API URL (falls back to `http://localhost:8787`)
519
+ - Includes the `X-Agent-Session` header for heartbeat tracking
520
+ - Handles error formatting and HTTP status code checking
521
+ - Uses the correct HTTP methods for each endpoint
522
+
523
+ If you use raw `curl`, you may get empty `$CREWLY_API_URL`, wrong ports, or missing headers.
524
+
469
525
  ### Quick Reference
470
526
 
471
527
  | Skill | Purpose | Example |
@@ -480,6 +536,7 @@ All actions are performed by running bash scripts. Each script outputs JSON to s
480
536
  | `create-project` | Create a project | `'{"path":"/abs/path","name":"My Project","description":"..."}'` |
481
537
  | `assign-team-to-project` | Assign teams to project | `'{"projectId":"uuid","teamIds":["team-uuid"]}'` |
482
538
  | `create-team` | Create a team | `'{"name":"Alpha","members":[{"name":"dev1","role":"developer"}]}'` |
539
+ | `update-team` | Update/rename a team | `'{"teamId":"uuid","name":"New Name","description":"..."}'` |
483
540
  | `start-team` | Start all team agents | `'{"teamId":"uuid","projectId":"proj-uuid"}'` (projectId optional) |
484
541
  | `stop-team` | Stop all team agents | `'{"teamId":"uuid"}'` |
485
542
  | `start-agent` | Start one agent | `'{"teamId":"uuid","memberId":"uuid"}'` |
@@ -806,8 +863,10 @@ As the orchestrator, you have special memory responsibilities beyond regular age
806
863
 
807
864
  When a user gives you instructions or goals via chat:
808
865
 
809
- 1. Call `remember` with category `fact` and scope `project` to store what the user wants
866
+ 1. Call `remember` with category `decision` and scope `project` to store what the user wants
810
867
  2. This ensures the team's understanding of requirements persists across sessions
868
+ 3. Valid categories for project scope: `pattern`, `decision`, `gotcha`, `relationship`
869
+ 4. Valid categories for agent scope: `fact`, `pattern`, `preference`
811
870
 
812
871
  ### Record Delegations
813
872
 
@@ -13,12 +13,19 @@ bash config/skills/orchestrator/remember/execute.sh '{"content":"TypeScript stri
13
13
  | Parameter | Required | Description |
14
14
  |-----------|----------|-------------|
15
15
  | `content` | Yes | The knowledge to store |
16
- | `category` | Yes | Category: `pattern`, `decision`, `gotcha`, `fact`, `preference`, `relationship` |
16
+ | `category` | Yes | See valid categories per scope below |
17
17
  | `scope` | No | Scope: `agent` or `project` (default: `agent`) |
18
18
  | `title` | No | Optional title for the knowledge |
19
19
  | `teamMemberId` | No | Your session name |
20
20
  | `projectPath` | No | Current project path |
21
21
 
22
+ ## Valid Categories by Scope
23
+
24
+ - **Agent scope** (`scope: "agent"`): `fact`, `pattern`, `preference`
25
+ - **Project scope** (`scope: "project"`): `pattern`, `decision`, `gotcha`, `relationship`
26
+
27
+ Using a category that doesn't match the scope will return an error.
28
+
22
29
  ## Output
23
30
 
24
31
  JSON with the stored knowledge entry ID.
@@ -0,0 +1,16 @@
1
+ #!/bin/bash
2
+ # Update an existing team (name, description, or members)
3
+ set -euo pipefail
4
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5
+ source "${SCRIPT_DIR}/../_common/lib.sh"
6
+
7
+ INPUT="${1:-}"
8
+ [ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"teamId\":\"uuid\",\"name\":\"New Name\",\"description\":\"...\"}'"
9
+
10
+ TEAM_ID=$(echo "$INPUT" | jq -r '.teamId // empty')
11
+ require_param "teamId" "$TEAM_ID"
12
+
13
+ # Remove teamId from the body before sending (it's in the URL)
14
+ BODY=$(echo "$INPUT" | jq 'del(.teamId)')
15
+
16
+ api_call PUT "/teams/$TEAM_ID" "$BODY"
@@ -0,0 +1,21 @@
1
+ # Update Team
2
+
3
+ Update an existing team's name, description, or other properties.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ bash config/skills/orchestrator/update-team/execute.sh '{"teamId":"817a1aeb-...","name":"New Name","description":"Updated description"}'
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Required | Description |
14
+ |-----------|----------|-------------|
15
+ | `teamId` | Yes | The team UUID to update |
16
+ | `name` | No | New team name |
17
+ | `description` | No | New team description |
18
+
19
+ ## Output
20
+
21
+ JSON with the updated team data.
@@ -0,0 +1,20 @@
1
+ {
2
+ "id": "orc-update-team",
3
+ "name": "Update Team",
4
+ "description": "Update an existing team's name, description, or configuration.",
5
+ "category": "management",
6
+ "skillType": "claude-skill",
7
+ "promptFile": "instructions.md",
8
+ "execution": {
9
+ "type": "script",
10
+ "script": {
11
+ "file": "execute.sh",
12
+ "interpreter": "bash",
13
+ "timeoutMs": 15000
14
+ }
15
+ },
16
+ "assignableRoles": ["orchestrator"],
17
+ "triggers": ["update team", "rename team", "edit team"],
18
+ "tags": ["team", "management", "update"],
19
+ "version": "1.0.0"
20
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-logs.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/messaging/delivery-logs.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlG;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpG"}
1
+ {"version":3,"file":"delivery-logs.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/messaging/delivery-logs.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlG;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpG"}
@@ -1,10 +1,12 @@
1
+ import { LoggerService } from '../../services/core/logger.service.js';
2
+ const logger = LoggerService.getInstance().createComponentLogger('DeliveryLogsController');
1
3
  export async function getDeliveryLogs(req, res) {
2
4
  try {
3
5
  const logs = await this.storageService.getDeliveryLogs();
4
6
  res.json({ success: true, data: logs, message: 'Delivery logs retrieved successfully' });
5
7
  }
6
8
  catch (error) {
7
- console.error('Error getting delivery logs:', error);
9
+ logger.error('Error getting delivery logs', { error: error instanceof Error ? error.message : String(error) });
8
10
  res.status(500).json({ success: false, error: 'Failed to get delivery logs' });
9
11
  }
10
12
  }
@@ -14,7 +16,7 @@ export async function clearDeliveryLogs(req, res) {
14
16
  res.json({ success: true, message: 'Delivery logs cleared successfully' });
15
17
  }
16
18
  catch (error) {
17
- console.error('Error clearing delivery logs:', error);
19
+ logger.error('Error clearing delivery logs', { error: error instanceof Error ? error.message : String(error) });
18
20
  res.status(500).json({ success: false, error: 'Failed to clear delivery logs' });
19
21
  }
20
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-logs.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/messaging/delivery-logs.controller.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,eAAe,CAAmB,GAAY,EAAE,GAAa;IACjF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;QACzD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,sCAAsC,EAAiB,CAAC,CAAC;IAC1G,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAiB,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAmB,GAAY,EAAE,GAAa;IACnF,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAC9C,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,oCAAoC,EAAiB,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAiB,CAAC,CAAC;IAClG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"delivery-logs.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/messaging/delivery-logs.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;AAE3F,MAAM,CAAC,KAAK,UAAU,eAAe,CAAmB,GAAY,EAAE,GAAa;IACjF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;QACzD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,sCAAsC,EAAiB,CAAC,CAAC;IAC1G,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/G,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAiB,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAmB,GAAY,EAAE,GAAa;IACnF,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAC9C,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,oCAAoC,EAAiB,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAiB,CAAC,CAAC;IAClG,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scheduled-messages.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/messaging/scheduled-messages.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK9C,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED,wBAAsB,oBAAoB,CACzC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAsDf"}
1
+ {"version":3,"file":"scheduled-messages.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/messaging/scheduled-messages.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQ9C,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED,wBAAsB,oBAAoB,CACzC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAsDf"}
@@ -1,5 +1,7 @@
1
1
  import { ScheduledMessageModel, MessageDeliveryLogModel } from '../../models/index.js';
2
2
  import { CREWLY_CONSTANTS } from '../../constants.js';
3
+ import { LoggerService } from '../../services/core/logger.service.js';
4
+ const logger = LoggerService.getInstance().createComponentLogger('ScheduledMessagesController');
3
5
  export async function createScheduledMessage(req, res) {
4
6
  try {
5
7
  const { name, targetTeam, targetProject, message, delayAmount, delayUnit, isRecurring } = req.body;
@@ -29,7 +31,7 @@ export async function createScheduledMessage(req, res) {
29
31
  });
30
32
  }
31
33
  catch (error) {
32
- console.error('Error creating scheduled message:', error);
34
+ logger.error('Error creating scheduled message', { error: error instanceof Error ? error.message : String(error) });
33
35
  res.status(500).json({
34
36
  success: false,
35
37
  error: 'Failed to create scheduled message',
@@ -42,7 +44,7 @@ export async function getScheduledMessages(req, res) {
42
44
  res.json({ success: true, data: scheduledMessages });
43
45
  }
44
46
  catch (error) {
45
- console.error('Error getting scheduled messages:', error);
47
+ logger.error('Error getting scheduled messages', { error: error instanceof Error ? error.message : String(error) });
46
48
  res.status(500).json({
47
49
  success: false,
48
50
  error: 'Failed to get scheduled messages',
@@ -63,7 +65,7 @@ export async function getScheduledMessage(req, res) {
63
65
  res.json({ success: true, data: scheduledMessage });
64
66
  }
65
67
  catch (error) {
66
- console.error('Error getting scheduled message:', error);
68
+ logger.error('Error getting scheduled message', { error: error instanceof Error ? error.message : String(error) });
67
69
  res.status(500).json({
68
70
  success: false,
69
71
  error: 'Failed to get scheduled message',
@@ -101,7 +103,7 @@ export async function updateScheduledMessage(req, res) {
101
103
  });
102
104
  }
103
105
  catch (error) {
104
- console.error('Error updating scheduled message:', error);
106
+ logger.error('Error updating scheduled message', { error: error instanceof Error ? error.message : String(error) });
105
107
  res.status(500).json({
106
108
  success: false,
107
109
  error: 'Failed to update scheduled message',
@@ -126,7 +128,7 @@ export async function deleteScheduledMessage(req, res) {
126
128
  });
127
129
  }
128
130
  catch (error) {
129
- console.error('Error deleting scheduled message:', error);
131
+ logger.error('Error deleting scheduled message', { error: error instanceof Error ? error.message : String(error) });
130
132
  res.status(500).json({
131
133
  success: false,
132
134
  error: 'Failed to delete scheduled message',
@@ -160,7 +162,7 @@ export async function toggleScheduledMessage(req, res) {
160
162
  });
161
163
  }
162
164
  catch (error) {
163
- console.error('Error toggling scheduled message:', error);
165
+ logger.error('Error toggling scheduled message', { error: error instanceof Error ? error.message : String(error) });
164
166
  res.status(500).json({
165
167
  success: false,
166
168
  error: 'Failed to toggle scheduled message',
@@ -190,7 +192,7 @@ export async function runScheduledMessage(req, res) {
190
192
  catch (sendError) {
191
193
  success = false;
192
194
  error = sendError?.message || 'Failed to send message';
193
- console.error('Error sending message to session:', sendError);
195
+ logger.error('Error sending message to session', { error: sendError instanceof Error ? sendError.message : String(sendError) });
194
196
  }
195
197
  const deliveryLog = MessageDeliveryLogModel.create({
196
198
  scheduledMessageId: scheduledMessage.id,
@@ -213,7 +215,7 @@ export async function runScheduledMessage(req, res) {
213
215
  });
214
216
  }
215
217
  catch (error) {
216
- console.error('Error running scheduled message:', error);
218
+ logger.error('Error running scheduled message', { error: error instanceof Error ? error.message : String(error) });
217
219
  res.status(500).json({
218
220
  success: false,
219
221
  error: 'Failed to run scheduled message',
@@ -1 +1 @@
1
- {"version":3,"file":"scheduled-messages.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/messaging/scheduled-messages.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduled-messages.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/messaging/scheduled-messages.controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/orchestrator/orchestrator.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAiB9C,wBAAsB,uBAAuB,CAC5C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,0BAA0B,CAC/C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAuFf;AAED,wBAAsB,uBAAuB,CAC5C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA4If;AAED,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA8Ef;AAED,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAoBf"}
1
+ {"version":3,"file":"orchestrator.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/orchestrator/orchestrator.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoB9C,wBAAsB,uBAAuB,CAC5C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,0BAA0B,CAC/C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAuFf;AAED,wBAAsB,uBAAuB,CAC5C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqIf;AAED,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CA8Ef;AAED,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -3,6 +3,8 @@ import { CREWLY_CONSTANTS } from '../../constants.js';
3
3
  import { getOrchestratorStatus as getOrchestratorStatusFromService, getOrchestratorOfflineMessage, } from '../../services/orchestrator/index.js';
4
4
  import { getTerminalGateway } from '../../websocket/terminal.gateway.js';
5
5
  import { MemoryService } from '../../services/memory/memory.service.js';
6
+ import { LoggerService } from '../../services/core/logger.service.js';
7
+ const logger = LoggerService.getInstance().createComponentLogger('OrchestratorController');
6
8
  // Delegate to existing ApiController methods to preserve complex logic without duplication
7
9
  export async function getOrchestratorCommands(req, res) {
8
10
  try {
@@ -25,7 +27,7 @@ export async function getOrchestratorCommands(req, res) {
25
27
  res.json(mockCommands);
26
28
  }
27
29
  catch (error) {
28
- console.error('Error fetching orchestrator commands:', error);
30
+ logger.error('Error fetching orchestrator commands', { error: error instanceof Error ? error.message : String(error) });
29
31
  res.status(500).json([]);
30
32
  }
31
33
  }
@@ -106,7 +108,7 @@ help - Show this help message`;
106
108
  res.json({ success: true, output, timestamp: new Date().toISOString() });
107
109
  }
108
110
  catch (error) {
109
- console.error('Error executing orchestrator command:', error);
111
+ logger.error('Error executing orchestrator command', { error: error instanceof Error ? error.message : String(error) });
110
112
  res.status(500).json({
111
113
  success: false,
112
114
  error: 'Failed to execute command',
@@ -134,7 +136,7 @@ export async function sendOrchestratorMessage(req, res) {
134
136
  });
135
137
  }
136
138
  catch (error) {
137
- console.error('Error sending orchestrator message:', error);
139
+ logger.error('Error sending orchestrator message', { error: error instanceof Error ? error.message : String(error) });
138
140
  res.status(500).json({
139
141
  success: false,
140
142
  error: error instanceof Error ? error.message : 'Failed to send message',
@@ -159,7 +161,7 @@ export async function sendOrchestratorEnter(req, res) {
159
161
  });
160
162
  }
161
163
  catch (error) {
162
- console.error('Error sending Enter to orchestrator:', error);
164
+ logger.error('Error sending Enter to orchestrator', { error: error instanceof Error ? error.message : String(error) });
163
165
  res.status(500).json({
164
166
  success: false,
165
167
  error: error instanceof Error ? error.message : 'Failed to send Enter key',
@@ -167,7 +169,7 @@ export async function sendOrchestratorEnter(req, res) {
167
169
  }
168
170
  }
169
171
  export async function setupOrchestrator(req, res) {
170
- console.log('[OrchestratorController] setupOrchestrator called');
172
+ logger.info('setupOrchestrator called');
171
173
  try {
172
174
  // Get orchestrator's runtime type from storage
173
175
  let runtimeType = 'claude-code'; // Default fallback
@@ -175,16 +177,16 @@ export async function setupOrchestrator(req, res) {
175
177
  const orchestratorStatus = await this.storageService.getOrchestratorStatus();
176
178
  if (orchestratorStatus?.runtimeType) {
177
179
  runtimeType = orchestratorStatus.runtimeType;
178
- console.log('[OrchestratorController] Using orchestrator runtime type from storage:', runtimeType);
180
+ logger.info('Using orchestrator runtime type from storage', { runtimeType });
179
181
  }
180
182
  else {
181
- console.warn('[OrchestratorController] No runtime type found in orchestrator status, using default:', runtimeType);
183
+ logger.warn('No runtime type found in orchestrator status, using default', { runtimeType });
182
184
  }
183
185
  }
184
186
  catch (error) {
185
- console.warn('[OrchestratorController] Failed to get orchestrator runtime type from storage, using default:', runtimeType, error);
187
+ logger.warn('Failed to get orchestrator runtime type from storage, using default', { runtimeType, error: error instanceof Error ? error.message : String(error) });
186
188
  }
187
- console.log('[OrchestratorController] Calling agentRegistrationService.createAgentSession', {
189
+ logger.info('Calling agentRegistrationService.createAgentSession', {
188
190
  sessionName: ORCHESTRATOR_SESSION_NAME,
189
191
  role: ORCHESTRATOR_ROLE,
190
192
  runtimeType,
@@ -197,29 +199,29 @@ export async function setupOrchestrator(req, res) {
197
199
  windowName: ORCHESTRATOR_WINDOW_NAME,
198
200
  runtimeType: runtimeType, // Pass the runtime type from teams.json
199
201
  });
200
- console.log('[OrchestratorController] createAgentSession result:', {
202
+ logger.info('createAgentSession result', {
201
203
  success: result.success,
202
204
  sessionName: result.sessionName,
203
205
  message: result.message,
204
206
  error: result.error,
205
207
  });
206
208
  if (!result.success) {
207
- console.error('[OrchestratorController] Failed to create orchestrator session:', result.error);
209
+ logger.error('Failed to create orchestrator session', { error: result.error });
208
210
  res.status(500).json({
209
211
  success: false,
210
212
  error: result.error || 'Failed to create orchestrator session',
211
213
  });
212
214
  return;
213
215
  }
214
- console.log('[OrchestratorController] Orchestrator session created successfully');
216
+ logger.info('Orchestrator session created successfully');
215
217
  // Initialize orchestrator memory so remember/recall MCP tools work
216
218
  try {
217
219
  const memoryService = MemoryService.getInstance();
218
220
  await memoryService.initializeForSession(ORCHESTRATOR_SESSION_NAME, ORCHESTRATOR_ROLE, process.cwd());
219
- console.log('[OrchestratorController] Orchestrator memory initialized successfully');
221
+ logger.info('Orchestrator memory initialized successfully');
220
222
  }
221
223
  catch (memoryError) {
222
- console.warn('[OrchestratorController] Failed to initialize orchestrator memory:', memoryError);
224
+ logger.warn('Failed to initialize orchestrator memory', { error: memoryError instanceof Error ? memoryError.message : String(memoryError) });
223
225
  }
224
226
  // Start persistent chat monitoring for the orchestrator
225
227
  // This ensures chat responses are captured even when no terminal panel is open
@@ -228,17 +230,17 @@ export async function setupOrchestrator(req, res) {
228
230
  terminalGateway.startOrchestratorChatMonitoring(ORCHESTRATOR_SESSION_NAME);
229
231
  }
230
232
  else {
231
- console.warn('[OrchestratorController] Terminal gateway not available, chat monitoring disabled');
233
+ logger.warn('Terminal gateway not available, chat monitoring disabled');
232
234
  }
233
235
  // For Gemini CLI orchestrator, add all existing project paths to allowlist
234
236
  if (runtimeType === 'gemini-cli') {
235
237
  try {
236
- console.log('Orchestrator uses Gemini CLI, adding existing projects to allowlist...');
238
+ logger.info('Orchestrator uses Gemini CLI, adding existing projects to allowlist');
237
239
  // Get all existing projects
238
240
  const projects = await this.storageService.getProjects();
239
241
  const projectPaths = projects.map(project => project.path);
240
242
  if (projectPaths.length > 0) {
241
- console.log('Found projects to add to Gemini CLI allowlist:', projectPaths);
243
+ logger.info('Found projects to add to Gemini CLI allowlist', { projectPaths });
242
244
  // Import RuntimeServiceFactory dynamically to avoid circular dependency
243
245
  const { RuntimeServiceFactory } = await import('../../services/agent/runtime-service.factory.js');
244
246
  const { RUNTIME_TYPES } = await import('../../constants.js');
@@ -247,7 +249,7 @@ export async function setupOrchestrator(req, res) {
247
249
  process.cwd()); // Cast to access Gemini-specific methods
248
250
  // Add all project paths to allowlist
249
251
  const allowlistResult = await geminiService.addMultipleProjectsToAllowlist(ORCHESTRATOR_SESSION_NAME, projectPaths);
250
- console.log('Gemini CLI allowlist update result:', {
252
+ logger.info('Gemini CLI allowlist update result', {
251
253
  success: allowlistResult.success,
252
254
  message: allowlistResult.message,
253
255
  successCount: allowlistResult.results.filter((r) => r.success).length,
@@ -255,12 +257,12 @@ export async function setupOrchestrator(req, res) {
255
257
  });
256
258
  }
257
259
  else {
258
- console.log('No existing projects found to add to Gemini CLI allowlist');
260
+ logger.info('No existing projects found to add to Gemini CLI allowlist');
259
261
  }
260
262
  }
261
263
  catch (error) {
262
264
  // Log error but continue - as per requirement, don't fail orchestrator startup
263
- console.warn('Failed to add existing projects to Gemini CLI allowlist (continuing anyway):', {
265
+ logger.warn('Failed to add existing projects to Gemini CLI allowlist (continuing anyway)', {
264
266
  error: error instanceof Error ? error.message : String(error),
265
267
  });
266
268
  }
@@ -274,7 +276,7 @@ export async function setupOrchestrator(req, res) {
274
276
  });
275
277
  }
276
278
  catch (error) {
277
- console.error('Error setting up orchestrator session:', error);
279
+ logger.error('Error setting up orchestrator session', { error: error instanceof Error ? error.message : String(error) });
278
280
  res.status(500).json({
279
281
  success: false,
280
282
  error: error instanceof Error ? error.message : 'Failed to setup orchestrator session',
@@ -307,7 +309,7 @@ export async function getOrchestratorHealth(req, res) {
307
309
  });
308
310
  }
309
311
  catch (error) {
310
- console.error('Error checking orchestrator health:', error);
312
+ logger.error('Error checking orchestrator health', { error: error instanceof Error ? error.message : String(error) });
311
313
  res.status(500).json({
312
314
  success: false,
313
315
  error: error instanceof Error ? error.message : 'Failed to check orchestrator health',
@@ -332,7 +334,7 @@ export async function stopOrchestrator(req, res) {
332
334
  });
333
335
  }
334
336
  catch (error) {
335
- console.error('Error stopping orchestrator:', error);
337
+ logger.error('Error stopping orchestrator', { error: error instanceof Error ? error.message : String(error) });
336
338
  res.status(500).json({
337
339
  success: false,
338
340
  error: error instanceof Error ? error.message : 'Failed to stop orchestrator',
@@ -390,7 +392,7 @@ export async function assignTaskToOrchestrator(req, res) {
390
392
  });
391
393
  }
392
394
  catch (error) {
393
- console.error('Error assigning task to orchestrator:', error);
395
+ logger.error('Error assigning task to orchestrator', { error: error instanceof Error ? error.message : String(error) });
394
396
  res.status(500).json({
395
397
  success: false,
396
398
  error: error instanceof Error ? error.message : 'Failed to assign task to orchestrator',
@@ -425,7 +427,7 @@ export async function updateOrchestratorRuntime(req, res) {
425
427
  });
426
428
  }
427
429
  catch (error) {
428
- console.error('Error updating orchestrator runtime:', error);
430
+ logger.error('Error updating orchestrator runtime', { error: error instanceof Error ? error.message : String(error) });
429
431
  res.status(500).json({
430
432
  success: false,
431
433
  error: error instanceof Error ? error.message : 'Failed to update orchestrator runtime',
@@ -455,7 +457,7 @@ export async function getOrchestratorStatus(req, res) {
455
457
  });
456
458
  }
457
459
  catch (error) {
458
- console.error('Error getting orchestrator status:', error);
460
+ logger.error('Error getting orchestrator status', { error: error instanceof Error ? error.message : String(error) });
459
461
  res.status(500).json({
460
462
  success: false,
461
463
  error: error instanceof Error ? error.message : 'Failed to get orchestrator status',