@valon-technologies/gestalt 0.0.1-alpha.19 → 0.0.1-alpha.21

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/src/plugin.ts CHANGED
@@ -507,9 +507,9 @@ function errorResult(status: number, message: string): OperationResult {
507
507
  }
508
508
 
509
509
  /**
510
- * Converts a connection mode into the shared protocol enum value.
510
+ * Encodes a connection mode for provider metadata.
511
511
  */
512
- export function connectionModeToProtoValue(mode: ConnectionMode): number {
512
+ export function encodeConnectionMode(mode: ConnectionMode): number {
513
513
  switch (mode) {
514
514
  case "none":
515
515
  return 1;
@@ -524,9 +524,9 @@ export function connectionModeToProtoValue(mode: ConnectionMode): number {
524
524
  }
525
525
 
526
526
  /**
527
- * Converts a connection parameter definition into protocol wire metadata.
527
+ * Encodes a connection parameter definition for provider metadata.
528
528
  */
529
- export function connectionParamToProto(value: ConnectionParamDefinition): {
529
+ export function encodeConnectionParam(value: ConnectionParamDefinition): {
530
530
  required?: boolean;
531
531
  description?: string;
532
532
  defaultValue?: string;
package/src/protocol.ts CHANGED
@@ -145,7 +145,10 @@ function normalizeJsonValue(
145
145
  path: string,
146
146
  seen: WeakSet<object>,
147
147
  ): JsonValue {
148
- if (value === null || typeof value === "string" || typeof value === "boolean") {
148
+ if (value === null) {
149
+ return null;
150
+ }
151
+ if (typeof value === "string" || typeof value === "boolean") {
149
152
  return value;
150
153
  }
151
154
  if (typeof value === "number") {
package/src/runtime.ts CHANGED
@@ -80,7 +80,9 @@ import {
80
80
  AgentProvider,
81
81
  createAgentProviderService,
82
82
  isAgentProvider,
83
+ type AgentToolRef,
83
84
  } from "./agent.ts";
85
+ import { agentToolRefFromProto } from "./agent-conversions.ts";
84
86
  import {
85
87
  AuthenticationProvider,
86
88
  isAuthenticationProvider,
@@ -103,8 +105,8 @@ import {
103
105
  import {
104
106
  type ConnectedToken,
105
107
  PluginProvider,
106
- connectionModeToProtoValue,
107
- connectionParamToProto,
108
+ encodeConnectionMode,
109
+ encodeConnectionParam,
108
110
  isPluginProvider,
109
111
  } from "./plugin.ts";
110
112
  import {
@@ -542,14 +544,14 @@ export function createProviderService(
542
544
  name: provider.name,
543
545
  displayName: provider.displayName,
544
546
  description: provider.description,
545
- connectionMode: connectionModeToProtoValue(
547
+ connectionMode: encodeConnectionMode(
546
548
  provider.connectionMode,
547
549
  ) as ProviderConnectionMode,
548
550
  authTypes: [...provider.authTypes],
549
551
  connectionParams: Object.fromEntries(
550
552
  Object.entries(provider.connectionParams).map(([key, value]) => [
551
553
  key,
552
- connectionParamToProto(value),
554
+ encodeConnectionParam(value),
553
555
  ]),
554
556
  ),
555
557
  staticCatalog: catalogToProto(provider.staticCatalog()),
@@ -616,6 +618,7 @@ export function createProviderService(
616
618
  subject: {
617
619
  id: subject.id,
618
620
  kind: subject.kind,
621
+ credentialSubjectId: subject.credentialSubjectId ?? "",
619
622
  displayName: subject.displayName,
620
623
  authSource: subject.authSource,
621
624
  email: subject.email ?? "",
@@ -859,6 +862,7 @@ function providerRequest(
859
862
  subject: {
860
863
  id: subject?.id ?? "",
861
864
  kind: subject?.kind ?? "",
865
+ credentialSubjectId: subject?.credentialSubjectId ?? "",
862
866
  displayName: subject?.displayName ?? "",
863
867
  authSource: subject?.authSource ?? "",
864
868
  email: subject?.email ?? "",
@@ -866,6 +870,7 @@ function providerRequest(
866
870
  agentSubject: {
867
871
  id: agentSubject?.id ?? "",
868
872
  kind: agentSubject?.kind ?? "",
873
+ credentialSubjectId: agentSubject?.credentialSubjectId ?? "",
869
874
  displayName: agentSubject?.displayName ?? "",
870
875
  authSource: agentSubject?.authSource ?? "",
871
876
  email: agentSubject?.email ?? "",
@@ -891,6 +896,8 @@ function providerRequest(
891
896
  workflow: {
892
897
  ...(requestContext?.workflow ?? {}),
893
898
  },
899
+ toolRefs: providerRequestToolRefs(requestContext),
900
+ toolRefsSet: requestContext?.toolRefsSet ?? false,
894
901
  host: {
895
902
  publicBaseUrl: host?.publicBaseUrl ?? "",
896
903
  },
@@ -899,6 +906,12 @@ function providerRequest(
899
906
  };
900
907
  }
901
908
 
909
+ function providerRequestToolRefs(
910
+ requestContext?: ProtoRequestContext,
911
+ ): AgentToolRef[] {
912
+ return requestContext?.toolRefs.map(agentToolRefFromProto) ?? [];
913
+ }
914
+
902
915
  function providerHTTPSubjectRequest(
903
916
  request?: ProtoHTTPSubjectRequest,
904
917
  ): HTTPSubjectRequest {
@@ -21,18 +21,14 @@ import {
21
21
  workflowEventToProto,
22
22
  workflowSignalToProto,
23
23
  type BoundWorkflowTarget,
24
- type BoundWorkflowTargetInput,
25
24
  type ManagedWorkflowDefinition,
26
25
  type ManagedWorkflowEventTrigger,
27
26
  type ManagedWorkflowRun,
28
27
  type ManagedWorkflowRunSignal,
29
28
  type ManagedWorkflowSchedule,
30
29
  type WorkflowEvent,
31
- type WorkflowEventInput,
32
30
  type WorkflowEventMatch,
33
- type WorkflowEventMatchInput,
34
31
  type WorkflowSignal,
35
- type WorkflowSignalInput,
36
32
  } from "./workflow.ts";
37
33
 
38
34
  /** Environment variable containing the workflow-manager host-service target. */
@@ -44,139 +40,139 @@ const WORKFLOW_MANAGER_RELAY_TOKEN_HEADER =
44
40
  "x-gestalt-host-service-relay-token";
45
41
 
46
42
  /** Shape accepted when starting a workflow run. */
47
- export interface WorkflowManagerStartRunInput {
43
+ export interface WorkflowManagerStartRun {
48
44
  providerName: string;
49
- target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
45
+ target?: BoundWorkflowTarget | BoundWorkflowTarget | undefined;
50
46
  idempotencyKey?: string | undefined;
51
47
  workflowKey?: string | undefined;
52
48
  definitionId?: string | undefined;
53
49
  }
54
50
 
55
51
  /** Shape accepted when signaling an existing workflow run. */
56
- export interface WorkflowManagerSignalRunInput {
52
+ export interface WorkflowManagerSignalRun {
57
53
  runId: string;
58
- signal?: WorkflowSignal | WorkflowSignalInput | undefined;
54
+ signal?: WorkflowSignal | WorkflowSignal | undefined;
59
55
  }
60
56
 
61
57
  /** Shape accepted when signaling a run or starting it if missing. */
62
- export interface WorkflowManagerSignalOrStartRunInput {
58
+ export interface WorkflowManagerSignalOrStartRun {
63
59
  providerName: string;
64
60
  workflowKey: string;
65
- target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
61
+ target?: BoundWorkflowTarget | BoundWorkflowTarget | undefined;
66
62
  idempotencyKey?: string | undefined;
67
- signal?: WorkflowSignal | WorkflowSignalInput | undefined;
63
+ signal?: WorkflowSignal | WorkflowSignal | undefined;
68
64
  definitionId?: string | undefined;
69
65
  }
70
66
 
71
67
  /** Shape accepted when creating a workflow definition. */
72
- export interface WorkflowManagerCreateDefinitionInput {
68
+ export interface WorkflowManagerCreateDefinition {
73
69
  providerName: string;
74
- target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
70
+ target?: BoundWorkflowTarget | BoundWorkflowTarget | undefined;
75
71
  idempotencyKey?: string | undefined;
76
72
  }
77
73
 
78
74
  /** Shape accepted when fetching a workflow definition. */
79
- export interface WorkflowManagerGetDefinitionInput {
75
+ export interface WorkflowManagerGetDefinition {
80
76
  definitionId: string;
81
77
  }
82
78
 
83
79
  /** Shape accepted when updating a workflow definition. */
84
- export interface WorkflowManagerUpdateDefinitionInput {
80
+ export interface WorkflowManagerUpdateDefinition {
85
81
  definitionId: string;
86
82
  providerName?: string | undefined;
87
- target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
83
+ target?: BoundWorkflowTarget | BoundWorkflowTarget | undefined;
88
84
  }
89
85
 
90
86
  /** Shape accepted when deleting a workflow definition. */
91
- export interface WorkflowManagerDeleteDefinitionInput {
87
+ export interface WorkflowManagerDeleteDefinition {
92
88
  definitionId: string;
93
89
  }
94
90
 
95
91
  /** Shape accepted when creating a workflow schedule. */
96
- export interface WorkflowManagerCreateScheduleInput {
92
+ export interface WorkflowManagerCreateSchedule {
97
93
  providerName: string;
98
94
  cron: string;
99
95
  timezone?: string | undefined;
100
- target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
96
+ target?: BoundWorkflowTarget | BoundWorkflowTarget | undefined;
101
97
  paused?: boolean | undefined;
102
98
  idempotencyKey?: string | undefined;
103
99
  definitionId?: string | undefined;
104
100
  }
105
101
 
106
102
  /** Shape accepted when creating an event trigger. */
107
- export interface WorkflowManagerCreateTriggerInput {
103
+ export interface WorkflowManagerCreateTrigger {
108
104
  providerName: string;
109
- match?: WorkflowEventMatch | WorkflowEventMatchInput | undefined;
110
- target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
105
+ match?: WorkflowEventMatch | WorkflowEventMatch | undefined;
106
+ target?: BoundWorkflowTarget | BoundWorkflowTarget | undefined;
111
107
  paused?: boolean | undefined;
112
108
  idempotencyKey?: string | undefined;
113
109
  definitionId?: string | undefined;
114
110
  }
115
111
 
116
112
  /** Shape accepted when fetching a workflow schedule. */
117
- export interface WorkflowManagerGetScheduleInput {
113
+ export interface WorkflowManagerGetSchedule {
118
114
  scheduleId: string;
119
115
  }
120
116
 
121
117
  /** Shape accepted when fetching an event trigger. */
122
- export interface WorkflowManagerGetTriggerInput {
118
+ export interface WorkflowManagerGetTrigger {
123
119
  triggerId: string;
124
120
  }
125
121
 
126
122
  /** Shape accepted when updating a workflow schedule. */
127
- export interface WorkflowManagerUpdateScheduleInput {
123
+ export interface WorkflowManagerUpdateSchedule {
128
124
  scheduleId: string;
129
125
  providerName?: string | undefined;
130
126
  cron?: string | undefined;
131
127
  timezone?: string | undefined;
132
- target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
128
+ target?: BoundWorkflowTarget | BoundWorkflowTarget | undefined;
133
129
  paused?: boolean | undefined;
134
130
  definitionId?: string | undefined;
135
131
  }
136
132
 
137
133
  /** Shape accepted when updating an event trigger. */
138
- export interface WorkflowManagerUpdateTriggerInput {
134
+ export interface WorkflowManagerUpdateTrigger {
139
135
  triggerId: string;
140
136
  providerName?: string | undefined;
141
- match?: WorkflowEventMatch | WorkflowEventMatchInput | undefined;
142
- target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
137
+ match?: WorkflowEventMatch | WorkflowEventMatch | undefined;
138
+ target?: BoundWorkflowTarget | BoundWorkflowTarget | undefined;
143
139
  paused?: boolean | undefined;
144
140
  definitionId?: string | undefined;
145
141
  }
146
142
 
147
143
  /** Shape accepted when deleting a workflow schedule. */
148
- export interface WorkflowManagerDeleteScheduleInput {
144
+ export interface WorkflowManagerDeleteSchedule {
149
145
  scheduleId: string;
150
146
  }
151
147
 
152
148
  /** Shape accepted when deleting an event trigger. */
153
- export interface WorkflowManagerDeleteTriggerInput {
149
+ export interface WorkflowManagerDeleteTrigger {
154
150
  triggerId: string;
155
151
  }
156
152
 
157
153
  /** Shape accepted when pausing a workflow schedule. */
158
- export interface WorkflowManagerPauseScheduleInput {
154
+ export interface WorkflowManagerPauseSchedule {
159
155
  scheduleId: string;
160
156
  }
161
157
 
162
158
  /** Shape accepted when pausing an event trigger. */
163
- export interface WorkflowManagerPauseTriggerInput {
159
+ export interface WorkflowManagerPauseTrigger {
164
160
  triggerId: string;
165
161
  }
166
162
 
167
163
  /** Shape accepted when resuming a workflow schedule. */
168
- export interface WorkflowManagerResumeScheduleInput {
164
+ export interface WorkflowManagerResumeSchedule {
169
165
  scheduleId: string;
170
166
  }
171
167
 
172
168
  /** Shape accepted when resuming an event trigger. */
173
- export interface WorkflowManagerResumeTriggerInput {
169
+ export interface WorkflowManagerResumeTrigger {
174
170
  triggerId: string;
175
171
  }
176
172
 
177
173
  /** Shape accepted when publishing a workflow event. */
178
- export interface WorkflowManagerPublishEventInput {
179
- event?: WorkflowEvent | WorkflowEventInput | undefined;
174
+ export interface WorkflowManagerPublishEvent {
175
+ event?: WorkflowEvent | WorkflowEvent | undefined;
180
176
  providerName?: string | undefined;
181
177
  }
182
178
 
@@ -219,7 +215,7 @@ export class WorkflowManager {
219
215
 
220
216
  /** Starts a workflow run immediately. */
221
217
  async startRun(
222
- request: WorkflowManagerStartRunInput,
218
+ request: WorkflowManagerStartRun,
223
219
  ): Promise<ManagedWorkflowRun> {
224
220
  return managedWorkflowRunFromProto(
225
221
  await this.client.startRun({
@@ -235,7 +231,7 @@ export class WorkflowManager {
235
231
 
236
232
  /** Signals an existing workflow run. */
237
233
  async signalRun(
238
- request: WorkflowManagerSignalRunInput,
234
+ request: WorkflowManagerSignalRun,
239
235
  ): Promise<ManagedWorkflowRunSignal> {
240
236
  return managedWorkflowRunSignalFromProto(
241
237
  await this.client.signalRun({
@@ -248,7 +244,7 @@ export class WorkflowManager {
248
244
 
249
245
  /** Signals a workflow run, or starts it when no run exists for the key. */
250
246
  async signalOrStartRun(
251
- request: WorkflowManagerSignalOrStartRunInput,
247
+ request: WorkflowManagerSignalOrStartRun,
252
248
  ): Promise<ManagedWorkflowRunSignal> {
253
249
  return managedWorkflowRunSignalFromProto(
254
250
  await this.client.signalOrStartRun({
@@ -265,7 +261,7 @@ export class WorkflowManager {
265
261
 
266
262
  /** Creates a reusable workflow definition. */
267
263
  async createDefinition(
268
- request: WorkflowManagerCreateDefinitionInput,
264
+ request: WorkflowManagerCreateDefinition,
269
265
  ): Promise<ManagedWorkflowDefinition> {
270
266
  return managedWorkflowDefinitionFromProto(
271
267
  await this.client.createDefinition({
@@ -279,7 +275,7 @@ export class WorkflowManager {
279
275
 
280
276
  /** Fetches one workflow definition. */
281
277
  async getDefinition(
282
- request: WorkflowManagerGetDefinitionInput,
278
+ request: WorkflowManagerGetDefinition,
283
279
  ): Promise<ManagedWorkflowDefinition> {
284
280
  return managedWorkflowDefinitionFromProto(
285
281
  await this.client.getDefinition({
@@ -291,7 +287,7 @@ export class WorkflowManager {
291
287
 
292
288
  /** Updates a workflow definition. */
293
289
  async updateDefinition(
294
- request: WorkflowManagerUpdateDefinitionInput,
290
+ request: WorkflowManagerUpdateDefinition,
295
291
  ): Promise<ManagedWorkflowDefinition> {
296
292
  return managedWorkflowDefinitionFromProto(
297
293
  await this.client.updateDefinition({
@@ -305,7 +301,7 @@ export class WorkflowManager {
305
301
 
306
302
  /** Deletes a workflow definition. */
307
303
  async deleteDefinition(
308
- request: WorkflowManagerDeleteDefinitionInput,
304
+ request: WorkflowManagerDeleteDefinition,
309
305
  ): Promise<void> {
310
306
  await this.client.deleteDefinition({
311
307
  definitionId: request.definitionId,
@@ -315,7 +311,7 @@ export class WorkflowManager {
315
311
 
316
312
  /** Creates a workflow schedule. */
317
313
  async createSchedule(
318
- request: WorkflowManagerCreateScheduleInput,
314
+ request: WorkflowManagerCreateSchedule,
319
315
  ): Promise<ManagedWorkflowSchedule> {
320
316
  return managedWorkflowScheduleFromProto(
321
317
  await this.client.createSchedule({
@@ -333,7 +329,7 @@ export class WorkflowManager {
333
329
 
334
330
  /** Fetches one workflow schedule. */
335
331
  async getSchedule(
336
- request: WorkflowManagerGetScheduleInput,
332
+ request: WorkflowManagerGetSchedule,
337
333
  ): Promise<ManagedWorkflowSchedule> {
338
334
  return managedWorkflowScheduleFromProto(
339
335
  await this.client.getSchedule({
@@ -345,7 +341,7 @@ export class WorkflowManager {
345
341
 
346
342
  /** Updates a workflow schedule. */
347
343
  async updateSchedule(
348
- request: WorkflowManagerUpdateScheduleInput,
344
+ request: WorkflowManagerUpdateSchedule,
349
345
  ): Promise<ManagedWorkflowSchedule> {
350
346
  return managedWorkflowScheduleFromProto(
351
347
  await this.client.updateSchedule({
@@ -363,7 +359,7 @@ export class WorkflowManager {
363
359
 
364
360
  /** Deletes a workflow schedule. */
365
361
  async deleteSchedule(
366
- request: WorkflowManagerDeleteScheduleInput,
362
+ request: WorkflowManagerDeleteSchedule,
367
363
  ): Promise<void> {
368
364
  await this.client.deleteSchedule({
369
365
  scheduleId: request.scheduleId,
@@ -373,7 +369,7 @@ export class WorkflowManager {
373
369
 
374
370
  /** Pauses a workflow schedule. */
375
371
  async pauseSchedule(
376
- request: WorkflowManagerPauseScheduleInput,
372
+ request: WorkflowManagerPauseSchedule,
377
373
  ): Promise<ManagedWorkflowSchedule> {
378
374
  return managedWorkflowScheduleFromProto(
379
375
  await this.client.pauseSchedule({
@@ -385,7 +381,7 @@ export class WorkflowManager {
385
381
 
386
382
  /** Resumes a workflow schedule. */
387
383
  async resumeSchedule(
388
- request: WorkflowManagerResumeScheduleInput,
384
+ request: WorkflowManagerResumeSchedule,
389
385
  ): Promise<ManagedWorkflowSchedule> {
390
386
  return managedWorkflowScheduleFromProto(
391
387
  await this.client.resumeSchedule({
@@ -397,7 +393,7 @@ export class WorkflowManager {
397
393
 
398
394
  /** Creates an event trigger. */
399
395
  async createTrigger(
400
- request: WorkflowManagerCreateTriggerInput,
396
+ request: WorkflowManagerCreateTrigger,
401
397
  ): Promise<ManagedWorkflowEventTrigger> {
402
398
  return managedWorkflowEventTriggerFromProto(
403
399
  await this.client.createEventTrigger({
@@ -414,7 +410,7 @@ export class WorkflowManager {
414
410
 
415
411
  /** Fetches one event trigger. */
416
412
  async getTrigger(
417
- request: WorkflowManagerGetTriggerInput,
413
+ request: WorkflowManagerGetTrigger,
418
414
  ): Promise<ManagedWorkflowEventTrigger> {
419
415
  return managedWorkflowEventTriggerFromProto(
420
416
  await this.client.getEventTrigger({
@@ -426,7 +422,7 @@ export class WorkflowManager {
426
422
 
427
423
  /** Updates an event trigger. */
428
424
  async updateTrigger(
429
- request: WorkflowManagerUpdateTriggerInput,
425
+ request: WorkflowManagerUpdateTrigger,
430
426
  ): Promise<ManagedWorkflowEventTrigger> {
431
427
  return managedWorkflowEventTriggerFromProto(
432
428
  await this.client.updateEventTrigger({
@@ -443,7 +439,7 @@ export class WorkflowManager {
443
439
 
444
440
  /** Deletes an event trigger. */
445
441
  async deleteTrigger(
446
- request: WorkflowManagerDeleteTriggerInput,
442
+ request: WorkflowManagerDeleteTrigger,
447
443
  ): Promise<void> {
448
444
  await this.client.deleteEventTrigger({
449
445
  triggerId: request.triggerId,
@@ -453,7 +449,7 @@ export class WorkflowManager {
453
449
 
454
450
  /** Pauses an event trigger. */
455
451
  async pauseTrigger(
456
- request: WorkflowManagerPauseTriggerInput,
452
+ request: WorkflowManagerPauseTrigger,
457
453
  ): Promise<ManagedWorkflowEventTrigger> {
458
454
  return managedWorkflowEventTriggerFromProto(
459
455
  await this.client.pauseEventTrigger({
@@ -465,7 +461,7 @@ export class WorkflowManager {
465
461
 
466
462
  /** Resumes an event trigger. */
467
463
  async resumeTrigger(
468
- request: WorkflowManagerResumeTriggerInput,
464
+ request: WorkflowManagerResumeTrigger,
469
465
  ): Promise<ManagedWorkflowEventTrigger> {
470
466
  return managedWorkflowEventTriggerFromProto(
471
467
  await this.client.resumeEventTrigger({
@@ -477,7 +473,7 @@ export class WorkflowManager {
477
473
 
478
474
  /** Publishes an event into the workflow manager. */
479
475
  async publishEvent(
480
- request: WorkflowManagerPublishEventInput,
476
+ request: WorkflowManagerPublishEvent,
481
477
  ): Promise<WorkflowEvent> {
482
478
  const event = workflowEventFromProto(
483
479
  await this.client.publishEvent({