@ouro.bot/cli 0.1.0-alpha.388 → 0.1.0-alpha.389
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/changelog.json
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_note": "This changelog is maintained as part of the PR/version-bump workflow. Agent-curated, not auto-generated. Agents read this file directly via read_file to understand what changed between versions.",
|
|
3
3
|
"versions": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.1.0-alpha.389",
|
|
6
|
+
"changes": [
|
|
7
|
+
"CLI entrypoints now print command failures to stderr before exiting, so invalid commands and vault recovery errors are visible in the terminal instead of only appearing in runtime logs.",
|
|
8
|
+
"Vault unlock secret prompts now fail fast when stdin/stdout is not an interactive terminal, preserving the non-echoing human-provided secret flow instead of dangling or silently exiting.",
|
|
9
|
+
"`ouro vault recover` now validates every local `--from` JSON source before asking for the replacement vault unlock secret, so bad paths or malformed files never ask the human to type a secret first.",
|
|
10
|
+
"Vault recovery tests now assert that bad source files do not call the secret prompt and that entrypoint failures are terminal-visible.",
|
|
11
|
+
"`@ouro.bot/cli` and the `ouro.bot` wrapper are version-synced for the vault recovery prompt polish release."
|
|
12
|
+
]
|
|
13
|
+
},
|
|
4
14
|
{
|
|
5
15
|
"version": "0.1.0-alpha.388",
|
|
6
16
|
"changes": [
|
|
@@ -222,6 +222,9 @@ async function defaultPromptInput(question) {
|
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
async function defaultPromptSecret(question) {
|
|
225
|
+
if (process.stdin.isTTY !== true || process.stdout.isTTY !== true) {
|
|
226
|
+
throw new Error("vault unlock secret entry requires an interactive terminal so the secret can be hidden. Re-run this command in a terminal and enter the human-chosen secret when prompted.");
|
|
227
|
+
}
|
|
225
228
|
const readline = await Promise.resolve().then(() => __importStar(require("readline")));
|
|
226
229
|
const rl = readline.createInterface({
|
|
227
230
|
input: process.stdin,
|
|
@@ -779,6 +779,7 @@ async function executeVaultRecover(command, deps) {
|
|
|
779
779
|
}
|
|
780
780
|
if (command.generateUnlockSecret)
|
|
781
781
|
rejectGeneratedVaultUnlockSecret("recover");
|
|
782
|
+
const sourceImports = command.sources.map(readVaultRecoverSource);
|
|
782
783
|
const promptSecret = ensureVaultSecretPrompt(deps.promptSecret, "recover");
|
|
783
784
|
const now = providerCliNow(deps);
|
|
784
785
|
const { configPath, config } = (0, auth_flow_1.readAgentConfigForAgent)(command.agent, deps.bundlesRoot);
|
|
@@ -789,7 +790,6 @@ async function executeVaultRecover(command, deps) {
|
|
|
789
790
|
if (!unlockSecret) {
|
|
790
791
|
throw new Error("vault recover requires a replacement unlock secret. Re-run in an interactive terminal and enter a human-chosen unlock secret.");
|
|
791
792
|
}
|
|
792
|
-
const sourceImports = command.sources.map(readVaultRecoverSource);
|
|
793
793
|
const result = await (0, vault_setup_1.createVaultAccount)("Ouro credential vault", serverUrl, email, unlockSecret);
|
|
794
794
|
if (!result.success) {
|
|
795
795
|
const message = [
|
|
@@ -12,12 +12,14 @@ const ouro_bot_wrapper_1 = require("../versioning/ouro-bot-wrapper");
|
|
|
12
12
|
meta: { args: process.argv.slice(2) },
|
|
13
13
|
});
|
|
14
14
|
void (0, ouro_bot_wrapper_1.runOuroBotWrapper)(process.argv.slice(2)).catch((error) => {
|
|
15
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
16
|
+
process.stderr.write(`${message}\n`);
|
|
15
17
|
(0, runtime_1.emitNervesEvent)({
|
|
16
18
|
level: "error",
|
|
17
19
|
component: "daemon",
|
|
18
20
|
event: "daemon.ouro_bot_entry_error",
|
|
19
21
|
message: "ouro.bot wrapper entrypoint failed",
|
|
20
|
-
meta: { error:
|
|
22
|
+
meta: { error: message },
|
|
21
23
|
});
|
|
22
24
|
process.exit(1);
|
|
23
25
|
});
|
|
@@ -12,12 +12,14 @@ const runtime_logging_1 = require("./runtime-logging");
|
|
|
12
12
|
meta: { args: process.argv.slice(2) },
|
|
13
13
|
});
|
|
14
14
|
void (0, daemon_cli_1.runOuroCli)(process.argv.slice(2)).catch((error) => {
|
|
15
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
16
|
+
process.stderr.write(`${message}\n`);
|
|
15
17
|
(0, runtime_1.emitNervesEvent)({
|
|
16
18
|
level: "error",
|
|
17
19
|
component: "daemon",
|
|
18
20
|
event: "daemon.cli_entry_error",
|
|
19
21
|
message: "ouro CLI entrypoint failed",
|
|
20
|
-
meta: { error:
|
|
22
|
+
meta: { error: message },
|
|
21
23
|
});
|
|
22
24
|
process.exit(1);
|
|
23
25
|
});
|