openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
77 lines (76 loc) • 2.77 kB
JavaScript
import { c as resolveWorkspaceStateIdentity } from "./workspace-state-identity-EPAs22n_.mjs";
import { t as executeExistingOpenClawStateRead } from "./openclaw-state-db-readonly-CC57AD_q.mjs";
import { r as captureOpenClawStateWorkerContext } from "./openclaw-state-worker-context-DRG_I6tz.mjs";
import { n as executeOpenClawStateWorker } from "./openclaw-state-worker-store-DCVYVtaO.mjs";
import { n as prepareOnboardingRecommendationPending, t as prepareOnboardingRecommendationOffer } from "./onboarding-recommendations.contract.js";
//#region src/state/onboarding-recommendations.ts
function createOnboardingRecommendationsStore(params) {
const configKey = `onboarding.recommendations.${resolveWorkspaceStateIdentity(params.workspaceDir).workspaceKey}`;
const database = params.database ?? {};
return {
read: async () => {
const result = await executeExistingOpenClawStateRead(database, {
type: "onboardingRecommendations.read",
configKey
});
if (result === void 0) return null;
if (result.ok && result.type === "onboardingRecommendations.read") return result.record;
throw new Error("Unexpected onboarding recommendations read result");
},
writeOffer: (offer) => {
const captured = prepareOnboardingRecommendationOffer(offer);
const context = captureOpenClawStateWorkerContext(database);
return executeOpenClawStateWorker(context, {
type: "onboardingRecommendations.writeOffer",
input: {
configKey,
params: captured
}
});
},
acknowledge: (options = {}) => {
const context = captureOpenClawStateWorkerContext(database);
const captured = structuredClone({
...options,
nowMs: options.nowMs ?? Date.now()
});
return executeOpenClawStateWorker(context, {
type: "onboardingRecommendations.acknowledge",
input: {
configKey,
params: captured
}
});
},
updatePending: (options) => {
const captured = prepareOnboardingRecommendationPending(options);
const context = captureOpenClawStateWorkerContext(database);
return executeOpenClawStateWorker(context, {
type: "onboardingRecommendations.updatePending",
input: {
configKey,
params: captured
}
});
},
clearPending: (options) => {
const context = captureOpenClawStateWorkerContext(database);
const captured = structuredClone(options);
return executeOpenClawStateWorker(context, {
type: "onboardingRecommendations.clearPending",
input: {
configKey,
params: captured
}
});
},
clear: () => {
return executeOpenClawStateWorker(captureOpenClawStateWorkerContext(database), {
type: "onboardingRecommendations.clear",
input: { configKey }
});
}
};
}
//#endregion
export { createOnboardingRecommendationsStore as t };