libretto 0.5.3-experimental.3 → 0.5.3-experimental.4

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.
@@ -10,17 +10,12 @@ type LibrettoWorkflowContext<S = {}> = {
10
10
  credentials?: Record<string, unknown>;
11
11
  };
12
12
  type LibrettoWorkflowHandler<Input = unknown, Output = unknown, S = {}> = (ctx: LibrettoWorkflowContext<S>, input: Input) => Promise<Output>;
13
- type WorkflowFactory = {
14
- <Input = unknown, Output = unknown, S = {}>(name: string, handler: LibrettoWorkflowHandler<Input, Output, S>): LibrettoWorkflow<Input, Output, S>;
15
- withServices<S>(services: S): <Input = unknown, Output = unknown>(name: string, handler: LibrettoWorkflowHandler<Input, Output, S>) => LibrettoWorkflow<Input, Output, Partial<S>>;
16
- };
17
13
  declare class LibrettoWorkflow<Input = unknown, Output = unknown, S = {}> {
18
14
  readonly [LIBRETTO_WORKFLOW_BRAND] = true;
19
15
  readonly name: string;
20
16
  private readonly handler;
21
17
  constructor(name: string, handler: LibrettoWorkflowHandler<Input, Output, S>);
22
18
  run(ctx: LibrettoWorkflowContext<S>, input: Input): Promise<Output>;
23
- withServices(services: S): LibrettoWorkflow<Input, Output, Partial<S>>;
24
19
  }
25
20
  type ExportedLibrettoWorkflow = {
26
21
  readonly [LIBRETTO_WORKFLOW_BRAND]: true;
@@ -31,6 +26,6 @@ type WorkflowModuleExports = Record<string, unknown>;
31
26
  declare function isLibrettoWorkflow(value: unknown): value is ExportedLibrettoWorkflow;
32
27
  declare function getWorkflowsFromModuleExports(moduleExports: WorkflowModuleExports): ExportedLibrettoWorkflow[];
33
28
  declare function getWorkflowFromModuleExports(moduleExports: WorkflowModuleExports, workflowName: string): ExportedLibrettoWorkflow | null;
34
- declare const workflow: WorkflowFactory;
29
+ declare function workflow<Input = unknown, Output = unknown, S = {}>(name: string, handler: LibrettoWorkflowHandler<Input, Output, S>): LibrettoWorkflow<Input, Output, S>;
35
30
 
36
31
  export { type ExportedLibrettoWorkflow, LIBRETTO_WORKFLOW_BRAND, LibrettoWorkflow, type LibrettoWorkflowContext, type LibrettoWorkflowHandler, getWorkflowFromModuleExports, getWorkflowsFromModuleExports, isLibrettoWorkflow, workflow };
@@ -10,18 +10,6 @@ class LibrettoWorkflow {
10
10
  async run(ctx, input) {
11
11
  return this.handler(ctx, input);
12
12
  }
13
- withServices(services) {
14
- return new LibrettoWorkflow(
15
- this.name,
16
- async (ctx, input) => await this.handler(
17
- {
18
- ...ctx,
19
- services: Object.assign({}, services, ctx.services)
20
- },
21
- input
22
- )
23
- );
24
- }
25
13
  }
26
14
  function isLibrettoWorkflow(value) {
27
15
  if (!value || typeof value !== "object") return false;
@@ -65,18 +53,9 @@ function getWorkflowFromModuleExports(moduleExports, workflowName) {
65
53
  }
66
54
  return null;
67
55
  }
68
- function createWorkflow(name, handler) {
56
+ function workflow(name, handler) {
69
57
  return new LibrettoWorkflow(name, handler);
70
58
  }
71
- const workflow = Object.assign(createWorkflow, {
72
- withServices(services) {
73
- return function workflowWithServices(name, handler) {
74
- return createWorkflow(name, handler).withServices(
75
- services
76
- );
77
- };
78
- }
79
- });
80
59
  export {
81
60
  LIBRETTO_WORKFLOW_BRAND,
82
61
  LibrettoWorkflow,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "libretto",
3
- "version": "0.5.3-experimental.3",
3
+ "version": "0.5.3-experimental.4",
4
4
  "description": "AI-powered browser automation library and CLI built on Playwright",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -17,19 +17,6 @@ export type LibrettoWorkflowHandler<
17
17
  S = {},
18
18
  > = (ctx: LibrettoWorkflowContext<S>, input: Input) => Promise<Output>;
19
19
 
20
- type WorkflowFactory = {
21
- <Input = unknown, Output = unknown, S = {}>(
22
- name: string,
23
- handler: LibrettoWorkflowHandler<Input, Output, S>,
24
- ): LibrettoWorkflow<Input, Output, S>;
25
- withServices<S>(
26
- services: S,
27
- ): <Input = unknown, Output = unknown>(
28
- name: string,
29
- handler: LibrettoWorkflowHandler<Input, Output, S>,
30
- ) => LibrettoWorkflow<Input, Output, Partial<S>>;
31
- };
32
-
33
20
  export class LibrettoWorkflow<Input = unknown, Output = unknown, S = {}> {
34
21
  public readonly [LIBRETTO_WORKFLOW_BRAND] = true;
35
22
  public readonly name: string;
@@ -46,20 +33,6 @@ export class LibrettoWorkflow<Input = unknown, Output = unknown, S = {}> {
46
33
  async run(ctx: LibrettoWorkflowContext<S>, input: Input): Promise<Output> {
47
34
  return this.handler(ctx, input);
48
35
  }
49
-
50
- withServices(services: S): LibrettoWorkflow<Input, Output, Partial<S>> {
51
- return new LibrettoWorkflow<Input, Output, Partial<S>>(
52
- this.name,
53
- async (ctx, input) =>
54
- await this.handler(
55
- {
56
- ...ctx,
57
- services: Object.assign({}, services, ctx.services) as S,
58
- },
59
- input,
60
- ),
61
- );
62
- }
63
36
  }
64
37
 
65
38
  export type ExportedLibrettoWorkflow = {
@@ -141,22 +114,9 @@ export function getWorkflowFromModuleExports(
141
114
  return null;
142
115
  }
143
116
 
144
- function createWorkflow<Input = unknown, Output = unknown, S = {}>(
117
+ export function workflow<Input = unknown, Output = unknown, S = {}>(
145
118
  name: string,
146
119
  handler: LibrettoWorkflowHandler<Input, Output, S>,
147
120
  ): LibrettoWorkflow<Input, Output, S> {
148
121
  return new LibrettoWorkflow(name, handler);
149
122
  }
150
-
151
- export const workflow: WorkflowFactory = Object.assign(createWorkflow, {
152
- withServices<S>(services: S) {
153
- return function workflowWithServices<Input = unknown, Output = unknown>(
154
- name: string,
155
- handler: LibrettoWorkflowHandler<Input, Output, S>,
156
- ): LibrettoWorkflow<Input, Output, Partial<S>> {
157
- return createWorkflow<Input, Output, S>(name, handler).withServices(
158
- services,
159
- );
160
- };
161
- },
162
- });