@tekmidian/pai 0.41.0 → 0.42.1

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 (118) hide show
  1. package/dist/aibroker-client-BP74gGwD.mjs +215 -0
  2. package/dist/aibroker-client-BP74gGwD.mjs.map +1 -0
  3. package/dist/aibroker-client-C6m71p6O.mjs +3 -0
  4. package/dist/{auto-route-BwzmlW3W.mjs → auto-route-_5zzJz5q.mjs} +2 -2
  5. package/dist/{auto-route-BwzmlW3W.mjs.map → auto-route-_5zzJz5q.mjs.map} +1 -1
  6. package/dist/{chain-zMjCDW-R.mjs → chain-DsvSHnO9.mjs} +133 -361
  7. package/dist/chain-DsvSHnO9.mjs.map +1 -0
  8. package/dist/cli/index.mjs +12 -10
  9. package/dist/cli/index.mjs.map +1 -1
  10. package/dist/cli/program.mjs +12 -10
  11. package/dist/{clusters-DRHhfli9.mjs → clusters-j0ZuNYp9.mjs} +1 -1
  12. package/dist/{clusters-DRHhfli9.mjs.map → clusters-j0ZuNYp9.mjs.map} +1 -1
  13. package/dist/{config-D1G9IFpn.mjs → config-B64vFg14.mjs} +3 -50
  14. package/dist/config-B64vFg14.mjs.map +1 -0
  15. package/dist/{config-Dl8lT4Lu.mjs → config-Bi_F6lXf.mjs} +32 -3
  16. package/dist/config-Bi_F6lXf.mjs.map +1 -0
  17. package/dist/{config-DD52BPB-.mjs → config-C_ErGddD.mjs} +1 -1
  18. package/dist/{context-handover-cache-C6_rs7JT.mjs → context-handover-cache--bm6Siim.mjs} +28 -9
  19. package/dist/context-handover-cache--bm6Siim.mjs.map +1 -0
  20. package/dist/daemon/index.mjs +13 -12
  21. package/dist/daemon/index.mjs.map +1 -1
  22. package/dist/daemon-BOAPyL_b.mjs +23 -0
  23. package/dist/{daemon-CpdVUnl_.mjs → daemon-DvXih78C.mjs} +359 -27
  24. package/dist/daemon-DvXih78C.mjs.map +1 -0
  25. package/dist/daemon-mcp/index.mjs +10 -6
  26. package/dist/daemon-mcp/index.mjs.map +1 -1
  27. package/dist/detector-C-7KRi42.mjs +5 -0
  28. package/dist/{detector-smpCm7ku.mjs → detector-C73Nxm94.mjs} +1 -1
  29. package/dist/{detector-smpCm7ku.mjs.map → detector-C73Nxm94.mjs.map} +1 -1
  30. package/dist/{factory-Bc5EyN54.mjs → factory-DEb9NmHJ.mjs} +7 -7
  31. package/dist/{factory-Bc5EyN54.mjs.map → factory-DEb9NmHJ.mjs.map} +1 -1
  32. package/dist/factory-Dbo8yNPi.mjs +3 -0
  33. package/dist/{fallback-CgQ_x4I7.mjs → fallback-8bzmg6No.mjs} +6 -5
  34. package/dist/fallback-8bzmg6No.mjs.map +1 -0
  35. package/dist/hooks/route-agents-to-worker.mjs.map +2 -2
  36. package/dist/hooks/worker-proxy.mjs.map +2 -2
  37. package/dist/hooks/worker-status-line.mjs +13 -5
  38. package/dist/hooks/worker-status-line.mjs.map +3 -3
  39. package/dist/hooks/worker-supervision.mjs +593 -0
  40. package/dist/hooks/worker-supervision.mjs.map +7 -0
  41. package/dist/{indexer-backend-rohVVKrA.mjs → indexer-backend-BPTzKFZU.mjs} +1 -1
  42. package/dist/{indexer-backend-rohVVKrA.mjs.map → indexer-backend-BPTzKFZU.mjs.map} +1 -1
  43. package/dist/{ipc-client-C7AVpsyv.mjs → ipc-client-BmypMNYk.mjs} +2 -2
  44. package/dist/{ipc-client-C7AVpsyv.mjs.map → ipc-client-BmypMNYk.mjs.map} +1 -1
  45. package/dist/{kg-entity-DbOMPdF9.mjs → kg-entity-r8duqhi9.mjs} +1 -1
  46. package/dist/{kg-entity-DbOMPdF9.mjs.map → kg-entity-r8duqhi9.mjs.map} +1 -1
  47. package/dist/{latent-ideas-iNp5s55R.mjs → latent-ideas-CtSca4qG.mjs} +2 -2
  48. package/dist/{latent-ideas-iNp5s55R.mjs.map → latent-ideas-CtSca4qG.mjs.map} +1 -1
  49. package/dist/{link-boost-NNzADHX_.mjs → link-boost-Bucnz3n8.mjs} +1 -1
  50. package/dist/{link-boost-NNzADHX_.mjs.map → link-boost-Bucnz3n8.mjs.map} +1 -1
  51. package/dist/main-resolver-CqppP_Bw.mjs +7 -0
  52. package/dist/{main-resolver-CM1IHbuu.mjs → main-resolver-Dip2VLB5.mjs} +4 -214
  53. package/dist/main-resolver-Dip2VLB5.mjs.map +1 -0
  54. package/dist/{neighborhood-AGL7oXQ2.mjs → neighborhood-CM7Jgb51.mjs} +1 -1
  55. package/dist/{neighborhood-AGL7oXQ2.mjs.map → neighborhood-CM7Jgb51.mjs.map} +1 -1
  56. package/dist/{note-context-BHwYpSFf.mjs → note-context-DCwE2A-M.mjs} +1 -1
  57. package/dist/{note-context-BHwYpSFf.mjs.map → note-context-DCwE2A-M.mjs.map} +1 -1
  58. package/dist/{planner-DsmMRIZR.mjs → planner-ogy-Zy4O.mjs} +6 -5
  59. package/dist/{planner-DsmMRIZR.mjs.map → planner-ogy-Zy4O.mjs.map} +1 -1
  60. package/dist/{postgres-Dwxe290H.mjs → postgres-CtOzfoQU.mjs} +1 -1
  61. package/dist/{postgres-Dwxe290H.mjs.map → postgres-CtOzfoQU.mjs.map} +1 -1
  62. package/dist/{program-Bed-Pd-8.mjs → program-B7N5OIJR.mjs} +36 -33
  63. package/dist/{program-Bed-Pd-8.mjs.map → program-B7N5OIJR.mjs.map} +1 -1
  64. package/dist/query-feedback-DGoVRaWD.mjs +3 -0
  65. package/dist/{query-feedback-DZfjI34w.mjs → query-feedback-Dqz-HC__.mjs} +1 -1
  66. package/dist/{query-feedback-DZfjI34w.mjs.map → query-feedback-Dqz-HC__.mjs.map} +1 -1
  67. package/dist/router-BTIGZR2_.mjs +3 -0
  68. package/dist/{router-DHracTUC.mjs → router-DD6D4j31.mjs} +1 -1
  69. package/dist/{router-DHracTUC.mjs.map → router-DD6D4j31.mjs.map} +1 -1
  70. package/dist/runtime-paths-rni52zHX.mjs +50 -0
  71. package/dist/runtime-paths-rni52zHX.mjs.map +1 -0
  72. package/dist/scope-CfYnjy5R.mjs +360 -0
  73. package/dist/scope-CfYnjy5R.mjs.map +1 -0
  74. package/dist/{server-BOuAOj9b.mjs → server-DvN-IFIV.mjs} +42 -3
  75. package/dist/server-DvN-IFIV.mjs.map +1 -0
  76. package/dist/skills/Worker/SKILL.md +3 -0
  77. package/dist/{sources-ju6AA7lL.mjs → sources-CS43CpuS.mjs} +1 -1
  78. package/dist/{sources-ju6AA7lL.mjs.map → sources-CS43CpuS.mjs.map} +1 -1
  79. package/dist/{sqlite-kFZeWCJ2.mjs → sqlite-Cq3gJcq9.mjs} +1 -1
  80. package/dist/{sqlite-kFZeWCJ2.mjs.map → sqlite-Cq3gJcq9.mjs.map} +1 -1
  81. package/dist/{state-ahFAbD8b.mjs → state-BTa10SOM.mjs} +1 -1
  82. package/dist/{state-ahFAbD8b.mjs.map → state-BTa10SOM.mjs.map} +1 -1
  83. package/dist/{state-DH_mp5Xe.mjs → state-RXepvbnO.mjs} +1 -1
  84. package/dist/{themes-DqhNUUQk.mjs → themes-B7h9YDiy.mjs} +1 -1
  85. package/dist/{themes-DqhNUUQk.mjs.map → themes-B7h9YDiy.mjs.map} +1 -1
  86. package/dist/{tools-COna9vZR.mjs → tools-BW3NLMPk.mjs} +1 -1
  87. package/dist/{tools-CMlHa9lZ.mjs → tools-LlzcV_eK.mjs} +14 -14
  88. package/dist/{tools-CMlHa9lZ.mjs.map → tools-LlzcV_eK.mjs.map} +1 -1
  89. package/dist/{trace-DTP6k4B_.mjs → trace-u4hT-pLD.mjs} +1 -1
  90. package/dist/{trace-DTP6k4B_.mjs.map → trace-u4hT-pLD.mjs.map} +1 -1
  91. package/dist/{vault-indexer-YMH22mLU.mjs → vault-indexer-mata9S7b.mjs} +1 -1
  92. package/dist/{vault-indexer-YMH22mLU.mjs.map → vault-indexer-mata9S7b.mjs.map} +1 -1
  93. package/dist/work-queue-worker-19r0cpH4.mjs +14 -0
  94. package/dist/{work-queue-worker-B3nl8yyn.mjs → work-queue-worker-DXh_FnT5.mjs} +4 -4
  95. package/dist/{work-queue-worker-B3nl8yyn.mjs.map → work-queue-worker-DXh_FnT5.mjs.map} +1 -1
  96. package/dist/{zettelkasten-DDvKRm2V.mjs → zettelkasten-F0D_XfQ4.mjs} +3 -3
  97. package/dist/{zettelkasten-DDvKRm2V.mjs.map → zettelkasten-F0D_XfQ4.mjs.map} +1 -1
  98. package/docs/commands/worker.md +1 -1
  99. package/docs/merge-demo.md +1 -0
  100. package/docs/worker.md +40 -0
  101. package/package.json +1 -1
  102. package/plugins/productivity/hooks/hooks.json +5 -0
  103. package/src/hooks/ts/user-prompt/worker-supervision.ts +123 -0
  104. package/dist/chain-zMjCDW-R.mjs.map +0 -1
  105. package/dist/config-D1G9IFpn.mjs.map +0 -1
  106. package/dist/config-Dl8lT4Lu.mjs.map +0 -1
  107. package/dist/context-handover-cache-C6_rs7JT.mjs.map +0 -1
  108. package/dist/daemon-BSL9sXxm.mjs +0 -22
  109. package/dist/daemon-CpdVUnl_.mjs.map +0 -1
  110. package/dist/detector-BLVOCiJ_.mjs +0 -5
  111. package/dist/factory-C7ua_3ik.mjs +0 -3
  112. package/dist/fallback-CgQ_x4I7.mjs.map +0 -1
  113. package/dist/main-resolver-CM1IHbuu.mjs.map +0 -1
  114. package/dist/main-resolver-E5WlilhM.mjs +0 -6
  115. package/dist/query-feedback-CGcEiGtY.mjs +0 -3
  116. package/dist/router-CAtyVQud.mjs +0 -3
  117. package/dist/server-BOuAOj9b.mjs.map +0 -1
  118. package/dist/work-queue-worker-BM1GcAAq.mjs +0 -14
@@ -525,6 +525,9 @@ function shortText(s, n) {
525
525
 
526
526
  // src/workers/status.ts
527
527
  var UNLABELED = "unlabeled";
528
+ function isChatPane(s) {
529
+ return s.origin === "chat" || !s.origin && (s.label === UNLABELED || s.label === "(no prompt)") && s.turns === 0;
530
+ }
528
531
  function loadStatuses(logDir) {
529
532
  if (!existsSync2(logDir)) return [];
530
533
  const out = [];
@@ -579,7 +582,7 @@ var SESSION_MAP_PRUNE_MS = 60 * 6e4;
579
582
  function sessionMapPath(logDir) {
580
583
  return join4(logDir, "claude-session-map.json");
581
584
  }
582
- function recordSessionMapEntry(logDir, cwd2, session, now = Date.now()) {
585
+ function recordSessionMapEntry(logDir, cwd2, session, term2, now = Date.now()) {
583
586
  if (!cwd2 || !session) return;
584
587
  const path = sessionMapPath(logDir);
585
588
  let map = {};
@@ -591,12 +594,14 @@ function recordSessionMapEntry(logDir, cwd2, session, now = Date.now()) {
591
594
  map = {};
592
595
  }
593
596
  const prev = map[cwd2];
594
- if (prev && prev.session === session && now - prev.ts < 6e4) return;
597
+ if (prev && prev.session === session && (prev.term ?? "") === (term2 ?? "") && now - prev.ts < 6e4) {
598
+ return;
599
+ }
595
600
  const pruned = {};
596
601
  for (const [dir, e] of Object.entries(map)) {
597
602
  if (now - e.ts < SESSION_MAP_PRUNE_MS) pruned[dir] = e;
598
603
  }
599
- pruned[cwd2] = { session, ts: now };
604
+ pruned[cwd2] = { session, ts: now, ...term2 ? { term: term2 } : {} };
600
605
  try {
601
606
  mkdirSync2(logDir, { recursive: true });
602
607
  const tmp = `${path}.tmp`;
@@ -618,6 +623,9 @@ var WORKER_CONTRACT_PROMPT = [
618
623
  "notes: one line, the headline a reviewer reads first.",
619
624
  "Never write shell heredocs \u2014 write the script to a file with the Write tool, then run it",
620
625
  "(heredocs fail silently or get swallowed).",
626
+ "Never inline code one-liners (python3 -c, node -e, ruby -e and friends) \u2014 the permission layer",
627
+ 'denies them ("ztk: command denied by permission rules"); write the script to a file with the',
628
+ "Write tool and run it (python3 script.py), or use jq for JSON inspection.",
621
629
  "",
622
630
  `Operator messages: a user turn starting with ${OPERATOR_MARK} was typed by the operator while you`,
623
631
  "run (the prompt of a resumed run is the operator's too). Answer it FIRST, in one or two plain lines \u2014",
@@ -645,7 +653,7 @@ function stepOf(last) {
645
653
  }
646
654
  function renderStatusLine(mine, now = /* @__PURE__ */ new Date()) {
647
655
  if (!mine.length) return "";
648
- const isChat = (s) => s.origin === "chat" || !s.origin && (s.label === UNLABELED || s.label === "(no prompt)") && s.turns === 0;
656
+ const isChat = isChatPane;
649
657
  const chat = mine.find((s) => isChat(s) && s.state === "running" && alive(s.pid));
650
658
  const running = mine.filter((s) => !isChat(s) && s.state === "running" && alive(s.pid)).sort((a, b) => a.started.localeCompare(b.started));
651
659
  const today = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}`;
@@ -687,7 +695,7 @@ var cwd = process.argv[3] ?? process.cwd();
687
695
  var claudeSession = process.argv[4] ?? "";
688
696
  try {
689
697
  const logDir = workersLogDir(readWorkersSection().workers);
690
- if (claudeSession) recordSessionMapEntry(logDir, cwd, claudeSession);
698
+ if (claudeSession) recordSessionMapEntry(logDir, cwd, claudeSession, term);
691
699
  const out = statusLineOutput(logDir, term, cwd, claudeSession);
692
700
  if (out) process.stdout.write(out + "\n");
693
701
  } catch {