@phenx-inc/ctlsurf 0.11.0 → 0.12.0
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/out/headless/index.mjs +111 -5
- package/out/headless/index.mjs.map +3 -3
- package/out/main/index.js +311 -7
- package/out/preload/index.js +9 -0
- package/out/renderer/assets/{cssMode-Bmzy9hKX.js → cssMode-R8fTFLae.js} +3 -3
- package/out/renderer/assets/{freemarker2-CDAsExTa.js → freemarker2-CyjWzWoP.js} +1 -1
- package/out/renderer/assets/{handlebars-CvpBYG1L.js → handlebars-CrhCGIRM.js} +1 -1
- package/out/renderer/assets/{html-CNhEQqr8.js → html-Cc3dPNZr.js} +1 -1
- package/out/renderer/assets/{htmlMode-DD7YPgga.js → htmlMode-BWtG6ywk.js} +3 -3
- package/out/renderer/assets/{index-CGHeDwZa.css → index-BL9njXIL.css} +201 -0
- package/out/renderer/assets/{index-BDlCPzCG.js → index-kkG56aKv.js} +407 -34
- package/out/renderer/assets/{javascript-CsGLsswK.js → javascript-C8T_SdLC.js} +2 -2
- package/out/renderer/assets/{jsonMode-CTuGgRvC.js → jsonMode-D1zR4VVU.js} +3 -3
- package/out/renderer/assets/{liquid-BrrN4uul.js → liquid-COSMe9Uf.js} +1 -1
- package/out/renderer/assets/{lspLanguageFeatures-Bhdn2Eqy.js → lspLanguageFeatures-CXGfrtzl.js} +1 -1
- package/out/renderer/assets/{mdx-DJo-gax4.js → mdx-RfS44T-L.js} +1 -1
- package/out/renderer/assets/{python-DYHeg5b2.js → python-DFSWKHUu.js} +1 -1
- package/out/renderer/assets/{razor-Cqcks14K.js → razor-DtH2_uvo.js} +1 -1
- package/out/renderer/assets/{tsMode-YTLgCayh.js → tsMode-BYIQ-S9Z.js} +1 -1
- package/out/renderer/assets/{typescript-oxBn_Vcw.js → typescript-HhQUr1Rb.js} +1 -1
- package/out/renderer/assets/{xml-BEqGMCTc.js → xml-KuhgdKfD.js} +1 -1
- package/out/renderer/assets/{yaml-BGSrk5HC.js → yaml-W_kzCFH7.js} +1 -1
- package/out/renderer/index.html +2 -2
- package/package.json +1 -1
- package/src/main/agents.ts +9 -1
- package/src/main/ctlsurfApi.ts +7 -0
- package/src/main/index.ts +58 -3
- package/src/main/orchestrator.ts +105 -4
- package/src/main/ssh.ts +348 -0
- package/src/preload/index.ts +26 -0
- package/src/renderer/App.tsx +20 -0
- package/src/renderer/components/AgentPicker.tsx +18 -0
- package/src/renderer/components/ProjectPicker.tsx +121 -0
- package/src/renderer/components/RemoteConnect.tsx +315 -0
- package/src/renderer/styles.css +201 -0
|
@@ -8536,6 +8536,9 @@ html, body, #root {
|
|
|
8536
8536
|
border-radius: 12px;
|
|
8537
8537
|
padding: 32px 40px;
|
|
8538
8538
|
min-width: 360px;
|
|
8539
|
+
max-width: 460px;
|
|
8540
|
+
max-height: 88vh;
|
|
8541
|
+
overflow-y: auto;
|
|
8539
8542
|
text-align: center;
|
|
8540
8543
|
}
|
|
8541
8544
|
|
|
@@ -8604,6 +8607,7 @@ html, body, #root {
|
|
|
8604
8607
|
display: flex;
|
|
8605
8608
|
align-items: center;
|
|
8606
8609
|
justify-content: space-between;
|
|
8610
|
+
gap: 16px;
|
|
8607
8611
|
padding: 14px 18px;
|
|
8608
8612
|
background: #16161e;
|
|
8609
8613
|
border: 1px solid #2a2b3d;
|
|
@@ -8622,11 +8626,13 @@ html, body, #root {
|
|
|
8622
8626
|
font-size: 14px;
|
|
8623
8627
|
font-weight: 600;
|
|
8624
8628
|
color: #c0caf5;
|
|
8629
|
+
flex-shrink: 0;
|
|
8625
8630
|
}
|
|
8626
8631
|
|
|
8627
8632
|
.agent-picker-desc {
|
|
8628
8633
|
font-size: 11px;
|
|
8629
8634
|
color: #565f89;
|
|
8635
|
+
text-align: right;
|
|
8630
8636
|
}
|
|
8631
8637
|
|
|
8632
8638
|
.agent-picker-hint {
|
|
@@ -8651,6 +8657,201 @@ html, body, #root {
|
|
|
8651
8657
|
accent-color: #7aa2f7;
|
|
8652
8658
|
}
|
|
8653
8659
|
|
|
8660
|
+
/* ─── Remote (SSH) connect ───────────────────────── */
|
|
8661
|
+
|
|
8662
|
+
.remote-section-label {
|
|
8663
|
+
font-size: 10px;
|
|
8664
|
+
color: #565f89;
|
|
8665
|
+
text-transform: uppercase;
|
|
8666
|
+
letter-spacing: 1px;
|
|
8667
|
+
text-align: left;
|
|
8668
|
+
margin: 16px 0 8px;
|
|
8669
|
+
}
|
|
8670
|
+
|
|
8671
|
+
/* Scroll the host list rather than letting it grow the whole modal. */
|
|
8672
|
+
.remote-host-scroll {
|
|
8673
|
+
max-height: 40vh;
|
|
8674
|
+
overflow-y: auto;
|
|
8675
|
+
padding-right: 4px;
|
|
8676
|
+
}
|
|
8677
|
+
|
|
8678
|
+
/* Project rows: title on top, path muted + truncated below (paths are long). */
|
|
8679
|
+
.project-item {
|
|
8680
|
+
flex-direction: column;
|
|
8681
|
+
align-items: flex-start;
|
|
8682
|
+
gap: 4px;
|
|
8683
|
+
}
|
|
8684
|
+
|
|
8685
|
+
.project-item .agent-picker-name {
|
|
8686
|
+
max-width: 100%;
|
|
8687
|
+
overflow: hidden;
|
|
8688
|
+
text-overflow: ellipsis;
|
|
8689
|
+
white-space: nowrap;
|
|
8690
|
+
}
|
|
8691
|
+
|
|
8692
|
+
.project-item .agent-picker-desc {
|
|
8693
|
+
text-align: left;
|
|
8694
|
+
font-family: 'JetBrains Mono', 'Fira Code', monospace;
|
|
8695
|
+
font-size: 10px;
|
|
8696
|
+
max-width: 100%;
|
|
8697
|
+
overflow: hidden;
|
|
8698
|
+
text-overflow: ellipsis;
|
|
8699
|
+
white-space: nowrap;
|
|
8700
|
+
}
|
|
8701
|
+
|
|
8702
|
+
/* Compact host rows so more fit before scrolling. */
|
|
8703
|
+
.remote-host-scroll .agent-picker-item {
|
|
8704
|
+
padding: 10px 14px;
|
|
8705
|
+
}
|
|
8706
|
+
|
|
8707
|
+
.remote-toggle {
|
|
8708
|
+
display: flex;
|
|
8709
|
+
align-items: center;
|
|
8710
|
+
gap: 8px;
|
|
8711
|
+
margin-bottom: 4px;
|
|
8712
|
+
}
|
|
8713
|
+
|
|
8714
|
+
.remote-toggle-label {
|
|
8715
|
+
font-size: 12px;
|
|
8716
|
+
color: #565f89;
|
|
8717
|
+
}
|
|
8718
|
+
|
|
8719
|
+
.remote-toggle-btn {
|
|
8720
|
+
flex: 1;
|
|
8721
|
+
padding: 8px 10px;
|
|
8722
|
+
background: #16161e;
|
|
8723
|
+
border: 1px solid #2a2b3d;
|
|
8724
|
+
border-radius: 8px;
|
|
8725
|
+
color: #a9b1d6;
|
|
8726
|
+
font-size: 12px;
|
|
8727
|
+
cursor: pointer;
|
|
8728
|
+
transition: all 0.15s;
|
|
8729
|
+
}
|
|
8730
|
+
|
|
8731
|
+
.remote-toggle-btn:hover {
|
|
8732
|
+
border-color: #7aa2f7;
|
|
8733
|
+
}
|
|
8734
|
+
|
|
8735
|
+
.remote-toggle-btn.is-active {
|
|
8736
|
+
border-color: #7aa2f7;
|
|
8737
|
+
background: #1a1b2e;
|
|
8738
|
+
color: #c0caf5;
|
|
8739
|
+
font-weight: 600;
|
|
8740
|
+
}
|
|
8741
|
+
|
|
8742
|
+
.remote-manual {
|
|
8743
|
+
display: flex;
|
|
8744
|
+
gap: 8px;
|
|
8745
|
+
}
|
|
8746
|
+
|
|
8747
|
+
.remote-input {
|
|
8748
|
+
flex: 1;
|
|
8749
|
+
padding: 10px 12px;
|
|
8750
|
+
background: #16161e;
|
|
8751
|
+
border: 1px solid #2a2b3d;
|
|
8752
|
+
border-radius: 8px;
|
|
8753
|
+
color: #c0caf5;
|
|
8754
|
+
font-family: 'JetBrains Mono', 'Fira Code', monospace;
|
|
8755
|
+
font-size: 12px;
|
|
8756
|
+
outline: none;
|
|
8757
|
+
}
|
|
8758
|
+
|
|
8759
|
+
.remote-input:focus {
|
|
8760
|
+
border-color: #7aa2f7;
|
|
8761
|
+
}
|
|
8762
|
+
|
|
8763
|
+
.remote-btn {
|
|
8764
|
+
padding: 10px 16px;
|
|
8765
|
+
background: #7aa2f7;
|
|
8766
|
+
border: none;
|
|
8767
|
+
border-radius: 8px;
|
|
8768
|
+
color: #1f2335;
|
|
8769
|
+
font-size: 12px;
|
|
8770
|
+
font-weight: 600;
|
|
8771
|
+
cursor: pointer;
|
|
8772
|
+
}
|
|
8773
|
+
|
|
8774
|
+
.remote-btn:disabled {
|
|
8775
|
+
opacity: 0.4;
|
|
8776
|
+
cursor: default;
|
|
8777
|
+
}
|
|
8778
|
+
|
|
8779
|
+
.remote-link {
|
|
8780
|
+
margin-top: 18px;
|
|
8781
|
+
background: none;
|
|
8782
|
+
border: none;
|
|
8783
|
+
color: #7aa2f7;
|
|
8784
|
+
font-size: 12px;
|
|
8785
|
+
cursor: pointer;
|
|
8786
|
+
}
|
|
8787
|
+
|
|
8788
|
+
.remote-status {
|
|
8789
|
+
padding: 24px 8px;
|
|
8790
|
+
color: #a9b1d6;
|
|
8791
|
+
font-size: 13px;
|
|
8792
|
+
}
|
|
8793
|
+
|
|
8794
|
+
.remote-status-sub {
|
|
8795
|
+
margin-top: 6px;
|
|
8796
|
+
font-size: 11px;
|
|
8797
|
+
color: #565f89;
|
|
8798
|
+
word-break: break-word;
|
|
8799
|
+
}
|
|
8800
|
+
|
|
8801
|
+
.remote-spinner {
|
|
8802
|
+
width: 22px;
|
|
8803
|
+
height: 22px;
|
|
8804
|
+
margin: 0 auto 14px;
|
|
8805
|
+
border: 2px solid #2a2b3d;
|
|
8806
|
+
border-top-color: #7aa2f7;
|
|
8807
|
+
border-radius: 50%;
|
|
8808
|
+
animation: remote-spin 0.8s linear infinite;
|
|
8809
|
+
}
|
|
8810
|
+
|
|
8811
|
+
@keyframes remote-spin {
|
|
8812
|
+
to { transform: rotate(360deg); }
|
|
8813
|
+
}
|
|
8814
|
+
|
|
8815
|
+
.remote-target-line {
|
|
8816
|
+
font-size: 13px;
|
|
8817
|
+
color: #a9b1d6;
|
|
8818
|
+
margin-bottom: 4px;
|
|
8819
|
+
}
|
|
8820
|
+
|
|
8821
|
+
.remote-note {
|
|
8822
|
+
font-size: 11px;
|
|
8823
|
+
color: #e0af68;
|
|
8824
|
+
background: rgba(224, 175, 104, 0.08);
|
|
8825
|
+
border: 1px solid rgba(224, 175, 104, 0.25);
|
|
8826
|
+
border-radius: 8px;
|
|
8827
|
+
padding: 8px 12px;
|
|
8828
|
+
margin: 8px 0;
|
|
8829
|
+
text-align: left;
|
|
8830
|
+
line-height: 1.4;
|
|
8831
|
+
}
|
|
8832
|
+
|
|
8833
|
+
.remote-error {
|
|
8834
|
+
font-size: 13px;
|
|
8835
|
+
color: #f7768e;
|
|
8836
|
+
margin-bottom: 4px;
|
|
8837
|
+
}
|
|
8838
|
+
|
|
8839
|
+
.remote-pw {
|
|
8840
|
+
margin: 8px 0 4px;
|
|
8841
|
+
}
|
|
8842
|
+
|
|
8843
|
+
.remote-pw .remote-input {
|
|
8844
|
+
width: 100%;
|
|
8845
|
+
box-sizing: border-box;
|
|
8846
|
+
}
|
|
8847
|
+
|
|
8848
|
+
.remote-pw-hint {
|
|
8849
|
+
margin-top: 6px;
|
|
8850
|
+
font-size: 10px;
|
|
8851
|
+
color: #565f89;
|
|
8852
|
+
text-align: left;
|
|
8853
|
+
}
|
|
8854
|
+
|
|
8654
8855
|
/* Settings dialog */
|
|
8655
8856
|
.settings-overlay {
|
|
8656
8857
|
position: fixed;
|