fix: handle single-connector case in matching heuristic and CEO prompt

- matchConnector returns honest reason when only one connector is ready
- CEO prompt detects single-connector scenario and tells CEO to use it for all agents
- Removes misleading 'Best match' language when there's no actual choice
This commit is contained in:
ZacharyZhang-NY committed 2026-03-22 13:00:11 -04:00
1 parent 51dbeb0cac
commit 6f13d324e4
2 files changed
+18 -2

No files matched your search

+4 -1
View File
@@ -140,10 +140,13 @@ export function matchConnector(input: ConnectorMatchInput): ConnectorMatchResult
// recommended should always be set if readySet.size > 0, but guard
if (recommended) {
const onlyOneReady = readySet.size === 1;
return {
recommendedConnectorId: recommended,
fallbackConnectorId: fallback,
reason: `Best match for ${taskType} tasks: ${CONNECTOR_STRENGTHS[recommended]}`,
reason: onlyOneReady
? `Only available connector: ${recommended}. Assign to all agents.`
: `Best match for ${taskType} tasks: ${CONNECTOR_STRENGTHS[recommended]}`,
};
}
}
+14 -1
View File
@@ -928,7 +928,19 @@ IMPORTANT: Wait for the Board to approve before starting business operations.
return `- **${c.label}** (\`${c.id}\`): ${strengths} [STATUS: ${c.status}]`;
});
sections.push(`# Available Connectors for Hiring
const readyConnectors = ctx.allConnectors.filter((c) => c.status === "ready");
const onlyOneConnector = readyConnectors.length === 1;
if (onlyOneConnector) {
const sole = readyConnectors[0];
sections.push(`# Available Connectors for Hiring
You have ONE available connector:
${connectorLines.join("\n")}
Since only **${sole.label}** (\`${sole.id}\`) is ready, assign it to ALL agents you create. Do not worry about matching connectors to roles — use this connector for every agent.
`);
} else {
sections.push(`# Available Connectors for Hiring
When hiring agents, assign the best connector for their role:
${connectorLines.join("\n")}
@@ -940,6 +952,7 @@ Connector Assignment Guide:
- If preferred connector is not listed as "ready", use the next best available
- NEVER assign a connector with status "not_installed" or "error"
`);
}
}
} else if (hasPendingOrgApproval) {
sections.push(`# Operating Instructions (CEO — Awaiting Org Approval)