poe-code 0.1.26 → 1.0.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 +110 -29
- package/dist/bin/poe-claude.js +16 -0
- package/dist/bin/poe-codex.js +16 -0
- package/dist/bin/poe-kimi-cli.js +16 -0
- package/dist/bin/poe-opencode.js +16 -0
- package/dist/cli/binary-aliases.d.ts +7 -0
- package/dist/cli/binary-aliases.js +26 -0
- package/dist/cli/binary-aliases.js.map +1 -0
- package/dist/cli/bootstrap.d.ts +4 -0
- package/dist/cli/bootstrap.js +78 -0
- package/dist/cli/bootstrap.js.map +1 -0
- package/dist/cli/command-runner.d.ts +1 -1
- package/dist/cli/command-runner.js +16 -2
- package/dist/cli/command-runner.js.map +1 -1
- package/dist/cli/commands/configure-payload.d.ts +15 -0
- package/dist/cli/commands/configure-payload.js +31 -0
- package/dist/cli/commands/configure-payload.js.map +1 -0
- package/dist/cli/commands/configure.d.ts +4 -3
- package/dist/cli/commands/configure.js +102 -101
- package/dist/cli/commands/configure.js.map +1 -1
- package/dist/cli/commands/ensure-isolated-config.d.ts +12 -0
- package/dist/cli/commands/ensure-isolated-config.js +53 -0
- package/dist/cli/commands/ensure-isolated-config.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +9 -0
- package/dist/cli/commands/generate.js +323 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/install.d.ts +4 -0
- package/dist/cli/commands/install.js +40 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/login.js +62 -8
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/{root.d.ts → mcp.d.ts} +1 -1
- package/dist/cli/commands/mcp.js +168 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/shared.d.ts +16 -11
- package/dist/cli/commands/shared.js +45 -24
- package/dist/cli/commands/shared.js.map +1 -1
- package/dist/cli/commands/spawn.d.ts +14 -4
- package/dist/cli/commands/spawn.js +92 -77
- package/dist/cli/commands/spawn.js.map +1 -1
- package/dist/cli/commands/test.d.ts +6 -4
- package/dist/cli/commands/test.js +111 -16
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/unconfigure.d.ts +7 -0
- package/dist/cli/commands/unconfigure.js +116 -0
- package/dist/cli/commands/unconfigure.js.map +1 -0
- package/dist/cli/commands/version.d.ts +3 -0
- package/dist/cli/commands/version.js +31 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/commands/wrap.d.ts +3 -0
- package/dist/cli/commands/wrap.js +61 -0
- package/dist/cli/commands/wrap.js.map +1 -0
- package/dist/cli/constants.d.ts +23 -9
- package/dist/cli/constants.js +42 -9
- package/dist/cli/constants.js.map +1 -1
- package/dist/cli/container.d.ts +4 -10
- package/dist/cli/container.js +18 -22
- package/dist/cli/container.js.map +1 -1
- package/dist/cli/context.d.ts +9 -13
- package/dist/cli/context.js +45 -152
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/environment.d.ts +2 -0
- package/dist/cli/environment.js +80 -0
- package/dist/cli/environment.js.map +1 -1
- package/dist/cli/error-logger.d.ts +18 -2
- package/dist/cli/error-logger.js +25 -7
- package/dist/cli/error-logger.js.map +1 -1
- package/dist/cli/errors.d.ts +14 -10
- package/dist/cli/errors.js +25 -12
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/exit-signals.d.ts +4 -0
- package/dist/cli/exit-signals.js +8 -0
- package/dist/cli/exit-signals.js.map +1 -0
- package/dist/cli/http.d.ts +1 -0
- package/dist/cli/isolated-env-runner.d.ts +10 -0
- package/dist/cli/isolated-env-runner.js +46 -0
- package/dist/cli/isolated-env-runner.js.map +1 -0
- package/dist/cli/isolated-env.d.ts +22 -0
- package/dist/cli/isolated-env.js +176 -0
- package/dist/cli/isolated-env.js.map +1 -0
- package/dist/cli/logger.d.ts +11 -1
- package/dist/cli/logger.js +101 -16
- package/dist/cli/logger.js.map +1 -1
- package/dist/cli/mcp-output-format.d.ts +2 -0
- package/dist/cli/mcp-output-format.js +22 -0
- package/dist/cli/mcp-output-format.js.map +1 -0
- package/dist/cli/mcp-server.d.ts +21 -0
- package/dist/cli/mcp-server.js +286 -0
- package/dist/cli/mcp-server.js.map +1 -0
- package/dist/cli/options.d.ts +18 -3
- package/dist/cli/options.js +39 -12
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/poe-code-command-runner.d.ts +6 -0
- package/dist/cli/poe-code-command-runner.js +57 -0
- package/dist/cli/poe-code-command-runner.js.map +1 -0
- package/dist/cli/program.js +134 -23
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/prompt-runner.d.ts +10 -0
- package/dist/cli/prompt-runner.js +79 -0
- package/dist/cli/prompt-runner.js.map +1 -0
- package/dist/cli/prompts.d.ts +23 -7
- package/dist/cli/prompts.js +17 -33
- package/dist/cli/prompts.js.map +1 -1
- package/dist/cli/service-registry.d.ts +86 -21
- package/dist/cli/service-registry.js +60 -12
- package/dist/cli/service-registry.js.map +1 -1
- package/dist/cli/ui/service-menu.d.ts +7 -0
- package/dist/cli/ui/service-menu.js +43 -0
- package/dist/cli/ui/service-menu.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +7 -74
- package/dist/index.js.map +1 -1
- package/dist/providers/claude-code.d.ts +13 -0
- package/dist/providers/claude-code.js +136 -0
- package/dist/providers/claude-code.js.map +1 -0
- package/dist/providers/codex.d.ts +17 -0
- package/dist/providers/codex.js +144 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/create-provider.d.ts +29 -0
- package/dist/providers/create-provider.js +63 -0
- package/dist/providers/create-provider.js.map +1 -0
- package/dist/providers/index.d.ts +2 -2
- package/dist/providers/index.js +5 -10
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/kimi.d.ts +4 -0
- package/dist/providers/kimi.js +123 -0
- package/dist/providers/kimi.js.map +1 -0
- package/dist/providers/opencode.d.ts +3 -0
- package/dist/providers/opencode.js +119 -0
- package/dist/providers/opencode.js.map +1 -0
- package/dist/providers/spawn-options.d.ts +12 -0
- package/dist/providers/spawn-options.js +2 -0
- package/dist/providers/spawn-options.js.map +1 -0
- package/dist/sdk/container.d.ts +18 -0
- package/dist/sdk/container.js +127 -0
- package/dist/sdk/container.js.map +1 -0
- package/dist/sdk/credentials.d.ts +9 -0
- package/dist/sdk/credentials.js +35 -0
- package/dist/sdk/credentials.js.map +1 -0
- package/dist/sdk/generate.d.ts +5 -0
- package/dist/sdk/generate.js +97 -0
- package/dist/sdk/generate.js.map +1 -0
- package/dist/sdk/spawn-core.d.ts +23 -0
- package/dist/sdk/spawn-core.js +105 -0
- package/dist/sdk/spawn-core.js.map +1 -0
- package/dist/sdk/spawn.d.ts +23 -0
- package/dist/sdk/spawn.js +41 -0
- package/dist/sdk/spawn.js.map +1 -0
- package/dist/sdk/types.d.ts +38 -0
- package/dist/sdk/types.js +2 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/services/client-instance.d.ts +12 -0
- package/dist/services/client-instance.js +36 -0
- package/dist/services/client-instance.js.map +1 -0
- package/dist/services/credentials.d.ts +13 -0
- package/dist/services/credentials.js +132 -14
- package/dist/services/credentials.js.map +1 -1
- package/dist/services/llm-client.d.ts +22 -0
- package/dist/services/llm-client.js +138 -0
- package/dist/services/llm-client.js.map +1 -0
- package/dist/services/media-download.d.ts +17 -0
- package/dist/services/media-download.js +42 -0
- package/dist/services/media-download.js.map +1 -0
- package/dist/services/model-strategy.d.ts +2 -2
- package/dist/services/model-strategy.js +36 -31
- package/dist/services/model-strategy.js.map +1 -1
- package/dist/services/mutation-events.d.ts +4 -0
- package/dist/services/mutation-events.js +53 -0
- package/dist/services/mutation-events.js.map +1 -0
- package/dist/services/service-install.d.ts +5 -4
- package/dist/services/service-install.js +36 -13
- package/dist/services/service-install.js.map +1 -1
- package/dist/services/version.d.ts +11 -0
- package/dist/services/version.js +28 -0
- package/dist/services/version.js.map +1 -0
- package/dist/templates/codex/config.toml.hbs +3 -3
- package/dist/tools/label-generator.d.ts +11 -0
- package/dist/tools/label-generator.js +78 -0
- package/dist/tools/label-generator.js.map +1 -0
- package/dist/utils/command-checks.d.ts +45 -0
- package/dist/utils/command-checks.js +120 -0
- package/dist/utils/command-checks.js.map +1 -0
- package/dist/utils/dry-run.d.ts +1 -0
- package/dist/utils/dry-run.js +116 -7
- package/dist/utils/dry-run.js.map +1 -1
- package/dist/utils/execution-context.d.ts +40 -0
- package/dist/utils/execution-context.js +128 -0
- package/dist/utils/execution-context.js.map +1 -0
- package/dist/utils/json.js +3 -0
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/templates.d.ts +1 -0
- package/dist/utils/templates.js +3 -4
- package/dist/utils/templates.js.map +1 -1
- package/package.json +52 -46
- package/dist/cli/api-client.d.ts +0 -14
- package/dist/cli/api-client.js +0 -140
- package/dist/cli/api-client.js.map +0 -1
- package/dist/cli/chat.d.ts +0 -32
- package/dist/cli/chat.js +0 -2
- package/dist/cli/chat.js.map +0 -1
- package/dist/cli/commands/agent.d.ts +0 -18
- package/dist/cli/commands/agent.js +0 -84
- package/dist/cli/commands/agent.js.map +0 -1
- package/dist/cli/commands/configure-agents.d.ts +0 -3
- package/dist/cli/commands/configure-agents.js +0 -72
- package/dist/cli/commands/configure-agents.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -8
- package/dist/cli/commands/init.js +0 -45
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/interactive.d.ts +0 -3
- package/dist/cli/commands/interactive.js +0 -17
- package/dist/cli/commands/interactive.js.map +0 -1
- package/dist/cli/commands/logout.d.ts +0 -3
- package/dist/cli/commands/logout.js +0 -31
- package/dist/cli/commands/logout.js.map +0 -1
- package/dist/cli/commands/prerequisites.d.ts +0 -3
- package/dist/cli/commands/prerequisites.js +0 -23
- package/dist/cli/commands/prerequisites.js.map +0 -1
- package/dist/cli/commands/query.d.ts +0 -7
- package/dist/cli/commands/query.js +0 -46
- package/dist/cli/commands/query.js.map +0 -1
- package/dist/cli/commands/remove.d.ts +0 -6
- package/dist/cli/commands/remove.js +0 -80
- package/dist/cli/commands/remove.js.map +0 -1
- package/dist/cli/commands/root.js +0 -7
- package/dist/cli/commands/root.js.map +0 -1
- package/dist/cli/commands/spawn-worktree.d.ts +0 -6
- package/dist/cli/commands/spawn-worktree.js +0 -91
- package/dist/cli/commands/spawn-worktree.js.map +0 -1
- package/dist/cli/file-mentions.d.ts +0 -13
- package/dist/cli/file-mentions.js +0 -87
- package/dist/cli/file-mentions.js.map +0 -1
- package/dist/cli/file-picker-state.d.ts +0 -14
- package/dist/cli/file-picker-state.js +0 -23
- package/dist/cli/file-picker-state.js.map +0 -1
- package/dist/cli/interactive-command-runner.d.ts +0 -11
- package/dist/cli/interactive-command-runner.js +0 -142
- package/dist/cli/interactive-command-runner.js.map +0 -1
- package/dist/cli/interactive-launcher.d.ts +0 -2
- package/dist/cli/interactive-launcher.js +0 -404
- package/dist/cli/interactive-launcher.js.map +0 -1
- package/dist/cli/interactive-tasks.d.ts +0 -7
- package/dist/cli/interactive-tasks.js +0 -199
- package/dist/cli/interactive-tasks.js.map +0 -1
- package/dist/cli/interactive.d.ts +0 -19
- package/dist/cli/interactive.js +0 -479
- package/dist/cli/interactive.js.map +0 -1
- package/dist/cli/markdown-renderer.d.ts +0 -27
- package/dist/cli/markdown-renderer.js +0 -178
- package/dist/cli/markdown-renderer.js.map +0 -1
- package/dist/cli/markdown-renderer.test.d.ts +0 -1
- package/dist/cli/markdown-renderer.test.js +0 -105
- package/dist/cli/markdown-renderer.test.js.map +0 -1
- package/dist/cli/telemetry.d.ts +0 -15
- package/dist/cli/telemetry.js +0 -45
- package/dist/cli/telemetry.js.map +0 -1
- package/dist/commands/init.d.ts +0 -9
- package/dist/commands/init.js +0 -43
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/publish-placeholder.d.ts +0 -8
- package/dist/commands/publish-placeholder.js +0 -50
- package/dist/commands/publish-placeholder.js.map +0 -1
- package/dist/commands/spawn-worktree.d.ts +0 -25
- package/dist/commands/spawn-worktree.js +0 -139
- package/dist/commands/spawn-worktree.js.map +0 -1
- package/dist/providers/claude-code-adapter.d.ts +0 -20
- package/dist/providers/claude-code-adapter.js +0 -48
- package/dist/providers/claude-code-adapter.js.map +0 -1
- package/dist/providers/codex-adapter.d.ts +0 -19
- package/dist/providers/codex-adapter.js +0 -49
- package/dist/providers/codex-adapter.js.map +0 -1
- package/dist/providers/opencode-adapter.d.ts +0 -18
- package/dist/providers/opencode-adapter.js +0 -45
- package/dist/providers/opencode-adapter.js.map +0 -1
- package/dist/providers/roo-code-adapter.d.ts +0 -19
- package/dist/providers/roo-code-adapter.js +0 -70
- package/dist/providers/roo-code-adapter.js.map +0 -1
- package/dist/services/agent-config-manager.d.ts +0 -32
- package/dist/services/agent-config-manager.js +0 -130
- package/dist/services/agent-config-manager.js.map +0 -1
- package/dist/services/agent-registry.d.ts +0 -27
- package/dist/services/agent-registry.js +0 -89
- package/dist/services/agent-registry.js.map +0 -1
- package/dist/services/agent-session.d.ts +0 -24
- package/dist/services/agent-session.js +0 -107
- package/dist/services/agent-session.js.map +0 -1
- package/dist/services/agent-task-registry.d.ts +0 -131
- package/dist/services/agent-task-registry.js +0 -491
- package/dist/services/agent-task-registry.js.map +0 -1
- package/dist/services/chat.d.ts +0 -94
- package/dist/services/chat.js +0 -241
- package/dist/services/chat.js.map +0 -1
- package/dist/services/claude-code.d.ts +0 -28
- package/dist/services/claude-code.js +0 -155
- package/dist/services/claude-code.js.map +0 -1
- package/dist/services/codex.d.ts +0 -27
- package/dist/services/codex.js +0 -231
- package/dist/services/codex.js.map +0 -1
- package/dist/services/mcp-client.d.ts +0 -38
- package/dist/services/mcp-client.js +0 -170
- package/dist/services/mcp-client.js.map +0 -1
- package/dist/services/mcp-manager.d.ts +0 -28
- package/dist/services/mcp-manager.js +0 -157
- package/dist/services/mcp-manager.js.map +0 -1
- package/dist/services/opencode.d.ts +0 -25
- package/dist/services/opencode.js +0 -161
- package/dist/services/opencode.js.map +0 -1
- package/dist/services/poe-code.d.ts +0 -7
- package/dist/services/poe-code.js +0 -5
- package/dist/services/poe-code.js.map +0 -1
- package/dist/services/roo-code.d.ts +0 -22
- package/dist/services/roo-code.js +0 -134
- package/dist/services/roo-code.js.map +0 -1
- package/dist/services/service-manifest.d.ts +0 -122
- package/dist/services/service-manifest.js +0 -368
- package/dist/services/service-manifest.js.map +0 -1
- package/dist/services/task-logger.d.ts +0 -24
- package/dist/services/task-logger.js +0 -73
- package/dist/services/task-logger.js.map +0 -1
- package/dist/services/task-runner.d.ts +0 -19
- package/dist/services/task-runner.js +0 -157
- package/dist/services/task-runner.js.map +0 -1
- package/dist/services/tools.d.ts +0 -76
- package/dist/services/tools.js +0 -870
- package/dist/services/tools.js.map +0 -1
- package/dist/templates/claude-code/anthropic_key.sh.hbs +0 -2
- package/dist/utils/e2e-flags.d.ts +0 -1
- package/dist/utils/e2e-flags.js +0 -9
- package/dist/utils/e2e-flags.js.map +0 -1
- package/dist/utils/prerequisites.d.ts +0 -41
- package/dist/utils/prerequisites.js +0 -92
- package/dist/utils/prerequisites.js.map +0 -1
- package/dist/utils/toml.d.ts +0 -8
- package/dist/utils/toml.js +0 -30
- package/dist/utils/toml.js.map +0 -1
- package/dist/utils/worktree.d.ts +0 -40
- package/dist/utils/worktree.js +0 -179
- package/dist/utils/worktree.js.map +0 -1
- package/shared/conversation-layout.cjs +0 -11
- package/shared/conversation-layout.d.ts +0 -7
- package/shared/conversation-layout.js +0 -11
- package/shared/package.json +0 -13
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { createExecutionResources, resolveCommandFlags } from "./shared.js";
|
|
2
|
-
import { deleteCredentials, loadCredentials } from "../../services/credentials.js";
|
|
3
|
-
export function registerLogoutCommand(program, container) {
|
|
4
|
-
program
|
|
5
|
-
.command("logout")
|
|
6
|
-
.description("Remove the stored Poe API key.")
|
|
7
|
-
.action(async () => {
|
|
8
|
-
const flags = resolveCommandFlags(program);
|
|
9
|
-
const resources = createExecutionResources(container, flags, "logout");
|
|
10
|
-
const stored = await loadCredentials({
|
|
11
|
-
fs: container.fs,
|
|
12
|
-
filePath: container.env.credentialsPath
|
|
13
|
-
});
|
|
14
|
-
if (!stored) {
|
|
15
|
-
resources.context.complete({
|
|
16
|
-
success: "No stored Poe API key found.",
|
|
17
|
-
dry: "Dry run: no stored Poe API key to remove."
|
|
18
|
-
});
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
await deleteCredentials({
|
|
22
|
-
fs: resources.context.fs,
|
|
23
|
-
filePath: container.env.credentialsPath
|
|
24
|
-
});
|
|
25
|
-
resources.context.complete({
|
|
26
|
-
success: "Removed stored Poe API key.",
|
|
27
|
-
dry: "Dry run: would remove stored Poe API key."
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=logout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EACjB,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,SAAuB;IAEvB,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,wBAAwB,CACxC,SAAS,EACT,KAAK,EACL,QAAQ,CACT,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;YACnC,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,eAAe;SACxC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACzB,OAAO,EAAE,8BAA8B;gBACvC,GAAG,EAAE,2CAA2C;aACjD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,CAAC;YACtB,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE;YACxB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,eAAe;SACxC,CAAC,CAAC;QAEH,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzB,OAAO,EAAE,6BAA6B;YACtC,GAAG,EAAE,2CAA2C;SACjD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { createExecutionResources, normalizePhase, registerProviderPrerequisites, resolveCommandFlags, resolveServiceAdapter, runPrerequisites } from "./shared.js";
|
|
2
|
-
export function registerPrerequisitesCommand(program, container) {
|
|
3
|
-
program
|
|
4
|
-
.command("prerequisites")
|
|
5
|
-
.description("Run prerequisite checks for a service.")
|
|
6
|
-
.argument("<service>", "Service to check (claude-code | codex | opencode)")
|
|
7
|
-
.argument("<phase>", "Phase to execute (before | after)")
|
|
8
|
-
.action(async (service, phase) => {
|
|
9
|
-
const normalizedPhase = normalizePhase(phase);
|
|
10
|
-
const adapter = resolveServiceAdapter(container, service);
|
|
11
|
-
const flags = resolveCommandFlags(program);
|
|
12
|
-
const resources = createExecutionResources(container, flags, `prerequisites:${service}`);
|
|
13
|
-
registerProviderPrerequisites(adapter, resources);
|
|
14
|
-
await container.registry.invoke(service, "prerequisites", async () => {
|
|
15
|
-
await runPrerequisites(adapter, resources, normalizedPhase);
|
|
16
|
-
});
|
|
17
|
-
resources.context.complete({
|
|
18
|
-
success: `${adapter.label} ${normalizedPhase} prerequisites succeeded.`,
|
|
19
|
-
dry: `Dry run: would run ${adapter.label} ${normalizedPhase} prerequisites.`
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=prerequisites.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prerequisites.js","sourceRoot":"","sources":["../../../src/cli/commands/prerequisites.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,6BAA6B,EAC7B,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,4BAA4B,CAC1C,OAAgB,EAChB,SAAuB;IAEvB,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,wCAAwC,CAAC;SACrD,QAAQ,CACP,WAAW,EACX,mDAAmD,CACpD;SACA,QAAQ,CAAC,SAAS,EAAE,mCAAmC,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,KAAa,EAAE,EAAE;QAC/C,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,wBAAwB,CACxC,SAAS,EACT,KAAK,EACL,iBAAiB,OAAO,EAAE,CAC3B,CAAC;QAEF,6BAA6B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAElD,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzB,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,eAAe,2BAA2B;YACvE,GAAG,EAAE,sBAAsB,OAAO,CAAC,KAAK,IAAI,eAAe,iBAAiB;SAC7E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { Command } from "commander";
|
|
2
|
-
import type { CliContainer } from "../container.js";
|
|
3
|
-
export interface QueryCommandOptions {
|
|
4
|
-
apiKey?: string;
|
|
5
|
-
model?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare function registerQueryCommand(program: Command, container: CliContainer): void;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { resolveCommandFlags } from "./shared.js";
|
|
2
|
-
import { DEFAULT_QUERY_MODEL } from "../constants.js";
|
|
3
|
-
export function registerQueryCommand(program, container) {
|
|
4
|
-
program
|
|
5
|
-
.command("query")
|
|
6
|
-
.description("Send a prompt to a Poe model via the OpenAI-compatible API and print the response.")
|
|
7
|
-
.argument("<text>", "Prompt text to send")
|
|
8
|
-
.option("--model <model>", "Model identifier", DEFAULT_QUERY_MODEL)
|
|
9
|
-
.option("--api-key <key>", "Poe API key")
|
|
10
|
-
.action(async (text, options) => {
|
|
11
|
-
const flags = resolveCommandFlags(program);
|
|
12
|
-
const logger = container.loggerFactory.create({
|
|
13
|
-
dryRun: flags.dryRun,
|
|
14
|
-
verbose: flags.verbose,
|
|
15
|
-
scope: "query"
|
|
16
|
-
});
|
|
17
|
-
const model = options.model ?? DEFAULT_QUERY_MODEL;
|
|
18
|
-
if (flags.dryRun) {
|
|
19
|
-
logger.dryRun(`Dry run: would query "${model}" with text "${text}".`);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
try {
|
|
23
|
-
const apiKey = await container.options.resolveApiKey({
|
|
24
|
-
value: options.apiKey,
|
|
25
|
-
dryRun: flags.dryRun
|
|
26
|
-
});
|
|
27
|
-
const content = await container.poeApiClient.query({
|
|
28
|
-
apiKey,
|
|
29
|
-
model,
|
|
30
|
-
prompt: text
|
|
31
|
-
});
|
|
32
|
-
logger.info(`${model}: ${content}`);
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
if (error instanceof Error) {
|
|
36
|
-
logger.logException(error, "query command", {
|
|
37
|
-
operation: "query model",
|
|
38
|
-
model,
|
|
39
|
-
promptLength: text.length
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
throw error;
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=query.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAOtD,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,SAAuB;IAEvB,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,oFAAoF,CACrF;SACA,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;SACzC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;SAClE,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC;SACxC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAA4B,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC;YAC5C,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAAC;QAEnD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CACX,yBAAyB,KAAK,gBAAgB,IAAI,IAAI,CACvD,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;gBACnD,KAAK,EAAE,OAAO,CAAC,MAAM;gBACrB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC;gBACjD,MAAM;gBACN,KAAK;gBACL,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE;oBAC1C,SAAS,EAAE,aAAa;oBACxB,KAAK;oBACL,YAAY,EAAE,IAAI,CAAC,MAAM;iBAC1B,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter } from "./shared.js";
|
|
2
|
-
import { DEFAULT_ROO_CONFIG_NAME } from "../constants.js";
|
|
3
|
-
export function registerRemoveCommand(program, container) {
|
|
4
|
-
program
|
|
5
|
-
.command("remove")
|
|
6
|
-
.description("Remove existing Poe API tooling configuration.")
|
|
7
|
-
.argument("<service>", "Service to remove (claude-code | codex | opencode | roo-code)")
|
|
8
|
-
.option("--config-name <name>", "Configuration profile name")
|
|
9
|
-
.action(async (service, options) => {
|
|
10
|
-
const adapter = resolveServiceAdapter(container, service);
|
|
11
|
-
const flags = resolveCommandFlags(program);
|
|
12
|
-
const resources = createExecutionResources(container, flags, `remove:${service}`);
|
|
13
|
-
const providerContext = buildProviderContext(container, adapter, resources);
|
|
14
|
-
const payload = await createRemovePayload(service, container, options, resources);
|
|
15
|
-
const removed = await container.registry.invoke(service, "remove", async (entry) => {
|
|
16
|
-
if (!entry.remove) {
|
|
17
|
-
throw new Error(`Service "${service}" does not support remove.`);
|
|
18
|
-
}
|
|
19
|
-
return await entry.remove(providerContext, payload);
|
|
20
|
-
});
|
|
21
|
-
const messages = formatRemovalMessages(service, adapter.label, removed, payload);
|
|
22
|
-
resources.context.complete(messages);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
async function createRemovePayload(service, container, options, resources) {
|
|
26
|
-
const mutationHooks = resources.mutationHooks;
|
|
27
|
-
if (service === "roo-code") {
|
|
28
|
-
const configName = await container.options.resolveConfigName(options.configName, DEFAULT_ROO_CONFIG_NAME);
|
|
29
|
-
return {
|
|
30
|
-
configName,
|
|
31
|
-
mutationHooks
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
return { mutationHooks };
|
|
35
|
-
}
|
|
36
|
-
function formatRemovalMessages(service, label, removed, payload) {
|
|
37
|
-
const didRemove = typeof removed === "boolean" ? removed : Boolean(removed);
|
|
38
|
-
switch (service) {
|
|
39
|
-
case "claude-code":
|
|
40
|
-
return {
|
|
41
|
-
success: didRemove
|
|
42
|
-
? "Removed Claude Code configuration."
|
|
43
|
-
: "No Claude Code configuration found.",
|
|
44
|
-
dry: "Dry run: would remove Claude Code configuration."
|
|
45
|
-
};
|
|
46
|
-
case "codex":
|
|
47
|
-
return {
|
|
48
|
-
success: didRemove
|
|
49
|
-
? "Removed Codex configuration."
|
|
50
|
-
: "No Codex configuration found.",
|
|
51
|
-
dry: "Dry run: would remove Codex configuration."
|
|
52
|
-
};
|
|
53
|
-
case "opencode":
|
|
54
|
-
return {
|
|
55
|
-
success: didRemove
|
|
56
|
-
? "Removed OpenCode CLI configuration."
|
|
57
|
-
: "No OpenCode CLI configuration found.",
|
|
58
|
-
dry: "Dry run: would remove OpenCode CLI configuration."
|
|
59
|
-
};
|
|
60
|
-
case "roo-code": {
|
|
61
|
-
const configName = typeof payload.configName === "string"
|
|
62
|
-
? payload.configName
|
|
63
|
-
: DEFAULT_ROO_CONFIG_NAME;
|
|
64
|
-
return {
|
|
65
|
-
success: didRemove
|
|
66
|
-
? `Removed Roo Code configuration "${configName}".`
|
|
67
|
-
: `No Roo Code configuration named "${configName}" found.`,
|
|
68
|
-
dry: "Dry run: would remove Roo Code configuration."
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
default:
|
|
72
|
-
return {
|
|
73
|
-
success: didRemove
|
|
74
|
-
? `Removed ${label} configuration.`
|
|
75
|
-
: `No ${label} configuration found.`,
|
|
76
|
-
dry: `Dry run: would remove ${label} configuration.`
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=remove.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/cli/commands/remove.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/cli/commands/root.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,SAAuB;IAEvB,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,qBAAqB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Command } from "commander";
|
|
2
|
-
import type { CliContainer } from "../container.js";
|
|
3
|
-
export interface SpawnWorktreeCommandOptions {
|
|
4
|
-
branch?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare function registerSpawnWorktreeCommand(program: Command, container: CliContainer): void;
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { buildProviderContext, resolveCommandFlags, resolveServiceAdapter } from "./shared.js";
|
|
2
|
-
import { spawnGitWorktree } from "../../commands/spawn-worktree.js";
|
|
3
|
-
import { simpleGit as createSimpleGit } from "simple-git";
|
|
4
|
-
export function registerSpawnWorktreeCommand(program, container) {
|
|
5
|
-
program
|
|
6
|
-
.command("spawn-git-worktree")
|
|
7
|
-
.description("Create a git worktree, run an agent, and attempt to merge changes.")
|
|
8
|
-
.argument("<service>", "Service to spawn (claude-code | codex | opencode)")
|
|
9
|
-
.argument("<prompt>", "Prompt to provide to the agent")
|
|
10
|
-
.argument("[agentArgs...]", "Additional arguments forwarded to the agent")
|
|
11
|
-
.option("--branch <name>", "Target branch to merge into")
|
|
12
|
-
.action(async (service, promptText, agentArgs = [], options) => {
|
|
13
|
-
const adapter = resolveServiceAdapter(container, service);
|
|
14
|
-
if (!adapter.supportsSpawn) {
|
|
15
|
-
throw new Error(`${adapter.label} does not support spawn.`);
|
|
16
|
-
}
|
|
17
|
-
const flags = resolveCommandFlags(program);
|
|
18
|
-
const logger = container.loggerFactory.create({
|
|
19
|
-
dryRun: flags.dryRun,
|
|
20
|
-
verbose: flags.verbose,
|
|
21
|
-
scope: "spawn-worktree"
|
|
22
|
-
});
|
|
23
|
-
if (flags.dryRun) {
|
|
24
|
-
const argsSuffix = agentArgs.length > 0
|
|
25
|
-
? ` with args ${JSON.stringify(agentArgs)}`
|
|
26
|
-
: "";
|
|
27
|
-
const branchSuffix = options.branch ? ` into ${options.branch}` : "";
|
|
28
|
-
logger.dryRun(`Dry run: would create git worktree, run ${adapter.label}${argsSuffix}, and merge${branchSuffix}.`);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const runner = flags.verbose
|
|
32
|
-
? createVerboseRunner(container, logger)
|
|
33
|
-
: container.commandRunner;
|
|
34
|
-
const currentBranch = await resolveTargetBranch(container, options.branch);
|
|
35
|
-
await spawnGitWorktree({
|
|
36
|
-
agent: service,
|
|
37
|
-
prompt: promptText,
|
|
38
|
-
agentArgs,
|
|
39
|
-
basePath: container.env.cwd,
|
|
40
|
-
targetBranch: currentBranch,
|
|
41
|
-
logger: (message) => logger.info(message),
|
|
42
|
-
runAgent: async ({ agent, prompt, args }) => {
|
|
43
|
-
if (agent !== service) {
|
|
44
|
-
throw new Error(`Mismatched agent request "${agent}" (expected "${service}").`);
|
|
45
|
-
}
|
|
46
|
-
return await spawnWithCustomRunner(container, adapter, flags.verbose, runner, prompt, args);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
function createVerboseRunner(container, logger) {
|
|
52
|
-
return async (command, args) => {
|
|
53
|
-
logger.verbose(`> ${[command, ...args].join(" ").trim()}`);
|
|
54
|
-
return container.commandRunner(command, args);
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
async function resolveTargetBranch(container, branchOverride) {
|
|
58
|
-
if (branchOverride) {
|
|
59
|
-
return branchOverride;
|
|
60
|
-
}
|
|
61
|
-
const git = createSimpleGit({ baseDir: container.env.cwd });
|
|
62
|
-
const branch = await git.revparse(["--abbrev-ref", "HEAD"]);
|
|
63
|
-
return branch.trim();
|
|
64
|
-
}
|
|
65
|
-
async function spawnWithCustomRunner(container, adapter, verbose, runner, prompt, args) {
|
|
66
|
-
const scopedLogger = container.loggerFactory.create({
|
|
67
|
-
dryRun: false,
|
|
68
|
-
verbose,
|
|
69
|
-
scope: `spawn:${adapter.name}`
|
|
70
|
-
});
|
|
71
|
-
const context = container.contextFactory.create({
|
|
72
|
-
dryRun: false,
|
|
73
|
-
logger: scopedLogger,
|
|
74
|
-
runner
|
|
75
|
-
});
|
|
76
|
-
const resources = {
|
|
77
|
-
logger: scopedLogger,
|
|
78
|
-
context
|
|
79
|
-
};
|
|
80
|
-
const providerContext = buildProviderContext(container, adapter, resources);
|
|
81
|
-
return (await container.registry.invoke(adapter.name, "spawn", async (entry) => {
|
|
82
|
-
if (!entry.spawn) {
|
|
83
|
-
throw new Error(`${adapter.label} does not support spawn.`);
|
|
84
|
-
}
|
|
85
|
-
return (await entry.spawn(providerContext, {
|
|
86
|
-
prompt,
|
|
87
|
-
args
|
|
88
|
-
}));
|
|
89
|
-
}));
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=spawn-worktree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-worktree.js","sourceRoot":"","sources":["../../../src/cli/commands/spawn-worktree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { ErrorLogger } from "./error-logger.js";
|
|
2
|
-
export interface ResolveFileMentionsDependencies {
|
|
3
|
-
input: string;
|
|
4
|
-
cwd: string;
|
|
5
|
-
readFile: (filePath: string, encoding: BufferEncoding) => Promise<string>;
|
|
6
|
-
errorLogger: Pick<ErrorLogger, "logErrorWithStackTrace">;
|
|
7
|
-
}
|
|
8
|
-
export interface FileMentionResolution {
|
|
9
|
-
processedInput: string;
|
|
10
|
-
attachments: string[];
|
|
11
|
-
mentions: string[];
|
|
12
|
-
}
|
|
13
|
-
export declare function resolveFileMentions(dependencies: ResolveFileMentionsDependencies): Promise<FileMentionResolution>;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
const WHITESPACE = new Set([" ", "\n", "\r", "\t"]);
|
|
3
|
-
export async function resolveFileMentions(dependencies) {
|
|
4
|
-
const { input, cwd, readFile, errorLogger } = dependencies;
|
|
5
|
-
const segments = extractMentions(input);
|
|
6
|
-
if (segments.length === 0) {
|
|
7
|
-
return {
|
|
8
|
-
processedInput: input,
|
|
9
|
-
attachments: [],
|
|
10
|
-
mentions: []
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
const attachments = [];
|
|
14
|
-
const resolvedMentions = [];
|
|
15
|
-
for (const segment of segments) {
|
|
16
|
-
resolvedMentions.push(segment.mention);
|
|
17
|
-
const absolutePath = path.isAbsolute(segment.mention)
|
|
18
|
-
? segment.mention
|
|
19
|
-
: path.join(cwd, segment.mention);
|
|
20
|
-
try {
|
|
21
|
-
const contents = await readFile(absolutePath, "utf8");
|
|
22
|
-
attachments.push(`\n\n--- Content of ${segment.mention} ---\n${contents}\n--- End of ${segment.mention} ---`);
|
|
23
|
-
}
|
|
24
|
-
catch (rawError) {
|
|
25
|
-
const error = rawError instanceof Error ? rawError : new Error(String(rawError));
|
|
26
|
-
attachments.push(`\n\n[Error reading ${segment.mention}: ${error.message}]`);
|
|
27
|
-
errorLogger.logErrorWithStackTrace(error, "interactive file mention", {
|
|
28
|
-
component: "interactive",
|
|
29
|
-
operation: "read file mention",
|
|
30
|
-
mention: segment.mention,
|
|
31
|
-
absolutePath,
|
|
32
|
-
cwd
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
const base = removeMentions(input, segments).trim();
|
|
37
|
-
return {
|
|
38
|
-
processedInput: `${base}${attachments.join("")}`,
|
|
39
|
-
attachments,
|
|
40
|
-
mentions: resolvedMentions
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
function extractMentions(value) {
|
|
44
|
-
const segments = [];
|
|
45
|
-
let index = 0;
|
|
46
|
-
while (index < value.length) {
|
|
47
|
-
if (value[index] !== "@") {
|
|
48
|
-
index += 1;
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
const start = index;
|
|
52
|
-
index += 1;
|
|
53
|
-
let cursor = index;
|
|
54
|
-
while (cursor < value.length && !WHITESPACE.has(value[cursor])) {
|
|
55
|
-
cursor += 1;
|
|
56
|
-
}
|
|
57
|
-
const mention = value.slice(index, cursor);
|
|
58
|
-
if (mention.length === 0) {
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
segments.push({
|
|
62
|
-
mention,
|
|
63
|
-
start,
|
|
64
|
-
end: cursor
|
|
65
|
-
});
|
|
66
|
-
index = cursor;
|
|
67
|
-
}
|
|
68
|
-
return segments;
|
|
69
|
-
}
|
|
70
|
-
function removeMentions(value, segments) {
|
|
71
|
-
if (segments.length === 0) {
|
|
72
|
-
return value;
|
|
73
|
-
}
|
|
74
|
-
let result = "";
|
|
75
|
-
let cursor = 0;
|
|
76
|
-
for (const segment of segments) {
|
|
77
|
-
if (cursor < segment.start) {
|
|
78
|
-
result += value.slice(cursor, segment.start);
|
|
79
|
-
}
|
|
80
|
-
cursor = segment.end;
|
|
81
|
-
}
|
|
82
|
-
if (cursor < value.length) {
|
|
83
|
-
result += value.slice(cursor);
|
|
84
|
-
}
|
|
85
|
-
return result;
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=file-mentions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-mentions.js","sourceRoot":"","sources":["../../src/cli/file-mentions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export interface EvaluateFilePickerInput {
|
|
2
|
-
value: string;
|
|
3
|
-
isOpen: boolean;
|
|
4
|
-
}
|
|
5
|
-
export type FilePickerAction = {
|
|
6
|
-
kind: "open";
|
|
7
|
-
prefix: string;
|
|
8
|
-
} | {
|
|
9
|
-
kind: "search";
|
|
10
|
-
query: string;
|
|
11
|
-
} | {
|
|
12
|
-
kind: "close";
|
|
13
|
-
};
|
|
14
|
-
export declare function evaluateFilePickerAction(input: EvaluateFilePickerInput): FilePickerAction | null;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export function evaluateFilePickerAction(input) {
|
|
2
|
-
const { value, isOpen } = input;
|
|
3
|
-
if (value.endsWith("@")) {
|
|
4
|
-
return {
|
|
5
|
-
kind: "open",
|
|
6
|
-
prefix: value.slice(0, -1)
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
if (!isOpen) {
|
|
10
|
-
return null;
|
|
11
|
-
}
|
|
12
|
-
const atIndex = value.lastIndexOf("@");
|
|
13
|
-
if (atIndex === -1) {
|
|
14
|
-
return {
|
|
15
|
-
kind: "close"
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
return {
|
|
19
|
-
kind: "search",
|
|
20
|
-
query: value.slice(atIndex + 1)
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=file-picker-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-picker-state.js","sourceRoot":"","sources":["../../src/cli/file-picker-state.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,wBAAwB,CACtC,KAA8B;IAE9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEhC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC3B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;KAChC,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type CliDependencies } from "./program.js";
|
|
2
|
-
export interface ParsedInteractiveCommand {
|
|
3
|
-
command: string;
|
|
4
|
-
tokens: string[];
|
|
5
|
-
normalized: string[];
|
|
6
|
-
}
|
|
7
|
-
export interface InteractiveCommandExecutor {
|
|
8
|
-
identify(input: string): ParsedInteractiveCommand | null;
|
|
9
|
-
execute(input: string | ParsedInteractiveCommand): Promise<string | null>;
|
|
10
|
-
}
|
|
11
|
-
export declare function createInteractiveCommandExecutor(dependencies: CliDependencies): Promise<InteractiveCommandExecutor>;
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { CommanderError } from "commander";
|
|
2
|
-
import { createProgram } from "./program.js";
|
|
3
|
-
import { tokenizeCommandLine } from "../utils/command-line.js";
|
|
4
|
-
export async function createInteractiveCommandExecutor(dependencies) {
|
|
5
|
-
const outputBuffer = [];
|
|
6
|
-
const baseLogger = dependencies.logger;
|
|
7
|
-
const logger = (message) => {
|
|
8
|
-
outputBuffer.push(message);
|
|
9
|
-
if (baseLogger) {
|
|
10
|
-
baseLogger(message);
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
const program = createProgram({
|
|
14
|
-
...dependencies,
|
|
15
|
-
logger,
|
|
16
|
-
exitOverride: true
|
|
17
|
-
});
|
|
18
|
-
const commandMap = buildCommandMap(program.commands.map((cmd) => cmd));
|
|
19
|
-
const identify = (input) => {
|
|
20
|
-
const tokens = tokenizeCommandLine(input);
|
|
21
|
-
if (tokens.length === 0) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
const first = tokens[0];
|
|
25
|
-
if (first.toLowerCase() === "help") {
|
|
26
|
-
return {
|
|
27
|
-
command: "help",
|
|
28
|
-
tokens,
|
|
29
|
-
normalized: tokens
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
const key = tokens[0];
|
|
33
|
-
const canonical = commandMap.get(key) ?? commandMap.get(key.toLowerCase());
|
|
34
|
-
if (!canonical) {
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
const normalized = normalizeTokens(tokens, canonical);
|
|
38
|
-
return {
|
|
39
|
-
command: canonical,
|
|
40
|
-
tokens,
|
|
41
|
-
normalized
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
const execute = async (input) => {
|
|
45
|
-
const parsed = typeof input === "string" ? identify(input) : input;
|
|
46
|
-
if (!parsed) {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
outputBuffer.length = 0;
|
|
50
|
-
if (parsed.command === "help") {
|
|
51
|
-
return renderHelp(program, parsed.tokens.slice(1));
|
|
52
|
-
}
|
|
53
|
-
try {
|
|
54
|
-
await program.parseAsync(parsed.normalized, { from: "user" });
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
if (error instanceof CommanderError) {
|
|
58
|
-
if (error.code !== "commander.helpDisplayed" &&
|
|
59
|
-
error.message &&
|
|
60
|
-
!outputBuffer.includes(error.message)) {
|
|
61
|
-
outputBuffer.push(error.message);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
throw error;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return outputBuffer.join("\n");
|
|
69
|
-
};
|
|
70
|
-
return { identify, execute };
|
|
71
|
-
}
|
|
72
|
-
function buildCommandMap(commands) {
|
|
73
|
-
const map = new Map();
|
|
74
|
-
for (const command of commands) {
|
|
75
|
-
const canonical = command.name();
|
|
76
|
-
map.set(canonical, canonical);
|
|
77
|
-
map.set(canonical.toLowerCase(), canonical);
|
|
78
|
-
for (const alias of command.aliases()) {
|
|
79
|
-
map.set(alias, canonical);
|
|
80
|
-
map.set(alias.toLowerCase(), canonical);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return map;
|
|
84
|
-
}
|
|
85
|
-
function renderHelp(program, topics) {
|
|
86
|
-
if (topics.length === 0) {
|
|
87
|
-
return program.helpInformation();
|
|
88
|
-
}
|
|
89
|
-
const [topic, ...rest] = topics;
|
|
90
|
-
if (rest.length > 0) {
|
|
91
|
-
return `Unknown help topic "${topics.join(" ")}".`;
|
|
92
|
-
}
|
|
93
|
-
const command = findCommand(program, topic);
|
|
94
|
-
if (!command) {
|
|
95
|
-
return `Unknown help topic "${topic}".`;
|
|
96
|
-
}
|
|
97
|
-
return command.helpInformation();
|
|
98
|
-
}
|
|
99
|
-
function findCommand(program, name) {
|
|
100
|
-
const direct = program.commands.find((cmd) => cmd.name() === name);
|
|
101
|
-
if (direct) {
|
|
102
|
-
return direct;
|
|
103
|
-
}
|
|
104
|
-
const lower = name.toLowerCase();
|
|
105
|
-
return program.commands.find((cmd) => {
|
|
106
|
-
if (cmd.name().toLowerCase() === lower) {
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
return cmd.aliases().some((alias) => alias === name || alias.toLowerCase() === lower);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
function normalizeTokens(tokens, canonical) {
|
|
113
|
-
if (tokens.length === 0) {
|
|
114
|
-
return tokens;
|
|
115
|
-
}
|
|
116
|
-
const rest = tokens.slice(1);
|
|
117
|
-
if (canonical === "login" && rest.length > 0 && !rest[0].startsWith("-")) {
|
|
118
|
-
return [canonical, "--api-key", rest.join(" ")];
|
|
119
|
-
}
|
|
120
|
-
if (canonical === "test" && rest.length > 0 && !rest[0].startsWith("-")) {
|
|
121
|
-
return [canonical, "--api-key", rest.join(" ")];
|
|
122
|
-
}
|
|
123
|
-
if (canonical === "init" && rest.length > 0 && !rest[0].startsWith("-")) {
|
|
124
|
-
const [projectName, ...remaining] = rest;
|
|
125
|
-
return [canonical, "--project-name", projectName, ...remaining];
|
|
126
|
-
}
|
|
127
|
-
if (canonical === "remove" &&
|
|
128
|
-
rest.length > 1 &&
|
|
129
|
-
!rest.some((token) => token.startsWith("--"))) {
|
|
130
|
-
const [service, ...remaining] = rest;
|
|
131
|
-
if (remaining.length > 0) {
|
|
132
|
-
return [
|
|
133
|
-
canonical,
|
|
134
|
-
service,
|
|
135
|
-
"--config-name",
|
|
136
|
-
remaining.join(" ")
|
|
137
|
-
];
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return [canonical, ...rest];
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=interactive-command-runner.js.map
|