@abitat_reece/host-daemon 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/cli/conversation-runtime.d.ts +23 -0
  2. package/dist/cli/conversation-runtime.d.ts.map +1 -0
  3. package/dist/cli/conversation-runtime.js +73 -0
  4. package/dist/cli/conversation-runtime.js.map +1 -0
  5. package/dist/cli/daemon-connection.d.ts +14 -0
  6. package/dist/cli/daemon-connection.d.ts.map +1 -0
  7. package/dist/cli/daemon-connection.js +17 -0
  8. package/dist/cli/daemon-connection.js.map +1 -0
  9. package/dist/cli/heartbeat-loop.d.ts +2 -0
  10. package/dist/cli/heartbeat-loop.d.ts.map +1 -0
  11. package/dist/cli/heartbeat-loop.js +10 -0
  12. package/dist/cli/heartbeat-loop.js.map +1 -0
  13. package/dist/cli/index.d.ts +3 -0
  14. package/dist/cli/index.d.ts.map +1 -0
  15. package/dist/cli/index.js +371 -0
  16. package/dist/cli/index.js.map +1 -0
  17. package/dist/cli/retryable-task.d.ts +5 -0
  18. package/dist/cli/retryable-task.d.ts.map +1 -0
  19. package/dist/cli/retryable-task.js +16 -0
  20. package/dist/cli/retryable-task.js.map +1 -0
  21. package/dist/cli/start-options.d.ts +5 -0
  22. package/dist/cli/start-options.d.ts.map +1 -0
  23. package/dist/cli/start-options.js +6 -0
  24. package/dist/cli/start-options.js.map +1 -0
  25. package/dist/config/host-config.d.ts +10 -0
  26. package/dist/config/host-config.d.ts.map +1 -0
  27. package/dist/config/host-config.js +15 -0
  28. package/dist/config/host-config.js.map +1 -0
  29. package/dist/git/changeset.d.ts +9 -0
  30. package/dist/git/changeset.d.ts.map +1 -0
  31. package/dist/git/changeset.js +78 -0
  32. package/dist/git/changeset.js.map +1 -0
  33. package/dist/git/paths.d.ts +12 -0
  34. package/dist/git/paths.d.ts.map +1 -0
  35. package/dist/git/paths.js +72 -0
  36. package/dist/git/paths.js.map +1 -0
  37. package/dist/git/publish.d.ts +24 -0
  38. package/dist/git/publish.d.ts.map +1 -0
  39. package/dist/git/publish.js +23 -0
  40. package/dist/git/publish.js.map +1 -0
  41. package/dist/git/repo.d.ts +21 -0
  42. package/dist/git/repo.d.ts.map +1 -0
  43. package/dist/git/repo.js +113 -0
  44. package/dist/git/repo.js.map +1 -0
  45. package/dist/git/worktree.d.ts +25 -0
  46. package/dist/git/worktree.d.ts.map +1 -0
  47. package/dist/git/worktree.js +33 -0
  48. package/dist/git/worktree.js.map +1 -0
  49. package/dist/remote-control/manager.d.ts +46 -0
  50. package/dist/remote-control/manager.d.ts.map +1 -0
  51. package/dist/remote-control/manager.js +86 -0
  52. package/dist/remote-control/manager.js.map +1 -0
  53. package/dist/runtime/adapter.d.ts +27 -0
  54. package/dist/runtime/adapter.d.ts.map +1 -0
  55. package/dist/runtime/adapter.js +2 -0
  56. package/dist/runtime/adapter.js.map +1 -0
  57. package/dist/runtime/cli.d.ts +41 -0
  58. package/dist/runtime/cli.d.ts.map +1 -0
  59. package/dist/runtime/cli.js +540 -0
  60. package/dist/runtime/cli.js.map +1 -0
  61. package/dist/runtime/index.d.ts +10 -0
  62. package/dist/runtime/index.d.ts.map +1 -0
  63. package/dist/runtime/index.js +39 -0
  64. package/dist/runtime/index.js.map +1 -0
  65. package/dist/runtime/mock.d.ts +3 -0
  66. package/dist/runtime/mock.d.ts.map +1 -0
  67. package/dist/runtime/mock.js +34 -0
  68. package/dist/runtime/mock.js.map +1 -0
  69. package/dist/runtime/pty.d.ts +32 -0
  70. package/dist/runtime/pty.d.ts.map +1 -0
  71. package/dist/runtime/pty.js +197 -0
  72. package/dist/runtime/pty.js.map +1 -0
  73. package/dist/tools/scanner.d.ts +14 -0
  74. package/dist/tools/scanner.d.ts.map +1 -0
  75. package/dist/tools/scanner.js +53 -0
  76. package/dist/tools/scanner.js.map +1 -0
  77. package/dist/transport/api-client.d.ts +153 -0
  78. package/dist/transport/api-client.d.ts.map +1 -0
  79. package/dist/transport/api-client.js +93 -0
  80. package/dist/transport/api-client.js.map +1 -0
  81. package/package.json +41 -0
@@ -0,0 +1,93 @@
1
+ export class HostApiClient {
2
+ apiUrl;
3
+ hostToken;
4
+ constructor(apiUrl, hostToken) {
5
+ this.apiUrl = apiUrl;
6
+ this.hostToken = hostToken;
7
+ }
8
+ pair(input) {
9
+ return this.post("/api/hosts/pair", input);
10
+ }
11
+ heartbeat(input) {
12
+ return this.post("/api/hosts/heartbeat", input);
13
+ }
14
+ uploadTools(machineId, tools) {
15
+ const input = { machineId, tools };
16
+ return this.post("/api/hosts/tools", input);
17
+ }
18
+ pollJob(machineId, activeConversationIds) {
19
+ const activeIds = Array.isArray(activeConversationIds)
20
+ ? activeConversationIds
21
+ : activeConversationIds
22
+ ? [activeConversationIds]
23
+ : [];
24
+ return this.post("/api/daemon/jobs/poll", {
25
+ machineId,
26
+ ...(activeIds[0] ? { activeConversationId: activeIds[0] } : {}),
27
+ ...(activeIds.length > 0 ? { activeConversationIds: activeIds } : {})
28
+ });
29
+ }
30
+ ackJob(jobId, input) {
31
+ return this.post(`/api/daemon/jobs/${jobId}/ack`, input);
32
+ }
33
+ ingestRunEvent(conversationId, input) {
34
+ return this.post(`/api/conversations/${conversationId}/events`, input);
35
+ }
36
+ uploadChangeSet(conversationId, input) {
37
+ return this.post(`/api/conversations/${conversationId}/changeset`, input);
38
+ }
39
+ pollRemoteControlSessions(machineId) {
40
+ const path = `/api/remote-control/host/sessions?machineId=${encodeURIComponent(machineId)}`;
41
+ return this.get(path);
42
+ }
43
+ updateRemoteControlSession(sessionId, input) {
44
+ return this.patch(`/api/remote-control/host/sessions/${sessionId}`, input);
45
+ }
46
+ listRemoteControlSignals(sessionId) {
47
+ return this.get(`/api/remote-control/host/sessions/${sessionId}/signals`);
48
+ }
49
+ sendRemoteControlSignal(sessionId, input) {
50
+ return this.post(`/api/remote-control/host/sessions/${sessionId}/signals`, input);
51
+ }
52
+ async get(path) {
53
+ const response = await fetch(new URL(path, this.apiUrl), {
54
+ method: "GET",
55
+ headers: {
56
+ ...(this.hostToken ? { authorization: `Bearer ${this.hostToken}` } : {})
57
+ }
58
+ });
59
+ if (!response.ok) {
60
+ throw new Error(`${response.status} ${await response.text()}`);
61
+ }
62
+ return (await response.json());
63
+ }
64
+ async patch(path, body) {
65
+ const response = await fetch(new URL(path, this.apiUrl), {
66
+ method: "PATCH",
67
+ headers: {
68
+ "content-type": "application/json",
69
+ ...(this.hostToken ? { authorization: `Bearer ${this.hostToken}` } : {})
70
+ },
71
+ body: JSON.stringify(body)
72
+ });
73
+ if (!response.ok) {
74
+ throw new Error(`${response.status} ${await response.text()}`);
75
+ }
76
+ return (await response.json());
77
+ }
78
+ async post(path, body) {
79
+ const response = await fetch(new URL(path, this.apiUrl), {
80
+ method: "POST",
81
+ headers: {
82
+ "content-type": "application/json",
83
+ ...(this.hostToken ? { authorization: `Bearer ${this.hostToken}` } : {})
84
+ },
85
+ body: JSON.stringify(body)
86
+ });
87
+ if (!response.ok) {
88
+ throw new Error(`${response.status} ${await response.text()}`);
89
+ }
90
+ return (await response.json());
91
+ }
92
+ }
93
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/transport/api-client.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@abitat_reece/host-daemon",
3
+ "private": false,
4
+ "version": "0.1.0",
5
+ "type": "module",
6
+ "description": "Mac host daemon for Abitat Workspace remote Codex control",
7
+ "bin": {
8
+ "abitat-host": "dist/cli/index.js"
9
+ },
10
+ "exports": {
11
+ "./cli": {
12
+ "types": "./dist/cli/index.d.ts",
13
+ "import": "./dist/cli/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "engines": {
20
+ "node": ">=22"
21
+ },
22
+ "dependencies": {
23
+ "node-pty": "^1.1.0",
24
+ "ws": "^8.20.0",
25
+ "@abitat_reece/shared": "0.1.0"
26
+ },
27
+ "devDependencies": {
28
+ "@types/ws": "^8.18.1",
29
+ "tsx": "4.21.0"
30
+ },
31
+ "scripts": {
32
+ "build": "tsc -p tsconfig.json",
33
+ "predev": "pnpm --filter @abitat_reece/shared build",
34
+ "dev": "tsx src/cli/index.ts start",
35
+ "dev:mock": "tsx src/cli/index.ts start --mock",
36
+ "lint": "eslint .",
37
+ "pretest": "pnpm --filter @abitat_reece/shared build",
38
+ "test": "vitest run",
39
+ "typecheck": "tsc -p tsconfig.json --noEmit"
40
+ }
41
+ }