@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.
- package/README.md +9 -0
- package/dist/application.d.ts +1 -0
- package/dist/application.d.ts.map +1 -1
- package/dist/application.js +17 -0
- package/dist/application.js.map +1 -1
- package/dist/cli-main.d.ts +3 -0
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli-main.js +119 -4
- package/dist/cli-main.js.map +1 -1
- package/dist/codex.d.ts +1 -1
- package/dist/codex.d.ts.map +1 -1
- package/dist/codex.js +3 -3
- package/dist/codex.js.map +1 -1
- package/dist/extension-settings.d.ts +11 -0
- package/dist/extension-settings.d.ts.map +1 -0
- package/dist/extension-settings.js +120 -0
- package/dist/extension-settings.js.map +1 -0
- package/dist/extensions.d.ts +2 -1
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +22 -3
- package/dist/extensions.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/resume.d.ts +4 -0
- package/dist/resume.d.ts.map +1 -0
- package/dist/resume.js +37 -0
- package/dist/resume.js.map +1 -0
- package/dist/runtime.d.ts +3 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +9 -2
- package/dist/runtime.js.map +1 -1
- package/dist/session-picker.d.ts +21 -0
- package/dist/session-picker.d.ts.map +1 -0
- package/dist/session-picker.js +222 -0
- package/dist/session-picker.js.map +1 -0
- package/dist/settings.d.ts +4 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +24 -0
- package/dist/settings.js.map +1 -1
- package/dist/subagents/host.d.ts +2 -1
- package/dist/subagents/host.d.ts.map +1 -1
- package/dist/subagents/host.js +95 -27
- package/dist/subagents/host.js.map +1 -1
- package/dist/subagents/store.d.ts.map +1 -1
- package/dist/subagents/store.js +2 -1
- package/dist/subagents/store.js.map +1 -1
- 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
|
|
package/dist/application.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/application.js
CHANGED
|
@@ -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
|
}
|
package/dist/application.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EACL,uBAAuB,GAExB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
|
package/dist/cli-main.d.ts
CHANGED
|
@@ -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>;
|
package/dist/cli-main.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
}
|
package/dist/cli-main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"
|
|
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
|
package/dist/codex.d.ts.map
CHANGED
|
@@ -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;
|
|
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,
|
|
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(
|
|
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,
|
|
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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"}
|
package/dist/extensions.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
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[];
|
package/dist/extensions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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"}
|
package/dist/extensions.js
CHANGED
|
@@ -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
|
-
|
|
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
|
};
|
package/dist/extensions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"
|
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|