@f-o-h/cli 0.1.13 → 0.1.14
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 +1 -1
- package/dist/foh.js +12 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ AI-operator provisioning CLI for Front Of House.
|
|
|
4
4
|
|
|
5
5
|
Public mirror: https://github.com/iiko38/front-of-house-cli
|
|
6
6
|
|
|
7
|
-
Current published baseline: `@f-o-h/cli@0.1.
|
|
7
|
+
Current published baseline: `@f-o-h/cli@0.1.14`
|
|
8
8
|
|
|
9
9
|
This mirror is a generated release artifact. The private product monorepo is not
|
|
10
10
|
published here, and no open-source license is granted unless stated separately.
|
package/dist/foh.js
CHANGED
|
@@ -32640,7 +32640,7 @@ var StdioServerTransport = class {
|
|
|
32640
32640
|
};
|
|
32641
32641
|
|
|
32642
32642
|
// src/lib/cli-version.ts
|
|
32643
|
-
var CLI_VERSION = "0.1.
|
|
32643
|
+
var CLI_VERSION = "0.1.14";
|
|
32644
32644
|
|
|
32645
32645
|
// src/commands/mcp-serve.ts
|
|
32646
32646
|
var DEFAULT_TIMEOUT_MS = 12e4;
|
|
@@ -36437,8 +36437,13 @@ function inferReasonCode(artifact) {
|
|
|
36437
36437
|
}
|
|
36438
36438
|
return nonEmpty2(getPath2(artifact, "status"));
|
|
36439
36439
|
}
|
|
36440
|
-
function inferPromotionDecision(sourceType) {
|
|
36441
|
-
|
|
36440
|
+
function inferPromotionDecision(sourceType, reasonCode) {
|
|
36441
|
+
const reason = String(reasonCode || "").toLowerCase();
|
|
36442
|
+
if (sourceType === "external_agent_run") {
|
|
36443
|
+
if (reason.includes("exec_policy") || reason.includes("policy_blocked") || reason.includes("auth") || reason.includes("config")) return "fix_config";
|
|
36444
|
+
if (reason.includes("cli") || reason.includes("command") || reason.includes("flag")) return "fix_cli";
|
|
36445
|
+
return "fix_docs";
|
|
36446
|
+
}
|
|
36442
36447
|
if (sourceType === "knowledge_miss") return "fix_docs";
|
|
36443
36448
|
if (sourceType === "setup_failure" || sourceType === "proof_failure" || sourceType === "live_proof_failure") return "fix_config";
|
|
36444
36449
|
if (sourceType === "replay_failure" || sourceType === "runtime_miss") return "add_test";
|
|
@@ -36526,7 +36531,6 @@ function readSourceArtifact(path2) {
|
|
|
36526
36531
|
function buildImprovementPacket(input) {
|
|
36527
36532
|
const artifact = input.sourceArtifact ?? null;
|
|
36528
36533
|
const sourceType = parseEnum(input.sourceType, IMPROVEMENT_SOURCE_TYPES, "--source-type") ?? inferSourceType(artifact);
|
|
36529
|
-
const promotionDecision = parseEnum(input.promotionDecision, IMPROVEMENT_DECISIONS, "--recommendation") ?? inferPromotionDecision(sourceType);
|
|
36530
36534
|
const ids = collectIds(artifact, input.ids);
|
|
36531
36535
|
assertOrgBoundary(artifact, input.ids?.org_id);
|
|
36532
36536
|
const reasonCode = nonEmpty2(input.reasonCode) ?? inferReasonCode(artifact);
|
|
@@ -36538,6 +36542,7 @@ function buildImprovementPacket(input) {
|
|
|
36538
36542
|
statusCode: 400
|
|
36539
36543
|
});
|
|
36540
36544
|
}
|
|
36545
|
+
const promotionDecision = parseEnum(input.promotionDecision, IMPROVEMENT_DECISIONS, "--recommendation") ?? inferPromotionDecision(sourceType, reasonCode);
|
|
36541
36546
|
const evidenceSummary = redactString(
|
|
36542
36547
|
nonEmpty2(input.evidenceSummary) ?? nonEmpty2(getPath2(artifact, "summary")) ?? `Improvement candidate generated from ${sourceType} with reason ${reasonCode}.`
|
|
36543
36548
|
);
|
|
@@ -38752,6 +38757,9 @@ ${stderr}`;
|
|
|
38752
38757
|
if (/need[^.\n]*(?:private|source)[^.\n]*repo|cannot[^.\n]*without[^.\n]*(?:private|source)[^.\n]*repo|clone[^.\n]*(?:private|source)[^.\n]*repo/i.test(combined)) {
|
|
38753
38758
|
return { status: "fail", reasonCode: "private_repo_assumption_detected" };
|
|
38754
38759
|
}
|
|
38760
|
+
if (/(?:blocked|rejected|declined) by policy|EXEC_POLICY_BLOCKED|command execution was rejected|shell commands were rejected/i.test(combined)) {
|
|
38761
|
+
return { status: "hold", reasonCode: "codex_exec_policy_blocked" };
|
|
38762
|
+
}
|
|
38755
38763
|
if (/browser|approve|approval|login|auth|sign in/i.test(combined) && !proofArtifactPasses(input.run.run_dir)) {
|
|
38756
38764
|
return { status: "hold", reasonCode: "auth_browser_approval_required" };
|
|
38757
38765
|
}
|