@loompad/cli 1.2.0 → 1.2.2

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 (116) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +13 -7
  3. package/dist/adapters/antigravity-cli.js +7 -3
  4. package/dist/adapters/antigravity-cli.js.map +1 -1
  5. package/dist/adapters/opencode.d.ts +6 -0
  6. package/dist/adapters/opencode.js +27 -2
  7. package/dist/adapters/opencode.js.map +1 -1
  8. package/dist/cli/doctor.d.ts +9 -1
  9. package/dist/cli/doctor.js +48 -5
  10. package/dist/cli/doctor.js.map +1 -1
  11. package/dist/cli/index.js +144 -20
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/cli/ui.js +3 -2
  14. package/dist/cli/ui.js.map +1 -1
  15. package/dist/core/brain-index.d.ts +0 -18
  16. package/dist/core/brain-index.js +10 -2
  17. package/dist/core/brain-index.js.map +1 -1
  18. package/dist/core/council.d.ts +3 -3
  19. package/dist/core/council.js +6 -4
  20. package/dist/core/council.js.map +1 -1
  21. package/dist/core/crew-protocol.js +4 -1
  22. package/dist/core/crew-protocol.js.map +1 -1
  23. package/dist/core/crew.d.ts +23 -1
  24. package/dist/core/crew.js +80 -9
  25. package/dist/core/crew.js.map +1 -1
  26. package/dist/core/digest.d.ts +2 -0
  27. package/dist/core/digest.js +9 -0
  28. package/dist/core/digest.js.map +1 -1
  29. package/dist/core/loops.js +22 -2
  30. package/dist/core/loops.js.map +1 -1
  31. package/dist/core/orchestra.d.ts +16 -0
  32. package/dist/core/orchestra.js +45 -2
  33. package/dist/core/orchestra.js.map +1 -1
  34. package/dist/core/prices.d.ts +27 -0
  35. package/dist/core/prices.js +38 -0
  36. package/dist/core/prices.js.map +1 -1
  37. package/dist/core/proof.d.ts +11 -1
  38. package/dist/core/proof.js +56 -7
  39. package/dist/core/proof.js.map +1 -1
  40. package/dist/core/registry.d.ts +7 -0
  41. package/dist/core/registry.js.map +1 -1
  42. package/dist/core/replay.js +3 -1
  43. package/dist/core/replay.js.map +1 -1
  44. package/dist/core/routes.js +14 -0
  45. package/dist/core/routes.js.map +1 -1
  46. package/dist/core/setup.d.ts +14 -0
  47. package/dist/core/setup.js +22 -6
  48. package/dist/core/setup.js.map +1 -1
  49. package/dist/core/shield.js +7 -3
  50. package/dist/core/shield.js.map +1 -1
  51. package/dist/core/shift.d.ts +2 -0
  52. package/dist/core/shift.js +14 -2
  53. package/dist/core/shift.js.map +1 -1
  54. package/dist/daemon/auth.d.ts +7 -1
  55. package/dist/daemon/auth.js +19 -3
  56. package/dist/daemon/auth.js.map +1 -1
  57. package/dist/daemon/client.d.ts +29 -1
  58. package/dist/daemon/client.js +37 -1
  59. package/dist/daemon/client.js.map +1 -1
  60. package/dist/daemon/council.d.ts +8 -0
  61. package/dist/daemon/council.js +121 -36
  62. package/dist/daemon/council.js.map +1 -1
  63. package/dist/daemon/proof.js +11 -7
  64. package/dist/daemon/proof.js.map +1 -1
  65. package/dist/daemon/review.d.ts +10 -0
  66. package/dist/daemon/review.js +41 -3
  67. package/dist/daemon/review.js.map +1 -1
  68. package/dist/daemon/routes/brain.js +4 -0
  69. package/dist/daemon/routes/brain.js.map +1 -1
  70. package/dist/daemon/routes/council.js +9 -0
  71. package/dist/daemon/routes/council.js.map +1 -1
  72. package/dist/daemon/routes/crews.js +4 -0
  73. package/dist/daemon/routes/crews.js.map +1 -1
  74. package/dist/daemon/routes/messages.js +8 -2
  75. package/dist/daemon/routes/messages.js.map +1 -1
  76. package/dist/daemon/routes/pairing.js +6 -1
  77. package/dist/daemon/routes/pairing.js.map +1 -1
  78. package/dist/daemon/routes/setup.js +9 -1
  79. package/dist/daemon/routes/setup.js.map +1 -1
  80. package/dist/daemon/routes/team.js +2 -0
  81. package/dist/daemon/routes/team.js.map +1 -1
  82. package/dist/daemon/runtime/accounting.js +7 -3
  83. package/dist/daemon/runtime/accounting.js.map +1 -1
  84. package/dist/daemon/runtime/queue.d.ts +9 -0
  85. package/dist/daemon/runtime/queue.js +27 -1
  86. package/dist/daemon/runtime/queue.js.map +1 -1
  87. package/dist/daemon/runtime/relay.d.ts +2 -0
  88. package/dist/daemon/runtime/relay.js +7 -0
  89. package/dist/daemon/runtime/relay.js.map +1 -1
  90. package/dist/daemon/runtime/turns.d.ts +4 -0
  91. package/dist/daemon/runtime/turns.js +29 -0
  92. package/dist/daemon/runtime/turns.js.map +1 -1
  93. package/dist/daemon/runtime-support.d.ts +5 -1
  94. package/dist/daemon/runtime-support.js +9 -3
  95. package/dist/daemon/runtime-support.js.map +1 -1
  96. package/dist/daemon/runtime.d.ts +46 -2
  97. package/dist/daemon/runtime.js +158 -6
  98. package/dist/daemon/runtime.js.map +1 -1
  99. package/dist/daemon/server.js +4 -0
  100. package/dist/daemon/server.js.map +1 -1
  101. package/dist/daemon/shift.d.ts +6 -0
  102. package/dist/daemon/shift.js +11 -2
  103. package/dist/daemon/shift.js.map +1 -1
  104. package/dist/daemon/team.d.ts +6 -0
  105. package/dist/daemon/team.js +15 -0
  106. package/dist/daemon/team.js.map +1 -1
  107. package/dist/providers/agent.js +3 -0
  108. package/dist/providers/agent.js.map +1 -1
  109. package/dist/types.d.ts +12 -0
  110. package/dist/types.js.map +1 -1
  111. package/dist/web/app.css +72 -0
  112. package/dist/web/app.js +9834 -9635
  113. package/dist/web/app.js.map +4 -4
  114. package/docs/release-notes/v1.2.1.md +40 -0
  115. package/docs/release-notes/v1.2.2.md +39 -0
  116. package/package.json +1 -1
package/dist/web/app.css CHANGED
@@ -167,6 +167,11 @@
167
167
  .dot.hot{background:var(--live)}
168
168
  .dot.hot::after{content:"";position:absolute;inset:-4px;border-radius:50%;
169
169
  border:1px solid var(--live);opacity:.5;animation:pulse 1.8s ease-out infinite}
170
+ .dot.work{background:var(--primary)}
171
+ .dot.work::after{content:"";position:absolute;inset:-4px;border-radius:50%;
172
+ border:1px solid var(--primary);opacity:.5;animation:pulse 1.8s ease-out infinite}
173
+ .card .workingtxt{color:var(--primary)}
174
+ @media (prefers-reduced-motion:reduce){.dot.hot::after,.dot.work::after{animation:none}}
170
175
  @keyframes pulse{0%{transform:scale(.6);opacity:.6}100%{transform:scale(1.7);opacity:0}}
171
176
  .badge{display:inline-flex;align-items:center;gap:5px;flex:none;
172
177
  font-size:11px;font-weight:500;font-family:var(--font-mono);letter-spacing:.02em;
@@ -508,6 +513,25 @@
508
513
  padding:9px 15px;font-size:13px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;max-width:86%;
509
514
  box-shadow:0 10px 24px rgb(0 0 0 / .18), inset 0 1px 0 var(--glass-highlight)}
510
515
  #toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
516
+ /* ── Desktop sign-in (signin.js) ─────────────────────────── */
517
+ .signwrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:28px;position:relative}
518
+ .signwrap::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
519
+ background-image:radial-gradient(circle, color-mix(in srgb, var(--foreground) 7%, transparent) 1px, transparent 1.2px);
520
+ background-size:5px 5px;mask-image:radial-gradient(60% 50% at 50% 45%, #000, transparent);
521
+ -webkit-mask-image:radial-gradient(60% 50% at 50% 45%, #000, transparent)}
522
+ .signcard{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
523
+ .signcard .biglogo{font-size:40px;font-weight:650;letter-spacing:-.02em;color:var(--foreground);margin-bottom:6px}
524
+ .signt{font-size:18px;font-weight:650;color:var(--foreground)}
525
+ .signd{font-size:13px;line-height:1.55;color:var(--muted-foreground);max-width:340px}
526
+ .signgh{width:100%;height:42px;font-size:14px;gap:9px;margin-top:8px}
527
+ .signgh svg{width:17px;height:17px}
528
+ .signst{font-size:12px;color:var(--muted-foreground);min-height:16px}
529
+ .signst a{color:var(--foreground)}
530
+ .signerr{color:var(--err)}
531
+ .signskip{background:none;border:0;color:var(--muted-foreground);font:inherit;font-size:12.5px;cursor:pointer;text-decoration:underline;
532
+ text-decoration-color:var(--border);text-underline-offset:3px;padding:4px}
533
+ .signskip:hover{color:var(--foreground)}
534
+ .signfoot{font-size:11.5px;color:var(--muted-foreground);opacity:.8}
511
535
  /* ── Pair screen ──────────────────────────────────────── */
512
536
  .pairwrap{display:flex;flex-direction:column;gap:16px;align-items:center;justify-content:center;
513
537
  min-height:92dvh;padding:28px;text-align:center;max-width:420px;margin:0 auto;position:relative}
@@ -888,6 +912,9 @@
888
912
  .shiftcard .shwhyl{flex-basis:100%;color:var(--muted-foreground);padding-left:2px}
889
913
  .shiftcard .shbits{font-family:var(--font-mono);font-size:11px;color:var(--muted-foreground)}
890
914
  .shiftline .btn{margin-left:6px}
915
+ .reviewline .rvwarn{color:var(--warn)}
916
+ .sys.warnline{color:var(--warn)}
917
+ .cwbacts{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--muted-foreground)}
891
918
  .reviewcard{max-width:92%;margin:8px 0;background:var(--card);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius);padding:9px 11px;font-size:12.5px}
892
919
  .reviewcard .rvh{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
893
920
  .reviewcard .rvh b{font-weight:650}
@@ -927,6 +954,7 @@
927
954
  .councilcard .cs-running .csm{color:var(--primary)}
928
955
  .councilcard .cs-done .csm{color:var(--ok)}
929
956
  .councilcard .cs-failed .csm,.councilcard .cs-failed .csd{color:var(--err)}
957
+ .councilcard .cs-unverified .csm{color:var(--warn);font-weight:650}
930
958
  .councilcard .ccsum{margin-top:6px;font-weight:550}
931
959
  .councilcard .ccsum:empty{display:none}
932
960
  .shiftpick .shbody{padding:4px 12px 8px;display:flex;flex-direction:column;gap:8px}
@@ -1373,6 +1401,7 @@
1373
1401
  .dgrow[data-dgchat]{cursor:pointer}
1374
1402
  .dgrow[data-dgchat]:hover{background:var(--sidebar-accent)}
1375
1403
  .dgrow .dgt{flex:none;font-family:var(--font-mono);font-size:10.5px;color:var(--muted-foreground)}
1404
+ .dgrow .dgn{font-family:var(--font-mono);font-size:10.5px;color:var(--muted-foreground)}
1376
1405
  .dgrow.question{color:var(--warn)}
1377
1406
  .dgrow.answered{color:var(--muted-foreground)}
1378
1407
  .dgrow.failed,.dgrow.server{color:var(--err)}
@@ -2762,6 +2791,45 @@
2762
2791
  .tav{width:20px;height:20px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;
2763
2792
  font-size:10px;font-weight:700;text-transform:uppercase;line-height:1}
2764
2793
  .tav.lg{width:24px;height:24px;font-size:11px}
2794
+ .tav{position:relative;overflow:hidden}
2795
+ .tav img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
2796
+ /* the Team tab: its own page, not a block under Fleet */
2797
+ .teampane{display:flex;flex-direction:column;gap:14px;max-width:1080px;margin:0 auto;padding:18px 22px 40px}
2798
+ .teampane .tmh{margin-top:0;padding-top:0;border-top:0}
2799
+ .teampane.insheet{padding:14px 0 0;margin-top:14px;border-top:1px solid var(--border);max-width:none}
2800
+ .tmwho{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted-foreground);font-family:var(--font-mono);
2801
+ background:none;border:1px solid transparent;border-radius:99px;padding:2px 8px 2px 3px;cursor:pointer}
2802
+ .tmwho:hover{border-color:var(--border);color:var(--foreground)}
2803
+ .tmwho .tav{width:18px;height:18px}
2804
+ /* signed out: what Teams is, and one button */
2805
+ .thero{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--card);overflow:hidden}
2806
+ .thhead{display:flex;gap:14px;align-items:center;padding:22px 22px 6px}
2807
+ .thlogo{width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex:none;
2808
+ background:color-mix(in srgb, var(--primary) 14%, transparent);color:var(--primary)}
2809
+ .thlogo svg{width:22px;height:22px}
2810
+ .tht{font-size:20px;font-weight:700;letter-spacing:-.015em;color:var(--foreground)}
2811
+ .thsub{font-size:13.5px;color:var(--muted-foreground);margin-top:2px;line-height:1.45}
2812
+ .thpts{list-style:none;margin:10px 0 0;padding:6px 22px 4px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 22px}
2813
+ .thpts li{display:flex;flex-direction:column;gap:2px;padding-left:14px;position:relative}
2814
+ .thpts li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:var(--primary)}
2815
+ .thpts b{font-size:13px;font-weight:650;color:var(--foreground)}
2816
+ .thpts span{font-size:12px;color:var(--muted-foreground);line-height:1.45}
2817
+ .thcta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 22px 6px}
2818
+ .thcta .btn.primary{height:38px;padding:0 16px;font-size:13.5px;gap:8px}
2819
+ .thcta .btn.primary svg{width:16px;height:16px}
2820
+ .thnote{font-size:11.5px;color:var(--muted-foreground)}
2821
+ .thjoin{display:flex;align-items:flex-end;gap:8px;padding:10px 22px 4px}
2822
+ .thjoin .field{flex:1;min-width:0}
2823
+ .thjoin .field input{height:34px;font-family:var(--font-mono);font-size:12px}
2824
+ .thjoin .field label{font-size:10px}
2825
+ .thjoin .btn{height:34px;flex:none}
2826
+ .thself{margin:8px 22px 14px;font-size:12px;color:var(--muted-foreground)}
2827
+ .thself summary{cursor:pointer;width:max-content}
2828
+ .thselfb{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px;align-items:end}
2829
+ .thselfb .tjgo{grid-column:1 / -1}
2830
+ .thme{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;color:var(--foreground)}
2831
+ .thme .tav{width:26px;height:26px;font-size:11px}
2832
+ .thme .spacer{margin-left:auto}
2765
2833
  .tmem{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px 0 2px;border-radius:99px;border:1px solid var(--border);
2766
2834
  font-size:12px;color:var(--foreground);max-width:220px}
2767
2835
  .tmem span.tml{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@@ -2934,6 +3002,10 @@
2934
3002
  .tsplit > .tsec + .tsec{border-left:0;border-top:1px solid var(--border)}
2935
3003
  .tjoin{grid-template-columns:minmax(0,1fr)}
2936
3004
  .tjoin > div + div{border-left:0;border-top:1px solid var(--border)}
3005
+ .teampane{padding:14px 14px 32px}
3006
+ .thpts{grid-template-columns:minmax(0,1fr)}
3007
+ .thselfb{grid-template-columns:minmax(0,1fr)}
3008
+ .thjoin{flex-wrap:wrap}
2937
3009
  .tshare .seg{flex:none}
2938
3010
  }
2939
3011
  /* ── Git delivery (status bar) + the orchestra's delivery lines ── */