mcp-decisive
Version:
MCP server for WRAP decision-making framework with structured output
34 lines • 1.17 kB
JavaScript
import { ok, err } from 'neverthrow';
import { randomUUID } from 'crypto';
export const NonEmptyString = {
from: (s) => {
const trimmed = s.trim();
if (trimmed !== '') {
return ok({ _tag: 'NonEmptyString', value: trimmed });
}
return err('String cannot be empty or blank');
},
value: (s) => s.value
};
export const PositiveNumber = {
from: (n) => n > 0 ? ok(n)
: err('Value must be a positive number'),
plus: (a, b) => (a + b),
plusRaw: (base, delta) => base + delta > 0 ? ok((base + delta))
: err('Resulting value must be a positive number'),
minus: (a, b) => a - b > 0 ? ok((a - b))
: err('Resulting value must be a positive number'),
minusRaw: (base, delta) => base - delta > 0 ? ok((base - delta))
: err('Resulting value must be a positive number'),
compareTo: (a, b) => a === b ? 0 : a > b ? 1 : -1,
value: (n) => n
};
export const ID = {
generate: () => randomUUID(),
value: (id) => id
};
export const NonEmptyArray = {
from: (xs) => xs.length > 0 ? ok(xs)
: err('Array cannot be empty')
};
//# sourceMappingURL=primitive.js.map