@relkit/invocation 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/abort.d.ts +9 -0
  4. package/dist/abort.d.ts.map +1 -0
  5. package/dist/abort.js +80 -0
  6. package/dist/abort.js.map +1 -0
  7. package/dist/context.d.ts +7 -0
  8. package/dist/context.d.ts.map +1 -0
  9. package/dist/context.js +39 -0
  10. package/dist/context.js.map +1 -0
  11. package/dist/contracts.d.ts +135 -0
  12. package/dist/contracts.d.ts.map +1 -0
  13. package/dist/contracts.js +14 -0
  14. package/dist/contracts.js.map +1 -0
  15. package/dist/deadline.d.ts +12 -0
  16. package/dist/deadline.d.ts.map +1 -0
  17. package/dist/deadline.js +57 -0
  18. package/dist/deadline.js.map +1 -0
  19. package/dist/dispatcher-context.d.ts +26 -0
  20. package/dist/dispatcher-context.d.ts.map +1 -0
  21. package/dist/dispatcher-context.js +90 -0
  22. package/dist/dispatcher-context.js.map +1 -0
  23. package/dist/dispatcher-scope.d.ts +4 -0
  24. package/dist/dispatcher-scope.d.ts.map +1 -0
  25. package/dist/dispatcher-scope.js +9 -0
  26. package/dist/dispatcher-scope.js.map +1 -0
  27. package/dist/dispatcher-types.d.ts +80 -0
  28. package/dist/dispatcher-types.d.ts.map +1 -0
  29. package/dist/dispatcher-types.js +8 -0
  30. package/dist/dispatcher-types.js.map +1 -0
  31. package/dist/dispatcher.d.ts +11 -0
  32. package/dist/dispatcher.d.ts.map +1 -0
  33. package/dist/dispatcher.js +12 -0
  34. package/dist/dispatcher.js.map +1 -0
  35. package/dist/error-retry.d.ts +12 -0
  36. package/dist/error-retry.d.ts.map +1 -0
  37. package/dist/error-retry.js +33 -0
  38. package/dist/error-retry.js.map +1 -0
  39. package/dist/failure-dependency.d.ts +6 -0
  40. package/dist/failure-dependency.d.ts.map +1 -0
  41. package/dist/failure-dependency.js +13 -0
  42. package/dist/failure-dependency.js.map +1 -0
  43. package/dist/failure-guards.d.ts +30 -0
  44. package/dist/failure-guards.d.ts.map +1 -0
  45. package/dist/failure-guards.js +58 -0
  46. package/dist/failure-guards.js.map +1 -0
  47. package/dist/failure-internals.d.ts +8 -0
  48. package/dist/failure-internals.d.ts.map +1 -0
  49. package/dist/failure-internals.js +20 -0
  50. package/dist/failure-internals.js.map +1 -0
  51. package/dist/failure-runtime.d.ts +30 -0
  52. package/dist/failure-runtime.d.ts.map +1 -0
  53. package/dist/failure-runtime.js +25 -0
  54. package/dist/failure-runtime.js.map +1 -0
  55. package/dist/failure-types.d.ts +89 -0
  56. package/dist/failure-types.d.ts.map +1 -0
  57. package/dist/failure-types.js +2 -0
  58. package/dist/failure-types.js.map +1 -0
  59. package/dist/failure.d.ts +18 -0
  60. package/dist/failure.d.ts.map +1 -0
  61. package/dist/failure.js +128 -0
  62. package/dist/failure.js.map +1 -0
  63. package/dist/handler-bridge.d.ts +16 -0
  64. package/dist/handler-bridge.d.ts.map +1 -0
  65. package/dist/handler-bridge.js +75 -0
  66. package/dist/handler-bridge.js.map +1 -0
  67. package/dist/identity.d.ts +22 -0
  68. package/dist/identity.d.ts.map +1 -0
  69. package/dist/identity.js +67 -0
  70. package/dist/identity.js.map +1 -0
  71. package/dist/index.d.ts +20 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +20 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/lifecycle.d.ts +39 -0
  76. package/dist/lifecycle.d.ts.map +1 -0
  77. package/dist/lifecycle.js +39 -0
  78. package/dist/lifecycle.js.map +1 -0
  79. package/dist/recursion.d.ts +31 -0
  80. package/dist/recursion.d.ts.map +1 -0
  81. package/dist/recursion.js +81 -0
  82. package/dist/recursion.js.map +1 -0
  83. package/dist/service-policy.d.ts +18 -0
  84. package/dist/service-policy.d.ts.map +1 -0
  85. package/dist/service-policy.js +113 -0
  86. package/dist/service-policy.js.map +1 -0
  87. package/dist/standalone-dispatcher.d.ts +3 -0
  88. package/dist/standalone-dispatcher.d.ts.map +1 -0
  89. package/dist/standalone-dispatcher.js +107 -0
  90. package/dist/standalone-dispatcher.js.map +1 -0
  91. package/dist/standalone-lifecycle.d.ts +20 -0
  92. package/dist/standalone-lifecycle.d.ts.map +1 -0
  93. package/dist/standalone-lifecycle.js +30 -0
  94. package/dist/standalone-lifecycle.js.map +1 -0
  95. package/dist/standalone-utils.d.ts +10 -0
  96. package/dist/standalone-utils.d.ts.map +1 -0
  97. package/dist/standalone-utils.js +52 -0
  98. package/dist/standalone-utils.js.map +1 -0
  99. package/dist/validation.d.ts +17 -0
  100. package/dist/validation.d.ts.map +1 -0
  101. package/dist/validation.js +58 -0
  102. package/dist/validation.js.map +1 -0
  103. package/package.json +41 -0
@@ -0,0 +1,18 @@
1
+ import type { MaybePromise } from "@relkit/contracts";
2
+ export declare const SERVICE_POLICY: unique symbol;
3
+ export interface InvocationServiceMiddlewareInvocation {
4
+ readonly input: unknown;
5
+ readonly context: unknown;
6
+ }
7
+ export type InvocationServiceNext = (patch?: Readonly<Record<string, unknown>>) => Promise<void>;
8
+ export interface InvocationServiceMiddleware {
9
+ readonly handler: (invocation: InvocationServiceMiddlewareInvocation, next: InvocationServiceNext) => MaybePromise<void>;
10
+ }
11
+ export interface InvocationServicePolicy {
12
+ readonly serviceId: string;
13
+ readonly middleware: readonly InvocationServiceMiddleware[];
14
+ }
15
+ export type ServicePolicySource = Readonly<Record<string, unknown>> | ReadonlyMap<string, unknown>;
16
+ export declare function resolveServicePolicy(target: unknown, source: ServicePolicySource | undefined): InvocationServicePolicy | undefined;
17
+ export declare function runServicePolicy(policy: InvocationServicePolicy, input: unknown, context: unknown, terminal: (context: unknown) => MaybePromise<unknown>): Promise<unknown>;
18
+ //# sourceMappingURL=service-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-policy.d.ts","sourceRoot":"","sources":["../src/service-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,eAAO,MAAM,cAAc,eAAsC,CAAC;AAElE,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjG,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,CAChB,UAAU,EAAE,qCAAqC,EACjD,IAAI,EAAE,qBAAqB,KACxB,YAAY,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,2BAA2B,EAAE,CAAC;CAC7D;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnG,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACtC,uBAAuB,GAAG,SAAS,CAgBrC;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,YAAY,CAAC,OAAO,CAAC,GACpD,OAAO,CAAC,OAAO,CAAC,CAkBlB"}
@@ -0,0 +1,113 @@
1
+ import { getDescriptorIdentity } from "./identity.js";
2
+ export const SERVICE_POLICY = Symbol.for("relkit.service.policy");
3
+ export function resolveServicePolicy(target, source) {
4
+ const direct = policyOf(readProperty(target, "service")) ?? policyOf(target);
5
+ if (direct !== undefined)
6
+ return direct;
7
+ if (source === undefined)
8
+ return undefined;
9
+ const targetIdentity = identityOf(target);
10
+ if (targetIdentity === undefined)
11
+ return undefined;
12
+ for (const [key, value] of entries(source)) {
13
+ if (!isRecord(value) || !isRecord(value.functions))
14
+ continue;
15
+ for (const member of Object.values(value.functions)) {
16
+ if (member === target || identityOf(member) === targetIdentity) {
17
+ return policyOf(value) ?? middlewarePolicy(key, value);
18
+ }
19
+ }
20
+ }
21
+ return undefined;
22
+ }
23
+ export async function runServicePolicy(policy, input, context, terminal) {
24
+ let result;
25
+ const base = serviceContext(context);
26
+ const run = async (index, service) => {
27
+ const current = Object.freeze({ ...contextRecord(context), service });
28
+ const middleware = policy.middleware[index];
29
+ if (middleware === undefined) {
30
+ result = await terminal(current);
31
+ return;
32
+ }
33
+ await middleware.handler(Object.freeze({ input, context: current }), async (patch) => {
34
+ await run(index + 1, mergeServiceContext(service, patch));
35
+ });
36
+ };
37
+ await run(0, base);
38
+ return result;
39
+ }
40
+ function policyOf(value) {
41
+ if (!isRecord(value))
42
+ return undefined;
43
+ const policy = value[SERVICE_POLICY];
44
+ if (!isRecord(policy) || typeof policy.serviceId !== "string")
45
+ return undefined;
46
+ return middlewarePolicy(policy.serviceId, policy);
47
+ }
48
+ function middlewarePolicy(serviceId, value) {
49
+ const middleware = Array.isArray(value.middleware) ? value.middleware.filter(isMiddleware) : [];
50
+ return Object.freeze({ serviceId, middleware: Object.freeze(middleware) });
51
+ }
52
+ function isMiddleware(value) {
53
+ return isRecord(value) && typeof value.handler === "function";
54
+ }
55
+ function mergeServiceContext(current, patch) {
56
+ if (patch !== undefined && !isRecord(patch)) {
57
+ throw new TypeError("Service middleware context patch must be an object");
58
+ }
59
+ return cloneFrozenRecord({ ...current, ...(patch ?? {}) });
60
+ }
61
+ function serviceContext(value) {
62
+ const service = readProperty(value, "service");
63
+ return isRecord(service) ? cloneFrozenRecord(service) : Object.freeze({});
64
+ }
65
+ function cloneFrozenRecord(value) {
66
+ return cloneFrozenValue({ ...value }, new WeakMap());
67
+ }
68
+ function cloneFrozenValue(value, seen) {
69
+ if (value === null || typeof value !== "object")
70
+ return value;
71
+ const existing = seen.get(value);
72
+ if (existing !== undefined)
73
+ return existing;
74
+ if (Array.isArray(value)) {
75
+ const copy = [];
76
+ seen.set(value, copy);
77
+ for (const item of value)
78
+ copy.push(cloneFrozenValue(item, seen));
79
+ return Object.freeze(copy);
80
+ }
81
+ const prototype = Object.getPrototypeOf(value);
82
+ // ponytail: opaque non-plain values stay by reference; clone them only if service context becomes serializable.
83
+ if (prototype !== Object.prototype && prototype !== null)
84
+ return value;
85
+ const copy = {};
86
+ seen.set(value, copy);
87
+ for (const [key, child] of Object.entries(value))
88
+ copy[key] = cloneFrozenValue(child, seen);
89
+ return Object.freeze(copy);
90
+ }
91
+ function contextRecord(value) {
92
+ return isRecord(value) ? value : {};
93
+ }
94
+ function identityOf(value) {
95
+ if (!isRecord(value) || (typeof value.id !== "string" && !isRecord(value.ref)))
96
+ return undefined;
97
+ try {
98
+ return getDescriptorIdentity(value);
99
+ }
100
+ catch {
101
+ return undefined;
102
+ }
103
+ }
104
+ function entries(source) {
105
+ return source instanceof Map ? source.entries() : Object.entries(source);
106
+ }
107
+ function readProperty(value, key) {
108
+ return isRecord(value) ? value[key] : undefined;
109
+ }
110
+ function isRecord(value) {
111
+ return value !== null && typeof value === "object";
112
+ }
113
+ //# sourceMappingURL=service-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-policy.js","sourceRoot":"","sources":["../src/service-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { InvocationDispatcher, StandaloneDispatcherOptions } from "./dispatcher-types.js";
2
+ export declare function createStandaloneDispatcher(baseOptions?: StandaloneDispatcherOptions): InvocationDispatcher;
3
+ //# sourceMappingURL=standalone-dispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone-dispatcher.d.ts","sourceRoot":"","sources":["../src/standalone-dispatcher.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,oBAAoB,EAEpB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAS/B,wBAAgB,0BAA0B,CACxC,WAAW,GAAE,2BAAgC,GAC5C,oBAAoB,CAatB"}
@@ -0,0 +1,107 @@
1
+ import { assertSource, callHook, defaultIdSource, defaultRunner, validateDeclaredError, validated, } from "./validation.js";
2
+ import { InvocationValidationError } from "./contracts.js";
3
+ import { linkSignals } from "./context.js";
4
+ import { resolveServicePolicy } from "./service-policy.js";
5
+ import { normalizeFailure, toPublicEnvelope } from "./failure.js";
6
+ import { makeStandaloneContext, createLocalClock } from "./dispatcher-context.js";
7
+ import { currentInvocationScope, runInInvocationScope } from "./dispatcher-scope.js";
8
+ import { createInvocationCallStack } from "./recursion.js";
9
+ import { resolveDescriptorIdentity } from "./identity.js";
10
+ import { calculateStandaloneDeadline, completeStandaloneRecord, createStandaloneRecord, standaloneParent, } from "./standalone-utils.js";
11
+ import { runStandaloneLifecycle } from "./standalone-lifecycle.js";
12
+ export function createStandaloneDispatcher(baseOptions = {}) {
13
+ let dispatcher;
14
+ dispatcher = Object.freeze({
15
+ dispatch: (request) => invokeStandalone(request, { ...baseOptions, ...request.options }, dispatcher),
16
+ });
17
+ return dispatcher;
18
+ }
19
+ async function invokeStandalone(request, options, dispatcher) {
20
+ const active = currentInvocationScope();
21
+ const activeDispatcher = active?.dispatcher === dispatcher ? active : undefined;
22
+ const parent = options.parent ?? activeDispatcher?.parent;
23
+ const source = options.source ?? "direct";
24
+ assertSource(source);
25
+ const now = options.now?.() ?? options.time?.now().getTime() ?? Date.now();
26
+ const deadlineMs = calculateStandaloneDeadline(request.target.timeoutMs, options, parent, now);
27
+ const idSource = options.idSource ?? defaultIdSource;
28
+ const traceId = options.traceId ?? parent?.traceId ?? idSource.next("trace");
29
+ const policy = resolveServicePolicy(request.target, options.servicePolicies);
30
+ const recordOptions = parent === undefined || parent === options.parent ? options : { ...options, parent };
31
+ const identity = resolveDescriptorIdentity(request.target);
32
+ const record = createStandaloneRecord(identity.id, source, recordOptions, traceId, deadlineMs, now, idSource, policy?.serviceId);
33
+ await callHook(options.onInvocationStart, record);
34
+ const controller = new AbortController();
35
+ const unlink = linkSignals(controller, [options.signal, parent?.signal]);
36
+ const time = options.time ?? createLocalClock(controller.signal, options.now);
37
+ const runner = options.effectRunner ?? defaultRunner;
38
+ let value;
39
+ let error;
40
+ let outcome = "defect";
41
+ let chain;
42
+ try {
43
+ chain = (activeDispatcher?.chain ?? createInvocationCallStack()).enterDescriptor(request.target, record.id);
44
+ if (controller.signal.aborted) {
45
+ throw normalizeFailure(controller.signal.reason, { signal: controller.signal });
46
+ }
47
+ const input = await validated(request.target.input, request.input, "input");
48
+ if (deadlineMs !== undefined && deadlineMs <= now) {
49
+ throw normalizeFailure(new Error("Invocation deadline expired"), {
50
+ signal: controller.signal,
51
+ timedOut: true,
52
+ });
53
+ }
54
+ const context = await makeStandaloneContext({
55
+ ...(options.context === undefined ? {} : { factory: options.context }),
56
+ record,
57
+ signal: controller.signal,
58
+ env: options.env ?? {},
59
+ time,
60
+ ...(options.logger === undefined ? {} : { logger: options.logger }),
61
+ ...(options.clients === undefined ? {} : { clients: options.clients }),
62
+ });
63
+ const result = await runInInvocationScope({
64
+ dispatcher,
65
+ parent: standaloneParent(record, controller.signal, deadlineMs),
66
+ chain,
67
+ }, () => runStandaloneLifecycle({
68
+ target: request.target,
69
+ input,
70
+ context,
71
+ ...(options.toolHooks === undefined ? {} : { toolHooks: options.toolHooks }),
72
+ ...(options.servicePolicies === undefined
73
+ ? {}
74
+ : { servicePolicies: options.servicePolicies }),
75
+ ...(deadlineMs === undefined ? {} : { deadline: deadlineMs }),
76
+ runner,
77
+ signal: controller.signal,
78
+ }));
79
+ value = (await validated(request.target.output, result, "output"));
80
+ outcome = "success";
81
+ }
82
+ catch (cause) {
83
+ error =
84
+ cause instanceof InvocationValidationError && cause.phase === "input"
85
+ ? cause
86
+ : cause instanceof InvocationValidationError
87
+ ? normalizeFailure(cause)
88
+ : normalizeFailure(cause, { signal: controller.signal });
89
+ error = await validateDeclaredError(request.target.errors, error);
90
+ outcome = error instanceof InvocationValidationError ? "validation-error" : error.outcome;
91
+ }
92
+ finally {
93
+ const completed = completeStandaloneRecord(record, outcome, options.now?.() ?? time.now().getTime());
94
+ const completion = Object.freeze({
95
+ record: completed,
96
+ outcome,
97
+ ...(error === undefined ? {} : { error, publicError: toPublicEnvelope(error) }),
98
+ });
99
+ await callHook(options.onCompletion, completion);
100
+ await callHook(options.onRelease, { record: completed, admitted: false });
101
+ unlink();
102
+ }
103
+ if (error !== undefined)
104
+ throw error;
105
+ return value;
106
+ }
107
+ //# sourceMappingURL=standalone-dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone-dispatcher.js","sourceRoot":"","sources":["../src/standalone-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { InvocationRunner, InvocationTarget } from "./contracts.js";
2
+ import type { InvocationValueHooks } from "./dispatcher-types.js";
3
+ import { type ServicePolicySource } from "./service-policy.js";
4
+ interface StandaloneLifecycleOptions<Input, Output, Context extends {
5
+ readonly signal: AbortSignal;
6
+ }> {
7
+ readonly target: InvocationTarget<Input, Output, Context>;
8
+ readonly input: unknown;
9
+ readonly context: Context;
10
+ readonly toolHooks?: InvocationValueHooks<Context>;
11
+ readonly servicePolicies?: ServicePolicySource;
12
+ readonly deadline?: number;
13
+ readonly runner: InvocationRunner;
14
+ readonly signal: AbortSignal;
15
+ }
16
+ export declare function runStandaloneLifecycle<Input, Output, Context extends {
17
+ readonly signal: AbortSignal;
18
+ }>(options: StandaloneLifecycleOptions<Input, Output, Context>): Promise<unknown>;
19
+ export {};
20
+ //# sourceMappingURL=standalone-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone-lifecycle.d.ts","sourceRoot":"","sources":["../src/standalone-lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,UAAU,0BAA0B,CAClC,KAAK,EACL,MAAM,EACN,OAAO,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE;IAEhD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,wBAAsB,sBAAsB,CAC1C,KAAK,EACL,MAAM,EACN,OAAO,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,EAChD,OAAO,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAqC/E"}
@@ -0,0 +1,30 @@
1
+ import { baseExecutionContext, invokeFunctionLifecycle, invokeValueHook } from "./lifecycle.js";
2
+ import { resolveServicePolicy, runServicePolicy, } from "./service-policy.js";
3
+ export async function runStandaloneLifecycle(options) {
4
+ const hookContext = baseExecutionContext(options.context);
5
+ const input = await options.runner.run(invokeValueHook({
6
+ hook: options.toolHooks?.onBefore,
7
+ value: options.input,
8
+ schema: options.target.input,
9
+ context: hookContext,
10
+ ...(options.deadline === undefined ? {} : { deadline: options.deadline }),
11
+ }), { signal: options.signal });
12
+ const invokeHandler = (context) => options.runner.run(invokeFunctionLifecycle({
13
+ target: options.target,
14
+ input,
15
+ context: context,
16
+ ...(options.deadline === undefined ? {} : { deadline: options.deadline }),
17
+ }), { signal: options.signal });
18
+ const policy = resolveServicePolicy(options.target, options.servicePolicies);
19
+ const output = policy === undefined
20
+ ? await invokeHandler(options.context)
21
+ : await runServicePolicy(policy, input, options.context, invokeHandler);
22
+ return options.runner.run(invokeValueHook({
23
+ hook: options.toolHooks?.onAfter,
24
+ value: output,
25
+ schema: options.target.output,
26
+ context: hookContext,
27
+ ...(options.deadline === undefined ? {} : { deadline: options.deadline }),
28
+ }), { signal: options.signal });
29
+ }
30
+ //# sourceMappingURL=standalone-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone-lifecycle.js","sourceRoot":"","sources":["../src/standalone-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGhG,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAiB7B,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAI1C,OAA2D;IAC3D,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAuB,CAAC;IAChF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CACpC,eAAe,CAAC;QACd,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ;QACjC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QAC5B,OAAO,EAAE,WAAW;QACpB,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;KAC1E,CAAC,EACF,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAC3B,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAE,EAAE,CACzC,OAAO,CAAC,MAAM,CAAC,GAAG,CAChB,uBAAuB,CAAC;QACtB,MAAM,EAAE,OAAO,CAAC,MAAqD;QACrE,KAAK;QACL,OAAO,EAAE,OAAkB;QAC3B,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;KAC1E,CAAC,EACF,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAC3B,CAAC;IACJ,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7E,MAAM,MAAM,GACV,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;QACtC,CAAC,CAAC,MAAM,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC5E,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CACvB,eAAe,CAAC;QACd,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO;QAChC,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;QAC7B,OAAO,EAAE,WAAW;QACpB,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;KAC1E,CAAC,EACF,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAC3B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { InvocationIdSource, InvocationParent, InvocationRecord, InvocationSource } from "./contracts.js";
2
+ import type { InvocationDispatchOptions } from "./dispatcher-types.js";
3
+ type DeadlineOptions = Pick<InvocationDispatchOptions, "deadlineMs" | "timeoutMs">;
4
+ type RecordOptions = Pick<InvocationDispatchOptions, "correlationId" | "parent">;
5
+ export declare function calculateStandaloneDeadline(targetTimeout: number | undefined, options: DeadlineOptions, parent: InvocationParent | undefined, now: number): number | undefined;
6
+ export declare function createStandaloneRecord(functionId: string, source: InvocationSource, options: RecordOptions, traceId: string, deadlineMs: number | undefined, now: number, idSource: InvocationIdSource, serviceId?: string): InvocationRecord;
7
+ export declare function completeStandaloneRecord(record: InvocationRecord, outcome: Exclude<InvocationRecord["status"], "started">, now: number): InvocationRecord;
8
+ export declare function standaloneParent(record: InvocationRecord, signal: AbortSignal, deadlineMs: number | undefined): InvocationParent;
9
+ export {};
10
+ //# sourceMappingURL=standalone-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone-utils.d.ts","sourceRoot":"","sources":["../src/standalone-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEvE,KAAK,eAAe,GAAG,IAAI,CAAC,yBAAyB,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC;AACnF,KAAK,aAAa,GAAG,IAAI,CAAC,yBAAyB,EAAE,eAAe,GAAG,QAAQ,CAAC,CAAC;AAEjF,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAsBpB;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,CAAC,EAAE,MAAM,GACjB,gBAAgB,CAclB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,EACvD,GAAG,EAAE,MAAM,GACV,gBAAgB,CAOlB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,gBAAgB,CAQlB"}
@@ -0,0 +1,52 @@
1
+ export function calculateStandaloneDeadline(targetTimeout, options, parent, now) {
2
+ const timeouts = [targetTimeout, options.timeoutMs].filter((value) => value !== undefined);
3
+ for (const timeout of timeouts) {
4
+ if (!Number.isFinite(timeout) || timeout < 0) {
5
+ throw new RangeError("timeoutMs must be finite and non-negative");
6
+ }
7
+ }
8
+ const deadlines = [parent?.deadlineMs, options.deadlineMs];
9
+ if (timeouts.length > 0)
10
+ deadlines.push(now + Math.min(...timeouts));
11
+ for (const deadline of deadlines) {
12
+ if (deadline !== undefined && !Number.isFinite(deadline)) {
13
+ throw new RangeError("deadline must be a finite timestamp");
14
+ }
15
+ }
16
+ return deadlines
17
+ .filter((value) => value !== undefined)
18
+ .reduce((minimum, value) => (minimum === undefined ? value : Math.min(minimum, value)), undefined);
19
+ }
20
+ export function createStandaloneRecord(functionId, source, options, traceId, deadlineMs, now, idSource, serviceId) {
21
+ const correlationId = options.correlationId ?? options.parent?.correlationId;
22
+ const metadata = {
23
+ id: idSource.next("invocation"),
24
+ traceId,
25
+ ...(options.parent?.id === undefined ? {} : { parentId: options.parent.id }),
26
+ ...(correlationId === undefined ? {} : { correlationId }),
27
+ startedAt: new Date(now).toISOString(),
28
+ ...(deadlineMs === undefined ? {} : { deadline: new Date(deadlineMs).toISOString() }),
29
+ attempt: 1,
30
+ source,
31
+ ...(serviceId === undefined ? {} : { serviceId }),
32
+ };
33
+ return Object.freeze({ ...metadata, functionId, status: "started" });
34
+ }
35
+ export function completeStandaloneRecord(record, outcome, now) {
36
+ return Object.freeze({
37
+ ...record,
38
+ status: outcome,
39
+ completedAt: new Date(now).toISOString(),
40
+ durationMs: Math.max(0, now - Date.parse(record.startedAt)),
41
+ });
42
+ }
43
+ export function standaloneParent(record, signal, deadlineMs) {
44
+ return {
45
+ id: record.id,
46
+ traceId: record.traceId,
47
+ ...(record.correlationId === undefined ? {} : { correlationId: record.correlationId }),
48
+ ...(deadlineMs === undefined ? {} : { deadlineMs }),
49
+ signal,
50
+ };
51
+ }
52
+ //# sourceMappingURL=standalone-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone-utils.js","sourceRoot":"","sources":["../src/standalone-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Effect } from "effect";
2
+ import { type InvocationFailure } from "./failure.js";
3
+ import { type StandardSchemaV1 } from "@relkit/schema";
4
+ import type { InvocationErrorDefinition, InvocationIdSource, InvocationSource } from "./contracts.js";
5
+ import { InvocationValidationError } from "./contracts.js";
6
+ export declare function validated(schema: StandardSchemaV1, value: unknown, phase: "input" | "output"): Promise<unknown>;
7
+ export declare function callHook<T>(hook: ((value: T) => unknown) | undefined, value: T): Promise<void>;
8
+ export declare function assertSource(value: string): asserts value is InvocationSource;
9
+ export declare function validateDeclaredError(definitions: readonly InvocationErrorDefinition[] | undefined, error: InvocationValidationError | InvocationFailure): Promise<InvocationValidationError | InvocationFailure>;
10
+ export declare const defaultIdSource: InvocationIdSource;
11
+ export declare const defaultRunner: {
12
+ run: <A, E>(effect: Effect.Effect<A, E, never>, options?: {
13
+ readonly signal?: AbortSignal;
14
+ }) => Promise<A>;
15
+ };
16
+ export declare const unknownSchema: StandardSchemaV1;
17
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAiC,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,wBAAsB,SAAS,CAC7B,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,OAAO,GAAG,QAAQ,GACxB,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,EACzC,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAI7E;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,SAAS,yBAAyB,EAAE,GAAG,SAAS,EAC7D,KAAK,EAAE,yBAAyB,GAAG,iBAAiB,GACnD,OAAO,CAAC,yBAAyB,GAAG,iBAAiB,CAAC,CAexD;AAED,eAAO,MAAM,eAAe,EAAE,kBAE7B,CAAC;AAEF,eAAO,MAAM,aAAa;UAClB,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,YAAY;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;CAE5F,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,gBAM1B,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { Effect } from "effect";
2
+ import { unexpectedDefect } from "./failure.js";
3
+ import { validate } from "@relkit/schema";
4
+ import { InvocationValidationError } from "./contracts.js";
5
+ import { getDescriptorIdentity } from "./identity.js";
6
+ export async function validated(schema, value, phase) {
7
+ let result;
8
+ try {
9
+ result = (await validate(schema, value));
10
+ }
11
+ catch (cause) {
12
+ throw unexpectedDefect(cause);
13
+ }
14
+ if (!("value" in result))
15
+ throw new InvocationValidationError(phase, result.issues);
16
+ return result.value;
17
+ }
18
+ export async function callHook(hook, value) {
19
+ try {
20
+ await hook?.(value);
21
+ }
22
+ catch {
23
+ // Observability must not replace the invocation result or skip release.
24
+ }
25
+ }
26
+ export function assertSource(value) {
27
+ if (!"direct http job event tool agent".split(" ").includes(value)) {
28
+ throw new TypeError(`Unknown invocation source: ${value}`);
29
+ }
30
+ }
31
+ export async function validateDeclaredError(definitions, error) {
32
+ if (error instanceof InvocationValidationError || error.kind !== "application")
33
+ return error;
34
+ const definition = definitions?.find((candidate) => getDescriptorIdentity(candidate) === error.id);
35
+ if (definition === undefined)
36
+ return unexpectedDefect(new Error("Undeclared application error"));
37
+ try {
38
+ const result = (await validate(definition.data, error.data));
39
+ return "value" in result ? error : unexpectedDefect(new Error("Invalid declared error data"));
40
+ }
41
+ catch (cause) {
42
+ return unexpectedDefect(cause);
43
+ }
44
+ }
45
+ export const defaultIdSource = {
46
+ next: (kind) => `${kind}-${crypto.randomUUID()}`,
47
+ };
48
+ export const defaultRunner = {
49
+ run: (effect, options) => Effect.runPromise(effect, options),
50
+ };
51
+ export const unknownSchema = Object.freeze({
52
+ "~standard": Object.freeze({
53
+ version: 1,
54
+ vendor: "relkit",
55
+ validate: (value) => ({ value }),
56
+ }),
57
+ });
58
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@relkit/invocation",
3
+ "version": "0.0.0",
4
+ "description": "Unsupported internal RELKIT invocation contracts; use @relkit/app.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/rel-kit/relkit.git",
9
+ "directory": "packages/invocation"
10
+ },
11
+ "homepage": "https://github.com/rel-kit/relkit#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/rel-kit/relkit/issues"
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "publishConfig": {
19
+ "access": "public"
20
+ },
21
+ "engines": {
22
+ "bun": ">=1.3.10"
23
+ },
24
+ "type": "module",
25
+ "exports": {
26
+ ".": {
27
+ "types": "./dist/index.d.ts",
28
+ "import": "./dist/index.js"
29
+ }
30
+ },
31
+ "dependencies": {
32
+ "@relkit/contracts": "0.0.0",
33
+ "@relkit/schema": "0.0.0",
34
+ "effect": "4.0.0-beta.107"
35
+ },
36
+ "scripts": {
37
+ "build": "tsc -b",
38
+ "check": "tsc -b --pretty false",
39
+ "typecheck": "tsc -b --pretty false"
40
+ }
41
+ }