@bpmnkit/casen-worker-ai 0.1.7 → 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 +2 -1
  2. package/package.json +10 -3
  3. package/.turbo/turbo-build.log +0 -4
  4. package/CHANGELOG.md +0 -50
  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
@@ -9,7 +9,7 @@
9
9
  [![ai-assisted](https://img.shields.io/badge/AI--assisted-claude-8b5cf6?style=flat-square)](https://github.com/bpmnkit/monorepo)
10
10
  [![experimental](https://img.shields.io/badge/status-experimental-f59e0b?style=flat-square)](https://github.com/bpmnkit/monorepo)
11
11
 
12
- [Website](https://bpmnkit.com) · [Documentation](https://docs.bpmnkit.com) · [GitHub](https://github.com/bpmnkit/monorepo) · [Changelog](https://github.com/bpmnkit/monorepo/blob/main/plugins-cli/casen-worker-ai/CHANGELOG.md)
12
+ [Website](https://bpmnkit.com) · [Documentation](https://bpmnkit.com/docs) · [GitHub](https://github.com/bpmnkit/monorepo) · [Changelog](https://github.com/bpmnkit/monorepo/blob/main/plugins-cli/casen-worker-ai/CHANGELOG.md)
13
13
  </div>
14
14
 
15
15
  ---
@@ -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.7",
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",
@@ -55,10 +61,11 @@
55
61
  ]
56
62
  },
57
63
  "dependencies": {
58
- "@anthropic-ai/sdk": "^0.40.0"
64
+ "@anthropic-ai/sdk": "^0.40.0",
65
+ "@bpmnkit/cli-sdk": "0.0.10"
59
66
  },
60
67
  "devDependencies": {
61
- "@bpmnkit/cli-sdk": "0.0.9"
68
+ "@bpmnkit/cli-sdk": "0.0.10"
62
69
  },
63
70
  "scripts": {
64
71
  "build": "tsc",
@@ -1,4 +0,0 @@
1
-
2
- > @bpmnkit/casen-worker-ai@0.1.7 build /home/runner/work/monorepo/monorepo/plugins-cli/casen-worker-ai
3
- > tsc
4
-
package/CHANGELOG.md DELETED
@@ -1,50 +0,0 @@
1
- # @bpmnkit/casen-worker-ai
2
-
3
- ## 0.1.7
4
-
5
- ### Patch Changes
6
-
7
- - 9cd1942: Improvements around AI integration
8
-
9
- ## 0.1.6
10
-
11
- ### Patch Changes
12
-
13
- - dcf850a: Improvements
14
- - d6d1860: Several bugfixes and feature implementations
15
-
16
- ## 0.1.5
17
-
18
- ### Patch Changes
19
-
20
- - [#89](https://github.com/bpmnkit/monorepo/pull/89) [`d576e97`](https://github.com/bpmnkit/monorepo/commit/d576e97736b9056c7e6c8cbac585957dc4cd297c) Thanks [@urbanisierung](https://github.com/urbanisierung)! - docs
21
-
22
- ## 0.1.4
23
-
24
- ### Patch Changes
25
-
26
- - [#81](https://github.com/bpmnkit/monorepo/pull/81) [`d79affd`](https://github.com/bpmnkit/monorepo/commit/d79affda9b61f5edc400e00b23c54ab037f9ce40) Thanks [@urbanisierung](https://github.com/urbanisierung)! - AI preparation
27
-
28
- ## 0.1.3
29
-
30
- ### Patch Changes
31
-
32
- - [`802e1dd`](https://github.com/bpmnkit/monorepo/commit/802e1dde53dfda07371e6a83dcf0e05e2650d0a2) Thanks [@urbanisierung](https://github.com/urbanisierung)! - Minor fixes.
33
-
34
- ## 0.1.2
35
-
36
- ### Patch Changes
37
-
38
- - [#76](https://github.com/bpmnkit/monorepo/pull/76) [`8d1a978`](https://github.com/bpmnkit/monorepo/commit/8d1a978e0b8c321106d95226134cbba6433ab4af) Thanks [@urbanisierung](https://github.com/urbanisierung)! - AI preparation
39
-
40
- ## 0.1.1
41
-
42
- ### Patch Changes
43
-
44
- - [#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
45
-
46
- ## 0.1.0
47
-
48
- ### Minor Changes
49
-
50
- - 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":"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"}
@@ -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
- }