@maiaos/cli 0.1.0-canary.2
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 +287 -0
- package/dist/bin/maia.NOTICES.txt +59 -0
- package/dist/bin/maia.cdx.json +145 -0
- package/dist/bin/maia.mjs +2 -0
- package/dist/bootstrap/index.d.ts +3 -0
- package/dist/bootstrap/index.js +3 -0
- package/dist/bootstrap/process.d.ts +5 -0
- package/dist/bootstrap/process.js +45 -0
- package/dist/bootstrap/run.d.ts +25 -0
- package/dist/bootstrap/run.js +95 -0
- package/dist/bootstrap/stdio.d.ts +4 -0
- package/dist/bootstrap/stdio.js +9 -0
- package/dist/cli/cli.d.ts +17 -0
- package/dist/cli/cli.js +481 -0
- package/dist/cli/environment.d.ts +8 -0
- package/dist/cli/environment.js +12 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +2 -0
- package/dist/cli/services.d.ts +4 -0
- package/dist/cli/services.js +4 -0
- package/dist/command-line/context.d.ts +178 -0
- package/dist/command-line/context.js +2 -0
- package/dist/command-line/index.d.ts +7 -0
- package/dist/command-line/index.js +6 -0
- package/dist/command-line/input/arguments.d.ts +55 -0
- package/dist/command-line/input/arguments.js +220 -0
- package/dist/command-line/input/index.d.ts +4 -0
- package/dist/command-line/input/index.js +4 -0
- package/dist/command-line/input/prompt.d.ts +8 -0
- package/dist/command-line/input/prompt.js +44 -0
- package/dist/command-line/input/stdin-stream.d.ts +4 -0
- package/dist/command-line/input/stdin-stream.js +3 -0
- package/dist/command-line/input/stdin.d.ts +11 -0
- package/dist/command-line/input/stdin.js +23 -0
- package/dist/command-line/json-decoder.d.ts +3 -0
- package/dist/command-line/json-decoder.js +3 -0
- package/dist/command-line/json.d.ts +3 -0
- package/dist/command-line/json.js +4 -0
- package/dist/command-line/output.d.ts +57 -0
- package/dist/command-line/output.js +94 -0
- package/dist/command-line/rows.d.ts +10 -0
- package/dist/command-line/rows.js +32 -0
- package/dist/command-line/two-phase.d.ts +57 -0
- package/dist/command-line/two-phase.js +148 -0
- package/dist/command-receipt/command.d.ts +4 -0
- package/dist/command-receipt/command.js +59 -0
- package/dist/command-receipt/compact-list.d.ts +20 -0
- package/dist/command-receipt/compact-list.js +29 -0
- package/dist/command-receipt/index.d.ts +3 -0
- package/dist/command-receipt/index.js +3 -0
- package/dist/command-tree/commands.d.ts +17 -0
- package/dist/command-tree/commands.js +41 -0
- package/dist/command-tree/completion.d.ts +6 -0
- package/dist/command-tree/completion.js +36 -0
- package/dist/command-tree/grammar.d.ts +18 -0
- package/dist/command-tree/grammar.js +160 -0
- package/dist/command-tree/help.d.ts +62 -0
- package/dist/command-tree/help.js +219 -0
- package/dist/command-tree/index.d.ts +8 -0
- package/dist/command-tree/index.js +6 -0
- package/dist/command-tree/local.d.ts +3 -0
- package/dist/command-tree/local.js +126 -0
- package/dist/command-tree/placeholder.d.ts +3 -0
- package/dist/command-tree/placeholder.js +4 -0
- package/dist/command-tree/row.d.ts +29 -0
- package/dist/command-tree/row.js +2 -0
- package/dist/command-tree/suggest.d.ts +3 -0
- package/dist/command-tree/suggest.js +81 -0
- package/dist/command-tree/tree.d.ts +34 -0
- package/dist/command-tree/tree.js +124 -0
- package/dist/connection/client.d.ts +692 -0
- package/dist/connection/client.js +28 -0
- package/dist/connection/commands.d.ts +15 -0
- package/dist/connection/commands.js +118 -0
- package/dist/connection/index.d.ts +7 -0
- package/dist/connection/index.js +7 -0
- package/dist/connection/input.d.ts +50 -0
- package/dist/connection/input.js +90 -0
- package/dist/connection/login.d.ts +13 -0
- package/dist/connection/login.js +69 -0
- package/dist/connection/output/format.d.ts +32 -0
- package/dist/connection/output/format.js +94 -0
- package/dist/connection/output/index.d.ts +2 -0
- package/dist/connection/output/index.js +2 -0
- package/dist/connection/resolve.d.ts +60 -0
- package/dist/connection/resolve.js +30 -0
- package/dist/connection/signin.d.ts +4 -0
- package/dist/connection/signin.js +32 -0
- package/dist/connection/system.d.ts +4 -0
- package/dist/connection/system.js +190 -0
- package/dist/connection/tree/index.d.ts +2 -0
- package/dist/connection/tree/index.js +2 -0
- package/dist/connection/tree/tree.d.ts +3 -0
- package/dist/connection/tree/tree.js +209 -0
- package/dist/container/client.d.ts +142 -0
- package/dist/container/client.js +11 -0
- package/dist/container/commands.d.ts +7 -0
- package/dist/container/commands.js +100 -0
- package/dist/container/index.d.ts +3 -0
- package/dist/container/index.js +3 -0
- package/dist/container/output/format.d.ts +11 -0
- package/dist/container/output/format.js +28 -0
- package/dist/container/output/index.d.ts +2 -0
- package/dist/container/output/index.js +2 -0
- package/dist/context/client.d.ts +7 -0
- package/dist/context/client.js +21 -0
- package/dist/context/commands.d.ts +3 -0
- package/dist/context/commands.js +27 -0
- package/dist/context/index.d.ts +3 -0
- package/dist/context/index.js +3 -0
- package/dist/development/cli.d.ts +3 -0
- package/dist/development/cli.js +44 -0
- package/dist/execution/client.d.ts +25 -0
- package/dist/execution/client.js +24 -0
- package/dist/execution/index.d.ts +3 -0
- package/dist/execution/index.js +3 -0
- package/dist/execution/relocation.d.ts +6 -0
- package/dist/execution/relocation.js +123 -0
- package/dist/execution/tree/index.d.ts +2 -0
- package/dist/execution/tree/index.js +2 -0
- package/dist/execution/tree/tree.d.ts +3 -0
- package/dist/execution/tree/tree.js +137 -0
- package/dist/hold/client.d.ts +137 -0
- package/dist/hold/client.js +12 -0
- package/dist/hold/commands.d.ts +5 -0
- package/dist/hold/commands.js +91 -0
- package/dist/hold/index.d.ts +3 -0
- package/dist/hold/index.js +3 -0
- package/dist/hold/output/format.d.ts +11 -0
- package/dist/hold/output/format.js +29 -0
- package/dist/hold/output/index.d.ts +2 -0
- package/dist/hold/output/index.js +2 -0
- package/dist/hold/tree/index.d.ts +2 -0
- package/dist/hold/tree/index.js +2 -0
- package/dist/hold/tree/tree.d.ts +3 -0
- package/dist/hold/tree/tree.js +96 -0
- package/dist/import/client.d.ts +14 -0
- package/dist/import/client.js +16 -0
- package/dist/import/commands.d.ts +5 -0
- package/dist/import/commands.js +76 -0
- package/dist/import/index.d.ts +3 -0
- package/dist/import/index.js +3 -0
- package/dist/import/input.d.ts +16 -0
- package/dist/import/input.js +92 -0
- package/dist/import/output.d.ts +6 -0
- package/dist/import/output.js +40 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/integration/client.d.ts +1284 -0
- package/dist/integration/client.js +24 -0
- package/dist/integration/commands.d.ts +10 -0
- package/dist/integration/commands.js +104 -0
- package/dist/integration/index.d.ts +3 -0
- package/dist/integration/index.js +3 -0
- package/dist/integration/output.d.ts +22 -0
- package/dist/integration/output.js +20 -0
- package/dist/local-node/call.d.ts +7 -0
- package/dist/local-node/call.js +13 -0
- package/dist/local-node/client.d.ts +67 -0
- package/dist/local-node/client.js +241 -0
- package/dist/local-node/index.d.ts +3 -0
- package/dist/local-node/index.js +3 -0
- package/dist/login/agent-provider.d.ts +20 -0
- package/dist/login/agent-provider.js +109 -0
- package/dist/login/commands.d.ts +4 -0
- package/dist/login/commands.js +93 -0
- package/dist/login/failure.d.ts +3 -0
- package/dist/login/failure.js +14 -0
- package/dist/login/gateway.d.ts +12 -0
- package/dist/login/gateway.js +71 -0
- package/dist/login/index.d.ts +3 -0
- package/dist/login/index.js +2 -0
- package/dist/login/menu.d.ts +4 -0
- package/dist/login/menu.js +105 -0
- package/dist/login/output/format.d.ts +16 -0
- package/dist/login/output/format.js +31 -0
- package/dist/login/output/index.d.ts +2 -0
- package/dist/login/output/index.js +2 -0
- package/dist/login/vendor-account.d.ts +95 -0
- package/dist/login/vendor-account.js +75 -0
- package/dist/login/vendor-input.d.ts +14 -0
- package/dist/login/vendor-input.js +36 -0
- package/dist/mcp/calls.d.ts +7 -0
- package/dist/mcp/calls.js +202 -0
- package/dist/mcp/commands.d.ts +9 -0
- package/dist/mcp/commands.js +21 -0
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.js +2 -0
- package/dist/mcp/server.d.ts +11 -0
- package/dist/mcp/server.js +57 -0
- package/dist/orchestration/client.d.ts +78 -0
- package/dist/orchestration/client.js +89 -0
- package/dist/orchestration/commands.d.ts +14 -0
- package/dist/orchestration/commands.js +312 -0
- package/dist/orchestration/index.d.ts +3 -0
- package/dist/orchestration/index.js +3 -0
- package/dist/orchestration/output/compact-aggregate.d.ts +121 -0
- package/dist/orchestration/output/compact-aggregate.js +110 -0
- package/dist/orchestration/output/compact-run-list.d.ts +20 -0
- package/dist/orchestration/output/compact-run-list.js +16 -0
- package/dist/orchestration/output/human.d.ts +80 -0
- package/dist/orchestration/output/human.js +252 -0
- package/dist/orchestration/output/index.d.ts +4 -0
- package/dist/orchestration/output/index.js +4 -0
- package/dist/orchestration/tree/index.d.ts +2 -0
- package/dist/orchestration/tree/index.js +2 -0
- package/dist/orchestration/tree/tree.d.ts +3 -0
- package/dist/orchestration/tree/tree.js +142 -0
- package/dist/port-lease/client.d.ts +160 -0
- package/dist/port-lease/client.js +11 -0
- package/dist/port-lease/commands.d.ts +6 -0
- package/dist/port-lease/commands.js +17 -0
- package/dist/port-lease/index.d.ts +3 -0
- package/dist/port-lease/index.js +3 -0
- package/dist/port-lease/input.d.ts +65 -0
- package/dist/port-lease/input.js +67 -0
- package/dist/port-lease/output/format.d.ts +11 -0
- package/dist/port-lease/output/format.js +24 -0
- package/dist/port-lease/output/index.d.ts +2 -0
- package/dist/port-lease/output/index.js +2 -0
- package/dist/presentation/client.d.ts +10 -0
- package/dist/presentation/client.js +9 -0
- package/dist/presentation/commands.d.ts +6 -0
- package/dist/presentation/commands.js +78 -0
- package/dist/presentation/index.d.ts +4 -0
- package/dist/presentation/index.js +3 -0
- package/dist/presentation/output/format.d.ts +11 -0
- package/dist/presentation/output/format.js +32 -0
- package/dist/presentation/output/index.d.ts +3 -0
- package/dist/presentation/output/index.js +2 -0
- package/dist/project-guard/client.d.ts +88 -0
- package/dist/project-guard/client.js +7 -0
- package/dist/project-guard/commands.d.ts +4 -0
- package/dist/project-guard/commands.js +39 -0
- package/dist/project-guard/index.d.ts +3 -0
- package/dist/project-guard/index.js +3 -0
- package/dist/project-guard/input.d.ts +18 -0
- package/dist/project-guard/input.js +47 -0
- package/dist/project-guard/output/format.d.ts +11 -0
- package/dist/project-guard/output/format.js +35 -0
- package/dist/project-guard/output/index.d.ts +2 -0
- package/dist/project-guard/output/index.js +2 -0
- package/dist/project-workspace/client.d.ts +86 -0
- package/dist/project-workspace/client.js +159 -0
- package/dist/project-workspace/commands.d.ts +30 -0
- package/dist/project-workspace/commands.js +700 -0
- package/dist/project-workspace/index.d.ts +5 -0
- package/dist/project-workspace/index.js +5 -0
- package/dist/project-workspace/metadata-client.d.ts +99 -0
- package/dist/project-workspace/metadata-client.js +8 -0
- package/dist/project-workspace/metadata-commands.d.ts +4 -0
- package/dist/project-workspace/metadata-commands.js +56 -0
- package/dist/project-workspace/output/human.d.ts +126 -0
- package/dist/project-workspace/output/human.js +103 -0
- package/dist/project-workspace/output/index.d.ts +3 -0
- package/dist/project-workspace/output/index.js +3 -0
- package/dist/project-workspace/output/metadata.d.ts +11 -0
- package/dist/project-workspace/output/metadata.js +17 -0
- package/dist/project-workspace/tree/index.d.ts +2 -0
- package/dist/project-workspace/tree/index.js +2 -0
- package/dist/project-workspace/tree/tree.d.ts +3 -0
- package/dist/project-workspace/tree/tree.js +197 -0
- package/dist/provider/client.d.ts +6 -0
- package/dist/provider/client.js +5 -0
- package/dist/provider/commands.d.ts +3 -0
- package/dist/provider/commands.js +38 -0
- package/dist/provider/index.d.ts +3 -0
- package/dist/provider/index.js +3 -0
- package/dist/reference/commands.d.ts +3 -0
- package/dist/reference/commands.js +39 -0
- package/dist/reference/index.d.ts +3 -0
- package/dist/reference/index.js +3 -0
- package/dist/reference/resolve.d.ts +29 -0
- package/dist/reference/resolve.js +294 -0
- package/dist/reference/tree/index.d.ts +2 -0
- package/dist/reference/tree/index.js +2 -0
- package/dist/reference/tree/tree.d.ts +3 -0
- package/dist/reference/tree/tree.js +17 -0
- package/dist/remote-node/client.d.ts +258 -0
- package/dist/remote-node/client.js +12 -0
- package/dist/remote-node/commands.d.ts +6 -0
- package/dist/remote-node/commands.js +264 -0
- package/dist/remote-node/connector.d.ts +59 -0
- package/dist/remote-node/connector.js +122 -0
- package/dist/remote-node/index.d.ts +4 -0
- package/dist/remote-node/index.js +4 -0
- package/dist/remote-node/reachability.d.ts +22 -0
- package/dist/remote-node/reachability.js +34 -0
- package/dist/remote-node/text.d.ts +9 -0
- package/dist/remote-node/text.js +64 -0
- package/dist/remote-node/tree/index.d.ts +2 -0
- package/dist/remote-node/tree/index.js +2 -0
- package/dist/remote-node/tree/tree.d.ts +3 -0
- package/dist/remote-node/tree/tree.js +51 -0
- package/dist/run-ledger/client.d.ts +358 -0
- package/dist/run-ledger/client.js +13 -0
- package/dist/run-ledger/commands.d.ts +8 -0
- package/dist/run-ledger/commands.js +19 -0
- package/dist/run-ledger/index.d.ts +3 -0
- package/dist/run-ledger/index.js +3 -0
- package/dist/run-ledger/input.d.ts +42 -0
- package/dist/run-ledger/input.js +107 -0
- package/dist/run-ledger/output/format.d.ts +11 -0
- package/dist/run-ledger/output/format.js +49 -0
- package/dist/run-ledger/output/index.d.ts +2 -0
- package/dist/run-ledger/output/index.js +2 -0
- package/dist/session/agent-permission.d.ts +63 -0
- package/dist/session/agent-permission.js +20 -0
- package/dist/session/approval/client.d.ts +117 -0
- package/dist/session/approval/client.js +7 -0
- package/dist/session/approval/commands.d.ts +7 -0
- package/dist/session/approval/commands.js +123 -0
- package/dist/session/approval/index.d.ts +3 -0
- package/dist/session/approval/index.js +3 -0
- package/dist/session/approval/output/format.d.ts +12 -0
- package/dist/session/approval/output/format.js +25 -0
- package/dist/session/approval/output/index.d.ts +2 -0
- package/dist/session/approval/output/index.js +2 -0
- package/dist/session/attach-client.d.ts +16 -0
- package/dist/session/attach-client.js +8 -0
- package/dist/session/attach-render.d.ts +16 -0
- package/dist/session/attach-render.js +154 -0
- package/dist/session/attach.d.ts +5 -0
- package/dist/session/attach.js +106 -0
- package/dist/session/client.d.ts +132 -0
- package/dist/session/client.js +128 -0
- package/dist/session/coding-client.d.ts +16 -0
- package/dist/session/coding-client.js +15 -0
- package/dist/session/coding-commands.d.ts +4 -0
- package/dist/session/coding-commands.js +50 -0
- package/dist/session/commands.d.ts +13 -0
- package/dist/session/commands.js +488 -0
- package/dist/session/create-tasks.d.ts +20 -0
- package/dist/session/create-tasks.js +110 -0
- package/dist/session/index.d.ts +9 -0
- package/dist/session/index.js +7 -0
- package/dist/session/interaction/client.d.ts +347 -0
- package/dist/session/interaction/client.js +15 -0
- package/dist/session/interaction/commands.d.ts +7 -0
- package/dist/session/interaction/commands.js +101 -0
- package/dist/session/interaction/index.d.ts +3 -0
- package/dist/session/interaction/index.js +3 -0
- package/dist/session/interaction/input.d.ts +15 -0
- package/dist/session/interaction/input.js +46 -0
- package/dist/session/interaction/output/format.d.ts +11 -0
- package/dist/session/interaction/output/format.js +3 -0
- package/dist/session/interaction/output/index.d.ts +2 -0
- package/dist/session/interaction/output/index.js +2 -0
- package/dist/session/output/diff.d.ts +3 -0
- package/dist/session/output/diff.js +30 -0
- package/dist/session/output/failure.d.ts +11 -0
- package/dist/session/output/failure.js +24 -0
- package/dist/session/output/human.d.ts +112 -0
- package/dist/session/output/human.js +71 -0
- package/dist/session/output/index.d.ts +6 -0
- package/dist/session/output/index.js +6 -0
- package/dist/session/output/observe.d.ts +4 -0
- package/dist/session/output/observe.js +46 -0
- package/dist/session/output/tasks.d.ts +19 -0
- package/dist/session/output/tasks.js +34 -0
- package/dist/session/rename.d.ts +3 -0
- package/dist/session/rename.js +37 -0
- package/dist/session/task-file.d.ts +5 -0
- package/dist/session/task-file.js +23 -0
- package/dist/session/tree/index.d.ts +2 -0
- package/dist/session/tree/index.js +2 -0
- package/dist/session/tree/tree.d.ts +3 -0
- package/dist/session/tree/tree.js +309 -0
- package/dist/session/turn/client.d.ts +25 -0
- package/dist/session/turn/client.js +40 -0
- package/dist/session/turn/commands.d.ts +6 -0
- package/dist/session/turn/commands.js +157 -0
- package/dist/session/turn/index.d.ts +4 -0
- package/dist/session/turn/index.js +3 -0
- package/dist/session/turn/output.d.ts +42 -0
- package/dist/session/turn/output.js +38 -0
- package/dist/status/client.d.ts +119 -0
- package/dist/status/client.js +5 -0
- package/dist/status/command.d.ts +4 -0
- package/dist/status/command.js +40 -0
- package/dist/status/doctor.d.ts +15 -0
- package/dist/status/doctor.js +111 -0
- package/dist/status/index.d.ts +5 -0
- package/dist/status/index.js +4 -0
- package/dist/status/output/compact.d.ts +31 -0
- package/dist/status/output/compact.js +46 -0
- package/dist/status/output/human.d.ts +7 -0
- package/dist/status/output/human.js +30 -0
- package/dist/status/output/index.d.ts +3 -0
- package/dist/status/output/index.js +3 -0
- package/dist/terminal/arguments.d.ts +13 -0
- package/dist/terminal/arguments.js +79 -0
- package/dist/terminal/client.d.ts +79 -0
- package/dist/terminal/client.js +68 -0
- package/dist/terminal/commands.d.ts +7 -0
- package/dist/terminal/commands.js +131 -0
- package/dist/terminal/control-commands.d.ts +10 -0
- package/dist/terminal/control-commands.js +212 -0
- package/dist/terminal/index.d.ts +4 -0
- package/dist/terminal/index.js +4 -0
- package/dist/terminal/output/compact-list.d.ts +147 -0
- package/dist/terminal/output/compact-list.js +152 -0
- package/dist/terminal/output/human.d.ts +59 -0
- package/dist/terminal/output/human.js +55 -0
- package/dist/terminal/output/index.d.ts +3 -0
- package/dist/terminal/output/index.js +3 -0
- package/dist/terminal/tree/index.d.ts +2 -0
- package/dist/terminal/tree/index.js +2 -0
- package/dist/terminal/tree/tree.d.ts +3 -0
- package/dist/terminal/tree/tree.js +104 -0
- package/guidance/maia-cli/SKILL.md +58 -0
- package/guidance/maia-orchestration/SKILL.md +54 -0
- package/package.json +76 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import * as Cause from "effect/Cause";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Exit from "effect/Exit";
|
|
5
|
+
import * as Runtime from "effect/Runtime";
|
|
6
|
+
import { promptLine, terminalIsInteractive, } from "../command-line/input/index.js";
|
|
7
|
+
const readProcessStdin = (request) => Effect.promise(() => import("./stdio.js")).pipe(Effect.flatMap((stdio) => stdio.readStdin(request)));
|
|
8
|
+
export const processIo = () => ({
|
|
9
|
+
interactive: terminalIsInteractive(),
|
|
10
|
+
prompt: promptLine,
|
|
11
|
+
stderr(text) {
|
|
12
|
+
process.stderr.write(text);
|
|
13
|
+
},
|
|
14
|
+
stdin: readProcessStdin,
|
|
15
|
+
stdout(text) {
|
|
16
|
+
process.stdout.write(text);
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
const EXIT_INTERRUPTED = 130;
|
|
20
|
+
const runMain = Runtime.makeRunMain(({ fiber, teardown }) => {
|
|
21
|
+
fiber.addObserver((exit) => {
|
|
22
|
+
teardown(exit, (code) => {
|
|
23
|
+
process.exitCode = code;
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
export const runProcessMain = (program) => {
|
|
28
|
+
runMain(program, {
|
|
29
|
+
disableErrorReporting: true,
|
|
30
|
+
teardown: (exit, onExit) => {
|
|
31
|
+
if (Exit.isSuccess(exit) && typeof exit.value === "number") {
|
|
32
|
+
onExit(exit.value);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (Exit.isFailure(exit) && Cause.hasInterruptsOnly(exit.cause)) {
|
|
36
|
+
onExit(EXIT_INTERRUPTED);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (Exit.isFailure(exit))
|
|
40
|
+
process.stderr.write(`${Cause.pretty(exit.cause)}\n`);
|
|
41
|
+
onExit(1);
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=process.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import type { CliIo } from "../command-line/index.js";
|
|
3
|
+
type AgentModule = {
|
|
4
|
+
readonly runMaiaAgent?: (arguments_: readonly string[], options: {
|
|
5
|
+
readonly io: Pick<CliIo, "stderr" | "stdout">;
|
|
6
|
+
}) => Promise<number>;
|
|
7
|
+
};
|
|
8
|
+
type ProductCliModule = {
|
|
9
|
+
readonly runCli?: (arguments_: readonly string[], version: string, io: CliIo) => Effect.Effect<number>;
|
|
10
|
+
};
|
|
11
|
+
export type MaiaBootstrapDependencies = {
|
|
12
|
+
readonly loadAgent: () => Promise<AgentModule>;
|
|
13
|
+
readonly loadProductCli: () => Promise<ProductCliModule>;
|
|
14
|
+
};
|
|
15
|
+
type MaiaBootstrapInput = {
|
|
16
|
+
readonly arguments_: readonly string[];
|
|
17
|
+
readonly currentNodeVersion: string;
|
|
18
|
+
readonly expectedNodeVersion: string;
|
|
19
|
+
readonly io: CliIo;
|
|
20
|
+
readonly version: string;
|
|
21
|
+
};
|
|
22
|
+
export declare const isAgentInvocation: (arguments_: readonly string[]) => boolean;
|
|
23
|
+
export declare const runMaiaBootstrap: (input: MaiaBootstrapInput, dependencies: MaiaBootstrapDependencies) => Effect.Effect<number>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import * as Cause from "effect/Cause";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
const EXIT_SOFTWARE = 70;
|
|
4
|
+
const EXIT_UNAVAILABLE = 69;
|
|
5
|
+
const isDoctor = (arguments_) => !arguments_.includes("-h") &&
|
|
6
|
+
!arguments_.includes("--help") &&
|
|
7
|
+
arguments_.find((token) => !token.startsWith("-")) === "doctor";
|
|
8
|
+
export const isAgentInvocation = (arguments_) => arguments_[0] === "agent";
|
|
9
|
+
const reportBootstrapFailure = (subject, io) => {
|
|
10
|
+
io.stderr(`Maia ${subject} could not start; run 'maia doctor'.\n`);
|
|
11
|
+
return EXIT_SOFTWARE;
|
|
12
|
+
};
|
|
13
|
+
const load = (loader) => Effect.tryPromise({ catch: (error) => error, try: loader });
|
|
14
|
+
const probe = (loader, passes) => load(loader).pipe(Effect.map(passes), Effect.catchCause((cause) => Cause.hasInterruptsOnly(cause) ? Effect.interrupt : Effect.succeed(false)));
|
|
15
|
+
const probePayloads = (dependencies) => Effect.all([
|
|
16
|
+
probe(dependencies.loadProductCli, (module) => typeof module.runCli === "function"),
|
|
17
|
+
probe(dependencies.loadAgent, (module) => typeof module.runMaiaAgent === "function"),
|
|
18
|
+
]).pipe(Effect.map(([cliPayload, agent]) => ({ agent, cliPayload })));
|
|
19
|
+
const formatInstallation = (checks) => `Maia doctor failed\n${checks
|
|
20
|
+
.map((check) => ` ${check.code}: ${check.ok ? "ok" : "failed; next: reinstall Maia"}`)
|
|
21
|
+
.join("\n")}\n`;
|
|
22
|
+
const writeInstallationFailure = (output) => {
|
|
23
|
+
const { arguments_, checks, input } = output;
|
|
24
|
+
const result = {
|
|
25
|
+
checks: checks.map((check) => check.ok ? check : { ...check, next: "reinstall Maia" }),
|
|
26
|
+
command: "doctor",
|
|
27
|
+
ok: false,
|
|
28
|
+
version: input.version,
|
|
29
|
+
};
|
|
30
|
+
input.io.stdout(arguments_.includes("--json")
|
|
31
|
+
? `${JSON.stringify({ ok: true, result })}\n`
|
|
32
|
+
: formatInstallation(checks));
|
|
33
|
+
return EXIT_SOFTWARE;
|
|
34
|
+
};
|
|
35
|
+
const runDoctor = (input, dependencies) => Effect.flatMap(probePayloads(dependencies), (payloads) => {
|
|
36
|
+
const checks = [
|
|
37
|
+
{ code: "bootstrap", ok: true },
|
|
38
|
+
{
|
|
39
|
+
code: "node_runtime",
|
|
40
|
+
ok: input.currentNodeVersion === input.expectedNodeVersion,
|
|
41
|
+
},
|
|
42
|
+
{ code: "cli_payload", ok: payloads.cliPayload },
|
|
43
|
+
{ code: "agent", ok: payloads.agent },
|
|
44
|
+
];
|
|
45
|
+
return checks.every((check) => check.ok)
|
|
46
|
+
? runProductCli(input, dependencies)
|
|
47
|
+
: Effect.succeed(writeInstallationFailure({
|
|
48
|
+
arguments_: input.arguments_,
|
|
49
|
+
checks,
|
|
50
|
+
input,
|
|
51
|
+
}));
|
|
52
|
+
});
|
|
53
|
+
const requireSupportedNode = (input) => {
|
|
54
|
+
if (input.currentNodeVersion === input.expectedNodeVersion)
|
|
55
|
+
return undefined;
|
|
56
|
+
input.io.stderr(`Maia CLI requires Node ${input.expectedNodeVersion}; received ${input.currentNodeVersion}.\n`);
|
|
57
|
+
return EXIT_UNAVAILABLE;
|
|
58
|
+
};
|
|
59
|
+
const missingEntry = Effect.fail(new Error("The payload lacks its entry."));
|
|
60
|
+
const runPayload = ({ input, loader, run, subject, }) => load(loader).pipe(Effect.flatMap(run), Effect.catchCause((cause) => Cause.hasInterruptsOnly(cause)
|
|
61
|
+
? Effect.interrupt
|
|
62
|
+
: Effect.sync(() => reportBootstrapFailure(subject, input.io))));
|
|
63
|
+
const runAgent = (input, dependencies) => runPayload({
|
|
64
|
+
input,
|
|
65
|
+
loader: dependencies.loadAgent,
|
|
66
|
+
run: (module) => {
|
|
67
|
+
const runMaiaAgent = module.runMaiaAgent;
|
|
68
|
+
return typeof runMaiaAgent === "function"
|
|
69
|
+
? Effect.tryPromise({
|
|
70
|
+
catch: (error) => error,
|
|
71
|
+
try: () => runMaiaAgent(input.arguments_.slice(1), { io: input.io }),
|
|
72
|
+
})
|
|
73
|
+
: missingEntry;
|
|
74
|
+
},
|
|
75
|
+
subject: "Agent",
|
|
76
|
+
});
|
|
77
|
+
const runProductCli = (input, dependencies) => runPayload({
|
|
78
|
+
input,
|
|
79
|
+
loader: dependencies.loadProductCli,
|
|
80
|
+
run: (module) => typeof module.runCli === "function"
|
|
81
|
+
? module.runCli(input.arguments_, input.version, input.io)
|
|
82
|
+
: missingEntry,
|
|
83
|
+
subject: "CLI",
|
|
84
|
+
});
|
|
85
|
+
export const runMaiaBootstrap = (input, dependencies) => Effect.suspend(() => {
|
|
86
|
+
if (isDoctor(input.arguments_))
|
|
87
|
+
return runDoctor(input, dependencies);
|
|
88
|
+
const unsupportedNode = requireSupportedNode(input);
|
|
89
|
+
if (unsupportedNode !== undefined)
|
|
90
|
+
return Effect.succeed(unsupportedNode);
|
|
91
|
+
return isAgentInvocation(input.arguments_)
|
|
92
|
+
? runAgent(input, dependencies)
|
|
93
|
+
: runProductCli(input, dependencies);
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { type BoundedStdinRequest } from "../command-line/input/index.js";
|
|
3
|
+
export declare const readStdin: (request: BoundedStdinRequest) => Effect.Effect<string, import("../command-line/input/arguments.js").CliArgumentError, never>;
|
|
4
|
+
//# sourceMappingURL=stdio.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as NodeStdio from "@effect/platform-node-shared/NodeStdio";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Stdio from "effect/Stdio";
|
|
4
|
+
import { readBoundedStdin, } from "../command-line/input/index.js";
|
|
5
|
+
export const readStdin = (request) => Effect.gen(function* () {
|
|
6
|
+
const stdio = yield* Stdio.Stdio;
|
|
7
|
+
return yield* readBoundedStdin(stdio.stdin, request);
|
|
8
|
+
}).pipe(Effect.provide(NodeStdio.layer));
|
|
9
|
+
//# sourceMappingURL=stdio.js.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import type * as Scope from "effect/Scope";
|
|
3
|
+
import { type CliDependencies, type CliIo } from "../command-line/index.js";
|
|
4
|
+
import type { CliNodeConnector } from "../local-node/index.js";
|
|
5
|
+
export type { CliDependencies, CliErrorOutput, CliIo, CliSuccessOutput, CliSuccessResult, } from "../command-line/index.js";
|
|
6
|
+
export type { CliHelpResult, CliVersionResult } from "../command-tree/index.js";
|
|
7
|
+
export type { CliStatusResult } from "../status/index.js";
|
|
8
|
+
export type CliRemoteNode = {
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly scope: Scope.Scope;
|
|
11
|
+
};
|
|
12
|
+
export type CliDependencyResolver = (profile: string | undefined, remote?: CliRemoteNode) => CliDependencies;
|
|
13
|
+
type CliDependencySource = CliDependencies | CliDependencyResolver;
|
|
14
|
+
export declare const makeCli: (dependencies: CliDependencySource) => (arguments_: readonly string[], version: string, io: CliIo) => Effect.Effect<number>;
|
|
15
|
+
export declare const makeCliDependencies: (connector?: CliNodeConnector) => CliDependencyResolver;
|
|
16
|
+
export declare const runCli: (arguments_: readonly string[], version: string, io: CliIo) => Effect.Effect<number>;
|
|
17
|
+
//# sourceMappingURL=cli.d.ts.map
|