@felan-ai/agent-core 0.4.9 → 0.4.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Portable Felan agent contracts and the Node.js host runtime.
4
4
 
5
+ `@felan-ai/agent-core` is the feature-neutral composition layer between a
6
+ Felan host and the pinned Pi packages. It is intended for applications and
7
+ portable extensions, not as a complete end-user CLI.
8
+
5
9
  ```ts
6
10
  import { HostAgentRuntime } from '@felan-ai/agent-core';
7
11
 
@@ -21,6 +25,19 @@ available to the current user. Use `exec(command, args)` for literal argument
21
25
  boundaries and `shell(command)` only when shell parsing is intentional. File
22
26
  reads and writes use `Uint8Array` so binary content is preserved. Reads accept a
23
27
  `maxBytes` bound, and writes support exclusive creation for race-safe new files.
28
+ `listFiles` supports recursive, glob-filtered traversal with ignored-directory,
29
+ depth, and result-count bounds; host implementations enumerate one directory at
30
+ a time rather than materializing an unbounded recursive scan. `exec` and `shell`
31
+ accept an optional `maxOutputBytes` cap; capped results set `truncated` without
32
+ turning normal command completion into cancellation.
33
+
34
+ Shell calls use the host's default shell unless they request the explicit
35
+ `shellFlavor: 'posix'` option. POSIX hosts use `/bin/sh`; native Windows hosts
36
+ validate and use a same-host Git Bash installation discovered through
37
+ `FELAN_POSIX_SHELL`, `PATH`, or standard Git-for-Windows locations. The
38
+ `HostAgentRuntimeOptions.posixShell` override is available to embedding hosts.
39
+ The default Windows `cmd.exe` behavior is unchanged, and WSL is not selected
40
+ automatically because its process and path namespace is separate from the host.
24
41
 
25
42
  Every `AgentRuntime` exposes scoped storage through `storage(scope)`. The
26
43
  default `storage()` handle is identical to `storage('session')` and belongs to
@@ -134,6 +151,21 @@ user, and package skill discovery remains disabled. Ambient system prompt,
134
151
  append prompt, and context discovery are also disabled; the selected cwd
135
152
  instruction file is the only built-in project-context input.
136
153
 
154
+ ## Package boundary
155
+
156
+ Agent Core owns `AgentRuntime`, `HostAgentRuntime`, the Felan base prompt, cwd
157
+ project instructions, provider-aware model tiers, runtime-backed coding tools,
158
+ capabilities, session/resource composition, and the public Pi composition
159
+ exports. Hosts own credentials, settings, storage roots, model scope,
160
+ presentation, and feature extension selection. Feature-specific behavior such
161
+ as tasks, memory scheduling, progressive context, and Prewalk belongs in its
162
+ own extension or application.
163
+
164
+ Host mode is deliberately not a sandbox. Use a runtime with an external
165
+ isolation boundary for untrusted workloads. Runtime callers should use literal
166
+ argv with `exec`, bounded byte-based I/O, and the scoped storage APIs rather
167
+ than reaching around the adapter.
168
+
137
169
  ## Development
138
170
 
139
171
  Source: `packages/agent-core` in <https://github.com/felan-ai/felan>.
@@ -142,5 +174,19 @@ Source: `packages/agent-core` in <https://github.com/felan-ai/felan>.
142
174
  corepack enable
143
175
  pnpm install --frozen-lockfile
144
176
  pnpm --filter @felan-ai/agent-core build
177
+ pnpm --filter @felan-ai/agent-core type-check
145
178
  pnpm --filter @felan-ai/agent-core test
146
179
  ```
180
+
181
+ ## Attribution
182
+
183
+ Agent Core composes the pinned MIT-licensed Pi packages listed in the package
184
+ manifest. See [NOTICE](NOTICE) and [LICENSE](LICENSE) for the complete
185
+ third-party attribution boundary.
186
+
187
+ ## Related documentation
188
+
189
+ - [Felan architecture](../../docs/concepts/architecture.md)
190
+ - [Runtime and security](../../docs/concepts/runtime-and-security.md)
191
+ - [Extension catalog](../../docs/reference/extension-catalog.md)
192
+ - [Maintainer architecture map](../../docs/maintainers/architecture-map.md)
@@ -0,0 +1,3 @@
1
+ export declare function normalizeFileListingPath(path: string): string;
2
+ export declare function fileListingGlobMatcher(pattern: string): RegExp;
3
+ //# sourceMappingURL=file-listing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-listing.d.ts","sourceRoot":"","sources":["../src/file-listing.ts"],"names":[],"mappings":"AAAA,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAqB9D"}
@@ -0,0 +1,30 @@
1
+ export function normalizeFileListingPath(path) {
2
+ return path.replaceAll('\\', '/');
3
+ }
4
+ export function fileListingGlobMatcher(pattern) {
5
+ let expression = '^';
6
+ for (let index = 0; index < pattern.length; index += 1) {
7
+ const character = pattern[index];
8
+ if (character === '*' && pattern[index + 1] === '*') {
9
+ if (pattern[index + 2] === '/') {
10
+ expression += '(?:[\\s\\S]*/)?';
11
+ index += 1;
12
+ }
13
+ else {
14
+ expression += '[\\s\\S]*';
15
+ }
16
+ index += 1;
17
+ }
18
+ else if (character === '*') {
19
+ expression += '[^/]*';
20
+ }
21
+ else if (character === '?') {
22
+ expression += '[^/]';
23
+ }
24
+ else {
25
+ expression += character.replace(/[|\\{}()[\]^$+?.]/g, '\\$&');
26
+ }
27
+ }
28
+ return new RegExp(`${expression}$`);
29
+ }
30
+ //# sourceMappingURL=file-listing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-listing.js","sourceRoot":"","sources":["../src/file-listing.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,IAAI,UAAU,GAAG,GAAG,CAAC;IACrB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAE,CAAC;QAClC,IAAI,SAAS,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACpD,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC/B,UAAU,IAAI,iBAAiB,CAAC;gBAChC,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,UAAU,IAAI,WAAW,CAAC;YAC5B,CAAC;YACD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC7B,UAAU,IAAI,OAAO,CAAC;QACxB,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC7B,UAAU,IAAI,MAAM,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,UAAU,IAAI,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;AACtC,CAAC"}
@@ -1,12 +1,11 @@
1
- import type { AgentRuntime, AgentRuntimeFileReadOptions, AgentRuntimeFileWriteOptions, AgentRuntimeProcesses, AgentRuntimeStorage, AgentRuntimeStorageScope, AgentRuntimeTerminals, ExecOptions, ExecResult } from './runtime.js';
2
- export type HostShellOptions = ExecOptions & {
3
- env?: Readonly<Record<string, string>>;
4
- };
1
+ import type { AgentRuntime, AgentRuntimeExecOptions, AgentRuntimeFileReadOptions, AgentRuntimeFileWriteOptions, AgentRuntimeListFilesOptions, AgentRuntimeProcesses, AgentRuntimeShellOptions, AgentRuntimeStorage, AgentRuntimeStorageScope, AgentRuntimeTerminals, ExecResult } from './runtime.js';
2
+ export type HostShellOptions = AgentRuntimeShellOptions;
5
3
  export interface HostAgentRuntimeOptions {
6
4
  readonly sessionStorageRoot: string;
7
5
  readonly agentStorageRoot: string;
8
6
  readonly agentDir?: string;
9
7
  readonly pathAccess?: 'workspace' | 'host';
8
+ readonly posixShell?: string;
10
9
  }
11
10
  export declare class HostAgentRuntime implements AgentRuntime {
12
11
  #private;
@@ -16,13 +15,11 @@ export declare class HostAgentRuntime implements AgentRuntime {
16
15
  get kind(): 'host';
17
16
  get cwd(): string;
18
17
  storage(scope?: AgentRuntimeStorageScope): AgentRuntimeStorage;
19
- exec(command: string, args: readonly string[], options?: ExecOptions): Promise<ExecResult>;
18
+ exec(command: string, args: readonly string[], options?: AgentRuntimeExecOptions): Promise<ExecResult>;
20
19
  shell(command: string, options?: HostShellOptions): Promise<ExecResult>;
21
20
  readFile(path: string, options?: AgentRuntimeFileReadOptions): Promise<Uint8Array>;
22
21
  writeFile(path: string, content: Uint8Array, options?: AgentRuntimeFileWriteOptions): Promise<void>;
23
- listFiles(path: string, options?: {
24
- recursive?: boolean;
25
- }): Promise<string[]>;
22
+ listFiles(path: string, options?: AgentRuntimeListFilesOptions): Promise<string[]>;
26
23
  mkdir(path: string, options?: {
27
24
  recursive?: boolean;
28
25
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"host-agent-runtime.d.ts","sourceRoot":"","sources":["../src/host-agent-runtime.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,YAAY,EACZ,2BAA2B,EAC3B,4BAA4B,EAE5B,qBAAqB,EAIrB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAC3C,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;CAC5C;AAED,qBAAa,gBAAiB,YAAW,YAAY;;IAQnD,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;gBAE9B,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB;IAmBzD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,OAAO,CAAC,KAAK,GAAE,wBAAoC,GAAG,mBAAmB;IAMnE,IAAI,CACR,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC;IAMhB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAMvE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,UAAU,CAAC;IAelF,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,IAAI,CAAC;IAMV,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoB7E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAqHvD"}
1
+ {"version":3,"file":"host-agent-runtime.d.ts","sourceRoot":"","sources":["../src/host-agent-runtime.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAE5B,qBAAqB,EAGrB,wBAAwB,EAExB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,UAAU,EACX,MAAM,cAAc,CAAC;AAGtB,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,gBAAiB,YAAW,YAAY;;IAUnD,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;gBAE9B,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB;IAoBzD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,OAAO,CAAC,KAAK,GAAE,wBAAoC,GAAG,mBAAmB;IAMnE,IAAI,CACR,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,UAAU,CAAC;IAMhB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IA4CvE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,UAAU,CAAC;IAelF,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,IAAI,CAAC;IAMV,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAYlF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAwIvD"}
@@ -1,7 +1,8 @@
1
1
  import { spawn } from 'node:child_process';
2
- import { lstat, mkdir, open, readFile, readdir, readlink, realpath, rm, writeFile, } from 'node:fs/promises';
2
+ import { access, lstat, mkdir, open, opendir, readFile, readlink, realpath, rm, writeFile, } from 'node:fs/promises';
3
3
  import { constants as osConstants } from 'node:os';
4
4
  import { isAbsolute, join, relative, resolve, sep } from 'node:path';
5
+ import { fileListingGlobMatcher, normalizeFileListingPath } from './file-listing.js';
5
6
  export class HostAgentRuntime {
6
7
  #cwd;
7
8
  #sessionStorage;
@@ -10,6 +11,8 @@ export class HostAgentRuntime {
10
11
  #agentStorageRoot;
11
12
  #agentDir;
12
13
  #pathAccess;
14
+ #configuredPosixShell;
15
+ #posixShell;
13
16
  processes;
14
17
  terminals;
15
18
  constructor(cwd, options) {
@@ -21,6 +24,7 @@ export class HostAgentRuntime {
21
24
  this.#agentStorageRoot = resolveStorageRoot(options.agentStorageRoot);
22
25
  this.#agentDir = options.agentDir === undefined ? undefined : resolveStorageRoot(options.agentDir);
23
26
  this.#pathAccess = options.pathAccess ?? 'workspace';
27
+ this.#configuredPosixShell = validateConfiguredShell(options.posixShell);
24
28
  this.#sessionStorage = createHostStorage(this.#sessionStorageRoot);
25
29
  this.#agentStorage = createHostStorage(this.#agentStorageRoot);
26
30
  this.processes = {
@@ -51,8 +55,44 @@ export class HostAgentRuntime {
51
55
  async shell(command, options) {
52
56
  const env = options?.env ? { ...options.env } : undefined;
53
57
  const cwd = await this.#resolvePath(options?.cwd ?? this.#cwd);
58
+ if (options?.shellFlavor === 'posix') {
59
+ const shell = await this.#resolvePosixShell(cwd);
60
+ return this.#spawn(shell, ['-c', command], cwd, options, false, env);
61
+ }
54
62
  return this.#spawn(command, [], cwd, options, true, env);
55
63
  }
64
+ #resolvePosixShell(cwd) {
65
+ this.#posixShell ??= this.#findPosixShell(cwd);
66
+ return this.#posixShell;
67
+ }
68
+ async #findPosixShell(cwd) {
69
+ if (this.#configuredPosixShell) {
70
+ if (await this.#isCompatiblePosixShell(this.#configuredPosixShell, cwd)) {
71
+ return this.#configuredPosixShell;
72
+ }
73
+ throw new Error(`Configured POSIX shell is unavailable or cannot access the runtime cwd: ${this.#configuredPosixShell}`);
74
+ }
75
+ if (process.platform !== 'win32')
76
+ return '/bin/sh';
77
+ for (const candidate of windowsPosixShellCandidates(process.env)) {
78
+ if (await this.#isCompatiblePosixShell(candidate, cwd))
79
+ return candidate;
80
+ }
81
+ throw new Error('POSIX shell is unavailable. Install Git Bash or configure HostAgentRuntime.posixShell.');
82
+ }
83
+ async #isCompatiblePosixShell(shell, cwd) {
84
+ if (isAbsolute(shell)) {
85
+ try {
86
+ await access(shell);
87
+ }
88
+ catch {
89
+ return false;
90
+ }
91
+ }
92
+ const probe = `test -d ${quotePosixPath(cwd)} && printf '%s\\n' __FELAN_POSIX_SHELL__`;
93
+ const result = await this.#spawn(shell, ['-c', probe], cwd, { timeout: 2_000 }, false);
94
+ return !result.killed && result.code === 0 && result.stdout.trim() === '__FELAN_POSIX_SHELL__';
95
+ }
56
96
  async readFile(path, options) {
57
97
  const resolvedPath = this.#pathAccess === 'host'
58
98
  ? resolveHostPath(this.#cwd, path)
@@ -71,14 +111,7 @@ export class HostAgentRuntime {
71
111
  const resolvedPath = this.#pathAccess === 'host'
72
112
  ? resolveHostPath(this.#cwd, path)
73
113
  : await resolveReadablePath(this.#cwd, this.#sessionStorageRoot, this.#agentStorageRoot, path);
74
- const entries = await readdir(resolvedPath, {
75
- recursive: options?.recursive ?? false,
76
- withFileTypes: true,
77
- });
78
- return entries
79
- .filter((entry) => entry.isFile())
80
- .map((entry) => relative(resolvedPath, resolve(entry.parentPath, entry.name)))
81
- .sort();
114
+ return listHostFiles(resolvedPath, options);
82
115
  }
83
116
  async mkdir(path, options) {
84
117
  const resolvedPath = await this.#resolvePath(path);
@@ -98,11 +131,13 @@ export class HostAgentRuntime {
98
131
  async #startShellProcess(command, options) {
99
132
  const cwd = await this.#resolvePath(options?.cwd ?? this.#cwd);
100
133
  const shell = options?.shell ?? defaultShell();
134
+ const useShellOption = process.platform === 'win32' && isCmdShell(shell);
101
135
  const args = shellArguments(shell, command, options?.login ?? true);
102
- const child = spawn(shell, args, {
136
+ const child = spawn(useShellOption ? command : shell, useShellOption ? [] : args, {
103
137
  cwd,
104
138
  detached: process.platform !== 'win32',
105
139
  env: options?.env ? { ...process.env, ...options.env } : process.env,
140
+ shell: useShellOption ? shell : false,
106
141
  stdio: [options?.stdin ? 'pipe' : 'ignore', 'pipe', 'pipe'],
107
142
  windowsHide: true,
108
143
  });
@@ -114,7 +149,10 @@ export class HostAgentRuntime {
114
149
  const args = shellArguments(shell, command, options?.login ?? true);
115
150
  const env = terminalEnvironment(options?.env);
116
151
  const pty = await loadPty();
117
- const terminal = pty.spawn(shell, args, {
152
+ const terminalArgs = process.platform === 'win32' && isCmdShell(shell)
153
+ ? `/d /s /c "${command}"`
154
+ : args;
155
+ const terminal = pty.spawn(shell, terminalArgs, {
118
156
  cwd,
119
157
  env,
120
158
  name: env.TERM ?? 'xterm-256color',
@@ -133,6 +171,7 @@ export class HostAgentRuntime {
133
171
  if (options?.signal?.aborted) {
134
172
  return killedResult();
135
173
  }
174
+ const maxOutputBytes = validateMaxOutputBytes(options?.maxOutputBytes);
136
175
  return new Promise((resolveResult) => {
137
176
  const child = spawn(command, args, {
138
177
  cwd,
@@ -144,6 +183,8 @@ export class HostAgentRuntime {
144
183
  });
145
184
  const stdout = [];
146
185
  const stderr = [];
186
+ let capturedOutputBytes = 0;
187
+ let outputTruncated = false;
147
188
  let killed = false;
148
189
  let spawnError;
149
190
  let timeout;
@@ -169,10 +210,23 @@ export class HostAgentRuntime {
169
210
  stderr: spawnError?.message ?? Buffer.concat(stderr).toString(),
170
211
  code: killed ? 143 : (code ?? (spawnError ? 1 : 0)),
171
212
  killed,
213
+ ...(outputTruncated ? { truncated: true } : {}),
172
214
  });
173
215
  };
174
- child.stdout.on('data', (chunk) => stdout.push(chunk));
175
- child.stderr.on('data', (chunk) => stderr.push(chunk));
216
+ child.stdout.on('data', (chunk) => {
217
+ const captured = captureOutputChunk(chunk, maxOutputBytes, capturedOutputBytes);
218
+ capturedOutputBytes = captured.nextBytes;
219
+ outputTruncated ||= captured.truncated;
220
+ if (captured.chunk.length > 0)
221
+ stdout.push(captured.chunk);
222
+ });
223
+ child.stderr.on('data', (chunk) => {
224
+ const captured = captureOutputChunk(chunk, maxOutputBytes, capturedOutputBytes);
225
+ capturedOutputBytes = captured.nextBytes;
226
+ outputTruncated ||= captured.truncated;
227
+ if (captured.chunk.length > 0)
228
+ stderr.push(captured.chunk);
229
+ });
176
230
  child.once('error', (error) => {
177
231
  spawnError = error;
178
232
  });
@@ -298,12 +352,20 @@ class HostRuntimeTerminal extends HostBufferedProcess {
298
352
  #terminal;
299
353
  #dataSubscription;
300
354
  #exitSubscription;
355
+ #startupOutput = process.platform === 'win32';
301
356
  constructor(terminal) {
302
357
  super();
303
358
  this.#terminal = terminal;
304
359
  this.#dataSubscription = terminal.onData((data) => {
305
360
  const raw = data;
306
- this.appendOutput(typeof raw === 'string' ? Buffer.from(raw) : new Uint8Array(raw));
361
+ const text = typeof raw === 'string'
362
+ ? raw
363
+ : new TextDecoder().decode(new Uint8Array(raw));
364
+ const output = this.#startupOutput ? stripWindowsPtyStartup(text) : text;
365
+ if (this.#startupOutput && output !== undefined)
366
+ this.#startupOutput = false;
367
+ if (output)
368
+ this.appendOutput(Buffer.from(output));
307
369
  });
308
370
  this.#exitSubscription = terminal.onExit(({ exitCode, signal }) => {
309
371
  this.complete(signal ? 128 + signal : exitCode);
@@ -315,7 +377,12 @@ class HostRuntimeTerminal extends HostBufferedProcess {
315
377
  async write(content) {
316
378
  if (!this.running)
317
379
  throw new Error('Process has exited');
318
- this.#terminal.write(Buffer.from(content));
380
+ if (process.platform !== 'win32') {
381
+ this.#terminal.write(Buffer.from(content));
382
+ return;
383
+ }
384
+ const text = Buffer.from(content).toString();
385
+ this.#terminal.write(text.replace(/\r?\n/gu, '\r\n'));
319
386
  }
320
387
  sendSignal(signal) {
321
388
  if (process.platform === 'win32') {
@@ -424,14 +491,7 @@ function createHostStorage(root) {
424
491
  },
425
492
  async listFiles(path, options) {
426
493
  const resolvedPath = await resolveContainedPath(root, path);
427
- const entries = await readdir(resolvedPath, {
428
- recursive: options?.recursive ?? false,
429
- withFileTypes: true,
430
- });
431
- return entries
432
- .filter((entry) => entry.isFile())
433
- .map((entry) => relative(resolvedPath, resolve(entry.parentPath, entry.name)))
434
- .sort();
494
+ return listHostFiles(resolvedPath, options);
435
495
  },
436
496
  async mkdir(path, options) {
437
497
  await mkdir(await resolveContainedPath(root, path), {
@@ -445,6 +505,134 @@ function createHostStorage(root) {
445
505
  },
446
506
  };
447
507
  }
508
+ async function listHostFiles(root, options = {}) {
509
+ throwIfListingAborted(options.signal);
510
+ const recursive = options.recursive ?? false;
511
+ const maximumDepth = validateListingBound('maxDepth', options.maxDepth, recursive ? Number.MAX_SAFE_INTEGER : 1);
512
+ const limit = validateListingBound('limit', options.limit, Number.MAX_SAFE_INTEGER);
513
+ if (maximumDepth === 0 || limit === 0) {
514
+ throwIfListingAborted(options.signal);
515
+ const directory = await opendir(root);
516
+ await directory.close();
517
+ return [];
518
+ }
519
+ if (options.pattern !== undefined && typeof options.pattern !== 'string') {
520
+ throw new Error('pattern must be a string');
521
+ }
522
+ const matcher = options.pattern === undefined
523
+ ? undefined
524
+ : fileListingGlobMatcher(options.pattern);
525
+ const ignoreMatchers = (options.ignore ?? []).map((pattern) => {
526
+ if (typeof pattern !== 'string')
527
+ throw new Error('ignore patterns must be strings');
528
+ return fileListingGlobMatcher(pattern);
529
+ });
530
+ const candidates = limit === Number.MAX_SAFE_INTEGER
531
+ ? undefined
532
+ : new BoundedPathHeap(limit);
533
+ const unboundedResults = [];
534
+ const addResult = (path) => {
535
+ if (candidates)
536
+ candidates.push(path);
537
+ else
538
+ unboundedResults.push(path);
539
+ };
540
+ const visitDirectory = async (relativeDirectory = '', depth = 0) => {
541
+ throwIfListingAborted(options.signal);
542
+ const absoluteDirectory = relativeDirectory ? join(root, relativeDirectory) : root;
543
+ if (relativeDirectory) {
544
+ const stats = await lstat(absoluteDirectory);
545
+ if (!stats.isDirectory())
546
+ return;
547
+ }
548
+ const directory = await opendir(absoluteDirectory);
549
+ for await (const entry of directory) {
550
+ throwIfListingAborted(options.signal);
551
+ if (!entry.isDirectory() && !entry.isFile())
552
+ continue;
553
+ const relativePath = relativeDirectory
554
+ ? join(relativeDirectory, entry.name)
555
+ : entry.name;
556
+ const normalizedPath = normalizeFileListingPath(relativePath);
557
+ const entryDepth = depth + 1;
558
+ if (isIgnoredListingPath(normalizedPath, entry.isDirectory(), ignoreMatchers))
559
+ continue;
560
+ if (entry.isDirectory()) {
561
+ const canReturn = options.includeDirectories === true
562
+ && (matcher?.test(normalizedPath) ?? true);
563
+ if (canReturn)
564
+ addResult(relativePath);
565
+ const canDescend = recursive && entryDepth < maximumDepth;
566
+ if (canDescend)
567
+ await visitDirectory(relativePath, entryDepth);
568
+ }
569
+ else if (matcher?.test(normalizedPath) ?? true) {
570
+ addResult(relativePath);
571
+ }
572
+ }
573
+ };
574
+ await visitDirectory();
575
+ const results = candidates?.values() ?? unboundedResults;
576
+ results.sort();
577
+ return results;
578
+ }
579
+ function validateListingBound(name, value, fallback) {
580
+ const resolved = value ?? fallback;
581
+ if (!Number.isSafeInteger(resolved) || resolved < 0) {
582
+ throw new Error(`${name} must be a non-negative safe integer`);
583
+ }
584
+ return resolved;
585
+ }
586
+ function throwIfListingAborted(signal) {
587
+ if (signal?.aborted)
588
+ throw new Error('Operation aborted');
589
+ }
590
+ function isIgnoredListingPath(path, directory, matchers) {
591
+ return matchers.some((matcher) => (matcher.test(path) || (directory && matcher.test(`${path}/`))));
592
+ }
593
+ class BoundedPathHeap {
594
+ limit;
595
+ #entries = [];
596
+ constructor(limit) {
597
+ this.limit = limit;
598
+ }
599
+ push(entry) {
600
+ if (this.#entries.length >= this.limit) {
601
+ if (entry >= this.#entries[0])
602
+ return;
603
+ this.#entries[0] = entry;
604
+ this.#siftDown(0);
605
+ return;
606
+ }
607
+ let index = this.#entries.push(entry) - 1;
608
+ while (index > 0) {
609
+ const parent = Math.floor((index - 1) / 2);
610
+ if (this.#entries[parent] >= entry)
611
+ break;
612
+ this.#entries[index] = this.#entries[parent];
613
+ index = parent;
614
+ }
615
+ this.#entries[index] = entry;
616
+ }
617
+ values() {
618
+ return [...this.#entries];
619
+ }
620
+ #siftDown(index) {
621
+ while (true) {
622
+ const left = index * 2 + 1;
623
+ if (left >= this.#entries.length)
624
+ return;
625
+ const right = left + 1;
626
+ const child = right < this.#entries.length && this.#entries[right] > this.#entries[left]
627
+ ? right
628
+ : left;
629
+ if (this.#entries[index] >= this.#entries[child])
630
+ return;
631
+ [this.#entries[index], this.#entries[child]] = [this.#entries[child], this.#entries[index]];
632
+ index = child;
633
+ }
634
+ }
635
+ }
448
636
  let ptyModule;
449
637
  function loadPty() {
450
638
  ptyModule ??= import('@lydell/node-pty');
@@ -464,11 +652,67 @@ function defaultShell() {
464
652
  return process.env.SHELL ?? '/bin/sh';
465
653
  }
466
654
  function shellArguments(shell, command, login) {
467
- if (process.platform === 'win32' && /(?:^|[\\/])cmd(?:\.exe)?$/iu.test(shell)) {
655
+ if (process.platform === 'win32' && isCmdShell(shell)) {
468
656
  return ['/d', '/s', '/c', command];
469
657
  }
470
658
  return login ? ['-l', '-c', command] : ['-c', command];
471
659
  }
660
+ function isCmdShell(shell) {
661
+ return /(?:^|[\\/])cmd(?:\.exe)?$/iu.test(shell);
662
+ }
663
+ function stripWindowsPtyStartup(value) {
664
+ const marker = '\u001b[?9001h\u001b[?1004h';
665
+ if (value === marker || marker.startsWith(value))
666
+ return undefined;
667
+ return value.startsWith(marker) ? value.slice(marker.length) : value;
668
+ }
669
+ function validateConfiguredShell(shell) {
670
+ if (shell === undefined)
671
+ return undefined;
672
+ const normalized = shell.trim();
673
+ if (normalized.length === 0)
674
+ throw new Error('Configured POSIX shell cannot be empty');
675
+ if (normalized.includes('\0'))
676
+ throw new Error('Configured POSIX shell cannot contain NUL bytes');
677
+ return normalized;
678
+ }
679
+ function windowsPosixShellCandidates(env) {
680
+ const candidates = [];
681
+ const add = (candidate) => {
682
+ if (!candidate || candidate.includes('\0'))
683
+ return;
684
+ if (!candidates.some((existing) => existing.toLowerCase() === candidate.toLowerCase())) {
685
+ candidates.push(candidate);
686
+ }
687
+ };
688
+ add(env.FELAN_POSIX_SHELL);
689
+ for (const entry of (env.Path ?? env.PATH ?? '').split(';')) {
690
+ const directory = entry.trim();
691
+ if (!directory)
692
+ continue;
693
+ add(join(directory, 'sh.exe'));
694
+ add(join(directory, 'bash.exe'));
695
+ }
696
+ const roots = [
697
+ env.ProgramW6432,
698
+ env.ProgramFiles,
699
+ env['ProgramFiles(x86)'],
700
+ env.LOCALAPPDATA,
701
+ ];
702
+ for (const root of roots) {
703
+ if (!root)
704
+ continue;
705
+ add(join(root, 'Git', 'bin', 'bash.exe'));
706
+ add(join(root, 'Git', 'bin', 'sh.exe'));
707
+ add(join(root, 'Git', 'usr', 'bin', 'bash.exe'));
708
+ add(join(root, 'Git', 'usr', 'bin', 'sh.exe'));
709
+ }
710
+ return candidates;
711
+ }
712
+ function quotePosixPath(value) {
713
+ const normalized = process.platform === 'win32' ? value.replaceAll('\\', '/') : value;
714
+ return `'${normalized.replaceAll("'", `'\\''`)}'`;
715
+ }
472
716
  function signalExitCode(signal) {
473
717
  if (!signal)
474
718
  return 1;
@@ -603,6 +847,26 @@ function isPermissionError(error) {
603
847
  function killedResult() {
604
848
  return { stdout: '', stderr: '', code: 143, killed: true };
605
849
  }
850
+ function validateMaxOutputBytes(value) {
851
+ if (value === undefined)
852
+ return undefined;
853
+ if (!Number.isSafeInteger(value) || value < 0) {
854
+ throw new Error('maxOutputBytes must be a non-negative safe integer');
855
+ }
856
+ return value;
857
+ }
858
+ function captureOutputChunk(chunk, maximum, captured) {
859
+ if (maximum === undefined) {
860
+ return { chunk, nextBytes: captured + chunk.byteLength, truncated: false };
861
+ }
862
+ const remaining = Math.max(0, maximum - captured);
863
+ const retained = chunk.subarray(0, Math.min(remaining, chunk.byteLength));
864
+ return {
865
+ chunk: retained,
866
+ nextBytes: captured + retained.byteLength,
867
+ truncated: retained.byteLength < chunk.byteLength,
868
+ };
869
+ }
606
870
  async function readBoundedFile(path, maxBytes) {
607
871
  if (!Number.isSafeInteger(maxBytes) || maxBytes < 0) {
608
872
  throw new Error('maxBytes must be a non-negative safe integer');
@@ -1 +1 @@
1
- {"version":3,"file":"host-agent-runtime.js","sourceRoot":"","sources":["../src/host-agent-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-agent-runtime.js","sourceRoot":"","sources":["../src/host-agent-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAmBrE,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAYrF,MAAM,OAAO,gBAAgB;IAClB,IAAI,CAAS;IACb,eAAe,CAAsB;IACrC,aAAa,CAAsB;IACnC,mBAAmB,CAAS;IAC5B,iBAAiB,CAAS;IAC1B,SAAS,CAAqB;IAC9B,WAAW,CAAuB;IAClC,qBAAqB,CAAqB;IACnD,WAAW,CAA8B;IAChC,SAAS,CAAwB;IACjC,SAAS,CAAwB;IAE1C,YAAY,GAAW,EAAE,OAAgC;QACvD,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC1E,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnG,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,WAAW,CAAC;QACrD,IAAI,CAAC,qBAAqB,GAAG,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG;YACf,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC;SAChG,CAAC;QACF,IAAI,CAAC,SAAS,GAAG;YACf,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC;SACnG,CAAC;IACJ,CAAC;IAED,IAAI,IAAI;QACN,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,QAAkC,SAAS;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QACrD,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAI,CACR,OAAe,EACf,IAAuB,EACvB,OAAiC;QAEjC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,OAA0B;QACrD,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,OAAO,EAAE,WAAW,KAAK,OAAO,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,kBAAkB,CAAC,GAAW;QAC5B,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW;QAC/B,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,EAAE,CAAC;gBACxE,OAAO,IAAI,CAAC,qBAAqB,CAAC;YACpC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,2EAA2E,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC3H,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,SAAS,CAAC;QAEnD,KAAK,MAAM,SAAS,IAAI,2BAA2B,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjE,IAAI,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,GAAG,CAAC;gBAAE,OAAO,SAAS,CAAC;QAC3E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;IAC5G,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,KAAa,EAAE,GAAW;QACtD,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,cAAc,CAAC,GAAG,CAAC,0CAA0C,CAAC;QACvF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QACvF,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,uBAAuB,CAAC;IACjG,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAqC;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,KAAK,MAAM;YAC9C,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;YAClC,CAAC,CAAC,MAAM,mBAAmB,CACvB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CACL,CAAC;QACN,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,KAAK,SAAS;YAC7C,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC;YAC9B,CAAC,CAAC,MAAM,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,SAAS,CACb,IAAY,EACZ,OAAmB,EACnB,OAAsC;QAEtC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,SAAS,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAsC;QAClE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,KAAK,MAAM;YAC9C,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;YAClC,CAAC,CAAC,MAAM,mBAAmB,CACvB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CACL,CAAC;QACN,OAAO,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAiC;QACzD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAiC;QAC1D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QACjF,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,OAAe,EACf,OAAyC;QAEzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,CAAC;QAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;YAChF,GAAG;YACH,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YACtC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;YACpE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;YACrC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YAC3D,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,OAAe,EACf,OAAyC;QAEzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;YACpE,CAAC,CAAC,aAAa,OAAO,GAAG;YACzB,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE;YAC9C,GAAG;YACH,GAAG;YACH,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,gBAAgB;YAClC,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,SAAS,GAAG,IAAI;QAC/C,OAAO,IAAI,CAAC,WAAW,KAAK,MAAM;YAChC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;YAClC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,MAAM,CACV,OAAe,EACf,IAAc,EACd,GAAW,EACX,OAA4C,EAC5C,KAAc,EACd,GAAsC;QAEtC,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,YAAY,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,cAAc,GAAG,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEvE,OAAO,IAAI,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;gBACjC,GAAG;gBACH,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;gBACtC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;gBACnD,KAAK;gBACL,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,MAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,MAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,IAAI,mBAAmB,GAAG,CAAC,CAAC;YAC5B,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,UAA6B,CAAC;YAClC,IAAI,OAAkD,CAAC;YACvD,IAAI,gBAA2D,CAAC;YAEhE,MAAM,IAAI,GAAG,GAAS,EAAE;gBACtB,IAAI,MAAM;oBAAE,OAAO;gBACnB,MAAM,GAAG,IAAI,CAAC;gBACd,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC5B,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;gBACxE,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC3B,CAAC,CAAC;YAEF,MAAM,MAAM,GAAG,CAAC,IAAmB,EAAQ,EAAE;gBAC3C,IAAI,OAAO;oBAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,MAAM;oBAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACxC,IAAI,gBAAgB;oBAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;gBACrD,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACpD,aAAa,CAAC;oBACZ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;oBACxC,MAAM,EAAE,UAAU,EAAE,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;oBAC/D,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnD,MAAM;oBACN,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChD,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE;gBAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;gBAChF,mBAAmB,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACzC,eAAe,KAAK,QAAQ,CAAC,SAAS,CAAC;gBACvC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE;gBAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;gBAChF,mBAAmB,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACzC,eAAe,KAAK,QAAQ,CAAC,SAAS,CAAC;gBACvC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5B,UAAU,GAAG,KAAK,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE5B,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/D,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;oBAAE,IAAI,EAAE,CAAC;YACrC,CAAC;YACD,IAAI,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC5C,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,wBAAwB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,MAAe,mBAAmB;IACvB,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC3C,SAAS,GAAG,KAAK,CAAC;IAClB,YAAY,CAA4B;IAMxC,IAAI,CACF,WAAmB,EACnB,OAAwC;QAExC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO;QAClC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAc,OAAO;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IAES,YAAY,CAAC,KAAiB;QACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAES,QAAQ,CAAC,QAAgB;QACjC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAIS,SAAS,KAAU,CAAC;IAE9B,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,MAAM,KAAK,CAAC;QACxC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,MAAM,KAAK,CAAC;QACxC,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;YAC1D,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF;AAED,MAAM,kBAAmB,SAAQ,mBAAmB;IACzC,MAAM,CAAe;IAE9B,YAAY,KAAmB;QAC7B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACrF,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAmB;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACnE,MAAM,IAAI,OAAO,CAAO,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE;YACpD,IAAI,CAAC,MAAM,CAAC,KAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1C,IAAI,KAAK;oBAAE,WAAW,CAAC,KAAK,CAAC,CAAC;;oBACzB,YAAY,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAES,UAAU,CAAC,MAAsB;QACzC,IAAI,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACxD,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;CACF;AAED,MAAM,mBAAoB,SAAQ,mBAAmB;IAC1C,SAAS,CAAO;IAChB,iBAAiB,CAAc;IAC/B,iBAAiB,CAAc;IACxC,cAAc,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAE9C,YAAY,QAAc;QACxB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAChD,MAAM,GAAG,GAAG,IAAe,CAAC;YAC5B,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,QAAQ;gBAClC,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,GAAa,CAAC,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzE,IAAI,IAAI,CAAC,cAAc,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC7E,IAAI,MAAM;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;YAChE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAmB;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAES,UAAU,CAAC,MAAsB;QACzC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,MAAM,KAAK,QAAQ;gBAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;;gBACnD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC3E,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEkB,SAAS;QAC1B,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;CACF;AAED,MAAM,iBAAiB;IACZ,UAAU,GAAG,IAAI,GAAG,EAAc,CAAC;IAC5C,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,kBAAkB,GAAG,CAAC,CAAC;IACvB,QAAQ,GAAG,IAAI,CAAC;IAChB,SAAS,CAAqB;IAE9B,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,WAAmB,EACnB,OAAwC;QAExC,MAAM,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9E,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,MAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3E,IAAI,OAAO,EAAE,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxE,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO;YACL,MAAM,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC;YAC9B,UAAU,EAAE,eAAe;YAC3B,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;SACtE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,wBAAwB,CAAC;YAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,kBAAkB,IAAI,OAAO,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,QAAgB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,MAAc,EAAE,MAAoB;QACvC,IAAI,MAAM,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9E,OAAO,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YACjC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/B,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC,CAAC;YACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU;YAAE,QAAQ,EAAE,CAAC;IACrD,CAAC;CACF;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO;QACL,IAAI;QACJ,KAAK,CAAC,QAAQ,CAAC,IAAI;YACjB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACvE,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO;YAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YACtC,MAAM,SAAS,CAAC,MAAM,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO;YAC3B,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5D,OAAO,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO;YACvB,MAAM,KAAK,CAAC,MAAM,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAClD,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,KAAK;aACvC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO;YACxB,MAAM,EAAE,CAAC,MAAM,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;gBACtD,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,KAAK;aACvC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAAY,EACZ,UAAwC,EAAE;IAE1C,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAC7C,MAAM,YAAY,GAAG,oBAAoB,CACvC,UAAU,EACV,OAAO,CAAC,QAAQ,EAChB,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CACxC,CAAC;IACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpF,IAAI,YAAY,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QACtC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS;QAC3C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5D,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACpF,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,KAAK,KAAK,MAAM,CAAC,gBAAgB;QAClD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAQ,EAAE;QACvC,IAAI,UAAU;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YACjC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,EAAE,iBAAiB,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,EAAiB,EAAE;QAChF,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,OAAO;QACnC,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACnD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YACpC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAAE,SAAS;YACtD,MAAM,YAAY,GAAG,iBAAiB;gBACpC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC;gBACrC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YACf,MAAM,cAAc,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC;YAC7B,IAAI,oBAAoB,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC;gBAAE,SAAS;YAExF,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,SAAS,GAAG,OAAO,CAAC,kBAAkB,KAAK,IAAI;uBAChD,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC;gBAC7C,IAAI,SAAS;oBAAE,SAAS,CAAC,YAAY,CAAC,CAAC;gBACvC,MAAM,UAAU,GAAG,SAAS,IAAI,UAAU,GAAG,YAAY,CAAC;gBAC1D,IAAI,UAAU;oBAAE,MAAM,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACjE,CAAC;iBAAM,IAAI,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC;gBACjD,SAAS,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,UAAU,EAAE,MAAM,EAAE,IAAI,gBAAgB,CAAC;IACzD,OAAO,CAAC,IAAI,EAAE,CAAC;IACf,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAyB,EAAE,QAAgB;IACrF,MAAM,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sCAAsC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA+B;IAC5D,IAAI,MAAM,EAAE,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAY,EACZ,SAAkB,EAClB,QAA2B;IAE3B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAC9D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,eAAe;IAGU;IAFpB,QAAQ,GAAa,EAAE,CAAC;IAEjC,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE9C,IAAI,CAAC,KAAa;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE;gBAAE,OAAO;YACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,IAAI,KAAK;gBAAE,MAAM;YAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,CAAC;YAC9C,KAAK,GAAG,MAAM,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAO;YACzC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAE;gBACxF,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAE;gBAAE,OAAO;YAC3D,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC,CAAC;YAC9F,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;IACH,CAAC;CACF;AAED,IAAI,SAAiE,CAAC;AAEtE,SAAS,OAAO;IACd,SAAS,KAAK,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACzC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,SAA4C;IACvE,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IAC1E,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;AACxC,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,OAAe,EAAE,KAAc;IACpE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,MAAM,MAAM,GAAG,4BAA4B,CAAC;IAC5C,IAAI,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvE,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAyB;IACxD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACvF,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAClG,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,2BAA2B,CAAC,GAAsB;IACzD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,CAAC,SAA6B,EAAQ,EAAE;QAClD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO;QACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACvF,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,YAAY;QAChB,GAAG,CAAC,YAAY;QAChB,GAAG,CAAC,mBAAmB,CAAC;QACxB,GAAG,CAAC,YAAY;KACjB,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACtF,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CAAC,MAA6B;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IACtB,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC1F,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,IAAY;IAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,GAAW,EACX,kBAA0B,EAC1B,gBAAwB,EACxB,IAAY;IAEZ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3E,IAAI,WAAW,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;QACnC,OAAO,oBAAoB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,WAAW,CAAC,kBAAkB,EAAE,YAAY,CAAC,EAAE,CAAC;QAClD,OAAO,oBAAoB,CAAC,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAY,EACZ,IAAY,EACZ,SAAS,GAAG,IAAI,EAChB,YAAqB;IAErB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAE3E,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5E,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC/C,IAAI,YAAY,IAAI,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,oBAAoB,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnG,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzE,IAAI,OAAO,GAAG,YAAY,CAAC;IAE3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAE,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzC,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAChD,eAAe,CAAC,YAAY,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;gBACzD,IAAI,CAAC;oBACH,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;wBAAE,MAAM,KAAK,CAAC;oBAC5C,OAAO,GAAG,cAAc,CAAC;gBAC3B,CAAC;gBACD,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBAClD,IAAI,oBAAoB,IAAI,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC,EAAE,CAAC;oBACvE,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC5C,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACrD,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;IACH,CAAC;IAED,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,oBAAoB,IAAI,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,IAAY,EAAE,SAAkB;IACrE,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IACpF,IAAI,CAAC,SAAS,IAAI,YAAY,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,IAAY;IAC7C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,OAAO,YAAY,KAAK,EAAE;WACrB,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,KAAK,YAAY,KAAK;WACxB,MAAM,IAAI,KAAK;WACf,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,SAAS,CAAC,KAAmB,EAAE,MAAsB;IAC5D,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO;IAEpC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;YACxE,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAC7E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAC7E,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAyB;IACvD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAiB,EACjB,OAA2B,EAC3B,QAAgB;IAEhB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC7E,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1E,OAAO;QACL,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAC,UAAU;QACzC,SAAS,EAAE,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;KAClD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,QAAgB;IAC3D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,KAAK,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAC5E,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACtE,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAC1C,KAAK,IAAI,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,QAAQ,CAAC,CAAC;IACpE,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { AgentRuntime, AgentRuntimeFileReadOptions, AgentRuntimeFileWriteOptions, AgentRuntimeKind, AgentRuntimeProcess, AgentRuntimeProcesses, AgentRuntimeProcessReadOptions, AgentRuntimeProcessSnapshot, AgentRuntimeShellProcessOptions, AgentRuntimeStorage, AgentRuntimeStorageScope, AgentRuntimeTerminals, ExecOptions, ExecResult, } from './runtime.js';
1
+ export type { AgentRuntime, AgentRuntimeFileReadOptions, AgentRuntimeFileWriteOptions, AgentRuntimeExecOptions, AgentRuntimeExecResult, AgentRuntimeListFilesOptions, AgentRuntimeKind, AgentRuntimeProcess, AgentRuntimeProcesses, AgentRuntimeProcessReadOptions, AgentRuntimeProcessSnapshot, AgentRuntimeShellFlavor, AgentRuntimeShellOptions, AgentRuntimeShellProcessOptions, AgentRuntimeStorage, AgentRuntimeStorageScope, AgentRuntimeTerminals, ExecOptions, ExecResult, } from './runtime.js';
2
2
  export { AGENT_CORE_VERSION } from './version.js';
3
3
  export { MODEL_TIERS, formatModelReference, getModelFamily, getModelStrength, isModelTier, parseModelReference, selectModelForTier, } from './model-tiers.js';
4
4
  export type { ModelReference, ModelTier, ModelTierClassifier, ModelTierSelection, } from './model-tiers.js';
@@ -14,6 +14,7 @@ export type { ExtensionPackageImporter, FelanExtension, FelanExtensionAPI, } fro
14
14
  export { createAgentCoreResourceLoader } from './resource-loader.js';
15
15
  export type { CreateAgentCoreResourceLoaderOptions } from './resource-loader.js';
16
16
  export { createRuntimeCodingTools } from './tools.js';
17
+ export type { RuntimeCodingToolsOptions } from './tools.js';
17
18
  export { createAgentCoreSession, createAgentCoreSessionRuntime, createAgentCoreSessionRuntimeFactory, } from './session.js';
18
19
  export type { AgentCoreSessionRuntimeFactoryOptions, AgentCoreSessionRuntimeFactoryRequest, AgentCoreSessionRuntimeOptionsFactory, CreateAgentCoreSessionOptions, StreamFunction, } from './session.js';
19
20
  export { AgentSession, CURRENT_SESSION_VERSION, DefaultResourceLoader, ModelRuntime, SessionManager, SettingsManager, createAgentSessionRuntime, defineTool, getAgentDir, loadSkillsFromDir, resizeImage, withFileMutationQueue, } from '@earendil-works/pi-coding-agent';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC5E,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EACV,wBAAwB,EACxB,cAAc,EACd,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,oCAAoC,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,qCAAqC,EACrC,qCAAqC,EACrC,qCAAqC,EACrC,6BAA6B,EAC7B,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,+BAA+B,EAC/B,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,KAAK,EACL,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,iCAAiC,EACjC,0BAA0B,EAC1B,iBAAiB,EACjB,UAAU,EACV,MAAM,GACP,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,GAAG,EACH,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAC3B,OAAO,EACP,UAAU,EACV,cAAc,EACd,eAAe,EACf,KAAK,EACL,QAAQ,EACR,mBAAmB,EACnB,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAM9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,cAAc,CAAC;AAQtB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AAwBzC,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,iCAAiC,EACjC,0BAA0B,EAC1B,iBAAiB,EACjB,UAAU,EACV,MAAM,GACP,MAAM,uBAAuB,CAAC;AAe/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAM9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,cAAc,CAAC;AAQtB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AAwBzC,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,iCAAiC,EACjC,0BAA0B,EAC1B,iBAAiB,EACjB,UAAU,EACV,MAAM,GACP,MAAM,uBAAuB,CAAC;AAe/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC"}
package/dist/runtime.d.ts CHANGED
@@ -1,5 +1,19 @@
1
- import type { ExecOptions, ExecResult } from '@earendil-works/pi-coding-agent';
2
- export type { ExecOptions, ExecResult } from '@earendil-works/pi-coding-agent';
1
+ import type { ExecOptions as PiExecOptions, ExecResult as PiExecResult } from '@earendil-works/pi-coding-agent';
2
+ export type ExecOptions = PiExecOptions;
3
+ export interface AgentRuntimeExecOptions extends PiExecOptions {
4
+ /** Maximum combined stdout/stderr bytes retained by the host adapter. */
5
+ readonly maxOutputBytes?: number;
6
+ }
7
+ export interface AgentRuntimeExecResult extends PiExecResult {
8
+ /** True when the host discarded output after reaching maxOutputBytes. */
9
+ readonly truncated?: boolean;
10
+ }
11
+ export type ExecResult = AgentRuntimeExecResult;
12
+ export type AgentRuntimeShellFlavor = 'default' | 'posix';
13
+ export interface AgentRuntimeShellOptions extends AgentRuntimeExecOptions {
14
+ readonly env?: Readonly<Record<string, string>>;
15
+ readonly shellFlavor?: AgentRuntimeShellFlavor;
16
+ }
3
17
  export type AgentRuntimeKind = 'host' | 'docker' | 'daytona';
4
18
  export type AgentRuntimeStorageScope = 'session' | 'agent';
5
19
  export interface AgentRuntimeProcessReadOptions {
@@ -38,9 +52,7 @@ export interface AgentRuntimeStorage {
38
52
  readonly root: string;
39
53
  readFile(path: string): Promise<Uint8Array>;
40
54
  writeFile(path: string, content: Uint8Array): Promise<void>;
41
- listFiles(path: string, options?: {
42
- recursive?: boolean;
43
- }): Promise<string[]>;
55
+ listFiles(path: string, options?: AgentRuntimeListFilesOptions): Promise<string[]>;
44
56
  mkdir(path: string, options?: {
45
57
  recursive?: boolean;
46
58
  }): Promise<void>;
@@ -54,21 +66,33 @@ export interface AgentRuntimeFileReadOptions {
54
66
  export interface AgentRuntimeFileWriteOptions {
55
67
  readonly exclusive?: boolean;
56
68
  }
69
+ export interface AgentRuntimeListFilesOptions {
70
+ /** Traverse descendants instead of returning only immediate entries. */
71
+ readonly recursive?: boolean;
72
+ /** Include directories as well as regular files in the returned paths. */
73
+ readonly includeDirectories?: boolean;
74
+ /** Maximum entry depth below the requested directory; immediate entries have depth 1. */
75
+ readonly maxDepth?: number;
76
+ /** Match returned paths with `/`-separated glob syntax. */
77
+ readonly pattern?: string;
78
+ /** Omit matching paths and prune matching directories before traversal. */
79
+ readonly ignore?: readonly string[];
80
+ /** Return at most this many entries, ordered by relative path. */
81
+ readonly limit?: number;
82
+ /** Stop traversal when the operation is cancelled. */
83
+ readonly signal?: AbortSignal;
84
+ }
57
85
  export interface AgentRuntime {
58
86
  readonly kind: AgentRuntimeKind;
59
87
  readonly cwd: string;
60
88
  readonly processes?: AgentRuntimeProcesses;
61
89
  readonly terminals?: AgentRuntimeTerminals;
62
90
  storage(scope?: AgentRuntimeStorageScope): AgentRuntimeStorage;
63
- exec(command: string, args: readonly string[], options?: ExecOptions): Promise<ExecResult>;
64
- shell(command: string, options?: ExecOptions & {
65
- env?: Readonly<Record<string, string>>;
66
- }): Promise<ExecResult>;
91
+ exec(command: string, args: readonly string[], options?: AgentRuntimeExecOptions): Promise<ExecResult>;
92
+ shell(command: string, options?: AgentRuntimeShellOptions): Promise<ExecResult>;
67
93
  readFile(path: string, options?: AgentRuntimeFileReadOptions): Promise<Uint8Array>;
68
94
  writeFile(path: string, content: Uint8Array, options?: AgentRuntimeFileWriteOptions): Promise<void>;
69
- listFiles(path: string, options?: {
70
- recursive?: boolean;
71
- }): Promise<string[]>;
95
+ listFiles(path: string, options?: AgentRuntimeListFilesOptions): Promise<string[]>;
72
96
  mkdir(path: string, options?: {
73
97
  recursive?: boolean;
74
98
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -1,4 +1,7 @@
1
1
  import { type ToolDefinition } from '@earendil-works/pi-coding-agent';
2
- import type { AgentRuntime } from './runtime.js';
3
- export declare function createRuntimeCodingTools(runtime: AgentRuntime): ToolDefinition<any, any, any>[];
2
+ import type { AgentRuntime, AgentRuntimeShellFlavor } from './runtime.js';
3
+ export interface RuntimeCodingToolsOptions {
4
+ readonly shellFlavor?: AgentRuntimeShellFlavor;
5
+ }
6
+ export declare function createRuntimeCodingTools(runtime: AgentRuntime, options?: RuntimeCodingToolsOptions): ToolDefinition<any, any, any>[];
4
7
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAyG/F"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAM1E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC;CAChD;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,yBAAyB,GAClC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAoKjC"}
package/dist/tools.js CHANGED
@@ -1,7 +1,9 @@
1
- import { join, sep } from 'node:path';
1
+ import { join } from 'node:path';
2
2
  import { createBashToolDefinition, createEditToolDefinition, createFindToolDefinition, createGrepToolDefinition, createLsToolDefinition, createReadToolDefinition, createWriteToolDefinition, } from '@earendil-works/pi-coding-agent';
3
+ import { fileListingGlobMatcher, normalizeFileListingPath } from './file-listing.js';
3
4
  const encoder = new TextEncoder();
4
- export function createRuntimeCodingTools(runtime) {
5
+ const MAX_RUNTIME_TOOL_OUTPUT_BYTES = 50 * 1024;
6
+ export function createRuntimeCodingTools(runtime, options) {
5
7
  const read = createReadToolDefinition(runtime.cwd, {
6
8
  operations: {
7
9
  access: async (path) => {
@@ -13,17 +15,27 @@ export function createRuntimeCodingTools(runtime) {
13
15
  const bash = createBashToolDefinition(runtime.cwd);
14
16
  bash.execute = async (_toolCallId, { command, timeout }, signal) => {
15
17
  const result = await runtime.shell(command, {
18
+ ...(options?.shellFlavor === undefined ? {} : { shellFlavor: options.shellFlavor }),
16
19
  ...(signal === undefined ? {} : { signal }),
17
20
  ...(timeout === undefined ? {} : { timeout: timeout * 1_000 }),
21
+ maxOutputBytes: MAX_RUNTIME_TOOL_OUTPUT_BYTES,
18
22
  });
19
23
  if (result.killed) {
20
24
  throw new Error(signal?.aborted ? 'Command aborted' : `Command timed out after ${timeout} seconds`);
21
25
  }
22
26
  const output = [result.stdout, result.stderr].filter(Boolean).join('\n') || '(no output)';
27
+ const truncationNotice = result.truncated
28
+ ? `\n\n[Output truncated at ${MAX_RUNTIME_TOOL_OUTPUT_BYTES} bytes]`
29
+ : '';
23
30
  if (result.code !== 0) {
24
- throw new Error(`${output}\n\nCommand exited with code ${result.code}`);
31
+ throw new Error(`${output}${truncationNotice}\n\nCommand exited with code ${result.code}`);
25
32
  }
26
- return { content: [{ type: 'text', text: output }], details: undefined };
33
+ return {
34
+ content: [{ type: 'text', text: `${output}${truncationNotice}` }],
35
+ details: result.truncated
36
+ ? { outputTruncated: true, maxOutputBytes: MAX_RUNTIME_TOOL_OUTPUT_BYTES }
37
+ : undefined,
38
+ };
27
39
  };
28
40
  const edit = createEditToolDefinition(runtime.cwd, {
29
41
  operations: {
@@ -55,7 +67,10 @@ export function createRuntimeCodingTools(runtime) {
55
67
  if (context && context > 0)
56
68
  args.push('--context', String(context));
57
69
  args.push('--', pattern, searchPath);
58
- const result = await runtime.exec('rg', args, signal === undefined ? undefined : { signal });
70
+ const result = await runtime.exec('rg', args, {
71
+ ...(signal === undefined ? {} : { signal }),
72
+ maxOutputBytes: MAX_RUNTIME_TOOL_OUTPUT_BYTES,
73
+ });
59
74
  if (result.killed)
60
75
  throw new Error('Operation aborted');
61
76
  if (result.code === 1) {
@@ -66,94 +81,121 @@ export function createRuntimeCodingTools(runtime) {
66
81
  }
67
82
  const lines = result.stdout.replace(/\n$/, '').split('\n');
68
83
  const limited = lines.slice(0, limit);
84
+ const notices = [];
85
+ if (lines.length > limit)
86
+ notices.push(`${limit} matches limit reached`);
87
+ if (result.truncated)
88
+ notices.push(`output truncated at ${MAX_RUNTIME_TOOL_OUTPUT_BYTES} bytes`);
89
+ const details = {
90
+ ...(lines.length > limit ? { matchLimitReached: limit } : {}),
91
+ ...(result.truncated
92
+ ? { outputTruncated: true, maxOutputBytes: MAX_RUNTIME_TOOL_OUTPUT_BYTES }
93
+ : {}),
94
+ };
95
+ const text = [
96
+ limited.join('\n'),
97
+ ...(notices.length === 0 ? [] : [`\n[${notices.join('; ')}]`]),
98
+ ].join('');
69
99
  return {
70
- content: [{ type: 'text', text: limited.join('\n') }],
71
- details: lines.length > limit ? { matchLimitReached: limit } : undefined,
100
+ content: [{ type: 'text', text }],
101
+ details: Object.keys(details).length > 0 ? details : undefined,
72
102
  };
73
103
  };
104
+ const createFindOperations = (signal) => ({
105
+ exists: async (path) => directoryExists(runtime, path, signal),
106
+ glob: async (pattern, cwd, { ignore, limit }) => {
107
+ const matcher = fileListingGlobMatcher(pattern);
108
+ const ignoreMatchers = (ignore ?? []).map(fileListingGlobMatcher);
109
+ return (await runtime.listFiles(cwd, {
110
+ recursive: true,
111
+ ignore,
112
+ limit,
113
+ pattern,
114
+ ...(signal === undefined ? {} : { signal }),
115
+ }))
116
+ .map(normalizeFileListingPath)
117
+ .filter((path) => matcher.test(path) && !ignoreMatchers.some((ignoreMatcher) => (ignoreMatcher.test(path))))
118
+ .slice(0, limit)
119
+ .map((path) => join(cwd, path));
120
+ },
121
+ });
74
122
  const find = createFindToolDefinition(runtime.cwd, {
75
- operations: {
76
- exists: async (path) => directoryExists(runtime, path),
77
- glob: async (pattern, cwd, { limit }) => {
78
- const matcher = globMatcher(pattern);
79
- return (await runtime.listFiles(cwd, { recursive: true }))
80
- .map(normalizeSeparators)
81
- .filter((path) => matcher.test(path))
82
- .slice(0, limit)
83
- .map((path) => join(cwd, path));
84
- },
123
+ operations: createFindOperations(),
124
+ });
125
+ find.execute = async (...args) => {
126
+ const [toolCallId, params, signal, onUpdate, context] = args;
127
+ const perCallFind = createFindToolDefinition(runtime.cwd, {
128
+ operations: createFindOperations(signal),
129
+ });
130
+ return perCallFind.execute(toolCallId, params, signal, onUpdate, context);
131
+ };
132
+ const createLsOperations = (signal, limit) => ({
133
+ exists: async (path) => pathExists(runtime, path, signal),
134
+ stat: async (path) => {
135
+ const isDirectory = await directoryExists(runtime, path, signal);
136
+ return { isDirectory: () => isDirectory };
85
137
  },
138
+ readdir: async (path) => (await runtime.listFiles(path, {
139
+ includeDirectories: true,
140
+ limit,
141
+ recursive: false,
142
+ ...(signal === undefined ? {} : { signal }),
143
+ })).map(normalizeFileListingPath),
86
144
  });
87
145
  const ls = createLsToolDefinition(runtime.cwd, {
88
- operations: {
89
- exists: async (path) => pathExists(runtime, path),
90
- stat: async (path) => {
91
- const isDirectory = await directoryExists(runtime, path);
92
- return { isDirectory: () => isDirectory };
93
- },
94
- readdir: async (path) => {
95
- const files = await runtime.listFiles(path, { recursive: true });
96
- return [...new Set(files.map(normalizeSeparators).map((file) => file.split('/')[0]))];
97
- },
98
- },
146
+ operations: createLsOperations(undefined, 501),
99
147
  });
148
+ ls.execute = async (...args) => {
149
+ const [toolCallId, params, signal, onUpdate, context] = args;
150
+ const effectiveLimit = boundedToolLimit(params.limit);
151
+ const perCallLs = createLsToolDefinition(runtime.cwd, {
152
+ operations: createLsOperations(signal, effectiveLimit === Number.MAX_SAFE_INTEGER
153
+ ? effectiveLimit
154
+ : effectiveLimit + 1),
155
+ });
156
+ return perCallLs.execute(toolCallId, params, signal, onUpdate, context);
157
+ };
100
158
  return [read, bash, edit, write, grep, find, ls];
101
159
  }
102
160
  async function validateGrepPath(runtime, path) {
103
- try {
104
- await runtime.listFiles(path);
105
- }
106
- catch {
107
- await runtime.readFile(path);
108
- }
109
- }
110
- async function pathExists(runtime, path) {
111
161
  if (await directoryExists(runtime, path))
162
+ return;
163
+ await runtime.readFile(path);
164
+ }
165
+ async function pathExists(runtime, path, signal) {
166
+ if (await directoryExists(runtime, path, signal))
112
167
  return true;
168
+ if (signal?.aborted)
169
+ throw new Error('Operation aborted');
113
170
  try {
114
171
  await runtime.readFile(path);
115
172
  return true;
116
173
  }
117
- catch {
174
+ catch (error) {
175
+ if (signal?.aborted)
176
+ throw error;
118
177
  return false;
119
178
  }
120
179
  }
121
- async function directoryExists(runtime, path) {
180
+ function boundedToolLimit(value) {
181
+ const limit = value ?? 500;
182
+ if (!Number.isSafeInteger(limit) || limit < 0) {
183
+ throw new Error('limit must be a non-negative safe integer');
184
+ }
185
+ return limit;
186
+ }
187
+ async function directoryExists(runtime, path, signal) {
122
188
  try {
123
- await runtime.listFiles(path);
189
+ await runtime.listFiles(path, {
190
+ limit: 0,
191
+ ...(signal === undefined ? {} : { signal }),
192
+ });
124
193
  return true;
125
194
  }
126
- catch {
195
+ catch (error) {
196
+ if (signal?.aborted)
197
+ throw error;
127
198
  return false;
128
199
  }
129
200
  }
130
- function normalizeSeparators(path) {
131
- return sep === '/' ? path : path.split(sep).join('/');
132
- }
133
- function globMatcher(pattern) {
134
- let expression = '^';
135
- for (let index = 0; index < pattern.length; index += 1) {
136
- const character = pattern[index];
137
- if (character === '*' && pattern[index + 1] === '*') {
138
- if (pattern[index + 2] === '/') {
139
- expression += '(?:.*/)?';
140
- index += 1;
141
- }
142
- else {
143
- expression += '.*';
144
- }
145
- index += 1;
146
- }
147
- else if (character === '*') {
148
- expression += '[^/]*';
149
- }
150
- else if (character === '?') {
151
- expression += '[^/]';
152
- }
153
- else {
154
- expression += character.replace(/[|\\{}()[\]^$+?.]/g, '\\$&');
155
- }
156
- }
157
- return new RegExp(`${expression}$`);
158
- }
159
201
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@felan-ai/agent-core",
3
- "version": "0.4.9",
3
+ "version": "0.4.11",
4
4
  "description": "Portable Felan agent contracts and composition",
5
5
  "license": "MIT",
6
6
  "type": "module",