@loopstack/hitl-examples 0.1.1

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 (82) hide show
  1. package/README.md +165 -0
  2. package/dist/hitl-examples.module.d.ts +3 -0
  3. package/dist/hitl-examples.module.d.ts.map +1 -0
  4. package/dist/hitl-examples.module.js +52 -0
  5. package/dist/hitl-examples.module.js.map +1 -0
  6. package/dist/index.d.ts +12 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +28 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/workflows/agent-ask-clarification/agent-ask-clarification-example.workflow.d.ts +9 -0
  11. package/dist/workflows/agent-ask-clarification/agent-ask-clarification-example.workflow.d.ts.map +1 -0
  12. package/dist/workflows/agent-ask-clarification/agent-ask-clarification-example.workflow.js +69 -0
  13. package/dist/workflows/agent-ask-clarification/agent-ask-clarification-example.workflow.js.map +1 -0
  14. package/dist/workflows/agent-ask-for-approval/agent-ask-for-approval-example.workflow.d.ts +9 -0
  15. package/dist/workflows/agent-ask-for-approval/agent-ask-for-approval-example.workflow.d.ts.map +1 -0
  16. package/dist/workflows/agent-ask-for-approval/agent-ask-for-approval-example.workflow.js +67 -0
  17. package/dist/workflows/agent-ask-for-approval/agent-ask-for-approval-example.workflow.js.map +1 -0
  18. package/dist/workflows/ask-user-confirm/ask-user-confirm-example.workflow.d.ts +11 -0
  19. package/dist/workflows/ask-user-confirm/ask-user-confirm-example.workflow.d.ts.map +1 -0
  20. package/dist/workflows/ask-user-confirm/ask-user-confirm-example.workflow.js +61 -0
  21. package/dist/workflows/ask-user-confirm/ask-user-confirm-example.workflow.js.map +1 -0
  22. package/dist/workflows/ask-user-options/ask-user-options-example.workflow.d.ts +11 -0
  23. package/dist/workflows/ask-user-options/ask-user-options-example.workflow.d.ts.map +1 -0
  24. package/dist/workflows/ask-user-options/ask-user-options-example.workflow.js +68 -0
  25. package/dist/workflows/ask-user-options/ask-user-options-example.workflow.js.map +1 -0
  26. package/dist/workflows/ask-user-text/ask-user-text-example.workflow.d.ts +11 -0
  27. package/dist/workflows/ask-user-text/ask-user-text-example.workflow.d.ts.map +1 -0
  28. package/dist/workflows/ask-user-text/ask-user-text-example.workflow.js +60 -0
  29. package/dist/workflows/ask-user-text/ask-user-text-example.workflow.js.map +1 -0
  30. package/dist/workflows/confirm-content/confirm-content-example.workflow.d.ts +16 -0
  31. package/dist/workflows/confirm-content/confirm-content-example.workflow.d.ts.map +1 -0
  32. package/dist/workflows/confirm-content/confirm-content-example.workflow.js +68 -0
  33. package/dist/workflows/confirm-content/confirm-content-example.workflow.js.map +1 -0
  34. package/dist/workflows/inline-form/feedback-form-document.d.ts +10 -0
  35. package/dist/workflows/inline-form/feedback-form-document.d.ts.map +1 -0
  36. package/dist/workflows/inline-form/feedback-form-document.js +27 -0
  37. package/dist/workflows/inline-form/feedback-form-document.js.map +1 -0
  38. package/dist/workflows/inline-form/feedback-form-document.yaml +13 -0
  39. package/dist/workflows/inline-form/inline-form-example.workflow.d.ts +11 -0
  40. package/dist/workflows/inline-form/inline-form-example.workflow.d.ts.map +1 -0
  41. package/dist/workflows/inline-form/inline-form-example.workflow.js +54 -0
  42. package/dist/workflows/inline-form/inline-form-example.workflow.js.map +1 -0
  43. package/dist/workflows/meeting-notes/documents/meeting-notes-document.d.ts +8 -0
  44. package/dist/workflows/meeting-notes/documents/meeting-notes-document.d.ts.map +1 -0
  45. package/dist/workflows/meeting-notes/documents/meeting-notes-document.js +25 -0
  46. package/dist/workflows/meeting-notes/documents/meeting-notes-document.js.map +1 -0
  47. package/dist/workflows/meeting-notes/documents/meeting-notes-document.yaml +10 -0
  48. package/dist/workflows/meeting-notes/documents/optimized-notes-document.d.ts +16 -0
  49. package/dist/workflows/meeting-notes/documents/optimized-notes-document.d.ts.map +1 -0
  50. package/dist/workflows/meeting-notes/documents/optimized-notes-document.js +33 -0
  51. package/dist/workflows/meeting-notes/documents/optimized-notes-document.js.map +1 -0
  52. package/dist/workflows/meeting-notes/documents/optimized-notes-document.yaml +33 -0
  53. package/dist/workflows/meeting-notes/meeting-notes-example.workflow.d.ts +24 -0
  54. package/dist/workflows/meeting-notes/meeting-notes-example.workflow.d.ts.map +1 -0
  55. package/dist/workflows/meeting-notes/meeting-notes-example.workflow.js +86 -0
  56. package/dist/workflows/meeting-notes/meeting-notes-example.workflow.js.map +1 -0
  57. package/dist/workflows/meeting-notes/templates/extract-notes.md +5 -0
  58. package/dist/workflows/prompt-input-chat/prompt-input-chat-example.workflow.d.ts +8 -0
  59. package/dist/workflows/prompt-input-chat/prompt-input-chat-example.workflow.d.ts.map +1 -0
  60. package/dist/workflows/prompt-input-chat/prompt-input-chat-example.workflow.js +56 -0
  61. package/dist/workflows/prompt-input-chat/prompt-input-chat-example.workflow.js.map +1 -0
  62. package/dist/workflows/prompt-input-chat/prompt-input-chat-example.workflow.yaml +6 -0
  63. package/package.json +55 -0
  64. package/src/hitl-examples.module.ts +40 -0
  65. package/src/index.ts +16 -0
  66. package/src/workflows/agent-ask-clarification/agent-ask-clarification-example.workflow.ts +48 -0
  67. package/src/workflows/agent-ask-for-approval/agent-ask-for-approval-example.workflow.ts +47 -0
  68. package/src/workflows/ask-user-confirm/ask-user-confirm-example.workflow.ts +40 -0
  69. package/src/workflows/ask-user-options/ask-user-options-example.workflow.ts +48 -0
  70. package/src/workflows/ask-user-text/ask-user-text-example.workflow.ts +39 -0
  71. package/src/workflows/confirm-content/confirm-content-example.workflow.ts +49 -0
  72. package/src/workflows/inline-form/feedback-form-document.ts +16 -0
  73. package/src/workflows/inline-form/feedback-form-document.yaml +13 -0
  74. package/src/workflows/inline-form/inline-form-example.workflow.ts +37 -0
  75. package/src/workflows/meeting-notes/documents/meeting-notes-document.ts +14 -0
  76. package/src/workflows/meeting-notes/documents/meeting-notes-document.yaml +10 -0
  77. package/src/workflows/meeting-notes/documents/optimized-notes-document.ts +22 -0
  78. package/src/workflows/meeting-notes/documents/optimized-notes-document.yaml +33 -0
  79. package/src/workflows/meeting-notes/meeting-notes-example.workflow.ts +75 -0
  80. package/src/workflows/meeting-notes/templates/extract-notes.md +5 -0
  81. package/src/workflows/prompt-input-chat/prompt-input-chat-example.workflow.ts +30 -0
  82. package/src/workflows/prompt-input-chat/prompt-input-chat-example.workflow.yaml +6 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-user-options-example.workflow.js","sourceRoot":"","sources":["../../../src/workflows/ask-user-options/ask-user-options-example.workflow.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAAwB;AACxB,8CAA8G;AAC9G,0CAAkD;AAElD,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEtD,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAQvC,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,qBAAY;IAChC;IAA7B,YAA6B,eAAgC;QAC3D,KAAK,EAAE,CAAC;QADmB,oBAAe,GAAf,eAAe,CAAiB;IAE7D,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CAAC,MAA+B;QAClD,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAC5B;YACE,QAAQ,EAAE,wCAAwC;YAClD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,WAAW;YACpB,iBAAiB,EAAE,IAAI;SACxB,EACD,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAC/F,CAAC;IACJ,CAAC;IAQK,AAAN,KAAK,CAAC,cAAc,CAAC,KAA8B,EAAE,KAA0C;QAC7F,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAe,EAAE;YAC7C,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC,CAAC,gBAAgB,MAAM,GAAG;SACtF,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAwC,CAAC,CAAC;IAClG,CAAC;CACF,CAAA;AAjCY,sEAA6B;AAMlC;IADL,IAAA,mBAAU,EAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC;;;;mEAWxC;AAQK;IANL,IAAA,mBAAU,EAAC;QACV,IAAI,EAAE,oBAAoB;QAC1B,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,YAAY;KACrB,CAAC;;;;mEASD;wCAhCU,6BAA6B;IANzC,IAAA,iBAAQ,EAAC;QACR,KAAK,EAAE,iCAAiC;QACxC,WAAW,EACT,mGAAmG;YACnG,+DAA+D;KAClE,CAAC;qCAE8C,sBAAe;GADlD,6BAA6B,CAiCzC"}
@@ -0,0 +1,11 @@
1
+ import { BaseWorkflow, type TransitionInput } from '@loopstack/common';
2
+ import { AskUserWorkflow } from '@loopstack/hitl';
3
+ export declare class AskUserTextExampleWorkflow extends BaseWorkflow {
4
+ private readonly askUserWorkflow;
5
+ constructor(askUserWorkflow: AskUserWorkflow);
6
+ askName(_state: Record<string, unknown>): Promise<void>;
7
+ answerReceived(state: Record<string, unknown>, input: TransitionInput<{
8
+ answer: string;
9
+ }>): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=ask-user-text-example.workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-user-text-example.workflow.d.ts","sourceRoot":"","sources":["../../../src/workflows/ask-user-text/ask-user-text-example.workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAA+B,KAAK,eAAe,EAAY,MAAM,mBAAmB,CAAC;AAC9G,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIlD,qBAMa,0BAA2B,SAAQ,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAKvD,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAavC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAOhG"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AskUserTextExampleWorkflow = void 0;
13
+ const zod_1 = require("zod");
14
+ const common_1 = require("@loopstack/common");
15
+ const hitl_1 = require("@loopstack/hitl");
16
+ const AnswerSchema = zod_1.z.object({ answer: zod_1.z.string() });
17
+ let AskUserTextExampleWorkflow = class AskUserTextExampleWorkflow extends common_1.BaseWorkflow {
18
+ askUserWorkflow;
19
+ constructor(askUserWorkflow) {
20
+ super();
21
+ this.askUserWorkflow = askUserWorkflow;
22
+ }
23
+ async askName(_state) {
24
+ await this.askUserWorkflow.run({ question: 'What is your name?' }, { callback: { transition: 'answerReceived' }, show: 'inline', label: 'Waiting for answer...' });
25
+ }
26
+ async answerReceived(state, input) {
27
+ await this.documentStore.save(common_1.MessageDocument, {
28
+ role: 'assistant',
29
+ text: `Hello, ${input.data.answer}!`,
30
+ });
31
+ this.setResult({ name: input.data.answer });
32
+ }
33
+ };
34
+ exports.AskUserTextExampleWorkflow = AskUserTextExampleWorkflow;
35
+ __decorate([
36
+ (0, common_1.Transition)({ to: 'waiting_for_answer' }),
37
+ __metadata("design:type", Function),
38
+ __metadata("design:paramtypes", [Object]),
39
+ __metadata("design:returntype", Promise)
40
+ ], AskUserTextExampleWorkflow.prototype, "askName", null);
41
+ __decorate([
42
+ (0, common_1.Transition)({
43
+ from: 'waiting_for_answer',
44
+ to: 'end',
45
+ wait: true,
46
+ schema: AnswerSchema,
47
+ }),
48
+ __metadata("design:type", Function),
49
+ __metadata("design:paramtypes", [Object, Object]),
50
+ __metadata("design:returntype", Promise)
51
+ ], AskUserTextExampleWorkflow.prototype, "answerReceived", null);
52
+ exports.AskUserTextExampleWorkflow = AskUserTextExampleWorkflow = __decorate([
53
+ (0, common_1.Workflow)({
54
+ title: 'HITL - Ask User Text Example',
55
+ description: 'Shortcut HITL: delegate a generic free-text ask to AskUserWorkflow. The parent only owns the ' +
56
+ 'callback transition. Use the inline-form pattern instead when you need a structured form.',
57
+ }),
58
+ __metadata("design:paramtypes", [hitl_1.AskUserWorkflow])
59
+ ], AskUserTextExampleWorkflow);
60
+ //# sourceMappingURL=ask-user-text-example.workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-user-text-example.workflow.js","sourceRoot":"","sources":["../../../src/workflows/ask-user-text/ask-user-text-example.workflow.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAAwB;AACxB,8CAA8G;AAC9G,0CAAkD;AAElD,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAQ/C,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,qBAAY;IAC7B;IAA7B,YAA6B,eAAgC;QAC3D,KAAK,EAAE,CAAC;QADmB,oBAAe,GAAf,eAAe,CAAiB;IAE7D,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAC,MAA+B;QAC3C,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAC5B,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAClC,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAC/F,CAAC;IACJ,CAAC;IAQK,AAAN,KAAK,CAAC,cAAc,CAAC,KAA8B,EAAE,KAA0C;QAC7F,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAe,EAAE;YAC7C,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,UAAU,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAwC,CAAC,CAAC;IACpF,CAAC;CACF,CAAA;AA1BY,gEAA0B;AAM/B;IADL,IAAA,mBAAU,EAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC;;;;yDAMxC;AAQK;IANL,IAAA,mBAAU,EAAC;QACV,IAAI,EAAE,oBAAoB;QAC1B,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,YAAY;KACrB,CAAC;;;;gEAOD;qCAzBU,0BAA0B;IANtC,IAAA,iBAAQ,EAAC;QACR,KAAK,EAAE,8BAA8B;QACrC,WAAW,EACT,+FAA+F;YAC/F,2FAA2F;KAC9F,CAAC;qCAE8C,sBAAe;GADlD,0BAA0B,CA0BtC"}
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ import { BaseWorkflow, type TransitionInput } from '@loopstack/common';
3
+ import { ConfirmUserWorkflow } from '@loopstack/hitl';
4
+ declare const ConfirmSchema: z.ZodObject<{
5
+ confirmed: z.ZodBoolean;
6
+ markdown: z.ZodString;
7
+ }, z.core.$strip>;
8
+ type ConfirmData = z.infer<typeof ConfirmSchema>;
9
+ export declare class ConfirmContentExampleWorkflow extends BaseWorkflow {
10
+ private readonly confirmUserWorkflow;
11
+ constructor(confirmUserWorkflow: ConfirmUserWorkflow);
12
+ showSummary(_state: Record<string, unknown>): Promise<void>;
13
+ decisionReceived(state: Record<string, unknown>, input: TransitionInput<ConfirmData>): Promise<void>;
14
+ }
15
+ export {};
16
+ //# sourceMappingURL=confirm-content-example.workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-content-example.workflow.d.ts","sourceRoot":"","sources":["../../../src/workflows/confirm-content/confirm-content-example.workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAA+B,KAAK,eAAe,EAAY,MAAM,mBAAmB,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,QAAA,MAAM,aAAa;;;iBAA6D,CAAC;AACjF,KAAK,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAWjD,qBAMa,6BAA8B,SAAQ,YAAY;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,mBAAmB;IAK/D,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAa3C,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC;CAO3F"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ConfirmContentExampleWorkflow = void 0;
13
+ const zod_1 = require("zod");
14
+ const common_1 = require("@loopstack/common");
15
+ const hitl_1 = require("@loopstack/hitl");
16
+ const ConfirmSchema = zod_1.z.object({ confirmed: zod_1.z.boolean(), markdown: zod_1.z.string() });
17
+ const DEPLOY_SUMMARY = `## Ready to deploy?
18
+
19
+ We're about to deploy **v1.2.3** to production.
20
+
21
+ - 3 commits since last release
22
+ - Smoke tests passing
23
+
24
+ Proceed?`;
25
+ let ConfirmContentExampleWorkflow = class ConfirmContentExampleWorkflow extends common_1.BaseWorkflow {
26
+ confirmUserWorkflow;
27
+ constructor(confirmUserWorkflow) {
28
+ super();
29
+ this.confirmUserWorkflow = confirmUserWorkflow;
30
+ }
31
+ async showSummary(_state) {
32
+ await this.confirmUserWorkflow.run({ markdown: DEPLOY_SUMMARY }, { callback: { transition: 'decisionReceived' }, show: 'inline', label: 'Waiting for confirmation...' });
33
+ }
34
+ async decisionReceived(state, input) {
35
+ await this.documentStore.save(common_1.MessageDocument, {
36
+ role: 'assistant',
37
+ text: input.data.confirmed ? 'User confirmed — proceeding with deploy.' : 'User denied — aborting deploy.',
38
+ });
39
+ this.setResult({ confirmed: input.data.confirmed });
40
+ }
41
+ };
42
+ exports.ConfirmContentExampleWorkflow = ConfirmContentExampleWorkflow;
43
+ __decorate([
44
+ (0, common_1.Transition)({ to: 'waiting_for_confirmation' }),
45
+ __metadata("design:type", Function),
46
+ __metadata("design:paramtypes", [Object]),
47
+ __metadata("design:returntype", Promise)
48
+ ], ConfirmContentExampleWorkflow.prototype, "showSummary", null);
49
+ __decorate([
50
+ (0, common_1.Transition)({
51
+ from: 'waiting_for_confirmation',
52
+ to: 'end',
53
+ wait: true,
54
+ schema: ConfirmSchema,
55
+ }),
56
+ __metadata("design:type", Function),
57
+ __metadata("design:paramtypes", [Object, Object]),
58
+ __metadata("design:returntype", Promise)
59
+ ], ConfirmContentExampleWorkflow.prototype, "decisionReceived", null);
60
+ exports.ConfirmContentExampleWorkflow = ConfirmContentExampleWorkflow = __decorate([
61
+ (0, common_1.Workflow)({
62
+ title: 'HITL - Confirm Content Example',
63
+ description: 'Shortcut HITL: hand a pre-rendered markdown blob to ConfirmUserWorkflow for a user-facing review/confirm. ' +
64
+ 'Useful for showing a release plan, a summary, or a code-diff for explicit approval.',
65
+ }),
66
+ __metadata("design:paramtypes", [hitl_1.ConfirmUserWorkflow])
67
+ ], ConfirmContentExampleWorkflow);
68
+ //# sourceMappingURL=confirm-content-example.workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-content-example.workflow.js","sourceRoot":"","sources":["../../../src/workflows/confirm-content/confirm-content-example.workflow.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAAwB;AACxB,8CAA8G;AAC9G,0CAAsD;AAEtD,MAAM,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAGjF,MAAM,cAAc,GAAG;;;;;;;SAOd,CAAC;AAQH,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,qBAAY;IAChC;IAA7B,YAA6B,mBAAwC;QACnE,KAAK,EAAE,CAAC;QADmB,wBAAmB,GAAnB,mBAAmB,CAAqB;IAErE,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CAAC,MAA+B;QAC/C,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAChC,EAAE,QAAQ,EAAE,cAAc,EAAE,EAC5B,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,6BAA6B,EAAE,CACvG,CAAC;IACJ,CAAC;IAQK,AAAN,KAAK,CAAC,gBAAgB,CAAC,KAA8B,EAAE,KAAmC;QACxF,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAe,EAAE;YAC7C,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,gCAAgC;SAC3G,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAwC,CAAC,CAAC;IAC5F,CAAC;CACF,CAAA;AA1BY,sEAA6B;AAMlC;IADL,IAAA,mBAAU,EAAC,EAAE,EAAE,EAAE,0BAA0B,EAAE,CAAC;;;;gEAM9C;AAQK;IANL,IAAA,mBAAU,EAAC;QACV,IAAI,EAAE,0BAA0B;QAChC,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,aAAa;KACtB,CAAC;;;;qEAOD;wCAzBU,6BAA6B;IANzC,IAAA,iBAAQ,EAAC;QACR,KAAK,EAAE,gCAAgC;QACvC,WAAW,EACT,4GAA4G;YAC5G,qFAAqF;KACxF,CAAC;qCAEkD,0BAAmB;GAD1D,6BAA6B,CA0BzC"}
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export declare const FeedbackFormDocumentSchema: z.ZodObject<{
3
+ rating: z.ZodNumber;
4
+ comment: z.ZodString;
5
+ }, z.core.$strip>;
6
+ export declare class FeedbackFormDocument {
7
+ rating: number;
8
+ comment: string;
9
+ }
10
+ //# sourceMappingURL=feedback-form-document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-form-document.d.ts","sourceRoot":"","sources":["../../../src/workflows/inline-form/feedback-form-document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAC;AAEH,qBAIa,oBAAoB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.FeedbackFormDocument = exports.FeedbackFormDocumentSchema = void 0;
10
+ const zod_1 = require("zod");
11
+ const common_1 = require("@loopstack/common");
12
+ exports.FeedbackFormDocumentSchema = zod_1.z.object({
13
+ rating: zod_1.z.number().min(1).max(5),
14
+ comment: zod_1.z.string(),
15
+ });
16
+ let FeedbackFormDocument = class FeedbackFormDocument {
17
+ rating;
18
+ comment;
19
+ };
20
+ exports.FeedbackFormDocument = FeedbackFormDocument;
21
+ exports.FeedbackFormDocument = FeedbackFormDocument = __decorate([
22
+ (0, common_1.Document)({
23
+ schema: exports.FeedbackFormDocumentSchema,
24
+ widget: './feedback-form-document.yaml',
25
+ })
26
+ ], FeedbackFormDocument);
27
+ //# sourceMappingURL=feedback-form-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-form-document.js","sourceRoot":"","sources":["../../../src/workflows/inline-form/feedback-form-document.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6BAAwB;AACxB,8CAA6C;AAEhC,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAMI,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,MAAM,CAAS;IACf,OAAO,CAAS;CACjB,CAAA;AAHY,oDAAoB;+BAApB,oBAAoB;IAJhC,IAAA,iBAAQ,EAAC;QACR,MAAM,EAAE,kCAA0B;QAClC,MAAM,EAAE,+BAA+B;KACxC,CAAC;GACW,oBAAoB,CAGhC"}
@@ -0,0 +1,13 @@
1
+ widget: form
2
+ options:
3
+ properties:
4
+ rating:
5
+ title: Rating (1–5)
6
+ widget: number
7
+ comment:
8
+ title: Comment
9
+ widget: textarea
10
+ actions:
11
+ - type: button
12
+ transition: submitFeedback
13
+ label: Submit Feedback
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ import { BaseWorkflow } from '@loopstack/common';
3
+ import type { TransitionInput } from '@loopstack/common';
4
+ import { FeedbackFormDocumentSchema } from './feedback-form-document.js';
5
+ type FeedbackPayload = z.infer<typeof FeedbackFormDocumentSchema>;
6
+ export declare class InlineFormExampleWorkflow extends BaseWorkflow {
7
+ showForm(_state: Record<string, unknown>): Promise<void>;
8
+ submitFeedback(state: Record<string, unknown>, input: TransitionInput<FeedbackPayload>): Promise<void>;
9
+ }
10
+ export {};
11
+ //# sourceMappingURL=inline-form-example.workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-form-example.workflow.d.ts","sourceRoot":"","sources":["../../../src/workflows/inline-form/inline-form-example.workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAyC,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAwB,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAE/F,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAElE,qBAMa,yBAA0B,SAAQ,YAAY;IAEnD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUxC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,eAAe,CAAC;CAW7F"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.InlineFormExampleWorkflow = void 0;
13
+ const common_1 = require("@loopstack/common");
14
+ const feedback_form_document_js_1 = require("./feedback-form-document.js");
15
+ let InlineFormExampleWorkflow = class InlineFormExampleWorkflow extends common_1.BaseWorkflow {
16
+ async showForm(_state) {
17
+ await this.documentStore.save(feedback_form_document_js_1.FeedbackFormDocument, { rating: 3, comment: '' }, { key: 'feedback' });
18
+ }
19
+ async submitFeedback(state, input) {
20
+ const payload = input.data;
21
+ await this.documentStore.save(feedback_form_document_js_1.FeedbackFormDocument, payload, { key: 'feedback' });
22
+ await this.documentStore.save(common_1.MessageDocument, {
23
+ role: 'assistant',
24
+ text: `Thanks for your feedback! Rating: ${payload.rating}/5. Comment: ${payload.comment}`,
25
+ });
26
+ this.setResult({ feedback: payload });
27
+ }
28
+ };
29
+ exports.InlineFormExampleWorkflow = InlineFormExampleWorkflow;
30
+ __decorate([
31
+ (0, common_1.Transition)({ to: 'waiting_for_feedback' }),
32
+ __metadata("design:type", Function),
33
+ __metadata("design:paramtypes", [Object]),
34
+ __metadata("design:returntype", Promise)
35
+ ], InlineFormExampleWorkflow.prototype, "showForm", null);
36
+ __decorate([
37
+ (0, common_1.Transition)({
38
+ from: 'waiting_for_feedback',
39
+ to: 'end',
40
+ wait: true,
41
+ schema: feedback_form_document_js_1.FeedbackFormDocumentSchema,
42
+ }),
43
+ __metadata("design:type", Function),
44
+ __metadata("design:paramtypes", [Object, Object]),
45
+ __metadata("design:returntype", Promise)
46
+ ], InlineFormExampleWorkflow.prototype, "submitFeedback", null);
47
+ exports.InlineFormExampleWorkflow = InlineFormExampleWorkflow = __decorate([
48
+ (0, common_1.Workflow)({
49
+ title: 'HITL - Inline Form Example',
50
+ description: 'Predefined-workflow HITL: the workflow owns a custom Document with a form widget. ' +
51
+ 'The form button triggers a wait:true transition on the same workflow with the form payload as its schema.',
52
+ })
53
+ ], InlineFormExampleWorkflow);
54
+ //# sourceMappingURL=inline-form-example.workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-form-example.workflow.js","sourceRoot":"","sources":["../../../src/workflows/inline-form/inline-form-example.workflow.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,8CAAwF;AAExF,2EAA+F;AAUxF,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,qBAAY;IAEnD,AAAN,KAAK,CAAC,QAAQ,CAAC,MAA+B;QAC5C,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gDAAoB,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IACvG,CAAC;IAQK,AAAN,KAAK,CAAC,cAAc,CAAC,KAA8B,EAAE,KAAuC;QAC1F,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gDAAoB,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;QAElF,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAe,EAAE;YAC7C,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,qCAAqC,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,OAAO,EAAE;SAC3F,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAwC,CAAC,CAAC;IAC9E,CAAC;CACF,CAAA;AAvBY,8DAAyB;AAE9B;IADL,IAAA,mBAAU,EAAC,EAAE,EAAE,EAAE,sBAAsB,EAAE,CAAC;;;;yDAG1C;AAQK;IANL,IAAA,mBAAU,EAAC;QACV,IAAI,EAAE,sBAAsB;QAC5B,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,sDAA0B;KACnC,CAAC;;;;+DAWD;oCAtBU,yBAAyB;IANrC,IAAA,iBAAQ,EAAC;QACR,KAAK,EAAE,4BAA4B;QACnC,WAAW,EACT,oFAAoF;YACpF,2GAA2G;KAC9G,CAAC;GACW,yBAAyB,CAuBrC"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ export declare const MeetingNotesDocumentSchema: z.ZodObject<{
3
+ text: z.ZodString;
4
+ }, z.core.$strip>;
5
+ export declare class MeetingNotesDocument {
6
+ text: string;
7
+ }
8
+ //# sourceMappingURL=meeting-notes-document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-notes-document.d.ts","sourceRoot":"","sources":["../../../../src/workflows/meeting-notes/documents/meeting-notes-document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AAEH,qBAIa,oBAAoB;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MeetingNotesDocument = exports.MeetingNotesDocumentSchema = void 0;
10
+ const zod_1 = require("zod");
11
+ const common_1 = require("@loopstack/common");
12
+ exports.MeetingNotesDocumentSchema = zod_1.z.object({
13
+ text: zod_1.z.string(),
14
+ });
15
+ let MeetingNotesDocument = class MeetingNotesDocument {
16
+ text;
17
+ };
18
+ exports.MeetingNotesDocument = MeetingNotesDocument;
19
+ exports.MeetingNotesDocument = MeetingNotesDocument = __decorate([
20
+ (0, common_1.Document)({
21
+ schema: exports.MeetingNotesDocumentSchema,
22
+ widget: './meeting-notes-document.yaml',
23
+ })
24
+ ], MeetingNotesDocument);
25
+ //# sourceMappingURL=meeting-notes-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-notes-document.js","sourceRoot":"","sources":["../../../../src/workflows/meeting-notes/documents/meeting-notes-document.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6BAAwB;AACxB,8CAA6C;AAEhC,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAMI,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,IAAI,CAAS;CACd,CAAA;AAFY,oDAAoB;+BAApB,oBAAoB;IAJhC,IAAA,iBAAQ,EAAC;QACR,MAAM,EAAE,kCAA0B;QAClC,MAAM,EAAE,+BAA+B;KACxC,CAAC;GACW,oBAAoB,CAEhC"}
@@ -0,0 +1,10 @@
1
+ widget: form
2
+ options:
3
+ properties:
4
+ text:
5
+ title: Text
6
+ widget: textarea
7
+ actions:
8
+ - type: button
9
+ transition: userResponse
10
+ label: 'Optimize Notes'
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ export declare const OptimizedMeetingNotesDocumentSchema: z.ZodObject<{
3
+ date: z.ZodString;
4
+ summary: z.ZodString;
5
+ participants: z.ZodArray<z.ZodString>;
6
+ decisions: z.ZodArray<z.ZodString>;
7
+ actionItems: z.ZodArray<z.ZodString>;
8
+ }, z.core.$strip>;
9
+ export declare class OptimizedNotesDocument {
10
+ date: string;
11
+ summary: string;
12
+ participants: string[];
13
+ decisions: string[];
14
+ actionItems: string[];
15
+ }
16
+ //# sourceMappingURL=optimized-notes-document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimized-notes-document.d.ts","sourceRoot":"","sources":["../../../../src/workflows/meeting-notes/documents/optimized-notes-document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,mCAAmC;;;;;;iBAM9C,CAAC;AAEH,qBAIa,sBAAsB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OptimizedNotesDocument = exports.OptimizedMeetingNotesDocumentSchema = void 0;
10
+ const zod_1 = require("zod");
11
+ const common_1 = require("@loopstack/common");
12
+ exports.OptimizedMeetingNotesDocumentSchema = zod_1.z.object({
13
+ date: zod_1.z.string(),
14
+ summary: zod_1.z.string(),
15
+ participants: zod_1.z.array(zod_1.z.string()),
16
+ decisions: zod_1.z.array(zod_1.z.string()),
17
+ actionItems: zod_1.z.array(zod_1.z.string()),
18
+ });
19
+ let OptimizedNotesDocument = class OptimizedNotesDocument {
20
+ date;
21
+ summary;
22
+ participants;
23
+ decisions;
24
+ actionItems;
25
+ };
26
+ exports.OptimizedNotesDocument = OptimizedNotesDocument;
27
+ exports.OptimizedNotesDocument = OptimizedNotesDocument = __decorate([
28
+ (0, common_1.Document)({
29
+ schema: exports.OptimizedMeetingNotesDocumentSchema,
30
+ widget: './optimized-notes-document.yaml',
31
+ })
32
+ ], OptimizedNotesDocument);
33
+ //# sourceMappingURL=optimized-notes-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimized-notes-document.js","sourceRoot":"","sources":["../../../../src/workflows/meeting-notes/documents/optimized-notes-document.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6BAAwB;AACxB,8CAA6C;AAEhC,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;IACjC,IAAI,CAAS;IACb,OAAO,CAAS;IAChB,YAAY,CAAW;IACvB,SAAS,CAAW;IACpB,WAAW,CAAW;CACvB,CAAA;AANY,wDAAsB;iCAAtB,sBAAsB;IAJlC,IAAA,iBAAQ,EAAC;QACR,MAAM,EAAE,2CAAmC;QAC3C,MAAM,EAAE,iCAAiC;KAC1C,CAAC;GACW,sBAAsB,CAMlC"}
@@ -0,0 +1,33 @@
1
+ widget: form
2
+ options:
3
+ order:
4
+ - date
5
+ - summary
6
+ - participants
7
+ - decisions
8
+ - actionItems
9
+ properties:
10
+ date:
11
+ title: Date
12
+ summary:
13
+ title: Summary
14
+ widget: textarea
15
+ participants:
16
+ title: Participants
17
+ collapsed: true
18
+ items:
19
+ title: Participant
20
+ decisions:
21
+ title: Decisions
22
+ collapsed: true
23
+ items:
24
+ title: Decision
25
+ actionItems:
26
+ title: Action Items
27
+ collapsed: true
28
+ items:
29
+ title: Action Item
30
+ actions:
31
+ - type: button
32
+ transition: confirm
33
+ label: 'Confirm'
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import { BaseWorkflow } from '@loopstack/common';
3
+ import type { RunContext, TransitionInput } from '@loopstack/common';
4
+ import { LlmGenerateObjectTool } from '@loopstack/llm-provider-module';
5
+ import { MeetingNotesDocumentSchema } from './documents/meeting-notes-document';
6
+ import { OptimizedMeetingNotesDocumentSchema } from './documents/optimized-notes-document';
7
+ interface MeetingNotesState {
8
+ meetingNotes?: z.infer<typeof MeetingNotesDocumentSchema>;
9
+ optimizedNotes?: z.infer<typeof OptimizedMeetingNotesDocumentSchema>;
10
+ }
11
+ declare const MeetingNotesArgsSchema: z.ZodObject<{
12
+ inputText: z.ZodDefault<z.ZodString>;
13
+ }, z.core.$strip>;
14
+ type MeetingNotesArgs = z.infer<typeof MeetingNotesArgsSchema>;
15
+ export declare class MeetingNotesExampleWorkflow extends BaseWorkflow<MeetingNotesArgs> {
16
+ private readonly llmGenerateObject;
17
+ constructor(llmGenerateObject: LlmGenerateObjectTool);
18
+ createForm(state: MeetingNotesState, ctx: RunContext<MeetingNotesArgs>): Promise<void>;
19
+ userResponse(state: MeetingNotesState, input: TransitionInput<z.infer<typeof MeetingNotesDocumentSchema>>): Promise<void>;
20
+ optimizeNotes(state: MeetingNotesState): Promise<void>;
21
+ confirm(state: MeetingNotesState, input: TransitionInput<z.infer<typeof OptimizedMeetingNotesDocumentSchema>>): Promise<void>;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=meeting-notes-example.workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-notes-example.workflow.d.ts","sourceRoot":"","sources":["../../../src/workflows/meeting-notes/meeting-notes-example.workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAwB,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAwB,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AACtG,OAAO,EAAE,mCAAmC,EAA0B,MAAM,sCAAsC,CAAC;AAEnH,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;IAC1D,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;CACtE;AAED,QAAA,MAAM,sBAAsB;;iBAM1B,CAAC;AAEH,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE/D,qBAKa,2BAA4B,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IACjE,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,qBAAqB;IAK/D,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,CAAC,gBAAgB,CAAC;IAStE,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;IAMzG,aAAa,CAAC,KAAK,EAAE,iBAAiB;IAmBtC,OAAO,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;CAMpH"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MeetingNotesExampleWorkflow = void 0;
13
+ const node_path_1 = require("node:path");
14
+ const zod_1 = require("zod");
15
+ const common_1 = require("@loopstack/common");
16
+ const llm_provider_module_1 = require("@loopstack/llm-provider-module");
17
+ const meeting_notes_document_1 = require("./documents/meeting-notes-document");
18
+ const optimized_notes_document_1 = require("./documents/optimized-notes-document");
19
+ const MeetingNotesArgsSchema = zod_1.z.object({
20
+ inputText: zod_1.z
21
+ .string()
22
+ .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'),
23
+ });
24
+ let MeetingNotesExampleWorkflow = class MeetingNotesExampleWorkflow extends common_1.BaseWorkflow {
25
+ llmGenerateObject;
26
+ constructor(llmGenerateObject) {
27
+ super();
28
+ this.llmGenerateObject = llmGenerateObject;
29
+ }
30
+ async createForm(state, ctx) {
31
+ await this.documentStore.save(meeting_notes_document_1.MeetingNotesDocument, { text: `Unstructured Notes:\n\n${ctx.args.inputText}` }, { key: 'input' });
32
+ }
33
+ async userResponse(state, input) {
34
+ const result = await this.documentStore.save(meeting_notes_document_1.MeetingNotesDocument, input.data, { key: 'input' });
35
+ this.assignState({ meetingNotes: result.content });
36
+ }
37
+ async optimizeNotes(state) {
38
+ const result = await this.llmGenerateObject.call({
39
+ outputSchema: optimized_notes_document_1.OptimizedMeetingNotesDocumentSchema,
40
+ prompt: this.render((0, node_path_1.join)(__dirname, 'templates', 'extract-notes.md'), {
41
+ text: state.meetingNotes?.text,
42
+ }),
43
+ }, { config: { provider: 'claude', model: 'claude-sonnet-4-6' } });
44
+ await this.documentStore.save(optimized_notes_document_1.OptimizedNotesDocument, result.data.data, { key: 'final' });
45
+ }
46
+ async confirm(state, input) {
47
+ const result = await this.documentStore.save(optimized_notes_document_1.OptimizedNotesDocument, input.data, { key: 'final' });
48
+ this.setResult({
49
+ optimizedNotes: result.content,
50
+ });
51
+ }
52
+ };
53
+ exports.MeetingNotesExampleWorkflow = MeetingNotesExampleWorkflow;
54
+ __decorate([
55
+ (0, common_1.Transition)({ to: 'waiting_for_response' }),
56
+ __metadata("design:type", Function),
57
+ __metadata("design:paramtypes", [Object, Object]),
58
+ __metadata("design:returntype", Promise)
59
+ ], MeetingNotesExampleWorkflow.prototype, "createForm", null);
60
+ __decorate([
61
+ (0, common_1.Transition)({ from: 'waiting_for_response', to: 'response_received', wait: true, schema: meeting_notes_document_1.MeetingNotesDocumentSchema }),
62
+ __metadata("design:type", Function),
63
+ __metadata("design:paramtypes", [Object, Object]),
64
+ __metadata("design:returntype", Promise)
65
+ ], MeetingNotesExampleWorkflow.prototype, "userResponse", null);
66
+ __decorate([
67
+ (0, common_1.Transition)({ from: 'response_received', to: 'notes_optimized' }),
68
+ __metadata("design:type", Function),
69
+ __metadata("design:paramtypes", [Object]),
70
+ __metadata("design:returntype", Promise)
71
+ ], MeetingNotesExampleWorkflow.prototype, "optimizeNotes", null);
72
+ __decorate([
73
+ (0, common_1.Transition)({ from: 'notes_optimized', to: 'end', wait: true, schema: optimized_notes_document_1.OptimizedMeetingNotesDocumentSchema }),
74
+ __metadata("design:type", Function),
75
+ __metadata("design:paramtypes", [Object, Object]),
76
+ __metadata("design:returntype", Promise)
77
+ ], MeetingNotesExampleWorkflow.prototype, "confirm", null);
78
+ exports.MeetingNotesExampleWorkflow = MeetingNotesExampleWorkflow = __decorate([
79
+ (0, common_1.Workflow)({
80
+ title: 'HITL - Meeting Notes Example',
81
+ description: 'A demo workflow showing how to use AI to structure meeting notes, with HITL review steps.',
82
+ schema: MeetingNotesArgsSchema,
83
+ }),
84
+ __metadata("design:paramtypes", [llm_provider_module_1.LlmGenerateObjectTool])
85
+ ], MeetingNotesExampleWorkflow);
86
+ //# sourceMappingURL=meeting-notes-example.workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-notes-example.workflow.js","sourceRoot":"","sources":["../../../src/workflows/meeting-notes/meeting-notes-example.workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ Extract all information from the provided meeting notes into the structured document.
2
+
3
+ <Meeting Notes>
4
+ {{text}}
5
+ </Meeting Notes>
@@ -0,0 +1,8 @@
1
+ import { BaseWorkflow } from '@loopstack/common';
2
+ import type { TransitionInput } from '@loopstack/common';
3
+ export declare class PromptInputChatExampleWorkflow extends BaseWorkflow {
4
+ greet(_state: Record<string, unknown>): Promise<void>;
5
+ userMessage(state: Record<string, unknown>, input: TransitionInput<string>): Promise<void>;
6
+ loop(_state: Record<string, unknown>): void;
7
+ }
8
+ //# sourceMappingURL=prompt-input-chat-example.workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-input-chat-example.workflow.d.ts","sourceRoot":"","sources":["../../../src/workflows/prompt-input-chat/prompt-input-chat-example.workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAyC,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,qBAOa,8BAA+B,SAAQ,YAAY;IAExD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQrC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC;IAOhF,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CACrC"}