247-cli 2.21.1 → 2.23.3
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.
- package/agent/dist/config.d.ts +4 -7
- package/agent/dist/config.d.ts.map +1 -1
- package/agent/dist/config.js +1 -2
- package/agent/dist/config.js.map +1 -1
- package/agent/dist/db/index.d.ts +0 -7
- package/agent/dist/db/index.d.ts.map +1 -1
- package/agent/dist/db/index.js +68 -333
- package/agent/dist/db/index.js.map +1 -1
- package/agent/dist/db/schema.d.ts +3 -90
- package/agent/dist/db/schema.d.ts.map +1 -1
- package/agent/dist/db/schema.js +4 -105
- package/agent/dist/db/schema.js.map +1 -1
- package/agent/dist/db/sessions.d.ts +0 -53
- package/agent/dist/db/sessions.d.ts.map +1 -1
- package/agent/dist/db/sessions.js +3 -224
- package/agent/dist/db/sessions.js.map +1 -1
- package/agent/dist/index.js +1 -0
- package/agent/dist/index.js.map +1 -1
- package/agent/dist/logger.d.ts +0 -2
- package/agent/dist/logger.d.ts.map +1 -1
- package/agent/dist/logger.js +0 -4
- package/agent/dist/logger.js.map +1 -1
- package/agent/dist/routes/attention.d.ts +10 -0
- package/agent/dist/routes/attention.d.ts.map +1 -0
- package/agent/dist/routes/attention.js +123 -0
- package/agent/dist/routes/attention.js.map +1 -0
- package/agent/dist/routes/index.d.ts +3 -7
- package/agent/dist/routes/index.d.ts.map +1 -1
- package/agent/dist/routes/index.js +3 -7
- package/agent/dist/routes/index.js.map +1 -1
- package/agent/dist/routes/pair.d.ts +26 -0
- package/agent/dist/routes/pair.d.ts.map +1 -0
- package/agent/dist/routes/pair.js +381 -0
- package/agent/dist/routes/pair.js.map +1 -0
- package/agent/dist/routes/projects.d.ts +2 -1
- package/agent/dist/routes/projects.d.ts.map +1 -1
- package/agent/dist/routes/projects.js +7 -39
- package/agent/dist/routes/projects.js.map +1 -1
- package/agent/dist/routes/sessions.d.ts +1 -0
- package/agent/dist/routes/sessions.d.ts.map +1 -1
- package/agent/dist/routes/sessions.js +14 -379
- package/agent/dist/routes/sessions.js.map +1 -1
- package/agent/dist/server.d.ts.map +1 -1
- package/agent/dist/server.js +11 -81
- package/agent/dist/server.js.map +1 -1
- package/agent/dist/services/index.d.ts +1 -6
- package/agent/dist/services/index.d.ts.map +1 -1
- package/agent/dist/services/index.js +4 -4
- package/agent/dist/services/index.js.map +1 -1
- package/agent/dist/setup-hooks.d.ts +10 -0
- package/agent/dist/setup-hooks.d.ts.map +1 -0
- package/agent/dist/setup-hooks.js +157 -0
- package/agent/dist/setup-hooks.js.map +1 -0
- package/agent/dist/status.d.ts +0 -6
- package/agent/dist/status.d.ts.map +1 -1
- package/agent/dist/status.js +2 -12
- package/agent/dist/status.js.map +1 -1
- package/agent/dist/terminal.d.ts +0 -11
- package/agent/dist/terminal.d.ts.map +1 -1
- package/agent/dist/terminal.js +6 -60
- package/agent/dist/terminal.js.map +1 -1
- package/agent/dist/websocket-handlers.d.ts +1 -0
- package/agent/dist/websocket-handlers.d.ts.map +1 -1
- package/agent/dist/websocket-handlers.js +3 -187
- package/agent/dist/websocket-handlers.js.map +1 -1
- package/agent/node_modules/247-shared/dist/types/index.d.ts +0 -232
- package/agent/node_modules/247-shared/dist/types/index.d.ts.map +1 -1
- package/agent/node_modules/247-shared/dist/types/index.js +1 -63
- package/agent/node_modules/247-shared/dist/types/index.js.map +1 -1
- package/agent/node_modules/247-shared/package.json +1 -1
- package/dist/index.js +1 -1
- package/package.json +3 -3
- package/agent/dist/db/environments.d.ts +0 -60
- package/agent/dist/db/environments.d.ts.map +0 -1
- package/agent/dist/db/environments.js +0 -235
- package/agent/dist/db/environments.js.map +0 -1
- package/agent/dist/db/events.d.ts +0 -46
- package/agent/dist/db/events.d.ts.map +0 -1
- package/agent/dist/db/events.js +0 -193
- package/agent/dist/db/events.js.map +0 -1
- package/agent/dist/db/history.d.ts +0 -37
- package/agent/dist/db/history.d.ts.map +0 -1
- package/agent/dist/db/history.js +0 -98
- package/agent/dist/db/history.js.map +0 -1
- package/agent/dist/db/push-subscriptions.d.ts +0 -44
- package/agent/dist/db/push-subscriptions.d.ts.map +0 -1
- package/agent/dist/db/push-subscriptions.js +0 -98
- package/agent/dist/db/push-subscriptions.js.map +0 -1
- package/agent/dist/editor.d.ts +0 -18
- package/agent/dist/editor.d.ts.map +0 -1
- package/agent/dist/editor.js +0 -222
- package/agent/dist/editor.js.map +0 -1
- package/agent/dist/environments.d.ts +0 -59
- package/agent/dist/environments.d.ts.map +0 -1
- package/agent/dist/environments.js +0 -229
- package/agent/dist/environments.js.map +0 -1
- package/agent/dist/git.d.ts +0 -39
- package/agent/dist/git.d.ts.map +0 -1
- package/agent/dist/git.js +0 -436
- package/agent/dist/git.js.map +0 -1
- package/agent/dist/heartbeat-monitor.d.ts +0 -24
- package/agent/dist/heartbeat-monitor.d.ts.map +0 -1
- package/agent/dist/heartbeat-monitor.js +0 -105
- package/agent/dist/heartbeat-monitor.js.map +0 -1
- package/agent/dist/push/sender.d.ts +0 -26
- package/agent/dist/push/sender.d.ts.map +0 -1
- package/agent/dist/push/sender.js +0 -122
- package/agent/dist/push/sender.js.map +0 -1
- package/agent/dist/push/vapid.d.ts +0 -25
- package/agent/dist/push/vapid.d.ts.map +0 -1
- package/agent/dist/push/vapid.js +0 -81
- package/agent/dist/push/vapid.js.map +0 -1
- package/agent/dist/routes/editor.d.ts +0 -9
- package/agent/dist/routes/editor.d.ts.map +0 -1
- package/agent/dist/routes/editor.js +0 -63
- package/agent/dist/routes/editor.js.map +0 -1
- package/agent/dist/routes/environments.d.ts +0 -6
- package/agent/dist/routes/environments.d.ts.map +0 -1
- package/agent/dist/routes/environments.js +0 -94
- package/agent/dist/routes/environments.js.map +0 -1
- package/agent/dist/routes/files.d.ts +0 -6
- package/agent/dist/routes/files.d.ts.map +0 -1
- package/agent/dist/routes/files.js +0 -84
- package/agent/dist/routes/files.js.map +0 -1
- package/agent/dist/routes/heartbeat.d.ts +0 -10
- package/agent/dist/routes/heartbeat.d.ts.map +0 -1
- package/agent/dist/routes/heartbeat.js +0 -124
- package/agent/dist/routes/heartbeat.js.map +0 -1
- package/agent/dist/routes/notification.d.ts +0 -9
- package/agent/dist/routes/notification.d.ts.map +0 -1
- package/agent/dist/routes/notification.js +0 -172
- package/agent/dist/routes/notification.js.map +0 -1
- package/agent/dist/routes/push.d.ts +0 -7
- package/agent/dist/routes/push.d.ts.map +0 -1
- package/agent/dist/routes/push.js +0 -98
- package/agent/dist/routes/push.js.map +0 -1
- package/agent/dist/routes/stop.d.ts +0 -9
- package/agent/dist/routes/stop.d.ts.map +0 -1
- package/agent/dist/routes/stop.js +0 -121
- package/agent/dist/routes/stop.js.map +0 -1
- package/agent/dist/services/cleanup.d.ts +0 -45
- package/agent/dist/services/cleanup.d.ts.map +0 -1
- package/agent/dist/services/cleanup.js +0 -130
- package/agent/dist/services/cleanup.js.map +0 -1
- package/agent/dist/services/execution.d.ts +0 -53
- package/agent/dist/services/execution.d.ts.map +0 -1
- package/agent/dist/services/execution.js +0 -75
- package/agent/dist/services/execution.js.map +0 -1
- package/agent/dist/services/stream-json.d.ts +0 -109
- package/agent/dist/services/stream-json.d.ts.map +0 -1
- package/agent/dist/services/stream-json.js +0 -335
- package/agent/dist/services/stream-json.js.map +0 -1
- package/agent/dist/services/worktree.d.ts +0 -41
- package/agent/dist/services/worktree.d.ts.map +0 -1
- package/agent/dist/services/worktree.js +0 -139
- package/agent/dist/services/worktree.js.map +0 -1
- package/agent/dist/setup-statusline.d.ts +0 -10
- package/agent/dist/setup-statusline.d.ts.map +0 -1
- package/agent/dist/setup-statusline.js +0 -234
- package/agent/dist/setup-statusline.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/db/events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIzC;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAmB;IAC7C,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;;GAcvB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;QACnE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3E,WAAW,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;QAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACrE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;QACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;KACjC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,eAAyB,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;;GAIH,CACE;SACA,GAAG,CAAC,WAAW,CAAqB,CAAC;IAExC,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAAmB,EACnB,KAAa,EACb,MAAc;IAEd,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,MAAM,WAAW,GAAG,EAAE;SACnB,OAAO,CAAC,qEAAqE,CAAC;SAC9E,GAAG,CAAC,WAAW,CAAsB,CAAC;IAEzC,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;;;GAKH,CACE;SACA,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAqB,CAAC;IAEvD,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACvC,KAAK,EAAE,WAAW,CAAC,KAAK;KACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,KAAK,GAAG,EAAE;IAC7D,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;;;GAKH,CACE;SACA,GAAG,CAAC,WAAW,EAAE,KAAK,CAAqB,CAAC;IAE/C,qCAAqC;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,OAAO,EAAE,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;;GAIH,CACE;SACA,GAAG,CAAC,WAAW,CAAqB,CAAC;IAExC,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CACN;;;;;GAKH,CACE;SACA,GAAG,CAAC,WAAW,CAA+B,CAAC;IAElD,OAAO,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEhG,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;IAErC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAExF,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,MAAM,MAAM,GAAG,EAAE;SACd,OAAO,CAAC,qEAAqE,CAAC;SAC9E,GAAG,CAAC,WAAW,CAAsB,CAAC;IAEzC,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,GAAmB;IAChD,MAAM,KAAK,GAAiB;QAC1B,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE;QACrB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;IAEF,mBAAmB;IACnB,IAAI,GAAG,CAAC,SAAS;QAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC;IAClD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,OAAO;QAAE,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAE5C,qBAAqB;IACrB,IAAI,GAAG,CAAC,WAAW;QAAE,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC;IACxD,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI;QAAE,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC;IAEpE,eAAe;IACf,IAAI,GAAG,CAAC,YAAY;QAAE,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC;IAEpD,gBAAgB;IAChB,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;QAAE,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC;IAC5D,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI;QAAE,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC;IACjE,IAAI,GAAG,CAAC,cAAc,KAAK,IAAI;QAAE,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC;IACzE,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI;QAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC;IAE3D,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { DbStatusHistory } from './schema.js';
|
|
2
|
-
import type { SessionStatus, AttentionReason } from '247-shared';
|
|
3
|
-
/**
|
|
4
|
-
* Record a status change in history
|
|
5
|
-
*/
|
|
6
|
-
export declare function recordStatusChange(sessionName: string, status: SessionStatus, attentionReason: AttentionReason | null, event: string | null): void;
|
|
7
|
-
/**
|
|
8
|
-
* Get status history for a session
|
|
9
|
-
*/
|
|
10
|
-
export declare function getSessionHistory(sessionName: string, limit?: number): DbStatusHistory[];
|
|
11
|
-
/**
|
|
12
|
-
* Get recent history across all sessions
|
|
13
|
-
*/
|
|
14
|
-
export declare function getRecentHistory(limit?: number): DbStatusHistory[];
|
|
15
|
-
/**
|
|
16
|
-
* Get history within a time range
|
|
17
|
-
*/
|
|
18
|
-
export declare function getHistoryInRange(startTime: number, endTime: number): DbStatusHistory[];
|
|
19
|
-
/**
|
|
20
|
-
* Cleanup old history entries
|
|
21
|
-
* Returns number of deleted entries
|
|
22
|
-
*/
|
|
23
|
-
export declare function cleanupOldHistory(maxAge: number): number;
|
|
24
|
-
/**
|
|
25
|
-
* Get statistics about status history
|
|
26
|
-
*/
|
|
27
|
-
export declare function getHistoryStats(): {
|
|
28
|
-
totalEntries: number;
|
|
29
|
-
oldestEntry: number | null;
|
|
30
|
-
newestEntry: number | null;
|
|
31
|
-
entriesByStatus: Record<string, number>;
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Delete all history for a session
|
|
35
|
-
*/
|
|
36
|
-
export declare function deleteSessionHistory(sessionName: string): number;
|
|
37
|
-
//# sourceMappingURL=history.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/db/history.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EACrB,eAAe,EAAE,eAAe,GAAG,IAAI,EACvC,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI,CAUN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,eAAe,EAAE,CAYrF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,SAAM,GAAG,eAAe,EAAE,CAW/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAWvF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWxD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,CAkCA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAIhE"}
|
package/agent/dist/db/history.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { getDatabase } from './index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Record a status change in history
|
|
4
|
-
*/
|
|
5
|
-
export function recordStatusChange(sessionName, status, attentionReason, event) {
|
|
6
|
-
const db = getDatabase();
|
|
7
|
-
const now = Date.now();
|
|
8
|
-
db.prepare(`
|
|
9
|
-
INSERT INTO status_history (session_name, status, attention_reason, event, timestamp)
|
|
10
|
-
VALUES (?, ?, ?, ?, ?)
|
|
11
|
-
`).run(sessionName, status, attentionReason, event, now);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Get status history for a session
|
|
15
|
-
*/
|
|
16
|
-
export function getSessionHistory(sessionName, limit = 100) {
|
|
17
|
-
const db = getDatabase();
|
|
18
|
-
return db
|
|
19
|
-
.prepare(`
|
|
20
|
-
SELECT * FROM status_history
|
|
21
|
-
WHERE session_name = ?
|
|
22
|
-
ORDER BY timestamp DESC
|
|
23
|
-
LIMIT ?
|
|
24
|
-
`)
|
|
25
|
-
.all(sessionName, limit);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Get recent history across all sessions
|
|
29
|
-
*/
|
|
30
|
-
export function getRecentHistory(limit = 100) {
|
|
31
|
-
const db = getDatabase();
|
|
32
|
-
return db
|
|
33
|
-
.prepare(`
|
|
34
|
-
SELECT * FROM status_history
|
|
35
|
-
ORDER BY timestamp DESC
|
|
36
|
-
LIMIT ?
|
|
37
|
-
`)
|
|
38
|
-
.all(limit);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Get history within a time range
|
|
42
|
-
*/
|
|
43
|
-
export function getHistoryInRange(startTime, endTime) {
|
|
44
|
-
const db = getDatabase();
|
|
45
|
-
return db
|
|
46
|
-
.prepare(`
|
|
47
|
-
SELECT * FROM status_history
|
|
48
|
-
WHERE timestamp >= ? AND timestamp <= ?
|
|
49
|
-
ORDER BY timestamp DESC
|
|
50
|
-
`)
|
|
51
|
-
.all(startTime, endTime);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Cleanup old history entries
|
|
55
|
-
* Returns number of deleted entries
|
|
56
|
-
*/
|
|
57
|
-
export function cleanupOldHistory(maxAge) {
|
|
58
|
-
const db = getDatabase();
|
|
59
|
-
const cutoff = Date.now() - maxAge;
|
|
60
|
-
const result = db.prepare('DELETE FROM status_history WHERE timestamp < ?').run(cutoff);
|
|
61
|
-
if (result.changes > 0) {
|
|
62
|
-
console.log(`[DB] Cleaned up ${result.changes} old history entries`);
|
|
63
|
-
}
|
|
64
|
-
return result.changes;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Get statistics about status history
|
|
68
|
-
*/
|
|
69
|
-
export function getHistoryStats() {
|
|
70
|
-
const db = getDatabase();
|
|
71
|
-
const total = db.prepare('SELECT COUNT(*) as count FROM status_history').get();
|
|
72
|
-
const oldest = db.prepare('SELECT MIN(timestamp) as ts FROM status_history').get();
|
|
73
|
-
const newest = db.prepare('SELECT MAX(timestamp) as ts FROM status_history').get();
|
|
74
|
-
const byStatus = db
|
|
75
|
-
.prepare(`
|
|
76
|
-
SELECT status, COUNT(*) as count FROM status_history GROUP BY status
|
|
77
|
-
`)
|
|
78
|
-
.all();
|
|
79
|
-
const entriesByStatus = {};
|
|
80
|
-
for (const row of byStatus) {
|
|
81
|
-
entriesByStatus[row.status] = row.count;
|
|
82
|
-
}
|
|
83
|
-
return {
|
|
84
|
-
totalEntries: total.count,
|
|
85
|
-
oldestEntry: oldest.ts,
|
|
86
|
-
newestEntry: newest.ts,
|
|
87
|
-
entriesByStatus,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Delete all history for a session
|
|
92
|
-
*/
|
|
93
|
-
export function deleteSessionHistory(sessionName) {
|
|
94
|
-
const db = getDatabase();
|
|
95
|
-
const result = db.prepare('DELETE FROM status_history WHERE session_name = ?').run(sessionName);
|
|
96
|
-
return result.changes;
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=history.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/db/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Push subscription database operations.
|
|
3
|
-
* Stores Web Push subscriptions for sending notifications when browser is closed.
|
|
4
|
-
*/
|
|
5
|
-
import type webpush from 'web-push';
|
|
6
|
-
export interface DbPushSubscription {
|
|
7
|
-
id: number;
|
|
8
|
-
endpoint: string;
|
|
9
|
-
keys_p256dh: string;
|
|
10
|
-
keys_auth: string;
|
|
11
|
-
user_agent: string | null;
|
|
12
|
-
created_at: number;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Create the push_subscriptions table (called during migration)
|
|
16
|
-
*/
|
|
17
|
-
export declare const CREATE_PUSH_SUBSCRIPTIONS_SQL = "\nCREATE TABLE IF NOT EXISTS push_subscriptions (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n endpoint TEXT UNIQUE NOT NULL,\n keys_p256dh TEXT NOT NULL,\n keys_auth TEXT NOT NULL,\n user_agent TEXT,\n created_at INTEGER NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_push_endpoint ON push_subscriptions(endpoint);\n";
|
|
18
|
-
/**
|
|
19
|
-
* Save a push subscription.
|
|
20
|
-
* Uses REPLACE to handle re-subscriptions from the same endpoint.
|
|
21
|
-
*/
|
|
22
|
-
export declare function saveSubscription(subscription: webpush.PushSubscription, userAgent?: string): DbPushSubscription;
|
|
23
|
-
/**
|
|
24
|
-
* Delete a push subscription by endpoint.
|
|
25
|
-
*/
|
|
26
|
-
export declare function deleteSubscription(endpoint: string): boolean;
|
|
27
|
-
/**
|
|
28
|
-
* Get all active push subscriptions.
|
|
29
|
-
*/
|
|
30
|
-
export declare function getAllSubscriptions(): DbPushSubscription[];
|
|
31
|
-
/**
|
|
32
|
-
* Get subscription count.
|
|
33
|
-
*/
|
|
34
|
-
export declare function getSubscriptionCount(): number;
|
|
35
|
-
/**
|
|
36
|
-
* Convert DB subscription to web-push format.
|
|
37
|
-
*/
|
|
38
|
-
export declare function toWebPushSubscription(dbSub: DbPushSubscription): webpush.PushSubscription;
|
|
39
|
-
/**
|
|
40
|
-
* Delete expired/invalid subscriptions.
|
|
41
|
-
* Called when a push fails with 404 or 410 status.
|
|
42
|
-
*/
|
|
43
|
-
export declare function deleteInvalidSubscriptions(endpoints: string[]): number;
|
|
44
|
-
//# sourceMappingURL=push-subscriptions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push-subscriptions.d.ts","sourceRoot":"","sources":["../../src/db/push-subscriptions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,qUAWzC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,OAAO,CAAC,gBAAgB,EACtC,SAAS,CAAC,EAAE,MAAM,GACjB,kBAAkB,CA0BpB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAI5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,kBAAkB,EAAE,CAG1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAM7C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAQzF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAUtE"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Push subscription database operations.
|
|
3
|
-
* Stores Web Push subscriptions for sending notifications when browser is closed.
|
|
4
|
-
*/
|
|
5
|
-
import { getDatabase } from './index.js';
|
|
6
|
-
/**
|
|
7
|
-
* Create the push_subscriptions table (called during migration)
|
|
8
|
-
*/
|
|
9
|
-
export const CREATE_PUSH_SUBSCRIPTIONS_SQL = `
|
|
10
|
-
CREATE TABLE IF NOT EXISTS push_subscriptions (
|
|
11
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
12
|
-
endpoint TEXT UNIQUE NOT NULL,
|
|
13
|
-
keys_p256dh TEXT NOT NULL,
|
|
14
|
-
keys_auth TEXT NOT NULL,
|
|
15
|
-
user_agent TEXT,
|
|
16
|
-
created_at INTEGER NOT NULL
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
CREATE INDEX IF NOT EXISTS idx_push_endpoint ON push_subscriptions(endpoint);
|
|
20
|
-
`;
|
|
21
|
-
/**
|
|
22
|
-
* Save a push subscription.
|
|
23
|
-
* Uses REPLACE to handle re-subscriptions from the same endpoint.
|
|
24
|
-
*/
|
|
25
|
-
export function saveSubscription(subscription, userAgent) {
|
|
26
|
-
const db = getDatabase();
|
|
27
|
-
const now = Date.now();
|
|
28
|
-
const stmt = db.prepare(`
|
|
29
|
-
INSERT OR REPLACE INTO push_subscriptions
|
|
30
|
-
(endpoint, keys_p256dh, keys_auth, user_agent, created_at)
|
|
31
|
-
VALUES (@endpoint, @p256dh, @auth, @userAgent, @createdAt)
|
|
32
|
-
`);
|
|
33
|
-
stmt.run({
|
|
34
|
-
endpoint: subscription.endpoint,
|
|
35
|
-
p256dh: subscription.keys.p256dh,
|
|
36
|
-
auth: subscription.keys.auth,
|
|
37
|
-
userAgent: userAgent ?? null,
|
|
38
|
-
createdAt: now,
|
|
39
|
-
});
|
|
40
|
-
return {
|
|
41
|
-
id: 0, // Not needed for return
|
|
42
|
-
endpoint: subscription.endpoint,
|
|
43
|
-
keys_p256dh: subscription.keys.p256dh,
|
|
44
|
-
keys_auth: subscription.keys.auth,
|
|
45
|
-
user_agent: userAgent ?? null,
|
|
46
|
-
created_at: now,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Delete a push subscription by endpoint.
|
|
51
|
-
*/
|
|
52
|
-
export function deleteSubscription(endpoint) {
|
|
53
|
-
const db = getDatabase();
|
|
54
|
-
const result = db.prepare('DELETE FROM push_subscriptions WHERE endpoint = ?').run(endpoint);
|
|
55
|
-
return result.changes > 0;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Get all active push subscriptions.
|
|
59
|
-
*/
|
|
60
|
-
export function getAllSubscriptions() {
|
|
61
|
-
const db = getDatabase();
|
|
62
|
-
return db.prepare('SELECT * FROM push_subscriptions').all();
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Get subscription count.
|
|
66
|
-
*/
|
|
67
|
-
export function getSubscriptionCount() {
|
|
68
|
-
const db = getDatabase();
|
|
69
|
-
const result = db.prepare('SELECT COUNT(*) as count FROM push_subscriptions').get();
|
|
70
|
-
return result.count;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Convert DB subscription to web-push format.
|
|
74
|
-
*/
|
|
75
|
-
export function toWebPushSubscription(dbSub) {
|
|
76
|
-
return {
|
|
77
|
-
endpoint: dbSub.endpoint,
|
|
78
|
-
keys: {
|
|
79
|
-
p256dh: dbSub.keys_p256dh,
|
|
80
|
-
auth: dbSub.keys_auth,
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Delete expired/invalid subscriptions.
|
|
86
|
-
* Called when a push fails with 404 or 410 status.
|
|
87
|
-
*/
|
|
88
|
-
export function deleteInvalidSubscriptions(endpoints) {
|
|
89
|
-
if (endpoints.length === 0)
|
|
90
|
-
return 0;
|
|
91
|
-
const db = getDatabase();
|
|
92
|
-
const placeholders = endpoints.map(() => '?').join(',');
|
|
93
|
-
const result = db
|
|
94
|
-
.prepare(`DELETE FROM push_subscriptions WHERE endpoint IN (${placeholders})`)
|
|
95
|
-
.run(...endpoints);
|
|
96
|
-
return result.changes;
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=push-subscriptions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push-subscriptions.js","sourceRoot":"","sources":["../../src/db/push-subscriptions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAYzC;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;;;CAW5C,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,YAAsC,EACtC,SAAkB;IAElB,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;GAIvB,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC;QACP,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM;QAChC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI;QAC5B,SAAS,EAAE,SAAS,IAAI,IAAI;QAC5B,SAAS,EAAE,GAAG;KACf,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,CAAC,EAAE,wBAAwB;QAC/B,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM;QACrC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI;QACjC,UAAU,EAAE,SAAS,IAAI,IAAI;QAC7B,UAAU,EAAE,GAAG;KAChB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7F,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,OAAO,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAA0B,CAAC;AACtF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,EAEhF,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE;YACJ,MAAM,EAAE,KAAK,CAAC,WAAW;YACzB,IAAI,EAAE,KAAK,CAAC,SAAS;SACtB;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,SAAmB;IAC5D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAErC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,EAAE;SACd,OAAO,CAAC,qDAAqD,YAAY,GAAG,CAAC;SAC7E,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IAErB,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC"}
|
package/agent/dist/editor.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ChildProcess } from 'child_process';
|
|
2
|
-
import type { EditorConfig, EditorStatus } from '247-shared';
|
|
3
|
-
interface EditorInstance {
|
|
4
|
-
project: string;
|
|
5
|
-
port: number;
|
|
6
|
-
process: ChildProcess;
|
|
7
|
-
startedAt: number;
|
|
8
|
-
lastActivity: number;
|
|
9
|
-
}
|
|
10
|
-
export declare function initEditor(config: EditorConfig | undefined, basePath: string): Promise<void>;
|
|
11
|
-
export declare function getOrStartEditor(project: string): Promise<EditorInstance>;
|
|
12
|
-
export declare function stopEditor(project: string): boolean;
|
|
13
|
-
export declare function getEditorStatus(project: string): EditorStatus;
|
|
14
|
-
export declare function getAllEditors(): EditorStatus[];
|
|
15
|
-
export declare function updateEditorActivity(project: string): void;
|
|
16
|
-
export declare function shutdownAllEditors(): void;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=editor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAY,MAAM,eAAe,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7D,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAmBD,wBAAsB,UAAU,CAC9B,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAiBf;AA2ED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAqF/E;AAGD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUnD;AAYD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAW7D;AAGD,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAE9C;AAGD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAK1D;AAkBD,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC"}
|
package/agent/dist/editor.js
DELETED
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
import { spawn, execSync } from 'child_process';
|
|
2
|
-
import { createConnection } from 'net';
|
|
3
|
-
// Active code-server instances (one per project)
|
|
4
|
-
const editorInstances = new Map();
|
|
5
|
-
// Port allocation tracking
|
|
6
|
-
const usedPorts = new Set();
|
|
7
|
-
// Default config if not provided
|
|
8
|
-
const DEFAULT_CONFIG = {
|
|
9
|
-
enabled: true,
|
|
10
|
-
portRange: { start: 4680, end: 4699 },
|
|
11
|
-
idleTimeout: 30 * 60 * 1000, // 30 minutes
|
|
12
|
-
};
|
|
13
|
-
let editorConfig = DEFAULT_CONFIG;
|
|
14
|
-
let projectsBasePath = '~/Dev';
|
|
15
|
-
// Initialize editor manager with config
|
|
16
|
-
export async function initEditor(config, basePath) {
|
|
17
|
-
editorConfig = config || DEFAULT_CONFIG;
|
|
18
|
-
projectsBasePath = basePath;
|
|
19
|
-
if (editorConfig.enabled) {
|
|
20
|
-
// Kill any orphan code-server processes from previous runs
|
|
21
|
-
console.log('[Editor] Cleaning up orphan code-server processes...');
|
|
22
|
-
await killOrphanCodeServers();
|
|
23
|
-
// Start idle cleanup interval (check every 5 minutes)
|
|
24
|
-
setInterval(cleanupIdleEditors, 5 * 60 * 1000);
|
|
25
|
-
console.log('[Editor] Manager initialized, idle timeout:', editorConfig.idleTimeout / 1000, 's');
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
// Check if a port is actually in use by trying to connect
|
|
29
|
-
function isPortInUse(port) {
|
|
30
|
-
return new Promise((resolve) => {
|
|
31
|
-
const socket = createConnection({ port, host: '127.0.0.1' });
|
|
32
|
-
socket.setTimeout(500);
|
|
33
|
-
socket.on('connect', () => {
|
|
34
|
-
socket.destroy();
|
|
35
|
-
resolve(true);
|
|
36
|
-
});
|
|
37
|
-
socket.on('timeout', () => {
|
|
38
|
-
socket.destroy();
|
|
39
|
-
resolve(false);
|
|
40
|
-
});
|
|
41
|
-
socket.on('error', () => {
|
|
42
|
-
socket.destroy();
|
|
43
|
-
resolve(false);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
// Kill any orphan code-server processes on the port range
|
|
48
|
-
async function killOrphanCodeServers() {
|
|
49
|
-
try {
|
|
50
|
-
// Find code-server processes listening on our port range
|
|
51
|
-
const result = execSync(`lsof -i :${editorConfig.portRange.start}-${editorConfig.portRange.end} -t 2>/dev/null || true`, { encoding: 'utf8' }).trim();
|
|
52
|
-
if (result) {
|
|
53
|
-
const pids = result.split('\n').filter(Boolean);
|
|
54
|
-
for (const pid of pids) {
|
|
55
|
-
try {
|
|
56
|
-
console.log(`[Editor] Killing orphan process on port range: PID ${pid}`);
|
|
57
|
-
process.kill(parseInt(pid), 'SIGTERM');
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
// Process may have already exited
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
// Wait a bit for processes to terminate
|
|
64
|
-
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
// lsof may not be available or no processes found
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
// Allocate next available port from range (checks actual usage)
|
|
72
|
-
async function allocatePort() {
|
|
73
|
-
for (let port = editorConfig.portRange.start; port <= editorConfig.portRange.end; port++) {
|
|
74
|
-
if (!usedPorts.has(port)) {
|
|
75
|
-
// Double-check the port is actually free
|
|
76
|
-
const inUse = await isPortInUse(port);
|
|
77
|
-
if (!inUse) {
|
|
78
|
-
usedPorts.add(port);
|
|
79
|
-
return port;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
console.log(`[Editor] Port ${port} is in use by another process, skipping`);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
// Release port back to pool
|
|
89
|
-
function releasePort(port) {
|
|
90
|
-
usedPorts.delete(port);
|
|
91
|
-
}
|
|
92
|
-
// Get or start code-server for a project
|
|
93
|
-
export async function getOrStartEditor(project) {
|
|
94
|
-
// Check if already running
|
|
95
|
-
const existing = editorInstances.get(project);
|
|
96
|
-
if (existing) {
|
|
97
|
-
existing.lastActivity = Date.now();
|
|
98
|
-
return existing;
|
|
99
|
-
}
|
|
100
|
-
// Allocate port (checks actual port availability)
|
|
101
|
-
const port = await allocatePort();
|
|
102
|
-
if (!port) {
|
|
103
|
-
throw new Error('No available ports for code-server');
|
|
104
|
-
}
|
|
105
|
-
// Resolve project path
|
|
106
|
-
const projectPath = `${projectsBasePath}/${project}`.replace('~', process.env.HOME);
|
|
107
|
-
console.log(`[Editor] Starting code-server for ${project} on port ${port}`);
|
|
108
|
-
// Spawn code-server process with extended PATH for Homebrew
|
|
109
|
-
const env = {
|
|
110
|
-
...process.env,
|
|
111
|
-
PATH: `/opt/homebrew/bin:/usr/local/bin:${process.env.PATH}`,
|
|
112
|
-
};
|
|
113
|
-
const codeServer = spawn('code-server', [
|
|
114
|
-
'--bind-addr',
|
|
115
|
-
`127.0.0.1:${port}`,
|
|
116
|
-
'--auth',
|
|
117
|
-
'none',
|
|
118
|
-
'--disable-telemetry',
|
|
119
|
-
'--disable-update-check',
|
|
120
|
-
'--disable-proxy',
|
|
121
|
-
projectPath,
|
|
122
|
-
], {
|
|
123
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
124
|
-
detached: false,
|
|
125
|
-
env,
|
|
126
|
-
});
|
|
127
|
-
const instance = {
|
|
128
|
-
project,
|
|
129
|
-
port,
|
|
130
|
-
process: codeServer,
|
|
131
|
-
startedAt: Date.now(),
|
|
132
|
-
lastActivity: Date.now(),
|
|
133
|
-
};
|
|
134
|
-
// Handle process events
|
|
135
|
-
codeServer.on('error', (err) => {
|
|
136
|
-
console.error(`[Editor] code-server error for ${project}:`, err);
|
|
137
|
-
cleanupInstance(project);
|
|
138
|
-
});
|
|
139
|
-
codeServer.on('exit', (code) => {
|
|
140
|
-
console.log(`[Editor] code-server for ${project} exited with code ${code}`);
|
|
141
|
-
cleanupInstance(project);
|
|
142
|
-
});
|
|
143
|
-
// Log output for debugging
|
|
144
|
-
codeServer.stdout?.on('data', (data) => {
|
|
145
|
-
const msg = data.toString().trim();
|
|
146
|
-
if (msg.includes('HTTP server listening')) {
|
|
147
|
-
console.log(`[Editor] code-server ready for ${project} at http://127.0.0.1:${port}`);
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
codeServer.stderr?.on('data', (data) => {
|
|
151
|
-
const msg = data.toString().trim();
|
|
152
|
-
// Filter out noisy messages
|
|
153
|
-
if (!msg.includes('libva error') && !msg.includes('GLIBCXX')) {
|
|
154
|
-
console.error(`[Editor] ${project}:`, msg);
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
editorInstances.set(project, instance);
|
|
158
|
-
// Wait for code-server to be ready (simple delay for now)
|
|
159
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
160
|
-
return instance;
|
|
161
|
-
}
|
|
162
|
-
// Stop code-server for a project
|
|
163
|
-
export function stopEditor(project) {
|
|
164
|
-
const instance = editorInstances.get(project);
|
|
165
|
-
if (!instance) {
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
console.log(`[Editor] Stopping code-server for ${project}`);
|
|
169
|
-
instance.process.kill('SIGTERM');
|
|
170
|
-
cleanupInstance(project);
|
|
171
|
-
return true;
|
|
172
|
-
}
|
|
173
|
-
// Cleanup instance resources
|
|
174
|
-
function cleanupInstance(project) {
|
|
175
|
-
const instance = editorInstances.get(project);
|
|
176
|
-
if (instance) {
|
|
177
|
-
releasePort(instance.port);
|
|
178
|
-
editorInstances.delete(project);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
// Get status of editor for a project
|
|
182
|
-
export function getEditorStatus(project) {
|
|
183
|
-
const instance = editorInstances.get(project);
|
|
184
|
-
return {
|
|
185
|
-
project,
|
|
186
|
-
running: !!instance,
|
|
187
|
-
port: instance?.port,
|
|
188
|
-
pid: instance?.process.pid,
|
|
189
|
-
startedAt: instance?.startedAt,
|
|
190
|
-
lastActivity: instance?.lastActivity,
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
// Get all running editors
|
|
194
|
-
export function getAllEditors() {
|
|
195
|
-
return Array.from(editorInstances.keys()).map(getEditorStatus);
|
|
196
|
-
}
|
|
197
|
-
// Update last activity timestamp (called when proxy forwards requests)
|
|
198
|
-
export function updateEditorActivity(project) {
|
|
199
|
-
const instance = editorInstances.get(project);
|
|
200
|
-
if (instance) {
|
|
201
|
-
instance.lastActivity = Date.now();
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
// Cleanup idle editors (called periodically)
|
|
205
|
-
function cleanupIdleEditors() {
|
|
206
|
-
const now = Date.now();
|
|
207
|
-
for (const [project, instance] of editorInstances) {
|
|
208
|
-
const idleTime = now - instance.lastActivity;
|
|
209
|
-
if (idleTime > editorConfig.idleTimeout) {
|
|
210
|
-
console.log(`[Editor] Stopping idle code-server for ${project} (idle ${Math.round(idleTime / 1000)}s)`);
|
|
211
|
-
stopEditor(project);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
// Graceful shutdown - stop all editors
|
|
216
|
-
export function shutdownAllEditors() {
|
|
217
|
-
console.log(`[Editor] Shutting down ${editorInstances.size} code-server instances`);
|
|
218
|
-
for (const project of editorInstances.keys()) {
|
|
219
|
-
stopEditor(project);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
//# sourceMappingURL=editor.js.map
|
package/agent/dist/editor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import type { Environment, EnvironmentMetadata, EnvironmentProvider, CreateEnvironmentRequest, UpdateEnvironmentRequest } from '247-shared';
|
|
2
|
-
/**
|
|
3
|
-
* Load environments from disk
|
|
4
|
-
*/
|
|
5
|
-
export declare function loadEnvironments(): void;
|
|
6
|
-
/**
|
|
7
|
-
* Get all environments (full data, agent-side only)
|
|
8
|
-
*/
|
|
9
|
-
export declare function getAllEnvironments(): Environment[];
|
|
10
|
-
/**
|
|
11
|
-
* Get all environments as safe metadata (for dashboard)
|
|
12
|
-
*/
|
|
13
|
-
export declare function getEnvironmentsMetadata(): EnvironmentMetadata[];
|
|
14
|
-
/**
|
|
15
|
-
* Get single environment by ID (full data)
|
|
16
|
-
*/
|
|
17
|
-
export declare function getEnvironment(id: string): Environment | undefined;
|
|
18
|
-
/**
|
|
19
|
-
* Get single environment metadata
|
|
20
|
-
*/
|
|
21
|
-
export declare function getEnvironmentMetadata(id: string): EnvironmentMetadata | undefined;
|
|
22
|
-
/**
|
|
23
|
-
* Get default environment
|
|
24
|
-
*/
|
|
25
|
-
export declare function getDefaultEnvironment(): Environment | undefined;
|
|
26
|
-
/**
|
|
27
|
-
* Create new environment
|
|
28
|
-
*/
|
|
29
|
-
export declare function createEnvironment(req: CreateEnvironmentRequest): Environment;
|
|
30
|
-
/**
|
|
31
|
-
* Update environment
|
|
32
|
-
*/
|
|
33
|
-
export declare function updateEnvironment(id: string, req: UpdateEnvironmentRequest): Environment | null;
|
|
34
|
-
/**
|
|
35
|
-
* Delete environment
|
|
36
|
-
*/
|
|
37
|
-
export declare function deleteEnvironment(id: string): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Get environment variables for terminal injection
|
|
40
|
-
* Returns the variables for the specified environment, or default if not found
|
|
41
|
-
*/
|
|
42
|
-
export declare function getEnvironmentVariables(environmentId?: string): Record<string, string>;
|
|
43
|
-
/**
|
|
44
|
-
* Track which environment a session uses
|
|
45
|
-
*/
|
|
46
|
-
export declare function setSessionEnvironment(sessionName: string, environmentId: string): void;
|
|
47
|
-
/**
|
|
48
|
-
* Get the environment ID for a session
|
|
49
|
-
*/
|
|
50
|
-
export declare function getSessionEnvironment(sessionName: string): string | undefined;
|
|
51
|
-
/**
|
|
52
|
-
* Clear session environment tracking (when session is killed)
|
|
53
|
-
*/
|
|
54
|
-
export declare function clearSessionEnvironment(sessionName: string): void;
|
|
55
|
-
/**
|
|
56
|
-
* Create environment from preset
|
|
57
|
-
*/
|
|
58
|
-
export declare function createEnvironmentFromPreset(provider: EnvironmentProvider, name: string, customVariables?: Record<string, string>): Environment;
|
|
59
|
-
//# sourceMappingURL=environments.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../src/environments.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAepB;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAkCvC;AA8BD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,mBAAmB,EAAE,CAE/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAElE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAIlF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,GAAG,SAAS,CAE/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,wBAAwB,GAAG,WAAW,CA2B5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,wBAAwB,GAAG,WAAW,GAAG,IAAI,CA4B/F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAiBrD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAatF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAEtF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE7E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,WAAW,CAUb"}
|