@pocketcoder/shared 0.0.2
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/LICENSE +53 -0
- package/dist/constants/__tests__/limits.test.d.ts +2 -0
- package/dist/constants/__tests__/limits.test.d.ts.map +1 -0
- package/dist/constants/__tests__/limits.test.js +68 -0
- package/dist/constants/__tests__/limits.test.js.map +1 -0
- package/dist/constants/errors.d.ts +48 -0
- package/dist/constants/errors.d.ts.map +1 -0
- package/dist/constants/errors.js +61 -0
- package/dist/constants/errors.js.map +1 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +4 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/limits.d.ts +41 -0
- package/dist/constants/limits.d.ts.map +1 -0
- package/dist/constants/limits.js +46 -0
- package/dist/constants/limits.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/types/__tests__/auth-messages.test.d.ts +2 -0
- package/dist/types/__tests__/auth-messages.test.d.ts.map +1 -0
- package/dist/types/__tests__/auth-messages.test.js +94 -0
- package/dist/types/__tests__/auth-messages.test.js.map +1 -0
- package/dist/types/__tests__/messages.test.d.ts +2 -0
- package/dist/types/__tests__/messages.test.d.ts.map +1 -0
- package/dist/types/__tests__/messages.test.js +329 -0
- package/dist/types/__tests__/messages.test.js.map +1 -0
- package/dist/types/__tests__/relay-types.test.d.ts +2 -0
- package/dist/types/__tests__/relay-types.test.d.ts.map +1 -0
- package/dist/types/__tests__/relay-types.test.js +69 -0
- package/dist/types/__tests__/relay-types.test.js.map +1 -0
- package/dist/types/auth-messages.d.ts +49 -0
- package/dist/types/auth-messages.d.ts.map +1 -0
- package/dist/types/auth-messages.js +9 -0
- package/dist/types/auth-messages.js.map +1 -0
- package/dist/types/database.d.ts +259 -0
- package/dist/types/database.d.ts.map +1 -0
- package/dist/types/database.js +6 -0
- package/dist/types/database.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/messages.d.ts +821 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +122 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/relay.d.ts +62 -0
- package/dist/types/relay.d.ts.map +1 -0
- package/dist/types/relay.js +8 -0
- package/dist/types/relay.js.map +1 -0
- package/package.json +49 -0
- package/src/constants/__tests__/limits.test.ts +93 -0
- package/src/constants/errors.ts +71 -0
- package/src/constants/index.ts +3 -0
- package/src/constants/limits.ts +53 -0
- package/src/index.ts +3 -0
- package/src/types/__tests__/auth-messages.test.ts +108 -0
- package/src/types/__tests__/messages.test.ts +382 -0
- package/src/types/__tests__/relay-types.test.ts +82 -0
- package/src/types/auth-messages.ts +66 -0
- package/src/types/database.ts +320 -0
- package/src/types/index.ts +5 -0
- package/src/types/messages.ts +1310 -0
- package/src/types/relay.ts +79 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSocket message types for communication between daemon, relay, and client.
|
|
3
|
+
* All types match the PRD exactly.
|
|
4
|
+
*/
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Type guards
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
function isObject(value) {
|
|
9
|
+
return typeof value === "object" && value !== null;
|
|
10
|
+
}
|
|
11
|
+
function hasType(value) {
|
|
12
|
+
return isObject(value) && typeof value.type === "string";
|
|
13
|
+
}
|
|
14
|
+
function hasRequestId(value) {
|
|
15
|
+
return isObject(value) && typeof value.requestId === "string";
|
|
16
|
+
}
|
|
17
|
+
function hasSessionId(value) {
|
|
18
|
+
return isObject(value) && typeof value.sessionId === "string";
|
|
19
|
+
}
|
|
20
|
+
function hasPayload(value) {
|
|
21
|
+
return isObject(value) && isObject(value.payload);
|
|
22
|
+
}
|
|
23
|
+
/** Validate that value looks like an fs_list request */
|
|
24
|
+
export function isFsListRequest(value) {
|
|
25
|
+
return (hasType(value) &&
|
|
26
|
+
value.type === "fs_list" &&
|
|
27
|
+
hasRequestId(value) &&
|
|
28
|
+
hasSessionId(value) &&
|
|
29
|
+
hasPayload(value) &&
|
|
30
|
+
typeof value.payload.path === "string");
|
|
31
|
+
}
|
|
32
|
+
/** Validate that value looks like an fs_read request */
|
|
33
|
+
export function isFsReadRequest(value) {
|
|
34
|
+
return (hasType(value) &&
|
|
35
|
+
value.type === "fs_read" &&
|
|
36
|
+
hasRequestId(value) &&
|
|
37
|
+
hasSessionId(value) &&
|
|
38
|
+
hasPayload(value) &&
|
|
39
|
+
typeof value.payload.path === "string");
|
|
40
|
+
}
|
|
41
|
+
/** Validate that value looks like a git_status request */
|
|
42
|
+
export function isGitStatusRequest(value) {
|
|
43
|
+
return (hasType(value) && value.type === "git_status" && hasRequestId(value) && hasSessionId(value));
|
|
44
|
+
}
|
|
45
|
+
/** Validate that value looks like an agent_message request */
|
|
46
|
+
export function isAgentMessageRequest(value) {
|
|
47
|
+
return (hasType(value) &&
|
|
48
|
+
value.type === "agent_message" &&
|
|
49
|
+
hasRequestId(value) &&
|
|
50
|
+
hasSessionId(value) &&
|
|
51
|
+
hasPayload(value) &&
|
|
52
|
+
typeof value.payload.agentSessionId === "string" &&
|
|
53
|
+
typeof value.payload.content === "string");
|
|
54
|
+
}
|
|
55
|
+
/** Validate that value looks like an error response */
|
|
56
|
+
export function isErrorResponse(value) {
|
|
57
|
+
if (!hasType(value) || value.type !== "error" || !hasRequestId(value)) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
const v = value;
|
|
61
|
+
return isObject(v.error) && typeof v.error.code === "string";
|
|
62
|
+
}
|
|
63
|
+
/** Validate that value is a valid message (has at least a type field) */
|
|
64
|
+
export function isMessage(value) {
|
|
65
|
+
return hasType(value);
|
|
66
|
+
}
|
|
67
|
+
/** Validate that value is a request message (has type, requestId, and usually sessionId) */
|
|
68
|
+
export function isRequestMessage(value) {
|
|
69
|
+
return hasType(value) && hasRequestId(value);
|
|
70
|
+
}
|
|
71
|
+
/** Validate that value is an AgentEvent with type 'init' */
|
|
72
|
+
export function isAgentInitEvent(value) {
|
|
73
|
+
return (isObject(value) &&
|
|
74
|
+
value.type === "init" &&
|
|
75
|
+
typeof value.sessionId === "string" &&
|
|
76
|
+
Array.isArray(value.tools) &&
|
|
77
|
+
typeof value.model === "string");
|
|
78
|
+
}
|
|
79
|
+
/** Validate that value is an AgentEvent with type 'done' */
|
|
80
|
+
export function isAgentDoneEvent(value) {
|
|
81
|
+
if (!isObject(value) || value.type !== "done") {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
const v = value;
|
|
85
|
+
// usage is optional but must be correct shape if present
|
|
86
|
+
if (v.usage !== undefined) {
|
|
87
|
+
if (!isObject(v.usage) ||
|
|
88
|
+
typeof v.usage.input_tokens !== "number" ||
|
|
89
|
+
typeof v.usage.output_tokens !== "number") {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// error is optional but must be string if present
|
|
94
|
+
if (v.error !== undefined && typeof v.error !== "string") {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
// cancelled is optional but must be boolean if present
|
|
98
|
+
if (v.cancelled !== undefined && typeof v.cancelled !== "boolean") {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
/** Validate that value is any valid AgentEvent (has a recognized type) */
|
|
104
|
+
export function isAgentEvent(value) {
|
|
105
|
+
if (!isObject(value) || typeof value.type !== "string") {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
const validTypes = [
|
|
109
|
+
"init",
|
|
110
|
+
"thinking",
|
|
111
|
+
"text",
|
|
112
|
+
"tool_use",
|
|
113
|
+
"tool_complete",
|
|
114
|
+
"file_edit",
|
|
115
|
+
"file_create",
|
|
116
|
+
"file_delete",
|
|
117
|
+
"prompt",
|
|
118
|
+
"done",
|
|
119
|
+
];
|
|
120
|
+
return validTypes.includes(value.type);
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relay-specific types shared between relay, daemon, and client.
|
|
3
|
+
* Covers connection state, authentication handshake, and daemon status messages.
|
|
4
|
+
*
|
|
5
|
+
* See PRD.md: "Client Handshake Flow", "Daemon Registration", and "Connection Status" sections.
|
|
6
|
+
*/
|
|
7
|
+
import type { MessageError } from "./messages.js";
|
|
8
|
+
/**
|
|
9
|
+
* Represents a connected daemon's state in the relay.
|
|
10
|
+
* Registry key: `${userId}:${machineKey}`
|
|
11
|
+
*
|
|
12
|
+
* The `ws` field is typed as `unknown` since the shared package doesn't
|
|
13
|
+
* depend on the `ws` library. The relay casts it to `WebSocket` at runtime.
|
|
14
|
+
*/
|
|
15
|
+
export interface DaemonConnection {
|
|
16
|
+
ws: unknown;
|
|
17
|
+
userId: string;
|
|
18
|
+
machineKey: string;
|
|
19
|
+
projects: Set<string>;
|
|
20
|
+
connectedAt: Date;
|
|
21
|
+
lastPongAt: Date;
|
|
22
|
+
}
|
|
23
|
+
/** Client sends to authenticate on connect */
|
|
24
|
+
export interface ClientAuthMessage {
|
|
25
|
+
type: "client_auth";
|
|
26
|
+
payload: {
|
|
27
|
+
token: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** Relay responds with auth result */
|
|
31
|
+
export interface ClientAuthResponse {
|
|
32
|
+
type: "client_auth_response";
|
|
33
|
+
payload: {
|
|
34
|
+
userId?: string;
|
|
35
|
+
authenticated: boolean;
|
|
36
|
+
};
|
|
37
|
+
error?: MessageError;
|
|
38
|
+
}
|
|
39
|
+
/** Relay pushes to clients when a daemon connects or disconnects */
|
|
40
|
+
export interface DaemonStatusMessage {
|
|
41
|
+
type: "daemon_status";
|
|
42
|
+
payload: {
|
|
43
|
+
machineKey: string;
|
|
44
|
+
connected: boolean;
|
|
45
|
+
lastSeen?: string;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Initial daemon status pushed after client_auth, containing all user's machines.
|
|
50
|
+
* Uses `machines` array format instead of single machine.
|
|
51
|
+
*/
|
|
52
|
+
export interface DaemonStatusBatchMessage {
|
|
53
|
+
type: "daemon_status";
|
|
54
|
+
payload: {
|
|
55
|
+
machines: Array<{
|
|
56
|
+
machineKey: string;
|
|
57
|
+
connected: boolean;
|
|
58
|
+
lastSeen?: string;
|
|
59
|
+
}>;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=relay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/types/relay.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAMlD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC;CAClB;AAMD,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAMD,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE;QACP,QAAQ,EAAE,KAAK,CAAC;YACd,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,OAAO,CAAC;YACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;CACH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relay-specific types shared between relay, daemon, and client.
|
|
3
|
+
* Covers connection state, authentication handshake, and daemon status messages.
|
|
4
|
+
*
|
|
5
|
+
* See PRD.md: "Client Handshake Flow", "Daemon Registration", and "Connection Status" sections.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=relay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/types/relay.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pocketcoder/shared",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "Shared types and constants for PocketCoder",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "Elastic-2.0",
|
|
7
|
+
"author": "PocketCoder",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/gpuente/pocketcoder.git",
|
|
11
|
+
"directory": "packages/shared"
|
|
12
|
+
},
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./src/index.ts",
|
|
16
|
+
"import": "./dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./types": {
|
|
19
|
+
"types": "./src/types/index.ts",
|
|
20
|
+
"import": "./dist/types/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./constants": {
|
|
23
|
+
"types": "./src/constants/index.ts",
|
|
24
|
+
"import": "./dist/constants/index.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"typesVersions": {
|
|
28
|
+
"*": {
|
|
29
|
+
"*": [
|
|
30
|
+
"./src/*"
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"src",
|
|
36
|
+
"dist"
|
|
37
|
+
],
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"typescript": "^5.7.3",
|
|
40
|
+
"vitest": "^4.0.18"
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "tsc",
|
|
44
|
+
"typecheck": "tsc --noEmit",
|
|
45
|
+
"lint": "eslint src/",
|
|
46
|
+
"test": "vitest",
|
|
47
|
+
"clean": "rm -rf dist"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import {
|
|
3
|
+
MAX_FILE_SIZE,
|
|
4
|
+
MAX_WRITE_SIZE,
|
|
5
|
+
MAX_FS_ENTRIES,
|
|
6
|
+
MAX_TREE_DEPTH,
|
|
7
|
+
MAX_SEARCH_RESULTS,
|
|
8
|
+
MAX_CHANGES_PER_EVENT,
|
|
9
|
+
FS_DEBOUNCE_MIN_MS,
|
|
10
|
+
FS_DEBOUNCE_MAX_MS,
|
|
11
|
+
COMMAND_TIMEOUT_MS,
|
|
12
|
+
MAX_COMMAND_OUTPUT,
|
|
13
|
+
MAX_QUEUE_PER_PROJECT,
|
|
14
|
+
MAX_AGENT_MESSAGE_SIZE,
|
|
15
|
+
CONTROL_PLANE_PORT,
|
|
16
|
+
CONTROL_PLANE_HOST,
|
|
17
|
+
HEARTBEAT_INTERVAL_MS,
|
|
18
|
+
HEARTBEAT_TIMEOUT_MS,
|
|
19
|
+
RPC_REQUEST_TIMEOUT_MS,
|
|
20
|
+
LIMITS,
|
|
21
|
+
} from "../limits.js";
|
|
22
|
+
|
|
23
|
+
describe("Limit constants", () => {
|
|
24
|
+
it("should export all limit constants", () => {
|
|
25
|
+
expect(MAX_FILE_SIZE).toBeDefined();
|
|
26
|
+
expect(MAX_WRITE_SIZE).toBeDefined();
|
|
27
|
+
expect(MAX_FS_ENTRIES).toBeDefined();
|
|
28
|
+
expect(MAX_TREE_DEPTH).toBeDefined();
|
|
29
|
+
expect(MAX_SEARCH_RESULTS).toBeDefined();
|
|
30
|
+
expect(MAX_CHANGES_PER_EVENT).toBeDefined();
|
|
31
|
+
expect(FS_DEBOUNCE_MIN_MS).toBeDefined();
|
|
32
|
+
expect(FS_DEBOUNCE_MAX_MS).toBeDefined();
|
|
33
|
+
expect(COMMAND_TIMEOUT_MS).toBeDefined();
|
|
34
|
+
expect(MAX_COMMAND_OUTPUT).toBeDefined();
|
|
35
|
+
expect(MAX_QUEUE_PER_PROJECT).toBeDefined();
|
|
36
|
+
expect(MAX_AGENT_MESSAGE_SIZE).toBeDefined();
|
|
37
|
+
expect(CONTROL_PLANE_PORT).toBeDefined();
|
|
38
|
+
expect(CONTROL_PLANE_HOST).toBeDefined();
|
|
39
|
+
expect(HEARTBEAT_INTERVAL_MS).toBeDefined();
|
|
40
|
+
expect(HEARTBEAT_TIMEOUT_MS).toBeDefined();
|
|
41
|
+
expect(RPC_REQUEST_TIMEOUT_MS).toBeDefined();
|
|
42
|
+
expect(LIMITS).toBeDefined();
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it("should have correct values", () => {
|
|
46
|
+
// Filesystem limits (PRD § 6)
|
|
47
|
+
expect(MAX_FILE_SIZE).toBe(10 * 1024 * 1024); // 10 MB
|
|
48
|
+
expect(MAX_WRITE_SIZE).toBe(1 * 1024 * 1024); // 1 MB
|
|
49
|
+
expect(MAX_FS_ENTRIES).toBe(10_000);
|
|
50
|
+
expect(MAX_TREE_DEPTH).toBe(20);
|
|
51
|
+
expect(MAX_SEARCH_RESULTS).toBe(1_000);
|
|
52
|
+
expect(MAX_CHANGES_PER_EVENT).toBe(500);
|
|
53
|
+
expect(FS_DEBOUNCE_MIN_MS).toBe(250);
|
|
54
|
+
expect(FS_DEBOUNCE_MAX_MS).toBe(500);
|
|
55
|
+
|
|
56
|
+
// Command runner limits (PRD § 7)
|
|
57
|
+
expect(COMMAND_TIMEOUT_MS).toBe(120_000); // 120s
|
|
58
|
+
expect(MAX_COMMAND_OUTPUT).toBe(300 * 1024); // 300 KB
|
|
59
|
+
|
|
60
|
+
// Agent / queue limits (PRD § 9)
|
|
61
|
+
expect(MAX_QUEUE_PER_PROJECT).toBe(50);
|
|
62
|
+
expect(MAX_AGENT_MESSAGE_SIZE).toBe(32 * 1024); // 32 KB
|
|
63
|
+
|
|
64
|
+
// Control plane (PRD § 4)
|
|
65
|
+
expect(CONTROL_PLANE_PORT).toBe(17_333);
|
|
66
|
+
expect(CONTROL_PLANE_HOST).toBe("127.0.0.1");
|
|
67
|
+
|
|
68
|
+
// Heartbeat / connection
|
|
69
|
+
expect(HEARTBEAT_INTERVAL_MS).toBe(30_000); // 30s
|
|
70
|
+
expect(HEARTBEAT_TIMEOUT_MS).toBe(60_000); // 60s
|
|
71
|
+
expect(RPC_REQUEST_TIMEOUT_MS).toBe(60_000); // 60s
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it("should expose all values through the LIMITS object", () => {
|
|
75
|
+
expect(LIMITS.MAX_FILE_SIZE).toBe(MAX_FILE_SIZE);
|
|
76
|
+
expect(LIMITS.MAX_WRITE_SIZE).toBe(MAX_WRITE_SIZE);
|
|
77
|
+
expect(LIMITS.MAX_FS_ENTRIES).toBe(MAX_FS_ENTRIES);
|
|
78
|
+
expect(LIMITS.MAX_TREE_DEPTH).toBe(MAX_TREE_DEPTH);
|
|
79
|
+
expect(LIMITS.MAX_SEARCH_RESULTS).toBe(MAX_SEARCH_RESULTS);
|
|
80
|
+
expect(LIMITS.MAX_CHANGES_PER_EVENT).toBe(MAX_CHANGES_PER_EVENT);
|
|
81
|
+
expect(LIMITS.FS_DEBOUNCE_MIN_MS).toBe(FS_DEBOUNCE_MIN_MS);
|
|
82
|
+
expect(LIMITS.FS_DEBOUNCE_MAX_MS).toBe(FS_DEBOUNCE_MAX_MS);
|
|
83
|
+
expect(LIMITS.COMMAND_TIMEOUT_MS).toBe(COMMAND_TIMEOUT_MS);
|
|
84
|
+
expect(LIMITS.MAX_COMMAND_OUTPUT).toBe(MAX_COMMAND_OUTPUT);
|
|
85
|
+
expect(LIMITS.MAX_QUEUE_PER_PROJECT).toBe(MAX_QUEUE_PER_PROJECT);
|
|
86
|
+
expect(LIMITS.MAX_AGENT_MESSAGE_SIZE).toBe(MAX_AGENT_MESSAGE_SIZE);
|
|
87
|
+
expect(LIMITS.CONTROL_PLANE_PORT).toBe(CONTROL_PLANE_PORT);
|
|
88
|
+
expect(LIMITS.CONTROL_PLANE_HOST).toBe(CONTROL_PLANE_HOST);
|
|
89
|
+
expect(LIMITS.HEARTBEAT_INTERVAL_MS).toBe(HEARTBEAT_INTERVAL_MS);
|
|
90
|
+
expect(LIMITS.HEARTBEAT_TIMEOUT_MS).toBe(HEARTBEAT_TIMEOUT_MS);
|
|
91
|
+
expect(LIMITS.RPC_REQUEST_TIMEOUT_MS).toBe(RPC_REQUEST_TIMEOUT_MS);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error codes used across the application.
|
|
3
|
+
* Matches PRD § Error Codes - uses UPPERCASE values.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export enum ErrorCode {
|
|
7
|
+
// General
|
|
8
|
+
UNKNOWN_ERROR = "UNKNOWN_ERROR",
|
|
9
|
+
INVALID_REQUEST = "INVALID_REQUEST",
|
|
10
|
+
UNAUTHORIZED = "UNAUTHORIZED",
|
|
11
|
+
FORBIDDEN = "FORBIDDEN",
|
|
12
|
+
NOT_FOUND = "NOT_FOUND",
|
|
13
|
+
TIMEOUT = "TIMEOUT",
|
|
14
|
+
|
|
15
|
+
// Session
|
|
16
|
+
SESSION_NOT_FOUND = "SESSION_NOT_FOUND",
|
|
17
|
+
SESSION_ALREADY_EXISTS = "SESSION_ALREADY_EXISTS",
|
|
18
|
+
SESSION_NOT_RUNNING = "SESSION_NOT_RUNNING",
|
|
19
|
+
|
|
20
|
+
// Filesystem
|
|
21
|
+
FILE_NOT_FOUND = "FILE_NOT_FOUND",
|
|
22
|
+
FILE_EXISTS = "FILE_EXISTS",
|
|
23
|
+
FILE_TOO_LARGE = "FILE_TOO_LARGE",
|
|
24
|
+
PERMISSION_DENIED = "PERMISSION_DENIED",
|
|
25
|
+
OUTSIDE_PROJECT_ROOT = "OUTSIDE_PROJECT_ROOT",
|
|
26
|
+
UNSUPPORTED_FORMAT = "UNSUPPORTED_FORMAT",
|
|
27
|
+
MAX_DEPTH_EXCEEDED = "MAX_DEPTH_EXCEEDED",
|
|
28
|
+
INVALID_FILENAME = "INVALID_FILENAME",
|
|
29
|
+
INSUFFICIENT_STORAGE = "INSUFFICIENT_STORAGE",
|
|
30
|
+
PATH_NOT_FOUND = "PATH_NOT_FOUND",
|
|
31
|
+
|
|
32
|
+
// Search
|
|
33
|
+
INVALID_REGEX = "INVALID_REGEX",
|
|
34
|
+
QUERY_TOO_SHORT = "QUERY_TOO_SHORT",
|
|
35
|
+
|
|
36
|
+
// Terminal
|
|
37
|
+
TERMINAL_NOT_FOUND = "TERMINAL_NOT_FOUND",
|
|
38
|
+
TERMINAL_SPAWN_FAILED = "TERMINAL_SPAWN_FAILED",
|
|
39
|
+
|
|
40
|
+
// Command
|
|
41
|
+
COMMAND_TIMEOUT = "COMMAND_TIMEOUT",
|
|
42
|
+
COMMAND_TRUNCATED = "COMMAND_TRUNCATED",
|
|
43
|
+
|
|
44
|
+
// Git
|
|
45
|
+
GIT_NOT_INITIALIZED = "GIT_NOT_INITIALIZED",
|
|
46
|
+
GIT_CONFLICT = "GIT_CONFLICT",
|
|
47
|
+
GIT_PUSH_REJECTED = "GIT_PUSH_REJECTED",
|
|
48
|
+
GIT_NOTHING_TO_COMMIT = "GIT_NOTHING_TO_COMMIT",
|
|
49
|
+
|
|
50
|
+
// OpenCode
|
|
51
|
+
OPENCODE_NOT_INSTALLED = "OPENCODE_NOT_INSTALLED",
|
|
52
|
+
OPENCODE_UNREACHABLE = "OPENCODE_UNREACHABLE",
|
|
53
|
+
OPENCODE_SESSION_NOT_FOUND = "OPENCODE_SESSION_NOT_FOUND",
|
|
54
|
+
|
|
55
|
+
// Claude (legacy - kept for backward compatibility)
|
|
56
|
+
CLAUDE_NOT_INSTALLED = "CLAUDE_NOT_INSTALLED",
|
|
57
|
+
CLAUDE_AUTH_REQUIRED = "CLAUDE_AUTH_REQUIRED",
|
|
58
|
+
CLAUDE_RATE_LIMITED = "CLAUDE_RATE_LIMITED",
|
|
59
|
+
|
|
60
|
+
// Gateway
|
|
61
|
+
HOST_OFFLINE = "HOST_OFFLINE",
|
|
62
|
+
GATEWAY_UNREACHABLE = "GATEWAY_UNREACHABLE",
|
|
63
|
+
|
|
64
|
+
// Project
|
|
65
|
+
INVALID_PATH = "INVALID_PATH",
|
|
66
|
+
PROJECT_ALREADY_EXISTS = "PROJECT_ALREADY_EXISTS",
|
|
67
|
+
PROJECT_NOT_FOUND = "PROJECT_NOT_FOUND",
|
|
68
|
+
|
|
69
|
+
// Daemon
|
|
70
|
+
DAEMON_BUSY = "DAEMON_BUSY",
|
|
71
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System limits and constraints from PRD
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// Filesystem limits (PRD § 6 - Filesystem > Limits and Truncation)
|
|
6
|
+
export const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10 MB - max read size
|
|
7
|
+
export const MAX_WRITE_SIZE = 1 * 1024 * 1024; // 1 MB - max write size
|
|
8
|
+
export const MAX_FS_ENTRIES = 10_000; // max entries in fs_list response
|
|
9
|
+
export const MAX_TREE_DEPTH = 20; // max tree depth levels
|
|
10
|
+
export const MAX_SEARCH_RESULTS = 1_000; // max search result matches
|
|
11
|
+
export const MAX_CHANGES_PER_EVENT = 500; // max changes per fs_changed event
|
|
12
|
+
export const FS_DEBOUNCE_MIN_MS = 250; // min debounce window for file watcher
|
|
13
|
+
export const FS_DEBOUNCE_MAX_MS = 500; // max debounce window for file watcher
|
|
14
|
+
|
|
15
|
+
// Command runner limits (PRD § 7 - Command Runner > Limits)
|
|
16
|
+
export const COMMAND_TIMEOUT_MS = 120 * 1000; // 120s default timeout
|
|
17
|
+
export const MAX_COMMAND_OUTPUT = 300 * 1024; // 300 KB max output (stdout+stderr)
|
|
18
|
+
|
|
19
|
+
// Agent / message queue limits (PRD § 9 - Claude Code Integration)
|
|
20
|
+
export const MAX_QUEUE_PER_PROJECT = 50; // max queued agent requests per project
|
|
21
|
+
export const MAX_AGENT_MESSAGE_SIZE = 32 * 1024; // 32 KB max user message to agent
|
|
22
|
+
|
|
23
|
+
// Control plane (PRD § 4 - Control Plane HTTP > Configuration)
|
|
24
|
+
export const CONTROL_PLANE_PORT = 17_333;
|
|
25
|
+
export const CONTROL_PLANE_HOST = "127.0.0.1";
|
|
26
|
+
|
|
27
|
+
// Heartbeat / connection (PRD § Limits and Timeouts)
|
|
28
|
+
export const HEARTBEAT_INTERVAL_MS = 30 * 1000; // 30s ping frequency
|
|
29
|
+
export const HEARTBEAT_TIMEOUT_MS = 60 * 1000; // 60s connection dead if no pong
|
|
30
|
+
export const RPC_REQUEST_TIMEOUT_MS = 60 * 1000; // 60s timeout for request-response
|
|
31
|
+
|
|
32
|
+
// Legacy LIMITS object for backwards compatibility
|
|
33
|
+
export const LIMITS = {
|
|
34
|
+
MAX_FILE_SIZE,
|
|
35
|
+
MAX_WRITE_SIZE,
|
|
36
|
+
MAX_FS_ENTRIES,
|
|
37
|
+
MAX_TREE_DEPTH,
|
|
38
|
+
MAX_SEARCH_RESULTS,
|
|
39
|
+
MAX_CHANGES_PER_EVENT,
|
|
40
|
+
FS_DEBOUNCE_MIN_MS,
|
|
41
|
+
FS_DEBOUNCE_MAX_MS,
|
|
42
|
+
COMMAND_TIMEOUT_MS,
|
|
43
|
+
MAX_COMMAND_OUTPUT,
|
|
44
|
+
MAX_QUEUE_PER_PROJECT,
|
|
45
|
+
MAX_AGENT_MESSAGE_SIZE,
|
|
46
|
+
CONTROL_PLANE_PORT,
|
|
47
|
+
CONTROL_PLANE_HOST,
|
|
48
|
+
HEARTBEAT_INTERVAL_MS,
|
|
49
|
+
HEARTBEAT_TIMEOUT_MS,
|
|
50
|
+
RPC_REQUEST_TIMEOUT_MS,
|
|
51
|
+
} as const;
|
|
52
|
+
|
|
53
|
+
export type Limits = typeof LIMITS;
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
AuthExchangeRequest,
|
|
5
|
+
AuthExchangeResponse,
|
|
6
|
+
AuthUser,
|
|
7
|
+
TokenRefreshRequest,
|
|
8
|
+
TokenRefreshResponse,
|
|
9
|
+
} from "../auth-messages.js";
|
|
10
|
+
|
|
11
|
+
describe("auth message types", () => {
|
|
12
|
+
it("should export AuthExchangeRequest type", () => {
|
|
13
|
+
const msg: AuthExchangeRequest = {
|
|
14
|
+
type: "auth_exchange",
|
|
15
|
+
requestId: "req_123",
|
|
16
|
+
payload: {
|
|
17
|
+
code: "oauth_code_from_supabase",
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
expect(msg.type).toBe("auth_exchange");
|
|
21
|
+
expect(msg.requestId).toBe("req_123");
|
|
22
|
+
expect(msg.payload.code).toBe("oauth_code_from_supabase");
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("should export AuthExchangeResponse type", () => {
|
|
26
|
+
const msg: AuthExchangeResponse = {
|
|
27
|
+
type: "auth_exchange_response",
|
|
28
|
+
requestId: "req_123",
|
|
29
|
+
payload: {
|
|
30
|
+
access_token: "eyJ...",
|
|
31
|
+
refresh_token: "eyJ...",
|
|
32
|
+
expires_at: 1707666000,
|
|
33
|
+
user: {
|
|
34
|
+
id: "user_123",
|
|
35
|
+
email: "user@example.com",
|
|
36
|
+
github_username: "username",
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
expect(msg.type).toBe("auth_exchange_response");
|
|
41
|
+
expect(msg.payload?.access_token).toBe("eyJ...");
|
|
42
|
+
expect(msg.payload?.user.id).toBe("user_123");
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it("should export AuthExchangeResponse with error", () => {
|
|
46
|
+
const msg: AuthExchangeResponse = {
|
|
47
|
+
type: "auth_exchange_response",
|
|
48
|
+
requestId: "req_123",
|
|
49
|
+
error: {
|
|
50
|
+
code: "invalid_code",
|
|
51
|
+
message: "OAuth code is invalid or expired",
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
expect(msg.error?.code).toBe("invalid_code");
|
|
55
|
+
expect(msg.payload).toBeUndefined();
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it("should export TokenRefreshRequest type", () => {
|
|
59
|
+
const msg: TokenRefreshRequest = {
|
|
60
|
+
type: "token_refresh",
|
|
61
|
+
requestId: "req_124",
|
|
62
|
+
payload: {
|
|
63
|
+
refresh_token: "eyJ...",
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
expect(msg.type).toBe("token_refresh");
|
|
67
|
+
expect(msg.payload.refresh_token).toBe("eyJ...");
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it("should export TokenRefreshResponse type", () => {
|
|
71
|
+
const msg: TokenRefreshResponse = {
|
|
72
|
+
type: "token_refresh_response",
|
|
73
|
+
requestId: "req_124",
|
|
74
|
+
payload: {
|
|
75
|
+
access_token: "eyJ_new...",
|
|
76
|
+
refresh_token: "eyJ_rotated...",
|
|
77
|
+
expires_at: 1707752400,
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
expect(msg.type).toBe("token_refresh_response");
|
|
81
|
+
expect(msg.payload?.access_token).toBe("eyJ_new...");
|
|
82
|
+
expect(msg.payload?.expires_at).toBe(1707752400);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
it("should export TokenRefreshResponse with error", () => {
|
|
86
|
+
const msg: TokenRefreshResponse = {
|
|
87
|
+
type: "token_refresh_response",
|
|
88
|
+
requestId: "req_124",
|
|
89
|
+
error: {
|
|
90
|
+
code: "invalid_refresh_token",
|
|
91
|
+
message: "Refresh token is invalid or expired",
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
expect(msg.error?.code).toBe("invalid_refresh_token");
|
|
95
|
+
expect(msg.payload).toBeUndefined();
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it("should export AuthUser type", () => {
|
|
99
|
+
const user: AuthUser = {
|
|
100
|
+
id: "user_123",
|
|
101
|
+
email: "user@example.com",
|
|
102
|
+
github_username: "username",
|
|
103
|
+
};
|
|
104
|
+
expect(user.id).toBe("user_123");
|
|
105
|
+
expect(user.email).toBe("user@example.com");
|
|
106
|
+
expect(user.github_username).toBe("username");
|
|
107
|
+
});
|
|
108
|
+
});
|