fraim-hub 2.0.338 → 2.0.340
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/registry/scripts/learning/completion-state.js +153 -0
- package/dist/src/ai-hub/desktop-main.js +46 -0
- package/dist/src/ai-hub/hosts.js +18 -0
- package/dist/src/ai-hub/server.js +67 -69
- package/dist/src/core/handoff-contracts.js +617 -0
- package/dist/src/local-mcp-server/artifact-retention-cleanup.js +36 -9
- package/dist/src/local-mcp-server/learning-context-builder.js +145 -27
- package/dist/src/local-mcp-server/learning-usage-events.js +267 -0
- package/dist/src/local-mcp-server/learning-usage-projection.js +25 -21
- package/dist/src/local-mcp-server/learning-usage-store.js +626 -88
- package/package.json +5 -2
- package/public/ai-hub/review.css +378 -0
- package/public/ai-hub/script.js +763 -33
- package/public/ai-hub/styles.css +53 -0
package/public/ai-hub/styles.css
CHANGED
|
@@ -52,6 +52,38 @@
|
|
|
52
52
|
modal so phase/skill popovers float above it when the modal is open. */
|
|
53
53
|
--z-job-viz: 9200;
|
|
54
54
|
--z-jv-tt: 9300;
|
|
55
|
+
|
|
56
|
+
/* Domain identity. A learning's domain renders as a badge whose only job is
|
|
57
|
+
to be told apart from the other domains on screen, so these are picked for
|
|
58
|
+
mutual distinguishability rather than for connotation, and they sit outside
|
|
59
|
+
the state/accent set, which carries meaning a domain must not borrow.
|
|
60
|
+
Slots rather than domain names: tfLearnDomainClass hashes a domain into
|
|
61
|
+
TF_DOMAIN_SLOTS, so the mapping is many-to-few and no slot owns a domain.
|
|
62
|
+
Retune the domain palette here. */
|
|
63
|
+
--domain-slot-0: #0058b0;
|
|
64
|
+
--domain-slot-1: #6b4c92;
|
|
65
|
+
--domain-slot-2: #2e7d4f;
|
|
66
|
+
--domain-slot-3: #8a6734;
|
|
67
|
+
--domain-slot-4: #a24747;
|
|
68
|
+
--domain-slot-5: #2b6f78;
|
|
69
|
+
--domain-slot-0-ring: rgba(0, 88, 176, 0.35);
|
|
70
|
+
--domain-slot-1-ring: rgba(107, 76, 146, 0.35);
|
|
71
|
+
--domain-slot-2-ring: rgba(46, 125, 79, 0.35);
|
|
72
|
+
--domain-slot-3-ring: rgba(138, 103, 52, 0.35);
|
|
73
|
+
--domain-slot-4-ring: rgba(162, 71, 71, 0.35);
|
|
74
|
+
--domain-slot-5-ring: rgba(43, 111, 120, 0.35);
|
|
75
|
+
|
|
76
|
+
/* Learning-library surfaces. --strength-unresolved is its own token rather
|
|
77
|
+
than a reuse of --picker-learning, which is not theme-aware and is shared
|
|
78
|
+
with the template popover: re-tinting it for dark would move a colour on a
|
|
79
|
+
surface that did not ask for it. --ll-head-bg is the sticky list header and
|
|
80
|
+
--ll-head-shadow its cut line. */
|
|
81
|
+
--strength-unresolved: #8b5fbf;
|
|
82
|
+
--ll-head-bg: var(--surface);
|
|
83
|
+
--ll-head-shadow: 0 6px 6px -6px rgba(0, 0, 0, 0.12);
|
|
84
|
+
--lp-recessed: var(--bg);
|
|
85
|
+
--lp-raised: var(--teach-soft);
|
|
86
|
+
--lp-raised-line: var(--teach-line);
|
|
55
87
|
}
|
|
56
88
|
|
|
57
89
|
/* #700: theming is driven by an explicit [data-theme] attribute set pre-paint
|
|
@@ -61,6 +93,27 @@
|
|
|
61
93
|
:root[data-theme="light"] { color-scheme: light; }
|
|
62
94
|
:root[data-theme="dark"] {
|
|
63
95
|
color-scheme: dark;
|
|
96
|
+
/* Domain identity, lifted for the dark surface. The light values are ink
|
|
97
|
+
tones and go muddy on #1E1E1E, so these are re-picked rather than
|
|
98
|
+
derived, keeping the same slot order. */
|
|
99
|
+
--domain-slot-0: #79b0f0;
|
|
100
|
+
--domain-slot-1: #b89ce0;
|
|
101
|
+
--domain-slot-2: #6fc98f;
|
|
102
|
+
--domain-slot-3: #d9b26a;
|
|
103
|
+
--domain-slot-4: #e39a9a;
|
|
104
|
+
--domain-slot-5: #74bcc6;
|
|
105
|
+
--domain-slot-0-ring: rgba(121, 176, 240, 0.35);
|
|
106
|
+
--domain-slot-1-ring: rgba(184, 156, 224, 0.35);
|
|
107
|
+
--domain-slot-2-ring: rgba(111, 201, 143, 0.35);
|
|
108
|
+
--domain-slot-3-ring: rgba(217, 178, 106, 0.35);
|
|
109
|
+
--domain-slot-4-ring: rgba(227, 154, 154, 0.35);
|
|
110
|
+
--domain-slot-5-ring: rgba(116, 188, 198, 0.35);
|
|
111
|
+
--strength-unresolved: #b89ce0;
|
|
112
|
+
--ll-head-bg: #202020;
|
|
113
|
+
--ll-head-shadow: 0 6px 6px -6px rgba(0, 0, 0, 0.5);
|
|
114
|
+
--lp-recessed: rgba(255, 255, 255, 0.04);
|
|
115
|
+
--lp-raised: rgba(255, 255, 255, 0.05);
|
|
116
|
+
--lp-raised-line: var(--line);
|
|
64
117
|
--bg: #1E1E1E;
|
|
65
118
|
--surface: #2A2A2A;
|
|
66
119
|
--soft: #323232;
|