@relayfx/sdk 0.0.48 → 0.0.50

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 (34) hide show
  1. package/dist/ai.js +2054 -576
  2. package/dist/index.js +2884 -860
  3. package/dist/migrations/20260709214238_faithful_black_widow/migration.sql +53 -0
  4. package/dist/migrations/20260709214238_faithful_black_widow/snapshot.json +5426 -0
  5. package/dist/migrations/20260709220016_fearless_aaron_stack/migration.sql +2 -0
  6. package/dist/migrations/20260709220016_fearless_aaron_stack/snapshot.json +5426 -0
  7. package/dist/migrations/mysql/0002_durable_tool_placement.sql +75 -0
  8. package/dist/migrations/pg/20260709214238_faithful_black_widow/migration.sql +53 -0
  9. package/dist/migrations/pg/20260709214238_faithful_black_widow/snapshot.json +5426 -0
  10. package/dist/migrations/pg/20260709220016_fearless_aaron_stack/migration.sql +2 -0
  11. package/dist/migrations/pg/20260709220016_fearless_aaron_stack/snapshot.json +5426 -0
  12. package/dist/migrations/sqlite/0002_durable_tool_placement.sql +71 -0
  13. package/dist/types/relay/client.d.ts +27 -6
  14. package/dist/types/relay/index.d.ts +1 -0
  15. package/dist/types/relay/operation.d.ts +525 -53
  16. package/dist/types/relay/tool-worker.d.ts +19 -0
  17. package/dist/types/runtime/address/address-resolution-service.d.ts +69 -54
  18. package/dist/types/runtime/agent/relay-compaction.d.ts +1 -0
  19. package/dist/types/runtime/cluster/execution-entity.d.ts +10 -477
  20. package/dist/types/runtime/execution/event-log-service.d.ts +6 -0
  21. package/dist/types/runtime/index.d.ts +1 -0
  22. package/dist/types/runtime/runner/runner-runtime-service.d.ts +18 -15
  23. package/dist/types/runtime/tool/tool-runtime-service.d.ts +17 -1
  24. package/dist/types/runtime/tool/tool-transition-coordinator.d.ts +13 -0
  25. package/dist/types/runtime/workflow/execution-workflow.d.ts +146 -114
  26. package/dist/types/schema/agent-schema.d.ts +431 -320
  27. package/dist/types/schema/execution-schema.d.ts +69 -53
  28. package/dist/types/schema/ids-schema.d.ts +4 -0
  29. package/dist/types/schema/tool-schema.d.ts +29 -0
  30. package/dist/types/store-sql/envelope/envelope-repository.d.ts +6 -0
  31. package/dist/types/store-sql/execution/execution-event-repository.d.ts +6 -0
  32. package/dist/types/store-sql/schema/relay-schema.d.ts +386 -7
  33. package/dist/types/store-sql/tool/tool-call-repository.d.ts +160 -1
  34. package/package.json +3 -3
@@ -1,3 +1,4 @@
1
+ import { Agent } from "../schema/index";
1
2
  import { Schema } from "effect";
2
3
  export declare const StartExecutionInput: Schema.Struct<{
3
4
  readonly execution_id: Schema.brand<Schema.String, "Relay.ExecutionId"> & {
@@ -65,61 +66,76 @@ export declare const StartExecutionInput: Schema.Struct<{
65
66
  make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.AgentId">;
66
67
  }>;
67
68
  readonly agent_revision: Schema.optionalKey<Schema.Int>;
68
- readonly agent_snapshot: Schema.optionalKey<Schema.Struct<{
69
- readonly name: Schema.String;
70
- readonly instructions: Schema.optionalKey<Schema.String>;
71
- readonly model: Schema.Struct<{
72
- readonly provider: Schema.String;
73
- readonly model: Schema.String;
74
- readonly registration_key: Schema.optionalKey<Schema.String>;
75
- readonly request_options: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
76
- readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
77
- }>;
78
- readonly tool_names: Schema.$Array<Schema.String>;
79
- readonly permissions: Schema.$Array<Schema.Struct<{
80
- readonly name: Schema.String;
81
- readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
82
- readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
83
- }>>;
84
- readonly skill_definition_ids: Schema.optionalKey<Schema.$Array<Schema.brand<Schema.String, "Relay.SkillDefinitionId"> & {
85
- make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.SkillDefinitionId">;
86
- }>>;
87
- readonly permission_rules: Schema.optionalKey<Schema.Struct<{
88
- readonly rules: Schema.$Array<Schema.Struct<{
89
- readonly pattern: Schema.String;
90
- readonly level: Schema.Literals<readonly ["allow", "deny", "ask"]>;
91
- readonly reason: Schema.optionalKey<Schema.String>;
92
- }>>;
93
- readonly fallback: Schema.optionalKey<Schema.Literals<readonly ["allow", "deny", "ask"]>>;
94
- }>>;
95
- readonly max_tool_turns: Schema.optionalKey<Schema.Int>;
96
- readonly max_wait_turns: Schema.optionalKey<Schema.Int>;
97
- readonly token_budget: Schema.optionalKey<Schema.Int>;
98
- readonly child_run_presets: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Struct<{
99
- readonly instructions: Schema.optionalKey<Schema.String>;
100
- readonly model: Schema.optionalKey<Schema.Struct<{
101
- readonly provider: Schema.String;
102
- readonly model: Schema.String;
103
- readonly registration_key: Schema.optionalKey<Schema.String>;
104
- readonly request_options: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
105
- readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
106
- }>>;
107
- readonly tool_names: Schema.optionalKey<Schema.$Array<Schema.String>>;
108
- readonly permissions: Schema.optionalKey<Schema.$Array<Schema.String>>;
109
- readonly workspace_policy: Schema.optionalKey<Schema.Struct<{
110
- readonly mode: Schema.Literals<readonly ["share", "fork"]>;
111
- readonly fallback: Schema.optionalKey<Schema.Literals<readonly ["fail", "fresh"]>>;
112
- }>>;
113
- readonly output_schema_ref: Schema.optionalKey<Schema.String>;
114
- readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
115
- }>>>;
116
- readonly handoff_targets: Schema.optionalKey<Schema.$Array<Schema.Struct<{
69
+ readonly agent_snapshot: Schema.optionalKey<Schema.Codec<Agent.Definition, {
70
+ readonly name: string;
71
+ readonly permissions: readonly {
72
+ readonly name: string;
73
+ readonly value: Schema.Json;
74
+ readonly metadata?: {
75
+ readonly [x: string]: Schema.Json;
76
+ };
77
+ }[];
78
+ readonly model: {
79
+ readonly provider: string;
80
+ readonly model: string;
81
+ readonly metadata?: {
82
+ readonly [x: string]: Schema.Json;
83
+ };
84
+ readonly registration_key?: string;
85
+ readonly request_options?: {
86
+ readonly [x: string]: Schema.Json;
87
+ };
88
+ };
89
+ readonly tool_names: readonly string[];
90
+ readonly metadata?: {
91
+ readonly [x: string]: Schema.Json;
92
+ };
93
+ readonly instructions?: string;
94
+ readonly output_schema_ref?: string;
95
+ readonly skill_definition_ids?: readonly string[];
96
+ readonly permission_rules?: {
97
+ readonly rules: readonly {
98
+ readonly pattern: string;
99
+ readonly level: "allow" | "deny" | "ask";
100
+ readonly reason?: string;
101
+ }[];
102
+ readonly fallback?: "allow" | "deny" | "ask";
103
+ };
104
+ readonly turn_policy?: Agent.TurnPolicySnapshot;
105
+ readonly max_tool_turns?: number;
106
+ readonly max_wait_turns?: number;
107
+ readonly token_budget?: number;
108
+ readonly child_run_presets?: {
109
+ readonly [x: string]: {
110
+ readonly metadata?: {
111
+ readonly [x: string]: Schema.Json;
112
+ };
113
+ readonly permissions?: readonly string[];
114
+ readonly model?: {
115
+ readonly provider: string;
116
+ readonly model: string;
117
+ readonly metadata?: {
118
+ readonly [x: string]: Schema.Json;
119
+ };
120
+ readonly registration_key?: string;
121
+ readonly request_options?: {
122
+ readonly [x: string]: Schema.Json;
123
+ };
124
+ };
125
+ readonly instructions?: string;
126
+ readonly tool_names?: readonly string[];
127
+ readonly workspace_policy?: {
128
+ readonly mode: "share" | "fork";
129
+ readonly fallback?: "fail" | "fresh";
130
+ };
131
+ readonly output_schema_ref?: string;
132
+ };
133
+ };
134
+ readonly handoff_targets?: readonly Schema.Struct.ReadonlySide<{
117
135
  readonly name: Schema.String;
118
136
  readonly preset_name: Schema.String;
119
- }>>>;
120
- readonly output_schema_ref: Schema.optionalKey<Schema.String>;
121
- readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
122
- }>>;
137
+ }, "Encoded">[];
138
+ }, never, never>>;
123
139
  readonly agent_tool_input_schema_digests: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
124
140
  readonly wait_id: Schema.optionalKey<Schema.brand<Schema.String, "Relay.WaitId"> & {
125
141
  make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.WaitId">;
@@ -377,6 +393,390 @@ export declare const PendingToolApprovalList: Schema.Struct<{
377
393
  }>;
378
394
  export interface PendingToolApprovalList extends Schema.Schema.Type<typeof PendingToolApprovalList> {
379
395
  }
396
+ export declare const PendingToolCall: Schema.Struct<{
397
+ readonly execution_id: Schema.brand<Schema.String, "Relay.ExecutionId"> & {
398
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ExecutionId">;
399
+ };
400
+ readonly call: Schema.Struct<{
401
+ readonly id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
402
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
403
+ };
404
+ readonly name: Schema.String;
405
+ readonly input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
406
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
407
+ }>;
408
+ readonly definition: Schema.Struct<{
409
+ readonly name: Schema.String;
410
+ readonly description: Schema.String;
411
+ readonly input_schema: Schema.Codec<Schema.Json, Schema.Json, never, never>;
412
+ readonly output_schema: Schema.Codec<Schema.Json, Schema.Json, never, never>;
413
+ readonly permissions: Schema.$Array<Schema.Struct<{
414
+ readonly name: Schema.String;
415
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
416
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
417
+ }>>;
418
+ readonly requirements: Schema.optionalKey<Schema.$Array<Schema.Union<readonly [Schema.Struct<{
419
+ readonly type: Schema.Literal<"workspace">;
420
+ readonly mode: Schema.Literals<readonly ["read", "write", "exec"]>;
421
+ }>]>>>;
422
+ readonly needs_approval: Schema.optionalKey<Schema.Boolean>;
423
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
424
+ }>;
425
+ readonly placement: Schema.Union<readonly [Schema.Struct<{
426
+ readonly kind: Schema.Literal<"local">;
427
+ }>, Schema.Struct<{
428
+ readonly kind: Schema.Literal<"client">;
429
+ }>, Schema.Struct<{
430
+ readonly kind: Schema.Literal<"remote">;
431
+ readonly queue: Schema.String;
432
+ }>, Schema.Struct<{
433
+ readonly kind: Schema.Literal<"mcp">;
434
+ readonly server_id: Schema.String;
435
+ }>]>;
436
+ readonly state: Schema.Literals<readonly ["requested", "waiting", "running", "submitted", "completed", "failed"]>;
437
+ readonly wait_id: Schema.brand<Schema.String, "Relay.WaitId"> & {
438
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.WaitId">;
439
+ };
440
+ readonly idempotency_key: Schema.String;
441
+ readonly requested_at: Schema.Int;
442
+ }>;
443
+ export interface PendingToolCall extends Schema.Schema.Type<typeof PendingToolCall> {
444
+ }
445
+ export declare const ListPendingToolCallsInput: Schema.Struct<{
446
+ readonly execution_id: Schema.optionalKey<Schema.brand<Schema.String, "Relay.ExecutionId"> & {
447
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ExecutionId">;
448
+ }>;
449
+ readonly limit: Schema.optionalKey<Schema.Int>;
450
+ }>;
451
+ export interface ListPendingToolCallsInput extends Schema.Schema.Type<typeof ListPendingToolCallsInput> {
452
+ }
453
+ export declare const PendingToolCallList: Schema.Struct<{
454
+ readonly tool_calls: Schema.$Array<Schema.Struct<{
455
+ readonly execution_id: Schema.brand<Schema.String, "Relay.ExecutionId"> & {
456
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ExecutionId">;
457
+ };
458
+ readonly call: Schema.Struct<{
459
+ readonly id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
460
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
461
+ };
462
+ readonly name: Schema.String;
463
+ readonly input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
464
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
465
+ }>;
466
+ readonly definition: Schema.Struct<{
467
+ readonly name: Schema.String;
468
+ readonly description: Schema.String;
469
+ readonly input_schema: Schema.Codec<Schema.Json, Schema.Json, never, never>;
470
+ readonly output_schema: Schema.Codec<Schema.Json, Schema.Json, never, never>;
471
+ readonly permissions: Schema.$Array<Schema.Struct<{
472
+ readonly name: Schema.String;
473
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
474
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
475
+ }>>;
476
+ readonly requirements: Schema.optionalKey<Schema.$Array<Schema.Union<readonly [Schema.Struct<{
477
+ readonly type: Schema.Literal<"workspace">;
478
+ readonly mode: Schema.Literals<readonly ["read", "write", "exec"]>;
479
+ }>]>>>;
480
+ readonly needs_approval: Schema.optionalKey<Schema.Boolean>;
481
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
482
+ }>;
483
+ readonly placement: Schema.Union<readonly [Schema.Struct<{
484
+ readonly kind: Schema.Literal<"local">;
485
+ }>, Schema.Struct<{
486
+ readonly kind: Schema.Literal<"client">;
487
+ }>, Schema.Struct<{
488
+ readonly kind: Schema.Literal<"remote">;
489
+ readonly queue: Schema.String;
490
+ }>, Schema.Struct<{
491
+ readonly kind: Schema.Literal<"mcp">;
492
+ readonly server_id: Schema.String;
493
+ }>]>;
494
+ readonly state: Schema.Literals<readonly ["requested", "waiting", "running", "submitted", "completed", "failed"]>;
495
+ readonly wait_id: Schema.brand<Schema.String, "Relay.WaitId"> & {
496
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.WaitId">;
497
+ };
498
+ readonly idempotency_key: Schema.String;
499
+ readonly requested_at: Schema.Int;
500
+ }>>;
501
+ }>;
502
+ export interface PendingToolCallList extends Schema.Schema.Type<typeof PendingToolCallList> {
503
+ }
504
+ export declare const FulfillToolCallInput: Schema.Struct<{
505
+ readonly execution_id: Schema.brand<Schema.String, "Relay.ExecutionId"> & {
506
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ExecutionId">;
507
+ };
508
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
509
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
510
+ };
511
+ readonly outcome: Schema.Union<readonly [Schema.Struct<{
512
+ readonly kind: Schema.Literal<"success">;
513
+ readonly output: Schema.Codec<Schema.Json, Schema.Json, never, never>;
514
+ }>, Schema.Struct<{
515
+ readonly kind: Schema.Literal<"failure">;
516
+ readonly message: Schema.String;
517
+ }>]>;
518
+ readonly fulfilled_at: Schema.Int;
519
+ }>;
520
+ export interface FulfillToolCallInput extends Schema.Schema.Type<typeof FulfillToolCallInput> {
521
+ }
522
+ export declare const ClaimToolWorkInput: Schema.Struct<{
523
+ readonly queue: Schema.String;
524
+ readonly worker_id: Schema.String;
525
+ readonly now: Schema.Int;
526
+ readonly claim_expires_at: Schema.Int;
527
+ }>;
528
+ export interface ClaimToolWorkInput extends Schema.Schema.Type<typeof ClaimToolWorkInput> {
529
+ }
530
+ export declare const CompleteToolWorkInput: Schema.Struct<{
531
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
532
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
533
+ };
534
+ readonly attempt_id: Schema.brand<Schema.String, "Relay.ToolAttemptId"> & {
535
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolAttemptId">;
536
+ };
537
+ readonly worker_id: Schema.String;
538
+ readonly outcome: Schema.Union<readonly [Schema.Struct<{
539
+ readonly kind: Schema.Literal<"success">;
540
+ readonly output: Schema.Codec<Schema.Json, Schema.Json, never, never>;
541
+ }>, Schema.Struct<{
542
+ readonly kind: Schema.Literal<"failure">;
543
+ readonly message: Schema.String;
544
+ }>]>;
545
+ readonly completed_at: Schema.Int;
546
+ }>;
547
+ export interface CompleteToolWorkInput extends Schema.Schema.Type<typeof CompleteToolWorkInput> {
548
+ }
549
+ export declare const ReleaseToolWorkInput: Schema.Struct<{
550
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
551
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
552
+ };
553
+ readonly attempt_id: Schema.brand<Schema.String, "Relay.ToolAttemptId"> & {
554
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolAttemptId">;
555
+ };
556
+ readonly worker_id: Schema.String;
557
+ readonly released_at: Schema.Int;
558
+ readonly next_available_at: Schema.Int;
559
+ readonly error: Schema.optionalKey<Schema.String>;
560
+ }>;
561
+ export interface ReleaseToolWorkInput extends Schema.Schema.Type<typeof ReleaseToolWorkInput> {
562
+ }
563
+ export declare const ListToolAttemptsInput: Schema.Struct<{
564
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
565
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
566
+ };
567
+ }>;
568
+ export interface ListToolAttemptsInput extends Schema.Schema.Type<typeof ListToolAttemptsInput> {
569
+ }
570
+ export declare const ToolAttempt: Schema.Struct<{
571
+ readonly attempt_id: Schema.brand<Schema.String, "Relay.ToolAttemptId"> & {
572
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolAttemptId">;
573
+ };
574
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
575
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
576
+ };
577
+ readonly attempt_number: Schema.Int;
578
+ readonly state: Schema.Literals<readonly ["running", "completed", "failed", "released", "expired", "abandoned"]>;
579
+ readonly worker_id: Schema.optionalKey<Schema.String>;
580
+ readonly claim_expires_at: Schema.optionalKey<Schema.Int>;
581
+ readonly error: Schema.optionalKey<Schema.String>;
582
+ readonly created_at: Schema.Int;
583
+ readonly completed_at: Schema.optionalKey<Schema.Int>;
584
+ }>;
585
+ export interface ToolAttempt extends Schema.Schema.Type<typeof ToolAttempt> {
586
+ }
587
+ export declare const ToolAttemptList: Schema.Struct<{
588
+ readonly attempts: Schema.$Array<Schema.Struct<{
589
+ readonly attempt_id: Schema.brand<Schema.String, "Relay.ToolAttemptId"> & {
590
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolAttemptId">;
591
+ };
592
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
593
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
594
+ };
595
+ readonly attempt_number: Schema.Int;
596
+ readonly state: Schema.Literals<readonly ["running", "completed", "failed", "released", "expired", "abandoned"]>;
597
+ readonly worker_id: Schema.optionalKey<Schema.String>;
598
+ readonly claim_expires_at: Schema.optionalKey<Schema.Int>;
599
+ readonly error: Schema.optionalKey<Schema.String>;
600
+ readonly created_at: Schema.Int;
601
+ readonly completed_at: Schema.optionalKey<Schema.Int>;
602
+ }>>;
603
+ }>;
604
+ export interface ToolAttemptList extends Schema.Schema.Type<typeof ToolAttemptList> {
605
+ }
606
+ export declare const ToolOutcomeAccepted: Schema.Struct<{
607
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
608
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
609
+ };
610
+ readonly attempt: Schema.Struct<{
611
+ readonly attempt_id: Schema.brand<Schema.String, "Relay.ToolAttemptId"> & {
612
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolAttemptId">;
613
+ };
614
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
615
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
616
+ };
617
+ readonly attempt_number: Schema.Int;
618
+ readonly state: Schema.Literals<readonly ["running", "completed", "failed", "released", "expired", "abandoned"]>;
619
+ readonly worker_id: Schema.optionalKey<Schema.String>;
620
+ readonly claim_expires_at: Schema.optionalKey<Schema.Int>;
621
+ readonly error: Schema.optionalKey<Schema.String>;
622
+ readonly created_at: Schema.Int;
623
+ readonly completed_at: Schema.optionalKey<Schema.Int>;
624
+ }>;
625
+ readonly duplicate: Schema.Boolean;
626
+ }>;
627
+ export interface ToolOutcomeAccepted extends Schema.Schema.Type<typeof ToolOutcomeAccepted> {
628
+ }
629
+ export declare const ToolWorkLease: Schema.Struct<{
630
+ readonly execution_id: Schema.brand<Schema.String, "Relay.ExecutionId"> & {
631
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ExecutionId">;
632
+ };
633
+ readonly call: Schema.Struct<{
634
+ readonly id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
635
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
636
+ };
637
+ readonly name: Schema.String;
638
+ readonly input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
639
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
640
+ }>;
641
+ readonly definition: Schema.Struct<{
642
+ readonly name: Schema.String;
643
+ readonly description: Schema.String;
644
+ readonly input_schema: Schema.Codec<Schema.Json, Schema.Json, never, never>;
645
+ readonly output_schema: Schema.Codec<Schema.Json, Schema.Json, never, never>;
646
+ readonly permissions: Schema.$Array<Schema.Struct<{
647
+ readonly name: Schema.String;
648
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
649
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
650
+ }>>;
651
+ readonly requirements: Schema.optionalKey<Schema.$Array<Schema.Union<readonly [Schema.Struct<{
652
+ readonly type: Schema.Literal<"workspace">;
653
+ readonly mode: Schema.Literals<readonly ["read", "write", "exec"]>;
654
+ }>]>>>;
655
+ readonly needs_approval: Schema.optionalKey<Schema.Boolean>;
656
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
657
+ }>;
658
+ readonly placement: Schema.Union<readonly [Schema.Struct<{
659
+ readonly kind: Schema.Literal<"local">;
660
+ }>, Schema.Struct<{
661
+ readonly kind: Schema.Literal<"client">;
662
+ }>, Schema.Struct<{
663
+ readonly kind: Schema.Literal<"remote">;
664
+ readonly queue: Schema.String;
665
+ }>, Schema.Struct<{
666
+ readonly kind: Schema.Literal<"mcp">;
667
+ readonly server_id: Schema.String;
668
+ }>]>;
669
+ readonly attempt: Schema.Struct<{
670
+ readonly attempt_id: Schema.brand<Schema.String, "Relay.ToolAttemptId"> & {
671
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolAttemptId">;
672
+ };
673
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
674
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
675
+ };
676
+ readonly attempt_number: Schema.Int;
677
+ readonly state: Schema.Literals<readonly ["running", "completed", "failed", "released", "expired", "abandoned"]>;
678
+ readonly worker_id: Schema.optionalKey<Schema.String>;
679
+ readonly claim_expires_at: Schema.optionalKey<Schema.Int>;
680
+ readonly error: Schema.optionalKey<Schema.String>;
681
+ readonly created_at: Schema.Int;
682
+ readonly completed_at: Schema.optionalKey<Schema.Int>;
683
+ }>;
684
+ readonly queue: Schema.String;
685
+ readonly worker_id: Schema.String;
686
+ readonly claim_expires_at: Schema.Int;
687
+ readonly idempotency_key: Schema.String;
688
+ }>;
689
+ export interface ToolWorkLease extends Schema.Schema.Type<typeof ToolWorkLease> {
690
+ }
691
+ export declare const ToolWorkReleased: Schema.Struct<{
692
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
693
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
694
+ };
695
+ readonly state: Schema.Literal<"waiting">;
696
+ readonly next_available_at: Schema.Int;
697
+ }>;
698
+ export interface ToolWorkReleased extends Schema.Schema.Type<typeof ToolWorkReleased> {
699
+ }
700
+ export declare const SpawnChildRunInput: Schema.Struct<{
701
+ readonly execution_id: Schema.brand<Schema.String, "Relay.ExecutionId"> & {
702
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ExecutionId">;
703
+ };
704
+ readonly child_execution_id: Schema.optionalKey<Schema.brand<Schema.String, "Relay.ChildExecutionId"> & {
705
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ChildExecutionId">;
706
+ }>;
707
+ readonly address_id: Schema.brand<Schema.String, "Relay.AddressId"> & {
708
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.AddressId">;
709
+ };
710
+ readonly preset_name: Schema.optionalKey<Schema.String>;
711
+ readonly instructions: Schema.optionalKey<Schema.String>;
712
+ readonly model: Schema.optionalKey<Schema.Struct<{
713
+ readonly provider: Schema.String;
714
+ readonly model: Schema.String;
715
+ readonly registration_key: Schema.optionalKey<Schema.String>;
716
+ readonly request_options: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
717
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
718
+ }>>;
719
+ readonly tool_names: Schema.optionalKey<Schema.$Array<Schema.String>>;
720
+ readonly permissions: Schema.optionalKey<Schema.$Array<Schema.String>>;
721
+ readonly workspace_policy: Schema.optionalKey<Schema.Struct<{
722
+ readonly mode: Schema.Literals<readonly ["share", "fork"]>;
723
+ readonly fallback: Schema.optionalKey<Schema.Literals<readonly ["fail", "fresh"]>>;
724
+ }>>;
725
+ readonly output_schema_ref: Schema.optionalKey<Schema.String>;
726
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
727
+ readonly input: Schema.optionalKey<Schema.$Array<Schema.Union<readonly [Schema.Struct<{
728
+ readonly type: Schema.Literal<"text">;
729
+ readonly text: Schema.String;
730
+ readonly provider_options: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
731
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
732
+ }>, Schema.Struct<{
733
+ readonly type: Schema.Literal<"structured">;
734
+ readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
735
+ readonly schema_ref: Schema.optionalKey<Schema.String>;
736
+ readonly provider_options: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
737
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
738
+ }>, Schema.Struct<{
739
+ readonly type: Schema.Literal<"blob-reference">;
740
+ readonly uri: Schema.String;
741
+ readonly media_type: Schema.String;
742
+ readonly filename: Schema.optionalKey<Schema.String>;
743
+ readonly provider_options: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
744
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
745
+ }>, Schema.Struct<{
746
+ readonly type: Schema.Literal<"artifact-reference">;
747
+ readonly artifact_id: Schema.String;
748
+ readonly media_type: Schema.optionalKey<Schema.String>;
749
+ readonly provider_options: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
750
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
751
+ }>, Schema.Struct<{
752
+ readonly type: Schema.Literal<"tool-call">;
753
+ readonly call: Schema.Struct<{
754
+ readonly id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
755
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
756
+ };
757
+ readonly name: Schema.String;
758
+ readonly input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
759
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
760
+ }>;
761
+ readonly provider_options: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
762
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
763
+ }>, Schema.Struct<{
764
+ readonly type: Schema.Literal<"tool-result">;
765
+ readonly result: Schema.Struct<{
766
+ readonly call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
767
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
768
+ };
769
+ readonly output: Schema.Codec<Schema.Json, Schema.Json, never, never>;
770
+ readonly error: Schema.optionalKey<Schema.String>;
771
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
772
+ }>;
773
+ readonly provider_options: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
774
+ readonly metadata: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
775
+ }>]>>>;
776
+ readonly wait: Schema.optionalKey<Schema.Boolean>;
777
+ }>;
778
+ export interface SpawnChildRunInput extends Schema.Schema.Type<typeof SpawnChildRunInput> {
779
+ }
380
780
  export declare const ResolveToolApprovalInput: Schema.Struct<{
381
781
  readonly wait_id: Schema.brand<Schema.String, "Relay.WaitId"> & {
382
782
  make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.WaitId">;
@@ -951,6 +1351,78 @@ export declare const ConversationSummary: Schema.Struct<{
951
1351
  }>;
952
1352
  export interface ConversationSummary extends Schema.Schema.Type<typeof ConversationSummary> {
953
1353
  }
1354
+ export declare const ToolCallSummary: Schema.Struct<{
1355
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
1356
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
1357
+ };
1358
+ readonly tool_name: Schema.String;
1359
+ readonly input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
1360
+ readonly metadata: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
1361
+ readonly requested_at: Schema.Int;
1362
+ }>;
1363
+ export interface ToolCallSummary extends Schema.Schema.Type<typeof ToolCallSummary> {
1364
+ }
1365
+ export declare const ChildRunSummary: Schema.Struct<{
1366
+ readonly child_execution_id: Schema.brand<Schema.String, "Relay.ChildExecutionId"> & {
1367
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ChildExecutionId">;
1368
+ };
1369
+ readonly address_id: Schema.brand<Schema.String, "Relay.AddressId"> & {
1370
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.AddressId">;
1371
+ };
1372
+ readonly status: Schema.Literals<readonly ["queued", "running", "waiting", "completed", "failed", "cancelled"]>;
1373
+ readonly metadata: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
1374
+ readonly created_at: Schema.Int;
1375
+ readonly updated_at: Schema.Int;
1376
+ }>;
1377
+ export interface ChildRunSummary extends Schema.Schema.Type<typeof ChildRunSummary> {
1378
+ }
1379
+ export declare const ExecutionInspection: Schema.Struct<{
1380
+ readonly execution_id: Schema.brand<Schema.String, "Relay.ExecutionId"> & {
1381
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ExecutionId">;
1382
+ };
1383
+ readonly status: Schema.Literals<readonly ["queued", "running", "waiting", "completed", "failed", "cancelled"]>;
1384
+ readonly waiting_on: Schema.$Array<Schema.Struct<{
1385
+ readonly wait_id: Schema.brand<Schema.String, "Relay.WaitId"> & {
1386
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.WaitId">;
1387
+ };
1388
+ readonly execution_id: Schema.brand<Schema.String, "Relay.ExecutionId"> & {
1389
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ExecutionId">;
1390
+ };
1391
+ readonly envelope_id: Schema.optionalKey<Schema.brand<Schema.String, "Relay.EnvelopeId"> & {
1392
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.EnvelopeId">;
1393
+ }>;
1394
+ readonly mode: Schema.Literals<readonly ["reply", "event", "until", "child"]>;
1395
+ readonly correlation_key: Schema.optionalKey<Schema.String>;
1396
+ readonly state: Schema.Literals<readonly ["open", "resolved", "timed_out", "cancelled"]>;
1397
+ readonly metadata: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
1398
+ readonly created_at: Schema.Int;
1399
+ readonly resolved_at: Schema.optionalKey<Schema.Int>;
1400
+ }>>;
1401
+ readonly pending_tool_calls: Schema.$Array<Schema.Struct<{
1402
+ readonly tool_call_id: Schema.brand<Schema.String, "Relay.ToolCallId"> & {
1403
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ToolCallId">;
1404
+ };
1405
+ readonly tool_name: Schema.String;
1406
+ readonly input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
1407
+ readonly metadata: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
1408
+ readonly requested_at: Schema.Int;
1409
+ }>>;
1410
+ readonly child_runs: Schema.$Array<Schema.Struct<{
1411
+ readonly child_execution_id: Schema.brand<Schema.String, "Relay.ChildExecutionId"> & {
1412
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.ChildExecutionId">;
1413
+ };
1414
+ readonly address_id: Schema.brand<Schema.String, "Relay.AddressId"> & {
1415
+ make: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Relay.AddressId">;
1416
+ };
1417
+ readonly status: Schema.Literals<readonly ["queued", "running", "waiting", "completed", "failed", "cancelled"]>;
1418
+ readonly metadata: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
1419
+ readonly created_at: Schema.Int;
1420
+ readonly updated_at: Schema.Int;
1421
+ }>>;
1422
+ readonly last_event_cursor: Schema.optionalKey<Schema.String>;
1423
+ }>;
1424
+ export interface ExecutionInspection extends Schema.Schema.Type<typeof ExecutionInspection> {
1425
+ }
954
1426
  export declare const ListExecutionsResult: Schema.Struct<{
955
1427
  readonly records: Schema.$Array<Schema.Struct<{
956
1428
  readonly execution_id: Schema.brand<Schema.String, "Relay.ExecutionId"> & {
@@ -0,0 +1,19 @@
1
+ import { Shared, Tool } from "../schema/index";
2
+ import { Duration, Effect } from "effect";
3
+ import type { ClientError } from "./client";
4
+ import type { ToolWorkLease } from "./operation";
5
+ export interface HandlerContext {
6
+ readonly lease: ToolWorkLease;
7
+ readonly idempotencyKey: string;
8
+ }
9
+ export type Handler = (input: Shared.JsonValue, context: HandlerContext) => Effect.Effect<Shared.JsonValue, unknown, any>;
10
+ export interface Options {
11
+ readonly queue: Tool.PlacementKey;
12
+ readonly workerId: Tool.WorkerId;
13
+ readonly leaseDuration: Duration.Input;
14
+ readonly pollInterval?: Duration.Input | undefined;
15
+ readonly handlers: Readonly<Record<string, Handler>>;
16
+ }
17
+ export declare const runOnce: (options: Options) => Effect.Effect<boolean, ClientError, any>;
18
+ export declare const run: (options: Options) => Effect.Effect<never, ClientError, any>;
19
+ export type Error = ClientError;