feat: enable d518 kafka shadow producers
This commit is contained in:
@@ -322,6 +322,16 @@ export interface HwlabRuntimeCodeAgentProviderSpec {
|
||||
readonly opencodeSourceKey?: string;
|
||||
}
|
||||
|
||||
export interface HwlabRuntimeKafkaShadowProducerSpec {
|
||||
readonly enabled: boolean;
|
||||
readonly mode: "shadow-produce-only";
|
||||
readonly consumeEnabled: false;
|
||||
readonly configRef: string;
|
||||
readonly bootstrapServers: string;
|
||||
readonly commandTopic: string;
|
||||
readonly clientId: string;
|
||||
}
|
||||
|
||||
export interface HwlabRuntimeCodeAgentRuntimeSpec {
|
||||
readonly enabled: boolean;
|
||||
readonly adapter: string;
|
||||
@@ -334,6 +344,7 @@ export interface HwlabRuntimeCodeAgentRuntimeSpec {
|
||||
readonly providerIdFrom: "runtimeNodeId";
|
||||
readonly defaultProviderProfile: string;
|
||||
readonly codexStdioSupervisor: "repo-owned";
|
||||
readonly kafkaShadowProducer?: HwlabRuntimeKafkaShadowProducerSpec;
|
||||
}
|
||||
|
||||
export interface HwlabRuntimeSourceWorkspaceSpec {
|
||||
@@ -795,6 +806,25 @@ function codeAgentRuntimeConfig(value: unknown, path: string): HwlabRuntimeCodeA
|
||||
providerIdFrom: enumStringField(raw, "providerIdFrom", path, ["runtimeNodeId"]),
|
||||
defaultProviderProfile: stringField(raw, "defaultProviderProfile", path),
|
||||
codexStdioSupervisor: enumStringField(raw, "codexStdioSupervisor", path, ["repo-owned"]),
|
||||
...(raw.kafkaShadowProducer === undefined
|
||||
? {}
|
||||
: { kafkaShadowProducer: codeAgentKafkaShadowProducerConfig(raw.kafkaShadowProducer, `${path}.kafkaShadowProducer`) }),
|
||||
};
|
||||
}
|
||||
|
||||
function codeAgentKafkaShadowProducerConfig(value: unknown, path: string): HwlabRuntimeKafkaShadowProducerSpec {
|
||||
const raw = asRecord(value, path);
|
||||
const mode = enumStringField(raw, "mode", path, ["shadow-produce-only"]);
|
||||
const consumeEnabled = booleanField(raw, "consumeEnabled", path);
|
||||
if (consumeEnabled !== false) throw new Error(`${path}.consumeEnabled must be false during shadow-produce-only stage`);
|
||||
return {
|
||||
enabled: booleanField(raw, "enabled", path),
|
||||
mode,
|
||||
consumeEnabled,
|
||||
configRef: stringField(raw, "configRef", path),
|
||||
bootstrapServers: stringField(raw, "bootstrapServers", path),
|
||||
commandTopic: stringField(raw, "commandTopic", path),
|
||||
clientId: stringField(raw, "clientId", path),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user