refactor: make v0.3 runtime node-scoped
This commit is contained in:
@@ -16,7 +16,6 @@ const ADAPTER_ID = "agentrun-v01";
|
||||
const DEFAULT_AGENTRUN_MGR_URL = "http://agentrun-mgr.agentrun-v01.svc.cluster.local:8080";
|
||||
const DEFAULT_TENANT_ID = "hwlab";
|
||||
const DEFAULT_PROJECT_ID = "pikasTech/HWLAB";
|
||||
const DEFAULT_PROVIDER_ID = "G14";
|
||||
const DEFAULT_REPO_URL = "http://git-mirror-http.devops-infra.svc.cluster.local/pikasTech/HWLAB.git";
|
||||
const DEFAULT_RUNNER_NAMESPACE = "agentrun-v01";
|
||||
const DEFAULT_TIMEOUT_MS = 1_200_000;
|
||||
@@ -71,8 +70,13 @@ export function describeAgentRunAdapterAvailability(env = process.env, options =
|
||||
} catch (error) {
|
||||
blockers.push(agentRunAvailabilityBlocker(error, "resource-bundle-source-commit"));
|
||||
}
|
||||
let providerId = null;
|
||||
try {
|
||||
providerId = resolveAgentRunProviderId(env);
|
||||
} catch (error) {
|
||||
blockers.push(agentRunAvailabilityBlocker(error, "provider-id"));
|
||||
}
|
||||
|
||||
const providerId = firstNonEmpty(env.HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID, env.AGENTRUN_PROVIDER_ID, DEFAULT_PROVIDER_ID);
|
||||
const runnerNamespace = firstNonEmpty(env.HWLAB_CODE_AGENT_AGENTRUN_RUNNER_NAMESPACE, env.AGENTRUN_RUNTIME_NAMESPACE, DEFAULT_RUNNER_NAMESPACE);
|
||||
const ready = blockers.length === 0 && Boolean(providerId && runnerNamespace && backendProfile && managerUrl && repoUrl);
|
||||
const managerHost = hostForUrl(managerUrl);
|
||||
@@ -233,7 +237,7 @@ export function initialAgentRunChatResult({ params = {}, options = {}, traceId }
|
||||
adapter: ADAPTER_ID,
|
||||
status: "pending-dispatch",
|
||||
backendProfile,
|
||||
providerId: firstNonEmpty(env.HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID, env.AGENTRUN_PROVIDER_ID, DEFAULT_PROVIDER_ID),
|
||||
providerId: resolveAgentRunProviderId(env),
|
||||
managerUrl: resolveAgentRunManagerUrl(env),
|
||||
repoUrl: resolveAgentRunRepoUrl(env),
|
||||
resourceBundleSourceCommit: requireAgentRunSourceCommit(env),
|
||||
@@ -729,7 +733,7 @@ export function agentRunSessionEvidence(payload = {}) {
|
||||
terminalStatus: payload.agentRun.terminalStatus ?? null,
|
||||
traceId: payload.agentRun.traceId ?? payload.traceId ?? payload.providerTrace?.traceId ?? null,
|
||||
lastSeq: payload.agentRun.lastSeq ?? 0,
|
||||
providerId: payload.agentRun.providerId ?? DEFAULT_PROVIDER_ID,
|
||||
providerId: payload.agentRun.providerId ?? agentRunProviderIdOrNull(),
|
||||
reuseEligible: payload.agentRun.reuseEligible ?? false,
|
||||
sessionId: payload.agentRun.sessionId ?? payload.sessionId ?? null,
|
||||
conversationId: payload.conversationId ?? payload.agentRun.conversationId ?? null,
|
||||
@@ -828,7 +832,7 @@ function buildAgentRunCreateRunInput({ params, env, traceId, backendProfile, ses
|
||||
}
|
||||
},
|
||||
resourceBundleRef,
|
||||
providerId: firstNonEmpty(env.HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID, env.AGENTRUN_PROVIDER_ID, DEFAULT_PROVIDER_ID),
|
||||
providerId: resolveAgentRunProviderId(env),
|
||||
backendProfile,
|
||||
executionPolicy: {
|
||||
sandbox: firstNonEmpty(env.HWLAB_CODE_AGENT_AGENTRUN_SANDBOX, env.HWLAB_CODE_AGENT_CODEX_SANDBOX, "danger-full-access"),
|
||||
@@ -1695,7 +1699,7 @@ function agentRunMapping({ env, managerUrl, backendProfile, run, command, runner
|
||||
adapter: ADAPTER_ID,
|
||||
managerUrl,
|
||||
backendProfile,
|
||||
providerId: firstNonEmpty(env.HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID, env.AGENTRUN_PROVIDER_ID, DEFAULT_PROVIDER_ID),
|
||||
providerId: resolveAgentRunProviderId(env),
|
||||
runId: run.id,
|
||||
commandId: command.id,
|
||||
attemptId: runnerJob?.attemptId ?? runnerJob?.runner?.attemptId ?? null,
|
||||
@@ -1730,7 +1734,7 @@ function agentRunReusedMapping({ previous = {}, run = {}, command = {}, runnerJo
|
||||
adapter: ADAPTER_ID,
|
||||
managerUrl,
|
||||
backendProfile,
|
||||
providerId: previous.providerId ?? firstNonEmpty(env.HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID, env.AGENTRUN_PROVIDER_ID, DEFAULT_PROVIDER_ID),
|
||||
providerId: previous.providerId ?? resolveAgentRunProviderId(env),
|
||||
runId: previous.runId ?? run?.id,
|
||||
commandId: command.id,
|
||||
attemptId: runnerJob?.attemptId ?? runnerJob?.runner?.attemptId ?? previous.attemptId ?? null,
|
||||
@@ -1903,6 +1907,31 @@ function requireAgentRunSourceCommit(env) {
|
||||
});
|
||||
}
|
||||
|
||||
function resolveAgentRunProviderId(env = process.env) {
|
||||
const providerId = firstNonEmpty(env.HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID, env.AGENTRUN_PROVIDER_ID);
|
||||
if (!providerId) {
|
||||
throw Object.assign(new Error("HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID must be configured from the runtime lane node id before AgentRun dispatch"), {
|
||||
code: "agentrun_provider_id_required",
|
||||
statusCode: 500
|
||||
});
|
||||
}
|
||||
if (!/^[A-Za-z0-9._-]+$/u.test(providerId)) {
|
||||
throw Object.assign(new Error("HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID must be a simple node id"), {
|
||||
code: "agentrun_provider_id_invalid",
|
||||
statusCode: 500
|
||||
});
|
||||
}
|
||||
return providerId;
|
||||
}
|
||||
|
||||
function agentRunProviderIdOrNull(env = process.env) {
|
||||
try {
|
||||
return resolveAgentRunProviderId(env);
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function modelForBackendProfile(profile, env = process.env) {
|
||||
const resolved = resolveAgentRunBackendProfile({}, { providerProfile: profile });
|
||||
if (resolved === "codex") return firstNonEmpty(env.HWLAB_CODE_AGENT_CODEX_API_MODEL, env.HWLAB_CODE_AGENT_MODEL, "gpt-5.5");
|
||||
|
||||
Reference in New Issue
Block a user