@sema-agent/server 1.188.0 → 1.190.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 (68) hide show
  1. package/README.md +2 -2
  2. package/deploy/sema-up/README.md +1 -1
  3. package/deploy/sema-up/chart/templates/server-v4pro.yaml +10 -0
  4. package/deploy/sema-up/chart/templates/server.yaml +11 -0
  5. package/deploy/sema-up/chart/values.yaml +10 -0
  6. package/deploy/sema-up/cluster-up.sh +1 -1
  7. package/deploy/sema-up/machines.example.yaml +2 -2
  8. package/deploy/sema-up/sema-up.sh +1 -1
  9. package/deploy/sema-up/stack/compose.yaml +7 -0
  10. package/dist/capabilities/sandbox-file-send.d.ts +3 -1
  11. package/dist/capabilities/sandbox-file-send.d.ts.map +1 -1
  12. package/dist/capabilities/sandbox-file-send.js +8 -1
  13. package/dist/capabilities/sandbox-file-send.js.map +1 -1
  14. package/dist/capabilities/send-user-file-tool.d.ts +1 -0
  15. package/dist/capabilities/send-user-file-tool.d.ts.map +1 -1
  16. package/dist/capabilities/send-user-file-tool.js +1 -0
  17. package/dist/capabilities/send-user-file-tool.js.map +1 -1
  18. package/dist/config.d.ts +7 -0
  19. package/dist/config.d.ts.map +1 -1
  20. package/dist/config.js +46 -9
  21. package/dist/config.js.map +1 -1
  22. package/dist/http/server.d.ts +1 -0
  23. package/dist/http/server.d.ts.map +1 -1
  24. package/dist/http/server.js +93 -17
  25. package/dist/http/server.js.map +1 -1
  26. package/dist/main.js +18 -9
  27. package/dist/main.js.map +1 -1
  28. package/dist/orchestration/workflow-completion-inbox.d.ts +12 -0
  29. package/dist/orchestration/workflow-completion-inbox.d.ts.map +1 -1
  30. package/dist/orchestration/workflow-completion-inbox.js +18 -0
  31. package/dist/orchestration/workflow-completion-inbox.js.map +1 -1
  32. package/dist/plugins/pg-pool.d.ts.map +1 -1
  33. package/dist/plugins/pg-pool.js +15 -0
  34. package/dist/plugins/pg-pool.js.map +1 -1
  35. package/dist/plugins/s3-presign.d.ts +11 -0
  36. package/dist/plugins/s3-presign.d.ts.map +1 -1
  37. package/dist/plugins/s3-presign.js +14 -5
  38. package/dist/plugins/s3-presign.js.map +1 -1
  39. package/dist/plugins/send-file-ledger.d.ts +64 -0
  40. package/dist/plugins/send-file-ledger.d.ts.map +1 -0
  41. package/dist/plugins/send-file-ledger.js +142 -0
  42. package/dist/plugins/send-file-ledger.js.map +1 -0
  43. package/dist/plugins/send-user-file.d.ts +6 -2
  44. package/dist/plugins/send-user-file.d.ts.map +1 -1
  45. package/dist/plugins/send-user-file.js +39 -11
  46. package/dist/plugins/send-user-file.js.map +1 -1
  47. package/dist/plugins/store-backend.d.ts +2 -0
  48. package/dist/plugins/store-backend.d.ts.map +1 -1
  49. package/dist/plugins/store-backend.js +7 -0
  50. package/dist/plugins/store-backend.js.map +1 -1
  51. package/dist/plugins/tidb-pool.d.ts.map +1 -1
  52. package/dist/plugins/tidb-pool.js +15 -0
  53. package/dist/plugins/tidb-pool.js.map +1 -1
  54. package/dist/run-local.d.ts.map +1 -1
  55. package/dist/run-local.js +2 -1
  56. package/dist/run-local.js.map +1 -1
  57. package/dist/runs.d.ts.map +1 -1
  58. package/dist/runs.js +16 -9
  59. package/dist/runs.js.map +1 -1
  60. package/dist/security.d.ts +2 -0
  61. package/dist/security.d.ts.map +1 -1
  62. package/dist/security.js +20 -3
  63. package/dist/security.js.map +1 -1
  64. package/dist/trace/project.d.ts +4 -0
  65. package/dist/trace/project.d.ts.map +1 -1
  66. package/dist/trace/project.js +4 -0
  67. package/dist/trace/project.js.map +1 -1
  68. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/http/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/http/server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAA+P,KAAK,aAAa,EAAiI,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAmB,KAAK,aAAa,EAAsB,KAAK,cAAc,EAAwB,KAAK,gBAAgB,EAAwK,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAClxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAiJ,KAAK,sBAAsB,EAAwB,MAAM,gBAAgB,CAAC;AAGlO,OAAO,KAAK,EAAyB,SAAS,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGrG,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGrO,OAAO,EAA0B,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAQ5G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACrG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAgI,KAAK,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAC3N,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAqC,KAAK,aAAa,EAAqF,MAAM,uBAAuB,CAAC;AACjL,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAGnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQtD,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IAGtB,mBAAmB,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,mBAAmB,EAAE,aAAa,CAAC,CAAA;KAAE,CAAC;IAEzG,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAUlF,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,MAAM,CAAA;KAAE,CAAC;IAE3G,aAAa,CAAC,EAAE,OAAO,CAAC;IAKxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAI3B,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAG3B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,8BAA8B,EAAE,cAAc,CAAC,CAAC;IAKxF,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,GAAG,EAAE,eAAe,CAAC;QAAC,IAAI,EAAE,eAAe,CAAA;KAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAM3F,WAAW,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3H,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAGpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC,aAAa,CAAC,EAAE;QAAE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAG3E,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAGhD,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAG/C,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAQ7C,OAAO,CAAC,EAAE,YAAY,CAAC;IAQvB,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAElG,aAAa,CAAC,EAAE,aAAa,CAAC;IAG9B,eAAe,CAAC,EAAE,mBAAmB,CAAC;IAGtC,UAAU,CAAC,EAAE,UAAU,CAAC;IAMxB,UAAU,CAAC,EAAE,SAAS,CAAC;IAGvB,cAAc,CAAC,EAAE,cAAc,CAAC;IAKhC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAKpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAK3B,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAK9C,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAM9C,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAIlD,QAAQ,CAAC,EAAE,aAAa,CAAC;IAEzB,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAKhH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IAKxC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE/G,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,WAAW,CAAC,EAAE,QAAQ,CAAC;IAGvB,SAAS,CAAC,EAAE,YAAY,CAAC;IAEzB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAG/B,WAAW,CAAC,EAAE,OAAO,iCAAiC,EAAE,WAAW,CAAC;IAIpE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAMzD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAGxF,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAGpD,cAAc,CAAC,EAAE,cAAc,CAAC;IAGhC,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAI/B,WAAW,CAAC,EAAE,sBAAsB,CAAC;IAIrC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAE/B,YAAY,CAAC,EAAE,OAAO,wCAAwC,EAAE,mBAAmB,CAAC;IAGpF,cAAc,CAAC,EAAE,OAAO,gCAAgC,EAAE,cAAc,CAAC;IAIzE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMvC,YAAY,CAAC,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAKrE,aAAa,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAM1D,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IAItB,OAAO,CAAC,EAAE,OAAO,CAAC;IAIlB,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAMvE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAK9B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMvC,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAKjC,kBAAkB,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjE,WAAW,CAAC,EAAE,OAAO,CAAC;IAKtB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,UAAU,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAE1F,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAG5B,WAAW,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,GAAG;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAKtK,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAMhC,sBAAsB,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAMpE,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,WAAW,CAAC,EAAE,OAAO,CAAC;IAQtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,GAAG,CAAC,EAAE,MAAM,CAAC;IAMb,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAK7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAM5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAGD,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAG9C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAgB9C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWjE;AAKD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,kBAAkB,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAEhH;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAIpF;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,OAAO,GAAG,aAAa,CAevG;AAgBD,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,kBAAkB,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAGxG;AAOD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,kBAAkB,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAE9G;AAID,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CAK3F;AAGD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAGpD;AAUD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEtI;AAKD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,cAAc,CAehE;AA8GD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG;IAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CA2gL1H;AAgMD,wBAAsB,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,GAAE,MAAiC,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDlN"}
@@ -17,7 +17,7 @@ import { manifestToIndexEntry } from "../images/manifest.js";
17
17
  import { runInBackground, evictIfConflict, stripCheckpointToken, resumeAtHttpStatus, TurnAnchorCapture, HEARTBEAT_MS, markChildrenStoppedByUserOnAbort } from "../runs.js";
18
18
  import { looksLikeJwt } from "../auth-bridge.js";
19
19
  import { redactSteerIn } from "../orchestration/workflow-agent-steer.js";
20
- import { emitPendingWorkflowCompletions, taskNotificationInboxEntry, taskNotificationFoldKey } from "../orchestration/workflow-completion-inbox.js";
20
+ import { emitPendingWorkflowCompletions, taskNotificationInboxEntry, taskNotificationFoldKey, taskNotificationStreamKey, NotifiedKeys } from "../orchestration/workflow-completion-inbox.js";
21
21
  import { fleetRunPublisher, fleetRunLabels } from "../fleet/fleet-bus.js";
22
22
  import { RateLimiter } from "../observability/rate-limit.js";
23
23
  import { withPrincipal } from "../observability/principal-context.js";
@@ -600,8 +600,9 @@ export function createHttpServer(deps) {
600
600
  rewindFilesTo: Boolean(deps.fileSnapshotStore && deps.resumeAnchorStore && deps.sessionStorage?.getLeafId),
601
601
  scheduler: Boolean(deps.config.schedulerEnabled && deps.config.requirePrincipal !== true && deps.config.remoteExec?.provider === "host"),
602
602
  sessionSync: Boolean(deps.backend && deps.sessionStorage?.exportEntries && deps.fileSnapshotStore),
603
- sendUserFile: Boolean(deps.config.sendUserFile),
603
+ sendUserFile: Boolean(deps.sendUserFile && deps.config.sendUserFile?.publicEndpoint),
604
604
  s3PublicEndpoint: deps.config.sendUserFile?.publicEndpoint ?? null,
605
+ sendUserFileLedger: Boolean(deps.sendFileLedger),
605
606
  workflows: deps.workflowsCapable ?? Boolean(deps.workflowRunStore),
606
607
  workflowsList: Boolean(deps.workflowRunStore),
607
608
  manualCompact: Boolean(deps.runStore),
@@ -735,7 +736,7 @@ export function createHttpServer(deps) {
735
736
  let liveStreamRef;
736
737
  const subagentHandleEvictions = [];
737
738
  let syncLegLive = true;
738
- const syncNotifiedKeys = new Set();
739
+ const syncNotifiedKeys = new NotifiedKeys();
739
740
  fleetPub?.onStart();
740
741
  try {
741
742
  const streamBody = async () => {
@@ -777,9 +778,9 @@ export function createHttpServer(deps) {
777
778
  void deps.workflowCompletionInbox.enqueue(taskNotificationInboxEntry(prepared.spec.sessionId, askOwner, n, Date.now(), durableTaskId)).catch((err) => deps.logger?.warn?.("park_enqueue_failed", { route: "sync-stream", taskId: n.task_id, err: err instanceof Error ? err.message : String(err) }));
778
779
  }
779
780
  else if (deliverable) {
780
- const key = `${n.task_id}:${n.status}`;
781
- if (!syncNotifiedKeys.has(key)) {
782
- syncNotifiedKeys.add(key);
781
+ const key = taskNotificationStreamKey(n);
782
+ if (syncNotifiedKeys.get(key) === undefined) {
783
+ syncNotifiedKeys.set(key, Promise.resolve(true));
783
784
  res.write(`data: ${JSON.stringify({ type: "task_notification", ...taskNotificationEventData({ notification: n }) })}\n\n`);
784
785
  }
785
786
  }
@@ -824,9 +825,13 @@ export function createHttpServer(deps) {
824
825
  }
825
826
  else if (ev.type === "task_notification") {
826
827
  const tnv = ev.notification;
827
- if (tnv?.task_id)
828
- syncNotifiedKeys.add(`${tnv.task_id}:${tnv.status}`);
829
- res.write(`data: ${JSON.stringify({ type: "task_notification", ...taskNotificationEventData(ev) })}\n\n`);
828
+ const tnvKey = tnv?.task_id ? taskNotificationStreamKey({ task_type: tnv.task_type, task_id: tnv.task_id, status: String(tnv.status), seq: tnv.seq }) : undefined;
829
+ const tnvPrior = tnvKey !== undefined ? syncNotifiedKeys.get(tnvKey) : undefined;
830
+ if (tnvPrior === undefined || !(await tnvPrior)) {
831
+ if (tnvKey !== undefined)
832
+ syncNotifiedKeys.set(tnvKey, Promise.resolve(true));
833
+ res.write(`data: ${JSON.stringify({ type: "task_notification", ...taskNotificationEventData(ev) })}\n\n`);
834
+ }
830
835
  }
831
836
  else if (ev.type === "reasoning_delta" && typeof ev.delta === "string") {
832
837
  res.write(`data: ${JSON.stringify({ ...ev, delta: redactSecrets(ev.delta) })}\n\n`);
@@ -855,6 +860,9 @@ export function createHttpServer(deps) {
855
860
  await emitPendingWorkflowCompletions(deps.workflowCompletionInbox, prepared.spec.sessionId, askOwner, (frame) => {
856
861
  if (closed || res.writableEnded || res.destroyed)
857
862
  throw new Error("stream ended before the completion frame was written");
863
+ const f = frame;
864
+ if (f.type === "task_notification" && f.task_id)
865
+ syncNotifiedKeys.set(taskNotificationStreamKey({ task_type: f.task_type, task_id: f.task_id, status: String(f.status), seq: f.seq }), Promise.resolve(true));
858
866
  res.write(`data: ${JSON.stringify(frame)}\n\n`);
859
867
  }, { route: "sync-stream-open", connection: "live-sse", log: (m, x) => deps.logger?.info?.(m, x) });
860
868
  const withElicit = deps.elicitation
@@ -2536,6 +2544,67 @@ export function createHttpServer(deps) {
2536
2544
  await handleSessionList(res, lister, new URL(req.url ?? "", "http://x").searchParams, gateOwner);
2537
2545
  return;
2538
2546
  }
2547
+ if (req.method === "GET" && url === "/v1/sendfile-links") {
2548
+ const { fleetWide, gateOwner } = sessionOwnerScope(req);
2549
+ if (!fleetWide && gateOwner === null) {
2550
+ sendJson(res, 401, { error: "unauthorized" });
2551
+ return;
2552
+ }
2553
+ if (!deps.sendFileLedger) {
2554
+ sendJson(res, 501, { error: "sendfile ledger requires a store backend (DB_BACKEND=tidb|pg|local) and the SendUserFile issuer configured" });
2555
+ return;
2556
+ }
2557
+ const query = new URL(req.url ?? "", "http://x").searchParams;
2558
+ const limitRaw = query.get("limit");
2559
+ if (limitRaw !== null && !(/^[0-9]+$/.test(limitRaw) && Number(limitRaw) >= 1 && Number(limitRaw) <= 100)) {
2560
+ sendJson(res, 400, { error: "limit must be a decimal integer in 1..100" });
2561
+ return;
2562
+ }
2563
+ const limit = limitRaw === null ? 50 : Number(limitRaw);
2564
+ const beforeRaw = query.get("before");
2565
+ if (beforeRaw !== null && !isUuidV7(beforeRaw)) {
2566
+ sendJson(res, 400, { error: "before must be a uuidv7 link id (the `id`/`nextBefore` of a previous page)" });
2567
+ return;
2568
+ }
2569
+ const before = beforeRaw ?? undefined;
2570
+ let scope;
2571
+ if (gateOwner !== null) {
2572
+ scope = gateOwner;
2573
+ }
2574
+ else {
2575
+ const scopeRaw = query.get("scope");
2576
+ if (scopeRaw === null) {
2577
+ scope = "_";
2578
+ }
2579
+ else {
2580
+ const s = scopeRaw.trim();
2581
+ if (s === "" || s.length > 190) {
2582
+ sendJson(res, 400, { error: "scope must be a non-blank tenant principal of at most 190 characters (the sendfile_link.scope column width)" });
2583
+ return;
2584
+ }
2585
+ scope = s;
2586
+ }
2587
+ }
2588
+ const rows = await deps.sendFileLedger.listByScope(scope, limit + 1, before);
2589
+ const hasMore = rows.length > limit;
2590
+ const page = hasMore ? rows.slice(0, limit) : rows;
2591
+ sendJson(res, 200, {
2592
+ links: page.map((r) => ({
2593
+ id: r.id,
2594
+ filename: r.filename,
2595
+ size: r.size,
2596
+ ttlSec: r.ttlSec,
2597
+ track: r.track,
2598
+ bucket: r.bucket,
2599
+ key: r.objectKey,
2600
+ createdAt: new Date(r.createdAt).toISOString(),
2601
+ ...(r.taskId !== undefined ? { taskId: r.taskId } : {}),
2602
+ ...(r.sessionId !== undefined ? { sessionId: r.sessionId } : {}),
2603
+ })),
2604
+ ...(hasMore ? { nextBefore: page[page.length - 1].id } : {}),
2605
+ });
2606
+ return;
2607
+ }
2539
2608
  {
2540
2609
  const im = /^\/v1\/sessions\/([^/]+)\/init$/.exec(url);
2541
2610
  if (im && req.method === "GET") {
@@ -3791,11 +3860,15 @@ export function createHttpServer(deps) {
3791
3860
  }
3792
3861
  try {
3793
3862
  result = await withPrincipal(principal, async () => {
3863
+ const resumeNotifiedKeys = new NotifiedKeys();
3794
3864
  if (deps.runStore && taskId) {
3795
3865
  const rs0 = deps.runStore;
3796
3866
  let drainSeq = (await rs0.maxSeq(taskId)) + 1;
3797
3867
  await emitPendingWorkflowCompletions(deps.workflowCompletionInbox, sessionId, principal ?? null, (frame) => {
3798
3868
  const { type, ...rest } = frame;
3869
+ const f = frame;
3870
+ if (f.type === "task_notification" && f.task_id)
3871
+ resumeNotifiedKeys.set(taskNotificationStreamKey({ task_type: f.task_type, task_id: f.task_id, status: String(f.status), seq: f.seq }), Promise.resolve(true));
3799
3872
  return rs0.appendEvent(taskId, drainSeq++, type, rest);
3800
3873
  }, { route: "resume-open", connection: "durable-append", log: (m, x) => deps.logger?.info?.(m, x) });
3801
3874
  }
@@ -3828,7 +3901,6 @@ export function createHttpServer(deps) {
3828
3901
  let reasoning = "";
3829
3902
  const persistThinking = deps.config.traceThinking;
3830
3903
  const append = (type, data) => (rs && taskId ? rs.appendEvent(taskId, ++seq, type, data) : Promise.resolve());
3831
- const resumeNotifiedKeys = new Set();
3832
3904
  const anchorOwner = principal ?? null;
3833
3905
  const getLeafId = deps.sessionStorage?.getLeafId?.bind(deps.sessionStorage);
3834
3906
  const captureTurnAnchor = deps.resumeAnchorStore && getLeafId
@@ -3877,10 +3949,9 @@ export function createHttpServer(deps) {
3877
3949
  void deps.workflowCompletionInbox.enqueue(taskNotificationInboxEntry(sessionId, principal ?? null, n, Date.now(), taskId)).catch((err) => deps.logger?.warn?.("park_enqueue_failed", { route: "resume", taskId: n.task_id, err: err instanceof Error ? err.message : String(err) }));
3878
3950
  }
3879
3951
  else if (resumeLegLive) {
3880
- const key = `${n.task_id}:${n.status}`;
3881
- if (!resumeNotifiedKeys.has(key)) {
3882
- resumeNotifiedKeys.add(key);
3883
- void append("task_notification", taskNotificationEventData({ notification: n })).catch(() => undefined);
3952
+ const key = taskNotificationStreamKey(n);
3953
+ if (resumeNotifiedKeys.get(key) === undefined) {
3954
+ resumeNotifiedKeys.set(key, append("task_notification", taskNotificationEventData({ notification: n })).then(() => true, () => false));
3884
3955
  }
3885
3956
  }
3886
3957
  },
@@ -3941,9 +4012,14 @@ export function createHttpServer(deps) {
3941
4012
  case "task_notification": {
3942
4013
  await flush();
3943
4014
  const tnr = ev.notification;
3944
- if (tnr?.task_id)
3945
- resumeNotifiedKeys.add(`${tnr.task_id}:${tnr.status}`);
3946
- await append("task_notification", taskNotificationEventData(ev));
4015
+ const tnrKey = tnr?.task_id ? taskNotificationStreamKey({ task_type: tnr.task_type, task_id: tnr.task_id, status: String(tnr.status), seq: tnr.seq }) : undefined;
4016
+ const tnrPrior = tnrKey !== undefined ? resumeNotifiedKeys.get(tnrKey) : undefined;
4017
+ if (tnrPrior === undefined || !(await tnrPrior)) {
4018
+ const write = append("task_notification", taskNotificationEventData(ev));
4019
+ if (tnrKey !== undefined)
4020
+ resumeNotifiedKeys.set(tnrKey, write.then(() => true, () => false));
4021
+ await write;
4022
+ }
3947
4023
  break;
3948
4024
  }
3949
4025
  case "turn_end": {