crewly 1.4.62 → 1.4.64

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 (28) hide show
  1. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.d.ts +91 -0
  2. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.d.ts.map +1 -0
  3. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.js +290 -0
  4. package/dist/backend/backend/src/controllers/scheduler/unified-scheduler.controller.js.map +1 -0
  5. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  6. package/dist/backend/backend/src/routes/api.routes.js +3 -0
  7. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  8. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.d.ts +27 -0
  9. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.d.ts.map +1 -0
  10. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.js +40 -0
  11. package/dist/backend/backend/src/routes/modules/unified-scheduler.routes.js.map +1 -0
  12. package/dist/backend/backend/src/services/index.d.ts +1 -0
  13. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  14. package/dist/backend/backend/src/services/index.js +1 -0
  15. package/dist/backend/backend/src/services/index.js.map +1 -1
  16. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.d.ts +234 -0
  17. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.d.ts.map +1 -0
  18. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.js +636 -0
  19. package/dist/backend/backend/src/services/workflow/unified-scheduler.service.js.map +1 -0
  20. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.d.ts +156 -0
  21. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.d.ts.map +1 -0
  22. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.js +81 -0
  23. package/dist/backend/backend/src/services/workflow/unified-scheduler.types.js.map +1 -0
  24. package/dist/cli/cli/src/commands/cloud.d.ts +18 -2
  25. package/dist/cli/cli/src/commands/cloud.d.ts.map +1 -1
  26. package/dist/cli/cli/src/commands/cloud.js +72 -16
  27. package/dist/cli/cli/src/commands/cloud.js.map +1 -1
  28. package/package.json +1 -1
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Type definitions for the Unified Scheduler Service.
3
+ *
4
+ * The Unified Scheduler consolidates cron, interval, and idle-based
5
+ * scheduling into a single interface with persistent storage and
6
+ * agent auto-start capabilities.
7
+ *
8
+ * @module services/workflow/unified-scheduler.types
9
+ */
10
+ /** Supported schedule trigger types. */
11
+ export type ScheduleType = 'cron' | 'interval' | 'idle';
12
+ /** Runtime status of a schedule. */
13
+ export type ScheduleStatus = 'active' | 'paused' | 'completed' | 'error';
14
+ /**
15
+ * A unified schedule definition.
16
+ *
17
+ * Combines cron expressions, fixed intervals, and idle detection
18
+ * into a single structure. Only the fields relevant to the `type`
19
+ * are used at runtime:
20
+ * - type=cron: uses `cron`
21
+ * - type=interval: uses `intervalMinutes`
22
+ * - type=idle: uses `idleTimeoutMinutes`
23
+ */
24
+ export interface UnifiedSchedule {
25
+ /** Unique schedule identifier (UUID) */
26
+ id: string;
27
+ /** Target agent session name */
28
+ target: string;
29
+ /** Schedule type determines which timing field is used */
30
+ type: ScheduleType;
31
+ /** Cron expression (5-field, e.g., "0 8,14,20 * * *") — required when type=cron */
32
+ cron?: string;
33
+ /** Interval in minutes between triggers — required when type=interval */
34
+ intervalMinutes?: number;
35
+ /** Minutes of idle time before triggering — required when type=idle */
36
+ idleTimeoutMinutes?: number;
37
+ /** Message to send to the target agent when triggered */
38
+ message: string;
39
+ /** Whether the schedule is actively running */
40
+ enabled: boolean;
41
+ /** Auto-start the target agent if it's offline when triggered */
42
+ autoStart: boolean;
43
+ /** Maximum consecutive triggers before auto-pausing (default: 10) */
44
+ maxConsecutiveTriggers: number;
45
+ /** ISO timestamp of creation */
46
+ createdAt: string;
47
+ /** ISO timestamp of last modification */
48
+ updatedAt: string;
49
+ /** ISO timestamp of last trigger, or null if never triggered */
50
+ lastTriggeredAt: string | null;
51
+ /** Total number of times this schedule has triggered */
52
+ triggerCount: number;
53
+ /** Consecutive triggers since last agent activity/response */
54
+ consecutiveTriggers: number;
55
+ /** Current runtime status */
56
+ status: ScheduleStatus;
57
+ /** Error message if status is 'error' */
58
+ error?: string;
59
+ }
60
+ /** Request body for creating a new schedule. */
61
+ export interface CreateScheduleRequest {
62
+ /** Target agent session name */
63
+ target: string;
64
+ /** Schedule type */
65
+ type: ScheduleType;
66
+ /** Cron expression (required when type=cron) */
67
+ cron?: string;
68
+ /** Interval in minutes (required when type=interval) */
69
+ intervalMinutes?: number;
70
+ /** Idle timeout in minutes (required when type=idle) */
71
+ idleTimeoutMinutes?: number;
72
+ /** Message to send to the agent */
73
+ message: string;
74
+ /** Whether to activate immediately (default: true) */
75
+ enabled?: boolean;
76
+ /** Auto-start agent if offline (default: true) */
77
+ autoStart?: boolean;
78
+ /** Max consecutive triggers before auto-pause (default: 10) */
79
+ maxConsecutiveTriggers?: number;
80
+ }
81
+ /** Request body for updating an existing schedule. */
82
+ export interface UpdateScheduleRequest {
83
+ /** Updated cron expression */
84
+ cron?: string;
85
+ /** Updated interval */
86
+ intervalMinutes?: number;
87
+ /** Updated idle timeout */
88
+ idleTimeoutMinutes?: number;
89
+ /** Updated message */
90
+ message?: string;
91
+ /** Enable/disable */
92
+ enabled?: boolean;
93
+ /** Auto-start toggle */
94
+ autoStart?: boolean;
95
+ /** Updated max consecutive triggers */
96
+ maxConsecutiveTriggers?: number;
97
+ }
98
+ /** Persistent storage format for ~/.crewly/unified-schedules.json */
99
+ export interface UnifiedScheduleStore {
100
+ /** Schema version for future migrations */
101
+ version: string;
102
+ /** Last persistence timestamp */
103
+ updatedAt: string;
104
+ /** All schedule definitions */
105
+ schedules: UnifiedSchedule[];
106
+ }
107
+ /** Scheduler health/stats response. */
108
+ export interface SchedulerHealth {
109
+ /** Whether the scheduler loop is running */
110
+ running: boolean;
111
+ /** Number of active schedules */
112
+ activeCount: number;
113
+ /** Number of paused schedules */
114
+ pausedCount: number;
115
+ /** Total schedules (all statuses) */
116
+ totalCount: number;
117
+ /** Total triggers executed since service start */
118
+ totalTriggers: number;
119
+ /** Timestamp of last evaluation cycle */
120
+ lastEvaluatedAt: string | null;
121
+ /** Schedules grouped by type */
122
+ byType: Record<ScheduleType, number>;
123
+ }
124
+ /** Default values for the unified scheduler. */
125
+ export declare const UNIFIED_SCHEDULER_CONSTANTS: {
126
+ /** Evaluation loop interval (60 seconds — matches cron granularity) */
127
+ readonly EVAL_INTERVAL_MS: 60000;
128
+ /** Storage file path (relative to ~/.crewly/) */
129
+ readonly STORAGE_FILE: "unified-schedules.json";
130
+ /** Default max consecutive triggers before auto-pause */
131
+ readonly DEFAULT_MAX_CONSECUTIVE: 10;
132
+ /** Storage schema version */
133
+ readonly SCHEMA_VERSION: "1.0.0";
134
+ /** Default idle timeout if not specified (30 minutes) */
135
+ readonly DEFAULT_IDLE_TIMEOUT_MINUTES: 30;
136
+ };
137
+ /** Valid schedule types for request validation. */
138
+ export declare const VALID_SCHEDULE_TYPES: ReadonlySet<string>;
139
+ /**
140
+ * Validate a cron expression (basic 5-field format).
141
+ *
142
+ * Checks that the expression has exactly 5 space-separated fields
143
+ * and each field contains only valid cron characters.
144
+ *
145
+ * @param expr - Cron expression to validate
146
+ * @returns True if valid
147
+ */
148
+ export declare function isValidCronExpression(expr: string): boolean;
149
+ /**
150
+ * Validate a CreateScheduleRequest.
151
+ *
152
+ * @param req - Request to validate
153
+ * @returns Error message or null if valid
154
+ */
155
+ export declare function validateCreateRequest(req: CreateScheduleRequest): string | null;
156
+ //# sourceMappingURL=unified-scheduler.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified-scheduler.types.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/workflow/unified-scheduler.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Type definitions for the Unified Scheduler Service.
3
+ *
4
+ * The Unified Scheduler consolidates cron, interval, and idle-based
5
+ * scheduling into a single interface with persistent storage and
6
+ * agent auto-start capabilities.
7
+ *
8
+ * @module services/workflow/unified-scheduler.types
9
+ */
10
+ // =============================================================================
11
+ // Constants
12
+ // =============================================================================
13
+ /** Default values for the unified scheduler. */
14
+ export const UNIFIED_SCHEDULER_CONSTANTS = {
15
+ /** Evaluation loop interval (60 seconds — matches cron granularity) */
16
+ EVAL_INTERVAL_MS: 60_000,
17
+ /** Storage file path (relative to ~/.crewly/) */
18
+ STORAGE_FILE: 'unified-schedules.json',
19
+ /** Default max consecutive triggers before auto-pause */
20
+ DEFAULT_MAX_CONSECUTIVE: 10,
21
+ /** Storage schema version */
22
+ SCHEMA_VERSION: '1.0.0',
23
+ /** Default idle timeout if not specified (30 minutes) */
24
+ DEFAULT_IDLE_TIMEOUT_MINUTES: 30,
25
+ };
26
+ // =============================================================================
27
+ // Validation
28
+ // =============================================================================
29
+ /** Valid schedule types for request validation. */
30
+ export const VALID_SCHEDULE_TYPES = new Set(['cron', 'interval', 'idle']);
31
+ /**
32
+ * Validate a cron expression (basic 5-field format).
33
+ *
34
+ * Checks that the expression has exactly 5 space-separated fields
35
+ * and each field contains only valid cron characters.
36
+ *
37
+ * @param expr - Cron expression to validate
38
+ * @returns True if valid
39
+ */
40
+ export function isValidCronExpression(expr) {
41
+ const fields = expr.trim().split(/\s+/);
42
+ if (fields.length !== 5)
43
+ return false;
44
+ const validChars = /^[\d,\-\*\/]+$/;
45
+ return fields.every(f => validChars.test(f));
46
+ }
47
+ /**
48
+ * Validate a CreateScheduleRequest.
49
+ *
50
+ * @param req - Request to validate
51
+ * @returns Error message or null if valid
52
+ */
53
+ export function validateCreateRequest(req) {
54
+ if (!req.target || typeof req.target !== 'string')
55
+ return 'target is required';
56
+ if (!req.message || typeof req.message !== 'string')
57
+ return 'message is required';
58
+ if (!req.type || !VALID_SCHEDULE_TYPES.has(req.type)) {
59
+ return `type must be one of: ${[...VALID_SCHEDULE_TYPES].join(', ')}`;
60
+ }
61
+ switch (req.type) {
62
+ case 'cron':
63
+ if (!req.cron)
64
+ return 'cron expression is required when type=cron';
65
+ if (!isValidCronExpression(req.cron))
66
+ return `Invalid cron expression: ${req.cron}`;
67
+ break;
68
+ case 'interval':
69
+ if (!req.intervalMinutes || req.intervalMinutes <= 0) {
70
+ return 'intervalMinutes must be a positive number when type=interval';
71
+ }
72
+ break;
73
+ case 'idle':
74
+ if (!req.idleTimeoutMinutes || req.idleTimeoutMinutes <= 0) {
75
+ return 'idleTimeoutMinutes must be a positive number when type=idle';
76
+ }
77
+ break;
78
+ }
79
+ return null;
80
+ }
81
+ //# sourceMappingURL=unified-scheduler.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified-scheduler.types.js","sourceRoot":"","sources":["../../../../../../backend/src/services/workflow/unified-scheduler.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2IH,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,gDAAgD;AAChD,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,uEAAuE;IACvE,gBAAgB,EAAE,MAAM;IACxB,iDAAiD;IACjD,YAAY,EAAE,wBAAwB;IACtC,yDAAyD;IACzD,uBAAuB,EAAE,EAAE;IAC3B,6BAA6B;IAC7B,cAAc,EAAE,OAAO;IACvB,yDAAyD;IACzD,4BAA4B,EAAE,EAAE;CACxB,CAAC;AAEX,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,mDAAmD;AACnD,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/F;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,UAAU,GAAG,gBAAgB,CAAC;IACpC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAA0B;IAC9D,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,oBAAoB,CAAC;IAC/E,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,qBAAqB,CAAC;IAClF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO,wBAAwB,CAAC,GAAG,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,IAAI,CAAC,GAAG,CAAC,IAAI;gBAAE,OAAO,4CAA4C,CAAC;YACnE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,4BAA4B,GAAG,CAAC,IAAI,EAAE,CAAC;YACpF,MAAM;QACR,KAAK,UAAU;YACb,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,eAAe,IAAI,CAAC,EAAE,CAAC;gBACrD,OAAO,8DAA8D,CAAC;YACxE,CAAC;YACD,MAAM;QACR,KAAK,MAAM;YACT,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,kBAAkB,IAAI,CAAC,EAAE,CAAC;gBAC3D,OAAO,6DAA6D,CAAC;YACvE,CAAC;YACD,MAAM;IACV,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -19,11 +19,18 @@ import http from 'http';
19
19
  interface LoginOptions {
20
20
  token?: string;
21
21
  }
22
- /** Shape of the credentials saved to config.json */
22
+ /**
23
+ * Shape of the credentials saved to config.json.
24
+ *
25
+ * Must match PersistedCloudConfig in cloud-client.service.ts so the backend
26
+ * can load credentials saved by the CLI (and vice versa).
27
+ */
23
28
  interface CloudCredentials {
29
+ cloudUrl: string;
24
30
  token: string;
25
31
  refreshToken?: string;
26
- savedAt: string;
32
+ tier: string;
33
+ connectedAt: string;
27
34
  }
28
35
  /**
29
36
  * Save cloud credentials to ~/.crewly/cloud/config.json.
@@ -33,6 +40,15 @@ interface CloudCredentials {
33
40
  * @param token - JWT access token
34
41
  * @param refreshToken - Optional refresh token
35
42
  */
43
+ /**
44
+ * Save cloud credentials to ~/.crewly/cloud/config.json.
45
+ *
46
+ * Creates the directory hierarchy if it does not exist. The format matches
47
+ * PersistedCloudConfig so the backend's loadPersistedConfig() can read it.
48
+ *
49
+ * @param token - JWT access token
50
+ * @param refreshToken - Optional refresh token for auto-renewal
51
+ */
36
52
  export declare function saveCloudCredentials(token: string, refreshToken?: string): void;
37
53
  /**
38
54
  * Load cloud credentials from ~/.crewly/cloud/config.json.
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../../../../cli/src/commands/cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,IAAI,MAAM,MAAM,CAAC;AAuCxB,uCAAuC;AACvC,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAcD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAU/E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,GAAG,IAAI,CAU9D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAG7C;AAiCD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI;IACrC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE,CAsDA;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCvE;AAsCD;;;;;GAKG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAqCnD;AAMD;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBnD"}
1
+ {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../../../../cli/src/commands/cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,IAAI,MAAM,MAAM,CAAC;AA0CxB,uCAAuC;AACvC,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAcD;;;;;;;GAOG;AACH;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAyB/E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,GAAG,IAAI,CAU9D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAG7C;AAiCD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI;IACrC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE,CAsDA;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDvE;AA0DD;;;;;GAKG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAqCnD;AAMD;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBnD"}
@@ -25,15 +25,17 @@ import { DEFAULT_WEB_PORT } from '../constants.js';
25
25
  // ---------------------------------------------------------------------------
26
26
  // Constants
27
27
  // ---------------------------------------------------------------------------
28
- /** Backend base URL */
28
+ /** Backend base URL (local Crewly backend for connect/status/disconnect) */
29
29
  const BACKEND_URL = `http://localhost:${DEFAULT_WEB_PORT}`;
30
- /** Cloud connect endpoint */
30
+ /** CrewlyAI Cloud API base URL (where OAuth happens — NOT local backend) */
31
+ const CLOUD_API_URL = process.env['CREWLY_CLOUD_URL'] || 'https://api.crewlyai.com';
32
+ /** Cloud connect endpoint (local backend) */
31
33
  const CLOUD_CONNECT_ENDPOINT = '/api/cloud/connect';
32
- /** Cloud disconnect endpoint */
34
+ /** Cloud disconnect endpoint (local backend) */
33
35
  const CLOUD_DISCONNECT_ENDPOINT = '/api/cloud/disconnect';
34
- /** Cloud status endpoint */
36
+ /** Cloud status endpoint (local backend) */
35
37
  const CLOUD_STATUS_ENDPOINT = '/api/cloud/status';
36
- /** Google OAuth start endpoint */
38
+ /** Google OAuth start endpoint (on Cloud API, NOT local backend) */
37
39
  const GOOGLE_OAUTH_START_ENDPOINT = '/api/cloud/google/start';
38
40
  /** Timeout for backend API requests (ms) */
39
41
  const API_TIMEOUT_MS = 15_000;
@@ -52,14 +54,37 @@ const CLOUD_CONFIG_FILE = join(CLOUD_CONFIG_DIR, 'config.json');
52
54
  * @param token - JWT access token
53
55
  * @param refreshToken - Optional refresh token
54
56
  */
57
+ /**
58
+ * Save cloud credentials to ~/.crewly/cloud/config.json.
59
+ *
60
+ * Creates the directory hierarchy if it does not exist. The format matches
61
+ * PersistedCloudConfig so the backend's loadPersistedConfig() can read it.
62
+ *
63
+ * @param token - JWT access token
64
+ * @param refreshToken - Optional refresh token for auto-renewal
65
+ */
55
66
  export function saveCloudCredentials(token, refreshToken) {
56
67
  if (!existsSync(CLOUD_CONFIG_DIR)) {
57
68
  mkdirSync(CLOUD_CONFIG_DIR, { recursive: true });
58
69
  }
70
+ // Merge with existing config to preserve fields the backend may have written
71
+ let existing = {};
72
+ try {
73
+ if (existsSync(CLOUD_CONFIG_FILE)) {
74
+ existing = JSON.parse(readFileSync(CLOUD_CONFIG_FILE, 'utf-8'));
75
+ }
76
+ }
77
+ catch {
78
+ // Ignore parse errors — overwrite with new credentials
79
+ }
59
80
  const credentials = {
81
+ cloudUrl: existing.cloudUrl || CLOUD_API_URL,
60
82
  token,
61
- refreshToken,
62
- savedAt: new Date().toISOString(),
83
+ tier: existing.tier || 'pro',
84
+ connectedAt: new Date().toISOString(),
85
+ ...(refreshToken && { refreshToken }),
86
+ // Preserve existing refreshToken if new one not provided
87
+ ...(!refreshToken && existing.refreshToken && { refreshToken: existing.refreshToken }),
63
88
  };
64
89
  writeFileSync(CLOUD_CONFIG_FILE, JSON.stringify(credentials, null, 2), 'utf-8');
65
90
  }
@@ -198,24 +223,35 @@ export async function loginCommand(options) {
198
223
  await connectWithToken(options.token);
199
224
  return;
200
225
  }
201
- // Browser-based OAuth flow
226
+ // Browser-based OAuth flow — redirects to crewlyai.com (Cloud), NOT local backend.
227
+ // The Cloud server handles Google OAuth and redirects back to our local callback
228
+ // with token + refreshToken as query parameters.
202
229
  console.log('');
203
230
  console.log(chalk.blue('CrewlyAI Cloud Login'));
204
231
  console.log(chalk.gray('─'.repeat(40)));
205
232
  console.log('');
206
- console.log(chalk.white('Opening browser for Google OAuth...'));
207
233
  const { server, port: portPromise, credentials } = startCallbackServer();
208
234
  try {
209
235
  const port = await portPromise;
210
236
  const redirectUrl = `http://localhost:${port}/callback`;
211
- const oauthUrl = `${BACKEND_URL}${GOOGLE_OAUTH_START_ENDPOINT}?redirect=${encodeURIComponent(redirectUrl)}`;
237
+ // Build OAuth URL pointing to Cloud API (crewlyai.com), not local backend.
238
+ // The Cloud server has Google OAuth credentials configured — local backend does not.
239
+ const oauthUrl = `${CLOUD_API_URL}${GOOGLE_OAUTH_START_ENDPOINT}?redirect=${encodeURIComponent(redirectUrl)}`;
240
+ console.log(chalk.white('Opening browser for Google OAuth...'));
241
+ console.log(chalk.gray(` Auth server: ${CLOUD_API_URL}`));
242
+ console.log(chalk.gray(` Callback: http://localhost:${port}/callback`));
212
243
  openBrowser(oauthUrl);
213
- console.log(chalk.gray(` Callback server listening on port ${port}`));
214
244
  console.log(chalk.gray(' Waiting for OAuth callback...'));
215
245
  console.log('');
216
246
  const creds = await credentials;
217
247
  saveCloudCredentials(creds.token, creds.refreshToken);
218
248
  console.log(chalk.green(' ✓ Credentials saved'));
249
+ if (creds.refreshToken) {
250
+ console.log(chalk.green(' ✓ Refresh token saved (enables auto-renewal)'));
251
+ }
252
+ else {
253
+ console.log(chalk.yellow(' ⚠ No refresh token received — token will expire without auto-renewal'));
254
+ }
219
255
  await connectWithToken(creds.token, creds.refreshToken);
220
256
  }
221
257
  catch (error) {
@@ -233,24 +269,44 @@ export async function loginCommand(options) {
233
269
  * @param token - JWT access token
234
270
  * @param refreshToken - Optional refresh token
235
271
  */
272
+ /**
273
+ * Connect to CrewlyAI Cloud by calling POST /api/cloud/connect on the local backend.
274
+ *
275
+ * If the local backend is not running, saves credentials locally and informs the user
276
+ * that the connection will be established on next `crewly start`.
277
+ *
278
+ * @param token - JWT access token
279
+ * @param refreshToken - Optional refresh token for auto-renewal
280
+ */
236
281
  async function connectWithToken(token, refreshToken) {
282
+ // Always save credentials first — even if backend is down, next start will use them
283
+ saveCloudCredentials(token, refreshToken);
237
284
  try {
238
285
  const response = await axios.post(`${BACKEND_URL}${CLOUD_CONNECT_ENDPOINT}`, { token, refreshToken }, { timeout: API_TIMEOUT_MS });
239
286
  if (response.data?.success) {
240
287
  console.log(chalk.green(' ✓ Connected to CrewlyAI Cloud'));
241
288
  const tier = response.data.data?.tier || response.data.tier || 'unknown';
242
289
  console.log(chalk.green(` ✓ Tier: ${tier}`));
243
- saveCloudCredentials(token, refreshToken);
244
- console.log(chalk.green(' ✓ Credentials saved'));
245
290
  }
246
291
  else {
247
292
  const msg = response.data?.error || 'Unknown error';
248
- console.log(chalk.red(` Failed to connect: ${msg}`));
249
- process.exit(1);
293
+ console.log(chalk.yellow(` Backend connect returned: ${msg}`));
294
+ console.log(chalk.gray(' Credentials saved — connection will activate on next crewly start'));
250
295
  }
251
296
  }
252
297
  catch (error) {
253
- handleApiError(error, 'login to CrewlyAI Cloud');
298
+ if (axios.isAxiosError(error) && error.code === 'ECONNREFUSED') {
299
+ // Backend not running — this is OK, credentials are saved
300
+ console.log(chalk.green(' ✓ Credentials saved to ~/.crewly/cloud/config.json'));
301
+ console.log(chalk.gray(' Backend not running — Cloud will connect automatically on next crewly start'));
302
+ }
303
+ else {
304
+ const msg = axios.isAxiosError(error)
305
+ ? (error.response?.data?.error || error.message)
306
+ : (error instanceof Error ? error.message : String(error));
307
+ console.log(chalk.yellow(` ⚠ Backend connect failed: ${msg}`));
308
+ console.log(chalk.gray(' Credentials saved — connection will activate on next crewly start'));
309
+ }
254
310
  }
255
311
  }
256
312
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../../../../cli/src/commands/cloud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../../../../cli/src/commands/cloud.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crewly",
3
- "version": "1.4.62",
3
+ "version": "1.4.64",
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",