omp-fabric 1.2.0 → 1.3.0

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 (59) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/actors/global-registry.d.ts.map +1 -1
  3. package/dist/actors/manager.d.ts.map +1 -1
  4. package/dist/actors/types.d.ts +1 -0
  5. package/dist/actors/types.d.ts.map +1 -1
  6. package/dist/agents/manager.d.ts.map +1 -1
  7. package/dist/agents/types.d.ts +1 -0
  8. package/dist/agents/types.d.ts.map +1 -1
  9. package/dist/chunks/{chunk-3TWC6XOS.js → chunk-2WDZT27Q.js} +36 -13
  10. package/dist/chunks/chunk-2WDZT27Q.js.map +7 -0
  11. package/dist/chunks/{chunk-UOSJZXJV.js → chunk-3LI7YO4M.js} +1 -1
  12. package/dist/chunks/chunk-3LI7YO4M.js.map +7 -0
  13. package/dist/chunks/{chunk-TQL7FKMG.js → chunk-7MFYALJI.js} +14 -14
  14. package/dist/chunks/chunk-7MFYALJI.js.map +7 -0
  15. package/dist/chunks/{chunk-B2SQR2JY.js → chunk-BMIE4PIL.js} +2 -2
  16. package/dist/chunks/{chunk-NX4SNIMR.js → chunk-FX3XLQYI.js} +36 -7
  17. package/dist/chunks/chunk-FX3XLQYI.js.map +7 -0
  18. package/dist/chunks/{chunk-EQNNENN6.js → chunk-GDZDWKJS.js} +2 -2
  19. package/dist/chunks/{chunk-2GQC324T.js → chunk-TSU4AEPZ.js} +2 -2
  20. package/dist/chunks/{chunk-5YGOVBOZ.js → chunk-VSSC4IDU.js} +2 -2
  21. package/dist/chunks/{chunk-HDJBUXDX.js → chunk-WQUMHDOS.js} +2 -2
  22. package/dist/chunks/{chunk-WGFHMECI.js → chunk-Z5AP4M6K.js} +24 -6
  23. package/dist/chunks/chunk-Z5AP4M6K.js.map +7 -0
  24. package/dist/entropy/index.js +2 -2
  25. package/dist/fabric-runtime-state.js +275 -108
  26. package/dist/fabric-runtime-state.js.map +3 -3
  27. package/dist/index.js +7 -7
  28. package/dist/memory/discovery.d.ts +10 -0
  29. package/dist/memory/discovery.d.ts.map +1 -1
  30. package/dist/memory/discovery.js +3 -1
  31. package/dist/providers/agents-actions.d.ts.map +1 -1
  32. package/dist/providers/agents-provider.d.ts.map +1 -1
  33. package/dist/providers/codemap-provider.d.ts.map +1 -1
  34. package/dist/providers/mcp-provider.d.ts.map +1 -1
  35. package/dist/providers/memory-provider.d.ts.map +1 -1
  36. package/dist/providers/memory-provider.js +2 -2
  37. package/dist/providers/mesh-provider.d.ts.map +1 -1
  38. package/dist/providers/omp-tools-provider.d.ts.map +1 -1
  39. package/dist/providers/write-preview.d.ts.map +1 -1
  40. package/dist/residency/host.js +3 -3
  41. package/dist/residency/omp-entry.js +3 -3
  42. package/dist/runtime/core-override-guest-types.js +1 -1
  43. package/dist/runtime/guest-types.d.ts +1 -1
  44. package/dist/runtime/guest-types.d.ts.map +1 -1
  45. package/dist/runtime/guest-types.js +1 -1
  46. package/dist/ui/dashboard.js +3 -3
  47. package/docs/codemap.md +6 -0
  48. package/docs/configuration.md +1 -1
  49. package/package.json +1 -1
  50. package/dist/chunks/chunk-3TWC6XOS.js.map +0 -7
  51. package/dist/chunks/chunk-NX4SNIMR.js.map +0 -7
  52. package/dist/chunks/chunk-TQL7FKMG.js.map +0 -7
  53. package/dist/chunks/chunk-UOSJZXJV.js.map +0 -7
  54. package/dist/chunks/chunk-WGFHMECI.js.map +0 -7
  55. /package/dist/chunks/{chunk-B2SQR2JY.js.map → chunk-BMIE4PIL.js.map} +0 -0
  56. /package/dist/chunks/{chunk-EQNNENN6.js.map → chunk-GDZDWKJS.js.map} +0 -0
  57. /package/dist/chunks/{chunk-2GQC324T.js.map → chunk-TSU4AEPZ.js.map} +0 -0
  58. /package/dist/chunks/{chunk-5YGOVBOZ.js.map → chunk-VSSC4IDU.js.map} +0 -0
  59. /package/dist/chunks/{chunk-HDJBUXDX.js.map → chunk-WQUMHDOS.js.map} +0 -0
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  sessionDirsForCwd,
15
15
  sessionsDirRoot
16
- } from "./chunk-NX4SNIMR.js";
16
+ } from "./chunk-FX3XLQYI.js";
17
17
  import {
18
18
  stableJsonHash,
19
19
  stableJsonHashArrayAsync
@@ -2208,4 +2208,4 @@ export {
2208
2208
  formatEntropyCompileNotice,
2209
2209
  runEntropyTrial
2210
2210
  };
2211
- //# sourceMappingURL=chunk-B2SQR2JY.js.map
2211
+ //# sourceMappingURL=chunk-BMIE4PIL.js.map
@@ -9,6 +9,7 @@ import os from "node:os";
9
9
  import path from "node:path";
10
10
  import { getSessionsDir, resolveEquivalentPath } from "@oh-my-pi/pi-utils";
11
11
  var SESSION_SCOPE_PREFIX = "session:";
12
+ var PROJECT_SCOPE_PREFIX = "project:";
12
13
  var PROJECT_SESSION_DIR_MISSING = "project_session_dir_missing";
13
14
  var isJsonlFile = (name) => name.endsWith(".jsonl");
14
15
  var isWithinRoot = (relative) => relative === "" || !relative.startsWith("..") && !path.isAbsolute(relative);
@@ -138,9 +139,34 @@ var resolveSessionTarget = (agentDir, target, sessionDir) => {
138
139
  return byStem[0] ?? null;
139
140
  };
140
141
  var sameProjectCwd = (candidate, cwd) => candidate.length > 0 && resolveEquivalentPath(candidate) === resolveEquivalentPath(cwd);
141
- var projectSessions = (input) => {
142
+ var InvalidProjectScopeError = class extends Error {
143
+ constructor(project, projectPath, reason) {
144
+ super(
145
+ reason === "missing" ? `Project scope path ${JSON.stringify(projectPath)} does not exist.` : `Project scope path ${JSON.stringify(projectPath)} is not a directory.`
146
+ );
147
+ this.project = project;
148
+ this.projectPath = projectPath;
149
+ this.reason = reason;
150
+ this.name = "InvalidProjectScopeError";
151
+ }
152
+ code = "invalid_project_scope";
153
+ };
154
+ var resolveProjectScopeTarget = (target, cwd) => {
155
+ const resolved = path.resolve(cwd, target);
156
+ let stats;
157
+ try {
158
+ stats = fs.statSync(resolved);
159
+ } catch {
160
+ throw new InvalidProjectScopeError(target, resolved, "missing");
161
+ }
162
+ if (!stats.isDirectory()) {
163
+ throw new InvalidProjectScopeError(target, resolved, "not_a_directory");
164
+ }
165
+ return resolved;
166
+ };
167
+ var projectSessions = (input, projectCwd) => {
142
168
  const root = sessionsDirRoot(input.agentDir);
143
- const names = sessionDirNamesForCwd(input.cwd);
169
+ const names = sessionDirNamesForCwd(projectCwd);
144
170
  const candidateDirs = [names.canonical, ...names.legacy].map((name) => path.join(root, name));
145
171
  const searchedDirs = candidateDirs.filter(isDirectory);
146
172
  const refs = [];
@@ -159,7 +185,7 @@ var projectSessions = (input) => {
159
185
  for (const file of listJsonlInDir(override)) {
160
186
  if (seen.has(file)) continue;
161
187
  const ref = refFromFile(file);
162
- if (!sameProjectCwd(ref.cwd, input.cwd)) continue;
188
+ if (!sameProjectCwd(ref.cwd, projectCwd)) continue;
163
189
  seen.add(file);
164
190
  refs.push(ref);
165
191
  }
@@ -185,8 +211,10 @@ var resolveScope = (input) => {
185
211
  searchedDirs: roots.filter(isDirectory)
186
212
  };
187
213
  }
188
- if (scope === "project") {
189
- const found2 = projectSessions(input);
214
+ if (scope === "project" || scope.startsWith(PROJECT_SCOPE_PREFIX)) {
215
+ const target = scope.startsWith(PROJECT_SCOPE_PREFIX) ? scope.slice(PROJECT_SCOPE_PREFIX.length).trim() : "";
216
+ const projectCwd = target === "" ? input.cwd : resolveProjectScopeTarget(target, input.cwd);
217
+ const found2 = projectSessions(input, projectCwd);
190
218
  return {
191
219
  refs: found2.refs.slice(0, Math.max(1, input.maxSessions)),
192
220
  reasons: found2.searchedDirs.length === 0 ? [PROJECT_SESSION_DIR_MISSING] : [],
@@ -202,7 +230,7 @@ var resolveScope = (input) => {
202
230
  searchedDirs: []
203
231
  };
204
232
  }
205
- const found = projectSessions(input);
233
+ const found = projectSessions(input, input.cwd);
206
234
  const newest = found.refs[0];
207
235
  return {
208
236
  refs: newest ? [newest] : [],
@@ -221,6 +249,7 @@ export {
221
249
  enumerateAllSessions,
222
250
  AmbiguousSessionError,
223
251
  resolveSessionTarget,
252
+ InvalidProjectScopeError,
224
253
  resolveScope
225
254
  };
226
- //# sourceMappingURL=chunk-NX4SNIMR.js.map
255
+ //# sourceMappingURL=chunk-FX3XLQYI.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/memory/discovery.ts"],
4
+ "sourcesContent": ["import crypto from \"node:crypto\";\nimport fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport { getSessionsDir, resolveEquivalentPath } from \"@oh-my-pi/pi-utils\";\nimport { readSessionHeader } from \"./normalize.js\";\n\nexport interface SessionRef {\n id: string;\n file: string;\n cwd: string;\n mtime: number;\n}\n\nexport interface ResolveScopeInput {\n agentDir: string;\n cwd: string;\n scope: string;\n sessionId?: string;\n sessionFile?: string;\n maxSessions: number;\n}\n\nconst SESSION_SCOPE_PREFIX = \"session:\";\nconst PROJECT_SCOPE_PREFIX = \"project:\";\n\n/** Project scope matched no session directory at all, so its emptiness is unverified. */\nexport const PROJECT_SESSION_DIR_MISSING = \"project_session_dir_missing\";\n\nconst isJsonlFile = (name: string): boolean => name.endsWith(\".jsonl\");\n\ntype SessionDirScope = \"home\" | \"tmp\" | \"abs\";\n\nconst isWithinRoot = (relative: string): boolean =>\n relative === \"\" || (!relative.startsWith(\"..\") && !path.isAbsolute(relative));\n\nconst encodeRelativeDirName = (prefix: string, relative: string): string => {\n const encoded = relative.replace(/[/\\\\:]/g, \"-\");\n if (!encoded) return prefix;\n return prefix.endsWith(\"-\") ? `${prefix}${encoded}` : `${prefix}-${encoded}`;\n};\n\nconst encodeAbsoluteDirName = (absolute: string): string =>\n `--${absolute.replace(/^[/\\\\]/, \"\").replace(/[/\\\\:]/g, \"-\")}--`;\n\nconst encodeHashedDirName = (canonicalCwd: string, scope: SessionDirScope): string => {\n const readable = path\n .basename(canonicalCwd)\n .replace(/[^a-zA-Z0-9._-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\")\n .slice(-80);\n const digest = crypto\n .createHash(\"sha256\")\n .update(canonicalCwd.replaceAll(\"\\\\\", \"/\"))\n .digest(\"hex\");\n return `${scope}-${readable || \"project\"}-${digest}`;\n};\n\n/** OMP's session directory names for a cwd: the one it writes today plus superseded encodings. */\nexport const sessionDirNamesForCwd = (cwd: string): { canonical: string; legacy: string[] } => {\n const resolved = path.resolve(cwd);\n const canonicalCwd = resolveEquivalentPath(resolved);\n const homeRelative = path.relative(resolveEquivalentPath(os.homedir()), canonicalCwd);\n const tempRelative = path.relative(resolveEquivalentPath(os.tmpdir()), canonicalCwd);\n let canonical: string;\n let scope: SessionDirScope;\n if (isWithinRoot(homeRelative)) {\n canonical = encodeRelativeDirName(\"-\", homeRelative);\n scope = \"home\";\n } else if (isWithinRoot(tempRelative)) {\n canonical = encodeRelativeDirName(\"-tmp\", tempRelative);\n scope = \"tmp\";\n } else {\n canonical = encodeAbsoluteDirName(canonicalCwd);\n scope = \"abs\";\n }\n const legacy: string[] = [];\n for (\n const name of [\n encodeAbsoluteDirName(canonicalCwd),\n encodeAbsoluteDirName(resolved),\n encodeHashedDirName(canonicalCwd, scope),\n ]\n ) {\n if (name !== canonical && !legacy.includes(name)) legacy.push(name);\n }\n return { canonical, legacy };\n};\n\nconst listJsonlInDir = (dir: string): string[] => {\n try {\n return fs\n .readdirSync(dir, { withFileTypes: true })\n .filter((entry) => entry.isFile() && isJsonlFile(entry.name))\n .map((entry) => path.join(dir, entry.name));\n } catch {\n return [];\n }\n};\n\nconst statMtime = (file: string): number => {\n try {\n return fs.statSync(file).mtimeMs;\n } catch {\n return 0;\n }\n};\n\nconst refFromFile = (file: string): SessionRef => {\n const header = readSessionHeader(file);\n return {\n id: header?.sessionId ?? path.basename(file, \".jsonl\"),\n file,\n cwd: header?.cwd ?? \"\",\n mtime: statMtime(file),\n };\n};\n\nexport const sessionsDirRoot = (agentDir: string): string => getSessionsDir(agentDir);\n\nconst isDirectory = (dir: string): boolean => {\n try {\n return fs.statSync(dir).isDirectory();\n } catch {\n return false;\n }\n};\n\n/** Existing session directories that hold this cwd's sessions, current encoding first. */\nexport const sessionDirsForCwd = (cwd: string, agentDir: string): string[] => {\n const root = sessionsDirRoot(agentDir);\n const names = sessionDirNamesForCwd(cwd);\n const dirs: string[] = [];\n for (const name of [names.canonical, ...names.legacy]) {\n const dir = path.join(root, name);\n if (isDirectory(dir)) dirs.push(dir);\n }\n return dirs;\n};\n\nconst compareRefsByRecency = (left: SessionRef, right: SessionRef): number => {\n if (right.mtime !== left.mtime) return right.mtime - left.mtime;\n return left.file < right.file ? -1 : left.file > right.file ? 1 : 0;\n};\n\n/** Directory holding the running session's file when it sits outside the agent dir. */\nexport const overrideSessionDir = (sessionFile: string | undefined): string | undefined => {\n if (!sessionFile) return undefined;\n const dir = path.dirname(path.resolve(sessionFile));\n return isDirectory(dir) ? dir : undefined;\n};\n\n/**\n * Every session JSONL file under the agent dir plus the session dir in use, newest first by\n * file mtime, deduplicated by path and bounded by `maxSessions`.\n */\nexport const enumerateAllSessions = (\n agentDir: string,\n maxSessions: number,\n sessionDir?: string,\n): SessionRef[] => {\n const files = new Set<string>();\n const root = sessionsDirRoot(agentDir);\n try {\n for (\n const entry of fs.readdirSync(root, { withFileTypes: true }).filter((candidate) =>\n candidate.isDirectory()\n )\n ) {\n for (const file of listJsonlInDir(path.join(root, entry.name))) files.add(file);\n }\n } catch {}\n if (sessionDir !== undefined) {\n for (const file of listJsonlInDir(sessionDir)) files.add(file);\n }\n return [...files]\n .map(refFromFile)\n .sort(compareRefsByRecency)\n .slice(0, Math.max(1, maxSessions));\n};\n\nexport class AmbiguousSessionError extends Error {\n readonly code = \"ambiguous_session\";\n\n constructor(\n readonly session: string,\n readonly candidates: string[],\n ) {\n super(`Session id ${JSON.stringify(session)} is ambiguous; use an exact session file path.`);\n this.name = \"AmbiguousSessionError\";\n }\n}\n\nexport const resolveSessionTarget = (\n agentDir: string,\n target: string,\n sessionDir?: string,\n): SessionRef | null => {\n if (target.endsWith(\".jsonl\") && fs.existsSync(target)) {\n return refFromFile(path.resolve(target));\n }\n const all = enumerateAllSessions(agentDir, Number.MAX_SAFE_INTEGER, sessionDir);\n const byId = all.filter((ref) => ref.id === target);\n if (byId.length > 1) throw new AmbiguousSessionError(target, byId.map((ref) => ref.file));\n if (byId.length === 1) return byId[0]!;\n const byStem = all.filter((ref) => path.basename(ref.file, \".jsonl\") === target);\n if (byStem.length > 1) throw new AmbiguousSessionError(target, byStem.map((ref) => ref.file));\n return byStem[0] ?? null;\n};\n\nexport interface ScopeResolution {\n refs: SessionRef[];\n reasons: string[];\n candidateDirs: string[];\n searchedDirs: string[];\n}\n\nconst sameProjectCwd = (candidate: string, cwd: string): boolean =>\n candidate.length > 0 && resolveEquivalentPath(candidate) === resolveEquivalentPath(cwd);\n\nexport class InvalidProjectScopeError extends Error {\n readonly code = \"invalid_project_scope\";\n\n constructor(\n readonly project: string,\n readonly projectPath: string,\n readonly reason: \"missing\" | \"not_a_directory\",\n ) {\n super(\n reason === \"missing\"\n ? `Project scope path ${JSON.stringify(projectPath)} does not exist.`\n : `Project scope path ${JSON.stringify(projectPath)} is not a directory.`,\n );\n this.name = \"InvalidProjectScopeError\";\n }\n}\n\nconst resolveProjectScopeTarget = (target: string, cwd: string): string => {\n const resolved = path.resolve(cwd, target);\n let stats: fs.Stats;\n try {\n stats = fs.statSync(resolved);\n } catch {\n throw new InvalidProjectScopeError(target, resolved, \"missing\");\n }\n if (!stats.isDirectory()) {\n throw new InvalidProjectScopeError(target, resolved, \"not_a_directory\");\n }\n return resolved;\n};\n\nconst projectSessions = (\n input: ResolveScopeInput,\n projectCwd: string,\n): { refs: SessionRef[]; candidateDirs: string[]; searchedDirs: string[] } => {\n const root = sessionsDirRoot(input.agentDir);\n const names = sessionDirNamesForCwd(projectCwd);\n const candidateDirs = [names.canonical, ...names.legacy].map((name) => path.join(root, name));\n const searchedDirs = candidateDirs.filter(isDirectory);\n const refs: SessionRef[] = [];\n const seen = new Set<string>();\n for (const dir of searchedDirs) {\n for (const file of listJsonlInDir(dir)) {\n if (seen.has(file)) continue;\n seen.add(file);\n refs.push(refFromFile(file));\n }\n }\n const override = overrideSessionDir(input.sessionFile);\n if (override !== undefined && !searchedDirs.includes(override)) {\n candidateDirs.push(override);\n searchedDirs.push(override);\n for (const file of listJsonlInDir(override)) {\n if (seen.has(file)) continue;\n const ref = refFromFile(file);\n if (!sameProjectCwd(ref.cwd, projectCwd)) continue;\n seen.add(file);\n refs.push(ref);\n }\n }\n refs.sort(compareRefsByRecency);\n return { refs, candidateDirs, searchedDirs };\n};\n\n/**\n * Resolve a scope string into the session files to search plus why the set may be short.\n *\n * - `session` (default): the invoking session file, else the newest session for this cwd.\n * - `project`: every session OMP stored for this cwd, across current and superseded dir names.\n * - `project:<path>`: the same, for another project directory; relative paths resolve against\n * `cwd`, and an empty suffix means this cwd. Throws `InvalidProjectScopeError` when the path\n * is missing or is not a directory.\n * - `global`: all sessions under the agent dir, bounded by `maxSessions`.\n * - `session:<id-or-path>`: one specific session by id or file path.\n *\n * Project scope reports `PROJECT_SESSION_DIR_MISSING` when no candidate directory exists, so a\n * caller can tell an unresolvable scope from a searched-but-empty corpus.\n */\nexport const resolveScope = (input: ResolveScopeInput): ScopeResolution => {\n const scope = input.scope?.trim() ?? \"\";\n const sessionDir = overrideSessionDir(input.sessionFile);\n if (scope.startsWith(SESSION_SCOPE_PREFIX)) {\n const target = scope.slice(SESSION_SCOPE_PREFIX.length).trim();\n const ref = resolveSessionTarget(input.agentDir, target, sessionDir);\n return { refs: ref ? [ref] : [], reasons: [], candidateDirs: [], searchedDirs: [] };\n }\n if (scope === \"global\") {\n const root = sessionsDirRoot(input.agentDir);\n const roots = [root, ...(sessionDir !== undefined && sessionDir !== root ? [sessionDir] : [])];\n return {\n refs: enumerateAllSessions(input.agentDir, input.maxSessions, sessionDir),\n reasons: [],\n candidateDirs: roots,\n searchedDirs: roots.filter(isDirectory),\n };\n }\n if (scope === \"project\" || scope.startsWith(PROJECT_SCOPE_PREFIX)) {\n const target = scope.startsWith(PROJECT_SCOPE_PREFIX)\n ? scope.slice(PROJECT_SCOPE_PREFIX.length).trim()\n : \"\";\n const projectCwd = target === \"\" ? input.cwd : resolveProjectScopeTarget(target, input.cwd);\n const found = projectSessions(input, projectCwd);\n return {\n refs: found.refs.slice(0, Math.max(1, input.maxSessions)),\n reasons: found.searchedDirs.length === 0 ? [PROJECT_SESSION_DIR_MISSING] : [],\n candidateDirs: found.candidateDirs,\n searchedDirs: found.searchedDirs,\n };\n }\n if (input.sessionFile) {\n return {\n refs: [refFromFile(input.sessionFile)],\n reasons: [],\n candidateDirs: [],\n searchedDirs: [],\n };\n }\n const found = projectSessions(input, input.cwd);\n const newest = found.refs[0];\n return {\n refs: newest ? [newest] : [],\n reasons: found.searchedDirs.length === 0 ? [PROJECT_SESSION_DIR_MISSING] : [],\n candidateDirs: found.candidateDirs,\n searchedDirs: found.searchedDirs,\n };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["found"]
7
+ }
@@ -10,7 +10,7 @@ import {
10
10
  lifecycleSourceIdentity,
11
11
  loadModelUsage,
12
12
  useBudgetLedger
13
- } from "./chunk-TQL7FKMG.js";
13
+ } from "./chunk-7MFYALJI.js";
14
14
  import {
15
15
  normalizeModelAliases,
16
16
  resolveAvailableOmpModel
@@ -685,4 +685,4 @@ if (isMain) {
685
685
  export {
686
686
  runResidentHostFromConfigPath
687
687
  };
688
- //# sourceMappingURL=chunk-EQNNENN6.js.map
688
+ //# sourceMappingURL=chunk-GDZDWKJS.js.map
@@ -5,7 +5,7 @@ import {
5
5
  selectPreviewTextLines,
6
6
  shouldSkipWriteDiffBytes,
7
7
  shouldSkipWriteDiffComplexity
8
- } from "./chunk-HDJBUXDX.js";
8
+ } from "./chunk-WQUMHDOS.js";
9
9
  import {
10
10
  resolveShikiTheme
11
11
  } from "./chunk-JSBTB3P6.js";
@@ -4998,4 +4998,4 @@ export {
4998
4998
  formatJsonAsYaml,
4999
4999
  formatFabricValue
5000
5000
  };
5001
- //# sourceMappingURL=chunk-2GQC324T.js.map
5001
+ //# sourceMappingURL=chunk-TSU4AEPZ.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7VIQNUPS.js";
4
4
  import {
5
5
  headlineArg
6
- } from "./chunk-HDJBUXDX.js";
6
+ } from "./chunk-WQUMHDOS.js";
7
7
  import {
8
8
  NESTED_TOOL_CALL_ID_PREFIX
9
9
  } from "./chunk-2LGLDM34.js";
@@ -2803,4 +2803,4 @@ export {
2803
2803
  resolveFabricIdentity,
2804
2804
  MainAgentController
2805
2805
  };
2806
- //# sourceMappingURL=chunk-5YGOVBOZ.js.map
2806
+ //# sourceMappingURL=chunk-VSSC4IDU.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-DLXPTBPL.js";
12
12
  import {
13
13
  readJsonlPageFromDescriptor
14
- } from "./chunk-UOSJZXJV.js";
14
+ } from "./chunk-3LI7YO4M.js";
15
15
 
16
16
  // src/core/call-preview.ts
17
17
  var HEADLINE_ARG_KEYS = [
@@ -1099,4 +1099,4 @@ export {
1099
1099
  isFabricAgentToolPreview,
1100
1100
  recentTranscriptTools
1101
1101
  };
1102
- //# sourceMappingURL=chunk-HDJBUXDX.js.map
1102
+ //# sourceMappingURL=chunk-WQUMHDOS.js.map
@@ -39,8 +39,14 @@ interface FabricAction {
39
39
  namespace?: string;
40
40
  effect?: FabricActionEffect;
41
41
  }
42
+ interface FabricImageContent {
43
+ type: "image";
44
+ data: string;
45
+ mimeType: string;
46
+ }
42
47
  interface FabricAgentRequest {
43
48
  task: string;
49
+ images?: FabricImageContent[];
44
50
  name?: string;
45
51
  runner?: FabricAgentRunner;
46
52
  transport?: FabricTransport;
@@ -48,6 +54,7 @@ interface FabricAgentRequest {
48
54
  persona?: string;
49
55
  thinking?: FabricThinking;
50
56
  tools?: string[];
57
+ addTools?: string[];
51
58
  timeoutMs?: number;
52
59
  extensions?: boolean;
53
60
  recursive?: boolean;
@@ -450,10 +457,11 @@ type OmpReadOptions = { offset?: number; limit?: number; start?: number; max?: n
450
457
  type OmpShellOptions = {
451
458
  timeout?: number; timeoutMs?: number; settle?: boolean;
452
459
  cwd?: string; workdir?: string; directory?: string; workingDirectory?: string;
460
+ env?: Record<string, string>; pty?: boolean;
453
461
  };
454
462
  type OmpBashOptions = OmpShellOptions;
455
- type OmpGrepOptions = { path?: string; glob?: string; globPattern?: string; ignoreCase?: boolean; ic?: boolean; caseInsensitive?: boolean; literal?: boolean; context?: number; ctx?: number; skip?: number };
456
- type OmpFindOptions = { path?: string; limit?: number; max?: number };
463
+ type OmpGrepOptions = { path?: string; glob?: string; globPattern?: string; ignoreCase?: boolean; ic?: boolean; caseInsensitive?: boolean; literal?: boolean; context?: number; ctx?: number; skip?: number; gitignore?: boolean };
464
+ type OmpFindOptions = { path?: string; limit?: number; max?: number; gitignore?: boolean; hidden?: boolean };
457
465
  type OmpLsOptions = { limit?: number; max?: number };
458
466
  type OmpReadArgument = string | (OmpPathArgument & OmpReadOptions);
459
467
  type OmpBashArgument = string | (OmpCommandArgument & OmpBashOptions);
@@ -556,6 +564,7 @@ interface FabricActorRequestBase {
556
564
  thinking?: FabricThinking;
557
565
  tools?: string[];
558
566
  transport?: FabricTransport;
567
+ cwd?: string;
559
568
  timeoutMs?: number;
560
569
  timeout_ms?: number;
561
570
  extensions?: boolean;
@@ -726,7 +735,7 @@ interface FabricMcpManagement {
726
735
  env?: Record<string, string>;
727
736
  overwrite?: boolean;
728
737
  }): Promise<{ registered: string }>;
729
- call(args: { server: string; tool: string; args?: Record<string, unknown> }): Promise<unknown>;
738
+ call(args: { server: string; tool: string; args?: Record<string, unknown>; timeoutMs?: number }): Promise<unknown>;
730
739
  }
731
740
  // Loose static surface: any server/tool name compiles and argument shapes are
732
741
  // enforced at dispatch by the registry. With descriptor data available the
@@ -778,9 +787,11 @@ interface FabricMeshApi {
778
787
  self(): Promise<FabricMeshIdentity>;
779
788
  publish(args: { topic: string; kind?: string; to?: string; text?: string; data?: unknown; message?: string; body?: string }): Promise<FabricMeshEvent>;
780
789
  read(args?: { after?: number; topic?: string; to?: string; limit?: number; max?: number }): Promise<FabricMeshEvent[]>;
781
- members(args?: { scope?: FabricParticipantScope; kinds?: FabricParticipantKind[]; includeStale?: boolean; limit?: number; max?: number; include_stale?: boolean }): Promise<FabricParticipantInfo[]>;
790
+ members(args: { scope?: FabricParticipantScope; kinds?: FabricParticipantKind[]; includeStale?: boolean; limit?: number; max?: number; include_stale?: boolean; withTotal: true }): Promise<{ members: FabricParticipantInfo[]; total: number; truncated: boolean }>;
791
+ members(args?: { scope?: FabricParticipantScope; kinds?: FabricParticipantKind[]; includeStale?: boolean; limit?: number; max?: number; include_stale?: boolean; withTotal?: false }): Promise<FabricParticipantInfo[]>;
782
792
  get<T = unknown>(args: { key: string }): Promise<FabricMeshStateEntry<T> | null>;
783
- list<T = unknown>(args?: { prefix?: string; limit?: number; max?: number }): Promise<Array<FabricMeshStateEntry<T>>>;
793
+ list<T = unknown>(args: { prefix?: string; limit?: number; max?: number; withTotal: true }): Promise<{ entries: Array<FabricMeshStateEntry<T>>; total: number; truncated: boolean }>;
794
+ list<T = unknown>(args?: { prefix?: string; limit?: number; max?: number; withTotal?: false }): Promise<Array<FabricMeshStateEntry<T>>>;
784
795
  put<T = unknown>(args: { key: string; value: T; ifVersion?: number; if_version?: number; version?: number }): Promise<FabricMeshStateEntry<T>>;
785
796
  delete(args: { key: string; ifVersion?: number; if_version?: number; version?: number }): Promise<{ deleted: boolean; version?: number }>;
786
797
  }
@@ -983,9 +994,13 @@ interface FabricMemoryApi {
983
994
  branches?: FabricMemoryBranches;
984
995
  limit?: number;
985
996
  max?: number;
997
+ offset?: number;
986
998
  }): Promise<{
987
999
  scope?: string;
988
1000
  branches?: FabricMemoryBranches;
1001
+ offset?: number;
1002
+ total?: number;
1003
+ truncated?: boolean;
989
1004
  sessions?: FabricMemorySessionInfo[];
990
1005
  error?: FabricMemoryError;
991
1006
  }>;
@@ -1245,6 +1260,7 @@ interface FabricCodemapCascade {
1245
1260
  }
1246
1261
  interface FabricCodemapApi {
1247
1262
  map(args?: {
1263
+ path?: string;
1248
1264
  maxTokens?: number;
1249
1265
  glob?: string;
1250
1266
  focus?: string;
@@ -1252,6 +1268,7 @@ interface FabricCodemapApi {
1252
1268
  refresh?: boolean;
1253
1269
  }): Promise<{
1254
1270
  text: string;
1271
+ root: string;
1255
1272
  tokensEstimated: number;
1256
1273
  filesShown: number;
1257
1274
  symbolsShown: number;
@@ -1262,6 +1279,7 @@ interface FabricCodemapApi {
1262
1279
  cascade?: FabricCodemapCascade;
1263
1280
  }>;
1264
1281
  cascade(args: {
1282
+ path?: string;
1265
1283
  seeds: string[];
1266
1284
  limit?: number;
1267
1285
  maxCommits?: number;
@@ -1394,4 +1412,4 @@ export {
1394
1412
  GUEST_TYPE_DECLARATIONS,
1395
1413
  guestTypeDeclarations
1396
1414
  };
1397
- //# sourceMappingURL=chunk-WGFHMECI.js.map
1415
+ //# sourceMappingURL=chunk-Z5AP4M6K.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/runtime/guest-types.ts"],
4
+ "sourcesContent": ["import type { FabricDynamicGuestDeclarations } from \"../protocol.js\";\n\n// These names and compatibility fields are the single source of truth for\n// generated core-override overloads. Keep them beside OmpToolsApi below so an\n// override extends the same guest contract rather than copying its signatures.\n// Numeric fields widen to `number | string` in generated overloads too,\n// mirroring built-in runtime normalization; a strict override schema still\n// rejects the string form at validation time, and the registry error wins.\nexport const OMP_CORE_COMPATIBILITY_ARGUMENT_TYPE_NAMES = {\n read: \"OmpReadCompatibilityArgument\",\n bash: \"OmpBashCompatibilityArgument\",\n edit: \"OmpEditCompatibilityArgument\",\n write: \"OmpWriteCompatibilityArgument\",\n grep: \"OmpGrepCompatibilityArgument\",\n find: \"OmpFindCompatibilityArgument\",\n ls: \"OmpLsCompatibilityArgument\",\n} as const;\n\nexport const OMP_CORE_NUMERIC_FIELDS = {\n read: [\"offset\", \"limit\"],\n bash: [\"timeout\"],\n edit: [],\n write: [],\n grep: [\"context\", \"skip\"],\n find: [\"limit\"],\n ls: [\"limit\"],\n} as const;\n\nexport const GUEST_TYPE_DECLARATIONS = `\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonValue[] | { [key: string]: JsonValue };\ntype FabricTransport = \"auto\" | \"process\" | \"tmux\" | \"screen\" | \"localterm\" | \"herdr\";\ntype FabricAgentRunner = \"omp\" | \"claude\" | \"veda\";\ntype FabricThinking = \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\ninterface FabricActionEffect {\n kind: \"none\" | \"scoped\" | \"transactional\" | \"emission\";\n resources?: string[];\n ordering?: \"commutative\" | \"ordered\" | \"unknown\";\n}\ninterface FabricAction {\n ref: string;\n provider: string;\n name: string;\n description: string;\n inputSchema: Record<string, unknown>;\n outputSchema?: Record<string, unknown>;\n risk: \"read\" | \"write\" | \"execute\" | \"network\" | \"agent\";\n namespace?: string;\n effect?: FabricActionEffect;\n}\ninterface FabricImageContent {\n type: \"image\";\n data: string;\n mimeType: string;\n}\ninterface FabricAgentRequest {\n task: string;\n images?: FabricImageContent[];\n name?: string;\n runner?: FabricAgentRunner;\n transport?: FabricTransport;\n model?: string;\n persona?: string;\n thinking?: FabricThinking;\n tools?: string[];\n addTools?: string[];\n timeoutMs?: number;\n extensions?: boolean;\n recursive?: boolean;\n /** Filesystem execution directory; relative paths resolve from the parent agent cwd. */\n cwd?: string;\n worktree?: boolean;\n schema?: Record<string, unknown>;\n prompt?: string;\n instructions?: string;\n timeout_ms?: number;\n residency?: FabricParticipantResidency;\n}\ninterface FabricHandoffCall {\n readonly ref: string;\n}\ninterface FabricHandoffFacts {\n readonly calls: readonly FabricHandoffCall[];\n count(ref?: string | readonly string[]): number;\n}\ntype FabricHandoffPredicate = (facts: Readonly<FabricHandoffFacts>) => boolean;\ninterface FabricHandoffRequest {\n model: string;\n task?: string;\n when?: FabricHandoffPredicate;\n name?: string;\n transport?: FabricTransport;\n thinking?: FabricThinking;\n tools?: string[];\n timeoutMs?: number;\n extensions?: boolean;\n recursive?: boolean;\n schema?: Record<string, unknown>;\n prompt?: string;\n instructions?: string;\n timeout_ms?: number;\n}\ninterface FabricHandoffResult {\n scheduled: true;\n status: \"deferred\";\n boundary: \"fabric_exec_end\";\n}\ninterface FabricMainAgentInfo {\n id: string;\n name: \"Main\";\n kind: \"main\";\n status: \"idle\" | \"running\" | \"remote\";\n runner: \"omp\";\n transport: \"host\";\n cwd?: string;\n sessionId?: string;\n model?: string;\n thinking?: string;\n startedAt?: number;\n updatedAt: number;\n pendingMessages: boolean;\n local: boolean;\n}\ninterface FabricPeerInfo {\n id: string;\n name: string;\n kind: \"peer\";\n status: \"idle\" | \"running\";\n runner: \"omp\";\n transport: \"host\";\n cwd: string;\n sessionId: string;\n model?: string;\n thinking?: string;\n startedAt: number;\n updatedAt: number;\n pendingMessages: boolean;\n local: false;\n}\ntype FabricParticipantKind = \"root\" | \"agent\" | \"actor\";\ntype FabricParticipantResidency = \"session\" | \"durable\";\ntype FabricParticipantScope = \"local\" | \"lineage\" | \"project\";\ntype FabricParticipantCapability = \"steer\" | \"followUp\" | \"stop\" | \"ask\" | \"actor-bindings\" | \"attach\" | \"fabric\";\ninterface FabricParticipantInfo {\n format: 1;\n id: string;\n kind: FabricParticipantKind;\n rootId: string;\n ownerHostId: string;\n ownerIdentityId: string;\n parentId?: string;\n name: string;\n status: string;\n runner: FabricAgentRunner;\n transport: FabricTransport | \"host\";\n capabilities: FabricParticipantCapability[];\n cwd?: string;\n sessionId?: string;\n model?: string;\n thinking?: string;\n startedAt: number;\n updatedAt: number;\n finishedAt?: number;\n pendingMessages?: boolean;\n currentTool?: string;\n turns?: number;\n toolCalls?: number;\n usage?: { input: number; output: number; cacheRead: number; cacheWrite: number; cost: number };\n actorQueued?: number;\n actorMessages?: number;\n controlProtocol: \"v1\" | \"legacy\";\n residency: FabricParticipantResidency;\n local: boolean;\n stale: boolean;\n}\ntype FabricLifecycleEventType =\n | \"omp.input\"\n | \"omp.agent_start\"\n | \"omp.agent_end\"\n | \"omp.turn_end\"\n | \"omp.tool_error\"\n | \"omp.session_compact\"\n | \"run.completed\"\n | \"run.failed\"\n | \"run.stopped\"\n | \"run.timed_out\"\n | \"tokens.usage\"\n | \"component.state\";\ntype FabricLifecycleDelivery = \"steer\" | \"followUp\";\ninterface FabricLifecycleSource {\n id: string;\n name: string;\n kind: FabricParticipantKind;\n rootId: string;\n runner: FabricAgentRunner;\n ownerHostId?: string;\n ownerIdentityId?: string;\n}\ninterface FabricLifecycleEvent {\n version: 1;\n id: string;\n sequence: number;\n event: FabricLifecycleEventType;\n source: FabricLifecycleSource;\n occurredAt: number;\n publishedAt: number;\n runId?: string;\n status?: string;\n data?: unknown;\n}\ninterface FabricLifecycleSubscription {\n format: 1;\n id: string;\n from: string;\n events: FabricLifecycleEventType[];\n to: string;\n delivery: FabricLifecycleDelivery;\n triggerTurn: boolean;\n once: boolean;\n afterSequence: number;\n createdAt: number;\n updatedAt: number;\n createdBy: { id: string; name: string; kind: \"main\" | \"agent\" | \"actor\"; sessionId?: string };\n lastDeliveredAt?: number;\n lastEventId?: string;\n lastError?: string;\n}\ninterface FabricAgentHandle {\n id: string;\n name: string;\n status: string;\n runner: FabricAgentRunner;\n transport: FabricTransport;\n cwd: string;\n model?: string;\n thinking?: FabricThinking;\n actorId?: string;\n actorName?: string;\n sessionId?: string;\n runnerSessionId?: string;\n attachCommand?: string;\n branch?: string;\n worktree?: string;\n text?: string;\n value?: unknown;\n error?: string;\n logFile?: string;\n residency?: FabricParticipantResidency;\n}\ninterface FabricRemoteControlResult {\n queued: true;\n messageId: string;\n routed: \"mesh\";\n acknowledged: true;\n}\ninterface FabricAgentResult extends FabricAgentHandle {\n task: string;\n startedAt: number;\n finishedAt?: number;\n turns: number;\n toolCalls: number;\n text: string;\n value?: unknown;\n error?: string;\n usage: { input: number; output: number; cacheRead: number; cacheWrite: number; cost: number };\n pendingMessages?: { steering: string[]; followUp: string[] };\n}\ninterface FabricModelInfo {\n runner?: FabricAgentRunner;\n provider: string;\n id: string;\n name: string;\n key: string;\n value?: string;\n resolvedModel?: string;\n displayName?: string;\n description?: string;\n supportsEffort?: boolean;\n supportedEffortLevels?: string[];\n supportsAdaptiveThinking?: boolean;\n supportsFastMode?: boolean;\n supportsAutoMode?: boolean;\n}\ninterface FabricLogLine {\n index?: number;\n offset: number;\n raw: string;\n parsed?: unknown;\n}\ninterface FabricAgentLog {\n id: string;\n runDirectory: string;\n logFile: string;\n status?: FabricAgentResult;\n events: FabricLogLine[];\n hasMore: boolean;\n before?: number;\n}\ninterface FabricActorLog {\n actorId: string;\n actorName: string;\n sessionFile: string;\n logDir: string;\n session: FabricLogLine[];\n sessionHasMore: boolean;\n sessionBefore?: number;\n run?: {\n runId: string;\n eventsFile: string;\n status?: FabricAgentResult;\n events: FabricLogLine[];\n hasMore: boolean;\n before?: number;\n };\n retainedRuns: string[];\n}\ninterface FabricCapabilityActionHead {\n key: string;\n parentKey: string;\n ref: string;\n name: string;\n description: string;\n descriptorHash: string;\n risk: \"read\" | \"write\" | \"execute\" | \"network\" | \"agent\";\n namespace?: string;\n effect?: FabricActionEffect;\n}\ninterface FabricCapabilityProviderHead {\n key: string;\n parentKey: string;\n name: string;\n description: string;\n descriptorHash: string;\n actions: FabricCapabilityActionHead[];\n}\ninterface FabricCapabilityCatalog {\n kind: \"omp-fabric.capability-catalog\";\n version: 1;\n root: {\n key: \"capability:fabric\";\n name: \"Fabric capabilities\";\n description: string;\n descriptorHash: string;\n };\n providers: FabricCapabilityProviderHead[];\n totalActions: number;\n indexedActions: number;\n complete: boolean;\n reasons: string[];\n}\ninterface FabricToolsApi {\n providers(): Promise<Array<{ name: string; description: string }>>;\n catalog(args?: { provider?: string; limit?: number }): Promise<FabricCapabilityCatalog>;\n list(args?: { provider?: string; namespace?: string; query?: string; limit?: number }): Promise<FabricAction[]>;\n search(query: string): Promise<FabricAction[]>;\n search(args: { query: string; limit?: number }): Promise<FabricAction[]>;\n describe(args: { ref: string }): Promise<FabricAction>;\n call(args: { ref: string; args?: Record<string, unknown> }): Promise<unknown>;\n progress(args: { message: string }): Promise<void>;\n models(): Promise<FabricModelInfo[]>;\n}\ninterface FabricCapturedToolResult {\n content: Array<{ type: string; text?: string; [key: string]: unknown }>;\n text: string;\n details?: unknown;\n isError: boolean;\n terminate?: boolean;\n source: { path: string; source: string; scope: string; origin: string; baseDir?: string };\n}\ninterface FabricCapturedTool {\n (args?: Record<string, unknown>): Promise<FabricCapturedToolResult>;\n}\ntype FabricExtensionsApi = Record<string, FabricCapturedTool>;\n// String-primary tools (read/bash/grep/find/ls) accept a bare string; the\n// runtime proxy coerces it to { <primaryField>: string }. Lets the model write\n// the natural form (omp.bash(\"ls\")) instead of omp.bash({ command: \"ls\" }).\n// Return shapes differ by tool: read/grep/find/ls return their text as a bare\n// string (e.g. const src: string = await omp.read({ path })); shell/edit/write\n// return { ok, output, details } (e.g. const { output } = await omp.bash(...)).\n// Common alias keys (cmd\u2192command, query\u2192pattern, file\u2192path, dir\u2192path) and a\n// flat edit shape ({ path, oldText, newText }) are also accepted; the runtime\n// proxy normalizes them to the canonical form before the host validates args.\n// Bash timeout is measured in seconds; timeoutMs is converted from milliseconds.\n// Extended near-miss repairs: find's name/filename/glob \u2192 pattern, write's\n// data \u2192 content, ls's folder \u2192 path, bash's script \u2192 command; numeric option\n// fields (limit/offset/context/timeout) also accept numeric strings, coerced\n// at runtime (2322 diagnostics are suppressed by the type-checker by design).\n// String-primary tools also take a two-arg (primary, options) form \u2014\n// omp.read(\"index.ts\", { limit: 120 }) merges to { path, ...options } at\n// runtime, the positional string winning the primary field on conflict.\n// shell/edit/write envelopes are proxy-guarded so string-method access\n// (.trim(), .split(), iteration) fails with an actionable TypeError pointing\n// at .output instead of QuickJS's context-free \"not a function\" \u2014 property-\n// miss (2339) checks are suppressed by design, so the runtime gives the hint.\ntype OmpPathArgument = {\n path?: string;\n file?: string;\n absolutePath?: string;\n file_path?: string;\n filePath?: string;\n filepath?: string;\n pathname?: string;\n target_file?: string;\n targetFile?: string;\n absolute_path?: string;\n fileAbsolutePath?: string;\n};\ntype OmpOptionalPathArgument = {\n path?: string;\n file?: string;\n absolutePath?: string;\n file_path?: string;\n filePath?: string;\n filepath?: string;\n pathname?: string;\n target_file?: string;\n targetFile?: string;\n absolute_path?: string;\n fileAbsolutePath?: string;\n dir?: string;\n folder?: string;\n directory?: string;\n directoryPath?: string;\n};\ntype OmpOldTextArgument = {\n oldText?: string;\n old?: string;\n old_string?: string;\n oldString?: string;\n old_str?: string;\n oldStr?: string;\n from?: string;\n old_value?: string;\n old_text?: string;\n oldContent?: string;\n old_content?: string;\n};\ntype OmpNewTextArgument = {\n newText?: string;\n new?: string;\n replacement?: string;\n new_string?: string;\n newString?: string;\n new_str?: string;\n newStr?: string;\n to?: string;\n new_value?: string;\n new_text?: string;\n newContent?: string;\n new_content?: string;\n};\ntype OmpEditOperation = OmpOldTextArgument & OmpNewTextArgument & { all?: boolean };\ntype OmpCommandArgument = { command?: string; cmd?: string; shell?: string; cmdline?: string; script?: string; commandLine?: string };\ntype OmpContentArgument = { content?: string; contents?: string; body?: string; text?: string; data?: string; fileContent?: string };\ntype OmpGrepPatternArgument = { pattern?: string; query?: string; regex?: string; search?: string; q?: string; expression?: string; text?: string };\ntype OmpFindPatternArgument = { pattern?: string; query?: string; regex?: string; search?: string; name?: string; filename?: string; glob?: string; expression?: string; include?: string };\n// Two-arg (primary, options) bags for the string-primary tools. Only option\n// aliases belong here (max/start/ctx/ic/...), never primary-field aliases \u2014\n// the primary field comes from the positional string.\ntype OmpReadOptions = { offset?: number; limit?: number; start?: number; max?: number };\n// cwd is honored per call by the omp provider, which binds the command to a\n// shell definition rooted there; relative paths resolve from the session cwd.\n// The alias spellings mirror the shell entries in __ompArgAliases: the\n// runtime repairs them, so the checker has to accept the same spellings or a\n// repairable call is rejected before it ever reaches the sandbox.\ntype OmpShellOptions = {\n timeout?: number; timeoutMs?: number; settle?: boolean;\n cwd?: string; workdir?: string; directory?: string; workingDirectory?: string;\n env?: Record<string, string>; pty?: boolean;\n};\ntype OmpBashOptions = OmpShellOptions;\ntype OmpGrepOptions = { path?: string; glob?: string; globPattern?: string; ignoreCase?: boolean; ic?: boolean; caseInsensitive?: boolean; literal?: boolean; context?: number; ctx?: number; skip?: number; gitignore?: boolean };\ntype OmpFindOptions = { path?: string; limit?: number; max?: number; gitignore?: boolean; hidden?: boolean };\ntype OmpLsOptions = { limit?: number; max?: number };\ntype OmpReadArgument = string | (OmpPathArgument & OmpReadOptions);\ntype OmpBashArgument = string | (OmpCommandArgument & OmpBashOptions);\ntype OmpEditFlatArgument = OmpPathArgument & OmpOldTextArgument & OmpNewTextArgument & { all?: boolean };\ntype OmpEditArgument = OmpPathArgument & ({ edits: OmpEditOperation[]; all?: boolean } | OmpEditFlatArgument);\ntype OmpWriteArgument = string | (OmpPathArgument & OmpContentArgument);\ntype OmpGrepArgument = string | (OmpGrepPatternArgument & OmpGrepOptions);\ntype OmpFindArgument = string | (OmpFindPatternArgument & OmpFindOptions);\ntype OmpLsArgument = string | (OmpOptionalPathArgument & OmpLsOptions);\ntype OmpNumericString<T> = T extends number ? T | string : T;\ntype OmpNumericStringOptions<T> = { [K in keyof T]: OmpNumericString<T[K]> };\ntype OmpReadCompatibilityArgument = string | (OmpPathArgument & OmpNumericStringOptions<OmpReadOptions>);\ntype OmpBashCompatibilityArgument = string | (OmpCommandArgument & OmpNumericStringOptions<OmpBashOptions>);\ntype OmpEditCompatibilityArgument = OmpEditFlatArgument;\ntype OmpWriteCompatibilityArgument = OmpWriteArgument;\ntype OmpGrepCompatibilityArgument = string | (OmpGrepPatternArgument & OmpNumericStringOptions<OmpGrepOptions>);\ntype OmpFindCompatibilityArgument = string | (OmpFindPatternArgument & OmpNumericStringOptions<OmpFindOptions>);\ntype OmpLsCompatibilityArgument = string | (OmpOptionalPathArgument & OmpNumericStringOptions<OmpLsOptions>);\ninterface OmpToolsApi {\n read(args: OmpReadArgument, options?: OmpReadOptions): Promise<string>;\n bash(args: OmpBashArgument, options?: OmpBashOptions): Promise<{ ok: true; output: string; details: unknown } | { ok: false; output: string; details: null; exitCode: number; error: string }>;\n edit(args: OmpEditArgument): Promise<{ ok: true; output: string; details: unknown }>;\n edit(path: string, oldText: string, newText: string): Promise<{ ok: true; output: string; details: unknown }>;\n write(args: OmpWriteArgument): Promise<{ ok: true; output: string; details: unknown }>;\n write(path: string, content: string): Promise<{ ok: true; output: string; details: unknown }>;\n grep(args: OmpGrepArgument): Promise<string>;\n grep(pattern: string, path?: string | OmpGrepOptions, skip?: number): Promise<string>;\n find(args: OmpFindArgument): Promise<string>;\n find(pattern: string, path?: string | OmpFindOptions, limit?: number): Promise<string>;\n ls(args?: OmpLsArgument, options?: OmpLsOptions): Promise<string>;\n}\ntype FabricActorHostEvent =\n | \"resources_discover\"\n | \"session_start\"\n | \"session_before_switch\"\n | \"session_switch\"\n | \"session_before_branch\"\n | \"session_branch\"\n | \"session_before_compact\"\n | \"session.compacting\"\n | \"session_compact\"\n | \"session_shutdown\"\n | \"session_before_tree\"\n | \"session_tree\"\n | \"goal_updated\"\n | \"input\"\n | \"before_agent_start\"\n | \"agent_start\"\n | \"agent_end\"\n | \"session_stop\"\n | \"turn_start\"\n | \"turn_end\"\n | \"message_start\"\n | \"message_update\"\n | \"message_end\"\n | \"context\"\n | \"before_provider_request\"\n | \"after_provider_response\"\n | \"tool_execution_start\"\n | \"tool_call\"\n | \"tool_execution_update\"\n | \"tool_result\"\n | \"tool_execution_end\"\n | \"user_bash\"\n | \"tool_error\";\ntype FabricActorDelivery = \"mailbox\" | \"steer\" | \"followUp\" | \"nextTurn\";\ninterface FabricActorHostMediaDescriptor {\n readonly type: \"image\";\n readonly mediaIndex: number;\n readonly mimeType: string;\n}\ninterface FabricActorHostSignal {\n readonly payload: unknown;\n readonly media?: readonly FabricActorHostMediaDescriptor[];\n readonly idle: boolean;\n readonly observedAt: number;\n}\ntype FabricActorActivation =\n | { readonly kind: \"hostEvent\"; readonly id: string; readonly source: string; readonly sequence: number; readonly createdAt: number; readonly event: FabricActorHostEvent; readonly mainRevision: number; readonly taskRevision: number; readonly signal?: FabricActorHostSignal }\n | { readonly kind: \"direct\"; readonly id: string; readonly source: string; readonly sequence: number; readonly createdAt: number }\n | { readonly kind: \"mesh\"; readonly id: string; readonly source: string; readonly sequence: number; readonly createdAt: number; readonly topic: string };\ninterface FabricActorValidityFacts {\n readonly activation: Readonly<FabricActorActivation>;\n readonly current: Readonly<{ latestActivationSequence: number; mainRevision: number; taskRevision: number; idle: boolean; now: number }>;\n}\ntype FabricActorValidityDecision = boolean | { valid: boolean; reason?: string };\ntype FabricActorBindingScope = \"session\" | \"project\";\ninterface FabricActorRunBinding { model?: string; thinking?: FabricThinking }\ntype FabricActorValidWhile = (facts: Readonly<FabricActorValidityFacts>) => FabricActorValidityDecision;\ninterface FabricActorRequestBase {\n scope?: \"session\" | \"project\" | \"global\";\n name: string;\n instructions: string;\n events?: FabricActorHostEvent[];\n topics?: string[];\n responseMode?: \"text\" | \"directive\";\n coalesce?: boolean;\n runner?: FabricAgentRunner;\n model?: string;\n thinking?: FabricThinking;\n tools?: string[];\n transport?: FabricTransport;\n cwd?: string;\n timeoutMs?: number;\n timeout_ms?: number;\n extensions?: boolean;\n requires?: Array<string | { ref: string; optional?: boolean }>;\n validWhile?: FabricActorValidWhile;\n residency?: FabricParticipantResidency;\n}\ntype FabricActorRequest = FabricActorRequestBase & (\n | { delivery?: \"mailbox\"; triggerTurn?: false }\n | { delivery: \"nextTurn\"; triggerTurn?: false }\n | { delivery: \"steer\" | \"followUp\"; triggerTurn: boolean }\n);\ninterface FabricActorInfo {\n id: string;\n scope: \"session\" | \"project\";\n name: string;\n status: \"idle\" | \"queued\" | \"running\" | \"stopped\";\n runner: FabricAgentRunner;\n events: FabricActorHostEvent[];\n topics: string[];\n delivery: FabricActorDelivery;\n responseMode: \"text\" | \"directive\";\n triggerTurn: boolean;\n coalesce: boolean;\n model?: string;\n thinking?: FabricThinking;\n binding?: FabricActorRunBinding & { scope: \"session\"; sessionId: string; updatedAt?: number };\n projectDefaults?: FabricActorRunBinding & { scope: \"project\" };\n tools?: string[];\n timeoutMs?: number;\n extensions?: boolean;\n requirements?: Array<{ ref: string; optional?: boolean }>;\n capabilityDigest?: string;\n missingCapabilities?: string[];\n validWhile?: { version: 1; source: string };\n residency: FabricParticipantResidency;\n queued: number;\n messages: number;\n createdAt: number;\n updatedAt: number;\n lastRunId?: string;\n lastError?: string;\n sessionFile?: string;\n logDir?: string;\n}\ninterface FabricModelSwitchRequest {\n /** provider/id, a models.aliases name, or a search term; resolution tries aliases first, then exact matches, then the closest fuzzy match (recency from pi-model-sort breaks ties) against authenticated models. */\n model: string;\n /** Optional provider filter applied before matching (e.g. \"anthropic\"). */\n provider?: string;\n}\ninterface FabricModelSwitchResult {\n switched: boolean;\n /** Active model as provider/id after the call (unchanged when reason is \"already-active\"). */\n model: string;\n name?: string;\n /** Previously active provider/id when known. Absent for already-active results. */\n previous?: string;\n /** Set when the selector resolved through a configured models.aliases name. */\n alias?: string;\n /** How the selector resolved: the alias name, or one of closest/recent/latest for inexact picks. Absent for exact provider/id or bare-id matches. */\n via?: string;\n reason?: \"already-active\";\n}\ninterface FabricActorMessage {\n id: string;\n actorId: string;\n actorName: string;\n direction: \"in\" | \"out\";\n source: string;\n createdAt: number;\n text?: string;\n data?: unknown;\n action?: \"silent\" | \"message\" | \"stop\";\n runId?: string;\n error?: string;\n stale?: boolean;\n reason?: string;\n}\n// agentId/agent_id spellings repair to id during agent arg normalization.\ntype FabricAgentTargetArgs = { id: string; agentId?: string; agent_id?: string };\ninterface FabricAgentsApi {\n run(args: FabricAgentRequest): Promise<FabricAgentResult>;\n handoff(args: FabricHandoffRequest): Promise<FabricHandoffResult>;\n spawn(args: FabricAgentRequest): Promise<FabricAgentHandle>;\n wait(args: FabricAgentTargetArgs): Promise<FabricAgentResult>;\n status(args: FabricAgentTargetArgs): Promise<FabricAgentResult | FabricAgentHandle | FabricMainAgentInfo | FabricActorInfo | FabricParticipantInfo>;\n list(args?: { scope?: FabricParticipantScope }): Promise<Array<FabricAgentResult | FabricAgentHandle | FabricParticipantInfo>>;\n members(args?: { scope?: FabricParticipantScope; kinds?: FabricParticipantKind[]; includeStale?: boolean }): Promise<FabricParticipantInfo[]>;\n self(): Promise<FabricParticipantInfo>;\n main(): Promise<FabricMainAgentInfo>;\n sessions(): Promise<FabricParticipantInfo[]>;\n peers(): Promise<FabricPeerInfo[]>;\n subscribe(args: {\n from: string;\n events: FabricLifecycleEventType[];\n to?: string;\n delivery: FabricLifecycleDelivery;\n triggerTurn: boolean;\n once?: boolean;\n }): Promise<FabricLifecycleSubscription>;\n subscriptions(args?: { from?: string; to?: string }): Promise<FabricLifecycleSubscription[]>;\n unsubscribe(args: FabricAgentTargetArgs): Promise<{ removed: boolean }>;\n models(args?: { runner?: FabricAgentRunner; refresh?: boolean }): Promise<FabricModelInfo[]>;\n stop(args: FabricAgentTargetArgs): Promise<FabricAgentResult | FabricActorInfo | FabricRemoteControlResult>;\n cleanup(args: FabricAgentTargetArgs & { deleteBranch?: boolean; delete_branch?: boolean }): Promise<{ cleaned: boolean }>;\n create(args: FabricActorRequest): Promise<FabricActorInfo>;\n setModel(args: { id: string; model?: string; scope?: FabricActorBindingScope }): Promise<FabricActorInfo>;\n switchModel(args: FabricModelSwitchRequest): Promise<FabricModelSwitchResult>;\n setThinking(args: { id: string; thinking?: FabricThinking; scope?: FabricActorBindingScope }): Promise<FabricActorInfo>;\n setTools(args: { id: string; tools: string[]; scope?: \"project\" | \"global\" }): Promise<FabricActorInfo>;\n setEvents(args: { id: string; events: FabricActorHostEvent[] }): Promise<FabricActorInfo>;\n setDeliveryPolicy(args: {\n id: string;\n delivery: FabricActorDelivery;\n triggerTurn: boolean;\n scope?: \"project\" | \"global\";\n }): Promise<FabricActorInfo>;\n setInstructions(args: {\n id: string;\n instructions: string;\n scope?: \"project\" | \"global\";\n }): Promise<FabricActorInfo>;\n ask(args: { id: string; message: string; data?: unknown; model?: string; thinking?: FabricThinking }): Promise<FabricActorMessage>;\n tell(args: { id: string; message: string; data?: unknown; model?: string; thinking?: FabricThinking }): Promise<{ queued: true; messageId: string }>;\n steer(args: { id: string; message: string; data?: unknown }): Promise<{ queued: true; messageId: string; routed?: \"local\" | \"main\" | \"mesh\"; acknowledged?: boolean }>;\n followUp(args: { id: string; message: string; data?: unknown }): Promise<{ queued: true; messageId: string; routed?: \"local\" | \"main\" | \"mesh\"; acknowledged?: boolean }>;\n setSteeringMode(args: { id: string; mode: \"all\" | \"one-at-a-time\" }): Promise<{ queued: true; messageId: string }>;\n setFollowUpMode(args: { id: string; mode: \"all\" | \"one-at-a-time\" }): Promise<{ queued: true; messageId: string }>;\n actorStatus(args: FabricAgentTargetArgs): Promise<FabricActorInfo>;\n actors(): Promise<FabricActorInfo[]>;\n messages(args: { id: string; limit?: number }): Promise<FabricActorMessage[]>;\n remove(args: { id: string }): Promise<{ removed: boolean }>;\n log(args: {\n id: string;\n type?: \"session\" | \"run\" | \"all\";\n lines?: number;\n before?: number;\n runId?: string;\n }): Promise<FabricActorLog | FabricAgentLog>;\n}\ninterface FabricMcpResult {\n text: string;\n content: unknown[];\n structuredContent: unknown;\n}\ninterface FabricMcpTool {\n (args?: Record<string, unknown>): Promise<FabricMcpResult | unknown>;\n}\ninterface FabricMcpServer {\n [tool: string]: FabricMcpTool;\n}\n// Management verbs stay members of mcp even when the declare line below is\n// replaced by generated per-server declarations (see the dynamic option on\n// guestTypeDeclarations), so generated surfaces intersect with this type\n// rather than re-declaring them.\ninterface FabricMcpManagement {\n servers(): Promise<Array<{ name: string; description: string | null; transport: \"http\" | \"stdio\" }>>;\n reload(): Promise<{ servers: string[] }>;\n register(args: {\n name: string;\n description?: string;\n command?: string;\n args?: string[];\n cwd?: string;\n baseUrl?: string;\n headers?: Record<string, string>;\n env?: Record<string, string>;\n overwrite?: boolean;\n }): Promise<{ registered: string }>;\n call(args: { server: string; tool: string; args?: Record<string, unknown>; timeoutMs?: number }): Promise<unknown>;\n}\n// Loose static surface: any server/tool name compiles and argument shapes are\n// enforced at dispatch by the registry. With descriptor data available the\n// execution service replaces the declare-const-mcp line below with a\n// schema-typed rendering of the live cache (runtime/dynamic-guest-types.ts).\ntype FabricMcpApi = Record<string, FabricMcpServer> & FabricMcpManagement;\ninterface FabricCouncilRunOptions {\n task: string;\n roles: string[];\n runner?: FabricAgentRunner;\n transport?: FabricTransport;\n model?: string;\n thinking?: FabricThinking;\n tools?: string[];\n timeoutMs?: number;\n /** Filesystem execution directory; relative paths resolve from the parent agent cwd. */\n cwd?: string;\n worktree?: boolean;\n}\ninterface FabricCouncilApi {\n run(args: FabricCouncilRunOptions & { synthesize?: true }): Promise<FabricAgentResult>;\n run(args: FabricCouncilRunOptions & { synthesize: false }): Promise<FabricAgentResult[]>;\n}\ninterface FabricMeshIdentity {\n id: string;\n name: string;\n kind: \"main\" | \"actor\" | \"agent\";\n sessionId?: string;\n}\ninterface FabricMeshEvent {\n id: string;\n sequence: number;\n topic: string;\n kind: string;\n from: FabricMeshIdentity;\n to?: string;\n text?: string;\n data?: unknown;\n createdAt: number;\n}\ninterface FabricMeshStateEntry<T = unknown> {\n key: string;\n value: T;\n version: number;\n updatedAt: number;\n updatedBy: FabricMeshIdentity;\n}\ninterface FabricMeshApi {\n self(): Promise<FabricMeshIdentity>;\n publish(args: { topic: string; kind?: string; to?: string; text?: string; data?: unknown; message?: string; body?: string }): Promise<FabricMeshEvent>;\n read(args?: { after?: number; topic?: string; to?: string; limit?: number; max?: number }): Promise<FabricMeshEvent[]>;\n members(args: { scope?: FabricParticipantScope; kinds?: FabricParticipantKind[]; includeStale?: boolean; limit?: number; max?: number; include_stale?: boolean; withTotal: true }): Promise<{ members: FabricParticipantInfo[]; total: number; truncated: boolean }>;\n members(args?: { scope?: FabricParticipantScope; kinds?: FabricParticipantKind[]; includeStale?: boolean; limit?: number; max?: number; include_stale?: boolean; withTotal?: false }): Promise<FabricParticipantInfo[]>;\n get<T = unknown>(args: { key: string }): Promise<FabricMeshStateEntry<T> | null>;\n list<T = unknown>(args: { prefix?: string; limit?: number; max?: number; withTotal: true }): Promise<{ entries: Array<FabricMeshStateEntry<T>>; total: number; truncated: boolean }>;\n list<T = unknown>(args?: { prefix?: string; limit?: number; max?: number; withTotal?: false }): Promise<Array<FabricMeshStateEntry<T>>>;\n put<T = unknown>(args: { key: string; value: T; ifVersion?: number; if_version?: number; version?: number }): Promise<FabricMeshStateEntry<T>>;\n delete(args: { key: string; ifVersion?: number; if_version?: number; version?: number }): Promise<{ deleted: boolean; version?: number }>;\n}\n// Stable-provider argument bags declare the canonical keys plus the\n// near-miss spellings repaired during argument normalization\n// (providers/arg-normalization.ts and each provider's per-action table). The\n// registry's prepare stage repairs aliases before schema validation, so a\n// call spelled with an alias typechecks instead of tripping the\n// excess-property check; the canonical key wins on conflict, and anything\n// else fails additionalProperties:false validation with the offending\n// property path named. Keep these spillover fields in sync with the provider\n// normalization tables.\ntype FabricMemoryBranches = \"active\" | \"all\";\ntype FabricMemoryQueryMode = \"literal\" | \"phrase\" | \"regex\";\ntype FabricMemoryQueryMatch = \"all\" | \"any\";\ninterface FabricMemoryEntryRange {\n first: number;\n last: number;\n}\ninterface FabricMemoryRecallArgs {\n query?: string;\n queryMode?: FabricMemoryQueryMode;\n queryMatch?: FabricMemoryQueryMatch;\n expectedSourceHash?: string;\n expectedLineageFingerprint?: string;\n branches?: FabricMemoryBranches;\n scope?: string;\n offset?: number;\n pageSize?: number;\n snippetChars?: number;\n role?: string;\n tool?: string;\n ref?: string;\n provider?: string;\n action?: string;\n outcome?: \"succeeded\" | \"failed\" | \"aborted\" | \"timed_out\";\n since?: number;\n until?: number;\n entryRange?: FabricMemoryEntryRange;\n q?: string;\n limit?: number;\n max?: number;\n page_size?: number;\n snippet_chars?: number;\n query_mode?: FabricMemoryQueryMode;\n query_match?: FabricMemoryQueryMatch;\n entry_range?: FabricMemoryEntryRange;\n}\ninterface FabricMemoryExpandArgs {\n session: string;\n expectedSourceHash?: string;\n expectedLineageFingerprint?: string;\n branches?: FabricMemoryBranches;\n indices?: number[];\n entryIds?: string[];\n operationAddresses?: string[];\n entryRange?: FabricMemoryEntryRange;\n before?: number;\n after?: number;\n entryOffset?: number;\n textOffset?: number;\n maxChars?: number;\n maxEntries?: number;\n id?: string;\n file?: string;\n path?: string;\n session_id?: string;\n index?: number;\n entry_ids?: string[];\n operation_addresses?: string[];\n entry_range?: FabricMemoryEntryRange;\n entry_offset?: number;\n text_offset?: number;\n max_chars?: number;\n max_entries?: number;\n}\ninterface FabricMemoryCall<Ref extends string, Args> {\n ref: Ref;\n args: Args;\n}\ninterface FabricMemoryRecallEntryHit {\n kind: \"entry\";\n sessionId: string;\n tier: \"hot\" | \"cold\";\n index: number;\n entryId: string | null;\n parentId: string | null;\n operationAddress: string | null;\n type: string;\n role: string | null;\n tool: string | null;\n ref: string | null;\n provider: string | null;\n action: string | null;\n timestamp: number | null;\n isError: boolean;\n outcome?: \"succeeded\" | \"failed\" | \"aborted\" | \"timed_out\";\n score: number;\n snippet: string;\n truncated: boolean;\n follow: FabricMemoryCall<\"memory.expand\", FabricMemoryExpandArgs>;\n}\ninterface FabricMemoryRecallSessionHit {\n kind: \"session\";\n sessionId: string;\n tier: \"cold\";\n cwd: string;\n lastTimestamp: number | null;\n score: number;\n matchedTerms: number;\n matchedStructuralEntries: number;\n follow: FabricMemoryCall<\"memory.recall\", FabricMemoryRecallArgs>;\n}\ntype FabricMemoryRecallHit = FabricMemoryRecallEntryHit | FabricMemoryRecallSessionHit;\ninterface FabricMemoryError {\n code: string;\n message: string;\n [key: string]: unknown;\n}\ninterface FabricMemoryCoverage {\n complete: boolean;\n indexedSessions: number;\n eligibleSessions: number;\n staleSessions: number;\n incompleteSessions: number;\n reasons: string[];\n error?: FabricMemoryError;\n}\ninterface FabricMemoryRecallResult {\n total: number;\n hits: FabricMemoryRecallHit[];\n next: FabricMemoryCall<\"memory.recall\", FabricMemoryRecallArgs> | null;\n coverage: FabricMemoryCoverage;\n error?: FabricMemoryError;\n}\ninterface FabricMemoryExpandedEntry {\n index: number;\n entryId: string | null;\n parentId: string | null;\n type: string | null;\n role: string | null;\n timestamp: number | null;\n isError: boolean;\n anchor?: boolean;\n text: string;\n textRange: { start: number; end: number; total: number; complete: boolean };\n parentEntryId?: string | null;\n operationAddress?: string | null;\n tool?: string | null;\n ref?: string | null;\n provider?: string | null;\n action?: string | null;\n outcome?: \"succeeded\" | \"failed\" | \"aborted\" | \"timed_out\";\n filesTouched?: Array<string | null>;\n operation?: unknown;\n branchFact?: unknown;\n structuredTruncated?: boolean;\n factAddress?: string | null;\n carrierEntryId?: string | null;\n carrierParentId?: string | null;\n carrierFromId?: string | null;\n}\ninterface FabricMemoryExpandResult {\n session?: string;\n sourceHash?: string;\n branches?: FabricMemoryBranches;\n lineageFingerprint?: string;\n entryCount?: number;\n entries: FabricMemoryExpandedEntry[];\n next?: FabricMemoryCall<\"memory.expand\", FabricMemoryExpandArgs> | null;\n error?: FabricMemoryError;\n}\ninterface FabricMemoryWalkResult {\n visited: number;\n stopped: boolean;\n error?: FabricMemoryError;\n}\ninterface FabricMemorySessionInfo {\n id: string;\n file: string;\n cwd: string;\n mtime: number;\n entryCount: number;\n tier: \"hot\" | \"cold\";\n branches: FabricMemoryBranches;\n lineageFingerprint: string | null;\n}\ninterface FabricMemoryApi {\n recall(args?: FabricMemoryRecallArgs): Promise<FabricMemoryRecallResult>;\n expand(args: FabricMemoryExpandArgs): Promise<FabricMemoryExpandResult>;\n walk(\n args: FabricMemoryExpandArgs,\n visitor: (\n entry: FabricMemoryExpandedEntry,\n index: number,\n ) => boolean | void | Promise<boolean | void>,\n ): Promise<FabricMemoryWalkResult>;\n sessions(args?: {\n scope?: string;\n branches?: FabricMemoryBranches;\n limit?: number;\n max?: number;\n offset?: number;\n }): Promise<{\n scope?: string;\n branches?: FabricMemoryBranches;\n offset?: number;\n total?: number;\n truncated?: boolean;\n sessions?: FabricMemorySessionInfo[];\n error?: FabricMemoryError;\n }>;\n}\ninterface FabricStateTransitionArgs {\n label: string;\n from?: string;\n to: string;\n summary: string;\n evidence?: string[];\n tags?: string[];\n kind?: \"state\" | \"representation\";\n complexity?: { files: string[] };\n force?: boolean;\n name?: string;\n description?: string;\n}\ninterface FabricStateComplexityFile {\n file: string;\n supported: boolean;\n language?: string;\n current?: number;\n recorded?: number;\n delta?: number;\n recordedDelta?: number;\n}\ninterface FabricStateVerificationResult {\n certified: boolean;\n violated: boolean;\n certificationStatus: \"certified\" | \"failed\";\n results: unknown[];\n failures: unknown[];\n certificate?: unknown;\n reportingError?: string;\n evidenceDigest: string;\n resultDigest: string;\n}\ninterface FabricStateApi {\n transition(args: FabricStateTransitionArgs): Promise<{ event: FabricMeshEvent; head: unknown }>;\n get(): Promise<{\n head: unknown | null;\n goal: { check: string; description?: string } | null;\n complexity: { files: number; decisionPoints: number; lastNetDelta: number };\n certification: { current: unknown | null; recent: unknown[] };\n recentLabels: string[];\n }>;\n history(args?: { label?: string; limit?: number; includeArchived?: boolean; name?: string; max?: number }): Promise<{\n transitions: unknown[];\n labels: string[];\n certifications: unknown[];\n }>;\n complexity(args?: { files?: string[]; paths?: string[] }): Promise<{ files: FabricStateComplexityFile[]; netDelta: number }>;\n verify(args?: { labels?: string[]; includeArchived?: boolean; timeoutMs?: number; label?: string }): Promise<FabricStateVerificationResult>;\n goal(args: { check: string; description?: string; command?: string; cmd?: string; predicate?: string }): Promise<FabricMeshStateEntry<{ check: string; description?: string }>>;\n checkGoal(args?: { timeoutMs?: number }): Promise<{\n passed: boolean;\n output: string;\n exitCode: number | null;\n error?: string;\n }>;\n}\ntype FabricSchemaEvidence =\n | { kind: \"file_exists\"; path: string }\n | { kind: \"file_absent\"; path: string }\n | { kind: \"file_contains\"; path: string; literal: string }\n | { kind: \"file_sha256\"; path: string; sha256: string }\n | { kind: \"trusted_command\"; name: string };\ntype FabricSchemaFileOperation =\n | { kind: \"write\"; path: string; content: string; expected: { absent: true } | { sha256: string } }\n | { kind: \"edit\"; path: string; oldText: string; newText: string; expectedSha256: string }\n | { kind: \"delete\"; path: string; expectedSha256: string };\ninterface FabricSchemaEvidenceResult {\n evidence: FabricSchemaEvidence;\n status: \"confirmed\" | \"nonconfirmed\" | \"error\";\n detail: string;\n exitCode?: number | null;\n output?: string;\n observedSha256?: string;\n}\ninterface FabricSchemaStatus {\n mode: \"off\" | \"audit\" | \"enforce\";\n certificateTtlMs: number;\n maxFiles: number;\n maxBytes: number;\n trustedCommands: string[];\n generation: number;\n lastOutcome: \"committed\" | \"rolled_back\" | \"quarantined\" | null;\n hypotheses: Array<{\n id: string;\n label: string;\n status: string;\n generation: number;\n updatedAt: number;\n }>;\n}\ninterface FabricSchemaVerificationResult {\n verified: boolean;\n hypothesisId: string;\n certificate?: string;\n issuedAt?: number;\n expiresAt?: number;\n reason?: string;\n results: FabricSchemaEvidenceResult[];\n}\ninterface FabricSchemaCommitResult {\n outcome: \"committed\" | \"rolled_back\" | \"quarantined\";\n transactionId: string;\n generation?: number;\n paths?: string[];\n postconditions?: FabricSchemaEvidenceResult[];\n complexityReductionCertified?: boolean;\n stateTransition?: unknown;\n error?: string;\n rollbackError?: string;\n}\ninterface FabricSchemaApi {\n status(): Promise<FabricSchemaStatus>;\n hypothesize(args: {\n label: string;\n summary: string;\n evidence: FabricSchemaEvidence[];\n complexityReduction?: boolean;\n name?: string;\n description?: string;\n complexity_reduction?: boolean;\n }): Promise<{\n hypothesisId: string;\n status: string;\n state: unknown;\n fingerprint: string;\n generation: number;\n }>;\n verify(args: { hypothesisId: string; id?: string; hypothesis_id?: string }): Promise<FabricSchemaVerificationResult>;\n commit(args: {\n hypothesisId: string;\n certificate: string;\n operations: FabricSchemaFileOperation[];\n postconditions: FabricSchemaEvidence[];\n id?: string;\n hypothesis_id?: string;\n }): Promise<FabricSchemaCommitResult>;\n abort(args: { hypothesisId: string; certificate?: string; id?: string; hypothesis_id?: string }): Promise<{\n aborted: true;\n hypothesisId: string;\n }>;\n}\ninterface FabricCompactPendingIntent {\n reason?: string;\n instructions?: string;\n preserve?: string[];\n requestedBy: string;\n requestedAt: number;\n}\ninterface FabricCompactLastCommit {\n at: number;\n requestedBy: string;\n status: \"committed\" | \"skipped\" | \"cancelled\" | \"failed\";\n summary?: string;\n tokensBefore?: number;\n estimatedTokensAfter?: number;\n error?: string;\n persisted?: boolean;\n}\ninterface FabricCompactContextUsage {\n known: boolean;\n tokens: number | null;\n contextWindow: number | null;\n percent: number | null;\n remainingTokens: number | null;\n}\ninterface FabricCompactStatus {\n pending?: FabricCompactPendingIntent;\n last?: FabricCompactLastCommit;\n context?: FabricCompactContextUsage;\n engine?: string;\n targetContextRatio?: number;\n model?: string;\n sessionId?: string;\n}\ntype FabricComponentState = \"waiting\" | \"loading\" | \"active\" | \"unloading\" | \"failed\" | \"quarantined\" | \"disposed\";\ninterface FabricComponentEffectInfo {\n label: string;\n kind: \"none\" | \"scoped\" | \"transactional\" | \"emission\";\n resources: string[];\n ordering: \"commutative\" | \"ordered\" | \"unknown\";\n}\ninterface FabricComponentEffectConflict {\n withComponent: string;\n resources: string[];\n reason: \"shared_resource\" | \"unknown_resource\";\n}\ninterface FabricComponentInfo {\n id: string;\n component: string;\n parentId?: string;\n state: FabricComponentState;\n guarantee: \"managed\" | \"revertible\";\n requirements: string[];\n provisions: string[];\n missing: string[];\n optionalMissing: string[];\n effects?: FabricComponentEffectInfo[];\n effectConflicts?: FabricComponentEffectConflict[];\n targetDigest?: string;\n error?: string;\n cleanupErrors?: string[];\n revision: number;\n createdAt: number;\n updatedAt: number;\n}\ninterface FabricComponentsApi {\n list(): Promise<{\n definitions: Array<{ name: string; description?: string; revision: number; requirements: string[]; provisions: string[] }>;\n components: FabricComponentInfo[];\n }>;\n status(args: { id: string }): Promise<FabricComponentInfo>;\n graph(): Promise<{\n components: FabricComponentInfo[];\n edges: Array<{ from: string; to: string; ref: string; kind?: \"dependency\" | \"ownership\" }>;\n cycles: string[][];\n }>;\n reload(args?: { id?: string }): Promise<{ components: FabricComponentInfo[] }>;\n}\n\ninterface FabricCompactApi {\n request(args?: {\n reason?: string;\n instructions?: string;\n preserve?: string[];\n requestedBy?: string;\n instruction?: string;\n requested_by?: string;\n }): Promise<{ requested: true; intent: FabricCompactPendingIntent }>;\n status(): Promise<FabricCompactStatus>;\n cancel(): Promise<{ cancelled: true }>;\n}\n\ninterface FabricCodemapSymbolCounts {\n files: number;\n symbols: number;\n languages: Record<string, number>;\n fallbackFiles: number;\n truncated: boolean;\n elapsedMs: number;\n}\ninterface FabricCodemapCascadeEdge {\n file: string;\n score: number;\n commits: number;\n}\ninterface FabricCodemapCascade {\n seeds: string[];\n edges: FabricCodemapCascadeEdge[];\n commitsScanned: number;\n truncated: boolean;\n unavailable?: string;\n}\ninterface FabricCodemapApi {\n map(args?: {\n path?: string;\n maxTokens?: number;\n glob?: string;\n focus?: string;\n seeds?: string[];\n refresh?: boolean;\n }): Promise<{\n text: string;\n root: string;\n tokensEstimated: number;\n filesShown: number;\n symbolsShown: number;\n omittedFiles: number;\n omittedSymbols: number;\n truncated: boolean;\n indexed: FabricCodemapSymbolCounts;\n cascade?: FabricCodemapCascade;\n }>;\n cascade(args: {\n path?: string;\n seeds: string[];\n limit?: number;\n maxCommits?: number;\n }): Promise<FabricCodemapCascade>;\n}\n\ninterface FabricWorkflowAgentOptions extends Omit<FabricAgentRequest, \"task\"> {\n label?: string;\n}\ntype FabricActivityStatus = \"pending\" | \"running\" | \"completed\" | \"failed\" | \"blocked\" | \"stopped\";\ntype FabricActivityKind = \"agent\" | \"actor\" | \"tool\" | \"extension\" | \"mcp\" | \"mesh\" | \"task\" | \"custom\";\ninterface FabricWorkflowDisplay {\n name?: string;\n description?: string;\n}\ninterface FabricWorkflowPhaseOptions {\n id?: string;\n description?: string;\n total?: number;\n}\ninterface FabricWorkflowPhaseInput extends FabricWorkflowPhaseOptions {\n name: string;\n}\ninterface FabricWorkflowItem {\n id: string;\n label: string;\n status?: FabricActivityStatus;\n phase?: string;\n detail?: string;\n kind?: FabricActivityKind;\n current?: string;\n total?: number;\n completed?: number;\n data?: unknown;\n}\ninterface FabricWorkflowApi {\n agent<T = string>(prompt: string, options?: FabricWorkflowAgentOptions): Promise<T>;\n parallel<T, R>(items: T[], mapper: (item: T, index: number) => Promise<R> | R, concurrency?: number | { concurrency?: number }): Promise<R[]>;\n parallel<T>(thunks: Array<() => Promise<T> | T>, concurrency?: number | { concurrency?: number }): Promise<T[]>;\n pipeline<T>(items: T[], ...stages: Array<(value: unknown, original: T, index: number) => Promise<unknown> | unknown>): Promise<unknown[]>;\n configure(display: FabricWorkflowDisplay): Promise<FabricWorkflowDisplay>;\n phase(name: string, options?: FabricWorkflowPhaseOptions): Promise<{ name: string; index: number; id?: string }>;\n phase(input: FabricWorkflowPhaseInput): Promise<{ name: string; index: number; id?: string }>;\n item(item: FabricWorkflowItem): Promise<FabricWorkflowItem>;\n event(event: { message: string; level?: \"info\" | \"success\" | \"warning\" | \"error\"; data?: unknown }): Promise<void>;\n log(...values: unknown[]): void;\n budget: { total: number; spent(): number; remaining(): number };\n}\ndeclare const tools: FabricToolsApi;\ndeclare const omp: OmpToolsApi;\ndeclare const extensions: FabricExtensionsApi;\ndeclare const agents: FabricAgentsApi;\ndeclare const mesh: FabricMeshApi;\ndeclare const mcp: FabricMcpApi;\ndeclare const memory: FabricMemoryApi;\ndeclare const state: FabricStateApi;\ndeclare const schema: FabricSchemaApi;\ndeclare const components: FabricComponentsApi;\ndeclare const compact: FabricCompactApi;\ndeclare const codemap: FabricCodemapApi;\ndeclare const council: FabricCouncilApi;\ndeclare const workflow: FabricWorkflowApi;\ndeclare function agent<T = string>(prompt: string, options?: FabricWorkflowAgentOptions): Promise<T>;\ndeclare function parallel<T, R>(items: T[], mapper: (item: T, index: number) => Promise<R> | R, concurrency?: number | { concurrency?: number }): Promise<R[]>;\ndeclare function parallel<T>(thunks: Array<() => Promise<T> | T>, concurrency?: number | { concurrency?: number }): Promise<T[]>;\ndeclare function pipeline<T>(items: T[], ...stages: Array<(value: unknown, original: T, index: number) => Promise<unknown> | unknown>): Promise<unknown[]>;\ndeclare function phase(name: string, options?: FabricWorkflowPhaseOptions): Promise<{ name: string; index: number; id?: string }>;\ndeclare function phase(input: FabricWorkflowPhaseInput): Promise<{ name: string; index: number; id?: string }>;\ndeclare function log(...values: unknown[]): void;\ndeclare const budget: FabricWorkflowApi[\"budget\"];\ntype FabricRlmRequest = Omit<FabricAgentRequest, \"runner\" | \"recursive\" | \"cwd\"> & { runner?: \"omp\" };\ndeclare const rlm: { query(args: FabricRlmRequest): Promise<FabricAgentResult> };\ninterface FabricConsole {\n log(...args: unknown[]): void;\n info(...args: unknown[]): void;\n warn(...args: unknown[]): void;\n error(...args: unknown[]): void;\n}\ndeclare const console: FabricConsole;\ndeclare const payloads: Readonly<Record<string, string>>;\ndeclare function print(...args: unknown[]): void;\ndeclare function setTimeout(handler: (...args: any[]) => void, timeout?: number): number;\ndeclare function clearTimeout(handle: number): void;\ndeclare function setInterval(handler: (...args: any[]) => void, timeout?: number): number;\ndeclare function clearInterval(handle: number): void;\n`;\n\nconst FULL_CODE_GLOBAL_DECLARATIONS = [\n \"declare const omp: OmpToolsApi;\\n\",\n \"declare const extensions: FabricExtensionsApi;\\n\",\n];\n\nconst OMP_LOOSE_DECLARATION = \"declare const omp: OmpToolsApi;\\n\";\nconst MCP_LOOSE_DECLARATION = \"declare const mcp: FabricMcpApi;\\n\";\nconst EXTENSIONS_LOOSE_DECLARATION = \"declare const extensions: FabricExtensionsApi;\\n\";\n\nexport interface FabricGuestDeclarationOptions {\n /** Global names to omit (for example providers disabled by configuration). */\n excludeGlobals?: readonly string[];\n /**\n * Pre-rendered replacement blocks from buildDynamicGuestDeclarations().\n * Applied only when the loose anchor line is still present \u2014 excluded\n * globals (or orchestration-only mode, for extensions) keep nothing to\n * replace, and missing/undefined sections keep the loose surface.\n */\n dynamic?: FabricDynamicGuestDeclarations;\n /** Add captured core overloads to the full-code OMP declaration. */\n coreOverrides?: string;\n}\n\nconst globalDeclarationLine = (name: string): RegExp =>\n new RegExp(`^declare const ${name}: [^\\\\n]*;\\\\n`, \"m\");\n\nconst terminatedDeclaration = (block: string): string =>\n block.endsWith(\"\\n\") ? block : `${block}\\n`;\n\nexport const guestTypeDeclarations = (\n fullCodeMode: boolean,\n options: FabricGuestDeclarationOptions = {},\n): string => {\n const base = fullCodeMode\n ? GUEST_TYPE_DECLARATIONS\n : FULL_CODE_GLOBAL_DECLARATIONS.reduce(\n (declarations, declaration) => declarations.replace(declaration, \"\"),\n GUEST_TYPE_DECLARATIONS,\n );\n let result = (options.excludeGlobals ?? []).reduce(\n (declarations, name) => declarations.replace(globalDeclarationLine(name), \"\"),\n base,\n );\n if (fullCodeMode && options.coreOverrides && result.includes(OMP_LOOSE_DECLARATION)) {\n result = result.replace(\n OMP_LOOSE_DECLARATION,\n terminatedDeclaration(options.coreOverrides),\n );\n }\n if (options.dynamic?.mcp && result.includes(MCP_LOOSE_DECLARATION)) {\n result = result.replace(\n MCP_LOOSE_DECLARATION,\n terminatedDeclaration(options.dynamic.mcp),\n );\n }\n if (options.dynamic?.extensions && result.includes(EXTENSIONS_LOOSE_DECLARATION)) {\n result = result.replace(\n EXTENSIONS_LOOSE_DECLARATION,\n terminatedDeclaration(options.dynamic.extensions),\n );\n }\n return result;\n};\n"],
5
+ "mappings": ";AAQO,IAAM,6CAA6C;AAAA,EACxD,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,IAAI;AACN;AAEO,IAAM,0BAA0B;AAAA,EACrC,MAAM,CAAC,UAAU,OAAO;AAAA,EACxB,MAAM,CAAC,SAAS;AAAA,EAChB,MAAM,CAAC;AAAA,EACP,OAAO,CAAC;AAAA,EACR,MAAM,CAAC,WAAW,MAAM;AAAA,EACxB,MAAM,CAAC,OAAO;AAAA,EACd,IAAI,CAAC,OAAO;AACd;AAEO,IAAM,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAs0CvC,IAAM,gCAAgC;AAAA,EACpC;AAAA,EACA;AACF;AAEA,IAAM,wBAAwB;AAC9B,IAAM,wBAAwB;AAC9B,IAAM,+BAA+B;AAgBrC,IAAM,wBAAwB,CAAC,SAC7B,IAAI,OAAO,kBAAkB,IAAI,iBAAiB,GAAG;AAEvD,IAAM,wBAAwB,CAAC,UAC7B,MAAM,SAAS,IAAI,IAAI,QAAQ,GAAG,KAAK;AAAA;AAElC,IAAM,wBAAwB,CACnC,cACA,UAAyC,CAAC,MAC/B;AACX,QAAM,OAAO,eACT,0BACA,8BAA8B;AAAA,IAC5B,CAAC,cAAc,gBAAgB,aAAa,QAAQ,aAAa,EAAE;AAAA,IACnE;AAAA,EACF;AACJ,MAAI,UAAU,QAAQ,kBAAkB,CAAC,GAAG;AAAA,IAC1C,CAAC,cAAc,SAAS,aAAa,QAAQ,sBAAsB,IAAI,GAAG,EAAE;AAAA,IAC5E;AAAA,EACF;AACA,MAAI,gBAAgB,QAAQ,iBAAiB,OAAO,SAAS,qBAAqB,GAAG;AACnF,aAAS,OAAO;AAAA,MACd;AAAA,MACA,sBAAsB,QAAQ,aAAa;AAAA,IAC7C;AAAA,EACF;AACA,MAAI,QAAQ,SAAS,OAAO,OAAO,SAAS,qBAAqB,GAAG;AAClE,aAAS,OAAO;AAAA,MACd;AAAA,MACA,sBAAsB,QAAQ,QAAQ,GAAG;AAAA,IAC3C;AAAA,EACF;AACA,MAAI,QAAQ,SAAS,cAAc,OAAO,SAAS,4BAA4B,GAAG;AAChF,aAAS,OAAO;AAAA,MACd;AAAA,MACA,sBAAsB,QAAQ,QAAQ,UAAU;AAAA,IAClD;AAAA,EACF;AACA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -60,7 +60,7 @@ import {
60
60
  staticFreedomFromSchema,
61
61
  surfaceFreedomReport,
62
62
  trendFromScores
63
- } from "../chunks/chunk-B2SQR2JY.js";
63
+ } from "../chunks/chunk-BMIE4PIL.js";
64
64
  import {
65
65
  compiledSurfaceDirectory,
66
66
  loadCompiledSurface,
@@ -82,7 +82,7 @@ import {
82
82
  replaySuccessfulCallsAsync,
83
83
  schemaDigest
84
84
  } from "../chunks/chunk-4A4MVZQW.js";
85
- import "../chunks/chunk-NX4SNIMR.js";
85
+ import "../chunks/chunk-FX3XLQYI.js";
86
86
  import "../chunks/chunk-6QBPSZJ5.js";
87
87
  import "../chunks/chunk-7363CD5A.js";
88
88
  import "../chunks/chunk-KAD7UWT2.js";