@sortedyuan/maybecode 0.3.2 → 0.5.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 +166 -55
- package/README.zh-CN.md +267 -0
- package/dist/application.d.ts +40 -34
- package/dist/application.d.ts.map +1 -1
- package/dist/application.js +290 -170
- package/dist/application.js.map +1 -1
- package/dist/args.d.ts +2 -2
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +50 -27
- package/dist/args.js.map +1 -1
- package/dist/bin.js +82 -71
- package/dist/bin.js.map +4 -4
- package/dist/cli/chunk-3IORPKBL.js +3572 -0
- package/dist/cli/chunk-3IORPKBL.js.map +7 -0
- package/dist/cli/{chunk-LVTRXPDS.js → chunk-4B2Z6KW7.js} +1547 -1536
- package/dist/cli/chunk-4B2Z6KW7.js.map +7 -0
- package/dist/cli/{chunk-JT6VBKOM.js → chunk-4WG6JIJJ.js} +127 -33
- package/dist/cli/{chunk-JT6VBKOM.js.map → chunk-4WG6JIJJ.js.map} +3 -3
- package/dist/cli/{chunk-K5JWPNSY.js → chunk-5SLWALZK.js} +3521 -16164
- package/dist/cli/chunk-5SLWALZK.js.map +7 -0
- package/dist/cli/chunk-MNBYXL5Y.js +132 -0
- package/dist/cli/chunk-MNBYXL5Y.js.map +7 -0
- package/dist/cli/{chunk-F4XRPLUM.js → chunk-SLWLUEHQ.js} +226 -86
- package/dist/cli/chunk-SLWLUEHQ.js.map +7 -0
- package/dist/cli/chunk-UQDZ55LQ.js +199 -0
- package/dist/cli/chunk-UQDZ55LQ.js.map +7 -0
- package/dist/cli/{chunk-7ISOHFS7.js → chunk-WMSG5ZTR.js} +717 -388
- package/dist/cli/chunk-WMSG5ZTR.js.map +7 -0
- package/dist/cli/chunk-WVIRS76R.js +4057 -0
- package/dist/cli/chunk-WVIRS76R.js.map +7 -0
- package/dist/cli/{chunk-HOU5ITUK.js → chunk-XTEMRAQW.js} +1 -1
- package/dist/cli/chunk-XTEMRAQW.js.map +7 -0
- package/dist/cli/chunk-Z3BOPBVU.js +91 -0
- package/dist/cli/chunk-Z3BOPBVU.js.map +7 -0
- package/dist/cli/{configured-WHY3GGAJ.js → configured-ACNM6TRQ.js} +10 -9
- package/dist/cli/{file-type-R2T7TBHI.js → file-type-HLHPV7WC.js} +817 -13
- package/dist/cli/file-type-HLHPV7WC.js.map +7 -0
- package/dist/cli/mcp-auth-XD5U7WCV.js +74 -0
- package/dist/cli/mcp-auth-XD5U7WCV.js.map +7 -0
- package/dist/cli/onboarding-WQWCPYEO.js +530 -0
- package/dist/cli/onboarding-WQWCPYEO.js.map +7 -0
- package/dist/cli/onboarding-check-HRRI5OJ7.js +32 -0
- package/dist/cli/onboarding-check-HRRI5OJ7.js.map +7 -0
- package/dist/cli/{retained-tui-VJ3VX4R3.js → retained-tui-QF5VMYLC.js} +788 -332
- package/dist/cli/retained-tui-QF5VMYLC.js.map +7 -0
- package/dist/cli/{sixel-LWTCM76G.js → sixel-ISZ4FZ3U.js} +37 -37
- package/dist/cli/{sixel-LWTCM76G.js.map → sixel-ISZ4FZ3U.js.map} +1 -1
- package/dist/cli/{team-T7G7PPNN.js → team-O2I5BXHM.js} +7 -6
- package/dist/cli/{team-v2-JGBBQ7FR.js → team-v2-YYO2G7DJ.js} +816 -390
- package/dist/cli/team-v2-YYO2G7DJ.js.map +7 -0
- package/dist/cli/{web-server-FOMNPY7Q.js → web-server-SXMH6FGA.js} +55 -19
- package/dist/cli/web-server-SXMH6FGA.js.map +7 -0
- package/dist/cli/{web-ui-COB6PKC5.js → web-ui-UWQUFE4W.js} +7 -6
- package/dist/config-schema.json +337 -0
- package/dist/configured.d.ts +18 -11
- package/dist/configured.d.ts.map +1 -1
- package/dist/configured.js +213 -390
- package/dist/configured.js.map +1 -1
- package/dist/controller.d.ts +19 -18
- package/dist/controller.d.ts.map +1 -1
- package/dist/delegation-commands.d.ts +1 -1
- package/dist/delegation-commands.d.ts.map +1 -1
- package/dist/delegation-commands.js +8 -8
- package/dist/delegation-commands.js.map +1 -1
- package/dist/errors.d.ts +2 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -1
- package/dist/errors.js.map +1 -1
- package/dist/events.d.ts +8 -6
- package/dist/events.d.ts.map +1 -1
- package/dist/fork-picker.d.ts.map +1 -1
- package/dist/fork-picker.js +19 -5
- package/dist/fork-picker.js.map +1 -1
- package/dist/git-request.d.ts +6 -6
- package/dist/git-request.d.ts.map +1 -1
- package/dist/git-request.js +28 -15
- package/dist/git-request.js.map +1 -1
- package/dist/goal-commands.d.ts +1 -1
- package/dist/goal-commands.d.ts.map +1 -1
- package/dist/goal-commands.js +12 -5
- package/dist/goal-commands.js.map +1 -1
- package/dist/index.d.ts +5 -37
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -36
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +2 -7
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +7 -15
- package/dist/instructions.js.map +1 -1
- package/dist/keymap.d.ts +2 -2
- package/dist/keymap.d.ts.map +1 -1
- package/dist/keymap.js +2 -2
- package/dist/keymap.js.map +1 -1
- package/dist/maybecode-config.schema.json +1765 -0
- package/dist/mcp-auth.d.ts +1 -1
- package/dist/mcp-auth.d.ts.map +1 -1
- package/dist/mcp-auth.js +11 -8
- package/dist/mcp-auth.js.map +1 -1
- package/dist/mcp-commands.d.ts.map +1 -1
- package/dist/mcp-commands.js +18 -4
- package/dist/mcp-commands.js.map +1 -1
- package/dist/mcp-interaction-ui.d.ts.map +1 -1
- package/dist/mcp-interaction-ui.js +11 -4
- package/dist/mcp-interaction-ui.js.map +1 -1
- package/dist/media-history.d.ts +1 -1
- package/dist/media-history.d.ts.map +1 -1
- package/dist/media-history.js +8 -2
- package/dist/media-history.js.map +1 -1
- package/dist/model-picker.d.ts.map +1 -1
- package/dist/model-picker.js +10 -11
- package/dist/model-picker.js.map +1 -1
- package/dist/model-transition.d.ts +11 -0
- package/dist/model-transition.d.ts.map +1 -0
- package/dist/model-transition.js +48 -0
- package/dist/model-transition.js.map +1 -0
- package/dist/model.d.ts +2 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +8 -4
- package/dist/model.js.map +1 -1
- package/dist/onboarding-check.d.ts +3 -0
- package/dist/onboarding-check.d.ts.map +1 -0
- package/dist/onboarding-check.js +22 -0
- package/dist/onboarding-check.js.map +1 -0
- package/dist/onboarding.d.ts +6 -0
- package/dist/onboarding.d.ts.map +1 -0
- package/dist/onboarding.js +463 -0
- package/dist/onboarding.js.map +1 -0
- package/dist/plugins/application.d.ts +6 -4
- package/dist/plugins/application.d.ts.map +1 -1
- package/dist/plugins/application.js +106 -52
- package/dist/plugins/application.js.map +1 -1
- package/dist/plugins/instructions.d.ts +1 -1
- package/dist/plugins/instructions.d.ts.map +1 -1
- package/dist/plugins/instructions.js +24 -11
- package/dist/plugins/instructions.js.map +1 -1
- package/dist/plugins/resources.d.ts +2 -2
- package/dist/plugins/resources.d.ts.map +1 -1
- package/dist/plugins/resources.js +22 -12
- package/dist/plugins/resources.js.map +1 -1
- package/dist/policy.d.ts +1 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +59 -11
- package/dist/policy.js.map +1 -1
- package/dist/run.d.ts +2 -0
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +38 -33
- package/dist/run.js.map +1 -1
- package/dist/runtime-instructions.d.ts +1 -1
- package/dist/runtime-instructions.d.ts.map +1 -1
- package/dist/runtime-instructions.js +15 -7
- package/dist/runtime-instructions.js.map +1 -1
- package/dist/session-navigation.d.ts +6 -0
- package/dist/session-navigation.d.ts.map +1 -0
- package/dist/session-navigation.js +64 -0
- package/dist/session-navigation.js.map +1 -0
- package/dist/session-picker.d.ts +1 -1
- package/dist/session-picker.d.ts.map +1 -1
- package/dist/session-picker.js +23 -32
- package/dist/session-picker.js.map +1 -1
- package/dist/settings.d.ts +718 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +14 -0
- package/dist/settings.js.map +1 -0
- package/dist/skills.d.ts +1 -1
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +10 -12
- package/dist/skills.js.map +1 -1
- package/dist/slash-commands.d.ts +2 -2
- package/dist/slash-commands.d.ts.map +1 -1
- package/dist/slash-commands.js +149 -67
- package/dist/slash-commands.js.map +1 -1
- package/dist/team-execution.d.ts +10 -0
- package/dist/team-execution.d.ts.map +1 -0
- package/dist/team-execution.js +29 -0
- package/dist/team-execution.js.map +1 -0
- package/dist/team-patches.d.ts.map +1 -1
- package/dist/team-patches.js +149 -52
- package/dist/team-patches.js.map +1 -1
- package/dist/team-plan.d.ts +2 -2
- package/dist/team-plan.d.ts.map +1 -1
- package/dist/team-plan.js +115 -34
- package/dist/team-plan.js.map +1 -1
- package/dist/team-recovery.d.ts +1 -1
- package/dist/team-recovery.d.ts.map +1 -1
- package/dist/team-recovery.js +40 -10
- package/dist/team-recovery.js.map +1 -1
- package/dist/team-v2.d.ts.map +1 -1
- package/dist/team-v2.js +335 -104
- package/dist/team-v2.js.map +1 -1
- package/dist/team-verification.d.ts +4 -2
- package/dist/team-verification.d.ts.map +1 -1
- package/dist/team-verification.js +300 -97
- package/dist/team-verification.js.map +1 -1
- package/dist/team.d.ts +2 -2
- package/dist/team.d.ts.map +1 -1
- package/dist/team.js +172 -62
- package/dist/team.js.map +1 -1
- package/dist/terminal-web.d.ts +1 -0
- package/dist/terminal-web.d.ts.map +1 -1
- package/dist/terminal-web.js +28 -10
- package/dist/terminal-web.js.map +1 -1
- package/dist/ui/actions.d.ts.map +1 -1
- package/dist/ui/actions.js.map +1 -1
- package/dist/ui/retained-tui.d.ts.map +1 -1
- package/dist/ui/retained-tui.js +231 -173
- package/dist/ui/retained-tui.js.map +1 -1
- package/dist/ui/{prototype-view.d.ts → terminal-view.d.ts} +7 -7
- package/dist/ui/terminal-view.d.ts.map +1 -0
- package/dist/ui/{prototype-view.js → terminal-view.js} +185 -98
- package/dist/ui/terminal-view.js.map +1 -0
- package/dist/web-commands.d.ts.map +1 -1
- package/dist/web-commands.js +160 -57
- package/dist/web-commands.js.map +1 -1
- package/dist/web-extension.d.ts.map +1 -1
- package/dist/web-extension.js +14 -4
- package/dist/web-extension.js.map +1 -1
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +2 -1
- package/dist/web-server.js.map +1 -1
- package/dist/web-ui.d.ts.map +1 -1
- package/dist/web-ui.js +167 -40
- package/dist/web-ui.js.map +1 -1
- package/dist/workspace-configuration.d.ts +7 -0
- package/dist/workspace-configuration.d.ts.map +1 -0
- package/dist/workspace-configuration.js +134 -0
- package/dist/workspace-configuration.js.map +1 -0
- package/dist/workspace-state.d.ts +20 -0
- package/dist/workspace-state.d.ts.map +1 -0
- package/dist/workspace-state.js +2 -0
- package/dist/workspace-state.js.map +1 -0
- package/dist/workspace.d.ts +26 -43
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +261 -323
- package/dist/workspace.js.map +1 -1
- package/package.json +21 -31
- package/dist/cli/chunk-7ISOHFS7.js.map +0 -7
- package/dist/cli/chunk-F4XRPLUM.js.map +0 -7
- package/dist/cli/chunk-H7SNBFO4.js +0 -5522
- package/dist/cli/chunk-H7SNBFO4.js.map +0 -7
- package/dist/cli/chunk-HOU5ITUK.js.map +0 -7
- package/dist/cli/chunk-K5JWPNSY.js.map +0 -7
- package/dist/cli/chunk-LVTRXPDS.js.map +0 -7
- package/dist/cli/chunk-VAZMCNBB.js +0 -686
- package/dist/cli/chunk-VAZMCNBB.js.map +0 -7
- package/dist/cli/chunk-WOFEI42C.js +0 -7820
- package/dist/cli/chunk-WOFEI42C.js.map +0 -7
- package/dist/cli/file-type-R2T7TBHI.js.map +0 -7
- package/dist/cli/mcp-auth-UNRHSIKJ.js +0 -63
- package/dist/cli/mcp-auth-UNRHSIKJ.js.map +0 -7
- package/dist/cli/retained-tui-VJ3VX4R3.js.map +0 -7
- package/dist/cli/team-v2-JGBBQ7FR.js.map +0 -7
- package/dist/cli/tui-SA74DKMA.js +0 -1705
- package/dist/cli/tui-SA74DKMA.js.map +0 -7
- package/dist/cli/web-server-FOMNPY7Q.js.map +0 -7
- package/dist/delegation.d.ts +0 -2
- package/dist/delegation.d.ts.map +0 -1
- package/dist/delegation.js +0 -2
- package/dist/delegation.js.map +0 -1
- package/dist/history-memory.d.ts +0 -2
- package/dist/history-memory.d.ts.map +0 -1
- package/dist/history-memory.js +0 -2
- package/dist/history-memory.js.map +0 -1
- package/dist/subagent-budget.d.ts +0 -2
- package/dist/subagent-budget.d.ts.map +0 -1
- package/dist/subagent-budget.js +0 -2
- package/dist/subagent-budget.js.map +0 -1
- package/dist/subagent-files.d.ts +0 -2
- package/dist/subagent-files.d.ts.map +0 -1
- package/dist/subagent-files.js +0 -2
- package/dist/subagent-files.js.map +0 -1
- package/dist/subagent-host.d.ts +0 -2
- package/dist/subagent-host.d.ts.map +0 -1
- package/dist/subagent-host.js +0 -2
- package/dist/subagent-host.js.map +0 -1
- package/dist/subagent-instructions.d.ts +0 -2
- package/dist/subagent-instructions.d.ts.map +0 -1
- package/dist/subagent-instructions.js +0 -2
- package/dist/subagent-instructions.js.map +0 -1
- package/dist/subagents.d.ts +0 -2
- package/dist/subagents.d.ts.map +0 -1
- package/dist/subagents.js +0 -2
- package/dist/subagents.js.map +0 -1
- package/dist/summarizer.d.ts +0 -2
- package/dist/summarizer.d.ts.map +0 -1
- package/dist/summarizer.js +0 -2
- package/dist/summarizer.js.map +0 -1
- package/dist/tui.d.ts +0 -7
- package/dist/tui.d.ts.map +0 -1
- package/dist/tui.js +0 -1109
- package/dist/tui.js.map +0 -1
- package/dist/ui/prototype-view.d.ts.map +0 -1
- package/dist/ui/prototype-view.js.map +0 -1
- /package/dist/cli/{configured-WHY3GGAJ.js.map → configured-ACNM6TRQ.js.map} +0 -0
- /package/dist/cli/{team-T7G7PPNN.js.map → team-O2I5BXHM.js.map} +0 -0
- /package/dist/cli/{web-ui-COB6PKC5.js.map → web-ui-UWQUFE4W.js.map} +0 -0
|
@@ -1119,7 +1119,7 @@ __name(stringWidth, "stringWidth");
|
|
|
1119
1119
|
import { clearLine, cursorTo, moveCursor } from "node:readline";
|
|
1120
1120
|
import { createInterface } from "node:readline/promises";
|
|
1121
1121
|
|
|
1122
|
-
// packages/ui/
|
|
1122
|
+
// packages/ui/tui/dist/keybindings/index.js
|
|
1123
1123
|
var Keymap = class {
|
|
1124
1124
|
static {
|
|
1125
1125
|
__name(this, "Keymap");
|
|
@@ -1195,7 +1195,10 @@ function mergeKeyBindings(defaults, overrides = [], options = {}) {
|
|
|
1195
1195
|
const replaced = new Set(overrides.map((binding) => `${binding.context}\0${binding.action}`));
|
|
1196
1196
|
const keyId = /* @__PURE__ */ __name((binding) => `${binding.context}\0${formatKeySequence(parseKeySequence(binding.keys, options))}`, "keyId");
|
|
1197
1197
|
const rebound = new Set(overrides.map(keyId));
|
|
1198
|
-
return [
|
|
1198
|
+
return [
|
|
1199
|
+
...defaults.filter((binding) => !replaced.has(`${binding.context}\0${binding.action}`) && !rebound.has(keyId(binding))),
|
|
1200
|
+
...overrides
|
|
1201
|
+
];
|
|
1199
1202
|
}
|
|
1200
1203
|
__name(mergeKeyBindings, "mergeKeyBindings");
|
|
1201
1204
|
function keyStroke(key, modifiers = {}) {
|
|
@@ -1339,7 +1342,8 @@ __name(sameStroke, "sameStroke");
|
|
|
1339
1342
|
|
|
1340
1343
|
// packages/ui/tui/dist/node-terminal.js
|
|
1341
1344
|
var import_tty_events = __toESM(require_index_min(), 1);
|
|
1342
|
-
import { PassThrough } from "node:stream";
|
|
1345
|
+
import { PassThrough, Writable } from "node:stream";
|
|
1346
|
+
import { setImmediate as waitImmediate } from "node:timers/promises";
|
|
1343
1347
|
|
|
1344
1348
|
// packages/ui/tui/dist/image-support.js
|
|
1345
1349
|
var import_node_ansiparser = __toESM(require_ansiparser(), 1);
|
|
@@ -1586,6 +1590,7 @@ var TerminalImageSupport = class {
|
|
|
1586
1590
|
// packages/ui/tui/dist/node-terminal.js
|
|
1587
1591
|
function createNodeTerminal(options = {}) {
|
|
1588
1592
|
const source = options.input ?? process.stdin;
|
|
1593
|
+
source.ref?.();
|
|
1589
1594
|
const output = options.output ?? process.stdout;
|
|
1590
1595
|
const interactive = output.isTTY === true;
|
|
1591
1596
|
const imageSupport = new TerminalImageSupport(output);
|
|
@@ -1595,7 +1600,10 @@ function createNodeTerminal(options = {}) {
|
|
|
1595
1600
|
const endFilteredInput = /* @__PURE__ */ __name(() => filtered?.end(), "endFilteredInput");
|
|
1596
1601
|
if (filtered && reports) {
|
|
1597
1602
|
const terminalSource = source;
|
|
1598
|
-
Object.assign(filtered, {
|
|
1603
|
+
Object.assign(filtered, {
|
|
1604
|
+
isTTY: terminalSource.isTTY,
|
|
1605
|
+
setRawMode: /* @__PURE__ */ __name((enabled) => terminalSource.setRawMode?.(enabled), "setRawMode")
|
|
1606
|
+
});
|
|
1599
1607
|
reports.on("keypress", (key) => filtered.write(key.sequence));
|
|
1600
1608
|
reports.on("paste", (text) => filtered.write(`\x1B[200~${text}\x1B[201~`));
|
|
1601
1609
|
reports.on("unknownSequence", (sequence) => {
|
|
@@ -1605,23 +1613,66 @@ function createNodeTerminal(options = {}) {
|
|
|
1605
1613
|
source.on("end", endFilteredInput);
|
|
1606
1614
|
}
|
|
1607
1615
|
const historySize = 200;
|
|
1608
|
-
|
|
1616
|
+
let passwordActive = false;
|
|
1617
|
+
let viewActive = false;
|
|
1618
|
+
let keyInputActive = false;
|
|
1619
|
+
const readlineOutput = new Writable({
|
|
1620
|
+
write(chunk, encoding, callback) {
|
|
1621
|
+
if (!passwordActive && !viewActive && !keyInputActive)
|
|
1622
|
+
output.write(chunk, encoding);
|
|
1623
|
+
callback();
|
|
1624
|
+
}
|
|
1625
|
+
});
|
|
1626
|
+
Object.defineProperties(readlineOutput, {
|
|
1627
|
+
isTTY: { get: /* @__PURE__ */ __name(() => output.isTTY, "get") },
|
|
1628
|
+
columns: { get: /* @__PURE__ */ __name(() => output.columns, "get") }
|
|
1629
|
+
});
|
|
1630
|
+
const lifetime = new AbortController();
|
|
1631
|
+
const interruptListeners = /* @__PURE__ */ new Set();
|
|
1632
|
+
const onReadlineClose = /* @__PURE__ */ __name(() => lifetime.abort(new Error("Terminal closed")), "onReadlineClose");
|
|
1633
|
+
const createReadline = /* @__PURE__ */ __name((size) => createInterface({
|
|
1609
1634
|
input,
|
|
1610
|
-
output,
|
|
1635
|
+
output: readlineOutput,
|
|
1611
1636
|
terminal: interactive,
|
|
1612
|
-
historySize,
|
|
1637
|
+
historySize: size,
|
|
1613
1638
|
removeHistoryDuplicates: true,
|
|
1614
1639
|
escapeCodeTimeout: 100
|
|
1615
|
-
})
|
|
1616
|
-
|
|
1640
|
+
}).on("SIGINT", () => {
|
|
1641
|
+
for (const listener of interruptListeners)
|
|
1642
|
+
listener();
|
|
1643
|
+
}).on("close", onReadlineClose), "createReadline");
|
|
1644
|
+
let readline = createReadline(historySize);
|
|
1645
|
+
let history = readline.history;
|
|
1646
|
+
const replaceReadline = /* @__PURE__ */ __name(async (size) => {
|
|
1647
|
+
readline.removeListener("close", onReadlineClose);
|
|
1648
|
+
input.pause();
|
|
1649
|
+
await waitImmediate();
|
|
1650
|
+
readline.close();
|
|
1651
|
+
if (closed || lifetime.signal.aborted)
|
|
1652
|
+
return;
|
|
1653
|
+
readline = createReadline(size);
|
|
1654
|
+
history = readline.history;
|
|
1655
|
+
}, "replaceReadline");
|
|
1617
1656
|
let activePrompt;
|
|
1657
|
+
let activeEscape;
|
|
1618
1658
|
let activeSuggestionProvider;
|
|
1619
1659
|
let activeSuggestions = [];
|
|
1620
1660
|
let renderedSuggestionCount = 0;
|
|
1621
1661
|
let suggestionVersion = 0;
|
|
1662
|
+
const suggestionTasks = /* @__PURE__ */ new Set();
|
|
1663
|
+
const suggestionErrors = [];
|
|
1664
|
+
const ownSuggestion = /* @__PURE__ */ __name((task) => {
|
|
1665
|
+
const pending = task.then(() => {
|
|
1666
|
+
suggestionTasks.delete(pending);
|
|
1667
|
+
}, (error) => {
|
|
1668
|
+
suggestionTasks.delete(pending);
|
|
1669
|
+
suggestionErrors.push(error);
|
|
1670
|
+
lifetime.abort(error);
|
|
1671
|
+
});
|
|
1672
|
+
suggestionTasks.add(pending);
|
|
1673
|
+
}, "ownSuggestion");
|
|
1622
1674
|
let activeSuggestionInput;
|
|
1623
1675
|
let activeKeyRead;
|
|
1624
|
-
let viewActive = false;
|
|
1625
1676
|
let suppressInterrupt = false;
|
|
1626
1677
|
let closed = false;
|
|
1627
1678
|
let questionReserved = false;
|
|
@@ -1694,17 +1745,12 @@ ${formatSuggestion(suggestion, output.columns)}`);
|
|
|
1694
1745
|
}, "replaceSuggestions");
|
|
1695
1746
|
const refreshSuggestions = /* @__PURE__ */ __name(async () => {
|
|
1696
1747
|
const provider = activeSuggestionProvider;
|
|
1697
|
-
if (!interactive || activePrompt === void 0 || provider === void 0) {
|
|
1748
|
+
if (closed || !interactive || activePrompt === void 0 || provider === void 0) {
|
|
1698
1749
|
return;
|
|
1699
1750
|
}
|
|
1700
1751
|
const line = readline.line;
|
|
1701
1752
|
const version = ++suggestionVersion;
|
|
1702
|
-
|
|
1703
|
-
try {
|
|
1704
|
-
suggestions = await provider(line);
|
|
1705
|
-
} catch {
|
|
1706
|
-
suggestions = [];
|
|
1707
|
-
}
|
|
1753
|
+
const suggestions = await provider(line);
|
|
1708
1754
|
if (version !== suggestionVersion || provider !== activeSuggestionProvider || activePrompt === void 0 || line !== readline.line) {
|
|
1709
1755
|
return;
|
|
1710
1756
|
}
|
|
@@ -1736,14 +1782,19 @@ ${formatSuggestion(suggestion, output.columns)}`);
|
|
|
1736
1782
|
read.resolve(toKeyStroke(value, key));
|
|
1737
1783
|
wakeInputWaiters();
|
|
1738
1784
|
queueMicrotask(() => {
|
|
1739
|
-
if (!closed && activePrompt === void 0) {
|
|
1785
|
+
if (!closed && !questionReserved && activePrompt === void 0) {
|
|
1740
1786
|
readline.write(void 0, { ctrl: true, name: "u" });
|
|
1741
1787
|
}
|
|
1788
|
+
keyInputActive = activeKeyRead !== void 0;
|
|
1742
1789
|
});
|
|
1743
1790
|
return;
|
|
1744
1791
|
}
|
|
1745
1792
|
if (activePrompt === void 0)
|
|
1746
1793
|
return;
|
|
1794
|
+
if (key.name === "escape" && activeEscape !== void 0) {
|
|
1795
|
+
activeEscape();
|
|
1796
|
+
return;
|
|
1797
|
+
}
|
|
1747
1798
|
if (key.name === "tab" && activeSuggestionProvider !== void 0) {
|
|
1748
1799
|
const line = readline.line;
|
|
1749
1800
|
const completed = completeActiveSuggestion(line);
|
|
@@ -1753,11 +1804,11 @@ ${formatSuggestion(suggestion, output.columns)}`);
|
|
|
1753
1804
|
readline.write(void 0, { ctrl: true, name: "u" });
|
|
1754
1805
|
readline.write(expected);
|
|
1755
1806
|
}
|
|
1756
|
-
|
|
1807
|
+
ownSuggestion(refreshSuggestions().then(() => {
|
|
1757
1808
|
if (!completed && activePrompt !== void 0 && readline.line === line) {
|
|
1758
1809
|
completeActiveSuggestion(line);
|
|
1759
1810
|
}
|
|
1760
|
-
});
|
|
1811
|
+
}));
|
|
1761
1812
|
});
|
|
1762
1813
|
return;
|
|
1763
1814
|
}
|
|
@@ -1767,30 +1818,50 @@ ${formatSuggestion(suggestion, output.columns)}`);
|
|
|
1767
1818
|
activeSuggestions = [];
|
|
1768
1819
|
return;
|
|
1769
1820
|
}
|
|
1770
|
-
queueMicrotask(() =>
|
|
1821
|
+
queueMicrotask(() => {
|
|
1822
|
+
if (!closed)
|
|
1823
|
+
ownSuggestion(refreshSuggestions());
|
|
1824
|
+
});
|
|
1771
1825
|
}, "onKeypress");
|
|
1772
1826
|
if (interactive)
|
|
1773
1827
|
input.prependListener("keypress", onKeypress);
|
|
1774
|
-
const updateImageSize = /* @__PURE__ */ __name(() =>
|
|
1828
|
+
const updateImageSize = /* @__PURE__ */ __name(() => {
|
|
1829
|
+
imageSupport.query();
|
|
1830
|
+
readlineOutput.emit("resize");
|
|
1831
|
+
}, "updateImageSize");
|
|
1775
1832
|
output.on("resize", updateImageSize);
|
|
1776
1833
|
return {
|
|
1777
1834
|
imageSupport,
|
|
1778
1835
|
colors: options.colors ?? interactive,
|
|
1779
1836
|
interactive,
|
|
1780
1837
|
async question(prompt, questionOptions = {}) {
|
|
1838
|
+
const signal = questionOptions.signal === void 0 ? lifetime.signal : AbortSignal.any([lifetime.signal, questionOptions.signal]);
|
|
1781
1839
|
if (activePrompt !== void 0 || activeKeyRead !== void 0 || viewActive || questionReserved)
|
|
1782
|
-
await waitForInput(
|
|
1840
|
+
await waitForInput(signal);
|
|
1783
1841
|
try {
|
|
1784
1842
|
if (closed)
|
|
1785
1843
|
throw new Error("Terminal closed");
|
|
1786
|
-
|
|
1844
|
+
signal.throwIfAborted();
|
|
1845
|
+
if (questionOptions.password && (!interactive || source.isTTY !== true)) {
|
|
1846
|
+
throw new Error("Password input requires an interactive terminal");
|
|
1847
|
+
}
|
|
1848
|
+
if (questionOptions.password && questionOptions.suggestions !== void 0) {
|
|
1849
|
+
throw new Error("Password input does not support suggestions");
|
|
1850
|
+
}
|
|
1787
1851
|
} catch (error) {
|
|
1788
1852
|
questionReserved = false;
|
|
1789
1853
|
wakeInputWaiters();
|
|
1790
1854
|
throw error;
|
|
1791
1855
|
}
|
|
1792
|
-
const previousHistory = questionOptions.history === false ? [...history] : void 0;
|
|
1856
|
+
const previousHistory = interactive && (questionOptions.history === false || questionOptions.password) ? [...history] : void 0;
|
|
1857
|
+
passwordActive = questionOptions.password === true;
|
|
1858
|
+
if (passwordActive) {
|
|
1859
|
+
questionReserved = true;
|
|
1860
|
+
await replaceReadline(0);
|
|
1861
|
+
output.write(prompt);
|
|
1862
|
+
}
|
|
1793
1863
|
activePrompt = prompt;
|
|
1864
|
+
activeEscape = questionOptions.onEscape;
|
|
1794
1865
|
questionReserved = false;
|
|
1795
1866
|
activeSuggestionProvider = questionOptions.suggestions;
|
|
1796
1867
|
activeSuggestions = [];
|
|
@@ -1798,14 +1869,21 @@ ${formatSuggestion(suggestion, output.columns)}`);
|
|
|
1798
1869
|
renderedSuggestionCount = 0;
|
|
1799
1870
|
suggestionVersion += 1;
|
|
1800
1871
|
try {
|
|
1801
|
-
return await
|
|
1872
|
+
return await readline.question(prompt, { signal });
|
|
1802
1873
|
} finally {
|
|
1874
|
+
if (passwordActive) {
|
|
1875
|
+
if (!closed && !lifetime.signal.aborted)
|
|
1876
|
+
await replaceReadline(historySize);
|
|
1877
|
+
output.write("\n");
|
|
1878
|
+
passwordActive = false;
|
|
1879
|
+
}
|
|
1803
1880
|
suggestionVersion += 1;
|
|
1804
1881
|
eraseSuggestionRows();
|
|
1805
1882
|
activeSuggestionProvider = void 0;
|
|
1806
1883
|
activeSuggestions = [];
|
|
1807
1884
|
activeSuggestionInput = void 0;
|
|
1808
1885
|
activePrompt = void 0;
|
|
1886
|
+
activeEscape = void 0;
|
|
1809
1887
|
wakeInputWaiters();
|
|
1810
1888
|
if (previousHistory !== void 0) {
|
|
1811
1889
|
history.splice(0, history.length, ...previousHistory);
|
|
@@ -1820,13 +1898,19 @@ ${formatSuggestion(suggestion, output.columns)}`);
|
|
|
1820
1898
|
readline.setPrompt(prompt.replace(/^\r?\n/u, ""));
|
|
1821
1899
|
if (interactive)
|
|
1822
1900
|
readline.prompt(true);
|
|
1901
|
+
if (passwordActive) {
|
|
1902
|
+
clearLine(output, 0);
|
|
1903
|
+
cursorTo(output, 0);
|
|
1904
|
+
output.write(prompt);
|
|
1905
|
+
}
|
|
1823
1906
|
drawSuggestionRows();
|
|
1824
1907
|
},
|
|
1825
1908
|
readKey({ signal } = {}) {
|
|
1909
|
+
signal = signal === void 0 ? lifetime.signal : AbortSignal.any([lifetime.signal, signal]);
|
|
1826
1910
|
if (!interactive) {
|
|
1827
1911
|
return Promise.reject(new Error("Key input requires an interactive terminal"));
|
|
1828
1912
|
}
|
|
1829
|
-
if (activePrompt !== void 0 || activeKeyRead !== void 0) {
|
|
1913
|
+
if (activePrompt !== void 0 || activeKeyRead !== void 0 || questionReserved) {
|
|
1830
1914
|
return Promise.reject(new Error("The terminal input is already active"));
|
|
1831
1915
|
}
|
|
1832
1916
|
if (signal?.aborted)
|
|
@@ -1836,6 +1920,7 @@ ${formatSuggestion(suggestion, output.columns)}`);
|
|
|
1836
1920
|
if (activeKeyRead !== read)
|
|
1837
1921
|
return;
|
|
1838
1922
|
activeKeyRead = void 0;
|
|
1923
|
+
keyInputActive = false;
|
|
1839
1924
|
read.cleanup();
|
|
1840
1925
|
reject(abortError(signal?.reason));
|
|
1841
1926
|
wakeInputWaiters();
|
|
@@ -1846,6 +1931,7 @@ ${formatSuggestion(suggestion, output.columns)}`);
|
|
|
1846
1931
|
cleanup: /* @__PURE__ */ __name(() => signal?.removeEventListener("abort", onAbort), "cleanup")
|
|
1847
1932
|
};
|
|
1848
1933
|
activeKeyRead = read;
|
|
1934
|
+
keyInputActive = true;
|
|
1849
1935
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
1850
1936
|
});
|
|
1851
1937
|
},
|
|
@@ -1887,8 +1973,8 @@ ${formatSuggestion(suggestion, output.columns)}`);
|
|
|
1887
1973
|
return;
|
|
1888
1974
|
}
|
|
1889
1975
|
eraseSuggestionRows();
|
|
1890
|
-
const line = readline.line;
|
|
1891
|
-
const position = readline.cursor;
|
|
1976
|
+
const line = passwordActive ? "" : readline.line;
|
|
1977
|
+
const position = passwordActive ? 0 : readline.cursor;
|
|
1892
1978
|
clearLine(output, 0);
|
|
1893
1979
|
cursorTo(output, 0);
|
|
1894
1980
|
const update = text.replace(/^\r?\n/u, "");
|
|
@@ -1909,11 +1995,14 @@ ${formatSuggestion(suggestion, output.columns)}`);
|
|
|
1909
1995
|
}
|
|
1910
1996
|
listener();
|
|
1911
1997
|
}, "wrapped");
|
|
1912
|
-
|
|
1913
|
-
return () =>
|
|
1998
|
+
interruptListeners.add(wrapped);
|
|
1999
|
+
return () => {
|
|
2000
|
+
interruptListeners.delete(wrapped);
|
|
2001
|
+
};
|
|
1914
2002
|
},
|
|
1915
|
-
close() {
|
|
2003
|
+
async close() {
|
|
1916
2004
|
closed = true;
|
|
2005
|
+
lifetime.abort(new Error("Terminal closed"));
|
|
1917
2006
|
wakeInputWaiters();
|
|
1918
2007
|
activeKeyRead?.reject(new Error("Terminal closed"));
|
|
1919
2008
|
activeKeyRead?.cleanup();
|
|
@@ -1923,11 +2012,16 @@ ${formatSuggestion(suggestion, output.columns)}`);
|
|
|
1923
2012
|
if (interactive)
|
|
1924
2013
|
input.removeListener("keypress", onKeypress);
|
|
1925
2014
|
readline.close();
|
|
2015
|
+
interruptListeners.clear();
|
|
1926
2016
|
output.removeListener("resize", updateImageSize);
|
|
1927
2017
|
reports?.pause();
|
|
1928
2018
|
reports?.removeAllListeners();
|
|
1929
2019
|
source.removeListener("end", endFilteredInput);
|
|
1930
2020
|
filtered?.destroy();
|
|
2021
|
+
source.unref?.();
|
|
2022
|
+
await Promise.all([...suggestionTasks]);
|
|
2023
|
+
if (suggestionErrors.length)
|
|
2024
|
+
throw new AggregateError(suggestionErrors, "Terminal suggestion processing failed");
|
|
1931
2025
|
}
|
|
1932
2026
|
};
|
|
1933
2027
|
}
|
|
@@ -1995,4 +2089,4 @@ export {
|
|
|
1995
2089
|
TerminalImageSupport,
|
|
1996
2090
|
createNodeTerminal
|
|
1997
2091
|
};
|
|
1998
|
-
//# sourceMappingURL=chunk-
|
|
2092
|
+
//# sourceMappingURL=chunk-4WG6JIJJ.js.map
|