@relayfx/sdk 0.7.9 → 0.7.11
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.
- package/dist/ai.js +1 -1
- package/dist/http-server.js +1 -1
- package/dist/{index-0gd9t134.js → index-d1je4njg.js} +4089 -3765
- package/dist/{index-72hhs3mp.js → index-d5563j6w.js} +46 -46
- package/dist/{index-nb078xsy.js → index-j8k41y47.js} +26 -4
- package/dist/{index-qjad95s5.js → index-skcp0xvt.js} +1 -1
- package/dist/index.js +11 -11
- package/dist/migrations/20260723190000_transactional_event_head/migration.sql +22 -0
- package/dist/migrations/20260724010000_execution_event_archive_manifests/migration.sql +66 -0
- package/dist/migrations/20260724120000_execution_event_identity_directory/migration.sql +15 -0
- package/dist/migrations/20260724230000_idempotent_steering/migration.sql +7 -0
- package/dist/migrations/mysql/0015_transactional_event_head.sql +32 -0
- package/dist/migrations/mysql/0016_execution_event_archive_manifests.sql +65 -0
- package/dist/migrations/mysql/0017_execution_event_identity_directory.sql +20 -0
- package/dist/migrations/mysql/0018_idempotent_steering.sql +7 -0
- package/dist/migrations/pg/20260723190000_transactional_event_head/migration.sql +22 -0
- package/dist/migrations/pg/20260724010000_execution_event_archive_manifests/migration.sql +66 -0
- package/dist/migrations/pg/20260724120000_execution_event_identity_directory/migration.sql +15 -0
- package/dist/migrations/pg/20260724230000_idempotent_steering/migration.sql +7 -0
- package/dist/migrations/sqlite/0015_transactional_event_head.sql +22 -0
- package/dist/migrations/sqlite/0016_execution_event_archive_manifests.sql +45 -0
- package/dist/migrations/sqlite/0017_execution_event_identity_directory.sql +13 -0
- package/dist/migrations/sqlite/0018_idempotent_steering.sql +5 -0
- package/dist/mysql.js +50 -9
- package/dist/postgres.js +136 -14
- package/dist/sqlite.js +116 -5
- package/dist/types/relay/client-public-executions.d.ts +1 -1
- package/dist/types/relay/client-public.d.ts +2 -2
- package/dist/types/relay/http-server.d.ts +2 -2
- package/dist/types/relay/mysql-migrations.d.ts +1 -1
- package/dist/types/relay/operation.d.ts +9 -0
- package/dist/types/relay/sqlite-migrations.d.ts +21 -1
- package/dist/types/runtime/agent/agent-loop-events.d.ts +10 -9
- package/dist/types/runtime/agent/agent-loop-service.d.ts +1 -0
- package/dist/types/runtime/agent/emission-ordinal-allocator.d.ts +7 -0
- package/dist/types/runtime/agent/relay-permissions.d.ts +4 -7
- package/dist/types/runtime/agent/relay-steering.d.ts +5 -5
- package/dist/types/runtime/agent/relay-tool-executor.d.ts +3 -2
- package/dist/types/runtime/envelope/envelope-service.d.ts +2 -1
- package/dist/types/runtime/execution/event-log-service.d.ts +5 -4
- package/dist/types/runtime/execution/execution-service.d.ts +1 -1
- package/dist/types/runtime/inbox/inbox-service.d.ts +6 -6
- package/dist/types/runtime/schedule/scheduler-service.d.ts +3 -4
- package/dist/types/runtime/state/execution-state-service.d.ts +2 -2
- package/dist/types/runtime/tool/tool-runtime-contract.d.ts +2 -0
- package/dist/types/runtime/tool/tool-runtime-identifiers.d.ts +6 -0
- package/dist/types/runtime/wait/wait-service.d.ts +5 -5
- package/dist/types/runtime/workflow/execution-workflow.d.ts +2 -3
- package/dist/types/runtime/workspace/workspace-planner-service.d.ts +2 -0
- package/dist/types/schema/workflow-schema.d.ts +1 -0
- package/dist/types/store-sql/execution/archive-compression.d.ts +11 -0
- package/dist/types/store-sql/execution/event-history-file-system.d.ts +7 -0
- package/dist/types/store-sql/execution/event-history-store.d.ts +93 -0
- package/dist/types/store-sql/execution/execution-event-archive-codec.d.ts +69 -0
- package/dist/types/store-sql/execution/execution-event-archive-repository-memory.d.ts +28 -0
- package/dist/types/store-sql/execution/execution-event-archive-repository-sql.d.ts +19 -0
- package/dist/types/store-sql/execution/execution-event-archive-repository.d.ts +175 -0
- package/dist/types/store-sql/execution/execution-event-head-memory.d.ts +13 -0
- package/dist/types/store-sql/execution/execution-event-head.d.ts +40 -0
- package/dist/types/store-sql/execution/execution-event-identity-directory.d.ts +26 -0
- package/dist/types/store-sql/execution/execution-event-repository-archive-aware.d.ts +7 -0
- package/dist/types/store-sql/execution/execution-event-repository-memory.d.ts +6 -1
- package/dist/types/store-sql/execution/execution-event-repository.d.ts +6 -4
- package/dist/types/store-sql/inbox/inbox-repository.d.ts +6 -2
- package/dist/types/store-sql/schema/communication-schema.d.ts +15 -0
- package/dist/types/store-sql/schema/execution-schema.d.ts +583 -0
- package/dist/types/store-sql/schema/relay-schema.d.ts +1 -1
- package/dist/types/store-sql/state/execution-state-repository.d.ts +2 -1
- package/dist/types/store-sql/steering/steering-model.d.ts +60 -0
- package/dist/types/store-sql/steering/steering-repository.d.ts +5 -50
- package/package.json +5 -5
- package/dist/types/relay/client-event-sequence.d.ts +0 -3
- package/dist/types/runtime/agent/sequence-allocator.d.ts +0 -9
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Content, Ids } from "../../schema/index";
|
|
2
|
+
import { Effect, Schema } from "effect";
|
|
3
|
+
export type SteeringKind = "steering" | "follow_up";
|
|
4
|
+
export type DrainMode = "all" | "one-at-a-time";
|
|
5
|
+
declare const SteeringRepositoryError_base: Schema.Class<SteeringRepositoryError, Schema.TaggedStruct<"SteeringRepositoryError", {
|
|
6
|
+
readonly message: Schema.String;
|
|
7
|
+
}>, import("effect/Cause").YieldableError>;
|
|
8
|
+
export declare class SteeringRepositoryError extends SteeringRepositoryError_base {
|
|
9
|
+
}
|
|
10
|
+
declare const SteeringIdempotencyConflict_base: Schema.Class<SteeringIdempotencyConflict, Schema.TaggedStruct<"SteeringIdempotencyConflict", {
|
|
11
|
+
readonly execution_id: Schema.brand<Schema.String, "Relay.ExecutionId"> & {
|
|
12
|
+
make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ExecutionId">;
|
|
13
|
+
};
|
|
14
|
+
readonly idempotency_key: Schema.String;
|
|
15
|
+
}>, import("effect/Cause").YieldableError>;
|
|
16
|
+
export declare class SteeringIdempotencyConflict extends SteeringIdempotencyConflict_base {
|
|
17
|
+
}
|
|
18
|
+
export interface SteeringMessageRecord {
|
|
19
|
+
readonly executionId: Ids.ExecutionId;
|
|
20
|
+
readonly idempotencyKey: string;
|
|
21
|
+
readonly kind: SteeringKind;
|
|
22
|
+
readonly sequence: number;
|
|
23
|
+
readonly content: ReadonlyArray<Content.Part>;
|
|
24
|
+
readonly drainId?: string;
|
|
25
|
+
readonly consumedAt?: number;
|
|
26
|
+
readonly createdAt: number;
|
|
27
|
+
}
|
|
28
|
+
export interface SteeringDrainRecord {
|
|
29
|
+
readonly executionId: Ids.ExecutionId;
|
|
30
|
+
readonly kind: SteeringKind;
|
|
31
|
+
readonly drainId: string;
|
|
32
|
+
readonly messageSequences: ReadonlyArray<number>;
|
|
33
|
+
readonly createdAt: number;
|
|
34
|
+
}
|
|
35
|
+
export interface AppendInput {
|
|
36
|
+
readonly executionId: Ids.ExecutionId;
|
|
37
|
+
readonly idempotencyKey: string;
|
|
38
|
+
readonly kind: SteeringKind;
|
|
39
|
+
readonly content: ReadonlyArray<Content.Part>;
|
|
40
|
+
readonly createdAt: number;
|
|
41
|
+
}
|
|
42
|
+
export interface DrainInput {
|
|
43
|
+
readonly executionId: Ids.ExecutionId;
|
|
44
|
+
readonly kind: SteeringKind;
|
|
45
|
+
readonly drainId: string;
|
|
46
|
+
readonly mode: DrainMode;
|
|
47
|
+
readonly consumedAt: number;
|
|
48
|
+
readonly createdAt: number;
|
|
49
|
+
}
|
|
50
|
+
export interface DrainResult {
|
|
51
|
+
readonly drain: SteeringDrainRecord;
|
|
52
|
+
readonly messages: ReadonlyArray<SteeringMessageRecord>;
|
|
53
|
+
}
|
|
54
|
+
export interface Interface {
|
|
55
|
+
readonly recover: (input: AppendInput) => Effect.Effect<SteeringMessageRecord | undefined, SteeringRepositoryError | SteeringIdempotencyConflict>;
|
|
56
|
+
readonly append: (input: AppendInput) => Effect.Effect<SteeringMessageRecord, SteeringRepositoryError | SteeringIdempotencyConflict>;
|
|
57
|
+
readonly appendForRunning: (input: AppendInput) => Effect.Effect<SteeringMessageRecord, SteeringRepositoryError | SteeringIdempotencyConflict>;
|
|
58
|
+
readonly drainUnconsumed: (input: DrainInput) => Effect.Effect<DrainResult, SteeringRepositoryError>;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
@@ -1,57 +1,13 @@
|
|
|
1
|
-
import { Content, Ids } from "../../schema/index";
|
|
2
1
|
import { Context, Effect, Layer, Schema } from "effect";
|
|
3
2
|
import { SqlClient } from "effect/unstable/sql/SqlClient";
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
declare const SteeringRepositoryError_base: Schema.Class<SteeringRepositoryError, Schema.TaggedStruct<"SteeringRepositoryError", {
|
|
7
|
-
readonly message: Schema.String;
|
|
8
|
-
}>, import("effect/Cause").YieldableError>;
|
|
9
|
-
export declare class SteeringRepositoryError extends SteeringRepositoryError_base {
|
|
10
|
-
}
|
|
11
|
-
export interface SteeringMessageRecord {
|
|
12
|
-
readonly executionId: Ids.ExecutionId;
|
|
13
|
-
readonly kind: SteeringKind;
|
|
14
|
-
readonly sequence: number;
|
|
15
|
-
readonly content: ReadonlyArray<Content.Part>;
|
|
16
|
-
readonly drainId?: string;
|
|
17
|
-
readonly consumedAt?: number;
|
|
18
|
-
readonly createdAt: number;
|
|
19
|
-
}
|
|
20
|
-
export interface SteeringDrainRecord {
|
|
21
|
-
readonly executionId: Ids.ExecutionId;
|
|
22
|
-
readonly kind: SteeringKind;
|
|
23
|
-
readonly drainId: string;
|
|
24
|
-
readonly messageSequences: ReadonlyArray<number>;
|
|
25
|
-
readonly createdAt: number;
|
|
26
|
-
}
|
|
27
|
-
export interface AppendInput {
|
|
28
|
-
readonly executionId: Ids.ExecutionId;
|
|
29
|
-
readonly kind: SteeringKind;
|
|
30
|
-
readonly content: ReadonlyArray<Content.Part>;
|
|
31
|
-
readonly createdAt: number;
|
|
32
|
-
}
|
|
33
|
-
export interface DrainInput {
|
|
34
|
-
readonly executionId: Ids.ExecutionId;
|
|
35
|
-
readonly kind: SteeringKind;
|
|
36
|
-
readonly drainId: string;
|
|
37
|
-
readonly mode: DrainMode;
|
|
38
|
-
readonly consumedAt: number;
|
|
39
|
-
readonly createdAt: number;
|
|
40
|
-
}
|
|
41
|
-
export interface DrainResult {
|
|
42
|
-
readonly drain: SteeringDrainRecord;
|
|
43
|
-
readonly messages: ReadonlyArray<SteeringMessageRecord>;
|
|
44
|
-
}
|
|
45
|
-
export interface Interface {
|
|
46
|
-
readonly append: (input: AppendInput) => Effect.Effect<SteeringMessageRecord, SteeringRepositoryError>;
|
|
47
|
-
readonly appendForRunning: (input: AppendInput) => Effect.Effect<SteeringMessageRecord, SteeringRepositoryError>;
|
|
48
|
-
readonly drainUnconsumed: (input: DrainInput) => Effect.Effect<DrainResult, SteeringRepositoryError>;
|
|
49
|
-
}
|
|
3
|
+
import { type AppendInput, type DrainInput, type DrainResult, type Interface, SteeringIdempotencyConflict, type SteeringMessageRecord, SteeringRepositoryError } from "./steering-model";
|
|
4
|
+
export * from "./steering-model";
|
|
50
5
|
declare const Service_base: Context.ServiceClass<Service, "@relayfx/store-sql/steering/steering-repository/Service", Interface>;
|
|
51
6
|
export declare class Service extends Service_base {
|
|
52
7
|
}
|
|
53
8
|
export declare const SteeringMessageRow: Schema.Struct<{
|
|
54
9
|
readonly execution_id: Schema.String;
|
|
10
|
+
readonly idempotency_key: Schema.String;
|
|
55
11
|
readonly kind: Schema.Literals<readonly ["steering", "follow_up"]>;
|
|
56
12
|
readonly sequence: Schema.Union<readonly [Schema.Finite, Schema.String]>;
|
|
57
13
|
readonly content_json: Schema.Unknown;
|
|
@@ -69,7 +25,6 @@ export declare const SteeringDrainRow: Schema.Struct<{
|
|
|
69
25
|
export declare const layer: Layer.Layer<Service, never, SqlClient>;
|
|
70
26
|
export declare const memoryLayer: Layer.Layer<Service, never, never>;
|
|
71
27
|
export declare const testLayer: (implementation: Interface) => Layer.Layer<Service, never, never>;
|
|
72
|
-
export declare const append: (input: AppendInput) => Effect.Effect<SteeringMessageRecord, SteeringRepositoryError, Service>;
|
|
73
|
-
export declare const appendForRunning: (input: AppendInput) => Effect.Effect<SteeringMessageRecord, SteeringRepositoryError, Service>;
|
|
28
|
+
export declare const append: (input: AppendInput) => Effect.Effect<SteeringMessageRecord, SteeringIdempotencyConflict | SteeringRepositoryError, Service>;
|
|
29
|
+
export declare const appendForRunning: (input: AppendInput) => Effect.Effect<SteeringMessageRecord, SteeringIdempotencyConflict | SteeringRepositoryError, Service>;
|
|
74
30
|
export declare const drainUnconsumed: (input: DrainInput) => Effect.Effect<DrainResult, SteeringRepositoryError, Service>;
|
|
75
|
-
export {};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@relayfx/sdk",
|
|
4
|
-
"version": "0.7.
|
|
4
|
+
"version": "0.7.11",
|
|
5
5
|
"description": "Effect-native durable execution SDK for addressable agents and tools",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": {
|
|
@@ -53,12 +53,12 @@
|
|
|
53
53
|
"scripts": {
|
|
54
54
|
"build": "rm -rf dist && bun build ./src/index.ts ./src/ai.ts ./src/http-server.ts ./src/sqlite.ts ./src/postgres.ts ./src/mysql.ts --outdir dist --target bun --format esm --splitting --external effect --external 'effect/*' --external '@effect/*' --external drizzle-orm --external 'drizzle-orm/*' --external pg && bun scripts/build-types.ts",
|
|
55
55
|
"lint": "bun --cwd ../.. oxlint packages/relay/src packages/relay/scripts packages/relay/test",
|
|
56
|
-
"test": "bun --cwd ../.. vitest run packages/relay/test --passWithNoTests && bun test/sqlite.integration.ts",
|
|
56
|
+
"test": "bun --cwd ../.. vitest run packages/relay/test --passWithNoTests && bun test/sqlite.integration.ts && bun test/mysql-migration-recovery.integration.ts",
|
|
57
57
|
"typecheck": "bun tsc --noEmit"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@batonfx/core": "0.11.
|
|
61
|
-
"@batonfx/providers": "0.11.
|
|
60
|
+
"@batonfx/core": "0.11.8",
|
|
61
|
+
"@batonfx/providers": "0.11.8",
|
|
62
62
|
"@effect/ai-anthropic": "4.0.0-beta.98",
|
|
63
63
|
"@effect/ai-openai": "4.0.0-beta.98",
|
|
64
64
|
"@effect/ai-openai-compat": "4.0.0-beta.98",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"@effect/vitest": "4.0.0-beta.98",
|
|
76
76
|
"@relayfx/ai": "0.0.0",
|
|
77
77
|
"@relayfx/runtime": "0.0.0",
|
|
78
|
-
"@relayfx/schema": "0.7.
|
|
78
|
+
"@relayfx/schema": "0.7.11",
|
|
79
79
|
"@relayfx/store-sql": "0.0.0",
|
|
80
80
|
"@types/bun": "1.3.14",
|
|
81
81
|
"typescript": "7.0.2",
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { Interface as EventLogInterface } from "../runtime/execution/event-log-service";
|
|
2
|
-
import { Effect } from "effect";
|
|
3
|
-
export declare const nextEventSequence: (eventLog: EventLogInterface, executionId: string & import("effect/Brand").Brand<"Relay.ExecutionId">) => Effect.Effect<number, import("./client-public").ClientError, never>;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Execution } from "../../schema/index";
|
|
2
|
-
import { Effect } from "effect";
|
|
3
|
-
export interface SequenceAllocator {
|
|
4
|
-
readonly allocate: (count: number) => Effect.Effect<Execution.ExecutionEventSequence>;
|
|
5
|
-
readonly current: Effect.Effect<Execution.ExecutionEventSequence>;
|
|
6
|
-
readonly advanceTo: (sequence: Execution.ExecutionEventSequence) => Effect.Effect<void>;
|
|
7
|
-
readonly resetTo: (sequence: Execution.ExecutionEventSequence) => Effect.Effect<void>;
|
|
8
|
-
}
|
|
9
|
-
export declare const make: (first: Execution.ExecutionEventSequence) => Effect.Effect<SequenceAllocator>;
|