@loopstack/meeting-notes-example-workflow 0.19.0 → 0.20.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.
@@ -4,5 +4,8 @@ export declare const MeetingNotesDocumentSchema: z.ZodObject<{
4
4
  text: z.ZodString;
5
5
  }, z.core.$strip>;
6
6
  export declare class MeetingNotesDocument implements DocumentInterface {
7
+ content: {
8
+ text: string;
9
+ };
7
10
  }
8
11
  //# sourceMappingURL=meeting-notes-document.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-notes-document.d.ts","sourceRoot":"","sources":["../../src/documents/meeting-notes-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,iBAAiB,EAAiB,MAAM,mBAAmB,CAAC;AAE/E,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AAEH,qBAKa,oBAAqB,YAAW,iBAAiB;CAAG"}
1
+ {"version":3,"file":"meeting-notes-document.d.ts","sourceRoot":"","sources":["../../src/documents/meeting-notes-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,iBAAiB,EAAS,MAAM,mBAAmB,CAAC;AAEvE,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AAEH,qBAIa,oBAAqB,YAAW,iBAAiB;IAI5D,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH"}
@@ -5,6 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.MeetingNotesDocument = exports.MeetingNotesDocumentSchema = void 0;
10
13
  const common_1 = require("@nestjs/common");
@@ -14,13 +17,19 @@ exports.MeetingNotesDocumentSchema = zod_1.z.object({
14
17
  text: zod_1.z.string(),
15
18
  });
16
19
  let MeetingNotesDocument = class MeetingNotesDocument {
20
+ content;
17
21
  };
18
22
  exports.MeetingNotesDocument = MeetingNotesDocument;
23
+ __decorate([
24
+ (0, common_2.Input)({
25
+ schema: exports.MeetingNotesDocumentSchema,
26
+ }),
27
+ __metadata("design:type", Object)
28
+ ], MeetingNotesDocument.prototype, "content", void 0);
19
29
  exports.MeetingNotesDocument = MeetingNotesDocument = __decorate([
20
30
  (0, common_1.Injectable)(),
21
31
  (0, common_2.Document)({
22
32
  configFile: __dirname + '/meeting-notes-document.yaml',
23
- }),
24
- (0, common_2.WithArguments)(exports.MeetingNotesDocumentSchema)
33
+ })
25
34
  ], MeetingNotesDocument);
26
35
  //# sourceMappingURL=meeting-notes-document.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-notes-document.js","sourceRoot":"","sources":["../../src/documents/meeting-notes-document.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,6BAAwB;AACxB,8CAA+E;AAElE,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAOI,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAAgC,CAAA;AAApD,oDAAoB;+BAApB,oBAAoB;IALhC,IAAA,mBAAU,GAAE;IACZ,IAAA,iBAAQ,EAAC;QACR,UAAU,EAAE,SAAS,GAAG,8BAA8B;KACvD,CAAC;IACD,IAAA,sBAAa,EAAC,kCAA0B,CAAC;GAC7B,oBAAoB,CAAgC"}
1
+ {"version":3,"file":"meeting-notes-document.js","sourceRoot":"","sources":["../../src/documents/meeting-notes-document.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6BAAwB;AACxB,8CAAuE;AAE1D,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAMI,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAI/B,OAAO,CAEL;CACH,CAAA;AAPY,oDAAoB;AAI/B;IAHC,IAAA,cAAK,EAAC;QACL,MAAM,EAAE,kCAA0B;KACnC,CAAC;;qDAGA;+BANS,oBAAoB;IAJhC,IAAA,mBAAU,GAAE;IACZ,IAAA,iBAAQ,EAAC;QACR,UAAU,EAAE,SAAS,GAAG,8BAA8B;KACvD,CAAC;GACW,oBAAoB,CAOhC"}
@@ -8,5 +8,6 @@ export declare const OptimizedMeetingNotesDocumentSchema: z.ZodObject<{
8
8
  actionItems: z.ZodArray<z.ZodString>;
9
9
  }, z.core.$strip>;
10
10
  export declare class OptimizedNotesDocument implements DocumentInterface {
11
+ content: z.infer<typeof OptimizedMeetingNotesDocumentSchema>;
11
12
  }
12
13
  //# sourceMappingURL=optimized-notes-document.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"optimized-notes-document.d.ts","sourceRoot":"","sources":["../../src/documents/optimized-notes-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,iBAAiB,EAAiB,MAAM,mBAAmB,CAAC;AAE/E,eAAO,MAAM,mCAAmC;;;;;;iBAM9C,CAAC;AAEH,qBAKa,sBAAuB,YAAW,iBAAiB;CAAG"}
1
+ {"version":3,"file":"optimized-notes-document.d.ts","sourceRoot":"","sources":["../../src/documents/optimized-notes-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,iBAAiB,EAAS,MAAM,mBAAmB,CAAC;AAEvE,eAAO,MAAM,mCAAmC;;;;;;iBAM9C,CAAC;AAEH,qBAIa,sBAAuB,YAAW,iBAAiB;IAI9D,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;CAC9D"}
@@ -5,6 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.OptimizedNotesDocument = exports.OptimizedMeetingNotesDocumentSchema = void 0;
10
13
  const common_1 = require("@nestjs/common");
@@ -18,13 +21,19 @@ exports.OptimizedMeetingNotesDocumentSchema = zod_1.z.object({
18
21
  actionItems: zod_1.z.array(zod_1.z.string()),
19
22
  });
20
23
  let OptimizedNotesDocument = class OptimizedNotesDocument {
24
+ content;
21
25
  };
22
26
  exports.OptimizedNotesDocument = OptimizedNotesDocument;
27
+ __decorate([
28
+ (0, common_2.Input)({
29
+ schema: exports.OptimizedMeetingNotesDocumentSchema,
30
+ }),
31
+ __metadata("design:type", Object)
32
+ ], OptimizedNotesDocument.prototype, "content", void 0);
23
33
  exports.OptimizedNotesDocument = OptimizedNotesDocument = __decorate([
24
34
  (0, common_1.Injectable)(),
25
35
  (0, common_2.Document)({
26
36
  configFile: __dirname + '/optimized-notes-document.yaml',
27
- }),
28
- (0, common_2.WithArguments)(exports.OptimizedMeetingNotesDocumentSchema)
37
+ })
29
38
  ], OptimizedNotesDocument);
30
39
  //# sourceMappingURL=optimized-notes-document.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"optimized-notes-document.js","sourceRoot":"","sources":["../../src/documents/optimized-notes-document.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,6BAAwB;AACxB,8CAA+E;AAElE,QAAA,mCAAmC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IACjC,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;CACjC,CAAC,CAAC;AAOI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAgC,CAAA;AAAtD,wDAAsB;iCAAtB,sBAAsB;IALlC,IAAA,mBAAU,GAAE;IACZ,IAAA,iBAAQ,EAAC;QACR,UAAU,EAAE,SAAS,GAAG,gCAAgC;KACzD,CAAC;IACD,IAAA,sBAAa,EAAC,2CAAmC,CAAC;GACtC,sBAAsB,CAAgC"}
1
+ {"version":3,"file":"optimized-notes-document.js","sourceRoot":"","sources":["../../src/documents/optimized-notes-document.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6BAAwB;AACxB,8CAAuE;AAE1D,QAAA,mCAAmC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IACjC,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;CACjC,CAAC,CAAC;AAMI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAIjC,OAAO,CAAsD;CAC9D,CAAA;AALY,wDAAsB;AAIjC;IAHC,IAAA,cAAK,EAAC;QACL,MAAM,EAAE,2CAAmC;KAC5C,CAAC;;uDAC2D;iCAJlD,sBAAsB;IAJlC,IAAA,mBAAU,GAAE;IACZ,IAAA,iBAAQ,EAAC;QACR,UAAU,EAAE,SAAS,GAAG,gCAAgC;KACzD,CAAC;GACW,sBAAsB,CAKlC"}
@@ -1,11 +1,20 @@
1
+ import { z } from 'zod';
1
2
  import { AiGenerateDocument } from '@loopstack/ai-module';
2
3
  import { CreateDocument } from '@loopstack/core-ui-module';
3
- import { MeetingNotesDocument } from './documents/meeting-notes-document';
4
- import { OptimizedNotesDocument } from './documents/optimized-notes-document';
4
+ import { MeetingNotesDocument, MeetingNotesDocumentSchema } from './documents/meeting-notes-document';
5
+ import { OptimizedMeetingNotesDocumentSchema, OptimizedNotesDocument } from './documents/optimized-notes-document';
5
6
  export declare class MeetingNotesWorkflow {
6
7
  aiGenerateDocument: AiGenerateDocument;
7
8
  createDocument: CreateDocument;
8
9
  meetingNotesDocument: MeetingNotesDocument;
9
10
  optimizedNotesDocument: OptimizedNotesDocument;
11
+ args: {
12
+ inputText: string;
13
+ };
14
+ state: {
15
+ meetingNotes?: z.infer<typeof MeetingNotesDocumentSchema>;
16
+ optimizedNotes?: z.infer<typeof OptimizedMeetingNotesDocumentSchema>;
17
+ };
18
+ runtime: any;
10
19
  }
11
20
  //# sourceMappingURL=meeting-notes.workflow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-notes.workflow.d.ts","sourceRoot":"","sources":["../src/meeting-notes.workflow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAA8B,MAAM,oCAAoC,CAAC;AACtG,OAAO,EAAuC,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAEnH,qBAmBa,oBAAoB;IACjB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,cAAc,EAAE,cAAc,CAAC;IAC3B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,sBAAsB,EAAE,sBAAsB,CAAC;CAClE"}
1
+ {"version":3,"file":"meeting-notes.workflow.d.ts","sourceRoot":"","sources":["../src/meeting-notes.workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AACtG,OAAO,EAAE,mCAAmC,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAEnH,qBAIa,oBAAoB;IACjB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,cAAc,EAAE,cAAc,CAAC;IAC3B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,sBAAsB,EAAE,sBAAsB,CAAC;IAWjE,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAQF,KAAK,EAAE;QACL,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;QAC1D,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;KACtE,CAAC;IAGF,OAAO,EAAE,GAAG,CAAC;CACd"}
@@ -22,6 +22,9 @@ let MeetingNotesWorkflow = class MeetingNotesWorkflow {
22
22
  createDocument;
23
23
  meetingNotesDocument;
24
24
  optimizedNotesDocument;
25
+ args;
26
+ state;
27
+ runtime;
25
28
  };
26
29
  exports.MeetingNotesWorkflow = MeetingNotesWorkflow;
27
30
  __decorate([
@@ -40,19 +43,33 @@ __decorate([
40
43
  (0, common_2.InjectDocument)(),
41
44
  __metadata("design:type", optimized_notes_document_1.OptimizedNotesDocument)
42
45
  ], MeetingNotesWorkflow.prototype, "optimizedNotesDocument", void 0);
46
+ __decorate([
47
+ (0, common_2.Input)({
48
+ schema: zod_1.z.object({
49
+ inputText: zod_1.z
50
+ .string()
51
+ .default('- meeting 1.1.2025\n- budget: need 2 cut costs sarah said\n- hire new person?? --> marketing\n- vendor pricing - follow up needed by anna'),
52
+ }),
53
+ }),
54
+ __metadata("design:type", Object)
55
+ ], MeetingNotesWorkflow.prototype, "args", void 0);
56
+ __decorate([
57
+ (0, common_2.State)({
58
+ schema: zod_1.z.object({
59
+ meetingNotes: meeting_notes_document_1.MeetingNotesDocumentSchema.optional(),
60
+ optimizedNotes: optimized_notes_document_1.OptimizedMeetingNotesDocumentSchema.optional(),
61
+ }),
62
+ }),
63
+ __metadata("design:type", Object)
64
+ ], MeetingNotesWorkflow.prototype, "state", void 0);
65
+ __decorate([
66
+ (0, common_2.Runtime)(),
67
+ __metadata("design:type", Object)
68
+ ], MeetingNotesWorkflow.prototype, "runtime", void 0);
43
69
  exports.MeetingNotesWorkflow = MeetingNotesWorkflow = __decorate([
44
70
  (0, common_1.Injectable)(),
45
71
  (0, common_2.Workflow)({
46
72
  configFile: __dirname + '/meeting-notes.workflow.yaml',
47
- }),
48
- (0, common_2.WithArguments)(zod_1.z.object({
49
- inputText: zod_1.z
50
- .string()
51
- .default('- meeting 1.1.2025\n- budget: need 2 cut costs sarah said\n- hire new person?? --> marketing\n- vendor pricing - follow up needed by anna'),
52
- })),
53
- (0, common_2.WithState)(zod_1.z.object({
54
- meetingNotes: meeting_notes_document_1.MeetingNotesDocumentSchema.optional(),
55
- optimizedNotes: optimized_notes_document_1.OptimizedMeetingNotesDocumentSchema.optional(),
56
- }))
73
+ })
57
74
  ], MeetingNotesWorkflow);
58
75
  //# sourceMappingURL=meeting-notes.workflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-notes.workflow.js","sourceRoot":"","sources":["../src/meeting-notes.workflow.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6BAAwB;AACxB,oDAA0D;AAC1D,8CAAmG;AACnG,8DAA2D;AAC3D,+EAAsG;AACtG,mFAAmH;AAqB5G,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACjB,kBAAkB,CAAqB;IACvC,cAAc,CAAiB;IAC3B,oBAAoB,CAAuB;IAC3C,sBAAsB,CAAyB;CAClE,CAAA;AALY,oDAAoB;AACjB;IAAb,IAAA,mBAAU,GAAE;8BAAqB,8BAAkB;gEAAC;AACvC;IAAb,IAAA,mBAAU,GAAE;8BAAiB,+BAAc;4DAAC;AAC3B;IAAjB,IAAA,uBAAc,GAAE;8BAAuB,6CAAoB;kEAAC;AAC3C;IAAjB,IAAA,uBAAc,GAAE;8BAAyB,iDAAsB;oEAAC;+BAJtD,oBAAoB;IAnBhC,IAAA,mBAAU,GAAE;IACZ,IAAA,iBAAQ,EAAC;QACR,UAAU,EAAE,SAAS,GAAG,8BAA8B;KACvD,CAAC;IACD,IAAA,sBAAa,EACZ,OAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,OAAC;aACT,MAAM,EAAE;aACR,OAAO,CACN,2IAA2I,CAC5I;KACJ,CAAC,CACH;IACA,IAAA,kBAAS,EACR,OAAC,CAAC,MAAM,CAAC;QACP,YAAY,EAAE,mDAA0B,CAAC,QAAQ,EAAE;QACnD,cAAc,EAAE,8DAAmC,CAAC,QAAQ,EAAE;KAC/D,CAAC,CACH;GACY,oBAAoB,CAKhC"}
1
+ {"version":3,"file":"meeting-notes.workflow.js","sourceRoot":"","sources":["../src/meeting-notes.workflow.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6BAAwB;AACxB,oDAA0D;AAC1D,8CAAgG;AAChG,8DAA2D;AAC3D,+EAAsG;AACtG,mFAAmH;AAM5G,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACjB,kBAAkB,CAAqB;IACvC,cAAc,CAAiB;IAC3B,oBAAoB,CAAuB;IAC3C,sBAAsB,CAAyB;IAWjE,IAAI,CAEF;IAQF,KAAK,CAGH;IAGF,OAAO,CAAM;CACd,CAAA;AAhCY,oDAAoB;AACjB;IAAb,IAAA,mBAAU,GAAE;8BAAqB,8BAAkB;gEAAC;AACvC;IAAb,IAAA,mBAAU,GAAE;8BAAiB,+BAAc;4DAAC;AAC3B;IAAjB,IAAA,uBAAc,GAAE;8BAAuB,6CAAoB;kEAAC;AAC3C;IAAjB,IAAA,uBAAc,GAAE;8BAAyB,iDAAsB;oEAAC;AAWjE;IATC,IAAA,cAAK,EAAC;QACL,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;YACf,SAAS,EAAE,OAAC;iBACT,MAAM,EAAE;iBACR,OAAO,CACN,2IAA2I,CAC5I;SACJ,CAAC;KACH,CAAC;;kDAGA;AAQF;IANC,IAAA,cAAK,EAAC;QACL,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;YACf,YAAY,EAAE,mDAA0B,CAAC,QAAQ,EAAE;YACnD,cAAc,EAAE,8DAAmC,CAAC,QAAQ,EAAE;SAC/D,CAAC;KACH,CAAC;;mDAIA;AAGF;IADC,IAAA,gBAAO,GAAE;;qDACG;+BA/BF,oBAAoB;IAJhC,IAAA,mBAAU,GAAE;IACZ,IAAA,iBAAQ,EAAC;QACR,UAAU,EAAE,SAAS,GAAG,8BAA8B;KACvD,CAAC;GACW,oBAAoB,CAgChC"}
@@ -37,7 +37,7 @@ transitions:
37
37
  id: input
38
38
  document: meetingNotesDocument
39
39
  update:
40
- content: ${ transition.payload }
40
+ content: ${ runtime.transition.payload }
41
41
  assign:
42
42
  meetingNotes: ${ result.data.content }
43
43
 
@@ -58,10 +58,8 @@ transitions:
58
58
  Extract all information from the provided meeting notes into the structured document.
59
59
 
60
60
  <Meeting Notes>
61
- {{ meetingNotes.text }}
61
+ {{ state.meetingNotes.text }}
62
62
  </Meeting Notes>
63
- assign:
64
- optimizedNotes: ${ result.data.content }
65
63
 
66
64
  - id: confirm
67
65
  from: notes_optimized
@@ -74,6 +72,6 @@ transitions:
74
72
  id: final
75
73
  document: optimizedNotesDocument
76
74
  update:
77
- content: ${ transition.payload }
75
+ content: ${ runtime.transition.payload }
78
76
  assign:
79
77
  optimizedNotes: ${ result.data.content }
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "summary",
10
10
  "workflow"
11
11
  ],
12
- "version": "0.19.0",
12
+ "version": "0.20.0",
13
13
  "license": "Apache-2.0",
14
14
  "author": {
15
15
  "name": "Jakob Klippel",
@@ -30,9 +30,9 @@
30
30
  "watch": "nest build --watch"
31
31
  },
32
32
  "dependencies": {
33
- "@loopstack/ai-module": "^0.19.0",
34
- "@loopstack/common": "^0.19.0",
35
- "@loopstack/core-ui-module": "^0.19.0",
33
+ "@loopstack/ai-module": "^0.20.0",
34
+ "@loopstack/common": "^0.20.0",
35
+ "@loopstack/core-ui-module": "^0.20.0",
36
36
  "@nestjs/common": "^11.1.12",
37
37
  "zod": "^4.3.5"
38
38
  },
@@ -1,6 +1,6 @@
1
1
  import { TestingModule } from '@nestjs/testing';
2
2
  import { AiGenerateDocument, AiModule } from '@loopstack/ai-module';
3
- import { BlockExecutionContextDto, generateObjectFingerprint, getBlockTools } from '@loopstack/common';
3
+ import { RunContext, generateObjectFingerprint, getBlockTools } from '@loopstack/common';
4
4
  import { WorkflowProcessorService } from '@loopstack/core';
5
5
  import { CoreUiModule, CreateDocument } from '@loopstack/core-ui-module';
6
6
  import { ToolMock, createWorkflowTest } from '@loopstack/testing';
@@ -52,7 +52,7 @@ describe('MeetingNotesWorkflow', () => {
52
52
  });
53
53
 
54
54
  describe('initial step', () => {
55
- const context = new BlockExecutionContextDto({});
55
+ const context = {} as RunContext;
56
56
 
57
57
  it('should execute initial step and stop at waiting_for_response', async () => {
58
58
  mockCreateDocument.execute.mockResolvedValue({
@@ -62,8 +62,8 @@ describe('MeetingNotesWorkflow', () => {
62
62
  const result = await processor.process(workflow, {}, context);
63
63
 
64
64
  // Should execute without errors and stop at waiting_for_response (manual step)
65
- expect(result.runtime.error).toBe(false);
66
- expect(result.runtime.stop).toBe(true);
65
+ expect(result.error).toBe(false);
66
+ expect(result.stop).toBe(true);
67
67
 
68
68
  // Should call CreateDocument once for the initial form
69
69
  expect(mockCreateDocument.execute).toHaveBeenCalledTimes(1);
@@ -78,12 +78,13 @@ describe('MeetingNotesWorkflow', () => {
78
78
  }),
79
79
  expect.anything(),
80
80
  expect.anything(),
81
+ expect.anything(),
81
82
  );
82
83
 
83
- // Verify history contains expected places
84
- const history = result.state.getHistory();
85
- const places = history.map((h) => h.metadata?.place);
86
- expect(places).toContain('waiting_for_response');
84
+ // // Verify history contains expected places
85
+ // const history = result.state.getHistory();
86
+ // const places = history.map((h) => h.metadata?.place);
87
+ // expect(places).toContain('waiting_for_response');
87
88
  });
88
89
  });
89
90
 
@@ -137,7 +138,7 @@ describe('MeetingNotesWorkflow', () => {
137
138
  });
138
139
 
139
140
  // Context with user payload for manual transition
140
- const contextWithPayload = new BlockExecutionContextDto({
141
+ const contextWithPayload = {
141
142
  payload: {
142
143
  transition: {
143
144
  id: 'user_response',
@@ -145,13 +146,13 @@ describe('MeetingNotesWorkflow', () => {
145
146
  payload: mockUserEditedNotes,
146
147
  },
147
148
  },
148
- });
149
+ } as RunContext;
149
150
 
150
151
  const result = await processorWithState.process(workflowWithState, args, contextWithPayload);
151
152
 
152
153
  // Should execute and stop at notes_optimized (next manual step)
153
- expect(result.runtime.error).toBe(false);
154
- expect(result.runtime.stop).toBe(true);
154
+ expect(result.error).toBe(false);
155
+ expect(result.stop).toBe(true);
155
156
 
156
157
  // Should call CreateDocument once for user response
157
158
  expect(mockCreateDocumentWithState.execute).toHaveBeenCalledTimes(1);
@@ -161,6 +162,7 @@ describe('MeetingNotesWorkflow', () => {
161
162
  }),
162
163
  expect.anything(),
163
164
  expect.anything(),
165
+ expect.anything(),
164
166
  );
165
167
 
166
168
  // Should call AiGenerateDocument once
@@ -174,13 +176,14 @@ describe('MeetingNotesWorkflow', () => {
174
176
  }),
175
177
  expect.anything(),
176
178
  expect.anything(),
179
+ expect.anything(),
177
180
  );
178
181
 
179
- // Verify history contains expected places
180
- const history = result.state.getHistory();
181
- const places = history.map((h) => h.metadata?.place);
182
- expect(places).toContain('response_received');
183
- expect(places).toContain('notes_optimized');
182
+ // // Verify history contains expected places
183
+ // const history = result.state.getHistory();
184
+ // const places = history.map((h) => h.metadata?.place);
185
+ // expect(places).toContain('response_received');
186
+ // expect(places).toContain('notes_optimized');
184
187
 
185
188
  await moduleWithState.close();
186
189
  });
@@ -225,7 +228,7 @@ describe('MeetingNotesWorkflow', () => {
225
228
  });
226
229
 
227
230
  // Context with user confirmation for manual transition
228
- const contextWithPayload = new BlockExecutionContextDto({
231
+ const contextWithPayload = {
229
232
  payload: {
230
233
  transition: {
231
234
  id: 'confirm',
@@ -233,21 +236,21 @@ describe('MeetingNotesWorkflow', () => {
233
236
  payload: mockFinalNotes,
234
237
  },
235
238
  },
236
- });
239
+ } as RunContext;
237
240
 
238
241
  const result = await processorWithState.process(workflowWithState, args, contextWithPayload);
239
242
 
240
243
  // Should complete and reach end state
241
- expect(result.runtime.error).toBe(false);
242
- expect(result.runtime.stop).toBe(false);
244
+ expect(result.error).toBe(false);
245
+ expect(result.stop).toBe(false);
243
246
 
244
247
  // Should call CreateDocument once for final confirmation
245
248
  expect(mockCreateDocumentWithState.execute).toHaveBeenCalledTimes(1);
246
249
 
247
- // Verify history contains expected places including end
248
- const history = result.state.getHistory();
249
- const places = history.map((h) => h.metadata?.place);
250
- expect(places).toContain('end');
250
+ // // Verify history contains expected places including end
251
+ // const history = result.state.getHistory();
252
+ // const places = history.map((h) => h.metadata?.place);
253
+ // expect(places).toContain('end');
251
254
 
252
255
  await moduleWithState.close();
253
256
  });
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@nestjs/common';
2
2
  import { z } from 'zod';
3
- import { Document, DocumentInterface, WithArguments } from '@loopstack/common';
3
+ import { Document, DocumentInterface, Input } from '@loopstack/common';
4
4
 
5
5
  export const MeetingNotesDocumentSchema = z.object({
6
6
  text: z.string(),
@@ -10,5 +10,11 @@ export const MeetingNotesDocumentSchema = z.object({
10
10
  @Document({
11
11
  configFile: __dirname + '/meeting-notes-document.yaml',
12
12
  })
13
- @WithArguments(MeetingNotesDocumentSchema)
14
- export class MeetingNotesDocument implements DocumentInterface {}
13
+ export class MeetingNotesDocument implements DocumentInterface {
14
+ @Input({
15
+ schema: MeetingNotesDocumentSchema,
16
+ })
17
+ content: {
18
+ text: string;
19
+ };
20
+ }
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@nestjs/common';
2
2
  import { z } from 'zod';
3
- import { Document, DocumentInterface, WithArguments } from '@loopstack/common';
3
+ import { Document, DocumentInterface, Input } from '@loopstack/common';
4
4
 
5
5
  export const OptimizedMeetingNotesDocumentSchema = z.object({
6
6
  date: z.string(),
@@ -14,5 +14,9 @@ export const OptimizedMeetingNotesDocumentSchema = z.object({
14
14
  @Document({
15
15
  configFile: __dirname + '/optimized-notes-document.yaml',
16
16
  })
17
- @WithArguments(OptimizedMeetingNotesDocumentSchema)
18
- export class OptimizedNotesDocument implements DocumentInterface {}
17
+ export class OptimizedNotesDocument implements DocumentInterface {
18
+ @Input({
19
+ schema: OptimizedMeetingNotesDocumentSchema,
20
+ })
21
+ content: z.infer<typeof OptimizedMeetingNotesDocumentSchema>;
22
+ }
@@ -1,7 +1,7 @@
1
1
  import { Injectable } from '@nestjs/common';
2
2
  import { z } from 'zod';
3
3
  import { AiGenerateDocument } from '@loopstack/ai-module';
4
- import { InjectDocument, InjectTool, WithArguments, WithState, Workflow } from '@loopstack/common';
4
+ import { InjectDocument, InjectTool, Input, Runtime, State, Workflow } from '@loopstack/common';
5
5
  import { CreateDocument } from '@loopstack/core-ui-module';
6
6
  import { MeetingNotesDocument, MeetingNotesDocumentSchema } from './documents/meeting-notes-document';
7
7
  import { OptimizedMeetingNotesDocumentSchema, OptimizedNotesDocument } from './documents/optimized-notes-document';
@@ -10,24 +10,36 @@ import { OptimizedMeetingNotesDocumentSchema, OptimizedNotesDocument } from './d
10
10
  @Workflow({
11
11
  configFile: __dirname + '/meeting-notes.workflow.yaml',
12
12
  })
13
- @WithArguments(
14
- z.object({
15
- inputText: z
16
- .string()
17
- .default(
18
- '- meeting 1.1.2025\n- budget: need 2 cut costs sarah said\n- hire new person?? --> marketing\n- vendor pricing - follow up needed by anna',
19
- ),
20
- }),
21
- )
22
- @WithState(
23
- z.object({
24
- meetingNotes: MeetingNotesDocumentSchema.optional(),
25
- optimizedNotes: OptimizedMeetingNotesDocumentSchema.optional(),
26
- }),
27
- )
28
13
  export class MeetingNotesWorkflow {
29
14
  @InjectTool() aiGenerateDocument: AiGenerateDocument;
30
15
  @InjectTool() createDocument: CreateDocument;
31
16
  @InjectDocument() meetingNotesDocument: MeetingNotesDocument;
32
17
  @InjectDocument() optimizedNotesDocument: OptimizedNotesDocument;
18
+
19
+ @Input({
20
+ schema: z.object({
21
+ inputText: z
22
+ .string()
23
+ .default(
24
+ '- meeting 1.1.2025\n- budget: need 2 cut costs sarah said\n- hire new person?? --> marketing\n- vendor pricing - follow up needed by anna',
25
+ ),
26
+ }),
27
+ })
28
+ args: {
29
+ inputText: string;
30
+ };
31
+
32
+ @State({
33
+ schema: z.object({
34
+ meetingNotes: MeetingNotesDocumentSchema.optional(),
35
+ optimizedNotes: OptimizedMeetingNotesDocumentSchema.optional(),
36
+ }),
37
+ })
38
+ state: {
39
+ meetingNotes?: z.infer<typeof MeetingNotesDocumentSchema>;
40
+ optimizedNotes?: z.infer<typeof OptimizedMeetingNotesDocumentSchema>;
41
+ };
42
+
43
+ @Runtime()
44
+ runtime: any;
33
45
  }
@@ -37,7 +37,7 @@ transitions:
37
37
  id: input
38
38
  document: meetingNotesDocument
39
39
  update:
40
- content: ${ transition.payload }
40
+ content: ${ runtime.transition.payload }
41
41
  assign:
42
42
  meetingNotes: ${ result.data.content }
43
43
 
@@ -58,10 +58,8 @@ transitions:
58
58
  Extract all information from the provided meeting notes into the structured document.
59
59
 
60
60
  <Meeting Notes>
61
- {{ meetingNotes.text }}
61
+ {{ state.meetingNotes.text }}
62
62
  </Meeting Notes>
63
- assign:
64
- optimizedNotes: ${ result.data.content }
65
63
 
66
64
  - id: confirm
67
65
  from: notes_optimized
@@ -74,6 +72,6 @@ transitions:
74
72
  id: final
75
73
  document: optimizedNotesDocument
76
74
  update:
77
- content: ${ transition.payload }
75
+ content: ${ runtime.transition.payload }
78
76
  assign:
79
77
  optimizedNotes: ${ result.data.content }