@tekmidian/pai 0.66.47 → 0.66.49

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 (76) hide show
  1. package/dist/auto-route-CMARQbQ4.mjs +8 -0
  2. package/dist/{auto-route-DrncbMaz.mjs → auto-route-Dpm6nZ6X.mjs} +2 -2
  3. package/dist/{auto-route-DrncbMaz.mjs.map → auto-route-Dpm6nZ6X.mjs.map} +1 -1
  4. package/dist/{chain-Bba4Y8A8.mjs → chain-xSc3-u0X.mjs} +5 -5
  5. package/dist/{chain-Bba4Y8A8.mjs.map → chain-xSc3-u0X.mjs.map} +1 -1
  6. package/dist/cli/index.mjs +14 -14
  7. package/dist/cli/program.mjs +14 -14
  8. package/dist/{config-2pR0RqHM.mjs → config-CYjjGSWq.mjs} +41 -4
  9. package/dist/config-CYjjGSWq.mjs.map +1 -0
  10. package/dist/config-IuOG1W92.mjs +4 -0
  11. package/dist/daemon/index.mjs +10 -10
  12. package/dist/{daemon-C25MKGD8.mjs → daemon-BIG7XcqE.mjs} +10 -10
  13. package/dist/{daemon-C6K3kikA.mjs → daemon-CiSmbylJ.mjs} +7 -7
  14. package/dist/{daemon-C6K3kikA.mjs.map → daemon-CiSmbylJ.mjs.map} +1 -1
  15. package/dist/daemon-mcp/index.mjs +8 -8
  16. package/dist/{fallback-DyhAZAOe.mjs → fallback-BgAukP8r.mjs} +6 -5
  17. package/dist/fallback-BgAukP8r.mjs.map +1 -0
  18. package/dist/hooks/block-sleep-poll.mjs.map +2 -2
  19. package/dist/hooks/load-project-context.mjs +26 -2
  20. package/dist/hooks/load-project-context.mjs.map +2 -2
  21. package/dist/hooks/route-agents-to-worker.mjs +26 -2
  22. package/dist/hooks/route-agents-to-worker.mjs.map +2 -2
  23. package/dist/hooks/security-validator.mjs +26 -2
  24. package/dist/hooks/security-validator.mjs.map +2 -2
  25. package/dist/hooks/worker-guard.mjs +26 -2
  26. package/dist/hooks/worker-guard.mjs.map +2 -2
  27. package/dist/hooks/worker-pool-host.mjs +242 -14
  28. package/dist/hooks/worker-pool-host.mjs.map +4 -4
  29. package/dist/hooks/worker-proxy.mjs +26 -2
  30. package/dist/hooks/worker-proxy.mjs.map +2 -2
  31. package/dist/hooks/worker-status-line.mjs +26 -2
  32. package/dist/hooks/worker-status-line.mjs.map +2 -2
  33. package/dist/hooks/worker-supervision.mjs +26 -2
  34. package/dist/hooks/worker-supervision.mjs.map +2 -2
  35. package/dist/index.mjs +4 -4
  36. package/dist/{local-EmOjw5jq.mjs → local-Bt-7L0oB.mjs} +3 -3
  37. package/dist/{local-EmOjw5jq.mjs.map → local-Bt-7L0oB.mjs.map} +1 -1
  38. package/dist/local-oqPQEmhb.mjs +7 -0
  39. package/dist/{local-tiers-BIINbhkY.mjs → local-tiers-C0QSQcP1.mjs} +2 -2
  40. package/dist/{local-tiers-8fmjiySw.mjs → local-tiers-_ZOTbjeP.mjs} +2 -2
  41. package/dist/{local-tiers-8fmjiySw.mjs.map → local-tiers-_ZOTbjeP.mjs.map} +1 -1
  42. package/dist/{main-resolver-DBXvnYKp.mjs → main-resolver-BwjexuSA.mjs} +3 -3
  43. package/dist/{main-resolver-B10-lsU0.mjs → main-resolver-CVo0ab7j.mjs} +3 -3
  44. package/dist/{main-resolver-B10-lsU0.mjs.map → main-resolver-CVo0ab7j.mjs.map} +1 -1
  45. package/dist/{pai-marker-CDwQOpQ8.mjs → pai-marker-CJ6WMt05.mjs} +4 -4
  46. package/dist/{pai-marker-CDwQOpQ8.mjs.map → pai-marker-CJ6WMt05.mjs.map} +1 -1
  47. package/dist/{planner-dO-3PLjD.mjs → planner-ZKXZf9JS.mjs} +8 -8
  48. package/dist/{planner-dO-3PLjD.mjs.map → planner-ZKXZf9JS.mjs.map} +1 -1
  49. package/dist/{pool-DLhqOY3P.mjs → pool-CgsnP3La.mjs} +3 -3
  50. package/dist/{pool-DLhqOY3P.mjs.map → pool-CgsnP3La.mjs.map} +1 -1
  51. package/dist/{pool-cli-DerrWWpP.mjs → pool-cli-kGGuZCzJ.mjs} +4 -4
  52. package/dist/{pool-cli-DerrWWpP.mjs.map → pool-cli-kGGuZCzJ.mjs.map} +1 -1
  53. package/dist/{program-B7gVKc-u.mjs → program-DgcwJN6Z.mjs} +25 -463
  54. package/dist/program-DgcwJN6Z.mjs.map +1 -0
  55. package/dist/{run-a_JzcVwv.mjs → run-CsrBbtj_.mjs} +686 -21
  56. package/dist/run-CsrBbtj_.mjs.map +1 -0
  57. package/dist/{run-env-DyFZ8C1s.mjs → run-env-Cyw2iwBh.mjs} +15 -5
  58. package/dist/{run-env-DyFZ8C1s.mjs.map → run-env-Cyw2iwBh.mjs.map} +1 -1
  59. package/dist/{status-C3fBJKU_.mjs → status-B0br9zV0.mjs} +2 -2
  60. package/dist/status-B0br9zV0.mjs.map +1 -0
  61. package/dist/{supervisor-B_2JKYxe.mjs → supervisor-BZA0KICt.mjs} +7 -7
  62. package/dist/{supervisor-B_2JKYxe.mjs.map → supervisor-BZA0KICt.mjs.map} +1 -1
  63. package/dist/workers-config-BifEz8ns.mjs +4 -0
  64. package/dist/{worktree-lnmAOFQv.mjs → worktree-B6d-1uIn.mjs} +2 -2
  65. package/dist/{worktree-lnmAOFQv.mjs.map → worktree-B6d-1uIn.mjs.map} +1 -1
  66. package/docs/worker.md +22 -0
  67. package/package.json +1 -1
  68. package/dist/auto-route-DYuVfXwc.mjs +0 -8
  69. package/dist/config-2pR0RqHM.mjs.map +0 -1
  70. package/dist/config-CQWpEdXb.mjs +0 -4
  71. package/dist/fallback-DyhAZAOe.mjs.map +0 -1
  72. package/dist/local-B5SekWOC.mjs +0 -7
  73. package/dist/program-B7gVKc-u.mjs.map +0 -1
  74. package/dist/run-a_JzcVwv.mjs.map +0 -1
  75. package/dist/status-C3fBJKU_.mjs.map +0 -1
  76. package/dist/workers-config-nXSiW07z.mjs +0 -4
@@ -7825,7 +7825,10 @@ var DEFAULT_PANE = {
7825
7825
  var DEFAULT_ROUTING2 = {
7826
7826
  order: [],
7827
7827
  cooldownMinutes: 30,
7828
- retryOnQuota: true
7828
+ retryOnQuota: true,
7829
+ policy: "budget",
7830
+ priority: [],
7831
+ budgetWalls: {}
7829
7832
  };
7830
7833
  var DEFAULT_TREE = {
7831
7834
  maxDepth: 2,
@@ -8186,10 +8189,31 @@ function parseWorkersConfig(raw) {
8186
8189
  if (r.retryOnQuota !== void 0 && typeof r.retryOnQuota !== "boolean") {
8187
8190
  bad(".routing.retryOnQuota", "must be boolean");
8188
8191
  }
8192
+ if (r.policy !== void 0 && r.policy !== "budget" && r.policy !== "order") {
8193
+ bad(".routing.policy", 'must be "budget" or "order"');
8194
+ }
8195
+ if (r.priority !== void 0) {
8196
+ if (!Array.isArray(r.priority) || r.priority.some((x) => typeof x !== "string")) {
8197
+ bad(".routing.priority", "must be an array of provider names");
8198
+ }
8199
+ }
8200
+ if (r.budgetWalls !== void 0) {
8201
+ if (typeof r.budgetWalls !== "object" || r.budgetWalls === null || Array.isArray(r.budgetWalls)) {
8202
+ bad(".routing.budgetWalls", "must be an object of provider name \u2192 percent");
8203
+ }
8204
+ for (const [k, v] of Object.entries(r.budgetWalls)) {
8205
+ if (typeof v !== "number" || !Number.isFinite(v) || v < 0 || v > 100) {
8206
+ bad(`.routing.budgetWalls.${k}`, "must be a percent 0\u2013100");
8207
+ }
8208
+ }
8209
+ }
8189
8210
  routing = {
8190
8211
  order: routing.order,
8191
8212
  cooldownMinutes: r.cooldownMinutes === void 0 ? DEFAULT_ROUTING2.cooldownMinutes : r.cooldownMinutes,
8192
- retryOnQuota: r.retryOnQuota === void 0 ? DEFAULT_ROUTING2.retryOnQuota : r.retryOnQuota === true
8213
+ retryOnQuota: r.retryOnQuota === void 0 ? DEFAULT_ROUTING2.retryOnQuota : r.retryOnQuota === true,
8214
+ policy: r.policy ?? DEFAULT_ROUTING2.policy,
8215
+ priority: r.priority === void 0 ? [] : [...r.priority],
8216
+ budgetWalls: r.budgetWalls === void 0 ? {} : { ...r.budgetWalls }
8193
8217
  };
8194
8218
  }
8195
8219
  let tree = { ...DEFAULT_TREE };