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

Function createConnection

packages/plugins/toolkits/src/server.ts:439–471  ·  view source on GitHub ↗
(
    toolkitId: string,
    input: {
      readonly pattern: string;
      readonly position?: string;
    },
  )

Source from the content-addressed store, hash-verified

437 requireToolkit(toolkitId).pipe(Effect.flatMap(() => listConnectionsForRecord(toolkitId)));
438
439 const createConnection = (
440 toolkitId: string,
441 input: {
442 readonly pattern: string;
443 readonly position?: string;
444 },
445 ) =>
446 Effect.gen(function* () {
447 yield* validatePolicyPattern(input.pattern);
448 const toolkit = yield* requireToolkit(toolkitId);
449 const existing = yield* listConnectionsForRecord(toolkitId);
450 const duplicate = existing.find((connection) => connection.pattern === input.pattern);
451 if (duplicate) return connectionToResponse(duplicate);
452 const minPosition = existing
453 .map((row) => row.position)
454 .sort()
455 .at(0);
456 const now = Date.now();
457 const id = newId("tkconn");
458 const entry = yield* storage.connections.put({
459 owner: toolkit.owner,
460 key: id,
461 data: {
462 id,
463 toolkitId,
464 pattern: input.pattern,
465 position: input.position ?? generateKeyBetween(null, minPosition ?? null),
466 createdAt: now,
467 updatedAt: now,
468 },
469 });
470 return connectionToResponse(entry.data);
471 });
472
473 const removeConnection = (toolkitId: string, connectionId: string) =>
474 Effect.gen(function* () {

Callers 1

makeTestHttpServerFunction · 0.50

Calls 6

validatePolicyPatternFunction · 0.85
requireToolkitFunction · 0.85
listConnectionsForRecordFunction · 0.85
newIdFunction · 0.85
connectionToResponseFunction · 0.70
putMethod · 0.65

Tested by

no test coverage detected