@farmslot/agent-runtime 0.8.1 → 0.10.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 (253) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/README.md +2 -2
  3. package/bin/farmslot-agent.mjs +3 -43
  4. package/dist/execution-template/create.d.ts.map +1 -1
  5. package/dist/execution-template/create.js +4 -9
  6. package/dist/execution-template/create.js.map +1 -1
  7. package/dist/execution-template/execution-template.test.js +85 -34
  8. package/dist/execution-template/execution-template.test.js.map +1 -1
  9. package/dist/execution-template/frontmatter.d.ts +6 -3
  10. package/dist/execution-template/frontmatter.d.ts.map +1 -1
  11. package/dist/execution-template/frontmatter.js +8 -10
  12. package/dist/execution-template/frontmatter.js.map +1 -1
  13. package/dist/execution-template/index.d.ts +2 -2
  14. package/dist/execution-template/index.d.ts.map +1 -1
  15. package/dist/execution-template/index.js +2 -2
  16. package/dist/execution-template/index.js.map +1 -1
  17. package/dist/execution-template/infer.d.ts +2 -3
  18. package/dist/execution-template/infer.d.ts.map +1 -1
  19. package/dist/execution-template/infer.js +2 -19
  20. package/dist/execution-template/infer.js.map +1 -1
  21. package/dist/execution-template/lint.d.ts.map +1 -1
  22. package/dist/execution-template/lint.js +12 -14
  23. package/dist/execution-template/lint.js.map +1 -1
  24. package/dist/execution-template/resolve.d.ts.map +1 -1
  25. package/dist/execution-template/resolve.js +0 -2
  26. package/dist/execution-template/resolve.js.map +1 -1
  27. package/dist/execution-template/select.d.ts.map +1 -1
  28. package/dist/execution-template/select.js +4 -8
  29. package/dist/execution-template/select.js.map +1 -1
  30. package/dist/execution-template/snapshot.d.ts.map +1 -1
  31. package/dist/execution-template/snapshot.js +0 -1
  32. package/dist/execution-template/snapshot.js.map +1 -1
  33. package/dist/execution-template/types.d.ts +10 -5
  34. package/dist/execution-template/types.d.ts.map +1 -1
  35. package/dist/execution-template/types.js.map +1 -1
  36. package/dist/index.d.ts +2 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +2 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/native/account-claude.d.ts +5 -0
  41. package/dist/native/account-claude.d.ts.map +1 -0
  42. package/dist/native/account-claude.js +42 -0
  43. package/dist/native/account-claude.js.map +1 -0
  44. package/dist/native/account-codex.d.ts +4 -0
  45. package/dist/native/account-codex.d.ts.map +1 -0
  46. package/dist/native/account-codex.js +51 -0
  47. package/dist/native/account-codex.js.map +1 -0
  48. package/dist/native/account-common.d.ts +30 -0
  49. package/dist/native/account-common.d.ts.map +1 -0
  50. package/dist/native/account-common.js +155 -0
  51. package/dist/native/account-common.js.map +1 -0
  52. package/dist/native/account-cursor.d.ts +5 -0
  53. package/dist/native/account-cursor.d.ts.map +1 -0
  54. package/dist/native/account-cursor.js +48 -0
  55. package/dist/native/account-cursor.js.map +1 -0
  56. package/dist/native/account-grok.d.ts +4 -0
  57. package/dist/native/account-grok.d.ts.map +1 -0
  58. package/dist/native/account-grok.js +55 -0
  59. package/dist/native/account-grok.js.map +1 -0
  60. package/dist/native/account-observation.test.d.ts +2 -0
  61. package/dist/native/account-observation.test.d.ts.map +1 -0
  62. package/dist/native/account-observation.test.js +256 -0
  63. package/dist/native/account-observation.test.js.map +1 -0
  64. package/dist/native/account-profiles.d.ts +11 -0
  65. package/dist/native/account-profiles.d.ts.map +1 -0
  66. package/dist/native/account-profiles.js +172 -0
  67. package/dist/native/account-profiles.js.map +1 -0
  68. package/dist/native/account-profiles.test.d.ts +2 -0
  69. package/dist/native/account-profiles.test.d.ts.map +1 -0
  70. package/dist/native/account-profiles.test.js +172 -0
  71. package/dist/native/account-profiles.test.js.map +1 -0
  72. package/dist/native/account-types.d.ts +11 -0
  73. package/dist/native/account-types.d.ts.map +1 -0
  74. package/dist/native/account-types.js +2 -0
  75. package/dist/native/account-types.js.map +1 -0
  76. package/dist/native/acp-requests.d.ts +11 -0
  77. package/dist/native/acp-requests.d.ts.map +1 -0
  78. package/dist/native/acp-requests.js +109 -0
  79. package/dist/native/acp-requests.js.map +1 -0
  80. package/dist/native/acp-rpc.d.ts +15 -0
  81. package/dist/native/acp-rpc.d.ts.map +1 -0
  82. package/dist/native/acp-rpc.js +73 -0
  83. package/dist/native/acp-rpc.js.map +1 -0
  84. package/dist/native/acp.d.ts +15 -0
  85. package/dist/native/acp.d.ts.map +1 -0
  86. package/dist/native/acp.js +285 -0
  87. package/dist/native/acp.js.map +1 -0
  88. package/dist/native/acp.test.d.ts +2 -0
  89. package/dist/native/acp.test.d.ts.map +1 -0
  90. package/dist/native/acp.test.js +257 -0
  91. package/dist/native/acp.test.js.map +1 -0
  92. package/dist/native/affinity.test.d.ts +2 -0
  93. package/dist/native/affinity.test.d.ts.map +1 -0
  94. package/dist/native/affinity.test.js +30 -0
  95. package/dist/native/affinity.test.js.map +1 -0
  96. package/dist/native/claude.d.ts +11 -0
  97. package/dist/native/claude.d.ts.map +1 -0
  98. package/dist/native/claude.js +504 -0
  99. package/dist/native/claude.js.map +1 -0
  100. package/dist/native/client.d.ts +34 -0
  101. package/dist/native/client.d.ts.map +1 -0
  102. package/dist/native/client.js +217 -0
  103. package/dist/native/client.js.map +1 -0
  104. package/dist/native/codex.d.ts +3 -0
  105. package/dist/native/codex.d.ts.map +1 -0
  106. package/dist/native/codex.js +324 -0
  107. package/dist/native/codex.js.map +1 -0
  108. package/dist/native/cursor-model.d.ts +6 -0
  109. package/dist/native/cursor-model.d.ts.map +1 -0
  110. package/dist/native/cursor-model.js +74 -0
  111. package/dist/native/cursor-model.js.map +1 -0
  112. package/dist/native/cursor-model.test.d.ts +2 -0
  113. package/dist/native/cursor-model.test.d.ts.map +1 -0
  114. package/dist/native/cursor-model.test.js +40 -0
  115. package/dist/native/cursor-model.test.js.map +1 -0
  116. package/dist/native/cursor.d.ts +2 -0
  117. package/dist/native/cursor.d.ts.map +1 -0
  118. package/dist/native/cursor.js +30 -0
  119. package/dist/native/cursor.js.map +1 -0
  120. package/dist/native/durability.test.d.ts +2 -0
  121. package/dist/native/durability.test.d.ts.map +1 -0
  122. package/dist/native/durability.test.js +976 -0
  123. package/dist/native/durability.test.js.map +1 -0
  124. package/dist/native/filesystem-policy.test.d.ts +2 -0
  125. package/dist/native/filesystem-policy.test.d.ts.map +1 -0
  126. package/dist/native/filesystem-policy.test.js +136 -0
  127. package/dist/native/filesystem-policy.test.js.map +1 -0
  128. package/dist/native/grok.d.ts +2 -0
  129. package/dist/native/grok.d.ts.map +1 -0
  130. package/dist/native/grok.js +17 -0
  131. package/dist/native/grok.js.map +1 -0
  132. package/dist/native/host.d.ts +2 -0
  133. package/dist/native/host.d.ts.map +1 -0
  134. package/dist/native/host.js +129 -0
  135. package/dist/native/host.js.map +1 -0
  136. package/dist/native/index.d.ts +7 -0
  137. package/dist/native/index.d.ts.map +1 -0
  138. package/dist/native/index.js +6 -0
  139. package/dist/native/index.js.map +1 -0
  140. package/dist/native/ipc.d.ts +108 -0
  141. package/dist/native/ipc.d.ts.map +1 -0
  142. package/dist/native/ipc.js +181 -0
  143. package/dist/native/ipc.js.map +1 -0
  144. package/dist/native/manager.d.ts +61 -0
  145. package/dist/native/manager.d.ts.map +1 -0
  146. package/dist/native/manager.js +850 -0
  147. package/dist/native/manager.js.map +1 -0
  148. package/dist/native/process-tree.d.ts +26 -0
  149. package/dist/native/process-tree.d.ts.map +1 -0
  150. package/dist/native/process-tree.js +231 -0
  151. package/dist/native/process-tree.js.map +1 -0
  152. package/dist/native/process-tree.test.d.ts +2 -0
  153. package/dist/native/process-tree.test.d.ts.map +1 -0
  154. package/dist/native/process-tree.test.js +174 -0
  155. package/dist/native/process-tree.test.js.map +1 -0
  156. package/dist/native/process.d.ts +38 -0
  157. package/dist/native/process.d.ts.map +1 -0
  158. package/dist/native/process.js +246 -0
  159. package/dist/native/process.js.map +1 -0
  160. package/dist/native/process.test.d.ts +2 -0
  161. package/dist/native/process.test.d.ts.map +1 -0
  162. package/dist/native/process.test.js +56 -0
  163. package/dist/native/process.test.js.map +1 -0
  164. package/dist/native/profile-service.d.ts +5 -0
  165. package/dist/native/profile-service.d.ts.map +1 -0
  166. package/dist/native/profile-service.js +76 -0
  167. package/dist/native/profile-service.js.map +1 -0
  168. package/dist/native/registry.d.ts +20 -0
  169. package/dist/native/registry.d.ts.map +1 -0
  170. package/dist/native/registry.js +89 -0
  171. package/dist/native/registry.js.map +1 -0
  172. package/dist/native/registry.test.d.ts +2 -0
  173. package/dist/native/registry.test.d.ts.map +1 -0
  174. package/dist/native/registry.test.js +13 -0
  175. package/dist/native/registry.test.js.map +1 -0
  176. package/dist/native/review-sandbox.d.ts +12 -0
  177. package/dist/native/review-sandbox.d.ts.map +1 -0
  178. package/dist/native/review-sandbox.js +6 -0
  179. package/dist/native/review-sandbox.js.map +1 -0
  180. package/dist/native/review-sandbox.test.d.ts +2 -0
  181. package/dist/native/review-sandbox.test.d.ts.map +1 -0
  182. package/dist/native/review-sandbox.test.js +40 -0
  183. package/dist/native/review-sandbox.test.js.map +1 -0
  184. package/dist/native/service.d.ts +7 -0
  185. package/dist/native/service.d.ts.map +1 -0
  186. package/dist/native/service.js +151 -0
  187. package/dist/native/service.js.map +1 -0
  188. package/dist/native/storage.d.ts +11 -0
  189. package/dist/native/storage.d.ts.map +1 -0
  190. package/dist/native/storage.js +102 -0
  191. package/dist/native/storage.js.map +1 -0
  192. package/dist/native/supervisor.d.ts +2 -0
  193. package/dist/native/supervisor.d.ts.map +1 -0
  194. package/dist/native/supervisor.js +215 -0
  195. package/dist/native/supervisor.js.map +1 -0
  196. package/dist/native/types.d.ts +36 -0
  197. package/dist/native/types.d.ts.map +1 -0
  198. package/dist/native/types.js +2 -0
  199. package/dist/native/types.js.map +1 -0
  200. package/dist/native/worker-history.d.ts +16 -0
  201. package/dist/native/worker-history.d.ts.map +1 -0
  202. package/dist/native/worker-history.js +77 -0
  203. package/dist/native/worker-history.js.map +1 -0
  204. package/dist/native/worker-history.test.d.ts +2 -0
  205. package/dist/native/worker-history.test.d.ts.map +1 -0
  206. package/dist/native/worker-history.test.js +195 -0
  207. package/dist/native/worker-history.test.js.map +1 -0
  208. package/dist/native/worker-launch.d.ts +72 -0
  209. package/dist/native/worker-launch.d.ts.map +1 -0
  210. package/dist/native/worker-launch.js +134 -0
  211. package/dist/native/worker-launch.js.map +1 -0
  212. package/dist/native/worker-launch.test.d.ts +2 -0
  213. package/dist/native/worker-launch.test.d.ts.map +1 -0
  214. package/dist/native/worker-launch.test.js +61 -0
  215. package/dist/native/worker-launch.test.js.map +1 -0
  216. package/dist/native/worker-relocation.test.d.ts +2 -0
  217. package/dist/native/worker-relocation.test.d.ts.map +1 -0
  218. package/dist/native/worker-relocation.test.js +110 -0
  219. package/dist/native/worker-relocation.test.js.map +1 -0
  220. package/dist/native/worker-service.d.ts +4 -0
  221. package/dist/native/worker-service.d.ts.map +1 -0
  222. package/dist/native/worker-service.js +85 -0
  223. package/dist/native/worker-service.js.map +1 -0
  224. package/dist/native/workspace-files.d.ts +6 -0
  225. package/dist/native/workspace-files.d.ts.map +1 -0
  226. package/dist/native/workspace-files.js +62 -0
  227. package/dist/native/workspace-files.js.map +1 -0
  228. package/dist/native/workspace.d.ts +5 -0
  229. package/dist/native/workspace.d.ts.map +1 -0
  230. package/dist/native/workspace.js +120 -0
  231. package/dist/native/workspace.js.map +1 -0
  232. package/dist/task-init/index.d.ts +70 -0
  233. package/dist/task-init/index.d.ts.map +1 -0
  234. package/dist/task-init/index.js +124 -0
  235. package/dist/task-init/index.js.map +1 -0
  236. package/dist/task-init/task-document.d.ts +98 -0
  237. package/dist/task-init/task-document.d.ts.map +1 -0
  238. package/dist/task-init/task-document.js +184 -0
  239. package/dist/task-init/task-document.js.map +1 -0
  240. package/dist/task-init/write.d.ts +42 -0
  241. package/dist/task-init/write.d.ts.map +1 -0
  242. package/dist/task-init/write.js +63 -0
  243. package/dist/task-init/write.js.map +1 -0
  244. package/package.json +13 -4
  245. package/scripts/checklist-target.cjs +5 -3
  246. package/scripts/cursor-session-discovery.cjs +48 -0
  247. package/scripts/execution-template-cli.mjs +17 -18
  248. package/scripts/mark-checklist-step.cjs +1 -1
  249. package/scripts/review-filesystem.cjs +39 -0
  250. package/scripts/review-session.cjs +45 -0
  251. package/scripts/review-terminal.cjs +134 -0
  252. package/scripts/task-init-cli.mjs +166 -0
  253. package/scripts/worker-terminal-contract.cjs +15 -3
@@ -0,0 +1,217 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { createHash } from 'node:crypto';
3
+ import { closeSync, existsSync, openSync } from 'node:fs';
4
+ import { join, resolve } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { farmslotHome } from '@farmslot/protocol/node/farmslot-home';
7
+ import { requestHost } from './ipc.js';
8
+ import { alive, privateDirectory, readJson } from './storage.js';
9
+ import { NATIVE_WORKER_CANCEL, NATIVE_WORKER_CLOSE, NATIVE_WORKER_ENSURE, NATIVE_WORKER_INTERRUPT, NATIVE_WORKER_METHODS, NATIVE_WORKER_READ, NATIVE_WORKER_RESPOND, NATIVE_WORKER_RESUME, NATIVE_WORKER_SEND, NATIVE_WORKER_TRANSFER, } from './worker-launch.js';
10
+ /** The same client is usable by gateway and execution-node services. */
11
+ export class NativeSessionClient {
12
+ constructor(root = process.env.FARMSLOT_NATIVE_STATE_DIR ?? join(farmslotHome(), 'native-sessions'), executionNodeId = 'local') {
13
+ this.executionNodeId = executionNodeId;
14
+ this.root = resolve(root);
15
+ }
16
+ workerStateDirectory(owner, sessionId) {
17
+ return join(this.root, 'workers', createHash('sha256').update(owner).digest('hex'), sessionId);
18
+ }
19
+ prepareWorkerState(owner, sessionId) {
20
+ const state = this.workerStateDirectory(owner, sessionId);
21
+ for (const directory of [this.root, join(this.root, 'workers'), resolve(state, '..'), state])
22
+ privateDirectory(directory);
23
+ return state;
24
+ }
25
+ async host() {
26
+ privateDirectory(this.root);
27
+ const path = join(this.root, 'host.json');
28
+ if (existsSync(path)) {
29
+ const host = readJson(path);
30
+ this.assertHostNode(host);
31
+ if (alive(host.pid) && existsSync(join(this.root, 'ready.json')) && existsSync(host.socket))
32
+ return host;
33
+ }
34
+ if (this.starting)
35
+ return this.starting;
36
+ this.starting = this.start();
37
+ try {
38
+ return await this.starting;
39
+ }
40
+ finally {
41
+ this.starting = undefined;
42
+ }
43
+ }
44
+ assertHostNode(host) {
45
+ if ((host.executionNodeId ?? 'local') !== this.executionNodeId)
46
+ throw new Error('Native state directory belongs to another execution node');
47
+ }
48
+ async start() {
49
+ privateDirectory(this.root);
50
+ const source = import.meta.url.endsWith('.ts');
51
+ const entry = fileURLToPath(new URL(`./supervisor.${source ? 'ts' : 'js'}`, import.meta.url));
52
+ const args = source
53
+ ? ['--import', import.meta.resolve('tsx'), entry, this.root]
54
+ : [entry, this.root];
55
+ const log = openSync(join(this.root, 'host.log'), 'a', 0o600);
56
+ const child = spawn(process.execPath, args, {
57
+ detached: true,
58
+ stdio: ['ignore', log, log],
59
+ env: { ...process.env, FARMSLOT_NATIVE_EXECUTION_NODE_ID: this.executionNodeId },
60
+ });
61
+ closeSync(log);
62
+ child.unref();
63
+ let spawnError;
64
+ child.on('error', (error) => {
65
+ spawnError = error;
66
+ });
67
+ const deadline = Date.now() + 10_000;
68
+ while (Date.now() < deadline) {
69
+ if (spawnError)
70
+ throw spawnError;
71
+ const path = join(this.root, 'host.json');
72
+ if (existsSync(path)) {
73
+ const host = readJson(path);
74
+ this.assertHostNode(host);
75
+ if (alive(host.pid) && existsSync(join(this.root, 'ready.json')) && existsSync(host.socket))
76
+ return host;
77
+ }
78
+ await new Promise((resolve) => setTimeout(resolve, 25));
79
+ }
80
+ throw new Error(`Native host unavailable; inspect ${join(this.root, 'host.log')}. No command was retried.`);
81
+ }
82
+ async call(request) {
83
+ const host = await this.host();
84
+ if ('params' in request &&
85
+ 'profileId' in request.params &&
86
+ request.params.profileId &&
87
+ !host.supportsProfiles)
88
+ throw new Error('Native host upgrade required for account profiles; existing sessions remain available');
89
+ if (request.method === NATIVE_WORKER_RESUME &&
90
+ request.params.relocation &&
91
+ !host.supportsWorkerRelocation)
92
+ throw new Error('Native host upgrade required for worker relocation');
93
+ if ((request.method === NATIVE_WORKER_RESUME ||
94
+ (request.method === NATIVE_WORKER_CANCEL && request.resumeCommandId)) &&
95
+ !host.supportsWorkerResumeFence)
96
+ throw new Error('Native host upgrade required for durable worker resume cancellation');
97
+ if (NATIVE_WORKER_METHODS.includes(request.method) && !host.supportsWorkers)
98
+ throw new Error('Native host upgrade required for worker launch configuration; existing sessions remain available');
99
+ if (request.method === 'ensure' && !host.supportsEnsure)
100
+ throw new Error('Native host upgrade required for idempotent creation; existing sessions remain available');
101
+ const result = await requestHost(host, request);
102
+ if ('params' in request && request.params.profileId) {
103
+ const session = result;
104
+ if (session.profileId !== request.params.profileId ||
105
+ session.accountContextId !== request.params.accountContextId)
106
+ throw new Error('Native host returned a different account profile binding');
107
+ }
108
+ return result;
109
+ }
110
+ create(owner, params) {
111
+ if (params.executionNodeId !== undefined && params.executionNodeId !== this.executionNodeId)
112
+ throw new Error('Native session targets another execution node');
113
+ return this.call({ method: 'create', owner, params });
114
+ }
115
+ ensure(owner, params) {
116
+ if (params.executionNodeId !== undefined && params.executionNodeId !== this.executionNodeId)
117
+ throw new Error('Native session targets another execution node');
118
+ return this.call({ method: 'ensure', owner, params });
119
+ }
120
+ ensureWorker(owner, params, launch) {
121
+ if (params.executionNodeId !== undefined && params.executionNodeId !== this.executionNodeId)
122
+ throw new Error('Native worker targets another execution node');
123
+ return this.call({ method: NATIVE_WORKER_ENSURE, owner, params, launch });
124
+ }
125
+ resumeWorker(owner, params, launch) {
126
+ if (params.executionNodeId !== undefined && params.executionNodeId !== this.executionNodeId)
127
+ throw new Error('Native worker targets another execution node');
128
+ return this.call({ method: NATIVE_WORKER_RESUME, owner, params, launch });
129
+ }
130
+ workerTarget(target) {
131
+ if (target.executionNodeId !== undefined && target.executionNodeId !== this.executionNodeId)
132
+ throw new Error('Native worker targets another execution node');
133
+ return { id: target.sessionId, generation: target.generation, leaseId: target.leaseId };
134
+ }
135
+ transferWorker(owner, target, launch) {
136
+ return this.call({
137
+ method: NATIVE_WORKER_TRANSFER,
138
+ owner,
139
+ ...this.workerTarget(target),
140
+ launch,
141
+ });
142
+ }
143
+ sendWorker(owner, target, commandId, text) {
144
+ return this.call({
145
+ method: NATIVE_WORKER_SEND,
146
+ owner,
147
+ ...this.workerTarget(target),
148
+ commandId,
149
+ text,
150
+ });
151
+ }
152
+ closeWorker(owner, target) {
153
+ return this.call({
154
+ method: NATIVE_WORKER_CLOSE,
155
+ owner,
156
+ ...this.workerTarget(target),
157
+ });
158
+ }
159
+ interruptWorker(owner, target) {
160
+ return this.call({
161
+ method: NATIVE_WORKER_INTERRUPT,
162
+ owner,
163
+ ...this.workerTarget(target),
164
+ });
165
+ }
166
+ cancelWorker(owner, target) {
167
+ if (target.executionNodeId !== undefined && target.executionNodeId !== this.executionNodeId)
168
+ throw new Error('Native worker targets another execution node');
169
+ return this.call({
170
+ method: NATIVE_WORKER_CANCEL,
171
+ owner,
172
+ id: target.sessionId,
173
+ generation: target.generation,
174
+ leaseId: target.leaseId,
175
+ sourceLeaseId: target.sourceLeaseId,
176
+ resumeCommandId: target.resumeCommandId,
177
+ });
178
+ }
179
+ respondWorker(owner, target, requestId, response) {
180
+ return this.call({
181
+ method: NATIVE_WORKER_RESPOND,
182
+ owner,
183
+ ...this.workerTarget(target),
184
+ requestId,
185
+ response,
186
+ });
187
+ }
188
+ list(owner) {
189
+ return this.call({ method: 'list', owner });
190
+ }
191
+ read(owner, id, after, limit) {
192
+ return this.call({ method: 'read', owner, id, after, limit });
193
+ }
194
+ readWorker(owner, id, leaseId, after, limit) {
195
+ return this.call({
196
+ method: NATIVE_WORKER_READ,
197
+ owner,
198
+ id,
199
+ leaseId,
200
+ after,
201
+ limit,
202
+ });
203
+ }
204
+ send(owner, id, commandId, text) {
205
+ return this.call({ method: 'send', owner, id, commandId, text });
206
+ }
207
+ respond(owner, id, requestId, response) {
208
+ return this.call({ method: 'respond', owner, id, requestId, response });
209
+ }
210
+ interrupt(owner, id) {
211
+ return this.call({ method: 'interrupt', owner, id });
212
+ }
213
+ close(owner, id) {
214
+ return this.call({ method: 'close', owner, id });
215
+ }
216
+ }
217
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/native/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { NativeAdapter } from './types.js';
2
+ export declare const codexNativeAdapter: NativeAdapter;
3
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/native/codex.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAC;AA0DlE,eAAO,MAAM,kBAAkB,EAAE,aAwRhC,CAAC"}
@@ -0,0 +1,324 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { realpath } from 'node:fs/promises';
3
+ import { promisify } from 'node:util';
4
+ import { JsonLineProcess } from './process.js';
5
+ import { validateNativeWorkerFilesystemPolicy } from './worker-launch.js';
6
+ const READ_ONLY_PROFILE = 'farmslot-read-only-source';
7
+ /** Git's shared metadata can live outside a linked worktree's writable root. */
8
+ async function gitWritableRoot(cwd, env) {
9
+ let common;
10
+ try {
11
+ const result = await promisify(execFile)('git', ['rev-parse', '--path-format=absolute', '--git-common-dir'], { cwd, env, timeout: 10000 });
12
+ common = result.stdout.trim();
13
+ }
14
+ catch (error) {
15
+ // Non-repository conversations need no extra write grant. Git's refusal
16
+ // leaves the ordinary workspace sandbox in place rather than broadening it.
17
+ if (error.code === 128)
18
+ return undefined;
19
+ throw error;
20
+ }
21
+ return realpath(common);
22
+ }
23
+ function wireObject(value) {
24
+ if (!value || typeof value !== 'object' || Array.isArray(value))
25
+ throw new Error('Expected a native protocol object');
26
+ return value;
27
+ }
28
+ function wireString(value) {
29
+ if (typeof value !== 'string')
30
+ throw new Error('Expected a native protocol string');
31
+ return value;
32
+ }
33
+ function optionalString(value) {
34
+ return typeof value === 'string' ? value : undefined;
35
+ }
36
+ function questions(value) {
37
+ if (value === undefined)
38
+ return undefined;
39
+ if (!Array.isArray(value))
40
+ throw new Error('Expected native question list');
41
+ return value.map((entry) => {
42
+ const question = wireObject(entry);
43
+ const options = question.options ?? [];
44
+ if (!Array.isArray(options))
45
+ throw new Error('Expected native question options');
46
+ return {
47
+ id: wireString(question.id),
48
+ prompt: wireString(question.question),
49
+ multiSelect: false,
50
+ options: options.map((entry) => {
51
+ const option = wireObject(entry);
52
+ return { label: wireString(option.label), description: optionalString(option.description) };
53
+ }),
54
+ };
55
+ });
56
+ }
57
+ export const codexNativeAdapter = {
58
+ filesystemPolicyUnavailableReason: (version) => {
59
+ const parsed = /\b(\d+)\.(\d+)\.(\d+)\b/.exec(version);
60
+ return parsed && (Number(parsed[1]) > 0 || Number(parsed[2]) >= 154)
61
+ ? undefined
62
+ : 'Read-only source review requires Codex 0.154.0 or newer';
63
+ },
64
+ capabilities: {
65
+ modes: ['default', 'plan'],
66
+ streaming: true,
67
+ tools: true,
68
+ approvals: true,
69
+ questions: false,
70
+ interrupt: true,
71
+ resume: true,
72
+ resumeAcrossWorkspaces: true,
73
+ },
74
+ async start(options, emit) {
75
+ let nativeSessionId = '';
76
+ let resolvedModel = options.model;
77
+ let turnId;
78
+ let commandId;
79
+ let startingTurn;
80
+ const requests = new Map();
81
+ const publish = (event) => emit({ commandId, turnId, ...event });
82
+ const pendingTools = new Map();
83
+ const process = new JsonLineProcess(options.executable, ['app-server'], options, (message) => {
84
+ const params = wireObject(message.params ?? {});
85
+ const method = optionalString(message.method);
86
+ if (params.threadId && nativeSessionId && params.threadId !== nativeSessionId)
87
+ return;
88
+ if (message.id !== undefined && method) {
89
+ if (typeof message.id !== 'string' && typeof message.id !== 'number')
90
+ throw new Error('Expected a native request ID');
91
+ const requestId = String(message.id);
92
+ if ([
93
+ 'item/commandExecution/requestApproval',
94
+ 'item/fileChange/requestApproval',
95
+ 'item/permissions/requestApproval',
96
+ 'item/tool/requestUserInput',
97
+ ].includes(method)) {
98
+ requests.set(requestId, { id: message.id, method, params });
99
+ publish({
100
+ type: message.method === 'item/tool/requestUserInput'
101
+ ? 'question.requested'
102
+ : 'approval.requested',
103
+ nativeId: requestId,
104
+ request: {
105
+ id: requestId,
106
+ title: message.method === 'item/tool/requestUserInput'
107
+ ? 'Answer runner questions'
108
+ : 'Allow runner action?',
109
+ detail: optionalString(params.reason) ?? optionalString(params.command),
110
+ tool: pendingTools.get(optionalString(params.itemId) ?? ''),
111
+ questions: questions(params.questions),
112
+ },
113
+ data: { ...params, method: message.method },
114
+ });
115
+ }
116
+ else {
117
+ // Unsupported server requests fail closed instead of silently granting access.
118
+ process.write({
119
+ id: message.id,
120
+ error: { code: -32601, message: `Unsupported native request: ${message.method}` },
121
+ });
122
+ publish({ type: 'error', text: `Unsupported native request: ${message.method}` });
123
+ }
124
+ return;
125
+ }
126
+ switch (method) {
127
+ case 'turn/started':
128
+ turnId = wireString(wireObject(params.turn).id);
129
+ publish({ type: 'turn.started', data: { turn: params.turn } });
130
+ break;
131
+ case 'item/agentMessage/delta':
132
+ publish({
133
+ type: 'text.delta',
134
+ nativeId: wireString(params.itemId),
135
+ text: wireString(params.delta),
136
+ });
137
+ break;
138
+ case 'item/started':
139
+ case 'item/completed': {
140
+ const item = wireObject(params.item);
141
+ const itemType = wireString(item.type);
142
+ if (!['userMessage', 'agentMessage', 'reasoning', 'plan'].includes(itemType)) {
143
+ const tool = {
144
+ name: itemType,
145
+ input: item.command ?? item.arguments ?? item.changes,
146
+ output: item.aggregatedOutput ?? item.result,
147
+ status: optionalString(item.status),
148
+ };
149
+ const itemId = wireString(item.id);
150
+ if (message.method === 'item/started')
151
+ pendingTools.set(itemId, tool);
152
+ else
153
+ pendingTools.delete(itemId);
154
+ publish({
155
+ type: message.method === 'item/started' ? 'tool.started' : 'tool.completed',
156
+ nativeId: itemId,
157
+ tool,
158
+ data: item,
159
+ });
160
+ }
161
+ break;
162
+ }
163
+ case 'serverRequest/resolved':
164
+ requests.delete(String(params.requestId));
165
+ publish({ type: 'approval.resolved', nativeId: String(params.requestId) });
166
+ break;
167
+ case 'turn/completed': {
168
+ const turn = wireObject(params.turn);
169
+ const status = turn.status;
170
+ if (status !== 'completed' && status !== 'interrupted' && status !== 'failed')
171
+ throw new Error('Unknown native terminal turn status');
172
+ publish({
173
+ type: 'turn.completed',
174
+ status,
175
+ data: { status, error: turn.error },
176
+ });
177
+ requests.clear();
178
+ pendingTools.clear();
179
+ turnId = undefined;
180
+ commandId = undefined;
181
+ break;
182
+ }
183
+ case 'error':
184
+ publish({
185
+ type: 'error',
186
+ data: params,
187
+ text: optionalString(wireObject(params.error ?? {}).message),
188
+ });
189
+ break;
190
+ }
191
+ }, (error, processStopped) => publish({
192
+ type: 'session.closed',
193
+ ...(error ? { status: 'failed' } : {}),
194
+ data: { processStopped, ...(error ? { error: error.message } : {}) },
195
+ }));
196
+ try {
197
+ await process.request('initialize', {
198
+ clientInfo: { name: 'farmslot', version: '0.1.0' },
199
+ capabilities: { experimentalApi: true },
200
+ });
201
+ process.write({ method: 'initialized', params: {} });
202
+ const gitRoot = options.safetyTier === 'dangerous'
203
+ ? undefined
204
+ : await gitWritableRoot(options.cwd, options.env);
205
+ const filesystemPolicy = options.filesystemPolicy &&
206
+ validateNativeWorkerFilesystemPolicy({
207
+ ...options.filesystemPolicy,
208
+ readOnlyRoots: [...options.filesystemPolicy.readOnlyRoots, ...(gitRoot ? [gitRoot] : [])],
209
+ });
210
+ const result = wireObject(await process.request(options.resumeSessionId ? 'thread/resume' : 'thread/start', {
211
+ ...(options.resumeSessionId ? { threadId: options.resumeSessionId } : {}),
212
+ cwd: options.cwd,
213
+ model: options.model,
214
+ ...(options.filesystemPolicy
215
+ ? {
216
+ approvalPolicy: 'never',
217
+ config: {
218
+ default_permissions: READ_ONLY_PROFILE,
219
+ [`permissions.${READ_ONLY_PROFILE}`]: {
220
+ filesystem: Object.fromEntries([
221
+ ['/', 'read'],
222
+ ...filesystemPolicy.writableRoots.map((root) => [root, 'write']),
223
+ ]),
224
+ },
225
+ },
226
+ }
227
+ : {
228
+ approvalPolicy: options.safetyTier && options.safetyTier !== 'sandboxed' ? 'never' : 'untrusted',
229
+ sandbox: options.safetyTier === 'dangerous' ? 'danger-full-access' : 'workspace-write',
230
+ ...(gitRoot
231
+ ? { config: { 'sandbox_workspace_write.writable_roots': [gitRoot] } }
232
+ : {}),
233
+ }),
234
+ }));
235
+ if (options.filesystemPolicy &&
236
+ wireObject(result.activePermissionProfile).id !== READ_ONLY_PROFILE)
237
+ throw new Error('Native runner did not confirm the read-only source permissions profile');
238
+ nativeSessionId = wireString(wireObject(result.thread).id);
239
+ resolvedModel = optionalString(result.model) ?? options.model;
240
+ if (options.mode === 'plan' && !resolvedModel)
241
+ throw new Error('Native planning mode requires the resolved model');
242
+ if (options.resumeSessionId && nativeSessionId !== options.resumeSessionId)
243
+ throw new Error('Codex resumed a different native session');
244
+ publish({ type: 'session.started', nativeId: nativeSessionId });
245
+ }
246
+ catch (error) {
247
+ await process.close();
248
+ throw error;
249
+ }
250
+ return {
251
+ nativeSessionId,
252
+ capabilities: { ...codexNativeAdapter.capabilities, questions: options.mode === 'plan' },
253
+ async send(text, id) {
254
+ commandId = id;
255
+ // A response proves acceptance; turn/started independently proves execution.
256
+ const result = wireObject(await (startingTurn = process.request('turn/start', {
257
+ threadId: nativeSessionId,
258
+ input: [{ type: 'text', text }],
259
+ ...(options.effort ? { effort: options.effort } : {}),
260
+ ...(options.mode === 'plan'
261
+ ? {
262
+ collaborationMode: {
263
+ mode: 'plan',
264
+ settings: {
265
+ model: resolvedModel,
266
+ reasoning_effort: options.effort ?? 'low',
267
+ developer_instructions: null,
268
+ },
269
+ },
270
+ }
271
+ : {}),
272
+ })));
273
+ if (commandId === id && !turnId)
274
+ turnId = wireString(wireObject(result.turn).id);
275
+ publish({
276
+ type: 'command.accepted',
277
+ commandId: id,
278
+ turnId: wireString(wireObject(result.turn).id),
279
+ text,
280
+ });
281
+ },
282
+ async respond(requestId, response) {
283
+ const request = requests.get(requestId);
284
+ if (!request)
285
+ throw new Error('Native request is stale or belongs to another session');
286
+ let result;
287
+ if (request.method === 'item/tool/requestUserInput') {
288
+ if (!response.answers)
289
+ throw new Error('Question response requires answers');
290
+ result = {
291
+ answers: Object.fromEntries(Object.entries(response.answers).map(([id, answers]) => [id, { answers }])),
292
+ };
293
+ }
294
+ else {
295
+ if (!response.decision)
296
+ throw new Error('Approval response requires a decision');
297
+ result =
298
+ request.method === 'item/permissions/requestApproval'
299
+ ? {
300
+ permissions: response.decision === 'approve' ? request.params.permissions : {},
301
+ scope: 'turn',
302
+ }
303
+ : { decision: response.decision === 'approve' ? 'accept' : 'decline' };
304
+ }
305
+ process.write({ id: request.id, result });
306
+ requests.delete(requestId);
307
+ publish({
308
+ type: 'approval.resolved',
309
+ nativeId: requestId,
310
+ data: { decision: response.decision },
311
+ });
312
+ },
313
+ async interrupt() {
314
+ if (!turnId && startingTurn)
315
+ await startingTurn;
316
+ if (!turnId)
317
+ throw new Error('No active native turn to interrupt');
318
+ await process.request('turn/interrupt', { threadId: nativeSessionId, turnId });
319
+ },
320
+ close: () => process.close(),
321
+ };
322
+ },
323
+ };
324
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/native/codex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type AcpObject } from './acp-rpc.js';
2
+ type Request = (method: string, params: AcpObject) => Promise<unknown>;
3
+ /** Cursor ACP's parameterized model API; CLI --model is ignored by its ACP command. */
4
+ export declare function configureCursorModel(sessionId: string, session: AcpObject, requested: string, request: Request): Promise<void>;
5
+ export {};
6
+ //# sourceMappingURL=cursor-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-model.d.ts","sourceRoot":"","sources":["../../src/native/cursor-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,cAAc,CAAC;AAEpE,KAAK,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvE,uFAAuF;AACvF,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAqEf"}