MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / policiesCreate

Function policiesCreate

packages/core/sdk/src/executor.ts:3150–3195  ·  view source on GitHub ↗
(
      input: CreateToolPolicyInput,
    )

Source from the content-addressed store, hash-verified

3148 );
3149
3150 const policiesCreate = (
3151 input: CreateToolPolicyInput,
3152 ): Effect.Effect<ToolPolicy, StorageFailure> =>
3153 Effect.gen(function* () {
3154 if (!isValidPattern(input.pattern)) {
3155 return yield* new StorageError({
3156 message: `Invalid tool policy pattern: ${input.pattern}`,
3157 cause: undefined,
3158 });
3159 }
3160 if (!isToolPolicyAction(input.action)) {
3161 return yield* new StorageError({
3162 message: `Invalid tool policy action: ${String(input.action)}`,
3163 cause: undefined,
3164 });
3165 }
3166 yield* requireUserSubject(input.owner);
3167 const keys = yield* Effect.try({
3168 try: () => ownedKeys(input.owner),
3169 catch: (cause) => storageFailureFromUnknown("invalid owner", cause),
3170 });
3171 const existing = yield* core.findMany("tool_policy", {
3172 where: byOwner(input.owner),
3173 });
3174 const minPosition = existing
3175 .map((row) => row.position)
3176 .sort()
3177 .at(0);
3178 const position = input.position ?? generateKeyBetween(null, minPosition ?? null);
3179 const id = PolicyId.make(
3180 `pol_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`,
3181 );
3182 const now = new Date();
3183 const created = yield* core.create("tool_policy", {
3184 tenant: keys.tenant,
3185 owner: keys.owner,
3186 subject: keys.subject,
3187 id: String(id),
3188 pattern: input.pattern,
3189 action: input.action,
3190 position,
3191 created_at: now,
3192 updated_at: now,
3193 });
3194 return rowToToolPolicy(created);
3195 });
3196
3197 const policiesUpdate = (
3198 input: UpdateToolPolicyInput,

Callers 1

createExecutorFunction · 0.85

Calls 8

isValidPatternFunction · 0.90
isToolPolicyActionFunction · 0.90
rowToToolPolicyFunction · 0.90
requireUserSubjectFunction · 0.85
ownedKeysFunction · 0.85
byOwnerFunction · 0.85
toStringMethod · 0.80

Tested by

no test coverage detected