@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.
- package/dist/server/server/agent/providers/claude/agent.js +48 -3
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +10 -1
- package/dist/server/server/agent/providers/mock-load-test-agent.js +151 -5
- package/dist/server/server/agent/synthetic-conversation.d.ts +18 -0
- package/dist/server/server/agent/synthetic-conversation.js +567 -0
- package/dist/server/server/dotnet-process-registry.d.ts +111 -0
- package/dist/server/server/dotnet-process-registry.js +160 -0
- package/dist/server/server/lsp/connection.d.ts +4 -0
- package/dist/server/server/lsp/connection.js +39 -4
- package/dist/server/server/lsp/pool.js +1 -0
- package/dist/server/server/lsp/registry.d.ts +14 -1
- package/dist/server/server/lsp/registry.js +14 -2
- package/dist/server/server/lsp/service.d.ts +18 -2
- package/dist/server/server/lsp/service.js +14 -2
- package/dist/server/server/process-tree.d.ts +29 -0
- package/dist/server/server/process-tree.js +59 -0
- package/dist/server/server/session/files/workspace-files-session.js +11 -5
- package/dist/server/server/session.d.ts +11 -0
- package/dist/server/server/session.js +23 -0
- package/dist/server/server/solution-model/dotnet/probe.d.ts +2 -0
- package/dist/server/server/solution-model/dotnet/probe.js +33 -14
- package/dist/server/server/websocket-server.js +10 -0
- package/dist/server/server/workspace-git-service.d.ts +36 -0
- package/dist/server/server/workspace-git-service.js +110 -6
- package/dist/server/terminal/shell-integration/zsh/.zshenv +17 -17
- package/dist/server/terminal/shell-integration/zsh/otto-integration.zsh +32 -32
- package/dist/server/terminal/terminal.js +12 -2
- package/dist/server/web-ui/_expo/static/js/web/{__common-6d2299ed037bec2393245a7c0bf1c643.js → __common-8ab6f044d26f0be8899aaf3a990c8b65.js} +1855 -1855
- package/dist/server/web-ui/_expo/static/js/web/__common-8ab6f044d26f0be8899aaf3a990c8b65.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/__common-8ab6f044d26f0be8899aaf3a990c8b65.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{abnfDiagram-VRR7QNED-c3c2ca327b2d7ad9af3caa1cba884908.js → abnfDiagram-VRR7QNED-e33c74fb52c02570f5105b2e70194df6.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/abnfDiagram-VRR7QNED-e33c74fb52c02570f5105b2e70194df6.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/abnfDiagram-VRR7QNED-e33c74fb52c02570f5105b2e70194df6.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{architecture-TIHT7OUA-0cf23d3dc9775f216c01daae4aae250a.js → architecture-TIHT7OUA-cc3220b1ecee09a0e5c0b99fbf886b82.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{architecture-TIHT7OUA-0cf23d3dc9775f216c01daae4aae250a.js.br → architecture-TIHT7OUA-cc3220b1ecee09a0e5c0b99fbf886b82.js.br} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/architecture-TIHT7OUA-cc3220b1ecee09a0e5c0b99fbf886b82.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{architectureDiagram-ZJ3FMSHR-f3bce96124559dc19faa4d90aca4afd4.js → architectureDiagram-ZJ3FMSHR-551f5e17dd33a890195b5d060cd75ad2.js} +4 -4
- package/dist/server/web-ui/_expo/static/js/web/architectureDiagram-ZJ3FMSHR-551f5e17dd33a890195b5d060cd75ad2.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/architectureDiagram-ZJ3FMSHR-551f5e17dd33a890195b5d060cd75ad2.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{blockDiagram-677ZJIJ3-839486928c0f151128a5e2836aa07080.js → blockDiagram-677ZJIJ3-901d7bbed0b0f6ae3439f6bff861b42f.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/blockDiagram-677ZJIJ3-901d7bbed0b0f6ae3439f6bff861b42f.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{blockDiagram-677ZJIJ3-839486928c0f151128a5e2836aa07080.js.gz → blockDiagram-677ZJIJ3-901d7bbed0b0f6ae3439f6bff861b42f.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{c4Diagram-LMCZKHZV-197212c21520a6b659a5649e683619d0.js → c4Diagram-LMCZKHZV-781ca106d0a19454ec9e559bcba3706c.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/c4Diagram-LMCZKHZV-781ca106d0a19454ec9e559bcba3706c.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{c4Diagram-LMCZKHZV-197212c21520a6b659a5649e683619d0.js.gz → c4Diagram-LMCZKHZV-781ca106d0a19454ec9e559bcba3706c.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{classDiagram-OUVF2IWQ-a0a0fbefc96d14b6619c84fc4f92a39a.js → classDiagram-OUVF2IWQ-1d00e0cc9165446f1bac84fed1e9bbed.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/classDiagram-OUVF2IWQ-1d00e0cc9165446f1bac84fed1e9bbed.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/classDiagram-OUVF2IWQ-1d00e0cc9165446f1bac84fed1e9bbed.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{classDiagram-v2-EOCWNBFH-e979239c6d160123d5b4847253a8a70e.js → classDiagram-v2-EOCWNBFH-52b658fff2b9f58ece5d8528cb381359.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/classDiagram-v2-EOCWNBFH-52b658fff2b9f58ece5d8528cb381359.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/classDiagram-v2-EOCWNBFH-52b658fff2b9f58ece5d8528cb381359.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{cose-bilkent-JH36ORCC-bbc39a6bb062ba85e433f91becc37a65.js → cose-bilkent-JH36ORCC-9256f0de343b59ecc5775210909c4f8b.js} +4 -4
- package/dist/server/web-ui/_expo/static/js/web/cose-bilkent-JH36ORCC-9256f0de343b59ecc5775210909c4f8b.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/cose-bilkent-JH36ORCC-9256f0de343b59ecc5775210909c4f8b.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{cynefin-VYW2F7L2-ea0e514652627740f5a2ed32b027a164.js → cynefin-VYW2F7L2-feb2750e4e4322ac8e6c6049fcfd73cb.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/cynefin-VYW2F7L2-feb2750e4e4322ac8e6c6049fcfd73cb.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/cynefin-VYW2F7L2-feb2750e4e4322ac8e6c6049fcfd73cb.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{cynefinDiagram-TSTJHNR4-0446f9b57ba778e5883d93e24692ffce.js → cynefinDiagram-TSTJHNR4-b98dc254a5fa6581f997a0809a9e0fc0.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/cynefinDiagram-TSTJHNR4-b98dc254a5fa6581f997a0809a9e0fc0.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/cynefinDiagram-TSTJHNR4-b98dc254a5fa6581f997a0809a9e0fc0.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{dagre-VKFMJZFB-69f7aa52521b06a95874b1ac67508def.js → dagre-VKFMJZFB-ef67573fa401136e68fc41adf07ef447.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/dagre-VKFMJZFB-ef67573fa401136e68fc41adf07ef447.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/dagre-VKFMJZFB-ef67573fa401136e68fc41adf07ef447.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-bridge-0ae8aadd6e53625f59d62eceb1f06ede.js → desktop-attachment-bridge-d6e4f29a78dc1bb5b70d4ef2c440c6c0.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-bridge-0ae8aadd6e53625f59d62eceb1f06ede.js.br → desktop-attachment-bridge-d6e4f29a78dc1bb5b70d4ef2c440c6c0.js.br} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-d6e4f29a78dc1bb5b70d4ef2c440c6c0.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-store-ecd775c6aee79778f49274a5bffadc5a.js → desktop-attachment-store-e2e403c64de4bc638e1800c9b226ede3.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-store-ecd775c6aee79778f49274a5bffadc5a.js.br → desktop-attachment-store-e2e403c64de4bc638e1800c9b226ede3.js.br} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-store-ecd775c6aee79778f49274a5bffadc5a.js.gz → desktop-attachment-store-e2e403c64de4bc638e1800c9b226ede3.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{diagram-FQU43EPY-bd0940835ccad031627e285aaba6d5ec.js → diagram-FQU43EPY-c6317fa4c07b63f54be30797f25060c7.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/diagram-FQU43EPY-c6317fa4c07b63f54be30797f25060c7.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{diagram-FQU43EPY-bd0940835ccad031627e285aaba6d5ec.js.gz → diagram-FQU43EPY-c6317fa4c07b63f54be30797f25060c7.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{diagram-G47NLZAW-217e2cd3275924bc08fc6ebe79e95e48.js → diagram-G47NLZAW-70713a059ca65ca1241036cc96679bc5.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/diagram-G47NLZAW-70713a059ca65ca1241036cc96679bc5.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-G47NLZAW-70713a059ca65ca1241036cc96679bc5.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{diagram-NH7WQ7WH-fbd3aa35ca68df15ee378fb63241b333.js → diagram-NH7WQ7WH-1bebddae0fd6a49ff82d7ea2b738823d.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/diagram-NH7WQ7WH-1bebddae0fd6a49ff82d7ea2b738823d.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-NH7WQ7WH-1bebddae0fd6a49ff82d7ea2b738823d.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{diagram-OA4YK3LP-48ebb0ba6bcb34417649bd55070542ad.js → diagram-OA4YK3LP-bf33c3e1800c9f503dd88e41e97c5974.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/diagram-OA4YK3LP-bf33c3e1800c9f503dd88e41e97c5974.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-OA4YK3LP-bf33c3e1800c9f503dd88e41e97c5974.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{diagram-WEI45ONY-2be85db5396495fa970419f77587cf14.js → diagram-WEI45ONY-23d90af03030beb514d3a953920e6c9b.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/diagram-WEI45ONY-23d90af03030beb514d3a953920e6c9b.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-WEI45ONY-23d90af03030beb514d3a953920e6c9b.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{ebnfDiagram-CCIWWBDH-3c5c44cf8340b641d13076adab77967b.js → ebnfDiagram-CCIWWBDH-5119b538047d9c00ae05855ae1cf490f.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/ebnfDiagram-CCIWWBDH-5119b538047d9c00ae05855ae1cf490f.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/ebnfDiagram-CCIWWBDH-5119b538047d9c00ae05855ae1cf490f.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{erDiagram-Q63AITRT-81762a72bd33bf1042e4cad4f688abf2.js → erDiagram-Q63AITRT-6f7e9f420388e6291e5a8ae6da7ab3ad.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/erDiagram-Q63AITRT-6f7e9f420388e6291e5a8ae6da7ab3ad.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/erDiagram-Q63AITRT-6f7e9f420388e6291e5a8ae6da7ab3ad.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{eventmodeling-45OFAUF4-11d7615d746c5304c28d4931ec9ca5f7.js → eventmodeling-45OFAUF4-510d785624b4496077e120d2c12a6b88.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{eventmodeling-45OFAUF4-11d7615d746c5304c28d4931ec9ca5f7.js.br → eventmodeling-45OFAUF4-510d785624b4496077e120d2c12a6b88.js.br} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/eventmodeling-45OFAUF4-510d785624b4496077e120d2c12a6b88.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{flowDiagram-23GEKE2U-5a2af608a9500bb36da0595c3464a562.js → flowDiagram-23GEKE2U-7bf4721b6de004ef55a0787bbbc6b9ac.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/flowDiagram-23GEKE2U-7bf4721b6de004ef55a0787bbbc6b9ac.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/flowDiagram-23GEKE2U-7bf4721b6de004ef55a0787bbbc6b9ac.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{ganttDiagram-NO4QXBWP-379aae0f5fb2652d90827c7f8b2472d2.js → ganttDiagram-NO4QXBWP-53b4651e7e78eb3212ec05a0d72b8932.js} +5 -5
- package/dist/server/web-ui/_expo/static/js/web/ganttDiagram-NO4QXBWP-53b4651e7e78eb3212ec05a0d72b8932.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{ganttDiagram-NO4QXBWP-379aae0f5fb2652d90827c7f8b2472d2.js.gz → ganttDiagram-NO4QXBWP-53b4651e7e78eb3212ec05a0d72b8932.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{gitGraph-TEB2WS4Q-d978b8a2d1fd8fcc132b16ef8d57dd7c.js → gitGraph-TEB2WS4Q-03038b65af81bb0d4755a35c737decf0.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{gitGraph-TEB2WS4Q-d978b8a2d1fd8fcc132b16ef8d57dd7c.js.br → gitGraph-TEB2WS4Q-03038b65af81bb0d4755a35c737decf0.js.br} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/gitGraph-TEB2WS4Q-03038b65af81bb0d4755a35c737decf0.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{gitGraphDiagram-IHSO6WYX-6cb31a37312da231b8f10f86b0d4de52.js → gitGraphDiagram-IHSO6WYX-49a762c3f7ecc4315bcde2731f090410.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{gitGraphDiagram-IHSO6WYX-6cb31a37312da231b8f10f86b0d4de52.js.br → gitGraphDiagram-IHSO6WYX-49a762c3f7ecc4315bcde2731f090410.js.br} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{gitGraphDiagram-IHSO6WYX-6cb31a37312da231b8f10f86b0d4de52.js.gz → gitGraphDiagram-IHSO6WYX-49a762c3f7ecc4315bcde2731f090410.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{index-4c86d3c14df18b18b3b9a6329b896faf.js → index-6e99d24bcc09db447a2d8b0c747a5263.js} +74 -73
- package/dist/server/web-ui/_expo/static/js/web/index-6e99d24bcc09db447a2d8b0c747a5263.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/index-6e99d24bcc09db447a2d8b0c747a5263.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{indexeddb-attachment-store-5a90994af83f12740a986d9f1cb55cc9.js → indexeddb-attachment-store-ea6e57606ef25b42cf1e6665a3f5313e.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-ea6e57606ef25b42cf1e6665a3f5313e.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-ea6e57606ef25b42cf1e6665a3f5313e.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{info-DKCQHKI2-b59d0dbb9a30d361ddc796a5cfa7fc41.js → info-DKCQHKI2-61f5b3ca4e5cea885d6254ccef0626c4.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{info-DKCQHKI2-b59d0dbb9a30d361ddc796a5cfa7fc41.js.br → info-DKCQHKI2-61f5b3ca4e5cea885d6254ccef0626c4.js.br} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/info-DKCQHKI2-61f5b3ca4e5cea885d6254ccef0626c4.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{infoDiagram-FWYZ7A6U-0c4368de61a3bdbfbc73b143423981d9.js → infoDiagram-FWYZ7A6U-f47fe897045bf4e6949ea71abdae89fe.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/infoDiagram-FWYZ7A6U-f47fe897045bf4e6949ea71abdae89fe.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/infoDiagram-FWYZ7A6U-f47fe897045bf4e6949ea71abdae89fe.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{ishikawaDiagram-FXEZZL3T-1474e73532a16148b7944d3b0f896197.js → ishikawaDiagram-FXEZZL3T-bf6597ebf1b0773e1d39dea7fcf8800f.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/ishikawaDiagram-FXEZZL3T-bf6597ebf1b0773e1d39dea7fcf8800f.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{ishikawaDiagram-FXEZZL3T-1474e73532a16148b7944d3b0f896197.js.gz → ishikawaDiagram-FXEZZL3T-bf6597ebf1b0773e1d39dea7fcf8800f.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{journeyDiagram-5HDEW3XC-13df6cce9cb7f0e6ffbaa9a614feeee4.js → journeyDiagram-5HDEW3XC-7dc3a04c43574b6aac59a4520d111129.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/journeyDiagram-5HDEW3XC-7dc3a04c43574b6aac59a4520d111129.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{journeyDiagram-5HDEW3XC-13df6cce9cb7f0e6ffbaa9a614feeee4.js.gz → journeyDiagram-5HDEW3XC-7dc3a04c43574b6aac59a4520d111129.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{kanban-definition-HUTT4EX6-6b56c0da5302838e7e1c46bf7460ea35.js → kanban-definition-HUTT4EX6-7be647182b1c3291e9330de01d329adf.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/kanban-definition-HUTT4EX6-7be647182b1c3291e9330de01d329adf.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{kanban-definition-HUTT4EX6-6b56c0da5302838e7e1c46bf7460ea35.js.gz → kanban-definition-HUTT4EX6-7be647182b1c3291e9330de01d329adf.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{katex-7f6ac23f118e6e9264fdfa96e335134f.js → katex-c0aeb8f935f239b315771d04dc16b1e7.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/katex-c0aeb8f935f239b315771d04dc16b1e7.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{katex-7f6ac23f118e6e9264fdfa96e335134f.js.gz → katex-c0aeb8f935f239b315771d04dc16b1e7.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{mermaid-75931b049ce3e66af3cd8ddf01e1cd23.js → mermaid-f4cf4ad300756762c2eed3bd65fecb6c.js} +9 -9
- package/dist/server/web-ui/_expo/static/js/web/mermaid-f4cf4ad300756762c2eed3bd65fecb6c.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{mermaid-75931b049ce3e66af3cd8ddf01e1cd23.js.gz → mermaid-f4cf4ad300756762c2eed3bd65fecb6c.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{mindmap-definition-LN4V7U3C-fafde693a329ca39007debdd961134b4.js → mindmap-definition-LN4V7U3C-5a266041ac99a182f60e7d1ade3053a7.js} +21 -21
- package/dist/server/web-ui/_expo/static/js/web/mindmap-definition-LN4V7U3C-5a266041ac99a182f60e7d1ade3053a7.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/mindmap-definition-LN4V7U3C-5a266041ac99a182f60e7d1ade3053a7.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{native-file-attachment-store-645b8ffe39c60c05c0a224e6efcb5a9c.js → native-file-attachment-store-78cca157541c8af3aff9a719f7b951be.js} +3 -3
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-78cca157541c8af3aff9a719f7b951be.js.br +11 -0
- 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
- package/dist/server/web-ui/_expo/static/js/web/{orchestration-graph-panel-2d117a5764d11c411d707e37fba93a1b.js → orchestration-graph-panel-77d13bf34f0ff1ffed397666b8009b21.js} +5 -5
- package/dist/server/web-ui/_expo/static/js/web/orchestration-graph-panel-77d13bf34f0ff1ffed397666b8009b21.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{orchestration-graph-panel-2d117a5764d11c411d707e37fba93a1b.js.gz → orchestration-graph-panel-77d13bf34f0ff1ffed397666b8009b21.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{packet-7NZHBO7P-61a485e09ee448c823fffbdfc588826d.js → packet-7NZHBO7P-8f2693917ef293414f42718be4e1d738.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{packet-7NZHBO7P-61a485e09ee448c823fffbdfc588826d.js.br → packet-7NZHBO7P-8f2693917ef293414f42718be4e1d738.js.br} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/packet-7NZHBO7P-8f2693917ef293414f42718be4e1d738.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{pegDiagram-2B236MQR-035fe1b93f90f4775e99aea533552b42.js → pegDiagram-2B236MQR-58835705d6a13a27b59f4c85aeaf7012.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/pegDiagram-2B236MQR-58835705d6a13a27b59f4c85aeaf7012.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/pegDiagram-2B236MQR-58835705d6a13a27b59f4c85aeaf7012.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{pie-RZYD4A2V-f6208df18db61d490f4811b192b77dec.js → pie-RZYD4A2V-8b0f157b04de7752354fc779ddbf49a4.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/pie-RZYD4A2V-8b0f157b04de7752354fc779ddbf49a4.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/pie-RZYD4A2V-8b0f157b04de7752354fc779ddbf49a4.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{pieDiagram-ENE6RG2P-c78c82bf26f51acb7b7c44ae51eba9c6.js → pieDiagram-ENE6RG2P-a0061a200414abc917902506915ccabe.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/pieDiagram-ENE6RG2P-a0061a200414abc917902506915ccabe.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{pieDiagram-ENE6RG2P-c78c82bf26f51acb7b7c44ae51eba9c6.js.gz → pieDiagram-ENE6RG2P-a0061a200414abc917902506915ccabe.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{quadrantDiagram-ABIIQ3AL-efff1486187742fe8683a966651df92f.js → quadrantDiagram-ABIIQ3AL-ccae11df8eb112141ab52dc3b055366d.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/quadrantDiagram-ABIIQ3AL-ccae11df8eb112141ab52dc3b055366d.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{quadrantDiagram-ABIIQ3AL-efff1486187742fe8683a966651df92f.js.gz → quadrantDiagram-ABIIQ3AL-ccae11df8eb112141ab52dc3b055366d.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{radar-I7S5WNFK-0150ed7f0d337fc7ec70638a3656ea06.js → radar-I7S5WNFK-0768be5c16d166cd094d75a4c9fba55a.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{radar-I7S5WNFK-0150ed7f0d337fc7ec70638a3656ea06.js.br → radar-I7S5WNFK-0768be5c16d166cd094d75a4c9fba55a.js.br} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/radar-I7S5WNFK-0768be5c16d166cd094d75a4c9fba55a.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{railroad-3IZDKUUU-c6e94ec81a88c02cb339de59f29386f5.js → railroad-3IZDKUUU-55b81b14fbc2908aa06995bd62b57b43.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{railroad-3IZDKUUU-c6e94ec81a88c02cb339de59f29386f5.js.br → railroad-3IZDKUUU-55b81b14fbc2908aa06995bd62b57b43.js.br} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/railroad-3IZDKUUU-55b81b14fbc2908aa06995bd62b57b43.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{railroad-abnf-AHOZXSZD-627ed129da90b5e1d371bd2c3b9db457.js → railroad-abnf-AHOZXSZD-47462203d9c422ed3805bd31ed12d922.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{railroad-abnf-AHOZXSZD-627ed129da90b5e1d371bd2c3b9db457.js.br → railroad-abnf-AHOZXSZD-47462203d9c422ed3805bd31ed12d922.js.br} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/railroad-abnf-AHOZXSZD-47462203d9c422ed3805bd31ed12d922.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{railroad-ebnf-EBAXGLYW-1b7ec12d3b92be4e181971b21f01f3f8.js → railroad-ebnf-EBAXGLYW-708f5dcce4ca8693b288152f6aa217b1.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{railroad-ebnf-EBAXGLYW-1b7ec12d3b92be4e181971b21f01f3f8.js.br → railroad-ebnf-EBAXGLYW-708f5dcce4ca8693b288152f6aa217b1.js.br} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/railroad-ebnf-EBAXGLYW-708f5dcce4ca8693b288152f6aa217b1.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{railroad-peg-LSFZ7HO6-8a8e027f4141d16a12c15223da966d7d.js → railroad-peg-LSFZ7HO6-eb7ff4c6b43a9c593b0feac004d52d4e.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/railroad-peg-LSFZ7HO6-eb7ff4c6b43a9c593b0feac004d52d4e.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/railroad-peg-LSFZ7HO6-eb7ff4c6b43a9c593b0feac004d52d4e.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{railroadDiagram-RFXS5EU6-499f36fe78b07e5558063f963a47a474.js → railroadDiagram-RFXS5EU6-c1c534a0f6478078bca1fd806a1ee2ae.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/railroadDiagram-RFXS5EU6-c1c534a0f6478078bca1fd806a1ee2ae.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/railroadDiagram-RFXS5EU6-c1c534a0f6478078bca1fd806a1ee2ae.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{requirementDiagram-TGXJPOKE-9aaddb885fc59873a8f89cd7550c2c43.js → requirementDiagram-TGXJPOKE-5dd7440a5946dde0e06a5afa9e0295a1.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/requirementDiagram-TGXJPOKE-5dd7440a5946dde0e06a5afa9e0295a1.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{requirementDiagram-TGXJPOKE-9aaddb885fc59873a8f89cd7550c2c43.js.gz → requirementDiagram-TGXJPOKE-5dd7440a5946dde0e06a5afa9e0295a1.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{sankeyDiagram-HTMAVEWB-3fa66fe414adce7a50e31551c059f99c.js → sankeyDiagram-HTMAVEWB-76b963967a4f7c862f4f2f18492e7c56.js} +120 -120
- package/dist/server/web-ui/_expo/static/js/web/sankeyDiagram-HTMAVEWB-76b963967a4f7c862f4f2f18492e7c56.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/sankeyDiagram-HTMAVEWB-76b963967a4f7c862f4f2f18492e7c56.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{sequenceDiagram-DBY2YBRQ-856a29fb0507a2dcb697a2aa29cd0b7a.js → sequenceDiagram-DBY2YBRQ-d40a3dbcd285c19aa010a697e12f5022.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/sequenceDiagram-DBY2YBRQ-d40a3dbcd285c19aa010a697e12f5022.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{sequenceDiagram-DBY2YBRQ-856a29fb0507a2dcb697a2aa29cd0b7a.js.gz → sequenceDiagram-DBY2YBRQ-d40a3dbcd285c19aa010a697e12f5022.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{sizeCapture-X5ZJPWSS-388b849b33073b8202dd9ca50038b1c7.js → sizeCapture-X5ZJPWSS-03ac818220d4ba98bdd2f4f454758263.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/sizeCapture-X5ZJPWSS-03ac818220d4ba98bdd2f4f454758263.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/sizeCapture-X5ZJPWSS-03ac818220d4ba98bdd2f4f454758263.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{stateDiagram-2N3HPSRC-9ca22d078d9922ddcb54ba7bb389c734.js → stateDiagram-2N3HPSRC-ba1e123bf8ce69ae781981f264e90564.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/stateDiagram-2N3HPSRC-ba1e123bf8ce69ae781981f264e90564.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/stateDiagram-2N3HPSRC-ba1e123bf8ce69ae781981f264e90564.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{stateDiagram-v2-6OUMAXLB-4357e7143c73859f6b4858ba72acb5aa.js → stateDiagram-v2-6OUMAXLB-5925b0db81d9a113005bd93c6adbab9d.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/stateDiagram-v2-6OUMAXLB-5925b0db81d9a113005bd93c6adbab9d.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/stateDiagram-v2-6OUMAXLB-5925b0db81d9a113005bd93c6adbab9d.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{swimlanes-5IMT3BWC-d737ca408a7a2b82f7419141456d28e4.js → swimlanes-5IMT3BWC-93c0bb8b5ee84ca6f11d561497ec0ef0.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/swimlanes-5IMT3BWC-93c0bb8b5ee84ca6f11d561497ec0ef0.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{swimlanes-5IMT3BWC-d737ca408a7a2b82f7419141456d28e4.js.gz → swimlanes-5IMT3BWC-93c0bb8b5ee84ca6f11d561497ec0ef0.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{swimlanesDiagram-G3AALYLV-0bf2ac58b338c2aeb33213ff1a57983a.js → swimlanesDiagram-G3AALYLV-5f3e335e1800b344e786080955bdb2c5.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/swimlanesDiagram-G3AALYLV-5f3e335e1800b344e786080955bdb2c5.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/swimlanesDiagram-G3AALYLV-5f3e335e1800b344e786080955bdb2c5.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{timeline-definition-FHXFAJF6-1130419ca563266603c98f1b2148a154.js → timeline-definition-FHXFAJF6-ebf6579c1264c7dd88b67d0ecc9313d7.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/timeline-definition-FHXFAJF6-ebf6579c1264c7dd88b67d0ecc9313d7.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/timeline-definition-FHXFAJF6-ebf6579c1264c7dd88b67d0ecc9313d7.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{treeView-QDETBFTQ-4f6ec9b592731c21dee99264fa638554.js → treeView-QDETBFTQ-682ed2be8efc51bd8196ff3320637705.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{treeView-QDETBFTQ-4f6ec9b592731c21dee99264fa638554.js.br → treeView-QDETBFTQ-682ed2be8efc51bd8196ff3320637705.js.br} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/treeView-QDETBFTQ-682ed2be8efc51bd8196ff3320637705.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{treemap-6X3UGDF4-39eb6ec2c19a5de9242fd28aa26dcf5b.js → treemap-6X3UGDF4-4fb89637583518868012429289715b50.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/{treemap-6X3UGDF4-39eb6ec2c19a5de9242fd28aa26dcf5b.js.br → treemap-6X3UGDF4-4fb89637583518868012429289715b50.js.br} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/treemap-6X3UGDF4-4fb89637583518868012429289715b50.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{vennDiagram-L72KCM5P-4c15b392e9de3fdc472b53cbdf8e7558.js → vennDiagram-L72KCM5P-4a09551e281dc72285c8c56bcd4b04a3.js} +2 -2
- package/dist/server/web-ui/_expo/static/js/web/vennDiagram-L72KCM5P-4a09551e281dc72285c8c56bcd4b04a3.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/vennDiagram-L72KCM5P-4a09551e281dc72285c8c56bcd4b04a3.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{visualizer-bundle-b0af8f4f1ab8d4029f3f21236df43f7f.js → visualizer-bundle-fab344f71166d5645590bda1bab1e0a5.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/visualizer-bundle-fab344f71166d5645590bda1bab1e0a5.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{visualizer-bundle-b0af8f4f1ab8d4029f3f21236df43f7f.js.gz → visualizer-bundle-fab344f71166d5645590bda1bab1e0a5.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{visualizer-panel-3fbc1337bb844d7163cbdb418a4dfd53.js → visualizer-panel-bf8e9531071e12cefa8eda4766877aba.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/visualizer-panel-bf8e9531071e12cefa8eda4766877aba.js.br +6 -0
- package/dist/server/web-ui/_expo/static/js/web/{visualizer-panel-3fbc1337bb844d7163cbdb418a4dfd53.js.gz → visualizer-panel-bf8e9531071e12cefa8eda4766877aba.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{visualizer-pip-de03996e25ac5d8a11d723ea90b2f9a3.js → visualizer-pip-633730d52ecc119677ce9ecc287c7879.js} +2 -2
- package/dist/server/web-ui/_expo/static/js/web/visualizer-pip-633730d52ecc119677ce9ecc287c7879.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{visualizer-pip-de03996e25ac5d8a11d723ea90b2f9a3.js.gz → visualizer-pip-633730d52ecc119677ce9ecc287c7879.js.gz} +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{wardley-OPB4EBWU-b075ee9680ce77acf211a0fb1e63cca8.js → wardley-OPB4EBWU-86a2856822d60f742050c338803f8533.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/wardley-OPB4EBWU-86a2856822d60f742050c338803f8533.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/wardley-OPB4EBWU-86a2856822d60f742050c338803f8533.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{wardleyDiagram-EHGQE667-a93bc6a6a1e80adcb9a740a2ea3d1676.js → wardleyDiagram-EHGQE667-cf65a2e4de30372a177e82834dba571c.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/wardleyDiagram-EHGQE667-cf65a2e4de30372a177e82834dba571c.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/wardleyDiagram-EHGQE667-cf65a2e4de30372a177e82834dba571c.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/{xychartDiagram-FW5EYKEG-ec54fa07a12c5792d0bb7b65deaff05b.js → xychartDiagram-FW5EYKEG-d29f0b24141b00d07e99c98d99ac55d4.js} +1 -1
- package/dist/server/web-ui/_expo/static/js/web/xychartDiagram-FW5EYKEG-d29f0b24141b00d07e99c98d99ac55d4.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/xychartDiagram-FW5EYKEG-d29f0b24141b00d07e99c98d99ac55d4.js.gz +0 -0
- package/dist/server/web-ui/index.html +1 -1
- package/dist/server/web-ui/index.html.br +0 -0
- package/dist/server/web-ui/index.html.gz +0 -0
- package/dist/src/terminal/shell-integration/zsh/.zshenv +17 -17
- package/dist/src/terminal/shell-integration/zsh/otto-integration.zsh +32 -32
- package/package.json +5 -5
- package/dist/server/web-ui/_expo/static/js/web/__common-6d2299ed037bec2393245a7c0bf1c643.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/__common-6d2299ed037bec2393245a7c0bf1c643.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/abnfDiagram-VRR7QNED-c3c2ca327b2d7ad9af3caa1cba884908.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/abnfDiagram-VRR7QNED-c3c2ca327b2d7ad9af3caa1cba884908.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/architecture-TIHT7OUA-0cf23d3dc9775f216c01daae4aae250a.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/architectureDiagram-ZJ3FMSHR-f3bce96124559dc19faa4d90aca4afd4.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/architectureDiagram-ZJ3FMSHR-f3bce96124559dc19faa4d90aca4afd4.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/blockDiagram-677ZJIJ3-839486928c0f151128a5e2836aa07080.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/c4Diagram-LMCZKHZV-197212c21520a6b659a5649e683619d0.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/classDiagram-OUVF2IWQ-a0a0fbefc96d14b6619c84fc4f92a39a.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/classDiagram-OUVF2IWQ-a0a0fbefc96d14b6619c84fc4f92a39a.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/classDiagram-v2-EOCWNBFH-e979239c6d160123d5b4847253a8a70e.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/classDiagram-v2-EOCWNBFH-e979239c6d160123d5b4847253a8a70e.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/cose-bilkent-JH36ORCC-bbc39a6bb062ba85e433f91becc37a65.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/cose-bilkent-JH36ORCC-bbc39a6bb062ba85e433f91becc37a65.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/cynefin-VYW2F7L2-ea0e514652627740f5a2ed32b027a164.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/cynefin-VYW2F7L2-ea0e514652627740f5a2ed32b027a164.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/cynefinDiagram-TSTJHNR4-0446f9b57ba778e5883d93e24692ffce.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/cynefinDiagram-TSTJHNR4-0446f9b57ba778e5883d93e24692ffce.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/dagre-VKFMJZFB-69f7aa52521b06a95874b1ac67508def.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/dagre-VKFMJZFB-69f7aa52521b06a95874b1ac67508def.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-0ae8aadd6e53625f59d62eceb1f06ede.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-FQU43EPY-bd0940835ccad031627e285aaba6d5ec.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-G47NLZAW-217e2cd3275924bc08fc6ebe79e95e48.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-G47NLZAW-217e2cd3275924bc08fc6ebe79e95e48.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-NH7WQ7WH-fbd3aa35ca68df15ee378fb63241b333.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-NH7WQ7WH-fbd3aa35ca68df15ee378fb63241b333.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-OA4YK3LP-48ebb0ba6bcb34417649bd55070542ad.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-OA4YK3LP-48ebb0ba6bcb34417649bd55070542ad.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-WEI45ONY-2be85db5396495fa970419f77587cf14.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/diagram-WEI45ONY-2be85db5396495fa970419f77587cf14.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/ebnfDiagram-CCIWWBDH-3c5c44cf8340b641d13076adab77967b.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/ebnfDiagram-CCIWWBDH-3c5c44cf8340b641d13076adab77967b.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/erDiagram-Q63AITRT-81762a72bd33bf1042e4cad4f688abf2.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/erDiagram-Q63AITRT-81762a72bd33bf1042e4cad4f688abf2.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/eventmodeling-45OFAUF4-11d7615d746c5304c28d4931ec9ca5f7.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/flowDiagram-23GEKE2U-5a2af608a9500bb36da0595c3464a562.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/flowDiagram-23GEKE2U-5a2af608a9500bb36da0595c3464a562.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/ganttDiagram-NO4QXBWP-379aae0f5fb2652d90827c7f8b2472d2.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/gitGraph-TEB2WS4Q-d978b8a2d1fd8fcc132b16ef8d57dd7c.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/index-4c86d3c14df18b18b3b9a6329b896faf.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/index-4c86d3c14df18b18b3b9a6329b896faf.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-5a90994af83f12740a986d9f1cb55cc9.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-5a90994af83f12740a986d9f1cb55cc9.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/info-DKCQHKI2-b59d0dbb9a30d361ddc796a5cfa7fc41.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/infoDiagram-FWYZ7A6U-0c4368de61a3bdbfbc73b143423981d9.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/infoDiagram-FWYZ7A6U-0c4368de61a3bdbfbc73b143423981d9.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/ishikawaDiagram-FXEZZL3T-1474e73532a16148b7944d3b0f896197.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/journeyDiagram-5HDEW3XC-13df6cce9cb7f0e6ffbaa9a614feeee4.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/kanban-definition-HUTT4EX6-6b56c0da5302838e7e1c46bf7460ea35.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/katex-7f6ac23f118e6e9264fdfa96e335134f.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/mermaid-75931b049ce3e66af3cd8ddf01e1cd23.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/mindmap-definition-LN4V7U3C-fafde693a329ca39007debdd961134b4.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/mindmap-definition-LN4V7U3C-fafde693a329ca39007debdd961134b4.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-645b8ffe39c60c05c0a224e6efcb5a9c.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/orchestration-graph-panel-2d117a5764d11c411d707e37fba93a1b.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/packet-7NZHBO7P-61a485e09ee448c823fffbdfc588826d.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/pegDiagram-2B236MQR-035fe1b93f90f4775e99aea533552b42.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/pegDiagram-2B236MQR-035fe1b93f90f4775e99aea533552b42.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/pie-RZYD4A2V-f6208df18db61d490f4811b192b77dec.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/pie-RZYD4A2V-f6208df18db61d490f4811b192b77dec.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/pieDiagram-ENE6RG2P-c78c82bf26f51acb7b7c44ae51eba9c6.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/quadrantDiagram-ABIIQ3AL-efff1486187742fe8683a966651df92f.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/radar-I7S5WNFK-0150ed7f0d337fc7ec70638a3656ea06.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/railroad-3IZDKUUU-c6e94ec81a88c02cb339de59f29386f5.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/railroad-abnf-AHOZXSZD-627ed129da90b5e1d371bd2c3b9db457.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/railroad-ebnf-EBAXGLYW-1b7ec12d3b92be4e181971b21f01f3f8.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/railroad-peg-LSFZ7HO6-8a8e027f4141d16a12c15223da966d7d.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/railroad-peg-LSFZ7HO6-8a8e027f4141d16a12c15223da966d7d.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/railroadDiagram-RFXS5EU6-499f36fe78b07e5558063f963a47a474.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/railroadDiagram-RFXS5EU6-499f36fe78b07e5558063f963a47a474.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/requirementDiagram-TGXJPOKE-9aaddb885fc59873a8f89cd7550c2c43.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/sankeyDiagram-HTMAVEWB-3fa66fe414adce7a50e31551c059f99c.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/sankeyDiagram-HTMAVEWB-3fa66fe414adce7a50e31551c059f99c.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/sequenceDiagram-DBY2YBRQ-856a29fb0507a2dcb697a2aa29cd0b7a.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/sizeCapture-X5ZJPWSS-388b849b33073b8202dd9ca50038b1c7.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/sizeCapture-X5ZJPWSS-388b849b33073b8202dd9ca50038b1c7.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/stateDiagram-2N3HPSRC-9ca22d078d9922ddcb54ba7bb389c734.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/stateDiagram-2N3HPSRC-9ca22d078d9922ddcb54ba7bb389c734.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/stateDiagram-v2-6OUMAXLB-4357e7143c73859f6b4858ba72acb5aa.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/stateDiagram-v2-6OUMAXLB-4357e7143c73859f6b4858ba72acb5aa.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/swimlanes-5IMT3BWC-d737ca408a7a2b82f7419141456d28e4.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/swimlanesDiagram-G3AALYLV-0bf2ac58b338c2aeb33213ff1a57983a.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/swimlanesDiagram-G3AALYLV-0bf2ac58b338c2aeb33213ff1a57983a.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/timeline-definition-FHXFAJF6-1130419ca563266603c98f1b2148a154.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/timeline-definition-FHXFAJF6-1130419ca563266603c98f1b2148a154.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/treeView-QDETBFTQ-4f6ec9b592731c21dee99264fa638554.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/treemap-6X3UGDF4-39eb6ec2c19a5de9242fd28aa26dcf5b.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/vennDiagram-L72KCM5P-4c15b392e9de3fdc472b53cbdf8e7558.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/vennDiagram-L72KCM5P-4c15b392e9de3fdc472b53cbdf8e7558.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/visualizer-bundle-b0af8f4f1ab8d4029f3f21236df43f7f.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/visualizer-panel-3fbc1337bb844d7163cbdb418a4dfd53.js.br +0 -3
- package/dist/server/web-ui/_expo/static/js/web/visualizer-pip-de03996e25ac5d8a11d723ea90b2f9a3.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/wardley-OPB4EBWU-b075ee9680ce77acf211a0fb1e63cca8.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/wardley-OPB4EBWU-b075ee9680ce77acf211a0fb1e63cca8.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/wardleyDiagram-EHGQE667-a93bc6a6a1e80adcb9a740a2ea3d1676.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/wardleyDiagram-EHGQE667-a93bc6a6a1e80adcb9a740a2ea3d1676.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/xychartDiagram-FW5EYKEG-ec54fa07a12c5792d0bb7b65deaff05b.js.br +0 -0
- 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
|
-
|
|
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:
|
|
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
|
-
|
|
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"),
|
|
237
|
-
writePrivateFileAtomicSync(join(runtimeDir, "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) {
|