@migor/agentia 0.4.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +1 -1
  2. package/dist/AGENTS.md +145 -10
  3. package/dist/core/message.d.ts +148 -0
  4. package/dist/core/message.js +25 -0
  5. package/dist/core/message.js.map +1 -0
  6. package/dist/core/tool.d.ts +10 -9
  7. package/dist/core/trace.d.ts +21 -0
  8. package/dist/core/trace.js +9 -1
  9. package/dist/core/trace.js.map +1 -1
  10. package/dist/engine/errors.d.ts +12 -0
  11. package/dist/engine/errors.js +46 -13
  12. package/dist/engine/errors.js.map +1 -1
  13. package/dist/engine/loop.d.ts +17 -11
  14. package/dist/engine/loop.js +46 -433
  15. package/dist/engine/loop.js.map +1 -1
  16. package/dist/engine/replay.d.ts +18 -3
  17. package/dist/engine/replay.js +49 -8
  18. package/dist/engine/replay.js.map +1 -1
  19. package/dist/engine/retry.d.ts +5 -4
  20. package/dist/engine/retry.js.map +1 -1
  21. package/dist/engine/spec.d.ts +5 -5
  22. package/dist/engine/spec.js.map +1 -1
  23. package/dist/engine/trace-diff.d.ts +57 -0
  24. package/dist/engine/trace-diff.js +188 -0
  25. package/dist/engine/trace-diff.js.map +1 -0
  26. package/dist/engine/trimming.d.ts +7 -7
  27. package/dist/engine/trimming.js +6 -5
  28. package/dist/engine/trimming.js.map +1 -1
  29. package/dist/engine/turn.d.ts +157 -0
  30. package/dist/engine/turn.js +500 -0
  31. package/dist/engine/turn.js.map +1 -0
  32. package/dist/engine/types.d.ts +18 -8
  33. package/dist/engine/usage.d.ts +2 -2
  34. package/dist/engine/usage.js.map +1 -1
  35. package/dist/eval/defineEval.d.ts +1 -1
  36. package/dist/eval/defineEval.js +12 -0
  37. package/dist/eval/defineEval.js.map +1 -1
  38. package/dist/eval/harvest.d.ts +37 -0
  39. package/dist/eval/harvest.js +132 -0
  40. package/dist/eval/harvest.js.map +1 -0
  41. package/dist/eval/scripted.js.map +1 -1
  42. package/dist/index.d.ts +8 -2
  43. package/dist/index.js +4 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/integrations/anthropic.d.ts +41 -37
  46. package/dist/integrations/anthropic.js +408 -17
  47. package/dist/integrations/anthropic.js.map +1 -1
  48. package/dist/integrations/metrics.d.ts +13 -0
  49. package/dist/integrations/metrics.js +65 -0
  50. package/dist/integrations/metrics.js.map +1 -1
  51. package/dist/integrations/openai.d.ts +1 -1
  52. package/dist/integrations/openai.js +3 -3
  53. package/dist/integrations/openai.js.map +1 -1
  54. package/dist/integrations/otlp.d.ts +10 -0
  55. package/dist/integrations/otlp.js +59 -0
  56. package/dist/integrations/otlp.js.map +1 -1
  57. package/dist/runtime/run.js +2 -0
  58. package/dist/runtime/run.js.map +1 -1
  59. package/dist/runtime/session.d.ts +5 -5
  60. package/dist/runtime/session.js.map +1 -1
  61. package/dist/toolkit/module.d.ts +8 -2
  62. package/dist/toolkit/module.js +56 -8
  63. package/dist/toolkit/module.js.map +1 -1
  64. package/dist/toolkit/prompt.d.ts +20 -0
  65. package/dist/toolkit/prompt.js +18 -4
  66. package/dist/toolkit/prompt.js.map +1 -1
  67. package/dist/toolkit/skill.d.ts +3 -3
  68. package/dist/toolkit/subagent.d.ts +2 -2
  69. package/dist/toolkit/subagent.js +1 -1
  70. package/dist/transport/async.d.ts +2 -2
  71. package/package.json +2 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn.js","sourceRoot":"","sources":["../../src/engine/turn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoBH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAG/D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAEvC,sDAAsD;AACtD,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,uCAAuC;AACvC,MAAM,kBAAkB,GACtB,wDAAwD;IACxD,6CAA6C,CAAC;AAEhD;;;GAGG;AACH,SAAS,uBAAuB,CAAC,MAAoB;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO,kBAAkB,CAAC;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,GAAG,MAAM,OAAO,kBAAkB,EAAE,CAAC;IAC5E,OAAO,CAAC,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAC1E,CAAC;AAmED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAuB,IAAsB;IAC3E,uDAAuD;IACvD,2CAA2C;IAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CACb,gBAAgB,aAAa,4BAA4B,CAC1D,CAAC;QACJ,CAAC;QACD,QAAQ,GAAG;YACT,GAAG,QAAQ;YACX;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,gDAAgD;gBAC7D,YAAY,EAAE,IAAI,CAAC,YAA0C;aAC9D;SACF,CAAC;QACF,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,yDAAyD;IACzD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAElD,+CAA+C;IAC/C,2DAA2D;IAC3D,MAAM,MAAM,GACV,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;QACpD,CAAC,CAAC,iBAAiB,CAAC;YAChB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjB,8BAA8B;gBAC9B,IAAI,CAAC;oBACH,IAAI,IAAI,CAAC,YAAY;wBACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBACpE,CAAC;gBAAC,MAAM,CAAC;oBACP,YAAY;gBACd,CAAC;YACH,CAAC;SACF,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5B,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,YAAY,EAAE,IAAI,GAAG,EAAU;QAC/B,MAAM;QACN,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,kBAAkB;QAChE,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CACzB,IAAsB,EACtB,IAAuB;IAEvB,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,OAAO,EACL,IAAI,KAAK,QAAQ;YACf,CAAC,CAAC,kBAAkB,IAAI,CAAC,cAAc,EAAE;YACzC,CAAC,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE;QACrC,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,YAAY;IAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACpE,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAmB,EACnB,SAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;IAC/B,2CAA2C;IAC3C,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACzB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;IAC1D,CAAC;IACD,mDAAmD;IACnD,6CAA6C;IAC7C,2CAA2C;IAC3C,uBAAuB;IACvB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,8BAA8B;IAC9B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE;YACzD,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,IAAI,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,EAAE;oBACvD,IAAI,EAAE,QAAQ,CAAC,MAAM;oBACrB,EAAE,EAAE,IAAI,CAAC,MAAM;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC,CAAC;YACL,CAAC;YACD,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AASD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAuB,GAAmB;IACxE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,IAAI,MAAM,GAAW,EAAE,CAAC;IACxB,IAAI,OAA4B,CAAC;IACjC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,+BAA+B;IACpD,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxE,IAAI,OAAO,GAAG,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAC9E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACzC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,iDAAiD;gBACnD,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;YACtC,MAAM;QACR,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/D,wBAAwB;YACxB,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACvC,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;YACD,wCAAwC;YACxC,MAAM,QAAQ,GACZ,QAAQ,KAAK,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAC7F,IAAI,CAAC,QAAQ;gBAAE,MAAM,CAAC,CAAC,CAAC,+CAA+C;YACvE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,iDAAiD;YACnD,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,IAAI,CAAC,CAAC,UAAU;gBAC1B,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAmB,EACnB,MAAc,EACd,OAAgB;IAEhB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1D,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC1B,mDAAmD;QACnD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC;oBACH,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAAC,MAAM,CAAC;oBACP,0BAA0B;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,IAAI,CAAC,CAAC,CAAC;IACrF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,mBAAmB,IAAI,CAAC,CAAC,CAAC;AAC/F,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,SAAiB;IACnE,IAAI,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IAChF,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC;YAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,2BAA2B,EAAE,SAAS,EAAE,KAAK,EAAE;SACnF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;QACzC,kEAAkE;QAClE,4BAA4B;QAC5B,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC;YAC1B,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,wBAAwB,SAAS,GAAG;gBAC7C,SAAS,EAAE,KAAK;aACjB;SACF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;QACzC,kCAAkC;QAClC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC;YAC1B,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,kDAAkD;gBAC3D,SAAS,EAAE,KAAK;aACjB;SACF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,eAAe,EAAE,CAAC;QAC5C,wCAAwC;QACxC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACrF,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACzF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,uCAAuC;QACvC,kDAAkD;QAClD,wCAAwC;QACxC,MAAM,UAAU,GACd,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC;QACpF,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU;YACV,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC;YAC1B,GAAG,CAAC,UAAU,KAAK,qBAAqB;gBACtC,CAAC,CAAC;oBACE,KAAK,EAAE;wBACL,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,0BAA0B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;wBAChE,SAAS,EAAE,KAAK;qBACjB;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAmB,EACnB,MAAc,EACd,QAAwB,EACxB,UAAoC;IAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACrB,2CAA2C;IAC3C,0CAA0C;IAC1C,kDAAkD;IAClD,4CAA4C;IAC5C,yBAAyB;IACzB,MAAM,QAAQ,GAAG,UAAU;QACzB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;QACrF,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/F,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CACjC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAC3B,GAAmB,EACnB,MAAc,EACd,GAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACzD,uDAAuD;IACvD,iDAAiD;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACjC,gDAAgD;IAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE;QACxC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,EAAE;QACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,IAAI,mBAAmB,CAAC;KACnE,CAAC,CAAC;IAEH,MAAM,OAAO,GAAmB;QAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,MAAM;QACpB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,2CAA2C;QAC3C,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,2CAA2C;QAC3C,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,yCAAyC;QACzC,+CAA+C;QAC/C,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC;IACF,IAAI,EAAE,GAAG,IAAI,CAAC;IACd,IAAI,OAAO,GAAY,EAAE,CAAC;IAC1B,2CAA2C;IAC3C,IAAI,SAA6E,CAAC;IAClF,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACpD,6CAA6C;QAC7C,2CAA2C;QAC3C,mDAAmD;QACnD,uDAAuD;QACvD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACjE,IAAI,OAAO,EAAE,CAAC;gBACZ,EAAE,GAAG,KAAK,CAAC;gBACX,SAAS,GAAG,eAAe,CAAC;gBAC5B,OAAO,GAAG,kBAAkB,OAAO,EAAE,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,WAAW,CAAC;gBACtB,mDAAmD;gBACnD,+CAA+C;gBAC/C,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;oBACnB,6DAA6D;oBAC7D,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAsB,CAAC;oBACvC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,EAAE,GAAG,KAAK,CAAC;YACX,SAAS,GAAG,OAAO,CAAC;YACpB,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,GAAG,SAAS,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,EAAE,GAAG,KAAK,CAAC;QACX,SAAS,GAAG,cAAc,CAAC;QAC3B,OAAO,GAAG,iBAAiB,GAAG,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,+CAA+C;QAC/C,0CAA0C;QAC1C,6CAA6C;QAC7C,wBAAwB;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAChE,IAAI,OAAO,EAAE,CAAC;gBACZ,EAAE,GAAG,KAAK,CAAC;gBACX,SAAS,GAAG,eAAe,CAAC;gBAC5B,OAAO,GAAG,kBAAkB,OAAO,EAAE,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,oDAAoD;gBACpD,gCAAgC;gBAChC,MAAM,GAAG,GAAG,MAAM,WAAW,CAC3B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAC7C,IAAI,CAAC,aAAa,IAAI,CAAC,CACxB,CAAC;gBACF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,EAAE,GAAG,KAAK,CAAC;oBACX,SAAS,GAAG,SAAS,CAAC;oBACtB,OAAO,GAAG,0BAA0B,IAAI,CAAC,aAAa,IAAI,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,GAAG,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,EAAE,GAAG,KAAK,CAAC;YACX,SAAS,GAAG,OAAO,CAAC;YACpB,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,GAAG,SAAS,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE;QACzC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,EAAE;QACnB,EAAE;QACF,iCAAiC;QACjC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,KAAK,CACZ,OAAO,EACP,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAC7E;KACF,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,GAAG,CAAC,EAAE;QACnB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;QAC/B,QAAQ,EAAE,CAAC,EAAE;KACd,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,CAAY;IAC7B,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,YAAY,EAAE,CAAC,CAAC,WAAyC;QACzD,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAgB;IACrC,OAAO,OAAO,CAAC,OAAO;SACnB,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB,EAAE,IAA6B;IACnF,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,SAAS,KAAK,CAAC,CAAU,EAAE,CAAiB;IAC1C,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -1,9 +1,9 @@
1
- import type Anthropic from '@anthropic-ai/sdk';
1
+ import type { CacheControl, MessageParam } from '../core/message.js';
2
2
  import type { AgentTool, JsonSchema, ModelClient, ModelPricing } from '../core/tool.js';
3
3
  import type { SpanError, Trace } from '../core/trace.js';
4
4
  import type { RetryOptions } from './retry.js';
5
5
  /**
6
- * engine 对模型端的最小结构面(R4 多模型):Anthropic SDK 天然满足,
6
+ * engine 对模型端的最小结构面(R4 多模型):消息形态见 core/message.js 的自有类型族,
7
7
  * 其他 provider(OpenAI 兼容端点等)只需适配出同一形态。
8
8
  * 定义在 core/tool.js 并从此处转导出。
9
9
  */
@@ -33,9 +33,7 @@ export declare function isSuccessStopReason(reason: AgentStopReason): boolean;
33
33
  export interface SystemTextBlock {
34
34
  type: 'text';
35
35
  text: string;
36
- cache_control?: {
37
- type: 'ephemeral';
38
- };
36
+ cache_control?: CacheControl;
39
37
  }
40
38
  /** system 参数:纯文本,或可缓存块数组(稳定段带 breakpoint,volatile 段放其后不带) */
41
39
  export type SystemParam = string | SystemTextBlock[];
@@ -51,10 +49,10 @@ export type SystemParam = string | SystemTextBlock[];
51
49
  export interface ContextPolicy {
52
50
  /** 预算(估算 input tokens);超预算的回合触发降级。供观测/文档用 */
53
51
  readonly budgetTokens?: number;
54
- beforeTurn(messages: Anthropic.MessageParam[], info: {
52
+ beforeTurn(messages: MessageParam[], info: {
55
53
  iteration: number;
56
54
  model: string;
57
- }): Promise<Anthropic.MessageParam[]>;
55
+ }): Promise<MessageParam[]>;
58
56
  /**
59
57
  * 每条 run 开始时由引擎调用一次,返回**本 run 专用**的策略实例(隔离滞回/缓存等
60
58
  * per-run 状态)。缺省(不实现)= 复用自身 —— 只适合无状态策略;有状态又不实现
@@ -66,7 +64,7 @@ export interface RunAgentOptions<S extends JsonSchema = JsonSchema> {
66
64
  /** 顶层 system(SystemPrompt 产物)。稳定内容应放在 tools 之后、第一个 breakpoint 前 */
67
65
  system?: SystemParam;
68
66
  /** 初始消息;由调用方给 user 起始消息 */
69
- messages: Anthropic.MessageParam[];
67
+ messages: MessageParam[];
70
68
  /** 主 agent 可调工具(v1 裸 JSON schema) */
71
69
  tools?: AgentTool[];
72
70
  model?: string;
@@ -179,6 +177,18 @@ export interface RunAgentOptions<S extends JsonSchema = JsonSchema> {
179
177
  * 就自动带上(见 runtime/systemPrompt.ts)。
180
178
  */
181
179
  systemVersion?: string;
180
+ /**
181
+ * 菜单内 @Prompt 能力的版本表(`{ 能力名: 版本 }`):写进 run 根 span 的
182
+ * `prompts.versions` attribute(`name@ver` 逗号拼接),回答「质量退化是不是换了
183
+ * 某个 prompt 资产导致的」。走 `AgentApp.run` 时自动收集(@Prompt 的 `version` 字段)。
184
+ */
185
+ promptVersions?: Record<string, string>;
186
+ /**
187
+ * 会话标识:写进 run 根 span 的 `session.id` attribute(OTLP 导出时映射
188
+ * `gen_ai.conversation.id`),多轮对话的 run 由此可按会话聚合(thread 维度)。
189
+ * 走 `AgentApp.run` / `executeRun` 时给了 `session` 就自动带上,不用手填。
190
+ */
191
+ sessionId?: string;
182
192
  }
183
193
  export interface AgentRunResult<T = unknown> {
184
194
  /** 本次 run 的完整调用树 + usage(traceId == runId) */
@@ -1,4 +1,4 @@
1
- import type Anthropic from '@anthropic-ai/sdk';
1
+ import type { MessageUsage } from '../core/message.js';
2
2
  import type { ModelPricing } from '../core/tool.js';
3
3
  import type { Usage } from '../core/trace.js';
4
4
  /**
@@ -22,7 +22,7 @@ export declare const DEFAULT_PRICING: Readonly<Record<string, ModelPricing>>;
22
22
  * `maxCostUsd` 拿 NaN 去比较(永远 false,护栏静默失效),不如立刻响亮失败。
23
23
  */
24
24
  export declare function buildPricing(overrides?: Record<string, ModelPricing>): Record<string, ModelPricing>;
25
- export declare function usageFromAnthropic(u: Anthropic.Usage): Usage;
25
+ export declare function usageFromAnthropic(u: MessageUsage): Usage;
26
26
  /**
27
27
  * 近似成本估计:缓存写≈1.25×输入,缓存读≈0.1×输入。
28
28
  * 模型不在传入的价格表内时返回 `undefined` —— 调用方须把"未定价"**显式**表达出来
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/engine/usage.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,eAAe,GAA2C,MAAM,CAAC,MAAM,CAAC;IACnF,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACnC,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACrC,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACrC,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACrC,mBAAmB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACvC,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;CACtC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAwC;IAExC,IAAI,CAAC,SAAS;QAAE,OAAO,eAA+C,CAAC;IACvE,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,MAAM,EAAE,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,mBAAmB,KAAK,gDAAgD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,eAAe,EAAE,GAAG,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAkB;IACnD,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC;QAChC,YAAY,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC;QAClC,eAAe,EAAE,CAAC,CAAC,uBAAuB,IAAI,CAAC;QAC/C,mBAAmB,EAAE,CAAC,CAAC,2BAA2B,IAAI,CAAC;KACxD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,KAAY,EACZ,OAAO,GAAiC,eAA+C;IAEvF,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;IAClF,MAAM,IAAI,GACR,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;QAC1B,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG;QAC5B,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG;QACpC,CAAC,mBAAmB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/engine/usage.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,eAAe,GAA2C,MAAM,CAAC,MAAM,CAAC;IACnF,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACnC,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACrC,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACrC,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACrC,mBAAmB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACvC,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;CACtC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAwC;IAExC,IAAI,CAAC,SAAS;QAAE,OAAO,eAA+C,CAAC;IACvE,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,MAAM,EAAE,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,mBAAmB,KAAK,gDAAgD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,eAAe,EAAE,GAAG,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAe;IAChD,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC;QAChC,YAAY,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC;QAClC,eAAe,EAAE,CAAC,CAAC,uBAAuB,IAAI,CAAC;QAC/C,mBAAmB,EAAE,CAAC,CAAC,2BAA2B,IAAI,CAAC;KACxD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,KAAY,EACZ,OAAO,GAAiC,eAA+C;IAEvF,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;IAClF,MAAM,IAAI,GACR,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;QAC1B,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG;QAC5B,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG;QACpC,CAAC,mBAAmB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACtC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { AgentRunResult } from '../engine/types.js';
2
- import type { Trace } from '../core/trace.js';
2
+ import { type Trace } from '../core/trace.js';
3
3
  import type { ModelClient } from '../core/tool.js';
4
4
  import type { AgentApp, RunAppOptions } from '../toolkit/module.js';
5
5
  /**
@@ -1,3 +1,4 @@
1
+ import { attachScore } from '../core/trace.js';
1
2
  function messageOf(e) {
2
3
  return e instanceof Error ? e.message : String(e);
3
4
  }
@@ -27,6 +28,17 @@ export function defineEval(def) {
27
28
  catch (e) {
28
29
  report = { ...report, ok: false, error: messageOf(e) };
29
30
  }
31
+ // R7 质量闭环:用例结论挂成 trace 根 span 的 score 事件 —— eval 的 trace 自带
32
+ // 质量结论,下游 TraceSink / metrics 可直接聚合「这个 eval 的通过率」。
33
+ // 拿得到 trace 才挂:app.run 抛错(环境错误)时无 trace 可挂,跳过。
34
+ if (report.trace) {
35
+ attachScore(report.trace, {
36
+ name: 'eval',
37
+ value: report.ok ? 1 : 0,
38
+ source: def.name,
39
+ ...(report.error !== undefined ? { comment: report.error } : {}),
40
+ });
41
+ }
30
42
  cases.push(report);
31
43
  }
32
44
  const passed = cases.filter((c) => c.ok).length;
@@ -1 +1 @@
1
- {"version":3,"file":"defineEval.js","sourceRoot":"","sources":["../../src/eval/defineEval.ts"],"names":[],"mappings":"AAwEA,SAAS,SAAS,CAAC,CAAU;IAC3B,OAAO,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,GAAsB;IAEtB,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,CAAC,GAAG;YACP,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAqB,EAAE,CAAC;YAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAA6B,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChF,IAAI,MAAM,GAAmB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;gBACxD,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC5E,MAAM,KAAK,GAAG,MAA2B,CAAC;oBAC1C,+CAA+C;oBAC/C,MAAM,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;oBACvF,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;YAChD,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,MAAM;gBACN,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM;gBAC7B,EAAE,EAAE,MAAM,KAAK,KAAK,CAAC,MAAM;gBAC3B,KAAK;aACN,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"defineEval.js","sourceRoot":"","sources":["../../src/eval/defineEval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { MessageParam } from '../core/message.js';
2
+ import type { Trace } from '../core/trace.js';
3
+ /**
4
+ * Agentia —— 线上 trace 回流 eval 数据集(R7 质量闭环)。
5
+ *
6
+ * `harvestEvalCase` 把一条线上 trace(+ 可选的原始输入)翻成一段 **TS 源码字符串**:
7
+ * 一个可粘贴进 eval 文件的用例字面量骨架 —— `client: scriptedClient([...])` 的脚本
8
+ * 按 trace 的 llm.turn 逐回合重建,`expect` 预填「主循环工具序列」的轨迹断言。
9
+ * 纯函数:不写文件、不联网(CLI `agentia harvest` 在它的外面包文件读写)。
10
+ *
11
+ * ⚠️ module 级 export,刻意不进 src/index.ts 公共面(见 AGENTS.md「内部工具不进公共面」)。
12
+ *
13
+ * 已知边界(生成物顶部注释也会如实写明,不靠用的人自己发现):
14
+ * - trace 不记 assistant 文本(llm.turn 只记 usage/事件),脚本里的 text 块是占位;
15
+ * - 只重建**直属 run 根**的主循环回合 —— 子 agent 的嵌套回合不走主循环脚本
16
+ * (scriptedClient 驱动的是主 agent 的模型往返);
17
+ * - `expect` 是从该 trace **抄录的实际轨迹**:发生过 ≠ 应该发生,人工核对后再进 CI;
18
+ * - EvalCase 没有 expect 字段,粘贴时把它搬进 defineEval 的 expect(骨架注释会教)。
19
+ */
20
+ export interface HarvestEvalCaseInput {
21
+ /** 一条完成的线上 trace(run 根 + llm.turn + 事件) */
22
+ trace: Trace;
23
+ /** 原始输入(TaskRecord 的 spec.messages);没有则 input 用占位并注释提醒 */
24
+ messages?: MessageParam[];
25
+ /** 用例名;缺省 `harvest-<traceId>` */
26
+ name?: string;
27
+ /** 来源标注(只写进注释,如 jsonl 文件名) */
28
+ source?: string;
29
+ }
30
+ /**
31
+ * 生成一个可粘贴进 eval 文件的用例字面量骨架(TS 源码字符串)。
32
+ *
33
+ * 产出是**纯 JS 语法的表达式**(无 TS 类型标注)—— 于是可以被 `new Function` 直接
34
+ * eval 做「生成物可解析」验证,也可以原样粘进 .ts 文件。所有嵌入值一律走
35
+ * JSON.stringify(入参里可能有反引号 / `${`,不能让它们击穿生成物语法)。
36
+ */
37
+ export declare function harvestEvalCase(input: HarvestEvalCaseInput): string;
@@ -0,0 +1,132 @@
1
+ import { stringifySafe } from '../core/json.js';
2
+ /** trace 不记 assistant 文本 —— 脚本 text 块的统一占位(测试与 CLI 都对齐这个词) */
3
+ const ASSISTANT_TEXT_PLACEHOLDER = '[harvest] assistant 文本未入 trace';
4
+ /** 取某回合的 tool.input 事件并规整(engine 记账:input 已是截断后的字符串) */
5
+ function toolInputsOf(turn) {
6
+ return turn.events
7
+ .filter((e) => e.name === 'tool.input')
8
+ .map((e) => {
9
+ const b = (e.body ?? {});
10
+ return {
11
+ tool: typeof b.tool === 'string' ? b.tool : 'unknown',
12
+ toolUseId: typeof b.tool_use_id === 'string' ? b.tool_use_id : undefined,
13
+ input: b.input === undefined ? undefined : stringifySafe(b.input),
14
+ };
15
+ });
16
+ }
17
+ /** 入参还原:尝试 JSON.parse 回对象,失败(或非 object)包 {_raw}(tool_use.input 必须是 object) */
18
+ function parseToolInput(raw) {
19
+ const s = raw ?? '';
20
+ try {
21
+ const parsed = JSON.parse(s);
22
+ return typeof parsed === 'object' && parsed !== null ? parsed : { _raw: s };
23
+ }
24
+ catch {
25
+ return { _raw: s };
26
+ }
27
+ }
28
+ /** trace 的 Usage(camelCase)→ Anthropic.Message 的 usage(snake_case),缺省补零 */
29
+ function toMessageUsage(u) {
30
+ return {
31
+ input_tokens: u?.inputTokens ?? 0,
32
+ output_tokens: u?.outputTokens ?? 0,
33
+ cache_read_input_tokens: u?.cacheReadTokens ?? 0,
34
+ cache_creation_input_tokens: u?.cacheCreationTokens ?? 0,
35
+ };
36
+ }
37
+ /** 取 messages 里最后一条非空 user 文本(string 或 text 块拼接);没有则 null */
38
+ function lastUserText(messages) {
39
+ if (!messages)
40
+ return null;
41
+ for (let i = messages.length - 1; i >= 0; i--) {
42
+ const m = messages[i];
43
+ if (m.role !== 'user')
44
+ continue;
45
+ const text = typeof m.content === 'string'
46
+ ? m.content
47
+ : m.content
48
+ .filter((b) => b.type === 'text')
49
+ .map((b) => b.text)
50
+ .join('\n');
51
+ if (text.trim())
52
+ return text;
53
+ }
54
+ return null;
55
+ }
56
+ /**
57
+ * 生成一个可粘贴进 eval 文件的用例字面量骨架(TS 源码字符串)。
58
+ *
59
+ * 产出是**纯 JS 语法的表达式**(无 TS 类型标注)—— 于是可以被 `new Function` 直接
60
+ * eval 做「生成物可解析」验证,也可以原样粘进 .ts 文件。所有嵌入值一律走
61
+ * JSON.stringify(入参里可能有反引号 / `${`,不能让它们击穿生成物语法)。
62
+ */
63
+ export function harvestEvalCase(input) {
64
+ const { trace } = input;
65
+ const name = input.name ?? `harvest-${trace.traceId}`;
66
+ // 只取直属 run 根的 llm.turn(子 agent 的嵌套回合挂在 capability span 下,不走主循环脚本)
67
+ const mainTurns = trace.spans
68
+ .filter((s) => s.kind === 'llm.turn' && s.parentSpanId === trace.rootSpanId)
69
+ .sort((a, b) => a.startedAt - b.startedAt);
70
+ const nestedCount = trace.spans.filter((s) => s.kind === 'llm.turn' && s.parentSpanId !== trace.rootSpanId).length;
71
+ // 每回合 → 一个 assistant 消息:占位 text + 按 tool.input 事件重建的 tool_use 块
72
+ let tuSeq = 0;
73
+ const steps = mainTurns.map((turn, i) => {
74
+ const inputs = toolInputsOf(turn);
75
+ const content = [
76
+ { type: 'text', text: ASSISTANT_TEXT_PLACEHOLDER },
77
+ ];
78
+ for (const e of inputs) {
79
+ content.push({
80
+ type: 'tool_use',
81
+ id: e.toolUseId ?? `harvest_tu_${++tuSeq}`,
82
+ name: e.tool,
83
+ input: parseToolInput(e.input),
84
+ });
85
+ }
86
+ return {
87
+ id: `harvest_m_${i + 1}`,
88
+ model: turn.name,
89
+ stop_reason: inputs.length > 0 ? 'tool_use' : 'end_turn',
90
+ usage: toMessageUsage(turn.usage),
91
+ content,
92
+ };
93
+ });
94
+ const toolSeq = mainTurns.flatMap((t) => toolInputsOf(t).map((e) => e.tool));
95
+ const userText = lastUserText(input.messages);
96
+ const head = [
97
+ `// ┄┄ harvest 用例骨架:${name}(trace ${trace.traceId}${input.source ? `,来源 ${input.source}` : ''})┄┄`,
98
+ '// ⚠️ 脚手架,不是成品 —— 人工核对后再进 CI:',
99
+ '// · trace 不记 assistant 文本(llm.turn 只记 usage/事件),脚本里的 text 块是占位;',
100
+ ];
101
+ if (nestedCount > 0) {
102
+ head.push(`// · 只含主循环 ${mainTurns.length} 个回合;${nestedCount} 个子 agent 嵌套回合已略去`, '// (嵌套回合不走主循环脚本,scriptedClient 驱动不了它们;要覆盖子 agent 请单独写 eval);');
103
+ }
104
+ else {
105
+ head.push(`// · 含主循环全部 ${mainTurns.length} 个回合(无子 agent 嵌套回合);`);
106
+ }
107
+ head.push('// · EvalCase 没有 expect 字段:下面的 expect 是草稿,粘贴时把它搬进', '// defineEval({ expect })。其中的工具序列是从原 trace 抄录的「实际轨迹」——', '// 发生过 ≠ 应该发生,核对过再留作断言。');
108
+ const body = ['{', ` name: ${JSON.stringify(name)},`];
109
+ if (userText === null) {
110
+ body.push(' // ⚠️ 未提供原始输入(TaskRecord 的 spec.messages)—— input 是占位,请人工补写:', ` input: '[harvest] 原始输入未知,请人工补写',`);
111
+ }
112
+ else {
113
+ body.push(` input: ${JSON.stringify(userText)},`);
114
+ }
115
+ if (steps.length === 0) {
116
+ body.push(' // ⚠️ trace 里没有主循环 llm.turn —— 脚本为空,请人工补写:');
117
+ body.push(' client: scriptedClient([]),');
118
+ }
119
+ else {
120
+ body.push(' client: scriptedClient([');
121
+ body.push(steps
122
+ .map((s) => JSON.stringify(s, null, 2)
123
+ .split('\n')
124
+ .map((l) => ` ${l}`)
125
+ .join('\n'))
126
+ .join(',\n'));
127
+ body.push(' ]),');
128
+ }
129
+ body.push(' expect: (result, { trace }) => {', ' // 主循环实际调用过的工具名序列(直属 run 根的 llm.turn 上的 tool.input 事件)', ' const tools = trace.spans', " .filter((s) => s.kind === 'llm.turn' && s.parentSpanId === trace.rootSpanId)", ' .sort((a, b) => a.startedAt - b.startedAt)', ' .flatMap((s) =>', " s.events.filter((e) => e.name === 'tool.input').map((e) => (e.body || {}).tool),", ' );', ` assert.deepEqual(tools, ${JSON.stringify(toolSeq)});`, ' },', '}');
130
+ return `${head.join('\n')}\n${body.join('\n')}\n`;
131
+ }
132
+ //# sourceMappingURL=harvest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harvest.js","sourceRoot":"","sources":["../../src/eval/harvest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scripted.js","sourceRoot":"","sources":["../../src/eval/scripted.ts"],"names":[],"mappings":"AAuBA;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAqB;IAClD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO;QACL,QAAQ,EAAE;YACR,MAAM,CAAC,MAAe;gBACpB,MAAM,QAAQ,GAAmC,EAAE,CAAC;gBACpD,OAAO;oBACL,EAAE,CAAC,KAAa,EAAE,EAA2B;wBAC3C,IAAI,KAAK,KAAK,MAAM;4BAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC1C,CAAC;oBACD,KAAK,CAAC,YAAY;wBAChB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;wBAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;4BACvB,MAAM,IAAI,KAAK,CACb,yBAAyB,MAAM,GAAG,CAAC,eAAe,KAAK,CAAC,MAAM,IAAI,CACnE,CAAC;wBACJ,CAAC;wBACD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,UAAU;4BAChD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;4BACd,CAAC,CAAC,IAAI,CAAC,CAAiC,CAAC;wBAC3C,6CAA6C;wBAC7C,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAGxC,EAAE,CAAC;4BACH,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gCACxC,KAAK,MAAM,CAAC,IAAI,QAAQ;oCAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC1C,CAAC;wBACH,CAAC;wBACD,MAAM,EAAE,CAAC;wBACT,OAAO,OAAO,CAAC;oBACjB,CAAC;iBACF,CAAC;YACJ,CAAC;SACF;KACa,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"scripted.js","sourceRoot":"","sources":["../../src/eval/scripted.ts"],"names":[],"mappings":"AAuBA;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAqB;IAClD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO;QACL,QAAQ,EAAE;YACR,MAAM,CAAC,MAAe;gBACpB,MAAM,QAAQ,GAAmC,EAAE,CAAC;gBACpD,OAAO;oBACL,EAAE,CAAC,KAAa,EAAE,EAA2B;wBAC3C,IAAI,KAAK,KAAK,MAAM;4BAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC1C,CAAC;oBACD,KAAK,CAAC,YAAY;wBAChB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;wBAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;4BACvB,MAAM,IAAI,KAAK,CACb,yBAAyB,MAAM,GAAG,CAAC,eAAe,KAAK,CAAC,MAAM,IAAI,CACnE,CAAC;wBACJ,CAAC;wBACD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,UAAU;4BAChD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;4BACd,CAAC,CAAC,IAAI,CAAC,CAAuB,CAAC;wBACjC,6CAA6C;wBAC7C,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAGxC,EAAE,CAAC;4BACH,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gCACxC,KAAK,MAAM,CAAC,IAAI,QAAQ;oCAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC1C,CAAC;wBACH,CAAC;wBACD,MAAM,EAAE,CAAC;wBACT,OAAO,OAAO,CAAC;oBACjB,CAAC;iBACF,CAAC;YACJ,CAAC;SACF;KACa,CAAC;AACnB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
- export declare const AGENTIA_VERSION = "0.4.2";
2
- export type { Trace, Span, SpanEvent, SpanError, SpanId, SpanKind, SpanStatus, TraceId, TraceSink, CapabilityType, Usage, } from './core/trace.js';
1
+ export declare const AGENTIA_VERSION = "0.6.0";
2
+ export type { Trace, Span, SpanEvent, SpanError, SpanId, SpanKind, SpanStatus, TraceId, TraceSink, CapabilityType, Usage, Score, } from './core/trace.js';
3
+ export { attachScore } from './core/trace.js';
3
4
  export type { AgentTool, JsonSchema, ModelClient, RecorderBackend, SchemaInput, SchemaType, ToolRunContext, TypedSchema, } from './core/tool.js';
4
5
  export { validateJsonSchema } from './core/schema.js';
5
6
  export { combineSignals } from './core/abort.js';
7
+ export type { CacheControl, ContentBlock, ContentBlockParam, ImageBlockParam, Message, MessageParam, MessageUsage, Role, TextBlock, TextBlockParam, ThinkingBlock, ToolParam, ToolResultBlockParam, ToolUseBlock, ToolUseBlockParam, } from './core/message.js';
6
8
  export { runAgent, resolveDefaultModel } from './engine/loop.js';
7
9
  export { TraceRecorder } from './engine/tracer.js';
8
10
  export { classifyError, isAbortError } from './engine/errors.js';
@@ -73,6 +75,10 @@ export type { RedisLike, RedisSetOptions, RedisTaskStoreOptions } from './store/
73
75
  export type { MaybePromise } from './store/store.js';
74
76
  export { traceToMessages } from './engine/replay.js';
75
77
  export type { ReplayOptions } from './engine/replay.js';
78
+ export { forkMessages } from './engine/replay.js';
79
+ export type { ForkReplayOptions } from './engine/replay.js';
80
+ export { diffTraces } from './engine/trace-diff.js';
81
+ export type { DiffEntry, SpanDiff, TraceDiff, TraceDiffOptions } from './engine/trace-diff.js';
76
82
  export { mcpTools, MCP_DEFAULT_TIMEOUT_MS } from './integrations/mcp.js';
77
83
  export type { McpClientLike, McpToolInfo, McpToolsOptions } from './integrations/mcp.js';
78
84
  export { metricsSink, DEFAULT_BUCKETS } from './integrations/metrics.js';
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
- export const AGENTIA_VERSION = '0.4.2';
1
+ export const AGENTIA_VERSION = '0.6.0';
2
+ export { attachScore } from './core/trace.js';
2
3
  export { validateJsonSchema } from './core/schema.js';
3
4
  export { combineSignals } from './core/abort.js';
4
5
  // engine:运行时内核
@@ -49,6 +50,8 @@ export { InMemoryMemoryStore } from './runtime/memory.js';
49
50
  export { InMemorySessionStore } from './runtime/session.js';
50
51
  export { RedisTaskStore } from './store/redisStore.js';
51
52
  export { traceToMessages } from './engine/replay.js';
53
+ export { forkMessages } from './engine/replay.js';
54
+ export { diffTraces } from './engine/trace-diff.js';
52
55
  // integrations:MCP 桥(D1)—— duck-typed,框架零依赖;连接器在独立包 @migor/mcp
53
56
  export { mcpTools, MCP_DEFAULT_TIMEOUT_MS } from './integrations/mcp.js';
54
57
  // integrations:指标(D3 → E2/E3/E4/E5)—— 满足 TraceSink 即可接入,能力零新出口
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,53 +1,57 @@
1
1
  import type { ModelClient } from '../core/tool.js';
2
2
  /**
3
- * Agentia —— 默认 ModelClient:Anthropic Messages API。
3
+ * Agentia —— 默认 ModelClient:Anthropic Messages API(手写 fetch + SSE,不再包装厂商 SDK)。
4
4
  *
5
- * **为什么要有这个工厂**:这是 `@anthropic-ai/sdk` 在框架内的**唯一实例化点**。
6
- * 引擎(`engine/loop.ts`)只经由此处取默认 client,不再散落 `new Anthropic()`。两个好处:
5
+ * 引擎(`engine/loop.ts`)只经由此处取默认 client。使用者自定义只传
6
+ * `apiKey` / `baseURL`(或环境变量 `ANTHROPIC_API_KEY` / `ANTHROPIC_BASE_URL`),
7
+ * **不必接触厂商 SDK**。工程形态与 `integrations/openai.ts` 同款:手写 fetch、
8
+ * 逐行读 SSE、按分片组装成 `Message`。
7
9
  *
8
- * ① **使用者不必接触厂商 SDK 的类** —— 想自定义只传 `apiKey` / `baseURL`
9
- * (或直接用环境变量 `ANTHROPIC_API_KEY` / `ANTHROPIC_BASE_URL`);
10
- * ② 厂商 SDK 成为一个**可替换的实现细节** —— 将来若换自研 fetch 实现(去掉依赖),
11
- * 只动这一个文件,引擎与公共契约都不变。
10
+ * signal 直接进 fetch(这正是 2026-09-14 那个 bug 的根治 —— 当时 SDK 只在
11
+ * RequestOptions 里认 signal,放 body 里会被静默丢弃,在飞 run 中止失效、
12
+ * 超时后继续烧 token;实测对照见 docs/spec.md §10 的 2026-09-14 ③)。
12
13
  *
13
- * 契约:返回值必须满足 `core` 的 `ModelClient` 结构面。
14
+ * 重试语义与 SDK 缺省对齐(maxRetries=2:408 / 409 / 429 / 5xx / 连接错误,
15
+ * 指数退避,尊重 `retry-after` 响应头)。引擎层另有一层重试兜底
16
+ * (`engine/retry.ts`),两层关系与 SDK 时代一致。
14
17
  *
15
- * ⚠️ **不能直接 `return new Anthropic(...)`**(2026-09-14 修):`ModelClient` 契约把 `signal`
16
- * 放在 **params 内部**,而 SDK 的签名是 `stream(body, options?)`,`signal` **只在 `RequestOptions`
17
- * 里认**。把 signal 放 body 里会被 SDK **静默丢弃** ⇒ 调用方无法中止在飞请求。
18
- * 真端点实测(`scripts/e2e-live.ts` 步骤 ⑤):
19
- *
20
- * | signal 位置 | abort 后的实测结果 |
21
- * |---|---|
22
- * | body 内(旧实现) | 收到 **599 个分片后仍跑完**,1.4s 才结束 —— 中止被吞 |
23
- * | RequestOptions(现实现) | 2 个分片即断,**1ms** 内以 `Request was aborted.` 收场 |
24
- *
25
- * 这不只是「少个功能」:`transport/async.ts` 的 `runTimeoutMs` 对外承诺「到点真中止、
26
- * token 不再继续烧」,靠的就是这个 signal。旧实现下超时的 run 会在后台**继续烧 token**
27
- * 直到模型自己说完。`integrations/openai.ts` 是手写 fetch,本来就转发 signal(无此问题)。
18
+ * 兼容端点(如 DeepSeek 的 Anthropic 兼容端点)换 baseURL 即可;非官方端点的
19
+ * 兼容性靠调用方保证,本实现不发明额外的鉴权形态。
28
20
  */
29
21
  export interface AnthropicClientOptions {
30
22
  /** 缺省读环境变量 `ANTHROPIC_API_KEY` */
31
23
  apiKey?: string;
32
- /** 缺省读环境变量 `ANTHROPIC_BASE_URL`(兼容端点 / 网关) */
24
+ /** 缺省读环境变量 `ANTHROPIC_BASE_URL`,再缺省 `https://api.anthropic.com`(兼容端点 / 网关) */
33
25
  baseURL?: string;
34
- /** 其余构造参数原样透传给 SDK(高级用法) */
26
+ /**
27
+ * 单次请求的重试次数(不含首次尝试;408 / 409 / 429 / 5xx / 连接错误)。缺省 2,与 SDK 缺省一致。
28
+ * 引擎层另有外层重试(`RunAgentOptions.retry`),两层叠加最多
29
+ * `(1 + maxRetries) × maxAttempts` 次请求 —— 建议二选一调。
30
+ */
31
+ maxRetries?: number;
32
+ /**
33
+ * 单次请求超时(毫秒)。缺省不给(中止由引擎的 signal 管,见 `ModelClient` 契约);
34
+ * 给了就用超时信号与 params.signal 合成(任一触发即中止)。超时按连接错误处理(可重试)。
35
+ */
36
+ timeout?: number;
37
+ /**
38
+ * 历史遗留:SDK 时代其余键原样透传给 SDK 构造参数;自研化后**不再消费**,
39
+ * 保留索引签名只为旧代码编译不炸。多余键静默忽略。
40
+ * 此处的索引签名是**有意**的 —— 与 `core/message.ts` 兜底成员「绝不加索引签名」
41
+ * 方向相反但场景不同:那是会被赋值/收窄的公共消息类型(带索引签名会让 SDK 的
42
+ * interface 块类型赋不进来),这里是构造参数对象,不存在被赋值侧的
43
+ * assignability 问题。别照着一边去改另一边。
44
+ */
35
45
  [key: string]: unknown;
36
46
  }
37
47
  /**
38
- * 把 `ModelClient` 契约里的 `signal`(在 params 内部)拆到 SDK 的 `RequestOptions` 上。
39
- *
40
- * 单独导出只为**可测**:这是「默认 client 到底能不能中止在飞请求」的唯一分界点,
41
- * 白盒探查 SDK 内部不现实,但这一步的输入/输出可以钉死(见 `tests/integrations/anthropic.test.ts`)。
48
+ * Anthropic API 错误:非 2xx 响应(读响应体截断进 message)或 200 流内嵌 error 事件。
49
+ * 带数值 `status` —— `engine/errors.ts` 的鸭子类型分类靠它(429 → rate_limit、
50
+ * 5xx → server、其余 4xx → api)。
42
51
  */
43
- export declare function splitSignal(params: {
44
- signal?: AbortSignal | null;
45
- [key: string]: unknown;
46
- }): {
47
- body: Record<string, unknown>;
48
- options: {
49
- signal?: AbortSignal;
50
- };
51
- };
52
- /** 创建默认 ModelClient(Anthropic)。不传则完全走 SDK 的默认凭据解析。 */
52
+ export declare class AnthropicApiError extends Error {
53
+ readonly status: number;
54
+ constructor(status: number, message: string);
55
+ }
56
+ /** 创建默认 ModelClient(Anthropic)。不传则完全走环境变量 + 官方端点。 */
53
57
  export declare function createAnthropicClient(options?: AnthropicClientOptions): ModelClient;