@f-o-h/cli 0.1.77 → 0.1.79
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 +30 -7
- 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.79`
|
|
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
|
@@ -32987,7 +32987,7 @@ var StdioServerTransport = class {
|
|
|
32987
32987
|
};
|
|
32988
32988
|
|
|
32989
32989
|
// src/lib/cli-version.ts
|
|
32990
|
-
var CLI_VERSION = "0.1.
|
|
32990
|
+
var CLI_VERSION = "0.1.79";
|
|
32991
32991
|
|
|
32992
32992
|
// src/commands/mcp-serve.ts
|
|
32993
32993
|
var DEFAULT_TIMEOUT_MS = 12e4;
|
|
@@ -36829,6 +36829,13 @@ function registerOpsRecommendationCommands(ops) {
|
|
|
36829
36829
|
}
|
|
36830
36830
|
|
|
36831
36831
|
// src/commands/ops-reporting.ts
|
|
36832
|
+
function appendSetupPreviewContext(params, opts) {
|
|
36833
|
+
if (opts.agencyName) params.set("agency_name", String(opts.agencyName));
|
|
36834
|
+
if (opts.sourceUrl) params.set("source_url", String(opts.sourceUrl));
|
|
36835
|
+
if (opts.branchLocation) params.set("branch_location", String(opts.branchLocation));
|
|
36836
|
+
if (opts.tools) params.set("tools", String(opts.tools));
|
|
36837
|
+
if (opts.targetMode) params.set("target_mode", String(opts.targetMode));
|
|
36838
|
+
}
|
|
36832
36839
|
function registerOpsReportingCommands(reporting) {
|
|
36833
36840
|
reporting.command("kb-usage").description("Show KB usage aggregate report").requiredOption("--agent <id>", "Agent ID").option("--days <n>", "Lookback window in days", "7").option("--org <id>", "Org ID (default: stored org from foh org use)").option("--api-url <url>", "API base URL override").option("--json", "Output as JSON").action(async (opts) => withCommandErrorHandling(async () => {
|
|
36834
36841
|
const params = new URLSearchParams({
|
|
@@ -36875,18 +36882,20 @@ function registerOpsReportingCommands(reporting) {
|
|
|
36875
36882
|
});
|
|
36876
36883
|
format(data, { json: opts.json ?? false });
|
|
36877
36884
|
}));
|
|
36878
|
-
reporting.command("launch-packet").description("Show latest customer launch packet and grouped go-live blockers").option("--environment <value>", "Environment filter").option("--org <id>", "Org ID (default: stored org from foh org use)").option("--api-url <url>", "API base URL override").option("--json", "Output as JSON").action(async (opts) => withCommandErrorHandling(async () => {
|
|
36885
|
+
reporting.command("launch-packet").description("Show latest customer launch packet and grouped go-live blockers").option("--environment <value>", "Environment filter").option("--agency-name <name>", "Agency name for setup-preview fallback when no release packet exists").option("--source-url <url>", "Official source URL for setup-preview fallback").option("--branch-location <value>", "Branch/location for setup-preview fallback").option("--tools <csv>", "Requested tool surface for setup-preview fallback").option("--target-mode <mode>", "Target exposure mode for setup-preview fallback").option("--org <id>", "Org ID (default: stored org from foh org use)").option("--api-url <url>", "API base URL override").option("--json", "Output as JSON").action(async (opts) => withCommandErrorHandling(async () => {
|
|
36879
36886
|
const params = new URLSearchParams();
|
|
36880
36887
|
if (opts.environment) params.set("environment", String(opts.environment));
|
|
36888
|
+
appendSetupPreviewContext(params, opts);
|
|
36881
36889
|
const data = await apiFetch(withQuery("/v1/console/release-launch-packet", params), {
|
|
36882
36890
|
orgId: opts.org,
|
|
36883
36891
|
apiUrlOverride: opts.apiUrl
|
|
36884
36892
|
});
|
|
36885
36893
|
format(data, { json: opts.json ?? false });
|
|
36886
36894
|
}));
|
|
36887
|
-
reporting.command("launch-packet-skeletons").description("Generate customer launch evidence skeletons from latest launch packet blockers").option("--environment <value>", "Environment filter").option("--org <id>", "Org ID (default: stored org from foh org use)").option("--api-url <url>", "API base URL override").option("--json", "Output as JSON").action(async (opts) => withCommandErrorHandling(async () => {
|
|
36895
|
+
reporting.command("launch-packet-skeletons").description("Generate customer launch evidence skeletons from latest launch packet blockers").option("--environment <value>", "Environment filter").option("--agency-name <name>", "Agency name for setup-preview fallback when no release packet exists").option("--source-url <url>", "Official source URL for setup-preview fallback").option("--branch-location <value>", "Branch/location for setup-preview fallback").option("--tools <csv>", "Requested tool surface for setup-preview fallback").option("--target-mode <mode>", "Target exposure mode for setup-preview fallback").option("--org <id>", "Org ID (default: stored org from foh org use)").option("--api-url <url>", "API base URL override").option("--json", "Output as JSON").action(async (opts) => withCommandErrorHandling(async () => {
|
|
36888
36896
|
const params = new URLSearchParams();
|
|
36889
36897
|
if (opts.environment) params.set("environment", String(opts.environment));
|
|
36898
|
+
appendSetupPreviewContext(params, opts);
|
|
36890
36899
|
const data = await apiFetch(withQuery("/v1/console/release-launch-packet/evidence-skeletons", params), {
|
|
36891
36900
|
orgId: opts.org,
|
|
36892
36901
|
apiUrlOverride: opts.apiUrl
|
|
@@ -37047,7 +37056,7 @@ function registerDiag(program3) {
|
|
|
37047
37056
|
let healthStatus = null;
|
|
37048
37057
|
if (apiUrl) {
|
|
37049
37058
|
try {
|
|
37050
|
-
const healthUrl = `${String(apiUrl).replace(/\/$/, "")}/
|
|
37059
|
+
const healthUrl = `${String(apiUrl).replace(/\/$/, "")}/health`;
|
|
37051
37060
|
const healthRes = await fetch(healthUrl);
|
|
37052
37061
|
healthStatus = healthRes.status;
|
|
37053
37062
|
checks.push({
|
|
@@ -39831,20 +39840,24 @@ function readExternalAgentMetadata(runDir) {
|
|
|
39831
39840
|
collectDocsFrom(parsed.docs_pages_observed, docs);
|
|
39832
39841
|
collectDocsFrom(parsed.docs_used, docs);
|
|
39833
39842
|
collectDocsFrom(parsed.public_docs_used, docs);
|
|
39843
|
+
const blockerReasonCodes = Array.isArray(parsed.blocker_reason_codes) ? parsed.blocker_reason_codes.map((code) => String(code || "").trim()).filter(Boolean) : [];
|
|
39834
39844
|
return {
|
|
39835
39845
|
path: filename,
|
|
39836
|
-
docs_pages_used: Array.from(docs).sort()
|
|
39846
|
+
docs_pages_used: Array.from(docs).sort(),
|
|
39847
|
+
blocker_reason_codes: Array.from(new Set(blockerReasonCodes)).sort()
|
|
39837
39848
|
};
|
|
39838
39849
|
} catch {
|
|
39839
39850
|
return {
|
|
39840
39851
|
path: filename,
|
|
39841
|
-
docs_pages_used: []
|
|
39852
|
+
docs_pages_used: [],
|
|
39853
|
+
blocker_reason_codes: []
|
|
39842
39854
|
};
|
|
39843
39855
|
}
|
|
39844
39856
|
}
|
|
39845
39857
|
return {
|
|
39846
39858
|
path: null,
|
|
39847
|
-
docs_pages_used: []
|
|
39859
|
+
docs_pages_used: [],
|
|
39860
|
+
blocker_reason_codes: []
|
|
39848
39861
|
};
|
|
39849
39862
|
}
|
|
39850
39863
|
|
|
@@ -40476,6 +40489,15 @@ function classifyExternalAgentRun(input) {
|
|
|
40476
40489
|
if (hasCommandReason(/agent_limit_reached/i)) {
|
|
40477
40490
|
return { status: "hold", reasonCode: "eval_org_agent_limit_reached" };
|
|
40478
40491
|
}
|
|
40492
|
+
const agentMetadata = readExternalAgentMetadata(input.run.run_dir);
|
|
40493
|
+
const metadataBlockerCodes = agentMetadata.blocker_reason_codes;
|
|
40494
|
+
const hasMetadataBlocker = (pattern) => metadataBlockerCodes.some((reason) => pattern.test(reason));
|
|
40495
|
+
if (hasMetadataBlocker(/^customer_owned_requirement_unverified:/i)) {
|
|
40496
|
+
return { status: "hold", reasonCode: "customer_owned_requirements_unverified_expected_hold" };
|
|
40497
|
+
}
|
|
40498
|
+
if (hasMetadataBlocker(/^api_health:/i) && metadataBlockerCodes.some((reason) => /^customer_owned_requirement_unverified:/i.test(reason))) {
|
|
40499
|
+
return { status: "hold", reasonCode: "customer_owned_requirements_unverified_expected_hold" };
|
|
40500
|
+
}
|
|
40479
40501
|
const lastMessage = readIfExists(input.run.outputs.last_message);
|
|
40480
40502
|
const stderr = readIfExists(input.run.outputs.stderr);
|
|
40481
40503
|
const combined = `${lastMessage}
|
|
@@ -41108,6 +41130,7 @@ function resolvePrivateRepoRoot(input) {
|
|
|
41108
41130
|
}
|
|
41109
41131
|
function promptVersionFromPath(promptPath) {
|
|
41110
41132
|
const raw = (0, import_fs19.readFileSync)(promptPath, "utf8");
|
|
41133
|
+
if (raw.includes("arbitrary-agency setup context") || raw.includes("Mission: prove whether an arbitrary estate agency") || raw.includes("ops reporting agency-setup-preview")) return "arbitrary-agency-setup-release.v1";
|
|
41111
41134
|
if (raw.includes("Do not assume access to the private source repository")) return "blank-setup.v1";
|
|
41112
41135
|
return "unknown";
|
|
41113
41136
|
}
|