@markusylisiurunen/tau 0.3.46 → 0.3.48
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/README.md +57 -6
- package/dist/code_mode/command.d.ts +2 -0
- package/dist/code_mode/command.js +33 -0
- package/dist/code_mode/command.js.map +1 -0
- package/dist/code_mode/files.d.ts +47 -0
- package/dist/code_mode/files.js +296 -0
- package/dist/code_mode/files.js.map +1 -0
- package/dist/code_mode/index.d.ts +6 -0
- package/dist/code_mode/index.js +5 -0
- package/dist/code_mode/index.js.map +1 -0
- package/dist/code_mode/runtime.d.ts +86 -0
- package/dist/code_mode/runtime.js +342 -0
- package/dist/code_mode/runtime.js.map +1 -0
- package/dist/core/agent/agent_runtime.js +0 -10
- package/dist/core/agent/agent_runtime.js.map +1 -1
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/runtime/chat_runtime.js +5 -8
- package/dist/core/runtime/chat_runtime.js.map +1 -1
- package/dist/core/session/direct_bash.js +6 -1
- package/dist/core/session/direct_bash.js.map +1 -1
- package/dist/core/static/code_mode/history/documentation.md +1 -12
- package/dist/core/static/code_mode/history/sandbox_runner.mjs +1 -111
- package/dist/core/static/code_mode/nook/documentation.md +2 -15
- package/dist/core/static/code_mode/nook/sandbox_runner.mjs +1 -147
- package/dist/core/static/code_mode/sandbox_runner.mjs +191 -0
- package/dist/core/static/code_mode/web/documentation.md +1 -13
- package/dist/core/static/code_mode/web/sandbox_runner.mjs +1 -115
- package/dist/core/telegram/config.js +34 -11
- package/dist/core/telegram/config.js.map +1 -1
- package/dist/core/telegram/session_manager.js +48 -14
- package/dist/core/telegram/session_manager.js.map +1 -1
- package/dist/core/telegram/workspace.js +24 -0
- package/dist/core/telegram/workspace.js.map +1 -1
- package/dist/core/tools/bash.js +1 -1
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/code_mode.js +52 -47
- package/dist/core/tools/code_mode.js.map +1 -1
- package/dist/core/tools/code_mode_worker.js +43 -12
- package/dist/core/tools/code_mode_worker.js.map +1 -1
- package/dist/core/tools/history.js +17 -26
- package/dist/core/tools/history.js.map +1 -1
- package/dist/core/tools/nook.js +36 -23
- package/dist/core/tools/nook.js.map +1 -1
- package/dist/core/tools/presentation.js +36 -20
- package/dist/core/tools/presentation.js.map +1 -1
- package/dist/core/tools/send_input_to_agent.js +1 -1
- package/dist/core/tools/send_input_to_agent.js.map +1 -1
- package/dist/core/tools/spawn_agent.js +1 -1
- package/dist/core/tools/spawn_agent.js.map +1 -1
- package/dist/core/tools/subagent_ui.js +1 -1
- package/dist/core/tools/subagent_ui.js.map +1 -1
- package/dist/core/tools/web.js +19 -23
- package/dist/core/tools/web.js.map +1 -1
- package/dist/core/tools/write.js +6 -2
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/utils/spawn_capture.js +34 -21
- package/dist/core/utils/spawn_capture.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/host/client_tool_broker.js +9 -1
- package/dist/host/client_tool_broker.js.map +1 -1
- package/dist/host/local_session_host.js +3 -17
- package/dist/host/local_session_host.js.map +1 -1
- package/dist/nook/README.md +1 -1
- package/dist/protocol/session_protocol.d.ts +2 -1
- package/dist/protocol/session_protocol.js +2 -1
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/sdk/client_tool_command.d.ts +80 -0
- package/dist/sdk/client_tool_command.js +417 -0
- package/dist/sdk/client_tool_command.js.map +1 -0
- package/dist/sdk/code_mode.d.ts +6 -0
- package/dist/sdk/code_mode.js +60 -0
- package/dist/sdk/code_mode.js.map +1 -0
- package/dist/sdk/index.d.ts +5 -1
- package/dist/sdk/index.js +3 -0
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/session.js +52 -39
- package/dist/sdk/session.js.map +1 -1
- package/dist/sdk/types.d.ts +15 -9
- package/dist/store/file_session_store.js +0 -8
- package/dist/store/file_session_store.js.map +1 -1
- package/dist/store/memory_session_store.js +0 -4
- package/dist/store/memory_session_store.js.map +1 -1
- package/dist/store/session_store.js.map +1 -1
- package/dist/tui/chat_controller/diff_review_service.js +2 -2
- package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
- package/dist/tui/command_client_tools.js +163 -23
- package/dist/tui/command_client_tools.js.map +1 -1
- package/dist/tui/session_chat_app.js +1 -1
- package/dist/tui/session_chat_app.js.map +1 -1
- package/dist/tui/session_chat_controller.js +9 -5
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/dist/tui/session_tool_execution_backend.js +2 -2
- package/dist/tui/session_tool_execution_backend.js.map +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { Buffer } from "node:buffer";
|
|
2
|
+
import { parentPort, workerData } from "node:worker_threads";
|
|
3
|
+
import { codeModeMath, createCodeModeDate } from "./capabilities.mjs";
|
|
4
|
+
|
|
5
|
+
if (!parentPort) {
|
|
6
|
+
throw new Error("code-mode sandbox requires a parent port");
|
|
7
|
+
}
|
|
8
|
+
if (
|
|
9
|
+
typeof workerData !== "object" ||
|
|
10
|
+
workerData === null ||
|
|
11
|
+
typeof workerData.code !== "string" ||
|
|
12
|
+
typeof workerData.docs !== "string" ||
|
|
13
|
+
!Array.isArray(workerData.apis) ||
|
|
14
|
+
workerData.apis.length === 0 ||
|
|
15
|
+
workerData.apis.some(
|
|
16
|
+
(api) =>
|
|
17
|
+
typeof api !== "object" ||
|
|
18
|
+
api === null ||
|
|
19
|
+
typeof api.name !== "string" ||
|
|
20
|
+
!Array.isArray(api.methods),
|
|
21
|
+
) ||
|
|
22
|
+
!Number.isSafeInteger(workerData.maxBridgeRequests) ||
|
|
23
|
+
workerData.maxBridgeRequests <= 0 ||
|
|
24
|
+
!Number.isSafeInteger(workerData.maxConcurrentBridgeRequests) ||
|
|
25
|
+
workerData.maxConcurrentBridgeRequests <= 0 ||
|
|
26
|
+
!Number.isSafeInteger(workerData.maxBridgePayloadBytes) ||
|
|
27
|
+
workerData.maxBridgePayloadBytes <= 0
|
|
28
|
+
) {
|
|
29
|
+
throw new Error("code-mode sandbox received invalid worker data");
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
lockdown();
|
|
33
|
+
|
|
34
|
+
const codeModeDate = createCodeModeDate();
|
|
35
|
+
const pending = new Map();
|
|
36
|
+
let nextRequestId = 1;
|
|
37
|
+
|
|
38
|
+
parentPort.on("message", (message) => {
|
|
39
|
+
if (message?.type !== "response" || typeof message.id !== "number") return;
|
|
40
|
+
const request = pending.get(message.id);
|
|
41
|
+
if (!request) return;
|
|
42
|
+
pending.delete(message.id);
|
|
43
|
+
if (message.ok) {
|
|
44
|
+
try {
|
|
45
|
+
if (
|
|
46
|
+
typeof message.valueJson !== "string" ||
|
|
47
|
+
Buffer.byteLength(message.valueJson, "utf8") > workerData.maxBridgePayloadBytes
|
|
48
|
+
) {
|
|
49
|
+
throw new Error("invalid code-mode bridge response");
|
|
50
|
+
}
|
|
51
|
+
request.resolve(JSON.parse(message.valueJson));
|
|
52
|
+
} catch {
|
|
53
|
+
request.reject(new Error("code-mode bridge returned invalid JSON"));
|
|
54
|
+
}
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const error = new Error(message.error?.message || "Code-mode API request failed");
|
|
59
|
+
if (message.error?.name) error.name = message.error.name;
|
|
60
|
+
request.reject(error);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
function requestApi(methodId, argsJson) {
|
|
64
|
+
if (!Number.isSafeInteger(methodId) || methodId < 0 || typeof argsJson !== "string") {
|
|
65
|
+
return Promise.reject(new Error("invalid code-mode bridge request"));
|
|
66
|
+
}
|
|
67
|
+
if (Buffer.byteLength(argsJson, "utf8") > workerData.maxBridgePayloadBytes) {
|
|
68
|
+
return Promise.reject(
|
|
69
|
+
new Error(
|
|
70
|
+
`code-mode API arguments exceeded ${workerData.maxBridgePayloadBytes} bridge payload bytes`,
|
|
71
|
+
),
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
if (nextRequestId > workerData.maxBridgeRequests) {
|
|
75
|
+
return Promise.reject(
|
|
76
|
+
new Error(`code-mode sandbox exceeded ${workerData.maxBridgeRequests} bridge requests`),
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
if (pending.size >= workerData.maxConcurrentBridgeRequests) {
|
|
80
|
+
return Promise.reject(
|
|
81
|
+
new Error(
|
|
82
|
+
`code-mode sandbox exceeded ${workerData.maxConcurrentBridgeRequests} concurrent bridge requests`,
|
|
83
|
+
),
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
const id = nextRequestId++;
|
|
87
|
+
return new Promise((resolve, reject) => {
|
|
88
|
+
pending.set(id, { resolve, reject });
|
|
89
|
+
parentPort.postMessage({ type: "request", id, methodId, argsJson });
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function writeOutput(stream, text) {
|
|
94
|
+
if ((stream !== "stdout" && stream !== "stderr") || typeof text !== "string") {
|
|
95
|
+
throw new Error("invalid console bridge output");
|
|
96
|
+
}
|
|
97
|
+
const output = stream === "stderr" ? process.stderr : process.stdout;
|
|
98
|
+
output.write(text + "\n");
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const compartment = new Compartment({
|
|
102
|
+
globals: {
|
|
103
|
+
Date: codeModeDate,
|
|
104
|
+
Math: codeModeMath,
|
|
105
|
+
_apis: harden(workerData.apis),
|
|
106
|
+
_requestApi: harden(requestApi),
|
|
107
|
+
_writeOutput: harden(writeOutput),
|
|
108
|
+
docs: workerData.docs,
|
|
109
|
+
},
|
|
110
|
+
__options__: true,
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
compartment.evaluate(String.raw`
|
|
114
|
+
(() => {
|
|
115
|
+
const apis = _apis;
|
|
116
|
+
const requestApiBridge = _requestApi;
|
|
117
|
+
const writeOutputBridge = _writeOutput;
|
|
118
|
+
delete globalThis._apis;
|
|
119
|
+
delete globalThis._requestApi;
|
|
120
|
+
delete globalThis._writeOutput;
|
|
121
|
+
|
|
122
|
+
function formatOutputValue(value) {
|
|
123
|
+
if (typeof value === "string") return value;
|
|
124
|
+
if (value instanceof Error) return value.stack || value.message;
|
|
125
|
+
try {
|
|
126
|
+
const serialized = JSON.stringify(value);
|
|
127
|
+
if (serialized !== undefined) return serialized;
|
|
128
|
+
} catch {}
|
|
129
|
+
return String(value);
|
|
130
|
+
}
|
|
131
|
+
function writeConsole(stream, values) {
|
|
132
|
+
writeOutputBridge(stream, values.map(formatOutputValue).join(" "));
|
|
133
|
+
}
|
|
134
|
+
Object.defineProperty(globalThis, "console", {
|
|
135
|
+
value: Object.freeze({
|
|
136
|
+
debug: (...values) => writeConsole("stdout", values),
|
|
137
|
+
error: (...values) => writeConsole("stderr", values),
|
|
138
|
+
info: (...values) => writeConsole("stdout", values),
|
|
139
|
+
log: (...values) => writeConsole("stdout", values),
|
|
140
|
+
warn: (...values) => writeConsole("stderr", values),
|
|
141
|
+
}),
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
function serializeArguments(args) {
|
|
145
|
+
return JSON.stringify(args, (_key, value) => {
|
|
146
|
+
if (
|
|
147
|
+
value === undefined ||
|
|
148
|
+
typeof value === "function" ||
|
|
149
|
+
typeof value === "symbol" ||
|
|
150
|
+
typeof value === "bigint" ||
|
|
151
|
+
(typeof value === "number" && !Number.isFinite(value))
|
|
152
|
+
) {
|
|
153
|
+
throw new TypeError("Code-mode API arguments must be JSON-serializable values");
|
|
154
|
+
}
|
|
155
|
+
return value;
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
function freezeApi(value) {
|
|
160
|
+
for (const child of Object.values(value)) {
|
|
161
|
+
if (typeof child === "object" && child !== null) freezeApi(child);
|
|
162
|
+
}
|
|
163
|
+
return Object.freeze(value);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
for (const definition of apis) {
|
|
167
|
+
const api = Object.create(null);
|
|
168
|
+
for (const method of definition.methods) {
|
|
169
|
+
let target = api;
|
|
170
|
+
for (const segment of method.path.slice(0, -1)) {
|
|
171
|
+
target[segment] ??= Object.create(null);
|
|
172
|
+
target = target[segment];
|
|
173
|
+
}
|
|
174
|
+
target[method.path.at(-1)] = (...args) =>
|
|
175
|
+
requestApiBridge(method.id, serializeArguments(args));
|
|
176
|
+
}
|
|
177
|
+
Object.defineProperty(globalThis, definition.name, {
|
|
178
|
+
value: freezeApi(api),
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
})();
|
|
182
|
+
`);
|
|
183
|
+
|
|
184
|
+
try {
|
|
185
|
+
await compartment.evaluate("(async () => {\n" + workerData.code + "\n})()");
|
|
186
|
+
} catch (error) {
|
|
187
|
+
writeOutput("stderr", error instanceof Error ? error.stack || error.message : String(error));
|
|
188
|
+
process.exitCode = 1;
|
|
189
|
+
} finally {
|
|
190
|
+
parentPort.close();
|
|
191
|
+
}
|
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
The one-shot JavaScript runtime provides these globals:
|
|
2
|
-
|
|
3
|
-
- `web.discover(url)`: discover metadata for direct Markdown representations and `llms.txt` files for a direct URL.
|
|
4
|
-
- `web.search(query, options?)`: search the web and return relevant page highlights.
|
|
5
|
-
- `web.fetch(urls, options?)`: retrieve highlights or bounded text from known URLs through the web extraction service.
|
|
6
|
-
- `docs`: this document.
|
|
7
|
-
- `console`: program output. Only text written through console methods is returned; program return values are ignored.
|
|
8
|
-
- `Date`: standard date handling with live current-time access.
|
|
9
|
-
- `Math`: standard math operations, including `Math.random()`.
|
|
10
|
-
|
|
11
|
-
Top-level `await` is supported. A program may make at most 64 SDK calls, with at most four running concurrently, and must finish within 60 seconds. Independent calls can run concurrently with `Promise.all` within that limit.
|
|
12
|
-
|
|
13
1
|
## Defaults
|
|
14
2
|
|
|
15
3
|
The API is designed for agent workflows and defaults to token-efficient retrieval:
|
|
@@ -247,4 +235,4 @@ In the next turn, retrieve the selected Markdown representation or `llms.txt` wi
|
|
|
247
235
|
|
|
248
236
|
## Output guidance
|
|
249
237
|
|
|
250
|
-
|
|
238
|
+
Print only information needed for the task. Prefer concise labeled text over serialized response objects. Select relevant fields when possible; when all fields matter, flatten and label them compactly. Emit JSON only when the user explicitly requests JSON or another machine-readable result.
|
|
@@ -1,115 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { codeModeMath, createCodeModeDate } from "../capabilities.mjs";
|
|
3
|
-
|
|
4
|
-
if (!parentPort) {
|
|
5
|
-
throw new Error("web sandbox requires a parent port");
|
|
6
|
-
}
|
|
7
|
-
if (
|
|
8
|
-
typeof workerData !== "object" ||
|
|
9
|
-
workerData === null ||
|
|
10
|
-
typeof workerData.code !== "string" ||
|
|
11
|
-
typeof workerData.docs !== "string"
|
|
12
|
-
) {
|
|
13
|
-
throw new Error("web sandbox received invalid worker data");
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
lockdown();
|
|
17
|
-
|
|
18
|
-
const codeModeDate = createCodeModeDate();
|
|
19
|
-
const pending = new Map();
|
|
20
|
-
let nextRequestId = 1;
|
|
21
|
-
|
|
22
|
-
parentPort.on("message", (message) => {
|
|
23
|
-
if (message?.type !== "response" || typeof message.id !== "number") return;
|
|
24
|
-
const request = pending.get(message.id);
|
|
25
|
-
if (!request) return;
|
|
26
|
-
pending.delete(message.id);
|
|
27
|
-
if (message.ok) {
|
|
28
|
-
request.resolve(message.value);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const error = new Error(message.error?.message || "Web request failed");
|
|
33
|
-
if (message.error?.name) error.name = message.error.name;
|
|
34
|
-
request.reject(error);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
function requestWeb(method, argsJson) {
|
|
38
|
-
if (typeof method !== "string" || typeof argsJson !== "string") {
|
|
39
|
-
return Promise.reject(new Error("invalid web bridge request"));
|
|
40
|
-
}
|
|
41
|
-
const id = nextRequestId++;
|
|
42
|
-
return new Promise((resolve, reject) => {
|
|
43
|
-
pending.set(id, { resolve, reject });
|
|
44
|
-
parentPort.postMessage({ type: "request", id, method, argsJson });
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function writeOutput(stream, text) {
|
|
49
|
-
if ((stream !== "stdout" && stream !== "stderr") || typeof text !== "string") {
|
|
50
|
-
throw new Error("invalid console bridge output");
|
|
51
|
-
}
|
|
52
|
-
const output = stream === "stderr" ? process.stderr : process.stdout;
|
|
53
|
-
output.write(text + "\n");
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const compartment = new Compartment({
|
|
57
|
-
globals: {
|
|
58
|
-
Date: codeModeDate,
|
|
59
|
-
Math: codeModeMath,
|
|
60
|
-
_requestWeb: harden(requestWeb),
|
|
61
|
-
_writeOutput: harden(writeOutput),
|
|
62
|
-
docs: workerData.docs,
|
|
63
|
-
},
|
|
64
|
-
__options__: true,
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
compartment.evaluate(String.raw`
|
|
68
|
-
(() => {
|
|
69
|
-
const requestWebBridge = _requestWeb;
|
|
70
|
-
const writeOutputBridge = _writeOutput;
|
|
71
|
-
delete globalThis._requestWeb;
|
|
72
|
-
delete globalThis._writeOutput;
|
|
73
|
-
|
|
74
|
-
function formatOutputValue(value) {
|
|
75
|
-
if (typeof value === "string") return value;
|
|
76
|
-
if (value instanceof Error) return value.stack || value.message;
|
|
77
|
-
try {
|
|
78
|
-
const serialized = JSON.stringify(value);
|
|
79
|
-
if (serialized !== undefined) return serialized;
|
|
80
|
-
} catch {}
|
|
81
|
-
return String(value);
|
|
82
|
-
}
|
|
83
|
-
function writeConsole(stream, values) {
|
|
84
|
-
writeOutputBridge(stream, values.map(formatOutputValue).join(" "));
|
|
85
|
-
}
|
|
86
|
-
Object.defineProperty(globalThis, "console", {
|
|
87
|
-
value: Object.freeze({
|
|
88
|
-
debug: (...values) => writeConsole("stdout", values),
|
|
89
|
-
error: (...values) => writeConsole("stderr", values),
|
|
90
|
-
info: (...values) => writeConsole("stdout", values),
|
|
91
|
-
log: (...values) => writeConsole("stdout", values),
|
|
92
|
-
warn: (...values) => writeConsole("stderr", values),
|
|
93
|
-
}),
|
|
94
|
-
});
|
|
95
|
-
function callWeb(method, args) {
|
|
96
|
-
return requestWebBridge(method, JSON.stringify(args));
|
|
97
|
-
}
|
|
98
|
-
Object.defineProperty(globalThis, "web", {
|
|
99
|
-
value: Object.freeze({
|
|
100
|
-
discover: (...args) => callWeb("discover", args),
|
|
101
|
-
search: (...args) => callWeb("search", args),
|
|
102
|
-
fetch: (...args) => callWeb("fetch", args),
|
|
103
|
-
}),
|
|
104
|
-
});
|
|
105
|
-
})();
|
|
106
|
-
`);
|
|
107
|
-
|
|
108
|
-
try {
|
|
109
|
-
await compartment.evaluate("(async () => {\n" + workerData.code + "\n})()");
|
|
110
|
-
} catch (error) {
|
|
111
|
-
writeOutput("stderr", error instanceof Error ? error.stack || error.message : String(error));
|
|
112
|
-
process.exitCode = 1;
|
|
113
|
-
} finally {
|
|
114
|
-
parentPort.close();
|
|
115
|
-
}
|
|
1
|
+
import "../sandbox_runner.mjs";
|
|
@@ -46,16 +46,21 @@ const telegramBotSchema = z
|
|
|
46
46
|
requestTimeoutSeconds: positiveIntegerSchema.optional(),
|
|
47
47
|
})
|
|
48
48
|
.strip();
|
|
49
|
-
function createProjectBaseShape(
|
|
49
|
+
function createProjectBaseShape() {
|
|
50
50
|
return {
|
|
51
|
-
workspaceRoot: nonEmptyStringSchema.transform((value) => resolve(configDir, value)).optional(),
|
|
52
51
|
description: nonEmptyStringSchema.optional(),
|
|
53
52
|
};
|
|
54
53
|
}
|
|
54
|
+
function createManagedProjectBaseShape(configDir) {
|
|
55
|
+
return {
|
|
56
|
+
...createProjectBaseShape(),
|
|
57
|
+
workspaceRoot: nonEmptyStringSchema.transform((value) => resolve(configDir, value)).optional(),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
55
60
|
function createRepositoryProjectSchema(configDir) {
|
|
56
61
|
return z
|
|
57
62
|
.object({
|
|
58
|
-
...
|
|
63
|
+
...createManagedProjectBaseShape(configDir),
|
|
59
64
|
repo: nonEmptyStringSchema.refine((value) => isGithubRepoRef(value), {
|
|
60
65
|
message: "must be in owner/repo format (GitHub).",
|
|
61
66
|
}),
|
|
@@ -70,10 +75,20 @@ function createRepositoryProjectSchema(configDir) {
|
|
|
70
75
|
})
|
|
71
76
|
.strip();
|
|
72
77
|
}
|
|
78
|
+
function createDirectoryProjectSchema(configDir) {
|
|
79
|
+
return z
|
|
80
|
+
.object({
|
|
81
|
+
...createProjectBaseShape(),
|
|
82
|
+
directory: nonEmptyStringSchema.transform((value) => resolve(configDir, value)),
|
|
83
|
+
persona: z.string().optional(),
|
|
84
|
+
noAgentContextFiles: z.boolean().optional(),
|
|
85
|
+
})
|
|
86
|
+
.strip();
|
|
87
|
+
}
|
|
73
88
|
function createCompositeProjectSchema(configDir) {
|
|
74
89
|
return z
|
|
75
90
|
.object({
|
|
76
|
-
...
|
|
91
|
+
...createManagedProjectBaseShape(configDir),
|
|
77
92
|
projectIds: stringListSchema.min(2, "must contain at least two project ids."),
|
|
78
93
|
persona: z.string(),
|
|
79
94
|
instructions: nonEmptyStringSchema.optional(),
|
|
@@ -184,15 +199,20 @@ function parseProject(raw, sourceLabel, projectId, configDir) {
|
|
|
184
199
|
return { errors: [`${sourceLabel}: ${fieldPath} must be an object.`] };
|
|
185
200
|
}
|
|
186
201
|
const hasRepo = Object.hasOwn(rawObject.data, "repo");
|
|
202
|
+
const hasDirectory = Object.hasOwn(rawObject.data, "directory");
|
|
187
203
|
const hasProjectIds = Object.hasOwn(rawObject.data, "projectIds");
|
|
188
|
-
if (hasRepo
|
|
204
|
+
if ([hasRepo, hasDirectory, hasProjectIds].filter(Boolean).length !== 1) {
|
|
189
205
|
return {
|
|
190
|
-
errors: [
|
|
206
|
+
errors: [
|
|
207
|
+
`${sourceLabel}: ${fieldPath} must define exactly one of repo, directory, or projectIds.`,
|
|
208
|
+
],
|
|
191
209
|
};
|
|
192
210
|
}
|
|
193
211
|
const incompatibleFields = hasRepo
|
|
194
|
-
? ["projectIds", "instructions"]
|
|
195
|
-
:
|
|
212
|
+
? ["directory", "projectIds", "instructions"]
|
|
213
|
+
: hasDirectory
|
|
214
|
+
? ["repo", "ref", "workingDirectory", "workspaceRoot", "projectIds", "instructions"]
|
|
215
|
+
: ["repo", "directory", "ref", "workingDirectory", "noAgentContextFiles"];
|
|
196
216
|
const configuredIncompatibleFields = incompatibleFields.filter((field) => Object.hasOwn(rawObject.data, field));
|
|
197
217
|
if (configuredIncompatibleFields.length > 0) {
|
|
198
218
|
return {
|
|
@@ -203,7 +223,9 @@ function parseProject(raw, sourceLabel, projectId, configDir) {
|
|
|
203
223
|
}
|
|
204
224
|
const schema = hasRepo
|
|
205
225
|
? createRepositoryProjectSchema(configDir)
|
|
206
|
-
:
|
|
226
|
+
: hasDirectory
|
|
227
|
+
? createDirectoryProjectSchema(configDir)
|
|
228
|
+
: createCompositeProjectSchema(configDir);
|
|
207
229
|
const parsed = schema.safeParse(rawObject.data);
|
|
208
230
|
if (!parsed.success) {
|
|
209
231
|
return { errors: formatSectionZodErrors(parsed.error, sourceLabel, fieldPath) };
|
|
@@ -249,8 +271,9 @@ function parseProjects(raw, sourceLabel, configDir) {
|
|
|
249
271
|
if (!memberProject) {
|
|
250
272
|
errors.push(`${sourceLabel}: projects.${projectId}.projectIds contains unknown project id '${memberProjectId}'.`);
|
|
251
273
|
}
|
|
252
|
-
else if ("
|
|
253
|
-
|
|
274
|
+
else if (!("repo" in memberProject)) {
|
|
275
|
+
const memberKind = "directory" in memberProject ? "directory" : "composite";
|
|
276
|
+
errors.push(`${sourceLabel}: projects.${projectId}.projectIds must reference repository projects, not ${memberKind} project '${memberProjectId}'.`);
|
|
254
277
|
}
|
|
255
278
|
}
|
|
256
279
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/telegram/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/telegram/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -129,6 +129,9 @@ const ACTIVE_STATES = new Set([
|
|
|
129
129
|
"running",
|
|
130
130
|
"waiting-input",
|
|
131
131
|
]);
|
|
132
|
+
function isDirectoryProject(project) {
|
|
133
|
+
return "directory" in project;
|
|
134
|
+
}
|
|
132
135
|
function elapsedMs(startTime) {
|
|
133
136
|
return Number((process.hrtime.bigint() - startTime) / NANOSECONDS_PER_MILLISECOND);
|
|
134
137
|
}
|
|
@@ -517,6 +520,10 @@ class TelegramSessionManagerImpl {
|
|
|
517
520
|
const workspaceRoots = new Set([this.workspaceRoot]);
|
|
518
521
|
const preservedWorkspacePaths = [];
|
|
519
522
|
for (const entry of this.sessions.values()) {
|
|
523
|
+
if (isDirectoryProject(entry.project)) {
|
|
524
|
+
preservedWorkspacePaths.push(entry.project.directory);
|
|
525
|
+
continue;
|
|
526
|
+
}
|
|
520
527
|
const workspaceRoot = resolve(entry.project.workspaceRoot ?? this.workspaceRoot);
|
|
521
528
|
workspaceRoots.add(workspaceRoot);
|
|
522
529
|
preservedWorkspacePaths.push(resolveWorkspacePath({
|
|
@@ -526,7 +533,10 @@ class TelegramSessionManagerImpl {
|
|
|
526
533
|
}));
|
|
527
534
|
}
|
|
528
535
|
for (const project of Object.values(this.projects)) {
|
|
529
|
-
if (project
|
|
536
|
+
if (isDirectoryProject(project)) {
|
|
537
|
+
preservedWorkspacePaths.push(project.directory);
|
|
538
|
+
}
|
|
539
|
+
else if (project.workspaceRoot) {
|
|
530
540
|
workspaceRoots.add(resolve(project.workspaceRoot));
|
|
531
541
|
}
|
|
532
542
|
}
|
|
@@ -560,11 +570,16 @@ class TelegramSessionManagerImpl {
|
|
|
560
570
|
if (!tauSessionId) {
|
|
561
571
|
throw new Error("persisted session is missing its Tau session id");
|
|
562
572
|
}
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
573
|
+
const projectWorkspaceRoot = isDirectoryProject(entry.project)
|
|
574
|
+
? this.workspaceRoot
|
|
575
|
+
: (entry.project.workspaceRoot ?? this.workspaceRoot);
|
|
576
|
+
let workspacePath = isDirectoryProject(entry.project)
|
|
577
|
+
? entry.project.directory
|
|
578
|
+
: resolveWorkspacePath({
|
|
579
|
+
workspaceRoot: projectWorkspaceRoot,
|
|
580
|
+
projectId: entry.record.projectId,
|
|
581
|
+
sessionId: entry.record.id,
|
|
582
|
+
});
|
|
568
583
|
let sessionCwd = resolve(workspacePath, "repo" in entry.project ? (entry.project.workingDirectory ?? ".") : ".");
|
|
569
584
|
let provisionTargets = [];
|
|
570
585
|
const shouldPrepareWorkspace = !(await pathIsDirectory(sessionCwd));
|
|
@@ -574,7 +589,7 @@ class TelegramSessionManagerImpl {
|
|
|
574
589
|
projectId: entry.record.projectId,
|
|
575
590
|
project: entry.project,
|
|
576
591
|
projects: this.projects,
|
|
577
|
-
workspaceRoot:
|
|
592
|
+
workspaceRoot: projectWorkspaceRoot,
|
|
578
593
|
defaultWorkspaceRoot: this.workspaceRoot,
|
|
579
594
|
signal: entry.abortController.signal,
|
|
580
595
|
onLog: (workspaceLog) => {
|
|
@@ -590,10 +605,16 @@ class TelegramSessionManagerImpl {
|
|
|
590
605
|
entry.client = client;
|
|
591
606
|
const tauSession = await client.sessions.observe(tauSessionId);
|
|
592
607
|
entry.tauSession = tauSession;
|
|
608
|
+
const snapshot = await tauSession.snapshot();
|
|
609
|
+
if (isDirectoryProject(entry.project) &&
|
|
610
|
+
(snapshot.executionEnvironment.kind !== "local" ||
|
|
611
|
+
resolve(snapshot.executionEnvironment.cwd) !== sessionCwd)) {
|
|
612
|
+
throw new Error(`persisted Tau session directory '${snapshot.executionEnvironment.cwd}' does not match configured project directory '${sessionCwd}'`);
|
|
613
|
+
}
|
|
593
614
|
entry.unsubscribeClientEvents = tauSession.onDelta((event) => {
|
|
594
615
|
this.handleClientEvent(entry, event);
|
|
595
616
|
});
|
|
596
|
-
this.initializeRecoveredSnapshotDeliveryState(entry,
|
|
617
|
+
this.initializeRecoveredSnapshotDeliveryState(entry, snapshot);
|
|
597
618
|
entry.record.error = undefined;
|
|
598
619
|
if (entry.activeTurnIds.size > 0) {
|
|
599
620
|
this.setState(entry, "running");
|
|
@@ -651,7 +672,9 @@ class TelegramSessionManagerImpl {
|
|
|
651
672
|
projectId: entry.record.projectId,
|
|
652
673
|
project: entry.project,
|
|
653
674
|
projects: this.projects,
|
|
654
|
-
workspaceRoot: entry.project
|
|
675
|
+
workspaceRoot: isDirectoryProject(entry.project)
|
|
676
|
+
? this.workspaceRoot
|
|
677
|
+
: (entry.project.workspaceRoot ?? this.workspaceRoot),
|
|
655
678
|
defaultWorkspaceRoot: this.workspaceRoot,
|
|
656
679
|
signal: entry.abortController.signal,
|
|
657
680
|
onLog: (workspaceLog) => {
|
|
@@ -1124,10 +1147,12 @@ class TelegramSessionManagerImpl {
|
|
|
1124
1147
|
buildSessionAttributes(entry) {
|
|
1125
1148
|
const configuredRepositories = "repo" in entry.project
|
|
1126
1149
|
? [entry.project.repo]
|
|
1127
|
-
: entry.project
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1150
|
+
: "projectIds" in entry.project
|
|
1151
|
+
? entry.project.projectIds.flatMap((projectId) => {
|
|
1152
|
+
const project = this.projects[projectId];
|
|
1153
|
+
return project && "repo" in project ? [project.repo] : [];
|
|
1154
|
+
})
|
|
1155
|
+
: [];
|
|
1131
1156
|
const repositories = configuredRepositories.map((repository) => normalizeRepositoryReference(repository, { defaultHost: "github.com" }) ?? repository);
|
|
1132
1157
|
return {
|
|
1133
1158
|
source: "telegram",
|
|
@@ -1140,7 +1165,7 @@ class TelegramSessionManagerImpl {
|
|
|
1140
1165
|
if (entry.project.persona) {
|
|
1141
1166
|
options.persona = entry.project.persona;
|
|
1142
1167
|
}
|
|
1143
|
-
if ("
|
|
1168
|
+
if ("noAgentContextFiles" in entry.project && entry.project.noAgentContextFiles !== undefined) {
|
|
1144
1169
|
options.noAgentContextFiles = entry.project.noAgentContextFiles;
|
|
1145
1170
|
}
|
|
1146
1171
|
return options;
|
|
@@ -1190,6 +1215,12 @@ class TelegramSessionManagerImpl {
|
|
|
1190
1215
|
if (pendingWork.length > 0) {
|
|
1191
1216
|
await Promise.allSettled(pendingWork);
|
|
1192
1217
|
}
|
|
1218
|
+
if (isDirectoryProject(entry.project)) {
|
|
1219
|
+
this.log(entry, "info", "persistent workspace preserved", {
|
|
1220
|
+
workspacePath: entry.project.directory,
|
|
1221
|
+
});
|
|
1222
|
+
return;
|
|
1223
|
+
}
|
|
1193
1224
|
const workspacePath = this.resolveWorkspacePathForCleanup(entry);
|
|
1194
1225
|
try {
|
|
1195
1226
|
await this.cleanupWorkspacePath(workspacePath);
|
|
@@ -1213,6 +1244,9 @@ class TelegramSessionManagerImpl {
|
|
|
1213
1244
|
if (entry.record.workspacePath) {
|
|
1214
1245
|
return entry.record.workspacePath;
|
|
1215
1246
|
}
|
|
1247
|
+
if (isDirectoryProject(entry.project)) {
|
|
1248
|
+
return entry.project.directory;
|
|
1249
|
+
}
|
|
1216
1250
|
return resolveWorkspacePath({
|
|
1217
1251
|
workspaceRoot: entry.project.workspaceRoot ?? this.workspaceRoot,
|
|
1218
1252
|
projectId: entry.record.projectId,
|