expxagents 0.13.0 → 0.14.0

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 (62) hide show
  1. package/assets/core/solution-architect.agent.md +3 -0
  2. package/dist/core/squad-loader.js +2 -8
  3. package/dist/dashboard/assets/{BufferResource-D9aUIz5c.js → BufferResource-IVUoAbNS.js} +1 -1
  4. package/dist/dashboard/assets/{CanvasRenderer-DfAInYD0.js → CanvasRenderer-ZlhtzexK.js} +1 -1
  5. package/dist/dashboard/assets/{JarvisView-D78mY8i-.js → JarvisView-Bkn01kRk.js} +1 -1
  6. package/dist/dashboard/assets/{RenderTargetSystem-DZo6ujA0.js → RenderTargetSystem-ukD3tT30.js} +1 -1
  7. package/dist/dashboard/assets/{WebGLRenderer-BKreDG7Z.js → WebGLRenderer-B0gX63D6.js} +1 -1
  8. package/dist/dashboard/assets/{WebGPURenderer-DeKuexG2.js → WebGPURenderer-CU_7qyko.js} +1 -1
  9. package/dist/dashboard/assets/{browserAll-3U5O7dnB.js → browserAll-CHvE8-zd.js} +1 -1
  10. package/dist/dashboard/assets/index-CV6VSNbn.js +400 -0
  11. package/dist/dashboard/assets/{index-DHu3wE8e.css → index-ClyttaJh.css} +1 -1
  12. package/dist/dashboard/assets/{webworkerAll-CBlDUJVW.js → webworkerAll-D1p-kqY5.js} +1 -1
  13. package/dist/dashboard/index.html +2 -2
  14. package/dist/data/opensquad.db-shm +0 -0
  15. package/dist/data/opensquad.db-wal +0 -0
  16. package/dist/server/api/__tests__/files-routes.test.d.ts +2 -0
  17. package/dist/server/api/__tests__/files-routes.test.d.ts.map +1 -0
  18. package/dist/server/api/__tests__/files-routes.test.js +85 -0
  19. package/dist/server/api/__tests__/files-routes.test.js.map +1 -0
  20. package/dist/server/api/__tests__/graph-routes.test.d.ts +2 -0
  21. package/dist/server/api/__tests__/graph-routes.test.d.ts.map +1 -0
  22. package/dist/server/api/__tests__/graph-routes.test.js +105 -0
  23. package/dist/server/api/__tests__/graph-routes.test.js.map +1 -0
  24. package/dist/server/api/__tests__/kanban-routes.test.d.ts +2 -0
  25. package/dist/server/api/__tests__/kanban-routes.test.d.ts.map +1 -0
  26. package/dist/server/api/__tests__/kanban-routes.test.js +227 -0
  27. package/dist/server/api/__tests__/kanban-routes.test.js.map +1 -0
  28. package/dist/server/api/files-routes.d.ts +5 -0
  29. package/dist/server/api/files-routes.d.ts.map +1 -0
  30. package/dist/server/api/files-routes.js +92 -0
  31. package/dist/server/api/files-routes.js.map +1 -0
  32. package/dist/server/api/graph-routes.d.ts +24 -0
  33. package/dist/server/api/graph-routes.d.ts.map +1 -0
  34. package/dist/server/api/graph-routes.js +189 -0
  35. package/dist/server/api/graph-routes.js.map +1 -0
  36. package/dist/server/api/kanban-routes.d.ts +8 -0
  37. package/dist/server/api/kanban-routes.d.ts.map +1 -0
  38. package/dist/server/api/kanban-routes.js +104 -0
  39. package/dist/server/api/kanban-routes.js.map +1 -0
  40. package/dist/server/app.d.ts.map +1 -1
  41. package/dist/server/app.js +6 -0
  42. package/dist/server/app.js.map +1 -1
  43. package/dist/server/db/migrations.d.ts.map +1 -1
  44. package/dist/server/db/migrations.js +10 -0
  45. package/dist/server/db/migrations.js.map +1 -1
  46. package/dist/server/db/schema.d.ts +1 -1
  47. package/dist/server/db/schema.d.ts.map +1 -1
  48. package/dist/server/db/schema.js +17 -0
  49. package/dist/server/db/schema.js.map +1 -1
  50. package/dist/server/scheduler/__tests__/scheduler-routes.test.js +65 -0
  51. package/dist/server/scheduler/__tests__/scheduler-routes.test.js.map +1 -1
  52. package/dist/server/scheduler/__tests__/scheduler-service.test.js +33 -0
  53. package/dist/server/scheduler/__tests__/scheduler-service.test.js.map +1 -1
  54. package/dist/server/scheduler/scheduler-routes.d.ts.map +1 -1
  55. package/dist/server/scheduler/scheduler-routes.js +44 -0
  56. package/dist/server/scheduler/scheduler-routes.js.map +1 -1
  57. package/dist/server/scheduler/scheduler-service.d.ts +8 -0
  58. package/dist/server/scheduler/scheduler-service.d.ts.map +1 -1
  59. package/dist/server/scheduler/scheduler-service.js +49 -0
  60. package/dist/server/scheduler/scheduler-service.js.map +1 -1
  61. package/package.json +1 -1
  62. package/dist/dashboard/assets/index-CahtAeF7.js +0 -400
@@ -40,6 +40,71 @@ describe('scheduler-routes', () => {
40
40
  const res = await app.inject({ method: 'GET', url: '/api/scheduler/unknown' });
41
41
  expect(res.statusCode).toBe(404);
42
42
  });
43
+ it('POST /api/scheduler should create a scheduled job', async () => {
44
+ const res = await app.inject({
45
+ method: 'POST',
46
+ url: '/api/scheduler',
47
+ payload: {
48
+ squad_name: 'marketing',
49
+ cron_expression: '0 8 * * *',
50
+ prompt: 'Send daily digest',
51
+ timezone: 'America/Sao_Paulo',
52
+ timeout_minutes: 15,
53
+ },
54
+ });
55
+ expect(res.statusCode).toBe(201);
56
+ const body = res.json();
57
+ expect(body.data.squad_name).toBe('marketing');
58
+ expect(body.data.cron_expression).toBe('0 8 * * *');
59
+ expect(body.data.prompt).toBe('Send daily digest');
60
+ expect(body.data.timezone).toBe('America/Sao_Paulo');
61
+ expect(body.data.timeout_minutes).toBe(15);
62
+ expect(body.data.status).toBe('active');
63
+ });
64
+ it('POST /api/scheduler should update existing job', async () => {
65
+ const res = await app.inject({
66
+ method: 'POST',
67
+ url: '/api/scheduler',
68
+ payload: {
69
+ squad_name: 'finance',
70
+ cron_expression: '0 10 * * 2',
71
+ prompt: 'Updated report prompt',
72
+ },
73
+ });
74
+ expect(res.statusCode).toBe(201);
75
+ const body = res.json();
76
+ expect(body.data.cron_expression).toBe('0 10 * * 2');
77
+ expect(body.data.prompt).toBe('Updated report prompt');
78
+ // Should still be only one entry for finance
79
+ const list = await app.inject({ method: 'GET', url: '/api/scheduler' });
80
+ const allJobs = list.json().data;
81
+ const financeJobs = allJobs.filter((j) => j.squad_name === 'finance');
82
+ expect(financeJobs).toHaveLength(1);
83
+ });
84
+ it('POST /api/scheduler should reject missing squad_name', async () => {
85
+ const res = await app.inject({
86
+ method: 'POST',
87
+ url: '/api/scheduler',
88
+ payload: { cron_expression: '0 9 * * *', prompt: 'test' },
89
+ });
90
+ expect(res.statusCode).toBe(400);
91
+ });
92
+ it('POST /api/scheduler should reject missing cron_expression', async () => {
93
+ const res = await app.inject({
94
+ method: 'POST',
95
+ url: '/api/scheduler',
96
+ payload: { squad_name: 'test', prompt: 'test' },
97
+ });
98
+ expect(res.statusCode).toBe(400);
99
+ });
100
+ it('POST /api/scheduler should reject missing prompt', async () => {
101
+ const res = await app.inject({
102
+ method: 'POST',
103
+ url: '/api/scheduler',
104
+ payload: { squad_name: 'test', cron_expression: '0 9 * * *' },
105
+ });
106
+ expect(res.statusCode).toBe(400);
107
+ });
43
108
  it('GET /api/scheduler/:squad/history should return filtered activities', async () => {
44
109
  // Insert a schedule activity
45
110
  db.prepare(`
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler-routes.test.js","sourceRoot":"","sources":["../../../src/scheduler/__tests__/scheduler-routes.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,GAAoB,CAAC;IACzB,IAAI,EAAqB,CAAC;IAE1B,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,EAAE,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9B,aAAa,CAAC,EAAE,CAAC,CAAC;QAElB,uBAAuB;QACvB,EAAE,CAAC,OAAO,CAAC;;;KAGV,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;QAE/F,GAAG,GAAG,OAAO,EAAE,CAAC;QAChB,uBAAuB;QACvB,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAW,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAClB,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAC/E,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAC/E,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,6BAA6B;QAC7B,EAAE,CAAC,OAAO,CAAC;;;KAGV,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,WAAW,EAAE,UAAU,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAEvG,kDAAkD;QAClD,EAAE,CAAC,OAAO,CAAC;;;KAGV,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAExG,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,gCAAgC,EAAE,CAAC,CAAC;QACvF,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"scheduler-routes.test.js","sourceRoot":"","sources":["../../../src/scheduler/__tests__/scheduler-routes.test.ts"],"names":[],"mappings":"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"}
@@ -106,6 +106,39 @@ describe('SchedulerService', () => {
106
106
  service.unregister('squad-c');
107
107
  expect(service.getStatus()).toHaveLength(0);
108
108
  });
109
+ it('should register a job dynamically from API data', () => {
110
+ const ok = service.registerDynamic('api-squad', {
111
+ cron: '0 8 * * *',
112
+ prompt: 'Daily report',
113
+ timezone: 'America/Sao_Paulo',
114
+ timeout_minutes: 15,
115
+ retry_on_failure: 2,
116
+ });
117
+ expect(ok).toBe(true);
118
+ const status = service.getStatus();
119
+ expect(status).toHaveLength(1);
120
+ expect(status[0].squadName).toBe('api-squad');
121
+ expect(status[0].cronExpression).toBe('0 8 * * *');
122
+ expect(status[0].status).toBe('active');
123
+ const row = db.prepare('SELECT * FROM scheduled_jobs WHERE squad_name = ?').get('api-squad');
124
+ expect(row.prompt).toBe('Daily report');
125
+ expect(row.timezone).toBe('America/Sao_Paulo');
126
+ expect(row.timeout_minutes).toBe(15);
127
+ expect(row.retry_on_failure).toBe(2);
128
+ });
129
+ it('should update existing job via registerDynamic', () => {
130
+ service.registerDynamic('update-squad', {
131
+ cron: '0 8 * * *',
132
+ prompt: 'Old prompt',
133
+ });
134
+ service.registerDynamic('update-squad', {
135
+ cron: '0 10 * * *',
136
+ prompt: 'New prompt',
137
+ });
138
+ const status = service.getStatus();
139
+ expect(status).toHaveLength(1);
140
+ expect(status[0].cronExpression).toBe('0 10 * * *');
141
+ });
109
142
  it('should reload a specific squad config', () => {
110
143
  createSquadWithSchedule('squad-d', {
111
144
  enabled: true,
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler-service.test.js","sourceRoot":"","sources":["../../../src/scheduler/__tests__/scheduler-service.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler-service.test.js","sourceRoot":"","sources":["../../../src/scheduler/__tests__/scheduler-service.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler-routes.d.ts","sourceRoot":"","sources":["../../src/scheduler/scheduler-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,UAAU,sBAAuB,SAAQ,oBAAoB;IAC3D,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA+Df"}
1
+ {"version":3,"file":"scheduler-routes.d.ts","sourceRoot":"","sources":["../../src/scheduler/scheduler-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,UAAU,sBAAuB,SAAQ,oBAAoB;IAC3D,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA8Hf"}
@@ -17,6 +17,50 @@ export async function schedulerRoutes(app, opts) {
17
17
  return reply.code(404).send({ error: 'Scheduled job not found' });
18
18
  return reply.send({ data: row });
19
19
  });
20
+ // POST /api/scheduler — create or update a scheduled job
21
+ app.post('/api/scheduler', {
22
+ preHandler: [app.requireAuth],
23
+ }, async (request, reply) => {
24
+ const { squad_name, cron_expression, prompt, timezone, timeout_minutes, retry_on_failure } = request.body;
25
+ if (!squad_name || typeof squad_name !== 'string' || !squad_name.trim()) {
26
+ return reply.code(400).send({ error: 'squad_name is required' });
27
+ }
28
+ if (!cron_expression || typeof cron_expression !== 'string' || !cron_expression.trim()) {
29
+ return reply.code(400).send({ error: 'cron_expression is required' });
30
+ }
31
+ if (!prompt || typeof prompt !== 'string' || !prompt.trim()) {
32
+ return reply.code(400).send({ error: 'prompt is required' });
33
+ }
34
+ if (schedulerService) {
35
+ const ok = schedulerService.registerDynamic(squad_name.trim(), {
36
+ cron: cron_expression.trim(),
37
+ prompt: prompt.trim(),
38
+ timezone: timezone?.trim() || undefined,
39
+ timeout_minutes: timeout_minutes ?? 30,
40
+ retry_on_failure: retry_on_failure ?? 0,
41
+ });
42
+ if (!ok) {
43
+ return reply.code(400).send({ error: 'Invalid cron expression' });
44
+ }
45
+ }
46
+ else {
47
+ // No scheduler service — just store in DB
48
+ db.prepare(`
49
+ INSERT INTO scheduled_jobs (squad_name, cron_expression, prompt, mode, timeout_minutes, retry_on_failure, timezone, status)
50
+ VALUES (?, ?, ?, 'autonomous', ?, ?, ?, 'active')
51
+ ON CONFLICT(squad_name) DO UPDATE SET
52
+ cron_expression = excluded.cron_expression,
53
+ prompt = excluded.prompt,
54
+ timeout_minutes = excluded.timeout_minutes,
55
+ retry_on_failure = excluded.retry_on_failure,
56
+ timezone = excluded.timezone,
57
+ status = 'active',
58
+ updated_at = datetime('now')
59
+ `).run(squad_name.trim(), cron_expression.trim(), prompt.trim(), timeout_minutes ?? 30, retry_on_failure ?? 0, timezone?.trim() || null);
60
+ }
61
+ const row = db.prepare('SELECT * FROM scheduled_jobs WHERE squad_name = ?').get(squad_name.trim());
62
+ return reply.code(201).send({ data: row });
63
+ });
20
64
  // POST /api/scheduler/:squad/pause
21
65
  app.post('/api/scheduler/:squad/pause', {
22
66
  preHandler: [app.requireAuth],
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler-routes.js","sourceRoot":"","sources":["../../src/scheduler/scheduler-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler-routes.js","sourceRoot":"","sources":["../../src/scheduler/scheduler-routes.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,14 @@ export declare class SchedulerService {
39
39
  resume(squadName: string): void;
40
40
  triggerNow(squadName: string): void;
41
41
  reload(squadName: string): void;
42
+ /** Register a schedule from API data (not from YAML) */
43
+ registerDynamic(squadName: string, config: {
44
+ cron: string;
45
+ prompt: string;
46
+ timezone?: string;
47
+ timeout_minutes?: number;
48
+ retry_on_failure?: number;
49
+ }): boolean;
42
50
  getStatus(): SchedulerStatus[];
43
51
  getJob(squadName: string): SchedulerStatus | null;
44
52
  private readScheduleConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler-service.d.ts","sourceRoot":"","sources":["../../src/scheduler/scheduler-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAM3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC3E;AAaD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAgE;IAClF,OAAO,CAAC,IAAI,CAAmC;gBAEnC,MAAM,EAAE,sBAAsB;IAO1C,KAAK,IAAI,IAAI;IAUb,IAAI,IAAI,IAAI;IAQZ,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAqEjC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IASnC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAU9B,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAU/B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAYnC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK/B,SAAS,IAAI,eAAe,EAAE;IAkB9B,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAgBjD,OAAO,CAAC,kBAAkB;CAa3B"}
1
+ {"version":3,"file":"scheduler-service.d.ts","sourceRoot":"","sources":["../../src/scheduler/scheduler-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAM3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC3E;AAaD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAgE;IAClF,OAAO,CAAC,IAAI,CAAmC;gBAEnC,MAAM,EAAE,sBAAsB;IAO1C,KAAK,IAAI,IAAI;IAUb,IAAI,IAAI,IAAI;IAQZ,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAwEjC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IASnC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAU9B,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAU/B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAYnC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK/B,wDAAwD;IACxD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;QACzC,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO;IA0DX,SAAS,IAAI,eAAe,EAAE;IAkB9B,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAgBjD,OAAO,CAAC,kBAAkB;CAa3B"}
@@ -35,6 +35,9 @@ export class SchedulerService {
35
35
  const schedule = this.readScheduleConfig(squadName);
36
36
  if (!schedule || !schedule.enabled)
37
37
  return;
38
+ // Skip if no cron configured yet (schedule enabled but not fully configured)
39
+ if (!schedule.cron)
40
+ return;
38
41
  if (!cron.validate(schedule.cron)) {
39
42
  console.error(`[scheduler] Invalid cron expression for ${squadName}: ${schedule.cron}`);
40
43
  return;
@@ -129,6 +132,52 @@ export class SchedulerService {
129
132
  this.unregister(squadName);
130
133
  this.register(squadName);
131
134
  }
135
+ /** Register a schedule from API data (not from YAML) */
136
+ registerDynamic(squadName, config) {
137
+ if (!cron.validate(config.cron))
138
+ return false;
139
+ // Unregister if already exists
140
+ if (this.jobs.has(squadName)) {
141
+ this.unregister(squadName);
142
+ }
143
+ const timeoutMin = config.timeout_minutes ?? 30;
144
+ const retryCount = config.retry_on_failure ?? 0;
145
+ const task = cron.schedule(config.cron, () => {
146
+ this.jobRunner.run({
147
+ squadName,
148
+ prompt: config.prompt,
149
+ timeoutMinutes: timeoutMin,
150
+ retryOnFailure: retryCount,
151
+ attempt: 1,
152
+ });
153
+ }, {
154
+ timezone: config.timezone,
155
+ });
156
+ const job = {
157
+ squadName,
158
+ cronExpression: config.cron,
159
+ timezone: config.timezone,
160
+ prompt: config.prompt,
161
+ timeoutMinutes: timeoutMin,
162
+ retryOnFailure: retryCount,
163
+ task,
164
+ status: 'active',
165
+ };
166
+ this.jobs.set(squadName, job);
167
+ this.db.prepare(`
168
+ INSERT INTO scheduled_jobs (squad_name, cron_expression, prompt, mode, timeout_minutes, retry_on_failure, timezone, status)
169
+ VALUES (?, ?, ?, 'autonomous', ?, ?, ?, 'active')
170
+ ON CONFLICT(squad_name) DO UPDATE SET
171
+ cron_expression = excluded.cron_expression,
172
+ prompt = excluded.prompt,
173
+ timeout_minutes = excluded.timeout_minutes,
174
+ retry_on_failure = excluded.retry_on_failure,
175
+ timezone = excluded.timezone,
176
+ status = 'active',
177
+ updated_at = datetime('now')
178
+ `).run(squadName, config.cron, config.prompt, timeoutMin, retryCount, config.timezone ?? null);
179
+ return true;
180
+ }
132
181
  getStatus() {
133
182
  const result = [];
134
183
  for (const job of this.jobs.values()) {
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler-service.js","sourceRoot":"","sources":["../../src/scheduler/scheduler-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler-service.js","sourceRoot":"","sources":["../../src/scheduler/scheduler-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expxagents",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "Multi-agent orchestration platform for AI squads",
5
5
  "author": "ExpxAgents",
6
6
  "license": "MIT",