@bpmnkit/casen-worker-ai 0.1.8 → 0.1.9

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 (42) hide show
  1. package/README.md +1 -0
  2. package/package.json +9 -3
  3. package/.turbo/turbo-build.log +0 -4
  4. package/CHANGELOG.md +0 -65
  5. package/dist/config.d.ts.map +0 -1
  6. package/dist/config.js.map +0 -1
  7. package/dist/config.test.d.ts.map +0 -1
  8. package/dist/config.test.js.map +0 -1
  9. package/dist/index.d.ts.map +0 -1
  10. package/dist/index.js.map +0 -1
  11. package/dist/llm.d.ts.map +0 -1
  12. package/dist/llm.js.map +0 -1
  13. package/dist/operations/classify.d.ts.map +0 -1
  14. package/dist/operations/classify.js.map +0 -1
  15. package/dist/operations/classify.test.d.ts.map +0 -1
  16. package/dist/operations/classify.test.js.map +0 -1
  17. package/dist/operations/decide.d.ts.map +0 -1
  18. package/dist/operations/decide.js.map +0 -1
  19. package/dist/operations/decide.test.d.ts.map +0 -1
  20. package/dist/operations/decide.test.js.map +0 -1
  21. package/dist/operations/extract.d.ts.map +0 -1
  22. package/dist/operations/extract.js.map +0 -1
  23. package/dist/operations/extract.test.d.ts.map +0 -1
  24. package/dist/operations/extract.test.js.map +0 -1
  25. package/dist/operations/summarize.d.ts.map +0 -1
  26. package/dist/operations/summarize.js.map +0 -1
  27. package/dist/operations/summarize.test.d.ts.map +0 -1
  28. package/dist/operations/summarize.test.js.map +0 -1
  29. package/src/config.test.ts +0 -40
  30. package/src/config.ts +0 -27
  31. package/src/index.ts +0 -54
  32. package/src/llm.ts +0 -67
  33. package/src/operations/classify.test.ts +0 -101
  34. package/src/operations/classify.ts +0 -85
  35. package/src/operations/decide.test.ts +0 -82
  36. package/src/operations/decide.ts +0 -70
  37. package/src/operations/extract.test.ts +0 -80
  38. package/src/operations/extract.ts +0 -80
  39. package/src/operations/summarize.test.ts +0 -48
  40. package/src/operations/summarize.ts +0 -68
  41. package/tsconfig.json +0 -10
  42. package/tsconfig.tsbuildinfo +0 -1
package/README.md CHANGED
@@ -170,6 +170,7 @@ Add boundary events to your service tasks to handle AI failures gracefully:
170
170
  | [`@bpmnkit/patterns`](https://www.npmjs.com/package/@bpmnkit/patterns) | Domain process patterns for BPMNKit AIKit |
171
171
  | [`@bpmnkit/reebe-wasm`](https://www.npmjs.com/package/@bpmnkit/reebe-wasm) | WebAssembly BPMN engine for browser simulation |
172
172
  | [`@bpmnkit/worker-client`](https://www.npmjs.com/package/@bpmnkit/worker-client) | Thin Zeebe REST client for standalone workers |
173
+ | [`@bpmnkit/user-tasks`](https://www.npmjs.com/package/@bpmnkit/user-tasks) | Embeddable user task widget for Camunda 8 |
173
174
  | [`@bpmnkit/cli-sdk`](https://www.npmjs.com/package/@bpmnkit/cli-sdk) | Plugin authoring SDK for the casen CLI |
174
175
  | [`@bpmnkit/create-casen-plugin`](https://www.npmjs.com/package/@bpmnkit/create-casen-plugin) | Scaffold a new casen CLI plugin in seconds |
175
176
  | [`@bpmnkit/casen-report`](https://www.npmjs.com/package/@bpmnkit/casen-report) | HTML reports from Camunda 8 incident and SLA data |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bpmnkit/casen-worker-ai",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "private": false,
5
5
  "description": "AI task worker plugin for casen — classify, summarize, extract, and decide using Claude",
6
6
  "type": "module",
@@ -11,6 +11,12 @@
11
11
  "types": "./dist/index.d.ts"
12
12
  }
13
13
  },
14
+ "files": [
15
+ "LICENSE",
16
+ "README.md",
17
+ "dist/**/*.js",
18
+ "dist/**/*.d.ts"
19
+ ],
14
20
  "keywords": [
15
21
  "casen-plugin",
16
22
  "casen-worker",
@@ -56,10 +62,10 @@
56
62
  },
57
63
  "dependencies": {
58
64
  "@anthropic-ai/sdk": "^0.40.0",
59
- "@bpmnkit/cli-sdk": "0.0.9"
65
+ "@bpmnkit/cli-sdk": "0.0.10"
60
66
  },
61
67
  "devDependencies": {
62
- "@bpmnkit/cli-sdk": "0.0.9"
68
+ "@bpmnkit/cli-sdk": "0.0.10"
63
69
  },
64
70
  "scripts": {
65
71
  "build": "tsc",
@@ -1,4 +0,0 @@
1
-
2
- > @bpmnkit/casen-worker-ai@0.1.8 build /home/runner/work/monorepo/monorepo/plugins-cli/casen-worker-ai
3
- > tsc
4
-
package/CHANGELOG.md DELETED
@@ -1,65 +0,0 @@
1
- # @bpmnkit/casen-worker-ai
2
-
3
- ## 0.1.8
4
-
5
- ### Patch Changes
6
-
7
- - 00a65f5: Four packaging bugs found by opening the published tarballs and installing them.
8
- - `proxy`: declared `exports["."].types` while `files` listed only `dist/**/*.js`, so the
9
- declarations were built and never packed. It now ships its `.d.ts` files.
10
- - `plugins`: `dist/token-highlight/index.js` imported `./css` without an extension, which Node
11
- ESM does not resolve — `@bpmnkit/plugins/token-highlight` threw on import, and
12
- `@bpmnkit/operate` threw with it.
13
- - `casen-worker-http` and `casen-worker-ai`: import `@bpmnkit/cli-sdk` and declared no
14
- dependencies at all, so npm never installed it and importing them failed.
15
- - `casen-report`: the same undeclared `@bpmnkit/cli-sdk` in its `.d.ts`, plus an undeclared
16
- `@bpmnkit/api`, so its published types did not resolve.
17
-
18
- ## 0.1.7
19
-
20
- ### Patch Changes
21
-
22
- - 9cd1942: Improvements around AI integration
23
-
24
- ## 0.1.6
25
-
26
- ### Patch Changes
27
-
28
- - dcf850a: Improvements
29
- - d6d1860: Several bugfixes and feature implementations
30
-
31
- ## 0.1.5
32
-
33
- ### Patch Changes
34
-
35
- - [#89](https://github.com/bpmnkit/monorepo/pull/89) [`d576e97`](https://github.com/bpmnkit/monorepo/commit/d576e97736b9056c7e6c8cbac585957dc4cd297c) Thanks [@urbanisierung](https://github.com/urbanisierung)! - docs
36
-
37
- ## 0.1.4
38
-
39
- ### Patch Changes
40
-
41
- - [#81](https://github.com/bpmnkit/monorepo/pull/81) [`d79affd`](https://github.com/bpmnkit/monorepo/commit/d79affda9b61f5edc400e00b23c54ab037f9ce40) Thanks [@urbanisierung](https://github.com/urbanisierung)! - AI preparation
42
-
43
- ## 0.1.3
44
-
45
- ### Patch Changes
46
-
47
- - [`802e1dd`](https://github.com/bpmnkit/monorepo/commit/802e1dde53dfda07371e6a83dcf0e05e2650d0a2) Thanks [@urbanisierung](https://github.com/urbanisierung)! - Minor fixes.
48
-
49
- ## 0.1.2
50
-
51
- ### Patch Changes
52
-
53
- - [#76](https://github.com/bpmnkit/monorepo/pull/76) [`8d1a978`](https://github.com/bpmnkit/monorepo/commit/8d1a978e0b8c321106d95226134cbba6433ab4af) Thanks [@urbanisierung](https://github.com/urbanisierung)! - AI preparation
54
-
55
- ## 0.1.1
56
-
57
- ### Patch Changes
58
-
59
- - [#74](https://github.com/bpmnkit/monorepo/pull/74) [`e356b98`](https://github.com/bpmnkit/monorepo/commit/e356b98a6b281f825e757cb6e480e50369789d08) Thanks [@urbanisierung](https://github.com/urbanisierung)! - Test suites, simulation mode, improved reebe-wasm
60
-
61
- ## 0.1.0
62
-
63
- ### Minor Changes
64
-
65
- - Initial release — AI task worker plugin supporting classify, summarize, extract, and decide operations via Claude.
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,cAAc,CAc9C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACd,0EAA0E;YACzE,uCAAuC,CACxC,CAAA;IACF,CAAC;IACD,OAAO;QACN,MAAM;QACN,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,2BAA2B;QAC1D,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,CAAC;QACtD,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC;KACvD,CAAA;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAEnC,UAAU,CAAC,GAAG,EAAE;QACf,KAAK,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;YACvF,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACzC,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACpD,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,SAAS,CAAA;QACzC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAA;QAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAClC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;QACnD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,SAAS,CAAA;QACzC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,iBAAiB,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAA;QAClC,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,OAAO,CAAA;QACnC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAA;QAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACzC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,kBAAkB,CAAA;AAOxE,QAAA,MAAM,MAAM,EAAE,WA4Cb,CAAA;AAED,eAAe,MAAM,CAAA"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,MAAM,MAAM,GAAgB;IAC3B,EAAE,EAAE,6BAA6B;IACjC,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE;QACP;YACC,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,+DAA+D;YAC5E,QAAQ,EAAE;gBACT,mBAAmB,CAAC;oBACnB,OAAO,EAAE,yBAAyB;oBAClC,WAAW,EAAE,gDAAgD;oBAC7D,gBAAgB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE;oBACjF,KAAK,CAAC,UAAU,CAAC,GAAG;wBACnB,OAAO,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAA;oBACtC,CAAC;iBACD,CAAC;gBACF,mBAAmB,CAAC;oBACnB,OAAO,EAAE,0BAA0B;oBACnC,WAAW,EAAE,4CAA4C;oBACzD,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;oBAC/C,KAAK,CAAC,UAAU,CAAC,GAAG;wBACnB,OAAO,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAA;oBACvC,CAAC;iBACD,CAAC;gBACF,mBAAmB,CAAC;oBACnB,OAAO,EAAE,wBAAwB;oBACjC,WAAW,EAAE,kDAAkD;oBAC/D,gBAAgB,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;oBACtD,KAAK,CAAC,UAAU,CAAC,GAAG;wBACnB,OAAO,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAA;oBACrC,CAAC;iBACD,CAAC;gBACF,mBAAmB,CAAC;oBACnB,OAAO,EAAE,uBAAuB;oBAChC,WAAW,EAAE,2EAA2E;oBACxF,gBAAgB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;oBACnE,KAAK,CAAC,UAAU,CAAC,GAAG;wBACnB,OAAO,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAA;oBACpC,CAAC;iBACD,CAAC;aACF;SACD;KACD;CACD,CAAA;AAED,eAAe,MAAM,CAAA"}
package/dist/llm.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,qBAAa,cAAe,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI3B;AAED;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC5B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,GACpB,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAMpD"}
package/dist/llm.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AAGzC,MAAM,OAAO,cAAe,SAAQ,KAAK;IACxC,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC7B,CAAC;CACD;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC5B,YAAoB,EACpB,WAAmB,EACnB,MAAsB;IAEtB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,SAAS;QACzB,UAAU,EAAE,CAAC,EAAE,4CAA4C;KAC3D,CAAC,CAAA;IAEF,IAAI,OAA0B,CAAA;IAC9B,IAAI,CAAC;QACJ,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;SAClD,CAAC,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IACC,GAAG,YAAY,SAAS,CAAC,cAAc;YACvC,GAAG,YAAY,SAAS,CAAC,yBAAyB,EACjD,CAAC;YACF,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACtC,CAAC;QACD,IAAI,GAAG,YAAY,SAAS,CAAC,mBAAmB,EAAE,CAAC;YAClD,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACtC,CAAC;QACD,MAAM,GAAG,CAAA;IACV,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAA;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAI,IAAY;IAChD,MAAM,QAAQ,GAAG,IAAI;SACnB,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,IAAI,EAAE,CAAA;IACR,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAM,CAAA;AACjC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/operations/classify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAelD;;;;;;;;;;;GAWG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAwD/F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/operations/classify.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAQtE,MAAM,aAAa,GAAG;;;;kDAI4B,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAc,EAAE,MAAsB;IACpE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IAC/C,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAA;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO;YACN,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,kBAAkB;YAC7B,YAAY,EAAE,iEAAiE;SAC/E,CAAA;IACF,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1F,MAAM,WAAW,GAAG,uBAAuB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,OAAO,0BAA0B,KAAK,EAAE,CAAA;IAEhH,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACJ,GAAG,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAA;QACxF,CAAC;QACD,OAAO;YACN,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC9D,CAAA;IACF,CAAC;IAED,IAAI,MAAwB,CAAA;IAC5B,IAAI,CAAC;QACJ,MAAM,GAAG,iBAAiB,CAAmB,GAAG,CAAC,CAAA;IAClD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO;YACN,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,qCAAqC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;SACtE,CAAA;IACF,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,OAAO;YACN,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,qBAAqB;YAChC,YAAY,EAAE,4BAA4B,MAAM,CAAC,QAAQ,uCAAuC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;SAC5H,CAAA;IACF,CAAC;IAED,OAAO;QACN,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE;YACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC;KACD,CAAA;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"classify.test.d.ts","sourceRoot":"","sources":["../../src/operations/classify.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"classify.test.js","sourceRoot":"","sources":["../../src/operations/classify.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"decide.d.ts","sourceRoot":"","sources":["../../src/operations/decide.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAelD;;;;;;;;;;;GAWG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAyC7F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"decide.js","sourceRoot":"","sources":["../../src/operations/decide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAQtE,MAAM,aAAa,GAAG;;;;yFAImE,CAAA;AAEzF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAc,EAAE,MAAsB;IAClE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAChG,MAAM,WAAW,GAAG,aAAa,QAAQ,iBAAiB,OAAO,GAAG,MAAM,EAAE,CAAA;IAE5E,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACJ,GAAG,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAA;QACxF,CAAC;QACD,OAAO;YACN,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC9D,CAAA;IACF,CAAC;IAED,IAAI,MAAsB,CAAA;IAC1B,IAAI,CAAC;QACJ,MAAM,GAAG,iBAAiB,CAAiB,GAAG,CAAC,CAAA;IAChD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO;YACN,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,qCAAqC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;SACtE,CAAA;IACF,CAAC;IAED,OAAO;QACN,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE;YACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC;KACD,CAAA;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"decide.test.d.ts","sourceRoot":"","sources":["../../src/operations/decide.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"decide.test.js","sourceRoot":"","sources":["../../src/operations/decide.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,KAAK,SAAS,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,GAAG,GAAmB;IAC3B,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;CACf,CAAA;AAED,SAAS,OAAO,CAAC,SAAkC;IAClD,OAAO;QACN,MAAM,EAAE,GAAG;QACX,mBAAmB,EAAE,IAAI;QACzB,SAAS,EAAE,IAAI;QACf,kBAAkB,EAAE,IAAI;QACxB,SAAS;KACT,CAAA;AACF,CAAC;AAED,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACpD,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAC/C,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CACtF,CAAA;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAC1B,OAAO,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,EAC/E,GAAG,CACH,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/C,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACrD,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAC/C,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CACtF,CAAA;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QAC9F,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC9C,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC/C,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,yCAAyC,CAAC,CAAA;QAC3F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QACvF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAChF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC/C,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;QACrF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QACvF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,GAAG,GAAG,EAAE;aACZ,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC;aAC3B,iBAAiB,CACjB,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CACpF,CAAA;QACF,MAAM,MAAM,CACX,OAAO,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,uBAAuB;SAC/B,CAAC,EACF,GAAG,CACH,CAAA;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,IAAI,IAAI,EAAE,CAAA;QAClC,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/operations/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAelD;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAmD9F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/operations/extract.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAOtE,MAAM,aAAa,GAAG;;;;;kDAK4B,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAc,EAAE,MAAsB;IACnE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAA;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO;YACN,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,kBAAkB;YAC7B,YAAY,EAAE,wEAAwE;SACtF,CAAA;IACF,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAA;IACnC,MAAM,UAAU,GACf,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7D,CAAC,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAC3C,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,WAAW,GAAG,sBAAsB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,cAAc,KAAK,EAAE,CAAA;IAElG,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACJ,GAAG,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAA;QACxF,CAAC;QACD,OAAO;YACN,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC9D,CAAA;IACF,CAAC;IAED,IAAI,MAAuB,CAAA;IAC3B,IAAI,CAAC;QACJ,MAAM,GAAG,iBAAiB,CAAkB,GAAG,CAAC,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO;YACN,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,qCAAqC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;SACtE,CAAA;IACF,CAAC;IAED,OAAO;QACN,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE;YACV,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;YACzC,OAAO,EAAE,MAAM,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC;KACD,CAAA;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract.test.d.ts","sourceRoot":"","sources":["../../src/operations/extract.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract.test.js","sourceRoot":"","sources":["../../src/operations/extract.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../src/operations/summarize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAclD;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAwChG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../src/operations/summarize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAOtE,MAAM,aAAa,GAAG;;;;kDAI4B,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAc,EAAE,MAAsB;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,WAAW,CAAC,CAAA;IACxD,MAAM,WAAW,GAAG,mCAAmC,KAAK,qBAAqB,QAAQ,cAAc,KAAK,EAAE,CAAA;IAE9G,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACJ,GAAG,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAA;QACxF,CAAC;QACD,OAAO;YACN,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC9D,CAAA;IACF,CAAC;IAED,IAAI,MAAyB,CAAA;IAC7B,IAAI,CAAC;QACJ,MAAM,GAAG,iBAAiB,CAAoB,GAAG,CAAC,CAAA;IACnD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO;YACN,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,qCAAqC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;SACtE,CAAA;IACF,CAAC;IAED,OAAO;QACN,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,KAAK;YACrB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC;KACD,CAAA;AACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"summarize.test.d.ts","sourceRoot":"","sources":["../../src/operations/summarize.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"summarize.test.js","sourceRoot":"","sources":["../../src/operations/summarize.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,KAAK,SAAS,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,GAAG,GAAmB;IAC3B,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;CACf,CAAA;AAED,SAAS,OAAO,CAAC,SAAkC;IAClD,OAAO;QACN,MAAM,EAAE,GAAG;QACX,mBAAmB,EAAE,IAAI;QACzB,SAAS,EAAE,IAAI;QACf,kBAAkB,EAAE,IAAI;QACxB,SAAS;KACT,CAAA;AACF,CAAC;AAED,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC5D,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAC/C,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAC7D,CAAA;QACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QAC5E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;YACzD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC3C,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC/C,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,iCAAiC,CAAC,CAAA;QACnF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QAC/D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAChF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC/C,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;QACzF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QAC/D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,40 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it } from "vitest"
2
- import { resolveConfig } from "./config.js"
3
-
4
- describe("resolveConfig", () => {
5
- const original = { ...process.env }
6
-
7
- beforeEach(() => {
8
- for (const key of ["ANTHROPIC_API_KEY", "AI_MODEL", "AI_MAX_TOKENS", "AI_TIMEOUT_MS"]) {
9
- Reflect.deleteProperty(process.env, key)
10
- }
11
- })
12
-
13
- afterEach(() => {
14
- Object.assign(process.env, original)
15
- })
16
-
17
- it("throws when ANTHROPIC_API_KEY is not set", () => {
18
- expect(() => resolveConfig()).toThrow("ANTHROPIC_API_KEY")
19
- })
20
-
21
- it("returns defaults when only API key is set", () => {
22
- process.env.ANTHROPIC_API_KEY = "sk-test"
23
- const cfg = resolveConfig()
24
- expect(cfg.apiKey).toBe("sk-test")
25
- expect(cfg.model).toBe("claude-3-5-haiku-20241022")
26
- expect(cfg.maxTokens).toBe(1024)
27
- expect(cfg.timeoutMs).toBe(60000)
28
- })
29
-
30
- it("overrides defaults from env vars", () => {
31
- process.env.ANTHROPIC_API_KEY = "sk-test"
32
- process.env.AI_MODEL = "claude-opus-4-6"
33
- process.env.AI_MAX_TOKENS = "2048"
34
- process.env.AI_TIMEOUT_MS = "30000"
35
- const cfg = resolveConfig()
36
- expect(cfg.model).toBe("claude-opus-4-6")
37
- expect(cfg.maxTokens).toBe(2048)
38
- expect(cfg.timeoutMs).toBe(30000)
39
- })
40
- })
package/src/config.ts DELETED
@@ -1,27 +0,0 @@
1
- export interface AiWorkerConfig {
2
- apiKey: string
3
- model: string
4
- maxTokens: number
5
- timeoutMs: number
6
- }
7
-
8
- /**
9
- * Resolves config from environment variables.
10
- * Throws immediately if ANTHROPIC_API_KEY is absent so the error surfaces at
11
- * worker startup rather than mid-job.
12
- */
13
- export function resolveConfig(): AiWorkerConfig {
14
- const apiKey = process.env.ANTHROPIC_API_KEY
15
- if (!apiKey) {
16
- throw new Error(
17
- "ANTHROPIC_API_KEY is not set. Export it before starting the AI worker:\n" +
18
- " export ANTHROPIC_API_KEY=sk-ant-...",
19
- )
20
- }
21
- return {
22
- apiKey,
23
- model: process.env.AI_MODEL ?? "claude-3-5-haiku-20241022",
24
- maxTokens: Number(process.env.AI_MAX_TOKENS ?? "1024"),
25
- timeoutMs: Number(process.env.AI_TIMEOUT_MS ?? "60000"),
26
- }
27
- }
package/src/index.ts DELETED
@@ -1,54 +0,0 @@
1
- import { type CasenPlugin, createWorkerCommand } from "@bpmnkit/cli-sdk"
2
- import { resolveConfig } from "./config.js"
3
- import { classify } from "./operations/classify.js"
4
- import { decide } from "./operations/decide.js"
5
- import { extract } from "./operations/extract.js"
6
- import { summarize } from "./operations/summarize.js"
7
-
8
- const plugin: CasenPlugin = {
9
- id: "com.bpmnkit.casen-worker-ai",
10
- name: "AI Worker",
11
- version: "0.1.0",
12
- groups: [
13
- {
14
- name: "ai-worker",
15
- description: "AI-powered job workers — classify, summarize, extract, decide",
16
- commands: [
17
- createWorkerCommand({
18
- jobType: "com.bpmnkit.ai.classify",
19
- description: "Classify text into one of the given categories",
20
- defaultVariables: { category: "unknown", confidence: 0, rationale: "no handler" },
21
- async processJob(job) {
22
- return classify(job, resolveConfig())
23
- },
24
- }),
25
- createWorkerCommand({
26
- jobType: "com.bpmnkit.ai.summarize",
27
- description: "Summarize text to a given length and style",
28
- defaultVariables: { summary: "", wordCount: 0 },
29
- async processJob(job) {
30
- return summarize(job, resolveConfig())
31
- },
32
- }),
33
- createWorkerCommand({
34
- jobType: "com.bpmnkit.ai.extract",
35
- description: "Extract structured fields from unstructured text",
36
- defaultVariables: { extracted: {}, missingFields: [] },
37
- async processJob(job) {
38
- return extract(job, resolveConfig())
39
- },
40
- }),
41
- createWorkerCommand({
42
- jobType: "com.bpmnkit.ai.decide",
43
- description: "Make a boolean decision based on a question, context, and optional policy",
44
- defaultVariables: { decision: false, rationale: "", confidence: 0 },
45
- async processJob(job) {
46
- return decide(job, resolveConfig())
47
- },
48
- }),
49
- ],
50
- },
51
- ],
52
- }
53
-
54
- export default plugin
package/src/llm.ts DELETED
@@ -1,67 +0,0 @@
1
- import Anthropic from "@anthropic-ai/sdk"
2
- import type { AiWorkerConfig } from "./config.js"
3
-
4
- export class RetryableError extends Error {
5
- constructor(message: string) {
6
- super(message)
7
- this.name = "RetryableError"
8
- }
9
- }
10
-
11
- /**
12
- * Calls the Anthropic messages API and returns the text content.
13
- *
14
- * Throws {@link RetryableError} for transient failures (rate limits, timeouts,
15
- * 5xx errors) so callers can return `{ outcome: "fail" }` and let Camunda retry.
16
- * Throws a plain Error for hard failures (auth, invalid request).
17
- */
18
- export async function callLlm(
19
- systemPrompt: string,
20
- userMessage: string,
21
- config: AiWorkerConfig,
22
- ): Promise<string> {
23
- const client = new Anthropic({
24
- apiKey: config.apiKey,
25
- timeout: config.timeoutMs,
26
- maxRetries: 0, // we let Camunda handle retries via failJob
27
- })
28
-
29
- let message: Anthropic.Message
30
- try {
31
- message = await client.messages.create({
32
- model: config.model,
33
- max_tokens: config.maxTokens,
34
- system: systemPrompt,
35
- messages: [{ role: "user", content: userMessage }],
36
- })
37
- } catch (err) {
38
- if (
39
- err instanceof Anthropic.RateLimitError ||
40
- err instanceof Anthropic.APIConnectionTimeoutError
41
- ) {
42
- throw new RetryableError(err.message)
43
- }
44
- if (err instanceof Anthropic.InternalServerError) {
45
- throw new RetryableError(err.message)
46
- }
47
- throw err
48
- }
49
-
50
- const block = message.content[0]
51
- if (!block || block.type !== "text") {
52
- throw new Error("Unexpected response shape from Anthropic API")
53
- }
54
- return block.text
55
- }
56
-
57
- /**
58
- * Parses an LLM response as JSON. Handles responses wrapped in a markdown
59
- * code fence (```json ... ```) which models sometimes emit.
60
- */
61
- export function parseJsonResponse<T>(text: string): T {
62
- const stripped = text
63
- .replace(/^```(?:json)?\s*/i, "")
64
- .replace(/\s*```\s*$/, "")
65
- .trim()
66
- return JSON.parse(stripped) as T
67
- }
@@ -1,101 +0,0 @@
1
- import { describe, expect, it, vi } from "vitest"
2
- import type { AiWorkerConfig } from "../config.js"
3
- import * as llmModule from "../llm.js"
4
- import { classify } from "./classify.js"
5
-
6
- const cfg: AiWorkerConfig = {
7
- apiKey: "test",
8
- model: "claude-test",
9
- maxTokens: 512,
10
- timeoutMs: 5000,
11
- }
12
-
13
- function makeJob(variables: Record<string, unknown>) {
14
- return {
15
- jobKey: "1",
16
- processDefinitionId: "p1",
17
- elementId: "e1",
18
- processInstanceKey: "i1",
19
- variables,
20
- }
21
- }
22
-
23
- describe("classify", () => {
24
- it("returns complete with valid category", async () => {
25
- vi.spyOn(llmModule, "callLlm").mockResolvedValue(
26
- JSON.stringify({ category: "billing", confidence: 0.9, rationale: "mentions invoice" }),
27
- )
28
- const result = await classify(
29
- makeJob({ input: "I need help with my invoice", categories: ["billing", "technical"] }),
30
- cfg,
31
- )
32
- expect(result.outcome).toBe("complete")
33
- if (result.outcome === "complete") {
34
- expect(result.variables.category).toBe("billing")
35
- expect(result.variables.confidence).toBe(0.9)
36
- }
37
- })
38
-
39
- it("returns error when model returns category outside allowed list", async () => {
40
- vi.spyOn(llmModule, "callLlm").mockResolvedValue(
41
- JSON.stringify({ category: "other", confidence: 0.5, rationale: "unsure" }),
42
- )
43
- const result = await classify(
44
- makeJob({ input: "anything", categories: ["billing", "technical"] }),
45
- cfg,
46
- )
47
- expect(result.outcome).toBe("error")
48
- if (result.outcome === "error") {
49
- expect(result.errorCode).toBe("AI_INVALID_CATEGORY")
50
- }
51
- })
52
-
53
- it("returns error when model returns non-JSON", async () => {
54
- vi.spyOn(llmModule, "callLlm").mockResolvedValue("Sorry, I cannot classify this.")
55
- const result = await classify(
56
- makeJob({ input: "anything", categories: ["billing", "technical"] }),
57
- cfg,
58
- )
59
- expect(result.outcome).toBe("error")
60
- if (result.outcome === "error") {
61
- expect(result.errorCode).toBe("AI_PARSE_ERROR")
62
- }
63
- })
64
-
65
- it("returns fail on RetryableError", async () => {
66
- vi.spyOn(llmModule, "callLlm").mockRejectedValue(new llmModule.RetryableError("rate limited"))
67
- const result = await classify(makeJob({ input: "anything", categories: ["billing"] }), cfg)
68
- expect(result.outcome).toBe("fail")
69
- if (result.outcome === "fail") {
70
- expect(result.retryBackOff).toBe(30_000)
71
- }
72
- })
73
-
74
- it("returns error on hard API failure", async () => {
75
- vi.spyOn(llmModule, "callLlm").mockRejectedValue(new Error("invalid api key"))
76
- const result = await classify(makeJob({ input: "anything", categories: ["billing"] }), cfg)
77
- expect(result.outcome).toBe("error")
78
- if (result.outcome === "error") {
79
- expect(result.errorCode).toBe("AI_API_ERROR")
80
- }
81
- })
82
-
83
- it("returns error when categories variable is missing", async () => {
84
- const result = await classify(makeJob({ input: "text" }), cfg)
85
- expect(result.outcome).toBe("error")
86
- if (result.outcome === "error") {
87
- expect(result.errorCode).toBe("AI_INVALID_INPUT")
88
- }
89
- })
90
-
91
- it("handles markdown code-fence wrapped JSON", async () => {
92
- vi.spyOn(llmModule, "callLlm").mockResolvedValue(
93
- `\`\`\`json\n${JSON.stringify({ category: "billing", confidence: 0.8, rationale: "invoice" })}\n\`\`\``,
94
- )
95
- const result = await classify(
96
- makeJob({ input: "invoice question", categories: ["billing", "technical"] }),
97
- cfg,
98
- )
99
- expect(result.outcome).toBe("complete")
100
- })
101
- })
@@ -1,85 +0,0 @@
1
- import type { WorkerJob, WorkerJobResult } from "@bpmnkit/cli-sdk"
2
- import type { AiWorkerConfig } from "../config.js"
3
- import { RetryableError, callLlm, parseJsonResponse } from "../llm.js"
4
-
5
- interface ClassifyResponse {
6
- category: string
7
- confidence: number
8
- rationale: string
9
- }
10
-
11
- const SYSTEM_PROMPT = `You are a text classification assistant.
12
- The user will provide text to classify and a list of allowed categories.
13
- Respond ONLY with valid JSON matching this exact shape:
14
- { "category": "<one of the allowed categories>", "confidence": <0.0–1.0>, "rationale": "<one sentence>" }
15
- Do not include any prose outside the JSON object.`
16
-
17
- /**
18
- * Classifies job.variables.input into one of job.variables.categories.
19
- *
20
- * Required job variables:
21
- * - input: string — the text to classify
22
- * - categories: string[] — allowed category names
23
- *
24
- * Optional:
25
- * - context: string — additional domain context for the model
26
- *
27
- * Output variables: category, confidence, rationale, aiModel, processedAt
28
- */
29
- export async function classify(job: WorkerJob, config: AiWorkerConfig): Promise<WorkerJobResult> {
30
- const input = String(job.variables.input ?? "")
31
- const categories = job.variables.categories
32
- if (!Array.isArray(categories) || categories.length === 0) {
33
- return {
34
- outcome: "error",
35
- errorCode: "AI_INVALID_INPUT",
36
- errorMessage: 'Job variable "categories" must be a non-empty array of strings.',
37
- }
38
- }
39
- const context = job.variables.context ? `\nContext: ${String(job.variables.context)}` : ""
40
- const userMessage = `Allowed categories: ${JSON.stringify(categories)}${context}\n\nText to classify:\n${input}`
41
-
42
- let raw: string
43
- try {
44
- raw = await callLlm(SYSTEM_PROMPT, userMessage, config)
45
- } catch (err) {
46
- if (err instanceof RetryableError) {
47
- return { outcome: "fail", errorMessage: err.message, retries: 2, retryBackOff: 30_000 }
48
- }
49
- return {
50
- outcome: "error",
51
- errorCode: "AI_API_ERROR",
52
- errorMessage: err instanceof Error ? err.message : String(err),
53
- }
54
- }
55
-
56
- let parsed: ClassifyResponse
57
- try {
58
- parsed = parseJsonResponse<ClassifyResponse>(raw)
59
- } catch {
60
- return {
61
- outcome: "error",
62
- errorCode: "AI_PARSE_ERROR",
63
- errorMessage: `Model returned non-JSON response: ${raw.slice(0, 200)}`,
64
- }
65
- }
66
-
67
- if (!categories.includes(parsed.category)) {
68
- return {
69
- outcome: "error",
70
- errorCode: "AI_INVALID_CATEGORY",
71
- errorMessage: `Model returned category "${parsed.category}" which is not in the allowed list: ${JSON.stringify(categories)}`,
72
- }
73
- }
74
-
75
- return {
76
- outcome: "complete",
77
- variables: {
78
- category: parsed.category,
79
- confidence: parsed.confidence,
80
- rationale: parsed.rationale,
81
- aiModel: config.model,
82
- processedAt: new Date().toISOString(),
83
- },
84
- }
85
- }