@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.
- package/dist/mcp-client.js +2 -2
- package/dist/mcp-client.js.map +1 -1
- package/dist/mcp-oauth.js +2 -2
- package/dist/mcp-oauth.js.map +1 -1
- package/dist/memory-constraints.js +47 -13
- package/dist/memory-constraints.js.map +3 -3
- package/dist/types/agent/memory-constraints.d.ts +2 -0
- package/dist/types/agent/memory-constraints.d.ts.map +1 -1
- package/dist/types/agent/subagents/manager.d.ts.map +1 -1
- package/dist/types/agent/subagents/subagent-depth.d.ts +15 -0
- package/dist/types/agent/subagents/subagent-depth.d.ts.map +1 -0
- package/dist/types/agent/subagents/subagent-launcher.d.ts.map +1 -1
- package/dist/types/agent/subagents/subagent-process.d.ts +7 -0
- package/dist/types/agent/subagents/subagent-process.d.ts.map +1 -1
- package/dist/types/backend/api/agent-message.d.ts.map +1 -1
- package/dist/types/backend/dev/local-provider-errors.d.ts.map +1 -1
- package/dist/types/backend/local/local-pi-credential-store.d.ts +4 -3
- package/dist/types/backend/local/local-pi-credential-store.d.ts.map +1 -1
- package/dist/types/backend/local/local-provider-auth-store.d.ts +7 -0
- package/dist/types/backend/local/local-provider-auth-store.d.ts.map +1 -1
- package/dist/types/cli/helpers/session-context.d.ts +10 -2
- package/dist/types/cli/helpers/session-context.d.ts.map +1 -1
- package/dist/types/headless-super-run-wait.d.ts.map +1 -1
- package/dist/types/mcp-scope.d.ts +5 -0
- package/dist/types/mcp-scope.d.ts.map +1 -0
- package/dist/types/memory-constraints.d.ts +4 -0
- package/dist/types/memory-constraints.d.ts.map +1 -1
- package/dist/types/mods/mod-engine.d.ts.map +1 -1
- package/dist/types/mods/turn-start-cancel.d.ts +17 -1
- package/dist/types/mods/turn-start-cancel.d.ts.map +1 -1
- package/dist/types/reminders/engine.d.ts +2 -0
- package/dist/types/reminders/engine.d.ts.map +1 -1
- package/dist/types/runtime-execution-settings.d.ts +5 -0
- package/dist/types/runtime-execution-settings.d.ts.map +1 -1
- package/dist/types/tools/impl/bash.d.ts.map +1 -1
- package/dist/types/tools/impl/codex-app-server.d.ts.map +1 -1
- package/dist/types/tools/impl/external-coding-agent.d.ts +4 -3
- package/dist/types/tools/impl/external-coding-agent.d.ts.map +1 -1
- package/dist/types/tools/impl/foreground-sleep.d.ts +13 -0
- package/dist/types/tools/impl/foreground-sleep.d.ts.map +1 -0
- package/dist/types/tools/impl/process_manager.d.ts +2 -0
- package/dist/types/tools/impl/process_manager.d.ts.map +1 -1
- package/dist/types/tools/impl/send-agent-message.d.ts.map +1 -1
- package/dist/types/tools/impl/shell-launchers.d.ts.map +1 -1
- package/dist/types/tools/impl/task-foreground.d.ts +21 -0
- package/dist/types/tools/impl/task-foreground.d.ts.map +1 -0
- package/dist/types/tools/impl/task-stop.d.ts +1 -0
- package/dist/types/tools/impl/task-stop.d.ts.map +1 -1
- package/dist/types/tools/impl/task-transcript.d.ts +5 -0
- package/dist/types/tools/impl/task-transcript.d.ts.map +1 -0
- package/dist/types/tools/impl/task.d.ts +1 -1
- package/dist/types/tools/impl/task.d.ts.map +1 -1
- package/dist/types/tools/manager.d.ts +1 -1
- package/dist/types/tools/manager.d.ts.map +1 -1
- package/dist/types/tools/secret-substitution.d.ts +7 -0
- package/dist/types/tools/secret-substitution.d.ts.map +1 -1
- package/dist/types/tools/subagent-tool-policy.d.ts +16 -0
- package/dist/types/tools/subagent-tool-policy.d.ts.map +1 -0
- package/dist/types/tools/toolset-catalog.d.ts +1 -1
- package/dist/types/utils/checkout-readiness.d.ts +1 -1
- package/dist/types/utils/checkout-readiness.d.ts.map +1 -1
- package/dist/types/utils/secrets-store.d.ts +2 -0
- package/dist/types/utils/secrets-store.d.ts.map +1 -1
- package/dist/types/utils/shell-context.d.ts +8 -0
- package/dist/types/utils/shell-context.d.ts.map +1 -1
- package/dist/types/utils/subagent-depth-env.d.ts +9 -0
- package/dist/types/utils/subagent-depth-env.d.ts.map +1 -0
- package/dist/types/websocket/listener/queue.d.ts.map +1 -1
- package/letta.js +1330 -808
- package/package.json +1 -1
- package/scripts/source-file-size-baseline.json +3 -3
- package/skills/creating-mods/references/events.md +2 -0
- 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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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=
|
|
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": "
|
|
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
|
|
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;
|
|
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":"AAWA,OAAO,EAAE,KAAK,WAAW,EAA6B,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"subagent-launcher.d.ts","sourceRoot":"","sources":["../../../../src/agent/subagents/subagent-launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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,
|
|
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;
|
|
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
|
|
8
|
-
*
|
|
9
|
-
*
|
|
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;
|
|
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":"
|
|
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
|
|
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":"
|
|
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,
|
|
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;
|
|
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":"AAaA,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAIhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAgBrF,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAC;AAOlE,OAAO,KAAK,EACV,cAAc,EACd,6BAA6B,EAC9B,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAEL,KAAK,uBAAuB,EAI7B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,sBAAsB,CAAC;
|
|
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;
|
|
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":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;
|
|
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":"
|
|
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":"
|
|
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"}
|