import { Option, Schema } from "effect"; const CredentialWriteAttempt = Schema.Struct({ runtimeId: Schema.String, attemptId: Schema.String,}); /** Persisted executor ownership metadata for one credential write attempt. */export type CredentialWriteAttempt = typeof CredentialWriteAttempt.Type; const decodeCredentialWriteAttempt = Schema.decodeUnknownOption(CredentialWriteAttempt);const decodeCredentialWriteAttemptJson = Schema.decodeUnknownOption( Schema.fromJsonString(CredentialWriteAttempt),); /** Build the structured metadata stored alongside opaque provider item ids. */export const makeCredentialWriteAttempt = ( runtimeId: string, attemptId: string,): CredentialWriteAttempt => ({ runtimeId, attemptId }); /** Parse persisted write-attempt metadata without inspecting a provider item id. */export const parseCredentialWriteAttempt = (value: unknown): CredentialWriteAttempt | null => Option.getOrNull( typeof value === "string" ? decodeCredentialWriteAttemptJson(value) : decodeCredentialWriteAttempt(value), ); /** * Give one logical credential slot a provider item id unique to one write * attempt. This format is generation-only: provider ids remain opaque after * creation and ownership is determined exclusively from persisted metadata. */export const credentialAttemptItemId = (baseItemId: string, attemptId: string): string => { const terminalSeparator = baseItemId.lastIndexOf(":"); if (terminalSeparator < 0) return `${baseItemId}:${attemptId}`; return `${baseItemId.slice(0, terminalSeparator)}:${attemptId}${baseItemId.slice(terminalSeparator)}`;};
import { Option, Schema } from "effect";
const CredentialWriteAttempt = Schema.Struct({
runtimeId: Schema.String,
attemptId: Schema.String,
});
/** Persisted executor ownership metadata for one credential write attempt. */
export type CredentialWriteAttempt = typeof CredentialWriteAttempt.Type;
const decodeCredentialWriteAttempt = Schema.decodeUnknownOption(CredentialWriteAttempt);
const decodeCredentialWriteAttemptJson = Schema.decodeUnknownOption(
Schema.fromJsonString(CredentialWriteAttempt),
);
/** Build the structured metadata stored alongside opaque provider item ids. */
export const makeCredentialWriteAttempt = (
runtimeId: string,
attemptId: string,
): CredentialWriteAttempt => ({ runtimeId, attemptId });
/** Parse persisted write-attempt metadata without inspecting a provider item id. */
export const parseCredentialWriteAttempt = (value: unknown): CredentialWriteAttempt | null =>
Option.getOrNull(
typeof value === "string"
? decodeCredentialWriteAttemptJson(value)
: decodeCredentialWriteAttempt(value),
);
/**
* Give one logical credential slot a provider item id unique to one write
* attempt. This format is generation-only: provider ids remain opaque after
* creation and ownership is determined exclusively from persisted metadata.
*/
export const credentialAttemptItemId = (baseItemId: string, attemptId: string): string => {
const terminalSeparator = baseItemId.lastIndexOf(":");
if (terminalSeparator < 0) return `${baseItemId}:${attemptId}`;
return `${baseItemId.slice(0, terminalSeparator)}:${attemptId}${baseItemId.slice(terminalSeparator)}`;
};