@overlordai/protocol 1.0.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.
@@ -0,0 +1,99 @@
1
+ import type { Task } from './types.js';
2
+ import type { TaskStatus, GitPlatform, DeveloperRole } from './enums.js';
3
+ export interface LoginRequest {
4
+ username: string;
5
+ password: string;
6
+ totpCode?: string;
7
+ }
8
+ export interface LoginResponse {
9
+ accessToken: string;
10
+ refreshToken: string;
11
+ }
12
+ export interface RefreshRequest {
13
+ refreshToken: string;
14
+ }
15
+ export interface RefreshResponse {
16
+ accessToken: string;
17
+ refreshToken: string;
18
+ }
19
+ export interface CreateTaskRequest {
20
+ description: string;
21
+ projectKey: string;
22
+ machineId?: string;
23
+ developerId?: number;
24
+ }
25
+ export interface CreateTaskResponse {
26
+ task: Task;
27
+ }
28
+ export interface TaskListQuery {
29
+ limit?: number;
30
+ cursor?: string;
31
+ status?: TaskStatus;
32
+ projectKey?: string;
33
+ createdBy?: number;
34
+ }
35
+ export interface WorkerRegisterRequest {
36
+ token: string;
37
+ machineName: string;
38
+ machineId?: string;
39
+ host: string;
40
+ port: number;
41
+ os: string;
42
+ cpuCores: number;
43
+ memoryGb: number;
44
+ capabilities: string[];
45
+ tags: string[];
46
+ protocolVersion: string;
47
+ }
48
+ export interface WorkerRegisterResponse {
49
+ jwt: string;
50
+ machineId: string;
51
+ recoverySecret?: string;
52
+ }
53
+ export interface WorkerRefreshRequest {
54
+ machineId: string;
55
+ }
56
+ export interface WorkerRefreshResponse {
57
+ jwt: string;
58
+ }
59
+ export interface WorkerRecoveryRequest {
60
+ machineId: string;
61
+ machineName: string;
62
+ recoverySecret: string;
63
+ }
64
+ export interface WorkerRecoveryResponse {
65
+ jwt: string;
66
+ machineId: string;
67
+ }
68
+ export interface PtyTokenResponse {
69
+ channelToken: string;
70
+ }
71
+ export interface CreateProjectRequest {
72
+ key: string;
73
+ name: string;
74
+ repoUrl: string;
75
+ gitPlatform?: GitPlatform;
76
+ defaultBranch?: string;
77
+ }
78
+ export interface CreateDeveloperRequest {
79
+ name: string;
80
+ gitName: string;
81
+ gitEmail: string;
82
+ password: string;
83
+ role?: DeveloperRole;
84
+ }
85
+ export interface GenerateWorkerTokenRequest {
86
+ label: string;
87
+ }
88
+ export interface GenerateWorkerTokenResponse {
89
+ token: string;
90
+ tokenId: number;
91
+ }
92
+ export interface ApiError {
93
+ error: {
94
+ code: string;
95
+ message: string;
96
+ statusCode: number;
97
+ };
98
+ }
99
+ //# sourceMappingURL=api-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../src/api-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=api-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-types.js","sourceRoot":"","sources":["../src/api-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ export declare const HEARTBEAT_INTERVAL_MS = 30000;
2
+ export declare const HEARTBEAT_TIMEOUT_MS = 180000;
3
+ export declare const EXECUTION_LEASE_TIMEOUT_MS = 180000;
4
+ export declare const GRACE_WINDOW_MS = 600000;
5
+ export declare const CANCEL_ACK_TIMEOUT_MS = 30000;
6
+ export declare const EXECUTE_ACK_TIMEOUT_MS = 30000;
7
+ export declare const TOKEN_REVALIDATION_INTERVAL_MS = 60000;
8
+ export declare const USER_ACCESS_TOKEN_EXPIRY = "15m";
9
+ export declare const USER_REFRESH_TOKEN_EXPIRY = "7d";
10
+ export declare const WORKER_JWT_EXPIRY = "7d";
11
+ export declare const WORKER_JWT_RENEWAL_THRESHOLD_MS = 86400000;
12
+ export declare const WORKER_JWT_GRACE_PERIOD_MS = 120000;
13
+ export declare const CHANNEL_TOKEN_EXPIRY_SEC = 30;
14
+ export declare const MAX_CONCURRENT_TASKS = 20;
15
+ export declare const MAX_TASK_DURATION_MS = 7200000;
16
+ export declare const DEFAULT_STAGE_TIMEOUT_MS = 1800000;
17
+ export declare const DEFAULT_MAX_TURNS = 50;
18
+ export declare const QUEUE_WAIT_ALERT_MS = 600000;
19
+ export declare const PTY_RINGBUFFER_LINES = 10000;
20
+ export declare const PTY_STDIN_MAX_BYTES = 4096;
21
+ export declare const PTY_STDIN_RATE_LIMIT = 100;
22
+ export declare const PTY_IDLE_TIMEOUT_MS = 900000;
23
+ export declare const PTY_IDLE_COMPLETE_MS = 30000;
24
+ export declare const PTY_SILENCE_WINDOW_MS = 5000;
25
+ export declare const SCHEDULER_POLL_INTERVAL_MS = 30000;
26
+ export declare const SCHEDULER_SCAN_LIMIT = 20;
27
+ export declare const DEFAULT_LOAD_THRESHOLD = 0.85;
28
+ export declare const DEFAULT_MAX_SLOTS = 2;
29
+ export declare const NOTIFICATION_DEBOUNCE_MS = 10000;
30
+ export declare const NOTIFICATION_MERGE_WINDOW_MS = 60000;
31
+ export declare const NOTIFICATION_JOB_TTL_MS = 3600000;
32
+ export declare const NOTIFICATION_MAX_RETRIES = 3;
33
+ export declare const WORKSPACE_RETENTION_MS = 86400000;
34
+ export declare const TASK_LOGS_RETENTION_DAYS = 90;
35
+ export declare const EVENT_DEDUP_TTL_SEC = 600;
36
+ export declare const CONFIRM_PENDING_TTL_SEC = 600;
37
+ export declare const DEFAULT_CONFIRM_TIMEOUT_SEC = 1800;
38
+ export declare const MSGID_DEDUP_TTL_SEC = 600;
39
+ export declare const CAS_MAX_RETRIES = 3;
40
+ export declare const TASK_LOGS_BATCH_SIZE = 10;
41
+ export declare const TASK_LOGS_BATCH_INTERVAL_MS = 5000;
42
+ export declare const HEARTBEAT_BATCH_INTERVAL_MS = 30000;
43
+ export declare const WAL_CHECKPOINT_INTERVAL_MS = 3600000;
44
+ export declare const BCRYPT_COST_FACTOR = 12;
45
+ export declare const RECOVERY_RATE_LIMIT = 5;
46
+ export declare const RECOVERY_LOCKOUT_THRESHOLD = 10;
47
+ export declare const RECOVERY_LOCKOUT_DURATION_MS = 1800000;
48
+ export declare const SENSITIVE_PATTERNS: RegExp[];
49
+ export declare const STAGE_DONE_SENTINEL = "[[OVERLORD_STAGE_DONE:";
50
+ export declare const PROTOCOL_VERSION = "1.0";
51
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAC5C,eAAO,MAAM,oBAAoB,SAAU,CAAC;AAC5C,eAAO,MAAM,0BAA0B,SAAU,CAAC;AAClD,eAAO,MAAM,eAAe,SAAU,CAAC;AACvC,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAC5C,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAC7C,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAGrD,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,+BAA+B,WAAa,CAAC;AAC1D,eAAO,MAAM,0BAA0B,SAAU,CAAC;AAClD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAG3C,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,oBAAoB,UAAY,CAAC;AAC9C,eAAO,MAAM,wBAAwB,UAAY,CAAC;AAClD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAG3C,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAC3C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAC3C,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAC3C,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAG3C,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAGnC,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,eAAO,MAAM,4BAA4B,QAAS,CAAC;AACnD,eAAO,MAAM,uBAAuB,UAAY,CAAC;AACjD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAG1C,eAAO,MAAM,sBAAsB,WAAa,CAAC;AACjD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAG3C,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAGvC,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AACjD,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,eAAO,MAAM,0BAA0B,UAAY,CAAC;AAGpD,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,4BAA4B,UAAY,CAAC;AAGtD,eAAO,MAAM,kBAAkB,EAAE,MAAM,EAMtC,CAAC;AAGF,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAG5D,eAAO,MAAM,gBAAgB,QAAQ,CAAC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROTOCOL_VERSION = exports.STAGE_DONE_SENTINEL = exports.SENSITIVE_PATTERNS = exports.RECOVERY_LOCKOUT_DURATION_MS = exports.RECOVERY_LOCKOUT_THRESHOLD = exports.RECOVERY_RATE_LIMIT = exports.BCRYPT_COST_FACTOR = exports.WAL_CHECKPOINT_INTERVAL_MS = exports.HEARTBEAT_BATCH_INTERVAL_MS = exports.TASK_LOGS_BATCH_INTERVAL_MS = exports.TASK_LOGS_BATCH_SIZE = exports.CAS_MAX_RETRIES = exports.MSGID_DEDUP_TTL_SEC = exports.DEFAULT_CONFIRM_TIMEOUT_SEC = exports.CONFIRM_PENDING_TTL_SEC = exports.EVENT_DEDUP_TTL_SEC = exports.TASK_LOGS_RETENTION_DAYS = exports.WORKSPACE_RETENTION_MS = exports.NOTIFICATION_MAX_RETRIES = exports.NOTIFICATION_JOB_TTL_MS = exports.NOTIFICATION_MERGE_WINDOW_MS = exports.NOTIFICATION_DEBOUNCE_MS = exports.DEFAULT_MAX_SLOTS = exports.DEFAULT_LOAD_THRESHOLD = exports.SCHEDULER_SCAN_LIMIT = exports.SCHEDULER_POLL_INTERVAL_MS = exports.PTY_SILENCE_WINDOW_MS = exports.PTY_IDLE_COMPLETE_MS = exports.PTY_IDLE_TIMEOUT_MS = exports.PTY_STDIN_RATE_LIMIT = exports.PTY_STDIN_MAX_BYTES = exports.PTY_RINGBUFFER_LINES = exports.QUEUE_WAIT_ALERT_MS = exports.DEFAULT_MAX_TURNS = exports.DEFAULT_STAGE_TIMEOUT_MS = exports.MAX_TASK_DURATION_MS = exports.MAX_CONCURRENT_TASKS = exports.CHANNEL_TOKEN_EXPIRY_SEC = exports.WORKER_JWT_GRACE_PERIOD_MS = exports.WORKER_JWT_RENEWAL_THRESHOLD_MS = exports.WORKER_JWT_EXPIRY = exports.USER_REFRESH_TOKEN_EXPIRY = exports.USER_ACCESS_TOKEN_EXPIRY = exports.TOKEN_REVALIDATION_INTERVAL_MS = exports.EXECUTE_ACK_TIMEOUT_MS = exports.CANCEL_ACK_TIMEOUT_MS = exports.GRACE_WINDOW_MS = exports.EXECUTION_LEASE_TIMEOUT_MS = exports.HEARTBEAT_TIMEOUT_MS = exports.HEARTBEAT_INTERVAL_MS = void 0;
4
+ // Heartbeat & Timeout
5
+ exports.HEARTBEAT_INTERVAL_MS = 30_000;
6
+ exports.HEARTBEAT_TIMEOUT_MS = 180_000;
7
+ exports.EXECUTION_LEASE_TIMEOUT_MS = 180_000;
8
+ exports.GRACE_WINDOW_MS = 600_000;
9
+ exports.CANCEL_ACK_TIMEOUT_MS = 30_000;
10
+ exports.EXECUTE_ACK_TIMEOUT_MS = 30_000;
11
+ exports.TOKEN_REVALIDATION_INTERVAL_MS = 60_000;
12
+ // JWT
13
+ exports.USER_ACCESS_TOKEN_EXPIRY = '15m';
14
+ exports.USER_REFRESH_TOKEN_EXPIRY = '7d';
15
+ exports.WORKER_JWT_EXPIRY = '7d';
16
+ exports.WORKER_JWT_RENEWAL_THRESHOLD_MS = 86_400_000;
17
+ exports.WORKER_JWT_GRACE_PERIOD_MS = 120_000;
18
+ exports.CHANNEL_TOKEN_EXPIRY_SEC = 30;
19
+ // Task
20
+ exports.MAX_CONCURRENT_TASKS = 20;
21
+ exports.MAX_TASK_DURATION_MS = 7_200_000;
22
+ exports.DEFAULT_STAGE_TIMEOUT_MS = 1_800_000;
23
+ exports.DEFAULT_MAX_TURNS = 50;
24
+ exports.QUEUE_WAIT_ALERT_MS = 600_000;
25
+ // PTY
26
+ exports.PTY_RINGBUFFER_LINES = 10_000;
27
+ exports.PTY_STDIN_MAX_BYTES = 4096;
28
+ exports.PTY_STDIN_RATE_LIMIT = 100;
29
+ exports.PTY_IDLE_TIMEOUT_MS = 900_000;
30
+ exports.PTY_IDLE_COMPLETE_MS = 30_000;
31
+ exports.PTY_SILENCE_WINDOW_MS = 5_000;
32
+ // Scheduler
33
+ exports.SCHEDULER_POLL_INTERVAL_MS = 30_000;
34
+ exports.SCHEDULER_SCAN_LIMIT = 20;
35
+ exports.DEFAULT_LOAD_THRESHOLD = 0.85;
36
+ exports.DEFAULT_MAX_SLOTS = 2;
37
+ // Notification
38
+ exports.NOTIFICATION_DEBOUNCE_MS = 10_000;
39
+ exports.NOTIFICATION_MERGE_WINDOW_MS = 60_000;
40
+ exports.NOTIFICATION_JOB_TTL_MS = 3_600_000;
41
+ exports.NOTIFICATION_MAX_RETRIES = 3;
42
+ // Cleanup
43
+ exports.WORKSPACE_RETENTION_MS = 86_400_000;
44
+ exports.TASK_LOGS_RETENTION_DAYS = 90;
45
+ // Dedup
46
+ exports.EVENT_DEDUP_TTL_SEC = 600;
47
+ exports.CONFIRM_PENDING_TTL_SEC = 600;
48
+ exports.DEFAULT_CONFIRM_TIMEOUT_SEC = 1800;
49
+ exports.MSGID_DEDUP_TTL_SEC = 600;
50
+ // DB
51
+ exports.CAS_MAX_RETRIES = 3;
52
+ exports.TASK_LOGS_BATCH_SIZE = 10;
53
+ exports.TASK_LOGS_BATCH_INTERVAL_MS = 5_000;
54
+ exports.HEARTBEAT_BATCH_INTERVAL_MS = 30_000;
55
+ exports.WAL_CHECKPOINT_INTERVAL_MS = 3_600_000;
56
+ // Security
57
+ exports.BCRYPT_COST_FACTOR = 12;
58
+ exports.RECOVERY_RATE_LIMIT = 5;
59
+ exports.RECOVERY_LOCKOUT_THRESHOLD = 10;
60
+ exports.RECOVERY_LOCKOUT_DURATION_MS = 1_800_000;
61
+ // Sensitive patterns (PTY output sanitization)
62
+ exports.SENSITIVE_PATTERNS = [
63
+ /sk-[a-zA-Z0-9]{20,}/g,
64
+ /ghp_[a-zA-Z0-9]{36}/g,
65
+ /AKIA[0-9A-Z]{16}/g,
66
+ /-----BEGIN (RSA |EC )?PRIVATE KEY-----/g,
67
+ /(?:password|passwd|secret|token|api_key|apikey|access_key|private_key)\s*[=:]\s*\S+/gi,
68
+ ];
69
+ // Sentinel
70
+ exports.STAGE_DONE_SENTINEL = '[[OVERLORD_STAGE_DONE:';
71
+ // Protocol version
72
+ exports.PROTOCOL_VERSION = '1.0';
73
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,sBAAsB;AACT,QAAA,qBAAqB,GAAG,MAAM,CAAC;AAC/B,QAAA,oBAAoB,GAAG,OAAO,CAAC;AAC/B,QAAA,0BAA0B,GAAG,OAAO,CAAC;AACrC,QAAA,eAAe,GAAG,OAAO,CAAC;AAC1B,QAAA,qBAAqB,GAAG,MAAM,CAAC;AAC/B,QAAA,sBAAsB,GAAG,MAAM,CAAC;AAChC,QAAA,8BAA8B,GAAG,MAAM,CAAC;AAErD,MAAM;AACO,QAAA,wBAAwB,GAAG,KAAK,CAAC;AACjC,QAAA,yBAAyB,GAAG,IAAI,CAAC;AACjC,QAAA,iBAAiB,GAAG,IAAI,CAAC;AACzB,QAAA,+BAA+B,GAAG,UAAU,CAAC;AAC7C,QAAA,0BAA0B,GAAG,OAAO,CAAC;AACrC,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAE3C,OAAO;AACM,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAC1B,QAAA,oBAAoB,GAAG,SAAS,CAAC;AACjC,QAAA,wBAAwB,GAAG,SAAS,CAAC;AACrC,QAAA,iBAAiB,GAAG,EAAE,CAAC;AACvB,QAAA,mBAAmB,GAAG,OAAO,CAAC;AAE3C,MAAM;AACO,QAAA,oBAAoB,GAAG,MAAM,CAAC;AAC9B,QAAA,mBAAmB,GAAG,IAAI,CAAC;AAC3B,QAAA,oBAAoB,GAAG,GAAG,CAAC;AAC3B,QAAA,mBAAmB,GAAG,OAAO,CAAC;AAC9B,QAAA,oBAAoB,GAAG,MAAM,CAAC;AAC9B,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAE3C,YAAY;AACC,QAAA,0BAA0B,GAAG,MAAM,CAAC;AACpC,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAC1B,QAAA,sBAAsB,GAAG,IAAI,CAAC;AAC9B,QAAA,iBAAiB,GAAG,CAAC,CAAC;AAEnC,eAAe;AACF,QAAA,wBAAwB,GAAG,MAAM,CAAC;AAClC,QAAA,4BAA4B,GAAG,MAAM,CAAC;AACtC,QAAA,uBAAuB,GAAG,SAAS,CAAC;AACpC,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAE1C,UAAU;AACG,QAAA,sBAAsB,GAAG,UAAU,CAAC;AACpC,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAE3C,QAAQ;AACK,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAC1B,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAC9B,QAAA,2BAA2B,GAAG,IAAI,CAAC;AACnC,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAEvC,KAAK;AACQ,QAAA,eAAe,GAAG,CAAC,CAAC;AACpB,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAC1B,QAAA,2BAA2B,GAAG,KAAK,CAAC;AACpC,QAAA,2BAA2B,GAAG,MAAM,CAAC;AACrC,QAAA,0BAA0B,GAAG,SAAS,CAAC;AAEpD,WAAW;AACE,QAAA,kBAAkB,GAAG,EAAE,CAAC;AACxB,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAChC,QAAA,4BAA4B,GAAG,SAAS,CAAC;AAEtD,+CAA+C;AAClC,QAAA,kBAAkB,GAAa;IAC1C,sBAAsB;IACtB,sBAAsB;IACtB,mBAAmB;IACnB,yCAAyC;IACzC,uFAAuF;CACxF,CAAC;AAEF,WAAW;AACE,QAAA,mBAAmB,GAAG,wBAAwB,CAAC;AAE5D,mBAAmB;AACN,QAAA,gBAAgB,GAAG,KAAK,CAAC"}
@@ -0,0 +1,78 @@
1
+ export declare enum TaskStatus {
2
+ QUEUED = "QUEUED",
3
+ ASSIGNED = "ASSIGNED",
4
+ RUNNING = "RUNNING",
5
+ SUSPENDED = "SUSPENDED",
6
+ COMPLETED = "COMPLETED",
7
+ FAILED = "FAILED",
8
+ CANCELLED = "CANCELLED"
9
+ }
10
+ export declare enum MachineStatus {
11
+ ONLINE = "online",
12
+ OFFLINE = "offline",
13
+ DRAINING = "draining"
14
+ }
15
+ export declare enum DeveloperRole {
16
+ DEVELOPER = "developer",
17
+ LEAD = "lead",
18
+ ADMIN = "admin"
19
+ }
20
+ export declare enum ProjectRole {
21
+ MAINTAINER = "maintainer",
22
+ MEMBER = "member"
23
+ }
24
+ export declare enum AgentType {
25
+ CLAUDE = "claude",
26
+ CURSOR = "cursor",
27
+ CODEX = "codex",
28
+ CUSTOM = "custom"
29
+ }
30
+ export declare enum Platform {
31
+ LARK = "lark",
32
+ SLACK = "slack",
33
+ DISCORD = "discord",
34
+ WEB = "web"
35
+ }
36
+ export declare enum CommandType {
37
+ DEVELOP = "develop",
38
+ PROGRESS = "progress",
39
+ CANCEL = "cancel",
40
+ RETRY = "retry",
41
+ LIST = "list",
42
+ WORKSPACE = "workspace",
43
+ LOGS = "logs",
44
+ CONFIRM = "confirm",
45
+ DRAIN = "drain",
46
+ UNDRAIN = "undrain"
47
+ }
48
+ export declare enum SessionStatus {
49
+ ACTIVE = "active",
50
+ COMPLETED = "completed",
51
+ FAILED = "failed"
52
+ }
53
+ export declare enum PtyOwner {
54
+ PIPELINE = "pipeline",
55
+ HUMAN = "human"
56
+ }
57
+ export declare enum TokenStatus {
58
+ ACTIVE = "active",
59
+ REVOKED = "revoked",
60
+ EXPIRED = "expired"
61
+ }
62
+ export declare enum TokenPurpose {
63
+ ENROLLMENT = "enrollment",
64
+ RECOVERY = "recovery"
65
+ }
66
+ export declare enum TaskLogType {
67
+ INFO = "info",
68
+ ERROR = "error",
69
+ STAGE_CHANGE = "stage_change",
70
+ WARNING = "warning",
71
+ SYSTEM = "system"
72
+ }
73
+ export declare enum GitPlatform {
74
+ GITLAB = "gitlab",
75
+ GITHUB = "github",
76
+ GITEA = "gitea"
77
+ }
78
+ //# sourceMappingURL=enums.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,oBAAY,aAAa;IACvB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,oBAAY,WAAW;IACrB,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,oBAAY,SAAS;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,GAAG,QAAQ;CACZ;AAED,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,oBAAY,QAAQ;IAClB,QAAQ,aAAa;IACrB,KAAK,UAAU;CAChB;AAED,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,QAAQ,aAAa;CACtB;AAED,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB"}
package/dist/enums.js ADDED
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GitPlatform = exports.TaskLogType = exports.TokenPurpose = exports.TokenStatus = exports.PtyOwner = exports.SessionStatus = exports.CommandType = exports.Platform = exports.AgentType = exports.ProjectRole = exports.DeveloperRole = exports.MachineStatus = exports.TaskStatus = void 0;
4
+ var TaskStatus;
5
+ (function (TaskStatus) {
6
+ TaskStatus["QUEUED"] = "QUEUED";
7
+ TaskStatus["ASSIGNED"] = "ASSIGNED";
8
+ TaskStatus["RUNNING"] = "RUNNING";
9
+ TaskStatus["SUSPENDED"] = "SUSPENDED";
10
+ TaskStatus["COMPLETED"] = "COMPLETED";
11
+ TaskStatus["FAILED"] = "FAILED";
12
+ TaskStatus["CANCELLED"] = "CANCELLED";
13
+ })(TaskStatus || (exports.TaskStatus = TaskStatus = {}));
14
+ var MachineStatus;
15
+ (function (MachineStatus) {
16
+ MachineStatus["ONLINE"] = "online";
17
+ MachineStatus["OFFLINE"] = "offline";
18
+ MachineStatus["DRAINING"] = "draining";
19
+ })(MachineStatus || (exports.MachineStatus = MachineStatus = {}));
20
+ var DeveloperRole;
21
+ (function (DeveloperRole) {
22
+ DeveloperRole["DEVELOPER"] = "developer";
23
+ DeveloperRole["LEAD"] = "lead";
24
+ DeveloperRole["ADMIN"] = "admin";
25
+ })(DeveloperRole || (exports.DeveloperRole = DeveloperRole = {}));
26
+ var ProjectRole;
27
+ (function (ProjectRole) {
28
+ ProjectRole["MAINTAINER"] = "maintainer";
29
+ ProjectRole["MEMBER"] = "member";
30
+ })(ProjectRole || (exports.ProjectRole = ProjectRole = {}));
31
+ var AgentType;
32
+ (function (AgentType) {
33
+ AgentType["CLAUDE"] = "claude";
34
+ AgentType["CURSOR"] = "cursor";
35
+ AgentType["CODEX"] = "codex";
36
+ AgentType["CUSTOM"] = "custom";
37
+ })(AgentType || (exports.AgentType = AgentType = {}));
38
+ var Platform;
39
+ (function (Platform) {
40
+ Platform["LARK"] = "lark";
41
+ Platform["SLACK"] = "slack";
42
+ Platform["DISCORD"] = "discord";
43
+ Platform["WEB"] = "web";
44
+ })(Platform || (exports.Platform = Platform = {}));
45
+ var CommandType;
46
+ (function (CommandType) {
47
+ CommandType["DEVELOP"] = "develop";
48
+ CommandType["PROGRESS"] = "progress";
49
+ CommandType["CANCEL"] = "cancel";
50
+ CommandType["RETRY"] = "retry";
51
+ CommandType["LIST"] = "list";
52
+ CommandType["WORKSPACE"] = "workspace";
53
+ CommandType["LOGS"] = "logs";
54
+ CommandType["CONFIRM"] = "confirm";
55
+ CommandType["DRAIN"] = "drain";
56
+ CommandType["UNDRAIN"] = "undrain";
57
+ })(CommandType || (exports.CommandType = CommandType = {}));
58
+ var SessionStatus;
59
+ (function (SessionStatus) {
60
+ SessionStatus["ACTIVE"] = "active";
61
+ SessionStatus["COMPLETED"] = "completed";
62
+ SessionStatus["FAILED"] = "failed";
63
+ })(SessionStatus || (exports.SessionStatus = SessionStatus = {}));
64
+ var PtyOwner;
65
+ (function (PtyOwner) {
66
+ PtyOwner["PIPELINE"] = "pipeline";
67
+ PtyOwner["HUMAN"] = "human";
68
+ })(PtyOwner || (exports.PtyOwner = PtyOwner = {}));
69
+ var TokenStatus;
70
+ (function (TokenStatus) {
71
+ TokenStatus["ACTIVE"] = "active";
72
+ TokenStatus["REVOKED"] = "revoked";
73
+ TokenStatus["EXPIRED"] = "expired";
74
+ })(TokenStatus || (exports.TokenStatus = TokenStatus = {}));
75
+ var TokenPurpose;
76
+ (function (TokenPurpose) {
77
+ TokenPurpose["ENROLLMENT"] = "enrollment";
78
+ TokenPurpose["RECOVERY"] = "recovery";
79
+ })(TokenPurpose || (exports.TokenPurpose = TokenPurpose = {}));
80
+ var TaskLogType;
81
+ (function (TaskLogType) {
82
+ TaskLogType["INFO"] = "info";
83
+ TaskLogType["ERROR"] = "error";
84
+ TaskLogType["STAGE_CHANGE"] = "stage_change";
85
+ TaskLogType["WARNING"] = "warning";
86
+ TaskLogType["SYSTEM"] = "system";
87
+ })(TaskLogType || (exports.TaskLogType = TaskLogType = {}));
88
+ var GitPlatform;
89
+ (function (GitPlatform) {
90
+ GitPlatform["GITLAB"] = "gitlab";
91
+ GitPlatform["GITHUB"] = "github";
92
+ GitPlatform["GITEA"] = "gitea";
93
+ })(GitPlatform || (exports.GitPlatform = GitPlatform = {}));
94
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;IACrB,iCAAmB,CAAA;IACnB,qCAAuB,CAAA;IACvB,qCAAuB,CAAA;IACvB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;AACzB,CAAC,EARW,UAAU,0BAAV,UAAU,QAQrB;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;AACvB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,wCAAuB,CAAA;IACvB,8BAAa,CAAA;IACb,gCAAe,CAAA;AACjB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,gCAAiB,CAAA;AACnB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,4BAAe,CAAA;IACf,8BAAiB,CAAA;AACnB,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB;AAED,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,+BAAmB,CAAA;IACnB,uBAAW,CAAA;AACb,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AAED,IAAY,WAWX;AAXD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,sCAAuB,CAAA;IACvB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,kCAAmB,CAAA;AACrB,CAAC,EAXW,WAAW,2BAAX,WAAW,QAWtB;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,wCAAuB,CAAA;IACvB,kCAAiB,CAAA;AACnB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;AACjB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;AACrB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,yCAAyB,CAAA;IACzB,qCAAqB,CAAA;AACvB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAED,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,4CAA6B,CAAA;IAC7B,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;AACnB,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;AACjB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}
@@ -0,0 +1,6 @@
1
+ export * from './enums.js';
2
+ export * from './types.js';
3
+ export * from './ws-frames.js';
4
+ export * from './api-types.js';
5
+ export * from './constants.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./enums.js"), exports);
18
+ __exportStar(require("./types.js"), exports);
19
+ __exportStar(require("./ws-frames.js"), exports);
20
+ __exportStar(require("./api-types.js"), exports);
21
+ __exportStar(require("./constants.js"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B;AAC3B,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B"}
@@ -0,0 +1,260 @@
1
+ import type { TaskStatus, MachineStatus, DeveloperRole, AgentType, Platform, CommandType, SessionStatus, PtyOwner, TokenStatus, TokenPurpose, GitPlatform } from './enums.js';
2
+ export interface Command {
3
+ type: CommandType;
4
+ args: {
5
+ description?: string;
6
+ project?: string;
7
+ machine?: string;
8
+ developer?: number;
9
+ app?: string;
10
+ taskId?: number;
11
+ };
12
+ platform: Platform;
13
+ user: {
14
+ id: number;
15
+ name: string;
16
+ platformUid: string;
17
+ };
18
+ chat: {
19
+ id: string;
20
+ platformChatId: string;
21
+ };
22
+ source: {
23
+ appId: string;
24
+ chatId: string;
25
+ msgId: string;
26
+ };
27
+ eventId: string;
28
+ }
29
+ export interface Task {
30
+ id: number;
31
+ description: string;
32
+ fingerprint: string | null;
33
+ status: TaskStatus;
34
+ projectKey: string;
35
+ machineId: string | null;
36
+ developerId: number | null;
37
+ app: string | null;
38
+ branch: string | null;
39
+ mrUrl: string | null;
40
+ mrNumber: number | null;
41
+ currentStage: string | null;
42
+ currentSessionId: string | null;
43
+ errorMessage: string | null;
44
+ retryCount: number;
45
+ revision: number;
46
+ configSnapshot: string | null;
47
+ sourcePlatform: string | null;
48
+ sourceMsgId: string | null;
49
+ notificationMsgId: string | null;
50
+ sourceChatId: string | null;
51
+ sourceAppId: string | null;
52
+ createdBy: number | null;
53
+ createdAt: string;
54
+ assignedAt: string | null;
55
+ startedAt: string | null;
56
+ completedAt: string | null;
57
+ updatedAt: string;
58
+ }
59
+ export interface ConfigSnapshot {
60
+ repoUrl: string;
61
+ gitPlatform: GitPlatform;
62
+ defaultBranch: string;
63
+ workspaceRoot: string | null;
64
+ setupCommands: string | null;
65
+ testCommand: string | null;
66
+ agentType: AgentType;
67
+ agentCommand: string | null;
68
+ agentEnv: string | null;
69
+ allowedTools: string | null;
70
+ maxTurns: number;
71
+ skillsPath: string | null;
72
+ pipeline: string | null;
73
+ ptyOutputFilter: number;
74
+ }
75
+ export interface PipelineConfig {
76
+ stages: StageConfig[];
77
+ defaults: StageDefaults;
78
+ }
79
+ export type StageConfirmMode = 'confirm' | 'choice' | 'input';
80
+ export interface StageChoiceOption {
81
+ value: string;
82
+ label: string;
83
+ }
84
+ export interface StageConfig {
85
+ name: string;
86
+ command?: string;
87
+ type?: StageConfirmMode;
88
+ timeout?: number;
89
+ retries?: number;
90
+ confirm?: boolean;
91
+ prompt?: string;
92
+ choices?: StageChoiceOption[];
93
+ default_choice?: string;
94
+ confirm_timeout?: number;
95
+ irreversible?: boolean;
96
+ onFailure?: {
97
+ goto: string;
98
+ maxLoops: number;
99
+ };
100
+ env?: Record<string, string>;
101
+ }
102
+ export interface StageDefaults {
103
+ timeout: number;
104
+ retries: number;
105
+ confirm: boolean;
106
+ irreversible: boolean;
107
+ }
108
+ export interface Machine {
109
+ id: string;
110
+ name: string;
111
+ host: string;
112
+ port: number;
113
+ tokenId: number;
114
+ os: string | null;
115
+ cpuCores: number | null;
116
+ memoryGb: number | null;
117
+ maxSlots: number;
118
+ activeSlots: number;
119
+ cpuUsage: number;
120
+ memoryUsage: number;
121
+ diskUsage: number;
122
+ loadThreshold: number;
123
+ tags: string[];
124
+ capabilities: string[];
125
+ recoverySecretHash: string | null;
126
+ protocolVersion: string;
127
+ lastHeartbeat: string | null;
128
+ status: MachineStatus;
129
+ }
130
+ export interface Developer {
131
+ id: number;
132
+ name: string;
133
+ gitName: string;
134
+ gitEmail: string;
135
+ platformUids: Record<string, string>;
136
+ passwordHash: string | null;
137
+ totpSecret: string | null;
138
+ role: DeveloperRole;
139
+ status: string;
140
+ createdAt: string;
141
+ }
142
+ /** Developer type for API responses — omits sensitive fields. */
143
+ export type DeveloperPublic = Omit<Developer, 'passwordHash' | 'totpSecret'>;
144
+ export interface Project {
145
+ key: string;
146
+ name: string;
147
+ aliases: string[];
148
+ repoUrl: string;
149
+ gitPlatform: GitPlatform;
150
+ defaultBranch: string;
151
+ workspaceRoot: string | null;
152
+ setupCommands: string | null;
153
+ testCommand: string | null;
154
+ agentType: AgentType;
155
+ agentCommand: string | null;
156
+ agentEnv: string | null;
157
+ skillsPath: string | null;
158
+ allowedTools: string | null;
159
+ maxTurns: number;
160
+ pipeline: string | null;
161
+ ptyOutputFilter: number;
162
+ isDefault: boolean;
163
+ createdAt: string;
164
+ }
165
+ export interface AgentSession {
166
+ id: number;
167
+ taskId: number;
168
+ sessionId: string;
169
+ agentType: AgentType;
170
+ stage: string;
171
+ status: SessionStatus;
172
+ ptyPid: number | null;
173
+ ptyOwner: PtyOwner;
174
+ ownerRevision: number;
175
+ exitCode: number | null;
176
+ outputLines: number;
177
+ revision: number;
178
+ startedAt: string;
179
+ finishedAt: string | null;
180
+ }
181
+ export interface Workspace {
182
+ id: number;
183
+ taskId: number;
184
+ machineId: string;
185
+ projectKey: string;
186
+ developerId: number;
187
+ path: string;
188
+ branch: string | null;
189
+ status: string;
190
+ expiresAt: string | null;
191
+ }
192
+ export interface WorkerToken {
193
+ id: number;
194
+ tokenHash: string;
195
+ label: string;
196
+ createdBy: number;
197
+ status: TokenStatus;
198
+ purpose: TokenPurpose;
199
+ usedAt: string | null;
200
+ expiresAt: string | null;
201
+ revokedAt: string | null;
202
+ createdAt: string;
203
+ }
204
+ export interface NotificationRecord {
205
+ id: number;
206
+ developerId: number;
207
+ type: string;
208
+ title: string;
209
+ body: string | null;
210
+ resourceType: string | null;
211
+ resourceId: string | null;
212
+ isRead: boolean;
213
+ createdAt: string;
214
+ }
215
+ export interface TaskLog {
216
+ id: number;
217
+ taskId: number;
218
+ type: string;
219
+ message: string;
220
+ timestamp: string;
221
+ }
222
+ export interface AuditLog {
223
+ id: number;
224
+ userId: number | null;
225
+ action: string;
226
+ resource: string;
227
+ detail: string | null;
228
+ ip: string | null;
229
+ createdAt: string;
230
+ }
231
+ export interface BotInstance {
232
+ id: number;
233
+ platform: string;
234
+ appId: string;
235
+ appSecret: string;
236
+ webhookToken: string | null;
237
+ name: string;
238
+ status: string;
239
+ createdAt: string;
240
+ }
241
+ export interface ChatBinding {
242
+ id: number;
243
+ botInstanceId: number;
244
+ platformChatId: string;
245
+ projectKey: string | null;
246
+ chatName: string | null;
247
+ createdAt: string;
248
+ }
249
+ export interface ProjectMember {
250
+ id: number;
251
+ projectKey: string;
252
+ developerId: number;
253
+ role: string;
254
+ createdAt: string;
255
+ }
256
+ export interface PaginatedResult<T> {
257
+ data: T[];
258
+ nextCursor: string | null;
259
+ }
260
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,161 @@
1
+ import type { ConfigSnapshot, StageConfirmMode, StageChoiceOption } from './types.js';
2
+ export type WorkerUpFrame = WorkerAuthFrame | WorkerHeartbeatFrame | WorkerAckFrame | WorkerReconnectFrame | WorkerProgressFrame | WorkerRecoverySecretAckFrame | StageConfirmRequestFrame;
3
+ export interface WorkerAuthFrame {
4
+ type: 'auth';
5
+ token: string;
6
+ protocolVersion: string;
7
+ }
8
+ export interface WorkerHeartbeatFrame {
9
+ type: 'heartbeat';
10
+ machineId: string;
11
+ timestamp: string;
12
+ metrics: {
13
+ cpuUsage: number;
14
+ memoryUsage: number;
15
+ diskUsage: number;
16
+ activeSlots: number;
17
+ };
18
+ capabilities: string[];
19
+ }
20
+ export interface WorkerAckFrame {
21
+ type: 'ack';
22
+ msgId: string;
23
+ payload?: Record<string, unknown>;
24
+ }
25
+ export interface WorkerReconnectFrame {
26
+ type: 'reconnect';
27
+ machineId: string;
28
+ tasks: Array<{
29
+ taskId: number;
30
+ localStatus: 'still_running' | 'completed_locally' | 'failed_locally';
31
+ currentStage?: string;
32
+ branch?: string;
33
+ mrUrl?: string;
34
+ errorMessage?: string;
35
+ }>;
36
+ }
37
+ export interface WorkerProgressFrame {
38
+ type: 'progress';
39
+ taskId: number;
40
+ stage: string;
41
+ status: string;
42
+ message?: string;
43
+ }
44
+ export interface WorkerRecoverySecretAckFrame {
45
+ type: 'recovery_secret_ack';
46
+ }
47
+ export type DispatcherDownFrame = HeartbeatAckFrame | ExecuteTaskFrame | CancelTaskFrame | CleanupWorkspaceFrame | ServerShuttingDownFrame | RecoverySecretBootstrapFrame | ResumeTaskFrame | StartTunnelFrame | StopTunnelFrame | StageConfirmResponseFrame;
48
+ export interface HeartbeatAckFrame {
49
+ type: 'heartbeat_ack';
50
+ timestamp: string;
51
+ serverTime: string;
52
+ }
53
+ export interface ExecuteTaskFrame {
54
+ type: 'execute';
55
+ msgId: string;
56
+ taskId: number;
57
+ description: string;
58
+ projectKey: string;
59
+ configSnapshot: ConfigSnapshot;
60
+ developer: {
61
+ gitName: string;
62
+ gitEmail: string;
63
+ };
64
+ channelToken: string;
65
+ }
66
+ export interface CancelTaskFrame {
67
+ type: 'cancel';
68
+ msgId: string;
69
+ taskId: number;
70
+ }
71
+ export interface CleanupWorkspaceFrame {
72
+ type: 'cleanup_workspace';
73
+ msgId: string;
74
+ taskId: number;
75
+ workspacePath: string;
76
+ }
77
+ export interface ServerShuttingDownFrame {
78
+ type: 'server_shutting_down';
79
+ }
80
+ export interface RecoverySecretBootstrapFrame {
81
+ type: 'recovery_secret_bootstrap';
82
+ recoverySecret: string;
83
+ }
84
+ export interface ResumeTaskFrame {
85
+ type: 'resume';
86
+ msgId: string;
87
+ taskId: number;
88
+ }
89
+ export interface StartTunnelFrame {
90
+ type: 'start_tunnel';
91
+ msgId: string;
92
+ taskId: number;
93
+ workspacePath: string;
94
+ }
95
+ export interface StopTunnelFrame {
96
+ type: 'stop_tunnel';
97
+ msgId: string;
98
+ taskId: number;
99
+ reason: string;
100
+ }
101
+ export interface StageConfirmRequestFrame {
102
+ type: 'stage_confirm_request';
103
+ taskId: number;
104
+ stageIndex: number;
105
+ mode: StageConfirmMode;
106
+ prompt?: string;
107
+ choices?: StageChoiceOption[];
108
+ timeout: number;
109
+ }
110
+ export interface StageConfirmResponseFrame {
111
+ type: 'stage_confirm_response';
112
+ taskId: number;
113
+ stageIndex: number;
114
+ result: string;
115
+ }
116
+ export type PtyFrame = PtyAuthFrame | PtyDataFrame | PtyResizeFrame | PtyRequestTakeoverFrame | PtyTakeoverGrantedFrame | PtyTakeoverDeniedFrame | PtyForceTakeoverFrame | PtyReleaseTakeoverFrame | PtyWriterRevokedFrame | PtyFramesDroppedFrame | PtyErrorFrame;
117
+ export interface PtyFramesDroppedFrame {
118
+ type: 'frames_dropped';
119
+ count: number;
120
+ }
121
+ export interface PtyAuthFrame {
122
+ type: 'auth';
123
+ token?: string;
124
+ workerJwt?: string;
125
+ channelToken: string;
126
+ }
127
+ export interface PtyDataFrame {
128
+ type: 'data';
129
+ data: string;
130
+ }
131
+ export interface PtyResizeFrame {
132
+ type: 'resize';
133
+ cols: number;
134
+ rows: number;
135
+ }
136
+ export interface PtyRequestTakeoverFrame {
137
+ type: 'request_takeover';
138
+ sessionId: string;
139
+ }
140
+ export interface PtyTakeoverGrantedFrame {
141
+ type: 'takeover_granted';
142
+ }
143
+ export interface PtyTakeoverDeniedFrame {
144
+ type: 'takeover_denied';
145
+ reason: string;
146
+ }
147
+ export interface PtyForceTakeoverFrame {
148
+ type: 'force_takeover';
149
+ }
150
+ export interface PtyReleaseTakeoverFrame {
151
+ type: 'release_takeover';
152
+ }
153
+ export interface PtyWriterRevokedFrame {
154
+ type: 'writer_revoked';
155
+ }
156
+ export interface PtyErrorFrame {
157
+ type: 'error';
158
+ code: string;
159
+ message: string;
160
+ }
161
+ //# sourceMappingURL=ws-frames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-frames.d.ts","sourceRoot":"","sources":["../src/ws-frames.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ws-frames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-frames.js","sourceRoot":"","sources":["../src/ws-frames.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "@overlordai/protocol",
3
+ "version": "1.0.0",
4
+ "license": "MIT",
5
+ "files": [
6
+ "dist"
7
+ ],
8
+ "main": "dist/index.js",
9
+ "types": "dist/index.d.ts",
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "test": "echo \"no tests yet\"",
13
+ "lint": "tsc --noEmit"
14
+ }
15
+ }