@felan-ai/felan 0.13.8 → 0.14.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 (49) hide show
  1. package/README.md +9 -0
  2. package/dist/application.d.ts +1 -0
  3. package/dist/application.d.ts.map +1 -1
  4. package/dist/application.js +17 -0
  5. package/dist/application.js.map +1 -1
  6. package/dist/cli-main.d.ts +3 -0
  7. package/dist/cli-main.d.ts.map +1 -1
  8. package/dist/cli-main.js +119 -4
  9. package/dist/cli-main.js.map +1 -1
  10. package/dist/codex.d.ts +1 -1
  11. package/dist/codex.d.ts.map +1 -1
  12. package/dist/codex.js +3 -3
  13. package/dist/codex.js.map +1 -1
  14. package/dist/extension-settings.d.ts +11 -0
  15. package/dist/extension-settings.d.ts.map +1 -0
  16. package/dist/extension-settings.js +120 -0
  17. package/dist/extension-settings.js.map +1 -0
  18. package/dist/extensions.d.ts +2 -1
  19. package/dist/extensions.d.ts.map +1 -1
  20. package/dist/extensions.js +22 -3
  21. package/dist/extensions.js.map +1 -1
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/resume.d.ts +4 -0
  27. package/dist/resume.d.ts.map +1 -0
  28. package/dist/resume.js +37 -0
  29. package/dist/resume.js.map +1 -0
  30. package/dist/runtime.d.ts +3 -1
  31. package/dist/runtime.d.ts.map +1 -1
  32. package/dist/runtime.js +9 -2
  33. package/dist/runtime.js.map +1 -1
  34. package/dist/session-picker.d.ts +21 -0
  35. package/dist/session-picker.d.ts.map +1 -0
  36. package/dist/session-picker.js +222 -0
  37. package/dist/session-picker.js.map +1 -0
  38. package/dist/settings.d.ts +4 -0
  39. package/dist/settings.d.ts.map +1 -1
  40. package/dist/settings.js +24 -0
  41. package/dist/settings.js.map +1 -1
  42. package/dist/subagents/host.d.ts +2 -1
  43. package/dist/subagents/host.d.ts.map +1 -1
  44. package/dist/subagents/host.js +95 -27
  45. package/dist/subagents/host.js.map +1 -1
  46. package/dist/subagents/store.d.ts.map +1 -1
  47. package/dist/subagents/store.js +2 -1
  48. package/dist/subagents/store.js.map +1 -1
  49. package/package.json +18 -18
package/README.md CHANGED
@@ -40,6 +40,9 @@ felan --continue
40
40
  felan [options] [message]
41
41
 
42
42
  -c, --continue Continue the most recent session for this directory
43
+ -r, --resume Pick a session to resume
44
+ --session <id> Resume a specific session
45
+ --session-dir <dir> Session directory for --session
43
46
  --diagnostics Print runtime versions and configuration mode
44
47
  update Update a global npm installation of Felan
45
48
  -h, --help Show help
@@ -65,6 +68,12 @@ Invocations that start or continue an agent session launch the interactive TUI.
65
68
  headless modes used by subagents and extension adapters are not public CLI entry
66
69
  points.
67
70
 
71
+ `felan --resume` opens a selection-only session picker. Press Tab to switch
72
+ between the current folder and all local sessions, Ctrl+S to change sorting,
73
+ Ctrl+N to filter to named sessions, and Ctrl+P to toggle session paths. Escape
74
+ cancels without creating a session. `felan --continue` remains the quick path
75
+ for the most recent session in the current directory.
76
+
68
77
  `felan --diagnostics` reports Felan, Agent Core, Pi, and Node.js versions plus
69
78
  runtime and credential modes.
70
79
 
@@ -3,5 +3,6 @@ export interface RunLocalFelanOptions extends CreateLocalFelanRuntimeOptions {
3
3
  readonly initialMessage?: string;
4
4
  readonly verbose?: boolean;
5
5
  }
6
+ export declare function brandResumeHint(output: string): string;
6
7
  export declare function runLocalFelan(options?: RunLocalFelanOptions): Promise<void>;
7
8
  //# sourceMappingURL=application.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,cAAc,CAAC;AAMtB,MAAM,WAAW,oBAAqB,SAAQ,8BAA8B;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBrF"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,cAAc,CAAC;AAQtB,MAAM,WAAW,oBAAqB,SAAQ,8BAA8B;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBrF"}
@@ -5,6 +5,11 @@ import { installFelanStartupHeader } from './startup-header.js';
5
5
  import { createToolActivityRuntimeView } from './tool-activity/runtime-view.js';
6
6
  import { checkForFelanUpdate } from './update.js';
7
7
  import { CwdChangeRequested, installFelanCwdCommand } from './cwd-command.js';
8
+ import { installFelanSettingsCommand } from './extension-settings.js';
9
+ import { loadLocalExtensionConfigDefinitions } from './extensions.js';
10
+ export function brandResumeHint(output) {
11
+ return output.replace(/(To resume this session:(?:\x1b\[[0-9;]*m)*\s*)pi /, '$1felan ');
12
+ }
8
13
  export async function runLocalFelan(options = {}) {
9
14
  let nextOptions = options;
10
15
  while (true) {
@@ -27,11 +32,22 @@ async function runLocalFelanSession(options) {
27
32
  process.env.PI_CODING_AGENT_DIR = runtime.services.agentDir;
28
33
  process.env.PI_SKIP_VERSION_CHECK = '1';
29
34
  process.env.PI_TELEMETRY = '0';
35
+ const previousStdoutWrite = process.stdout.write;
36
+ process.stdout.write = ((chunk, ...args) => {
37
+ if (typeof chunk === 'string')
38
+ chunk = brandResumeHint(chunk);
39
+ return previousStdoutWrite.call(process.stdout, chunk, ...args);
40
+ });
30
41
  try {
31
42
  const mode = new InteractiveMode(createToolActivityRuntimeView(runtime), {
32
43
  ...(options.initialMessage === undefined ? {} : { initialMessage: options.initialMessage }),
33
44
  ...(options.verbose === undefined ? {} : { verbose: options.verbose }),
34
45
  });
46
+ installFelanSettingsCommand(mode, {
47
+ agentDir: runtime.services.agentDir,
48
+ settingsManager: runtime.services.settingsManager,
49
+ definitions: await loadLocalExtensionConfigDefinitions(),
50
+ });
35
51
  installFelanCwdCommand(mode, {
36
52
  getCwd: () => runtime.cwd,
37
53
  isIdle: () => runtime.session.isIdle,
@@ -93,6 +109,7 @@ async function runLocalFelanSession(options) {
93
109
  else {
94
110
  process.env.PI_TELEMETRY = previousPiTelemetry;
95
111
  }
112
+ process.stdout.write = previousStdoutWrite;
96
113
  }
97
114
  }
98
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
+ import type { SessionManager } from '@earendil-works/pi-coding-agent';
1
2
  import type { RunLocalFelanOptions } from './application.js';
2
3
  export interface CliDependencies {
3
4
  readonly writeOutput?: (line: string) => void;
4
5
  readonly writeError?: (line: string) => void;
5
6
  readonly launch?: (options: RunLocalFelanOptions) => Promise<void>;
7
+ readonly pickSession?: () => Promise<SessionManager | undefined>;
8
+ readonly openSession?: (sessionId: string, sessionDir?: string) => Promise<SessionManager>;
6
9
  readonly update?: () => Promise<number>;
7
10
  }
8
11
  export declare function runCli(args: readonly string[], dependencies?: CliDependencies): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"cli-main.d.ts","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACzC;AAYD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,YAAY,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+DzG"}
1
+ {"version":3,"file":"cli-main.d.ts","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAY7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACjE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACzC;AAgBD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,YAAY,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiKzG"}
package/dist/cli-main.js CHANGED
@@ -1,14 +1,22 @@
1
+ import { getExtensionConfigCliOptions, parseExtensionConfigCliValue, } from '@felan-ai/agent-core';
2
+ import { loadLocalExtensionConfigDefinitions, resolveBuiltinExtensionPackages } from './extensions.js';
3
+ import { createLocalSettingsManager, getFelanSettings } from './settings.js';
4
+ import { getLocalAgentDir } from './runtime.js';
1
5
  import { runFelanUpdate } from './update.js';
2
6
  import { FELAN_VERSION } from './version.js';
3
- const help = `Usage: felan [options] [message]
7
+ const help = (configOptions = []) => `Usage: felan [options] [message]
4
8
 
5
9
  Options:
6
10
  -c, --continue Continue the most recent session for this directory
11
+ -r, --resume Pick a session to resume
12
+ --session <id> Resume a specific session
13
+ --session-dir <dir> Session directory for --session
7
14
  --diagnostics Print local runtime versions and configuration mode
8
15
  update Update a global npm installation of Felan
9
16
  -h, --help Show this help
10
17
  -v, --version Print the Felan version
11
- --verbose Show verbose startup details`;
18
+ --verbose Show verbose startup details
19
+ ${configOptions.map((option) => ` --${option.name}${option.configField.type === 'boolean' ? '' : ` <${option.configField.values?.join('|') ?? option.configField.type}>`} ${option.configField.description}`).join('\n')}`;
12
20
  export async function runCli(args, dependencies = {}) {
13
21
  const writeOutput = dependencies.writeOutput ?? ((line) => console.log(line));
14
22
  const writeError = dependencies.writeError ?? ((line) => console.error(line));
@@ -20,10 +28,19 @@ export async function runCli(args, dependencies = {}) {
20
28
  return dependencies.update?.() ?? runFelanUpdate({ writeOutput, writeError });
21
29
  }
22
30
  let continueRecent = false;
31
+ let resume = false;
32
+ let sessionId;
33
+ let sessionDir;
23
34
  let verbose = false;
24
35
  const messageParts = [];
25
36
  let positionalOnly = false;
26
- for (const argument of args) {
37
+ const cliOverrides = new Map();
38
+ const startupSettings = createLocalSettingsManager(process.cwd(), getLocalAgentDir());
39
+ const enabledPackages = resolveBuiltinExtensionPackages(getFelanSettings(startupSettings).builtinExtensions);
40
+ const configOptions = getExtensionConfigCliOptions(await loadLocalExtensionConfigDefinitions(enabledPackages));
41
+ const configByName = new Map(configOptions.map((option) => [option.name, option]));
42
+ for (let index = 0; index < args.length; index += 1) {
43
+ const argument = args[index];
27
44
  if (positionalOnly) {
28
45
  messageParts.push(argument);
29
46
  continue;
@@ -34,11 +51,32 @@ export async function runCli(args, dependencies = {}) {
34
51
  else if (argument === '-c' || argument === '--continue') {
35
52
  continueRecent = true;
36
53
  }
54
+ else if (argument === '-r' || argument === '--resume') {
55
+ resume = true;
56
+ }
57
+ else if (argument === '--session') {
58
+ const value = args[index + 1];
59
+ if (value === undefined || value.startsWith('-')) {
60
+ writeError('--session requires an id');
61
+ return 1;
62
+ }
63
+ sessionId = value;
64
+ index += 1;
65
+ }
66
+ else if (argument === '--session-dir') {
67
+ const value = args[index + 1];
68
+ if (value === undefined || value.startsWith('-')) {
69
+ writeError('--session-dir requires a directory');
70
+ return 1;
71
+ }
72
+ sessionDir = value;
73
+ index += 1;
74
+ }
37
75
  else if (argument === '--verbose') {
38
76
  verbose = true;
39
77
  }
40
78
  else if (argument === '-h' || argument === '--help') {
41
- writeOutput(help);
79
+ writeOutput(help(configOptions));
42
80
  return 0;
43
81
  }
44
82
  else if (argument === '-v' || argument === '--version') {
@@ -58,6 +96,50 @@ export async function runCli(args, dependencies = {}) {
58
96
  writeOutput('Credentials: local');
59
97
  return 0;
60
98
  }
99
+ else if (argument.startsWith('--no-')) {
100
+ const option = configByName.get(argument.slice('--no-'.length));
101
+ if (!option || option.configField.type !== 'boolean') {
102
+ writeError(`Unknown option: ${argument}`);
103
+ return 1;
104
+ }
105
+ const values = cliOverrides.get(option.extensionId) ?? {};
106
+ values[option.field] = false;
107
+ cliOverrides.set(option.extensionId, values);
108
+ }
109
+ else if (argument.startsWith('--')) {
110
+ const equals = argument.indexOf('=');
111
+ const name = argument.slice(2, equals === -1 ? undefined : equals);
112
+ const option = configByName.get(name);
113
+ if (option) {
114
+ let raw;
115
+ if (equals !== -1)
116
+ raw = argument.slice(equals + 1);
117
+ else if (option.configField.type === 'boolean')
118
+ raw = true;
119
+ else {
120
+ const value = args[index + 1];
121
+ if (value === undefined || value.startsWith('-')) {
122
+ writeError(`--${name} requires a value`);
123
+ return 1;
124
+ }
125
+ raw = value;
126
+ index += 1;
127
+ }
128
+ try {
129
+ const values = cliOverrides.get(option.extensionId) ?? {};
130
+ values[option.field] = parseExtensionConfigCliValue(option, raw);
131
+ cliOverrides.set(option.extensionId, values);
132
+ }
133
+ catch (error) {
134
+ writeError(error instanceof Error ? error.message : String(error));
135
+ return 1;
136
+ }
137
+ }
138
+ else {
139
+ writeError(`Unknown option: ${argument}`);
140
+ return 1;
141
+ }
142
+ }
61
143
  else if (argument.startsWith('-')) {
62
144
  writeError(`Unknown option: ${argument}`);
63
145
  return 1;
@@ -66,6 +148,31 @@ export async function runCli(args, dependencies = {}) {
66
148
  messageParts.push(argument);
67
149
  }
68
150
  }
151
+ if (continueRecent && (resume || sessionId !== undefined)) {
152
+ writeError('Cannot combine --continue with --resume or --session');
153
+ return 1;
154
+ }
155
+ if (resume && sessionId !== undefined) {
156
+ writeError('Cannot combine --resume with --session');
157
+ return 1;
158
+ }
159
+ if (sessionDir !== undefined && sessionId === undefined) {
160
+ writeError('--session-dir requires --session');
161
+ return 1;
162
+ }
163
+ let sessionManager;
164
+ if (resume) {
165
+ const pickSession = dependencies.pickSession
166
+ ?? (await import('./resume.js')).selectLocalSessionManager;
167
+ sessionManager = await pickSession();
168
+ if (!sessionManager)
169
+ return 0;
170
+ }
171
+ else if (sessionId !== undefined) {
172
+ const openSession = dependencies.openSession
173
+ ?? (await import('./resume.js')).openLocalSessionManager;
174
+ sessionManager = await openSession(sessionId, sessionDir);
175
+ }
69
176
  const launch = dependencies.launch ?? (async (options) => {
70
177
  const { runLocalFelan } = await import('./application.js');
71
178
  await runLocalFelan(options);
@@ -73,7 +180,15 @@ export async function runCli(args, dependencies = {}) {
73
180
  await launch({
74
181
  continueRecent,
75
182
  verbose,
183
+ ...(sessionManager === undefined ? {} : { sessionManager }),
76
184
  ...(messageParts.length === 0 ? {} : { initialMessage: messageParts.join(' ') }),
185
+ ...(cliOverrides.size === 0 ? {} : {
186
+ extensionConfigOverrides: [...cliOverrides].map(([extensionId, values]) => ({
187
+ extensionId,
188
+ values,
189
+ source: 'CLI',
190
+ })),
191
+ }),
77
192
  });
78
193
  return 0;
79
194
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"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"}
package/dist/codex.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import type { AgentRuntime, StreamFunction } from '@felan-ai/agent-core';
2
- export declare function createLocalCodexStreamFunctionWrapper(extensionPackages: readonly string[], runtime: AgentRuntime, agentDir: string): Promise<((original: StreamFunction) => StreamFunction) | undefined>;
2
+ export declare function createLocalCodexStreamFunctionWrapper(extensionPackages: readonly string[], runtime: AgentRuntime, agentDir: string, config?: unknown): Promise<((original: StreamFunction) => StreamFunction) | undefined>;
3
3
  //# sourceMappingURL=codex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAOzE,wBAAsB,qCAAqC,CACzD,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,cAAc,KAAK,cAAc,CAAC,GAAG,SAAS,CAAC,CAGrE"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AASzE,wBAAsB,qCAAqC,CACzD,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,OAA8B,GACrC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,cAAc,KAAK,cAAc,CAAC,GAAG,SAAS,CAAC,CAGrE"}
package/dist/codex.js CHANGED
@@ -1,8 +1,8 @@
1
- import { createCodexStreamFunctionWrapper, readCodexConfig, } from '@felan-ai/ext-codex';
1
+ import { createCodexStreamFunctionWrapper, DEFAULT_CODEX_CONFIG, validateCodexConfig, } from '@felan-ai/ext-codex';
2
2
  import { builtinExtensionPackages } from './extensions.js';
3
- export async function createLocalCodexStreamFunctionWrapper(extensionPackages, runtime, agentDir) {
3
+ export async function createLocalCodexStreamFunctionWrapper(extensionPackages, runtime, agentDir, config = DEFAULT_CODEX_CONFIG) {
4
4
  if (!extensionPackages.includes(builtinExtensionPackages.codex))
5
5
  return undefined;
6
- return createCodexStreamFunctionWrapper(await readCodexConfig(runtime, agentDir));
6
+ return createCodexStreamFunctionWrapper(validateCodexConfig(config, `${agentDir}/settings.json`));
7
7
  }
8
8
  //# sourceMappingURL=codex.js.map
package/dist/codex.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gCAAgC,EAChC,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,iBAAoC,EACpC,OAAqB,EACrB,QAAgB;IAEhB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,OAAO,gCAAgC,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpF,CAAC"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gCAAgC,EAChC,oBAAoB,EACpB,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,iBAAoC,EACpC,OAAqB,EACrB,QAAgB,EAChB,SAAkB,oBAAoB;IAEtC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,OAAO,gCAAgC,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,QAAQ,gBAAgB,CAAC,CAAC,CAAC;AACpG,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ExtensionConfigDefinition, ExtensionConfigField, ExtensionConfigValue, SettingsManager } from '@felan-ai/agent-core';
2
+ export interface InstallFelanSettingsOptions {
3
+ readonly agentDir: string;
4
+ readonly settingsManager: SettingsManager;
5
+ readonly definitions: readonly ExtensionConfigDefinition[];
6
+ }
7
+ export declare function installFelanSettingsCommand(mode: object, options: InstallFelanSettingsOptions): void;
8
+ export declare function parseExtensionSettingValue(field: ExtensionConfigField, value: string): ExtensionConfigValue;
9
+ export declare function formatExtensionSettingDisplayValue(field: ExtensionConfigField, value: unknown): string;
10
+ export declare function formatExtensionSettingInputValue(field: ExtensionConfigField, value: unknown): string;
11
+ //# sourceMappingURL=extension-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-settings.d.ts","sourceRoot":"","sources":["../src/extension-settings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAiBnI,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;CAC5D;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,2BAA2B,GACnC,IAAI,CAyCN;AAiED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,MAAM,GACZ,oBAAoB,CAkBtB;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,OAAO,GACb,MAAM,CAGR;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,OAAO,GACb,MAAM,CAER"}
@@ -0,0 +1,120 @@
1
+ import { validateExtensionConfigValue } from '@felan-ai/agent-core';
2
+ import { getSettingsListTheme } from '@earendil-works/pi-coding-agent';
3
+ import { Container, Input, SettingsList, Spacer, Text } from '@earendil-works/pi-tui';
4
+ import { getFelanSettings, setExtensionConfigValue } from './settings.js';
5
+ export function installFelanSettingsCommand(mode, options) {
6
+ const internals = mode;
7
+ if (typeof internals.showSelector !== 'function' || typeof internals.showSettingsSelector !== 'function') {
8
+ return;
9
+ }
10
+ const nativeSettings = internals.showSettingsSelector.bind(mode);
11
+ internals.showSettingsSelector = () => {
12
+ internals.showSelector((done) => {
13
+ const items = [
14
+ {
15
+ id: 'native-settings',
16
+ label: 'Pi settings',
17
+ description: 'Open the standard Felan runtime settings selector',
18
+ currentValue: 'open',
19
+ submenu: () => {
20
+ nativeSettings();
21
+ done();
22
+ return new Container();
23
+ },
24
+ },
25
+ ...createItems(options),
26
+ ];
27
+ const list = new SettingsList(items, Math.min(items.length, 12), getSettingsListTheme(), async (id, value) => {
28
+ if (id === 'native-settings')
29
+ return;
30
+ const [extensionId, field] = id.split('.', 2);
31
+ if (!extensionId || !field)
32
+ return;
33
+ const definition = options.definitions.find((candidate) => candidate.id === extensionId);
34
+ const configField = definition?.fields[field];
35
+ if (!definition || !configField)
36
+ return;
37
+ const parsed = validateExtensionConfigValue(definition, field, parseExtensionSettingValue(configField, value), `setting ${extensionId}.${field}`);
38
+ await setExtensionConfigValue(options.agentDir, extensionId, field, parsed);
39
+ list.updateValue(id, formatExtensionSettingDisplayValue(configField, parsed));
40
+ }, done, { enableSearch: true });
41
+ return { component: list, focus: list };
42
+ });
43
+ };
44
+ }
45
+ function createItems(options) {
46
+ const settings = getFelanSettings(options.settingsManager);
47
+ const stored = settings.extensionConfig ?? {};
48
+ return options.definitions.flatMap((definition) => Object.entries(definition.fields).map(([field, config]) => {
49
+ const value = stored[definition.id]?.[field] ?? config.default;
50
+ const item = {
51
+ id: `${definition.id}.${field}`,
52
+ label: `${definition.title}: ${config.label ?? field}`,
53
+ description: config.description,
54
+ currentValue: formatExtensionSettingDisplayValue(config, value),
55
+ ...(config.values === undefined ? {} : { values: config.values.map(String) }),
56
+ };
57
+ if (config.type === 'string' || config.type === 'json') {
58
+ item.submenu = (_currentValue, done) => new StringSetting(formatExtensionSettingInputValue(config, value), (next) => {
59
+ validateExtensionConfigValue(definition, field, parseExtensionSettingValue(config, next), `setting ${definition.id}.${field}`);
60
+ done(next);
61
+ }, () => done());
62
+ }
63
+ return item;
64
+ }));
65
+ }
66
+ class StringSetting extends Container {
67
+ #input = new Input();
68
+ constructor(value, onSubmit, onCancel) {
69
+ super();
70
+ this.addChild(new Text('Enter a value:', 0, 0));
71
+ this.addChild(new Spacer(1));
72
+ this.#input.setValue(value);
73
+ this.#input.onSubmit = onSubmit;
74
+ this.#input.onEscape = onCancel;
75
+ this.addChild(this.#input);
76
+ }
77
+ handleInput(data) {
78
+ this.#input.handleInput(data);
79
+ }
80
+ }
81
+ export function parseExtensionSettingValue(field, value) {
82
+ if (field.sensitive === true && value.length === 0) {
83
+ return field.default;
84
+ }
85
+ if (field.type === 'boolean')
86
+ return value === 'true';
87
+ if (field.type === 'number') {
88
+ const parsed = Number(value);
89
+ if (!Number.isFinite(parsed))
90
+ throw new Error(`Setting value must be a number: ${value}`);
91
+ return parsed;
92
+ }
93
+ if (field.type === 'json') {
94
+ try {
95
+ return JSON.parse(value);
96
+ }
97
+ catch (error) {
98
+ throw new Error(`Setting value must be valid JSON: ${error instanceof Error ? error.message : String(error)}`);
99
+ }
100
+ }
101
+ return value;
102
+ }
103
+ export function formatExtensionSettingDisplayValue(field, value) {
104
+ if (field.sensitive === true)
105
+ return hasConfiguredValue(value) ? 'configured' : 'not set';
106
+ return field.type === 'json' ? JSON.stringify(value) ?? 'null' : String(value);
107
+ }
108
+ export function formatExtensionSettingInputValue(field, value) {
109
+ return field.sensitive === true ? '' : formatExtensionSettingDisplayValue(field, value);
110
+ }
111
+ function hasConfiguredValue(value) {
112
+ if (typeof value === 'string')
113
+ return value.length > 0;
114
+ if (Array.isArray(value))
115
+ return value.length > 0;
116
+ if (value && typeof value === 'object')
117
+ return Object.keys(value).length > 0;
118
+ return value !== undefined && value !== null && value !== false;
119
+ }
120
+ //# sourceMappingURL=extension-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-settings.js","sourceRoot":"","sources":["../src/extension-settings.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ExtensionPackageImporter, ModelRuntime } from '@felan-ai/agent-core';
1
+ import { type ExtensionConfigDefinition, type ExtensionPackageImporter, type ModelRuntime } from '@felan-ai/agent-core';
2
2
  import { type MemoryHost, type MemoryRole } from '@felan-ai/ext-memory';
3
3
  import { type OutputStyle } from '@felan-ai/ext-output-style';
4
4
  import { type SubagentHost } from '@felan-ai/ext-subagents';
@@ -29,6 +29,7 @@ export declare const builtinExtensionPackages: {
29
29
  readonly outputStyle: "@felan-ai/ext-output-style";
30
30
  };
31
31
  export declare const localExtensionPackages: ("@felan-ai/ext-subagents" | "@felan-ai/ext-ask-user" | "@felan-ai/ext-tasks" | "@felan-ai/ext-prewalk" | "@felan-ai/ext-mcp" | "@felan-ai/ext-felan-api" | "@felan-ai/ext-web-access" | "@felan-ai/ext-browser" | "@felan-ai/ext-background-bash" | "@felan-ai/ext-codex" | "@felan-ai/ext-rtk-optimizer" | "@felan-ai/ext-markitdown" | "@felan-ai/ext-context" | "@felan-ai/ext-memory" | "@felan-ai/ext-powerline" | "@felan-ai/ext-output-style")[];
32
+ export declare function loadLocalExtensionConfigDefinitions(packages?: readonly string[]): Promise<readonly ExtensionConfigDefinition[]>;
32
33
  export type BuiltinExtensionName = keyof typeof builtinExtensionPackages;
33
34
  export type BuiltinExtensionSettings = Partial<Record<BuiltinExtensionName, boolean>>;
34
35
  export declare function resolveBuiltinExtensionPackages(settings: unknown): readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGnF,OAAO,EAAyB,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAChE,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,eAAO,MAAM,wBAAwB,4BAA4B,CAAC;AAClE,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AACnE,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AACnE,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAC7D,eAAO,MAAM,2BAA2B,+BAA+B,CAAC;AACxE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;CAkB3B,CAAC;AACX,eAAO,MAAM,sBAAsB,0bAA0C,CAAC;AAE9E,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,wBAAwB,CAAC;AACzE,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAC;AAItF,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAYpF;AAED,eAAO,MAAM,oBAAoB,EAAE,wBAKlC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,YAAY,GAAG,0BAA0B,EAC/C,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,wBAA+C,EAChE,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAClC,aAAa,CAAC,EAAE,2BAA2B,EAC3C,WAAW,GAAE,WAAkC,GAC9C,wBAAwB,CA6C1B"}
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAyB,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAChE,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,eAAO,MAAM,wBAAwB,4BAA4B,CAAC;AAClE,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AACnE,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AACnE,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAC7D,eAAO,MAAM,2BAA2B,+BAA+B,CAAC;AACxE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;CAkB3B,CAAC;AACX,eAAO,MAAM,sBAAsB,0bAA0C,CAAC;AAE9E,wBAAsB,mCAAmC,CACvD,QAAQ,GAAE,SAAS,MAAM,EAA2B,GACnD,OAAO,CAAC,SAAS,yBAAyB,EAAE,CAAC,CAY/C;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,wBAAwB,CAAC;AACzE,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAC;AAItF,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAYpF;AAED,eAAO,MAAM,oBAAoB,EAAE,wBAKlC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,YAAY,GAAG,0BAA0B,EAC/C,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,wBAA+C,EAChE,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAClC,aAAa,CAAC,EAAE,2BAA2B,EAC3C,WAAW,GAAE,WAAkC,GAC9C,wBAAwB,CAkD1B"}
@@ -1,8 +1,9 @@
1
+ import { associateExtensionConfig, getExtensionConfigDefinition, } from '@felan-ai/agent-core';
1
2
  import { createAskUserExtension } from '@felan-ai/ext-ask-user';
2
3
  import { createTuiAskUserHost } from '@felan-ai/ext-ask-user/tui';
3
4
  import { createMemoryExtension } from '@felan-ai/ext-memory';
4
- import { createOutputStyleExtension, DEFAULT_OUTPUT_STYLE, } from '@felan-ai/ext-output-style';
5
- import { createPowerlineExtension } from '@felan-ai/ext-powerline';
5
+ import { createOutputStyleExtension, DEFAULT_OUTPUT_STYLE, OUTPUT_STYLE_CONFIG, } from '@felan-ai/ext-output-style';
6
+ import { createPowerlineExtension, POWERLINE_CONFIG } from '@felan-ai/ext-powerline';
6
7
  import { createSubagentsExtension, } from '@felan-ai/ext-subagents';
7
8
  import { createLocalMcpExtension } from './mcp/index.js';
8
9
  import { createLocalSubscriptionUsageHost } from './powerline.js';
@@ -34,6 +35,21 @@ export const builtinExtensionPackages = {
34
35
  outputStyle: outputStyleExtensionPackage,
35
36
  };
36
37
  export const localExtensionPackages = Object.values(builtinExtensionPackages);
38
+ export async function loadLocalExtensionConfigDefinitions(packages = localExtensionPackages) {
39
+ const definitions = [];
40
+ for (const packageName of packages) {
41
+ const imported = await importLocalExtension(packageName);
42
+ const extension = (typeof imported === 'object' && imported !== null)
43
+ ? Reflect.get(imported, 'default')
44
+ : undefined;
45
+ if (typeof extension !== 'function')
46
+ continue;
47
+ const definition = getExtensionConfigDefinition(extension);
48
+ if (definition)
49
+ definitions.push(definition);
50
+ }
51
+ return definitions;
52
+ }
37
53
  const localExtensionPackageSet = new Set(localExtensionPackages);
38
54
  export function resolveBuiltinExtensionPackages(settings) {
39
55
  if (settings === undefined)
@@ -62,6 +78,7 @@ export function createLocalExtensionImporter(host, modelRuntime, importExtension
62
78
  const powerline = createPowerlineExtension(createLocalSubscriptionUsageHost(modelRuntime), {
63
79
  footerRows: (width) => agentRailRenderer?.(width) ?? [],
64
80
  });
81
+ associateExtensionConfig(powerline, POWERLINE_CONFIG);
65
82
  return async (packageName) => {
66
83
  if (packageName === askUserExtensionPackage) {
67
84
  return { default: createAskUserExtension(createTuiAskUserHost()) };
@@ -99,7 +116,9 @@ export function createLocalExtensionImporter(host, modelRuntime, importExtension
99
116
  return { default: createMemoryExtension(memoryBinding) };
100
117
  }
101
118
  if (packageName === outputStyleExtensionPackage) {
102
- return { default: createOutputStyleExtension(outputStyle) };
119
+ const extension = ((pi) => (createOutputStyleExtension(pi.config?.style ?? outputStyle)(pi)));
120
+ associateExtensionConfig(extension, OUTPUT_STYLE_CONFIG);
121
+ return { default: extension };
103
122
  }
104
123
  return importExtension(packageName);
105
124
  };
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { runLocalFelan } from './application.js';
2
+ export { openLocalSessionManager, selectLocalSessionManager } from './resume.js';
2
3
  export type { RunLocalFelanOptions } from './application.js';
3
4
  export { runCli } from './cli-main.js';
4
5
  export type { CliDependencies } from './cli-main.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,8BAA8B,EAC9B,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,8BAA8B,EAC9B,uCAAuC,EACvC,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,YAAY,EACV,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACV,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,mCAAmC,EACnC,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACjF,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,8BAA8B,EAC9B,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,8BAA8B,EAC9B,uCAAuC,EACvC,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,YAAY,EACV,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACV,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,mCAAmC,EACnC,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}