@roj-ai/standalone-server 0.1.12 → 0.1.14
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/dist/git-instance-fs.d.ts +60 -0
- package/dist/git-instance-fs.d.ts.map +1 -0
- package/dist/git-instance-fs.js +164 -0
- package/dist/git-instance-fs.js.map +1 -0
- package/dist/platform-api.d.ts +3 -0
- package/dist/platform-api.d.ts.map +1 -1
- package/dist/platform-api.js +14 -2
- package/dist/platform-api.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +4 -0
- package/dist/server.js.map +1 -1
- package/package.json +5 -5
- package/src/git-instance-fs.ts +187 -0
- package/src/platform-api.ts +19 -2
- package/src/server.ts +5 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-instance git layout for the standalone server.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors what `roj-platform` does inside an E2B sandbox: each instance owns
|
|
5
|
+
* a bare repo, each session owns a worktree branched from `main`. The SDK
|
|
6
|
+
* receives the worktree path as `workspaceDir` on `sessions.create` and treats
|
|
7
|
+
* it as an opaque directory — it doesn't know about git.
|
|
8
|
+
*
|
|
9
|
+
* {dataPath}/instances/{instanceId}/repo.git/ ← bare, branch `main`
|
|
10
|
+
* {dataPath}/instances/{instanceId}/sessions/{sid}/ ← worktree, branch `session/{sid}`
|
|
11
|
+
*
|
|
12
|
+
* Why a bare repo + worktrees instead of a plain dir per session:
|
|
13
|
+
* - Parallel sessions on one instance need independent commit history.
|
|
14
|
+
* - `git worktree` shares object storage, so the cost is mostly metadata.
|
|
15
|
+
* - Mental model matches platform — agent `git status` / `git log` behave
|
|
16
|
+
* identically against standalone and against E2B.
|
|
17
|
+
*
|
|
18
|
+
* Idempotent: `initInstance` skips if `repo.git` already exists,
|
|
19
|
+
* `addSessionWorktree` skips if the target worktree is already registered.
|
|
20
|
+
* That keeps `roj-standalone` restart-safe — bare repos and worktrees on disk
|
|
21
|
+
* persist across process restarts the same way `LocalRegistry` does.
|
|
22
|
+
*
|
|
23
|
+
* No auto-commit. Resources extracted via `resources.inject` land in the
|
|
24
|
+
* worktree as untracked files; whether to commit them is the agent's call,
|
|
25
|
+
* matching platform behavior.
|
|
26
|
+
*/
|
|
27
|
+
import type { Logger } from '@roj-ai/sdk';
|
|
28
|
+
export declare class GitInstanceFs {
|
|
29
|
+
private readonly dataPath;
|
|
30
|
+
private readonly logger;
|
|
31
|
+
constructor(dataPath: string, logger: Logger);
|
|
32
|
+
instanceDir(instanceId: string): string;
|
|
33
|
+
repoDir(instanceId: string): string;
|
|
34
|
+
worktreeDir(instanceId: string, sessionId: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Idempotently initialize the bare repo for an instance with an empty
|
|
37
|
+
* initial commit on `main`. The commit exists so subsequent
|
|
38
|
+
* `git worktree add -b session/{sid}` calls have something to branch from.
|
|
39
|
+
*/
|
|
40
|
+
initInstance(instanceId: string): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Idempotently add a worktree for `sessionId` on branch `session/{sid}`,
|
|
43
|
+
* branching from `main`. Throws if the target dir exists but is not a valid
|
|
44
|
+
* worktree of this instance's bare repo (unrecoverable conflict).
|
|
45
|
+
*/
|
|
46
|
+
addSessionWorktree(instanceId: string, sessionId: string): Promise<string>;
|
|
47
|
+
/**
|
|
48
|
+
* Remove a session's worktree (filesystem + bookkeeping). Silently no-ops
|
|
49
|
+
* if the worktree was never registered.
|
|
50
|
+
*/
|
|
51
|
+
removeSessionWorktree(instanceId: string, sessionId: string): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Tear down everything for an instance: every worktree, then the
|
|
54
|
+
* bare repo + on-disk dir. Safe to call when nothing exists.
|
|
55
|
+
*/
|
|
56
|
+
removeInstance(instanceId: string): Promise<void>;
|
|
57
|
+
private isLinkedWorktree;
|
|
58
|
+
private git;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=git-instance-fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-instance-fs.d.ts","sourceRoot":"","sources":["../src/git-instance-fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAmBzC,qBAAa,aAAa;IAExB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;IAGhC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIvC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAInC,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAI1D;;;;OAIG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrD;;;;OAIG;IACG,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBhF;;;OAGG;IACG,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjF;;;OAGG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAOzC,gBAAgB;YAYhB,GAAG;CAiBjB"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-instance git layout for the standalone server.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors what `roj-platform` does inside an E2B sandbox: each instance owns
|
|
5
|
+
* a bare repo, each session owns a worktree branched from `main`. The SDK
|
|
6
|
+
* receives the worktree path as `workspaceDir` on `sessions.create` and treats
|
|
7
|
+
* it as an opaque directory — it doesn't know about git.
|
|
8
|
+
*
|
|
9
|
+
* {dataPath}/instances/{instanceId}/repo.git/ ← bare, branch `main`
|
|
10
|
+
* {dataPath}/instances/{instanceId}/sessions/{sid}/ ← worktree, branch `session/{sid}`
|
|
11
|
+
*
|
|
12
|
+
* Why a bare repo + worktrees instead of a plain dir per session:
|
|
13
|
+
* - Parallel sessions on one instance need independent commit history.
|
|
14
|
+
* - `git worktree` shares object storage, so the cost is mostly metadata.
|
|
15
|
+
* - Mental model matches platform — agent `git status` / `git log` behave
|
|
16
|
+
* identically against standalone and against E2B.
|
|
17
|
+
*
|
|
18
|
+
* Idempotent: `initInstance` skips if `repo.git` already exists,
|
|
19
|
+
* `addSessionWorktree` skips if the target worktree is already registered.
|
|
20
|
+
* That keeps `roj-standalone` restart-safe — bare repos and worktrees on disk
|
|
21
|
+
* persist across process restarts the same way `LocalRegistry` does.
|
|
22
|
+
*
|
|
23
|
+
* No auto-commit. Resources extracted via `resources.inject` land in the
|
|
24
|
+
* worktree as untracked files; whether to commit them is the agent's call,
|
|
25
|
+
* matching platform behavior.
|
|
26
|
+
*/
|
|
27
|
+
import { execFile } from 'node:child_process';
|
|
28
|
+
import { existsSync } from 'node:fs';
|
|
29
|
+
import { mkdir, rm } from 'node:fs/promises';
|
|
30
|
+
import { join } from 'node:path';
|
|
31
|
+
import { promisify } from 'node:util';
|
|
32
|
+
const execFileAsync = promisify(execFile);
|
|
33
|
+
// Used for the empty initial commit on `main`. Real commits the agent makes
|
|
34
|
+
// will pick up the host's git config; this just keeps `commit-tree` from
|
|
35
|
+
// failing on machines without `user.name`/`user.email` set.
|
|
36
|
+
const BOOTSTRAP_GIT_ENV = {
|
|
37
|
+
GIT_AUTHOR_NAME: 'roj-standalone',
|
|
38
|
+
GIT_AUTHOR_EMAIL: 'standalone@roj.local',
|
|
39
|
+
GIT_COMMITTER_NAME: 'roj-standalone',
|
|
40
|
+
GIT_COMMITTER_EMAIL: 'standalone@roj.local',
|
|
41
|
+
};
|
|
42
|
+
export class GitInstanceFs {
|
|
43
|
+
dataPath;
|
|
44
|
+
logger;
|
|
45
|
+
constructor(dataPath, logger) {
|
|
46
|
+
this.dataPath = dataPath;
|
|
47
|
+
this.logger = logger;
|
|
48
|
+
}
|
|
49
|
+
instanceDir(instanceId) {
|
|
50
|
+
return join(this.dataPath, 'instances', instanceId);
|
|
51
|
+
}
|
|
52
|
+
repoDir(instanceId) {
|
|
53
|
+
return join(this.instanceDir(instanceId), 'repo.git');
|
|
54
|
+
}
|
|
55
|
+
worktreeDir(instanceId, sessionId) {
|
|
56
|
+
return join(this.instanceDir(instanceId), 'sessions', sessionId);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Idempotently initialize the bare repo for an instance with an empty
|
|
60
|
+
* initial commit on `main`. The commit exists so subsequent
|
|
61
|
+
* `git worktree add -b session/{sid}` calls have something to branch from.
|
|
62
|
+
*/
|
|
63
|
+
async initInstance(instanceId) {
|
|
64
|
+
const repoDir = this.repoDir(instanceId);
|
|
65
|
+
if (existsSync(repoDir)) {
|
|
66
|
+
this.logger.debug('Instance bare repo already exists, skipping init', { instanceId });
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
await mkdir(this.instanceDir(instanceId), { recursive: true });
|
|
70
|
+
await this.git(['init', '--bare', repoDir]);
|
|
71
|
+
// `git init --bare` may default to `master` on older git; normalize so
|
|
72
|
+
// the worktree branch starts from a known parent ref.
|
|
73
|
+
await this.git(['symbolic-ref', 'HEAD', 'refs/heads/main'], { cwd: repoDir });
|
|
74
|
+
const tree = (await this.git(['mktree'], { cwd: repoDir, input: '' })).trim();
|
|
75
|
+
const commit = (await this.git(['commit-tree', tree, '-m', 'Initial commit'], { cwd: repoDir, env: BOOTSTRAP_GIT_ENV })).trim();
|
|
76
|
+
await this.git(['update-ref', 'refs/heads/main', commit], { cwd: repoDir });
|
|
77
|
+
this.logger.info('Initialized instance bare repo', { instanceId, repoDir });
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Idempotently add a worktree for `sessionId` on branch `session/{sid}`,
|
|
81
|
+
* branching from `main`. Throws if the target dir exists but is not a valid
|
|
82
|
+
* worktree of this instance's bare repo (unrecoverable conflict).
|
|
83
|
+
*/
|
|
84
|
+
async addSessionWorktree(instanceId, sessionId) {
|
|
85
|
+
const repoDir = this.repoDir(instanceId);
|
|
86
|
+
const worktreePath = this.worktreeDir(instanceId, sessionId);
|
|
87
|
+
if (!existsSync(repoDir)) {
|
|
88
|
+
throw new Error(`Cannot add session worktree: instance bare repo missing at ${repoDir}`);
|
|
89
|
+
}
|
|
90
|
+
if (existsSync(worktreePath)) {
|
|
91
|
+
if (await this.isLinkedWorktree(repoDir, worktreePath)) {
|
|
92
|
+
this.logger.debug('Session worktree already exists, skipping add', { instanceId, sessionId });
|
|
93
|
+
return worktreePath;
|
|
94
|
+
}
|
|
95
|
+
throw new Error(`Path exists but is not a registered worktree of ${repoDir}: ${worktreePath}`);
|
|
96
|
+
}
|
|
97
|
+
await mkdir(join(this.instanceDir(instanceId), 'sessions'), { recursive: true });
|
|
98
|
+
await this.git(['worktree', 'add', '-b', `session/${sessionId}`, worktreePath, 'main'], { cwd: repoDir });
|
|
99
|
+
this.logger.info('Added session worktree', { instanceId, sessionId, worktreePath });
|
|
100
|
+
return worktreePath;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Remove a session's worktree (filesystem + bookkeeping). Silently no-ops
|
|
104
|
+
* if the worktree was never registered.
|
|
105
|
+
*/
|
|
106
|
+
async removeSessionWorktree(instanceId, sessionId) {
|
|
107
|
+
const repoDir = this.repoDir(instanceId);
|
|
108
|
+
const worktreePath = this.worktreeDir(instanceId, sessionId);
|
|
109
|
+
if (!existsSync(repoDir) || !existsSync(worktreePath))
|
|
110
|
+
return;
|
|
111
|
+
try {
|
|
112
|
+
await this.git(['worktree', 'remove', '--force', worktreePath], { cwd: repoDir });
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
// worktree may already be detached; fall back to filesystem rm + prune.
|
|
116
|
+
this.logger.warn('git worktree remove failed, falling back to rm + prune', {
|
|
117
|
+
instanceId,
|
|
118
|
+
sessionId,
|
|
119
|
+
error: err instanceof Error ? err.message : String(err),
|
|
120
|
+
});
|
|
121
|
+
await rm(worktreePath, { recursive: true, force: true });
|
|
122
|
+
await this.git(['worktree', 'prune'], { cwd: repoDir }).catch(() => { });
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Tear down everything for an instance: every worktree, then the
|
|
127
|
+
* bare repo + on-disk dir. Safe to call when nothing exists.
|
|
128
|
+
*/
|
|
129
|
+
async removeInstance(instanceId) {
|
|
130
|
+
const dir = this.instanceDir(instanceId);
|
|
131
|
+
if (!existsSync(dir))
|
|
132
|
+
return;
|
|
133
|
+
await rm(dir, { recursive: true, force: true });
|
|
134
|
+
this.logger.info('Removed instance directory', { instanceId, dir });
|
|
135
|
+
}
|
|
136
|
+
async isLinkedWorktree(repoDir, worktreePath) {
|
|
137
|
+
try {
|
|
138
|
+
const stdout = await this.git(['worktree', 'list', '--porcelain'], { cwd: repoDir });
|
|
139
|
+
// `worktree` lines look like: `worktree /abs/path` (one per registration).
|
|
140
|
+
return stdout
|
|
141
|
+
.split('\n')
|
|
142
|
+
.some((line) => line.startsWith('worktree ') && line.slice('worktree '.length) === worktreePath);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
async git(args, opts = {}) {
|
|
149
|
+
const env = opts.env ? { ...process.env, ...opts.env } : process.env;
|
|
150
|
+
const child = execFileAsync('git', args, { cwd: opts.cwd, env });
|
|
151
|
+
if (opts.input !== undefined) {
|
|
152
|
+
child.child.stdin?.end(opts.input);
|
|
153
|
+
}
|
|
154
|
+
try {
|
|
155
|
+
const { stdout } = await child;
|
|
156
|
+
return stdout;
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
160
|
+
throw new Error(`git ${args.join(' ')} failed: ${message}`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=git-instance-fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-instance-fs.js","sourceRoot":"","sources":["../src/git-instance-fs.ts"],"names":[],"mappings":"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"}
|
package/dist/platform-api.d.ts
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type { Logger, Preset, SessionManager } from '@roj-ai/sdk';
|
|
17
17
|
import { Hono } from 'hono';
|
|
18
|
+
import type { GitInstanceFs } from './git-instance-fs.js';
|
|
18
19
|
import type { InstanceState } from './instance.js';
|
|
19
20
|
import type { LocalRegistry } from './local-registry.js';
|
|
20
21
|
interface Deps {
|
|
@@ -23,6 +24,8 @@ interface Deps {
|
|
|
23
24
|
logger: Logger;
|
|
24
25
|
presets: Preset[];
|
|
25
26
|
registry: LocalRegistry;
|
|
27
|
+
/** Per-instance bare repo + per-session worktree manager. */
|
|
28
|
+
gitFs: GitInstanceFs;
|
|
26
29
|
/** HMAC secret for signing download tokens (`sessionFiles.createDownloadUrl`). */
|
|
27
30
|
tokenSecret: string;
|
|
28
31
|
/** Externally-reachable base URL (e.g. `http://localhost:8765`) used when minting download URLs. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-api.d.ts","sourceRoot":"","sources":["../src/platform-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"platform-api.d.ts","sourceRoot":"","sources":["../src/platform-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGjE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGxD,UAAU,IAAI;IACb,QAAQ,EAAE,aAAa,CAAA;IACvB,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,aAAa,CAAA;IACvB,6DAA6D;IAC7D,KAAK,EAAE,aAAa,CAAA;IACpB,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAA;IACnB,oGAAoG;IACpG,aAAa,EAAE,MAAM,CAAA;CACrB;AAQD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAuBlD"}
|
package/dist/platform-api.js
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* - instances.archive — no-op; shutdown the server instead
|
|
15
15
|
*/
|
|
16
16
|
import { SessionId } from '@roj-ai/sdk';
|
|
17
|
+
import { randomUUID } from 'node:crypto';
|
|
17
18
|
import { Hono } from 'hono';
|
|
18
19
|
import { signFileToken } from './signed-token.js';
|
|
19
20
|
export function createPlatformApi(deps) {
|
|
@@ -56,13 +57,24 @@ async function dispatch(deps, method, input) {
|
|
|
56
57
|
// resources must land in the workspace before the agent's first inference so
|
|
57
58
|
// the agent sees a non-empty workspace. Mirrors roj-platform's project-init
|
|
58
59
|
// (inject-resources → activatePendingSession with initialPrompt).
|
|
60
|
+
//
|
|
61
|
+
// SessionId is minted up-front (rather than letting the SDK generate one) so we
|
|
62
|
+
// can create the matching git worktree before the SDK initializes the session
|
|
63
|
+
// — the worktree path is then passed through as `workspaceDir`.
|
|
59
64
|
async function startSession(deps, input) {
|
|
65
|
+
const sessionId = randomUUID();
|
|
66
|
+
const workspaceDir = await deps.gitFs.addSessionWorktree(deps.instance.id, sessionId);
|
|
60
67
|
const created = await deps.sessionManager.callManagerMethod('sessions.create', {
|
|
61
68
|
presetId: input.presetId,
|
|
69
|
+
sessionId,
|
|
70
|
+
workspaceDir,
|
|
62
71
|
});
|
|
63
|
-
if (!created.ok)
|
|
72
|
+
if (!created.ok) {
|
|
73
|
+
// Roll back the worktree we just created so a retry isn't blocked by an
|
|
74
|
+
// orphaned dir. Best-effort — failure here is logged inside removeSessionWorktree.
|
|
75
|
+
await deps.gitFs.removeSessionWorktree(deps.instance.id, sessionId);
|
|
64
76
|
throw new Error(created.error.message);
|
|
65
|
-
|
|
77
|
+
}
|
|
66
78
|
const resources = resolveSessionResources(deps, input.presetId, input.resourceIds);
|
|
67
79
|
for (const resource of resources) {
|
|
68
80
|
await injectRegistryResource(deps, sessionId, resource);
|
package/dist/platform-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-api.js","sourceRoot":"","sources":["../src/platform-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform-api.js","sourceRoot":"","sources":["../src/platform-api.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAa,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAa,cAAc,EAAE,MAAM,aAAa,CAAA;AAUlH,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAOlE,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAA;IAC/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;IAChC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACvC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACjF;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,aAAa,CAAA;IACvB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAA;IACZ,0FAA0F;IAC1F,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkJtG"}
|
package/dist/server.js
CHANGED
|
@@ -19,6 +19,7 @@ import { createBunWebSocketHandlers } from '@roj-ai/transport/bun';
|
|
|
19
19
|
import { Hono } from 'hono';
|
|
20
20
|
import { cors } from 'hono/cors';
|
|
21
21
|
import { createFilesUploadRoute } from './files-upload-route.js';
|
|
22
|
+
import { GitInstanceFs } from './git-instance-fs.js';
|
|
22
23
|
import { createInstance } from './instance.js';
|
|
23
24
|
import { LocalRegistry } from './local-registry.js';
|
|
24
25
|
import { createPlatformApi } from './platform-api.js';
|
|
@@ -66,12 +67,15 @@ export async function startStandaloneServer(options) {
|
|
|
66
67
|
if (options.localResources?.length) {
|
|
67
68
|
await registry.bootstrapLocalResources(options.localResources);
|
|
68
69
|
}
|
|
70
|
+
const gitFs = new GitInstanceFs(config.dataPath, logger);
|
|
71
|
+
await gitFs.initInstance(instance.id);
|
|
69
72
|
const platformApp = createPlatformApi({
|
|
70
73
|
instance,
|
|
71
74
|
sessionManager,
|
|
72
75
|
logger,
|
|
73
76
|
presets,
|
|
74
77
|
registry,
|
|
78
|
+
gitFs,
|
|
75
79
|
tokenSecret,
|
|
76
80
|
publicBaseUrl,
|
|
77
81
|
});
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@roj-ai/standalone-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"type-check": "tsc --noEmit"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@roj-ai/client": "^0.1.
|
|
37
|
-
"@roj-ai/sdk": "^0.1.
|
|
38
|
-
"@roj-ai/shared": "^0.1.
|
|
39
|
-
"@roj-ai/transport": "^0.1.
|
|
36
|
+
"@roj-ai/client": "^0.1.14",
|
|
37
|
+
"@roj-ai/sdk": "^0.1.14",
|
|
38
|
+
"@roj-ai/shared": "^0.1.14",
|
|
39
|
+
"@roj-ai/transport": "^0.1.14",
|
|
40
40
|
"hono": "^4.10.7"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-instance git layout for the standalone server.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors what `roj-platform` does inside an E2B sandbox: each instance owns
|
|
5
|
+
* a bare repo, each session owns a worktree branched from `main`. The SDK
|
|
6
|
+
* receives the worktree path as `workspaceDir` on `sessions.create` and treats
|
|
7
|
+
* it as an opaque directory — it doesn't know about git.
|
|
8
|
+
*
|
|
9
|
+
* {dataPath}/instances/{instanceId}/repo.git/ ← bare, branch `main`
|
|
10
|
+
* {dataPath}/instances/{instanceId}/sessions/{sid}/ ← worktree, branch `session/{sid}`
|
|
11
|
+
*
|
|
12
|
+
* Why a bare repo + worktrees instead of a plain dir per session:
|
|
13
|
+
* - Parallel sessions on one instance need independent commit history.
|
|
14
|
+
* - `git worktree` shares object storage, so the cost is mostly metadata.
|
|
15
|
+
* - Mental model matches platform — agent `git status` / `git log` behave
|
|
16
|
+
* identically against standalone and against E2B.
|
|
17
|
+
*
|
|
18
|
+
* Idempotent: `initInstance` skips if `repo.git` already exists,
|
|
19
|
+
* `addSessionWorktree` skips if the target worktree is already registered.
|
|
20
|
+
* That keeps `roj-standalone` restart-safe — bare repos and worktrees on disk
|
|
21
|
+
* persist across process restarts the same way `LocalRegistry` does.
|
|
22
|
+
*
|
|
23
|
+
* No auto-commit. Resources extracted via `resources.inject` land in the
|
|
24
|
+
* worktree as untracked files; whether to commit them is the agent's call,
|
|
25
|
+
* matching platform behavior.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
import type { Logger } from '@roj-ai/sdk'
|
|
29
|
+
import { execFile } from 'node:child_process'
|
|
30
|
+
import { existsSync } from 'node:fs'
|
|
31
|
+
import { mkdir, rm } from 'node:fs/promises'
|
|
32
|
+
import { join } from 'node:path'
|
|
33
|
+
import { promisify } from 'node:util'
|
|
34
|
+
|
|
35
|
+
const execFileAsync = promisify(execFile)
|
|
36
|
+
|
|
37
|
+
// Used for the empty initial commit on `main`. Real commits the agent makes
|
|
38
|
+
// will pick up the host's git config; this just keeps `commit-tree` from
|
|
39
|
+
// failing on machines without `user.name`/`user.email` set.
|
|
40
|
+
const BOOTSTRAP_GIT_ENV = {
|
|
41
|
+
GIT_AUTHOR_NAME: 'roj-standalone',
|
|
42
|
+
GIT_AUTHOR_EMAIL: 'standalone@roj.local',
|
|
43
|
+
GIT_COMMITTER_NAME: 'roj-standalone',
|
|
44
|
+
GIT_COMMITTER_EMAIL: 'standalone@roj.local',
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export class GitInstanceFs {
|
|
48
|
+
constructor(
|
|
49
|
+
private readonly dataPath: string,
|
|
50
|
+
private readonly logger: Logger,
|
|
51
|
+
) {}
|
|
52
|
+
|
|
53
|
+
instanceDir(instanceId: string): string {
|
|
54
|
+
return join(this.dataPath, 'instances', instanceId)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
repoDir(instanceId: string): string {
|
|
58
|
+
return join(this.instanceDir(instanceId), 'repo.git')
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
worktreeDir(instanceId: string, sessionId: string): string {
|
|
62
|
+
return join(this.instanceDir(instanceId), 'sessions', sessionId)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Idempotently initialize the bare repo for an instance with an empty
|
|
67
|
+
* initial commit on `main`. The commit exists so subsequent
|
|
68
|
+
* `git worktree add -b session/{sid}` calls have something to branch from.
|
|
69
|
+
*/
|
|
70
|
+
async initInstance(instanceId: string): Promise<void> {
|
|
71
|
+
const repoDir = this.repoDir(instanceId)
|
|
72
|
+
if (existsSync(repoDir)) {
|
|
73
|
+
this.logger.debug('Instance bare repo already exists, skipping init', { instanceId })
|
|
74
|
+
return
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
await mkdir(this.instanceDir(instanceId), { recursive: true })
|
|
78
|
+
await this.git(['init', '--bare', repoDir])
|
|
79
|
+
// `git init --bare` may default to `master` on older git; normalize so
|
|
80
|
+
// the worktree branch starts from a known parent ref.
|
|
81
|
+
await this.git(['symbolic-ref', 'HEAD', 'refs/heads/main'], { cwd: repoDir })
|
|
82
|
+
|
|
83
|
+
const tree = (await this.git(['mktree'], { cwd: repoDir, input: '' })).trim()
|
|
84
|
+
const commit = (await this.git(
|
|
85
|
+
['commit-tree', tree, '-m', 'Initial commit'],
|
|
86
|
+
{ cwd: repoDir, env: BOOTSTRAP_GIT_ENV },
|
|
87
|
+
)).trim()
|
|
88
|
+
await this.git(['update-ref', 'refs/heads/main', commit], { cwd: repoDir })
|
|
89
|
+
|
|
90
|
+
this.logger.info('Initialized instance bare repo', { instanceId, repoDir })
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Idempotently add a worktree for `sessionId` on branch `session/{sid}`,
|
|
95
|
+
* branching from `main`. Throws if the target dir exists but is not a valid
|
|
96
|
+
* worktree of this instance's bare repo (unrecoverable conflict).
|
|
97
|
+
*/
|
|
98
|
+
async addSessionWorktree(instanceId: string, sessionId: string): Promise<string> {
|
|
99
|
+
const repoDir = this.repoDir(instanceId)
|
|
100
|
+
const worktreePath = this.worktreeDir(instanceId, sessionId)
|
|
101
|
+
|
|
102
|
+
if (!existsSync(repoDir)) {
|
|
103
|
+
throw new Error(`Cannot add session worktree: instance bare repo missing at ${repoDir}`)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (existsSync(worktreePath)) {
|
|
107
|
+
if (await this.isLinkedWorktree(repoDir, worktreePath)) {
|
|
108
|
+
this.logger.debug('Session worktree already exists, skipping add', { instanceId, sessionId })
|
|
109
|
+
return worktreePath
|
|
110
|
+
}
|
|
111
|
+
throw new Error(`Path exists but is not a registered worktree of ${repoDir}: ${worktreePath}`)
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
await mkdir(join(this.instanceDir(instanceId), 'sessions'), { recursive: true })
|
|
115
|
+
await this.git(
|
|
116
|
+
['worktree', 'add', '-b', `session/${sessionId}`, worktreePath, 'main'],
|
|
117
|
+
{ cwd: repoDir },
|
|
118
|
+
)
|
|
119
|
+
this.logger.info('Added session worktree', { instanceId, sessionId, worktreePath })
|
|
120
|
+
return worktreePath
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Remove a session's worktree (filesystem + bookkeeping). Silently no-ops
|
|
125
|
+
* if the worktree was never registered.
|
|
126
|
+
*/
|
|
127
|
+
async removeSessionWorktree(instanceId: string, sessionId: string): Promise<void> {
|
|
128
|
+
const repoDir = this.repoDir(instanceId)
|
|
129
|
+
const worktreePath = this.worktreeDir(instanceId, sessionId)
|
|
130
|
+
|
|
131
|
+
if (!existsSync(repoDir) || !existsSync(worktreePath)) return
|
|
132
|
+
|
|
133
|
+
try {
|
|
134
|
+
await this.git(['worktree', 'remove', '--force', worktreePath], { cwd: repoDir })
|
|
135
|
+
} catch (err) {
|
|
136
|
+
// worktree may already be detached; fall back to filesystem rm + prune.
|
|
137
|
+
this.logger.warn('git worktree remove failed, falling back to rm + prune', {
|
|
138
|
+
instanceId,
|
|
139
|
+
sessionId,
|
|
140
|
+
error: err instanceof Error ? err.message : String(err),
|
|
141
|
+
})
|
|
142
|
+
await rm(worktreePath, { recursive: true, force: true })
|
|
143
|
+
await this.git(['worktree', 'prune'], { cwd: repoDir }).catch(() => {})
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Tear down everything for an instance: every worktree, then the
|
|
149
|
+
* bare repo + on-disk dir. Safe to call when nothing exists.
|
|
150
|
+
*/
|
|
151
|
+
async removeInstance(instanceId: string): Promise<void> {
|
|
152
|
+
const dir = this.instanceDir(instanceId)
|
|
153
|
+
if (!existsSync(dir)) return
|
|
154
|
+
await rm(dir, { recursive: true, force: true })
|
|
155
|
+
this.logger.info('Removed instance directory', { instanceId, dir })
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
private async isLinkedWorktree(repoDir: string, worktreePath: string): Promise<boolean> {
|
|
159
|
+
try {
|
|
160
|
+
const stdout = await this.git(['worktree', 'list', '--porcelain'], { cwd: repoDir })
|
|
161
|
+
// `worktree` lines look like: `worktree /abs/path` (one per registration).
|
|
162
|
+
return stdout
|
|
163
|
+
.split('\n')
|
|
164
|
+
.some((line) => line.startsWith('worktree ') && line.slice('worktree '.length) === worktreePath)
|
|
165
|
+
} catch {
|
|
166
|
+
return false
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
private async git(
|
|
171
|
+
args: string[],
|
|
172
|
+
opts: { cwd?: string; input?: string; env?: Record<string, string> } = {},
|
|
173
|
+
): Promise<string> {
|
|
174
|
+
const env = opts.env ? { ...process.env, ...opts.env } : process.env
|
|
175
|
+
const child = execFileAsync('git', args, { cwd: opts.cwd, env })
|
|
176
|
+
if (opts.input !== undefined) {
|
|
177
|
+
child.child.stdin?.end(opts.input)
|
|
178
|
+
}
|
|
179
|
+
try {
|
|
180
|
+
const { stdout } = await child
|
|
181
|
+
return stdout
|
|
182
|
+
} catch (err) {
|
|
183
|
+
const message = err instanceof Error ? err.message : String(err)
|
|
184
|
+
throw new Error(`git ${args.join(' ')} failed: ${message}`)
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
package/src/platform-api.ts
CHANGED
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
|
|
17
17
|
import type { Logger, Preset, SessionManager } from '@roj-ai/sdk'
|
|
18
18
|
import { SessionId } from '@roj-ai/sdk'
|
|
19
|
+
import { randomUUID } from 'node:crypto'
|
|
19
20
|
import { Hono } from 'hono'
|
|
21
|
+
import type { GitInstanceFs } from './git-instance-fs.js'
|
|
20
22
|
import type { InstanceState } from './instance.js'
|
|
21
23
|
import type { LocalRegistry } from './local-registry.js'
|
|
22
24
|
import { signFileToken } from './signed-token.js'
|
|
@@ -27,6 +29,8 @@ interface Deps {
|
|
|
27
29
|
logger: Logger
|
|
28
30
|
presets: Preset[]
|
|
29
31
|
registry: LocalRegistry
|
|
32
|
+
/** Per-instance bare repo + per-session worktree manager. */
|
|
33
|
+
gitFs: GitInstanceFs
|
|
30
34
|
/** HMAC secret for signing download tokens (`sessionFiles.createDownloadUrl`). */
|
|
31
35
|
tokenSecret: string
|
|
32
36
|
/** Externally-reachable base URL (e.g. `http://localhost:8765`) used when minting download URLs. */
|
|
@@ -100,15 +104,28 @@ interface AutoCreateSessionInput {
|
|
|
100
104
|
// resources must land in the workspace before the agent's first inference so
|
|
101
105
|
// the agent sees a non-empty workspace. Mirrors roj-platform's project-init
|
|
102
106
|
// (inject-resources → activatePendingSession with initialPrompt).
|
|
107
|
+
//
|
|
108
|
+
// SessionId is minted up-front (rather than letting the SDK generate one) so we
|
|
109
|
+
// can create the matching git worktree before the SDK initializes the session
|
|
110
|
+
// — the worktree path is then passed through as `workspaceDir`.
|
|
103
111
|
async function startSession(
|
|
104
112
|
deps: Deps,
|
|
105
113
|
input: { presetId: string; initialPrompt?: string; resourceIds?: string[] },
|
|
106
114
|
): Promise<{ sessionId: string }> {
|
|
115
|
+
const sessionId = randomUUID()
|
|
116
|
+
const workspaceDir = await deps.gitFs.addSessionWorktree(deps.instance.id, sessionId)
|
|
117
|
+
|
|
107
118
|
const created = await deps.sessionManager.callManagerMethod('sessions.create', {
|
|
108
119
|
presetId: input.presetId,
|
|
120
|
+
sessionId,
|
|
121
|
+
workspaceDir,
|
|
109
122
|
})
|
|
110
|
-
if (!created.ok)
|
|
111
|
-
|
|
123
|
+
if (!created.ok) {
|
|
124
|
+
// Roll back the worktree we just created so a retry isn't blocked by an
|
|
125
|
+
// orphaned dir. Best-effort — failure here is logged inside removeSessionWorktree.
|
|
126
|
+
await deps.gitFs.removeSessionWorktree(deps.instance.id, sessionId)
|
|
127
|
+
throw new Error(created.error.message)
|
|
128
|
+
}
|
|
112
129
|
|
|
113
130
|
const resources = resolveSessionResources(deps, input.presetId, input.resourceIds)
|
|
114
131
|
for (const resource of resources) {
|
package/src/server.ts
CHANGED
|
@@ -21,6 +21,7 @@ import { createBunWebSocketHandlers } from '@roj-ai/transport/bun'
|
|
|
21
21
|
import { Hono } from 'hono'
|
|
22
22
|
import { cors } from 'hono/cors'
|
|
23
23
|
import { createFilesUploadRoute } from './files-upload-route.js'
|
|
24
|
+
import { GitInstanceFs } from './git-instance-fs.js'
|
|
24
25
|
import { createInstance, type InstanceState } from './instance.js'
|
|
25
26
|
import { LocalRegistry } from './local-registry.js'
|
|
26
27
|
import { createPlatformApi } from './platform-api.js'
|
|
@@ -107,12 +108,16 @@ export async function startStandaloneServer(options: StartStandaloneOptions): Pr
|
|
|
107
108
|
await registry.bootstrapLocalResources(options.localResources)
|
|
108
109
|
}
|
|
109
110
|
|
|
111
|
+
const gitFs = new GitInstanceFs(config.dataPath, logger)
|
|
112
|
+
await gitFs.initInstance(instance.id)
|
|
113
|
+
|
|
110
114
|
const platformApp = createPlatformApi({
|
|
111
115
|
instance,
|
|
112
116
|
sessionManager,
|
|
113
117
|
logger,
|
|
114
118
|
presets,
|
|
115
119
|
registry,
|
|
120
|
+
gitFs,
|
|
116
121
|
tokenSecret,
|
|
117
122
|
publicBaseUrl,
|
|
118
123
|
})
|