@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.
Files changed (94) hide show
  1. package/README.md +57 -6
  2. package/dist/code_mode/command.d.ts +2 -0
  3. package/dist/code_mode/command.js +33 -0
  4. package/dist/code_mode/command.js.map +1 -0
  5. package/dist/code_mode/files.d.ts +47 -0
  6. package/dist/code_mode/files.js +296 -0
  7. package/dist/code_mode/files.js.map +1 -0
  8. package/dist/code_mode/index.d.ts +6 -0
  9. package/dist/code_mode/index.js +5 -0
  10. package/dist/code_mode/index.js.map +1 -0
  11. package/dist/code_mode/runtime.d.ts +86 -0
  12. package/dist/code_mode/runtime.js +342 -0
  13. package/dist/code_mode/runtime.js.map +1 -0
  14. package/dist/core/agent/agent_runtime.js +0 -10
  15. package/dist/core/agent/agent_runtime.js.map +1 -1
  16. package/dist/core/config/schema.js.map +1 -1
  17. package/dist/core/runtime/chat_runtime.js +5 -8
  18. package/dist/core/runtime/chat_runtime.js.map +1 -1
  19. package/dist/core/session/direct_bash.js +6 -1
  20. package/dist/core/session/direct_bash.js.map +1 -1
  21. package/dist/core/static/code_mode/history/documentation.md +1 -12
  22. package/dist/core/static/code_mode/history/sandbox_runner.mjs +1 -111
  23. package/dist/core/static/code_mode/nook/documentation.md +2 -15
  24. package/dist/core/static/code_mode/nook/sandbox_runner.mjs +1 -147
  25. package/dist/core/static/code_mode/sandbox_runner.mjs +191 -0
  26. package/dist/core/static/code_mode/web/documentation.md +1 -13
  27. package/dist/core/static/code_mode/web/sandbox_runner.mjs +1 -115
  28. package/dist/core/telegram/config.js +34 -11
  29. package/dist/core/telegram/config.js.map +1 -1
  30. package/dist/core/telegram/session_manager.js +48 -14
  31. package/dist/core/telegram/session_manager.js.map +1 -1
  32. package/dist/core/telegram/workspace.js +24 -0
  33. package/dist/core/telegram/workspace.js.map +1 -1
  34. package/dist/core/tools/bash.js +1 -1
  35. package/dist/core/tools/bash.js.map +1 -1
  36. package/dist/core/tools/code_mode.js +52 -47
  37. package/dist/core/tools/code_mode.js.map +1 -1
  38. package/dist/core/tools/code_mode_worker.js +43 -12
  39. package/dist/core/tools/code_mode_worker.js.map +1 -1
  40. package/dist/core/tools/history.js +17 -26
  41. package/dist/core/tools/history.js.map +1 -1
  42. package/dist/core/tools/nook.js +36 -23
  43. package/dist/core/tools/nook.js.map +1 -1
  44. package/dist/core/tools/presentation.js +36 -20
  45. package/dist/core/tools/presentation.js.map +1 -1
  46. package/dist/core/tools/send_input_to_agent.js +1 -1
  47. package/dist/core/tools/send_input_to_agent.js.map +1 -1
  48. package/dist/core/tools/spawn_agent.js +1 -1
  49. package/dist/core/tools/spawn_agent.js.map +1 -1
  50. package/dist/core/tools/subagent_ui.js +1 -1
  51. package/dist/core/tools/subagent_ui.js.map +1 -1
  52. package/dist/core/tools/web.js +19 -23
  53. package/dist/core/tools/web.js.map +1 -1
  54. package/dist/core/tools/write.js +6 -2
  55. package/dist/core/tools/write.js.map +1 -1
  56. package/dist/core/utils/spawn_capture.js +34 -21
  57. package/dist/core/utils/spawn_capture.js.map +1 -1
  58. package/dist/core/version.js +1 -1
  59. package/dist/host/client_tool_broker.js +9 -1
  60. package/dist/host/client_tool_broker.js.map +1 -1
  61. package/dist/host/local_session_host.js +3 -17
  62. package/dist/host/local_session_host.js.map +1 -1
  63. package/dist/nook/README.md +1 -1
  64. package/dist/protocol/session_protocol.d.ts +2 -1
  65. package/dist/protocol/session_protocol.js +2 -1
  66. package/dist/protocol/session_protocol.js.map +1 -1
  67. package/dist/sdk/client_tool_command.d.ts +80 -0
  68. package/dist/sdk/client_tool_command.js +417 -0
  69. package/dist/sdk/client_tool_command.js.map +1 -0
  70. package/dist/sdk/code_mode.d.ts +6 -0
  71. package/dist/sdk/code_mode.js +60 -0
  72. package/dist/sdk/code_mode.js.map +1 -0
  73. package/dist/sdk/index.d.ts +5 -1
  74. package/dist/sdk/index.js +3 -0
  75. package/dist/sdk/index.js.map +1 -1
  76. package/dist/sdk/session.js +52 -39
  77. package/dist/sdk/session.js.map +1 -1
  78. package/dist/sdk/types.d.ts +15 -9
  79. package/dist/store/file_session_store.js +0 -8
  80. package/dist/store/file_session_store.js.map +1 -1
  81. package/dist/store/memory_session_store.js +0 -4
  82. package/dist/store/memory_session_store.js.map +1 -1
  83. package/dist/store/session_store.js.map +1 -1
  84. package/dist/tui/chat_controller/diff_review_service.js +2 -2
  85. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  86. package/dist/tui/command_client_tools.js +163 -23
  87. package/dist/tui/command_client_tools.js.map +1 -1
  88. package/dist/tui/session_chat_app.js +1 -1
  89. package/dist/tui/session_chat_app.js.map +1 -1
  90. package/dist/tui/session_chat_controller.js +9 -5
  91. package/dist/tui/session_chat_controller.js.map +1 -1
  92. package/dist/tui/session_tool_execution_backend.js +2 -2
  93. package/dist/tui/session_tool_execution_backend.js.map +1 -1
  94. 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
- Output is limited to roughly 8,192 tokens. 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.
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 { parentPort, workerData } from "node:worker_threads";
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(configDir) {
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
- ...createProjectBaseShape(configDir),
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
- ...createProjectBaseShape(configDir),
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 === hasProjectIds) {
204
+ if ([hasRepo, hasDirectory, hasProjectIds].filter(Boolean).length !== 1) {
189
205
  return {
190
- errors: [`${sourceLabel}: ${fieldPath} must define exactly one of repo or projectIds.`],
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
- : ["repo", "ref", "workingDirectory", "noAgentContextFiles"];
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
- : createCompositeProjectSchema(configDir);
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 ("projectIds" in memberProject) {
253
- errors.push(`${sourceLabel}: projects.${projectId}.projectIds must reference repository projects, not composite project '${memberProjectId}'.`);
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.workspaceRoot) {
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
- let workspacePath = resolveWorkspacePath({
564
- workspaceRoot: entry.project.workspaceRoot ?? this.workspaceRoot,
565
- projectId: entry.record.projectId,
566
- sessionId: entry.record.id,
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: entry.project.workspaceRoot ?? this.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, await tauSession.snapshot());
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.workspaceRoot ?? this.workspaceRoot,
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.projectIds.flatMap((projectId) => {
1128
- const project = this.projects[projectId];
1129
- return project && "repo" in project ? [project.repo] : [];
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 ("repo" in entry.project && entry.project.noAgentContextFiles !== undefined) {
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,