@k2b/cloud 0.45.0 → 0.46.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/package.json +5 -2
- package/src/_internal/app-queries.ts +73 -0
- package/src/_internal/capabilities.ts +137 -9
- package/src/_internal/define-app.ts +2 -0
- package/src/_internal/registry-validation.ts +17 -4
- package/src/_internal/registry.ts +32 -4
- package/src/_internal/resource-principals.ts +36 -0
- package/src/ai/capabilities.ts +4 -2
- package/src/ai/chat/map-messages.ts +270 -0
- package/src/ai/chat/map-notebook.browser-harness.tsx +28 -0
- package/src/ai/chat/map-notebook.tsx +301 -0
- package/src/ai/chat/map-widget.browser-harness.tsx +71 -0
- package/src/ai/chat/map-widget.css +107 -0
- package/src/ai/chat/map-widget.tsx +1279 -0
- package/src/ai/chat/message-utils.ts +1 -0
- package/src/ai/chat/tool-names.ts +2 -0
- package/src/ai/chat/turn-layout.ts +2 -1
- package/src/ai/chat/turn-view.tsx +17 -1
- package/src/ai/default-tools.ts +3 -0
- package/src/ai/executor.ts +13 -1
- package/src/ai/map-contracts.ts +209 -0
- package/src/ai/map-execution.ts +14 -0
- package/src/ai/map-notebook-save.ts +276 -0
- package/src/ai/map-notebook.ts +32 -0
- package/src/ai/map-opening-hours.ts +40 -0
- package/src/ai/map-routes.ts +84 -0
- package/src/ai/map-service.ts +288 -0
- package/src/ai/map-store.ts +137 -0
- package/src/ai/map-tool.ts +73 -0
- package/src/ai/migrate.ts +3 -0
- package/src/ai/protocol.ts +3 -1
- package/src/ai/routes.ts +2 -0
- package/src/ai/store.ts +19 -6
- package/src/ai/tools.ts +14 -0
- package/src/ai/types.ts +3 -0
- package/src/api/capabilities.ts +90 -12
- package/src/api/mcp.ts +4 -2
- package/src/browser/notifications.ts +25 -8
- package/src/capabilities/discussion-providers.ts +99 -0
- package/src/capabilities/executions.ts +2 -2
- package/src/capabilities/migrate.ts +10 -1
- package/src/capabilities/resource-readers.ts +58 -0
- package/src/capabilities/server-invoke.ts +23 -13
- package/src/capabilities/server.ts +17 -6
- package/src/capabilities/testing.ts +13 -0
- package/src/contracts/capabilities.ts +137 -4
- package/src/contracts/discussions.ts +91 -0
- package/src/contracts/geo-document.ts +60 -0
- package/src/contracts/geo-snapshot.ts +86 -0
- package/src/contracts/geo.ts +14 -0
- package/src/contracts/index.ts +2 -0
- package/src/contracts/outgoing-mail.ts +1 -1
- package/src/contracts/resource-types.ts +21 -0
- package/src/geo/AddressAutocomplete.tsx +213 -0
- package/src/geo/messages.ts +29 -0
- package/src/geo/navigation.ts +25 -0
- package/src/geo/ui.ts +2 -0
- package/src/services/accounts/app.ts +28 -6
- package/src/services/accounts/entities.ts +11 -4
- package/src/services/accounts/groups.ts +10 -4
- package/src/services/accounts/local-groups.ts +87 -38
- package/src/services/accounts/machine-group-management.ts +94 -0
- package/src/services/geo/cache.ts +2 -1
- package/src/services/geo/geoapify.ts +3 -0
- package/src/services/identity/invocation-token.ts +110 -0
- package/src/services/pdf/geo-snapshot.ts +107 -0
- package/src/services/pdf/index.ts +2 -0
- package/src/ssr/AdminArea.tsx +2 -2
- package/src/ssr/AdminLayout.tsx +1 -1
- package/src/ssr/AdminSidebar.tsx +1 -1
- package/src/styles/global.css +2 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
.ai-map-host { container: assistant-map / inline-size; min-width:0; width:100%; }
|
|
2
|
+
.ai-map { --map-second: #0f766e; display:flex; flex-direction:column; gap:14px; width:100%; min-width:0; color:var(--k2b-text); font-size:14px; line-height:1.45; scroll-margin-top:24px; }
|
|
3
|
+
.ai-map p { margin:0; }
|
|
4
|
+
.ai-map a,.ai-map__jump { color:var(--k2b-action); }
|
|
5
|
+
.ai-map__head { display:flex; align-items:center; gap:6px; height:29px; overflow:hidden; white-space:nowrap; font-size:18px; }
|
|
6
|
+
.ai-map__chip { display:inline-flex; align-items:center; flex:none; height:28px; border-radius:7px; padding:0 9px; background:var(--ui-field); font-size:14px; }
|
|
7
|
+
.ai-map__split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; height:344px; }
|
|
8
|
+
.ai-map__info { grid-column:2; grid-row:1; height:232px; min-width:0; display:flex; flex-direction:column; gap:8px; padding:4px 4px 0; overflow:hidden; font-size:13.5px; }
|
|
9
|
+
.ai-map__info h4 { margin:0; font-size:17px; font-weight:600; line-height:1.3; }
|
|
10
|
+
.ai-map__info>div { overflow:hidden; text-overflow:ellipsis; }
|
|
11
|
+
.ai-map__info small,.ai-map__provenance { color:var(--ui-text-dimmed); font-size:12.5px; }
|
|
12
|
+
.ai-map__description { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; flex-shrink:0; }
|
|
13
|
+
.ai-map__list { grid-column:1; grid-row:1; display:flex; flex-direction:column; gap:2px; height:344px; overflow:auto; }
|
|
14
|
+
.ai-map__list:focus-visible { outline:2px solid var(--k2b-focus-ring); outline-offset:2px; border-radius:10px; }
|
|
15
|
+
.ai-map__place { display:grid; grid-template-columns:26px minmax(0,1fr) auto; gap:10px; align-items:center; min-height:52px; flex:none; padding:6px 10px; border-radius:10px; cursor:pointer; }
|
|
16
|
+
.ai-map__place:hover { background:var(--ui-hover); }
|
|
17
|
+
.ai-map__place[aria-selected=true] { background:color-mix(in srgb,var(--k2b-action-solid) 12%,transparent); }
|
|
18
|
+
.ai-map__place[data-second=true][aria-selected=true] { background:color-mix(in srgb,var(--map-second) 12%,transparent); }
|
|
19
|
+
.ai-map__mark { width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:600; box-shadow:inset 0 0 0 2px var(--k2b-action-solid); }
|
|
20
|
+
.ai-map__place[data-second=true] .ai-map__mark { box-shadow:inset 0 0 0 2px var(--map-second); }
|
|
21
|
+
.ai-map__place-text { display:flex; flex-direction:column; min-width:0; }
|
|
22
|
+
.ai-map__place-text>span,.ai-map__place-text>small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
|
23
|
+
.ai-map__place-text>span { font-weight:500; }
|
|
24
|
+
.ai-map__place-text>small { font-size:12.5px; color:var(--ui-text-dimmed); }
|
|
25
|
+
.ai-map__distance { font-size:13px; font-variant-numeric:tabular-nums; }
|
|
26
|
+
.ai-map__actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
|
|
27
|
+
.ai-map__actions>.k2b-field { flex:1; min-width:100px; }
|
|
28
|
+
.ai-map__zone { min-height:34px; }
|
|
29
|
+
.ai-map__provenance { height:18px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
|
30
|
+
.ai-map__facts { display:flex; gap:32px; align-items:baseline; height:53px; font-variant-numeric:tabular-nums; }
|
|
31
|
+
.ai-map__facts>div { display:flex; flex-direction:column; }
|
|
32
|
+
.ai-map__facts strong { font-size:24px; font-weight:600; line-height:1.2; }
|
|
33
|
+
.ai-map__facts [data-gain=true] { color:var(--k2b-success-text); }
|
|
34
|
+
.ai-map__facts small { font-size:13px; }
|
|
35
|
+
.ai-map__stages { height:241px; overflow:auto; display:flex; flex-direction:column; gap:0; }
|
|
36
|
+
.ai-map__leg { display:grid; grid-template-columns:56px minmax(0,1fr) 76px 76px; align-items:center; gap:10px; min-height:40px; padding:0 10px; border-radius:9px; font-size:13.5px; flex:none; }
|
|
37
|
+
.ai-map__leg>span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
|
38
|
+
.ai-map__leg>span:nth-last-child(-n+2) { text-align:right; font-variant-numeric:tabular-nums; }
|
|
39
|
+
.ai-map__leg small { margin-left:6px; color:var(--ui-text-dimmed); font-size:12px; }
|
|
40
|
+
.ai-map__leg[data-changed=true] { background:color-mix(in srgb,var(--map-second) 10%,transparent); }
|
|
41
|
+
.ai-map[data-kind=route] .ai-map__zone { min-height:128px; }
|
|
42
|
+
.ai-map__confirm,.ai-map__opts,.ai-map__search,.ai-map__save { display:flex; flex-direction:column; gap:8px; }
|
|
43
|
+
.ai-map__confirm>p { font-size:17px; line-height:1.6; }
|
|
44
|
+
.ai-map__receipt { display:flex; align-items:center; gap:10px; min-height:40px; }
|
|
45
|
+
.ai-map__receipt time { margin-left:auto; color:var(--ui-text-dimmed); font-size:12.5px; }
|
|
46
|
+
.ai-map__state { padding:14px 10px; display:flex; flex-direction:column; gap:8px; }
|
|
47
|
+
.ai-map__state>p { color:var(--ui-text-dimmed); }
|
|
48
|
+
.ai-map__error { display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:13px; }
|
|
49
|
+
.ai-map__more { align-self:flex-start; min-height:40px; }
|
|
50
|
+
@container assistant-map (max-width:599px) {
|
|
51
|
+
.ai-map[data-kind=places] .ai-map__zone { min-height:76px; }
|
|
52
|
+
.ai-map__head { height:36px; font-size:16px; }
|
|
53
|
+
.ai-map__split { display:flex; flex-direction:column; gap:6px; height:544px; }
|
|
54
|
+
.ai-map__info { height:228px; flex:none; padding:0 2px; }
|
|
55
|
+
.ai-map__list { height:310px; flex:none; overflow:hidden; padding-top:14px; }
|
|
56
|
+
.ai-map__list .ai-map__place:nth-child(n+6) { display:none; }
|
|
57
|
+
.ai-map__list[data-expanded=true] .ai-map__place { display:grid; }
|
|
58
|
+
.ai-map[data-expanded=true] .ai-map__list,.ai-map[data-expanded=true] .ai-map__split { height:auto; overflow:visible; }
|
|
59
|
+
.ai-map[data-kind=places] .k2b-map-view { height:230px !important; }
|
|
60
|
+
.ai-map[data-kind=places] .ai-map__zone>.ai-map__actions { display:grid; grid-template-columns:1fr 1fr; }
|
|
61
|
+
.ai-map[data-kind=places] .ai-map__zone>.ai-map__actions>:nth-child(3) { grid-column:1 / -1; grid-row:2; }
|
|
62
|
+
.ai-map[data-kind=route] .k2b-map-view { height:240px !important; }
|
|
63
|
+
.ai-map__stages { height:286px; overflow:visible; }
|
|
64
|
+
.ai-map__leg { grid-template-columns:42px minmax(0,1fr) 54px 48px; gap:6px; padding:0 4px; font-size:12px; }
|
|
65
|
+
.ai-map__leg small { display:block; margin:0; }
|
|
66
|
+
.ai-map[data-kind=route] .ai-map__zone { min-height:150px; }
|
|
67
|
+
.ai-map__facts { gap:14px; }
|
|
68
|
+
.ai-map__facts strong { font-size:21px; }
|
|
69
|
+
.ai-map__opts { font-size:12px; }
|
|
70
|
+
}
|
|
71
|
+
@media (min-width:800px) { @container assistant-map (max-width:368px) {
|
|
72
|
+
.ai-map[data-kind=places] .k2b-map-view { height:200px !important; }
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.ai-map__placeholder { min-height:811px; justify-content:center; align-items:center; }
|
|
78
|
+
.ai-map__placeholder[data-kind=route] { min-height:869px; }
|
|
79
|
+
.ai-map__skeleton { display:flex; flex-direction:column; gap:18px; padding:14px 10px; width:100%; }
|
|
80
|
+
.ai-map__skeleton span { height:34px; border-radius:8px; background:var(--ui-field); }
|
|
81
|
+
.ai-map__route-place { padding:10px; font-size:12px; color:var(--ui-text-dimmed); }
|
|
82
|
+
.ai-map__stages { overflow:visible; }
|
|
83
|
+
.ai-map__stages:has(.ai-map__leg:nth-child(n+7)) { height:auto; }
|
|
84
|
+
@container assistant-map (max-width:599px) { .ai-map__placeholder { min-height:960px; } .ai-map__placeholder[data-kind=route] { min-height:853px; } }
|
|
85
|
+
|
|
86
|
+
:where(.dark,[data-theme="dark"]) .ai-map { --map-second:#14b8a6; }
|
|
87
|
+
|
|
88
|
+
.ai-map__candidate { flex:none; height:40px; justify-content:flex-start; text-align:left; }
|
|
89
|
+
.ai-map__candidate span { white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
|
|
90
|
+
.ai-map__saved-stops { list-style:none; margin:0; padding:0 10px; display:grid; gap:8px; }
|
|
91
|
+
.ai-map__order { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; padding:8px 10px; }
|
|
92
|
+
.ai-map__order ol { margin:8px 0 0; padding-left:22px; }
|
|
93
|
+
.ai-map__order li { line-height:1.8; overflow-wrap:anywhere; }
|
|
94
|
+
.ai-map__order>div:first-child ol { color:var(--ui-text-dimmed); }
|
|
95
|
+
.ai-map__stages:has(.ai-map__order li:nth-child(n+7)) { height:auto; }
|
|
96
|
+
|
|
97
|
+
.ai-map__group { height:24px; flex:none; display:flex; align-items:center; gap:6px; padding:0 10px; font-size:12.5px; font-weight:500; color:var(--k2b-action-solid); }
|
|
98
|
+
.ai-map__group::before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
|
|
99
|
+
.ai-map__group[data-second=true] { color:var(--map-second); }
|
|
100
|
+
.ai-map__chip[data-second=true] { color:var(--map-second); background:color-mix(in srgb,var(--map-second) 12%,transparent); }
|
|
101
|
+
.ai-map__place[aria-selected=true] .ai-map__mark { background:var(--k2b-action-solid); color:var(--k2b-surface); box-shadow:none; }
|
|
102
|
+
.ai-map__place[data-second=true][aria-selected=true] .ai-map__mark { background:var(--map-second); }
|
|
103
|
+
.ai-map__zone>.ai-map__actions>.k2b-button { min-height:34px; height:34px; }
|
|
104
|
+
.ai-map__actions[data-quiet=true] { visibility:hidden; }
|
|
105
|
+
.ai-map__receipt { min-height:24px; height:24px; }
|
|
106
|
+
.ai-map__receipt>span { min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
|
107
|
+
.ai-map__receipt time,.ai-map__receipt .k2b-button { flex:none; }
|