ltcai 4.6.1 → 4.7.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.
@@ -1238,6 +1238,7 @@ body {
1238
1238
  display: flex;
1239
1239
  align-items: center;
1240
1240
  justify-content: space-between;
1241
+ gap: 0.75rem;
1241
1242
  padding-bottom: 0.65rem;
1242
1243
  color: hsl(var(--fg-muted));
1243
1244
  font-size: 0.75rem;
@@ -1245,6 +1246,50 @@ body {
1245
1246
  text-transform: uppercase;
1246
1247
  }
1247
1248
 
1249
+ .brain-ownership-strip {
1250
+ display: flex;
1251
+ flex: 1 1 auto;
1252
+ justify-content: center;
1253
+ gap: 0.45rem;
1254
+ min-width: 0;
1255
+ }
1256
+
1257
+ .brain-ownership-strip span {
1258
+ border: 1px solid hsl(var(--border) / 0.58);
1259
+ border-radius: 999px;
1260
+ background: hsl(var(--surface-glass));
1261
+ padding: 0.28rem 0.58rem;
1262
+ color: hsl(var(--fg-muted));
1263
+ font-size: 0.62rem;
1264
+ font-weight: 780;
1265
+ white-space: nowrap;
1266
+ }
1267
+
1268
+ .brain-admin-link {
1269
+ display: inline-flex;
1270
+ min-height: 2rem;
1271
+ align-items: center;
1272
+ gap: 0.35rem;
1273
+ border: 1px solid hsl(var(--border) / 0.58);
1274
+ border-radius: 999px;
1275
+ background: hsl(var(--surface-glass));
1276
+ color: hsl(var(--fg-muted));
1277
+ padding: 0 0.62rem;
1278
+ font-size: 0.68rem;
1279
+ font-weight: 820;
1280
+ letter-spacing: 0;
1281
+ text-transform: none;
1282
+ transition: border-color 150ms ease, color 150ms ease, background 150ms ease;
1283
+ }
1284
+
1285
+ .brain-admin-link:hover,
1286
+ .brain-admin-link:focus-visible {
1287
+ border-color: hsl(var(--brain-core) / 0.72);
1288
+ background: hsl(var(--brain-core) / 0.08);
1289
+ color: hsl(var(--fg));
1290
+ outline: none;
1291
+ }
1292
+
1248
1293
  .brain-stream {
1249
1294
  flex: 1 1 auto;
1250
1295
  overflow-y: auto;
@@ -1934,6 +1979,454 @@ body {
1934
1979
  margin-top: 0.2rem;
1935
1980
  }
1936
1981
 
1982
+ .brain-care-panel {
1983
+ display: grid;
1984
+ border: 1px solid hsl(var(--border) / 0.64);
1985
+ border-radius: 8px;
1986
+ background:
1987
+ linear-gradient(135deg, hsl(var(--surface-glass)), hsl(var(--bg) / 0.68)),
1988
+ linear-gradient(90deg, hsl(var(--memory) / 0.08), transparent 45%, hsl(var(--brain-core) / 0.08));
1989
+ overflow: hidden;
1990
+ box-shadow: 0 14px 36px hsl(200 30% 3% / 0.2);
1991
+ backdrop-filter: blur(18px);
1992
+ }
1993
+
1994
+ .brain-care-summary {
1995
+ display: flex;
1996
+ width: 100%;
1997
+ align-items: center;
1998
+ justify-content: space-between;
1999
+ gap: 0.75rem;
2000
+ border: 0;
2001
+ background: transparent;
2002
+ color: inherit;
2003
+ padding: 0.72rem 0.82rem;
2004
+ text-align: left;
2005
+ }
2006
+
2007
+ .brain-care-summary:hover,
2008
+ .brain-care-summary:focus-visible {
2009
+ background: hsl(var(--memory) / 0.07);
2010
+ outline: none;
2011
+ }
2012
+
2013
+ .brain-care-summary-main {
2014
+ display: grid;
2015
+ min-width: 0;
2016
+ gap: 0.16rem;
2017
+ }
2018
+
2019
+ .brain-care-summary-main span,
2020
+ .brain-care-proof span,
2021
+ .brain-care-button small,
2022
+ .brain-care-note,
2023
+ .brain-care-result {
2024
+ color: hsl(var(--fg-muted));
2025
+ font-size: 0.72rem;
2026
+ }
2027
+
2028
+ .brain-care-summary-main span {
2029
+ display: inline-flex;
2030
+ align-items: center;
2031
+ gap: 0.36rem;
2032
+ font-weight: 800;
2033
+ text-transform: uppercase;
2034
+ }
2035
+
2036
+ .brain-care-summary-main strong {
2037
+ display: block;
2038
+ overflow: hidden;
2039
+ color: hsl(var(--fg));
2040
+ font-size: 0.94rem;
2041
+ line-height: 1.16;
2042
+ text-overflow: ellipsis;
2043
+ white-space: nowrap;
2044
+ }
2045
+
2046
+ .brain-care-proof {
2047
+ display: flex;
2048
+ flex-wrap: wrap;
2049
+ justify-content: flex-end;
2050
+ gap: 0.35rem;
2051
+ }
2052
+
2053
+ .brain-care-proof span {
2054
+ border: 1px solid hsl(var(--border) / 0.58);
2055
+ border-radius: 999px;
2056
+ background: hsl(var(--bg) / 0.42);
2057
+ padding: 0.25rem 0.48rem;
2058
+ white-space: nowrap;
2059
+ }
2060
+
2061
+ .brain-care-toggle {
2062
+ flex: 0 0 auto;
2063
+ color: hsl(var(--fg-muted));
2064
+ transition: transform 150ms ease;
2065
+ }
2066
+
2067
+ .brain-care-panel.is-expanded .brain-care-toggle {
2068
+ transform: rotate(180deg);
2069
+ }
2070
+
2071
+ .brain-care-details {
2072
+ display: grid;
2073
+ gap: 0.75rem;
2074
+ border-top: 1px solid hsl(var(--border) / 0.5);
2075
+ padding: 0.82rem;
2076
+ }
2077
+
2078
+ .brain-care-actions,
2079
+ .brain-care-archive,
2080
+ .brain-care-archive-actions {
2081
+ display: flex;
2082
+ gap: 0.5rem;
2083
+ }
2084
+
2085
+ .brain-care-actions {
2086
+ flex-wrap: wrap;
2087
+ }
2088
+
2089
+ .brain-care-button {
2090
+ display: inline-flex;
2091
+ min-width: 7.2rem;
2092
+ flex: 1 1 7.2rem;
2093
+ align-items: center;
2094
+ gap: 0.52rem;
2095
+ border: 1px solid hsl(var(--border) / 0.68);
2096
+ border-radius: 8px;
2097
+ background: hsl(var(--bg) / 0.42);
2098
+ padding: 0.58rem 0.62rem;
2099
+ color: hsl(var(--fg));
2100
+ text-align: left;
2101
+ transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
2102
+ }
2103
+
2104
+ .brain-care-button:hover:not(:disabled),
2105
+ .brain-care-button:focus-visible {
2106
+ border-color: hsl(var(--memory) / 0.72);
2107
+ background: hsl(var(--memory) / 0.08);
2108
+ outline: none;
2109
+ transform: translateY(-1px);
2110
+ }
2111
+
2112
+ .brain-care-button:disabled {
2113
+ cursor: not-allowed;
2114
+ opacity: 0.52;
2115
+ }
2116
+
2117
+ .brain-care-button svg {
2118
+ flex: 0 0 auto;
2119
+ color: hsl(var(--memory));
2120
+ }
2121
+
2122
+ .brain-care-button span {
2123
+ display: grid;
2124
+ min-width: 0;
2125
+ gap: 0.08rem;
2126
+ }
2127
+
2128
+ .brain-care-button strong {
2129
+ overflow: hidden;
2130
+ font-size: 0.82rem;
2131
+ line-height: 1.12;
2132
+ text-overflow: ellipsis;
2133
+ white-space: nowrap;
2134
+ }
2135
+
2136
+ .brain-care-button small {
2137
+ overflow: hidden;
2138
+ line-height: 1.1;
2139
+ text-overflow: ellipsis;
2140
+ white-space: nowrap;
2141
+ }
2142
+
2143
+ .brain-care-archive {
2144
+ flex-wrap: wrap;
2145
+ }
2146
+
2147
+ .brain-care-archive input {
2148
+ min-width: 0;
2149
+ min-height: 2.2rem;
2150
+ flex: 1 1 12rem;
2151
+ border: 1px solid hsl(var(--border) / 0.68);
2152
+ border-radius: 8px;
2153
+ background: hsl(var(--bg) / 0.5);
2154
+ color: hsl(var(--fg));
2155
+ outline: none;
2156
+ padding: 0 0.68rem;
2157
+ font-size: 0.82rem;
2158
+ }
2159
+
2160
+ .brain-care-archive input:focus {
2161
+ border-color: hsl(var(--brain-core) / 0.68);
2162
+ box-shadow: 0 0 0 3px hsl(var(--brain-core) / 0.1);
2163
+ }
2164
+
2165
+ .brain-care-archive-actions {
2166
+ flex: 1 1 14rem;
2167
+ flex-wrap: wrap;
2168
+ }
2169
+
2170
+ .brain-care-archive-actions button {
2171
+ flex: 1 1 6.6rem;
2172
+ min-height: 2.2rem;
2173
+ border-radius: 8px;
2174
+ }
2175
+
2176
+ .brain-care-note,
2177
+ .brain-care-result {
2178
+ margin: 0;
2179
+ line-height: 1.35;
2180
+ }
2181
+
2182
+ .brain-care-result {
2183
+ border: 1px solid hsl(var(--border) / 0.58);
2184
+ border-radius: 8px;
2185
+ background: hsl(var(--bg) / 0.38);
2186
+ padding: 0.48rem 0.58rem;
2187
+ }
2188
+
2189
+ .brain-care-result.is-ok {
2190
+ border-color: hsl(var(--memory) / 0.46);
2191
+ color: hsl(var(--memory));
2192
+ }
2193
+
2194
+ .brain-care-result.is-error {
2195
+ border-color: hsl(var(--destructive) / 0.46);
2196
+ color: hsl(var(--destructive));
2197
+ }
2198
+
2199
+ .admin-console {
2200
+ position: relative;
2201
+ z-index: 2;
2202
+ width: min(1180px, calc(100vw - 2rem));
2203
+ margin: 0 auto;
2204
+ padding: clamp(1rem, 3vw, 2.25rem) 0 3rem;
2205
+ }
2206
+
2207
+ .admin-console-header {
2208
+ display: flex;
2209
+ align-items: flex-start;
2210
+ gap: 1rem;
2211
+ margin-bottom: 1rem;
2212
+ border-bottom: 1px solid hsl(var(--border) / 0.55);
2213
+ padding-bottom: 1rem;
2214
+ }
2215
+
2216
+ .admin-console-header h1,
2217
+ .admin-panel-head h2 {
2218
+ margin: 0;
2219
+ color: hsl(var(--fg));
2220
+ letter-spacing: 0;
2221
+ }
2222
+
2223
+ .admin-console-header h1 {
2224
+ font-size: clamp(1.75rem, 4vw, 3rem);
2225
+ line-height: 1;
2226
+ }
2227
+
2228
+ .admin-console-header span,
2229
+ .admin-panel-head span,
2230
+ .admin-metric span,
2231
+ .admin-list-row span,
2232
+ .admin-empty,
2233
+ .admin-operation span,
2234
+ .admin-metric small {
2235
+ color: hsl(var(--fg-muted));
2236
+ }
2237
+
2238
+ .admin-console-header > div > span,
2239
+ .admin-panel-head span,
2240
+ .admin-metric span {
2241
+ font-size: 0.72rem;
2242
+ font-weight: 850;
2243
+ text-transform: uppercase;
2244
+ }
2245
+
2246
+ .admin-console-header p {
2247
+ max-width: 44rem;
2248
+ margin: 0.5rem 0 0;
2249
+ color: hsl(var(--fg-muted));
2250
+ line-height: 1.45;
2251
+ }
2252
+
2253
+ .admin-back-button {
2254
+ display: inline-flex;
2255
+ flex: 0 0 auto;
2256
+ min-height: 2.4rem;
2257
+ align-items: center;
2258
+ gap: 0.45rem;
2259
+ border: 1px solid hsl(var(--border) / 0.7);
2260
+ border-radius: 999px;
2261
+ background: hsl(var(--surface-glass));
2262
+ color: hsl(var(--fg));
2263
+ padding: 0 0.85rem;
2264
+ }
2265
+
2266
+ .admin-back-button:hover,
2267
+ .admin-back-button:focus-visible {
2268
+ border-color: hsl(var(--brain-core) / 0.72);
2269
+ outline: none;
2270
+ }
2271
+
2272
+ .admin-metrics,
2273
+ .admin-grid {
2274
+ display: grid;
2275
+ gap: 0.85rem;
2276
+ }
2277
+
2278
+ .admin-metrics {
2279
+ grid-template-columns: repeat(4, minmax(0, 1fr));
2280
+ margin-bottom: 0.85rem;
2281
+ }
2282
+
2283
+ .admin-metric,
2284
+ .admin-panel {
2285
+ border: 1px solid hsl(var(--border) / 0.68);
2286
+ border-radius: 8px;
2287
+ background:
2288
+ linear-gradient(180deg, hsl(var(--surface-glass)), hsl(var(--bg) / 0.68)),
2289
+ linear-gradient(90deg, hsl(var(--memory) / 0.06), transparent 42%, hsl(var(--knowledge) / 0.06));
2290
+ box-shadow: 0 18px 46px hsl(200 30% 3% / 0.22);
2291
+ backdrop-filter: blur(18px);
2292
+ }
2293
+
2294
+ .admin-metric {
2295
+ display: grid;
2296
+ gap: 0.18rem;
2297
+ min-height: 8.2rem;
2298
+ padding: 0.9rem;
2299
+ }
2300
+
2301
+ .admin-metric > div {
2302
+ display: grid;
2303
+ width: 2.1rem;
2304
+ height: 2.1rem;
2305
+ place-items: center;
2306
+ border-radius: 8px;
2307
+ background: hsl(var(--brain-core) / 0.12);
2308
+ color: hsl(var(--brain-core));
2309
+ }
2310
+
2311
+ .admin-metric strong {
2312
+ overflow: hidden;
2313
+ font-size: 1.45rem;
2314
+ line-height: 1.05;
2315
+ text-overflow: ellipsis;
2316
+ white-space: nowrap;
2317
+ }
2318
+
2319
+ .admin-metric small {
2320
+ overflow: hidden;
2321
+ font-size: 0.74rem;
2322
+ text-overflow: ellipsis;
2323
+ white-space: nowrap;
2324
+ }
2325
+
2326
+ .admin-grid {
2327
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2328
+ }
2329
+
2330
+ .admin-panel {
2331
+ display: grid;
2332
+ align-content: start;
2333
+ gap: 0.8rem;
2334
+ min-height: 20rem;
2335
+ padding: 0.95rem;
2336
+ }
2337
+
2338
+ .admin-panel-head {
2339
+ display: grid;
2340
+ gap: 0.14rem;
2341
+ }
2342
+
2343
+ .admin-panel-head h2 {
2344
+ font-size: 1.1rem;
2345
+ }
2346
+
2347
+ .admin-list {
2348
+ display: grid;
2349
+ gap: 0.45rem;
2350
+ }
2351
+
2352
+ .admin-list-row {
2353
+ display: flex;
2354
+ min-height: 3.15rem;
2355
+ align-items: center;
2356
+ justify-content: space-between;
2357
+ gap: 0.75rem;
2358
+ border: 1px solid hsl(var(--border) / 0.48);
2359
+ border-radius: 8px;
2360
+ background: hsl(var(--bg) / 0.35);
2361
+ padding: 0.58rem 0.65rem;
2362
+ }
2363
+
2364
+ .admin-list-row strong,
2365
+ .admin-list-row span {
2366
+ overflow: hidden;
2367
+ text-overflow: ellipsis;
2368
+ white-space: nowrap;
2369
+ }
2370
+
2371
+ .admin-list-row strong {
2372
+ min-width: 0;
2373
+ font-size: 0.88rem;
2374
+ }
2375
+
2376
+ .admin-list-row span {
2377
+ flex: 0 1 45%;
2378
+ text-align: right;
2379
+ font-size: 0.74rem;
2380
+ }
2381
+
2382
+ .admin-empty {
2383
+ display: grid;
2384
+ min-height: 11rem;
2385
+ place-items: center;
2386
+ border: 1px dashed hsl(var(--border) / 0.6);
2387
+ border-radius: 8px;
2388
+ background: hsl(var(--bg) / 0.28);
2389
+ font-size: 0.86rem;
2390
+ text-align: center;
2391
+ }
2392
+
2393
+ .admin-operation {
2394
+ display: flex;
2395
+ align-items: center;
2396
+ justify-content: space-between;
2397
+ gap: 0.85rem;
2398
+ border: 1px solid hsl(var(--border) / 0.48);
2399
+ border-radius: 8px;
2400
+ background: hsl(var(--bg) / 0.35);
2401
+ padding: 0.78rem;
2402
+ }
2403
+
2404
+ .admin-operation > div {
2405
+ display: grid;
2406
+ min-width: 0;
2407
+ gap: 0.16rem;
2408
+ }
2409
+
2410
+ .admin-operation span {
2411
+ font-size: 0.8rem;
2412
+ line-height: 1.35;
2413
+ }
2414
+
2415
+ .admin-policy-strip {
2416
+ display: flex;
2417
+ flex-wrap: wrap;
2418
+ gap: 0.45rem;
2419
+ }
2420
+
2421
+ .admin-policy-strip span {
2422
+ border: 1px solid hsl(var(--border) / 0.58);
2423
+ border-radius: 999px;
2424
+ background: hsl(var(--bg) / 0.42);
2425
+ color: hsl(var(--fg-muted));
2426
+ padding: 0.32rem 0.56rem;
2427
+ font-size: 0.74rem;
2428
+ }
2429
+
1937
2430
  .brain-image-input {
1938
2431
  display: inline-flex;
1939
2432
  cursor: pointer;
@@ -2012,10 +2505,54 @@ body {
2012
2505
  /* Gentle empty / loading for the mind */
2013
2506
  .mind-empty {
2014
2507
  text-align: center;
2015
- padding: 3rem 1rem;
2508
+ padding: 2.4rem 1rem;
2016
2509
  color: hsl(var(--fg-muted));
2017
2510
  }
2018
2511
 
2512
+ .mind-empty-title {
2513
+ max-width: 34rem;
2514
+ margin: 0 auto 0.5rem;
2515
+ color: hsl(var(--fg));
2516
+ font-size: 1.1rem;
2517
+ font-weight: 650;
2518
+ line-height: 1.2;
2519
+ }
2520
+
2521
+ .mind-empty p {
2522
+ max-width: 39rem;
2523
+ margin: 0 auto;
2524
+ font-size: 0.9rem;
2525
+ line-height: 1.45;
2526
+ }
2527
+
2528
+ .mind-empty-prompts {
2529
+ display: flex;
2530
+ flex-wrap: wrap;
2531
+ justify-content: center;
2532
+ gap: 0.48rem;
2533
+ margin-top: 1rem;
2534
+ }
2535
+
2536
+ .mind-empty-prompts button {
2537
+ max-width: 100%;
2538
+ border: 1px solid hsl(var(--border) / 0.62);
2539
+ border-radius: 999px;
2540
+ background: hsl(var(--bg) / 0.46);
2541
+ color: hsl(var(--fg));
2542
+ padding: 0.46rem 0.7rem;
2543
+ font-size: 0.78rem;
2544
+ line-height: 1.15;
2545
+ transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
2546
+ }
2547
+
2548
+ .mind-empty-prompts button:hover,
2549
+ .mind-empty-prompts button:focus-visible {
2550
+ border-color: hsl(var(--memory) / 0.7);
2551
+ background: hsl(var(--memory) / 0.08);
2552
+ outline: none;
2553
+ transform: translateY(-1px);
2554
+ }
2555
+
2019
2556
  .mind-empty .icon {
2020
2557
  opacity: 0.5;
2021
2558
  margin-bottom: 0.8rem;
@@ -2045,6 +2582,55 @@ body {
2045
2582
  .brain-presence { padding-top: 1.4rem; }
2046
2583
  .brain-organism { width: 200px; height: 200px; }
2047
2584
  .brain-conversation { padding-bottom: 5.5rem; }
2585
+ .brain-conversation-header { flex-wrap: wrap; }
2586
+ .brain-care-summary {
2587
+ display: grid;
2588
+ }
2589
+ .brain-care-proof {
2590
+ justify-content: flex-start;
2591
+ }
2592
+ .brain-care-button,
2593
+ .brain-care-archive input,
2594
+ .brain-care-archive-actions {
2595
+ flex-basis: 100%;
2596
+ }
2597
+ .brain-care-archive-actions button {
2598
+ flex-basis: calc(50% - 0.25rem);
2599
+ }
2600
+ .admin-console {
2601
+ width: min(100% - 1rem, 1180px);
2602
+ }
2603
+ .admin-console-header {
2604
+ display: grid;
2605
+ }
2606
+ .admin-metrics,
2607
+ .admin-grid {
2608
+ grid-template-columns: 1fr;
2609
+ }
2610
+ .admin-list-row,
2611
+ .admin-operation {
2612
+ align-items: flex-start;
2613
+ flex-direction: column;
2614
+ }
2615
+ .admin-list-row span {
2616
+ flex-basis: auto;
2617
+ max-width: 100%;
2618
+ text-align: left;
2619
+ }
2620
+ .mind-empty {
2621
+ padding-inline: 0.4rem;
2622
+ }
2623
+ .mind-empty-prompts {
2624
+ display: grid;
2625
+ }
2626
+ .mind-empty-prompts button {
2627
+ width: 100%;
2628
+ text-align: left;
2629
+ }
2630
+ .ritual-promise {
2631
+ grid-template-columns: 1fr;
2632
+ }
2633
+ .brain-ownership-strip { order: 3; flex-basis: 100%; justify-content: flex-start; overflow-x: auto; }
2048
2634
  .depths { bottom: 0.9rem; }
2049
2635
  }
2050
2636
 
@@ -2082,6 +2668,39 @@ body {
2082
2668
  margin: 0 auto 1.5rem;
2083
2669
  }
2084
2670
 
2671
+ .ritual-promise {
2672
+ display: grid;
2673
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2674
+ gap: 0.65rem;
2675
+ margin: 0 auto 1.15rem;
2676
+ max-width: 680px;
2677
+ }
2678
+
2679
+ .ritual-promise div {
2680
+ border: 1px solid hsl(var(--border) / 0.54);
2681
+ border-radius: 8px;
2682
+ background: hsl(var(--bg) / 0.42);
2683
+ padding: 0.72rem 0.78rem;
2684
+ text-align: left;
2685
+ }
2686
+
2687
+ .ritual-promise span {
2688
+ display: block;
2689
+ color: hsl(var(--fg-muted));
2690
+ font-size: 0.68rem;
2691
+ font-weight: 800;
2692
+ text-transform: uppercase;
2693
+ }
2694
+
2695
+ .ritual-promise strong {
2696
+ display: block;
2697
+ margin-top: 0.18rem;
2698
+ color: hsl(var(--fg));
2699
+ font-size: 0.84rem;
2700
+ font-weight: 620;
2701
+ line-height: 1.25;
2702
+ }
2703
+
2085
2704
  .ritual-card {
2086
2705
  background: hsl(var(--surface-glass));
2087
2706
  border: 1px solid hsl(var(--border) / 0.65);
@@ -26,7 +26,7 @@ from .storage import (
26
26
  storage_from_env,
27
27
  )
28
28
 
29
- __version__ = "4.6.1"
29
+ __version__ = "4.7.0"
30
30
 
31
31
  __all__ = [
32
32
  "AgentRuntime",