@letta-ai/letta-code 0.34.2 → 0.34.3

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 (73) hide show
  1. package/dist/mcp-client.js +2 -2
  2. package/dist/mcp-client.js.map +1 -1
  3. package/dist/mcp-oauth.js +2 -2
  4. package/dist/mcp-oauth.js.map +1 -1
  5. package/dist/memory-constraints.js +47 -13
  6. package/dist/memory-constraints.js.map +3 -3
  7. package/dist/types/agent/memory-constraints.d.ts +2 -0
  8. package/dist/types/agent/memory-constraints.d.ts.map +1 -1
  9. package/dist/types/agent/subagents/manager.d.ts.map +1 -1
  10. package/dist/types/agent/subagents/subagent-depth.d.ts +15 -0
  11. package/dist/types/agent/subagents/subagent-depth.d.ts.map +1 -0
  12. package/dist/types/agent/subagents/subagent-launcher.d.ts.map +1 -1
  13. package/dist/types/agent/subagents/subagent-process.d.ts +7 -0
  14. package/dist/types/agent/subagents/subagent-process.d.ts.map +1 -1
  15. package/dist/types/backend/api/agent-message.d.ts.map +1 -1
  16. package/dist/types/backend/dev/local-provider-errors.d.ts.map +1 -1
  17. package/dist/types/backend/local/local-pi-credential-store.d.ts +4 -3
  18. package/dist/types/backend/local/local-pi-credential-store.d.ts.map +1 -1
  19. package/dist/types/backend/local/local-provider-auth-store.d.ts +7 -0
  20. package/dist/types/backend/local/local-provider-auth-store.d.ts.map +1 -1
  21. package/dist/types/cli/helpers/session-context.d.ts +10 -2
  22. package/dist/types/cli/helpers/session-context.d.ts.map +1 -1
  23. package/dist/types/headless-super-run-wait.d.ts.map +1 -1
  24. package/dist/types/mcp-scope.d.ts +5 -0
  25. package/dist/types/mcp-scope.d.ts.map +1 -0
  26. package/dist/types/memory-constraints.d.ts +4 -0
  27. package/dist/types/memory-constraints.d.ts.map +1 -1
  28. package/dist/types/mods/mod-engine.d.ts.map +1 -1
  29. package/dist/types/mods/turn-start-cancel.d.ts +17 -1
  30. package/dist/types/mods/turn-start-cancel.d.ts.map +1 -1
  31. package/dist/types/reminders/engine.d.ts +2 -0
  32. package/dist/types/reminders/engine.d.ts.map +1 -1
  33. package/dist/types/runtime-execution-settings.d.ts +5 -0
  34. package/dist/types/runtime-execution-settings.d.ts.map +1 -1
  35. package/dist/types/tools/impl/bash.d.ts.map +1 -1
  36. package/dist/types/tools/impl/codex-app-server.d.ts.map +1 -1
  37. package/dist/types/tools/impl/external-coding-agent.d.ts +4 -3
  38. package/dist/types/tools/impl/external-coding-agent.d.ts.map +1 -1
  39. package/dist/types/tools/impl/foreground-sleep.d.ts +13 -0
  40. package/dist/types/tools/impl/foreground-sleep.d.ts.map +1 -0
  41. package/dist/types/tools/impl/process_manager.d.ts +2 -0
  42. package/dist/types/tools/impl/process_manager.d.ts.map +1 -1
  43. package/dist/types/tools/impl/send-agent-message.d.ts.map +1 -1
  44. package/dist/types/tools/impl/shell-launchers.d.ts.map +1 -1
  45. package/dist/types/tools/impl/task-foreground.d.ts +21 -0
  46. package/dist/types/tools/impl/task-foreground.d.ts.map +1 -0
  47. package/dist/types/tools/impl/task-stop.d.ts +1 -0
  48. package/dist/types/tools/impl/task-stop.d.ts.map +1 -1
  49. package/dist/types/tools/impl/task-transcript.d.ts +5 -0
  50. package/dist/types/tools/impl/task-transcript.d.ts.map +1 -0
  51. package/dist/types/tools/impl/task.d.ts +1 -1
  52. package/dist/types/tools/impl/task.d.ts.map +1 -1
  53. package/dist/types/tools/manager.d.ts +1 -1
  54. package/dist/types/tools/manager.d.ts.map +1 -1
  55. package/dist/types/tools/secret-substitution.d.ts +7 -0
  56. package/dist/types/tools/secret-substitution.d.ts.map +1 -1
  57. package/dist/types/tools/subagent-tool-policy.d.ts +16 -0
  58. package/dist/types/tools/subagent-tool-policy.d.ts.map +1 -0
  59. package/dist/types/tools/toolset-catalog.d.ts +1 -1
  60. package/dist/types/utils/checkout-readiness.d.ts +1 -1
  61. package/dist/types/utils/checkout-readiness.d.ts.map +1 -1
  62. package/dist/types/utils/secrets-store.d.ts +2 -0
  63. package/dist/types/utils/secrets-store.d.ts.map +1 -1
  64. package/dist/types/utils/shell-context.d.ts +8 -0
  65. package/dist/types/utils/shell-context.d.ts.map +1 -1
  66. package/dist/types/utils/subagent-depth-env.d.ts +9 -0
  67. package/dist/types/utils/subagent-depth-env.d.ts.map +1 -0
  68. package/dist/types/websocket/listener/queue.d.ts.map +1 -1
  69. package/letta.js +1330 -808
  70. package/package.json +1 -1
  71. package/scripts/source-file-size-baseline.json +3 -3
  72. package/skills/creating-mods/references/events.md +2 -0
  73. package/skills/self-configuration/SKILL.md +32 -38
@@ -76,7 +76,8 @@ function validateMemoryFileFrontmatter({
76
76
  // src/memory-constraints.ts
77
77
  async function validateMemoryTreeConstraints(reader, options) {
78
78
  const errors = [];
79
- const files = (await reader.listFiles()).filter((file) => file.path.endsWith(".md"));
79
+ const allFiles = await reader.listFiles();
80
+ const files = allFiles.filter((file) => file.path.endsWith(".md"));
80
81
  const paths = new Set(files.map((file) => file.path));
81
82
  const v2 = options.layout === "root-marker" && (options.requireRootMarker || paths.has("MEMORY.md"));
82
83
  if (v2 && !paths.has("MEMORY.md")) {
@@ -101,9 +102,8 @@ async function validateMemoryTreeConstraints(reader, options) {
101
102
  }
102
103
  }
103
104
  }
104
- const overrides = (options.config.fileCharacterLimits ?? []).map((override) => {
105
+ function compilePattern(pattern) {
105
106
  let source = "^";
106
- const pattern = override.pattern;
107
107
  for (let index = 0;index < pattern.length; index++) {
108
108
  const character = pattern.charAt(index);
109
109
  if (character === "*") {
@@ -122,8 +122,31 @@ async function validateMemoryTreeConstraints(reader, options) {
122
122
  else
123
123
  source += "^$.*+?()[]{}|".includes(character) || character.charCodeAt(0) === 92 ? String.fromCharCode(92) + character : character;
124
124
  }
125
- return { ...override, regex: new RegExp(`${source}$`) };
126
- });
125
+ return new RegExp(`${source}$`);
126
+ }
127
+ const overrides = (options.config.fileCharacterLimits ?? []).map((override) => ({ ...override, regex: compilePattern(override.pattern) }));
128
+ const protectedPatterns = (options.config.readOnlyFiles ?? []).map(compilePattern);
129
+ if (protectedPatterns.length) {
130
+ const accepted = options.acceptedTree;
131
+ if (!accepted)
132
+ throw new Error("readOnlyFiles requires the accepted memory tree");
133
+ const previous = new Map((await accepted.listFiles()).map((file) => [file.path, file.mode]));
134
+ const proposed = new Map(allFiles.map((file) => [file.path, file.mode]));
135
+ for (const path of new Set([...previous.keys(), ...proposed.keys()])) {
136
+ if (!protectedPatterns.some((pattern) => pattern.test(path)))
137
+ continue;
138
+ let changed = previous.get(path) !== proposed.get(path);
139
+ if (!changed) {
140
+ const before = await accepted.readFile(path);
141
+ const after = await reader.readFile(path);
142
+ if (before === null || after === null)
143
+ throw new Error(`${path}: cannot read protected file`);
144
+ changed = before.length !== after.length || before.some((value, index) => value !== after[index]);
145
+ }
146
+ if (changed)
147
+ errors.push(`${path}: read-only file cannot be created, changed or removed`);
148
+ }
149
+ }
127
150
  let coreCharacters = 0;
128
151
  for (const { path, mode } of memoryFiles) {
129
152
  if (!mode.startsWith("100")) {
@@ -183,7 +206,8 @@ function parseMemoryConstraintsConfig(content) {
183
206
  "maxDepth",
184
207
  "maxFileCharacters",
185
208
  "maxCoreMemoryCharacters",
186
- "fileCharacterLimits"
209
+ "fileCharacterLimits",
210
+ "readOnlyFiles"
187
211
  ]);
188
212
  for (const key of Object.keys(config)) {
189
213
  if (!keys.has(key))
@@ -200,6 +224,21 @@ function parseMemoryConstraintsConfig(content) {
200
224
  }
201
225
  }
202
226
  const overrides = config.fileCharacterLimits;
227
+ function validatePattern(pattern, label) {
228
+ if (typeof pattern !== "string" || !pattern || pattern.startsWith("/") || pattern.includes(String.fromCharCode(92)) || pattern.split("/").includes("..")) {
229
+ errors.push(`${label}: pattern must be a non-empty repo-relative glob using '/'`);
230
+ } else if (pattern.split("/").some((segment) => segment.includes("**") && segment !== "**")) {
231
+ errors.push(`${label}: '**' must be a complete path segment`);
232
+ }
233
+ }
234
+ if (config.readOnlyFiles !== undefined) {
235
+ if (!Array.isArray(config.readOnlyFiles))
236
+ errors.push(`${path}: readOnlyFiles must be an array`);
237
+ else
238
+ config.readOnlyFiles.forEach((pattern, index) => {
239
+ validatePattern(pattern, `${path}: readOnlyFiles[${index}]`);
240
+ });
241
+ }
203
242
  if (overrides !== undefined && !Array.isArray(overrides)) {
204
243
  errors.push(`${path}: fileCharacterLimits must be an array`);
205
244
  }
@@ -215,12 +254,7 @@ function parseMemoryConstraintsConfig(content) {
215
254
  if (key !== "pattern" && key !== "maxCharacters")
216
255
  errors.push(`${label}: unknown field '${key}'`);
217
256
  }
218
- const pattern = item.pattern;
219
- if (typeof pattern !== "string" || pattern.length === 0 || pattern.startsWith("/") || pattern.includes(String.fromCharCode(92)) || pattern.split("/").includes("..")) {
220
- errors.push(`${label}: pattern must be a non-empty repo-relative glob using '/'`);
221
- } else if (pattern.split("/").some((segment) => segment.includes("**") && segment !== "**")) {
222
- errors.push(`${label}: '**' must be a complete path segment`);
223
- }
257
+ validatePattern(item.pattern, label);
224
258
  if (item.maxCharacters !== null && !(Number.isSafeInteger(item.maxCharacters) && Number(item.maxCharacters) > 0)) {
225
259
  errors.push(`${label}: maxCharacters must be a positive integer or null`);
226
260
  }
@@ -249,4 +283,4 @@ export {
249
283
  DEFAULT_MEMORY_CONSTRAINTS_CONFIG
250
284
  };
251
285
 
252
- //# debugId=F0BBA2907775FAB264756E2164756E21
286
+ //# debugId=FA3EC712727F4E9064756E2164756E21
@@ -3,9 +3,9 @@
3
3
  "sources": ["../src/memory-frontmatter.ts", "../src/memory-constraints.ts"],
4
4
  "sourcesContent": [
5
5
  "export interface MemoryFileFrontmatterInput {\n path: string;\n content: string;\n /** Accepted contents of this path, never contents supplied by the change. */\n previousContent: string | null;\n format: \"memfs-v2\" | \"legacy\";\n}\n\n/**\n * Canonical content checks used by the installed hook and external tree readers.\n * The caller selects projected paths and supplies the trusted layout/base.\n * Legacy callers select added/modified files; v2 callers select the whole tree.\n * Ref operations, deletion/rename protection and policy authorization remain\n * caller responsibilities, not decisions made from the proposed file contents.\n * This is deliberately self-contained: the Git hook embeds its source so it\n * does not depend on a package installation in the memory repository.\n */\nexport function validateMemoryFileFrontmatter({\n path,\n content,\n previousContent,\n format,\n}: MemoryFileFrontmatterInput): string[] {\n const errors: string[] = [];\n const v2 = format === \"memfs-v2\";\n const lines = content.split(\"\\n\");\n if (v2 && path.split(\"/\").at(-1) === \"MEMORY.md\") {\n return lines[0] === \"---\"\n ? [`${path}: MEMORY.md must not have frontmatter`]\n : [];\n }\n if (lines[0] !== \"---\") {\n return [`${path}: missing frontmatter (must start with ---)`];\n }\n const closing = lines.indexOf(\"---\", 1);\n if (closing < 0) {\n return [\n `${path}: frontmatter opened but never closed (missing closing ---)`,\n ];\n }\n\n // Match the legacy hook's scalar protected field lookup. Do not interpret\n // YAML or turn a quoted value into a different authorization decision.\n function legacyValue(text: string | null, key: string): string {\n const previousLines = text?.split(\"\\n\") ?? [];\n const end = previousLines.indexOf(\"---\", 1);\n if (end < 0) return \"\";\n return previousLines\n .slice(1, end)\n .filter((line) => line.startsWith(`${key}:`))\n .map((line) => line.slice(key.length + 1).replace(/^ +| +$/g, \"\"))\n .join(\"\\n\");\n }\n\n if (\n !v2 &&\n previousContent &&\n legacyValue(previousContent, \"read_only\") === \"true\"\n ) {\n return [`${path}: file is read_only and cannot be modified`];\n }\n\n const seen = new Set<string>();\n const allowed = v2\n ? [\"name\", \"description\"]\n : [\"description\", \"read_only\", \"limit\"];\n for (const line of lines.slice(1, closing)) {\n if (!line) continue;\n // Legacy descriptions permit YAML continuation lines. V2 uses two scalar\n // fields, as in the existing hook, and rejects extra lines/keys.\n if (!v2 && /^[ \\t]/.test(line)) continue;\n const separator = line.indexOf(\":\");\n const rawKey = separator < 0 ? line : line.slice(0, separator);\n const key = v2\n ? rawKey.replace(/^ +| +$/g, \"\")\n : rawKey.replaceAll(\" \", \"\");\n const value = (separator < 0 ? line : line.slice(separator + 1)).replace(\n /^ +| +$/g,\n \"\",\n );\n if (!allowed.includes(key)) {\n errors.push(\n `${path}: unknown frontmatter key '${key}' (allowed: ${allowed.join(\" \")})`,\n );\n continue;\n }\n if (v2 && seen.has(key)) {\n errors.push(`${path}: duplicate frontmatter key '${key}'`);\n }\n seen.add(key);\n if (key === \"read_only\") {\n if (!previousContent) {\n errors.push(\n `${path}: 'read_only' is a protected field and cannot be set by the agent`,\n );\n } else if (value !== legacyValue(previousContent, key)) {\n errors.push(\n `${path}: 'read_only' is a protected field and cannot be changed by the agent`,\n );\n }\n }\n if (\n (v2 || key === \"description\") &&\n (!value || (v2 && (value === '\"\"' || value === \"''\")))\n ) {\n errors.push(`${path}: '${key}' must not be empty`);\n }\n }\n for (const key of v2 ? [\"name\", \"description\"] : [\"description\"]) {\n if (!seen.has(key)) errors.push(`${path}: missing required field '${key}'`);\n }\n if (\n !v2 &&\n legacyValue(previousContent, \"read_only\") &&\n !legacyValue(content, \"read_only\")\n ) {\n errors.push(\n `${path}: 'read_only' is a protected field and cannot be removed by the agent`,\n );\n }\n return errors;\n}\n",
6
- "export {\n type MemoryFileFrontmatterInput,\n validateMemoryFileFrontmatter,\n} from \"./memory-frontmatter\";\n\nexport interface MemoryFileCharacterLimit {\n pattern: string;\n maxCharacters: number | null;\n}\n\nexport interface MemoryConstraintsConfig {\n version: 1;\n maxDepth?: number;\n maxFileCharacters?: number;\n maxCoreMemoryCharacters?: number;\n fileCharacterLimits?: MemoryFileCharacterLimit[];\n}\n\nexport interface MemoryTreeReader {\n listFiles(): Promise<Array<{ path: string; mode: string }>>;\n readFile(path: string): Promise<Uint8Array | null>;\n /** Optional streaming count in Unicode code points, avoiding buffering large blobs. */\n countCharacters?(path: string): Promise<number>;\n}\n\nexport interface MemoryTreeConstraintsOptions {\n config: MemoryConstraintsConfig;\n layout: \"root-marker\" | \"legacy-only\" | \"shared-memory\";\n requireRootMarker: boolean;\n}\n\n/** Shared budget/index checks. Caller supplies trusted policy and layout.\n * Self-contained so the local hook can embed the same implementation.\n */\nexport async function validateMemoryTreeConstraints(\n reader: MemoryTreeReader,\n options: MemoryTreeConstraintsOptions,\n): Promise<string[]> {\n const errors: string[] = [];\n const files = (await reader.listFiles()).filter((file) =>\n file.path.endsWith(\".md\"),\n );\n const paths = new Set(files.map((file) => file.path));\n const v2 =\n options.layout === \"root-marker\" &&\n (options.requireRootMarker || paths.has(\"MEMORY.md\"));\n if (v2 && !paths.has(\"MEMORY.md\")) {\n errors.push(\"MEMORY.md: root memory index is required for MemFS v2\");\n }\n const memoryFiles = files.filter(({ path }) => {\n if (path.startsWith(\"skills/\")) return false;\n return (\n v2 ||\n options.layout === \"shared-memory\" ||\n /^(?:memory\\/)?(?:system|reference)\\/.*\\.md$/.test(path)\n );\n });\n if (v2) {\n for (const { path } of memoryFiles) {\n const directories = path.split(\"/\").slice(0, -1);\n let current = \"\";\n for (const directory of directories) {\n current = current ? `${current}/${directory}` : directory;\n const index = `${current}/MEMORY.md`;\n if (!paths.has(index)) {\n errors.push(`${path}: missing required index ${index}`);\n break;\n }\n }\n }\n }\n const overrides = (options.config.fileCharacterLimits ?? []).map(\n (override) => {\n let source = \"^\";\n const pattern = override.pattern;\n for (let index = 0; index < pattern.length; index++) {\n const character = pattern.charAt(index);\n if (character === \"*\") {\n if (pattern[index + 1] === \"*\") {\n if (pattern[index + 2] === \"/\") {\n source += \"(?:.*/)?\";\n index += 2;\n } else {\n source += \".*\";\n index++;\n }\n } else source += \"[^/]*\";\n } else if (character === \"?\") source += \"[^/]\";\n else\n source +=\n \"^$.*+?()[]{}|\".includes(character) ||\n character.charCodeAt(0) === 92\n ? String.fromCharCode(92) + character\n : character;\n }\n return { ...override, regex: new RegExp(`${source}$`) };\n },\n );\n let coreCharacters = 0;\n for (const { path, mode } of memoryFiles) {\n if (!mode.startsWith(\"100\")) {\n errors.push(`${path}: memory Markdown must be a regular file`);\n continue;\n }\n const depth = path.split(\"/\").length - 1;\n if (\n options.config.maxDepth !== undefined &&\n depth > options.config.maxDepth\n ) {\n errors.push(\n `${path}: depth ${depth} exceeds maxDepth ${options.config.maxDepth}`,\n );\n }\n const override = overrides.find((item) => item.regex.test(path));\n const limit = override\n ? override.maxCharacters\n : options.config.maxFileCharacters;\n const source = override\n ? `glob '${override.pattern}'`\n : \"maxFileCharacters\";\n const countCore =\n options.layout === \"root-marker\" &&\n !path.includes(\"/\") &&\n options.config.maxCoreMemoryCharacters !== undefined;\n if ((limit === null || limit === undefined) && !countCore) continue;\n let characters = 0;\n if (reader.countCharacters) {\n characters = await reader.countCharacters(path);\n } else {\n const bytes = await reader.readFile(path);\n if (bytes === null)\n throw new Error(`${path}: listed memory file is missing`);\n for (const _character of new TextDecoder(\"utf-8\", {\n ignoreBOM: true,\n }).decode(bytes))\n characters++;\n }\n if (countCore) coreCharacters += characters;\n if (limit !== undefined && limit !== null && characters > limit) {\n errors.push(\n `${path}: ${characters} characters exceeds ${limit} from ${source}`,\n );\n }\n }\n if (\n options.layout === \"root-marker\" &&\n options.config.maxCoreMemoryCharacters !== undefined &&\n coreCharacters > options.config.maxCoreMemoryCharacters\n ) {\n errors.push(\n `core memory: ${coreCharacters} characters exceeds ${options.config.maxCoreMemoryCharacters} from maxCoreMemoryCharacters`,\n );\n }\n return errors;\n}\n\nexport const MEMORY_CONSTRAINTS_CONFIG_PATH = \".memfs.config.json\";\nexport const MEMORY_CONSTRAINTS_CONFIG_VERSION = 1;\n\n/** Parse the tracked policy without filling defaults or changing override order.\n * Keep this function self-contained: the installed Git hook embeds its source.\n */\nexport function parseMemoryConstraintsConfig(\n content: string,\n): MemoryConstraintsConfig {\n const path = \".memfs.config.json\";\n const errors: string[] = [];\n let value: unknown;\n try {\n value = JSON.parse(content);\n } catch (error) {\n throw new Error(\n `${path}: invalid JSON (${error instanceof Error ? error.message : String(error)})`,\n );\n }\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new Error(`${path}: expected a JSON object`);\n }\n const config = value as Record<string, unknown>;\n const keys = new Set([\n \"version\",\n \"maxDepth\",\n \"maxFileCharacters\",\n \"maxCoreMemoryCharacters\",\n \"fileCharacterLimits\",\n ]);\n for (const key of Object.keys(config)) {\n if (!keys.has(key)) errors.push(`${path}: unknown field '${key}'`);\n }\n if (config.version !== 1) errors.push(`${path}: version must be 1`);\n if (\n config.maxDepth !== undefined &&\n !(Number.isSafeInteger(config.maxDepth) && Number(config.maxDepth) >= 0)\n ) {\n errors.push(`${path}: maxDepth must be a non-negative integer`);\n }\n for (const key of [\"maxFileCharacters\", \"maxCoreMemoryCharacters\"]) {\n if (\n config[key] !== undefined &&\n !(Number.isSafeInteger(config[key]) && Number(config[key]) > 0)\n ) {\n errors.push(`${path}: ${key} must be a positive integer`);\n }\n }\n const overrides = config.fileCharacterLimits;\n if (overrides !== undefined && !Array.isArray(overrides)) {\n errors.push(`${path}: fileCharacterLimits must be an array`);\n }\n if (Array.isArray(overrides)) {\n overrides.forEach((override: unknown, index: number) => {\n const label = `${path}: fileCharacterLimits[${index}]`;\n if (\n override === null ||\n typeof override !== \"object\" ||\n Array.isArray(override)\n ) {\n errors.push(`${label} must be an object`);\n return;\n }\n const item = override as Record<string, unknown>;\n for (const key of Object.keys(item)) {\n if (key !== \"pattern\" && key !== \"maxCharacters\")\n errors.push(`${label}: unknown field '${key}'`);\n }\n const pattern = item.pattern;\n if (\n typeof pattern !== \"string\" ||\n pattern.length === 0 ||\n pattern.startsWith(\"/\") ||\n pattern.includes(String.fromCharCode(92)) ||\n pattern.split(\"/\").includes(\"..\")\n ) {\n errors.push(\n `${label}: pattern must be a non-empty repo-relative glob using '/'`,\n );\n } else if (\n pattern\n .split(\"/\")\n .some((segment) => segment.includes(\"**\") && segment !== \"**\")\n ) {\n errors.push(`${label}: '**' must be a complete path segment`);\n }\n if (\n item.maxCharacters !== null &&\n !(\n Number.isSafeInteger(item.maxCharacters) &&\n Number(item.maxCharacters) > 0\n )\n ) {\n errors.push(\n `${label}: maxCharacters must be a positive integer or null`,\n );\n }\n });\n }\n if (errors.length) throw new Error(errors.join(\"\\n\"));\n return config as unknown as MemoryConstraintsConfig;\n}\n\nexport const DEFAULT_MEMORY_CONSTRAINTS_CONFIG: Readonly<MemoryConstraintsConfig> =\n Object.freeze({\n version: MEMORY_CONSTRAINTS_CONFIG_VERSION,\n maxDepth: 2,\n maxFileCharacters: 20_000,\n maxCoreMemoryCharacters: 65_536,\n });\n\nexport const DEFAULT_MEMORY_CONSTRAINTS_CONFIG_CONTENT = `${JSON.stringify(\n DEFAULT_MEMORY_CONSTRAINTS_CONFIG,\n null,\n 2,\n)}\\n`;\n"
6
+ "export {\n type MemoryFileFrontmatterInput,\n validateMemoryFileFrontmatter,\n} from \"./memory-frontmatter\";\n\nexport interface MemoryFileCharacterLimit {\n pattern: string;\n maxCharacters: number | null;\n}\n\nexport interface MemoryConstraintsConfig {\n version: 1;\n maxDepth?: number;\n maxFileCharacters?: number;\n maxCoreMemoryCharacters?: number;\n fileCharacterLimits?: MemoryFileCharacterLimit[];\n /** Repo-relative globs. Matching paths cannot be created, changed or removed. */\n readOnlyFiles?: string[];\n}\n\nexport interface MemoryTreeReader {\n listFiles(): Promise<Array<{ path: string; mode: string }>>;\n readFile(path: string): Promise<Uint8Array | null>;\n /** Optional streaming count in Unicode code points, avoiding buffering large blobs. */\n countCharacters?(path: string): Promise<number>;\n}\n\nexport interface MemoryTreeConstraintsOptions {\n config: MemoryConstraintsConfig;\n layout: \"root-marker\" | \"legacy-only\" | \"shared-memory\";\n requireRootMarker: boolean;\n /** Trusted tree before this change; required when readOnlyFiles is non-empty. */\n acceptedTree?: MemoryTreeReader;\n}\n\n/** Shared budget/index checks. Caller supplies trusted policy and layout.\n * Self-contained so the local hook can embed the same implementation.\n */\nexport async function validateMemoryTreeConstraints(\n reader: MemoryTreeReader,\n options: MemoryTreeConstraintsOptions,\n): Promise<string[]> {\n const errors: string[] = [];\n const allFiles = await reader.listFiles();\n const files = allFiles.filter((file) => file.path.endsWith(\".md\"));\n const paths = new Set(files.map((file) => file.path));\n const v2 =\n options.layout === \"root-marker\" &&\n (options.requireRootMarker || paths.has(\"MEMORY.md\"));\n if (v2 && !paths.has(\"MEMORY.md\")) {\n errors.push(\"MEMORY.md: root memory index is required for MemFS v2\");\n }\n const memoryFiles = files.filter(({ path }) => {\n if (path.startsWith(\"skills/\")) return false;\n return (\n v2 ||\n options.layout === \"shared-memory\" ||\n /^(?:memory\\/)?(?:system|reference)\\/.*\\.md$/.test(path)\n );\n });\n if (v2) {\n for (const { path } of memoryFiles) {\n const directories = path.split(\"/\").slice(0, -1);\n let current = \"\";\n for (const directory of directories) {\n current = current ? `${current}/${directory}` : directory;\n const index = `${current}/MEMORY.md`;\n if (!paths.has(index)) {\n errors.push(`${path}: missing required index ${index}`);\n break;\n }\n }\n }\n }\n function compilePattern(pattern: string): RegExp {\n let source = \"^\";\n for (let index = 0; index < pattern.length; index++) {\n const character = pattern.charAt(index);\n if (character === \"*\") {\n if (pattern[index + 1] === \"*\") {\n if (pattern[index + 2] === \"/\") {\n source += \"(?:.*/)?\";\n index += 2;\n } else {\n source += \".*\";\n index++;\n }\n } else source += \"[^/]*\";\n } else if (character === \"?\") source += \"[^/]\";\n else\n source +=\n \"^$.*+?()[]{}|\".includes(character) || character.charCodeAt(0) === 92\n ? String.fromCharCode(92) + character\n : character;\n }\n return new RegExp(`${source}$`);\n }\n const overrides = (options.config.fileCharacterLimits ?? []).map(\n (override) => ({ ...override, regex: compilePattern(override.pattern) }),\n );\n const protectedPatterns = (options.config.readOnlyFiles ?? []).map(\n compilePattern,\n );\n if (protectedPatterns.length) {\n const accepted = options.acceptedTree;\n if (!accepted)\n throw new Error(\"readOnlyFiles requires the accepted memory tree\");\n const previous = new Map(\n (await accepted.listFiles()).map((file) => [file.path, file.mode]),\n );\n const proposed = new Map(allFiles.map((file) => [file.path, file.mode]));\n for (const path of new Set([...previous.keys(), ...proposed.keys()])) {\n if (!protectedPatterns.some((pattern) => pattern.test(path))) continue;\n let changed = previous.get(path) !== proposed.get(path);\n if (!changed) {\n const before = await accepted.readFile(path);\n const after = await reader.readFile(path);\n if (before === null || after === null)\n throw new Error(`${path}: cannot read protected file`);\n changed =\n before.length !== after.length ||\n before.some((value, index) => value !== after[index]);\n }\n if (changed)\n errors.push(\n `${path}: read-only file cannot be created, changed or removed`,\n );\n }\n }\n let coreCharacters = 0;\n for (const { path, mode } of memoryFiles) {\n if (!mode.startsWith(\"100\")) {\n errors.push(`${path}: memory Markdown must be a regular file`);\n continue;\n }\n const depth = path.split(\"/\").length - 1;\n if (\n options.config.maxDepth !== undefined &&\n depth > options.config.maxDepth\n ) {\n errors.push(\n `${path}: depth ${depth} exceeds maxDepth ${options.config.maxDepth}`,\n );\n }\n const override = overrides.find((item) => item.regex.test(path));\n const limit = override\n ? override.maxCharacters\n : options.config.maxFileCharacters;\n const source = override\n ? `glob '${override.pattern}'`\n : \"maxFileCharacters\";\n const countCore =\n options.layout === \"root-marker\" &&\n !path.includes(\"/\") &&\n options.config.maxCoreMemoryCharacters !== undefined;\n if ((limit === null || limit === undefined) && !countCore) continue;\n let characters = 0;\n if (reader.countCharacters) {\n characters = await reader.countCharacters(path);\n } else {\n const bytes = await reader.readFile(path);\n if (bytes === null)\n throw new Error(`${path}: listed memory file is missing`);\n for (const _character of new TextDecoder(\"utf-8\", {\n ignoreBOM: true,\n }).decode(bytes))\n characters++;\n }\n if (countCore) coreCharacters += characters;\n if (limit !== undefined && limit !== null && characters > limit) {\n errors.push(\n `${path}: ${characters} characters exceeds ${limit} from ${source}`,\n );\n }\n }\n if (\n options.layout === \"root-marker\" &&\n options.config.maxCoreMemoryCharacters !== undefined &&\n coreCharacters > options.config.maxCoreMemoryCharacters\n ) {\n errors.push(\n `core memory: ${coreCharacters} characters exceeds ${options.config.maxCoreMemoryCharacters} from maxCoreMemoryCharacters`,\n );\n }\n return errors;\n}\n\nexport const MEMORY_CONSTRAINTS_CONFIG_PATH = \".memfs.config.json\";\nexport const MEMORY_CONSTRAINTS_CONFIG_VERSION = 1;\n\n/** Parse the tracked policy without filling defaults or changing override order.\n * Keep this function self-contained: the installed Git hook embeds its source.\n */\nexport function parseMemoryConstraintsConfig(\n content: string,\n): MemoryConstraintsConfig {\n const path = \".memfs.config.json\";\n const errors: string[] = [];\n let value: unknown;\n try {\n value = JSON.parse(content);\n } catch (error) {\n throw new Error(\n `${path}: invalid JSON (${error instanceof Error ? error.message : String(error)})`,\n );\n }\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new Error(`${path}: expected a JSON object`);\n }\n const config = value as Record<string, unknown>;\n const keys = new Set([\n \"version\",\n \"maxDepth\",\n \"maxFileCharacters\",\n \"maxCoreMemoryCharacters\",\n \"fileCharacterLimits\",\n \"readOnlyFiles\",\n ]);\n for (const key of Object.keys(config)) {\n if (!keys.has(key)) errors.push(`${path}: unknown field '${key}'`);\n }\n if (config.version !== 1) errors.push(`${path}: version must be 1`);\n if (\n config.maxDepth !== undefined &&\n !(Number.isSafeInteger(config.maxDepth) && Number(config.maxDepth) >= 0)\n ) {\n errors.push(`${path}: maxDepth must be a non-negative integer`);\n }\n for (const key of [\"maxFileCharacters\", \"maxCoreMemoryCharacters\"]) {\n if (\n config[key] !== undefined &&\n !(Number.isSafeInteger(config[key]) && Number(config[key]) > 0)\n ) {\n errors.push(`${path}: ${key} must be a positive integer`);\n }\n }\n const overrides = config.fileCharacterLimits;\n function validatePattern(pattern: unknown, label: string): void {\n if (\n typeof pattern !== \"string\" ||\n !pattern ||\n pattern.startsWith(\"/\") ||\n pattern.includes(String.fromCharCode(92)) ||\n pattern.split(\"/\").includes(\"..\")\n ) {\n errors.push(\n `${label}: pattern must be a non-empty repo-relative glob using '/'`,\n );\n } else if (\n pattern\n .split(\"/\")\n .some((segment) => segment.includes(\"**\") && segment !== \"**\")\n ) {\n errors.push(`${label}: '**' must be a complete path segment`);\n }\n }\n if (config.readOnlyFiles !== undefined) {\n if (!Array.isArray(config.readOnlyFiles))\n errors.push(`${path}: readOnlyFiles must be an array`);\n else\n config.readOnlyFiles.forEach((pattern, index) => {\n validatePattern(pattern, `${path}: readOnlyFiles[${index}]`);\n });\n }\n if (overrides !== undefined && !Array.isArray(overrides)) {\n errors.push(`${path}: fileCharacterLimits must be an array`);\n }\n if (Array.isArray(overrides)) {\n overrides.forEach((override: unknown, index: number) => {\n const label = `${path}: fileCharacterLimits[${index}]`;\n if (\n override === null ||\n typeof override !== \"object\" ||\n Array.isArray(override)\n ) {\n errors.push(`${label} must be an object`);\n return;\n }\n const item = override as Record<string, unknown>;\n for (const key of Object.keys(item)) {\n if (key !== \"pattern\" && key !== \"maxCharacters\")\n errors.push(`${label}: unknown field '${key}'`);\n }\n validatePattern(item.pattern, label);\n if (\n item.maxCharacters !== null &&\n !(\n Number.isSafeInteger(item.maxCharacters) &&\n Number(item.maxCharacters) > 0\n )\n ) {\n errors.push(\n `${label}: maxCharacters must be a positive integer or null`,\n );\n }\n });\n }\n if (errors.length) throw new Error(errors.join(\"\\n\"));\n return config as unknown as MemoryConstraintsConfig;\n}\n\nexport const DEFAULT_MEMORY_CONSTRAINTS_CONFIG: Readonly<MemoryConstraintsConfig> =\n Object.freeze({\n version: MEMORY_CONSTRAINTS_CONFIG_VERSION,\n maxDepth: 2,\n maxFileCharacters: 20_000,\n maxCoreMemoryCharacters: 65_536,\n });\n\nexport const DEFAULT_MEMORY_CONSTRAINTS_CONFIG_CONTENT = `${JSON.stringify(\n DEFAULT_MEMORY_CONSTRAINTS_CONFIG,\n null,\n 2,\n)}\\n`;\n"
7
7
  ],
8
- "mappings": "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",
9
- "debugId": "F0BBA2907775FAB264756E2164756E21",
8
+ "mappings": "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",
9
+ "debugId": "FA3EC712727F4E9064756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -14,6 +14,8 @@
14
14
  * null limit leaves matching files uncapped
15
15
  * - `maxDepth`: the number of directories allowed between the repo root and a
16
16
  * projected memory file
17
+ * - `readOnlyFiles`: repo-relative globs protecting any matching file's contents,
18
+ * path and Git mode against changes relative to HEAD
17
19
  *
18
20
  * File limits count the complete staged file, including frontmatter.
19
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"memory-constraints.d.ts","sourceRoot":"","sources":["../../../src/agent/memory-constraints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AASH,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AAChF,eAAO,MAAM,6BAA6B,oCAAoC,CAAC;AAE/E,eAAO,MAAM,mCAAmC,QA8K/C,CAAC"}
1
+ {"version":3,"file":"memory-constraints.d.ts","sourceRoot":"","sources":["../../../src/agent/memory-constraints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AASH,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AAChF,eAAO,MAAM,6BAA6B,oCAAoC,CAAC;AAE/E,eAAO,MAAM,mCAAmC,QAqM/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/agent/subagents/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,WAAW,CAAC;AAqBnB,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,GAAG,CAAC;AA2DX,UAAU,wBAAwB;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,mDAAmD;AACnD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,EACxB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,wBAA6B,GACrC,MAAM,EAAE,CA6HV;AAqeD,wBAAgB,iCAAiC,CAC/C,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,aAAa,EAAE,MAAM,GACpB,OAAO,CAET;AAED,wBAAgB,sBAAsB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,MAAM,CAIxE;AAsCD;;;;;;;;;;;;;;GAcG;AACH,iBAAe,sBAAsB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,EACpB,eAAe,CAAC,EAAE,MAAM,EACxB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,EACvB,aAAa,CAAC,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,MAAM,EACvB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,WAAW,CAAC,EAAE,mBAAmB,EACjC,oBAAoB,CAAC,EAAE,MAAM,EAC7B,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,cAAc,EAC/B,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,cAAc,CAAC,CAoJzB;AAED,wBAAgB,aAAa,CAC3B,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,GACjD,OAAO,CAAC,cAAc,CAAC,CAOzB"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/agent/subagents/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,WAAW,CAAC;AAqBnB,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,GAAG,CAAC;AA4DX,UAAU,wBAAwB;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,mDAAmD;AACnD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,EACxB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,wBAA6B,GACrC,MAAM,EAAE,CA6HV;AAseD,wBAAgB,iCAAiC,CAC/C,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,aAAa,EAAE,MAAM,GACpB,OAAO,CAET;AAED,wBAAgB,sBAAsB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,MAAM,CAIxE;AAsCD;;;;;;;;;;;;;;GAcG;AACH,iBAAe,sBAAsB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,EACpB,eAAe,CAAC,EAAE,MAAM,EACxB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,EACvB,aAAa,CAAC,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,MAAM,EACvB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,WAAW,CAAC,EAAE,mBAAmB,EACjC,oBAAoB,CAAC,EAAE,MAAM,EAC7B,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,cAAc,EAC/B,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,cAAc,CAAC,CAoJzB;AAED,wBAAgB,aAAa,CAC3B,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,GACjD,OAAO,CAAC,cAAc,CAAC,CAOzB"}
@@ -0,0 +1,15 @@
1
+ import type { SubagentConfig } from ".";
2
+ export declare const MAX_SUBAGENT_DEPTH = 2;
3
+ /** Depth of the agent whose turn is executing, including listener-hosted turns. */
4
+ export declare function getCurrentSubagentDepth(): number;
5
+ export declare function canLaunchSubagentsAtDepth(depth: number): boolean;
6
+ /**
7
+ * Harness tools added to a child's explicit tool list. Memory-profile workers
8
+ * (reflection, memory, init) are excluded: they maintain the parent's memory
9
+ * in a confined process and must not message or launch agents. Agent is only
10
+ * added to full-capability types, so a restricted type such as recall cannot
11
+ * escape its tool list by launching a general-purpose child. Configs with
12
+ * `tools: all` (fork) receive no list; the child's tool policy filters Agent.
13
+ */
14
+ export declare function resolveSubagentHarnessTools(type: string, config: Pick<SubagentConfig, "allowedTools" | "launchProfile">, childDepth?: number): string[];
15
+ //# sourceMappingURL=subagent-depth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-depth.d.ts","sourceRoot":"","sources":["../../../../src/agent/subagents/subagent-depth.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC;AAExC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,mFAAmF;AACnF,wBAAgB,uBAAuB,IAAI,MAAM,CAIhD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,eAAe,CAAC,EAC9D,UAAU,SAAgC,GACzC,MAAM,EAAE,CAOV"}
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-launcher.d.ts","sourceRoot":"","sources":["../../../../src/agent/subagents/subagent-launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent-launcher.d.ts","sourceRoot":"","sources":["../../../../src/agent/subagents/subagent-launcher.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,WAAW,EAA6B,MAAM,WAAW,CAAC;AAsBxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC;AAGpE,UAAU,8BAA8B;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,WAAW,GAAE,MAAqC,EAClD,OAAO,GAAE;IACP,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,mBAAmB,CAAC;CAC9B,GACL,MAAM,CA4BR;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,GAAE,8BAAmC,GAC3C,gBAAgB,CA6ClB;AAED,MAAM,WAAW,8BAA8B;IAC7C,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,6DAA6D;IAC7D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,uEAAuE;IACvE,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;+EAC2E;IAC3E,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;oDACgD;IAChD,aAAa,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACjD;;yEAEqE;IACrE,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iEAAiE;IACjE,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;+EAG2E;IAC3E,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,GACtC,MAAM,CAAC,UAAU,CAwEnB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAwBV;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE;IAC3D,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,GAAG,MAAM,GAAG,IAAI,CAQhB"}
@@ -19,5 +19,12 @@ export interface RunningSubagentProcess {
19
19
  * the full group instead of only the headless launcher PID.
20
20
  */
21
21
  export declare function spawnSubagentProcess(command: string, args: string[], options: SpawnSubagentProcessOptions): RunningSubagentProcess;
22
+ /**
23
+ * Spawns an external coding-agent CLI in the managed workload slice when Cloud
24
+ * configures one, so the CLI and everything it runs share the workload memory
25
+ * limit instead of the listener's cgroup. `systemd-run --scope` execs the CLI
26
+ * in place, keeping its PID, process group, and stdio pipes intact.
27
+ */
28
+ export declare function spawnManagedWorkloadProcess(command: string, args: string[], options: SpawnSubagentProcessOptions): RunningSubagentProcess;
22
29
  export {};
23
30
  //# sourceMappingURL=subagent-process.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-process.d.ts","sourceRoot":"","sources":["../../../../src/agent/subagents/subagent-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,8BAA8B,EAAS,MAAM,oBAAoB,CAAC;AAMhF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,UAAU,2BAA2B;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,8BAA8B,CAAC;IACxC,UAAU,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzC,UAAU,IAAI,OAAO,CAAC;CACvB;AA0FD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,2BAA2B,GACnC,sBAAsB,CA+CxB"}
1
+ {"version":3,"file":"subagent-process.d.ts","sourceRoot":"","sources":["../../../../src/agent/subagents/subagent-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,8BAA8B,EAAS,MAAM,oBAAoB,CAAC;AAOhF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,UAAU,2BAA2B;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,8BAA8B,CAAC;IACxC,UAAU,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzC,UAAU,IAAI,OAAO,CAAC;CACvB;AA0FD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,2BAA2B,GACnC,sBAAsB,CA+CxB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,2BAA2B,GACnC,sBAAsB,CAIxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-message.d.ts","sourceRoot":"","sources":["../../../../src/backend/api/agent-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,4EAA4E;AAC5E,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,GACb,MAAM,GAAG,SAAS,CAYpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACrD,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,GACd,aAAa,CAAC,SAAS,CAAC,CAM1B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACrD,MAAM,EAAE,OAAO,GACd,MAAM,CAWR;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,OAAO,GAAG,cAAc,GAC7B,MAAM,GAAG,SAAS,CAQpB;AAED,6EAA6E;AAC7E,wBAAsB,8BAA8B,CAClD,KAAK,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE,EACD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,sBAAsB,GAAG,oBAAoB,CAAC,EACrE,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAoCtD"}
1
+ {"version":3,"file":"agent-message.d.ts","sourceRoot":"","sources":["../../../../src/backend/api/agent-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,4EAA4E;AAC5E,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,GACb,MAAM,GAAG,SAAS,CAYpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACrD,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,GACd,aAAa,CAAC,SAAS,CAAC,CAM1B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACrD,MAAM,EAAE,OAAO,GACd,MAAM,CAmBR;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,OAAO,GAAG,cAAc,GAC7B,MAAM,GAAG,SAAS,CAQpB;AAED,6EAA6E;AAC7E,wBAAsB,8BAA8B,CAClD,KAAK,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE,EACD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,sBAAsB,GAAG,oBAAoB,CAAC,EACrE,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAoCtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"local-provider-errors.d.ts","sourceRoot":"","sources":["../../../../src/backend/dev/local-provider-errors.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,WAAW,GAAG,qBAAqB,CAAC;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC;CACxC;AA+DD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAsB/D;AA8DD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYrE;AAiBD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,GACb,sBAAsB,CAYxB;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,GACd,MAAM,CAkBR;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGhE"}
1
+ {"version":3,"file":"local-provider-errors.d.ts","sourceRoot":"","sources":["../../../../src/backend/dev/local-provider-errors.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,WAAW,GAAG,qBAAqB,CAAC;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC;CACxC;AAmED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAsB/D;AA8DD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYrE;AAiBD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,GACb,sBAAsB,CAYxB;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,GACd,MAAM,CAkBR;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGhE"}
@@ -4,9 +4,10 @@ import type { CredentialStore } from "@earendil-works/pi-ai";
4
4
  * keyed by pi-ai provider id. This makes the Models runtime the credential
5
5
  * source of truth: `Models.getAuth()` reads stored keys/OAuth tokens from
6
6
  * here and persists OAuth refreshes back through `modify`, which is
7
- * serialized per provider as the contract requires so concurrent requests
8
- * cannot double-refresh a rotated token. (auth.json writes are same-process
9
- * only today; cross-process locking would live in the auth store itself.)
7
+ * serialized as the contract requires so concurrent requests cannot
8
+ * double-refresh a rotated token. Serialization is per provider within a
9
+ * process and, through a lock file next to auth.json, across every process
10
+ * sharing the storage dir (e.g. a channel listener and an App Server).
10
11
  *
11
12
  * Records store more than credentials (base URLs, timeouts, regions) —
12
13
  * that remains Letta-owned provider config; only the credential facet is
@@ -1 +1 @@
1
- {"version":3,"file":"local-pi-credential-store.d.ts","sourceRoot":"","sources":["../../../../src/backend/local/local-pi-credential-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAmBzE;;;;;;;;;;;;;GAaG;AAEH,mEAAmE;AACnE,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAW7E;AA0CD,wBAAgB,4BAA4B,CAC1C,UAAU,CAAC,EAAE,MAAM,GAClB,eAAe,CA8EjB"}
1
+ {"version":3,"file":"local-pi-credential-store.d.ts","sourceRoot":"","sources":["../../../../src/backend/local/local-pi-credential-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAoBzE;;;;;;;;;;;;;;GAcG;AAEH,mEAAmE;AACnE,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAW7E;AA0CD,wBAAgB,4BAA4B,CAC1C,UAAU,CAAC,EAAE,MAAM,GAClB,eAAe,CAiFjB"}
@@ -34,6 +34,13 @@ export interface LocalProviderRecord {
34
34
  }
35
35
  export declare function isLocalProviderTypeSupported(providerType: string): boolean;
36
36
  export declare function getLocalProviderAuthPath(storageDir?: string): string;
37
+ /**
38
+ * Run a read-modify-write of auth.json exclusively across every process
39
+ * sharing the storage dir (e.g. a channel listener and an App Server), so
40
+ * two processes cannot both spend the same rotating OAuth refresh token.
41
+ * Callers must re-read the record inside `fn`. Not reentrant.
42
+ */
43
+ export declare function withLocalProviderAuthLock<T>(fn: () => Promise<T>, storageDir?: string): Promise<T>;
37
44
  export declare function localProviderApiKeyFromRecord(record: LocalProviderRecord | null | undefined): string | undefined;
38
45
  export declare function listLocalProviderRecords(storageDir?: string): LocalProviderRecord[];
39
46
  export declare function listLocalProviders(storageDir?: string): Promise<ProviderResponse[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"local-provider-auth-store.d.ts","sourceRoot":"","sources":["../../../../src/backend/local/local-provider-auth-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-provider-auth-store.d.ts","sourceRoot":"","sources":["../../../../src/backend/local/local-provider-auth-store.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { SessionContextReason } from "../../reminders/state";
2
- import type { ShellContext } from "../../utils/shell-context";
2
+ import { type ShellContext } from "../../utils/shell-context";
3
3
  export type SessionContextSource = "interactive-cli" | "headless" | "listen";
4
4
  /**
5
5
  * Get the current local time in a human-readable format
@@ -8,13 +8,21 @@ export declare function getLocalTime(): string;
8
8
  /**
9
9
  * Get device type based on platform
10
10
  */
11
- export declare function getDeviceType(): string;
11
+ export declare function getDeviceType(p?: NodeJS.Platform): string;
12
12
  export interface BuildSessionContextOptions {
13
13
  cwd?: string;
14
14
  source?: SessionContextSource;
15
15
  reason?: SessionContextReason;
16
16
  shellContext?: ShellContext;
17
+ /** Override the host platform (tests). Defaults to `os.platform()`. */
18
+ platform?: NodeJS.Platform;
17
19
  }
20
+ /**
21
+ * Name the shell Bash/Monitor spawn on macOS/Linux, mirroring Claude Code's
22
+ * `Shell:` env line and Codex's `<shell>` environment_context field.
23
+ * Windows keeps its dedicated shell notes instead.
24
+ */
25
+ export declare function buildUnixShellLine(shellContext: ShellContext): string;
18
26
  export declare function buildWindowsShellNotes(shellContext?: ShellContext): string;
19
27
  /**
20
28
  * Build the session context system reminder (device/environment info only).
@@ -1 +1 @@
1
- {"version":3,"file":"session-context.d.ts","sourceRoot":"","sources":["../../../../src/cli/helpers/session-context.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE7E;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAWrC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAYtC;AAkCD,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAsBD,wBAAgB,sBAAsB,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CAuB1E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,0BAA0B,GACnC,MAAM,CA2ER"}
1
+ {"version":3,"file":"session-context.d.ts","sourceRoot":"","sources":["../../../../src/cli/helpers/session-context.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI9E,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE7E;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAWrC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAE,MAAM,CAAC,QAAqB,GAAG,MAAM,CAWrE;AAkCD,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAIrE;AAsBD,wBAAgB,sBAAsB,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CAuB1E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,0BAA0B,GACnC,MAAM,CAwFR"}
@@ -1 +1 @@
1
- {"version":3,"file":"headless-super-run-wait.d.ts","sourceRoot":"","sources":["../../src/headless-super-run-wait.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,OAAO,EACP,GAAG,EACJ,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,CACL,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5B,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AA2ED,sFAAsF;AACtF,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,aAAa,CAAC,CAsExB"}
1
+ {"version":3,"file":"headless-super-run-wait.d.ts","sourceRoot":"","sources":["../../src/headless-super-run-wait.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,OAAO,EACP,GAAG,EACJ,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,CACL,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5B,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AA2ED,sFAAsF;AACtF,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,aAAa,CAAC,CA0ExB"}
@@ -0,0 +1,5 @@
1
+ export type ParentAgentLookup = (agentId: string) => Promise<string | undefined>;
2
+ export declare function lookupParentAgent(agentId: string): Promise<string | undefined>;
3
+ /** Follow the existing subagent parent relationship, without changing identity. */
4
+ export declare function getMcpScopeAgentId(agentId: string, env?: NodeJS.ProcessEnv, lookupParent?: ParentAgentLookup): Promise<string>;
5
+ //# sourceMappingURL=mcp-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-scope.d.ts","sourceRoot":"","sources":["../../src/mcp-scope.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAEjC,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AAED,mFAAmF;AACnF,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,GAAG,oBAGF,EACD,YAAY,GAAE,iBAAqC,GAClD,OAAO,CAAC,MAAM,CAAC,CAWjB"}
@@ -9,6 +9,8 @@ export interface MemoryConstraintsConfig {
9
9
  maxFileCharacters?: number;
10
10
  maxCoreMemoryCharacters?: number;
11
11
  fileCharacterLimits?: MemoryFileCharacterLimit[];
12
+ /** Repo-relative globs. Matching paths cannot be created, changed or removed. */
13
+ readOnlyFiles?: string[];
12
14
  }
13
15
  export interface MemoryTreeReader {
14
16
  listFiles(): Promise<Array<{
@@ -23,6 +25,8 @@ export interface MemoryTreeConstraintsOptions {
23
25
  config: MemoryConstraintsConfig;
24
26
  layout: "root-marker" | "legacy-only" | "shared-memory";
25
27
  requireRootMarker: boolean;
28
+ /** Trusted tree before this change; required when readOnlyFiles is non-empty. */
29
+ acceptedTree?: MemoryTreeReader;
26
30
  }
27
31
  /** Shared budget/index checks. Caller supplies trusted policy and layout.
28
32
  * Self-contained so the local hook can embed the same implementation.
@@ -1 +1 @@
1
- {"version":3,"file":"memory-constraints.d.ts","sourceRoot":"","sources":["../../src/memory-constraints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,0BAA0B,EAC/B,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACnD,uFAAuF;IACvF,eAAe,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;IACxD,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,MAAM,EAAE,CAAC,CAqHnB;AAED,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AACnE,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,GACd,uBAAuB,CA6FzB;AAED,eAAO,MAAM,iCAAiC,EAAE,QAAQ,CAAC,uBAAuB,CAM5E,CAAC;AAEL,eAAO,MAAM,yCAAyC,QAIjD,CAAC"}
1
+ {"version":3,"file":"memory-constraints.d.ts","sourceRoot":"","sources":["../../src/memory-constraints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,0BAA0B,EAC/B,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACjD,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACnD,uFAAuF;IACvF,eAAe,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;IACxD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iFAAiF;IACjF,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,MAAM,EAAE,CAAC,CAgJnB;AAED,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AACnE,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,GACd,uBAAuB,CAwGzB;AAED,eAAO,MAAM,iCAAiC,EAAE,QAAQ,CAAC,uBAAuB,CAM5E,CAAC;AAEL,eAAO,MAAM,yCAAyC,QAIjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mod-engine.d.ts","sourceRoot":"","sources":["../../../src/mods/mod-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mod-engine.d.ts","sourceRoot":"","sources":["../../../src/mods/mod-engine.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,20 @@
1
- import type { ModTurnStartCancelResult } from "./types";
1
+ import type { ModOwner, ModTurnStartCancelResult } from "./types";
2
+ /** Which loaded mod returned the turn_start cancel. Set by the host. */
3
+ export type ModTurnStartCancelSource = Pick<ModOwner, "path" | "scope">;
2
4
  export declare function normalizeTurnStartCancelReason(value: unknown): string | null;
3
5
  export declare function getTurnStartCancel(event: unknown): ModTurnStartCancelResult | null;
6
+ export declare function getTurnStartCancelSource(event: unknown): ModTurnStartCancelSource | null;
7
+ export interface ModTurnStartCancelRecord extends ModTurnStartCancelResult {
8
+ source: ModTurnStartCancelSource;
9
+ }
10
+ /** Normalize a handler's cancel and record which loaded mod returned it. */
11
+ export declare function createTurnStartCancelRecord(result: {
12
+ cancel: {
13
+ reason?: unknown;
14
+ };
15
+ }, registration: {
16
+ owner: ModTurnStartCancelSource;
17
+ }): ModTurnStartCancelRecord | undefined;
18
+ /** Write the winning cancel (or clear any stale one) onto the event. */
19
+ export declare function applyTurnStartCancel(event: object, record: ModTurnStartCancelRecord | undefined): void;
4
20
  //# sourceMappingURL=turn-start-cancel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn-start-cancel.d.ts","sourceRoot":"","sources":["../../../src/mods/turn-start-cancel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAQ7D,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAO5E;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,GACb,wBAAwB,GAAG,IAAI,CAIjC"}
1
+ {"version":3,"file":"turn-start-cancel.d.ts","sourceRoot":"","sources":["../../../src/mods/turn-start-cancel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAEvE,wEAAwE;AACxE,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;AAQxE,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAO5E;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,GACb,wBAAwB,GAAG,IAAI,CAIjC;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,GACb,wBAAwB,GAAG,IAAI,CAKjC;AAED,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;IACxE,MAAM,EAAE,wBAAwB,CAAC;CAClC;AAED,4EAA4E;AAC5E,wBAAgB,2BAA2B,CACzC,MAAM,EAAE;IAAE,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,EACxC,YAAY,EAAE;IAAE,KAAK,EAAE,wBAAwB,CAAA;CAAE,GAChD,wBAAwB,GAAG,SAAS,CAKtC;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,wBAAwB,GAAG,SAAS,GAC3C,IAAI,CASN"}
@@ -1,6 +1,7 @@
1
1
  import type { MessageCreate } from "@letta-ai/letta-client/resources/agents/agents";
2
2
  import type { SkillSource } from "../agent/skills";
3
3
  import { type SessionContextSource } from "../cli/helpers/session-context";
4
+ import { type ParentAgentLookup } from "../mcp-scope";
4
5
  import type { ShellContext } from "../utils/shell-context";
5
6
  import { type SharedReminderId, type SharedReminderMode } from "./catalog";
6
7
  import type { SessionContextReason, SharedReminderState } from "./state";
@@ -42,6 +43,7 @@ export interface McpServerReminderEntry {
42
43
  toolCount: number | null;
43
44
  }
44
45
  export interface McpServersReminderDependencies {
46
+ lookupParentAgent?: ParentAgentLookup;
45
47
  getLocalServerNames?: (agentId: string) => string[];
46
48
  /** Returns cloud-connected servers, or null when unavailable. */
47
49
  listServerSideServers?: (agentId: string) => Promise<McpServerReminderEntry[] | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/reminders/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/reminders/engine.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,16 @@ export interface RuntimeExecutionSettings {
6
6
  disallowed_tools: string[];
7
7
  max_turns?: number;
8
8
  parent_agent_id?: string;
9
+ parent_conversation_id?: string;
9
10
  agent_role?: "subagent";
11
+ /** Harness-owned nesting depth; see SUBAGENT_DEPTH_ENV. */
12
+ subagent_depth?: number;
10
13
  transcript_path?: string;
11
14
  memory_directory?: string;
12
15
  disable_memory_guard: boolean;
13
16
  }
14
17
  export declare function isRuntimeExecutionSettings(value: unknown): value is RuntimeExecutionSettings;
15
18
  export declare function getRuntimeExecutionEnv(env: NodeJS.ProcessEnv, settings?: RuntimeExecutionSettings): NodeJS.ProcessEnv;
19
+ /** Subagent identity a headless child forwards when its turn runs on a listener. */
20
+ export declare function subagentExecutionSettings(env: NodeJS.ProcessEnv): Pick<RuntimeExecutionSettings, "parent_agent_id" | "parent_conversation_id" | "agent_role" | "subagent_depth">;
16
21
  //# sourceMappingURL=runtime-execution-settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-execution-settings.d.ts","sourceRoot":"","sources":["../../src/runtime-execution-settings.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,wBAAwB,CAqBnC;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,QAAQ,CAAC,EAAE,wBAAwB,GAClC,MAAM,CAAC,UAAU,CAmBnB"}
1
+ {"version":3,"file":"runtime-execution-settings.d.ts","sourceRoot":"","sources":["../../src/runtime-execution-settings.ts"],"names":[],"mappings":"AAKA,mFAAmF;AACnF,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,wBAAwB,CA8BnC;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,QAAQ,CAAC,EAAE,wBAAwB,GAClC,MAAM,CAAC,UAAU,CAyBnB;AAED,oFAAoF;AACpF,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,IAAI,CACL,wBAAwB,EACxB,iBAAiB,GAAG,wBAAwB,GAAG,YAAY,GAAG,gBAAgB,CAC/E,CASA"}
@@ -1 +1 @@
1
- {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../../src/tools/impl/bash.ts"],"names":[],"mappings":"AAuEA;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,MAAM,EAAE,CAQV;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,GACA,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAkGtE;AAgGD,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;CAC7B;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAoU9D"}
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../../src/tools/impl/bash.ts"],"names":[],"mappings":"AA2EA;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,MAAM,EAAE,CAQV;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,GACA,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAkGtE;AAgGD,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;CAC7B;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA2U9D"}