wave-code 0.6.5 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/commands/plugin/disable.d.ts.map +1 -1
- package/dist/commands/plugin/disable.js +3 -10
- package/dist/commands/plugin/enable.d.ts.map +1 -1
- package/dist/commands/plugin/enable.js +3 -10
- package/dist/commands/plugin/install.d.ts.map +1 -1
- package/dist/commands/plugin/install.js +4 -11
- package/dist/commands/plugin/list.d.ts.map +1 -1
- package/dist/commands/plugin/list.js +5 -39
- package/dist/commands/plugin/marketplace.js +9 -9
- package/dist/commands/plugin/uninstall.d.ts.map +1 -1
- package/dist/commands/plugin/uninstall.js +4 -17
- package/dist/commands/plugin/update.js +3 -3
- package/dist/components/App.d.ts +1 -0
- package/dist/components/App.d.ts.map +1 -1
- package/dist/components/App.js +4 -4
- package/dist/components/BackgroundTaskManager.d.ts.map +1 -1
- package/dist/components/BackgroundTaskManager.js +34 -18
- package/dist/components/ChatInterface.d.ts.map +1 -1
- package/dist/components/ChatInterface.js +28 -15
- package/dist/components/ConfirmationDetails.d.ts +1 -0
- package/dist/components/ConfirmationDetails.d.ts.map +1 -1
- package/dist/components/ConfirmationDetails.js +7 -14
- package/dist/components/ConfirmationSelector.d.ts +1 -0
- package/dist/components/ConfirmationSelector.d.ts.map +1 -1
- package/dist/components/ConfirmationSelector.js +164 -117
- package/dist/components/DiffDisplay.d.ts +1 -0
- package/dist/components/DiffDisplay.d.ts.map +1 -1
- package/dist/components/DiffDisplay.js +94 -36
- package/dist/components/HistorySearch.d.ts.map +1 -1
- package/dist/components/HistorySearch.js +26 -20
- package/dist/components/Markdown.d.ts.map +1 -1
- package/dist/components/Markdown.js +3 -1
- package/dist/components/McpManager.d.ts.map +1 -1
- package/dist/components/McpManager.js +49 -52
- package/dist/components/MessageBlockItem.d.ts +9 -0
- package/dist/components/MessageBlockItem.d.ts.map +1 -0
- package/dist/components/MessageBlockItem.js +11 -0
- package/dist/components/MessageList.d.ts +2 -4
- package/dist/components/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList.js +28 -23
- package/dist/components/PluginDetail.d.ts.map +1 -1
- package/dist/components/PluginDetail.js +19 -22
- package/dist/components/SessionSelector.d.ts.map +1 -1
- package/dist/components/SessionSelector.js +8 -5
- package/dist/components/TaskList.d.ts.map +1 -1
- package/dist/components/TaskList.js +2 -5
- package/dist/components/ToolDisplay.d.ts.map +1 -1
- package/dist/components/ToolDisplay.js +1 -1
- package/dist/contexts/useChat.d.ts +1 -0
- package/dist/contexts/useChat.d.ts.map +1 -1
- package/dist/contexts/useChat.js +20 -3
- package/dist/hooks/usePluginManager.d.ts.map +1 -1
- package/dist/hooks/usePluginManager.js +20 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -0
- package/dist/print-cli.d.ts +1 -0
- package/dist/print-cli.d.ts.map +1 -1
- package/dist/print-cli.js +2 -1
- package/dist/utils/highlightUtils.d.ts +2 -0
- package/dist/utils/highlightUtils.d.ts.map +1 -0
- package/dist/utils/highlightUtils.js +69 -0
- package/dist/utils/toolParameterTransforms.d.ts +2 -6
- package/dist/utils/toolParameterTransforms.d.ts.map +1 -1
- package/dist/utils/toolParameterTransforms.js +10 -14
- package/package.json +4 -2
- package/src/cli.tsx +3 -0
- package/src/commands/plugin/disable.ts +3 -17
- package/src/commands/plugin/enable.ts +3 -17
- package/src/commands/plugin/install.ts +4 -18
- package/src/commands/plugin/list.ts +5 -55
- package/src/commands/plugin/marketplace.ts +9 -9
- package/src/commands/plugin/uninstall.ts +4 -26
- package/src/commands/plugin/update.ts +3 -3
- package/src/components/App.tsx +10 -2
- package/src/components/BackgroundTaskManager.tsx +69 -44
- package/src/components/ChatInterface.tsx +35 -23
- package/src/components/ConfirmationDetails.tsx +13 -15
- package/src/components/ConfirmationSelector.tsx +207 -128
- package/src/components/DiffDisplay.tsx +164 -75
- package/src/components/HistorySearch.tsx +31 -25
- package/src/components/Markdown.tsx +3 -1
- package/src/components/McpManager.tsx +51 -59
- package/src/components/MessageBlockItem.tsx +83 -0
- package/src/components/MessageList.tsx +55 -52
- package/src/components/PluginDetail.tsx +30 -31
- package/src/components/SessionSelector.tsx +8 -5
- package/src/components/TaskList.tsx +2 -5
- package/src/components/ToolDisplay.tsx +5 -1
- package/src/contexts/useChat.tsx +22 -2
- package/src/hooks/usePluginManager.ts +21 -57
- package/src/index.ts +17 -0
- package/src/print-cli.ts +3 -0
- package/src/utils/highlightUtils.ts +76 -0
- package/src/utils/toolParameterTransforms.ts +11 -20
- package/dist/components/MessageItem.d.ts +0 -8
- package/dist/components/MessageItem.d.ts.map +0 -1
- package/dist/components/MessageItem.js +0 -13
- package/src/components/MessageItem.tsx +0 -81
package/dist/cli.d.ts
CHANGED
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFjE"}
|
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import { render } from "ink";
|
|
|
3
3
|
import { App } from "./components/App.js";
|
|
4
4
|
import { cleanupLogs } from "./utils/logger.js";
|
|
5
5
|
export async function startCli(options) {
|
|
6
|
-
const { restoreSessionId, continueLastSession, bypassPermissions, pluginDirs, } = options;
|
|
6
|
+
const { restoreSessionId, continueLastSession, bypassPermissions, pluginDirs, tools, } = options;
|
|
7
7
|
// Continue with ink-based UI for normal mode
|
|
8
8
|
// Global cleanup tracker
|
|
9
9
|
let isCleaningUp = false;
|
|
@@ -45,7 +45,7 @@ export async function startCli(options) {
|
|
|
45
45
|
cleanup();
|
|
46
46
|
});
|
|
47
47
|
// Render the application
|
|
48
|
-
const { unmount } = render(_jsx(App, { restoreSessionId: restoreSessionId, continueLastSession: continueLastSession, bypassPermissions: bypassPermissions, pluginDirs: pluginDirs }));
|
|
48
|
+
const { unmount } = render(_jsx(App, { restoreSessionId: restoreSessionId, continueLastSession: continueLastSession, bypassPermissions: bypassPermissions, pluginDirs: pluginDirs, tools: tools }));
|
|
49
49
|
// Store unmount function for cleanup when process exits normally
|
|
50
50
|
process.on("exit", () => {
|
|
51
51
|
if (!appUnmounted) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/disable.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/disable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,iBAeA"}
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PluginCore } from "wave-agent-sdk";
|
|
2
2
|
export async function disablePluginCommand(argv) {
|
|
3
3
|
const workdir = process.cwd();
|
|
4
|
-
const
|
|
5
|
-
const pluginManager = new PluginManager({ workdir });
|
|
6
|
-
const scopeManager = new PluginScopeManager({
|
|
7
|
-
workdir,
|
|
8
|
-
configurationService,
|
|
9
|
-
pluginManager,
|
|
10
|
-
});
|
|
11
|
-
const scope = argv.scope || scopeManager.findPluginScope(argv.plugin) || "user";
|
|
4
|
+
const pluginCore = new PluginCore(workdir);
|
|
12
5
|
try {
|
|
13
|
-
await
|
|
6
|
+
const scope = await pluginCore.disablePlugin(argv.plugin, argv.scope);
|
|
14
7
|
console.log(`Successfully disabled plugin: ${argv.plugin} in ${scope} scope`);
|
|
15
8
|
process.exit(0);
|
|
16
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enable.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/enable.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"enable.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/enable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,iBAeA"}
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PluginCore } from "wave-agent-sdk";
|
|
2
2
|
export async function enablePluginCommand(argv) {
|
|
3
3
|
const workdir = process.cwd();
|
|
4
|
-
const
|
|
5
|
-
const pluginManager = new PluginManager({ workdir });
|
|
6
|
-
const scopeManager = new PluginScopeManager({
|
|
7
|
-
workdir,
|
|
8
|
-
configurationService,
|
|
9
|
-
pluginManager,
|
|
10
|
-
});
|
|
11
|
-
const scope = argv.scope || scopeManager.findPluginScope(argv.plugin) || "user";
|
|
4
|
+
const pluginCore = new PluginCore(workdir);
|
|
12
5
|
try {
|
|
13
|
-
await
|
|
6
|
+
const scope = await pluginCore.enablePlugin(argv.plugin, argv.scope);
|
|
14
7
|
console.log(`Successfully enabled plugin: ${argv.plugin} in ${scope} scope`);
|
|
15
8
|
process.exit(0);
|
|
16
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/install.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,iBAuBA"}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PluginCore } from "wave-agent-sdk";
|
|
2
2
|
export async function installPluginCommand(argv) {
|
|
3
|
-
const marketplaceService = new MarketplaceService();
|
|
4
3
|
const workdir = process.cwd();
|
|
4
|
+
const pluginCore = new PluginCore(workdir);
|
|
5
5
|
try {
|
|
6
|
-
const installed = await
|
|
6
|
+
const installed = await pluginCore.installPlugin(argv.plugin);
|
|
7
7
|
console.log(`Successfully installed plugin: ${installed.name} v${installed.version} from ${installed.marketplace}`);
|
|
8
8
|
console.log(`Cache path: ${installed.cachePath}`);
|
|
9
9
|
if (argv.scope) {
|
|
10
|
-
const configurationService = new ConfigurationService();
|
|
11
|
-
const pluginManager = new PluginManager({ workdir });
|
|
12
|
-
const scopeManager = new PluginScopeManager({
|
|
13
|
-
workdir,
|
|
14
|
-
configurationService,
|
|
15
|
-
pluginManager,
|
|
16
|
-
});
|
|
17
10
|
const pluginId = `${installed.name}@${installed.marketplace}`;
|
|
18
|
-
await
|
|
11
|
+
await pluginCore.enablePlugin(pluginId, argv.scope);
|
|
19
12
|
console.log(`Plugin ${pluginId} enabled in ${argv.scope} scope`);
|
|
20
13
|
}
|
|
21
14
|
process.exit(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/list.ts"],"names":[],"mappings":"AAEA,wBAAsB,kBAAkB,kBA6BvC"}
|
|
@@ -1,48 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PluginCore } from "wave-agent-sdk";
|
|
2
2
|
export async function listPluginsCommand() {
|
|
3
|
-
const
|
|
4
|
-
const marketplaceService = new MarketplaceService();
|
|
5
|
-
const workdir = process.cwd();
|
|
6
|
-
const pluginManager = new PluginManager({
|
|
7
|
-
workdir,
|
|
8
|
-
configurationService,
|
|
9
|
-
});
|
|
10
|
-
const pluginScopeManager = new PluginScopeManager({
|
|
11
|
-
workdir,
|
|
12
|
-
configurationService,
|
|
13
|
-
pluginManager,
|
|
14
|
-
});
|
|
3
|
+
const pluginCore = new PluginCore(process.cwd());
|
|
15
4
|
try {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
const mergedEnabled = configurationService.getMergedEnabledPlugins(workdir);
|
|
19
|
-
// Collect all plugins from all marketplaces
|
|
20
|
-
const allMarketplacePlugins = [];
|
|
21
|
-
for (const m of marketplaces) {
|
|
22
|
-
try {
|
|
23
|
-
const manifest = await marketplaceService.loadMarketplaceManifest(marketplaceService.getMarketplacePath(m));
|
|
24
|
-
manifest.plugins.forEach((p) => {
|
|
25
|
-
const pluginId = `${p.name}@${m.name}`;
|
|
26
|
-
const installed = installedPlugins.plugins.find((ip) => ip.name === p.name && ip.marketplace === m.name);
|
|
27
|
-
allMarketplacePlugins.push({
|
|
28
|
-
name: p.name,
|
|
29
|
-
marketplace: m.name,
|
|
30
|
-
installed: !!installed,
|
|
31
|
-
version: installed?.version,
|
|
32
|
-
scope: pluginScopeManager.findPluginScope(pluginId) || undefined,
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
catch {
|
|
37
|
-
// Skip marketplaces that fail to load
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (allMarketplacePlugins.length === 0) {
|
|
5
|
+
const { plugins, mergedEnabled } = await pluginCore.listPlugins();
|
|
6
|
+
if (plugins.length === 0) {
|
|
41
7
|
console.log("No plugins found in registered marketplaces.");
|
|
42
8
|
}
|
|
43
9
|
else {
|
|
44
10
|
console.log("Plugins:");
|
|
45
|
-
|
|
11
|
+
plugins.forEach((p) => {
|
|
46
12
|
const pluginId = `${p.name}@${p.marketplace}`;
|
|
47
13
|
const isEnabled = mergedEnabled[pluginId] !== false;
|
|
48
14
|
const status = p.installed
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PluginCore } from "wave-agent-sdk";
|
|
2
2
|
export async function addMarketplaceCommand(argv) {
|
|
3
|
-
const
|
|
3
|
+
const pluginCore = new PluginCore(process.cwd());
|
|
4
4
|
try {
|
|
5
|
-
const marketplace = await
|
|
5
|
+
const marketplace = await pluginCore.addMarketplace(argv.input);
|
|
6
6
|
const source = marketplace.source;
|
|
7
7
|
let sourceInfo = "";
|
|
8
8
|
if (source.source === "directory") {
|
|
@@ -24,9 +24,9 @@ export async function addMarketplaceCommand(argv) {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
export async function listMarketplacesCommand() {
|
|
27
|
-
const
|
|
27
|
+
const pluginCore = new PluginCore(process.cwd());
|
|
28
28
|
try {
|
|
29
|
-
const marketplaces = await
|
|
29
|
+
const marketplaces = await pluginCore.listMarketplaces();
|
|
30
30
|
if (marketplaces.length === 0) {
|
|
31
31
|
console.log("No marketplaces registered.");
|
|
32
32
|
}
|
|
@@ -57,9 +57,9 @@ export async function listMarketplacesCommand() {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
export async function removeMarketplaceCommand(argv) {
|
|
60
|
-
const
|
|
60
|
+
const pluginCore = new PluginCore(process.cwd());
|
|
61
61
|
try {
|
|
62
|
-
await
|
|
62
|
+
await pluginCore.removeMarketplace(argv.name);
|
|
63
63
|
console.log(`Successfully removed marketplace: ${argv.name}`);
|
|
64
64
|
process.exit(0);
|
|
65
65
|
}
|
|
@@ -70,12 +70,12 @@ export async function removeMarketplaceCommand(argv) {
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
export async function updateMarketplaceCommand(argv) {
|
|
73
|
-
const
|
|
73
|
+
const pluginCore = new PluginCore(process.cwd());
|
|
74
74
|
try {
|
|
75
75
|
console.log(argv.name
|
|
76
76
|
? `Updating marketplace: ${argv.name}...`
|
|
77
77
|
: "Updating all marketplaces...");
|
|
78
|
-
await
|
|
78
|
+
await pluginCore.updateMarketplace(argv.name);
|
|
79
79
|
console.log("Successfully updated.");
|
|
80
80
|
process.exit(0);
|
|
81
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/uninstall.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/uninstall.ts"],"names":[],"mappings":"AAEA,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,iBAcpE"}
|
|
@@ -1,24 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PluginCore } from "wave-agent-sdk";
|
|
2
2
|
export async function uninstallPluginCommand(argv) {
|
|
3
|
-
const marketplaceService = new MarketplaceService();
|
|
4
3
|
const workdir = process.cwd();
|
|
4
|
+
const pluginCore = new PluginCore(workdir);
|
|
5
5
|
try {
|
|
6
|
-
await
|
|
6
|
+
await pluginCore.uninstallPlugin(argv.plugin);
|
|
7
7
|
console.log(`Successfully uninstalled plugin: ${argv.plugin}`);
|
|
8
|
-
|
|
9
|
-
const pluginManager = new PluginManager({ workdir });
|
|
10
|
-
const scopeManager = new PluginScopeManager({
|
|
11
|
-
workdir,
|
|
12
|
-
configurationService,
|
|
13
|
-
pluginManager,
|
|
14
|
-
});
|
|
15
|
-
try {
|
|
16
|
-
await scopeManager.removePluginFromAllScopes(argv.plugin);
|
|
17
|
-
console.log(`Cleaned up plugin configuration from all scopes`);
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
20
|
-
console.warn(`Warning: Could not clean up all plugin configurations: ${error instanceof Error ? error.message : String(error)}`);
|
|
21
|
-
}
|
|
8
|
+
console.log(`Cleaned up plugin configuration from all scopes`);
|
|
22
9
|
process.exit(0);
|
|
23
10
|
}
|
|
24
11
|
catch (error) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PluginCore } from "wave-agent-sdk";
|
|
2
2
|
export async function updatePluginCommand(argv) {
|
|
3
|
-
const
|
|
3
|
+
const pluginCore = new PluginCore(process.cwd());
|
|
4
4
|
try {
|
|
5
|
-
const updated = await
|
|
5
|
+
const updated = await pluginCore.updatePlugin(argv.plugin);
|
|
6
6
|
console.log(`Successfully updated plugin: ${updated.name} v${updated.version} from ${updated.marketplace}`);
|
|
7
7
|
console.log(`Cache path: ${updated.cachePath}`);
|
|
8
8
|
process.exit(0);
|
package/dist/components/App.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAM3D,UAAU,QAAQ;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAM3D,UAAU,QAAQ;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAiED,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAmBlC,CAAC"}
|
package/dist/components/App.js
CHANGED
|
@@ -4,8 +4,8 @@ import { useStdout } from "ink";
|
|
|
4
4
|
import { ChatInterface } from "./ChatInterface.js";
|
|
5
5
|
import { ChatProvider, useChat } from "../contexts/useChat.js";
|
|
6
6
|
import { AppProvider } from "../contexts/useAppConfig.js";
|
|
7
|
-
const AppWithProviders = ({ bypassPermissions, pluginDirs }) => {
|
|
8
|
-
return (_jsx(ChatProvider, { bypassPermissions: bypassPermissions, pluginDirs: pluginDirs, children: _jsx(ChatInterfaceWithRemount, {}) }));
|
|
7
|
+
const AppWithProviders = ({ bypassPermissions, pluginDirs, tools }) => {
|
|
8
|
+
return (_jsx(ChatProvider, { bypassPermissions: bypassPermissions, pluginDirs: pluginDirs, tools: tools, children: _jsx(ChatInterfaceWithRemount, {}) }));
|
|
9
9
|
};
|
|
10
10
|
const ChatInterfaceWithRemount = () => {
|
|
11
11
|
const { stdout } = useStdout();
|
|
@@ -43,6 +43,6 @@ const ChatInterfaceWithRemount = () => {
|
|
|
43
43
|
]);
|
|
44
44
|
return _jsx(ChatInterface, {}, remountKey);
|
|
45
45
|
};
|
|
46
|
-
export const App = ({ restoreSessionId, continueLastSession, bypassPermissions, pluginDirs, }) => {
|
|
47
|
-
return (_jsx(AppProvider, { restoreSessionId: restoreSessionId, continueLastSession: continueLastSession, children: _jsx(AppWithProviders, { bypassPermissions: bypassPermissions, pluginDirs: pluginDirs }) }));
|
|
46
|
+
export const App = ({ restoreSessionId, continueLastSession, bypassPermissions, pluginDirs, tools, }) => {
|
|
47
|
+
return (_jsx(AppProvider, { restoreSessionId: restoreSessionId, continueLastSession: continueLastSession, children: _jsx(AppWithProviders, { bypassPermissions: bypassPermissions, pluginDirs: pluginDirs, tools: tools }) }));
|
|
48
48
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackgroundTaskManager.d.ts","sourceRoot":"","sources":["../../src/components/BackgroundTaskManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAcnD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"BackgroundTaskManager.d.ts","sourceRoot":"","sources":["../../src/components/BackgroundTaskManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAcnD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAsUtE,CAAC"}
|
|
@@ -6,6 +6,7 @@ export const BackgroundTaskManager = ({ onCancel, }) => {
|
|
|
6
6
|
const { backgroundTasks, getBackgroundTaskOutput, stopBackgroundTask } = useChat();
|
|
7
7
|
const [tasks, setTasks] = useState([]);
|
|
8
8
|
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
9
|
+
const MAX_VISIBLE_ITEMS = 3;
|
|
9
10
|
const [viewMode, setViewMode] = useState("list");
|
|
10
11
|
const [detailTaskId, setDetailTaskId] = useState(null);
|
|
11
12
|
const [detailOutput, setDetailOutput] = useState(null);
|
|
@@ -43,15 +44,21 @@ export const BackgroundTaskManager = ({ onCancel, }) => {
|
|
|
43
44
|
const stopTask = (taskId) => {
|
|
44
45
|
stopBackgroundTask(taskId);
|
|
45
46
|
};
|
|
47
|
+
// Calculate visible window
|
|
48
|
+
const startIndex = Math.max(0, Math.min(selectedIndex - Math.floor(MAX_VISIBLE_ITEMS / 2), Math.max(0, tasks.length - MAX_VISIBLE_ITEMS)));
|
|
49
|
+
const visibleTasks = tasks.slice(startIndex, startIndex + MAX_VISIBLE_ITEMS);
|
|
46
50
|
useInput((input, key) => {
|
|
47
51
|
if (viewMode === "list") {
|
|
48
52
|
// List mode navigation
|
|
49
53
|
if (key.return) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
setSelectedIndex((prev) => {
|
|
55
|
+
if (tasks.length > 0 && prev < tasks.length) {
|
|
56
|
+
const selectedTask = tasks[prev];
|
|
57
|
+
setDetailTaskId(selectedTask.id);
|
|
58
|
+
setViewMode("detail");
|
|
59
|
+
}
|
|
60
|
+
return prev;
|
|
61
|
+
});
|
|
55
62
|
return;
|
|
56
63
|
}
|
|
57
64
|
if (key.escape) {
|
|
@@ -59,18 +66,23 @@ export const BackgroundTaskManager = ({ onCancel, }) => {
|
|
|
59
66
|
return;
|
|
60
67
|
}
|
|
61
68
|
if (key.upArrow) {
|
|
62
|
-
setSelectedIndex(Math.max(0,
|
|
69
|
+
setSelectedIndex((prev) => Math.max(0, prev - 1));
|
|
63
70
|
return;
|
|
64
71
|
}
|
|
65
72
|
if (key.downArrow) {
|
|
66
|
-
setSelectedIndex(Math.min(tasks.length - 1,
|
|
73
|
+
setSelectedIndex((prev) => Math.min(tasks.length - 1, prev + 1));
|
|
67
74
|
return;
|
|
68
75
|
}
|
|
69
|
-
if (input === "k"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
76
|
+
if (input === "k") {
|
|
77
|
+
setSelectedIndex((prev) => {
|
|
78
|
+
if (tasks.length > 0 && prev < tasks.length) {
|
|
79
|
+
const selectedTask = tasks[prev];
|
|
80
|
+
if (selectedTask.status === "running") {
|
|
81
|
+
stopTask(selectedTask.id);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return prev;
|
|
85
|
+
});
|
|
74
86
|
return;
|
|
75
87
|
}
|
|
76
88
|
}
|
|
@@ -105,10 +117,14 @@ export const BackgroundTaskManager = ({ onCancel, }) => {
|
|
|
105
117
|
if (tasks.length === 0) {
|
|
106
118
|
return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: "cyan", borderBottom: false, borderLeft: false, borderRight: false, paddingTop: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: "Background Tasks" }), _jsx(Text, { children: "No background tasks found" }), _jsx(Text, { dimColor: true, children: "Press Escape to close" })] }));
|
|
107
119
|
}
|
|
108
|
-
return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: "cyan", borderBottom: false, borderLeft: false, borderRight: false, paddingTop: 1, gap: 1, children: [_jsx(Box, { children: _jsx(Text, { color: "cyan", bold: true, children: "Background Tasks" }) }), _jsx(Text, { dimColor: true, children: "Select a task to view details" }),
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
120
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: "cyan", borderBottom: false, borderLeft: false, borderRight: false, paddingTop: 1, gap: 1, children: [_jsx(Box, { children: _jsx(Text, { color: "cyan", bold: true, children: "Background Tasks" }) }), _jsx(Text, { dimColor: true, children: "Select a task to view details" }), _jsx(Box, { flexDirection: "column", children: visibleTasks.map((task, index) => {
|
|
121
|
+
const actualIndex = startIndex + index;
|
|
122
|
+
const isSelected = actualIndex === selectedIndex;
|
|
123
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: isSelected ? "black" : "white", backgroundColor: isSelected ? "cyan" : undefined, children: [isSelected ? "▶ " : " ", actualIndex + 1, ". [", task.id, "] ", task.type, task.description ? `: ${task.description}` : "", _jsxs(Text, { color: task.status === "running"
|
|
124
|
+
? "green"
|
|
125
|
+
: task.status === "completed"
|
|
126
|
+
? "blue"
|
|
127
|
+
: "red", children: [" ", "(", task.status, ")"] })] }), isSelected && (_jsx(Box, { marginLeft: 4, flexDirection: "column", children: _jsxs(Text, { color: "gray", dimColor: true, children: ["Started: ", formatTime(task.startTime), task.runtime !== undefined &&
|
|
128
|
+
` | Runtime: ${formatDuration(task.runtime)}`, task.exitCode !== undefined && ` | Exit: ${task.exitCode}`] }) }))] }, task.id));
|
|
129
|
+
}) }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { dimColor: true, children: ["\u2191/\u2193 to select \u00B7 Enter to view \u00B7", " ", tasks[selectedIndex]?.status === "running" ? "k to stop · " : "", "Esc to close"] }) })] }));
|
|
114
130
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInterface.d.ts","sourceRoot":"","sources":["../../src/components/ChatInterface.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ChatInterface.d.ts","sourceRoot":"","sources":["../../src/components/ChatInterface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAYtE,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAqIjC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState, useCallback } from "react";
|
|
2
|
+
import { useState, useCallback, useLayoutEffect } from "react";
|
|
3
3
|
import { Box, useStdout } from "ink";
|
|
4
4
|
import { MessageList } from "./MessageList.js";
|
|
5
5
|
import { InputBox } from "./InputBox.js";
|
|
@@ -10,38 +10,51 @@ import { ConfirmationSelector } from "./ConfirmationSelector.js";
|
|
|
10
10
|
import { useChat } from "../contexts/useChat.js";
|
|
11
11
|
export const ChatInterface = () => {
|
|
12
12
|
const { stdout } = useStdout();
|
|
13
|
-
const [
|
|
13
|
+
const [detailsHeight, setDetailsHeight] = useState(0);
|
|
14
|
+
const [selectorHeight, setSelectorHeight] = useState(0);
|
|
15
|
+
const [isConfirmationTooTall, setIsConfirmationTooTall] = useState(false);
|
|
14
16
|
const { messages, isLoading, isCommandRunning, isCompressing, sendMessage, abortMessage, mcpServers, connectMcpServer, disconnectMcpServer, isExpanded, sessionId, latestTotalTokens, slashCommands, hasSlashCommand, isConfirmationVisible, confirmingTool, handleConfirmationDecision, handleConfirmationCancel: originalHandleConfirmationCancel, setWasLastDetailsTooTall, } = useChat();
|
|
15
|
-
const
|
|
17
|
+
const handleDetailsHeightMeasured = useCallback((height) => {
|
|
18
|
+
setDetailsHeight(height);
|
|
19
|
+
}, []);
|
|
20
|
+
const handleSelectorHeightMeasured = useCallback((height) => {
|
|
21
|
+
setSelectorHeight(height);
|
|
22
|
+
}, []);
|
|
23
|
+
useLayoutEffect(() => {
|
|
16
24
|
const terminalHeight = stdout?.rows || 24;
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
const totalHeight = detailsHeight + selectorHeight;
|
|
26
|
+
if (totalHeight > terminalHeight) {
|
|
27
|
+
setIsConfirmationTooTall(true);
|
|
19
28
|
}
|
|
20
29
|
else {
|
|
21
|
-
|
|
30
|
+
setIsConfirmationTooTall(false);
|
|
22
31
|
}
|
|
23
|
-
}, [stdout?.rows]);
|
|
32
|
+
}, [detailsHeight, selectorHeight, stdout?.rows]);
|
|
24
33
|
const handleConfirmationCancel = useCallback(() => {
|
|
25
|
-
if (
|
|
34
|
+
if (isConfirmationTooTall) {
|
|
26
35
|
setWasLastDetailsTooTall((prev) => prev + 1);
|
|
27
|
-
|
|
36
|
+
setIsConfirmationTooTall(false);
|
|
28
37
|
}
|
|
29
38
|
originalHandleConfirmationCancel();
|
|
30
39
|
}, [
|
|
31
|
-
|
|
40
|
+
isConfirmationTooTall,
|
|
32
41
|
originalHandleConfirmationCancel,
|
|
33
42
|
setWasLastDetailsTooTall,
|
|
34
43
|
]);
|
|
35
44
|
const wrappedHandleConfirmationDecision = useCallback((decision) => {
|
|
36
|
-
if (
|
|
45
|
+
if (isConfirmationTooTall) {
|
|
37
46
|
setWasLastDetailsTooTall((prev) => prev + 1);
|
|
38
|
-
|
|
47
|
+
setIsConfirmationTooTall(false);
|
|
39
48
|
}
|
|
40
49
|
handleConfirmationDecision(decision);
|
|
41
|
-
}, [
|
|
50
|
+
}, [
|
|
51
|
+
isConfirmationTooTall,
|
|
52
|
+
handleConfirmationDecision,
|
|
53
|
+
setWasLastDetailsTooTall,
|
|
54
|
+
]);
|
|
42
55
|
if (!sessionId)
|
|
43
56
|
return null;
|
|
44
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(MessageList, { messages: messages,
|
|
57
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(MessageList, { messages: messages, isExpanded: isExpanded, hideDynamicBlocks: isConfirmationVisible }), (isLoading || isCommandRunning || isCompressing) &&
|
|
45
58
|
!isConfirmationVisible &&
|
|
46
|
-
!isExpanded && (_jsx(LoadingIndicator, { isLoading: isLoading, isCommandRunning: isCommandRunning, isCompressing: isCompressing, latestTotalTokens: latestTotalTokens })), !isConfirmationVisible && !isExpanded && _jsx(TaskList, {}), isConfirmationVisible && (_jsxs(_Fragment, { children: [_jsx(ConfirmationDetails, { toolName: confirmingTool.name, toolInput: confirmingTool.input, isExpanded: isExpanded, onHeightMeasured:
|
|
59
|
+
!isExpanded && (_jsx(LoadingIndicator, { isLoading: isLoading, isCommandRunning: isCommandRunning, isCompressing: isCompressing, latestTotalTokens: latestTotalTokens })), !isConfirmationVisible && !isExpanded && _jsx(TaskList, {}), isConfirmationVisible && (_jsxs(_Fragment, { children: [_jsx(ConfirmationDetails, { toolName: confirmingTool.name, toolInput: confirmingTool.input, isExpanded: isExpanded, onHeightMeasured: handleDetailsHeightMeasured, isStatic: isConfirmationTooTall }), _jsx(ConfirmationSelector, { toolName: confirmingTool.name, toolInput: confirmingTool.input, suggestedPrefix: confirmingTool.suggestedPrefix, hidePersistentOption: confirmingTool.hidePersistentOption, isExpanded: isExpanded, onDecision: wrappedHandleConfirmationDecision, onCancel: handleConfirmationCancel, onAbort: abortMessage, onHeightMeasured: handleSelectorHeightMeasured })] })), !isConfirmationVisible && !isExpanded && (_jsx(InputBox, { isLoading: isLoading, isCommandRunning: isCommandRunning, sendMessage: sendMessage, abortMessage: abortMessage, mcpServers: mcpServers, connectMcpServer: connectMcpServer, disconnectMcpServer: disconnectMcpServer, slashCommands: slashCommands, hasSlashCommand: hasSlashCommand }))] }));
|
|
47
60
|
};
|
|
@@ -4,6 +4,7 @@ export interface ConfirmationDetailsProps {
|
|
|
4
4
|
toolInput?: Record<string, unknown>;
|
|
5
5
|
isExpanded?: boolean;
|
|
6
6
|
onHeightMeasured?: (height: number) => void;
|
|
7
|
+
isStatic?: boolean;
|
|
7
8
|
}
|
|
8
9
|
export declare const ConfirmationDetails: React.FC<ConfirmationDetailsProps>;
|
|
9
10
|
//# sourceMappingURL=ConfirmationDetails.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmationDetails.d.ts","sourceRoot":"","sources":["../../src/components/ConfirmationDetails.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ConfirmationDetails.d.ts","sourceRoot":"","sources":["../../src/components/ConfirmationDetails.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAqCvD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA0DlE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useLayoutEffect, useRef
|
|
2
|
+
import { useLayoutEffect, useRef } from "react";
|
|
3
3
|
import { Box, Text, useStdout, measureElement, Static } from "ink";
|
|
4
|
-
import { BASH_TOOL_NAME, EDIT_TOOL_NAME,
|
|
4
|
+
import { BASH_TOOL_NAME, EDIT_TOOL_NAME, WRITE_TOOL_NAME, EXIT_PLAN_MODE_TOOL_NAME, ASK_USER_QUESTION_TOOL_NAME, } from "wave-agent-sdk";
|
|
5
5
|
import { DiffDisplay } from "./DiffDisplay.js";
|
|
6
6
|
import { PlanDisplay } from "./PlanDisplay.js";
|
|
7
7
|
// Helper function to generate descriptive action text
|
|
@@ -14,10 +14,6 @@ const getActionDescription = (toolName, toolInput) => {
|
|
|
14
14
|
return `Execute command: ${toolInput.command || "unknown command"}`;
|
|
15
15
|
case EDIT_TOOL_NAME:
|
|
16
16
|
return `Edit file: ${toolInput.file_path || "unknown file"}`;
|
|
17
|
-
case MULTI_EDIT_TOOL_NAME:
|
|
18
|
-
return `Edit multiple sections in: ${toolInput.file_path || "unknown file"}`;
|
|
19
|
-
case DELETE_FILE_TOOL_NAME:
|
|
20
|
-
return `Delete file: ${toolInput.target_file || "unknown file"}`;
|
|
21
17
|
case WRITE_TOOL_NAME:
|
|
22
18
|
return `Write to file: ${toolInput.file_path || "unknown file"}`;
|
|
23
19
|
case EXIT_PLAN_MODE_TOOL_NAME:
|
|
@@ -28,21 +24,18 @@ const getActionDescription = (toolName, toolInput) => {
|
|
|
28
24
|
return "Execute operation";
|
|
29
25
|
}
|
|
30
26
|
};
|
|
31
|
-
export const ConfirmationDetails = ({ toolName, toolInput, isExpanded = false, onHeightMeasured, }) => {
|
|
27
|
+
export const ConfirmationDetails = ({ toolName, toolInput, isExpanded = false, onHeightMeasured, isStatic = false, }) => {
|
|
32
28
|
const { stdout } = useStdout();
|
|
33
|
-
const [isStatic, setIsStatic] = useState(false);
|
|
34
29
|
const boxRef = useRef(null);
|
|
30
|
+
const startLineNumber = toolInput?.startLineNumber ??
|
|
31
|
+
(toolName === WRITE_TOOL_NAME ? 1 : undefined);
|
|
35
32
|
useLayoutEffect(() => {
|
|
36
33
|
if (boxRef.current) {
|
|
37
34
|
const { height } = measureElement(boxRef.current);
|
|
38
|
-
const terminalHeight = stdout?.rows || 24;
|
|
39
|
-
if (height > terminalHeight - 10) {
|
|
40
|
-
setIsStatic(true);
|
|
41
|
-
}
|
|
42
35
|
onHeightMeasured?.(height);
|
|
43
36
|
}
|
|
44
|
-
}, [stdout?.rows, onHeightMeasured]);
|
|
45
|
-
const content = (_jsxs(Box, { ref: boxRef, flexDirection: "column", borderStyle: "single", borderColor: "yellow", borderBottom: false, borderLeft: false, borderRight: false,
|
|
37
|
+
}, [stdout?.rows, onHeightMeasured, toolInput, isExpanded]);
|
|
38
|
+
const content = (_jsxs(Box, { ref: boxRef, flexDirection: "column", borderStyle: "single", borderColor: "yellow", borderBottom: false, borderLeft: false, borderRight: false, children: [_jsxs(Text, { color: "yellow", bold: true, children: ["Tool: ", toolName] }), _jsx(Text, { color: "yellow", children: getActionDescription(toolName, toolInput) }), _jsx(DiffDisplay, { toolName: toolName, parameters: JSON.stringify(toolInput), startLineNumber: startLineNumber }), toolName !== ASK_USER_QUESTION_TOOL_NAME &&
|
|
46
39
|
toolName === EXIT_PLAN_MODE_TOOL_NAME &&
|
|
47
40
|
!!toolInput?.plan_content && (_jsx(PlanDisplay, { plan: toolInput.plan_content, isExpanded: isExpanded }))] }));
|
|
48
41
|
if (isStatic) {
|
|
@@ -9,6 +9,7 @@ export interface ConfirmationSelectorProps {
|
|
|
9
9
|
onDecision: (decision: PermissionDecision) => void;
|
|
10
10
|
onCancel: () => void;
|
|
11
11
|
onAbort: () => void;
|
|
12
|
+
onHeightMeasured?: (height: number) => void;
|
|
12
13
|
}
|
|
13
14
|
export declare const ConfirmationSelector: React.FC<ConfirmationSelectorProps>;
|
|
14
15
|
//# sourceMappingURL=ConfirmationSelector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmationSelector.d.ts","sourceRoot":"","sources":["../../src/components/ConfirmationSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ConfirmationSelector.d.ts","sourceRoot":"","sources":["../../src/components/ConfirmationSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,gBAAgB,CAAC;AAgB/E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AASD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsfpE,CAAC"}
|