@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.
Files changed (67) hide show
  1. package/LICENSE +53 -0
  2. package/dist/constants/__tests__/limits.test.d.ts +2 -0
  3. package/dist/constants/__tests__/limits.test.d.ts.map +1 -0
  4. package/dist/constants/__tests__/limits.test.js +68 -0
  5. package/dist/constants/__tests__/limits.test.js.map +1 -0
  6. package/dist/constants/errors.d.ts +48 -0
  7. package/dist/constants/errors.d.ts.map +1 -0
  8. package/dist/constants/errors.js +61 -0
  9. package/dist/constants/errors.js.map +1 -0
  10. package/dist/constants/index.d.ts +3 -0
  11. package/dist/constants/index.d.ts.map +1 -0
  12. package/dist/constants/index.js +4 -0
  13. package/dist/constants/index.js.map +1 -0
  14. package/dist/constants/limits.d.ts +41 -0
  15. package/dist/constants/limits.d.ts.map +1 -0
  16. package/dist/constants/limits.js +46 -0
  17. package/dist/constants/limits.js.map +1 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +4 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/types/__tests__/auth-messages.test.d.ts +2 -0
  23. package/dist/types/__tests__/auth-messages.test.d.ts.map +1 -0
  24. package/dist/types/__tests__/auth-messages.test.js +94 -0
  25. package/dist/types/__tests__/auth-messages.test.js.map +1 -0
  26. package/dist/types/__tests__/messages.test.d.ts +2 -0
  27. package/dist/types/__tests__/messages.test.d.ts.map +1 -0
  28. package/dist/types/__tests__/messages.test.js +329 -0
  29. package/dist/types/__tests__/messages.test.js.map +1 -0
  30. package/dist/types/__tests__/relay-types.test.d.ts +2 -0
  31. package/dist/types/__tests__/relay-types.test.d.ts.map +1 -0
  32. package/dist/types/__tests__/relay-types.test.js +69 -0
  33. package/dist/types/__tests__/relay-types.test.js.map +1 -0
  34. package/dist/types/auth-messages.d.ts +49 -0
  35. package/dist/types/auth-messages.d.ts.map +1 -0
  36. package/dist/types/auth-messages.js +9 -0
  37. package/dist/types/auth-messages.js.map +1 -0
  38. package/dist/types/database.d.ts +259 -0
  39. package/dist/types/database.d.ts.map +1 -0
  40. package/dist/types/database.js +6 -0
  41. package/dist/types/database.js.map +1 -0
  42. package/dist/types/index.d.ts +5 -0
  43. package/dist/types/index.d.ts.map +1 -0
  44. package/dist/types/index.js +6 -0
  45. package/dist/types/index.js.map +1 -0
  46. package/dist/types/messages.d.ts +821 -0
  47. package/dist/types/messages.d.ts.map +1 -0
  48. package/dist/types/messages.js +122 -0
  49. package/dist/types/messages.js.map +1 -0
  50. package/dist/types/relay.d.ts +62 -0
  51. package/dist/types/relay.d.ts.map +1 -0
  52. package/dist/types/relay.js +8 -0
  53. package/dist/types/relay.js.map +1 -0
  54. package/package.json +49 -0
  55. package/src/constants/__tests__/limits.test.ts +93 -0
  56. package/src/constants/errors.ts +71 -0
  57. package/src/constants/index.ts +3 -0
  58. package/src/constants/limits.ts +53 -0
  59. package/src/index.ts +3 -0
  60. package/src/types/__tests__/auth-messages.test.ts +108 -0
  61. package/src/types/__tests__/messages.test.ts +382 -0
  62. package/src/types/__tests__/relay-types.test.ts +82 -0
  63. package/src/types/auth-messages.ts +66 -0
  64. package/src/types/database.ts +320 -0
  65. package/src/types/index.ts +5 -0
  66. package/src/types/messages.ts +1310 -0
  67. package/src/types/relay.ts +79 -0
package/LICENSE ADDED
@@ -0,0 +1,53 @@
1
+ Elastic License 2.0
2
+
3
+ ## Acceptance
4
+
5
+ By using the software, you agree to all of the terms and conditions below.
6
+
7
+ ## Copyright License
8
+
9
+ The licensor grants you a non-exclusive, royalty-free, worldwide, non-sublicensable, non-transferable license to use, copy, distribute, make available, and prepare derivative works of the software, in each case subject to the limitations and conditions below.
10
+
11
+ ## Limitations
12
+
13
+ You may not provide the software to third parties as a hosted or managed service, where the service provides users with access to any substantial set of the features or functionality of the software.
14
+
15
+ You may not move, change, disable, or circumvent the license key functionality in the software, and you may not remove or obscure any functionality in the software that is protected by the license key.
16
+
17
+ You may not alter, remove, or obscure any licensing, copyright, or other notices of the licensor in the software. Any use of the licensor's trademarks is subject to applicable law.
18
+
19
+ ## Patents
20
+
21
+ The licensor grants you a license, under any patent claims the licensor can license, or becomes able to license, to make, have made, use, sell, offer for sale, import and have imported the software, in each case subject to the limitations and conditions in this license. This license does not cover any patent claims that you cause to be infringed by modifications or additions to the software. If you or your company make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
22
+
23
+ ## Notices
24
+
25
+ You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms.
26
+
27
+ If you modify the software, you must include in any modified copies of the software prominent notices stating that you have modified the software.
28
+
29
+ ## No Other Rights
30
+
31
+ These terms do not imply any licenses other than those expressly granted in these terms.
32
+
33
+ ## Termination
34
+
35
+ If you use the software in violation of these terms, such use is not licensed, and your licenses will automatically terminate. If the licensor provides you with a notice of your violation, and you cease all violation of this license no later than 30 days after you receive that notice, your licenses will be reinstated retroactively. However, if you violate these terms after such reinstatement, any additional violation of these terms will cause your licenses to terminate automatically and permanently.
36
+
37
+ ## No Liability
38
+
39
+ *As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.*
40
+
41
+ ## Definitions
42
+
43
+ The **licensor** is the entity offering these terms, and the **software** is the software the licensor makes available under these terms, including any portion of it.
44
+
45
+ **you** refers to the individual or entity agreeing to these terms.
46
+
47
+ **your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. **control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
48
+
49
+ **your licenses** are all the licenses granted to you for the software under these terms.
50
+
51
+ **use** means anything you do with the software requiring one of your licenses.
52
+
53
+ **trademark** means trademarks, service marks, and similar rights.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=limits.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.test.d.ts","sourceRoot":"","sources":["../../../src/constants/__tests__/limits.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { MAX_FILE_SIZE, MAX_WRITE_SIZE, MAX_FS_ENTRIES, MAX_TREE_DEPTH, MAX_SEARCH_RESULTS, MAX_CHANGES_PER_EVENT, FS_DEBOUNCE_MIN_MS, FS_DEBOUNCE_MAX_MS, COMMAND_TIMEOUT_MS, MAX_COMMAND_OUTPUT, MAX_QUEUE_PER_PROJECT, MAX_AGENT_MESSAGE_SIZE, CONTROL_PLANE_PORT, CONTROL_PLANE_HOST, HEARTBEAT_INTERVAL_MS, HEARTBEAT_TIMEOUT_MS, RPC_REQUEST_TIMEOUT_MS, LIMITS, } from "../limits.js";
3
+ describe("Limit constants", () => {
4
+ it("should export all limit constants", () => {
5
+ expect(MAX_FILE_SIZE).toBeDefined();
6
+ expect(MAX_WRITE_SIZE).toBeDefined();
7
+ expect(MAX_FS_ENTRIES).toBeDefined();
8
+ expect(MAX_TREE_DEPTH).toBeDefined();
9
+ expect(MAX_SEARCH_RESULTS).toBeDefined();
10
+ expect(MAX_CHANGES_PER_EVENT).toBeDefined();
11
+ expect(FS_DEBOUNCE_MIN_MS).toBeDefined();
12
+ expect(FS_DEBOUNCE_MAX_MS).toBeDefined();
13
+ expect(COMMAND_TIMEOUT_MS).toBeDefined();
14
+ expect(MAX_COMMAND_OUTPUT).toBeDefined();
15
+ expect(MAX_QUEUE_PER_PROJECT).toBeDefined();
16
+ expect(MAX_AGENT_MESSAGE_SIZE).toBeDefined();
17
+ expect(CONTROL_PLANE_PORT).toBeDefined();
18
+ expect(CONTROL_PLANE_HOST).toBeDefined();
19
+ expect(HEARTBEAT_INTERVAL_MS).toBeDefined();
20
+ expect(HEARTBEAT_TIMEOUT_MS).toBeDefined();
21
+ expect(RPC_REQUEST_TIMEOUT_MS).toBeDefined();
22
+ expect(LIMITS).toBeDefined();
23
+ });
24
+ it("should have correct values", () => {
25
+ // Filesystem limits (PRD § 6)
26
+ expect(MAX_FILE_SIZE).toBe(10 * 1024 * 1024); // 10 MB
27
+ expect(MAX_WRITE_SIZE).toBe(1 * 1024 * 1024); // 1 MB
28
+ expect(MAX_FS_ENTRIES).toBe(10_000);
29
+ expect(MAX_TREE_DEPTH).toBe(20);
30
+ expect(MAX_SEARCH_RESULTS).toBe(1_000);
31
+ expect(MAX_CHANGES_PER_EVENT).toBe(500);
32
+ expect(FS_DEBOUNCE_MIN_MS).toBe(250);
33
+ expect(FS_DEBOUNCE_MAX_MS).toBe(500);
34
+ // Command runner limits (PRD § 7)
35
+ expect(COMMAND_TIMEOUT_MS).toBe(120_000); // 120s
36
+ expect(MAX_COMMAND_OUTPUT).toBe(300 * 1024); // 300 KB
37
+ // Agent / queue limits (PRD § 9)
38
+ expect(MAX_QUEUE_PER_PROJECT).toBe(50);
39
+ expect(MAX_AGENT_MESSAGE_SIZE).toBe(32 * 1024); // 32 KB
40
+ // Control plane (PRD § 4)
41
+ expect(CONTROL_PLANE_PORT).toBe(17_333);
42
+ expect(CONTROL_PLANE_HOST).toBe("127.0.0.1");
43
+ // Heartbeat / connection
44
+ expect(HEARTBEAT_INTERVAL_MS).toBe(30_000); // 30s
45
+ expect(HEARTBEAT_TIMEOUT_MS).toBe(60_000); // 60s
46
+ expect(RPC_REQUEST_TIMEOUT_MS).toBe(60_000); // 60s
47
+ });
48
+ it("should expose all values through the LIMITS object", () => {
49
+ expect(LIMITS.MAX_FILE_SIZE).toBe(MAX_FILE_SIZE);
50
+ expect(LIMITS.MAX_WRITE_SIZE).toBe(MAX_WRITE_SIZE);
51
+ expect(LIMITS.MAX_FS_ENTRIES).toBe(MAX_FS_ENTRIES);
52
+ expect(LIMITS.MAX_TREE_DEPTH).toBe(MAX_TREE_DEPTH);
53
+ expect(LIMITS.MAX_SEARCH_RESULTS).toBe(MAX_SEARCH_RESULTS);
54
+ expect(LIMITS.MAX_CHANGES_PER_EVENT).toBe(MAX_CHANGES_PER_EVENT);
55
+ expect(LIMITS.FS_DEBOUNCE_MIN_MS).toBe(FS_DEBOUNCE_MIN_MS);
56
+ expect(LIMITS.FS_DEBOUNCE_MAX_MS).toBe(FS_DEBOUNCE_MAX_MS);
57
+ expect(LIMITS.COMMAND_TIMEOUT_MS).toBe(COMMAND_TIMEOUT_MS);
58
+ expect(LIMITS.MAX_COMMAND_OUTPUT).toBe(MAX_COMMAND_OUTPUT);
59
+ expect(LIMITS.MAX_QUEUE_PER_PROJECT).toBe(MAX_QUEUE_PER_PROJECT);
60
+ expect(LIMITS.MAX_AGENT_MESSAGE_SIZE).toBe(MAX_AGENT_MESSAGE_SIZE);
61
+ expect(LIMITS.CONTROL_PLANE_PORT).toBe(CONTROL_PLANE_PORT);
62
+ expect(LIMITS.CONTROL_PLANE_HOST).toBe(CONTROL_PLANE_HOST);
63
+ expect(LIMITS.HEARTBEAT_INTERVAL_MS).toBe(HEARTBEAT_INTERVAL_MS);
64
+ expect(LIMITS.HEARTBEAT_TIMEOUT_MS).toBe(HEARTBEAT_TIMEOUT_MS);
65
+ expect(LIMITS.RPC_REQUEST_TIMEOUT_MS).toBe(RPC_REQUEST_TIMEOUT_MS);
66
+ });
67
+ });
68
+ //# sourceMappingURL=limits.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.test.js","sourceRoot":"","sources":["../../../src/constants/__tests__/limits.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Error codes used across the application.
3
+ * Matches PRD § Error Codes - uses UPPERCASE values.
4
+ */
5
+ export declare enum ErrorCode {
6
+ UNKNOWN_ERROR = "UNKNOWN_ERROR",
7
+ INVALID_REQUEST = "INVALID_REQUEST",
8
+ UNAUTHORIZED = "UNAUTHORIZED",
9
+ FORBIDDEN = "FORBIDDEN",
10
+ NOT_FOUND = "NOT_FOUND",
11
+ TIMEOUT = "TIMEOUT",
12
+ SESSION_NOT_FOUND = "SESSION_NOT_FOUND",
13
+ SESSION_ALREADY_EXISTS = "SESSION_ALREADY_EXISTS",
14
+ SESSION_NOT_RUNNING = "SESSION_NOT_RUNNING",
15
+ FILE_NOT_FOUND = "FILE_NOT_FOUND",
16
+ FILE_EXISTS = "FILE_EXISTS",
17
+ FILE_TOO_LARGE = "FILE_TOO_LARGE",
18
+ PERMISSION_DENIED = "PERMISSION_DENIED",
19
+ OUTSIDE_PROJECT_ROOT = "OUTSIDE_PROJECT_ROOT",
20
+ UNSUPPORTED_FORMAT = "UNSUPPORTED_FORMAT",
21
+ MAX_DEPTH_EXCEEDED = "MAX_DEPTH_EXCEEDED",
22
+ INVALID_FILENAME = "INVALID_FILENAME",
23
+ INSUFFICIENT_STORAGE = "INSUFFICIENT_STORAGE",
24
+ PATH_NOT_FOUND = "PATH_NOT_FOUND",
25
+ INVALID_REGEX = "INVALID_REGEX",
26
+ QUERY_TOO_SHORT = "QUERY_TOO_SHORT",
27
+ TERMINAL_NOT_FOUND = "TERMINAL_NOT_FOUND",
28
+ TERMINAL_SPAWN_FAILED = "TERMINAL_SPAWN_FAILED",
29
+ COMMAND_TIMEOUT = "COMMAND_TIMEOUT",
30
+ COMMAND_TRUNCATED = "COMMAND_TRUNCATED",
31
+ GIT_NOT_INITIALIZED = "GIT_NOT_INITIALIZED",
32
+ GIT_CONFLICT = "GIT_CONFLICT",
33
+ GIT_PUSH_REJECTED = "GIT_PUSH_REJECTED",
34
+ GIT_NOTHING_TO_COMMIT = "GIT_NOTHING_TO_COMMIT",
35
+ OPENCODE_NOT_INSTALLED = "OPENCODE_NOT_INSTALLED",
36
+ OPENCODE_UNREACHABLE = "OPENCODE_UNREACHABLE",
37
+ OPENCODE_SESSION_NOT_FOUND = "OPENCODE_SESSION_NOT_FOUND",
38
+ CLAUDE_NOT_INSTALLED = "CLAUDE_NOT_INSTALLED",
39
+ CLAUDE_AUTH_REQUIRED = "CLAUDE_AUTH_REQUIRED",
40
+ CLAUDE_RATE_LIMITED = "CLAUDE_RATE_LIMITED",
41
+ HOST_OFFLINE = "HOST_OFFLINE",
42
+ GATEWAY_UNREACHABLE = "GATEWAY_UNREACHABLE",
43
+ INVALID_PATH = "INVALID_PATH",
44
+ PROJECT_ALREADY_EXISTS = "PROJECT_ALREADY_EXISTS",
45
+ PROJECT_NOT_FOUND = "PROJECT_NOT_FOUND",
46
+ DAEMON_BUSY = "DAEMON_BUSY"
47
+ }
48
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/constants/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAY,SAAS;IAEnB,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,OAAO,YAAY;IAGnB,iBAAiB,sBAAsB;IACvC,sBAAsB,2BAA2B;IACjD,mBAAmB,wBAAwB;IAG3C,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;IACvC,oBAAoB,yBAAyB;IAC7C,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,cAAc,mBAAmB;IAGjC,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IAGnC,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAG/C,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IAGvC,mBAAmB,wBAAwB;IAC3C,YAAY,iBAAiB;IAC7B,iBAAiB,sBAAsB;IACvC,qBAAqB,0BAA0B;IAG/C,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,0BAA0B,+BAA+B;IAGzD,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAG3C,YAAY,iBAAiB;IAC7B,mBAAmB,wBAAwB;IAG3C,YAAY,iBAAiB;IAC7B,sBAAsB,2BAA2B;IACjD,iBAAiB,sBAAsB;IAGvC,WAAW,gBAAgB;CAC5B"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Error codes used across the application.
3
+ * Matches PRD § Error Codes - uses UPPERCASE values.
4
+ */
5
+ export var ErrorCode;
6
+ (function (ErrorCode) {
7
+ // General
8
+ ErrorCode["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
9
+ ErrorCode["INVALID_REQUEST"] = "INVALID_REQUEST";
10
+ ErrorCode["UNAUTHORIZED"] = "UNAUTHORIZED";
11
+ ErrorCode["FORBIDDEN"] = "FORBIDDEN";
12
+ ErrorCode["NOT_FOUND"] = "NOT_FOUND";
13
+ ErrorCode["TIMEOUT"] = "TIMEOUT";
14
+ // Session
15
+ ErrorCode["SESSION_NOT_FOUND"] = "SESSION_NOT_FOUND";
16
+ ErrorCode["SESSION_ALREADY_EXISTS"] = "SESSION_ALREADY_EXISTS";
17
+ ErrorCode["SESSION_NOT_RUNNING"] = "SESSION_NOT_RUNNING";
18
+ // Filesystem
19
+ ErrorCode["FILE_NOT_FOUND"] = "FILE_NOT_FOUND";
20
+ ErrorCode["FILE_EXISTS"] = "FILE_EXISTS";
21
+ ErrorCode["FILE_TOO_LARGE"] = "FILE_TOO_LARGE";
22
+ ErrorCode["PERMISSION_DENIED"] = "PERMISSION_DENIED";
23
+ ErrorCode["OUTSIDE_PROJECT_ROOT"] = "OUTSIDE_PROJECT_ROOT";
24
+ ErrorCode["UNSUPPORTED_FORMAT"] = "UNSUPPORTED_FORMAT";
25
+ ErrorCode["MAX_DEPTH_EXCEEDED"] = "MAX_DEPTH_EXCEEDED";
26
+ ErrorCode["INVALID_FILENAME"] = "INVALID_FILENAME";
27
+ ErrorCode["INSUFFICIENT_STORAGE"] = "INSUFFICIENT_STORAGE";
28
+ ErrorCode["PATH_NOT_FOUND"] = "PATH_NOT_FOUND";
29
+ // Search
30
+ ErrorCode["INVALID_REGEX"] = "INVALID_REGEX";
31
+ ErrorCode["QUERY_TOO_SHORT"] = "QUERY_TOO_SHORT";
32
+ // Terminal
33
+ ErrorCode["TERMINAL_NOT_FOUND"] = "TERMINAL_NOT_FOUND";
34
+ ErrorCode["TERMINAL_SPAWN_FAILED"] = "TERMINAL_SPAWN_FAILED";
35
+ // Command
36
+ ErrorCode["COMMAND_TIMEOUT"] = "COMMAND_TIMEOUT";
37
+ ErrorCode["COMMAND_TRUNCATED"] = "COMMAND_TRUNCATED";
38
+ // Git
39
+ ErrorCode["GIT_NOT_INITIALIZED"] = "GIT_NOT_INITIALIZED";
40
+ ErrorCode["GIT_CONFLICT"] = "GIT_CONFLICT";
41
+ ErrorCode["GIT_PUSH_REJECTED"] = "GIT_PUSH_REJECTED";
42
+ ErrorCode["GIT_NOTHING_TO_COMMIT"] = "GIT_NOTHING_TO_COMMIT";
43
+ // OpenCode
44
+ ErrorCode["OPENCODE_NOT_INSTALLED"] = "OPENCODE_NOT_INSTALLED";
45
+ ErrorCode["OPENCODE_UNREACHABLE"] = "OPENCODE_UNREACHABLE";
46
+ ErrorCode["OPENCODE_SESSION_NOT_FOUND"] = "OPENCODE_SESSION_NOT_FOUND";
47
+ // Claude (legacy - kept for backward compatibility)
48
+ ErrorCode["CLAUDE_NOT_INSTALLED"] = "CLAUDE_NOT_INSTALLED";
49
+ ErrorCode["CLAUDE_AUTH_REQUIRED"] = "CLAUDE_AUTH_REQUIRED";
50
+ ErrorCode["CLAUDE_RATE_LIMITED"] = "CLAUDE_RATE_LIMITED";
51
+ // Gateway
52
+ ErrorCode["HOST_OFFLINE"] = "HOST_OFFLINE";
53
+ ErrorCode["GATEWAY_UNREACHABLE"] = "GATEWAY_UNREACHABLE";
54
+ // Project
55
+ ErrorCode["INVALID_PATH"] = "INVALID_PATH";
56
+ ErrorCode["PROJECT_ALREADY_EXISTS"] = "PROJECT_ALREADY_EXISTS";
57
+ ErrorCode["PROJECT_NOT_FOUND"] = "PROJECT_NOT_FOUND";
58
+ // Daemon
59
+ ErrorCode["DAEMON_BUSY"] = "DAEMON_BUSY";
60
+ })(ErrorCode || (ErrorCode = {}));
61
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/constants/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAN,IAAY,SAiEX;AAjED,WAAY,SAAS;IACnB,UAAU;IACV,4CAA+B,CAAA;IAC/B,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,oCAAuB,CAAA;IACvB,oCAAuB,CAAA;IACvB,gCAAmB,CAAA;IAEnB,UAAU;IACV,oDAAuC,CAAA;IACvC,8DAAiD,CAAA;IACjD,wDAA2C,CAAA;IAE3C,aAAa;IACb,8CAAiC,CAAA;IACjC,wCAA2B,CAAA;IAC3B,8CAAiC,CAAA;IACjC,oDAAuC,CAAA;IACvC,0DAA6C,CAAA;IAC7C,sDAAyC,CAAA;IACzC,sDAAyC,CAAA;IACzC,kDAAqC,CAAA;IACrC,0DAA6C,CAAA;IAC7C,8CAAiC,CAAA;IAEjC,SAAS;IACT,4CAA+B,CAAA;IAC/B,gDAAmC,CAAA;IAEnC,WAAW;IACX,sDAAyC,CAAA;IACzC,4DAA+C,CAAA;IAE/C,UAAU;IACV,gDAAmC,CAAA;IACnC,oDAAuC,CAAA;IAEvC,MAAM;IACN,wDAA2C,CAAA;IAC3C,0CAA6B,CAAA;IAC7B,oDAAuC,CAAA;IACvC,4DAA+C,CAAA;IAE/C,WAAW;IACX,8DAAiD,CAAA;IACjD,0DAA6C,CAAA;IAC7C,sEAAyD,CAAA;IAEzD,oDAAoD;IACpD,0DAA6C,CAAA;IAC7C,0DAA6C,CAAA;IAC7C,wDAA2C,CAAA;IAE3C,UAAU;IACV,0CAA6B,CAAA;IAC7B,wDAA2C,CAAA;IAE3C,UAAU;IACV,0CAA6B,CAAA;IAC7B,8DAAiD,CAAA;IACjD,oDAAuC,CAAA;IAEvC,SAAS;IACT,wCAA2B,CAAA;AAC7B,CAAC,EAjEW,SAAS,KAAT,SAAS,QAiEpB"}
@@ -0,0 +1,3 @@
1
+ export * from "./errors.js";
2
+ export * from "./limits.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ // Re-export all constants
2
+ export * from "./errors.js";
3
+ export * from "./limits.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * System limits and constraints from PRD
3
+ */
4
+ export declare const MAX_FILE_SIZE: number;
5
+ export declare const MAX_WRITE_SIZE: number;
6
+ export declare const MAX_FS_ENTRIES = 10000;
7
+ export declare const MAX_TREE_DEPTH = 20;
8
+ export declare const MAX_SEARCH_RESULTS = 1000;
9
+ export declare const MAX_CHANGES_PER_EVENT = 500;
10
+ export declare const FS_DEBOUNCE_MIN_MS = 250;
11
+ export declare const FS_DEBOUNCE_MAX_MS = 500;
12
+ export declare const COMMAND_TIMEOUT_MS: number;
13
+ export declare const MAX_COMMAND_OUTPUT: number;
14
+ export declare const MAX_QUEUE_PER_PROJECT = 50;
15
+ export declare const MAX_AGENT_MESSAGE_SIZE: number;
16
+ export declare const CONTROL_PLANE_PORT = 17333;
17
+ export declare const CONTROL_PLANE_HOST = "127.0.0.1";
18
+ export declare const HEARTBEAT_INTERVAL_MS: number;
19
+ export declare const HEARTBEAT_TIMEOUT_MS: number;
20
+ export declare const RPC_REQUEST_TIMEOUT_MS: number;
21
+ export declare const LIMITS: {
22
+ readonly MAX_FILE_SIZE: number;
23
+ readonly MAX_WRITE_SIZE: number;
24
+ readonly MAX_FS_ENTRIES: 10000;
25
+ readonly MAX_TREE_DEPTH: 20;
26
+ readonly MAX_SEARCH_RESULTS: 1000;
27
+ readonly MAX_CHANGES_PER_EVENT: 500;
28
+ readonly FS_DEBOUNCE_MIN_MS: 250;
29
+ readonly FS_DEBOUNCE_MAX_MS: 500;
30
+ readonly COMMAND_TIMEOUT_MS: number;
31
+ readonly MAX_COMMAND_OUTPUT: number;
32
+ readonly MAX_QUEUE_PER_PROJECT: 50;
33
+ readonly MAX_AGENT_MESSAGE_SIZE: number;
34
+ readonly CONTROL_PLANE_PORT: 17333;
35
+ readonly CONTROL_PLANE_HOST: "127.0.0.1";
36
+ readonly HEARTBEAT_INTERVAL_MS: number;
37
+ readonly HEARTBEAT_TIMEOUT_MS: number;
38
+ readonly RPC_REQUEST_TIMEOUT_MS: number;
39
+ };
40
+ export type Limits = typeof LIMITS;
41
+ //# sourceMappingURL=limits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/constants/limits.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,aAAa,QAAmB,CAAC;AAC9C,eAAO,MAAM,cAAc,QAAkB,CAAC;AAC9C,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,kBAAkB,OAAQ,CAAC;AACxC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAGtC,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAC7C,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAG7C,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,sBAAsB,QAAY,CAAC;AAGhD,eAAO,MAAM,kBAAkB,QAAS,CAAC;AACzC,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAG9C,eAAO,MAAM,qBAAqB,QAAY,CAAC;AAC/C,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAC9C,eAAO,MAAM,sBAAsB,QAAY,CAAC;AAGhD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;CAkBT,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * System limits and constraints from PRD
3
+ */
4
+ // Filesystem limits (PRD § 6 - Filesystem > Limits and Truncation)
5
+ export const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10 MB - max read size
6
+ export const MAX_WRITE_SIZE = 1 * 1024 * 1024; // 1 MB - max write size
7
+ export const MAX_FS_ENTRIES = 10_000; // max entries in fs_list response
8
+ export const MAX_TREE_DEPTH = 20; // max tree depth levels
9
+ export const MAX_SEARCH_RESULTS = 1_000; // max search result matches
10
+ export const MAX_CHANGES_PER_EVENT = 500; // max changes per fs_changed event
11
+ export const FS_DEBOUNCE_MIN_MS = 250; // min debounce window for file watcher
12
+ export const FS_DEBOUNCE_MAX_MS = 500; // max debounce window for file watcher
13
+ // Command runner limits (PRD § 7 - Command Runner > Limits)
14
+ export const COMMAND_TIMEOUT_MS = 120 * 1000; // 120s default timeout
15
+ export const MAX_COMMAND_OUTPUT = 300 * 1024; // 300 KB max output (stdout+stderr)
16
+ // Agent / message queue limits (PRD § 9 - Claude Code Integration)
17
+ export const MAX_QUEUE_PER_PROJECT = 50; // max queued agent requests per project
18
+ export const MAX_AGENT_MESSAGE_SIZE = 32 * 1024; // 32 KB max user message to agent
19
+ // Control plane (PRD § 4 - Control Plane HTTP > Configuration)
20
+ export const CONTROL_PLANE_PORT = 17_333;
21
+ export const CONTROL_PLANE_HOST = "127.0.0.1";
22
+ // Heartbeat / connection (PRD § Limits and Timeouts)
23
+ export const HEARTBEAT_INTERVAL_MS = 30 * 1000; // 30s ping frequency
24
+ export const HEARTBEAT_TIMEOUT_MS = 60 * 1000; // 60s connection dead if no pong
25
+ export const RPC_REQUEST_TIMEOUT_MS = 60 * 1000; // 60s timeout for request-response
26
+ // Legacy LIMITS object for backwards compatibility
27
+ export const LIMITS = {
28
+ MAX_FILE_SIZE,
29
+ MAX_WRITE_SIZE,
30
+ MAX_FS_ENTRIES,
31
+ MAX_TREE_DEPTH,
32
+ MAX_SEARCH_RESULTS,
33
+ MAX_CHANGES_PER_EVENT,
34
+ FS_DEBOUNCE_MIN_MS,
35
+ FS_DEBOUNCE_MAX_MS,
36
+ COMMAND_TIMEOUT_MS,
37
+ MAX_COMMAND_OUTPUT,
38
+ MAX_QUEUE_PER_PROJECT,
39
+ MAX_AGENT_MESSAGE_SIZE,
40
+ CONTROL_PLANE_PORT,
41
+ CONTROL_PLANE_HOST,
42
+ HEARTBEAT_INTERVAL_MS,
43
+ HEARTBEAT_TIMEOUT_MS,
44
+ RPC_REQUEST_TIMEOUT_MS,
45
+ };
46
+ //# sourceMappingURL=limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.js","sourceRoot":"","sources":["../../src/constants/limits.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,wBAAwB;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,wBAAwB;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,kCAAkC;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC,CAAC,wBAAwB;AAC1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,4BAA4B;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC,CAAC,mCAAmC;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC,CAAC,uCAAuC;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC,CAAC,uCAAuC;AAE9E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,uBAAuB;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,oCAAoC;AAElF,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC,CAAC,wCAAwC;AACjF,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,kCAAkC;AAEnF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE9C,qDAAqD;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,qBAAqB;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,iCAAiC;AAChF,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,mCAAmC;AAEpF,mDAAmD;AACnD,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,qBAAqB;IACrB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;CACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./types/index.js";
2
+ export * from "./constants/index.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ // Re-export all types and constants
2
+ export * from "./types/index.js";
3
+ export * from "./constants/index.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=auth-messages.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-messages.test.d.ts","sourceRoot":"","sources":["../../../src/types/__tests__/auth-messages.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,94 @@
1
+ import { describe, expect, it } from "vitest";
2
+ describe("auth message types", () => {
3
+ it("should export AuthExchangeRequest type", () => {
4
+ const msg = {
5
+ type: "auth_exchange",
6
+ requestId: "req_123",
7
+ payload: {
8
+ code: "oauth_code_from_supabase",
9
+ },
10
+ };
11
+ expect(msg.type).toBe("auth_exchange");
12
+ expect(msg.requestId).toBe("req_123");
13
+ expect(msg.payload.code).toBe("oauth_code_from_supabase");
14
+ });
15
+ it("should export AuthExchangeResponse type", () => {
16
+ const msg = {
17
+ type: "auth_exchange_response",
18
+ requestId: "req_123",
19
+ payload: {
20
+ access_token: "eyJ...",
21
+ refresh_token: "eyJ...",
22
+ expires_at: 1707666000,
23
+ user: {
24
+ id: "user_123",
25
+ email: "user@example.com",
26
+ github_username: "username",
27
+ },
28
+ },
29
+ };
30
+ expect(msg.type).toBe("auth_exchange_response");
31
+ expect(msg.payload?.access_token).toBe("eyJ...");
32
+ expect(msg.payload?.user.id).toBe("user_123");
33
+ });
34
+ it("should export AuthExchangeResponse with error", () => {
35
+ const msg = {
36
+ type: "auth_exchange_response",
37
+ requestId: "req_123",
38
+ error: {
39
+ code: "invalid_code",
40
+ message: "OAuth code is invalid or expired",
41
+ },
42
+ };
43
+ expect(msg.error?.code).toBe("invalid_code");
44
+ expect(msg.payload).toBeUndefined();
45
+ });
46
+ it("should export TokenRefreshRequest type", () => {
47
+ const msg = {
48
+ type: "token_refresh",
49
+ requestId: "req_124",
50
+ payload: {
51
+ refresh_token: "eyJ...",
52
+ },
53
+ };
54
+ expect(msg.type).toBe("token_refresh");
55
+ expect(msg.payload.refresh_token).toBe("eyJ...");
56
+ });
57
+ it("should export TokenRefreshResponse type", () => {
58
+ const msg = {
59
+ type: "token_refresh_response",
60
+ requestId: "req_124",
61
+ payload: {
62
+ access_token: "eyJ_new...",
63
+ refresh_token: "eyJ_rotated...",
64
+ expires_at: 1707752400,
65
+ },
66
+ };
67
+ expect(msg.type).toBe("token_refresh_response");
68
+ expect(msg.payload?.access_token).toBe("eyJ_new...");
69
+ expect(msg.payload?.expires_at).toBe(1707752400);
70
+ });
71
+ it("should export TokenRefreshResponse with error", () => {
72
+ const msg = {
73
+ type: "token_refresh_response",
74
+ requestId: "req_124",
75
+ error: {
76
+ code: "invalid_refresh_token",
77
+ message: "Refresh token is invalid or expired",
78
+ },
79
+ };
80
+ expect(msg.error?.code).toBe("invalid_refresh_token");
81
+ expect(msg.payload).toBeUndefined();
82
+ });
83
+ it("should export AuthUser type", () => {
84
+ const user = {
85
+ id: "user_123",
86
+ email: "user@example.com",
87
+ github_username: "username",
88
+ };
89
+ expect(user.id).toBe("user_123");
90
+ expect(user.email).toBe("user@example.com");
91
+ expect(user.github_username).toBe("username");
92
+ });
93
+ });
94
+ //# sourceMappingURL=auth-messages.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-messages.test.js","sourceRoot":"","sources":["../../../src/types/__tests__/auth-messages.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messages.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.test.d.ts","sourceRoot":"","sources":["../../../src/types/__tests__/messages.test.ts"],"names":[],"mappings":""}