@customize-agent/knowledge 2.0.0 → 2.1.1

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 (37) hide show
  1. package/dist/chunking/text-chunker.d.ts +12 -1
  2. package/dist/chunking/text-chunker.js +219 -41
  3. package/dist/core/change-tracker.d.ts +1 -0
  4. package/dist/core/change-tracker.js +21 -0
  5. package/dist/core/index-state-store.d.ts +35 -1
  6. package/dist/core/index-state-store.js +249 -16
  7. package/dist/core/knowledge-base-manager.d.ts +69 -3
  8. package/dist/core/knowledge-base-manager.js +535 -132
  9. package/dist/core/multi-project-manager.d.ts +7 -4
  10. package/dist/core/multi-project-manager.js +35 -23
  11. package/dist/embedding/embedding-provider.d.ts +1 -0
  12. package/dist/embedding/embedding-provider.js +16 -1
  13. package/dist/extraction/content-extractor.d.ts +2 -0
  14. package/dist/extraction/content-extractor.js +209 -42
  15. package/dist/extraction/module-resolver.d.ts +17 -0
  16. package/dist/extraction/module-resolver.js +113 -0
  17. package/dist/index.d.ts +2 -3
  18. package/dist/index.js +2 -2
  19. package/dist/llm/llm-search-provider.d.ts +23 -0
  20. package/dist/llm/llm-search-provider.js +1 -0
  21. package/dist/search/federation-search.d.ts +29 -0
  22. package/dist/search/federation-search.js +8 -1
  23. package/dist/vector/chroma-store.d.ts +2 -0
  24. package/dist/vector/chroma-store.js +53 -22
  25. package/dist/vector/vector-indexer.d.ts +3 -0
  26. package/dist/vector/vector-indexer.js +23 -0
  27. package/package.json +11 -3
  28. package/dist/server/dashboard-client.d.ts +0 -2
  29. package/dist/server/dashboard-client.js +0 -396
  30. package/dist/server/dashboard-i18n.d.ts +0 -112
  31. package/dist/server/dashboard-i18n.js +0 -220
  32. package/dist/server/dashboard-page.d.ts +0 -6
  33. package/dist/server/dashboard-page.js +0 -138
  34. package/dist/server/dashboard-server.d.ts +0 -13
  35. package/dist/server/dashboard-server.js +0 -225
  36. package/dist/server/dashboard-styles.d.ts +0 -1
  37. package/dist/server/dashboard-styles.js +0 -152
@@ -1,152 +0,0 @@
1
- export const dashboardStyles = `
2
- :root {
3
- color-scheme: light;
4
- --bg:#f5f5f7;
5
- --bg-glass:rgba(255,255,255,.72);
6
- --panel:rgba(255,255,255,.86);
7
- --panel-solid:#ffffff;
8
- --line:rgba(60,60,67,.16);
9
- --line-strong:rgba(60,60,67,.26);
10
- --text:#1d1d1f;
11
- --muted:#6e6e73;
12
- --accent:#007aff;
13
- --accent-2:#5856d6;
14
- --danger:#ff3b30;
15
- --ok:#34c759;
16
- --warn:#ff9500;
17
- --shadow:0 18px 45px rgba(0,0,0,.08);
18
- --shadow-soft:0 8px 24px rgba(0,0,0,.06);
19
- }
20
- * { box-sizing: border-box; }
21
- html { background:var(--bg); }
22
- body {
23
- margin:0; min-height:100vh; font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", sans-serif;
24
- background:
25
- radial-gradient(circle at 15% 0%, rgba(0,122,255,.12), transparent 28rem),
26
- radial-gradient(circle at 85% 8%, rgba(88,86,214,.10), transparent 26rem),
27
- linear-gradient(180deg, #fbfbfd 0%, var(--bg) 100%);
28
- color:var(--text);
29
- }
30
- header {
31
- position: sticky; top:0; z-index:10; backdrop-filter: saturate(180%) blur(22px); -webkit-backdrop-filter: saturate(180%) blur(22px);
32
- padding:20px max(32px, calc((100vw - 1480px) / 2 + 32px)); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:18px;
33
- background:var(--bg-glass);
34
- }
35
- main { padding:28px 32px 40px; max-width:1480px; margin:0 auto; }
36
- main, aside, main > div { min-width:0; }
37
- .page { display:none; }
38
- .page.active { display:block; }
39
- .topbar { flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; padding-bottom:2px; scrollbar-width:none; }
40
- .topbar::-webkit-scrollbar { display:none; }
41
- .topbar > * { flex:0 0 auto; }
42
- .tab { background:rgba(255,255,255,.72); border-radius:999px; padding:9px 15px; color:var(--muted); }
43
- .tab.active { background:#1d1d1f; color:white; border-color:#1d1d1f; }
44
- section {
45
- position:relative; overflow:visible;
46
- background:var(--panel); border:1px solid rgba(255,255,255,.7); border-radius:26px; padding:20px; box-shadow:var(--shadow-soft);
47
- backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
48
- }
49
- section:has(.custom-select.open), section.select-host-open { z-index:10000; }
50
- section:hover { box-shadow:var(--shadow); transform:translateY(-1px); transition:.2s ease; }
51
- h1 { font-size:24px; margin:0; letter-spacing:-.02em; font-weight:700; }
52
- h2 { font-size:12px; margin:0 0 14px; color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-weight:700; }
53
- h3 { font-size:15px; margin:14px 0 8px; }
54
- .subtitle { margin-top:6px; color:var(--muted); font-size:14px; }
55
- button, input, select {
56
- min-width:0; background:rgba(255,255,255,.88); color:var(--text); border:1px solid var(--line); border-radius:14px; padding:10px 13px; outline:none;
57
- font: inherit; box-shadow: inset 0 0 0 1px rgba(255,255,255,.25);
58
- }
59
- select {
60
- min-width:132px; appearance:none; -webkit-appearance:none; padding-right:34px;
61
- background-image:linear-gradient(45deg, transparent 50%, #6e6e73 50%), linear-gradient(135deg, #6e6e73 50%, transparent 50%);
62
- background-position:calc(100% - 18px) 50%, calc(100% - 12px) 50%; background-size:6px 6px, 6px 6px; background-repeat:no-repeat;
63
- }
64
- button { cursor:pointer; white-space:nowrap; transition:.16s ease; font-weight:600; }
65
- button:hover { border-color:rgba(0,122,255,.35); transform:translateY(-1px); box-shadow:0 8px 18px rgba(0,122,255,.12); }
66
- button.primary { background:linear-gradient(180deg, #0a84ff, #007aff); border-color:transparent; color:white; box-shadow:0 10px 22px rgba(0,122,255,.24); }
67
- input { width:100%; }
68
- input::placeholder { color:#a1a1a6; }
69
- input:focus, select:focus { border-color:rgba(0,122,255,.55); box-shadow:0 0 0 4px rgba(0,122,255,.12); }
70
- .row { display:flex; gap:10px; margin-bottom:10px; align-items:center; }
71
- .row input { flex:1; }
72
- .stack { display:grid; gap:10px; }
73
- .stack.compact { gap:8px; }
74
- .field-row { display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:8px; align-items:center; }
75
- .field-row:has(input + input + button) { grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) auto; }
76
- .helper-title { font-size:15px; font-weight:700; color:var(--text); margin:2px 0 6px; }
77
- .helper-text { color:var(--muted); font-size:13px; line-height:1.6; margin-bottom:12px; overflow-wrap:anywhere; }
78
- .upload-card { display:flex; gap:14px; align-items:center; border:1.5px dashed rgba(0,122,255,.32); background:rgba(0,122,255,.06); border-radius:20px; padding:16px; cursor:pointer; margin-bottom:10px; }
79
- .upload-card:hover { background:rgba(0,122,255,.10); border-color:rgba(0,122,255,.55); }
80
- button.loading, .upload-card.loading { position:relative; pointer-events:none; opacity:.82; cursor:progress; }
81
- button.loading::after, .upload-card.loading::after { content:''; width:14px; height:14px; border:2px solid currentColor; border-top-color:transparent; border-radius:50%; display:inline-block; margin-left:8px; vertical-align:-2px; animation:spin .8s linear infinite; }
82
- .upload-card.loading::after { margin-left:auto; color:#007aff; width:18px; height:18px; }
83
- button:disabled { cursor:progress; }
84
- @keyframes spin { to { transform:rotate(360deg); } }
85
- .upload-card input { display:none; }
86
- .upload-card b { display:block; font-size:15px; }
87
- .upload-card span { display:block; color:var(--muted); font-size:12px; line-height:1.45; margin-top:3px; overflow-wrap:anywhere; }
88
- .upload-icon { width:38px; height:38px; flex:0 0 38px; border-radius:50%; display:grid; place-items:center; background:#007aff; color:white; font-weight:800; font-size:20px; }
89
- .advanced-block { margin-top:12px; border:1px solid var(--line); border-radius:16px; padding:10px 12px; background:rgba(255,255,255,.55); }
90
- .advanced-block summary { cursor:pointer; color:var(--muted); font-size:13px; font-weight:600; margin-bottom:8px; }
91
- .divider { height:1px; background:var(--line); margin:16px 0; }
92
- .search-bar { display:grid; grid-template-columns: 170px minmax(0, 1fr) auto; gap:10px; align-items:end; }
93
- .filter-bar { display:grid; grid-template-columns: repeat(2, minmax(180px, 260px)); gap:10px; align-items:end; margin:12px 0 14px; }
94
- .select-wrap { position:relative; display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:600; min-width:0; overflow:visible; }
95
- .select-wrap.compact { min-width:130px; }
96
- .language-select { width:96px; min-width:96px; }
97
- .language-select select { min-width:96px; width:96px; cursor:pointer; }
98
- .select-wrap select { width:100%; }
99
- .select-native-hidden { position:absolute !important; opacity:0 !important; pointer-events:none !important; width:1px !important; height:1px !important; }
100
- .custom-select { position:relative; min-width:0; z-index:1; }
101
- .custom-select.open { z-index:10001; }
102
- .custom-select-trigger { width:100%; justify-content:space-between; text-align:left; display:flex; align-items:center; gap:10px; background:rgba(255,255,255,.88); color:var(--text); border:1px solid var(--line); border-radius:14px; padding:10px 13px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.25); }
103
- .custom-select-trigger::after { content:'⌄'; color:var(--muted); font-size:13px; line-height:1; display:inline-flex; align-items:center; justify-content:center; transform:translateY(-1px); flex:0 0 auto; }
104
- .custom-select.open .custom-select-trigger { border-color:rgba(0,122,255,.55); box-shadow:0 0 0 4px rgba(0,122,255,.12); }
105
- .custom-select-menu { display:none; position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:10002; max-height:260px; overflow:auto; padding:6px; border:1px solid var(--line); border-radius:16px; background:rgba(255,255,255,.98); box-shadow:0 18px 40px rgba(0,0,0,.16); backdrop-filter:blur(16px); }
106
- .custom-select.open .custom-select-menu { display:block; }
107
- .custom-select-option { display:block; width:100%; border:0; box-shadow:none; background:transparent; text-align:left; color:var(--text); border-radius:10px; padding:9px 10px; white-space:normal; }
108
- .custom-select-option:hover, .custom-select-option.active { background:rgba(0,122,255,.10); color:var(--accent); transform:none; box-shadow:none; }
109
- .config-row { display:grid; grid-template-columns:90px minmax(0, 1fr); gap:10px; align-items:start; padding:8px 0; border-top:1px solid var(--line); }
110
- .config-row:first-child { border-top:0; }
111
- .config-row b, .config-row span { min-width:0; overflow-wrap:anywhere; line-height:1.5; }
112
- .file-group { border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.58); margin-top:10px; overflow:hidden; }
113
- .file-group summary { cursor:pointer; padding:12px 14px; font-weight:700; display:flex; justify-content:space-between; align-items:center; }
114
- .file-group summary span { color:var(--muted); font-size:12px; }
115
- .file-item { display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:12px; padding:12px 14px; border-top:1px solid var(--line); align-items:center; }
116
- .file-main { min-width:0; }
117
- .file-actions { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
118
- .file-actions button { padding:7px 9px; font-size:12px; }
119
- .grid { display:grid; gap:20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
120
- .panel-gap { margin-top:20px; }
121
- .stat-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:10px; margin:10px 0 12px; }
122
- .metric { background:linear-gradient(180deg, #fff, #f7f7fa); border:1px solid var(--line); border-radius:18px; padding:14px; }
123
- .metric b { display:block; font-size:24px; margin-top:4px; letter-spacing:-.03em; }
124
- .metric span { color:var(--muted); font-size:12px; }
125
- .stat { display:flex; justify-content:space-between; align-items:flex-start; color:var(--muted); margin:8px 0; gap:12px; }
126
- .stat b { color:var(--text); }
127
- .card { border-top:1px solid var(--line); padding:14px 0; }
128
- .card:first-child { border-top:0; padding-top:0; }
129
- .path { color:var(--accent); font-size:13px; overflow-wrap:anywhere; word-break:normal; font-weight:600; line-height:1.45; }
130
- .meta { color:var(--muted); font-size:12px; overflow-wrap:anywhere; word-break:normal; line-height:1.55; min-width:0; }
131
- .badge { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px; padding:3px 9px; font-size:12px; color:var(--muted); margin:3px 5px 3px 0; background:rgba(255,255,255,.7); }
132
- .badge.ok { color:#1d7f3a; border-color:rgba(52,199,89,.28); background:rgba(52,199,89,.10); }
133
- .badge.warn { color:#9a5a00; border-color:rgba(255,149,0,.30); background:rgba(255,149,0,.10); }
134
- #capabilities { max-height: 460px; overflow:auto; padding-right:4px; }
135
- #results .card { background:var(--panel-solid); border-radius:20px; border:1px solid var(--line); margin-top:12px; padding:16px; box-shadow:var(--shadow-soft); }
136
- .status { color:var(--muted); min-height:20px; font-size:12px; margin-top:8px; }
137
- .status.ok { color:var(--ok); }
138
- .status.error { color:var(--danger); }
139
- .toolbar { display:flex; gap:10px; align-items:center; justify-content:flex-end; }
140
- pre { white-space:pre-wrap; word-break:break-word; color:#3a3a3c; margin:10px 0 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:12px; line-height:1.55; }
141
- .subsection { margin-top:18px; padding-top:16px;}
142
- .modal-backdrop { position:fixed; inset:0; z-index:20000; display:grid; place-items:center; background:rgba(15,23,42,.35); backdrop-filter:blur(10px); }
143
- .modal-backdrop[hidden] { display:none; }
144
- .modal-card { width:min(520px, calc(100vw - 32px)); background:rgba(255,255,255,.98); border:1px solid var(--line); border-radius:24px; box-shadow:0 28px 70px rgba(0,0,0,.22); padding:22px; }
145
- .modal-card h3 { margin:0 0 8px; }
146
- .modal-card p { white-space:pre-wrap; color:var(--muted); margin:0 0 14px; }
147
- .modal-input { width:100%; box-sizing:border-box; margin:0 0 14px; border:1px solid var(--line); border-radius:14px; padding:11px 12px; font:inherit; }
148
- .modal-actions { display:flex; justify-content:flex-end; gap:10px; }
149
- button.danger { background:linear-gradient(135deg,#ff3b30,#ff6b5f); color:white; border-color:rgba(255,59,48,.25); }
150
- @media (max-width: 1080px) { .grid { grid-template-columns:1fr; } }
151
- @media (max-width: 680px) { main { padding:16px; } header { padding:16px; align-items:flex-start; flex-direction:column; } .toolbar { width:100%; justify-content:flex-start; flex-wrap:wrap; } .row { flex-direction:column; align-items:stretch; } .search-bar, .filter-bar { grid-template-columns:1fr; } select { width:100%; } .field-row, .field-row:has(input + input + button), .file-item, .config-row { grid-template-columns:1fr; } .file-actions { justify-content:flex-start; } .stat-grid { grid-template-columns:1fr; } .upload-card { align-items:flex-start; } }
152
- `;