@rubytech/create-maxy-code 0.1.66 → 0.1.68

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 (121) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/PLUGIN.md +1 -1
  3. package/payload/platform/plugins/admin/hooks/__tests__/turn-completed-graph-write.test.sh +251 -94
  4. package/payload/platform/plugins/admin/hooks/turn-completed-graph-write.sh +119 -71
  5. package/payload/platform/plugins/docs/references/admin-session.md +54 -11
  6. package/payload/platform/plugins/docs/references/deployment.md +2 -2
  7. package/payload/platform/plugins/docs/references/internals.md +2 -0
  8. package/payload/platform/plugins/docs/references/platform.md +1 -1
  9. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.js +3 -2
  10. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.js.map +1 -1
  11. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.d.ts.map +1 -1
  12. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.js +55 -55
  13. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.js.map +1 -1
  14. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts +4 -4
  15. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +3 -0
  16. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  17. package/payload/platform/services/claude-session-manager/dist/http-server.js +73 -1
  18. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  19. package/payload/platform/services/claude-session-manager/dist/index.js +18 -0
  20. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  21. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.d.ts +42 -0
  22. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.d.ts.map +1 -0
  23. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.js +330 -0
  24. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.js.map +1 -0
  25. package/payload/platform/services/claude-session-manager/dist/mcp-tools-probe.d.ts +36 -0
  26. package/payload/platform/services/claude-session-manager/dist/mcp-tools-probe.d.ts.map +1 -0
  27. package/payload/platform/services/claude-session-manager/dist/mcp-tools-probe.js +131 -0
  28. package/payload/platform/services/claude-session-manager/dist/mcp-tools-probe.js.map +1 -0
  29. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +53 -1
  30. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  31. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +134 -6
  32. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  33. package/payload/platform/services/claude-session-manager/dist/session-store.d.ts +9 -0
  34. package/payload/platform/services/claude-session-manager/dist/session-store.d.ts.map +1 -1
  35. package/payload/platform/services/claude-session-manager/dist/session-store.js.map +1 -1
  36. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +8 -5
  37. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
  38. package/payload/platform/services/claude-session-manager/dist/system-prompt.js +35 -16
  39. package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
  40. package/payload/platform/templates/agents/admin/IDENTITY.md +8 -0
  41. package/payload/platform/templates/agents/admin/SOUL.md +1 -1
  42. package/payload/platform/templates/specialists/agents/database-operator.md +35 -10
  43. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/SKILL.md +36 -5
  44. package/payload/server/{chunk-S6PQA6Q4.js → chunk-HZ77KMTV.js} +1 -1
  45. package/payload/server/{chunk-NPZKH5EC.js → chunk-ITQ55PCQ.js} +1 -1
  46. package/payload/server/{chunk-X3Y6ENKA.js → chunk-VGMVEYX7.js} +35 -61
  47. package/payload/server/{cloudflare-task-tracker-TL6R364J.js → cloudflare-task-tracker-PZBX7X3D.js} +2 -2
  48. package/payload/server/maxy-edge.js +2 -2
  49. package/payload/server/public/assets/{admin-ymReS1mN.js → admin-BPRjc4z9.js} +3 -3
  50. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-DgfgldJT.js → architectureDiagram-Q4EWVU46-Asw7tNG5.js} +1 -1
  51. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-agu8GDzA.js → blockDiagram-DXYQGD6D-Blvay4_b.js} +1 -1
  52. package/payload/server/public/assets/{brand-BWCtpG7_.js → brand-B8JhGW9e.js} +1 -1
  53. package/payload/server/public/assets/{brand-BDASZqMG.css → brand-CwHvVF8s.css} +1 -1
  54. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-CmNsUmAe.js → c4Diagram-AHTNJAMY-C2st6jZP.js} +1 -1
  55. package/payload/server/public/assets/channel-DTh_uFbz.js +1 -0
  56. package/payload/server/public/assets/{chunk-336JU56O-D9Uts7k9.js → chunk-336JU56O-Cp7B2yh1.js} +2 -2
  57. package/payload/server/public/assets/{chunk-426QAEUC-D4ABqXMn.js → chunk-426QAEUC-B0x3RXvj.js} +1 -1
  58. package/payload/server/public/assets/{chunk-4TB4RGXK-D1KE4OAX.js → chunk-4TB4RGXK-B0yM0pgq.js} +1 -1
  59. package/payload/server/public/assets/{chunk-5FUZZQ4R-CAh0GXe2.js → chunk-5FUZZQ4R-CqGhfArO.js} +1 -1
  60. package/payload/server/public/assets/{chunk-5PVQY5BW-DBHa6HOv.js → chunk-5PVQY5BW-jSeD3Yrj.js} +1 -1
  61. package/payload/server/public/assets/{chunk-EDXVE4YY-BDC-6mL3.js → chunk-EDXVE4YY-C7HuvG2r.js} +1 -1
  62. package/payload/server/public/assets/{chunk-ENJZ2VHE-CH3uROkW.js → chunk-ENJZ2VHE-DzCrge6H.js} +1 -1
  63. package/payload/server/public/assets/{chunk-ICPOFSXX-BzZf0nAw.js → chunk-ICPOFSXX-BPvCh0Yc.js} +1 -1
  64. package/payload/server/public/assets/{chunk-OYMX7WX6-BrLHrI6O.js → chunk-OYMX7WX6-DamxwrTn.js} +1 -1
  65. package/payload/server/public/assets/{chunk-U2HBQHQK-Bw4UkLe_.js → chunk-U2HBQHQK-DDiVd0qV.js} +1 -1
  66. package/payload/server/public/assets/{chunk-X2U36JSP-23xgdk05.js → chunk-X2U36JSP-CDof681v.js} +1 -1
  67. package/payload/server/public/assets/{chunk-YZCP3GAM-BA8iGgRa.js → chunk-YZCP3GAM-DYzaYjrN.js} +1 -1
  68. package/payload/server/public/assets/{chunk-ZZ45TVLE-B-ol4EgR.js → chunk-ZZ45TVLE-j0bcHHzU.js} +1 -1
  69. package/payload/server/public/assets/classDiagram-6PBFFD2Q-Dsupydrn.js +1 -0
  70. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DrwAXnBf.js +1 -0
  71. package/payload/server/public/assets/clone-COx5mf-H.js +1 -0
  72. package/payload/server/public/assets/{dagre--kXszEIb.js → dagre-C8nbdG6y.js} +1 -1
  73. package/payload/server/public/assets/{dagre-KV5264BT-amN1uU2d.js → dagre-KV5264BT-1RnGN_fy.js} +1 -1
  74. package/payload/server/public/assets/data-DOI26n9p.js +1 -0
  75. package/payload/server/public/assets/{device-url-actions-CPoz5fqz.js → device-url-actions-C_Keyr0L.js} +1 -1
  76. package/payload/server/public/assets/{diagram-5BDNPKRD-Cwizs9tP.js → diagram-5BDNPKRD-C6d3Rrui.js} +1 -1
  77. package/payload/server/public/assets/{diagram-G4DWMVQ6-BpSu5Uao.js → diagram-G4DWMVQ6-aD4Dik01.js} +1 -1
  78. package/payload/server/public/assets/{diagram-MMDJMWI5-DiArtkto.js → diagram-MMDJMWI5-CAub49YE.js} +1 -1
  79. package/payload/server/public/assets/{diagram-TYMM5635-_tygK58Y.js → diagram-TYMM5635-CAKnAfEr.js} +1 -1
  80. package/payload/server/public/assets/{erDiagram-SMLLAGMA-CBV6LWYA.js → erDiagram-SMLLAGMA-BrqOworC.js} +1 -1
  81. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-CHZFrtOU.js → flowDiagram-DWJPFMVM-DV4eU-T2.js} +1 -1
  82. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-B3vKq5ov.js → ganttDiagram-T4ZO3ILL-DayXUN42.js} +1 -1
  83. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-dnJPjbtj.js → gitGraphDiagram-UUTBAWPF-CK1xV1OV.js} +1 -1
  84. package/payload/server/public/assets/graph-DP9P7TKZ.js +1 -0
  85. package/payload/server/public/assets/graph-labels-BoLyECfJ.js +1 -0
  86. package/payload/server/public/assets/{graphlib-CNXtnega.js → graphlib-CkF9o1XT.js} +1 -1
  87. package/payload/server/public/assets/{infoDiagram-42DDH7IO-D8DYwVAF.js → infoDiagram-42DDH7IO-CiepM2H6.js} +1 -1
  88. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-CfEVY2Ud.js → ishikawaDiagram-UXIWVN3A-DwNkdQ6z.js} +1 -1
  89. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-FmoBq7Kh.js → journeyDiagram-VCZTEJTY-BlDLMfu_.js} +1 -1
  90. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-B-Q9qk99.js → kanban-definition-6JOO6SKY-ayZTc0Oj.js} +1 -1
  91. package/payload/server/public/assets/{line-DZwbJENP.js → line-LhPUiuH-.js} +1 -1
  92. package/payload/server/public/assets/{mermaid-parser.core-C3ahKykw.js → mermaid-parser.core-DyZYsQv_.js} +1 -1
  93. package/payload/server/public/assets/{mermaid.core-B8OFZIE8.js → mermaid.core-CauxgRdz.js} +3 -3
  94. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CqhkfbWa.js → mindmap-definition-QFDTVHPH-CQzcaJuh.js} +1 -1
  95. package/payload/server/public/assets/{page-D-OLjort.js → page-BGv81dGN.js} +1 -1
  96. package/payload/server/public/assets/{page-DFFt9_Q0.js → page-DAw3-U_s.js} +2 -2
  97. package/payload/server/public/assets/{pieDiagram-DEJITSTG-CJqQ6u3-.js → pieDiagram-DEJITSTG-BPhAeTm9.js} +1 -1
  98. package/payload/server/public/assets/{public-rWe9ADCS.js → public-CGI24wrL.js} +5 -5
  99. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-BtEqOXQM.js → quadrantDiagram-34T5L4WZ-CxrzL3ZF.js} +1 -1
  100. package/payload/server/public/assets/{requirementDiagram-MS252O5E-DPHWUtE6.js → requirementDiagram-MS252O5E-ZBSC4fGX.js} +1 -1
  101. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-FBmc3wHT.js → sankeyDiagram-XADWPNL6-BTDBEisC.js} +1 -1
  102. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-BMSd2-1M.js → sequenceDiagram-FGHM5R23-Bv7fA5_J.js} +1 -1
  103. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-DqFbU-LT.js → stateDiagram-FHFEXIEX-D07lcZrk.js} +1 -1
  104. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Cr1Qet-f.js +1 -0
  105. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-DsfvHVK8.js → timeline-definition-GMOUNBTQ-DyeyUqKa.js} +1 -1
  106. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-kHU05mqC.js → vennDiagram-DHZGUBPP-B9FqDmwS.js} +1 -1
  107. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-C696Mez_.js → wardleyDiagram-NUSXRM2D-4-5uCIAD.js} +1 -1
  108. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-yht-JyXJ.js → xychartDiagram-5P7HB3ND-WdkP5T_y.js} +1 -1
  109. package/payload/server/public/data.html +5 -5
  110. package/payload/server/public/graph.html +5 -5
  111. package/payload/server/public/index.html +7 -7
  112. package/payload/server/public/public.html +4 -4
  113. package/payload/server/server.js +20 -6
  114. package/payload/server/public/assets/channel-DXGOX55q.js +0 -1
  115. package/payload/server/public/assets/classDiagram-6PBFFD2Q-DTuuDxpK.js +0 -1
  116. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CIw8RU0q.js +0 -1
  117. package/payload/server/public/assets/clone-O4ZyuvYl.js +0 -1
  118. package/payload/server/public/assets/data-D6U2e85B.js +0 -1
  119. package/payload/server/public/assets/graph-C274PN27.js +0 -1
  120. package/payload/server/public/assets/graph-labels-DQFzd1FY.js +0 -1
  121. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CXTnsHGq.js +0 -1
@@ -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":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAG7D,MAAM,GAAG,GAAG,0BAA0B,CAAA;AACtC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAA;AAE3D;;;;;;;mEAOmE;AACnE,SAAS,wBAAwB,CAC/B,YAAoB,EACpB,MAA8B;IAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;IACvD,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,6BAA6B,IAAI,wBAAwB,CAAC,CAAA;QACjE,OAAO,IAAI,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,+BAA+B,IAAI,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAC3H,OAAO,IAAI,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,CAAC,+BAA+B,IAAI,0CAA0C,CAAC,CAAA;QACrF,OAAO,IAAI,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,MAAM,OAAO,GAAI,MAAgC,CAAC,OAAO,CAAA;IACzD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,IAAI,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,MAAM,QAAQ,GAAI,OAAkC,CAAC,QAAQ,CAAA;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACvD,CAAC;IACD,MAAM,CAAC,4BAA4B,IAAI,qBAAqB,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACzH,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,eAAe,CACtB,GAAW,EACX,IAAc,EACd,GAAsB,EACtB,GAAW;IAEX,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE;QAChC,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,EAAE;QACR,GAAG;QACH,GAAG,EAAE,GAAgC;KACtC,CAAC,CAAA;IACF,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACnF,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAClC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QACpC,sEAAsE;QACtE,gEAAgE;QAChE,qEAAqE;QACrE,OAAO,EAAE,GAAG,EAAE,CAAE,KAAwC,CAAC,OAAO,EAAE;KACnE,CAAA;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAA;IAChC,GAAG,CAAC,aAAa,MAAM,CAAC,IAAI,eAAe,MAAM,CAAC,UAAU,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3F,GAAG,CACD,iBAAiB,MAAM,CAAC,IAAI,CAAC,QAAQ,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,YAAY,aAAa,MAAM,CAAC,IAAI,CAAC,QAAQ,cAAc,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE;QAClK,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACxG,CAAA;IACD,iEAAiE;IACjE,oEAAoE;IACpE,yEAAyE;IACzE,GAAG,CAAC,mBAAmB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;IAE3C,6DAA6D;IAC7D,yEAAyE;IACzE,yEAAyE;IACzE,iEAAiE;IACjE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;IAChF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,GAAG,CAAC,yGAAyG,CAAC,CAAA;QAC9G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IACjD,4EAA4E;IAC5E,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC,CAAA;IACzE,MAAM,WAAW,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IACtG,IAAI,WAA+C,CAAA;IACnD,IAAI,CAAC;QACH,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;YACpC,GAAG,CAAC,sBAAsB,GAAG,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAC5D,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,+CAA+C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACxG,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,GAAG,CAAC,sBAAsB,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,WAAW,CAAC,MAAM,CAAC,IAAI,QAAQ,WAAW,CAAC,GAAG,CAAC,IAAI,eAAe,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;IAE3J,kEAAkE;IAClE,qEAAqE;IACrE,sEAAsE;IACtE,gCAAgC;IAChC,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;QAChC,GAAG,CAAC,qCAAqC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACpE,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,2EAA2E;IAC3E,4EAA4E;IAC5E,kDAAkD;IAClD,IAAI,eAAe,GAAG,CAAC,CAAA;IACvB,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QAClC,IAAI,CAAC,CAAC;YAAE,SAAQ;QAChB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,0DAA0D,MAAM,SAAS,CAAC,EAAE,CAAC,CAAA;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,eAAe,IAAI,CAAC,CAAA;IACtB,CAAC;IACD,GAAG,CAAC,6CAA6C,WAAW,CAAC,KAAK,CAAC,IAAI,qBAAqB,eAAe,EAAE,CAAC,CAAA;IAE9G,sEAAsE;IACtE,4EAA4E;IAC5E,qEAAqE;IACrE,MAAM,UAAU,GAA2B,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IACpE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,OAAiB,CAAA;QACrB,IAAI,CAAC;YAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,SAAQ;QAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC5C,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;oBAAE,SAAQ;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAQ;YACV,CAAC;YACD,oEAAoE;YACpE,sEAAsE;YACtE,2BAA2B;YAC3B,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAChC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACjC,GAAG,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,mEAAmE;IACnE,uEAAuE;IACvE,8CAA8C;IAC9C,EAAE;IACF,qEAAqE;IACrE,mEAAmE;IACnE,uEAAuE;IACvE,iEAAiE;IACjE,gEAAgE;IAChE,kEAAkE;IAClE,oEAAoE;IACpE,MAAM,eAAe,GAAG,wBAAwB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;IACnE,MAAM,cAAc,GAAG;QACrB,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC;QACxD,GAAG,UAAU,CAAC,KAAK;QACnB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC;KACjD,CAAA;IACD,MAAM,eAAe,GAAG,qBAAqB,CAAC,cAAc,EAAE,WAAW,EAAE,eAAe,CAAC,CAAA;IAC3F,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YACxC,GAAG,CAAC,uDAAuD,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC,CAAA;QAC1I,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,sEAAsE;IACtE,mEAAmE;IACnE,iEAAiE;IACjE,mDAAmD;IACnD,KAAK,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAA;QAC5C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAClD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;YACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACf,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC5B,CAAC;QACD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;YACvC,GAAG,CAAC,oCAAoC,cAAc,WAAW,MAAM,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAClI,CAAC;IACH,CAAC;IACD,GAAG,CAAC,wDAAwD,eAAe,CAAC,SAAS,yBAAyB,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IAE/I,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAErE,qEAAqE;IACrE,8DAA8D;IAC9D,yEAAyE;IACzE,yEAAyE;IACzE,6DAA6D;IAC7D,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAA;IACnE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,GAAG,CAAC,oEAAoE,CAAC,CAAA;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,GAAG,CAAC,8BAA8B,uBAAuB,EAAE,CAAC,CAAA;IAE5D,yEAAyE;IACzE,wEAAwE;IACxE,2EAA2E;IAC3E,yEAAyE;IACzE,qCAAqC;IACrC,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAA;IAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,GAAG,CAAC,0DAA0D,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,GAAG,CAAC,8CAA8C,CAAC,CAAA;IAEnD,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;IACnF,IAAI,aAAqB,CAAA;IACzB,IAAI,CAAC;QACH,aAAa,GAAG,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,+CAA+C,iBAAiB,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAA;IACtD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,GAAG,CAAC,0DAA0D,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,GAAG,CAAC,+CAA+C,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC,CAAA;IAEhG,6DAA6D;IAC7D,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAC3E,MAAM,eAAe,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAC5D,GAAG,CACD,qCAAqC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE;QACrF,uBAAuB,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE;QAC9E,cAAc,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE;QACnD,mBAAmB,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAChE,CAAA;IAED,iEAAiE;IACjE,mEAAmE;IACnE,sEAAsE;IACtE,sEAAsE;IACtE,kEAAkE;IAClE,oEAAoE;IACpE,4BAA4B;IAC5B,MAAM,OAAO,GAAG,eAAe,CAAC;QAC9B,WAAW,EAAE,WAAW,EAAE;QAC1B,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC/C,MAAM,EAAE,GAAG;KACZ,CAAC,CAAA;IACF,OAAO,CAAC,QAAQ,EAAE,CAAA;IAClB,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,qEAAqE;IACrE,sEAAsE;IACtE,sEAAsE;IACtE,uCAAuC;IACvC,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,OAAO;QACP,KAAK;QACL,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,GAAG;KACZ,CAAC,CAAA;IACF,MAAM,CAAC,KAAK,EAAE,CAAA;IACd,GAAG,CACD,yBAAyB,MAAM,CAAC,aAAa,oBAAoB,MAAM,CAAC,eAAe,gBAAgB,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,sBAAsB,MAAM,CAAC,iBAAiB,EAAE,CAC1O,CAAA;IAED,oEAAoE;IACpE,sEAAsE;IACtE,kEAAkE;IAClE,gEAAgE;IAChE,oEAAoE;IACpE,mEAAmE;IACnE,sEAAsE;IACtE,8DAA8D;IAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAA;IAC7D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,kGAAkG,CAAC,CAAA;IACzG,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,WAAW,EAAE,mBAAmB,CAAC,EAAE,MAAM,EAAE,aAAa,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC/E,MAAM,EAAE,GAAG;KACZ,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,YAAY,CAAC;QACvB,KAAK;QACL,OAAO;QACP,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,gBAAgB,EAAE,MAAM,CAAC,mBAAmB;QAC5C,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC9E,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS;QACT,YAAY;QACZ,MAAM;QACN,UAAU;QACV,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC;QAC1E,eAAe,EAAE,uBAAuB;QACxC,WAAW;QACX,kBAAkB;QAClB,eAAe;QACf,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,uBAAuB,EAAE,eAAe,CAAC,SAAS;QAClD,SAAS;KACV,CAAC,CAAA;IAEF,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7E,GAAG,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE;QAClC,GAAG,CAAC,mBAAmB,MAAM,aAAa,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACzD,eAAe,CAAC,KAAK,EAAE,CAAA;QACvB,MAAM,CAAC,IAAI,EAAE,CAAA;QACb,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACrB,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,sCAAsC,CAAC,CAAA;QAC9D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAA;IACD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;IAChD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;AAChD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,42 @@
1
+ import type { Logger } from './types.js';
2
+ /** Callable that posts one structured log line to the platform UI's
3
+ * `/api/admin/log-ingest` endpoint. Tests inject a spy; production uses
4
+ * `postLogLineViaFetch` from this module. Fire-and-forget — failures are
5
+ * surfaced to the manager logger but never thrown. */
6
+ export type LogLinePoster = (tag: string, level: 'info' | 'warn' | 'error', line: string) => void;
7
+ export interface JsonlTailDeps {
8
+ postLogLine: LogLinePoster;
9
+ logger: Logger;
10
+ }
11
+ export interface JsonlTailRegisterArgs {
12
+ specialist: string;
13
+ argvTools: readonly string[];
14
+ }
15
+ export interface JsonlTail {
16
+ /** Called by pty-spawner at spawn time for the database-operator
17
+ * recorder. Stamps the argv tool list against this sessionId so Line 1
18
+ * can compute `toolsArgvMissingFromExposed`. */
19
+ register(sessionId: string, args: JsonlTailRegisterArgs): void;
20
+ /** Called from the http-server's fs-watcher subscriber on
21
+ * `kind=modify source=jsonl` events. Reads bytes from the cursor to EOF
22
+ * and emits any new lines. Unregistered sessions are silently ignored
23
+ * so operator turns never get tailed. */
24
+ onJsonlModify(sessionId: string, jsonlPath: string): void;
25
+ /** Drop per-session state when the PTY exits. */
26
+ unregister(sessionId: string): void;
27
+ /** Test seam — current state for one session, or null if unregistered. */
28
+ __peek(sessionId: string): {
29
+ cursorOffset: number;
30
+ initEmitted: boolean;
31
+ nextTurnIndex: number;
32
+ } | null;
33
+ }
34
+ /** Production implementation of LogLinePoster. POSTs to the brand UI's
35
+ * loopback log-ingest route. Fire-and-forget; failure is logged via the
36
+ * manager's own logger and otherwise swallowed. */
37
+ export declare function postLogLineViaFetch(opts: {
38
+ uiPort: string;
39
+ logger: Logger;
40
+ }): LogLinePoster;
41
+ export declare function createJsonlTail(deps: JsonlTailDeps): JsonlTail;
42
+ //# sourceMappingURL=jsonl-tail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl-tail.d.ts","sourceRoot":"","sources":["../src/jsonl-tail.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAMxC;;;uDAGuD;AACvD,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;AAEjG,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,aAAa,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB;;qDAEiD;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC9D;;;8CAG0C;IAC1C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACzD,iDAAiD;IACjD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,0EAA0E;IAC1E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACxG;AAkBD;;oDAEoD;AACpD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAY3F;AAiHD,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAiK9D"}
@@ -0,0 +1,330 @@
1
+ // Task 183 — incremental JSONL tail for specialist (database-operator)
2
+ // recorder spawns. Posts two log-line shapes to /api/admin/log-ingest so a
3
+ // grep against server.log answers, for any sessionId, whether the model
4
+ // received its tools.
5
+ //
6
+ // Line 1 — `[recorder-session-init] sessionId=<id> specialist=<name>
7
+ // toolsExposedCount=<n> toolsExposed=<csv> toolsArgvCount=<n>
8
+ // toolsArgvMissingFromExposed=<csv|—>`
9
+ // Emitted once per registered session, the first time the tail finds an
10
+ // SDK-init candidate record OR — if the first `assistant` record arrives
11
+ // without any candidate matching — once as the fail-loud signal:
12
+ // `[recorder-session-init] sessionId=<id> error=init-record-not-found
13
+ // probedTypes=system.init,command_permissions,deferred_tools_delta`
14
+ // A missing init record is itself an observable, not a soft skip.
15
+ //
16
+ // Line 2 — `[recorder-turn] sessionId=<id> turnIndex=<n> stopReason=<r>
17
+ // textBytes=<n> textHead=<json-escaped first 240 chars>
18
+ // toolUseNames=<csv|—>`
19
+ // Emitted once per newly-appended `assistant` record. Records with the
20
+ // same `message.id` collapse to one line (only the first sighting
21
+ // emits). Records that contain only `thinking` blocks emit nothing.
22
+ //
23
+ // The cursor is append-only: `cursorOffset` is the byte position past the
24
+ // last `\n` we successfully parsed; the trailing fragment lives in
25
+ // `partialLine` until a future read completes it. Without this, a JSONL
26
+ // append landing mid-record produces a parse error and silently drops the
27
+ // record — exactly the failure mode this task closes.
28
+ import { existsSync, openSync, closeSync, readSync, statSync } from 'node:fs';
29
+ const HEAD_READ_CHUNK = 64 * 1024;
30
+ const TEXT_HEAD_CHARS = 240;
31
+ const INIT_PROBE_TYPES = ['system.init', 'command_permissions', 'deferred_tools_delta'];
32
+ /** Production implementation of LogLinePoster. POSTs to the brand UI's
33
+ * loopback log-ingest route. Fire-and-forget; failure is logged via the
34
+ * manager's own logger and otherwise swallowed. */
35
+ export function postLogLineViaFetch(opts) {
36
+ const url = `http://127.0.0.1:${opts.uiPort}/api/admin/log-ingest`;
37
+ return (tag, level, line) => {
38
+ void fetch(url, {
39
+ method: 'POST',
40
+ headers: { 'content-type': 'application/json' },
41
+ body: JSON.stringify({ tag, level, line }),
42
+ }).catch((err) => {
43
+ const msg = err instanceof Error ? err.message : String(err);
44
+ opts.logger(`[jsonl-tail] log-ingest-post-failed tag=${tag} err=${JSON.stringify(msg)}`);
45
+ });
46
+ };
47
+ }
48
+ /** Read a complete JSON record line. Returns the parsed object, or null
49
+ * if the line is empty / malformed (silently skipped — JSONL grew before
50
+ * the writer flushed). */
51
+ function parseJsonl(line) {
52
+ const trimmed = line.trim();
53
+ if (trimmed.length === 0)
54
+ return null;
55
+ try {
56
+ const obj = JSON.parse(trimmed);
57
+ if (obj && typeof obj === 'object' && !Array.isArray(obj)) {
58
+ return obj;
59
+ }
60
+ return null;
61
+ }
62
+ catch {
63
+ return null;
64
+ }
65
+ }
66
+ /** Probe one JSONL record for an init candidate. Returns the matched
67
+ * tool list when found, else null. Priority order matches
68
+ * `INIT_PROBE_TYPES`. Each probe is intentionally narrow: it must see
69
+ * the exact shape that a real CLI session writes, otherwise downstream
70
+ * fallbacks get their chance. */
71
+ function probeInitTools(rec) {
72
+ // (1) system.subtype=init with tools[] — the headless SDK init record.
73
+ if (rec.type === 'system' && rec.subtype === 'init') {
74
+ const tools = rec.tools;
75
+ if (Array.isArray(tools)) {
76
+ const named = tools.filter((t) => typeof t === 'string');
77
+ if (named.length > 0)
78
+ return { source: 'system.init', tools: named };
79
+ }
80
+ }
81
+ // (2) attachment.command_permissions.allowedTools — the literal
82
+ // `--allowed-tools` value reflected back.
83
+ const att = rec.attachment;
84
+ if (att && typeof att === 'object' && !Array.isArray(att)) {
85
+ const a = att;
86
+ if (a.type === 'command_permissions') {
87
+ const allowed = a.allowedTools;
88
+ if (Array.isArray(allowed)) {
89
+ const named = allowed.filter((t) => typeof t === 'string');
90
+ if (named.length > 0)
91
+ return { source: 'command_permissions', tools: named };
92
+ }
93
+ }
94
+ // (3) attachment.deferred_tools_delta.addedNames — fallback for CLI
95
+ // versions where command_permissions is empty but deferred names
96
+ // carry the resolved set.
97
+ if (a.type === 'deferred_tools_delta') {
98
+ const added = a.addedNames;
99
+ if (Array.isArray(added)) {
100
+ const named = added.filter((t) => typeof t === 'string');
101
+ if (named.length > 0)
102
+ return { source: 'deferred_tools_delta', tools: named };
103
+ }
104
+ }
105
+ }
106
+ return null;
107
+ }
108
+ /** JSON-escape a string for inclusion in a log line. Renders control
109
+ * characters as `\uXXXX`, quotes the result. Callers strip the quotes
110
+ * if they want; this module keeps them so the boundaries of
111
+ * `textHead=...` are explicit on screen. */
112
+ function jsonEscape(s) {
113
+ return JSON.stringify(s);
114
+ }
115
+ /** First N CHARACTERS (not bytes) of a string. The 240-char cap is per
116
+ * spec; we operate on UTF-16 code units which is what JavaScript's
117
+ * default substring semantics already give us. */
118
+ function head(s, max) {
119
+ if (s.length <= max)
120
+ return s;
121
+ return s.slice(0, max);
122
+ }
123
+ function summarizeAssistantRecord(rec) {
124
+ if (rec.type !== 'assistant')
125
+ return null;
126
+ const msg = rec.message;
127
+ if (!msg || typeof msg !== 'object' || Array.isArray(msg))
128
+ return null;
129
+ const m = msg;
130
+ const msgId = typeof m.id === 'string' ? m.id : null;
131
+ const stopReason = typeof m.stop_reason === 'string' ? m.stop_reason : '';
132
+ const content = m.content;
133
+ let text = '';
134
+ const toolUseNames = [];
135
+ let sawThinking = false;
136
+ if (Array.isArray(content)) {
137
+ for (const block of content) {
138
+ if (!block || typeof block !== 'object')
139
+ continue;
140
+ const b = block;
141
+ if (b.type === 'text' && typeof b.text === 'string') {
142
+ text += b.text;
143
+ }
144
+ else if (b.type === 'tool_use' && typeof b.name === 'string') {
145
+ toolUseNames.push(b.name);
146
+ }
147
+ else if (b.type === 'thinking') {
148
+ sawThinking = true;
149
+ }
150
+ }
151
+ }
152
+ else if (typeof content === 'string') {
153
+ text = content;
154
+ }
155
+ const isThinkingOnly = sawThinking && text.length === 0 && toolUseNames.length === 0;
156
+ return { msgId, text, stopReason, toolUseNames, isThinkingOnly };
157
+ }
158
+ export function createJsonlTail(deps) {
159
+ const sessions = new Map();
160
+ function emitInitFound(state, source, exposed) {
161
+ const exposedSet = new Set(exposed);
162
+ const missing = [];
163
+ for (const t of state.argvTools) {
164
+ if (!exposedSet.has(t))
165
+ missing.push(t);
166
+ }
167
+ missing.sort();
168
+ const line = `sessionId=${state.sessionId} specialist=${state.specialist}` +
169
+ ` toolsExposedCount=${exposed.length} toolsExposed=${exposed.join(',')}` +
170
+ ` toolsArgvCount=${state.argvTools.size}` +
171
+ ` toolsArgvMissingFromExposed=${missing.length === 0 ? '—' : missing.join(',')}` +
172
+ ` source=${source}`;
173
+ deps.postLogLine('recorder-session-init', 'info', line);
174
+ state.initEmitted = true;
175
+ }
176
+ function emitInitMissing(state) {
177
+ const line = `sessionId=${state.sessionId} specialist=${state.specialist}` +
178
+ ` error=init-record-not-found probedTypes=${INIT_PROBE_TYPES.join(',')}` +
179
+ ` toolsArgvCount=${state.argvTools.size}`;
180
+ deps.postLogLine('recorder-session-init', 'warn', line);
181
+ state.initEmitted = true;
182
+ }
183
+ function emitTurn(state, summary) {
184
+ const idx = state.nextTurnIndex;
185
+ state.nextTurnIndex += 1;
186
+ const textBytes = Buffer.byteLength(summary.text, 'utf8');
187
+ const namesField = summary.toolUseNames.length === 0 ? '—' : summary.toolUseNames.join(',');
188
+ const line = `sessionId=${state.sessionId} turnIndex=${idx}` +
189
+ ` stopReason=${summary.stopReason || '—'}` +
190
+ ` textBytes=${textBytes}` +
191
+ ` textHead=${jsonEscape(head(summary.text, TEXT_HEAD_CHARS))}` +
192
+ ` toolUseNames=${namesField}`;
193
+ deps.postLogLine('recorder-turn', 'info', line);
194
+ }
195
+ function processRecord(state, rec) {
196
+ // Probe init candidates against EVERY record until init emits — the
197
+ // CLI may write a `system.init` after several `attachment` records,
198
+ // and we'd rather wait one extra line than emit a fallback prematurely.
199
+ if (!state.initEmitted) {
200
+ const probed = probeInitTools(rec);
201
+ if (probed !== null) {
202
+ emitInitFound(state, probed.source, probed.tools);
203
+ }
204
+ }
205
+ // Assistant records — collapse on msg.id, skip thinking-only.
206
+ const summary = summarizeAssistantRecord(rec);
207
+ if (summary === null)
208
+ return;
209
+ if (summary.isThinkingOnly)
210
+ return;
211
+ // Force the missing-init signal once an assistant turn lands without
212
+ // any candidate having matched — the brief's "init record is itself
213
+ // an observable" rule.
214
+ if (!state.initEmitted) {
215
+ emitInitMissing(state);
216
+ }
217
+ if (summary.msgId !== null) {
218
+ if (state.emittedMsgIds.has(summary.msgId))
219
+ return;
220
+ state.emittedMsgIds.add(summary.msgId);
221
+ }
222
+ emitTurn(state, summary);
223
+ }
224
+ function readAppended(state, jsonlPath) {
225
+ let stats;
226
+ try {
227
+ stats = statSync(jsonlPath);
228
+ }
229
+ catch {
230
+ return;
231
+ }
232
+ if (!stats.isFile())
233
+ return;
234
+ const size = stats.size;
235
+ if (size <= state.cursorOffset) {
236
+ // File shrank — likely log rotation or deletion. Reset cursor;
237
+ // next modify event will read from 0.
238
+ if (size < state.cursorOffset) {
239
+ state.cursorOffset = 0;
240
+ state.partialLine = '';
241
+ }
242
+ return;
243
+ }
244
+ let fd;
245
+ try {
246
+ fd = openSync(jsonlPath, 'r');
247
+ }
248
+ catch (err) {
249
+ deps.logger(`[jsonl-tail] open-failed sessionId=${state.sessionId} path=${jsonlPath} err=${err instanceof Error ? err.message : String(err)}`);
250
+ return;
251
+ }
252
+ try {
253
+ let offset = state.cursorOffset;
254
+ let buffer = state.partialLine;
255
+ const chunk = Buffer.alloc(HEAD_READ_CHUNK);
256
+ while (offset < size) {
257
+ const want = Math.min(HEAD_READ_CHUNK, size - offset);
258
+ const n = readSync(fd, chunk, 0, want, offset);
259
+ if (n <= 0)
260
+ break;
261
+ buffer += chunk.toString('utf8', 0, n);
262
+ offset += n;
263
+ }
264
+ // Split into complete lines; the trailing fragment (after the last
265
+ // `\n`) lives in `partialLine` until a future read completes it.
266
+ const lastNl = buffer.lastIndexOf('\n');
267
+ const completeBlock = lastNl === -1 ? '' : buffer.slice(0, lastNl);
268
+ const remainder = lastNl === -1 ? buffer : buffer.slice(lastNl + 1);
269
+ state.cursorOffset = offset;
270
+ state.partialLine = remainder;
271
+ if (completeBlock.length === 0)
272
+ return;
273
+ for (const raw of completeBlock.split('\n')) {
274
+ const rec = parseJsonl(raw);
275
+ if (rec === null)
276
+ continue;
277
+ processRecord(state, rec);
278
+ }
279
+ }
280
+ finally {
281
+ try {
282
+ closeSync(fd);
283
+ }
284
+ catch { /* ignore */ }
285
+ }
286
+ }
287
+ return {
288
+ register(sessionId, args) {
289
+ if (sessions.has(sessionId))
290
+ return;
291
+ const argvTools = new Set([...args.argvTools].filter((t) => typeof t === 'string' && t.length > 0));
292
+ sessions.set(sessionId, {
293
+ sessionId,
294
+ specialist: args.specialist,
295
+ argvTools,
296
+ cursorOffset: 0,
297
+ partialLine: '',
298
+ initEmitted: false,
299
+ emittedMsgIds: new Set(),
300
+ nextTurnIndex: 0,
301
+ });
302
+ deps.logger(`[jsonl-tail] register sessionId=${sessionId} specialist=${args.specialist} argvTools=${argvTools.size}`);
303
+ },
304
+ onJsonlModify(sessionId, jsonlPath) {
305
+ const state = sessions.get(sessionId);
306
+ if (!state)
307
+ return;
308
+ if (!existsSync(jsonlPath))
309
+ return;
310
+ readAppended(state, jsonlPath);
311
+ },
312
+ unregister(sessionId) {
313
+ if (!sessions.has(sessionId))
314
+ return;
315
+ sessions.delete(sessionId);
316
+ deps.logger(`[jsonl-tail] unregister sessionId=${sessionId}`);
317
+ },
318
+ __peek(sessionId) {
319
+ const s = sessions.get(sessionId);
320
+ if (!s)
321
+ return null;
322
+ return {
323
+ cursorOffset: s.cursorOffset,
324
+ initEmitted: s.initEmitted,
325
+ nextTurnIndex: s.nextTurnIndex,
326
+ };
327
+ },
328
+ };
329
+ }
330
+ //# sourceMappingURL=jsonl-tail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl-tail.js","sourceRoot":"","sources":["../src/jsonl-tail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { spawn as nodeSpawn } from 'node:child_process';
2
+ export interface McpProbeServerDescriptor {
3
+ command: string;
4
+ args: readonly string[];
5
+ env?: Readonly<Record<string, string>>;
6
+ }
7
+ export interface McpProbeRequest {
8
+ /** Per-server descriptors as they appear in the per-spawn mcp.json
9
+ * *after* placeholder expansion. Iteration order is preserved on the
10
+ * returned Map. */
11
+ servers: ReadonlyMap<string, McpProbeServerDescriptor>;
12
+ /** Inherited env for the probe child. The descriptor's `env` block is
13
+ * merged on top. */
14
+ baseEnv: NodeJS.ProcessEnv;
15
+ /** Per-server probe timeout. After this elapses the child is SIGKILLed
16
+ * and the server's tool list is reported as empty. */
17
+ timeoutMs: number;
18
+ }
19
+ export interface McpProbeDeps {
20
+ /** Injection seam for tests. Production binds to `child_process.spawn`. */
21
+ spawn?: typeof nodeSpawn;
22
+ /** Optional logger for probe-side diagnostics. Per-spawn failures here
23
+ * are not fatal — the aggregator continues. */
24
+ logger?: (line: string) => void;
25
+ }
26
+ /** Result of one probe — server-name → unprefixed tool names (e.g.
27
+ * `memory-write`, not `mcp__memory__memory-write`). The prefix is applied
28
+ * by the aggregator when comparing against the argv allowlist. A server
29
+ * that errored, timed out, or returned a malformed response maps to an
30
+ * empty array; the aggregator's not-exposed field surfaces the gap. */
31
+ export type McpProbeResult = ReadonlyMap<string, readonly string[]>;
32
+ /** Probe every server in parallel. Returns a Map keyed by server name with
33
+ * insertion order matching the input. Missing/errored servers map to [].
34
+ * Never throws — probe failures are surfaced through empty arrays. */
35
+ export declare function probeMcpServerTools(req: McpProbeRequest, deps?: McpProbeDeps): Promise<McpProbeResult>;
36
+ //# sourceMappingURL=mcp-tools-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tools-probe.d.ts","sourceRoot":"","sources":["../src/mcp-tools-probe.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAGvD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IACvB,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B;;wBAEoB;IACpB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAA;IACtD;yBACqB;IACrB,OAAO,EAAE,MAAM,CAAC,UAAU,CAAA;IAC1B;2DACuD;IACvD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,SAAS,CAAA;IACxB;oDACgD;IAChD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC;AAED;;;;wEAIwE;AACxE,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAA;AAyGnE;;uEAEuE;AACvE,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,eAAe,EACpB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,cAAc,CAAC,CAYzB"}
@@ -0,0 +1,131 @@
1
+ // Task 178 — shadow-probe each MCP server in a spawn's mcp.json to learn
2
+ // what tools the server exposes at runtime. Used by pty-spawner.ts to emit
3
+ // the [pty-spawn-tool-inventory] line that closes the observability gap
4
+ // Task 174 §3 left open: the framework says N tools were provisioned but
5
+ // nothing in server.log records what each MCP server actually offered
6
+ // (and therefore which subset claude code could possibly load into the
7
+ // model's runtime inventory).
8
+ //
9
+ // The probe is independent of the real claude child. It re-spawns each
10
+ // MCP server in parallel using the same command+args+env the per-spawn
11
+ // mcp.json declares, drives the standard MCP initialize → tools/list
12
+ // JSON-RPC sequence over stdio (newline-delimited), captures the tool
13
+ // names, then SIGKILLs the child. The probe's tool-name list is what the
14
+ // real claude child sees from its own tools/list reply — modulo CLI-side
15
+ // filtering which is a separate observability concern (Task 178 known
16
+ // limitation; a follow-up task covers it).
17
+ //
18
+ // Per-server timeout. On timeout the server's tool list is empty; the
19
+ // aggregator in pty-spawner.ts emits the empty list and the operator can
20
+ // grep for the empty-inventory regression signature.
21
+ import { spawn as nodeSpawn } from 'node:child_process';
22
+ const PROBE_CLIENT_INFO = { name: 'maxy-pty-spawner-probe', version: '0.1.0' };
23
+ const PROBE_PROTOCOL_VERSION = '2024-11-05';
24
+ async function probeOne(name, desc, baseEnv, timeoutMs, spawnImpl, logger) {
25
+ return new Promise((resolve) => {
26
+ let child;
27
+ try {
28
+ child = spawnImpl(desc.command, desc.args, {
29
+ env: { ...baseEnv, ...(desc.env ?? {}) },
30
+ stdio: ['pipe', 'pipe', 'pipe'],
31
+ });
32
+ }
33
+ catch (err) {
34
+ const msg = err instanceof Error ? err.message : String(err);
35
+ logger?.(`[mcp-tools-probe] spawn-failed server=${name} err=${JSON.stringify(msg)}`);
36
+ resolve([]);
37
+ return;
38
+ }
39
+ let stdoutBuf = '';
40
+ let done = false;
41
+ const finish = (tools, reason) => {
42
+ if (done)
43
+ return;
44
+ done = true;
45
+ clearTimeout(timer);
46
+ try {
47
+ child.kill('SIGKILL');
48
+ }
49
+ catch { /* child may already be gone */ }
50
+ if (reason)
51
+ logger?.(`[mcp-tools-probe] finish server=${name} tools=${tools.length} reason=${reason}`);
52
+ resolve(tools);
53
+ };
54
+ const timer = setTimeout(() => finish([], 'timeout'), timeoutMs);
55
+ child.on('error', (err) => {
56
+ const msg = err instanceof Error ? err.message : String(err);
57
+ finish([], `spawn-error err=${JSON.stringify(msg)}`);
58
+ });
59
+ // The child exiting before we receive tools/list is a clean "no tools"
60
+ // signal — server crashed or refused the handshake.
61
+ child.on('exit', () => finish([], 'child-exit-before-reply'));
62
+ child.stdout.setEncoding('utf8');
63
+ child.stdout.on('data', (chunk) => {
64
+ stdoutBuf += chunk;
65
+ // Newline-delimited JSON-RPC frames. Partial line stays in stdoutBuf
66
+ // for the next chunk.
67
+ let nl = stdoutBuf.indexOf('\n');
68
+ while (nl >= 0) {
69
+ const line = stdoutBuf.slice(0, nl).trim();
70
+ stdoutBuf = stdoutBuf.slice(nl + 1);
71
+ if (line.length > 0) {
72
+ let frame = null;
73
+ try {
74
+ frame = JSON.parse(line);
75
+ }
76
+ catch {
77
+ frame = null;
78
+ }
79
+ if (frame && frame.id === 2 && frame.result?.tools) {
80
+ const tools = frame.result.tools
81
+ .map((t) => (typeof t?.name === 'string' ? t.name : null))
82
+ .filter((n) => n !== null && n.length > 0);
83
+ finish(tools);
84
+ return;
85
+ }
86
+ }
87
+ nl = stdoutBuf.indexOf('\n');
88
+ }
89
+ });
90
+ // Best-effort write — if the child died before we wrote, the error
91
+ // handler above will resolve with []. We don't await drain; MCP
92
+ // initialize + tools/list payloads are small.
93
+ const safeWrite = (frame) => {
94
+ try {
95
+ child.stdin.write(JSON.stringify(frame) + '\n');
96
+ }
97
+ catch (err) {
98
+ const msg = err instanceof Error ? err.message : String(err);
99
+ logger?.(`[mcp-tools-probe] stdin-write-failed server=${name} err=${JSON.stringify(msg)}`);
100
+ }
101
+ };
102
+ safeWrite({
103
+ jsonrpc: '2.0',
104
+ id: 1,
105
+ method: 'initialize',
106
+ params: {
107
+ protocolVersion: PROBE_PROTOCOL_VERSION,
108
+ capabilities: {},
109
+ clientInfo: PROBE_CLIENT_INFO,
110
+ },
111
+ });
112
+ safeWrite({ jsonrpc: '2.0', method: 'notifications/initialized' });
113
+ safeWrite({ jsonrpc: '2.0', id: 2, method: 'tools/list' });
114
+ });
115
+ }
116
+ /** Probe every server in parallel. Returns a Map keyed by server name with
117
+ * insertion order matching the input. Missing/errored servers map to [].
118
+ * Never throws — probe failures are surfaced through empty arrays. */
119
+ export async function probeMcpServerTools(req, deps = {}) {
120
+ const spawnImpl = deps.spawn ?? nodeSpawn;
121
+ const entries = Array.from(req.servers.entries());
122
+ const pairs = await Promise.all(entries.map(async ([name, desc]) => {
123
+ const tools = await probeOne(name, desc, req.baseEnv, req.timeoutMs, spawnImpl, deps.logger);
124
+ return [name, tools];
125
+ }));
126
+ const out = new Map();
127
+ for (const [name, tools] of pairs)
128
+ out.set(name, tools);
129
+ return out;
130
+ }
131
+ //# sourceMappingURL=mcp-tools-probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tools-probe.js","sourceRoot":"","sources":["../src/mcp-tools-probe.ts"],"names":[],"mappings":"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"}