@otto-code/server 0.7.2 → 0.7.3

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 (333) hide show
  1. package/dist/server/server/agent/providers/claude/agent.js +48 -3
  2. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +10 -1
  3. package/dist/server/server/agent/providers/mock-load-test-agent.js +151 -5
  4. package/dist/server/server/agent/synthetic-conversation.d.ts +18 -0
  5. package/dist/server/server/agent/synthetic-conversation.js +567 -0
  6. package/dist/server/server/dotnet-process-registry.d.ts +111 -0
  7. package/dist/server/server/dotnet-process-registry.js +160 -0
  8. package/dist/server/server/lsp/connection.d.ts +4 -0
  9. package/dist/server/server/lsp/connection.js +39 -4
  10. package/dist/server/server/lsp/pool.js +1 -0
  11. package/dist/server/server/lsp/registry.d.ts +14 -1
  12. package/dist/server/server/lsp/registry.js +14 -2
  13. package/dist/server/server/lsp/service.d.ts +18 -2
  14. package/dist/server/server/lsp/service.js +14 -2
  15. package/dist/server/server/process-tree.d.ts +29 -0
  16. package/dist/server/server/process-tree.js +59 -0
  17. package/dist/server/server/session/files/workspace-files-session.js +11 -5
  18. package/dist/server/server/session.d.ts +11 -0
  19. package/dist/server/server/session.js +23 -0
  20. package/dist/server/server/solution-model/dotnet/probe.d.ts +2 -0
  21. package/dist/server/server/solution-model/dotnet/probe.js +33 -14
  22. package/dist/server/server/websocket-server.js +10 -0
  23. package/dist/server/server/workspace-git-service.d.ts +36 -0
  24. package/dist/server/server/workspace-git-service.js +110 -6
  25. package/dist/server/terminal/shell-integration/zsh/.zshenv +17 -17
  26. package/dist/server/terminal/shell-integration/zsh/otto-integration.zsh +32 -32
  27. package/dist/server/terminal/terminal.js +12 -2
  28. package/dist/server/web-ui/_expo/static/js/web/{__common-6d2299ed037bec2393245a7c0bf1c643.js → __common-8ab6f044d26f0be8899aaf3a990c8b65.js} +1855 -1855
  29. package/dist/server/web-ui/_expo/static/js/web/__common-8ab6f044d26f0be8899aaf3a990c8b65.js.br +0 -0
  30. package/dist/server/web-ui/_expo/static/js/web/__common-8ab6f044d26f0be8899aaf3a990c8b65.js.gz +0 -0
  31. package/dist/server/web-ui/_expo/static/js/web/{abnfDiagram-VRR7QNED-c3c2ca327b2d7ad9af3caa1cba884908.js → abnfDiagram-VRR7QNED-e33c74fb52c02570f5105b2e70194df6.js} +1 -1
  32. package/dist/server/web-ui/_expo/static/js/web/abnfDiagram-VRR7QNED-e33c74fb52c02570f5105b2e70194df6.js.br +0 -0
  33. package/dist/server/web-ui/_expo/static/js/web/abnfDiagram-VRR7QNED-e33c74fb52c02570f5105b2e70194df6.js.gz +0 -0
  34. package/dist/server/web-ui/_expo/static/js/web/{architecture-TIHT7OUA-0cf23d3dc9775f216c01daae4aae250a.js → architecture-TIHT7OUA-cc3220b1ecee09a0e5c0b99fbf886b82.js} +1 -1
  35. package/dist/server/web-ui/_expo/static/js/web/{architecture-TIHT7OUA-0cf23d3dc9775f216c01daae4aae250a.js.br → architecture-TIHT7OUA-cc3220b1ecee09a0e5c0b99fbf886b82.js.br} +0 -0
  36. package/dist/server/web-ui/_expo/static/js/web/architecture-TIHT7OUA-cc3220b1ecee09a0e5c0b99fbf886b82.js.gz +0 -0
  37. package/dist/server/web-ui/_expo/static/js/web/{architectureDiagram-ZJ3FMSHR-f3bce96124559dc19faa4d90aca4afd4.js → architectureDiagram-ZJ3FMSHR-551f5e17dd33a890195b5d060cd75ad2.js} +4 -4
  38. package/dist/server/web-ui/_expo/static/js/web/architectureDiagram-ZJ3FMSHR-551f5e17dd33a890195b5d060cd75ad2.js.br +0 -0
  39. package/dist/server/web-ui/_expo/static/js/web/architectureDiagram-ZJ3FMSHR-551f5e17dd33a890195b5d060cd75ad2.js.gz +0 -0
  40. package/dist/server/web-ui/_expo/static/js/web/{blockDiagram-677ZJIJ3-839486928c0f151128a5e2836aa07080.js → blockDiagram-677ZJIJ3-901d7bbed0b0f6ae3439f6bff861b42f.js} +1 -1
  41. package/dist/server/web-ui/_expo/static/js/web/blockDiagram-677ZJIJ3-901d7bbed0b0f6ae3439f6bff861b42f.js.br +0 -0
  42. package/dist/server/web-ui/_expo/static/js/web/{blockDiagram-677ZJIJ3-839486928c0f151128a5e2836aa07080.js.gz → blockDiagram-677ZJIJ3-901d7bbed0b0f6ae3439f6bff861b42f.js.gz} +0 -0
  43. package/dist/server/web-ui/_expo/static/js/web/{c4Diagram-LMCZKHZV-197212c21520a6b659a5649e683619d0.js → c4Diagram-LMCZKHZV-781ca106d0a19454ec9e559bcba3706c.js} +1 -1
  44. package/dist/server/web-ui/_expo/static/js/web/c4Diagram-LMCZKHZV-781ca106d0a19454ec9e559bcba3706c.js.br +0 -0
  45. package/dist/server/web-ui/_expo/static/js/web/{c4Diagram-LMCZKHZV-197212c21520a6b659a5649e683619d0.js.gz → c4Diagram-LMCZKHZV-781ca106d0a19454ec9e559bcba3706c.js.gz} +0 -0
  46. package/dist/server/web-ui/_expo/static/js/web/{classDiagram-OUVF2IWQ-a0a0fbefc96d14b6619c84fc4f92a39a.js → classDiagram-OUVF2IWQ-1d00e0cc9165446f1bac84fed1e9bbed.js} +1 -1
  47. package/dist/server/web-ui/_expo/static/js/web/classDiagram-OUVF2IWQ-1d00e0cc9165446f1bac84fed1e9bbed.js.br +0 -0
  48. package/dist/server/web-ui/_expo/static/js/web/classDiagram-OUVF2IWQ-1d00e0cc9165446f1bac84fed1e9bbed.js.gz +0 -0
  49. package/dist/server/web-ui/_expo/static/js/web/{classDiagram-v2-EOCWNBFH-e979239c6d160123d5b4847253a8a70e.js → classDiagram-v2-EOCWNBFH-52b658fff2b9f58ece5d8528cb381359.js} +1 -1
  50. package/dist/server/web-ui/_expo/static/js/web/classDiagram-v2-EOCWNBFH-52b658fff2b9f58ece5d8528cb381359.js.br +0 -0
  51. package/dist/server/web-ui/_expo/static/js/web/classDiagram-v2-EOCWNBFH-52b658fff2b9f58ece5d8528cb381359.js.gz +0 -0
  52. package/dist/server/web-ui/_expo/static/js/web/{cose-bilkent-JH36ORCC-bbc39a6bb062ba85e433f91becc37a65.js → cose-bilkent-JH36ORCC-9256f0de343b59ecc5775210909c4f8b.js} +4 -4
  53. package/dist/server/web-ui/_expo/static/js/web/cose-bilkent-JH36ORCC-9256f0de343b59ecc5775210909c4f8b.js.br +0 -0
  54. package/dist/server/web-ui/_expo/static/js/web/cose-bilkent-JH36ORCC-9256f0de343b59ecc5775210909c4f8b.js.gz +0 -0
  55. package/dist/server/web-ui/_expo/static/js/web/{cynefin-VYW2F7L2-ea0e514652627740f5a2ed32b027a164.js → cynefin-VYW2F7L2-feb2750e4e4322ac8e6c6049fcfd73cb.js} +1 -1
  56. package/dist/server/web-ui/_expo/static/js/web/cynefin-VYW2F7L2-feb2750e4e4322ac8e6c6049fcfd73cb.js.br +0 -0
  57. package/dist/server/web-ui/_expo/static/js/web/cynefin-VYW2F7L2-feb2750e4e4322ac8e6c6049fcfd73cb.js.gz +0 -0
  58. package/dist/server/web-ui/_expo/static/js/web/{cynefinDiagram-TSTJHNR4-0446f9b57ba778e5883d93e24692ffce.js → cynefinDiagram-TSTJHNR4-b98dc254a5fa6581f997a0809a9e0fc0.js} +1 -1
  59. package/dist/server/web-ui/_expo/static/js/web/cynefinDiagram-TSTJHNR4-b98dc254a5fa6581f997a0809a9e0fc0.js.br +0 -0
  60. package/dist/server/web-ui/_expo/static/js/web/cynefinDiagram-TSTJHNR4-b98dc254a5fa6581f997a0809a9e0fc0.js.gz +0 -0
  61. package/dist/server/web-ui/_expo/static/js/web/{dagre-VKFMJZFB-69f7aa52521b06a95874b1ac67508def.js → dagre-VKFMJZFB-ef67573fa401136e68fc41adf07ef447.js} +1 -1
  62. package/dist/server/web-ui/_expo/static/js/web/dagre-VKFMJZFB-ef67573fa401136e68fc41adf07ef447.js.br +0 -0
  63. package/dist/server/web-ui/_expo/static/js/web/dagre-VKFMJZFB-ef67573fa401136e68fc41adf07ef447.js.gz +0 -0
  64. package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-bridge-0ae8aadd6e53625f59d62eceb1f06ede.js → desktop-attachment-bridge-d6e4f29a78dc1bb5b70d4ef2c440c6c0.js} +1 -1
  65. package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-bridge-0ae8aadd6e53625f59d62eceb1f06ede.js.br → desktop-attachment-bridge-d6e4f29a78dc1bb5b70d4ef2c440c6c0.js.br} +0 -0
  66. package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-d6e4f29a78dc1bb5b70d4ef2c440c6c0.js.gz +0 -0
  67. package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-store-ecd775c6aee79778f49274a5bffadc5a.js → desktop-attachment-store-e2e403c64de4bc638e1800c9b226ede3.js} +1 -1
  68. package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-store-ecd775c6aee79778f49274a5bffadc5a.js.br → desktop-attachment-store-e2e403c64de4bc638e1800c9b226ede3.js.br} +0 -0
  69. package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-store-ecd775c6aee79778f49274a5bffadc5a.js.gz → desktop-attachment-store-e2e403c64de4bc638e1800c9b226ede3.js.gz} +0 -0
  70. package/dist/server/web-ui/_expo/static/js/web/{diagram-FQU43EPY-bd0940835ccad031627e285aaba6d5ec.js → diagram-FQU43EPY-c6317fa4c07b63f54be30797f25060c7.js} +1 -1
  71. package/dist/server/web-ui/_expo/static/js/web/diagram-FQU43EPY-c6317fa4c07b63f54be30797f25060c7.js.br +0 -0
  72. package/dist/server/web-ui/_expo/static/js/web/{diagram-FQU43EPY-bd0940835ccad031627e285aaba6d5ec.js.gz → diagram-FQU43EPY-c6317fa4c07b63f54be30797f25060c7.js.gz} +0 -0
  73. package/dist/server/web-ui/_expo/static/js/web/{diagram-G47NLZAW-217e2cd3275924bc08fc6ebe79e95e48.js → diagram-G47NLZAW-70713a059ca65ca1241036cc96679bc5.js} +1 -1
  74. package/dist/server/web-ui/_expo/static/js/web/diagram-G47NLZAW-70713a059ca65ca1241036cc96679bc5.js.br +0 -0
  75. package/dist/server/web-ui/_expo/static/js/web/diagram-G47NLZAW-70713a059ca65ca1241036cc96679bc5.js.gz +0 -0
  76. package/dist/server/web-ui/_expo/static/js/web/{diagram-NH7WQ7WH-fbd3aa35ca68df15ee378fb63241b333.js → diagram-NH7WQ7WH-1bebddae0fd6a49ff82d7ea2b738823d.js} +1 -1
  77. package/dist/server/web-ui/_expo/static/js/web/diagram-NH7WQ7WH-1bebddae0fd6a49ff82d7ea2b738823d.js.br +0 -0
  78. package/dist/server/web-ui/_expo/static/js/web/diagram-NH7WQ7WH-1bebddae0fd6a49ff82d7ea2b738823d.js.gz +0 -0
  79. package/dist/server/web-ui/_expo/static/js/web/{diagram-OA4YK3LP-48ebb0ba6bcb34417649bd55070542ad.js → diagram-OA4YK3LP-bf33c3e1800c9f503dd88e41e97c5974.js} +1 -1
  80. package/dist/server/web-ui/_expo/static/js/web/diagram-OA4YK3LP-bf33c3e1800c9f503dd88e41e97c5974.js.br +0 -0
  81. package/dist/server/web-ui/_expo/static/js/web/diagram-OA4YK3LP-bf33c3e1800c9f503dd88e41e97c5974.js.gz +0 -0
  82. package/dist/server/web-ui/_expo/static/js/web/{diagram-WEI45ONY-2be85db5396495fa970419f77587cf14.js → diagram-WEI45ONY-23d90af03030beb514d3a953920e6c9b.js} +1 -1
  83. package/dist/server/web-ui/_expo/static/js/web/diagram-WEI45ONY-23d90af03030beb514d3a953920e6c9b.js.br +0 -0
  84. package/dist/server/web-ui/_expo/static/js/web/diagram-WEI45ONY-23d90af03030beb514d3a953920e6c9b.js.gz +0 -0
  85. package/dist/server/web-ui/_expo/static/js/web/{ebnfDiagram-CCIWWBDH-3c5c44cf8340b641d13076adab77967b.js → ebnfDiagram-CCIWWBDH-5119b538047d9c00ae05855ae1cf490f.js} +1 -1
  86. package/dist/server/web-ui/_expo/static/js/web/ebnfDiagram-CCIWWBDH-5119b538047d9c00ae05855ae1cf490f.js.br +0 -0
  87. package/dist/server/web-ui/_expo/static/js/web/ebnfDiagram-CCIWWBDH-5119b538047d9c00ae05855ae1cf490f.js.gz +0 -0
  88. package/dist/server/web-ui/_expo/static/js/web/{erDiagram-Q63AITRT-81762a72bd33bf1042e4cad4f688abf2.js → erDiagram-Q63AITRT-6f7e9f420388e6291e5a8ae6da7ab3ad.js} +1 -1
  89. package/dist/server/web-ui/_expo/static/js/web/erDiagram-Q63AITRT-6f7e9f420388e6291e5a8ae6da7ab3ad.js.br +0 -0
  90. package/dist/server/web-ui/_expo/static/js/web/erDiagram-Q63AITRT-6f7e9f420388e6291e5a8ae6da7ab3ad.js.gz +0 -0
  91. package/dist/server/web-ui/_expo/static/js/web/{eventmodeling-45OFAUF4-11d7615d746c5304c28d4931ec9ca5f7.js → eventmodeling-45OFAUF4-510d785624b4496077e120d2c12a6b88.js} +1 -1
  92. package/dist/server/web-ui/_expo/static/js/web/{eventmodeling-45OFAUF4-11d7615d746c5304c28d4931ec9ca5f7.js.br → eventmodeling-45OFAUF4-510d785624b4496077e120d2c12a6b88.js.br} +0 -0
  93. package/dist/server/web-ui/_expo/static/js/web/eventmodeling-45OFAUF4-510d785624b4496077e120d2c12a6b88.js.gz +0 -0
  94. package/dist/server/web-ui/_expo/static/js/web/{flowDiagram-23GEKE2U-5a2af608a9500bb36da0595c3464a562.js → flowDiagram-23GEKE2U-7bf4721b6de004ef55a0787bbbc6b9ac.js} +1 -1
  95. package/dist/server/web-ui/_expo/static/js/web/flowDiagram-23GEKE2U-7bf4721b6de004ef55a0787bbbc6b9ac.js.br +0 -0
  96. package/dist/server/web-ui/_expo/static/js/web/flowDiagram-23GEKE2U-7bf4721b6de004ef55a0787bbbc6b9ac.js.gz +0 -0
  97. package/dist/server/web-ui/_expo/static/js/web/{ganttDiagram-NO4QXBWP-379aae0f5fb2652d90827c7f8b2472d2.js → ganttDiagram-NO4QXBWP-53b4651e7e78eb3212ec05a0d72b8932.js} +5 -5
  98. package/dist/server/web-ui/_expo/static/js/web/ganttDiagram-NO4QXBWP-53b4651e7e78eb3212ec05a0d72b8932.js.br +0 -0
  99. package/dist/server/web-ui/_expo/static/js/web/{ganttDiagram-NO4QXBWP-379aae0f5fb2652d90827c7f8b2472d2.js.gz → ganttDiagram-NO4QXBWP-53b4651e7e78eb3212ec05a0d72b8932.js.gz} +0 -0
  100. package/dist/server/web-ui/_expo/static/js/web/{gitGraph-TEB2WS4Q-d978b8a2d1fd8fcc132b16ef8d57dd7c.js → gitGraph-TEB2WS4Q-03038b65af81bb0d4755a35c737decf0.js} +1 -1
  101. package/dist/server/web-ui/_expo/static/js/web/{gitGraph-TEB2WS4Q-d978b8a2d1fd8fcc132b16ef8d57dd7c.js.br → gitGraph-TEB2WS4Q-03038b65af81bb0d4755a35c737decf0.js.br} +0 -0
  102. package/dist/server/web-ui/_expo/static/js/web/gitGraph-TEB2WS4Q-03038b65af81bb0d4755a35c737decf0.js.gz +0 -0
  103. package/dist/server/web-ui/_expo/static/js/web/{gitGraphDiagram-IHSO6WYX-6cb31a37312da231b8f10f86b0d4de52.js → gitGraphDiagram-IHSO6WYX-49a762c3f7ecc4315bcde2731f090410.js} +1 -1
  104. package/dist/server/web-ui/_expo/static/js/web/{gitGraphDiagram-IHSO6WYX-6cb31a37312da231b8f10f86b0d4de52.js.br → gitGraphDiagram-IHSO6WYX-49a762c3f7ecc4315bcde2731f090410.js.br} +0 -0
  105. package/dist/server/web-ui/_expo/static/js/web/{gitGraphDiagram-IHSO6WYX-6cb31a37312da231b8f10f86b0d4de52.js.gz → gitGraphDiagram-IHSO6WYX-49a762c3f7ecc4315bcde2731f090410.js.gz} +0 -0
  106. package/dist/server/web-ui/_expo/static/js/web/{index-4c86d3c14df18b18b3b9a6329b896faf.js → index-6e99d24bcc09db447a2d8b0c747a5263.js} +74 -73
  107. package/dist/server/web-ui/_expo/static/js/web/index-6e99d24bcc09db447a2d8b0c747a5263.js.br +0 -0
  108. package/dist/server/web-ui/_expo/static/js/web/index-6e99d24bcc09db447a2d8b0c747a5263.js.gz +0 -0
  109. package/dist/server/web-ui/_expo/static/js/web/{indexeddb-attachment-store-5a90994af83f12740a986d9f1cb55cc9.js → indexeddb-attachment-store-ea6e57606ef25b42cf1e6665a3f5313e.js} +1 -1
  110. package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-ea6e57606ef25b42cf1e6665a3f5313e.js.br +0 -0
  111. package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-ea6e57606ef25b42cf1e6665a3f5313e.js.gz +0 -0
  112. package/dist/server/web-ui/_expo/static/js/web/{info-DKCQHKI2-b59d0dbb9a30d361ddc796a5cfa7fc41.js → info-DKCQHKI2-61f5b3ca4e5cea885d6254ccef0626c4.js} +1 -1
  113. package/dist/server/web-ui/_expo/static/js/web/{info-DKCQHKI2-b59d0dbb9a30d361ddc796a5cfa7fc41.js.br → info-DKCQHKI2-61f5b3ca4e5cea885d6254ccef0626c4.js.br} +0 -0
  114. package/dist/server/web-ui/_expo/static/js/web/info-DKCQHKI2-61f5b3ca4e5cea885d6254ccef0626c4.js.gz +0 -0
  115. package/dist/server/web-ui/_expo/static/js/web/{infoDiagram-FWYZ7A6U-0c4368de61a3bdbfbc73b143423981d9.js → infoDiagram-FWYZ7A6U-f47fe897045bf4e6949ea71abdae89fe.js} +1 -1
  116. package/dist/server/web-ui/_expo/static/js/web/infoDiagram-FWYZ7A6U-f47fe897045bf4e6949ea71abdae89fe.js.br +0 -0
  117. package/dist/server/web-ui/_expo/static/js/web/infoDiagram-FWYZ7A6U-f47fe897045bf4e6949ea71abdae89fe.js.gz +0 -0
  118. package/dist/server/web-ui/_expo/static/js/web/{ishikawaDiagram-FXEZZL3T-1474e73532a16148b7944d3b0f896197.js → ishikawaDiagram-FXEZZL3T-bf6597ebf1b0773e1d39dea7fcf8800f.js} +1 -1
  119. package/dist/server/web-ui/_expo/static/js/web/ishikawaDiagram-FXEZZL3T-bf6597ebf1b0773e1d39dea7fcf8800f.js.br +0 -0
  120. package/dist/server/web-ui/_expo/static/js/web/{ishikawaDiagram-FXEZZL3T-1474e73532a16148b7944d3b0f896197.js.gz → ishikawaDiagram-FXEZZL3T-bf6597ebf1b0773e1d39dea7fcf8800f.js.gz} +0 -0
  121. package/dist/server/web-ui/_expo/static/js/web/{journeyDiagram-5HDEW3XC-13df6cce9cb7f0e6ffbaa9a614feeee4.js → journeyDiagram-5HDEW3XC-7dc3a04c43574b6aac59a4520d111129.js} +1 -1
  122. package/dist/server/web-ui/_expo/static/js/web/journeyDiagram-5HDEW3XC-7dc3a04c43574b6aac59a4520d111129.js.br +0 -0
  123. package/dist/server/web-ui/_expo/static/js/web/{journeyDiagram-5HDEW3XC-13df6cce9cb7f0e6ffbaa9a614feeee4.js.gz → journeyDiagram-5HDEW3XC-7dc3a04c43574b6aac59a4520d111129.js.gz} +0 -0
  124. package/dist/server/web-ui/_expo/static/js/web/{kanban-definition-HUTT4EX6-6b56c0da5302838e7e1c46bf7460ea35.js → kanban-definition-HUTT4EX6-7be647182b1c3291e9330de01d329adf.js} +1 -1
  125. package/dist/server/web-ui/_expo/static/js/web/kanban-definition-HUTT4EX6-7be647182b1c3291e9330de01d329adf.js.br +0 -0
  126. package/dist/server/web-ui/_expo/static/js/web/{kanban-definition-HUTT4EX6-6b56c0da5302838e7e1c46bf7460ea35.js.gz → kanban-definition-HUTT4EX6-7be647182b1c3291e9330de01d329adf.js.gz} +0 -0
  127. package/dist/server/web-ui/_expo/static/js/web/{katex-7f6ac23f118e6e9264fdfa96e335134f.js → katex-c0aeb8f935f239b315771d04dc16b1e7.js} +1 -1
  128. package/dist/server/web-ui/_expo/static/js/web/katex-c0aeb8f935f239b315771d04dc16b1e7.js.br +0 -0
  129. package/dist/server/web-ui/_expo/static/js/web/{katex-7f6ac23f118e6e9264fdfa96e335134f.js.gz → katex-c0aeb8f935f239b315771d04dc16b1e7.js.gz} +0 -0
  130. package/dist/server/web-ui/_expo/static/js/web/{mermaid-75931b049ce3e66af3cd8ddf01e1cd23.js → mermaid-f4cf4ad300756762c2eed3bd65fecb6c.js} +9 -9
  131. package/dist/server/web-ui/_expo/static/js/web/mermaid-f4cf4ad300756762c2eed3bd65fecb6c.js.br +0 -0
  132. package/dist/server/web-ui/_expo/static/js/web/{mermaid-75931b049ce3e66af3cd8ddf01e1cd23.js.gz → mermaid-f4cf4ad300756762c2eed3bd65fecb6c.js.gz} +0 -0
  133. package/dist/server/web-ui/_expo/static/js/web/{mindmap-definition-LN4V7U3C-fafde693a329ca39007debdd961134b4.js → mindmap-definition-LN4V7U3C-5a266041ac99a182f60e7d1ade3053a7.js} +21 -21
  134. package/dist/server/web-ui/_expo/static/js/web/mindmap-definition-LN4V7U3C-5a266041ac99a182f60e7d1ade3053a7.js.br +0 -0
  135. package/dist/server/web-ui/_expo/static/js/web/mindmap-definition-LN4V7U3C-5a266041ac99a182f60e7d1ade3053a7.js.gz +0 -0
  136. package/dist/server/web-ui/_expo/static/js/web/{native-file-attachment-store-645b8ffe39c60c05c0a224e6efcb5a9c.js → native-file-attachment-store-78cca157541c8af3aff9a719f7b951be.js} +3 -3
  137. package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-78cca157541c8af3aff9a719f7b951be.js.br +11 -0
  138. package/dist/server/web-ui/_expo/static/js/web/{native-file-attachment-store-645b8ffe39c60c05c0a224e6efcb5a9c.js.gz → native-file-attachment-store-78cca157541c8af3aff9a719f7b951be.js.gz} +0 -0
  139. package/dist/server/web-ui/_expo/static/js/web/{orchestration-graph-panel-2d117a5764d11c411d707e37fba93a1b.js → orchestration-graph-panel-77d13bf34f0ff1ffed397666b8009b21.js} +5 -5
  140. package/dist/server/web-ui/_expo/static/js/web/orchestration-graph-panel-77d13bf34f0ff1ffed397666b8009b21.js.br +0 -0
  141. package/dist/server/web-ui/_expo/static/js/web/{orchestration-graph-panel-2d117a5764d11c411d707e37fba93a1b.js.gz → orchestration-graph-panel-77d13bf34f0ff1ffed397666b8009b21.js.gz} +0 -0
  142. package/dist/server/web-ui/_expo/static/js/web/{packet-7NZHBO7P-61a485e09ee448c823fffbdfc588826d.js → packet-7NZHBO7P-8f2693917ef293414f42718be4e1d738.js} +1 -1
  143. package/dist/server/web-ui/_expo/static/js/web/{packet-7NZHBO7P-61a485e09ee448c823fffbdfc588826d.js.br → packet-7NZHBO7P-8f2693917ef293414f42718be4e1d738.js.br} +1 -1
  144. package/dist/server/web-ui/_expo/static/js/web/packet-7NZHBO7P-8f2693917ef293414f42718be4e1d738.js.gz +0 -0
  145. package/dist/server/web-ui/_expo/static/js/web/{pegDiagram-2B236MQR-035fe1b93f90f4775e99aea533552b42.js → pegDiagram-2B236MQR-58835705d6a13a27b59f4c85aeaf7012.js} +1 -1
  146. package/dist/server/web-ui/_expo/static/js/web/pegDiagram-2B236MQR-58835705d6a13a27b59f4c85aeaf7012.js.br +0 -0
  147. package/dist/server/web-ui/_expo/static/js/web/pegDiagram-2B236MQR-58835705d6a13a27b59f4c85aeaf7012.js.gz +0 -0
  148. package/dist/server/web-ui/_expo/static/js/web/{pie-RZYD4A2V-f6208df18db61d490f4811b192b77dec.js → pie-RZYD4A2V-8b0f157b04de7752354fc779ddbf49a4.js} +1 -1
  149. package/dist/server/web-ui/_expo/static/js/web/pie-RZYD4A2V-8b0f157b04de7752354fc779ddbf49a4.js.br +0 -0
  150. package/dist/server/web-ui/_expo/static/js/web/pie-RZYD4A2V-8b0f157b04de7752354fc779ddbf49a4.js.gz +0 -0
  151. package/dist/server/web-ui/_expo/static/js/web/{pieDiagram-ENE6RG2P-c78c82bf26f51acb7b7c44ae51eba9c6.js → pieDiagram-ENE6RG2P-a0061a200414abc917902506915ccabe.js} +1 -1
  152. package/dist/server/web-ui/_expo/static/js/web/pieDiagram-ENE6RG2P-a0061a200414abc917902506915ccabe.js.br +0 -0
  153. package/dist/server/web-ui/_expo/static/js/web/{pieDiagram-ENE6RG2P-c78c82bf26f51acb7b7c44ae51eba9c6.js.gz → pieDiagram-ENE6RG2P-a0061a200414abc917902506915ccabe.js.gz} +0 -0
  154. package/dist/server/web-ui/_expo/static/js/web/{quadrantDiagram-ABIIQ3AL-efff1486187742fe8683a966651df92f.js → quadrantDiagram-ABIIQ3AL-ccae11df8eb112141ab52dc3b055366d.js} +1 -1
  155. package/dist/server/web-ui/_expo/static/js/web/quadrantDiagram-ABIIQ3AL-ccae11df8eb112141ab52dc3b055366d.js.br +0 -0
  156. package/dist/server/web-ui/_expo/static/js/web/{quadrantDiagram-ABIIQ3AL-efff1486187742fe8683a966651df92f.js.gz → quadrantDiagram-ABIIQ3AL-ccae11df8eb112141ab52dc3b055366d.js.gz} +0 -0
  157. package/dist/server/web-ui/_expo/static/js/web/{radar-I7S5WNFK-0150ed7f0d337fc7ec70638a3656ea06.js → radar-I7S5WNFK-0768be5c16d166cd094d75a4c9fba55a.js} +1 -1
  158. package/dist/server/web-ui/_expo/static/js/web/{radar-I7S5WNFK-0150ed7f0d337fc7ec70638a3656ea06.js.br → radar-I7S5WNFK-0768be5c16d166cd094d75a4c9fba55a.js.br} +0 -0
  159. package/dist/server/web-ui/_expo/static/js/web/radar-I7S5WNFK-0768be5c16d166cd094d75a4c9fba55a.js.gz +0 -0
  160. package/dist/server/web-ui/_expo/static/js/web/{railroad-3IZDKUUU-c6e94ec81a88c02cb339de59f29386f5.js → railroad-3IZDKUUU-55b81b14fbc2908aa06995bd62b57b43.js} +1 -1
  161. package/dist/server/web-ui/_expo/static/js/web/{railroad-3IZDKUUU-c6e94ec81a88c02cb339de59f29386f5.js.br → railroad-3IZDKUUU-55b81b14fbc2908aa06995bd62b57b43.js.br} +1 -1
  162. package/dist/server/web-ui/_expo/static/js/web/railroad-3IZDKUUU-55b81b14fbc2908aa06995bd62b57b43.js.gz +0 -0
  163. package/dist/server/web-ui/_expo/static/js/web/{railroad-abnf-AHOZXSZD-627ed129da90b5e1d371bd2c3b9db457.js → railroad-abnf-AHOZXSZD-47462203d9c422ed3805bd31ed12d922.js} +1 -1
  164. package/dist/server/web-ui/_expo/static/js/web/{railroad-abnf-AHOZXSZD-627ed129da90b5e1d371bd2c3b9db457.js.br → railroad-abnf-AHOZXSZD-47462203d9c422ed3805bd31ed12d922.js.br} +1 -1
  165. package/dist/server/web-ui/_expo/static/js/web/railroad-abnf-AHOZXSZD-47462203d9c422ed3805bd31ed12d922.js.gz +0 -0
  166. package/dist/server/web-ui/_expo/static/js/web/{railroad-ebnf-EBAXGLYW-1b7ec12d3b92be4e181971b21f01f3f8.js → railroad-ebnf-EBAXGLYW-708f5dcce4ca8693b288152f6aa217b1.js} +1 -1
  167. package/dist/server/web-ui/_expo/static/js/web/{railroad-ebnf-EBAXGLYW-1b7ec12d3b92be4e181971b21f01f3f8.js.br → railroad-ebnf-EBAXGLYW-708f5dcce4ca8693b288152f6aa217b1.js.br} +1 -1
  168. package/dist/server/web-ui/_expo/static/js/web/railroad-ebnf-EBAXGLYW-708f5dcce4ca8693b288152f6aa217b1.js.gz +0 -0
  169. package/dist/server/web-ui/_expo/static/js/web/{railroad-peg-LSFZ7HO6-8a8e027f4141d16a12c15223da966d7d.js → railroad-peg-LSFZ7HO6-eb7ff4c6b43a9c593b0feac004d52d4e.js} +1 -1
  170. package/dist/server/web-ui/_expo/static/js/web/railroad-peg-LSFZ7HO6-eb7ff4c6b43a9c593b0feac004d52d4e.js.br +0 -0
  171. package/dist/server/web-ui/_expo/static/js/web/railroad-peg-LSFZ7HO6-eb7ff4c6b43a9c593b0feac004d52d4e.js.gz +0 -0
  172. package/dist/server/web-ui/_expo/static/js/web/{railroadDiagram-RFXS5EU6-499f36fe78b07e5558063f963a47a474.js → railroadDiagram-RFXS5EU6-c1c534a0f6478078bca1fd806a1ee2ae.js} +1 -1
  173. package/dist/server/web-ui/_expo/static/js/web/railroadDiagram-RFXS5EU6-c1c534a0f6478078bca1fd806a1ee2ae.js.br +0 -0
  174. package/dist/server/web-ui/_expo/static/js/web/railroadDiagram-RFXS5EU6-c1c534a0f6478078bca1fd806a1ee2ae.js.gz +0 -0
  175. package/dist/server/web-ui/_expo/static/js/web/{requirementDiagram-TGXJPOKE-9aaddb885fc59873a8f89cd7550c2c43.js → requirementDiagram-TGXJPOKE-5dd7440a5946dde0e06a5afa9e0295a1.js} +1 -1
  176. package/dist/server/web-ui/_expo/static/js/web/requirementDiagram-TGXJPOKE-5dd7440a5946dde0e06a5afa9e0295a1.js.br +0 -0
  177. package/dist/server/web-ui/_expo/static/js/web/{requirementDiagram-TGXJPOKE-9aaddb885fc59873a8f89cd7550c2c43.js.gz → requirementDiagram-TGXJPOKE-5dd7440a5946dde0e06a5afa9e0295a1.js.gz} +0 -0
  178. package/dist/server/web-ui/_expo/static/js/web/{sankeyDiagram-HTMAVEWB-3fa66fe414adce7a50e31551c059f99c.js → sankeyDiagram-HTMAVEWB-76b963967a4f7c862f4f2f18492e7c56.js} +120 -120
  179. package/dist/server/web-ui/_expo/static/js/web/sankeyDiagram-HTMAVEWB-76b963967a4f7c862f4f2f18492e7c56.js.br +0 -0
  180. package/dist/server/web-ui/_expo/static/js/web/sankeyDiagram-HTMAVEWB-76b963967a4f7c862f4f2f18492e7c56.js.gz +0 -0
  181. package/dist/server/web-ui/_expo/static/js/web/{sequenceDiagram-DBY2YBRQ-856a29fb0507a2dcb697a2aa29cd0b7a.js → sequenceDiagram-DBY2YBRQ-d40a3dbcd285c19aa010a697e12f5022.js} +1 -1
  182. package/dist/server/web-ui/_expo/static/js/web/sequenceDiagram-DBY2YBRQ-d40a3dbcd285c19aa010a697e12f5022.js.br +0 -0
  183. package/dist/server/web-ui/_expo/static/js/web/{sequenceDiagram-DBY2YBRQ-856a29fb0507a2dcb697a2aa29cd0b7a.js.gz → sequenceDiagram-DBY2YBRQ-d40a3dbcd285c19aa010a697e12f5022.js.gz} +0 -0
  184. package/dist/server/web-ui/_expo/static/js/web/{sizeCapture-X5ZJPWSS-388b849b33073b8202dd9ca50038b1c7.js → sizeCapture-X5ZJPWSS-03ac818220d4ba98bdd2f4f454758263.js} +1 -1
  185. package/dist/server/web-ui/_expo/static/js/web/sizeCapture-X5ZJPWSS-03ac818220d4ba98bdd2f4f454758263.js.br +0 -0
  186. package/dist/server/web-ui/_expo/static/js/web/sizeCapture-X5ZJPWSS-03ac818220d4ba98bdd2f4f454758263.js.gz +0 -0
  187. package/dist/server/web-ui/_expo/static/js/web/{stateDiagram-2N3HPSRC-9ca22d078d9922ddcb54ba7bb389c734.js → stateDiagram-2N3HPSRC-ba1e123bf8ce69ae781981f264e90564.js} +1 -1
  188. package/dist/server/web-ui/_expo/static/js/web/stateDiagram-2N3HPSRC-ba1e123bf8ce69ae781981f264e90564.js.br +0 -0
  189. package/dist/server/web-ui/_expo/static/js/web/stateDiagram-2N3HPSRC-ba1e123bf8ce69ae781981f264e90564.js.gz +0 -0
  190. package/dist/server/web-ui/_expo/static/js/web/{stateDiagram-v2-6OUMAXLB-4357e7143c73859f6b4858ba72acb5aa.js → stateDiagram-v2-6OUMAXLB-5925b0db81d9a113005bd93c6adbab9d.js} +1 -1
  191. package/dist/server/web-ui/_expo/static/js/web/stateDiagram-v2-6OUMAXLB-5925b0db81d9a113005bd93c6adbab9d.js.br +0 -0
  192. package/dist/server/web-ui/_expo/static/js/web/stateDiagram-v2-6OUMAXLB-5925b0db81d9a113005bd93c6adbab9d.js.gz +0 -0
  193. package/dist/server/web-ui/_expo/static/js/web/{swimlanes-5IMT3BWC-d737ca408a7a2b82f7419141456d28e4.js → swimlanes-5IMT3BWC-93c0bb8b5ee84ca6f11d561497ec0ef0.js} +1 -1
  194. package/dist/server/web-ui/_expo/static/js/web/swimlanes-5IMT3BWC-93c0bb8b5ee84ca6f11d561497ec0ef0.js.br +0 -0
  195. package/dist/server/web-ui/_expo/static/js/web/{swimlanes-5IMT3BWC-d737ca408a7a2b82f7419141456d28e4.js.gz → swimlanes-5IMT3BWC-93c0bb8b5ee84ca6f11d561497ec0ef0.js.gz} +0 -0
  196. package/dist/server/web-ui/_expo/static/js/web/{swimlanesDiagram-G3AALYLV-0bf2ac58b338c2aeb33213ff1a57983a.js → swimlanesDiagram-G3AALYLV-5f3e335e1800b344e786080955bdb2c5.js} +1 -1
  197. package/dist/server/web-ui/_expo/static/js/web/swimlanesDiagram-G3AALYLV-5f3e335e1800b344e786080955bdb2c5.js.br +0 -0
  198. package/dist/server/web-ui/_expo/static/js/web/swimlanesDiagram-G3AALYLV-5f3e335e1800b344e786080955bdb2c5.js.gz +0 -0
  199. package/dist/server/web-ui/_expo/static/js/web/{timeline-definition-FHXFAJF6-1130419ca563266603c98f1b2148a154.js → timeline-definition-FHXFAJF6-ebf6579c1264c7dd88b67d0ecc9313d7.js} +1 -1
  200. package/dist/server/web-ui/_expo/static/js/web/timeline-definition-FHXFAJF6-ebf6579c1264c7dd88b67d0ecc9313d7.js.br +0 -0
  201. package/dist/server/web-ui/_expo/static/js/web/timeline-definition-FHXFAJF6-ebf6579c1264c7dd88b67d0ecc9313d7.js.gz +0 -0
  202. package/dist/server/web-ui/_expo/static/js/web/{treeView-QDETBFTQ-4f6ec9b592731c21dee99264fa638554.js → treeView-QDETBFTQ-682ed2be8efc51bd8196ff3320637705.js} +1 -1
  203. package/dist/server/web-ui/_expo/static/js/web/{treeView-QDETBFTQ-4f6ec9b592731c21dee99264fa638554.js.br → treeView-QDETBFTQ-682ed2be8efc51bd8196ff3320637705.js.br} +0 -0
  204. package/dist/server/web-ui/_expo/static/js/web/treeView-QDETBFTQ-682ed2be8efc51bd8196ff3320637705.js.gz +0 -0
  205. package/dist/server/web-ui/_expo/static/js/web/{treemap-6X3UGDF4-39eb6ec2c19a5de9242fd28aa26dcf5b.js → treemap-6X3UGDF4-4fb89637583518868012429289715b50.js} +1 -1
  206. package/dist/server/web-ui/_expo/static/js/web/{treemap-6X3UGDF4-39eb6ec2c19a5de9242fd28aa26dcf5b.js.br → treemap-6X3UGDF4-4fb89637583518868012429289715b50.js.br} +0 -0
  207. package/dist/server/web-ui/_expo/static/js/web/treemap-6X3UGDF4-4fb89637583518868012429289715b50.js.gz +0 -0
  208. package/dist/server/web-ui/_expo/static/js/web/{vennDiagram-L72KCM5P-4c15b392e9de3fdc472b53cbdf8e7558.js → vennDiagram-L72KCM5P-4a09551e281dc72285c8c56bcd4b04a3.js} +2 -2
  209. package/dist/server/web-ui/_expo/static/js/web/vennDiagram-L72KCM5P-4a09551e281dc72285c8c56bcd4b04a3.js.br +0 -0
  210. package/dist/server/web-ui/_expo/static/js/web/vennDiagram-L72KCM5P-4a09551e281dc72285c8c56bcd4b04a3.js.gz +0 -0
  211. package/dist/server/web-ui/_expo/static/js/web/{visualizer-bundle-b0af8f4f1ab8d4029f3f21236df43f7f.js → visualizer-bundle-fab344f71166d5645590bda1bab1e0a5.js} +1 -1
  212. package/dist/server/web-ui/_expo/static/js/web/visualizer-bundle-fab344f71166d5645590bda1bab1e0a5.js.br +0 -0
  213. package/dist/server/web-ui/_expo/static/js/web/{visualizer-bundle-b0af8f4f1ab8d4029f3f21236df43f7f.js.gz → visualizer-bundle-fab344f71166d5645590bda1bab1e0a5.js.gz} +0 -0
  214. package/dist/server/web-ui/_expo/static/js/web/{visualizer-panel-3fbc1337bb844d7163cbdb418a4dfd53.js → visualizer-panel-bf8e9531071e12cefa8eda4766877aba.js} +1 -1
  215. package/dist/server/web-ui/_expo/static/js/web/visualizer-panel-bf8e9531071e12cefa8eda4766877aba.js.br +6 -0
  216. package/dist/server/web-ui/_expo/static/js/web/{visualizer-panel-3fbc1337bb844d7163cbdb418a4dfd53.js.gz → visualizer-panel-bf8e9531071e12cefa8eda4766877aba.js.gz} +0 -0
  217. package/dist/server/web-ui/_expo/static/js/web/{visualizer-pip-de03996e25ac5d8a11d723ea90b2f9a3.js → visualizer-pip-633730d52ecc119677ce9ecc287c7879.js} +2 -2
  218. package/dist/server/web-ui/_expo/static/js/web/visualizer-pip-633730d52ecc119677ce9ecc287c7879.js.br +0 -0
  219. package/dist/server/web-ui/_expo/static/js/web/{visualizer-pip-de03996e25ac5d8a11d723ea90b2f9a3.js.gz → visualizer-pip-633730d52ecc119677ce9ecc287c7879.js.gz} +0 -0
  220. package/dist/server/web-ui/_expo/static/js/web/{wardley-OPB4EBWU-b075ee9680ce77acf211a0fb1e63cca8.js → wardley-OPB4EBWU-86a2856822d60f742050c338803f8533.js} +1 -1
  221. package/dist/server/web-ui/_expo/static/js/web/wardley-OPB4EBWU-86a2856822d60f742050c338803f8533.js.br +0 -0
  222. package/dist/server/web-ui/_expo/static/js/web/wardley-OPB4EBWU-86a2856822d60f742050c338803f8533.js.gz +0 -0
  223. package/dist/server/web-ui/_expo/static/js/web/{wardleyDiagram-EHGQE667-a93bc6a6a1e80adcb9a740a2ea3d1676.js → wardleyDiagram-EHGQE667-cf65a2e4de30372a177e82834dba571c.js} +1 -1
  224. package/dist/server/web-ui/_expo/static/js/web/wardleyDiagram-EHGQE667-cf65a2e4de30372a177e82834dba571c.js.br +0 -0
  225. package/dist/server/web-ui/_expo/static/js/web/wardleyDiagram-EHGQE667-cf65a2e4de30372a177e82834dba571c.js.gz +0 -0
  226. package/dist/server/web-ui/_expo/static/js/web/{xychartDiagram-FW5EYKEG-ec54fa07a12c5792d0bb7b65deaff05b.js → xychartDiagram-FW5EYKEG-d29f0b24141b00d07e99c98d99ac55d4.js} +1 -1
  227. package/dist/server/web-ui/_expo/static/js/web/xychartDiagram-FW5EYKEG-d29f0b24141b00d07e99c98d99ac55d4.js.br +0 -0
  228. package/dist/server/web-ui/_expo/static/js/web/xychartDiagram-FW5EYKEG-d29f0b24141b00d07e99c98d99ac55d4.js.gz +0 -0
  229. package/dist/server/web-ui/index.html +1 -1
  230. package/dist/server/web-ui/index.html.br +0 -0
  231. package/dist/server/web-ui/index.html.gz +0 -0
  232. package/dist/src/terminal/shell-integration/zsh/.zshenv +17 -17
  233. package/dist/src/terminal/shell-integration/zsh/otto-integration.zsh +32 -32
  234. package/package.json +5 -5
  235. package/dist/server/web-ui/_expo/static/js/web/__common-6d2299ed037bec2393245a7c0bf1c643.js.br +0 -0
  236. package/dist/server/web-ui/_expo/static/js/web/__common-6d2299ed037bec2393245a7c0bf1c643.js.gz +0 -0
  237. package/dist/server/web-ui/_expo/static/js/web/abnfDiagram-VRR7QNED-c3c2ca327b2d7ad9af3caa1cba884908.js.br +0 -0
  238. package/dist/server/web-ui/_expo/static/js/web/abnfDiagram-VRR7QNED-c3c2ca327b2d7ad9af3caa1cba884908.js.gz +0 -0
  239. package/dist/server/web-ui/_expo/static/js/web/architecture-TIHT7OUA-0cf23d3dc9775f216c01daae4aae250a.js.gz +0 -0
  240. package/dist/server/web-ui/_expo/static/js/web/architectureDiagram-ZJ3FMSHR-f3bce96124559dc19faa4d90aca4afd4.js.br +0 -0
  241. package/dist/server/web-ui/_expo/static/js/web/architectureDiagram-ZJ3FMSHR-f3bce96124559dc19faa4d90aca4afd4.js.gz +0 -0
  242. package/dist/server/web-ui/_expo/static/js/web/blockDiagram-677ZJIJ3-839486928c0f151128a5e2836aa07080.js.br +0 -0
  243. package/dist/server/web-ui/_expo/static/js/web/c4Diagram-LMCZKHZV-197212c21520a6b659a5649e683619d0.js.br +0 -0
  244. package/dist/server/web-ui/_expo/static/js/web/classDiagram-OUVF2IWQ-a0a0fbefc96d14b6619c84fc4f92a39a.js.br +0 -0
  245. package/dist/server/web-ui/_expo/static/js/web/classDiagram-OUVF2IWQ-a0a0fbefc96d14b6619c84fc4f92a39a.js.gz +0 -0
  246. package/dist/server/web-ui/_expo/static/js/web/classDiagram-v2-EOCWNBFH-e979239c6d160123d5b4847253a8a70e.js.br +0 -0
  247. package/dist/server/web-ui/_expo/static/js/web/classDiagram-v2-EOCWNBFH-e979239c6d160123d5b4847253a8a70e.js.gz +0 -0
  248. package/dist/server/web-ui/_expo/static/js/web/cose-bilkent-JH36ORCC-bbc39a6bb062ba85e433f91becc37a65.js.br +0 -0
  249. package/dist/server/web-ui/_expo/static/js/web/cose-bilkent-JH36ORCC-bbc39a6bb062ba85e433f91becc37a65.js.gz +0 -0
  250. package/dist/server/web-ui/_expo/static/js/web/cynefin-VYW2F7L2-ea0e514652627740f5a2ed32b027a164.js.br +0 -0
  251. package/dist/server/web-ui/_expo/static/js/web/cynefin-VYW2F7L2-ea0e514652627740f5a2ed32b027a164.js.gz +0 -0
  252. package/dist/server/web-ui/_expo/static/js/web/cynefinDiagram-TSTJHNR4-0446f9b57ba778e5883d93e24692ffce.js.br +0 -0
  253. package/dist/server/web-ui/_expo/static/js/web/cynefinDiagram-TSTJHNR4-0446f9b57ba778e5883d93e24692ffce.js.gz +0 -0
  254. package/dist/server/web-ui/_expo/static/js/web/dagre-VKFMJZFB-69f7aa52521b06a95874b1ac67508def.js.br +0 -0
  255. package/dist/server/web-ui/_expo/static/js/web/dagre-VKFMJZFB-69f7aa52521b06a95874b1ac67508def.js.gz +0 -0
  256. package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-0ae8aadd6e53625f59d62eceb1f06ede.js.gz +0 -0
  257. package/dist/server/web-ui/_expo/static/js/web/diagram-FQU43EPY-bd0940835ccad031627e285aaba6d5ec.js.br +0 -0
  258. package/dist/server/web-ui/_expo/static/js/web/diagram-G47NLZAW-217e2cd3275924bc08fc6ebe79e95e48.js.br +0 -0
  259. package/dist/server/web-ui/_expo/static/js/web/diagram-G47NLZAW-217e2cd3275924bc08fc6ebe79e95e48.js.gz +0 -0
  260. package/dist/server/web-ui/_expo/static/js/web/diagram-NH7WQ7WH-fbd3aa35ca68df15ee378fb63241b333.js.br +0 -0
  261. package/dist/server/web-ui/_expo/static/js/web/diagram-NH7WQ7WH-fbd3aa35ca68df15ee378fb63241b333.js.gz +0 -0
  262. package/dist/server/web-ui/_expo/static/js/web/diagram-OA4YK3LP-48ebb0ba6bcb34417649bd55070542ad.js.br +0 -0
  263. package/dist/server/web-ui/_expo/static/js/web/diagram-OA4YK3LP-48ebb0ba6bcb34417649bd55070542ad.js.gz +0 -0
  264. package/dist/server/web-ui/_expo/static/js/web/diagram-WEI45ONY-2be85db5396495fa970419f77587cf14.js.br +0 -0
  265. package/dist/server/web-ui/_expo/static/js/web/diagram-WEI45ONY-2be85db5396495fa970419f77587cf14.js.gz +0 -0
  266. package/dist/server/web-ui/_expo/static/js/web/ebnfDiagram-CCIWWBDH-3c5c44cf8340b641d13076adab77967b.js.br +0 -0
  267. package/dist/server/web-ui/_expo/static/js/web/ebnfDiagram-CCIWWBDH-3c5c44cf8340b641d13076adab77967b.js.gz +0 -0
  268. package/dist/server/web-ui/_expo/static/js/web/erDiagram-Q63AITRT-81762a72bd33bf1042e4cad4f688abf2.js.br +0 -0
  269. package/dist/server/web-ui/_expo/static/js/web/erDiagram-Q63AITRT-81762a72bd33bf1042e4cad4f688abf2.js.gz +0 -0
  270. package/dist/server/web-ui/_expo/static/js/web/eventmodeling-45OFAUF4-11d7615d746c5304c28d4931ec9ca5f7.js.gz +0 -0
  271. package/dist/server/web-ui/_expo/static/js/web/flowDiagram-23GEKE2U-5a2af608a9500bb36da0595c3464a562.js.br +0 -0
  272. package/dist/server/web-ui/_expo/static/js/web/flowDiagram-23GEKE2U-5a2af608a9500bb36da0595c3464a562.js.gz +0 -0
  273. package/dist/server/web-ui/_expo/static/js/web/ganttDiagram-NO4QXBWP-379aae0f5fb2652d90827c7f8b2472d2.js.br +0 -0
  274. package/dist/server/web-ui/_expo/static/js/web/gitGraph-TEB2WS4Q-d978b8a2d1fd8fcc132b16ef8d57dd7c.js.gz +0 -0
  275. package/dist/server/web-ui/_expo/static/js/web/index-4c86d3c14df18b18b3b9a6329b896faf.js.br +0 -0
  276. package/dist/server/web-ui/_expo/static/js/web/index-4c86d3c14df18b18b3b9a6329b896faf.js.gz +0 -0
  277. package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-5a90994af83f12740a986d9f1cb55cc9.js.br +0 -0
  278. package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-5a90994af83f12740a986d9f1cb55cc9.js.gz +0 -0
  279. package/dist/server/web-ui/_expo/static/js/web/info-DKCQHKI2-b59d0dbb9a30d361ddc796a5cfa7fc41.js.gz +0 -0
  280. package/dist/server/web-ui/_expo/static/js/web/infoDiagram-FWYZ7A6U-0c4368de61a3bdbfbc73b143423981d9.js.br +0 -0
  281. package/dist/server/web-ui/_expo/static/js/web/infoDiagram-FWYZ7A6U-0c4368de61a3bdbfbc73b143423981d9.js.gz +0 -0
  282. package/dist/server/web-ui/_expo/static/js/web/ishikawaDiagram-FXEZZL3T-1474e73532a16148b7944d3b0f896197.js.br +0 -0
  283. package/dist/server/web-ui/_expo/static/js/web/journeyDiagram-5HDEW3XC-13df6cce9cb7f0e6ffbaa9a614feeee4.js.br +0 -0
  284. package/dist/server/web-ui/_expo/static/js/web/kanban-definition-HUTT4EX6-6b56c0da5302838e7e1c46bf7460ea35.js.br +0 -0
  285. package/dist/server/web-ui/_expo/static/js/web/katex-7f6ac23f118e6e9264fdfa96e335134f.js.br +0 -0
  286. package/dist/server/web-ui/_expo/static/js/web/mermaid-75931b049ce3e66af3cd8ddf01e1cd23.js.br +0 -0
  287. package/dist/server/web-ui/_expo/static/js/web/mindmap-definition-LN4V7U3C-fafde693a329ca39007debdd961134b4.js.br +0 -0
  288. package/dist/server/web-ui/_expo/static/js/web/mindmap-definition-LN4V7U3C-fafde693a329ca39007debdd961134b4.js.gz +0 -0
  289. package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-645b8ffe39c60c05c0a224e6efcb5a9c.js.br +0 -0
  290. package/dist/server/web-ui/_expo/static/js/web/orchestration-graph-panel-2d117a5764d11c411d707e37fba93a1b.js.br +0 -0
  291. package/dist/server/web-ui/_expo/static/js/web/packet-7NZHBO7P-61a485e09ee448c823fffbdfc588826d.js.gz +0 -0
  292. package/dist/server/web-ui/_expo/static/js/web/pegDiagram-2B236MQR-035fe1b93f90f4775e99aea533552b42.js.br +0 -0
  293. package/dist/server/web-ui/_expo/static/js/web/pegDiagram-2B236MQR-035fe1b93f90f4775e99aea533552b42.js.gz +0 -0
  294. package/dist/server/web-ui/_expo/static/js/web/pie-RZYD4A2V-f6208df18db61d490f4811b192b77dec.js.br +0 -0
  295. package/dist/server/web-ui/_expo/static/js/web/pie-RZYD4A2V-f6208df18db61d490f4811b192b77dec.js.gz +0 -0
  296. package/dist/server/web-ui/_expo/static/js/web/pieDiagram-ENE6RG2P-c78c82bf26f51acb7b7c44ae51eba9c6.js.br +0 -0
  297. package/dist/server/web-ui/_expo/static/js/web/quadrantDiagram-ABIIQ3AL-efff1486187742fe8683a966651df92f.js.br +0 -0
  298. package/dist/server/web-ui/_expo/static/js/web/radar-I7S5WNFK-0150ed7f0d337fc7ec70638a3656ea06.js.gz +0 -0
  299. package/dist/server/web-ui/_expo/static/js/web/railroad-3IZDKUUU-c6e94ec81a88c02cb339de59f29386f5.js.gz +0 -0
  300. package/dist/server/web-ui/_expo/static/js/web/railroad-abnf-AHOZXSZD-627ed129da90b5e1d371bd2c3b9db457.js.gz +0 -0
  301. package/dist/server/web-ui/_expo/static/js/web/railroad-ebnf-EBAXGLYW-1b7ec12d3b92be4e181971b21f01f3f8.js.gz +0 -0
  302. package/dist/server/web-ui/_expo/static/js/web/railroad-peg-LSFZ7HO6-8a8e027f4141d16a12c15223da966d7d.js.br +0 -0
  303. package/dist/server/web-ui/_expo/static/js/web/railroad-peg-LSFZ7HO6-8a8e027f4141d16a12c15223da966d7d.js.gz +0 -0
  304. package/dist/server/web-ui/_expo/static/js/web/railroadDiagram-RFXS5EU6-499f36fe78b07e5558063f963a47a474.js.br +0 -0
  305. package/dist/server/web-ui/_expo/static/js/web/railroadDiagram-RFXS5EU6-499f36fe78b07e5558063f963a47a474.js.gz +0 -0
  306. package/dist/server/web-ui/_expo/static/js/web/requirementDiagram-TGXJPOKE-9aaddb885fc59873a8f89cd7550c2c43.js.br +0 -0
  307. package/dist/server/web-ui/_expo/static/js/web/sankeyDiagram-HTMAVEWB-3fa66fe414adce7a50e31551c059f99c.js.br +0 -0
  308. package/dist/server/web-ui/_expo/static/js/web/sankeyDiagram-HTMAVEWB-3fa66fe414adce7a50e31551c059f99c.js.gz +0 -0
  309. package/dist/server/web-ui/_expo/static/js/web/sequenceDiagram-DBY2YBRQ-856a29fb0507a2dcb697a2aa29cd0b7a.js.br +0 -0
  310. package/dist/server/web-ui/_expo/static/js/web/sizeCapture-X5ZJPWSS-388b849b33073b8202dd9ca50038b1c7.js.br +0 -0
  311. package/dist/server/web-ui/_expo/static/js/web/sizeCapture-X5ZJPWSS-388b849b33073b8202dd9ca50038b1c7.js.gz +0 -0
  312. package/dist/server/web-ui/_expo/static/js/web/stateDiagram-2N3HPSRC-9ca22d078d9922ddcb54ba7bb389c734.js.br +0 -0
  313. package/dist/server/web-ui/_expo/static/js/web/stateDiagram-2N3HPSRC-9ca22d078d9922ddcb54ba7bb389c734.js.gz +0 -0
  314. package/dist/server/web-ui/_expo/static/js/web/stateDiagram-v2-6OUMAXLB-4357e7143c73859f6b4858ba72acb5aa.js.br +0 -0
  315. package/dist/server/web-ui/_expo/static/js/web/stateDiagram-v2-6OUMAXLB-4357e7143c73859f6b4858ba72acb5aa.js.gz +0 -0
  316. package/dist/server/web-ui/_expo/static/js/web/swimlanes-5IMT3BWC-d737ca408a7a2b82f7419141456d28e4.js.br +0 -0
  317. package/dist/server/web-ui/_expo/static/js/web/swimlanesDiagram-G3AALYLV-0bf2ac58b338c2aeb33213ff1a57983a.js.br +0 -0
  318. package/dist/server/web-ui/_expo/static/js/web/swimlanesDiagram-G3AALYLV-0bf2ac58b338c2aeb33213ff1a57983a.js.gz +0 -0
  319. package/dist/server/web-ui/_expo/static/js/web/timeline-definition-FHXFAJF6-1130419ca563266603c98f1b2148a154.js.br +0 -0
  320. package/dist/server/web-ui/_expo/static/js/web/timeline-definition-FHXFAJF6-1130419ca563266603c98f1b2148a154.js.gz +0 -0
  321. package/dist/server/web-ui/_expo/static/js/web/treeView-QDETBFTQ-4f6ec9b592731c21dee99264fa638554.js.gz +0 -0
  322. package/dist/server/web-ui/_expo/static/js/web/treemap-6X3UGDF4-39eb6ec2c19a5de9242fd28aa26dcf5b.js.gz +0 -0
  323. package/dist/server/web-ui/_expo/static/js/web/vennDiagram-L72KCM5P-4c15b392e9de3fdc472b53cbdf8e7558.js.br +0 -0
  324. package/dist/server/web-ui/_expo/static/js/web/vennDiagram-L72KCM5P-4c15b392e9de3fdc472b53cbdf8e7558.js.gz +0 -0
  325. package/dist/server/web-ui/_expo/static/js/web/visualizer-bundle-b0af8f4f1ab8d4029f3f21236df43f7f.js.br +0 -0
  326. package/dist/server/web-ui/_expo/static/js/web/visualizer-panel-3fbc1337bb844d7163cbdb418a4dfd53.js.br +0 -3
  327. package/dist/server/web-ui/_expo/static/js/web/visualizer-pip-de03996e25ac5d8a11d723ea90b2f9a3.js.br +0 -0
  328. package/dist/server/web-ui/_expo/static/js/web/wardley-OPB4EBWU-b075ee9680ce77acf211a0fb1e63cca8.js.br +0 -0
  329. package/dist/server/web-ui/_expo/static/js/web/wardley-OPB4EBWU-b075ee9680ce77acf211a0fb1e63cca8.js.gz +0 -0
  330. package/dist/server/web-ui/_expo/static/js/web/wardleyDiagram-EHGQE667-a93bc6a6a1e80adcb9a740a2ea3d1676.js.br +0 -0
  331. package/dist/server/web-ui/_expo/static/js/web/wardleyDiagram-EHGQE667-a93bc6a6a1e80adcb9a740a2ea3d1676.js.gz +0 -0
  332. package/dist/server/web-ui/_expo/static/js/web/xychartDiagram-FW5EYKEG-ec54fa07a12c5792d0bb7b65deaff05b.js.br +0 -0
  333. package/dist/server/web-ui/_expo/static/js/web/xychartDiagram-FW5EYKEG-ec54fa07a12c5792d0bb7b65deaff05b.js.gz +0 -0
@@ -24,6 +24,7 @@ import { CLIENT_CAPS } from "@otto-code/protocol/client-capabilities";
24
24
  import { BrowserAutomationHostCapabilitySchema, } from "@otto-code/protocol/browser-automation/capabilities";
25
25
  import { LspService } from "./lsp/service.js";
26
26
  import { SolutionService } from "./solution-model/service.js";
27
+ import { killAllSharedDotnetProcesses } from "./dotnet-process-registry.js";
27
28
  const WS_CLOSE_DAEMON_AUTH_FAILED = 4401;
28
29
  function resolveTerminalAttentionReason(input) {
29
30
  if (input.attentionReason === "finished")
@@ -72,6 +73,7 @@ function createFallbackWorkspaceGitService() {
72
73
  onSnapshotUpdated: () => ({
73
74
  unsubscribe: () => { },
74
75
  }),
76
+ setActiveWorkspace: () => { },
75
77
  peekSnapshot: () => null,
76
78
  getCheckout: async (cwd) => ({
77
79
  cwd,
@@ -665,6 +667,10 @@ export class VoiceAssistantWebSocketServer {
665
667
  await this.solutionService.stopAll().catch((err) => {
666
668
  this.logger.warn({ err }, "Failed to stop solution sidecars during shutdown");
667
669
  });
670
+ // Backstop after both pools have had their turn: anything .NET still tracked is a
671
+ // process whose owner lost its handle, and it would otherwise outlive the daemon.
672
+ // Kills by tree, so MSBuild workers go with their parent.
673
+ killAllSharedDotnetProcesses();
668
674
  this.providerSnapshotManager.destroy();
669
675
  this.checkoutDiffManager.dispose();
670
676
  this.workspaceGitService.dispose();
@@ -1052,6 +1058,10 @@ export class VoiceAssistantWebSocketServer {
1052
1058
  codeIndex: true,
1053
1059
  // COMPAT(lsp): added in v0.6.8, drop the gate when daemon floor >= v0.6.8.
1054
1060
  lsp: true,
1061
+ // COMPAT(lspHostServers): added in v0.7.3, drop the gate when daemon floor >= v0.7.3.
1062
+ // `lsp.servers.list` answers host-wide with no `cwd`, so the settings screen can
1063
+ // list what this machine can run without a workspace open.
1064
+ lspHostServers: true,
1055
1065
  // COMPAT(solutionView): added in v0.6.8, drop the gate when daemon floor >= v0.6.8.
1056
1066
  // Serving the RPCs, not the feature being on: the switch lives in the daemon
1057
1067
  // config and the client reads it there. A flag that folded in the setting would
@@ -102,6 +102,12 @@ export interface WorkspaceGitService {
102
102
  }>;
103
103
  scheduleRefreshForCwd(cwd: string): void;
104
104
  onWorkspaceStateMayHaveChanged(cwd: string): void;
105
+ /**
106
+ * The workspace the client is currently in. Periodic refresh and background fetch run
107
+ * only for this one; everything else stays observed through its filesystem watchers but
108
+ * costs nothing while idle.
109
+ */
110
+ setActiveWorkspace(cwd: string | null): void;
105
111
  dispose(): void;
106
112
  }
107
113
  /**
@@ -185,6 +191,8 @@ export declare class WorkspaceGitServiceImpl implements WorkspaceGitService {
185
191
  private readonly snapshotUpdatedListeners;
186
192
  private readonly workspaceTargets;
187
193
  private readonly repoTargets;
194
+ /** Resolved cwd of the workspace the client is in; see `setActiveWorkspace`. */
195
+ private activeWorkspaceCwd;
188
196
  private readonly workingTreeWatchTargets;
189
197
  private readonly workingTreeWatchSetups;
190
198
  private readonly linuxIgnoredDirsCache;
@@ -243,7 +251,35 @@ export declare class WorkspaceGitServiceImpl implements WorkspaceGitService {
243
251
  private resolveWorkspaceGitRefsRoot;
244
252
  private startWorkspaceWatchers;
245
253
  private ensureRepoTarget;
254
+ private startRepoFetchTimer;
255
+ private stopRepoFetchTimer;
246
256
  private scheduleWorkspaceRefresh;
257
+ /**
258
+ * Which workspace the client is actually in, or null when that is not known.
259
+ *
260
+ * This is the whole answer to "why does Otto get slower the more projects I have". Every
261
+ * workspace the client has ever listed gets an observer, and each observer used to run a
262
+ * 60s self-heal refresh and a 180s `git fetch` of its own. One snapshot is around nine
263
+ * `git` invocations, measured at roughly half a second of process time on Windows, so the
264
+ * steady-state cost was half a second per workspace per minute *of catalogue*, whether or
265
+ * not any of it was on screen. Twenty workspaces meant ten seconds of git per minute,
266
+ * forever, for a user looking at one of them.
267
+ *
268
+ * Periodic work now follows the active workspace and nothing else. What deliberately does
269
+ * *not* follow it are the `.git` filesystem watchers: those are event-driven, cost nothing
270
+ * while nothing happens, and are how a background workspace with an agent committing in it
271
+ * still refreshes its card. Dropping the poll is only safe because that watcher is
272
+ * reliable, which it became when it stopped watching the `HEAD` file's inode.
273
+ */
274
+ setActiveWorkspace(cwd: string | null): void;
275
+ private isActiveWorkspaceTarget;
276
+ /**
277
+ * Start periodic work on whatever is now active and stop it everywhere else. The newly
278
+ * active workspace also gets one refresh, because it may have gone stale while dormant
279
+ * and the user is looking at it right now.
280
+ */
281
+ private applyActiveWorkspacePolicy;
282
+ private stopWorkspacePeriodicWork;
247
283
  private startWorkspaceSubscriptionTimers;
248
284
  private updateGitHubPollForTarget;
249
285
  private resolveGitHubPollTarget;
@@ -60,6 +60,8 @@ export class WorkspaceGitServiceImpl {
60
60
  this.snapshotUpdatedListeners = new Set();
61
61
  this.workspaceTargets = new Map();
62
62
  this.repoTargets = new Map();
63
+ /** Resolved cwd of the workspace the client is in; see `setActiveWorkspace`. */
64
+ this.activeWorkspaceCwd = null;
63
65
  this.workingTreeWatchTargets = new Map();
64
66
  this.workingTreeWatchSetups = new Map();
65
67
  this.linuxIgnoredDirsCache = new Map();
@@ -602,10 +604,28 @@ export class WorkspaceGitServiceImpl {
602
604
  return gitDir;
603
605
  }
604
606
  startWorkspaceWatchers(target, gitDir, repoGitRoot) {
605
- for (const watchPath of new Set([join(gitDir, "HEAD"), join(repoGitRoot, "refs", "heads")])) {
607
+ // Watch the *directories*, never `HEAD` itself.
608
+ //
609
+ // Git does not edit HEAD in place: `git checkout` writes `HEAD.lock` and renames it
610
+ // over HEAD. A watch on the file path binds to the inode, so after the first
611
+ // checkout the watcher was holding an unlinked file and went permanently deaf —
612
+ // which is why switching branches in a terminal never reached the Changes sidebar.
613
+ // A directory watch sees the rename, because the rename is an event *in* the
614
+ // directory. `filename` is filtered so the rest of `.git`'s churn (index.lock,
615
+ // COMMIT_EDITMSG, ORIG_HEAD) does not schedule a refresh; a null filename is rare
616
+ // and refreshes anyway, since a missed branch switch costs more than a debounced
617
+ // extra snapshot.
618
+ const watchTargets = [
619
+ { path: gitDir, matches: (filename) => filename === null || filename === "HEAD" },
620
+ { path: join(repoGitRoot, "refs", "heads"), matches: () => true },
621
+ ];
622
+ for (const { path: watchPath, matches } of watchTargets) {
606
623
  let watcher = null;
607
624
  try {
608
- watcher = this.deps.watch(watchPath, { recursive: false }, () => {
625
+ watcher = this.deps.watch(watchPath, { recursive: false }, (_event, filename) => {
626
+ if (!matches(typeof filename === "string" ? filename : null)) {
627
+ return;
628
+ }
609
629
  this.scheduleWorkspaceRefresh(target);
610
630
  });
611
631
  }
@@ -650,13 +670,32 @@ export class WorkspaceGitServiceImpl {
650
670
  repoGitRoot,
651
671
  cwd: workspaceTarget.cwd,
652
672
  workspaceKeys: new Set([workspaceTarget.cwd]),
653
- intervalId: setInterval(() => {
654
- void this.runRepoFetch(repoTarget);
655
- }, BACKGROUND_GIT_FETCH_INTERVAL_MS),
673
+ intervalId: null,
656
674
  fetchInFlight: false,
657
675
  };
658
676
  this.repoTargets.set(repoGitRoot, repoTarget);
659
- void this.runRepoFetch(repoTarget);
677
+ // A background `git fetch` is the most expensive periodic thing here — it is network
678
+ // I/O, not just process spawning — so it is the last thing that should run for a repo
679
+ // the user is not in. Both the timer and the immediate first fetch are gated.
680
+ if (this.isActiveWorkspaceTarget(workspaceTarget)) {
681
+ this.startRepoFetchTimer(repoTarget);
682
+ void this.runRepoFetch(repoTarget);
683
+ }
684
+ }
685
+ startRepoFetchTimer(target) {
686
+ if (target.intervalId) {
687
+ return;
688
+ }
689
+ target.intervalId = setInterval(() => {
690
+ void this.runRepoFetch(target);
691
+ }, BACKGROUND_GIT_FETCH_INTERVAL_MS);
692
+ }
693
+ stopRepoFetchTimer(target) {
694
+ if (!target.intervalId) {
695
+ return;
696
+ }
697
+ clearInterval(target.intervalId);
698
+ target.intervalId = null;
660
699
  }
661
700
  scheduleWorkspaceRefresh(targetOrCwd, options) {
662
701
  const target = typeof targetOrCwd === "string"
@@ -682,7 +721,72 @@ export class WorkspaceGitServiceImpl {
682
721
  }
683
722
  }, WORKSPACE_GIT_WATCH_DEBOUNCE_MS);
684
723
  }
724
+ /**
725
+ * Which workspace the client is actually in, or null when that is not known.
726
+ *
727
+ * This is the whole answer to "why does Otto get slower the more projects I have". Every
728
+ * workspace the client has ever listed gets an observer, and each observer used to run a
729
+ * 60s self-heal refresh and a 180s `git fetch` of its own. One snapshot is around nine
730
+ * `git` invocations, measured at roughly half a second of process time on Windows, so the
731
+ * steady-state cost was half a second per workspace per minute *of catalogue*, whether or
732
+ * not any of it was on screen. Twenty workspaces meant ten seconds of git per minute,
733
+ * forever, for a user looking at one of them.
734
+ *
735
+ * Periodic work now follows the active workspace and nothing else. What deliberately does
736
+ * *not* follow it are the `.git` filesystem watchers: those are event-driven, cost nothing
737
+ * while nothing happens, and are how a background workspace with an agent committing in it
738
+ * still refreshes its card. Dropping the poll is only safe because that watcher is
739
+ * reliable, which it became when it stopped watching the `HEAD` file's inode.
740
+ */
741
+ setActiveWorkspace(cwd) {
742
+ const next = cwd === null ? null : resolve(cwd);
743
+ if (next === this.activeWorkspaceCwd) {
744
+ return;
745
+ }
746
+ this.activeWorkspaceCwd = next;
747
+ this.applyActiveWorkspacePolicy();
748
+ }
749
+ isActiveWorkspaceTarget(target) {
750
+ return this.activeWorkspaceCwd !== null && target.cwd === this.activeWorkspaceCwd;
751
+ }
752
+ /**
753
+ * Start periodic work on whatever is now active and stop it everywhere else. The newly
754
+ * active workspace also gets one refresh, because it may have gone stale while dormant
755
+ * and the user is looking at it right now.
756
+ */
757
+ applyActiveWorkspacePolicy() {
758
+ for (const target of this.workspaceTargets.values()) {
759
+ if (this.isActiveWorkspaceTarget(target)) {
760
+ this.startWorkspaceSubscriptionTimers(target);
761
+ this.scheduleWorkspaceRefresh(target, { reason: "became-active" });
762
+ }
763
+ else {
764
+ this.stopWorkspacePeriodicWork(target);
765
+ }
766
+ }
767
+ for (const repoTarget of this.repoTargets.values()) {
768
+ const holdsActive = [...repoTarget.workspaceKeys].some((key) => key === this.activeWorkspaceCwd);
769
+ if (holdsActive) {
770
+ this.startRepoFetchTimer(repoTarget);
771
+ }
772
+ else {
773
+ this.stopRepoFetchTimer(repoTarget);
774
+ }
775
+ }
776
+ }
777
+ stopWorkspacePeriodicWork(target) {
778
+ if (target.selfHealTimer) {
779
+ clearInterval(target.selfHealTimer);
780
+ target.selfHealTimer = null;
781
+ }
782
+ this.stopGitHubPollForTarget(target);
783
+ }
685
784
  startWorkspaceSubscriptionTimers(target) {
785
+ // A workspace nobody is looking at does not poll. `applyActiveWorkspacePolicy` starts
786
+ // this the moment it becomes active, so nothing is lost, only deferred.
787
+ if (!this.isActiveWorkspaceTarget(target)) {
788
+ return;
789
+ }
686
790
  if (!target.selfHealTimer) {
687
791
  target.selfHealTimer = setInterval(() => {
688
792
  this.scheduleWorkspaceObservationSetup(target);
@@ -1,17 +1,17 @@
1
- typeset -g OTTO_SHELL_INTEGRATION_DIR="${${(%):-%N}:A:h}"
2
-
3
- if [[ -n "${OTTO_ZSH_ZDOTDIR-}" ]]; then
4
- export ZDOTDIR="${OTTO_ZSH_ZDOTDIR}"
5
- else
6
- unset ZDOTDIR
7
- fi
8
-
9
- if [[ -n "${ZDOTDIR-}" ]]; then
10
- if [[ -f "${ZDOTDIR}/.zshenv" ]]; then
11
- source "${ZDOTDIR}/.zshenv"
12
- fi
13
- elif [[ -f "${HOME}/.zshenv" ]]; then
14
- source "${HOME}/.zshenv"
15
- fi
16
-
17
- source "${OTTO_SHELL_INTEGRATION_DIR}/otto-integration.zsh"
1
+ typeset -g OTTO_SHELL_INTEGRATION_DIR="${${(%):-%N}:A:h}"
2
+
3
+ if [[ -n "${OTTO_ZSH_ZDOTDIR-}" ]]; then
4
+ export ZDOTDIR="${OTTO_ZSH_ZDOTDIR}"
5
+ else
6
+ unset ZDOTDIR
7
+ fi
8
+
9
+ if [[ -n "${ZDOTDIR-}" ]]; then
10
+ if [[ -f "${ZDOTDIR}/.zshenv" ]]; then
11
+ source "${ZDOTDIR}/.zshenv"
12
+ fi
13
+ elif [[ -f "${HOME}/.zshenv" ]]; then
14
+ source "${HOME}/.zshenv"
15
+ fi
16
+
17
+ source "${OTTO_SHELL_INTEGRATION_DIR}/otto-integration.zsh"
@@ -1,32 +1,32 @@
1
- if [[ -n "${_OTTO_ZSH_INTEGRATION_LOADED-}" ]]; then
2
- return
3
- fi
4
- typeset -g _OTTO_ZSH_INTEGRATION_LOADED=1
5
-
6
- autoload -Uz add-zsh-hook
7
-
8
- typeset -g _OTTO_ZSH_COMMAND_ACTIVE=0
9
-
10
- function _otto_osc633() {
11
- printf '\e]633;%s\a' "$1"
12
- }
13
-
14
- function _otto_precmd() {
15
- local command_status=$?
16
- if [[ "$_OTTO_ZSH_COMMAND_ACTIVE" == "1" ]]; then
17
- _otto_osc633 "D;${command_status}"
18
- _OTTO_ZSH_COMMAND_ACTIVE=0
19
- fi
20
- printf '\e]2;%s\a' "${PWD/#$HOME/~}"
21
- _otto_osc633 "A"
22
- }
23
-
24
- function _otto_preexec() {
25
- _OTTO_ZSH_COMMAND_ACTIVE=1
26
- _otto_osc633 "B"
27
- _otto_osc633 "C"
28
- printf '\e]2;%s\a' "$1"
29
- }
30
-
31
- add-zsh-hook precmd _otto_precmd
32
- add-zsh-hook preexec _otto_preexec
1
+ if [[ -n "${_OTTO_ZSH_INTEGRATION_LOADED-}" ]]; then
2
+ return
3
+ fi
4
+ typeset -g _OTTO_ZSH_INTEGRATION_LOADED=1
5
+
6
+ autoload -Uz add-zsh-hook
7
+
8
+ typeset -g _OTTO_ZSH_COMMAND_ACTIVE=0
9
+
10
+ function _otto_osc633() {
11
+ printf '\e]633;%s\a' "$1"
12
+ }
13
+
14
+ function _otto_precmd() {
15
+ local command_status=$?
16
+ if [[ "$_OTTO_ZSH_COMMAND_ACTIVE" == "1" ]]; then
17
+ _otto_osc633 "D;${command_status}"
18
+ _OTTO_ZSH_COMMAND_ACTIVE=0
19
+ fi
20
+ printf '\e]2;%s\a' "${PWD/#$HOME/~}"
21
+ _otto_osc633 "A"
22
+ }
23
+
24
+ function _otto_preexec() {
25
+ _OTTO_ZSH_COMMAND_ACTIVE=1
26
+ _otto_osc633 "B"
27
+ _otto_osc633 "C"
28
+ printf '\e]2;%s\a' "$1"
29
+ }
30
+
31
+ add-zsh-hook precmd _otto_precmd
32
+ add-zsh-hook preexec _otto_preexec
@@ -228,13 +228,23 @@ function resolveZshShellIntegrationRuntimeDir() {
228
228
  }
229
229
  return join(tmpdir(), `${username}-otto-zsh`);
230
230
  }
231
+ /**
232
+ * zsh refuses to parse scripts with CRLF endings: the trailing `\r` becomes part of
233
+ * the token, so a blank line runs `^M` as a command and `fi\r` never closes its `if`.
234
+ * The shipped sources can pick up CRLF anywhere along the way (a Windows checkout with
235
+ * `core.autocrlf=true` publishes them straight into the tarball), so normalize at the
236
+ * point of use rather than trusting whatever bytes reached disk.
237
+ */
238
+ function readZshShellIntegrationScript(filePath) {
239
+ return readFileSync(filePath, "utf8").replace(/\r\n/g, "\n");
240
+ }
231
241
  function prepareZshShellIntegrationRuntimeDir(sourceDir = resolveZshShellIntegrationDir()) {
232
242
  const readableSourceDir = resolveExternalProcessPath(sourceDir);
233
243
  const runtimeDir = resolveZshShellIntegrationRuntimeDir();
234
244
  mkdirSync(runtimeDir, { recursive: true, mode: 0o700 });
235
245
  chmodSync(runtimeDir, 0o700);
236
- writePrivateFileAtomicSync(join(runtimeDir, ".zshenv"), readFileSync(join(readableSourceDir, ".zshenv")));
237
- writePrivateFileAtomicSync(join(runtimeDir, "otto-integration.zsh"), readFileSync(join(readableSourceDir, "otto-integration.zsh")));
246
+ writePrivateFileAtomicSync(join(runtimeDir, ".zshenv"), readZshShellIntegrationScript(join(readableSourceDir, ".zshenv")));
247
+ writePrivateFileAtomicSync(join(runtimeDir, "otto-integration.zsh"), readZshShellIntegrationScript(join(readableSourceDir, "otto-integration.zsh")));
238
248
  return runtimeDir;
239
249
  }
240
250
  export function buildTerminalEnvironment(input) {