iosm-cli 0.1.3 → 0.2.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/CHANGELOG.md +27 -0
- package/README.md +33 -2
- package/dist/core/blast.d.ts +62 -0
- package/dist/core/blast.d.ts.map +1 -0
- package/dist/core/blast.js +448 -0
- package/dist/core/blast.js.map +1 -0
- package/dist/core/contract.d.ts +54 -0
- package/dist/core/contract.d.ts.map +1 -0
- package/dist/core/contract.js +300 -0
- package/dist/core/contract.js.map +1 -0
- package/dist/core/semantic/config.d.ts.map +1 -1
- package/dist/core/semantic/config.js +5 -0
- package/dist/core/semantic/config.js.map +1 -1
- package/dist/core/semantic/index.d.ts +1 -1
- package/dist/core/semantic/index.d.ts.map +1 -1
- package/dist/core/semantic/index.js +1 -1
- package/dist/core/semantic/index.js.map +1 -1
- package/dist/core/semantic/runtime.d.ts.map +1 -1
- package/dist/core/semantic/runtime.js +12 -1
- package/dist/core/semantic/runtime.js.map +1 -1
- package/dist/core/semantic/types.d.ts +6 -0
- package/dist/core/semantic/types.d.ts.map +1 -1
- package/dist/core/semantic/types.js +6 -0
- package/dist/core/semantic/types.js.map +1 -1
- package/dist/core/shadow-guard.d.ts +30 -0
- package/dist/core/shadow-guard.d.ts.map +1 -0
- package/dist/core/shadow-guard.js +81 -0
- package/dist/core/shadow-guard.js.map +1 -0
- package/dist/core/singular.d.ts +73 -0
- package/dist/core/singular.d.ts.map +1 -0
- package/dist/core/singular.js +413 -0
- package/dist/core/singular.js.map +1 -0
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +9 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +3 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/semantic-search.d.ts.map +1 -1
- package/dist/core/tools/semantic-search.js +1 -0
- package/dist/core/tools/semantic-search.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +8 -1
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +8 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +70 -1
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +43 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +1304 -24
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/cli-reference.md +19 -1
- package/docs/configuration.md +5 -0
- package/docs/interactive-mode.md +131 -1
- package/package.json +1 -1
|
@@ -6,6 +6,9 @@ import type { AppAction, KeybindingsManager } from "../../../core/keybindings.js
|
|
|
6
6
|
export declare class CustomEditor extends Editor {
|
|
7
7
|
private keybindings;
|
|
8
8
|
actionHandlers: Map<AppAction, () => void>;
|
|
9
|
+
private plainPasteBuffer;
|
|
10
|
+
private plainPasteFlushTimer;
|
|
11
|
+
private readonly plainPasteFlushDelayMs;
|
|
9
12
|
onEscape?: () => void;
|
|
10
13
|
onCtrlD?: () => void;
|
|
11
14
|
onPasteImage?: () => void;
|
|
@@ -16,6 +19,11 @@ export declare class CustomEditor extends Editor {
|
|
|
16
19
|
* Register a handler for an app action.
|
|
17
20
|
*/
|
|
18
21
|
onAction(action: AppAction, handler: () => void): void;
|
|
22
|
+
private isLikelyUnbracketedPasteChunk;
|
|
23
|
+
private schedulePlainPasteFlush;
|
|
24
|
+
private flushPlainPasteBuffer;
|
|
25
|
+
private rewritePasteMarker;
|
|
26
|
+
render(width: number): string[];
|
|
19
27
|
handleInput(data: string): void;
|
|
20
28
|
}
|
|
21
29
|
//# sourceMappingURL=custom-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-editor.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/custom-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"custom-editor.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/custom-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiC,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC7H,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElF;;GAEG;AACH,qBAAa,YAAa,SAAQ,MAAM;IACvC,OAAO,CAAC,WAAW,CAAqB;IACjC,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAa;IAC9D,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,oBAAoB,CAA4C;IACxE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAM;IAGtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,2EAA2E;IACpE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;gBAE3C,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,aAAa;IAKlG;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAItD,OAAO,CAAC,6BAA6B;IAkBrC,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,kBAAkB;IAMjB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAWxC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CA4D/B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Editor } from "@mariozechner/pi-tui";
|
|
1
|
+
import { Editor, truncateToWidth, visibleWidth } from "@mariozechner/pi-tui";
|
|
2
2
|
/**
|
|
3
3
|
* Custom editor that handles app-level keybindings for coding-agent.
|
|
4
4
|
*/
|
|
@@ -6,6 +6,8 @@ export class CustomEditor extends Editor {
|
|
|
6
6
|
constructor(tui, theme, keybindings, options) {
|
|
7
7
|
super(tui, theme, options);
|
|
8
8
|
this.actionHandlers = new Map();
|
|
9
|
+
this.plainPasteBuffer = "";
|
|
10
|
+
this.plainPasteFlushDelayMs = 80;
|
|
9
11
|
this.keybindings = keybindings;
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
@@ -14,7 +16,74 @@ export class CustomEditor extends Editor {
|
|
|
14
16
|
onAction(action, handler) {
|
|
15
17
|
this.actionHandlers.set(action, handler);
|
|
16
18
|
}
|
|
19
|
+
isLikelyUnbracketedPasteChunk(data) {
|
|
20
|
+
if (!data)
|
|
21
|
+
return false;
|
|
22
|
+
// Ignore known escape/control sequences (arrows, alt-combos, etc.)
|
|
23
|
+
if (data.includes("\x1b"))
|
|
24
|
+
return false;
|
|
25
|
+
// Single Enter key should still submit immediately.
|
|
26
|
+
if (data.length <= 1)
|
|
27
|
+
return false;
|
|
28
|
+
if (!data.includes("\n") && !data.includes("\r"))
|
|
29
|
+
return false;
|
|
30
|
+
let hasPrintable = false;
|
|
31
|
+
for (const char of data) {
|
|
32
|
+
if (char === "\n" || char === "\r" || char === "\t")
|
|
33
|
+
continue;
|
|
34
|
+
if (char.charCodeAt(0) >= 32) {
|
|
35
|
+
hasPrintable = true;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return hasPrintable;
|
|
40
|
+
}
|
|
41
|
+
schedulePlainPasteFlush() {
|
|
42
|
+
if (this.plainPasteFlushTimer) {
|
|
43
|
+
clearTimeout(this.plainPasteFlushTimer);
|
|
44
|
+
}
|
|
45
|
+
this.plainPasteFlushTimer = setTimeout(() => {
|
|
46
|
+
this.flushPlainPasteBuffer();
|
|
47
|
+
}, this.plainPasteFlushDelayMs);
|
|
48
|
+
}
|
|
49
|
+
flushPlainPasteBuffer() {
|
|
50
|
+
if (this.plainPasteFlushTimer) {
|
|
51
|
+
clearTimeout(this.plainPasteFlushTimer);
|
|
52
|
+
this.plainPasteFlushTimer = undefined;
|
|
53
|
+
}
|
|
54
|
+
if (!this.plainPasteBuffer)
|
|
55
|
+
return;
|
|
56
|
+
const payload = this.plainPasteBuffer;
|
|
57
|
+
this.plainPasteBuffer = "";
|
|
58
|
+
super.handleInput(`\x1b[200~${payload}\x1b[201~`);
|
|
59
|
+
}
|
|
60
|
+
rewritePasteMarker(line) {
|
|
61
|
+
return line.replace(/\[paste #(\d+)( (\+\d+ lines|\d+ chars))?\]/gi, (_match, id, suffix) => {
|
|
62
|
+
return `[Pasted text #${id}${suffix ?? ""}]`;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
render(width) {
|
|
66
|
+
const lines = super.render(width);
|
|
67
|
+
return lines.map((line) => {
|
|
68
|
+
const rewritten = this.rewritePasteMarker(line);
|
|
69
|
+
if (rewritten === line)
|
|
70
|
+
return line;
|
|
71
|
+
// Keep hard width guarantees after rewrite by trimming trailing visual width if needed.
|
|
72
|
+
if (visibleWidth(rewritten) <= width)
|
|
73
|
+
return rewritten;
|
|
74
|
+
return truncateToWidth(rewritten, width, "", true);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
17
77
|
handleInput(data) {
|
|
78
|
+
if (this.isLikelyUnbracketedPasteChunk(data)) {
|
|
79
|
+
this.plainPasteBuffer += data.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
80
|
+
this.schedulePlainPasteFlush();
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
// If we buffered plain paste chunks, flush them before processing the next key.
|
|
84
|
+
if (this.plainPasteBuffer) {
|
|
85
|
+
this.flushPlainPasteBuffer();
|
|
86
|
+
}
|
|
18
87
|
// Check extension-registered shortcuts first
|
|
19
88
|
if (this.onExtensionShortcut?.(data)) {
|
|
20
89
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-editor.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/custom-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkD,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"custom-editor.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/custom-editor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Editor, truncateToWidth, visibleWidth, type EditorOptions, type EditorTheme, type TUI } from \"@mariozechner/pi-tui\";\nimport type { AppAction, KeybindingsManager } from \"../../../core/keybindings.js\";\n\n/**\n * Custom editor that handles app-level keybindings for coding-agent.\n */\nexport class CustomEditor extends Editor {\n\tprivate keybindings: KeybindingsManager;\n\tpublic actionHandlers: Map<AppAction, () => void> = new Map();\n\tprivate plainPasteBuffer = \"\";\n\tprivate plainPasteFlushTimer: ReturnType<typeof setTimeout> | undefined;\n\tprivate readonly plainPasteFlushDelayMs = 80;\n\n\t// Special handlers that can be dynamically replaced\n\tpublic onEscape?: () => void;\n\tpublic onCtrlD?: () => void;\n\tpublic onPasteImage?: () => void;\n\t/** Handler for extension-registered shortcuts. Returns true if handled. */\n\tpublic onExtensionShortcut?: (data: string) => boolean;\n\n\tconstructor(tui: TUI, theme: EditorTheme, keybindings: KeybindingsManager, options?: EditorOptions) {\n\t\tsuper(tui, theme, options);\n\t\tthis.keybindings = keybindings;\n\t}\n\n\t/**\n\t * Register a handler for an app action.\n\t */\n\tonAction(action: AppAction, handler: () => void): void {\n\t\tthis.actionHandlers.set(action, handler);\n\t}\n\n\tprivate isLikelyUnbracketedPasteChunk(data: string): boolean {\n\t\tif (!data) return false;\n\t\t// Ignore known escape/control sequences (arrows, alt-combos, etc.)\n\t\tif (data.includes(\"\\x1b\")) return false;\n\t\t// Single Enter key should still submit immediately.\n\t\tif (data.length <= 1) return false;\n\t\tif (!data.includes(\"\\n\") && !data.includes(\"\\r\")) return false;\n\t\tlet hasPrintable = false;\n\t\tfor (const char of data) {\n\t\t\tif (char === \"\\n\" || char === \"\\r\" || char === \"\\t\") continue;\n\t\t\tif (char.charCodeAt(0) >= 32) {\n\t\t\t\thasPrintable = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn hasPrintable;\n\t}\n\n\tprivate schedulePlainPasteFlush(): void {\n\t\tif (this.plainPasteFlushTimer) {\n\t\t\tclearTimeout(this.plainPasteFlushTimer);\n\t\t}\n\t\tthis.plainPasteFlushTimer = setTimeout(() => {\n\t\t\tthis.flushPlainPasteBuffer();\n\t\t}, this.plainPasteFlushDelayMs);\n\t}\n\n\tprivate flushPlainPasteBuffer(): void {\n\t\tif (this.plainPasteFlushTimer) {\n\t\t\tclearTimeout(this.plainPasteFlushTimer);\n\t\t\tthis.plainPasteFlushTimer = undefined;\n\t\t}\n\t\tif (!this.plainPasteBuffer) return;\n\t\tconst payload = this.plainPasteBuffer;\n\t\tthis.plainPasteBuffer = \"\";\n\t\tsuper.handleInput(`\\x1b[200~${payload}\\x1b[201~`);\n\t}\n\n\tprivate rewritePasteMarker(line: string): string {\n\t\treturn line.replace(/\\[paste #(\\d+)( (\\+\\d+ lines|\\d+ chars))?\\]/gi, (_match, id: string, suffix?: string) => {\n\t\t\treturn `[Pasted text #${id}${suffix ?? \"\"}]`;\n\t\t});\n\t}\n\n\toverride render(width: number): string[] {\n\t\tconst lines = super.render(width);\n\t\treturn lines.map((line) => {\n\t\t\tconst rewritten = this.rewritePasteMarker(line);\n\t\t\tif (rewritten === line) return line;\n\t\t\t// Keep hard width guarantees after rewrite by trimming trailing visual width if needed.\n\t\t\tif (visibleWidth(rewritten) <= width) return rewritten;\n\t\t\treturn truncateToWidth(rewritten, width, \"\", true);\n\t\t});\n\t}\n\n\thandleInput(data: string): void {\n\t\tif (this.isLikelyUnbracketedPasteChunk(data)) {\n\t\t\tthis.plainPasteBuffer += data.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n\t\t\tthis.schedulePlainPasteFlush();\n\t\t\treturn;\n\t\t}\n\t\t// If we buffered plain paste chunks, flush them before processing the next key.\n\t\tif (this.plainPasteBuffer) {\n\t\t\tthis.flushPlainPasteBuffer();\n\t\t}\n\n\t\t// Check extension-registered shortcuts first\n\t\tif (this.onExtensionShortcut?.(data)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check for paste image keybinding\n\t\tif (this.keybindings.matches(data, \"pasteImage\")) {\n\t\t\tthis.onPasteImage?.();\n\t\t\treturn;\n\t\t}\n\n\t\t// Check app keybindings first\n\n\t\t// Escape/interrupt - only if autocomplete is NOT active\n\t\tif (this.keybindings.matches(data, \"interrupt\")) {\n\t\t\tif (!this.isShowingAutocomplete()) {\n\t\t\t\t// Use dynamic onEscape if set, otherwise registered handler\n\t\t\t\tconst handler = this.onEscape ?? this.actionHandlers.get(\"interrupt\");\n\t\t\t\tif (handler) {\n\t\t\t\t\thandler();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Let parent handle escape for autocomplete cancellation\n\t\t\tsuper.handleInput(data);\n\t\t\treturn;\n\t\t}\n\n\t\t// Exit (Ctrl+D) - only when editor is empty\n\t\tif (this.keybindings.matches(data, \"exit\")) {\n\t\t\tif (this.getText().length === 0) {\n\t\t\t\tconst handler = this.onCtrlD ?? this.actionHandlers.get(\"exit\");\n\t\t\t\tif (handler) handler();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Fall through to editor handling for delete-char-forward when not empty\n\t\t}\n\n\t\t// Check all other app actions\n\t\tfor (const [action, handler] of this.actionHandlers) {\n\t\t\tif (action !== \"interrupt\" && action !== \"exit\" && this.keybindings.matches(data, action)) {\n\t\t\t\thandler();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Pass to parent for editor handling\n\t\tsuper.handleInput(data);\n\t}\n}\n"]}
|
|
@@ -50,11 +50,15 @@ export declare class InteractiveMode {
|
|
|
50
50
|
private pendingWorkingMessage;
|
|
51
51
|
private readonly defaultWorkingMessage;
|
|
52
52
|
private activeProfileName;
|
|
53
|
+
private profilePromptSuffix;
|
|
53
54
|
private permissionMode;
|
|
54
55
|
private permissionAllowRules;
|
|
55
56
|
private permissionDenyRules;
|
|
56
57
|
private permissionPromptLock;
|
|
57
58
|
private sessionAllowedToolSignatures;
|
|
59
|
+
private contractService;
|
|
60
|
+
private singularService;
|
|
61
|
+
private singularLastEffectiveContract;
|
|
58
62
|
private lastSigintTime;
|
|
59
63
|
private lastEscapeTime;
|
|
60
64
|
private changelogMarkdown;
|
|
@@ -83,6 +87,7 @@ export declare class InteractiveMode {
|
|
|
83
87
|
private shutdownRequested;
|
|
84
88
|
private iosmAutomationRun;
|
|
85
89
|
private iosmVerificationSession;
|
|
90
|
+
private singularAnalysisSession;
|
|
86
91
|
private extensionSelector;
|
|
87
92
|
private extensionInput;
|
|
88
93
|
private extensionEditor;
|
|
@@ -100,6 +105,9 @@ export declare class InteractiveMode {
|
|
|
100
105
|
private get sessionManager();
|
|
101
106
|
private get settingsManager();
|
|
102
107
|
constructor(session: AgentSession, options?: InteractiveModeOptions);
|
|
108
|
+
private syncRuntimePromptSuffix;
|
|
109
|
+
private getContractStateSafe;
|
|
110
|
+
private getProfileToolNames;
|
|
103
111
|
private getToolPermissionSignature;
|
|
104
112
|
private matchesPermissionRule;
|
|
105
113
|
private withPermissionDialogLock;
|
|
@@ -113,6 +121,8 @@ export declare class InteractiveMode {
|
|
|
113
121
|
private getMcpArgumentCompletions;
|
|
114
122
|
private getMemoryArgumentCompletions;
|
|
115
123
|
private getSemanticArgumentCompletions;
|
|
124
|
+
private getContractArgumentCompletions;
|
|
125
|
+
private getSingularArgumentCompletions;
|
|
116
126
|
private setupAutocomplete;
|
|
117
127
|
init(): Promise<void>;
|
|
118
128
|
private buildStartupHeaderContent;
|
|
@@ -377,9 +387,42 @@ export declare class InteractiveMode {
|
|
|
377
387
|
private ensureOpenRouterSemanticCredentials;
|
|
378
388
|
private selectSemanticModelFromCatalog;
|
|
379
389
|
private runSemanticSetupWizard;
|
|
390
|
+
private resolveSemanticAutoIndexWriteScope;
|
|
391
|
+
private updateSemanticAutoIndexSetting;
|
|
380
392
|
private runSemanticInteractiveMenu;
|
|
381
393
|
private reportSemanticError;
|
|
382
394
|
private handleSemanticCommand;
|
|
395
|
+
private parseContractScopeOptions;
|
|
396
|
+
private cloneContract;
|
|
397
|
+
private formatContractSection;
|
|
398
|
+
private formatContractFieldPreview;
|
|
399
|
+
private showContractState;
|
|
400
|
+
private editContractFieldValue;
|
|
401
|
+
private formatContractEditorSummary;
|
|
402
|
+
private editContractScope;
|
|
403
|
+
private runContractInteractiveMenu;
|
|
404
|
+
private handleContractCommand;
|
|
405
|
+
private normalizeSingularComplexity;
|
|
406
|
+
private normalizeSingularBlastRadius;
|
|
407
|
+
private normalizeSingularRecommendation;
|
|
408
|
+
private normalizeSingularStageFit;
|
|
409
|
+
private toTrimmedString;
|
|
410
|
+
private toTrimmedStringList;
|
|
411
|
+
private normalizeSingularImpactAnalysis;
|
|
412
|
+
private buildSingularContractPromptSection;
|
|
413
|
+
private buildSingularAgentPrompt;
|
|
414
|
+
private extractLabeledValue;
|
|
415
|
+
private parseSingularListSection;
|
|
416
|
+
private parseSingularOptionsFromText;
|
|
417
|
+
private parseSingularAgentAnalysisFromText;
|
|
418
|
+
private runSingularAgentFeasibilityPass;
|
|
419
|
+
private formatSingularRunReport;
|
|
420
|
+
private buildSingularExecutionDraft;
|
|
421
|
+
private resolveRecommendedSingularOptionId;
|
|
422
|
+
private promptSingularDecision;
|
|
423
|
+
private showSingularLastSummary;
|
|
424
|
+
private runSingularAnalysis;
|
|
425
|
+
private handleSingularCommand;
|
|
383
426
|
private parseCheckpointNameFromLabel;
|
|
384
427
|
private buildCheckpointLabel;
|
|
385
428
|
private normalizeCheckpointName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAoB,YAAY,EAAmC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAoB,YAAY,EAAmC,MAAM,qBAAqB,CAAC;AAuD3G,OAAO,EAAE,KAAK,YAAY,EAA2C,MAAM,6BAA6B,CAAC;AAkBzG,OAAO,EAKN,KAAK,UAAU,EAEf,MAAM,yBAAyB,CAAC;AAqhBjC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,UAAU,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,qBAAa,eAAe;IAiK1B,OAAO,CAAC,OAAO;IAhKhB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,wBAAwB,CAAY;IAC5C,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,oBAAoB,CAAmC;IAC/D,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAC,CAAyB;IACjD,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,qBAAqB,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgB;IACtD,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,4BAA4B,CAAqB;IACzD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,6BAA6B,CAA2B;IAEhE,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAAiC;IAG1D,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,cAAc,CAA+B;IAGrD,OAAO,CAAC,kBAAkB,CAAoD;IAC9E,OAAO,CAAC,gBAAgB,CAA2C;IAGnE,OAAO,CAAC,YAAY,CAA6C;IAGjE,OAAO,CAAC,kBAAkB,CA0BtB;IAGJ,OAAO,CAAC,iCAAiC,CAAyD;IAClG,OAAO,CAAC,qCAAqC,CAAK;IAClD,OAAO,CAAC,mCAAmC,CAAS;IAGpD,OAAO,CAAC,kBAAkB,CAAS;IAGnC,OAAO,CAAC,iBAAiB,CAAS;IAGlC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,UAAU,CAAC,CAAa;IAGhC,OAAO,CAAC,WAAW,CAAC,CAAa;IAGjC,OAAO,CAAC,UAAU,CAAS;IAG3B,OAAO,CAAC,aAAa,CAAiD;IAGtE,OAAO,CAAC,qBAAqB,CAAgC;IAG7D,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,2BAA2B,CAAC,CAAa;IAGjD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,kBAAkB,CAAC,CAAa;IAGxC,OAAO,CAAC,wBAAwB,CAAiC;IAGjE,OAAO,CAAC,iBAAiB,CAAS;IAGlC,OAAO,CAAC,iBAAiB,CAAiD;IAC1E,OAAO,CAAC,uBAAuB,CAAuC;IACtE,OAAO,CAAC,uBAAuB,CAAuC;IAGtE,OAAO,CAAC,iBAAiB,CAAqD;IAC9E,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,mCAAmC,CAAyB;IAGpE,OAAO,CAAC,qBAAqB,CAAuD;IACpF,OAAO,CAAC,qBAAqB,CAAuD;IACpF,OAAO,CAAC,oBAAoB,CAAa;IACzC,OAAO,CAAC,oBAAoB,CAAa;IAGzC,OAAO,CAAC,YAAY,CAA6D;IAGjF,OAAO,CAAC,eAAe,CAAY;IAGnC,OAAO,CAAC,aAAa,CAA+B;IAGpD,OAAO,CAAC,SAAS,CAA6C;IAG9D,OAAO,CAAC,YAAY,CAA6D;IAGjF,OAAO,KAAK,KAAK,GAEhB;IACD,OAAO,KAAK,cAAc,GAEzB;IACD,OAAO,KAAK,eAAe,GAE1B;gBAGA,OAAO,EAAE,YAAY,EACb,OAAO,GAAE,sBAA2B;IAqD7C,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,qBAAqB;YASf,wBAAwB;YAcxB,qBAAqB;IAmDnC,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,wBAAwB;YAQlB,sBAAsB;YA2EtB,6BAA6B;YAqE7B,wBAAwB;IAuHtC,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,4BAA4B;IAsCpC,OAAO,CAAC,8BAA8B;IA2CtC,OAAO,CAAC,8BAA8B;IAkCtC,OAAO,CAAC,8BAA8B;IActC,OAAO,CAAC,iBAAiB;IAgLnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0G3B,OAAO,CAAC,yBAAyB;IA0GjC,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAmE1B;;OAEG;YACW,kBAAkB;IA6BhC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,iBAAiB;IA8BzB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyDzB,OAAO,CAAC,mBAAmB;IAmI3B;;OAEG;YACW,cAAc;IAkG5B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAMnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmD/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0C1B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAE9C;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,iCAAiC;IAWzC,OAAO,CAAC,oCAAoC;IAO5C;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA4ChC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwC7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;YACW,oBAAoB;YASpB,sBAAsB;IAwBpC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwC1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA0DhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B,oGAAoG;YACtF,mBAAmB;IA8EjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,gBAAgB;YAkFV,yBAAyB;IAsBvC,OAAO,CAAC,wBAAwB;IA6RhC,OAAO,CAAC,gBAAgB;YAMV,WAAW;IA4gBzB,+CAA+C;IAC/C,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,2BAA2B;IAenC;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,gBAAgB;IAwGxB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAkH5B,qBAAqB,IAAI,IAAI;IAiBvB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IASrC,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,WAAW;IAKnB;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAS;YAEjB,QAAQ;IAwBtB;;OAEG;YACW,sBAAsB;IAKpC,OAAO,CAAC,WAAW;YAoBL,WAAW;YA8BX,cAAc;IA+B5B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,YAAY;YAaN,UAAU;IAmBxB,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,6BAA6B;IAkBrC,OAAO,CAAC,kBAAkB;IAmD1B,WAAW,IAAI,IAAI;IAKnB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAMrC,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAMzC,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAoBpD;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,4BAA4B;IAuEpC,OAAO,CAAC,qBAAqB;YAIf,oBAAoB;IAqGlC,OAAO,CAAC,6BAA6B;IAqBrC,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,kBAAkB;YAWZ,oBAAoB;IAgFlC,6DAA6D;IAC7D,OAAO,CAAC,0BAA0B;IAYlC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,uBAAuB;YAOjB,2BAA2B;IAUzC,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,wBAAwB;IA0BhC,OAAO,CAAC,oBAAoB;YAUd,eAAe;YA6Nf,qBAAqB;IA6JnC,OAAO,CAAC,eAAe;IAqEvB,OAAO,CAAC,oBAAoB;YA0Id,kBAAkB;YAwBlB,yBAAyB;YAiEzB,mBAAmB;YA2BnB,kBAAkB;IAahC,iFAAiF;YACnE,4BAA4B;IAO1C,OAAO,CAAC,iBAAiB;YAiCX,kBAAkB;IAsHhC,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,gBAAgB;IAgIxB,OAAO,CAAC,mBAAmB;YAmCb,mBAAmB;YA4BnB,iBAAiB;IAiD/B,OAAO,CAAC,sBAAsB;YAQhB,2BAA2B;YAqC3B,eAAe;IA6F7B,OAAO,CAAC,cAAc;IAgDtB,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,yBAAyB;IAmCjC,OAAO,CAAC,uBAAuB;YAMjB,iBAAiB;YAuBjB,yBAAyB;YAWzB,mBAAmB;YASnB,sBAAsB;YActB,sBAAsB;YAQtB,wBAAwB;YA2GxB,mBAAmB;IA0IjC,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,yBAAyB;IAkCjC,OAAO,CAAC,wBAAwB;IA8BhC,OAAO,CAAC,0BAA0B;IAuBlC,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,6BAA6B;YAMvB,mCAAmC;YAoBnC,8BAA8B;YA2D9B,sBAAsB;IA2MpC,OAAO,CAAC,kCAAkC;YAQ5B,8BAA8B;YAiC9B,0BAA0B;IA6HxC,OAAO,CAAC,mBAAmB;YA2Bb,qBAAqB;IAyInC,OAAO,CAAC,yBAAyB;IA4BjC,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,iBAAiB;YAeX,sBAAsB;IA6CpC,OAAO,CAAC,2BAA2B;YASrB,iBAAiB;YA0EjB,0BAA0B;YAgF1B,qBAAqB;IA0EnC,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,+BAA+B;IAqBvC,OAAO,CAAC,kCAAkC;IAwB1C,OAAO,CAAC,wBAAwB;IAuEhC,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,wBAAwB;IAiChC,OAAO,CAAC,4BAA4B;IA8DpC,OAAO,CAAC,kCAAkC;YA2C5B,+BAA+B;IA8G7C,OAAO,CAAC,uBAAuB;IA4D/B,OAAO,CAAC,2BAA2B;IAuFnC,OAAO,CAAC,kCAAkC;YAY5B,sBAAsB;IA4CpC,OAAO,CAAC,uBAAuB;YAmBjB,mBAAmB;YA6CnB,qBAAqB;IAsCnC,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,uBAAuB;YAmCjB,qBAAqB;YA0FrB,yBAAyB;YAwGzB,mBAAmB;IAkPjC,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;YAWd,4BAA4B;IAqS1C,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,+BAA+B;IAiBvC,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,iBAAiB;YAaX,sBAAsB;IAmDpC,OAAO,CAAC,iCAAiC;IAoHzC,OAAO,CAAC,mBAAmB;YAsBb,kBAAkB;IAiChC,OAAO,CAAC,+BAA+B;IAiDvC,OAAO,CAAC,4BAA4B;YA2MtB,6BAA6B;YA0F7B,wBAAwB;IAgItC,OAAO,CAAC,iBAAiB;YAeX,iBAAiB;IAiB/B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,0BAA0B;IAgClC,OAAO,CAAC,sBAAsB;YAiChB,aAAa;YAsBb,eAAe;IAiB7B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,qBAAqB;YASf,iBAAiB;IA2J/B,OAAO,CAAC,8BAA8B;YA2BxB,gCAAgC;IAyE9C,OAAO,CAAC,0BAA0B;YAuBpB,4BAA4B;IA6D1C,OAAO,CAAC,6BAA6B;YA0DvB,gCAAgC;IAiV9C,OAAO,CAAC,yBAAyB;YAkEnB,oCAAoC;YA4JpC,8BAA8B;YAuC9B,0BAA0B;IA0GxC,OAAO,CAAC,uBAAuB;IAuH/B,OAAO,CAAC,+BAA+B;YAqBzB,+BAA+B;IA0D7C,OAAO,CAAC,8BAA8B;YAKxB,iBAAiB;YAyBjB,iCAAiC;YA2BjC,iCAAiC;YAsDjC,mBAAmB;YAiFnB,mBAAmB;YAqCnB,kBAAkB;IA8FhC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,sBAAsB;IAqB9B;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,oBAAoB;YAmHd,kBAAkB;IA4BhC,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,qBAAqB;YAMf,iBAAiB;YAyFjB,oBAAoB;YAYpB,iBAAiB;IAwD/B,IAAI,IAAI,IAAI;CAgBZ"}
|