@undefineds.co/linx 0.2.19 → 0.2.24

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 (125) hide show
  1. package/README.md +23 -21
  2. package/dist/index.js +93 -142
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/ai-command.js +34 -30
  5. package/dist/lib/ai-command.js.map +1 -1
  6. package/dist/lib/auto-mode/archive.js +235 -0
  7. package/dist/lib/auto-mode/archive.js.map +1 -0
  8. package/dist/lib/{watch → auto-mode}/auth.js +6 -6
  9. package/dist/lib/auto-mode/auth.js.map +1 -0
  10. package/dist/lib/{watch → auto-mode}/codex-composer.js +1 -1
  11. package/dist/lib/auto-mode/codex-composer.js.map +1 -0
  12. package/dist/lib/auto-mode/codex-footer.js.map +1 -0
  13. package/dist/lib/auto-mode/codex-overlay.js.map +1 -0
  14. package/dist/lib/{watch → auto-mode}/codex-request-form.js +2 -2
  15. package/dist/lib/auto-mode/codex-request-form.js.map +1 -0
  16. package/dist/lib/auto-mode/codex-request-input.js.map +1 -0
  17. package/dist/lib/{watch → auto-mode}/display.js +63 -57
  18. package/dist/lib/auto-mode/display.js.map +1 -0
  19. package/dist/lib/{watch → auto-mode}/format.js +24 -16
  20. package/dist/lib/auto-mode/format.js.map +1 -0
  21. package/dist/lib/{watch → auto-mode}/hooks/claude.js +3 -2
  22. package/dist/lib/auto-mode/hooks/claude.js.map +1 -0
  23. package/dist/lib/{watch → auto-mode}/hooks/codebuddy.js +3 -2
  24. package/dist/lib/auto-mode/hooks/codebuddy.js.map +1 -0
  25. package/dist/lib/auto-mode/hooks/codex.js +18 -0
  26. package/dist/lib/auto-mode/hooks/codex.js.map +1 -0
  27. package/dist/lib/auto-mode/hooks/index.js +27 -0
  28. package/dist/lib/auto-mode/hooks/index.js.map +1 -0
  29. package/dist/lib/auto-mode/hooks/shared.js.map +1 -0
  30. package/dist/lib/auto-mode/index.js.map +1 -0
  31. package/dist/lib/auto-mode/pod-ai.js +116 -0
  32. package/dist/lib/auto-mode/pod-ai.js.map +1 -0
  33. package/dist/lib/{watch → auto-mode}/pod-approval.js +495 -325
  34. package/dist/lib/auto-mode/pod-approval.js.map +1 -0
  35. package/dist/lib/auto-mode/pod-persistence.js +412 -0
  36. package/dist/lib/auto-mode/pod-persistence.js.map +1 -0
  37. package/dist/lib/{watch → auto-mode}/runner.js +280 -193
  38. package/dist/lib/auto-mode/runner.js.map +1 -0
  39. package/dist/lib/{watch → auto-mode}/secretary.js +8 -8
  40. package/dist/lib/auto-mode/secretary.js.map +1 -0
  41. package/dist/lib/{watch → auto-mode}/types.js.map +1 -1
  42. package/dist/lib/auto-mode-command.js +114 -0
  43. package/dist/lib/auto-mode-command.js.map +1 -0
  44. package/dist/lib/codex-plugin/bridge.js +11 -12
  45. package/dist/lib/codex-plugin/bridge.js.map +1 -1
  46. package/dist/lib/codex-plugin/codex-native-proxy.js +11 -12
  47. package/dist/lib/codex-plugin/codex-native-proxy.js.map +1 -1
  48. package/dist/lib/linx-tui-contract.js +26 -0
  49. package/dist/lib/linx-tui-contract.js.map +1 -0
  50. package/dist/lib/login-command.js +9 -3
  51. package/dist/lib/login-command.js.map +1 -1
  52. package/dist/lib/models.js +2 -2
  53. package/dist/lib/models.js.map +1 -1
  54. package/dist/lib/oidc-auth.js +83 -104
  55. package/dist/lib/oidc-auth.js.map +1 -1
  56. package/dist/lib/oidc-session-storage.js +7 -1
  57. package/dist/lib/oidc-session-storage.js.map +1 -1
  58. package/dist/lib/pi-adapter/auth.js +9 -15
  59. package/dist/lib/pi-adapter/auth.js.map +1 -1
  60. package/dist/lib/pi-adapter/branding.js +14 -44
  61. package/dist/lib/pi-adapter/branding.js.map +1 -1
  62. package/dist/lib/pi-adapter/interactive.js +19 -23
  63. package/dist/lib/pi-adapter/interactive.js.map +1 -1
  64. package/dist/lib/pi-adapter/pod-approval.js +239 -1
  65. package/dist/lib/pi-adapter/pod-approval.js.map +1 -1
  66. package/dist/lib/pi-adapter/pod-mirror.js +64 -59
  67. package/dist/lib/pi-adapter/pod-mirror.js.map +1 -1
  68. package/dist/lib/pi-adapter/pod-native.js +479 -0
  69. package/dist/lib/pi-adapter/pod-native.js.map +1 -0
  70. package/dist/lib/pi-adapter/pod-tools.js +76 -40
  71. package/dist/lib/pi-adapter/pod-tools.js.map +1 -1
  72. package/dist/lib/pi-adapter/runtime.js +11 -66
  73. package/dist/lib/pi-adapter/runtime.js.map +1 -1
  74. package/dist/lib/pi-adapter/session.js +276 -33
  75. package/dist/lib/pi-adapter/session.js.map +1 -1
  76. package/dist/lib/pi-adapter/stream.js.map +1 -1
  77. package/dist/lib/pi-adapter/web-fetch.js +47 -30
  78. package/dist/lib/pi-adapter/web-fetch.js.map +1 -1
  79. package/dist/lib/pod-chat-store.js +36 -38
  80. package/dist/lib/pod-chat-store.js.map +1 -1
  81. package/dist/lib/pod-data-session.js +97 -30
  82. package/dist/lib/pod-data-session.js.map +1 -1
  83. package/package.json +3 -3
  84. package/vendor/agent-runtime/dist/auto-mode.d.ts +287 -0
  85. package/vendor/agent-runtime/dist/auto-mode.js +1498 -0
  86. package/vendor/agent-runtime/dist/index.d.ts +2 -0
  87. package/vendor/agent-runtime/dist/index.js +2 -0
  88. package/vendor/agent-runtime/dist/runtime.d.ts +47 -0
  89. package/vendor/agent-runtime/dist/runtime.js +36 -0
  90. package/vendor/agent-runtime/dist/turn-controller.d.ts +4 -4
  91. package/vendor/agent-runtime/dist/turn-controller.js +7 -7
  92. package/vendor/agent-runtime/package.json +2 -0
  93. package/dist/lib/watch/archive.js +0 -110
  94. package/dist/lib/watch/archive.js.map +0 -1
  95. package/dist/lib/watch/auth.js.map +0 -1
  96. package/dist/lib/watch/codex-composer.js.map +0 -1
  97. package/dist/lib/watch/codex-footer.js.map +0 -1
  98. package/dist/lib/watch/codex-overlay.js.map +0 -1
  99. package/dist/lib/watch/codex-request-form.js.map +0 -1
  100. package/dist/lib/watch/codex-request-input.js.map +0 -1
  101. package/dist/lib/watch/display.js.map +0 -1
  102. package/dist/lib/watch/format.js.map +0 -1
  103. package/dist/lib/watch/hooks/claude.js.map +0 -1
  104. package/dist/lib/watch/hooks/codebuddy.js.map +0 -1
  105. package/dist/lib/watch/hooks/codex.js +0 -17
  106. package/dist/lib/watch/hooks/codex.js.map +0 -1
  107. package/dist/lib/watch/hooks/index.js +0 -24
  108. package/dist/lib/watch/hooks/index.js.map +0 -1
  109. package/dist/lib/watch/hooks/shared.js.map +0 -1
  110. package/dist/lib/watch/index.js.map +0 -1
  111. package/dist/lib/watch/pod-ai.js +0 -160
  112. package/dist/lib/watch/pod-ai.js.map +0 -1
  113. package/dist/lib/watch/pod-approval.js.map +0 -1
  114. package/dist/lib/watch/pod-persistence.js +0 -334
  115. package/dist/lib/watch/pod-persistence.js.map +0 -1
  116. package/dist/lib/watch/runner.js.map +0 -1
  117. package/dist/lib/watch/secretary.js.map +0 -1
  118. package/dist/watch-cli.js +0 -116
  119. package/dist/watch-cli.js.map +0 -1
  120. /package/dist/lib/{watch → auto-mode}/codex-footer.js +0 -0
  121. /package/dist/lib/{watch → auto-mode}/codex-overlay.js +0 -0
  122. /package/dist/lib/{watch → auto-mode}/codex-request-input.js +0 -0
  123. /package/dist/lib/{watch → auto-mode}/hooks/shared.js +0 -0
  124. /package/dist/lib/{watch → auto-mode}/index.js +0 -0
  125. /package/dist/lib/{watch → auto-mode}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"pod-chat-store.js","sourceRoot":"","sources":["../../src/lib/pod-chat-store.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,SAAS,EACT,OAAO,EACP,EAAE,EACF,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,GAIZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEvE,MAAM,eAAe,GAAG,aAAa,CAAA;AACrC,MAAM,gBAAgB,GAAG,oBAAoB,CAAA;AAE7C,SAAS,aAAa,CAAC,WAAsC;IAC3D,OAAO,wBAAwB,CAAC,WAAW,CAAC,IAAI,eAAe,CAAA;AACjE,CAAC;AAED,SAAS,eAAe,CAAC,aAAwC;IAC/D,OAAO,4BAA4B,CAAC,aAAa,CAAC,IAAI,SAAS,CAAA;AACjE,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,OAAe;IACnD,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,iBAAiB,OAAO,MAAM,CAAA;AAC9D,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAiB;IAC7C,IAAI,OAAO,EAAE,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAiB;IAC/C,IAAI,OAAO,EAAE,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpC,CAAC;AAeD,SAAS,QAAQ,CAAC,OAAgB;IAChC,OAAO,OAAO,CAAC,OAAO,EAAE;QACtB,MAAM,EAAE,KAAK;QACb,uBAAuB,EAAE,IAAI;QAC7B,MAAM,EAAE,WAAW;KACpB,CAA6B,CAAA;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAgB;IAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAE5B,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAA;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,oBAAoB;IACtB,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,EAAiB,EAAE,KAAa;IAC5D,MAAM,aAAa,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAE1E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAM;IACR,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACjC,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,2BAA2B;QAClC,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC,CAAC,OAAO,EAAE,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAgB;IAC3D,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAA;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED,MAAM,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IAE/B,MAAM,aAAa,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAA;IACxE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAChC,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;QACd,YAAY,EAAE,GAAG;KAClB,CAAC,CAAC,OAAO,EAAE,CAAA;IAEZ,OAAO,eAAe,CAAA;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAgB,EAAE,MAAc;IAChE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,OAAO,GAAI,WAAmB,CAAC,IAAI,CAAA;IACzC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;IAElH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QAC7B,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;QAC7B,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;QACrC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAgB,EAChB,MAAc,EACd,SAAkB,EAClB,KAAc;IAEd,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IAEtB,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;QAClC,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,KAAK,IAAI,aAAa;QAC7B,SAAS,EAAE,SAAS,IAAI,SAAS;QACjC,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC,CAAC,OAAO,EAAE,CAAA;IAEZ,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAgB,EAAE,QAAgB;IAClE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,eAAe,CAAA;IAC5F,MAAM,eAAe,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAA;IAClD,MAAM,eAAe,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;AAC/F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgB,EAAE,QAAgB;IACnE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,YAAY,GAAI,YAAoB,CAAC,SAAS,CAAA;IACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAE,MAAc,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAA;IAEjF,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CACpB,aAAa,CAAE,GAAW,CAAC,IAAI,CAAC,KAAK,MAAM;WACxC,eAAe,CAAE,GAAW,CAAC,MAAM,CAAC,KAAK,QAAQ,CACrD,CAAC;SACD,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;SAC9F,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC,IAAuC;QACjD,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC5F,CAAC,CAAC,CAAA;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAgB,EAChB,MAAc,EACd,QAAgB,EAChB,OAAe;IAEf,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAA;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,eAAe,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAA;IAElD,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;QACnC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO;QACP,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,GAAG;KACf,CAAC,CAAC,OAAO,EAAE,CAAA;IAEZ,MAAM,eAAe,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;QAC/C,YAAY,EAAE,GAAG;QACjB,kBAAkB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QACzC,SAAS,EAAE,GAAG;KACf,CAAC,CAAA;IAEF,MAAM,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAgB,EAChB,MAAc,EACd,QAAgB,EAChB,OAAe;IAEf,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAA;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,eAAe,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAA;IAElD,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;QACnC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC;QAC7C,IAAI,EAAE,WAAW;QACjB,OAAO;QACP,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,GAAG;KACf,CAAC,CAAC,OAAO,EAAE,CAAA;IAEZ,MAAM,eAAe,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;QAC/C,YAAY,EAAE,GAAG;QACjB,kBAAkB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QACzC,SAAS,EAAE,GAAG;KACf,CAAC,CAAA;IAEF,MAAM,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAgB,EAAE,QAAgB;IACjE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,aAAa,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAA;IAE9C,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IAChD,IAAI,YAAY,IAAI,cAAc,EAAE,CAAC;QACnC,OAAO,MAAM,aAAa,CAAY,WAAW,EAAE;YACjD,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,cAAc;SACnB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,MAAM,aAAa,CAAY,WAAW,EAAE;QACjD,IAAI,EAAE,eAAe;QACrB,EAAE,EAAE,QAAQ;KACb,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAgB,EAAE,MAAc;IACtE,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAClD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAA;AAC/B,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAA;AAE9C,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"pod-chat-store.js","sourceRoot":"","sources":["../../src/lib/pod-chat-store.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,18 @@
1
+ import { resolveLinxPodUrl } from '@undefineds.co/models/client';
2
+ import { loadAccountSession } from './account-session.js';
1
3
  import { getClientCredentialId, getClientCredentialKey, getClientCredentials, loadCredentials, } from './credentials-store.js';
2
- import { getOidcAccessToken } from './oidc-auth.js';
4
+ import { getOidcAccessToken, restoreStoredOidcSession } from './oidc-auth.js';
3
5
  import { authenticate, authenticatedFetch } from './solid-auth.js';
4
6
  const defaultRuntime = {
5
7
  loadCredentials,
6
8
  getClientCredentials,
7
9
  getOidcAccessToken,
10
+ restoreStoredOidcSession,
8
11
  authenticate,
9
12
  authenticatedFetch,
10
13
  };
14
+ const DEFAULT_POD_DATA_AUTH_TIMEOUT_MS = 15_000;
15
+ const DEFAULT_POD_DATA_FETCH_TIMEOUT_MS = 30_000;
11
16
  let defaultSessionPromise = null;
12
17
  export function clearDefaultPodDataSession() {
13
18
  const existing = defaultSessionPromise;
@@ -37,64 +42,126 @@ export async function createPodDataSession(runtime = defaultRuntime) {
37
42
  }
38
43
  const clientCredentials = runtime.getClientCredentials(credentials);
39
44
  if (clientCredentials) {
40
- const { session, apiKey } = await runtime.authenticate(getClientCredentialId(clientCredentials), getClientCredentialKey(clientCredentials), credentials.url);
45
+ const { session, apiKey } = await withTimeout(runtime.authenticate(getClientCredentialId(clientCredentials), getClientCredentialKey(clientCredentials), credentials.url), runtime.authTimeoutMs ?? DEFAULT_POD_DATA_AUTH_TIMEOUT_MS, 'LinX Pod client credentials authentication timed out.');
41
46
  const webId = session.info.webId ?? credentials.webId;
42
47
  if (!webId) {
43
48
  await session.logout().catch(() => undefined);
44
49
  throw new Error('Pod authentication succeeded without a WebID.');
45
50
  }
51
+ const podUrl = resolvePodDataSessionUrl(webId);
52
+ const fetchWithTimeout = (url, init) => withFetchTimeout((requestUrl, requestInit) => session.fetch(requestUrl, requestInit), url, init, runtime.fetchTimeoutMs ?? DEFAULT_POD_DATA_FETCH_TIMEOUT_MS);
46
53
  return {
47
54
  credentials,
48
55
  webId,
49
- solidSession: session,
50
- fetch: (url, init) => session.fetch(url, init),
56
+ podUrl,
57
+ solidSession: createSessionLikeFromSolidSession(session, fetchWithTimeout, podUrl),
58
+ fetch: fetchWithTimeout,
51
59
  getRuntimeAuthToken: async () => apiKey,
52
60
  close: () => session.logout().catch(() => undefined),
53
61
  };
54
62
  }
55
63
  if (credentials.authType === 'oidc_oauth' && credentials.webId) {
56
- const authFetch = async (url, init) => {
57
- const accessToken = await runtime.getOidcAccessToken(credentials);
58
- if (!accessToken) {
59
- throw new Error('Failed to restore OIDC access token for Pod data access.');
60
- }
61
- return runtime.authenticatedFetch(url, accessToken, init);
62
- };
63
- const solidSession = createInlineSolidSession({
64
- webId: credentials.webId,
65
- fetcher: authFetch,
66
- sessionId: 'linx-cli-oidc',
67
- });
64
+ const podUrl = resolvePodDataSessionUrl(credentials.webId);
65
+ const oidcSession = await withTimeout(runtime.restoreStoredOidcSession(credentials), runtime.authTimeoutMs ?? DEFAULT_POD_DATA_AUTH_TIMEOUT_MS, 'LinX Pod OIDC session restore timed out.');
66
+ if (!oidcSession?.info.isLoggedIn) {
67
+ throw new Error('Failed to restore OIDC session for Pod data access. Run `linx login` again.');
68
+ }
69
+ const webId = oidcSession.info.webId ?? credentials.webId;
70
+ const fetchWithTimeout = (url, init) => withFetchTimeout((requestUrl, requestInit) => oidcSession.fetch(requestUrl, requestInit), url, init, runtime.fetchTimeoutMs ?? DEFAULT_POD_DATA_FETCH_TIMEOUT_MS);
71
+ const solidSession = createSessionLikeFromSolidSession(oidcSession, fetchWithTimeout, podUrl);
68
72
  return {
69
73
  credentials,
70
- webId: credentials.webId,
71
- solidSession,
72
- fetch: authFetch,
74
+ webId,
75
+ podUrl,
76
+ solidSession: {
77
+ ...solidSession,
78
+ info: { ...solidSession.info, webId, podUrl },
79
+ },
80
+ fetch: fetchWithTimeout,
73
81
  getRuntimeAuthToken: async () => {
74
- const accessToken = await runtime.getOidcAccessToken(credentials);
82
+ const accessToken = await withTimeout(runtime.getOidcAccessToken(credentials), runtime.authTimeoutMs ?? DEFAULT_POD_DATA_AUTH_TIMEOUT_MS, 'LinX Pod OIDC token refresh timed out.');
75
83
  if (!accessToken) {
76
84
  throw new Error('Failed to restore OIDC access token for Pod data access.');
77
85
  }
78
86
  return accessToken;
79
87
  },
88
+ // OIDC browser-login storage is the user's LinX login state. A short-lived
89
+ // data access handle must not clear it on close.
80
90
  close: async () => { },
81
91
  };
82
92
  }
83
93
  return null;
84
94
  }
85
- function createInlineSolidSession(options) {
95
+ function createSessionLikeFromSolidSession(session, fetcher, podUrl) {
86
96
  return {
87
- info: {
88
- isLoggedIn: true,
89
- webId: options.webId,
90
- sessionId: options.sessionId,
91
- },
92
- fetch: (input, init) => options.fetcher(requestInputToUrl(input), init),
93
- login: async () => { },
94
- logout: async () => { },
95
- handleIncomingRedirect: async (_url) => { },
97
+ info: { ...session.info, podUrl },
98
+ fetch: (input, init) => fetcher(requestInputToUrl(input), init),
99
+ login: (...args) => session.login(...args),
100
+ logout: () => session.logout(),
101
+ handleIncomingRedirect: (url) => session.handleIncomingRedirect(url),
96
102
  };
97
103
  }
104
+ async function withTimeout(promise, timeoutMs, message) {
105
+ let timer;
106
+ try {
107
+ return await Promise.race([
108
+ promise,
109
+ new Promise((_resolve, reject) => {
110
+ timer = setTimeout(() => reject(new Error(message)), timeoutMs);
111
+ }),
112
+ ]);
113
+ }
114
+ finally {
115
+ if (timer) {
116
+ clearTimeout(timer);
117
+ }
118
+ }
119
+ }
120
+ async function withFetchTimeout(fetcher, url, init, timeoutMs) {
121
+ const controller = new AbortController();
122
+ let timedOut = false;
123
+ const timer = setTimeout(() => {
124
+ timedOut = true;
125
+ controller.abort();
126
+ }, timeoutMs);
127
+ const signal = init?.signal
128
+ ? combineAbortSignals(init.signal, controller.signal)
129
+ : controller.signal;
130
+ try {
131
+ return await Promise.race([
132
+ fetcher(url, { ...init, signal }),
133
+ new Promise((_resolve, reject) => {
134
+ controller.signal.addEventListener('abort', () => {
135
+ if (timedOut) {
136
+ const method = init?.method ?? 'GET';
137
+ reject(new Error(`LinX Pod request timed out after ${Math.round(timeoutMs / 1000)}s: ${method} ${url}`));
138
+ }
139
+ }, { once: true });
140
+ }),
141
+ ]);
142
+ }
143
+ finally {
144
+ clearTimeout(timer);
145
+ }
146
+ }
147
+ function combineAbortSignals(left, right) {
148
+ if (typeof AbortSignal.any === 'function') {
149
+ return AbortSignal.any([left, right]);
150
+ }
151
+ const controller = new AbortController();
152
+ const abort = () => controller.abort();
153
+ if (left.aborted || right.aborted) {
154
+ abort();
155
+ return controller.signal;
156
+ }
157
+ left.addEventListener('abort', abort, { once: true });
158
+ right.addEventListener('abort', abort, { once: true });
159
+ return controller.signal;
160
+ }
161
+ function resolvePodDataSessionUrl(webId) {
162
+ const account = loadAccountSession();
163
+ return (account?.webId === webId ? account.podUrl : undefined) || resolveLinxPodUrl(webId);
164
+ }
98
165
  function requestInputToUrl(input) {
99
166
  if (typeof input === 'string') {
100
167
  return input;
@@ -1 +1 @@
1
- {"version":3,"file":"pod-data-session.js","sourceRoot":"","sources":["../../src/lib/pod-data-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pod-data-session.js","sourceRoot":"","sources":["../../src/lib/pod-data-session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@undefineds.co/linx",
3
- "version": "0.2.19",
3
+ "version": "0.2.24",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {
@@ -9,10 +9,10 @@
9
9
  "scripts": {
10
10
  "build": "tsc -p tsconfig.json --noEmit && node ./scripts/build.mjs",
11
11
  "dev": "node ./scripts/dev.mjs",
12
- "test": "yarn build && node --test test/**/*.test.mjs"
12
+ "test": "yarn build && node --test --test-concurrency=1 test/**/*.test.mjs"
13
13
  },
14
14
  "dependencies": {
15
- "@undefineds.co/models": "0.2.19",
15
+ "@undefineds.co/models": "0.2.24",
16
16
  "@inrupt/solid-client-authn-node": "^3.1.1",
17
17
  "@mariozechner/pi-coding-agent": "^0.67.6",
18
18
  "n3": "^1.26.0",
@@ -0,0 +1,287 @@
1
+ export type AutoModeBackend = 'codex' | 'claude' | 'codebuddy';
2
+ export type AutoModeMode = 'manual' | 'smart' | 'auto';
3
+ export type AutoModeSessionStatus = 'running' | 'completed' | 'failed';
4
+ export type AutoModeOutputStream = 'stdout' | 'stderr' | 'system';
5
+ export type AutoModeCredentialSource = 'cloud';
6
+ export type AutoModeResolvedCredentialSource = 'cloud';
7
+ type LegacyAutoModeCredentialSource = AutoModeCredentialSource | 'auto' | 'local';
8
+ export type AutoModeApprovalSource = 'local' | 'remote' | 'hybrid';
9
+ export type AutoModeRuntime = 'local';
10
+ export type AutoModeTransport = 'native' | 'acp';
11
+ export type AutoModeAuthState = 'authenticated' | 'unauthenticated' | 'unknown';
12
+ export interface AutoModeAuthStatus {
13
+ state: AutoModeAuthState;
14
+ message?: string;
15
+ }
16
+ export interface AutoModeAuthFailure {
17
+ message: string;
18
+ }
19
+ export type AutoModeCloudCredentialProbeStatus = 'available' | 'unavailable' | 'error';
20
+ export interface AutoModeCloudCredentialProbe {
21
+ status: AutoModeCloudCredentialProbeStatus;
22
+ message?: string;
23
+ }
24
+ export interface AutoModeCredentialSourceResolution {
25
+ requestedSource: AutoModeCredentialSource;
26
+ resolvedSource?: AutoModeResolvedCredentialSource;
27
+ authStatus: AutoModeAuthStatus;
28
+ error?: string;
29
+ }
30
+ export interface AutoModeSessionRecord {
31
+ id: string;
32
+ backend: AutoModeBackend;
33
+ runtime: AutoModeRuntime;
34
+ transport?: AutoModeTransport;
35
+ mode: AutoModeMode;
36
+ cwd: string;
37
+ model?: string;
38
+ prompt?: string;
39
+ passthroughArgs: string[];
40
+ credentialSource: AutoModeCredentialSource;
41
+ resolvedCredentialSource?: AutoModeResolvedCredentialSource;
42
+ approvalSource?: AutoModeApprovalSource;
43
+ command: string;
44
+ args: string[];
45
+ status: AutoModeSessionStatus;
46
+ startedAt: string;
47
+ endedAt?: string;
48
+ exitCode?: number | null;
49
+ signal?: string | null;
50
+ error?: string;
51
+ backendSessionId?: string;
52
+ archiveDir: string;
53
+ eventsFile: string;
54
+ }
55
+ export type AutoModeApprovalRequestKind = 'command-approval' | 'file-change-approval' | 'permissions-approval' | 'codex-approval';
56
+ export type AutoModeInteractionRequestKind = AutoModeApprovalRequestKind | 'user-input';
57
+ export type AutoModeApprovalDecision = 'accept' | 'accept_for_session' | 'decline' | 'cancel';
58
+ export type AutoModeSecretaryApprovalDecision = 'accept' | 'decline' | 'cancel';
59
+ export type AutoModeApprovalOptionKind = 'allow_once' | 'allow_always' | 'reject_once' | 'reject_always' | (string & {});
60
+ export type AutoModeApprovalRisk = 'low' | 'medium' | 'high';
61
+ export interface AutoModeApprovalOption {
62
+ optionId: string;
63
+ label: string;
64
+ kind?: AutoModeApprovalOptionKind;
65
+ description?: string;
66
+ }
67
+ interface AutoModeInteractionRequestBase {
68
+ kind: AutoModeInteractionRequestKind;
69
+ message: string;
70
+ approvalOptions?: AutoModeApprovalOption[];
71
+ timeoutMs?: number;
72
+ expiresAt?: string;
73
+ raw?: unknown;
74
+ }
75
+ export interface AutoModeCommandApprovalRequest extends AutoModeInteractionRequestBase {
76
+ kind: 'command-approval';
77
+ command?: string;
78
+ cwd?: string;
79
+ }
80
+ export interface AutoModeFileChangeApprovalRequest extends AutoModeInteractionRequestBase {
81
+ kind: 'file-change-approval';
82
+ reason?: string;
83
+ }
84
+ export interface AutoModePermissionsApprovalRequest extends AutoModeInteractionRequestBase {
85
+ kind: 'permissions-approval';
86
+ permissions: Record<string, unknown>;
87
+ }
88
+ export interface AutoModeCodexApprovalRequest extends AutoModeInteractionRequestBase {
89
+ kind: 'codex-approval';
90
+ }
91
+ export interface AutoModeUserInputOption {
92
+ label: string;
93
+ description?: string;
94
+ }
95
+ export interface AutoModeUserInputQuestion {
96
+ id: string;
97
+ header: string;
98
+ question: string;
99
+ options: AutoModeUserInputOption[];
100
+ }
101
+ export interface AutoModeUserInputRequest extends AutoModeInteractionRequestBase {
102
+ kind: 'user-input';
103
+ questions: AutoModeUserInputQuestion[];
104
+ }
105
+ export type AutoModeApprovalRequest = AutoModeCommandApprovalRequest | AutoModeFileChangeApprovalRequest | AutoModePermissionsApprovalRequest | AutoModeCodexApprovalRequest;
106
+ export type AutoModeInteractionRequest = AutoModeApprovalRequest | AutoModeUserInputRequest;
107
+ export interface AutoModeUserInputAnswerRecord {
108
+ answers: string[];
109
+ }
110
+ export type AutoModeUserInputAnswers = Record<string, AutoModeUserInputAnswerRecord>;
111
+ export type AutoModeSecretaryRecommendationSource = 'model' | 'fallback';
112
+ export interface AutoModeSecretaryRecommendationBase {
113
+ kind: AutoModeInteractionRequestKind;
114
+ canAutoDecide: boolean;
115
+ confidence?: number;
116
+ reason?: string;
117
+ reactionWindowMs?: number;
118
+ source?: AutoModeSecretaryRecommendationSource;
119
+ }
120
+ export interface AutoModeSecretaryApprovalRecommendation extends AutoModeSecretaryRecommendationBase {
121
+ kind: AutoModeApprovalRequestKind;
122
+ decision?: AutoModeSecretaryApprovalDecision;
123
+ }
124
+ export interface AutoModeSecretaryUserInputRecommendation extends AutoModeSecretaryRecommendationBase {
125
+ kind: 'user-input';
126
+ answers?: AutoModeUserInputAnswers;
127
+ }
128
+ export type AutoModeSecretaryRecommendation = AutoModeSecretaryApprovalRecommendation | AutoModeSecretaryUserInputRecommendation;
129
+ export interface AutoModeGrantCoverageDecision {
130
+ covers: boolean;
131
+ confidence?: number;
132
+ reason?: string;
133
+ source?: AutoModeSecretaryRecommendationSource;
134
+ }
135
+ export declare function autoModeApprovalActionUri(request: AutoModeApprovalRequest): string;
136
+ export declare function autoModeApprovalToolName(request: AutoModeApprovalRequest): string;
137
+ export declare function autoModeApprovalRisk(request: AutoModeApprovalRequest): AutoModeApprovalRisk;
138
+ export declare function autoModeApprovalRequestMessage(request: AutoModeApprovalRequest): string;
139
+ export interface ParseAutoModeSecretaryRecommendationOptions {
140
+ mode: AutoModeMode;
141
+ request: AutoModeInteractionRequest;
142
+ defaultReactionWindowMs?: number;
143
+ }
144
+ export declare const DEFAULT_AUTO_MODE_SECRETARY_REACTION_WINDOW_MS = 5000;
145
+ export declare const MIN_AUTO_MODE_SECRETARY_REACTION_WINDOW_MS = 5000;
146
+ export declare const MAX_AUTO_MODE_SECRETARY_REACTION_WINDOW_MS = 60000;
147
+ export interface AutoModeToolCallEvent {
148
+ type: 'tool.call';
149
+ name: string;
150
+ arguments?: Record<string, unknown>;
151
+ raw?: unknown;
152
+ }
153
+ export interface AutoModeApprovalRequiredEvent {
154
+ type: 'approval.required';
155
+ message: string;
156
+ request?: AutoModeApprovalRequest;
157
+ raw?: unknown;
158
+ }
159
+ export interface AutoModeInputRequiredEvent {
160
+ type: 'input.required';
161
+ message: string;
162
+ request: AutoModeUserInputRequest;
163
+ raw?: unknown;
164
+ }
165
+ export interface AutoModeAssistantDeltaEvent {
166
+ type: 'assistant.delta';
167
+ text: string;
168
+ raw?: unknown;
169
+ }
170
+ export interface AutoModeAssistantDoneEvent {
171
+ type: 'assistant.done';
172
+ text?: string;
173
+ raw?: unknown;
174
+ }
175
+ export interface AutoModeNoteEvent {
176
+ type: 'session.note';
177
+ message: string;
178
+ raw?: unknown;
179
+ }
180
+ export type AutoModeNormalizedEvent = AutoModeToolCallEvent | AutoModeApprovalRequiredEvent | AutoModeInputRequiredEvent | AutoModeAssistantDeltaEvent | AutoModeAssistantDoneEvent | AutoModeNoteEvent;
181
+ export interface AutoModeEventLogEntry {
182
+ timestamp: string;
183
+ stream: AutoModeOutputStream;
184
+ line: string;
185
+ events: AutoModeNormalizedEvent[];
186
+ }
187
+ export interface AutoModeThreadMetadata extends Record<string, unknown> {
188
+ kind: 'auto-mode';
189
+ delegatedTo: 'secretary';
190
+ sessionId: string;
191
+ backend: AutoModeBackend;
192
+ runtime: AutoModeRuntime;
193
+ transport?: AutoModeTransport;
194
+ mode: AutoModeMode;
195
+ cwd: string;
196
+ model?: string;
197
+ credentialSource: AutoModeCredentialSource;
198
+ resolvedCredentialSource?: AutoModeResolvedCredentialSource;
199
+ approvalSource?: AutoModeApprovalSource;
200
+ status: AutoModeSessionStatus;
201
+ backendSessionId?: string;
202
+ }
203
+ export type AutoModeTranscriptMessageRole = 'user' | 'assistant' | 'system';
204
+ export type AutoModeTranscriptMessageSource = 'user' | 'primary-agent' | 'secretary' | 'tool' | 'system';
205
+ export interface AutoModeTranscriptMessage {
206
+ role: AutoModeTranscriptMessageRole;
207
+ source: AutoModeTranscriptMessageSource;
208
+ content: string;
209
+ createdAt: string;
210
+ }
211
+ export interface CreateAutoModeSessionIdOptions {
212
+ now?: Date;
213
+ randomId?: string;
214
+ }
215
+ export interface AutoModeArchiveRelativePaths {
216
+ sessionDir: string;
217
+ sessionFile: string;
218
+ eventsFile: string;
219
+ }
220
+ export declare const AUTO_MODE_HOME_DIRNAME = "auto-mode";
221
+ export declare const AUTO_MODE_SESSIONS_DIRNAME = "sessions";
222
+ export declare const AUTO_MODE_SESSION_FILE_NAME = "session.json";
223
+ export declare const AUTO_MODE_EVENTS_FILE_NAME = "events.jsonl";
224
+ export declare function normalizeAutoModeUserInputQuestion(value: unknown, fallbackId?: string): AutoModeUserInputQuestion | null;
225
+ export declare function resolveAutoModeQuestionAnswer(question: AutoModeUserInputQuestion, answer: string): string[];
226
+ export declare function normalizeAutoModeApprovalOptions(value: unknown): AutoModeApprovalOption[];
227
+ export declare function createAutoModeSessionId(options?: CreateAutoModeSessionIdOptions): string;
228
+ export declare function normalizeAutoModeCredentialSource(_source?: LegacyAutoModeCredentialSource | null): AutoModeCredentialSource;
229
+ export declare function shouldAttemptCloudCredentialProbe(_requestedSource: LegacyAutoModeCredentialSource, _localAuthStatus: AutoModeAuthStatus): boolean;
230
+ export declare function formatAutoModeAutoFallbackMessage(localMessage: string, detail: string): string;
231
+ export declare function resolveAutoModeCredentialSourceResolution(input: {
232
+ requestedSource?: LegacyAutoModeCredentialSource | null;
233
+ localAuthStatus: AutoModeAuthStatus;
234
+ cloudCredentialProbe?: AutoModeCloudCredentialProbe;
235
+ defaultLocalMessage?: string;
236
+ }): AutoModeCredentialSourceResolution;
237
+ export declare function resolveAutoModeAutoApprovalDecision(input: {
238
+ mode: AutoModeMode;
239
+ request: AutoModeApprovalRequest;
240
+ }): AutoModeApprovalDecision | null;
241
+ export declare function createFallbackAutoModeSecretaryRecommendation(input: {
242
+ mode: AutoModeMode;
243
+ request: AutoModeInteractionRequest;
244
+ }): AutoModeSecretaryRecommendation | null;
245
+ export declare function parseAutoModeSecretaryRecommendation(text: string, options: ParseAutoModeSecretaryRecommendationOptions): AutoModeSecretaryRecommendation | null;
246
+ export declare function autoModeApprovalDecisionLabel(decision: AutoModeApprovalDecision): string;
247
+ export declare function autoModeUserInputAnswersSummary(answers: AutoModeUserInputAnswers): string;
248
+ export declare function parseAutoModeGrantCoverageDecision(text: string): AutoModeGrantCoverageDecision | null;
249
+ export declare function computeAutoModeSecretaryReactionWindowMs(confidence: number | undefined, fallback?: number): number;
250
+ export declare function getAutoModeAuthLoginCommand(backend: AutoModeBackend): string | null;
251
+ export declare function formatAutoModeBackendAuthMessage(backend: AutoModeBackend, detail?: string): string;
252
+ export declare function looksLikeAutoModeAuthFailureText(text: string): boolean;
253
+ export declare function parseAutoModeClaudeAuthStatus(stdout: string): AutoModeAuthStatus;
254
+ export declare function detectAutoModeAuthFailure(backend: AutoModeBackend, line: string): AutoModeAuthFailure | null;
255
+ export declare function parseAutoModeJsonLine(line: string): Record<string, unknown> | null;
256
+ export declare function extractAutoModeSessionIdFromJsonLine(line: string): string | undefined;
257
+ export declare function isTrustedAutoModeCommand(command: string | null | undefined): boolean;
258
+ export declare function normalizeCodexAppServerInteractionRequest(message: Record<string, unknown>): AutoModeInteractionRequest | null;
259
+ export declare function resolveAutoModeInteractionAutoResponse(input: {
260
+ mode: AutoModeMode;
261
+ request: AutoModeInteractionRequest;
262
+ }): unknown | null;
263
+ export declare function buildCodexApprovalResponse(request: AutoModeApprovalRequest, decision: AutoModeApprovalDecision): unknown;
264
+ export declare function buildCodexUserInputResponse(answers: AutoModeUserInputAnswers): {
265
+ answers: AutoModeUserInputAnswers;
266
+ };
267
+ export declare function buildAutoModeUserInputResponse(answers: AutoModeUserInputAnswers): {
268
+ answers: AutoModeUserInputAnswers;
269
+ };
270
+ export declare function normalizeAcpInteractionRequest(message: Record<string, unknown>): AutoModeInteractionRequest | null;
271
+ export declare function normalizeAcpRequest(message: Record<string, unknown>): AutoModeNormalizedEvent[];
272
+ export declare function normalizeAcpSessionNotification(message: Record<string, unknown>): AutoModeNormalizedEvent[];
273
+ export declare function buildAcpPermissionResponse(request: AutoModeApprovalRequest, decision: AutoModeApprovalDecision): {
274
+ outcome: {
275
+ outcome: 'selected';
276
+ optionId: string;
277
+ } | {
278
+ outcome: 'cancelled';
279
+ };
280
+ };
281
+ export declare function parseAutoModeJsonProtocolLine(line: string): AutoModeNormalizedEvent[];
282
+ export declare function normalizeCodexAppServerNotification(message: Record<string, unknown>): AutoModeNormalizedEvent[];
283
+ export declare function normalizeCodexAppServerRequest(message: Record<string, unknown>): AutoModeNormalizedEvent[];
284
+ export declare function getAutoModeArchiveRelativePaths(sessionId: string): AutoModeArchiveRelativePaths;
285
+ export declare function buildAutoModeThreadMetadata(record: AutoModeSessionRecord): AutoModeThreadMetadata;
286
+ export declare function buildAutoModeTranscriptMessages(entries: AutoModeEventLogEntry[]): AutoModeTranscriptMessage[];
287
+ export {};